> -----Original Message-----
> From: Stephen Hemminger <step...@networkplumber.org>
> Sent: Tuesday, December 13, 2022 11:51 AM
> To: Zhang, Ke1X <ke1x.zh...@intel.com>
> Cc: Zhang, Qi Z <qi.z.zh...@intel.com>; Zhang, Yuying
> <yuying.zh...@intel.com>; dev@dpdk.org
> Subject: Re: [PATCH] net/ice: add devargs for disabling mac filter
>
> On Fri, 25 Nov 2022 10:51:24 +0800
> Ke Zhang <ke1x.zh...@intel.com> wrote:
>
> > diff --git a/drivers/net/ice/ice_ethdev.h
> > b/drivers/net/ice/ice_ethdev.h index c8311be179..0350c6584a 100644
> > --- a/drivers/net/ice/ice_ethdev.h
> > +++ b/drivers/net/ice/ice_ethdev.h
> > @@ -563,6 +563,7 @@ struct ice_devargs {
> > int safe_mode_support;
> > uint8_t proto_xtr_dflt;
> > int pipe_mode_support;
> > + int mac_filter_disable;
>
> Why use 4 bytes for a flag when a single bit would do.
After modifying the code like this:
struct ice_devargs {
int rx_low_latency : 1;
int safe_mode_support : 1;
int pipe_mode_support : 1;
int mac_filter_disable : 1;
I met a issue when compiling the code:
../drivers/net/ice/ice_ethdev.c:2076:19: error: cannot take address of
bit-field 'safe_mode_support'
2076 | &parse_bool, &ad->devargs.safe_mode_support);
| ^
../drivers/net/ice/ice_ethdev.c:2081:19: error: cannot take address of
bit-field 'pipe_mode_support'
2081 | &parse_bool, &ad->devargs.pipe_mode_support);
| ^
../drivers/net/ice/ice_ethdev.c:2086:18: error: cannot take address of
bit-field 'mac_filter_disable'
2086 | &parse_bool, &ad->devargs.mac_filter_disable);
| ^
../drivers/net/ice/ice_ethdev.c:2101:19: error: cannot take address of
bit-field 'rx_low_latency'
2101 | &parse_bool, &ad->devargs.rx_low_latency);
It seems that bitfields members aren't addressable.