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: ecd63a0217
("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:
Родитель
2d2517ee31
Коммит
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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче