From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v13 1/9] iommu: introduce the concept of DFN... Date: Tue, 2 Oct 2018 18:00:11 +0100 Message-ID: <20181002170019.1911-2-paul.durrant@citrix.com> References: <20181002170019.1911-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g7O2C-0001Xz-LQ for xen-devel@lists.xenproject.org; Tue, 02 Oct 2018 17:00:32 +0000 In-Reply-To: <20181002170019.1911-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Paul Durrant , Wei Liu , Stefano Stabellini , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org Li4ubWVhbmluZyAnZGV2aWNlIERNQSBmcmFtZSBudW1iZXInIGkuZS4gYSBmcmFtZSBudW1iZXIg bWFwcGVkIGluIHRoZSBJT01NVQoocmF0aGVyIHRoYW4gdGhlIE1NVSkgYW5kIGhlbmNlIHVzZWQg Zm9yIERNQSBhZGRyZXNzIHRyYW5zbGF0aW9uLgoKVGhpcyBwYXRjaCBpcyBhIGxhcmdlbHkgY29z bWV0aWMgY2hhbmdlIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHRlcm1zICdnZm4nCmFuZCAnZ2FkZHIn IGZvciAnZGZuJyBhbmQgJ2RhZGRyJyBpbiBhbGwgdGhlIHBsYWNlcyB3aGVyZSB0aGUgZnJhbWUg bnVtYmVyCm9yIGFkZHJlc3MgcmVsYXRlIHRvIGEgZGV2aWNlIHJhdGhlciB0aGFuIHRoZSBDUFUu CgpUaGUgcGFydHMgdGhhdCBhcmUgbm90IHB1cmVseSBjb3NtZXRpYyBhcmU6CgogLSB0aGUgaW50 cm9kdWN0aW9uIG9mIGEgdHlwZS1zYWZlIGRlY2xhcmF0aW9uIG9mIGRmbl90IGFuZCBkZWZpbml0 aW9uIG9mCiAgIElOVkFMSURfREZOIHRvIG1ha2UgdGhlIHN1YnN0aXR1dGlvbiBvZiBnZm5feChJ TlZBTElEX0dGTikgbWVjaGFuaWNhbC4KIC0gdGhlIGludHJvZHVjdGlvbiBvZiBfX2Rmbl90b19k YWRkciBhbmQgX19kYWRkcl90b19kZm4gKGFuZCB0eXBlLXNhZmUKICAgdmFyaWFudHMgd2l0aG91 dCB0aGUgbGVhZGluZyBfXykgd2l0aCBzb21lIHVzZSBvZiB0aGUgZm9ybWVyLgoKU3Vic2VxdWVu dCBwYXRjaGVzIHdpbGwgY29udmVydCBjb2RlIHRvIG1ha2UgdXNlIG9mIHR5cGUtc2FmZSBERk5z LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4K QWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEtl dmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpBY2tlZC1ieTogSnVsaWVuIEdyYWxsIDxq dWxpZW4uZ3JhbGxAYXJtLmNvbT4KLS0tCkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29t PgpDYzogU3VyYXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNv bT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KCnY5Ogog LSBSZS13b3JkIGNvbW1lbnQgaW4gbW0uaC4KIC0gTW92ZSBkZWZpbml0aW9ucyByZWxhdGluZyB0 byBkYWRkciBpbnRvIGFzbS14ODYvaW9tbXUuaCBzaW5jZSB0aGVzZSBhcmUKICAgbm90IHVzZWQg YnkgYW55IEFSTSBJT01NVSBpbXBsZW1lbnRhdGlvbi4KIC0gRml4IF9fZGFkZHJfdG9fZGZuKCkg dG8gcHJvcGVybHkgcGFyZW50aGVzaXplIGFuZCByZW1vdmUgY2FzdC4KCnY4OgogLSBDb3JyZWN0 IGRlZmluaXRpb24gb2YgSU5WQUxJRF9ERk4uCiAtIERvbid0IHVzZSBfQUMgaW4gZGVmaW5pdGlv biBvZiBJT01NVV9QQUdFX1NJWkUuCgp2NzoKIC0gUmUtbmFtZSBCRk4gLT4gREZOIGFzIHJlcXVl c3RlZCBieSBKYW4uCiAtIERyb3BwZWQgV2VpJ3MgUi1iIGJlY2F1c2Ugb2YgbmFtZSBjaGFuZ2Uu Cgp2NjoKIC0gRHJvcHBlZCBjaGFuZ2VzIHRvICdtZm4nIHNlY3Rpb24gaW4geGVuL21tLmggYXMg c3VnZ2VzdGVkIGJ5IEtldmluLgoKdjM6CiAtIEdldCByaWQgb2YgaW50ZXJtZWRpYXRlICdmcmFt ZScgdmFyaWFibGVzIGFnYWluLgoKdjI6CiAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9tIEphbi4K LS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMgICAgIHwgMTggKysr LS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jICAgICB8IDc4ICsr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv cGNpX2FtZF9pb21tdS5jIHwgIDIgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11 LmMgICAgICAgICAgfCAxNiArKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMg ICAgICAgICAgICAgfCAyOCArKysrKy0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMgICAgICAgICB8IDMwICsrKysrLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2lv bW11LmggICAgICAgICAgICAgICAgIHwgMTIgKysrKysKIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5o ICAgICAgICAgICAgICAgICAgICAgfCAyNiArKysrKysrLS0tCiB4ZW4vaW5jbHVkZS94ZW4vbW0u aCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysKIDkgZmlsZXMgY2hhbmdlZCwgMTIzIGlu c2VydGlvbnMoKyksIDkyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9pb21tdV9jbWQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9p b21tdV9jbWQuYwppbmRleCAwODI0N2ZhMzU0Li5kNGQwNzFlNTNlIDEwMDY0NAotLS0gYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBpbnZhbGlk YXRlX2lvbW11X2FsbChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKIH0KIAogdm9pZCBhbWRfaW9t bXVfZmx1c2hfaW90bGIodTggZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgZ2FkZHIsIHVuc2lnbmVkIGludCBvcmRl cikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhZGRyX3QgZGFkZHIsIHVuc2lnbmVkIGlu dCBvcmRlcikKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0cnVjdCBhbWRfaW9t bXUgKmlvbW11OwpAQCAtMzE1LDEyICszMTUsMTIgQEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfaW90 bGIodTggZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCiAgICAgLyogc2VuZCBJ TlZBTElEQVRFX0lPVExCX1BBR0VTIGNvbW1hbmQgKi8KICAgICBzcGluX2xvY2tfaXJxc2F2ZSgm aW9tbXUtPmxvY2ssIGZsYWdzKTsKLSAgICBpbnZhbGlkYXRlX2lvdGxiX3BhZ2VzKGlvbW11LCBt YXhwZW5kLCAwLCBxdWV1ZWlkLCBnYWRkciwgcmVxX2lkLCBvcmRlcik7CisgICAgaW52YWxpZGF0 ZV9pb3RsYl9wYWdlcyhpb21tdSwgbWF4cGVuZCwgMCwgcXVldWVpZCwgZGFkZHIsIHJlcV9pZCwg b3JkZXIpOwogICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKICAgICBzcGluX3VubG9j a19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCBhbWRf aW9tbXVfZmx1c2hfYWxsX2lvdGxicyhzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBnYWRkciwK K3N0YXRpYyB2b2lkIGFtZF9pb21tdV9mbHVzaF9hbGxfaW90bGJzKHN0cnVjdCBkb21haW4gKmQs IGRhZGRyX3QgZGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgb3JkZXIpCiB7CiAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXY7CkBAIC0zMzMs NyArMzMzLDcgQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9pb3RsYnMoc3RydWN0 IGRvbWFpbiAqZCwgdWludDY0X3QgZ2FkZHIsCiAgICAgICAgIHU4IGRldmZuID0gcGRldi0+ZGV2 Zm47CiAKICAgICAgICAgZG8gewotICAgICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2lvdGxiKGRl dmZuLCBwZGV2LCBnYWRkciwgb3JkZXIpOworICAgICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2lv dGxiKGRldmZuLCBwZGV2LCBkYWRkciwgb3JkZXIpOwogICAgICAgICAgICAgZGV2Zm4gKz0gcGRl di0+cGhhbnRvbV9zdHJpZGU7CiAgICAgICAgIH0gd2hpbGUgKCBkZXZmbiAhPSBwZGV2LT5kZXZm biAmJgogICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pID09IFBDSV9TTE9UKHBkZXYt PmRldmZuKSApOwpAQCAtMzQyLDcgKzM0Miw3IEBAIHN0YXRpYyB2b2lkIGFtZF9pb21tdV9mbHVz aF9hbGxfaW90bGJzKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGdhZGRyLAogCiAvKiBGbHVz aCBpb21tdSBjYWNoZSBhZnRlciBwMm0gY2hhbmdlcy4gKi8KIHN0YXRpYyB2b2lkIF9hbWRfaW9t bXVfZmx1c2hfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDY0X3QgZ2FkZHIsIHVuc2lnbmVkIGludCBvcmRlcikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFkZHJfdCBkYWRkciwgdW5zaWduZWQgaW50IG9y ZGVyKQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgc3RydWN0IGFtZF9pb21tdSAq aW9tbXU7CkBAIC0zNTIsMTMgKzM1MiwxMyBAQCBzdGF0aWMgdm9pZCBfYW1kX2lvbW11X2ZsdXNo X3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsCiAgICAgZm9yX2VhY2hfYW1kX2lvbW11ICggaW9tbXUg KQogICAgIHsKICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5sb2NrLCBmbGFncyk7 Ci0gICAgICAgIGludmFsaWRhdGVfaW9tbXVfcGFnZXMoaW9tbXUsIGdhZGRyLCBkb21faWQsIG9y ZGVyKTsKKyAgICAgICAgaW52YWxpZGF0ZV9pb21tdV9wYWdlcyhpb21tdSwgZGFkZHIsIGRvbV9p ZCwgb3JkZXIpOwogICAgICAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSk7CiAgICAgICAg IHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CiAgICAgfQogCiAg ICAgaWYgKCBhdHNfZW5hYmxlZCApCi0gICAgICAgIGFtZF9pb21tdV9mbHVzaF9hbGxfaW90bGJz KGQsIGdhZGRyLCBvcmRlcik7CisgICAgICAgIGFtZF9pb21tdV9mbHVzaF9hbGxfaW90bGJzKGQs IGRhZGRyLCBvcmRlcik7CiB9CiAKIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9wYWdlcyhzdHJ1 Y3QgZG9tYWluICpkKQpAQCAtMzY3LDkgKzM2Nyw5IEBAIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2Fs bF9wYWdlcyhzdHJ1Y3QgZG9tYWluICpkKQogfQogCiB2b2lkIGFtZF9pb21tdV9mbHVzaF9wYWdl cyhzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBnZm4sIHVuc2lnbmVkIGludCBvcmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgZGZuLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiB7Ci0gICAgX2FtZF9pb21t dV9mbHVzaF9wYWdlcyhkLCAodWludDY0X3QpIGdmbiA8PCBQQUdFX1NISUZULCBvcmRlcik7Cisg ICAgX2FtZF9pb21tdV9mbHVzaF9wYWdlcyhkLCBfX2Rmbl90b19kYWRkcihkZm4pLCBvcmRlcik7 CiB9CiAKIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2RldmljZShzdHJ1Y3QgYW1kX2lvbW11ICppb21t dSwgdWludDE2X3QgYmRmKQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L2lvbW11X21hcC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCmlu ZGV4IDcwYjQzNDViMzcuLjYxYWRlNzE4NTAgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv aW9tbXVfbWFwLmMKQEAgLTM1LDEyICszNSwxMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHBmbl90 b19wZGVfaWR4KHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBpbnQgbGV2ZWwpCiAgICAgcmV0 dXJuIGlkeDsKIH0KIAotdm9pZCBjbGVhcl9pb21tdV9wdGVfcHJlc2VudCh1bnNpZ25lZCBsb25n IGwxX21mbiwgdW5zaWduZWQgbG9uZyBnZm4pCit2b2lkIGNsZWFyX2lvbW11X3B0ZV9wcmVzZW50 KHVuc2lnbmVkIGxvbmcgbDFfbWZuLCB1bnNpZ25lZCBsb25nIGRmbikKIHsKICAgICB1NjQgKnRh YmxlLCAqcHRlOwogCiAgICAgdGFibGUgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihsMV9tZm4pKTsK LSAgICBwdGUgPSB0YWJsZSArIHBmbl90b19wZGVfaWR4KGdmbiwgSU9NTVVfUEFHSU5HX01PREVf TEVWRUxfMSk7CisgICAgcHRlID0gdGFibGUgKyBwZm5fdG9fcGRlX2lkeChkZm4sIElPTU1VX1BB R0lOR19NT0RFX0xFVkVMXzEpOwogICAgICpwdGUgPSAwOwogICAgIHVubWFwX2RvbWFpbl9wYWdl KHRhYmxlKTsKIH0KQEAgLTEwNCw3ICsxMDQsNyBAQCBzdGF0aWMgYm9vbF90IHNldF9pb21tdV9w ZGVfcHJlc2VudCh1MzIgKnBkZSwgdW5zaWduZWQgbG9uZyBuZXh0X21mbiwKICAgICByZXR1cm4g bmVlZF9mbHVzaDsKIH0KIAotc3RhdGljIGJvb2xfdCBzZXRfaW9tbXVfcHRlX3ByZXNlbnQodW5z aWduZWQgbG9uZyBwdF9tZm4sIHVuc2lnbmVkIGxvbmcgZ2ZuLCAKK3N0YXRpYyBib29sX3Qgc2V0 X2lvbW11X3B0ZV9wcmVzZW50KHVuc2lnbmVkIGxvbmcgcHRfbWZuLCB1bnNpZ25lZCBsb25nIGRm biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV4 dF9tZm4sIGludCBwZGVfbGV2ZWwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbF90IGl3LCBib29sX3QgaXIpCiB7CkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIGJv b2xfdCBzZXRfaW9tbXVfcHRlX3ByZXNlbnQodW5zaWduZWQgbG9uZyBwdF9tZm4sIHVuc2lnbmVk IGxvbmcgZ2ZuLAogCiAgICAgdGFibGUgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihwdF9tZm4pKTsK IAotICAgIHBkZSA9ICh1MzIqKSh0YWJsZSArIHBmbl90b19wZGVfaWR4KGdmbiwgcGRlX2xldmVs KSk7CisgICAgcGRlID0gKHUzMiopKHRhYmxlICsgcGZuX3RvX3BkZV9pZHgoZGZuLCBwZGVfbGV2 ZWwpKTsKIAogICAgIG5lZWRfZmx1c2ggPSBzZXRfaW9tbXVfcGRlX3ByZXNlbnQocGRlLCBuZXh0 X21mbiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9QQUdJ TkdfTU9ERV9MRVZFTF8wLCBpdywgaXIpOwpAQCAtMzMxLDcgKzMzMSw3IEBAIHN0YXRpYyB2b2lk IHNldF9wZGVfY291bnQodTY0ICpwZGUsIHVuc2lnbmVkIGludCBjb3VudCkKICAqIG90aGVyd2lz ZSBpbmNyZWFzZSBwZGUgY291bnQgaWYgbWZuIGlzIGNvbnRpZ291cyB3aXRoIG1mbiAtIDEKICAq Lwogc3RhdGljIGludCBpb21tdV91cGRhdGVfcGRlX2NvdW50KHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgcHRfbWZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGRmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1lcmdlX2xldmVsKQog ewogICAgIHVuc2lnbmVkIGludCBwZGVfY291bnQsIG5leHRfbGV2ZWw7CkBAIC0zNDcsNyArMzQ3 LDcgQEAgc3RhdGljIGludCBpb21tdV91cGRhdGVfcGRlX2NvdW50KHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGxvbmcgcHRfbWZuLAogCiAgICAgLyogZ2V0IHBkZSBhdCBtZXJnZSBsZXZlbCAq LwogICAgIHRhYmxlID0gbWFwX2RvbWFpbl9wYWdlKF9tZm4ocHRfbWZuKSk7Ci0gICAgcGRlID0g dGFibGUgKyBwZm5fdG9fcGRlX2lkeChnZm4sIG1lcmdlX2xldmVsKTsKKyAgICBwZGUgPSB0YWJs ZSArIHBmbl90b19wZGVfaWR4KGRmbiwgbWVyZ2VfbGV2ZWwpOwogCiAgICAgLyogZ2V0IHBhZ2Ug dGFibGUgb2YgbmV4dCBsZXZlbCAqLwogICAgIG50YWJsZV9tYWRkciA9IGFtZF9pb21tdV9nZXRf bmV4dF90YWJsZV9mcm9tX3B0ZSgodTMyKilwZGUpOwpAQCAtMzYyLDcgKzM2Miw3IEBAIHN0YXRp YyBpbnQgaW9tbXVfdXBkYXRlX3BkZV9jb3VudChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBs b25nIHB0X21mbiwKICAgICBtYXNrID0gKDFVTEw8PCAoUFRFX1BFUl9UQUJMRV9TSElGVCAqIG5l eHRfbGV2ZWwpKSAtIDE7CiAKICAgICBpZiAoICgoZmlyc3RfbWZuICYgbWFzaykgPT0gMCkgJiYK LSAgICAgICAgICgoKGdmbiAmIG1hc2spIHwgZmlyc3RfbWZuKSA9PSBtZm4pICkKKyAgICAgICAg ICgoKGRmbiAmIG1hc2spIHwgZmlyc3RfbWZuKSA9PSBtZm4pICkKICAgICB7CiAgICAgICAgIHBk ZV9jb3VudCA9IGdldF9wZGVfY291bnQoKnBkZSk7CiAKQEAgLTM4Nyw3ICszODcsNyBAQCBvdXQ6 CiB9CiAKIHN0YXRpYyBpbnQgaW9tbXVfbWVyZ2VfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgbG9uZyBwdF9tZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgZ2ZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZGZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtZXJnZV9sZXZlbCkKIHsKICAgICB1NjQgKnRh YmxlLCAqcGRlLCAqbnRhYmxlOwpAQCAtMzk4LDcgKzM5OCw3IEBAIHN0YXRpYyBpbnQgaW9tbXVf bWVyZ2VfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBwdF9tZm4sCiAgICAg QVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmaGQtPmFyY2gubWFwcGluZ19sb2NrKSAmJiBwdF9tZm4g KTsKIAogICAgIHRhYmxlID0gbWFwX2RvbWFpbl9wYWdlKF9tZm4ocHRfbWZuKSk7Ci0gICAgcGRl ID0gdGFibGUgKyBwZm5fdG9fcGRlX2lkeChnZm4sIG1lcmdlX2xldmVsKTsKKyAgICBwZGUgPSB0 YWJsZSArIHBmbl90b19wZGVfaWR4KGRmbiwgbWVyZ2VfbGV2ZWwpOwogCiAgICAgLyogZ2V0IGZp cnN0IG1mbiAqLwogICAgIG50YWJsZV9tZm4gPSBhbWRfaW9tbXVfZ2V0X25leHRfdGFibGVfZnJv bV9wdGUoKHUzMiopcGRlKSA+PiBQQUdFX1NISUZUOwpAQCAtNDM2LDcgKzQzNiw3IEBAIHN0YXRp YyBpbnQgaW9tbXVfbWVyZ2VfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBw dF9tZm4sCiAgKiB7UmUsIHVufW1hcHBpbmcgc3VwZXIgcGFnZSBmcmFtZXMgY2F1c2VzIHJlLWFs bG9jYXRpb24gb2YgaW8KICAqIHBhZ2UgdGFibGVzLgogICovCi1zdGF0aWMgaW50IGlvbW11X3Bk ZV9mcm9tX2dmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIHBmbiwgCitzdGF0aWMg aW50IGlvbW11X3BkZV9mcm9tX2RmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRm biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcHRfbWZuW10p CiB7CiAgICAgdTY0ICpwZGUsICpuZXh0X3RhYmxlX3ZhZGRyOwpAQCAtNDY1LDcgKzQ2NSw3IEBA IHN0YXRpYyBpbnQgaW9tbXVfcGRlX2Zyb21fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgcGZuLAogICAgICAgICBwdF9tZm5bbGV2ZWxdID0gbmV4dF90YWJsZV9tZm47CiAKICAg ICAgICAgbmV4dF90YWJsZV92YWRkciA9IG1hcF9kb21haW5fcGFnZShfbWZuKG5leHRfdGFibGVf bWZuKSk7Ci0gICAgICAgIHBkZSA9IG5leHRfdGFibGVfdmFkZHIgKyBwZm5fdG9fcGRlX2lkeChw Zm4sIGxldmVsKTsKKyAgICAgICAgcGRlID0gbmV4dF90YWJsZV92YWRkciArIHBmbl90b19wZGVf aWR4KGRmbiwgbGV2ZWwpOwogCiAgICAgICAgIC8qIEhlcmUgbWlnaHQgYmUgYSBzdXBlciBwYWdl IGZyYW1lICovCiAgICAgICAgIG5leHRfdGFibGVfbWZuID0gYW1kX2lvbW11X2dldF9uZXh0X3Rh YmxlX2Zyb21fcHRlKCh1aW50MzJfdCopcGRlKSAKQEAgLTQ3NywxMSArNDc3LDExIEBAIHN0YXRp YyBpbnQgaW9tbXVfcGRlX2Zyb21fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg cGZuLAogICAgICAgICAgICAgIG5leHRfdGFibGVfbWZuICE9IDAgKQogICAgICAgICB7CiAgICAg ICAgICAgICBpbnQgaTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCBnZm47CisgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgcGZuOwogICAgICAgICAgICAgdW5zaWduZWQgaW50 IHBhZ2Vfc3o7CiAKICAgICAgICAgICAgIHBhZ2Vfc3ogPSAxIDw8IChQVEVfUEVSX1RBQkxFX1NI SUZUICogKG5leHRfbGV2ZWwgLSAxKSk7Ci0gICAgICAgICAgICBnZm4gPSAgcGZuICYgfigoMSA8 PCAoUFRFX1BFUl9UQUJMRV9TSElGVCAqIG5leHRfbGV2ZWwpKSAtIDEpOworICAgICAgICAgICAg cGZuID0gIGRmbiAmIH4oKDEgPDwgKFBURV9QRVJfVEFCTEVfU0hJRlQgKiBuZXh0X2xldmVsKSkg LSAxKTsKICAgICAgICAgICAgIG1mbiA9IG5leHRfdGFibGVfbWZuOwogCiAgICAgICAgICAgICAv KiBhbGxvY2F0ZSBsb3dlciBsZXZlbCBwYWdlIHRhYmxlICovCkBAIC00OTksMTAgKzQ5OSwxMCBA QCBzdGF0aWMgaW50IGlvbW11X3BkZV9mcm9tX2dmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIHBmbiwKIAogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBQVEVfUEVSX1RBQkxF X1NJWkU7IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc2V0X2lvbW11X3B0 ZV9wcmVzZW50KG5leHRfdGFibGVfbWZuLCBnZm4sIG1mbiwgbmV4dF9sZXZlbCwKKyAgICAgICAg ICAgICAgICBzZXRfaW9tbXVfcHRlX3ByZXNlbnQobmV4dF90YWJsZV9tZm4sIHBmbiwgbWZuLCBu ZXh0X2xldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhIUlPTU1V Rl93cml0YWJsZSwgISFJT01NVUZfcmVhZGFibGUpOwogICAgICAgICAgICAgICAgIG1mbiArPSBw YWdlX3N6OwotICAgICAgICAgICAgICAgIGdmbiArPSBwYWdlX3N6OworICAgICAgICAgICAgICAg IHBmbiArPSBwYWdlX3N6OwogICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYW1kX2lvbW11 X2ZsdXNoX2FsbF9wYWdlcyhkKTsKQEAgLTU0MCw3ICs1NDAsNyBAQCBzdGF0aWMgaW50IGlvbW11 X3BkZV9mcm9tX2dmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIHBmbiwKICAgICBy ZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB1cGRhdGVfcGFnaW5nX21vZGUoc3RydWN0IGRvbWFp biAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCitzdGF0aWMgaW50IHVwZGF0ZV9wYWdpbmdfbW9kZShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbikKIHsKICAgICB1MTYgYmRmOwogICAg IHZvaWQgKmRldmljZV9lbnRyeTsKQEAgLTU1NCwxMyArNTU0LDEzIEBAIHN0YXRpYyBpbnQgdXBk YXRlX3BhZ2luZ19tb2RlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKQogICAg IHVuc2lnbmVkIGxvbmcgb2xkX3Jvb3RfbWZuOwogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhk ID0gZG9tX2lvbW11KGQpOwogCi0gICAgaWYgKCBnZm4gPT0gZ2ZuX3goSU5WQUxJRF9HRk4pICkK KyAgICBpZiAoIGRmbiA9PSBkZm5feChJTlZBTElEX0RGTikgKQogICAgICAgICByZXR1cm4gLUVB RERSTk9UQVZBSUw7Ci0gICAgQVNTRVJUKCEoZ2ZuID4+IERFRkFVTFRfRE9NQUlOX0FERFJFU1Nf V0lEVEgpKTsKKyAgICBBU1NFUlQoIShkZm4gPj4gREVGQVVMVF9ET01BSU5fQUREUkVTU19XSURU SCkpOwogCiAgICAgbGV2ZWwgPSBoZC0+YXJjaC5wYWdpbmdfbW9kZTsKICAgICBvbGRfcm9vdCA9 IGhkLT5hcmNoLnJvb3RfdGFibGU7Ci0gICAgb2Zmc2V0ID0gZ2ZuID4+IChQVEVfUEVSX1RBQkxF X1NISUZUICogKGxldmVsIC0gMSkpOworICAgIG9mZnNldCA9IGRmbiA+PiAoUFRFX1BFUl9UQUJM RV9TSElGVCAqIChsZXZlbCAtIDEpKTsKIAogICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmaGQt PmFyY2gubWFwcGluZ19sb2NrKSAmJiBpc19odm1fZG9tYWluKGQpKTsKIApAQCAtNjMxLDcgKzYz MSw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX3BhZ2luZ19tb2RlKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuKQogICAgIHJldHVybiAwOwogfQogCi1pbnQgYW1kX2lvbW11X21hcF9w YWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1m biwKK2ludCBhbWRfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBkZm4sIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgZmxhZ3MpCiB7CiAgICAgYm9vbF90IG5lZWRfZmx1c2ggPSAwOwpAQCAtNjUxLDM0ICs2 NTEsMzQgQEAgaW50IGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIGdmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgaWYgKCByYyApCiAgICAgewogICAg ICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLSAgICAgICAgQU1EX0lP TU1VX0RFQlVHKCJSb290IHRhYmxlIGFsbG9jIGZhaWxlZCwgZ2ZuID0gJWx4XG4iLCBnZm4pOwor ICAgICAgICBBTURfSU9NTVVfREVCVUcoIlJvb3QgdGFibGUgYWxsb2MgZmFpbGVkLCBkZm4gPSAl bHhcbiIsIGRmbik7CiAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAgcmV0dXJuIHJj OwogICAgIH0KIAogICAgIC8qIFNpbmNlIEhWTSBkb21haW4gaXMgaW5pdGlhbGl6ZWQgd2l0aCAy IGxldmVsIElPIHBhZ2UgdGFibGUsCi0gICAgICogd2UgbWlnaHQgbmVlZCBhIGRlZXBlciBwYWdl IHRhYmxlIGZvciBsYWdlciBnZm4gbm93ICovCisgICAgICogd2UgbWlnaHQgbmVlZCBhIGRlZXBl ciBwYWdlIHRhYmxlIGZvciB3aWRlciBkZm4gbm93ICovCiAgICAgaWYgKCBpc19odm1fZG9tYWlu KGQpICkKICAgICB7Ci0gICAgICAgIGlmICggdXBkYXRlX3BhZ2luZ19tb2RlKGQsIGdmbikgKQor ICAgICAgICBpZiAoIHVwZGF0ZV9wYWdpbmdfbW9kZShkLCBkZm4pICkKICAgICAgICAgewogICAg ICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0gICAgICAgICAg ICBBTURfSU9NTVVfREVCVUcoIlVwZGF0ZSBwYWdlIG1vZGUgZmFpbGVkIGdmbiA9ICVseFxuIiwg Z2ZuKTsKKyAgICAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiVXBkYXRlIHBhZ2UgbW9kZSBmYWls ZWQgZGZuID0gJWx4XG4iLCBkZm4pOwogICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAg ICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIGlv bW11X3BkZV9mcm9tX2dmbihkLCBnZm4sIHB0X21mbikgfHwgKHB0X21mblsxXSA9PSAwKSApCisg ICAgaWYgKCBpb21tdV9wZGVfZnJvbV9kZm4oZCwgZGZuLCBwdF9tZm4pIHx8IChwdF9tZm5bMV0g PT0gMCkgKQogICAgIHsKICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9j ayk7Ci0gICAgICAgIEFNRF9JT01NVV9ERUJVRygiSW52YWxpZCBJTyBwYWdldGFibGUgZW50cnkg Z2ZuID0gJWx4XG4iLCBnZm4pOworICAgICAgICBBTURfSU9NTVVfREVCVUcoIkludmFsaWQgSU8g cGFnZXRhYmxlIGVudHJ5IGRmbiA9ICVseFxuIiwgZGZuKTsKICAgICAgICAgZG9tYWluX2NyYXNo KGQpOwogICAgICAgICByZXR1cm4gLUVGQVVMVDsKICAgICB9CiAKICAgICAvKiBJbnN0YWxsIDRr IG1hcHBpbmcgZmlyc3QgKi8KLSAgICBuZWVkX2ZsdXNoID0gc2V0X2lvbW11X3B0ZV9wcmVzZW50 KHB0X21mblsxXSwgZ2ZuLCBtZm4sIAorICAgIG5lZWRfZmx1c2ggPSBzZXRfaW9tbXVfcHRlX3By ZXNlbnQocHRfbWZuWzFdLCBkZm4sIG1mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPTU1VX1BBR0lOR19NT0RFX0xFVkVMXzEsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAhIShmbGFncyAmIElPTU1VRl93cml0YWJsZSksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhIShmbGFncyAmIElPTU1VRl9yZWFkYWJs ZSkpOwpAQCAtNjkwLDcgKzY5MCw3IEBAIGludCBhbWRfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIC8qIDRL IG1hcHBpbmcgZm9yIFBWIGd1ZXN0cyBuZXZlciBjaGFuZ2VzLCAKICAgICAgKiBubyBuZWVkIHRv IGZsdXNoIGlmIHdlIHRydXN0IG5vbi1wcmVzZW50IGJpdHMgKi8KICAgICBpZiAoIGlzX2h2bV9k b21haW4oZCkgKQotICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMoZCwgZ2ZuLCAwKTsKKyAg ICAgICAgYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKGQsIGRmbiwgMCk7CiAKICAgICBmb3IgKCBtZXJn ZV9sZXZlbCA9IElPTU1VX1BBR0lOR19NT0RFX0xFVkVMXzI7CiAgICAgICAgICAgbWVyZ2VfbGV2 ZWwgPD0gaGQtPmFyY2gucGFnaW5nX21vZGU7IG1lcmdlX2xldmVsKysgKQpAQCAtNjk4LDE1ICs2 OTgsMTUgQEAgaW50IGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIGdmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgICAgIGlmICggcHRfbWZuW21lcmdl X2xldmVsXSA9PSAwICkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoICFpb21tdV91 cGRhdGVfcGRlX2NvdW50KGQsIHB0X21mblttZXJnZV9sZXZlbF0sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2ZuLCBtZm4sIG1lcmdlX2xldmVsKSApCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZuLCBtZm4sIG1lcmdlX2xldmVsKSApCiAgICAg ICAgICAgICBicmVhazsKIAotICAgICAgICBpZiAoIGlvbW11X21lcmdlX3BhZ2VzKGQsIHB0X21m blttZXJnZV9sZXZlbF0sIGdmbiwgCisgICAgICAgIGlmICggaW9tbXVfbWVyZ2VfcGFnZXMoZCwg cHRfbWZuW21lcmdlX2xldmVsXSwgZGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZsYWdzLCBtZXJnZV9sZXZlbCkgKQogICAgICAgICB7CiAgICAgICAgICAgICBzcGluX3VubG9j aygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAgICAgICAgICAgIEFNRF9JT01NVV9ERUJVRygi TWVyZ2UgaW9tbXUgcGFnZSBmYWlsZWQgYXQgbGV2ZWwgJWQsICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZ2ZuID0gJWx4IG1mbiA9ICVseFxuIiwgbWVyZ2VfbGV2ZWwsIGdmbiwgbWZu KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGZuID0gJWx4IG1mbiA9ICVseFxuIiwg bWVyZ2VfbGV2ZWwsIGRmbiwgbWZuKTsKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAg ICAgICAgICAgIHJldHVybiAtRUZBVUxUOwogICAgICAgICB9CkBAIC03MjAsNyArNzIwLDcgQEAg b3V0OgogICAgIHJldHVybiAwOwogfQogCi1pbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCitpbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uo c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4pCiB7CiAgICAgdW5zaWduZWQgbG9u ZyBwdF9tZm5bN107CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7 CkBAIC03MzksMzQgKzczOSwzNCBAQCBpbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCiAgICAgfQogCiAgICAgLyogU2luY2UgSFZNIGRv bWFpbiBpcyBpbml0aWFsaXplZCB3aXRoIDIgbGV2ZWwgSU8gcGFnZSB0YWJsZSwKLSAgICAgKiB3 ZSBtaWdodCBuZWVkIGEgZGVlcGVyIHBhZ2UgdGFibGUgZm9yIGxhZ2VyIGdmbiBub3cgKi8KKyAg ICAgKiB3ZSBtaWdodCBuZWVkIGEgZGVlcGVyIHBhZ2UgdGFibGUgZm9yIGxhZ2VyIGRmbiBub3cg Ki8KICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQogICAgIHsKLSAgICAgICAgaW50IHJjID0g dXBkYXRlX3BhZ2luZ19tb2RlKGQsIGdmbik7CisgICAgICAgIGludCByYyA9IHVwZGF0ZV9wYWdp bmdfbW9kZShkLCBkZm4pOwogCiAgICAgICAgIGlmICggcmMgKQogICAgICAgICB7CiAgICAgICAg ICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLSAgICAgICAgICAgIEFN RF9JT01NVV9ERUJVRygiVXBkYXRlIHBhZ2UgbW9kZSBmYWlsZWQgZ2ZuID0gJWx4XG4iLCBnZm4p OworICAgICAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJVcGRhdGUgcGFnZSBtb2RlIGZhaWxlZCBk Zm4gPSAlbHhcbiIsIGRmbik7CiAgICAgICAgICAgICBpZiAoIHJjICE9IC1FQUREUk5PVEFWQUlM ICkKICAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAgICAgICAgICByZXR1cm4g cmM7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIGlvbW11X3BkZV9mcm9tX2dmbihkLCBn Zm4sIHB0X21mbikgfHwgKHB0X21mblsxXSA9PSAwKSApCisgICAgaWYgKCBpb21tdV9wZGVfZnJv bV9kZm4oZCwgZGZuLCBwdF9tZm4pIHx8IChwdF9tZm5bMV0gPT0gMCkgKQogICAgIHsKICAgICAg ICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0gICAgICAgIEFNRF9JT01N VV9ERUJVRygiSW52YWxpZCBJTyBwYWdldGFibGUgZW50cnkgZ2ZuID0gJWx4XG4iLCBnZm4pOwor ICAgICAgICBBTURfSU9NTVVfREVCVUcoIkludmFsaWQgSU8gcGFnZXRhYmxlIGVudHJ5IGRmbiA9 ICVseFxuIiwgZGZuKTsKICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAgICAgICByZXR1cm4g LUVGQVVMVDsKICAgICB9CiAKICAgICAvKiBtYXJrIFBURSBhcyAncGFnZSBub3QgcHJlc2VudCcg Ki8KLSAgICBjbGVhcl9pb21tdV9wdGVfcHJlc2VudChwdF9tZm5bMV0sIGdmbik7CisgICAgY2xl YXJfaW9tbXVfcHRlX3ByZXNlbnQocHRfbWZuWzFdLCBkZm4pOwogICAgIHNwaW5fdW5sb2NrKCZo ZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogCi0gICAgYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKGQsIGdm biwgMCk7CisgICAgYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKGQsIGRmbiwgMCk7CiAKICAgICByZXR1 cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1k X2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCmlu ZGV4IDRhNjMzY2E5NDAuLmFhOWViYTAyYmQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtNTg3LDcgKzU4Nyw3IEBAIHN0YXRpYyB2b2lkIGFtZF9k dW1wX3AybV90YWJsZV9sZXZlbChzdHJ1Y3QgcGFnZV9pbmZvKiBwZywgaW50IGxldmVsLAogICAg ICAgICAgICAgICAgIG1hZGRyX3RvX3BhZ2UobmV4dF90YWJsZV9tYWRkciksIG5leHRfbGV2ZWws CiAgICAgICAgICAgICAgICAgYWRkcmVzcywgaW5kZW50ICsgMSk7CiAgICAgICAgIGVsc2UKLSAg ICAgICAgICAgIHByaW50aygiJSpzZ2ZuOiAlMDhseCAgbWZuOiAlMDhseFxuIiwKKyAgICAgICAg ICAgIHByaW50aygiJSpzZGZuOiAlMDhseCAgbWZuOiAlMDhseFxuIiwKICAgICAgICAgICAgICAg ICAgICBpbmRlbnQsICIiLAogICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKVBGTl9E T1dOKGFkZHJlc3MpLAogICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKVBGTl9ET1dO KG5leHRfdGFibGVfbWFkZHIpKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FybS9zbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jCmluZGV4IDhm OTE4MDdiMWIuLjFlZGE5NmE3MmEgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FybS9zbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYwpAQCAt MjU1MSw3ICsyNTUxLDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3NtbXVfaW90bGJf Zmx1c2hfYWxsKHN0cnVjdCBkb21haW4gKmQpCiB9CiAKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNr IGFybV9zbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZGZuLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IHBhZ2VfY291bnQpCiB7CiAJLyogQVJNIFNNTVUgdjEgZG9lc24ndCBoYXZlIGZsdXNoIGJ5IFZN QSBhbmQgVk1JRCAqLwpAQCAtMjc0OCw3ICsyNzQ4LDcgQEAgc3RhdGljIHZvaWQgYXJtX3NtbXVf aW9tbXVfZG9tYWluX3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpCiAJeGZyZWUoeGVuX2RvbWFp bik7CiB9CiAKLXN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X21hcF9wYWdlKHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorc3RhdGljIGludCBfX211c3RfY2hlY2sg YXJtX3NtbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sCiAJ CQl1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IGZsYWdzKQogewogCXAybV90eXBlX3Qg dDsKQEAgLTI3NTksMTAgKzI3NTksMTAgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3Nt bXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCiAJICogcHJv dGVjdGVkIGJ5IGFuIElPTU1VLCBYZW4gbmVlZHMgdG8gYWRkIGEgMToxIG1hcHBpbmcgaW4gdGhl IGRvbWFpbgogCSAqIHAybSB0byBhbGxvdyBETUEgcmVxdWVzdCB0byB3b3JrLgogCSAqIFRoaXMg aXMgb25seSB2YWxpZCB3aGVuIHRoZSBkb21haW4gaXMgZGlyZWN0ZWQgbWFwcGVkLiBIZW5jZSB0 aGlzCi0JICogZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBnbnR0YWIgY29kZSB3aXRo IGdmbiA9PSBtZm4uCisJICogZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBnbnR0YWIg Y29kZSB3aXRoIGdmbiA9PSBtZm4gPT0gZGZuLgogCSAqLwogCUJVR19PTighaXNfZG9tYWluX2Rp cmVjdF9tYXBwZWQoZCkpOwotCUJVR19PTihtZm4gIT0gZ2ZuKTsKKwlCVUdfT04obWZuICE9IGRm bik7CiAKIAkvKiBXZSBvbmx5IHN1cHBvcnQgcmVhZGFibGUgYW5kIHdyaXRhYmxlIGZsYWdzICov CiAJaWYgKCEoZmxhZ3MgJiAoSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKSkpCkBA IC0yNzc0LDE5ICsyNzc0LDE5IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X21h cF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAogCSAqIFRoZSBmdW5j dGlvbiBndWVzdF9waHlzbWFwX2FkZF9lbnRyeSByZXBsYWNlcyB0aGUgY3VycmVudCBtYXBwaW5n CiAJICogaWYgdGhlcmUgaXMgYWxyZWFkeSBvbmUuLi4KIAkgKi8KLQlyZXR1cm4gZ3Vlc3RfcGh5 c21hcF9hZGRfZW50cnkoZCwgX2dmbihnZm4pLCBfbWZuKG1mbiksIDAsIHQpOworCXJldHVybiBn dWVzdF9waHlzbWFwX2FkZF9lbnRyeShkLCBfZ2ZuKGRmbiksIF9tZm4oZGZuKSwgMCwgdCk7CiB9 CiAKLXN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCitzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhcm1f c21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuKQogewog CS8qCiAJICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IGdudHRhYiBjb2Rl IHdoZW4gdGhlIGRvbWFpbgotCSAqIGlzIGRpcmVjdCBtYXBwZWQKKwkgKiBpcyBkaXJlY3QgbWFw cGVkIChpLmUuIGdmbiA9PSBtZm4gPT0gZGZuKS4KIAkgKi8KIAlpZiAoICFpc19kb21haW5fZGly ZWN0X21hcHBlZChkKSApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JcmV0dXJuIGd1ZXN0X3BoeXNt YXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihnZm4pLCBfbWZuKGdmbiksIDApOworCXJldHVybiBndWVz dF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4oZGZuKSwgX21mbihkZm4pLCAwKTsKIH0KIAog c3RhdGljIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgYXJtX3NtbXVfaW9tbXVfb3BzID0gewpkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2lvbW11LmMKaW5kZXggYWU2Y2YyZjBmZi4uMWFkNzdhN2U3YSAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9pb21tdS5jCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBfX2h3ZG9tX2luaXQgaW9t bXVfaHdkb21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICBwYWdlX2xpc3RfZm9yX2Vh Y2ggKCBwYWdlLCAmZC0+cGFnZV9saXN0ICkKICAgICAgICAgewogICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBtZm4gPSBtZm5feChwYWdlX3RvX21mbihwYWdlKSk7Ci0gICAgICAgICAgICB1bnNp Z25lZCBsb25nIGdmbiA9IG1mbl90b19nbWZuKGQsIG1mbik7CisgICAgICAgICAgICB1bnNpZ25l ZCBsb25nIGRmbiA9IG1mbl90b19nbWZuKGQsIG1mbik7CiAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgbWFwcGluZyA9IElPTU1VRl9yZWFkYWJsZTsKICAgICAgICAgICAgIGludCByZXQ7CiAKQEAg LTIyNCw3ICsyMjQsNyBAQCB2b2lkIF9faHdkb21faW5pdCBpb21tdV9od2RvbV9pbml0KHN0cnVj dCBkb21haW4gKmQpCiAgICAgICAgICAgICAgICAgICA9PSBQR1Rfd3JpdGFibGVfcGFnZSkgKQog ICAgICAgICAgICAgICAgIG1hcHBpbmcgfD0gSU9NTVVGX3dyaXRhYmxlOwogCi0gICAgICAgICAg ICByZXQgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBnZm4sIG1mbiwgbWFwcGluZyk7 CisgICAgICAgICAgICByZXQgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBkZm4sIG1m biwgbWFwcGluZyk7CiAgICAgICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAgICAgICAgcmMg PSByZXQ7CiAKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIGlvbW11X2RvbWFpbl9kZXN0cm95KHN0 cnVjdCBkb21haW4gKmQpCiAgICAgYXJjaF9pb21tdV9kb21haW5fZGVzdHJveShkKTsKIH0KIAot aW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1 bnNpZ25lZCBsb25nIG1mbiwKK2ludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1 bnNpZ25lZCBsb25nIGRmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGZsYWdzKQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhk ID0gZG9tX2lvbW11KGQpOwpAQCAtMjk0LDEzICsyOTQsMTMgQEAgaW50IGlvbW11X21hcF9wYWdl KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwK ICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAg cmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQsIGdmbiwg bWZuLCBmbGFncyk7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBkZm4s IG1mbiwgZmxhZ3MpOwogICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICB7CiAgICAgICAgIGlm ICggIWQtPmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRrX3JhdGVsaW1pdCgpICkKICAgICAgICAg ICAgIHByaW50ayhYRU5MT0dfRVJSCi0gICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUgbWFw cGluZyBnZm4gJSNseCB0byBtZm4gJSNseCBmYWlsZWQ6ICVkXG4iLAotICAgICAgICAgICAgICAg ICAgIGQtPmRvbWFpbl9pZCwgZ2ZuLCBtZm4sIHJjKTsKKyAgICAgICAgICAgICAgICAgICAiZCVk OiBJT01NVSBtYXBwaW5nIGRmbiAlI2x4IHRvIG1mbiAlI2x4IGZhaWxlZDogJWRcbiIsCisgICAg ICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBkZm4sIG1mbiwgcmMpOwogCiAgICAgICAgIGlm ICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7 CkBAIC0zMDksNyArMzA5LDcgQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICByZXR1cm4gcmM7CiB9 CiAKLWludCBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg Z2ZuKQoraW50IGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBkZm4pCiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUo ZCk7CiAgICAgaW50IHJjOwpAQCAtMzE3LDEzICszMTcsMTMgQEAgaW50IGlvbW11X3VubWFwX3Bh Z2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCiAgICAgaWYgKCAhaW9tbXVf ZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg cmMgPSBoZC0+cGxhdGZvcm1fb3BzLT51bm1hcF9wYWdlKGQsIGdmbik7CisgICAgcmMgPSBoZC0+ cGxhdGZvcm1fb3BzLT51bm1hcF9wYWdlKGQsIGRmbik7CiAgICAgaWYgKCB1bmxpa2VseShyYykg KQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0 ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAg ICAgICAiZCVkOiBJT01NVSB1bm1hcHBpbmcgZ2ZuICUjbHggZmFpbGVkOiAlZFxuIiwKLSAgICAg ICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdmbiwgcmMpOworICAgICAgICAgICAgICAgICAg ICJkJWQ6IElPTU1VIHVubWFwcGluZyBkZm4gJSNseCBmYWlsZWQ6ICVkXG4iLAorICAgICAgICAg ICAgICAgICAgIGQtPmRvbWFpbl9pZCwgZGZuLCByYyk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFy ZHdhcmVfZG9tYWluKGQpICkKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKQEAgLTM0OSw3 ICszNDksNyBAQCBzdGF0aWMgdm9pZCBpb21tdV9mcmVlX3BhZ2V0YWJsZXModW5zaWduZWQgbG9u ZyB1bnVzZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1bWFza19jeWNsZShzbXBf cHJvY2Vzc29yX2lkKCksICZjcHVfb25saW5lX21hcCkpOwogfQogCi1pbnQgaW9tbXVfaW90bGJf Zmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCitpbnQgaW9tbXVfaW90 bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sCiAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiB7CiAgICAgY29uc3Qgc3RydWN0 IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CkBAIC0zNTgsMTMgKzM1OCwxMyBAQCBp bnQgaW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4s CiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyB8fCAhaGQtPnBs YXRmb3JtX29wcy0+aW90bGJfZmx1c2ggKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJjID0g aGQtPnBsYXRmb3JtX29wcy0+aW90bGJfZmx1c2goZCwgZ2ZuLCBwYWdlX2NvdW50KTsKKyAgICBy YyA9IGhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoKGQsIGRmbiwgcGFnZV9jb3VudCk7CiAg ICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRp bmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBJT1RMQiBmbHVzaCBmYWlsZWQ6 ICVkLCBnZm4gJSNseCwgcGFnZSBjb3VudCAldVxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5k b21haW5faWQsIHJjLCBnZm4sIHBhZ2VfY291bnQpOworICAgICAgICAgICAgICAgICAgICJkJWQ6 IElPTU1VIElPVExCIGZsdXNoIGZhaWxlZDogJWQsIGRmbiAlI2x4LCBwYWdlIGNvdW50ICV1XG4i LAorICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMsIGRmbiwgcGFnZV9jb3VudCk7 CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKICAgICAgICAgICAgIGRv bWFpbl9jcmFzaChkKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p b21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKaW5kZXggYmI0MjJl YzU4Yy4uNTA3YTNmM2FmYSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTU4 NSw3ICs1ODUsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9hbGwodm9p ZCkKIH0KIAogc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGIoc3RydWN0 IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBib29sX3QgZG1hX29sZF9wdGVfcHJlc2VudCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQogewpAQCAtNjEy LDEyICs2MTIsMTIgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGIo c3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgaWYgKCBpb21tdV9kb21pZCA9PSAtMSApCiAgICAg ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIHBhZ2VfY291bnQgIT0gMSB8fCBnZm4g PT0gZ2ZuX3goSU5WQUxJRF9HRk4pICkKKyAgICAgICAgaWYgKCBwYWdlX2NvdW50ICE9IDEgfHwg ZGZuID09IGRmbl94KElOVkFMSURfREZOKSApCiAgICAgICAgICAgICByYyA9IGlvbW11X2ZsdXNo X2lvdGxiX2RzaShpb21tdSwgaW9tbXVfZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAwLCBmbHVzaF9kZXZfaW90bGIpOwogICAgICAgICBlbHNlCiAgICAgICAg ICAgICByYyA9IGlvbW11X2ZsdXNoX2lvdGxiX3BzaShpb21tdSwgaW9tbXVfZG9taWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFkZHJfdClnZm4gPDwgUEFHRV9T SElGVF80SywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZGZuX3Rv X2RhZGRyKGRmbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdF X09SREVSXzRLLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWRtYV9v bGRfcHRlX3ByZXNlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm bHVzaF9kZXZfaW90bGIpOwpAQCAtNjMzLDE1ICs2MzMsMTUgQEAgc3RhdGljIGludCBfX211c3Rf Y2hlY2sgaW9tbXVfZmx1c2hfaW90bGIoc3RydWN0IGRvbWFpbiAqZCwKIH0KIAogc3RhdGljIGlu dCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGJfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCkKIHsKLSAgICByZXR1cm4gaW9t bXVfZmx1c2hfaW90bGIoZCwgZ2ZuLCAxLCBwYWdlX2NvdW50KTsKKyAgICByZXR1cm4gaW9tbXVf Zmx1c2hfaW90bGIoZCwgZGZuLCAxLCBwYWdlX2NvdW50KTsKIH0KIAogc3RhdGljIGludCBfX211 c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGJfYWxsKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAg cmV0dXJuIGlvbW11X2ZsdXNoX2lvdGxiKGQsIGdmbl94KElOVkFMSURfR0ZOKSwgMCwgMCk7Cisg ICAgcmV0dXJuIGlvbW11X2ZsdXNoX2lvdGxiKGQsIGRmbl94KElOVkFMSURfREZOKSwgMCwgMCk7 CiB9CiAKIC8qIGNsZWFyIG9uZSBwYWdlJ3MgcGFnZSB0YWJsZSAqLwpAQCAtMTc3MCw3ICsxNzcw LDcgQEAgc3RhdGljIHZvaWQgaW9tbXVfZG9tYWluX3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQp CiB9CiAKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11X21hcF9wYWdlKHN0cnVj dCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CkBAIC0xNzg5 LDE0ICsxNzg5LDE0IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11X21hcF9w YWdlKHN0cnVjdCBkb21haW4gKmQsCiAKICAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdf bG9jayk7CiAKLSAgICBwZ19tYWRkciA9IGFkZHJfdG9fZG1hX3BhZ2VfbWFkZHIoZCwgKHBhZGRy X3QpZ2ZuIDw8IFBBR0VfU0hJRlRfNEssIDEpOworICAgIHBnX21hZGRyID0gYWRkcl90b19kbWFf cGFnZV9tYWRkcihkLCBfX2Rmbl90b19kYWRkcihkZm4pLCAxKTsKICAgICBpZiAoIHBnX21hZGRy ID09IDAgKQogICAgIHsKICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9j ayk7CiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgIH0KICAgICBwYWdlID0gKHN0cnVjdCBk bWFfcHRlICopbWFwX3Z0ZF9kb21haW5fcGFnZShwZ19tYWRkcik7Ci0gICAgcHRlID0gcGFnZSAr IChnZm4gJiBMRVZFTF9NQVNLKTsKKyAgICBwdGUgPSBwYWdlICsgKGRmbiAmIExFVkVMX01BU0sp OwogICAgIG9sZCA9ICpwdGU7CiAgICAgZG1hX3NldF9wdGVfYWRkcihuZXcsIChwYWRkcl90KW1m biA8PCBQQUdFX1NISUZUXzRLKTsKICAgICBkbWFfc2V0X3B0ZV9wcm90KG5ldywKQEAgLTE4MjAs MjIgKzE4MjAsMjIgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50ZWxfaW9tbXVfbWFwX3Bh Z2Uoc3RydWN0IGRvbWFpbiAqZCwKICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UocGFnZSk7CiAK ICAgICBpZiAoICF0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSApCi0gICAgICAgIHJj ID0gaW9tbXVfZmx1c2hfaW90bGIoZCwgZ2ZuLCBkbWFfcHRlX3ByZXNlbnQob2xkKSwgMSk7Cisg ICAgICAgIHJjID0gaW9tbXVfZmx1c2hfaW90bGIoZCwgZGZuLCBkbWFfcHRlX3ByZXNlbnQob2xk KSwgMSk7CiAKICAgICByZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGlu dGVsX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBnZm4pCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZGZu KQogewogICAgIC8qIERvIG5vdGhpbmcgaWYgaGFyZHdhcmUgZG9tYWluIGFuZCBpb21tdSBzdXBw b3J0cyBwYXNzIHRocnUuICovCiAgICAgaWYgKCBpb21tdV9od2RvbV9wYXNzdGhyb3VnaCAmJiBp c19oYXJkd2FyZV9kb21haW4oZCkgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBk bWFfcHRlX2NsZWFyX29uZShkLCAocGFkZHJfdClnZm4gPDwgUEFHRV9TSElGVF80Syk7CisgICAg cmV0dXJuIGRtYV9wdGVfY2xlYXJfb25lKGQsIF9fZGZuX3RvX2RhZGRyKGRmbikpOwogfQogCi1p bnQgaW9tbXVfcHRlX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHU2NCBnZm4sIHU2NCAqcHRlLAor aW50IGlvbW11X3B0ZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBkZm4sIHVpbnQ2 NF90ICpwdGUsCiAgICAgICAgICAgICAgICAgICAgIGludCBvcmRlciwgaW50IHByZXNlbnQpCiB7 CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwpAQCAtMTg1OSw3ICsxODU5LDcgQEAg aW50IGlvbW11X3B0ZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1NjQgZ2ZuLCB1NjQgKnB0ZSwK ICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIHJjID0gaW9tbXVfZmx1c2hfaW90bGJf cHNpKGlvbW11LCBpb21tdV9kb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHBhZGRyX3QpZ2ZuIDw8IFBBR0VfU0hJRlRfNEssCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF9fZGZuX3RvX2RhZGRyKGRmbiksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9yZGVyLCAhcHJlc2VudCwgZmx1c2hfZGV2X2lvdGxiKTsKICAgICAgICAg aWYgKCByYyA+IDAgKQogICAgICAgICB7CkBAIC0yNjI5LDcgKzI2MjksNyBAQCBzdGF0aWMgdm9p ZCB2dGRfZHVtcF9wMm1fdGFibGVfbGV2ZWwocGFkZHJfdCBwdF9tYWRkciwgaW50IGxldmVsLCBw YWRkcl90IGdwYSwKICAgICAgICAgICAgIHZ0ZF9kdW1wX3AybV90YWJsZV9sZXZlbChkbWFfcHRl X2FkZHIoKnB0ZSksIG5leHRfbGV2ZWwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFkZHJlc3MsIGluZGVudCArIDEpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBw cmludGsoIiUqc2dmbjogJTA4bHggbWZuOiAlMDhseFxuIiwKKyAgICAgICAgICAgIHByaW50aygi JSpzZGZuOiAlMDhseCBtZm46ICUwOGx4XG4iLAogICAgICAgICAgICAgICAgICAgIGluZGVudCwg IiIsCiAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGFkZHJlc3MgPj4gUEFHRV9T SElGVF80SyksCiAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGRtYV9wdGVfYWRk cigqcHRlKSA+PiBQQUdFX1NISUZUXzRLKSk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t eDg2L2lvbW11LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKaW5kZXggMTRhZDA0ODlh Ni4uMGVkNGE5ZTg2ZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaApAQCAtMzAsNiArMzAsMTggQEAgc3RydWN0 IGcybV9pb3BvcnQgewogICAgIHVuc2lnbmVkIGludCBucDsKIH07CiAKKyNkZWZpbmUgSU9NTVVf UEFHRV9TSElGVCAxMgorI2RlZmluZSBJT01NVV9QQUdFX1NJWkUgICgxIDw8IElPTU1VX1BBR0Vf U0hJRlQpCisjZGVmaW5lIElPTU1VX1BBR0VfTUFTSyAgKH4oSU9NTVVfUEFHRV9TSVpFIC0gMSkp CisKK3R5cGVkZWYgdWludDY0X3QgZGFkZHJfdDsKKworI2RlZmluZSBfX2Rmbl90b19kYWRkcihk Zm4pICgoZGFkZHJfdCkoZGZuKSA8PCBJT01NVV9QQUdFX1NISUZUKQorI2RlZmluZSBfX2RhZGRy X3RvX2RmbihkYWRkcikgKChkYWRkcikgPj4gSU9NTVVfUEFHRV9TSElGVCkKKworI2RlZmluZSBk Zm5fdG9fZGFkZHIoZGZuKSBfX2Rmbl90b19kYWRkcihkZm5feChkZm4pKQorI2RlZmluZSBkYWRk cl90b19kZm4oZGFkZHIpIF9kZm4oX19kYWRkcl90b19kZm4oZGFkZHIpKQorCiBzdHJ1Y3QgYXJj aF9pb21tdQogewogICAgIHU2NCBwZ2RfbWFkZHI7ICAgICAgICAgICAgICAgICAvKiBpbyBwYWdl IGRpcmVjdG9yeSBtYWNoaW5lIGFkZHJlc3MgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hl bi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5kZXggNTdjNGU4MWVjNi4uMjkw ZTBhYWRhNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKKysrIGIveGVuL2lu Y2x1ZGUveGVuL2lvbW11LmgKQEAgLTIzLDExICsyMywyNSBAQAogI2luY2x1ZGUgPHhlbi9wYWdl LWRlZnMuaD4KICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4KICNpbmNsdWRlIDx4ZW4vcGNpLmg+ CisjaW5jbHVkZSA8eGVuL3R5cGVzYWZlLmg+CiAjaW5jbHVkZSA8cHVibGljL2h2bS9pb3JlcS5o PgogI2luY2x1ZGUgPHB1YmxpYy9kb21jdGwuaD4KICNpbmNsdWRlIDxhc20vZGV2aWNlLmg+CiAj aW5jbHVkZSA8YXNtL2lvbW11Lmg+CiAKK1RZUEVfU0FGRSh1aW50NjRfdCwgZGZuKTsKKyNkZWZp bmUgUFJJX2RmbiAgICAgUFJJeDY0CisjZGVmaW5lIElOVkFMSURfREZOIF9kZm4ofjBVTEwpCisK KyNpZm5kZWYgZGZuX3QKKyNkZWZpbmUgZGZuX3QgLyogR3JlcCBmb2RkZXI6IGRmbl90LCBfZGZu KCkgYW5kIGRmbl94KCkgYXJlIGRlZmluZWQgYWJvdmUgKi8KKyNkZWZpbmUgX2RmbgorI2RlZmlu ZSBkZm5feAorI3VuZGVmIGRmbl90CisjdW5kZWYgX2RmbgorI3VuZGVmIGRmbl94CisjZW5kaWYK KwogZXh0ZXJuIGJvb2xfdCBpb21tdV9lbmFibGUsIGlvbW11X2VuYWJsZWQ7CiBleHRlcm4gYm9v bF90IGZvcmNlX2lvbW11LCBpb21tdV92ZXJib3NlOwogZXh0ZXJuIGJvb2xfdCBpb21tdV93b3Jr YXJvdW5kX2Jpb3NfYnVnLCBpb21tdV9pZ2Z4OwpAQCAtNjQsOSArNzgsOSBAQCB2b2lkIGlvbW11 X3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpOwogI2RlZmluZSBJT01NVUZfcmVhZGFibGUgICgx dTw8X0lPTU1VRl9yZWFkYWJsZSkKICNkZWZpbmUgX0lPTU1VRl93cml0YWJsZSAxCiAjZGVmaW5l IElPTU1VRl93cml0YWJsZSAgKDF1PDxfSU9NTVVGX3dyaXRhYmxlKQotaW50IF9fbXVzdF9jaGVj ayBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKK2lu dCBfX211c3RfY2hlY2sgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg bG9uZyBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg bWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwotaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcF9w YWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKTsKK2ludCBfX211c3RfY2hl Y2sgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbik7 CiAKIGVudW0gaW9tbXVfZmVhdHVyZQogewpAQCAtMTU0LDkgKzE2OCw5IEBAIHN0cnVjdCBpb21t dV9vcHMgewogI2VuZGlmIC8qIEhBU19QQ0kgKi8KIAogICAgIHZvaWQgKCp0ZWFyZG93bikoc3Ry dWN0IGRvbWFpbiAqZCk7Ci0gICAgaW50IF9fbXVzdF9jaGVjayAoKm1hcF9wYWdlKShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICBpbnQgX19tdXN0X2NoZWNrICgqbWFw X3BhZ2UpKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBmbGFn cyk7Ci0gICAgaW50IF9fbXVzdF9jaGVjayAoKnVubWFwX3BhZ2UpKHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGxvbmcgZ2ZuKTsKKyAgICBpbnQgX19tdXN0X2NoZWNrICgqdW5tYXBfcGFnZSko c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4pOwogICAgIHZvaWQgKCpmcmVlX3Bh Z2VfdGFibGUpKHN0cnVjdCBwYWdlX2luZm8gKik7CiAjaWZkZWYgQ09ORklHX1g4NgogICAgIHZv aWQgKCp1cGRhdGVfaXJlX2Zyb21fYXBpYykodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGlu dCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSk7CkBAIC0xNjcsNyArMTgxLDcgQEAgc3RydWN0IGlv bW11X29wcyB7CiAgICAgdm9pZCAoKnJlc3VtZSkodm9pZCk7CiAgICAgdm9pZCAoKnNoYXJlX3Ay bSkoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgdm9pZCAoKmNyYXNoX3NodXRkb3duKSh2b2lkKTsK LSAgICBpbnQgX19tdXN0X2NoZWNrICgqaW90bGJfZmx1c2gpKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuLAorICAgIGludCBfX211c3RfY2hlY2sgKCppb3RsYl9mbHVzaCkoc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCk7CiAgICAgaW50IF9fbXVzdF9j aGVjayAoKmlvdGxiX2ZsdXNoX2FsbCkoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgaW50ICgqZ2V0 X3Jlc2VydmVkX2RldmljZV9tZW1vcnkpKGlvbW11X2dyZG1fdCAqLCB2b2lkICopOwpAQCAtMTg5 LDcgKzIwMyw3IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICos IHN0cnVjdCBkb21haW4gKmQsCiBpbnQgaW9tbXVfZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3Rs ICosIHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0oeGVuX2RvbWN0bF90KSk7CiAKLWludCBfX211c3RfY2hlY2sgaW9tbXVfaW90bGJf Zmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCitpbnQgX19tdXN0X2No ZWNrIGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZu LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9j b3VudCk7CiBpbnQgX19tdXN0X2NoZWNrIGlvbW11X2lvdGxiX2ZsdXNoX2FsbChzdHJ1Y3QgZG9t YWluICpkKTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL21tLmggYi94ZW4vaW5jbHVk ZS94ZW4vbW0uaAppbmRleCA5NTk1NTM5YWVlLi4wNTRkMDJlNmMwIDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS94ZW4vbW0uaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vbW0uaApAQCAtMjYsNiArMjYs MTEgQEAKICAqICAgQSBsaW5lYXIgaWRlYSBvZiBhIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3Mgc3Bh Y2UuIEZvciBhbiBhdXRvLXRyYW5zbGF0ZWQKICAqICAgZ3Vlc3QsIHBmbiA9PSBnZm4gd2hpbGUg Zm9yIGEgbm9uLXRyYW5zbGF0ZWQgZ3Vlc3QsIHBmbiAhPSBnZm4uCiAgKgorICogZGZuOiBEZXZp Y2UgRE1BIEZyYW1lIE51bWJlciAoZGVmaW5pdGlvbnMgaW4gaW5jbHVkZS94ZW4vaW9tbXUuaCkK KyAqICAgVGhlIGxpbmVhciBmcmFtZSBudW1iZXJzIG9mIGRldmljZSBETUEgYWRkcmVzcyBzcGFj ZS4gQWxsIGluaXRpYXRvcnMgZm9yCisgKiAgIChpLmUuIGFsbCBkZXZpY2VzIGFzc2lnbmVkIHRv KSBhIGd1ZXN0IHNoYXJlIGEgc2luZ2xlIERNQSBhZGRyZXNzIHNwYWNlCisgKiAgIGFuZCwgYnkg ZGVmYXVsdCwgWGVuIHdpbGwgZW5zdXJlIGRmbiA9PSBwZm4uCisgKgogICogV0FSTklORzogU29t ZSBvZiB0aGVzZSB0ZXJtcyBoYXZlIGNoYW5nZWQgb3ZlciB0aW1lIHdoaWxlIG90aGVycyBoYXZl IGJlZW4KICAqIHVzZWQgaW5jb25zaXN0ZW50bHksIG1lYW5pbmcgdGhhdCBhIGxvdCBvZiBleGlz dGluZyBjb2RlIGRvZXMgbm90IG1hdGNoIHRoZQogICogZGVmaW5pdGlvbnMgYWJvdmUuICBOZXcg Y29kZSBzaG91bGQgdXNlIHRoZXNlIHRlcm1zIGFzIGRlc2NyaWJlZCBoZXJlLCBhbmQKLS0gCjIu MTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=