From: Winston Wen <wen...@uniontech.com> On x86_64 with gcc version 13.3.0, I compile drivers/vfio/pci/virtio/legacy_io.c with:
make defconfig ./scripts/kconfig/merge_config.sh .config <( echo CONFIG_VFIO=m echo CONFIG_VIRTIO_PCI=y echo CONFIG_VIRTIO_PCI_LIB_LEGACY=y echo CONFIG_VIRTIO_VFIO_PCI=m echo CONFIG_VIRTIO_VFIO_PCI_ADMIN_LEGACY=y ) make KCFLAGS="-fno-inline-small-functions -fno-inline-functions-called-once" \ drivers/vfio/pci/virtio/legacy_io.o Then I get a compile error: CALL scripts/checksyscalls.sh DESCEND objtool INSTALL libsubcmd_headers CC drivers/vfio/pci/virtio/legacy_io.o In file included from <command-line>: drivers/vfio/pci/virtio/legacy_io.c: In function 'virtiovf_init_legacy_io': ././include/linux/compiler_types.h:557:45: error: call to '__compiletime_assert_889' declared with attribute error: BUILD_BUG_ON failed: !is_power_of_2(virtvdev->bar0_virtual_buf_size) 557 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^ ././include/linux/compiler_types.h:538:25: note: in definition of macro '__compiletime_assert' 538 | prefix ## suffix(); \ | ^~~~~~ ././include/linux/compiler_types.h:557:9: note: in expansion of macro '_compiletime_assert' 557 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ ./include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^~~~~~~~~~~~~~~~~~ ./include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG' 50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) | ^~~~~~~~~~~~~~~~ drivers/vfio/pci/virtio/legacy_io.c:401:9: note: in expansion of macro 'BUILD_BUG_ON' 401 | BUILD_BUG_ON(!is_power_of_2(virtvdev->bar0_virtual_buf_size)); | ^~~~~~~~~~~~ Signed-off-by: Winston Wen <wen...@uniontech.com> Co-Developed-by: Chen Linxuan <chenlinx...@uniontech.com> Signed-off-by: Chen Linxuan <chenlinx...@uniontech.com> --- drivers/vfio/pci/virtio/legacy_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/vfio/pci/virtio/legacy_io.c b/drivers/vfio/pci/virtio/legacy_io.c index 832af5ba267c..b6871d50b9f9 100644 --- a/drivers/vfio/pci/virtio/legacy_io.c +++ b/drivers/vfio/pci/virtio/legacy_io.c @@ -350,7 +350,7 @@ int virtiovf_open_legacy_io(struct virtiovf_pci_core_device *virtvdev) return virtiovf_set_notify_addr(virtvdev); } -static int virtiovf_get_device_config_size(unsigned short device) +static __always_inline int virtiovf_get_device_config_size(unsigned short device) { /* Network card */ return offsetofend(struct virtio_net_config, status); -- 2.48.1