From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [RFC PATCH 08/24] ARM: GICv3: introduce separate pending_irq structs for LPIs Date: Thu, 3 Nov 2016 19:47:22 +0000 Message-ID: <55a10bdc-b833-d483-1c1c-f5b0d6f8f278@arm.com> References: <20160928182457.12433-1-andre.przywara@arm.com> <20160928182457.12433-9-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1c2NyT-0005eK-Da for xen-devel@lists.xenproject.org; Thu, 03 Nov 2016 19:46:57 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Vijay Kilari Cc: xen-devel , Julien Grall , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAyNC8xMC8xNiAxNjozMSwgVmlqYXkgS2lsYXJpIHdyb3RlOgo+IE9uIFdlZCwgU2Vw IDI4LCAyMDE2IGF0IDExOjU0IFBNLCBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6eXdhcmFAYXJt LmNvbT4gd3JvdGU6Cj4+IEZvciB0aGUgc2FtZSByZWFzb24gdGhhdCBhbGxvY2F0aW5nIGEgc3Ry dWN0IGlycV9kZXNjIGZvciBlYWNoCj4+IHBvc3NpYmxlIExQSSBpcyBub3QgYW4gb3B0aW9uLCBo YXZpbmcgYSBzdHJ1Y3QgcGVuZGluZ19pcnEgZm9yIGVhY2ggTFBJCj4+IGlzIGFsc28gbm90IGZl YXNpYmxlLiBIb3dldmVyIHdlIGFjdHVhbGx5IG9ubHkgbmVlZCB0aG9zZSB3aGVuIGFuCj4+IGlu dGVycnVwdCBpcyBvbiBhIHZDUFUgKG9yIGlzIGFib3V0IHRvIGJlIGluamVjdGVkKS4KPj4gTWFp bnRhaW4gYSBsaXN0IG9mIHRob3NlIHN0cnVjdHMgdGhhdCB3ZSBjYW4gdXNlIGZvciB0aGUgbGlm ZWN5Y2xlIG9mCj4+IGEgZ3Vlc3QgTFBJLiBXZSBhbGxvY2F0ZSBuZXcgZW50cmllcyBpZiBuZWNl c3NhcnksIGhvd2V2ZXIgcmV1c2UKPj4gcHJlLW93bmVkIGVudHJpZXMgd2hlbmV2ZXIgcG9zc2li bGUuCj4+IFRlYWNoIHRoZSBleGlzdGluZyBWR0lDIGZ1bmN0aW9ucyB0byBmaW5kIHRoZSByaWdo dCBwb2ludGVyIHdoZW4gYmVpbmcKPj4gZ2l2ZW4gYSB2aXJ0dWFsIExQSSBudW1iZXIuCj4+Cj4+ IFNpZ25lZC1vZmYtYnk6IEFuZHJlIFByenl3YXJhIDxhbmRyZS5wcnp5d2FyYUBhcm0uY29tPgo+ PiAtLS0KPj4gIHhlbi9hcmNoL2FybS9naWMuYyAgICAgICAgICAgIHwgIDMgKysrCj4+ICB4ZW4v YXJjaC9hcm0vdmdpYy12My5jICAgICAgICB8ICAyICsrCj4+ICB4ZW4vYXJjaC9hcm0vdmdpYy5j ICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0KPj4gIHhlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmggIHwgIDEgKwo+PiAgeGVuL2luY2x1 ZGUvYXNtLWFybS9naWMtaXRzLmggfCAxMCArKysrKysrKwo+PiAgeGVuL2luY2x1ZGUvYXNtLWFy bS92Z2ljLmggICAgfCAgOSArKysrKysrCj4+ICA2IGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2lj LmMgYi94ZW4vYXJjaC9hcm0vZ2ljLmMKPj4gaW5kZXggNjNjNzQ0YS4uZWJlNDAzNSAxMDA2NDQK Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2dpYy5jCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMuYwo+ PiBAQCAtNTA2LDYgKzUwNiw5IEBAIHN0YXRpYyB2b2lkIGdpY191cGRhdGVfb25lX2xyKHN0cnVj dCB2Y3B1ICp2LCBpbnQgaSkKPj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmNwdSAqdl90YXJn ZXQgPSB2Z2ljX2dldF90YXJnZXRfdmNwdSh2LCBpcnEpOwo+PiAgICAgICAgICAgICAgICAgIGly cV9zZXRfYWZmaW5pdHkocC0+ZGVzYywgY3B1bWFza19vZih2X3RhcmdldC0+cHJvY2Vzc29yKSk7 Cj4+ICAgICAgICAgICAgICB9Cj4+ICsgICAgICAgICAgICAvKiBJZiB0aGlzIHdhcyBhbiBMUEks IG1hcmsgdGhpcyBzdHJ1Y3QgYXMgYXZhaWxhYmxlIGFnYWluLiAqLwo+PiArICAgICAgICAgICAg aWYgKCBwLT5pcnEgPj0gODE5MiApCj4gIENhbiBkZWZpbmUgc29tZXRoaW5nIGxpbmUgaXNfbHBp KGlycSkgYW5kIHVzZSBpdCBldmVyeXdoZXJlCgpZZXMsIHRoYXQgd2FzIG9uIG15IGxpc3QgYW55 d2F5LgoKPj4gKyAgICAgICAgICAgICAgICBwLT5pcnEgPSAwOwo+PiAgICAgICAgICB9Cj4+ICAg ICAgfQo+PiAgfQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYyBiL3hlbi9h cmNoL2FybS92Z2ljLXYzLmMKPj4gaW5kZXggZWMwMzhhMy4uZTliNjQ5MCAxMDA2NDQKPj4gLS0t IGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYwo+PiArKysgYi94ZW4vYXJjaC9hcm0vdmdpYy12My5j Cj4+IEBAIC0xMzg4LDYgKzEzODgsOCBAQCBzdGF0aWMgaW50IHZnaWNfdjNfdmNwdV9pbml0KHN0 cnVjdCB2Y3B1ICp2KQo+PiAgICAgIGlmICggdi0+dmNwdV9pZCA9PSBsYXN0X2NwdSB8fCAodi0+ dmNwdV9pZCA9PSAoZC0+bWF4X3ZjcHVzIC0gMSkpICkKPj4gICAgICAgICAgdi0+YXJjaC52Z2lj LmZsYWdzIHw9IFZHSUNfVjNfUkRJU1RfTEFTVDsKPj4KPj4gKyAgICBJTklUX0xJU1RfSEVBRCgm di0+YXJjaC52Z2ljLnBlbmRpbmdfbHBpX2xpc3QpOwo+PiArCj4+ICAgICAgcmV0dXJuIDA7Cj4+ ICB9Cj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy5jIGIveGVuL2FyY2gvYXJt L3ZnaWMuYwo+PiBpbmRleCAwOTY1MTE5Li5iOTYxNTUxIDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJj aC9hcm0vdmdpYy5jCj4+ICsrKyBiL3hlbi9hcmNoL2FybS92Z2ljLmMKPj4gQEAgLTMxLDYgKzMx LDggQEAKPj4gICNpbmNsdWRlIDxhc20vbW1pby5oPgo+PiAgI2luY2x1ZGUgPGFzbS9naWMuaD4K Pj4gICNpbmNsdWRlIDxhc20vdmdpYy5oPgo+PiArI2luY2x1ZGUgPGFzbS9naWNfdjNfZGVmcy5o Pgo+PiArI2luY2x1ZGUgPGFzbS9naWMtaXRzLmg+Cj4+Cj4+ICBzdGF0aWMgaW5saW5lIHN0cnVj dCB2Z2ljX2lycV9yYW5rICp2Z2ljX2dldF9yYW5rKHN0cnVjdCB2Y3B1ICp2LCBpbnQgcmFuaykK Pj4gIHsKPj4gQEAgLTYxLDcgKzYzLDcgQEAgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnZnaWNfcmFu a19pcnEoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBpcnEpCj4+ICAgICAgcmV0dXJuIHZn aWNfZ2V0X3JhbmsodiwgcmFuayk7Cj4+ICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCB2Z2ljX2luaXRf cGVuZGluZ19pcnEoc3RydWN0IHBlbmRpbmdfaXJxICpwLCB1bnNpZ25lZCBpbnQgdmlycSkKPj4g K3ZvaWQgdmdpY19pbml0X3BlbmRpbmdfaXJxKHN0cnVjdCBwZW5kaW5nX2lycSAqcCwgdW5zaWdu ZWQgaW50IHZpcnEpCj4+ICB7Cj4+ICAgICAgSU5JVF9MSVNUX0hFQUQoJnAtPmluZmxpZ2h0KTsK Pj4gICAgICBJTklUX0xJU1RfSEVBRCgmcC0+bHJfcXVldWUpOwo+PiBAQCAtMjQ0LDEwICsyNDYs MTQgQEAgc3RydWN0IHZjcHUgKnZnaWNfZ2V0X3RhcmdldF92Y3B1KHN0cnVjdCB2Y3B1ICp2LCB1 bnNpZ25lZCBpbnQgdmlycSkKPj4KPj4gIHN0YXRpYyBpbnQgdmdpY19nZXRfdmlycV9wcmlvcml0 eShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZpcnEpCj4+ICB7Cj4+IC0gICAgc3RydWN0 IHZnaWNfaXJxX3JhbmsgKnJhbmsgPSB2Z2ljX3JhbmtfaXJxKHYsIHZpcnEpOwo+PiArICAgIHN0 cnVjdCB2Z2ljX2lycV9yYW5rICpyYW5rOwo+PiAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+ ICAgICAgaW50IHByaW9yaXR5Owo+Pgo+PiArICAgIGlmICggdmlycSA+PSA4MTkyICkKPj4gKyAg ICAgICAgcmV0dXJuIGdpY3YzX2xwaV9nZXRfcHJpb3JpdHkodi0+ZG9tYWluLCB2aXJxKTsKPj4g Kwo+PiArICAgIHJhbmsgPSB2Z2ljX3JhbmtfaXJxKHYsIHZpcnEpOwo+PiAgICAgIHZnaWNfbG9j a19yYW5rKHYsIHJhbmssIGZsYWdzKTsKPj4gICAgICBwcmlvcml0eSA9IHJhbmstPnByaW9yaXR5 W3ZpcnEgJiBJTlRFUlJVUFRfUkFOS19NQVNLXTsKPj4gICAgICB2Z2ljX3VubG9ja19yYW5rKHYs IHJhbmssIGZsYWdzKTsKPj4gQEAgLTQ0NiwxMyArNDUyLDU1IEBAIGludCB2Z2ljX3RvX3NnaShz dHJ1Y3QgdmNwdSAqdiwgcmVnaXN0ZXJfdCBzZ2lyLCBlbnVtIGdpY19zZ2lfbW9kZSBpcnFtb2Rl LCBpbnQKPj4gICAgICByZXR1cm4gMTsKPj4gIH0KPj4KPj4gKy8qCj4+ICsgKiBIb2xkaW5nIHN0 cnVjdCBwZW5kaW5nX2lycSdzIGZvciBlYWNoIHBvc3NpYmxlIHZpcnR1YWwgTFBJIGluIGVhY2gg ZG9tYWluCj4+ICsgKiByZXF1aXJlcyB0b28gbXVjaCBYZW4gbWVtb3J5LCBhbHNvIGEgbWFsaWNp b3VzIGd1ZXN0IGNvdWxkIHBvdGVudGlhbGx5Cj4+ICsgKiBzcGFtIFhlbiB3aXRoIExQSSBtYXAg cmVxdWVzdHMuIFdlIGNhbm5vdCBjb3ZlciB0aG9zZSB3aXRoIChndWVzdCBhbGxvY2F0ZWQpCj4+ ICsgKiBJVFMgbWVtb3J5LCBzbyB3ZSB1c2UgYSBkeW5hbWljIHNjaGVtZSBvZiBhbGxvY2F0aW5n IHN0cnVjdCBwZW5kaW5nX2lycSdzCj4+ICsgKiBvbiBkZW1hbmQuCj4+ICsgKi8KPj4gK3N0cnVj dCBwZW5kaW5nX2lycSAqbHBpX3RvX3BlbmRpbmcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGlu dCBscGksCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYWxsb2Nh dGUpCj4+ICt7Cj4+ICsgICAgc3RydWN0IGxwaV9wZW5kaW5nX2lycSAqbHBpX2lycSwgKmVtcHR5 ID0gTlVMTDsKPj4gKwo+PiArICAgIC8qIFRPRE86IGxvY2tpbmchICovCj4+ICsgICAgbGlzdF9m b3JfZWFjaF9lbnRyeShscGlfaXJxLCAmdi0+YXJjaC52Z2ljLnBlbmRpbmdfbHBpX2xpc3QsIGVu dHJ5KQo+PiArICAgIHsKPj4gKyAgICAgICAgaWYgKCBscGlfaXJxLT5waXJxLmlycSA9PSBscGkg KQo+PiArICAgICAgICAgICAgcmV0dXJuICZscGlfaXJxLT5waXJxOwo+PiArCj4+ICsgICAgICAg IGlmICggbHBpX2lycS0+cGlycS5pcnEgPT0gMCAmJiAhZW1wdHkgKQo+PiArICAgICAgICAgICAg ZW1wdHkgPSBscGlfaXJxOwo+PiArICAgIH0KPiAgICBXaXRoIHRoaXMgYXBwcm9hY2ggb2YgYWxs b2NhdGluZyBwZW5kaW5nX2lycSBvbiBkZW1hbmQsIGlmIHRoZQo+IHBlbmRpbmdfbHBpX2xpc3QK PiBpcyBhdCBuIHBvc2l0aW9uIHRoZW4gaXQgaXRlcmF0ZXMgZm9yIGxvbmcgdGltZSB0byBmaW5k IHBlbmRpbmdfaXJxIGVudHJ5Lgo+IFRoaXMgd2lsbCBpbmNyZWFzZSBMUEkgaW5qZWN0aW9uIHRp bWUgdG8gZG9tYWluLgo+IAo+IFdoeSBjYW4ndCB3ZSB1c2UgYnRyZWU/CgpUaGF0J3MgYW4gb3B0 aW1pemF0aW9uLiBZb3Ugd2lsbCBmaW5kIHRoYXQgdGhlIGFjdHVhbCBudW1iZXIgb2YKaW50ZXJy dXB0cyBvbiBhIFZDUFUgYXQgYW55IGdpdmVuIHRpbWUgaXMgdmVyeSBsb3csIGVzcGVjaWFsbHkg aWYgd2UKbG9vayBhdCBMUElzIG9ubHkuIFNvIG15IGh1bmNoIGlzIHRoYXQgaXQncyBlaXRoZXIg MCwgMSBvciAyLCBub3QgbW9yZS4KU28gZm9yIHNpbXBsaWNpdHkgSSdkIGtlZXAgaXQgYXMgYSBs aXN0IGZvciBub3cuIElmIHdlIHNlZSBpc3N1ZXMsIHdlCmNhbiBhbWVuZCB0aGlzIGF0IGFueSB0 aW1lLgoKPj4gKwo+PiArICAgIGlmICggIWFsbG9jYXRlICkKPj4gKyAgICAgICAgcmV0dXJuIE5V TEw7Cj4+ICsKPj4gKyAgICBpZiAoICFlbXB0eSApCj4+ICsgICAgewo+PiArICAgICAgICBlbXB0 eSA9IHh6YWxsb2Moc3RydWN0IGxwaV9wZW5kaW5nX2lycSk7Cj4+ICsgICAgICAgIHZnaWNfaW5p dF9wZW5kaW5nX2lycSgmZW1wdHktPnBpcnEsIGxwaSk7Cj4+ICsgICAgICAgIGxpc3RfYWRkX3Rh aWwoJmVtcHR5LT5lbnRyeSwgJnYtPmFyY2gudmdpYy5wZW5kaW5nX2xwaV9saXN0KTsKPj4gKyAg ICB9IGVsc2UKPj4gKyAgICB7Cj4+ICsgICAgICAgIGVtcHR5LT5waXJxLnN0YXR1cyA9IDA7Cj4+ ICsgICAgICAgIGVtcHR5LT5waXJxLmlycSA9IGxwaTsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBy ZXR1cm4gJmVtcHR5LT5waXJxOwo+PiArfQo+PiArCj4+ICBzdHJ1Y3QgcGVuZGluZ19pcnEgKmly cV90b19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgaXJxKQo+PiAgewo+PiAg ICAgIHN0cnVjdCBwZW5kaW5nX2lycSAqbjsKPj4gKwo+PiAgICAgIC8qIFBlbmRpbmcgaXJxcyBh bGxvY2F0aW9uIHN0cmF0ZWd5OiB0aGUgZmlyc3QgdmdpYy5ucl9zcGlzIGlycXMKPj4gICAgICAg KiBhcmUgdXNlZCBmb3IgU1BJczsgdGhlIHJlc3RzIGFyZSB1c2VkIGZvciBwZXIgY3B1IGlycXMg Ki8KPj4gICAgICBpZiAoIGlycSA8IDMyICkKPj4gICAgICAgICAgbiA9ICZ2LT5hcmNoLnZnaWMu cGVuZGluZ19pcnFzW2lycV07Cj4+ICsgICAgZWxzZSBpZiAoIGlycSA+PSA4MTkyICkKPj4gKyAg ICAgICAgbiA9IGxwaV90b19wZW5kaW5nKHYsIGlycSwgdHJ1ZSk7Cj4+ICAgICAgZWxzZQo+PiAg ICAgICAgICBuID0gJnYtPmRvbWFpbi0+YXJjaC52Z2ljLnBlbmRpbmdfaXJxc1tpcnEgLSAzMl07 Cj4+ICAgICAgcmV0dXJuIG47Cj4+IEBAIC00ODAsNyArNTI4LDcgQEAgdm9pZCB2Z2ljX2NsZWFy X3BlbmRpbmdfaXJxcyhzdHJ1Y3QgdmNwdSAqdikKPj4gIHZvaWQgdmdpY192Y3B1X2luamVjdF9p cnEoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCB2aXJxKQo+PiAgewo+PiAgICAgIHVpbnQ4 X3QgcHJpb3JpdHk7Cj4+IC0gICAgc3RydWN0IHBlbmRpbmdfaXJxICppdGVyLCAqbiA9IGlycV90 b19wZW5kaW5nKHYsIHZpcnEpOwo+PiArICAgIHN0cnVjdCBwZW5kaW5nX2lycSAqaXRlciwgKm47 Cj4+ICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4gICAgICBib29sX3QgcnVubmluZzsKPj4K Pj4gQEAgLTQ4OCw2ICs1MzYsOCBAQCB2b2lkIHZnaWNfdmNwdV9pbmplY3RfaXJxKHN0cnVjdCB2 Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdmlycSkKPj4KPj4gICAgICBzcGluX2xvY2tfaXJxc2F2ZSgm di0+YXJjaC52Z2ljLmxvY2ssIGZsYWdzKTsKPj4KPj4gKyAgICBuID0gaXJxX3RvX3BlbmRpbmco diwgdmlycSk7Cj4+ICsKPj4gICAgICAvKiB2Y3B1IG9mZmxpbmUgKi8KPj4gICAgICBpZiAoIHRl c3RfYml0KF9WUEZfZG93biwgJnYtPnBhdXNlX2ZsYWdzKSApCj4+ICAgICAgewo+PiBkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0v ZG9tYWluLmgKPj4gaW5kZXggOTQ1MmZjZC4uYWU4YTlkZSAxMDA2NDQKPj4gLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLWFybS9kb21haW4uaAo+PiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFp bi5oCj4+IEBAIC0yNDksNiArMjQ5LDcgQEAgc3RydWN0IGFyY2hfdmNwdQo+PiAgICAgICAgICBw YWRkcl90IHJkaXN0X2Jhc2U7Cj4+ICAjZGVmaW5lIFZHSUNfVjNfUkRJU1RfTEFTVCAgKDEgPDwg MCkgICAgICAgIC8qIGxhc3QgdkNQVSBvZiB0aGUgcmRpc3QgKi8KPj4gICAgICAgICAgdWludDhf dCBmbGFnczsKPj4gKyAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBwZW5kaW5nX2xwaV9saXN0Owo+ PiAgICAgIH0gdmdpYzsKPj4KPj4gICAgICAvKiBUaW1lciByZWdpc3RlcnMgICovCj4+IGRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy1pdHMuaCBiL3hlbi9pbmNsdWRlL2FzbS1h cm0vZ2ljLWl0cy5oCj4+IGluZGV4IDRlOTg0MWEuLjFmODgxYzAgMTAwNjQ0Cj4+IC0tLSBhL3hl bi9pbmNsdWRlL2FzbS1hcm0vZ2ljLWl0cy5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0v Z2ljLWl0cy5oCj4+IEBAIC0xMzYsNiArMTM2LDEyIEBAIGludCBnaWN2M19scGlfYWxsb2NhdGVf aG9zdF9scGkoc3RydWN0IGhvc3RfaXRzICppdHMsCj4+ICBpbnQgZ2ljdjNfbHBpX2Ryb3BfaG9z dF9scGkoc3RydWN0IGhvc3RfaXRzICppdHMsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgZGV2aWQsIHVpbnQzMl90IGV2ZW50aWQsCj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDMyX3QgaG9zdF9scGkpOwo+PiArCj4+ICtzdGF0aWMgaW5saW5lIGlu dCBnaWN2M19scGlfZ2V0X3ByaW9yaXR5KHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IGxwaSkK Pj4gK3sKPj4gKyAgICByZXR1cm4gR0lDX1BSSV9JUlE7Cj4gICAgV2h5IGxwaSBwcmlvcml0eSBp cyBmaXhlZD8uIGNhbid0IHdlIHVzZSBkb21haW4gc2V0IGxwaSBwcmlvcml0eT8KCk1taCwgbG9v a3MgbGlrZSBhIHJlYmFzZSBhcnRpZmFjdC4gSXQgaXMgZml4ZWQgaWYgdGhlIElUUyBpc24ndApj b25maWd1cmVkLCBidXQgc2hvdWxkIGp1c3QgYmUgdGhlIHByb3RvdHlwZSBpZiBub3QuClRoZSBm aW5hbCBmaWxlIGhhcyBpdCByaWdodCwgc28gSSBndWVzcyB0aGlzIGdldHMgYW1lbmRlZCBpbiBz b21lIGxhdGVyCnBhdGNoLiBUaGFua3MgZm9yIHNwb3R0aW5nIHRoaXMuCgpDaGVlcnMsCkFuZHJl LgoKPj4gK30KPj4gKwo+PiAgI2Vsc2UKPj4KPj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBnaWN2M19p dHNfZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpCj4+IEBAIC0xNzUs NiArMTgxLDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IGdpY3YzX2xwaV9kcm9wX2hvc3RfbHBpKHN0 cnVjdCBob3N0X2l0cyAqaXRzLAo+PiAgewo+PiAgICAgIHJldHVybiAwOwo+PiAgfQo+PiArc3Rh dGljIGlubGluZSBpbnQgZ2ljdjNfbHBpX2dldF9wcmlvcml0eShzdHJ1Y3QgZG9tYWluICpkLCB1 aW50MzJfdCBscGkpCj4+ICt7Cj4+ICsgICAgcmV0dXJuIEdJQ19QUklfSVJROwo+PiArfQo+Pgo+ PiAgI2VuZGlmIC8qIENPTkZJR19IQVNfSVRTICovCj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20tYXJtL3ZnaWMuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oCj4+IGluZGV4 IDMwMGY0NjEuLjRlMjliYTYgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdp Yy5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oCj4+IEBAIC04Myw2ICs4Mywx MiBAQCBzdHJ1Y3QgcGVuZGluZ19pcnEKPj4gICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxyX3F1ZXVl Owo+PiAgfTsKPj4KPj4gK3N0cnVjdCBscGlfcGVuZGluZ19pcnEKPj4gK3sKPj4gKyAgICBzdHJ1 Y3QgbGlzdF9oZWFkIGVudHJ5Owo+PiArICAgIHN0cnVjdCBwZW5kaW5nX2lycSBwaXJxOwo+PiAr fTsKPj4gKwo+PiAgI2RlZmluZSBOUl9JTlRFUlJVUFRfUEVSX1JBTksgICAzMgo+PiAgI2RlZmlu ZSBJTlRFUlJVUFRfUkFOS19NQVNLIChOUl9JTlRFUlJVUFRfUEVSX1JBTksgLSAxKQo+Pgo+PiBA QCAtMjk2LDggKzMwMiwxMSBAQCBleHRlcm4gc3RydWN0IHZjcHUgKnZnaWNfZ2V0X3RhcmdldF92 Y3B1KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdmlycSk7Cj4+ICBleHRlcm4gdm9pZCB2 Z2ljX3ZjcHVfaW5qZWN0X2lycShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZpcnEpOwo+ PiAgZXh0ZXJuIHZvaWQgdmdpY192Y3B1X2luamVjdF9zcGkoc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgaW50IHZpcnEpOwo+PiAgZXh0ZXJuIHZvaWQgdmdpY19jbGVhcl9wZW5kaW5nX2lycXMo c3RydWN0IHZjcHUgKnYpOwo+PiArZXh0ZXJuIHZvaWQgdmdpY19pbml0X3BlbmRpbmdfaXJxKHN0 cnVjdCBwZW5kaW5nX2lycSAqcCwgdW5zaWduZWQgaW50IHZpcnEpOwo+PiAgZXh0ZXJuIHN0cnVj dCBwZW5kaW5nX2lycSAqaXJxX3RvX3BlbmRpbmcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGlu dCBpcnEpOwo+PiAgZXh0ZXJuIHN0cnVjdCBwZW5kaW5nX2lycSAqc3BpX3RvX3BlbmRpbmcoc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlycSk7Cj4+ICtleHRlcm4gc3RydWN0IHBlbmRp bmdfaXJxICpscGlfdG9fcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGlycSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYWxsb2Nh dGUpOwo+PiAgZXh0ZXJuIHN0cnVjdCB2Z2ljX2lycV9yYW5rICp2Z2ljX3Jhbmtfb2Zmc2V0KHN0 cnVjdCB2Y3B1ICp2LCBpbnQgYiwgaW50IG4sIGludCBzKTsKPj4gIGV4dGVybiBzdHJ1Y3Qgdmdp Y19pcnFfcmFuayAqdmdpY19yYW5rX2lycShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGly cSk7Cj4+ICBleHRlcm4gaW50IHZnaWNfZW11bGF0ZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cywgdW5pb24gaHNyIGhzcik7Cj4+IC0tCj4+IDIuOS4wCj4+Cj4+Cj4+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IFhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKPj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKPj4gaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==