[dpdk-dev,RFC] Clang errors with bit fields and setting value of ~0.
Commit Message
error: implicit truncation from 'int' to bitfield
changes value from -1 to 127 [-Werror,-Wbitfield-constant-conversion]
tx_offload_mask.l2_len = ~0;
Converted to use correct bit values
tx_offload_mask.l2_len = 0x7f;
Signer-off-by: Keith Wiles <keith.wiles@windriver.com>
---
lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
Comments
Hi Keith,
On 11/29/2014 05:33 PM, Keith Wiles wrote:
> error: implicit truncation from 'int' to bitfield
> changes value from -1 to 127 [-Werror,-Wbitfield-constant-conversion]
> tx_offload_mask.l2_len = ~0;
> Converted to use correct bit values
> tx_offload_mask.l2_len = 0x7f;
>
> Signer-off-by: Keith Wiles <keith.wiles@windriver.com>
> ---
> lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 28 ++++++++++++++--------------
> 1 file changed, 14 insertions(+), 14 deletions(-)
>
I just submitted a patch that fixes the same issue without having
to know the size of the bitfield.
http://dpdk.org/ml/archives/dev/2014-December/009112.html
Regards,
Olivier
@@ -381,7 +381,7 @@ ixgbe_set_xmit_ctx(struct igb_tx_queue* txq,
mss_l4len_idx |= (ctx_idx << IXGBE_ADVTXD_IDX_SHIFT);
if (ol_flags & PKT_TX_VLAN_PKT) {
- tx_offload_mask.vlan_tci = ~0;
+ tx_offload_mask.vlan_tci = 0xFFFF;
}
/* 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_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
- tx_offload_mask.l2_len = ~0;
- tx_offload_mask.l3_len = ~0;
- tx_offload_mask.l4_len = ~0;
- tx_offload_mask.tso_segsz = ~0;
+ tx_offload_mask.l2_len = 0x7f;
+ tx_offload_mask.l3_len = 0x1ff;
+ tx_offload_mask.l4_len = 0xff;
+ tx_offload_mask.tso_segsz = 0xffff;
mss_l4len_idx |= tx_offload.tso_segsz << IXGBE_ADVTXD_MSS_SHIFT;
mss_l4len_idx |= tx_offload.l4_len << IXGBE_ADVTXD_L4LEN_SHIFT;
} else { /* no TSO, check if hardware checksum is needed */
if (ol_flags & PKT_TX_IP_CKSUM) {
type_tucmd_mlhl = IXGBE_ADVTXD_TUCMD_IPV4;
- tx_offload_mask.l2_len = ~0;
- tx_offload_mask.l3_len = ~0;
+ tx_offload_mask.l2_len = 0x7f;
+ tx_offload_mask.l3_len = 0x1ff;
}
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 |
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
mss_l4len_idx |= sizeof(struct udp_hdr) << IXGBE_ADVTXD_L4LEN_SHIFT;
- tx_offload_mask.l2_len = ~0;
- tx_offload_mask.l3_len = ~0;
+ tx_offload_mask.l2_len = 0x7f;
+ tx_offload_mask.l3_len = 0x1ff;
break;
case PKT_TX_TCP_CKSUM:
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_TCP |
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
mss_l4len_idx |= sizeof(struct tcp_hdr) << IXGBE_ADVTXD_L4LEN_SHIFT;
- tx_offload_mask.l2_len = ~0;
- tx_offload_mask.l3_len = ~0;
- tx_offload_mask.l4_len = ~0;
+ tx_offload_mask.l2_len = 0x7f;
+ tx_offload_mask.l3_len = 0x1ff;
+ tx_offload_mask.l4_len = 0xff;
break;
case PKT_TX_SCTP_CKSUM:
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_SCTP |
IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT;
mss_l4len_idx |= sizeof(struct sctp_hdr) << IXGBE_ADVTXD_L4LEN_SHIFT;
- tx_offload_mask.l2_len = ~0;
- tx_offload_mask.l3_len = ~0;
+ tx_offload_mask.l2_len = 0x7f;
+ tx_offload_mask.l3_len = 0x1ff;
break;
default:
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_RSV |