Re: [PATCH] staging: slicoss: fix different address space warnings

From: Greg KH
Date: Tue Nov 15 2016 - 13:21:59 EST


On Tue, Nov 15, 2016 at 06:19:37PM +0100, Sergio Paracuellos wrote:
> This patch fix the following sparse warnings in slicoss driver:
> warning: incorrect type in assignment (different address spaces)
>
> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@xxxxxxxxx>
> ---
> drivers/staging/slicoss/slic.h | 7 ++++
> drivers/staging/slicoss/slicoss.c | 83 ++++++++++++++++++++++-----------------
> 2 files changed, 55 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/staging/slicoss/slic.h b/drivers/staging/slicoss/slic.h
> index 420546d..f76c0cd 100644
> --- a/drivers/staging/slicoss/slic.h
> +++ b/drivers/staging/slicoss/slic.h
> @@ -540,6 +540,13 @@ static inline void slic_flush_write(struct adapter *adapter)
> ioread32(adapter->regs + SLIC_REG_HOSTID);
> }
>
> +#define IOMEM_GET_FIELDADDR(base, member) \
> +({ \
> + char __iomem *_base = (char __iomem *)base; \
> + _base += offsetof(typeof(*base), member); \
> + (void __iomem *)_base; \
> +})

Really? Why? Shouldn't you be marking base as __iomem all the time?
That way you don't need this mess of a cast.

thanks,

greg k-h