From: Arnd Bergmann <arnd@arndb.de>
Building with CONFIG_VIRTIO=m but CONFIG_ARM_SCMI_PROTOCOL=y leads to
a link error for the scmi virtio transport:
arm-linux-gnueabi-ld: drivers/firmware/arm_scmi/virtio.o: in function `virtio_send_message':
virtio.c:(.text+0x200): undefined reference to `virtqueue_add_sgs'
arm-linux-gnueabi-ld: virtio.c:(.text+0x280): undefined reference to `virtqueue_kick'
arm-linux-gnueabi-ld: drivers/firmware/arm_scmi/virtio.o: in function `scmi_vio_feed_vq_rx':
virtio.c:(.text+0x390): undefined reference to `virtqueue_add_inbuf'
arm-linux-gnueabi-ld: virtio.c:(.text+0x3dc): undefined reference to `virtqueue_kick'
arm-linux-gnueabi-ld: drivers/firmware/arm_scmi/virtio.o: in function `virtio_scmi_exit':
virtio.c:(.text+0x538): undefined reference to `unregister_virtio_driver'
arm-linux-gnueabi-ld: drivers/firmware/arm_scmi/virtio.o: in function `virtio_chan_available':
Prevent this configuration by making the Kconfig dependency a bit
stricter.
Fixes: 46abe13b5e3d ("firmware: arm_scmi: Add virtio transport")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/firmware/arm_scmi/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -68,7 +68,7 @@ config ARM_SCMI_TRANSPORT_SMCconfigARM_SCMI_TRANSPORT_VIRTIObool"SCMI transport based on VirtIO"-depends onVIRTIO+depends onVIRTIO=y||VIRTIO=ARM_SCMI_PROTOCOLselectARM_SCMI_HAVE_TRANSPORTselectARM_SCMI_HAVE_MSGhelp
--
2.29.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Arnd Bergmann <arnd@arndb.de>
virtio_scmi_exit() is only called from __exit function, so the annotation
is correct, but when the driver is built-in, the section gets discarded
and the reference from a callback pointer causes a link-time error:
`virtio_scmi_exit' referenced in section `.rodata' of drivers/firmware/arm_scmi/virtio.o: defined in discarded section `.exit.text' of drivers/firmware/arm_scmi/virtio.o
I could not figure out a better workaround, so let's just remove that
annotation even if it wastes a couple of bytes in .text.
Fixes: 46abe13b5e3d ("firmware: arm_scmi: Add virtio transport")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/firmware/arm_scmi/virtio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
On Mon, Sep 20, 2021 at 12:02:51PM +0200, Arnd Bergmann wrote:
From: Arnd Bergmann <arnd@arndb.de>
Building with CONFIG_VIRTIO=m but CONFIG_ARM_SCMI_PROTOCOL=y leads to
a link error for the scmi virtio transport:
arm-linux-gnueabi-ld: drivers/firmware/arm_scmi/virtio.o: in function `virtio_send_message':
virtio.c:(.text+0x200): undefined reference to `virtqueue_add_sgs'
arm-linux-gnueabi-ld: virtio.c:(.text+0x280): undefined reference to `virtqueue_kick'
arm-linux-gnueabi-ld: drivers/firmware/arm_scmi/virtio.o: in function `scmi_vio_feed_vq_rx':
virtio.c:(.text+0x390): undefined reference to `virtqueue_add_inbuf'
arm-linux-gnueabi-ld: virtio.c:(.text+0x3dc): undefined reference to `virtqueue_kick'
arm-linux-gnueabi-ld: drivers/firmware/arm_scmi/virtio.o: in function `virtio_scmi_exit':
virtio.c:(.text+0x538): undefined reference to `unregister_virtio_driver'
arm-linux-gnueabi-ld: drivers/firmware/arm_scmi/virtio.o: in function `virtio_chan_available':
Prevent this configuration by making the Kconfig dependency a bit
stricter.
Fixes: 46abe13b5e3d ("firmware: arm_scmi: Add virtio transport")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/firmware/arm_scmi/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
On Mon, Sep 20, 2021 at 12:02:52PM +0200, Arnd Bergmann wrote:
From: Arnd Bergmann <arnd@arndb.de>
virtio_scmi_exit() is only called from __exit function, so the annotation
is correct, but when the driver is built-in, the section gets discarded
and the reference from a callback pointer causes a link-time error:
`virtio_scmi_exit' referenced in section `.rodata' of drivers/firmware/arm_scmi/virtio.o: defined in discarded section `.exit.text' of drivers/firmware/arm_scmi/virtio.o
I could not figure out a better workaround, so let's just remove that
annotation even if it wastes a couple of bytes in .text.