• Jakub Kicinski's avatar
    devlink: hold region lock when flushing snapshots · b4cafb3d
    Jakub Kicinski authored
    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-g7ae9888d #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: 2dec18ad ("net: devlink: remove region snapshots list dependency on devlink->lock")
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b4cafb3d
devlink.c 340 KB