Prev: 2.6.35-rc4 - include/linux/fdtable.h:85 invoked rcu_dereference_check() without protection!
Next: [PATCH 1/2] toshiba_acpi: make remove_device() and add_device() void
From: Stephen Rothwell on 7 Jul 2010 00:40 Hi Dave, After merging the net tree, today's linux-next build (x86_64 allmodconfig) produced this warning: drivers/net/ethoc.c: In function 'ethoc_init_ring': drivers/net/ethoc.c:302: warning: assignment makes integer from pointer without a cast Introduced by commit f8555ad0cfb0ba6cbc8729f337341fb11c82db89 ("ethoc: Write bus addresses to registers"). -- Cheers, Stephen Rothwell sfr(a)canb.auug.org.au http://www.canb.auug.org.au/~sfr/
From: David Miller on 7 Jul 2010 20:50 From: Stephen Rothwell <sfr(a)canb.auug.org.au> Date: Tue, 6 Jul 2010 14:25:42 +1000 > After merging the net tree, today's linux-next build (powerpc > ppc64_defconfig) produced these warnings: > > drivers/scsi/sym53c8xx_2/sym_hipd.c: In function 'sym_print_msg': > drivers/scsi/sym53c8xx_2/sym_hipd.c:78: warning: zero-length gnu_printf format string Thanks Stephen I'll look into this. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: David Miller on 7 Jul 2010 21:20 From: David Miller <davem(a)davemloft.net> Date: Wed, 07 Jul 2010 17:45:22 -0700 (PDT) > From: Stephen Rothwell <sfr(a)canb.auug.org.au> > Date: Tue, 6 Jul 2010 14:25:42 +1000 > >> After merging the net tree, today's linux-next build (powerpc >> ppc64_defconfig) produced these warnings: >> >> drivers/scsi/sym53c8xx_2/sym_hipd.c: In function 'sym_print_msg': >> drivers/scsi/sym53c8xx_2/sym_hipd.c:78: warning: zero-length gnu_printf format string > > Thanks Stephen I'll look into this. Yeah this is a bit ugly. It used to be that the dev_*() format string was CPP pasted to whatever format string the user gave. So if the user gave an empty string it still looked like a non-empty printf string. But that no longer happens because we hide the implementation, and thus the top-level printf format string, in the external functions. It seems the construction: /* * Stupid hackaround for existing uses of non-printk uses dev_info * * Note that the definition of dev_info below is actually _dev_info * and a macro is used to avoid redefining dev_info */ #define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg) added to linux/device.h was meant to handle these cases, but as we see it doesn't. It looks like there are just a hand-ful of cases, so maybe we can tweak them by hand. For example, in the sym53c8xx_2 driver bits we can replace the NULL labels passed to sym_print_msg() with a real string and therefore remove the "" case. Joe, any better ideas? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: David Miller on 7 Jul 2010 21:30 From: Stephen Rothwell <sfr(a)canb.auug.org.au> Date: Wed, 7 Jul 2010 14:30:45 +1000 > Hi Dave, > > After merging the net tree, today's linux-next build (x86_64 > allmodconfig) produced this warning: > > drivers/net/ethoc.c: In function 'ethoc_init_ring': > drivers/net/ethoc.c:302: warning: assignment makes integer from pointer without a cast > > Introduced by commit f8555ad0cfb0ba6cbc8729f337341fb11c82db89 ("ethoc: > Write bus addresses to registers"). I'll fix this as follows: -------------------- ethoc: Fix warning in ethoc_init_ring(). Get rid of the pointless back-and-forth casting of dev->mem_start from long to pointer back to long again. Also fixes a warning reported by Stephen Rothwell: drivers/net/ethoc.c: In function 'ethoc_init_ring': drivers/net/ethoc.c:302: warning: assignment makes integer from pointer without a cast Signed-off-by: David S. Miller <davem(a)davemloft.net> --- drivers/net/ethoc.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c index db519a8..5bb6bb7 100644 --- a/drivers/net/ethoc.c +++ b/drivers/net/ethoc.c @@ -286,7 +286,7 @@ static inline void ethoc_disable_rx_and_tx(struct ethoc *dev) ethoc_write(dev, MODER, mode); } -static int ethoc_init_ring(struct ethoc *dev, void* mem_start) +static int ethoc_init_ring(struct ethoc *dev, unsigned long mem_start) { struct ethoc_bd bd; int i; @@ -670,7 +670,7 @@ static int ethoc_open(struct net_device *dev) if (ret) return ret; - ethoc_init_ring(priv, (void*)dev->mem_start); + ethoc_init_ring(priv, dev->mem_start); ethoc_reset(priv); if (netif_queue_stopped(dev)) { -- 1.7.1.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Joe Perches on 8 Jul 2010 00:20
On Wed, 2010-07-07 at 18:18 -0700, David Miller wrote: > From: David Miller <davem(a)davemloft.net> > Date: Wed, 07 Jul 2010 17:45:22 -0700 (PDT) > > From: Stephen Rothwell <sfr(a)canb.auug.org.au> > > Date: Tue, 6 Jul 2010 14:25:42 +1000 > >> After merging the net tree, today's linux-next build (powerpc > >> ppc64_defconfig) produced these warnings: > >> drivers/scsi/sym53c8xx_2/sym_hipd.c: In function 'sym_print_msg': > >> drivers/scsi/sym53c8xx_2/sym_hipd.c:78: warning: zero-length gnu_printf format string > > Thanks Stephen I'll look into this. > Yeah this is a bit ugly. > > It used to be that the dev_*() format string was CPP pasted to whatever > format string the user gave. So if the user gave an empty string it > still looked like a non-empty printf string. > > But that no longer happens because we hide the implementation, and thus > the top-level printf format string, in the external functions. > > It seems the construction: > > /* > * Stupid hackaround for existing uses of non-printk uses dev_info > * > * Note that the definition of dev_info below is actually _dev_info > * and a macro is used to avoid redefining dev_info > */ > > #define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg) > > added to linux/device.h was meant to handle these cases, but as we see > it doesn't. Nope, the _dev_info/dev_info is meant to handle the current uses of dev_info as a variable like this one: $ grep dev_info drivers/net/pcmcia/pcnet_cs.c static dev_info_t dev_info = "pcnet_cs"; ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, dev_info, dev); Without the _dev_info and dev_info as a macro, the function is redefined as a variable. > It looks like there are just a hand-ful of cases, so maybe we can tweak > them by hand. For example, in the sym53c8xx_2 driver bits we can replace > the NULL labels passed to sym_print_msg() with a real string and therefore > remove the "" case. > > Joe, any better ideas? You're right there are just a few cases where dev_info is uses as a preface for a hex_dump style display. Maybe it'd be OK to simply add a trailing space to the preface and remove any leading spaces from the subsequent initial printks. dev_info(dev, " "); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |