aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaren Xie <kxie@chelsio.com>2008-12-30 00:43:25 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-12-30 11:45:34 -0500
commit73c336740362731983bf7fd747cdd3b6ac593cef (patch)
treefcd1644cf3789e5e4af0bfd514bd2d11e8eed6b2
parentc3673464ebc004a3d82063cd41b9cf74d1b55db2 (diff)
[SCSI] cxgb3i: remove use of skb->sp
The cxgb3i was using skb->sp pointer for some internal book-keeping which is not related to the secure path. Changed it to use skb->cb[] instead. Reported-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Karen Xie <kxie@chelsio.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_offload.c8
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_offload.h6
2 files changed, 7 insertions, 7 deletions
diff --git a/drivers/scsi/cxgb3i/cxgb3i_offload.c b/drivers/scsi/cxgb3i/cxgb3i_offload.c
index 5f16081b68d5..a865f1fefe8b 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_offload.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_offload.c
@@ -496,7 +496,7 @@ static inline void reset_wr_list(struct s3_conn *c3cn)
496static inline void enqueue_wr(struct s3_conn *c3cn, 496static inline void enqueue_wr(struct s3_conn *c3cn,
497 struct sk_buff *skb) 497 struct sk_buff *skb)
498{ 498{
499 skb->sp = NULL; 499 skb_wr_data(skb) = NULL;
500 500
501 /* 501 /*
502 * We want to take an extra reference since both us and the driver 502 * We want to take an extra reference since both us and the driver
@@ -509,7 +509,7 @@ static inline void enqueue_wr(struct s3_conn *c3cn,
509 if (!c3cn->wr_pending_head) 509 if (!c3cn->wr_pending_head)
510 c3cn->wr_pending_head = skb; 510 c3cn->wr_pending_head = skb;
511 else 511 else
512 c3cn->wr_pending_tail->sp = (void *)skb; 512 skb_wr_data(skb) = skb;
513 c3cn->wr_pending_tail = skb; 513 c3cn->wr_pending_tail = skb;
514} 514}
515 515
@@ -529,8 +529,8 @@ static inline struct sk_buff *dequeue_wr(struct s3_conn *c3cn)
529 529
530 if (likely(skb)) { 530 if (likely(skb)) {
531 /* Don't bother clearing the tail */ 531 /* Don't bother clearing the tail */
532 c3cn->wr_pending_head = (struct sk_buff *)skb->sp; 532 c3cn->wr_pending_head = skb_wr_data(skb);
533 skb->sp = NULL; 533 skb_wr_data(skb) = NULL;
534 } 534 }
535 return skb; 535 return skb;
536} 536}
diff --git a/drivers/scsi/cxgb3i/cxgb3i_offload.h b/drivers/scsi/cxgb3i/cxgb3i_offload.h
index 5b93d629e5c1..d23156907ffd 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_offload.h
+++ b/drivers/scsi/cxgb3i/cxgb3i_offload.h
@@ -180,7 +180,7 @@ void cxgb3i_c3cn_release(struct s3_conn *);
180 * @seq: tcp sequence number 180 * @seq: tcp sequence number
181 * @ddigest: pdu data digest 181 * @ddigest: pdu data digest
182 * @pdulen: recovered pdu length 182 * @pdulen: recovered pdu length
183 * @ulp_data: scratch area for ULP 183 * @wr_data: scratch area for tx wr
184 */ 184 */
185struct cxgb3_skb_cb { 185struct cxgb3_skb_cb {
186 __u8 flags; 186 __u8 flags;
@@ -188,7 +188,7 @@ struct cxgb3_skb_cb {
188 __u32 seq; 188 __u32 seq;
189 __u32 ddigest; 189 __u32 ddigest;
190 __u32 pdulen; 190 __u32 pdulen;
191 __u8 ulp_data[16]; 191 struct sk_buff *wr_data;
192}; 192};
193 193
194#define CXGB3_SKB_CB(skb) ((struct cxgb3_skb_cb *)&((skb)->cb[0])) 194#define CXGB3_SKB_CB(skb) ((struct cxgb3_skb_cb *)&((skb)->cb[0]))
@@ -196,7 +196,7 @@ struct cxgb3_skb_cb {
196#define skb_ulp_mode(skb) (CXGB3_SKB_CB(skb)->ulp_mode) 196#define skb_ulp_mode(skb) (CXGB3_SKB_CB(skb)->ulp_mode)
197#define skb_ulp_ddigest(skb) (CXGB3_SKB_CB(skb)->ddigest) 197#define skb_ulp_ddigest(skb) (CXGB3_SKB_CB(skb)->ddigest)
198#define skb_ulp_pdulen(skb) (CXGB3_SKB_CB(skb)->pdulen) 198#define skb_ulp_pdulen(skb) (CXGB3_SKB_CB(skb)->pdulen)
199#define skb_ulp_data(skb) (CXGB3_SKB_CB(skb)->ulp_data) 199#define skb_wr_data(skb) (CXGB3_SKB_CB(skb)->wr_data)
200 200
201enum c3cb_flags { 201enum c3cb_flags {
202 C3CB_FLAG_NEED_HDR = 1 << 0, /* packet needs a TX_DATA_WR header */ 202 C3CB_FLAG_NEED_HDR = 1 << 0, /* packet needs a TX_DATA_WR header */