From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [PATCH 37/57] ARM: new VGIC: Add ENABLE registers handlers Date: Wed, 7 Mar 2018 18:20:57 +0000 Message-ID: <8fad70c0-af95-1e5e-efdf-27e6446fcf77@linaro.org> References: <20180305160415.16760-1-andre.przywara@linaro.org> <20180305160415.16760-38-andre.przywara@linaro.org> <3733c743-388b-ce02-aa35-caccbc0af058@arm.com> 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 1etdgb-0004WJ-PR for xen-devel@lists.xenproject.org; Wed, 07 Mar 2018 18:21:10 +0000 Received: by mail-wr0-x244.google.com with SMTP id l43so3153543wrc.2 for ; Wed, 07 Mar 2018 10:21:07 -0800 (PST) In-Reply-To: <3733c743-388b-ce02-aa35-caccbc0af058@arm.com> Content-Language: en-GB List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAwNy8wMy8xOCAxNzowMSwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IEhpIEFuZHJlLAo+ IAo+IE9uIDAzLzA1LzIwMTggMDQ6MDMgUE0sIEFuZHJlIFByenl3YXJhIHdyb3RlOgo+PiBBcyB0 aGUgZW5hYmxlIHJlZ2lzdGVyIGhhbmRsZXJzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgdjIgYW5k IHYzCj4+IGVtdWxhdGlvbiwgdGhlaXIgaW1wbGVtZW50YXRpb24gZ29lcyBpbnRvIHZnaWMtbW1p by5jLCB0byBiZSBlYXNpbHkKPj4gcmVmZXJlbmNlZCBmcm9tIHRoZSB2MyBlbXVsYXRpb24gYXMg d2VsbCBsYXRlci4KPj4gVGhpcyBpbnRyb2R1Y2VzIGEgdmdpY19zeW5jX2hhcmR3YXJlX2lycSgp IGZ1bmN0aW9uLCB3aGljaCB1cGRhdGVzIHRoZQo+PiBwaHlzaWNhbCBzaWRlIG9mIGEgaGFyZHdh cmUgbWFwcGVkIHZpcnR1YWwgSVJRLgo+PiBCZWNhdXNlIHRoZSBleGlzdGluZyBsb2NraW5nIG9y ZGVyIGJldHdlZW4gdmdpY19pcnEtPmlycV9sb2NrIGFuZAo+PiBpcnFfZGVzYy0+bG9jayBkaWN0 YXRlcyBzbywgd2UgZHJvcHUgdGhlIGlycV9sb2NrIGFuZCByZXRha2UgdGhlbSBpbiB0aGUKPj4g cHJvcGVyIG9yZGVyLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUu cHJ6eXdhcmFAbGluYXJvLm9yZz4KPj4gLS0tCj4+IENoYW5nZWxvZyBSRkMgLi4uIHYxOgo+PiAt IGV4dGVuZCBhbmQgbW92ZSB2Z2ljX3N5bmNfaGFyZHdhcmVfaXJxKCkKPj4gLSBkbyBwcm9wZXIg bG9ja2luZyBzZXF1ZW5jZQo+PiAtIHNraXAgYWxyZWFkeSBkaXNhYmxlZC9lbmFibGVkIElSUXMK Pj4KPj4gwqAgeGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLXYyLmMgfMKgwqAgNCArLQo+PiDC oCB4ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLW1taW8uY8KgwqDCoCB8IDExNwo+PiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gwqAgeGVuL2FyY2gvYXJtL3ZnaWMvdmdp Yy1tbWlvLmjCoMKgwqAgfMKgIDExICsrKysKPj4gwqAgeGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy5j wqDCoMKgwqDCoMKgwqDCoCB8wqAgMzggKysrKysrKysrKysrKwo+PiDCoCB4ZW4vYXJjaC9hcm0v dmdpYy92Z2ljLmjCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDMgKwo+PiDCoCA1IGZpbGVzIGNoYW5n ZWQsIDE3MSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEv eGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLXYyLmMKPj4gYi94ZW4vYXJjaC9hcm0vdmdpYy92 Z2ljLW1taW8tdjIuYwo+PiBpbmRleCAyZTAxNWVkMGIxLi4zZGQ5ODNmODg1IDEwMDY0NAo+PiAt LS0gYS94ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLW1taW8tdjIuYwo+PiArKysgYi94ZW4vYXJjaC9h cm0vdmdpYy92Z2ljLW1taW8tdjIuYwo+PiBAQCAtODAsMTAgKzgwLDEwIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdmdpY19yZWdpc3Rlcl9yZWdpb24KPj4gdmdpY192Ml9kaXN0X3JlZ2lzdGVyc1td ID0gewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRfcmFvLCB2Z2ljX21taW9f d3JpdGVfd2ksIDEsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBWR0lDX0FDQ0VTU18zMmJpdCksCj4+ IMKgwqDCoMKgwqAgUkVHSVNURVJfREVTQ19XSVRIX0JJVFNfUEVSX0lSUShHSUNEX0lTRU5BQkxF UiwKPj4gLcKgwqDCoMKgwqDCoMKgIHZnaWNfbW1pb19yZWFkX3JheiwgdmdpY19tbWlvX3dyaXRl X3dpLCAxLAo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRfZW5hYmxlLCB2Z2ljX21t aW9fd3JpdGVfc2VuYWJsZSwgMSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIFZHSUNfQUNDRVNTXzMy Yml0KSwKPj4gwqDCoMKgwqDCoCBSRUdJU1RFUl9ERVNDX1dJVEhfQklUU19QRVJfSVJRKEdJQ0Rf SUNFTkFCTEVSLAo+PiAtwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRfcmF6LCB2Z2ljX21t aW9fd3JpdGVfd2ksIDEsCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX21taW9fcmVhZF9lbmFibGUs IHZnaWNfbW1pb193cml0ZV9jZW5hYmxlLCAxLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgVkdJQ19B Q0NFU1NfMzJiaXQpLAo+PiDCoMKgwqDCoMKgIFJFR0lTVEVSX0RFU0NfV0lUSF9CSVRTX1BFUl9J UlEoR0lDRF9JU1BFTkRSLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRfcmF6 LCB2Z2ljX21taW9fd3JpdGVfd2ksIDEsCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdp Yy92Z2ljLW1taW8uYwo+PiBiL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMtbW1pby5jCj4+IGluZGV4 IDI4NGE5MmQyODguLmY4ZjAyNTJlZmYgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNoL2FybS92Z2lj L3ZnaWMtbW1pby5jCj4+ICsrKyBiL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMtbW1pby5jCj4+IEBA IC0zOSw2ICszOSwxMjMgQEAgdm9pZCB2Z2ljX21taW9fd3JpdGVfd2koc3RydWN0IHZjcHUgKnZj cHUsIHBhZGRyX3QKPj4gYWRkciwKPj4gwqDCoMKgwqDCoCAvKiBJZ25vcmUgKi8KPj4gwqAgfQo+ PiDCoCArLyoKPj4gKyAqIFJlYWQgYWNjZXNzZXMgdG8gYm90aCBHSUNEX0lDRU5BQkxFUiBhbmQg R0lDRF9JU0VOQUJMRVIgcmV0dXJuIHRoZQo+PiB2YWx1ZQo+PiArICogb2YgdGhlIGVuYWJsZWQg Yml0LCBzbyB0aGVyZSBpcyBvbmx5IG9uZSBmdW5jdGlvbiBmb3IgYm90aCBoZXJlLgo+PiArICov Cj4+ICt1bnNpZ25lZCBsb25nIHZnaWNfbW1pb19yZWFkX2VuYWJsZShzdHJ1Y3QgdmNwdSAqdmNw dSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcGFkZHJfdCBhZGRyLCB1bnNpZ25lZCBpbnQgbGVuKQo+PiAr ewo+PiArwqDCoMKgIHVpbnQzMl90IGludGlkID0gVkdJQ19BRERSX1RPX0lOVElEKGFkZHIsIDEp Owo+PiArwqDCoMKgIHVpbnQzMl90IHZhbHVlID0gMDsKPj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQg aTsKPj4gKwo+PiArwqDCoMKgIC8qIExvb3Agb3ZlciBhbGwgSVJRcyBhZmZlY3RlZCBieSB0aGlz IHJlYWQgKi8KPj4gK8KgwqDCoCBmb3IgKCBpID0gMDsgaSA8IGxlbiAqIDg7IGkrKyApCj4+ICvC oMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IHZnaWNfaXJxICppcnEgPSB2Z2ljX2dl dF9pcnEodmNwdS0+ZG9tYWluLCB2Y3B1LCBpbnRpZAo+PiArIGkpOwo+PiArCj4+ICvCoMKgwqDC oMKgwqDCoCBpZiAoIGlycS0+ZW5hYmxlZCApCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZh bHVlIHw9ICgxVSA8PCBpKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19wdXRfaXJxKHZj cHUtPmRvbWFpbiwgaXJxKTsKPj4gK8KgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4gdmFs dWU7Cj4+ICt9Cj4+ICsKPj4gK3ZvaWQgdmdpY19tbWlvX3dyaXRlX3NlbmFibGUoc3RydWN0IHZj cHUgKnZjcHUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBwYWRkcl90IGFkZHIsIHVuc2lnbmVkIGludCBsZW4sCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25l ZCBsb25nIHZhbCkKPj4gK3sKPj4gK8KgwqDCoCB1aW50MzJfdCBpbnRpZCA9IFZHSUNfQUREUl9U T19JTlRJRChhZGRyLCAxKTsKPj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgaTsKPj4gKwo+PiArwqDC oMKgIGZvcl9lYWNoX3NldF9iaXQoIGksICZ2YWwsIGxlbiAqIDggKQo+PiArwqDCoMKgIHsKPj4g K8KgwqDCoMKgwqDCoMKgIHN0cnVjdCB2Z2ljX2lycSAqaXJxID0gdmdpY19nZXRfaXJxKHZjcHUt PmRvbWFpbiwgdmNwdSwgaW50aWQKPj4gKyBpKTsKPj4gK8KgwqDCoMKgwqDCoMKgIHVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpcnFfZGVzY190ICpkZXNjOwo+PiArCj4+ ICvCoMKgwqDCoMKgwqDCoCBzcGluX2xvY2tfaXJxc2F2ZSgmaXJxLT5pcnFfbG9jaywgZmxhZ3Mp Owo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGlycS0+ZW5hYmxlZCApwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAvKiBza2lwIGFscmVhZHkgZW5hYmxlZCBJUlFzICovCj4+ICvCoMKgwqDCoMKg wqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmlycS0+aXJxX2xvY2ssIGZsYWdzKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmdpY19w dXRfaXJxKHZjcHUtPmRvbWFpbiwgaXJxKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29u dGludWU7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGlycS0+ ZW5hYmxlZCA9IHRydWU7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGlycS0+aHcgKQo+PiArwqDC oMKgwqDCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKgo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICogVGhlIGlycSBjYW5ub3QgYmUgYSBQUEksIHdlIG9ubHkgc3VwcG9y dCBkZWxpdmVyeQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogb2YgU1BJcyB0byBndWVz dHMuCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8KPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgQVNTRVJUKGlycS0+aHdpbnRpZCA+PSBWR0lDX05SX1BSSVZBVEVfSVJRUyk7Cj4+ICsK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVzYyA9IGlycV90b19kZXNjKGlycS0+aHdpbnRp ZCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoCBlbHNlCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGRlc2MgPSBOVUxMOwo+IAo+IFlvdSBjb3VsZCBqdXN0IGluaXRp YWxpemUgZGVzYyB0byBOVUxMIGF0IHRoZSBkZWNsYXJhdGlvbiB0aW1lIGFuZCBkcm9wCj4gdGhl IGVsc2UgcGFydC4KCkNhbiB3ZSByZWx5IG9uIHRoZSBpbml0aWFsaXplciB0byBiZSBjYWxsZWQg b24gZXZlcnkgbG9vcCBpdGVyYXRpb24/IEkKd2Fzbid0IHN1cmUgYWJvdXQgdGhpcyBhbmQgd2hh dCB0aGUgc3RhbmRhcmQgaGFzIHRvIHNheSBhYm91dCB0aGlzLgoKPj4gKwo+PiArwqDCoMKgwqDC oMKgwqAgdmdpY19xdWV1ZV9pcnFfdW5sb2NrKHZjcHUtPmRvbWFpbiwgaXJxLCBmbGFncyk7Cj4+ ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGVzYyApCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHZnaWNfc3luY19oYXJkd2FyZV9pcnEodmNwdS0+ZG9tYWluLCBkZXNjLCBpcnEpOwo+IAo+ IEEgY29tbWVudCBleHBsYWluaW5nIHdoeSBkZXNjIGlzIGRvbmUgb3V0c2lkZSB0aGUgbG9ja2lu ZyB3b3VsZCBiZQo+IHVzZWZ1bC4gVGhpcyB3b3VsZCBhdm9pZCB0byBsb29zZSB0aW1lIHVzaW5n IGdpdCBibGFtZS4KPiAKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19wdXRfaXJxKHZjcHUt PmRvbWFpbiwgaXJxKTsKPj4gK8KgwqDCoCB9Cj4+ICt9Cj4+ICsKPj4gK3ZvaWQgdmdpY19tbWlv X3dyaXRlX2NlbmFibGUoc3RydWN0IHZjcHUgKnZjcHUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBwYWRkcl90IGFkZHIsIHVuc2lnbmVkIGludCBsZW4sCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIHZhbCkKPj4gK3sKPj4gK8Kg wqDCoCB1aW50MzJfdCBpbnRpZCA9IFZHSUNfQUREUl9UT19JTlRJRChhZGRyLCAxKTsKPj4gK8Kg wqDCoCB1bnNpZ25lZCBpbnQgaTsKPj4gKwo+PiArwqDCoMKgIGZvcl9lYWNoX3NldF9iaXQoIGks ICZ2YWwsIGxlbiAqIDggKQo+PiArwqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCB2 Z2ljX2lycSAqaXJxOwo+PiArwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4g K8KgwqDCoMKgwqDCoMKgIGlycV9kZXNjX3QgKmRlc2M7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKg IGlycSA9IHZnaWNfZ2V0X2lycSh2Y3B1LT5kb21haW4sIHZjcHUsIGludGlkICsgaSk7Cj4+ICvC oMKgwqDCoMKgwqDCoCBzcGluX2xvY2tfaXJxc2F2ZSgmaXJxLT5pcnFfbG9jaywgZmxhZ3MpOwo+ PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoICFpcnEtPmVuYWJsZWQgKcKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLyogc2tpcCBhbHJlYWR5IGRpc2FibGVkIElSUXMgKi8KPj4gK8KgwqDCoMKgwqDC oMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm aXJxLT5pcnFfbG9jaywgZmxhZ3MpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2Z2ljX3B1 dF9pcnEodmNwdS0+ZG9tYWluLCBpcnEpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250 aW51ZTsKPj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgaXJxLT5l bmFibGVkID0gZmFsc2U7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggaXJxLT5odyApCj4+ ICvCoMKgwqDCoMKgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBUaGUgaXJxIGNhbm5vdCBiZSBhIFBQSSwgd2Ugb25seSBz dXBwb3J0IGRlbGl2ZXJ5Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBvZiBTUElzIHRv IGd1ZXN0cy4KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBBU1NFUlQoaXJxLT5od2ludGlkID49IFZHSUNfTlJfUFJJVkFURV9JUlFTKTsK Pj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXNjID0gaXJxX3RvX2Rlc2MoaXJxLT5o d2ludGlkKTsKPj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoMKgwqDCoMKgIGVsc2UKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVzYyA9IE5VTEw7Cj4+ICsKPj4gK8KgwqDCoMKgwqDC oMKgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlycS0+aXJxX2xvY2ssIGZsYWdzKTsKPj4gKwo+ PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBkZXNjICkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg dmdpY19zeW5jX2hhcmR3YXJlX2lycSh2Y3B1LT5kb21haW4sIGRlc2MsIGlycSk7Cj4gCj4gRGl0 dG8uCj4gCj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfcHV0X2lycSh2Y3B1LT5kb21haW4s IGlycSk7Cj4+ICvCoMKgwqAgfQo+PiArfQo+PiArCj4+IMKgIHN0YXRpYyBpbnQgbWF0Y2hfcmVn aW9uKGNvbnN0IHZvaWQgKmtleSwgY29uc3Qgdm9pZCAqZWx0KQo+PiDCoCB7Cj4+IMKgwqDCoMKg wqAgY29uc3QgdW5zaWduZWQgaW50IG9mZnNldCA9ICh1bnNpZ25lZCBsb25nKWtleTsKPj4gZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMtbW1pby5oCj4+IGIveGVuL2FyY2gvYXJt L3ZnaWMvdmdpYy1tbWlvLmgKPj4gaW5kZXggNjIxYjlhMjgxYy4uMmRkY2JiZjU4ZCAxMDA2NDQK Pj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmgKPj4gKysrIGIveGVuL2FyY2gv YXJtL3ZnaWMvdmdpYy1tbWlvLmgKPj4gQEAgLTk2LDYgKzk2LDE3IEBAIHVuc2lnbmVkIGxvbmcg dmdpY19tbWlvX3JlYWRfcmFvKHN0cnVjdCB2Y3B1ICp2Y3B1LAo+PiDCoCB2b2lkIHZnaWNfbW1p b193cml0ZV93aShzdHJ1Y3QgdmNwdSAqdmNwdSwgcGFkZHJfdCBhZGRyLAo+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgbGVu LCB1bnNpZ25lZCBsb25nIHZhbCk7Cj4+IMKgICt1bnNpZ25lZCBsb25nIHZnaWNfbW1pb19yZWFk X2VuYWJsZShzdHJ1Y3QgdmNwdSAqdmNwdSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGFkZHJfdCBhZGRy LCB1bnNpZ25lZCBpbnQgbGVuKTsKPj4gKwo+PiArdm9pZCB2Z2ljX21taW9fd3JpdGVfc2VuYWJs ZShzdHJ1Y3QgdmNwdSAqdmNwdSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBhZGRyX3QgYWRkciwgdW5zaWduZWQgaW50IGxlbiwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHVuc2lnbmVkIGxvbmcgdmFsKTsKPj4gKwo+PiArdm9pZCB2Z2ljX21taW9fd3JpdGVfY2Vu YWJsZShzdHJ1Y3QgdmNwdSAqdmNwdSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBhZGRyX3QgYWRkciwgdW5zaWduZWQgaW50IGxl biwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHVuc2lnbmVkIGxvbmcgdmFsKTsKPj4gKwo+PiDCoCB1bnNpZ25lZCBpbnQgdmdpY192 Ml9pbml0X2Rpc3RfaW9kZXYoc3RydWN0IHZnaWNfaW9fZGV2aWNlICpkZXYpOwo+PiDCoCDCoCAj ZW5kaWYKPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMuYyBiL3hlbi9hcmNo L2FybS92Z2ljL3ZnaWMuYwo+PiBpbmRleCA0NjVhOTVmNDE1Li41MjQ2ZDdjMmU3IDEwMDY0NAo+ PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLmMKPj4gKysrIGIveGVuL2FyY2gvYXJtL3Zn aWMvdmdpYy5jCj4+IEBAIC02OTgsNiArNjk4LDQ0IEBAIHZvaWQgdmdpY19raWNrX3ZjcHVzKHN0 cnVjdCBkb21haW4gKmQpCj4+IMKgwqDCoMKgwqAgfQo+PiDCoCB9Cj4+IMKgICtzdGF0aWMgdW5z aWduZWQgaW50IHRyYW5zbGF0ZV9pcnFfdHlwZShib29sIGlzX2xldmVsKQo+PiArewo+PiArwqDC oMKgIHJldHVybiBpc19sZXZlbCA/IElSUV9UWVBFX0xFVkVMX0hJR0ggOiBJUlFfVFlQRV9FREdF X1JJU0lORzsKPj4gK30KPj4gKwo+PiArdm9pZCB2Z2ljX3N5bmNfaGFyZHdhcmVfaXJxKHN0cnVj dCBkb21haW4gKmQsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaXJxX2Rlc2NfdCAqZGVzYywgc3RydWN0IHZnaWNfaXJxICppcnEpCj4+ ICt7Cj4+ICvCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4gKwo+PiArwqDCoMKgIHNwaW5f bG9ja19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7Cj4+ICvCoMKgwqAgc3Bpbl9sb2NrKCZp cnEtPmlycV9sb2NrKTsKPj4gKwo+PiArwqDCoMKgIC8qIElzIHRoYXQgYXNzb2NpYXRpb24gYWN0 dWFsbHkgc3RpbGwgdmFsaWQ/ICh3ZSBlbnRlcmVkIHdpdGggbm8KPj4gbG9ja3MpICovCj4gCj4g SWYgdGhlIGFzc29jaWF0aW9uIGlzIG5vdCB2YWxpZCwgdGhlbiB5b3UgbmVlZCB0byBmZXRjaCB0 aGUgbmV3IGRlc2MuCj4gUmlnaHQ/CgpJIGFtIG5vdCBzbyBzdXJlIGl0J3MgdGhhdCBlYXN5LiBJ ZiB0aGUgYXNzb2NpYXRpb24gY2hhbmdlZCwgdGhlbiB0aGUKd2hvbGUgcmVhc29uIG9mIHRoaXMg Y2FsbCBtaWdodCBoYXZlIGJlY29tZSBpbnZhbGlkLiBTbyBJIHJhdGhlciBiYWlsCm91dCBoZXJl IGFuZCBkbyBub3RoaW5nLiBUaGUgY2hlY2sgaXMganVzdCB0byBwcmV2ZW50IGRvaW5nIHRoZSB3 cm9uZwp0aGluZywgbm90IG5lY2Vzc2FyaWx5IHRvIGFsd2F5cyBkbyB0aGUgcmlnaHQgdGhpbmcu ClRvIGJlIGhvbmVzdCB0aGlzIHdob2xlICJsb2NrIGRyb3AgZGFuY2UiIGlzIGp1c3QgdG8gY29w ZSB3aXRoIHRoZQpsb2NraW5nIG9yZGVyLCB3aGljaCBJIGNvbnNpZGVyIHdyb25nLCBhY2NvcmRp bmcgdG8gbXkgZ3V0IGZlZWxpbmcuCgpUaGlzIGZ1bmN0aW9uIGhlcmUgaXMgY2FsbGVkIGZyb20g c2V2ZXJhbCBwbGFjZXMsIHNvIGl0IHNlZW1zIGEgYml0CmZyYWdpbGUgdG8gYXNzdW1lIGEgd2F5 IGhvdyB0byBmaXggYSBicm9rZW4gYXNzb2NpYXRpb24gaGVyZS4gSSBjYW4gZ28KYmFjayBhbmQg Y2hlY2sgZXZlcnkgZXhpc3RpbmcgY2FsbGVyIGluIHRoaXMgcmVzcGVjdCwgYnV0IHRvIGJlIGhv bmVzdApJJ2QgcmF0aGVyIGNoYW5nZSB0aGUgbG9ja2luZyBvcmRlciwgc28gd2UgZG9uJ3QgbmVl ZCB0byB3b3JyeSBhYm91dAp0aGlzLiBCdXQgSSBmZWVsIGxpa2Ugd2Ugc2hvdWxkIGRvIHRoaXMg YXMgYSBmaXh1cCBvbiB0b3AgbGF0ZXIuCgpDaGVlcnMsCkFuZHJlLgoKCj4gCj4+ICvCoMKgwqAg aWYgKCBkZXNjLT5pcnEgPT0gaXJxLT5od2ludGlkICkKPj4gK8KgwqDCoCB7Cj4+ICvCoMKgwqDC oMKgwqDCoCBpZiAoIGlycS0+ZW5hYmxlZCApCj4+ICvCoMKgwqDCoMKgwqDCoCB7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIC8qCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBXZSBt aWdodCBlbmQgdXAgZnJvbSB2YXJpb3VzIGNhbGxlcnMsIHNvIGNoZWNrIHRoYXQgdGhlCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBpbnRlcnJydXB0IGlzIGRpc2FibGVkIGJlZm9yZSB0 cnlpbmcgdG8gY2hhbmdlIHRoZQo+PiBjb25maWcuCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKi8KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCBpcnFfdHlwZV9zZXRfYnlfZG9t YWluKGQpICYmCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0ZXN0X2JpdChf SVJRX0RJU0FCTEVELCAmZGVzYy0+c3RhdHVzKSApCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZ2ljX3NldF9pcnFfdHlwZShkZXNjLCB0cmFuc2xhdGVfaXJxX3R5cGUoaXJxLT5j b25maWcpKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIGlycS0+dGFyZ2V0 X3ZjcHUgKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlycV9zZXRfYWZmaW5p dHkoZGVzYywKPj4gY3B1bWFza19vZihpcnEtPnRhcmdldF92Y3B1LT5wcm9jZXNzb3IpKTsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVzYy0+aGFuZGxlci0+ZW5hYmxlKGRlc2MpOwo+PiAr wqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqAgZWxzZQo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBkZXNjLT5oYW5kbGVyLT5kaXNhYmxlKGRlc2MpOwo+PiArwqDCoMKgIH0KPj4g Kwo+PiArwqDCoMKgIHNwaW5fdW5sb2NrKCZpcnEtPmlycV9sb2NrKTsKPj4gK8KgwqDCoCBzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7Cj4+ICt9Cj4+ICsKPj4gwqAg LyoKPj4gwqDCoCAqIExvY2FsIHZhcmlhYmxlczoKPj4gwqDCoCAqIG1vZGU6IEMKPj4gZGlmZiAt LWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMuaCBiL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMu aAo+PiBpbmRleCA1ODhiZDA2N2I3Li42OGUyMDVkMTBhIDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJj aC9hcm0vdmdpYy92Z2ljLmgKPj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy5oCj4+IEBA IC01MCw2ICs1MCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2Z2ljX2dldF9pcnFfa3JlZihzdHJ1 Y3QgdmdpY19pcnEKPj4gKmlycSkKPj4gwqDCoMKgwqDCoCBhdG9taWNfaW5jKCZpcnEtPnJlZmNv dW50KTsKPj4gwqAgfQo+PiDCoCArdm9pZCB2Z2ljX3N5bmNfaGFyZHdhcmVfaXJxKHN0cnVjdCBk b21haW4gKmQsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaXJxX2Rlc2NfdCAqZGVzYywgc3RydWN0IHZnaWNfaXJxICppcnEpOwo+PiAr Cj4+IMKgIHZvaWQgdmdpY192Ml9mb2xkX2xyX3N0YXRlKHN0cnVjdCB2Y3B1ICp2Y3B1KTsKPj4g wqAgdm9pZCB2Z2ljX3YyX3BvcHVsYXRlX2xyKHN0cnVjdCB2Y3B1ICp2Y3B1LCBzdHJ1Y3Qgdmdp Y19pcnEgKmlycSwKPj4gaW50IGxyKTsKPj4gwqAgdm9pZCB2Z2ljX3YyX3NldF91bmRlcmZsb3co c3RydWN0IHZjcHUgKnZjcHUpOwo+Pgo+IAo+IENoZWVycywKPiAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=