diff options
author | Yi Zou <yi.zou@intel.com> | 2009-02-27 13:56:11 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-03-10 10:06:36 -0400 |
commit | 422819cfa3a2605a0b3bdc33aaef0bc2feaeaada (patch) | |
tree | ccf16a42a776c3980acd16b96eb832e84ac01298 | |
parent | 03ec862dff57ca3d1fcb439b99aadc45bc5c2f28 (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>
-rw-r--r-- | drivers/scsi/libfc/fc_exch.c | 13 |
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 | } |