From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [RFC PATCH 02/24] ARM: GICv3: allocate LPI pending and property table Date: Tue, 25 Oct 2016 18:10:57 -0700 (PDT) Message-ID: References: <20160928182457.12433-1-andre.przywara@arm.com> <20160928182457.12433-3-andre.przywara@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 1bzCkD-0006Ba-Fn for xen-devel@lists.xenproject.org; Wed, 26 Oct 2016 01:11:05 +0000 In-Reply-To: <20160928182457.12433-3-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andre Przywara Cc: xen-devel@lists.xenproject.org, Julien Grall , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmUsCgpTb3JyeSBmb3IgdGhlIGxhdGUgcmVwbHksIEknbGwgdHJ5IHRvIGJlIGZhc3Rl ciBmb3IgdGhlIG5leHQgcm91bmRzIG9mCnJldmlldy4gVGhlIHBhdGNoIGxvb2tzIGdvb2QgZm9y IGEgZmlyc3QgaXRlcmF0aW9uLiBTb21lIGNvbW1lbnRzIGJlbG93LgoKT24gV2VkLCAyOCBTZXAg MjAxNiwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6Cj4gVGhlIEFSTSBHSUN2MyBJVFMgcHJvdmlkZXMg YSBuZXcga2luZCBvZiBpbnRlcnJ1cHQgY2FsbGVkIExQSXMuCj4gVGhlIHBlbmRpbmcgYml0cyBh bmQgdGhlIGNvbmZpZ3VyYXRpb24gZGF0YSAocHJpb3JpdHksIGVuYWJsZSBiaXRzKSBmb3IKPiB0 aG9zZSBMUElzIGFyZSBzdG9yZWQgaW4gdGFibGVzIGluIG5vcm1hbCBtZW1vcnksIHdoaWNoIHNv ZnR3YXJlIGhhcyB0bwo+IHByb3ZpZGUgdG8gdGhlIGhhcmR3YXJlLgo+IEFsbG9jYXRlIHRoZSBy ZXF1aXJlZCBtZW1vcnksIGluaXRpYWxpemUgaXQgYW5kIGhhbmQgaXQgb3ZlciB0byBlYWNoCj4g SVRTLiBXZSBsaW1pdCB0aGUgbnVtYmVyIG9mIExQSXMgd2UgdXNlIHdpdGggYSBjb21waWxlIHRp bWUgY29uc3RhbnQgdG8KPiBhdm9pZCB3YXN0aW5nIG1lbW9yeS4KPiAKPiBTaWduZWQtb2ZmLWJ5 OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6eXdhcmFAYXJtLmNvbT4KPiAtLS0KPiAgeGVuL2Fy Y2gvYXJtL0tjb25maWcgICAgICAgICAgICAgIHwgIDYgKysrKwo+ICB4ZW4vYXJjaC9hcm0vZWZp L2VmaS1ib290LmggICAgICAgfCAgMSAtCj4gIHhlbi9hcmNoL2FybS9naWMtaXRzLmMgICAgICAg ICAgICB8IDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICB4ZW4v YXJjaC9hcm0vZ2ljLXYzLmMgICAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrKwo+ICB4ZW4v aW5jbHVkZS9hc20tYXJtL2NhY2hlLmggICAgICAgfCAgNCArKysKPiAgeGVuL2luY2x1ZGUvYXNt LWFybS9naWMtaXRzLmggICAgIHwgMjIgKysrKysrKysrKystCj4gIHhlbi9pbmNsdWRlL2FzbS1h cm0vZ2ljX3YzX2RlZnMuaCB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKy0KPiAgNyBmaWxl cyBjaGFuZ2VkLCAxODEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL0tjb25maWcgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZwo+IGluZGV4 IDlmZTNiOGUuLjY2ZTJiYjggMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL0tjb25maWcKPiAr KysgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZwo+IEBAIC01MCw2ICs1MCwxMiBAQCBjb25maWcgSEFT X0lUUwo+ICAgICAgICAgIGRlcGVuZHMgb24gQVJNXzY0Cj4gICAgICAgICAgZGVwZW5kcyBvbiBI QVNfR0lDVjMKPiAgCj4gK2NvbmZpZyBIT1NUX0xQSV9CSVRTCj4gKyAgICAgICAgZGVwZW5kcyBv biBIQVNfSVRTCj4gKyAgICAgICAgaW50ICJNYXhpbXVtIGJpdHMgZm9yIEdJQ3YzIGhvc3QgTFBJ cyAoMTQtMzIpIgo+ICsgICAgICAgIHJhbmdlIDE0IDMyCj4gKyAgICAgICAgZGVmYXVsdCAiMjAi Cj4gKwo+ICBjb25maWcgQUxURVJOQVRJVkUKPiAgCWJvb2wKPiAgCj4gZGlmZiAtLWdpdCBhL3hl bi9hcmNoL2FybS9lZmkvZWZpLWJvb3QuaCBiL3hlbi9hcmNoL2FybS9lZmkvZWZpLWJvb3QuaAo+ IGluZGV4IDA0NWQ2Y2UuLmRjNjRhZWMgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL2VmaS9l ZmktYm9vdC5oCj4gKysrIGIveGVuL2FyY2gvYXJtL2VmaS9lZmktYm9vdC5oCj4gQEAgLTEwLDcg KzEwLDYgQEAKPiAgI2luY2x1ZGUgImVmaS1kb20wLmgiCj4gIAo+ICB2b2lkIG5vcmV0dXJuIGVm aV94ZW5fc3RhcnQodm9pZCAqZmR0X3B0ciwgdWludDMyX3QgZmR0X3NpemUpOwo+IC12b2lkIF9f Zmx1c2hfZGNhY2hlX2FyZWEoY29uc3Qgdm9pZCAqdmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7 Cj4gIAo+ICAjZGVmaW5lIERFVklDRV9UUkVFX0dVSUQgXAo+ICB7MHhiMWI2MjFkNSwgMHhmMTlj LCAweDQxYTUsIHsweDgzLCAweDBiLCAweGQ5LCAweDE1LCAweDJjLCAweDY5LCAweGFhLCAweGUw fX0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy1pdHMuYyBiL3hlbi9hcmNoL2FybS9n aWMtaXRzLmMKPiBpbmRleCAwZjQyYTc3Li5iNTJkZmYzIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNo L2FybS9naWMtaXRzLmMKPiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLWl0cy5jCj4gQEAgLTIwLDEw ICsyMCw4NiBAQAo+ICAjaW5jbHVkZSA8eGVuL2xpYi5oPgo+ICAjaW5jbHVkZSA8eGVuL2Rldmlj ZV90cmVlLmg+Cj4gICNpbmNsdWRlIDx4ZW4vbGliZmR0L2xpYmZkdC5oPgo+ICsjaW5jbHVkZSA8 YXNtL3AybS5oPgo+ICAjaW5jbHVkZSA8YXNtL2dpYy5oPgo+ICAjaW5jbHVkZSA8YXNtL2dpY192 M19kZWZzLmg+Cj4gICNpbmNsdWRlIDxhc20vZ2ljLWl0cy5oPgo+ICAKPiArLyogR2xvYmFsIHN0 YXRlICovCj4gK3N0YXRpYyBzdHJ1Y3Qgewo+ICsgICAgdWludDhfdCAqbHBpX3Byb3BlcnR5Owo+ ICsgICAgaW50IGhvc3RfbHBpX2JpdHM7Cj4gK30gbHBpX2RhdGE7Cj4gKwo+ICsvKiBQZW5kaW5n IHRhYmxlIGZvciBlYWNoIHJlZGlzdHJpYnV0b3IgKi8KPiArc3RhdGljIERFRklORV9QRVJfQ1BV KHZvaWQgKiwgcGVuZGluZ190YWJsZSk7Cj4gKwo+ICsjZGVmaW5lIE1BWF9IT1NUX0xQSV9CSVRT ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoKVG8gYXZv aWQgY29uZnVzaW9uLCBJIHdvdWxkIGNhbGwgdGhpcyBNQVhfUEhZU19MUElfQklUUwoKCj4gKyAg ICAgICAgbWluX3QodW5zaWduZWQgaW50LCBscGlfZGF0YS5ob3N0X2xwaV9iaXRzLCBDT05GSUdf SE9TVF9MUElfQklUUykKPiArI2RlZmluZSBNQVhfSE9TVF9MUElTICAgKEJJVChNQVhfSE9TVF9M UElfQklUUykgLSA4MTkyKQoKQW5kIHRoaXMgTUFYX1BIWVNfTFBJUwoKCj4gK3VpbnQ2NF90IGdp Y3YzX2xwaV9hbGxvY2F0ZV9wZW5kdGFibGUodm9pZCkKPiArewo+ICsgICAgdWludDY0X3QgcmVn LCBhdHRyOwo+ICsgICAgdm9pZCAqcGVuZHRhYmxlOwoKSSB3b3VsZCBpbnRyb2R1Y2UgYSBjaGVj ayB0byBtYWtlIHN1cmUgdGhhdCB0aGlzX2NwdShwZW5kaW5nX3RhYmxlKSA9PSBOVUxMLgoKCj4g KyAgICBhdHRyICA9IEdJQ19CQVNFUl9DQUNIRV9SYVdhV2IgPDwgR0lDUl9QRU5EQkFTRVJfSU5O RVJfQ0FDSEVBQklMSVRZX1NISUZUOwo+ICsgICAgYXR0ciB8PSBHSUNfQkFTRVJfQ0FDSEVfU2Ft ZUFzSW5uZXIgPDwgR0lDUl9QRU5EQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX1NISUZUOwo+ICsg ICAgYXR0ciB8PSBHSUNfQkFTRVJfSW5uZXJTaGFyZWFibGUgPDwgR0lDUl9QRU5EQkFTRVJfU0hB UkVBQklMSVRZX1NISUZUOwo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBUaGUgcGVuZGluZyB0YWJs ZSBob2xkcyBvbmUgYml0IHBlciBMUEksIHNvIHdlIG5lZWQgdGhyZWUgYml0cyBsZXNzCj4gKyAg ICAgKiB0aGFuIHRoZSBudW1iZXIgb2YgTFBJX0JJVHMuCgpXaHkgMyBiaXQgbGVzcz8gUGxlYXNl IGFkZCBtb3JlIGluZm8gb24gaG93IHlvdSBjYW1lIHVwIHdpdGggMy4KCgo+ICAgICAgICAgQnV0 IHRoZSBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgZnJvbSB0aGUKPiArICAgICAqIElUUyBpcyA2NEss IHNvIG1ha2Ugb3JkZXIgYXQgbGVhc3QgMTYgKC0xMikuCgpEb2VzIGl0IG5lZWQgdG8gYmUgNjRL IGFsaWduZWQgb3IgZG9lcyBpdCBuZWVkIHRvIGJlIGF0IGxlYXN0IDY0SyBpbgpzaXplPyBUaGF0 IG1ha2VzIGEgYmlnIGRpZmZlcmVuY2UuIElmIGl0IGp1c3QgbmVlZHMgdG8gYmUgNjRLIGFsaWdu ZWQsCnlvdSBjYW4gZG8gdGhhdCB3aXRoIHhtYWxsb2MuCgoKPiArICAgICAqLwo+ICsgICAgcGVu ZHRhYmxlID0gYWxsb2NfeGVuaGVhcF9wYWdlcyhNQVgobHBpX2RhdGEuaG9zdF9scGlfYml0cyAt IDMsIDE2KSAtIDEyLCAwKTsKClNob3VsZG4ndCB3ZSBiZSB1c2luZyBNQVhfSE9TVF9MUElfQklU UyBpbnN0ZWFkIG9mCmxwaV9kYXRhLmhvc3RfbHBpX2JpdHMgdG8gbWFrZSB0aGlzIGNhbGN1bGF0 aW9uPwoKCj4gKyAgICBpZiAoICFwZW5kdGFibGUgKQo+ICsgICAgICAgIHJldHVybiAwOwo+ICsK PiArICAgIG1lbXNldChwZW5kdGFibGUsIDAsIEJJVChscGlfZGF0YS5ob3N0X2xwaV9iaXRzIC0g MykpOwoKZmx1c2hfZGNhY2hlPwoKCj4gKyAgICB0aGlzX2NwdShwZW5kaW5nX3RhYmxlKSA9IHBl bmR0YWJsZTsKPiArCj4gKyAgICByZWcgID0gYXR0ciB8IEdJQ1JfUEVOREJBU0VSX1BUWjsKPiAr ICAgIHJlZyB8PSB2aXJ0X3RvX21hZGRyKHBlbmR0YWJsZSkgJiBHRU5NQVNLKDUxLCAxNik7Cj4g Kwo+ICsgICAgcmV0dXJuIHJlZzsKPiArfQo+ICsKPiArdWludDY0X3QgZ2ljdjNfbHBpX2dldF9w cm9wdGFibGUoKQo+ICt7Cj4gKyAgICB1aW50NjRfdCBhdHRyOwo+ICsgICAgc3RhdGljIHVpbnQ2 NF90IHJlZyA9IDA7Cj4gKwo+ICsgICAgLyogVGhlIHByb3BlcnR5IHRhYmxlIGlzIHNoYXJlZCBh Y3Jvc3MgYWxsIHJlZGlzdHJpYnV0b3JzLiAqLwo+ICsgICAgaWYgKCByZWcgKQo+ICsgICAgICAg IHJldHVybiByZWc7CgpDYW4ndCB5b3UganVzdCB1c2UgbHBpX2RhdGEubHBpX3Byb3BlcnR5ICE9 IE5VTEwgaW5zdGVhZCBvZiBpbnRyb2R1Y2luZwphIG5ldyBzdGF0aWMgbG9jYWwgdmFyaWFibGU/ CgoKPiArICAgIGF0dHIgID0gR0lDX0JBU0VSX0NBQ0hFX1JhV2FXYiA8PCBHSUNSX1BFTkRCQVNF Ul9JTk5FUl9DQUNIRUFCSUxJVFlfU0hJRlQ7Cj4gKyAgICBhdHRyIHw9IEdJQ19CQVNFUl9DQUNI RV9TYW1lQXNJbm5lciA8PCBHSUNSX1BFTkRCQVNFUl9PVVRFUl9DQUNIRUFCSUxJVFlfU0hJRlQ7 Cj4gKyAgICBhdHRyIHw9IEdJQ19CQVNFUl9Jbm5lclNoYXJlYWJsZSA8PCBHSUNSX1BFTkRCQVNF Ul9TSEFSRUFCSUxJVFlfU0hJRlQ7Cj4gKwo+ICsgICAgbHBpX2RhdGEubHBpX3Byb3BlcnR5ID0g YWxsb2NfeGVuaGVhcF9wYWdlcyhNQVhfSE9TVF9MUElfQklUUyAtIDEyLCAwKTsKClBsZWFzZSBh ZGQgYSBjb21tZW50IG9uIGhvdyB0aGUgb3JkZXIgaXMgY2FsY3VsYXRlZC4KCgo+ICsgICAgaWYg KCAhbHBpX2RhdGEubHBpX3Byb3BlcnR5ICkKPiArICAgICAgICByZXR1cm4gMDsKPiArCj4gKyAg ICBtZW1zZXQobHBpX2RhdGEubHBpX3Byb3BlcnR5LCBHSUNfUFJJX0lSUSB8IExQSV9QUk9QX1JF UzEsIE1BWF9IT1NUX0xQSVMpOwo+ICsgICAgX19mbHVzaF9kY2FjaGVfYXJlYShscGlfZGF0YS5s cGlfcHJvcGVydHksIE1BWF9IT1NUX0xQSVMpOwo+ICsKPiArICAgIHJlZyAgPSBhdHRyIHwgKChN QVhfSE9TVF9MUElfQklUUyAtIDEpIDw8IDApOwo+ICsgICAgcmVnIHw9IHZpcnRfdG9fbWFkZHIo bHBpX2RhdGEubHBpX3Byb3BlcnR5KSAmIEdFTk1BU0soNTEsIDEyKTsKPiArCj4gKyAgICByZXR1 cm4gcmVnOwo+ICt9Cj4gKwo+ICtpbnQgZ2ljdjNfbHBpX2luaXRfaG9zdF9scGlzKGludCBscGlf Yml0cykKPiArewo+ICsgICAgbHBpX2RhdGEuaG9zdF9scGlfYml0cyA9IGxwaV9iaXRzOwo+ICsK PiArICAgIHByaW50aygiR0lDdjM6IHVzaW5nIGF0IG1vc3QgJWxkIExQSXMgb24gdGhlIGhvc3Qu XG4iLCBNQVhfSE9TVF9MUElTKTsKPiArCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiAgdm9p ZCBnaWN2M19pdHNfZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpCj4g IHsKPiAgICAgIGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqaXRzID0gTlVMTDsKPiBkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My5jIGIveGVuL2FyY2gvYXJtL2dpYy12My5jCj4g aW5kZXggMjM4ZGE4NC4uMjUzNGFhNSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYz LmMKPiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMKPiBAQCAtNTQ2LDYgKzU0Niw5IEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBnaWN2M19kaXN0X2luaXQodm9pZCkKPiAgICAgIHR5cGUgPSByZWFk bF9yZWxheGVkKEdJQ0QgKyBHSUNEX1RZUEVSKTsKPiAgICAgIG5yX2xpbmVzID0gMzIgKiAoKHR5 cGUgJiBHSUNEX1RZUEVfTElORVMpICsgMSk7Cj4gIAo+ICsgICAgaWYgKCB0eXBlICYgR0lDRF9U WVBFX0xQSVMgKQo+ICsgICAgICAgIGdpY3YzX2xwaV9pbml0X2hvc3RfbHBpcygoKHR5cGUgPj4g R0lDRF9UWVBFX0lEX0JJVFNfU0hJRlQpICYgMHgxZikgKyAxKTsKClBsZWFzZSAjZGVmaW5lIGEg bWFzayBpbnN0ZWFkIG9mIHVzaW5nIDB4MWYKCgo+ICsKPiAgICAgIHByaW50aygiR0lDdjM6ICVk IGxpbmVzLCAoSUlEICU4Ljh4KS5cbiIsCj4gICAgICAgICAgICAgbnJfbGluZXMsIHJlYWRsX3Jl bGF4ZWQoR0lDRCArIEdJQ0RfSUlEUikpOwo+ICAKPiBAQCAtNjE1LDYgKzYxOCwyNiBAQCBzdGF0 aWMgaW50IGdpY3YzX2VuYWJsZV9yZWRpc3Qodm9pZCkKPiAgCj4gICAgICByZXR1cm4gMDsKPiAg fQo+ICtzdGF0aWMgdm9pZCBnaWN2M19yZGlzdF9pbml0X2xwaXModm9pZCBfX2lvbWVtICogcmRp c3RfYmFzZSkKPiArewo+ICsgICAgdWludDMyX3QgcmVnOwo+ICsgICAgdWludDY0X3QgdGFibGVf cmVnOwo+ICsKPiArICAgIGlmICggbGlzdF9lbXB0eSgmaG9zdF9pdHNfbGlzdCkgKQo+ICsgICAg ICAgIHJldHVybjsKPiArCj4gKyAgICAvKiBNYWtlIHN1cmUgTFBJcyBhcmUgZGlzYWJsZWQgYmVm b3JlIHNldHRpbmcgdXAgdGhlIEJBU0VScy4gKi8KPiArICAgIHJlZyA9IHJlYWRsX3JlbGF4ZWQo cmRpc3RfYmFzZSArIEdJQ1JfQ1RMUik7Cj4gKyAgICB3cml0ZWxfcmVsYXhlZChyZWcgJiB+R0lD Ul9DVExSX0VOQUJMRV9MUElTLCByZGlzdF9iYXNlICsgR0lDUl9DVExSKTsKPiArCj4gKyAgICB0 YWJsZV9yZWcgPSBnaWN2M19scGlfYWxsb2NhdGVfcGVuZHRhYmxlKCk7Cj4gKyAgICBpZiAoIHRh YmxlX3JlZyApCj4gKyAgICAgICAgd3JpdGVxX3JlbGF4ZWQodGFibGVfcmVnLCByZGlzdF9iYXNl ICsgR0lDUl9QRU5EQkFTRVIpOwoKTWF5YmUgd2Ugd2FudCB0byByZXR1cm4gaW4gY2FzZSB0YWJs ZV9yZWcgPT0gTlVMTCA/CgoKPiArICAgIHRhYmxlX3JlZyA9IGdpY3YzX2xwaV9nZXRfcHJvcHRh YmxlKCk7Cj4gKyAgICBpZiAoIHRhYmxlX3JlZyApCj4gKyAgICAgICAgd3JpdGVxX3JlbGF4ZWQo dGFibGVfcmVnLCByZGlzdF9iYXNlICsgR0lDUl9QUk9QQkFTRVIpOwo+ICt9Cj4gIAo+ICBzdGF0 aWMgaW50IF9faW5pdCBnaWN2M19wb3B1bGF0ZV9yZGlzdCh2b2lkKQo+ICB7Cj4gQEAgLTY1OCw2 ICs2ODEsMTAgQEAgc3RhdGljIGludCBfX2luaXQgZ2ljdjNfcG9wdWxhdGVfcmRpc3Qodm9pZCkK PiAgICAgICAgICAgICAgaWYgKCAodHlwZXIgPj4gMzIpID09IGFmZiApCj4gICAgICAgICAgICAg IHsKPiAgICAgICAgICAgICAgICAgIHRoaXNfY3B1KHJiYXNlKSA9IHB0cjsKPiArCj4gKyAgICAg ICAgICAgICAgICBpZiAoIHR5cGVyICYgR0lDUl9UWVBFUl9QTFBJUyApCj4gKyAgICAgICAgICAg ICAgICAgICAgZ2ljdjNfcmRpc3RfaW5pdF9scGlzKHB0cik7Cj4gKwo+ICAgICAgICAgICAgICAg ICAgcHJpbnRrKCJHSUN2MzogQ1BVJWQ6IEZvdW5kIHJlZGlzdHJpYnV0b3IgaW4gcmVnaW9uICVk IEAlcFxuIiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgc21wX3Byb2Nlc3Nvcl9pZCgpLCBp LCBwdHIpOwo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS1hcm0vY2FjaGUuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vY2FjaGUuaAo+IGlu ZGV4IDJkZTY1NjQuLmFmOTZlZWUgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9j YWNoZS5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9jYWNoZS5oCj4gQEAgLTcsNiArNywx MCBAQAo+ICAjZGVmaW5lIEwxX0NBQ0hFX1NISUZUICAoQ09ORklHX0FSTV9MMV9DQUNIRV9TSElG VCkKPiAgI2RlZmluZSBMMV9DQUNIRV9CWVRFUyAgKDEgPDwgTDFfQ0FDSEVfU0hJRlQpCj4gIAo+ ICsjaWZuZGVmIF9fQVNTRU1CTFlfXwo+ICt2b2lkIF9fZmx1c2hfZGNhY2hlX2FyZWEoY29uc3Qg dm9pZCAqdmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Cj4gKyNlbmRpZgo+ICsKPiAgI2RlZmlu ZSBfX3JlYWRfbW9zdGx5IF9fc2VjdGlvbigiLmRhdGEucmVhZF9tb3N0bHkiKQo+ICAKPiAgI2Vu ZGlmCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljLWl0cy5oIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9naWMtaXRzLmgKPiBpbmRleCAyZjVjNTFjLi40OGM2Yzc4IDEwMDY0NAo+ IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljLWl0cy5oCj4gKysrIGIveGVuL2luY2x1ZGUv YXNtLWFybS9naWMtaXRzLmgKPiBAQCAtMzYsMTIgKzM2LDMyIEBAIGV4dGVybiBzdHJ1Y3QgbGlz dF9oZWFkIGhvc3RfaXRzX2xpc3Q7Cj4gIC8qIFBhcnNlIHRoZSBob3N0IERUIGFuZCBwaWNrIHVw IGFsbCBob3N0IElUU2VzLiAqLwo+ICB2b2lkIGdpY3YzX2l0c19kdF9pbml0KGNvbnN0IHN0cnVj dCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSk7Cj4gIAo+ICsvKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6 ZSB0YWJsZXMgZm9yIGVhY2ggaG9zdCByZWRpc3RyaWJ1dG9yLgo+ICsgKiBSZXR1cm5zIHRoZSBy ZXNwZWN0aXZlIHtQUk9QLFBFTkR9QkFTRVIgcmVnaXN0ZXIgdmFsdWUuCj4gKyAqLwo+ICt1aW50 NjRfdCBnaWN2M19scGlfZ2V0X3Byb3B0YWJsZSh2b2lkKTsKPiArdWludDY0X3QgZ2ljdjNfbHBp X2FsbG9jYXRlX3BlbmR0YWJsZSh2b2lkKTsKPiArCj4gKy8qIEluaXRpYWxpemUgdGhlIGhvc3Qg c3RydWN0dXJlcyBmb3IgTFBJcy4gKi8KPiAraW50IGdpY3YzX2xwaV9pbml0X2hvc3RfbHBpcyhp bnQgbnJfbHBpcyk7Cj4gKwo+ICAjZWxzZQo+ICAKPiAgc3RhdGljIGlubGluZSB2b2lkIGdpY3Yz X2l0c19kdF9pbml0KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkKPiAgewo+ICB9 Cj4gLQo+ICtzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGdpY3YzX2xwaV9nZXRfcHJvcHRhYmxlKHZv aWQpCj4gK3sKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gK3N0YXRpYyBpbmxpbmUgdWludDY0X3Qg Z2ljdjNfbHBpX2FsbG9jYXRlX3BlbmR0YWJsZSh2b2lkKQo+ICt7Cj4gKyAgICByZXR1cm4gMDsK PiArfQo+ICtzdGF0aWMgaW5saW5lIGludCBnaWN2M19scGlfaW5pdF9ob3N0X2xwaXMoaW50IG5y X2xwaXMpCj4gK3sKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gICNlbmRpZiAvKiBDT05GSUdfSEFT X0lUUyAqLwo+ICAKPiAgI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwo+IGRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19kZWZzLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dp Y192M19kZWZzLmgKPiBpbmRleCA2YmQyNWE1Li5kYTVmYjc3IDEwMDY0NAo+IC0tLSBhL3hlbi9p bmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2RlZnMuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0v Z2ljX3YzX2RlZnMuaAo+IEBAIC00NCw3ICs0NCw4IEBACj4gICNkZWZpbmUgR0lDQ19TUkVfRUwy X0VORUwxICAgICAgICAgICAoMVVMIDw8IDMpCj4gIAo+ICAvKiBBZGRpdGlvbmFsIGJpdHMgaW4g R0lDRF9UWVBFUiBkZWZpbmVkIGJ5IEdJQ3YzICovCj4gLSNkZWZpbmUgR0lDRF9UWVBFX0lEX0JJ VFNfU0hJRlQgMTkKPiArI2RlZmluZSBHSUNEX1RZUEVfSURfQklUU19TSElGVCAgICAgIDE5Cj4g KyNkZWZpbmUgR0lDRF9UWVBFX0xQSVMgICAgICAgICAgICAgICAoMVUgPDwgMTcpCj4gIAo+ICAj ZGVmaW5lIEdJQ0RfQ1RMUl9SV1AgICAgICAgICAgICAgICAgKDFVTCA8PCAzMSkKPiAgI2RlZmlu ZSBHSUNEX0NUTFJfQVJFX05TICAgICAgICAgICAgICgxVSA8PCA0KQo+IEBAIC05NSwxMiArOTYs NTcgQEAKPiAgI2RlZmluZSBHSUNSX0lHUlBNT0RSMCAgICAgICAgICAgICAgICgweDBEMDApCj4g ICNkZWZpbmUgR0lDUl9OU0FDUiAgICAgICAgICAgICAgICAgICAoMHgwRTAwKQo+ICAKPiArI2Rl ZmluZSBHSUNSX0NUTFJfRU5BQkxFX0xQSVMgICAgICAgICgxVSA8PCAwKQo+ICAjZGVmaW5lIEdJ Q1JfVFlQRVJfUExQSVMgICAgICAgICAgICAgKDFVIDw8IDApCj4gICNkZWZpbmUgR0lDUl9UWVBF Ul9WTFBJUyAgICAgICAgICAgICAoMVUgPDwgMSkKPiAgI2RlZmluZSBHSUNSX1RZUEVSX0xBU1Qg ICAgICAgICAgICAgICgxVSA8PCA0KQo+ICAKPiArI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfbkNu QiAgICAgICAgIDBVTEwKPiArI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfU2FtZUFzSW5uZXIgIDBV TEwKPiArI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfbkMgICAgICAgICAgIDFVTEwKPiArI2RlZmlu ZSBHSUNfQkFTRVJfQ0FDSEVfUmFXdCAgICAgICAgIDJVTEwKPiArI2RlZmluZSBHSUNfQkFTRVJf Q0FDSEVfUmFXYiAgICAgICAgIDNVTEwKPiArI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfV2FXdCAg ICAgICAgIDRVTEwKPiArI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfV2FXYiAgICAgICAgIDVVTEwK PiArI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfUmFXYVd0ICAgICAgIDZVTEwKPiArI2RlZmluZSBH SUNfQkFTRVJfQ0FDSEVfUmFXYVdiICAgICAgIDdVTEwKPiArI2RlZmluZSBHSUNfQkFTRVJfQ0FD SEVfTUFTSyAgICAgICAgIDdVTEwKPiArI2RlZmluZSBHSUNfQkFTRVJfTm9uU2hhcmVhYmxlICAg ICAgIDBVTEwKPiArI2RlZmluZSBHSUNfQkFTRVJfSW5uZXJTaGFyZWFibGUgICAgIDFVTEwKPiAr I2RlZmluZSBHSUNfQkFTRVJfT3V0ZXJTaGFyZWFibGUgICAgIDJVTEwKPiArCj4gKyNkZWZpbmUg R0lDUl9QUk9QQkFTRVJfU0hBUkVBQklMSVRZX1NISUZUICAgICAgICAgICAgICAgMTAKPiArI2Rl ZmluZSBHSUNSX1BST1BCQVNFUl9JTk5FUl9DQUNIRUFCSUxJVFlfU0hJRlQgICAgICAgICA3Cj4g KyNkZWZpbmUgR0lDUl9QUk9QQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX1NISUZUICAgICAgICAg NTYKPiArI2RlZmluZSBHSUNSX1BST1BCQVNFUl9TSEFSRUFCSUxJVFlfTUFTSyAgICAgICAgICAg ICAgICAgICAgIFwKPiArICAgICAgICAoM1VMIDw8IEdJQ1JfUFJPUEJBU0VSX1NIQVJFQUJJTElU WV9TSElGVCkKPiArI2RlZmluZSBHSUNSX1BST1BCQVNFUl9JTk5FUl9DQUNIRUFCSUxJVFlfTUFT SyAgICAgICAgICAgICAgIFwKPiArICAgICAgICAoN1VMIDw8IEdJQ1JfUFJPUEJBU0VSX0lOTkVS X0NBQ0hFQUJJTElUWV9TSElGVCkKPiArI2RlZmluZSBHSUNSX1BST1BCQVNFUl9PVVRFUl9DQUNI RUFCSUxJVFlfTUFTSyAgICAgICAgICAgICAgIFwKPiArICAgICAgICAoN1VMIDw8IEdJQ1JfUFJP UEJBU0VSX09VVEVSX0NBQ0hFQUJJTElUWV9TSElGVCkKPiArI2RlZmluZSBQUk9QQkFTRVJfUkVT MF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAoR0VO TUFTSyg2MywgNTkpIHwgR0VOTUFTSyg1NSwgNTIpIHwgR0VOTUFTSyg2LCA1KSkKPiArCj4gKyNk ZWZpbmUgR0lDUl9QRU5EQkFTRVJfU0hBUkVBQklMSVRZX1NISUZUICAgICAgICAgICAgICAgMTAK PiArI2RlZmluZSBHSUNSX1BFTkRCQVNFUl9JTk5FUl9DQUNIRUFCSUxJVFlfU0hJRlQgICAgICAg ICA3Cj4gKyNkZWZpbmUgR0lDUl9QRU5EQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX1NISUZUICAg ICAgICAgNTYKPiArI2RlZmluZSBHSUNSX1BFTkRCQVNFUl9TSEFSRUFCSUxJVFlfTUFTSyAgICAg ICAgICAgICAgICAgICAgIFwKPiArCSgzVUwgPDwgR0lDUl9QRU5EQkFTRVJfU0hBUkVBQklMSVRZ X1NISUZUKQo+ICsjZGVmaW5lIEdJQ1JfUEVOREJBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9NQVNL ICAgICAgICAgICAgICAgXAo+ICsJKDdVTCA8PCBHSUNSX1BFTkRCQVNFUl9JTk5FUl9DQUNIRUFC SUxJVFlfU0hJRlQpCj4gKyNkZWZpbmUgR0lDUl9QRU5EQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZ X01BU0sgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgKDdVTCA8PCBHSUNSX1BFTkRCQVNFUl9P VVRFUl9DQUNIRUFCSUxJVFlfU0hJRlQpCj4gKyNkZWZpbmUgR0lDUl9QRU5EQkFTRVJfUFRaICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKDYyKQo+ICsjZGVmaW5lIFBFTkRCQVNFUl9S RVMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgIChC SVQoNjMpIHwgR0VOTUFTSyg2MSwgNTkpIHwgR0VOTUFTSyg1NSwgNTIpIHwgICAgICAgXAo+ICsg ICAgICAgICBHRU5NQVNLKDE1LCAxMikgfCBHRU5NQVNLKDYsIDApKQo+ICsKPiAgI2RlZmluZSBE RUZBVUxUX1BNUl9WQUxVRSAgICAgICAgICAgIDB4ZmYKPiAgCj4gKyNkZWZpbmUgTFBJX1BST1Bf REVGQVVMVF9QUklPICAgICAgICAweGEwCj4gKyNkZWZpbmUgTFBJX1BST1BfUkVTMSAgICAgICAg ICAgICAgICAoMSA8PCAxKQo+ICsjZGVmaW5lIExQSV9QUk9QX0VOQUJMRUQgICAgICAgICAgICAg KDEgPDwgMCkKPiArCj4gICNkZWZpbmUgR0lDSF9WTUNSX0VPSSAgICAgICAgICAgICAgICAoMSA8 PCA5KQo+ICAjZGVmaW5lIEdJQ0hfVk1DUl9WRU5HMSAgICAgICAgICAgICAgKDEgPDwgMSkKPiAg Cj4gLS0gCj4gMi45LjAKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=