Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: hdlc_x25: Remove unnecessary skb_reset_network_header calls

1. In x25_xmit, skb_reset_network_header is not necessary before we call
lapb_data_request. The lapb module doesn't need skb->network_header.
So there is no need to set skb->network_header before calling
lapb_data_request.

2. In x25_data_indication (called by the lapb module after data have
been received), skb_reset_network_header is not necessary before we
call netif_rx. After we call netif_rx, the code in net/core/dev.c will
call skb_reset_network_header before handing the skb to upper layers
(in __netif_receive_skb_core, called by __netif_receive_skb_one_core,
called by __netif_receive_skb, called by process_backlog). So we don't
need to call skb_reset_network_header by ourselves.

Cc: Martin Schiller <ms@dev.tdt.de>
Signed-off-by: Xie He <xie.he.0141@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Xie He and committed by
David S. Miller
7bdddc68 016ade51

-2
-2
drivers/net/wan/hdlc_x25.c
··· 77 77 } 78 78 79 79 skb_push(skb, 1); 80 - skb_reset_network_header(skb); 81 80 82 81 ptr = skb->data; 83 82 *ptr = X25_IFACE_DATA; ··· 117 118 switch (skb->data[0]) { 118 119 case X25_IFACE_DATA: /* Data to be transmitted */ 119 120 skb_pull(skb, 1); 120 - skb_reset_network_header(skb); 121 121 if ((result = lapb_data_request(dev, skb)) != LAPB_OK) 122 122 dev_kfree_skb(skb); 123 123 return NETDEV_TX_OK;