From patchwork Mon Mar 14 22:36:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 102583 Delivered-To: patch@linaro.org Received: by 10.112.199.169 with SMTP id jl9csp312883lbc; Mon, 14 Mar 2016 15:36:52 -0700 (PDT) X-Received: by 10.66.154.233 with SMTP id vr9mr41734229pab.66.1457995012537; Mon, 14 Mar 2016 15:36:52 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ly8si26866579pab.89.2016.03.14.15.36.51; Mon, 14 Mar 2016 15:36:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932592AbcCNWgq (ORCPT + 31 others); Mon, 14 Mar 2016 18:36:46 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:58766 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752726AbcCNWgn (ORCPT ); Mon, 14 Mar 2016 18:36:43 -0400 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue104) with ESMTPA (Nemesis) id 0MMFUT-1aknEV1iMX-007z2X; Mon, 14 Mar 2016 23:36:26 +0100 From: Arnd Bergmann To: Tejun Heo , Li Zefan , Johannes Weiner Cc: Arnd Bergmann , Aditya Kali , Aleksa Sarai , cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] cgroup: avoid false positive gcc-6 warning Date: Mon, 14 Mar 2016 23:36:05 +0100 Message-Id: <1457994978-1057495-1-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 X-Provags-ID: V03:K0:VysYPv6OEs5qUyqHJJpBuzbw5KWs18iAHqNIT6sH6VHByLV5Ewe bz0bfDERAfc/wm1Cy6BFzYhwY2ElDLCLKwOqQ1oPvCuwzqoYH1NjNfuFswtQb58/rqOAGq2 M0c+9MhINK8Y4LVGkA+tXaEpVOj2ki9INFYI0UxNDTzgrTchVhTzg8ZT+D4vkBk11qK07Fm irbh2fkXj8IpZI1WZsOyw== X-UI-Out-Filterresults: notjunk:1; V01:K0:VzCAyFl3jRE=:dJgDmCoi+zSjtzh4uXQ2R1 qkd49NOug7imJGdN81sOcSd1uHKDB5RNcCdbbHRPMl+TMZm5l+l5Q7aoR/mwpA/qnuTlMDL9q Nzy5iGlVA2oAMuGRlE+2vwu7fGjJWccwMIuQSKfFog5hABtIBl5ze1jQHIXF6p3jnTVsN+e0f /OvTL6HmEaBhEWPFzYOQh0U3MX7/X36br2BVCr5rNs/thryry40wRVfC5x4Md+yWGhjkzJJPa f5Q64pKN7xfuChhoeYazxJ6FUXpQpdPcYUygaxH/PkLuDbxuO66ZwG5I7GQJeowtshbn7zkO1 NHmX6N/jcvX7LEVyFxYykvutyQICeluPQoxOVZekM9cSies6iSTFNLFEi9kR2NYVHwYOqoKql 5tZAB1cYtZJwc21hYmhNsLSxOme8IxfG+dGdlCuFIkcxPxKrCpdXyJ9RYAOkN/oWZC+kun0ff bnadtzhPMAgeIoUpW4MXrT5txYdZha3IOXDgay/N5G5b5cNCyW7NgJBho532HlQEmQixFqxeM 0j7F9rEw0e9Qb7LR3vxSZfWjOLdm4nsmIYK4vyKxr5p3Fk72IAJD+cgB9YrC5zfUzkfS0CHxR YjRidg4iYsZ76uWqapXgkZ2nLcCullMvECUZgxT+3AVylUVI7VDktQIqq6apJJrDSf0Kk7Cg+ BUCidsZE66NfKCRW4++IhtaUvllgBOpezoix3QuXY0othP5g1eUPUUESLQz4CQ7oiai8= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: Arnd Bergmann --- kernel/cgroup.c | 3 +++ 1 file changed, 3 insertions(+) -- 2.7.0 diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 155c88470543..3348a36c3694 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -258,6 +258,9 @@ static int cgroup_addrm_files(struct cgroup_subsys_state *css, */ static bool cgroup_ssid_enabled(int ssid) { + if (CGROUP_SUBSYS_COUNT == 0) + return 0; + return static_key_enabled(cgroup_subsys_enabled_key[ssid]); }