From 76c861a001612a7c734ec75fb90d11d17e9e8d92 Mon Sep 17 00:00:00 2001 From: bouyer Date: Tue, 16 Oct 2007 20:31:57 +0000 Subject: Fix Xen kernel to silence a message on recursive Page Table Entries for level >= 3 (will send to Xen developers) Allow this package to build on x86_64. bump PKGREVISION. --- sysutils/xenkernel3/Makefile | 6 +++--- sysutils/xenkernel3/distinfo | 3 ++- sysutils/xenkernel3/patches/patch-ae | 39 ++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 sysutils/xenkernel3/patches/patch-ae diff --git a/sysutils/xenkernel3/Makefile b/sysutils/xenkernel3/Makefile index d9b2a672ca2..c6feace8a63 100644 --- a/sysutils/xenkernel3/Makefile +++ b/sysutils/xenkernel3/Makefile @@ -1,10 +1,10 @@ -# $NetBSD: Makefile,v 1.4 2007/10/09 19:19:15 martti Exp $ +# $NetBSD: Makefile,v 1.5 2007/10/16 20:31:57 bouyer Exp $ # VERSION= 3.1.0 DISTNAME= xen-${VERSION}-src PKGNAME= xenkernel3-${VERSION} -PKGREVISION= 1 +PKGREVISION= 2 CATEGORIES= sysutils MASTER_SITES= http://www.cl.cam.ac.uk/research/srg/netos/xen/downloads/ \ http://bits.xensource.com/oss-xen/release/${VERSION}/src.tgz/ @@ -14,7 +14,7 @@ MAINTAINER= bouyer@NetBSD.org HOMEPAGE= http://www.cl.cam.ac.uk/research/srg/netos/xen/ COMMENT= Xen3 Kernel -ONLY_FOR_PLATFORM= Linux-2.[46]*-i386 NetBSD-*-i386 +ONLY_FOR_PLATFORM= Linux-2.[46]*-i386 NetBSD-*-i386 Linux-2.[46]*-x86_64 NetBSD-*-x86_64 CONFLICTS= xenkernel30-* diff --git a/sysutils/xenkernel3/distinfo b/sysutils/xenkernel3/distinfo index 068ff567532..6ff9ee4ab2d 100644 --- a/sysutils/xenkernel3/distinfo +++ b/sysutils/xenkernel3/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.2 2007/08/17 17:26:03 bouyer Exp $ +$NetBSD: distinfo,v 1.3 2007/10/16 20:31:57 bouyer Exp $ SHA1 (xen-3.1.0-src.tgz) = fa4b54c36626f2cce9b15dc99cafda0b42c54777 RMD160 (xen-3.1.0-src.tgz) = 2fd65a3b81e522d0ed2d62fd11e5977167f1ceb3 @@ -7,6 +7,7 @@ SHA1 (patch-aa) = 1be644e7edd3735c2850d3e581002f53bd50eb59 SHA1 (patch-ab) = 58ba3a1ec8c1bbc895dd70d286eb5a70778b7c7f SHA1 (patch-ac) = 3eb6179c90090d5b05f97a66b50cf78ce50e6f56 SHA1 (patch-ad) = 0af2e62c4a1469d03b3999cf0864c62e28d95ed0 +SHA1 (patch-ae) = 3bba21641c64d572a845966e6600d686e6d86983 SHA1 (patch-ba) = a90ffef881c3fadcf3c25e4c638ef33158ec9e87 SHA1 (patch-bb) = 7338e5a512c909d4b043654dab882761de274f94 SHA1 (patch-bc) = fa35699da6ad2a4950418a02432c2ccdb5d34844 diff --git a/sysutils/xenkernel3/patches/patch-ae b/sysutils/xenkernel3/patches/patch-ae new file mode 100644 index 00000000000..0830d2d99f1 --- /dev/null +++ b/sysutils/xenkernel3/patches/patch-ae @@ -0,0 +1,39 @@ +$NetBSD: patch-ae,v 1.1 2007/10/16 20:31:57 bouyer Exp $ + +--- xen/arch/x86/mm.c.orig 2007-05-18 16:45:21.000000000 +0200 ++++ xen/arch/x86/mm.c 2007-10-17 05:03:09.000000000 +0200 +@@ -1741,15 +1741,26 @@ + nx |= PGT_validated; + } + } +- else if ( unlikely((x & (PGT_type_mask|PGT_pae_xen_l2)) != type) ) ++ else if (unlikely((x & (PGT_type_mask|PGT_pae_xen_l2)) != type) ) + { +- if ( ((x & PGT_type_mask) != PGT_l2_page_table) || +- (type != PGT_l1_page_table) ) +- MEM_LOG("Bad type (saw %" PRtype_info +- " != exp %" PRtype_info ") " +- "for mfn %lx (pfn %lx)", +- x, type, page_to_mfn(page), +- get_gpfn_from_mfn(page_to_mfn(page))); ++ /* ++ * if it's a recursive mapping failure here is expected. ++ * Don't log it ++ */ ++ if ((x & PGT_type_mask) == PGT_l2_page_table && ++ type == PGT_l1_page_table) ++ return 0; ++ if ((x & PGT_type_mask) == PGT_l3_page_table && ++ type == PGT_l2_page_table) ++ return 0; ++ if ((x & PGT_type_mask) == PGT_l4_page_table && ++ type == PGT_l3_page_table) ++ return 0; ++ MEM_LOG("Bad type (saw %" PRtype_info ++ " != exp %" PRtype_info ") " ++ "for mfn %lx (pfn %lx)", ++ x, type, page_to_mfn(page), ++ get_gpfn_from_mfn(page_to_mfn(page))); + return 0; + } + else if ( unlikely(!(x & PGT_validated)) ) -- cgit v1.2.3