From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3301BC433F5 for ; Fri, 6 May 2022 18:57:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=xrS+xMBBwN+0rj4dATFdabI0gmQAI3qFOClXDch0zEE=; b=yeOhcWgUbLF6Ue Ck68j0u559beAsD/AAp7sZxd++HeEeglYasoQVmBjx6TYvjMp/Zz6Q4+5r8G95D8QHfopNLVmvikk UlFNuCS+xA2x6mK71QvbbjJHyTVQa2noZrY2BqKl7+CULEs79tpYSARPfLzlrL1nRAzRKbQsNT2v8 sA2mAntxRot722VReYQD1cFU2kw5P6sztfvUS++/+yoh2w7om/r5xRAi3DCVzX0h2Gt6GiXzZT3dZ K2r3ta5j+Ujir6dreULNEEHeKKxwcyItZP8tSGIRhh7tK8tIhirj3ruqhsh94M+aUGHMn0RTD2R2j eMnCd52u076svV4bcLdA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nn37Y-004knj-KJ; Fri, 06 May 2022 18:56:08 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nn37L-004klT-P3 for linux-arm-kernel@lists.infradead.org; Fri, 06 May 2022 18:55:57 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 98050B83607; Fri, 6 May 2022 18:55:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D496BC385A9; Fri, 6 May 2022 18:55:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1651863350; bh=UhAfnAGyYCHxB1vBUp7V89kxjGB3UeRzniR2RreuUlQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=r+1rMliRFufQ7rLwSbN62U4D7ZlKAoJYzA4UdAjH0Z+ozLXlPYMWb08hAWMcyhcV6 nfDnc+5fPk9xs7Lr34w45BU4IdmV0K0sFudVVlZ76LUHrdNCMLnyqhJK/h0sCob5o4 tSfjt4C4r5Ub3sM0EGCeYr/MSDRBfG43t5VZuGMrvRM4AxUIRAx+7gYPhVGZjAvm5g 1g1QH2k0pCQM3TeZfdK3qpVXsDexH+w0gEP/diUADtPKujnz5LL8tp2tDCJ+lMjV5p lZVjZHon5zcpMJaMmgd2AaluSdnPdqs2bjR+4TdIk5uhTSDFIx8Q33n0vpDntj3qUn dAlX8bly3W6rA== Received: by pali.im (Postfix) id E15891141; Fri, 6 May 2022 20:55:46 +0200 (CEST) Date: Fri, 6 May 2022 20:55:46 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Marc Zyngier Cc: Thomas Gleixner , Rob Herring , Bjorn Helgaas , Andrew Lunn , Gregory Clement , Sebastian Hesselbarth , Thomas Petazzoni , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Marek =?utf-8?B?QmVow7pu?= , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 2/6] irqchip/armada-370-xp: Implement SoC Error interrupts Message-ID: <20220506185546.n5rl3chyyauy4bjt@pali> References: <20220506134029.21470-1-pali@kernel.org> <20220506134029.21470-3-pali@kernel.org> <87mtfu7ccd.wl-maz@kernel.org> <20220506183051.wimo7p4nuqfnl2aj@pali> <8735hmijlu.wl-maz@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <8735hmijlu.wl-maz@kernel.org> User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220506_115556_132977_4F2893E0 X-CRM114-Status: GOOD ( 44.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpZGF5IDA2IE1heSAyMDIyIDE5OjQ3OjI1IE1hcmMgWnluZ2llciB3cm90ZToKPiBPbiBG cmksIDA2IE1heSAyMDIyIDE5OjMwOjUxICswMTAwLAo+IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5l bC5vcmc+IHdyb3RlOgo+ID4gCj4gPiBPbiBGcmlkYXkgMDYgTWF5IDIwMjIgMTk6MTk6NDYgTWFy YyBaeW5naWVyIHdyb3RlOgo+ID4gPiBPbiBGcmksIDA2IE1heSAyMDIyIDE0OjQwOjI1ICswMTAw LAo+ID4gPiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPiB3cm90ZToKPiA+ID4gPiAKPiA+ ID4gPiBNUElDIElSUSA0IGlzIHVzZWQgYXMgU29DIEVycm9yIFN1bW1hcnkgaW50ZXJydXB0IGFu ZCBwcm92aWRlcyBhY2Nlc3MgdG8KPiA+ID4gPiBhbm90aGVyIGhpZXJhcmNoeSBvZiBTb0MgRXJy b3IgaW50ZXJydXB0cy4gSW1wbGVtZW50IGEgbmV3IElSUSBjaGlwIGFuZAo+ID4gPiA+IGRvbWFp biBmb3IgYWNjZXNzaW5nIHRoaXMgSVJRIGhpZXJhcmNoeS4KPiA+ID4gPiAKPiA+ID4gPiBTaWdu ZWQtb2ZmLWJ5OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgo+ID4gPiA+IC0tLQo+ID4g PiA+ICBkcml2ZXJzL2lycWNoaXAvaXJxLWFybWFkYS0zNzAteHAuYyB8IDIxMyArKysrKysrKysr KysrKysrKysrKysrKysrKystCj4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKPiA+ID4gPiAKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9pcnFjaGlwL2lycS1hcm1hZGEtMzcwLXhwLmMgYi9kcml2ZXJzL2lycWNoaXAvaXJxLWFybWFk YS0zNzAteHAuYwo+ID4gPiA+IGluZGV4IGViZDc2ZWExYzY5Yi4uNzE1NzhiNjVmNWM4IDEwMDY0 NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvaXJxY2hpcC9pcnEtYXJtYWRhLTM3MC14cC5jCj4gPiA+ ID4gKysrIGIvZHJpdmVycy9pcnFjaGlwL2lycS1hcm1hZGEtMzcwLXhwLmMKPiA+ID4gPiBAQCAt MTE3LDYgKzExNyw4IEBACj4gPiA+ID4gIC8qIFJlZ2lzdGVycyByZWxhdGl2ZSB0byBtYWluX2lu dF9iYXNlICovCj4gPiA+ID4gICNkZWZpbmUgQVJNQURBXzM3MF9YUF9JTlRfQ09OVFJPTAkJKDB4 MDApCj4gPiA+ID4gICNkZWZpbmUgQVJNQURBXzM3MF9YUF9TV19UUklHX0lOVF9PRkZTCQkoMHgw NCkKPiA+ID4gPiArI2RlZmluZSBBUk1BREFfMzcwX1hQX0lOVF9TT0NfRVJSXzBfQ0FVU0VfT0ZG UwkoMHgyMCkKPiA+ID4gPiArI2RlZmluZSBBUk1BREFfMzcwX1hQX0lOVF9TT0NfRVJSXzFfQ0FV U0VfT0ZGUwkoMHgyNCkKPiA+ID4gPiAgI2RlZmluZSBBUk1BREFfMzcwX1hQX0lOVF9TRVRfRU5B QkxFX09GRlMJKDB4MzApCj4gPiA+ID4gICNkZWZpbmUgQVJNQURBXzM3MF9YUF9JTlRfQ0xFQVJf RU5BQkxFX09GRlMJKDB4MzQpCj4gPiA+ID4gICNkZWZpbmUgQVJNQURBXzM3MF9YUF9JTlRfU09V UkNFX0NUTChpcnEpCSgweDEwMCArIGlycSo0KQo+ID4gPiA+IEBAIC0xMzAsNiArMTMyLDggQEAK PiA+ID4gPiAgI2RlZmluZSBBUk1BREFfMzcwX1hQX0NQVV9JTlRBQ0tfT0ZGUwkJKDB4NDQpCj4g PiA+ID4gICNkZWZpbmUgQVJNQURBXzM3MF9YUF9JTlRfU0VUX01BU0tfT0ZGUwkJKDB4NDgpCj4g PiA+ID4gICNkZWZpbmUgQVJNQURBXzM3MF9YUF9JTlRfQ0xFQVJfTUFTS19PRkZTCSgweDRDKQo+ ID4gPiA+ICsjZGVmaW5lIEFSTUFEQV8zNzBfWFBfSU5UX1NPQ19FUlJfMF9NQVNLX09GRgkoMHg1 MCkKPiA+ID4gPiArI2RlZmluZSBBUk1BREFfMzcwX1hQX0lOVF9TT0NfRVJSXzFfTUFTS19PRkYJ KDB4NTQpCj4gPiA+ID4gICNkZWZpbmUgQVJNQURBXzM3MF9YUF9JTlRfRkFCUklDX01BU0tfT0ZG UwkoMHg1NCkKPiA+ID4gPiAgI2RlZmluZSBBUk1BREFfMzcwX1hQX0lOVF9DQVVTRV9QRVJGKGNw dSkJKDEgPDwgY3B1KQo+ID4gPiA+ICAKPiA+ID4gPiBAQCAtMTQ2LDYgKzE1MCw4IEBACj4gPiA+ ID4gIHN0YXRpYyB2b2lkIF9faW9tZW0gKnBlcl9jcHVfaW50X2Jhc2U7Cj4gPiA+ID4gIHN0YXRp YyB2b2lkIF9faW9tZW0gKm1haW5faW50X2Jhc2U7Cj4gPiA+ID4gIHN0YXRpYyBzdHJ1Y3QgaXJx X2RvbWFpbiAqYXJtYWRhXzM3MF94cF9tcGljX2RvbWFpbjsKPiA+ID4gPiArc3RhdGljIHN0cnVj dCBpcnFfZG9tYWluICphcm1hZGFfMzcwX3hwX3NvY19lcnJfZG9tYWluOwo+ID4gPiA+ICtzdGF0 aWMgdW5zaWduZWQgaW50IHNvY19lcnJfaXJxX251bV9yZWdzOwo+ID4gPiA+ICBzdGF0aWMgdTMy IGRvb3JiZWxsX21hc2tfcmVnOwo+ID4gPiA+ICBzdGF0aWMgaW50IHBhcmVudF9pcnE7Cj4gPiA+ ID4gICNpZmRlZiBDT05GSUdfUENJX01TSQo+ID4gPiA+IEBAIC0xNTYsNiArMTYyLDggQEAgc3Rh dGljIERFRklORV9NVVRFWChtc2lfdXNlZF9sb2NrKTsKPiA+ID4gPiAgc3RhdGljIHBoeXNfYWRk cl90IG1zaV9kb29yYmVsbF9hZGRyOwo+ID4gPiA+ICAjZW5kaWYKPiA+ID4gPiAgCj4gPiA+ID4g K3N0YXRpYyB2b2lkIGFybWFkYV8zNzBfeHBfc29jX2Vycl9pcnFfdW5tYXNrKHN0cnVjdCBpcnFf ZGF0YSAqZCk7Cj4gPiA+ID4gKwo+ID4gPiA+ICBzdGF0aWMgaW5saW5lIGJvb2wgaXNfcGVyY3B1 X2lycShpcnFfaHdfbnVtYmVyX3QgaXJxKQo+ID4gPiA+ICB7Cj4gPiA+ID4gIAlpZiAoaXJxIDw9 IEFSTUFEQV8zNzBfWFBfTUFYX1BFUl9DUFVfSVJRUykKPiA+ID4gPiBAQCAtNTA5LDYgKzUxNywy NyBAQCBzdGF0aWMgdm9pZCBhcm1hZGFfeHBfbXBpY19yZWVuYWJsZV9wZXJjcHUodm9pZCkKPiA+ ID4gPiAgCQlhcm1hZGFfMzcwX3hwX2lycV91bm1hc2soZGF0YSk7Cj4gPiA+ID4gIAl9Cj4gPiA+ ID4gIAo+ID4gPiA+ICsJLyogUmUtZW5hYmxlIHBlci1DUFUgU29DIEVycm9yIGludGVycnVwdHMg dGhhdCB3ZXJlIGVuYWJsZWQgYmVmb3JlIHN1c3BlbmQgKi8KPiA+ID4gPiArCWZvciAoaXJxID0g MDsgaXJxIDwgc29jX2Vycl9pcnFfbnVtX3JlZ3MgKiAzMjsgaXJxKyspIHsKPiA+ID4gPiArCQlz dHJ1Y3QgaXJxX2RhdGEgKmRhdGE7Cj4gPiA+ID4gKwkJaW50IHZpcnE7Cj4gPiA+ID4gKwo+ID4g PiA+ICsJCXZpcnEgPSBpcnFfbGluZWFyX3Jldm1hcChhcm1hZGFfMzcwX3hwX3NvY19lcnJfZG9t YWluLCBpcnEpOwo+ID4gPiA+ICsJCWlmICh2aXJxID09IDApCj4gPiA+ID4gKwkJCWNvbnRpbnVl Owo+ID4gPiA+ICsKPiA+ID4gPiArCQlkYXRhID0gaXJxX2dldF9pcnFfZGF0YSh2aXJxKTsKPiA+ ID4gPiArCj4gPiA+ID4gKwkJaWYgKCFpcnFfcGVyY3B1X2lzX2VuYWJsZWQodmlycSkpCj4gPiA+ ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiA+ICsKPiA+ID4gPiArCQlhcm1hZGFfMzcwX3hwX3NvY19l cnJfaXJxX3VubWFzayhkYXRhKTsKPiA+ID4gPiArCX0KPiA+ID4gCj4gPiA+IFNvIHlvdSBkbyB0 aGlzIGxvb3AgYW5kIGFsbCB0aGVzZSBsb29rdXBzLCBib3RoIGhlcmUgYW5kIGluIHRoZSByZXN1 bWUKPiA+ID4gZnVuY3Rpb24gKGR1cGxpY2F0ZWQgY29kZSEpIGp1c3QgdG8gYmUgYWJsZSB0byBj YWxsIHRoZSB1bm1hc2sKPiA+ID4gZnVuY3Rpb24/ICBUaGlzIHdvdWxkIGJlIGJldHRlciBzZXJ2 ZWQgYnkgdHdvIHN0cmFpZ2h0IHdyaXRlcyBvZiB0aGUKPiA+ID4gbWFzayByZWdpc3Rlciwgd2hp Y2ggeW91J2QgY29udmVuaWVudGx5IHNhdmUgb24gc3VzcGVuZC4KPiA+ID4gCj4gPiA+IFllcywg eW91IGhhdmUgb25seSBkdXBsaWNhdGVkIHRoZSBleGlzdGluZyBsb2dpYy4gQnV0IHN1cmVseSB0 aGVyZSBpcwo+ID4gPiBzb21ldGhpbmcgYmV0dGVyIHRvIGRvLgo+ID4gCj4gPiBZZXMsIEkganVz dCB1c2VkIGV4aXN0aW5nIGxvZ2ljLgo+ID4gCj4gPiBJJ20gbm90IHJld3JpdGluZyBkcml2ZXIg b3IgZG9pbmcgYmlnIHJlZmFjdG9yIG9mIGl0LCBhcyB0aGlzIGlzIG5vdCBpbgo+ID4gdGhlIHNj b3BlIG9mIHRoZSBQQ0llIEFFUiBpbnRlcnJ1cHQgc3VwcG9ydC4KPiAKPiBGYWlyIGVub3VnaC4g QnkgdGhlIHNhbWUgbG9naWMsIEknbSBub3QgdGFraW5nIGFueSBjaGFuZ2UgdG8gdGhlCj4gZHJp dmVyIHVudGlsIGl0IGlzIHB1dCBpbiBhIGJldHRlciBzaGFwZS4gWW91ciBjYWxsLgoKSWYgeW91 IGFyZSBtYWludGFpbmVyIG9mIHRoaXMgY29kZSB0aGVuIGl0IGlzIGV4cGVjdGVkIGZyb20gX3lv dV8gdG8KbW92ZSB0aGUgY3VycmVudCBjb2RlIGludG8gX2JldHRlciBzaGFwZV8gYXMgeW91IHdy b3RlIGFuZCBleHBlY3QuIEFuZAp0aGVuIHNob3cgdXMgZXhhY3RseSwgaG93IG5ldyBjaGFuZ2Vz IGluIHRoaXMgZHJpdmVyIHNob3VsZCBsb29rIGxpa2UsCmluIGV4YW1wbGVzLgoKPiA+ID4gPiAr Cj4gPiA+ID4gKwkvKiBVbm1hc2sgc3VtbWFyeSBTb0MgRXJyb3IgSW50ZXJydXB0ICovCj4gPiA+ ID4gKwlpZiAoc29jX2Vycl9pcnFfbnVtX3JlZ3MgPiAwKQo+ID4gPiA+ICsJCXdyaXRlbCg0LCBw ZXJfY3B1X2ludF9iYXNlICsgQVJNQURBXzM3MF9YUF9JTlRfQ0xFQVJfTUFTS19PRkZTKTsKPiA+ ID4gPiArCj4gPiA+ID4gIAlpcGlfcmVzdW1lKCk7Cj4gPiA+ID4gIH0KPiA+ID4gPiAgCj4gPiA+ ID4gQEAgLTU0Niw4ICs1NzUsOCBAQCBzdGF0aWMgc3RydWN0IGlycV9jaGlwIGFybWFkYV8zNzBf eHBfaXJxX2NoaXAgPSB7Cj4gPiA+ID4gIHN0YXRpYyBpbnQgYXJtYWRhXzM3MF94cF9tcGljX2ly cV9tYXAoc3RydWN0IGlycV9kb21haW4gKmgsCj4gPiA+ID4gIAkJCQkgICAgICB1bnNpZ25lZCBp bnQgdmlycSwgaXJxX2h3X251bWJlcl90IGh3KQo+ID4gPiA+ICB7Cj4gPiA+ID4gLQkvKiBJUlFz IDAgYW5kIDEgY2Fubm90IGJlIG1hcHBlZCwgdGhleSBhcmUgaGFuZGxlZCBpbnRlcm5hbGx5ICov Cj4gPiA+ID4gLQlpZiAoaHcgPD0gMSkKPiA+ID4gPiArCS8qIElSUXMgMCwgMSBhbmQgNCBjYW5u b3QgYmUgbWFwcGVkLCB0aGV5IGFyZSBoYW5kbGVkIGludGVybmFsbHkgKi8KPiA+ID4gPiArCWlm IChodyA8PSAxIHx8IGh3ID09IDQpCj4gPiA+ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4g IAo+ID4gPiA+ICAJYXJtYWRhXzM3MF94cF9pcnFfbWFzayhpcnFfZ2V0X2lycV9kYXRhKHZpcnEp KTsKPiA+ID4gPiBAQCAtNTc3LDYgKzYwNiw5OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9k b21haW5fb3BzIGFybWFkYV8zNzBfeHBfbXBpY19pcnFfb3BzID0gewo+ID4gPiA+ICAJLnhsYXRl ID0gaXJxX2RvbWFpbl94bGF0ZV9vbmVjZWxsLAo+ID4gPiA+ICB9Owo+ID4gPiA+ICAKPiA+ID4g PiArc3RhdGljIERFRklORV9SQVdfU1BJTkxPQ0soYXJtYWRhXzM3MF94cF9zb2NfZXJyX2xvY2sp Owo+ID4gPiA+ICsKPiA+ID4gPiArc3RhdGljIHZvaWQgYXJtYWRhXzM3MF94cF9zb2NfZXJyX2ly cV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKPiA+ID4gPiArewo+ID4gPiA+ICsJaXJxX2h3X251 bWJlcl90IGh3aXJxID0gaXJxZF90b19od2lycShkKTsKPiA+ID4gPiArCXUzMiByZWcsIG1hc2s7 Cj4gPiA+ID4gKwo+ID4gPiA+ICsJcmVnID0gaHdpcnEgPj0gMzIgPyBBUk1BREFfMzcwX1hQX0lO VF9TT0NfRVJSXzFfTUFTS19PRkYKPiA+ID4gPiArCQkJICA6IEFSTUFEQV8zNzBfWFBfSU5UX1NP Q19FUlJfMF9NQVNLX09GRjsKPiA+ID4gPiArCj4gPiA+ID4gKwlyYXdfc3Bpbl9sb2NrKCZhcm1h ZGFfMzcwX3hwX3NvY19lcnJfbG9jayk7Cj4gPiA+ID4gKwltYXNrID0gcmVhZGwocGVyX2NwdV9p bnRfYmFzZSArIHJlZyk7Cj4gPiA+ID4gKwltYXNrICY9IH5CSVQoaHdpcnEgJSAzMik7Cj4gPiA+ ID4gKwl3cml0ZWwobWFzaywgcGVyX2NwdV9pbnRfYmFzZSArIHJlZyk7Cj4gPiA+ID4gKwlyYXdf c3Bpbl91bmxvY2soJmFybWFkYV8zNzBfeHBfc29jX2Vycl9sb2NrKTsKPiA+ID4gPiArfQo+ID4g PiA+ICsKPiA+ID4gPiArc3RhdGljIHZvaWQgYXJtYWRhXzM3MF94cF9zb2NfZXJyX2lycV91bm1h c2soc3RydWN0IGlycV9kYXRhICpkKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlpcnFfaHdfbnVtYmVy X3QgaHdpcnEgPSBpcnFkX3RvX2h3aXJxKGQpOwo+ID4gPiA+ICsJdTMyIHJlZywgbWFzazsKPiA+ ID4gPiArCj4gPiA+ID4gKwlyZWcgPSBod2lycSA+PSAzMiA/IEFSTUFEQV8zNzBfWFBfSU5UX1NP Q19FUlJfMV9NQVNLX09GRgo+ID4gPiA+ICsJCQkgIDogQVJNQURBXzM3MF9YUF9JTlRfU09DX0VS Ul8wX01BU0tfT0ZGOwo+ID4gPiA+ICsKPiA+ID4gPiArCXJhd19zcGluX2xvY2soJmFybWFkYV8z NzBfeHBfc29jX2Vycl9sb2NrKTsKPiA+ID4gPiArCW1hc2sgPSByZWFkbChwZXJfY3B1X2ludF9i YXNlICsgcmVnKTsKPiA+ID4gPiArCW1hc2sgfD0gQklUKGh3aXJxICUgMzIpOwo+ID4gPiA+ICsJ d3JpdGVsKG1hc2ssIHBlcl9jcHVfaW50X2Jhc2UgKyByZWcpOwo+ID4gPiA+ICsJcmF3X3NwaW5f dW5sb2NrKCZhcm1hZGFfMzcwX3hwX3NvY19lcnJfbG9jayk7Cj4gPiA+ID4gK30KPiA+ID4gPiAr Cj4gPiA+ID4gK3N0YXRpYyBpbnQgYXJtYWRhXzM3MF94cF9zb2NfZXJyX2lycV9tYXNrX29uX2Nw dSh2b2lkICpwYXIpCj4gPiA+ID4gK3sKPiA+ID4gPiArCXN0cnVjdCBpcnFfZGF0YSAqZCA9IHBh cjsKPiA+ID4gPiArCWFybWFkYV8zNzBfeHBfc29jX2Vycl9pcnFfbWFzayhkKTsKPiA+ID4gPiAr CXJldHVybiAwOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICtzdGF0aWMgaW50IGFybWFk YV8zNzBfeHBfc29jX2Vycl9pcnFfdW5tYXNrX29uX2NwdSh2b2lkICpwYXIpCj4gPiA+ID4gK3sK PiA+ID4gPiArCXN0cnVjdCBpcnFfZGF0YSAqZCA9IHBhcjsKPiA+ID4gPiArCWFybWFkYV8zNzBf eHBfc29jX2Vycl9pcnFfdW5tYXNrKGQpOwo+ID4gPiA+ICsJcmV0dXJuIDA7Cj4gPiA+ID4gK30K PiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyBpbnQgYXJtYWRhX3hwX3NvY19lcnJfaXJxX3NldF9h ZmZpbml0eShzdHJ1Y3QgaXJxX2RhdGEgKmQsCj4gPiA+ID4gKwkJCQkJICAgICAgY29uc3Qgc3Ry dWN0IGNwdW1hc2sgKm1hc2ssCj4gPiA+ID4gKwkJCQkJICAgICAgYm9vbCBmb3JjZSkKPiA+ID4g PiArewo+ID4gPiA+ICsJdW5zaWduZWQgaW50IGNwdTsKPiA+ID4gPiArCj4gPiA+ID4gKwljcHVz X3JlYWRfbG9jaygpOwo+ID4gPiA+ICsKPiA+ID4gPiArCS8qIEZpcnN0IGRpc2FibGUgSVJRIG9u IGFsbCBjb3JlcyAqLwo+ID4gPiA+ICsJZm9yX2VhY2hfb25saW5lX2NwdShjcHUpCj4gPiA+ID4g KwkJc21wX2NhbGxfb25fY3B1KGNwdSwgYXJtYWRhXzM3MF94cF9zb2NfZXJyX2lycV9tYXNrX29u X2NwdSwgZCwgdHJ1ZSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJLyogU2VsZWN0IGEgc2luZ2xlIGNv cmUgZnJvbSB0aGUgYWZmaW5pdHkgbWFzayB3aGljaCBpcyBvbmxpbmUgKi8KPiA+ID4gPiArCWNw dSA9IGNwdW1hc2tfYW55X2FuZChtYXNrLCBjcHVfb25saW5lX21hc2spOwo+ID4gPiA+ICsJc21w X2NhbGxfb25fY3B1KGNwdSwgYXJtYWRhXzM3MF94cF9zb2NfZXJyX2lycV91bm1hc2tfb25fY3B1 LCBkLCB0cnVlKTsKPiA+ID4gPiArCj4gPiA+ID4gKwljcHVzX3JlYWRfdW5sb2NrKCk7Cj4gPiA+ ID4gKwo+ID4gPiA+ICsJaXJxX2RhdGFfdXBkYXRlX2VmZmVjdGl2ZV9hZmZpbml0eShkLCBjcHVt YXNrX29mKGNwdSkpOwo+ID4gPiA+ICsKPiA+ID4gPiArCXJldHVybiBJUlFfU0VUX01BU0tfT0s7 Cj4gPiA+ID4gK30KPiA+ID4gCj4gPiA+IEFyZW4ndCB0aGVzZSBwZXItQ1BVIGludGVycnVwdHMg YW55d2F5PyBXaGF0IGRvZXMgaXQgbWVhbiB0byBzZXQgdGhlaXIKPiA+ID4gYWZmaW5pdHk/IC9t ZSByb2xscyBleWVzLi4uCj4gPiAKPiA+IFllcywgdGhleSBhcmUgcGVyLUNQVSBpbnRlcnJ1cHRz LiBCdXQgdG8gbWFzayBvciB1bm1hc2sgcGFydGljdWxhcgo+ID4gaW50ZXJydXB0IGZvciBzcGVj aWZpYyBDUFUgaXMgcG9zc2libGUgb25seSBmcm9tIHRoYXQgQ1BVLiBDUFUgMCBqdXN0Cj4gPiBj YW5ub3QgbW92ZSBpbnRlcnJ1cHQgZnJvbSBDUFUgMCB0byBDUFUgMS4gQ1BVIDAgY2FuIG9ubHkg bWFzayB0aGF0Cj4gPiBpbnRlcnJ1cHQgYW5kIENQVSAxIGhhcyB0byB1bm1hc2sgaXQuCj4gCj4g QW5kIHRoYXQncyBubyBkaWZmZXJlbnQgZm9ybSBvdGhlciBwZXItQ1BVIGludGVycnVwdHMgdGhh dCBoYXZlIHRoZQo+IGV4YWN0IHNhbWUgcmVxdWlyZW1lbnRzLiBOQUsgdG8gdGhpcyBzb3J0IG9m IGhhY2tzLgoKWW91IGZvcmdvdCB0byBtZW50aW9uIGluIHlvdXIgcHJldmlvdXMgZW1haWwgaG93 IHRvIGRvIGl0LCByaWdodD8gU28gd2UKYXJlIHdhaXRpbmcuLi4KCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK