diff mbox series

[2/2] firmware: arm_scmi: remove __exit annotation

Message ID 20210920100301.1466486-2-arnd@kernel.org (mailing list archive)
State New, archived
Headers show
Series [1/2] firmware: arm_scmi: fix VIRTIO dependency | expand

Commit Message

Arnd Bergmann Sept. 20, 2021, 10:02 a.m. UTC
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(-)

Comments

Sudeep Holla Sept. 20, 2021, 11:06 a.m. UTC | #1
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.
>

[...]

Applied to sudeep.holla/linux (for-next/scmi), thanks!

[2/2] firmware: arm_scmi: remove __exit annotation
      https://git.kernel.org/sudeep.holla/c/1cd73200da

--
Regards,
Sudeep
diff mbox series

Patch

diff --git a/drivers/firmware/arm_scmi/virtio.c b/drivers/firmware/arm_scmi/virtio.c
index 224577f86928..8941bb40f2df 100644
--- a/drivers/firmware/arm_scmi/virtio.c
+++ b/drivers/firmware/arm_scmi/virtio.c
@@ -476,7 +476,7 @@  static int __init virtio_scmi_init(void)
 	return register_virtio_driver(&virtio_scmi_driver);
 }
 
-static void __exit virtio_scmi_exit(void)
+static void virtio_scmi_exit(void)
 {
 	unregister_virtio_driver(&virtio_scmi_driver);
 }