virtio: store owner from modules with register_virtio_driver()
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Sun, 31 Mar 2024 08:43:48 +0000 (10:43 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 8 Apr 2024 08:11:04 +0000 (04:11 -0400)
commitffe6176b7f53ca0c99355f13e14a33a40cf49406
treeb0bc3625830dae9fbdeb79ca09fea160e9d3a57b
parentdf9ace7647d4123209395bb9967e998d5758c645
virtio: store owner from modules with register_virtio_driver()

Modules registering driver with register_virtio_driver() might forget to
set .owner field.  i2c-virtio.c for example has it missing.  The field
is used by some 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
virtio code, just like we did for platform_driver in
commit 9447057eaff8 ("platform_device: use a macro instead of
platform_driver_register").

Fixes: 3cfc88380413 ("i2c: virtio: add a virtio i2c frontend driver")
Cc: "Jie Deng" <jie.deng@intel.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Message-Id: <20240331-module-owner-virtio-v2-1-98f04bfaf46a@linaro.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Documentation/driver-api/virtio/writing_virtio_drivers.rst
drivers/virtio/virtio.c
include/linux/virtio.h