From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH-for-4.9 v1 6/8] dm_op: convert HVMOP_set_mem_type Date: Fri, 18 Nov 2016 17:14:02 +0000 Message-ID: <1479489244-2201-7-git-send-email-paul.durrant@citrix.com> References: <1479489244-2201-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c7n4z-00056d-8c for xen-devel@lists.xenproject.org; Fri, 18 Nov 2016 17:36:01 +0000 In-Reply-To: <1479489244-2201-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Daniel De Graaf , Paul Durrant , Ian Jackson , Andrew Cooper List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgdGhlIG5lZWQgZm9yIGhhbmRsaW5nIEhWTU9QIHJlc3Rh cnRzLCBzbyB0aGF0CmluZnJhc3RydWN0dXJlIGlzIGFsc28gcmVtb3ZlZC4KClN1Z2dlc3RlZC1i eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1 cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IElhbiBKYWNrc29uIDxpYW4u amFja3NvbkBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4K Q2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBEYW5pZWwg RGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdvdj4KLS0tCiB0b29scy9saWJ4Yy94Y19taXNj LmMgICAgICAgICAgICAgICB8ICAyOCArKystLS0tLQogeGVuL2FyY2gveDg2L2h2bS9kbS5jICAg ICAgICAgICAgICAgfCAgOTIgKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYv aHZtL2h2bS5jICAgICAgICAgICAgICB8IDEzNiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCAgICAgIHwgIDE2ICsrKysr CiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oICAgICB8ICAgNCArLQogeGVuL3hzbS9m bGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgfCAgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTIx IGluc2VydGlvbnMoKyksIDE1NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4 Yy94Y19taXNjLmMgYi90b29scy9saWJ4Yy94Y19taXNjLmMKaW5kZXggYTk3ODY0ZS4uNjA3Y2Y4 MCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfbWlzYy5jCisrKyBiL3Rvb2xzL2xpYnhjL3hj X21pc2MuYwpAQCAtNTg0LDI4ICs1ODQsMTggQEAgaW50IHhjX2h2bV9tb2RpZmllZF9tZW1vcnko CiBpbnQgeGNfaHZtX3NldF9tZW1fdHlwZSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRf dCBkb20sIGh2bW1lbV90eXBlX3QgbWVtX3R5cGUsIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDY0 X3QgbnIpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX3Nl dF9tZW1fdHlwZSwgYXJnKTsKLSAgICBpbnQgcmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxf YnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5V TEwgKQotICAgIHsKLSAgICAgICAgUEVSUk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZv ciB4Y19odm1fc2V0X21lbV90eXBlIGh5cGVyY2FsbCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0g ICAgfQorICAgIHN0cnVjdCB4ZW5fZG1fb3Agb3A7CisgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRf bWVtX3R5cGUgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlkICAgICAgICA9IGRvbTsKLSAgICBhcmct Pmh2bW1lbV90eXBlICA9IG1lbV90eXBlOwotICAgIGFyZy0+Zmlyc3RfcGZuICAgID0gZmlyc3Rf cGZuOwotICAgIGFyZy0+bnIgICAgICAgICAgID0gbnI7CisgICAgb3Aub3AgPSBETU9QX3NldF9t ZW1fdHlwZTsKKyAgICBkYXRhID0gJm9wLnUuc2V0X21lbV90eXBlOwogCi0gICAgcmMgPSB4ZW5j YWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAg SFZNT1Bfc2V0X21lbV90eXBlLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9B U19BUkcoYXJnKSk7Ci0KLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOwor ICAgIGRhdGEtPm1lbV90eXBlID0gbWVtX3R5cGU7CisgICAgZGF0YS0+Zmlyc3RfcGZuID0gZmly c3RfcGZuOworICAgIC8qIE5PVEU6IFRoZSBmb2xsb3dpbmcgYXNzaWdubWVudCB0cnVuY2F0ZXMg bnIgdG8gMzItYml0cyAqLworICAgIGRhdGEtPm5yID0gbnI7CiAKLSAgICByZXR1cm4gcmM7Cisg ICAgcmV0dXJuIGRvX2RtX29wKHhjaCwgZG9tLCAxLCAmb3AsIHNpemVvZihvcCkpOwogfQogCiBp bnQgeGNfaHZtX2luamVjdF90cmFwKApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9kbS5j IGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCmluZGV4IDBkY2Q0NTQuLjk2OWI2OGMgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAg LTE2MCw2ICsxNjAsMTYgQEAgc3RhdGljIGludCBkbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUoc3Ry dWN0IGRvbWFpbiAqZCwgdWludDhfdCBsaW5rLAogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMg Ym9vbF90IGRtX29wX2FsbG93X3AybV90eXBlX2NoYW5nZShwMm1fdHlwZV90IG9sZCwgcDJtX3R5 cGVfdCBuZXcpCit7CisgICAgaWYgKCBwMm1faXNfcmFtKG9sZCkgfHwKKyAgICAgICAgIChwMm1f aXNfaG9sZShvbGQpICYmIG5ldyA9PSBwMm1fbW1pb19kbSkgfHwKKyAgICAgICAgIChvbGQgPT0g cDJtX2lvcmVxX3NlcnZlciAmJiBuZXcgPT0gcDJtX3JhbV9ydykgKQorICAgICAgICByZXR1cm4g MTsKKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGRtX29wX21vZGlmaWVkX21lbW9y eShzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fcGZuX3QgKmZpcnN0X3BmbiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbnIpCiB7CkBAIC0yMDUsNiArMjE1LDc5 IEBAIHN0YXRpYyBpbnQgZG1fb3BfbW9kaWZpZWRfbWVtb3J5KHN0cnVjdCBkb21haW4gKmQsIHhl bl9wZm5fdCAqZmlyc3RfcGZuLAogICAgIHJldHVybiByYzsKIH0KIAorCitzdGF0aWMgaW50IGRt X29wX3NldF9tZW1fdHlwZShzdHJ1Y3QgZG9tYWluICpkLCBodm1tZW1fdHlwZV90IG1lbV90eXBl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90ICpmaXJzdF9wZm4sIHVu c2lnbmVkIGludCAqbnIpCit7CisgICAgeGVuX3Bmbl90IGxhc3RfcGZuID0gKmZpcnN0X3BmbiAr ICpuciAtIDE7CisgICAgdW5zaWduZWQgaW50IGl0ZXI7CisgICAgaW50IHJjOworCisgICAgLyog SW50ZXJmYWNlIHR5cGVzIHRvIGludGVybmFsIHAybSB0eXBlcyAqLworICAgIHN0YXRpYyBjb25z dCBwMm1fdHlwZV90IG1lbXR5cGVbXSA9IHsKKyAgICAgICAgW0hWTU1FTV9yYW1fcnddICA9IHAy bV9yYW1fcncsCisgICAgICAgIFtIVk1NRU1fcmFtX3JvXSAgPSBwMm1fcmFtX3JvLAorICAgICAg ICBbSFZNTUVNX21taW9fZG1dID0gcDJtX21taW9fZG0sCisgICAgICAgIFtIVk1NRU1fdW51c2Vk XSA9IHAybV9pbnZhbGlkLAorICAgICAgICBbSFZNTUVNX2lvcmVxX3NlcnZlcl0gPSBwMm1faW9y ZXFfc2VydmVyCisgICAgfTsKKworICAgIGlmICggKCpmaXJzdF9wZm4gPiBsYXN0X3BmbikgfHwK KyAgICAgICAgIChsYXN0X3BmbiA+IGRvbWFpbl9nZXRfbWF4aW11bV9ncGZuKGQpKSApCisgICAg ICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCBtZW1fdHlwZSA+PSBBUlJBWV9TSVpFKG1l bXR5cGUpIHx8CisgICAgICAgICB1bmxpa2VseShtZW1fdHlwZSA9PSBIVk1NRU1fdW51c2VkKSAp CisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaXRlciA9IDA7CisgICAgcmMgPSAwOwor ICAgIHdoaWxlICggaXRlciA8ICpuciApCisgICAgeworICAgICAgICB1bnNpZ25lZCBsb25nIHBm biA9ICpmaXJzdF9wZm4gKyBpdGVyOworICAgICAgICBwMm1fdHlwZV90IHQ7CisKKyAgICAgICAg Z2V0X2dmbl91bnNoYXJlKGQsIHBmbiwgJnQpOworICAgICAgICBpZiAoIHAybV9pc19wYWdpbmco dCkgKQorICAgICAgICB7CisgICAgICAgICAgICBwdXRfZ2ZuKGQsIHBmbik7CisgICAgICAgICAg ICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBwZm4pOworICAgICAgICAgICAgcmMgPSAtRUFH QUlOOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBwMm1faXNf c2hhcmVkKHQpICkKKyAgICAgICAgeworICAgICAgICAgICAgcHV0X2dmbihkLCBwZm4pOworICAg ICAgICAgICAgcmMgPSAtRUFHQUlOOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg ICAgICAgaWYgKCAhZG1fb3BfYWxsb3dfcDJtX3R5cGVfY2hhbmdlKHQsIG1lbXR5cGVbbWVtX3R5 cGVdKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKKyAgICAgICAg ICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAg ICAgcmMgPSBwMm1fY2hhbmdlX3R5cGVfb25lKGQsIHBmbiwgdCwgbWVtdHlwZVttZW1fdHlwZV0p OworICAgICAgICBwdXRfZ2ZuKGQsIHBmbik7CisKKyAgICAgICAgaWYgKCByYyApCisgICAgICAg ICAgICBicmVhazsKKworICAgICAgICAvKiBDaGVjayBmb3IgY29udGludWF0aW9uIGlmIGl0J3Mg bm90IHRoZSBsYXN0IGludGVyYXRpb24gKi8KKyAgICAgICAgaWYgKCAoKytpdGVyIDwgKm5yKSAm JiBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmMg PSAtRVJFU1RBUlQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAg ICpmaXJzdF9wZm4gKz0gaXRlcjsKKyAgICAqbnIgLT0gaXRlcjsKKworICAgIHJldHVybiByYzsK K30KKwogbG9uZyBkb19kbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgbnJfYnVmcywKICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5f ZG1fb3BfYnVmX3QpIGJ1ZnMpCkBAIC0zMzEsNiArNDE0LDE1IEBAIGxvbmcgZG9fZG1fb3AoZG9t aWRfdCBkb21pZCwKICAgICAgICAgcmMgPSBkbV9vcF9tb2RpZmllZF9tZW1vcnkoZCwgJmRhdGEt PmZpcnN0X3BmbiwgJmRhdGEtPm5yKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2Ug RE1PUF9zZXRfbWVtX3R5cGU6CisgICAgeworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9t ZW1fdHlwZSAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5zZXRfbWVtX3R5cGU7CisKKyAgICAg ICAgcmMgPSBkbV9vcF9zZXRfbWVtX3R5cGUoZCwgZGF0YS0+bWVtX3R5cGUsICZkYXRhLT5maXJz dF9wZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhLT5ucik7CisgICAg ICAgIGJyZWFrOworICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICByYyA9IC1FT1BOT1RTVVBQ OwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94 ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDNiMmU5ZDUuLjgzYzQwNjMgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAt NTI0OSwxMzIgKzUyNDksMTEgQEAgc3RhdGljIGludCBodm1vcF9nZXRfbWVtX3R5cGUoCiAgICAg cmV0dXJuIHJjOwogfQogCi0vKgotICogTm90ZSB0aGF0IHRoaXMgdmFsdWUgaXMgZWZmZWN0aXZl bHkgcGFydCBvZiB0aGUgQUJJLCBldmVuIGlmIHdlIGRvbid0IG5lZWQKLSAqIHRvIG1ha2UgaXQg YSBmb3JtYWwgcGFydCBvZiBpdDogQSBndWVzdCBzdXNwZW5kZWQgZm9yIG1pZ3JhdGlvbiBpbiB0 aGUKLSAqIG1pZGRsZSBvZiBhIGNvbnRpbnVhdGlvbiB3b3VsZCBmYWlsIHRvIHdvcmsgaWYgcmVz dW1lZCBvbiBhIGh5cGVydmlzb3IKLSAqIHVzaW5nIGEgZGlmZmVyZW50IHZhbHVlLgotICovCi0j ZGVmaW5lIEhWTU9QX29wX21hc2sgMHhmZgotCi1zdGF0aWMgYm9vbF90IGh2bV9hbGxvd19wMm1f dHlwZV9jaGFuZ2UocDJtX3R5cGVfdCBvbGQsIHAybV90eXBlX3QgbmV3KQotewotICAgIGlmICgg cDJtX2lzX3JhbShvbGQpIHx8Ci0gICAgICAgICAocDJtX2lzX2hvbGUob2xkKSAmJiBuZXcgPT0g cDJtX21taW9fZG0pIHx8Ci0gICAgICAgICAob2xkID09IHAybV9pb3JlcV9zZXJ2ZXIgJiYgbmV3 ID09IHAybV9yYW1fcncpICkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICByZXR1cm4gMDsKLX0K LQotc3RhdGljIGludCBodm1vcF9zZXRfbWVtX3R5cGUoCi0gICAgWEVOX0dVRVNUX0hBTkRMRV9Q QVJBTSh4ZW5faHZtX3NldF9tZW1fdHlwZV90KSBhcmcsCi0gICAgdW5zaWduZWQgbG9uZyAqaXRl cikKLXsKLSAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2l0ZXIgPSAqaXRlcjsKLSAgICBzdHJ1Y3Qg eGVuX2h2bV9zZXRfbWVtX3R5cGUgYTsKLSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGludCBy YzsKLQotICAgIC8qIEludGVyZmFjZSB0eXBlcyB0byBpbnRlcm5hbCBwMm0gdHlwZXMgKi8KLSAg ICBzdGF0aWMgY29uc3QgcDJtX3R5cGVfdCBtZW10eXBlW10gPSB7Ci0gICAgICAgIFtIVk1NRU1f cmFtX3J3XSAgPSBwMm1fcmFtX3J3LAotICAgICAgICBbSFZNTUVNX3JhbV9yb10gID0gcDJtX3Jh bV9ybywKLSAgICAgICAgW0hWTU1FTV9tbWlvX2RtXSA9IHAybV9tbWlvX2RtLAotICAgICAgICBb SFZNTUVNX3VudXNlZF0gPSBwMm1faW52YWxpZCwKLSAgICAgICAgW0hWTU1FTV9pb3JlcV9zZXJ2 ZXJdID0gcDJtX2lvcmVxX3NlcnZlcgotICAgIH07Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVz dCgmYSwgYXJnLCAxKSApCi0gICAgICAgIHJldHVybiAtRUZBVUxUOwotCi0gICAgcmMgPSByY3Vf bG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKGEuZG9taWQsICZkKTsKLSAgICBpZiAoIHJjICE9IDAg KQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAhaXNf aHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSB4c21faHZtX2Nv bnRyb2woWFNNX0RNX1BSSVYsIGQsIEhWTU9QX3NldF9tZW1fdHlwZSk7Ci0gICAgaWYgKCByYyAp Ci0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggYS5uciA8 IHN0YXJ0X2l0ZXIgfHwKLSAgICAgICAgICgoYS5maXJzdF9wZm4gKyBhLm5yIC0gMSkgPCBhLmZp cnN0X3BmbikgfHwKLSAgICAgICAgICgoYS5maXJzdF9wZm4gKyBhLm5yIC0gMSkgPiBkb21haW5f Z2V0X21heGltdW1fZ3BmbihkKSkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIGlmICggYS5o dm1tZW1fdHlwZSA+PSBBUlJBWV9TSVpFKG1lbXR5cGUpIHx8Ci0gICAgICAgICB1bmxpa2VseShh Lmh2bW1lbV90eXBlID09IEhWTU1FTV91bnVzZWQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAg ICB3aGlsZSAoIGEubnIgPiBzdGFydF9pdGVyICkKLSAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGxv bmcgcGZuID0gYS5maXJzdF9wZm4gKyBzdGFydF9pdGVyOwotICAgICAgICBwMm1fdHlwZV90IHQ7 Ci0KLSAgICAgICAgZ2V0X2dmbl91bnNoYXJlKGQsIHBmbiwgJnQpOwotICAgICAgICBpZiAoIHAy bV9pc19wYWdpbmcodCkgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwdXRfZ2ZuKGQsIHBmbik7 Ci0gICAgICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBwZm4pOwotICAgICAgICAg ICAgcmMgPSAtRUFHQUlOOwotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAgIH0KLSAgICAg ICAgaWYgKCBwMm1faXNfc2hhcmVkKHQpICkKLSAgICAgICAgewotICAgICAgICAgICAgcHV0X2dm bihkLCBwZm4pOwotICAgICAgICAgICAgcmMgPSAtRUFHQUlOOwotICAgICAgICAgICAgZ290byBv dXQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCAhaHZtX2FsbG93X3AybV90eXBlX2NoYW5nZSh0 LCBtZW10eXBlW2EuaHZtbWVtX3R5cGVdKSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHB1dF9n Zm4oZCwgcGZuKTsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0KLSAgICAgICAg cmMgPSBwMm1fY2hhbmdlX3R5cGVfb25lKGQsIHBmbiwgdCwgbWVtdHlwZVthLmh2bW1lbV90eXBl XSk7Ci0gICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKLQotICAgICAgICBpZiAoIHJjICkKLSAgICAg ICAgICAgIGdvdG8gb3V0OwotCi0gICAgICAgIC8qIENoZWNrIGZvciBjb250aW51YXRpb24gaWYg aXQncyBub3QgdGhlIGxhc3QgaW50ZXJhdGlvbiAqLwotICAgICAgICBpZiAoIGEubnIgPiArK3N0 YXJ0X2l0ZXIgJiYgIShzdGFydF9pdGVyICYgSFZNT1Bfb3BfbWFzaykgJiYKLSAgICAgICAgICAg ICBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKLSAgICAgICAgewotICAgICAgICAgICAgcmMg PSAtRVJFU1RBUlQ7Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotICAgIH0KLSAg ICByYyA9IDA7Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgKml0ZXIg PSBzdGFydF9pdGVyOwotCi0gICAgcmV0dXJuIHJjOwotfQotCiBsb25nIGRvX2h2bV9vcCh1bnNp Z25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKIHsKLSAgICB1 bnNpZ25lZCBsb25nIHN0YXJ0X2l0ZXIsIG1hc2s7CiAgICAgbG9uZyByYyA9IDA7CiAKLSAgICBz d2l0Y2ggKCBvcCAmIEhWTU9QX29wX21hc2sgKQotICAgIHsKLSAgICBkZWZhdWx0OgotICAgICAg ICBtYXNrID0gfjBVTDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBIVk1PUF9zZXRfbWVtX3R5 cGU6Ci0gICAgICAgIG1hc2sgPSBIVk1PUF9vcF9tYXNrOwotICAgICAgICBicmVhazsKLSAgICB9 Ci0KLSAgICBzdGFydF9pdGVyID0gb3AgJiB+bWFzazsKLSAgICBzd2l0Y2ggKCBvcCAmPSBtYXNr ICkKKyAgICBzd2l0Y2ggKCBvcCApCiAgICAgewogICAgIGNhc2UgSFZNT1Bfc2V0X2V2dGNobl91 cGNhbGxfdmVjdG9yOgogICAgICAgICByYyA9IGh2bW9wX3NldF9ldnRjaG5fdXBjYWxsX3ZlY3Rv cigKQEAgLTU0MDUsMTIgKzUyODQsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9w LCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgICAgIGd1ZXN0X2hh bmRsZV9jYXN0KGFyZywgeGVuX2h2bV9nZXRfbWVtX3R5cGVfdCkpOwogICAgICAgICBicmVhazsK IAotICAgIGNhc2UgSFZNT1Bfc2V0X21lbV90eXBlOgotICAgICAgICByYyA9IGh2bW9wX3NldF9t ZW1fdHlwZSgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9zZXRf bWVtX3R5cGVfdCksCi0gICAgICAgICAgICAmc3RhcnRfaXRlcik7Ci0gICAgICAgIGJyZWFrOwot CiAgICAgY2FzZSBIVk1PUF9wYWdldGFibGVfZHlpbmc6CiAgICAgewogICAgICAgICBzdHJ1Y3Qg eGVuX2h2bV9wYWdldGFibGVfZHlpbmcgYTsKQEAgLTU1MTksMTMgKzUzOTIsNiBAQCBsb25nIGRv X2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFy ZykKICAgICB9CiAgICAgfQogCi0gICAgaWYgKCByYyA9PSAtRVJFU1RBUlQgKQotICAgIHsKLSAg ICAgICAgQVNTRVJUKCEoc3RhcnRfaXRlciAmIG1hc2spKTsKLSAgICAgICAgcmMgPSBoeXBlcmNh bGxfY3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZUEVSVklTT1JfaHZtX29wLCAibGgiLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wIHwgc3RhcnRfaXRlciwgYXJn KTsKLSAgICB9Ci0KICAgICByZXR1cm4gcmM7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3B1YmxpYy9odm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAppbmRl eCBkMjA2NWYyLi4yNDdjYWM2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2Rt X29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC0yNDUsNiArMjQ1 LDIxIEBAIHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5IHsKICAgICB1aW50NjRfdCBm aXJzdF9wZm47CiB9OwogCisvKgorICogRE1PUF9zZXRfbWVtX3R5cGU6IE5vdGlmeSB0aGF0IGEg cmVnaW9uIG9mIG1lbW9yeSBpcyB0byBiZSB0cmVhdGVkIGluIGEKKyAqICAgICAgICAgICAgICAg ICAgICBzcGVjaWZpYyB3YXkuIChTZWUgZGVmaW5pdGlvbiBvZiBodm1tZW1fdHlwZV90KS4KKyAq LworI2RlZmluZSBETU9QX3NldF9tZW1fdHlwZSAxMgorCitzdHJ1Y3QgeGVuX2RtX29wX3NldF9t ZW1fdHlwZSB7CisgICAgLyogSU4gLSBudW1iZXIgb2YgY29udGlndW91cyBwYWdlcyAqLworICAg IHVpbnQzMl90IG5yOworICAgIC8qIElOIC0gZmlyc3QgcGZuIGluIHJlZ2lvbiAqLworICAgIHVp bnQ2NF90IGZpcnN0X3BmbjsKKyAgICAvKiBJTiAtIG5ldyBodm1tZW1fdHlwZV90IG9mIHJlZ2lv biAqLworICAgIHVpbnQxNl90IG1lbV90eXBlOworfTsKKwogCiBzdHJ1Y3QgeGVuX2RtX29wIHsK ICAgICB1aW50MzJfdCBvcDsKQEAgLTI2MCw2ICsyNzUsNyBAQCBzdHJ1Y3QgeGVuX2RtX29wIHsK ICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfaXNhX2lycV9sZXZlbCBzZXRfaXNhX2lycV9s ZXZlbDsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgc2V0X3Bj aV9saW5rX3JvdXRlOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSBt b2RpZmllZF9tZW1vcnk7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X21lbV90eXBlIHNl dF9tZW1fdHlwZTsKICAgICB9IHU7CiB9OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJs aWMvaHZtL2h2bV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAppbmRleCA0 NTg3OWNmLi4yZTlhMWY2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9v cC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKQEAgLTEzMSw4ICsxMzEs NiBAQCBzdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgewogdHlwZWRlZiBzdHJ1Y3QgeGVu X2h2bV9tb2RpZmllZF9tZW1vcnkgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnlfdDsKIERFRklORV9Y RU5fR1VFU1RfSEFORExFKHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5X3QpOwogCi0jZW5kaWYgLyog X19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA5MDAgKi8KLQogI2RlZmluZSBIVk1P UF9zZXRfbWVtX3R5cGUgICAgOAogLyogTm90aWZ5IHRoYXQgYSByZWdpb24gb2YgbWVtb3J5IGlz IHRvIGJlIHRyZWF0ZWQgaW4gYSBzcGVjaWZpYyB3YXkuICovCiBzdHJ1Y3QgeGVuX2h2bV9zZXRf bWVtX3R5cGUgewpAQCAtMTQ4LDYgKzE0Niw4IEBAIHN0cnVjdCB4ZW5faHZtX3NldF9tZW1fdHlw ZSB7CiB0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3NldF9tZW1fdHlwZSB4ZW5faHZtX3NldF9tZW1f dHlwZV90OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9zZXRfbWVtX3R5cGVfdCk7 CiAKKyNlbmRpZiAvKiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDkwMCAqLwor CiAjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICov CiAKIC8qIEhpbnQgZnJvbSBQViBkcml2ZXJzIGZvciBwYWdldGFibGUgZGVzdHJ1Y3Rpb24uICov CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94 c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmluZGV4IDIwNDFjYTUuLjEyNTIxMGIgMTAw NjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94 c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBAIC0yNjAsNyArMjYwLDcgQEAgY2xhc3Mg aHZtCiAgICAgYmluZF9pcnEKICMgWEVOX0RPTUNUTF9waW5fbWVtX2NhY2hlYXR0cgogICAgIGNh Y2hlYXR0cgotIyBIVk1PUF9nZXRfbWVtX3R5cGUsIEhWTU9QX3NldF9tZW1fdHlwZSwKKyMgSFZN T1BfZ2V0X21lbV90eXBlLAogIyBIVk1PUF9zZXRfbWVtX2FjY2VzcywgSFZNT1BfZ2V0X21lbV9h Y2Nlc3MsIEhWTU9QX3BhZ2V0YWJsZV9keWluZywKICMgSFZNT1BfaW5qZWN0X3RyYXAKICAgICBo dm1jdGwKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==