From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f195.google.com (mail-wr0-f195.google.com [209.85.128.195]) by dpdk.org (Postfix) with ESMTP id 7628628F3 for ; Tue, 1 May 2018 12:47:04 +0200 (CEST) Received: by mail-wr0-f195.google.com with SMTP id i14-v6so7313643wre.2 for ; Tue, 01 May 2018 03:47:04 -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=EgWx11lIO3vEEwDhUeiVG00PQaOE4Zk47uB3y+UDnJE=; b=CIdm67jpOpKpkljMk8GJKdfJks41Qzd3ow/ADOw5YdLrpoQLqNIdlIACost8vYp7cB Boaoj6xibXAkwvbir0vHkRzmZ9q8CrAaxMMq/uD4t2a+RiiOWzu2FkUb9Usb7EL6y44i hYz3N8Eba1Klr4KU4KEunx6Jx9i8KzHow7wBMvynG7I8HZknE1I5s0Wj4W8oxZCo8ITN wkxGvZ91u+JE5puSqL8CFja/niMfXqTT3ia4ok2LyPsvGExb0s6C/ZsfWSYYbdZBdux3 WCFid8mlf+qj2CuAXzqrEI17c3ox93Bt+uORADsFlCQV8d2hzE7xue/s48PI8dHSRGtN Hp7w== 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=EgWx11lIO3vEEwDhUeiVG00PQaOE4Zk47uB3y+UDnJE=; b=Avs3ccGOXCJDL9t9wQXwUcdIs4LlOKJerrV2lLMAMIPkyBfV1f1V1ojmaj5DMQxNV4 caGy3WK161wOPnPM1ZhTSLZNMWnjizICOCPlbNFNfxWkRIbwqgxD8VINpiTHBF34Wgdm epvsdowGeWzz8w4tdvkTFsjbMffvJuCFQFL/aNAhVf3h8OqfdyBSHDO0EBpJMW1mW+de U+RlNMzisPh9JiU5LlE6UHCF6/YHB6zibv0QJEMC9NxIF+rUukonx+bZ1xh2cTh5Uz/s uDbDmqxqa5GsGba0eLjJD0oky33tkhjVPcJOz+ZpiQ/As+ikH8UE8jQL6O/x/bRnQ4U8 K1KA== X-Gm-Message-State: ALQs6tCzqGwL3KlH5KluD5RphNrYRkuL20MA+/AHtcnHZxnGX/mjEgFB QXOnyI+T0bbsuXU1SuJD0qk= X-Google-Smtp-Source: AB8JxZoran3yt4ojrj2cm6nivJzoCKG5KLxtGkyRWw7o0AnKpbA1KPS0g8HcqoN8KOVSVRxuQ1AA8Q== X-Received: by 2002:adf:ad46:: with SMTP id p64-v6mr10402978wrc.44.1525171624178; Tue, 01 May 2018 03:47:04 -0700 (PDT) Received: from localhost (slip139-92-244-193.lon.uk.prserv.net. [139.92.244.193]) by smtp.gmail.com with ESMTPSA id b185sm8736794wmb.25.2018.05.01.03.47.03 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 01 May 2018 03:47:03 -0700 (PDT) From: luca.boccassi@gmail.com To: Yunjian Wang Cc: Kirill Rybalchenko , Qi Zhang , dpdk stable Date: Tue, 1 May 2018 11:44:42 +0100 Message-Id: <20180501104509.17238-19-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/i40e: 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:04 -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 d8328aecf22d573aeb5c6636eb43bb99a259edb0 Mon Sep 17 00:00:00 2001 From: Yunjian Wang Date: Tue, 20 Mar 2018 15:01:24 +0800 Subject: [PATCH] net/i40e: fix intr callback unregister by adding retry [ upstream commit 0264539dce2d40d8abaed474d4b1b526ca3ed2e4 ] 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: d42aaf30008b ("i40e: support port hotplug") Signed-off-by: Yunjian Wang Reviewed-by: Kirill Rybalchenko Acked-by: Qi Zhang --- drivers/net/i40e/i40e_ethdev.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 696bb6595..8824293f1 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -1316,6 +1316,7 @@ eth_i40e_dev_uninit(struct rte_eth_dev *dev) struct i40e_filter_control_settings settings; int ret; uint8_t aq_fail = 0; + int retries = 0; PMD_INIT_FUNC_TRACE(); @@ -1355,9 +1356,20 @@ eth_i40e_dev_uninit(struct rte_eth_dev *dev) /* disable uio intr before callback unregister */ rte_intr_disable(&(pci_dev->intr_handle)); - /* register callback func to eal lib */ - rte_intr_callback_unregister(&(pci_dev->intr_handle), - i40e_dev_interrupt_handler, (void *)dev); + /* unregister callback func to eal lib */ + do { + ret = rte_intr_callback_unregister(&(pci_dev->intr_handle), + i40e_dev_interrupt_handler, (void *)dev); + if (ret >= 0) { + break; + } else if (ret != -EAGAIN) { + PMD_INIT_LOG(ERR, + "intr callback unregister failed: %d", + ret); + return ret; + } + i40e_msec_delay(500); + } while (retries++ < 5); return 0; } -- 2.14.2