From: Joe Perches <joe@perches.com> Date: 2016-07-14 15:46:02
Make the compiler detect format and argument mismatches.
Signed-off-by: Joe Perches <joe@perches.com>
---
arch/powerpc/platforms/powernv/pci.h | 1 +
1 file changed, 1 insertion(+)
From: Michael Ellerman <mpe@ellerman.id.au> Date: 2016-07-15 04:36:18
Joe Perches [off-list ref] writes:
quoted hunk
Make the compiler detect format and argument mismatches.
Signed-off-by: Joe Perches <joe@perches.com>
---
arch/powerpc/platforms/powernv/pci.h | 1 +
1 file changed, 1 insertion(+)
extern int pnv_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type);
extern void pnv_teardown_msi_irqs(struct pci_dev *pdev);
=20=20
+__printf(3, 4)
extern void pe_level_printk(const struct pnv_ioda_pe *pe, const char *le=
vel,
const char *fmt, ...);
Thanks, but it breaks the build due to lots of new warnings.
We'll have to fix those before merging it.
cheers
In file included from ../arch/powerpc/platforms/powernv/pci-ioda.c:49:0:
../arch/powerpc/platforms/powernv/pci-ioda.c: In function =E2=80=98pnv_ioda=
_deconfigure_pe=E2=80=99:
../arch/powerpc/platforms/powernv/pci-ioda.c:784:15: error: format =E2=80=
=98%ld=E2=80=99 expects argument of type =E2=80=98long int=E2=80=99, but ar=
gument 4 has type =E2=80=98int64_t {aka long long int}=E2=80=99 [-Werror=3D=
format=3D]
pe_warn(pe, "OPAL error %ld remove self from PELTV\n", rc);
^
../arch/powerpc/platforms/powernv/pci.h:233:36: note: in definition of macr=
o =E2=80=98pe_warn=E2=80=99
pe_level_printk(pe, KERN_WARNING, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c:788:14: error: format =E2=80=
=98%ld=E2=80=99 expects argument of type =E2=80=98long int=E2=80=99, but ar=
gument 4 has type =E2=80=98int64_t {aka long long int}=E2=80=99 [-Werror=3D=
format=3D]
pe_err(pe, "OPAL error %ld trying to setup PELT table\n", rc);
^
../arch/powerpc/platforms/powernv/pci.h:231:32: note: in definition of macr=
o =E2=80=98pe_err=E2=80=99
pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c: In function =E2=80=98pnv_ioda=
_setup_bus_PE=E2=80=99:
../arch/powerpc/platforms/powernv/pci-ioda.c:1095:15: error: format =E2=80=
=98%d=E2=80=99 expects argument of type =E2=80=98int=E2=80=99, but argument=
4 has type =E2=80=98resource_size_t {aka long long unsigned int}=E2=80=99 =
[-Werror=3Dformat=3D]
pe_info(pe, "Secondary bus %d..%d associated with PE#%d\n",
^
../arch/powerpc/platforms/powernv/pci.h:235:33: note: in definition of macr=
o =E2=80=98pe_info=E2=80=99
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c:1095:15: error: format =E2=80=
=98%d=E2=80=99 expects argument of type =E2=80=98int=E2=80=99, but argument=
5 has type =E2=80=98resource_size_t {aka long long unsigned int}=E2=80=99 =
[-Werror=3Dformat=3D]
pe_info(pe, "Secondary bus %d..%d associated with PE#%d\n",
^
../arch/powerpc/platforms/powernv/pci.h:235:33: note: in definition of macr=
o =E2=80=98pe_info=E2=80=99
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c:1098:15: error: format =E2=80=
=98%d=E2=80=99 expects argument of type =E2=80=98int=E2=80=99, but argument=
4 has type =E2=80=98resource_size_t {aka long long unsigned int}=E2=80=99 =
[-Werror=3Dformat=3D]
pe_info(pe, "Secondary bus %d associated with PE#%d\n",
^
../arch/powerpc/platforms/powernv/pci.h:235:33: note: in definition of macr=
o =E2=80=98pe_info=E2=80=99
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c: In function =E2=80=98pnv_pci_=
ioda2_release_dma_pe=E2=80=99:
../arch/powerpc/platforms/powernv/pci-ioda.c:1351:15: error: format =E2=80=
=98%ld=E2=80=99 expects argument of type =E2=80=98long int=E2=80=99, but ar=
gument 4 has type =E2=80=98int64_t {aka long long int}=E2=80=99 [-Werror=3D=
format=3D]
pe_warn(pe, "OPAL error %ld release DMA window\n", rc);
^
../arch/powerpc/platforms/powernv/pci.h:233:36: note: in definition of macr=
o =E2=80=98pe_warn=E2=80=99
pe_level_printk(pe, KERN_WARNING, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c: In function =E2=80=98pnv_pci_=
ioda1_setup_dma_pe=E2=80=99:
../arch/powerpc/platforms/powernv/pci-ioda.c:2093:15: error: format =E2=80=
=98%ld=E2=80=99 expects argument of type =E2=80=98long int=E2=80=99, but ar=
gument 4 has type =E2=80=98int64_t {aka long long int}=E2=80=99 [-Werror=3D=
format=3D]
pe_err(pe, " Failed to configure 32-bit TCE table,"
^
../arch/powerpc/platforms/powernv/pci.h:231:32: note: in definition of macr=
o =E2=80=98pe_err=E2=80=99
pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c: In function =E2=80=98pnv_pci_=
ioda2_set_window=E2=80=99:
../arch/powerpc/platforms/powernv/pci-ioda.c:2153:14: error: format =E2=80=
=98%x=E2=80=99 expects argument of type =E2=80=98unsigned int=E2=80=99, but=
argument 7 has type =E2=80=98long unsigned int=E2=80=99 [-Werror=3Dformat=
=3D]
pe_info(pe, "Setting up window#%d %llx..%llx pg=3D%x\n", num,
^
../arch/powerpc/platforms/powernv/pci.h:235:33: note: in definition of macr=
o =E2=80=98pe_info=E2=80=99
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c:2169:14: error: format =E2=80=
=98%ld=E2=80=99 expects argument of type =E2=80=98long int=E2=80=99, but ar=
gument 4 has type =E2=80=98int64_t {aka long long int}=E2=80=99 [-Werror=3D=
format=3D]
pe_err(pe, "Failed to configure TCE table, err %ld\n", rc);
^
../arch/powerpc/platforms/powernv/pci.h:231:32: note: in definition of macr=
o =E2=80=98pe_err=E2=80=99
pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c: In function =E2=80=98pnv_pci_=
ioda2_release_pe_dma=E2=80=99:
../arch/powerpc/platforms/powernv/pci-ioda.c:3312:15: error: format =E2=80=
=98%ld=E2=80=99 expects argument of type =E2=80=98long int=E2=80=99, but ar=
gument 4 has type =E2=80=98int64_t {aka long long int}=E2=80=99 [-Werror=3D=
format=3D]
pe_warn(pe, "OPAL error %ld release DMA window\n", rc);
^
../arch/powerpc/platforms/powernv/pci.h:233:36: note: in definition of macr=
o =E2=80=98pe_warn=E2=80=99
pe_level_printk(pe, KERN_WARNING, fmt, ##__VA_ARGS__)
^~~
../arch/powerpc/platforms/powernv/pci-ioda.c: In function =E2=80=98pnv_ioda=
_free_pe_seg=E2=80=99:
../arch/powerpc/platforms/powernv/pci-ioda.c:3347:16: error: format =E2=80=
=98%ld=E2=80=99 expects argument of type =E2=80=98long int=E2=80=99, but ar=
gument 4 has type =E2=80=98int64_t {aka long long int}=E2=80=99 [-Werror=3D=
format=3D]
pe_warn(pe, "Error %ld unmapping (%d) segment#%d\n",
^
../arch/powerpc/platforms/powernv/pci.h:233:36: note: in definition of macr=
o =E2=80=98pe_warn=E2=80=99
pe_level_printk(pe, KERN_WARNING, fmt, ##__VA_ARGS__)
^~~
From: Joe Perches <joe@perches.com> Date: 2016-07-15 04:59:19
On Fri, 2016-07-15 at 14:36 +1000, Michael Ellerman wrote:
Joe Perches [off-list ref] writes:
quoted
Make the compiler detect format and argument mismatches.
Signed-off-by: Joe Perches <joe@perches.com>
---
arch/powerpc/platforms/powernv/pci.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/platforms/powernv/pci.h
b/arch/powerpc/platforms/powernv/pci.h
index 3a97990..1c1a586 100644
*bus);
extern int pnv_setup_msi_irqs(struct pci_dev *pdev, int nvec, int
type);
extern void pnv_teardown_msi_irqs(struct pci_dev *pdev);
+__printf(3, 4)
extern void pe_level_printk(const struct pnv_ioda_pe *pe, const
char *level,
const char *fmt, ...);
Thanks, but it breaks the build due to lots of new warnings.
We'll have to fix those before merging it.
Good. Are you going to fix those?
I thought I did a powerpc defconfig build of arch/powerpc/
and I believe it finished without error, but I'm pleased
it found some defects.
I think it's now marked "rejected" in patchwork.
Perhaps it'd better to mark it "deferred" instead.
From: kbuild test robot <hidden> Date: 2016-07-22 05:35:39
Hi,
[auto build test ERROR on v4.7-rc7]
[also build test ERROR on next-20160721]
[cannot apply to powerpc/next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Joe-Perches/powernv-Use-__printf-in-pe_level_printk/20160715-171449
config: powerpc-ppc64_defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 5.4.0-6) 5.4.0 20160609
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=powerpc
All errors (new ones prefixed by >>):
In file included from arch/powerpc/platforms/powernv/pci-ioda.c:49:0:
arch/powerpc/platforms/powernv/pci-ioda.c: In function 'pnv_ioda_setup_bus_PE':
quoted
arch/powerpc/platforms/powernv/pci-ioda.c:1067:15: error: format '%d' expects argument of type 'int', but argument 4 has type 'resource_size_t {aka long long unsigned int}' [-Werror=format=]
pe_info(pe, "Secondary bus %d..%d associated with PE#%d\n",
^
arch/powerpc/platforms/powernv/pci.h:224:33: note: in definition of macro 'pe_info'
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c:1067:15: error: format '%d' expects argument of type 'int', but argument 5 has type 'resource_size_t {aka long long unsigned int}' [-Werror=format=]
pe_info(pe, "Secondary bus %d..%d associated with PE#%d\n",
^
arch/powerpc/platforms/powernv/pci.h:224:33: note: in definition of macro 'pe_info'
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c:1070:15: error: format '%d' expects argument of type 'int', but argument 4 has type 'resource_size_t {aka long long unsigned int}' [-Werror=format=]
pe_info(pe, "Secondary bus %d associated with PE#%d\n",
^
arch/powerpc/platforms/powernv/pci.h:224:33: note: in definition of macro 'pe_info'
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c: In function 'pnv_pci_ioda1_setup_dma_pe':
quoted
arch/powerpc/platforms/powernv/pci-ioda.c:2100:15: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'int64_t {aka long long int}' [-Werror=format=]
pe_err(pe, " Failed to configure 32-bit TCE table,"
^
arch/powerpc/platforms/powernv/pci.h:220:32: note: in definition of macro 'pe_err'
pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c: In function 'pnv_pci_ioda2_set_window':
quoted
arch/powerpc/platforms/powernv/pci-ioda.c:2160:14: error: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'long unsigned int' [-Werror=format=]
pe_info(pe, "Setting up window#%d %llx..%llx pg=%x\n", num,
^
arch/powerpc/platforms/powernv/pci.h:224:33: note: in definition of macro 'pe_info'
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c:2176:14: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'int64_t {aka long long int}' [-Werror=format=]
pe_err(pe, "Failed to configure TCE table, err %ld\n", rc);
^
arch/powerpc/platforms/powernv/pci.h:220:32: note: in definition of macro 'pe_err'
pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__)
^
cc1: all warnings being treated as errors
vim +1067 arch/powerpc/platforms/powernv/pci-ioda.c
184cd4a3 Benjamin Herrenschmidt 2011-11-15 1061 pe->pbus = bus;
184cd4a3 Benjamin Herrenschmidt 2011-11-15 1062 pe->pdev = NULL;
184cd4a3 Benjamin Herrenschmidt 2011-11-15 1063 pe->mve_number = -1;
b918c62e Yinghai Lu 2012-05-17 1064 pe->rid = bus->busn_res.start << 8;
184cd4a3 Benjamin Herrenschmidt 2011-11-15 1065
fb446ad0 Gavin Shan 2012-08-20 1066 if (all)
fb446ad0 Gavin Shan 2012-08-20 @1067 pe_info(pe, "Secondary bus %d..%d associated with PE#%d\n",
1e916772 Gavin Shan 2016-05-03 1068 bus->busn_res.start, bus->busn_res.end, pe->pe_number);
fb446ad0 Gavin Shan 2012-08-20 1069 else
fb446ad0 Gavin Shan 2012-08-20 @1070 pe_info(pe, "Secondary bus %d associated with PE#%d\n",
1e916772 Gavin Shan 2016-05-03 1071 bus->busn_res.start, pe->pe_number);
184cd4a3 Benjamin Herrenschmidt 2011-11-15 1072
184cd4a3 Benjamin Herrenschmidt 2011-11-15 1073 if (pnv_ioda_configure_pe(phb, pe)) {
:::::: The code at line 1067 was first introduced by commit
:::::: fb446ad075cfa5212b26c4f77751faefe574ad8b powerpc/powernv: Create bus sensitive PEs
:::::: TO: Gavin Shan [off-list ref]
:::::: CC: Benjamin Herrenschmidt [off-list ref]
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
From: kbuild test robot <hidden> Date: 2016-07-22 07:45:51
Hi,
[auto build test WARNING on v4.7-rc7]
[also build test WARNING on next-20160721]
[cannot apply to powerpc/next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Joe-Perches/powernv-Use-__printf-in-pe_level_printk/20160715-171449
config: powerpc-allmodconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 5.4.0-6) 5.4.0 20160609
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=powerpc
All warnings (new ones prefixed by >>):
In file included from arch/powerpc/platforms/powernv/pci-ioda.c:49:0:
arch/powerpc/platforms/powernv/pci-ioda.c: In function 'pnv_ioda_deconfigure_pe':
quoted
arch/powerpc/platforms/powernv/pci-ioda.c:784:15: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'int64_t {aka long long int}' [-Wformat=]
pe_warn(pe, "OPAL error %ld remove self from PELTV\n", rc);
^
arch/powerpc/platforms/powernv/pci.h:222:36: note: in definition of macro 'pe_warn'
pe_level_printk(pe, KERN_WARNING, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c:788:14: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'int64_t {aka long long int}' [-Wformat=]
pe_err(pe, "OPAL error %ld trying to setup PELT table\n", rc);
^
arch/powerpc/platforms/powernv/pci.h:220:32: note: in definition of macro 'pe_err'
pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c: In function 'pnv_ioda_setup_bus_PE':
quoted
arch/powerpc/platforms/powernv/pci-ioda.c:1067:15: warning: format '%d' expects argument of type 'int', but argument 4 has type 'resource_size_t {aka long long unsigned int}' [-Wformat=]
pe_info(pe, "Secondary bus %d..%d associated with PE#%d\n",
^
arch/powerpc/platforms/powernv/pci.h:224:33: note: in definition of macro 'pe_info'
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c:1067:15: warning: format '%d' expects argument of type 'int', but argument 5 has type 'resource_size_t {aka long long unsigned int}' [-Wformat=]
pe_info(pe, "Secondary bus %d..%d associated with PE#%d\n",
^
arch/powerpc/platforms/powernv/pci.h:224:33: note: in definition of macro 'pe_info'
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c:1070:15: warning: format '%d' expects argument of type 'int', but argument 4 has type 'resource_size_t {aka long long unsigned int}' [-Wformat=]
pe_info(pe, "Secondary bus %d associated with PE#%d\n",
^
arch/powerpc/platforms/powernv/pci.h:224:33: note: in definition of macro 'pe_info'
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c: In function 'pnv_pci_ioda2_release_dma_pe':
arch/powerpc/platforms/powernv/pci-ioda.c:1358:15: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'int64_t {aka long long int}' [-Wformat=]
pe_warn(pe, "OPAL error %ld release DMA window\n", rc);
^
arch/powerpc/platforms/powernv/pci.h:222:36: note: in definition of macro 'pe_warn'
pe_level_printk(pe, KERN_WARNING, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c: In function 'pnv_pci_ioda1_setup_dma_pe':
arch/powerpc/platforms/powernv/pci-ioda.c:2100:15: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'int64_t {aka long long int}' [-Wformat=]
pe_err(pe, " Failed to configure 32-bit TCE table,"
^
arch/powerpc/platforms/powernv/pci.h:220:32: note: in definition of macro 'pe_err'
pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c: In function 'pnv_pci_ioda2_set_window':
quoted
arch/powerpc/platforms/powernv/pci-ioda.c:2160:14: warning: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'long unsigned int' [-Wformat=]
pe_info(pe, "Setting up window#%d %llx..%llx pg=%x\n", num,
^
arch/powerpc/platforms/powernv/pci.h:224:33: note: in definition of macro 'pe_info'
pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__)
^
arch/powerpc/platforms/powernv/pci-ioda.c:2176:14: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'int64_t {aka long long int}' [-Wformat=]
pe_err(pe, "Failed to configure TCE table, err %ld\n", rc);
^
arch/powerpc/platforms/powernv/pci.h:220:32: note: in definition of macro 'pe_err'
pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__)
^
vim +784 arch/powerpc/platforms/powernv/pci-ioda.c
781a868f Wei Yang 2015-03-25 778 OPAL_EEH_ACTION_CLEAR_FREEZE_ALL);
781a868f Wei Yang 2015-03-25 779
781a868f Wei Yang 2015-03-25 780 /* Disassociate PE in PELT */
781a868f Wei Yang 2015-03-25 781 rc = opal_pci_set_peltv(phb->opal_id, pe->pe_number,
781a868f Wei Yang 2015-03-25 782 pe->pe_number, OPAL_REMOVE_PE_FROM_DOMAIN);
781a868f Wei Yang 2015-03-25 783 if (rc)
781a868f Wei Yang 2015-03-25 @784 pe_warn(pe, "OPAL error %ld remove self from PELTV\n", rc);
781a868f Wei Yang 2015-03-25 785 rc = opal_pci_set_pe(phb->opal_id, pe->pe_number, pe->rid,
781a868f Wei Yang 2015-03-25 786 bcomp, dcomp, fcomp, OPAL_UNMAP_PE);
781a868f Wei Yang 2015-03-25 787 if (rc)
781a868f Wei Yang 2015-03-25 @788 pe_err(pe, "OPAL error %ld trying to setup PELT table\n", rc);
781a868f Wei Yang 2015-03-25 789
781a868f Wei Yang 2015-03-25 790 pe->pbus = NULL;
781a868f Wei Yang 2015-03-25 791 pe->pdev = NULL;
:::::: The code at line 784 was first introduced by commit
:::::: 781a868f3136c6eb8e8c5c19d148416d7da86610 powerpc/powernv: Shift VF resource with an offset
:::::: TO: Wei Yang [off-list ref]
:::::: CC: Benjamin Herrenschmidt [off-list ref]
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation