From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v6] x86/hvm: add vcpu parameter to guest memory copy function Date: Tue, 7 Feb 2017 17:35:53 +0000 Message-ID: <20170207173553.52375-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cb9gS-00088f-W9 for xen-devel@lists.xenproject.org; Tue, 07 Feb 2017 17:36:05 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Roger Pau Monne List-Id: xen-devel@lists.xenproject.org Q3VycmVudCBfX2h2bV9jb3B5IGFzc3VtZXMgdGhhdCB0aGUgZGVzdGluYXRpb24gbWVtb3J5IGJl bG9uZ3MgdG8gdGhlIGN1cnJlbnQKdmNwdSwgYnV0IHRoaXMgaXMgbm90IGFsd2F5cyB0aGUgY2Fz ZSBzaW5jZSBmb3IgUFZIdjIgRG9tMCBidWlsZCBodm0gY29weQpmdW5jdGlvbnMgYXJlIHVzZWQg d2l0aCBjdXJyZW50IGJlaW5nIHRoZSBpZGxlIHZjcHUuIEFkZCBhIG5ldyB2Y3B1IHBhcmFtZXRl cgp0byBodm0gY29weSBpbiBvcmRlciB0byBzb2x2ZSB0aGF0LiBOb3RlIHRoYXQgb25seSBodm1f Y29weV90b19ndWVzdF9waHlzIGlzCmNoYW5nZWQgdG8gdGFrZSBhIHZjcHUgcGFyYW1ldGVyLCBi ZWNhdXNlIHRoYXQncyB0aGUgb25seSBvbmUgYXQgdGhlIG1vbWVudAp0aGF0J3MgcmVxdWlyZWQg aW4gb3JkZXIgdG8gYnVpbGQgYSBQVkh2MiBEb20wLgoKV2hpbGUgdGhlcmUsIGFsc28gYXNzZXJ0 IHRoYXQgdGhlIHBhc3NlZCB2Y3B1IGJlbG9uZ3MgdG8gYSBIVk0gZ3Vlc3QuCgpTaWduZWQtb2Zm LWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0tCkNoYW5nZXMg c2luY2UgdjU6CiAtIE5hbWUgdmNwdSBwYXJhbSAndicgaW4gX19odm1fY29weSBhbmQgbW92ZSBp dCdzIHBvc2l0aW9uIGluIHRoZSBwYXJhbWV0ZXIKICAgbGlzdC4KIC0gRG8gbm90IGNhbGwgaHZt X21taW9faW50ZXJuYWwgaWYgdiAhPSBjdXJyZW50LgogLSBSZW1vdmUgaHZtX2NvcHlfdG9fZ3Vl c3RfcGh5c192Y3B1IGFuZCBpbnN0ZWFkIG1vZGlmeSBodm1fY29weV90b19ndWVzdF9waHlzCiAg IHRvIHRha2UgYSB2Y3B1IHBhcmFtZXRlci4KIC0gRml4IHBhcmFtZXRlciBwYXNzZWQgdG8gJXB2 IHByaW50ayBtb2RpZmllci4KCkNoYW5nZXMgc2luY2UgdjQ6CiAtIE5ldyBpbiB0aGUgc2VyaWVz LgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jICAgICAgICB8ICA0ICsrLS0KIHhlbi9h cmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICB8IDM1ICsrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2ludGVyY2VwdC5jICAgICAgfCAgMiArLQog eGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYyAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL3N1cHBvcnQuaCB8ICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlv bnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11 bGF0ZS5jIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKaW5kZXggMGQyMWZlMS4uZmVkODgw MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS9lbXVsYXRlLmMKQEAgLTEyOTQsNyArMTI5NCw3IEBAIHN0YXRpYyBpbnQgaHZtZW11 bF9yZXBfbW92cygKICAgICAgICAgcmMgPSBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoYnVmLCBz Z3BhLCBieXRlcyk7CiAKICAgICBpZiAoIHJjID09IEhWTUNPUFlfb2theSApCi0gICAgICAgIHJj ID0gaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5cyhkZ3BhLCBidWYsIGJ5dGVzKTsKKyAgICAgICAgcmMg PSBodm1fY29weV90b19ndWVzdF9waHlzKGRncGEsIGJ1ZiwgYnl0ZXMsIGN1cnJlbnQpOwogCiAg ICAgeGZyZWUoYnVmKTsKIApAQCAtMTQwNSw3ICsxNDA1LDcgQEAgc3RhdGljIGludCBodm1lbXVs X3JlcF9zdG9zKAogICAgICAgICBpZiAoIGRmICkKICAgICAgICAgICAgIGdwYSAtPSBieXRlcyAt IGJ5dGVzX3Blcl9yZXA7CiAKLSAgICAgICAgcmMgPSBodm1fY29weV90b19ndWVzdF9waHlzKGdw YSwgYnVmLCBieXRlcyk7CisgICAgICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5cyhncGEs IGJ1ZiwgYnl0ZXMsIGN1cnJlbnQpOwogCiAgICAgICAgIGlmICggYnVmICE9IHBfZGF0YSApCiAg ICAgICAgICAgICB4ZnJlZShidWYpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0u YyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggMjFhMTY0OS4uNDJmZjlmZiAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5j CkBAIC0zMDgyLDE2ICszMDgyLDE3IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogI2RlZmluZSBI Vk1DT1BZX3BoeXMgICAgICAgKDB1PDwyKQogI2RlZmluZSBIVk1DT1BZX2xpbmVhciAgICAgKDF1 PDwyKQogc3RhdGljIGVudW0gaHZtX2NvcHlfcmVzdWx0IF9faHZtX2NvcHkoCi0gICAgdm9pZCAq YnVmLCBwYWRkcl90IGFkZHIsIGludCBzaXplLCB1bnNpZ25lZCBpbnQgZmxhZ3MsIHVpbnQzMl90 IHBmZWMsCi0gICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZvKQorICAgIHZvaWQgKmJ1ZiwgcGFk ZHJfdCBhZGRyLCBpbnQgc2l6ZSwgc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBmbGFncywK KyAgICB1aW50MzJfdCBwZmVjLCBwYWdlZmF1bHRfaW5mb190ICpwZmluZm8pCiB7Ci0gICAgc3Ry dWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwogICAgIHVuc2lnbmVkIGxvbmcgZ2ZuOwogICAgIHN0 cnVjdCBwYWdlX2luZm8gKnBhZ2U7CiAgICAgcDJtX3R5cGVfdCBwMm10OwogICAgIGNoYXIgKnA7 CiAgICAgaW50IGNvdW50LCB0b2RvID0gc2l6ZTsKIAorICAgIEFTU0VSVChoYXNfaHZtX2NvbnRh aW5lcl92Y3B1KHYpKTsKKwogICAgIC8qCiAgICAgICogWFhYIERpc2FibGUgZm9yIDQuMS4wOiBQ Vi1vbi1IVk0gZHJpdmVycyB3aWxsIGRvIGdyYW50LXRhYmxlIG9wcwogICAgICAqIHN1Y2ggYXMg cXVlcnlfc2l6ZS4gR3JhbnQtdGFibGUgY29kZSBjdXJyZW50bHkgZG9lcyBjb3B5X3RvL2Zyb21f Z3Vlc3QKQEAgLTMxMTYsNyArMzExNyw3IEBAIHN0YXRpYyBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBf X2h2bV9jb3B5KAogCiAgICAgICAgIGlmICggZmxhZ3MgJiBIVk1DT1BZX2xpbmVhciApCiAgICAg ICAgIHsKLSAgICAgICAgICAgIGdmbiA9IHBhZ2luZ19ndmFfdG9fZ2ZuKGN1cnIsIGFkZHIsICZw ZmVjKTsKKyAgICAgICAgICAgIGdmbiA9IHBhZ2luZ19ndmFfdG9fZ2ZuKHYsIGFkZHIsICZwZmVj KTsKICAgICAgICAgICAgIGlmICggZ2ZuID09IGdmbl94KElOVkFMSURfR0ZOKSApCiAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKCBwZmVjICYgUEZFQ19wYWdlX3BhZ2VkICkKQEAg LTMxNDMsMTIgKzMxNDQsMTIgQEAgc3RhdGljIGVudW0gaHZtX2NvcHlfcmVzdWx0IF9faHZtX2Nv cHkoCiAgICAgICAgICAqIC0gMzItYml0IFdpblhQICgmIG9sZGVyIFdpbmRvd3MpIG9uIEFNRCBD UFVzIGZvciBMQVBJQyBhY2Nlc3NlcywKICAgICAgICAgICogLSBuZXdlciBXaW5kb3dzIChsaWtl IFNlcnZlciAyMDEyKSBmb3IgSFBFVCBhY2Nlc3Nlcy4KICAgICAgICAgICovCi0gICAgICAgIGlm ICggIW5lc3RlZGh2bV92Y3B1X2luX2d1ZXN0bW9kZShjdXJyKQotICAgICAgICAgICAgICYmIGlz X2h2bV92Y3B1KGN1cnIpCisgICAgICAgIGlmICggIW5lc3RlZGh2bV92Y3B1X2luX2d1ZXN0bW9k ZSh2KQorICAgICAgICAgICAgICYmIGlzX2h2bV92Y3B1KHYpICYmIHYgPT0gY3VycmVudAogICAg ICAgICAgICAgICYmIGh2bV9tbWlvX2ludGVybmFsKGdwYSkgKQogICAgICAgICAgICAgcmV0dXJu IEhWTUNPUFlfYmFkX2dmbl90b19tZm47CiAKLSAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21f Z2ZuKGN1cnItPmRvbWFpbiwgZ2ZuLCAmcDJtdCwgUDJNX1VOU0hBUkUpOworICAgICAgICBwYWdl ID0gZ2V0X3BhZ2VfZnJvbV9nZm4odi0+ZG9tYWluLCBnZm4sICZwMm10LCBQMk1fVU5TSEFSRSk7 CiAKICAgICAgICAgaWYgKCAhcGFnZSApCiAgICAgICAgICAgICByZXR1cm4gSFZNQ09QWV9iYWRf Z2ZuX3RvX21mbjsKQEAgLTMxNTYsNyArMzE1Nyw3IEBAIHN0YXRpYyBlbnVtIGh2bV9jb3B5X3Jl c3VsdCBfX2h2bV9jb3B5KAogICAgICAgICBpZiAoIHAybV9pc19wYWdpbmcocDJtdCkgKQogICAg ICAgICB7CiAgICAgICAgICAgICBwdXRfcGFnZShwYWdlKTsKLSAgICAgICAgICAgIHAybV9tZW1f cGFnaW5nX3BvcHVsYXRlKGN1cnItPmRvbWFpbiwgZ2ZuKTsKKyAgICAgICAgICAgIHAybV9tZW1f cGFnaW5nX3BvcHVsYXRlKHYtPmRvbWFpbiwgZ2ZuKTsKICAgICAgICAgICAgIHJldHVybiBIVk1D T1BZX2dmbl9wYWdlZF9vdXQ7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCBwMm1faXNfc2hhcmVk KHAybXQpICkKQEAgLTMxNzgsOSArMzE3OSw5IEBAIHN0YXRpYyBlbnVtIGh2bV9jb3B5X3Jlc3Vs dCBfX2h2bV9jb3B5KAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHN0YXRpYyB1bnNp Z25lZCBsb25nIGxhc3RwYWdlOwogICAgICAgICAgICAgICAgIGlmICggeGNoZygmbGFzdHBhZ2Us IGdmbikgIT0gZ2ZuICkKLSAgICAgICAgICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0RFQlVH LCAiZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSIKKyAgICAgICAgICAgICAgICAg ICAgcHJpbnRrKFhFTkxPR19ERUJVRywgIiVwdiBndWVzdCBhdHRlbXB0ZWQgd3JpdGUgdG8gcmVh ZC1vbmx5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG1lbW9yeSBwYWdlLiBnZm49 JSNseCwgbWZuPSUjbHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbiwgcGFn ZV90b19tZm4ocGFnZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LCBnZm4sIHBh Z2VfdG9fbWZuKHBhZ2UpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAg ICAgICAgIHsKQEAgLTMxODgsNyArMzE4OSw3IEBAIHN0YXRpYyBlbnVtIGh2bV9jb3B5X3Jlc3Vs dCBfX2h2bV9jb3B5KAogICAgICAgICAgICAgICAgICAgICBtZW1jcHkocCwgYnVmLCBjb3VudCk7 CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBtZW1zZXQocCwgMCwg Y291bnQpOwotICAgICAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGN1cnItPmRvbWFpbiwg X21mbihwYWdlX3RvX21mbihwYWdlKSkpOworICAgICAgICAgICAgICAgIHBhZ2luZ19tYXJrX2Rp cnR5KHYtPmRvbWFpbiwgX21mbihwYWdlX3RvX21mbihwYWdlKSkpOwogICAgICAgICAgICAgfQog ICAgICAgICB9CiAgICAgICAgIGVsc2UKQEAgLTMyMDksMTYgKzMyMTAsMTYgQEAgc3RhdGljIGVu dW0gaHZtX2NvcHlfcmVzdWx0IF9faHZtX2NvcHkoCiB9CiAKIGVudW0gaHZtX2NvcHlfcmVzdWx0 IGh2bV9jb3B5X3RvX2d1ZXN0X3BoeXMoCi0gICAgcGFkZHJfdCBwYWRkciwgdm9pZCAqYnVmLCBp bnQgc2l6ZSkKKyAgICBwYWRkcl90IHBhZGRyLCB2b2lkICpidWYsIGludCBzaXplLCBzdHJ1Y3Qg dmNwdSAqdikKIHsKLSAgICByZXR1cm4gX19odm1fY29weShidWYsIHBhZGRyLCBzaXplLAorICAg IHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgcGFkZHIsIHNpemUsIHYsCiAgICAgICAgICAgICAgICAg ICAgICAgSFZNQ09QWV90b19ndWVzdCB8IEhWTUNPUFlfcGh5cywgMCwgTlVMTCk7CiB9CiAKIGVu dW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfcGh5cygKICAgICB2b2lkICpi dWYsIHBhZGRyX3QgcGFkZHIsIGludCBzaXplKQogewotICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1 ZiwgcGFkZHIsIHNpemUsCisgICAgcmV0dXJuIF9faHZtX2NvcHkoYnVmLCBwYWRkciwgc2l6ZSwg Y3VycmVudCwKICAgICAgICAgICAgICAgICAgICAgICBIVk1DT1BZX2Zyb21fZ3Vlc3QgfCBIVk1D T1BZX3BoeXMsIDAsIE5VTEwpOwogfQogCkBAIC0zMjI2LDcgKzMyMjcsNyBAQCBlbnVtIGh2bV9j b3B5X3Jlc3VsdCBodm1fY29weV90b19ndWVzdF9saW5lYXIoCiAgICAgdW5zaWduZWQgbG9uZyBh ZGRyLCB2b2lkICpidWYsIGludCBzaXplLCB1aW50MzJfdCBwZmVjLAogICAgIHBhZ2VmYXVsdF9p bmZvX3QgKnBmaW5mbykKIHsKLSAgICByZXR1cm4gX19odm1fY29weShidWYsIGFkZHIsIHNpemUs CisgICAgcmV0dXJuIF9faHZtX2NvcHkoYnVmLCBhZGRyLCBzaXplLCBjdXJyZW50LAogICAgICAg ICAgICAgICAgICAgICAgIEhWTUNPUFlfdG9fZ3Vlc3QgfCBIVk1DT1BZX2xpbmVhciwKICAgICAg ICAgICAgICAgICAgICAgICBQRkVDX3BhZ2VfcHJlc2VudCB8IFBGRUNfd3JpdGVfYWNjZXNzIHwg cGZlYywgcGZpbmZvKTsKIH0KQEAgLTMyMzUsNyArMzIzNiw3IEBAIGVudW0gaHZtX2NvcHlfcmVz dWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfbGluZWFyKAogICAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQg bG9uZyBhZGRyLCBpbnQgc2l6ZSwgdWludDMyX3QgcGZlYywKICAgICBwYWdlZmF1bHRfaW5mb190 ICpwZmluZm8pCiB7Ci0gICAgcmV0dXJuIF9faHZtX2NvcHkoYnVmLCBhZGRyLCBzaXplLAorICAg IHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgYWRkciwgc2l6ZSwgY3VycmVudCwKICAgICAgICAgICAg ICAgICAgICAgICBIVk1DT1BZX2Zyb21fZ3Vlc3QgfCBIVk1DT1BZX2xpbmVhciwKICAgICAgICAg ICAgICAgICAgICAgICBQRkVDX3BhZ2VfcHJlc2VudCB8IHBmZWMsIHBmaW5mbyk7CiB9CkBAIC0z MjQ0LDcgKzMyNDUsNyBAQCBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fZmV0Y2hfZnJvbV9ndWVz dF9saW5lYXIoCiAgICAgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIGFkZHIsIGludCBzaXplLCB1 aW50MzJfdCBwZmVjLAogICAgIHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbykKIHsKLSAgICByZXR1 cm4gX19odm1fY29weShidWYsIGFkZHIsIHNpemUsCisgICAgcmV0dXJuIF9faHZtX2NvcHkoYnVm LCBhZGRyLCBzaXplLCBjdXJyZW50LAogICAgICAgICAgICAgICAgICAgICAgIEhWTUNPUFlfZnJv bV9ndWVzdCB8IEhWTUNPUFlfbGluZWFyLAogICAgICAgICAgICAgICAgICAgICAgIFBGRUNfcGFn ZV9wcmVzZW50IHwgUEZFQ19pbnNuX2ZldGNoIHwgcGZlYywgcGZpbmZvKTsKIH0KZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vaW50ZXJjZXB0LmMgYi94ZW4vYXJjaC94ODYvaHZtL2ludGVy Y2VwdC5jCmluZGV4IDcyMWZiMzguLjUxNTdlOWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9o dm0vaW50ZXJjZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pbnRlcmNlcHQuYwpAQCAtMTM1 LDcgKzEzNSw3IEBAIGludCBodm1fcHJvY2Vzc19pb19pbnRlcmNlcHQoY29uc3Qgc3RydWN0IGh2 bV9pb19oYW5kbGVyICpoYW5kbGVyLAogICAgICAgICAgICAgaWYgKCBwLT5kYXRhX2lzX3B0ciAp CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgc3dpdGNoICggaHZtX2NvcHlfdG9fZ3Vl c3RfcGh5cyhwLT5kYXRhICsgc3RlcCAqIGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmZGF0YSwgcC0+c2l6ZSkgKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEsIHAtPnNpemUsIGN1cnJlbnQpICkK ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2FzZSBIVk1DT1BZX29rYXk6CiAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92 bXgvcmVhbG1vZGUuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxtb2RlLmMKaW5kZXggN2Vm NGU0NS4uNDBlZmFkMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUu YworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jCkBAIC03Nyw3ICs3Nyw3IEBA IHN0YXRpYyB2b2lkIHJlYWxtb2RlX2RlbGl2ZXJfZXhjZXB0aW9uKAogICAgICAgICBwc3RrID0g cmVncy0+c3AgLT0gNjsKIAogICAgIHBzdGsgKz0gaHZtZW11bF9nZXRfc2VnX3JlZyh4ODZfc2Vn X3NzLCBodm1lbXVsX2N0eHQpLT5iYXNlOwotICAgICh2b2lkKWh2bV9jb3B5X3RvX2d1ZXN0X3Bo eXMocHN0aywgZnJhbWUsIHNpemVvZihmcmFtZSkpOworICAgICh2b2lkKWh2bV9jb3B5X3RvX2d1 ZXN0X3BoeXMocHN0aywgZnJhbWUsIHNpemVvZihmcmFtZSksIGN1cnJlbnQpOwogCiAgICAgY3Ny LT5zZWwgID0gY3NfZWlwID4+IDE2OwogICAgIGNzci0+YmFzZSA9ICh1aW50MzJfdCljc3ItPnNl bCA8PCA0OwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3VwcG9ydC5oIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3VwcG9ydC5oCmluZGV4IGJhNTg5OWMuLjE2NTUwYzUg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N1cHBvcnQuaAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9zdXBwb3J0LmgKQEAgLTY4LDcgKzY4LDcgQEAgZW51bSBodm1f Y29weV9yZXN1bHQgewogICogYWRkcmVzcyByYW5nZSBkb2VzIG5vdCBtYXAgZW50aXJlbHkgb250 byBvcmRpbmFyeSBtYWNoaW5lIG1lbW9yeS4KICAqLwogZW51bSBodm1fY29weV9yZXN1bHQgaHZt X2NvcHlfdG9fZ3Vlc3RfcGh5cygKLSAgICBwYWRkcl90IHBhZGRyLCB2b2lkICpidWYsIGludCBz aXplKTsKKyAgICBwYWRkcl90IHBhZGRyLCB2b2lkICpidWYsIGludCBzaXplLCBzdHJ1Y3QgdmNw dSAqdik7CiBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoCiAg ICAgdm9pZCAqYnVmLCBwYWRkcl90IHBhZGRyLCBpbnQgc2l6ZSk7CiAKLS0gCjIuMTAuMSAoQXBw bGUgR2l0LTc4KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=