Re: [PATCH net-next] cgroup: fix sock_cgroup_data initialization on earlier compilers
From: David Miller
Date: Wed Dec 09 2015 - 15:02:47 EST
From: Tejun Heo <tj@xxxxxxxxxx>
Date: Wed, 9 Dec 2015 12:30:46 -0500
> sock_cgroup_data is a struct containing an anonymous union.
> sock_cgroup_set_prioidx() and sock_cgroup_set_classid() were
> initializing a field inside the anonymous union as follows.
>
> struct sock_ccgroup_data skcd_buf = { .val = VAL };
>
> While this is fine on more recent compilers, gcc-4.4.7 triggers the
> following errors.
>
> include/linux/cgroup-defs.h: In function ʽsock_cgroup_set_prioidxʼ:
> include/linux/cgroup-defs.h:619: error: unknown field ʽvalʼ specified in initializer
> include/linux/cgroup-defs.h:619: warning: missing braces around initializer
> include/linux/cgroup-defs.h:619: warning: (near initialization for ʽskcd_buf.<anonymous>ʼ)
>
> This is because .val belongs to the anonymous union nested inside the
> struct but the initializer is missing the nesting. Fix it by adding
> an extra pair of braces.
>
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> Reported-by: Alaa Hleihel <alaa@xxxxxxxxxxxxxxxxxx>
> Fixes: bd1060a1d671 ("sock, cgroup: add sock->sk_cgroup")
Applied, thanks.