summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo Sousa <gustavo.sousa@intel.com>2023-05-11 22:48:22 +0300
committerRodrigo Vivi <rodrigo.vivi@intel.com>2023-12-20 02:33:51 +0300
commit9afd4b2d2a8df9023849ddd25d5e064b6555ee34 (patch)
tree4b80ab3af99b7ae0ab4d63fd71756a74b2d59806
parenta029aecaa42018a9ebc90fbf6e2920acfc4c6b3f (diff)
downloadlinux-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.c8
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();
}