aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libfc
diff options
context:
space:
mode:
authorYi Zou <yi.zou@intel.com>2009-02-27 13:56:11 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-10 10:06:36 -0400
commit422819cfa3a2605a0b3bdc33aaef0bc2feaeaada (patch)
treeccf16a42a776c3980acd16b96eb832e84ac01298 /drivers/scsi/libfc
parent03ec862dff57ca3d1fcb439b99aadc45bc5c2f28 (diff)
[SCSI] libfc: do not change the fh_rx_id of a recevied frame
We shouldn't be altering inbound frames. Signed-off-by: Yi Zou <yi.zou@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/libfc')
-rw-r--r--drivers/scsi/libfc/fc_exch.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
index 7b933954c107..505825b6124d 100644
--- a/drivers/scsi/libfc/fc_exch.c
+++ b/drivers/scsi/libfc/fc_exch.c
@@ -625,7 +625,6 @@ static struct fc_exch *fc_exch_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
625{ 625{
626 struct fc_exch *ep; 626 struct fc_exch *ep;
627 struct fc_frame_header *fh; 627 struct fc_frame_header *fh;
628 u16 rxid;
629 628
630 ep = mp->lp->tt.exch_get(mp->lp, fp); 629 ep = mp->lp->tt.exch_get(mp->lp, fp);
631 if (ep) { 630 if (ep) {
@@ -652,18 +651,6 @@ static struct fc_exch *fc_exch_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
652 if ((ntoh24(fh->fh_f_ctl) & FC_FC_SEQ_INIT) == 0) 651 if ((ntoh24(fh->fh_f_ctl) & FC_FC_SEQ_INIT) == 0)
653 ep->esb_stat &= ~ESB_ST_SEQ_INIT; 652 ep->esb_stat &= ~ESB_ST_SEQ_INIT;
654 653
655 /*
656 * Set the responder ID in the frame header.
657 * The old one should've been 0xffff.
658 * If it isn't, don't assign one.
659 * Incoming basic link service frames may specify
660 * a referenced RX_ID.
661 */
662 if (fh->fh_type != FC_TYPE_BLS) {
663 rxid = ntohs(fh->fh_rx_id);
664 WARN_ON(rxid != FC_XID_UNKNOWN);
665 fh->fh_rx_id = htons(ep->rxid);
666 }
667 fc_exch_hold(ep); /* hold for caller */ 654 fc_exch_hold(ep); /* hold for caller */
668 spin_unlock_bh(&ep->ex_lock); /* lock from exch_get */ 655 spin_unlock_bh(&ep->ex_lock); /* lock from exch_get */
669 } 656 }