* H. Peter Anvin <[EMAIL PROTECTED]> wrote:

>> as an intermediate fix, how about following the attribute of the 
>> already existing mapping, instead of rejecting the ioremap due to the 
>> conflict? I.e. something like below?
>
> The correct behaviour probably would be to go with the most 
> restrictive caching behaviour, i.e. uncached in this case.

yeah. Or, to be on the safest side, forcing UC in this case. We'll have 
a warning message anyway, so it wont go unnoticed - but we wont break 
drivers.

        Ingo

--------->
Subject: x86: patches/pat-conflict-fixup.patch
From: Ingo Molnar <[EMAIL PROTECTED]>

Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
---
 arch/x86/mm/pat.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Index: linux-x86.q/arch/x86/mm/pat.c
===================================================================
--- linux-x86.q.orig/arch/x86/mm/pat.c
+++ linux-x86.q/arch/x86/mm/pat.c
@@ -174,7 +174,12 @@ int reserve_mattr(u64 start, u64 end, un
                                        current->comm, current->pid,
                                        start, end,
                                        cattr_name(attr), cattr_name(ml->attr));
-                               err = -EBUSY;
+                               /*
+                                * Force UC on a conflict:
+                                */
+                               ma->attr = _PAGE_UC;
+                               if (*fattr)
+                                       *fattr = _PAGE_UC;
                                break;
                        }
                } else if (ml->start >= end) {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to