mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
fcp: Do not interpret check condition as underrun
This patch avoids that the FCoE initiator sends a REC message after having received a SCSI response with non-zero status and non-zero DATA IN buffer length. Signed-off-by: Bart Van Assche <bvanassche@acm.org> Cc: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: Robert Love <robert.w.love@intel.com>
This commit is contained in:
parent
7030fd6261
commit
9de99010cb
1 changed files with 5 additions and 5 deletions
|
@ -902,7 +902,8 @@ static void fc_fcp_resp(struct fc_fcp_pkt *fsp, struct fc_frame *fp)
|
||||||
/*
|
/*
|
||||||
* Check for missing or extra data frames.
|
* Check for missing or extra data frames.
|
||||||
*/
|
*/
|
||||||
if (unlikely(fsp->xfer_len != expected_len)) {
|
if (unlikely(fsp->cdb_status == SAM_STAT_GOOD &&
|
||||||
|
fsp->xfer_len != expected_len)) {
|
||||||
if (fsp->xfer_len < expected_len) {
|
if (fsp->xfer_len < expected_len) {
|
||||||
/*
|
/*
|
||||||
* Some data may be queued locally,
|
* Some data may be queued locally,
|
||||||
|
@ -955,12 +956,11 @@ static void fc_fcp_complete_locked(struct fc_fcp_pkt *fsp)
|
||||||
* Test for transport underrun, independent of response
|
* Test for transport underrun, independent of response
|
||||||
* underrun status.
|
* underrun status.
|
||||||
*/
|
*/
|
||||||
if (fsp->xfer_len < fsp->data_len && !fsp->io_status &&
|
if (fsp->cdb_status == SAM_STAT_GOOD &&
|
||||||
|
fsp->xfer_len < fsp->data_len && !fsp->io_status &&
|
||||||
(!(fsp->scsi_comp_flags & FCP_RESID_UNDER) ||
|
(!(fsp->scsi_comp_flags & FCP_RESID_UNDER) ||
|
||||||
fsp->xfer_len < fsp->data_len - fsp->scsi_resid)) {
|
fsp->xfer_len < fsp->data_len - fsp->scsi_resid))
|
||||||
fsp->status_code = FC_DATA_UNDRUN;
|
fsp->status_code = FC_DATA_UNDRUN;
|
||||||
fsp->io_status = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
seq = fsp->seq_ptr;
|
seq = fsp->seq_ptr;
|
||||||
|
|
Loading…
Reference in a new issue