android_kernel_oneplus_msm8998/drivers/net/ethernet/mellanox
Eugenia Emantayev 2d4b646613 net/mlx4_en: Fix BlueFlame race
Fix a race between BlueFlame flow and stamping in post send flow.
Example:
	SW: Build WQE 0 on the TX buffer, except the ownership bit
	SW: Set ownership for WQE 0 on the TX buffer
	SW: Ring doorbell for WQE 0
	SW: Build WQE 1 on the TX buffer, except the ownership bit
	SW: Set ownership for WQE 1 on the TX buffer
	HW: Read WQE 0 and then WQE 1, before doorbell was rung/BF was done for WQE 1
	HW: Produce CQEs for WQE 0 and WQE 1
	SW: Process the CQEs, and stamp WQE 0 and WQE 1 accordingly (on the TX buffer)
	SW: Copy WQE 1 from the TX buffer to the BF register - ALREADY STAMPED!
	HW: CQE error with index 0xFFFF  - the BF WQE's control segment is STAMPED,
		so the BF index is 0xFFFF. Error: Invalid Opcode.
As a result QP enters the error state and no traffic can be sent.

Solution:
When stamping - do not stamp last completed wqe.

Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-07-29 00:54:51 -07:00
..
mlx4 net/mlx4_en: Fix BlueFlame race 2013-07-29 00:54:51 -07:00
mlx5/core mlx5 core: Fix __udivdi3 when compiling for 32 bit arches 2013-07-16 12:36:39 -07:00
Kconfig mlx5: Add driver for Mellanox Connect-IB adapters 2013-07-08 10:32:24 -07:00
Makefile mlx5: Add driver for Mellanox Connect-IB adapters 2013-07-08 10:32:24 -07:00