# HG changeset patch
# User Michael.Fetterman@xxxxxxxxxxxx
# Node ID b3f8d3158a1c83ae48b5b65ce1b792cc3ebb98e3
# Parent 367b9ca30e8864f0402b83002d9d50ad8e1da650
# Parent 7363637e2721206caf65521a6677e447bbd663d8
merge
diff -r 367b9ca30e88 -r b3f8d3158a1c
linux-2.6-xen-sparse/arch/xen/x86_64/ia32/Makefile
--- a/linux-2.6-xen-sparse/arch/xen/x86_64/ia32/Makefile Mon Nov 28
13:08:53 2005
+++ b/linux-2.6-xen-sparse/arch/xen/x86_64/ia32/Makefile Mon Nov 28
14:30:48 2005
@@ -20,6 +20,12 @@
$(obj)/syscall32.o: $(src)/syscall32.c \
$(foreach F,int80 sysenter syscall,$(obj)/vsyscall-$F.so)
+
+# syscall32.c currently contains inline asm which has .incbin directives.
+# This defeats ccache's signature checks, and also breaks distcc.
+# Make sure neither ccache nor distcc compiles this file.
+#
+$(obj)/syscall32.o: override CC := env CCACHE_DISABLE=1 DISTCC_HOSTS=localhost
$(CC)
# Teach kbuild about targets
targets := $(foreach F,int80 sysenter syscall,vsyscall-$F.o vsyscall-$F.so)
diff -r 367b9ca30e88 -r b3f8d3158a1c xen/arch/x86/shadow.c
--- a/xen/arch/x86/shadow.c Mon Nov 28 13:08:53 2005
+++ b/xen/arch/x86/shadow.c Mon Nov 28 14:30:48 2005
@@ -1075,8 +1075,8 @@
entry->next = d->arch.out_of_sync;
d->arch.out_of_sync = entry;
- FSH_LOG("mark_out_of_sync(va=%lx -> writable_pl1e=%lx)",
- va, entry->writable_pl1e);
+ FSH_LOG("%s(va=%lx -> writable_pl1e=%lx)",
+ __func__, va, entry->writable_pl1e);
}
/*
diff -r 367b9ca30e88 -r b3f8d3158a1c xen/arch/x86/shadow32.c
--- a/xen/arch/x86/shadow32.c Mon Nov 28 13:08:53 2005
+++ b/xen/arch/x86/shadow32.c Mon Nov 28 14:30:48 2005
@@ -1411,7 +1411,7 @@
}
unsigned long
-gpfn_to_mfn_foreign(struct domain *d, unsigned long gpfn)
+get_mfn_from_pfn_foreign(struct domain *d, unsigned long gpfn)
{
unsigned long va, tabpfn;
l1_pgentry_t *l1, l1e;
@@ -1419,7 +1419,7 @@
ASSERT(shadow_mode_translate(d));
- perfc_incrc(gpfn_to_mfn_foreign);
+ perfc_incrc(get_mfn_from_pfn_foreign);
va = gpfn << PAGE_SHIFT;
tabpfn = pagetable_get_pfn(d->arch.phys_table);
@@ -1428,8 +1428,8 @@
unmap_domain_page(l2);
if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) )
{
- printk("gpfn_to_mfn_foreign(d->id=%d, gpfn=%lx) => 0 l2e=%" PRIpte
"\n",
- d->domain_id, gpfn, l2e_get_intpte(l2e));
+ printk("%s(d->id=%d, gpfn=%lx) => 0 l2e=%" PRIpte "\n",
+ __func__, d->domain_id, gpfn, l2e_get_intpte(l2e));
return INVALID_MFN;
}
l1 = map_domain_page(l2e_get_pfn(l2e));
@@ -1437,14 +1437,14 @@
unmap_domain_page(l1);
#if 0
- printk("gpfn_to_mfn_foreign(d->id=%d, gpfn=%lx) => %lx tabpfn=%lx l2e=%lx
l1tab=%lx, l1e=%lx\n",
- d->domain_id, gpfn, l1_pgentry_val(l1e) >> PAGE_SHIFT, tabpfn, l2e,
l1tab, l1e);
+ printk("%s(d->id=%d, gpfn=%lx) => %lx tabpfn=%lx l2e=%lx l1tab=%lx,
l1e=%lx\n",
+ __func__, d->domain_id, gpfn, l1_pgentry_val(l1e) >> PAGE_SHIFT,
tabpfn, l2e, l1tab, l1e);
#endif
if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) )
{
- printk("gpfn_to_mfn_foreign(d->id=%d, gpfn=%lx) => 0 l1e=%" PRIpte
"\n",
- d->domain_id, gpfn, l1e_get_intpte(l1e));
+ printk("%s(d->id=%d, gpfn=%lx) => 0 l1e=%" PRIpte "\n",
+ __func__, d->domain_id, gpfn, l1e_get_intpte(l1e));
return INVALID_MFN;
}
@@ -1933,8 +1933,8 @@
entry->next = d->arch.out_of_sync;
d->arch.out_of_sync = entry;
- FSH_LOG("mark_out_of_sync(va=%lx -> writable_pl1e=%lx)",
- va, entry->writable_pl1e);
+ FSH_LOG("%s(va=%lx -> writable_pl1e=%lx)",
+ __func__, va, entry->writable_pl1e);
}
/*
diff -r 367b9ca30e88 -r b3f8d3158a1c xen/arch/x86/shadow_public.c
--- a/xen/arch/x86/shadow_public.c Mon Nov 28 13:08:53 2005
+++ b/xen/arch/x86/shadow_public.c Mon Nov 28 14:30:48 2005
@@ -1593,7 +1593,7 @@
}
unsigned long
-gpfn_to_mfn_foreign(struct domain *d, unsigned long gpfn)
+get_mfn_from_pfn_foreign(struct domain *d, unsigned long gpfn)
{
unsigned long va, tabpfn;
l1_pgentry_t *l1, l1e;
@@ -1601,7 +1601,7 @@
ASSERT(shadow_mode_translate(d));
- perfc_incrc(gpfn_to_mfn_foreign);
+ perfc_incrc(get_mfn_from_pfn_foreign);
va = gpfn << PAGE_SHIFT;
tabpfn = pagetable_get_pfn(d->arch.phys_table);
@@ -1610,8 +1610,8 @@
unmap_domain_page(l2);
if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) )
{
- printk("gpfn_to_mfn_foreign(d->id=%d, gpfn=%lx) => 0 l2e=%" PRIpte
"\n",
- d->domain_id, gpfn, l2e_get_intpte(l2e));
+ printk("%s(d->id=%d, gpfn=%lx) => 0 l2e=%" PRIpte "\n",
+ __func__, d->domain_id, gpfn, l2e_get_intpte(l2e));
return INVALID_MFN;
}
l1 = map_domain_page(l2e_get_pfn(l2e));
@@ -1619,14 +1619,14 @@
unmap_domain_page(l1);
#if 0
- printk("gpfn_to_mfn_foreign(d->id=%d, gpfn=%lx) => %lx tabpfn=%lx l2e=%lx
l1tab=%lx, l1e=%lx\n",
- d->domain_id, gpfn, l1_pgentry_val(l1e) >> PAGE_SHIFT, tabpfn, l2e,
l1tab, l1e);
+ printk("%s(d->id=%d, gpfn=%lx) => %lx tabpfn=%lx l2e=%lx l1tab=%lx,
l1e=%lx\n",
+ __func__, d->domain_id, gpfn, l1_pgentry_val(l1e) >> PAGE_SHIFT,
tabpfn, l2e, l1tab, l1e);
#endif
if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) )
{
- printk("gpfn_to_mfn_foreign(d->id=%d, gpfn=%lx) => 0 l1e=%" PRIpte
"\n",
- d->domain_id, gpfn, l1e_get_intpte(l1e));
+ printk("%s(d->id=%d, gpfn=%lx) => 0 l1e=%" PRIpte "\n",
+ __func__, d->domain_id, gpfn, l1e_get_intpte(l1e));
return INVALID_MFN;
}
diff -r 367b9ca30e88 -r b3f8d3158a1c xen/common/grant_table.c
--- a/xen/common/grant_table.c Mon Nov 28 13:08:53 2005
+++ b/xen/common/grant_table.c Mon Nov 28 14:30:48 2005
@@ -234,7 +234,7 @@
/* rmb(); */ /* not on x86 */
- frame = __gpfn_to_mfn_foreign(rd, sha->frame);
+ frame = __gpfn_to_mfn(rd, sha->frame);
if ( unlikely(!pfn_valid(frame)) ||
unlikely(!((dev_hst_ro_flags & GNTMAP_readonly) ?
diff -r 367b9ca30e88 -r b3f8d3158a1c xen/include/asm-x86/shadow.h
--- a/xen/include/asm-x86/shadow.h Mon Nov 28 13:08:53 2005
+++ b/xen/include/asm-x86/shadow.h Mon Nov 28 14:30:48 2005
@@ -283,26 +283,21 @@
/************************************************************************/
-#define __mfn_to_gpfn(_d, mfn) \
- ( (shadow_mode_translate(_d)) \
- ? get_pfn_from_mfn(mfn) \
+#define __mfn_to_gpfn(_d, mfn) \
+ ( (shadow_mode_translate(_d)) \
+ ? get_pfn_from_mfn(mfn) \
: (mfn) )
-#define __gpfn_to_mfn(_d, gpfn) \
- ({ \
- (shadow_mode_translate(_d)) \
- ? (((_d) == current->domain) ? \
- get_mfn_from_pfn(gpfn) : \
- gpfn_to_mfn_foreign((_d), (gpfn))) \
- : (gpfn); \
+#define __gpfn_to_mfn(_d, gpfn) \
+ ({ \
+ unlikely(shadow_mode_translate(_d)) \
+ ? (likely(current->domain == (_d)) \
+ ? get_mfn_from_pfn(gpfn) \
+ : get_mfn_from_pfn_foreign(_d, gpfn)) \
+ : (gpfn); \
})
-#define __gpfn_to_mfn_foreign(_d, gpfn) \
- ( (shadow_mode_translate(_d)) \
- ? gpfn_to_mfn_foreign(_d, gpfn) \
- : (gpfn) )
-
-extern unsigned long gpfn_to_mfn_foreign(
+extern unsigned long get_mfn_from_pfn_foreign(
struct domain *d, unsigned long gpfn);
/************************************************************************/
@@ -860,18 +855,7 @@
if ( l2e_get_flags(gpde) & _PAGE_PRESENT )
{
- if ( unlikely((current->domain != d) && !shadow_mode_external(d)) )
- {
- // Can't use __gpfn_to_mfn() if we don't have one of this domain's
- // page tables currently installed.
- // This isn't common -- it only happens during shadow mode setup
- // and mode changes.
- //
- mfn = gpfn_to_mfn_foreign(d, pfn);
- }
- else
- mfn = __gpfn_to_mfn(d, pfn);
-
+ mfn = __gpfn_to_mfn(d, pfn);
if ( VALID_MFN(mfn) && (mfn < max_page) )
hl2e = l1e_from_pfn(mfn, __PAGE_HYPERVISOR);
}
diff -r 367b9ca30e88 -r b3f8d3158a1c xen/include/xen/perfc_defn.h
--- a/xen/include/xen/perfc_defn.h Mon Nov 28 13:08:53 2005
+++ b/xen/include/xen/perfc_defn.h Mon Nov 28 14:30:48 2005
@@ -114,7 +114,7 @@
PERFCOUNTER_CPU(validate_hl2e_calls, "calls to validate_hl2e_change")
PERFCOUNTER_CPU(validate_hl2e_changes, "validate_hl2e makes changes")
PERFCOUNTER_CPU(exception_fixed, "pre-exception fixed")
-PERFCOUNTER_CPU(gpfn_to_mfn_foreign, "calls to gpfn_to_mfn_foreign")
+PERFCOUNTER_CPU(get_mfn_from_pfn_foreign, "calls to get_mfn_from_pfn_foreign")
PERFCOUNTER_CPU(remove_all_access, "calls to remove_all_access")
PERFCOUNTER_CPU(remove_write_access, "calls to remove_write_access")
PERFCOUNTER_CPU(remove_write_access_easy, "easy outs of remove_write_access")
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|