11// SPDX-License-Identifier: GPL-2.0-or-later
22
33#include <linux/netdevice.h>
4+ #include <net/netdev_lock.h>
45#include <net/netdev_queues.h>
56#include <net/netdev_rx_queue.h>
67#include <net/page_pool/memory_provider.h>
@@ -18,7 +19,7 @@ int netdev_rx_queue_restart(struct net_device *dev, unsigned int rxq_idx)
1819 !qops -> ndo_queue_mem_alloc || !qops -> ndo_queue_start )
1920 return - EOPNOTSUPP ;
2021
21- ASSERT_RTNL ( );
22+ netdev_assert_locked ( dev );
2223
2324 new_mem = kvzalloc (qops -> ndo_queue_mem_size , GFP_KERNEL );
2425 if (!new_mem )
@@ -30,8 +31,6 @@ int netdev_rx_queue_restart(struct net_device *dev, unsigned int rxq_idx)
3031 goto err_free_new_mem ;
3132 }
3233
33- netdev_lock (dev );
34-
3534 err = qops -> ndo_queue_mem_alloc (dev , new_mem , rxq_idx );
3635 if (err )
3736 goto err_free_old_mem ;
@@ -54,8 +53,6 @@ int netdev_rx_queue_restart(struct net_device *dev, unsigned int rxq_idx)
5453
5554 qops -> ndo_queue_mem_free (dev , old_mem );
5655
57- netdev_unlock (dev );
58-
5956 kvfree (old_mem );
6057 kvfree (new_mem );
6158
@@ -80,7 +77,6 @@ int netdev_rx_queue_restart(struct net_device *dev, unsigned int rxq_idx)
8077 qops -> ndo_queue_mem_free (dev , new_mem );
8178
8279err_free_old_mem :
83- netdev_unlock (dev );
8480 kvfree (old_mem );
8581
8682err_free_new_mem :
@@ -118,9 +114,9 @@ int net_mp_open_rxq(struct net_device *dev, unsigned ifq_idx,
118114{
119115 int ret ;
120116
121- rtnl_lock ( );
117+ netdev_lock ( dev );
122118 ret = __net_mp_open_rxq (dev , ifq_idx , p );
123- rtnl_unlock ( );
119+ netdev_unlock ( dev );
124120 return ret ;
125121}
126122
@@ -153,7 +149,7 @@ static void __net_mp_close_rxq(struct net_device *dev, unsigned ifq_idx,
153149void net_mp_close_rxq (struct net_device * dev , unsigned ifq_idx ,
154150 struct pp_memory_provider_params * old_p )
155151{
156- rtnl_lock ( );
152+ netdev_lock ( dev );
157153 __net_mp_close_rxq (dev , ifq_idx , old_p );
158- rtnl_unlock ( );
154+ netdev_unlock ( dev );
159155}
0 commit comments