From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 14/19] x86/hvm: Extend the hvm_copy_*() API with a pagefault_info pointer Date: Mon, 28 Nov 2016 11:13:31 +0000 Message-ID: <1480331616-6165-15-git-send-email-andrew.cooper3@citrix.com> References: <1480331616-6165-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: <1480331616-6165-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 List-Id: xen-devel@lists.xenproject.org d2hpY2ggaXMgZmlsbGVkIHdpdGggcGFnZWZhdWx0IGluZm9ybWF0aW9uIHNob3VsZCBvbmUgb2Nj dXIuCgpObyBmdW5jdGlvbmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIg PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+CkFja2VkLWJ5OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KUmV2aWV3 ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5 OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvaHZt L2VtdWxhdGUuYyAgICAgICAgfCAgOCArKysrLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAg ICAgICAgICAgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIHhl bi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyAgICAgICB8ICA5ICsrKystLS0KIHhlbi9hcmNoL3g4 Ni9tbS9zaGFkb3cvY29tbW9uLmMgICB8ICA1ICsrLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZt L3N1cHBvcnQuaCB8IDIzICsrKysrKysrKysrKystLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA2MyBp bnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aHZtL2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCmluZGV4IDM1ZDFkMWMu LjZkZTk0ZDQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCkBAIC03NzAsNiArNzcwLDcgQEAgc3RhdGljIGludCBf X2h2bWVtdWxfcmVhZCgKICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0 KQogewogICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKKyAgICBwYWdlZmF1bHRfaW5m b190IHBmaW5mbzsKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHJlcHMgPSAxOwogICAgIHVpbnQz Ml90IHBmZWMgPSBQRkVDX3BhZ2VfcHJlc2VudDsKICAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKnZp byA9ICZjdXJyLT5hcmNoLmh2bV92Y3B1Lmh2bV9pbzsKQEAgLTc5MCw4ICs3OTEsOCBAQCBzdGF0 aWMgaW50IF9faHZtZW11bF9yZWFkKAogICAgICAgICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwog CiAgICAgcmMgPSAoKGFjY2Vzc190eXBlID09IGh2bV9hY2Nlc3NfaW5zbl9mZXRjaCkgPwotICAg ICAgICAgIGh2bV9mZXRjaF9mcm9tX2d1ZXN0X3ZpcnQocF9kYXRhLCBhZGRyLCBieXRlcywgcGZl YykgOgotICAgICAgICAgIGh2bV9jb3B5X2Zyb21fZ3Vlc3RfdmlydChwX2RhdGEsIGFkZHIsIGJ5 dGVzLCBwZmVjKSk7CisgICAgICAgICAgaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfdmlydChwX2RhdGEs IGFkZHIsIGJ5dGVzLCBwZmVjLCAmcGZpbmZvKSA6CisgICAgICAgICAgaHZtX2NvcHlfZnJvbV9n dWVzdF92aXJ0KHBfZGF0YSwgYWRkciwgYnl0ZXMsIHBmZWMsICZwZmluZm8pKTsKIAogICAgIHN3 aXRjaCAoIHJjICkKICAgICB7CkBAIC04NzgsNiArODc5LDcgQEAgc3RhdGljIGludCBodm1lbXVs X3dyaXRlKAogICAgIHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0eHQgPQogICAg ICAgICBjb250YWluZXJfb2YoY3R4dCwgc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQsIGN0eHQpOwog ICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKKyAgICBwYWdlZmF1bHRfaW5mb190IHBm aW5mbzsKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHJlcHMgPSAxOwogICAgIHVpbnQzMl90IHBm ZWMgPSBQRkVDX3BhZ2VfcHJlc2VudCB8IFBGRUNfd3JpdGVfYWNjZXNzOwogICAgIHN0cnVjdCBo dm1fdmNwdV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtX3ZjcHUuaHZtX2lvOwpAQCAtODk2LDcg Kzg5OCw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF93cml0ZSgKICAgICAgICAgIChodm1lbXVsX2N0 eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5maWVsZHMuZHBsID09IDMpICkKICAgICAgICAg cGZlYyB8PSBQRkVDX3VzZXJfbW9kZTsKIAotICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3Rfdmly dChhZGRyLCBwX2RhdGEsIGJ5dGVzLCBwZmVjKTsKKyAgICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0 X3ZpcnQoYWRkciwgcF9kYXRhLCBieXRlcywgcGZlYywgJnBmaW5mbyk7CiAKICAgICBzd2l0Y2gg KCByYyApCiAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9h cmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggYmRmZDk0ZS4uMzkwZjc2ZCAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0yODU5 LDYgKzI4NTksNyBAQCB2b2lkIGh2bV90YXNrX3N3aXRjaCgKICAgICBzdHJ1Y3QgZGVzY19zdHJ1 Y3QgKm9wdHNzX2Rlc2MgPSBOVUxMLCAqbnB0c3NfZGVzYyA9IE5VTEwsIHRzc19kZXNjOwogICAg IGJvb2xfdCBvdGRfd3JpdGFibGUsIG50ZF93cml0YWJsZTsKICAgICB1bnNpZ25lZCBsb25nIGVm bGFnczsKKyAgICBwYWdlZmF1bHRfaW5mb190IHBmaW5mbzsKICAgICBpbnQgZXhuX3JhaXNlZCwg cmM7CiAgICAgc3RydWN0IHsKICAgICAgICAgdTE2IGJhY2tfbGluayxfX2JsaDsKQEAgLTI5MjUs NyArMjkyNiw3IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogICAgIH0KIAogICAgIHJjID0gaHZt X2NvcHlfZnJvbV9ndWVzdF92aXJ0KAotICAgICAgICAmdHNzLCBwcmV2X3RyLmJhc2UsIHNpemVv Zih0c3MpLCBQRkVDX3BhZ2VfcHJlc2VudCk7CisgICAgICAgICZ0c3MsIHByZXZfdHIuYmFzZSwg c2l6ZW9mKHRzcyksIFBGRUNfcGFnZV9wcmVzZW50LCAmcGZpbmZvKTsKICAgICBpZiAoIHJjICE9 IEhWTUNPUFlfb2theSApCiAgICAgICAgIGdvdG8gb3V0OwogCkBAIC0yOTYzLDEyICsyOTY0LDEy IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmdHNzLmVpcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlw ZW9mKHRzcyksIHRyYWNlKSAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKHR5cGVvZih0c3MpLCBlaXApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ RkVDX3BhZ2VfcHJlc2VudCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGRUNf cGFnZV9wcmVzZW50LCAmcGZpbmZvKTsKICAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCiAg ICAgICAgIGdvdG8gb3V0OwogCiAgICAgcmMgPSBodm1fY29weV9mcm9tX2d1ZXN0X3ZpcnQoCi0g ICAgICAgICZ0c3MsIHRyLmJhc2UsIHNpemVvZih0c3MpLCBQRkVDX3BhZ2VfcHJlc2VudCk7Cisg ICAgICAgICZ0c3MsIHRyLmJhc2UsIHNpemVvZih0c3MpLCBQRkVDX3BhZ2VfcHJlc2VudCwgJnBm aW5mbyk7CiAgICAgLyoKICAgICAgKiBOb3RlOiBUaGUgSFZNQ09QWV9nZm5fc2hhcmVkIGNhc2Ug Y291bGQgYmUgb3B0aW1pc2VkLCBpZiB0aGUgY2FsbGVlCiAgICAgICogZnVuY3Rpb25zIGtuZXcg d2Ugd2FudCBSTyBhY2Nlc3MuCkBAIC0zMDA4LDcgKzMwMDksOCBAQCB2b2lkIGh2bV90YXNrX3N3 aXRjaCgKICAgICAgICAgdHNzLmJhY2tfbGluayA9IHByZXZfdHIuc2VsOwogCiAgICAgICAgIHJj ID0gaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydCh0ci5iYXNlICsgb2Zmc2V0b2YodHlwZW9mKHRzcyks IGJhY2tfbGluayksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHNzLmJh Y2tfbGluaywgc2l6ZW9mKHRzcy5iYWNrX2xpbmspLCAwKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZ0c3MuYmFja19saW5rLCBzaXplb2YodHNzLmJhY2tfbGluayksIDAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGZpbmZvKTsKICAgICAgICAg aWYgKCByYyA9PSBIVk1DT1BZX2JhZF9ndmFfdG9fZ2ZuICkKICAgICAgICAgICAgIGV4bl9yYWlz ZWQgPSAxOwogICAgICAgICBlbHNlIGlmICggcmMgIT0gSFZNQ09QWV9va2F5ICkKQEAgLTMwNDUs NyArMzA0Nyw4IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDE2IDw8IHNlZ3IuYXR0ci5maWVsZHMuZGIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmxpbmVhcl9hZGRyKSApCiAgICAgICAgIHsK LSAgICAgICAgICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydChsaW5lYXJfYWRkciwgJmVy cmNvZGUsIG9wc3osIDApOworICAgICAgICAgICAgcmMgPSBodm1fY29weV90b19ndWVzdF92aXJ0 KGxpbmVhcl9hZGRyLCAmZXJyY29kZSwgb3BzeiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmcGZpbmZvKTsKICAgICAgICAgICAgIGlmICggcmMgPT0gSFZNQ09Q WV9iYWRfZ3ZhX3RvX2dmbiApCiAgICAgICAgICAgICAgICAgZXhuX3JhaXNlZCA9IDE7CiAgICAg ICAgICAgICBlbHNlIGlmICggcmMgIT0gSFZNQ09QWV9va2F5ICkKQEAgLTMwNjgsNyArMzA3MSw4 IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogI2RlZmluZSBIVk1DT1BZX3BoeXMgICAgICAgKDB1 PDwyKQogI2RlZmluZSBIVk1DT1BZX3ZpcnQgICAgICAgKDF1PDwyKQogc3RhdGljIGVudW0gaHZt X2NvcHlfcmVzdWx0IF9faHZtX2NvcHkoCi0gICAgdm9pZCAqYnVmLCBwYWRkcl90IGFkZHIsIGlu dCBzaXplLCB1bnNpZ25lZCBpbnQgZmxhZ3MsIHVpbnQzMl90IHBmZWMpCisgICAgdm9pZCAqYnVm LCBwYWRkcl90IGFkZHIsIGludCBzaXplLCB1bnNpZ25lZCBpbnQgZmxhZ3MsIHVpbnQzMl90IHBm ZWMsCisgICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZvKQogewogICAgIHN0cnVjdCB2Y3B1ICpj dXJyID0gY3VycmVudDsKICAgICB1bnNpZ25lZCBsb25nIGdmbjsKQEAgLTMxMDksNyArMzExMywx NSBAQCBzdGF0aWMgZW51bSBodm1fY29weV9yZXN1bHQgX19odm1fY29weSgKICAgICAgICAgICAg ICAgICBpZiAoIHBmZWMgJiBQRkVDX3BhZ2Vfc2hhcmVkICkKICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIEhWTUNPUFlfZ2ZuX3NoYXJlZDsKICAgICAgICAgICAgICAgICBpZiAoIGZsYWdzICYg SFZNQ09QWV9mYXVsdCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBp ZiAoIHBmaW5mbyApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgIHBmaW5mby0+bGluZWFyID0gYWRkcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBmaW5m by0+ZWMgPSBwZmVjOworICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAg ICAgaHZtX2luamVjdF9wYWdlX2ZhdWx0KHBmZWMsIGFkZHIpOworICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICByZXR1cm4gSFZNQ09QWV9iYWRfZ3ZhX3RvX2dmbjsKICAgICAgICAg ICAgIH0KICAgICAgICAgICAgIGdwYSB8PSAocGFkZHJfdClnZm4gPDwgUEFHRV9TSElGVDsKQEAg LTMyNzksNyArMzI5MSw3IEBAIGVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X3RvX2d1ZXN0 X3BoeXMoCiB7CiAgICAgcmV0dXJuIF9faHZtX2NvcHkoYnVmLCBwYWRkciwgc2l6ZSwKICAgICAg ICAgICAgICAgICAgICAgICBIVk1DT1BZX3RvX2d1ZXN0IHwgSFZNQ09QWV9mYXVsdCB8IEhWTUNP UFlfcGh5cywKLSAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICAgICAgICAgICAgICAgICAg ICAwLCBOVUxMKTsKIH0KIAogZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVz dF9waHlzKApAQCAtMzI4NywzMSArMzI5OSwzNCBAQCBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1f Y29weV9mcm9tX2d1ZXN0X3BoeXMoCiB7CiAgICAgcmV0dXJuIF9faHZtX2NvcHkoYnVmLCBwYWRk ciwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICBIVk1DT1BZX2Zyb21fZ3Vlc3QgfCBIVk1D T1BZX2ZhdWx0IHwgSFZNQ09QWV9waHlzLAotICAgICAgICAgICAgICAgICAgICAgIDApOworICAg ICAgICAgICAgICAgICAgICAgIDAsIE5VTEwpOwogfQogCiBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBo dm1fY29weV90b19ndWVzdF92aXJ0KAotICAgIHVuc2lnbmVkIGxvbmcgdmFkZHIsIHZvaWQgKmJ1 ZiwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMpCisgICAgdW5zaWduZWQgbG9uZyB2YWRkciwgdm9p ZCAqYnVmLCBpbnQgc2l6ZSwgdWludDMyX3QgcGZlYywKKyAgICBwYWdlZmF1bHRfaW5mb190ICpw ZmluZm8pCiB7CiAgICAgcmV0dXJuIF9faHZtX2NvcHkoYnVmLCB2YWRkciwgc2l6ZSwKICAgICAg ICAgICAgICAgICAgICAgICBIVk1DT1BZX3RvX2d1ZXN0IHwgSFZNQ09QWV9mYXVsdCB8IEhWTUNP UFlfdmlydCwKLSAgICAgICAgICAgICAgICAgICAgICBQRkVDX3BhZ2VfcHJlc2VudCB8IFBGRUNf d3JpdGVfYWNjZXNzIHwgcGZlYyk7CisgICAgICAgICAgICAgICAgICAgICAgUEZFQ19wYWdlX3By ZXNlbnQgfCBQRkVDX3dyaXRlX2FjY2VzcyB8IHBmZWMsIHBmaW5mbyk7CiB9CiAKIGVudW0gaHZt X2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfdmlydCgKLSAgICB2b2lkICpidWYsIHVu c2lnbmVkIGxvbmcgdmFkZHIsIGludCBzaXplLCB1aW50MzJfdCBwZmVjKQorICAgIHZvaWQgKmJ1 ZiwgdW5zaWduZWQgbG9uZyB2YWRkciwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMsCisgICAgcGFn ZWZhdWx0X2luZm9fdCAqcGZpbmZvKQogewogICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgdmFk ZHIsIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgSFZNQ09QWV9mcm9tX2d1ZXN0IHwgSFZN Q09QWV9mYXVsdCB8IEhWTUNPUFlfdmlydCwKLSAgICAgICAgICAgICAgICAgICAgICBQRkVDX3Bh Z2VfcHJlc2VudCB8IHBmZWMpOworICAgICAgICAgICAgICAgICAgICAgIFBGRUNfcGFnZV9wcmVz ZW50IHwgcGZlYywgcGZpbmZvKTsKIH0KIAogZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2ZldGNo X2Zyb21fZ3Vlc3RfdmlydCgKLSAgICB2b2lkICpidWYsIHVuc2lnbmVkIGxvbmcgdmFkZHIsIGlu dCBzaXplLCB1aW50MzJfdCBwZmVjKQorICAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQgbG9uZyB2YWRk ciwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMsCisgICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZv KQogewogICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgdmFkZHIsIHNpemUsCiAgICAgICAgICAg ICAgICAgICAgICAgSFZNQ09QWV9mcm9tX2d1ZXN0IHwgSFZNQ09QWV9mYXVsdCB8IEhWTUNPUFlf dmlydCwKLSAgICAgICAgICAgICAgICAgICAgICBQRkVDX3BhZ2VfcHJlc2VudCB8IFBGRUNfaW5z bl9mZXRjaCB8IHBmZWMpOworICAgICAgICAgICAgICAgICAgICAgIFBGRUNfcGFnZV9wcmVzZW50 IHwgUEZFQ19pbnNuX2ZldGNoIHwgcGZlYywgcGZpbmZvKTsKIH0KIAogZW51bSBodm1fY29weV9y ZXN1bHQgaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydF9ub2ZhdWx0KApAQCAtMzMxOSw3ICszMzM0LDcg QEAgZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydF9ub2ZhdWx0KAog ewogICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgdmFkZHIsIHNpemUsCiAgICAgICAgICAgICAg ICAgICAgICAgSFZNQ09QWV90b19ndWVzdCB8IEhWTUNPUFlfbm9fZmF1bHQgfCBIVk1DT1BZX3Zp cnQsCi0gICAgICAgICAgICAgICAgICAgICAgUEZFQ19wYWdlX3ByZXNlbnQgfCBQRkVDX3dyaXRl X2FjY2VzcyB8IHBmZWMpOworICAgICAgICAgICAgICAgICAgICAgIFBGRUNfcGFnZV9wcmVzZW50 IHwgUEZFQ193cml0ZV9hY2Nlc3MgfCBwZmVjLCBOVUxMKTsKIH0KIAogZW51bSBodm1fY29weV9y ZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVzdF92aXJ0X25vZmF1bHQoCkBAIC0zMzI3LDcgKzMzNDIs NyBAQCBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fY29weV9mcm9tX2d1ZXN0X3ZpcnRfbm9mYXVs dCgKIHsKICAgICByZXR1cm4gX19odm1fY29weShidWYsIHZhZGRyLCBzaXplLAogICAgICAgICAg ICAgICAgICAgICAgIEhWTUNPUFlfZnJvbV9ndWVzdCB8IEhWTUNPUFlfbm9fZmF1bHQgfCBIVk1D T1BZX3ZpcnQsCi0gICAgICAgICAgICAgICAgICAgICAgUEZFQ19wYWdlX3ByZXNlbnQgfCBwZmVj KTsKKyAgICAgICAgICAgICAgICAgICAgICBQRkVDX3BhZ2VfcHJlc2VudCB8IHBmZWMsIE5VTEwp OwogfQogCiBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fZmV0Y2hfZnJvbV9ndWVzdF92aXJ0X25v ZmF1bHQoCkBAIC0zMzM1LDcgKzMzNTAsNyBAQCBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fZmV0 Y2hfZnJvbV9ndWVzdF92aXJ0X25vZmF1bHQoCiB7CiAgICAgcmV0dXJuIF9faHZtX2NvcHkoYnVm LCB2YWRkciwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICBIVk1DT1BZX2Zyb21fZ3Vlc3Qg fCBIVk1DT1BZX25vX2ZhdWx0IHwgSFZNQ09QWV92aXJ0LAotICAgICAgICAgICAgICAgICAgICAg IFBGRUNfcGFnZV9wcmVzZW50IHwgUEZFQ19pbnNuX2ZldGNoIHwgcGZlYyk7CisgICAgICAgICAg ICAgICAgICAgICAgUEZFQ19wYWdlX3ByZXNlbnQgfCBQRkVDX2luc25fZmV0Y2ggfCBwZmVjLCBO VUxMKTsKIH0KIAogdW5zaWduZWQgbG9uZyBjb3B5X3RvX3VzZXJfaHZtKHZvaWQgKnRvLCBjb25z dCB2b2lkICpmcm9tLCB1bnNpZ25lZCBpbnQgbGVuKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2h2bS92bXgvdnZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCmluZGV4IGJjYzRh OTcuLjczNDJkMTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMKQEAgLTM5Niw2ICszOTYsNyBAQCBzdGF0aWMg aW50IGRlY29kZV92bXhfaW5zdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKICAgICBzdHJ1 Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CiAgICAgdW5pb24gdm14X2luc3RfaW5mbyBpbmZvOwogICAg IHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyIHNlZzsKKyAgICBwYWdlZmF1bHRfaW5mb190IHBmaW5m bzsKICAgICB1bnNpZ25lZCBsb25nIGJhc2UsIGluZGV4LCBzZWdfYmFzZSwgZGlzcCwgb2Zmc2V0 OwogICAgIGludCBzY2FsZSwgc2l6ZTsKIApAQCAtNDUxLDcgKzQ1Miw3IEBAIHN0YXRpYyBpbnQg ZGVjb2RlX3ZteF9pbnN0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLAogICAgICAgICAgICAg Z290byBncF9mYXVsdDsKIAogICAgICAgICBpZiAoIHBvcGVyYW5kUyAhPSBOVUxMICYmCi0gICAg ICAgICAgICAgaHZtX2NvcHlfZnJvbV9ndWVzdF92aXJ0KHBvcGVyYW5kUywgYmFzZSwgc2l6ZSwg MCkKKyAgICAgICAgICAgICBodm1fY29weV9mcm9tX2d1ZXN0X3ZpcnQocG9wZXJhbmRTLCBiYXNl LCBzaXplLCAwLCAmcGZpbmZvKQogICAgICAgICAgICAgICAgICAgIT0gSFZNQ09QWV9va2F5ICkK ICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKICAgICAgICAgZGVjb2RlLT5t ZW0gPSBiYXNlOwpAQCAtMTYxMSw2ICsxNjEyLDcgQEAgaW50IG52bXhfaGFuZGxlX3ZtcHRyc3Qo c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50 OwogICAgIHN0cnVjdCB2bXhfaW5zdF9kZWNvZGVkIGRlY29kZTsKICAgICBzdHJ1Y3QgbmVzdGVk dmNwdSAqbnZjcHUgPSAmdmNwdV9uZXN0ZWRodm0odik7CisgICAgcGFnZWZhdWx0X2luZm9fdCBw ZmluZm87CiAgICAgdW5zaWduZWQgbG9uZyBncGEgPSAwOwogICAgIGludCByYzsKIApAQCAtMTYy MCw3ICsxNjIyLDcgQEAgaW50IG52bXhfaGFuZGxlX3ZtcHRyc3Qoc3RydWN0IGNwdV91c2VyX3Jl Z3MgKnJlZ3MpCiAKICAgICBncGEgPSBudmNwdS0+bnZfdnZtY3hhZGRyOwogCi0gICAgcmMgPSBo dm1fY29weV90b19ndWVzdF92aXJ0KGRlY29kZS5tZW0sICZncGEsIGRlY29kZS5sZW4sIDApOwor ICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydChkZWNvZGUubWVtLCAmZ3BhLCBkZWNvZGUu bGVuLCAwLCAmcGZpbmZvKTsKICAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCiAgICAgICAg IHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKIApAQCAtMTY3OSw2ICsxNjgxLDcgQEAgaW50IG52 bXhfaGFuZGxlX3ZtcmVhZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICBzdHJ1 Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CiAgICAgc3RydWN0IHZteF9pbnN0X2RlY29kZWQgZGVjb2Rl OworICAgIHBhZ2VmYXVsdF9pbmZvX3QgcGZpbmZvOwogICAgIHU2NCB2YWx1ZSA9IDA7CiAgICAg aW50IHJjOwogCkBAIC0xNjkwLDcgKzE2OTMsNyBAQCBpbnQgbnZteF9oYW5kbGVfdm1yZWFkKHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgc3dpdGNoICggZGVjb2RlLnR5cGUgKSB7 CiAgICAgY2FzZSBWTVhfSU5TVF9NRU1SRUdfVFlQRV9NRU1PUlk6Ci0gICAgICAgIHJjID0gaHZt X2NvcHlfdG9fZ3Vlc3RfdmlydChkZWNvZGUubWVtLCAmdmFsdWUsIGRlY29kZS5sZW4sIDApOwor ICAgICAgICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0X3ZpcnQoZGVjb2RlLm1lbSwgJnZhbHVlLCBk ZWNvZGUubGVuLCAwLCAmcGZpbmZvKTsKICAgICAgICAgaWYgKCByYyAhPSBIVk1DT1BZX29rYXkg KQogICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogICAgICAgICBicmVhazsK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgYi94ZW4vYXJjaC94 ODYvbW0vc2hhZG93L2NvbW1vbi5jCmluZGV4IGU1MDljYzEuLmU4NTAxY2UgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3No YWRvdy9jb21tb24uYwpAQCAtMTc5LDYgKzE3OSw3IEBAIGh2bV9yZWFkKGVudW0geDg2X3NlZ21l bnQgc2VnLAogICAgICAgICAgZW51bSBodm1fYWNjZXNzX3R5cGUgYWNjZXNzX3R5cGUsCiAgICAg ICAgICBzdHJ1Y3Qgc2hfZW11bGF0ZV9jdHh0ICpzaF9jdHh0KQogeworICAgIHBhZ2VmYXVsdF9p bmZvX3QgcGZpbmZvOwogICAgIHVuc2lnbmVkIGxvbmcgYWRkcjsKICAgICBpbnQgcmM7CiAKQEAg LTE4OCw5ICsxODksOSBAQCBodm1fcmVhZChlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICAgICAg cmV0dXJuIHJjOwogCiAgICAgaWYgKCBhY2Nlc3NfdHlwZSA9PSBodm1fYWNjZXNzX2luc25fZmV0 Y2ggKQotICAgICAgICByYyA9IGh2bV9mZXRjaF9mcm9tX2d1ZXN0X3ZpcnQocF9kYXRhLCBhZGRy LCBieXRlcywgMCk7CisgICAgICAgIHJjID0gaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfdmlydChwX2Rh dGEsIGFkZHIsIGJ5dGVzLCAwLCAmcGZpbmZvKTsKICAgICBlbHNlCi0gICAgICAgIHJjID0gaHZt X2NvcHlfZnJvbV9ndWVzdF92aXJ0KHBfZGF0YSwgYWRkciwgYnl0ZXMsIDApOworICAgICAgICBy YyA9IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfdmlydChwX2RhdGEsIGFkZHIsIGJ5dGVzLCAwLCAmcGZp bmZvKTsKIAogICAgIHN3aXRjaCAoIHJjICkKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20teDg2L2h2bS9zdXBwb3J0LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdXBwb3J0 LmgKaW5kZXggOTkzODQ1MC4uNGFhNWEzNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vc3VwcG9ydC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N1cHBvcnQuaApA QCAtODMsMTYgKzgzLDI3IEBAIGVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vl c3RfcGh5cygKICAqICBIVk1DT1BZX2JhZF9nZm5fdG9fbWZuOiBTb21lIGd1ZXN0IHBoeXNpY2Fs IGFkZHJlc3MgZGlkIG5vdCBtYXAgdG8KICAqICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRp bmFyeSBtYWNoaW5lIG1lbW9yeS4KICAqICBIVk1DT1BZX2JhZF9ndmFfdG9fZ2ZuOiBTb21lIGd1 ZXN0IHZpcnR1YWwgYWRkcmVzcyBkaWQgbm90IGhhdmUgYSB2YWxpZAotICogICAgICAgICAgICAg ICAgICAgICAgICAgIG1hcHBpbmcgdG8gYSBndWVzdCBwaHlzaWNhbCBhZGRyZXNzLiBJbiB0aGlz IGNhc2UKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBhIHBhZ2UgZmF1bHQgZXhjZXB0aW9u IGlzIGF1dG9tYXRpY2FsbHkgcXVldWVkCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y IGluamVjdGlvbiBpbnRvIHRoZSBjdXJyZW50IEhWTSBWQ1BVLgorICogICAgICAgICAgICAgICAg ICAgICAgICAgIG1hcHBpbmcgdG8gYSBndWVzdCBwaHlzaWNhbCBhZGRyZXNzLiAgVGhlCisgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFnZWZhdWx0X2luZm9fdCBzdHJ1Y3R1cmUgd2lsbCBi ZSBmaWxsZWQgaW4gaWYKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlZCwgYW5k IGEgcGFnZSBmYXVsdCBleGNlcHRpb24gaXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBh dXRvbWF0aWNhbGx5IHF1ZXVlZCBmb3IgaW5qZWN0aW9uIGludG8gdGhlCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgY3VycmVudCBIVk0gVkNQVS4KICAqLwordHlwZWRlZiBzdHJ1Y3QgcGFn ZWZhdWx0X2luZm8KK3sKKyAgICB1bnNpZ25lZCBsb25nIGxpbmVhcjsKKyAgICBpbnQgZWM7Cit9 IHBhZ2VmYXVsdF9pbmZvX3Q7CisKIGVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X3RvX2d1 ZXN0X3ZpcnQoCi0gICAgdW5zaWduZWQgbG9uZyB2YWRkciwgdm9pZCAqYnVmLCBpbnQgc2l6ZSwg dWludDMyX3QgcGZlYyk7CisgICAgdW5zaWduZWQgbG9uZyB2YWRkciwgdm9pZCAqYnVmLCBpbnQg c2l6ZSwgdWludDMyX3QgcGZlYywKKyAgICBwYWdlZmF1bHRfaW5mb190ICpwZmluZm8pOwogZW51 bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVzdF92aXJ0KAotICAgIHZvaWQgKmJ1 ZiwgdW5zaWduZWQgbG9uZyB2YWRkciwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMpOworICAgIHZv aWQgKmJ1ZiwgdW5zaWduZWQgbG9uZyB2YWRkciwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMsCisg ICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZvKTsKIGVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9m ZXRjaF9mcm9tX2d1ZXN0X3ZpcnQoCi0gICAgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIHZhZGRy LCBpbnQgc2l6ZSwgdWludDMyX3QgcGZlYyk7CisgICAgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25n IHZhZGRyLCBpbnQgc2l6ZSwgdWludDMyX3QgcGZlYywKKyAgICBwYWdlZmF1bHRfaW5mb190ICpw ZmluZm8pOwogCiAvKgogICogQXMgYWJvdmUgKGNvcHkgdG8vZnJvbSBhIGd1ZXN0IHZpcnR1YWwg YWRkcmVzcyksIGJ1dCBubyBmYXVsdCBpcyBnZW5lcmF0ZWQKLS0gCjIuMS40CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==