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 84A5EC433F5 for ; Thu, 6 Jan 2022 15:46:32 +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=TookmUBBzB3aX2g8M1BcYfawcb+ZH7LDPkgx1WX09Yw=; b=gF5jBvTf+TGiA5 C0qL0N6N3/BbJzzgutfeMRFbeKRScGC35Xl24BoZyuQAQxaHyZh3q3+LB8EOzfC+7viY2Sf6Df+JG TpC4z9i4gjD0hBjVimgL8ie3MLQIfVYwdEjrhRZWnjqL7C1bMuXt6JLnXCUTKXGdA84useb8O2wTF C3F73uVIJ4vdvKWjGMPEqjqysVWCm1kwChbC9u7H7uAeEMsTlNjPsaRgCP5Gu1B/SaQLFNZZsI0BX 3KNcWIHQb1p/n+ffN0rTSA5ApCu/ms4/xRYpGgkSzGwXHVbgMCv0JTjG064aKr9U5iIC/xLxovRll CIsQZACCbQ9XreynaJkA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5Uwk-000U7O-OV; Thu, 06 Jan 2022 15:44: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 1n5Uwg-000U60-D9 for linux-arm-kernel@lists.infradead.org; Thu, 06 Jan 2022 15:44: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 B656DB8224E; Thu, 6 Jan 2022 15:44:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 23AAFC36AE0; Thu, 6 Jan 2022 15:44:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641483891; bh=SKGy+AHODodXaXimOBt9iqG18ZJR+nt3b+A1v5FyIjI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Hg92c79hinepMxjVYpZkneNPyG/6S+jyeJkq8p/L0ZahwFDoivjpVSQLSE8l1ziQW 8YE7IPaTut7yk+EqgqEIpnSD3tItRBSMHMUN4NZ6oaB/H2zIUWECbwmtlxBB14UaK3 uWJ+B3STbQc+GeMRynzp8VTqREg9mvFKiihhKHRY+5o9V1cPsej0At02NIHRTa7q9U ZQhMnPD5Cuv58DxG7h8IPXDoWmQg9pH7T9zEdLcF8W2H7hr1+hJI1dr1SNqfCe7F4B Lx/CTOD07tR2wISsQ1hQvKeb/aUssgfE0QVoDHAWZBprwt++6LAYK9rc9I0dfc3Ouj rm0SoUd+ros3w== Received: by pali.im (Postfix) id 0B2E9BFF; Thu, 6 Jan 2022 16:44:47 +0100 (CET) Date: Thu, 6 Jan 2022 16:44: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: <20220106154447.aie6taiuvav5wu6y@pali> References: <20220105150239.9628-1-pali@kernel.org> <20220105150239.9628-11-pali@kernel.org> <87bl0ovq7f.wl-maz@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <87bl0ovq7f.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_074454_761437_4BA4A657 X-CRM114-Status: GOOD ( 52.24 ) 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 T24gVGh1cnNkYXkgMDYgSmFudWFyeSAyMDIyIDE1OjI4OjIwIE1hcmMgWnluZ2llciB3cm90ZToK PiBPbiBXZWQsIDA1IEphbiAyMDIyIDE1OjAyOjM4ICswMDAwLAo+IFBhbGkgUm9ow6FyIDxwYWxp QGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gCj4gPiBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgbGVnYWN5 IElOVHggaW50ZXJydXB0cyByZWNlaXZlZCBmcm9tIG90aGVyIFBDSWUKPiA+IGRldmljZXMgYW5k IHdoaWNoIGFyZSByZXBvcnRlZCBieSBhIG5ldyBJTlR4IGlycSBjaGlwLgo+ID4gCj4gPiBXaXRo IHRoaXMgY2hhbmdlLCBrZXJuZWwgY2FuIGRpc3Rpbmd1aXNoIGJldHdlZW4gSU5UQSwgSU5UQiwg SU5UQyBhbmQgSU5URAo+ID4gaW50ZXJydXB0cy4KPiA+IAo+ID4gTm90ZSB0aGF0IGZvciB0aGlz IHN1cHBvcnQsIGRldmljZSB0cmVlIGZpbGVzIGhhcyB0byBiZSBwcm9wZXJseSBhZGp1c3RlZAo+ ID4gdG8gcHJvdmlkZSAiaW50ZXJydXB0cyIgb3IgImludGVycnVwdHMtZXh0ZW5kZWQiIHByb3Bl cnR5IHdpdGggaW50eAo+ID4gaW50ZXJydXB0IHNvdXJjZSwgImludGVycnVwdC1uYW1lcyIgcHJv cGVydHkgd2l0aCAiaW50eCIgc3RyaW5nIGFuZCBhbHNvCj4gPiAnaW50ZXJydXB0LWNvbnRyb2xs ZXInIHN1Ym5vZGUgbXVzdCBiZSBkZWZpbmVkLgo+ID4gCj4gPiBJZiBkZXZpY2UgdHJlZSBmaWxl cyBkbyBub3QgcHJvdmlkZSB0aGVzZSBub2RlcyB0aGVuIGRyaXZlciB3b3VsZCB3b3JrIGFzCj4g PiBiZWZvcmUuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5l bC5vcmc+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1tdmVidS5jIHwg MTgyICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDE3 NCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpLW12ZWJ1LmMKPiA+IGluZGV4IDFlOTBhYjg4ODA3NS4uMDRiY2RkN2I3YTZkIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYwo+ID4gKysrIGIvZHJp dmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYwo+ID4gQEAgLTU0LDkgKzU0LDEwIEBACj4g PiAgCSBQQ0lFX0NPTkZfQUREUl9FTikKPiA+ICAjZGVmaW5lIFBDSUVfQ09ORl9EQVRBX09GRgkw eDE4ZmMKPiA+ICAjZGVmaW5lIFBDSUVfSU5UX0NBVVNFX09GRgkweDE5MDAKPiA+ICsjZGVmaW5l IFBDSUVfSU5UX1VOTUFTS19PRkYJMHgxOTEwCj4gPiArI2RlZmluZSAgUENJRV9JTlRfSU5UWChp KQkJQklUKDI0K2kpCj4gPiAgI2RlZmluZSAgUENJRV9JTlRfUE1fUE1FCQlCSVQoMjgpCj4gPiAt I2RlZmluZSBQQ0lFX01BU0tfT0ZGCQkweDE5MTAKPiA+IC0jZGVmaW5lICBQQ0lFX01BU0tfRU5B QkxFX0lOVFMgICAgICAgICAgMHgwZjAwMDAwMAo+ID4gKyNkZWZpbmUgIFBDSUVfSU5UX0FMTF9N QVNLCQlHRU5NQVNLKDMxLCAwKQo+ID4gICNkZWZpbmUgUENJRV9DVFJMX09GRgkJMHgxYTAwCj4g PiAgI2RlZmluZSAgUENJRV9DVFJMX1gxX01PREUJCTB4MDAwMQo+ID4gICNkZWZpbmUgIFBDSUVf Q1RSTF9SQ19NT0RFCQlCSVQoMSkKPiA+IEBAIC0xMTAsNiArMTExLDEwIEBAIHN0cnVjdCBtdmVi dV9wY2llX3BvcnQgewo+ID4gIAlzdHJ1Y3QgbXZlYnVfcGNpZV93aW5kb3cgaW93aW47Cj4gPiAg CXUzMiBzYXZlZF9wY2llX3N0YXQ7Cj4gPiAgCXN0cnVjdCByZXNvdXJjZSByZWdzOwo+ID4gKwlz dHJ1Y3QgaXJxX2RvbWFpbiAqaW50eF9pcnFfZG9tYWluOwo+ID4gKwlzdHJ1Y3QgaXJxX2NoaXAg aW50eF9pcnFfY2hpcDsKPiAKPiBXaHkgaXMgdGhpcyBzdHJ1Y3R1cmUgcGVyIHBvcnQ/IEl0IHJl YWxseSBzaG91bGQgYmUgZ2xvYmFsLiBQcmludGluZwo+IHRoZSBwb3J0IG51bWJlciBpbiB0aGUg bmFtZSBpc24ndCBlbm91Z2ggb2YgYSByZWFzb24uCgpCZWNhdXNlIGVhY2ggcG9ydCBoYXMgaXRz IG93biBpbmRlcGVuZGVudCBzZXQgb2YgSU5UQS1JTlREIGludGVycnVwdHMuCgo+ID4gKwlyYXdf c3BpbmxvY2tfdCBpcnFfbG9jazsKPiA+ICsJaW50IGludHhfaXJxOwo+ID4gIH07Cj4gPiAgCj4g PiAgc3RhdGljIGlubGluZSB2b2lkIG12ZWJ1X3dyaXRlbChzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0 ICpwb3J0LCB1MzIgdmFsLCB1MzIgcmVnKQo+ID4gQEAgLTIzNSw3ICsyNDAsNyBAQCBzdGF0aWMg dm9pZCBtdmVidV9wY2llX3NldHVwX3dpbnMoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCkK PiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBtdmVidV9wY2llX3NldHVwX2h3KHN0cnVjdCBtdmVidV9w Y2llX3BvcnQgKnBvcnQpCj4gPiAgewo+ID4gLQl1MzIgY3RybCwgbG5rY2FwLCBjbWQsIGRldl9y ZXYsIG1hc2s7Cj4gPiArCXUzMiBjdHJsLCBsbmtjYXAsIGNtZCwgZGV2X3JldiwgdW5tYXNrOwo+ ID4gIAo+ID4gIAkvKiBTZXR1cCBQQ0llIGNvbnRyb2xsZXIgdG8gUm9vdCBDb21wbGV4IG1vZGUu ICovCj4gPiAgCWN0cmwgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0NUUkxfT0ZGKTsKPiA+IEBA IC0yODgsMTAgKzI5MywzMCBAQCBzdGF0aWMgdm9pZCBtdmVidV9wY2llX3NldHVwX2h3KHN0cnVj dCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCj4gPiAgCS8qIFBvaW50IFBDSWUgdW5pdCBNQlVTIGRl Y29kZSB3aW5kb3dzIHRvIERSQU0gc3BhY2UuICovCj4gPiAgCW12ZWJ1X3BjaWVfc2V0dXBfd2lu cyhwb3J0KTsKPiA+ICAKPiA+IC0JLyogRW5hYmxlIGludGVycnVwdCBsaW5lcyBBLUQuICovCj4g PiAtCW1hc2sgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX01BU0tfT0ZGKTsKPiA+IC0JbWFzayB8 PSBQQ0lFX01BU0tfRU5BQkxFX0lOVFM7Cj4gPiAtCW12ZWJ1X3dyaXRlbChwb3J0LCBtYXNrLCBQ Q0lFX01BU0tfT0ZGKTsKPiA+ICsJLyogTWFzayBhbGwgaW50ZXJydXB0IHNvdXJjZXMuICovCj4g PiArCW12ZWJ1X3dyaXRlbChwb3J0LCB+UENJRV9JTlRfQUxMX01BU0ssIFBDSUVfSU5UX1VOTUFT S19PRkYpOwo+ID4gKwo+ID4gKwkvKiBDbGVhciBhbGwgaW50ZXJydXB0IGNhdXNlcy4gKi8KPiA+ ICsJbXZlYnVfd3JpdGVsKHBvcnQsIH5QQ0lFX0lOVF9BTExfTUFTSywgUENJRV9JTlRfQ0FVU0Vf T0ZGKTsKPiA+ICsKPiA+ICsJaWYgKHBvcnQtPmludHhfaXJxIDw9IDApIHsKPiA+ICsJCS8qCj4g PiArCQkgKiBXaGVuIG5laXRoZXIgInN1bW1hcnkiIGludGVycnVwdCwgbm9yICJpbnR4IiBpbnRl cnJ1cHQgd2FzCj4gPiArCQkgKiBzcGVjaWZpZWQgaW4gRFQgdGhlbiB1bm1hc2sgYWxsIGxlZ2Fj eSBJTlR4IGludGVycnVwdHMgYXMgaW4KPiA+ICsJCSAqIHRoaXMgY2FzZSBkcml2ZXIgZG9lcyBu b3QgcHJvdmlkZSBhIHdheSBmb3IgbWFza2luZyBhbmQKPiA+ICsJCSAqIHVubWFza2luZyBvZiBp bmRpdmlkdWFsIGxlZ2FjeSBJTlR4IGludGVycnVwdHMuIEluIHRoaXMgY2FzZQo+ID4gKwkJICog YWxsIGludGVycnVwdHMsIGluY2x1ZGluZyBsZWdhY3kgSU5UeCBhcmUgcmVwb3J0ZWQgdmlhIG9u ZQo+ID4gKwkJICogc2hhcmVkIEdJQyBzb3VyY2UgYW5kIHRoZXJlZm9yZSBrZXJuZWwgY2Fubm90 IGRpc3Rpbmd1aXNoCj4gPiArCQkgKiB3aGljaCBpbmRpdmlkdWFsIGxlZ2FjeSBJTlR4IHdhcyB0 cmlnZ2VyZWQuIFRoZXNlIGludGVycnVwdHMKPiA+ICsJCSAqIGFyZSBzaGFyZWQsIHNvIGl0IHNo b3VsZCBub3QgY2F1c2UgYW55IGlzc3VlLiBKdXN0Cj4gPiArCQkgKiBwZXJmb3JtYW5jZSBwZW5h bHR5IGFzIGV2ZXJ5IFBDSWUgaW50ZXJydXB0IGhhbmRsZXIgbmVlZHMgdG8KPiA+ICsJCSAqIGJl IGNhbGxlZCB3aGVuIHNvbWUgaW50ZXJydXB0IGlzIHRyaWdnZXJlZC4KPiA+ICsJCSAqLwo+ID4g KwkJdW5tYXNrID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9JTlRfVU5NQVNLX09GRik7Cj4gPiAr CQl1bm1hc2sgfD0gUENJRV9JTlRfSU5UWCgwKSB8IFBDSUVfSU5UX0lOVFgoMSkgfAo+ID4gKwkJ CSAgUENJRV9JTlRfSU5UWCgyKSB8IFBDSUVfSU5UX0lOVFgoMyk7Cj4gPiArCQltdmVidV93cml0 ZWwocG9ydCwgdW5tYXNrLCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKPiAKPiBNYXliZSB3b3J0aCBw cmludGluZyBhIHdhcm5pbmcgaGVyZSwgc28gdGhhdCB0aGUgdXNlciBrbm93cyB0aGV5IGFyZQo+ IG9uIHRoaW4gaWNlLgoKT2suIEkgY2FuIGFkZCBpdCBoZXJlLiBBbnl3YXksIHRoaXMgaXMgZGVm YXVsdCBjdXJyZW50IHN0YXRlIHdpdGhvdXQKdGhpcyBwYXRjaC4KCj4gPiArCX0KPiA+ICB9Cj4g PiAgCj4gPiAgc3RhdGljIHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKm12ZWJ1X3BjaWVfZmluZF9w b3J0KHN0cnVjdCBtdmVidV9wY2llICpwY2llLAo+ID4gQEAgLTkyNCw2ICs5NDksMTA5IEBAIHN0 YXRpYyBzdHJ1Y3QgcGNpX29wcyBtdmVidV9wY2llX29wcyA9IHsKPiA+ICAJLndyaXRlID0gbXZl YnVfcGNpZV93cl9jb25mLAo+ID4gIH07Cj4gPiAgCj4gPiArc3RhdGljIHZvaWQgbXZlYnVfcGNp ZV9pbnR4X2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKPiA+ICt7Cj4gPiArCXN0cnVjdCBt dmVidV9wY2llX3BvcnQgKnBvcnQgPSBkLT5kb21haW4tPmhvc3RfZGF0YTsKPiA+ICsJaXJxX2h3 X251bWJlcl90IGh3aXJxID0gaXJxZF90b19od2lycShkKTsKPiA+ICsJdW5zaWduZWQgbG9uZyBm bGFnczsKPiA+ICsJdTMyIHVubWFzazsKPiA+ICsKPiA+ICsJcmF3X3NwaW5fbG9ja19pcnFzYXZl KCZwb3J0LT5pcnFfbG9jaywgZmxhZ3MpOwo+ID4gKwl1bm1hc2sgPSBtdmVidV9yZWFkbChwb3J0 LCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKPiA+ICsJdW5tYXNrICY9IH5QQ0lFX0lOVF9JTlRYKGh3 aXJxKTsKPiA+ICsJbXZlYnVfd3JpdGVsKHBvcnQsIHVubWFzaywgUENJRV9JTlRfVU5NQVNLX09G Rik7Cj4gPiArCXJhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5pcnFfbG9jaywgZmxh Z3MpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBtdmVidV9wY2llX2ludHhfaXJxX3Vu bWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gPiArewo+ID4gKwlzdHJ1Y3QgbXZlYnVfcGNpZV9w b3J0ICpwb3J0ID0gZC0+ZG9tYWluLT5ob3N0X2RhdGE7Cj4gPiArCWlycV9od19udW1iZXJfdCBo d2lycSA9IGlycWRfdG9faHdpcnEoZCk7Cj4gPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiAr CXUzMiB1bm1hc2s7Cj4gPiArCj4gPiArCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcG9ydC0+aXJx X2xvY2ssIGZsYWdzKTsKPiA+ICsJdW5tYXNrID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9JTlRf VU5NQVNLX09GRik7Cj4gPiArCXVubWFzayB8PSBQQ0lFX0lOVF9JTlRYKGh3aXJxKTsKPiA+ICsJ bXZlYnVfd3JpdGVsKHBvcnQsIHVubWFzaywgUENJRV9JTlRfVU5NQVNLX09GRik7Cj4gPiArCXJh d19zcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5pcnFfbG9jaywgZmxhZ3MpOwo+ID4gK30K PiA+ICsKPiA+ICtzdGF0aWMgaW50IG12ZWJ1X3BjaWVfaW50eF9pcnFfbWFwKHN0cnVjdCBpcnFf ZG9tYWluICpoLAo+ID4gKwkJCQkgICB1bnNpZ25lZCBpbnQgdmlycSwgaXJxX2h3X251bWJlcl90 IGh3aXJxKQo+ID4gK3sKPiA+ICsJc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCA9IGgtPmhv c3RfZGF0YTsKPiA+ICsKPiA+ICsJaXJxX3NldF9zdGF0dXNfZmxhZ3ModmlycSwgSVJRX0xFVkVM KTsKPiA+ICsJaXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKHZpcnEsICZwb3J0LT5pbnR4X2lycV9j aGlwLCBoYW5kbGVfbGV2ZWxfaXJxKTsKPiA+ICsJaXJxX3NldF9jaGlwX2RhdGEodmlycSwgcG9y dCk7Cj4gPiArCj4gPiArCXJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGlycV9kb21haW5fb3BzIG12ZWJ1X3BjaWVfaW50eF9pcnFfZG9tYWluX29wcyA9IHsK PiA+ICsJLm1hcCA9IG12ZWJ1X3BjaWVfaW50eF9pcnFfbWFwLAo+ID4gKwkueGxhdGUgPSBpcnFf ZG9tYWluX3hsYXRlX29uZWNlbGwsCj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgaW50IG12ZWJ1 X3BjaWVfaW5pdF9pcnFfZG9tYWluKHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCj4gPiAr ewo+ID4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcG9ydC0+cGNpZS0+cGRldi0+ZGV2Owo+ID4g KwlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBjaWVfaW50Y19ub2RlOwo+ID4gKwo+ID4gKwlyYXdfc3Bp bl9sb2NrX2luaXQoJnBvcnQtPmlycV9sb2NrKTsKPiA+ICsKPiA+ICsJcG9ydC0+aW50eF9pcnFf Y2hpcC5uYW1lID0gZGV2bV9rYXNwcmludGYoZGV2LCBHRlBfS0VSTkVMLAo+ID4gKwkJCQkJCSAg Im12ZWJ1LSVzLUlOVHgiLAo+ID4gKwkJCQkJCSAgcG9ydC0+bmFtZSk7Cj4gCj4gVGhhdCdzIGV4 YWN0bHkgd2hhdCBJIHJlYWxseSBkb24ndCB3YW50IHRvIHNlZS4gSXQgcHJldmVudHMgc2hhcmlu ZyBvZgo+IHRoZSBpcnFfY2hpcCBzdHJ1Y3R1cmUsIGFuZCBnZXRzIGluIHRoZSB3YXkgb2YgbWFr aW5nIGl0IGNvbnN0IGluIHRoZQo+IGZ1dHVyZS4gWWVzLCBJIGtub3cgdGhhdCBzb21lIGRyaXZl cnMgZG8gdGhhdC4gSSBjYW4ndCBmaXggdGhvc2UsCj4gYmVjYXVzZSAvcHJvYy9pbnRlcnJ1cHRz IGlzIEFCSS4gQnV0IEkgcmVhbGx5IGRvbid0IHdhbnQgdG8gc2VlIG1vcmUKPiBvZiB0aGVzZS4K CldlbGwsIEkgZG8gbm90IHVuZGVyc3RhbmQgd2h5IGl0IHNob3VsZCBiZSBzaGFyZWQgYW5kIHdp dGggd2hvLiBIVyBoYXMgTgppbmRlcGVuZGVudCBJUlEgY2hpcHMgZm9yIGxlZ2FjeSBpbnRlcnJ1 cHRzLiBBbmQgZWFjaCBvbmUgd2lsbCBiZQpzcGVjaWZpZWQgaW4gRFQgcGVyIEhXIGxheW91dCAv IGRlc2lnbi4KCj4gL3N5cy9rZXJuZWwvZGVidWcvaXJxcyBhbHJlYWR5IGhhcyBhbGwgdGhlIGlu Zm9ybWF0aW9uIHlvdSBuZWVkLCBhcyBpdAo+IHdpbGwgaGFwcGlseSBnaXZlIHlvdSB0aGUgZG9t YWluIG5hbWUgYW5kIHRoZSBpbnRlcnJ1cHQgdG9wb2xvZ3kuCj4gCj4gPiArCXBvcnQtPmludHhf aXJxX2NoaXAuaXJxX21hc2sgPSBtdmVidV9wY2llX2ludHhfaXJxX21hc2s7Cj4gPiArCXBvcnQt PmludHhfaXJxX2NoaXAuaXJxX3VubWFzayA9IG12ZWJ1X3BjaWVfaW50eF9pcnFfdW5tYXNrOwo+ ID4gKwo+ID4gKwlwY2llX2ludGNfbm9kZSA9IG9mX2dldF9uZXh0X2NoaWxkKHBvcnQtPmRuLCBO VUxMKTsKPiA+ICsJaWYgKCFwY2llX2ludGNfbm9kZSkgewo+ID4gKwkJZGV2X2VycihkZXYsICJO byBQQ0llIEludGMgbm9kZSBmb3VuZCBmb3IgJXNcbiIsIHBvcnQtPm5hbWUpOwo+ID4gKwkJcmV0 dXJuIC1FTk9ERVY7Cj4gPiArCX0KPiA+ICsKPiA+ICsJcG9ydC0+aW50eF9pcnFfZG9tYWluID0g aXJxX2RvbWFpbl9hZGRfbGluZWFyKHBjaWVfaW50Y19ub2RlLCBQQ0lfTlVNX0lOVFgsCj4gPiAr CQkJCQkJICAgICAgJm12ZWJ1X3BjaWVfaW50eF9pcnFfZG9tYWluX29wcywKPiA+ICsJCQkJCQkg ICAgICBwb3J0KTsKPiA+ICsJb2Zfbm9kZV9wdXQocGNpZV9pbnRjX25vZGUpOwo+ID4gKwlpZiAo IXBvcnQtPmludHhfaXJxX2RvbWFpbikgewo+ID4gKwkJZGV2bV9rZnJlZShkZXYsIHBvcnQtPmlu dHhfaXJxX2NoaXAubmFtZSk7Cj4gPiArCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgSU5U eCBJUlEgZG9tYWluIGZvciAlc1xuIiwgcG9ydC0+bmFtZSk7Cj4gPiArCQlyZXR1cm4gLUVOT01F TTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGlj IHZvaWQgbXZlYnVfcGNpZV9pcnFfaGFuZGxlcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCj4gPiAr ewo+ID4gKwlzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0ID0gaXJxX2Rlc2NfZ2V0X2hhbmRs ZXJfZGF0YShkZXNjKTsKPiA+ICsJc3RydWN0IGlycV9jaGlwICpjaGlwID0gaXJxX2Rlc2NfZ2V0 X2NoaXAoZGVzYyk7Cj4gPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwb3J0LT5wY2llLT5wZGV2 LT5kZXY7Cj4gPiArCXUzMiBjYXVzZSwgdW5tYXNrLCBzdGF0dXM7Cj4gPiArCWludCBpOwo+ID4g Kwo+ID4gKwljaGFpbmVkX2lycV9lbnRlcihjaGlwLCBkZXNjKTsKPiA+ICsKPiA+ICsJY2F1c2Ug PSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9DQVVTRV9PRkYpOwo+ID4gKwl1bm1hc2sgPSBt dmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKPiAKPiBXaHkgZG8geW91IG5l ZWQgdG8gcmVhZCB0aGlzPyBJZiB0aGUgQ0FVU0UgcmVnaXN0ZXIgYWxzbyByZXR1cm5zIHRoZQo+ IG1hc2tlZCBpbnRlcnJ1cHRzIHRoYXQgYXJlIHBlbmRpbmcsCgpZZXMsIGl0IHJldHVybnMgYWxs IGludGVycnVwdHMsIGV2ZW4gdGhvc2Ugd2hpY2ggYXJlIG1hc2tlZCBmb3Igd2hpY2ggaXMKbm90 IHN5c3RlbSBpbnRlcmVzdGVkLgoKPiBpdCBtYXkgYmUgd29ydGgga2VlcGluZyBhIHNoYWRvdwo+ IGNvcHkgb2YgdGhlIHRoaXMgcmVnaXN0ZXIsIGFzIHlvdSBlbmQtdXAgaGF2aW5nIGFuIGV4dHJh IE1NSU8gcmVhZCBvbgo+IGVhY2ggYW5kIGV2ZXJ5IGludGVycnVwdCwgd2hpY2ggY2FuJ3QgYmUg Z3JlYXQgZm9yIHBlcmZvcm1hbmNlLgoKT2suIEkgY2FuIHNldCBzaGFkb3cgY29weSBvZiB1bm1h c2sgcmVnaXN0ZXIgaW50byBwb3J0IHN0cnVjdHVyZS4gQnV0IGl0CmhhcyByZWFsbHkgcGVyZm9y bWFuY2UgaW1wYWN0IHdoZW4gcmVhZGluZyBkaXJlY3RseSB1bm1hc2sgcmVnaXN0ZXIgZnJvbQpo dyBhbmQgd2hlbiByZWFkaW5nIGl0IGZyb20gcG9ydCBzaGFkb3cgY29weSBzdHJ1Y3R1cmU/Cgo+ ID4gKwlzdGF0dXMgPSBjYXVzZSAmIHVubWFzazsKPiA+ICsKPiA+ICsJLyogUHJvY2VzcyBsZWdh Y3kgSU5UeCBpbnRlcnJ1cHRzICovCj4gPiArCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX0lOVFg7 IGkrKykgewo+ID4gKwkJaWYgKCEoc3RhdHVzICYgUENJRV9JTlRfSU5UWChpKSkpCj4gPiArCQkJ Y29udGludWU7Cj4gPiArCj4gPiArCQlpZiAoZ2VuZXJpY19oYW5kbGVfZG9tYWluX2lycShwb3J0 LT5pbnR4X2lycV9kb21haW4sIGkpID09IC1FSU5WQUwpCj4gPiArCQkJZGV2X2Vycl9yYXRlbGlt aXRlZChkZXYsICJ1bmV4cGVjdGVkIElOVCVjIElSUVxuIiwgKGNoYXIpaSsnQScpOwo+ID4gKwl9 Cj4gPiArCj4gPiArCWNoYWluZWRfaXJxX2V4aXQoY2hpcCwgZGVzYyk7Cj4gPiArfQo+ID4gKwo+ ID4gIHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9tYXBfaXJxKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpk ZXYsIHU4IHNsb3QsIHU4IHBpbikKPiA+ICB7Cj4gPiAgCS8qIEludGVycnVwdCBzdXBwb3J0IG9u IG12ZWJ1IGVtdWxhdGVkIGJyaWRnZXMgaXMgbm90IGltcGxlbWVudGVkIHlldCAqLwo+ID4gQEAg LTExMjEsNiArMTI0OSwxNiBAQCBzdGF0aWMgaW50IG12ZWJ1X3BjaWVfcGFyc2VfcG9ydChzdHJ1 Y3QgbXZlYnVfcGNpZSAqcGNpZSwKPiA+ICAJCXBvcnQtPmlvX2F0dHIgPSAtMTsKPiA+ICAJfQo+ ID4gIAo+ID4gKwkvKgo+ID4gKwkgKiBPbGQgRFQgYmluZGluZ3MgZG8gbm90IGNvbnRhaW4gImlu dHgiIGludGVycnVwdAo+ID4gKwkgKiBzbyBkbyBub3QgZmFpbCBwcm9iaW5nIGRyaXZlciB3aGVu IGludGVycnVwdCBkb2VzIG5vdCBleGlzdC4KPiA+ICsJICovCj4gPiArCXBvcnQtPmludHhfaXJx ID0gb2ZfaXJxX2dldF9ieW5hbWUoY2hpbGQsICJpbnR4Iik7Cj4gPiArCWlmIChwb3J0LT5pbnR4 X2lycSA9PSAtRVBST0JFX0RFRkVSKSB7Cj4gPiArCQlyZXQgPSBwb3J0LT5pbnR4X2lycTsKPiA+ ICsJCWdvdG8gZXJyOwo+ID4gKwl9Cj4gPiArCj4gPiAgCXJlc2V0X2dwaW8gPSBvZl9nZXRfbmFt ZWRfZ3Bpb19mbGFncyhjaGlsZCwgInJlc2V0LWdwaW9zIiwgMCwgJmZsYWdzKTsKPiA+ICAJaWYg KHJlc2V0X2dwaW8gPT0gLUVQUk9CRV9ERUZFUikgewo+ID4gIAkJcmV0ID0gcmVzZXRfZ3BpbzsK PiA+IEBAIC0xMzE3LDYgKzE0NTUsNyBAQCBzdGF0aWMgaW50IG12ZWJ1X3BjaWVfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ICAKPiA+ICAJZm9yIChpID0gMDsgaSA8IHBj aWUtPm5wb3J0czsgaSsrKSB7Cj4gPiAgCQlzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0ID0g JnBjaWUtPnBvcnRzW2ldOwo+ID4gKwkJaW50IGlycSA9IHBvcnQtPmludHhfaXJxOwo+ID4gIAo+ ID4gIAkJY2hpbGQgPSBwb3J0LT5kbjsKPiA+ICAJCWlmICghY2hpbGQpCj4gPiBAQCAtMTM0NCw2 ICsxNDgzLDIyIEBAIHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ID4gIAkJCWNvbnRpbnVlOwo+ID4gIAkJfQo+ID4gIAo+ID4gKwkJaWYg KGlycSA+IDApIHsKPiA+ICsJCQlyZXQgPSBtdmVidV9wY2llX2luaXRfaXJxX2RvbWFpbihwb3J0 KTsKPiA+ICsJCQlpZiAocmV0KSB7Cj4gPiArCQkJCWRldl9lcnIoZGV2LCAiJXM6IGNhbm5vdCBp bml0IGlycSBkb21haW5cbiIsCj4gPiArCQkJCQlwb3J0LT5uYW1lKTsKPiA+ICsJCQkJcGNpX2Jy aWRnZV9lbXVsX2NsZWFudXAoJnBvcnQtPmJyaWRnZSk7Cj4gPiArCQkJCWRldm1faW91bm1hcChk ZXYsIHBvcnQtPmJhc2UpOwo+ID4gKwkJCQlwb3J0LT5iYXNlID0gTlVMTDsKPiA+ICsJCQkJbXZl YnVfcGNpZV9wb3dlcmRvd24ocG9ydCk7Cj4gPiArCQkJCWNvbnRpbnVlOwo+ID4gKwkJCX0KPiA+ ICsJCQlpcnFfc2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0YShpcnEsCj4gPiArCQkJCQkJCSBt dmVidV9wY2llX2lycV9oYW5kbGVyLAo+ID4gKwkJCQkJCQkgcG9ydCk7Cj4gPiArCQl9Cj4gPiAr Cj4gPiAgCQkvKgo+ID4gIAkJICogUENJZSB0b3BvbG9neSBleHBvcnRlZCBieSBtdmVidSBodyBp cyBxdWl0ZSBjb21wbGljYXRlZC4gSW4KPiA+ICAJCSAqIHJlYWxpdHkgaGFzIHNvbWV0aGluZyBs aWtlIE4gZnVsbHkgaW5kZXBlbmRlbnQgaG9zdCBicmlkZ2VzCj4gPiBAQCAtMTQ0OCw2ICsxNjAz LDcgQEAgc3RhdGljIGludCBtdmVidV9wY2llX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQo+ID4gIAo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgcGNpZS0+bnBvcnRzOyBpKyspIHsK PiA+ICAJCXN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQgPSAmcGNpZS0+cG9ydHNbaV07Cj4g PiArCQlpbnQgaXJxID0gcG9ydC0+aW50eF9pcnE7Cj4gPiAgCj4gPiAgCQlpZiAoIXBvcnQtPmJh c2UpCj4gPiAgCQkJY29udGludWU7Cj4gPiBAQCAtMTQ1OCw3ICsxNjE0LDE3IEBAIHN0YXRpYyBp bnQgbXZlYnVfcGNpZV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ICAJ CW12ZWJ1X3dyaXRlbChwb3J0LCBjbWQsIFBDSUVfQ01EX09GRik7Cj4gPiAgCj4gPiAgCQkvKiBN YXNrIGFsbCBpbnRlcnJ1cHQgc291cmNlcy4gKi8KPiA+IC0JCW12ZWJ1X3dyaXRlbChwb3J0LCAw LCBQQ0lFX01BU0tfT0ZGKTsKPiA+ICsJCW12ZWJ1X3dyaXRlbChwb3J0LCB+UENJRV9JTlRfQUxM X01BU0ssIFBDSUVfSU5UX1VOTUFTS19PRkYpOwo+ID4gKwo+ID4gKwkJLyogQ2xlYXIgYWxsIGlu dGVycnVwdCBjYXVzZXMuICovCj4gPiArCQltdmVidV93cml0ZWwocG9ydCwgflBDSUVfSU5UX0FM TF9NQVNLLCBQQ0lFX0lOVF9DQVVTRV9PRkYpOwo+ID4gKwo+ID4gKwkJLyogUmVtb3ZlIElSUSBk b21haW5zLiAqLwo+ID4gKwkJaWYgKHBvcnQtPmludHhfaXJxX2RvbWFpbikKPiA+ICsJCQlpcnFf ZG9tYWluX3JlbW92ZShwb3J0LT5pbnR4X2lycV9kb21haW4pOwo+ID4gKwo+ID4gKwkJaWYgKGly cSA+IDApCj4gPiArCQkJaXJxX3NldF9jaGFpbmVkX2hhbmRsZXJfYW5kX2RhdGEoaXJxLCBOVUxM LCBOVUxMKTsKPiA+ICAKPiA+ICAJCS8qIEZyZWUgY29uZmlnIHNwYWNlIGZvciBlbXVsYXRlZCBy b290IGJyaWRnZS4gKi8KPiA+ICAJCXBjaV9icmlkZ2VfZW11bF9jbGVhbnVwKCZwb3J0LT5icmlk Z2UpOwo+IAo+IFRoYW5rcywKPiAKPiAJTS4KPiAKPiAtLSAKPiBXaXRob3V0IGRldmlhdGlvbiBm cm9tIHRoZSBub3JtLCBwcm9ncmVzcyBpcyBub3QgcG9zc2libGUuCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==