All of lore.kernel.org
 help / color / mirror / Atom feed
* [weiny2:dcd-v4-2024-10-29 9/28] drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred'
@ 2024-10-30 12:15 kernel test robot
  2024-10-30 14:50 ` Ira Weiny
  0 siblings, 1 reply; 4+ messages in thread
From: kernel test robot @ 2024-10-30 12:15 UTC (permalink / raw)
  To: Navneet Singh; +Cc: llvm, oe-kbuild-all, Ira Weiny, Jonathan Cameron

tree:   https://github.com/weiny2/linux-kernel.git dcd-v4-2024-10-29
head:   7a8bd033c7fe319f08d5f075c1fc37acbfedf79e
commit: 58493e004c58388f618fa6b193eb9f1acdf24009 [9/28] cxl/mem: Read dynamic capacity configuration from the device
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20241030/202410302001.MMV7mxpl-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 639a7ac648f1e50ccd2556e17d401c04f9cce625)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241030/202410302001.MMV7mxpl-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410302001.MMV7mxpl-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from drivers/cxl/pci.c:4:
   In file included from include/linux/io-64-nonatomic-lo-hi.h:5:
   In file included from include/linux/io.h:14:
   In file included from arch/s390/include/asm/io.h:95:
   include/asm-generic/io.h:548:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     548 |         val = __raw_readb(PCI_IOBASE + addr);
         |                           ~~~~~~~~~~ ^
   include/asm-generic/io.h:561:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     561 |         val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/big_endian.h:37:59: note: expanded from macro '__le16_to_cpu'
      37 | #define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
         |                                                           ^
   include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16'
     102 | #define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
         |                                                      ^
   In file included from drivers/cxl/pci.c:4:
   In file included from include/linux/io-64-nonatomic-lo-hi.h:5:
   In file included from include/linux/io.h:14:
   In file included from arch/s390/include/asm/io.h:95:
   include/asm-generic/io.h:574:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     574 |         val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/big_endian.h:35:59: note: expanded from macro '__le32_to_cpu'
      35 | #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
         |                                                           ^
   include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32'
     115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
         |                                                      ^
   In file included from drivers/cxl/pci.c:4:
   In file included from include/linux/io-64-nonatomic-lo-hi.h:5:
   In file included from include/linux/io.h:14:
   In file included from arch/s390/include/asm/io.h:95:
   include/asm-generic/io.h:585:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     585 |         __raw_writeb(value, PCI_IOBASE + addr);
         |                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:595:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     595 |         __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:605:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     605 |         __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:693:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     693 |         readsb(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:701:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     701 |         readsw(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:709:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     709 |         readsl(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:718:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     718 |         writesb(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:727:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     727 |         writesw(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:736:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     736 |         writesl(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   In file included from drivers/cxl/pci.c:6:
   In file included from include/linux/module.h:19:
   In file included from include/linux/elf.h:6:
   In file included from arch/s390/include/asm/elf.h:181:
   In file included from arch/s390/include/asm/mmu_context.h:11:
   In file included from arch/s390/include/asm/pgalloc.h:18:
   In file included from include/linux/mm.h:2213:
   include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     504 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     505 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     511 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     512 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     524 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     525 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/cxl/pci.c:15:
>> drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred'
     755 |         } __packed region[] __counted_by(regions_retunred);
         |                                          ^
   16 warnings and 1 error generated.
--
   In file included from drivers/cxl/mem.c:4:
   In file included from include/linux/device.h:32:
   In file included from include/linux/device/driver.h:21:
   In file included from include/linux/module.h:19:
   In file included from include/linux/elf.h:6:
   In file included from arch/s390/include/asm/elf.h:181:
   In file included from arch/s390/include/asm/mmu_context.h:11:
   In file included from arch/s390/include/asm/pgalloc.h:18:
   In file included from include/linux/mm.h:2213:
   include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     504 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     505 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     511 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     512 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     524 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     525 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/cxl/mem.c:6:
   In file included from include/linux/pci.h:39:
   In file included from include/linux/io.h:14:
   In file included from arch/s390/include/asm/io.h:95:
   include/asm-generic/io.h:548:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     548 |         val = __raw_readb(PCI_IOBASE + addr);
         |                           ~~~~~~~~~~ ^
   include/asm-generic/io.h:561:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     561 |         val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/big_endian.h:37:59: note: expanded from macro '__le16_to_cpu'
      37 | #define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
         |                                                           ^
   include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16'
     102 | #define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
         |                                                      ^
   In file included from drivers/cxl/mem.c:6:
   In file included from include/linux/pci.h:39:
   In file included from include/linux/io.h:14:
   In file included from arch/s390/include/asm/io.h:95:
   include/asm-generic/io.h:574:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     574 |         val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/big_endian.h:35:59: note: expanded from macro '__le32_to_cpu'
      35 | #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
         |                                                           ^
   include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32'
     115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
         |                                                      ^
   In file included from drivers/cxl/mem.c:6:
   In file included from include/linux/pci.h:39:
   In file included from include/linux/io.h:14:
   In file included from arch/s390/include/asm/io.h:95:
   include/asm-generic/io.h:585:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     585 |         __raw_writeb(value, PCI_IOBASE + addr);
         |                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:595:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     595 |         __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:605:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     605 |         __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:693:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     693 |         readsb(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:701:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     701 |         readsw(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:709:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     709 |         readsl(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:718:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     718 |         writesb(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:727:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     727 |         writesw(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:736:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     736 |         writesl(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   In file included from drivers/cxl/mem.c:8:
>> drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred'
     755 |         } __packed region[] __counted_by(regions_retunred);
         |                                          ^
   16 warnings and 1 error generated.


vim +/regions_retunred +755 drivers/cxl/cxlmem.h

   740	
   741	/* See CXL 3.1 Table 8-164 get dynamic capacity config Output Payload */
   742	struct cxl_mbox_get_dc_config_out {
   743		u8 avail_region_count;
   744		u8 regions_returned;
   745		u8 rsvd[6];
   746		/* See CXL 3.1 Table 8-165 */
   747		struct cxl_dc_region_config {
   748			__le64 region_base;
   749			__le64 region_decode_length;
   750			__le64 region_length;
   751			__le64 region_block_size;
   752			__le32 region_dsmad_handle;
   753			u8 flags;
   754			u8 rsvd[3];
 > 755		} __packed region[] __counted_by(regions_retunred);
   756		/* Trailing fields unused */
   757	} __packed;
   758	#define CXL_DYNAMIC_CAPACITY_SANITIZE_ON_RELEASE_FLAG BIT(0)
   759	#define CXL_DCD_BLOCK_LINE_SIZE 0x40
   760	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [weiny2:dcd-v4-2024-10-29 9/28] drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred'
  2024-10-30 12:15 [weiny2:dcd-v4-2024-10-29 9/28] drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred' kernel test robot
@ 2024-10-30 14:50 ` Ira Weiny
  2024-10-30 16:25   ` Nathan Chancellor
  0 siblings, 1 reply; 4+ messages in thread
From: Ira Weiny @ 2024-10-30 14:50 UTC (permalink / raw)
  To: Jiang, Dave
  Cc: llvm, oe-kbuild-all, Ira Weiny, Navneet Singh, Jonathan Cameron

[snip]

> >> drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred'
>      755 |         } __packed region[] __counted_by(regions_retunred);
>          |                                          ^
>    16 warnings and 1 error generated.
> 
> 
> vim +/regions_retunred +755 drivers/cxl/cxlmem.h
> 
>    740	
>    741	/* See CXL 3.1 Table 8-164 get dynamic capacity config Output Payload */
>    742	struct cxl_mbox_get_dc_config_out {
>    743		u8 avail_region_count;
>    744		u8 regions_returned;
>    745		u8 rsvd[6];
>    746		/* See CXL 3.1 Table 8-165 */
>    747		struct cxl_dc_region_config {
>    748			__le64 region_base;
>    749			__le64 region_decode_length;
>    750			__le64 region_length;
>    751			__le64 region_block_size;
>    752			__le32 region_dsmad_handle;
>    753			u8 flags;
>    754			u8 rsvd[3];
>  > 755		} __packed region[] __counted_by(regions_retunred);

I'm not sure why my config/compiler did not catch this typo.  I'm looking
into it.

Ira

[snip]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [weiny2:dcd-v4-2024-10-29 9/28] drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred'
  2024-10-30 14:50 ` Ira Weiny
@ 2024-10-30 16:25   ` Nathan Chancellor
  2024-10-30 18:56     ` Ira Weiny
  0 siblings, 1 reply; 4+ messages in thread
From: Nathan Chancellor @ 2024-10-30 16:25 UTC (permalink / raw)
  To: Ira Weiny
  Cc: Jiang, Dave, llvm, oe-kbuild-all, Navneet Singh, Jonathan Cameron,
	kees, linux-hardening

On Wed, Oct 30, 2024 at 09:50:42AM -0500, Ira Weiny wrote:
> [snip]
> 
> > >> drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred'
> >      755 |         } __packed region[] __counted_by(regions_retunred);
> >          |                                          ^
> >    16 warnings and 1 error generated.
> > 
> > 
> > vim +/regions_retunred +755 drivers/cxl/cxlmem.h
> > 
> >    740	
> >    741	/* See CXL 3.1 Table 8-164 get dynamic capacity config Output Payload */
> >    742	struct cxl_mbox_get_dc_config_out {
> >    743		u8 avail_region_count;
> >    744		u8 regions_returned;
> >    745		u8 rsvd[6];
> >    746		/* See CXL 3.1 Table 8-165 */
> >    747		struct cxl_dc_region_config {
> >    748			__le64 region_base;
> >    749			__le64 region_decode_length;
> >    750			__le64 region_length;
> >    751			__le64 region_block_size;
> >    752			__le32 region_dsmad_handle;
> >    753			u8 flags;
> >    754			u8 rsvd[3];
> >  > 755		} __packed region[] __counted_by(regions_retunred);
> 
> I'm not sure why my config/compiler did not catch this typo.  I'm looking
> into it.

You are likely not using a compiler that supports __counted_by, which is
currently clang 18 (although soon to be 19.1.3 [1]) and GCC 15 (tip of
tree), in which case, the macro just evaluates to nothing, so there is
no validation of the value to the macro. It would be nice if there could
be but nothing immediately comes to mind because of where this macro is
being placed.

[1]: https://lore.kernel.org/20241029140036.577804-2-kernel@jfarr.cc/

Cheers,
Nathan

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [weiny2:dcd-v4-2024-10-29 9/28] drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred'
  2024-10-30 16:25   ` Nathan Chancellor
@ 2024-10-30 18:56     ` Ira Weiny
  0 siblings, 0 replies; 4+ messages in thread
From: Ira Weiny @ 2024-10-30 18:56 UTC (permalink / raw)
  To: Nathan Chancellor, Ira Weiny
  Cc: Jiang, Dave, llvm, oe-kbuild-all, Navneet Singh, Jonathan Cameron,
	kees, linux-hardening

Nathan Chancellor wrote:
> On Wed, Oct 30, 2024 at 09:50:42AM -0500, Ira Weiny wrote:
> > [snip]
> > 
> > > >> drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred'
> > >      755 |         } __packed region[] __counted_by(regions_retunred);
> > >          |                                          ^
> > >    16 warnings and 1 error generated.
> > > 
> > > 
> > > vim +/regions_retunred +755 drivers/cxl/cxlmem.h
> > > 
> > >    740	
> > >    741	/* See CXL 3.1 Table 8-164 get dynamic capacity config Output Payload */
> > >    742	struct cxl_mbox_get_dc_config_out {
> > >    743		u8 avail_region_count;
> > >    744		u8 regions_returned;
> > >    745		u8 rsvd[6];
> > >    746		/* See CXL 3.1 Table 8-165 */
> > >    747		struct cxl_dc_region_config {
> > >    748			__le64 region_base;
> > >    749			__le64 region_decode_length;
> > >    750			__le64 region_length;
> > >    751			__le64 region_block_size;
> > >    752			__le32 region_dsmad_handle;
> > >    753			u8 flags;
> > >    754			u8 rsvd[3];
> > >  > 755		} __packed region[] __counted_by(regions_retunred);
> > 
> > I'm not sure why my config/compiler did not catch this typo.  I'm looking
> > into it.
> 
> You are likely not using a compiler that supports __counted_by, which is
> currently clang 18 (although soon to be 19.1.3 [1]) and GCC 15 (tip of
> tree), in which case, the macro just evaluates to nothing, so there is
> no validation of the value to the macro. It would be nice if there could
> be but nothing immediately comes to mind because of where this macro is
> being placed.

Yes Thanks!  That was it.  I did not realize counted_by was that new.[2]

Ira

[2] https://lore.kernel.org/all/67225eb59d0ac_483142946d@iweiny-mobl.notmuch/

> 
> [1]: https://lore.kernel.org/20241029140036.577804-2-kernel@jfarr.cc/
> 
> Cheers,
> Nathan



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-10-30 18:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-30 12:15 [weiny2:dcd-v4-2024-10-29 9/28] drivers/cxl/cxlmem.h:755:35: error: use of undeclared identifier 'regions_retunred' kernel test robot
2024-10-30 14:50 ` Ira Weiny
2024-10-30 16:25   ` Nathan Chancellor
2024-10-30 18:56     ` Ira Weiny

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.