Thread (19 messages) 19 messages, 4 authors, 2021-10-25

Re: [dpdk-dev] [PATCH V2 1/3] net: avoid cast-align warning in VLAN insert function

From: Eli Britstein <hidden>
Date: 2021-10-21 16:16:33

On 10/21/2021 6:48 PM, Stephen Hemminger wrote:
External email: Use caution opening links or attachments


On Thu, 21 Oct 2021 11:51:30 +0300
Eli Britstein [off-list ref] wrote:
quoted
In rte_vlan_insert there is a casting of rte_pktmbuf_prepend returned
value to (struct rte_ether_hdr *), which causes cast-align warning when
using strict cast align flag with supporting gcc:
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
CFLAGS="-Wcast-align=strict" make V=1 -C examples/l2fwd clean static

In file included from main.c:35:
/dpdk/build/include/rte_ether.h:370:7: warning: cast increases required
alignment of target type [-Wcast-align]
   370 |  nh = (struct rte_ether_hdr *)
       |       ^

As the code assumes correct alignment, add first a (void *) casting, to
avoid the warning.

Fixes: c974021a5949 ("ether: add soft vlan encap/decap")
Cc: stable@dpdk.org

Signed-off-by: Eli Britstein <redacted>
Acked-by: Olivier Matz <redacted>
After cast to void * the second cast is not necessary.

         nh = (void *)rte_pktmbuf_prepend(...)

Ideally rte_pktmbuf_prepend() should return void * but that is
an API change.
Removing the second cast, it is silently done anyway, as 'nh' is of type 'struct rte_ether_hdr *'.

Going with this approach (I can also do it for patch 3/3), we can change rte_pktmbuf_prepend to return (void *), and let the applications using it do the silent cast.

What do you think?

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help