[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: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
0660e03f6b
commit
badff6d01a
@@ -878,7 +878,7 @@ int nr_rx_frame(struct sk_buff *skb, struct net_device *dev)
|
||||
if (frametype == NR_PROTOEXT &&
|
||||
circuit_index == NR_PROTO_IP && circuit_id == NR_PROTO_IP) {
|
||||
skb_pull(skb, NR_NETWORK_LEN + NR_TRANSPORT_LEN);
|
||||
skb->h.raw = skb->data;
|
||||
skb_reset_transport_header(skb);
|
||||
|
||||
return nr_rx_ip(skb, dev);
|
||||
}
|
||||
@@ -904,7 +904,7 @@ int nr_rx_frame(struct sk_buff *skb, struct net_device *dev)
|
||||
}
|
||||
|
||||
if (sk != NULL) {
|
||||
skb->h.raw = skb->data;
|
||||
skb_reset_transport_header(skb);
|
||||
|
||||
if (frametype == NR_CONNACK && skb->len == 22)
|
||||
nr_sk(sk)->bpqext = 1;
|
||||
@@ -1149,7 +1149,7 @@ static int nr_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
return er;
|
||||
}
|
||||
|
||||
skb->h.raw = skb->data;
|
||||
skb_reset_transport_header(skb);
|
||||
copied = skb->len;
|
||||
|
||||
if (copied > size) {
|
||||
|
@@ -51,7 +51,7 @@ static int nr_queue_rx_frame(struct sock *sk, struct sk_buff *skb, int more)
|
||||
if ((skbn = alloc_skb(nr->fraglen, GFP_ATOMIC)) == NULL)
|
||||
return 1;
|
||||
|
||||
skbn->h.raw = skbn->data;
|
||||
skb_reset_transport_header(skbn);
|
||||
|
||||
while ((skbo = skb_dequeue(&nr->frag_queue)) != NULL) {
|
||||
memcpy(skb_put(skbn, skbo->len), skbo->data, skbo->len);
|
||||
|
@@ -35,7 +35,7 @@ int nr_loopback_queue(struct sk_buff *skb)
|
||||
|
||||
if ((skbn = alloc_skb(skb->len, GFP_ATOMIC)) != NULL) {
|
||||
memcpy(skb_put(skbn, skb->len), skb->data, skb->len);
|
||||
skbn->h.raw = skbn->data;
|
||||
skb_reset_transport_header(skbn);
|
||||
|
||||
skb_queue_tail(&loopback_queue, skbn);
|
||||
|
||||
|
Reference in New Issue
Block a user