Message ID | 20240711-macronix-mx25l3205d-fixups-v3-14-99353461dd2d@geanix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mtd: spi-nor: macronix: workaround for device id re-use | expand |
Hi Esben, kernel test robot noticed the following build errors: [auto build test ERROR on a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6] url: https://github.com/intel-lab-lkp/linux/commits/Esben-Haabendal/mtd-spi-nor-core-add-flag-for-doing-optional-SFDP-parsing/20240711-224454 base: a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6 patch link: https://lore.kernel.org/r/20240711-macronix-mx25l3205d-fixups-v3-14-99353461dd2d%40geanix.com patch subject: [PATCH v3 14/15] mtd: spi-nor: Drop deprecated mechanism for optional SFDP parsing config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20240712/202407121629.O2ykn94e-lkp@intel.com/config) compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project a0c6b8aef853eedaa0980f07c0a502a5a8a9740e) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240712/202407121629.O2ykn94e-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/202407121629.O2ykn94e-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from drivers/mtd/spi-nor/core.c:13: 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:173: 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:2210: include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 509 | item]; | ~~~~ include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 516 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 528 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 537 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/mtd/spi-nor/core.c:17: In file included from include/linux/mtd/spi-nor.h:11: In file included from include/linux/spi/spi-mem.h:14: In file included from include/linux/spi/spi.h:17: In file included from include/linux/scatterlist.h:9: In file included from arch/s390/include/asm/io.h:78: include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 547 | val = __raw_readb(PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 560 | 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/mtd/spi-nor/core.c:17: In file included from include/linux/mtd/spi-nor.h:11: In file included from include/linux/spi/spi-mem.h:14: In file included from include/linux/spi/spi.h:17: In file included from include/linux/scatterlist.h:9: In file included from arch/s390/include/asm/io.h:78: include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 573 | 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/mtd/spi-nor/core.c:17: In file included from include/linux/mtd/spi-nor.h:11: In file included from include/linux/spi/spi-mem.h:14: In file included from include/linux/spi/spi.h:17: In file included from include/linux/scatterlist.h:9: In file included from arch/s390/include/asm/io.h:78: include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 584 | __raw_writeb(value, PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 594 | __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 604 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 692 | readsb(PCI_IOBASE + addr, buffer, count); | ~~~~~~~~~~ ^ include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 700 | readsw(PCI_IOBASE + addr, buffer, count); | ~~~~~~~~~~ ^ include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 708 | readsl(PCI_IOBASE + addr, buffer, count); | ~~~~~~~~~~ ^ include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 717 | writesb(PCI_IOBASE + addr, buffer, count); | ~~~~~~~~~~ ^ include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 726 | writesw(PCI_IOBASE + addr, buffer, count); | ~~~~~~~~~~ ^ include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 735 | writesl(PCI_IOBASE + addr, buffer, count); | ~~~~~~~~~~ ^ In file included from drivers/mtd/spi-nor/core.c:25: >> drivers/mtd/spi-nor/core.h:722:54: error: expected ';' after return statement 722 | return (nor->info->no_sfdp_flags & SPI_NOR_TRY_SFDP) | ^ | ; 17 warnings and 1 error generated. vim +722 drivers/mtd/spi-nor/core.h 712 713 /** 714 * spi_nor_try_sfdp() - returns true if optional SFDP parsing should be tried 715 * for this flash, with fallback to static parameters and settings based on 716 * flash ID if SFDP parsing fails. 717 * 718 * Return: true if optional SFDP parsing should be tried 719 */ 720 static inline bool spi_nor_try_sfdp(const struct spi_nor *nor) 721 { > 722 return (nor->info->no_sfdp_flags & SPI_NOR_TRY_SFDP) 723 } 724
Esben Haabendal <esben@geanix.com> writes: > With all drivers converted to the new SPI_NOR_TRY_SFDP flag, we can remove > the old deprecated mechanism for triggering optional SFDP parsing. > > New flashes must use SPI_NOR_TRY_SFDP to get this behavior. Hopefully, all > new drivers will be fore pure SFDP flashes, so no or at least very few new > users of this flag is expected. > > Signed-off-by: Esben Haabendal <esben@geanix.com> > --- > drivers/mtd/spi-nor/core.h | 19 +------------------ > 1 file changed, 1 insertion(+), 18 deletions(-) > > diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h > index dfc81716e068..f4a76f42051a 100644 > --- a/drivers/mtd/spi-nor/core.h > +++ b/drivers/mtd/spi-nor/core.h > @@ -719,24 +719,7 @@ static inline bool spi_nor_needs_sfdp(const struct spi_nor *nor) > */ > static inline bool spi_nor_try_sfdp(const struct spi_nor *nor) > { > - if (nor->info->no_sfdp_flags & SPI_NOR_SKIP_SFDP) > - return false; > - if (nor->info->no_sfdp_flags & SPI_NOR_TRY_SFDP) > - return true; > - > - /* Deprecated/legacy way for triggering optional SFDP parsing. > - * If one of the no_sfdp_flags indicating dual, quad or octal read is > - * set, SFDP parsing will be tried. > - * When all drivers have been converted to set SPI_NOR_TRY_SFDP where > - * needed, this deprecated mechanism can be removed. > - */ > - if (nor->info->no_sfdp_flags & (SPI_NOR_DUAL_READ | > - SPI_NOR_QUAD_READ | > - SPI_NOR_OCTAL_READ | > - SPI_NOR_OCTAL_DTR_READ)) > - return true; > - > - return false; > + return (nor->info->no_sfdp_flags & SPI_NOR_TRY_SFDP) Sorry. Bad cherry-pick here. Due to other reasons, I am testing out of tree :( The missing semicolon will be added in v4. I assume we can still discuss the idea here in this version. /Esben
Hi Esben, kernel test robot noticed the following build errors: [auto build test ERROR on a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6] url: https://github.com/intel-lab-lkp/linux/commits/Esben-Haabendal/mtd-spi-nor-core-add-flag-for-doing-optional-SFDP-parsing/20240711-224454 base: a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6 patch link: https://lore.kernel.org/r/20240711-macronix-mx25l3205d-fixups-v3-14-99353461dd2d%40geanix.com patch subject: [PATCH v3 14/15] mtd: spi-nor: Drop deprecated mechanism for optional SFDP parsing config: arm-randconfig-003-20240712 (https://download.01.org/0day-ci/archive/20240712/202407122344.BP3r1VyN-lkp@intel.com/config) compiler: arm-linux-gnueabi-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240712/202407122344.BP3r1VyN-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/202407122344.BP3r1VyN-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from drivers/mtd/spi-nor/atmel.c:9: drivers/mtd/spi-nor/core.h: In function 'spi_nor_try_sfdp': >> drivers/mtd/spi-nor/core.h:722:61: error: expected ';' before '}' token 722 | return (nor->info->no_sfdp_flags & SPI_NOR_TRY_SFDP) | ^ | ; 723 | } | ~ vim +722 drivers/mtd/spi-nor/core.h 712 713 /** 714 * spi_nor_try_sfdp() - returns true if optional SFDP parsing should be tried 715 * for this flash, with fallback to static parameters and settings based on 716 * flash ID if SFDP parsing fails. 717 * 718 * Return: true if optional SFDP parsing should be tried 719 */ 720 static inline bool spi_nor_try_sfdp(const struct spi_nor *nor) 721 { > 722 return (nor->info->no_sfdp_flags & SPI_NOR_TRY_SFDP) 723 } 724
diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h index dfc81716e068..f4a76f42051a 100644 --- a/drivers/mtd/spi-nor/core.h +++ b/drivers/mtd/spi-nor/core.h @@ -719,24 +719,7 @@ static inline bool spi_nor_needs_sfdp(const struct spi_nor *nor) */ static inline bool spi_nor_try_sfdp(const struct spi_nor *nor) { - if (nor->info->no_sfdp_flags & SPI_NOR_SKIP_SFDP) - return false; - if (nor->info->no_sfdp_flags & SPI_NOR_TRY_SFDP) - return true; - - /* Deprecated/legacy way for triggering optional SFDP parsing. - * If one of the no_sfdp_flags indicating dual, quad or octal read is - * set, SFDP parsing will be tried. - * When all drivers have been converted to set SPI_NOR_TRY_SFDP where - * needed, this deprecated mechanism can be removed. - */ - if (nor->info->no_sfdp_flags & (SPI_NOR_DUAL_READ | - SPI_NOR_QUAD_READ | - SPI_NOR_OCTAL_READ | - SPI_NOR_OCTAL_DTR_READ)) - return true; - - return false; + return (nor->info->no_sfdp_flags & SPI_NOR_TRY_SFDP) } #ifdef CONFIG_DEBUG_FS
With all drivers converted to the new SPI_NOR_TRY_SFDP flag, we can remove the old deprecated mechanism for triggering optional SFDP parsing. New flashes must use SPI_NOR_TRY_SFDP to get this behavior. Hopefully, all new drivers will be fore pure SFDP flashes, so no or at least very few new users of this flag is expected. Signed-off-by: Esben Haabendal <esben@geanix.com> --- drivers/mtd/spi-nor/core.h | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-)