Re: [Outreachy kernel] Re: [PATCH v2 4/6] staging: fbtft: Fix sparse warnings of incorrect type in assignment

From: Alison Schofield
Date: Sat Mar 04 2017 - 19:06:47 EST


On Thu, Mar 02, 2017 at 02:26:37PM +0100, Noralf Trønnes wrote:
>
> Den 02.03.2017 14.04, skrev simran singhal:
> >This patch fixes the following sparse warnings:
> >
> >drivers/staging/fbtft/fbtft-bus.c:166:36: warning: incorrect type in assignment (different base types)
> >drivers/staging/fbtft/fbtft-bus.c:166:36: expected unsigned short [unsigned] [short] [usertype] <noident>
> >drivers/staging/fbtft/fbtft-bus.c:166:36: got restricted __be16 [usertype] <noident>
> >
> >drivers/staging/fbtft/fbtft-io.c:74:29: warning: incorrect type in assignment (different base types)
> >drivers/staging/fbtft/fbtft-io.c:74:29: expected unsigned long long [unsigned] [long] [long long] [usertype] <noident>
> >drivers/staging/fbtft/fbtft-io.c:74:29: got restricted __be64 [usertype] <noident>
> >
> >Signed-off-by: simran singhal <singhalsimran0@xxxxxxxxx>
> >---
> > v2:
> > -changed commit message
> >
> > drivers/staging/fbtft/fbtft-bus.c | 2 +-
> > drivers/staging/fbtft/fbtft-io.c | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
> >
> >diff --git a/drivers/staging/fbtft/fbtft-bus.c b/drivers/staging/fbtft/fbtft-bus.c
> >index ec45043..df2223e 100644
> >--- a/drivers/staging/fbtft/fbtft-bus.c
> >+++ b/drivers/staging/fbtft/fbtft-bus.c
> >@@ -163,7 +163,7 @@ int fbtft_write_vmem16_bus8(struct fbtft_par *par, size_t offset, size_t len)
> > to_copy, remain - to_copy);
> > for (i = 0; i < to_copy; i++)
> >- txbuf16[i] = cpu_to_be16(vmem16[i]);
> >+ txbuf16[i] = vmem16[i];
>
> This change breaks functionality on little endian machines like
> the Raspberry Pi.
>
>
> Noralf.
>

Hi Simran,

It's probably good to get back to this one while we have Noralf's
attention.

While the change above - in fbtft-bus.c is a problem, the change
below in fbtft-io.c looks ok. So, compare what you did. You can't
*not* do the endian conversion.

This is a cleanup change, a cosmetic change. There is no underlying
bug, so you just need to get the typing correct w/out affecting
behavior.

BTW: I think it's OK to pull this one out and send a v3 of this alone.
That would mean abandoning the patchset and doing them one at a time.
They are all in different drivers anyway.

alisons



> > vmem16 = vmem16 + to_copy;
> > ret = par->fbtftops.write(par, par->txbuf.buf,
> >diff --git a/drivers/staging/fbtft/fbtft-io.c b/drivers/staging/fbtft/fbtft-io.c
> >index d868405..ffb9a3b 100644
> >--- a/drivers/staging/fbtft/fbtft-io.c
> >+++ b/drivers/staging/fbtft/fbtft-io.c
> >@@ -71,7 +71,7 @@ int fbtft_write_spi_emulate_9(struct fbtft_par *par, void *buf, size_t len)
> > src++;
> > }
> > tmp |= ((*src & 0x0100) ? 1 : 0);
> >- *(u64 *)dst = cpu_to_be64(tmp);
> >+ *(__be64 *)dst = cpu_to_be64(tmp);
> > dst += 8;
> > *dst++ = (u8)(*src++ & 0x00FF);
> > added++;
>
> --
> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@xxxxxxxxxxxxxxxxx
> To post to this group, send email to outreachy-kernel@xxxxxxxxxxxxxxxxx
> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/fe8d6a85-3d4e-8019-937b-22389b942da3%40tronnes.org.
> For more options, visit https://groups.google.com/d/optout.