]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx4_en: Add mlx4_en_get_cqe helper
authorIdo Shamay <idos@mellanox.com>
Thu, 18 Sep 2014 08:51:01 +0000 (11:51 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Sep 2014 21:30:11 +0000 (17:30 -0400)
commitc5d3ed2b5090399698e116fbed80da32fd997aae
treebb24828b191225b2af2e5f25ebbcc90c08469faa
parent8c7a4c046e095c1173e9c3c22978dd299cfb0301
net/mlx4_en: Add mlx4_en_get_cqe helper

This function derives the base address of the CQE from the CQE size,
and calculates the real CQE context segment in it from the factor
(this is like before). Before this change the code used the factor to
calculate the base address of the CQE as well.

The factor indicates in which segment of the cqe stride the cqe information
is located. For 32-byte strides, the segment is 0, and for 64 byte strides,
the segment is 1 (bytes 32..63). Using the factor was ok as long as we had
only 32 and 64 byte strides. However, with larger strides, the factor is zero,
and so cannot be used to calculate the base of the CQE.

The helper uses the same method of CQE buffer pulling made by all other
components that reads the CQE buffer (mlx4_ib driver and libmlx4).

Signed-off-by: Ido Shamay <idos@mellanox.com>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
drivers/net/ethernet/mellanox/mlx4/en_rx.c
drivers/net/ethernet/mellanox/mlx4/en_tx.c
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h