On Mon, 1 May 2017 19:59:44 +1000 "Tobin C. Harding" <me@xxxxxxxx> wrote: > On Sat, Apr 29, 2017 at 07:54:30PM +0200, Cezary Gapinski wrote: > > Sparse spits out a warnings about __le16 and unsigned short > > assignment. Change the type of size and event members of struct > > hostif_hdr to __le16 and correct conversion to the proper cpu type. > > > > Signed-off-by: Cezary Gapinski <gapalinux@xxxxxxxxx> > > After discussion on kernelnewbies mailing list and thinking about this > for a couple of days I am now of the opinion that this patch is > merge-able. I am probably not fully qualified to say so but no one > else appears to be super active on this driver. If I am wrong, I'll be > here to fix it up :) > > Reviewed-by: Tobin C. Harding <me@xxxxxxxx> > > Good work Cezsary, apologies for the wish-washy replies. I'm learning > also ;) > > Good luck, > Tobin. Hi Tobin, nice to know that you also thinking about this fixes. I think that is just a first step because I noticed much more warning with big/little-endian issues and perhaps no one else want to touch this. I'm also here to help if it is something will be incorrect ;)." Sorry for my previous messages. Sometimes I forget about crtl+s will sending my e-mails, so if you received other messages just ignore it. > > --- > > drivers/staging/ks7010/ks7010_sdio.c | 10 ++++++---- > > drivers/staging/ks7010/ks_hostif.h | 4 ++-- > > 2 files changed, 8 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/staging/ks7010/ks7010_sdio.c > > b/drivers/staging/ks7010/ks7010_sdio.c index ec11799..e3a134d 100644 > > --- a/drivers/staging/ks7010/ks7010_sdio.c > > +++ b/drivers/staging/ks7010/ks7010_sdio.c > > @@ -269,7 +269,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 || > > + le16_to_cpu(hdr->event) > HIF_REQ_MAX) { > > DPRINTK(1, "unknown event=%04X\n", hdr->event); > > return 0; > > } > > @@ -327,13 +328,14 @@ int ks_wlan_hw_tx(struct ks_wlan_private > > *priv, void *p, unsigned long size, > > hdr = (struct hostif_hdr *)p; > > > > - if (hdr->event < HIF_DATA_REQ || HIF_REQ_MAX < hdr->event) > > { > > + if (le16_to_cpu(hdr->event) < HIF_DATA_REQ || > > + le16_to_cpu(hdr->event) > HIF_REQ_MAX) { > > DPRINTK(1, "unknown event=%04X\n", hdr->event); > > return 0; > > } > > > > /* add event to hostt buffer */ > > - priv->hostt.buff[priv->hostt.qtail] = hdr->event; > > + priv->hostt.buff[priv->hostt.qtail] = > > le16_to_cpu(hdr->event); priv->hostt.qtail = (priv->hostt.qtail + > > 1) % SME_EVENT_BUFF_SIZE; > > DPRINTK(4, "event=%04X\n", hdr->event); > > @@ -403,7 +405,7 @@ static void ks_wlan_hw_rx(struct > > ks_wlan_private *priv, uint16_t size) > > hdr = (struct hostif_hdr *)&rx_buffer->data[0]; > > rx_buffer->size = le16_to_cpu(hdr->size) + > > sizeof(hdr->size); > > - event = hdr->event; > > + event = le16_to_cpu(hdr->event); > > inc_rxqtail(priv); > > > > ret = ks7010_sdio_writeb(priv, READ_STATUS, > > REG_STATUS_IDLE); diff --git a/drivers/staging/ks7010/ks_hostif.h > > b/drivers/staging/ks7010/ks_hostif.h index d773432..7e4d1aa 100644 > > --- a/drivers/staging/ks7010/ks_hostif.h > > +++ b/drivers/staging/ks7010/ks_hostif.h > > @@ -62,8 +62,8 @@ > > */ > > > > struct hostif_hdr { > > - u16 size; > > - u16 event; > > + __le16 size; > > + __le16 event; > > } __packed; > > > > struct hostif_data_request_t { > > -- > > 2.7.4 > > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel