* 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