diff options
author | Wenwen Wang <wenwen@cs.uga.edu> | 2019-08-14 08:14:49 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-09-10 12:32:15 +0300 |
commit | f782d1caab35bba26e5d91340a19b71486adafb8 (patch) | |
tree | 9fc0214aff2e24a2c1a6b5949f6b9dec4cdd5fe9 | |
parent | 8762d3ea41b68bcd98a2b32daab2e32a1d746a6a (diff) | |
download | linux-f782d1caab35bba26e5d91340a19b71486adafb8.tar.xz |
liquidio: add cleanup in octeon_setup_iq()
[ Upstream commit 6f967f8b1be7001b31c46429f2ee7d275af2190f ]
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r-- | drivers/net/ethernet/cavium/liquidio/request_manager.c | 4 |
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 1e0fbce86d60..55e873126463 100644 --- a/drivers/net/ethernet/cavium/liquidio/request_manager.c +++ b/drivers/net/ethernet/cavium/liquidio/request_manager.c @@ -232,8 +232,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; } |