Commit 062e7891 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

netdev-genl: remove rtnl_lock protection from NAPI ops



NAPI lifetime, visibility and config are all fully under
netdev_lock protection now.

Reviewed-by: default avatarJoe Damato <jdamato@fastly.com>
Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
Reviewed-by: default avatarKuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20250115035319.559603-12-kuba@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e7ed2ba7
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -229,8 +229,6 @@ int netdev_nl_napi_get_doit(struct sk_buff *skb, struct genl_info *info)
	if (!rsp)
		return -ENOMEM;

	rtnl_lock();

	napi = netdev_napi_by_id_lock(genl_info_net(info), napi_id);
	if (napi) {
		err = netdev_nl_napi_fill_one(rsp, napi, info);
@@ -240,8 +238,6 @@ int netdev_nl_napi_get_doit(struct sk_buff *skb, struct genl_info *info)
		err = -ENOENT;
	}

	rtnl_unlock();

	if (err) {
		goto err_free_msg;
	} else if (!rsp->len) {
@@ -300,7 +296,6 @@ int netdev_nl_napi_get_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
	if (info->attrs[NETDEV_A_NAPI_IFINDEX])
		ifindex = nla_get_u32(info->attrs[NETDEV_A_NAPI_IFINDEX]);

	rtnl_lock();
	if (ifindex) {
		netdev = netdev_get_by_index_lock(net, ifindex);
		if (netdev) {
@@ -317,7 +312,6 @@ int netdev_nl_napi_get_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
			ctx->napi_id = 0;
		}
	}
	rtnl_unlock();

	return err;
}
@@ -358,8 +352,6 @@ int netdev_nl_napi_set_doit(struct sk_buff *skb, struct genl_info *info)

	napi_id = nla_get_u32(info->attrs[NETDEV_A_NAPI_ID]);

	rtnl_lock();

	napi = netdev_napi_by_id_lock(genl_info_net(info), napi_id);
	if (napi) {
		err = netdev_nl_napi_set_config(napi, info);
@@ -369,8 +361,6 @@ int netdev_nl_napi_set_doit(struct sk_buff *skb, struct genl_info *info)
		err = -ENOENT;
	}

	rtnl_unlock();

	return err;
}