From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v6 10/14] mm / iommu: split need_iommu() into has_iommu_pt() and need_iommu_pt_sync() Date: Thu, 23 Aug 2018 10:47:07 +0100 Message-ID: <20180823094711.21376-11-paul.durrant@citrix.com> References: <20180823094711.21376-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fsmO1-000282-FA for xen-devel@lists.xenproject.org; Thu, 23 Aug 2018 09:58:41 +0000 In-Reply-To: <20180823094711.21376-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 , Razvan Cojocaru , 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 c3QuCgpOT1RFOiBUaGUgdGVzdCBvZiBuZWVkX2lvbW11KGQpIGluIHRoZSBBTUQgSU9NTVUgaW5p dGlhbGl6YXRpb24gY29kZSBoYXMKICAgICAgYmVlbiByZXBsYWNlZCB3aXRoIGEgdGVzdCBvZiBp b21tdV9kb20wX3N0cmljdCBzaW5jZSB0aGlzIG1vcmUKICAgICAgYWNjdXJhdGVseSByZWZsZWN0 cyB0aGUgbWVhbmluZyBvZiB0aGUgdGVzdCBhbmQgYnJpbmdzIGl0IGludG8KICAgICAgbGluZSB3 aXRoIGEgc2ltaWxhciB0ZXN0IGluIHRoZSBJbnRlbCBWVC1kIGNvZGUuCgpTaWduZWQtb2ZmLWJ5 OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IFN0ZWZhbm8g U3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVs aWVuLmdyYWxsQGFybS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgpDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpD YzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGlj aCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53 aWxrQG9yYWNsZS5jb20+CkNjOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ2M6IFdlaSBMaXUg PHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzQHRrbGVuZ3ll bC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNj OiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNjOiBLZXZpbiBUaWFuIDxr ZXZpbi50aWFuQGludGVsLmNvbT4KQ2M6IFJhenZhbiBDb2pvY2FydSA8cmNvam9jYXJ1QGJpdGRl ZmVuZGVyLmNvbT4KQ2M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBh bml0QGFtZC5jb20+CkNjOiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1kLmNvbT4KCnY2Ogog LSBEZWFsIHdpdGggbmVlZF9pb21tdSBiZWluZyB0cmktc3RhdGUuCiAtIENoYW5nZSB0aGUgbmFt ZSBvZiAnc3luY19pb21tdV9wdCcgdG8gJ25lZWRfaW9tbXVfcHRfc3luYycgYW5kIG1ha2UKICAg c3VyZSBpdCBpcyBzZXQgYXMgc29vbiBhcyB0aGUgbWFwcGluZ3MgYXJlIHVuZGVyIGNvbnN0cnVj dGlvbi4KIC0gTm90IGFkZGluZyBSYXp2YW4ncyBBLWIgYmVjYXVzZSBvZiBjaGFuZ2UuCgp2NDoK IC0gTmV3IGluIHY0LgotLS0KIHhlbi9hcmNoL2FybS9wMm0uYyAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2h2bS9tdHJyLmMgICAgICAgICAgICAgICAgICAg ICB8ICA1ICsrLS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogeGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMgICAgICAgICAgICAgICB8ICAy ICstCiB4ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVu L2FyY2gveDg2L21tL3AybS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKy0tLQogeGVu L2FyY2gveDg2L21tL3BhZ2luZy5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJj aC94ODYveDg2XzY0L21tLmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKystCiB4ZW4vY29tbW9u L21lbW9yeS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKystLS0KIHhlbi9jb21tb24v dm1fZXZlbnQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyB8ICAyICstCiB4ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9kZXZpY2VfdHJlZS5jICAgICAgIHwgMjEgKysrKysrKystLS0tLS0tLQogeGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvaW9tbXUuYyAgICAgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgICAgICAgICAgICAg IHwgIDYgKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jICAgICAgICAg fCAgMiAtLQogeGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJsZS5oICAgICAgICAgICB8ICAy ICstCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2lvbW11LmggICAgICAgICAgICAgICAgIHwgIDIgKy0K IHhlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaCAgICAgICAgICAgfCAgMiArLQogeGVu L2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vaW5j bHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICAgICAgICAgIHwgMTcgKysrKysrKysrKysrKwog eGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKy0tLS0K IDIyIGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9hcmNoL2FybS9wMm0uYwppbmRleCA0 YThjYWM1MDUwLi5hYmQ1OTIwODc3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKKysr IGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC05NTUsNyArOTU1LDcgQEAgc3RhdGljIGludCBfX3Ay bV9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwKICAgICBpZiAoIGxwYWVfaXNfdmFs aWQob3JpZ19wdGUpICYmIGVudHJ5LT5wMm0uYmFzZSAhPSBvcmlnX3B0ZS5wMm0uYmFzZSApCiAg ICAgICAgIHAybV9mcmVlX2VudHJ5KHAybSwgb3JpZ19wdGUsIGxldmVsKTsKIAotICAgIGlmICgg bmVlZF9pb21tdShwMm0tPmRvbWFpbikgJiYKKyAgICBpZiAoIG5lZWRfaW9tbXVfcHRfc3luYyhw Mm0tPmRvbWFpbikgJiYKICAgICAgICAgIChscGFlX2lzX3ZhbGlkKG9yaWdfcHRlKSB8fCBscGFl X2lzX3ZhbGlkKCplbnRyeSkpICkKICAgICB7CiAgICAgICAgIHJjID0gaW9tbXVfaW90bGJfZmx1 c2gocDJtLT5kb21haW4sIF9iZm4oZ2ZuX3goc2dmbikpLApkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9tdHJyLmMgYi94ZW4vYXJjaC94ODYvaHZtL210cnIuYwppbmRleCBlZGZlNWNkMmIy Li40NGM2NWNhNzE3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL210cnIuYworKysgYi94 ZW4vYXJjaC94ODYvaHZtL210cnIuYwpAQCAtNzkzLDcgKzc5Myw4IEBAIEhWTV9SRUdJU1RFUl9T QVZFX1JFU1RPUkUoTVRSUiwgaHZtX3NhdmVfbXRycl9tc3IsIGh2bV9sb2FkX210cnJfbXNyLAog CiB2b2lkIG1lbW9yeV90eXBlX2NoYW5nZWQoc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICBpZiAo IG5lZWRfaW9tbXUoZCkgJiYgZC0+dmNwdSAmJiBkLT52Y3B1WzBdICkKKyAgICBpZiAoIChuZWVk X2lvbW11X3B0X3N5bmMoZCkgfHwgaW9tbXVfdXNlX2hhcF9wdChkKSkgJiYKKyAgICAgICAgIGQt PnZjcHUgJiYgZC0+dmNwdVswXSApCiAgICAgewogICAgICAgICBwMm1fbWVtb3J5X3R5cGVfY2hh bmdlZChkKTsKICAgICAgICAgZmx1c2hfYWxsKEZMVVNIX0NBQ0hFKTsKQEAgLTg0MSw3ICs4NDIs NyBAQCBpbnQgZXB0ZV9nZXRfZW50cnlfZW10KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxv bmcgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgICAgIHJldHVybiBNVFJSX1RZUEVfVU5DQUNIQUJMRTsK ICAgICB9CiAKLSAgICBpZiAoICFuZWVkX2lvbW11KGQpICYmICFjYWNoZV9mbHVzaF9wZXJtaXR0 ZWQoZCkgKQorICAgIGlmICggIWhhc19pb21tdV9wdChkKSAmJiAhY2FjaGVfZmx1c2hfcGVybWl0 dGVkKGQpICkKICAgICB7CiAgICAgICAgICppcGF0ID0gMTsKICAgICAgICAgcmV0dXJuIE1UUlJf VFlQRV9XUkJBQ0s7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4 Ni9tbS5jCmluZGV4IGY1OTg2NzRmMGMuLjFiNTFlYzc4NjUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0yNzUwLDcgKzI3NTAsNyBAQCBz dGF0aWMgaW50IF9nZXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVk IGxvbmcgdHlwZSwKICAgICB7CiAgICAgICAgIC8qIFNwZWNpYWwgcGFnZXMgc2hvdWxkIG5vdCBi ZSBhY2Nlc3NpYmxlIGZyb20gZGV2aWNlcy4gKi8KICAgICAgICAgc3RydWN0IGRvbWFpbiAqZCA9 IHBhZ2VfZ2V0X293bmVyKHBhZ2UpOwotICAgICAgICBpZiAoIGQgJiYgaXNfcHZfZG9tYWluKGQp ICYmIHVubGlrZWx5KG5lZWRfaW9tbXUoZCkpICkKKyAgICAgICAgaWYgKCBkICYmIGlzX3B2X2Rv bWFpbihkKSAmJiB1bmxpa2VseShuZWVkX2lvbW11X3B0X3N5bmMoZCkpICkKICAgICAgICAgewog ICAgICAgICAgICAgbWZuX3QgbWZuID0gcGFnZV90b19tZm4ocGFnZSk7CiAKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jIGIveGVuL2FyY2gveDg2L21tL21lbV9zaGFy aW5nLmMKaW5kZXggZmFkOGE5ZGYxMy4uYzU0ODQ1Mjc1ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L21tL21lbV9zaGFyaW5nLmMKKysrIGIveGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMK QEAgLTE2MTAsNyArMTYxMCw3IEBAIGludCBtZW1fc2hhcmluZ19kb21jdGwoc3RydWN0IGRvbWFp biAqZCwgc3RydWN0IHhlbl9kb21jdGxfbWVtX3NoYXJpbmdfb3AgKm1lYykKICAgICAgICAgY2Fz ZSBYRU5fRE9NQ1RMX01FTV9TSEFSSU5HX0NPTlRST0w6CiAgICAgICAgIHsKICAgICAgICAgICAg IHJjID0gMDsKLSAgICAgICAgICAgIGlmICggdW5saWtlbHkobmVlZF9pb21tdShkKSAmJiBtZWMt PnUuZW5hYmxlKSApCisgICAgICAgICAgICBpZiAoIHVubGlrZWx5KGhhc19pb21tdV9wdChkKSAm JiBtZWMtPnUuZW5hYmxlKSApCiAgICAgICAgICAgICAgICAgcmMgPSAtRVhERVY7CiAgICAgICAg ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLm1lbV9zaGFyaW5n X2VuYWJsZWQgPSBtZWMtPnUuZW5hYmxlOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3Ay bS1lcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKaW5kZXggOWNlOWFiZDJiMS4uNDY0 YmQ1ZDgwNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYworKysgYi94ZW4v YXJjaC94ODYvbW0vcDJtLWVwdC5jCkBAIC04NjgsNyArODY4LDcgQEAgb3V0OgogICAgIHsKICAg ICAgICAgaWYgKCBpb21tdV91c2VfaGFwX3B0KGQpICkKICAgICAgICAgICAgIHJjID0gaW9tbXVf cHRlX2ZsdXNoKGQsIGdmbiwgJmVwdF9lbnRyeS0+ZXB0ZSwgb3JkZXIsIHZ0ZF9wdGVfcHJlc2Vu dCk7Ci0gICAgICAgIGVsc2UgaWYgKCBuZWVkX2lvbW11KGQpICkKKyAgICAgICAgZWxzZSBpZiAo IG5lZWRfaW9tbXVfcHRfc3luYyhkKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGJmbl90IGJm biA9IF9iZm4oZ2ZuKTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jIGIv eGVuL2FyY2gveDg2L21tL3AybS1wdC5jCmluZGV4IGYyNjVhMzI1ZjYuLjRmZTM0MzdhOTcgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0v cDJtLXB0LmMKQEAgLTY4Nyw3ICs2ODcsNyBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1f ZG9tYWluICpwMm0sIGdmbl90IGdmbl8sIG1mbl90IG1mbiwKICAgICAgICAgICAgIGlmICggaW9t bXVfb2xkX2ZsYWdzICkKICAgICAgICAgICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMocDJt LT5kb21haW4sIGdmbiwgcGFnZV9vcmRlcik7CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAo IG5lZWRfaW9tbXUocDJtLT5kb21haW4pICkKKyAgICAgICAgZWxzZSBpZiAoIG5lZWRfaW9tbXVf cHRfc3luYyhwMm0tPmRvbWFpbikgKQogICAgICAgICB7CiAgICAgICAgICAgICBiZm5fdCBiZm4g PSBfYmZuKGdmbik7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9h cmNoL3g4Ni9tbS9wMm0uYwppbmRleCA0ODVmNzU4M2JhLi45YTBiOWUzNzNiIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC03 MTMsNyArNzEzLDcgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVu c2lnbmVkIGxvbmcgZ2ZuX2wsIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIHsKICAgICAgICAgaW50 IHJjID0gMDsKIAotICAgICAgICBpZiAoIG5lZWRfaW9tbXUocDJtLT5kb21haW4pICkKKyAgICAg ICAgaWYgKCBuZWVkX2lvbW11X3B0X3N5bmMocDJtLT5kb21haW4pICkKICAgICAgICAgewogICAg ICAgICAgICAgYmZuX3QgYmZuID0gX2JmbihtZm4pOwogCkBAIC03NzcsNyArNzc3LDcgQEAgZ3Vl c3RfcGh5c21hcF9hZGRfZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBtZm5fdCBt Zm4sCiAKICAgICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQogICAgIHsKLSAgICAg ICAgaWYgKCBuZWVkX2lvbW11KGQpICYmIHQgPT0gcDJtX3JhbV9ydyApCisgICAgICAgIGlmICgg bmVlZF9pb21tdV9wdF9zeW5jKGQpICYmIHQgPT0gcDJtX3JhbV9ydyApCiAgICAgICAgIHsKICAg ICAgICAgICAgIGJmbl90IGJmbiA9IF9iZm4obWZuX3gobWZuKSk7CiAKQEAgLTExNjMsNyArMTE2 Myw3IEBAIGludCBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcgZ2ZuX2wsCiAKICAgICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQog ICAgIHsKLSAgICAgICAgaWYgKCAhbmVlZF9pb21tdShkKSApCisgICAgICAgIGlmICggIW5lZWRf aW9tbXVfcHRfc3luYyhkKSApCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICByZXQg PSBpb21tdV9tYXBfcGFnZShkLCBfYmZuKGdmbl9sKSwgX21mbihnZm5fbCksCkBAIC0xMjU5LDcg KzEyNTksNyBAQCBpbnQgY2xlYXJfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGxvbmcgZ2ZuX2wpCiAKICAgICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUo ZCkgKQogICAgIHsKLSAgICAgICAgaWYgKCAhbmVlZF9pb21tdShkKSApCisgICAgICAgIGlmICgg IW5lZWRfaW9tbXVfcHRfc3luYyhkKSApCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAg ICByZXQgPSBpb21tdV91bm1hcF9wYWdlKGQsIF9iZm4oZ2ZuX2wpKTsKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9tbS9wYWdpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYwppbmRleCBk Y2VlNDk2ZWIwLi5hNGI1NDVjOTA1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcGFnaW5n LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCkBAIC0yMTMsNyArMjEzLDcgQEAgaW50 IHBhZ2luZ19sb2dfZGlydHlfZW5hYmxlKHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCBsb2dfZ2xv YmFsKQogewogICAgIGludCByZXQ7CiAKLSAgICBpZiAoIG5lZWRfaW9tbXUoZCkgJiYgbG9nX2ds b2JhbCApCisgICAgaWYgKCBoYXNfaW9tbXVfcHQoZCkgJiYgbG9nX2dsb2JhbCApCiAgICAgewog ICAgICAgICAvKgogICAgICAgICAgKiBSZWZ1c2UgdG8gdHVybiBvbiBnbG9iYWwgbG9nLWRpcnR5 IG1vZGUKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyBiL3hlbi9hcmNoL3g4 Ni94ODZfNjQvbW0uYwppbmRleCBjYzU4ZTRjZWY0Li5jOTM3ZjgxZjBhIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCkBA IC0xNDI2LDcgKzE0MjYsOCBAQCBpbnQgbWVtb3J5X2FkZCh1bnNpZ25lZCBsb25nIHNwZm4sIHVu c2lnbmVkIGxvbmcgZXBmbiwgdW5zaWduZWQgaW50IHB4bSkKICAgICBpZiAoIHJldCApCiAgICAg ICAgIGdvdG8gZGVzdHJveV9tMnA7CiAKLSAgICBpZiAoIGlvbW11X2VuYWJsZWQgJiYgIWlvbW11 X3Bhc3N0aHJvdWdoICYmICFuZWVkX2lvbW11KGhhcmR3YXJlX2RvbWFpbikgKQorICAgIGlmICgg aW9tbXVfZW5hYmxlZCAmJiAhaW9tbXVfcGFzc3Rocm91Z2ggJiYKKyAgICAgICAgICFuZWVkX2lv bW11X3B0X3N5bmMoaGFyZHdhcmVfZG9tYWluKSApCiAgICAgewogICAgICAgICBmb3IgKCBpID0g c3BmbjsgaSA8IGVwZm47IGkrKyApCiAgICAgICAgICAgICBpZiAoIGlvbW11X21hcF9wYWdlKGhh cmR3YXJlX2RvbWFpbiwgX2JmbihpKSwgX21mbihpKSwKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24v bWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IDJlNGNkOGNkZmQuLmM0NjcxYjQ1 N2IgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIveGVuL2NvbW1vbi9tZW1v cnkuYwpAQCAtODA1LDggKzgwNSw4IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXAoc3RydWN0 IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcCAqeGF0cCwKICAgICB4YXRwLT5z aXplIC09IHN0YXJ0OwogCiAjaWZkZWYgQ09ORklHX0hBU19QQVNTVEhST1VHSAotICAgIGlmICgg bmVlZF9pb21tdShkKSApCi0gICAgICAgIHRoaXNfY3B1KGlvbW11X2RvbnRfZmx1c2hfaW90bGIp ID0gMTsKKyAgICBpZiAoIG5lZWRfaW9tbXVfcHRfc3luYyhkKSB8fCBpb21tdV91c2VfaGFwX3B0 KGQpICkKKyAgICAgICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9IDE7CiAjZW5k aWYKIAogICAgIHdoaWxlICggeGF0cC0+c2l6ZSA+IGRvbmUgKQpAQCAtODI4LDcgKzgyOCw3IEBA IGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9h ZGRfdG9fcGh5c21hcCAqeGF0cCwKICAgICB9CiAKICNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJP VUdICi0gICAgaWYgKCBuZWVkX2lvbW11KGQpICkKKyAgICBpZiAoIG5lZWRfaW9tbXVfcHRfc3lu YyhkKSB8fCBpb21tdV91c2VfaGFwX3B0KGQpICkKICAgICB7CiAgICAgICAgIGludCByZXQ7CiAK ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdm1fZXZlbnQuYyBiL3hlbi9jb21tb24vdm1fZXZlbnQu YwppbmRleCAxNDRhYjgxYzg2Li5lYzNkZmQxZGFlIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3Zt X2V2ZW50LmMKKysrIGIveGVuL2NvbW1vbi92bV9ldmVudC5jCkBAIC02NDQsNyArNjQ0LDcgQEAg aW50IHZtX2V2ZW50X2RvbWN0bChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bF92 bV9ldmVudF9vcCAqdmVjLAogCiAgICAgICAgICAgICAvKiBObyBwYWdpbmcgaWYgaW9tbXUgaXMg dXNlZCAqLwogICAgICAgICAgICAgcmMgPSAtRU1MSU5LOwotICAgICAgICAgICAgaWYgKCB1bmxp a2VseShuZWVkX2lvbW11KGQpKSApCisgICAgICAgICAgICBpZiAoIHVubGlrZWx5KGhhc19pb21t dV9wdChkKSkgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICByYyA9IC1F WERFVjsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lv bW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCmluZGV4 IGVlYTIyYzNkMGQuLjc1Mjc1MWIxMDMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L3BjaV9hbWRfaW9tbXUuYwpAQCAtMjU2LDcgKzI1Niw3IEBAIHN0YXRpYyB2b2lkIF9faHdkb21f aW5pdCBhbWRfaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgIGlmICggYWxs b2NhdGVfZG9tYWluX3Jlc291cmNlcyhkb21faW9tbXUoZCkpICkKICAgICAgICAgQlVHKCk7CiAK LSAgICBpZiAoICFpb21tdV9wYXNzdGhyb3VnaCAmJiAhbmVlZF9pb21tdShkKSApCisgICAgaWYg KCAhaW9tbXVfcGFzc3Rocm91Z2ggJiYgIWlvbW11X2RvbTBfc3RyaWN0ICkKICAgICB7CiAgICAg ICAgIGludCByYyA9IDA7CiAKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Rl dmljZV90cmVlLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jCmluZGV4 IDQyMWYwMDM0MzguLmI2ZWFhZTcyODMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2RldmljZV90cmVlLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvZGV2aWNlX3Ry ZWUuYwpAQCAtNDAsMTcgKzQwLDE2IEBAIGludCBpb21tdV9hc3NpZ25fZHRfZGV2aWNlKHN0cnVj dCBkb21haW4gKmQsIHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqZGV2KQogICAgIGlmICggIWxpc3Rf ZW1wdHkoJmRldi0+ZG9tYWluX2xpc3QpICkKICAgICAgICAgZ290byBmYWlsOwogCi0gICAgaWYg KCBuZWVkX2lvbW11KGQpIDw9IDAgKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogVGhl IGh3ZG9tIGlzIGZvcmNlZCB0byB1c2UgSU9NTVUgZm9yIHByb3RlY3RpbmcgYXNzaWduZWQKLSAg ICAgICAgICogZGV2aWNlLiBUaGVyZWZvcmUgdGhlIElPTU1VIGRhdGEgaXMgYWxyZWFkeSBzZXQg dXAuCi0gICAgICAgICAqLwotICAgICAgICBBU1NFUlQoIWlzX2hhcmR3YXJlX2RvbWFpbihkKSk7 Ci0gICAgICAgIHJjID0gaW9tbXVfY29uc3RydWN0KGQpOwotICAgICAgICBpZiAoIHJjICkKLSAg ICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICB9CisgICAgLyoKKyAgICAgKiBUaGUgaHdkb20gaXMg Zm9yY2VkIHRvIHVzZSBJT01NVSBmb3IgcHJvdGVjdGluZyBhc3NpZ25lZAorICAgICAqIGRldmlj ZS4gVGhlcmVmb3JlIHRoZSBJT01NVSBkYXRhIGlzIGFscmVhZHkgc2V0IHVwLgorICAgICAqLwor ICAgIEFTU0VSVCghaXNfaGFyZHdhcmVfZG9tYWluKGQpIHx8CisgICAgICAgICAgIGhkLT5zdGF0 dXMgPT0gSU9NTVVfU1RBVFVTX2luaXRpYWxpemVkKTsKKworICAgIHJjID0gaW9tbXVfY29uc3Ry dWN0KGQpOworICAgIGlmICggcmMgKQorICAgICAgICBnb3RvIGZhaWw7CiAKICAgICAvKiBUaGUg ZmxhZyBmaWVsZCBkb2Vzbid0IG1hdHRlciB0byBEVCBkZXZpY2UuICovCiAgICAgcmMgPSBoZC0+ cGxhdGZvcm1fb3BzLT5hc3NpZ25fZGV2aWNlKGQsIDAsIGR0X3RvX2RldihkZXYpLCAwKTsKZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IGMyNjJhNTk4NzcuLjg0OGQ2YzdkNjkgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvaW9tbXUuYwpAQCAtMTcxLDcgKzE3MSw3IEBAIHN0YXRpYyB2b2lkIF9faHdkb21f aW5pdCBjaGVja19od2RvbV9yZXFzKHN0cnVjdCBkb21haW4gKmQpCiAKIHZvaWQgX19od2RvbV9p bml0IGlvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICBjb25zdCBzdHJ1 Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKKyAgICBzdHJ1Y3QgZG9tYWluX2lv bW11ICpoZCA9IGRvbV9pb21tdShkKTsKIAogICAgIGNoZWNrX2h3ZG9tX3JlcXMoZCk7CiAKQEAg LTE3OSw4ICsxNzksMTAgQEAgdm9pZCBfX2h3ZG9tX2luaXQgaW9tbXVfaHdkb21faW5pdChzdHJ1 Y3QgZG9tYWluICpkKQogICAgICAgICByZXR1cm47CiAKICAgICByZWdpc3Rlcl9rZXloYW5kbGVy KCdvJywgJmlvbW11X2R1bXBfcDJtX3RhYmxlLCAiZHVtcCBpb21tdSBwMm0gdGFibGUiLCAwKTsK LSAgICBkLT5uZWVkX2lvbW11ID0gISFpb21tdV9kb20wX3N0cmljdDsKLSAgICBpZiAoIG5lZWRf aW9tbXUoZCkgJiYgIWlvbW11X3VzZV9oYXBfcHQoZCkgKQorCisgICAgaGQtPnN0YXR1cyA9IElP TU1VX1NUQVRVU19pbml0aWFsaXppbmc7CisgICAgaGQtPm5lZWRfc3luYyA9ICEhaW9tbXVfZG9t MF9zdHJpY3QgJiYgIWlvbW11X3VzZV9oYXBfcHQoZCk7CisgICAgaWYgKCBuZWVkX2lvbW11X3B0 X3N5bmMoZCkgKQogICAgIHsKICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKICAgICAg ICAgdW5zaWduZWQgaW50IGkgPSAwOwpAQCAtMjEzLDM1ICsyMTUsNTEgQEAgdm9pZCBfX2h3ZG9t X2luaXQgaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgIH0KIAogICAgIGhk LT5wbGF0Zm9ybV9vcHMtPmh3ZG9tX2luaXQoZCk7CisKKyAgICBoZC0+c3RhdHVzID0gSU9NTVVf U1RBVFVTX2luaXRpYWxpemVkOwogfQogCiB2b2lkIGlvbW11X3RlYXJkb3duKHN0cnVjdCBkb21h aW4gKmQpCiB7Ci0gICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUo ZCk7CisgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CiAKLSAgICBk LT5uZWVkX2lvbW11ID0gMDsKKyAgICBoZC0+c3RhdHVzID0gSU9NTVVfU1RBVFVTX2Rpc2FibGVk OwogICAgIGhkLT5wbGF0Zm9ybV9vcHMtPnRlYXJkb3duKGQpOwogICAgIHRhc2tsZXRfc2NoZWR1 bGUoJmlvbW11X3B0X2NsZWFudXBfdGFza2xldCk7CiB9CiAKIGludCBpb21tdV9jb25zdHJ1Y3Qo c3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICBpZiAoIG5lZWRfaW9tbXUoZCkgPiAwICkKKyAgICBz dHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKKworICAgIGlmICggaGQtPnN0 YXR1cyA9PSBJT01NVV9TVEFUVVNfaW5pdGlhbGl6ZWQgKQogICAgICAgICByZXR1cm4gMDsKIAot ICAgIGlmICggIWlvbW11X3VzZV9oYXBfcHQoZCkgKQorICAgIGlmICggIWlvbW11X3VzZV9oYXBf cHQoZCkgJiYgaGQtPnN0YXR1cyA8IElPTU1VX1NUQVRVU19pbml0aWFsaXplZCApCiAgICAgewog ICAgICAgICBpbnQgcmM7CiAKKyAgICAgICAgaGQtPnN0YXR1cyA9IElPTU1VX1NUQVRVU19pbml0 aWFsaXppbmc7CisgICAgICAgIGhkLT5uZWVkX3N5bmMgPSB0cnVlOworCiAgICAgICAgIHJjID0g YXJjaF9pb21tdV9wb3B1bGF0ZV9wYWdlX3RhYmxlKGQpOwogICAgICAgICBpZiAoIHJjICkKKyAg ICAgICAgeworICAgICAgICAgICAgaWYgKCByYyAhPSAtRVJFU1RBUlQgKQorICAgICAgICAgICAg eworICAgICAgICAgICAgICAgIGhkLT5uZWVkX3N5bmMgPSBmYWxzZTsKKyAgICAgICAgICAgICAg ICBoZC0+c3RhdHVzID0gSU9NTVVfU1RBVFVTX2Rpc2FibGVkOworICAgICAgICAgICAgfQorCiAg ICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgIH0KICAgICB9CiAKLSAgICBkLT5uZWVkX2lv bW11ID0gMTsKKyAgICBoZC0+c3RhdHVzID0gSU9NTVVfU1RBVFVTX2luaXRpYWxpemVkOworCiAg ICAgLyoKICAgICAgKiBUaGVyZSBtYXkgYmUgZGlydHkgY2FjaGUgbGluZXMgd2hlbiBhIGRldmlj ZSBpcyBhc3NpZ25lZAotICAgICAqIGFuZCBiZWZvcmUgbmVlZF9pb21tdShkKSBiZWNvbWluZyB0 cnVlLCB0aGlzIHdpbGwgY2F1c2UKKyAgICAgKiBhbmQgYmVmb3JlIGhhc19pb21tdV9wdChkKSBi ZWNvbWluZyB0cnVlLCB0aGlzIHdpbGwgY2F1c2UKICAgICAgKiBtZW1vcnlfdHlwZV9jaGFuZ2Vk IGxvc2UgZWZmZWN0IGlmIG1lbW9yeSB0eXBlIGNoYW5nZXMuCiAgICAgICogQ2FsbCBtZW1vcnlf dHlwZV9jaGFuZ2VkIGhlcmUgdG8gYW1lbmQgdGhpcy4KICAgICAgKi8KQEAgLTUwMCw3ICs1MTgs OCBAQCBzdGF0aWMgdm9pZCBpb21tdV9kdW1wX3AybV90YWJsZSh1bnNpZ25lZCBjaGFyIGtleSkK ICAgICBvcHMgPSBpb21tdV9nZXRfb3BzKCk7CiAgICAgZm9yX2VhY2hfZG9tYWluKGQpCiAgICAg ewotICAgICAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSB8fCBuZWVkX2lvbW11KGQpIDw9 IDAgKQorICAgICAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSB8fAorICAgICAgICAgICAg IGRvbV9pb21tdShkKS0+c3RhdHVzIDwgSU9NTVVfU1RBVFVTX2luaXRpYWxpemVkICkKICAgICAg ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmICggaW9tbXVfdXNlX2hhcF9wdChkKSApCmRp ZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3BjaS5jCmluZGV4IGQxYWRmZmEwOTUuLmUxMGYwYmJhMWMgMTAwNjQ0Ci0tLSBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3BjaS5jCkBAIC0xNDE2LDcgKzE0MTYsNyBAQCBzdGF0aWMgaW50IGFzc2lnbl9kZXZpY2Uo c3RydWN0IGRvbWFpbiAqZCwgdTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbiwgdTMyIGZsYWcpCiAK ICAgICAvKiBQcmV2ZW50IGRldmljZSBhc3NpZ24gaWYgbWVtIHBhZ2luZyBvciBtZW0gc2hhcmlu ZyBoYXZlIGJlZW4gCiAgICAgICogZW5hYmxlZCBmb3IgdGhpcyBkb21haW4gKi8KLSAgICBpZiAo IHVubGlrZWx5KCFuZWVkX2lvbW11KGQpICYmCisgICAgaWYgKCB1bmxpa2VseSghaGFzX2lvbW11 X3B0KGQpICYmCiAgICAgICAgICAgICAoZC0+YXJjaC5odm1fZG9tYWluLm1lbV9zaGFyaW5nX2Vu YWJsZWQgfHwKICAgICAgICAgICAgICB2bV9ldmVudF9jaGVja19yaW5nKGQtPnZtX2V2ZW50X3Bh Z2luZykgfHwKICAgICAgICAgICAgICBwMm1fZ2V0X2hvc3RwMm0oZCktPmdsb2JhbF9sb2dkaXJ0 eSkpICkKQEAgLTE0NjAsNyArMTQ2MCw3IEBAIHN0YXRpYyBpbnQgYXNzaWduX2RldmljZShzdHJ1 Y3QgZG9tYWluICpkLCB1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLCB1MzIgZmxhZykKICAgICB9 CiAKICBkb25lOgotICAgIGlmICggIWhhc19hcmNoX3BkZXZzKGQpICYmIG5lZWRfaW9tbXUoZCkg KQorICAgIGlmICggIWhhc19hcmNoX3BkZXZzKGQpICYmIGhhc19pb21tdV9wdChkKSApCiAgICAg ICAgIGlvbW11X3RlYXJkb3duKGQpOwogICAgIHBjaWRldnNfdW5sb2NrKCk7CiAKQEAgLTE1MTAs NyArMTUxMCw3IEBAIGludCBkZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgdTE2IHNl ZywgdTggYnVzLCB1OCBkZXZmbikKIAogICAgIHBkZXYtPmZhdWx0LmNvdW50ID0gMDsKIAotICAg IGlmICggIWhhc19hcmNoX3BkZXZzKGQpICYmIG5lZWRfaW9tbXUoZCkgKQorICAgIGlmICggIWhh c19hcmNoX3BkZXZzKGQpICYmIGhhc19pb21tdV9wdChkKSApCiAgICAgICAgIGlvbW11X3RlYXJk b3duKGQpOwogCiAgICAgcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3g4Ni9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMK aW5kZXggMDk1NzM3MjJiZC4uMWIzZDJhMmM4ZiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gveDg2L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lv bW11LmMKQEAgLTQ1LDggKzQ1LDYgQEAgaW50IGFyY2hfaW9tbXVfcG9wdWxhdGVfcGFnZV90YWJs ZShzdHJ1Y3QgZG9tYWluICpkKQogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CiAgICAgaW50 IHJjID0gMCwgbiA9IDA7CiAKLSAgICBkLT5uZWVkX2lvbW11ID0gLTE7Ci0KICAgICB0aGlzX2Nw dShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9IDE7CiAgICAgc3Bpbl9sb2NrKCZkLT5wYWdlX2Fs bG9jX2xvY2spOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2dyYW50X3RhYmxl LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dyYW50X3RhYmxlLmgKaW5kZXggNTExM2I5MTU2Yy4u OTFjNzY4MWJlOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJsZS5o CisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaApAQCAtOTIsNyArOTIsNyBA QCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBnbnR0YWJfZG9tMF9tYXgodm9pZCkKICAgICBn Zm5feCgoKGkpID49IG5yX3N0YXR1c19mcmFtZXModCkpID8gSU5WQUxJRF9HRk4gOiAodCktPmFy Y2guc3RhdHVzX2dmbltpXSkKIAogI2RlZmluZSBnbnR0YWJfbmVlZF9pb21tdV9tYXBwaW5nKGQp ICAgICAgICAgICAgICAgICAgICBcCi0gICAgKGlzX2RvbWFpbl9kaXJlY3RfbWFwcGVkKGQpICYm IG5lZWRfaW9tbXUoZCkpCisgICAgKGlzX2RvbWFpbl9kaXJlY3RfbWFwcGVkKGQpICYmIG5lZWRf aW9tbXVfcHRfc3luYyhkKSkKIAogI2VuZGlmIC8qIF9fQVNNX0dSQU5UX1RBQkxFX0hfXyAqLwog LyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vaW9tbXUuaCBiL3hlbi9pbmNsdWRl L2FzbS1hcm0vaW9tbXUuaAppbmRleCA4ZDE1MDZjNmY3Li5mNmRmMzJmODYwIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20tYXJtL2lvbW11LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9p b21tdS5oCkBAIC0yMSw3ICsyMSw3IEBAIHN0cnVjdCBhcmNoX2lvbW11CiB9OwogCiAvKiBBbHdh eXMgc2hhcmUgUDJNIFRhYmxlIGJldHdlZW4gdGhlIENQVSBhbmQgdGhlIElPTU1VICovCi0jZGVm aW5lIGlvbW11X3VzZV9oYXBfcHQoZCkgKG5lZWRfaW9tbXUoZCkpCisjZGVmaW5lIGlvbW11X3Vz ZV9oYXBfcHQoZCkgKGhhc19pb21tdV9wdChkKSkKIAogY29uc3Qgc3RydWN0IGlvbW11X29wcyAq aW9tbXVfZ2V0X29wcyh2b2lkKTsKIHZvaWQgX19pbml0IGlvbW11X3NldF9vcHMoY29uc3Qgc3Ry dWN0IGlvbW11X29wcyAqb3BzKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Jh bnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaAppbmRleCA3NmVj NWRkYTJjLi4yNmI1ZjdiYzUzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50 X3RhYmxlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oCkBAIC05OSw2 ICs5OSw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnbnR0YWJfY2xlYXJfZmxhZyh1bnNpZ25lZCBp bnQgbnIsIHVpbnQxNl90ICpzdCkKICNkZWZpbmUgZ250dGFiX3JlbGVhc2VfaG9zdF9tYXBwaW5n cyhkb21haW4pICggcGFnaW5nX21vZGVfZXh0ZXJuYWwoZG9tYWluKSApCiAKICNkZWZpbmUgZ250 dGFiX25lZWRfaW9tbXVfbWFwcGluZyhkKSAgICAgICAgICAgICAgICBcCi0gICAgKCFwYWdpbmdf bW9kZV90cmFuc2xhdGUoZCkgJiYgbmVlZF9pb21tdShkKSkKKyAgICAoIXBhZ2luZ19tb2RlX3Ry YW5zbGF0ZShkKSAmJiBuZWVkX2lvbW11X3B0X3N5bmMoZCkpCiAKICNlbmRpZiAvKiBfX0FTTV9H UkFOVF9UQUJMRV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUu aCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaAppbmRleCAwZTdkNjZiZTU0Li4yOTE4NTk1 MjBhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9pb21tdS5oCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50 IGlvbW11X2hhcmR3YXJlX3NldHVwKHZvaWQpCiAKIC8qIEFyZSB3ZSB1c2luZyB0aGUgZG9tYWlu IFAyTSB0YWJsZSBhcyBpdHMgSU9NTVUgcGFnZXRhYmxlPyAqLwogI2RlZmluZSBpb21tdV91c2Vf aGFwX3B0KGQpIFwKLSAgICAoaGFwX2VuYWJsZWQoZCkgJiYgbmVlZF9pb21tdShkKSAmJiBpb21t dV9oYXBfcHRfc2hhcmUpCisgICAgKGhhcF9lbmFibGVkKGQpICYmIGhhc19pb21tdV9wdChkKSAm JiBpb21tdV9oYXBfcHRfc2hhcmUpCiAKIHZvaWQgaW9tbXVfdXBkYXRlX2lyZV9mcm9tX2FwaWMo dW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSk7 CiB1bnNpZ25lZCBpbnQgaW9tbXVfcmVhZF9hcGljX2Zyb21faXJlKHVuc2lnbmVkIGludCBhcGlj LCB1bnNpZ25lZCBpbnQgcmVnKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5o IGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5kZXggY2RkNzVhY2Y2Mi4uMzcwNTJlMDMzZiAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKKysrIGIveGVuL2luY2x1ZGUveGVu L2lvbW11LmgKQEAgLTExMSw2ICsxMTEsMTMgQEAgZW51bSBpb21tdV9mZWF0dXJlCiAKIGJvb2xf dCBpb21tdV9oYXNfZmVhdHVyZShzdHJ1Y3QgZG9tYWluICpkLCBlbnVtIGlvbW11X2ZlYXR1cmUg ZmVhdHVyZSk7CiAKK2VudW0gaW9tbXVfc3RhdHVzCit7CisgICAgSU9NTVVfU1RBVFVTX2Rpc2Fi bGVkLAorICAgIElPTU1VX1NUQVRVU19pbml0aWFsaXppbmcsCisgICAgSU9NTVVfU1RBVFVTX2lu aXRpYWxpemVkCit9OworCiBzdHJ1Y3QgZG9tYWluX2lvbW11IHsKICAgICBzdHJ1Y3QgYXJjaF9p b21tdSBhcmNoOwogCkBAIC0xMzAsNiArMTM3LDE2IEBAIHN0cnVjdCBkb21haW5faW9tbXUgewog ICAgICAqIG11c3Qgbm90IGJlIG1vZGlmaWVkIGFmdGVyIGluaXRpYWxpemF0aW9uLgogICAgICAq LwogICAgIHN0cnVjdCByYW5nZXNldCAqcmVzZXJ2ZWRfcmFuZ2VzOworCisgICAgLyogU3RhdHVz IG9mIGd1ZXN0IElPTU1VIG1hcHBpbmdzICovCisgICAgZW51bSBpb21tdV9zdGF0dXMgc3RhdHVz OworCisgICAgLyoKKyAgICAgKiBEb2VzIHRoZSBndWVzdCByZXFpcmUgbWFwcGluZ3MgdG8gYmUg c3luY2hvbml6ZWQsIHRvIG1haW50YWluCisgICAgICogdGhlIGRlZmF1bHQgYmZuID09IHBmbiBt YXAuIChTZWUgY29tbWVudCBvbiBiZm4gYXQgdGhlIHRvcCBvZgorICAgICAqIGluY2x1ZGUveGVu L21tLmgpLgorICAgICAqLworICAgIGJvb2wgbmVlZF9zeW5jOwogfTsKIAogI2RlZmluZSBkb21f aW9tbXUoZCkgICAgICAgICAgICAgICgmKGQpLT5pb21tdSkKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3hlbi9zY2hlZC5oIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKaW5kZXggMzgxZWI2ZGM4 Yy4uMzliYmQ4OWYxZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIv eGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKQEAgLTM3MSw5ICszNzEsNiBAQCBzdHJ1Y3QgZG9tYWlu CiAKICNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICiAgICAgc3RydWN0IGRvbWFpbl9pb21t dSBpb21tdTsKLQotICAgIC8qIERvZXMgdGhpcyBndWVzdCBuZWVkIGlvbW11IG1hcHBpbmdzICgt MSBtZWFuaW5nICJiZWluZyBzZXQgdXAiKT8gKi8KLSAgICBzOCAgICAgICAgICAgICAgIG5lZWRf aW9tbXU7CiAjZW5kaWYKICAgICAvKiBpcyBub2RlLWFmZmluaXR5IGF1dG9tYXRpY2FsbHkgY29t cHV0ZWQ/ICovCiAgICAgYm9vbCAgICAgICAgICAgICBhdXRvX25vZGVfYWZmaW5pdHk7CkBAIC04 ODksOSArODg2LDExIEBAIHZvaWQgd2F0Y2hkb2dfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFp biAqZCk7CiAjZGVmaW5lIGlzX3Bpbm5lZF92Y3B1KHYpICgodiktPmRvbWFpbi0+aXNfcGlubmVk IHx8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfd2VpZ2h0KCh2KS0+Y3B1 X2hhcmRfYWZmaW5pdHkpID09IDEpCiAjaWZkZWYgQ09ORklHX0hBU19QQVNTVEhST1VHSAotI2Rl ZmluZSBuZWVkX2lvbW11KGQpICAgICgoZCktPm5lZWRfaW9tbXUpCisjZGVmaW5lIGhhc19pb21t dV9wdChkKSAoZG9tX2lvbW11KGQpLT5zdGF0dXMgIT0gSU9NTVVfU1RBVFVTX2Rpc2FibGVkKQor I2RlZmluZSBuZWVkX2lvbW11X3B0X3N5bmMoZCkgKGRvbV9pb21tdShkKS0+bmVlZF9zeW5jKQog I2Vsc2UKLSNkZWZpbmUgbmVlZF9pb21tdShkKSAgICAoMCkKKyNkZWZpbmUgaGFzX2lvbW11X3B0 KGQpICgwKQorI2RlZmluZSBuZWVkX2lvbW11X3B0X3N5bmMoZCkgKDApCiAjZW5kaWYKIAogc3Rh dGljIGlubGluZSBib29sIGlzX3ZjcHVfb25saW5lKGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQotLSAK Mi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==