From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v13 9/9] mm / iommu: split need_iommu() into has_iommu_pt() and need_iommu_pt_sync() Date: Tue, 2 Oct 2018 18:00:19 +0100 Message-ID: <20181002170019.1911-10-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 all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g7O2D-0001YG-1V for xen-devel@lists.xenproject.org; Tue, 02 Oct 2018 17:00:33 +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: 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+Cgp2MTM6CiAtIFJlLXdvcmsgY2hlY2tz IGluIG1lbW9yeV9hZGQoKS4KIC0gRXh0ZW5kIGNvbW1pdCBjb21tZW50IHRvIG5vdGUgcmVtb3Zh bCBvZiBuZWVkX2lvbW11KCkgY2hlY2sgaW4KICAgYXNzaWduX2RldmljZSgpLgoKdjEyOgogLSBG aXggdHdvIG1pcy11c2VzIG9mIGlvbW11X2hhcF9wdF9zaGFyZSgpLgogLSBSZW1vdmUgb25lIHVz ZSBoYXNfaW9tbXVfcHQoKSBjaGVjayBpbiBwYXNzdGhyb3VnaC9wY2kuYwoKdjExOgogLSBQdWxs ZWQgaW4gZnJvbSB2NiBvZiB0aGUgZnVsbCBQVi1JT01NVSBzZXJpZXMuCiBfIENoYW5nZWQgdGhl IGNvbmRpdGlvbiBiZWluZyB0ZXN0ZWQgaW4gbWVtb3J5X2FkZCgpIHRvIGJlIG1vcmUgc2VsZi0K ICAgZXhwbGFuYXRvcnkgYnV0IGFsc28gYWRkZWQgYSBjb21tZW50IHRvIGV4cGxhaW4gdGhlIGNp cmN1bXN0YW5jZXMKICAgdW5kZXIgd2hpY2ggaW9tbXVfbWFwX3BhZ2UoKSBuZWVkcyB0byBiZSBj YWxsZWQuCiAtIEdldCByaWQgb2YgI2lmZGVmIENPTkZJR19IQVNfUEFTU1RIUk9VR0ggaW4gbWVt b3J5LmMgc2luY2UgdGhlIGlmCiAgIGNsYXVzZXMgd2l0aGluIHdpbGwgbmV2ZXIgYmUgZXhlY3V0 ZWQgdW5sZXNzIHRoZSBvcHRpb24gaXMgZGVmaW5lZAogICAoc2luY2UgaGFzX2lvbW11X3B0KCkg d2lsbCBhbHdheXMgYmUgZmFsc2Ugb3RoZXJ3aXNlKS4gQWxzbyBmbHVzaGluZwogICBzaG91bGQg YmUgZG9uZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIElPTU1VIGlzIHNoYXJpbmcgcGFnZSB0 YWJsZXMKICAgb3Igbm90LgoKdjY6CiAtIERlYWwgd2l0aCBuZWVkX2lvbW11IGJlaW5nIHRyaS1z dGF0ZS4KIC0gQ2hhbmdlIHRoZSBuYW1lIG9mICdzeW5jX2lvbW11X3B0JyB0byAnbmVlZF9pb21t dV9wdF9zeW5jJyBhbmQgbWFrZQogICBzdXJlIGl0IGlzIHNldCBhcyBzb29uIGFzIHRoZSBtYXBw aW5ncyBhcmUgdW5kZXIgY29uc3RydWN0aW9uLgogLSBOb3QgYWRkaW5nIFJhenZhbidzIEEtYiBi ZWNhdXNlIG9mIGNoYW5nZS4KCnY0OgogLSBOZXcgaW4gdjQuCi0tLQogeGVuL2FyY2gvYXJtL3Ay bS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL210 cnIuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2FyY2gveDg2L21tLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJp bmcuYyAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L21tL3AybS1wdC5jICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgIDggKysrLS0tLQogeGVuL2FyY2gveDg2L21tL3BhZ2luZy5jICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgICAgICAgICAgICAgICAg ICAgIHwgMTAgKysrKysrLS0KIHhlbi9jb21tb24vbWVtb3J5LmMgICAgICAgICAgICAgICAgICAg ICAgICAgfCAxMCArKystLS0tLQogeGVuL2NvbW1vbi92bV9ldmVudC5jICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21t dS5jIHwgIDIgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2RldmljZV90cmVlLmMgICAgICAg fCAyMSArKysrKysrKy0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jICAg ICAgICAgICAgIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIHhlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3BjaS5jICAgICAgICAgICAgICAgfCAxMSArKysrLS0tLS0KIHhlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jICAgICAgICAgfCAgMiAtLQogeGVuL2luY2x1ZGUv YXNtLWFybS9ncmFudF90YWJsZS5oICAgICAgICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS9hc20t YXJtL2lvbW11LmggICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYv Z3JhbnRfdGFibGUuaCAgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21t dS5oICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAg ICAgICAgICAgICAgICAgIHwgMTcgKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUveGVuL3NjaGVk LmggICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKystLS0KIDIyIGZpbGVzIGNoYW5nZWQsIDkz IGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy bS9wMm0uYyBiL3hlbi9hcmNoL2FybS9wMm0uYwppbmRleCAxYzc5ZmY3YWRlLi5hMGJlYzdjOTVj IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5j CkBAIC05NTUsNyArOTU1LDcgQEAgc3RhdGljIGludCBfX3AybV9zZXRfZW50cnkoc3RydWN0IHAy bV9kb21haW4gKnAybSwKICAgICBpZiAoIGxwYWVfaXNfdmFsaWQob3JpZ19wdGUpICYmIGVudHJ5 LT5wMm0uYmFzZSAhPSBvcmlnX3B0ZS5wMm0uYmFzZSApCiAgICAgICAgIHAybV9mcmVlX2VudHJ5 KHAybSwgb3JpZ19wdGUsIGxldmVsKTsKIAotICAgIGlmICggbmVlZF9pb21tdShwMm0tPmRvbWFp bikgJiYKKyAgICBpZiAoIG5lZWRfaW9tbXVfcHRfc3luYyhwMm0tPmRvbWFpbikgJiYKICAgICAg ICAgIChscGFlX2lzX3ZhbGlkKG9yaWdfcHRlKSB8fCBscGFlX2lzX3ZhbGlkKCplbnRyeSkpICkK ICAgICB7CiAgICAgICAgIHJjID0gaW9tbXVfaW90bGJfZmx1c2gocDJtLT5kb21haW4sIF9kZm4o Z2ZuX3goc2dmbikpLApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9tdHJyLmMgYi94ZW4v YXJjaC94ODYvaHZtL210cnIuYwppbmRleCA0ZjJmMTk1ZjdkLi5iOGZhMzQwZDVhIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvaHZtL210cnIuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL210cnIu YwpAQCAtNzgzLDcgKzc4Myw3IEBAIEhWTV9SRUdJU1RFUl9TQVZFX1JFU1RPUkUoTVRSUiwgaHZt X3NhdmVfbXRycl9tc3IsIGh2bV9sb2FkX210cnJfbXNyLCAxLAogCiB2b2lkIG1lbW9yeV90eXBl X2NoYW5nZWQoc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICBpZiAoIG5lZWRfaW9tbXUoZCkgJiYg ZC0+dmNwdSAmJiBkLT52Y3B1WzBdICkKKyAgICBpZiAoIGhhc19pb21tdV9wdChkKSAmJiBkLT52 Y3B1ICYmIGQtPnZjcHVbMF0gKQogICAgIHsKICAgICAgICAgcDJtX21lbW9yeV90eXBlX2NoYW5n ZWQoZCk7CiAgICAgICAgIGZsdXNoX2FsbChGTFVTSF9DQUNIRSk7CkBAIC04MzEsNyArODMxLDcg QEAgaW50IGVwdGVfZ2V0X2VudHJ5X2VtdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGdmbiwgbWZuX3QgbWZuLAogICAgICAgICByZXR1cm4gTVRSUl9UWVBFX1VOQ0FDSEFCTEU7CiAg ICAgfQogCi0gICAgaWYgKCAhbmVlZF9pb21tdShkKSAmJiAhY2FjaGVfZmx1c2hfcGVybWl0dGVk KGQpICkKKyAgICBpZiAoICFoYXNfaW9tbXVfcHQoZCkgJiYgIWNhY2hlX2ZsdXNoX3Blcm1pdHRl ZChkKSApCiAgICAgewogICAgICAgICAqaXBhdCA9IDE7CiAgICAgICAgIHJldHVybiBNVFJSX1RZ UEVfV1JCQUNLOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYv bW0uYwppbmRleCA1YTdjNTMzNWEyLi40OGFjZGFkYzhjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMjc4Nyw3ICsyNzg3LDcgQEAgc3Rh dGljIGludCBfZ2V0X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBs b25nIHR5cGUsCiAgICAgewogICAgICAgICAvKiBTcGVjaWFsIHBhZ2VzIHNob3VsZCBub3QgYmUg YWNjZXNzaWJsZSBmcm9tIGRldmljZXMuICovCiAgICAgICAgIHN0cnVjdCBkb21haW4gKmQgPSBw YWdlX2dldF9vd25lcihwYWdlKTsKLSAgICAgICAgaWYgKCBkICYmIGlzX3B2X2RvbWFpbihkKSAm JiB1bmxpa2VseShuZWVkX2lvbW11KGQpKSApCisgICAgICAgIGlmICggZCAmJiBpc19wdl9kb21h aW4oZCkgJiYgdW5saWtlbHkobmVlZF9pb21tdV9wdF9zeW5jKGQpKSApCiAgICAgICAgIHsKICAg ICAgICAgICAgIG1mbl90IG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOwogCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmlu Zy5jCmluZGV4IDM0OWU2ZmQyY2YuLjFkYWIyYzhjYzMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9tZW1fc2hhcmluZy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCkBA IC0xNjEyLDcgKzE2MTIsNyBAQCBpbnQgbWVtX3NoYXJpbmdfZG9tY3RsKHN0cnVjdCBkb21haW4g KmQsIHN0cnVjdCB4ZW5fZG9tY3RsX21lbV9zaGFyaW5nX29wICptZWMpCiAgICAgICAgIGNhc2Ug WEVOX0RPTUNUTF9NRU1fU0hBUklOR19DT05UUk9MOgogICAgICAgICB7CiAgICAgICAgICAgICBy YyA9IDA7Ci0gICAgICAgICAgICBpZiAoIHVubGlrZWx5KG5lZWRfaW9tbXUoZCkgJiYgbWVjLT51 LmVuYWJsZSkgKQorICAgICAgICAgICAgaWYgKCB1bmxpa2VseShoYXNfaW9tbXVfcHQoZCkgJiYg bWVjLT51LmVuYWJsZSkgKQogICAgICAgICAgICAgICAgIHJjID0gLUVYREVWOwogICAgICAgICAg ICAgZWxzZQogICAgICAgICAgICAgICAgIGQtPmFyY2guaHZtLm1lbV9zaGFyaW5nX2VuYWJsZWQg PSBtZWMtPnUuZW5hYmxlOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyBi L3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKaW5kZXggZjMyZGYzZWI3YS4uYTUyNGFjODZmYSAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYworKysgYi94ZW4vYXJjaC94ODYv bW0vcDJtLWVwdC5jCkBAIC04NzksNyArODc5LDcgQEAgb3V0OgogICAgIHsKICAgICAgICAgaWYg KCBpb21tdV91c2VfaGFwX3B0KGQpICkKICAgICAgICAgICAgIHJjID0gaW9tbXVfcHRlX2ZsdXNo KGQsIGdmbiwgJmVwdF9lbnRyeS0+ZXB0ZSwgb3JkZXIsIHZ0ZF9wdGVfcHJlc2VudCk7Ci0gICAg ICAgIGVsc2UgaWYgKCBuZWVkX2lvbW11KGQpICkKKyAgICAgICAgZWxzZSBpZiAoIG5lZWRfaW9t bXVfcHRfc3luYyhkKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGRmbl90IGRmbiA9IF9kZm4o Z2ZuKTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jIGIveGVuL2FyY2gv eDg2L21tL3AybS1wdC5jCmluZGV4IGJmMzYxNjA5OTMuLmNjODM0ZGM5NWYgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMK QEAgLTY4OCw3ICs2ODgsNyBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpw Mm0sIGdmbl90IGdmbl8sIG1mbl90IG1mbiwKICAgICAgICAgICAgIGlmICggaW9tbXVfb2xkX2Zs YWdzICkKICAgICAgICAgICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMocDJtLT5kb21haW4s IGdmbiwgcGFnZV9vcmRlcik7CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoIG5lZWRfaW9t bXUocDJtLT5kb21haW4pICkKKyAgICAgICAgZWxzZSBpZiAoIG5lZWRfaW9tbXVfcHRfc3luYyhw Mm0tPmRvbWFpbikgKQogICAgICAgICB7CiAgICAgICAgICAgICBkZm5fdCBkZm4gPSBfZGZuKGdm bik7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9t bS9wMm0uYwppbmRleCA0YTk4MTk4MDA0Li43YjYzZTM5OTEyIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC03MjEsNyArNzIx LDcgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVkIGxv bmcgZ2ZuX2wsIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIHsKICAgICAgICAgaW50IHJjID0gMDsK IAotICAgICAgICBpZiAoIG5lZWRfaW9tbXUocDJtLT5kb21haW4pICkKKyAgICAgICAgaWYgKCBu ZWVkX2lvbW11X3B0X3N5bmMocDJtLT5kb21haW4pICkKICAgICAgICAgewogICAgICAgICAgICAg ZGZuX3QgZGZuID0gX2RmbihtZm4pOwogCkBAIC03ODUsNyArNzg1LDcgQEAgZ3Vlc3RfcGh5c21h cF9hZGRfZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBtZm5fdCBtZm4sCiAKICAg ICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQogICAgIHsKLSAgICAgICAgaWYgKCBu ZWVkX2lvbW11KGQpICYmIHQgPT0gcDJtX3JhbV9ydyApCisgICAgICAgIGlmICggbmVlZF9pb21t dV9wdF9zeW5jKGQpICYmIHQgPT0gcDJtX3JhbV9ydyApCiAgICAgICAgIHsKICAgICAgICAgICAg IGRmbl90IGRmbiA9IF9kZm4obWZuX3gobWZuKSk7CiAKQEAgLTExNzUsNyArMTE3NSw3IEBAIGlu dCBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg Z2ZuX2wsCiAKICAgICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQogICAgIHsKLSAg ICAgICAgaWYgKCAhbmVlZF9pb21tdShkKSApCisgICAgICAgIGlmICggIW5lZWRfaW9tbXVfcHRf c3luYyhkKSApCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICByZXQgPSBpb21tdV9t YXBfcGFnZShkLCBfZGZuKGdmbl9sKSwgX21mbihnZm5fbCksCkBAIC0xMjcxLDcgKzEyNzEsNyBA QCBpbnQgY2xlYXJfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgZ2ZuX2wpCiAKICAgICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQogICAg IHsKLSAgICAgICAgaWYgKCAhbmVlZF9pb21tdShkKSApCisgICAgICAgIGlmICggIW5lZWRfaW9t bXVfcHRfc3luYyhkKSApCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICByZXQgPSBp b21tdV91bm1hcF9wYWdlKGQsIF9kZm4oZ2ZuX2wpKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9tbS9wYWdpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYwppbmRleCA3ZjQ2MGJkMzIx Li5mMzJhNjAxODhhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMKKysrIGIv eGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCkBAIC0yMTMsNyArMjEzLDcgQEAgaW50IHBhZ2luZ19s b2dfZGlydHlfZW5hYmxlKHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCBsb2dfZ2xvYmFsKQogewog ICAgIGludCByZXQ7CiAKLSAgICBpZiAoIG5lZWRfaW9tbXUoZCkgJiYgbG9nX2dsb2JhbCApCisg ICAgaWYgKCBoYXNfaW9tbXVfcHQoZCkgJiYgbG9nX2dsb2JhbCApCiAgICAgewogICAgICAgICAv KgogICAgICAgICAgKiBSZWZ1c2UgdG8gdHVybiBvbiBnbG9iYWwgbG9nLWRpcnR5IG1vZGUKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQv bW0uYwppbmRleCBkMWZjZTU3NDMyLi41NDNlYTAzMGUzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYveDg2XzY0L21tLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCkBAIC0xNDI2LDgg KzE0MjYsMTQgQEAgaW50IG1lbW9yeV9hZGQodW5zaWduZWQgbG9uZyBzcGZuLCB1bnNpZ25lZCBs b25nIGVwZm4sIHVuc2lnbmVkIGludCBweG0pCiAgICAgaWYgKCByZXQgKQogICAgICAgICBnb3Rv IGRlc3Ryb3lfbTJwOwogCi0gICAgaWYgKCBpb21tdV9lbmFibGVkICYmICFpb21tdV9od2RvbV9w YXNzdGhyb3VnaCAmJgotICAgICAgICAgIW5lZWRfaW9tbXUoaGFyZHdhcmVfZG9tYWluKSApCisg ICAgLyoKKyAgICAgKiBJZiBoYXJkd2FyZSBkb21haW4gaGFzIElPTU1VIG1hcHBpbmdzIGJ1dCBw YWdlIHRhYmxlcyBhcmUgbm90CisgICAgICogc2hhcmVkIG9yIGJlaW5nIGtlcHQgaW4gc3luYyB0 aGVuIG5ld2x5IGFkZGVkIG1lbW9yeSBuZWVkcyB0byBiZQorICAgICAqIG1hcHBlZCBoZXJlLgor ICAgICAqLworICAgIGlmICggaGFzX2lvbW11X3B0KGhhcmR3YXJlX2RvbWFpbikgJiYKKyAgICAg ICAgICFpb21tdV91c2VfaGFwX3B0KGhhcmR3YXJlX2RvbWFpbikgJiYKKyAgICAgICAgICFuZWVk X2lvbW11X3B0X3N5bmMoaGFyZHdhcmVfZG9tYWluKSApCiAgICAgewogICAgICAgICBmb3IgKCBp ID0gc3BmbjsgaSA8IGVwZm47IGkrKyApCiAgICAgICAgICAgICBpZiAoIGlvbW11X21hcF9wYWdl KGhhcmR3YXJlX2RvbWFpbiwgX2RmbihpKSwgX21mbihpKSwKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IDUyZDU1ZGZlZDcuLmRiMzMz NGJhZTYgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIveGVuL2NvbW1vbi9t ZW1vcnkuYwpAQCAtODA1LDEwICs4MDUsOCBAQCBpbnQgeGVubWVtX2FkZF90b19waHlzbWFwKHN0 cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXAgKnhhdHAsCiAgICAgeGF0 cC0+Z3BmbiArPSBzdGFydDsKICAgICB4YXRwLT5zaXplIC09IHN0YXJ0OwogCi0jaWZkZWYgQ09O RklHX0hBU19QQVNTVEhST1VHSAotICAgIGlmICggbmVlZF9pb21tdShkKSApCi0gICAgICAgIHRo aXNfY3B1KGlvbW11X2RvbnRfZmx1c2hfaW90bGIpID0gMTsKLSNlbmRpZgorICAgIGlmICggaGFz X2lvbW11X3B0KGQpICkKKyAgICAgICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9 IDE7CiAKICAgICB3aGlsZSAoIHhhdHAtPnNpemUgPiBkb25lICkKICAgICB7CkBAIC04MjgsOCAr ODI2LDcgQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1 Y3QgeGVuX2FkZF90b19waHlzbWFwICp4YXRwLAogICAgICAgICB9CiAgICAgfQogCi0jaWZkZWYg Q09ORklHX0hBU19QQVNTVEhST1VHSAotICAgIGlmICggbmVlZF9pb21tdShkKSApCisgICAgaWYg KCBoYXNfaW9tbXVfcHQoZCkgKQogICAgIHsKICAgICAgICAgaW50IHJldDsKIApAQCAtODQ2LDcg Kzg0Myw2IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgc3Ry dWN0IHhlbl9hZGRfdG9fcGh5c21hcCAqeGF0cCwKICAgICAgICAgaWYgKCB1bmxpa2VseShyYyA8 IDApICkKICAgICAgICAgICAgIGRvbXVfY3Jhc2goZCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBy ZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3ZtX2V2ZW50LmMgYi94ZW4vY29t bW9uL3ZtX2V2ZW50LmMKaW5kZXggMTAwZGE4MDQ4Yy4uNmZmZDE4YTQ0OCAxMDA2NDQKLS0tIGEv eGVuL2NvbW1vbi92bV9ldmVudC5jCisrKyBiL3hlbi9jb21tb24vdm1fZXZlbnQuYwpAQCAtNjQy LDcgKzY0Miw3IEBAIGludCB2bV9ldmVudF9kb21jdGwoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0 IHhlbl9kb21jdGxfdm1fZXZlbnRfb3AgKnZlYywKIAogICAgICAgICAgICAgLyogTm8gcGFnaW5n IGlmIGlvbW11IGlzIHVzZWQgKi8KICAgICAgICAgICAgIHJjID0gLUVNTElOSzsKLSAgICAgICAg ICAgIGlmICggdW5saWtlbHkobmVlZF9pb21tdShkKSkgKQorICAgICAgICAgICAgaWYgKCB1bmxp a2VseShoYXNfaW9tbXVfcHQoZCkpICkKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAg ICAgICAgcmMgPSAtRVhERVY7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h bWQvcGNpX2FtZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRf aW9tbXUuYwppbmRleCA1ZTk5YjY5ODhlLi42ODhjZjE0YzkxIDEwMDY0NAotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMg dm9pZCBfX2h3ZG9tX2luaXQgYW1kX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkK ICAgICBpZiAoIGFsbG9jYXRlX2RvbWFpbl9yZXNvdXJjZXMoZG9tX2lvbW11KGQpKSApCiAgICAg ICAgIEJVRygpOwogCi0gICAgaWYgKCAhaW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggJiYgIW5lZWRf aW9tbXUoZCkgKQorICAgIGlmICggIWlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoICYmICFpb21tdV9o d2RvbV9zdHJpY3QgKQogICAgIHsKICAgICAgICAgaW50IHJjID0gMDsKIApkaWZmIC0tZ2l0IGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvZGV2aWNlX3RyZWUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2RldmljZV90cmVlLmMKaW5kZXggNDIxZjAwMzQzOC4uYjZlYWFlNzI4MyAxMDA2NDQK LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvZGV2aWNlX3RyZWUuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jCkBAIC00MCwxNyArNDAsMTYgQEAgaW50IGlv bW11X2Fzc2lnbl9kdF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGR0X2RldmljZV9u b2RlICpkZXYpCiAgICAgaWYgKCAhbGlzdF9lbXB0eSgmZGV2LT5kb21haW5fbGlzdCkgKQogICAg ICAgICBnb3RvIGZhaWw7CiAKLSAgICBpZiAoIG5lZWRfaW9tbXUoZCkgPD0gMCApCi0gICAgewot ICAgICAgICAvKgotICAgICAgICAgKiBUaGUgaHdkb20gaXMgZm9yY2VkIHRvIHVzZSBJT01NVSBm b3IgcHJvdGVjdGluZyBhc3NpZ25lZAotICAgICAgICAgKiBkZXZpY2UuIFRoZXJlZm9yZSB0aGUg SU9NTVUgZGF0YSBpcyBhbHJlYWR5IHNldCB1cC4KLSAgICAgICAgICovCi0gICAgICAgIEFTU0VS VCghaXNfaGFyZHdhcmVfZG9tYWluKGQpKTsKLSAgICAgICAgcmMgPSBpb21tdV9jb25zdHJ1Y3Qo ZCk7Ci0gICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAgZ290byBmYWlsOwotICAgIH0KKyAg ICAvKgorICAgICAqIFRoZSBod2RvbSBpcyBmb3JjZWQgdG8gdXNlIElPTU1VIGZvciBwcm90ZWN0 aW5nIGFzc2lnbmVkCisgICAgICogZGV2aWNlLiBUaGVyZWZvcmUgdGhlIElPTU1VIGRhdGEgaXMg YWxyZWFkeSBzZXQgdXAuCisgICAgICovCisgICAgQVNTRVJUKCFpc19oYXJkd2FyZV9kb21haW4o ZCkgfHwKKyAgICAgICAgICAgaGQtPnN0YXR1cyA9PSBJT01NVV9TVEFUVVNfaW5pdGlhbGl6ZWQp OworCisgICAgcmMgPSBpb21tdV9jb25zdHJ1Y3QoZCk7CisgICAgaWYgKCByYyApCisgICAgICAg IGdvdG8gZmFpbDsKIAogICAgIC8qIFRoZSBmbGFnIGZpZWxkIGRvZXNuJ3QgbWF0dGVyIHRvIERU IGRldmljZS4gKi8KICAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPmFzc2lnbl9kZXZpY2UoZCwg MCwgZHRfdG9fZGV2KGRldiksIDApOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKaW5kZXggZWE3Y2Ni YWNlNy4uOTIyZTUwOGE0NSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9t bXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCkBAIC0xOTcsNyArMTk3 LDcgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IGNoZWNrX2h3ZG9tX3JlcXMoc3RydWN0IGRv bWFpbiAqZCkKIAogdm9pZCBfX2h3ZG9tX2luaXQgaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9t YWluICpkKQogewotICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11 KGQpOworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwogCiAgICAg Y2hlY2tfaHdkb21fcmVxcyhkKTsKIApAQCAtMjA1LDggKzIwNSwxMCBAQCB2b2lkIF9faHdkb21f aW5pdCBpb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgIHJldHVybjsK IAogICAgIHJlZ2lzdGVyX2tleWhhbmRsZXIoJ28nLCAmaW9tbXVfZHVtcF9wMm1fdGFibGUsICJk dW1wIGlvbW11IHAybSB0YWJsZSIsIDApOwotICAgIGQtPm5lZWRfaW9tbXUgPSBpb21tdV9od2Rv bV9zdHJpY3Q7Ci0gICAgaWYgKCBuZWVkX2lvbW11KGQpICYmICFpb21tdV91c2VfaGFwX3B0KGQp ICkKKworICAgIGhkLT5zdGF0dXMgPSBJT01NVV9TVEFUVVNfaW5pdGlhbGl6aW5nOworICAgIGhk LT5uZWVkX3N5bmMgPSBpb21tdV9od2RvbV9zdHJpY3QgJiYgIWlvbW11X3VzZV9oYXBfcHQoZCk7 CisgICAgaWYgKCBuZWVkX2lvbW11X3B0X3N5bmMoZCkgKQogICAgIHsKICAgICAgICAgc3RydWN0 IHBhZ2VfaW5mbyAqcGFnZTsKICAgICAgICAgdW5zaWduZWQgaW50IGkgPSAwOwpAQCAtMjM5LDM1 ICsyNDEsNTEgQEAgdm9pZCBfX2h3ZG9tX2luaXQgaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9t YWluICpkKQogICAgIH0KIAogICAgIGhkLT5wbGF0Zm9ybV9vcHMtPmh3ZG9tX2luaXQoZCk7CisK KyAgICBoZC0+c3RhdHVzID0gSU9NTVVfU1RBVFVTX2luaXRpYWxpemVkOwogfQogCiB2b2lkIGlv bW11X3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgY29uc3Qgc3RydWN0IGRvbWFp bl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CisgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQg PSBkb21faW9tbXUoZCk7CiAKLSAgICBkLT5uZWVkX2lvbW11ID0gMDsKKyAgICBoZC0+c3RhdHVz ID0gSU9NTVVfU1RBVFVTX2Rpc2FibGVkOwogICAgIGhkLT5wbGF0Zm9ybV9vcHMtPnRlYXJkb3du KGQpOwogICAgIHRhc2tsZXRfc2NoZWR1bGUoJmlvbW11X3B0X2NsZWFudXBfdGFza2xldCk7CiB9 CiAKIGludCBpb21tdV9jb25zdHJ1Y3Qoc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICBpZiAoIG5l ZWRfaW9tbXUoZCkgPiAwICkKKyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21t dShkKTsKKworICAgIGlmICggaGQtPnN0YXR1cyA9PSBJT01NVV9TVEFUVVNfaW5pdGlhbGl6ZWQg KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmICggIWlvbW11X3VzZV9oYXBfcHQoZCkgKQog ICAgIHsKICAgICAgICAgaW50IHJjOwogCisgICAgICAgIGhkLT5zdGF0dXMgPSBJT01NVV9TVEFU VVNfaW5pdGlhbGl6aW5nOworICAgICAgICBoZC0+bmVlZF9zeW5jID0gdHJ1ZTsKKwogICAgICAg ICByYyA9IGFyY2hfaW9tbXVfcG9wdWxhdGVfcGFnZV90YWJsZShkKTsKICAgICAgICAgaWYgKCBy YyApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggcmMgIT0gLUVSRVNUQVJUICkKKyAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICBoZC0+bmVlZF9zeW5jID0gZmFsc2U7CisgICAgICAg ICAgICAgICAgaGQtPnN0YXR1cyA9IElPTU1VX1NUQVRVU19kaXNhYmxlZDsKKyAgICAgICAgICAg IH0KKwogICAgICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICB9CiAgICAgfQogCi0gICAgZC0+ bmVlZF9pb21tdSA9IDE7CisgICAgaGQtPnN0YXR1cyA9IElPTU1VX1NUQVRVU19pbml0aWFsaXpl ZDsKKwogICAgIC8qCiAgICAgICogVGhlcmUgbWF5IGJlIGRpcnR5IGNhY2hlIGxpbmVzIHdoZW4g YSBkZXZpY2UgaXMgYXNzaWduZWQKLSAgICAgKiBhbmQgYmVmb3JlIG5lZWRfaW9tbXUoZCkgYmVj b21pbmcgdHJ1ZSwgdGhpcyB3aWxsIGNhdXNlCisgICAgICogYW5kIGJlZm9yZSBoYXNfaW9tbXVf cHQoZCkgYmVjb21pbmcgdHJ1ZSwgdGhpcyB3aWxsIGNhdXNlCiAgICAgICogbWVtb3J5X3R5cGVf Y2hhbmdlZCBsb3NlIGVmZmVjdCBpZiBtZW1vcnkgdHlwZSBjaGFuZ2VzLgogICAgICAqIENhbGwg bWVtb3J5X3R5cGVfY2hhbmdlZCBoZXJlIHRvIGFtZW5kIHRoaXMuCiAgICAgICovCkBAIC01MjIs NyArNTQwLDggQEAgc3RhdGljIHZvaWQgaW9tbXVfZHVtcF9wMm1fdGFibGUodW5zaWduZWQgY2hh ciBrZXkpCiAgICAgb3BzID0gaW9tbXVfZ2V0X29wcygpOwogICAgIGZvcl9lYWNoX2RvbWFpbihk KQogICAgIHsKLSAgICAgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgfHwgbmVlZF9pb21t dShkKSA8PSAwICkKKyAgICAgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgfHwKKyAgICAg ICAgICAgICBkb21faW9tbXUoZCktPnN0YXR1cyA8IElPTU1VX1NUQVRVU19pbml0aWFsaXplZCAp CiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoIGlvbW11X3VzZV9oYXBfcHQo ZCkgKQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9wY2kuYwppbmRleCA5Njk1Y2Y1NjZkLi5lNWI5NjAyNzYyIDEwMDY0 NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYworKysgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9wY2kuYwpAQCAtMTQxNiwxMCArMTQxNiw5IEBAIHN0YXRpYyBpbnQgYXNzaWdu X2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCB1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLCB1MzIg ZmxhZykKIAogICAgIC8qIFByZXZlbnQgZGV2aWNlIGFzc2lnbiBpZiBtZW0gcGFnaW5nIG9yIG1l bSBzaGFyaW5nIGhhdmUgYmVlbiAKICAgICAgKiBlbmFibGVkIGZvciB0aGlzIGRvbWFpbiAqLwot ICAgIGlmICggdW5saWtlbHkoIW5lZWRfaW9tbXUoZCkgJiYKLSAgICAgICAgICAgIChkLT5hcmNo Lmh2bS5tZW1fc2hhcmluZ19lbmFibGVkIHx8Ci0gICAgICAgICAgICAgdm1fZXZlbnRfY2hlY2tf cmluZyhkLT52bV9ldmVudF9wYWdpbmcpIHx8Ci0gICAgICAgICAgICAgcDJtX2dldF9ob3N0cDJt KGQpLT5nbG9iYWxfbG9nZGlydHkpKSApCisgICAgaWYgKCB1bmxpa2VseShkLT5hcmNoLmh2bS5t ZW1fc2hhcmluZ19lbmFibGVkIHx8CisgICAgICAgICAgICAgICAgICB2bV9ldmVudF9jaGVja19y aW5nKGQtPnZtX2V2ZW50X3BhZ2luZykgfHwKKyAgICAgICAgICAgICAgICAgIHAybV9nZXRfaG9z dHAybShkKS0+Z2xvYmFsX2xvZ2RpcnR5KSApCiAgICAgICAgIHJldHVybiAtRVhERVY7CiAKICAg ICBpZiAoICFwY2lkZXZzX3RyeWxvY2soKSApCkBAIC0xNDYwLDcgKzE0NTksNyBAQCBzdGF0aWMg aW50IGFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgdTE2IHNlZywgdTggYnVzLCB1OCBk ZXZmbiwgdTMyIGZsYWcpCiAgICAgfQogCiAgZG9uZToKLSAgICBpZiAoICFoYXNfYXJjaF9wZGV2 cyhkKSAmJiBuZWVkX2lvbW11KGQpICkKKyAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyhkKSAmJiBo YXNfaW9tbXVfcHQoZCkgKQogICAgICAgICBpb21tdV90ZWFyZG93bihkKTsKICAgICBwY2lkZXZz X3VubG9jaygpOwogCkBAIC0xNTEwLDcgKzE1MDksNyBAQCBpbnQgZGVhc3NpZ25fZGV2aWNlKHN0 cnVjdCBkb21haW4gKmQsIHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCiAKICAgICBwZGV2LT5m YXVsdC5jb3VudCA9IDA7CiAKLSAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyhkKSAmJiBuZWVkX2lv bW11KGQpICkKKyAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyhkKSAmJiBoYXNfaW9tbXVfcHQoZCkg KQogICAgICAgICBpb21tdV90ZWFyZG93bihkKTsKIAogICAgIHJldHVybiByZXQ7CmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3g4Ni9pb21tdS5jCmluZGV4IGI2YWNmZGZlOTUuLjFmMWM2YjBmYTYgMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCisrKyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCkBAIC00OCw4ICs0OCw2IEBAIGludCBhcmNoX2lv bW11X3BvcHVsYXRlX3BhZ2VfdGFibGUoc3RydWN0IGRvbWFpbiAqZCkKICAgICBzdHJ1Y3QgcGFn ZV9pbmZvICpwYWdlOwogICAgIGludCByYyA9IDAsIG4gPSAwOwogCi0gICAgZC0+bmVlZF9pb21t dSA9IC0xOwotCiAgICAgdGhpc19jcHUoaW9tbXVfZG9udF9mbHVzaF9pb3RsYikgPSAxOwogICAg IHNwaW5fbG9jaygmZC0+cGFnZV9hbGxvY19sb2NrKTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLWFybS9ncmFudF90YWJsZS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJs ZS5oCmluZGV4IGQ4ZmRlMDE2NTEuLjM3NDE1Yjc4MjEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L2FzbS1hcm0vZ3JhbnRfdGFibGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dyYW50X3Rh YmxlLmgKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBnbnR0YWJfbWFya19kaXJ0eShzdHJ1Y3QgZG9t YWluICpkLCBtZm5fdCBtZm4pOwogICAgIGdmbl94KCgoaSkgPj0gbnJfc3RhdHVzX2ZyYW1lcyh0 KSkgPyBJTlZBTElEX0dGTiA6ICh0KS0+YXJjaC5zdGF0dXNfZ2ZuW2ldKQogCiAjZGVmaW5lIGdu dHRhYl9uZWVkX2lvbW11X21hcHBpbmcoZCkgICAgICAgICAgICAgICAgICAgIFwKLSAgICAoaXNf ZG9tYWluX2RpcmVjdF9tYXBwZWQoZCkgJiYgbmVlZF9pb21tdShkKSkKKyAgICAoaXNfZG9tYWlu X2RpcmVjdF9tYXBwZWQoZCkgJiYgbmVlZF9pb21tdV9wdF9zeW5jKGQpKQogCiAjZW5kaWYgLyog X19BU01fR1JBTlRfVEFCTEVfSF9fICovCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LWFybS9pb21tdS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9pb21tdS5oCmluZGV4IDhkMTUwNmM2 ZjcuLmY2ZGYzMmY4NjAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vaW9tbXUuaAor KysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2lvbW11LmgKQEAgLTIxLDcgKzIxLDcgQEAgc3RydWN0 IGFyY2hfaW9tbXUKIH07CiAKIC8qIEFsd2F5cyBzaGFyZSBQMk0gVGFibGUgYmV0d2VlbiB0aGUg Q1BVIGFuZCB0aGUgSU9NTVUgKi8KLSNkZWZpbmUgaW9tbXVfdXNlX2hhcF9wdChkKSAobmVlZF9p b21tdShkKSkKKyNkZWZpbmUgaW9tbXVfdXNlX2hhcF9wdChkKSAoaGFzX2lvbW11X3B0KGQpKQog CiBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzICppb21tdV9nZXRfb3BzKHZvaWQpOwogdm9pZCBfX2lu aXQgaW9tbXVfc2V0X29wcyhjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzICpvcHMpOwpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9ncmFudF90YWJsZS5oCmluZGV4IDc2MWE4YzMzYTUuLjFlNmE5ODgxM2QgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L2dyYW50X3RhYmxlLmgKQEAgLTk0LDYgKzk0LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGdu dHRhYl9jbGVhcl9mbGFnKHVuc2lnbmVkIGludCBuciwgdWludDE2X3QgKnN0KQogI2RlZmluZSBn bnR0YWJfcmVsZWFzZV9ob3N0X21hcHBpbmdzKGRvbWFpbikgKCBwYWdpbmdfbW9kZV9leHRlcm5h bChkb21haW4pICkKIAogI2RlZmluZSBnbnR0YWJfbmVlZF9pb21tdV9tYXBwaW5nKGQpICAgICAg ICAgICAgICAgIFwKLSAgICAoIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSAmJiBuZWVkX2lvbW11 KGQpKQorICAgICghcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICYmIG5lZWRfaW9tbXVfcHRfc3lu YyhkKSkKIAogI2VuZGlmIC8qIF9fQVNNX0dSQU5UX1RBQkxFX0hfXyAqLwpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5o CmluZGV4IDdjMzE4N2M4ZWMuLmZhMzdiMDUzOWIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKQEAgLTkxLDcg KzkxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgaW9tbXVfaGFyZHdhcmVfc2V0dXAodm9pZCkKIAog LyogQXJlIHdlIHVzaW5nIHRoZSBkb21haW4gUDJNIHRhYmxlIGFzIGl0cyBJT01NVSBwYWdldGFi bGU/ICovCiAjZGVmaW5lIGlvbW11X3VzZV9oYXBfcHQoZCkgXAotICAgIChoYXBfZW5hYmxlZChk KSAmJiBuZWVkX2lvbW11KGQpICYmIGlvbW11X2hhcF9wdF9zaGFyZSkKKyAgICAoaGFwX2VuYWJs ZWQoZCkgJiYgaGFzX2lvbW11X3B0KGQpICYmIGlvbW11X2hhcF9wdF9zaGFyZSkKIAogdm9pZCBp b21tdV91cGRhdGVfaXJlX2Zyb21fYXBpYyh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50 IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKTsKIHVuc2lnbmVkIGludCBpb21tdV9yZWFkX2FwaWNf ZnJvbV9pcmUodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcpOwpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmggYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAppbmRl eCA5YWU4MzIxYmI0Li43ZWJhY2E1Y2E0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9t bXUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaApAQCAtMTAzLDYgKzEwMywxMyBAQCBl bnVtIGlvbW11X2ZlYXR1cmUKIAogYm9vbF90IGlvbW11X2hhc19mZWF0dXJlKHN0cnVjdCBkb21h aW4gKmQsIGVudW0gaW9tbXVfZmVhdHVyZSBmZWF0dXJlKTsKIAorZW51bSBpb21tdV9zdGF0dXMK K3sKKyAgICBJT01NVV9TVEFUVVNfZGlzYWJsZWQsCisgICAgSU9NTVVfU1RBVFVTX2luaXRpYWxp emluZywKKyAgICBJT01NVV9TVEFUVVNfaW5pdGlhbGl6ZWQKK307CisKIHN0cnVjdCBkb21haW5f aW9tbXUgewogICAgIHN0cnVjdCBhcmNoX2lvbW11IGFyY2g7CiAKQEAgLTExNiw2ICsxMjMsMTYg QEAgc3RydWN0IGRvbWFpbl9pb21tdSB7CiAKICAgICAvKiBGZWF0dXJlcyBzdXBwb3J0ZWQgYnkg dGhlIElPTU1VICovCiAgICAgREVDTEFSRV9CSVRNQVAoZmVhdHVyZXMsIElPTU1VX0ZFQVRfY291 bnQpOworCisgICAgLyogU3RhdHVzIG9mIGd1ZXN0IElPTU1VIG1hcHBpbmdzICovCisgICAgZW51 bSBpb21tdV9zdGF0dXMgc3RhdHVzOworCisgICAgLyoKKyAgICAgKiBEb2VzIHRoZSBndWVzdCBy ZXFpcmUgbWFwcGluZ3MgdG8gYmUgc3luY2hvbml6ZWQsIHRvIG1haW50YWluCisgICAgICogdGhl IGRlZmF1bHQgZGZuID09IHBmbiBtYXAuIChTZWUgY29tbWVudCBvbiBkZm4gYXQgdGhlIHRvcCBv ZgorICAgICAqIGluY2x1ZGUveGVuL21tLmgpLgorICAgICAqLworICAgIGJvb2wgbmVlZF9zeW5j OwogfTsKIAogI2RlZmluZSBkb21faW9tbXUoZCkgICAgICAgICAgICAgICgmKGQpLT5pb21tdSkK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIveGVuL2luY2x1ZGUveGVuL3Nj aGVkLmgKaW5kZXggZjJjNTk0ZDE5Ny4uNjNmYjcwYmNkYyAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUveGVuL3NjaGVkLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKQEAgLTM3MSw5ICsz NzEsNiBAQCBzdHJ1Y3QgZG9tYWluCiAKICNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICiAg ICAgc3RydWN0IGRvbWFpbl9pb21tdSBpb21tdTsKLQotICAgIC8qIERvZXMgdGhpcyBndWVzdCBu ZWVkIGlvbW11IG1hcHBpbmdzICgtMSBtZWFuaW5nICJiZWluZyBzZXQgdXAiKT8gKi8KLSAgICBz OCAgICAgICAgICAgICAgIG5lZWRfaW9tbXU7CiAjZW5kaWYKICAgICAvKiBpcyBub2RlLWFmZmlu aXR5IGF1dG9tYXRpY2FsbHkgY29tcHV0ZWQ/ICovCiAgICAgYm9vbCAgICAgICAgICAgICBhdXRv X25vZGVfYWZmaW5pdHk7CkBAIC04OTgsOSArODk1LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp c19odm1fdmNwdShjb25zdCBzdHJ1Y3QgdmNwdSAqdikKICNkZWZpbmUgaXNfcGlubmVkX3ZjcHUo dikgKCh2KS0+ZG9tYWluLT5pc19waW5uZWQgfHwgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3B1bWFza193ZWlnaHQoKHYpLT5jcHVfaGFyZF9hZmZpbml0eSkgPT0gMSkKICNpZmRlZiBD T05GSUdfSEFTX1BBU1NUSFJPVUdICi0jZGVmaW5lIG5lZWRfaW9tbXUoZCkgICAgKChkKS0+bmVl ZF9pb21tdSkKKyNkZWZpbmUgaGFzX2lvbW11X3B0KGQpIChkb21faW9tbXUoZCktPnN0YXR1cyAh PSBJT01NVV9TVEFUVVNfZGlzYWJsZWQpCisjZGVmaW5lIG5lZWRfaW9tbXVfcHRfc3luYyhkKSAo ZG9tX2lvbW11KGQpLT5uZWVkX3N5bmMpCiAjZWxzZQotI2RlZmluZSBuZWVkX2lvbW11KGQpICAg ICgwKQorI2RlZmluZSBoYXNfaW9tbXVfcHQoZCkgZmFsc2UKKyNkZWZpbmUgbmVlZF9pb21tdV9w dF9zeW5jKGQpIGZhbHNlCiAjZW5kaWYKIAogc3RhdGljIGlubGluZSBib29sIGlzX3ZjcHVfb25s aW5lKGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==