mirror of https://gitee.com/openkylin/linux.git
net: Fix locking bug in netif_set_xps_queue
Smatch found a locking bug in netif_set_xps_queue in which we were not releasing the lock in the case of an allocation failure. This change corrects that so that we release the xps_map_mutex before returning -ENOMEM in the case of an allocation failure. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5b0520425e
commit
2bb60cb9b7
|
@ -1882,8 +1882,10 @@ int netif_set_xps_queue(struct net_device *dev, struct cpumask *mask, u16 index)
|
||||||
|
|
||||||
if (!new_dev_maps)
|
if (!new_dev_maps)
|
||||||
new_dev_maps = kzalloc(maps_sz, GFP_KERNEL);
|
new_dev_maps = kzalloc(maps_sz, GFP_KERNEL);
|
||||||
if (!new_dev_maps)
|
if (!new_dev_maps) {
|
||||||
|
mutex_unlock(&xps_map_mutex);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
map = dev_maps ? xmap_dereference(dev_maps->cpu_map[cpu]) :
|
map = dev_maps ? xmap_dereference(dev_maps->cpu_map[cpu]) :
|
||||||
NULL;
|
NULL;
|
||||||
|
|
Loading…
Reference in New Issue