On Wed, 2021-12-08 at 17:51 -0800, Jakub Kicinski wrote: > 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. OK, thanks for your comments~