Hi Ryan, On 18.10.2016 20:03, Ryan Swan wrote: > sparse produced > warning: incorrect type in argument 2 (different address spaces) > expected void const volatile [noderef] <asn:2>*src > got struct slic_stats *stats > > casting argument 2 to what is expected by memcpy_fromio() fixed this > > Signed-off-by: Ryan Swan <ryan@xxxxxxxxxxxx> > --- > drivers/staging/slicoss/slicoss.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c > index 2802b90..7c6feb1 100644 > --- a/drivers/staging/slicoss/slicoss.c > +++ b/drivers/staging/slicoss/slicoss.c > @@ -1057,7 +1057,7 @@ static void slic_upr_request_complete(struct adapter *adapter, u32 isr) > if (stats->rcv_drops > old->rcv_drops) > adapter->rcv_drops += (stats->rcv_drops - > old->rcv_drops); > - memcpy_fromio(old, stats, sizeof(*stats)); > + memcpy_fromio(old, (void __iomem *)stats, sizeof(*stats)); > break; > } > case SLIC_UPR_RLSR: > The issue here is the use of memcpy_fromio() while it actually is not io but dma memory that we copy from. Regards, Lino _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel