[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5497254E.6090603@cogentembedded.com>
Date: Sun, 21 Dec 2014 22:53:50 +0300
From: Sergei Shtylyov <sergei.shtylyov@...entembedded.com>
To: Amir Vadai <amirv@...lanox.com>,
"David S. Miller" <davem@...emloft.net>
CC: netdev@...r.kernel.org, Or Gerlitz <ogerlitz@...lanox.com>,
Yevgeny Petrilin <yevgenyp@...lanox.com>,
Wei Yang <weiyang@...ux.vnet.ibm.com>,
David Laight <david.laight@...lab.com>
Subject: Re: [PATCH net] net/mlx4_en: Doorbell is byteswapped in Little Endian
archs
Hello.
On 12/21/2014 9:18 PM, Amir Vadai wrote:
> iowrite32() will byteswap it's argument on big endian archs.
> iowrite32be() will byteswap on little endian archs.
> Since we don't want to do this unnecessary byteswap on the fast path,
> doorbell is stored in the NIC's native endianness. Using the right
> iowrite() according to the arch endianness.
> CC: Wei Yang <weiyang@...ux.vnet.ibm.com>
> CC: David Laight <david.laight@...lab.com>
> Fixes: 6a4e812 ("net/mlx4_en: Avoid calling bswap in tx fast path")
> Signed-off-by: Amir Vadai <amirv@...lanox.com>
> ---
> drivers/net/ethernet/mellanox/mlx4/en_tx.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
> index a308d41..6477cc7 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
> @@ -962,7 +962,16 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
> tx_desc->ctrl.owner_opcode = op_own;
> if (send_doorbell) {
> wmb();
> - iowrite32(ring->doorbell_qpn,
> + /* Since there is no iowrite*_native() that writes the value
> + * as is, without byteswapping - using the one the doesn't do
> + * byteswapping in the relevant arch endianness.
> + */
Why the comment is not aligned with the code?
> +#if defined(__LITTLE_ENDIAN)
> + iowrite32(
> +#else
> + iowrite32be(
> +#endif
Ugh...
> + ring->doorbell_qpn,
> ring->bf.uar->map + MLX4_SEND_DOORBELL);
[...]
WBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists