linux-stable/drivers/net/ethernet/qlogic/qed
Yuval Mintz b0bccb69eb qed: Change locking scheme for VF channel
Each VF employees a lock that's supposed to serialize its usage of the
HW channel for communication with its PF, but the critical section is
ill-defined:

  - VFs currently release the lock whenever the PF response arrives,
    prior to actually processing the reply buffer [which was also supposed
    to have been protected by same lock].

  - The lock would be released on first response, ignoring the possibilty
    the sw flow isn't over [as might be the case of the acquisition flow].
    As a result, the flow would run unprotected and would cause a double
    mutex release [as the additional message completion would release it
    while its actually already free].

Change the flow to have a dedicated function to be called at end of each
flow and release the lock.

Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-08-22 18:24:52 -07:00
..
Makefile qed: add support for dcbx. 2016-05-17 12:29:34 -04:00
qed.h qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00
qed_cxt.c qed*: Semantic changes 2016-08-15 13:34:52 -07:00
qed_cxt.h qed: Initialize hardware for new protocols 2016-06-03 20:08:40 -04:00
qed_dcbx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-08-18 01:17:32 -04:00
qed_dcbx.h qed: Add support for query/config dcbx. 2016-06-08 11:10:59 -07:00
qed_dev.c qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00
qed_dev_api.h qed: Add support for coalescing config read/update. 2016-06-23 15:56:46 -04:00
qed_hsi.h qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00
qed_hw.c qed*: Semantic changes 2016-08-15 13:34:52 -07:00
qed_hw.h qed: Initialize hardware for new protocols 2016-06-03 20:08:40 -04:00
qed_init_fw_funcs.c qed: Utilize FW 8.10.3.0 2016-06-02 21:30:03 -07:00
qed_init_ops.c qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00
qed_init_ops.h
qed_int.c qed*: Add and modify some prints 2016-08-15 13:34:52 -07:00
qed_int.h qed: Add support for coalescing config read/update. 2016-06-23 15:56:46 -04:00
qed_l2.c qed*: Add support for VFs over legacy PFs 2016-08-22 18:24:52 -07:00
qed_l2.h qed: Prevent VFs from pause flooding 2016-08-22 18:24:52 -07:00
qed_main.c qed: Add support for NCSI statistics. 2016-08-18 21:11:45 -07:00
qed_mcp.c qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00
qed_mcp.h qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00
qed_reg_addr.h qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00
qed_selftest.c qed: add infrastructure for device self tests. 2016-05-02 00:16:39 -04:00
qed_selftest.h qed: add infrastructure for device self tests. 2016-05-02 00:16:39 -04:00
qed_sp.h qed: Add common HSI for new protocols 2016-06-03 20:08:39 -04:00
qed_sp_commands.c qed*: Semantic changes 2016-08-15 13:34:52 -07:00
qed_spq.c qed*: Add and modify some prints 2016-08-15 13:34:52 -07:00
qed_sriov.c qed: Prevent VFs from pause flooding 2016-08-22 18:24:52 -07:00
qed_sriov.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-06-10 11:52:24 -07:00
qed_vf.c qed: Change locking scheme for VF channel 2016-08-22 18:24:52 -07:00
qed_vf.h qed*: Add support for VFs over legacy PFs 2016-08-22 18:24:52 -07:00