From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v8 05/27] ARM: GICv3: forward pending LPIs to guests Date: Wed, 12 Apr 2017 11:44:17 +0100 Message-ID: References: <1491957874-31600-1-git-send-email-andre.przywara@arm.com> <1491957874-31600-6-git-send-email-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cyFl9-00062Y-C0 for xen-devel@lists.xenproject.org; Wed, 12 Apr 2017 10:44:23 +0000 In-Reply-To: <1491957874-31600-6-git-send-email-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andre Przywara , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Vijaya Kumar K , Vijay Kilari , Shanker Donthineni List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmUsCgpPbiAxMi8wNC8xNyAwMTo0NCwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6Cj4gVXBv biByZWNlaXZpbmcgYW4gTFBJIG9uIHRoZSBob3N0LCB3ZSBuZWVkIHRvIGZpbmQgdGhlIHJpZ2h0 IFZDUFUgYW5kCj4gdmlydHVhbCBJUlEgbnVtYmVyIHRvIGdldCB0aGlzIElSUSBpbmplY3RlZC4K PiBJdGVyYXRlIG91ciB0d28tbGV2ZWwgTFBJIHRhYmxlIHRvIGZpbmQgdGhpcyBpbmZvcm1hdGlv biBxdWlja2x5IHdoZW4KPiB0aGUgaG9zdCB0YWtlcyBhbiBMUEkuIENhbGwgdGhlIGV4aXN0aW5n IGluamVjdGlvbiBmdW5jdGlvbiB0byBsZXQgdGhlCj4gR0lDIGVtdWxhdGlvbiBkZWFsIHdpdGgg dGhpcyBpbnRlcnJ1cHQuCj4gQWxzbyB3ZSBlbmhhbmNlIHN0cnVjdCBwZW5kaW5nX2lycSB0byBj YWNoZSB0aGUgcGVuZGluZyBiaXQgYW5kIHRoZQo+IHByaW9yaXR5IGluZm9ybWF0aW9uIGZvciBM UElzLiBSZWFkaW5nIHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZXJlIGlzCj4gZmFzdGVyIHRoYW4g YWNjZXNzaW5nIHRoZSBwcm9wZXJ0eSB0YWJsZSBmcm9tIGd1ZXN0IG1lbW9yeS4gQWxzbyBpdAo+ IHVzZSBzb21lIHBhZGRpbmcgYXJlYSwgc28gZG9lcyBub3QgcmVxdWlyZSBtb3JlIG1lbW9yeS4K PiBUaGlzIGludHJvZHVjZXMgYSBkb19MUEkoKSBhcyBhIGhhcmR3YXJlIGdpY19vcHMgYW5kIGEg ZnVuY3Rpb24gdG8KPiByZXRyaWV2ZSB0aGUgKGNhY2hlZCkgcHJpb3JpdHkgdmFsdWUgb2YgYW4g TFBJIGFuZCBhIHZnaWNfb3BzLgo+Cj4gU2lnbmVkLW9mZi1ieTogQW5kcmUgUHJ6eXdhcmEgPGFu ZHJlLnByenl3YXJhQGFybS5jb20+Cj4gLS0tCj4gIHhlbi9hcmNoL2FybS9naWMtdjIuYyAgICAg ICAgICAgIHwgIDcgKysrKwo+ICB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jICAgICAgICB8IDcx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgeGVuL2FyY2gvYXJt L2dpYy12My5jICAgICAgICAgICAgfCAgMSArCj4gIHhlbi9hcmNoL2FybS9naWMuYyAgICAgICAg ICAgICAgIHwgIDggKysrKy0KPiAgeGVuL2FyY2gvYXJtL3ZnaWMtdjIuYyAgICAgICAgICAgfCAg NyArKysrCj4gIHhlbi9hcmNoL2FybS92Z2ljLXYzLmMgICAgICAgICAgIHwgMTIgKysrKysrKwo+ ICB4ZW4vYXJjaC9hcm0vdmdpYy5jICAgICAgICAgICAgICB8ICA3ICsrKy0KPiAgeGVuL2luY2x1 ZGUvYXNtLWFybS9kb21haW4uaCAgICAgfCAgMyArLQo+ICB4ZW4vaW5jbHVkZS9hc20tYXJtL2dp Yy5oICAgICAgICB8ICAyICsrCj4gIHhlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oIHwg IDggKysrKysKPiAgeGVuL2luY2x1ZGUvYXNtLWFybS92Z2ljLmggICAgICAgfCAgMiArKwo+ICAx MSBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPgo+IGRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMK PiBpbmRleCAyNzBhMTM2Li5mZmJlNDdjIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9naWMt djIuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMtdjIuYwo+IEBAIC0xMjE3LDYgKzEyMTcsMTIg QEAgc3RhdGljIGludCBfX2luaXQgZ2ljdjJfaW5pdCh2b2lkKQo+ICAgICAgcmV0dXJuIDA7Cj4g IH0KPgo+ICtzdGF0aWMgdm9pZCBnaWN2Ml9kb19MUEkodW5zaWduZWQgaW50IGxwaSkKPiArewo+ ICsgICAgLyogTm8gTFBJcyBpbiBhIEdJQ3YyICovCj4gKyAgICBCVUcoKTsKPiArfQo+ICsKPiAg Y29uc3Qgc3RhdGljIHN0cnVjdCBnaWNfaHdfb3BlcmF0aW9ucyBnaWN2Ml9vcHMgPSB7Cj4gICAg ICAuaW5mbyAgICAgICAgICAgICAgICA9ICZnaWN2Ml9pbmZvLAo+ICAgICAgLmluaXQgICAgICAg ICAgICAgICAgPSBnaWN2Ml9pbml0LAo+IEBAIC0xMjQ0LDYgKzEyNTAsNyBAQCBjb25zdCBzdGF0 aWMgc3RydWN0IGdpY19od19vcGVyYXRpb25zIGdpY3YyX29wcyA9IHsKPiAgICAgIC5tYWtlX2h3 ZG9tX21hZHQgICAgID0gZ2ljdjJfbWFrZV9od2RvbV9tYWR0LAo+ICAgICAgLm1hcF9od2RvbV9l eHRyYV9tYXBwaW5ncyA9IGdpY3YyX21hcF9od2Rvd25fZXh0cmFfbWFwcGluZ3MsCj4gICAgICAu aW9tZW1fZGVueV9hY2Nlc3MgICA9IGdpY3YyX2lvbWVtX2RlbnlfYWNjZXNzLAo+ICsgICAgLmRv X0xQSSAgICAgICAgICAgICAgPSBnaWN2Ml9kb19MUEksCj4gIH07Cj4KPiAgLyogU2V0IHVwIHRo ZSBHSUMgKi8KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My1scGkuYyBiL3hlbi9h cmNoL2FybS9naWMtdjMtbHBpLmMKPiBpbmRleCAyOTJmMmQwLi40NGY2MzE1IDEwMDY0NAo+IC0t LSBhL3hlbi9hcmNoL2FybS9naWMtdjMtbHBpLmMKPiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYz LWxwaS5jCj4gQEAgLTEzNiw2ICsxMzYsNzcgQEAgdWludDY0X3QgZ2ljdjNfZ2V0X3JlZGlzdF9h ZGRyZXNzKHVuc2lnbmVkIGludCBjcHUsIGJvb2wgdXNlX3B0YSkKPiAgICAgICAgICByZXR1cm4g cGVyX2NwdShscGlfcmVkaXN0LCBjcHUpLnJlZGlzdF9pZCA8PCAxNjsKPiAgfQo+Cj4gKy8qCj4g KyAqIEhhbmRsZSBpbmNvbWluZyBMUElzLCB3aGljaCBhcmUgYSBiaXQgc3BlY2lhbCwgYmVjYXVz ZSB0aGV5IGFyZSBwb3RlbnRpYWxseQo+ICsgKiBudW1lcm91cyBhbmQgYWxzbyBvbmx5IGdldCBp bmplY3RlZCBpbnRvIGd1ZXN0cy4gVHJlYXQgdGhlbSBzcGVjaWFsbHkgaGVyZSwKPiArICogYnkg anVzdCBsb29raW5nIHVwIHRoZWlyIHRhcmdldCB2Q1BVIGFuZCB2aXJ0dWFsIExQSSBudW1iZXIg YW5kIGhhbmQgaXQKPiArICogb3ZlciB0byB0aGUgaW5qZWN0aW9uIGZ1bmN0aW9uLgo+ICsgKiBQ bGVhc2Ugbm90ZSB0aGF0IExQSXMgYXJlIGVkZ2UtdHJpZ2dlcmVkIG9ubHksIGFsc28gaGF2ZSBu byBhY3RpdmUgc3RhdGUsCj4gKyAqIHNvIHNwdXJpb3VzIGludGVycnVwdHMgb24gdGhlIGhvc3Qg c2lkZSBhcmUgbm8gaXNzdWUgKHdlIGNhbiBqdXN0IGlnbm9yZQo+ICsgKiB0aGVtKS4KPiArICog QWxzbyBhIGd1ZXN0IGNhbm5vdCBleHBlY3QgdGhhdCBmaXJpbmcgaW50ZXJydXB0cyB0aGF0IGhh dmVuJ3QgYmVlbgo+ICsgKiBmdWxseSBjb25maWd1cmVkIHlldCB3aWxsIHJlYWNoIHRoZSBDUFUs IHNvIHdlIGRvbid0IG5lZWQgdG8gY2FyZSBhYm91dAo+ICsgKiB0aGlzIHNwZWNpYWwgY2FzZS4K PiArICovCj4gK3ZvaWQgZ2ljdjNfZG9fTFBJKHVuc2lnbmVkIGludCBscGkpCj4gK3sKPiArICAg IHN0cnVjdCBkb21haW4gKmQ7Cj4gKyAgICB1bmlvbiBob3N0X2xwaSAqaGxwaXAsIGhscGk7Cj4g KyAgICBzdHJ1Y3QgdmNwdSAqdmNwdTsKPiArCj4gKyAgICBpcnFfZW50ZXIoKTsKPiArCj4gKyAg ICAvKiBFT0kgdGhlIExQSSBhbHJlYWR5LiAqLwo+ICsgICAgV1JJVEVfU1lTUkVHMzIobHBpLCBJ Q0NfRU9JUjFfRUwxKTsKPiArCj4gKyAgICAvKiBGaW5kIG91dCBpZiBhIGd1ZXN0IG1hcHBlZCBz b21ldGhpbmcgdG8gdGhpcyBwaHlzaWNhbCBMUEkuICovCj4gKyAgICBobHBpcCA9IGdpY19nZXRf aG9zdF9scGkobHBpKTsKPiArICAgIGlmICggIWhscGlwICkKPiArICAgICAgICBnb3RvIG91dDsK PiArCj4gKyAgICBobHBpLmRhdGEgPSByZWFkX3U2NF9hdG9taWMoJmhscGlwLT5kYXRhKTsKPiAr Cj4gKyAgICAvKgo+ICsgICAgICogVW5tYXBwZWQgZXZlbnRzIGFyZSBtYXJrZWQgd2l0aCBhbiBp bnZhbGlkIExQSSBJRC4gV2UgY2FuIHNhZmVseQo+ICsgICAgICogaWdub3JlIHRoZW0sIGFzIHRo ZXkgaGF2ZSBubyBmdXJ0aGVyIHN0YXRlIGFuZCBuby1vbmUgY2FuIGV4cGVjdAo+ICsgICAgICog dG8gc2VlIHRoZW0gaWYgdGhleSBoYXZlIG5vdCBiZWVuIG1hcHBlZC4KPiArICAgICAqLwo+ICsg ICAgaWYgKCBobHBpLnZpcnRfbHBpID09IElOVkFMSURfTFBJICkKPiArICAgICAgICBnb3RvIG91 dDsKPiArCj4gKyAgICBkID0gcmN1X2xvY2tfZG9tYWluX2J5X2lkKGhscGkuZG9tX2lkKTsKPiAr ICAgIGlmICggIWQgKQo+ICsgICAgICAgIGdvdG8gb3V0Owo+ICsKPiArICAgIC8qIE1ha2Ugc3Vy ZSB3ZSBkb24ndCBzdGVwIGJleW9uZCB0aGUgdmNwdSBhcnJheS4gKi8KPiArICAgIGlmICggaGxw aS52Y3B1X2lkID49IGQtPm1heF92Y3B1cyApCj4gKyAgICB7Cj4gKyAgICAgICAgcmN1X3VubG9j a19kb21haW4oZCk7Cj4gKyAgICAgICAgZ290byBvdXQ7Cj4gKyAgICB9Cj4gKwo+ICsgICAgdmNw dSA9IGQtPnZjcHVbaGxwaS52Y3B1X2lkXTsKPiArCj4gKyAgICAvKiBDaGVjayBpZiB0aGUgVkNQ VSBpcyByZWFkeSB0byByZWNlaXZlIExQSXMuICovCj4gKyAgICBpZiAoIHZjcHUtPmFyY2gudmdp Yy5mbGFncyAmIFZHSUNfVjNfTFBJU19FTkFCTEVEICkKPiArICAgICAgICAvKgo+ICsgICAgICAg ICAqIFRPRE86IEludmVzdGlnYXRlIHdoYXQgdG8gZG8gaGVyZSBmb3IgcG90ZW50aWFsIGludGVy cnVwdCBzdG9ybXMuCj4gKyAgICAgICAgICogQXMgd2Uga2VlcCBhbGwgaG9zdCBMUElzIGVuYWJs ZWQsIGZvciBkaXNhYmxpbmcgTFBJcyB3ZSB3b3VsZCBuZWVkCj4gKyAgICAgICAgICogdG8gcXVl dWUgYSBJVFMgaG9zdCBjb21tYW5kLCB3aGljaCB3ZSBhdm9pZCBzbyBmYXIgZHVyaW5nIGEgZ3Vl c3Qncwo+ICsgICAgICAgICAqIHJ1bnRpbWUuIEFsc28gcmUtZW5hYmxpbmcgd291bGQgdHJpZ2dl ciBhIGhvc3QgY29tbWFuZCB1cG9uIHRoZQo+ICsgICAgICAgICAqIGd1ZXN0IHNlbmRpbmcgYSBj b21tYW5kLCB3aGljaCBjb3VsZCBiZSBhbiBhdHRhY2sgdmVjdG9yIGZvcgo+ICsgICAgICAgICAq IGhvZ2dpbmcgdGhlIGhvc3QgY29tbWFuZCBxdWV1ZS4KPiArICAgICAgICAgKiBTZWUgdGhlIHRo cmVhZCBhcm91bmQgaGVyZSBmb3Igc29tZSBiYWNrZ3JvdW5kOgo+ICsgICAgICAgICAqIGh0dHBz Oi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE2LTEyL21zZzAwMDAz Lmh0bWwKPiArICAgICAgICAgKi8KClRoaXMgVE9ETyBzaG91bGQgaGF2ZSBiZWVuIGxpc3RlZCBp biB0aGUgY292ZXIgbGV0dGVyLgoKPiArICAgICAgICB2Z2ljX3ZjcHVfaW5qZWN0X2lycSh2Y3B1 LCBobHBpLnZpcnRfbHBpKTsKPiArCj4gKyAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKPiArCj4g K291dDoKPiArICAgIGlycV9leGl0KCk7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgZ2ljdjNfbHBp X2FsbG9jYXRlX3BlbmR0YWJsZSh1aW50NjRfdCAqcmVnKQo+ICB7Cj4gICAgICB1aW50NjRfdCB2 YWw7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjMuYyBiL3hlbi9hcmNoL2FybS9n aWMtdjMuYwo+IGluZGV4IDI5Yzg5NjQuLjgxNDBjNWYgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gv YXJtL2dpYy12My5jCj4gKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My5jCj4gQEAgLTE2NzQsNiAr MTY3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2ljX2h3X29wZXJhdGlvbnMgZ2ljdjNfb3Bz ID0gewo+ICAgICAgLm1ha2VfaHdkb21fZHRfbm9kZSAgPSBnaWN2M19tYWtlX2h3ZG9tX2R0X25v ZGUsCj4gICAgICAubWFrZV9od2RvbV9tYWR0ICAgICA9IGdpY3YzX21ha2VfaHdkb21fbWFkdCwK PiAgICAgIC5pb21lbV9kZW55X2FjY2VzcyAgID0gZ2ljdjNfaW9tZW1fZGVueV9hY2Nlc3MsCj4g KyAgICAuZG9fTFBJICAgICAgICAgICAgICA9IGdpY3YzX2RvX0xQSSwKPiAgfTsKPgo+ICBzdGF0 aWMgaW50IF9faW5pdCBnaWN2M19kdF9wcmVpbml0KHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9k ZSwgY29uc3Qgdm9pZCAqZGF0YSkKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy5jIGIv eGVuL2FyY2gvYXJtL2dpYy5jCj4gaW5kZXggNjJhZTNiOC4uZDc1MjM1MiAxMDA2NDQKPiAtLS0g YS94ZW4vYXJjaC9hcm0vZ2ljLmMKPiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLmMKPiBAQCAtNzM1 LDcgKzczNSwxMyBAQCB2b2lkIGdpY19pbnRlcnJ1cHQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MsIGludCBpc19maXEpCj4gICAgICAgICAgICAgIGRvX0lSUShyZWdzLCBpcnEsIGlzX2ZpcSk7 Cj4gICAgICAgICAgICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7Cj4gICAgICAgICAgfQo+IC0gICAg ICAgIGVsc2UgaWYgKHVubGlrZWx5KGlycSA8IDE2KSkKPiArICAgICAgICBlbHNlIGlmICggaXNf bHBpKGlycSkgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgbG9jYWxfaXJxX2VuYWJsZSgp Owo+ICsgICAgICAgICAgICBnaWNfaHdfb3BzLT5kb19MUEkoaXJxKTsKPiArICAgICAgICAgICAg bG9jYWxfaXJxX2Rpc2FibGUoKTsKPiArICAgICAgICB9Cj4gKyAgICAgICAgZWxzZSBpZiAoIHVu bGlrZWx5KGlycSA8IDE2KSApCj4gICAgICAgICAgewo+ICAgICAgICAgICAgICBkb19zZ2kocmVn cywgaXJxKTsKPiAgICAgICAgICB9Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLXYy LmMgYi94ZW4vYXJjaC9hcm0vdmdpYy12Mi5jCj4gaW5kZXggMDU4NzU2OS4uZGY5MTk0MCAxMDA2 NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy12Mi5jCj4gKysrIGIveGVuL2FyY2gvYXJtL3Zn aWMtdjIuYwo+IEBAIC03MDksMTEgKzcwOSwxOCBAQCBzdGF0aWMgc3RydWN0IHBlbmRpbmdfaXJx ICp2Z2ljX3YyX2xwaV90b19wZW5kaW5nKHN0cnVjdCBkb21haW4gKmQsCj4gICAgICBCVUcoKTsK PiAgfQo+Cj4gK3N0YXRpYyBpbnQgdmdpY192Ml9scGlfZ2V0X3ByaW9yaXR5KHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGludCB2bHBpKQo+ICt7Cj4gKyAgICAvKiBEdW1teSBmdW5jdGlvbiwg bm8gTFBJcyBvbiBhIFZHSUN2Mi4gKi8KPiArICAgIEJVRygpOwo+ICt9Cj4gKwo+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IHZnaWNfb3BzIHZnaWNfdjJfb3BzID0gewo+ICAgICAgLnZjcHVfaW5pdCAg ID0gdmdpY192Ml92Y3B1X2luaXQsCj4gICAgICAuZG9tYWluX2luaXQgPSB2Z2ljX3YyX2RvbWFp bl9pbml0LAo+ICAgICAgLmRvbWFpbl9mcmVlID0gdmdpY192Ml9kb21haW5fZnJlZSwKPiAgICAg IC5scGlfdG9fcGVuZGluZyA9IHZnaWNfdjJfbHBpX3RvX3BlbmRpbmcsCj4gKyAgICAubHBpX2dl dF9wcmlvcml0eSA9IHZnaWNfdjJfbHBpX2dldF9wcmlvcml0eSwKPiAgICAgIC5tYXhfdmNwdXMg PSA4LAo+ICB9Owo+Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMgYi94ZW4v YXJjaC9hcm0vdmdpYy12My5jCj4gaW5kZXggZjQ2MjYxMC4uYzA1OWRiZCAxMDA2NDQKPiAtLS0g YS94ZW4vYXJjaC9hcm0vdmdpYy12My5jCj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYwo+ IEBAIC0xNTU4LDEyICsxNTU4LDI0IEBAIHN0YXRpYyBzdHJ1Y3QgcGVuZGluZ19pcnEgKnZnaWNf djNfbHBpX3RvX3BlbmRpbmcoc3RydWN0IGRvbWFpbiAqZCwKPiAgICAgIHJldHVybiBwaXJxOwo+ ICB9Cj4KPiArLyogUmV0cmlldmUgdGhlIHByaW9yaXR5IG9mIGFuIExQSSBmcm9tIGl0cyBzdHJ1 Y3QgcGVuZGluZ19pcnEuICovCj4gK3N0YXRpYyBpbnQgdmdpY192M19scGlfZ2V0X3ByaW9yaXR5 KHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IHZscGkpCj4gK3sKPiArICAgIHN0cnVjdCBwZW5k aW5nX2lycSAqcCA9IHZnaWNfdjNfbHBpX3RvX3BlbmRpbmcoZCwgdmxwaSk7Cj4gKwo+ICsgICAg aWYgKCAhcCApCj4gKyAgICAgICAgcmV0dXJuIEdJQ19QUklfSVJROwoKV2h5IHRoZSBjaGVjayBo ZXJlPyBBbmQgd2h5IHJldHVybmluZyBHSUNfUFJJX0lSUT8KCkFGQUlDVCwgdmdpY192M19scGlf dG9fcGVuZGluZyBzaG91bGQgbmV2ZXIgcmV0dXJuIE5VTEwgd2hlbiByZWFkaW5nIHRoZSAKcHJp b3JpdHkuIE9yIGVsc2UsIHlvdSBhcmUgaW4gYmlnIHRyb3VibGUuCgo+ICsKPiArICAgIHJldHVy biBwLT5scGlfcHJpb3JpdHk7Cj4gK30KPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdmdpY19v cHMgdjNfb3BzID0gewo+ICAgICAgLnZjcHVfaW5pdCAgID0gdmdpY192M192Y3B1X2luaXQsCj4g ICAgICAuZG9tYWluX2luaXQgPSB2Z2ljX3YzX2RvbWFpbl9pbml0LAo+ICAgICAgLmRvbWFpbl9m cmVlID0gdmdpY192M19kb21haW5fZnJlZSwKPiAgICAgIC5lbXVsYXRlX3JlZyAgPSB2Z2ljX3Yz X2VtdWxhdGVfcmVnLAo+ICAgICAgLmxwaV90b19wZW5kaW5nID0gdmdpY192M19scGlfdG9fcGVu ZGluZywKPiArICAgIC5scGlfZ2V0X3ByaW9yaXR5ID0gdmdpY192M19scGlfZ2V0X3ByaW9yaXR5 LAo+ICAgICAgLyoKPiAgICAgICAqIFdlIHVzZSBib3RoIEFGRjEgYW5kIEFGRjAgaW4gKHYpTVBJ RFIuIFRodXMsIHRoZSBtYXggbnVtYmVyIG9mIENQVQo+ICAgICAgICogdGhhdCBjYW4gYmUgc3Vw cG9ydGVkIGlzIHVwIHRvIDQwOTYoPT0yNTYqMTYpIGluIHRoZW9yeS4KPiBkaWZmIC0tZ2l0IGEv eGVuL2FyY2gvYXJtL3ZnaWMuYyBiL3hlbi9hcmNoL2FybS92Z2ljLmMKPiBpbmRleCBjMmJmZGIx Li5iNmZlMzRmIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS92Z2ljLmMKPiArKysgYi94ZW4v YXJjaC9hcm0vdmdpYy5jCj4gQEAgLTIyNiwxMCArMjI2LDE1IEBAIHN0cnVjdCB2Y3B1ICp2Z2lj X2dldF90YXJnZXRfdmNwdShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZpcnEpCj4KPiAg c3RhdGljIGludCB2Z2ljX2dldF92aXJxX3ByaW9yaXR5KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25l ZCBpbnQgdmlycSkKPiAgewo+IC0gICAgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnJhbmsgPSB2Z2lj X3JhbmtfaXJxKHYsIHZpcnEpOwo+ICsgICAgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnJhbms7Cj4g ICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAgICAgaW50IHByaW9yaXR5Owo+Cj4gKyAgICAv KiBMUElzIGRvbid0IGhhdmUgYSByYW5rLCBhbHNvIHN0b3JlIHRoZWlyIHByaW9yaXR5IHNlcGFy YXRlbHkuICovCj4gKyAgICBpZiAoIGlzX2xwaSh2aXJxKSApCj4gKyAgICAgICAgcmV0dXJuIHYt PmRvbWFpbi0+YXJjaC52Z2ljLmhhbmRsZXItPmxwaV9nZXRfcHJpb3JpdHkodi0+ZG9tYWluLCB2 aXJxKTsKPiArCj4gKyAgICByYW5rID0gdmdpY19yYW5rX2lycSh2LCB2aXJxKTsKPiAgICAgIHZn aWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsKPiAgICAgIHByaW9yaXR5ID0gcmFuay0+cHJp b3JpdHlbdmlycSAmIElOVEVSUlVQVF9SQU5LX01BU0tdOwo+ICAgICAgdmdpY191bmxvY2tfcmFu ayh2LCByYW5rLCBmbGFncyk7Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9t YWluLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCj4gaW5kZXggM2Q4ZTg0Yy4uZWJh ZWEzNSAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCj4gKysrIGIv eGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAo+IEBAIC0yNjAsNyArMjYwLDggQEAgc3RydWN0 IGFyY2hfdmNwdQo+Cj4gICAgICAgICAgLyogR0lDdjM6IHJlZGlzdHJpYnV0b3IgYmFzZSBhbmQg ZmxhZ3MgZm9yIHRoaXMgdkNQVSAqLwo+ICAgICAgICAgIHBhZGRyX3QgcmRpc3RfYmFzZTsKPiAt I2RlZmluZSBWR0lDX1YzX1JESVNUX0xBU1QgICgxIDw8IDApICAgICAgICAvKiBsYXN0IHZDUFUg b2YgdGhlIHJkaXN0ICovCj4gKyNkZWZpbmUgVkdJQ19WM19SRElTVF9MQVNUICAgICAgKDEgPDwg MCkgICAgICAgIC8qIGxhc3QgdkNQVSBvZiB0aGUgcmRpc3QgKi8KPiArI2RlZmluZSBWR0lDX1Yz X0xQSVNfRU5BQkxFRCAgICAoMSA8PCAxKQo+ICAgICAgICAgIHVpbnQ4X3QgZmxhZ3M7Cj4gICAg ICB9IHZnaWM7Cj4KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9naWMuaCBiL3hl bi9pbmNsdWRlL2FzbS1hcm0vZ2ljLmgKPiBpbmRleCA4MzZhMTAzLi40Mjk2M2MwIDEwMDY0NAo+ IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20t YXJtL2dpYy5oCj4gQEAgLTM2Niw2ICszNjYsOCBAQCBzdHJ1Y3QgZ2ljX2h3X29wZXJhdGlvbnMg ewo+ICAgICAgaW50ICgqbWFwX2h3ZG9tX2V4dHJhX21hcHBpbmdzKShzdHJ1Y3QgZG9tYWluICpk KTsKPiAgICAgIC8qIERlbnkgYWNjZXNzIHRvIEdJQyByZWdpb25zICovCj4gICAgICBpbnQgKCpp b21lbV9kZW55X2FjY2VzcykoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCk7Cj4gKyAgICAvKiBIYW5k bGUgTFBJcywgd2hpY2ggcmVxdWlyZSBzcGVjaWFsIGhhbmRsaW5nICovCj4gKyAgICB2b2lkICgq ZG9fTFBJKSh1bnNpZ25lZCBpbnQgbHBpKTsKPiAgfTsKPgo+ICB2b2lkIHJlZ2lzdGVyX2dpY19v cHMoY29uc3Qgc3RydWN0IGdpY19od19vcGVyYXRpb25zICpvcHMpOwo+IGRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2lj X3YzX2l0cy5oCj4gaW5kZXggMjk1NTlhMy4uNzQ3MDc3OSAxMDA2NDQKPiAtLS0gYS94ZW4vaW5j bHVkZS9hc20tYXJtL2dpY192M19pdHMuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2lj X3YzX2l0cy5oCj4gQEAgLTEzNCw2ICsxMzQsOCBAQCB2b2lkIGdpY3YzX2l0c19kdF9pbml0KGNv bnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSk7Cj4KPiAgYm9vbCBnaWN2M19pdHNfaG9z dF9oYXNfaXRzKHZvaWQpOwo+Cj4gK3ZvaWQgZ2ljdjNfZG9fTFBJKHVuc2lnbmVkIGludCBscGkp Owo+ICsKPiAgaW50IGdpY3YzX2xwaV9pbml0X3JkaXN0KHZvaWQgX19pb21lbSAqIHJkaXN0X2Jh c2UpOwo+Cj4gIC8qIEluaXRpYWxpemUgdGhlIGhvc3Qgc3RydWN0dXJlcyBmb3IgTFBJcyBhbmQg dGhlIGhvc3QgSVRTZXMuICovCj4gQEAgLTE3NSw2ICsxNzcsMTIgQEAgc3RhdGljIGlubGluZSBi b29sIGdpY3YzX2l0c19ob3N0X2hhc19pdHModm9pZCkKPiAgICAgIHJldHVybiBmYWxzZTsKPiAg fQo+Cj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBnaWN2M19kb19MUEkodW5zaWduZWQgaW50IGxwaSkK PiArewo+ICsgICAgLyogV2UgZG9uJ3QgZW5hYmxlIExQSXMgd2l0aG91dCBhbiBJVFMuICovCj4g KyAgICBCVUcoKTsKPiArfQo+ICsKPiAgc3RhdGljIGlubGluZSBpbnQgZ2ljdjNfbHBpX2luaXRf cmRpc3Qodm9pZCBfX2lvbWVtICogcmRpc3RfYmFzZSkKPiAgewo+ICAgICAgcmV0dXJuIC1FTk9E RVY7Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oIGIveGVuL2luY2x1 ZGUvYXNtLWFybS92Z2ljLmgKPiBpbmRleCBjOTA3NWE5Li43ZWZhMTY0IDEwMDY0NAo+IC0tLSBh L3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS92 Z2ljLmgKPiBAQCAtNzIsNiArNzIsNyBAQCBzdHJ1Y3QgcGVuZGluZ19pcnEKPiAgI2RlZmluZSBH SUNfSU5WQUxJRF9MUiAgICAgICAgICh1aW50OF90KX4wCj4gICAgICB1aW50OF90IGxyOwo+ICAg ICAgdWludDhfdCBwcmlvcml0eTsKPiArICAgIHVpbnQ4X3QgbHBpX3ByaW9yaXR5OyAgICAgICAv KiBDYWNoZXMgdGhlIHByaW9yaXR5IGlmIHRoaXMgaXMgYW4gTFBJLiAqLwo+ICAgICAgLyogaW5m bGlnaHQgaXMgdXNlZCB0byBhcHBlbmQgaW5zdGFuY2VzIG9mIHBlbmRpbmdfaXJxIHRvCj4gICAg ICAgKiB2Z2ljLmluZmxpZ2h0X2lycXMgKi8KPiAgICAgIHN0cnVjdCBsaXN0X2hlYWQgaW5mbGln aHQ7Cj4gQEAgLTEzNiw2ICsxMzcsNyBAQCBzdHJ1Y3QgdmdpY19vcHMgewo+ICAgICAgYm9vbCAo KmVtdWxhdGVfcmVnKShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdW5pb24gaHNyIGhzcik7 Cj4gICAgICAvKiBsb29rdXAgdGhlIHN0cnVjdCBwZW5kaW5nX2lycSBmb3IgYSBnaXZlbiBMUEkg aW50ZXJydXB0ICovCj4gICAgICBzdHJ1Y3QgcGVuZGluZ19pcnEgKigqbHBpX3RvX3BlbmRpbmcp KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2bHBpKTsKPiArICAgIGludCAoKmxwaV9n ZXRfcHJpb3JpdHkpKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IHZscGkpOwo+ICAgICAgLyog TWF4aW11bSBudW1iZXIgb2YgdkNQVSBzdXBwb3J0ZWQgKi8KPiAgICAgIGNvbnN0IHVuc2lnbmVk IGludCBtYXhfdmNwdXM7Cj4gIH07Cj4KCi0tIApKdWxpZW4gR3JhbGwKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=