mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
net: macb: Use rcu_dereference() for idev->ifa_list in macb_suspend().
In macb_suspend(), idev->ifa_list is fetched with rcu_access_pointer()
and later the pointer is dereferenced as ifa->ifa_local.
So, idev->ifa_list must be fetched with rcu_dereference().
Fixes: 0cb8de39a7
("net: macb: Add ARP support to WOL")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20240808040021.6971-1-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
db1b4bedb9
commit
6e1918ff68
@ -5250,8 +5250,8 @@ static int __maybe_unused macb_suspend(struct device *dev)
|
||||
if (bp->wol & MACB_WOL_ENABLED) {
|
||||
/* Check for IP address in WOL ARP mode */
|
||||
idev = __in_dev_get_rcu(bp->dev);
|
||||
if (idev && idev->ifa_list)
|
||||
ifa = rcu_access_pointer(idev->ifa_list);
|
||||
if (idev)
|
||||
ifa = rcu_dereference(idev->ifa_list);
|
||||
if ((bp->wolopts & WAKE_ARP) && !ifa) {
|
||||
netdev_err(netdev, "IP address not assigned as required by WoL walk ARP\n");
|
||||
return -EOPNOTSUPP;
|
||||
|
Loading…
Reference in New Issue
Block a user