From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 19F7A1B512 for ; Fri, 30 Nov 2018 00:14:31 +0100 (CET) Received: from Internal Mail-Server by MTLPINE1 (envelope-from yskoh@mellanox.com) with ESMTPS (AES256-SHA encrypted); 30 Nov 2018 01:20:24 +0200 Received: from scfae-sc-2.mti.labs.mlnx (scfae-sc-2.mti.labs.mlnx [10.101.0.96]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id wATNCW89032075; Fri, 30 Nov 2018 01:14:29 +0200 From: Yongseok Koh To: Jeff Guo Cc: Ferruh Yigit , dpdk stable Date: Thu, 29 Nov 2018 15:11:03 -0800 Message-Id: <20181129231202.30436-69-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181129231202.30436-1-yskoh@mellanox.com> References: <20181129231202.30436-1-yskoh@mellanox.com> Subject: [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' has been queued to LTS release 17.11.5 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Nov 2018 23:14:31 -0000 Hi, FYI, your patch has been queued to LTS release 17.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 12/01/18. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. If the code is different (ie: not only metadata diffs), due for example to a change in context or macro names, please double check it. Thanks. Yongseok --- >>From 8933c679415efb064aa46025fc84df6765577897 Mon Sep 17 00:00:00 2001 From: Jeff Guo Date: Thu, 18 Oct 2018 14:27:15 +0800 Subject: [PATCH] igb_uio: fix unexpected removal for hot-unplug [ upstream commit 70efa4116420b6f7a0734711dd603d3024366c79 ] When a device is hot-unplugged, pci_remove will be invoked unexpectedly before pci_release, it will caused kernel hung issue which will throw the error info of "Trying to free already-free IRQ XXX". And on the other hand, if pci_remove before pci_release, the interrupt will not got chance to be disabled. So this patch aim to fix this issue by adding pci_release call in pci_remove, it will gurranty that all pci clean up will be done before pci removal. Signed-off-by: Jeff Guo Acked-by: Ferruh Yigit --- lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c index 45d70272d..22484ac14 100644 --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c @@ -577,6 +577,8 @@ igbuio_pci_remove(struct pci_dev *dev) { struct rte_uio_pci_dev *udev = pci_get_drvdata(dev); + igbuio_pci_release(&udev->info, NULL); + sysfs_remove_group(&dev->dev.kobj, &dev_attr_grp); uio_unregister_device(&udev->info); igbuio_pci_release_iomem(&udev->info); -- 2.11.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2018-11-29 15:01:48.264909796 -0800 +++ 0069-igb_uio-fix-unexpected-removal-for-hot-unplug.patch 2018-11-29 15:01:45.176961000 -0800 @@ -1,8 +1,10 @@ -From 70efa4116420b6f7a0734711dd603d3024366c79 Mon Sep 17 00:00:00 2001 +From 8933c679415efb064aa46025fc84df6765577897 Mon Sep 17 00:00:00 2001 From: Jeff Guo Date: Thu, 18 Oct 2018 14:27:15 +0800 Subject: [PATCH] igb_uio: fix unexpected removal for hot-unplug +[ upstream commit 70efa4116420b6f7a0734711dd603d3024366c79 ] + When a device is hot-unplugged, pci_remove will be invoked unexpectedly before pci_release, it will caused kernel hung issue which will throw the error info of "Trying to free already-free IRQ XXX". And on the other hand, @@ -14,14 +16,14 @@ Signed-off-by: Jeff Guo Acked-by: Ferruh Yigit --- - kernel/linux/igb_uio/igb_uio.c | 2 ++ + lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c -index fede66cf2..3cf394bdf 100644 ---- a/kernel/linux/igb_uio/igb_uio.c -+++ b/kernel/linux/igb_uio/igb_uio.c -@@ -570,6 +570,8 @@ igbuio_pci_remove(struct pci_dev *dev) +diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c +index 45d70272d..22484ac14 100644 +--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c ++++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c +@@ -577,6 +577,8 @@ igbuio_pci_remove(struct pci_dev *dev) { struct rte_uio_pci_dev *udev = pci_get_drvdata(dev);