From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v11 1/7] iommu: introduce the concept of DFN... Date: Wed, 19 Sep 2018 09:35:56 +0100 Message-ID: <20180919083602.8201-2-paul.durrant@citrix.com> References: <20180919083602.8201-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g2XyT-0006kC-1h for xen-devel@lists.xenproject.org; Wed, 19 Sep 2018 08:36:41 +0000 In-Reply-To: <20180919083602.8201-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: Julien Grall , 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 dmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgotLS0KQ2M6IFdlaSBMaXUgPHdlaS5saXUy QGNpdHJpeC5jb20+CkNjOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxw YW5pdEBhbWQuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu b3JnPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCnY5OgogLSBSZS13 b3JkIGNvbW1lbnQgaW4gbW0uaC4KIC0gTW92ZSBkZWZpbml0aW9ucyByZWxhdGluZyB0byBkYWRk ciBpbnRvIGFzbS14ODYvaW9tbXUuaCBzaW5jZSB0aGVzZSBhcmUKICAgbm90IHVzZWQgYnkgYW55 IEFSTSBJT01NVSBpbXBsZW1lbnRhdGlvbi4KIC0gRml4IF9fZGFkZHJfdG9fZGZuKCkgdG8gcHJv cGVybHkgcGFyZW50aGVzaXplIGFuZCByZW1vdmUgY2FzdC4KCnY4OgogLSBDb3JyZWN0IGRlZmlu aXRpb24gb2YgSU5WQUxJRF9ERk4uCiAtIERvbid0IHVzZSBfQUMgaW4gZGVmaW5pdGlvbiBvZiBJ T01NVV9QQUdFX1NJWkUuCgp2NzoKIC0gUmUtbmFtZSBCRk4gLT4gREZOIGFzIHJlcXVlc3RlZCBi eSBKYW4uCiAtIERyb3BwZWQgV2VpJ3MgUi1iIGJlY2F1c2Ugb2YgbmFtZSBjaGFuZ2UuCgp2NjoK IC0gRHJvcHBlZCBjaGFuZ2VzIHRvICdtZm4nIHNlY3Rpb24gaW4geGVuL21tLmggYXMgc3VnZ2Vz dGVkIGJ5IEtldmluLgoKdjM6CiAtIEdldCByaWQgb2YgaW50ZXJtZWRpYXRlICdmcmFtZScgdmFy aWFibGVzIGFnYWluLgoKdjI6CiAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9tIEphbi4KLS0tCiB4 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMgICAgIHwgMTggKysrLS0tLQog eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jICAgICB8IDc4ICsrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2Ft ZF9pb21tdS5jIHwgIDIgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMgICAg ICAgICAgfCAxNiArKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAgICAg ICAgICAgfCAyOCArKysrKy0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMgICAgICAgICB8IDMwICsrKysrLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11Lmgg ICAgICAgICAgICAgICAgIHwgMTIgKysrKysKIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5oICAgICAg ICAgICAgICAgICAgICAgfCAyNiArKysrKysrLS0tCiB4ZW4vaW5jbHVkZS94ZW4vbW0uaCAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDUgKysKIDkgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlv bnMoKyksIDkyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FtZC9pb21tdV9jbWQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9j bWQuYwppbmRleCAwODI0N2ZhMzU0Li5kNGQwNzFlNTNlIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBpbnZhbGlkYXRlX2lv bW11X2FsbChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKIH0KIAogdm9pZCBhbWRfaW9tbXVfZmx1 c2hfaW90bGIodTggZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDY0X3QgZ2FkZHIsIHVuc2lnbmVkIGludCBvcmRlcikKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhZGRyX3QgZGFkZHIsIHVuc2lnbmVkIGludCBvcmRl cikKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0cnVjdCBhbWRfaW9tbXUgKmlv bW11OwpAQCAtMzE1LDEyICszMTUsMTIgQEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfaW90bGIodTgg ZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCiAgICAgLyogc2VuZCBJTlZBTElE QVRFX0lPVExCX1BBR0VTIGNvbW1hbmQgKi8KICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUt PmxvY2ssIGZsYWdzKTsKLSAgICBpbnZhbGlkYXRlX2lvdGxiX3BhZ2VzKGlvbW11LCBtYXhwZW5k LCAwLCBxdWV1ZWlkLCBnYWRkciwgcmVxX2lkLCBvcmRlcik7CisgICAgaW52YWxpZGF0ZV9pb3Rs Yl9wYWdlcyhpb21tdSwgbWF4cGVuZCwgMCwgcXVldWVpZCwgZGFkZHIsIHJlcV9pZCwgb3JkZXIp OwogICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKICAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCBhbWRfaW9tbXVf Zmx1c2hfYWxsX2lvdGxicyhzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBnYWRkciwKK3N0YXRp YyB2b2lkIGFtZF9pb21tdV9mbHVzaF9hbGxfaW90bGJzKHN0cnVjdCBkb21haW4gKmQsIGRhZGRy X3QgZGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgb3JkZXIpCiB7CiAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXY7CkBAIC0zMzMsNyArMzMz LDcgQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9pb3RsYnMoc3RydWN0IGRvbWFp biAqZCwgdWludDY0X3QgZ2FkZHIsCiAgICAgICAgIHU4IGRldmZuID0gcGRldi0+ZGV2Zm47CiAK ICAgICAgICAgZG8gewotICAgICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2lvdGxiKGRldmZuLCBw ZGV2LCBnYWRkciwgb3JkZXIpOworICAgICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2lvdGxiKGRl dmZuLCBwZGV2LCBkYWRkciwgb3JkZXIpOwogICAgICAgICAgICAgZGV2Zm4gKz0gcGRldi0+cGhh bnRvbV9zdHJpZGU7CiAgICAgICAgIH0gd2hpbGUgKCBkZXZmbiAhPSBwZGV2LT5kZXZmbiAmJgog ICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pID09IFBDSV9TTE9UKHBkZXYtPmRldmZu KSApOwpAQCAtMzQyLDcgKzM0Miw3IEBAIHN0YXRpYyB2b2lkIGFtZF9pb21tdV9mbHVzaF9hbGxf aW90bGJzKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGdhZGRyLAogCiAvKiBGbHVzaCBpb21t dSBjYWNoZSBhZnRlciBwMm0gY2hhbmdlcy4gKi8KIHN0YXRpYyB2b2lkIF9hbWRfaW9tbXVfZmx1 c2hfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDY0X3QgZ2FkZHIsIHVuc2lnbmVkIGludCBvcmRlcikKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGFkZHJfdCBkYWRkciwgdW5zaWduZWQgaW50IG9yZGVyKQog ewogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7 CkBAIC0zNTIsMTMgKzM1MiwxMyBAQCBzdGF0aWMgdm9pZCBfYW1kX2lvbW11X2ZsdXNoX3BhZ2Vz KHN0cnVjdCBkb21haW4gKmQsCiAgICAgZm9yX2VhY2hfYW1kX2lvbW11ICggaW9tbXUgKQogICAg IHsKICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5sb2NrLCBmbGFncyk7Ci0gICAg ICAgIGludmFsaWRhdGVfaW9tbXVfcGFnZXMoaW9tbXUsIGdhZGRyLCBkb21faWQsIG9yZGVyKTsK KyAgICAgICAgaW52YWxpZGF0ZV9pb21tdV9wYWdlcyhpb21tdSwgZGFkZHIsIGRvbV9pZCwgb3Jk ZXIpOwogICAgICAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSk7CiAgICAgICAgIHNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CiAgICAgfQogCiAgICAgaWYg KCBhdHNfZW5hYmxlZCApCi0gICAgICAgIGFtZF9pb21tdV9mbHVzaF9hbGxfaW90bGJzKGQsIGdh ZGRyLCBvcmRlcik7CisgICAgICAgIGFtZF9pb21tdV9mbHVzaF9hbGxfaW90bGJzKGQsIGRhZGRy LCBvcmRlcik7CiB9CiAKIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9wYWdlcyhzdHJ1Y3QgZG9t YWluICpkKQpAQCAtMzY3LDkgKzM2Nyw5IEBAIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9wYWdl cyhzdHJ1Y3QgZG9tYWluICpkKQogfQogCiB2b2lkIGFtZF9pb21tdV9mbHVzaF9wYWdlcyhzdHJ1 Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBn Zm4sIHVuc2lnbmVkIGludCBvcmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgZGZuLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiB7Ci0gICAgX2FtZF9pb21tdV9mbHVz aF9wYWdlcyhkLCAodWludDY0X3QpIGdmbiA8PCBQQUdFX1NISUZULCBvcmRlcik7CisgICAgX2Ft ZF9pb21tdV9mbHVzaF9wYWdlcyhkLCBfX2Rmbl90b19kYWRkcihkZm4pLCBvcmRlcik7CiB9CiAK IHZvaWQgYW1kX2lvbW11X2ZsdXNoX2RldmljZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdWlu dDE2X3QgYmRmKQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11 X21hcC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCmluZGV4IDcw YjQzNDViMzcuLjYxYWRlNzE4NTAgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVf bWFwLmMKQEAgLTM1LDEyICszNSwxMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHBmbl90b19wZGVf aWR4KHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBpbnQgbGV2ZWwpCiAgICAgcmV0dXJuIGlk eDsKIH0KIAotdm9pZCBjbGVhcl9pb21tdV9wdGVfcHJlc2VudCh1bnNpZ25lZCBsb25nIGwxX21m biwgdW5zaWduZWQgbG9uZyBnZm4pCit2b2lkIGNsZWFyX2lvbW11X3B0ZV9wcmVzZW50KHVuc2ln bmVkIGxvbmcgbDFfbWZuLCB1bnNpZ25lZCBsb25nIGRmbikKIHsKICAgICB1NjQgKnRhYmxlLCAq cHRlOwogCiAgICAgdGFibGUgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihsMV9tZm4pKTsKLSAgICBw dGUgPSB0YWJsZSArIHBmbl90b19wZGVfaWR4KGdmbiwgSU9NTVVfUEFHSU5HX01PREVfTEVWRUxf MSk7CisgICAgcHRlID0gdGFibGUgKyBwZm5fdG9fcGRlX2lkeChkZm4sIElPTU1VX1BBR0lOR19N T0RFX0xFVkVMXzEpOwogICAgICpwdGUgPSAwOwogICAgIHVubWFwX2RvbWFpbl9wYWdlKHRhYmxl KTsKIH0KQEAgLTEwNCw3ICsxMDQsNyBAQCBzdGF0aWMgYm9vbF90IHNldF9pb21tdV9wZGVfcHJl c2VudCh1MzIgKnBkZSwgdW5zaWduZWQgbG9uZyBuZXh0X21mbiwKICAgICByZXR1cm4gbmVlZF9m bHVzaDsKIH0KIAotc3RhdGljIGJvb2xfdCBzZXRfaW9tbXVfcHRlX3ByZXNlbnQodW5zaWduZWQg bG9uZyBwdF9tZm4sIHVuc2lnbmVkIGxvbmcgZ2ZuLCAKK3N0YXRpYyBib29sX3Qgc2V0X2lvbW11 X3B0ZV9wcmVzZW50KHVuc2lnbmVkIGxvbmcgcHRfbWZuLCB1bnNpZ25lZCBsb25nIGRmbiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV4dF9tZm4s IGludCBwZGVfbGV2ZWwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bF90IGl3LCBib29sX3QgaXIpCiB7CkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIGJvb2xfdCBz ZXRfaW9tbXVfcHRlX3ByZXNlbnQodW5zaWduZWQgbG9uZyBwdF9tZm4sIHVuc2lnbmVkIGxvbmcg Z2ZuLAogCiAgICAgdGFibGUgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihwdF9tZm4pKTsKIAotICAg IHBkZSA9ICh1MzIqKSh0YWJsZSArIHBmbl90b19wZGVfaWR4KGdmbiwgcGRlX2xldmVsKSk7Cisg ICAgcGRlID0gKHUzMiopKHRhYmxlICsgcGZuX3RvX3BkZV9pZHgoZGZuLCBwZGVfbGV2ZWwpKTsK IAogICAgIG5lZWRfZmx1c2ggPSBzZXRfaW9tbXVfcGRlX3ByZXNlbnQocGRlLCBuZXh0X21mbiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9QQUdJTkdfTU9E RV9MRVZFTF8wLCBpdywgaXIpOwpAQCAtMzMxLDcgKzMzMSw3IEBAIHN0YXRpYyB2b2lkIHNldF9w ZGVfY291bnQodTY0ICpwZGUsIHVuc2lnbmVkIGludCBjb3VudCkKICAqIG90aGVyd2lzZSBpbmNy ZWFzZSBwZGUgY291bnQgaWYgbWZuIGlzIGNvbnRpZ291cyB3aXRoIG1mbiAtIDEKICAqLwogc3Rh dGljIGludCBpb21tdV91cGRhdGVfcGRlX2NvdW50KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgcHRfbWZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGRmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1lcmdlX2xldmVsKQogewogICAg IHVuc2lnbmVkIGludCBwZGVfY291bnQsIG5leHRfbGV2ZWw7CkBAIC0zNDcsNyArMzQ3LDcgQEAg c3RhdGljIGludCBpb21tdV91cGRhdGVfcGRlX2NvdW50KHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcgcHRfbWZuLAogCiAgICAgLyogZ2V0IHBkZSBhdCBtZXJnZSBsZXZlbCAqLwogICAg IHRhYmxlID0gbWFwX2RvbWFpbl9wYWdlKF9tZm4ocHRfbWZuKSk7Ci0gICAgcGRlID0gdGFibGUg KyBwZm5fdG9fcGRlX2lkeChnZm4sIG1lcmdlX2xldmVsKTsKKyAgICBwZGUgPSB0YWJsZSArIHBm bl90b19wZGVfaWR4KGRmbiwgbWVyZ2VfbGV2ZWwpOwogCiAgICAgLyogZ2V0IHBhZ2UgdGFibGUg b2YgbmV4dCBsZXZlbCAqLwogICAgIG50YWJsZV9tYWRkciA9IGFtZF9pb21tdV9nZXRfbmV4dF90 YWJsZV9mcm9tX3B0ZSgodTMyKilwZGUpOwpAQCAtMzYyLDcgKzM2Miw3IEBAIHN0YXRpYyBpbnQg aW9tbXVfdXBkYXRlX3BkZV9jb3VudChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIHB0 X21mbiwKICAgICBtYXNrID0gKDFVTEw8PCAoUFRFX1BFUl9UQUJMRV9TSElGVCAqIG5leHRfbGV2 ZWwpKSAtIDE7CiAKICAgICBpZiAoICgoZmlyc3RfbWZuICYgbWFzaykgPT0gMCkgJiYKLSAgICAg ICAgICgoKGdmbiAmIG1hc2spIHwgZmlyc3RfbWZuKSA9PSBtZm4pICkKKyAgICAgICAgICgoKGRm biAmIG1hc2spIHwgZmlyc3RfbWZuKSA9PSBtZm4pICkKICAgICB7CiAgICAgICAgIHBkZV9jb3Vu dCA9IGdldF9wZGVfY291bnQoKnBkZSk7CiAKQEAgLTM4Nyw3ICszODcsNyBAQCBvdXQ6CiB9CiAK IHN0YXRpYyBpbnQgaW9tbXVfbWVyZ2VfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg bG9uZyBwdF9tZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg Z2ZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgZGZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBtZXJnZV9sZXZlbCkKIHsKICAgICB1NjQgKnRhYmxlLCAq cGRlLCAqbnRhYmxlOwpAQCAtMzk4LDcgKzM5OCw3IEBAIHN0YXRpYyBpbnQgaW9tbXVfbWVyZ2Vf cGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBwdF9tZm4sCiAgICAgQVNTRVJU KCBzcGluX2lzX2xvY2tlZCgmaGQtPmFyY2gubWFwcGluZ19sb2NrKSAmJiBwdF9tZm4gKTsKIAog ICAgIHRhYmxlID0gbWFwX2RvbWFpbl9wYWdlKF9tZm4ocHRfbWZuKSk7Ci0gICAgcGRlID0gdGFi bGUgKyBwZm5fdG9fcGRlX2lkeChnZm4sIG1lcmdlX2xldmVsKTsKKyAgICBwZGUgPSB0YWJsZSAr IHBmbl90b19wZGVfaWR4KGRmbiwgbWVyZ2VfbGV2ZWwpOwogCiAgICAgLyogZ2V0IGZpcnN0IG1m biAqLwogICAgIG50YWJsZV9tZm4gPSBhbWRfaW9tbXVfZ2V0X25leHRfdGFibGVfZnJvbV9wdGUo KHUzMiopcGRlKSA+PiBQQUdFX1NISUZUOwpAQCAtNDM2LDcgKzQzNiw3IEBAIHN0YXRpYyBpbnQg aW9tbXVfbWVyZ2VfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBwdF9tZm4s CiAgKiB7UmUsIHVufW1hcHBpbmcgc3VwZXIgcGFnZSBmcmFtZXMgY2F1c2VzIHJlLWFsbG9jYXRp b24gb2YgaW8KICAqIHBhZ2UgdGFibGVzLgogICovCi1zdGF0aWMgaW50IGlvbW11X3BkZV9mcm9t X2dmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIHBmbiwgCitzdGF0aWMgaW50IGlv bW11X3BkZV9mcm9tX2RmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcHRfbWZuW10pCiB7CiAg ICAgdTY0ICpwZGUsICpuZXh0X3RhYmxlX3ZhZGRyOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHN0YXRp YyBpbnQgaW9tbXVfcGRlX2Zyb21fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg cGZuLAogICAgICAgICBwdF9tZm5bbGV2ZWxdID0gbmV4dF90YWJsZV9tZm47CiAKICAgICAgICAg bmV4dF90YWJsZV92YWRkciA9IG1hcF9kb21haW5fcGFnZShfbWZuKG5leHRfdGFibGVfbWZuKSk7 Ci0gICAgICAgIHBkZSA9IG5leHRfdGFibGVfdmFkZHIgKyBwZm5fdG9fcGRlX2lkeChwZm4sIGxl dmVsKTsKKyAgICAgICAgcGRlID0gbmV4dF90YWJsZV92YWRkciArIHBmbl90b19wZGVfaWR4KGRm biwgbGV2ZWwpOwogCiAgICAgICAgIC8qIEhlcmUgbWlnaHQgYmUgYSBzdXBlciBwYWdlIGZyYW1l ICovCiAgICAgICAgIG5leHRfdGFibGVfbWZuID0gYW1kX2lvbW11X2dldF9uZXh0X3RhYmxlX2Zy b21fcHRlKCh1aW50MzJfdCopcGRlKSAKQEAgLTQ3NywxMSArNDc3LDExIEBAIHN0YXRpYyBpbnQg aW9tbXVfcGRlX2Zyb21fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgcGZuLAog ICAgICAgICAgICAgIG5leHRfdGFibGVfbWZuICE9IDAgKQogICAgICAgICB7CiAgICAgICAgICAg ICBpbnQgaTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCBnZm47CisgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIG1mbiwgcGZuOwogICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2Vf c3o7CiAKICAgICAgICAgICAgIHBhZ2Vfc3ogPSAxIDw8IChQVEVfUEVSX1RBQkxFX1NISUZUICog KG5leHRfbGV2ZWwgLSAxKSk7Ci0gICAgICAgICAgICBnZm4gPSAgcGZuICYgfigoMSA8PCAoUFRF X1BFUl9UQUJMRV9TSElGVCAqIG5leHRfbGV2ZWwpKSAtIDEpOworICAgICAgICAgICAgcGZuID0g IGRmbiAmIH4oKDEgPDwgKFBURV9QRVJfVEFCTEVfU0hJRlQgKiBuZXh0X2xldmVsKSkgLSAxKTsK ICAgICAgICAgICAgIG1mbiA9IG5leHRfdGFibGVfbWZuOwogCiAgICAgICAgICAgICAvKiBhbGxv Y2F0ZSBsb3dlciBsZXZlbCBwYWdlIHRhYmxlICovCkBAIC00OTksMTAgKzQ5OSwxMCBAQCBzdGF0 aWMgaW50IGlvbW11X3BkZV9mcm9tX2dmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IHBmbiwKIAogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBQVEVfUEVSX1RBQkxFX1NJWkU7 IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc2V0X2lvbW11X3B0ZV9wcmVz ZW50KG5leHRfdGFibGVfbWZuLCBnZm4sIG1mbiwgbmV4dF9sZXZlbCwKKyAgICAgICAgICAgICAg ICBzZXRfaW9tbXVfcHRlX3ByZXNlbnQobmV4dF90YWJsZV9tZm4sIHBmbiwgbWZuLCBuZXh0X2xl dmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhIUlPTU1VRl93cml0 YWJsZSwgISFJT01NVUZfcmVhZGFibGUpOwogICAgICAgICAgICAgICAgIG1mbiArPSBwYWdlX3N6 OwotICAgICAgICAgICAgICAgIGdmbiArPSBwYWdlX3N6OworICAgICAgICAgICAgICAgIHBmbiAr PSBwYWdlX3N6OwogICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYW1kX2lvbW11X2ZsdXNo X2FsbF9wYWdlcyhkKTsKQEAgLTU0MCw3ICs1NDAsNyBAQCBzdGF0aWMgaW50IGlvbW11X3BkZV9m cm9tX2dmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIHBmbiwKICAgICByZXR1cm4g MDsKIH0KIAotc3RhdGljIGludCB1cGRhdGVfcGFnaW5nX21vZGUoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgbG9uZyBnZm4pCitzdGF0aWMgaW50IHVwZGF0ZV9wYWdpbmdfbW9kZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbikKIHsKICAgICB1MTYgYmRmOwogICAgIHZvaWQg KmRldmljZV9lbnRyeTsKQEAgLTU1NCwxMyArNTU0LDEzIEBAIHN0YXRpYyBpbnQgdXBkYXRlX3Bh Z2luZ19tb2RlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKQogICAgIHVuc2ln bmVkIGxvbmcgb2xkX3Jvb3RfbWZuOwogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9t X2lvbW11KGQpOwogCi0gICAgaWYgKCBnZm4gPT0gZ2ZuX3goSU5WQUxJRF9HRk4pICkKKyAgICBp ZiAoIGRmbiA9PSBkZm5feChJTlZBTElEX0RGTikgKQogICAgICAgICByZXR1cm4gLUVBRERSTk9U QVZBSUw7Ci0gICAgQVNTRVJUKCEoZ2ZuID4+IERFRkFVTFRfRE9NQUlOX0FERFJFU1NfV0lEVEgp KTsKKyAgICBBU1NFUlQoIShkZm4gPj4gREVGQVVMVF9ET01BSU5fQUREUkVTU19XSURUSCkpOwog CiAgICAgbGV2ZWwgPSBoZC0+YXJjaC5wYWdpbmdfbW9kZTsKICAgICBvbGRfcm9vdCA9IGhkLT5h cmNoLnJvb3RfdGFibGU7Ci0gICAgb2Zmc2V0ID0gZ2ZuID4+IChQVEVfUEVSX1RBQkxFX1NISUZU ICogKGxldmVsIC0gMSkpOworICAgIG9mZnNldCA9IGRmbiA+PiAoUFRFX1BFUl9UQUJMRV9TSElG VCAqIChsZXZlbCAtIDEpKTsKIAogICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmaGQtPmFyY2gu bWFwcGluZ19sb2NrKSAmJiBpc19odm1fZG9tYWluKGQpKTsKIApAQCAtNjMxLDcgKzYzMSw3IEBA IHN0YXRpYyBpbnQgdXBkYXRlX3BhZ2luZ19tb2RlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgZ2ZuKQogICAgIHJldHVybiAwOwogfQogCi1pbnQgYW1kX2lvbW11X21hcF9wYWdlKHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKK2lu dCBhbWRfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4s IHVuc2lnbmVkIGxvbmcgbWZuLAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg ZmxhZ3MpCiB7CiAgICAgYm9vbF90IG5lZWRfZmx1c2ggPSAwOwpAQCAtNjUxLDM0ICs2NTEsMzQg QEAgaW50IGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGdmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgaWYgKCByYyApCiAgICAgewogICAgICAgICBz cGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLSAgICAgICAgQU1EX0lPTU1VX0RF QlVHKCJSb290IHRhYmxlIGFsbG9jIGZhaWxlZCwgZ2ZuID0gJWx4XG4iLCBnZm4pOworICAgICAg ICBBTURfSU9NTVVfREVCVUcoIlJvb3QgdGFibGUgYWxsb2MgZmFpbGVkLCBkZm4gPSAlbHhcbiIs IGRmbik7CiAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAgcmV0dXJuIHJjOwogICAg IH0KIAogICAgIC8qIFNpbmNlIEhWTSBkb21haW4gaXMgaW5pdGlhbGl6ZWQgd2l0aCAyIGxldmVs IElPIHBhZ2UgdGFibGUsCi0gICAgICogd2UgbWlnaHQgbmVlZCBhIGRlZXBlciBwYWdlIHRhYmxl IGZvciBsYWdlciBnZm4gbm93ICovCisgICAgICogd2UgbWlnaHQgbmVlZCBhIGRlZXBlciBwYWdl IHRhYmxlIGZvciB3aWRlciBkZm4gbm93ICovCiAgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICkK ICAgICB7Ci0gICAgICAgIGlmICggdXBkYXRlX3BhZ2luZ19tb2RlKGQsIGdmbikgKQorICAgICAg ICBpZiAoIHVwZGF0ZV9wYWdpbmdfbW9kZShkLCBkZm4pICkKICAgICAgICAgewogICAgICAgICAg ICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0gICAgICAgICAgICBBTURf SU9NTVVfREVCVUcoIlVwZGF0ZSBwYWdlIG1vZGUgZmFpbGVkIGdmbiA9ICVseFxuIiwgZ2ZuKTsK KyAgICAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiVXBkYXRlIHBhZ2UgbW9kZSBmYWlsZWQgZGZu ID0gJWx4XG4iLCBkZm4pOwogICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAgICAgICAg ICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIGlvbW11X3Bk ZV9mcm9tX2dmbihkLCBnZm4sIHB0X21mbikgfHwgKHB0X21mblsxXSA9PSAwKSApCisgICAgaWYg KCBpb21tdV9wZGVfZnJvbV9kZm4oZCwgZGZuLCBwdF9tZm4pIHx8IChwdF9tZm5bMV0gPT0gMCkg KQogICAgIHsKICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0g ICAgICAgIEFNRF9JT01NVV9ERUJVRygiSW52YWxpZCBJTyBwYWdldGFibGUgZW50cnkgZ2ZuID0g JWx4XG4iLCBnZm4pOworICAgICAgICBBTURfSU9NTVVfREVCVUcoIkludmFsaWQgSU8gcGFnZXRh YmxlIGVudHJ5IGRmbiA9ICVseFxuIiwgZGZuKTsKICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwog ICAgICAgICByZXR1cm4gLUVGQVVMVDsKICAgICB9CiAKICAgICAvKiBJbnN0YWxsIDRrIG1hcHBp bmcgZmlyc3QgKi8KLSAgICBuZWVkX2ZsdXNoID0gc2V0X2lvbW11X3B0ZV9wcmVzZW50KHB0X21m blsxXSwgZ2ZuLCBtZm4sIAorICAgIG5lZWRfZmx1c2ggPSBzZXRfaW9tbXVfcHRlX3ByZXNlbnQo cHRfbWZuWzFdLCBkZm4sIG1mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElPTU1VX1BBR0lOR19NT0RFX0xFVkVMXzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAhIShmbGFncyAmIElPTU1VRl93cml0YWJsZSksCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAhIShmbGFncyAmIElPTU1VRl9yZWFkYWJsZSkpOwpA QCAtNjkwLDcgKzY5MCw3IEBAIGludCBhbWRfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgbG9uZyBnZm4sIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIC8qIDRLIG1hcHBp bmcgZm9yIFBWIGd1ZXN0cyBuZXZlciBjaGFuZ2VzLCAKICAgICAgKiBubyBuZWVkIHRvIGZsdXNo IGlmIHdlIHRydXN0IG5vbi1wcmVzZW50IGJpdHMgKi8KICAgICBpZiAoIGlzX2h2bV9kb21haW4o ZCkgKQotICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMoZCwgZ2ZuLCAwKTsKKyAgICAgICAg YW1kX2lvbW11X2ZsdXNoX3BhZ2VzKGQsIGRmbiwgMCk7CiAKICAgICBmb3IgKCBtZXJnZV9sZXZl bCA9IElPTU1VX1BBR0lOR19NT0RFX0xFVkVMXzI7CiAgICAgICAgICAgbWVyZ2VfbGV2ZWwgPD0g aGQtPmFyY2gucGFnaW5nX21vZGU7IG1lcmdlX2xldmVsKysgKQpAQCAtNjk4LDE1ICs2OTgsMTUg QEAgaW50IGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGdmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgICAgIGlmICggcHRfbWZuW21lcmdlX2xldmVs XSA9PSAwICkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoICFpb21tdV91cGRhdGVf cGRlX2NvdW50KGQsIHB0X21mblttZXJnZV9sZXZlbF0sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2ZuLCBtZm4sIG1lcmdlX2xldmVsKSApCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGZuLCBtZm4sIG1lcmdlX2xldmVsKSApCiAgICAgICAgICAg ICBicmVhazsKIAotICAgICAgICBpZiAoIGlvbW11X21lcmdlX3BhZ2VzKGQsIHB0X21mblttZXJn ZV9sZXZlbF0sIGdmbiwgCisgICAgICAgIGlmICggaW9tbXVfbWVyZ2VfcGFnZXMoZCwgcHRfbWZu W21lcmdlX2xldmVsXSwgZGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdz LCBtZXJnZV9sZXZlbCkgKQogICAgICAgICB7CiAgICAgICAgICAgICBzcGluX3VubG9jaygmaGQt PmFyY2gubWFwcGluZ19sb2NrKTsKICAgICAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiTWVyZ2Ug aW9tbXUgcGFnZSBmYWlsZWQgYXQgbGV2ZWwgJWQsICIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZ2ZuID0gJWx4IG1mbiA9ICVseFxuIiwgbWVyZ2VfbGV2ZWwsIGdmbiwgbWZuKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiZGZuID0gJWx4IG1mbiA9ICVseFxuIiwgbWVyZ2Vf bGV2ZWwsIGRmbiwgbWZuKTsKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAg ICAgIHJldHVybiAtRUZBVUxUOwogICAgICAgICB9CkBAIC03MjAsNyArNzIwLDcgQEAgb3V0Ogog ICAgIHJldHVybiAwOwogfQogCi1pbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCitpbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4pCiB7CiAgICAgdW5zaWduZWQgbG9uZyBwdF9t Zm5bN107CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CkBAIC03 MzksMzQgKzczOSwzNCBAQCBpbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgbG9uZyBnZm4pCiAgICAgfQogCiAgICAgLyogU2luY2UgSFZNIGRvbWFpbiBp cyBpbml0aWFsaXplZCB3aXRoIDIgbGV2ZWwgSU8gcGFnZSB0YWJsZSwKLSAgICAgKiB3ZSBtaWdo dCBuZWVkIGEgZGVlcGVyIHBhZ2UgdGFibGUgZm9yIGxhZ2VyIGdmbiBub3cgKi8KKyAgICAgKiB3 ZSBtaWdodCBuZWVkIGEgZGVlcGVyIHBhZ2UgdGFibGUgZm9yIGxhZ2VyIGRmbiBub3cgKi8KICAg ICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQogICAgIHsKLSAgICAgICAgaW50IHJjID0gdXBkYXRl X3BhZ2luZ19tb2RlKGQsIGdmbik7CisgICAgICAgIGludCByYyA9IHVwZGF0ZV9wYWdpbmdfbW9k ZShkLCBkZm4pOwogCiAgICAgICAgIGlmICggcmMgKQogICAgICAgICB7CiAgICAgICAgICAgICBz cGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLSAgICAgICAgICAgIEFNRF9JT01N VV9ERUJVRygiVXBkYXRlIHBhZ2UgbW9kZSBmYWlsZWQgZ2ZuID0gJWx4XG4iLCBnZm4pOworICAg ICAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJVcGRhdGUgcGFnZSBtb2RlIGZhaWxlZCBkZm4gPSAl bHhcbiIsIGRmbik7CiAgICAgICAgICAgICBpZiAoIHJjICE9IC1FQUREUk5PVEFWQUlMICkKICAg ICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAgICAgICAgICByZXR1cm4gcmM7CiAg ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIGlvbW11X3BkZV9mcm9tX2dmbihkLCBnZm4sIHB0 X21mbikgfHwgKHB0X21mblsxXSA9PSAwKSApCisgICAgaWYgKCBpb21tdV9wZGVfZnJvbV9kZm4o ZCwgZGZuLCBwdF9tZm4pIHx8IChwdF9tZm5bMV0gPT0gMCkgKQogICAgIHsKICAgICAgICAgc3Bp bl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0gICAgICAgIEFNRF9JT01NVV9ERUJV RygiSW52YWxpZCBJTyBwYWdldGFibGUgZW50cnkgZ2ZuID0gJWx4XG4iLCBnZm4pOworICAgICAg ICBBTURfSU9NTVVfREVCVUcoIkludmFsaWQgSU8gcGFnZXRhYmxlIGVudHJ5IGRmbiA9ICVseFxu IiwgZGZuKTsKICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAgICAgICByZXR1cm4gLUVGQVVM VDsKICAgICB9CiAKICAgICAvKiBtYXJrIFBURSBhcyAncGFnZSBub3QgcHJlc2VudCcgKi8KLSAg ICBjbGVhcl9pb21tdV9wdGVfcHJlc2VudChwdF9tZm5bMV0sIGdmbik7CisgICAgY2xlYXJfaW9t bXVfcHRlX3ByZXNlbnQocHRfbWZuWzFdLCBkZm4pOwogICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJj aC5tYXBwaW5nX2xvY2spOwogCi0gICAgYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKGQsIGdmbiwgMCk7 CisgICAgYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKGQsIGRmbiwgMCk7CiAKICAgICByZXR1cm4gMDsK IH0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11 LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCmluZGV4IDMz MGY5Y2UzODYuLmJjYzQ3ZWI5NmMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3Bj aV9hbWRfaW9tbXUuYwpAQCAtNTg1LDcgKzU4NSw3IEBAIHN0YXRpYyB2b2lkIGFtZF9kdW1wX3Ay bV90YWJsZV9sZXZlbChzdHJ1Y3QgcGFnZV9pbmZvKiBwZywgaW50IGxldmVsLAogICAgICAgICAg ICAgICAgIG1hZGRyX3RvX3BhZ2UobmV4dF90YWJsZV9tYWRkciksIG5leHRfbGV2ZWwsCiAgICAg ICAgICAgICAgICAgYWRkcmVzcywgaW5kZW50ICsgMSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg ICAgIHByaW50aygiJSpzZ2ZuOiAlMDhseCAgbWZuOiAlMDhseFxuIiwKKyAgICAgICAgICAgIHBy aW50aygiJSpzZGZuOiAlMDhseCAgbWZuOiAlMDhseFxuIiwKICAgICAgICAgICAgICAgICAgICBp bmRlbnQsICIiLAogICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKVBGTl9ET1dOKGFk ZHJlc3MpLAogICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKVBGTl9ET1dOKG5leHRf dGFibGVfbWFkZHIpKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9z bW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jCmluZGV4IDQzZWNlNDJh NTAuLjFmZjA5YmJiMDIgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9z bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYwpAQCAtMjU1MSw3 ICsyNTUxLDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3NtbXVfaW90bGJfZmx1c2hf YWxsKHN0cnVjdCBkb21haW4gKmQpCiB9CiAKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9z bW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZGZuLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2Vf Y291bnQpCiB7CiAJLyogQVJNIFNNTVUgdjEgZG9lc24ndCBoYXZlIGZsdXNoIGJ5IFZNQSBhbmQg Vk1JRCAqLwpAQCAtMjc0Niw3ICsyNzQ2LDcgQEAgc3RhdGljIHZvaWQgYXJtX3NtbXVfaW9tbXVf ZG9tYWluX3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpCiAJeGZyZWUoeGVuX2RvbWFpbik7CiB9 CiAKLXN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X21hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3Nt bXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sCiAJCQl1bnNp Z25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IGZsYWdzKQogewogCXAybV90eXBlX3QgdDsKQEAg LTI3NTcsMTAgKzI3NTcsMTAgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3NtbXVfbWFw X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCiAJICogcHJvdGVjdGVk IGJ5IGFuIElPTU1VLCBYZW4gbmVlZHMgdG8gYWRkIGEgMToxIG1hcHBpbmcgaW4gdGhlIGRvbWFp bgogCSAqIHAybSB0byBhbGxvdyBETUEgcmVxdWVzdCB0byB3b3JrLgogCSAqIFRoaXMgaXMgb25s eSB2YWxpZCB3aGVuIHRoZSBkb21haW4gaXMgZGlyZWN0ZWQgbWFwcGVkLiBIZW5jZSB0aGlzCi0J ICogZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBnbnR0YWIgY29kZSB3aXRoIGdmbiA9 PSBtZm4uCisJICogZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBnbnR0YWIgY29kZSB3 aXRoIGdmbiA9PSBtZm4gPT0gZGZuLgogCSAqLwogCUJVR19PTighaXNfZG9tYWluX2RpcmVjdF9t YXBwZWQoZCkpOwotCUJVR19PTihtZm4gIT0gZ2ZuKTsKKwlCVUdfT04obWZuICE9IGRmbik7CiAK IAkvKiBXZSBvbmx5IHN1cHBvcnQgcmVhZGFibGUgYW5kIHdyaXRhYmxlIGZsYWdzICovCiAJaWYg KCEoZmxhZ3MgJiAoSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKSkpCkBAIC0yNzcy LDE5ICsyNzcyLDE5IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X21hcF9wYWdl KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAogCSAqIFRoZSBmdW5jdGlvbiBn dWVzdF9waHlzbWFwX2FkZF9lbnRyeSByZXBsYWNlcyB0aGUgY3VycmVudCBtYXBwaW5nCiAJICog aWYgdGhlcmUgaXMgYWxyZWFkeSBvbmUuLi4KIAkgKi8KLQlyZXR1cm4gZ3Vlc3RfcGh5c21hcF9h ZGRfZW50cnkoZCwgX2dmbihnZm4pLCBfbWZuKG1mbiksIDAsIHQpOworCXJldHVybiBndWVzdF9w aHlzbWFwX2FkZF9lbnRyeShkLCBfZ2ZuKGRmbiksIF9tZm4oZGZuKSwgMCwgdCk7CiB9CiAKLXN0 YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFybV9zbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgbG9uZyBnZm4pCitzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhcm1fc21tdV91 bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuKQogewogCS8qCiAJ ICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IGdudHRhYiBjb2RlIHdoZW4g dGhlIGRvbWFpbgotCSAqIGlzIGRpcmVjdCBtYXBwZWQKKwkgKiBpcyBkaXJlY3QgbWFwcGVkIChp LmUuIGdmbiA9PSBtZm4gPT0gZGZuKS4KIAkgKi8KIAlpZiAoICFpc19kb21haW5fZGlyZWN0X21h cHBlZChkKSApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JcmV0dXJuIGd1ZXN0X3BoeXNtYXBfcmVt b3ZlX3BhZ2UoZCwgX2dmbihnZm4pLCBfbWZuKGdmbiksIDApOworCXJldHVybiBndWVzdF9waHlz bWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4oZGZuKSwgX21mbihkZm4pLCAwKTsKIH0KIAogc3RhdGlj IGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgYXJtX3NtbXVfaW9tbXVfb3BzID0gewpkaWZmIC0tZ2l0 IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMKaW5kZXggZWUzZjUyM2ZkZi4uY2E4MjYyYmU3YyAxMDA2NDQKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBfX2h3ZG9tX2luaXQgaW9tbXVfaHdk b21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICBwYWdlX2xpc3RfZm9yX2VhY2ggKCBw YWdlLCAmZC0+cGFnZV9saXN0ICkKICAgICAgICAgewogICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBtZm4gPSBtZm5feChwYWdlX3RvX21mbihwYWdlKSk7Ci0gICAgICAgICAgICB1bnNpZ25lZCBs b25nIGdmbiA9IG1mbl90b19nbWZuKGQsIG1mbik7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25n IGRmbiA9IG1mbl90b19nbWZuKGQsIG1mbik7CiAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbWFw cGluZyA9IElPTU1VRl9yZWFkYWJsZTsKICAgICAgICAgICAgIGludCByZXQ7CiAKQEAgLTIyNCw3 ICsyMjQsNyBAQCB2b2lkIF9faHdkb21faW5pdCBpb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21h aW4gKmQpCiAgICAgICAgICAgICAgICAgICA9PSBQR1Rfd3JpdGFibGVfcGFnZSkgKQogICAgICAg ICAgICAgICAgIG1hcHBpbmcgfD0gSU9NTVVGX3dyaXRhYmxlOwogCi0gICAgICAgICAgICByZXQg PSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBnZm4sIG1mbiwgbWFwcGluZyk7CisgICAg ICAgICAgICByZXQgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBkZm4sIG1mbiwgbWFw cGluZyk7CiAgICAgICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAgICAgICAgcmMgPSByZXQ7 CiAKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIGlvbW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBk b21haW4gKmQpCiAgICAgYXJjaF9pb21tdV9kb21haW5fZGVzdHJveShkKTsKIH0KIAotaW50IGlv bW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25l ZCBsb25nIG1mbiwKK2ludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIGRmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IGZsYWdzKQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9t X2lvbW11KGQpOwpAQCAtMzA0LDEzICszMDQsMTMgQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICBp ZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAgcmV0dXJu IDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQsIGdmbiwgbWZuLCBm bGFncyk7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBkZm4sIG1mbiwg ZmxhZ3MpOwogICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICB7CiAgICAgICAgIGlmICggIWQt PmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRrX3JhdGVsaW1pdCgpICkKICAgICAgICAgICAgIHBy aW50ayhYRU5MT0dfRVJSCi0gICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUgbWFwcGluZyBn Zm4gJSNseCB0byBtZm4gJSNseCBmYWlsZWQ6ICVkXG4iLAotICAgICAgICAgICAgICAgICAgIGQt PmRvbWFpbl9pZCwgZ2ZuLCBtZm4sIHJjKTsKKyAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01N VSBtYXBwaW5nIGRmbiAlI2x4IHRvIG1mbiAlI2x4IGZhaWxlZDogJWRcbiIsCisgICAgICAgICAg ICAgICAgICAgZC0+ZG9tYWluX2lkLCBkZm4sIG1mbiwgcmMpOwogCiAgICAgICAgIGlmICggIWlz X2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CkBAIC0z MTksNyArMzE5LDcgQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICByZXR1cm4gcmM7CiB9CiAKLWlu dCBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKQor aW50IGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4p CiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CiAg ICAgaW50IHJjOwpAQCAtMzI3LDEzICszMjcsMTMgQEAgaW50IGlvbW11X3VubWFwX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxl ZCB8fCAhaGQtPnBsYXRmb3JtX29wcyApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBo ZC0+cGxhdGZvcm1fb3BzLT51bm1hcF9wYWdlKGQsIGdmbik7CisgICAgcmMgPSBoZC0+cGxhdGZv cm1fb3BzLT51bm1hcF9wYWdlKGQsIGRmbik7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAg IHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0 KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAi ZCVkOiBJT01NVSB1bm1hcHBpbmcgZ2ZuICUjbHggZmFpbGVkOiAlZFxuIiwKLSAgICAgICAgICAg ICAgICAgICBkLT5kb21haW5faWQsIGdmbiwgcmMpOworICAgICAgICAgICAgICAgICAgICJkJWQ6 IElPTU1VIHVubWFwcGluZyBkZm4gJSNseCBmYWlsZWQ6ICVkXG4iLAorICAgICAgICAgICAgICAg ICAgIGQtPmRvbWFpbl9pZCwgZGZuLCByYyk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVf ZG9tYWluKGQpICkKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKQEAgLTM1OSw3ICszNTks NyBAQCBzdGF0aWMgdm9pZCBpb21tdV9mcmVlX3BhZ2V0YWJsZXModW5zaWduZWQgbG9uZyB1bnVz ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1bWFza19jeWNsZShzbXBfcHJvY2Vz c29yX2lkKCksICZjcHVfb25saW5lX21hcCkpOwogfQogCi1pbnQgaW9tbXVfaW90bGJfZmx1c2go c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCitpbnQgaW9tbXVfaW90bGJfZmx1 c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sCiAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFp bl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CkBAIC0zNjgsMTMgKzM2OCwxMyBAQCBpbnQgaW9t bXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCiAgICAg aWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyB8fCAhaGQtPnBsYXRmb3Jt X29wcy0+aW90bGJfZmx1c2ggKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJjID0gaGQtPnBs YXRmb3JtX29wcy0+aW90bGJfZmx1c2goZCwgZ2ZuLCBwYWdlX2NvdW50KTsKKyAgICByYyA9IGhk LT5wbGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoKGQsIGRmbiwgcGFnZV9jb3VudCk7CiAgICAgaWYg KCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93 biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIK LSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBJT1RMQiBmbHVzaCBmYWlsZWQ6ICVkLCBn Zm4gJSNseCwgcGFnZSBjb3VudCAldVxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5f aWQsIHJjLCBnZm4sIHBhZ2VfY291bnQpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1V IElPVExCIGZsdXNoIGZhaWxlZDogJWQsIGRmbiAlI2x4LCBwYWdlIGNvdW50ICV1XG4iLAorICAg ICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMsIGRmbiwgcGFnZV9jb3VudCk7CiAKICAg ICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKICAgICAgICAgICAgIGRvbWFpbl9j cmFzaChkKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5j IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKaW5kZXggYWRjNzBmMjA1YS4u ODg3MjBkNDQwNiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTU4NSw3ICs1 ODUsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9hbGwodm9pZCkKIH0K IAogc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGIoc3RydWN0IGRvbWFp biAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBib29sX3QgZG1hX29sZF9wdGVfcHJlc2VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQogewpAQCAtNjEyLDEyICs2 MTIsMTIgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGIoc3RydWN0 IGRvbWFpbiAqZCwKICAgICAgICAgaWYgKCBpb21tdV9kb21pZCA9PSAtMSApCiAgICAgICAgICAg ICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIHBhZ2VfY291bnQgIT0gMSB8fCBnZm4gPT0gZ2Zu X3goSU5WQUxJRF9HRk4pICkKKyAgICAgICAgaWYgKCBwYWdlX2NvdW50ICE9IDEgfHwgZGZuID09 IGRmbl94KElOVkFMSURfREZOKSApCiAgICAgICAgICAgICByYyA9IGlvbW11X2ZsdXNoX2lvdGxi X2RzaShpb21tdSwgaW9tbXVfZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAwLCBmbHVzaF9kZXZfaW90bGIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBy YyA9IGlvbW11X2ZsdXNoX2lvdGxiX3BzaShpb21tdSwgaW9tbXVfZG9taWQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFkZHJfdClnZm4gPDwgUEFHRV9TSElGVF80 SywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZGZuX3RvX2RhZGRy KGRmbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX09SREVS XzRLLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWRtYV9vbGRfcHRl X3ByZXNlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbHVzaF9k ZXZfaW90bGIpOwpAQCAtNjMzLDE1ICs2MzMsMTUgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sg aW9tbXVfZmx1c2hfaW90bGIoc3RydWN0IGRvbWFpbiAqZCwKIH0KIAogc3RhdGljIGludCBfX211 c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGJfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg Z2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCkKIHsKLSAgICByZXR1cm4gaW9tbXVfZmx1 c2hfaW90bGIoZCwgZ2ZuLCAxLCBwYWdlX2NvdW50KTsKKyAgICByZXR1cm4gaW9tbXVfZmx1c2hf aW90bGIoZCwgZGZuLCAxLCBwYWdlX2NvdW50KTsKIH0KIAogc3RhdGljIGludCBfX211c3RfY2hl Y2sgaW9tbXVfZmx1c2hfaW90bGJfYWxsKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgcmV0dXJu IGlvbW11X2ZsdXNoX2lvdGxiKGQsIGdmbl94KElOVkFMSURfR0ZOKSwgMCwgMCk7CisgICAgcmV0 dXJuIGlvbW11X2ZsdXNoX2lvdGxiKGQsIGRmbl94KElOVkFMSURfREZOKSwgMCwgMCk7CiB9CiAK IC8qIGNsZWFyIG9uZSBwYWdlJ3MgcGFnZSB0YWJsZSAqLwpAQCAtMTc2OCw3ICsxNzY4LDcgQEAg c3RhdGljIHZvaWQgaW9tbXVfZG9tYWluX3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpCiB9CiAK IHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CkBAIC0xNzg3LDE0ICsx Nzg3LDE0IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11X21hcF9wYWdlKHN0 cnVjdCBkb21haW4gKmQsCiAKICAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7 CiAKLSAgICBwZ19tYWRkciA9IGFkZHJfdG9fZG1hX3BhZ2VfbWFkZHIoZCwgKHBhZGRyX3QpZ2Zu IDw8IFBBR0VfU0hJRlRfNEssIDEpOworICAgIHBnX21hZGRyID0gYWRkcl90b19kbWFfcGFnZV9t YWRkcihkLCBfX2Rmbl90b19kYWRkcihkZm4pLCAxKTsKICAgICBpZiAoIHBnX21hZGRyID09IDAg KQogICAgIHsKICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAg ICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgIH0KICAgICBwYWdlID0gKHN0cnVjdCBkbWFfcHRl ICopbWFwX3Z0ZF9kb21haW5fcGFnZShwZ19tYWRkcik7Ci0gICAgcHRlID0gcGFnZSArIChnZm4g JiBMRVZFTF9NQVNLKTsKKyAgICBwdGUgPSBwYWdlICsgKGRmbiAmIExFVkVMX01BU0spOwogICAg IG9sZCA9ICpwdGU7CiAgICAgZG1hX3NldF9wdGVfYWRkcihuZXcsIChwYWRkcl90KW1mbiA8PCBQ QUdFX1NISUZUXzRLKTsKICAgICBkbWFfc2V0X3B0ZV9wcm90KG5ldywKQEAgLTE4MTgsMjIgKzE4 MTgsMjIgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50ZWxfaW9tbXVfbWFwX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwKICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UocGFnZSk7CiAKICAgICBp ZiAoICF0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSApCi0gICAgICAgIHJjID0gaW9t bXVfZmx1c2hfaW90bGIoZCwgZ2ZuLCBkbWFfcHRlX3ByZXNlbnQob2xkKSwgMSk7CisgICAgICAg IHJjID0gaW9tbXVfZmx1c2hfaW90bGIoZCwgZGZuLCBkbWFfcHRlX3ByZXNlbnQob2xkKSwgMSk7 CiAKICAgICByZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lv bW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBnZm4pCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZGZuKQogewog ICAgIC8qIERvIG5vdGhpbmcgaWYgaGFyZHdhcmUgZG9tYWluIGFuZCBpb21tdSBzdXBwb3J0cyBw YXNzIHRocnUuICovCiAgICAgaWYgKCBpb21tdV9od2RvbV9wYXNzdGhyb3VnaCAmJiBpc19oYXJk d2FyZV9kb21haW4oZCkgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBkbWFfcHRl X2NsZWFyX29uZShkLCAocGFkZHJfdClnZm4gPDwgUEFHRV9TSElGVF80Syk7CisgICAgcmV0dXJu IGRtYV9wdGVfY2xlYXJfb25lKGQsIF9fZGZuX3RvX2RhZGRyKGRmbikpOwogfQogCi1pbnQgaW9t bXVfcHRlX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHU2NCBnZm4sIHU2NCAqcHRlLAoraW50IGlv bW11X3B0ZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBkZm4sIHVpbnQ2NF90ICpw dGUsCiAgICAgICAgICAgICAgICAgICAgIGludCBvcmRlciwgaW50IHByZXNlbnQpCiB7CiAgICAg c3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwpAQCAtMTg1Nyw3ICsxODU3LDcgQEAgaW50IGlv bW11X3B0ZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1NjQgZ2ZuLCB1NjQgKnB0ZSwKICAgICAg ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIHJjID0gaW9tbXVfZmx1c2hfaW90bGJfcHNpKGlv bW11LCBpb21tdV9kb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBh ZGRyX3QpZ2ZuIDw8IFBBR0VfU0hJRlRfNEssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9fZGZuX3RvX2RhZGRyKGRmbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9yZGVyLCAhcHJlc2VudCwgZmx1c2hfZGV2X2lvdGxiKTsKICAgICAgICAgaWYgKCBy YyA+IDAgKQogICAgICAgICB7CkBAIC0yNjI3LDcgKzI2MjcsNyBAQCBzdGF0aWMgdm9pZCB2dGRf ZHVtcF9wMm1fdGFibGVfbGV2ZWwocGFkZHJfdCBwdF9tYWRkciwgaW50IGxldmVsLCBwYWRkcl90 IGdwYSwKICAgICAgICAgICAgIHZ0ZF9kdW1wX3AybV90YWJsZV9sZXZlbChkbWFfcHRlX2FkZHIo KnB0ZSksIG5leHRfbGV2ZWwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFkZHJlc3MsIGluZGVudCArIDEpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBwcmludGso IiUqc2dmbjogJTA4bHggbWZuOiAlMDhseFxuIiwKKyAgICAgICAgICAgIHByaW50aygiJSpzZGZu OiAlMDhseCBtZm46ICUwOGx4XG4iLAogICAgICAgICAgICAgICAgICAgIGluZGVudCwgIiIsCiAg ICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGFkZHJlc3MgPj4gUEFHRV9TSElGVF80 SyksCiAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGRtYV9wdGVfYWRkcigqcHRl KSA+PiBQQUdFX1NISUZUXzRLKSk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2lv bW11LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKaW5kZXggMTRhZDA0ODlhNi4uMGVk NGE5ZTg2ZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oCisrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaApAQCAtMzAsNiArMzAsMTggQEAgc3RydWN0IGcybV9p b3BvcnQgewogICAgIHVuc2lnbmVkIGludCBucDsKIH07CiAKKyNkZWZpbmUgSU9NTVVfUEFHRV9T SElGVCAxMgorI2RlZmluZSBJT01NVV9QQUdFX1NJWkUgICgxIDw8IElPTU1VX1BBR0VfU0hJRlQp CisjZGVmaW5lIElPTU1VX1BBR0VfTUFTSyAgKH4oSU9NTVVfUEFHRV9TSVpFIC0gMSkpCisKK3R5 cGVkZWYgdWludDY0X3QgZGFkZHJfdDsKKworI2RlZmluZSBfX2Rmbl90b19kYWRkcihkZm4pICgo ZGFkZHJfdCkoZGZuKSA8PCBJT01NVV9QQUdFX1NISUZUKQorI2RlZmluZSBfX2RhZGRyX3RvX2Rm bihkYWRkcikgKChkYWRkcikgPj4gSU9NTVVfUEFHRV9TSElGVCkKKworI2RlZmluZSBkZm5fdG9f ZGFkZHIoZGZuKSBfX2Rmbl90b19kYWRkcihkZm5feChkZm4pKQorI2RlZmluZSBkYWRkcl90b19k Zm4oZGFkZHIpIF9kZm4oX19kYWRkcl90b19kZm4oZGFkZHIpKQorCiBzdHJ1Y3QgYXJjaF9pb21t dQogewogICAgIHU2NCBwZ2RfbWFkZHI7ICAgICAgICAgICAgICAgICAvKiBpbyBwYWdlIGRpcmVj dG9yeSBtYWNoaW5lIGFkZHJlc3MgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9pb21t dS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5kZXggNTdjNGU4MWVjNi4uMjkwZTBhYWRh NiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKKysrIGIveGVuL2luY2x1ZGUv eGVuL2lvbW11LmgKQEAgLTIzLDExICsyMywyNSBAQAogI2luY2x1ZGUgPHhlbi9wYWdlLWRlZnMu aD4KICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4KICNpbmNsdWRlIDx4ZW4vcGNpLmg+CisjaW5j bHVkZSA8eGVuL3R5cGVzYWZlLmg+CiAjaW5jbHVkZSA8cHVibGljL2h2bS9pb3JlcS5oPgogI2lu Y2x1ZGUgPHB1YmxpYy9kb21jdGwuaD4KICNpbmNsdWRlIDxhc20vZGV2aWNlLmg+CiAjaW5jbHVk ZSA8YXNtL2lvbW11Lmg+CiAKK1RZUEVfU0FGRSh1aW50NjRfdCwgZGZuKTsKKyNkZWZpbmUgUFJJ X2RmbiAgICAgUFJJeDY0CisjZGVmaW5lIElOVkFMSURfREZOIF9kZm4ofjBVTEwpCisKKyNpZm5k ZWYgZGZuX3QKKyNkZWZpbmUgZGZuX3QgLyogR3JlcCBmb2RkZXI6IGRmbl90LCBfZGZuKCkgYW5k IGRmbl94KCkgYXJlIGRlZmluZWQgYWJvdmUgKi8KKyNkZWZpbmUgX2RmbgorI2RlZmluZSBkZm5f eAorI3VuZGVmIGRmbl90CisjdW5kZWYgX2RmbgorI3VuZGVmIGRmbl94CisjZW5kaWYKKwogZXh0 ZXJuIGJvb2xfdCBpb21tdV9lbmFibGUsIGlvbW11X2VuYWJsZWQ7CiBleHRlcm4gYm9vbF90IGZv cmNlX2lvbW11LCBpb21tdV92ZXJib3NlOwogZXh0ZXJuIGJvb2xfdCBpb21tdV93b3JrYXJvdW5k X2Jpb3NfYnVnLCBpb21tdV9pZ2Z4OwpAQCAtNjQsOSArNzgsOSBAQCB2b2lkIGlvbW11X3RlYXJk b3duKHN0cnVjdCBkb21haW4gKmQpOwogI2RlZmluZSBJT01NVUZfcmVhZGFibGUgICgxdTw8X0lP TU1VRl9yZWFkYWJsZSkKICNkZWZpbmUgX0lPTU1VRl93cml0YWJsZSAxCiAjZGVmaW5lIElPTU1V Rl93cml0YWJsZSAgKDF1PDxfSU9NTVVGX3dyaXRhYmxlKQotaW50IF9fbXVzdF9jaGVjayBpb21t dV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKK2ludCBfX211 c3RfY2hlY2sgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBk Zm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCB1 bnNpZ25lZCBpbnQgZmxhZ3MpOwotaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcF9wYWdlKHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKTsKK2ludCBfX211c3RfY2hlY2sgaW9t bXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbik7CiAKIGVu dW0gaW9tbXVfZmVhdHVyZQogewpAQCAtMTU0LDkgKzE2OCw5IEBAIHN0cnVjdCBpb21tdV9vcHMg ewogI2VuZGlmIC8qIEhBU19QQ0kgKi8KIAogICAgIHZvaWQgKCp0ZWFyZG93bikoc3RydWN0IGRv bWFpbiAqZCk7Ci0gICAgaW50IF9fbXVzdF9jaGVjayAoKm1hcF9wYWdlKShzdHJ1Y3QgZG9tYWlu ICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICBpbnQgX19tdXN0X2NoZWNrICgqbWFwX3BhZ2Up KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBmbGFncyk7Ci0g ICAgaW50IF9fbXVzdF9jaGVjayAoKnVubWFwX3BhZ2UpKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcgZ2ZuKTsKKyAgICBpbnQgX19tdXN0X2NoZWNrICgqdW5tYXBfcGFnZSkoc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4pOwogICAgIHZvaWQgKCpmcmVlX3BhZ2VfdGFi bGUpKHN0cnVjdCBwYWdlX2luZm8gKik7CiAjaWZkZWYgQ09ORklHX1g4NgogICAgIHZvaWQgKCp1 cGRhdGVfaXJlX2Zyb21fYXBpYykodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcs IHVuc2lnbmVkIGludCB2YWx1ZSk7CkBAIC0xNjcsNyArMTgxLDcgQEAgc3RydWN0IGlvbW11X29w cyB7CiAgICAgdm9pZCAoKnJlc3VtZSkodm9pZCk7CiAgICAgdm9pZCAoKnNoYXJlX3AybSkoc3Ry dWN0IGRvbWFpbiAqZCk7CiAgICAgdm9pZCAoKmNyYXNoX3NodXRkb3duKSh2b2lkKTsKLSAgICBp bnQgX19tdXN0X2NoZWNrICgqaW90bGJfZmx1c2gpKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgZ2ZuLAorICAgIGludCBfX211c3RfY2hlY2sgKCppb3RsYl9mbHVzaCkoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCk7CiAgICAgaW50IF9fbXVzdF9jaGVjayAo KmlvdGxiX2ZsdXNoX2FsbCkoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgaW50ICgqZ2V0X3Jlc2Vy dmVkX2RldmljZV9tZW1vcnkpKGlvbW11X2dyZG1fdCAqLCB2b2lkICopOwpAQCAtMTg5LDcgKzIw Myw3IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVj dCBkb21haW4gKmQsCiBpbnQgaW9tbXVfZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0 cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGVuX2RvbWN0bF90KSk7CiAKLWludCBfX211c3RfY2hlY2sgaW9tbXVfaW90bGJfZmx1c2go c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCitpbnQgX19tdXN0X2NoZWNrIGlv bW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCk7 CiBpbnQgX19tdXN0X2NoZWNrIGlvbW11X2lvdGxiX2ZsdXNoX2FsbChzdHJ1Y3QgZG9tYWluICpk KTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL21tLmggYi94ZW4vaW5jbHVkZS94ZW4v bW0uaAppbmRleCBiM2Q0NmFiNTZiLi43MjBhYTQ5YjA1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vbW0uaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vbW0uaApAQCAtMjYsNiArMjYsMTEgQEAK ICAqICAgQSBsaW5lYXIgaWRlYSBvZiBhIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2UuIEZv ciBhbiBhdXRvLXRyYW5zbGF0ZWQKICAqICAgZ3Vlc3QsIHBmbiA9PSBnZm4gd2hpbGUgZm9yIGEg bm9uLXRyYW5zbGF0ZWQgZ3Vlc3QsIHBmbiAhPSBnZm4uCiAgKgorICogZGZuOiBEZXZpY2UgRE1B IEZyYW1lIE51bWJlciAoZGVmaW5pdGlvbnMgaW4gaW5jbHVkZS94ZW4vaW9tbXUuaCkKKyAqICAg VGhlIGxpbmVhciBmcmFtZSBudW1iZXJzIG9mIGRldmljZSBETUEgYWRkcmVzcyBzcGFjZS4gQWxs IGluaXRpYXRvcnMgZm9yCisgKiAgIChpLmUuIGFsbCBkZXZpY2VzIGFzc2lnbmVkIHRvKSBhIGd1 ZXN0IHNoYXJlIGEgc2luZ2xlIERNQSBhZGRyZXNzIHNwYWNlCisgKiAgIGFuZCwgYnkgZGVmYXVs dCwgWGVuIHdpbGwgZW5zdXJlIGRmbiA9PSBwZm4uCisgKgogICogV0FSTklORzogU29tZSBvZiB0 aGVzZSB0ZXJtcyBoYXZlIGNoYW5nZWQgb3ZlciB0aW1lIHdoaWxlIG90aGVycyBoYXZlIGJlZW4K ICAqIHVzZWQgaW5jb25zaXN0ZW50bHksIG1lYW5pbmcgdGhhdCBhIGxvdCBvZiBleGlzdGluZyBj b2RlIGRvZXMgbm90IG1hdGNoIHRoZQogICogZGVmaW5pdGlvbnMgYWJvdmUuICBOZXcgY29kZSBz aG91bGQgdXNlIHRoZXNlIHRlcm1zIGFzIGRlc2NyaWJlZCBoZXJlLCBhbmQKLS0gCjIuMTEuMAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=