From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v2 2/5] vm_event: Implement ARM SMC events Date: Tue, 3 May 2016 12:31:51 +0100 Message-ID: <57288C27.6060600@arm.com> References: <1461953253-32043-1-git-send-email-tamas@tklengyel.com> <1461953253-32043-2-git-send-email-tamas@tklengyel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 1axYYY-0004Gp-5F for xen-devel@lists.xenproject.org; Tue, 03 May 2016 11:31:58 +0000 In-Reply-To: <1461953253-32043-2-git-send-email-tamas@tklengyel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Tamas K Lengyel , xen-devel@lists.xenproject.org Cc: Wei Liu , Razvan Cojocaru , Stefano Stabellini , Andrew Cooper , Ian Jackson , Jan Beulich , Keir Fraser List-Id: xen-devel@lists.xenproject.org SGkgVGFtYXMsCgpPbiAyOS8wNC8xNiAxOTowNywgVGFtYXMgSyBMZW5neWVsIHdyb3RlOgo+IFRo ZSBBUk0gU01DIGluc3RydWN0aW9ucyBhcmUgYWxyZWFkeSBjb25maWd1cmVkIHRvIHRyYXAgdG8g WGVuIGJ5IGRlZmF1bHQuIEluCj4gdGhpcyBwYXRjaCB3ZSBhbGxvdyBhIHVzZXItc3BhY2UgcHJv Y2VzcyBpbiBhIHByaXZpbGVnZWQgZG9tYWluIHRvIHJlY2VpdmUKPiBub3RpZmljYXRpb24gb2Yg d2hlbiBzdWNoIGV2ZW50IGhhcHBlbnMgdGhyb3VnaCB0aGUgdm1fZXZlbnQgc3Vic3lzdGVtIGJ5 Cj4gaW50cm9kdWNpbmcgdGhlIFBSSVZJTEVHRURfQ0FMTCB0eXBlLgo+Cj4gU2lnbmVkLW9mZi1i eTogVGFtYXMgSyBMZW5neWVsIDx0YW1hc0B0a2xlbmd5ZWwuY29tPgo+IC0tLQo+IENjOiBSYXp2 YW4gQ29qb2NhcnUgPHJjb2pvY2FydUBiaXRkZWZlbmRlci5jb20+Cj4gQ2M6IElhbiBKYWNrc29u IDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgo+IENjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0 ZWZhbm8uc3RhYmVsbGluaUBldS5jaXRyaXguY29tPgo+IENjOiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgo+IENjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgo+IENj OiBLZWlyIEZyYXNlciA8a2VpckB4ZW4ub3JnPgo+IENjOiBKYW4gQmV1bGljaCA8amJldWxpY2hA c3VzZS5jb20+Cj4gQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ Cj4KPiB2MjogaW50cm9kdWNlIFZNX0VWRU5UX1JFQVNPTl9QUklWRUxFR0VEX0NBTEwKPiAgICAg IGFhcmNoNjQgc3VwcG9ydAo+IC0tLQo+ICAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDYgKy0KPiAgIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgIHwg ICAyICsKPiAgIHRvb2xzL2xpYnhjL3hjX21vbml0b3IuYyAgICAgICAgICAgIHwgIDI2ICsrKysr KystCj4gICB0b29scy90ZXN0cy94ZW4tYWNjZXNzL3hlbi1hY2Nlc3MuYyB8ICAzMSArKysrKysr Ky0KPiAgIHhlbi9hcmNoL2FybS9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICAyICsKPiAgIHhl bi9hcmNoL2FybS9tb25pdG9yLmMgICAgICAgICAgICAgIHwgIDgwICsrKysrKysrKysrKysrKysr KysrKysrCj4gICB4ZW4vYXJjaC9hcm0vdHJhcHMuYyAgICAgICAgICAgICAgICB8ICAyMCArKysr Ky0KPiAgIHhlbi9hcmNoL2FybS92bV9ldmVudC5jICAgICAgICAgICAgIHwgMTI3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgeGVuL2FyY2gveDg2L2h2bS9ldmVudC5j ICAgICAgICAgICAgfCAgIDIgKwo+ICAgeGVuL2NvbW1vbi92bV9ldmVudC5jICAgICAgICAgICAg ICAgfCAgIDEgLQo+ICAgeGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCAgICAgICAgfCAgIDUg KysKPiAgIHhlbi9pbmNsdWRlL2FzbS1hcm0vbW9uaXRvci5oICAgICAgIHwgIDIwICsrLS0tLQo+ ICAgeGVuL2luY2x1ZGUvYXNtLWFybS92bV9ldmVudC5oICAgICAgfCAgMTYgKystLS0KPiAgIHhl bi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaCAgICAgICAgIHwgICAxICsKPiAgIHhlbi9pbmNsdWRl L3B1YmxpYy92bV9ldmVudC5oICAgICAgIHwgIDI3ICsrKysrKysrCj4gICAxNSBmaWxlcyBjaGFu Z2VkLCAzMzMgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUgbW9kZSAx MDA2NDQgeGVuL2FyY2gvYXJtL21vbml0b3IuYwo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9h cmNoL2FybS92bV9ldmVudC5jCgpUaGlzIHBhdGNoIGlzIGRvaW5nIGxvdHMgb2YgdGhpbmdzOgoJ LSBBZGQgc3VwcG9ydCBmb3IgbW9uaXRvcmluZwoJLSBBZGQgc3VwcG9ydCBmb3Igdm1fZXZlbnQK CS0gTW9uaXRvciBTTUMKCS0gTW92ZSBjb21tb24gY29kZSB0byBhcmNoIHNwZWNpZmljIGNvZGUK CkFzIGZhciBhcyBJIGNhbiB0ZWxsLCBhbGwgYXJlIGRpc3RpbmN0IGZyb20gZWFjaCBvdGhlci4g Q2FuIHlvdSBwbGVhc2UgCnNwbGl0IHRoaXMgcGF0Y2ggaW4gc21hbGxlciBvbmVzPwoKWy4uLl0K Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9tb25pdG9yLmMgYi94ZW4vYXJjaC9hcm0vbW9u aXRvci5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5lODQ1ZjI4Cj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL3hlbi9hcmNoL2FybS9tb25pdG9yLmMKClsuLi5dCgo+ICtp bnQgbW9uaXRvcl9zbWMoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpIHsKClRoZSB7 IHNob3VsZCBiZSBvbiBhIHNlcGFyYXRlIGxpbmUuCgo+ICsgICAgc3RydWN0IHZjcHUgKmN1cnIg PSBjdXJyZW50Owo+ICsgICAgdm1fZXZlbnRfcmVxdWVzdF90IHJlcSA9IHsgMCB9Owo+ICsKPiAr ICAgIGlmICggIWN1cnItPmRvbWFpbi0+YXJjaC5tb25pdG9yLnByaXZpbGVnZWRfY2FsbF9lbmFi bGVkICkKPiArICAgICAgICByZXR1cm4gMDsKPiArCj4gKyAgICByZXEucmVhc29uID0gVk1fRVZF TlRfUkVBU09OX1BSSVZJTEVHRURfQ0FMTDsKPiArICAgIHJlcS52Y3B1X2lkID0gY3Vyci0+dmNw dV9pZDsKPiArCj4gKyAgICB2bV9ldmVudF9maWxsX3JlZ3MoJnJlcSwgcmVncywgY3Vyci0+ZG9t YWluKTsKPiArCj4gKyAgICByZXR1cm4gdm1fZXZlbnRfbW9uaXRvcl90cmFwcyhjdXJyLCAxLCAm cmVxKTsKPiArfQo+ICsKPiArLyoKPiArICogTG9jYWwgdmFyaWFibGVzOgo+ICsgKiBtb2RlOiBD Cj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKPiArICogYy1iYXNpYy1vZmZzZXQ6IDQKPiArICog aW5kZW50LXRhYnMtbW9kZTogbmlsCj4gKyAqIEVuZDoKPiArICovCj4gZGlmZiAtLWdpdCBhL3hl bi9hcmNoL2FybS90cmFwcy5jIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMKPiBpbmRleCA5YWJmYzNj Li45YzhkMzk1IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS90cmFwcy5jCj4gKysrIGIveGVu L2FyY2gvYXJtL3RyYXBzLmMKPiBAQCAtNDEsNiArNDEsNyBAQAo+ICAgI2luY2x1ZGUgPGFzbS9t bWlvLmg+Cj4gICAjaW5jbHVkZSA8YXNtL2NwdWZlYXR1cmUuaD4KPiAgICNpbmNsdWRlIDxhc20v Zmx1c2h0bGIuaD4KPiArI2luY2x1ZGUgPGFzbS9tb25pdG9yLmg+Cj4KPiAgICNpbmNsdWRlICJk ZWNvZGUuaCIKPiAgICNpbmNsdWRlICJ2dGltZXIuaCIKPiBAQCAtMjQ5MSw2ICsyNDkyLDIxIEBA IGJhZF9kYXRhX2Fib3J0Ogo+ICAgICAgIGluamVjdF9kYWJ0X2V4Y2VwdGlvbihyZWdzLCBpbmZv Lmd2YSwgaHNyLmxlbik7Cj4gICB9Cj4KPiArc3RhdGljIHZvaWQgZG9fdHJhcF9zbWMoc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGNvbnN0IHVuaW9uIGhzciBoc3IpCj4gK3sKPiArICAgIGlu dCByYyA9IDA7CgpOZXdsaW5lIGhlcmUuCgo+ICsgICAgaWYgKCBjdXJyZW50LT5kb21haW4tPmFy Y2gubW9uaXRvci5wcml2aWxlZ2VkX2NhbGxfZW5hYmxlZCApCj4gKyAgICB7Cj4gKyAgICAgICAg cmMgPSBtb25pdG9yX3NtYyhyZWdzKTsKPiArICAgIH0KClRoZSBicmFja2V0IGFyZSBub3QgbmVj ZXNzYXJ5LgoKPiArCj4gKyAgICBpZiAoIHJjICE9IDEgKQoKSSB0aGluayB0aGUgY29kZSB3b3Vs ZCBiZSBjbGVhcmVyIGlmIHlvdSBpbnRyb2R1Y2UgYSBkZWZpbmUgZm9yICIxIi4KCj4gKyAgICB7 Cj4gKyAgICAgICAgR1VFU1RfQlVHX09OKCFwc3JfbW9kZV9pc18zMmJpdChyZWdzLT5jcHNyKSk7 CgpUaGlzIGNoZWNrIGNhbm5vdCB3b3JrIGZvciBBQXJjaDY0IGd1ZXN0LgoKPiArICAgICAgICBp bmplY3RfdW5kZWZfZXhjZXB0aW9uKHJlZ3MsIGhzcik7Cj4gKyAgICB9Cj4gK30KPiArCj4gICBz dGF0aWMgdm9pZCBlbnRlcl9oeXBlcnZpc29yX2hlYWQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MpCj4gICB7Cj4gICAgICAgaWYgKCBndWVzdF9tb2RlKHJlZ3MpICkKPiBAQCAtMjU2Niw3ICsy NTgyLDcgQEAgYXNtbGlua2FnZSB2b2lkIGRvX3RyYXBfaHlwZXJ2aXNvcihzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncykKPiAgICAgICAgICAgICovCj4gICAgICAgICAgIEdVRVNUX0JVR19PTigh cHNyX21vZGVfaXNfMzJiaXQocmVncy0+Y3BzcikpOwo+ICAgICAgICAgICBwZXJmY19pbmNyKHRy YXBfc21jMzIpOwo+IC0gICAgICAgIGluamVjdF91bmRlZjMyX2V4Y2VwdGlvbihyZWdzKTsKPiAr ICAgICAgICBkb190cmFwX3NtYyhyZWdzLCBoc3IpOwo+ICAgICAgICAgICBicmVhazsKPiAgICAg ICBjYXNlIEhTUl9FQ19IVkMzMjoKPiAgICAgICAgICAgR1VFU1RfQlVHX09OKCFwc3JfbW9kZV9p c18zMmJpdChyZWdzLT5jcHNyKSk7Cj4gQEAgLTI1OTksNyArMjYxNSw3IEBAIGFzbWxpbmthZ2Ug dm9pZCBkb190cmFwX2h5cGVydmlzb3Ioc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCj4gICAg ICAgICAgICAqLwo+ICAgICAgICAgICBHVUVTVF9CVUdfT04ocHNyX21vZGVfaXNfMzJiaXQocmVn cy0+Y3BzcikpOwo+ICAgICAgICAgICBwZXJmY19pbmNyKHRyYXBfc21jNjQpOwo+IC0gICAgICAg IGluamVjdF91bmRlZjY0X2V4Y2VwdGlvbihyZWdzLCBoc3IubGVuKTsKPiArICAgICAgICBkb190 cmFwX3NtYyhyZWdzLCBoc3IpOwo+ICAgICAgICAgICBicmVhazsKPiAgICAgICBjYXNlIEhTUl9F Q19TWVNSRUc6Cj4gICAgICAgICAgIEdVRVNUX0JVR19PTihwc3JfbW9kZV9pc18zMmJpdChyZWdz LT5jcHNyKSk7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92bV9ldmVudC5jIGIveGVuL2Fy Y2gvYXJtL3ZtX2V2ZW50LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAu LjMzNjlhOTYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIveGVuL2FyY2gvYXJtL3ZtX2V2ZW50LmMK PiBAQCAtMCwwICsxLDEyNyBAQAo+ICsvKgo+ICsgKiBhcmNoL2FybS92bV9ldmVudC5jCj4gKyAq Cj4gKyAqIEFyY2hpdGVjdHVyZS1zcGVjaWZpYyB2bV9ldmVudCBoYW5kbGluZyByb3V0aW5lcwo+ ICsgKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTYgVGFtYXMgSyBMZW5neWVsICh0YW1hc0B0a2xl bmd5ZWwuY29tKQo+ICsgKgo+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwo+ICsgKiBMaWNlbnNlIHYyIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICsgKgo+ICsgKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPiAr ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiArICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgo+ICsgKgo+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgo+ICsg Ki8KPiArCj4gKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KPiArI2luY2x1ZGUgPGFzbS92bV9ldmVu dC5oPgo+ICsKPiArdm9pZCB2bV9ldmVudF9maWxsX3JlZ3Modm1fZXZlbnRfcmVxdWVzdF90ICpy ZXEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG9tYWluICpkKQo+ICt7 Cj4gKyAgICBpZiAoIGlzXzMyYml0X2RvbWFpbihkKSApCj4gKyAgICB7Cj4gKyAgICAgICAgcmVx LT5kYXRhLnJlZ3MuYXJtLngwID0gcmVncy0+cjA7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3Mu YXJtLngxID0gcmVncy0+cjE7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLngyID0gcmVn cy0+cjI7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLngzID0gcmVncy0+cjM7Cj4gKyAg ICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLng0ID0gcmVncy0+cjQ7Cj4gKyAgICAgICAgcmVxLT5k YXRhLnJlZ3MuYXJtLng1ID0gcmVncy0+cjU7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJt Lng2ID0gcmVncy0+cjY7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLng3ID0gcmVncy0+ cjc7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLng4ID0gcmVncy0+cjg7Cj4gKyAgICAg ICAgcmVxLT5kYXRhLnJlZ3MuYXJtLng5ID0gcmVncy0+cjk7Cj4gKyAgICAgICAgcmVxLT5kYXRh LnJlZ3MuYXJtLngxMCA9IHJlZ3MtPnIxMDsKPiArICAgICAgICByZXEtPmRhdGEucmVncy5hcm0u cGMgPSByZWdzLT5wYzMyOwo+ICsgICAgICAgIHJlcS0+ZGF0YS5yZWdzLmFybS5zcF9lbDAgPSBy ZWdzLT5zcF91c3I7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLnNwX2VsMSA9IHJlZ3Mt PnNwX3N2YzsKPiArICAgIH0KPiArI2lmZGVmIENPTkZJR19BUk1fNjQKV2h5Cj4gKyAgICBlbHNl Cj4gKyAgICB7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLngwID0gcmVncy0+eDA7Cj4g KyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLngxID0gcmVncy0+eDE7Cj4gKyAgICAgICAgcmVx LT5kYXRhLnJlZ3MuYXJtLngyID0gcmVncy0+eDI7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3Mu YXJtLngzID0gcmVncy0+eDM7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLng0ID0gcmVn cy0+eDQ7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLng1ID0gcmVncy0+eDU7Cj4gKyAg ICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLng2ID0gcmVncy0+eDY7Cj4gKyAgICAgICAgcmVxLT5k YXRhLnJlZ3MuYXJtLng3ID0gcmVncy0+eDc7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJt Lng4ID0gcmVncy0+eDg7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLng5ID0gcmVncy0+ eDk7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLngxMCA9IHJlZ3MtPngxMDsKCkFBcmNo NjQgcHJvdmlkZXMgMzEgZ2VuZXJhdGUtcHVycG9zZSByZWdpc3RlcnMuIEFsdGhvdWdoLCB4Mjkg YW5kIHgzMCAKYXJlIHJlc3BlY3RpdmVseSB1c2VkIGZvciBmcCBhbmQgbHIuCgo+ICsgICAgICAg IHJlcS0+ZGF0YS5yZWdzLmFybS5wYyA9IHJlZ3MtPnBjOwo+ICsgICAgICAgIHJlcS0+ZGF0YS5y ZWdzLmFybS5zcF9lbDAgPSByZWdzLT5zcF9lbDA7Cj4gKyAgICAgICAgcmVxLT5kYXRhLnJlZ3Mu YXJtLnNwX2VsMSA9IHJlZ3MtPnNwX2VsMTsKPiArICAgIH0KPiArI2VuZGlmCj4gKyAgICByZXEt PmRhdGEucmVncy5hcm0uZnAgPSByZWdzLT5mcDsKPiArICAgIHJlcS0+ZGF0YS5yZWdzLmFybS5s ciA9IHJlZ3MtPmxyOwo+ICsgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLmNwc3IgPSByZWdzLT5jcHNy Owo+ICsgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLnNwc3JfZWwxID0gcmVncy0+c3Bzcl9zdmM7Cj4g KyAgICByZXEtPmRhdGEucmVncy5hcm0udHRicjAgPSBSRUFEX1NZU1JFRzY0KFRUQlIwX0VMMSk7 Cj4gKyAgICByZXEtPmRhdGEucmVncy5hcm0udHRicjEgPSBSRUFEX1NZU1JFRzY0KFRUQlIxX0VM MSk7Cj4gK30KPiArCj4gK3ZvaWQgdm1fZXZlbnRfc2V0X3JlZ2lzdGVycyhzdHJ1Y3QgdmNwdSAq diwgdm1fZXZlbnRfcmVzcG9uc2VfdCAqcnNwKQo+ICt7Cj4gKyAgICBzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncyA9ICZ2LT5hcmNoLmNwdV9pbmZvLT5ndWVzdF9jcHVfdXNlcl9yZWdzOwo+ICsK PiArICAgIGlmICggaXNfMzJiaXRfZG9tYWluKHYtPmRvbWFpbikgKQo+ICsgICAgewo+ICsgICAg ICAgIHJlZ3MtPnIwID0gcnNwLT5kYXRhLnJlZ3MuYXJtLngwOwo+ICsgICAgICAgIHJlZ3MtPnIx ID0gcnNwLT5kYXRhLnJlZ3MuYXJtLngxOwo+ICsgICAgICAgIHJlZ3MtPnIyID0gcnNwLT5kYXRh LnJlZ3MuYXJtLngyOwo+ICsgICAgICAgIHJlZ3MtPnIzID0gcnNwLT5kYXRhLnJlZ3MuYXJtLngz Owo+ICsgICAgICAgIHJlZ3MtPnI0ID0gcnNwLT5kYXRhLnJlZ3MuYXJtLng0Owo+ICsgICAgICAg IHJlZ3MtPnI1ID0gcnNwLT5kYXRhLnJlZ3MuYXJtLng1Owo+ICsgICAgICAgIHJlZ3MtPnI2ID0g cnNwLT5kYXRhLnJlZ3MuYXJtLng2Owo+ICsgICAgICAgIHJlZ3MtPnI3ID0gcnNwLT5kYXRhLnJl Z3MuYXJtLng3Owo+ICsgICAgICAgIHJlZ3MtPnI4ID0gcnNwLT5kYXRhLnJlZ3MuYXJtLng4Owo+ ICsgICAgICAgIHJlZ3MtPnI5ID0gcnNwLT5kYXRhLnJlZ3MuYXJtLng5Owo+ICsgICAgICAgIHJl Z3MtPnIxMCA9IHJzcC0+ZGF0YS5yZWdzLmFybS54MTA7Cj4gKyAgICAgICAgcmVncy0+cGMzMiA9 IHJzcC0+ZGF0YS5yZWdzLmFybS5wYzsKPiArICAgICAgICByZWdzLT5zcF91c3IgPSByc3AtPmRh dGEucmVncy5hcm0uc3BfZWwwOwo+ICsgICAgICAgIHJlZ3MtPnNwX3N2YyA9IHJzcC0+ZGF0YS5y ZWdzLmFybS5zcF9lbDE7Cj4gKyAgICB9Cj4gKyNpZmRlZiBDT05GSUdfQVJNXzY0Cj4gKyAgICBl bHNlCj4gKyAgICB7Cj4gKyAgICAgICAgcmVncy0+eDAgPSByc3AtPmRhdGEucmVncy5hcm0ueDA7 Cj4gKyAgICAgICAgcmVncy0+eDEgPSByc3AtPmRhdGEucmVncy5hcm0ueDE7Cj4gKyAgICAgICAg cmVncy0+eDIgPSByc3AtPmRhdGEucmVncy5hcm0ueDI7Cj4gKyAgICAgICAgcmVncy0+eDMgPSBy c3AtPmRhdGEucmVncy5hcm0ueDM7Cj4gKyAgICAgICAgcmVncy0+eDQgPSByc3AtPmRhdGEucmVn cy5hcm0ueDQ7Cj4gKyAgICAgICAgcmVncy0+eDUgPSByc3AtPmRhdGEucmVncy5hcm0ueDU7Cj4g KyAgICAgICAgcmVncy0+eDYgPSByc3AtPmRhdGEucmVncy5hcm0ueDY7Cj4gKyAgICAgICAgcmVn cy0+eDcgPSByc3AtPmRhdGEucmVncy5hcm0ueDc7Cj4gKyAgICAgICAgcmVncy0+eDggPSByc3At PmRhdGEucmVncy5hcm0ueDg7Cj4gKyAgICAgICAgcmVncy0+eDkgPSByc3AtPmRhdGEucmVncy5h cm0ueDk7Cj4gKyAgICAgICAgcmVncy0+eDEwID0gcnNwLT5kYXRhLnJlZ3MuYXJtLngxMDsKPiAr ICAgICAgICByZWdzLT5wYyA9IHJzcC0+ZGF0YS5yZWdzLmFybS5wYzsKPiArICAgICAgICByZWdz LT5zcF9lbDAgPSByc3AtPmRhdGEucmVncy5hcm0uc3BfZWwwOwo+ICsgICAgICAgIHJlZ3MtPnNw X2VsMSA9IHJzcC0+ZGF0YS5yZWdzLmFybS5zcF9lbDE7Cj4gKyAgICB9Cj4gKyNlbmRpZgo+ICsK PiArICAgIHJlZ3MtPmZwID0gcnNwLT5kYXRhLnJlZ3MuYXJtLmZwOwo+ICsgICAgcmVncy0+bHIg PSByc3AtPmRhdGEucmVncy5hcm0ubHI7Cj4gKyAgICByZWdzLT5jcHNyID0gcnNwLT5kYXRhLnJl Z3MuYXJtLmNwc3I7Cj4gKyAgICB2LT5hcmNoLnR0YnIwID0gcnNwLT5kYXRhLnJlZ3MuYXJtLnR0 YnIwOwo+ICsgICAgdi0+YXJjaC50dGJyMSA9IHJzcC0+ZGF0YS5yZWdzLmFybS50dGJyMTsKPiAr fQo+ICsKPiArLyoKPiArICogTG9jYWwgdmFyaWFibGVzOgo+ICsgKiBtb2RlOiBDCj4gKyAqIGMt ZmlsZS1zdHlsZTogIkJTRCIKPiArICogYy1iYXNpYy1vZmZzZXQ6IDQKPiArICogaW5kZW50LXRh YnMtbW9kZTogbmlsCj4gKyAqIEVuZDoKPiArICovCgpbLi4uXQoKPiBkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCj4g aW5kZXggMjQ1NzY5OC4uMzVhZGNlMiAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMv ZG9tY3RsLmgKPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKPiBAQCAtMTA4MCw2 ICsxMDgwLDcgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9wc3JfY210X29w X3QpOwo+ICAgI2RlZmluZSBYRU5fRE9NQ1RMX01PTklUT1JfRVZFTlRfU0lOR0xFU1RFUCAgICAg ICAgICAgIDIKPiAgICNkZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX1NPRlRXQVJFX0JS RUFLUE9JTlQgICAzCj4gICAjZGVmaW5lIFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9HVUVTVF9S RVFVRVNUICAgICAgICAgNAo+ICsjZGVmaW5lIFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9QUklW SUxFR0VEX0NBTEwgICAgICAgNQo+Cj4gICBzdHJ1Y3QgeGVuX2RvbWN0bF9tb25pdG9yX29wIHsK PiAgICAgICB1aW50MzJfdCBvcDsgLyogWEVOX0RPTUNUTF9NT05JVE9SX09QXyogKi8KPiBkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3ZtX2V2ZW50LmggYi94ZW4vaW5jbHVkZS9wdWJs aWMvdm1fZXZlbnQuaAo+IGluZGV4IDkyNzBkNTIuLmYwMzkyMDcgMTAwNjQ0Cj4gLS0tIGEveGVu L2luY2x1ZGUvcHVibGljL3ZtX2V2ZW50LmgKPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvdm1f ZXZlbnQuaAo+IEBAIC0xMTksNiArMTE5LDggQEAKPiAgICNkZWZpbmUgVk1fRVZFTlRfUkVBU09O X1NJTkdMRVNURVAgICAgICAgICAgICAgIDcKPiAgIC8qIEFuIGV2ZW50IGhhcyBiZWVuIHJlcXVl c3RlZCB2aWEgSFZNT1BfZ3Vlc3RfcmVxdWVzdF92bV9ldmVudC4gKi8KPiAgICNkZWZpbmUgVk1f RVZFTlRfUkVBU09OX0dVRVNUX1JFUVVFU1QgICAgICAgICAgIDgKPiArLyogUHJpdmlsZWdlZCBj YWxsIGV4ZWN1dGVkIChlLmcuIFNNQykgKi8KPiArI2RlZmluZSBWTV9FVkVOVF9SRUFTT05fUFJJ VklMRUdFRF9DQUxMICAgICAgICAgOQo+Cj4gICAvKiBTdXBwb3J0ZWQgdmFsdWVzIGZvciB0aGUg dm1fZXZlbnRfd3JpdGVfY3RybHJlZyBpbmRleC4gKi8KPiAgICNkZWZpbmUgVk1fRVZFTlRfWDg2 X0NSMCAgICAwCj4gQEAgLTE2Niw2ICsxNjgsMzAgQEAgc3RydWN0IHZtX2V2ZW50X3JlZ3NfeDg2 IHsKPiAgICAgICB1aW50MzJfdCBfcGFkOwo+ICAgfTsKPgo+ICtzdHJ1Y3Qgdm1fZXZlbnRfcmVn c19hcm0gewo+ICsgICAgLyogICAgICAgQWFyY2g2NCAgICAgICBBYXJjaDMyICovCj4gKyAgICB1 aW50NjRfdCB4MDsgICAgICAgLyogIHIwX3VzciAgKi8KPiArICAgIHVpbnQ2NF90IHgxOyAgICAg ICAvKiAgcjFfdXNyICAqLwo+ICsgICAgdWludDY0X3QgeDI7ICAgICAgIC8qICByMl91c3IgICov Cj4gKyAgICB1aW50NjRfdCB4MzsgICAgICAgLyogIHIzX3VzciAgKi8KPiArICAgIHVpbnQ2NF90 IHg0OyAgICAgICAvKiAgcjRfdXNyICAqLwo+ICsgICAgdWludDY0X3QgeDU7ICAgICAgIC8qICBy NV91c3IgICovCj4gKyAgICB1aW50NjRfdCB4NjsgICAgICAgLyogIHI2X3VzciAgKi8KPiArICAg IHVpbnQ2NF90IHg3OyAgICAgICAvKiAgcjdfdXNyICAqLwo+ICsgICAgdWludDY0X3QgeDg7ICAg ICAgIC8qICByOF91c3IgICovCj4gKyAgICB1aW50NjRfdCB4OTsgICAgICAgLyogIHI5X3VzciAg Ki8KPiArICAgIHVpbnQ2NF90IHgxMDsgICAgICAvKiAgcjEwX3VzciAqLwoKSSB3b3VsZCBpbnRy b2R1Y2UgYW4gdW5pb24gdG8gbGV0IHRoZSBjaG9pY2UgdG8gdGhlIHVzZXJzcGFjZSB0byBkZWFs IApvbmx5IHdpdGggQUFyY2gzMiByZWdpc3RlcnMuIFNlZSB2Y3B1X2d1ZXN0X2NvcmVfcmVncy4K Cj4gKyAgICB1aW50NjRfdCBscjsgICAgICAgLyogIGxyX3VzciAgKi8KPiArICAgIHVpbnQ2NF90 IHNwX2VsMDsgICAvKiAgc3BfdXNyICAqLwo+ICsgICAgdWludDY0X3Qgc3BfZWwxOyAgIC8qICBz cF9zdmMgICovCj4gKyAgICB1aW50MzJfdCBzcHNyX2VsMTsgLyogIHNwc3Jfc3ZjICovCj4gKyAg ICB1aW50NjRfdCBmcDsKPiArICAgIHVpbnQ2NF90IHBjOwo+ICsgICAgdWludDMyX3QgY3BzcjsK PiArICAgIHVpbnQ2NF90IHR0YnIwOwo+ICsgICAgdWludDY0X3QgdHRicjE7Cj4gK307Cj4gKwo+ ICAgLyoKPiAgICAqIG1lbV9hY2Nlc3MgZmxhZyBkZWZpbml0aW9ucwo+ICAgICoKPiBAQCAtMjU0 LDYgKzI4MCw3IEBAIHR5cGVkZWYgc3RydWN0IHZtX2V2ZW50X3N0IHsKPiAgICAgICB1bmlvbiB7 Cj4gICAgICAgICAgIHVuaW9uIHsKPiAgICAgICAgICAgICAgIHN0cnVjdCB2bV9ldmVudF9yZWdz X3g4NiB4ODY7Cj4gKyAgICAgICAgICAgIHN0cnVjdCB2bV9ldmVudF9yZWdzX2FybSBhcm07Cj4g ICAgICAgICAgIH0gcmVnczsKPgo+ICAgICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfZW11bF9yZWFk X2RhdGEgZW11bF9yZWFkX2RhdGE7Cj4KClJlZ2FyZHMsCgotLSAKSnVsaWVuIEdyYWxsCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=