From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v5 for-4.9 4/4] dmop: Add xendevicemodel_modified_memory_bulk() Date: Fri, 7 Apr 2017 20:35:53 +0100 Message-ID: <1491593753-1181-4-git-send-email-andrew.cooper3@citrix.com> References: <1491593753-1181-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1491593753-1181-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Wei Liu , Jennifer Herbert , Ian Jackson , Julien Grall , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org RnJvbTogSmVubmlmZXIgSGVyYmVydCA8SmVubmlmZXIuSGVyYmVydEBjaXRyaXguY29tPgoKVGhp cyBuZXcgbGliIGRldmljZW1vZGVsIGNhbGwgYWxsb3dzIG11bHRpcGxlIGV4dGVudHMgb2YgcGFn ZXMgdG8gYmUKbWFya2VkIGFzIG1vZGlmaWVkIGluIGEgc2luZ2xlIGNhbGwuICBUaGlzIGlzIHNv bWV0aGluZyBuZWVkZWQgZm9yIGEKdXNlY2FzZSBJJ20gd29ya2luZyBvbi4KClRoZSB4ZW4gc2lk ZSBvZiB0aGUgbW9kaWZpZWRfbWVtb3J5IGNhbGwgaGFzIGJlZW4gbW9kaWZpZWQgdG8gYWNjZXB0 CmFuIGFycmF5IG9mIGV4dGVudHMuICBUaGUgZGV2aWNlbW9kbGUgbGlicmFyeSBlaXRoZXIgcHJv dmlkZXMgYW4gYXJyYXkKb2YgbGVuZ3RoIDEsIHRvIHN1cHBvcnQgdGhlIG9yaWdpbmFsIGxpYnJh cnkgZnVuY3Rpb24sIG9yIGEgc2Vjb25kCmZ1bmN0aW9uIGFsbG93cyBhbiBhcnJheSB0byBiZSBw cm92aWRlZC4KClNpZ25lZC1vZmYtYnk6IEplbm5pZmVyIEhlcmJlcnQgPEplbm5pZmVyLkhlcmJl cnRAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkND OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpDQzogSWFuIEphY2tzb24g PElhbi5KYWNrc29uQGV1LmNpdHJpeC5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXgu Y29tPgpDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KLS0tCiB0b29scy9s aWJzL2RldmljZW1vZGVsL2NvcmUuYyAgICAgICAgICAgICAgICAgICB8ICAzMCArKysrLS0KIHRv b2xzL2xpYnMvZGV2aWNlbW9kZWwvaW5jbHVkZS94ZW5kZXZpY2Vtb2RlbC5oIHwgIDE5ICsrKy0K IHhlbi9hcmNoL3g4Ni9odm0vZG0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTE3ICsr KysrKysrKysrKysrKystLS0tLS0tLQogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oICAg ICAgICAgICAgICAgICAgfCAgMTkgKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9u cygrKSwgNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9kZXZpY2Vtb2Rl bC9jb3JlLmMgYi90b29scy9saWJzL2RldmljZW1vZGVsL2NvcmUuYwppbmRleCBmZjA5ODE5Li40 Y2IwMjNmIDEwMDY0NAotLS0gYS90b29scy9saWJzL2RldmljZW1vZGVsL2NvcmUuYworKysgYi90 b29scy9saWJzL2RldmljZW1vZGVsL2NvcmUuYwpAQCAtNDU5LDIyICs0NTksMzYgQEAgaW50IHhl bmRldmljZW1vZGVsX3RyYWNrX2RpcnR5X3ZyYW0oCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRpcnR5X2JpdG1hcCwgKHNpemVfdCkobnIgKyA3KSAvIDgpOwogfQogCi1pbnQgeGVuZGV2 aWNlbW9kZWxfbW9kaWZpZWRfbWVtb3J5KAotICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1v ZCwgZG9taWRfdCBkb21pZCwgdWludDY0X3QgZmlyc3RfcGZuLAotICAgIHVpbnQzMl90IG5yKQor aW50IHhlbmRldmljZW1vZGVsX21vZGlmaWVkX21lbW9yeV9idWxrKAorICAgIHhlbmRldmljZW1v ZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX21v ZGlmaWVkX21lbW9yeV9leHRlbnQgKmV4dGVudHMsIHVpbnQzMl90IG5yKQogewogICAgIHN0cnVj dCB4ZW5fZG1fb3Agb3A7Ci0gICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgKmRh dGE7CisgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgKmhlYWRlcjsKKyAgICBz aXplX3QgZXh0ZW50c19zaXplID0gbnIgKiBzaXplb2Yoc3RydWN0IHhlbl9kbV9vcF9tb2RpZmll ZF9tZW1vcnlfZXh0ZW50KTsKIAogICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwogCiAg ICAgb3Aub3AgPSBYRU5fRE1PUF9tb2RpZmllZF9tZW1vcnk7Ci0gICAgZGF0YSA9ICZvcC51Lm1v ZGlmaWVkX21lbW9yeTsKKyAgICBoZWFkZXIgPSAmb3AudS5tb2RpZmllZF9tZW1vcnk7CiAKLSAg ICBkYXRhLT5maXJzdF9wZm4gPSBmaXJzdF9wZm47Ci0gICAgZGF0YS0+bnIgPSBucjsKKyAgICBo ZWFkZXItPm5yX2V4dGVudHMgPSBucjsKKyAgICBoZWFkZXItPnBmbnNfcHJvY2Vzc2VkID0gMDsK IAotICAgIHJldHVybiB4ZW5kZXZpY2Vtb2RlbF9vcChkbW9kLCBkb21pZCwgMSwgJm9wLCBzaXpl b2Yob3ApKTsKKyAgICByZXR1cm4geGVuZGV2aWNlbW9kZWxfb3AoZG1vZCwgZG9taWQsIDIsICZv cCwgc2l6ZW9mKG9wKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW50cywgZXh0 ZW50c19zaXplKTsKK30KKworaW50IHhlbmRldmljZW1vZGVsX21vZGlmaWVkX21lbW9yeSgKKyAg ICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsIHVpbnQ2NF90IGZp cnN0X3BmbiwKKyAgICB1aW50MzJfdCBucikKK3sKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX21vZGlm aWVkX21lbW9yeV9leHRlbnQgZXh0ZW50OworCisgICAgZXh0ZW50LmZpcnN0X3BmbiA9IGZpcnN0 X3BmbjsKKyAgICBleHRlbnQubnIgPSBucjsKKworICAgIHJldHVybiB4ZW5kZXZpY2Vtb2RlbF9t b2RpZmllZF9tZW1vcnlfYnVsayhkbW9kLCBkb21pZCwgJmV4dGVudCwgMSk7CiB9CiAKIGludCB4 ZW5kZXZpY2Vtb2RlbF9zZXRfbWVtX3R5cGUoCmRpZmYgLS1naXQgYS90b29scy9saWJzL2Rldmlj ZW1vZGVsL2luY2x1ZGUveGVuZGV2aWNlbW9kZWwuaCBiL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwv aW5jbHVkZS94ZW5kZXZpY2Vtb2RlbC5oCmluZGV4IDFkYTIxNmYuLjU4MGZhZDIgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvaW5jbHVkZS94ZW5kZXZpY2Vtb2RlbC5oCisrKyBi L3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvaW5jbHVkZS94ZW5kZXZpY2Vtb2RlbC5oCkBAIC0yNTQs OCArMjU0LDggQEAgaW50IHhlbmRldmljZW1vZGVsX3RyYWNrX2RpcnR5X3ZyYW0oCiAgICAgdWlu dDMyX3QgbnIsIHVuc2lnbmVkIGxvbmcgKmRpcnR5X2JpdG1hcCk7CiAKIC8qKgotICogVGhpcyBm dW5jdGlvbiBub3RpZmllcyB0aGUgaHlwZXJ2aXNvciB0aGF0IGEgc2V0IG9mIGRvbWFpbiBwYWdl cwotICogaGF2ZSBiZWVuIG1vZGlmaWVkLgorICogVGhpcyBmdW5jdGlvbiBub3RpZmllcyB0aGUg aHlwZXJ2aXNvciB0aGF0IGEgc2V0IG9mIGNvbnRpZ3VvdXMKKyAqIGRvbWFpbiBwYWdlcyBoYXZl IGJlZW4gbW9kaWZpZWQuCiAgKgogICogQHBhcm0gZG1vZCBhIGhhbmRsZSB0byBhbiBvcGVuIGRl dmljZW1vZGVsIGludGVyZmFjZS4KICAqIEBwYXJtIGRvbWlkIHRoZSBkb21haW4gaWQgdG8gYmUg c2VydmljZWQKQEAgLTI2OCw2ICsyNjgsMjEgQEAgaW50IHhlbmRldmljZW1vZGVsX21vZGlmaWVk X21lbW9yeSgKICAgICB1aW50MzJfdCBucik7CiAKIC8qKgorICogVGhpcyBmdW5jdGlvbiBub3Rp ZmllcyB0aGUgaHlwZXJ2aXNvciB0aGF0IGEgc2V0IG9mIGRpc2NvbnRpZ3VvdXMKKyAqIGRvbWFp biBwYWdlcyBoYXZlIGJlZW4gbW9kaWZpZWQuCisgKgorICogQHBhcm0gZG1vZCBhIGhhbmRsZSB0 byBhbiBvcGVuIGRldmljZW1vZGVsIGludGVyZmFjZS4KKyAqIEBwYXJtIGRvbWlkIHRoZSBkb21h aW4gaWQgdG8gYmUgc2VydmljZWQKKyAqIEBwYXJtIGV4dGVudHMgYW4gYXJyYXkgb2YgZXh0ZW50 IHN0cnVjdHMsIHdoaWNoIGVhY2ggaG9sZAorICAgICAgICAgICAgICAgICBhIHN0YXJ0X3BmbiBh bmQgbnIgKG51bWJlciBvZiBwZm5zKS4KKyAqIEBwYXJtIG5yIHRoZSBudW1iZXIgb2YgZXh0ZW50 cyBpbiB0aGUgYXJyYXkKKyAqIEByZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSBvbiBmYWlsdXJlLgor ICovCitpbnQgeGVuZGV2aWNlbW9kZWxfbW9kaWZpZWRfbWVtb3J5X2J1bGsoCisgICAgeGVuZGV2 aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLAorICAgIHN0cnVjdCB4ZW5fZG1f b3BfbW9kaWZpZWRfbWVtb3J5X2V4dGVudCBleHRlbnRzW10sIHVpbnQzMl90IG5yKTsKKworLyoq CiAgKiBUaGlzIGZ1bmN0aW9uIG5vdGlmaWVzIHRoZSBoeXBlcnZpc29yIHRoYXQgYSBzZXQgb2Yg ZG9tYWluIHBhZ2VzCiAgKiBhcmUgdG8gYmUgdHJlYXRlZCBpbiBhIHNwZWNpZmljIHdheS4gKFNl ZSB0aGUgZGVmaW5pdGlvbiBvZgogICogaHZtbWVtX3R5cGVfdCkuCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggZDU4NGFiYS4u NzdiMjU4NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9odm0vZG0uYwpAQCAtMTU3LDU2ICsxNTcsMTAyIEBAIHN0YXRpYyBpbnQgc2V0X2lzYV9p cnFfbGV2ZWwoc3RydWN0IGRvbWFpbiAqZCwgdWludDhfdCBpc2FfaXJxLAogfQogCiBzdGF0aWMg aW50IG1vZGlmaWVkX21lbW9yeShzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgKmRhdGEpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1vcF9idWZzICpidWZzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgKmhlYWRlcikK IHsKLSAgICB4ZW5fcGZuX3QgbGFzdF9wZm4gPSBkYXRhLT5maXJzdF9wZm4gKyBkYXRhLT5uciAt IDE7Ci0gICAgdW5zaWduZWQgaW50IGl0ZXIgPSAwOwotICAgIGludCByYyA9IDA7CisjZGVmaW5l IEVYVEVOVFNfQlVGRkVSIDEKIAotICAgIGlmICggKGRhdGEtPmZpcnN0X3BmbiA+IGxhc3RfcGZu KSB8fAotICAgICAgICAgKGxhc3RfcGZuID4gZG9tYWluX2dldF9tYXhpbXVtX2dwZm4oZCkpICkK LSAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgLyogUHJvY2VzcyBtYXhpbXVtIG9mIDI1NiBw Zm5zIGJlZm9yZSBjaGVja2luZyBmb3IgY29udGludWF0aW9uLiAqLworICAgIGNvbnN0IHVuc2ln bmVkIGludCBjb250X2NoZWNrX2ludGVydmFsID0gMHgxMDA7CisgICAgdW5zaWduZWQgaW50ICpy ZW1fZXh0ZW50cyA9ICAmaGVhZGVyLT5ucl9leHRlbnRzOworICAgIHVuc2lnbmVkIGludCBiYXRj aF9yZW1fcGZucyA9IGNvbnRfY2hlY2tfaW50ZXJ2YWw7CisgICAgLyogVXNlZCBmb3IgY29udGlu dWF0aW9uLiAqLworICAgIHVuc2lnbmVkIGludCAqcGZuc19kb25lID0gJmhlYWRlci0+b3BhcXVl OwogCiAgICAgaWYgKCAhcGFnaW5nX21vZGVfbG9nX2RpcnR5KGQpICkKICAgICAgICAgcmV0dXJu IDA7CiAKLSAgICB3aGlsZSAoIGl0ZXIgPCBkYXRhLT5uciApCisgICAgaWYgKCAoYnVmcy0+YnVm W0VYVEVOVFNfQlVGRkVSXS5zaXplIC8KKyAgICAgICAgICBzaXplb2Yoc3RydWN0IHhlbl9kbV9v cF9tb2RpZmllZF9tZW1vcnlfZXh0ZW50KSkgPAorICAgICAgICAgKnJlbV9leHRlbnRzICkKKyAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICB3aGlsZSAoICpyZW1fZXh0ZW50cyA+IDAgKQog ICAgIHsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBwZm4gPSBkYXRhLT5maXJzdF9wZm4gKyBpdGVy OwotICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOworICAgICAgICBzdHJ1Y3QgeGVuX2Rt X29wX21vZGlmaWVkX21lbW9yeV9leHRlbnQgZXh0ZW50OworICAgICAgICB1bnNpZ25lZCBpbnQg YmF0Y2hfbnI7CisgICAgICAgIHhlbl9wZm5fdCBwZm4sIGVuZF9wZm47CisgICAgICAgIGludCBy YzsKKworICAgICAgICByYyA9IGNvcHlfZnJvbV9ndWVzdF9idWZfb2Zmc2V0KAorICAgICAgICAg ICAgYnVmcywgRVhURU5UU19CVUZGRVIsICgqcmVtX2V4dGVudHMgLSAxKSAqIHNpemVvZihleHRl bnQpLCAmZXh0ZW50KTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICByZXR1cm4gLUVG QVVMVDsKKworICAgICAgICBpZiAoIGV4dGVudC5wYWQgKQorICAgICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CisKKyAgICAgICAgZW5kX3BmbiA9IGV4dGVudC5maXJzdF9wZm4gKyBleHRlbnQubnI7 CisKKyAgICAgICAgaWYgKCBlbmRfcGZuIDw9IGV4dGVudC5maXJzdF9wZm4gfHwKKyAgICAgICAg ICAgICBlbmRfcGZuID4gZG9tYWluX2dldF9tYXhpbXVtX2dwZm4oZCkgKQorICAgICAgICAgICAg cmV0dXJuIC1FSU5WQUw7CiAKLSAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIHBm biwgTlVMTCwgUDJNX1VOU0hBUkUpOwotICAgICAgICBpZiAoIHBhZ2UgKQorICAgICAgICBpZiAo ICpwZm5zX2RvbmUgPj0gZXh0ZW50Lm5yICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwor CisgICAgICAgIHBmbiA9IGV4dGVudC5maXJzdF9wZm4gKyAqcGZuc19kb25lOworICAgICAgICBi YXRjaF9uciA9IGV4dGVudC5uciAtICpwZm5zX2RvbmU7CisKKyAgICAgICAgaWYgKCBiYXRjaF9u ciA+IGJhdGNoX3JlbV9wZm5zICkKKyAgICAgICAgeworICAgICAgICAgICAgYmF0Y2hfbnIgPSBi YXRjaF9yZW1fcGZuczsKKyAgICAgICAgICAgICpwZm5zX2RvbmUgKz0gYmF0Y2hfbnI7CisgICAg ICAgICAgICBlbmRfcGZuID0gcGZuICsgYmF0Y2hfbnI7CisgICAgICAgIH0KKyAgICAgICAgZWxz ZQogICAgICAgICB7Ci0gICAgICAgICAgICBtZm5fdCBnbWZuID0gX21mbihwYWdlX3RvX21mbihw YWdlKSk7Ci0KLSAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIGdtZm4pOwotICAgICAg ICAgICAgLyoKLSAgICAgICAgICAgICAqIFRoZXNlIGFyZSBtb3N0IHByb2JhYmx5IG5vdCBwYWdl IHRhYmxlcyBhbnkgbW9yZQotICAgICAgICAgICAgICogZG9uJ3QgdGFrZSBhIGxvbmcgdGltZSBh bmQgZG9uJ3QgZGllIGVpdGhlci4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgc2hfcmVt b3ZlX3NoYWRvd3MoZCwgZ21mbiwgMSwgMCk7Ci0gICAgICAgICAgICBwdXRfcGFnZShwYWdlKTsK KyAgICAgICAgICAgICgqcmVtX2V4dGVudHMpLS07CisgICAgICAgICAgICAqcGZuc19kb25lID0g MDsKICAgICAgICAgfQogCi0gICAgICAgIGl0ZXIrKzsKKyAgICAgICAgYmF0Y2hfcmVtX3BmbnMg LT0gYmF0Y2hfbnI7CisKKyAgICAgICAgZm9yICggOyBwZm4gPCBlbmRfcGZuOyBwZm4rKyApCisg ICAgICAgIHsKKyAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CisKKyAgICAgICAg ICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBwZm4sIE5VTEwsIFAyTV9VTlNIQVJFKTsK KyAgICAgICAgICAgIGlmICggcGFnZSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg bWZuX3QgZ21mbiA9IF9tZm4ocGFnZV90b19tZm4ocGFnZSkpOworCisgICAgICAgICAgICAgICAg cGFnaW5nX21hcmtfZGlydHkoZCwgZ21mbik7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAg ICAgICAgICAgKiBUaGVzZSBhcmUgbW9zdCBwcm9iYWJseSBub3QgcGFnZSB0YWJsZXMgYW55IG1v cmUKKyAgICAgICAgICAgICAgICAgKiBkb24ndCB0YWtlIGEgbG9uZyB0aW1lIGFuZCBkb24ndCBk aWUgZWl0aGVyLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHNoX3JlbW92 ZV9zaGFkb3dzKGQsIGdtZm4sIDEsIDApOworICAgICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2Up OworICAgICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAgICAgLyoKLSAgICAgICAgICogQ2hl Y2sgZm9yIGNvbnRpbnVhdGlvbiBldmVyeSAyNTZ0aCBpdGVyYXRpb24gYW5kIGlmIHRoZQotICAg ICAgICAgKiBpdGVyYXRpb24gaXMgbm90IHRoZSBsYXN0LgorICAgICAgICAgKiBBZnRlciBhIGZ1 bGwgYmF0Y2ggb2YgY29udF9jaGVja19pbnRlcnZhbCBwZm5zCisgICAgICAgICAqIGhhdmUgYmVl biBwcm9jZXNzZWQsIGFuZCB0aGVyZSBhcmUgc3RpbGwgZXh0ZW50cworICAgICAgICAgKiByZW1h aW5pbmcgdG8gcHJvY2VzcywgY2hlY2sgZm9yIGNvbnRpbnVhdGlvbi4KICAgICAgICAgICovCi0g ICAgICAgIGlmICggKGl0ZXIgPCBkYXRhLT5ucikgJiYgKChpdGVyICYgMHhmZikgPT0gMCkgJiYK LSAgICAgICAgICAgICBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKKyAgICAgICAgaWYgKCAo YmF0Y2hfcmVtX3BmbnMgPT0gMCkgJiYgKCpyZW1fZXh0ZW50cyA+IDApICkKICAgICAgICAgewot ICAgICAgICAgICAgZGF0YS0+Zmlyc3RfcGZuICs9IGl0ZXI7Ci0gICAgICAgICAgICBkYXRhLT5u ciAtPSBpdGVyOworICAgICAgICAgICAgaWYgKCBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkK KyAgICAgICAgICAgICAgICByZXR1cm4gLUVSRVNUQVJUOwogCi0gICAgICAgICAgICByYyA9IC1F UkVTVEFSVDsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgYmF0Y2hfcmVtX3BmbnMg PSBjb250X2NoZWNrX2ludGVydmFsOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiAwOwog Ci0gICAgcmV0dXJuIHJjOworI3VuZGVmIEVYVEVOVFNfQlVGRkVSCiB9CiAKIHN0YXRpYyBib29s IGFsbG93X3AybV90eXBlX2NoYW5nZShwMm1fdHlwZV90IG9sZCwgcDJtX3R5cGVfdCBuZXcpCkBA IC01NDMsMTMgKzU4OSw4IEBAIHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21pZCwgc3RydWN0 IGRtb3BfYnVmcyAqYnVmcykKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1v cnkgKmRhdGEgPQogICAgICAgICAgICAgJm9wLnUubW9kaWZpZWRfbWVtb3J5OwogCi0gICAgICAg IGNvbnN0X29wID0gZmFsc2U7Ci0KLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBpZiAo IGRhdGEtPnBhZCApCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICByYyA9IG1vZGlmaWVk X21lbW9yeShkLCBkYXRhKTsKKyAgICAgICAgcmMgPSBtb2RpZmllZF9tZW1vcnkoZCwgYnVmcywg ZGF0YSk7CisgICAgICAgIGNvbnN0X29wID0gIXJjOwogICAgICAgICBicmVhazsKICAgICB9CiAK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRl L3B1YmxpYy9odm0vZG1fb3AuaAppbmRleCA1ZWE3OWVmLi4yMGMyMWI2IDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2 bS9kbV9vcC5oCkBAIC0yMzcsMTMgKzIzNywyNiBAQCBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lf bGlua19yb3V0ZSB7CiAgKiBYRU5fRE1PUF9tb2RpZmllZF9tZW1vcnk6IE5vdGlmeSB0aGF0IGEg c2V0IG9mIHBhZ2VzIHdlcmUgbW9kaWZpZWQgYnkKICAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgYW4gZW11bGF0b3IuCiAgKgotICogTk9URTogSW4gdGhlIGV2ZW50IG9mIGEgY29udGludWF0 aW9uLCB0aGUgQGZpcnN0X3BmbiBpcyBzZXQgdG8gdGhlCi0gKiAgICAgICB2YWx1ZSBvZiB0aGUg cGZuIG9mIHRoZSByZW1haW5pbmcgc2V0IG9mIHBhZ2VzIGFuZCBAbnIgcmVkdWNlZAotICogICAg ICAgdG8gdGhlIHNpemUgb2YgdGhlIHJlbWFpbmluZyBzZXQuCisgKiBETU9QIGJ1ZiAxIGNvbnRh aW5zIGFuIGFycmF5IG9mIHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnlfZXh0ZW50IHdpdGgKKyAq IEBucl9leHRlbnRzIGVudHJpZXMuCisgKgorICogT24gZXJyb3IsIEBucl9leHRlbnRzIHdpbGwg Y29udGFpbiB0aGUgaW5kZXgrMSBvZiB0aGUgZXh0ZW50IHRoYXQKKyAqIGhhZCB0aGUgZXJyb3Iu ICBJdCBpcyBub3QgZGVmaW5lZCBpZiBvciB3aGljaCBwYWdlcyBtYXkgaGF2ZSBiZWVuCisgKiBt YXJrZWQgYXMgZGlydHksIGluIHRoaXMgZXZlbnQuCiAgKi8KICNkZWZpbmUgWEVOX0RNT1BfbW9k aWZpZWRfbWVtb3J5IDExCiAKIHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5IHsKKyAg ICAvKgorICAgICAqIElOIC0gTnVtYmVyIG9mIGV4dGVudHMgdG8gYmUgcHJvY2Vzc2VkCisgICAg ICogT1VUIC1yZXR1cm5zIG4rMSBmb3IgZmFpbGluZyBleHRlbnQKKyAgICAgKi8KKyAgICB1aW50 MzJfdCBucl9leHRlbnRzOworICAgIC8qIElOL09VVCAtIE11c3QgYmUgc2V0IHRvIDAgKi8KKyAg ICB1aW50MzJfdCBvcGFxdWU7Cit9OworCitzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9y eV9leHRlbnQgewogICAgIC8qIElOIC0gbnVtYmVyIG9mIGNvbnRpZ3VvdXMgcGFnZXMgbW9kaWZp ZWQgKi8KICAgICB1aW50MzJfdCBucjsKICAgICB1aW50MzJfdCBwYWQ7Ci0tIAoyLjEuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=