[PATCH v2] ARM: allow, but warn, when issuing ioremap() on RAM

From: Felipe Contreras
Date: Thu Oct 07 2010 - 08:29:30 EST


Many drivers are broken, and there's no alternative in sight. Such a big
change should stay as a warning for now, and only later should it
actually fail.

The drivers are not doing something correct, we get it, but for now it's
better to allow them to work (they do 99% of the time anyway) rather
than to force everyone to revert this patch in their internal trees
until there's a solution. A slightly broken functionality is better than
no functionality at all.

A warning lets people know that what they are doing is not right, and
they should fix it.

Cc: Han Jonghun <jonghun79.han@xxxxxxxxx>
Cc: Hemant Pedanekar <hemantp@xxxxxx>
Cc: Arnd Hannemann <arnd@xxxxxxxxxx>
Cc: Uwe Kleine-KÃnig <u.kleine-koenig@xxxxxxxxxxxxxx>
Cc: Omar Ramirez Luna <omar.ramirez@xxxxxx>
Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx>
---
arch/arm/mm/ioremap.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)

For issues related to this:
http://article.gmane.org/gmane.linux.ports.arm.kernel/84454
http://article.gmane.org/gmane.linux.ports.sh.devel/8560
http://www.spinics.net/lists/linux-fbdev/msg01745.html
http://article.gmane.org/gmane.linux.drivers.video-input-infrastructure/22271

diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index ab50627..a168673 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -202,10 +202,9 @@ void __iomem * __arm_ioremap_pfn_caller(unsigned long pfn,
return NULL;

/*
- * Don't allow RAM to be mapped - this causes problems with ARMv6+
+ * This causes problems with ARMv6+. Will be disallowed soon.
*/
- if (WARN_ON(pfn_valid(pfn)))
- return NULL;
+ WARN_ON(pfn_valid(pfn));

type = get_mem_type(mtype);
if (!type)
--
1.7.3.1.2.g7fe2b

--
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/