Message ID | 20180110092002.10420-3-jakub.kicinski@netronome.com |
---|---|
State | Accepted, archived |
Delegated to: | BPF Maintainers |
Headers | show |
Series | net: more fixes to the XDP RXQ series | expand |
On Wed, 10 Jan 2018 01:20:02 -0800 Jakub Kicinski <jakub.kicinski@netronome.com> wrote: > Looks like commit e817f85652c1 ("xdp: generic XDP handling of > xdp_rxq_info") replaced kvfree(dev->_rx) in free_netdev() with > a call to netif_free_rx_queues() which doesn't actually free > the rings? > > While at it remove the unnecessary temporary variable. > > Fixes: e817f85652c1 ("xdp: generic XDP handling of xdp_rxq_info") > Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> > Reviewed-by: Simon Horman <simon.horman@netronome.com> Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> Thanks for fixing this!
diff --git a/net/core/dev.c b/net/core/dev.c index 852a54c769a3..74e1e5d31337 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -7653,16 +7653,15 @@ static int netif_alloc_rx_queues(struct net_device *dev) static void netif_free_rx_queues(struct net_device *dev) { unsigned int i, count = dev->num_rx_queues; - struct netdev_rx_queue *rx; /* netif_alloc_rx_queues alloc failed, resources have been unreg'ed */ if (!dev->_rx) return; - rx = dev->_rx; - for (i = 0; i < count; i++) - xdp_rxq_info_unreg(&rx[i].xdp_rxq); + xdp_rxq_info_unreg(&dev->_rx[i].xdp_rxq); + + kvfree(dev->_rx); } static void netdev_init_one_queue(struct net_device *dev,