diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2018-05-31 15:59:46 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-05-31 23:02:42 -0400 |
commit | 664088f8d68178809b848ca450f2797efb34e8e7 (patch) | |
tree | fd092639acb8a0bc97e7e42489ab53df59b6b4f1 /net/core | |
parent | 16e6653c8259ca5383126e1c6bcf7fe062af87fc (diff) | |
download | linux-664088f8d68178809b848ca450f2797efb34e8e7.tar.gz linux-664088f8d68178809b848ca450f2797efb34e8e7.tar.bz2 linux-664088f8d68178809b848ca450f2797efb34e8e7.zip |
net-sysfs: Fix memory leak in XPS configuration
This patch reorders the error cases in showing the XPS configuration so
that we hold off on memory allocation until after we have verified that we
can support XPS on a given ring.
Fixes: 184c449f91fe ("net: Add support for XPS with QoS via traffic classes")
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/net-sysfs.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index c476f0794132..bb7e80f4ced3 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -1214,9 +1214,6 @@ static ssize_t xps_cpus_show(struct netdev_queue *queue, cpumask_var_t mask; unsigned long index; - if (!zalloc_cpumask_var(&mask, GFP_KERNEL)) - return -ENOMEM; - index = get_netdev_queue_index(queue); if (dev->num_tc) { @@ -1226,6 +1223,9 @@ static ssize_t xps_cpus_show(struct netdev_queue *queue, return -EINVAL; } + if (!zalloc_cpumask_var(&mask, GFP_KERNEL)) + return -ENOMEM; + rcu_read_lock(); dev_maps = rcu_dereference(dev->xps_maps); if (dev_maps) { |