From: Tejun Heo <[email protected]>
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 <[email protected]>
> Reported-by: Alaa Hleihel <[email protected]>
> Fixes: bd1060a1d671 ("sock, cgroup: add sock->sk_cgroup")
Applied, thanks.