On Thu, 9 Dec 2021 09:48:25 +0800 Biao Huang wrote: > Sorry for some typo in previous reply, fix it here. > > All these warning lines share a similar semantics: > delay_val |= FIELD_PREP(xxx, !!val); > > and, should come from the expansion of FIELD_PREP in > include/linux/bitfiled.h: > > FIELD _PREP --> __BF_FILED_CHECK --> "~((_mask) >> __bf_shf(_mask)) & > (_val) : 0," > > =============================================================== > __BF_FILED_CHECK { > ... > BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? \ > ~((_mask) >> __bf_shf(_mask)) & (_val) : 0, \ > _pfx "value too large for the field"); \ ... > =============================================================== > > Should I fix it by converting > delay_val |= FIELD_PREP(ETH_DLY_TXC_ENABLE, !!mac_delay->tx_delay); > to > en_val = !!mac_delay->tx_delay; > delay_val |= FIELD_PREP(ETH_DLY_TXC_ENABLE, en_val); > > or other suggestions for these warnings? I see, thanks for explaining. The code is fine, we can simply ignore this warning IMHO.