From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v2 6/8] xen: Use the typesafe mfn and gfn in map_mmio_regions... Date: Mon, 20 Jun 2016 14:37:23 +0100 Message-ID: <1466429845-28240-7-git-send-email-julien.grall@arm.com> References: <1466429845-28240-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: <1466429845-28240-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+CgotLS0KQ2M6IFN0ZWZh bm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNj OiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVz enV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4 ZW4ub3JnPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB4ZW4vYXJjaC9h cm0vZG9tYWluX2J1aWxkLmMgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL2FybS9naWMtdjIuYyAg ICAgICAgICAgIHwgIDQgKystLQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICAgICAgICAgfCAy MiArKysrKysrKysrKy0tLS0tLS0tLS0tCiB4ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL2V4eW5vczUu YyB8ICA4ICsrKystLS0tCiB4ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL29tYXA1LmMgICB8IDE2ICsr KysrKysrLS0tLS0tLS0KIHhlbi9hcmNoL2FybS92Z2ljLXYyLmMgICAgICAgICAgIHwgIDQgKyst LQogeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAgICAgfCAxOCArKysrKysrKysrLS0tLS0t LS0KIHhlbi9jb21tb24vZG9tY3RsLmMgICAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2luY2x1 ZGUveGVuL3AybS1jb21tb24uaCAgICAgfCAgOCArKysrLS0tLQogOSBmaWxlcyBjaGFuZ2VkLCA0 NSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9h cm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKaW5kZXggOTAz NTQ4Ni4uNDkxODVmMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisr KyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwpAQCAtMTAzNiw5ICsxMDM2LDkgQEAgc3Rh dGljIGludCBtYXBfcmFuZ2VfdG9fZG9tYWluKGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAq ZGV2LAogICAgIGlmICggbmVlZF9tYXBwaW5nICkKICAgICB7CiAgICAgICAgIHJlcyA9IG1hcF9t bWlvX3JlZ2lvbnMoZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90b19w Zm4oYWRkciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2dmbihwYWRkcl90b19w Zm4oYWRkcikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJVl9ST1VORF9VUChs ZW4sIFBBR0VfU0laRSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdG9f cGZuKGFkZHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZuKHBhZGRyX3Rv X3BmbihhZGRyKSkpOwogICAgICAgICBpZiAoIHJlcyA8IDAgKQogICAgICAgICB7CiAgICAgICAg ICAgICBwcmludGsoWEVOTE9HX0VSUiAiVW5hYmxlIHRvIG1hcCAweCUiUFJJeDY0CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMKaW5kZXgg NGUyZjRjNy4uMzg5M2VjZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2dpYy12Mi5jCisrKyBi L3hlbi9hcmNoL2FybS9naWMtdjIuYwpAQCAtNjAxLDkgKzYwMSw5IEBAIHN0YXRpYyBpbnQgZ2lj djJfbWFwX2h3ZG93bl9leHRyYV9tYXBwaW5ncyhzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAg ICAgICAgZC0+ZG9tYWluX2lkLCB2Mm1fZGF0YS0+YWRkciwgdjJtX2RhdGEtPnNpemUsCiAgICAg ICAgICAgICAgICB2Mm1fZGF0YS0+c3BpX3N0YXJ0LCB2Mm1fZGF0YS0+bnJfc3Bpcyk7CiAKLSAg ICAgICAgcmV0ID0gbWFwX21taW9fcmVnaW9ucyhkLCBwYWRkcl90b19wZm4odjJtX2RhdGEtPmFk ZHIpLAorICAgICAgICByZXQgPSBtYXBfbW1pb19yZWdpb25zKGQsIF9nZm4ocGFkZHJfdG9fcGZu KHYybV9kYXRhLT5hZGRyKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElWX1JPVU5E X1VQKHYybV9kYXRhLT5zaXplLCBQQUdFX1NJWkUpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhZGRyX3RvX3Bmbih2Mm1fZGF0YS0+YWRkcikpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9tZm4ocGFkZHJfdG9fcGZuKHYybV9kYXRhLT5hZGRyKSkpOwogICAgICAgICBpZiAo IHJldCApCiAgICAgICAgIHsKICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJHSUN2Mjog TWFwIHYybSBmcmFtZSB0byBkJWQgZmFpbGVkLlxuIiwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy bS9wMm0uYyBiL3hlbi9hcmNoL2FybS9wMm0uYwppbmRleCBhYTRlNzc0Li40N2NiMzgzIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC0x MjQ1LDI3ICsxMjQ1LDI3IEBAIGludCB1bm1hcF9yZWdpb25zX3J3X2NhY2hlKHN0cnVjdCBkb21h aW4gKmQsCiB9CiAKIGludCBtYXBfbW1pb19yZWdpb25zKHN0cnVjdCBkb21haW4gKmQsCi0gICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2dmbiwKKyAgICAgICAgICAgICAg ICAgICAgIGdmbl90IHN0YXJ0X2dmbiwKICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbikKKyAgICAgICAg ICAgICAgICAgICAgIG1mbl90IG1mbikKIHsKICAgICByZXR1cm4gYXBwbHlfcDJtX2NoYW5nZXMo ZCwgSU5TRVJULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZm5fdG9fcGFkZHIoc3Rh cnRfZ2ZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKHN0YXJ0 X2dmbiArIG5yKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKG1m biksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBmbl90b19wYWRkcihnZm5feChzdGFy dF9nZm4pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKGdmbl94 KHN0YXJ0X2dmbikgKyBuciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBmbl90b19w YWRkcihtZm5feChtZm4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUVFJfREVW LCAwLCBwMm1fbW1pb19kaXJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQtPmFy Y2gucDJtLmRlZmF1bHRfYWNjZXNzKTsKIH0KIAogaW50IHVubWFwX21taW9fcmVnaW9ucyhzdHJ1 Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0 X2dmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3Qgc3RhcnRfZ2ZuLAogICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIG1mbikKKyAgICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuKQogewog ICAgIHJldHVybiBhcHBseV9wMm1fY2hhbmdlcyhkLCBSRU1PVkUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBmbl90b19wYWRkcihzdGFydF9nZm4pLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwZm5fdG9fcGFkZHIoc3RhcnRfZ2ZuICsgbnIpLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwZm5fdG9fcGFkZHIobWZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGZuX3RvX3BhZGRyKGdmbl94KHN0YXJ0X2dmbikpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwZm5fdG9fcGFkZHIoZ2ZuX3goc3RhcnRfZ2ZuKSArIG5yKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKG1mbl94KG1mbikpLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNQVRUUl9ERVYsIDAsIHAybV9pbnZhbGlkLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLnAybS5kZWZhdWx0X2FjY2Vzcyk7CiB9CkBAIC0x MjgwLDcgKzEyODAsNyBAQCBpbnQgbWFwX2Rldl9tbWlvX3JlZ2lvbihzdHJ1Y3QgZG9tYWluICpk LAogICAgIGlmICggIShuciAmJiBpb21lbV9hY2Nlc3NfcGVybWl0dGVkKGQsIHN0YXJ0X2dmbiwg c3RhcnRfZ2ZuICsgbnIgLSAxKSkgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJlcyA9IG1h 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 bi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCBhM2FkZDIxLi4yNzEwY2U4IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC0yMjE0 LDkgKzIyMTQsOSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG1taW9fb3JkZXIoY29uc3Qgc3RydWN0 IGRvbWFpbiAqZCwKICNkZWZpbmUgTUFQX01NSU9fTUFYX0lURVIgNjQgLyogcHJldHR5IGFyYml0 cmFyeSAqLwogCiBpbnQgbWFwX21taW9fcmVnaW9ucyhzdHJ1Y3QgZG9tYWluICpkLAotICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9nZm4sCisgICAgICAgICAgICAgICAg ICAgICBnZm5fdCBzdGFydF9nZm4sCiAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n IG5yLAotICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4pCisgICAgICAgICAg ICAgICAgICAgICBtZm5fdCBtZm4pCiB7CiAgICAgaW50IHJldCA9IDA7CiAgICAgdW5zaWduZWQg bG9uZyBpOwpAQCAtMjIyOSwxMCArMjIyOSwxMSBAQCBpbnQgbWFwX21taW9fcmVnaW9ucyhzdHJ1 Y3QgZG9tYWluICpkLAogICAgICAgICAgIGkgKz0gMVVMIDw8IG9yZGVyLCArK2l0ZXIgKQogICAg IHsKICAgICAgICAgLyogT1InaW5nIGdmbiBhbmQgbWZuIHZhbHVlcyB3aWxsIHJldHVybiBhbiBv cmRlciBzdWl0YWJsZSB0byBib3RoLiAqLwotICAgICAgICBmb3IgKCBvcmRlciA9IG1taW9fb3Jk ZXIoZCwgKHN0YXJ0X2dmbiArIGkpIHwgKG1mbiArIGkpLCBuciAtIGkpOyA7CisgICAgICAgIGZv ciAoIG9yZGVyID0gbW1pb19vcmRlcihkLCAoZ2ZuX3goc3RhcnRfZ2ZuKSArIGkpIHwgKG1mbl94 KG1mbikgKyBpKSwgbnIgLSBpKTsgOwogICAgICAgICAgICAgICBvcmRlciA9IHJldCAtIDEgKQog ICAgICAgICB7Ci0gICAgICAgICAgICByZXQgPSBzZXRfbW1pb19wMm1fZW50cnkoZCwgc3RhcnRf Z2ZuICsgaSwgX21mbihtZm4gKyBpKSwgb3JkZXIsCisgICAgICAgICAgICByZXQgPSBzZXRfbW1p b19wMm1fZW50cnkoZCwgZ2ZuX3goc3RhcnRfZ2ZuKSArIGksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgX21mbihtZm5feChtZm4pICsgaSksIG9yZGVyLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV9nZXRfaG9zdHAybShkKS0+ZGVmYXVsdF9h Y2Nlc3MpOwogICAgICAgICAgICAgaWYgKCByZXQgPD0gMCApCiAgICAgICAgICAgICAgICAgYnJl YWs7CkBAIC0yMjQ2LDkgKzIyNDcsOSBAQCBpbnQgbWFwX21taW9fcmVnaW9ucyhzdHJ1Y3QgZG9t YWluICpkLAogfQogCiBpbnQgdW5tYXBfbW1pb19yZWdpb25zKHN0cnVjdCBkb21haW4gKmQsCi0g ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfZ2ZuLAorICAgICAgICAg ICAgICAgICAgICAgICBnZm5fdCBzdGFydF9nZm4sCiAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZu KQorICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4pCiB7CiAgICAgaW50IHJldCA9IDA7 CiAgICAgdW5zaWduZWQgbG9uZyBpOwpAQCAtMjI2MSwxMCArMjI2MiwxMSBAQCBpbnQgdW5tYXBf bW1pb19yZWdpb25zKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgaSArPSAxVUwgPDwgb3Jk ZXIsICsraXRlciApCiAgICAgewogICAgICAgICAvKiBPUidpbmcgZ2ZuIGFuZCBtZm4gdmFsdWVz IHdpbGwgcmV0dXJuIGFuIG9yZGVyIHN1aXRhYmxlIHRvIGJvdGguICovCi0gICAgICAgIGZvciAo IG9yZGVyID0gbW1pb19vcmRlcihkLCAoc3RhcnRfZ2ZuICsgaSkgfCAobWZuICsgaSksIG5yIC0g aSk7IDsKKyAgICAgICAgZm9yICggb3JkZXIgPSBtbWlvX29yZGVyKGQsIChnZm5feChzdGFydF9n Zm4pICsgaSkgfCAobWZuX3gobWZuKSArIGkpLCBuciAtIGkpOyA7CiAgICAgICAgICAgICAgIG9y ZGVyID0gcmV0IC0gMSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldCA9IGNsZWFyX21taW9f cDJtX2VudHJ5KGQsIHN0YXJ0X2dmbiArIGksIF9tZm4obWZuICsgaSksIG9yZGVyKTsKKyAgICAg ICAgICAgIHJldCA9IGNsZWFyX21taW9fcDJtX2VudHJ5KGQsIGdmbl94KHN0YXJ0X2dmbikgKyBp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX2FkZChtZm4sIGkp LCBvcmRlcik7CiAgICAgICAgICAgICBpZiAoIHJldCA8PSAwICkKICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgIEFTU0VSVChyZXQgPD0gb3JkZXIpOwpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9kb21jdGwuYyBiL3hlbi9jb21tb24vZG9tY3RsLmMKaW5kZXggZTQzOTA0ZS4uYjc4 NGU2YyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysgYi94ZW4vY29tbW9uL2Rv bWN0bC5jCkBAIC0xMDc0LDcgKzEwNzQsNyBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHhlbl9kb21jdGxfdCkgdV9kb21jdGwpCiAgICAgICAgICAgICAgICAgICAgIm1l bW9yeV9tYXA6YWRkOiBkb20lZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4XG4iLAogICAgICAgICAg ICAgICAgICAgIGQtPmRvbWFpbl9pZCwgZ2ZuLCBtZm4sIG5yX21mbnMpOwogCi0gICAgICAgICAg ICByZXQgPSBtYXBfbW1pb19yZWdpb25zKGQsIGdmbiwgbnJfbWZucywgbWZuKTsKKyAgICAgICAg ICAgIHJldCA9IG1hcF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihnZm4pLCBucl9tZm5zLCBfbWZuKG1m bikpOwogICAgICAgICAgICAgaWYgKCByZXQgPCAwICkKICAgICAgICAgICAgICAgICBwcmludGso WEVOTE9HX0dfV0FSTklORwogICAgICAgICAgICAgICAgICAgICAgICAibWVtb3J5X21hcDpmYWls OiBkb20lZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4IHJldDolbGRcbiIsCkBAIC0xMDg2LDcgKzEw ODYsNyBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9kb21jdGxf dCkgdV9kb21jdGwpCiAgICAgICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6cmVtb3ZlOiBkb20l ZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4XG4iLAogICAgICAgICAgICAgICAgICAgIGQtPmRvbWFp bl9pZCwgZ2ZuLCBtZm4sIG5yX21mbnMpOwogCi0gICAgICAgICAgICByZXQgPSB1bm1hcF9tbWlv X3JlZ2lvbnMoZCwgZ2ZuLCBucl9tZm5zLCBtZm4pOworICAgICAgICAgICAgcmV0ID0gdW5tYXBf bW1pb19yZWdpb25zKGQsIF9nZm4oZ2ZuKSwgbnJfbWZucywgX21mbihtZm4pKTsKICAgICAgICAg ICAgIGlmICggcmV0IDwgMCAmJiBpc19oYXJkd2FyZV9kb21haW4oY3VycmVudC0+ZG9tYWluKSAp CiAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKICAgICAgICAgICAgICAgICAgICAg ICAgIm1lbW9yeV9tYXA6IGVycm9yICVsZCByZW1vdmluZyBkb20lZCBhY2Nlc3MgdG8gWyVseCwl bHhdXG4iLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3AybS1jb21tb24uaCBiL3hlbi9p bmNsdWRlL3hlbi9wMm0tY29tbW9uLmgKaW5kZXggNjM3NGE1Yi4uYjRmOTA3NyAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUveGVuL3AybS1jb21tb24uaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vcDJt LWNvbW1vbi5oCkBAIC0zNywxMyArMzcsMTMgQEAgdHlwZWRlZiBlbnVtIHsKICAqICAqIHRoZSBn dWVzdCBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlIHRvIG1hcCwgc3RhcnRpbmcgZnJvbSB0aGUgbWFj aGluZQogICogICAqIGZyYW1lIG51bWJlciBtZm4uICovCiBpbnQgbWFwX21taW9fcmVnaW9ucyhz dHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFy dF9nZm4sCisgICAgICAgICAgICAgICAgICAgICBnZm5fdCBzdGFydF9nZm4sCiAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBtZm4pOworICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuKTsKIGludCB1bm1h cF9tbWlvX3JlZ2lvbnMoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBzdGFydF9nZm4sCisgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IHN0 YXJ0X2dmbiwKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4pOworICAgICAgICAgICAgICAgICAg ICAgICBtZm5fdCBtZm4pOwogCiAvKgogICogU2V0IGFjY2VzcyB0eXBlIGZvciBhIHJlZ2lvbiBv ZiBnZm5zLgotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=