From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [RFC PATCH 30/49] ARM: new VGIC: Add ENABLE registers handlers Date: Fri, 23 Feb 2018 15:18:07 +0000 Message-ID: <85b4eb32-b711-acca-ea16-6df8b7faaea1@linaro.org> References: <20180209143937.28866-1-andre.przywara@linaro.org> <20180209143937.28866-31-andre.przywara@linaro.org> <0af8db8c-25f2-2472-5c36-e2891c53eec5@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 1epF6y-00025g-VZ for xen-devel@lists.xenproject.org; Fri, 23 Feb 2018 15:18:13 +0000 Received: by mail-wr0-x244.google.com with SMTP id v111so2239788wrb.3 for ; Fri, 23 Feb 2018 07:18:10 -0800 (PST) In-Reply-To: <0af8db8c-25f2-2472-5c36-e2891c53eec5@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 , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAxNi8wMi8xOCAxNjo1NywgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IEhpIEFuZHJlLAo+ IAo+IE9uIDA5LzAyLzE4IDE0OjM5LCBBbmRyZSBQcnp5d2FyYSB3cm90ZToKPj4gQXMgdGhlIGVu YWJsZSByZWdpc3RlciBoYW5kbGVycyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIHYyIGFuZCB2Mwo+ PiBlbXVsYXRpb24sIHRoZWlyIGltcGxlbWVudGF0aW9uIGdvZXMgaW50byB2Z2ljLW1taW8uYywg dG8gYmUgZWFzaWx5Cj4+IHJlZmVyZW5jZWQgZnJvbSB0aGUgdjMgZW11bGF0aW9uIGFzIHdlbGwg bGF0ZXIuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEFuZHJlIFByenl3YXJhIDxhbmRyZS5wcnp5d2Fy YUBsaW5hcm8ub3JnPgo+PiAtLS0KPj4gwqAgeGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLXYy LmMgfMKgwqAgNCArLQo+PiDCoCB4ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLW1taW8uY8KgwqDCoCB8 IDExNAo+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gwqAgeGVu L2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmjCoMKgwqAgfMKgIDExICsrKysKPj4gwqAgMyBmaWxl cyBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAt LWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMtbW1pby12Mi5jCj4+IGIveGVuL2FyY2gvYXJt L3ZnaWMvdmdpYy1tbWlvLXYyLmMKPj4gaW5kZXggMDkyNmIzMjQzZS4uZWNhNjg0MGZmOSAxMDA2 NDQKPj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLXYyLmMKPj4gKysrIGIveGVu L2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLXYyLmMKPj4gQEAgLTc0LDEwICs3NCwxMCBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHZnaWNfcmVnaXN0ZXJfcmVnaW9uCj4+IHZnaWNfdjJfZGlzdF9yZWdp c3RlcnNbXSA9IHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHZnaWNfbW1pb19yZWFkX3Jhbywgdmdp Y19tbWlvX3dyaXRlX3dpLCBOVUxMLCBOVUxMLCAxLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgVkdJ Q19BQ0NFU1NfMzJiaXQpLAo+PiDCoMKgwqDCoMKgIFJFR0lTVEVSX0RFU0NfV0lUSF9CSVRTX1BF Ul9JUlEoR0lDRF9JU0VOQUJMRVIsCj4+IC3CoMKgwqDCoMKgwqDCoCB2Z2ljX21taW9fcmVhZF9y YXosIHZnaWNfbW1pb193cml0ZV93aSwgTlVMTCwgTlVMTCwgMSwKPj4gK8KgwqDCoMKgwqDCoMKg IHZnaWNfbW1pb19yZWFkX2VuYWJsZSwgdmdpY19tbWlvX3dyaXRlX3NlbmFibGUsIE5VTEwsIE5V TEwsIDEsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBWR0lDX0FDQ0VTU18zMmJpdCksCj4+IMKgwqDC oMKgwqAgUkVHSVNURVJfREVTQ19XSVRIX0JJVFNfUEVSX0lSUShHSUNEX0lDRU5BQkxFUiwKPj4g LcKgwqDCoMKgwqDCoMKgIHZnaWNfbW1pb19yZWFkX3JheiwgdmdpY19tbWlvX3dyaXRlX3dpLCBO VUxMLCBOVUxMLCAxLAo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRfZW5hYmxlLCB2 Z2ljX21taW9fd3JpdGVfY2VuYWJsZSwgTlVMTCwgTlVMTCwgMSwKPj4gwqDCoMKgwqDCoMKgwqDC oMKgIFZHSUNfQUNDRVNTXzMyYml0KSwKPj4gwqDCoMKgwqDCoCBSRUdJU1RFUl9ERVNDX1dJVEhf QklUU19QRVJfSVJRKEdJQ0RfSVNQRU5EUiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHZnaWNfbW1p b19yZWFkX3JheiwgdmdpY19tbWlvX3dyaXRlX3dpLCBOVUxMLCBOVUxMLCAxLAo+PiBkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmMKPj4gYi94ZW4vYXJjaC9hcm0vdmdp Yy92Z2ljLW1taW8uYwo+PiBpbmRleCA1OTcwM2E2OTA5Li4zZDlmYTAyYTEwIDEwMDY0NAo+PiAt LS0gYS94ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLW1taW8uYwo+PiArKysgYi94ZW4vYXJjaC9hcm0v dmdpYy92Z2ljLW1taW8uYwo+PiBAQCAtMzksNiArMzksMTIwIEBAIHZvaWQgdmdpY19tbWlvX3dy aXRlX3dpKHN0cnVjdCB2Y3B1ICp2Y3B1LCBwYWRkcl90Cj4+IGFkZHIsCj4+IMKgwqDCoMKgwqAg LyogSWdub3JlICovCj4+IMKgIH0KPj4gwqAgKy8qCj4+ICsgKiBSZWFkIGFjY2Vzc2VzIHRvIGJv dGggR0lDRF9JQ0VOQUJMRVIgYW5kIEdJQ0RfSVNFTkFCTEVSIHJldHVybiB0aGUKPj4gdmFsdWUK Pj4gKyAqIG9mIHRoZSBlbmFibGVkIGJpdCwgc28gdGhlcmUgaXMgb25seSBvbmUgZnVuY3Rpb24g Zm9yIGJvdGggaGVyZS4KPj4gKyAqLwo+PiArdW5zaWduZWQgbG9uZyB2Z2ljX21taW9fcmVhZF9l bmFibGUoc3RydWN0IHZjcHUgKnZjcHUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBwYWRkcl90IGFkZHIsIHVuc2lnbmVkIGludCBsZW4pCj4gCj4gSW5kZW50YXRp b24uCj4gCj4+ICt7Cj4+ICvCoMKgwqAgdTMyIGludGlkID0gVkdJQ19BRERSX1RPX0lOVElEKGFk ZHIsIDEpOwo+IAo+IHVpbnQzMl90IGhlcmUgcGxlYXNlLgo+IAo+PiArwqDCoMKgIHUzMiB2YWx1 ZSA9IDA7Cj4gCj4gU2FtZSBoZXJlLgo+IAo+PiArwqDCoMKgIGludCBpOwo+PiArCj4+ICvCoMKg wqAgLyogTG9vcCBvdmVyIGFsbCBJUlFzIGFmZmVjdGVkIGJ5IHRoaXMgcmVhZCAqLwo+PiArwqDC oMKgIGZvciAoIGkgPSAwOyBpIDwgbGVuICogODsgaSsrICkKPj4gK8KgwqDCoCB7Cj4+ICvCoMKg wqDCoMKgwqDCoCBzdHJ1Y3QgdmdpY19pcnEgKmlycSA9IHZnaWNfZ2V0X2lycSh2Y3B1LT5kb21h aW4sIHZjcHUsIGludGlkCj4+ICsgaSk7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggaXJx LT5lbmFibGVkICkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsdWUgfD0gKDFVIDw8IGkp Owo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX3B1dF9pcnEodmNwdS0+ZG9tYWluLCBpcnEp Owo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIHJldHVybiB2YWx1ZTsKPj4gK30KPj4gKwo+ PiArc3RhdGljIHZvaWQgdmdpY19oYW5kbGVfaGFyZHdhcmVfaXJxKGlycV9kZXNjX3QgKmRlc2Ms IGludCBpcnFfdHlwZSwKPiAKPiBMb29raW5nIGJlbG93IGlycV90eXBlIHNob3VsZCBhIGVudW0g dmdpY19pcnFfY29uZmlnIGFuZCBub3QgYW4gaW50Lgo+IAo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib29sIGVuYWJsZSkKPiAKPiBJbmRlbnRhdGlvbi4KPiAK Pj4gK3sKPj4gK8KgwqDCoCB1bnNpZ25lZCBsb25nIGZsYWdzOwo+PiArCj4+ICsvL8KgIGlycV9z ZXRfYWZmaW5pdHkoZGVzYywgY3B1bWFza19vZih2X3RhcmdldC0+cHJvY2Vzc29yKSk7Cj4gCj4g V2h5IGlzIHRoYXQgY29tbWVudGVkPwo+IAo+PiArwqDCoMKgIHNwaW5fbG9ja19pcnFzYXZlKCZk ZXNjLT5sb2NrLCBmbGFncyk7Cj4+ICvCoMKgwqAgaWYgKCBlbmFibGUgKQo+PiArwqDCoMKgIHsK Pj4gK8KgwqDCoMKgwqDCoMKgIGdpY19zZXRfaXJxX3R5cGUoZGVzYywgaXJxX3R5cGUgPT0gVkdJ Q19DT05GSUdfTEVWRUwgPwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSVJR X1RZUEVfTEVWRUxfSElHSCA6IElSUV9UWVBFX0VER0VfUklTSU5HKTsKPiAKPiBJbmRlbnRhdGlv biBhbmQgSSB3b3VsZCBwcmVmZXIgYSBoZWxwZXIgdG8gY29udmVydCBiZXR3ZWVuIHRoZSB2Z2lj Cj4gdmFsdWUgYW5kIHRoZSBJUlFfVFlQRS4gVGhpcyB3b3VsZCBtYWtlIHRoZSBjb2RlIGVhc2ll ciB0byByZWFkLgo+IAo+IEFsc28sIHRoaXMgY29kZSBkb2VzIG5vdCByZXBsaWNhdGUgY29ycmVj dGx5IHRoZSBjdXJyZW50IHZHSUMuCj4gZ2ljX3NldF9pcnFfdHlwZSBpcyBvbmx5IGFsbG93ZWQg dG8gYmUgdXNlZCB3aGVuCj4gaXJxX3NldF90eXBlX2J5X2RvbWFpbihkKSByZXR1cm5zIHRydWUu IElmIHlvdSBjb25zaWRlciB0aGlzIGNoYW5nZQo+IHZhbGlkLCB0aGVuIEkgd291bGQgbGlrZSB0 byBrbm93IHdoeS4KPiAKPj4gK8KgwqDCoMKgwqDCoMKgIGRlc2MtPmhhbmRsZXItPmVuYWJsZShk ZXNjKTsKPj4gK8KgwqDCoCB9Cj4+ICvCoMKgwqAgZWxzZQo+PiArwqDCoMKgwqDCoMKgwqAgZGVz Yy0+aGFuZGxlci0+ZGlzYWJsZShkZXNjKTsKPj4gK8KgwqDCoCBzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7Cj4+ICt9Cj4+ICsKPj4gK3ZvaWQgdmdpY19tbWlvX3dy aXRlX3NlbmFibGUoc3RydWN0IHZjcHUgKnZjcHUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBwYWRkcl90IGFkZHIsIHVuc2lnbmVkIGludCBsZW4sCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIHZhbCkKPiAKPiBJbmRlbnRhdGlv bi4KPiAKPj4gK3sKPj4gK8KgwqDCoCB1MzIgaW50aWQgPSBWR0lDX0FERFJfVE9fSU5USUQoYWRk ciwgMSk7Cj4gCj4gdWludDMyX3QuCj4gCj4+ICvCoMKgwqAgaXJxX2Rlc2NfdCAqZGVzYzsKPj4g K8KgwqDCoCBpbnQgaTsKPj4gK8KgwqDCoCB1bnNpZ25lZCBsb25nIGZsYWdzOwo+PiArwqDCoMKg IGVudW0gdmdpY19pcnFfY29uZmlnIGNvbmZpZzsKPj4gKwo+PiArwqDCoMKgIGZvcl9lYWNoX3Nl dF9iaXQoIGksICZ2YWwsIGxlbiAqIDggKQo+PiArwqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKg IHN0cnVjdCB2Z2ljX2lycSAqaXJxOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBpcnEgPSB2Z2lj X2dldF9pcnEodmNwdS0+ZG9tYWluLCB2Y3B1LCBpbnRpZCArIGkpOwo+PiArCj4+ICvCoMKgwqDC oMKgwqDCoCBzcGluX2xvY2tfaXJxc2F2ZSgmaXJxLT5pcnFfbG9jaywgZmxhZ3MpOwo+PiArwqDC oMKgwqDCoMKgwqAgaXJxLT5lbmFibGVkID0gdHJ1ZTsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmICgg aXJxLT5odyApCj4+ICvCoMKgwqDCoMKgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC8qCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBUaGUgaXJxIGNhbm5vdCBiZSBhIFBQ SSwgd2Ugb25seSBzdXBwb3J0IGRlbGl2ZXJ5Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KiBvZiBTUElzIHRvIGd1ZXN0cy4KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBU1NFUlQoaXJxLT5od2ludGlkID49IDMyKTsKPj4gKwo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXNjID0gaXJxX3RvX2Rlc2MoaXJxLT5od2ludGlk KTsKPiAKPiBXaGF0IGlzIHRoZSByYXRpb25hbGUgYmVoaW5kIHN0b3JpbmcgaHdpbnRpZCByYXRo ZXIgdGhhbiB0aGUgaXJxX2Rlc2MKPiBkaXJlY3RseT8KCldlbGwsIHRoaXMgaXMgYmVjYXVzZSBL Vk0gZG9lcyBpdCB0aGlzIHdheSwgZm9yIGFic3RyYWN0aW9uIHJlYXNvbnMsCm1vc3RseS4gTG9v a2luZyBvdmVyIHRoZSB1c2VycyBJIHNlZSB0aGF0IG1vc3RseSB3ZSBhcmUgaW5kZWVkIGFmdGVy IHRoZQpzdHJ1Y3QgaXJxX2Rlc2MuIEJ1dCBpdCB3b3VsZCBhbHNvIGluY3JlYXNlIHN0cnVjdCB2 Z2ljX2lycSBieSA0IGJ5dGVzIDstKQoKSSBjb3VsZCB0cnkgdG8gbWFrZSB0byBtYWtlIHRoZSBj aGFuZ2UsIGJ1dCBhbSBub3QgZnVsbHkgY29udmluY2VkLgoKV2hhdCBhcmUgeW91ciBhcmd1bWVu dHMgZm9yIHRoYXQgY2hhbmdlPwoKQ2hlZXJzLApBbmRyZS4KCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGNvbmZpZyA9IGlycS0+Y29uZmlnOwo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDC oMKgwqDCoMKgwqAgZWxzZQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXNjID0gTlVMTDsK Pj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfcXVldWVfaXJxX3VubG9jayh2Y3B1LT5kb21haW4sIGly cSwgZmxhZ3MpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX3B1dF9pcnEodmNwdS0+ZG9t YWluLCBpcnEpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRlc2MgKQo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB2Z2ljX2hhbmRsZV9oYXJkd2FyZV9pcnEoZGVzYywgY29uZmlnLCB0 cnVlKTsKPiAKPiBUaGlzIGlzIHNsaWdodGx5IHN0cmFuZ2UuIFlvdSBoYW5kbGUgdGhlIGhhcmR3 YXJlIElSUSBvdXRzaWRlIHRoZQo+IHZpcnR1YWwgSVJRIGxvY2suIEl0IG1lYW5zIHRoYXQgdGhl IGhhcmR3YXJlIElSUSBtYXkgZW5kIHVwIGVuYWJsZWQgYnV0Cj4gdGhlIHZpcnR1YWwgSVJRIGRp c2FibGVkLgo+IAo+PiArwqDCoMKgIH0KPj4gK30KPj4gKwo+PiArdm9pZCB2Z2ljX21taW9fd3Jp dGVfY2VuYWJsZShzdHJ1Y3QgdmNwdSAqdmNwdSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHBhZGRyX3QgYWRkciwgdW5zaWduZWQgaW50IGxlbiwKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgdmFsKQo+PiArewo+PiArwqDCoMKg IHUzMiBpbnRpZCA9IFZHSUNfQUREUl9UT19JTlRJRChhZGRyLCAxKTsKPj4gK8KgwqDCoCBpbnQg aTsKPj4gKwo+PiArwqDCoMKgIGZvcl9lYWNoX3NldF9iaXQoIGksICZ2YWwsIGxlbiAqIDggKQo+ PiArwqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCB2Z2ljX2lycSAqaXJxOwo+PiAr wqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4gK8KgwqDCoMKgwqDCoMKgIGly cV9kZXNjX3QgKmRlc2M7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGlycSA9IHZnaWNfZ2V0X2ly cSh2Y3B1LT5kb21haW4sIHZjcHUsIGludGlkICsgaSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBzcGlu X2xvY2tfaXJxc2F2ZSgmaXJxLT5pcnFfbG9jaywgZmxhZ3MpOwo+PiArCj4+ICvCoMKgwqDCoMKg wqDCoCBpcnEtPmVuYWJsZWQgPSBmYWxzZTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBp cnEtPmh3ICkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVzYyA9IGlycV90b19kZXNjKGly cS0+aHdpbnRpZCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBlbHNlCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGRlc2MgPSBOVUxMOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBzcGluX3VubG9ja19p cnFyZXN0b3JlKCZpcnEtPmlycV9sb2NrLCBmbGFncyk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2lj X3B1dF9pcnEodmNwdS0+ZG9tYWluLCBpcnEpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAo IGRlc2MgKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2Z2ljX2hhbmRsZV9oYXJkd2FyZV9p cnEoZGVzYywgMCwgZmFsc2UpOwo+IAo+IFNhbWUgcmVtYXJrIGhlcmUuCj4gCj4+ICvCoMKgwqAg fQo+PiArfQo+PiArCj4+IMKgIHN0YXRpYyBpbnQgbWF0Y2hfcmVnaW9uKGNvbnN0IHZvaWQgKmtl eSwgY29uc3Qgdm9pZCAqZWx0KQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgY29uc3QgdW5zaWduZWQg aW50IG9mZnNldCA9ICh1bnNpZ25lZCBsb25nKWtleTsKPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo L2FybS92Z2ljL3ZnaWMtbW1pby5oCj4+IGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmgK Pj4gaW5kZXggMTBhYzY4MjI5Ni4uOWYzNGJkMWFlYyAxMDA2NDQKPj4gLS0tIGEveGVuL2FyY2gv YXJtL3ZnaWMvdmdpYy1tbWlvLmgKPj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlv LmgKPj4gQEAgLTEzNyw2ICsxMzcsMTcgQEAgdW5zaWduZWQgbG9uZyB2Z2ljX21taW9fcmVhZF9y YW8oc3RydWN0IHZjcHUgKnZjcHUsCj4+IMKgIHZvaWQgdmdpY19tbWlvX3dyaXRlX3dpKHN0cnVj dCB2Y3B1ICp2Y3B1LCBwYWRkcl90IGFkZHIsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBsZW4sIHVuc2lnbmVkIGxvbmcg dmFsKTsKPj4gwqAgK3Vuc2lnbmVkIGxvbmcgdmdpY19tbWlvX3JlYWRfZW5hYmxlKHN0cnVjdCB2 Y3B1ICp2Y3B1LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGFk ZHJfdCBhZGRyLCB1bnNpZ25lZCBpbnQgbGVuKTsKPiAKPiBJbmRlbnRhdGlvbi4KPiAKPj4gKwo+ PiArdm9pZCB2Z2ljX21taW9fd3JpdGVfc2VuYWJsZShzdHJ1Y3QgdmNwdSAqdmNwdSwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBhZGRyX3QgYWRkciwgdW5zaWduZWQgaW50 IGxlbiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcg dmFsKTsKPiAKPiBEaXR0by4KPiAKPj4gKwo+PiArdm9pZCB2Z2ljX21taW9fd3JpdGVfY2VuYWJs ZShzdHJ1Y3QgdmNwdSAqdmNwdSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHBhZGRyX3QgYWRkciwgdW5zaWduZWQgaW50IGxlbiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgdmFsKTsKPiAKPiBEaXR0by4KPiAKPj4gKwo+PiDC oCB1bnNpZ25lZCBpbnQgdmdpY192Ml9pbml0X2Rpc3RfaW9kZXYoc3RydWN0IHZnaWNfaW9fZGV2 aWNlICpkZXYpOwo+PiDCoCDCoCAvKiBGaW5kIHRoZSBwcm9wZXIgcmVnaXN0ZXIgaGFuZGxlciBl bnRyeSBnaXZlbiBhIGNlcnRhaW4gYWRkcmVzcwo+PiBvZmZzZXQgKi8KPj4KPiAKPiBDaGVlcnMs Cj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs