2014-11-09 11:22:45

by Ganesh Mahendran

[permalink] [raw]
Subject: [PATCH] mm/zswap: unregister zswap_cpu_notifier_block in cleanup procedure

In zswap_cpu_init(), the code does not unregister *zswap_cpu_notifier_block*
during the cleanup procedure.

This patch fix this issue.

Signed-off-by: Mahendran Ganesh <[email protected]>
---
mm/zswap.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/mm/zswap.c b/mm/zswap.c
index ea064c1..51a2c45 100644
--- a/mm/zswap.c
+++ b/mm/zswap.c
@@ -404,6 +404,7 @@ static int zswap_cpu_init(void)
cleanup:
for_each_online_cpu(cpu)
__zswap_cpu_notifier(CPU_UP_CANCELED, cpu);
+ __unregister_cpu_notifier(&zswap_cpu_notifier_block);
cpu_notifier_register_done();
return -ENOMEM;
}
--
1.7.9.5


2014-11-13 02:53:41

by Seth Jennings

[permalink] [raw]
Subject: Re: [PATCH] mm/zswap: unregister zswap_cpu_notifier_block in cleanup procedure

On Sun, Nov 09, 2014 at 07:22:23PM +0800, Mahendran Ganesh wrote:
> In zswap_cpu_init(), the code does not unregister *zswap_cpu_notifier_block*
> during the cleanup procedure.

This is not needed. If we are in the cleanup code, we never got to the
__register_cpu_notifier() call.

Thanks,
Seth

>
> This patch fix this issue.
>
> Signed-off-by: Mahendran Ganesh <[email protected]>
> ---
> mm/zswap.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mm/zswap.c b/mm/zswap.c
> index ea064c1..51a2c45 100644
> --- a/mm/zswap.c
> +++ b/mm/zswap.c
> @@ -404,6 +404,7 @@ static int zswap_cpu_init(void)
> cleanup:
> for_each_online_cpu(cpu)
> __zswap_cpu_notifier(CPU_UP_CANCELED, cpu);
> + __unregister_cpu_notifier(&zswap_cpu_notifier_block);
> cpu_notifier_register_done();
> return -ENOMEM;
> }
> --
> 1.7.9.5
>

2014-11-13 13:55:58

by Ganesh Mahendran

[permalink] [raw]
Subject: Re: [PATCH] mm/zswap: unregister zswap_cpu_notifier_block in cleanup procedure

2014-11-13 10:53 GMT+08:00 Seth Jennings <[email protected]>:
> On Sun, Nov 09, 2014 at 07:22:23PM +0800, Mahendran Ganesh wrote:
>> In zswap_cpu_init(), the code does not unregister *zswap_cpu_notifier_block*
>> during the cleanup procedure.
>
> This is not needed. If we are in the cleanup code, we never got to the
> __register_cpu_notifier() call.

Yes, you are right. Thanks for you review.

>
> Thanks,
> Seth
>
>>
>> This patch fix this issue.
>>
>> Signed-off-by: Mahendran Ganesh <[email protected]>
>> ---
>> mm/zswap.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/mm/zswap.c b/mm/zswap.c
>> index ea064c1..51a2c45 100644
>> --- a/mm/zswap.c
>> +++ b/mm/zswap.c
>> @@ -404,6 +404,7 @@ static int zswap_cpu_init(void)
>> cleanup:
>> for_each_online_cpu(cpu)
>> __zswap_cpu_notifier(CPU_UP_CANCELED, cpu);
>> + __unregister_cpu_notifier(&zswap_cpu_notifier_block);
>> cpu_notifier_register_done();
>> return -ENOMEM;
>> }
>> --
>> 1.7.9.5
>>