Messages in this thread Patch in this message | | | Date | Thu, 17 Jan 2008 21:56:33 +0100 | From | Ingo Molnar <> | Subject | Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes |
| |
* H. Peter Anvin <hpa@zytor.com> 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 <mingo@elte.hu>
Signed-off-by: Ingo Molnar <mingo@elte.hu> --- 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) {
| |