Commit 7715023a authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller

net: devlink: use helpers to work with devlink->lock mutex

As far as the lock helpers exist as the drivers need to work with the
devlink->lock mutex, use the helpers internally in devlink.c in order to
be consistent.
Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1abfb265
...@@ -711,7 +711,7 @@ static int devlink_nl_pre_doit(const struct genl_ops *ops, ...@@ -711,7 +711,7 @@ static int devlink_nl_pre_doit(const struct genl_ops *ops,
return PTR_ERR(devlink); return PTR_ERR(devlink);
} }
if (~ops->internal_flags & DEVLINK_NL_FLAG_NO_LOCK) if (~ops->internal_flags & DEVLINK_NL_FLAG_NO_LOCK)
mutex_lock(&devlink->lock); devl_lock(devlink);
info->user_ptr[0] = devlink; info->user_ptr[0] = devlink;
if (ops->internal_flags & DEVLINK_NL_FLAG_NEED_PORT) { if (ops->internal_flags & DEVLINK_NL_FLAG_NEED_PORT) {
devlink_port = devlink_port_get_from_info(devlink, info); devlink_port = devlink_port_get_from_info(devlink, info);
...@@ -754,7 +754,7 @@ static int devlink_nl_pre_doit(const struct genl_ops *ops, ...@@ -754,7 +754,7 @@ static int devlink_nl_pre_doit(const struct genl_ops *ops,
unlock: unlock:
if (~ops->internal_flags & DEVLINK_NL_FLAG_NO_LOCK) if (~ops->internal_flags & DEVLINK_NL_FLAG_NO_LOCK)
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
mutex_unlock(&devlink_mutex); mutex_unlock(&devlink_mutex);
return err; return err;
...@@ -772,7 +772,7 @@ static void devlink_nl_post_doit(const struct genl_ops *ops, ...@@ -772,7 +772,7 @@ static void devlink_nl_post_doit(const struct genl_ops *ops,
devlink_linecard_put(linecard); devlink_linecard_put(linecard);
} }
if (~ops->internal_flags & DEVLINK_NL_FLAG_NO_LOCK) if (~ops->internal_flags & DEVLINK_NL_FLAG_NO_LOCK)
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
mutex_unlock(&devlink_mutex); mutex_unlock(&devlink_mutex);
} }
...@@ -1329,7 +1329,7 @@ static int devlink_nl_cmd_rate_get_dumpit(struct sk_buff *msg, ...@@ -1329,7 +1329,7 @@ static int devlink_nl_cmd_rate_get_dumpit(struct sk_buff *msg,
if (!net_eq(devlink_net(devlink), sock_net(msg->sk))) if (!net_eq(devlink_net(devlink), sock_net(msg->sk)))
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(devlink_rate, &devlink->rate_list, list) { list_for_each_entry(devlink_rate, &devlink->rate_list, list) {
enum devlink_command cmd = DEVLINK_CMD_RATE_NEW; enum devlink_command cmd = DEVLINK_CMD_RATE_NEW;
u32 id = NETLINK_CB(cb->skb).portid; u32 id = NETLINK_CB(cb->skb).portid;
...@@ -1342,13 +1342,13 @@ static int devlink_nl_cmd_rate_get_dumpit(struct sk_buff *msg, ...@@ -1342,13 +1342,13 @@ static int devlink_nl_cmd_rate_get_dumpit(struct sk_buff *msg,
cb->nlh->nlmsg_seq, cb->nlh->nlmsg_seq,
NLM_F_MULTI, NULL); NLM_F_MULTI, NULL);
if (err) { if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
idx++; idx++;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -1495,7 +1495,7 @@ static int devlink_nl_cmd_port_get_dumpit(struct sk_buff *msg, ...@@ -1495,7 +1495,7 @@ static int devlink_nl_cmd_port_get_dumpit(struct sk_buff *msg,
if (!net_eq(devlink_net(devlink), sock_net(msg->sk))) if (!net_eq(devlink_net(devlink), sock_net(msg->sk)))
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(devlink_port, &devlink->port_list, list) { list_for_each_entry(devlink_port, &devlink->port_list, list) {
if (idx < start) { if (idx < start) {
idx++; idx++;
...@@ -1507,13 +1507,13 @@ static int devlink_nl_cmd_port_get_dumpit(struct sk_buff *msg, ...@@ -1507,13 +1507,13 @@ static int devlink_nl_cmd_port_get_dumpit(struct sk_buff *msg,
cb->nlh->nlmsg_seq, cb->nlh->nlmsg_seq,
NLM_F_MULTI, cb->extack); NLM_F_MULTI, cb->extack);
if (err) { if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
idx++; idx++;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -2450,7 +2450,7 @@ static int devlink_nl_cmd_sb_get_dumpit(struct sk_buff *msg, ...@@ -2450,7 +2450,7 @@ static int devlink_nl_cmd_sb_get_dumpit(struct sk_buff *msg,
if (!net_eq(devlink_net(devlink), sock_net(msg->sk))) if (!net_eq(devlink_net(devlink), sock_net(msg->sk)))
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(devlink_sb, &devlink->sb_list, list) { list_for_each_entry(devlink_sb, &devlink->sb_list, list) {
if (idx < start) { if (idx < start) {
idx++; idx++;
...@@ -2462,13 +2462,13 @@ static int devlink_nl_cmd_sb_get_dumpit(struct sk_buff *msg, ...@@ -2462,13 +2462,13 @@ static int devlink_nl_cmd_sb_get_dumpit(struct sk_buff *msg,
cb->nlh->nlmsg_seq, cb->nlh->nlmsg_seq,
NLM_F_MULTI); NLM_F_MULTI);
if (err) { if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
idx++; idx++;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -2603,7 +2603,7 @@ static int devlink_nl_cmd_sb_pool_get_dumpit(struct sk_buff *msg, ...@@ -2603,7 +2603,7 @@ static int devlink_nl_cmd_sb_pool_get_dumpit(struct sk_buff *msg,
!devlink->ops->sb_pool_get) !devlink->ops->sb_pool_get)
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(devlink_sb, &devlink->sb_list, list) { list_for_each_entry(devlink_sb, &devlink->sb_list, list) {
err = __sb_pool_get_dumpit(msg, start, &idx, devlink, err = __sb_pool_get_dumpit(msg, start, &idx, devlink,
devlink_sb, devlink_sb,
...@@ -2612,12 +2612,12 @@ static int devlink_nl_cmd_sb_pool_get_dumpit(struct sk_buff *msg, ...@@ -2612,12 +2612,12 @@ static int devlink_nl_cmd_sb_pool_get_dumpit(struct sk_buff *msg,
if (err == -EOPNOTSUPP) { if (err == -EOPNOTSUPP) {
err = 0; err = 0;
} else if (err) { } else if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -2824,7 +2824,7 @@ static int devlink_nl_cmd_sb_port_pool_get_dumpit(struct sk_buff *msg, ...@@ -2824,7 +2824,7 @@ static int devlink_nl_cmd_sb_port_pool_get_dumpit(struct sk_buff *msg,
!devlink->ops->sb_port_pool_get) !devlink->ops->sb_port_pool_get)
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(devlink_sb, &devlink->sb_list, list) { list_for_each_entry(devlink_sb, &devlink->sb_list, list) {
err = __sb_port_pool_get_dumpit(msg, start, &idx, err = __sb_port_pool_get_dumpit(msg, start, &idx,
devlink, devlink_sb, devlink, devlink_sb,
...@@ -2833,12 +2833,12 @@ static int devlink_nl_cmd_sb_port_pool_get_dumpit(struct sk_buff *msg, ...@@ -2833,12 +2833,12 @@ static int devlink_nl_cmd_sb_port_pool_get_dumpit(struct sk_buff *msg,
if (err == -EOPNOTSUPP) { if (err == -EOPNOTSUPP) {
err = 0; err = 0;
} else if (err) { } else if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -3073,7 +3073,7 @@ devlink_nl_cmd_sb_tc_pool_bind_get_dumpit(struct sk_buff *msg, ...@@ -3073,7 +3073,7 @@ devlink_nl_cmd_sb_tc_pool_bind_get_dumpit(struct sk_buff *msg,
!devlink->ops->sb_tc_pool_bind_get) !devlink->ops->sb_tc_pool_bind_get)
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(devlink_sb, &devlink->sb_list, list) { list_for_each_entry(devlink_sb, &devlink->sb_list, list) {
err = __sb_tc_pool_bind_get_dumpit(msg, start, &idx, err = __sb_tc_pool_bind_get_dumpit(msg, start, &idx,
devlink, devlink,
...@@ -3083,12 +3083,12 @@ devlink_nl_cmd_sb_tc_pool_bind_get_dumpit(struct sk_buff *msg, ...@@ -3083,12 +3083,12 @@ devlink_nl_cmd_sb_tc_pool_bind_get_dumpit(struct sk_buff *msg,
if (err == -EOPNOTSUPP) { if (err == -EOPNOTSUPP) {
err = 0; err = 0;
} else if (err) { } else if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -5159,7 +5159,7 @@ static int devlink_nl_cmd_param_get_dumpit(struct sk_buff *msg, ...@@ -5159,7 +5159,7 @@ static int devlink_nl_cmd_param_get_dumpit(struct sk_buff *msg,
if (!net_eq(devlink_net(devlink), sock_net(msg->sk))) if (!net_eq(devlink_net(devlink), sock_net(msg->sk)))
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(param_item, &devlink->param_list, list) { list_for_each_entry(param_item, &devlink->param_list, list) {
if (idx < start) { if (idx < start) {
idx++; idx++;
...@@ -5173,13 +5173,13 @@ static int devlink_nl_cmd_param_get_dumpit(struct sk_buff *msg, ...@@ -5173,13 +5173,13 @@ static int devlink_nl_cmd_param_get_dumpit(struct sk_buff *msg,
if (err == -EOPNOTSUPP) { if (err == -EOPNOTSUPP) {
err = 0; err = 0;
} else if (err) { } else if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
idx++; idx++;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -5394,7 +5394,7 @@ static int devlink_nl_cmd_port_param_get_dumpit(struct sk_buff *msg, ...@@ -5394,7 +5394,7 @@ static int devlink_nl_cmd_port_param_get_dumpit(struct sk_buff *msg,
if (!net_eq(devlink_net(devlink), sock_net(msg->sk))) if (!net_eq(devlink_net(devlink), sock_net(msg->sk)))
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(devlink_port, &devlink->port_list, list) { list_for_each_entry(devlink_port, &devlink->port_list, list) {
list_for_each_entry(param_item, list_for_each_entry(param_item,
&devlink_port->param_list, list) { &devlink_port->param_list, list) {
...@@ -5412,14 +5412,14 @@ static int devlink_nl_cmd_port_param_get_dumpit(struct sk_buff *msg, ...@@ -5412,14 +5412,14 @@ static int devlink_nl_cmd_port_param_get_dumpit(struct sk_buff *msg,
if (err == -EOPNOTSUPP) { if (err == -EOPNOTSUPP) {
err = 0; err = 0;
} else if (err) { } else if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
idx++; idx++;
} }
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -5671,7 +5671,7 @@ static int __devlink_snapshot_id_increment(struct devlink *devlink, u32 id) ...@@ -5671,7 +5671,7 @@ static int __devlink_snapshot_id_increment(struct devlink *devlink, u32 id)
unsigned long count; unsigned long count;
void *p; void *p;
lockdep_assert_held(&devlink->lock); devl_assert_locked(devlink);
p = xa_load(&devlink->snapshot_ids, id); p = xa_load(&devlink->snapshot_ids, id);
if (WARN_ON(!p)) if (WARN_ON(!p))
...@@ -5707,7 +5707,7 @@ static void __devlink_snapshot_id_decrement(struct devlink *devlink, u32 id) ...@@ -5707,7 +5707,7 @@ static void __devlink_snapshot_id_decrement(struct devlink *devlink, u32 id)
unsigned long count; unsigned long count;
void *p; void *p;
lockdep_assert_held(&devlink->lock); devl_assert_locked(devlink);
p = xa_load(&devlink->snapshot_ids, id); p = xa_load(&devlink->snapshot_ids, id);
if (WARN_ON(!p)) if (WARN_ON(!p))
...@@ -5746,7 +5746,7 @@ static void __devlink_snapshot_id_decrement(struct devlink *devlink, u32 id) ...@@ -5746,7 +5746,7 @@ static void __devlink_snapshot_id_decrement(struct devlink *devlink, u32 id)
*/ */
static int __devlink_snapshot_id_insert(struct devlink *devlink, u32 id) static int __devlink_snapshot_id_insert(struct devlink *devlink, u32 id)
{ {
lockdep_assert_held(&devlink->lock); devl_assert_locked(devlink);
if (xa_load(&devlink->snapshot_ids, id)) if (xa_load(&devlink->snapshot_ids, id))
return -EEXIST; return -EEXIST;
...@@ -5773,7 +5773,7 @@ static int __devlink_snapshot_id_insert(struct devlink *devlink, u32 id) ...@@ -5773,7 +5773,7 @@ static int __devlink_snapshot_id_insert(struct devlink *devlink, u32 id)
*/ */
static int __devlink_region_snapshot_id_get(struct devlink *devlink, u32 *id) static int __devlink_region_snapshot_id_get(struct devlink *devlink, u32 *id)
{ {
lockdep_assert_held(&devlink->lock); devl_assert_locked(devlink);
return xa_alloc(&devlink->snapshot_ids, id, xa_mk_value(1), return xa_alloc(&devlink->snapshot_ids, id, xa_mk_value(1),
xa_limit_32b, GFP_KERNEL); xa_limit_32b, GFP_KERNEL);
...@@ -5801,7 +5801,7 @@ __devlink_region_snapshot_create(struct devlink_region *region, ...@@ -5801,7 +5801,7 @@ __devlink_region_snapshot_create(struct devlink_region *region,
struct devlink_snapshot *snapshot; struct devlink_snapshot *snapshot;
int err; int err;
lockdep_assert_held(&devlink->lock); devl_assert_locked(devlink);
/* check if region can hold one more snapshot */ /* check if region can hold one more snapshot */
if (region->cur_snapshots == region->max_snapshots) if (region->cur_snapshots == region->max_snapshots)
...@@ -5839,7 +5839,7 @@ static void devlink_region_snapshot_del(struct devlink_region *region, ...@@ -5839,7 +5839,7 @@ static void devlink_region_snapshot_del(struct devlink_region *region,
{ {
struct devlink *devlink = region->devlink; struct devlink *devlink = region->devlink;
lockdep_assert_held(&devlink->lock); devl_assert_locked(devlink);
devlink_nl_region_notify(region, snapshot, DEVLINK_CMD_REGION_DEL); devlink_nl_region_notify(region, snapshot, DEVLINK_CMD_REGION_DEL);
region->cur_snapshots--; region->cur_snapshots--;
...@@ -5933,7 +5933,7 @@ static int devlink_nl_cmd_region_get_devlink_dumpit(struct sk_buff *msg, ...@@ -5933,7 +5933,7 @@ static int devlink_nl_cmd_region_get_devlink_dumpit(struct sk_buff *msg,
struct devlink_port *port; struct devlink_port *port;
int err = 0; int err = 0;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(region, &devlink->region_list, list) { list_for_each_entry(region, &devlink->region_list, list) {
if (*idx < start) { if (*idx < start) {
(*idx)++; (*idx)++;
...@@ -5957,7 +5957,7 @@ static int devlink_nl_cmd_region_get_devlink_dumpit(struct sk_buff *msg, ...@@ -5957,7 +5957,7 @@ static int devlink_nl_cmd_region_get_devlink_dumpit(struct sk_buff *msg,
} }
out: out:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
...@@ -6247,7 +6247,7 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb, ...@@ -6247,7 +6247,7 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb,
goto out_dev; goto out_dev;
} }
mutex_lock(&devlink->lock); devl_lock(devlink);
if (!attrs[DEVLINK_ATTR_REGION_NAME] || if (!attrs[DEVLINK_ATTR_REGION_NAME] ||
!attrs[DEVLINK_ATTR_REGION_SNAPSHOT_ID]) { !attrs[DEVLINK_ATTR_REGION_SNAPSHOT_ID]) {
...@@ -6343,7 +6343,7 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb, ...@@ -6343,7 +6343,7 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb,
nla_nest_end(skb, chunks_attr); nla_nest_end(skb, chunks_attr);
genlmsg_end(skb, hdr); genlmsg_end(skb, hdr);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
mutex_unlock(&devlink_mutex); mutex_unlock(&devlink_mutex);
...@@ -6352,7 +6352,7 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb, ...@@ -6352,7 +6352,7 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb,
nla_put_failure: nla_put_failure:
genlmsg_cancel(skb, hdr); genlmsg_cancel(skb, hdr);
out_unlock: out_unlock:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
out_dev: out_dev:
mutex_unlock(&devlink_mutex); mutex_unlock(&devlink_mutex);
...@@ -6515,12 +6515,12 @@ static int devlink_nl_cmd_info_get_dumpit(struct sk_buff *msg, ...@@ -6515,12 +6515,12 @@ static int devlink_nl_cmd_info_get_dumpit(struct sk_buff *msg,
if (idx < start || !devlink->ops->info_get) if (idx < start || !devlink->ops->info_get)
goto inc; goto inc;
mutex_lock(&devlink->lock); devl_lock(devlink);
err = devlink_nl_info_fill(msg, devlink, DEVLINK_CMD_INFO_GET, err = devlink_nl_info_fill(msg, devlink, DEVLINK_CMD_INFO_GET,
NETLINK_CB(cb->skb).portid, NETLINK_CB(cb->skb).portid,
cb->nlh->nlmsg_seq, NLM_F_MULTI, cb->nlh->nlmsg_seq, NLM_F_MULTI,
cb->extack); cb->extack);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
if (err == -EOPNOTSUPP) if (err == -EOPNOTSUPP)
err = 0; err = 0;
else if (err) { else if (err) {
...@@ -7722,7 +7722,7 @@ devlink_nl_cmd_health_reporter_get_dumpit(struct sk_buff *msg, ...@@ -7722,7 +7722,7 @@ devlink_nl_cmd_health_reporter_get_dumpit(struct sk_buff *msg,
if (!net_eq(devlink_net(devlink), sock_net(msg->sk))) if (!net_eq(devlink_net(devlink), sock_net(msg->sk)))
goto retry_port; goto retry_port;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(port, &devlink->port_list, list) { list_for_each_entry(port, &devlink->port_list, list) {
mutex_lock(&port->reporters_lock); mutex_lock(&port->reporters_lock);
list_for_each_entry(reporter, &port->reporter_list, list) { list_for_each_entry(reporter, &port->reporter_list, list) {
...@@ -7737,7 +7737,7 @@ devlink_nl_cmd_health_reporter_get_dumpit(struct sk_buff *msg, ...@@ -7737,7 +7737,7 @@ devlink_nl_cmd_health_reporter_get_dumpit(struct sk_buff *msg,
cb->nlh->nlmsg_seq, NLM_F_MULTI); cb->nlh->nlmsg_seq, NLM_F_MULTI);
if (err) { if (err) {
mutex_unlock(&port->reporters_lock); mutex_unlock(&port->reporters_lock);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
...@@ -7745,7 +7745,7 @@ devlink_nl_cmd_health_reporter_get_dumpit(struct sk_buff *msg, ...@@ -7745,7 +7745,7 @@ devlink_nl_cmd_health_reporter_get_dumpit(struct sk_buff *msg,
} }
mutex_unlock(&port->reporters_lock); mutex_unlock(&port->reporters_lock);
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry_port: retry_port:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -8292,7 +8292,7 @@ static int devlink_nl_cmd_trap_get_dumpit(struct sk_buff *msg, ...@@ -8292,7 +8292,7 @@ static int devlink_nl_cmd_trap_get_dumpit(struct sk_buff *msg,
if (!net_eq(devlink_net(devlink), sock_net(msg->sk))) if (!net_eq(devlink_net(devlink), sock_net(msg->sk)))
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(trap_item, &devlink->trap_list, list) { list_for_each_entry(trap_item, &devlink->trap_list, list) {
if (idx < start) { if (idx < start) {
idx++; idx++;
...@@ -8304,13 +8304,13 @@ static int devlink_nl_cmd_trap_get_dumpit(struct sk_buff *msg, ...@@ -8304,13 +8304,13 @@ static int devlink_nl_cmd_trap_get_dumpit(struct sk_buff *msg,
cb->nlh->nlmsg_seq, cb->nlh->nlmsg_seq,
NLM_F_MULTI); NLM_F_MULTI);
if (err) { if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
idx++; idx++;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -8519,7 +8519,7 @@ static int devlink_nl_cmd_trap_group_get_dumpit(struct sk_buff *msg, ...@@ -8519,7 +8519,7 @@ static int devlink_nl_cmd_trap_group_get_dumpit(struct sk_buff *msg,
if (!net_eq(devlink_net(devlink), sock_net(msg->sk))) if (!net_eq(devlink_net(devlink), sock_net(msg->sk)))
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(group_item, &devlink->trap_group_list, list_for_each_entry(group_item, &devlink->trap_group_list,
list) { list) {
if (idx < start) { if (idx < start) {
...@@ -8532,13 +8532,13 @@ static int devlink_nl_cmd_trap_group_get_dumpit(struct sk_buff *msg, ...@@ -8532,13 +8532,13 @@ static int devlink_nl_cmd_trap_group_get_dumpit(struct sk_buff *msg,
cb->nlh->nlmsg_seq, cb->nlh->nlmsg_seq,
NLM_F_MULTI); NLM_F_MULTI);
if (err) { if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
idx++; idx++;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -8833,7 +8833,7 @@ static int devlink_nl_cmd_trap_policer_get_dumpit(struct sk_buff *msg, ...@@ -8833,7 +8833,7 @@ static int devlink_nl_cmd_trap_policer_get_dumpit(struct sk_buff *msg,
if (!net_eq(devlink_net(devlink), sock_net(msg->sk))) if (!net_eq(devlink_net(devlink), sock_net(msg->sk)))
goto retry; goto retry;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry(policer_item, &devlink->trap_policer_list, list_for_each_entry(policer_item, &devlink->trap_policer_list,
list) { list) {
if (idx < start) { if (idx < start) {
...@@ -8846,13 +8846,13 @@ static int devlink_nl_cmd_trap_policer_get_dumpit(struct sk_buff *msg, ...@@ -8846,13 +8846,13 @@ static int devlink_nl_cmd_trap_policer_get_dumpit(struct sk_buff *msg,
cb->nlh->nlmsg_seq, cb->nlh->nlmsg_seq,
NLM_F_MULTI); NLM_F_MULTI);
if (err) { if (err) {
mutex_unlock(&devlink->lock); devl_unlock(devlink);
devlink_put(devlink); devlink_put(devlink);
goto out; goto out;
} }
idx++; idx++;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
retry: retry:
devlink_put(devlink); devlink_put(devlink);
} }
...@@ -9690,7 +9690,7 @@ int devl_port_register(struct devlink *devlink, ...@@ -9690,7 +9690,7 @@ int devl_port_register(struct devlink *devlink,
struct devlink_port *devlink_port, struct devlink_port *devlink_port,
unsigned int port_index) unsigned int port_index)
{ {
lockdep_assert_held(&devlink->lock); devl_assert_locked(devlink);
if (devlink_port_index_exists(devlink, port_index)) if (devlink_port_index_exists(devlink, port_index))
return -EEXIST; return -EEXIST;
...@@ -9733,9 +9733,9 @@ int devlink_port_register(struct devlink *devlink, ...@@ -9733,9 +9733,9 @@ int devlink_port_register(struct devlink *devlink,
{ {
int err; int err;
mutex_lock(&devlink->lock); devl_lock(devlink);
err = devl_port_register(devlink, devlink_port, port_index); err = devl_port_register(devlink, devlink_port, port_index);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
EXPORT_SYMBOL_GPL(devlink_port_register); EXPORT_SYMBOL_GPL(devlink_port_register);
...@@ -9769,9 +9769,9 @@ void devlink_port_unregister(struct devlink_port *devlink_port) ...@@ -9769,9 +9769,9 @@ void devlink_port_unregister(struct devlink_port *devlink_port)
{ {
struct devlink *devlink = devlink_port->devlink; struct devlink *devlink = devlink_port->devlink;
mutex_lock(&devlink->lock); devl_lock(devlink);
devl_port_unregister(devlink_port); devl_port_unregister(devlink_port);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_port_unregister); EXPORT_SYMBOL_GPL(devlink_port_unregister);
...@@ -10380,7 +10380,7 @@ int devlink_sb_register(struct devlink *devlink, unsigned int sb_index, ...@@ -10380,7 +10380,7 @@ int devlink_sb_register(struct devlink *devlink, unsigned int sb_index,
struct devlink_sb *devlink_sb; struct devlink_sb *devlink_sb;
int err = 0; int err = 0;
mutex_lock(&devlink->lock); devl_lock(devlink);
if (devlink_sb_index_exists(devlink, sb_index)) { if (devlink_sb_index_exists(devlink, sb_index)) {
err = -EEXIST; err = -EEXIST;
goto unlock; goto unlock;
...@@ -10399,7 +10399,7 @@ int devlink_sb_register(struct devlink *devlink, unsigned int sb_index, ...@@ -10399,7 +10399,7 @@ int devlink_sb_register(struct devlink *devlink, unsigned int sb_index,
devlink_sb->egress_tc_count = egress_tc_count; devlink_sb->egress_tc_count = egress_tc_count;
list_add_tail(&devlink_sb->list, &devlink->sb_list); list_add_tail(&devlink_sb->list, &devlink->sb_list);
unlock: unlock:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
EXPORT_SYMBOL_GPL(devlink_sb_register); EXPORT_SYMBOL_GPL(devlink_sb_register);
...@@ -10408,11 +10408,11 @@ void devlink_sb_unregister(struct devlink *devlink, unsigned int sb_index) ...@@ -10408,11 +10408,11 @@ void devlink_sb_unregister(struct devlink *devlink, unsigned int sb_index)
{ {
struct devlink_sb *devlink_sb; struct devlink_sb *devlink_sb;
mutex_lock(&devlink->lock); devl_lock(devlink);
devlink_sb = devlink_sb_get_by_index(devlink, sb_index); devlink_sb = devlink_sb_get_by_index(devlink, sb_index);
WARN_ON(!devlink_sb); WARN_ON(!devlink_sb);
list_del(&devlink_sb->list); list_del(&devlink_sb->list);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
kfree(devlink_sb); kfree(devlink_sb);
} }
EXPORT_SYMBOL_GPL(devlink_sb_unregister); EXPORT_SYMBOL_GPL(devlink_sb_unregister);
...@@ -10428,9 +10428,9 @@ EXPORT_SYMBOL_GPL(devlink_sb_unregister); ...@@ -10428,9 +10428,9 @@ EXPORT_SYMBOL_GPL(devlink_sb_unregister);
int devlink_dpipe_headers_register(struct devlink *devlink, int devlink_dpipe_headers_register(struct devlink *devlink,
struct devlink_dpipe_headers *dpipe_headers) struct devlink_dpipe_headers *dpipe_headers)
{ {
mutex_lock(&devlink->lock); devl_lock(devlink);
devlink->dpipe_headers = dpipe_headers; devlink->dpipe_headers = dpipe_headers;
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(devlink_dpipe_headers_register); EXPORT_SYMBOL_GPL(devlink_dpipe_headers_register);
...@@ -10444,9 +10444,9 @@ EXPORT_SYMBOL_GPL(devlink_dpipe_headers_register); ...@@ -10444,9 +10444,9 @@ EXPORT_SYMBOL_GPL(devlink_dpipe_headers_register);
*/ */
void devlink_dpipe_headers_unregister(struct devlink *devlink) void devlink_dpipe_headers_unregister(struct devlink *devlink)
{ {
mutex_lock(&devlink->lock); devl_lock(devlink);
devlink->dpipe_headers = NULL; devlink->dpipe_headers = NULL;
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_dpipe_headers_unregister); EXPORT_SYMBOL_GPL(devlink_dpipe_headers_unregister);
...@@ -10501,7 +10501,7 @@ int devlink_dpipe_table_register(struct devlink *devlink, ...@@ -10501,7 +10501,7 @@ int devlink_dpipe_table_register(struct devlink *devlink,
if (WARN_ON(!table_ops->size_get)) if (WARN_ON(!table_ops->size_get))
return -EINVAL; return -EINVAL;
mutex_lock(&devlink->lock); devl_lock(devlink);
if (devlink_dpipe_table_find(&devlink->dpipe_table_list, table_name, if (devlink_dpipe_table_find(&devlink->dpipe_table_list, table_name,
devlink)) { devlink)) {
...@@ -10522,7 +10522,7 @@ int devlink_dpipe_table_register(struct devlink *devlink, ...@@ -10522,7 +10522,7 @@ int devlink_dpipe_table_register(struct devlink *devlink,
list_add_tail_rcu(&table->list, &devlink->dpipe_table_list); list_add_tail_rcu(&table->list, &devlink->dpipe_table_list);
unlock: unlock:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
EXPORT_SYMBOL_GPL(devlink_dpipe_table_register); EXPORT_SYMBOL_GPL(devlink_dpipe_table_register);
...@@ -10538,17 +10538,17 @@ void devlink_dpipe_table_unregister(struct devlink *devlink, ...@@ -10538,17 +10538,17 @@ void devlink_dpipe_table_unregister(struct devlink *devlink,
{ {
struct devlink_dpipe_table *table; struct devlink_dpipe_table *table;
mutex_lock(&devlink->lock); devl_lock(devlink);
table = devlink_dpipe_table_find(&devlink->dpipe_table_list, table = devlink_dpipe_table_find(&devlink->dpipe_table_list,
table_name, devlink); table_name, devlink);
if (!table) if (!table)
goto unlock; goto unlock;
list_del_rcu(&table->list); list_del_rcu(&table->list);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
kfree_rcu(table, rcu); kfree_rcu(table, rcu);
return; return;
unlock: unlock:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_dpipe_table_unregister); EXPORT_SYMBOL_GPL(devlink_dpipe_table_unregister);
...@@ -10580,7 +10580,7 @@ int devlink_resource_register(struct devlink *devlink, ...@@ -10580,7 +10580,7 @@ int devlink_resource_register(struct devlink *devlink,
top_hierarchy = parent_resource_id == DEVLINK_RESOURCE_ID_PARENT_TOP; top_hierarchy = parent_resource_id == DEVLINK_RESOURCE_ID_PARENT_TOP;
mutex_lock(&devlink->lock); devl_lock(devlink);
resource = devlink_resource_find(devlink, NULL, resource_id); resource = devlink_resource_find(devlink, NULL, resource_id);
if (resource) { if (resource) {
err = -EINVAL; err = -EINVAL;
...@@ -10620,7 +10620,7 @@ int devlink_resource_register(struct devlink *devlink, ...@@ -10620,7 +10620,7 @@ int devlink_resource_register(struct devlink *devlink,
INIT_LIST_HEAD(&resource->resource_list); INIT_LIST_HEAD(&resource->resource_list);
list_add_tail(&resource->list, resource_list); list_add_tail(&resource->list, resource_list);
out: out:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
EXPORT_SYMBOL_GPL(devlink_resource_register); EXPORT_SYMBOL_GPL(devlink_resource_register);
...@@ -10647,7 +10647,7 @@ void devlink_resources_unregister(struct devlink *devlink) ...@@ -10647,7 +10647,7 @@ void devlink_resources_unregister(struct devlink *devlink)
{ {
struct devlink_resource *tmp, *child_resource; struct devlink_resource *tmp, *child_resource;
mutex_lock(&devlink->lock); devl_lock(devlink);
list_for_each_entry_safe(child_resource, tmp, &devlink->resource_list, list_for_each_entry_safe(child_resource, tmp, &devlink->resource_list,
list) { list) {
...@@ -10656,7 +10656,7 @@ void devlink_resources_unregister(struct devlink *devlink) ...@@ -10656,7 +10656,7 @@ void devlink_resources_unregister(struct devlink *devlink)
kfree(child_resource); kfree(child_resource);
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_resources_unregister); EXPORT_SYMBOL_GPL(devlink_resources_unregister);
...@@ -10674,7 +10674,7 @@ int devlink_resource_size_get(struct devlink *devlink, ...@@ -10674,7 +10674,7 @@ int devlink_resource_size_get(struct devlink *devlink,
struct devlink_resource *resource; struct devlink_resource *resource;
int err = 0; int err = 0;
mutex_lock(&devlink->lock); devl_lock(devlink);
resource = devlink_resource_find(devlink, NULL, resource_id); resource = devlink_resource_find(devlink, NULL, resource_id);
if (!resource) { if (!resource) {
err = -EINVAL; err = -EINVAL;
...@@ -10683,7 +10683,7 @@ int devlink_resource_size_get(struct devlink *devlink, ...@@ -10683,7 +10683,7 @@ int devlink_resource_size_get(struct devlink *devlink,
*p_resource_size = resource->size_new; *p_resource_size = resource->size_new;
resource->size = resource->size_new; resource->size = resource->size_new;
out: out:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
EXPORT_SYMBOL_GPL(devlink_resource_size_get); EXPORT_SYMBOL_GPL(devlink_resource_size_get);
...@@ -10703,7 +10703,7 @@ int devlink_dpipe_table_resource_set(struct devlink *devlink, ...@@ -10703,7 +10703,7 @@ int devlink_dpipe_table_resource_set(struct devlink *devlink,
struct devlink_dpipe_table *table; struct devlink_dpipe_table *table;
int err = 0; int err = 0;
mutex_lock(&devlink->lock); devl_lock(devlink);
table = devlink_dpipe_table_find(&devlink->dpipe_table_list, table = devlink_dpipe_table_find(&devlink->dpipe_table_list,
table_name, devlink); table_name, devlink);
if (!table) { if (!table) {
...@@ -10714,7 +10714,7 @@ int devlink_dpipe_table_resource_set(struct devlink *devlink, ...@@ -10714,7 +10714,7 @@ int devlink_dpipe_table_resource_set(struct devlink *devlink,
table->resource_units = resource_units; table->resource_units = resource_units;
table->resource_valid = true; table->resource_valid = true;
out: out:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
EXPORT_SYMBOL_GPL(devlink_dpipe_table_resource_set); EXPORT_SYMBOL_GPL(devlink_dpipe_table_resource_set);
...@@ -10734,7 +10734,7 @@ void devlink_resource_occ_get_register(struct devlink *devlink, ...@@ -10734,7 +10734,7 @@ void devlink_resource_occ_get_register(struct devlink *devlink,
{ {
struct devlink_resource *resource; struct devlink_resource *resource;
mutex_lock(&devlink->lock); devl_lock(devlink);
resource = devlink_resource_find(devlink, NULL, resource_id); resource = devlink_resource_find(devlink, NULL, resource_id);
if (WARN_ON(!resource)) if (WARN_ON(!resource))
goto out; goto out;
...@@ -10743,7 +10743,7 @@ void devlink_resource_occ_get_register(struct devlink *devlink, ...@@ -10743,7 +10743,7 @@ void devlink_resource_occ_get_register(struct devlink *devlink,
resource->occ_get = occ_get; resource->occ_get = occ_get;
resource->occ_get_priv = occ_get_priv; resource->occ_get_priv = occ_get_priv;
out: out:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_resource_occ_get_register); EXPORT_SYMBOL_GPL(devlink_resource_occ_get_register);
...@@ -10758,7 +10758,7 @@ void devlink_resource_occ_get_unregister(struct devlink *devlink, ...@@ -10758,7 +10758,7 @@ void devlink_resource_occ_get_unregister(struct devlink *devlink,
{ {
struct devlink_resource *resource; struct devlink_resource *resource;
mutex_lock(&devlink->lock); devl_lock(devlink);
resource = devlink_resource_find(devlink, NULL, resource_id); resource = devlink_resource_find(devlink, NULL, resource_id);
if (WARN_ON(!resource)) if (WARN_ON(!resource))
goto out; goto out;
...@@ -10767,7 +10767,7 @@ void devlink_resource_occ_get_unregister(struct devlink *devlink, ...@@ -10767,7 +10767,7 @@ void devlink_resource_occ_get_unregister(struct devlink *devlink,
resource->occ_get = NULL; resource->occ_get = NULL;
resource->occ_get_priv = NULL; resource->occ_get_priv = NULL;
out: out:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_resource_occ_get_unregister); EXPORT_SYMBOL_GPL(devlink_resource_occ_get_unregister);
...@@ -11006,7 +11006,7 @@ devlink_region_create(struct devlink *devlink, ...@@ -11006,7 +11006,7 @@ devlink_region_create(struct devlink *devlink,
if (WARN_ON(!ops) || WARN_ON(!ops->destructor)) if (WARN_ON(!ops) || WARN_ON(!ops->destructor))
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
mutex_lock(&devlink->lock); devl_lock(devlink);
if (devlink_region_get_by_name(devlink, ops->name)) { if (devlink_region_get_by_name(devlink, ops->name)) {
err = -EEXIST; err = -EEXIST;
...@@ -11027,11 +11027,11 @@ devlink_region_create(struct devlink *devlink, ...@@ -11027,11 +11027,11 @@ devlink_region_create(struct devlink *devlink,
list_add_tail(&region->list, &devlink->region_list); list_add_tail(&region->list, &devlink->region_list);
devlink_nl_region_notify(region, NULL, DEVLINK_CMD_REGION_NEW); devlink_nl_region_notify(region, NULL, DEVLINK_CMD_REGION_NEW);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return region; return region;
unlock: unlock:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return ERR_PTR(err); return ERR_PTR(err);
} }
EXPORT_SYMBOL_GPL(devlink_region_create); EXPORT_SYMBOL_GPL(devlink_region_create);
...@@ -11056,7 +11056,7 @@ devlink_port_region_create(struct devlink_port *port, ...@@ -11056,7 +11056,7 @@ devlink_port_region_create(struct devlink_port *port,
if (WARN_ON(!ops) || WARN_ON(!ops->destructor)) if (WARN_ON(!ops) || WARN_ON(!ops->destructor))
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
mutex_lock(&devlink->lock); devl_lock(devlink);
if (devlink_port_region_get_by_name(port, ops->name)) { if (devlink_port_region_get_by_name(port, ops->name)) {
err = -EEXIST; err = -EEXIST;
...@@ -11078,11 +11078,11 @@ devlink_port_region_create(struct devlink_port *port, ...@@ -11078,11 +11078,11 @@ devlink_port_region_create(struct devlink_port *port,
list_add_tail(&region->list, &port->region_list); list_add_tail(&region->list, &port->region_list);
devlink_nl_region_notify(region, NULL, DEVLINK_CMD_REGION_NEW); devlink_nl_region_notify(region, NULL, DEVLINK_CMD_REGION_NEW);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return region; return region;
unlock: unlock:
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return ERR_PTR(err); return ERR_PTR(err);
} }
EXPORT_SYMBOL_GPL(devlink_port_region_create); EXPORT_SYMBOL_GPL(devlink_port_region_create);
...@@ -11097,7 +11097,7 @@ void devlink_region_destroy(struct devlink_region *region) ...@@ -11097,7 +11097,7 @@ void devlink_region_destroy(struct devlink_region *region)
struct devlink *devlink = region->devlink; struct devlink *devlink = region->devlink;
struct devlink_snapshot *snapshot, *ts; struct devlink_snapshot *snapshot, *ts;
mutex_lock(&devlink->lock); devl_lock(devlink);
/* Free all snapshots of region */ /* Free all snapshots of region */
list_for_each_entry_safe(snapshot, ts, &region->snapshot_list, list) list_for_each_entry_safe(snapshot, ts, &region->snapshot_list, list)
...@@ -11106,7 +11106,7 @@ void devlink_region_destroy(struct devlink_region *region) ...@@ -11106,7 +11106,7 @@ void devlink_region_destroy(struct devlink_region *region)
list_del(&region->list); list_del(&region->list);
devlink_nl_region_notify(region, NULL, DEVLINK_CMD_REGION_DEL); devlink_nl_region_notify(region, NULL, DEVLINK_CMD_REGION_DEL);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
kfree(region); kfree(region);
} }
EXPORT_SYMBOL_GPL(devlink_region_destroy); EXPORT_SYMBOL_GPL(devlink_region_destroy);
...@@ -11130,9 +11130,9 @@ int devlink_region_snapshot_id_get(struct devlink *devlink, u32 *id) ...@@ -11130,9 +11130,9 @@ int devlink_region_snapshot_id_get(struct devlink *devlink, u32 *id)
{ {
int err; int err;
mutex_lock(&devlink->lock); devl_lock(devlink);
err = __devlink_region_snapshot_id_get(devlink, id); err = __devlink_region_snapshot_id_get(devlink, id);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
...@@ -11150,9 +11150,9 @@ EXPORT_SYMBOL_GPL(devlink_region_snapshot_id_get); ...@@ -11150,9 +11150,9 @@ EXPORT_SYMBOL_GPL(devlink_region_snapshot_id_get);
*/ */
void devlink_region_snapshot_id_put(struct devlink *devlink, u32 id) void devlink_region_snapshot_id_put(struct devlink *devlink, u32 id)
{ {
mutex_lock(&devlink->lock); devl_lock(devlink);
__devlink_snapshot_id_decrement(devlink, id); __devlink_snapshot_id_decrement(devlink, id);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_region_snapshot_id_put); EXPORT_SYMBOL_GPL(devlink_region_snapshot_id_put);
...@@ -11174,9 +11174,9 @@ int devlink_region_snapshot_create(struct devlink_region *region, ...@@ -11174,9 +11174,9 @@ int devlink_region_snapshot_create(struct devlink_region *region,
struct devlink *devlink = region->devlink; struct devlink *devlink = region->devlink;
int err; int err;
mutex_lock(&devlink->lock); devl_lock(devlink);
err = __devlink_region_snapshot_create(region, data, snapshot_id); err = __devlink_region_snapshot_create(region, data, snapshot_id);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
...@@ -11559,7 +11559,7 @@ int devlink_traps_register(struct devlink *devlink, ...@@ -11559,7 +11559,7 @@ int devlink_traps_register(struct devlink *devlink,
if (!devlink->ops->trap_init || !devlink->ops->trap_action_set) if (!devlink->ops->trap_init || !devlink->ops->trap_action_set)
return -EINVAL; return -EINVAL;
mutex_lock(&devlink->lock); devl_lock(devlink);
for (i = 0; i < traps_count; i++) { for (i = 0; i < traps_count; i++) {
const struct devlink_trap *trap = &traps[i]; const struct devlink_trap *trap = &traps[i];
...@@ -11571,7 +11571,7 @@ int devlink_traps_register(struct devlink *devlink, ...@@ -11571,7 +11571,7 @@ int devlink_traps_register(struct devlink *devlink,
if (err) if (err)
goto err_trap_register; goto err_trap_register;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return 0; return 0;
...@@ -11579,7 +11579,7 @@ int devlink_traps_register(struct devlink *devlink, ...@@ -11579,7 +11579,7 @@ int devlink_traps_register(struct devlink *devlink,
err_trap_verify: err_trap_verify:
for (i--; i >= 0; i--) for (i--; i >= 0; i--)
devlink_trap_unregister(devlink, &traps[i]); devlink_trap_unregister(devlink, &traps[i]);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
EXPORT_SYMBOL_GPL(devlink_traps_register); EXPORT_SYMBOL_GPL(devlink_traps_register);
...@@ -11596,7 +11596,7 @@ void devlink_traps_unregister(struct devlink *devlink, ...@@ -11596,7 +11596,7 @@ void devlink_traps_unregister(struct devlink *devlink,
{ {
int i; int i;
mutex_lock(&devlink->lock); devl_lock(devlink);
/* Make sure we do not have any packets in-flight while unregistering /* Make sure we do not have any packets in-flight while unregistering
* traps by disabling all of them and waiting for a grace period. * traps by disabling all of them and waiting for a grace period.
*/ */
...@@ -11605,7 +11605,7 @@ void devlink_traps_unregister(struct devlink *devlink, ...@@ -11605,7 +11605,7 @@ void devlink_traps_unregister(struct devlink *devlink,
synchronize_rcu(); synchronize_rcu();
for (i = traps_count - 1; i >= 0; i--) for (i = traps_count - 1; i >= 0; i--)
devlink_trap_unregister(devlink, &traps[i]); devlink_trap_unregister(devlink, &traps[i]);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_traps_unregister); EXPORT_SYMBOL_GPL(devlink_traps_unregister);
...@@ -11777,7 +11777,7 @@ int devlink_trap_groups_register(struct devlink *devlink, ...@@ -11777,7 +11777,7 @@ int devlink_trap_groups_register(struct devlink *devlink,
{ {
int i, err; int i, err;
mutex_lock(&devlink->lock); devl_lock(devlink);
for (i = 0; i < groups_count; i++) { for (i = 0; i < groups_count; i++) {
const struct devlink_trap_group *group = &groups[i]; const struct devlink_trap_group *group = &groups[i];
...@@ -11789,7 +11789,7 @@ int devlink_trap_groups_register(struct devlink *devlink, ...@@ -11789,7 +11789,7 @@ int devlink_trap_groups_register(struct devlink *devlink,
if (err) if (err)
goto err_trap_group_register; goto err_trap_group_register;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return 0; return 0;
...@@ -11797,7 +11797,7 @@ int devlink_trap_groups_register(struct devlink *devlink, ...@@ -11797,7 +11797,7 @@ int devlink_trap_groups_register(struct devlink *devlink,
err_trap_group_verify: err_trap_group_verify:
for (i--; i >= 0; i--) for (i--; i >= 0; i--)
devlink_trap_group_unregister(devlink, &groups[i]); devlink_trap_group_unregister(devlink, &groups[i]);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
EXPORT_SYMBOL_GPL(devlink_trap_groups_register); EXPORT_SYMBOL_GPL(devlink_trap_groups_register);
...@@ -11814,10 +11814,10 @@ void devlink_trap_groups_unregister(struct devlink *devlink, ...@@ -11814,10 +11814,10 @@ void devlink_trap_groups_unregister(struct devlink *devlink,
{ {
int i; int i;
mutex_lock(&devlink->lock); devl_lock(devlink);
for (i = groups_count - 1; i >= 0; i--) for (i = groups_count - 1; i >= 0; i--)
devlink_trap_group_unregister(devlink, &groups[i]); devlink_trap_group_unregister(devlink, &groups[i]);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_trap_groups_unregister); EXPORT_SYMBOL_GPL(devlink_trap_groups_unregister);
...@@ -11917,7 +11917,7 @@ devlink_trap_policers_register(struct devlink *devlink, ...@@ -11917,7 +11917,7 @@ devlink_trap_policers_register(struct devlink *devlink,
{ {
int i, err; int i, err;
mutex_lock(&devlink->lock); devl_lock(devlink);
for (i = 0; i < policers_count; i++) { for (i = 0; i < policers_count; i++) {
const struct devlink_trap_policer *policer = &policers[i]; const struct devlink_trap_policer *policer = &policers[i];
...@@ -11932,7 +11932,7 @@ devlink_trap_policers_register(struct devlink *devlink, ...@@ -11932,7 +11932,7 @@ devlink_trap_policers_register(struct devlink *devlink,
if (err) if (err)
goto err_trap_policer_register; goto err_trap_policer_register;
} }
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return 0; return 0;
...@@ -11940,7 +11940,7 @@ devlink_trap_policers_register(struct devlink *devlink, ...@@ -11940,7 +11940,7 @@ devlink_trap_policers_register(struct devlink *devlink,
err_trap_policer_verify: err_trap_policer_verify:
for (i--; i >= 0; i--) for (i--; i >= 0; i--)
devlink_trap_policer_unregister(devlink, &policers[i]); devlink_trap_policer_unregister(devlink, &policers[i]);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
return err; return err;
} }
EXPORT_SYMBOL_GPL(devlink_trap_policers_register); EXPORT_SYMBOL_GPL(devlink_trap_policers_register);
...@@ -11958,10 +11958,10 @@ devlink_trap_policers_unregister(struct devlink *devlink, ...@@ -11958,10 +11958,10 @@ devlink_trap_policers_unregister(struct devlink *devlink,
{ {
int i; int i;
mutex_lock(&devlink->lock); devl_lock(devlink);
for (i = policers_count - 1; i >= 0; i--) for (i = policers_count - 1; i >= 0; i--)
devlink_trap_policer_unregister(devlink, &policers[i]); devlink_trap_policer_unregister(devlink, &policers[i]);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
EXPORT_SYMBOL_GPL(devlink_trap_policers_unregister); EXPORT_SYMBOL_GPL(devlink_trap_policers_unregister);
...@@ -12015,9 +12015,9 @@ void devlink_compat_running_version(struct devlink *devlink, ...@@ -12015,9 +12015,9 @@ void devlink_compat_running_version(struct devlink *devlink,
if (!devlink->ops->info_get) if (!devlink->ops->info_get)
return; return;
mutex_lock(&devlink->lock); devl_lock(devlink);
__devlink_compat_running_version(devlink, buf, len); __devlink_compat_running_version(devlink, buf, len);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
} }
int devlink_compat_flash_update(struct devlink *devlink, const char *file_name) int devlink_compat_flash_update(struct devlink *devlink, const char *file_name)
...@@ -12032,11 +12032,11 @@ int devlink_compat_flash_update(struct devlink *devlink, const char *file_name) ...@@ -12032,11 +12032,11 @@ int devlink_compat_flash_update(struct devlink *devlink, const char *file_name)
if (ret) if (ret)
return ret; return ret;
mutex_lock(&devlink->lock); devl_lock(devlink);
devlink_flash_update_begin_notify(devlink); devlink_flash_update_begin_notify(devlink);
ret = devlink->ops->flash_update(devlink, &params, NULL); ret = devlink->ops->flash_update(devlink, &params, NULL);
devlink_flash_update_end_notify(devlink); devlink_flash_update_end_notify(devlink);
mutex_unlock(&devlink->lock); devl_unlock(devlink);
release_firmware(params.fw); release_firmware(params.fw);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment