Messages in this thread | | | Date | Thu, 11 Dec 2008 13:23:36 +0900 | From | "Nguyen Anh Quynh" <> | Subject | Re: [PATCH] fix calls to request_module() |
| |
On Thu, Dec 11, 2008 at 1:14 PM, Andrew Morton <akpm@linux-foundation.org> wrote: > On Thu, 11 Dec 2008 04:01:18 +0000 Al Viro <viro@ZenIV.linux.org.uk> wrote: > >> On Thu, Dec 11, 2008 at 12:35:21PM +0900, Nguyen Anh Quynh wrote: >> > Hi, >> > >> > The request_module() function should always have the 1st param as a >> > format argument. So for example, request_module("i2c-powermac") should >> > be called as request_module("%s", "i2c-powermac"). Otherwise, new gcc >> > like gcc 4.3.2 on Ubuntu 8.10 would spit out a lot of warnings. This >> > patch fixes them all in linus-git tree. >> >> ... and it doesn't address the underlying problems at all. A string literal >> without a single % in it is a perfectly sane and valid format. _Why_ are >> we getting these warning? > > extern int request_module(const char * name, ...) __attribute__ ((format (printf, 1, 2))); >
Sorry that after the mail of Viro, I checked again by recover a code and recompile, but got no warning. But actually that code should not be compiled at all.
So I checked again by fixing the code that should be compiled (sound/core/sound.c), and can confirm that without the patch we got warning like below:
sound/core/sound.c: In function 'snd_request_other': sound/core/sound.c:91: warning: format not a string literal and no format arguments
And with the patch, the warnings are all gone.
So Andrew, please consider taking the patch.
Thanks, Quynh
| |