From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f194.google.com (mail-wr0-f194.google.com [209.85.128.194]) by dpdk.org (Postfix) with ESMTP id 51DD52BA7 for ; Tue, 1 May 2018 12:47:05 +0200 (CEST) Received: by mail-wr0-f194.google.com with SMTP id p18-v6so10487470wrm.1 for ; Tue, 01 May 2018 03:47:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yapB83GQF93zJtnquLmWFVh573iyxthmAmaxBW7IGws=; b=ZdU3BKSd2l4hHXrK1EKOXAi/nfzn1qn+BDiU3uD2IexO9EtMcNj07ZlQlhPTNdORcY d1ayIpUwR9kFpzGBcUnXlpT7Zn6Pt6DjpAa19AOLbNKjRJrlbEUdS8f7cknW7vY5MUOd dr1N6OJKd7KUekQd7dkpvuPoO9957z9sHgdAngFzdIlbZzkQdwn/7mUyiFIrP8k5byKT fIyxZBKPqIQGK8pxnSApMBPUdFUXHEyMIfs5F413XqhwRRF1+qY+/29wMpFIUgJspF6p xPMdqpJ1RyeYmnIHh6d8G7K3OuaAlAt7Pg6NQzLCb5/CgUersMOn+EqmD8f203FrNiWq VYkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yapB83GQF93zJtnquLmWFVh573iyxthmAmaxBW7IGws=; b=gRpQaGCWZYBzhjLzSO03yn8Kt9/xAT4j+xdzcWVwJh+WeZqeiU8FhglhNTY1zSTCQh ryssPrd2LNDU6ME76mHddC0IYPzrqYzqm6N/Kq4KlABnQCx/oOx6QCFbRkLy1r1zOi6Z uONH+bTIL7mBCLqTaXXDnvmkIE9xZgXeyedd5gQFWngL2v9SOjZIeReRRc52byS6keXY snpLWJW1XqRhjlycvM6IIz7ODH84gdXKooL9QP321ht97cQjCUw2za+ILy1VWrMLPOqJ xRNxbmUrT0Q64nKiytzPxmjN3mNeb0H6mNcOULp4cIj8UIFgBZ+0S0c7cDytTNIesMVZ f9OQ== X-Gm-Message-State: ALQs6tB71AMyCSTSwXevZ/YXOcZccdaYnAYJ0PXIj/Xa7M2LzUcjquDj Vnsm7wIECWYrTOtMyp1IY1I= X-Google-Smtp-Source: AB8JxZp8thKHk9c5WlRB9H8XPFdoiMjBYzFXMK+Movlo0HdRpP7ZX4u6KshBoQsTxK65Arj623iZkQ== X-Received: by 2002:adf:9ed0:: with SMTP id b16-v6mr7811439wrf.170.1525171625632; Tue, 01 May 2018 03:47:05 -0700 (PDT) Received: from localhost (slip139-92-244-193.lon.uk.prserv.net. [139.92.244.193]) by smtp.gmail.com with ESMTPSA id u5sm16964717wmd.40.2018.05.01.03.47.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 01 May 2018 03:47:04 -0700 (PDT) From: luca.boccassi@gmail.com To: Yunjian Wang Cc: Qi Zhang , dpdk stable Date: Tue, 1 May 2018 11:44:43 +0100 Message-Id: <20180501104509.17238-20-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.14.2 In-Reply-To: <20180501104509.17238-1-luca.boccassi@gmail.com> References: <20180501104509.17238-1-luca.boccassi@gmail.com> Subject: [dpdk-stable] patch 'net/ixgbe: fix intr callback unregister by adding retry' has been queued to LTS release 16.11.7 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: Tue, 01 May 2018 10:47:06 -0000 Hi, FYI, your patch has been queued to LTS release 16.11.7 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/03/18. So please shout if anyone has objections. Thanks. Luca Boccassi --- >>From f4ba08f62bb709f08a9709b13e02ce7e347f301d Mon Sep 17 00:00:00 2001 From: Yunjian Wang Date: Wed, 21 Mar 2018 20:28:10 +0800 Subject: [PATCH] net/ixgbe: fix intr callback unregister by adding retry [ upstream commit 91fbf1791cd7d69012010ab159d0b5c7dee81f79 ] The nic's interrupt source has some active callbacks, when the port hotplug. Add a retry to give more port's a chance to uninit before returning an error. Fixes: 2866c5f1b87e ("ixgbe: support port hotplug") Signed-off-by: Yunjian Wang Acked-by: Qi Zhang --- drivers/net/ixgbe/ixgbe_ethdev.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index 2dc69ff9f..6444a6ce2 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -1300,6 +1300,8 @@ eth_ixgbe_dev_uninit(struct rte_eth_dev *eth_dev) { struct rte_pci_device *pci_dev; struct ixgbe_hw *hw; + int retries = 0; + int ret; PMD_INIT_FUNC_TRACE(); @@ -1321,8 +1323,20 @@ eth_ixgbe_dev_uninit(struct rte_eth_dev *eth_dev) /* disable uio intr before callback unregister */ rte_intr_disable(&(pci_dev->intr_handle)); - rte_intr_callback_unregister(&(pci_dev->intr_handle), - ixgbe_dev_interrupt_handler, (void *)eth_dev); + + do { + ret = rte_intr_callback_unregister(&(pci_dev->intr_handle), + ixgbe_dev_interrupt_handler, (void *)eth_dev); + if (ret >= 0) { + break; + } else if (ret != -EAGAIN) { + PMD_INIT_LOG(ERR, + "intr callback unregister failed: %d", + ret); + return ret; + } + rte_delay_ms(100); + } while (retries++ < (10 + IXGBE_LINK_UP_TIME)); /* uninitialize PF if max_vfs not zero */ ixgbe_pf_host_uninit(eth_dev); -- 2.14.2