On 6/5/19 4:08 AM, Stephen Hemminger wrote:
From: Bruce Richardson <bruce.richard...@intel.com>

When including the rte_ether.h header in applications with warnings
enabled, a warning was given because of the assumption of 2-byte alignment
of ethernet addresses when processing them.

.../include/rte_ether.h:149:2: warning: converting a packed ‘const
   struct ether_addr’ pointer (alignment 1) to a ‘unaligned_uint16_t’
   {aka ‘const short unsigned int’} pointer (alignment 2) may result in
   an unaligned pointer value [-Waddress-of-packed-member]
149 |  const unaligned_uint16_t *ea_words = (const unaligned_uint16_t *)ea;
     |  ^~~~~

Since ethernet addresses should always be aligned on a two-byte boundary,
we can just inform the compiler of this assumption to remove the warnings
and allow us to always access the addresses using 16-bit operations.

Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
Signed-off-by: Stephen Hemminger <step...@networkplumber.org>

Reviewed-by: Andrew Rybchenko <arybche...@solarflare.com>

Reply via email to