From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7F54841D53 for ; Thu, 23 Feb 2023 16:07:15 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6E3F143239; Thu, 23 Feb 2023 16:07:15 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 2F7C843221 for ; Thu, 23 Feb 2023 16:07:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677164831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SDNIJfGSCEMAKscFVT7fmJ54DyjlEYuGxa0+RYGdhmo=; b=aFGFtE9XP75eedVkP+0RiQAnrV45dhmkxbesCw/fJCYWpNv5Y80OUTuk/NPTlX99vMfe75 onma4HnVMo1o+Sv0g+jf4pOd7XVoShmDdr5Oy/Td8dihKLvkBMfZHo8lRyFV6ATz8Pouim qJDviyBcBxDRdGjWL6Buqu7gst/Os0I= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-654-ybw8X8OQNtyiLm7Zl6GswQ-1; Thu, 23 Feb 2023 10:07:09 -0500 X-MC-Unique: ybw8X8OQNtyiLm7Zl6GswQ-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 033091C00423; Thu, 23 Feb 2023 15:07:03 +0000 (UTC) Received: from rh.redhat.com (unknown [10.39.192.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3C2CE2166B2B; Thu, 23 Feb 2023 15:07:02 +0000 (UTC) From: Kevin Traynor To: David Marchand Cc: Elena Agostini , dpdk stable Subject: patch 'gpudev: fix deadlocks when registering callback' has been queued to stable release 21.11.4 Date: Thu, 23 Feb 2023 15:05:02 +0000 Message-Id: <20230223150631.723699-11-ktraynor@redhat.com> In-Reply-To: <20230223150631.723699-1-ktraynor@redhat.com> References: <20230223150631.723699-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 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 Hi, FYI, your patch has been queued to stable release 21.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 02/28/23. 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/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/868b1b71dfe1054b442c71329c6c939e8edaafd9 Thanks. Kevin --- >From 868b1b71dfe1054b442c71329c6c939e8edaafd9 Mon Sep 17 00:00:00 2001 From: David Marchand Date: Tue, 3 Jan 2023 11:49:00 +0100 Subject: [PATCH] gpudev: fix deadlocks when registering callback [ upstream commit 75d75530072e95a56799f0a8af261fc2eaf564ab ] gpu_callback_lock was not released in some branches of the register helper. While at it, set rte_errno in one of those branches. Fixes: 18cb07563165 ("gpudev: add event notification") Signed-off-by: David Marchand Acked-by: Elena Agostini --- lib/gpudev/gpudev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/gpudev/gpudev.c b/lib/gpudev/gpudev.c index 9ae36dbae9..6a549ee08e 100644 --- a/lib/gpudev/gpudev.c +++ b/lib/gpudev/gpudev.c @@ -408,4 +408,5 @@ rte_gpu_callback_register(int16_t dev_id, enum rte_gpu_event event, callback->user_data == user_data) { GPU_LOG(INFO, "callback already registered"); + rte_rwlock_write_unlock(&gpu_callback_lock); return 0; } @@ -415,5 +416,7 @@ rte_gpu_callback_register(int16_t dev_id, enum rte_gpu_event event, if (callback == NULL) { GPU_LOG(ERR, "cannot allocate callback"); - return -ENOMEM; + rte_rwlock_write_unlock(&gpu_callback_lock); + rte_errno = ENOMEM; + return -rte_errno; } callback->function = function; -- 2.39.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-02-23 14:46:24.129206525 +0000 +++ 0011-gpudev-fix-deadlocks-when-registering-callback.patch 2023-02-23 14:46:23.712235764 +0000 @@ -1 +1 @@ -From 75d75530072e95a56799f0a8af261fc2eaf564ab Mon Sep 17 00:00:00 2001 +From 868b1b71dfe1054b442c71329c6c939e8edaafd9 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 75d75530072e95a56799f0a8af261fc2eaf564ab ] + @@ -11 +12,0 @@ -Cc: stable@dpdk.org @@ -20 +21 @@ -index 805719d00c..8f12abef23 100644 +index 9ae36dbae9..6a549ee08e 100644 @@ -23 +24 @@ -@@ -409,4 +409,5 @@ rte_gpu_callback_register(int16_t dev_id, enum rte_gpu_event event, +@@ -408,4 +408,5 @@ rte_gpu_callback_register(int16_t dev_id, enum rte_gpu_event event, @@ -29 +30 @@ -@@ -416,5 +417,7 @@ rte_gpu_callback_register(int16_t dev_id, enum rte_gpu_event event, +@@ -415,5 +416,7 @@ rte_gpu_callback_register(int16_t dev_id, enum rte_gpu_event event,