Skip to contentSkip to conversation

FAILED: patch "[PATCH] dm: add missing unlock on in dm_keyslot_evict()" failed to apply to 5.12-stable tree

PATCH In review [email protected] 2 participants 3 messages May 9, 2025 – May 20, 2025

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.12.y
git checkout FETCH_HEAD
git cherry-pick -x 650266ac4c7230c89bcd1307acf5c9c92cfa85e2
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2025050954-excretion-yonder-4e95@gregkh' --subject-prefix 'PATCH 5.12.y' HEAD^..

Possible dependencies:

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 650266ac4c7230c89bcd1307acf5c9c92cfa85e2 Mon Sep 17 00:00:00 2001
From: Dan Carpenter <[email protected]>
Date: Wed, 30 Apr 2025 11:05:54 +0300
Subject: [PATCH] dm: add missing unlock on in dm_keyslot_evict()

We need to call dm_put_live_table() even if dm_get_live_table() returns NULL.

Fixes 9355a9eb21a5 ("dm: support key eviction from keyslot managers of underlying devices")
Cc [email protected] # v5.12+
drivers/md/dm-table.c +2 -1
index 9e175c5e0634..31d67a1a91dd 100644
@@ -1173,7 +1173,7 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile,
 
 	t = dm_get_live_table(md, &srcu_idx);
 	if (!t)
-		return 0;
+		goto put_live_table;
 
 	for (unsigned int i = 0; i < t->num_targets; i++) {
 		struct dm_target *ti = dm_table_get_target(t, i);
@@ -1184,6 +1184,7 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile,
 					  (void *)key);
 	}
 
+put_live_table:
 	dm_put_live_table(md, srcu_idx);
 	return 0;
 }
maintainer
#1 lore raw

PATCH 1/1 dm: add missing unlock on in dm_keyslot_evict()

Hi

Here I'm submitting updated patch.

Mikulas

Quoted 53 lines · On Fri, 9 May 2025, [email protected] wrote:

The patch below does not apply to the 5.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.12.y
git checkout FETCH_HEAD
git cherry-pick -x 650266ac4c7230c89bcd1307acf5c9c92cfa85e2
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2025050954-excretion-yonder-4e95@gregkh' --subject-prefix 'PATCH 5.12.y' HEAD^..

Possible dependencies:

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

Quoted 1 line

From 650266ac4c7230c89bcd1307acf5c9c92cfa85e2 Mon Sep 17 00:00:00 2001

From: Dan Carpenter <[email protected]>
Date: Wed, 30 Apr 2025 11:05:54 +0300
Subject: [PATCH] dm: add missing unlock on in dm_keyslot_evict()

We need to call dm_put_live_table() even if dm_get_live_table() returns NULL.

Fixes 9355a9eb21a5 ("dm: support key eviction from keyslot managers of underlying devices")
Cc [email protected] # v5.12+
drivers/md/dm-table.c +1 -1
index 9e175c5e0634..31d67a1a91dd 100644
@@ -1173,7 +1173,7 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile,
 
 	t = dm_get_live_table(md, &srcu_idx);
 	if (!t)
-		return 0;
+		goto put_live_table;
 
 	for (unsigned int i = 0; i < t->num_targets; i++) {
 		struct dm_target *ti = dm_table_get_target(t, i);

drivers/md/dm-table.c static int dm_keyslot_evict(struct blk_crypto_profile *profile, · line 1190

Quoted 7 lines
drivers/md/dm-table.c +1 -0
@@ -1184,6 +1184,7 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile,
 					  (void *)key);
 	}
 
+put_live_table:
 	dm_put_live_table(md, srcu_idx);
 	return 0;
 }

We need to call dm_put_live_table() even if dm_get_live_table() returns NULL.

Fixes 9355a9eb21a5 ("dm: support key eviction from keyslot managers of underlying devices")
Cc [email protected] # v5.12+
---
 drivers/md/dm-table.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/md/dm-table.c +2 -1
Index: linux-stable/drivers/md/dm-table.c
===================================================================
@@ -1251,13 +1251,14 @@ static int dm_keyslot_evict(struct blk_k
 
 	t = dm_get_live_table(md, &srcu_idx);
 	if (!t)
-		return 0;
+		goto put_live_table;
 	for (i = 0; i < dm_table_get_num_targets(t); i++) {
 		ti = dm_table_get_target(t, i);
 		if (!ti->type->iterate_devices)
 			continue;
 		ti->type->iterate_devices(ti, dm_keyslot_evict_callback, &args);
 	}
+put_live_table:
 	dm_put_live_table(md, srcu_idx);
 	return args.err;
 }
author maintainer
#2 lore raw

Re: [PATCH 5.12.y] dm: add missing unlock on in dm_keyslot_evict()

Quoted 92 lines · Mikulas Patocka

Hi

Here I'm submitting updated patch.

Mikulas

Quoted 53 lines · On Fri, 9 May 2025, [email protected] wrote:

The patch below does not apply to the 5.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.12.y
git checkout FETCH_HEAD
git cherry-pick -x 650266ac4c7230c89bcd1307acf5c9c92cfa85e2
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2025050954-excretion-yonder-4e95@gregkh' --subject-prefix 'PATCH 5.12.y' HEAD^..

Possible dependencies:

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

Quoted 1 line

From 650266ac4c7230c89bcd1307acf5c9c92cfa85e2 Mon Sep 17 00:00:00 2001

From: Dan Carpenter <[email protected]>
Date: Wed, 30 Apr 2025 11:05:54 +0300
Subject: [PATCH] dm: add missing unlock on in dm_keyslot_evict()

We need to call dm_put_live_table() even if dm_get_live_table() returns NULL.

Fixes 9355a9eb21a5 ("dm: support key eviction from keyslot managers of underlying devices")
Cc [email protected] # v5.12+
drivers/md/dm-table.c +1 -1
index 9e175c5e0634..31d67a1a91dd 100644
@@ -1173,7 +1173,7 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile,
 
 	t = dm_get_live_table(md, &srcu_idx);
 	if (!t)
-		return 0;
+		goto put_live_table;
 
 	for (unsigned int i = 0; i < t->num_targets; i++) {
 		struct dm_target *ti = dm_table_get_target(t, i);

drivers/md/dm-table.c static int dm_keyslot_evict(struct blk_crypto_profile *profile, · line 1190

Quoted 7 lines
drivers/md/dm-table.c +1 -0
@@ -1184,6 +1184,7 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile,
 					  (void *)key);
 	}
 
+put_live_table:
 	dm_put_live_table(md, srcu_idx);
 	return 0;
 }

We need to call dm_put_live_table() even if dm_get_live_table() returns NULL.

Fixes 9355a9eb21a5 ("dm: support key eviction from keyslot managers of underlying devices")
Cc [email protected] # v5.12+
---
 drivers/md/dm-table.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux-stable/drivers/md/dm-table.c
===================================================================

drivers/md/dm-table.c +1 -1
@@ -1251,13 +1251,14 @@ static int dm_keyslot_evict(struct blk_k
 
 	t = dm_get_live_table(md, &srcu_idx);
 	if (!t)
-		return 0;
+		goto put_live_table;

drivers/md/dm-table.c static int dm_keyslot_evict(struct blk_k · line 1264

Quoted 10 lines
drivers/md/dm-table.c +1 -0
 	for (i = 0; i < dm_table_get_num_targets(t); i++) {
 		ti = dm_table_get_target(t, i);
 		if (!ti->type->iterate_devices)
 			continue;
 		ti->type->iterate_devices(ti, dm_keyslot_evict_callback, &args);
 	}
+put_live_table:
 	dm_put_live_table(md, srcu_idx);
 	return args.err;
 }

Sorry, I don't know why I said 5.12, this should be for 5.15, can you fix it up and send a version for that tree?

thanks,

greg k-h