Re: [PATCH] staging: ks7010: clean up code

From: Joe Perches
Date: Sat Mar 04 2017 - 01:39:00 EST


On Sat, 2017-03-04 at 08:28 +0200, Ernestas Kulik wrote:
> On Fri, 2017-03-03 at 17:23-0800, Joe Perches wrote:
>
> > On Fri, 2017-03-03 at 22:58 +0200, Ernestas Kulik wrote:
> >
> > > This fixes type warnings generated by sparse, replaces instances of
> > > ntohs() with be16_to_cpu() and removes unused fields in structs.
> >
> > There's no real need to convert ntohs to be16_to_cpu
>
> I noticed a patch that was merged that replaces calls to these with the
> more âgenericâ be16_to_cpu(), but I can revert that.
>
> This kind of conversion also happened in SeaBIOS, but itâs not exactly
> the same thing as here.
>
> > > diff --git a/drivers/staging/ks7010/ks7010_sdio.c b/drivers/staging/ks7010/ks7010_sdio.c
> >
> > []
> > >
> > > @@ -297,7 +297,8 @@ static int write_to_device(struct ks_wlan_private *priv, unsigned char *buffer,
> > > hdr = (struct hostif_hdr *)buffer;
> > >
> > > DPRINTK(4, "size=%d\n", hdr->size);
> > > - if (hdr->event < HIF_DATA_REQ || HIF_REQ_MAX < hdr->event) {
> > > + if (le16_to_cpu(hdr->event) < HIF_DATA_REQ ||
> > > + HIF_REQ_MAX < le16_to_cpu(hdr->event)) {
> > >
> >
> > This isn't mentioned and doesn't match the commit message
>
> It is and it does, but the commit message is a bit vague. Iâll try to
> expand it.

Not really.

struct hostif_hdr.event is declared at uint16_t
and not as __le16 so I believe this is incorrect
and actually introduces a sparse error.