On 2021/6/17 3:40, Jason Gunthorpe wrote: > On Wed, Jun 02, 2021 at 04:57:39PM +0800, Weihang Li wrote: >> From: Lang Cheng <chenglang@xxxxxxxxxx> >> >> GCC may reports an running time assert error when a value calculated from >> ib_mtu_enum_to_int() is using as 'val' in FIELD_PREDP: >> >> include/linux/compiler_types.h:328:38: error: call to >> '__compiletime_assert_1524' declared with attribute error: FIELD_PREP: >> value too large for the field > > Huh? This warning looks reliable to me, you should not suppress it > like this. > >> But actually this error will still exists even if the driver can ensure >> that ib_mtu_enum_to_int() returns a legal value. So add a mask in >> hr_reg_write() to avoid above warning. > > I think you need to have an if that ib_mtu_enum_to_int() is not > negative, that should satisfy the CFA? > > Jason > I add a check for the integer mtu from ib_mtu_enum_to_int(), and gcc stop to complain about that. I will add a patch to this series to fix it. Thank you. Weihang