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 1B25BC433F5 for ; Fri, 11 Feb 2022 17:53:25 +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=CWvOt62y/Vbv9k9zWIO7wBZFfKROFqG0zjS0e5RhJKg=; b=tbYzJIZXf5MeDf n5uDULHOGO36qGzN5+skCPmuqPbg4Pa+zjXvWP6FG6kRoDV8Gq0xI7L4uqTRV1glD23bXiupFESX9 vHfK8qRfyPosnwtO3toKTLZ2hZwhRTWXKof4GyTlkFn+4y+4oo8aOsvdVipa1vpRF1/lBiR53gCW9 H6+tObj1FoeV/wlikiq6h989mWtFoXtx72QPSiYLvpkhL9ANlA+q2M8Siw6ZRP6SsbtovQLyGdx1R iZyZNIhKUORG5zwg6IMVFcxQyBHJlfaaRWt0P9lfF8DcL9uYC+0YMfpf6chw9NeNwGLETn4sYhasw CkLGTg+abkbXv3vW8r6w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nIa5g-008HLt-Lu; Fri, 11 Feb 2022 17:52:16 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nIa5X-008HJd-PM for linux-arm-kernel@lists.infradead.org; Fri, 11 Feb 2022 17:52:14 +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 dfw.source.kernel.org (Postfix) with ESMTPS id 6037561ACA; Fri, 11 Feb 2022 17:52:06 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 76A89C340E9; Fri, 11 Feb 2022 17:52:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1644601925; bh=MDjNpMVR2AwWur2zSVObJK4AXWlCJOvrM40G50Ed4x8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=TUR3RYoCgcketT/M6l+CFc4V4O0NTQjSUois1U11uStfRLAh8/aCEq4FUho29Ya8A exIusdg2YrIooVv55vf6CVGi2UStQzA3vMhwd73TDHXRNBz9dWe71uDpcYgYrYXu44 DVQVOnDCvHyAr9/ZxqL2Rfs83YAAUXVuSiyfDes6YsUZAqlV0BJt3TLLhmzkViVmOg GSo+qFldq7imKFJCMaEg4n8PPyeg/yDBLFXPjr1ESaqrRtRQCPsWKs1WixxlC+TlIu d1OaBwYoaprBm3wsOyRw4AXQAZy/b2KjzVen9GhaMeaZDwyCGyljXLQGb1zHg/LEU3 5YJtQXXonR6Gg== Received: by pali.im (Postfix) id 9D6C313A8; Fri, 11 Feb 2022 18:52:02 +0100 (CET) Date: Fri, 11 Feb 2022 18:52:02 +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: <20220211175202.gku5pkwn5wmjo5al@pali> References: <20220105150239.9628-1-pali@kernel.org> <20220112151814.24361-1-pali@kernel.org> <20220112151814.24361-11-pali@kernel.org> <20220211171917.GA740@lpieralisi> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220211171917.GA740@lpieralisi> User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220211_095207_937291_1A13B42F X-CRM114-Status: GOOD ( 56.38 ) 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 T24gRnJpZGF5IDExIEZlYnJ1YXJ5IDIwMjIgMTc6MTk6MTcgTG9yZW56byBQaWVyYWxpc2kgd3Jv dGU6Cj4gT24gV2VkLCBKYW4gMTIsIDIwMjIgYXQgMDQ6MTg6MTNQTSArMDEwMCwgUGFsaSBSb2jD oXIgd3JvdGU6Cj4gPiBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgbGVnYWN5IElOVHggaW50ZXJydXB0 cyByZWNlaXZlZCBmcm9tIG90aGVyIFBDSWUKPiA+IGRldmljZXMgYW5kIHdoaWNoIGFyZSByZXBv cnRlZCBieSBhIG5ldyBJTlR4IGlycSBjaGlwLgo+ID4gCj4gPiBXaXRoIHRoaXMgY2hhbmdlLCBr ZXJuZWwgY2FuIGRpc3Rpbmd1aXNoIGJldHdlZW4gSU5UQSwgSU5UQiwgSU5UQyBhbmQgSU5URAo+ ID4gaW50ZXJydXB0cy4KPiA+IAo+ID4gTm90ZSB0aGF0IGZvciB0aGlzIHN1cHBvcnQsIGRldmlj ZSB0cmVlIGZpbGVzIGhhcyB0byBiZSBwcm9wZXJseSBhZGp1c3RlZAo+ID4gdG8gcHJvdmlkZSAi aW50ZXJydXB0cyIgb3IgImludGVycnVwdHMtZXh0ZW5kZWQiIHByb3BlcnR5IHdpdGggaW50eAo+ ID4gaW50ZXJydXB0IHNvdXJjZSwgImludGVycnVwdC1uYW1lcyIgcHJvcGVydHkgd2l0aCAiaW50 eCIgc3RyaW5nIGFuZCBhbHNvCj4gPiAnaW50ZXJydXB0LWNvbnRyb2xsZXInIHN1Ym5vZGUgbXVz dCBiZSBkZWZpbmVkLgo+ID4gCj4gPiBJZiBkZXZpY2UgdHJlZSBmaWxlcyBkbyBub3QgcHJvdmlk ZSB0aGVzZSBub2RlcyB0aGVuIGRyaXZlciB3b3VsZCB3b3JrIGFzCj4gPiBiZWZvcmUuCj4gCj4g Tml0OiB0aGlzIGluZm9ybWF0aW9uIGlzIG5vdCB1c2VmdWwuIERUIHJ1bGVzIGFyZSB3cml0dGVu IGluIERUCj4gYmluZGluZ3MsIG5vdCBpbiBrZXJuZWwgY29tbWl0IGxvZ3MuIEFsbCBJIGFtIHNh eWluZyBpcyB0aGF0IGZpcm13YXJlCj4gZGV2ZWxvcGVycyBzaG91bGQgbm90IGhhdmUgdG8gcmVh ZCB0aGlzIGxvZyB0byB3cml0ZSBmaXJtd2FyZS4KCkl0IHdhcyBub3QgaW50ZW5kZWQgZm9yIGZp cm13YXJlIGRldmVsb3BlcnMsIGJ1dCBmb3IgcmV2aWV3ZXJzIG9mIHRoaXMKcGF0Y2ggdG8gdW5k ZXJzdGFuZCwgd2hhdCBpcyBoYXBwZW5pbmcgaW4gY29kZSBhbmQgdGhhdCB3aXRoIG9sZCBEVApm aWxlcyB0aGlzIHBhdGNoIGRvZXMgbm90IGNoYW5nZSBkcml2ZXIgYmVoYXZpb3IgKD0gd29yayBh cyBiZWZvcmUpLgoKPiA+IFNpZ25lZC1vZmYtYnk6IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5v cmc+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1tdmVidS5jIHwgMTg1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDE3NyBp bnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNp LW12ZWJ1LmMKPiA+IGluZGV4IDFlOTBhYjg4ODA3NS4uZGJiNmVjYjRjYjcwIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYwo+ID4gKysrIGIvZHJpdmVy cy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYwo+ID4gQEAgLTU0LDkgKzU0LDEwIEBACj4gPiAg CSBQQ0lFX0NPTkZfQUREUl9FTikKPiA+ICAjZGVmaW5lIFBDSUVfQ09ORl9EQVRBX09GRgkweDE4 ZmMKPiA+ICAjZGVmaW5lIFBDSUVfSU5UX0NBVVNFX09GRgkweDE5MDAKPiA+ICsjZGVmaW5lIFBD SUVfSU5UX1VOTUFTS19PRkYJMHgxOTEwCj4gCj4gTml0OiBJIHVuZGVyc3RhbmQgaXQgaXMgdGVt cHRpbmcgYnV0IGhlcmUgeW91IGFyZSByZWRlZmluaW5nIG9yIGJldHRlcgo+IGdpdmluZyBhIHBy b3BlciBsYWJlbCB0byBhIHJlZ2lzdGVyLiBTZXBhcmF0ZSBwYXRjaCBwbGVhc2UuCgpPayEKCj4g PiArI2RlZmluZSAgUENJRV9JTlRfSU5UWChpKQkJQklUKDI0K2kpCj4gPiAgI2RlZmluZSAgUENJ RV9JTlRfUE1fUE1FCQlCSVQoMjgpCj4gPiAtI2RlZmluZSBQQ0lFX01BU0tfT0ZGCQkweDE5MTAK PiAKPiBTZWUgYWJvdmUuCj4gCj4gPiAtI2RlZmluZSAgUENJRV9NQVNLX0VOQUJMRV9JTlRTICAg ICAgICAgIDB4MGYwMDAwMDAKPiA+ICsjZGVmaW5lICBQQ0lFX0lOVF9BTExfTUFTSwkJR0VOTUFT SygzMSwgMCkKPiA+ICAjZGVmaW5lIFBDSUVfQ1RSTF9PRkYJCTB4MWEwMAo+ID4gICNkZWZpbmUg IFBDSUVfQ1RSTF9YMV9NT0RFCQkweDAwMDEKPiA+ICAjZGVmaW5lICBQQ0lFX0NUUkxfUkNfTU9E RQkJQklUKDEpCj4gPiBAQCAtMTEwLDYgKzExMSw5IEBAIHN0cnVjdCBtdmVidV9wY2llX3BvcnQg ewo+ID4gIAlzdHJ1Y3QgbXZlYnVfcGNpZV93aW5kb3cgaW93aW47Cj4gPiAgCXUzMiBzYXZlZF9w Y2llX3N0YXQ7Cj4gPiAgCXN0cnVjdCByZXNvdXJjZSByZWdzOwo+ID4gKwlzdHJ1Y3QgaXJxX2Rv bWFpbiAqaW50eF9pcnFfZG9tYWluOwo+ID4gKwlyYXdfc3BpbmxvY2tfdCBpcnFfbG9jazsKPiA+ ICsJaW50IGludHhfaXJxOwo+ID4gIH07Cj4gPiAgCj4gPiAgc3RhdGljIGlubGluZSB2b2lkIG12 ZWJ1X3dyaXRlbChzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0LCB1MzIgdmFsLCB1MzIgcmVn KQo+ID4gQEAgLTIzNSw3ICsyMzksNyBAQCBzdGF0aWMgdm9pZCBtdmVidV9wY2llX3NldHVwX3dp bnMoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCkKPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBt dmVidV9wY2llX3NldHVwX2h3KHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCj4gPiAgewo+ ID4gLQl1MzIgY3RybCwgbG5rY2FwLCBjbWQsIGRldl9yZXYsIG1hc2s7Cj4gPiArCXUzMiBjdHJs LCBsbmtjYXAsIGNtZCwgZGV2X3JldiwgdW5tYXNrOwo+ID4gIAo+ID4gIAkvKiBTZXR1cCBQQ0ll IGNvbnRyb2xsZXIgdG8gUm9vdCBDb21wbGV4IG1vZGUuICovCj4gPiAgCWN0cmwgPSBtdmVidV9y ZWFkbChwb3J0LCBQQ0lFX0NUUkxfT0ZGKTsKPiA+IEBAIC0yODgsMTAgKzI5MiwzMCBAQCBzdGF0 aWMgdm9pZCBtdmVidV9wY2llX3NldHVwX2h3KHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQp Cj4gPiAgCS8qIFBvaW50IFBDSWUgdW5pdCBNQlVTIGRlY29kZSB3aW5kb3dzIHRvIERSQU0gc3Bh Y2UuICovCj4gPiAgCW12ZWJ1X3BjaWVfc2V0dXBfd2lucyhwb3J0KTsKPiA+ICAKPiA+IC0JLyog RW5hYmxlIGludGVycnVwdCBsaW5lcyBBLUQuICovCj4gPiAtCW1hc2sgPSBtdmVidV9yZWFkbChw b3J0LCBQQ0lFX01BU0tfT0ZGKTsKPiA+IC0JbWFzayB8PSBQQ0lFX01BU0tfRU5BQkxFX0lOVFM7 Cj4gPiAtCW12ZWJ1X3dyaXRlbChwb3J0LCBtYXNrLCBQQ0lFX01BU0tfT0ZGKTsKPiA+ICsJLyog TWFzayBhbGwgaW50ZXJydXB0IHNvdXJjZXMuICovCj4gPiArCW12ZWJ1X3dyaXRlbChwb3J0LCB+ UENJRV9JTlRfQUxMX01BU0ssIFBDSUVfSU5UX1VOTUFTS19PRkYpOwo+ID4gKwo+ID4gKwkvKiBD bGVhciBhbGwgaW50ZXJydXB0IGNhdXNlcy4gKi8KPiA+ICsJbXZlYnVfd3JpdGVsKHBvcnQsIH5Q Q0lFX0lOVF9BTExfTUFTSywgUENJRV9JTlRfQ0FVU0VfT0ZGKTsKPiA+ICsKPiA+ICsJaWYgKHBv cnQtPmludHhfaXJxIDw9IDApIHsKPiA+ICsJCS8qCj4gPiArCQkgKiBXaGVuIG5laXRoZXIgInN1 bW1hcnkiIGludGVycnVwdCwgbm9yICJpbnR4IiBpbnRlcnJ1cHQgd2FzCj4gPiArCQkgKiBzcGVj aWZpZWQgaW4gRFQgdGhlbiB1bm1hc2sgYWxsIGxlZ2FjeSBJTlR4IGludGVycnVwdHMgYXMgaW4K PiA+ICsJCSAqIHRoaXMgY2FzZSBkcml2ZXIgZG9lcyBub3QgcHJvdmlkZSBhIHdheSBmb3IgbWFz a2luZyBhbmQKPiA+ICsJCSAqIHVubWFza2luZyBvZiBpbmRpdmlkdWFsIGxlZ2FjeSBJTlR4IGlu dGVycnVwdHMuIEluIHRoaXMgY2FzZQo+ID4gKwkJICogYWxsIGludGVycnVwdHMsIGluY2x1ZGlu ZyBsZWdhY3kgSU5UeCBhcmUgcmVwb3J0ZWQgdmlhIG9uZQo+ID4gKwkJICogc2hhcmVkIEdJQyBz b3VyY2UgYW5kIHRoZXJlZm9yZSBrZXJuZWwgY2Fubm90IGRpc3Rpbmd1aXNoCj4gPiArCQkgKiB3 aGljaCBpbmRpdmlkdWFsIGxlZ2FjeSBJTlR4IHdhcyB0cmlnZ2VyZWQuIFRoZXNlIGludGVycnVw dHMKPiA+ICsJCSAqIGFyZSBzaGFyZWQsIHNvIGl0IHNob3VsZCBub3QgY2F1c2UgYW55IGlzc3Vl LiBKdXN0Cj4gPiArCQkgKiBwZXJmb3JtYW5jZSBwZW5hbHR5IGFzIGV2ZXJ5IFBDSWUgaW50ZXJy dXB0IGhhbmRsZXIgbmVlZHMgdG8KPiA+ICsJCSAqIGJlIGNhbGxlZCB3aGVuIHNvbWUgaW50ZXJy dXB0IGlzIHRyaWdnZXJlZC4KPiA+ICsJCSAqLwo+IAo+IFRoaXMgY29tbWVudCBhcHBsaWVzIHRv IGN1cnJlbnQgbWFpbmxpbmUgcmlnaHQgKGllIGl0IGRlc2NyaWJlcyBob3cKPiBjdXJyZW50IG1h aW5saW5lIGhhbmRsZXMgSU5UeCkgPyBJTU8geW91IHNob3VsZCBzcGxpdCBpdCBvdXQgaW4gYQo+ IHNlcGFyYXRlIHBhdGNoLgoKVGhpcyBhYm92ZSBjb21tZW50IGRlc2NyaWJlIHdoYXQgaGFwcGVu cyBpbiBpZi1icmFuY2ggd2hlbiBpbnR4X2lycSBpcwpub3Qgc2V0IChhcyB3cml0dGVuIGluIGNv bW1lbnQgIndoZW4gaW50eCBpbnRlcnJ1cHQgd2FzIG5vdCBzcGVjaWZpZWQgaW4KRFQiKS4gWW91 IGFyZSByaWdodCB0aGF0IHRoaXMgaXMgYWxzbyB0aGUgYmVoYXZpb3IgaW4gdGhlIGN1cnJlbnQK bWFpbmxpbmUuCgpJJ20gbm90IHN1cmUgaWYgdGhpcyBjb21tZW50IGNhbiBiZSBzcGxpdCBvdXQg YXMgc3VwcG9ydCBmb3IgImludHgiCmludGVycnVwdCBpcyBpbiB0aGlzIHBhdGNoLgoKPiBJIHVu ZGVyc3RhbmQgaXQgaXMgaGFyZCBidXQgYSBwYXRjaCBpcyBhIGxvZ2ljYWwgX2NoYW5nZV8sIHRo aXMKPiBjb21tZW50IGlzIGEgY2hhbmdlIHBlciBzZSwgaXQgaXMgYSBjbGFyaWZpY2F0aW9uIG9u IGN1cnJlbnQKPiBiZWhhdmlvdXIuCgpPaywgSSBjb3VsZCB0cnkgdG8gc3BsaXQgdGhpcyBjb21t ZW50IGludG8gdHdvIHBhdGNoZXMsIGJ1dCBwYXJ0IGFib3V0CmlmLWJyYW5jaCBjb21tZW50IG5l ZWRzIHRvIHN0YXkgaW4gInRoaXMiIHBhdGNoLgoKPiA+ICsJCXVubWFzayA9IG12ZWJ1X3JlYWRs KHBvcnQsIFBDSUVfSU5UX1VOTUFTS19PRkYpOwo+ID4gKwkJdW5tYXNrIHw9IFBDSUVfSU5UX0lO VFgoMCkgfCBQQ0lFX0lOVF9JTlRYKDEpIHwKPiA+ICsJCQkgIFBDSUVfSU5UX0lOVFgoMikgfCBQ Q0lFX0lOVF9JTlRYKDMpOwo+ID4gKwkJbXZlYnVfd3JpdGVsKHBvcnQsIHVubWFzaywgUENJRV9J TlRfVU5NQVNLX09GRik7Cj4gPiArCX0KPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHN0cnVjdCBt dmVidV9wY2llX3BvcnQgKm12ZWJ1X3BjaWVfZmluZF9wb3J0KHN0cnVjdCBtdmVidV9wY2llICpw Y2llLAo+ID4gQEAgLTkyNCw2ICs5NDgsMTA4IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX29wcyBtdmVi dV9wY2llX29wcyA9IHsKPiA+ICAJLndyaXRlID0gbXZlYnVfcGNpZV93cl9jb25mLAo+ID4gIH07 Cj4gPiAgCj4gPiArc3RhdGljIHZvaWQgbXZlYnVfcGNpZV9pbnR4X2lycV9tYXNrKHN0cnVjdCBp cnFfZGF0YSAqZCkKPiA+ICt7Cj4gPiArCXN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQgPSBk LT5kb21haW4tPmhvc3RfZGF0YTsKPiA+ICsJaXJxX2h3X251bWJlcl90IGh3aXJxID0gaXJxZF90 b19od2lycShkKTsKPiA+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiA+ICsJdTMyIHVubWFzazsK PiA+ICsKPiA+ICsJcmF3X3NwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5pcnFfbG9jaywgZmxhZ3Mp Owo+ID4gKwl1bm1hc2sgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsK PiA+ICsJdW5tYXNrICY9IH5QQ0lFX0lOVF9JTlRYKGh3aXJxKTsKPiA+ICsJbXZlYnVfd3JpdGVs KHBvcnQsIHVubWFzaywgUENJRV9JTlRfVU5NQVNLX09GRik7Cj4gPiArCXJhd19zcGluX3VubG9j a19pcnFyZXN0b3JlKCZwb3J0LT5pcnFfbG9jaywgZmxhZ3MpOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgdm9pZCBtdmVidV9wY2llX2ludHhfaXJxX3VubWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQp Cj4gPiArewo+ID4gKwlzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0ID0gZC0+ZG9tYWluLT5o b3N0X2RhdGE7Cj4gPiArCWlycV9od19udW1iZXJfdCBod2lycSA9IGlycWRfdG9faHdpcnEoZCk7 Cj4gPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiArCXUzMiB1bm1hc2s7Cj4gPiArCj4gPiAr CXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcG9ydC0+aXJxX2xvY2ssIGZsYWdzKTsKPiA+ICsJdW5t YXNrID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9JTlRfVU5NQVNLX09GRik7Cj4gPiArCXVubWFz ayB8PSBQQ0lFX0lOVF9JTlRYKGh3aXJxKTsKPiA+ICsJbXZlYnVfd3JpdGVsKHBvcnQsIHVubWFz aywgUENJRV9JTlRfVU5NQVNLX09GRik7Cj4gPiArCXJhd19zcGluX3VubG9ja19pcnFyZXN0b3Jl KCZwb3J0LT5pcnFfbG9jaywgZmxhZ3MpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgc3RydWN0 IGlycV9jaGlwIGludHhfaXJxX2NoaXAgPSB7Cj4gPiArCS5uYW1lID0gIm12ZWJ1LUlOVHgiLAo+ ID4gKwkuaXJxX21hc2sgPSBtdmVidV9wY2llX2ludHhfaXJxX21hc2ssCj4gPiArCS5pcnFfdW5t YXNrID0gbXZlYnVfcGNpZV9pbnR4X2lycV91bm1hc2ssCj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0 aWMgaW50IG12ZWJ1X3BjaWVfaW50eF9pcnFfbWFwKHN0cnVjdCBpcnFfZG9tYWluICpoLAo+ID4g KwkJCQkgICB1bnNpZ25lZCBpbnQgdmlycSwgaXJxX2h3X251bWJlcl90IGh3aXJxKQo+ID4gK3sK PiA+ICsJc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCA9IGgtPmhvc3RfZGF0YTsKPiA+ICsK PiA+ICsJaXJxX3NldF9zdGF0dXNfZmxhZ3ModmlycSwgSVJRX0xFVkVMKTsKPiA+ICsJaXJxX3Nl dF9jaGlwX2FuZF9oYW5kbGVyKHZpcnEsICZpbnR4X2lycV9jaGlwLCBoYW5kbGVfbGV2ZWxfaXJx KTsKPiA+ICsJaXJxX3NldF9jaGlwX2RhdGEodmlycSwgcG9ydCk7Cj4gPiArCj4gPiArCXJldHVy biAwOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9kb21haW5fb3Bz IG12ZWJ1X3BjaWVfaW50eF9pcnFfZG9tYWluX29wcyA9IHsKPiA+ICsJLm1hcCA9IG12ZWJ1X3Bj aWVfaW50eF9pcnFfbWFwLAo+ID4gKwkueGxhdGUgPSBpcnFfZG9tYWluX3hsYXRlX29uZWNlbGws Cj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgaW50IG12ZWJ1X3BjaWVfaW5pdF9pcnFfZG9tYWlu KHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZGV2aWNl ICpkZXYgPSAmcG9ydC0+cGNpZS0+cGRldi0+ZGV2Owo+ID4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUg KnBjaWVfaW50Y19ub2RlOwo+ID4gKwo+ID4gKwlyYXdfc3Bpbl9sb2NrX2luaXQoJnBvcnQtPmly cV9sb2NrKTsKPiA+ICsKPiA+ICsJcGNpZV9pbnRjX25vZGUgPSBvZl9nZXRfbmV4dF9jaGlsZChw b3J0LT5kbiwgTlVMTCk7Cj4gPiArCWlmICghcGNpZV9pbnRjX25vZGUpIHsKPiA+ICsJCWRldl9l cnIoZGV2LCAiTm8gUENJZSBJbnRjIG5vZGUgZm91bmQgZm9yICVzXG4iLCBwb3J0LT5uYW1lKTsK PiA+ICsJCXJldHVybiAtRU5PREVWOwo+ID4gKwl9Cj4gPiArCj4gPiArCXBvcnQtPmludHhfaXJx X2RvbWFpbiA9IGlycV9kb21haW5fYWRkX2xpbmVhcihwY2llX2ludGNfbm9kZSwgUENJX05VTV9J TlRYLAo+ID4gKwkJCQkJCSAgICAgICZtdmVidV9wY2llX2ludHhfaXJxX2RvbWFpbl9vcHMsCj4g PiArCQkJCQkJICAgICAgcG9ydCk7Cj4gPiArCW9mX25vZGVfcHV0KHBjaWVfaW50Y19ub2RlKTsK PiA+ICsJaWYgKCFwb3J0LT5pbnR4X2lycV9kb21haW4pIHsKPiA+ICsJCWRldl9lcnIoZGV2LCAi RmFpbGVkIHRvIGdldCBJTlR4IElSUSBkb21haW4gZm9yICVzXG4iLCBwb3J0LT5uYW1lKTsKPiA+ ICsJCXJldHVybiAtRU5PTUVNOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiAwOwo+ID4gK30K PiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBtdmVidV9wY2llX2lycV9oYW5kbGVyKHN0cnVjdCBpcnFf ZGVzYyAqZGVzYykKPiA+ICt7Cj4gPiArCXN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQgPSBp cnFfZGVzY19nZXRfaGFuZGxlcl9kYXRhKGRlc2MpOwo+ID4gKwlzdHJ1Y3QgaXJxX2NoaXAgKmNo aXAgPSBpcnFfZGVzY19nZXRfY2hpcChkZXNjKTsKPiA+ICsJc3RydWN0IGRldmljZSAqZGV2ID0g JnBvcnQtPnBjaWUtPnBkZXYtPmRldjsKPiA+ICsJdTMyIGNhdXNlLCB1bm1hc2ssIHN0YXR1czsK PiA+ICsJaW50IGk7Cj4gPiArCj4gPiArCWNoYWluZWRfaXJxX2VudGVyKGNoaXAsIGRlc2MpOwo+ ID4gKwo+ID4gKwljYXVzZSA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfSU5UX0NBVVNFX09GRik7 Cj4gPiArCXVubWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfSU5UX1VOTUFTS19PRkYpOwo+ ID4gKwlzdGF0dXMgPSBjYXVzZSAmIHVubWFzazsKPiA+ICsKPiA+ICsJLyogUHJvY2VzcyBsZWdh Y3kgSU5UeCBpbnRlcnJ1cHRzICovCj4gPiArCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX0lOVFg7 IGkrKykgewo+ID4gKwkJaWYgKCEoc3RhdHVzICYgUENJRV9JTlRfSU5UWChpKSkpCj4gPiArCQkJ Y29udGludWU7Cj4gPiArCj4gPiArCQlpZiAoZ2VuZXJpY19oYW5kbGVfZG9tYWluX2lycShwb3J0 LT5pbnR4X2lycV9kb21haW4sIGkpID09IC1FSU5WQUwpCj4gPiArCQkJZGV2X2Vycl9yYXRlbGlt aXRlZChkZXYsICJ1bmV4cGVjdGVkIElOVCVjIElSUVxuIiwgKGNoYXIpaSsnQScpOwo+ID4gKwl9 Cj4gPiArCj4gPiArCWNoYWluZWRfaXJxX2V4aXQoY2hpcCwgZGVzYyk7Cj4gPiArfQo+ID4gKwo+ ID4gIHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9tYXBfaXJxKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpk ZXYsIHU4IHNsb3QsIHU4IHBpbikKPiA+ICB7Cj4gPiAgCS8qIEludGVycnVwdCBzdXBwb3J0IG9u IG12ZWJ1IGVtdWxhdGVkIGJyaWRnZXMgaXMgbm90IGltcGxlbWVudGVkIHlldCAqLwo+ID4gQEAg LTExMjEsNiArMTI0NywyMSBAQCBzdGF0aWMgaW50IG12ZWJ1X3BjaWVfcGFyc2VfcG9ydChzdHJ1 Y3QgbXZlYnVfcGNpZSAqcGNpZSwKPiA+ICAJCXBvcnQtPmlvX2F0dHIgPSAtMTsKPiA+ICAJfQo+ ID4gIAo+ID4gKwkvKgo+ID4gKwkgKiBPbGQgRFQgYmluZGluZ3MgZG8gbm90IGNvbnRhaW4gImlu dHgiIGludGVycnVwdAo+ID4gKwkgKiBzbyBkbyBub3QgZmFpbCBwcm9iaW5nIGRyaXZlciB3aGVu IGludGVycnVwdCBkb2VzIG5vdCBleGlzdC4KPiA+ICsJICovCj4gPiArCXBvcnQtPmludHhfaXJx ID0gb2ZfaXJxX2dldF9ieW5hbWUoY2hpbGQsICJpbnR4Iik7Cj4gPiArCWlmIChwb3J0LT5pbnR4 X2lycSA9PSAtRVBST0JFX0RFRkVSKSB7Cj4gPiArCQlyZXQgPSBwb3J0LT5pbnR4X2lycTsKPiA+ ICsJCWdvdG8gZXJyOwo+ID4gKwl9Cj4gPiArCWlmIChwb3J0LT5pbnR4X2lycSA8PSAwKSB7Cj4g PiArCQlkZXZfd2FybihkZXYsICIlczogbGVnYWN5IElOVHggaW50ZXJydXB0cyBjYW5ub3QgYmUg bWFza2VkIGluZGl2aWR1YWxseSwgIgo+ID4gKwkJCSAgICAgICIlcE9GIGRvZXMgbm90IGNvbnRh aW4gaW50eCBpbnRlcnJ1cHRcbiIsCj4gPiArCQkJIHBvcnQtPm5hbWUsIGNoaWxkKTsKPiAKPiBI ZXJlIHlvdSBlbmQgdXAgd2l0aCBhIG5ldyB3YXJuaW5nIG9uIGV4aXN0aW5nIGZpcm13YXJlLiBJ cyBpdAo+IGxlZ2l0aW1hdGUgPyBJIHdvdWxkIHJlbW92ZSB0aGUgZGV2X3dhcm4oKS4KCkkgYWRk ZWQgdGhpcyB3YXJuaW5nIGluIHYyIGJlY2F1c2UgTWFyYyB3YW50ZWQgaXQuCgpTaG91bGQgSSAo YWdhaW4pIHJlbW92ZSBpdCBpbiB2Mz8KCj4gUm9iIGNlcnRhaW5seSBoYXMgbW9yZSBpbnNpZ2h0 ZnVsIGFkdmljZSBvbiB0aGlzLgo+IAo+IFRoYW5rcywKPiBMb3JlbnpvCj4gCj4gPiArCX0KPiA+ ICsKPiA+ICAJcmVzZXRfZ3BpbyA9IG9mX2dldF9uYW1lZF9ncGlvX2ZsYWdzKGNoaWxkLCAicmVz ZXQtZ3Bpb3MiLCAwLCAmZmxhZ3MpOwo+ID4gIAlpZiAocmVzZXRfZ3BpbyA9PSAtRVBST0JFX0RF RkVSKSB7Cj4gPiAgCQlyZXQgPSByZXNldF9ncGlvOwo+ID4gQEAgLTEzMTcsNiArMTQ1OCw3IEBA IHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQo+ID4gIAo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgcGNpZS0+bnBvcnRzOyBpKyspIHsKPiA+ICAJ CXN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQgPSAmcGNpZS0+cG9ydHNbaV07Cj4gPiArCQlp bnQgaXJxID0gcG9ydC0+aW50eF9pcnE7Cj4gPiAgCj4gPiAgCQljaGlsZCA9IHBvcnQtPmRuOwo+ ID4gIAkJaWYgKCFjaGlsZCkKPiA+IEBAIC0xMzQ0LDYgKzE0ODYsMjIgQEAgc3RhdGljIGludCBt dmVidV9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiAgCQkJY29u dGludWU7Cj4gPiAgCQl9Cj4gPiAgCj4gPiArCQlpZiAoaXJxID4gMCkgewo+ID4gKwkJCXJldCA9 IG12ZWJ1X3BjaWVfaW5pdF9pcnFfZG9tYWluKHBvcnQpOwo+ID4gKwkJCWlmIChyZXQpIHsKPiA+ ICsJCQkJZGV2X2VycihkZXYsICIlczogY2Fubm90IGluaXQgaXJxIGRvbWFpblxuIiwKPiA+ICsJ CQkJCXBvcnQtPm5hbWUpOwo+ID4gKwkJCQlwY2lfYnJpZGdlX2VtdWxfY2xlYW51cCgmcG9ydC0+ YnJpZGdlKTsKPiA+ICsJCQkJZGV2bV9pb3VubWFwKGRldiwgcG9ydC0+YmFzZSk7Cj4gPiArCQkJ CXBvcnQtPmJhc2UgPSBOVUxMOwo+ID4gKwkJCQltdmVidV9wY2llX3Bvd2VyZG93bihwb3J0KTsK PiA+ICsJCQkJY29udGludWU7Cj4gPiArCQkJfQo+ID4gKwkJCWlycV9zZXRfY2hhaW5lZF9oYW5k bGVyX2FuZF9kYXRhKGlycSwKPiA+ICsJCQkJCQkJIG12ZWJ1X3BjaWVfaXJxX2hhbmRsZXIsCj4g PiArCQkJCQkJCSBwb3J0KTsKPiA+ICsJCX0KPiA+ICsKPiA+ICAJCS8qCj4gPiAgCQkgKiBQQ0ll IHRvcG9sb2d5IGV4cG9ydGVkIGJ5IG12ZWJ1IGh3IGlzIHF1aXRlIGNvbXBsaWNhdGVkLiBJbgo+ ID4gIAkJICogcmVhbGl0eSBoYXMgc29tZXRoaW5nIGxpa2UgTiBmdWxseSBpbmRlcGVuZGVudCBo b3N0IGJyaWRnZXMKPiA+IEBAIC0xNDQ4LDYgKzE2MDYsNyBAQCBzdGF0aWMgaW50IG12ZWJ1X3Bj aWVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiAgCj4gPiAgCWZvciAo aSA9IDA7IGkgPCBwY2llLT5ucG9ydHM7IGkrKykgewo+ID4gIAkJc3RydWN0IG12ZWJ1X3BjaWVf cG9ydCAqcG9ydCA9ICZwY2llLT5wb3J0c1tpXTsKPiA+ICsJCWludCBpcnEgPSBwb3J0LT5pbnR4 X2lycTsKPiA+ICAKPiA+ICAJCWlmICghcG9ydC0+YmFzZSkKPiA+ICAJCQljb250aW51ZTsKPiA+ IEBAIC0xNDU4LDcgKzE2MTcsMTcgQEAgc3RhdGljIGludCBtdmVidV9wY2llX3JlbW92ZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gIAkJbXZlYnVfd3JpdGVsKHBvcnQsIGNtZCwg UENJRV9DTURfT0ZGKTsKPiA+ICAKPiA+ICAJCS8qIE1hc2sgYWxsIGludGVycnVwdCBzb3VyY2Vz LiAqLwo+ID4gLQkJbXZlYnVfd3JpdGVsKHBvcnQsIDAsIFBDSUVfTUFTS19PRkYpOwo+ID4gKwkJ bXZlYnVfd3JpdGVsKHBvcnQsIH5QQ0lFX0lOVF9BTExfTUFTSywgUENJRV9JTlRfVU5NQVNLX09G Rik7Cj4gPiArCj4gPiArCQkvKiBDbGVhciBhbGwgaW50ZXJydXB0IGNhdXNlcy4gKi8KPiA+ICsJ CW12ZWJ1X3dyaXRlbChwb3J0LCB+UENJRV9JTlRfQUxMX01BU0ssIFBDSUVfSU5UX0NBVVNFX09G Rik7Cj4gPiArCj4gPiArCQlpZiAoaXJxID4gMCkKPiA+ICsJCQlpcnFfc2V0X2NoYWluZWRfaGFu ZGxlcl9hbmRfZGF0YShpcnEsIE5VTEwsIE5VTEwpOwo+ID4gKwo+ID4gKwkJLyogUmVtb3ZlIElS USBkb21haW5zLiAqLwo+ID4gKwkJaWYgKHBvcnQtPmludHhfaXJxX2RvbWFpbikKPiA+ICsJCQlp cnFfZG9tYWluX3JlbW92ZShwb3J0LT5pbnR4X2lycV9kb21haW4pOwo+ID4gIAo+ID4gIAkJLyog RnJlZSBjb25maWcgc3BhY2UgZm9yIGVtdWxhdGVkIHJvb3QgYnJpZGdlLiAqLwo+ID4gIAkJcGNp X2JyaWRnZV9lbXVsX2NsZWFudXAoJnBvcnQtPmJyaWRnZSk7Cj4gPiAtLSAKPiA+IDIuMjAuMQo+ ID4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1h cm0ta2VybmVsCg==