head	1.2;
access;
symbols
	pkgsrc-2020Q2:1.1.0.28
	pkgsrc-2020Q2-base:1.1
	pkgsrc-2020Q1:1.1.0.8
	pkgsrc-2020Q1-base:1.1
	pkgsrc-2019Q4:1.1.0.30
	pkgsrc-2019Q4-base:1.1
	pkgsrc-2019Q3:1.1.0.26
	pkgsrc-2019Q3-base:1.1
	pkgsrc-2019Q2:1.1.0.24
	pkgsrc-2019Q2-base:1.1
	pkgsrc-2019Q1:1.1.0.22
	pkgsrc-2019Q1-base:1.1
	pkgsrc-2018Q4:1.1.0.20
	pkgsrc-2018Q4-base:1.1
	pkgsrc-2018Q3:1.1.0.18
	pkgsrc-2018Q3-base:1.1
	pkgsrc-2018Q2:1.1.0.16
	pkgsrc-2018Q2-base:1.1
	pkgsrc-2018Q1:1.1.0.14
	pkgsrc-2018Q1-base:1.1
	pkgsrc-2017Q4:1.1.0.12
	pkgsrc-2017Q4-base:1.1
	pkgsrc-2017Q3:1.1.0.10
	pkgsrc-2017Q3-base:1.1
	pkgsrc-2017Q2:1.1.0.6
	pkgsrc-2017Q2-base:1.1
	pkgsrc-2017Q1:1.1.0.4
	pkgsrc-2017Q1-base:1.1
	pkgsrc-2016Q4:1.1.0.2
	pkgsrc-2016Q4-base:1.1;
locks; strict;
comment	@# @;


1.2
date	2020.08.19.10.39.23;	author bouyer;	state dead;
branches;
next	1.1;
commitid	DGAMglRf0Jde6FkC;

1.1
date	2016.11.22.20.55.29;	author bouyer;	state Exp;
branches;
next	;
commitid	stCAOMdiB0Zcqavz;


desc
@@


1.2
log
@Remove xenkernel and xentools packages older than 4.11.
They're not maintained anymore upstream, and don't build on supported NetBSD
releases.
@
text
@$NetBSD: patch-XSA-192,v 1.1 2016/11/22 20:55:29 bouyer Exp $

From: Jan Beulich <jbeulich@@suse.com>
Subject: x86/HVM: don't load LDTR with VM86 mode attrs during task switch

Just like TR, LDTR is purely a protected mode facility and hence needs
to be loaded accordingly. Also move its loading to where it
architecurally belongs.

This is XSA-192.

Signed-off-by: Jan Beulich <jbeulich@@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@@citrix.com>
Tested-by: Andrew Cooper <andrew.cooper3@@citrix.com>

--- xen/arch/x86/hvm/hvm.c.orig	2016-11-22 15:15:51.000000000 +0100
+++ xen/arch/x86/hvm/hvm.c	2016-11-22 15:29:02.000000000 +0100
@@@@ -2072,16 +2072,15 @@@@
 }
 
 static int hvm_load_segment_selector(
-    enum x86_segment seg, uint16_t sel)
+    enum x86_segment seg, uint16_t sel, unsigned int eflags)
 {
     struct segment_register desctab, cs, segr;
     struct desc_struct *pdesc, desc;
     u8 dpl, rpl, cpl;
     int fault_type = TRAP_invalid_tss;
-    struct cpu_user_regs *regs = guest_cpu_user_regs();
     struct vcpu *v = current;
 
-    if ( regs->eflags & X86_EFLAGS_VM )
+    if ( eflags & X86_EFLAGS_VM )
     {
         segr.sel = sel;
         segr.base = (uint32_t)sel << 4;
@@@@ -2332,6 +2331,8 @@@@
     if ( rc != HVMCOPY_okay )
         goto out;
 
+    if ( hvm_load_segment_selector(x86_seg_ldtr, tss.ldt, 0) )
+        goto out;
 
     if ( hvm_set_cr3(tss.cr3) )
         goto out;
@@@@ -2354,13 +2355,12 @@@@
     }
 
     exn_raised = 0;
-    if ( hvm_load_segment_selector(x86_seg_ldtr, tss.ldt) ||
-         hvm_load_segment_selector(x86_seg_es, tss.es) ||
-         hvm_load_segment_selector(x86_seg_cs, tss.cs) ||
-         hvm_load_segment_selector(x86_seg_ss, tss.ss) ||
-         hvm_load_segment_selector(x86_seg_ds, tss.ds) ||
-         hvm_load_segment_selector(x86_seg_fs, tss.fs) ||
-         hvm_load_segment_selector(x86_seg_gs, tss.gs) )
+    if ( hvm_load_segment_selector(x86_seg_es, tss.es, tss.eflags) ||
+         hvm_load_segment_selector(x86_seg_cs, tss.cs, tss.eflags) ||
+         hvm_load_segment_selector(x86_seg_ss, tss.ss, tss.eflags) ||
+         hvm_load_segment_selector(x86_seg_ds, tss.ds, tss.eflags) ||
+         hvm_load_segment_selector(x86_seg_fs, tss.fs, tss.eflags) ||
+         hvm_load_segment_selector(x86_seg_gs, tss.gs, tss.eflags) )
         exn_raised = 1;
 
     rc = hvm_copy_to_guest_virt(
@


1.1
log
@Backport upstream patches, fixing today's XSA 191, 192, 195, 197, 198.
Bump PKGREVISIONs
@
text
@d1 1
a1 1
$NetBSD: patch-XSA-182,v 1.1 2016/07/26 15:38:00 bouyer Exp $
@

