From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v6 01/14] xen: Use the typesafe mfn and gfn in map_mmio_regions... Date: Wed, 6 Jul 2016 14:01:00 +0100 Message-ID: <1467810073-27971-2-git-send-email-julien.grall@arm.com> References: <1467810073-27971-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: <1467810073-27971-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+CkFja2VkLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkg PHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CgotLS0KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0 YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K Q2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2Ug RHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFu LmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFk LndpbGtAb3JhY2xlLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDYzogV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KCiAgICBDaGFuZ2VzIGluIHY2OgogICAgICAgIC0gQWRk IFN0ZWZhbm8ncyBhY2tlZC1ieQoKICAgIENoYW5nZXMgaW4gdjM6CiAgICAgICAgLSBVc2UgbWZu X2FkZCB3aGVuIGl0IGlzIHBvc3NpYmxlCiAgICAgICAgLSBBZGQgSmFuJ3MgYWNrZWQtYnkKLS0t CiB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL2Fy bS9naWMtdjIuYyAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAg ICAgICAgICAgfCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0tCiB4ZW4vYXJjaC9hcm0vcGxhdGZv cm1zL2V4eW5vczUuYyB8ICA4ICsrKystLS0tCiB4ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL29tYXA1 LmMgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIHhlbi9hcmNoL2FybS92Z2ljLXYyLmMgICAgICAg ICAgIHwgIDQgKystLQogeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAgICAgfCAxOCArKysr KysrKysrLS0tLS0tLS0KIHhlbi9jb21tb24vZG9tY3RsLmMgICAgICAgICAgICAgIHwgIDQgKyst LQogeGVuL2luY2x1ZGUveGVuL3AybS1jb21tb24uaCAgICAgfCAgOCArKysrLS0tLQogOSBmaWxl cyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxk LmMKaW5kZXggOTAzNTQ4Ni4uNDkxODVmMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFp bl9idWlsZC5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwpAQCAtMTAzNiw5ICsx MDM2LDkgQEAgc3RhdGljIGludCBtYXBfcmFuZ2VfdG9fZG9tYWluKGNvbnN0IHN0cnVjdCBkdF9k ZXZpY2Vfbm9kZSAqZGV2LAogICAgIGlmICggbmVlZF9tYXBwaW5nICkKICAgICB7CiAgICAgICAg IHJlcyA9IG1hcF9tbWlvX3JlZ2lvbnMoZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkcl90b19wZm4oYWRkciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2dm bihwYWRkcl90b19wZm4oYWRkcikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJ Vl9ST1VORF9VUChsZW4sIFBBR0VfU0laRSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGFkZHJfdG9fcGZuKGFkZHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf bWZuKHBhZGRyX3RvX3BmbihhZGRyKSkpOwogICAgICAgICBpZiAoIHJlcyA8IDAgKQogICAgICAg ICB7CiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAiVW5hYmxlIHRvIG1hcCAweCUiUFJJ eDY0CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMgYi94ZW4vYXJjaC9hcm0vZ2lj LXYyLmMKaW5kZXggNGUyZjRjNy4uMzg5M2VjZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2dp Yy12Mi5jCisrKyBiL3hlbi9hcmNoL2FybS9naWMtdjIuYwpAQCAtNjAxLDkgKzYwMSw5IEBAIHN0 YXRpYyBpbnQgZ2ljdjJfbWFwX2h3ZG93bl9leHRyYV9tYXBwaW5ncyhzdHJ1Y3QgZG9tYWluICpk KQogICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCB2Mm1fZGF0YS0+YWRkciwgdjJtX2RhdGEt PnNpemUsCiAgICAgICAgICAgICAgICB2Mm1fZGF0YS0+c3BpX3N0YXJ0LCB2Mm1fZGF0YS0+bnJf c3Bpcyk7CiAKLSAgICAgICAgcmV0ID0gbWFwX21taW9fcmVnaW9ucyhkLCBwYWRkcl90b19wZm4o djJtX2RhdGEtPmFkZHIpLAorICAgICAgICByZXQgPSBtYXBfbW1pb19yZWdpb25zKGQsIF9nZm4o cGFkZHJfdG9fcGZuKHYybV9kYXRhLT5hZGRyKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRElWX1JPVU5EX1VQKHYybV9kYXRhLT5zaXplLCBQQUdFX1NJWkUpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBhZGRyX3RvX3Bmbih2Mm1fZGF0YS0+YWRkcikpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF9tZm4ocGFkZHJfdG9fcGZuKHYybV9kYXRhLT5hZGRyKSkpOwog ICAgICAgICBpZiAoIHJldCApCiAgICAgICAgIHsKICAgICAgICAgICAgIHByaW50ayhYRU5MT0df RVJSICJHSUN2MjogTWFwIHYybSBmcmFtZSB0byBkJWQgZmFpbGVkLlxuIiwKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9hcmNoL2FybS9wMm0uYwppbmRleCAwMzk1YTQwLi4z NDU2M2JiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJt L3AybS5jCkBAIC0xMjQ1LDI3ICsxMjQ1LDI3IEBAIGludCB1bm1hcF9yZWdpb25zX3J3X2NhY2hl KHN0cnVjdCBkb21haW4gKmQsCiB9CiAKIGludCBtYXBfbW1pb19yZWdpb25zKHN0cnVjdCBkb21h aW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2dmbiwKKyAg ICAgICAgICAgICAgICAgICAgIGdmbl90IHN0YXJ0X2dmbiwKICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1m bikKKyAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbikKIHsKICAgICByZXR1cm4gYXBwbHlf cDJtX2NoYW5nZXMoZCwgSU5TRVJULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZm5f dG9fcGFkZHIoc3RhcnRfZ2ZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZuX3Rv X3BhZGRyKHN0YXJ0X2dmbiArIG5yKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZu X3RvX3BhZGRyKG1mbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBmbl90b19wYWRk cihnZm5feChzdGFydF9nZm4pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZuX3Rv X3BhZGRyKGdmbl94KHN0YXJ0X2dmbikgKyBuciksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBmbl90b19wYWRkcihtZm5feChtZm4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTUFUVFJfREVWLCAwLCBwMm1fbW1pb19kaXJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGQtPmFyY2gucDJtLmRlZmF1bHRfYWNjZXNzKTsKIH0KIAogaW50IHVubWFwX21taW9f cmVnaW9ucyhzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBsb25nIHN0YXJ0X2dmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3Qgc3RhcnRfZ2Zu LAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yLAotICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbikKKyAgICAgICAgICAgICAgICAgICAgICAgbWZu X3QgbWZuKQogewogICAgIHJldHVybiBhcHBseV9wMm1fY2hhbmdlcyhkLCBSRU1PVkUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBmbl90b19wYWRkcihzdGFydF9nZm4pLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZm5fdG9fcGFkZHIoc3RhcnRfZ2ZuICsgbnIpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZm5fdG9fcGFkZHIobWZuKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKGdmbl94KHN0YXJ0X2dmbikpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZm5fdG9fcGFkZHIoZ2ZuX3goc3RhcnRfZ2ZuKSArIG5y KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKG1mbl94KG1mbikp LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVRUUl9ERVYsIDAsIHAybV9pbnZhbGlk LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLnAybS5kZWZhdWx0X2FjY2Vz cyk7CiB9CkBAIC0xMjgwLDcgKzEyODAsNyBAQCBpbnQgbWFwX2Rldl9tbWlvX3JlZ2lvbihzdHJ1 Y3QgZG9tYWluICpkLAogICAgIGlmICggIShuciAmJiBpb21lbV9hY2Nlc3NfcGVybWl0dGVkKGQs IG1mbiwgbWZuICsgbnIgLSAxKSkgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJlcyA9IG1h cF9tbWlvX3JlZ2lvbnMoZCwgc3RhcnRfZ2ZuLCBuciwgbWZuKTsKKyAgICByZXMgPSBtYXBfbW1p b19yZWdpb25zKGQsIF9nZm4oc3RhcnRfZ2ZuKSwgbnIsIF9tZm4obWZuKSk7CiAgICAgaWYgKCBy ZXMgPCAwICkKICAgICB7CiAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgIlVuYWJsZSB0byBt YXAgWyUjbHggLSAlI2x4XSBpbiBEb20lZFxuIiwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9w bGF0Zm9ybXMvZXh5bm9zNS5jIGIveGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy9leHlub3M1LmMKaW5k ZXggYmY0OTY0ZC4uYzQzOTM0ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy9l eHlub3M1LmMKKysrIGIveGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy9leHlub3M1LmMKQEAgLTgzLDEy ICs4MywxMiBAQCBzdGF0aWMgaW50IGV4eW5vczVfaW5pdF90aW1lKHZvaWQpCiBzdGF0aWMgaW50 IGV4eW5vczUyNTBfc3BlY2lmaWNfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIC8q IE1hcCB0aGUgY2hpcCBJRCAqLwotICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwgcGFkZHJfdG9fcGZu KEVYWU5PUzVfUEFfQ0hJUElEKSwgMSwKLSAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3RvX3Bm bihFWFlOT1M1X1BBX0NISVBJRCkpOworICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihwYWRk cl90b19wZm4oRVhZTk9TNV9QQV9DSElQSUQpKSwgMSwKKyAgICAgICAgICAgICAgICAgICAgIF9t Zm4ocGFkZHJfdG9fcGZuKEVYWU5PUzVfUEFfQ0hJUElEKSkpOwogCiAgICAgLyogTWFwIHRoZSBQ V00gcmVnaW9uICovCi0gICAgbWFwX21taW9fcmVnaW9ucyhkLCBwYWRkcl90b19wZm4oRVhZTk9T NV9QQV9USU1FUiksIDIsCi0gICAgICAgICAgICAgICAgICAgICBwYWRkcl90b19wZm4oRVhZTk9T NV9QQV9USU1FUikpOworICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihwYWRkcl90b19wZm4o RVhZTk9TNV9QQV9USU1FUikpLCAyLAorICAgICAgICAgICAgICAgICAgICAgX21mbihwYWRkcl90 b19wZm4oRVhZTk9TNV9QQV9USU1FUikpKTsKIAogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy9vbWFwNS5jIGIveGVuL2FyY2gvYXJtL3BsYXRmb3Jt cy9vbWFwNS5jCmluZGV4IGE0OWJhNjIuLjUzOTU4OGUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS9wbGF0Zm9ybXMvb21hcDUuYworKysgYi94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL29tYXA1LmMK QEAgLTEwMiwyMCArMTAyLDIwIEBAIHN0YXRpYyBpbnQgb21hcDVfaW5pdF90aW1lKHZvaWQpCiBz dGF0aWMgaW50IG9tYXA1X3NwZWNpZmljX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAg ICAvKiBNYXAgdGhlIFBSTSBtb2R1bGUgKi8KLSAgICBtYXBfbW1pb19yZWdpb25zKGQsIHBhZGRy X3RvX3BmbihPTUFQNV9QUk1fQkFTRSksIDIsCi0gICAgICAgICAgICAgICAgICAgICBwYWRkcl90 b19wZm4oT01BUDVfUFJNX0JBU0UpKTsKKyAgICBtYXBfbW1pb19yZWdpb25zKGQsIF9nZm4ocGFk ZHJfdG9fcGZuKE9NQVA1X1BSTV9CQVNFKSksIDIsCisgICAgICAgICAgICAgICAgICAgICBfbWZu KHBhZGRyX3RvX3BmbihPTUFQNV9QUk1fQkFTRSkpKTsKIAogICAgIC8qIE1hcCB0aGUgUFJNX01Q VSAqLwotICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwgcGFkZHJfdG9fcGZuKE9NQVA1X1BSQ01fTVBV X0JBU0UpLCAxLAotICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdG9fcGZuKE9NQVA1X1BSQ01f TVBVX0JBU0UpKTsKKyAgICBtYXBfbW1pb19yZWdpb25zKGQsIF9nZm4ocGFkZHJfdG9fcGZuKE9N QVA1X1BSQ01fTVBVX0JBU0UpKSwgMSwKKyAgICAgICAgICAgICAgICAgICAgIF9tZm4ocGFkZHJf dG9fcGZuKE9NQVA1X1BSQ01fTVBVX0JBU0UpKSk7CiAKICAgICAvKiBNYXAgdGhlIFdha2V1cCBH ZW4gKi8KLSAgICBtYXBfbW1pb19yZWdpb25zKGQsIHBhZGRyX3RvX3BmbihPTUFQNV9XS1VQR0VO X0JBU0UpLCAxLAotICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdG9fcGZuKE9NQVA1X1dLVVBH RU5fQkFTRSkpOworICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihwYWRkcl90b19wZm4oT01B UDVfV0tVUEdFTl9CQVNFKSksIDEsCisgICAgICAgICAgICAgICAgICAgICBfbWZuKHBhZGRyX3Rv X3BmbihPTUFQNV9XS1VQR0VOX0JBU0UpKSk7CiAKICAgICAvKiBNYXAgdGhlIG9uLWNoaXAgU1JB TSAqLwotICAgIG1hcF9tbWlvX3JlZ2lvbnMoZCwgcGFkZHJfdG9fcGZuKE9NQVA1X1NSQU1fUEEp LCAzMiwKLSAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3RvX3BmbihPTUFQNV9TUkFNX1BBKSk7 CisgICAgbWFwX21taW9fcmVnaW9ucyhkLCBfZ2ZuKHBhZGRyX3RvX3BmbihPTUFQNV9TUkFNX1BB KSksIDMyLAorICAgICAgICAgICAgICAgICAgICAgX21mbihwYWRkcl90b19wZm4oT01BUDVfU1JB TV9QQSkpKTsKIAogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Zn aWMtdjIuYyBiL3hlbi9hcmNoL2FybS92Z2ljLXYyLmMKaW5kZXggOWFkYjRhOS4uY2JlNjFjZiAx MDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMtdjIuYworKysgYi94ZW4vYXJjaC9hcm0vdmdp Yy12Mi5jCkBAIC02ODgsOCArNjg4LDggQEAgc3RhdGljIGludCB2Z2ljX3YyX2RvbWFpbl9pbml0 KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICogTWFwIHRoZSBnaWMgdmlydHVhbCBjcHUgaW50ZXJm YWNlIGluIHRoZSBnaWMgY3B1IGludGVyZmFjZQogICAgICAqIHJlZ2lvbiBvZiB0aGUgZ3Vlc3Qu CiAgICAgICovCi0gICAgcmV0ID0gbWFwX21taW9fcmVnaW9ucyhkLCBwYWRkcl90b19wZm4oY2Jh c2UpLCBjc2l6ZSAvIFBBR0VfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRy X3RvX3Bmbih2YmFzZSkpOworICAgIHJldCA9IG1hcF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihwYWRk cl90b19wZm4oY2Jhc2UpKSwgY3NpemUgLyBQQUdFX1NJWkUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBfbWZuKHBhZGRyX3RvX3Bmbih2YmFzZSkpKTsKICAgICBpZiAoIHJldCApCiAgICAg ICAgIHJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hl bi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCAxNjczM2E0Li42MjU4YTViIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC0yMjE0 LDkgKzIyMTQsOSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG1taW9fb3JkZXIoY29uc3Qgc3RydWN0 IGRvbWFpbiAqZCwKICNkZWZpbmUgTUFQX01NSU9fTUFYX0lURVIgNjQgLyogcHJldHR5IGFyYml0 cmFyeSAqLwogCiBpbnQgbWFwX21taW9fcmVnaW9ucyhzdHJ1Y3QgZG9tYWluICpkLAotICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9nZm4sCisgICAgICAgICAgICAgICAg ICAgICBnZm5fdCBzdGFydF9nZm4sCiAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n IG5yLAotICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4pCisgICAgICAgICAg ICAgICAgICAgICBtZm5fdCBtZm4pCiB7CiAgICAgaW50IHJldCA9IDA7CiAgICAgdW5zaWduZWQg bG9uZyBpOwpAQCAtMjIyOSwxMCArMjIyOSwxMSBAQCBpbnQgbWFwX21taW9fcmVnaW9ucyhzdHJ1 Y3QgZG9tYWluICpkLAogICAgICAgICAgIGkgKz0gMVVMIDw8IG9yZGVyLCArK2l0ZXIgKQogICAg IHsKICAgICAgICAgLyogT1InaW5nIGdmbiBhbmQgbWZuIHZhbHVlcyB3aWxsIHJldHVybiBhbiBv cmRlciBzdWl0YWJsZSB0byBib3RoLiAqLwotICAgICAgICBmb3IgKCBvcmRlciA9IG1taW9fb3Jk ZXIoZCwgKHN0YXJ0X2dmbiArIGkpIHwgKG1mbiArIGkpLCBuciAtIGkpOyA7CisgICAgICAgIGZv ciAoIG9yZGVyID0gbW1pb19vcmRlcihkLCAoZ2ZuX3goc3RhcnRfZ2ZuKSArIGkpIHwgKG1mbl94 KG1mbikgKyBpKSwgbnIgLSBpKTsgOwogICAgICAgICAgICAgICBvcmRlciA9IHJldCAtIDEgKQog ICAgICAgICB7Ci0gICAgICAgICAgICByZXQgPSBzZXRfbW1pb19wMm1fZW50cnkoZCwgc3RhcnRf Z2ZuICsgaSwgX21mbihtZm4gKyBpKSwgb3JkZXIsCisgICAgICAgICAgICByZXQgPSBzZXRfbW1p b19wMm1fZW50cnkoZCwgZ2ZuX3goc3RhcnRfZ2ZuKSArIGksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWZuX2FkZChtZm4sIGkpLCBvcmRlciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwMm1fZ2V0X2hvc3RwMm0oZCktPmRlZmF1bHRfYWNjZXNz KTsKICAgICAgICAgICAgIGlmICggcmV0IDw9IDAgKQogICAgICAgICAgICAgICAgIGJyZWFrOwpA QCAtMjI0Niw5ICsyMjQ3LDkgQEAgaW50IG1hcF9tbWlvX3JlZ2lvbnMoc3RydWN0IGRvbWFpbiAq ZCwKIH0KIAogaW50IHVubWFwX21taW9fcmVnaW9ucyhzdHJ1Y3QgZG9tYWluICpkLAotICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2dmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgZ2ZuX3Qgc3RhcnRfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbikKKyAg ICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuKQogewogICAgIGludCByZXQgPSAwOwogICAg IHVuc2lnbmVkIGxvbmcgaTsKQEAgLTIyNjEsMTAgKzIyNjIsMTEgQEAgaW50IHVubWFwX21taW9f cmVnaW9ucyhzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgIGkgKz0gMVVMIDw8IG9yZGVyLCAr K2l0ZXIgKQogICAgIHsKICAgICAgICAgLyogT1InaW5nIGdmbiBhbmQgbWZuIHZhbHVlcyB3aWxs IHJldHVybiBhbiBvcmRlciBzdWl0YWJsZSB0byBib3RoLiAqLwotICAgICAgICBmb3IgKCBvcmRl ciA9IG1taW9fb3JkZXIoZCwgKHN0YXJ0X2dmbiArIGkpIHwgKG1mbiArIGkpLCBuciAtIGkpOyA7 CisgICAgICAgIGZvciAoIG9yZGVyID0gbW1pb19vcmRlcihkLCAoZ2ZuX3goc3RhcnRfZ2ZuKSAr IGkpIHwgKG1mbl94KG1mbikgKyBpKSwgbnIgLSBpKTsgOwogICAgICAgICAgICAgICBvcmRlciA9 IHJldCAtIDEgKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXQgPSBjbGVhcl9tbWlvX3AybV9l bnRyeShkLCBzdGFydF9nZm4gKyBpLCBfbWZuKG1mbiArIGkpLCBvcmRlcik7CisgICAgICAgICAg ICByZXQgPSBjbGVhcl9tbWlvX3AybV9lbnRyeShkLCBnZm5feChzdGFydF9nZm4pICsgaSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl9hZGQobWZuLCBpKSwgb3Jk ZXIpOwogICAgICAgICAgICAgaWYgKCByZXQgPD0gMCApCiAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICAgICBBU1NFUlQocmV0IDw9IG9yZGVyKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vZG9tY3RsLmMgYi94ZW4vY29tbW9uL2RvbWN0bC5jCmluZGV4IGU0MzkwNGUuLmI3ODRlNmMg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9tY3RsLmMKKysrIGIveGVuL2NvbW1vbi9kb21jdGwu YwpAQCAtMTA3NCw3ICsxMDc0LDcgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9Q QVJBTSh4ZW5fZG9tY3RsX3QpIHVfZG9tY3RsKQogICAgICAgICAgICAgICAgICAgICJtZW1vcnlf bWFwOmFkZDogZG9tJWQgZ2ZuPSVseCBtZm49JWx4IG5yPSVseFxuIiwKICAgICAgICAgICAgICAg ICAgICBkLT5kb21haW5faWQsIGdmbiwgbWZuLCBucl9tZm5zKTsKIAotICAgICAgICAgICAgcmV0 ID0gbWFwX21taW9fcmVnaW9ucyhkLCBnZm4sIG5yX21mbnMsIG1mbik7CisgICAgICAgICAgICBy ZXQgPSBtYXBfbW1pb19yZWdpb25zKGQsIF9nZm4oZ2ZuKSwgbnJfbWZucywgX21mbihtZm4pKTsK ICAgICAgICAgICAgIGlmICggcmV0IDwgMCApCiAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19HX1dBUk5JTkcKICAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6ZmFpbDogZG9t JWQgZ2ZuPSVseCBtZm49JWx4IG5yPSVseCByZXQ6JWxkXG4iLApAQCAtMTA4Niw3ICsxMDg2LDcg QEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3RsX3QpIHVf ZG9tY3RsKQogICAgICAgICAgICAgICAgICAgICJtZW1vcnlfbWFwOnJlbW92ZTogZG9tJWQgZ2Zu PSVseCBtZm49JWx4IG5yPSVseFxuIiwKICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQs IGdmbiwgbWZuLCBucl9tZm5zKTsKIAotICAgICAgICAgICAgcmV0ID0gdW5tYXBfbW1pb19yZWdp b25zKGQsIGdmbiwgbnJfbWZucywgbWZuKTsKKyAgICAgICAgICAgIHJldCA9IHVubWFwX21taW9f cmVnaW9ucyhkLCBfZ2ZuKGdmbiksIG5yX21mbnMsIF9tZm4obWZuKSk7CiAgICAgICAgICAgICBp ZiAoIHJldCA8IDAgJiYgaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJlbnQtPmRvbWFpbikgKQogICAg ICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCiAgICAgICAgICAgICAgICAgICAgICAgICJt ZW1vcnlfbWFwOiBlcnJvciAlbGQgcmVtb3ZpbmcgZG9tJWQgYWNjZXNzIHRvIFslbHgsJWx4XVxu IiwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9wMm0tY29tbW9uLmggYi94ZW4vaW5jbHVk ZS94ZW4vcDJtLWNvbW1vbi5oCmluZGV4IDYzNzRhNWIuLmI0ZjkwNzcgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3hlbi9wMm0tY29tbW9uLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3AybS1jb21t b24uaApAQCAtMzcsMTMgKzM3LDEzIEBAIHR5cGVkZWYgZW51bSB7CiAgKiAgKiB0aGUgZ3Vlc3Qg cGh5c2ljYWwgYWRkcmVzcyBzcGFjZSB0byBtYXAsIHN0YXJ0aW5nIGZyb20gdGhlIG1hY2hpbmUK ICAqICAgKiBmcmFtZSBudW1iZXIgbWZuLiAqLwogaW50IG1hcF9tbWlvX3JlZ2lvbnMoc3RydWN0 IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfZ2Zu LAorICAgICAgICAgICAgICAgICAgICAgZ2ZuX3Qgc3RhcnRfZ2ZuLAogICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgbWZuKTsKKyAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbik7CiBpbnQgdW5tYXBfbW1p b19yZWdpb25zKHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgc3RhcnRfZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICBnZm5fdCBzdGFydF9n Zm4sCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuKTsKKyAgICAgICAgICAgICAgICAgICAgICAg bWZuX3QgbWZuKTsKIAogLyoKICAqIFNldCBhY2Nlc3MgdHlwZSBmb3IgYSByZWdpb24gb2YgZ2Zu cy4KLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==