From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v3 6/8] xen: Use the typesafe mfn and gfn in map_mmio_regions... Date: Tue, 21 Jun 2016 14:20:41 +0100 Message-ID: <1466515243-27264-7-git-send-email-julien.grall@arm.com> References: <1466515243-27264-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: <1466515243-27264-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 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 LS1naXQgYS94ZW4vYXJjaC9hcm0vcDJtLmMgYi94ZW4vYXJjaC9hcm0vcDJtLmMKaW5kZXggYWE0 ZTc3NC4uNDdjYjM4MyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCisrKyBiL3hlbi9h 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 dHRlZChkLCBzdGFydF9nZm4sIHN0YXJ0X2dmbiArIG5yIC0gMSkpICkKICAgICAgICAgcmV0dXJu IDA7CiAKLSAgICByZXMgPSBtYXBfbW1pb19yZWdpb25zKGQsIHN0YXJ0X2dmbiwgbnIsIG1mbik7 CisgICAgcmVzID0gbWFwX21taW9fcmVnaW9ucyhkLCBfZ2ZuKHN0YXJ0X2dmbiksIG5yLCBfbWZu KG1mbikpOwogICAgIGlmICggcmVzIDwgMCApCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9H X0dfRVJSICJVbmFibGUgdG8gbWFwIFslI2x4IC0gJSNseF0gaW4gRG9tJWRcbiIsCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL2V4eW5vczUuYyBiL3hlbi9hcmNoL2FybS9wbGF0 Zm9ybXMvZXh5bm9zNS5jCmluZGV4IGJmNDk2NGQuLmM0MzkzNGYgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL2FybS9wbGF0Zm9ybXMvZXh5bm9zNS5jCisrKyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMv ZXh5bm9zNS5jCkBAIC04MywxMiArODMsMTIgQEAgc3RhdGljIGludCBleHlub3M1X2luaXRfdGlt ZSh2b2lkKQogc3RhdGljIGludCBleHlub3M1MjUwX3NwZWNpZmljX21hcHBpbmcoc3RydWN0IGRv bWFpbiAqZCkKIHsKICAgICAvKiBNYXAgdGhlIGNoaXAgSUQgKi8KLSAgICBtYXBfbW1pb19yZWdp b25zKGQsIHBhZGRyX3RvX3BmbihFWFlOT1M1X1BBX0NISVBJRCksIDEsCi0gICAgICAgICAgICAg ICAgICAgICBwYWRkcl90b19wZm4oRVhZTk9TNV9QQV9DSElQSUQpKTsKKyAgICBtYXBfbW1pb19y ZWdpb25zKGQsIF9nZm4ocGFkZHJfdG9fcGZuKEVYWU5PUzVfUEFfQ0hJUElEKSksIDEsCisgICAg ICAgICAgICAgICAgICAgICBfbWZuKHBhZGRyX3RvX3BmbihFWFlOT1M1X1BBX0NISVBJRCkpKTsK IAogICAgIC8qIE1hcCB0aGUgUFdNIHJlZ2lvbiAqLwotICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwg cGFkZHJfdG9fcGZuKEVYWU5PUzVfUEFfVElNRVIpLCAyLAotICAgICAgICAgICAgICAgICAgICAg cGFkZHJfdG9fcGZuKEVYWU5PUzVfUEFfVElNRVIpKTsKKyAgICBtYXBfbW1pb19yZWdpb25zKGQs IF9nZm4ocGFkZHJfdG9fcGZuKEVYWU5PUzVfUEFfVElNRVIpKSwgMiwKKyAgICAgICAgICAgICAg ICAgICAgIF9tZm4ocGFkZHJfdG9fcGZuKEVYWU5PUzVfUEFfVElNRVIpKSk7CiAKICAgICByZXR1 cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMvb21hcDUuYyBiL3hl bi9hcmNoL2FybS9wbGF0Zm9ybXMvb21hcDUuYwppbmRleCBhNDliYTYyLi41Mzk1ODhlIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL29tYXA1LmMKKysrIGIveGVuL2FyY2gvYXJt L3BsYXRmb3Jtcy9vbWFwNS5jCkBAIC0xMDIsMjAgKzEwMiwyMCBAQCBzdGF0aWMgaW50IG9tYXA1 X2luaXRfdGltZSh2b2lkKQogc3RhdGljIGludCBvbWFwNV9zcGVjaWZpY19tYXBwaW5nKHN0cnVj dCBkb21haW4gKmQpCiB7CiAgICAgLyogTWFwIHRoZSBQUk0gbW9kdWxlICovCi0gICAgbWFwX21t aW9fcmVnaW9ucyhkLCBwYWRkcl90b19wZm4oT01BUDVfUFJNX0JBU0UpLCAyLAotICAgICAgICAg ICAgICAgICAgICAgcGFkZHJfdG9fcGZuKE9NQVA1X1BSTV9CQVNFKSk7CisgICAgbWFwX21taW9f cmVnaW9ucyhkLCBfZ2ZuKHBhZGRyX3RvX3BmbihPTUFQNV9QUk1fQkFTRSkpLCAyLAorICAgICAg ICAgICAgICAgICAgICAgX21mbihwYWRkcl90b19wZm4oT01BUDVfUFJNX0JBU0UpKSk7CiAKICAg ICAvKiBNYXAgdGhlIFBSTV9NUFUgKi8KLSAgICBtYXBfbW1pb19yZWdpb25zKGQsIHBhZGRyX3Rv X3BmbihPTUFQNV9QUkNNX01QVV9CQVNFKSwgMSwKLSAgICAgICAgICAgICAgICAgICAgIHBhZGRy X3RvX3BmbihPTUFQNV9QUkNNX01QVV9CQVNFKSk7CisgICAgbWFwX21taW9fcmVnaW9ucyhkLCBf Z2ZuKHBhZGRyX3RvX3BmbihPTUFQNV9QUkNNX01QVV9CQVNFKSksIDEsCisgICAgICAgICAgICAg ICAgICAgICBfbWZuKHBhZGRyX3RvX3BmbihPTUFQNV9QUkNNX01QVV9CQVNFKSkpOwogCiAgICAg LyogTWFwIHRoZSBXYWtldXAgR2VuICovCi0gICAgbWFwX21taW9fcmVnaW9ucyhkLCBwYWRkcl90 b19wZm4oT01BUDVfV0tVUEdFTl9CQVNFKSwgMSwKLSAgICAgICAgICAgICAgICAgICAgIHBhZGRy X3RvX3BmbihPTUFQNV9XS1VQR0VOX0JBU0UpKTsKKyAgICBtYXBfbW1pb19yZWdpb25zKGQsIF9n Zm4ocGFkZHJfdG9fcGZuKE9NQVA1X1dLVVBHRU5fQkFTRSkpLCAxLAorICAgICAgICAgICAgICAg ICAgICAgX21mbihwYWRkcl90b19wZm4oT01BUDVfV0tVUEdFTl9CQVNFKSkpOwogCiAgICAgLyog TWFwIHRoZSBvbi1jaGlwIFNSQU0gKi8KLSAgICBtYXBfbW1pb19yZWdpb25zKGQsIHBhZGRyX3Rv X3BmbihPTUFQNV9TUkFNX1BBKSwgMzIsCi0gICAgICAgICAgICAgICAgICAgICBwYWRkcl90b19w Zm4oT01BUDVfU1JBTV9QQSkpOworICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihwYWRkcl90 b19wZm4oT01BUDVfU1JBTV9QQSkpLCAzMiwKKyAgICAgICAgICAgICAgICAgICAgIF9tZm4ocGFk ZHJfdG9fcGZuKE9NQVA1X1NSQU1fUEEpKSk7CiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL3hlbi9hcmNoL2FybS92Z2ljLXYyLmMgYi94ZW4vYXJjaC9hcm0vdmdpYy12Mi5jCmluZGV4 IDlhZGI0YTkuLmNiZTYxY2YgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92Z2ljLXYyLmMKKysr IGIveGVuL2FyY2gvYXJtL3ZnaWMtdjIuYwpAQCAtNjg4LDggKzY4OCw4IEBAIHN0YXRpYyBpbnQg dmdpY192Ml9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAqIE1hcCB0aGUgZ2lj IHZpcnR1YWwgY3B1IGludGVyZmFjZSBpbiB0aGUgZ2ljIGNwdSBpbnRlcmZhY2UKICAgICAgKiBy ZWdpb24gb2YgdGhlIGd1ZXN0LgogICAgICAqLwotICAgIHJldCA9IG1hcF9tbWlvX3JlZ2lvbnMo ZCwgcGFkZHJfdG9fcGZuKGNiYXNlKSwgY3NpemUgLyBQQUdFX1NJWkUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICBwYWRkcl90b19wZm4odmJhc2UpKTsKKyAgICByZXQgPSBtYXBfbW1pb19y ZWdpb25zKGQsIF9nZm4ocGFkZHJfdG9fcGZuKGNiYXNlKSksIGNzaXplIC8gUEFHRV9TSVpFLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgX21mbihwYWRkcl90b19wZm4odmJhc2UpKSk7CiAg ICAgaWYgKCByZXQgKQogICAgICAgICByZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvbW0vcDJtLmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKaW5kZXggMTY3MzNhNC4uNjI1 OGE1YiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS9wMm0uYwpAQCAtMjIxNCw5ICsyMjE0LDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBtbWlv X29yZGVyKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsCiAjZGVmaW5lIE1BUF9NTUlPX01BWF9JVEVS IDY0IC8qIHByZXR0eSBhcmJpdHJhcnkgKi8KIAogaW50IG1hcF9tbWlvX3JlZ2lvbnMoc3RydWN0 IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfZ2Zu LAorICAgICAgICAgICAgICAgICAgICAgZ2ZuX3Qgc3RhcnRfZ2ZuLAogICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgbWZuKQorICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuKQogewogICAgIGludCByZXQg PSAwOwogICAgIHVuc2lnbmVkIGxvbmcgaTsKQEAgLTIyMjksMTAgKzIyMjksMTEgQEAgaW50IG1h cF9tbWlvX3JlZ2lvbnMoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICBpICs9IDFVTCA8PCBv cmRlciwgKytpdGVyICkKICAgICB7CiAgICAgICAgIC8qIE9SJ2luZyBnZm4gYW5kIG1mbiB2YWx1 ZXMgd2lsbCByZXR1cm4gYW4gb3JkZXIgc3VpdGFibGUgdG8gYm90aC4gKi8KLSAgICAgICAgZm9y ICggb3JkZXIgPSBtbWlvX29yZGVyKGQsIChzdGFydF9nZm4gKyBpKSB8IChtZm4gKyBpKSwgbnIg LSBpKTsgOworICAgICAgICBmb3IgKCBvcmRlciA9IG1taW9fb3JkZXIoZCwgKGdmbl94KHN0YXJ0 X2dmbikgKyBpKSB8IChtZm5feChtZm4pICsgaSksIG5yIC0gaSk7IDsKICAgICAgICAgICAgICAg b3JkZXIgPSByZXQgLSAxICkKICAgICAgICAgewotICAgICAgICAgICAgcmV0ID0gc2V0X21taW9f cDJtX2VudHJ5KGQsIHN0YXJ0X2dmbiArIGksIF9tZm4obWZuICsgaSksIG9yZGVyLAorICAgICAg ICAgICAgcmV0ID0gc2V0X21taW9fcDJtX2VudHJ5KGQsIGdmbl94KHN0YXJ0X2dmbikgKyBpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl9hZGQobWZuLCBpKSwgb3Jk ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX2dldF9ob3N0cDJt KGQpLT5kZWZhdWx0X2FjY2Vzcyk7CiAgICAgICAgICAgICBpZiAoIHJldCA8PSAwICkKICAgICAg ICAgICAgICAgICBicmVhazsKQEAgLTIyNDYsOSArMjI0Nyw5IEBAIGludCBtYXBfbW1pb19yZWdp b25zKHN0cnVjdCBkb21haW4gKmQsCiB9CiAKIGludCB1bm1hcF9tbWlvX3JlZ2lvbnMoc3RydWN0 IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9n Zm4sCisgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IHN0YXJ0X2dmbiwKICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBtZm4pCisgICAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbikKIHsKICAg ICBpbnQgcmV0ID0gMDsKICAgICB1bnNpZ25lZCBsb25nIGk7CkBAIC0yMjYxLDEwICsyMjYyLDEx IEBAIGludCB1bm1hcF9tbWlvX3JlZ2lvbnMoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICBp ICs9IDFVTCA8PCBvcmRlciwgKytpdGVyICkKICAgICB7CiAgICAgICAgIC8qIE9SJ2luZyBnZm4g YW5kIG1mbiB2YWx1ZXMgd2lsbCByZXR1cm4gYW4gb3JkZXIgc3VpdGFibGUgdG8gYm90aC4gKi8K LSAgICAgICAgZm9yICggb3JkZXIgPSBtbWlvX29yZGVyKGQsIChzdGFydF9nZm4gKyBpKSB8ICht Zm4gKyBpKSwgbnIgLSBpKTsgOworICAgICAgICBmb3IgKCBvcmRlciA9IG1taW9fb3JkZXIoZCwg KGdmbl94KHN0YXJ0X2dmbikgKyBpKSB8IChtZm5feChtZm4pICsgaSksIG5yIC0gaSk7IDsKICAg ICAgICAgICAgICAgb3JkZXIgPSByZXQgLSAxICkKICAgICAgICAgewotICAgICAgICAgICAgcmV0 ID0gY2xlYXJfbW1pb19wMm1fZW50cnkoZCwgc3RhcnRfZ2ZuICsgaSwgX21mbihtZm4gKyBpKSwg b3JkZXIpOworICAgICAgICAgICAgcmV0ID0gY2xlYXJfbW1pb19wMm1fZW50cnkoZCwgZ2ZuX3go c3RhcnRfZ2ZuKSArIGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt Zm5fYWRkKG1mbiwgaSksIG9yZGVyKTsKICAgICAgICAgICAgIGlmICggcmV0IDw9IDAgKQogICAg ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgQVNTRVJUKHJldCA8PSBvcmRlcik7CmRp ZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWN0bC5jIGIveGVuL2NvbW1vbi9kb21jdGwuYwppbmRl eCBlNDM5MDRlLi5iNzg0ZTZjIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCisrKyBi L3hlbi9jb21tb24vZG9tY3RsLmMKQEAgLTEwNzQsNyArMTA3NCw3IEBAIGxvbmcgZG9fZG9tY3Rs KFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAgICAg ICAgICAgICAgICAibWVtb3J5X21hcDphZGQ6IGRvbSVkIGdmbj0lbHggbWZuPSVseCBucj0lbHhc biIsCiAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBnZm4sIG1mbiwgbnJfbWZucyk7 CiAKLSAgICAgICAgICAgIHJldCA9IG1hcF9tbWlvX3JlZ2lvbnMoZCwgZ2ZuLCBucl9tZm5zLCBt Zm4pOworICAgICAgICAgICAgcmV0ID0gbWFwX21taW9fcmVnaW9ucyhkLCBfZ2ZuKGdmbiksIG5y X21mbnMsIF9tZm4obWZuKSk7CiAgICAgICAgICAgICBpZiAoIHJldCA8IDAgKQogICAgICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HCiAgICAgICAgICAgICAgICAgICAgICAgICJt ZW1vcnlfbWFwOmZhaWw6IGRvbSVkIGdmbj0lbHggbWZuPSVseCBucj0lbHggcmV0OiVsZFxuIiwK QEAgLTEwODYsNyArMTA4Niw3IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAgICAgICAgICAgICAgICAibWVtb3J5X21h cDpyZW1vdmU6IGRvbSVkIGdmbj0lbHggbWZuPSVseCBucj0lbHhcbiIsCiAgICAgICAgICAgICAg ICAgICAgZC0+ZG9tYWluX2lkLCBnZm4sIG1mbiwgbnJfbWZucyk7CiAKLSAgICAgICAgICAgIHJl dCA9IHVubWFwX21taW9fcmVnaW9ucyhkLCBnZm4sIG5yX21mbnMsIG1mbik7CisgICAgICAgICAg ICByZXQgPSB1bm1hcF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihnZm4pLCBucl9tZm5zLCBfbWZuKG1m bikpOwogICAgICAgICAgICAgaWYgKCByZXQgPCAwICYmIGlzX2hhcmR3YXJlX2RvbWFpbihjdXJy ZW50LT5kb21haW4pICkKICAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgogICAgICAg ICAgICAgICAgICAgICAgICAibWVtb3J5X21hcDogZXJyb3IgJWxkIHJlbW92aW5nIGRvbSVkIGFj Y2VzcyB0byBbJWx4LCVseF1cbiIsCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcDJtLWNv bW1vbi5oIGIveGVuL2luY2x1ZGUveGVuL3AybS1jb21tb24uaAppbmRleCA2Mzc0YTViLi5iNGY5 MDc3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vcDJtLWNvbW1vbi5oCisrKyBiL3hlbi9p bmNsdWRlL3hlbi9wMm0tY29tbW9uLmgKQEAgLTM3LDEzICszNywxMyBAQCB0eXBlZGVmIGVudW0g ewogICogICogdGhlIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2UgdG8gbWFwLCBzdGFydGlu ZyBmcm9tIHRoZSBtYWNoaW5lCiAgKiAgICogZnJhbWUgbnVtYmVyIG1mbi4gKi8KIGludCBtYXBf bW1pb19yZWdpb25zKHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIHN0YXJ0X2dmbiwKKyAgICAgICAgICAgICAgICAgICAgIGdmbl90IHN0YXJ0X2dm biwKICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIG1mbik7CisgICAgICAgICAgICAgICAgICAgICBtZm5fdCBt Zm4pOwogaW50IHVubWFwX21taW9fcmVnaW9ucyhzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2dmbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgZ2ZuX3Qgc3RhcnRfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbik7CisgICAg ICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbik7CiAKIC8qCiAgKiBTZXQgYWNjZXNzIHR5cGUg Zm9yIGEgcmVnaW9uIG9mIGdmbnMuCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==