From: Gustavo Sousa Date: Thu, 11 May 2023 19:48:22 +0000 (-0300) Subject: drm/xe: Call exit functions when xe_register_pci_driver() fails X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=9afd4b2d2a8df9023849ddd25d5e064b6555ee34;p=linux.git 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 Reviewed-by: Matt Atwood Signed-off-by: Gustavo Sousa Signed-off-by: Rodrigo Vivi --- diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c index e2a61aaf50b68..496a9001dc3e2 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(); }