From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH RFC 30/44] x86/pv: Break handle_ldt_mapping_fault() out of handle_gdt_ldt_mapping_fault() Date: Thu, 4 Jan 2018 20:21:55 +0000 Message-ID: <1515097329-31902-31-git-send-email-andrew.cooper3@citrix.com> References: <1515097329-31902-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: <1515097329-31902-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org RnV0dXJlIGNoYW5nZXMgd2lsbCBhbHRlciB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCB3ZSBl eHBlY3QgdG8gdGFrZSBmYXVsdHMuCgpPbmUgYWRqdXN0bWVudCBob3dldmVyIGlzIHRvIGV4Y2x1 ZGUgdGhlIHVzZSBvZiB0aGlzIGZpeHVwIHBhdGggZm9yIG5vbi1QVgpndWVzdHMuICBXZWxsLWZv cm1lZCBjb2RlIHNob3VsZG4ndCByZWZlcmVuY2UgdGhlIExEVCB3aGlsZSBpbiBIVk0gdmNwdQpj b250ZXh0LCBidXQgY3VycmVudGx5IG9uIGEgY29udGV4dCBzd2l0Y2ggZnJvbSBQViB0byBIVk0g Y29udGV4dCwgdGhlcmUgbWF5CmJlIGEgc3RhbGUgTERUIHNlbGVjdG9yIGxvYWRlZCwgb3ZlciBh biB1bm1hcHBlZCByZWdpb24uCgpCeSBleHBsaWNpdGx5IGV4Y2x1ZGluZyBIVk0gY29udGV4dCBh dCB0aGlzIHBvaW50LCB3ZSBhdm9pZCBlcnJvbmVvdXMKaHlwZXJ2aXNvciBleGVjdXRpb24gcmVz dWx0aW5nIGluIGEgY2FzY2FkZSBmYWlsdXJlLCBieSBmYWxsaW5nIGludG8KcHZfbWFwX2xkdF9z aGFkb3dfcGFnZSgpLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KLS0tCnYyOgogKiBDb3JyZWN0IHRoZSBzZW5zZSBvZiB0aGUgSFZNIGNv bnRleHQgY2hlY2sKICogUmVkdWNlIG9mZnNldCB0byB1bnNpZ25lZCBpbnQuICBJdCB3aWxsIGJl IGF0IG1heGltdW0gMHhmZmZjCi0tLQogeGVuL2FyY2gveDg2L3RyYXBzLmMgfCA3OSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwppbmRleCBlZjk0NjRiLi4y ZjE1NDBlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdHJhcHMuYworKysgYi94ZW4vYXJjaC94 ODYvdHJhcHMuYwpAQCAtMTA5NCw2ICsxMDk0LDQ4IEBAIHN0YXRpYyB2b2lkIHJlc2VydmVkX2Jp dF9wYWdlX2ZhdWx0KHVuc2lnbmVkIGxvbmcgYWRkciwKICAgICBzaG93X2V4ZWN1dGlvbl9zdGF0 ZShyZWdzKTsKIH0KIAorc3RhdGljIGludCBoYW5kbGVfbGR0X21hcHBpbmdfZmF1bHQodW5zaWdu ZWQgaW50IG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzKQoreworICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVu dDsKKworICAgIC8qCisgICAgICogTm90IGluIFBWIGNvbnRleHQ/ICBTb21ldGhpbmcgaXMgdmVy eSBicm9rZW4uICBMZWF2ZSBpdCB0byB0aGUgI1BGCisgICAgICogaGFuZGxlciwgd2hpY2ggd2ls bCBwcm9iYWJseSByZXN1bHQgaW4gYSBwYW5pYygpLgorICAgICAqLworICAgIGlmICggIWlzX3B2 X3ZjcHUoY3VycikgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8qIFRyeSB0byBjb3B5IGEg bWFwcGluZyBmcm9tIHRoZSBndWVzdCdzIExEVCwgaWYgaXQgaXMgdmFsaWQuICovCisgICAgaWYg KCBsaWtlbHkocHZfbWFwX2xkdF9zaGFkb3dfcGFnZShvZmZzZXQpKSApCisgICAgeworICAgICAg ICBpZiAoIGd1ZXN0X21vZGUocmVncykgKQorICAgICAgICAgICAgdHJhY2VfdHJhcF90d29fYWRk cihUUkNfUFZfR0RUX0xEVF9NQVBQSU5HX0ZBVUxULAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZWdzLT5yaXAsIG9mZnNldCk7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAg ICAgIC8qIEluIGh5cGVydmlzb3IgbW9kZT8gTGVhdmUgaXQgdG8gdGhlICNQRiBoYW5kbGVyIHRv IGZpeCB1cC4gKi8KKyAgICAgICAgaWYgKCAhZ3Vlc3RfbW9kZShyZWdzKSApCisgICAgICAgICAg ICByZXR1cm4gMDsKKworICAgICAgICAvKiBBY2Nlc3Mgd291bGQgaGF2ZSBiZWNvbWUgbm9uLWNh bm9uaWNhbD8gUGFzcyAjR1Bbc2VsXSBiYWNrLiAqLworICAgICAgICBpZiAoIHVubGlrZWx5KCFp c19jYW5vbmljYWxfYWRkcmVzcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyci0+YXJj aC5wdl92Y3B1LmxkdF9iYXNlICsgb2Zmc2V0KSkgKQorICAgICAgICB7CisgICAgICAgICAgICB1 aW50MTZfdCBlYyA9IChvZmZzZXQgJiB+KFg4Nl9YRUNfRVhUIHwgWDg2X1hFQ19JRFQpKSB8IFg4 Nl9YRUNfVEk7CisKKyAgICAgICAgICAgIHB2X2luamVjdF9od19leGNlcHRpb24oVFJBUF9ncF9m YXVsdCwgZWMpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIC8qIGVsc2Ug cGFzcyB0aGUgI1BGIGJhY2ssIHdpdGggYWRqdXN0ZWQgJWNyMi4gKi8KKyAgICAgICAgICAgIHB2 X2luamVjdF9wYWdlX2ZhdWx0KHJlZ3MtPmVycm9yX2NvZGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUubGR0X2Jhc2UgKyBvZmZzZXQpOworICAg IH0KKworICAgIHJldHVybiBFWENSRVRfZmF1bHRfZml4ZWQ7Cit9CisKIHN0YXRpYyBpbnQgaGFu ZGxlX2dkdF9sZHRfbWFwcGluZ19mYXVsdCh1bnNpZ25lZCBsb25nIG9mZnNldCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKIHsKQEAgLTExMTUsNDAgKzExNTcsMTEgQEAgc3RhdGljIGludCBoYW5kbGVfZ2R0X2xkdF9t YXBwaW5nX2ZhdWx0KHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAogICAgIG9mZnNldCAmPSAoMVVMIDw8 IChHRFRfTERUX1ZDUFVfVkFfU0hJRlQtMSkpIC0gMVVMOwogCiAgICAgaWYgKCBsaWtlbHkoaXNf bGR0X2FyZWEpICkKLSAgICB7Ci0gICAgICAgIC8qIExEVCBmYXVsdDogQ29weSBhIG1hcHBpbmcg ZnJvbSB0aGUgZ3Vlc3QncyBMRFQsIGlmIGl0IGlzIHZhbGlkLiAqLwotICAgICAgICBpZiAoIGxp a2VseShwdl9tYXBfbGR0X3NoYWRvd19wYWdlKG9mZnNldCkpICkKLSAgICAgICAgewotICAgICAg ICAgICAgaWYgKCBndWVzdF9tb2RlKHJlZ3MpICkKLSAgICAgICAgICAgICAgICB0cmFjZV90cmFw X3R3b19hZGRyKFRSQ19QVl9HRFRfTERUX01BUFBJTkdfRkFVTFQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZWdzLT5yaXAsIG9mZnNldCk7Ci0gICAgICAgIH0KLSAgICAg ICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgICAvKiBJbiBoeXBlcnZpc29yIG1vZGU/IExl YXZlIGl0IHRvIHRoZSAjUEYgaGFuZGxlciB0byBmaXggdXAuICovCi0gICAgICAgICAgICBpZiAo ICFndWVzdF9tb2RlKHJlZ3MpICkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg cmV0dXJuIGhhbmRsZV9sZHRfbWFwcGluZ19mYXVsdChvZmZzZXQsIHJlZ3MpOwogCi0gICAgICAg ICAgICAvKiBBY2Nlc3Mgd291bGQgaGF2ZSBiZWNvbWUgbm9uLWNhbm9uaWNhbD8gUGFzcyAjR1Bb c2VsXSBiYWNrLiAqLwotICAgICAgICAgICAgaWYgKCB1bmxpa2VseSghaXNfY2Fub25pY2FsX2Fk ZHJlc3MoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUu bGR0X2Jhc2UgKyBvZmZzZXQpKSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdWlu dDE2X3QgZWMgPSAob2Zmc2V0ICYgfihYODZfWEVDX0VYVCB8IFg4Nl9YRUNfSURUKSkgfCBYODZf WEVDX1RJOwotCi0gICAgICAgICAgICAgICAgcHZfaW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2dw X2ZhdWx0LCBlYyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg ICAgICAgLyogZWxzZSBwYXNzIHRoZSAjUEYgYmFjaywgd2l0aCBhZGp1c3RlZCAlY3IyLiAqLwot ICAgICAgICAgICAgICAgIHB2X2luamVjdF9wYWdlX2ZhdWx0KHJlZ3MtPmVycm9yX2NvZGUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1Lmxk dF9iYXNlICsgb2Zmc2V0KTsKLSAgICAgICAgfQotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAg ICAgICAvKiBHRFQgZmF1bHQ6IGhhbmRsZSB0aGUgZmF1bHQgYXMgI0dQKHNlbGVjdG9yKS4gKi8K LSAgICAgICAgcmVncy0+ZXJyb3JfY29kZSA9IG9mZnNldCAmIH4oWDg2X1hFQ19FWFQgfCBYODZf WEVDX0lEVCB8IFg4Nl9YRUNfVEkpOwotICAgICAgICAodm9pZClkb19nZW5lcmFsX3Byb3RlY3Rp b24ocmVncyk7Ci0gICAgfQorICAgIC8qIEdEVCBmYXVsdDogaGFuZGxlIHRoZSBmYXVsdCBhcyAj R1Aoc2VsZWN0b3IpLiAqLworICAgIHJlZ3MtPmVycm9yX2NvZGUgPSBvZmZzZXQgJiB+KFg4Nl9Y RUNfRVhUIHwgWDg2X1hFQ19JRFQgfCBYODZfWEVDX1RJKTsKKyAgICAodm9pZClkb19nZW5lcmFs X3Byb3RlY3Rpb24ocmVncyk7CiAKICAgICByZXR1cm4gRVhDUkVUX2ZhdWx0X2ZpeGVkOwogfQot LSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs