mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-02 20:29:20 +00:00
[SK_BUFF]: Introduce skb_mac_header()
For the places where we need a pointer to the mac header, it is still legal to touch skb->mac.raw directly if just adding to, subtracting from or setting it to another layer header. This one also converts some more cases to skb_reset_mac_header() that my regex missed as it had no spaces before nor after '=', ugh. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
31713c333d
commit
98e399f82a
49 changed files with 108 additions and 88 deletions
|
@ -284,7 +284,7 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct
|
|||
* Incoming packets have ll header pulled,
|
||||
* push it back.
|
||||
*
|
||||
* For outgoing ones skb->data == skb->mac.raw
|
||||
* For outgoing ones skb->data == skb_mac_header(skb)
|
||||
* so that this procedure is noop.
|
||||
*/
|
||||
|
||||
|
@ -303,7 +303,7 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct
|
|||
|
||||
spkt = &PACKET_SKB_CB(skb)->sa.pkt;
|
||||
|
||||
skb_push(skb, skb->data-skb->mac.raw);
|
||||
skb_push(skb, skb->data - skb_mac_header(skb));
|
||||
|
||||
/*
|
||||
* The SOCK_PACKET socket receives _all_ frames.
|
||||
|
@ -488,7 +488,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev, struct packet
|
|||
never delivered to user.
|
||||
*/
|
||||
if (sk->sk_type != SOCK_DGRAM)
|
||||
skb_push(skb, skb->data - skb->mac.raw);
|
||||
skb_push(skb, skb->data - skb_mac_header(skb));
|
||||
else if (skb->pkt_type == PACKET_OUTGOING) {
|
||||
/* Special case: outgoing packets have ll header at head */
|
||||
skb_pull(skb, skb->nh.raw - skb->data);
|
||||
|
@ -592,7 +592,7 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, struct packe
|
|||
|
||||
if (dev->hard_header) {
|
||||
if (sk->sk_type != SOCK_DGRAM)
|
||||
skb_push(skb, skb->data - skb->mac.raw);
|
||||
skb_push(skb, skb->data - skb_mac_header(skb));
|
||||
else if (skb->pkt_type == PACKET_OUTGOING) {
|
||||
/* Special case: outgoing packets have ll header at head */
|
||||
skb_pull(skb, skb->nh.raw - skb->data);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue