Skip to content
Snippets Groups Projects
This project is mirrored from https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git. Pull mirroring updated .
  1. Feb 08, 2008
    • Nick Piggin's avatar
      rewrite rd · 9db5579b
      Nick Piggin authored
      
      This is a rewrite of the ramdisk block device driver.
      
      The old one is really difficult because it effectively implements a block
      device which serves data out of its own buffer cache.  It relies on the dirty
      bit being set, to pin its backing store in cache, however there are non
      trivial paths which can clear the dirty bit (eg.  try_to_free_buffers()),
      which had recently lead to data corruption.  And in general it is completely
      wrong for a block device driver to do this.
      
      The new one is more like a regular block device driver.  It has no idea about
      vm/vfs stuff.  It's backing store is similar to the buffer cache (a simple
      radix-tree of pages), but it doesn't know anything about page cache (the pages
      in the radix tree are not pagecache pages).
      
      There is one slight downside -- direct block device access and filesystem
      metadata access goes through an extra copy and gets stored in RAM twice.
      However, this downside is only slight, because the real buffercache of the
      device is now reclaimable (because we're not playing crazy games with it), so
      under memory intensive situations, footprint should effectively be the same --
      maybe even a slight advantage to the new driver because it can also reclaim
      buffer heads.
      
      The fact that it now goes through all the regular vm/fs paths makes it
      much more useful for testing, too.
      
         text    data     bss     dec     hex filename
         2837     849     384    4070     fe6 drivers/block/rd.o
         3528     371      12    3911     f47 drivers/block/brd.o
      
      Text is larger, but data and bss are smaller, making total size smaller.
      
      A few other nice things about it:
      - Similar structure and layout to the new loop device handlinag.
      - Dynamic ramdisk creation.
      - Runtime flexible buffer head size (because it is no longer part of the
        ramdisk code).
      - Boot / load time flexible ramdisk size, which could easily be extended
        to a per-ramdisk runtime changeable size (eg. with an ioctl).
      - Can use highmem for the backing store.
      
      [akpm@linux-foundation.org: fix build]
      [byron.bbradley@gmail.com: make rd_size non-static]
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarByron Bradley <byron.bbradley@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9db5579b
  2. Feb 04, 2008
  3. Jan 28, 2008
    • Adrian McMenamin's avatar
      cdrom: Add support for Sega Dreamcast GD-ROM. · 74ee1a75
      Adrian McMenamin authored
      
      This patch adds support for the GD-Rom drive, SEGA's proprietary
      implementation of an IDE CD Rom for the SEGA Dreamcast. This driver
      implements Sega's Packet Interface (SPI) - at least partially. It will
      also read disks in SEGA's propreitary GD format.
      
      Unlike previous drivers (which were never in mainline) this uses DMA and
      not PIO to read disks. It is a new driver, not a refactoring of old
      drivers.
      
      Signed-off by: Adrian McMenamin <adrian@mcmen.demon.co.uk>
      Acked-by: default avatarJens Axboe <jens.axboe@oracle.com>
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      74ee1a75
  4. Oct 23, 2007
    • Rusty Russell's avatar
      Block driver using virtio. · e467cde2
      Rusty Russell authored
      
      The block driver uses scatter-gather lists with sg[0] being the
      request information (struct virtio_blk_outhdr) with the type, sector
      and inbuf id.  The next N sg entries are the bio itself, then the last
      sg is the status byte.  Whether the N entries are in or out depends on
      whether it's a read or a write.
      
      We accept the normal (SCSI) ioctls: they get handed through to the other
      side which can then handle it or reply that it's unsupported.  It's
      not clear that this actually works in general, since I don't know
      if blk_pc_request() requests have an accurate rq_data_dir().
      
      Although we try to reply -ENOTTY on unsupported commands, ioctl(fd,
      CDROMEJECT) returns success to userspace.  This needs a separate
      patch.
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      e467cde2
  5. Oct 19, 2007
  6. Oct 12, 2007
  7. Aug 23, 2007
  8. Aug 18, 2007
  9. Jul 18, 2007
  10. Jul 17, 2007
  11. Jul 16, 2007
  12. Jul 10, 2007
  13. May 10, 2007
  14. Mar 06, 2007
  15. Feb 11, 2007
    • Jean-Paul Saman's avatar
      [PATCH] disable init/initramfs.c · c33df4ea
      Jean-Paul Saman authored
      
      The file init/initramfs.c is always compiled and linked in the kernel
      vmlinux even when BLK_DEV_RAM and BLK_DEV_INITRD are disabled and the
      system isn't using any form of an initramfs or initrd.  In this situation
      the code is only used to unpack a (static) default initial rootfilesystem.
      The current init/initramfs.c code.  usr/initramfs_data.o compiles to a size
      of ~15 kbytes.  Disabling BLK_DEV_RAM and BLK_DEV_INTRD shrinks the kernel
      code size with ~60 Kbytes.
      
      This patch avoids compiling in the code and data for initramfs support if
      CONFIG_BLK_DEV_INITRD is not defined.  Instead of the initramfs code and
      data it uses a small routine in init/noinitramfs.c to setup an initial
      static default environment for mounting a rootfilesystem later on in the
      kernel initialisation process.  The new code is: 164 bytes of size.
      
      The patch is separated in two parts:
      1) doesn't compile initramfs code when CONFIG_BLK_DEV_INITRD is not set
      2) changing all plaforms vmlinux.lds.S files to not reserve an area of
      PAGE_SIZE when CONFIG_BLK_DEV_INITRD is not set.
      
      [deweerdt@free.fr: warning fix]
      Signed-off-by: default avatarJean-Paul Saman <jean-paul.saman@nxp.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: default avatarFrederik Deweerdt <frederik.deweerdt@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c33df4ea
  16. Dec 13, 2006
  17. Dec 08, 2006
  18. Dec 07, 2006
    • Randy Dunlap's avatar
      [PATCH] CISS: require same SCSI module support · 3e29fe83
      Randy Dunlap authored
      
      Building CCISS SCSI tape support in-kernel when SCSI=m causes build errors,
      so require SCSI support to be =y or same as CCISS SCSI tape support.
      
        drivers/built-in.o: In function `cciss_remove_one':
        cciss.c:(.text+0x79d4c): undefined reference to `scsi_remove_host'
        cciss.c:(.text+0x79d55): undefined reference to `scsi_host_put'
        drivers/built-in.o: In function `cciss_update_non_disk_devices':
        cciss.c:(.text+0x7bb54): undefined reference to `scsi_device_type'
        cciss.c:(.text+0x7bcc8): undefined reference to `scsi_device_type'
        cciss.c:(.text+0x7be81): undefined reference to `scsi_device_type'
        cciss.c:(.text+0x7bf81): undefined reference to `scsi_device_type'
        drivers/built-in.o: In function `cciss_proc_write':
        cciss.c:(.text+0x7c175): undefined reference to `scsi_host_alloc'
        cciss.c:(.text+0x7c1ed): undefined reference to `scsi_add_host'
        cciss.c:(.text+0x7c1f9): undefined reference to `scsi_scan_host'
        cciss.c:(.text+0x7c206): undefined reference to `scsi_host_put'
        make: *** [.tmp_vmlinux1] Error 1
      
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Acked-by: default avatarMike Miller <mike.miller@hp.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3e29fe83
    • Herbert Xu's avatar
      [CRYPTO] cryptoloop: Select CRYPTO_CBC · 8df3b0a2
      Herbert Xu authored
      
      As CBC is the default chaining method for cryptoloop, we should select
      it from cryptoloop to ease the transition.
      
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      8df3b0a2
  19. Oct 03, 2006
  20. Sep 30, 2006
    • David Howells's avatar
      [PATCH] BLOCK: Make it possible to disable the block layer [try #6] · 9361401e
      David Howells authored
      
      Make it possible to disable the block layer.  Not all embedded devices require
      it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
      the block layer to be present.
      
      This patch does the following:
      
       (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
           support.
      
       (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
           an item that uses the block layer.  This includes:
      
           (*) Block I/O tracing.
      
           (*) Disk partition code.
      
           (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.
      
           (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the
           	 block layer to do scheduling.  Some drivers that use SCSI facilities -
           	 such as USB storage - end up disabled indirectly from this.
      
           (*) Various block-based device drivers, such as IDE and the old CDROM
           	 drivers.
      
           (*) MTD blockdev handling and FTL.
      
           (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
           	 taking a leaf out of JFFS2's book.
      
       (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
           linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,
           however, still used in places, and so is still available.
      
       (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
           parts of linux/fs.h.
      
       (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.
      
       (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.
      
       (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
           is not enabled.
      
       (*) fs/no-block.c is created to hold out-of-line stubs and things that are
           required when CONFIG_BLOCK is not set:
      
           (*) Default blockdev file operations (to give error ENODEV on opening).
      
       (*) Makes some /proc changes:
      
           (*) /proc/devices does not list any blockdevs.
      
           (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.
      
       (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.
      
       (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
           given command other than Q_SYNC or if a special device is specified.
      
       (*) In init/do_mounts.c, no reference is made to the blockdev routines if
           CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.
      
       (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
           error ENOSYS by way of cond_syscall if so).
      
       (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
           CONFIG_BLOCK is not set, since they can't then happen.
      
      Signed-Off-By: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9361401e
  21. Jul 15, 2006
    • Nathan Scott's avatar
      [PATCH] ramdisk blocksize Kconfig entry · bef317e3
      Nathan Scott authored
      
      Make the ramdisk blocksize configurable at kernel compilation time rather
      than only at boot or module load time, like a couple of the other ramdisk
      options.  I found this handy awhile back but thought little of it, until
      recently asked by a few of the testing folks here to be able to do the same
      thing for their automated test setups.
      
      The Kconfig comment is largely lifted from comments in rd.c, and hopefully
      this will increase the chances of making folks aware that the default value
      often isn't a great choice here (for increasing values of PAGE_SIZE, even
      moreso).
      
      Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      bef317e3
  22. Jun 23, 2006
  23. Mar 28, 2006
  24. Mar 26, 2006
  25. Mar 25, 2006
    • Zdenek Pavlas's avatar
      [PATCH] BLK_DEV_INITRD: do not require BLK_DEV_RAM=y · 340e48e6
      Zdenek Pavlas authored
      
      Initramfs initrd images do not need a ramdisk device, so remove this
      restriction in Kconfig.  BLK_DEV_RAM=n saves about 13k on i386.  Also
      without ramdisk device there's no need for "dry run", so initramfs unpacks
      much faster.
      
      People using cramfs, squashfs, or gzipped ext2/minix initrd images are
      probably smart enough not to turn off ramdisk support by accident.
      
      Cc: Al Viro <viro@ftp.linux.org.uk>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      340e48e6
  26. Feb 05, 2006
  27. Jan 06, 2006
  28. Jan 04, 2006
  29. Nov 04, 2005
  30. Sep 08, 2005
    • Al Viro's avatar
      [PATCH] Kconfig fix (BLK_DEV_FD dependencies) · a08b6b79
      Al Viro authored
      
      Sanitized and fixed floppy dependencies: split the messy dependencies for
      BLK_DEV_FD by introducing a new symbol (ARCH_MAY_HAVE_PC_FDC), making
      BLK_DEV_FD depend on that one and taking declarations of ARCH_MAY_HAVE_PC_FDC
      to arch/*/Kconfig.  While we are at it, fixed several obvious cases when
      BLK_DEV_FD should have been excluded (architectures lacking asm/floppy.h
      are *not* going to have floppy.c compile, let alone work).
      
      If you can come up with better name for that ("this architecture might
      have working PC-compatible floppy disk controller"), you are more than
      welcome - just s/ARCH_MAY_HAVE_PC_FDC/your_prefered_name/g in the patch
      below...
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      a08b6b79
  31. Sep 05, 2005
  32. Aug 10, 2005
  33. May 04, 2005
Loading