1. 13 6月, 2006 8 次提交
  2. 06 6月, 2006 1 次提交
  3. 18 5月, 2006 4 次提交
  4. 03 4月, 2006 1 次提交
    • S
      [PATCH] sbp2: fix spinlock recursion · 24c7cd06
      Stefan Richter 提交于
      sbp2util_mark_command_completed takes a lock which was already taken by
      sbp2scsi_complete_all_commands.  This is a regression in Linux 2.6.15.
      
       Reported by Kristian Harms at
      	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=187394
      
      [ More complete commentary, as response to questions by Andrew: ]
      
      > This changes the call environment for all implementations of
      > ->Current_done().  Are they all safe to call under this lock?
      
      Short answer: Yes, trust me.  ;-) Long answer:
      
      The done() callbacks are passed on to sbp2 from the SCSI stack along
      with each SCSI command via the queuecommand hook.  The done() callback
      is safe to call in atomic context.  So does
      Documentation/scsi/scsi_mid_low_api.txt say, and many if not all SCSI
      low-level handlers rely on this fact.  So whatever this callback does,
      it is "self-contained" and it won't conflict with sbp2's internal ORB
      list handling.  In particular, it won't race with the
      sbp2_command_orb_lock.
      
      Moreover, sbp2 already calls the done() handler with
      sbp2_command_orb_lock taken in sbp2scsi_complete_all_commands().  I
      admit this is ultimately no proof of correctness, especially since this
      portion of code introduced the spinlock recursion in the first place and
      we didn't realize it since this code's submission before 2.6.15 until
      now.  (I have learned a lesson from this.)
      
      I stress-tested my patch on x86 uniprocessor with a preemptible SMP
      kernel (alas I have no SMP machine yet) and made sure that all code
      paths which involve the sbp2_command_orb_lock were gone through multiple
      times.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      24c7cd06
  5. 29 3月, 2006 10 次提交
  6. 28 3月, 2006 1 次提交
  7. 27 3月, 2006 1 次提交
  8. 26 3月, 2006 1 次提交
  9. 01 3月, 2006 1 次提交
  10. 23 2月, 2006 3 次提交
    • S
      sbp2: update 36byte inquiry workaround (fix compatibility regression) · a80614d1
      Stefan Richter 提交于
      Since about Linux 2.6.14, sbp2's inquiry workaround did not work anymore
      due to changes in the SCSI layer. Update it to become effective again.
      Testing one of the two known affected bridges has shown that skip_ms_page_8
      is required as well.
      
      Also, make force_inquiry_hack tunable via /sys/module/sbp2/parameters.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NJody McIntyre <scjody@modernduck.com>
      (cherry picked from 99496037c6744fd938ffb8ccfc8fc91762322ff8 commit)
      a80614d1
    • S
      sbp2: variable status FIFO address (fix login timeout) · 35bdddb8
      Stefan Richter 提交于
      Let the ieee1394 core select a suitable 1394 address range for sbp2's
      status FIFO instead of using a fixed range. Since the core only selects
      addresses which are guaranteed to be out of the "physical range" as per
      OHCI 1.1, this patch also fixes an old bug:
      
      OHCI controllers which implement a writeable PhysicalUpperBound register
      included sbp2's status FIFO in the physical range. That way sbp2 was
      never notified of a succesful login and always failed after timeout.
      Affected OHCI host adapters include ALi and Fujitsu controllers.
      
      As another side effect of this patch, the status FIFO is no longer
      located in a range for which OHCI chips perform "posted writes". Each
      status write now requires a response subaction. But since large data
      transfers involve only few status writes, there is no measurable
      decrease of I/O throughput. What's more, the status FIFO is now safe
      from potential host bus errors. Nevertheless, posted writes could be
      re-enabled by extensions to the ARM features of the 1394 stack.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NJody McIntyre <scjody@modernduck.com>
      (cherry picked from b2d38cccad4ef80d6b672b8f89aae5fe2907b113 commit)
      35bdddb8
    • S
      sbp2: fix another deadlock after disconnection · bf637ec3
      Stefan Richter 提交于
      If there were commands enqueued but not completed before an SBP-2 unit
      was unplugged (or an attempt to reconnect failed), knodemgrd or any
      process which tried to remove the device would sleep uninterruptibly
      in blk_execute_rq().  Therefore make sure that all commands are
      completed when sbp2 retreats.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NJody McIntyre <scjody@modernduck.com>
      (cherry picked from 61daa34c132c5d4ed8630e2c46e9bf2f0c7b3428 commit)
      bf637ec3
  11. 19 2月, 2006 1 次提交
  12. 17 1月, 2006 1 次提交
  13. 11 1月, 2006 1 次提交
  14. 07 1月, 2006 1 次提交
  15. 05 1月, 2006 1 次提交
  16. 02 1月, 2006 1 次提交
  17. 14 12月, 2005 3 次提交