1. 04 2月, 2008 3 次提交
    • R
      virtio: reset function · 6e5aa7ef
      Rusty Russell 提交于
      A reset function solves three problems:
      
      1) It allows us to renegotiate features, eg. if we want to upgrade a
         guest driver without rebooting the guest.
      
      2) It gives us a clean way of shutting down virtqueues: after a reset,
         we know that the buffers won't be used by the host, and
      
      3) It helps the guest recover from messed-up drivers.
      
      So we remove the ->shutdown hook, and the only way we now remove
      feature bits is via reset.
      
      We leave it to the driver to do the reset before it deletes queues:
      the balloon driver, for example, needs to chat to the host in its
      remove function.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      6e5aa7ef
    • R
      virtio: explicit enable_cb/disable_cb rather than callback return. · 18445c4d
      Rusty Russell 提交于
      It seems that virtio_net wants to disable callbacks (interrupts) before
      calling netif_rx_schedule(), so we can't use the return value to do so.
      
      Rename "restart" to "cb_enable" and introduce "cb_disable" hook: callback
      now returns void, rather than a boolean.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      18445c4d
    • R
      virtio: simplify config mechanism. · a586d4f6
      Rusty Russell 提交于
      Previously we used a type/len pair within the config space, but this
      seems overkill.  We now simply define a structure which represents the
      layout in the config space: the config space can now only be extended
      at the end.
      
      The main driver-visible changes:
      1) We indicate what fields are present with an explicit feature bit.
      2) Virtqueues are explicitly numbered, and not in the config space.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      a586d4f6
  2. 02 2月, 2008 1 次提交
  3. 01 2月, 2008 1 次提交
  4. 30 1月, 2008 2 次提交
    • J
      cciss: fix bug in overriding ->data_len before completion · e7d9dc9c
      Jens Axboe 提交于
      For BLOCK_PC requests, we need that length for completing the request.
      Andrew Vasquez <andrew.vasquez@qlogic.com> reported the following
      oops
      
      Hitting a consistent BUG() with recent Linus' linux-2.6.git:
      
      	[   12.941428] ------------[ cut here ]------------
      	[   12.944874] kernel BUG at drivers/block/cciss.c:1260!
      	[   12.944874] invalid opcode: 0000 [1] SMP
      	[   12.944874] CPU 0
      	[   12.944874] Modules linked in:
      	[   12.944874] Pid: 0, comm: swapper Not tainted 2.6.24 #43
      	[   12.944874] RIP: 0010:[<ffffffff8039e43d>]  [<ffffffff8039e43d>] cciss_softirq_done+0xbc/0x1bf
      	[   12.944874] RSP: 0018:ffffffff8063aed0  EFLAGS: 00010202
      	[   12.944874] RAX: 0000000000000001 RBX: ffff8100cf800010 RCX: ffff81042f1253b0
      	[   12.944874] RDX: ffff81042de398f0 RSI: ffff81042de398f0 RDI: 0000000000000001
      	[   12.944874] RBP: ffff81042daa0000 R08: ffff81042f1253b0 R09: 0000000000000001
      	[   12.944874] R10: 00000000000000fe R11: 0000000000000000 R12: 0000000000000002
      	[   12.944874] R13: 0000000000000001 R14: ffff8100cf800000 R15: ffff81042de398f0
      	[   12.944874] FS:  0000000000000000(0000) GS:ffffffff805bb000(0000) knlGS:0000000000000000
      	[   12.944874] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      	[   12.944874] CR2: 00002afed7eea340 CR3: 000000042dbba000 CR4: 00000000000006e0
      	[   12.944874] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      	[   12.944874] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      	[   12.944874] Process swapper (pid: 0, threadinfo ffffffff805f4000, task ffffffff805624a0)
      	[   12.944874] Stack:  0000000000000000 ffffffff8063af10 0000000000000001 ffffffff80632d60
      	[   12.944874]  0000000000000000 000000000000000a ffffffff805bb900 ffffffff8032038f
      	[   12.944874]  ffffffff8063af10 ffffffff8063af10 ffffffff805bb940 ffffffff802346b4
      	[   12.944874] Call Trace:
      	[   12.944874]  <IRQ>  [<ffffffff8032038f>] blk_done_softirq+0x69/0x78
      	[   12.944874]  [<ffffffff802346b4>] __do_softirq+0x6f/0xd8
      	[   12.944874]  [<ffffffff8020c45c>] call_softirq+0x1c/0x30
      	[   12.944874]  [<ffffffff8020e347>] do_softirq+0x30/0x80
      	[   12.944874]  [<ffffffff8020e409>] do_IRQ+0x72/0xd9
      	[   12.944874]  [<ffffffff8020a50a>] mwait_idle+0x0/0x46
      	[   12.944874]  [<ffffffff8020a3da>] default_idle+0x0/0x3d
      	[   12.944874]  [<ffffffff8020b7e1>] ret_from_intr+0x0/0xa
      	[   12.944874]  <EOI>  [<ffffffff8020a54c>] mwait_idle+0x42/0x46
      	[   12.944874]  [<ffffffff8020a481>] cpu_idle+0x6a/0xae
      	[   12.944874]
      	[   12.944874]
      	[   12.944874] Code: 0f 0b eb fe 48 8d 85 d8 c0 00 00 48 89 04 24 48 89 c7 e8 e5
      	[   12.944874] RIP  [<ffffffff8039e43d>] cciss_softirq_done+0xbc/0x1bf
      	[   12.944874]  RSP <ffffffff8063aed0>
      	[   12.944903] ---[ end trace e9c631603f90d22f ]---
      
      which is caused by blk_end_request() returning 'not done' for a request,
      since it gets asked to complete zero bytes.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      e7d9dc9c
    • J
      xsysace: end request handling fix · 9bf72259
      Jens Axboe 提交于
      In ace_fsm_dostate(), the variable 'i' was used only for passing
      sector size of the request to end_that_request_first().
      So I removed it and changed the code to pass the size in bytes
      directly to __blk_end_request()
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      9bf72259
  5. 28 1月, 2008 13 次提交
  6. 25 1月, 2008 6 次提交
  7. 15 1月, 2008 1 次提交
  8. 11 1月, 2008 1 次提交
  9. 18 12月, 2007 2 次提交
  10. 11 12月, 2007 2 次提交
  11. 19 11月, 2007 1 次提交
  12. 15 11月, 2007 2 次提交
    • C
      rd: fix data corruption on memory pressure · 5d0360ee
      Christian Borntraeger 提交于
      We have seen ramdisk based install systems, where some pages of mapped
      libraries and programs were suddendly zeroed under memory pressure.  This
      should not happen, as the ramdisk avoids freeing its pages by keeping them
      dirty all the time.
      
      It turns out that there is a case, where the VM makes a ramdisk page clean,
      without telling the ramdisk driver.  On memory pressure shrink_zone runs
      and it starts to run shrink_active_list.  There is a check for
      buffer_heads_over_limit, and if true, pagevec_strip is called.
      pagevec_strip calls try_to_release_page.  If the mapping has no releasepage
      callback, try_to_free_buffers is called.  try_to_free_buffers has now a
      special logic for some file systems to make a dirty page clean, if all
      buffers are clean.  Thats what happened in our test case.
      
      The simplest solution is to provide a noop-releasepage callback for the
      ramdisk driver.  This avoids try_to_free_buffers for ramdisk pages.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Acked-by: NNick Piggin <npiggin@suse.de>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5d0360ee
    • O
      paride: pf driver fixes · e62aa046
      Ondrej Zary 提交于
      The pf driver for parallel port floppy drives seems to be broken.  At least
      with Imation SuperDisk with EPAT chip, the driver calls pi_connect() and
      pi_disconnect after each transferred sector.  At least with EPAT, this
      operation is very expensive - causes drive recalibration.  Thus, transferring
      even a single byte (dd if=/dev/pf0 of=/dev/null bs=1 count=1) takes 20
      seconds, making the driver useless.
      
      The pf_next_buf() function seems to be broken as it returns 1 always (except
      when pf_run is non-zero), causing the loop in do_pf_read_drq (and
      do_pf_write_drq) to be executed only once.
      
      The following patch fixes this problem.  It also fixes swapped descriptions in
      pf_lock() function and removes DBMSG macro, which seems useless.
      Signed-off-by: NOndrej Zary <linux@rainbow-software.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e62aa046
  13. 13 11月, 2007 1 次提交
  14. 08 11月, 2007 1 次提交
  15. 06 11月, 2007 1 次提交
  16. 29 10月, 2007 1 次提交
    • M
      cciss: update copyright notices · bd4f36d6
      Mike Miller 提交于
      This patch updates the copyright information for the cciss driver. It
      includes extending the year to 2007 (how timely) and some minor corrections
      deemed necessary by HP legal and the Open Source Review Board. Please
      consider this patch for inclusion.
      Signed-off-by: NMike Miller <mike.miller@hp.com>
      --------------------------------------------------------------------------------
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      bd4f36d6
  17. 25 10月, 2007 1 次提交