nfp: fix potential use after free on xdp prog
We should unregister the net_device first, before we give back our reference on xdp_prog. Otherwise xdp_prog may be freed before .ndo_stop() disabled the datapath. Found by code inspection. Fixes: ecd63a0217d5 ("nfp: add XDP support in the driver") Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2d2517ee31
commit
c383bdd14f
@ -3275,9 +3275,10 @@ void nfp_net_netdev_clean(struct net_device *netdev)
|
||||
{
|
||||
struct nfp_net *nn = netdev_priv(netdev);
|
||||
|
||||
unregister_netdev(nn->netdev);
|
||||
|
||||
if (nn->xdp_prog)
|
||||
bpf_prog_put(nn->xdp_prog);
|
||||
if (nn->bpf_offload_xdp)
|
||||
nfp_net_xdp_offload(nn, NULL);
|
||||
unregister_netdev(nn->netdev);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user