mirror_ubuntu-kernels/drivers/net/ethernet/qlogic/qed
Michal Kalderon 9de506a547 qed: Free RoCE ILT Memory on rmmod qedr
Rdma requires ILT Memory to be allocated for it's QPs.
Each ILT entry points to a page used by several Rdma QPs.
To avoid allocating all the memory in advance, the rdma
implementation dynamically allocates memory as more QPs are
added, however it does not dynamically free the memory.
The memory should have been freed on rmmod qedr, but isn't.
This patch adds the memory freeing on rmmod qedr (currently
it will be freed with qed is removed).

An outcome of this bug, is that if qedr is unloaded and loaded
without unloaded qed, there will be no more RoCE traffic.

The reason these are related, is that the logic of detecting the
first QP ever opened is by asking whether ILT memory for RoCE has
been allocated.

In addition, this patch modifies freeing of the Task context to
always use the PROTOCOLID_ROCE and not the protocol passed,
this is because task context for iWARP and ROCE both use the
ROCE protocol id, as opposed to the connection context.

Fixes: dbb799c397 ("qed: Initialize hardware for new protocols")
Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-03-07 12:17:31 -05:00
..
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
qed_cxt.c qed: Free RoCE ILT Memory on rmmod qedr 2018-03-07 12:17:31 -05:00
qed_cxt.h qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_dcbx.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_dcbx.h qed: Correct DCBx update scheme 2017-05-30 12:07:01 -04:00
qed_debug.c net: qed: use correct strncpy() size 2018-02-02 19:42:29 -05:00
qed_debug.h qed: Utilize FW 8.20.0.0 2017-05-18 13:21:40 -04:00
qed_dev_api.h qed: Read per queue coalesce from hardware 2017-07-27 00:05:22 -07:00
qed_dev.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_fcoe.c qed*: HSI renaming for different types of HW 2018-01-02 13:59:15 -05:00
qed_fcoe.h qed: Revise alloc/setup/free flow 2017-05-21 12:56:53 -04:00
qed_hsi.h qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_hw.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_hw.h qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_init_fw_funcs.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_init_ops.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_init_ops.h qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_int.c qed*: HSI renaming for different types of HW 2018-01-02 13:59:15 -05:00
qed_int.h qed*: HSI renaming for different types of HW 2018-01-02 13:59:15 -05:00
qed_iscsi.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_iscsi.h qed: Revise alloc/setup/free flow 2017-05-21 12:56:53 -04:00
qed_iwarp.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_iwarp.h qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_l2.c qed: Use zeroing memory allocator than allocator/memset 2018-01-02 21:55:43 -05:00
qed_l2.h qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_ll2.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_ll2.h qed: Add ll2 ability of opening a secondary queue 2017-10-09 10:21:26 -07:00
qed_main.c qed: Read per queue coalesce from hardware 2017-07-27 00:05:22 -07:00
qed_mcp.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_mcp.h qed: Add support for Energy efficient ethernet. 2017-07-27 00:05:22 -07:00
qed_ooo.c qed: Fix iWARP out of order flow 2017-10-19 12:46:43 +01:00
qed_ooo.h qed: Fix iWARP out of order flow 2017-10-19 12:46:43 +01:00
qed_ptp.c qed: Drop the 's' from num_ports_in_engines 2017-05-24 15:17:19 -04:00
qed_rdma.c qed: Free RoCE ILT Memory on rmmod qedr 2018-03-07 12:17:31 -05:00
qed_rdma.h qed: iWARP CM add passive side connect 2017-07-03 01:43:45 -07:00
qed_reg_addr.h qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_roce.c qed: Implement iWARP initialization, teardown and qp operations 2017-07-03 01:43:44 -07:00
qed_roce.h qed: Split rdma content between qed_rdma and qed_roce 2017-06-21 15:32:59 -04:00
qed_selftest.c qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_selftest.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qed_sp_commands.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_sp.h qed: iWARP CM add passive side connect 2017-07-03 01:43:45 -07:00
qed_spq.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
qed_sriov.c qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_sriov.h qed*: Utilize FW 8.33.1.0 2018-01-02 13:59:16 -05:00
qed_vf.c qed: Read per queue coalesce from hardware 2017-07-27 00:05:22 -07:00
qed_vf.h qed: Read per queue coalesce from hardware 2017-07-27 00:05:22 -07:00
qed.h qed*: Advance drivers' version to 8.33.0.20 2018-01-02 13:59:16 -05:00