On 2021-07-20 13:53, Will Deacon wrote:
On Mon, Jul 19, 2021 at 08:05:20AM -0700, kernelci.org bot wrote:
arm64/for-kernelci build: 2 builds: 1 failed, 1 passed, 2 errors, 1 warning (arm64-fixes)
Full Build Summary: https://kernelci.org/build/arm64/branch/for-kernelci/kernel/arm64-fixes/
Tree: arm64 Branch: for-kernelci Git Describe: arm64-fixes Git Commit: e6f85cbeb23bd74b8966cf1f15bf7d01399ff625 Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git Built: 1 unique architecture
Build Failure Detected:
arm64: allmodconfig: (gcc-8) FAIL
Errors and Warnings Detected:
arm64: allmodconfig (gcc-8): 2 errors, 1 warning
Errors summary:
1 ./../include/linux/compiler_types.h:328:38: error: call to ‘__compiletime_assert_1864’ declared with attribute error: FIELD_PREP: value too large for the field 1 ./../include/linux/compiler_types.h:328:38: error: call to ‘__compiletime_assert_1857’ declared with attribute error: FIELD_PREP: value too large for the field
Hmm, is there a way to find out more information about which assertion is causing the problem here? I'm not able to reproduce this locally, the branch in question has now been merged upstream and I can't see anything in there which would trigger this.
If you dig down into the raw logs it eventually appears to be the HNS inifiniband driver:
In file included from ../include/linux/byteorder/little_endian.h:5, from ../arch/arm64/include/uapi/asm/byteorder.h:23, from ../include/asm-generic/bitops/le.h:7, from ../arch/arm64/include/asm/bitops.h:29, from ../include/linux/bitops.h:32, from ../include/linux/of.h:15, from ../include/linux/irqdomain.h:35, from ../include/linux/acpi.h:13, from ../drivers/infiniband/hw/hns/hns_roce_hw_v2.c:33: In function ‘modify_qp_init_to_rtr’, inlined from ‘hns_roce_v2_set_abs_fields’ at ../drivers/infiniband/hw/hns/hns_roce_hw_v2.c:4798:9, inlined from ‘hns_roce_v2_modify_qp’ at ../drivers/infiniband/hw/hns/hns_roce_hw_v2.c:5001:8: ./../include/linux/compiler_types.h:328:38: error: call to ‘__compiletime_assert_1857’ declared with attribute error: FIELD_PREP: value too large for the field _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ ../include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro ‘__cpu_to_le32’ #define __cpu_to_le32(x) ((__force __le32)(__u32)(x)) ^ ./../include/linux/compiler_types.h:316:2: note: in expansion of macro ‘__compiletime_assert’ __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~~~~~~~~~~~~ ./../include/linux/compiler_types.h:328:2: note: in expansion of macro ‘_compiletime_assert’ _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~~~~~~~~~~~ ../include/linux/build_bug.h:39:37: note: in expansion of macro ‘compiletime_assert’ #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ ../include/linux/bitfield.h:49:3: note: in expansion of macro ‘BUILD_BUG_ON_MSG’ BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? \ ^~~~~~~~~~~~~~~~ ../include/linux/bitfield.h:94:3: note: in expansion of macro ‘__BF_FIELD_CHECK’ __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \ ^~~~~~~~~~~~~~~~ ../drivers/infiniband/hw/hns/hns_roce_common.h:91:52: note: in expansion of macro ‘FIELD_PREP’ *((__le32 *)ptr + (field_h) / 32) |= cpu_to_le32(FIELD_PREP( \ ^~~~~~~~~~ ../drivers/infiniband/hw/hns/hns_roce_common.h:95:39: note: in expansion of macro ‘_hr_reg_write’ #define hr_reg_write(ptr, field, val) _hr_reg_write(ptr, field, val) ^~~~~~~~~~~~~ ../drivers/infiniband/hw/hns/hns_roce_hw_v2.c:4422:2: note: in expansion of macro ‘hr_reg_write’ hr_reg_write(context, QPC_LP_PKTN_INI, lp_pktn_ini); ^~~~~~~~~~~~
I don't see that it has much to do with the arm64 tree though :/
Robin.