Hi Eli, Thank you for the patch! Yet something to improve: [auto build test ERROR on next-20200715] url: https://github.com/0day-ci/linux/commits/Eli-Cohen/VDPA-support-for-Mellanox-ConnectX-devices/20200716-155039 base: ca0e494af5edb59002665bf12871e94b4163a257 config: i386-allyesconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-14) 9.3.0 reproduce (this is a W=1 build): # save the attached .config to linux build tree make W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All error/warnings (new ones prefixed by >>): >> drivers/vdpa/mlx5/net/main.c:7:10: fatal error: mlx5_vdpa_ifc.h: No such file or directory 7 | #include "mlx5_vdpa_ifc.h" | ^~~~~~~~~~~~~~~~~ compilation terminated. -- | ^~~~~~~~~~~~~ include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz' 56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f)) | ^~~~~~~~~~~~~ include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off' 58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld)) | ^~~~~~~~~~~~~~~~~ include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask' 78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \ | ^~~~~~~~~~~~~~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET' 1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q); | ^~~~~~~~ include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_rqtc_bits' has no member named 'list_q_type' 135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b) | ^~~~~~~~~~~~~~~~~~ include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32' 115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x)) | ^ include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32' 94 | #define cpu_to_be32 __cpu_to_be32 | ^~~~~~~~~~~~~ include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof' 17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~~ include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof' 51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld)) | ^~~~~~~~ include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off' 56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f)) | ^~~~~~~~~~~~~~ include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off' 58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld)) | ^~~~~~~~~~~~~~~~~ include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask' 78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \ | ^~~~~~~~~~~~~~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET' 1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q); | ^~~~~~~~ include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqtc_bits' has no member named 'list_q_type' 50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld) | ^~ include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32' 115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x)) | ^ include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32' 94 | #define cpu_to_be32 __cpu_to_be32 | ^~~~~~~~~~~~~ include/linux/mlx5/device.h:57:47: note: in expansion of macro '__mlx5_bit_sz' 57 | #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1)) | ^~~~~~~~~~~~~ include/linux/mlx5/device.h:78:48: note: in expansion of macro '__mlx5_mask' 78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \ | ^~~~~~~~~~~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET' 1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q); | ^~~~~~~~ include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqtc_bits' has no member named 'list_q_type' 50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld) | ^~ include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32' 115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x)) | ^ include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32' 94 | #define cpu_to_be32 __cpu_to_be32 | ^~~~~~~~~~~~~ include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz' 56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f)) | ^~~~~~~~~~~~~ include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off' 79 | << __mlx5_dw_bit_off(typ, fld))); \ | ^~~~~~~~~~~~~~~~~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET' 1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q); | ^~~~~~~~ include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_rqtc_bits' has no member named 'list_q_type' 135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b) | ^~~~~~~~~~~~~~~~~~ include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32' 115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x)) | ^ include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32' 94 | #define cpu_to_be32 __cpu_to_be32 | ^~~~~~~~~~~~~ include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof' 17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~~ include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof' 51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld)) | ^~~~~~~~ include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off' 56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f)) | ^~~~~~~~~~~~~~ include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off' 79 | << __mlx5_dw_bit_off(typ, fld))); \ | ^~~~~~~~~~~~~~~~~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET' 1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q); | ^~~~~~~~ >> drivers/vdpa/mlx5/net/mlx5_vnet.c:1171:6: warning: variable 'acutal_rqt' set but not used [-Wunused-but-set-variable] 1171 | int acutal_rqt; | ^~~~~~~~~~ In file included from include/linux/swab.h:5, from include/uapi/linux/byteorder/little_endian.h:13, from include/linux/byteorder/little_endian.h:5, from arch/x86/include/uapi/asm/byteorder.h:5, from include/asm-generic/bitops/le.h:6, from arch/x86/include/asm/bitops.h:395, from include/linux/bitops.h:29, from include/linux/kernel.h:12, from include/linux/vdpa.h:5, from drivers/vdpa/mlx5/net/mlx5_vnet.c:4: drivers/vdpa/mlx5/net/mlx5_vnet.c: In function 'mlx5_vdpa_get_features': include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_device_virtio_emulation_cap_bits' has no member named 'device_features_bits_mask' 135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b) | ^~~~~~~~~~~~~~~~~~ include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32' 115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x)) | ^ include/linux/byteorder/generic.h:95:21: note: in expansion of macro '__be32_to_cpu' 95 | #define be32_to_cpu __be32_to_cpu | ^~~~~~~~~~~~~ include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof' 17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~~ include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof' 51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld)) | ^~~~~~~~ include/linux/mlx5/device.h:53:34: note: in expansion of macro '__mlx5_bit_off' 53 | #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32) | ^~~~~~~~~~~~~~ include/linux/mlx5/device.h:96:1: note: in expansion of macro '__mlx5_dw_off' 96 | __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \ | ^~~~~~~~~~~~~ include/linux/mlx5/device.h:1364:2: note: in expansion of macro 'MLX5_GET' 1364 | MLX5_GET(device_virtio_emulation_cap, \ | ^~~~~~~~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1469:17: note: in expansion of macro 'MLX5_CAP_DEV_VDPA_EMULATION' 1469 | dev_features = MLX5_CAP_DEV_VDPA_EMULATION(mvdev->mdev, device_features_bits_mask); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/mlx5/qp.h:36, from drivers/vdpa/mlx5/net/mlx5_vnet.c:7: include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_device_virtio_emulation_cap_bits' has no member named 'device_features_bits_mask' 50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld) | ^~ include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz' 56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f)) | ^~~~~~~~~~~~~ include/linux/mlx5/device.h:96:30: note: in expansion of macro '__mlx5_dw_bit_off' 96 | __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \ | ^~~~~~~~~~~~~~~~~ include/linux/mlx5/device.h:1364:2: note: in expansion of macro 'MLX5_GET' 1364 | MLX5_GET(device_virtio_emulation_cap, \ | ^~~~~~~~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1469:17: note: in expansion of macro 'MLX5_CAP_DEV_VDPA_EMULATION' 1469 | dev_features = MLX5_CAP_DEV_VDPA_EMULATION(mvdev->mdev, device_features_bits_mask); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from : include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_device_virtio_emulation_cap_bits' has no member named 'device_features_bits_mask' 135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b) | ^~~~~~~~~~~~~~~~~~ include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof' 17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~~ include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof' 51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld)) | ^~~~~~~~ include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off' 56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f)) | ^~~~~~~~~~~~~~ include/linux/mlx5/device.h:96:30: note: in expansion of macro '__mlx5_dw_bit_off' 96 | __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \ | ^~~~~~~~~~~~~~~~~ include/linux/mlx5/device.h:1364:2: note: in expansion of macro 'MLX5_GET' 1364 | MLX5_GET(device_virtio_emulation_cap, \ | ^~~~~~~~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1469:17: note: in expansion of macro 'MLX5_CAP_DEV_VDPA_EMULATION' 1469 | dev_features = MLX5_CAP_DEV_VDPA_EMULATION(mvdev->mdev, device_features_bits_mask); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/mlx5/qp.h:36, from drivers/vdpa/mlx5/net/mlx5_vnet.c:7: include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_device_virtio_emulation_cap_bits' has no member named 'device_features_bits_mask' 50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld) | ^~ include/linux/mlx5/device.h:57:47: note: in expansion of macro '__mlx5_bit_sz' 57 | #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1)) | ^~~~~~~~~~~~~ include/linux/mlx5/device.h:97:1: note: in expansion of macro '__mlx5_mask' 97 | __mlx5_mask(typ, fld)) | ^~~~~~~~~~~ include/linux/mlx5/device.h:1364:2: note: in expansion of macro 'MLX5_GET' 1364 | MLX5_GET(device_virtio_emulation_cap, \ | ^~~~~~~~ drivers/vdpa/mlx5/net/mlx5_vnet.c:1469:17: note: in expansion of macro 'MLX5_CAP_DEV_VDPA_EMULATION' 1469 | dev_features = MLX5_CAP_DEV_VDPA_EMULATION(mvdev->mdev, device_features_bits_mask); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/swab.h:5, from include/uapi/linux/byteorder/little_endian.h:13, from include/linux/byteorder/little_endian.h:5, from arch/x86/include/uapi/asm/byteorder.h:5, vim +7 drivers/vdpa/mlx5/net/main.c 3 4 #include 5 #include 6 #include > 7 #include "mlx5_vdpa_ifc.h" 8 #include "mlx5_vnet.h" 9 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org