Messages in this thread Patch in this message | | | Date | Fri, 14 Nov 2014 07:31:27 +0900 | From | Sergey Senozhatsky <> | Subject | Re: [PATCH 1/3] mm/zsmalloc: avoid unregister a NOT-registered zsmalloc zpool driver |
| |
On (11/14/14 00:30), Sergey Senozhatsky wrote: > Factor out zsmalloc cpu notifier unregistration code and call > it from both zs_exit() and zs_init() error path.
I should had have a good sleep before posting this. shame on me!
v3
Signed-ogg-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
---
mm/zsmalloc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index b3b57ef..cd4efa1 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -881,14 +881,10 @@ static struct notifier_block zs_cpu_nb = { .notifier_call = zs_cpu_notifier }; -static void zs_exit(void) +static void zs_unregister_cpu_notifier(void) { int cpu; -#ifdef CONFIG_ZPOOL - zpool_unregister_driver(&zs_zpool_driver); -#endif - cpu_notifier_register_begin(); for_each_online_cpu(cpu) @@ -898,6 +894,14 @@ static void zs_exit(void) cpu_notifier_register_done(); } +static void zs_exit(void) +{ +#ifdef CONFIG_ZPOOL + zpool_unregister_driver(&zs_zpool_driver); +#endif + zs_unregister_cpu_notifier(); +} + static int zs_init(void) { int cpu, ret; @@ -921,7 +925,7 @@ static int zs_init(void) return 0; fail: - zs_exit(); + zs_unregister_cpu_notifier(); return notifier_to_errno(ret); }
| |