From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jennifer Herbert Subject: [PATCH v3] dm_op: Add xendevicemodel_modified_memory_bulk. Date: Tue, 28 Mar 2017 13:18:08 +0000 Message-ID: <1490707088-14984-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: 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 , Paul Durrant , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org RnJvbTogSmVubmlmZXIgSGVyYmVydCA8SmVubmlmZXIuSGVyYmVydEBjaXRyaXguY29tPgoKVGhp cyBuZXcgbGliIGRldmljZW1vZGVsIGNhbGwgYWxsb3dzIG11bHRpcGxlIGV4dGVudHMgb2YgcGFn ZXMgdG8gYmUKbWFya2VkIGFzIG1vZGlmaWVkIGluIGEgc2luZ2xlIGNhbGwuICBUaGlzIGlzIHNv bWV0aGluZyBuZWVkZWQgZm9yIGEKdXNlY2FzZSBJJ20gd29ya2luZyBvbi4KClRoZSB4ZW4gc2lk ZSBvZiB0aGUgbW9kaWZpZWRfbWVtb3J5IGNhbGwgaGFzIGJlZW4gbW9kaWZpZWQgdG8gYWNjZXB0 CmFuIGFycmF5IG9mIGV4dGVudHMuICBUaGUgZGV2aWNlbW9kbGUgbGlicmFyeSBlaXRoZXIgcHJv dmlkZXMgYW4gYXJyYXkKb2YgbGVuZ3RoIDEsIHRvIHN1cHBvcnQgdGhlIG9yaWdpbmFsIGxpYnJh cnkgZnVuY3Rpb24sIG9yIGEgc2Vjb25kCmZ1bmN0aW9uIGFsbG93cyBhbiBhcnJheSB0byBiZSBw cm92aWRlZC4KClNpZ25lZC1vZmYtYnk6IEplbm5pZmVyIEhlcmJlcnQgPEplbm5pZmVyLkhlcmJl cnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNj OiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdl aS5saXUyQGNpdHJpeC5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgpDYzogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNo YW5nZXMgYXMgZGlzY3Vzc2VkIG9uIHRocmVhZC4KCiB0b29scy9saWJzL2RldmljZW1vZGVsL2Nv cmUuYyAgICAgICAgICAgICAgICAgICB8ICAgMzAgKysrKy0tCiB0b29scy9saWJzL2RldmljZW1v ZGVsL2luY2x1ZGUveGVuZGV2aWNlbW9kZWwuaCB8ICAgMTkgKysrLQogeGVuL2FyY2gveDg2L2h2 bS9kbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTE1ICsrKysrKysrKysrKysrKy0t LS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggICAgICAgICAgICAgICAgICB8 ICAgMjIgKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDUzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvY29yZS5jIGIvdG9v bHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMKaW5kZXggYTg1Y2I0OS4uZjllMzdhNSAxMDA2NDQK LS0tIGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMKKysrIGIvdG9vbHMvbGlicy9kZXZp Y2Vtb2RlbC9jb3JlLmMKQEAgLTQzNCwyMiArNDM0LDM2IEBAIGludCB4ZW5kZXZpY2Vtb2RlbF90 cmFja19kaXJ0eV92cmFtKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJ0eV9iaXRt YXAsIChzaXplX3QpKG5yICsgNykgLyA4KTsKIH0KIAotaW50IHhlbmRldmljZW1vZGVsX21vZGlm aWVkX21lbW9yeSgKLSAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9t aWQsIHVpbnQ2NF90IGZpcnN0X3BmbiwKLSAgICB1aW50MzJfdCBucikKK2ludCB4ZW5kZXZpY2Vt b2RlbF9tb2RpZmllZF9tZW1vcnlfYnVsaygKKyAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRt b2QsIGRvbWlkX3QgZG9taWQsCisgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnlf ZXh0ZW50ICpleHRlbnRzLCB1aW50MzJfdCBucikKIHsKICAgICBzdHJ1Y3QgeGVuX2RtX29wIG9w OwotICAgIHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5ICpkYXRhOworICAgIHN0cnVj dCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5ICpoZWFkZXI7CisgICAgc2l6ZV90IGV4dGVudHNf c2l6ZSA9IG5yICogc2l6ZW9mKHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5X2V4dGVu dCk7CiAKICAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAogICAgIG9wLm9wID0gWEVO X0RNT1BfbW9kaWZpZWRfbWVtb3J5OwotICAgIGRhdGEgPSAmb3AudS5tb2RpZmllZF9tZW1vcnk7 CisgICAgaGVhZGVyID0gJm9wLnUubW9kaWZpZWRfbWVtb3J5OwogCi0gICAgZGF0YS0+Zmlyc3Rf cGZuID0gZmlyc3RfcGZuOwotICAgIGRhdGEtPm5yID0gbnI7CisgICAgaGVhZGVyLT5ucl9leHRl bnRzID0gbnI7CisgICAgaGVhZGVyLT5wZm5zX3Byb2Nlc3NlZCA9IDA7CiAKLSAgICByZXR1cm4g eGVuZGV2aWNlbW9kZWxfb3AoZG1vZCwgZG9taWQsIDEsICZvcCwgc2l6ZW9mKG9wKSk7CisgICAg cmV0dXJuIHhlbmRldmljZW1vZGVsX29wKGRtb2QsIGRvbWlkLCAyLCAmb3AsIHNpemVvZihvcCks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVudHMsIGV4dGVudHNfc2l6ZSk7Cit9 CisKK2ludCB4ZW5kZXZpY2Vtb2RlbF9tb2RpZmllZF9tZW1vcnkoCisgICAgeGVuZGV2aWNlbW9k ZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCB1aW50NjRfdCBmaXJzdF9wZm4sCisgICAg dWludDMyX3QgbnIpCit7CisgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnlfZXh0 ZW50IGV4dGVudDsKKworICAgIGV4dGVudC5maXJzdF9wZm4gPSBmaXJzdF9wZm47CisgICAgZXh0 ZW50Lm5yID0gbnI7CisKKyAgICByZXR1cm4geGVuZGV2aWNlbW9kZWxfbW9kaWZpZWRfbWVtb3J5 X2J1bGsoZG1vZCwgZG9taWQsICZleHRlbnQsIDEpOwogfQogCiBpbnQgeGVuZGV2aWNlbW9kZWxf c2V0X21lbV90eXBlKApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRl L3hlbmRldmljZW1vZGVsLmggYi90b29scy9saWJzL2RldmljZW1vZGVsL2luY2x1ZGUveGVuZGV2 aWNlbW9kZWwuaAppbmRleCBiM2Y2MDBlLi45YzYyYmY5IDEwMDY0NAotLS0gYS90b29scy9saWJz L2RldmljZW1vZGVsL2luY2x1ZGUveGVuZGV2aWNlbW9kZWwuaAorKysgYi90b29scy9saWJzL2Rl dmljZW1vZGVsL2luY2x1ZGUveGVuZGV2aWNlbW9kZWwuaApAQCAtMjM2LDggKzIzNiw4IEBAIGlu dCB4ZW5kZXZpY2Vtb2RlbF90cmFja19kaXJ0eV92cmFtKAogICAgIHVpbnQzMl90IG5yLCB1bnNp Z25lZCBsb25nICpkaXJ0eV9iaXRtYXApOwogCiAvKioKLSAqIFRoaXMgZnVuY3Rpb24gbm90aWZp ZXMgdGhlIGh5cGVydmlzb3IgdGhhdCBhIHNldCBvZiBkb21haW4gcGFnZXMKLSAqIGhhdmUgYmVl biBtb2RpZmllZC4KKyAqIFRoaXMgZnVuY3Rpb24gbm90aWZpZXMgdGhlIGh5cGVydmlzb3IgdGhh dCBhIHNldCBvZiBjb250aWd1b3VzCisgKiBkb21haW4gcGFnZXMgaGF2ZSBiZWVuIG1vZGlmaWVk LgogICoKICAqIEBwYXJtIGRtb2QgYSBoYW5kbGUgdG8gYW4gb3BlbiBkZXZpY2Vtb2RlbCBpbnRl cmZhY2UuCiAgKiBAcGFybSBkb21pZCB0aGUgZG9tYWluIGlkIHRvIGJlIHNlcnZpY2VkCkBAIC0y NTAsNiArMjUwLDIxIEBAIGludCB4ZW5kZXZpY2Vtb2RlbF9tb2RpZmllZF9tZW1vcnkoCiAgICAg dWludDMyX3QgbnIpOwogCiAvKioKKyAqIFRoaXMgZnVuY3Rpb24gbm90aWZpZXMgdGhlIGh5cGVy dmlzb3IgdGhhdCBhIHNldCBvZiBkaXNjb250aWd1b3VzCisgKiBkb21haW4gcGFnZXMgaGF2ZSBi ZWVuIG1vZGlmaWVkLgorICoKKyAqIEBwYXJtIGRtb2QgYSBoYW5kbGUgdG8gYW4gb3BlbiBkZXZp Y2Vtb2RlbCBpbnRlcmZhY2UuCisgKiBAcGFybSBkb21pZCB0aGUgZG9tYWluIGlkIHRvIGJlIHNl cnZpY2VkCisgKiBAcGFybSBleHRlbnRzIGFuIGFycmF5IG9mIGV4dGVudCBzdHJ1Y3RzLCB3aGlj aCBlYWNoIGhvbGQKKyAgICAgICAgICAgICAgICAgYSBzdGFydF9wZm4gYW5kIG5yIChudW1iZXIg b2YgcGZucykuCisgKiBAcGFybSBuciB0aGUgbnVtYmVyIG9mIGV4dGVudHMgaW4gdGhlIGFycmF5 CisgKiBAcmV0dXJuIDAgb24gc3VjY2VzcywgLTEgb24gZmFpbHVyZS4KKyAqLworaW50IHhlbmRl dmljZW1vZGVsX21vZGlmaWVkX21lbW9yeV9idWxrKAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRs ZSAqZG1vZCwgZG9taWRfdCBkb21pZCwKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21l bW9yeV9leHRlbnQgZXh0ZW50c1tdLCB1aW50MzJfdCBucik7CisKKy8qKgogICogVGhpcyBmdW5j dGlvbiBub3RpZmllcyB0aGUgaHlwZXJ2aXNvciB0aGF0IGEgc2V0IG9mIGRvbWFpbiBwYWdlcwog ICogYXJlIHRvIGJlIHRyZWF0ZWQgaW4gYSBzcGVjaWZpYyB3YXkuIChTZWUgdGhlIGRlZmluaXRp b24gb2YKICAqIGh2bW1lbV90eXBlX3QpLgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9k bS5jIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCmluZGV4IDIxMjJjNDUuLmI1MDMxY2UgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMK QEAgLTExOSw1NiArMTE5LDk2IEBAIHN0YXRpYyBpbnQgc2V0X2lzYV9pcnFfbGV2ZWwoc3RydWN0 IGRvbWFpbiAqZCwgdWludDhfdCBpc2FfaXJxLAogfQogCiBzdGF0aWMgaW50IG1vZGlmaWVkX21l bW9yeShzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgKmRhdGEpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSAqaGVhZGVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgeGVuX2RtX29wX2J1Zl90KiBidWYpCiB7Ci0gICAgeGVuX3Bmbl90 IGxhc3RfcGZuID0gZGF0YS0+Zmlyc3RfcGZuICsgZGF0YS0+bnIgLSAxOwotICAgIHVuc2lnbmVk IGludCBpdGVyID0gMDsKLSAgICBpbnQgcmMgPSAwOwotCi0gICAgaWYgKCAoZGF0YS0+Zmlyc3Rf cGZuID4gbGFzdF9wZm4pIHx8Ci0gICAgICAgICAobGFzdF9wZm4gPiBkb21haW5fZ2V0X21heGlt dW1fZ3BmbihkKSkgKQotICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAvKiBQcm9jZXNzIG1h eGltdW0gb2YgMjU2IHBmbnMgYmVmb3JlIGNoZWNraW5nIGZvciBjb250aW51YXRpb24gKi8KKyAg ICBjb25zdCB1bnNpZ25lZCBpbnQgY29udF9jaGVja19pbnRlcnZhbCA9IDB4MTAwOworICAgIHVu c2lnbmVkIGludCByZW1fZXh0ZW50cyA9ICBoZWFkZXItPm5yX2V4dGVudHM7CisgICAgdW5zaWdu ZWQgaW50IGJhdGNoX3JlbV9wZm5zID0gY29udF9jaGVja19pbnRlcnZhbDsKIAogICAgIGlmICgg IXBhZ2luZ19tb2RlX2xvZ19kaXJ0eShkKSApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgd2hp bGUgKCBpdGVyIDwgZGF0YS0+bnIgKQorICAgIGlmICggKGJ1Zi0+c2l6ZSAvIHNpemVvZihzdHJ1 Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeV9leHRlbnQpKSA8CisgICAgICAgICByZW1fZXh0 ZW50cyApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgd2hpbGUgKCByZW1fZXh0ZW50 cyA+IDApCiAgICAgewotICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IGRhdGEtPmZpcnN0X3Bm biArIGl0ZXI7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CisgICAgICAgIHN0cnVj dCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5X2V4dGVudCBleHRlbnQ7CisgICAgICAgIHVuc2ln bmVkIGludCBiYXRjaF9ucjsKKyAgICAgICAgeGVuX3Bmbl90IHBmbjsKKyAgICAgICAgeGVuX3Bm bl90IGVuZF9wZm47CisgICAgICAgIHVuc2lnbmVkIGludCAqcGZuc19hbHJlYWR5X2RvbmU7CiAK LSAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIHBmbiwgTlVMTCwgUDJNX1VOU0hB UkUpOwotICAgICAgICBpZiAoIHBhZ2UgKQorICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdF9v ZmZzZXQoJmV4dGVudCwgYnVmLT5oLCByZW1fZXh0ZW50cyAtIDEsIDEpICkKKyAgICAgICAgICAg IHJldHVybiAtRUZBVUxUOworICAgICAgICAvKgorICAgICAgICAgKiBJbiB0aGUgY2FzZSBvZiBj b250aW51YXRpb24sIGhlYWRlci0+b3BhcXVlIGNvbnRhaW5zIHRoZQorICAgICAgICAgKiBudW1i ZXIgb2YgcGZucyBhbHJlYWR5IHByb2Nlc3NlZCBmb3IgdGhpcyBleHRlbnQKKyAgICAgICAgICov CisgICAgICAgIHBmbnNfYWxyZWFkeV9kb25lID0gJmhlYWRlci0+b3BhcXVlOworCisgICAgICAg IGlmICgqcGZuc19hbHJlYWR5X2RvbmUgPj0gZXh0ZW50Lm5yIHx8IGV4dGVudC5wYWQpCisgICAg ICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgICAgICBwZm4gPSBleHRlbnQuZmlyc3RfcGZu ICsgKnBmbnNfYWxyZWFkeV9kb25lOworICAgICAgICBiYXRjaF9uciA9IGV4dGVudC5uciAtICpw Zm5zX2FscmVhZHlfZG9uZTsKKworICAgICAgICBpZiAoIGJhdGNoX25yID4gYmF0Y2hfcmVtX3Bm bnMgKQogICAgICAgICB7Ci0gICAgICAgICAgICBtZm5fdCBnbWZuID0gX21mbihwYWdlX3RvX21m bihwYWdlKSk7Ci0KLSAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIGdtZm4pOwotICAg ICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFRoZXNlIGFyZSBtb3N0IHByb2JhYmx5IG5vdCBw YWdlIHRhYmxlcyBhbnkgbW9yZQotICAgICAgICAgICAgICogZG9uJ3QgdGFrZSBhIGxvbmcgdGlt ZSBhbmQgZG9uJ3QgZGllIGVpdGhlci4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgc2hf cmVtb3ZlX3NoYWRvd3MoZCwgZ21mbiwgMSwgMCk7Ci0gICAgICAgICAgICBwdXRfcGFnZShwYWdl KTsKKyAgICAgICAgICAgYmF0Y2hfbnIgPSBiYXRjaF9yZW1fcGZuczsKKyAgICAgICAgICAgKnBm bnNfYWxyZWFkeV9kb25lICs9IGJhdGNoX25yOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAg ICAgICAgeworICAgICAgICAgICAgcmVtX2V4dGVudHMtLTsKKyAgICAgICAgICAgICpwZm5zX2Fs cmVhZHlfZG9uZSA9IDA7CiAgICAgICAgIH0KIAotICAgICAgICBpdGVyKys7CisgICAgICAgIGJh dGNoX3JlbV9wZm5zIC09IGJhdGNoX25yOworICAgICAgICBlbmRfcGZuID0gcGZuICsgYmF0Y2hf bnI7CisKKyAgICAgICAgaWYgKCAocGZuID49IGVuZF9wZm4pIHx8CisgICAgICAgICAgICAgKGVu ZF9wZm4gPiBkb21haW5fZ2V0X21heGltdW1fZ3BmbihkKSkgKQorICAgICAgICAgICAgcmV0dXJu IC1FSU5WQUw7CisKKyAgICAgICAgaGVhZGVyLT5ucl9leHRlbnRzID0gcmVtX2V4dGVudHM7CisK KyAgICAgICAgd2hpbGUgKCBwZm4gPCBlbmRfcGZuICkKKyAgICAgICAgeworICAgICAgICAgICAg c3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9t X2dmbihkLCBwZm4sIE5VTEwsIFAyTV9VTlNIQVJFKTsKKworICAgICAgICAgICAgaWYgKCBwYWdl ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtZm5fdCBnbWZuID0gX21mbihwYWdl X3RvX21mbihwYWdlKSk7CisKKyAgICAgICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBn bWZuKTsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRoZXNlIGFyZSBt b3N0IHByb2JhYmx5IG5vdCBwYWdlIHRhYmxlcyBhbnkgbW9yZQorICAgICAgICAgICAgICAgICAq IGRvbid0IHRha2UgYSBsb25nIHRpbWUgYW5kIGRvbid0IGRpZSBlaXRoZXIuCisgICAgICAgICAg ICAgICAgICovCisgICAgICAgICAgICAgICAgc2hfcmVtb3ZlX3NoYWRvd3MoZCwgZ21mbiwgMSwg MCk7CisgICAgICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CisgICAgICAgICAgICB9CisgICAg ICAgICAgICBwZm4rKzsKKyAgICAgICAgfQogCiAgICAgICAgIC8qCi0gICAgICAgICAqIENoZWNr IGZvciBjb250aW51YXRpb24gZXZlcnkgMjU2dGggaXRlcmF0aW9uIGFuZCBpZiB0aGUKLSAgICAg ICAgICogaXRlcmF0aW9uIGlzIG5vdCB0aGUgbGFzdC4KKyAgICAgICAgICogQ2hlY2sgZm9yIGNv bnRpbnVhdGlvbiBldmVyeSAyNTZ0aCBwZm4gYW5kIGlmIHRoZQorICAgICAgICAgKiBwZm4gaXMg bm90IHRoZSBsYXN0LgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKCAoaXRlciA8IGRhdGEtPm5y KSAmJiAoKGl0ZXIgJiAweGZmKSA9PSAwKSAmJgotICAgICAgICAgICAgIGh5cGVyY2FsbF9wcmVl bXB0X2NoZWNrKCkgKQorICAgICAgICBpZiAoIChiYXRjaF9yZW1fcGZucyA9PSAwKSAmJiAocmVt X2V4dGVudHMgPiAwKSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRhdGEtPmZpcnN0X3BmbiAr PSBpdGVyOwotICAgICAgICAgICAgZGF0YS0+bnIgLT0gaXRlcjsKKyAgICAgICAgICAgIGlmICgg aHlwZXJjYWxsX3ByZWVtcHRfY2hlY2soKSApCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FUkVT VEFSVDsKIAotICAgICAgICAgICAgcmMgPSAtRVJFU1RBUlQ7Ci0gICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgIGJhdGNoX3JlbV9wZm5zID0gY29udF9jaGVja19pbnRlcnZhbDsKICAgICAg ICAgfQogICAgIH0KLQotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gMDsKIH0KIAogc3RhdGlj IGJvb2wgYWxsb3dfcDJtX3R5cGVfY2hhbmdlKHAybV90eXBlX3Qgb2xkLCBwMm1fdHlwZV90IG5l dykKQEAgLTQ0MSwxMyArNDgxLDggQEAgc3RhdGljIGludCBkbV9vcChkb21pZF90IGRvbWlkLAog ICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSAqZGF0YSA9CiAgICAgICAg ICAgICAmb3AudS5tb2RpZmllZF9tZW1vcnk7CiAKLSAgICAgICAgY29uc3Rfb3AgPSBmYWxzZTsK LQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAgICAgIGlmICggZGF0YS0+cGFkICkKLSAgICAg ICAgICAgIGJyZWFrOwotCi0gICAgICAgIHJjID0gbW9kaWZpZWRfbWVtb3J5KGQsIGRhdGEpOwor ICAgICAgICByYyA9IG1vZGlmaWVkX21lbW9yeShkLCBkYXRhLCAmYnVmc1sxXSk7CisgICAgICAg IGNvbnN0X29wID0gKHJjICE9IDApOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9o dm0vZG1fb3AuaAppbmRleCBmNTRjZWNlLi4zNGM4MzFhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL2RtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5o CkBAIC0yMzcsMTMgKzIzNywyOSBAQCBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfbGlua19yb3V0 ZSB7CiAgKiBYRU5fRE1PUF9tb2RpZmllZF9tZW1vcnk6IE5vdGlmeSB0aGF0IGEgc2V0IG9mIHBh Z2VzIHdlcmUgbW9kaWZpZWQgYnkKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gZW11 bGF0b3IuCiAgKgotICogTk9URTogSW4gdGhlIGV2ZW50IG9mIGEgY29udGludWF0aW9uLCB0aGUg QGZpcnN0X3BmbiBpcyBzZXQgdG8gdGhlCi0gKiAgICAgICB2YWx1ZSBvZiB0aGUgcGZuIG9mIHRo ZSByZW1haW5pbmcgc2V0IG9mIHBhZ2VzIGFuZCBAbnIgcmVkdWNlZAotICogICAgICAgdG8gdGhl IHNpemUgb2YgdGhlIHJlbWFpbmluZyBzZXQuCisgKiBETU9QIGJ1ZiAxIGNvbnRhaW5zIGFuIGFy cmF5IG9mIHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnlfZXh0ZW50IHdpdGgKKyAqIEBucl9leHRl bnRzIGVudHJpZXMuCisgKiBAb3BhcXVlIG11c3QgYmUgaW5pdGlhbGx5IHNldCB0byAwLgorICoK KyAqIE9uIGVycm9yLCBAbnJfZXh0ZW50cyB3aWxsIGNvbnRhaW4gdGhlIGluZGV4KzEgb2YgdGhl IGV4dGVudCB0aGF0CisgKiBoYWQgdGhlIGVycm9yLiAgSXQgaXMgbm90IGRlZmluZWQgaWYgb3Ig d2hpY2ggcGFnZXMgbWF5IGhhdmUgYmVlbgorICogbWFya2VkIGFzIGRpcnR5LCBpbiB0aGlzIGV2 ZW50LgorICoKKyAqIEBvcGFxdWUgbXVzdCBiZSBpbml0aWFsbHkgc2V0IHRvIDAuCiAgKi8KICNk ZWZpbmUgWEVOX0RNT1BfbW9kaWZpZWRfbWVtb3J5IDExCiAKIHN0cnVjdCB4ZW5fZG1fb3BfbW9k aWZpZWRfbWVtb3J5IHsKKyAgICAvKgorICAgICAqIElOIC0gTnVtYmVyIG9mIGV4dGVudHMgdG8g YmUgcHJvY2Vzc2VkCisgICAgICogT1VUIC1yZXR1cm5zIG4rMSBmb3IgZmFpbGluZyBleHRlbnQK KyAgICAgKi8KKyAgICB1aW50MzJfdCBucl9leHRlbnRzOworICAgIC8qIElOL09VVCAtIE11c3Qg YmUgc2V0IHRvIDAgKi8KKyAgICB1aW50MzJfdCBvcGFxdWU7Cit9OworCitzdHJ1Y3QgeGVuX2Rt X29wX21vZGlmaWVkX21lbW9yeV9leHRlbnQgewogICAgIC8qIElOIC0gbnVtYmVyIG9mIGNvbnRp Z3VvdXMgcGFnZXMgbW9kaWZpZWQgKi8KICAgICB1aW50MzJfdCBucjsKICAgICB1aW50MzJfdCBw YWQ7Ci0tIAoxLjcuMTAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=