Fix checkpath warning:
WARNING: Unnecessary typecast of c90 int constant
Signed-off-by: Jose Carlos Cazarin Filho <[email protected]>
---
Hello all!
This is my first commit to the Linux Kernel, I'm doing this to learn and be able
to contribute more in the future
Peace all!
drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
index 944336e0d..da371072e 100644
--- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
+++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
@@ -665,8 +665,8 @@ static int r8711_wx_set_freq(struct net_device *dev,
/* If setting by frequency, convert to a channel */
if ((fwrq->e == 1) &&
- (fwrq->m >= (int) 2.412e8) &&
- (fwrq->m <= (int) 2.487e8)) {
+ (fwrq->m >= 2.412e8) &&
+ (fwrq->m <= 2.487e8)) {
int f = fwrq->m / 100000;
int c = 0;
--
2.17.1
On Mon, Aug 05, 2019 at 10:33:29PM -0300, Jose Carlos Cazarin Filho wrote:
> Fix checkpath warning:
> WARNING: Unnecessary typecast of c90 int constant
>
> Signed-off-by: Jose Carlos Cazarin Filho <[email protected]>
> ---
> Hello all!
> This is my first commit to the Linux Kernel, I'm doing this to learn and be able
> to contribute more in the future
> Peace all!
> drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> index 944336e0d..da371072e 100644
> --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> @@ -665,8 +665,8 @@ static int r8711_wx_set_freq(struct net_device *dev,
>
> /* If setting by frequency, convert to a channel */
> if ((fwrq->e == 1) &&
> - (fwrq->m >= (int) 2.412e8) &&
> - (fwrq->m <= (int) 2.487e8)) {
> + (fwrq->m >= 2.412e8) &&
> + (fwrq->m <= 2.487e8)) {
I don't think we can do this. You're not allowed to use floats in the
kernel (because they make context switching slow). I could have sworn
that we use the -nofp to stop the compile when people use floats but
this compiles fine for me.
regards,
dan carpenter
From: Dan Carpenter
> Sent: 06 August 2019 12:53
> On Mon, Aug 05, 2019 at 10:33:29PM -0300, Jose Carlos Cazarin Filho wrote:
> > Fix checkpath warning:
> > WARNING: Unnecessary typecast of c90 int constant
> >
> > Signed-off-by: Jose Carlos Cazarin Filho <[email protected]>
> > ---
> > Hello all!
> > This is my first commit to the Linux Kernel, I'm doing this to learn and be able
> > to contribute more in the future
> > Peace all!
> > drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> > index 944336e0d..da371072e 100644
> > --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> > +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> > @@ -665,8 +665,8 @@ static int r8711_wx_set_freq(struct net_device *dev,
> >
> > /* If setting by frequency, convert to a channel */
> > if ((fwrq->e == 1) &&
> > - (fwrq->m >= (int) 2.412e8) &&
> > - (fwrq->m <= (int) 2.487e8)) {
> > + (fwrq->m >= 2.412e8) &&
> > + (fwrq->m <= 2.487e8)) {
>
> I don't think we can do this. You're not allowed to use floats in the
> kernel (because they make context switching slow). I could have sworn
> that we use the -nofp to stop the compile when people use floats but
> this compiles fine for me.
My guess is the 'c90 int constant' text.
It rather implies that '2.412e8' has become the same as '2141200000'.
Which is rather worrying because suddenly 'int_var * 2.4e8' might
be an integer multiply rather than a double one and overflow.
Have the standard people broken code again?
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Sorry folks, I haven't properly tested this before sending the patch
After I've removed the cast, I got this error:
drivers/staging/rtl8712/rtl871x_ioctl_linux.c:668:13: error: SSE
register return with SSE disabled
(fwrq->m >= 2.412e8) &&
~~~~~~~~~^~~~~~~~~~~
But I think it's strange since you said that this compiled fine in
your environments.
I think we need to take a deeper look into this.
Kind regards
Em ter, 6 de ago de 2019 às 10:10, David Laight
<[email protected]> escreveu:
>
> From: Dan Carpenter
> > Sent: 06 August 2019 12:53
> > On Mon, Aug 05, 2019 at 10:33:29PM -0300, Jose Carlos Cazarin Filho wrote:
> > > Fix checkpath warning:
> > > WARNING: Unnecessary typecast of c90 int constant
> > >
> > > Signed-off-by: Jose Carlos Cazarin Filho <[email protected]>
> > > ---
> > > Hello all!
> > > This is my first commit to the Linux Kernel, I'm doing this to learn and be able
> > > to contribute more in the future
> > > Peace all!
> > > drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> > b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> > > index 944336e0d..da371072e 100644
> > > --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> > > +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> > > @@ -665,8 +665,8 @@ static int r8711_wx_set_freq(struct net_device *dev,
> > >
> > > /* If setting by frequency, convert to a channel */
> > > if ((fwrq->e == 1) &&
> > > - (fwrq->m >= (int) 2.412e8) &&
> > > - (fwrq->m <= (int) 2.487e8)) {
> > > + (fwrq->m >= 2.412e8) &&
> > > + (fwrq->m <= 2.487e8)) {
> >
> > I don't think we can do this. You're not allowed to use floats in the
> > kernel (because they make context switching slow). I could have sworn
> > that we use the -nofp to stop the compile when people use floats but
> > this compiles fine for me.
>
> My guess is the 'c90 int constant' text.
>
> It rather implies that '2.412e8' has become the same as '2141200000'.
> Which is rather worrying because suddenly 'int_var * 2.4e8' might
> be an integer multiply rather than a double one and overflow.
> Have the standard people broken code again?
>
> David
>
> -
> Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
> Registration No: 1397386 (Wales)
>