diff options
author | Petri Savolainen <petri.savolainen@nokia.com> | 2020-10-28 13:42:57 +0200 |
---|---|---|
committer | Petri Savolainen <petri.savolainen@nokia.com> | 2020-11-03 10:59:54 +0200 |
commit | 8afd362407c586ea55878c908aa7d1d61b6f80e4 (patch) | |
tree | 17fad6124895cfb227e66f293e25f69a4546e1d8 /helper/chksum.c | |
parent | 9f3ddcf2dc1dbf5c6e86c0712fcb52ea5aabe19f (diff) |
helper: checksum: point header field with unaligned type
GCC9 warns about pointing to a field of a packed structure
with a regular (uint16_t) pointer type. Use an unaligned type
(odp_una16_t) instead to fix those warnings.
GCC warning: taking address of packed member of struct may
result in an unaligned pointer value [-Waddress-of-packed-member]
Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Reviewed-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Diffstat (limited to 'helper/chksum.c')
-rw-r--r-- | helper/chksum.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/helper/chksum.c b/helper/chksum.c index e9ef19a62..8421db7e8 100644 --- a/helper/chksum.c +++ b/helper/chksum.c @@ -105,7 +105,7 @@ static inline int odph_process_l4_hdr(odp_packet_t odp_pkt, odph_tcphdr_t *tcp_hdr_ptr; odp_bool_t split_l4_hdr, is_tcp; uint32_t l4_offset, l4_len, pkt_chksum_offset; - uint16_t *pkt_chksum_ptr; + odp_una_u16_t *pkt_chksum_ptr; uint8_t *l4_ptr; uint32_t hdr_len = 0; @@ -130,7 +130,7 @@ static inline int odph_process_l4_hdr(odp_packet_t odp_pkt, * should come from the udp header, unlike for TCP where is * derived. */ l4_len = odp_be_to_cpu_16(udp_hdr_ptr->length); - pkt_chksum_ptr = (uint16_t *)(void *)&udp_hdr_ptr->chksum; + pkt_chksum_ptr = (odp_una_u16_t *)&udp_hdr_ptr->chksum; pkt_chksum_offset = l4_offset + offsetof(odph_udphdr_t, chksum); } else if (odp_packet_has_tcp(odp_pkt)) { tcp_hdr_ptr = (odph_tcphdr_t *)l4_ptr; @@ -141,7 +141,7 @@ static inline int odph_process_l4_hdr(odp_packet_t odp_pkt, ODPH_TCPHDR_LEN, tcp_hdr_ptr); } - pkt_chksum_ptr = (uint16_t *)(void *)&tcp_hdr_ptr->cksm; + pkt_chksum_ptr = (odp_una_u16_t *)&tcp_hdr_ptr->cksm; pkt_chksum_offset = l4_offset + offsetof(odph_tcphdr_t, cksm); is_tcp = true; } else { @@ -186,7 +186,7 @@ static inline int odph_process_l3_hdr(odp_packet_t odp_pkt, swap_buf_t swap_buf; uint32_t l3_offset, l4_offset, l3_hdrs_len, addrs_len; uint32_t protocol, l3_len, l4_len, idx, ipv6_payload_len, sum; - uint16_t *addrs_ptr; + odp_una_u16_t *addrs_ptr; uint32_t hdr_len = 0; /* The following computation using the l3 and l4 offsets handles both @@ -206,7 +206,7 @@ static inline int odph_process_l3_hdr(odp_packet_t odp_pkt, ipv4_hdr_ptr = &ipv4_hdr; } - addrs_ptr = (uint16_t *)(void *)&ipv4_hdr_ptr->src_addr; + addrs_ptr = (odp_una_u16_t *)&ipv4_hdr_ptr->src_addr; addrs_len = 2 * ODPH_IPV4ADDR_LEN; protocol = ipv4_hdr_ptr->proto; l3_len = odp_be_to_cpu_16(ipv4_hdr_ptr->tot_len); @@ -219,7 +219,7 @@ static inline int odph_process_l3_hdr(odp_packet_t odp_pkt, ipv6_hdr_ptr = &ipv6_hdr; } - addrs_ptr = (uint16_t *)(void *)&ipv6_hdr_ptr->src_addr; + addrs_ptr = (odp_una_u16_t *)&ipv6_hdr_ptr->src_addr; addrs_len = 2 * ODPH_IPV6ADDR_LEN; protocol = ipv6_hdr_ptr->next_hdr; ipv6_payload_len = odp_be_to_cpu_16(ipv6_hdr_ptr->payload_len); |