From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v14 9/9] mm / iommu: split need_iommu() into has_iommu_pt() and need_iommu_pt_sync() Date: Thu, 4 Oct 2018 11:45:47 +0100 Message-ID: <20181004104547.32316-10-paul.durrant@citrix.com> References: <20181004104547.32316-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 1g818v-0002VS-40 for xen-devel@lists.xenproject.org; Thu, 04 Oct 2018 10:46:05 +0000 In-Reply-To: <20181004104547.32316-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: Kevin Tian , Stefano Stabellini , Wei Liu , Jun Nakajima , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Tamas K Lengyel , Jan Beulich , Brian Woods , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org VGhlIG5hbWUgJ25lZWRfaW9tbXUoKScgaXMgYSBsaXR0bGUgY29uZnVzaW5nIGFzIGl0IHN1Z2dl c3RzIGEgZG9tYWluIG5lZWRzCnRvIHVzZSB0aGUgSU9NTVUgYnV0IHNvbWV0aGluZyBtaWdodCBu b3QgYmUgc2V0IHVwIHlldCwgd2hlbiBpbiBmYWN0IGl0CnJlcHJlc2VudHMgYSB0cmktc3RhdGUg dmFsdWUgKG5vdCBhIGJvb2xlYW4gYXMgbWlnaHQgYmUgZXhwZWN0ZWQpIHdoZXJlCi0xIG1lYW5z ICdJT01NVSBtYXBwaW5ncyBiZWluZyBzZXQgdXAnIGFuZCAxIG1lYW5zICdJT01NVSBtYXBwaW5n cyBoYXZlCmJlZW4gZnVsbHkgc2V0IHVwJy4KClR3byBkaWZmZXJlbnQgbWVhbmluZ3MgYXJlIGFs c28gaW5mZXJyZWQgZnJvbSB0aGUgbWFjcm8gaXQgaW4gdmFyaW91cwpwbGFjZXMgaW4gdGhlIGNv ZGU6CgotIFNvbWUgY2FsbGVycyB3YW50IHRvIHRlc3Qgd2hldGhlciBhIGRvbWFpbiBoYXMgSU9N TVUgbWFwcGluZ3MgYXQgYWxsCi0gU29tZSBjYWxsZXJzIHdhbnQgdG8gdGVzdCB3aGV0aGVyIHRo ZXkgbmVlZCB0byBzeW5jaHJvbml6ZSB0aGUgZG9tYWluJ3MKICBQMk0gYW5kIElPTU1VIG1hcHBp bmdzCgpUaGlzIHBhdGNoIHJlcGxhY2VzIHRoZSAnbmVlZF9pb21tdScgdHJpLXN0YXRlIHZhbHVl IHdpdGggYSBkZWZpbmVkCmVudW1lcmF0aW9uIGFuZCBhZGRzIGEgYm9vbGVhbiBmbGFnICduZWVk X3N5bmMnIHRvIHNlcGFyYXRlIHRoZXNlIG1lYW5pbmdzLAphbmQgcGxhY2VzIGJvdGggb2YgdGhl c2UgaW4gc3RydWN0IGRvbWFpbl9pb21tdSwgcmF0aGVyIHRoYW4gZGlyZWN0bHkgaW4Kc3RydWN0 IGRvbWFpbi4KVGhpcyBwYXRjaCBhbHNvIGNyZWF0ZXMgdHdvIG5ldyBib29sZWFuIG1hY3JvczoK Ci0gJ2hhc19pb21tdV9wdCgpJyBldmFsdWF0ZXMgdG8gdHJ1ZSBpZiBhIGRvbWFpbiBoYXMgSU9N TVUgbWFwcGluZ3MsIGV2ZW4KICBpZiB0aGV5IGFyZSBzdGlsbCB1bmRlciBjb25zdHJ1Y3Rpb24u Ci0gJ25lZWRfaW9tbXVfcHRfc3luYygpJyBldmFsdWF0ZXMgdG8gdHJ1ZSBpZiBhIGRvbWFpbiBy ZXF1aXJlcyBleHBsaWNpdAogIHN5bmNocm9uaXphdGlvbiBvZiB0aGUgUDJNIGFuZCBJT01NVSBt YXBwaW5ncy4KCkFsbCBjYWxsZXJzIG9mIG5lZWRfaW9tbXUoKSBhcmUgdGhlbiBtb2RpZmllZCB0 byB1c2UgdGhlIG1hY3JvIGFwcHJvcHJpYXRlCnRvIHdoYXQgdGhleSBhcmUgdHJ5aW5nIHRvIHRl c3QsIGV4Y2VwdCBmb3IgdGhlIGluc3RhbmNlIGluCnhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Bj aS5jOmFzc2lnbl9kZXZpY2UoKSB3aGljaCBoYXMgc2ltcGx5IGJlZW4KcmVtb3ZlZCBzaW5jZSBp dCBhcHBlYXJzIHRvIGJlIHVubmVjZXNzYXJ5LgoKTk9URTogVGhlcmUgYXJlIHNvbWUgY2FsbGVy cyBvZiBuZWVkX2lvbW11KCkgdGhhdCBzdHJpY3RseSBvcGVyYXRlIG9uCiAgICAgIHRoZSBoYXJk d2FyZSBkb21haW4uIEluIHNvbWUgb2YgdGhlc2UgY2FzZSBhIG1vcmUgZ2xvYmFsIGZsYWcgaXMK ICAgICAgdXNlZCBpbnN0ZWFkLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1 cnJhbnRAY2l0cml4LmNvbT4KQWNrZWQtYnk6IFJhenZhbiBDb2pvY2FydSA8cmNvam9jYXJ1QGJp dGRlZmVuZGVyLmNvbT4KLS0tCkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtl cm5lbC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogQW5k cmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAg PEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3Nv bkBldS5jaXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzog S29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogVGltIERl ZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDYzog VGFtYXMgSyBMZW5neWVsIDx0YW1hc0B0a2xlbmd5ZWwuY29tPgpDYzogR2VvcmdlIER1bmxhcCA8 Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWpp bWFAaW50ZWwuY29tPgpDYzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNjOiBT dXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgpDYzog QnJpYW4gV29vZHMgPGJyaWFuLndvb2RzQGFtZC5jb20+Cgp2MTQ6CiAtIFJlLWJhc2UuCgp2MTM6 CiAtIFJlLXdvcmsgY2hlY2tzIGluIG1lbW9yeV9hZGQoKS4KIC0gRXh0ZW5kIGNvbW1pdCBjb21t ZW50IHRvIG5vdGUgcmVtb3ZhbCBvZiBuZWVkX2lvbW11KCkgY2hlY2sgaW4KICAgYXNzaWduX2Rl dmljZSgpLgoKdjEyOgogLSBGaXggdHdvIG1pcy11c2VzIG9mIGlvbW11X2hhcF9wdF9zaGFyZSgp LgogLSBSZW1vdmUgb25lIHVzZSBoYXNfaW9tbXVfcHQoKSBjaGVjayBpbiBwYXNzdGhyb3VnaC9w Y2kuYwoKdjExOgogLSBQdWxsZWQgaW4gZnJvbSB2NiBvZiB0aGUgZnVsbCBQVi1JT01NVSBzZXJp ZXMuCiBfIENoYW5nZWQgdGhlIGNvbmRpdGlvbiBiZWluZyB0ZXN0ZWQgaW4gbWVtb3J5X2FkZCgp IHRvIGJlIG1vcmUgc2VsZi0KICAgZXhwbGFuYXRvcnkgYnV0IGFsc28gYWRkZWQgYSBjb21tZW50 IHRvIGV4cGxhaW4gdGhlIGNpcmN1bXN0YW5jZXMKICAgdW5kZXIgd2hpY2ggaW9tbXVfbWFwX3Bh Z2UoKSBuZWVkcyB0byBiZSBjYWxsZWQuCiAtIEdldCByaWQgb2YgI2lmZGVmIENPTkZJR19IQVNf UEFTU1RIUk9VR0ggaW4gbWVtb3J5LmMgc2luY2UgdGhlIGlmCiAgIGNsYXVzZXMgd2l0aGluIHdp bGwgbmV2ZXIgYmUgZXhlY3V0ZWQgdW5sZXNzIHRoZSBvcHRpb24gaXMgZGVmaW5lZAogICAoc2lu Y2UgaGFzX2lvbW11X3B0KCkgd2lsbCBhbHdheXMgYmUgZmFsc2Ugb3RoZXJ3aXNlKS4gQWxzbyBm bHVzaGluZwogICBzaG91bGQgYmUgZG9uZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIElPTU1V IGlzIHNoYXJpbmcgcGFnZSB0YWJsZXMKICAgb3Igbm90LgoKdjY6CiAtIERlYWwgd2l0aCBuZWVk X2lvbW11IGJlaW5nIHRyaS1zdGF0ZS4KIC0gQ2hhbmdlIHRoZSBuYW1lIG9mICdzeW5jX2lvbW11 X3B0JyB0byAnbmVlZF9pb21tdV9wdF9zeW5jJyBhbmQgbWFrZQogICBzdXJlIGl0IGlzIHNldCBh cyBzb29uIGFzIHRoZSBtYXBwaW5ncyBhcmUgdW5kZXIgY29uc3RydWN0aW9uLgogLSBOb3QgYWRk aW5nIFJhenZhbidzIEEtYiBiZWNhdXNlIG9mIGNoYW5nZS4KCnY0OgogLSBOZXcgaW4gdjQuCi0t LQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJj aC94ODYvaHZtL210cnIuYyAgICAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2FyY2gveDg2L21t LmMgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJp bmcuYyAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgICAgICAgICAg ICAgfCAgMiArLQogeGVuL2FyY2gveDg2L21tL3AybS1wdC5jICAgICAgICAgICAgICB8ICAyICst CiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KIHhl bi9hcmNoL3g4Ni9tbS9wYWdpbmcuYyAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2 L3g4Nl82NC9tbS5jICAgICAgICAgICAgICB8IDEwICsrKysrKysrLS0KIHhlbi9jb21tb24vbWVt b3J5LmMgICAgICAgICAgICAgICAgICAgfCAxMCArKystLS0tLS0tCiB4ZW4vY29tbW9uL3ZtX2V2 ZW50LmMgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Rl dmljZV90cmVlLmMgfCAyMSArKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvaW9tbXUuYyAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgICAgICAgIHwgMTEgKysrKystLS0t LS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jICAgfCAgMiAtLQogeGVuL2lu Y2x1ZGUvYXNtLWFybS9ncmFudF90YWJsZS5oICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS9hc20t YXJtL2lvbW11LmggICAgICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRf dGFibGUuaCAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oICAgICAgICAg ICB8ICAyICstCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICAgIHwgMTcgKysr KysrKysrKysrKysrKwogeGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAgICAgICAgICAgICB8ICA5 ICsrKystLS0tLQogMjEgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwgNTkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3AybS5jIGIveGVuL2FyY2gvYXJtL3Ay bS5jCmluZGV4IDFjNzlmZjdhZGUuLmEwYmVjN2M5NWMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS9wMm0uYworKysgYi94ZW4vYXJjaC9hcm0vcDJtLmMKQEAgLTk1NSw3ICs5NTUsNyBAQCBzdGF0 aWMgaW50IF9fcDJtX3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAogICAgIGlmICgg bHBhZV9pc192YWxpZChvcmlnX3B0ZSkgJiYgZW50cnktPnAybS5iYXNlICE9IG9yaWdfcHRlLnAy bS5iYXNlICkKICAgICAgICAgcDJtX2ZyZWVfZW50cnkocDJtLCBvcmlnX3B0ZSwgbGV2ZWwpOwog Ci0gICAgaWYgKCBuZWVkX2lvbW11KHAybS0+ZG9tYWluKSAmJgorICAgIGlmICggbmVlZF9pb21t dV9wdF9zeW5jKHAybS0+ZG9tYWluKSAmJgogICAgICAgICAgKGxwYWVfaXNfdmFsaWQob3JpZ19w dGUpIHx8IGxwYWVfaXNfdmFsaWQoKmVudHJ5KSkgKQogICAgIHsKICAgICAgICAgcmMgPSBpb21t dV9pb3RsYl9mbHVzaChwMm0tPmRvbWFpbiwgX2RmbihnZm5feChzZ2ZuKSksCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL210cnIuYyBiL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jCmluZGV4 IDRmMmYxOTVmN2QuLmI4ZmEzNDBkNWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vbXRy ci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jCkBAIC03ODMsNyArNzgzLDcgQEAgSFZN X1JFR0lTVEVSX1NBVkVfUkVTVE9SRShNVFJSLCBodm1fc2F2ZV9tdHJyX21zciwgaHZtX2xvYWRf bXRycl9tc3IsIDEsCiAKIHZvaWQgbWVtb3J5X3R5cGVfY2hhbmdlZChzdHJ1Y3QgZG9tYWluICpk KQogewotICAgIGlmICggbmVlZF9pb21tdShkKSAmJiBkLT52Y3B1ICYmIGQtPnZjcHVbMF0gKQor ICAgIGlmICggaGFzX2lvbW11X3B0KGQpICYmIGQtPnZjcHUgJiYgZC0+dmNwdVswXSApCiAgICAg ewogICAgICAgICBwMm1fbWVtb3J5X3R5cGVfY2hhbmdlZChkKTsKICAgICAgICAgZmx1c2hfYWxs KEZMVVNIX0NBQ0hFKTsKQEAgLTgzMSw3ICs4MzEsNyBAQCBpbnQgZXB0ZV9nZXRfZW50cnlfZW10 KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgICAg IHJldHVybiBNVFJSX1RZUEVfVU5DQUNIQUJMRTsKICAgICB9CiAKLSAgICBpZiAoICFuZWVkX2lv bW11KGQpICYmICFjYWNoZV9mbHVzaF9wZXJtaXR0ZWQoZCkgKQorICAgIGlmICggIWhhc19pb21t dV9wdChkKSAmJiAhY2FjaGVfZmx1c2hfcGVybWl0dGVkKGQpICkKICAgICB7CiAgICAgICAgICpp cGF0ID0gMTsKICAgICAgICAgcmV0dXJuIE1UUlJfVFlQRV9XUkJBQ0s7CmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDVhN2M1MzM1YTIuLjQ4 YWNkYWRjOGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS5jCkBAIC0yNzg3LDcgKzI3ODcsNyBAQCBzdGF0aWMgaW50IF9nZXRfcGFnZV90eXBlKHN0 cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSwKICAgICB7CiAgICAgICAg IC8qIFNwZWNpYWwgcGFnZXMgc2hvdWxkIG5vdCBiZSBhY2Nlc3NpYmxlIGZyb20gZGV2aWNlcy4g Ki8KICAgICAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHBhZ2VfZ2V0X293bmVyKHBhZ2UpOwotICAg ICAgICBpZiAoIGQgJiYgaXNfcHZfZG9tYWluKGQpICYmIHVubGlrZWx5KG5lZWRfaW9tbXUoZCkp ICkKKyAgICAgICAgaWYgKCBkICYmIGlzX3B2X2RvbWFpbihkKSAmJiB1bmxpa2VseShuZWVkX2lv bW11X3B0X3N5bmMoZCkpICkKICAgICAgICAgewogICAgICAgICAgICAgbWZuX3QgbWZuID0gcGFn ZV90b19tZm4ocGFnZSk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmlu Zy5jIGIveGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMKaW5kZXggMzQ5ZTZmZDJjZi4uMWRh YjJjOGNjMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMKKysrIGIv eGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMKQEAgLTE2MTIsNyArMTYxMiw3IEBAIGludCBt ZW1fc2hhcmluZ19kb21jdGwoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21jdGxfbWVt X3NoYXJpbmdfb3AgKm1lYykKICAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX01FTV9TSEFSSU5HX0NP TlRST0w6CiAgICAgICAgIHsKICAgICAgICAgICAgIHJjID0gMDsKLSAgICAgICAgICAgIGlmICgg dW5saWtlbHkobmVlZF9pb21tdShkKSAmJiBtZWMtPnUuZW5hYmxlKSApCisgICAgICAgICAgICBp ZiAoIHVubGlrZWx5KGhhc19pb21tdV9wdChkKSAmJiBtZWMtPnUuZW5hYmxlKSApCiAgICAgICAg ICAgICAgICAgcmMgPSAtRVhERVY7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg ZC0+YXJjaC5odm0ubWVtX3NoYXJpbmdfZW5hYmxlZCA9IG1lYy0+dS5lbmFibGU7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQu YwppbmRleCBmMzJkZjNlYjdhLi5hNTI0YWM4NmZhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv bW0vcDJtLWVwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKQEAgLTg3OSw3ICs4 NzksNyBAQCBvdXQ6CiAgICAgewogICAgICAgICBpZiAoIGlvbW11X3VzZV9oYXBfcHQoZCkgKQog ICAgICAgICAgICAgcmMgPSBpb21tdV9wdGVfZmx1c2goZCwgZ2ZuLCAmZXB0X2VudHJ5LT5lcHRl LCBvcmRlciwgdnRkX3B0ZV9wcmVzZW50KTsKLSAgICAgICAgZWxzZSBpZiAoIG5lZWRfaW9tbXUo ZCkgKQorICAgICAgICBlbHNlIGlmICggbmVlZF9pb21tdV9wdF9zeW5jKGQpICkKICAgICAgICAg ewogICAgICAgICAgICAgZGZuX3QgZGZuID0gX2RmbihnZm4pOwogCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvbW0vcDJtLXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKaW5kZXggYmYz NjE2MDk5My4uY2M4MzRkYzk1ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5j CisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwpAQCAtNjg4LDcgKzY4OCw3IEBAIHAybV9w dF9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwgZ2ZuX3QgZ2ZuXywgbWZuX3QgbWZu LAogICAgICAgICAgICAgaWYgKCBpb21tdV9vbGRfZmxhZ3MgKQogICAgICAgICAgICAgICAgIGFt ZF9pb21tdV9mbHVzaF9wYWdlcyhwMm0tPmRvbWFpbiwgZ2ZuLCBwYWdlX29yZGVyKTsKICAgICAg ICAgfQotICAgICAgICBlbHNlIGlmICggbmVlZF9pb21tdShwMm0tPmRvbWFpbikgKQorICAgICAg ICBlbHNlIGlmICggbmVlZF9pb21tdV9wdF9zeW5jKHAybS0+ZG9tYWluKSApCiAgICAgICAgIHsK ICAgICAgICAgICAgIGRmbl90IGRmbiA9IF9kZm4oZ2ZuKTsKIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5jCmluZGV4IDRhOTgxOTgwMDQu LjdiNjNlMzk5MTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4v YXJjaC94ODYvbW0vcDJtLmMKQEAgLTcyMSw3ICs3MjEsNyBAQCBwMm1fcmVtb3ZlX3BhZ2Uoc3Ry dWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm5fbCwgdW5zaWduZWQgbG9uZyBt Zm4sCiAgICAgewogICAgICAgICBpbnQgcmMgPSAwOwogCi0gICAgICAgIGlmICggbmVlZF9pb21t dShwMm0tPmRvbWFpbikgKQorICAgICAgICBpZiAoIG5lZWRfaW9tbXVfcHRfc3luYyhwMm0tPmRv bWFpbikgKQogICAgICAgICB7CiAgICAgICAgICAgICBkZm5fdCBkZm4gPSBfZGZuKG1mbik7CiAK QEAgLTc4NSw3ICs3ODUsNyBAQCBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWlu ICpkLCBnZm5fdCBnZm4sIG1mbl90IG1mbiwKIAogICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5z bGF0ZShkKSApCiAgICAgewotICAgICAgICBpZiAoIG5lZWRfaW9tbXUoZCkgJiYgdCA9PSBwMm1f cmFtX3J3ICkKKyAgICAgICAgaWYgKCBuZWVkX2lvbW11X3B0X3N5bmMoZCkgJiYgdCA9PSBwMm1f cmFtX3J3ICkKICAgICAgICAgewogICAgICAgICAgICAgZGZuX3QgZGZuID0gX2RmbihtZm5feCht Zm4pKTsKIApAQCAtMTE3NSw3ICsxMTc1LDcgQEAgaW50IHNldF9pZGVudGl0eV9wMm1fZW50cnko c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm5fbCwKIAogICAgIGlmICggIXBhZ2lu Z19tb2RlX3RyYW5zbGF0ZShkKSApCiAgICAgewotICAgICAgICBpZiAoICFuZWVkX2lvbW11KGQp ICkKKyAgICAgICAgaWYgKCAhbmVlZF9pb21tdV9wdF9zeW5jKGQpICkKICAgICAgICAgICAgIHJl dHVybiAwOwogCiAgICAgICAgIHJldCA9IGlvbW11X21hcF9wYWdlKGQsIF9kZm4oZ2ZuX2wpLCBf bWZuKGdmbl9sKSwKQEAgLTEyNzEsNyArMTI3MSw3IEBAIGludCBjbGVhcl9pZGVudGl0eV9wMm1f ZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm5fbCkKIAogICAgIGlmICgg IXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCiAgICAgewotICAgICAgICBpZiAoICFuZWVkX2lv bW11KGQpICkKKyAgICAgICAgaWYgKCAhbmVlZF9pb21tdV9wdF9zeW5jKGQpICkKICAgICAgICAg ICAgIHJldHVybiAwOwogCiAgICAgICAgIHJldCA9IGlvbW11X3VubWFwX3BhZ2UoZCwgX2Rmbihn Zm5fbCkpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jIGIveGVuL2FyY2gv eDg2L21tL3BhZ2luZy5jCmluZGV4IDdmNDYwYmQzMjEuLmYzMmE2MDE4OGEgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMK QEAgLTIxMyw3ICsyMTMsNyBAQCBpbnQgcGFnaW5nX2xvZ19kaXJ0eV9lbmFibGUoc3RydWN0IGRv bWFpbiAqZCwgYm9vbF90IGxvZ19nbG9iYWwpCiB7CiAgICAgaW50IHJldDsKIAotICAgIGlmICgg bmVlZF9pb21tdShkKSAmJiBsb2dfZ2xvYmFsICkKKyAgICBpZiAoIGhhc19pb21tdV9wdChkKSAm JiBsb2dfZ2xvYmFsICkKICAgICB7CiAgICAgICAgIC8qCiAgICAgICAgICAqIFJlZnVzZSB0byB0 dXJuIG9uIGdsb2JhbCBsb2ctZGlydHkgbW9kZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4 Nl82NC9tbS5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCmluZGV4IGQxZmNlNTc0MzIuLjU0 M2VhMDMwZTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYworKysgYi94ZW4v YXJjaC94ODYveDg2XzY0L21tLmMKQEAgLTE0MjYsOCArMTQyNiwxNCBAQCBpbnQgbWVtb3J5X2Fk ZCh1bnNpZ25lZCBsb25nIHNwZm4sIHVuc2lnbmVkIGxvbmcgZXBmbiwgdW5zaWduZWQgaW50IHB4 bSkKICAgICBpZiAoIHJldCApCiAgICAgICAgIGdvdG8gZGVzdHJveV9tMnA7CiAKLSAgICBpZiAo IGlvbW11X2VuYWJsZWQgJiYgIWlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoICYmCi0gICAgICAgICAh bmVlZF9pb21tdShoYXJkd2FyZV9kb21haW4pICkKKyAgICAvKgorICAgICAqIElmIGhhcmR3YXJl IGRvbWFpbiBoYXMgSU9NTVUgbWFwcGluZ3MgYnV0IHBhZ2UgdGFibGVzIGFyZSBub3QKKyAgICAg KiBzaGFyZWQgb3IgYmVpbmcga2VwdCBpbiBzeW5jIHRoZW4gbmV3bHkgYWRkZWQgbWVtb3J5IG5l ZWRzIHRvIGJlCisgICAgICogbWFwcGVkIGhlcmUuCisgICAgICovCisgICAgaWYgKCBoYXNfaW9t bXVfcHQoaGFyZHdhcmVfZG9tYWluKSAmJgorICAgICAgICAgIWlvbW11X3VzZV9oYXBfcHQoaGFy ZHdhcmVfZG9tYWluKSAmJgorICAgICAgICAgIW5lZWRfaW9tbXVfcHRfc3luYyhoYXJkd2FyZV9k b21haW4pICkKICAgICB7CiAgICAgICAgIGZvciAoIGkgPSBzcGZuOyBpIDwgZXBmbjsgaSsrICkK ICAgICAgICAgICAgIGlmICggaW9tbXVfbWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBfZGZuKGkp LCBfbWZuKGkpLApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21tb24v bWVtb3J5LmMKaW5kZXggNTJkNTVkZmVkNy4uZGIzMzM0YmFlNiAxMDA2NDQKLS0tIGEveGVuL2Nv bW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC04MDUsMTAgKzgwNSw4 IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhl bl9hZGRfdG9fcGh5c21hcCAqeGF0cCwKICAgICB4YXRwLT5ncGZuICs9IHN0YXJ0OwogICAgIHhh dHAtPnNpemUgLT0gc3RhcnQ7CiAKLSNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICi0gICAg aWYgKCBuZWVkX2lvbW11KGQpICkKLSAgICAgICAgdGhpc19jcHUoaW9tbXVfZG9udF9mbHVzaF9p b3RsYikgPSAxOwotI2VuZGlmCisgICAgaWYgKCBoYXNfaW9tbXVfcHQoZCkgKQorICAgICAgIHRo aXNfY3B1KGlvbW11X2RvbnRfZmx1c2hfaW90bGIpID0gMTsKIAogICAgIHdoaWxlICggeGF0cC0+ c2l6ZSA+IGRvbmUgKQogICAgIHsKQEAgLTgyOCw4ICs4MjYsNyBAQCBpbnQgeGVubWVtX2FkZF90 b19waHlzbWFwKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXAgKnhh dHAsCiAgICAgICAgIH0KICAgICB9CiAKLSNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICi0g ICAgaWYgKCBuZWVkX2lvbW11KGQpICkKKyAgICBpZiAoIGhhc19pb21tdV9wdChkKSApCiAgICAg ewogICAgICAgICBpbnQgcmV0OwogCkBAIC04NDYsNyArODQzLDYgQEAgaW50IHhlbm1lbV9hZGRf dG9fcGh5c21hcChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwICp4 YXRwLAogICAgICAgICBpZiAoIHVubGlrZWx5KHJjIDwgMCkgKQogICAgICAgICAgICAgZG9tdV9j cmFzaChkKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIHJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vdm1fZXZlbnQuYyBiL3hlbi9jb21tb24vdm1fZXZlbnQuYwppbmRleCAxMDBk YTgwNDhjLi42ZmZkMThhNDQ4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3ZtX2V2ZW50LmMKKysr IGIveGVuL2NvbW1vbi92bV9ldmVudC5jCkBAIC02NDIsNyArNjQyLDcgQEAgaW50IHZtX2V2ZW50 X2RvbWN0bChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bF92bV9ldmVudF9vcCAq dmVjLAogCiAgICAgICAgICAgICAvKiBObyBwYWdpbmcgaWYgaW9tbXUgaXMgdXNlZCAqLwogICAg ICAgICAgICAgcmMgPSAtRU1MSU5LOwotICAgICAgICAgICAgaWYgKCB1bmxpa2VseShuZWVkX2lv bW11KGQpKSApCisgICAgICAgICAgICBpZiAoIHVubGlrZWx5KGhhc19pb21tdV9wdChkKSkgKQog ICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICByYyA9IC1FWERFVjsKZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2RldmljZV90cmVlLmMgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jCmluZGV4IDQyMWYwMDM0MzguLmI2ZWFhZTcyODMg MTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2RldmljZV90cmVlLmMKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvZGV2aWNlX3RyZWUuYwpAQCAtNDAsMTcgKzQwLDE2IEBA IGludCBpb21tdV9hc3NpZ25fZHRfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkdF9k ZXZpY2Vfbm9kZSAqZGV2KQogICAgIGlmICggIWxpc3RfZW1wdHkoJmRldi0+ZG9tYWluX2xpc3Qp ICkKICAgICAgICAgZ290byBmYWlsOwogCi0gICAgaWYgKCBuZWVkX2lvbW11KGQpIDw9IDAgKQot ICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogVGhlIGh3ZG9tIGlzIGZvcmNlZCB0byB1c2Ug SU9NTVUgZm9yIHByb3RlY3RpbmcgYXNzaWduZWQKLSAgICAgICAgICogZGV2aWNlLiBUaGVyZWZv cmUgdGhlIElPTU1VIGRhdGEgaXMgYWxyZWFkeSBzZXQgdXAuCi0gICAgICAgICAqLwotICAgICAg ICBBU1NFUlQoIWlzX2hhcmR3YXJlX2RvbWFpbihkKSk7Ci0gICAgICAgIHJjID0gaW9tbXVfY29u c3RydWN0KGQpOwotICAgICAgICBpZiAoIHJjICkKLSAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAg ICB9CisgICAgLyoKKyAgICAgKiBUaGUgaHdkb20gaXMgZm9yY2VkIHRvIHVzZSBJT01NVSBmb3Ig cHJvdGVjdGluZyBhc3NpZ25lZAorICAgICAqIGRldmljZS4gVGhlcmVmb3JlIHRoZSBJT01NVSBk YXRhIGlzIGFscmVhZHkgc2V0IHVwLgorICAgICAqLworICAgIEFTU0VSVCghaXNfaGFyZHdhcmVf ZG9tYWluKGQpIHx8CisgICAgICAgICAgIGhkLT5zdGF0dXMgPT0gSU9NTVVfU1RBVFVTX2luaXRp YWxpemVkKTsKKworICAgIHJjID0gaW9tbXVfY29uc3RydWN0KGQpOworICAgIGlmICggcmMgKQor ICAgICAgICBnb3RvIGZhaWw7CiAKICAgICAvKiBUaGUgZmxhZyBmaWVsZCBkb2Vzbid0IG1hdHRl ciB0byBEVCBkZXZpY2UuICovCiAgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5hc3NpZ25fZGV2 aWNlKGQsIDAsIGR0X3RvX2RldihkZXYpLCAwKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4 IDE5ZTk1NzIwYjUuLmQzMWZhY2RjNDggMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtMTk3 LDcgKzE5Nyw3IEBAIHN0YXRpYyB2b2lkIF9faHdkb21faW5pdCBjaGVja19od2RvbV9yZXFzKHN0 cnVjdCBkb21haW4gKmQpCiAKIHZvaWQgX19od2RvbV9pbml0IGlvbW11X2h3ZG9tX2luaXQoc3Ry dWN0IGRvbWFpbiAqZCkKIHsKLSAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRv bV9pb21tdShkKTsKKyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsK IAogICAgIGNoZWNrX2h3ZG9tX3JlcXMoZCk7CiAKQEAgLTIwNSw4ICsyMDUsMTAgQEAgdm9pZCBf X2h3ZG9tX2luaXQgaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICBy ZXR1cm47CiAKICAgICByZWdpc3Rlcl9rZXloYW5kbGVyKCdvJywgJmlvbW11X2R1bXBfcDJtX3Rh YmxlLCAiZHVtcCBpb21tdSBwMm0gdGFibGUiLCAwKTsKLSAgICBkLT5uZWVkX2lvbW11ID0gaW9t bXVfaHdkb21fc3RyaWN0OwotICAgIGlmICggbmVlZF9pb21tdShkKSAmJiAhaW9tbXVfdXNlX2hh cF9wdChkKSApCisKKyAgICBoZC0+c3RhdHVzID0gSU9NTVVfU1RBVFVTX2luaXRpYWxpemluZzsK KyAgICBoZC0+bmVlZF9zeW5jID0gaW9tbXVfaHdkb21fc3RyaWN0ICYmICFpb21tdV91c2VfaGFw X3B0KGQpOworICAgIGlmICggbmVlZF9pb21tdV9wdF9zeW5jKGQpICkKICAgICB7CiAgICAgICAg IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CiAgICAgICAgIHVuc2lnbmVkIGludCBpID0gMDsKQEAg LTIzOSwzNSArMjQxLDUxIEBAIHZvaWQgX19od2RvbV9pbml0IGlvbW11X2h3ZG9tX2luaXQoc3Ry dWN0IGRvbWFpbiAqZCkKICAgICB9CiAKICAgICBoZC0+cGxhdGZvcm1fb3BzLT5od2RvbV9pbml0 KGQpOworCisgICAgaGQtPnN0YXR1cyA9IElPTU1VX1NUQVRVU19pbml0aWFsaXplZDsKIH0KIAog dm9pZCBpb21tdV90ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKQogewotICAgIGNvbnN0IHN0cnVj dCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOworICAgIHN0cnVjdCBkb21haW5faW9t bXUgKmhkID0gZG9tX2lvbW11KGQpOwogCi0gICAgZC0+bmVlZF9pb21tdSA9IDA7CisgICAgaGQt PnN0YXR1cyA9IElPTU1VX1NUQVRVU19kaXNhYmxlZDsKICAgICBoZC0+cGxhdGZvcm1fb3BzLT50 ZWFyZG93bihkKTsKICAgICB0YXNrbGV0X3NjaGVkdWxlKCZpb21tdV9wdF9jbGVhbnVwX3Rhc2ts ZXQpOwogfQogCiBpbnQgaW9tbXVfY29uc3RydWN0KHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAg aWYgKCBuZWVkX2lvbW11KGQpID4gMCApCisgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBk b21faW9tbXUoZCk7CisKKyAgICBpZiAoIGhkLT5zdGF0dXMgPT0gSU9NTVVfU1RBVFVTX2luaXRp YWxpemVkICkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoICFpb21tdV91c2VfaGFwX3B0 KGQpICkKICAgICB7CiAgICAgICAgIGludCByYzsKIAorICAgICAgICBoZC0+c3RhdHVzID0gSU9N TVVfU1RBVFVTX2luaXRpYWxpemluZzsKKyAgICAgICAgaGQtPm5lZWRfc3luYyA9IHRydWU7CisK ICAgICAgICAgcmMgPSBhcmNoX2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUoZCk7CiAgICAgICAg IGlmICggcmMgKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIHJjICE9IC1FUkVTVEFSVCAp CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaGQtPm5lZWRfc3luYyA9IGZhbHNlOwor ICAgICAgICAgICAgICAgIGhkLT5zdGF0dXMgPSBJT01NVV9TVEFUVVNfZGlzYWJsZWQ7CisgICAg ICAgICAgICB9CisKICAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgfQogICAgIH0KIAot ICAgIGQtPm5lZWRfaW9tbXUgPSAxOworICAgIGhkLT5zdGF0dXMgPSBJT01NVV9TVEFUVVNfaW5p dGlhbGl6ZWQ7CisKICAgICAvKgogICAgICAqIFRoZXJlIG1heSBiZSBkaXJ0eSBjYWNoZSBsaW5l cyB3aGVuIGEgZGV2aWNlIGlzIGFzc2lnbmVkCi0gICAgICogYW5kIGJlZm9yZSBuZWVkX2lvbW11 KGQpIGJlY29taW5nIHRydWUsIHRoaXMgd2lsbCBjYXVzZQorICAgICAqIGFuZCBiZWZvcmUgaGFz X2lvbW11X3B0KGQpIGJlY29taW5nIHRydWUsIHRoaXMgd2lsbCBjYXVzZQogICAgICAqIG1lbW9y eV90eXBlX2NoYW5nZWQgbG9zZSBlZmZlY3QgaWYgbWVtb3J5IHR5cGUgY2hhbmdlcy4KICAgICAg KiBDYWxsIG1lbW9yeV90eXBlX2NoYW5nZWQgaGVyZSB0byBhbWVuZCB0aGlzLgogICAgICAqLwpA QCAtNTIyLDcgKzU0MCw4IEBAIHN0YXRpYyB2b2lkIGlvbW11X2R1bXBfcDJtX3RhYmxlKHVuc2ln bmVkIGNoYXIga2V5KQogICAgIG9wcyA9IGlvbW11X2dldF9vcHMoKTsKICAgICBmb3JfZWFjaF9k b21haW4oZCkKICAgICB7Ci0gICAgICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpIHx8IG5l ZWRfaW9tbXUoZCkgPD0gMCApCisgICAgICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpIHx8 CisgICAgICAgICAgICAgZG9tX2lvbW11KGQpLT5zdGF0dXMgPCBJT01NVV9TVEFUVVNfaW5pdGlh bGl6ZWQgKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKCBpb21tdV91c2Vf aGFwX3B0KGQpICkKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKaW5kZXggOTY5NWNmNTY2ZC4uZTViOTYwMjc2 MiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKQEAgLTE0MTYsMTAgKzE0MTYsOSBAQCBzdGF0aWMgaW50 IGFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgdTE2IHNlZywgdTggYnVzLCB1OCBkZXZm biwgdTMyIGZsYWcpCiAKICAgICAvKiBQcmV2ZW50IGRldmljZSBhc3NpZ24gaWYgbWVtIHBhZ2lu ZyBvciBtZW0gc2hhcmluZyBoYXZlIGJlZW4gCiAgICAgICogZW5hYmxlZCBmb3IgdGhpcyBkb21h aW4gKi8KLSAgICBpZiAoIHVubGlrZWx5KCFuZWVkX2lvbW11KGQpICYmCi0gICAgICAgICAgICAo ZC0+YXJjaC5odm0ubWVtX3NoYXJpbmdfZW5hYmxlZCB8fAotICAgICAgICAgICAgIHZtX2V2ZW50 X2NoZWNrX3JpbmcoZC0+dm1fZXZlbnRfcGFnaW5nKSB8fAotICAgICAgICAgICAgIHAybV9nZXRf aG9zdHAybShkKS0+Z2xvYmFsX2xvZ2RpcnR5KSkgKQorICAgIGlmICggdW5saWtlbHkoZC0+YXJj aC5odm0ubWVtX3NoYXJpbmdfZW5hYmxlZCB8fAorICAgICAgICAgICAgICAgICAgdm1fZXZlbnRf Y2hlY2tfcmluZyhkLT52bV9ldmVudF9wYWdpbmcpIHx8CisgICAgICAgICAgICAgICAgICBwMm1f Z2V0X2hvc3RwMm0oZCktPmdsb2JhbF9sb2dkaXJ0eSkgKQogICAgICAgICByZXR1cm4gLUVYREVW OwogCiAgICAgaWYgKCAhcGNpZGV2c190cnlsb2NrKCkgKQpAQCAtMTQ2MCw3ICsxNDU5LDcgQEAg c3RhdGljIGludCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHUxNiBzZWcsIHU4IGJ1 cywgdTggZGV2Zm4sIHUzMiBmbGFnKQogICAgIH0KIAogIGRvbmU6Ci0gICAgaWYgKCAhaGFzX2Fy Y2hfcGRldnMoZCkgJiYgbmVlZF9pb21tdShkKSApCisgICAgaWYgKCAhaGFzX2FyY2hfcGRldnMo ZCkgJiYgaGFzX2lvbW11X3B0KGQpICkKICAgICAgICAgaW9tbXVfdGVhcmRvd24oZCk7CiAgICAg cGNpZGV2c191bmxvY2soKTsKIApAQCAtMTUxMCw3ICsxNTA5LDcgQEAgaW50IGRlYXNzaWduX2Rl dmljZShzdHJ1Y3QgZG9tYWluICpkLCB1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKQogCiAgICAg cGRldi0+ZmF1bHQuY291bnQgPSAwOwogCi0gICAgaWYgKCAhaGFzX2FyY2hfcGRldnMoZCkgJiYg bmVlZF9pb21tdShkKSApCisgICAgaWYgKCAhaGFzX2FyY2hfcGRldnMoZCkgJiYgaGFzX2lvbW11 X3B0KGQpICkKICAgICAgICAgaW9tbXVfdGVhcmRvd24oZCk7CiAKICAgICByZXR1cm4gcmV0Owpk aWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwppbmRleCBiY2Y3YTJmMjk4Li5kMmE3YTk1MmQ5 IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYworKysgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwpAQCAtNDgsOCArNDgsNiBAQCBpbnQg YXJjaF9pb21tdV9wb3B1bGF0ZV9wYWdlX3RhYmxlKHN0cnVjdCBkb21haW4gKmQpCiAgICAgc3Ry dWN0IHBhZ2VfaW5mbyAqcGFnZTsKICAgICBpbnQgcmMgPSAwLCBuID0gMDsKIAotICAgIGQtPm5l ZWRfaW9tbXUgPSAtMTsKLQogICAgIHRoaXNfY3B1KGlvbW11X2RvbnRfZmx1c2hfaW90bGIpID0g MTsKICAgICBzcGluX2xvY2soJmQtPnBhZ2VfYWxsb2NfbG9jayk7CiAKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3Jh bnRfdGFibGUuaAppbmRleCBkOGZkZTAxNjUxLi4zNzQxNWI3ODIxIDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS9hc20tYXJtL2dyYW50X3RhYmxlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9n cmFudF90YWJsZS5oCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgZ250dGFiX21hcmtfZGlydHkoc3Ry dWN0IGRvbWFpbiAqZCwgbWZuX3QgbWZuKTsKICAgICBnZm5feCgoKGkpID49IG5yX3N0YXR1c19m cmFtZXModCkpID8gSU5WQUxJRF9HRk4gOiAodCktPmFyY2guc3RhdHVzX2dmbltpXSkKIAogI2Rl ZmluZSBnbnR0YWJfbmVlZF9pb21tdV9tYXBwaW5nKGQpICAgICAgICAgICAgICAgICAgICBcCi0g ICAgKGlzX2RvbWFpbl9kaXJlY3RfbWFwcGVkKGQpICYmIG5lZWRfaW9tbXUoZCkpCisgICAgKGlz X2RvbWFpbl9kaXJlY3RfbWFwcGVkKGQpICYmIG5lZWRfaW9tbXVfcHRfc3luYyhkKSkKIAogI2Vu ZGlmIC8qIF9fQVNNX0dSQU5UX1RBQkxFX0hfXyAqLwogLyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vaW9tbXUuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vaW9tbXUuaAppbmRleCA4 ZDE1MDZjNmY3Li5mNmRmMzJmODYwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2lv bW11LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9pb21tdS5oCkBAIC0yMSw3ICsyMSw3IEBA IHN0cnVjdCBhcmNoX2lvbW11CiB9OwogCiAvKiBBbHdheXMgc2hhcmUgUDJNIFRhYmxlIGJldHdl ZW4gdGhlIENQVSBhbmQgdGhlIElPTU1VICovCi0jZGVmaW5lIGlvbW11X3VzZV9oYXBfcHQoZCkg KG5lZWRfaW9tbXUoZCkpCisjZGVmaW5lIGlvbW11X3VzZV9oYXBfcHQoZCkgKGhhc19pb21tdV9w dChkKSkKIAogY29uc3Qgc3RydWN0IGlvbW11X29wcyAqaW9tbXVfZ2V0X29wcyh2b2lkKTsKIHZv aWQgX19pbml0IGlvbW11X3NldF9vcHMoY29uc3Qgc3RydWN0IGlvbW11X29wcyAqb3BzKTsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvZ3JhbnRfdGFibGUuaAppbmRleCA3NjFhOGMzM2E1Li4xZTZhOTg4MTNkIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50X3RhYmxlLmgKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oCkBAIC05NCw2ICs5NCw2IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBnbnR0YWJfY2xlYXJfZmxhZyh1bnNpZ25lZCBpbnQgbnIsIHVpbnQxNl90ICpzdCkKICNk ZWZpbmUgZ250dGFiX3JlbGVhc2VfaG9zdF9tYXBwaW5ncyhkb21haW4pICggcGFnaW5nX21vZGVf ZXh0ZXJuYWwoZG9tYWluKSApCiAKICNkZWZpbmUgZ250dGFiX25lZWRfaW9tbXVfbWFwcGluZyhk KSAgICAgICAgICAgICAgICBcCi0gICAgKCFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgJiYgbmVl ZF9pb21tdShkKSkKKyAgICAoIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSAmJiBuZWVkX2lvbW11 X3B0X3N5bmMoZCkpCiAKICNlbmRpZiAvKiBfX0FTTV9HUkFOVF9UQUJMRV9IX18gKi8KZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYv aW9tbXUuaAppbmRleCA3YzMxODdjOGVjLi5mYTM3YjA1MzliIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L2lvbW11LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oCkBA IC05MSw3ICs5MSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlvbW11X2hhcmR3YXJlX3NldHVwKHZv aWQpCiAKIC8qIEFyZSB3ZSB1c2luZyB0aGUgZG9tYWluIFAyTSB0YWJsZSBhcyBpdHMgSU9NTVUg cGFnZXRhYmxlPyAqLwogI2RlZmluZSBpb21tdV91c2VfaGFwX3B0KGQpIFwKLSAgICAoaGFwX2Vu YWJsZWQoZCkgJiYgbmVlZF9pb21tdShkKSAmJiBpb21tdV9oYXBfcHRfc2hhcmUpCisgICAgKGhh cF9lbmFibGVkKGQpICYmIGhhc19pb21tdV9wdChkKSAmJiBpb21tdV9oYXBfcHRfc2hhcmUpCiAK IHZvaWQgaW9tbXVfdXBkYXRlX2lyZV9mcm9tX2FwaWModW5zaWduZWQgaW50IGFwaWMsIHVuc2ln bmVkIGludCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSk7CiB1bnNpZ25lZCBpbnQgaW9tbXVfcmVh ZF9hcGljX2Zyb21faXJlKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcmVnKTsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11 LmgKaW5kZXggOWFlODMyMWJiNC4uN2ViYWNhNWNhNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv eGVuL2lvbW11LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTEwMyw2ICsxMDMs MTMgQEAgZW51bSBpb21tdV9mZWF0dXJlCiAKIGJvb2xfdCBpb21tdV9oYXNfZmVhdHVyZShzdHJ1 Y3QgZG9tYWluICpkLCBlbnVtIGlvbW11X2ZlYXR1cmUgZmVhdHVyZSk7CiAKK2VudW0gaW9tbXVf c3RhdHVzCit7CisgICAgSU9NTVVfU1RBVFVTX2Rpc2FibGVkLAorICAgIElPTU1VX1NUQVRVU19p bml0aWFsaXppbmcsCisgICAgSU9NTVVfU1RBVFVTX2luaXRpYWxpemVkCit9OworCiBzdHJ1Y3Qg ZG9tYWluX2lvbW11IHsKICAgICBzdHJ1Y3QgYXJjaF9pb21tdSBhcmNoOwogCkBAIC0xMTYsNiAr MTIzLDE2IEBAIHN0cnVjdCBkb21haW5faW9tbXUgewogCiAgICAgLyogRmVhdHVyZXMgc3VwcG9y dGVkIGJ5IHRoZSBJT01NVSAqLwogICAgIERFQ0xBUkVfQklUTUFQKGZlYXR1cmVzLCBJT01NVV9G RUFUX2NvdW50KTsKKworICAgIC8qIFN0YXR1cyBvZiBndWVzdCBJT01NVSBtYXBwaW5ncyAqLwor ICAgIGVudW0gaW9tbXVfc3RhdHVzIHN0YXR1czsKKworICAgIC8qCisgICAgICogRG9lcyB0aGUg Z3Vlc3QgcmVxaXJlIG1hcHBpbmdzIHRvIGJlIHN5bmNob25pemVkLCB0byBtYWludGFpbgorICAg ICAqIHRoZSBkZWZhdWx0IGRmbiA9PSBwZm4gbWFwLiAoU2VlIGNvbW1lbnQgb24gZGZuIGF0IHRo ZSB0b3Agb2YKKyAgICAgKiBpbmNsdWRlL3hlbi9tbS5oKS4KKyAgICAgKi8KKyAgICBib29sIG5l ZWRfc3luYzsKIH07CiAKICNkZWZpbmUgZG9tX2lvbW11KGQpICAgICAgICAgICAgICAoJihkKS0+ aW9tbXUpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCBiL3hlbi9pbmNsdWRl L3hlbi9zY2hlZC5oCmluZGV4IGYyYzU5NGQxOTcuLjYzZmI3MGJjZGMgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3hlbi9zY2hlZC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCkBAIC0z NzEsOSArMzcxLDYgQEAgc3RydWN0IGRvbWFpbgogCiAjaWZkZWYgQ09ORklHX0hBU19QQVNTVEhS T1VHSAogICAgIHN0cnVjdCBkb21haW5faW9tbXUgaW9tbXU7Ci0KLSAgICAvKiBEb2VzIHRoaXMg Z3Vlc3QgbmVlZCBpb21tdSBtYXBwaW5ncyAoLTEgbWVhbmluZyAiYmVpbmcgc2V0IHVwIik/ICov Ci0gICAgczggICAgICAgICAgICAgICBuZWVkX2lvbW11OwogI2VuZGlmCiAgICAgLyogaXMgbm9k ZS1hZmZpbml0eSBhdXRvbWF0aWNhbGx5IGNvbXB1dGVkPyAqLwogICAgIGJvb2wgICAgICAgICAg ICAgYXV0b19ub2RlX2FmZmluaXR5OwpAQCAtODk4LDkgKzg5NSwxMSBAQCBzdGF0aWMgaW5saW5l IGJvb2wgaXNfaHZtX3ZjcHUoY29uc3Qgc3RydWN0IHZjcHUgKnYpCiAjZGVmaW5lIGlzX3Bpbm5l ZF92Y3B1KHYpICgodiktPmRvbWFpbi0+aXNfcGlubmVkIHx8IFwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNwdW1hc2tfd2VpZ2h0KCh2KS0+Y3B1X2hhcmRfYWZmaW5pdHkpID09IDEpCiAj aWZkZWYgQ09ORklHX0hBU19QQVNTVEhST1VHSAotI2RlZmluZSBuZWVkX2lvbW11KGQpICAgICgo ZCktPm5lZWRfaW9tbXUpCisjZGVmaW5lIGhhc19pb21tdV9wdChkKSAoZG9tX2lvbW11KGQpLT5z dGF0dXMgIT0gSU9NTVVfU1RBVFVTX2Rpc2FibGVkKQorI2RlZmluZSBuZWVkX2lvbW11X3B0X3N5 bmMoZCkgKGRvbV9pb21tdShkKS0+bmVlZF9zeW5jKQogI2Vsc2UKLSNkZWZpbmUgbmVlZF9pb21t dShkKSAgICAoMCkKKyNkZWZpbmUgaGFzX2lvbW11X3B0KGQpIGZhbHNlCisjZGVmaW5lIG5lZWRf aW9tbXVfcHRfc3luYyhkKSBmYWxzZQogI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc192 Y3B1X29ubGluZShjb25zdCBzdHJ1Y3QgdmNwdSAqdikKLS0gCjIuMTEuMAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=