Re: [PATCH v3 7/8] video: xilinxfb: Fix sparse warnings

From: Timur Tabi
Date: Fri May 31 2013 - 09:25:55 EST


On 05/31/2013 07:55 AM, Michal Simek wrote:

> diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c
> index f3d4a69..e27a4f6 100644
> --- a/drivers/video/xilinxfb.c
> +++ b/drivers/video/xilinxfb.c
> @@ -131,7 +131,7 @@ struct xilinxfb_drvdata {
> dcr_host_t dcr_host;
> unsigned int dcr_len;
> #endif
> - void *fb_virt; /* virt. address of the frame buffer */
> + void __iomem *fb_virt; /* virt. address of the frame buffer */
> dma_addr_t fb_phys; /* phys. address of the frame buffer */
> int fb_alloced; /* Flag, was the fb memory alloced? */
>
> @@ -273,8 +273,10 @@ static int xilinxfb_assign(struct platform_device *pdev,
> drvdata->fb_virt = ioremap(pdata->fb_phys, fbsize);
> } else {
> drvdata->fb_alloced = 1;
> - drvdata->fb_virt = dma_alloc_coherent(dev, PAGE_ALIGN(fbsize),
> - &drvdata->fb_phys, GFP_KERNEL);
> + drvdata->fb_virt = (__force void __iomem *)
> + dma_alloc_coherent(dev, PAGE_ALIGN(fbsize),
> + &drvdata->fb_phys,
> + GFP_KERNEL);

I think this is wrong. At least, it would be on PowerPC.
dma_alloc_coherent() allocates regular RAM, not I/O memory. So it
should not be __iomem.



--
Timur Tabi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/