From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 11/15] mm / iommu: split need_iommu() into has_iommu_pt() and sync_iommu_pt() Date: Wed, 1 Aug 2018 14:40:24 +0100 Message-ID: <20180801134028.1654-12-paul.durrant@citrix.com> References: <20180801134028.1654-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 1fkreh-0002Ef-Vq for xen-devel@lists.xenproject.org; Wed, 01 Aug 2018 13:59:12 +0000 In-Reply-To: <20180801134028.1654-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 VGhlIG5hbWUgJ25lZWRfaW9tbXUnIGlzIGEgbGl0dGxlIGNvbmZ1c2luZyBhcyBpdCBzdWdnZXN0 cyBhIGRvbWFpbiBuZWVkcwp0byB1c2UgdGhlIElPTU1VIGJ1dCBzb21ldGhpbmcgbWlnaHQgbm90 IGJlIHNldCB1cCB5ZXQsIHdoZW4gaW4gZmFjdCBpdApkb2Vzbid0IGJlY29tZSB0cnVlIHVudGls IElPTU1VIG1hcHBpbmdzIGZvciB0aGUgZG9tYWluIGhhdmUgYmVlbiBjcmVhdGVkLgoKVHdvIGRp ZmZlcmVudCBtZWFuaW5ncyBhcmUgYWxzbyBpbmZlcnJlZCBmcm9tIGl0IGluIHZhcmlvdXMgcGxh Y2VzIGluIHRoZQpjb2RlOgoKLSBTb21lIGNhbGxlcnMgd2FudCB0byB0ZXN0IHdoZXRoZXIgYSBk b21haW4gaGFzIElPTU1VIG1hcHBpbmdzCi0gU29tZSBjYWxsZXJzIHdhbnQgdG8gdGVzdCB3aGV0 aGVyIHRoZXkgbmVlZCB0byBzeW5jaHJvbml6ZSB0aGUgZG9tYWluJ3MKICBQMk0gYW5kIElPTU1V IG1hcHBpbmdzCgpUaGlzIHBhdGNoIHRoZXJlZm9yZSBjcmVhdGVzIHR3byBuZXcgYm9vbGVhbiBm bGFncywgJ2hhc19pb21tdV9wdCcgYW5kCidzeW5jX2lvbW11X3B0JyB0byBjb252ZXkgdGhvc2Ug bWVhbmluZ3Mgc2VwYXJhdGVseSBhbmQgY3JlYXRlcyB0aGUKY29ycmVzcG9uZGluZyBtYWNyb3Mu IEFsbCBjYWxsZXJzIG9mIG5lZWRfaW9tbXUoKSBhcmUgdGhlbiBtb2RpZmllZCB0bwp1c2UgdGhl IG1hY3JvIGFwcHJvcHJpYXRlIHRvIHdoYXQgdGhleSBhcmUgdHJ5aW5nIHRvIHRlc3QuCgpOT1RF OiBUaGUgdGVzdCBvZiBuZWVkX2lvbW11KGQpIGluIHRoZSBBTUQgSU9NTVUgaW5pdGlhbGl6YXRp b24gY29kZSBoYXMKICAgICAgYmVlbiByZXBsYWNlZCB3aXRoIGEgdGVzdCBvZiBpb21tdV9kb20w X3N0cmljdCBzaW5jZSB0aGlzIG1vcmUKICAgICAgYWNjdXJhdGVseSByZWZsZWN0cyB0aGUgbWVh bmluZyBvZiB0aGUgdGVzdCBhbmQgYnJpbmdzIGl0IGludG8KICAgICAgbGluZSB3aXRoIGEgc2lt aWxhciB0ZXN0IGluIHRoZSBJbnRlbCBWVC1kIGNvZGUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1 cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IFN0ZWZhbm8gU3RhYmVsbGlu aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs QGFybS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpD YzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFuIEph Y2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNs ZS5jb20+CkNjOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ2M6IFdlaSBMaXUgPHdlaS5saXUy QGNpdHJpeC5jb20+CkNjOiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzQHRrbGVuZ3llbC5jb20+CkNj OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBKdW4gTmFr YWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFu QGludGVsLmNvbT4KQ2M6IFJhenZhbiBDb2pvY2FydSA8cmNvam9jYXJ1QGJpdGRlZmVuZGVyLmNv bT4KQ2M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0QGFtZC5j b20+CkNjOiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1kLmNvbT4KCnY0OgogLSBOZXcgaW4g djQuCi0tLQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiB4ZW4vYXJjaC94ODYvaHZtL210cnIuYyAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysr LS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQog eGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4v YXJjaC94ODYvbW0vcDJtLWVwdC5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNo L3g4Ni9tbS9wMm0tcHQuYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2 L21tL3AybS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tCiB4ZW4vYXJjaC94 ODYvbW0vcGFnaW5nLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni94 ODZfNjQvbW0uYyAgICAgICAgICAgICAgICAgICAgfCAgMyArKy0KIHhlbi9jb21tb24vbWVtb3J5 LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIHhlbi9jb21tb24vdm1fZXZl bnQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyB8ICAyICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9k ZXZpY2VfdHJlZS5jICAgICAgIHwgIDIgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11 LmMgICAgICAgICAgICAgfCAxNyArKysrKysrKysrLS0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvcGNpLmMgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogeGVuL2luY2x1ZGUvYXNtLWFy bS9ncmFudF90YWJsZS5oICAgICAgICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2lv bW11LmggICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRf dGFibGUuaCAgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oICAg ICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgICAgICAg ICAgICAgICAgIHwgMTIgKysrKysrKystLS0tCiAyMCBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRp b25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vcDJtLmMg Yi94ZW4vYXJjaC9hcm0vcDJtLmMKaW5kZXggZWIzOTg2MWI3My4uYzk3MmI3MmJhZiAxMDA2NDQK LS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCisrKyBiL3hlbi9hcmNoL2FybS9wMm0uYwpAQCAtOTUx LDcgKzk1MSw3IEBAIHN0YXRpYyBpbnQgX19wMm1fc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWlu ICpwMm0sCiAgICAgaWYgKCBscGFlX3ZhbGlkKG9yaWdfcHRlKSAmJiBlbnRyeS0+cDJtLmJhc2Ug IT0gb3JpZ19wdGUucDJtLmJhc2UgKQogICAgICAgICBwMm1fZnJlZV9lbnRyeShwMm0sIG9yaWdf cHRlLCBsZXZlbCk7CiAKLSAgICBpZiAoIG5lZWRfaW9tbXUocDJtLT5kb21haW4pICYmCisgICAg aWYgKCBzeW5jX2lvbW11X3B0KHAybS0+ZG9tYWluKSAmJgogICAgICAgICAgKGxwYWVfdmFsaWQo b3JpZ19wdGUpIHx8IGxwYWVfdmFsaWQoKmVudHJ5KSkgKQogICAgIHsKICAgICAgICAgcmMgPSBp b21tdV9pb3RsYl9mbHVzaChwMm0tPmRvbWFpbiwgX2JmbihnZm5feChzZ2ZuKSksCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHZtL210cnIuYyBiL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jCmlu ZGV4IGM1MDJkZGE2OTMuLjYxMTMxZDRiNjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v bXRyci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jCkBAIC04MjQsNyArODI0LDggQEAg SFZNX1JFR0lTVEVSX1NBVkVfUkVTVE9SRShNVFJSLCBodm1fc2F2ZV9tdHJyX21zciwgaHZtX2xv YWRfbXRycl9tc3IsCiAKIHZvaWQgbWVtb3J5X3R5cGVfY2hhbmdlZChzdHJ1Y3QgZG9tYWluICpk KQogewotICAgIGlmICggbmVlZF9pb21tdShkKSAmJiBkLT52Y3B1ICYmIGQtPnZjcHVbMF0gKQor ICAgIGlmICggKHN5bmNfaW9tbXVfcHQoZCkgfHwgaW9tbXVfdXNlX2hhcF9wdChkKSkgJiYKKyAg ICAgICAgIGQtPnZjcHUgJiYgZC0+dmNwdVswXSApCiAgICAgewogICAgICAgICBwMm1fbWVtb3J5 X3R5cGVfY2hhbmdlZChkKTsKICAgICAgICAgZmx1c2hfYWxsKEZMVVNIX0NBQ0hFKTsKQEAgLTg3 Miw3ICs4NzMsNyBAQCBpbnQgZXB0ZV9nZXRfZW50cnlfZW10KHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgICAgIHJldHVybiBNVFJSX1RZUEVfVU5D QUNIQUJMRTsKICAgICB9CiAKLSAgICBpZiAoICFuZWVkX2lvbW11KGQpICYmICFjYWNoZV9mbHVz aF9wZXJtaXR0ZWQoZCkgKQorICAgIGlmICggIWhhc19pb21tdV9wdChkKSAmJiAhY2FjaGVfZmx1 c2hfcGVybWl0dGVkKGQpICkKICAgICB7CiAgICAgICAgICppcGF0ID0gMTsKICAgICAgICAgcmV0 dXJuIE1UUlJfVFlQRV9XUkJBQ0s7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hl bi9hcmNoL3g4Ni9tbS5jCmluZGV4IDA4ODc4NTc0ZjMuLjQ2MjM5ODA5NmYgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0yNzI3LDcgKzI3 MjcsNyBAQCBzdGF0aWMgaW50IF9nZXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2Us IHVuc2lnbmVkIGxvbmcgdHlwZSwKICAgICB7CiAgICAgICAgIC8qIFNwZWNpYWwgcGFnZXMgc2hv dWxkIG5vdCBiZSBhY2Nlc3NpYmxlIGZyb20gZGV2aWNlcy4gKi8KICAgICAgICAgc3RydWN0IGRv bWFpbiAqZCA9IHBhZ2VfZ2V0X293bmVyKHBhZ2UpOwotICAgICAgICBpZiAoIGQgJiYgaXNfcHZf ZG9tYWluKGQpICYmIHVubGlrZWx5KG5lZWRfaW9tbXUoZCkpICkKKyAgICAgICAgaWYgKCBkICYm IGlzX3B2X2RvbWFpbihkKSAmJiB1bmxpa2VseShzeW5jX2lvbW11X3B0KGQpKSApCiAgICAgICAg IHsKICAgICAgICAgICAgIG1mbl90IG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOwogCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1f c2hhcmluZy5jCmluZGV4IGZhZDhhOWRmMTMuLmM1NDg0NTI3NWYgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmlu Zy5jCkBAIC0xNjEwLDcgKzE2MTAsNyBAQCBpbnQgbWVtX3NoYXJpbmdfZG9tY3RsKHN0cnVjdCBk b21haW4gKmQsIHN0cnVjdCB4ZW5fZG9tY3RsX21lbV9zaGFyaW5nX29wICptZWMpCiAgICAgICAg IGNhc2UgWEVOX0RPTUNUTF9NRU1fU0hBUklOR19DT05UUk9MOgogICAgICAgICB7CiAgICAgICAg ICAgICByYyA9IDA7Ci0gICAgICAgICAgICBpZiAoIHVubGlrZWx5KG5lZWRfaW9tbXUoZCkgJiYg bWVjLT51LmVuYWJsZSkgKQorICAgICAgICAgICAgaWYgKCB1bmxpa2VseShoYXNfaW9tbXVfcHQo ZCkgJiYgbWVjLT51LmVuYWJsZSkgKQogICAgICAgICAgICAgICAgIHJjID0gLUVYREVWOwogICAg ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi5tZW1fc2hh cmluZ19lbmFibGVkID0gbWVjLT51LmVuYWJsZTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9t bS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCmluZGV4IGU1MmRiYjYyMDMu LmQ5MDQyNGE5YTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKKysrIGIv eGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtODY4LDcgKzg2OCw3IEBAIG91dDoKICAgICB7 CiAgICAgICAgIGlmICggaW9tbXVfdXNlX2hhcF9wdChkKSApCiAgICAgICAgICAgICByYyA9IGlv bW11X3B0ZV9mbHVzaChkLCBnZm4sICZlcHRfZW50cnktPmVwdGUsIG9yZGVyLCB2dGRfcHRlX3By ZXNlbnQpOwotICAgICAgICBlbHNlIGlmICggbmVlZF9pb21tdShkKSApCisgICAgICAgIGVsc2Ug aWYgKCBzeW5jX2lvbW11X3B0KGQpICkKICAgICAgICAgewogICAgICAgICAgICAgYmZuX3QgYmZu ID0gX2JmbihnZm4pOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgYi94 ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKaW5kZXggOTI1NTE5NDA3MC4uZTBhZTZiZjIwZiAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9w Mm0tcHQuYwpAQCAtNjg3LDcgKzY4Nyw3IEBAIHAybV9wdF9zZXRfZW50cnkoc3RydWN0IHAybV9k b21haW4gKnAybSwgZ2ZuX3QgZ2ZuXywgbWZuX3QgbWZuLAogICAgICAgICAgICAgaWYgKCBpb21t dV9vbGRfZmxhZ3MgKQogICAgICAgICAgICAgICAgIGFtZF9pb21tdV9mbHVzaF9wYWdlcyhwMm0t PmRvbWFpbiwgZ2ZuLCBwYWdlX29yZGVyKTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmICgg bmVlZF9pb21tdShwMm0tPmRvbWFpbikgKQorICAgICAgICBlbHNlIGlmICggc3luY19pb21tdV9w dChwMm0tPmRvbWFpbikgKQogICAgICAgICB7CiAgICAgICAgICAgICBiZm5fdCBiZm4gPSBfYmZu KGdmbik7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4 Ni9tbS9wMm0uYwppbmRleCA3NDY1NDg5MDc0Li40ZmZjZTM3YzQ1IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC03MTMsNyAr NzEzLDcgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVk IGxvbmcgZ2ZuX2wsIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIHsKICAgICAgICAgaW50IHJjID0g MDsKIAotICAgICAgICBpZiAoIG5lZWRfaW9tbXUocDJtLT5kb21haW4pICkKKyAgICAgICAgaWYg KCBzeW5jX2lvbW11X3B0KHAybS0+ZG9tYWluKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGJm bl90IGJmbiA9IF9iZm4obWZuKTsKIApAQCAtNzc3LDcgKzc3Nyw3IEBAIGd1ZXN0X3BoeXNtYXBf YWRkX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgbWZuX3QgbWZuLAogCiAgICAg aWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKICAgICB7Ci0gICAgICAgIGlmICggbmVl ZF9pb21tdShkKSAmJiB0ID09IHAybV9yYW1fcncgKQorICAgICAgICBpZiAoIHN5bmNfaW9tbXVf cHQoZCkgJiYgdCA9PSBwMm1fcmFtX3J3ICkKICAgICAgICAgewogICAgICAgICAgICAgYmZuX3Qg YmZuID0gX2JmbihtZm5feChtZm4pKTsKIApAQCAtMTE2NSw3ICsxMTY1LDcgQEAgaW50IHNldF9p ZGVudGl0eV9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm5fbCwK IAogICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCiAgICAgewotICAgICAgICBp ZiAoICFuZWVkX2lvbW11KGQpICkKKyAgICAgICAgaWYgKCAhc3luY19pb21tdV9wdChkKSApCiAg ICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICByZXQgPSBpb21tdV9tYXBfcGFnZShkLCBf YmZuKGdmbl9sKSwgX21mbihnZm5fbCksCkBAIC0xMjYxLDcgKzEyNjEsNyBAQCBpbnQgY2xlYXJf aWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wp CiAKICAgICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQogICAgIHsKLSAgICAgICAg aWYgKCAhbmVlZF9pb21tdShkKSApCisgICAgICAgIGlmICggIXN5bmNfaW9tbXVfcHQoZCkgKQog ICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShk LCBfYmZuKGdmbl9sKSk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMgYi94 ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMKaW5kZXggMmIwNDQ1ZmZlOS4uZDU0ZjZkZDQ5NiAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9w YWdpbmcuYwpAQCAtMjEzLDcgKzIxMyw3IEBAIGludCBwYWdpbmdfbG9nX2RpcnR5X2VuYWJsZShz dHJ1Y3QgZG9tYWluICpkLCBib29sX3QgbG9nX2dsb2JhbCkKIHsKICAgICBpbnQgcmV0OwogCi0g ICAgaWYgKCBuZWVkX2lvbW11KGQpICYmIGxvZ19nbG9iYWwgKQorICAgIGlmICggaGFzX2lvbW11 X3B0KGQpICYmIGxvZ19nbG9iYWwgKQogICAgIHsKICAgICAgICAgLyoKICAgICAgICAgICogUmVm dXNlIHRvIHR1cm4gb24gZ2xvYmFsIGxvZy1kaXJ0eSBtb2RlCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYveDg2XzY0L21tLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKaW5kZXggY2M1OGU0 Y2VmNC4uMjljMzA1MGE3ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCisr KyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwpAQCAtMTQyNiw3ICsxNDI2LDggQEAgaW50IG1l bW9yeV9hZGQodW5zaWduZWQgbG9uZyBzcGZuLCB1bnNpZ25lZCBsb25nIGVwZm4sIHVuc2lnbmVk IGludCBweG0pCiAgICAgaWYgKCByZXQgKQogICAgICAgICBnb3RvIGRlc3Ryb3lfbTJwOwogCi0g ICAgaWYgKCBpb21tdV9lbmFibGVkICYmICFpb21tdV9wYXNzdGhyb3VnaCAmJiAhbmVlZF9pb21t dShoYXJkd2FyZV9kb21haW4pICkKKyAgICBpZiAoIGlvbW11X2VuYWJsZWQgJiYgIWlvbW11X3Bh c3N0aHJvdWdoICYmCisgICAgICAgICAhc3luY19pb21tdV9wdChoYXJkd2FyZV9kb21haW4pICkK ICAgICB7CiAgICAgICAgIGZvciAoIGkgPSBzcGZuOyBpIDwgZXBmbjsgaSsrICkKICAgICAgICAg ICAgIGlmICggaW9tbXVfbWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBfYmZuKGkpLCBfbWZuKGkp LApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21tb24vbWVtb3J5LmMK aW5kZXggMGEzNDY3N2NjMy4uYWQ3YWEwOWE1YyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1v cnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC04MDQsOCArODA0LDggQEAgaW50IHhl bm1lbV9hZGRfdG9fcGh5c21hcChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2FkZF90b19w aHlzbWFwICp4YXRwLAogICAgIHhhdHAtPnNpemUgLT0gc3RhcnQ7CiAKICNpZmRlZiBDT05GSUdf SEFTX1BBU1NUSFJPVUdICi0gICAgaWYgKCBuZWVkX2lvbW11KGQpICkKLSAgICAgICAgdGhpc19j cHUoaW9tbXVfZG9udF9mbHVzaF9pb3RsYikgPSAxOworICAgIGlmICggc3luY19pb21tdV9wdChk KSB8fCBpb21tdV91c2VfaGFwX3B0KGQpICkKKyAgICAgICB0aGlzX2NwdShpb21tdV9kb250X2Zs dXNoX2lvdGxiKSA9IDE7CiAjZW5kaWYKIAogICAgIHdoaWxlICggeGF0cC0+c2l6ZSA+IGRvbmUg KQpAQCAtODI3LDcgKzgyNyw3IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXAoc3RydWN0IGRv bWFpbiAqZCwgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcCAqeGF0cCwKICAgICB9CiAKICNpZmRl ZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICi0gICAgaWYgKCBuZWVkX2lvbW11KGQpICkKKyAgICBp ZiAoIHN5bmNfaW9tbXVfcHQoZCkgfHwgaW9tbXVfdXNlX2hhcF9wdChkKSApCiAgICAgewogICAg ICAgICBpbnQgcmV0OwogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3ZtX2V2ZW50LmMgYi94ZW4v Y29tbW9uL3ZtX2V2ZW50LmMKaW5kZXggMTQ0YWI4MWM4Ni4uZWMzZGZkMWRhZSAxMDA2NDQKLS0t IGEveGVuL2NvbW1vbi92bV9ldmVudC5jCisrKyBiL3hlbi9jb21tb24vdm1fZXZlbnQuYwpAQCAt NjQ0LDcgKzY0NCw3IEBAIGludCB2bV9ldmVudF9kb21jdGwoc3RydWN0IGRvbWFpbiAqZCwgc3Ry dWN0IHhlbl9kb21jdGxfdm1fZXZlbnRfb3AgKnZlYywKIAogICAgICAgICAgICAgLyogTm8gcGFn aW5nIGlmIGlvbW11IGlzIHVzZWQgKi8KICAgICAgICAgICAgIHJjID0gLUVNTElOSzsKLSAgICAg ICAgICAgIGlmICggdW5saWtlbHkobmVlZF9pb21tdShkKSkgKQorICAgICAgICAgICAgaWYgKCB1 bmxpa2VseShoYXNfaW9tbXVfcHQoZCkpICkKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAg ICAgICAgICAgcmMgPSAtRVhERVY7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvcGNpX2FtZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9h bWRfaW9tbXUuYwppbmRleCBlZWEyMmMzZDBkLi43NTI3NTFiMTAzIDEwMDY0NAotLS0gYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdGF0 aWMgdm9pZCBfX2h3ZG9tX2luaXQgYW1kX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAq ZCkKICAgICBpZiAoIGFsbG9jYXRlX2RvbWFpbl9yZXNvdXJjZXMoZG9tX2lvbW11KGQpKSApCiAg ICAgICAgIEJVRygpOwogCi0gICAgaWYgKCAhaW9tbXVfcGFzc3Rocm91Z2ggJiYgIW5lZWRfaW9t bXUoZCkgKQorICAgIGlmICggIWlvbW11X3Bhc3N0aHJvdWdoICYmICFpb21tdV9kb20wX3N0cmlj dCApCiAgICAgewogICAgICAgICBpbnQgcmMgPSAwOwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvZGV2 aWNlX3RyZWUuYwppbmRleCA2NzFjOGRiMWQwLi4xYWFlMWExZjkzIDEwMDY0NAotLS0gYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2RldmljZV90cmVlLmMKQEAgLTQ0LDcgKzQ0LDcgQEAgaW50IGlvbW11X2Fzc2lnbl9k dF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYpCiAg ICAgICogVGhlIGh3ZG9tIGlzIGZvcmNlZCB0byB1c2UgSU9NTVUgZm9yIHByb3RlY3RpbmcgYXNz aWduZWQKICAgICAgKiBkZXZpY2UuIFRoZXJlZm9yZSB0aGUgSU9NTVUgZGF0YSBpcyBhbHJlYWR5 IHNldCB1cC4KICAgICAgKi8KLSAgICBBU1NFUlQoIWlzX2hhcmR3YXJlX2RvbWFpbihkKSB8fCBu ZWVkX2lvbW11KGQpKTsKKyAgICBBU1NFUlQoIWlzX2hhcmR3YXJlX2RvbWFpbihkKSB8fCBoYXNf aW9tbXVfcHQoZCkpOwogICAgIHJjID0gaW9tbXVfY29uc3RydWN0KGQpOwogICAgIGlmICggcmMg KQogICAgICAgICBnb3RvIGZhaWw7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCBhZDhmZmNm Y2IyLi5jYWYzZDEyNWFlIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21t dS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTE3OSw4ICsxNzks OSBAQCB2b2lkIF9faHdkb21faW5pdCBpb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4gKmQp CiAgICAgICAgIHJldHVybjsKIAogICAgIHJlZ2lzdGVyX2tleWhhbmRsZXIoJ28nLCAmaW9tbXVf ZHVtcF9wMm1fdGFibGUsICJkdW1wIGlvbW11IHAybSB0YWJsZSIsIDApOwotICAgIGQtPm5lZWRf aW9tbXUgPSAhIWlvbW11X2RvbTBfc3RyaWN0OwotICAgIGlmICggbmVlZF9pb21tdShkKSAmJiAh aW9tbXVfdXNlX2hhcF9wdChkKSApCisgICAgZC0+aGFzX2lvbW11X3B0ID0gdHJ1ZTsKKyAgICBk LT5zeW5jX2lvbW11X3B0ID0gISFpb21tdV9kb20wX3N0cmljdCAmJiAhaW9tbXVfdXNlX2hhcF9w dChkKTsKKyAgICBpZiAoIHN5bmNfaW9tbXVfcHQoZCkgKQogICAgIHsKICAgICAgICAgc3RydWN0 IHBhZ2VfaW5mbyAqcGFnZTsKICAgICAgICAgdW5zaWduZWQgaW50IGkgPSAwOwpAQCAtMjE5LDE0 ICsyMjAsMTQgQEAgdm9pZCBpb21tdV90ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKQogewogICAg IGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwogCi0gICAgZC0+ bmVlZF9pb21tdSA9IGZhbHNlOworICAgIGQtPmhhc19pb21tdV9wdCA9IGZhbHNlOwogICAgIGhk LT5wbGF0Zm9ybV9vcHMtPnRlYXJkb3duKGQpOwogICAgIHRhc2tsZXRfc2NoZWR1bGUoJmlvbW11 X3B0X2NsZWFudXBfdGFza2xldCk7CiB9CiAKIGludCBpb21tdV9jb25zdHJ1Y3Qoc3RydWN0IGRv bWFpbiAqZCkKIHsKLSAgICBpZiAoIG5lZWRfaW9tbXUoZCkgKQorICAgIGlmICggaGFzX2lvbW11 X3B0KGQpICkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoICFpb21tdV91c2VfaGFwX3B0 KGQpICkKQEAgLTIzNiwxMiArMjM3LDE0IEBAIGludCBpb21tdV9jb25zdHJ1Y3Qoc3RydWN0IGRv bWFpbiAqZCkKICAgICAgICAgcmMgPSBhcmNoX2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUoZCk7 CiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAgcmV0dXJuIHJjOworCisgICAgICAgIGQt PnN5bmNfaW9tbXVfcHQgPSB0cnVlOwogICAgIH0KIAotICAgIGQtPm5lZWRfaW9tbXUgPSB0cnVl OworICAgIGQtPmhhc19pb21tdV9wdCA9IHRydWU7CiAgICAgLyoKICAgICAgKiBUaGVyZSBtYXkg YmUgZGlydHkgY2FjaGUgbGluZXMgd2hlbiBhIGRldmljZSBpcyBhc3NpZ25lZAotICAgICAqIGFu ZCBiZWZvcmUgbmVlZF9pb21tdShkKSBiZWNvbWluZyB0cnVlLCB0aGlzIHdpbGwgY2F1c2UKKyAg ICAgKiBhbmQgYmVmb3JlIGhhc19pb21tdV9wdChkKSBiZWNvbWluZyB0cnVlLCB0aGlzIHdpbGwg Y2F1c2UKICAgICAgKiBtZW1vcnlfdHlwZV9jaGFuZ2VkIGxvc2UgZWZmZWN0IGlmIG1lbW9yeSB0 eXBlIGNoYW5nZXMuCiAgICAgICogQ2FsbCBtZW1vcnlfdHlwZV9jaGFuZ2VkIGhlcmUgdG8gYW1l bmQgdGhpcy4KICAgICAgKi8KQEAgLTUwMCw3ICs1MDMsNyBAQCBzdGF0aWMgdm9pZCBpb21tdV9k dW1wX3AybV90YWJsZSh1bnNpZ25lZCBjaGFyIGtleSkKICAgICBvcHMgPSBpb21tdV9nZXRfb3Bz KCk7CiAgICAgZm9yX2VhY2hfZG9tYWluKGQpCiAgICAgewotICAgICAgICBpZiAoIGlzX2hhcmR3 YXJlX2RvbWFpbihkKSB8fCAhbmVlZF9pb21tdShkKSApCisgICAgICAgIGlmICggaXNfaGFyZHdh cmVfZG9tYWluKGQpIHx8ICFoYXNfaW9tbXVfcHQoZCkgKQogICAgICAgICAgICAgY29udGludWU7 CiAKICAgICAgICAgaWYgKCBpb21tdV91c2VfaGFwX3B0KGQpICkKZGlmZiAtLWdpdCBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMK aW5kZXggYzQ4OTBhNDI5NS4uM2QzYWQ0ODRlNyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKQEAgLTE0 MTYsNyArMTQxNiw3IEBAIHN0YXRpYyBpbnQgYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluICpk LCB1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLCB1MzIgZmxhZykKIAogICAgIC8qIFByZXZlbnQg ZGV2aWNlIGFzc2lnbiBpZiBtZW0gcGFnaW5nIG9yIG1lbSBzaGFyaW5nIGhhdmUgYmVlbiAKICAg ICAgKiBlbmFibGVkIGZvciB0aGlzIGRvbWFpbiAqLwotICAgIGlmICggdW5saWtlbHkoIW5lZWRf aW9tbXUoZCkgJiYKKyAgICBpZiAoIHVubGlrZWx5KCFoYXNfaW9tbXVfcHQoZCkgJiYKICAgICAg ICAgICAgIChkLT5hcmNoLmh2bV9kb21haW4ubWVtX3NoYXJpbmdfZW5hYmxlZCB8fAogICAgICAg ICAgICAgIHZtX2V2ZW50X2NoZWNrX3JpbmcoZC0+dm1fZXZlbnRfcGFnaW5nKSB8fAogICAgICAg ICAgICAgIHAybV9nZXRfaG9zdHAybShkKS0+Z2xvYmFsX2xvZ2RpcnR5KSkgKQpAQCAtMTQ2MCw3 ICsxNDYwLDcgQEAgc3RhdGljIGludCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHUx NiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sIHUzMiBmbGFnKQogICAgIH0KIAogIGRvbmU6Ci0gICAg aWYgKCAhaGFzX2FyY2hfcGRldnMoZCkgJiYgbmVlZF9pb21tdShkKSApCisgICAgaWYgKCAhaGFz X2FyY2hfcGRldnMoZCkgJiYgaGFzX2lvbW11X3B0KGQpICkKICAgICAgICAgaW9tbXVfdGVhcmRv d24oZCk7CiAgICAgcGNpZGV2c191bmxvY2soKTsKIApAQCAtMTUxMCw3ICsxNTEwLDcgQEAgaW50 IGRlYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCB1MTYgc2VnLCB1OCBidXMsIHU4IGRl dmZuKQogCiAgICAgcGRldi0+ZmF1bHQuY291bnQgPSAwOwogCi0gICAgaWYgKCAhaGFzX2FyY2hf cGRldnMoZCkgJiYgbmVlZF9pb21tdShkKSApCisgICAgaWYgKCAhaGFzX2FyY2hfcGRldnMoZCkg JiYgaGFzX2lvbW11X3B0KGQpICkKICAgICAgICAgaW9tbXVfdGVhcmRvd24oZCk7CiAKICAgICBy ZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJsZS5o IGIveGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJsZS5oCmluZGV4IDljMmM4MTU1MjYuLmYw MWM1ZTM2YzkgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaAor KysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dyYW50X3RhYmxlLmgKQEAgLTg2LDcgKzg2LDcgQEAg c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZ250dGFiX2RvbTBfbWF4KHZvaWQpCiAgICAgZ2Zu X3goKChpKSA+PSBucl9zdGF0dXNfZnJhbWVzKHQpKSA/IElOVkFMSURfR0ZOIDogKHQpLT5hcmNo LnN0YXR1c19nZm5baV0pCiAKICNkZWZpbmUgZ250dGFiX25lZWRfaW9tbXVfbWFwcGluZyhkKSAg ICAgICAgICAgICAgICAgICAgXAotICAgIChpc19kb21haW5fZGlyZWN0X21hcHBlZChkKSAmJiBu ZWVkX2lvbW11KGQpKQorICAgIChpc19kb21haW5fZGlyZWN0X21hcHBlZChkKSAmJiBzeW5jX2lv bW11X3B0KGQpKQogCiAjZW5kaWYgLyogX19BU01fR1JBTlRfVEFCTEVfSF9fICovCiAvKgpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9pb21tdS5oIGIveGVuL2luY2x1ZGUvYXNtLWFy bS9pb21tdS5oCmluZGV4IDhkMTUwNmM2ZjcuLmY2ZGYzMmY4NjAgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS1hcm0vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2lvbW11LmgK QEAgLTIxLDcgKzIxLDcgQEAgc3RydWN0IGFyY2hfaW9tbXUKIH07CiAKIC8qIEFsd2F5cyBzaGFy ZSBQMk0gVGFibGUgYmV0d2VlbiB0aGUgQ1BVIGFuZCB0aGUgSU9NTVUgKi8KLSNkZWZpbmUgaW9t bXVfdXNlX2hhcF9wdChkKSAobmVlZF9pb21tdShkKSkKKyNkZWZpbmUgaW9tbXVfdXNlX2hhcF9w dChkKSAoaGFzX2lvbW11X3B0KGQpKQogCiBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzICppb21tdV9n ZXRfb3BzKHZvaWQpOwogdm9pZCBfX2luaXQgaW9tbXVfc2V0X29wcyhjb25zdCBzdHJ1Y3QgaW9t bXVfb3BzICpvcHMpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJs ZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oCmluZGV4IDc2ZWM1ZGRhMmMu LjgwZTY0Yjc0YjcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUu aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50X3RhYmxlLmgKQEAgLTk5LDYgKzk5LDYg QEAgc3RhdGljIGlubGluZSB2b2lkIGdudHRhYl9jbGVhcl9mbGFnKHVuc2lnbmVkIGludCBuciwg dWludDE2X3QgKnN0KQogI2RlZmluZSBnbnR0YWJfcmVsZWFzZV9ob3N0X21hcHBpbmdzKGRvbWFp bikgKCBwYWdpbmdfbW9kZV9leHRlcm5hbChkb21haW4pICkKIAogI2RlZmluZSBnbnR0YWJfbmVl ZF9pb21tdV9tYXBwaW5nKGQpICAgICAgICAgICAgICAgIFwKLSAgICAoIXBhZ2luZ19tb2RlX3Ry YW5zbGF0ZShkKSAmJiBuZWVkX2lvbW11KGQpKQorICAgICghcGFnaW5nX21vZGVfdHJhbnNsYXRl KGQpICYmIHN5bmNfaW9tbXVfcHQoZCkpCiAKICNlbmRpZiAvKiBfX0FTTV9HUkFOVF9UQUJMRV9I X18gKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaCBiL3hlbi9pbmNs dWRlL2FzbS14ODYvaW9tbXUuaAppbmRleCA5MjE2YzA5MTYyLi45NjM4MjlhNWEyIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9pb21tdS5oCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlvbW11X2hhcmR3 YXJlX3NldHVwKHZvaWQpCiAKIC8qIEFyZSB3ZSB1c2luZyB0aGUgZG9tYWluIFAyTSB0YWJsZSBh cyBpdHMgSU9NTVUgcGFnZXRhYmxlPyAqLwogI2RlZmluZSBpb21tdV91c2VfaGFwX3B0KGQpIFwK LSAgICAoaGFwX2VuYWJsZWQoZCkgJiYgbmVlZF9pb21tdShkKSAmJiBpb21tdV9oYXBfcHRfc2hh cmUpCisgICAgKGhhcF9lbmFibGVkKGQpICYmIGhhc19pb21tdV9wdChkKSAmJiBpb21tdV9oYXBf cHRfc2hhcmUpCiAKIHZvaWQgaW9tbXVfdXBkYXRlX2lyZV9mcm9tX2FwaWModW5zaWduZWQgaW50 IGFwaWMsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSk7CiB1bnNpZ25lZCBp bnQgaW9tbXVfcmVhZF9hcGljX2Zyb21faXJlKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBp bnQgcmVnKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIveGVuL2luY2x1 ZGUveGVuL3NjaGVkLmgKaW5kZXggNWI5ODIwZTRlMS4uNjZkYTZkNmIyMyAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKQEAg LTM3Miw4ICszNzIsMTAgQEAgc3RydWN0IGRvbWFpbgogI2lmZGVmIENPTkZJR19IQVNfUEFTU1RI Uk9VR0gKICAgICBzdHJ1Y3QgZG9tYWluX2lvbW11IGlvbW11OwogCi0gICAgLyogRG9lcyB0aGlz IGd1ZXN0IG5lZWQgaW9tbXUgbWFwcGluZ3M/ICovCi0gICAgYm9vbCAgICAgICAgICAgICBuZWVk X2lvbW11OworICAgIC8qIERvZXMgdGhpcyBndWVzdCBoYXZlIGlvbW11IG1hcHBpbmdzPyAqLwor ICAgIGJvb2wgICAgICAgICAgICAgaGFzX2lvbW11X3B0OworICAgIC8qIERvZXMgdGhpcyBndWVz dCBuZWVkIHN5bmNocm9uaXphdGlvbiBvZiBpb21tdSBtYXBwaW5ncz8gKi8KKyAgICBib29sICAg ICAgICAgICAgIHN5bmNfaW9tbXVfcHQ7CiAjZW5kaWYKICAgICAvKiBpcyBub2RlLWFmZmluaXR5 IGF1dG9tYXRpY2FsbHkgY29tcHV0ZWQ/ICovCiAgICAgYm9vbCAgICAgICAgICAgICBhdXRvX25v ZGVfYWZmaW5pdHk7CkBAIC04OTQsOSArODk2LDExIEBAIHZvaWQgd2F0Y2hkb2dfZG9tYWluX2Rl c3Ryb3koc3RydWN0IGRvbWFpbiAqZCk7CiAjZGVmaW5lIGlzX3Bpbm5lZF92Y3B1KHYpICgodikt PmRvbWFpbi0+aXNfcGlubmVkIHx8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdW1h c2tfd2VpZ2h0KCh2KS0+Y3B1X2hhcmRfYWZmaW5pdHkpID09IDEpCiAjaWZkZWYgQ09ORklHX0hB U19QQVNTVEhST1VHSAotI2RlZmluZSBuZWVkX2lvbW11KGQpICAgICgoZCktPm5lZWRfaW9tbXUp CisjZGVmaW5lIGhhc19pb21tdV9wdChkKSAoKGQpLT5oYXNfaW9tbXVfcHQpCisjZGVmaW5lIHN5 bmNfaW9tbXVfcHQoZCkgKChkKS0+c3luY19pb21tdV9wdCkKICNlbHNlCi0jZGVmaW5lIG5lZWRf aW9tbXUoZCkgICAgKDApCisjZGVmaW5lIGhhc19pb21tdV9wdChkKSAoMCkKKyNkZWZpbmUgc3lu Y19pb21tdV9wdChkKSAoMCkKICNlbmRpZgogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNfdmNwdV9v bmxpbmUoY29uc3Qgc3RydWN0IHZjcHUgKnYpCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs