mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-21 17:47:00 +00:00
kernel: 5.10: simplify logic in packet mangling patch
I had quite a hard time to understand what the change to net/core/dev.c is supposed to do. Simplify the change by returning NETDEV_TX_OK in case a eth_mangle_tx callback was set but returned NULL instead of setting the return value in the else branch. Signed-off-by: Mathias Kresin <dev@kresin.me>
This commit is contained in:
parent
1470009bf8
commit
f7f12495bc
@ -105,33 +105,18 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
help
|
help
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -3638,11 +3638,21 @@ static int xmit_one(struct sk_buff *skb,
|
@@ -3638,6 +3638,11 @@ static int xmit_one(struct sk_buff *skb,
|
||||||
if (dev_nit_active(dev))
|
if (dev_nit_active(dev))
|
||||||
dev_queue_xmit_nit(skb, dev);
|
dev_queue_xmit_nit(skb, dev);
|
||||||
|
|
||||||
- len = skb->len;
|
|
||||||
- PRANDOM_ADD_NOISE(skb, dev, txq, len + jiffies);
|
|
||||||
- trace_net_dev_start_xmit(skb, dev);
|
|
||||||
- rc = netdev_start_xmit(skb, dev, txq, more);
|
|
||||||
- trace_net_dev_xmit(skb, rc, dev, len);
|
|
||||||
+#ifdef CONFIG_ETHERNET_PACKET_MANGLE
|
+#ifdef CONFIG_ETHERNET_PACKET_MANGLE
|
||||||
+ if (!dev->eth_mangle_tx ||
|
+ if (dev->eth_mangle_tx && !(skb = dev->eth_mangle_tx(dev, skb)))
|
||||||
+ (skb = dev->eth_mangle_tx(dev, skb)) != NULL)
|
+ return NETDEV_TX_OK;
|
||||||
+#else
|
|
||||||
+ if (1)
|
|
||||||
+#endif
|
+#endif
|
||||||
+ {
|
+
|
||||||
+ len = skb->len;
|
len = skb->len;
|
||||||
+ PRANDOM_ADD_NOISE(skb, dev, txq, len + jiffies);
|
PRANDOM_ADD_NOISE(skb, dev, txq, len + jiffies);
|
||||||
+ trace_net_dev_start_xmit(skb, dev);
|
trace_net_dev_start_xmit(skb, dev);
|
||||||
+ rc = netdev_start_xmit(skb, dev, txq, more);
|
|
||||||
+ trace_net_dev_xmit(skb, rc, dev, len);
|
|
||||||
+ } else {
|
|
||||||
+ rc = NETDEV_TX_OK;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
--- a/net/core/skbuff.c
|
--- a/net/core/skbuff.c
|
||||||
+++ b/net/core/skbuff.c
|
+++ b/net/core/skbuff.c
|
||||||
@@ -60,6 +60,7 @@
|
@@ -60,6 +60,7 @@
|
||||||
|
Loading…
x
Reference in New Issue
Block a user