From: venkatesh.pallipadi@intel.com
To: mingo@elte.hu, tglx@linutronix.de, hpa@zytor.com
Cc: linux-kernel@vger.kernel.org, suresh.b.siddha@intel.com,
Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Subject: [patch 2/4] x86: PAT Change /dev/mem mmap with O_SYNC to use UC_MINUS
Date: Wed, 20 Aug 2008 16:45:52 -0700 [thread overview]
Message-ID: <20080820234604.469656000@intel.com> (raw)
In-Reply-To: 20080820234550.923970000@intel.com
[-- Attachment #1: osync_as_ucminus.patch --]
[-- Type: text/plain, Size: 2332 bytes --]
All kernel mappings like ioremap(), etc uses UC_MINUS as the type. /dev/mem
mappings with /dev/mem being opened with O_SYNC however was using UC,
resulting in a conflict with /dev/mem mmap failing. This seems to be
affecting some apps (one being flashrom) which are using O_SYNC and which were
working before.
Switch /dev/mem with O_SYNC also to UC_MINUS.
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
---
arch/x86/mm/pat.c | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
Index: tip/arch/x86/mm/pat.c
===================================================================
--- tip.orig/arch/x86/mm/pat.c 2008-08-20 14:25:18.000000000 -0700
+++ tip/arch/x86/mm/pat.c 2008-08-20 14:26:35.000000000 -0700
@@ -390,14 +390,6 @@ int free_memtype(u64 start, u64 end)
}
-/*
- * /dev/mem mmap interface. The memtype used for mapping varies:
- * - Use UC for mappings with O_SYNC flag
- * - Without O_SYNC flag, if there is any conflict in reserve_memtype,
- * inherit the memtype from existing mapping.
- * - Else use UC_MINUS memtype (for backward compatibility with existing
- * X drivers.
- */
pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
unsigned long size, pgprot_t vma_prot)
{
@@ -435,14 +427,14 @@ int phys_mem_access_prot_allowed(struct
unsigned long size, pgprot_t *vma_prot)
{
u64 offset = ((u64) pfn) << PAGE_SHIFT;
- unsigned long flags = _PAGE_CACHE_UC_MINUS;
+ unsigned long flags = -1;
int retval;
if (!range_is_allowed(pfn, size))
return 0;
if (file->f_flags & O_SYNC) {
- flags = _PAGE_CACHE_UC;
+ flags = _PAGE_CACHE_UC_MINUS;
}
#ifdef CONFIG_X86_32
@@ -465,13 +457,14 @@ int phys_mem_access_prot_allowed(struct
#endif
/*
- * With O_SYNC, we can only take UC mapping. Fail if we cannot.
+ * With O_SYNC, we can only take UC_MINUS mapping. Fail if we cannot.
+ *
* Without O_SYNC, we want to get
* - WB for WB-able memory and no other conflicting mappings
* - UC_MINUS for non-WB-able memory with no other conflicting mappings
* - Inherit from confliting mappings otherwise
*/
- if (flags != _PAGE_CACHE_UC_MINUS) {
+ if (flags != -1) {
retval = reserve_memtype(offset, offset + size, flags, NULL);
} else {
retval = reserve_memtype(offset, offset + size, -1, &flags);
--
next prev parent reply other threads:[~2008-08-21 0:12 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-20 23:45 [patch 0/4] PAT Misc updates venkatesh.pallipadi
2008-08-20 23:45 ` [patch 1/4] x86: PAT proper tracking of set_memory_uc and friends venkatesh.pallipadi
2008-08-20 23:45 ` venkatesh.pallipadi [this message]
2008-08-20 23:45 ` [patch 3/4] x86: PAT Update validate_pat_support for intel CPUs venkatesh.pallipadi
2008-08-26 7:05 ` Dave Airlie
2008-08-26 23:03 ` Pallipadi, Venkatesh
2008-08-27 5:30 ` Brice Goglin
2008-08-29 22:59 ` Pallipadi, Venkatesh
2008-08-20 23:45 ` [patch 4/4] x86: PAT documentation updates with debug info venkatesh.pallipadi
2008-08-21 11:30 ` [patch 0/4] PAT Misc updates Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080820234604.469656000@intel.com \
--to=venkatesh.pallipadi@intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=suresh.b.siddha@intel.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.