summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/cavium/liquidio/request_manager.c
diff options
context:
space:
mode:
authorWenwen Wang2019-08-14 07:14:49 +0200
committerDavid S. Miller2019-08-15 21:37:37 +0200
commit6f967f8b1be7001b31c46429f2ee7d275af2190f (patch)
treee573bee34bd1356a135befc746a282216caf7041 /drivers/net/ethernet/cavium/liquidio/request_manager.c
parentMerge tag 'mlx5-fixes-2019-08-15' of git://git.kernel.org/pub/scm/linux/kerne... (diff)
downloadkernel-qcow2-linux-6f967f8b1be7001b31c46429f2ee7d275af2190f.tar.gz
kernel-qcow2-linux-6f967f8b1be7001b31c46429f2ee7d275af2190f.tar.xz
kernel-qcow2-linux-6f967f8b1be7001b31c46429f2ee7d275af2190f.zip
liquidio: add cleanup in octeon_setup_iq()
If oct->fn_list.enable_io_queues() fails, no cleanup is executed, leading to memory/resource leaks. To fix this issue, invoke octeon_delete_instr_queue() before returning from the function. Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/cavium/liquidio/request_manager.c')
-rw-r--r--drivers/net/ethernet/cavium/liquidio/request_manager.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/cavium/liquidio/request_manager.c b/drivers/net/ethernet/cavium/liquidio/request_manager.c
index 032224178b64..6dd65f9b347c 100644
--- a/drivers/net/ethernet/cavium/liquidio/request_manager.c
+++ b/drivers/net/ethernet/cavium/liquidio/request_manager.c
@@ -237,8 +237,10 @@ int octeon_setup_iq(struct octeon_device *oct,
}
oct->num_iqs++;
- if (oct->fn_list.enable_io_queues(oct))
+ if (oct->fn_list.enable_io_queues(oct)) {
+ octeon_delete_instr_queue(oct, iq_no);
return 1;
+ }
return 0;
}