[PATCH] rtl8712: rtl871x_ioctl_linux.c: fix unnecessary typecast

José Carlos Cazarin Filho joseespiriki at gmail.com
Wed Aug 7 02:00:33 UTC 2019


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
<David.Laight at aculab.com> 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 <joseespiriki at gmail.com>
> > > ---
> > >  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)
>


More information about the devel mailing list