lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210826180042.35e8aab6@canb.auug.org.au>
Date:   Thu, 26 Aug 2021 18:00:42 +1000
From:   Stephen Rothwell <sfr@...b.auug.org.au>
To:     Kees Cook <keescook@...omium.org>
Cc:     Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Linux Next Mailing List <linux-next@...r.kernel.org>
Subject: linux-next: build warnings after merge of the kspp tree

Hi all,

After merging the kspp tree, today's linux-next build (arm
multi_v7_defconfig) produced these warnings:

In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'of_css':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_file_write':
kernel/cgroup/cgroup.c:476:44: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:389:48: note: in expansion of macro 'READ_ONCE'
  389 |  typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
      |                                                ^~~~~~~~~
include/linux/rcupdate.h:528:2: note: in expansion of macro '__rcu_dereference_check'
  528 |  __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
      |  ^~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cgroup.c:476:10: note: in expansion of macro 'rcu_dereference_check'
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
      |          ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_get_e_css':
kernel/cgroup/cgroup.c:476:44: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:389:48: note: in expansion of macro 'READ_ONCE'
  389 |  typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
      |                                                ^~~~~~~~~
include/linux/rcupdate.h:528:2: note: in expansion of macro '__rcu_dereference_check'
  528 |  __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
      |  ^~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cgroup.c:476:10: note: in expansion of macro 'rcu_dereference_check'
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
      |          ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
kernel/cgroup/cgroup.c:590:27: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  590 |  css = init_css_set.subsys[ss->id];
      |        ~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:205:30: note: while referencing 'subsys'
  205 |  struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
      |                              ^~~~~~
kernel/cgroup/cgroup.c:744:16: note: defined here 'init_css_set'
  744 | struct css_set init_css_set = {
      |                ^~~~~~~~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_subtree_control_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_controllers_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cpu_stat_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_freeze_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_max_depth_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_max_descendants_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_stat_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_events_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_type_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_seqfile_show':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_addrm_files':
kernel/cgroup/cgroup.c:476:44: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:389:48: note: in expansion of macro 'READ_ONCE'
  389 |  typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
      |                                                ^~~~~~~~~
include/linux/rcupdate.h:528:2: note: in expansion of macro '__rcu_dereference_check'
  528 |  __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
      |  ^~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cgroup.c:476:10: note: in expansion of macro 'rcu_dereference_check'
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
      |          ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_e_css':
kernel/cgroup/cgroup.c:476:44: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:389:48: note: in expansion of macro 'READ_ONCE'
  389 |  typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
      |                                                ^~~~~~~~~
include/linux/rcupdate.h:528:2: note: in expansion of macro '__rcu_dereference_check'
  528 |  __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
      |  ^~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cgroup.c:476:10: note: in expansion of macro 'rcu_dereference_check'
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
      |          ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
kernel/cgroup/cgroup.c:561:28: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  561 |  return init_css_set.subsys[ss->id];
      |         ~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:205:30: note: while referencing 'subsys'
  205 |  struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
      |                              ^~~~~~
kernel/cgroup/cgroup.c:744:16: note: defined here 'init_css_set'
  744 | struct css_set init_css_set = {
      |                ^~~~~~~~~~~~
kernel/cgroup/cgroup.c: In function 'cgroup_taskset_next':
kernel/cgroup/cgroup.c:2395:29: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
 2395 |     *dst_cssp = cset->subsys[tset->ssid];
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:205:30: note: while referencing 'subsys'
  205 |  struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
      |                              ^~~~~~
kernel/cgroup/cgroup.c:2393:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
 2393 |     *dst_cssp = cset->mg_dst_cset->subsys[tset->ssid];
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:205:30: note: while referencing 'subsys'
  205 |  struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
      |                              ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_rm_cftypes':
kernel/cgroup/cgroup.c:476:44: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:389:48: note: in expansion of macro 'READ_ONCE'
  389 |  typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
      |                                                ^~~~~~~~~
include/linux/rcupdate.h:528:2: note: in expansion of macro '__rcu_dereference_check'
  528 |  __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
      |  ^~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cgroup.c:476:10: note: in expansion of macro 'rcu_dereference_check'
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
      |          ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c:476:44: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:389:48: note: in expansion of macro 'READ_ONCE'
  389 |  typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
      |                                                ^~~~~~~~~
include/linux/rcupdate.h:528:2: note: in expansion of macro '__rcu_dereference_check'
  528 |  __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
      |  ^~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cgroup.c:476:10: note: in expansion of macro 'rcu_dereference_check'
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
      |          ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
kernel/cgroup/cgroup.c: In function 'css_task_iter_start':
kernel/cgroup/cgroup.c:4647:18: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct list_head[0]' [-Wzero-length-bounds]
 4647 |   it->cset_pos = &css->cgroup->e_csets[css->ss->id];
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:443:19: note: while referencing 'e_csets'
  443 |  struct list_head e_csets[CGROUP_SUBSYS_COUNT];
      |                   ^~~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function '__cgroup_procs_start':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'cgroup_procs_start':
kernel/cgroup/cgroup.c:651:42: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:403:25: note: in expansion of macro 'READ_ONCE'
  403 |  typeof(p) ________p1 = READ_ONCE(p); \
      |                         ^~~~~~~~~
kernel/cgroup/cgroup.c:651:10: note: in expansion of macro 'rcu_dereference_raw'
  651 |   return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
      |          ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~
In file included from ./arch/arm/include/generated/asm/rwonce.h:1,
                 from include/linux/compiler.h:264,
                 from include/uapi/linux/swab.h:6,
                 from include/linux/swab.h:5,
                 from arch/arm/include/asm/opcodes.h:86,
                 from arch/arm/include/asm/bug.h:7,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:13,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/cgroup.h:12,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
kernel/cgroup/cgroup.c: In function 'css_tryget_online_from_dir':
kernel/cgroup/cgroup.c:476:44: warning: array subscript '<unknown>' is outside the bounds of an interior zero-length array 'struct cgroup_subsys_state *[0]' [-Wzero-length-bounds]
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
   44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
      |                                                                        ^
include/linux/rcupdate.h:389:48: note: in expansion of macro 'READ_ONCE'
  389 |  typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
      |                                                ^~~~~~~~~
include/linux/rcupdate.h:528:2: note: in expansion of macro '__rcu_dereference_check'
  528 |  __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
      |  ^~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cgroup.c:476:10: note: in expansion of macro 'rcu_dereference_check'
  476 |   return rcu_dereference_check(cgrp->subsys[ss->id],
      |          ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/cgroup.h:28,
                 from kernel/cgroup/cgroup-internal.h:5,
                 from kernel/cgroup/cgroup.c:31:
include/linux/cgroup-defs.h:426:36: note: while referencing 'subsys'
  426 |  struct cgroup_subsys_state __rcu *subsys[CGROUP_SUBSYS_COUNT];
      |                                    ^~~~~~

Introduced by commit

  7d8aac16a0a8 ("Makefile: Enable -Wzero-length-bounds")

-- 
Cheers,
Stephen Rothwell

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ