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
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;
}
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;
}
* @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;
__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]))
#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 */