2018-01-04 00:09:04

by Xiongwei Song

[permalink] [raw]
Subject: [PATCH] staging: android: check the return value of register_shrinker

register_shrinker call is made in ashmem_init, it may return error code,
so we need to check it.

Signed-off-by: Xiongwei Song <[email protected]>
---
drivers/staging/android/ashmem.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c
index 4e8947923904..0b23c3e25cd4 100644
--- a/drivers/staging/android/ashmem.c
+++ b/drivers/staging/android/ashmem.c
@@ -854,12 +854,18 @@ static int __init ashmem_init(void)
goto out_free2;
}

- register_shrinker(&ashmem_shrinker);
+ ret = register_shrinker(&ashmem_shrinker);
+ if (unlikely(ret)) {
+ pr_err("failed to register shrinker!\n");
+ goto out_demisc;
+ }

pr_info("initialized\n");

return 0;

+out_demisc:
+ misc_deregister(&ashmem_misc);
out_free2:
kmem_cache_destroy(ashmem_range_cachep);
out_free1:
--
2.15.1


2018-01-04 14:55:39

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] staging: android: check the return value of register_shrinker

On Thu, Jan 04, 2018 at 08:08:53AM +0800, Xiongwei Song wrote:
> register_shrinker call is made in ashmem_init, it may return error code,
> so we need to check it.
>
> Signed-off-by: Xiongwei Song <[email protected]>
> ---
> drivers/staging/android/ashmem.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c
> index 4e8947923904..0b23c3e25cd4 100644
> --- a/drivers/staging/android/ashmem.c
> +++ b/drivers/staging/android/ashmem.c
> @@ -854,12 +854,18 @@ static int __init ashmem_init(void)
> goto out_free2;
> }
>
> - register_shrinker(&ashmem_shrinker);
> + ret = register_shrinker(&ashmem_shrinker);
> + if (unlikely(ret)) {

Don't add the unlikely() here. It hurts readability and this is not a
fast path. I know the other callers all have it... :/

regards,
dan carpenter























2018-01-04 15:15:52

by Xiongwei Song

[permalink] [raw]
Subject: Re: [PATCH] staging: android: check the return value of register_shrinker

2018-01-04 22:55 GMT+08:00 Dan Carpenter <[email protected]>:
> On Thu, Jan 04, 2018 at 08:08:53AM +0800, Xiongwei Song wrote:
>> register_shrinker call is made in ashmem_init, it may return error code,
>> so we need to check it.
>>
>> Signed-off-by: Xiongwei Song <[email protected]>
>> ---
>> drivers/staging/android/ashmem.c | 8 +++++++-
>> 1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c
>> index 4e8947923904..0b23c3e25cd4 100644
>> --- a/drivers/staging/android/ashmem.c
>> +++ b/drivers/staging/android/ashmem.c
>> @@ -854,12 +854,18 @@ static int __init ashmem_init(void)
>> goto out_free2;
>> }
>>
>> - register_shrinker(&ashmem_shrinker);
>> + ret = register_shrinker(&ashmem_shrinker);
>> + if (unlikely(ret)) {
>
> Don't add the unlikely() here. It hurts readability and this is not a
> fast path. I know the other callers all have it... :/

OK. Thanks for your suggestion. I'll send v2 out.



Thanks,
Xiongwei

>
> regards,
> dan carpenter
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>