<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/libfc/fc_fcp.c, branch linux-3.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.1.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.1.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2011-08-29T02:40:12Z</updated>
<entry>
<title>[SCSI] libfc: block SCSI eh thread for blocked rports</title>
<updated>2011-08-29T02:40:12Z</updated>
<author>
<name>Vasu Dev</name>
</author>
<published>2011-08-25T19:40:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=21cc0bd3a9e524b44a4f0ff05ac612aa0ff1a26e'/>
<id>urn:sha1:21cc0bd3a9e524b44a4f0ff05ac612aa0ff1a26e</id>
<content type='text'>
Call fc_block_scsi_eh() in all fcoe eh to blocks
the scsi_eh thread for blocked rports.

Signed-off-by: Vasu Dev &lt;vasu.dev@intel.com&gt;
Tested-by: Ross Brattain &lt;ross.b.brattain@intel.com&gt;
Reviewed-by: Yi Zou &lt;yi.zou@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: Remove the reference to FCP packet from scsi_cmnd in case of error</title>
<updated>2011-07-28T08:13:15Z</updated>
<author>
<name>Neerav Parikh</name>
</author>
<published>2011-07-27T22:10:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c9d24a76184b3ecbedc66d45f840c3dfd921f12b'/>
<id>urn:sha1:c9d24a76184b3ecbedc66d45f840c3dfd921f12b</id>
<content type='text'>
fc_queuecommand() allocates an FCP packet for each SCSI command and sends
it out on the wire. In the process it stores the reference to the FCP packet
in the scsi_cmnd structure.
Now, in case under stress testing the libfc exchange layer runs out of
exchanges the fc_queuecommand() may not be able to send out commands out on
the wire. In such a scenario if there is an error in sending the FCP packet
out the wire; fc_queuecommand() deletes the FCP packet from internal queue,
releases the FCP packet and returns a SCSI_MLQUEUE_HOST_BUSY status to the
scsi-ml. But, the reference to the FCP packet set in the scsi_cmnd is not
removed from the scsi_cmnd in this code path.

This might lead to a crash under stress testing where the scsi_cmnd failed by
fc_queuecommand() comes up to fc_eh_abort() via scsi eh thread. fc_eh_abort()
will get reference to the FCP packet to be aborted from the scsi_cmnd for
further FCP abort related processing and then try to release the FCP packet
that has already been released.

This patch removes the FCP packet reference from the scsi_cmnd before returning
back from fc_queuecommand() in case of an error in sending out the FCP packet.

Signed-off-by: Neerav Parikh &lt;Neerav.Parikh@intel.com&gt;
Tested-by: Ross Brattain &lt;ross.b.brattain@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: cleanup sending SRR request</title>
<updated>2011-07-28T08:12:27Z</updated>
<author>
<name>Hillf Danton</name>
</author>
<published>2011-07-27T22:10:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=85982127273be0474e9505c0aac35973a0a013f8'/>
<id>urn:sha1:85982127273be0474e9505c0aac35973a0a013f8</id>
<content type='text'>
The variable on stack, namely cdb_op, is not used but removed.

[ Patch reworked by Robert Love due to invalid patch format ]

Signed-off-by: Hillf Danton &lt;dhillf@gmail.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: two minor changes in comments</title>
<updated>2011-07-28T08:12:06Z</updated>
<author>
<name>Hillf Danton</name>
</author>
<published>2011-07-27T22:10:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=547fb12b7a1c8de6bb57a68553f2319430a3541a'/>
<id>urn:sha1:547fb12b7a1c8de6bb57a68553f2319430a3541a</id>
<content type='text'>
One change is to cleanup typo in comment for fc_fcp_recv(), another corrects
the misleading comment for fc_fcp_abts_resp().

[ Patch reworked by Robert Love due to invalid patch format ]

Signed-off-by: Hillf Danton &lt;dhillf@gmail.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: use FC_MAX_ERROR_CNT</title>
<updated>2011-07-28T08:09:36Z</updated>
<author>
<name>Hillf Danton</name>
</author>
<published>2011-07-27T22:10:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=688fd36427050a87b19f6830c882ee77bb851ecf'/>
<id>urn:sha1:688fd36427050a87b19f6830c882ee77bb851ecf</id>
<content type='text'>
Though defined, FC_MAX_ERROR_CNT is not used. It is used now for CRC error in
the path of receiving FCP frame.

Signed-off-by: Hillf Danton &lt;dhillf@gmail.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: do not immediately retry the cmd when seq_send fails in fc_fcp_send_data</title>
<updated>2011-05-24T16:37:25Z</updated>
<author>
<name>Yi Zou</name>
</author>
<published>2011-05-16T23:45:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8467b96c035a45418c5db2619f396b7131b4efa8'/>
<id>urn:sha1:8467b96c035a45418c5db2619f396b7131b4efa8</id>
<content type='text'>
Currently, when seq_send() fails in fc_fcp_send_data(),
fc_fcp_retry_cmd() would complete this failed I/O directly and let
scsi-ml retry. However, target side is not notified which may hang the
target. Instead, we should just bail out from from fc_fcp_send_data
and let scsi-ml times it out and aborts this I/O instead.

Signed-off-by: Yi Zou &lt;yi.zou@intel.com&gt;
Tested-by: Ross Brattain &lt;ross.b.brattain@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;jbottomley@parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: fix race in SRR response</title>
<updated>2011-05-24T16:37:15Z</updated>
<author>
<name>Vasu Dev</name>
</author>
<published>2011-05-16T23:45:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0a219edb263ef93e4fd7a83804bea667e72a7bfa'/>
<id>urn:sha1:0a219edb263ef93e4fd7a83804bea667e72a7bfa</id>
<content type='text'>
In this case fsp was freed before error handler was invoked,
this is fixed by having SRR fsp reference freed by exch
destructor so that fsp will be always held until it exch
is freed.

Also don't reset fsp-&gt;recov_seq since this is needed by
SRR error handler to do exch done.

Signed-off-by: Vasu Dev &lt;vasu.dev@intel.com&gt;
Tested-by: Ross Brattain &lt;ross.b.brattain@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;jbottomley@parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: release DDP context if frame_send() fails</title>
<updated>2011-05-24T16:36:51Z</updated>
<author>
<name>Yi Zou</name>
</author>
<published>2011-05-16T23:45:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6a716a8535ea8ed7676cea1e122f1c3d02e55b6b'/>
<id>urn:sha1:6a716a8535ea8ed7676cea1e122f1c3d02e55b6b</id>
<content type='text'>
In case frame_send() fails, make sure to let the underlying HW release the DDP
context that has already been set up before calling frame_send().

Signed-off-by: Yi Zou &lt;yi.zou@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;jbottomley@parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: rec tov value and REC_TOV_CONST units usages is incorrect</title>
<updated>2011-05-01T15:20:56Z</updated>
<author>
<name>Vasu Dev</name>
</author>
<published>2011-04-01T23:06:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f2817ec2e0faece03959888050730ed35e5f2bd2'/>
<id>urn:sha1:f2817ec2e0faece03959888050730ed35e5f2bd2</id>
<content type='text'>
Added REC_TOV_CONST intent was to have rec tov as e_d_tov + 1s
but currently it is e_d_tov + 1ms since e_d_tov is stored in ms
unit.

Also returned rec tov by get_fsp_rec_tov is in ms and this ms tov
is used as-is with fc_fcp_timer_set expecting jiffies tov.

Fixed this by having get_fsp_rec_tov return rec tov in jiffies
as e_d_tov + 1s and then use jiffies tov w/ fc_fcp_timer_set.

Also some cleanup, no need to cache get_fsp_rec_tov return value
in local rec_tov at various places.

Signed-off-by: Vasu Dev &lt;vasu.dev@intel.com&gt;
Tested-by: Ross Brattain &lt;ross.b.brattain@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: Move host_lock usage into ramp_up/down routines</title>
<updated>2011-05-01T15:20:33Z</updated>
<author>
<name>Robert Love</name>
</author>
<published>2011-04-01T23:06:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9c8cce8e416b3286720379b5efa1c7fa81b2ec36'/>
<id>urn:sha1:9c8cce8e416b3286720379b5efa1c7fa81b2ec36</id>
<content type='text'>
The host_lock is still used to protect the can_queue
value in the Scsi_Host, but it doesn't need to be held
and released by each caller. This patch moves the lock
usage into the fc_fcp_can_queue_ramp_up and
fc_fcp_can_queue_ramp_down routines.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Tested-by: Ross Brattain &lt;ross.b.brattain@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
</feed>
