tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 7a769a3922d81cfc74ab4d90a9cc69485f260976 commit: ab434f1b66e63e7946bf42b70306f7efd90fba9a [10467/10864] IDT: Fix Build warnings on some 32bit architectures. config: s390-buildonly-randconfig-r001-20220105 (https://download.01.org/0day-ci/archive/20220105/202201052106.oAp1xqJt-lkp@xxxxxxxxx/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install s390 cross compiling tool for clang build # apt-get install binutils-s390x-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=ab434f1b66e63e7946bf42b70306f7efd90fba9a git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout ab434f1b66e63e7946bf42b70306f7efd90fba9a # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash drivers/ntb/hw/idt/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): In file included from drivers/ntb/hw/idt/ntb_hw_idt.c:53: In file included from include/linux/pci.h:39: In file included from include/linux/io.h:13: In file included from arch/s390/include/asm/io.h:75: include/asm-generic/io.h:464:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] val = __raw_readb(PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:477:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr)); ~~~~~~~~~~ ^ include/uapi/linux/byteorder/big_endian.h:36:59: note: expanded from macro '__le16_to_cpu' #define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x)) ^ include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16' #define __swab16(x) (__u16)__builtin_bswap16((__u16)(x)) ^ In file included from drivers/ntb/hw/idt/ntb_hw_idt.c:53: In file included from include/linux/pci.h:39: In file included from include/linux/io.h:13: In file included from arch/s390/include/asm/io.h:75: include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr)); ~~~~~~~~~~ ^ include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu' #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x)) ^ include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32' #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x)) ^ In file included from drivers/ntb/hw/idt/ntb_hw_idt.c:53: In file included from include/linux/pci.h:39: In file included from include/linux/io.h:13: In file included from arch/s390/include/asm/io.h:75: include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] __raw_writeb(value, PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:609:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] readsb(PCI_IOBASE + addr, buffer, count); ~~~~~~~~~~ ^ include/asm-generic/io.h:617:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] readsw(PCI_IOBASE + addr, buffer, count); ~~~~~~~~~~ ^ include/asm-generic/io.h:625:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] readsl(PCI_IOBASE + addr, buffer, count); ~~~~~~~~~~ ^ include/asm-generic/io.h:634:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] writesb(PCI_IOBASE + addr, buffer, count); ~~~~~~~~~~ ^ include/asm-generic/io.h:643:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] writesw(PCI_IOBASE + addr, buffer, count); ~~~~~~~~~~ ^ include/asm-generic/io.h:652:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] writesl(PCI_IOBASE + addr, buffer, count); ~~~~~~~~~~ ^ drivers/ntb/hw/idt/ntb_hw_idt.c:2409:28: warning: format specifies type 'unsigned char' but the argument has type 'int' [-Wformat] "\t%hhu-%hhu.\t", idx, idx + cnt - 1); ~~~~ ^~~~~~~~~~~~~ %d drivers/ntb/hw/idt/ntb_hw_idt.c:2438:29: warning: format specifies type 'unsigned char' but the argument has type 'int' [-Wformat] "\t%hhu-%hhu.\t", idx, idx + cnt - 1); ~~~~ ^~~~~~~~~~~~~ %d drivers/ntb/hw/idt/ntb_hw_idt.c:2484:15: warning: format specifies type 'unsigned char' but the argument has type 'int' [-Wformat] idx, data, src, ndev->peers[src].port); ^~~ >> drivers/ntb/hw/idt/ntb_hw_idt.c:2735:12: warning: stack frame size (1320) exceeds limit (1280) in 'idt_pci_probe' [-Wframe-larger-than] static int idt_pci_probe(struct pci_dev *pdev, ^ 16 warnings generated. vim +/idt_pci_probe +2735 drivers/ntb/hw/idt/ntb_hw_idt.c bf2a952d31d2cd Serge Semin 2017-04-12 2722 bf2a952d31d2cd Serge Semin 2017-04-12 2723 /*=========================================================================== bf2a952d31d2cd Serge Semin 2017-04-12 2724 * 12. PCI bus callback functions bf2a952d31d2cd Serge Semin 2017-04-12 2725 *=========================================================================== bf2a952d31d2cd Serge Semin 2017-04-12 2726 */ bf2a952d31d2cd Serge Semin 2017-04-12 2727 bf2a952d31d2cd Serge Semin 2017-04-12 2728 /* bf2a952d31d2cd Serge Semin 2017-04-12 2729 * idt_pci_probe() - PCI device probe callback bf2a952d31d2cd Serge Semin 2017-04-12 2730 * @pdev: Pointer to PCI device structure bf2a952d31d2cd Serge Semin 2017-04-12 2731 * @id: PCIe device custom descriptor bf2a952d31d2cd Serge Semin 2017-04-12 2732 * bf2a952d31d2cd Serge Semin 2017-04-12 2733 * Return: zero on success, otherwise negative error number bf2a952d31d2cd Serge Semin 2017-04-12 2734 */ bf2a952d31d2cd Serge Semin 2017-04-12 @2735 static int idt_pci_probe(struct pci_dev *pdev, bf2a952d31d2cd Serge Semin 2017-04-12 2736 const struct pci_device_id *id) bf2a952d31d2cd Serge Semin 2017-04-12 2737 { bf2a952d31d2cd Serge Semin 2017-04-12 2738 struct idt_ntb_dev *ndev; bf2a952d31d2cd Serge Semin 2017-04-12 2739 int ret; bf2a952d31d2cd Serge Semin 2017-04-12 2740 bf2a952d31d2cd Serge Semin 2017-04-12 2741 /* Check whether IDT PCIe-switch is properly pre-initialized */ bf2a952d31d2cd Serge Semin 2017-04-12 2742 ret = idt_check_setup(pdev); bf2a952d31d2cd Serge Semin 2017-04-12 2743 if (ret != 0) bf2a952d31d2cd Serge Semin 2017-04-12 2744 return ret; bf2a952d31d2cd Serge Semin 2017-04-12 2745 bf2a952d31d2cd Serge Semin 2017-04-12 2746 /* Allocate the memory for IDT NTB device data */ bf2a952d31d2cd Serge Semin 2017-04-12 2747 ndev = idt_create_dev(pdev, id); 91b8246de8590b Wang Qing 2020-11-06 2748 if (IS_ERR(ndev)) bf2a952d31d2cd Serge Semin 2017-04-12 2749 return PTR_ERR(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2750 bf2a952d31d2cd Serge Semin 2017-04-12 2751 /* Initialize the basic PCI subsystem of the device */ bf2a952d31d2cd Serge Semin 2017-04-12 2752 ret = idt_init_pci(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2753 if (ret != 0) bf2a952d31d2cd Serge Semin 2017-04-12 2754 return ret; bf2a952d31d2cd Serge Semin 2017-04-12 2755 bf2a952d31d2cd Serge Semin 2017-04-12 2756 /* Scan ports of the IDT PCIe-switch */ bf2a952d31d2cd Serge Semin 2017-04-12 2757 (void)idt_scan_ports(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2758 bf2a952d31d2cd Serge Semin 2017-04-12 2759 /* Initialize NTB link events subsystem */ bf2a952d31d2cd Serge Semin 2017-04-12 2760 idt_init_link(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2761 bf2a952d31d2cd Serge Semin 2017-04-12 2762 /* Initialize MWs subsystem */ bf2a952d31d2cd Serge Semin 2017-04-12 2763 ret = idt_init_mws(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2764 if (ret != 0) bf2a952d31d2cd Serge Semin 2017-04-12 2765 goto err_deinit_link; bf2a952d31d2cd Serge Semin 2017-04-12 2766 bf2a952d31d2cd Serge Semin 2017-04-12 2767 /* Initialize Messaging subsystem */ bf2a952d31d2cd Serge Semin 2017-04-12 2768 idt_init_msg(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2769 aed1b7b31154bd Serge Semin 2018-07-17 2770 /* Initialize hwmon interface */ aed1b7b31154bd Serge Semin 2018-07-17 2771 idt_init_temp(ndev); aed1b7b31154bd Serge Semin 2018-07-17 2772 bf2a952d31d2cd Serge Semin 2017-04-12 2773 /* Initialize IDT interrupts handler */ bf2a952d31d2cd Serge Semin 2017-04-12 2774 ret = idt_init_isr(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2775 if (ret != 0) bf2a952d31d2cd Serge Semin 2017-04-12 2776 goto err_deinit_link; bf2a952d31d2cd Serge Semin 2017-04-12 2777 bf2a952d31d2cd Serge Semin 2017-04-12 2778 /* Register IDT NTB devices on the NTB bus */ bf2a952d31d2cd Serge Semin 2017-04-12 2779 ret = idt_register_device(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2780 if (ret != 0) bf2a952d31d2cd Serge Semin 2017-04-12 2781 goto err_deinit_isr; bf2a952d31d2cd Serge Semin 2017-04-12 2782 bf2a952d31d2cd Serge Semin 2017-04-12 2783 /* Initialize DebugFS info node */ bf2a952d31d2cd Serge Semin 2017-04-12 2784 (void)idt_init_dbgfs(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2785 bf2a952d31d2cd Serge Semin 2017-04-12 2786 /* IDT PCIe-switch NTB driver is finally initialized */ bf2a952d31d2cd Serge Semin 2017-04-12 2787 dev_info(&pdev->dev, "IDT NTB device is ready"); bf2a952d31d2cd Serge Semin 2017-04-12 2788 bf2a952d31d2cd Serge Semin 2017-04-12 2789 /* May the force be with us... */ bf2a952d31d2cd Serge Semin 2017-04-12 2790 return 0; bf2a952d31d2cd Serge Semin 2017-04-12 2791 bf2a952d31d2cd Serge Semin 2017-04-12 2792 err_deinit_isr: bf2a952d31d2cd Serge Semin 2017-04-12 2793 idt_deinit_isr(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2794 err_deinit_link: bf2a952d31d2cd Serge Semin 2017-04-12 2795 idt_deinit_link(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2796 idt_deinit_pci(ndev); bf2a952d31d2cd Serge Semin 2017-04-12 2797 bf2a952d31d2cd Serge Semin 2017-04-12 2798 return ret; bf2a952d31d2cd Serge Semin 2017-04-12 2799 } bf2a952d31d2cd Serge Semin 2017-04-12 2800 :::::: The code at line 2735 was first introduced by commit :::::: bf2a952d31d2cd28bb3454f15645a76fda70addd NTB: Add IDT 89HPESxNTx PCIe-switches support :::::: TO: Serge Semin <fancer.lancer@xxxxxxxxx> :::::: CC: Jon Mason <jdmason@xxxxxxxx> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx