1. 23 10月, 2007 2 次提交
    • R
      Block driver using virtio. · e467cde2
      Rusty Russell 提交于
      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: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      e467cde2
    • J
      [SG] Update drivers to use sg helpers · 45711f1a
      Jens Axboe 提交于
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      45711f1a
  2. 20 10月, 2007 6 次提交
  3. 19 10月, 2007 1 次提交
    • J
      Add missing newlines to some uses of dev_<level> messages · 898eb71c
      Joe Perches 提交于
      Found these while looking at printk uses.
      
      Add missing newlines to dev_<level> uses
      Add missing KERN_<level> prefixes to multiline dev_<level>s
      Fixed a wierd->weird spelling typo
      Added a newline to a printk
      Signed-off-by: NJoe Perches <joe@perches.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Cc: Mark M. Hoffman <mhoffman@lightlink.com>
      Cc: Roland Dreier <rolandd@cisco.com>
      Cc: Tilman Schmidt <tilman@imap.cc>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: Stephen Hemminger <shemminger@linux-foundation.org>
      Cc: Greg KH <greg@kroah.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: James Smart <James.Smart@Emulex.Com>
      Cc: Andrew Vasquez <andrew.vasquez@qlogic.com>
      Cc: "Antonino A. Daplas" <adaplas@pol.net>
      Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Jaroslav Kysela <perex@suse.cz>
      Cc: Takashi Iwai <tiwai@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      898eb71c
  4. 17 10月, 2007 17 次提交
  5. 16 10月, 2007 5 次提交
    • L
      Panic in blk_rq_map_sg() from CCISS driver · a683d652
      Lee Schermerhorn 提交于
      New scatter/gather list chaining [sg_next()] treats 'page' member of
      struct scatterlist with low bit set [0x01] as a chain pointer to
      another struct scatterlist [array].  The CCISS driver request function
      passes an uninitialized, temporary, on-stack scatterlist array to
      blk_rq_map_sq().  sg_next() interprets random data on the stack as a
      chain pointer and eventually tries to de-reference an invalid pointer,
      resulting in:
      
      [<ffffffff8031dd70>] blk_rq_map_sg+0x70/0x170
      PGD 6090c3067 PUD 0
      Oops: 0000 [1] SMP
      last sysfs file: /block/cciss!c0d0/cciss!c0d0p1/dev
      CPU 6
      Modules linked in: ehci_hcd ohci_hcd uhci_hcd
      Pid: 1, comm: init Not tainted 2.6.23-rc6-mm1 #3
      RIP: 0010:[<ffffffff8031dd70>] [<ffffffff8031dd70>] blk_rq_map_sg+0x70/0x170
      RSP: 0018:ffff81060901f768 EFLAGS: 00010206
      RAX: 000000040b161000 RBX: ffff81060901f7d8 RCX: 000000040b162c00
      RDX: 0000000000000000 RSI: ffff81060b13a260 RDI: ffff81060b139600
      RBP: 0000000000001400 R08: 00000000fffffffe R09: 0000000000000400
      R10: 0000000000000000 R11: 000000040b163000 R12: ffff810102fe0000
      R13: 0000000000000001 R14: 0000000000000001 R15: 00001e0000000000
      FS: 00000000026108f0(0063) GS:ffff810409000b80(0000) knlGS:0000000000000000
      CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      CR2: 000000010000001e CR3: 00000006090c6000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process init (pid: 1, threadinfo ffff81060901e000, task ffff810409020800)
      last branch before last exception/interrupt
      from [<ffffffff8031de0a>] blk_rq_map_sg+0x10a/0x170
      to [<ffffffff8031dd70>] blk_rq_map_sg+0x70/0x170
      Stack: 000000018068ea00 ffff810102fe0000 0000000000000000 ffff810011400000
      0000000000000002 0000000000000000 ffff81040b172000 ffffffff803acd3d
      0000000000003ec1 ffff8106090d5000 ffff8106090d5000 ffff810102fe0000
      Call Trace:
      [<ffffffff803acd3d>] do_cciss_request+0x15d/0x4c0
      [<ffffffff80298968>] new_slab+0x1c8/0x270
      [<ffffffff80298ffd>] __slab_alloc+0x22d/0x470
      [<ffffffff8027327b>] mempool_alloc+0x4b/0x130
      [<ffffffff8032b21e>] cfq_set_request+0xee/0x380
      [<ffffffff8027327b>] mempool_alloc+0x4b/0x130
      [<ffffffff8031ff98>] get_request+0x168/0x360
      [<ffffffff80331b0d>] rb_insert_color+0x8d/0x110
      [<ffffffff8031cfd8>] elv_rb_add+0x58/0x60
      [<ffffffff8032a329>] cfq_add_rq_rb+0x69/0xa0
      [<ffffffff8031c1ab>] elv_merged_request+0x5b/0x60
      [<ffffffff803224fd>] __make_request+0x23d/0x650
      [<ffffffff80298ffd>] __slab_alloc+0x22d/0x470
      [<ffffffff80270000>] generic_write_checks+0x140/0x190
      [<ffffffff8031f012>] generic_make_request+0x1c2/0x3a0
      <etc>
      Kernel panic - not syncing: Attempted to kill init!
      
      This patch initializes the tmp_sg array to zeroes.  Perhaps not the ultimate
      fix, but an effective work-around.  I can now boot 23-rc6-mm1 on an HP
      Proliant x86_64 with CCISS boot disk.
      Signed-off-by: NLee Schermerhorn <lee.schermerhorn@hp.com>
      
       drivers/block/cciss.c |    1 +
       1 file changed, 1 insertion(+)
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      a683d652
    • L
    • J
      761a15e7
    • J
      block: convert blkdev_issue_flush() to use empty barriers · fd5d8062
      Jens Axboe 提交于
      Then we can get rid of ->issue_flush_fn() and all the driver private
      implementations of that.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      fd5d8062
    • J
      drivers/block/cpqarray,cciss: kill unused var · 87ad9001
      Jeff Garzik 提交于
      The recent bio work and subsequent fixups created unused variables.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      87ad9001
  6. 15 10月, 2007 1 次提交
  7. 12 10月, 2007 1 次提交
  8. 11 10月, 2007 3 次提交
    • S
      [POWERPC] iSeries: Move viodasd probing · 8251b4c4
      Stephen Rothwell 提交于
      This way we only have entries in the device tree for disks that actually
      exist.  A slight complication is that disks may be attached to LPARs
      at runtime.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Acked-by: NJens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8251b4c4
    • E
      [NET]: Make the device list and device lookups per namespace. · 881d966b
      Eric W. Biederman 提交于
      This patch makes most of the generic device layer network
      namespace safe.  This patch makes dev_base_head a
      network namespace variable, and then it picks up
      a few associated variables.  The functions:
      dev_getbyhwaddr
      dev_getfirsthwbytype
      dev_get_by_flags
      dev_get_by_name
      __dev_get_by_name
      dev_get_by_index
      __dev_get_by_index
      dev_ioctl
      dev_ethtool
      dev_load
      wireless_process_ioctl
      
      were modified to take a network namespace argument, and
      deal with it.
      
      vlan_ioctl_set and brioctl_set were modified so their
      hooks will receive a network namespace argument.
      
      So basically anthing in the core of the network stack that was
      affected to by the change of dev_base was modified to handle
      multiple network namespaces.  The rest of the network stack was
      simply modified to explicitly use &init_net the initial network
      namespace.  This can be fixed when those components of the network
      stack are modified to handle multiple network namespaces.
      
      For now the ifindex generator is left global.
      
      Fundametally ifindex numbers are per namespace, or else
      we will have corner case problems with migration when
      we get that far.
      
      At the same time there are assumptions in the network stack
      that the ifindex of a network device won't change.  Making
      the ifindex number global seems a good compromise until
      the network stack can cope with ifindex changes when
      you change namespaces, and the like.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      881d966b
    • E
      [NET]: Make packet reception network namespace safe · e730c155
      Eric W. Biederman 提交于
      This patch modifies every packet receive function
      registered with dev_add_pack() to drop packets if they
      are not from the initial network namespace.
      
      This should ensure that the various network stacks do
      not receive packets in a anything but the initial network
      namespace until the code has been converted and is ready
      for them.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e730c155
  9. 10 10月, 2007 4 次提交