There's a semantic conflict in the Octeon staging network driver, which used the skb_reset_tc() function to reset skb state when re-using an skb. But that inline helper function was removed in mainline by commit 2c64605b590e ("net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} build"). Fix it by using skb_reset_redirect() instead. Also move it out of the This code path only ends up triggering if REUSE_SKBUFFS_WITHOUT_FREE is enabled, which in turn only happens if you don't have CONFIG_NETFILTER configured. Which was how this wasn't caught by the usual allmodconfig builds.
Unified · Split
| @@ -352,10 +352,10 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev) · 351 unmodified lines | |||
| 352 | skb_dst_set(skb, NULL); | 352 | skb_dst_set(skb, NULL); |
| 353 | skb_ext_reset(skb); | 353 | skb_ext_reset(skb); |
| 354 | nf_reset_ct(skb); | 354 | nf_reset_ct(skb); |
| 355 | skb_reset_redirect(skb); | ||
| 355 | 356 | ||
| 356 | #ifdef CONFIG_NET_SCHED | 357 | #ifdef CONFIG_NET_SCHED |
| 357 | skb->tc_index = 0; | 358 | skb->tc_index = 0; |
| 358 | skb_reset_tc(skb); | ||
| 359 | #endif /* CONFIG_NET_SCHED */ | 359 | #endif /* CONFIG_NET_SCHED */ |
| 360 | #endif /* REUSE_SKBUFFS_WITHOUT_FREE */ | 360 | #endif /* REUSE_SKBUFFS_WITHOUT_FREE */ |
| 361 | 361 | ||