1. 03 10月, 2011 1 次提交
  2. 28 7月, 2011 4 次提交
  3. 25 5月, 2011 3 次提交
  4. 01 5月, 2011 2 次提交
  5. 31 3月, 2011 1 次提交
  6. 13 2月, 2011 5 次提交
  7. 22 12月, 2010 9 次提交
  8. 17 11月, 2010 1 次提交
    • J
      SCSI host lock push-down · f281233d
      Jeff Garzik 提交于
      Move the mid-layer's ->queuecommand() invocation from being locked
      with the host lock to being unlocked to facilitate speeding up the
      critical path for drivers who don't need this lock taken anyway.
      
      The patch below presents a simple SCSI host lock push-down as an
      equivalent transformation.  No locking or other behavior should change
      with this patch.  All existing bugs and locking orders are preserved.
      
      Additionally, add one parameter to queuecommand,
      	struct Scsi_Host *
      and remove one parameter from queuecommand,
      	void (*done)(struct scsi_cmnd *)
      
      Scsi_Host* is a convenient pointer that most host drivers need anyway,
      and 'done' is redundant to struct scsi_cmnd->scsi_done.
      
      Minimal code disturbance was attempted with this change.  Most drivers
      needed only two one-line modifications for their host lock push-down.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      Acked-by: NJames Bottomley <James.Bottomley@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f281233d
  9. 02 11月, 2010 1 次提交
  10. 26 10月, 2010 2 次提交
  11. 07 8月, 2010 1 次提交
  12. 28 7月, 2010 4 次提交
  13. 17 5月, 2010 1 次提交
    • R
      [SCSI] libfc: Move the port_id into lport · 7b2787ec
      Robert Love 提交于
      This patch creates a port_id member in struct fc_lport.
      This allows libfc to just deal with fc_lport instances
      instead of calling into the fc_host to get the port_id.
      
      This change helps in only using symbols necessary for
      operation from the libfc structures. libfc still needs
      to change the fc_host_port_id() if the port_id changes
      so the presentation layer (scsi_transport_fc) can provide
      the user with the correct value, but libfc shouldn't
      rely on the presentation layer for operational values.
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      7b2787ec
  14. 12 4月, 2010 2 次提交
  15. 11 4月, 2010 3 次提交
    • J
      [SCSI] libfc, libfcoe, fcoe: use smp_processor_id() only when preempt disabled · f018b73a
      Joe Eykholt 提交于
      When the kernel is configured for preemption, using smp_processor_id()
      when preemption is enabled causes a warning backtrace and is wrong
      since we could move off of that CPU as soon as we get the ID,
      and we would be referencing the wrong CPU, and possibly an invalid one
      if it could be hotswapped out.
      
      Remove the fc_lport_get_stats() function and explicitly use per_cpu_ptr()
      to get the statistics.  Where preemption has been disabled by holding
      a _bh lock continue to use smp_processor_id(), but otherwise use
      get_cpu()/put_cpu().
      
      In fcoe_recv_frame() also changed the cases where we return in the
      middle to do a goto to the code which bumps ErrorFrames and does
      a put_cpu().  Two of these cases didn't bump ErrorFrames before, but
      doing so is harmless because they "can't happen", due to prior length
      checks.
      
      Also rearranged code in fcoe_recv_frame() to have only one call to
      fc_exch_recv().  It's just as efficient and saves a call to put_cpu().
      
      In fc_fcp.c, adjusted a FIXME comment for code which doesn't need fixing.
      Signed-off-by: NJoe Eykholt <jeykholt@cisco.com>
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      f018b73a
    • R
      [SCSI] libfc: Add debug statements when fc_fcp returns DID_ERROR to scsi-ml · b3ef990c
      Robert Love 提交于
      DID_ERROR cases can be ambigouos. Debugging FCP error cases
      will be much easier if we have debug statements when we hit
      these error conditions.
      
      This patch simply adds debug messages using the FC_FCP_DBG
      macro when we return DID_ERROR to SCSI. This way if a DID_ERROR
      is reproducible turning on debug_logging will give a clue
      to developers as to what the problem might be.
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      b3ef990c
    • V
      [SCSI] libfc: fix fcp pkt recovery in fc_fcp_recv_data · 5c12c418
      Vasu Dev 提交于
      Currently fc_fcp_recv_data calls fc_fcp_retry_cmd to
      retry failed IO but in this case tgt is still sending
      data frames, therefore exchange needs to be aborted
      first before initiating retry. So this patch fixes
      this by aborting exchange first then have retry.
      
      Renames fc_timeout_error to fc_fcp_recovery since
      fc_timeout_error is already called from several other
      places beside from fcp timeout handler and then
      used fc_fcp_recovery for abort & retry from
      fc_fcp_recv_data, this rename also required renaming
      FC_CMD_TIME_OUT status to FC_CMD_RECOVERY to be
      consistent with new fc_fcp_recovery.
      
      Data frames are not expected for an DDPed exchange and
      potentially it could be tampered data frame, so does
      recovery in this case by calling fc_fcp_recovery.
      Signed-off-by: NVasu Dev <vasu.dev@intel.com>
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      5c12c418