From mboxrd@z Thu Jan 1 00:00:00 1970 From: f4da1594@opayq.com Subject: Delivery Status Notification (Delay) Date: Fri, 14 Apr 2017 08:29:03 -0700 (PDT) Message-ID: <191512359.57256.1492185561453.JavaMail.root@smtp3.opayq.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7215855059633854881==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --===============7215855059633854881== Content-Type: multipart/report; boundary=001a113776f2f6d2ce054d221913; report-type=delivery-status --001a113776f2f6d2ce054d221913 Content-Type: multipart/related; boundary=001a113776f2f6d36a054d221914 --001a113776f2f6d36a054d221914 Content-Type: multipart/alternative; boundary=001a113776f2f6d370054d221915 --001a113776f2f6d370054d221915 Content-Type: text/plain; charset=UTF-8 ** Delivery incomplete ** There was a temporary problem delivering your message to curtiskwong9@gmail.com. Gmail will retry for 22 more hours. You'll be notified if the delivery fails permanently. --001a113776f2f6d370054d221915 Content-Type: text/html; charset=UTF-8 --001a113776f2f6d370054d221915-- --001a113776f2f6d36a054d221914 Content-Type: image/png; name="icon.png" Content-Disposition: attachment; filename="icon.png" Content-Transfer-Encoding: base64 Content-ID: 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 --001a113776f2f6d36a054d221914-- --001a113776f2f6d2ce054d221913 Content-Type: message/delivery-status Reporting-MTA: dns; googlemail.com Received-From-MTA: dns; FWD-737QHYSMHVAYQAUCAOIQBDAAGAQLMA2YAMHECCJDLIBAYAWYAKIAZAQHSMCCWMBLIA4UANQUEIGCIMBKMAZUZ4AAEAACA===@opayq.com Arrival-Date: Wed, 12 Apr 2017 06:38:51 -0700 (PDT) X-Original-Message-ID: Final-Recipient: rfc822; curtiskwong9@gmail.com Action: delayed Status: 4.0.0 Last-Attempt-Date: Fri, 14 Apr 2017 08:29:03 -0700 (PDT) Will-Retry-Until: Sat, 15 Apr 2017 06:38:51 -0700 (PDT) --001a113776f2f6d2ce054d221913 Content-Type: message/global Content-Transfer-Encoding: quoted-printable X-Received: by 10.200.47.129 with SMTP id l1mr30053171qta.283.1492004331411= ; Wed, 12 Apr 2017 06:38:51 -0700 (PDT) Return-Path: Received: from [23.21.143.60] (smtp4.opayq.com. [23.21.143.60]) by mx.google.com with ESMTPS id l14si12477201qtb.91.2017.04.12.06.3= 8.51 for (version=3DTLS1_2 cipher=3DAES128-SHA bits=3D128/128); Wed, 12 Apr 2017 06:38:51 -0700 (PDT) Received-SPF: pass (google.com: domain of fwd-737qhysmhvayqaucaoiqbdaagaqlm= a2yamheccjdlibayawyakiazaqhsmccwmblia4uanqueigcimbkmazuz4aaeaaca=3D=3D=3D@o= payq.com designates 23.21.143.60 as permitted sender) client-ip=3D23.21.143= .60; Authentication-Results: mx.google.com; dkim=3Dpass header.i=3D@opayq.com; spf=3Dpass (google.com: domain of fwd-737qhysmhvayqaucaoiqbdaagaqlma= 2yamheccjdlibayawyakiazaqhsmccwmblia4uanqueigcimbkmazuz4aaeaaca=3D=3D=3D@op= ayq.com designates 23.21.143.60 as permitted sender) smtp.mailfrom=3DFWD-73= 7QHYSMHVAYQAUCAOIQBDAAGAQLMA2YAMHECCJDLIBAYAWYAKIAZAQHSMCCWMBLIA4UANQUEIGCI= MBKMAZUZ4AAEAACA=3D=3D=3D@opayq.com DKIM-Signature: v=3D1; d=3Dopayq.com; t=3D1492004316; b=3DKxQftiD8em4TVUQHP= G1ZRlvz2H0EuLe6d783DlaK6s3suQlO/GBD2um7O6dKjFY9ET/kU83G1Q+C38t1cHqkNe6uDgqx= O29uxF0ycn0/4UtrNhBHT564zl9YJSHbUyYWPJ4aCg9KA98UP6EAC1qXQVD2TINQGF0w7zuaPJE= xZRA=3D; s=3Dabine; c=3Drelaxed/relaxed; a=3Drsa-sha256; bh=3D2YJMUTn2N6BG7= GQoavJHyvfCaq5zxI9dktVCLv5g9uc=3D; h=3DDate:From:Reply-To:Subject:To:List-U= nsubscribe; MIME-Version: 1.0 Content-Type: text/plain; charset=3D"utf-8" Content-Transfer-Encoding: 7bit X-GetAbine-Processed: 1 From: "lists.xen.org [Masked]" Sender: "lists.xen.org [Masked]" Reply-To:=20 FWD-737QHYSMHVAYQAUCAOIQBDAAGAQLMA2YAMHECCJDLIBAYAWYAKIAZAQHSMCCWMBLIA4UAN= QUEIGCIMBKMAZUZ4AAEAACA=3D=3D=3D@opayq.com To: f4da1594@opayq.com X-GetAbine-Sender: xen-changelog-bounces@lists.xen.org X-GetAbine-Disposable: f4da1594@opayq.com X-GetAbine-Host-Address: 23.21.143.60 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrALMWRWlGSWpSXmKPExsWS0XRdVfe1+rs Ig//bRS0mbDNwYPTY3reLPYAxijUzLym/IoE1Y9fZHraCBUYVyx49YG1gfKbaxcjFISTwhVGi feNZZgjnPKPE+XevmLoYOTjYBMQk5u5V6GLk5BARUJWYtWI5M4gtJKAu0fS7gQ3EFhZwlrg/a x2YzStgJnF8yz4WEJsFqP7r7UOsExg5FjAyrGJUL04tKkst0jXUSyrKTM8oyU3MzNE1NDDWy0 0tLk5MT81JTCrWS87P3cQI9AkDEOxgXP7R6RCjJAeTkijvZYW3EUJ8SfkplRmJxRnxRaU5qcW HGGU4OJQkeN3U3kUICRalpqdWpGXmAIMDJi3BwaMkwpsCkuYtLkjMLc5Mh0idYlSUEue1BEkI gCQySvPg2mABeYlRVkqYlxHoECGegtSi3MwSVPlXjOIcjErCvOYgU3gy80rgpr8CWswEtHjt3 rcgi0sSEVJSDYzbth56t4qly7XSQcDxzd3NXQwfkhu+HE66NdXQU/t5xcm5jeY+zzS8llgEHI hIz9drd0sKy7P1arJ69abi6Cap3tv3EkXlqp5FudfHm3cecavbYx1x/u3eqT52C5g1uRmagpZ vE3uxv9XTNnClRKDh9eNCYv8Vt943WjH366unH9WVVjNdX6PEUpyRaKjFXFScCABR8WXzQwIA AA=3D=3D X-Env-Sender: ian.jackson@eu.citrix.com X-Msg-Ref: server-14.tower-31.messagelabs.com!1492002794!95474747!1 X-Originating-IP: [104.130.215.37] X-SpamReason: No, hits=3D0.0 required=3D7.0 tests=3D X-StarScan-Received:=20 X-StarScan-Version: 9.4.12; banners=3D-,-,- X-VirusChecked: Checked Message-Id: Date: Wed, 12 Apr 2017 13:13:13 +0000 Subject: [Xen-changelog] [xen master] x86/svm: Introduce svm_emul_swint_injection() X-BeenThere: xen-changelog@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "Change log for Mercurial \(receive only\)" List-Unsubscribe: ,=20 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: ,=20 -------------------------Blur------------------------- This email is forwarded from a MASKED EMAIL you created using Blur. (https= ://dnt.abine.com/#help/faq/faq-whataremaskedemails). IF THIS IS SPAM, CLICK HERE TO BLOCK: https://dnt.abine.com/#/block_email/f4da1594@opayq.com/FWD-737QHYSMHVAYQAUC= AOIQBDAAGAQLMA2YAMHECCJDLIBAYAWYAKIAZAQHSMCCWMBLIA4UANQUEIGCIMBKMAZUZ4AAEAA= CA=3D=3D=3D@opayq.com Want to shop safely and privately online? Go Premium: https://dnt.abine.com= /?pk_campaign=3DmaskHeader#premium -------------------------by Abine------------------------- commit 897d59a426f19f4099cd34feb0a8da9122810364 Author: Andrew Cooper AuthorDate: Thu Mar 30 17:27:07 2017 +0000 Commit: Andrew Cooper CommitDate: Thu Apr 6 18:12:59 2017 +0100 x86/svm: Introduce svm_emul_swint_injection() =20 Software events require emulation in some cases on AMD hardware. Intro= duce svm_emul_swint_injection() to perform this emulation if necessary in svm_inject_event(), which will cope with any sources of event, rather t= han just those coming from x86_emulate(). =20 This logic mirrors inject_swint() in the x86 instruction emulator. =20 Signed-off-by: Andrew Cooper Reviewed-by: Boris Ostrovsky Reviewed-by: Jan Beulich --- xen/arch/x86/hvm/svm/svm.c | 133 +++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 133 insertions(+) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 4d7e49f..1ffe5c3 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -1183,6 +1183,121 @@ static void svm_vcpu_destroy(struct vcpu *v) passive_domain_destroy(v); } =20 +/* + * Emulate enough of interrupt injection to cover the DPL check (omitted b= y + * hardware), and to work out whether it is safe to move %rip fowards for + * architectural trap vs fault semantics in the exception frame (which + * hardware won't cope with). + * + * The event parameter will be modified to a fault if necessary. + */ +static void svm_emul_swint_injection(struct x86_event *event) +{ + struct vcpu *curr =3D current; + const struct vmcb_struct *vmcb =3D curr->arch.hvm_svm.vmcb; + const struct cpu_user_regs *regs =3D guest_cpu_user_regs(); + unsigned int trap =3D event->vector, type =3D event->type; + unsigned int fault =3D TRAP_gp_fault, ec =3D 0; + pagefault_info_t pfinfo; + struct segment_register cs, idtr; + unsigned int idte_size, idte_offset; + unsigned long idte_linear_addr; + struct { uint32_t a, b, c, d; } idte =3D {}; + bool lm =3D vmcb_get_efer(vmcb) & EFER_LMA; + int rc; + + if ( !(vmcb_get_cr0(vmcb) & X86_CR0_PE) ) + goto raise_exception; /* TODO: support real-mode injection? */ + + idte_size =3D lm ? 16 : 8; + idte_offset =3D trap * idte_size; + + /* ICEBP sets the External Event bit despite being an instruction. */ + ec =3D (trap << 3) | X86_XEC_IDT | + (type =3D=3D X86_EVENTTYPE_PRI_SW_EXCEPTION ? X86_XEC_EXT : 0); + + /* + * TODO: This does not cover the v8086 mode with CR4.VME case + * correctly, but falls on the safe side from the point of view of a + * 32bit OS. Someone with many TUITs can see about reading the TSS + * Software Interrupt Redirection bitmap. + */ + if ( (regs->eflags & X86_EFLAGS_VM) && + MASK_EXTR(regs->eflags, X86_EFLAGS_IOPL) !=3D 3 ) + goto raise_exception; + + /* + * Read all 8/16 bytes so the idtr limit check is applied properly to + * this entry, even though we don't look at all the words read. + */ + hvm_get_segment_register(curr, x86_seg_cs, &cs); + hvm_get_segment_register(curr, x86_seg_idtr, &idtr); + if ( !hvm_virtual_to_linear_addr(x86_seg_idtr, &idtr, idte_offset, + idte_size, hvm_access_read, + &cs, &idte_linear_addr) ) + goto raise_exception; + + =20 ----- Message truncated ----- --001a113776f2f6d2ce054d221913-- --===============7215855059633854881== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg== --===============7215855059633854881==--