mirror of
https://github.com/torvalds/linux.git
synced 2026-06-06 13:37:36 +02:00
devlink: hold region lock when flushing snapshots
[ Upstream commitb4cafb3d2c] Netdevsim triggers a splat on reload, when it destroys regions with snapshots pending: WARNING: CPU: 1 PID: 787 at net/core/devlink.c:6291 devlink_region_snapshot_del+0x12e/0x140 CPU: 1 PID: 787 Comm: devlink Not tainted 6.1.0-07460-g7ae9888d6e1c #580 RIP: 0010:devlink_region_snapshot_del+0x12e/0x140 Call Trace: <TASK> devl_region_destroy+0x70/0x140 nsim_dev_reload_down+0x2f/0x60 [netdevsim] devlink_reload+0x1f7/0x360 devlink_nl_cmd_reload+0x6ce/0x860 genl_family_rcv_msg_doit.isra.0+0x145/0x1c0 This is the locking assert in devlink_region_snapshot_del(), we're supposed to be holding the region->snapshot_lock here. Fixes:2dec18ad82("net: devlink: remove region snapshots list dependency on devlink->lock") Signed-off-by: Jakub Kicinski <kuba@kernel.org> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
71e0004462
commit
6298cab4d8
|
|
@ -11435,8 +11435,10 @@ void devl_region_destroy(struct devlink_region *region)
|
|||
devl_assert_locked(devlink);
|
||||
|
||||
/* Free all snapshots of region */
|
||||
mutex_lock(®ion->snapshot_lock);
|
||||
list_for_each_entry_safe(snapshot, ts, ®ion->snapshot_list, list)
|
||||
devlink_region_snapshot_del(region, snapshot);
|
||||
mutex_unlock(®ion->snapshot_lock);
|
||||
|
||||
list_del(®ion->list);
|
||||
mutex_destroy(®ion->snapshot_lock);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user