Mailing List Archive

Make set_pte_at and set_pte_at_sync macros instead of inline functions.
# HG changeset patch
# User chris@ubuntu.eng.hq.xensource.com
# Node ID 99a1f5dc75a9a8aa703588f423ce1bcaf2a6b8ec
# Parent 116b7c0a8534f1fee249267ccd4a69c62e61b376
Make set_pte_at and set_pte_at_sync macros instead of inline functions.
This avoids having to include sched.h to get a definition of init_mm.

Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>

diff -r 116b7c0a8534 -r 99a1f5dc75a9 linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h Tue Dec 13 16:26:33 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h Wed Dec 14 02:04:14 2005
@@ -15,26 +15,19 @@
*/
#define set_pte(pteptr, pteval) (*(pteptr) = pteval)

-inline static void set_pte_at(struct mm_struct *mm, unsigned long addr,
- pte_t *ptep, pte_t val )
-{
- if ( ((mm != current->mm) && (mm != &init_mm)) ||
- HYPERVISOR_update_va_mapping( (addr), (val), 0 ) )
- {
- set_pte(ptep, val);
- }
-}
+#define set_pte_at(_mm,addr,ptep,pteval) do { \
+ if (((_mm) != current->mm && (_mm) != &init_mm) || \
+ HYPERVISOR_update_va_mapping((addr), (pteval), 0)) \
+ set_pte((ptep), (pteval)); \
+} while (0)

-inline static void set_pte_at_sync(struct mm_struct *mm, unsigned long addr,
- pte_t *ptep, pte_t val )
-{
- if ( ((mm != current->mm) && (mm != &init_mm)) ||
- HYPERVISOR_update_va_mapping( (addr), (val), UVMF_INVLPG ) )
- {
- set_pte(ptep, val);
- xen_invlpg(addr);
- }
-}
+#define set_pte_at_sync(_mm,addr,ptep,pteval) do { \
+ if (((_mm) != current->mm && (_mm) != &init_mm) || \
+ HYPERVISOR_update_va_mapping((addr), (pteval), UVMF_INVLPG)) { \
+ set_pte((ptep), (pteval)); \
+ xen_invlpg((addr)); \
+ } \
+} while (0)

#define set_pte_atomic(pteptr, pteval) set_pte(pteptr,pteval)

diff -r 116b7c0a8534 -r 99a1f5dc75a9 linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-3level.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-3level.h Tue Dec 13 16:26:33 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-3level.h Wed Dec 14 02:04:14 2005
@@ -69,26 +69,19 @@
# define set_pte_atomic(pteptr,pteval) set_pte(pteptr,pteval)
#endif

-inline static void set_pte_at(struct mm_struct *mm, unsigned long addr,
- pte_t *ptep, pte_t val )
-{
- if ( ((mm != current->mm) && (mm != &init_mm)) ||
- HYPERVISOR_update_va_mapping( (addr), (val), 0 ) )
- {
- set_pte(ptep, val);
- }
-}
-
-inline static void set_pte_at_sync(struct mm_struct *mm, unsigned long addr,
- pte_t *ptep, pte_t val )
-{
- if ( ((mm != current->mm) && (mm != &init_mm)) ||
- HYPERVISOR_update_va_mapping( (addr), (val), UVMF_INVLPG ) )
- {
- set_pte(ptep, val);
- xen_invlpg(addr);
- }
-}
+#define set_pte_at(_mm,addr,ptep,pteval) do { \
+ if (((_mm) != current->mm && (_mm) != &init_mm) || \
+ HYPERVISOR_update_va_mapping((addr), (pteval), 0)) \
+ set_pte((ptep), (pteval)); \
+} while (0)
+
+#define set_pte_at_sync(_mm,addr,ptep,pteval) do { \
+ if (((_mm) != current->mm && (_mm) != &init_mm) || \
+ HYPERVISOR_update_va_mapping((addr), (pteval), UVMF_INVLPG)) { \
+ set_pte((ptep), (pteval)); \
+ xen_invlpg((addr)); \
+ } \
+} while (0)

#ifdef CONFIG_XEN_SHADOW_MODE
# define set_pmd(pmdptr,pmdval) \
diff -r 116b7c0a8534 -r 99a1f5dc75a9 linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h Tue Dec 13 16:26:33 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h Wed Dec 14 02:04:14 2005
@@ -266,15 +266,11 @@
return val & ~(_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED);
}

-inline static void set_pte_at(struct mm_struct *mm, unsigned long addr,
- pte_t *ptep, pte_t val )
-{
- if ( ((mm != current->mm) && (mm != &init_mm)) ||
- HYPERVISOR_update_va_mapping( (addr), (val), 0 ) )
- {
- set_pte(ptep, val);
- }
-}
+#define set_pte_at(_mm,addr,ptep,pteval) do { \
+ if (((_mm) != current->mm && (_mm) != &init_mm) || \
+ HYPERVISOR_update_va_mapping((addr), (pteval), 0)) \
+ set_pte((ptep), (pteval)); \
+} while (0)

#define pte_none(x) (!(x).pte)
#define pte_present(x) ((x).pte & (_PAGE_PRESENT | _PAGE_PROTNONE))

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog