From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: LKML <linux-kernel@vger.kernel.org>, Ian Campbell <ijc@hellion.org.uk>
Subject: [PATCH 20 of 31] xen: unify pte operations on machine frames
Date: Mon, 17 Mar 2008 16:37:11 -0700 [thread overview]
Message-ID: <f7b7c9e73d61cb7001a5.1205797031@localhost> (raw)
In-Reply-To: <patchbomb.1205797011@localhost>
Xen's pte operations on mfns can be unified like the kernel's pfn operations.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
---
include/xen/page.h | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/include/xen/page.h b/include/xen/page.h
--- a/include/xen/page.h
+++ b/include/xen/page.h
@@ -125,37 +125,37 @@
#define virt_to_mfn(v) (pfn_to_mfn(PFN_DOWN(__pa(v))))
#define mfn_to_virt(m) (__va(mfn_to_pfn(m) << PAGE_SHIFT))
-#ifdef CONFIG_X86_PAE
-#define pte_mfn(_pte) (((_pte).pte_low >> PAGE_SHIFT) | \
- (((_pte).pte_high & 0xfff) << (32-PAGE_SHIFT)))
+static inline unsigned long pte_mfn(pte_t pte)
+{
+ return (pte.pte & ~_PAGE_NX) >> PAGE_SHIFT;
+}
static inline pte_t mfn_pte(unsigned long page_nr, pgprot_t pgprot)
{
pte_t pte;
- pte.pte_high = (page_nr >> (32 - PAGE_SHIFT)) |
- (pgprot_val(pgprot) >> 32);
- pte.pte_high &= (__supported_pte_mask >> 32);
- pte.pte_low = ((page_nr << PAGE_SHIFT) | pgprot_val(pgprot));
- pte.pte_low &= __supported_pte_mask;
+ pte.pte = ((phys_addr_t)page_nr << PAGE_SHIFT) |
+ (pgprot_val(pgprot) & __supported_pte_mask);
return pte;
}
-static inline unsigned long long pte_val_ma(pte_t x)
+static inline pteval_t pte_val_ma(pte_t pte)
{
- return x.pte;
+ return pte.pte;
}
+
+static inline pte_t __pte_ma(pteval_t x)
+{
+ return (pte_t) { .pte = x };
+}
+
+#ifdef CONFIG_X86_PAE
#define pmd_val_ma(v) ((v).pmd)
#define pud_val_ma(v) ((v).pgd.pgd)
-#define __pte_ma(x) ((pte_t) { .pte = (x) })
#define __pmd_ma(x) ((pmd_t) { (x) } )
#else /* !X86_PAE */
-#define pte_mfn(_pte) ((_pte).pte_low >> PAGE_SHIFT)
-#define mfn_pte(pfn, prot) __pte_ma(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
-#define pte_val_ma(x) ((x).pte)
#define pmd_val_ma(v) ((v).pud.pgd.pgd)
-#define __pte_ma(x) ((pte_t) { (x) } )
#endif /* CONFIG_X86_PAE */
#define pgd_val_ma(x) ((x).pgd)
next prev parent reply other threads:[~2008-03-18 5:31 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-17 23:36 [PATCH 00 of 31] x86: unification and xen updates Jeremy Fitzhardinge
2008-03-17 23:36 ` [PATCH 01 of 31] xen: fix RMW when unmasking events Jeremy Fitzhardinge
2008-03-17 23:36 ` [PATCH 02 of 31] xen: fix UP setup of shared_info Jeremy Fitzhardinge
2008-03-17 23:36 ` [PATCH 03 of 31] x86: convert pgalloc_64.h from macros to inlines Jeremy Fitzhardinge
2008-03-17 23:36 ` [PATCH 04 of 31] x86: add common mm/pgtable.c Jeremy Fitzhardinge
2008-03-17 23:36 ` [PATCH 05 of 31] x86: put paravirt stubs into common asm/pgalloc.h Jeremy Fitzhardinge
2008-03-17 23:36 ` [PATCH 06 of 31] x86: move pte functions " Jeremy Fitzhardinge
2008-03-17 23:36 ` [PATCH 07 of 31] x86: move pmd " Jeremy Fitzhardinge
2008-03-17 23:36 ` [PATCH 08 of 31] x86: move pgalloc pud and pgd operations into common place Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 09 of 31] x86: move all the pgd_list handling to one place Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 10 of 31] x86: rename paravirt_alloc_pt etc after the pagetable structure Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 11 of 31] x86: add pud_alloc for 4-level pagetables Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 12 of 31] x86/pgtable.h: demacro ptep_set_access_flags Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 13 of 31] x86/pgtable.h: demacro ptep_test_and_clear_young Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 14 of 31] x86/pgtable.h: demacro ptep_clear_flush_young Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 15 of 31] x86: demacro pgalloc paravirt stubs Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 16 of 31] xen: use appropriate pte types Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 17 of 31] xen: make use of pte_t union Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 18 of 31] xen: unify pte operations Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 19 of 31] xen: use phys_addr_t when referring to physical addresses Jeremy Fitzhardinge
2008-03-17 23:37 ` Jeremy Fitzhardinge [this message]
2008-03-17 23:37 ` [PATCH 21 of 31] xen: make sure iret faults are trapped Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 22 of 31] x86: unify KERNEL_PGD_PTRS Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 23 of 31] x86: unify pgd ctor/dtor Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 24 of 31] xen: add support for callbackops hypercall Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 25 of 31] x86: only enable interrupts when kernel state has been set up Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 26 of 31] xen: support sysenter/sysexit if hypervisor does Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 27 of 31] xen: implement a debug-interrupt handler Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 28 of 31] xen: make sure retriggered events are set pending Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 29 of 31] xen: short-cut for recursive event handling Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 30 of 31] xen: no need for domU to worry about MCE/MCA Jeremy Fitzhardinge
2008-03-17 23:37 ` [PATCH 31 of 31] xen: jump to iret fixup Jeremy Fitzhardinge
2008-03-18 21:33 ` [PATCH 00 of 31] x86: unification and xen updates Zachary Amsden
2008-03-18 21:37 ` Jeremy Fitzhardinge
2008-03-19 9:22 ` Ian Campbell
2008-03-19 15:11 ` Jeremy Fitzhardinge
2008-03-19 16:50 ` Ian Campbell
2008-03-19 18:45 ` Jeremy Fitzhardinge
2008-03-19 19:07 ` Ingo Molnar
2008-03-19 19:19 ` Jeremy Fitzhardinge
2008-03-19 19:05 ` Ingo Molnar
2008-03-19 19:46 ` Ingo Molnar
2008-03-19 20:02 ` Jeremy Fitzhardinge
2008-03-19 20:09 ` Ingo Molnar
2008-03-19 21:12 ` Jeremy Fitzhardinge
2008-03-19 21:33 ` Ingo Molnar
2008-03-19 21:54 ` Jeremy Fitzhardinge
2008-03-19 22:00 ` Ingo Molnar
2008-03-19 21:58 ` Jeremy Fitzhardinge
2008-03-19 22:04 ` Ingo Molnar
2008-03-19 22:15 ` Jeremy Fitzhardinge
2008-03-19 23:52 ` Ingo Molnar
2008-03-20 20:24 ` Jeremy Fitzhardinge
2008-03-21 13:17 ` Ingo Molnar
2008-03-21 14:35 ` Ingo Molnar
2008-03-21 15:15 ` Jeremy Fitzhardinge
2008-03-21 15:25 ` Ingo Molnar
2008-03-22 2:34 ` Jeremy Fitzhardinge
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=f7b7c9e73d61cb7001a5.1205797031@localhost \
--to=jeremy@goop.org \
--cc=ijc@hellion.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome