From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v4 3/4] x86/pt: enable binding of GSIs to a PVH Dom0 Date: Thu, 1 Jun 2017 12:49:13 +0100 Message-ID: <20170601114914.18601-4-roger.pau@citrix.com> References: <20170601114914.18601-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dGObz-0005Yb-Ao for xen-devel@lists.xenproject.org; Thu, 01 Jun 2017 11:49:55 +0000 In-Reply-To: <20170601114914.18601-1-roger.pau@citrix.com> 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, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: Andrew Cooper , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org QWNoaWV2ZSB0aGlzIGJ5IGV4cGFuZGluZyBwdF9pcnFfY3JlYXRlX2JpbmQgaW4gb3JkZXIgdG8g c3VwcG9ydCBtYXBwaW5nCmludGVycnVwdHMgb2YgdHlwZSBQVF9JUlFfVFlQRV9QQ0kgdG8gYSBQ VkggRG9tMC4gR1NJcyBib3VuZCB0byBEb20wIGFyZSBhbHdheXMKaWRlbnRpdHkgYm91bmQsIHdo aWNoIG1lYW5zIHRoZSBhbGwgdGhlIGZpZWxkcyBpbnNpZGUgb2YgdGhlIHUucGNpIHN1Yi1zdHJ1 Y3QKYXJlIGlnbm9yZWQsIGFuZCBvbmx5IHRoZSBtYWNoaW5lX2lycSBpcyBhY3R1YWxseSB1c2Vk IGluIG9yZGVyIHRvIGRldGVybWluZQp3aGljaCBHU0kgdGhlIGNhbGxlciB3YW50cyB0byBiaW5k LgoKQWxzbywgdGhlIGh2bV9pcnFfZHBjaSBzdHJ1Y3QgaXMgbm90IHVzZWQgYnkgYSBQVkggRG9t MCwgc2luY2UgdGhhdCdzIHVzZWQgdG8Kcm91dGUgaW50ZXJydXB0cyBhbmQgYWxsb3cgZGlmZmVy ZW50IGhvc3QgdG8gZ3Vlc3QgR1NJIG1hcHBpbmdzLCB3aGljaCBpcyBub3QKdXNlZCBieSBhIFBW SCBEb20wLgoKVGhpcyByZXF1aXJlcyBhZGRpbmcgc29tZSBzcGVjaWZpYyBoYW5kbGVycyBmb3Ig c3VjaCBkaXJlY3RseSBtYXBwZWQgR1NJcywKd2hpY2ggYnlwYXNzIHRoZSBQQ0kgaW50ZXJydXB0 IHJvdXRpbmcgZG9uZSBieSBYZW4gZm9yIEhWTSBndWVzdHMuCgpTaWduZWQtb2ZmLWJ5OiBSb2dl ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8 amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgotLS0KQ2hhbmdlcyBzaW5jZSB2MzoKIC0gUmV3cml0ZSB0aGUgY29tbWVudCBpbiBo dm1fZ3NpX2Fzc2VydC4KIC0gVW5jb25kaXRpb25hbGx5IHNldCBnc2lfYXNzZXJ0X2NvdW50IHRv IDAgaW4gaHZtX2dzaV9kZWFzc2VydC4KIC0gSW4gdGhlIHBpcnEgdGltZW91dCBmdW5jdGlvbiBk byBub3QgZGVmZXIgdGhlIEVPSSBmb3IgdGhlIGlkZW50aXR5CiAgIG1hcHBlZCBjYXNlLgogLSBB c3NlcnQgdGhhdCB0aGUgdklPIEFQSUMgZW50cnkgaXMgbm90IG1hc2tlZCBiZWZvcmUgY2hlY2tp bmcgdGhlCiAgIHRyaWdnZXIgbW9kZS4KIC0gSW4gdGhlIGZhaWx1cmUgcGF0aCBvZiBwdF9pcnFf Y3JlYXRlX2JpbmQgY2hlY2sgdGhhdCBnaXJxIGFuZCBkaWdsCiAgIGFyZSBub3QgTlVMTCBpbnN0 ZWFkIG9mIHJlbHlpbmcgb24gd2hldGhlciB0aGUgZG9tYWluIGlzIERvbTAuCiAtIEluIHB0X2ly cV9kZXN0cm95X2JpbmQgbW92ZSBhIGNvbmRpdGlvbiB0byB0aGUgb3V0ZXIgaWYgaW4gb3JkZXIg dG8KICAgYXZvaWQgY29kZSBpbmRlbnRhdGlvbi4KCkNoYW5nZXMgc2luY2UgdjI6CiAtIFR1cm4g dGhlIGFzc2VydCBpbiBodm1fZ3NpX3tkZX1hc3NlcnQgaW50byBhbiBhc3NlcnRfdW5yZWFjaGFi bGUgKGxpa2UgaXQncwogICBkb25lIGluIF9faHZtX3BjaV9pbnR4X3tkZX1hc3NlcnQuCiAtIERv IG5vdCBpbmNyZWFzZS9kZWNyZWFzZSBnc2lfYXNzZXJ0X2NvdW50LCBpbnN0ZWFkIHNldCBpdCB0 byAxLzAuCiAtIEZpeCBhIGNvbW1lbnQgZ3JhbW1hciBlcnJvci4KIC0gQ29udmVydCB0aGUgcHRf aXJxX2NyZWF0ZV9iaW5kIGFzc2VydHMgZm9yIGJpbmQgdHlwZSBhbmQgcGlycSByYW5nZSBpbnRv IGFuCiAgIGVycm9yIHBhdGguCiAtIFJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgbWVzc2FnZSBidWZm ZXJzLCAyNCBzaG91bGQgYmUgZW5vdWdoLgogLSBBbGxvdyBwdF9pcnFfY3JlYXRlX2JpbmQgdG8g dW5iaW5kIGhhcmR3YXJlIGRvbWFpbiBHU0lzLgogLSBzL19faHZtX3BpcnFfZW9pL2h2bV9waXJx X2VvaS8uCiAtIFJlbW92ZSBBU1NFUlQocGlycV9kcGNpKSBmcm9tIGh2bV9waXJxX2VvaS4KIC0g UmVtb3ZlIHBpcnFfZHBjaSBsb2NhbCB2YXJpYWJsZSBmcm9tIGh2bV9nc2lfZW9pIChpdCdzIHVz ZWQgb25seSBvbmNlKS4KIC0gcy9fX2h2bV9nc2lfZW9pL2h2bV9nc2lfZW9pLy4KIC0gQWRkIGEg Y29tbWVudCB0byBkb2N1bWVudCBodm1fZ3NpX2Fzc2VydCB1c2FnZSBvZiBnc2lfYXNzZXJ0X2Nv dW50LgoKQ2hhbmdlcyBzaW5jZSB2MToKIC0gUmVtb3ZlIHRoZSBQVF9JUlFfVFlQRV9HU0kgYW5k IGluc3RlYWQganVzdCB1c2UgUFRfSVJRX1RZUEVfUENJIHdpdGggYQogICBoYXJkd2FyZSBkb21h aW4gc3BlY2lhbCBjYXNpbmcuCiAtIENoZWNrIHRoZSB0cmlnZ2VyIG1vZGUgb2YgdGhlIERvbTAg dklPIEFQSUMgaW4gb3JkZXIgdG8gc2V0IHRoZSBzaGFyZWFibGUKICAgZmxhZ3MgaW4gcHRfaXJx X2NyZWF0ZV9iaW5kLgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vaXJxLmMgICAgICAgfCAgNDIgKysr KysrKysrCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pby5jIHwgMjE1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL3hlbi9odm0vaXJxLmgg ICAgfCAgIDYgKysKIDMgZmlsZXMgY2hhbmdlZCwgMjEyIGluc2VydGlvbnMoKyksIDUxIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaXJxLmMgYi94ZW4vYXJjaC94 ODYvaHZtL2lycS5jCmluZGV4IDg2MjU1ODQ3YTYuLmU0MjVkZjkxM2MgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vaXJxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pcnEuYwpAQCAtMTI2 LDYgKzEyNiw0OCBAQCB2b2lkIGh2bV9wY2lfaW50eF9kZWFzc2VydCgKICAgICBzcGluX3VubG9j aygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsKIH0KIAordm9pZCBodm1fZ3NpX2Fzc2Vy dChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZ3NpKQoreworICAgIHN0cnVjdCBodm1f aXJxICpodm1faXJxID0gaHZtX2RvbWFpbl9pcnEoZCk7CisKKyAgICBpZiAoIGdzaSA+PSBodm1f aXJxLT5ucl9nc2lzICkKKyAgICB7CisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAg ICAgICByZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBfX2h2bV9wY2lfaW50eF97ZGV9 YXNzZXJ0IHVzZXMgYSBiaXRmaWVsZCBpbiBwY2lfaW50eC5pIHRvIHRyYWNrIHRoZQorICAgICAq IHN0YXR1cyBvZiBlYWNoIGludGVycnVwdCBsaW5lLCBhbmQgWGVuIGRvZXMgdGhlIHJvdXRpbmcg YW5kIEdTSQorICAgICAqIGFzc2VydGlvbiBiYXNlZCBvbiB0aGF0LiBUaGUgdmFsdWUgb2YgdGhl IHBjaV9pbnR4LmkgYml0bWFwIHByZXZlbnRzIHRoZQorICAgICAqIHNhbWUgbGluZSBmcm9tIHRy aWdnZXJpbmcgbXVsdGlwbGUgdGltZXMuIEFzIHdlIGRvbid0IHVzZSB0aGF0IGJpdG1hcAorICAg ICAqIGZvciB0aGUgaGFyZHdhcmUgZG9tYWluLCBYZW4gbmVlZHMgdG8gcmVseSBvbiBnc2lfYXNz ZXJ0X2NvdW50IGluIG9yZGVyCisgICAgICogdG8ga25vdyBpZiB0aGUgR1NJIGlzIHBlbmRpbmcg b3Igbm90LgorICAgICAqLworICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9s b2NrKTsKKyAgICBpZiAoICFodm1faXJxLT5nc2lfYXNzZXJ0X2NvdW50W2dzaV0gKQorICAgIHsK KyAgICAgICAgaHZtX2lycS0+Z3NpX2Fzc2VydF9jb3VudFtnc2ldID0gMTsKKyAgICAgICAgYXNz ZXJ0X2dzaShkLCBnc2kpOworICAgIH0KKyAgICBzcGluX3VubG9jaygmZC0+YXJjaC5odm1fZG9t YWluLmlycV9sb2NrKTsKK30KKwordm9pZCBodm1fZ3NpX2RlYXNzZXJ0KHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGludCBnc2kpCit7CisgICAgc3RydWN0IGh2bV9pcnEgKmh2bV9pcnEgPSBo dm1fZG9tYWluX2lycShkKTsKKworICAgIGlmICggZ3NpID49IGh2bV9pcnEtPm5yX2dzaXMgKQor ICAgIHsKKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIHJldHVybjsKKyAg ICB9CisKKyAgICBzcGluX2xvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAg aHZtX2lycS0+Z3NpX2Fzc2VydF9jb3VudFtnc2ldID0gMDsKKyAgICBzcGluX3VubG9jaygmZC0+ YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsKK30KKwogdm9pZCBodm1faXNhX2lycV9hc3NlcnQo CiAgICAgc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlzYV9pcnEpCiB7CmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pby5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvaW8uYwppbmRleCBlNWE0M2U1MDhmLi5hMTNmNzkwZjdlIDEwMDY0NAotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9pby5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMK QEAgLTE2NCw2ICsxNjQsMjUgQEAgc3RhdGljIHZvaWQgcHRfaXJxX3RpbWVfb3V0KHZvaWQgKmRh dGEpCiAKICAgICBzcGluX2xvY2soJmlycV9tYXAtPmRvbS0+ZXZlbnRfbG9jayk7CiAKKyAgICBp ZiAoIGlycV9tYXAtPmZsYWdzICYgSFZNX0lSUV9EUENJX0lERU5USVRZX0dTSSApCisgICAgewor ICAgICAgICBzdHJ1Y3QgcGlycSAqcGlycSA9IGRwY2lfcGlycShpcnFfbWFwKTsKKworICAgICAg ICBBU1NFUlQoaXNfaGFyZHdhcmVfZG9tYWluKGlycV9tYXAtPmRvbSkpOworICAgICAgICAvKgor ICAgICAgICAgKiBJZGVudGl0eSBtYXBwZWQsIG5vIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBn dWVzdCBHU0kgbGlzdCB0byBmaW5kCisgICAgICAgICAqIG90aGVyIHBpcnFzIHNoYXJpbmcgdGhl IHNhbWUgZ3Vlc3QgR1NJLgorICAgICAgICAgKgorICAgICAgICAgKiBJbiB0aGUgaWRlbnRpdHkg bWFwcGVkIGNhc2UgdGhlIEVPSSBjYW4gYWxzbyBiZSBkb25lIG5vdywgdGhpcyB3YXkKKyAgICAg ICAgICogdGhlIGl0ZXJhdGlvbiBvdmVyIHRoZSBsaXN0IG9mIGRvbWFpbiBwaXJxcyBpcyBhdm9p ZGVkLgorICAgICAgICAgKi8KKyAgICAgICAgaHZtX2dzaV9kZWFzc2VydChpcnFfbWFwLT5kb20s IHBpcnEtPnBpcnEpOworICAgICAgICBpcnFfbWFwLT5mbGFncyB8PSBIVk1fSVJRX0RQQ0lfRU9J X0xBVENIOworICAgICAgICBwdF9pcnFfZ3Vlc3RfZW9pKGlycV9tYXAtPmRvbSwgaXJxX21hcCwg TlVMTCk7CisgICAgICAgIHNwaW5fdW5sb2NrKCZpcnFfbWFwLT5kb20tPmV2ZW50X2xvY2spOwor ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgZHBjaSA9IGRvbWFpbl9nZXRfaXJxX2RwY2ko aXJxX21hcC0+ZG9tKTsKICAgICBpZiAoIHVubGlrZWx5KCFkcGNpKSApCiAgICAgewpAQCAtMjc0 LDEwICsyOTMsMTYgQEAgaW50IHB0X2lycV9jcmVhdGVfYmluZCgKICAgICBzcGluX2xvY2soJmQt PmV2ZW50X2xvY2spOwogCiAgICAgaHZtX2lycV9kcGNpID0gZG9tYWluX2dldF9pcnFfZHBjaShk KTsKLSAgICBpZiAoIGh2bV9pcnFfZHBjaSA9PSBOVUxMICkKKyAgICBpZiAoIGh2bV9pcnFfZHBj aSA9PSBOVUxMICYmICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQogICAgIHsKICAgICAgICAgdW5z aWduZWQgaW50IGk7CiAKKyAgICAgICAgLyoKKyAgICAgICAgICogTkI6IHRoZSBoYXJkd2FyZSBk b21haW4gZG9lc24ndCB1c2UgYSBodm1faXJxX2RwY2kgc3RydWN0IGJlY2F1c2UKKyAgICAgICAg ICogaXQncyBvbmx5IGFsbG93ZWQgdG8gaWRlbnRpdHkgbWFwIEdTSXMsIGFuZCBzbyB0aGUgZGF0 YSBjb250YWluZWQgaW4KKyAgICAgICAgICogdGhhdCBzdHJ1Y3QgKHVzZWQgdG8gbWFwIGd1ZXN0 IEdTSXMgaW50byBtYWNoaW5lIEdTSXMgYW5kIHBlcmZvcm0KKyAgICAgICAgICogaW50ZXJydXB0 IHJvdXRpbmcpIGl0J3MgY29tcGxldGVseSB1c2VsZXNzIHRvIGl0LgorICAgICAgICAgKi8KICAg ICAgICAgaHZtX2lycV9kcGNpID0geHphbGxvYyhzdHJ1Y3QgaHZtX2lycV9kcGNpKTsKICAgICAg ICAgaWYgKCBodm1faXJxX2RwY2kgPT0gTlVMTCApCiAgICAgICAgIHsKQEAgLTQyMiwzNSArNDQ3 LDUyIEBAIGludCBwdF9pcnFfY3JlYXRlX2JpbmQoCiAgICAgY2FzZSBQVF9JUlFfVFlQRV9QQ0k6 CiAgICAgY2FzZSBQVF9JUlFfVFlQRV9NU0lfVFJBTlNMQVRFOgogICAgIHsKLSAgICAgICAgdW5z aWduZWQgaW50IGJ1cyA9IHB0X2lycV9iaW5kLT51LnBjaS5idXM7Ci0gICAgICAgIHVuc2lnbmVk IGludCBkZXZpY2UgPSBwdF9pcnFfYmluZC0+dS5wY2kuZGV2aWNlOwotICAgICAgICB1bnNpZ25l ZCBpbnQgaW50eCA9IHB0X2lycV9iaW5kLT51LnBjaS5pbnR4OwotICAgICAgICB1bnNpZ25lZCBp bnQgZ3Vlc3RfZ3NpID0gaHZtX3BjaV9pbnR4X2dzaShkZXZpY2UsIGludHgpOwotICAgICAgICB1 bnNpZ25lZCBpbnQgbGluayA9IGh2bV9wY2lfaW50eF9saW5rKGRldmljZSwgaW50eCk7Ci0gICAg ICAgIHN0cnVjdCBkZXZfaW50eF9nc2lfbGluayAqZGlnbCA9IHhtYWxsb2Moc3RydWN0IGRldl9p bnR4X2dzaV9saW5rKTsKLSAgICAgICAgc3RydWN0IGh2bV9naXJxX2RwY2lfbWFwcGluZyAqZ2ly cSA9Ci0gICAgICAgICAgICB4bWFsbG9jKHN0cnVjdCBodm1fZ2lycV9kcGNpX21hcHBpbmcpOwor ICAgICAgICBzdHJ1Y3QgZGV2X2ludHhfZ3NpX2xpbmsgKmRpZ2wgPSBOVUxMOworICAgICAgICBz dHJ1Y3QgaHZtX2dpcnFfZHBjaV9tYXBwaW5nICpnaXJxID0gTlVMTDsKKyAgICAgICAgdW5zaWdu ZWQgaW50IGd1ZXN0X2dzaTsKIAotICAgICAgICBpZiAoICFkaWdsIHx8ICFnaXJxICkKKyAgICAg ICAgLyoKKyAgICAgICAgICogTWFwcGluZyBHU0lzIGZvciB0aGUgaGFyZHdhcmUgZG9tYWluIGlz IGRpZmZlcmVudCB0aGFuIGRvaW5nIGl0IGZvcgorICAgICAgICAgKiBhbiB1bnByaXZpbGVkZ2Vk IGd1ZXN0LCB0aGUgaGFyZHdhcmUgZG9tYWluIGlzIG9ubHkgYWxsb3dlZCB0bworICAgICAgICAg KiBpZGVudGl0eSBtYXAgR1NJcywgYW5kIGFzIHN1Y2ggYWxsIHRoZSBkYXRhIGluIHRoZSB1LnBj aSB1bmlvbiBpcworICAgICAgICAgKiBkaXNjYXJkZWQuCisgICAgICAgICAqLworICAgICAgICBp ZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBzcGlu X3VubG9jaygmZC0+ZXZlbnRfbG9jayk7Ci0gICAgICAgICAgICB4ZnJlZShnaXJxKTsKLSAgICAg ICAgICAgIHhmcmVlKGRpZ2wpOwotICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Ci0gICAgICAg IH0KKyAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW5rOworCisgICAgICAgICAgICBkaWdsID0g eG1hbGxvYyhzdHJ1Y3QgZGV2X2ludHhfZ3NpX2xpbmspOworICAgICAgICAgICAgZ2lycSA9IHht YWxsb2Moc3RydWN0IGh2bV9naXJxX2RwY2lfbWFwcGluZyk7CiAKLSAgICAgICAgaHZtX2lycV9k cGNpLT5saW5rX2NudFtsaW5rXSsrOworICAgICAgICAgICAgaWYgKCAhZGlnbCB8fCAhZ2lycSAp CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJmQtPmV2ZW50X2xv Y2spOworICAgICAgICAgICAgICAgIHhmcmVlKGdpcnEpOworICAgICAgICAgICAgICAgIHhmcmVl KGRpZ2wpOworICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgICAgICAgICAgfQor CisgICAgICAgICAgICBnaXJxLT5idXMgPSBkaWdsLT5idXMgPSBwdF9pcnFfYmluZC0+dS5wY2ku YnVzOworICAgICAgICAgICAgZ2lycS0+ZGV2aWNlID0gZGlnbC0+ZGV2aWNlID0gcHRfaXJxX2Jp bmQtPnUucGNpLmRldmljZTsKKyAgICAgICAgICAgIGdpcnEtPmludHggPSBkaWdsLT5pbnR4ID0g cHRfaXJxX2JpbmQtPnUucGNpLmludHg7CisgICAgICAgICAgICBsaXN0X2FkZF90YWlsKCZkaWds LT5saXN0LCAmcGlycV9kcGNpLT5kaWdsX2xpc3QpOwogCi0gICAgICAgIGRpZ2wtPmJ1cyA9IGJ1 czsKLSAgICAgICAgZGlnbC0+ZGV2aWNlID0gZGV2aWNlOwotICAgICAgICBkaWdsLT5pbnR4ID0g aW50eDsKLSAgICAgICAgbGlzdF9hZGRfdGFpbCgmZGlnbC0+bGlzdCwgJnBpcnFfZHBjaS0+ZGln bF9saXN0KTsKKyAgICAgICAgICAgIGd1ZXN0X2dzaSA9IGh2bV9wY2lfaW50eF9nc2koZGlnbC0+ ZGV2aWNlLCBkaWdsLT5pbnR4KTsKKyAgICAgICAgICAgIGxpbmsgPSBodm1fcGNpX2ludHhfbGlu ayhkaWdsLT5kZXZpY2UsIGRpZ2wtPmludHgpOwogCi0gICAgICAgIGdpcnEtPmJ1cyA9IGJ1czsK LSAgICAgICAgZ2lycS0+ZGV2aWNlID0gZGV2aWNlOwotICAgICAgICBnaXJxLT5pbnR4ID0gaW50 eDsKLSAgICAgICAgZ2lycS0+bWFjaGluZV9nc2kgPSBwaXJxOwotICAgICAgICBsaXN0X2FkZF90 YWlsKCZnaXJxLT5saXN0LCAmaHZtX2lycV9kcGNpLT5naXJxW2d1ZXN0X2dzaV0pOworICAgICAg ICAgICAgaHZtX2lycV9kcGNpLT5saW5rX2NudFtsaW5rXSsrOworCisgICAgICAgICAgICBnaXJx LT5tYWNoaW5lX2dzaSA9IHBpcnE7CisgICAgICAgICAgICBsaXN0X2FkZF90YWlsKCZnaXJxLT5s aXN0LCAmaHZtX2lycV9kcGNpLT5naXJxW2d1ZXN0X2dzaV0pOworICAgICAgICB9CisgICAgICAg IGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgLyogTVNJX1RSQU5TTEFURSBpcyBub3Qgc3Vw cG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBkb21haW4uICovCisgICAgICAgICAgICBpZiAoIHB0X2ly cV9iaW5kLT5pcnFfdHlwZSAhPSBQVF9JUlFfVFlQRV9QQ0kgfHwKKyAgICAgICAgICAgICAgICAg cGlycSA+PSBodm1fZG9tYWluX2lycShkKS0+bnJfZ3NpcyApCisgICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CisgICAgICAgICAgICBndWVzdF9nc2kgPSBwaXJxOworICAgICAgICB9CiAK ICAgICAgICAgLyogQmluZCB0aGUgc2FtZSBtaXJxIG9uY2UgaW4gdGhlIHNhbWUgZG9tYWluICov CiAgICAgICAgIGlmICggIShwaXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9EUENJX01BUFBFRCkg KQpAQCAtNDcyLDcgKzUxNCwyOCBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAogICAgICAgICAg ICAgICAgIHBpcnFfZHBjaS0+ZmxhZ3MgPSBIVk1fSVJRX0RQQ0lfTUFQUEVEIHwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSFZNX0lSUV9EUENJX01BQ0hfUENJIHwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFZNX0lSUV9EUENJX0dVRVNUX1BDSTsKLSAg ICAgICAgICAgICAgICBzaGFyZSA9IEJJTkRfUElSUV9fV0lMTF9TSEFSRTsKKyAgICAgICAgICAg ICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQorICAgICAgICAgICAgICAgICAgICBz aGFyZSA9IEJJTkRfUElSUV9fV0lMTF9TSEFSRTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGluOworICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX3Zpb2FwaWMgKnZpb2FwaWMgPSBnc2lfdmlvYXBp YyhkLCBndWVzdF9nc2ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZwaW4pOworCisgICAgICAgICAgICAgICAgICAgIGlmICgg IXZpb2FwaWMgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg ICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBpcnFf ZHBjaS0+ZmxhZ3MgfD0gSFZNX0lSUV9EUENJX0lERU5USVRZX0dTSTsKKyAgICAgICAgICAgICAg ICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogQ2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRp bmcgdklPIEFQSUMgcGluIGlzIGNvbmZpZ3VyZWQKKyAgICAgICAgICAgICAgICAgICAgICogbGV2 ZWwgb3IgZWRnZSB0cmlnZ2VyLCBsZXZlbCB0cmlnZ2VyZWQgaW50ZXJydXB0cyB3aWxsCisgICAg ICAgICAgICAgICAgICAgICAqIGJlIG1hcmtlZCBhcyBzaGFyZWFibGUuCisgICAgICAgICAgICAg ICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIXZpb2FwaWMtPnJlZGlydGJs W3Bpbl0uZmllbGRzLm1hc2spOworICAgICAgICAgICAgICAgICAgICBzaGFyZSA9IHZpb2FwaWMt PnJlZGlydGJsW3Bpbl0uZmllbGRzLnRyaWdfbW9kZTsKKyAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICB9CiAKICAgICAgICAgICAgIC8qIEluaXQgdGltZXIgYmVmb3JlIGJpbmRpbmcgKi8K QEAgLTQ4OSw5ICs1NTIsMTYgQEAgaW50IHB0X2lycV9jcmVhdGVfYmluZCgKICAgICAgICAgICAg ICAgICAgKiBJUlFfR1VFU1QgaXMgbm90IHNldC4gQXMgc3VjaCB3ZSBjYW4gcmVzZXQgJ2RvbScg ZGlyZWN0bHkuCiAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgcGlycV9kcGNp LT5kb20gPSBOVUxMOwotICAgICAgICAgICAgICAgIGxpc3RfZGVsKCZnaXJxLT5saXN0KTsKLSAg ICAgICAgICAgICAgICBsaXN0X2RlbCgmZGlnbC0+bGlzdCk7Ci0gICAgICAgICAgICAgICAgaHZt X2lycV9kcGNpLT5saW5rX2NudFtsaW5rXS0tOworICAgICAgICAgICAgICAgIGlmICggZ2lycSB8 fCBkaWdsICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBsaW5rOworCisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChnaXJxICYmIGRpZ2wpOwor ICAgICAgICAgICAgICAgICAgICBsaXN0X2RlbCgmZ2lycS0+bGlzdCk7CisgICAgICAgICAgICAg ICAgICAgIGxpc3RfZGVsKCZkaWdsLT5saXN0KTsKKyAgICAgICAgICAgICAgICAgICAgbGluayA9 IGh2bV9wY2lfaW50eF9saW5rKGRpZ2wtPmRldmljZSwgZGlnbC0+aW50eCk7CisgICAgICAgICAg ICAgICAgICAgIGh2bV9pcnFfZHBjaS0+bGlua19jbnRbbGlua10tLTsKKyAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgcGlycV9kcGNpLT5mbGFncyA9IDA7CiAgICAgICAgICAgICAg ICAgcGlycV9jbGVhbnVwX2NoZWNrKGluZm8sIGQpOwogICAgICAgICAgICAgICAgIHNwaW5fdW5s b2NrKCZkLT5ldmVudF9sb2NrKTsKQEAgLTUwNCwxMCArNTc0LDE3IEBAIGludCBwdF9pcnFfY3Jl YXRlX2JpbmQoCiAgICAgICAgIHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKIAogICAgICAg ICBpZiAoIGlvbW11X3ZlcmJvc2UgKQotICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8K LSAgICAgICAgICAgICAgICAgICAiZCVkOiBiaW5kOiBtX2dzaT0ldSBnX2dzaT0ldSBkZXY9JTAy eC4lMDJ4LiV1IGludHg9JXVcbiIsCi0gICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBw aXJxLCBndWVzdF9nc2ksIGJ1cywKLSAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZpY2Up LCBQQ0lfRlVOQyhkZXZpY2UpLCBpbnR4KTsKKyAgICAgICAgeworICAgICAgICAgICAgY2hhciBi dWZbMjRdID0gIiI7CisKKyAgICAgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSAp CisgICAgICAgICAgICAgICAgc25wcmludGYoYnVmLCBBUlJBWV9TSVpFKGJ1ZiksICIgZGV2PSUw MnguJTAyeC4ldSBpbnR4PSV1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkaWdsLT5idXMs IFBDSV9TTE9UKGRpZ2wtPmRldmljZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZV TkMoZGlnbC0+ZGV2aWNlKSwgZGlnbC0+aW50eCk7CisKKyAgICAgICAgICAgIHByaW50ayhYRU5M T0dfR19JTkZPICJkJWQ6IGJpbmQ6IG1fZ3NpPSV1IGdfZ3NpPSV1JXNcbiIsCisgICAgICAgICAg ICAgICAgICAgZC0+ZG9tYWluX2lkLCBwaXJxLCBndWVzdF9nc2ksIGJ1Zik7CisgICAgICAgIH0K ICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC01NTQsNyArNjMxLDcgQEAgaW50IHB0X2lycV9k ZXN0cm95X2JpbmQoCiAKICAgICBodm1faXJxX2RwY2kgPSBkb21haW5fZ2V0X2lycV9kcGNpKGQp OwogCi0gICAgaWYgKCBodm1faXJxX2RwY2kgPT0gTlVMTCApCisgICAgaWYgKCBodm1faXJxX2Rw Y2kgPT0gTlVMTCAmJiAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKICAgICB7CiAgICAgICAgIHNw aW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC01 NjMsNyArNjQwLDcgQEAgaW50IHB0X2lycV9kZXN0cm95X2JpbmQoCiAgICAgcGlycSA9IHBpcnFf aW5mbyhkLCBtYWNoaW5lX2dzaSk7CiAgICAgcGlycV9kcGNpID0gcGlycV9kcGNpKHBpcnEpOwog Ci0gICAgaWYgKCBwdF9pcnFfYmluZC0+aXJxX3R5cGUgIT0gUFRfSVJRX1RZUEVfTVNJICkKKyAg ICBpZiAoIGh2bV9pcnFfZHBjaSAmJiBwdF9pcnFfYmluZC0+aXJxX3R5cGUgIT0gUFRfSVJRX1RZ UEVfTVNJICkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGludCBidXMgPSBwdF9pcnFfYmluZC0+ dS5wY2kuYnVzOwogICAgICAgICB1bnNpZ25lZCBpbnQgZGV2aWNlID0gcHRfaXJxX2JpbmQtPnUu cGNpLmRldmljZTsKQEAgLTYzOCwxMSArNzE1LDE1IEBAIGludCBwdF9pcnFfZGVzdHJveV9iaW5k KAogICAgIGlmICggd2hhdCAmJiBpb21tdV92ZXJib3NlICkKICAgICB7CiAgICAgICAgIHVuc2ln bmVkIGludCBkZXZpY2UgPSBwdF9pcnFfYmluZC0+dS5wY2kuZGV2aWNlOworICAgICAgICBjaGFy IGJ1ZlsyNF0gPSAiIjsKKworICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQor ICAgICAgICAgICAgc25wcmludGYoYnVmLCBBUlJBWV9TSVpFKGJ1ZiksICIgZGV2PSUwMnguJTAy eC4ldSBpbnR4PSV1IiwKKyAgICAgICAgICAgICAgICAgICAgIHB0X2lycV9iaW5kLT51LnBjaS5i dXMsIFBDSV9TTE9UKGRldmljZSksCisgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVOQyhkZXZp Y2UpLCBwdF9pcnFfYmluZC0+dS5wY2kuaW50eCk7CiAKLSAgICAgICAgcHJpbnRrKFhFTkxPR19H X0lORk8KLSAgICAgICAgICAgICAgICJkJWQgJXMgdW5tYXA6IG1faXJxPSV1IGRldj0lMDJ4OiUw MnguJXUgaW50eD0ldVxuIiwKLSAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgd2hhdCwgbWFj aGluZV9nc2ksIHB0X2lycV9iaW5kLT51LnBjaS5idXMsCi0gICAgICAgICAgICAgICBQQ0lfU0xP VChkZXZpY2UpLCBQQ0lfRlVOQyhkZXZpY2UpLCBwdF9pcnFfYmluZC0+dS5wY2kuaW50eCk7Cisg ICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPICJkJWQgJXMgdW5tYXA6IG1faXJxPSV1JXNcbiIs CisgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHdoYXQsIG1hY2hpbmVfZ3NpLCBidWYpOwog ICAgIH0KIAogICAgIHJldHVybiAwOwpAQCAtNjk2LDcgKzc3Nyw3IEBAIGludCBodm1fZG9fSVJR X2RwY2koc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHBpcnEgKnBpcnEpCiAgICAgc3RydWN0IGh2 bV9pcnFfZHBjaSAqZHBjaSA9IGRvbWFpbl9nZXRfaXJxX2RwY2koZCk7CiAgICAgc3RydWN0IGh2 bV9waXJxX2RwY2kgKnBpcnFfZHBjaSA9IHBpcnFfZHBjaShwaXJxKTsKIAotICAgIGlmICggIWlv bW11X2VuYWJsZWQgfHwgIWRwY2kgfHwgIXBpcnFfZHBjaSB8fAorICAgIGlmICggIWlvbW11X2Vu YWJsZWQgfHwgKCFpc19oYXJkd2FyZV9kb21haW4oZCkgJiYgIWRwY2kpIHx8ICFwaXJxX2RwY2kg fHwKICAgICAgICAgICEocGlycV9kcGNpLT5mbGFncyAmIEhWTV9JUlFfRFBDSV9NQVBQRUQpICkK ICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTc1Nyw3ICs4MzgsNyBAQCB2b2lkIGh2bV9kcGNpX21z aV9lb2koc3RydWN0IGRvbWFpbiAqZCwgaW50IHZlY3RvcikKIAogc3RhdGljIHZvaWQgaHZtX2Rp cnFfYXNzaXN0KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBodm1fcGlycV9kcGNpICpwaXJxX2Rw Y2kpCiB7Ci0gICAgaWYgKCB1bmxpa2VseSghaHZtX2RvbWFpbl9pcnEoZCktPmRwY2kpICkKKyAg ICBpZiAoIHVubGlrZWx5KCFodm1fZG9tYWluX2lycShkKS0+ZHBjaSkgJiYgIWlzX2hhcmR3YXJl X2RvbWFpbihkKSApCiAgICAgewogICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKICAgICAg ICAgcmV0dXJuOwpAQCAtNzg5LDEwICs4NzAsMTcgQEAgc3RhdGljIHZvaWQgaHZtX2RpcnFfYXNz aXN0KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBodm1fcGlycV9kcGNpICpwaXJxX2RwY2kpCiAK ICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIGRpZ2wsICZwaXJxX2RwY2ktPmRpZ2xfbGlz dCwgbGlzdCApCiAgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCghKHBpcnFfZHBjaS0+Zmxh Z3MgJiBIVk1fSVJRX0RQQ0lfSURFTlRJVFlfR1NJKSk7CiAgICAgICAgICAgICBodm1fcGNpX2lu dHhfYXNzZXJ0KGQsIGRpZ2wtPmRldmljZSwgZGlnbC0+aW50eCk7CiAgICAgICAgICAgICBwaXJx X2RwY2ktPnBlbmRpbmcrKzsKICAgICAgICAgfQogCisgICAgICAgIGlmICggcGlycV9kcGNpLT5m bGFncyAmIEhWTV9JUlFfRFBDSV9JREVOVElUWV9HU0kgKQorICAgICAgICB7CisgICAgICAgICAg ICBodm1fZ3NpX2Fzc2VydChkLCBwaXJxLT5waXJxKTsKKyAgICAgICAgICAgIHBpcnFfZHBjaS0+ cGVuZGluZysrOworICAgICAgICB9CisKICAgICAgICAgaWYgKCBwaXJxX2RwY2ktPmZsYWdzICYg SFZNX0lSUV9EUENJX1RSQU5TTEFURSApCiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIGZvciB0 cmFuc2xhdGVkIE1TSSB0byBJTlR4IGludGVycnVwdCwgZW9pIGFzIGVhcmx5IGFzIHBvc3NpYmxl ICovCkBAIC04MTQsMTcgKzkwMiwxMCBAQCBzdGF0aWMgdm9pZCBodm1fZGlycV9hc3Npc3Qoc3Ry dWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9waXJxX2RwY2kgKnBpcnFfZHBjaSkKICAgICBzcGlu X3VubG9jaygmZC0+ZXZlbnRfbG9jayk7CiB9CiAKLXN0YXRpYyB2b2lkIF9faHZtX2RwY2lfZW9p KHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgaHZtX2dpcnFfZHBjaV9tYXBwaW5nICpnaXJxLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgdW5pb24gdmlvYXBpY19yZWRpcl9lbnRyeSAqZW50KQorc3RhdGljIHZvaWQgaHZt X3BpcnFfZW9pKHN0cnVjdCBwaXJxICpwaXJxLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHVuaW9uIHZpb2FwaWNfcmVkaXJfZW50cnkgKmVudCkKIHsKLSAgICBzdHJ1Y3QgcGlycSAq cGlycSA9IHBpcnFfaW5mbyhkLCBnaXJxLT5tYWNoaW5lX2dzaSk7Ci0gICAgc3RydWN0IGh2bV9w aXJxX2RwY2kgKnBpcnFfZHBjaTsKLQotICAgIGlmICggIWh2bV9kb21haW5fdXNlX3BpcnEoZCwg cGlycSkgKQotICAgICAgICBodm1fcGNpX2ludHhfZGVhc3NlcnQoZCwgZ2lycS0+ZGV2aWNlLCBn aXJxLT5pbnR4KTsKLQotICAgIHBpcnFfZHBjaSA9IHBpcnFfZHBjaShwaXJxKTsKKyAgICBzdHJ1 Y3QgaHZtX3BpcnFfZHBjaSAqcGlycV9kcGNpID0gcGlycV9kcGNpKHBpcnEpOwogCiAgICAgLyoK ICAgICAgKiBObyBuZWVkIHRvIGdldCB2ZWN0b3IgbG9jayBmb3IgdGltZXIKQEAgLTgzOSw2ICs5 MjAsMzEgQEAgc3RhdGljIHZvaWQgX19odm1fZHBjaV9lb2koc3RydWN0IGRvbWFpbiAqZCwKICAg ICBwaXJxX2d1ZXN0X2VvaShwaXJxKTsKIH0KIAorc3RhdGljIHZvaWQgX19odm1fZHBjaV9lb2ko c3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCBodm1fZ2lycV9kcGNpX21hcHBpbmcgKmdpcnEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB1bmlvbiB2aW9hcGljX3JlZGlyX2VudHJ5ICplbnQpCit7CisgICAgc3RydWN0IHBp cnEgKnBpcnEgPSBwaXJxX2luZm8oZCwgZ2lycS0+bWFjaGluZV9nc2kpOworCisgICAgaWYgKCAh aHZtX2RvbWFpbl91c2VfcGlycShkLCBwaXJxKSApCisgICAgICAgIGh2bV9wY2lfaW50eF9kZWFz c2VydChkLCBnaXJxLT5kZXZpY2UsIGdpcnEtPmludHgpOworCisgICAgaHZtX3BpcnFfZW9pKHBp cnEsIGVudCk7Cit9CisKK3N0YXRpYyB2b2lkIGh2bV9nc2lfZW9pKHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGludCBnc2ksCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bmlvbiB2 aW9hcGljX3JlZGlyX2VudHJ5ICplbnQpCit7CisgICAgc3RydWN0IHBpcnEgKnBpcnEgPSBwaXJx X2luZm8oZCwgZ3NpKTsKKworICAgIC8qIENoZWNrIGlmIEdTSSBpcyBhY3R1YWxseSBtYXBwZWQu ICovCisgICAgaWYgKCAhcGlycV9kcGNpKHBpcnEpICkKKyAgICAgICAgcmV0dXJuOworCisgICAg aHZtX2dzaV9kZWFzc2VydChkLCBnc2kpOworICAgIGh2bV9waXJxX2VvaShwaXJxLCBlbnQpOwor fQorCiB2b2lkIGh2bV9kcGNpX2VvaShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZ3Vl c3RfZ3NpLAogICAgICAgICAgICAgICAgICAgY29uc3QgdW5pb24gdmlvYXBpY19yZWRpcl9lbnRy eSAqZW50KQogewpAQCAtODQ4LDYgKzk1NCwxMyBAQCB2b2lkIGh2bV9kcGNpX2VvaShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZ3Vlc3RfZ3NpLAogICAgIGlmICggIWlvbW11X2VuYWJs ZWQgKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSAp CisgICAgeworICAgICAgICBzcGluX2xvY2soJmQtPmV2ZW50X2xvY2spOworICAgICAgICBodm1f Z3NpX2VvaShkLCBndWVzdF9nc2ksIGVudCk7CisgICAgICAgIGdvdG8gdW5sb2NrOworICAgIH0K KwogICAgIGlmICggZ3Vlc3RfZ3NpIDwgTlJfSVNBSVJRUyApCiAgICAgewogICAgICAgICBodm1f ZHBjaV9pc2FpcnFfZW9pKGQsIGd1ZXN0X2dzaSk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 ZW4vaHZtL2lycS5oIGIveGVuL2luY2x1ZGUveGVuL2h2bS9pcnEuaAppbmRleCA2NzFhNmYyZTA2 Li4wZDJjNzJjMTA5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaHZtL2lycS5oCisrKyBi L3hlbi9pbmNsdWRlL3hlbi9odm0vaXJxLmgKQEAgLTQwLDYgKzQwLDcgQEAgc3RydWN0IGRldl9p bnR4X2dzaV9saW5rIHsKICNkZWZpbmUgX0hWTV9JUlFfRFBDSV9FT0lfTEFUQ0hfU0hJRlQgICAg ICAgICAgIDMKICNkZWZpbmUgX0hWTV9JUlFfRFBDSV9HVUVTVF9QQ0lfU0hJRlQgICAgICAgICAg IDQKICNkZWZpbmUgX0hWTV9JUlFfRFBDSV9HVUVTVF9NU0lfU0hJRlQgICAgICAgICAgIDUKKyNk ZWZpbmUgX0hWTV9JUlFfRFBDSV9JREVOVElUWV9HU0lfU0hJRlQgICAgICAgIDYKICNkZWZpbmUg X0hWTV9JUlFfRFBDSV9UUkFOU0xBVEVfU0hJRlQgICAgICAgICAgMTUKICNkZWZpbmUgSFZNX0lS UV9EUENJX01BQ0hfUENJICAgICAgICAoMSA8PCBfSFZNX0lSUV9EUENJX01BQ0hfUENJX1NISUZU KQogI2RlZmluZSBIVk1fSVJRX0RQQ0lfTUFDSF9NU0kgICAgICAgICgxIDw8IF9IVk1fSVJRX0RQ Q0lfTUFDSF9NU0lfU0hJRlQpCkBAIC00Nyw2ICs0OCw3IEBAIHN0cnVjdCBkZXZfaW50eF9nc2lf bGluayB7CiAjZGVmaW5lIEhWTV9JUlFfRFBDSV9FT0lfTEFUQ0ggICAgICAgKDEgPDwgX0hWTV9J UlFfRFBDSV9FT0lfTEFUQ0hfU0hJRlQpCiAjZGVmaW5lIEhWTV9JUlFfRFBDSV9HVUVTVF9QQ0kg ICAgICAgKDEgPDwgX0hWTV9JUlFfRFBDSV9HVUVTVF9QQ0lfU0hJRlQpCiAjZGVmaW5lIEhWTV9J UlFfRFBDSV9HVUVTVF9NU0kgICAgICAgKDEgPDwgX0hWTV9JUlFfRFBDSV9HVUVTVF9NU0lfU0hJ RlQpCisjZGVmaW5lIEhWTV9JUlFfRFBDSV9JREVOVElUWV9HU0kgICAgKDEgPDwgX0hWTV9JUlFf RFBDSV9JREVOVElUWV9HU0lfU0hJRlQpCiAjZGVmaW5lIEhWTV9JUlFfRFBDSV9UUkFOU0xBVEUg ICAgICAgKDEgPDwgX0hWTV9JUlFfRFBDSV9UUkFOU0xBVEVfU0hJRlQpCiAKICNkZWZpbmUgVk1T SV9ERVNUX0lEX01BU0sgMHhmZgpAQCAtMTIzLDYgKzEyNSwxMCBAQCB2b2lkIGh2bV9pc2FfaXJx X2Fzc2VydCgKIHZvaWQgaHZtX2lzYV9pcnFfZGVhc3NlcnQoCiAgICAgc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgaW50IGlzYV9pcnEpOwogCisvKiBNb2RpZnkgc3RhdGUgb2YgR1NJcy4gKi8K K3ZvaWQgaHZtX2dzaV9hc3NlcnQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGdzaSk7 Cit2b2lkIGh2bV9nc2lfZGVhc3NlcnQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGdz aSk7CisKIGludCBodm1fc2V0X3BjaV9saW5rX3JvdXRlKHN0cnVjdCBkb21haW4gKmQsIHU4IGxp bmssIHU4IGlzYV9pcnEpOwogCiBpbnQgaHZtX2luamVjdF9tc2koc3RydWN0IGRvbWFpbiAqZCwg dWludDY0X3QgYWRkciwgdWludDMyX3QgZGF0YSk7Ci0tIAoyLjExLjAgKEFwcGxlIEdpdC04MSkK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK