提交 73c33674 编写于 作者: K Karen Xie 提交者: James Bottomley

[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: NRandy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: NKaren Xie <kxie@chelsio.com>
Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
上级 c3673464
...@@ -496,7 +496,7 @@ static inline void reset_wr_list(struct s3_conn *c3cn) ...@@ -496,7 +496,7 @@ static inline void reset_wr_list(struct s3_conn *c3cn)
static inline void enqueue_wr(struct s3_conn *c3cn, static inline void enqueue_wr(struct s3_conn *c3cn,
struct sk_buff *skb) struct sk_buff *skb)
{ {
skb->sp = NULL; skb_wr_data(skb) = NULL;
/* /*
* We want to take an extra reference since both us and the driver * 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,7 +509,7 @@ static inline void enqueue_wr(struct s3_conn *c3cn,
if (!c3cn->wr_pending_head) if (!c3cn->wr_pending_head)
c3cn->wr_pending_head = skb; c3cn->wr_pending_head = skb;
else else
c3cn->wr_pending_tail->sp = (void *)skb; skb_wr_data(skb) = skb;
c3cn->wr_pending_tail = skb; c3cn->wr_pending_tail = skb;
} }
...@@ -529,8 +529,8 @@ static inline struct sk_buff *dequeue_wr(struct s3_conn *c3cn) ...@@ -529,8 +529,8 @@ static inline struct sk_buff *dequeue_wr(struct s3_conn *c3cn)
if (likely(skb)) { if (likely(skb)) {
/* Don't bother clearing the tail */ /* Don't bother clearing the tail */
c3cn->wr_pending_head = (struct sk_buff *)skb->sp; c3cn->wr_pending_head = skb_wr_data(skb);
skb->sp = NULL; skb_wr_data(skb) = NULL;
} }
return skb; return skb;
} }
......
...@@ -180,7 +180,7 @@ void cxgb3i_c3cn_release(struct s3_conn *); ...@@ -180,7 +180,7 @@ void cxgb3i_c3cn_release(struct s3_conn *);
* @seq: tcp sequence number * @seq: tcp sequence number
* @ddigest: pdu data digest * @ddigest: pdu data digest
* @pdulen: recovered pdu length * @pdulen: recovered pdu length
* @ulp_data: scratch area for ULP * @wr_data: scratch area for tx wr
*/ */
struct cxgb3_skb_cb { struct cxgb3_skb_cb {
__u8 flags; __u8 flags;
...@@ -188,7 +188,7 @@ struct cxgb3_skb_cb { ...@@ -188,7 +188,7 @@ struct cxgb3_skb_cb {
__u32 seq; __u32 seq;
__u32 ddigest; __u32 ddigest;
__u32 pdulen; __u32 pdulen;
__u8 ulp_data[16]; struct sk_buff *wr_data;
}; };
#define CXGB3_SKB_CB(skb) ((struct cxgb3_skb_cb *)&((skb)->cb[0])) #define CXGB3_SKB_CB(skb) ((struct cxgb3_skb_cb *)&((skb)->cb[0]))
...@@ -196,7 +196,7 @@ struct cxgb3_skb_cb { ...@@ -196,7 +196,7 @@ struct cxgb3_skb_cb {
#define skb_ulp_mode(skb) (CXGB3_SKB_CB(skb)->ulp_mode) #define skb_ulp_mode(skb) (CXGB3_SKB_CB(skb)->ulp_mode)
#define skb_ulp_ddigest(skb) (CXGB3_SKB_CB(skb)->ddigest) #define skb_ulp_ddigest(skb) (CXGB3_SKB_CB(skb)->ddigest)
#define skb_ulp_pdulen(skb) (CXGB3_SKB_CB(skb)->pdulen) #define skb_ulp_pdulen(skb) (CXGB3_SKB_CB(skb)->pdulen)
#define skb_ulp_data(skb) (CXGB3_SKB_CB(skb)->ulp_data) #define skb_wr_data(skb) (CXGB3_SKB_CB(skb)->wr_data)
enum c3cb_flags { enum c3cb_flags {
C3CB_FLAG_NEED_HDR = 1 << 0, /* packet needs a TX_DATA_WR header */ C3CB_FLAG_NEED_HDR = 1 << 0, /* packet needs a TX_DATA_WR header */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册