From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v4 04/16] xen: Use the typesafe mfn and gfn in map_mmio_regions... Date: Mon, 27 Jun 2016 17:54:00 +0100 Message-ID: <1467046452-1261-5-git-send-email-julien.grall@arm.com> References: <1467046452-1261-1-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1467046452-1261-1-git-send-email-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , wei.chen@linaro.org List-Id: xen-devel@lists.xenproject.org dG8gYXZvaWQgbWl4aW5nIG1hY2hpbmUgZnJhbWUgd2l0aCBndWVzdCBmcmFtZS4KClNpZ25lZC1v ZmYtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkFja2VkLWJ5OiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgotLS0KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8 c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9y Z2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8 aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29u cmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDYzogV2Vp IExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KCiAgICBDaGFuZ2VzIGluIHYzOgogICAgICAgIC0g VXNlIG1mbl9hZGQgd2hlbiBpdCBpcyBwb3NzaWJsZQogICAgICAgIC0gQWRkIEphbidzIGFja2Vk LWJ5Ci0tLQogeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jICAgICAgfCAgNCArKy0tCiB4ZW4v YXJjaC9hcm0vZ2ljLXYyLmMgICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL2FybS9wMm0u YyAgICAgICAgICAgICAgIHwgMjIgKysrKysrKysrKystLS0tLS0tLS0tLQogeGVuL2FyY2gvYXJt L3BsYXRmb3Jtcy9leHlub3M1LmMgfCAgOCArKysrLS0tLQogeGVuL2FyY2gvYXJtL3BsYXRmb3Jt cy9vbWFwNS5jICAgfCAxNiArKysrKysrKy0tLS0tLS0tCiB4ZW4vYXJjaC9hcm0vdmdpYy12Mi5j ICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAgICAgICAgIHwg MTggKysrKysrKysrKy0tLS0tLS0tCiB4ZW4vY29tbW9uL2RvbWN0bC5jICAgICAgICAgICAgICB8 ICA0ICsrLS0KIHhlbi9pbmNsdWRlL3hlbi9wMm0tY29tbW9uLmggICAgIHwgIDggKysrKy0tLS0K IDkgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFp bl9idWlsZC5jCmluZGV4IDkwMzU0ODYuLjQ5MTg1ZjAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKQEAgLTEw MzYsOSArMTAzNiw5IEBAIHN0YXRpYyBpbnQgbWFwX3JhbmdlX3RvX2RvbWFpbihjb25zdCBzdHJ1 Y3QgZHRfZGV2aWNlX25vZGUgKmRldiwKICAgICBpZiAoIG5lZWRfbWFwcGluZyApCiAgICAgewog ICAgICAgICByZXMgPSBtYXBfbW1pb19yZWdpb25zKGQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGFkZHJfdG9fcGZuKGFkZHIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF9nZm4ocGFkZHJfdG9fcGZuKGFkZHIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBESVZfUk9VTkRfVVAobGVuLCBQQUdFX1NJWkUpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBhZGRyX3RvX3BmbihhZGRyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgX21mbihwYWRkcl90b19wZm4oYWRkcikpKTsKICAgICAgICAgaWYgKCByZXMgPCAwICkK ICAgICAgICAgewogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIlVuYWJsZSB0byBtYXAg MHglIlBSSXg2NApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12Mi5jIGIveGVuL2FyY2gv YXJtL2dpYy12Mi5jCmluZGV4IDRlMmY0YzcuLjM4OTNlY2UgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L2FybS9naWMtdjIuYworKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMKQEAgLTYwMSw5ICs2MDEs OSBAQCBzdGF0aWMgaW50IGdpY3YyX21hcF9od2Rvd25fZXh0cmFfbWFwcGluZ3Moc3RydWN0IGRv bWFpbiAqZCkKICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgdjJtX2RhdGEtPmFkZHIsIHYy bV9kYXRhLT5zaXplLAogICAgICAgICAgICAgICAgdjJtX2RhdGEtPnNwaV9zdGFydCwgdjJtX2Rh dGEtPm5yX3NwaXMpOwogCi0gICAgICAgIHJldCA9IG1hcF9tbWlvX3JlZ2lvbnMoZCwgcGFkZHJf dG9fcGZuKHYybV9kYXRhLT5hZGRyKSwKKyAgICAgICAgcmV0ID0gbWFwX21taW9fcmVnaW9ucyhk LCBfZ2ZuKHBhZGRyX3RvX3Bmbih2Mm1fZGF0YS0+YWRkcikpLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERJVl9ST1VORF9VUCh2Mm1fZGF0YS0+c2l6ZSwgUEFHRV9TSVpFKSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90b19wZm4odjJtX2RhdGEtPmFkZHIpKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZuKHBhZGRyX3RvX3Bmbih2Mm1fZGF0YS0+YWRk cikpKTsKICAgICAgICAgaWYgKCByZXQgKQogICAgICAgICB7CiAgICAgICAgICAgICBwcmludGso WEVOTE9HX0VSUiAiR0lDdjI6IE1hcCB2Mm0gZnJhbWUgdG8gZCVkIGZhaWxlZC5cbiIsCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vcDJtLmMgYi94ZW4vYXJjaC9hcm0vcDJtLmMKaW5kZXggMDM5 NWE0MC4uMzQ1NjNiYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCisrKyBiL3hlbi9h cmNoL2FybS9wMm0uYwpAQCAtMTI0NSwyNyArMTI0NSwyNyBAQCBpbnQgdW5tYXBfcmVnaW9uc19y d19jYWNoZShzdHJ1Y3QgZG9tYWluICpkLAogfQogCiBpbnQgbWFwX21taW9fcmVnaW9ucyhzdHJ1 Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9n Zm4sCisgICAgICAgICAgICAgICAgICAgICBnZm5fdCBzdGFydF9nZm4sCiAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBtZm4pCisgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4pCiB7CiAgICAgcmV0dXJu IGFwcGx5X3AybV9jaGFuZ2VzKGQsIElOU0VSVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGZuX3RvX3BhZGRyKHN0YXJ0X2dmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBmbl90b19wYWRkcihzdGFydF9nZm4gKyBuciksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBmbl90b19wYWRkcihtZm4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZm5f dG9fcGFkZHIoZ2ZuX3goc3RhcnRfZ2ZuKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBmbl90b19wYWRkcihnZm5feChzdGFydF9nZm4pICsgbnIpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwZm5fdG9fcGFkZHIobWZuX3gobWZuKSksCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1BVFRSX0RFViwgMCwgcDJtX21taW9fZGlyZWN0LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkLT5hcmNoLnAybS5kZWZhdWx0X2FjY2Vzcyk7CiB9CiAKIGludCB1bm1h cF9tbWlvX3JlZ2lvbnMoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBzdGFydF9nZm4sCisgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IHN0 YXJ0X2dmbiwKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4pCisgICAgICAgICAgICAgICAgICAg ICAgIG1mbl90IG1mbikKIHsKICAgICByZXR1cm4gYXBwbHlfcDJtX2NoYW5nZXMoZCwgUkVNT1ZF LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZm5fdG9fcGFkZHIoc3RhcnRfZ2ZuKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKHN0YXJ0X2dmbiArIG5y KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKG1mbiksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBmbl90b19wYWRkcihnZm5feChzdGFydF9nZm4pKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKGdmbl94KHN0YXJ0X2dm bikgKyBuciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBmbl90b19wYWRkcihtZm5f eChtZm4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUVFJfREVWLCAwLCBwMm1f aW52YWxpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC5wMm0uZGVmYXVs dF9hY2Nlc3MpOwogfQpAQCAtMTI4MCw3ICsxMjgwLDcgQEAgaW50IG1hcF9kZXZfbW1pb19yZWdp b24oc3RydWN0IGRvbWFpbiAqZCwKICAgICBpZiAoICEobnIgJiYgaW9tZW1fYWNjZXNzX3Blcm1p dHRlZChkLCBtZm4sIG1mbiArIG5yIC0gMSkpICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBy ZXMgPSBtYXBfbW1pb19yZWdpb25zKGQsIHN0YXJ0X2dmbiwgbnIsIG1mbik7CisgICAgcmVzID0g bWFwX21taW9fcmVnaW9ucyhkLCBfZ2ZuKHN0YXJ0X2dmbiksIG5yLCBfbWZuKG1mbikpOwogICAg IGlmICggcmVzIDwgMCApCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSICJVbmFi bGUgdG8gbWFwIFslI2x4IC0gJSNseF0gaW4gRG9tJWRcbiIsCmRpZmYgLS1naXQgYS94ZW4vYXJj aC9hcm0vcGxhdGZvcm1zL2V4eW5vczUuYyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMvZXh5bm9z NS5jCmluZGV4IGJmNDk2NGQuLmM0MzkzNGYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9wbGF0 Zm9ybXMvZXh5bm9zNS5jCisrKyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMvZXh5bm9zNS5jCkBA IC04MywxMiArODMsMTIgQEAgc3RhdGljIGludCBleHlub3M1X2luaXRfdGltZSh2b2lkKQogc3Rh dGljIGludCBleHlub3M1MjUwX3NwZWNpZmljX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKIHsK ICAgICAvKiBNYXAgdGhlIGNoaXAgSUQgKi8KLSAgICBtYXBfbW1pb19yZWdpb25zKGQsIHBhZGRy X3RvX3BmbihFWFlOT1M1X1BBX0NISVBJRCksIDEsCi0gICAgICAgICAgICAgICAgICAgICBwYWRk cl90b19wZm4oRVhZTk9TNV9QQV9DSElQSUQpKTsKKyAgICBtYXBfbW1pb19yZWdpb25zKGQsIF9n Zm4ocGFkZHJfdG9fcGZuKEVYWU5PUzVfUEFfQ0hJUElEKSksIDEsCisgICAgICAgICAgICAgICAg ICAgICBfbWZuKHBhZGRyX3RvX3BmbihFWFlOT1M1X1BBX0NISVBJRCkpKTsKIAogICAgIC8qIE1h cCB0aGUgUFdNIHJlZ2lvbiAqLwotICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwgcGFkZHJfdG9fcGZu KEVYWU5PUzVfUEFfVElNRVIpLCAyLAotICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdG9fcGZu KEVYWU5PUzVfUEFfVElNRVIpKTsKKyAgICBtYXBfbW1pb19yZWdpb25zKGQsIF9nZm4ocGFkZHJf dG9fcGZuKEVYWU5PUzVfUEFfVElNRVIpKSwgMiwKKyAgICAgICAgICAgICAgICAgICAgIF9tZm4o cGFkZHJfdG9fcGZuKEVYWU5PUzVfUEFfVElNRVIpKSk7CiAKICAgICByZXR1cm4gMDsKIH0KZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMvb21hcDUuYyBiL3hlbi9hcmNoL2FybS9w bGF0Zm9ybXMvb21hcDUuYwppbmRleCBhNDliYTYyLi41Mzk1ODhlIDEwMDY0NAotLS0gYS94ZW4v YXJjaC9hcm0vcGxhdGZvcm1zL29tYXA1LmMKKysrIGIveGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy9v bWFwNS5jCkBAIC0xMDIsMjAgKzEwMiwyMCBAQCBzdGF0aWMgaW50IG9tYXA1X2luaXRfdGltZSh2 b2lkKQogc3RhdGljIGludCBvbWFwNV9zcGVjaWZpY19tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQp CiB7CiAgICAgLyogTWFwIHRoZSBQUk0gbW9kdWxlICovCi0gICAgbWFwX21taW9fcmVnaW9ucyhk LCBwYWRkcl90b19wZm4oT01BUDVfUFJNX0JBU0UpLCAyLAotICAgICAgICAgICAgICAgICAgICAg cGFkZHJfdG9fcGZuKE9NQVA1X1BSTV9CQVNFKSk7CisgICAgbWFwX21taW9fcmVnaW9ucyhkLCBf Z2ZuKHBhZGRyX3RvX3BmbihPTUFQNV9QUk1fQkFTRSkpLCAyLAorICAgICAgICAgICAgICAgICAg ICAgX21mbihwYWRkcl90b19wZm4oT01BUDVfUFJNX0JBU0UpKSk7CiAKICAgICAvKiBNYXAgdGhl IFBSTV9NUFUgKi8KLSAgICBtYXBfbW1pb19yZWdpb25zKGQsIHBhZGRyX3RvX3BmbihPTUFQNV9Q UkNNX01QVV9CQVNFKSwgMSwKLSAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3RvX3BmbihPTUFQ NV9QUkNNX01QVV9CQVNFKSk7CisgICAgbWFwX21taW9fcmVnaW9ucyhkLCBfZ2ZuKHBhZGRyX3Rv X3BmbihPTUFQNV9QUkNNX01QVV9CQVNFKSksIDEsCisgICAgICAgICAgICAgICAgICAgICBfbWZu KHBhZGRyX3RvX3BmbihPTUFQNV9QUkNNX01QVV9CQVNFKSkpOwogCiAgICAgLyogTWFwIHRoZSBX YWtldXAgR2VuICovCi0gICAgbWFwX21taW9fcmVnaW9ucyhkLCBwYWRkcl90b19wZm4oT01BUDVf V0tVUEdFTl9CQVNFKSwgMSwKLSAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3RvX3BmbihPTUFQ NV9XS1VQR0VOX0JBU0UpKTsKKyAgICBtYXBfbW1pb19yZWdpb25zKGQsIF9nZm4ocGFkZHJfdG9f cGZuKE9NQVA1X1dLVVBHRU5fQkFTRSkpLCAxLAorICAgICAgICAgICAgICAgICAgICAgX21mbihw YWRkcl90b19wZm4oT01BUDVfV0tVUEdFTl9CQVNFKSkpOwogCiAgICAgLyogTWFwIHRoZSBvbi1j aGlwIFNSQU0gKi8KLSAgICBtYXBfbW1pb19yZWdpb25zKGQsIHBhZGRyX3RvX3BmbihPTUFQNV9T UkFNX1BBKSwgMzIsCi0gICAgICAgICAgICAgICAgICAgICBwYWRkcl90b19wZm4oT01BUDVfU1JB TV9QQSkpOworICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihwYWRkcl90b19wZm4oT01BUDVf U1JBTV9QQSkpLCAzMiwKKyAgICAgICAgICAgICAgICAgICAgIF9tZm4ocGFkZHJfdG9fcGZuKE9N QVA1X1NSQU1fUEEpKSk7CiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNo L2FybS92Z2ljLXYyLmMgYi94ZW4vYXJjaC9hcm0vdmdpYy12Mi5jCmluZGV4IDlhZGI0YTkuLmNi ZTYxY2YgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92Z2ljLXYyLmMKKysrIGIveGVuL2FyY2gv YXJtL3ZnaWMtdjIuYwpAQCAtNjg4LDggKzY4OCw4IEBAIHN0YXRpYyBpbnQgdmdpY192Ml9kb21h aW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAqIE1hcCB0aGUgZ2ljIHZpcnR1YWwgY3B1 IGludGVyZmFjZSBpbiB0aGUgZ2ljIGNwdSBpbnRlcmZhY2UKICAgICAgKiByZWdpb24gb2YgdGhl IGd1ZXN0LgogICAgICAqLwotICAgIHJldCA9IG1hcF9tbWlvX3JlZ2lvbnMoZCwgcGFkZHJfdG9f cGZuKGNiYXNlKSwgY3NpemUgLyBQQUdFX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkcl90b19wZm4odmJhc2UpKTsKKyAgICByZXQgPSBtYXBfbW1pb19yZWdpb25zKGQsIF9n Zm4ocGFkZHJfdG9fcGZuKGNiYXNlKSksIGNzaXplIC8gUEFHRV9TSVpFLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgX21mbihwYWRkcl90b19wZm4odmJhc2UpKSk7CiAgICAgaWYgKCByZXQg KQogICAgICAgICByZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJt LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKaW5kZXggMTY3MzNhNC4uNjI1OGE1YiAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpA QCAtMjIxNCw5ICsyMjE0LDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBtbWlvX29yZGVyKGNvbnN0 IHN0cnVjdCBkb21haW4gKmQsCiAjZGVmaW5lIE1BUF9NTUlPX01BWF9JVEVSIDY0IC8qIHByZXR0 eSBhcmJpdHJhcnkgKi8KIAogaW50IG1hcF9tbWlvX3JlZ2lvbnMoc3RydWN0IGRvbWFpbiAqZCwK LSAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfZ2ZuLAorICAgICAgICAg ICAgICAgICAgICAgZ2ZuX3Qgc3RhcnRfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBuciwKLSAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuKQorICAg ICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuKQogewogICAgIGludCByZXQgPSAwOwogICAgIHVu c2lnbmVkIGxvbmcgaTsKQEAgLTIyMjksMTAgKzIyMjksMTEgQEAgaW50IG1hcF9tbWlvX3JlZ2lv bnMoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICBpICs9IDFVTCA8PCBvcmRlciwgKytpdGVy ICkKICAgICB7CiAgICAgICAgIC8qIE9SJ2luZyBnZm4gYW5kIG1mbiB2YWx1ZXMgd2lsbCByZXR1 cm4gYW4gb3JkZXIgc3VpdGFibGUgdG8gYm90aC4gKi8KLSAgICAgICAgZm9yICggb3JkZXIgPSBt bWlvX29yZGVyKGQsIChzdGFydF9nZm4gKyBpKSB8IChtZm4gKyBpKSwgbnIgLSBpKTsgOworICAg ICAgICBmb3IgKCBvcmRlciA9IG1taW9fb3JkZXIoZCwgKGdmbl94KHN0YXJ0X2dmbikgKyBpKSB8 IChtZm5feChtZm4pICsgaSksIG5yIC0gaSk7IDsKICAgICAgICAgICAgICAgb3JkZXIgPSByZXQg LSAxICkKICAgICAgICAgewotICAgICAgICAgICAgcmV0ID0gc2V0X21taW9fcDJtX2VudHJ5KGQs IHN0YXJ0X2dmbiArIGksIF9tZm4obWZuICsgaSksIG9yZGVyLAorICAgICAgICAgICAgcmV0ID0g c2V0X21taW9fcDJtX2VudHJ5KGQsIGdmbl94KHN0YXJ0X2dmbikgKyBpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl9hZGQobWZuLCBpKSwgb3JkZXIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX2dldF9ob3N0cDJtKGQpLT5kZWZhdWx0 X2FjY2Vzcyk7CiAgICAgICAgICAgICBpZiAoIHJldCA8PSAwICkKICAgICAgICAgICAgICAgICBi cmVhazsKQEAgLTIyNDYsOSArMjI0Nyw5IEBAIGludCBtYXBfbW1pb19yZWdpb25zKHN0cnVjdCBk b21haW4gKmQsCiB9CiAKIGludCB1bm1hcF9tbWlvX3JlZ2lvbnMoc3RydWN0IGRvbWFpbiAqZCwK LSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9nZm4sCisgICAgICAg ICAgICAgICAgICAgICAgIGdmbl90IHN0YXJ0X2dmbiwKICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBuciwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBt Zm4pCisgICAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbikKIHsKICAgICBpbnQgcmV0ID0g MDsKICAgICB1bnNpZ25lZCBsb25nIGk7CkBAIC0yMjYxLDEwICsyMjYyLDExIEBAIGludCB1bm1h cF9tbWlvX3JlZ2lvbnMoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICBpICs9IDFVTCA8PCBv cmRlciwgKytpdGVyICkKICAgICB7CiAgICAgICAgIC8qIE9SJ2luZyBnZm4gYW5kIG1mbiB2YWx1 ZXMgd2lsbCByZXR1cm4gYW4gb3JkZXIgc3VpdGFibGUgdG8gYm90aC4gKi8KLSAgICAgICAgZm9y ICggb3JkZXIgPSBtbWlvX29yZGVyKGQsIChzdGFydF9nZm4gKyBpKSB8IChtZm4gKyBpKSwgbnIg LSBpKTsgOworICAgICAgICBmb3IgKCBvcmRlciA9IG1taW9fb3JkZXIoZCwgKGdmbl94KHN0YXJ0 X2dmbikgKyBpKSB8IChtZm5feChtZm4pICsgaSksIG5yIC0gaSk7IDsKICAgICAgICAgICAgICAg b3JkZXIgPSByZXQgLSAxICkKICAgICAgICAgewotICAgICAgICAgICAgcmV0ID0gY2xlYXJfbW1p b19wMm1fZW50cnkoZCwgc3RhcnRfZ2ZuICsgaSwgX21mbihtZm4gKyBpKSwgb3JkZXIpOworICAg ICAgICAgICAgcmV0ID0gY2xlYXJfbW1pb19wMm1fZW50cnkoZCwgZ2ZuX3goc3RhcnRfZ2ZuKSAr IGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fYWRkKG1mbiwg aSksIG9yZGVyKTsKICAgICAgICAgICAgIGlmICggcmV0IDw9IDAgKQogICAgICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICAgICAgQVNTRVJUKHJldCA8PSBvcmRlcik7CmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL2RvbWN0bC5jIGIveGVuL2NvbW1vbi9kb21jdGwuYwppbmRleCBlNDM5MDRlLi5i Nzg0ZTZjIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCisrKyBiL3hlbi9jb21tb24v ZG9tY3RsLmMKQEAgLTEwNzQsNyArMTA3NCw3IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAgICAgICAgICAgICAgICAi bWVtb3J5X21hcDphZGQ6IGRvbSVkIGdmbj0lbHggbWZuPSVseCBucj0lbHhcbiIsCiAgICAgICAg ICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBnZm4sIG1mbiwgbnJfbWZucyk7CiAKLSAgICAgICAg ICAgIHJldCA9IG1hcF9tbWlvX3JlZ2lvbnMoZCwgZ2ZuLCBucl9tZm5zLCBtZm4pOworICAgICAg ICAgICAgcmV0ID0gbWFwX21taW9fcmVnaW9ucyhkLCBfZ2ZuKGdmbiksIG5yX21mbnMsIF9tZm4o bWZuKSk7CiAgICAgICAgICAgICBpZiAoIHJldCA8IDAgKQogICAgICAgICAgICAgICAgIHByaW50 ayhYRU5MT0dfR19XQVJOSU5HCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW1vcnlfbWFwOmZh aWw6IGRvbSVkIGdmbj0lbHggbWZuPSVseCBucj0lbHggcmV0OiVsZFxuIiwKQEAgLTEwODYsNyAr MTA4Niw3IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0 bF90KSB1X2RvbWN0bCkKICAgICAgICAgICAgICAgICAgICAibWVtb3J5X21hcDpyZW1vdmU6IGRv bSVkIGdmbj0lbHggbWZuPSVseCBucj0lbHhcbiIsCiAgICAgICAgICAgICAgICAgICAgZC0+ZG9t YWluX2lkLCBnZm4sIG1mbiwgbnJfbWZucyk7CiAKLSAgICAgICAgICAgIHJldCA9IHVubWFwX21t aW9fcmVnaW9ucyhkLCBnZm4sIG5yX21mbnMsIG1mbik7CisgICAgICAgICAgICByZXQgPSB1bm1h cF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihnZm4pLCBucl9tZm5zLCBfbWZuKG1mbikpOwogICAgICAg ICAgICAgaWYgKCByZXQgPCAwICYmIGlzX2hhcmR3YXJlX2RvbWFpbihjdXJyZW50LT5kb21haW4p ICkKICAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgogICAgICAgICAgICAgICAgICAg ICAgICAibWVtb3J5X21hcDogZXJyb3IgJWxkIHJlbW92aW5nIGRvbSVkIGFjY2VzcyB0byBbJWx4 LCVseF1cbiIsCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcDJtLWNvbW1vbi5oIGIveGVu L2luY2x1ZGUveGVuL3AybS1jb21tb24uaAppbmRleCA2Mzc0YTViLi5iNGY5MDc3IDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4vcDJtLWNvbW1vbi5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9w Mm0tY29tbW9uLmgKQEAgLTM3LDEzICszNywxMyBAQCB0eXBlZGVmIGVudW0gewogICogICogdGhl IGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2UgdG8gbWFwLCBzdGFydGluZyBmcm9tIHRoZSBt YWNoaW5lCiAgKiAgICogZnJhbWUgbnVtYmVyIG1mbi4gKi8KIGludCBtYXBfbW1pb19yZWdpb25z KHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0 YXJ0X2dmbiwKKyAgICAgICAgICAgICAgICAgICAgIGdmbl90IHN0YXJ0X2dmbiwKICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIG1mbik7CisgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4pOwogaW50IHVu bWFwX21taW9fcmVnaW9ucyhzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIHN0YXJ0X2dmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3Qg c3RhcnRfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yLAotICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbik7CisgICAgICAgICAgICAgICAg ICAgICAgIG1mbl90IG1mbik7CiAKIC8qCiAgKiBTZXQgYWNjZXNzIHR5cGUgZm9yIGEgcmVnaW9u IG9mIGdmbnMuCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==