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 F2716C433EF for ; Wed, 16 Feb 2022 23:42:18 +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=ljC9EJoc06tfvNeVZhYvPljDcpcyvZCN5Zq7d/trrTE=; b=c02ZsEXxZK+kIf cqDxMduK71fzngrvFxM7jXBpl8S87U/4PK9xrhTBq4bPwnMW+cgSCdpBdcOd0VSq89SX5VMcplV/T gKF5B9d4aezGO9HIq7JnCWBxsFVAGSbIhBgzZNTXwljheT1Tmua8hGDgUWIadJ1WWO97rkLrbHgf2 xLlB1pRSA/h7xUYnTCJaKeBX9LJyZM+A1c4DmxaZTReUyq2HcgAtBpGy5kcY5Py58O5Z0R1eQUxD+ w9ddUdHE2eirQdkYZcN4VV9je9thAtiVtr7crn0aANDxgsPgo6OtJ+4ZBJNTJP2Eri50gqi/rJw67 2H60C1fkvwVO/UBj/G4Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nKTul-008X3P-DP; Wed, 16 Feb 2022 23:40:51 +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 1nKTug-008X2s-HJ for linux-arm-kernel@lists.infradead.org; Wed, 16 Feb 2022 23:40:49 +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 E85D1B819E8; Wed, 16 Feb 2022 23:40:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5DFBAC004E1; Wed, 16 Feb 2022 23:40:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1645054843; bh=P5bBN8gwgtAJnD262xZ046vSA5axbfC/o9tPtn2xN1k=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Byj71HzA6MgFA9v792QeZEg3zrEMC5YO878u8WgTX5U3Z8Bf8gvCSyNIpVzykllhj DWQNkF4sj1Afep8vdTR/wNQtn0zT2UT8bCJn+hA3pxeRlbJRyPl7PkufppPZhGDbRx sMfEaKffX0wU0r+aW5KXoTfwH0bia6YZtBoYsZTWxlyyfcNd26VRN7iJFkM6jpxOdY DJG7jg1JCycvlp+dqx217toDAIVbSDId9Uck0Wqlybgpkd2zdmcP60zFm9NX+TyPOP +Ot3OrGXHU5g/LEWxmtJ1RUjYd5jAY7L2nwKngJ/X1RdHGw85vPDzzlbXDmZybYOUx NDpC/ZHbxinAA== Received: by pali.im (Postfix) id 06DEA869; Thu, 17 Feb 2022 00:40:39 +0100 (CET) Date: Thu, 17 Feb 2022 00:40:39 +0100 From: Pali =?utf-8?B?Um9ow6Fy?= To: Lorenzo Pieralisi Cc: robh+dt@kernel.org, Bjorn Helgaas , Thomas Petazzoni , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Marek =?utf-8?B?QmVow7pu?= , Russell King , Marc Zyngier , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v2 10/11] PCI: mvebu: Implement support for legacy INTx interrupts Message-ID: <20220216234039.stxv5ndd6ai23sbb@pali> References: <20220105150239.9628-1-pali@kernel.org> <20220112151814.24361-1-pali@kernel.org> <20220112151814.24361-11-pali@kernel.org> <20220211171917.GA740@lpieralisi> <20220211175202.gku5pkwn5wmjo5al@pali> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220211175202.gku5pkwn5wmjo5al@pali> User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220216_154046_936652_DEE81D71 X-CRM114-Status: GOOD ( 61.68 ) 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 T24gRnJpZGF5IDExIEZlYnJ1YXJ5IDIwMjIgMTg6NTI6MDIgUGFsaSBSb2jDoXIgd3JvdGU6Cj4g T24gRnJpZGF5IDExIEZlYnJ1YXJ5IDIwMjIgMTc6MTk6MTcgTG9yZW56byBQaWVyYWxpc2kgd3Jv dGU6Cj4gPiBPbiBXZWQsIEphbiAxMiwgMjAyMiBhdCAwNDoxODoxM1BNICswMTAwLCBQYWxpIFJv aMOhciB3cm90ZToKPiA+ID4gVGhpcyBhZGRzIHN1cHBvcnQgZm9yIGxlZ2FjeSBJTlR4IGludGVy cnVwdHMgcmVjZWl2ZWQgZnJvbSBvdGhlciBQQ0llCj4gPiA+IGRldmljZXMgYW5kIHdoaWNoIGFy ZSByZXBvcnRlZCBieSBhIG5ldyBJTlR4IGlycSBjaGlwLgo+ID4gPiAKPiA+ID4gV2l0aCB0aGlz IGNoYW5nZSwga2VybmVsIGNhbiBkaXN0aW5ndWlzaCBiZXR3ZWVuIElOVEEsIElOVEIsIElOVEMg YW5kIElOVEQKPiA+ID4gaW50ZXJydXB0cy4KPiA+ID4gCj4gPiA+IE5vdGUgdGhhdCBmb3IgdGhp cyBzdXBwb3J0LCBkZXZpY2UgdHJlZSBmaWxlcyBoYXMgdG8gYmUgcHJvcGVybHkgYWRqdXN0ZWQK PiA+ID4gdG8gcHJvdmlkZSAiaW50ZXJydXB0cyIgb3IgImludGVycnVwdHMtZXh0ZW5kZWQiIHBy b3BlcnR5IHdpdGggaW50eAo+ID4gPiBpbnRlcnJ1cHQgc291cmNlLCAiaW50ZXJydXB0LW5hbWVz IiBwcm9wZXJ0eSB3aXRoICJpbnR4IiBzdHJpbmcgYW5kIGFsc28KPiA+ID4gJ2ludGVycnVwdC1j b250cm9sbGVyJyBzdWJub2RlIG11c3QgYmUgZGVmaW5lZC4KPiA+ID4gCj4gPiA+IElmIGRldmlj ZSB0cmVlIGZpbGVzIGRvIG5vdCBwcm92aWRlIHRoZXNlIG5vZGVzIHRoZW4gZHJpdmVyIHdvdWxk IHdvcmsgYXMKPiA+ID4gYmVmb3JlLgo+ID4gCj4gPiBOaXQ6IHRoaXMgaW5mb3JtYXRpb24gaXMg bm90IHVzZWZ1bC4gRFQgcnVsZXMgYXJlIHdyaXR0ZW4gaW4gRFQKPiA+IGJpbmRpbmdzLCBub3Qg aW4ga2VybmVsIGNvbW1pdCBsb2dzLiBBbGwgSSBhbSBzYXlpbmcgaXMgdGhhdCBmaXJtd2FyZQo+ ID4gZGV2ZWxvcGVycyBzaG91bGQgbm90IGhhdmUgdG8gcmVhZCB0aGlzIGxvZyB0byB3cml0ZSBm aXJtd2FyZS4KPiAKPiBJdCB3YXMgbm90IGludGVuZGVkIGZvciBmaXJtd2FyZSBkZXZlbG9wZXJz LCBidXQgZm9yIHJldmlld2VycyBvZiB0aGlzCj4gcGF0Y2ggdG8gdW5kZXJzdGFuZCwgd2hhdCBp cyBoYXBwZW5pbmcgaW4gY29kZSBhbmQgdGhhdCB3aXRoIG9sZCBEVAo+IGZpbGVzIHRoaXMgcGF0 Y2ggZG9lcyBub3QgY2hhbmdlIGRyaXZlciBiZWhhdmlvciAoPSB3b3JrIGFzIGJlZm9yZSkuCj4g Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+Cj4gPiA+ IC0tLQo+ID4gPiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYyB8IDE4NSArKysr KysrKysrKysrKysrKysrKysrKysrKystLQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDE3NyBpbnNl cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvcGNpLW12ZWJ1LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aS1tdmVidS5jCj4gPiA+IGluZGV4IDFlOTBhYjg4ODA3NS4uZGJiNmVjYjRjYjcwIDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1tdmVidS5jCj4gPiA+ICsrKyBi L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLW12ZWJ1LmMKPiA+ID4gQEAgLTU0LDkgKzU0LDEw IEBACj4gPiA+ICAJIFBDSUVfQ09ORl9BRERSX0VOKQo+ID4gPiAgI2RlZmluZSBQQ0lFX0NPTkZf REFUQV9PRkYJMHgxOGZjCj4gPiA+ICAjZGVmaW5lIFBDSUVfSU5UX0NBVVNFX09GRgkweDE5MDAK PiA+ID4gKyNkZWZpbmUgUENJRV9JTlRfVU5NQVNLX09GRgkweDE5MTAKPiA+IAo+ID4gTml0OiBJ IHVuZGVyc3RhbmQgaXQgaXMgdGVtcHRpbmcgYnV0IGhlcmUgeW91IGFyZSByZWRlZmluaW5nIG9y IGJldHRlcgo+ID4gZ2l2aW5nIGEgcHJvcGVyIGxhYmVsIHRvIGEgcmVnaXN0ZXIuIFNlcGFyYXRl IHBhdGNoIHBsZWFzZS4KPiAKPiBPayEKPiAKPiA+ID4gKyNkZWZpbmUgIFBDSUVfSU5UX0lOVFgo aSkJCUJJVCgyNCtpKQo+ID4gPiAgI2RlZmluZSAgUENJRV9JTlRfUE1fUE1FCQlCSVQoMjgpCj4g PiA+IC0jZGVmaW5lIFBDSUVfTUFTS19PRkYJCTB4MTkxMAo+ID4gCj4gPiBTZWUgYWJvdmUuCj4g PiAKPiA+ID4gLSNkZWZpbmUgIFBDSUVfTUFTS19FTkFCTEVfSU5UUyAgICAgICAgICAweDBmMDAw MDAwCj4gPiA+ICsjZGVmaW5lICBQQ0lFX0lOVF9BTExfTUFTSwkJR0VOTUFTSygzMSwgMCkKPiA+ ID4gICNkZWZpbmUgUENJRV9DVFJMX09GRgkJMHgxYTAwCj4gPiA+ICAjZGVmaW5lICBQQ0lFX0NU UkxfWDFfTU9ERQkJMHgwMDAxCj4gPiA+ICAjZGVmaW5lICBQQ0lFX0NUUkxfUkNfTU9ERQkJQklU KDEpCj4gPiA+IEBAIC0xMTAsNiArMTExLDkgQEAgc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCB7Cj4g PiA+ICAJc3RydWN0IG12ZWJ1X3BjaWVfd2luZG93IGlvd2luOwo+ID4gPiAgCXUzMiBzYXZlZF9w Y2llX3N0YXQ7Cj4gPiA+ICAJc3RydWN0IHJlc291cmNlIHJlZ3M7Cj4gPiA+ICsJc3RydWN0IGly cV9kb21haW4gKmludHhfaXJxX2RvbWFpbjsKPiA+ID4gKwlyYXdfc3BpbmxvY2tfdCBpcnFfbG9j azsKPiA+ID4gKwlpbnQgaW50eF9pcnE7Cj4gPiA+ICB9Owo+ID4gPiAgCj4gPiA+ICBzdGF0aWMg aW5saW5lIHZvaWQgbXZlYnVfd3JpdGVsKHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQsIHUz MiB2YWwsIHUzMiByZWcpCj4gPiA+IEBAIC0yMzUsNyArMjM5LDcgQEAgc3RhdGljIHZvaWQgbXZl YnVfcGNpZV9zZXR1cF93aW5zKHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCj4gPiA+ICAK PiA+ID4gIHN0YXRpYyB2b2lkIG12ZWJ1X3BjaWVfc2V0dXBfaHcoc3RydWN0IG12ZWJ1X3BjaWVf cG9ydCAqcG9ydCkKPiA+ID4gIHsKPiA+ID4gLQl1MzIgY3RybCwgbG5rY2FwLCBjbWQsIGRldl9y ZXYsIG1hc2s7Cj4gPiA+ICsJdTMyIGN0cmwsIGxua2NhcCwgY21kLCBkZXZfcmV2LCB1bm1hc2s7 Cj4gPiA+ICAKPiA+ID4gIAkvKiBTZXR1cCBQQ0llIGNvbnRyb2xsZXIgdG8gUm9vdCBDb21wbGV4 IG1vZGUuICovCj4gPiA+ICAJY3RybCA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfQ1RSTF9PRkYp Owo+ID4gPiBAQCAtMjg4LDEwICsyOTIsMzAgQEAgc3RhdGljIHZvaWQgbXZlYnVfcGNpZV9zZXR1 cF9odyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0KQo+ID4gPiAgCS8qIFBvaW50IFBDSWUg dW5pdCBNQlVTIGRlY29kZSB3aW5kb3dzIHRvIERSQU0gc3BhY2UuICovCj4gPiA+ICAJbXZlYnVf cGNpZV9zZXR1cF93aW5zKHBvcnQpOwo+ID4gPiAgCj4gPiA+IC0JLyogRW5hYmxlIGludGVycnVw dCBsaW5lcyBBLUQuICovCj4gPiA+IC0JbWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfTUFT S19PRkYpOwo+ID4gPiAtCW1hc2sgfD0gUENJRV9NQVNLX0VOQUJMRV9JTlRTOwo+ID4gPiAtCW12 ZWJ1X3dyaXRlbChwb3J0LCBtYXNrLCBQQ0lFX01BU0tfT0ZGKTsKPiA+ID4gKwkvKiBNYXNrIGFs bCBpbnRlcnJ1cHQgc291cmNlcy4gKi8KPiA+ID4gKwltdmVidV93cml0ZWwocG9ydCwgflBDSUVf SU5UX0FMTF9NQVNLLCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKPiA+ID4gKwo+ID4gPiArCS8qIENs ZWFyIGFsbCBpbnRlcnJ1cHQgY2F1c2VzLiAqLwo+ID4gPiArCW12ZWJ1X3dyaXRlbChwb3J0LCB+ UENJRV9JTlRfQUxMX01BU0ssIFBDSUVfSU5UX0NBVVNFX09GRik7Cj4gPiA+ICsKPiA+ID4gKwlp ZiAocG9ydC0+aW50eF9pcnEgPD0gMCkgewo+ID4gPiArCQkvKgo+ID4gPiArCQkgKiBXaGVuIG5l aXRoZXIgInN1bW1hcnkiIGludGVycnVwdCwgbm9yICJpbnR4IiBpbnRlcnJ1cHQgd2FzCj4gPiA+ ICsJCSAqIHNwZWNpZmllZCBpbiBEVCB0aGVuIHVubWFzayBhbGwgbGVnYWN5IElOVHggaW50ZXJy dXB0cyBhcyBpbgo+ID4gPiArCQkgKiB0aGlzIGNhc2UgZHJpdmVyIGRvZXMgbm90IHByb3ZpZGUg YSB3YXkgZm9yIG1hc2tpbmcgYW5kCj4gPiA+ICsJCSAqIHVubWFza2luZyBvZiBpbmRpdmlkdWFs IGxlZ2FjeSBJTlR4IGludGVycnVwdHMuIEluIHRoaXMgY2FzZQo+ID4gPiArCQkgKiBhbGwgaW50 ZXJydXB0cywgaW5jbHVkaW5nIGxlZ2FjeSBJTlR4IGFyZSByZXBvcnRlZCB2aWEgb25lCj4gPiA+ ICsJCSAqIHNoYXJlZCBHSUMgc291cmNlIGFuZCB0aGVyZWZvcmUga2VybmVsIGNhbm5vdCBkaXN0 aW5ndWlzaAo+ID4gPiArCQkgKiB3aGljaCBpbmRpdmlkdWFsIGxlZ2FjeSBJTlR4IHdhcyB0cmln Z2VyZWQuIFRoZXNlIGludGVycnVwdHMKPiA+ID4gKwkJICogYXJlIHNoYXJlZCwgc28gaXQgc2hv dWxkIG5vdCBjYXVzZSBhbnkgaXNzdWUuIEp1c3QKPiA+ID4gKwkJICogcGVyZm9ybWFuY2UgcGVu YWx0eSBhcyBldmVyeSBQQ0llIGludGVycnVwdCBoYW5kbGVyIG5lZWRzIHRvCj4gPiA+ICsJCSAq IGJlIGNhbGxlZCB3aGVuIHNvbWUgaW50ZXJydXB0IGlzIHRyaWdnZXJlZC4KPiA+ID4gKwkJICov Cj4gPiAKPiA+IFRoaXMgY29tbWVudCBhcHBsaWVzIHRvIGN1cnJlbnQgbWFpbmxpbmUgcmlnaHQg KGllIGl0IGRlc2NyaWJlcyBob3cKPiA+IGN1cnJlbnQgbWFpbmxpbmUgaGFuZGxlcyBJTlR4KSA/ IElNTyB5b3Ugc2hvdWxkIHNwbGl0IGl0IG91dCBpbiBhCj4gPiBzZXBhcmF0ZSBwYXRjaC4KPiAK PiBUaGlzIGFib3ZlIGNvbW1lbnQgZGVzY3JpYmUgd2hhdCBoYXBwZW5zIGluIGlmLWJyYW5jaCB3 aGVuIGludHhfaXJxIGlzCj4gbm90IHNldCAoYXMgd3JpdHRlbiBpbiBjb21tZW50ICJ3aGVuIGlu dHggaW50ZXJydXB0IHdhcyBub3Qgc3BlY2lmaWVkIGluCj4gRFQiKS4gWW91IGFyZSByaWdodCB0 aGF0IHRoaXMgaXMgYWxzbyB0aGUgYmVoYXZpb3IgaW4gdGhlIGN1cnJlbnQKPiBtYWlubGluZS4K PiAKPiBJJ20gbm90IHN1cmUgaWYgdGhpcyBjb21tZW50IGNhbiBiZSBzcGxpdCBvdXQgYXMgc3Vw cG9ydCBmb3IgImludHgiCj4gaW50ZXJydXB0IGlzIGluIHRoaXMgcGF0Y2guCj4gCj4gPiBJIHVu ZGVyc3RhbmQgaXQgaXMgaGFyZCBidXQgYSBwYXRjaCBpcyBhIGxvZ2ljYWwgX2NoYW5nZV8sIHRo aXMKPiA+IGNvbW1lbnQgaXMgYSBjaGFuZ2UgcGVyIHNlLCBpdCBpcyBhIGNsYXJpZmljYXRpb24g b24gY3VycmVudAo+ID4gYmVoYXZpb3VyLgo+IAo+IE9rLCBJIGNvdWxkIHRyeSB0byBzcGxpdCB0 aGlzIGNvbW1lbnQgaW50byB0d28gcGF0Y2hlcywgYnV0IHBhcnQgYWJvdXQKPiBpZi1icmFuY2gg Y29tbWVudCBuZWVkcyB0byBzdGF5IGluICJ0aGlzIiBwYXRjaC4KCkkgaGF2ZSBkb25lIGl0IGxv Y2FsbHkuCgpMZXQgbWUga25vdyB3aGVuIEkgc2hvdWxkIHJlc2VuZCB0aGlzIHBhdGNoIHNlcmll cyBhbmQgSSB3aWxsIGluY2x1ZGUKaW50byBpdCBhbHNvIHRoZXNlIGNoYW5nZXMuCgo+ID4gPiAr CQl1bm1hc2sgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKPiA+ID4g KwkJdW5tYXNrIHw9IFBDSUVfSU5UX0lOVFgoMCkgfCBQQ0lFX0lOVF9JTlRYKDEpIHwKPiA+ID4g KwkJCSAgUENJRV9JTlRfSU5UWCgyKSB8IFBDSUVfSU5UX0lOVFgoMyk7Cj4gPiA+ICsJCW12ZWJ1 X3dyaXRlbChwb3J0LCB1bm1hc2ssIFBDSUVfSU5UX1VOTUFTS19PRkYpOwo+ID4gPiArCX0KPiA+ ID4gIH0KPiA+ID4gIAo+ID4gPiAgc3RhdGljIHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKm12ZWJ1 X3BjaWVfZmluZF9wb3J0KHN0cnVjdCBtdmVidV9wY2llICpwY2llLAo+ID4gPiBAQCAtOTI0LDYg Kzk0OCwxMDggQEAgc3RhdGljIHN0cnVjdCBwY2lfb3BzIG12ZWJ1X3BjaWVfb3BzID0gewo+ID4g PiAgCS53cml0ZSA9IG12ZWJ1X3BjaWVfd3JfY29uZiwKPiA+ID4gIH07Cj4gPiA+ICAKPiA+ID4g K3N0YXRpYyB2b2lkIG12ZWJ1X3BjaWVfaW50eF9pcnFfbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQp Cj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCA9IGQtPmRvbWFp bi0+aG9zdF9kYXRhOwo+ID4gPiArCWlycV9od19udW1iZXJfdCBod2lycSA9IGlycWRfdG9faHdp cnEoZCk7Cj4gPiA+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiA+ID4gKwl1MzIgdW5tYXNrOwo+ ID4gPiArCj4gPiA+ICsJcmF3X3NwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5pcnFfbG9jaywgZmxh Z3MpOwo+ID4gPiArCXVubWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfSU5UX1VOTUFTS19P RkYpOwo+ID4gPiArCXVubWFzayAmPSB+UENJRV9JTlRfSU5UWChod2lycSk7Cj4gPiA+ICsJbXZl YnVfd3JpdGVsKHBvcnQsIHVubWFzaywgUENJRV9JTlRfVU5NQVNLX09GRik7Cj4gPiA+ICsJcmF3 X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmlycV9sb2NrLCBmbGFncyk7Cj4gPiA+ICt9 Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyB2b2lkIG12ZWJ1X3BjaWVfaW50eF9pcnFfdW5tYXNrKHN0 cnVjdCBpcnFfZGF0YSAqZCkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0 ICpwb3J0ID0gZC0+ZG9tYWluLT5ob3N0X2RhdGE7Cj4gPiA+ICsJaXJxX2h3X251bWJlcl90IGh3 aXJxID0gaXJxZF90b19od2lycShkKTsKPiA+ID4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ID4g PiArCXUzMiB1bm1hc2s7Cj4gPiA+ICsKPiA+ID4gKwlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJnBv cnQtPmlycV9sb2NrLCBmbGFncyk7Cj4gPiA+ICsJdW5tYXNrID0gbXZlYnVfcmVhZGwocG9ydCwg UENJRV9JTlRfVU5NQVNLX09GRik7Cj4gPiA+ICsJdW5tYXNrIHw9IFBDSUVfSU5UX0lOVFgoaHdp cnEpOwo+ID4gPiArCW12ZWJ1X3dyaXRlbChwb3J0LCB1bm1hc2ssIFBDSUVfSU5UX1VOTUFTS19P RkYpOwo+ID4gPiArCXJhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5pcnFfbG9jaywg ZmxhZ3MpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgc3RydWN0IGlycV9jaGlwIGlu dHhfaXJxX2NoaXAgPSB7Cj4gPiA+ICsJLm5hbWUgPSAibXZlYnUtSU5UeCIsCj4gPiA+ICsJLmly cV9tYXNrID0gbXZlYnVfcGNpZV9pbnR4X2lycV9tYXNrLAo+ID4gPiArCS5pcnFfdW5tYXNrID0g bXZlYnVfcGNpZV9pbnR4X2lycV91bm1hc2ssCj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ICtzdGF0 aWMgaW50IG12ZWJ1X3BjaWVfaW50eF9pcnFfbWFwKHN0cnVjdCBpcnFfZG9tYWluICpoLAo+ID4g PiArCQkJCSAgIHVuc2lnbmVkIGludCB2aXJxLCBpcnFfaHdfbnVtYmVyX3QgaHdpcnEpCj4gPiA+ ICt7Cj4gPiA+ICsJc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCA9IGgtPmhvc3RfZGF0YTsK PiA+ID4gKwo+ID4gPiArCWlycV9zZXRfc3RhdHVzX2ZsYWdzKHZpcnEsIElSUV9MRVZFTCk7Cj4g PiA+ICsJaXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKHZpcnEsICZpbnR4X2lycV9jaGlwLCBoYW5k bGVfbGV2ZWxfaXJxKTsKPiA+ID4gKwlpcnFfc2V0X2NoaXBfZGF0YSh2aXJxLCBwb3J0KTsKPiA+ ID4gKwo+ID4gPiArCXJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGlycV9kb21haW5fb3BzIG12ZWJ1X3BjaWVfaW50eF9pcnFfZG9tYWluX29wcyA9 IHsKPiA+ID4gKwkubWFwID0gbXZlYnVfcGNpZV9pbnR4X2lycV9tYXAsCj4gPiA+ICsJLnhsYXRl ID0gaXJxX2RvbWFpbl94bGF0ZV9vbmVjZWxsLAo+ID4gPiArfTsKPiA+ID4gKwo+ID4gPiArc3Rh dGljIGludCBtdmVidV9wY2llX2luaXRfaXJxX2RvbWFpbihzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0 ICpwb3J0KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwb3J0LT5wY2ll LT5wZGV2LT5kZXY7Cj4gPiA+ICsJc3RydWN0IGRldmljZV9ub2RlICpwY2llX2ludGNfbm9kZTsK PiA+ID4gKwo+ID4gPiArCXJhd19zcGluX2xvY2tfaW5pdCgmcG9ydC0+aXJxX2xvY2spOwo+ID4g PiArCj4gPiA+ICsJcGNpZV9pbnRjX25vZGUgPSBvZl9nZXRfbmV4dF9jaGlsZChwb3J0LT5kbiwg TlVMTCk7Cj4gPiA+ICsJaWYgKCFwY2llX2ludGNfbm9kZSkgewo+ID4gPiArCQlkZXZfZXJyKGRl diwgIk5vIFBDSWUgSW50YyBub2RlIGZvdW5kIGZvciAlc1xuIiwgcG9ydC0+bmFtZSk7Cj4gPiA+ ICsJCXJldHVybiAtRU5PREVWOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCXBvcnQtPmludHhf aXJxX2RvbWFpbiA9IGlycV9kb21haW5fYWRkX2xpbmVhcihwY2llX2ludGNfbm9kZSwgUENJX05V TV9JTlRYLAo+ID4gPiArCQkJCQkJICAgICAgJm12ZWJ1X3BjaWVfaW50eF9pcnFfZG9tYWluX29w cywKPiA+ID4gKwkJCQkJCSAgICAgIHBvcnQpOwo+ID4gPiArCW9mX25vZGVfcHV0KHBjaWVfaW50 Y19ub2RlKTsKPiA+ID4gKwlpZiAoIXBvcnQtPmludHhfaXJxX2RvbWFpbikgewo+ID4gPiArCQlk ZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgSU5UeCBJUlEgZG9tYWluIGZvciAlc1xuIiwgcG9y dC0+bmFtZSk7Cj4gPiA+ICsJCXJldHVybiAtRU5PTUVNOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4g PiArCXJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBtdmVidV9w Y2llX2lycV9oYW5kbGVyKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKPiA+ID4gK3sKPiA+ID4gKwlz dHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0ID0gaXJxX2Rlc2NfZ2V0X2hhbmRsZXJfZGF0YShk ZXNjKTsKPiA+ID4gKwlzdHJ1Y3QgaXJxX2NoaXAgKmNoaXAgPSBpcnFfZGVzY19nZXRfY2hpcChk ZXNjKTsKPiA+ID4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcG9ydC0+cGNpZS0+cGRldi0+ZGV2 Owo+ID4gPiArCXUzMiBjYXVzZSwgdW5tYXNrLCBzdGF0dXM7Cj4gPiA+ICsJaW50IGk7Cj4gPiA+ ICsKPiA+ID4gKwljaGFpbmVkX2lycV9lbnRlcihjaGlwLCBkZXNjKTsKPiA+ID4gKwo+ID4gPiAr CWNhdXNlID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9JTlRfQ0FVU0VfT0ZGKTsKPiA+ID4gKwl1 bm1hc2sgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKPiA+ID4gKwlz dGF0dXMgPSBjYXVzZSAmIHVubWFzazsKPiA+ID4gKwo+ID4gPiArCS8qIFByb2Nlc3MgbGVnYWN5 IElOVHggaW50ZXJydXB0cyAqLwo+ID4gPiArCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX0lOVFg7 IGkrKykgewo+ID4gPiArCQlpZiAoIShzdGF0dXMgJiBQQ0lFX0lOVF9JTlRYKGkpKSkKPiA+ID4g KwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCWlmIChnZW5lcmljX2hhbmRsZV9kb21haW5f aXJxKHBvcnQtPmludHhfaXJxX2RvbWFpbiwgaSkgPT0gLUVJTlZBTCkKPiA+ID4gKwkJCWRldl9l cnJfcmF0ZWxpbWl0ZWQoZGV2LCAidW5leHBlY3RlZCBJTlQlYyBJUlFcbiIsIChjaGFyKWkrJ0En KTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwljaGFpbmVkX2lycV9leGl0KGNoaXAsIGRlc2Mp Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICBzdGF0aWMgaW50IG12ZWJ1X3BjaWVfbWFwX2lycShj b25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCj4gPiA+ICB7Cj4gPiA+ ICAJLyogSW50ZXJydXB0IHN1cHBvcnQgb24gbXZlYnUgZW11bGF0ZWQgYnJpZGdlcyBpcyBub3Qg aW1wbGVtZW50ZWQgeWV0ICovCj4gPiA+IEBAIC0xMTIxLDYgKzEyNDcsMjEgQEAgc3RhdGljIGlu dCBtdmVidV9wY2llX3BhcnNlX3BvcnQoc3RydWN0IG12ZWJ1X3BjaWUgKnBjaWUsCj4gPiA+ICAJ CXBvcnQtPmlvX2F0dHIgPSAtMTsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gKwkvKgo+ID4gPiAr CSAqIE9sZCBEVCBiaW5kaW5ncyBkbyBub3QgY29udGFpbiAiaW50eCIgaW50ZXJydXB0Cj4gPiA+ ICsJICogc28gZG8gbm90IGZhaWwgcHJvYmluZyBkcml2ZXIgd2hlbiBpbnRlcnJ1cHQgZG9lcyBu b3QgZXhpc3QuCj4gPiA+ICsJICovCj4gPiA+ICsJcG9ydC0+aW50eF9pcnEgPSBvZl9pcnFfZ2V0 X2J5bmFtZShjaGlsZCwgImludHgiKTsKPiA+ID4gKwlpZiAocG9ydC0+aW50eF9pcnEgPT0gLUVQ Uk9CRV9ERUZFUikgewo+ID4gPiArCQlyZXQgPSBwb3J0LT5pbnR4X2lycTsKPiA+ID4gKwkJZ290 byBlcnI7Cj4gPiA+ICsJfQo+ID4gPiArCWlmIChwb3J0LT5pbnR4X2lycSA8PSAwKSB7Cj4gPiA+ ICsJCWRldl93YXJuKGRldiwgIiVzOiBsZWdhY3kgSU5UeCBpbnRlcnJ1cHRzIGNhbm5vdCBiZSBt YXNrZWQgaW5kaXZpZHVhbGx5LCAiCj4gPiA+ICsJCQkgICAgICAiJXBPRiBkb2VzIG5vdCBjb250 YWluIGludHggaW50ZXJydXB0XG4iLAo+ID4gPiArCQkJIHBvcnQtPm5hbWUsIGNoaWxkKTsKPiA+ IAo+ID4gSGVyZSB5b3UgZW5kIHVwIHdpdGggYSBuZXcgd2FybmluZyBvbiBleGlzdGluZyBmaXJt d2FyZS4gSXMgaXQKPiA+IGxlZ2l0aW1hdGUgPyBJIHdvdWxkIHJlbW92ZSB0aGUgZGV2X3dhcm4o KS4KPiAKPiBJIGFkZGVkIHRoaXMgd2FybmluZyBpbiB2MiBiZWNhdXNlIE1hcmMgd2FudGVkIGl0 Lgo+IAo+IFNob3VsZCBJIChhZ2FpbikgcmVtb3ZlIGl0IGluIHYzPwo+IAo+ID4gUm9iIGNlcnRh aW5seSBoYXMgbW9yZSBpbnNpZ2h0ZnVsIGFkdmljZSBvbiB0aGlzLgo+ID4gCj4gPiBUaGFua3Ms Cj4gPiBMb3JlbnpvCj4gPiAKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gIAlyZXNldF9ncGlvID0g b2ZfZ2V0X25hbWVkX2dwaW9fZmxhZ3MoY2hpbGQsICJyZXNldC1ncGlvcyIsIDAsICZmbGFncyk7 Cj4gPiA+ICAJaWYgKHJlc2V0X2dwaW8gPT0gLUVQUk9CRV9ERUZFUikgewo+ID4gPiAgCQlyZXQg PSByZXNldF9ncGlvOwo+ID4gPiBAQCAtMTMxNyw2ICsxNDU4LDcgQEAgc3RhdGljIGludCBtdmVi dV9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ICAKPiA+ID4g IAlmb3IgKGkgPSAwOyBpIDwgcGNpZS0+bnBvcnRzOyBpKyspIHsKPiA+ID4gIAkJc3RydWN0IG12 ZWJ1X3BjaWVfcG9ydCAqcG9ydCA9ICZwY2llLT5wb3J0c1tpXTsKPiA+ID4gKwkJaW50IGlycSA9 IHBvcnQtPmludHhfaXJxOwo+ID4gPiAgCj4gPiA+ICAJCWNoaWxkID0gcG9ydC0+ZG47Cj4gPiA+ ICAJCWlmICghY2hpbGQpCj4gPiA+IEBAIC0xMzQ0LDYgKzE0ODYsMjIgQEAgc3RhdGljIGludCBt dmVidV9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ICAJCQlj b250aW51ZTsKPiA+ID4gIAkJfQo+ID4gPiAgCj4gPiA+ICsJCWlmIChpcnEgPiAwKSB7Cj4gPiA+ ICsJCQlyZXQgPSBtdmVidV9wY2llX2luaXRfaXJxX2RvbWFpbihwb3J0KTsKPiA+ID4gKwkJCWlm IChyZXQpIHsKPiA+ID4gKwkJCQlkZXZfZXJyKGRldiwgIiVzOiBjYW5ub3QgaW5pdCBpcnEgZG9t YWluXG4iLAo+ID4gPiArCQkJCQlwb3J0LT5uYW1lKTsKPiA+ID4gKwkJCQlwY2lfYnJpZGdlX2Vt dWxfY2xlYW51cCgmcG9ydC0+YnJpZGdlKTsKPiA+ID4gKwkJCQlkZXZtX2lvdW5tYXAoZGV2LCBw b3J0LT5iYXNlKTsKPiA+ID4gKwkJCQlwb3J0LT5iYXNlID0gTlVMTDsKPiA+ID4gKwkJCQltdmVi dV9wY2llX3Bvd2VyZG93bihwb3J0KTsKPiA+ID4gKwkJCQljb250aW51ZTsKPiA+ID4gKwkJCX0K PiA+ID4gKwkJCWlycV9zZXRfY2hhaW5lZF9oYW5kbGVyX2FuZF9kYXRhKGlycSwKPiA+ID4gKwkJ CQkJCQkgbXZlYnVfcGNpZV9pcnFfaGFuZGxlciwKPiA+ID4gKwkJCQkJCQkgcG9ydCk7Cj4gPiA+ ICsJCX0KPiA+ID4gKwo+ID4gPiAgCQkvKgo+ID4gPiAgCQkgKiBQQ0llIHRvcG9sb2d5IGV4cG9y dGVkIGJ5IG12ZWJ1IGh3IGlzIHF1aXRlIGNvbXBsaWNhdGVkLiBJbgo+ID4gPiAgCQkgKiByZWFs aXR5IGhhcyBzb21ldGhpbmcgbGlrZSBOIGZ1bGx5IGluZGVwZW5kZW50IGhvc3QgYnJpZGdlcwo+ ID4gPiBAQCAtMTQ0OCw2ICsxNjA2LDcgQEAgc3RhdGljIGludCBtdmVidV9wY2llX3JlbW92ZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gPiAgCj4gPiA+ICAJZm9yIChpID0gMDsg aSA8IHBjaWUtPm5wb3J0czsgaSsrKSB7Cj4gPiA+ICAJCXN0cnVjdCBtdmVidV9wY2llX3BvcnQg KnBvcnQgPSAmcGNpZS0+cG9ydHNbaV07Cj4gPiA+ICsJCWludCBpcnEgPSBwb3J0LT5pbnR4X2ly cTsKPiA+ID4gIAo+ID4gPiAgCQlpZiAoIXBvcnQtPmJhc2UpCj4gPiA+ICAJCQljb250aW51ZTsK PiA+ID4gQEAgLTE0NTgsNyArMTYxNywxNyBAQCBzdGF0aWMgaW50IG12ZWJ1X3BjaWVfcmVtb3Zl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ICAJCW12ZWJ1X3dyaXRlbChwb3J0 LCBjbWQsIFBDSUVfQ01EX09GRik7Cj4gPiA+ICAKPiA+ID4gIAkJLyogTWFzayBhbGwgaW50ZXJy dXB0IHNvdXJjZXMuICovCj4gPiA+IC0JCW12ZWJ1X3dyaXRlbChwb3J0LCAwLCBQQ0lFX01BU0tf T0ZGKTsKPiA+ID4gKwkJbXZlYnVfd3JpdGVsKHBvcnQsIH5QQ0lFX0lOVF9BTExfTUFTSywgUENJ RV9JTlRfVU5NQVNLX09GRik7Cj4gPiA+ICsKPiA+ID4gKwkJLyogQ2xlYXIgYWxsIGludGVycnVw dCBjYXVzZXMuICovCj4gPiA+ICsJCW12ZWJ1X3dyaXRlbChwb3J0LCB+UENJRV9JTlRfQUxMX01B U0ssIFBDSUVfSU5UX0NBVVNFX09GRik7Cj4gPiA+ICsKPiA+ID4gKwkJaWYgKGlycSA+IDApCj4g PiA+ICsJCQlpcnFfc2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0YShpcnEsIE5VTEwsIE5VTEwp Owo+ID4gPiArCj4gPiA+ICsJCS8qIFJlbW92ZSBJUlEgZG9tYWlucy4gKi8KPiA+ID4gKwkJaWYg KHBvcnQtPmludHhfaXJxX2RvbWFpbikKPiA+ID4gKwkJCWlycV9kb21haW5fcmVtb3ZlKHBvcnQt PmludHhfaXJxX2RvbWFpbik7Cj4gPiA+ICAKPiA+ID4gIAkJLyogRnJlZSBjb25maWcgc3BhY2Ug Zm9yIGVtdWxhdGVkIHJvb3QgYnJpZGdlLiAqLwo+ID4gPiAgCQlwY2lfYnJpZGdlX2VtdWxfY2xl YW51cCgmcG9ydC0+YnJpZGdlKTsKPiA+ID4gLS0gCj4gPiA+IDIuMjAuMQo+ID4gPiAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJu ZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK