From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH v8 for-4.9 5/5] dmop: Add xendevicemodel_modified_memory_bulk() Date: Fri, 21 Apr 2017 14:05:52 +0000 Message-ID: <1492783552-29472-5-git-send-email-jennifer.herbert@citrix.com> References: <1492783552-29472-1-git-send-email-jennifer.herbert@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1492783552-29472-1-git-send-email-jennifer.herbert@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 , Andrew Cooper , Jennifer Herbert , Julien Grall , Paul Durrant , Jan Beulich , Ian Jackson List-Id: xen-devel@lists.xenproject.org RnJvbTogSmVubmlmZXIgSGVyYmVydCA8SmVubmlmZXIuSGVyYmVydEBjaXRyaXguY29tPgoKVGhp cyBuZXcgbGliIGRldmljZW1vZGVsIGNhbGwgYWxsb3dzIG11bHRpcGxlIGV4dGVudHMgb2YgcGFn ZXMgdG8gYmUKbWFya2VkIGFzIG1vZGlmaWVkIGluIGEgc2luZ2xlIGNhbGwuICBUaGlzIGlzIHNv bWV0aGluZyBuZWVkZWQgZm9yIGEKdXNlY2FzZSBJJ20gd29ya2luZyBvbi4KClRoZSB4ZW4gc2lk ZSBvZiB0aGUgbW9kaWZpZWRfbWVtb3J5IGNhbGwgaGFzIGJlZW4gbW9kaWZpZWQgdG8gYWNjZXB0 CmFuIGFycmF5IG9mIGV4dGVudHMuICBUaGUgZGV2aWNlbW9kZWwgbGlicmFyeSBlaXRoZXIgcHJv dmlkZXMgYW4gYXJyYXkKb2YgbGVuZ3RoIDEsIHRvIHN1cHBvcnQgdGhlIG9yaWdpbmFsIGxpYnJh cnkgZnVuY3Rpb24sIG9yIGEgc2Vjb25kCmZ1bmN0aW9uIGFsbG93cyBhbiBhcnJheSB0byBiZSBw cm92aWRlZC4KClNpZ25lZC1vZmYtYnk6IEplbm5pZmVyIEhlcmJlcnQgPEplbm5pZmVyLkhlcmJl cnRAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+CkFj a2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLQpDQzogUGF1bCBEdXJyYW50 IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KQ0M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w ZXIzQGNpdHJpeC5jb20+CkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBJ YW4gSmFja3NvbiA8SWFuLkphY2tzb25AZXUuY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5s aXUyQGNpdHJpeC5jb20+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoK LS0KTm8gY2hhbmdlCi0tLQogdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMgICAgICAgICAg ICAgICAgICAgfCAgMzAgKysrKy0tCiB0b29scy9saWJzL2RldmljZW1vZGVsL2luY2x1ZGUveGVu ZGV2aWNlbW9kZWwuaCB8ICAxOSArKystCiB4ZW4vYXJjaC94ODYvaHZtL2RtLmMgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDExNyArKysrKysrKysrKysrKysrLS0tLS0tLS0KIHhlbi9pbmNs dWRlL3B1YmxpYy9odm0vZG1fb3AuaCAgICAgICAgICAgICAgICAgIHwgIDE5ICsrKy0KIDQgZmls ZXMgY2hhbmdlZCwgMTM0IGluc2VydGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvY29yZS5jIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2Rl bC9jb3JlLmMKaW5kZXggZmYwOTgxOS4uZDdjNjQ3NiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9k ZXZpY2Vtb2RlbC9jb3JlLmMKKysrIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMKQEAg LTQ1OSwyMiArNDU5LDM2IEBAIGludCB4ZW5kZXZpY2Vtb2RlbF90cmFja19kaXJ0eV92cmFtKAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJ0eV9iaXRtYXAsIChzaXplX3QpKG5yICsg NykgLyA4KTsKIH0KIAotaW50IHhlbmRldmljZW1vZGVsX21vZGlmaWVkX21lbW9yeSgKLSAgICB4 ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsIHVpbnQ2NF90IGZpcnN0 X3BmbiwKLSAgICB1aW50MzJfdCBucikKK2ludCB4ZW5kZXZpY2Vtb2RlbF9tb2RpZmllZF9tZW1v cnlfYnVsaygKKyAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQs CisgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnlfZXh0ZW50ICpleHRlbnRzLCB1 aW50MzJfdCBucikKIHsKICAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOwotICAgIHN0cnVjdCB4ZW5f ZG1fb3BfbW9kaWZpZWRfbWVtb3J5ICpkYXRhOworICAgIHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZp ZWRfbWVtb3J5ICpoZWFkZXI7CisgICAgc2l6ZV90IGV4dGVudHNfc2l6ZSA9IG5yICogc2l6ZW9m KHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5X2V4dGVudCk7CiAKICAgICBtZW1zZXQo Jm9wLCAwLCBzaXplb2Yob3ApKTsKIAogICAgIG9wLm9wID0gWEVOX0RNT1BfbW9kaWZpZWRfbWVt b3J5OwotICAgIGRhdGEgPSAmb3AudS5tb2RpZmllZF9tZW1vcnk7CisgICAgaGVhZGVyID0gJm9w LnUubW9kaWZpZWRfbWVtb3J5OwogCi0gICAgZGF0YS0+Zmlyc3RfcGZuID0gZmlyc3RfcGZuOwot ICAgIGRhdGEtPm5yID0gbnI7CisgICAgaGVhZGVyLT5ucl9leHRlbnRzID0gbnI7CisgICAgaGVh ZGVyLT5vcGFxdWUgPSAwOwogCi0gICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX29wKGRtb2QsIGRv bWlkLCAxLCAmb3AsIHNpemVvZihvcCkpOworICAgIHJldHVybiB4ZW5kZXZpY2Vtb2RlbF9vcChk bW9kLCBkb21pZCwgMiwgJm9wLCBzaXplb2Yob3ApLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBleHRlbnRzLCBleHRlbnRzX3NpemUpOworfQorCitpbnQgeGVuZGV2aWNlbW9kZWxfbW9k aWZpZWRfbWVtb3J5KAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBk b21pZCwgdWludDY0X3QgZmlyc3RfcGZuLAorICAgIHVpbnQzMl90IG5yKQoreworICAgIHN0cnVj dCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5X2V4dGVudCBleHRlbnQ7CisKKyAgICBleHRlbnQu Zmlyc3RfcGZuID0gZmlyc3RfcGZuOworICAgIGV4dGVudC5uciA9IG5yOworCisgICAgcmV0dXJu IHhlbmRldmljZW1vZGVsX21vZGlmaWVkX21lbW9yeV9idWxrKGRtb2QsIGRvbWlkLCAmZXh0ZW50 LCAxKTsKIH0KIAogaW50IHhlbmRldmljZW1vZGVsX3NldF9tZW1fdHlwZSgKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvaW5jbHVkZS94ZW5kZXZpY2Vtb2RlbC5oIGIvdG9vbHMv bGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRlL3hlbmRldmljZW1vZGVsLmgKaW5kZXggMWRhMjE2Zi4u NTgwZmFkMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRlL3hlbmRl dmljZW1vZGVsLmgKKysrIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRlL3hlbmRldmlj ZW1vZGVsLmgKQEAgLTI1NCw4ICsyNTQsOCBAQCBpbnQgeGVuZGV2aWNlbW9kZWxfdHJhY2tfZGly dHlfdnJhbSgKICAgICB1aW50MzJfdCBuciwgdW5zaWduZWQgbG9uZyAqZGlydHlfYml0bWFwKTsK IAogLyoqCi0gKiBUaGlzIGZ1bmN0aW9uIG5vdGlmaWVzIHRoZSBoeXBlcnZpc29yIHRoYXQgYSBz ZXQgb2YgZG9tYWluIHBhZ2VzCi0gKiBoYXZlIGJlZW4gbW9kaWZpZWQuCisgKiBUaGlzIGZ1bmN0 aW9uIG5vdGlmaWVzIHRoZSBoeXBlcnZpc29yIHRoYXQgYSBzZXQgb2YgY29udGlndW91cworICog ZG9tYWluIHBhZ2VzIGhhdmUgYmVlbiBtb2RpZmllZC4KICAqCiAgKiBAcGFybSBkbW9kIGEgaGFu ZGxlIHRvIGFuIG9wZW4gZGV2aWNlbW9kZWwgaW50ZXJmYWNlLgogICogQHBhcm0gZG9taWQgdGhl IGRvbWFpbiBpZCB0byBiZSBzZXJ2aWNlZApAQCAtMjY4LDYgKzI2OCwyMSBAQCBpbnQgeGVuZGV2 aWNlbW9kZWxfbW9kaWZpZWRfbWVtb3J5KAogICAgIHVpbnQzMl90IG5yKTsKIAogLyoqCisgKiBU aGlzIGZ1bmN0aW9uIG5vdGlmaWVzIHRoZSBoeXBlcnZpc29yIHRoYXQgYSBzZXQgb2YgZGlzY29u dGlndW91cworICogZG9tYWluIHBhZ2VzIGhhdmUgYmVlbiBtb2RpZmllZC4KKyAqCisgKiBAcGFy bSBkbW9kIGEgaGFuZGxlIHRvIGFuIG9wZW4gZGV2aWNlbW9kZWwgaW50ZXJmYWNlLgorICogQHBh cm0gZG9taWQgdGhlIGRvbWFpbiBpZCB0byBiZSBzZXJ2aWNlZAorICogQHBhcm0gZXh0ZW50cyBh biBhcnJheSBvZiBleHRlbnQgc3RydWN0cywgd2hpY2ggZWFjaCBob2xkCisgICAgICAgICAgICAg ICAgIGEgc3RhcnRfcGZuIGFuZCBuciAobnVtYmVyIG9mIHBmbnMpLgorICogQHBhcm0gbnIgdGhl IG51bWJlciBvZiBleHRlbnRzIGluIHRoZSBhcnJheQorICogQHJldHVybiAwIG9uIHN1Y2Nlc3Ms IC0xIG9uIGZhaWx1cmUuCisgKi8KK2ludCB4ZW5kZXZpY2Vtb2RlbF9tb2RpZmllZF9tZW1vcnlf YnVsaygKKyAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsCisg ICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnlfZXh0ZW50IGV4dGVudHNbXSwgdWlu dDMyX3QgbnIpOworCisvKioKICAqIFRoaXMgZnVuY3Rpb24gbm90aWZpZXMgdGhlIGh5cGVydmlz b3IgdGhhdCBhIHNldCBvZiBkb21haW4gcGFnZXMKICAqIGFyZSB0byBiZSB0cmVhdGVkIGluIGEg c3BlY2lmaWMgd2F5LiAoU2VlIHRoZSBkZWZpbml0aW9uIG9mCiAgKiBodm1tZW1fdHlwZV90KS4K ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0u YwppbmRleCBjOTE4OTVmLi5iMWY1NDdiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2Rt LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0xNTMsNTYgKzE1MywxMDIgQEAgc3Rh dGljIGludCBzZXRfaXNhX2lycV9sZXZlbChzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90IGlzYV9p cnEsCiB9CiAKIHN0YXRpYyBpbnQgbW9kaWZpZWRfbWVtb3J5KHN0cnVjdCBkb21haW4gKmQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9y eSAqZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBkbW9wX2Fy Z3MgKmJ1ZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX21v ZGlmaWVkX21lbW9yeSAqaGVhZGVyKQogewotICAgIHhlbl9wZm5fdCBsYXN0X3BmbiA9IGRhdGEt PmZpcnN0X3BmbiArIGRhdGEtPm5yIC0gMTsKLSAgICB1bnNpZ25lZCBpbnQgaXRlciA9IDA7Ci0g ICAgaW50IHJjID0gMDsKKyNkZWZpbmUgRVhURU5UU19CVUZGRVIgMQogCi0gICAgaWYgKCAoZGF0 YS0+Zmlyc3RfcGZuID4gbGFzdF9wZm4pIHx8Ci0gICAgICAgICAobGFzdF9wZm4gPiBkb21haW5f Z2V0X21heGltdW1fZ3BmbihkKSkgKQotICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAvKiBQ cm9jZXNzIG1heGltdW0gb2YgMjU2IHBmbnMgYmVmb3JlIGNoZWNraW5nIGZvciBjb250aW51YXRp b24uICovCisgICAgY29uc3QgdW5zaWduZWQgaW50IGNvbnRfY2hlY2tfaW50ZXJ2YWwgPSAweDEw MDsKKyAgICB1bnNpZ25lZCBpbnQgKnJlbV9leHRlbnRzID0gICZoZWFkZXItPm5yX2V4dGVudHM7 CisgICAgdW5zaWduZWQgaW50IGJhdGNoX3JlbV9wZm5zID0gY29udF9jaGVja19pbnRlcnZhbDsK KyAgICAvKiBVc2VkIGZvciBjb250aW51YXRpb24uICovCisgICAgdW5zaWduZWQgaW50ICpwZm5z X2RvbmUgPSAmaGVhZGVyLT5vcGFxdWU7CiAKICAgICBpZiAoICFwYWdpbmdfbW9kZV9sb2dfZGly dHkoZCkgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHdoaWxlICggaXRlciA8IGRhdGEtPm5y ICkKKyAgICBpZiAoIChidWZzLT5idWZbRVhURU5UU19CVUZGRVJdLnNpemUgLworICAgICAgICAg IHNpemVvZihzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeV9leHRlbnQpKSA8CisgICAg ICAgICAqcmVtX2V4dGVudHMgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHdoaWxl ICggKnJlbV9leHRlbnRzID4gMCApCiAgICAgewotICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9 IGRhdGEtPmZpcnN0X3BmbiArIGl0ZXI7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7 CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5X2V4dGVudCBleHRlbnQ7 CisgICAgICAgIHVuc2lnbmVkIGludCBiYXRjaF9ucjsKKyAgICAgICAgeGVuX3Bmbl90IHBmbiwg ZW5kX3BmbjsKKyAgICAgICAgaW50IHJjOworCisgICAgICAgIHJjID0gQ09QWV9GUk9NX0dVRVNU X0JVRl9PRkZTRVQoZXh0ZW50LAorICAgICAgICAgICAgYnVmcywgRVhURU5UU19CVUZGRVIsICgq cmVtX2V4dGVudHMgLSAxKSAqIHNpemVvZihleHRlbnQpKTsKKyAgICAgICAgaWYgKCByYyApCisg ICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgICAgICBpZiAoIGV4dGVudC5wYWQgKQor ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgZW5kX3BmbiA9IGV4dGVudC5m aXJzdF9wZm4gKyBleHRlbnQubnI7CisKKyAgICAgICAgaWYgKCBlbmRfcGZuIDw9IGV4dGVudC5m aXJzdF9wZm4gfHwKKyAgICAgICAgICAgICBlbmRfcGZuID4gZG9tYWluX2dldF9tYXhpbXVtX2dw Zm4oZCkgKQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICAgICAgcGFnZSA9IGdl dF9wYWdlX2Zyb21fZ2ZuKGQsIHBmbiwgTlVMTCwgUDJNX1VOU0hBUkUpOwotICAgICAgICBpZiAo IHBhZ2UgKQorICAgICAgICBpZiAoICpwZm5zX2RvbmUgPj0gZXh0ZW50Lm5yICkKKyAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOworCisgICAgICAgIHBmbiA9IGV4dGVudC5maXJzdF9wZm4gKyAq cGZuc19kb25lOworICAgICAgICBiYXRjaF9uciA9IGV4dGVudC5uciAtICpwZm5zX2RvbmU7CisK KyAgICAgICAgaWYgKCBiYXRjaF9uciA+IGJhdGNoX3JlbV9wZm5zICkKKyAgICAgICAgeworICAg ICAgICAgICAgYmF0Y2hfbnIgPSBiYXRjaF9yZW1fcGZuczsKKyAgICAgICAgICAgICpwZm5zX2Rv bmUgKz0gYmF0Y2hfbnI7CisgICAgICAgICAgICBlbmRfcGZuID0gcGZuICsgYmF0Y2hfbnI7Cisg ICAgICAgIH0KKyAgICAgICAgZWxzZQogICAgICAgICB7Ci0gICAgICAgICAgICBtZm5fdCBnbWZu ID0gX21mbihwYWdlX3RvX21mbihwYWdlKSk7Ci0KLSAgICAgICAgICAgIHBhZ2luZ19tYXJrX2Rp cnR5KGQsIGdtZm4pOwotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFRoZXNlIGFyZSBt b3N0IHByb2JhYmx5IG5vdCBwYWdlIHRhYmxlcyBhbnkgbW9yZQotICAgICAgICAgICAgICogZG9u J3QgdGFrZSBhIGxvbmcgdGltZSBhbmQgZG9uJ3QgZGllIGVpdGhlci4KLSAgICAgICAgICAgICAq LwotICAgICAgICAgICAgc2hfcmVtb3ZlX3NoYWRvd3MoZCwgZ21mbiwgMSwgMCk7Ci0gICAgICAg ICAgICBwdXRfcGFnZShwYWdlKTsKKyAgICAgICAgICAgICgqcmVtX2V4dGVudHMpLS07CisgICAg ICAgICAgICAqcGZuc19kb25lID0gMDsKICAgICAgICAgfQogCi0gICAgICAgIGl0ZXIrKzsKKyAg ICAgICAgYmF0Y2hfcmVtX3BmbnMgLT0gYmF0Y2hfbnI7CisKKyAgICAgICAgZm9yICggOyBwZm4g PCBlbmRfcGZuOyBwZm4rKyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0cnVjdCBwYWdlX2lu Zm8gKnBhZ2U7CisKKyAgICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBwZm4s IE5VTEwsIFAyTV9VTlNIQVJFKTsKKyAgICAgICAgICAgIGlmICggcGFnZSApCisgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgbWZuX3QgZ21mbiA9IF9tZm4ocGFnZV90b19tZm4ocGFnZSkp OworCisgICAgICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgZ21mbik7CisgICAgICAg ICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBUaGVzZSBhcmUgbW9zdCBwcm9iYWJseSBu b3QgcGFnZSB0YWJsZXMgYW55IG1vcmUKKyAgICAgICAgICAgICAgICAgKiBkb24ndCB0YWtlIGEg bG9uZyB0aW1lIGFuZCBkb24ndCBkaWUgZWl0aGVyLgorICAgICAgICAgICAgICAgICAqLworICAg ICAgICAgICAgICAgIHNoX3JlbW92ZV9zaGFkb3dzKGQsIGdtZm4sIDEsIDApOworICAgICAgICAg ICAgICAgIHB1dF9wYWdlKHBhZ2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAg ICAgLyoKLSAgICAgICAgICogQ2hlY2sgZm9yIGNvbnRpbnVhdGlvbiBldmVyeSAyNTZ0aCBpdGVy YXRpb24gYW5kIGlmIHRoZQotICAgICAgICAgKiBpdGVyYXRpb24gaXMgbm90IHRoZSBsYXN0Lgor ICAgICAgICAgKiBBZnRlciBhIGZ1bGwgYmF0Y2ggb2YgY29udF9jaGVja19pbnRlcnZhbCBwZm5z CisgICAgICAgICAqIGhhdmUgYmVlbiBwcm9jZXNzZWQsIGFuZCB0aGVyZSBhcmUgc3RpbGwgZXh0 ZW50cworICAgICAgICAgKiByZW1haW5pbmcgdG8gcHJvY2VzcywgY2hlY2sgZm9yIGNvbnRpbnVh dGlvbi4KICAgICAgICAgICovCi0gICAgICAgIGlmICggKGl0ZXIgPCBkYXRhLT5ucikgJiYgKChp dGVyICYgMHhmZikgPT0gMCkgJiYKLSAgICAgICAgICAgICBoeXBlcmNhbGxfcHJlZW1wdF9jaGVj aygpICkKKyAgICAgICAgaWYgKCAoYmF0Y2hfcmVtX3BmbnMgPT0gMCkgJiYgKCpyZW1fZXh0ZW50 cyA+IDApICkKICAgICAgICAgewotICAgICAgICAgICAgZGF0YS0+Zmlyc3RfcGZuICs9IGl0ZXI7 Ci0gICAgICAgICAgICBkYXRhLT5uciAtPSBpdGVyOworICAgICAgICAgICAgaWYgKCBoeXBlcmNh bGxfcHJlZW1wdF9jaGVjaygpICkKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVSRVNUQVJUOwog Ci0gICAgICAgICAgICByYyA9IC1FUkVTVEFSVDsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgYmF0Y2hfcmVtX3BmbnMgPSBjb250X2NoZWNrX2ludGVydmFsOwogICAgICAgICB9CiAg ICAgfQorICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHJjOworI3VuZGVmIEVYVEVOVFNfQlVG RkVSCiB9CiAKIHN0YXRpYyBib29sIGFsbG93X3AybV90eXBlX2NoYW5nZShwMm1fdHlwZV90IG9s ZCwgcDJtX3R5cGVfdCBuZXcpCkBAIC01MzksMTMgKzU4NSw4IEBAIHN0YXRpYyBpbnQgZG1fb3Ao Y29uc3Qgc3RydWN0IGRtb3BfYXJncyAqb3BfYXJncykKICAgICAgICAgc3RydWN0IHhlbl9kbV9v cF9tb2RpZmllZF9tZW1vcnkgKmRhdGEgPQogICAgICAgICAgICAgJm9wLnUubW9kaWZpZWRfbWVt b3J5OwogCi0gICAgICAgIGNvbnN0X29wID0gZmFsc2U7Ci0KLSAgICAgICAgcmMgPSAtRUlOVkFM OwotICAgICAgICBpZiAoIGRhdGEtPnBhZCApCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAg ICByYyA9IG1vZGlmaWVkX21lbW9yeShkLCBkYXRhKTsKKyAgICAgICAgcmMgPSBtb2RpZmllZF9t ZW1vcnkoZCwgb3BfYXJncywgZGF0YSk7CisgICAgICAgIGNvbnN0X29wID0gIXJjOwogICAgICAg ICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1f b3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAppbmRleCA1ZWE3OWVmLi4yMGMy MWI2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKKysrIGIveGVu L2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC0yMzcsMTMgKzIzNywyNiBAQCBzdHJ1Y3Qg eGVuX2RtX29wX3NldF9wY2lfbGlua19yb3V0ZSB7CiAgKiBYRU5fRE1PUF9tb2RpZmllZF9tZW1v cnk6IE5vdGlmeSB0aGF0IGEgc2V0IG9mIHBhZ2VzIHdlcmUgbW9kaWZpZWQgYnkKICAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgYW4gZW11bGF0b3IuCiAgKgotICogTk9URTogSW4gdGhlIGV2 ZW50IG9mIGEgY29udGludWF0aW9uLCB0aGUgQGZpcnN0X3BmbiBpcyBzZXQgdG8gdGhlCi0gKiAg ICAgICB2YWx1ZSBvZiB0aGUgcGZuIG9mIHRoZSByZW1haW5pbmcgc2V0IG9mIHBhZ2VzIGFuZCBA bnIgcmVkdWNlZAotICogICAgICAgdG8gdGhlIHNpemUgb2YgdGhlIHJlbWFpbmluZyBzZXQuCisg KiBETU9QIGJ1ZiAxIGNvbnRhaW5zIGFuIGFycmF5IG9mIHhlbl9kbV9vcF9tb2RpZmllZF9tZW1v cnlfZXh0ZW50IHdpdGgKKyAqIEBucl9leHRlbnRzIGVudHJpZXMuCisgKgorICogT24gZXJyb3Is IEBucl9leHRlbnRzIHdpbGwgY29udGFpbiB0aGUgaW5kZXgrMSBvZiB0aGUgZXh0ZW50IHRoYXQK KyAqIGhhZCB0aGUgZXJyb3IuICBJdCBpcyBub3QgZGVmaW5lZCBpZiBvciB3aGljaCBwYWdlcyBt YXkgaGF2ZSBiZWVuCisgKiBtYXJrZWQgYXMgZGlydHksIGluIHRoaXMgZXZlbnQuCiAgKi8KICNk ZWZpbmUgWEVOX0RNT1BfbW9kaWZpZWRfbWVtb3J5IDExCiAKIHN0cnVjdCB4ZW5fZG1fb3BfbW9k aWZpZWRfbWVtb3J5IHsKKyAgICAvKgorICAgICAqIElOIC0gTnVtYmVyIG9mIGV4dGVudHMgdG8g YmUgcHJvY2Vzc2VkCisgICAgICogT1VUIC1yZXR1cm5zIG4rMSBmb3IgZmFpbGluZyBleHRlbnQK KyAgICAgKi8KKyAgICB1aW50MzJfdCBucl9leHRlbnRzOworICAgIC8qIElOL09VVCAtIE11c3Qg YmUgc2V0IHRvIDAgKi8KKyAgICB1aW50MzJfdCBvcGFxdWU7Cit9OworCitzdHJ1Y3QgeGVuX2Rt X29wX21vZGlmaWVkX21lbW9yeV9leHRlbnQgewogICAgIC8qIElOIC0gbnVtYmVyIG9mIGNvbnRp Z3VvdXMgcGFnZXMgbW9kaWZpZWQgKi8KICAgICB1aW50MzJfdCBucjsKICAgICB1aW50MzJfdCBw YWQ7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=