2018-01-22 13:40:06

by Xiongwei Song

[permalink] [raw]
Subject: [PATCH] cgroup: remove incorrect check on the return value of css_alloc

The function css_alloc never return NULL, it may return normal pointer or
error codes that made by ERR_PTR, so !css is always false, we need use
IS_ERR to check it, and if this is true, we should use ERR_CAST handle it.

Signed-off-by: Xiongwei Song <[email protected]>
---
kernel/cgroup/cgroup.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index adac5b91d2b8..a442fd9ad744 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -4728,10 +4728,8 @@ static struct cgroup_subsys_state *css_create(struct cgroup *cgrp,
lockdep_assert_held(&cgroup_mutex);

css = ss->css_alloc(parent_css);
- if (!css)
- css = ERR_PTR(-ENOMEM);
if (IS_ERR(css))
- return css;
+ return ERR_CAST(css);

init_and_link_css(css, ss, cgrp);

--
2.15.1



2018-01-22 15:57:09

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] cgroup: remove incorrect check on the return value of css_alloc

Hello,

On Mon, Jan 22, 2018 at 09:38:51PM +0800, Xiongwei Song wrote:
> The function css_alloc never return NULL, it may return normal pointer or

It's a calling a controller implemented method. I'd much rather keep
the extra protection.

> error codes that made by ERR_PTR, so !css is always false, we need use
> IS_ERR to check it, and if this is true, we should use ERR_CAST handle it.

It's of the same type. Why would it need casting?

Thanks.

--
tejun

2018-01-22 23:22:29

by Xiongwei Song

[permalink] [raw]
Subject: Re: [PATCH] cgroup: remove incorrect check on the return value of css_alloc


> On 22 Jan 2018, at 11:55 PM, Tejun Heo <[email protected]> wrote:
>
> Hello,
>
> On Mon, Jan 22, 2018 at 09:38:51PM +0800, Xiongwei Song wrote:
>> The function css_alloc never return NULL, it may return normal pointer or
>
> It's a calling a controller implemented method. I'd much rather keep
> the extra protection.
>
>> error codes that made by ERR_PTR, so !css is always false, we need use
>> IS_ERR to check it, and if this is true, we should use ERR_CAST handle it.
>
> It's of the same type. Why would it need casting?

Okay, Thanks for your comment.

Apologies for the noise.

Thanks
Xiongwei
>
> Thanks.
>
> --
> tejun