Searched hist:"1 af0a094" (Results 1 – 2 of 2) sorted by relevance
/openbmc/linux/net/ethtool/ |
H A D | ioctl.c | 1af0a094 Sat Oct 30 12:18:51 CDT 2021 Jakub Kicinski <kuba@kernel.org> ethtool: don't drop the rtnl_lock half way thru the ioctl
devlink compat code needs to drop rtnl_lock to take devlink->lock to ensure correct lock ordering.
This is problematic because we're not strictly guaranteed that the netdev will not disappear after we re-lock. It may open a possibility of nested ->begin / ->complete calls.
Instead of calling into devlink under rtnl_lock take a ref on the devlink instance and make the call after we've dropped rtnl_lock.
We (continue to) assume that netdevs have an implicit reference on the devlink returned from ndo_get_devlink_port
Note that ndo_get_devlink_port will now get called under rtnl_lock. That should be fine since none of the drivers seem to be taking serious locks inside ndo_get_devlink_port.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
/openbmc/linux/include/net/ |
H A D | devlink.h | 1af0a094 Sat Oct 30 12:18:51 CDT 2021 Jakub Kicinski <kuba@kernel.org> ethtool: don't drop the rtnl_lock half way thru the ioctl
devlink compat code needs to drop rtnl_lock to take devlink->lock to ensure correct lock ordering.
This is problematic because we're not strictly guaranteed that the netdev will not disappear after we re-lock. It may open a possibility of nested ->begin / ->complete calls.
Instead of calling into devlink under rtnl_lock take a ref on the devlink instance and make the call after we've dropped rtnl_lock.
We (continue to) assume that netdevs have an implicit reference on the devlink returned from ndo_get_devlink_port
Note that ndo_get_devlink_port will now get called under rtnl_lock. That should be fine since none of the drivers seem to be taking serious locks inside ndo_get_devlink_port.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|