diff options
author | Gustavo Sousa <gustavo.sousa@intel.com> | 2023-05-11 22:48:22 +0300 |
---|---|---|
committer | Rodrigo Vivi <rodrigo.vivi@intel.com> | 2023-12-20 02:33:51 +0300 |
commit | 9afd4b2d2a8df9023849ddd25d5e064b6555ee34 (patch) | |
tree | 4b80ab3af99b7ae0ab4d63fd71756a74b2d59806 | |
parent | a029aecaa42018a9ebc90fbf6e2920acfc4c6b3f (diff) | |
download | linux-9afd4b2d2a8df9023849ddd25d5e064b6555ee34.tar.xz |
drm/xe: Call exit functions when xe_register_pci_driver() fails
Move xe_register_pci_driver() and xe_unregister_pci_driver() to
init_funcs to make sure that exit functions are also called when
xe_register_pci_driver() fails.
Note that this also allows adding init functions to be run after
xe_register_pci_driver().
v2:
- Move functions to init_funcs instead of having a special case for
xe_register_pci_driver(). (Jani)
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Matt Atwood <matthew.s.atwood@intel.com>
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
-rw-r--r-- | drivers/gpu/drm/xe/xe_module.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c index e2a61aaf50b6..496a9001dc3e 100644 --- a/drivers/gpu/drm/xe/xe_module.c +++ b/drivers/gpu/drm/xe/xe_module.c @@ -45,6 +45,10 @@ static const struct init_funcs init_funcs[] = { .init = xe_sched_job_module_init, .exit = xe_sched_job_module_exit, }, + { + .init = xe_register_pci_driver, + .exit = xe_unregister_pci_driver, + }, }; static int __init xe_init(void) @@ -60,15 +64,13 @@ static int __init xe_init(void) } } - return xe_register_pci_driver(); + return 0; } static void __exit xe_exit(void) { int i; - xe_unregister_pci_driver(); - for (i = ARRAY_SIZE(init_funcs) - 1; i >= 0; i--) init_funcs[i].exit(); } |