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 20E20C433F5 for ; Sat, 19 Mar 2022 18:17:19 +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:MIME-Version:References:In-Reply-To: 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=2ipgDXdPrS522urpL3kyfiMa5VocMYOoE3uh9C563J0=; b=IClC3UWDaJginT NALdZB1Bc/C9yDcnzLI28R7x4p47jVhUcmRvRG+tBNxwg9Fb3BpzkumxoHJaXF0vcC8cJ0GoSWvZZ Ro8W0hhtXHLFF3vmCLs6nblfXkrmWZd584DoG34t8Ei9w7D8k4VZi8PWNwFJPUDNbOKzkWu3adjFd KRzMhQCqNzebSU1NKGKi9OI9JORITCyh3Ua8N3Bd5gxo6BKvRFr5TlIGPb85TRJdGoMTXxWYuYQoz IuwdGxIac1ewQFgToa3EbkHcdDcDnwXBgxRQD+RMZ0jtU0arKiiDD5uYzMH/OUvPw8VyY+4JSsQeY Qm73IAippWur/OeV0cog==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nVdbs-004AUb-Qd; Sat, 19 Mar 2022 18:15:28 +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 1nVdbo-004ATH-7L for linux-arm-kernel@lists.infradead.org; Sat, 19 Mar 2022 18:15:27 +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 B1A56B80D76; Sat, 19 Mar 2022 18:15:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14046C340EC; Sat, 19 Mar 2022 18:15:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1647713720; bh=Dhv4HLH1QHUCsAquZQFUITV9pIdJgaLXe9+CyyHB74c=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=H08MB0ENRogV7LsrFRueTqSGzFgC3+bvd8xOpGbvJFQ1lliTW9pAU+dHvKwIZoD1F qedZiVvB40INGtMHeJ5hbDzPHpS8Ty2I5IFHqS8zc6A5rHUYpHRiO951KaOfHjvTpF 9Af0c/w4VyR0n7wou7FJ7EFY3YNqt8u8a3zLQv18Tbf16PYOTsrVO9wHjfedKNSFUz VIMdowoJNCg2zYpkRCF/Lf43UbppJDI97C77XWXRqmaypCtqSz6B2n72dgavrJLxRO mGoO/8R+i9VSocykRCVrJcswg+i7lsgmvXOrQYVxqpNO6AIlxvpCk8n2oXeXlMPk0u oU9RC4ty2PaSQ== Date: Sat, 19 Mar 2022 18:22:40 +0000 From: Jonathan Cameron To: Uwe =?UTF-8?B?S2xlaW5lLUvDtm5pZw==?= Cc: Michael Turquette , Stephen Boyd , Russell King , Lars-Peter Clausen , Michael Hennerich , linux-clk@vger.kernel.org, kernel@pengutronix.de, Paul Cercueil , Vladimir Zapolskiy , Heiko Stuebner , Tomislav Denis , Anand Ashok Dumbre , Michal Simek , Nuno Sa , =?UTF-8?B?QW5kcsOp?= Gustavo Nakagomi Lopez , Cai Huoqing , linux-iio@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v8 04/16] iio: Make use of devm_clk_get_enabled() Message-ID: <20220319182240.30456776@jic23-huawei> In-Reply-To: <20220314141643.22184-5-u.kleine-koenig@pengutronix.de> References: <20220314141643.22184-1-u.kleine-koenig@pengutronix.de> <20220314141643.22184-5-u.kleine-koenig@pengutronix.de> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220319_111524_619165_4AF7280D X-CRM114-Status: GOOD ( 23.04 ) 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 T24gTW9uLCAxNCBNYXIgMjAyMiAxNToxNjozMSArMDEwMApVd2UgS2xlaW5lLUvDtm5pZyA8dS5r bGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPiB3cm90ZToKCj4gU2V2ZXJhbCBkcml2ZXJzIG1h bnVhbGx5IHJlZ2lzdGVyIGEgZGV2bSBoYW5kbGVyIHRvIGRpc2FibGUgdGhlaXIgY2xrLgo+IENv bnZlcnQgdGhlbSB0byBkZXZtX2Nsa19nZXRfZW5hYmxlZCgpLgo+IAo+IFNpZ25lZC1vZmYtYnk6 IFV3ZSBLbGVpbmUtS8O2bmlnIDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+CgpBY2tl ZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8Sm9uYXRoYW4uQ2FtZXJvbkBodWF3ZWkuY29tPgoKSWYg dGhpcyBkb2VzIGdldCBwaWNrZWQgdXAsIGNhbiB3aG8gZXZlciBkb2VzIGl0IHBsZWFzZSBwcm92 aWRlCmFuIGltbXV0YWJsZSBicmFuY2guIFdpdGggc29tZSBtYW55IGRyaXZlcnMgY2xlYW5lZCB1 cCwgaXQncyB2ZXJ5Cmxpa2VseSB0byBjYXVzZSBzb21lIG1lcmdlIGZ1biBzb21ld2hlcmUgb3Ro ZXJ3aXNlLgoKVGhhbmtzLAoKSm9uYXRoYW4KCj4gLS0tCj4gIGRyaXZlcnMvaWlvL2FkYy9hZDcx MjQuYyAgICAgICAgICAgfCAxNSArLS0tLS0tLS0tCj4gIGRyaXZlcnMvaWlvL2FkYy9hZDc3Njgt MS5jICAgICAgICAgfCAxNyArLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9paW8vYWRjL2FkOTQ2Ny5j ICAgICAgICAgICB8IDE3ICstLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2lpby9hZGMvaW5nZW5pYy1h ZGMuYyAgICAgIHwgMTUgKystLS0tLS0tLQo+ICBkcml2ZXJzL2lpby9hZGMvbHBjMTh4eF9hZGMu YyAgICAgIHwgMTggKy0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvaWlvL2FkYy9yb2NrY2hpcF9zYXJh ZGMuYyAgfCA0NCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9paW8v YWRjL3RpLWFkczEzMWUwOC5jICAgICB8IDE5ICstLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9paW8v YWRjL3hpbGlueC1hbXMuYyAgICAgICB8IDE1ICstLS0tLS0tLS0KPiAgZHJpdmVycy9paW8vYWRj L3hpbGlueC14YWRjLWNvcmUuYyB8IDE4ICstLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2lpby9mcmVx dWVuY3kvYWRmNDM3MS5jICAgIHwgMTcgKy0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvaWlvL2ZyZXF1 ZW5jeS9hZG12MTAxMy5jICAgfCAxNSArLS0tLS0tLS0tCj4gIGRyaXZlcnMvaWlvL2ZyZXF1ZW5j eS9hZHJmNjc4MC5jICAgfCAxNiArLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2lpby9pbXUvYWRpczE2 NDc1LmMgICAgICAgIHwgMTUgKy0tLS0tLS0tLQo+ICAxMyBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNl cnRpb25zKCspLCAyMjYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlv L2FkYy9hZDcxMjQuYyBiL2RyaXZlcnMvaWlvL2FkYy9hZDcxMjQuYwo+IGluZGV4IGI0MDBiYmUy OTFhYS4uZmNmYTRlMGI0MWZiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaWlvL2FkYy9hZDcxMjQu Ywo+ICsrKyBiL2RyaXZlcnMvaWlvL2FkYy9hZDcxMjQuYwo+IEBAIC04NjIsMTEgKzg2Miw2IEBA IHN0YXRpYyB2b2lkIGFkNzEyNF9yZWdfZGlzYWJsZSh2b2lkICpyKQo+ICAJcmVndWxhdG9yX2Rp c2FibGUocik7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGFkNzEyNF9jbGtfZGlzYWJsZSh2b2lk ICpjKQo+IC17Cj4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUoYyk7Cj4gLX0KPiAtCj4gIHN0YXRp YyBpbnQgYWQ3MTI0X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCj4gIHsKPiAgCWNvbnN0 IHN0cnVjdCBhZDcxMjRfY2hpcF9pbmZvICppbmZvOwo+IEBAIC05MTcsMTggKzkxMiwxMCBAQCBz dGF0aWMgaW50IGFkNzEyNF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQo+ICAJCQlyZXR1 cm4gcmV0Owo+ICAJfQo+ICAKPiAtCXN0LT5tY2xrID0gZGV2bV9jbGtfZ2V0KCZzcGktPmRldiwg Im1jbGsiKTsKPiArCXN0LT5tY2xrID0gZGV2bV9jbGtfZ2V0X2VuYWJsZWQoJnNwaS0+ZGV2LCAi bWNsayIpOwo+ICAJaWYgKElTX0VSUihzdC0+bWNsaykpCj4gIAkJcmV0dXJuIFBUUl9FUlIoc3Qt Pm1jbGspOwo+ICAKPiAtCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShzdC0+bWNsayk7Cj4gLQlp ZiAocmV0IDwgMCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCXJldCA9IGRldm1fYWRkX2FjdGlv bl9vcl9yZXNldCgmc3BpLT5kZXYsIGFkNzEyNF9jbGtfZGlzYWJsZSwgc3QtPm1jbGspOwo+IC0J aWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAgCXJldCA9IGFkNzEyNF9zb2Z0X3Jlc2V0 KHN0KTsKPiAgCWlmIChyZXQgPCAwKQo+ICAJCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaWlvL2FkYy9hZDc3NjgtMS5jIGIvZHJpdmVycy9paW8vYWRjL2FkNzc2OC0xLmMKPiBp bmRleCBhYTQyYmE3NTlmYTEuLjhhZTM0ZWQ4ZmFiZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2lp by9hZGMvYWQ3NzY4LTEuYwo+ICsrKyBiL2RyaXZlcnMvaWlvL2FkYy9hZDc3NjgtMS5jCj4gQEAg LTUzOSwxMyArNTM5LDYgQEAgc3RhdGljIHZvaWQgYWQ3NzY4X3JlZ3VsYXRvcl9kaXNhYmxlKHZv aWQgKmRhdGEpCj4gIAlyZWd1bGF0b3JfZGlzYWJsZShzdC0+dnJlZik7Cj4gIH0KPiAgCj4gLXN0 YXRpYyB2b2lkIGFkNzc2OF9jbGtfZGlzYWJsZSh2b2lkICpkYXRhKQo+IC17Cj4gLQlzdHJ1Y3Qg YWQ3NzY4X3N0YXRlICpzdCA9IGRhdGE7Cj4gLQo+IC0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHN0 LT5tY2xrKTsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBhZDc3Njhfc2V0X2NoYW5uZWxfbGFiZWwo c3RydWN0IGlpb19kZXYgKmluZGlvX2RldiwKPiAgCQkJCQkJaW50IG51bV9jaGFubmVscykKPiAg ewo+IEBAIC02MDAsMTggKzU5MywxMCBAQCBzdGF0aWMgaW50IGFkNzc2OF9wcm9iZShzdHJ1Y3Qg c3BpX2RldmljZSAqc3BpKQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAtCXN0 LT5tY2xrID0gZGV2bV9jbGtfZ2V0KCZzcGktPmRldiwgIm1jbGsiKTsKPiArCXN0LT5tY2xrID0g ZGV2bV9jbGtfZ2V0X2VuYWJsZWQoJnNwaS0+ZGV2LCAibWNsayIpOwo+ICAJaWYgKElTX0VSUihz dC0+bWNsaykpCj4gIAkJcmV0dXJuIFBUUl9FUlIoc3QtPm1jbGspOwo+ICAKPiAtCXJldCA9IGNs a19wcmVwYXJlX2VuYWJsZShzdC0+bWNsayk7Cj4gLQlpZiAocmV0IDwgMCkKPiAtCQlyZXR1cm4g cmV0Owo+IC0KPiAtCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldCgmc3BpLT5kZXYsIGFk Nzc2OF9jbGtfZGlzYWJsZSwgc3QpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0K PiAgCXN0LT5tY2xrX2ZyZXEgPSBjbGtfZ2V0X3JhdGUoc3QtPm1jbGspOwo+ICAKPiAgCW11dGV4 X2luaXQoJnN0LT5sb2NrKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRjL2FkOTQ2Ny5j IGIvZHJpdmVycy9paW8vYWRjL2FkOTQ2Ny5jCj4gaW5kZXggZGJmYzg1MTdjYjhhLi5hMDdkZjBm ZDMzMjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9paW8vYWRjL2FkOTQ2Ny5jCj4gKysrIGIvZHJp dmVycy9paW8vYWRjL2FkOTQ2Ny5jCj4gQEAgLTM3OCwxMyArMzc4LDYgQEAgc3RhdGljIGludCBh ZDk0NjdfcHJlZW5hYmxlX3NldHVwKHN0cnVjdCBhZGlfYXhpX2FkY19jb252ICpjb252KQo+ICAJ cmV0dXJuIGFkOTQ2N19vdXRwdXRtb2RlX3NldChzdC0+c3BpLCBzdC0+b3V0cHV0X21vZGUpOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBhZDk0NjdfY2xrX2Rpc2FibGUodm9pZCAqZGF0YSkKPiAt ewo+IC0Jc3RydWN0IGFkOTQ2N19zdGF0ZSAqc3QgPSBkYXRhOwo+IC0KPiAtCWNsa19kaXNhYmxl X3VucHJlcGFyZShzdC0+Y2xrKTsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBhZDk0NjdfcHJvYmUo c3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKPiAgewo+ICAJY29uc3Qgc3RydWN0IGFkOTQ2N19jaGlw X2luZm8gKmluZm87Cj4gQEAgLTQwNCwxOCArMzk3LDEwIEBAIHN0YXRpYyBpbnQgYWQ5NDY3X3By b2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCj4gIAlzdCA9IGFkaV9heGlfYWRjX2NvbnZfcHJp dihjb252KTsKPiAgCXN0LT5zcGkgPSBzcGk7Cj4gIAo+IC0Jc3QtPmNsayA9IGRldm1fY2xrX2dl dCgmc3BpLT5kZXYsICJhZGMtY2xrIik7Cj4gKwlzdC0+Y2xrID0gZGV2bV9jbGtfZ2V0X2VuYWJs ZWQoJnNwaS0+ZGV2LCAiYWRjLWNsayIpOwo+ICAJaWYgKElTX0VSUihzdC0+Y2xrKSkKPiAgCQly ZXR1cm4gUFRSX0VSUihzdC0+Y2xrKTsKPiAgCj4gLQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUo c3QtPmNsayk7Cj4gLQlpZiAocmV0IDwgMCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCXJldCA9 IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldCgmc3BpLT5kZXYsIGFkOTQ2N19jbGtfZGlzYWJsZSwg c3QpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAgCXN0LT5wd3Jkb3duX2dw aW8gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbCgmc3BpLT5kZXYsICJwb3dlcmRvd24iLAo+ICAJ CQkJCQkgICBHUElPRF9PVVRfTE9XKTsKPiAgCWlmIChJU19FUlIoc3QtPnB3cmRvd25fZ3Bpbykp Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2FkYy9pbmdlbmljLWFkYy5jIGIvZHJpdmVycy9p aW8vYWRjL2luZ2VuaWMtYWRjLmMKPiBpbmRleCAyYjM5MTJjNmNhNmIuLmI2NDMzYmNkNTNmNSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2lpby9hZGMvaW5nZW5pYy1hZGMuYwo+ICsrKyBiL2RyaXZl cnMvaWlvL2FkYy9pbmdlbmljLWFkYy5jCj4gQEAgLTczMiwxMSArNzMyLDYgQEAgc3RhdGljIGlu dCBpbmdlbmljX2FkY19vZl94bGF0ZShzdHJ1Y3QgaWlvX2RldiAqaWlvX2RldiwKPiAgCXJldHVy biAtRUlOVkFMOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbmdlbmljX2FkY19jbGtfY2xlYW51 cCh2b2lkICpkYXRhKQo+IC17Cj4gLQljbGtfdW5wcmVwYXJlKGRhdGEpOwo+IC19Cj4gLQo+ICBz dGF0aWMgY29uc3Qgc3RydWN0IGlpb19pbmZvIGluZ2VuaWNfYWRjX2luZm8gPSB7Cj4gIAkud3Jp dGVfcmF3ID0gaW5nZW5pY19hZGNfd3JpdGVfcmF3LAo+ICAJLnJlYWRfcmF3ID0gaW5nZW5pY19h ZGNfcmVhZF9yYXcsCj4gQEAgLTg1NiwxMyArODUxLDEzIEBAIHN0YXRpYyBpbnQgaW5nZW5pY19h ZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCWlmIChJU19FUlIoYWRj LT5iYXNlKSkKPiAgCQlyZXR1cm4gUFRSX0VSUihhZGMtPmJhc2UpOwo+ICAKPiAtCWFkYy0+Y2xr ID0gZGV2bV9jbGtfZ2V0KGRldiwgImFkYyIpOwo+ICsJYWRjLT5jbGsgPSBkZXZtX2Nsa19nZXRf cHJlcGFyZWQoZGV2LCAiYWRjIik7Cj4gIAlpZiAoSVNfRVJSKGFkYy0+Y2xrKSkgewo+ICAJCWRl dl9lcnIoZGV2LCAiVW5hYmxlIHRvIGdldCBjbG9ja1xuIik7Cj4gIAkJcmV0dXJuIFBUUl9FUlIo YWRjLT5jbGspOwo+ICAJfQo+ICAKPiAtCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShhZGMtPmNs ayk7Cj4gKwlyZXQgPSBjbGtfZW5hYmxlKGFkYy0+Y2xrKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlk ZXZfZXJyKGRldiwgIkZhaWxlZCB0byBlbmFibGUgY2xvY2tcbiIpOwo+ICAJCXJldHVybiByZXQ7 Cj4gQEAgLTg5MSwxMiArODg2LDYgQEAgc3RhdGljIGludCBpbmdlbmljX2FkY19wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJdXNsZWVwX3JhbmdlKDIwMDAsIDMwMDApOyAv KiBNdXN0IHdhaXQgYXQgbGVhc3QgMm1zLiAqLwo+ICAJY2xrX2Rpc2FibGUoYWRjLT5jbGspOwo+ ICAKPiAtCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldChkZXYsIGluZ2VuaWNfYWRjX2Ns a19jbGVhbnVwLCBhZGMtPmNsayk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJZGV2X2VycihkZXYsICJV bmFibGUgdG8gYWRkIGFjdGlvblxuIik7Cj4gLQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gIAlp aW9fZGV2LT5uYW1lID0gImp6LWFkYyI7Cj4gIAlpaW9fZGV2LT5tb2RlcyA9IElORElPX0RJUkVD VF9NT0RFIHwgSU5ESU9fQlVGRkVSX1NPRlRXQVJFOwo+ICAJaWlvX2Rldi0+c2V0dXBfb3BzID0g JmluZ2VuaWNfYnVmZmVyX3NldHVwX29wczsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRj L2xwYzE4eHhfYWRjLmMgYi9kcml2ZXJzL2lpby9hZGMvbHBjMTh4eF9hZGMuYwo+IGluZGV4IGFl OWM5Mzg0ZjIzZS4uOGJiYzE4YWFhNDc0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaWlvL2FkYy9s cGMxOHh4X2FkYy5jCj4gKysrIGIvZHJpdmVycy9paW8vYWRjL2xwYzE4eHhfYWRjLmMKPiBAQCAt MTIyLDExICsxMjIsNiBAQCBzdGF0aWMgdm9pZCBscGMxOHh4X2NsZWFyX2NyX3JlZyh2b2lkICpk YXRhKQo+ICAJd3JpdGVsKDAsIGFkYy0+YmFzZSArIExQQzE4WFhfQURDX0NSKTsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgbHBjMTh4eF9jbGtfZGlzYWJsZSh2b2lkICpjbGspCj4gLXsKPiAtCWNs a19kaXNhYmxlX3VucHJlcGFyZShjbGspOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBscGMxOHh4 X3JlZ3VsYXRvcl9kaXNhYmxlKHZvaWQgKnZyZWYpCj4gIHsKPiAgCXJlZ3VsYXRvcl9kaXNhYmxl KHZyZWYpOwo+IEBAIC0xNTIsNyArMTQ3LDcgQEAgc3RhdGljIGludCBscGMxOHh4X2FkY19wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJaWYgKElTX0VSUihhZGMtPmJhc2Up KQo+ICAJCXJldHVybiBQVFJfRVJSKGFkYy0+YmFzZSk7Cj4gIAo+IC0JYWRjLT5jbGsgPSBkZXZt X2Nsa19nZXQoJnBkZXYtPmRldiwgTlVMTCk7Cj4gKwlhZGMtPmNsayA9IGRldm1fY2xrX2dldF9l bmFibGVkKCZwZGV2LT5kZXYsIE5VTEwpOwo+ICAJaWYgKElTX0VSUihhZGMtPmNsaykpCj4gIAkJ cmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihhZGMtPmNsayksCj4gIAkJ CQkgICAgICJlcnJvciBnZXR0aW5nIGNsb2NrXG4iKTsKPiBAQCAtMTc4LDE3ICsxNzMsNiBAQCBz dGF0aWMgaW50IGxwYzE4eHhfYWRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0JcmV0ID0gY2xrX3ByZXBhcmVf ZW5hYmxlKGFkYy0+Y2xrKTsKPiAtCWlmIChyZXQpIHsKPiAtCQlkZXZfZXJyKCZwZGV2LT5kZXYs ICJ1bmFibGUgdG8gZW5hYmxlIGNsb2NrXG4iKTsKPiAtCQlyZXR1cm4gcmV0Owo+IC0JfQo+IC0K PiAtCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldCgmcGRldi0+ZGV2LCBscGMxOHh4X2Ns a19kaXNhYmxlLAo+IC0JCQkJICAgICAgIGFkYy0+Y2xrKTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0 dXJuIHJldDsKPiAtCj4gIAlyYXRlID0gY2xrX2dldF9yYXRlKGFkYy0+Y2xrKTsKPiAgCWNsa2Rp diA9IERJVl9ST1VORF9VUChyYXRlLCBMUEMxOFhYX0FEQ19DTEtfVEFSR0VUKTsKPiAgCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2FkYy9yb2NrY2hpcF9zYXJhZGMuYyBiL2RyaXZlcnMvaWlv L2FkYy9yb2NrY2hpcF9zYXJhZGMuYwo+IGluZGV4IDE0YjhkZjRjYTljOC4uMGEwNTNlOGIyNDgz IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaWlvL2FkYy9yb2NrY2hpcF9zYXJhZGMuYwo+ICsrKyBi L2RyaXZlcnMvaWlvL2FkYy9yb2NrY2hpcF9zYXJhZGMuYwo+IEBAIC0yMzMsMjAgKzIzMyw2IEBA IHN0YXRpYyB2b2lkIHJvY2tjaGlwX3NhcmFkY19yZXNldF9jb250cm9sbGVyKHN0cnVjdCByZXNl dF9jb250cm9sICpyZXNldCkKPiAgCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocmVzZXQpOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZCByb2NrY2hpcF9zYXJhZGNfY2xrX2Rpc2FibGUodm9pZCAqZGF0 YSkKPiAtewo+IC0Jc3RydWN0IHJvY2tjaGlwX3NhcmFkYyAqaW5mbyA9IGRhdGE7Cj4gLQo+IC0J Y2xrX2Rpc2FibGVfdW5wcmVwYXJlKGluZm8tPmNsayk7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lk IHJvY2tjaGlwX3NhcmFkY19wY2xrX2Rpc2FibGUodm9pZCAqZGF0YSkKPiAtewo+IC0Jc3RydWN0 IHJvY2tjaGlwX3NhcmFkYyAqaW5mbyA9IGRhdGE7Cj4gLQo+IC0JY2xrX2Rpc2FibGVfdW5wcmVw YXJlKGluZm8tPnBjbGspOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCByb2NrY2hpcF9zYXJhZGNf cmVndWxhdG9yX2Rpc2FibGUodm9pZCAqZGF0YSkKPiAgewo+ICAJc3RydWN0IHJvY2tjaGlwX3Nh cmFkYyAqaW5mbyA9IGRhdGE7Cj4gQEAgLTM4MCwxMiArMzY2LDEyIEBAIHN0YXRpYyBpbnQgcm9j a2NoaXBfc2FyYWRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJcmV0 dXJuIHJldDsKPiAgCX0KPiAgCj4gLQlpbmZvLT5wY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5k ZXYsICJhcGJfcGNsayIpOwo+ICsJaW5mby0+cGNsayA9IGRldm1fY2xrX2dldF9lbmFibGVkKCZw ZGV2LT5kZXYsICJhcGJfcGNsayIpOwo+ICAJaWYgKElTX0VSUihpbmZvLT5wY2xrKSkKPiAgCQly ZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJfRVJSKGluZm8tPnBjbGspLAo+ICAJ CQkJICAgICAiZmFpbGVkIHRvIGdldCBwY2xrXG4iKTsKPiAgCj4gLQlpbmZvLT5jbGsgPSBkZXZt X2Nsa19nZXQoJnBkZXYtPmRldiwgInNhcmFkYyIpOwo+ICsJaW5mby0+Y2xrID0gZGV2bV9jbGtf Z2V0X2VuYWJsZWQoJnBkZXYtPmRldiwgInNhcmFkYyIpOwo+ICAJaWYgKElTX0VSUihpbmZvLT5j bGspKQo+ICAJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoaW5mby0+ Y2xrKSwKPiAgCQkJCSAgICAgImZhaWxlZCB0byBnZXQgYWRjIGNsb2NrXG4iKTsKPiBAQCAtNDI3 LDMyICs0MTMsNiBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX3NhcmFkY19wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQo+ICAKPiAgCWluZm8tPnV2X3ZyZWYgPSByZXQ7Cj4gIAo+IC0J cmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGluZm8tPnBjbGspOwo+IC0JaWYgKHJldCA8IDApIHsK PiAtCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZW5hYmxlIHBjbGtcbiIpOwo+IC0J CXJldHVybiByZXQ7Cj4gLQl9Cj4gLQlyZXQgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoJnBk ZXYtPmRldiwKPiAtCQkJCSAgICAgICByb2NrY2hpcF9zYXJhZGNfcGNsa19kaXNhYmxlLCBpbmZv KTsKPiAtCWlmIChyZXQpIHsKPiAtCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVn aXN0ZXIgZGV2bSBhY3Rpb24sICVkXG4iLAo+IC0JCQlyZXQpOwo+IC0JCXJldHVybiByZXQ7Cj4g LQl9Cj4gLQo+IC0JcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGluZm8tPmNsayk7Cj4gLQlpZiAo cmV0IDwgMCkgewo+IC0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBlbmFibGUgY29u dmVydGVyIGNsb2NrXG4iKTsKPiAtCQlyZXR1cm4gcmV0Owo+IC0JfQo+IC0JcmV0ID0gZGV2bV9h ZGRfYWN0aW9uX29yX3Jlc2V0KCZwZGV2LT5kZXYsCj4gLQkJCQkgICAgICAgcm9ja2NoaXBfc2Fy YWRjX2Nsa19kaXNhYmxlLCBpbmZvKTsKPiAtCWlmIChyZXQpIHsKPiAtCQlkZXZfZXJyKCZwZGV2 LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgZGV2bSBhY3Rpb24sICVkXG4iLAo+IC0JCQlyZXQp Owo+IC0JCXJldHVybiByZXQ7Cj4gLQl9Cj4gLQo+ICAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRl diwgaW5kaW9fZGV2KTsKPiAgCj4gIAlpbmRpb19kZXYtPm5hbWUgPSBkZXZfbmFtZSgmcGRldi0+ ZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRjL3RpLWFkczEzMWUwOC5jIGIvZHJp dmVycy9paW8vYWRjL3RpLWFkczEzMWUwOC5jCj4gaW5kZXggMGMyMDI1YTIyNTc1Li43ZDdhOGYw ZDNhYjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9paW8vYWRjL3RpLWFkczEzMWUwOC5jCj4gKysr IGIvZHJpdmVycy9paW8vYWRjL3RpLWFkczEzMWUwOC5jCj4gQEAgLTc5MywxMyArNzkzLDYgQEAg c3RhdGljIHZvaWQgYWRzMTMxZTA4X3JlZ3VsYXRvcl9kaXNhYmxlKHZvaWQgKmRhdGEpCj4gIAly ZWd1bGF0b3JfZGlzYWJsZShzdC0+dnJlZl9yZWcpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBh ZHMxMzFlMDhfY2xrX2Rpc2FibGUodm9pZCAqZGF0YSkKPiAtewo+IC0Jc3RydWN0IGFkczEzMWUw OF9zdGF0ZSAqc3QgPSBkYXRhOwo+IC0KPiAtCWNsa19kaXNhYmxlX3VucHJlcGFyZShzdC0+YWRj X2Nsayk7Cj4gLX0KPiAtCj4gIHN0YXRpYyBpbnQgYWRzMTMxZTA4X3Byb2JlKHN0cnVjdCBzcGlf ZGV2aWNlICpzcGkpCj4gIHsKPiAgCWNvbnN0IHN0cnVjdCBhZHMxMzFlMDhfaW5mbyAqaW5mbzsK PiBAQCAtODkyLDIxICs4ODUsMTEgQEAgc3RhdGljIGludCBhZHMxMzFlMDhfcHJvYmUoc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSkKPiAgCQlzdC0+dnJlZl9yZWcgPSBOVUxMOwo+ICAJfQo+ICAKPiAt CXN0LT5hZGNfY2xrID0gZGV2bV9jbGtfZ2V0KCZzcGktPmRldiwgImFkYy1jbGsiKTsKPiArCXN0 LT5hZGNfY2xrID0gZGV2bV9jbGtfZ2V0X2VuYWJsZWQoJnNwaS0+ZGV2LCAiYWRjLWNsayIpOwo+ ICAJaWYgKElTX0VSUihzdC0+YWRjX2NsaykpCj4gIAkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnNw aS0+ZGV2LCBQVFJfRVJSKHN0LT5hZGNfY2xrKSwKPiAgCQkJCSAgICAgImZhaWxlZCB0byBnZXQg dGhlIEFEQyBjbG9ja1xuIik7Cj4gIAo+IC0JcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHN0LT5h ZGNfY2xrKTsKPiAtCWlmIChyZXQpIHsKPiAtCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0 byBwcmVwYXJlL2VuYWJsZSB0aGUgQURDIGNsb2NrXG4iKTsKPiAtCQlyZXR1cm4gcmV0Owo+IC0J fQo+IC0KPiAtCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldCgmc3BpLT5kZXYsIGFkczEz MWUwOF9jbGtfZGlzYWJsZSwgc3QpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0K PiAgCWFkY19jbGtfaHogPSBjbGtfZ2V0X3JhdGUoc3QtPmFkY19jbGspOwo+ICAJaWYgKCFhZGNf Y2xrX2h6KSB7Cj4gIAkJZGV2X2Vycigmc3BpLT5kZXYsICJmYWlsZWQgdG8gZ2V0IHRoZSBBREMg Y2xvY2sgcmF0ZVxuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2FkYy94aWxpbngtYW1z LmMgYi9kcml2ZXJzL2lpby9hZGMveGlsaW54LWFtcy5jCj4gaW5kZXggODM0M2M1Zjc0MTIxLi40 ZTRmMGM4MGRiNTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9paW8vYWRjL3hpbGlueC1hbXMuYwo+ ICsrKyBiL2RyaXZlcnMvaWlvL2FkYy94aWxpbngtYW1zLmMKPiBAQCAtMTM0MywxMSArMTM0Myw2 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFtc19vZl9tYXRjaF90YWJsZVtd ID0gewo+ICB9Owo+ICBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhbXNfb2ZfbWF0Y2hfdGFibGUp Owo+ICAKPiAtc3RhdGljIHZvaWQgYW1zX2Nsa19kaXNhYmxlX3VucHJlcGFyZSh2b2lkICpkYXRh KQo+IC17Cj4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUoZGF0YSk7Cj4gLX0KPiAtCj4gIHN0YXRp YyB2b2lkIGFtc19jYW5jZWxfZGVsYXllZF93b3JrKHZvaWQgKmRhdGEpCj4gIHsKPiAgCWNhbmNl bF9kZWxheWVkX3dvcmsoZGF0YSk7Cj4gQEAgLTEzNzcsMTggKzEzNzIsMTAgQEAgc3RhdGljIGlu dCBhbXNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCWlmIChJU19FUlIo YW1zLT5iYXNlKSkKPiAgCQlyZXR1cm4gUFRSX0VSUihhbXMtPmJhc2UpOwo+ICAKPiAtCWFtcy0+ Y2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsIE5VTEwpOwo+ICsJYW1zLT5jbGsgPSBkZXZt X2Nsa19nZXRfZW5hYmxlZCgmcGRldi0+ZGV2LCBOVUxMKTsKPiAgCWlmIChJU19FUlIoYW1zLT5j bGspKQo+ICAJCXJldHVybiBQVFJfRVJSKGFtcy0+Y2xrKTsKPiAgCj4gLQlyZXQgPSBjbGtfcHJl cGFyZV9lbmFibGUoYW1zLT5jbGspOwo+IC0JaWYgKHJldCA8IDApCj4gLQkJcmV0dXJuIHJldDsK PiAtCj4gLQlyZXQgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoJnBkZXYtPmRldiwgYW1zX2Ns a19kaXNhYmxlX3VucHJlcGFyZSwgYW1zLT5jbGspOwo+IC0JaWYgKHJldCA8IDApCj4gLQkJcmV0 dXJuIHJldDsKPiAtCj4gIAlJTklUX0RFTEFZRURfV09SSygmYW1zLT5hbXNfdW5tYXNrX3dvcmss IGFtc191bm1hc2tfd29ya2VyKTsKPiAgCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldCgm cGRldi0+ZGV2LCBhbXNfY2FuY2VsX2RlbGF5ZWRfd29yaywKPiAgCQkJCSAgICAgICAmYW1zLT5h bXNfdW5tYXNrX3dvcmspOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMveGlsaW54LXhh ZGMtY29yZS5jIGIvZHJpdmVycy9paW8vYWRjL3hpbGlueC14YWRjLWNvcmUuYwo+IGluZGV4IDgy M2M4ZTVmOTgwOS4uYTUyMGUwN2U0ZTA4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaWlvL2FkYy94 aWxpbngteGFkYy1jb3JlLmMKPiArKysgYi9kcml2ZXJzL2lpby9hZGMveGlsaW54LXhhZGMtY29y ZS5jCj4gQEAgLTEyOTksMTMgKzEyOTksNiBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHhh ZGNfdHlwZV9uYW1lc1tdID0gewo+ICAJW1hBRENfVFlQRV9VU10gPSAieGlsaW54LXN5c3RlbS1t b25pdG9yIiwKPiAgfTsKPiAgCj4gLXN0YXRpYyB2b2lkIHhhZGNfY2xrX2Rpc2FibGVfdW5wcmVw YXJlKHZvaWQgKmRhdGEpCj4gLXsKPiAtCXN0cnVjdCBjbGsgKmNsayA9IGRhdGE7Cj4gLQo+IC0J Y2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNsayk7Cj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIHhhZGNf Y2FuY2VsX2RlbGF5ZWRfd29yayh2b2lkICpkYXRhKQo+ICB7Cj4gIAlzdHJ1Y3QgZGVsYXllZF93 b3JrICp3b3JrID0gZGF0YTsKPiBAQCAtMTM4MywxOSArMTM3NiwxMCBAQCBzdGF0aWMgaW50IHhh ZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCQl9Cj4gIAl9Cj4gIAo+ IC0JeGFkYy0+Y2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgTlVMTCk7Cj4gKwl4YWRjLT5jbGsgPSBk ZXZtX2Nsa19nZXRfZW5hYmxlZChkZXYsIE5VTEwpOwo+ICAJaWYgKElTX0VSUih4YWRjLT5jbGsp KQo+ICAJCXJldHVybiBQVFJfRVJSKHhhZGMtPmNsayk7Cj4gIAo+IC0JcmV0ID0gY2xrX3ByZXBh cmVfZW5hYmxlKHhhZGMtPmNsayk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+ IC0JcmV0ID0gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRldiwKPiAtCQkJCSAgICAgICB4YWRj X2Nsa19kaXNhYmxlX3VucHJlcGFyZSwgeGFkYy0+Y2xrKTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0 dXJuIHJldDsKPiAtCj4gIAkvKgo+ICAJICogTWFrZSBzdXJlIG5vdCB0byBleGNlZWQgdGhlIG1h eGltdW0gc2FtcGxlcmF0ZSBzaW5jZSBvdGhlcndpc2UgdGhlCj4gIAkgKiByZXN1bHRpbmcgaW50 ZXJydXB0IHN0b3JtIHdpbGwgc29mdC1sb2NrIHRoZSBzeXN0ZW0uCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaWlvL2ZyZXF1ZW5jeS9hZGY0MzcxLmMgYi9kcml2ZXJzL2lpby9mcmVxdWVuY3kvYWRm NDM3MS5jCj4gaW5kZXggZWNkNWUxODk5NWFkLi41NDA0MGI1ZmRlZDAgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9paW8vZnJlcXVlbmN5L2FkZjQzNzEuYwo+ICsrKyBiL2RyaXZlcnMvaWlvL2ZyZXF1 ZW5jeS9hZGY0MzcxLmMKPiBAQCAtNTQwLDEzICs1NDAsNiBAQCBzdGF0aWMgaW50IGFkZjQzNzFf c2V0dXAoc3RydWN0IGFkZjQzNzFfc3RhdGUgKnN0KQo+ICAJcmV0dXJuIHJlZ21hcF9idWxrX3dy aXRlKHN0LT5yZWdtYXAsIEFERjQzNzFfUkVHKDB4MzApLCBzdC0+YnVmLCA1KTsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgYWRmNDM3MV9jbGtfZGlzYWJsZSh2b2lkICpkYXRhKQo+IC17Cj4gLQlz dHJ1Y3QgYWRmNDM3MV9zdGF0ZSAqc3QgPSBkYXRhOwo+IC0KPiAtCWNsa19kaXNhYmxlX3VucHJl cGFyZShzdC0+Y2xraW4pOwo+IC19Cj4gLQo+ICBzdGF0aWMgaW50IGFkZjQzNzFfcHJvYmUoc3Ry dWN0IHNwaV9kZXZpY2UgKnNwaSkKPiAgewo+ICAJY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQg KmlkID0gc3BpX2dldF9kZXZpY2VfaWQoc3BpKTsKPiBAQCAtNTc5LDE4ICs1NzIsMTAgQEAgc3Rh dGljIGludCBhZGY0MzcxX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCj4gIAlpbmRpb19k ZXYtPmNoYW5uZWxzID0gc3QtPmNoaXBfaW5mby0+Y2hhbm5lbHM7Cj4gIAlpbmRpb19kZXYtPm51 bV9jaGFubmVscyA9IHN0LT5jaGlwX2luZm8tPm51bV9jaGFubmVsczsKPiAgCj4gLQlzdC0+Y2xr aW4gPSBkZXZtX2Nsa19nZXQoJnNwaS0+ZGV2LCAiY2xraW4iKTsKPiArCXN0LT5jbGtpbiA9IGRl dm1fY2xrX2dldF9lbmFibGVkKCZzcGktPmRldiwgImNsa2luIik7Cj4gIAlpZiAoSVNfRVJSKHN0 LT5jbGtpbikpCj4gIAkJcmV0dXJuIFBUUl9FUlIoc3QtPmNsa2luKTsKPiAgCj4gLQlyZXQgPSBj bGtfcHJlcGFyZV9lbmFibGUoc3QtPmNsa2luKTsKPiAtCWlmIChyZXQgPCAwKQo+IC0JCXJldHVy biByZXQ7Cj4gLQo+IC0JcmV0ID0gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KCZzcGktPmRldiwg YWRmNDM3MV9jbGtfZGlzYWJsZSwgc3QpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+ IC0KPiAgCXN0LT5jbGtpbl9mcmVxID0gY2xrX2dldF9yYXRlKHN0LT5jbGtpbik7Cj4gIAo+ICAJ cmV0ID0gYWRmNDM3MV9zZXR1cChzdCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2ZyZXF1 ZW5jeS9hZG12MTAxMy5jIGIvZHJpdmVycy9paW8vZnJlcXVlbmN5L2FkbXYxMDEzLmMKPiBpbmRl eCAzZjNjNDc4ZTliYWEuLmIzZTdlYjMyMmFkZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2lpby9m cmVxdWVuY3kvYWRtdjEwMTMuYwo+ICsrKyBiL2RyaXZlcnMvaWlvL2ZyZXF1ZW5jeS9hZG12MTAx My5jCj4gQEAgLTQ5MCwxMSArNDkwLDYgQEAgc3RhdGljIGludCBhZG12MTAxM19pbml0KHN0cnVj dCBhZG12MTAxM19zdGF0ZSAqc3QpCj4gIAkJCQkJICBzdC0+aW5wdXRfbW9kZSk7Cj4gIH0KPiAg Cj4gLXN0YXRpYyB2b2lkIGFkbXYxMDEzX2Nsa19kaXNhYmxlKHZvaWQgKmRhdGEpCj4gLXsKPiAt CWNsa19kaXNhYmxlX3VucHJlcGFyZShkYXRhKTsKPiAtfQo+IC0KPiAgc3RhdGljIHZvaWQgYWRt djEwMTNfcmVnX2Rpc2FibGUodm9pZCAqZGF0YSkKPiAgewo+ICAJcmVndWxhdG9yX2Rpc2FibGUo ZGF0YSk7Cj4gQEAgLTU1OSw3ICs1NTQsNyBAQCBzdGF0aWMgaW50IGFkbXYxMDEzX3Byb3BlcnRp ZXNfcGFyc2Uoc3RydWN0IGFkbXYxMDEzX3N0YXRlICpzdCkKPiAgCQlyZXR1cm4gZGV2X2Vycl9w cm9iZSgmc3BpLT5kZXYsIFBUUl9FUlIoc3QtPnJlZyksCj4gIAkJCQkgICAgICJmYWlsZWQgdG8g Z2V0IHRoZSBjb21tb24tbW9kZSB2b2x0YWdlXG4iKTsKPiAgCj4gLQlzdC0+Y2xraW4gPSBkZXZt X2Nsa19nZXQoJnNwaS0+ZGV2LCAibG9faW4iKTsKPiArCXN0LT5jbGtpbiA9IGRldm1fY2xrX2dl dF9lbmFibGVkKCZzcGktPmRldiwgImxvX2luIik7Cj4gIAlpZiAoSVNfRVJSKHN0LT5jbGtpbikp Cj4gIAkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnNwaS0+ZGV2LCBQVFJfRVJSKHN0LT5jbGtpbiks Cj4gIAkJCQkgICAgICJmYWlsZWQgdG8gZ2V0IHRoZSBMTyBpbnB1dCBjbG9ja1xuIik7Cj4gQEAg LTYwMSwxNCArNTk2LDYgQEAgc3RhdGljIGludCBhZG12MTAxM19wcm9iZShzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpKQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAtCXJldCA9IGNs a19wcmVwYXJlX2VuYWJsZShzdC0+Y2xraW4pOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0 Owo+IC0KPiAtCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldCgmc3BpLT5kZXYsIGFkbXYx MDEzX2Nsa19kaXNhYmxlLCBzdC0+Y2xraW4pOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0 Owo+IC0KPiAgCXN0LT5uYi5ub3RpZmllcl9jYWxsID0gYWRtdjEwMTNfZnJlcV9jaGFuZ2U7Cj4g IAlyZXQgPSBkZXZtX2Nsa19ub3RpZmllcl9yZWdpc3Rlcigmc3BpLT5kZXYsIHN0LT5jbGtpbiwg JnN0LT5uYik7Cj4gIAlpZiAocmV0KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9mcmVxdWVu Y3kvYWRyZjY3ODAuYyBiL2RyaXZlcnMvaWlvL2ZyZXF1ZW5jeS9hZHJmNjc4MC5jCj4gaW5kZXgg ODI1NWZmZDE3NGY2Li5kN2JmMzRjZWVkZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9paW8vZnJl cXVlbmN5L2FkcmY2NzgwLmMKPiArKysgYi9kcml2ZXJzL2lpby9mcmVxdWVuY3kvYWRyZjY3ODAu Ywo+IEBAIC00NDEsMTEgKzQ0MSw2IEBAIHN0YXRpYyB2b2lkIGFkcmY2NzgwX3Byb3BlcnRpZXNf cGFyc2Uoc3RydWN0IGFkcmY2NzgwX3N0YXRlICpzdCkKPiAgCXN0LT52ZGV0X291dF9lbiA9IGRl dmljZV9wcm9wZXJ0eV9yZWFkX2Jvb2woJnNwaS0+ZGV2LCAiYWRpLHZkZXQtb3V0LWVuIik7Cj4g IH0KPiAgCj4gLXN0YXRpYyB2b2lkIGFkcmY2NzgwX2Nsa19kaXNhYmxlKHZvaWQgKmRhdGEpCj4g LXsKPiAtCWNsa19kaXNhYmxlX3VucHJlcGFyZShkYXRhKTsKPiAtfQo+IC0KPiAgc3RhdGljIHZv aWQgYWRyZjY3ODBfcG93ZXJkb3duKHZvaWQgKmRhdGEpCj4gIHsKPiAgCS8qIERpc2FibGUgYWxs IGNvbXBvbmVudHMgaW4gdGhlIEVuYWJsZSBSZWdpc3RlciAqLwo+IEBAIC00NzMsMjAgKzQ2OCwx MSBAQCBzdGF0aWMgaW50IGFkcmY2NzgwX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCj4g IAo+ICAJYWRyZjY3ODBfcHJvcGVydGllc19wYXJzZShzdCk7Cj4gIAo+IC0Jc3QtPmNsa2luID0g ZGV2bV9jbGtfZ2V0KCZzcGktPmRldiwgImxvX2luIik7Cj4gKwlzdC0+Y2xraW4gPSBkZXZtX2Ns a19nZXRfZW5hYmxlZCgmc3BpLT5kZXYsICJsb19pbiIpOwo+ICAJaWYgKElTX0VSUihzdC0+Y2xr aW4pKQo+ICAJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZzcGktPmRldiwgUFRSX0VSUihzdC0+Y2xr aW4pLAo+ICAJCQkJICAgICAiZmFpbGVkIHRvIGdldCB0aGUgTE8gaW5wdXQgY2xvY2tcbiIpOwo+ ICAKPiAtCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShzdC0+Y2xraW4pOwo+IC0JaWYgKHJldCkK PiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldCgm c3BpLT5kZXYsIGFkcmY2NzgwX2Nsa19kaXNhYmxlLAo+IC0JCQkJICAgICAgIHN0LT5jbGtpbik7 Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+ICAJbXV0ZXhfaW5pdCgmc3QtPmxv Y2spOwo+ICAKPiAgCXJldCA9IGFkcmY2NzgwX2luaXQoc3QpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2lpby9pbXUvYWRpczE2NDc1LmMgYi9kcml2ZXJzL2lpby9pbXUvYWRpczE2NDc1LmMKPiBp bmRleCBlYTkxZDEyNzA3N2QuLjQ1YTg3NjVkN2MxNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2lp by9pbXUvYWRpczE2NDc1LmMKPiArKysgYi9kcml2ZXJzL2lpby9pbXUvYWRpczE2NDc1LmMKPiBA QCAtMTEyMCwxMSArMTEyMCw2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBhZGlzMTY0NzVfdHJpZ2dl cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKnApCj4gIAlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIGFkaXMxNjQ3NV9kaXNhYmxlX2Nsayh2b2lkICpkYXRhKQo+IC17 Cj4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUoKHN0cnVjdCBjbGsgKilkYXRhKTsKPiAtfQo+IC0K PiAgc3RhdGljIGludCBhZGlzMTY0NzVfY29uZmlnX3N5bmNfbW9kZShzdHJ1Y3QgYWRpczE2NDc1 ICpzdCkKPiAgewo+ICAJaW50IHJldDsKPiBAQCAtMTE1MCwxOSArMTE0NSwxMSBAQCBzdGF0aWMg aW50IGFkaXMxNjQ3NV9jb25maWdfc3luY19tb2RlKHN0cnVjdCBhZGlzMTY0NzUgKnN0KQo+ICAK PiAgCS8qIEFsbCB0aGUgb3RoZXIgbW9kZXMgcmVxdWlyZSBleHRlcm5hbCBpbnB1dCBzaWduYWwg Ki8KPiAgCWlmIChzeW5jLT5zeW5jX21vZGUgIT0gQURJUzE2NDc1X1NZTkNfT1VUUFVUKSB7Cj4g LQkJc3RydWN0IGNsayAqY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgTlVMTCk7Cj4gKwkJc3RydWN0 IGNsayAqY2xrID0gZGV2bV9jbGtfZ2V0X2VuYWJsZWQoZGV2LCBOVUxMKTsKPiAgCj4gIAkJaWYg KElTX0VSUihjbGspKQo+ICAJCQlyZXR1cm4gUFRSX0VSUihjbGspOwo+ICAKPiAtCQlyZXQgPSBj bGtfcHJlcGFyZV9lbmFibGUoY2xrKTsKPiAtCQlpZiAocmV0KQo+IC0JCQlyZXR1cm4gcmV0Owo+ IC0KPiAtCQlyZXQgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoZGV2LCBhZGlzMTY0NzVfZGlz YWJsZV9jbGssIGNsayk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJcmV0dXJuIHJldDsKPiAtCj4gIAkJ c3QtPmNsa19mcmVxID0gY2xrX2dldF9yYXRlKGNsayk7Cj4gIAkJaWYgKHN0LT5jbGtfZnJlcSA8 IHN5bmMtPm1pbl9yYXRlIHx8Cj4gIAkJICAgIHN0LT5jbGtfZnJlcSA+IHN5bmMtPm1heF9yYXRl KSB7CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=