From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [PATCH v2 09/27] ARM: GICv3: introduce separate pending_irq structs for LPIs Date: Fri, 24 Mar 2017 15:50:06 +0000 Message-ID: <34c0e237-7168-ba86-b046-8a91c4c3292e@arm.com> References: <20170316112030.20419-1-andre.przywara@arm.com> <20170316112030.20419-10-andre.przywara@arm.com> <4d1ac732-bee6-18f7-2ab9-277883fe726b@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1crRRi-0003BN-JJ for xen-devel@lists.xenproject.org; Fri, 24 Mar 2017 15:48:10 +0000 In-Reply-To: <4d1ac732-bee6-18f7-2ab9-277883fe726b@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAyNC8wMy8xNyAxMTo0MCwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IEhpIEFuZHJlCj4g Cj4gT24gMDMvMTYvMjAxNyAxMToyMCBBTSwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6Cj4+IGRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMuYwo+PiBpbmRl eCAzNjRkNWYwLi5lNWNmYTU0IDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy5jCj4+ ICsrKyBiL3hlbi9hcmNoL2FybS92Z2ljLmMKPj4gQEAgLTMwLDYgKzMwLDggQEAKPj4KPj4gICNp bmNsdWRlIDxhc20vbW1pby5oPgo+PiAgI2luY2x1ZGUgPGFzbS9naWMuaD4KPj4gKyNpbmNsdWRl IDxhc20vZ2ljX3YzX2RlZnMuaD4KPj4gKyNpbmNsdWRlIDxhc20vZ2ljX3YzX2l0cy5oPgo+IAo+ IEkgcmVhbGx5IGRvbid0IHdhbnQgdG8gc2VlIGdpY192M18qIGhlYWRlcnMgaW5jbHVkZWQgaW4g Y29tbW9uIGNvZGUuIFdoeQo+IGRvIHlvdSBuZWVkIHRoZW0/Cj4gCj4+ICAjaW5jbHVkZSA8YXNt L3ZnaWMuaD4KPj4KPj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnZnaWNf Z2V0X3Jhbmsoc3RydWN0IHZjcHUgKnYsIGludAo+PiByYW5rKQo+PiBAQCAtNjEsNyArNjMsNyBA QCBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19yYW5rX2lycShzdHJ1Y3QgdmNwdSAqdiwKPj4g dW5zaWduZWQgaW50IGlycSkKPj4gICAgICByZXR1cm4gdmdpY19nZXRfcmFuayh2LCByYW5rKTsK Pj4gIH0KPj4KPj4gLXN0YXRpYyB2b2lkIHZnaWNfaW5pdF9wZW5kaW5nX2lycShzdHJ1Y3QgcGVu ZGluZ19pcnEgKnAsIHVuc2lnbmVkIGludAo+PiB2aXJxKQo+PiArdm9pZCB2Z2ljX2luaXRfcGVu ZGluZ19pcnEoc3RydWN0IHBlbmRpbmdfaXJxICpwLCB1bnNpZ25lZCBpbnQgdmlycSkKPj4gIHsK Pj4gICAgICBJTklUX0xJU1RfSEVBRCgmcC0+aW5mbGlnaHQpOwo+PiAgICAgIElOSVRfTElTVF9I RUFEKCZwLT5scl9xdWV1ZSk7Cj4+IEBAIC0yNDQsMTAgKzI0NiwxNCBAQCBzdHJ1Y3QgdmNwdSAq dmdpY19nZXRfdGFyZ2V0X3ZjcHUoc3RydWN0IHZjcHUKPj4gKnYsIHVuc2lnbmVkIGludCB2aXJx KQo+Pgo+PiAgc3RhdGljIGludCB2Z2ljX2dldF92aXJxX3ByaW9yaXR5KHN0cnVjdCB2Y3B1ICp2 LCB1bnNpZ25lZCBpbnQgdmlycSkKPj4gIHsKPj4gLSAgICBzdHJ1Y3QgdmdpY19pcnFfcmFuayAq cmFuayA9IHZnaWNfcmFua19pcnEodiwgdmlycSk7Cj4+ICsgICAgc3RydWN0IHZnaWNfaXJxX3Jh bmsgKnJhbms7Cj4+ICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4gICAgICBpbnQgcHJpb3Jp dHk7Cj4+Cj4+ICsgICAgaWYgKCBpc19scGkodmlycSkgKQo+PiArICAgICAgICByZXR1cm4gdmdp Y19scGlfZ2V0X3ByaW9yaXR5KHYtPmRvbWFpbiwgdmlycSk7Cj4gCj4gVGhpcyB3b3VsZCBiZW5l Zml0cyBzb21lIGNvbW1lbnRzIHRvIGV4cGxhaW4gd2h5IExQSSBwZW5kaW5nIGhhbmRsaW5nIGlz Cj4gYSBkaWZmZXJlbnQgcGF0aC4KPiAKPj4gKwo+PiArICAgIHJhbmsgPSB2Z2ljX3JhbmtfaXJx KHYsIHZpcnEpOwo+PiAgICAgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsKPj4gICAg ICBwcmlvcml0eSA9IHJhbmstPnByaW9yaXR5W3ZpcnEgJiBJTlRFUlJVUFRfUkFOS19NQVNLXTsK Pj4gICAgICB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsKPj4gQEAgLTQ0NiwxMyAr NDUyLDYzIEBAIGJvb2wgdmdpY190b19zZ2koc3RydWN0IHZjcHUgKnYsIHJlZ2lzdGVyX3QKPj4g c2dpciwgZW51bSBnaWNfc2dpX21vZGUgaXJxbW9kZSwKPj4gICAgICByZXR1cm4gdHJ1ZTsKPj4g IH0KPj4KPj4gKy8qCj4+ICsgKiBIb2xkaW5nIHN0cnVjdCBwZW5kaW5nX2lycSdzIGZvciBlYWNo IHBvc3NpYmxlIHZpcnR1YWwgTFBJIGluIGVhY2gKPj4gZG9tYWluCj4+ICsgKiByZXF1aXJlcyB0 b28gbXVjaCBYZW4gbWVtb3J5LCBhbHNvIGEgbWFsaWNpb3VzIGd1ZXN0IGNvdWxkCj4+IHBvdGVu dGlhbGx5Cj4+ICsgKiBzcGFtIFhlbiB3aXRoIExQSSBtYXAgcmVxdWVzdHMuIFdlIGNhbm5vdCBj b3ZlciB0aG9zZSB3aXRoIChndWVzdAo+PiBhbGxvY2F0ZWQpCj4+ICsgKiBJVFMgbWVtb3J5LCBz byB3ZSB1c2UgYSBkeW5hbWljIHNjaGVtZSBvZiBhbGxvY2F0aW5nIHN0cnVjdAo+PiBwZW5kaW5n X2lycSdzCj4+ICsgKiBvbiBkZW1hbmQuCj4+ICsgKi8KPiAKPiBJIGFtIGFmcmFpZCB0aGlzIHdp bGwgbm90IHByZXZlbnQgYSBndWVzdCB0byB1c2UgdG9vIG11Y2ggWGVuIG1lbW9yeS4KPiBMZXQn cyBpbWFnaW5lIHRoZSBndWVzdCBpcyBtYXBwaW5nIHRob3VzYW5kcyBvZiBMUElzIGJ1dCBkZWNp ZGVzIHRvCj4gbmV2ZXIgaGFuZGxlIHRoZW0gb3IgaXMgc2xvdy4gWW91IHdvdWxkIGFsbG9jYXRl IHBlbmRpbmdfaXJxIGZvciBlYWNoCj4gTFBJLCBhbmQgbmV2ZXIgcmVsZWFzZSB0aGUgbWVtb3J5 LgoKU28gd2hhdCB3b3VsZCBiZSB0aGUgYWx0ZXJuYXRpdmUgaGVyZT8gSW4gdGhlIGN1cnJlbnQg R0lDdjIvMyBzY2hlbWUgYQpwZW5kaW5nX2lycSBmb3IgZWFjaCAoU1BJKSBpbnRlcnJ1cHQgaXMg YWxsb2NhdGVkIHVwIGZyb250LiBUaGlzCmFwcHJvYWNoIGhlcmUgdHJpZXMganVzdCB0byBiZSBh IGJpdCBzbWFydGVyIGZvciBMUElzLCBzaW5jZSB0aGUKZXhwZWN0YXRpb24gaXMgdGhhdCB3ZSBi eSBmYXIgZG9uJ3QgbmVlZCBzbyBtYW55LiBJbiB0aGUgd29yc3QgY2FzZSB0aGUKbWVtb3J5IGFs bG9jYXRpb24gd291bGQgY29udmVyZ2UgdG8gdGhlIHVwcGVyIGxpbWl0IChudW1iZXIgb2YgbWFw cGVkCkxQSXMpLCB3aGljaCB3b3VsZCBwcm9iYWJseSBiZSB1c2VkIG90aGVyd2lzZSBmb3IgdGhl IHN0YXRpYyBhbGxvY2F0aW9uCnNjaGVtZS4gV2hpY2ggbWVhbnMgd2Ugd291bGQgbmV2ZXIgYmUg d29yc2UuCldoYXQgYWN0dWFsbHkgaXMgbWlzc2luZyBpcyB0aGUgZnJlZWluZyB0aGUgbWVtb3J5 IHVwb24gZG9tYWluCmRlc3RydWN0aW9uLCB3aGljaCBjYW4ndCBiZSB0ZXN0ZWQgZm9yIERvbTAu Cgo+IElmIHdlIHVzZSBkeW5hbWljIGFsbG9jYXRpb24sIHdlIG5lZWQgYSB3YXkgdG8gbGltaXQg dGhlIG51bWJlciBvZiBMUElzCj4gcmVjZWl2ZWQgYnkgYSBndWVzdCB0byBhdm9pZCBtZW1vcnkg ZXhoYXVzdGlvbi4gVGhlIG9ubHkgaWRlYSBJIGhhdmUgaXMKPiBhbiBhcnRpZmljaWFsIGxpbWl0 LCBidXQgSSBkb24ndCB0aGluayBpdCBpcyBnb29kLiBBbnkgb3RoZXIgaWRlYXM/CgpJIHRoaW5r IGlmIHdlIGFyZSBjb25jZXJuZWQgYWJvdXQgdGhpcywgd2Ugc2hvdWxkbid0IGFsbG93ICpEb21V cyogdG8KYWxsb2NhdGUgdG9vIG1hbnkgTFBJcywgd2hpY2ggYXJlIGJvdW5kZWQgYnkgdGhlIERl dmljZUlEL0V2ZW50SUQKY29tYmluYXRpb25zLiBUaGlzIHdpbGwgYmUgdW5kZXIgZnVsbCBjb250 cm9sIGJ5IERvbTAsIHdoaWNoIHdpbGwKY29tbXVuaWNhdGUgdGhlIG51bWJlciBvZiBNU0lzIChl dmVudHMpIGZvciBlYWNoIHBhc3N0aHJvdWdoLWVkIGRldmljZSwKc28gd2UgY2FuIGVhc2lseSBp bXBvc2UgYSBwb2xpY3kgbGltaXQgdXBvbiBjcmVhdGlvbi4KCkFuZCBqdXN0IHRvIGJlIHN1cmU6 IHdlIGFyZSBhdCBtb3N0IGFsbG9jYXRpbmcgb25lIHN0cnVjdHVyZSBwZXIgZXZlbnQuCkFuIE1T SSBpbnRlcnJ1cHQgc3Rvcm0gd291bGQgc3RpbGwgY29udmVyZ2UgaW50byBvbmUgcGVuZGluZyBM UEkKKHN0cnVjdCksIHNvIHdvdWxkbid0IHRyaWdnZXIgYW55IGZ1cnRoZXIgYWxsb2NhdGlvbnMu ClJlbWFwcGluZyBMUElzIHdvbid0IGluY3JlYXNlIHRoYXQgYXMgd2VsbCwgc2luY2Ugd2Ugb25s eSBjYW4gYXNzaWduIG9uZQpMUEkgdG8gYSBEZXZJRC9FdklEIHBhaXIgYXQgYW55IGdpdmVuIHBv aW50IGluIHRpbWUuIFJlbWFwcGluZyByZXF1aXJlcwp0aGUgcGVuZGluZyBiaXQgdG8gYmUgY2xl YXJlZC4gQW5kIHRoZSBzdHJ1Y3R1cmVzIGFyZSBub3QgaW5kZXhlZCBieSB0aGUKTFBJIG51bWJl ciwgYnV0IGp1c3QgdGFrZSBhIGZyZWUgc2xvdC4KCkZvciBEb20wIEkgZG9uJ3Qgc2VlIGFueSBn b29kIHdheXMgb2YgbGltaXRpbmcgdGhlIG51bWJlciBvZiBMUElzLCBidXQKd2Ugc2hvdWxkbid0 IG5lZWQgYW55LgoKPj4gK3N0cnVjdCBwZW5kaW5nX2lycSAqbHBpX3RvX3BlbmRpbmcoc3RydWN0 IHZjcHUgKnYsIHVuc2lnbmVkIGludCBscGksCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgYWxsb2NhdGUpCj4+ICt7Cj4+ICsgICAgc3RydWN0IGxwaV9wZW5kaW5n X2lycSAqbHBpX2lycSwgKmVtcHR5ID0gTlVMTDsKPj4gKwo+PiArICAgIHNwaW5fbG9jaygmdi0+ YXJjaC52Z2ljLnBlbmRpbmdfbHBpX2xpc3RfbG9jayk7Cj4+ICsgICAgbGlzdF9mb3JfZWFjaF9l bnRyeShscGlfaXJxLCAmdi0+YXJjaC52Z2ljLnBlbmRpbmdfbHBpX2xpc3QsIGVudHJ5KQo+PiAr ICAgIHsKPj4gKyAgICAgICAgaWYgKCBscGlfaXJxLT5waXJxLmlycSA9PSBscGkgKQo+PiArICAg ICAgICB7Cj4+ICsgICAgICAgICAgICBzcGluX3VubG9jaygmdi0+YXJjaC52Z2ljLnBlbmRpbmdf bHBpX2xpc3RfbG9jayk7Cj4+ICsgICAgICAgICAgICByZXR1cm4gJmxwaV9pcnEtPnBpcnE7Cj4+ ICsgICAgICAgIH0KPj4gKwo+PiArICAgICAgICBpZiAoIGxwaV9pcnEtPnBpcnEuaXJxID09IDAg JiYgIWVtcHR5ICkKPj4gKyAgICAgICAgICAgIGVtcHR5ID0gbHBpX2lycTsKPj4gKyAgICB9Cj4+ ICsKPj4gKyAgICBpZiAoICFhbGxvY2F0ZSApCj4+ICsgICAgewo+PiArICAgICAgICBzcGluX3Vu bG9jaygmdi0+YXJjaC52Z2ljLnBlbmRpbmdfbHBpX2xpc3RfbG9jayk7Cj4+ICsgICAgICAgIHJl dHVybiBOVUxMOwo+PiArICAgIH0KPj4gKwo+PiArICAgIGlmICggIWVtcHR5ICkKPj4gKyAgICB7 Cj4+ICsgICAgICAgIGVtcHR5ID0geHphbGxvYyhzdHJ1Y3QgbHBpX3BlbmRpbmdfaXJxKTsKPiAK PiB4emFsbG9jIHdpbGwgcmV0dXJuIE5VTEwgaWYgbWVtb3J5IGlzIGV4aGF1c3RlZC4gVGhlcmUg aXMgYSBnZW5lcmFsIGxhY2sKPiBvZiBlcnJvciBjaGVja2luZyB3aXRoaW4gdGhpcyBzZXJpZXMu IEFueSBtaXNzaW5nIGVycm9yIGNvdWxkIGJlIGEKPiBwb3RlbnRpYWwgdGFyZ2V0IGZyb20gYSBn dWVzdCwgbGVhZGluZyB0byBzZWN1cml0eSBpc3N1ZS4gU3RlZmFubyBhbmQgSQo+IGFscmVhZHkg c3BvdCBzb21lLCBpdCBkb2VzIG5vdCBtZWFuIHdlIGZvdW5kIGFsbC4gU28gQmVmb3JlIHNlbmRp bmcgdGhlCj4gbmV4dCB2ZXJzaW9uLCBwbGVhc2UgZ28gdGhyb3VnaCB0aGUgc2VyaWVzIGFuZCB2 ZXJpZnkgKmV2ZXJ5KiByZXR1cm4uCj4gCj4gQWxzbywgSSBjYW4ndCBmaW5kIHRoZSBjb2RlIHdo aWNoIHJlbGVhc2UgTFBJcyBuZWl0aGVyIGluIHRoaXMgcGF0Y2ggbm9yCj4gaW4gdGhpcyBzZXJp ZXMuIEEgZ2VuZXJhbCBydWxlIGlzIHRvbyBoYXZlIGFsbG9jYXRpb24gYW5kIGZyZWUgd2l0aGlu Cj4gdGhlIHNhbWUgcGF0Y2guIEl0IGlzIG11Y2ggZWFzaWVyIHRvIHNwb3QgbWlzc2luZyBmcmVl LgoKVGhlcmUgaXMgbm8gc3VjaCBjb2RlLCBvbiBwdXJwb3NlLiBXZSBvbmx5IGdyb3cgdGhlIG51 bWJlciwgYnV0IG5ldmVyCnNocmluayBpdCAodG8gd2hhdD8sIHdoZXJlIHRvIHN0b3A/LCB3aGF0 IGlmIHdlIG5lZWQgbW9yZSBhZ2Fpbj8pLiBBcwpzYWlkIGFib3ZlLCBpbiB0aGUgd29yc3QgY2Fz ZSB0aGlzIGVuZHMgdXAgYXQgc29tZXRoaW5nIHdoZXJlIGEgc3RhdGljCmFsbG9jYXRpb24gd291 bGQgaGF2ZSBzdGFydGVkIHdpdGggZnJvbSB0aGUgYmVnaW5uaW5nLgoKQW5kIGFzIG1lbnRpb25l ZCwgSSBvbmx5IHNraXBwZWQgdGhlICJmcmVlIHRoZSB3aG9sZSBsaXN0IHVwb24gZG9tYWluCmRl c3RydWN0aW9uIiBwYXJ0LgoKQ2hlZXJzLApBbmRyZS4KCj4+ICsgICAgICAgIHZnaWNfaW5pdF9w ZW5kaW5nX2lycSgmZW1wdHktPnBpcnEsIGxwaSk7Cj4+ICsgICAgICAgIGxpc3RfYWRkX3RhaWwo JmVtcHR5LT5lbnRyeSwgJnYtPmFyY2gudmdpYy5wZW5kaW5nX2xwaV9saXN0KTsKPj4gKyAgICB9 IGVsc2UKPj4gKyAgICB7Cj4+ICsgICAgICAgIGVtcHR5LT5waXJxLnN0YXR1cyA9IDA7Cj4+ICsg ICAgICAgIGVtcHR5LT5waXJxLmlycSA9IGxwaTsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBzcGlu X3VubG9jaygmdi0+YXJjaC52Z2ljLnBlbmRpbmdfbHBpX2xpc3RfbG9jayk7Cj4+ICsKPj4gKyAg ICByZXR1cm4gJmVtcHR5LT5waXJxOwo+PiArfQo+PiArCj4+ICBzdHJ1Y3QgcGVuZGluZ19pcnEg KmlycV90b19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgaXJxKQo+PiAgewo+ PiAgICAgIHN0cnVjdCBwZW5kaW5nX2lycSAqbjsKPj4gKwo+IAo+IFNwdXJpb3VzIGNoYW5nZS4K PiAKPj4gICAgICAvKiBQZW5kaW5nIGlycXMgYWxsb2NhdGlvbiBzdHJhdGVneTogdGhlIGZpcnN0 IHZnaWMubnJfc3BpcyBpcnFzCj4+ICAgICAgICogYXJlIHVzZWQgZm9yIFNQSXM7IHRoZSByZXN0 cyBhcmUgdXNlZCBmb3IgcGVyIGNwdSBpcnFzICovCj4+ICAgICAgaWYgKCBpcnEgPCAzMiApCj4+ ICAgICAgICAgIG4gPSAmdi0+YXJjaC52Z2ljLnBlbmRpbmdfaXJxc1tpcnFdOwo+PiArICAgIGVs c2UgaWYgKCBpc19scGkoaXJxKSApCj4+ICsgICAgICAgIG4gPSBscGlfdG9fcGVuZGluZyh2LCBp cnEsIHRydWUpOwo+PiAgICAgIGVsc2UKPj4gICAgICAgICAgbiA9ICZ2LT5kb21haW4tPmFyY2gu dmdpYy5wZW5kaW5nX2lycXNbaXJxIC0gMzJdOwo+PiAgICAgIHJldHVybiBuOwo+PiBAQCAtNDgw LDcgKzUzNiw3IEBAIHZvaWQgdmdpY19jbGVhcl9wZW5kaW5nX2lycXMoc3RydWN0IHZjcHUgKnYp Cj4+ICB2b2lkIHZnaWNfdmNwdV9pbmplY3RfaXJxKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBp bnQgdmlycSkKPj4gIHsKPj4gICAgICB1aW50OF90IHByaW9yaXR5Owo+PiAtICAgIHN0cnVjdCBw ZW5kaW5nX2lycSAqaXRlciwgKm4gPSBpcnFfdG9fcGVuZGluZyh2LCB2aXJxKTsKPj4gKyAgICBz dHJ1Y3QgcGVuZGluZ19pcnEgKml0ZXIsICpuOwo+PiAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7 Cj4+ICAgICAgYm9vbCBydW5uaW5nOwo+Pgo+PiBAQCAtNDg4LDYgKzU0NCw4IEBAIHZvaWQgdmdp Y192Y3B1X2luamVjdF9pcnEoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkCj4+IGludCB2aXJxKQo+ Pgo+PiAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZ2LT5hcmNoLnZnaWMubG9jaywgZmxhZ3MpOwo+ Pgo+PiArICAgIG4gPSBpcnFfdG9fcGVuZGluZyh2LCB2aXJxKTsKPiAKPiBXaHkgZGlkIHlvdSBt b3ZlIHRoaXMgY29kZT8KPiAKPj4gKwo+PiAgICAgIC8qIHZjcHUgb2ZmbGluZSAqLwo+PiAgICAg IGlmICggdGVzdF9iaXQoX1ZQRl9kb3duLCAmdi0+cGF1c2VfZmxhZ3MpICkKPj4gICAgICB7Cj4+ IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oIGIveGVuL2luY2x1ZGUv YXNtLWFybS9kb21haW4uaAo+PiBpbmRleCAwMGI5YzFhLi5mNDRhODRiIDEwMDY0NAo+PiAtLS0g YS94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1h cm0vZG9tYWluLmgKPj4gQEAgLTI1Nyw2ICsyNTcsOCBAQCBzdHJ1Y3QgYXJjaF92Y3B1Cj4+ICAg ICAgICAgIHBhZGRyX3QgcmRpc3RfYmFzZTsKPj4gICNkZWZpbmUgVkdJQ19WM19SRElTVF9MQVNU ICAoMSA8PCAwKSAgICAgICAgLyogbGFzdCB2Q1BVIG9mIHRoZSByZGlzdCAqLwo+PiAgICAgICAg ICB1aW50OF90IGZsYWdzOwo+PiArICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIHBlbmRpbmdfbHBp X2xpc3Q7Cj4+ICsgICAgICAgIHNwaW5sb2NrX3QgcGVuZGluZ19scGlfbGlzdF9sb2NrOyAgIC8q IHByb3RlY3RzIHRoZQo+PiBwZW5kaW5nX2xwaV9saXN0ICovCj4gCj4gCj4gSXQgd291bGQgYmUg YmV0dGVyIHRvIGhhdmUgdGhpcyBzdHJ1Y3R1cmUgcGVyLWRvbWFpbiBsaW1pdGluZyB0aGUgYW1v dW50Cj4gb2YgbWVtb3J5IGFsbG9jYXRpbmcuIEFsc28sIFN0ZWZhbm8gd2FzIHN1Z2dlc3Rpbmcg dG8gdXNlIGEgbW9yZQo+IGVmZmljaWVudCBkYXRhIHN0cnVjdHVyZSwgc3VjaCBhcyBhbiBoYXNo dGFibGUgb3IgYSB0cmVlLgo+IAo+IEkgd291bGQgYmUgb2sgdG8gZm9jdXMgb24gdGhlIGNvcnJl Y3RuZXNzIHNvIGZhciwgYnV0IHRoaXMgd291bGQgbmVlZCB0bwo+IGJlIGFkZHJlc3MgYmVmb3Jl IElUUyBpcyBtYXJrZWQgYXMgc3RhYmxlLgo+IAo+PiAgZXh0ZXJuIHN0cnVjdCB2Z2ljX2lycV9y YW5rICp2Z2ljX3Jhbmtfb2Zmc2V0KHN0cnVjdCB2Y3B1ICp2LCBpbnQgYiwKPj4gaW50IG4sIGlu dCBzKTsKPj4gIGV4dGVybiBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19yYW5rX2lycShzdHJ1 Y3QgdmNwdSAqdiwgdW5zaWduZWQKPj4gaW50IGlycSk7Cj4+ICBleHRlcm4gYm9vbCB2Z2ljX2Vt dWxhdGUoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVuaW9uIGhzciBoc3IpOwo+PiAgZXh0 ZXJuIHZvaWQgdmdpY19kaXNhYmxlX2lycXMoc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IHIsIGlu dCBuKTsKPj4gIGV4dGVybiB2b2lkIHZnaWNfZW5hYmxlX2lycXMoc3RydWN0IHZjcHUgKnYsIHVp bnQzMl90IHIsIGludCBuKTsKPj4gKy8qIHBsYWNlaG9sZGVyIGZ1bmN0aW9uIHVudGlsIHRoZSBw cm9wZXJ0eSB0YWJsZSBnZXRzIGludHJvZHVjZWQgKi8KPj4gK3N0YXRpYyBpbmxpbmUgaW50IHZn aWNfbHBpX2dldF9wcmlvcml0eShzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCB2bHBpKQo+PiAr ewo+PiArICAgIHJldHVybiAweGE7Cj4+ICt9Cj4gCj4gVG8gYmUgZmFpciwgeW91IGNhbiBhdm9p ZCB0aGlzIGZ1bmN0aW9uIGJ5IHJlLW9yZGVyaW5nIHRoZSBwYXRjaGVzLiBBcwo+IHN1Z2dlc3Rl ZCBlYXJsaWVyLCBJIHdvdWxkIGludHJvZHVjZSBzb21lIGJpdHMgb2YgdGhlIHZJVFMgYmVmb3Jl LiBUaGlzCj4gd291bGQgYWxzbyBtYWtlIHRoZSBzZXJpZXMgZWFzaWVyIHRvIHJlYWQuCj4gCj4g QWxzbywgbG9va2luZyBob3cgaXQgaGFzIGJlZW4gaW1wbGVtZW50ZWQgbGF0ZXIuIEkgd291bGQg cHJlZmVyIHRvIHNlZSBhCj4gbmV3IGNhbGxiYWNrIGdldF9wcmlvcml0eSBpbiB2Z2ljX29wcyB3 aGljaCB3aWxsIHJldHVybiB0aGUgY29ycmVjdAo+IHByaW9yaXR5Lgo+IAo+IEkgYWdyZWUgdGhp cyB3b3VsZCBpbnRyb2R1Y2UgYSBiaXQgbW9yZSBvZiBkdXBsaWNhdGVkIGNvZGUuIEJ1dCBpdCB3 b3VsZAo+IGxpbWl0IHRoZSB1c2Ugb2YgaXNfbHBpIGluIHRoZSBjb21tb24gY29kZS4KPiAKPiBD aGVlcnMsCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK