mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 11:33:28 +02:00
net: enetc: fix sleeping function called from rcu_read_lock() context
The rcu_read_lock() has been introduced in __ethtool_get_ts_info() since the commit4c61d809cf("net: ethtool: Fix suspicious rcu_dereference usage"). Therefore, the device drivers cannot use any sleeping functions when implementing the callback of ethtool_ops::get_ts_info(). Currently, pci_get_slot() is used in enetc_get_ts_info(), but it calls down_read() which might sleep, so this is a potential issue. Therefore, to fix this issue, pci_get_domain_bus_and_slot() is used to replace pci_get_slot() in enetc_get_ts_info(). Reported-by: Vladimir Oltean <vladimir.oltean@nxp.com> Closes: https://lore.kernel.org/netdev/20250918124823.t3xlzn7w2glzkhnx@skbuf/ Fixes:f5b9a1cde0("net: enetc: add PTP synchronization support for ENETC v4") Signed-off-by: Wei Fang <wei.fang@nxp.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com> Link: https://patch.msgid.link/20250919084509.1846513-2-wei.fang@nxp.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
78e87f9d53
commit
26644c90e8
|
|
@ -895,7 +895,8 @@ static int enetc4_get_phc_index_by_pdev(struct enetc_si *si)
|
|||
return -1;
|
||||
}
|
||||
|
||||
timer_pdev = pci_get_slot(bus, devfn);
|
||||
timer_pdev = pci_get_domain_bus_and_slot(pci_domain_nr(bus),
|
||||
bus->number, devfn);
|
||||
if (!timer_pdev)
|
||||
return -1;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user