From: Vadim Fedorenko <vadim.fedorenko@linux.dev>
To: Breno Leitao <leitao@debian.org>, Ali Tariq <alitariq45892@gmail.com>
Cc: netdev@vger.kernel.org, Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@kernel.org>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Yixun Lan <dlan@kernel.org>,
Troy Mitchell <troy.mitchell@linux.spacemit.com>,
Vivian Wang <wangruikang@iscas.ac.cn>,
Chukun Pan <amadeus@jmu.edu.cn>,
Siddharth Vadapalli <s-vadapalli@ti.com>,
Tomas Hlavacek <tmshlvck@gmail.com>,
Muhammad Bilal <meatuni001@gmail.com>,
Maxime Chevallier <maxime.chevallier@bootlin.com>,
"open list:RISC-V SPACEMIT SoC Support"
<linux-riscv@lists.infradead.org>,
"open list:RISC-V SPACEMIT SoC Support"
<spacemit@lists.linux.dev>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net] net: spacemit: Hold RTNL lock in emac_resume() and emac_suspend()
Date: Thu, 5 Nov 2026 23:28:31 +0100 [thread overview]
Message-ID: <6c36ec6d-5bc8-4ac3-8ad0-79eac7873b67@linux.dev> (raw)
In-Reply-To: <auyG7hGJtMzV0Gbi@gmail.com>
On 05/11/2026 13:40, Breno Leitao wrote:
> On Thu, Nov 05, 2026 at 05:34:37PM +0500, Ali Tariq wrote:
>> The emac_resume() calls the emac_open() and emac_suspend() calls
>> emac_stop() functions directly without holding the lock through
>> rtnl_lock(). These functions rely on phy_disconnect() which reads pointer
>> with rtnl_dereference(). But since no lock is being held,
>> rtnl_dereference throws a suspicious RCU usage on
>> Orange Pi RV2 (SpacemiT K1) warning when lockdep is enabled.
>>
>> WARNING: suspicious RCU usage
>> drivers/net/phy/phy_device.c:1831 suspicious rcu_dereference_protected() usage!
>> Call Trace:
>> phy_detach_internal+0x490/0x5f2
>> phy_disconnect+0x90/0xc0
>> emac_stop+0x114/0x626
>> emac_suspend+0xac/0x126
>> platform_pm_suspend+0x72/0xe4
>>
>> Hold RTNL lock before emac_open() and emac_stop() with rtnl_lock() and
>> release the lock when functions return with rtnl_unlock().
>
> This would work, but I am wondering if it would be possible to call rtnl
> inside the _open function, when dealing with the PHY? in other words,
> shrink the time rtnl is held.
+1, especially in emac_open() rtnl is needed only in error path case
WARNING: multiple messages have this Message-ID (diff)
From: Vadim Fedorenko <vadim.fedorenko@linux.dev>
To: Breno Leitao <leitao@debian.org>, Ali Tariq <alitariq45892@gmail.com>
Cc: netdev@vger.kernel.org, Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@kernel.org>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Yixun Lan <dlan@kernel.org>,
Troy Mitchell <troy.mitchell@linux.spacemit.com>,
Vivian Wang <wangruikang@iscas.ac.cn>,
Chukun Pan <amadeus@jmu.edu.cn>,
Siddharth Vadapalli <s-vadapalli@ti.com>,
Tomas Hlavacek <tmshlvck@gmail.com>,
Muhammad Bilal <meatuni001@gmail.com>,
Maxime Chevallier <maxime.chevallier@bootlin.com>,
"open list:RISC-V SPACEMIT SoC Support"
<linux-riscv@lists.infradead.org>,
"open list:RISC-V SPACEMIT SoC Support"
<spacemit@lists.linux.dev>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net] net: spacemit: Hold RTNL lock in emac_resume() and emac_suspend()
Date: Thu, 5 Nov 2026 23:28:31 +0100 [thread overview]
Message-ID: <6c36ec6d-5bc8-4ac3-8ad0-79eac7873b67@linux.dev> (raw)
In-Reply-To: <auyG7hGJtMzV0Gbi@gmail.com>
On 05/11/2026 13:40, Breno Leitao wrote:
> On Thu, Nov 05, 2026 at 05:34:37PM +0500, Ali Tariq wrote:
>> The emac_resume() calls the emac_open() and emac_suspend() calls
>> emac_stop() functions directly without holding the lock through
>> rtnl_lock(). These functions rely on phy_disconnect() which reads pointer
>> with rtnl_dereference(). But since no lock is being held,
>> rtnl_dereference throws a suspicious RCU usage on
>> Orange Pi RV2 (SpacemiT K1) warning when lockdep is enabled.
>>
>> WARNING: suspicious RCU usage
>> drivers/net/phy/phy_device.c:1831 suspicious rcu_dereference_protected() usage!
>> Call Trace:
>> phy_detach_internal+0x490/0x5f2
>> phy_disconnect+0x90/0xc0
>> emac_stop+0x114/0x626
>> emac_suspend+0xac/0x126
>> platform_pm_suspend+0x72/0xe4
>>
>> Hold RTNL lock before emac_open() and emac_stop() with rtnl_lock() and
>> release the lock when functions return with rtnl_unlock().
>
> This would work, but I am wondering if it would be possible to call rtnl
> inside the _open function, when dealing with the PHY? in other words,
> shrink the time rtnl is held.
+1, especially in emac_open() rtnl is needed only in error path case
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2026-11-05 22:28 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-05 12:34 [PATCH net] net: spacemit: Hold RTNL lock in emac_resume() and emac_suspend() Ali Tariq
2026-11-05 12:34 ` Ali Tariq
2026-11-05 13:40 ` Breno Leitao
2026-11-05 13:40 ` Breno Leitao
2026-11-05 22:28 ` Vadim Fedorenko [this message]
2026-11-05 22:28 ` Vadim Fedorenko
2026-11-06 9:41 ` Troy Mitchell
2026-11-06 9:41 ` Troy Mitchell
2026-11-06 11:54 ` Breno Leitao
2026-11-06 11:54 ` Breno Leitao
2026-11-06 14:28 ` Troy Mitchell
2026-11-06 14:28 ` Troy Mitchell
2026-11-06 9:43 ` Troy Mitchell
2026-11-06 9:43 ` Troy Mitchell
2026-11-06 10:44 ` Ali Tariq
2026-11-06 10:44 ` Ali Tariq
2026-11-06 14:26 ` Troy Mitchell
2026-11-06 14:26 ` Troy Mitchell
2026-11-07 17:32 ` Andrew Lunn
2026-11-07 17:32 ` Andrew Lunn
2026-11-08 7:19 ` Troy Mitchell
2026-11-08 7:19 ` Troy Mitchell
2026-11-09 7:59 ` Vivian Wang
2026-11-09 7:59 ` Vivian Wang
2026-11-09 8:10 ` Troy Mitchell
2026-11-09 8:10 ` Troy Mitchell
2026-11-12 13:33 ` Ali Tariq
2026-11-12 13:33 ` Ali Tariq
2026-11-12 14:48 ` Troy Mitchell
2026-11-12 14:48 ` Troy Mitchell
2026-11-09 12:50 ` netdev-bot+sashiko
2026-11-09 12:50 ` netdev-bot+sashiko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6c36ec6d-5bc8-4ac3-8ad0-79eac7873b67@linux.dev \
--to=vadim.fedorenko@linux.dev \
--cc=alitariq45892@gmail.com \
--cc=amadeus@jmu.edu.cn \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=dlan@kernel.org \
--cc=edumazet@kernel.org \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=maxime.chevallier@bootlin.com \
--cc=meatuni001@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=s-vadapalli@ti.com \
--cc=spacemit@lists.linux.dev \
--cc=tmshlvck@gmail.com \
--cc=troy.mitchell@linux.spacemit.com \
--cc=wangruikang@iscas.ac.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.