Message ID | b204dbb1d8d13998eb8dee4dabbc91a0ee4b38b4.1468511136.git.joe@perches.com (mailing list archive) |
---|---|
State | Deferred, archived |
Headers | show |
Joe Perches <joe@perches.com> writes: > 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 > --- a/arch/powerpc/platforms/powernv/pci.h > +++ b/arch/powerpc/platforms/powernv/pci.h > @@ -213,6 +213,7 @@ extern void pnv_pci_dma_bus_setup(struct pci_bus *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. cheers 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’: ../arch/powerpc/platforms/powernv/pci-ioda.c:784:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘int64_t {aka long long int}’ [-Werror=format=] pe_warn(pe, "OPAL error %ld remove self from PELTV\n", rc); ^ ../arch/powerpc/platforms/powernv/pci.h:233: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: 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, "OPAL error %ld trying to setup PELT table\n", rc); ^ ../arch/powerpc/platforms/powernv/pci.h:231: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’: ../arch/powerpc/platforms/powernv/pci-ioda.c:1095: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:235:33: note: in definition of macro ‘pe_info’ pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__) ^~~ ../arch/powerpc/platforms/powernv/pci-ioda.c:1095: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:235:33: note: in definition of macro ‘pe_info’ pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__) ^~~ ../arch/powerpc/platforms/powernv/pci-ioda.c:1098: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:235: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:1351:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘int64_t {aka long long int}’ [-Werror=format=] pe_warn(pe, "OPAL error %ld release DMA window\n", rc); ^ ../arch/powerpc/platforms/powernv/pci.h:233: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:2093: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:231: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’: ../arch/powerpc/platforms/powernv/pci-ioda.c:2153: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:235:33: note: in definition of macro ‘pe_info’ pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__) ^~~ ../arch/powerpc/platforms/powernv/pci-ioda.c:2169: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:231: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_release_pe_dma’: ../arch/powerpc/platforms/powernv/pci-ioda.c:3312:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘int64_t {aka long long int}’ [-Werror=format=] pe_warn(pe, "OPAL error %ld release DMA window\n", rc); ^ ../arch/powerpc/platforms/powernv/pci.h:233: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_ioda_free_pe_seg’: ../arch/powerpc/platforms/powernv/pci-ioda.c:3347:16: error: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘int64_t {aka long long int}’ [-Werror=format=] pe_warn(pe, "Error %ld unmapping (%d) segment#%d\n", ^ ../arch/powerpc/platforms/powernv/pci.h:233:36: note: in definition of macro ‘pe_warn’ pe_level_printk(pe, KERN_WARNING, fmt, ##__VA_ARGS__) ^~~
On Fri, 2016-07-15 at 14:36 +1000, Michael Ellerman wrote: > Joe Perches <joe@perches.com> writes: > > > > > 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 > > --- a/arch/powerpc/platforms/powernv/pci.h > > +++ b/arch/powerpc/platforms/powernv/pci.h > > @@ -213,6 +213,7 @@ extern void pnv_pci_dma_bus_setup(struct pci_bus > > *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.
Joe Perches <joe@perches.com> writes: > On Fri, 2016-07-15 at 14:36 +1000, Michael Ellerman wrote: >> Joe Perches <joe@perches.com> writes: >> > >> > diff --git a/arch/powerpc/platforms/powernv/pci.h >> > b/arch/powerpc/platforms/powernv/pci.h >> > index 3a97990..1c1a586 100644 >> > --- a/arch/powerpc/platforms/powernv/pci.h >> > +++ b/arch/powerpc/platforms/powernv/pci.h >> > @@ -213,6 +213,7 @@ extern void pnv_pci_dma_bus_setup(struct pci_bus >> > *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? Not this month. > 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. Hmm, I'd be surprised, but it might depend on the exact config / compiler etc. > I think it's now marked "rejected" in patchwork. > Perhaps it'd better to mark it "deferred" instead. I can do that. Though realistically I'm unlikely to go back and find it. cheers
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': >> 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': >> 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': >> 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 <shangw@linux.vnet.ibm.com> :::::: CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
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': >> 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': >> 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': >> 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 <weiyang@linux.vnet.ibm.com> :::::: CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/arch/powerpc/platforms/powernv/pci.h b/arch/powerpc/platforms/powernv/pci.h index 3a97990..1c1a586 100644 --- a/arch/powerpc/platforms/powernv/pci.h +++ b/arch/powerpc/platforms/powernv/pci.h @@ -213,6 +213,7 @@ extern void pnv_pci_dma_bus_setup(struct pci_bus *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, ...); #define pe_err(pe, fmt, ...) \
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(+)