[<prev] [next>] [day] [month] [year] [list]
Message-ID: <27A329AA0DBF4A2B+20250411105459.90782-3-chenlinxuan@uniontech.com>
Date: Fri, 11 Apr 2025 18:54:51 +0800
From: Chen Linxuan <chenlinxuan@...ontech.com>
To: Yishai Hadas <yishaih@...dia.com>,
Jason Gunthorpe <jgg@...pe.ca>,
Shameer Kolothum <shameerali.kolothum.thodi@...wei.com>,
Kevin Tian <kevin.tian@...el.com>,
Alex Williamson <alex.williamson@...hat.com>
Cc: Winston Wen <wentao@...ontech.com>,
Chen Linxuan <chenlinxuan@...ontech.com>,
kvm@...r.kernel.org,
virtualization@...ts.linux.dev,
linux-kernel@...r.kernel.org
Subject: [RFC PATCH 3/7] vfio/virtio: add __always_inline for virtiovf_get_device_config_size
From: Winston Wen <wentao@...ontech.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 <wentao@...ontech.com>
Co-Developed-by: Chen Linxuan <chenlinxuan@...ontech.com>
Signed-off-by: Chen Linxuan <chenlinxuan@...ontech.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
Powered by blists - more mailing lists