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 83EAFC433F5 for ; Fri, 7 Jan 2022 11:52:29 +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=KqmU8/BYgRg+iV5HcaOWwCWsPsGSGH5MnC/0U8x/Nx8=; b=r/B4YBNZ1q4d6R vRxRLar/Yr18p8qQlvgSaH6k90Vel32fO3hNeQXUQbKSDoC8sTcPqxZ6h12FnJ2DCrqsRWT4WLpAi vYdD47PteovczD+FxBeqEJGvMeCrKoeF+6cfbtwPCoM7JPYiZD5bU5StiAJ3Os5OEVsdoJHeAArlV yC/bpQcs4XJQYefvirnoinn1b2kBCg1AQA84deyBwABc3bWDbdmIpEzyrMagswzG2xQB3FvtoKv7A /ikQZSX5heVhj5iSZatQ1joEaucBuqv4lyLIRs9VZr5sL3hml9Ui6ML0y9fECeCsWhpl03SfzJnGE SYy8Q5Rym1a/n033GF1w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5nlt-003hJp-TG; Fri, 07 Jan 2022 11:51:02 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5nlp-003hI9-Bi for linux-arm-kernel@lists.infradead.org; Fri, 07 Jan 2022 11:50:59 +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 D8B4A60A53; Fri, 7 Jan 2022 11:50:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F2115C36AE5; Fri, 7 Jan 2022 11:50:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641556256; bh=tlSofhkr2jzdAYuwsla28s0MjyMWwGKIHX80B/VQRrM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=XNWfyA+aLJEC6aM3jDiOTBffhJ0zbs0inYpMsvPonLfCnM947+z6kMNhixvYvA8t3 qLQxL9wWU7KuuR2m+D7Y3sZqME7ExvyezzgQ92Trad+bXjQLg55wIS5qMascwn+W51 tO2/fTSx2tgL9ILo4IOZmK6rEIdHTDQYpPTWSrK/OUvVCLGjVyPlUTphT5gTRGuRdN zWZklTXgjpqCy1KKz5DUW6kPrhJ+SHEJnyOTMOJI98haCuBwTbSMqPzHvthsY5LDuu 8yZW/ykqTzcx0wmM9vbCumnpYaENQRNh8+YHAgMMCxYTSFUswl76gJU5Et4yhNUUkl WKXg/8+TUyaMw== Received: by pali.im (Postfix) id 44ABDB22; Fri, 7 Jan 2022 12:50:53 +0100 (CET) Date: Fri, 7 Jan 2022 12:50:53 +0100 From: Pali =?utf-8?B?Um9ow6Fy?= To: Marc Zyngier Cc: Marek =?utf-8?B?QmVow7pu?= , Lorenzo Pieralisi , Bjorn Helgaas , Rob Herring , Thomas Petazzoni , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , 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: <20220107115053.k5d2uv7yrftrpcez@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> <20220106162047.vqykmygs75eimfgy@pali> <877dbcvngf.wl-maz@kernel.org> <20220106182044.3ff0828c@thinkpad> <874k6gvkhz.wl-maz@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <874k6gvkhz.wl-maz@kernel.org> User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220107_035057_552323_0B2FA134 X-CRM114-Status: GOOD ( 34.66 ) 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 T24gVGh1cnNkYXkgMDYgSmFudWFyeSAyMDIyIDE3OjMxOjM2IE1hcmMgWnluZ2llciB3cm90ZToK PiBPbiBUaHUsIDA2IEphbiAyMDIyIDE3OjIwOjQ0ICswMDAwLAo+IE1hcmVrIEJlaMO6biA8a2Fi ZWxAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPiAKPiA+IE9uIFRodSwgMDYgSmFuIDIwMjIgMTY6Mjc6 NDQgKzAwMDAKPiA+IE1hcmMgWnluZ2llciA8bWF6QGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gPiBZ b3UgYXJlIGNvbXBsZXRlbHkgbWlzc2luZyBteSBwb2ludC4gSSdtIHRhbGtpbmcgYWJvdXQgZGF0 YQo+ID4gPiBzdHJ1Y3R1cmVzLCB5b3UncmUgdGFsa2luZyBhYm91dCBpbnRlcnJ1cHRzLiBZb3Ug aGF2ZSB0aGlzOgo+ID4gPiAKPiA+ID4gc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCB7Cj4gPiA+ICAg ICAgICAvLyBUb25zIG9mIHN0dWZmCj4gPiA+ICAgICAgICBzdHJ1Y3QgaXJxX2NoaXAgaW50eF9j aGlwOwo+ID4gPiB9Owo+ID4gPiAKPiA+ID4gV2hhdCBJIHdhbnQgeW91IHRvIGRvIGlzOgo+ID4g PiAKPiA+ID4gc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCB7Cj4gPiA+ICAgICAgICAvLyBUb25zIG9m IHN0dWZmCj4gPiA+IH07Cj4gPiA+IAo+ID4gPiBzdGF0aWMgc3RydWN0IGlycV9jaGlwIGludHhf Y2hpcCA9IHsKPiA+ID4gCS5uYW1lCQk9ICJJTlR4IiwKPiA+ID4gCS5pcnFfbWFzawk9IG12ZWJ1 X3BjaWVfaW50eF9pcnFfbWFzaywKPiA+ID4gCS5pcnFfdW5tYXNrCT0gbXZlYnVfcGNpZV9pbnR4 X2lycV91bm1hc2s7Cj4gPiA+IH07Cj4gPiA+IAo+ID4gPiBUaGF0J3MgaXQuIE5vIG1vcmUsIG5v IGxlc3MuCj4gPiA+IAo+ID4gPiAJTS4KPiA+ID4gCj4gPiAKPiA+IEhtbSwgYnV0IHN0cnVjdCBp cnFfY2hpcCBjb250YWlucyBhIGR5bmFtaWMgbWVtYmVyLAo+ID4gICBzdHJ1Y3QgZGV2aWNlICpw YXJlbnRfZGV2aWNlOwo+ID4gSXNuJ3QgdGhhdCB1c2VkPyBPciBhcmUgeW91IHBsYW5uaW5nIHRv IGtpbGwgaXQ/Cj4gCj4gSW5kZWVkLCBhbmQgSSBhbSBkZWZpbml0ZWx5IHBsYW5uaW5nIHRvIGtp bGwgaXQuIFRoaXMgaXMgdGhlIHdyb25nCj4gcGxhY2UgZm9yIHRoaXMgc3R1ZmYsIGFuZCBJIHdh bnQgaXQgZ29uZS4gVGhlcmUgYXJlIHRoYW5rZnVsbHkgdmVyeQo+IGZldyB1c2VycyBvZiB0aGlz IG1pc2ZlYXR1cmUuCgpPaywgc28gd2hhdCBhYm91dCB0aGlzIGNoYW5nZT8KCmRpZmYgLS1naXQg YS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1tdmVidS5jIGIvZHJpdmVycy9wY2kvY29udHJv bGxlci9wY2ktbXZlYnUuYwppbmRleCAxZTkwYWI4ODgwNzUuLjVjODE2MzM4YTU2OSAxMDA2NDQK LS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYworKysgYi9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaS1tdmVidS5jCkBAIC01NCw5ICs1NCwxMCBAQAogCSBQQ0lFX0NPTkZf QUREUl9FTikKICNkZWZpbmUgUENJRV9DT05GX0RBVEFfT0ZGCTB4MThmYwogI2RlZmluZSBQQ0lF X0lOVF9DQVVTRV9PRkYJMHgxOTAwCisjZGVmaW5lIFBDSUVfSU5UX1VOTUFTS19PRkYJMHgxOTEw CisjZGVmaW5lICBQQ0lFX0lOVF9JTlRYKGkpCQlCSVQoMjQraSkKICNkZWZpbmUgIFBDSUVfSU5U X1BNX1BNRQkJQklUKDI4KQotI2RlZmluZSBQQ0lFX01BU0tfT0ZGCQkweDE5MTAKLSNkZWZpbmUg IFBDSUVfTUFTS19FTkFCTEVfSU5UUyAgICAgICAgICAweDBmMDAwMDAwCisjZGVmaW5lICBQQ0lF X0lOVF9BTExfTUFTSwkJR0VOTUFTSygzMSwgMCkKICNkZWZpbmUgUENJRV9DVFJMX09GRgkJMHgx YTAwCiAjZGVmaW5lICBQQ0lFX0NUUkxfWDFfTU9ERQkJMHgwMDAxCiAjZGVmaW5lICBQQ0lFX0NU UkxfUkNfTU9ERQkJQklUKDEpCkBAIC0xMTAsNiArMTExLDkgQEAgc3RydWN0IG12ZWJ1X3BjaWVf cG9ydCB7CiAJc3RydWN0IG12ZWJ1X3BjaWVfd2luZG93IGlvd2luOwogCXUzMiBzYXZlZF9wY2ll X3N0YXQ7CiAJc3RydWN0IHJlc291cmNlIHJlZ3M7CisJc3RydWN0IGlycV9kb21haW4gKmludHhf aXJxX2RvbWFpbjsKKwlyYXdfc3BpbmxvY2tfdCBpcnFfbG9jazsKKwlpbnQgaW50eF9pcnE7CiB9 OwogCiBzdGF0aWMgaW5saW5lIHZvaWQgbXZlYnVfd3JpdGVsKHN0cnVjdCBtdmVidV9wY2llX3Bv cnQgKnBvcnQsIHUzMiB2YWwsIHUzMiByZWcpCkBAIC0yMzUsNyArMjM5LDcgQEAgc3RhdGljIHZv aWQgbXZlYnVfcGNpZV9zZXR1cF93aW5zKHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCiAK IHN0YXRpYyB2b2lkIG12ZWJ1X3BjaWVfc2V0dXBfaHcoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAq cG9ydCkKIHsKLQl1MzIgY3RybCwgbG5rY2FwLCBjbWQsIGRldl9yZXYsIG1hc2s7CisJdTMyIGN0 cmwsIGxua2NhcCwgY21kLCBkZXZfcmV2LCB1bm1hc2s7CiAKIAkvKiBTZXR1cCBQQ0llIGNvbnRy b2xsZXIgdG8gUm9vdCBDb21wbGV4IG1vZGUuICovCiAJY3RybCA9IG12ZWJ1X3JlYWRsKHBvcnQs IFBDSUVfQ1RSTF9PRkYpOwpAQCAtMjg4LDEwICsyOTIsMzAgQEAgc3RhdGljIHZvaWQgbXZlYnVf cGNpZV9zZXR1cF9odyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0KQogCS8qIFBvaW50IFBD SWUgdW5pdCBNQlVTIGRlY29kZSB3aW5kb3dzIHRvIERSQU0gc3BhY2UuICovCiAJbXZlYnVfcGNp ZV9zZXR1cF93aW5zKHBvcnQpOwogCi0JLyogRW5hYmxlIGludGVycnVwdCBsaW5lcyBBLUQuICov Ci0JbWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfTUFTS19PRkYpOwotCW1hc2sgfD0gUENJ RV9NQVNLX0VOQUJMRV9JTlRTOwotCW12ZWJ1X3dyaXRlbChwb3J0LCBtYXNrLCBQQ0lFX01BU0tf T0ZGKTsKKwkvKiBNYXNrIGFsbCBpbnRlcnJ1cHQgc291cmNlcy4gKi8KKwltdmVidV93cml0ZWwo cG9ydCwgflBDSUVfSU5UX0FMTF9NQVNLLCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKKworCS8qIENs ZWFyIGFsbCBpbnRlcnJ1cHQgY2F1c2VzLiAqLworCW12ZWJ1X3dyaXRlbChwb3J0LCB+UENJRV9J TlRfQUxMX01BU0ssIFBDSUVfSU5UX0NBVVNFX09GRik7CisKKwlpZiAocG9ydC0+aW50eF9pcnEg PD0gMCkgeworCQkvKgorCQkgKiBXaGVuIG5laXRoZXIgInN1bW1hcnkiIGludGVycnVwdCwgbm9y ICJpbnR4IiBpbnRlcnJ1cHQgd2FzCisJCSAqIHNwZWNpZmllZCBpbiBEVCB0aGVuIHVubWFzayBh bGwgbGVnYWN5IElOVHggaW50ZXJydXB0cyBhcyBpbgorCQkgKiB0aGlzIGNhc2UgZHJpdmVyIGRv ZXMgbm90IHByb3ZpZGUgYSB3YXkgZm9yIG1hc2tpbmcgYW5kCisJCSAqIHVubWFza2luZyBvZiBp bmRpdmlkdWFsIGxlZ2FjeSBJTlR4IGludGVycnVwdHMuIEluIHRoaXMgY2FzZQorCQkgKiBhbGwg aW50ZXJydXB0cywgaW5jbHVkaW5nIGxlZ2FjeSBJTlR4IGFyZSByZXBvcnRlZCB2aWEgb25lCisJ CSAqIHNoYXJlZCBHSUMgc291cmNlIGFuZCB0aGVyZWZvcmUga2VybmVsIGNhbm5vdCBkaXN0aW5n dWlzaAorCQkgKiB3aGljaCBpbmRpdmlkdWFsIGxlZ2FjeSBJTlR4IHdhcyB0cmlnZ2VyZWQuIFRo ZXNlIGludGVycnVwdHMKKwkJICogYXJlIHNoYXJlZCwgc28gaXQgc2hvdWxkIG5vdCBjYXVzZSBh bnkgaXNzdWUuIEp1c3QKKwkJICogcGVyZm9ybWFuY2UgcGVuYWx0eSBhcyBldmVyeSBQQ0llIGlu dGVycnVwdCBoYW5kbGVyIG5lZWRzIHRvCisJCSAqIGJlIGNhbGxlZCB3aGVuIHNvbWUgaW50ZXJy dXB0IGlzIHRyaWdnZXJlZC4KKwkJICovCisJCXVubWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBD SUVfSU5UX1VOTUFTS19PRkYpOworCQl1bm1hc2sgfD0gUENJRV9JTlRfSU5UWCgwKSB8IFBDSUVf SU5UX0lOVFgoMSkgfAorCQkJICBQQ0lFX0lOVF9JTlRYKDIpIHwgUENJRV9JTlRfSU5UWCgzKTsK KwkJbXZlYnVfd3JpdGVsKHBvcnQsIHVubWFzaywgUENJRV9JTlRfVU5NQVNLX09GRik7CisJfQog fQogCiBzdGF0aWMgc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqbXZlYnVfcGNpZV9maW5kX3BvcnQo c3RydWN0IG12ZWJ1X3BjaWUgKnBjaWUsCkBAIC05MjQsNiArOTQ4LDEwOCBAQCBzdGF0aWMgc3Ry dWN0IHBjaV9vcHMgbXZlYnVfcGNpZV9vcHMgPSB7CiAJLndyaXRlID0gbXZlYnVfcGNpZV93cl9j b25mLAogfTsKIAorc3RhdGljIHZvaWQgbXZlYnVfcGNpZV9pbnR4X2lycV9tYXNrKHN0cnVjdCBp cnFfZGF0YSAqZCkKK3sKKwlzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0ID0gZC0+ZG9tYWlu LT5ob3N0X2RhdGE7CisJaXJxX2h3X251bWJlcl90IGh3aXJxID0gaXJxZF90b19od2lycShkKTsK Kwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXUzMiB1bm1hc2s7CisKKwlyYXdfc3Bpbl9sb2NrX2ly cXNhdmUoJnBvcnQtPmlycV9sb2NrLCBmbGFncyk7CisJdW5tYXNrID0gbXZlYnVfcmVhZGwocG9y dCwgUENJRV9JTlRfVU5NQVNLX09GRik7CisJdW5tYXNrICY9IH5QQ0lFX0lOVF9JTlRYKGh3aXJx KTsKKwltdmVidV93cml0ZWwocG9ydCwgdW5tYXNrLCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKKwly YXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+aXJxX2xvY2ssIGZsYWdzKTsKK30KKwor c3RhdGljIHZvaWQgbXZlYnVfcGNpZV9pbnR4X2lycV91bm1hc2soc3RydWN0IGlycV9kYXRhICpk KQoreworCXN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQgPSBkLT5kb21haW4tPmhvc3RfZGF0 YTsKKwlpcnFfaHdfbnVtYmVyX3QgaHdpcnEgPSBpcnFkX3RvX2h3aXJxKGQpOworCXVuc2lnbmVk IGxvbmcgZmxhZ3M7CisJdTMyIHVubWFzazsKKworCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcG9y dC0+aXJxX2xvY2ssIGZsYWdzKTsKKwl1bm1hc2sgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0lO VF9VTk1BU0tfT0ZGKTsKKwl1bm1hc2sgfD0gUENJRV9JTlRfSU5UWChod2lycSk7CisJbXZlYnVf d3JpdGVsKHBvcnQsIHVubWFzaywgUENJRV9JTlRfVU5NQVNLX09GRik7CisJcmF3X3NwaW5fdW5s b2NrX2lycXJlc3RvcmUoJnBvcnQtPmlycV9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBzdHJ1 Y3QgaXJxX2NoaXAgaW50eF9pcnFfY2hpcCA9IHsKKwkubmFtZSA9ICJtdmVidS1JTlR4IiwKKwku aXJxX21hc2sgPSBtdmVidV9wY2llX2ludHhfaXJxX21hc2ssCisJLmlycV91bm1hc2sgPSBtdmVi dV9wY2llX2ludHhfaXJxX3VubWFzaywKK307CisKK3N0YXRpYyBpbnQgbXZlYnVfcGNpZV9pbnR4 X2lycV9tYXAoc3RydWN0IGlycV9kb21haW4gKmgsCisJCQkJICAgdW5zaWduZWQgaW50IHZpcnEs IGlycV9od19udW1iZXJfdCBod2lycSkKK3sKKwlzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0 ID0gaC0+aG9zdF9kYXRhOworCisJaXJxX3NldF9zdGF0dXNfZmxhZ3ModmlycSwgSVJRX0xFVkVM KTsKKwlpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIodmlycSwgJmludHhfaXJxX2NoaXAsIGhhbmRs ZV9sZXZlbF9pcnEpOworCWlycV9zZXRfY2hpcF9kYXRhKHZpcnEsIHBvcnQpOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgbXZlYnVfcGNpZV9p bnR4X2lycV9kb21haW5fb3BzID0geworCS5tYXAgPSBtdmVidV9wY2llX2ludHhfaXJxX21hcCwK KwkueGxhdGUgPSBpcnFfZG9tYWluX3hsYXRlX29uZWNlbGwsCit9OworCitzdGF0aWMgaW50IG12 ZWJ1X3BjaWVfaW5pdF9pcnFfZG9tYWluKHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCit7 CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBvcnQtPnBjaWUtPnBkZXYtPmRldjsKKwlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKnBjaWVfaW50Y19ub2RlOworCisJcmF3X3NwaW5fbG9ja19pbml0KCZwb3J0 LT5pcnFfbG9jayk7CisKKwlwY2llX2ludGNfbm9kZSA9IG9mX2dldF9uZXh0X2NoaWxkKHBvcnQt PmRuLCBOVUxMKTsKKwlpZiAoIXBjaWVfaW50Y19ub2RlKSB7CisJCWRldl9lcnIoZGV2LCAiTm8g UENJZSBJbnRjIG5vZGUgZm91bmQgZm9yICVzXG4iLCBwb3J0LT5uYW1lKTsKKwkJcmV0dXJuIC1F Tk9ERVY7CisJfQorCisJcG9ydC0+aW50eF9pcnFfZG9tYWluID0gaXJxX2RvbWFpbl9hZGRfbGlu ZWFyKHBjaWVfaW50Y19ub2RlLCBQQ0lfTlVNX0lOVFgsCisJCQkJCQkgICAgICAmbXZlYnVfcGNp ZV9pbnR4X2lycV9kb21haW5fb3BzLAorCQkJCQkJICAgICAgcG9ydCk7CisJb2Zfbm9kZV9wdXQo cGNpZV9pbnRjX25vZGUpOworCWlmICghcG9ydC0+aW50eF9pcnFfZG9tYWluKSB7CisJCWRldl9l cnIoZGV2LCAiRmFpbGVkIHRvIGdldCBJTlR4IElSUSBkb21haW4gZm9yICVzXG4iLCBwb3J0LT5u YW1lKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2 b2lkIG12ZWJ1X3BjaWVfaXJxX2hhbmRsZXIoc3RydWN0IGlycV9kZXNjICpkZXNjKQoreworCXN0 cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQgPSBpcnFfZGVzY19nZXRfaGFuZGxlcl9kYXRhKGRl c2MpOworCXN0cnVjdCBpcnFfY2hpcCAqY2hpcCA9IGlycV9kZXNjX2dldF9jaGlwKGRlc2MpOwor CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwb3J0LT5wY2llLT5wZGV2LT5kZXY7CisJdTMyIGNhdXNl LCB1bm1hc2ssIHN0YXR1czsKKwlpbnQgaTsKKworCWNoYWluZWRfaXJxX2VudGVyKGNoaXAsIGRl c2MpOworCisJY2F1c2UgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9DQVVTRV9PRkYpOwor CXVubWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfSU5UX1VOTUFTS19PRkYpOworCXN0YXR1 cyA9IGNhdXNlICYgdW5tYXNrOworCisJLyogUHJvY2VzcyBsZWdhY3kgSU5UeCBpbnRlcnJ1cHRz ICovCisJZm9yIChpID0gMDsgaSA8IFBDSV9OVU1fSU5UWDsgaSsrKSB7CisJCWlmICghKHN0YXR1 cyAmIFBDSUVfSU5UX0lOVFgoaSkpKQorCQkJY29udGludWU7CisKKwkJaWYgKGdlbmVyaWNfaGFu ZGxlX2RvbWFpbl9pcnEocG9ydC0+aW50eF9pcnFfZG9tYWluLCBpKSA9PSAtRUlOVkFMKQorCQkJ ZGV2X2Vycl9yYXRlbGltaXRlZChkZXYsICJ1bmV4cGVjdGVkIElOVCVjIElSUVxuIiwgKGNoYXIp aSsnQScpOworCX0KKworCWNoYWluZWRfaXJxX2V4aXQoY2hpcCwgZGVzYyk7Cit9CisKIHN0YXRp YyBpbnQgbXZlYnVfcGNpZV9tYXBfaXJxKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNs b3QsIHU4IHBpbikKIHsKIAkvKiBJbnRlcnJ1cHQgc3VwcG9ydCBvbiBtdmVidSBlbXVsYXRlZCBi cmlkZ2VzIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQgKi8KQEAgLTExMjEsNiArMTI0NywyMSBAQCBz dGF0aWMgaW50IG12ZWJ1X3BjaWVfcGFyc2VfcG9ydChzdHJ1Y3QgbXZlYnVfcGNpZSAqcGNpZSwK IAkJcG9ydC0+aW9fYXR0ciA9IC0xOwogCX0KIAorCS8qCisJICogT2xkIERUIGJpbmRpbmdzIGRv IG5vdCBjb250YWluICJpbnR4IiBpbnRlcnJ1cHQKKwkgKiBzbyBkbyBub3QgZmFpbCBwcm9iaW5n IGRyaXZlciB3aGVuIGludGVycnVwdCBkb2VzIG5vdCBleGlzdC4KKwkgKi8KKwlwb3J0LT5pbnR4 X2lycSA9IG9mX2lycV9nZXRfYnluYW1lKGNoaWxkLCAiaW50eCIpOworCWlmIChwb3J0LT5pbnR4 X2lycSA9PSAtRVBST0JFX0RFRkVSKSB7CisJCXJldCA9IHBvcnQtPmludHhfaXJxOworCQlnb3Rv IGVycjsKKwl9CisJaWYgKHBvcnQtPmludHhfaXJxIDw9IDApIHsKKwkJZGV2X3dhcm4oZGV2LCAi JXM6IGxlZ2FjeSBJTlR4IGludGVycnVwdHMgY2Fubm90IGJlIG1hc2tlZCBpbmRpdmlkdWFsbHks ICIKKwkJCSAgICAgICIlcE9GIGRvZXMgbm90IGNvbnRhaW4gaW50eCBpbnRlcnJ1cHRcbiIsCisJ CQkgcG9ydC0+bmFtZSwgY2hpbGQpOworCX0KKwogCXJlc2V0X2dwaW8gPSBvZl9nZXRfbmFtZWRf Z3Bpb19mbGFncyhjaGlsZCwgInJlc2V0LWdwaW9zIiwgMCwgJmZsYWdzKTsKIAlpZiAocmVzZXRf Z3BpbyA9PSAtRVBST0JFX0RFRkVSKSB7CiAJCXJldCA9IHJlc2V0X2dwaW87CkBAIC0xMzE3LDYg KzE0NTgsNyBAQCBzdGF0aWMgaW50IG12ZWJ1X3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIAogCWZvciAoaSA9IDA7IGkgPCBwY2llLT5ucG9ydHM7IGkrKykgewogCQlz dHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0ID0gJnBjaWUtPnBvcnRzW2ldOworCQlpbnQgaXJx ID0gcG9ydC0+aW50eF9pcnE7CiAKIAkJY2hpbGQgPSBwb3J0LT5kbjsKIAkJaWYgKCFjaGlsZCkK QEAgLTEzNDQsNiArMTQ4NiwyMiBAQCBzdGF0aWMgaW50IG12ZWJ1X3BjaWVfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJaWYgKGlycSA+ IDApIHsKKwkJCXJldCA9IG12ZWJ1X3BjaWVfaW5pdF9pcnFfZG9tYWluKHBvcnQpOworCQkJaWYg KHJldCkgeworCQkJCWRldl9lcnIoZGV2LCAiJXM6IGNhbm5vdCBpbml0IGlycSBkb21haW5cbiIs CisJCQkJCXBvcnQtPm5hbWUpOworCQkJCXBjaV9icmlkZ2VfZW11bF9jbGVhbnVwKCZwb3J0LT5i cmlkZ2UpOworCQkJCWRldm1faW91bm1hcChkZXYsIHBvcnQtPmJhc2UpOworCQkJCXBvcnQtPmJh c2UgPSBOVUxMOworCQkJCW12ZWJ1X3BjaWVfcG93ZXJkb3duKHBvcnQpOworCQkJCWNvbnRpbnVl OworCQkJfQorCQkJaXJxX3NldF9jaGFpbmVkX2hhbmRsZXJfYW5kX2RhdGEoaXJxLAorCQkJCQkJ CSBtdmVidV9wY2llX2lycV9oYW5kbGVyLAorCQkJCQkJCSBwb3J0KTsKKwkJfQorCiAJCS8qCiAJ CSAqIFBDSWUgdG9wb2xvZ3kgZXhwb3J0ZWQgYnkgbXZlYnUgaHcgaXMgcXVpdGUgY29tcGxpY2F0 ZWQuIEluCiAJCSAqIHJlYWxpdHkgaGFzIHNvbWV0aGluZyBsaWtlIE4gZnVsbHkgaW5kZXBlbmRl bnQgaG9zdCBicmlkZ2VzCkBAIC0xNDQ4LDYgKzE2MDYsNyBAQCBzdGF0aWMgaW50IG12ZWJ1X3Bj aWVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlmb3IgKGkgPSAwOyBp IDwgcGNpZS0+bnBvcnRzOyBpKyspIHsKIAkJc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCA9 ICZwY2llLT5wb3J0c1tpXTsKKwkJaW50IGlycSA9IHBvcnQtPmludHhfaXJxOwogCiAJCWlmICgh cG9ydC0+YmFzZSkKIAkJCWNvbnRpbnVlOwpAQCAtMTQ1OCw3ICsxNjE3LDE3IEBAIHN0YXRpYyBp bnQgbXZlYnVfcGNpZV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJbXZl YnVfd3JpdGVsKHBvcnQsIGNtZCwgUENJRV9DTURfT0ZGKTsKIAogCQkvKiBNYXNrIGFsbCBpbnRl cnJ1cHQgc291cmNlcy4gKi8KLQkJbXZlYnVfd3JpdGVsKHBvcnQsIDAsIFBDSUVfTUFTS19PRkYp OworCQltdmVidV93cml0ZWwocG9ydCwgflBDSUVfSU5UX0FMTF9NQVNLLCBQQ0lFX0lOVF9VTk1B U0tfT0ZGKTsKKworCQkvKiBDbGVhciBhbGwgaW50ZXJydXB0IGNhdXNlcy4gKi8KKwkJbXZlYnVf d3JpdGVsKHBvcnQsIH5QQ0lFX0lOVF9BTExfTUFTSywgUENJRV9JTlRfQ0FVU0VfT0ZGKTsKKwor CQkvKiBSZW1vdmUgSVJRIGRvbWFpbnMuICovCisJCWlmIChwb3J0LT5pbnR4X2lycV9kb21haW4p CisJCQlpcnFfZG9tYWluX3JlbW92ZShwb3J0LT5pbnR4X2lycV9kb21haW4pOworCisJCWlmIChp cnEgPiAwKQorCQkJaXJxX3NldF9jaGFpbmVkX2hhbmRsZXJfYW5kX2RhdGEoaXJxLCBOVUxMLCBO VUxMKTsKIAogCQkvKiBGcmVlIGNvbmZpZyBzcGFjZSBmb3IgZW11bGF0ZWQgcm9vdCBicmlkZ2Uu ICovCiAJCXBjaV9icmlkZ2VfZW11bF9jbGVhbnVwKCZwb3J0LT5icmlkZ2UpOwotLSAKMi4yMC4x CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo=