From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 56A3EA0527 for ; Mon, 9 Nov 2020 19:44:04 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4D56B6883; Mon, 9 Nov 2020 19:44:03 +0100 (CET) Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by dpdk.org (Postfix) with ESMTP id BF8F872ED for ; Mon, 9 Nov 2020 19:44:00 +0100 (CET) Received: by mail-wr1-f48.google.com with SMTP id j7so2624110wrp.3 for ; Mon, 09 Nov 2020 10:44:00 -0800 (PST) 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 :mime-version:content-transfer-encoding; bh=00eSnNqD7MBhn4Jop7SCtWQBPNP/lDZAKaGFvvd/ni8=; b=q9BIVfh0Ehq+B/glIC0aYWvl6OVEVIOZxgNl8K/ukmXb79mV6KNn9IAhOQK6sQpp9s hNRnldyD587+NeZGGWLoUS1wr+VCGN4XsyfGYsnLdvn/HmSU0XqqyAL3mp/esctzfhcu AOK3MzuxUrJQ9k4ZdTX2nDd7qS/zNhXS3dCkd3Zrwa0vSIK/qn1SwMOBZ66dXltp/jMF MRf49vkBrLf46/Q3enhSM2to5T+9+GSrWjqKhyx6Jo4nO9cyjSmgwYnwBTO3/sRHKXN2 ysV/74hS91Wcy1L317/kAWa0TUfkdWK4S8dU5Mg3TVaAEV3qFiDKIieNpQmt0e3mTBUe NLXA== 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:mime-version:content-transfer-encoding; bh=00eSnNqD7MBhn4Jop7SCtWQBPNP/lDZAKaGFvvd/ni8=; b=QHgOiU7IO4uE8i4+VZRUDQIPM7XcmvwOkjMi9WLLwoPAnugaSWzdfLPkgBS1rMrprG NQQLLgyMu1aJrTNok3hZjDR3aVvnLQd94she9SDHISx0hXt2/xDgWh9KQRyVACJRDoh4 1Na5x0kw4tzcp6rrR/IzorKMsUHL/7MhVdQCCP2GiDULABAeciLb/S9tE+R/WK/3gEYd 2AKlDnadm2O4SIlnDHZ3YOKX75n6/W7nkOEQjonpaSZySsTkbq4QyLwpeifWnCZGhUue jve6ehfMRe7oy+dJnJe+OjoJKJkNxAKXf2MVehACvC8P4JstWwL9BZ3SWtjspuuUmwEz iz2w== X-Gm-Message-State: AOAM533vKCs4PGt6M2IPmYK3ZTk0w2VenBsDiMF1ELaQ7Chugyz2qwqc ywGZWUJEx9eric5VHOnQWSLFnLRBnFvDlCXS X-Google-Smtp-Source: ABdhPJw9NnL86yfPZKlCqmlvWMi6auqqEfWC1B8Rwq3GkpkJALWNRz8E8ahBH3ak+nkT8RixoBuGWg== X-Received: by 2002:adf:a2c2:: with SMTP id t2mr20157764wra.54.1604947440568; Mon, 09 Nov 2020 10:44:00 -0800 (PST) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id a128sm366452wmf.5.2020.11.09.10.43.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Nov 2020 10:43:59 -0800 (PST) From: luca.boccassi@gmail.com To: Wei Huang Cc: Tianfei Zhang , Rosen Xu , dpdk stable Date: Mon, 9 Nov 2020 18:40:37 +0000 Message-Id: <20201109184111.3463090-49-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201109184111.3463090-1-luca.boccassi@gmail.com> References: <20201028104606.3504127-207-luca.boccassi@gmail.com> <20201109184111.3463090-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'raw/ifpga/base: fix interrupt handler instance usage' has been queued to stable release 19.11.6 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: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to stable release 19.11.6 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/11/20. 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. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/b010a819fdc87b235c10dfdb99a5e715bd57d396 Thanks. Luca Boccassi --- >From b010a819fdc87b235c10dfdb99a5e715bd57d396 Mon Sep 17 00:00:00 2001 From: Wei Huang Date: Fri, 23 Oct 2020 04:59:55 -0400 Subject: [PATCH] raw/ifpga/base: fix interrupt handler instance usage [ upstream commit df016da79b59bf48118deab544d4e1829b0eebe1 ] Interrupt handler copied to the local 'intr_handle' variable by value before passing it to IRQ functions. This leads IRQ functions update the local variable instead of 'ifpga_irq_handle'. Instead, using 'intr_handle' local variable as pointer to 'ifpga_irq_handle' as intended. Fixes: e0a1aafe2af9 ("raw/ifpga: introduce IRQ functions") Signed-off-by: Wei Huang Signed-off-by: Tianfei Zhang Acked-by: Rosen Xu --- drivers/raw/ifpga/ifpga_rawdev.c | 34 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c index b8701e155b..acbfdfda27 100644 --- a/drivers/raw/ifpga/ifpga_rawdev.c +++ b/drivers/raw/ifpga/ifpga_rawdev.c @@ -1336,17 +1336,16 @@ int ifpga_unregister_msix_irq(enum ifpga_irq_type type, int vec_start, rte_intr_callback_fn handler, void *arg) { - struct rte_intr_handle intr_handle; + struct rte_intr_handle *intr_handle; if (type == IFPGA_FME_IRQ) - intr_handle = ifpga_irq_handle[0]; + intr_handle = &ifpga_irq_handle[0]; else if (type == IFPGA_AFU_IRQ) - intr_handle = ifpga_irq_handle[vec_start + 1]; + intr_handle = &ifpga_irq_handle[vec_start + 1]; - rte_intr_efd_disable(&intr_handle); + rte_intr_efd_disable(intr_handle); - return rte_intr_callback_unregister(&intr_handle, - handler, arg); + return rte_intr_callback_unregister(intr_handle, handler, arg); } int @@ -1356,7 +1355,7 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id, void *arg) { int ret; - struct rte_intr_handle intr_handle; + struct rte_intr_handle *intr_handle; struct opae_adapter *adapter; struct opae_manager *mgr; struct opae_accelerator *acc; @@ -1370,26 +1369,26 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id, return -ENODEV; if (type == IFPGA_FME_IRQ) { - intr_handle = ifpga_irq_handle[0]; + intr_handle = &ifpga_irq_handle[0]; count = 1; } else if (type == IFPGA_AFU_IRQ) - intr_handle = ifpga_irq_handle[vec_start + 1]; + intr_handle = &ifpga_irq_handle[vec_start + 1]; - intr_handle.type = RTE_INTR_HANDLE_VFIO_MSIX; + intr_handle->type = RTE_INTR_HANDLE_VFIO_MSIX; - ret = rte_intr_efd_enable(&intr_handle, count); + ret = rte_intr_efd_enable(intr_handle, count); if (ret) return -ENODEV; - intr_handle.fd = intr_handle.efds[0]; + intr_handle->fd = intr_handle->efds[0]; IFPGA_RAWDEV_PMD_DEBUG("register %s irq, vfio_fd=%d, fd=%d\n", - name, intr_handle.vfio_dev_fd, - intr_handle.fd); + name, intr_handle->vfio_dev_fd, + intr_handle->fd); if (type == IFPGA_FME_IRQ) { struct fpga_fme_err_irq_set err_irq_set; - err_irq_set.evtfd = intr_handle.efds[0]; + err_irq_set.evtfd = intr_handle->efds[0]; ret = opae_manager_ifpga_set_err_irq(mgr, &err_irq_set); if (ret) @@ -1399,13 +1398,14 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id, if (!acc) return -EINVAL; - ret = opae_acc_set_irq(acc, vec_start, count, intr_handle.efds); + ret = opae_acc_set_irq(acc, vec_start, count, + intr_handle->efds); if (ret) return -EINVAL; } /* register interrupt handler using DPDK API */ - ret = rte_intr_callback_register(&intr_handle, + ret = rte_intr_callback_register(intr_handle, handler, (void *)arg); if (ret) return -EINVAL; -- 2.27.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-11-09 18:40:13.109033606 +0000 +++ 0049-raw-ifpga-base-fix-interrupt-handler-instance-usage.patch 2020-11-09 18:40:11.175311967 +0000 @@ -1 +1 @@ -From df016da79b59bf48118deab544d4e1829b0eebe1 Mon Sep 17 00:00:00 2001 +From b010a819fdc87b235c10dfdb99a5e715bd57d396 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit df016da79b59bf48118deab544d4e1829b0eebe1 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -25 +26 @@ -index a7463de8e4..e5b938d9d6 100644 +index b8701e155b..acbfdfda27 100644 @@ -28 +29 @@ -@@ -1332,17 +1332,16 @@ int +@@ -1336,17 +1336,16 @@ int @@ -51 +52 @@ -@@ -1352,7 +1351,7 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id, +@@ -1356,7 +1355,7 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id, @@ -60 +61 @@ -@@ -1366,26 +1365,26 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id, +@@ -1370,26 +1369,26 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id, @@ -95 +96 @@ -@@ -1395,13 +1394,14 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id, +@@ -1399,13 +1398,14 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id,