Russell King - ARM Linux had written, on 10/07/2010 01:56 PM, the following:
On Thu, Oct 07, 2010 at 07:17:08AM -0500, Menon, Nishanth wrote:
-----Original Message-----
From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap-
owner@xxxxxxxxxxxxxxx] On Behalf Of G, Manjunath Kondaiah
Sent: Tuesday, September 21, 2010 5:01 AM
To: linux-omap@xxxxxxxxxxxxxxx
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-mtd@xxxxxxxxxxxxxxxxxxx
Subject: [PATCH v2 09/10] OMAP2/3: Convert write/read functions to raw
read/write
Following sparse warnings exists due to use of writel/w and readl/w
functions.
This patch fixes the sparse warnings by converting readl/w functions usage
into
__raw_readl/__raw_readw functions.
Apologies on bringing up an old topic here -> Is'nt it better to fix
readl/w or writel/w than replacing it with __raw_readl/w etc?
No. If you're getting sparse warnings its because _you_ are using
readl/writel wrongly.
They take a void __iomem pointer, not a u32, unsigned long, int, or
even a void pointer.
void __iomem *p;
...
readl(p);
unrolls to:
({ u32 __v = ({ u32 __v = (( __u32)(__le32)(( __le32) ((void)0,
*(volatile unsigned int *)((p))))); __v; }); __asm__ __volatile__ ("mcr
p15,
, %0, c7, c10, 5" : : "r" (0) : "memory"); __v; });
({ u32 __v = ({ u32 __v
seems to be the obvious cause of sparse warnings such as that attempted
to be fixed in [1]
warning: symbol '__v' shadows an earlier one
my comment being that by moving {read,write}[wlb] to __raw versions dont
solve the real issue of namespace here. fix should be in
arch/arm/include/asm/io.h IMHO. so that there are no overlaps as this.
[1]http://marc.info/?l=linux-omap&m=128506333803725&w=2
--
Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html