From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [PATCH v2 09/45] ARM: GIC: Allow tweaking the active and pending state of an IRQ Date: Fri, 16 Mar 2018 16:05:15 +0000 Message-ID: <5cce550e-e6ce-a237-f83b-d264930c877f@linaro.org> References: <20180315203050.19791-1-andre.przywara@linaro.org> <20180315203050.19791-10-andre.przywara@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewrrI-00020t-60 for xen-devel@lists.xenproject.org; Fri, 16 Mar 2018 16:05:32 +0000 Received: by mail-wm0-x242.google.com with SMTP id 5so4005128wmh.0 for ; Fri, 16 Mar 2018 09:05:30 -0700 (PDT) In-Reply-To: <20180315203050.19791-10-andre.przywara@linaro.org> Content-Language: en-GB List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Stefano Stabellini , Julien Grall Cc: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAxNS8wMy8xOCAyMDozMCwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6Cj4gV2hlbiBwbGF5 aW5nIGFyb3VuZCB3aXRoIGhhcmR3YXJlIG1hcHBlZCwgbGV2ZWwgdHJpZ2dlcmVkIHZpcnR1YWwg SVJRcywKPiB0aGVyZSBpcyB0aGUgbmVlZCB0byBleHBsaWNpdGx5IHNldCB0aGUgYWN0aXZlIG9y IHBlbmRpbmcgc3RhdGUgb2YgYW4KPiBpbnRlcnJ1cHQgYXQgc29tZSBwb2ludC4KPiBUbyBwcmVw YXJlIHRoZSBHSUMgZm9yIHRoYXQsIHdlIGludHJvZHVjZSBhIHNldF9hY3RpdmVfc3RhdGUoKSBh bmQgYQo+IHNldF9wZW5kaW5nX3N0YXRlKCkgZnVuY3Rpb24gdG8gbGV0IHRoZSBWR0lDIG1hbmlw dWxhdGUgdGhlIHN0YXRlIG9mCj4gYW4gYXNzb2NpYXRlZCBoYXJkd2FyZSBJUlEuCj4gVGhpcyB0 YWtlcyBjYXJlIG9mIHByb3Blcmx5IHNldHRpbmcgdGhlIF9JUlFfSU5QUk9HUkVTUyBiaXQuCgph ZnRlciBoYXZpbmcgZGlzY3Vzc2VkIHRoaXMgd2l0aCBKdWxpZW4gb2ZmLWxpbmUsIHdlIGNhbiBz aW1wbGlmeSB0aGUKX0lSUV9JTlBST0dSRVNTIHNldHRpbmcuIFNlZSBiZWxvdzoKCj4gRm9yIHRo aXMgaXQgYWRkcyBnaWN2Mi8zX3BlZWtfaXJxKCkgaGVscGVyIGZ1bmN0aW9ucywgdG8gcmVhZCBh IGJpdCBpbiBhCj4gYml0bWFwIHNwcmVhZCBvdmVyIHNldmVyYWwgTU1JTyByZWdpc3RlcnMuCj4g Cj4gU2lnbmVkLW9mZi1ieTogQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGxpbmFyby5v cmc+Cj4gLS0tCj4gQ2hhbmdlbG9nIHYxIC4uLiB2MjoKPiAtIHByb3Blcmx5IHNldCBfSVJRX0lO UFJPR1JFU1MgYml0Cj4gLSBhZGQgZ2ljdlsyM11fcGVla19pcnEoKSAocHVsbGVkIGluIGZyb20g bGF0ZXIgcGF0Y2gpCj4gLSBtb3ZlIHdyYXBwZXJzIGZ1bmN0aW9ucyBpbnRvIGdpYy5oCj4gCj4g IHhlbi9hcmNoL2FybS9naWMtdjIuYyAgICAgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gIHhlbi9hcmNoL2FybS9naWMtdjMuYyAgICAgfCA1MiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICB4ZW4vaW5jbHVk ZS9hc20tYXJtL2dpYy5oIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKwo+ICAzIGZpbGVzIGNo YW5nZWQsIDEyNCBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9n aWMtdjIuYyBiL3hlbi9hcmNoL2FybS9naWMtdjIuYwo+IGluZGV4IDdkZmU2ZmM2OGQuLmM2ZmNi ZjU5ZDAgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL2dpYy12Mi5jCj4gKysrIGIveGVuL2Fy Y2gvYXJtL2dpYy12Mi5jCj4gQEAgLTI0Myw2ICsyNDMsNTIgQEAgc3RhdGljIHZvaWQgZ2ljdjJf cG9rZV9pcnEoc3RydWN0IGlycV9kZXNjICppcnFkLCB1aW50MzJfdCBvZmZzZXQpCj4gICAgICB3 cml0ZWxfZ2ljZCgxVSA8PCAoaXJxZC0+aXJxICUgMzIpLCBvZmZzZXQgKyAoaXJxZC0+aXJxIC8g MzIpICogNCk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBib29sIGdpY3YyX3BlZWtfaXJxKHN0cnVjdCBp cnFfZGVzYyAqaXJxZCwgdWludDMyX3Qgb2Zmc2V0KQo+ICt7Cj4gKyAgICB1aW50MzJfdCByZWc7 Cj4gKwo+ICsgICAgcmVnID0gcmVhZGxfZ2ljZChvZmZzZXQgKyAoaXJxZC0+aXJxIC8gMzIpICog NCkgJiAoMVUgPDwgKGlycWQtPmlycSAlIDMyKSk7Cj4gKwo+ICsgICAgcmV0dXJuIHJlZzsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgZ2ljdjJfc2V0X2FjdGl2ZV9zdGF0ZShzdHJ1Y3QgaXJxX2Rl c2MgKmlycWQsIGJvb2wgYWN0aXZlKQo+ICt7Cj4gKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQo JmlycWQtPmxvY2spKTsKPiArCj4gKyAgICBpZiAoIGFjdGl2ZSApCj4gKyAgICB7Cj4gKyAgICAg ICAgaWYgKCB0ZXN0X2JpdChfSVJRX0dVRVNULCAmaXJxZC0+c3RhdHVzKSApCj4gKyAgICAgICAg ICAgIHNldF9iaXQoX0lSUV9JTlBST0dSRVNTLCAmaXJxZC0+c3RhdHVzKTsKPiArICAgICAgICBn aWN2Ml9wb2tlX2lycShpcnFkLCBHSUNEX0lTQUNUSVZFUik7Cj4gKyAgICB9Cj4gKyAgICBlbHNl Cj4gKyAgICB7Cj4gKyAgICAgICAgZ2ljdjJfcG9rZV9pcnEoaXJxZCwgR0lDRF9JQ0FDVElWRVIp Owo+ICsgICAgICAgIGlmICggIWdpY3YyX3BlZWtfaXJxKGlycWQsIEdJQ0RfSVNQRU5EUikgJiYK PiArICAgICAgICAgICAgIHRlc3RfYml0KF9JUlFfR1VFU1QsICZpcnFkLT5zdGF0dXMpICkKPiAr ICAgICAgICAgICAgY2xlYXJfYml0KF9JUlFfSU5QUk9HUkVTUywgJmlycWQtPnN0YXR1cyk7CgpU aGUgY2hlY2sgZm9yIHRoZSBwZW5kaW5nIGJpdCBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5OgotIElm IHRoZSBpbnRlcnJ1cHQgaXMgKHN0aWxsKSBwZW5kaW5nLCBjbGVhcmluZyB0aGUgYWN0aXZlIGJp dCBzaG91bGQKdHJpZ2dlciBpdCBhZ2Fpbi4gVGhlIF9JUlFfSU5QUk9HUkVTUyBiaXQgd2lsbCBi ZSBzZXQgaW4gdHVybi4KLSBJZiB0aGUgaW50ZXJydXB0IGlzIG5vdCBwZW5kaW5nLCB3ZSBuZWVk IHRvIGNsZWFyIHRoZSBiaXQgYW55d2F5LgoKU28gcmVhZGluZyB0aGUgcGVuZGluZyBzdGF0ZSBp cyBub3QgbmVjZXNzYXJ5LCB3ZSBjYW4gYWx3YXlzCnVuY29uZGl0aW9uYWxseSBjbGVhciB0aGUg X0lSUV9JTlBST0dSRVNTIGJpdCwgaWRlYWxseSBiZWZvcmUgd3JpdGluZyB0bwpJQ0FDVElWRVIu Cgo+ICsgICAgfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBnaWN2Ml9zZXRfcGVuZGluZ19zdGF0 ZShzdHJ1Y3QgaXJxX2Rlc2MgKmlycWQsIGJvb2wgcGVuZGluZykKPiArewo+ICsgICAgQVNTRVJU KHNwaW5faXNfbG9ja2VkKCZpcnFkLT5sb2NrKSk7Cj4gKwo+ICsgICAgaWYgKCBwZW5kaW5nICkK PiArICAgIHsKPiArICAgICAgICAvKiBUaGUgSU5QUk9HUkVTUyBiaXQgd2lsbCBiZSBzZXQgd2hl biB0aGUgaW50ZXJydXB0IGZpcmVzLiAqLwo+ICsgICAgICAgIGdpY3YyX3Bva2VfaXJxKGlycWQs IEdJQ0RfSVNQRU5EUik7Cj4gKyAgICB9Cj4gKyAgICBlbHNlCj4gKyAgICB7Cj4gKyAgICAgICAg Z2ljdjJfcG9rZV9pcnEoaXJxZCwgR0lDRF9JQ1BFTkRSKTsKPiArICAgICAgICBpZiAoICFnaWN2 Ml9wZWVrX2lycShpcnFkLCBHSUNEX0lTQUNUSVZFUikgJiYKPiArICAgICAgICAgICAgIHRlc3Rf Yml0KF9JUlFfR1VFU1QsICZpcnFkLT5zdGF0dXMpICkKPiArICAgICAgICAgICAgY2xlYXJfYml0 KF9JUlFfSU5QUk9HUkVTUywgJmlycWQtPnN0YXR1cyk7CgpXZSBzaG91bGQgbm90IG5lZWQgdG8g dG91Y2ggdGhlIF9JUlFfSU5QUk9HUkVTUyBiaXQgaGVyZS4gVGhhdCBiaXQKcmVhbGx5IHNoYWRv d3MgdGhlICphY3RpdmUqIGJpdCwgc28gY2hhbmdpbmcgdGhlIHBlbmRpbmcgc3RhdGUgc2hvdWxk Cm5vdCBtYXR0ZXIgaGVyZToKLSBJZiB0aGUgaC93IElSUSBpcyBhY3RpdmUsIHRoZSBiaXQgaXMg c2V0IGFscmVhZHkgYW5kIHNob3VsZCByZW1haW4gc28sCmFzIFhlbiBhbmQgdGhlIGd1ZXN0IGFy ZSBzdGlsbCBkZWFsaW5nIHdpdGggaXQuIENsZWFyaW5nIHRoZSBoL3cgcGVuZGluZwpzdGF0ZSBk b2VzIG5vdCBjaGFuZ2UgdGhhdC4KLSBJZiB0aGUgaC93IElSUSBpcyBub3QgYWN0aXZlLCB0aGUg X0lSUV9JTlBST0dSRVNTIGJpdCBpcyBub3Qgc2V0LCBzbwpjbGVhcmluZyBpdCB3b3VsZCBiZSBh IE5PUC4KU28gd2UgY2FuIHJlbW92ZSAgdGhlIF9JUlFfSU5QUk9HUkVTUyBoYW5kbGluZyBoZXJl IGNvbXBsZXRlbHkuCgpJIHdpbGwgYW1lbmQgdGhlIGNvZGUgYWNjb3JkaW5nbHksIGluY2x1ZGlu ZyB0aGUgcmVzcGVjdGl2ZSBHSUN2MyBwYXJ0cy4KCkNoZWVycywKQW5kcmUuCgo+ICsgICAgfQo+ ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBnaWN2Ml9zZXRfaXJxX3R5cGUoc3RydWN0IGlycV9kZXNj ICpkZXNjLCB1bnNpZ25lZCBpbnQgdHlwZSkKPiAgewo+ICAgICAgdWludDMyX3QgY2ZnLCBhY3R1 YWwsIGVkZ2ViaXQ7Cj4gQEAgLTEyNzcsNiArMTMyMyw4IEBAIGNvbnN0IHN0YXRpYyBzdHJ1Y3Qg Z2ljX2h3X29wZXJhdGlvbnMgZ2ljdjJfb3BzID0gewo+ICAgICAgLmVvaV9pcnEgICAgICAgICAg ICAgPSBnaWN2Ml9lb2lfaXJxLAo+ICAgICAgLmRlYWN0aXZhdGVfaXJxICAgICAgPSBnaWN2Ml9k aXJfaXJxLAo+ICAgICAgLnJlYWRfaXJxICAgICAgICAgICAgPSBnaWN2Ml9yZWFkX2lycSwKPiAr ICAgIC5zZXRfYWN0aXZlX3N0YXRlICAgID0gZ2ljdjJfc2V0X2FjdGl2ZV9zdGF0ZSwKPiArICAg IC5zZXRfcGVuZGluZ19zdGF0ZSAgID0gZ2ljdjJfc2V0X3BlbmRpbmdfc3RhdGUsCj4gICAgICAu c2V0X2lycV90eXBlICAgICAgICA9IGdpY3YyX3NldF9pcnFfdHlwZSwKPiAgICAgIC5zZXRfaXJx X3ByaW9yaXR5ICAgID0gZ2ljdjJfc2V0X2lycV9wcmlvcml0eSwKPiAgICAgIC5zZW5kX1NHSSAg ICAgICAgICAgID0gZ2ljdjJfc2VuZF9TR0ksCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9n aWMtdjMuYyBiL3hlbi9hcmNoL2FybS9naWMtdjMuYwo+IGluZGV4IDM5MmNmOTFiNTguLjMxNmYy YzQxNDIgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL2dpYy12My5jCj4gKysrIGIveGVuL2Fy Y2gvYXJtL2dpYy12My5jCj4gQEAgLTQ0NCw2ICs0NDQsMTkgQEAgc3RhdGljIHZvaWQgZ2ljdjNf cG9rZV9pcnEoc3RydWN0IGlycV9kZXNjICppcnFkLCB1MzIgb2Zmc2V0LCBib29sIHdhaXRfZm9y X3J3cCkKPiAgICAgICAgICBnaWN2M193YWl0X2Zvcl9yd3AoaXJxZC0+aXJxKTsKPiAgfQo+ICAK PiArc3RhdGljIGJvb2wgZ2ljdjNfcGVla19pcnEoc3RydWN0IGlycV9kZXNjICppcnFkLCB1MzIg b2Zmc2V0KQo+ICt7Cj4gKyAgICB2b2lkIF9faW9tZW0gKmJhc2U7Cj4gKyAgICB1bnNpZ25lZCBp bnQgaXJxID0gaXJxZC0+aXJxOwo+ICsKPiArICAgIGlmICggaXJxID49IE5SX0dJQ19MT0NBTF9J UlFTKQo+ICsgICAgICAgIGJhc2UgPSBHSUNEICsgKGlycSAvIDMyKSAqIDQ7Cj4gKyAgICBlbHNl Cj4gKyAgICAgICAgYmFzZSA9IEdJQ0RfUkRJU1RfU0dJX0JBU0U7Cj4gKwo+ICsgICAgcmV0dXJu ICEhKHJlYWRsKGJhc2UgKyBvZmZzZXQpICYgKDFVIDw8IChpcnEgJSAzMikpKTsKPiArfQo+ICsK PiAgc3RhdGljIHZvaWQgZ2ljdjNfdW5tYXNrX2lycShzdHJ1Y3QgaXJxX2Rlc2MgKmlycWQpCj4g IHsKPiAgICAgIGdpY3YzX3Bva2VfaXJxKGlycWQsIEdJQ0RfSVNFTkFCTEVSLCBmYWxzZSk7Cj4g QEAgLTQ3Nyw2ICs0OTAsNDMgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnaWN2M19yZWFkX2lycSh2 b2lkKQo+ICAgICAgcmV0dXJuIGlycTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgZ2ljdjNfc2V0 X2FjdGl2ZV9zdGF0ZShzdHJ1Y3QgaXJxX2Rlc2MgKmlycWQsIGJvb2wgYWN0aXZlKQo+ICt7Cj4g KyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmlycWQtPmxvY2spKTsKPiArCj4gKyAgICBpZiAo IGFjdGl2ZSApCj4gKyAgICB7Cj4gKyAgICAgICAgaWYgKCB0ZXN0X2JpdChfSVJRX0dVRVNULCAm aXJxZC0+c3RhdHVzKSApCj4gKyAgICAgICAgICAgIHNldF9iaXQoX0lSUV9JTlBST0dSRVNTLCAm aXJxZC0+c3RhdHVzKTsKPiArICAgICAgICBnaWN2M19wb2tlX2lycShpcnFkLCBHSUNEX0lTQUNU SVZFUiwgZmFsc2UpOwo+ICsgICAgfQo+ICsgICAgZWxzZQo+ICsgICAgewo+ICsgICAgICAgIGdp Y3YzX3Bva2VfaXJxKGlycWQsIEdJQ0RfSUNBQ1RJVkVSLCBmYWxzZSk7Cj4gKyAgICAgICAgaWYg KCAhZ2ljdjNfcGVla19pcnEoaXJxZCwgR0lDRF9JU1BFTkRSKSAmJgo+ICsgICAgICAgICAgICAg dGVzdF9iaXQoX0lSUV9HVUVTVCwgJmlycWQtPnN0YXR1cykgKQo+ICsgICAgICAgICAgICBjbGVh cl9iaXQoX0lSUV9JTlBST0dSRVNTLCAmaXJxZC0+c3RhdHVzKTsKPiArICAgIH0KPiArfQo+ICsK PiArc3RhdGljIHZvaWQgZ2ljdjNfc2V0X3BlbmRpbmdfc3RhdGUoc3RydWN0IGlycV9kZXNjICpp cnFkLCBib29sIHBlbmRpbmcpCj4gK3sKPiArICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmaXJx ZC0+bG9jaykpOwo+ICsKPiArICAgIGlmICggcGVuZGluZyApCj4gKyAgICB7Cj4gKyAgICAgICAg LyogVGhlIElOUFJPR1JFU1MgYml0IHdpbGwgYmUgc2V0IHdoZW4gdGhlIGludGVycnVwdCBmaXJl cy4gKi8KPiArICAgICAgICBnaWN2M19wb2tlX2lycShpcnFkLCBHSUNEX0lTUEVORFIsIGZhbHNl KTsKPiArICAgIH0KPiArICAgIGVsc2UKPiArICAgIHsKPiArICAgICAgICBnaWN2M19wb2tlX2ly cShpcnFkLCBHSUNEX0lDUEVORFIsIGZhbHNlKTsKPiArICAgICAgICBpZiAoICFnaWN2M19wZWVr X2lycShpcnFkLCBHSUNEX0lTQUNUSVZFUikgJiYKPiArICAgICAgICAgICAgIHRlc3RfYml0KF9J UlFfR1VFU1QsICZpcnFkLT5zdGF0dXMpICkKPiArICAgICAgICAgICAgY2xlYXJfYml0KF9JUlFf SU5QUk9HUkVTUywgJmlycWQtPnN0YXR1cyk7Cj4gKyAgICB9Cj4gK30KPiArCj4gIHN0YXRpYyBp bmxpbmUgdWludDY0X3QgZ2ljdjNfbXBpZHJfdG9fYWZmaW5pdHkoaW50IGNwdSkKPiAgewo+ICAg ICAgIHVpbnQ2NF90IG1waWRyID0gY3B1X2xvZ2ljYWxfbWFwKGNwdSk7Cj4gQEAgLTE3NjYsNiAr MTgxNiw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2ljX2h3X29wZXJhdGlvbnMgZ2ljdjNfb3Bz ID0gewo+ICAgICAgLmVvaV9pcnEgICAgICAgICAgICAgPSBnaWN2M19lb2lfaXJxLAo+ICAgICAg LmRlYWN0aXZhdGVfaXJxICAgICAgPSBnaWN2M19kaXJfaXJxLAo+ICAgICAgLnJlYWRfaXJxICAg ICAgICAgICAgPSBnaWN2M19yZWFkX2lycSwKPiArICAgIC5zZXRfYWN0aXZlX3N0YXRlICAgID0g Z2ljdjNfc2V0X2FjdGl2ZV9zdGF0ZSwKPiArICAgIC5zZXRfcGVuZGluZ19zdGF0ZSAgID0gZ2lj djNfc2V0X3BlbmRpbmdfc3RhdGUsCj4gICAgICAuc2V0X2lycV90eXBlICAgICAgICA9IGdpY3Yz X3NldF9pcnFfdHlwZSwKPiAgICAgIC5zZXRfaXJxX3ByaW9yaXR5ICAgID0gZ2ljdjNfc2V0X2ly cV9wcmlvcml0eSwKPiAgICAgIC5zZW5kX1NHSSAgICAgICAgICAgID0gZ2ljdjNfc2VuZF9zZ2ks Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljLmggYi94ZW4vaW5jbHVkZS9h c20tYXJtL2dpYy5oCj4gaW5kZXggNTY1YjA4NzVjYS4uMjFjZjM1ZjEwNiAxMDA2NDQKPiAtLS0g YS94ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9n aWMuaAo+IEBAIC0zNDQsNiArMzQ0LDEwIEBAIHN0cnVjdCBnaWNfaHdfb3BlcmF0aW9ucyB7Cj4g ICAgICB2b2lkICgqZGVhY3RpdmF0ZV9pcnEpKHN0cnVjdCBpcnFfZGVzYyAqaXJxZCk7Cj4gICAg ICAvKiBSZWFkIElSUSBpZCBhbmQgQWNrICovCj4gICAgICB1bnNpZ25lZCBpbnQgKCpyZWFkX2ly cSkodm9pZCk7Cj4gKyAgICAvKiBGb3JjZSB0aGUgYWN0aXZlIHN0YXRlIG9mIGFuIElSUSBieSBh Y2Nlc3NpbmcgdGhlIGRpc3RyaWJ1dG9yICovCj4gKyAgICB2b2lkICgqc2V0X2FjdGl2ZV9zdGF0 ZSkoc3RydWN0IGlycV9kZXNjICppcnFkLCBib29sIHN0YXRlKTsKPiArICAgIC8qIEZvcmNlIHRo ZSBwZW5kaW5nIHN0YXRlIG9mIGFuIElSUSBieSBhY2Nlc3NpbmcgdGhlIGRpc3RyaWJ1dG9yICov Cj4gKyAgICB2b2lkICgqc2V0X3BlbmRpbmdfc3RhdGUpKHN0cnVjdCBpcnFfZGVzYyAqaXJxZCwg Ym9vbCBzdGF0ZSk7Cj4gICAgICAvKiBTZXQgSVJRIHR5cGUgKi8KPiAgICAgIHZvaWQgKCpzZXRf aXJxX3R5cGUpKHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgdW5zaWduZWQgaW50IHR5cGUpOwo+ICAg ICAgLyogU2V0IElSUSBwcmlvcml0eSAqLwo+IEBAIC0zOTIsNiArMzk2LDI2IEBAIHN0YXRpYyBp bmxpbmUgdW5zaWduZWQgaW50IGdpY19nZXRfbnJfbHJzKHZvaWQpCj4gICAgICByZXR1cm4gZ2lj X2h3X29wcy0+aW5mby0+bnJfbHJzOwo+ICB9Cj4gIAo+ICsvKgo+ICsgKiBTZXQgdGhlIGFjdGl2 ZSBzdGF0ZSBvZiBhbiBJUlEuIFRoaXMgc2hvdWxkIGJlIHVzZWQgd2l0aCBjYXJlLCBhcyB0aGlz Cj4gKyAqIGRpcmVjdGx5IGZvcmNlcyB0aGUgYWN0aXZlIGJpdCwgd2l0aG91dCBjb25zaWRlcmlu ZyB0aGUgR0lDIHN0YXRlIG1hY2hpbmUuCj4gKyAqIEZvciBwcml2YXRlIElSUXMgdGhpcyBvbmx5 IHdvcmtzIGZvciB0aG9zZSBvZiB0aGUgY3VycmVudCBDUFUuCj4gKyAqLwo+ICtzdGF0aWMgaW5s aW5lIHZvaWQgZ2ljX3NldF9hY3RpdmVfc3RhdGUoc3RydWN0IGlycV9kZXNjICppcnFkLCBib29s IHN0YXRlKQo+ICt7Cj4gKyAgICBnaWNfaHdfb3BzLT5zZXRfYWN0aXZlX3N0YXRlKGlycWQsIHN0 YXRlKTsKPiArfQo+ICsKPiArLyoKPiArICogU2V0IHRoZSBwZW5kaW5nIHN0YXRlIG9mIGFuIElS US4gVGhpcyBzaG91bGQgYmUgdXNlZCB3aXRoIGNhcmUsIGFzIHRoaXMKPiArICogZGlyZWN0bHkg Zm9yY2VzIHRoZSBwZW5kaW5nIGJpdCwgd2l0aG91dCBjb25zaWRlcmluZyB0aGUgR0lDIHN0YXRl IG1hY2hpbmUuCj4gKyAqIEZvciBwcml2YXRlIElSUXMgdGhpcyBvbmx5IHdvcmtzIGZvciB0aG9z ZSBvZiB0aGUgY3VycmVudCBDUFUuCj4gKyAqLwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgZ2ljX3Nl dF9wZW5kaW5nX3N0YXRlKHN0cnVjdCBpcnFfZGVzYyAqaXJxZCwgYm9vbCBzdGF0ZSkKPiArewo+ ICsgICAgZ2ljX2h3X29wcy0+c2V0X3BlbmRpbmdfc3RhdGUoaXJxZCwgc3RhdGUpOwo+ICt9Cj4g Kwo+ICB2b2lkIHJlZ2lzdGVyX2dpY19vcHMoY29uc3Qgc3RydWN0IGdpY19od19vcGVyYXRpb25z ICpvcHMpOwo+ICBpbnQgZ2ljX21ha2VfaHdkb21fZHRfbm9kZShjb25zdCBzdHJ1Y3QgZG9tYWlu ICpkLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNl X25vZGUgKmdpYywKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=