1. 15 5月, 2006 13 次提交
  2. 21 4月, 2006 1 次提交
  3. 15 4月, 2006 1 次提交
  4. 14 4月, 2006 6 次提交
    • A
      [SCSI] 3ware 9000 disable local irqs during kmap_atomic · 1e08dcb3
      adam radford 提交于
      Equivalent of the same patch for the 3w-xxxx driver.
      Signed-off-by: NAdam Radford <linuxraid@amcc.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      1e08dcb3
    • T
      [SCSI] SCSI: fix scsi_kill_request() busy count handling · e36e0c80
      Tejun Heo 提交于
      scsi_kill_request() completes requests via normal SCSI completion path
      which decrements busy counts; however, requests which get passed to
      scsi_kill_request() aren't holding busy counts and scsi_kill_request()
      don't increment them before invoking completion path resulting in
      incorrect busy counts.  Bump up busy counts before invoking completion
      path.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      e36e0c80
    • J
      [SCSI] FC transport: fixes for workq deadlocks · aedf3497
      James Smart 提交于
      As previously reported via Michael Reed, the FC transport took a hit
      in 2.6.15 (perhaps a little earlier) when we solved a recursion error.
      There are 2 deadlocks occurring:
      - With scan and the delete items sharing the same workq, flushing the
        workq for the delete code was getting it stalled behind a very long
        running scan code path.
      - There's a deadlock where scsi_remove_target() has to sit behind
        scsi_scan_target() due to contention over the scan_lock().
      
      This patch resolves the 1st deadlock and significantly reduces the
      odds of the second. So far, we have only replicated the 2nd deadlock
      on a highly-parallel SMP system. More on the 2nd deadlock in a following
      email.
      
      This patch reworks the transport to:
      - Only use the scsi host workq for scanning
      - Use 2 other workq's internally. One for deletions, the other for
        scheduled deletions. Originally, we tried this with a single workq,
        but the occassional flushes of the scheduled queues was hitting the
        second deadlock with a slightly higher frequency. In the future, we'll
        look at the LLDD's and the transport to see if we can get rid of this
        extra overhead.
      - When moving to the other workq's we tightened up some object states
        and some lock handling.
      - Properly syncs adds/deletes
      - minor code cleanups
        - directly reference fc_host_attrs, rather than through attribute
          macros
        - flush the right workq on delayed work cancel failures.
      
      Large kudos to Michael Reed who has been working this issue for the last
      month.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      aedf3497
    • H
      [SCSI] aic79xx: target hotplug fixes · b0d23648
      Hannes Reinecke 提交于
      When a target is added aic79xx tries to be overly clever: it changes
      the command on the fly to TEST UNIT READY and tries to requeue the
      original command. Sadly this breaks SCSI compability and of course
      the midlayer is getting a bit confused by it.
      
      So we're just removing that bit of code and let the midlayer deal with
      it. It's clever enough by now. And the driver code is getting simpler.
      Signed-off-by: NHannes Reinecke <hare@suse.de>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      b0d23648
    • F
      [SCSI] ibmvscsi: remove drivers/scsi/ibmvscsi/srp.h · 441f987c
      FUJITA Tomonori 提交于
      It's no longer needed after the convrsion to use the linux srp.h file.
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      441f987c
    • H
      [SCSI] aic79xx bus reset update · f41b5cec
      Hannes Reinecke 提交于
      As James B. correctly noted, ahd_reset_channel() in
      ahd_linux_bus_reset() should be protected by ahd_lock().  However, the
      main reason for not doing so was a deadlock with the interesting
      polling mechanism to detect the end a bus reset.
      
      This patch replaces the polling mechanism with a saner signalling via
      flags; it also gives us the benefit of detecting any multiple calls to
      ahd_reset_channel().
      Signed-off-by: NHannes Reinecke <hare@suse.de>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      f41b5cec
  5. 13 4月, 2006 19 次提交