]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx5e: Support NETIF_F_SG
authorSaeed Mahameed <saeedm@mellanox.com>
Thu, 11 Jun 2015 11:47:31 +0000 (14:47 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Jun 2015 22:55:25 +0000 (15:55 -0700)
commit0bfe54edf1c05d19ed7b55be369cf7ba3053fd0d
tree47fb19c12583df0b84f0448ebed7c7f6eec58e99
parenta2fe873ade2d73e6e65e1bc7d95e0ba97fdbf477
net/mlx5e: Support NETIF_F_SG

When NETIF_F_SG is set, each send WQE may have a different size since
each skb can have different number of fragments as of LSO header etc.

This implies that a given WQE may wrap around the send queue, i.e begin
at its end and continue at its start. While it is legal by the device spec,
we preferred a solution that avoids it - when building of current WQE is
done, if the next WQE may wrap around the send queue, fill the send queue
with NOPs WQEs till its end, so that the next WQE will begin at send queue
start.

NOP WQE for itself cannot wrap around the send queue since it is of
minimal size - 64 bytes, and all send WQEs are a multiple of that size.

Signed-off-by: Achiad Shochat <achiad@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx5/core/en.h
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c