firmware: coreboot: store owner from modules with coreboot_driver_register()
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Sat, 30 Mar 2024 19:49:47 +0000 (20:49 +0100)
committerTzung-Bi Shih <tzungbi@kernel.org>
Wed, 3 Apr 2024 07:09:26 +0000 (15:09 +0800)
commit46c6685e7e886b7fa098465f8bfd139a253365e4
treecab0246ad93fe2a7b64edf6cc0961bb1446f1511
parent4cece764965020c22cff7665b18a012006359095
firmware: coreboot: store owner from modules with coreboot_driver_register()

Modules registering driver with coreboot_driver_register() might
forget to set .owner field.  The field is used by some of other kernel
parts for reference counting (try_module_get()), so it is expected that
drivers will set it.

Solve the problem by moving this task away from the drivers to the core
code, just like we did for platform_driver in
commit 9447057eaff8 ("platform_device: use a macro instead of
platform_driver_register").

Moving the .owner setting code to the core this effectively fixes
missing .owner in framebuffer-coreboot, memconsole-coreboot and vpd
drivers.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240330-module-owner-coreboot-v1-1-ddba098b6dcf@linaro.org
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
drivers/firmware/google/coreboot_table.c
drivers/firmware/google/coreboot_table.h