• Arnd Bergmann's avatar
    cgroup: avoid false positive gcc-6 warning · 603c7800
    Arnd Bergmann authored
    commit cfe02a8a upstream.
    
    When all subsystems are disabled, gcc notices that cgroup_subsys_enabled_key
    is a zero-length array and that any access to it must be out of bounds:
    
    In file included from ../include/linux/cgroup.h:19:0,
                     from ../kernel/cgroup.c:31:
    ../kernel/cgroup.c: In function 'cgroup_add_cftypes':
    ../kernel/cgroup.c:261:53: error: array subscript is above array bounds [-Werror=array-bounds]
      return static_key_enabled(cgroup_subsys_enabled_key[ssid]);
                                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
    ../include/linux/jump_label.h:271:40: note: in definition of macro 'static_key_enabled'
      static_key_count((struct static_key *)x) > 0;    \
                                            ^
    
    We should never call the function in this particular case, so this is
    not a bug. In order to silence the warning, this adds an explicit check
    for the CGROUP_SUBSYS_COUNT==0 case.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    603c7800
cgroup.c 162 KB