From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v4 18/24] x86/shadow: Avoid raising faults behind the emulators back Date: Thu, 1 Dec 2016 16:56:01 +0000 Message-ID: <1480611361-15294-6-git-send-email-andrew.cooper3@citrix.com> References: <1480611361-15294-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1480611361-15294-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org VXNlIHg4Nl9lbXVsX3tod19leGNlcHRpb24scGFnZWZhdWx0fSgpIHJhdGhlciB0aGFuCntwdixo dm19X2luamVjdF9wYWdlX2ZhdWx0KCkgYW5kIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKCkgdG8g Y2F1c2UgcmFpc2VkCmZhdWx0cyB0byBiZSBrbm93biB0byB0aGUgZW11bGF0b3IuICBUaGlzIHJl cXVpcmVzIGFsdGVyaW5nIHRoZSBjYWxsZXJzIG9mCng4Nl9lbXVsYXRlKCkgdG8gcHJvcGVybHkg cmUtaW5qZWN0IHRoZSBldmVudC4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl dy5jb29wZXIzQGNpdHJpeC5jb20+CkFja2VkLWJ5OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4K LS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+Cgp2NDoKICogRml4IHRoZSBj b21taXQgbWVzc2FnZSBmb2xsb3dpbmcgdjMncyBjaGFuZ2VzLgogKiBzL2lzX2h2bV92Y3B1L2hh c19odm1fY29udGFpbmVyX2RvbWFpbi8KICogQWRqdXN0IGRlc2NyaXB0aW9uIG9mIHBlcm1pdHRl ZCBleGNlcHRpb25zLgogKiBEaXNhbGxvdyAjR1AvI1NTIHdpdGggbm9uLXplcm8gZXJyb3IgY29k ZXMuCnYzOgogKiBTcGxpdCBvdXQgI0RCIGhhbmRsaW5nIHRvIGFuIGVhcmxpZXIgcGFydCBvZiB0 aGUgc2VyaWVzCiAqIERvbid0IGluamVjdCAjR1AgZmF1bHRzIGZvciB1bmV4cGVjdGVkIGV2ZW50 cywgYnV0IGRvIHJlZW50ZXIgdGhlIGd1ZXN0Lgp2MjoKICogTmV3Ci0tLQogeGVuL2FyY2gveDg2 L21tL3NoYWRvdy9jb21tb24uYyB8IDEzICsrKysrKy0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvbXVsdGkuYyAgfCA0MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgYi94ZW4vYXJjaC94 ODYvbW0vc2hhZG93L2NvbW1vbi5jCmluZGV4IGYwNzgwM2IuLmU1MDljYzEgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3No YWRvdy9jb21tb24uYwpAQCAtMTYyLDggKzE2Miw5IEBAIHN0YXRpYyBpbnQgaHZtX3RyYW5zbGF0 ZV9saW5lYXJfYWRkcigKIAogICAgIGlmICggIW9rYXkgKQogICAgIHsKLSAgICAgICAgaHZtX2lu amVjdF9od19leGNlcHRpb24oCi0gICAgICAgICAgICAoc2VnID09IHg4Nl9zZWdfc3MpID8gVFJB UF9zdGFja19lcnJvciA6IFRSQVBfZ3BfZmF1bHQsIDApOworICAgICAgICB4ODZfZW11bF9od19l eGNlcHRpb24oCisgICAgICAgICAgICAoc2VnID09IHg4Nl9zZWdfc3MpID8gVFJBUF9zdGFja19l cnJvciA6IFRSQVBfZ3BfZmF1bHQsCisgICAgICAgICAgICAwLCAmc2hfY3R4dC0+Y3R4dCk7CiAg ICAgICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKICAgICB9CiAKQEAgLTMyMyw3ICszMjQs NyBAQCBwdl9lbXVsYXRlX3JlYWQoZW51bSB4ODZfc2VnbWVudCBzZWcsCiAKICAgICBpZiAoIChy YyA9IGNvcHlfZnJvbV91c2VyKHBfZGF0YSwgKHZvaWQgKilvZmZzZXQsIGJ5dGVzKSkgIT0gMCAp CiAgICAgewotICAgICAgICBwdl9pbmplY3RfcGFnZV9mYXVsdCgwLCBvZmZzZXQgKyBieXRlcyAt IHJjKTsgLyogUmVhZCBmYXVsdC4gKi8KKyAgICAgICAgeDg2X2VtdWxfcGFnZWZhdWx0KDAsIG9m ZnNldCArIGJ5dGVzIC0gcmMsIGN0eHQpOyAvKiBSZWFkIGZhdWx0LiAqLwogICAgICAgICByZXR1 cm4gWDg2RU1VTF9FWENFUFRJT047CiAgICAgfQogCkBAIC0xNzIwLDEwICsxNzIxLDggQEAgc3Rh dGljIG1mbl90IGVtdWxhdGVfZ3ZhX3RvX21mbihzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9u ZyB2YWRkciwKICAgICBnZm4gPSBwYWdpbmdfZ2V0X2hvc3Rtb2RlKHYpLT5ndmFfdG9fZ2ZuKHYs IE5VTEwsIHZhZGRyLCAmcGZlYyk7CiAgICAgaWYgKCBnZm4gPT0gZ2ZuX3goSU5WQUxJRF9HRk4p ICkKICAgICB7Ci0gICAgICAgIGlmICggaXNfaHZtX3ZjcHUodikgKQotICAgICAgICAgICAgaHZt X2luamVjdF9wYWdlX2ZhdWx0KHBmZWMsIHZhZGRyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg ICAgcHZfaW5qZWN0X3BhZ2VfZmF1bHQocGZlYywgdmFkZHIpOworICAgICAgICB4ODZfZW11bF9w YWdlZmF1bHQocGZlYywgdmFkZHIsICZzaF9jdHh0LT5jdHh0KTsKKwogICAgICAgICByZXR1cm4g X21mbihCQURfR1ZBX1RPX0dGTik7CiAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv bW0vc2hhZG93L211bHRpLmMgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMKaW5kZXgg N2Q5MDgxYi4uZmMxOGQ2NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0 aS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwpAQCAtMzM3MywxOCArMzM3 MywzNiBAQCBzdGF0aWMgaW50IHNoX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsCiAKICAgICBy ID0geDg2X2VtdWxhdGUoJmVtdWxfY3R4dC5jdHh0LCBlbXVsX29wcyk7CiAKLSAgICAvKgotICAg ICAqIFRoZSBwcmV2aW91cyBsYWNrIG9mIGluamVjdF97c3csaHd9KigpIGhvb2tzIGNhdXNlZCBl eGNlcHRpb25zIHJhaXNlZAotICAgICAqIGJ5IHRoZSBlbXVsYXRvciBpdHNlbGYgdG8gYmVjb21l IFg4NkVNVUxfVU5IQU5ETEVBQkxFLiAgU3VjaCBleGNlcHRpb25zCi0gICAgICogbm93IHNldCBl dmVudF9wZW5kaW5nIGluc3RlYWQuICBFeGNlcHRpb25zIHJhaXNlZCBiZWhpbmQgdGhlIGJhY2sg b2YKLSAgICAgKiB0aGUgZW11bGF0b3IgZG9uJ3QgeWV0IHNldCBldmVudF9wZW5kaW5nLgotICAg ICAqCi0gICAgICogRm9yIG5vdywgY2F1c2Ugc3VjaCBjYXNlcyB0byByZXR1cm4gdG8gdGhlIFg4 NkVNVUxfVU5IQU5ETEVBQkxFIHBhdGgsCi0gICAgICogZm9yIG5vIGZ1bmN0aW9uYWwgY2hhbmdl IGZyb20gYmVmb3JlLiAgRnV0dXJlIHBhdGNoZXMgd2lsbCBmaXggdGhpcwotICAgICAqIHByb3Bl cmx5LgotICAgICAqLwogICAgIGlmICggciA9PSBYODZFTVVMX0VYQ0VQVElPTiAmJiBlbXVsX2N0 eHQuY3R4dC5ldmVudF9wZW5kaW5nICkKLSAgICAgICAgciA9IFg4NkVNVUxfVU5IQU5ETEVBQkxF OworICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhpcyBlbXVsYXRpb24gY292ZXJzIHdy aXRlcyB0byBzaGFkb3cgcGFnZXRhYmxlcy4gIFdlIHRvbGVyYXRlICNQRgorICAgICAgICAgKiAo ZnJvbSBhY2Nlc3NlcyBzcGFubmluZyBwYWdlcywgY29uY3VycmVudCBwYWdpbmcgdXBkYXRlZCBm cm9tCisgICAgICAgICAqIHZjcHVzLCBldGMpIGFuZCAjR1BbMF0vI1NTWzBdIChmcm9tIHNlZ21l bnRhdGlvbiBlcnJvcnMpLiAgQW55dGhpbmcKKyAgICAgICAgICogZWxzZSBpcyBhbiBlbXVsYXRp b24gYnVnLCBvciBhIGd1ZXN0IHBsYXlpbmcgd2l0aCB0aGUgaW5zdHJ1Y3Rpb24KKyAgICAgICAg ICogc3RyZWFtIHVuZGVyIFhlbidzIGZlZXQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIGVt dWxfY3R4dC5jdHh0LmV2ZW50LnR5cGUgPT0gWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT04gJiYK KyAgICAgICAgICAgICAoKGVtdWxfY3R4dC5jdHh0LmV2ZW50LnZlY3RvciA9PSBUUkFQX3BhZ2Vf ZmF1bHQpIHx8CisgICAgICAgICAgICAgICgoKGVtdWxfY3R4dC5jdHh0LmV2ZW50LnZlY3RvciA9 PSBUUkFQX2dwX2ZhdWx0KSB8fAorICAgICAgICAgICAgICAgIChlbXVsX2N0eHQuY3R4dC5ldmVu dC52ZWN0b3IgPT0gVFJBUF9zdGFja19lcnJvcikpICYmCisgICAgICAgICAgICAgICBlbXVsX2N0 eHQuY3R4dC5ldmVudC5lcnJvcl9jb2RlID09IDApKSApCisgICAgICAgIHsKKyAgICAgICAgICAg IGlmICggaGFzX2h2bV9jb250YWluZXJfZG9tYWluKGQpICkKKyAgICAgICAgICAgICAgICBodm1f aW5qZWN0X2V2ZW50KCZlbXVsX2N0eHQuY3R4dC5ldmVudCk7CisgICAgICAgICAgICBlbHNlCisg ICAgICAgICAgICAgICAgcHZfaW5qZWN0X2V2ZW50KCZlbXVsX2N0eHQuY3R4dC5ldmVudCk7CisK KyAgICAgICAgICAgIGdvdG8gZW11bGF0ZV9kb25lOworICAgICAgICB9CisgICAgICAgIGVsc2UK KyAgICAgICAgeworICAgICAgICAgICAgU0hBRE9XX1BSSU5USygKKyAgICAgICAgICAgICAgICAi VW5leHBlY3RlZCBldmVudCAodHlwZSAldSwgdmVjdG9yICUjeCkgZnJvbSBlbXVsYXRpb25cbiIs CisgICAgICAgICAgICAgICAgZW11bF9jdHh0LmN0eHQuZXZlbnQudHlwZSwgZW11bF9jdHh0LmN0 eHQuZXZlbnQudmVjdG9yKTsKKyAgICAgICAgICAgIHIgPSBYODZFTVVMX1VOSEFORExFQUJMRTsK KyAgICAgICAgfQorICAgIH0KIAogICAgIC8qCiAgICAgICogTkIuIFdlIGRvIG5vdCB1bnNoYWRv dyBvbiBYODZFTVVMX0VYQ0VQVElPTi4gSXQncyBub3QgY2xlYXIgdGhhdCBpdAotLSAKMi4xLjQK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK