27 Mar, 2009

1 commit


15 Nov, 2008

1 commit


17 Jul, 2008

2 commits


17 Mar, 2008

1 commit


09 Feb, 2008

2 commits

  • Support direct_access XIP method with brd.

    Signed-off-by: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • 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: Nick Piggin
    Signed-off-by: Byron Bradley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     

04 Feb, 2008

1 commit


28 Jan, 2008

1 commit

  • 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
    Acked-by: Jens Axboe
    Signed-off-by: Paul Mundt

    Adrian McMenamin
     

23 Oct, 2007

1 commit

  • 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: Rusty Russell
    Cc: Jens Axboe

    Rusty Russell
     

20 Oct, 2007

2 commits


12 Oct, 2007

1 commit


23 Aug, 2007

1 commit

  • Introduce CONFIG_CHECK_SIGNATURE to control inclusion of check_signature()
    and avoid problems on platforms that don't have readb().

    Let the few legacy (ISA || PCI || X86) drivers that need check_signature()
    select CONFIG_CHECK_SIGNATURE.

    Signed-off-by: Geert Uytterhoeven
    Cc: Jeff Dike
    Cc: Heiko Carstens
    Cc: Roman Zippel
    Cc: Alan Cox
    Cc: Martin Schwidefsky
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     

19 Aug, 2007

1 commit


18 Jul, 2007

2 commits


17 Jul, 2007

3 commits

  • * 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block:
    splice: direct splicing updates ppos twice
    more ACSI removal
    umem: Fix match of pci_ids in umem driver
    umem: Remove references to dead CONFIG_MM_MAP_MEMORY variable
    remove the documentation for the legacy CDROM drivers

    Linus Torvalds
     
  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: (26 commits)
    [SPARC64]: Fix UP build.
    [SPARC64]: dr-cpu unconfigure support.
    [SERIAL]: Fix console write locking in sparc drivers.
    [SPARC64]: Give more accurate errors in dr_cpu_configure().
    [SPARC64]: Clear cpu_{core,sibling}_map[] in smp_fill_in_sib_core_maps()
    [SPARC64]: Fix leak when DR added cpu does not bootup.
    [SPARC64]: Add ->set_affinity IRQ handlers.
    [SPARC64]: Process dr-cpu events in a kthread instead of workqueue.
    [SPARC64]: More sensible udelay implementation.
    [SPARC64]: SMP build fixes.
    [SPARC64]: mdesc.c needs linux/mm.h
    [SPARC64]: Fix build regressions added by dr-cpu changes.
    [SPARC64]: Unconditionally register vio_bus_type.
    [SPARC64]: Initial LDOM cpu hotplug support.
    [SPARC64]: Fix setting of variables in LDOM guest.
    [SPARC64]: Fix MD property lifetime bugs.
    [SPARC64]: Abstract out mdesc accesses for better MD update handling.
    [SPARC64]: Use more mearningful names for IRQ registry.
    [SPARC64]: Initial domain-services driver.
    [SPARC64]: Export powerd facilities for external entities.
    ...

    Linus Torvalds
     
  • Make some offending drivers depend on it and set CONFIG_ARCH_NO_VIRT_TO_BUS
    for ppc64 so that we don't build those drivers.

    This gets PowerPC allmodconfig and allyesconfig much closer to building.

    Signed-off-by: Stephen Rothwell
    Cc: Al Viro
    Acked-by: David Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     

16 Jul, 2007

2 commits


10 Jul, 2007

2 commits


10 May, 2007

1 commit


07 Mar, 2007

1 commit


12 Feb, 2007

1 commit

  • 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: Jean-Paul Saman
    Cc: Al Viro
    Cc:
    Signed-off-by: Frederik Deweerdt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean-Paul Saman
     

14 Dec, 2006

1 commit

  • The BLK_DEV_SWIM_IOP driver has:
    - already been marked as BROKEN in 2.6.0 three years ago and
    - is still marked as BROKEN.

    Drivers that had been marked as BROKEN for such a long time seem to be
    unlikely to be revived in the forseeable future.

    But if anyone wants to ever revive this driver, the code is still
    present in the older kernel releases.

    Signed-off-by: Adrian Bunk
    Cc: Jens Axboe
    Acked-by: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     

09 Dec, 2006

1 commit


08 Dec, 2006

2 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (48 commits)
    [NETFILTER]: Fix non-ANSI func. decl.
    [TG3]: Identify Serdes devices more clearly.
    [TG3]: Use msleep.
    [TG3]: Use netif_msg_*.
    [TG3]: Allow partial speed advertisement.
    [TG3]: Add TG3_FLG2_IS_NIC flag.
    [TG3]: Add 5787F device ID.
    [TG3]: Fix Phy loopback.
    [WANROUTER]: Kill kmalloc debugging code.
    [TCP] inet_twdr_hangman: Delete unnecessary memory barrier().
    [NET]: Memory barrier cleanups
    [IPSEC]: Fix inetpeer leak in ipv4 xfrm dst entries.
    audit: disable ipsec auditing when CONFIG_AUDITSYSCALL=n
    audit: Add auditing to ipsec
    [IRDA] irlan: Fix compile warning when CONFIG_PROC_FS=n
    [IrDA]: Incorrect TTP header reservation
    [IrDA]: PXA FIR code device model conversion
    [GENETLINK]: Fix misplaced command flags.
    [NETLIK]: Add a pointer to the Generic Netlink wiki page.
    [IPV6] RAW: Don't release unlocked sock.
    ...

    Linus Torvalds
     
  • 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: Randy Dunlap
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

07 Dec, 2006

1 commit


04 Oct, 2006

2 commits


01 Oct, 2006

1 commit

  • 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: David Howells
    Signed-off-by: Jens Axboe

    David Howells
     

15 Jul, 2006

1 commit

  • 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: Nathan Scott
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nathan Scott
     

23 Jun, 2006

1 commit


29 Mar, 2006

1 commit


27 Mar, 2006

1 commit


26 Mar, 2006

1 commit

  • 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
    Cc: Christoph Hellwig
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zdenek Pavlas