Andrew Lunn <andrew@xxxxxxx> writes: > On Tue, Jul 04, 2023 at 04:29:14PM +0800, wei.fang@xxxxxxx wrote: >> From: Wei Fang <wei.fang@xxxxxxx> >> >> When a XDP program is installed or uninstalled, fec_restart() will >> be invoked to reset MAC and buffer descriptor rings. It's reasonable >> not to transmit any packet during the process of reset. However, the >> NETDEV_XDP_ACT_NDO_XMIT bit of xdp_features is enabled by default, >> that is to say, it's possible that the fec_enet_xdp_xmit() will be >> invoked even if the process of reset is not finished. In this case, >> the redirected XDP frames might be dropped and available transmit BDs >> may be incorrectly deemed insufficient. So this patch disable the >> NETDEV_XDP_ACT_NDO_XMIT feature by default and dynamically configure >> this feature when the bpf program is installed or uninstalled. > > I don't know much about XDP, so please excuse what might be a stupid > question. > > Is this a generic issue? Should this > xdp_features_clear_redirect_target(dev) / > xdp_features_set_redirect_target(dev, false) be done in the core? No, because not all drivers require an XDP program to be attached to support being a redirect target (which is one of the reasons we introduced these feature bits in the first place :)). -Toke