All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH AUTOSEL 5.4 1/8] fs/9p: only translate RWX permissions for plain 9P2000
@ 2024-04-23 11:02 Sasha Levin
  2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 2/8] fs/9p: translate O_TRUNC into OTRUNC Sasha Levin
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Sasha Levin @ 2024-04-23 11:02 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Joakim Sindholt, Eric Van Hensbergen, Sasha Levin, lucho, asmadeus, v9fs

From: Joakim Sindholt <opensource@zhasha.com>

[ Upstream commit cd25e15e57e68a6b18dc9323047fe9c68b99290b ]

Garbage in plain 9P2000's perm bits is allowed through, which causes it
to be able to set (among others) the suid bit. This was presumably not
the intent since the unix extended bits are handled explicitly and
conditionally on .u.

Signed-off-by: Joakim Sindholt <opensource@zhasha.com>
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/9p/vfs_inode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index b82423a72f685..b1107b424bf64 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -86,7 +86,7 @@ static int p9mode2perm(struct v9fs_session_info *v9ses,
 	int res;
 	int mode = stat->mode;
 
-	res = mode & S_IALLUGO;
+	res = mode & 0777; /* S_IRWXUGO */
 	if (v9fs_proto_dotu(v9ses)) {
 		if ((mode & P9_DMSETUID) == P9_DMSETUID)
 			res |= S_ISUID;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH AUTOSEL 5.4 2/8] fs/9p: translate O_TRUNC into OTRUNC
  2024-04-23 11:02 [PATCH AUTOSEL 5.4 1/8] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
@ 2024-04-23 11:02 ` Sasha Levin
  2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 3/8] 9p: explicitly deny setlease attempts Sasha Levin
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Sasha Levin @ 2024-04-23 11:02 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Joakim Sindholt, Eric Van Hensbergen, Sasha Levin, lucho, asmadeus, v9fs

From: Joakim Sindholt <opensource@zhasha.com>

[ Upstream commit 87de39e70503e04ddb58965520b15eb9efa7eef3 ]

This one hits both 9P2000 and .u as it appears v9fs has never translated
the O_TRUNC flag.

Signed-off-by: Joakim Sindholt <opensource@zhasha.com>
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/9p/vfs_inode.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index b1107b424bf64..ffce168296bd3 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -177,6 +177,9 @@ int v9fs_uflags2omode(int uflags, int extended)
 		break;
 	}
 
+	if (uflags & O_TRUNC)
+		ret |= P9_OTRUNC;
+
 	if (extended) {
 		if (uflags & O_EXCL)
 			ret |= P9_OEXCL;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH AUTOSEL 5.4 3/8] 9p: explicitly deny setlease attempts
  2024-04-23 11:02 [PATCH AUTOSEL 5.4 1/8] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
  2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 2/8] fs/9p: translate O_TRUNC into OTRUNC Sasha Levin
@ 2024-04-23 11:02 ` Sasha Levin
  2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 4/8] gpio: wcove: Use -ENOTSUPP consistently Sasha Levin
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Sasha Levin @ 2024-04-23 11:02 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Jeff Layton, Eric Van Hensbergen, Sasha Levin, lucho, asmadeus, v9fs

From: Jeff Layton <jlayton@kernel.org>

[ Upstream commit 7a84602297d36617dbdadeba55a2567031e5165b ]

9p is a remote network protocol, and it doesn't support asynchronous
notifications from the server. Ensure that we don't hand out any leases
since we can't guarantee they'll be broken when a file's contents
change.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/9p/vfs_file.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
index ee9cabac12041..14d6cb0316212 100644
--- a/fs/9p/vfs_file.c
+++ b/fs/9p/vfs_file.c
@@ -676,6 +676,7 @@ const struct file_operations v9fs_file_operations = {
 	.lock = v9fs_file_lock,
 	.mmap = generic_file_readonly_mmap,
 	.fsync = v9fs_file_fsync,
+	.setlease = simple_nosetlease,
 };
 
 const struct file_operations v9fs_file_operations_dotl = {
@@ -711,4 +712,5 @@ const struct file_operations v9fs_mmap_file_operations_dotl = {
 	.flock = v9fs_file_flock_dotl,
 	.mmap = v9fs_mmap_file_mmap,
 	.fsync = v9fs_file_fsync_dotl,
+	.setlease = simple_nosetlease,
 };
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH AUTOSEL 5.4 4/8] gpio: wcove: Use -ENOTSUPP consistently
  2024-04-23 11:02 [PATCH AUTOSEL 5.4 1/8] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
  2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 2/8] fs/9p: translate O_TRUNC into OTRUNC Sasha Levin
  2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 3/8] 9p: explicitly deny setlease attempts Sasha Levin
@ 2024-04-23 11:02 ` Sasha Levin
  2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 5/8] gpio: crystalcove: " Sasha Levin
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Sasha Levin @ 2024-04-23 11:02 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Andy Shevchenko, Kuppuswamy Sathyanarayanan, Sasha Levin, andy,
	linus.walleij, brgl, linux-gpio

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

[ Upstream commit 0c3b532ad3fbf82884a2e7e83e37c7dcdd4d1d99 ]

The GPIO library expects the drivers to return -ENOTSUPP in some
cases and not using analogue POSIX code. Make the driver to follow
this.

Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/gpio/gpio-wcove.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpio/gpio-wcove.c b/drivers/gpio/gpio-wcove.c
index 444fe9e7f04ac..79946c098271a 100644
--- a/drivers/gpio/gpio-wcove.c
+++ b/drivers/gpio/gpio-wcove.c
@@ -102,7 +102,7 @@ static inline int to_reg(int gpio, enum ctrl_register reg_type)
 	unsigned int reg;
 
 	if (gpio >= WCOVE_GPIO_NUM)
-		return -EOPNOTSUPP;
+		return -ENOTSUPP;
 
 	if (reg_type == CTRL_IN)
 		reg = GPIO_IN_CTRL_BASE + gpio;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH AUTOSEL 5.4 5/8] gpio: crystalcove: Use -ENOTSUPP consistently
  2024-04-23 11:02 [PATCH AUTOSEL 5.4 1/8] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
                   ` (2 preceding siblings ...)
  2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 4/8] gpio: wcove: Use -ENOTSUPP consistently Sasha Levin
@ 2024-04-23 11:03 ` Sasha Levin
  2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 6/8] clk: Don't hold prepare_lock when calling kref_put() Sasha Levin
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Sasha Levin @ 2024-04-23 11:03 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Andy Shevchenko, Sasha Levin, andy, linus.walleij, brgl, linux-gpio

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

[ Upstream commit ace0ebe5c98d66889f19e0f30e2518d0c58d0e04 ]

The GPIO library expects the drivers to return -ENOTSUPP in some
cases and not using analogue POSIX code. Make the driver to follow
this.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/gpio/gpio-crystalcove.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpio/gpio-crystalcove.c b/drivers/gpio/gpio-crystalcove.c
index 14d1f4c933b69..8b9c1833bf7d4 100644
--- a/drivers/gpio/gpio-crystalcove.c
+++ b/drivers/gpio/gpio-crystalcove.c
@@ -91,7 +91,7 @@ static inline int to_reg(int gpio, enum ctrl_register reg_type)
 		case 0x5e:
 			return GPIOPANELCTL;
 		default:
-			return -EOPNOTSUPP;
+			return -ENOTSUPP;
 		}
 	}
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH AUTOSEL 5.4 6/8] clk: Don't hold prepare_lock when calling kref_put()
  2024-04-23 11:02 [PATCH AUTOSEL 5.4 1/8] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
                   ` (3 preceding siblings ...)
  2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 5/8] gpio: crystalcove: " Sasha Levin
@ 2024-04-23 11:03 ` Sasha Levin
  2024-04-23 19:24   ` Stephen Boyd
  2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 7/8] fs/9p: drop inodes immediately on non-.L too Sasha Levin
  2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 8/8] net:usb:qmi_wwan: support Rolling modules Sasha Levin
  6 siblings, 1 reply; 10+ messages in thread
From: Sasha Levin @ 2024-04-23 11:03 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Stephen Boyd, Douglas Anderson, Sasha Levin, mturquette, linux-clk

From: Stephen Boyd <sboyd@kernel.org>

[ Upstream commit 6f63af7511e7058f3fa4ad5b8102210741c9f947 ]

We don't need to hold the prepare_lock when dropping a ref on a struct
clk_core. The release function is only freeing memory and any code with
a pointer reference has already unlinked anything pointing to the
clk_core. This reduces the holding area of the prepare_lock a bit.

Note that we also don't call free_clk() with the prepare_lock held.
There isn't any reason to do that.

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Link: https://lore.kernel.org/r/20240325184204.745706-3-sboyd@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/clk/clk.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 67051ca60920a..9dddf5f555ab5 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -3971,7 +3971,8 @@ void clk_unregister(struct clk *clk)
 	if (clk->core->ops == &clk_nodrv_ops) {
 		pr_err("%s: unregistered clock: %s\n", __func__,
 		       clk->core->name);
-		goto unlock;
+		clk_prepare_unlock();
+		return;
 	}
 	/*
 	 * Assign empty clock ops for consumers that might still hold
@@ -4002,11 +4003,10 @@ void clk_unregister(struct clk *clk)
 	if (clk->core->protect_count)
 		pr_warn("%s: unregistering protected clock: %s\n",
 					__func__, clk->core->name);
+	clk_prepare_unlock();
 
 	kref_put(&clk->core->ref, __clk_release);
 	free_clk(clk);
-unlock:
-	clk_prepare_unlock();
 }
 EXPORT_SYMBOL_GPL(clk_unregister);
 
@@ -4168,13 +4168,11 @@ void __clk_put(struct clk *clk)
 	    clk->max_rate < clk->core->req_rate)
 		clk_core_set_rate_nolock(clk->core, clk->core->req_rate);
 
-	owner = clk->core->owner;
-	kref_put(&clk->core->ref, __clk_release);
-
 	clk_prepare_unlock();
 
+	owner = clk->core->owner;
+	kref_put(&clk->core->ref, __clk_release);
 	module_put(owner);
-
 	free_clk(clk);
 }
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH AUTOSEL 5.4 7/8] fs/9p: drop inodes immediately on non-.L too
  2024-04-23 11:02 [PATCH AUTOSEL 5.4 1/8] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
                   ` (4 preceding siblings ...)
  2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 6/8] clk: Don't hold prepare_lock when calling kref_put() Sasha Levin
@ 2024-04-23 11:03 ` Sasha Levin
  2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 8/8] net:usb:qmi_wwan: support Rolling modules Sasha Levin
  6 siblings, 0 replies; 10+ messages in thread
From: Sasha Levin @ 2024-04-23 11:03 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Joakim Sindholt, Eric Van Hensbergen, Sasha Levin, lucho, asmadeus, v9fs

From: Joakim Sindholt <opensource@zhasha.com>

[ Upstream commit 7fd524b9bd1be210fe79035800f4bd78a41b349f ]

Signed-off-by: Joakim Sindholt <opensource@zhasha.com>
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/9p/vfs_super.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index 74df32be4c6a5..46e58fdf9ba54 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -335,6 +335,7 @@ static const struct super_operations v9fs_super_ops = {
 	.alloc_inode = v9fs_alloc_inode,
 	.free_inode = v9fs_free_inode,
 	.statfs = simple_statfs,
+	.drop_inode = v9fs_drop_inode,
 	.evict_inode = v9fs_evict_inode,
 	.show_options = v9fs_show_options,
 	.umount_begin = v9fs_umount_begin,
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH AUTOSEL 5.4 8/8] net:usb:qmi_wwan: support Rolling modules
  2024-04-23 11:02 [PATCH AUTOSEL 5.4 1/8] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
                   ` (5 preceding siblings ...)
  2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 7/8] fs/9p: drop inodes immediately on non-.L too Sasha Levin
@ 2024-04-23 11:03 ` Sasha Levin
  6 siblings, 0 replies; 10+ messages in thread
From: Sasha Levin @ 2024-04-23 11:03 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Vanillan Wang, Jakub Kicinski, Sasha Levin, bjorn, davem,
	edumazet, pabeni, netdev, linux-usb

From: Vanillan Wang <vanillanwang@163.com>

[ Upstream commit d362046021ea122309da8c8e0b6850c792ca97b5 ]

Update the qmi_wwan driver support for the Rolling
LTE modules.

- VID:PID 33f8:0104, RW101-GL for laptop debug M.2 cards(with RMNET
interface for /Linux/Chrome OS)
0x0104: RMNET, diag, at, pipe

Here are the outputs of usb-devices:
T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=33f8 ProdID=0104 Rev=05.04
S:  Manufacturer=Rolling Wireless S.a.r.l.
S:  Product=Rolling Module
S:  SerialNumber=ba2eb033
C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=40 Driver=option
E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=88(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs
E:  Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=89(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms

Signed-off-by: Vanillan Wang <vanillanwang@163.com>
Link: https://lore.kernel.org/r/20240416120713.24777-1-vanillanwang@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/usb/qmi_wwan.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index c2bd4abce6de5..1c48d3d9522ba 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -1380,6 +1380,7 @@ static const struct usb_device_id products[] = {
 	{QMI_FIXED_INTF(0x0489, 0xe0b5, 0)},	/* Foxconn T77W968 LTE with eSIM support*/
 	{QMI_FIXED_INTF(0x2692, 0x9025, 4)},    /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */
 	{QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)},	/* u-blox LARA-L6 */
+	{QMI_QUIRK_SET_DTR(0x33f8, 0x0104, 4)}, /* Rolling RW101 RMNET */
 
 	/* 4. Gobi 1000 devices */
 	{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)},	/* Acer Gobi Modem Device */
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH AUTOSEL 5.4 6/8] clk: Don't hold prepare_lock when calling kref_put()
  2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 6/8] clk: Don't hold prepare_lock when calling kref_put() Sasha Levin
@ 2024-04-23 19:24   ` Stephen Boyd
  2024-05-08 10:16     ` Sasha Levin
  0 siblings, 1 reply; 10+ messages in thread
From: Stephen Boyd @ 2024-04-23 19:24 UTC (permalink / raw)
  To: Sasha Levin, linux-kernel, stable
  Cc: Douglas Anderson, Sasha Levin, mturquette, linux-clk

Quoting Sasha Levin (2024-04-23 04:03:01)
> From: Stephen Boyd <sboyd@kernel.org>
> 
> [ Upstream commit 6f63af7511e7058f3fa4ad5b8102210741c9f947 ]
> 
> We don't need to hold the prepare_lock when dropping a ref on a struct
> clk_core. The release function is only freeing memory and any code with
> a pointer reference has already unlinked anything pointing to the
> clk_core. This reduces the holding area of the prepare_lock a bit.
> 
> Note that we also don't call free_clk() with the prepare_lock held.
> There isn't any reason to do that.

You'll want the patch before this, 8358a76cfb47 ("clk: Remove
prepare_lock hold assertion in __clk_release()"), to avoid lockdep
warnings. And it looks like the problem was reported on v5.15.y so all
5 patches from the series would need a backport.

 8358a76cfb47 clk: Remove prepare_lock hold assertion in __clk_release()
 6f63af7511e7 clk: Don't hold prepare_lock when calling kref_put()
 9d05ae531c2c clk: Initialize struct clk_core kref earlier
 e581cf5d2162 clk: Get runtime PM before walking tree during disable_unused
 9d1e795f754d clk: Get runtime PM before walking tree for clk_summary

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH AUTOSEL 5.4 6/8] clk: Don't hold prepare_lock when calling kref_put()
  2024-04-23 19:24   ` Stephen Boyd
@ 2024-05-08 10:16     ` Sasha Levin
  0 siblings, 0 replies; 10+ messages in thread
From: Sasha Levin @ 2024-05-08 10:16 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: linux-kernel, stable, Douglas Anderson, mturquette, linux-clk

On Tue, Apr 23, 2024 at 12:24:51PM -0700, Stephen Boyd wrote:
>Quoting Sasha Levin (2024-04-23 04:03:01)
>> From: Stephen Boyd <sboyd@kernel.org>
>>
>> [ Upstream commit 6f63af7511e7058f3fa4ad5b8102210741c9f947 ]
>>
>> We don't need to hold the prepare_lock when dropping a ref on a struct
>> clk_core. The release function is only freeing memory and any code with
>> a pointer reference has already unlinked anything pointing to the
>> clk_core. This reduces the holding area of the prepare_lock a bit.
>>
>> Note that we also don't call free_clk() with the prepare_lock held.
>> There isn't any reason to do that.
>
>You'll want the patch before this, 8358a76cfb47 ("clk: Remove
>prepare_lock hold assertion in __clk_release()"), to avoid lockdep
>warnings. And it looks like the problem was reported on v5.15.y so all
>5 patches from the series would need a backport.
>
> 8358a76cfb47 clk: Remove prepare_lock hold assertion in __clk_release()
> 6f63af7511e7 clk: Don't hold prepare_lock when calling kref_put()
> 9d05ae531c2c clk: Initialize struct clk_core kref earlier
> e581cf5d2162 clk: Get runtime PM before walking tree during disable_unused
> 9d1e795f754d clk: Get runtime PM before walking tree for clk_summary

Ack, looks like its already the case. Thanks!

-- 
Thanks,
Sasha

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-05-08 10:16 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-23 11:02 [PATCH AUTOSEL 5.4 1/8] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 2/8] fs/9p: translate O_TRUNC into OTRUNC Sasha Levin
2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 3/8] 9p: explicitly deny setlease attempts Sasha Levin
2024-04-23 11:02 ` [PATCH AUTOSEL 5.4 4/8] gpio: wcove: Use -ENOTSUPP consistently Sasha Levin
2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 5/8] gpio: crystalcove: " Sasha Levin
2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 6/8] clk: Don't hold prepare_lock when calling kref_put() Sasha Levin
2024-04-23 19:24   ` Stephen Boyd
2024-05-08 10:16     ` Sasha Levin
2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 7/8] fs/9p: drop inodes immediately on non-.L too Sasha Levin
2024-04-23 11:03 ` [PATCH AUTOSEL 5.4 8/8] net:usb:qmi_wwan: support Rolling modules Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.