From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jakub Kicinski Subject: [PATCH bpf-next 2/2] net: free RX queue structures Date: Wed, 10 Jan 2018 01:20:02 -0800 Message-ID: <20180110092002.10420-3-jakub.kicinski@netronome.com> References: <20180110092002.10420-1-jakub.kicinski@netronome.com> Cc: oss-drivers@netronome.com, brouer@redhat.com, Jakub Kicinski To: netdev@vger.kernel.org, daniel@iogearbox.net, alexei.starovoitov@gmail.com Return-path: Received: from mail-pl0-f65.google.com ([209.85.160.65]:41728 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932674AbeAJJU0 (ORCPT ); Wed, 10 Jan 2018 04:20:26 -0500 Received: by mail-pl0-f65.google.com with SMTP id q3so1583672plr.8 for ; Wed, 10 Jan 2018 01:20:26 -0800 (PST) In-Reply-To: <20180110092002.10420-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org List-ID: 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 Reviewed-by: Simon Horman --- net/core/dev.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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, -- 2.15.1