Commit badff6d0 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo Committed by David S. Miller
Browse files

[SK_BUFF]: Introduce skb_reset_transport_header(skb)



For the common, open coded 'skb->h.raw = skb->data' operation, so that we can
later turn skb->h.raw into a offset, reducing the size of struct sk_buff in
64bit land while possibly keeping it as a pointer on 32bit.

This one touches just the most simple cases:

skb->h.raw = skb->data;
skb->h.raw = {skb_push|[__]skb_pull}()

The next ones will handle the slightly more "complex" cases.

Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0660e03f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -507,7 +507,7 @@ static void send_mpa_req(struct iwch_ep *ep, struct sk_buff *skb)
	 */
	skb_get(skb);
	set_arp_failure_handler(skb, arp_failure_discard);
	skb->h.raw = skb->data;
	skb_reset_transport_header(skb);
	len = skb->len;
	req = (struct tx_data_wr *) skb_push(skb, sizeof(*req));
	req->wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_TX_DATA));
@@ -559,7 +559,7 @@ static int send_mpa_reject(struct iwch_ep *ep, const void *pdata, u8 plen)
	skb_get(skb);
	skb->priority = CPL_PRIORITY_DATA;
	set_arp_failure_handler(skb, arp_failure_discard);
	skb->h.raw = skb->data;
	skb_reset_transport_header(skb);
	req = (struct tx_data_wr *) skb_push(skb, sizeof(*req));
	req->wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_TX_DATA));
	req->wr_lo = htonl(V_WR_TID(ep->hwtid));
@@ -610,7 +610,7 @@ static int send_mpa_reply(struct iwch_ep *ep, const void *pdata, u8 plen)
	 */
	skb_get(skb);
	set_arp_failure_handler(skb, arp_failure_discard);
	skb->h.raw = skb->data;
	skb_reset_transport_header(skb);
	len = skb->len;
	req = (struct tx_data_wr *) skb_push(skb, sizeof(*req));
	req->wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_TX_DATA));
+1 −1
Original line number Diff line number Diff line
@@ -855,7 +855,7 @@ static void cops_rx(struct net_device *dev)

        skb_reset_mac_header(skb);    /* Point to entire packet. */
        skb_pull(skb,3);
        skb->h.raw      = skb->data;    /* Point to data (Skip header). */
        skb_reset_transport_header(skb);    /* Point to data (Skip header). */

        /* Update the counters. */
        lp->stats.rx_packets++;
+2 −2
Original line number Diff line number Diff line
@@ -776,7 +776,7 @@ static int sendup_buffer (struct net_device *dev)
	/* copy ddp(s,e)hdr + contents */
	memcpy(skb->data,(void*)ltdmabuf,len);

	skb->h.raw = skb->data;
	skb_reset_transport_header(skb);

	stats->rx_packets++;
	stats->rx_bytes+=skb->len;
@@ -923,7 +923,7 @@ static int ltpc_xmit(struct sk_buff *skb, struct net_device *dev)
	cbuf.laptype = skb->data[2];
	skb_pull(skb,3);	/* skip past LLAP header */
	cbuf.length = skb->len;	/* this is host order */
	skb->h.raw=skb->data;
	skb_reset_transport_header(skb);

	if(debug & DEBUG_UPPER) {
		printk("command ");
+1 −1
Original line number Diff line number Diff line
@@ -1622,7 +1622,7 @@ static inline int rx_offload(struct t3cdev *tdev, struct sge_rspq *rq,
	rq->offload_pkts++;
	skb_reset_mac_header(skb);
	skb_reset_network_header(skb);
	skb->h.raw = skb->data;
	skb_reset_transport_header(skb);

	if (rq->polling) {
		rx_gather[gather_idx++] = skb;
+3 −3
Original line number Diff line number Diff line
@@ -265,9 +265,9 @@ static inline struct dccp_hdr *dccp_hdr(const struct sk_buff *skb)

static inline struct dccp_hdr *dccp_zeroed_hdr(struct sk_buff *skb, int headlen)
{
	skb->h.raw = skb_push(skb, headlen);
	memset(skb->h.raw, 0, headlen);
	return dccp_hdr(skb);
	skb_push(skb, headlen);
	skb_reset_transport_header(skb);
	return memset(skb->h.raw, 0, headlen);
}

static inline struct dccp_hdr_ext *dccp_hdrx(const struct sk_buff *skb)
Loading