Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73c33674 authored by Karen Xie's avatar Karen Xie Committed by James Bottomley
Browse files

[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: default avatarRandy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: default avatarKaren Xie <kxie@chelsio.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent c3673464
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -496,7 +496,7 @@ static inline void reset_wr_list(struct s3_conn *c3cn)
static inline void enqueue_wr(struct s3_conn *c3cn,
			      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
@@ -509,7 +509,7 @@ static inline void enqueue_wr(struct s3_conn *c3cn,
	if (!c3cn->wr_pending_head)
		c3cn->wr_pending_head = skb;
	else
		c3cn->wr_pending_tail->sp = (void *)skb;
		skb_wr_data(skb) = skb;
	c3cn->wr_pending_tail = skb;
}

@@ -529,8 +529,8 @@ static inline struct sk_buff *dequeue_wr(struct s3_conn *c3cn)

	if (likely(skb)) {
		/* Don't bother clearing the tail */
		c3cn->wr_pending_head = (struct sk_buff *)skb->sp;
		skb->sp = NULL;
		c3cn->wr_pending_head = skb_wr_data(skb);
		skb_wr_data(skb) = NULL;
	}
	return skb;
}
+3 −3
Original line number Diff line number Diff line
@@ -180,7 +180,7 @@ void cxgb3i_c3cn_release(struct s3_conn *);
 * @seq:	tcp sequence number
 * @ddigest:	pdu data digest
 * @pdulen:	recovered pdu length
 * @ulp_data:	scratch area for ULP
 * @wr_data:	scratch area for tx wr
 */
struct cxgb3_skb_cb {
	__u8 flags;
@@ -188,7 +188,7 @@ struct cxgb3_skb_cb {
	__u32 seq;
	__u32 ddigest;
	__u32 pdulen;
	__u8 ulp_data[16];
	struct sk_buff *wr_data;
};

#define CXGB3_SKB_CB(skb)	((struct cxgb3_skb_cb *)&((skb)->cb[0]))
@@ -196,7 +196,7 @@ struct cxgb3_skb_cb {
#define skb_ulp_mode(skb)	(CXGB3_SKB_CB(skb)->ulp_mode)
#define skb_ulp_ddigest(skb)	(CXGB3_SKB_CB(skb)->ddigest)
#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 {
	C3CB_FLAG_NEED_HDR = 1 << 0,	/* packet needs a TX_DATA_WR header */