ixgbe: fix bitfield assignation with clang
Commit 1224decaa44 ("support TCP segmentation offload") changed the way the bitfields are assigned in ixgbe, example: tx_offload_mask.l2_len = ~0; This result in a compilation error with clang: error: implicit truncation from 'int' to bitfield changes value from -1 to 127 [-Werror,-Wbitfield-constant-conversion] Replacing the '=' with a '|=' fixes the issue. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
parent
6d25d90c7d
commit
06c57d54ef
@ -381,7 +381,7 @@ ixgbe_set_xmit_ctx(struct igb_tx_queue* txq,
|
|||||||
mss_l4len_idx |= (ctx_idx << IXGBE_ADVTXD_IDX_SHIFT);
|
mss_l4len_idx |= (ctx_idx << IXGBE_ADVTXD_IDX_SHIFT);
|
||||||
|
|
||||||
if (ol_flags & PKT_TX_VLAN_PKT) {
|
if (ol_flags & PKT_TX_VLAN_PKT) {
|
||||||
tx_offload_mask.vlan_tci = ~0;
|
tx_offload_mask.vlan_tci |= ~0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check if TCP segmentation required for this packet */
|
/* check if TCP segmentation required for this packet */
|
||||||
@ -391,17 +391,17 @@ ixgbe_set_xmit_ctx(struct igb_tx_queue* txq,
|
|||||||
IXGBE_ADVTXD_TUCMD_L4T_TCP |
|
IXGBE_ADVTXD_TUCMD_L4T_TCP |
|
||||||
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
|
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
|
||||||
|
|
||||||
tx_offload_mask.l2_len = ~0;
|
tx_offload_mask.l2_len |= ~0;
|
||||||
tx_offload_mask.l3_len = ~0;
|
tx_offload_mask.l3_len |= ~0;
|
||||||
tx_offload_mask.l4_len = ~0;
|
tx_offload_mask.l4_len |= ~0;
|
||||||
tx_offload_mask.tso_segsz = ~0;
|
tx_offload_mask.tso_segsz |= ~0;
|
||||||
mss_l4len_idx |= tx_offload.tso_segsz << IXGBE_ADVTXD_MSS_SHIFT;
|
mss_l4len_idx |= tx_offload.tso_segsz << IXGBE_ADVTXD_MSS_SHIFT;
|
||||||
mss_l4len_idx |= tx_offload.l4_len << IXGBE_ADVTXD_L4LEN_SHIFT;
|
mss_l4len_idx |= tx_offload.l4_len << IXGBE_ADVTXD_L4LEN_SHIFT;
|
||||||
} else { /* no TSO, check if hardware checksum is needed */
|
} else { /* no TSO, check if hardware checksum is needed */
|
||||||
if (ol_flags & PKT_TX_IP_CKSUM) {
|
if (ol_flags & PKT_TX_IP_CKSUM) {
|
||||||
type_tucmd_mlhl = IXGBE_ADVTXD_TUCMD_IPV4;
|
type_tucmd_mlhl = IXGBE_ADVTXD_TUCMD_IPV4;
|
||||||
tx_offload_mask.l2_len = ~0;
|
tx_offload_mask.l2_len |= ~0;
|
||||||
tx_offload_mask.l3_len = ~0;
|
tx_offload_mask.l3_len |= ~0;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (ol_flags & PKT_TX_L4_MASK) {
|
switch (ol_flags & PKT_TX_L4_MASK) {
|
||||||
@ -409,23 +409,23 @@ ixgbe_set_xmit_ctx(struct igb_tx_queue* txq,
|
|||||||
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_UDP |
|
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_UDP |
|
||||||
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
|
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
|
||||||
mss_l4len_idx |= sizeof(struct udp_hdr) << IXGBE_ADVTXD_L4LEN_SHIFT;
|
mss_l4len_idx |= sizeof(struct udp_hdr) << IXGBE_ADVTXD_L4LEN_SHIFT;
|
||||||
tx_offload_mask.l2_len = ~0;
|
tx_offload_mask.l2_len |= ~0;
|
||||||
tx_offload_mask.l3_len = ~0;
|
tx_offload_mask.l3_len |= ~0;
|
||||||
break;
|
break;
|
||||||
case PKT_TX_TCP_CKSUM:
|
case PKT_TX_TCP_CKSUM:
|
||||||
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_TCP |
|
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_TCP |
|
||||||
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
|
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
|
||||||
mss_l4len_idx |= sizeof(struct tcp_hdr) << IXGBE_ADVTXD_L4LEN_SHIFT;
|
mss_l4len_idx |= sizeof(struct tcp_hdr) << IXGBE_ADVTXD_L4LEN_SHIFT;
|
||||||
tx_offload_mask.l2_len = ~0;
|
tx_offload_mask.l2_len |= ~0;
|
||||||
tx_offload_mask.l3_len = ~0;
|
tx_offload_mask.l3_len |= ~0;
|
||||||
tx_offload_mask.l4_len = ~0;
|
tx_offload_mask.l4_len |= ~0;
|
||||||
break;
|
break;
|
||||||
case PKT_TX_SCTP_CKSUM:
|
case PKT_TX_SCTP_CKSUM:
|
||||||
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_SCTP |
|
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_SCTP |
|
||||||
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
|
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
|
||||||
mss_l4len_idx |= sizeof(struct sctp_hdr) << IXGBE_ADVTXD_L4LEN_SHIFT;
|
mss_l4len_idx |= sizeof(struct sctp_hdr) << IXGBE_ADVTXD_L4LEN_SHIFT;
|
||||||
tx_offload_mask.l2_len = ~0;
|
tx_offload_mask.l2_len |= ~0;
|
||||||
tx_offload_mask.l3_len = ~0;
|
tx_offload_mask.l3_len |= ~0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_RSV |
|
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_RSV |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user