mirror of https://gitee.com/openkylin/linux.git
net-sysfs: remove possible sleep from an RCU read-side critical section
xps_queue_show is mostly made of an RCU read-side critical section and
calls bitmap_zalloc with GFP_KERNEL in the middle of it. That is not
allowed as this call may sleep and such behaviours aren't allowed in RCU
read-side critical sections. Fix this by using GFP_NOWAIT instead.
Fixes: 5478fcd0f4
("net: embed nr_ids in the xps maps")
Reported-by: kernel test robot <oliver.sang@intel.com>
Suggested-by: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Antoine Tenart <atenart@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7ec05a6035
commit
7f08ec6e04
|
@ -1378,7 +1378,7 @@ static ssize_t xps_queue_show(struct net_device *dev, unsigned int index,
|
|||
nr_ids = dev_maps ? dev_maps->nr_ids :
|
||||
(type == XPS_CPUS ? nr_cpu_ids : dev->num_rx_queues);
|
||||
|
||||
mask = bitmap_zalloc(nr_ids, GFP_KERNEL);
|
||||
mask = bitmap_zalloc(nr_ids, GFP_NOWAIT);
|
||||
if (!mask) {
|
||||
rcu_read_unlock();
|
||||
return -ENOMEM;
|
||||
|
|
Loading…
Reference in New Issue