* voyager_{thread,cat}.c compile warnings
@ 2007-07-21 22:03 Gabriel C
2007-07-22 15:33 ` Cédric Augonnet
0 siblings, 1 reply; 5+ messages in thread
From: Gabriel C @ 2007-07-21 22:03 UTC (permalink / raw)
To: Linux Kernel Mailing List
Hi,
I noticed this warnings on current git:
...
arch/i386/mach-voyager/voyager_thread.c: In function 'thread':
arch/i386/mach-voyager/voyager_thread.c:113: warning: no return statement in function returning non-void
...
I think return 0; is missing on line 112 here.
...
arch/i386/mach-voyager/voyager_cat.c: In function 'voyager_cat_init':
arch/i386/mach-voyager/voyager_cat.c:685: warning: comparison is always false due to limited range of data type
arch/i386/mach-voyager/voyager_cat.c:755: warning: comparison is always false due to limited range of data type
...
Regards,
Gabriel C
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: voyager_{thread,cat}.c compile warnings 2007-07-21 22:03 voyager_{thread,cat}.c compile warnings Gabriel C @ 2007-07-22 15:33 ` Cédric Augonnet 2007-07-22 22:49 ` Cédric Augonnet 0 siblings, 1 reply; 5+ messages in thread From: Cédric Augonnet @ 2007-07-22 15:33 UTC (permalink / raw) To: Gabriel C; +Cc: Linux Kernel Mailing List [-- Attachment #1: Type: text/plain, Size: 1191 bytes --] Hi, 2007/7/21, Gabriel C <nix.or.die@googlemail.com>: > Hi, > > I noticed this warnings on current git: > > > ... > > arch/i386/mach-voyager/voyager_thread.c: In function 'thread': > arch/i386/mach-voyager/voyager_thread.c:113: warning: no return statement in function returning non-void > > ... > > I think return 0; is missing on line 112 here. > I guess there is no use in always returning 0, simply not returning anything and putting a void type might be cleaner, especially as this function seems to never return. > > arch/i386/mach-voyager/voyager_cat.c: In function 'voyager_cat_init': > arch/i386/mach-voyager/voyager_cat.c:685: warning: comparison is always false due to limited range of data type > arch/i386/mach-voyager/voyager_cat.c:755: warning: comparison is always false due to limited range of data type > Hum perhaps it does not like the comparision of a __u16 and an unsigned int ? I enclose some dummy patch that should perhaps solve these issues, could not test it as i don't have the hardware... just my 2 cents. Don't know if casting is an acceptable workaround though. > > > Regards, > > Gabriel C > Cheers, Cédric [-- Attachment #2: voyager.patch --] [-- Type: text/x-diff, Size: 1439 bytes --] Submitted by: Cedric Augonnet <cedric.augonnet@ens-lyon.org> --- diff -urN a/arch/i386/mach-voyager/voyager_cat.c b/arch/i386/mach-voyager/voyager_cat.c --- /home/gonnet/tmp/linux-2.6.22/arch/i386/mach-voyager/voyager_cat.c 2007-07-20 11:50:17.000000000 -0400 +++ linux-2.6.22/arch/i386/mach-voyager/voyager_cat.c 2007-07-22 11:24:34.000000000 -0400 @@ -682,7 +682,7 @@ outb(VOYAGER_CAT_END, CAT_CMD); continue; } - if(eprom_size > sizeof(eprom_buf)) { + if((unsigned)eprom_size > sizeof(eprom_buf)) { printk("**WARNING**: Voyager insufficient size to read EPROM data, module 0x%x. Need %d\n", i, eprom_size); outb(VOYAGER_CAT_END, CAT_CMD); continue; @@ -752,7 +752,7 @@ outb(VOYAGER_CAT_END, CAT_CMD); continue; } - if(eprom_size > sizeof(eprom_buf)) { + if((unsigned)eprom_size > sizeof(eprom_buf)) { printk("**WARNING**: Voyager insufficient size to read EPROM data, module 0x%x. Need %d\n", i, eprom_size); outb(VOYAGER_CAT_END, CAT_CMD); continue; diff -urN a/arch/i386/mach-voyager/voyager_thread.c b/arch/i386/mach-voyager/voyager_thread.c --- /home/gonnet/tmp/linux-2.6.22/arch/i386/mach-voyager/voyager_thread.c 2007-07-20 11:50:17.000000000 -0400 +++ linux-2.6.22/arch/i386/mach-voyager/voyager_thread.c 2007-07-22 11:27:13.000000000 -0400 @@ -92,7 +92,7 @@ } } -static int +static void thread(void *unused) { printk(KERN_NOTICE "Voyager starting monitor thread\n"); ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: voyager_{thread,cat}.c compile warnings 2007-07-22 15:33 ` Cédric Augonnet @ 2007-07-22 22:49 ` Cédric Augonnet 2007-07-22 23:39 ` James Bottomley 0 siblings, 1 reply; 5+ messages in thread From: Cédric Augonnet @ 2007-07-22 22:49 UTC (permalink / raw) To: Gabriel C; +Cc: Linux Kernel Mailing List, J.E.J.Bottomley [-- Attachment #1: Type: text/plain, Size: 1381 bytes --] 2007/7/22, Cédric Augonnet <cedric.augonnet@gmail.com>: > Hi, > > 2007/7/21, Gabriel C <nix.or.die@googlemail.com>: > > Hi, > > > > I noticed this warnings on current git: > > > > > > ... > > > > arch/i386/mach-voyager/voyager_thread.c: In function 'thread': > > arch/i386/mach-voyager/voyager_thread.c:113: warning: no return statement in function returning non-void > > > > ... > > > > I think return 0; is missing on line 112 here. > > > > I guess there is no use in always returning 0, simply not returning anything and > putting a void type might be cleaner, especially as this function > seems to never > return. > > > > > arch/i386/mach-voyager/voyager_cat.c: In function 'voyager_cat_init': > > arch/i386/mach-voyager/voyager_cat.c:685: warning: comparison is always false due to limited range of data type > > arch/i386/mach-voyager/voyager_cat.c:755: warning: comparison is always false due to limited range of data type > > > > Hum perhaps it does not like the comparision of a __u16 and an unsigned int ? > > I enclose some dummy patch that should perhaps solve these issues, > could not test it as i don't have the hardware... just my 2 cents. > Don't know if casting is an > acceptable workaround though. > > > > > > > Regards, > > > > Gabriel C > > > > Cheers, > Cédric > > (forgot to cc the maintainer, sorry ...) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: voyager.patch --] [-- Type: text/x-diff; name="voyager.patch", Size: 1439 bytes --] Submitted by: Cedric Augonnet <cedric.augonnet@ens-lyon.org> --- diff -urN a/arch/i386/mach-voyager/voyager_cat.c b/arch/i386/mach-voyager/voyager_cat.c --- /home/gonnet/tmp/linux-2.6.22/arch/i386/mach-voyager/voyager_cat.c 2007-07-20 11:50:17.000000000 -0400 +++ linux-2.6.22/arch/i386/mach-voyager/voyager_cat.c 2007-07-22 11:24:34.000000000 -0400 @@ -682,7 +682,7 @@ outb(VOYAGER_CAT_END, CAT_CMD); continue; } - if(eprom_size > sizeof(eprom_buf)) { + if((unsigned)eprom_size > sizeof(eprom_buf)) { printk("**WARNING**: Voyager insufficient size to read EPROM data, module 0x%x. Need %d\n", i, eprom_size); outb(VOYAGER_CAT_END, CAT_CMD); continue; @@ -752,7 +752,7 @@ outb(VOYAGER_CAT_END, CAT_CMD); continue; } - if(eprom_size > sizeof(eprom_buf)) { + if((unsigned)eprom_size > sizeof(eprom_buf)) { printk("**WARNING**: Voyager insufficient size to read EPROM data, module 0x%x. Need %d\n", i, eprom_size); outb(VOYAGER_CAT_END, CAT_CMD); continue; diff -urN a/arch/i386/mach-voyager/voyager_thread.c b/arch/i386/mach-voyager/voyager_thread.c --- /home/gonnet/tmp/linux-2.6.22/arch/i386/mach-voyager/voyager_thread.c 2007-07-20 11:50:17.000000000 -0400 +++ linux-2.6.22/arch/i386/mach-voyager/voyager_thread.c 2007-07-22 11:27:13.000000000 -0400 @@ -92,7 +92,7 @@ } } -static int +static void thread(void *unused) { printk(KERN_NOTICE "Voyager starting monitor thread\n"); ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: voyager_{thread,cat}.c compile warnings 2007-07-22 22:49 ` Cédric Augonnet @ 2007-07-22 23:39 ` James Bottomley 2007-07-23 0:39 ` Cédric Augonnet 0 siblings, 1 reply; 5+ messages in thread From: James Bottomley @ 2007-07-22 23:39 UTC (permalink / raw) To: Cédric Augonnet Cc: Gabriel C, Linux Kernel Mailing List, J.E.J.Bottomley On Sun, 2007-07-22 at 18:49 -0400, Cédric Augonnet wrote: > iff -urN a/arch/i386/mach-voyager/voyager_cat.c > b/arch/i386/mach-voyager/voyager_cat.c > --- /home/gonnet/tmp/linux-2.6.22/arch/i386/mach-voyager/voyager_cat.c 2007-07-20 11:50:17.000000000 -0400 > +++ linux-2.6.22/arch/i386/mach-voyager/voyager_cat.c 2007-07-22 > 11:24:34.000000000 -0400 > @@ -682,7 +682,7 @@ > outb(VOYAGER_CAT_END, CAT_CMD); > continue; > } > - if(eprom_size > sizeof(eprom_buf)) { > + if((unsigned)eprom_size > sizeof(eprom_buf)) { Actually, no. If gcc can deduce that the comparison is always false then I want it not to build the body of the if. The only thing I don't know how to do is to shut up the warning in this case. What you've done is make gcc pretend it doesn't know the if is always false. > printk("**WARNING**: Voyager insufficient size > to read EPROM data, module 0x%x. Need %d\n", i, eprom_size); > outb(VOYAGER_CAT_END, CAT_CMD); > continue; > @@ -752,7 +752,7 @@ > outb(VOYAGER_CAT_END, CAT_CMD); > continue; > } > - if(eprom_size > sizeof(eprom_buf)) { > + if((unsigned)eprom_size > sizeof(eprom_buf)) { > printk("**WARNING**: Voyager insufficient size > to read EPROM data, module 0x%x. Need %d\n", i, eprom_size); > outb(VOYAGER_CAT_END, CAT_CMD); > continue; > diff -urN a/arch/i386/mach-voyager/voyager_thread.c > b/arch/i386/mach-voyager/voyager_thread.c > --- /home/gonnet/tmp/linux-2.6.22/arch/i386/mach-voyager/voyager_thread.c 2007-07-20 11:50:17.000000000 -0400 > +++ > linux-2.6.22/arch/i386/mach-voyager/voyager_thread.c 2007-07-22 > 11:27:13.000000000 -0400 > @@ -92,7 +92,7 @@ > } > } > > -static int > +static void > thread(void *unused) > { > printk(KERN_NOTICE "Voyager starting monitor thread\n"); You didn't actually compile this, did you? Apparently the signature of the kthread_run function changed from returning void to returning int. Unfortunately the person who fixed this up forgot to add a return 0 at the end of the voyager thread() function .. which is the correct fix. James ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: voyager_{thread,cat}.c compile warnings 2007-07-22 23:39 ` James Bottomley @ 2007-07-23 0:39 ` Cédric Augonnet 0 siblings, 0 replies; 5+ messages in thread From: Cédric Augonnet @ 2007-07-23 0:39 UTC (permalink / raw) To: James Bottomley; +Cc: Gabriel C, Linux Kernel Mailing List, J.E.J.Bottomley 2007/7/22, James Bottomley <James.Bottomley@hansenpartnership.com>: > On Sun, 2007-07-22 at 18:49 -0400, Cédric Augonnet wrote: > > iff -urN a/arch/i386/mach-voyager/voyager_cat.c > > b/arch/i386/mach-voyager/voyager_cat.c > > --- /home/gonnet/tmp/linux-2.6.22/arch/i386/mach-voyager/voyager_cat.c 2007-07-20 11:50:17.000000000 -0400 > > +++ linux-2.6.22/arch/i386/mach-voyager/voyager_cat.c 2007-07-22 > > 11:24:34.000000000 -0400 > > @@ -682,7 +682,7 @@ > > outb(VOYAGER_CAT_END, CAT_CMD); > > continue; > > } > > - if(eprom_size > sizeof(eprom_buf)) { > > + if((unsigned)eprom_size > sizeof(eprom_buf)) { > > Actually, no. If gcc can deduce that the comparison is always false > then I want it not to build the body of the if. The only thing I don't > know how to do is to shut up the warning in this case. What you've done > is make gcc pretend it doesn't know the if is always false. > > > printk("**WARNING**: Voyager insufficient size > > to read EPROM data, module 0x%x. Need %d\n", i, eprom_size); > > outb(VOYAGER_CAT_END, CAT_CMD); > > continue; > > @@ -752,7 +752,7 @@ > > outb(VOYAGER_CAT_END, CAT_CMD); > > continue; > > } > > - if(eprom_size > sizeof(eprom_buf)) { > > + if((unsigned)eprom_size > sizeof(eprom_buf)) { > > printk("**WARNING**: Voyager insufficient size > > to read EPROM data, module 0x%x. Need %d\n", i, eprom_size); > > outb(VOYAGER_CAT_END, CAT_CMD); > > continue; > > diff -urN a/arch/i386/mach-voyager/voyager_thread.c > > b/arch/i386/mach-voyager/voyager_thread.c > > --- /home/gonnet/tmp/linux-2.6.22/arch/i386/mach-voyager/voyager_thread.c 2007-07-20 11:50:17.000000000 -0400 > > +++ > > linux-2.6.22/arch/i386/mach-voyager/voyager_thread.c 2007-07-22 > > 11:27:13.000000000 -0400 > > @@ -92,7 +92,7 @@ > > } > > } > > > > -static int > > +static void > > thread(void *unused) > > { > > printk(KERN_NOTICE "Voyager starting monitor thread\n"); > > You didn't actually compile this, did you? Apparently the signature of > the kthread_run function changed from returning void to returning int. > Unfortunately the person who fixed this up forgot to add a return 0 at > the end of the voyager thread() function .. which is the correct fix. Arg i was caught by that one. > James > Ouch indeed this quick'n'dirty patch was, let's call it a full mistake :) sorry for that, it could indeed not be tested as i don't have the hardware. Still, is it safe to compare two variable with different types anyway ? In http://lists.infradead.org/pipermail/linux-pcmcia/2004-March/000586.html they also have the same issue, they just do s/ foo > 0xffff / foo & ~0xffff / should not it solve the problem as well ? Sorry again for the first patch, next time i'll just shut up. Regards, Cédric ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-07-23 0:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-21 22:03 voyager_{thread,cat}.c compile warnings Gabriel C
2007-07-22 15:33 ` Cédric Augonnet
2007-07-22 22:49 ` Cédric Augonnet
2007-07-22 23:39 ` James Bottomley
2007-07-23 0:39 ` Cédric Augonnet
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox