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 9E349A0093 for ; Thu, 28 May 2020 18:24:51 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 968971DC10; Thu, 28 May 2020 18:24:51 +0200 (CEST) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by dpdk.org (Postfix) with ESMTP id 88C2D1DC10 for ; Thu, 28 May 2020 18:24:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1590683086; 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=KsMrjW5ztC0/4CruGF0kqrY4OewA9L4/ZQbNupKqmKg=; b=B0GJw91DN/NtPGUzh8caRS7mPlWBNy8qqeUzD4b5zUWrfC5hL8XPuYIvHTYlHcFL3VGgTl OIFVisCzg7rPO3/Cx5gJ/RSk958Vw7UKhBS7+mIxyzwhrdDl0DUIot4GoiU5lfx5HmNTZZ sVPKecMwoA/71NroYkzx+y4URAUugCM= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-402-D0aPpePePg-wFuSRsZeLiA-1; Thu, 28 May 2020 12:24:43 -0400 X-MC-Unique: D0aPpePePg-wFuSRsZeLiA-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E70A3EC1A6; Thu, 28 May 2020 16:24:41 +0000 (UTC) Received: from rh.redhat.com (unknown [10.33.36.235]) by smtp.corp.redhat.com (Postfix) with ESMTP id 100E260C05; Thu, 28 May 2020 16:24:40 +0000 (UTC) From: Kevin Traynor To: Jim Harris Cc: Bruce Richardson , dpdk stable Date: Thu, 28 May 2020 17:22:08 +0100 Message-Id: <20200528162322.7863-21-ktraynor@redhat.com> In-Reply-To: <20200528162322.7863-1-ktraynor@redhat.com> References: <20200528162322.7863-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'contigmem: cleanup properly when load fails' has been queued to LTS release 18.11.9 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 LTS release 18.11.9 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/03/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/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/98eab96f8f905f4c5dbf9c5fde058d06cb805835 Thanks. Kevin. --- >From 98eab96f8f905f4c5dbf9c5fde058d06cb805835 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Mon, 9 Mar 2020 03:00:25 -0700 Subject: [PATCH] contigmem: cleanup properly when load fails [ upstream commit 3df951337441cc6b7bb99996e0acf185d4aa52c5 ] If contigmem is not able to allocate all of the requested buffers, it frees whatever buffers were able to be allocated up until that point. But the pointers are not set to NULL in that case. After the load fails, the FreeBSD kernel will immediately call the contigmem unload handler, which tries to free the buffers again since the pointers were not set to NULL. It's not clear that we should just rely on the unload handler getting called after load failure. So let's keep the existing cleanup code in the load handler, but explicitly set the pointers to NULL after freeing them. Fixes: 5f51eca22489 ("contigmem: free allocated memory on error") Signed-off-by: Jim Harris Acked-by: Bruce Richardson --- kernel/freebsd/contigmem/contigmem.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/freebsd/contigmem/contigmem.c b/kernel/freebsd/contigmem/contigmem.c index 64e0a7fecd..abb76f241e 100644 --- a/kernel/freebsd/contigmem/contigmem.c +++ b/kernel/freebsd/contigmem/contigmem.c @@ -166,7 +166,9 @@ contigmem_load() error: for (i = 0; i < contigmem_num_buffers; i++) { - if (contigmem_buffers[i].addr != NULL) + if (contigmem_buffers[i].addr != NULL) { contigfree(contigmem_buffers[i].addr, contigmem_buffer_size, M_CONTIGMEM); + contigmem_buffers[i].addr = NULL; + } if (mtx_initialized(&contigmem_buffers[i].mtx)) mtx_destroy(&contigmem_buffers[i].mtx); -- 2.21.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-05-28 17:13:00.269224835 +0100 +++ 0021-contigmem-cleanup-properly-when-load-fails.patch 2020-05-28 17:12:59.080556875 +0100 @@ -1 +1 @@ -From 3df951337441cc6b7bb99996e0acf185d4aa52c5 Mon Sep 17 00:00:00 2001 +From 98eab96f8f905f4c5dbf9c5fde058d06cb805835 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 3df951337441cc6b7bb99996e0acf185d4aa52c5 ] + @@ -23 +24,0 @@ -Cc: stable@dpdk.org @@ -32 +33 @@ -index 7ea0bc6177..bd72f4d620 100644 +index 64e0a7fecd..abb76f241e 100644