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 282DBC433EF for ; Thu, 6 Jan 2022 16:22:30 +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=KecL9myI316QYg/Sw7rwjGt9bQIiV9+qMSPsoidMYfA=; b=gQApiOzYZl5sT9 afhEvK48k3IZODhy7kWa88CodpUaymAcx3fbdj0q38RK1Yp2lX4U6mvO45JXxfkbOnfxZ/fSRpT6T d1kdT5LkF44NRRTrD/mD3q46xl3ksGx0APr8mWgafOUtu7LhKHgXiLjXVmmHAVYKIP50PpZbbUCMp EKKlZ4ZT+9hmc1bsUPsyAO8/yTUFCmZc5MqAYRDxZOKJZhyzgAsAIj6aII3I81NqsP6/udzfkXSA0 fcVNprgJAk2+kTQXkQ0BaDt4Y1VGVTDQmq14rBBJNMHhM9b4eN7IiYsEPgC3MaxZi0JS0EaXvW081 1pvVMiNl4u+ZCYRyYlXA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5VVa-000dNZ-0n; Thu, 06 Jan 2022 16:20:58 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5VVV-000dMo-RZ for linux-arm-kernel@lists.infradead.org; Thu, 06 Jan 2022 16:20:56 +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 E2C4BB82293; Thu, 6 Jan 2022 16:20:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B8CAC36AEB; Thu, 6 Jan 2022 16:20:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641486050; bh=tEtW2h+2Lml3QZ0awOJ4+V2sW+V5FDCEQIaq2JbAx0o=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=n4X4ukKFQf952HWj5iECZCl5uLe4XzoulaI9hdKT2MdnvMADMHd/YT7YbBZhhX2Rq zkKwiyNyZoNtWz6OApbp8yrImV2OE+wn0o97HFRqOcNVkzY9orQT38mQsUFw8HeNYy +yWKqkMNKmucsEUUB/lVDq+tnz5ZCh0xRxOS+1QZ2Fz0mcJp3ZErzWAiIfm9EXq+YZ LvNW8V+JisCaCdQjh2GZl7JKB917EkjJdaFEASA7+vAkYiWrOTI+9I23Rmug/DRebY OMrpvISDlaDFRQqeTVEl/3S7lVZpYkJdZWOpWIkJzNhMudrNPG79gLLQSEseobCttc 2vw11mqcUSUCg== Received: by pali.im (Postfix) id A4959BFF; Thu, 6 Jan 2022 17:20:47 +0100 (CET) Date: Thu, 6 Jan 2022 17:20:47 +0100 From: Pali =?utf-8?B?Um9ow6Fy?= To: Marc Zyngier Cc: Lorenzo Pieralisi , Bjorn Helgaas , Rob Herring , Thomas Petazzoni , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Marek =?utf-8?B?QmVow7pu?= , Russell King , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 10/11] PCI: mvebu: Implement support for legacy INTx interrupts Message-ID: <20220106162047.vqykmygs75eimfgy@pali> References: <20220105150239.9628-1-pali@kernel.org> <20220105150239.9628-11-pali@kernel.org> <87bl0ovq7f.wl-maz@kernel.org> <20220106154447.aie6taiuvav5wu6y@pali> <878rvsvoyo.wl-maz@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <878rvsvoyo.wl-maz@kernel.org> User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220106_082054_225019_55CBD8E2 X-CRM114-Status: GOOD ( 55.14 ) 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 T24gVGh1cnNkYXkgMDYgSmFudWFyeSAyMDIyIDE1OjU1OjExIE1hcmMgWnluZ2llciB3cm90ZToK PiBPbiBUaHUsIDA2IEphbiAyMDIyIDE1OjQ0OjQ3ICswMDAwLAo+IFBhbGkgUm9ow6FyIDxwYWxp QGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gCj4gPiBPbiBUaHVyc2RheSAwNiBKYW51YXJ5IDIwMjIg MTU6Mjg6MjAgTWFyYyBaeW5naWVyIHdyb3RlOgo+ID4gPiBPbiBXZWQsIDA1IEphbiAyMDIyIDE1 OjAyOjM4ICswMDAwLAo+ID4gPiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPiB3cm90ZToK PiA+ID4gPiAKPiA+ID4gPiBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgbGVnYWN5IElOVHggaW50ZXJy dXB0cyByZWNlaXZlZCBmcm9tIG90aGVyIFBDSWUKPiA+ID4gPiBkZXZpY2VzIGFuZCB3aGljaCBh cmUgcmVwb3J0ZWQgYnkgYSBuZXcgSU5UeCBpcnEgY2hpcC4KPiA+ID4gPiAKPiA+ID4gPiBXaXRo IHRoaXMgY2hhbmdlLCBrZXJuZWwgY2FuIGRpc3Rpbmd1aXNoIGJldHdlZW4gSU5UQSwgSU5UQiwg SU5UQyBhbmQgSU5URAo+ID4gPiA+IGludGVycnVwdHMuCj4gPiA+ID4gCj4gPiA+ID4gTm90ZSB0 aGF0IGZvciB0aGlzIHN1cHBvcnQsIGRldmljZSB0cmVlIGZpbGVzIGhhcyB0byBiZSBwcm9wZXJs eSBhZGp1c3RlZAo+ID4gPiA+IHRvIHByb3ZpZGUgImludGVycnVwdHMiIG9yICJpbnRlcnJ1cHRz LWV4dGVuZGVkIiBwcm9wZXJ0eSB3aXRoIGludHgKPiA+ID4gPiBpbnRlcnJ1cHQgc291cmNlLCAi aW50ZXJydXB0LW5hbWVzIiBwcm9wZXJ0eSB3aXRoICJpbnR4IiBzdHJpbmcgYW5kIGFsc28KPiA+ ID4gPiAnaW50ZXJydXB0LWNvbnRyb2xsZXInIHN1Ym5vZGUgbXVzdCBiZSBkZWZpbmVkLgo+ID4g PiA+IAo+ID4gPiA+IElmIGRldmljZSB0cmVlIGZpbGVzIGRvIG5vdCBwcm92aWRlIHRoZXNlIG5v ZGVzIHRoZW4gZHJpdmVyIHdvdWxkIHdvcmsgYXMKPiA+ID4gPiBiZWZvcmUuCj4gPiA+ID4gCj4g PiA+ID4gU2lnbmVkLW9mZi1ieTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KPiA+ID4g PiAtLS0KPiA+ID4gPiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYyB8IDE4MiAr KysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTc0 IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPiA+ID4gCj4gPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLW12ZWJ1LmMgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaS1tdmVidS5jCj4gPiA+ID4gaW5kZXggMWU5MGFiODg4MDc1Li4wNGJjZGQ3Yjdh NmQgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUu Ywo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLW12ZWJ1LmMKPiA+ID4g PiBAQCAtNTQsOSArNTQsMTAgQEAKPiA+ID4gPiAgCSBQQ0lFX0NPTkZfQUREUl9FTikKPiA+ID4g PiAgI2RlZmluZSBQQ0lFX0NPTkZfREFUQV9PRkYJMHgxOGZjCj4gPiA+ID4gICNkZWZpbmUgUENJ RV9JTlRfQ0FVU0VfT0ZGCTB4MTkwMAo+ID4gPiA+ICsjZGVmaW5lIFBDSUVfSU5UX1VOTUFTS19P RkYJMHgxOTEwCj4gPiA+ID4gKyNkZWZpbmUgIFBDSUVfSU5UX0lOVFgoaSkJCUJJVCgyNCtpKQo+ ID4gPiA+ICAjZGVmaW5lICBQQ0lFX0lOVF9QTV9QTUUJCUJJVCgyOCkKPiA+ID4gPiAtI2RlZmlu ZSBQQ0lFX01BU0tfT0ZGCQkweDE5MTAKPiA+ID4gPiAtI2RlZmluZSAgUENJRV9NQVNLX0VOQUJM RV9JTlRTICAgICAgICAgIDB4MGYwMDAwMDAKPiA+ID4gPiArI2RlZmluZSAgUENJRV9JTlRfQUxM X01BU0sJCUdFTk1BU0soMzEsIDApCj4gPiA+ID4gICNkZWZpbmUgUENJRV9DVFJMX09GRgkJMHgx YTAwCj4gPiA+ID4gICNkZWZpbmUgIFBDSUVfQ1RSTF9YMV9NT0RFCQkweDAwMDEKPiA+ID4gPiAg I2RlZmluZSAgUENJRV9DVFJMX1JDX01PREUJCUJJVCgxKQo+ID4gPiA+IEBAIC0xMTAsNiArMTEx LDEwIEBAIHN0cnVjdCBtdmVidV9wY2llX3BvcnQgewo+ID4gPiA+ICAJc3RydWN0IG12ZWJ1X3Bj aWVfd2luZG93IGlvd2luOwo+ID4gPiA+ICAJdTMyIHNhdmVkX3BjaWVfc3RhdDsKPiA+ID4gPiAg CXN0cnVjdCByZXNvdXJjZSByZWdzOwo+ID4gPiA+ICsJc3RydWN0IGlycV9kb21haW4gKmludHhf aXJxX2RvbWFpbjsKPiA+ID4gPiArCXN0cnVjdCBpcnFfY2hpcCBpbnR4X2lycV9jaGlwOwo+ID4g PiAKPiA+ID4gV2h5IGlzIHRoaXMgc3RydWN0dXJlIHBlciBwb3J0PyBJdCByZWFsbHkgc2hvdWxk IGJlIGdsb2JhbC4gUHJpbnRpbmcKPiA+ID4gdGhlIHBvcnQgbnVtYmVyIGluIHRoZSBuYW1lIGlz bid0IGVub3VnaCBvZiBhIHJlYXNvbi4KPiA+IAo+ID4gQmVjYXVzZSBlYWNoIHBvcnQgaGFzIGl0 cyBvd24gaW5kZXBlbmRlbnQgc2V0IG9mIElOVEEtSU5URAo+ID4gaW50ZXJydXB0cy4KPiAKPiBU aGF0IGRvZXNuJ3Qgd2FycmFudCBhIGNvcHkgb2YgYW4gaXJxX2NoaXAgc3RydWN0dXJlIHRoYXQg Y29udGFpbnMgdGhlCj4gZXhhY3Qgc2FtZSBjYWxsYmFja3MsIGFuZCBvbmx5IGRpZmZlcnMgYnkg KmEgc3RyaW5nKi4gQW5kIHRoZSB1c2Ugb2YKPiB0aGlzIHN0cmluZyBpcyBvbmx5IHRvIGVuZC11 cCBpbiAvcHJvYy9pbnRlcnJ1cHRzLCB3aGljaCBpcyB0b3RhbGx5Cj4gcG9pbnRsZXNzLgo+IAo+ ID4gCj4gPiA+ID4gKwlyYXdfc3BpbmxvY2tfdCBpcnFfbG9jazsKPiA+ID4gPiArCWludCBpbnR4 X2lycTsKPiA+ID4gPiAgfTsKPiA+ID4gPiAgCj4gPiA+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBt dmVidV93cml0ZWwoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCwgdTMyIHZhbCwgdTMyIHJl ZykKPiA+ID4gPiBAQCAtMjM1LDcgKzI0MCw3IEBAIHN0YXRpYyB2b2lkIG12ZWJ1X3BjaWVfc2V0 dXBfd2lucyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0KQo+ID4gPiA+ICAKPiA+ID4gPiAg c3RhdGljIHZvaWQgbXZlYnVfcGNpZV9zZXR1cF9odyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpw b3J0KQo+ID4gPiA+ICB7Cj4gPiA+ID4gLQl1MzIgY3RybCwgbG5rY2FwLCBjbWQsIGRldl9yZXYs IG1hc2s7Cj4gPiA+ID4gKwl1MzIgY3RybCwgbG5rY2FwLCBjbWQsIGRldl9yZXYsIHVubWFzazsK PiA+ID4gPiAgCj4gPiA+ID4gIAkvKiBTZXR1cCBQQ0llIGNvbnRyb2xsZXIgdG8gUm9vdCBDb21w bGV4IG1vZGUuICovCj4gPiA+ID4gIAljdHJsID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9DVFJM X09GRik7Cj4gPiA+ID4gQEAgLTI4OCwxMCArMjkzLDMwIEBAIHN0YXRpYyB2b2lkIG12ZWJ1X3Bj aWVfc2V0dXBfaHcoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCkKPiA+ID4gPiAgCS8qIFBv aW50IFBDSWUgdW5pdCBNQlVTIGRlY29kZSB3aW5kb3dzIHRvIERSQU0gc3BhY2UuICovCj4gPiA+ ID4gIAltdmVidV9wY2llX3NldHVwX3dpbnMocG9ydCk7Cj4gPiA+ID4gIAo+ID4gPiA+IC0JLyog RW5hYmxlIGludGVycnVwdCBsaW5lcyBBLUQuICovCj4gPiA+ID4gLQltYXNrID0gbXZlYnVfcmVh ZGwocG9ydCwgUENJRV9NQVNLX09GRik7Cj4gPiA+ID4gLQltYXNrIHw9IFBDSUVfTUFTS19FTkFC TEVfSU5UUzsKPiA+ID4gPiAtCW12ZWJ1X3dyaXRlbChwb3J0LCBtYXNrLCBQQ0lFX01BU0tfT0ZG KTsKPiA+ID4gPiArCS8qIE1hc2sgYWxsIGludGVycnVwdCBzb3VyY2VzLiAqLwo+ID4gPiA+ICsJ bXZlYnVfd3JpdGVsKHBvcnQsIH5QQ0lFX0lOVF9BTExfTUFTSywgUENJRV9JTlRfVU5NQVNLX09G Rik7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJLyogQ2xlYXIgYWxsIGludGVycnVwdCBjYXVzZXMuICov Cj4gPiA+ID4gKwltdmVidV93cml0ZWwocG9ydCwgflBDSUVfSU5UX0FMTF9NQVNLLCBQQ0lFX0lO VF9DQVVTRV9PRkYpOwo+ID4gPiA+ICsKPiA+ID4gPiArCWlmIChwb3J0LT5pbnR4X2lycSA8PSAw KSB7Cj4gPiA+ID4gKwkJLyoKPiA+ID4gPiArCQkgKiBXaGVuIG5laXRoZXIgInN1bW1hcnkiIGlu dGVycnVwdCwgbm9yICJpbnR4IiBpbnRlcnJ1cHQgd2FzCj4gPiA+ID4gKwkJICogc3BlY2lmaWVk IGluIERUIHRoZW4gdW5tYXNrIGFsbCBsZWdhY3kgSU5UeCBpbnRlcnJ1cHRzIGFzIGluCj4gPiA+ ID4gKwkJICogdGhpcyBjYXNlIGRyaXZlciBkb2VzIG5vdCBwcm92aWRlIGEgd2F5IGZvciBtYXNr aW5nIGFuZAo+ID4gPiA+ICsJCSAqIHVubWFza2luZyBvZiBpbmRpdmlkdWFsIGxlZ2FjeSBJTlR4 IGludGVycnVwdHMuIEluIHRoaXMgY2FzZQo+ID4gPiA+ICsJCSAqIGFsbCBpbnRlcnJ1cHRzLCBp bmNsdWRpbmcgbGVnYWN5IElOVHggYXJlIHJlcG9ydGVkIHZpYSBvbmUKPiA+ID4gPiArCQkgKiBz aGFyZWQgR0lDIHNvdXJjZSBhbmQgdGhlcmVmb3JlIGtlcm5lbCBjYW5ub3QgZGlzdGluZ3Vpc2gK PiA+ID4gPiArCQkgKiB3aGljaCBpbmRpdmlkdWFsIGxlZ2FjeSBJTlR4IHdhcyB0cmlnZ2VyZWQu IFRoZXNlIGludGVycnVwdHMKPiA+ID4gPiArCQkgKiBhcmUgc2hhcmVkLCBzbyBpdCBzaG91bGQg bm90IGNhdXNlIGFueSBpc3N1ZS4gSnVzdAo+ID4gPiA+ICsJCSAqIHBlcmZvcm1hbmNlIHBlbmFs dHkgYXMgZXZlcnkgUENJZSBpbnRlcnJ1cHQgaGFuZGxlciBuZWVkcyB0bwo+ID4gPiA+ICsJCSAq IGJlIGNhbGxlZCB3aGVuIHNvbWUgaW50ZXJydXB0IGlzIHRyaWdnZXJlZC4KPiA+ID4gPiArCQkg Ki8KPiA+ID4gPiArCQl1bm1hc2sgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9VTk1BU0tf T0ZGKTsKPiA+ID4gPiArCQl1bm1hc2sgfD0gUENJRV9JTlRfSU5UWCgwKSB8IFBDSUVfSU5UX0lO VFgoMSkgfAo+ID4gPiA+ICsJCQkgIFBDSUVfSU5UX0lOVFgoMikgfCBQQ0lFX0lOVF9JTlRYKDMp Owo+ID4gPiA+ICsJCW12ZWJ1X3dyaXRlbChwb3J0LCB1bm1hc2ssIFBDSUVfSU5UX1VOTUFTS19P RkYpOwo+ID4gPiAKPiA+ID4gTWF5YmUgd29ydGggcHJpbnRpbmcgYSB3YXJuaW5nIGhlcmUsIHNv IHRoYXQgdGhlIHVzZXIga25vd3MgdGhleSBhcmUKPiA+ID4gb24gdGhpbiBpY2UuCj4gPiAKPiA+ IE9rLiBJIGNhbiBhZGQgaXQgaGVyZS4gQW55d2F5LCB0aGlzIGlzIGRlZmF1bHQgY3VycmVudCBz dGF0ZSB3aXRob3V0Cj4gPiB0aGlzIHBhdGNoLgo+ID4gCj4gPiA+ID4gKwl9Cj4gPiA+ID4gIH0K PiA+ID4gPiAgCj4gPiA+ID4gIHN0YXRpYyBzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICptdmVidV9w Y2llX2ZpbmRfcG9ydChzdHJ1Y3QgbXZlYnVfcGNpZSAqcGNpZSwKPiA+ID4gPiBAQCAtOTI0LDYg Kzk0OSwxMDkgQEAgc3RhdGljIHN0cnVjdCBwY2lfb3BzIG12ZWJ1X3BjaWVfb3BzID0gewo+ID4g PiA+ICAJLndyaXRlID0gbXZlYnVfcGNpZV93cl9jb25mLAo+ID4gPiA+ICB9Owo+ID4gPiA+ICAK PiA+ID4gPiArc3RhdGljIHZvaWQgbXZlYnVfcGNpZV9pbnR4X2lycV9tYXNrKHN0cnVjdCBpcnFf ZGF0YSAqZCkKPiA+ID4gPiArewo+ID4gPiA+ICsJc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9y dCA9IGQtPmRvbWFpbi0+aG9zdF9kYXRhOwo+ID4gPiA+ICsJaXJxX2h3X251bWJlcl90IGh3aXJx ID0gaXJxZF90b19od2lycShkKTsKPiA+ID4gPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiA+ ID4gKwl1MzIgdW5tYXNrOwo+ID4gPiA+ICsKPiA+ID4gPiArCXJhd19zcGluX2xvY2tfaXJxc2F2 ZSgmcG9ydC0+aXJxX2xvY2ssIGZsYWdzKTsKPiA+ID4gPiArCXVubWFzayA9IG12ZWJ1X3JlYWRs KHBvcnQsIFBDSUVfSU5UX1VOTUFTS19PRkYpOwo+ID4gPiA+ICsJdW5tYXNrICY9IH5QQ0lFX0lO VF9JTlRYKGh3aXJxKTsKPiA+ID4gPiArCW12ZWJ1X3dyaXRlbChwb3J0LCB1bm1hc2ssIFBDSUVf SU5UX1VOTUFTS19PRkYpOwo+ID4gPiA+ICsJcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBv cnQtPmlycV9sb2NrLCBmbGFncyk7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRp YyB2b2lkIG12ZWJ1X3BjaWVfaW50eF9pcnFfdW5tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKPiA+ ID4gPiArewo+ID4gPiA+ICsJc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCA9IGQtPmRvbWFp bi0+aG9zdF9kYXRhOwo+ID4gPiA+ICsJaXJxX2h3X251bWJlcl90IGh3aXJxID0gaXJxZF90b19o d2lycShkKTsKPiA+ID4gPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiA+ID4gKwl1MzIgdW5t YXNrOwo+ID4gPiA+ICsKPiA+ID4gPiArCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcG9ydC0+aXJx X2xvY2ssIGZsYWdzKTsKPiA+ID4gPiArCXVubWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVf SU5UX1VOTUFTS19PRkYpOwo+ID4gPiA+ICsJdW5tYXNrIHw9IFBDSUVfSU5UX0lOVFgoaHdpcnEp Owo+ID4gPiA+ICsJbXZlYnVfd3JpdGVsKHBvcnQsIHVubWFzaywgUENJRV9JTlRfVU5NQVNLX09G Rik7Cj4gPiA+ID4gKwlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+aXJxX2xvY2ss IGZsYWdzKTsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArc3RhdGljIGludCBtdmVidV9w Y2llX2ludHhfaXJxX21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqaCwKPiA+ID4gPiArCQkJCSAgIHVu c2lnbmVkIGludCB2aXJxLCBpcnFfaHdfbnVtYmVyX3QgaHdpcnEpCj4gPiA+ID4gK3sKPiA+ID4g PiArCXN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQgPSBoLT5ob3N0X2RhdGE7Cj4gPiA+ID4g Kwo+ID4gPiA+ICsJaXJxX3NldF9zdGF0dXNfZmxhZ3ModmlycSwgSVJRX0xFVkVMKTsKPiA+ID4g PiArCWlycV9zZXRfY2hpcF9hbmRfaGFuZGxlcih2aXJxLCAmcG9ydC0+aW50eF9pcnFfY2hpcCwg aGFuZGxlX2xldmVsX2lycSk7Cj4gPiA+ID4gKwlpcnFfc2V0X2NoaXBfZGF0YSh2aXJxLCBwb3J0 KTsKPiA+ID4gPiArCj4gPiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBtdmVidV9wY2llX2ludHhf aXJxX2RvbWFpbl9vcHMgPSB7Cj4gPiA+ID4gKwkubWFwID0gbXZlYnVfcGNpZV9pbnR4X2lycV9t YXAsCj4gPiA+ID4gKwkueGxhdGUgPSBpcnFfZG9tYWluX3hsYXRlX29uZWNlbGwsCj4gPiA+ID4g K307Cj4gPiA+ID4gKwo+ID4gPiA+ICtzdGF0aWMgaW50IG12ZWJ1X3BjaWVfaW5pdF9pcnFfZG9t YWluKHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCj4gPiA+ID4gK3sKPiA+ID4gPiArCXN0 cnVjdCBkZXZpY2UgKmRldiA9ICZwb3J0LT5wY2llLT5wZGV2LT5kZXY7Cj4gPiA+ID4gKwlzdHJ1 Y3QgZGV2aWNlX25vZGUgKnBjaWVfaW50Y19ub2RlOwo+ID4gPiA+ICsKPiA+ID4gPiArCXJhd19z cGluX2xvY2tfaW5pdCgmcG9ydC0+aXJxX2xvY2spOwo+ID4gPiA+ICsKPiA+ID4gPiArCXBvcnQt PmludHhfaXJxX2NoaXAubmFtZSA9IGRldm1fa2FzcHJpbnRmKGRldiwgR0ZQX0tFUk5FTCwKPiA+ ID4gPiArCQkJCQkJICAibXZlYnUtJXMtSU5UeCIsCj4gPiA+ID4gKwkJCQkJCSAgcG9ydC0+bmFt ZSk7Cj4gPiA+IAo+ID4gPiBUaGF0J3MgZXhhY3RseSB3aGF0IEkgcmVhbGx5IGRvbid0IHdhbnQg dG8gc2VlLiBJdCBwcmV2ZW50cyBzaGFyaW5nIG9mCj4gPiA+IHRoZSBpcnFfY2hpcCBzdHJ1Y3R1 cmUsIGFuZCBnZXRzIGluIHRoZSB3YXkgb2YgbWFraW5nIGl0IGNvbnN0IGluIHRoZQo+ID4gPiBm dXR1cmUuIFllcywgSSBrbm93IHRoYXQgc29tZSBkcml2ZXJzIGRvIHRoYXQuIEkgY2FuJ3QgZml4 IHRob3NlLAo+ID4gPiBiZWNhdXNlIC9wcm9jL2ludGVycnVwdHMgaXMgQUJJLiBCdXQgSSByZWFs bHkgZG9uJ3Qgd2FudCB0byBzZWUgbW9yZQo+ID4gPiBvZiB0aGVzZS4KPiA+IAo+ID4gV2VsbCwg SSBkbyBub3QgdW5kZXJzdGFuZCB3aHkgaXQgc2hvdWxkIGJlIHNoYXJlZCBhbmQgd2l0aCB3aG8u IEhXIGhhcyBOCj4gPiBpbmRlcGVuZGVudCBJUlEgY2hpcHMgZm9yIGxlZ2FjeSBpbnRlcnJ1cHRz LiBBbmQgZWFjaCBvbmUgd2lsbCBiZQo+ID4gc3BlY2lmaWVkIGluIERUIHBlciBIVyBsYXlvdXQg LyBkZXNpZ24uCj4gCj4gSWYgeW91IGhhdmUgbXVsdGlwbGUgcG9ydHMsIGFsbCB0aGUgcG9ydHMg Y2FuIHNoYXJlIHRoZSBpcnFfY2hpcAo+IHN0cnVjdHVyZS4gQWN0dWFsbHkgc2NyYXRjaCB0aGF0 LiBUaGV5ICpNVVNUKiBzaGFyZSB0aGUgc3RydWN0dXJlLiBUaGUKPiBvbmx5IHJlYXNvbiB5b3Un cmUgbm90IHNoYXJpbmcgaXQgaXMgdG8gYmUgYWJsZSB0byBwcmludCB0aGlzIHVzZWxlc3MKPiBz dHJpbmcgaW4gL3Byb2MvaW50ZXJydXB0cy4KCldoYXQgaXMgdGhlIHBvaW50IG9mIHNoYXJpbmcg b25lIGlycSBjaGlwIGlmIEhXIGhhcyBOIGluZGVwZW5kZW50IGlycQpjaGlwcyAoZm9yIGxlZ2Fj eSBpbnRlcnJ1cHRzKT8gSSBkbyBub3QgY2F0Y2ggaXQgeWV0LiBBbmQgSSBkbyBub3QgY2FyZQpo ZXJlIGZvciAvcHJvYy9pbnRlcnJ1cHRzLCBzbyBhbHNvIEkgaGF2ZSBub3QgY2F1Z2h0IHdoYXQg ZG8geW91IG1lYW4gYmUKbGFzdCBzZW50ZW5jZSB3aXRoICJ0aGUgb25seSByZWFzb24iLgoKQW5k IEkgc3RpbGwgZG8gbm90IHNlZSBob3cgaXQgY291bGQgZXZlbiB3b3JrIHRvIGhhdmUganVzdCBv bmUgaXJxIGNoaXAKYW5kIG9uZSBpcnEgZG9tYWluIGFzIGVhY2ggaXJxIGRvbWFpbiBuZWVkcyB0 byBrbm93IHRvIHdoaWNoIHBvcnQgaXQKYmVsb25ncywgc28gaXQgY2FuIG1hc2svdW5tYXNrIGlu dGVycnVwdHMgZnJvbSBjb3JyZWN0IHBvcnQuIEFsc28KaW5pdGlhbGl6YXRpb24gb2YgZG9tYWlu IGlzIHRha2luZyBEVCBub2RlIGFuZCBmb3IgZWFjaCBwb3J0IGl0IGlzCmRpZmZlcmVudC4KClNv IEknbSBzb21laG93IGNvbmZ1c2VkIGhlcmUuLi4KClRoZSBpbXByb3ZlbWVudCBpbiB0aGlzIHBh dGNoIGlzIHRvIGJlIGFibGUgdG8gbWFzayBJTlRBIGludGVycnVwdHMgb24KcG9ydCAxIGFuZCBs ZXQgSU5UQSBpbnRlcnJ1cHRzIHVubWFza2VkIG9uIHBvcnQgMiBpZiB0aGVyZSBkcml2ZXJzIGFy ZQppbnRlcmVzdGVkIG9ubHkgZm9yIGludGVycnVwdHMgZnJvbSBkZXZpY2UgY29ubmVjdGVkIHRv IHBvcnQgMi4KCkFuZCBpZiBhbGwgaW50ZXJydXB0cyBhcmUgZ29pbmcgdG8gYmUgc2hhcmVkIChh Z2FpbikgdGhlbiBpdCBkb2VzIG5vdApzb2x2ZSBhbnkgcHJvYmxlbS4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK