pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/sysutils Update xenkernel413 and xentools413 to 4.13.2...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/0f4112d46e02
branches:  trunk
changeset: 441598:0f4112d46e02
user:      bouyer <bouyer%pkgsrc.org@localhost>
date:      Fri Nov 06 21:45:49 2020 +0000

description:
Update xenkernel413 and xentools413 to 4.13.2. This includes fixes for
XSA up to XSA347, and an improved fix for XSA 286.

diffstat:

 sysutils/xenkernel413/Makefile             |    6 +-
 sysutils/xenkernel413/distinfo             |   29 +-
 sysutils/xenkernel413/patches/patch-XSA286 |  716 -----------------------
 sysutils/xenkernel413/patches/patch-XSA317 |   52 -
 sysutils/xenkernel413/patches/patch-XSA319 |   29 -
 sysutils/xenkernel413/patches/patch-XSA320 |  334 ----------
 sysutils/xenkernel413/patches/patch-XSA321 |  584 -------------------
 sysutils/xenkernel413/patches/patch-XSA328 |  212 ------
 sysutils/xenkernel413/patches/patch-XSA333 |   41 -
 sysutils/xenkernel413/patches/patch-XSA334 |   53 -
 sysutils/xenkernel413/patches/patch-XSA336 |  285 ---------
 sysutils/xenkernel413/patches/patch-XSA337 |  270 --------
 sysutils/xenkernel413/patches/patch-XSA338 |   44 -
 sysutils/xenkernel413/patches/patch-XSA339 |   78 --
 sysutils/xenkernel413/patches/patch-XSA340 |   67 --
 sysutils/xenkernel413/patches/patch-XSA342 |  147 ----
 sysutils/xenkernel413/patches/patch-XSA343 |  888 -----------------------------
 sysutils/xenkernel413/patches/patch-XSA344 |  335 ----------
 sysutils/xenkernel413/patches/patch-XSA345 |  413 -------------
 sysutils/xenkernel413/patches/patch-XSA346 |  256 --------
 sysutils/xenkernel413/patches/patch-XSA347 |  282 ---------
 sysutils/xentools413/Makefile              |    6 +-
 sysutils/xentools413/distinfo              |   11 +-
 sysutils/xentools413/patches/patch-XSA335  |   86 --
 24 files changed, 16 insertions(+), 5208 deletions(-)

diffs (truncated from 5349 to 300 lines):

diff -r f91bf0e6daac -r 0f4112d46e02 sysutils/xenkernel413/Makefile
--- a/sysutils/xenkernel413/Makefile    Fri Nov 06 21:38:30 2020 +0000
+++ b/sysutils/xenkernel413/Makefile    Fri Nov 06 21:45:49 2020 +0000
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.6 2020/10/21 09:04:10 bouyer Exp $
+# $NetBSD: Makefile,v 1.7 2020/11/06 21:45:49 bouyer Exp $
 
-VERSION=       4.13.1
-PKGREVISION=   3
+VERSION=       4.13.2
+#PKGREVISION=  0
 DISTNAME=      xen-${VERSION}
 PKGNAME=       xenkernel413-${VERSION}
 CATEGORIES=    sysutils
diff -r f91bf0e6daac -r 0f4112d46e02 sysutils/xenkernel413/distinfo
--- a/sysutils/xenkernel413/distinfo    Fri Nov 06 21:38:30 2020 +0000
+++ b/sysutils/xenkernel413/distinfo    Fri Nov 06 21:45:49 2020 +0000
@@ -1,29 +1,10 @@
-$NetBSD: distinfo,v 1.4 2020/10/21 09:04:10 bouyer Exp $
+$NetBSD: distinfo,v 1.5 2020/11/06 21:45:49 bouyer Exp $
 
-SHA1 (xen413/xen-4.13.1.tar.gz) = 194a314171120dad0b3c5433104c92343ec884ba
-RMD160 (xen413/xen-4.13.1.tar.gz) = 29cfb90b9da0ede99c1228b8e5964a99547c205d
-SHA512 (xen413/xen-4.13.1.tar.gz) = b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90
-Size (xen413/xen-4.13.1.tar.gz) = 39024612 bytes
+SHA1 (xen413/xen-4.13.2.tar.gz) = d514f1de9582c58676420bb2c9fb1c765b44fbff
+RMD160 (xen413/xen-4.13.2.tar.gz) = 96727c20bd84338f8c67c7c584c01ef877bbcb18
+SHA512 (xen413/xen-4.13.2.tar.gz) = cd3092281c97e9421e303aa288aac04dcccd5536ba7c0ff4d51fbf3d07b5ffacfe3456ba06f5cf63577dafbf8cf3a5d9825ceb5e9ef8ca1427900cc3e57b50a3
+Size (xen413/xen-4.13.2.tar.gz) = 39037826 bytes
 SHA1 (patch-Config.mk) = 9372a09efd05c9fbdbc06f8121e411fcb7c7ba65
-SHA1 (patch-XSA286) = 93bf307619151cd4389db95557d8af0e1b29ea0a
-SHA1 (patch-XSA317) = 3a3e7bf8f115bebaf56001afcf68c2bd501c00a5
-SHA1 (patch-XSA319) = 4954bdc849666e1c735c3281256e4850c0594ee8
-SHA1 (patch-XSA320) = db978d49298660fb750dc6b50c2a1ddd099c8fa0
-SHA1 (patch-XSA321) = 257dfc7e15a63b2149a9b9aed4e6e3b10f01f551
-SHA1 (patch-XSA328) = eb86e10b7279318006a8593561e3932b76adbc0c
-SHA1 (patch-XSA333) = 47660b70b2c998436587600bb9a25c2f494afa49
-SHA1 (patch-XSA334) = d11e778775314dff561d67da629d71704cc0bd8c
-SHA1 (patch-XSA336) = d3cfcb7a9800475967417e4b5b47698ed6a6b5a5
-SHA1 (patch-XSA337) = 3fcfab120c9b4c5e4dc55a4138f68aceaed9bebf
-SHA1 (patch-XSA338) = 0adcebec2c25a389155a10de84bf999ff2e5425d
-SHA1 (patch-XSA339) = 4f97076bda8150d1b1c68f6000d563f3c3314c02
-SHA1 (patch-XSA340) = 23888acfe25fc82ff085fa9acfbb36c156a15bc3
-SHA1 (patch-XSA342) = a61c4e28a8c8219b88e3bab534a109b2b29e2cc3
-SHA1 (patch-XSA343) = f4656c110229fdc63b57b8af76fc6e60386ef3cd
-SHA1 (patch-XSA344) = 616fb56027ee289bb3b7b061e2f9f6f6d81e358b
-SHA1 (patch-XSA345) = 5fd7f8c04c6fd81c3ba49c01063075325f2b4779
-SHA1 (patch-XSA346) = 834b2c3b89aa2569a61ee990000592bc0a044999
-SHA1 (patch-XSA347) = ffb4a0fa152196e26c34f733eeff62c02b79cf49
 SHA1 (patch-xen_Makefile) = 465388d80de414ca3bb84faefa0f52d817e423a6
 SHA1 (patch-xen_Rules.mk) = c743dc63f51fc280d529a7d9e08650292c171dac
 SHA1 (patch-xen_arch_x86_Rules.mk) = 0bedfc53a128a87b6a249ae04fbdf6a053bfb70b
diff -r f91bf0e6daac -r 0f4112d46e02 sysutils/xenkernel413/patches/patch-XSA286
--- a/sysutils/xenkernel413/patches/patch-XSA286        Fri Nov 06 21:38:30 2020 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,716 +0,0 @@
-$NetBSD: patch-XSA286,v 1.1 2020/10/21 09:04:10 bouyer Exp $
-
-From: Jan Beulich <jbeulich%suse.com@localhost>
-Subject: x86/mm: split L4 and L3 parts of the walk out of do_page_walk()
-
-The L3 one at least is going to be re-used by a subsequent patch, and
-splitting the L4 one then as well seems only natural.
-
-This is part of XSA-286.
-
-Signed-off-by: Jan Beulich <jbeulich%suse.com@localhost>
-Reviewed-by: George Dunlap <george.dunlap%citrix.com@localhost>
-Reviewed-by: Andrew Cooper <andrew.cooper3%citrix.com@localhost>
-
-diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
-index db4f035d8d..b1582b56fb 100644
---- xen/arch/x86/x86_64/mm.c.orig
-+++ xen/arch/x86/x86_64/mm.c
-@@ -44,26 +44,47 @@ unsigned int __read_mostly m2p_compat_vstart = __HYPERVISOR_COMPAT_VIRT_START;
- 
- l2_pgentry_t *compat_idle_pg_table_l2;
- 
--void *do_page_walk(struct vcpu *v, unsigned long addr)
-+static l4_pgentry_t page_walk_get_l4e(pagetable_t root, unsigned long addr)
- {
--    unsigned long mfn = pagetable_get_pfn(v->arch.guest_table);
--    l4_pgentry_t l4e, *l4t;
--    l3_pgentry_t l3e, *l3t;
--    l2_pgentry_t l2e, *l2t;
--    l1_pgentry_t l1e, *l1t;
-+    unsigned long mfn = pagetable_get_pfn(root);
-+    l4_pgentry_t *l4t, l4e;
- 
--    if ( !is_pv_vcpu(v) || !is_canonical_address(addr) )
--        return NULL;
-+    if ( !is_canonical_address(addr) )
-+        return l4e_empty();
- 
-     l4t = map_domain_page(_mfn(mfn));
-     l4e = l4t[l4_table_offset(addr)];
-     unmap_domain_page(l4t);
-+
-+    return l4e;
-+}
-+
-+static l3_pgentry_t page_walk_get_l3e(pagetable_t root, unsigned long addr)
-+{
-+    l4_pgentry_t l4e = page_walk_get_l4e(root, addr);
-+    l3_pgentry_t *l3t, l3e;
-+
-     if ( !(l4e_get_flags(l4e) & _PAGE_PRESENT) )
--        return NULL;
-+        return l3e_empty();
- 
-     l3t = map_l3t_from_l4e(l4e);
-     l3e = l3t[l3_table_offset(addr)];
-     unmap_domain_page(l3t);
-+
-+    return l3e;
-+}
-+
-+void *do_page_walk(struct vcpu *v, unsigned long addr)
-+{
-+    l3_pgentry_t l3e;
-+    l2_pgentry_t l2e, *l2t;
-+    l1_pgentry_t l1e, *l1t;
-+    unsigned long mfn;
-+
-+    if ( !is_pv_vcpu(v) )
-+        return NULL;
-+
-+    l3e = page_walk_get_l3e(v->arch.guest_table, addr);
-     mfn = l3e_get_pfn(l3e);
-     if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) )
-         return NULL;
-From: Jan Beulich <jbeulich%suse.com@localhost>
-Subject: x86/mm: check page types in do_page_walk()
-
-For page table entries read to be guaranteed valid, transiently locking
-the pages and validating their types is necessary. Note that guest use
-of linear page tables is intentionally not taken into account here, as
-ordinary data (guest stacks) can't possibly live inside page tables.
-
-This is part of XSA-286.
-
-Signed-off-by: Jan Beulich <jbeulich%suse.com@localhost>
-Reviewed-by: George Dunlap <george.dunlap%citrix.com@localhost>
-Reviewed-by: Andrew Cooper <andrew.cooper3%citrix.com@localhost>
-
-diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
-index b1582b56fb..7d439639b7 100644
---- xen/arch/x86/x86_64/mm.c.orig
-+++ xen/arch/x86/x86_64/mm.c
-@@ -46,15 +46,29 @@ l2_pgentry_t *compat_idle_pg_table_l2;
- 
- static l4_pgentry_t page_walk_get_l4e(pagetable_t root, unsigned long addr)
- {
--    unsigned long mfn = pagetable_get_pfn(root);
--    l4_pgentry_t *l4t, l4e;
-+    mfn_t mfn = pagetable_get_mfn(root);
-+    /* current's root page table can't disappear under our feet. */
-+    bool need_lock = !mfn_eq(mfn, pagetable_get_mfn(current->arch.guest_table));
-+    struct page_info *pg;
-+    l4_pgentry_t l4e = l4e_empty();
- 
-     if ( !is_canonical_address(addr) )
-         return l4e_empty();
- 
--    l4t = map_domain_page(_mfn(mfn));
--    l4e = l4t[l4_table_offset(addr)];
--    unmap_domain_page(l4t);
-+    pg = mfn_to_page(mfn);
-+    if ( need_lock && !page_lock(pg) )
-+        return l4e_empty();
-+
-+    if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l4_page_table )
-+    {
-+        l4_pgentry_t *l4t = map_domain_page(mfn);
-+
-+        l4e = l4t[l4_table_offset(addr)];
-+        unmap_domain_page(l4t);
-+    }
-+
-+    if ( need_lock )
-+        page_unlock(pg);
- 
-     return l4e;
- }
-@@ -62,14 +76,26 @@ static l4_pgentry_t page_walk_get_l4e(pagetable_t root, unsigned long addr)
- static l3_pgentry_t page_walk_get_l3e(pagetable_t root, unsigned long addr)
- {
-     l4_pgentry_t l4e = page_walk_get_l4e(root, addr);
--    l3_pgentry_t *l3t, l3e;
-+    mfn_t mfn = l4e_get_mfn(l4e);
-+    struct page_info *pg;
-+    l3_pgentry_t l3e = l3e_empty();
- 
-     if ( !(l4e_get_flags(l4e) & _PAGE_PRESENT) )
-         return l3e_empty();
- 
--    l3t = map_l3t_from_l4e(l4e);
--    l3e = l3t[l3_table_offset(addr)];
--    unmap_domain_page(l3t);
-+    pg = mfn_to_page(mfn);
-+    if ( !page_lock(pg) )
-+        return l3e_empty();
-+
-+    if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l3_page_table )
-+    {
-+        l3_pgentry_t *l3t = map_domain_page(mfn);
-+
-+        l3e = l3t[l3_table_offset(addr)];
-+        unmap_domain_page(l3t);
-+    }
-+
-+    page_unlock(pg);
- 
-     return l3e;
- }
-@@ -77,44 +103,67 @@ static l3_pgentry_t page_walk_get_l3e(pagetable_t root, unsigned long addr)
- void *do_page_walk(struct vcpu *v, unsigned long addr)
- {
-     l3_pgentry_t l3e;
--    l2_pgentry_t l2e, *l2t;
--    l1_pgentry_t l1e, *l1t;
--    unsigned long mfn;
-+    l2_pgentry_t l2e = l2e_empty();
-+    l1_pgentry_t l1e = l1e_empty();
-+    mfn_t mfn;
-+    struct page_info *pg;
- 
-     if ( !is_pv_vcpu(v) )
-         return NULL;
- 
-     l3e = page_walk_get_l3e(v->arch.guest_table, addr);
--    mfn = l3e_get_pfn(l3e);
--    if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) )
-+    mfn = l3e_get_mfn(l3e);
-+    if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) || !mfn_valid(mfn) )
-         return NULL;
-     if ( (l3e_get_flags(l3e) & _PAGE_PSE) )
-     {
--        mfn += PFN_DOWN(addr & ((1UL << L3_PAGETABLE_SHIFT) - 1));
-+        mfn = mfn_add(mfn, PFN_DOWN(addr & ((1UL << L3_PAGETABLE_SHIFT) - 1)));
-         goto ret;
-     }
- 
--    l2t = map_domain_page(_mfn(mfn));
--    l2e = l2t[l2_table_offset(addr)];
--    unmap_domain_page(l2t);
--    mfn = l2e_get_pfn(l2e);
--    if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) )
-+    pg = mfn_to_page(mfn);
-+    if ( !page_lock(pg) )
-+        return NULL;
-+
-+    if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l2_page_table )
-+    {
-+        const l2_pgentry_t *l2t = map_domain_page(mfn);
-+
-+        l2e = l2t[l2_table_offset(addr)];
-+        unmap_domain_page(l2t);
-+    }
-+
-+    page_unlock(pg);
-+
-+    mfn = l2e_get_mfn(l2e);
-+    if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) || !mfn_valid(mfn) )
-         return NULL;
-     if ( (l2e_get_flags(l2e) & _PAGE_PSE) )
-     {
--        mfn += PFN_DOWN(addr & ((1UL << L2_PAGETABLE_SHIFT) - 1));
-+        mfn = mfn_add(mfn, PFN_DOWN(addr & ((1UL << L2_PAGETABLE_SHIFT) - 1)));
-         goto ret;
-     }
- 
--    l1t = map_domain_page(_mfn(mfn));
--    l1e = l1t[l1_table_offset(addr)];
--    unmap_domain_page(l1t);
--    mfn = l1e_get_pfn(l1e);
--    if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) )
-+    pg = mfn_to_page(mfn);
-+    if ( !page_lock(pg) )
-+        return NULL;
-+
-+    if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l1_page_table )
-+    {
-+        const l1_pgentry_t *l1t = map_domain_page(mfn);
-+
-+        l1e = l1t[l1_table_offset(addr)];
-+        unmap_domain_page(l1t);
-+    }
-+
-+    page_unlock(pg);
-+
-+    mfn = l1e_get_mfn(l1e);
-+    if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) || !mfn_valid(mfn) )
-         return NULL;
- 
-  ret:
--    return map_domain_page(_mfn(mfn)) + (addr & ~PAGE_MASK);
-+    return map_domain_page(mfn) + (addr & ~PAGE_MASK);
- }
- 



Home | Main Index | Thread Index | Old Index