2020-12-09 01:42:53

by Xie He

[permalink] [raw]
Subject: [PATCH net-next v2] 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 some 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 <[email protected]>
Signed-off-by: Xie He <[email protected]>
---
drivers/net/wan/hdlc_x25.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/net/wan/hdlc_x25.c b/drivers/net/wan/hdlc_x25.c
index f52b9fed0593..bb164805804e 100644
--- a/drivers/net/wan/hdlc_x25.c
+++ b/drivers/net/wan/hdlc_x25.c
@@ -77,7 +77,6 @@ static int x25_data_indication(struct net_device *dev, struct sk_buff *skb)
}

skb_push(skb, 1);
- skb_reset_network_header(skb);

ptr = skb->data;
*ptr = X25_IFACE_DATA;
@@ -118,7 +117,6 @@ static netdev_tx_t x25_xmit(struct sk_buff *skb, struct net_device *dev)
switch (skb->data[0]) {
case X25_IFACE_DATA: /* Data to be transmitted */
skb_pull(skb, 1);
- skb_reset_network_header(skb);
if ((result = lapb_data_request(dev, skb)) != LAPB_OK)
dev_kfree_skb(skb);
return NETDEV_TX_OK;
--
2.27.0


2020-12-10 03:28:13

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net-next v2] net: hdlc_x25: Remove unnecessary skb_reset_network_header calls

From: Xie He <[email protected]>
Date: Tue, 8 Dec 2020 17:40:13 -0800

> 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 some 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 <[email protected]>
> Signed-off-by: Xie He <[email protected]>

Applied, thanks.