Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec570940 authored by Amir Vadai's avatar Amir Vadai Committed by David S. Miller
Browse files

net/mlx4_en: Use union for BlueFlame WQE



When BlueFlame is turned on, control segment of the TX WQE is changed,
and the second line of it is used for QPN.
Changed code to use a union in the mlx4_wqe_ctrl_seg instead of casting.
This makes the code clearer and solves the static checker warning:

drivers/net/ethernet/mellanox/mlx4/en_tx.c:839 mlx4_en_xmit()
	warn: potential memory corrupting cast 4 vs 2 bytes

CC: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarAmir Vadai <amirv@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 28d222bb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -876,7 +876,8 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
	skb_tx_timestamp(skb);

	if (ring->bf_enabled && desc_size <= MAX_BF && !bounce && !vlan_tx_tag_present(skb)) {
		*(__be32 *) (&tx_desc->ctrl.vlan_tag) |= cpu_to_be32(ring->doorbell_qpn);
		tx_desc->ctrl.bf_qpn |= cpu_to_be32(ring->doorbell_qpn);

		op_own |= htonl((bf_index & 0xffff) << 8);
		/* Ensure new descirptor hits memory
		* before setting ownership of this descriptor to HW */
+8 −3
Original line number Diff line number Diff line
@@ -270,9 +270,14 @@ enum {

struct mlx4_wqe_ctrl_seg {
	__be32			owner_opcode;
	union {
		struct {
			__be16			vlan_tag;
			u8			ins_vlan;
			u8			fence_size;
		};
		__be32			bf_qpn;
	};
	/*
	 * High 24 bits are SRC remote buffer; low 8 bits are flags:
	 * [7]   SO (strong ordering)