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 X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BFA6FC2BA19 for ; Wed, 15 Apr 2020 10:55:32 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 8E07220737 for ; Wed, 15 Apr 2020 10:55:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="aVg60gZl"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="tEm4R5EX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8E07220737 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=f/dA5vP6WgnSUcwA7+6WqvPVeLndZaAB86hg5tuU054=; b=aVg60gZlbcy9XX eMxK2E8HQHg8rkgQZ35mPhnAlwCXjfq/XRT4VGZnY4tOTxuuyoYvsVjK6Py5Ld2mghP/BxDSe04uT bhVCE/+Y6vd6oILOy3o1AwfoSsQVdnHAo+Z1fgEwfgKnDaGPbwhFwvjpBLzf36QEmnDo/FKBxAyFc ozcu6jHo5pLjCi8BK/GDIiUA6odnigSL7pcdsbQypBVy551H0s7UBg4chNSpVtOq3y924bai4GYHO B+T02f3ArdnI3x8DCpXOZoDqdZ98EvUQtTN/XgE3iSgNzaJh2h29fiGRqCGSRI7hayPga9f58fQ93 hU7wzXxfb3U5Bir4nZvw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jOfhb-00025B-3m; Wed, 15 Apr 2020 10:55:31 +0000 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jOfhW-00022O-0E for linux-arm-kernel@lists.infradead.org; Wed, 15 Apr 2020 10:55:29 +0000 Received: by mail-wm1-x344.google.com with SMTP id z6so18477697wml.2 for ; Wed, 15 Apr 2020 03:55:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=R8tRYEpxxEPlayVnOl86Zjmj2wweu43P32rcEscnd4U=; b=tEm4R5EXLY8Bhc1ez5zXz17ZxxUKJ+OWalEb/0iXjR8wBgHlPiddNl/DxasGqaFziy A69deq4h8U6IfgnWSH7+80mzRUGyghsC/txtUTymENkXHZVO1zM6S4D+QvVggGihEJ8/ vD1Mg7Lt3PP5SgsVSgc2ncpYtt5SfgeyyccuFCQI7Sf1SvfMXK7fdwv05MW+0uB0rX42 87OGew3rboZmbtgFWi/3bt0tWh4iaewqwi8o7XT0gIit5muE5FJkhSaem6TJdvk6fBCP en0S4cbwSoNYbK1qw7YbJy3B0pot6wwZzQt5re3vdwxUStfHXC6O2sgTtrcwqtPYLk51 veDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=R8tRYEpxxEPlayVnOl86Zjmj2wweu43P32rcEscnd4U=; b=uBIpEGvtqIru2HeWBlC2ZtSEnIUvcnhd1OnBsLHEGY0Yt1trrW+JZlzONQYdqXBihZ c+HEUNg6XD98chWE8fTFUXlLJEXk4apamJ+3gGWoT92C3qM4AeNW7MQ6RbTXRq9g9aug /Ttt/Q3txPWANK9EDQKXONvklp4Wg0k7aTea+Yqg0nt2zySx2cuQ6KDrzhCGcPRSc5KF lwzAEeQtpOuxuExJP1Ci4j+EVAjGlTF7cWFaCOETT/FvbNIT1X22dwJU3iTsMU7hxt54 prvkQOmwGhx6hq0PdPMbU6Op+AIMmwdWhV/N4PjM7BS3p+IWqWjO6a9HaO6sJqTqUf2P 26Lw== X-Gm-Message-State: AGi0Pub6HWnx7OBF9vkvmC1VDub/n1+wOf0qFFHNUIbI1rKRMU0Xb8M5 +UZCDfpf2XCw/UmbrC/oTvFZNCY8ylE= X-Google-Smtp-Source: APiQypK3a8EmmsmxmYRl87sN8dYbtBHoR2mIoCc2MrMge+e6NHHfrjS0/Nlhwb5b4M0sZOKor2j91Q== X-Received: by 2002:a05:600c:2214:: with SMTP id z20mr4983028wml.189.1586948123742; Wed, 15 Apr 2020 03:55:23 -0700 (PDT) Received: from [192.168.0.41] (lns-bzn-59-82-252-135-148.adsl.proxad.net. [82.252.135.148]) by smtp.googlemail.com with ESMTPSA id s17sm9769514wmc.48.2020.04.15.03.55.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Apr 2020 03:55:23 -0700 (PDT) Subject: Re: [RFC v2 5/9] thermal: Store mode in thermal_zone_device To: Andrzej Pietrasiewicz , linux-pm@vger.kernel.org References: <2bc5a902-acde-526a-11a5-2357d899916c@linaro.org> <20200414180105.20042-1-andrzej.p@collabora.com> <20200414180105.20042-6-andrzej.p@collabora.com> From: Daniel Lezcano Message-ID: <9ac3b37a-8746-b8ee-70e1-9c876830ac83@linaro.org> Date: Wed, 15 Apr 2020 12:55:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <20200414180105.20042-6-andrzej.p@collabora.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200415_035526_085167_2BEFA8E4 X-CRM114-Status: GOOD ( 26.28 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Rafael J . Wysocki" , platform-driver-x86@vger.kernel.org, Shawn Guo , kernel@collabora.com, Fabio Estevam , Amit Kucheria , linux-acpi@vger.kernel.org, NXP Linux Team , Darren Hart , Zhang Rui , Gayatri Kammela , Len Brown , Bartlomiej Zolnierkiewicz , Sascha Hauer , Ido Schimmel , Jiri Pirko , Thomas Gleixner , Allison Randal , linux-arm-kernel@lists.infradead.org, Support Opensource , netdev@vger.kernel.org, Peter Kaestle , Pengutronix Kernel Team , Enrico Weigelt , "David S . Miller" , Andy Shevchenko Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMTQvMDQvMjAyMCAyMDowMSwgQW5kcnplaiBQaWV0cmFzaWV3aWN6IHdyb3RlOgo+IHN0cnVj dCB0aGVybWFsX3pvbmVfZGV2aWNlIGhhcyBhICJtb2RlIiBtZW1iZXIgbm93LCBzbyB1c2UgaXQu Cj4gCj4gU2lnbmVkLW9mZi1ieTogQW5kcnplaiBQaWV0cmFzaWV3aWN6IDxhbmRyemVqLnBAY29s bGFib3JhLmNvbT4KCkF0IHRoaXMgcG9pbnQsIEkgc3VnZ2VzdCB0byBub3QgZ28gZnVydGhlciB3 aXRoIHRoZSBjaGFuZ2VzIGZyb20gcGF0Y2gKNS05IGJ1dCBhZGQgYSBuZXcgJ21vZGUnIGZpZWxk IGluIHRoZSBzdHJ1Y3QgdGhlcm1hbF96b25lX3BhcmFtcy4KCkFuZCB0aGVuIGluIHRoZSBmdW5j dGlvbiB0aGVybWFsX3pvbmVfZGV2aWNlX3JlZ2lzdGVyKCkKCiB7CgkuLi4KCWlmICh0enApCgkJ dGhlcm1hbF96b25lX3NldF9tb2RlKHR6cC0+bW9kZSk7CgkuLi4KIH0KClRoZSBpbXBvcnRhbnQg dGhpbmcgaXMgdG8gcHJldmVudCBleHBvcnRpbmcgdGhlIGZ1bmN0aW9ucwp0aGVybWFsX3pvbmVf ZGV2aWNlX2VuYWJsZSAvIGRpc2FibGUsIHNvIHRoZXkgc3RheSBpbiB0aGUgdGhlcm1hbApmcmFt ZXdvcmsgaW50ZXJuYWxzLCB0aHVzIGZvcmNpbmcgdG8gY2VudHJhbGl6ZSB0aGUgY29udHJvbCBv ZiB0aGUKdGhlcm1hbCB6b25lcyBmcm9tIHRoZSBmcmFtZXdvcmsgYW5kIG5vdCBmcm9tIHRoZSBk ZXZpY2UgZHJpdmVycy4KClRlbXBvcmFybHksIHVudGlsIHRoZSBwb2xsaW5nIGlzIGRpc2FibGVk IGZvciBkaXNhYmxlZCB0aGVybWFsIHpvbmVzLAp0aGUgYWNwaSBkcml2ZXIgY2FuIHN0YXkgaW4g dGhlIHN0YXRlIGl0IGlzLiBJdCBtYXkgbmVlZCBzcGVjaWFsCmF0dGVudGlvbiBhZnRlcndhcmRz LgoKQnV0IEkgYmVsaWV2ZSBzZXR0aW5nIHRoZSBtb2RlIGZyb20gdGhlIHJlZ2lzdGVyIGZ1bmN0 aW9uIHdpbGwgaGVscCB0bwpjbGVhbiB1cCBhIGxvdCBvZiBkcml2ZXJzLgoKPiAtLS0KPiAgZHJp dmVycy9hY3BpL3RoZXJtYWwuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgNDggKysrKysrKysr LS0tLS0tLS0tLQo+ICAuLi4vZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZV90aGVybWFsLmMg ICAgfCAzNSArKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL3BsYXRmb3JtL3g4Ni9hY2VyaGRmLmMg ICAgICAgICAgICAgICAgfCAyNCArKysrLS0tLS0tCj4gIGRyaXZlcnMvdGhlcm1hbC9kYTkwNjIt dGhlcm1hbC5jICAgICAgICAgICAgICB8IDEyICstLS0tCj4gIGRyaXZlcnMvdGhlcm1hbC9pbXhf dGhlcm1hbC5jICAgICAgICAgICAgICAgICB8IDMwICsrKysrLS0tLS0tLQo+ICAuLi4vaW50ZWwv aW50MzQweF90aGVybWFsL2ludDM0MDBfdGhlcm1hbC5jICAgfCAzNCArKysrKy0tLS0tLS0tCj4g IC4uLi90aGVybWFsL2ludGVsL2ludGVsX3F1YXJrX2R0c190aGVybWFsLmMgICB8IDIyICsrKy0t LS0tLQo+ICBkcml2ZXJzL3RoZXJtYWwvb2YtdGhlcm1hbC5jICAgICAgICAgICAgICAgICAgfCAx OSArKy0tLS0tLQo+ICA4IGZpbGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDE1MyBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3RoZXJtYWwuYyBiL2RyaXZl cnMvYWNwaS90aGVybWFsLmMKPiBpbmRleCAzMjhiNDc5Y2U3ZjYuLjc1NWYxMmI3NmMyMCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2FjcGkvdGhlcm1hbC5jCj4gKysrIGIvZHJpdmVycy9hY3BpL3Ro ZXJtYWwuYwo+IEBAIC0xNzIsNyArMTcyLDYgQEAgc3RydWN0IGFjcGlfdGhlcm1hbCB7Cj4gIAlz dHJ1Y3QgYWNwaV90aGVybWFsX3RyaXBzIHRyaXBzOwo+ICAJc3RydWN0IGFjcGlfaGFuZGxlX2xp c3QgZGV2aWNlczsKPiAgCXN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0aGVybWFsX3pvbmU7 Cj4gLQlpbnQgdHpfZW5hYmxlZDsKPiAgCWludCBrZWx2aW5fb2Zmc2V0OwkvKiBpbiBtaWxsaWRl Z3JlZXMgKi8KPiAgCXN0cnVjdCB3b3JrX3N0cnVjdCB0aGVybWFsX2NoZWNrX3dvcms7Cj4gIH07 Cj4gQEAgLTQ5OSw4ICs0OTgsMTQgQEAgc3RhdGljIGludCBhY3BpX3RoZXJtYWxfZ2V0X3RyaXBf cG9pbnRzKHN0cnVjdCBhY3BpX3RoZXJtYWwgKnR6KQo+ICBzdGF0aWMgdm9pZCBhY3BpX3RoZXJt YWxfY2hlY2sodm9pZCAqZGF0YSkKPiAgewo+ICAJc3RydWN0IGFjcGlfdGhlcm1hbCAqdHogPSBk YXRhOwo+ICsJZW51bSB0aGVybWFsX2RldmljZV9tb2RlIG1vZGU7Cj4gIAo+IC0JaWYgKCF0ei0+ dHpfZW5hYmxlZCkKPiArCS8qCj4gKwkgKiB0aGlzIGRyaXZlciBkb2VzIG5vdCBwcm92aWRlIC0+ Z2V0X21vZGUoKSwgc28gY2FsbGluZwo+ICsJICogdGhlcm1hbF96b25lX2RldmljZV9nZXRfbW9k ZSgpIGFsd2F5cyBzdWNjZWVkcwo+ICsJICovCj4gKwl0aGVybWFsX3pvbmVfZGV2aWNlX2dldF9t b2RlKHR6LT50aGVybWFsX3pvbmUsICZtb2RlKTsKPiArCWlmIChtb2RlICE9IFRIRVJNQUxfREVW SUNFX0VOQUJMRUQpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCXRoZXJtYWxfem9uZV9kZXZpY2VfdXBk YXRlKHR6LT50aGVybWFsX3pvbmUsCj4gQEAgLTUyNiwzOSArNTMxLDMzIEBAIHN0YXRpYyBpbnQg dGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdGhlcm1hbCwgaW50 ICp0ZW1wKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgdGhlcm1hbF9nZXRf bW9kZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdGhlcm1hbCwKPiAtCQkJCWVudW0gdGhl cm1hbF9kZXZpY2VfbW9kZSAqbW9kZSkKPiAtewo+IC0Jc3RydWN0IGFjcGlfdGhlcm1hbCAqdHog PSB0aGVybWFsLT5kZXZkYXRhOwo+IC0KPiAtCSptb2RlID0gdHotPnR6X2VuYWJsZWQgPyBUSEVS TUFMX0RFVklDRV9FTkFCTEVEIDoKPiAtCQlUSEVSTUFMX0RFVklDRV9ESVNBQkxFRDsKPiAtCj4g LQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgc3RhdGljIGludCB0aGVybWFsX3NldF9tb2RlKHN0cnVj dCB0aGVybWFsX3pvbmVfZGV2aWNlICp0aGVybWFsLAo+ICAJCQkJZW51bSB0aGVybWFsX2Rldmlj ZV9tb2RlIG1vZGUpCj4gIHsKPiAgCXN0cnVjdCBhY3BpX3RoZXJtYWwgKnR6ID0gdGhlcm1hbC0+ ZGV2ZGF0YTsKPiAtCWludCBlbmFibGU7Cj4gKwllbnVtIHRoZXJtYWxfZGV2aWNlX21vZGUgb2xk X21vZGU7Cj4gIAo+ICsJaWYgKG1vZGUgIT0gVEhFUk1BTF9ERVZJQ0VfRElTQUJMRUQgJiYKPiAr CSAgICBtb2RlICE9IFRIRVJNQUxfREVWSUNFX0VOQUJMRUQpCj4gKwkJcmV0dXJuIC1FSU5WQUw7 Cj4gIAkvKgo+ICAJICogZW5hYmxlL2Rpc2FibGUgdGhlcm1hbCBtYW5hZ2VtZW50IGZyb20gQUNQ SSB0aGVybWFsIGRyaXZlcgo+ICAJICovCj4gLQlpZiAobW9kZSA9PSBUSEVSTUFMX0RFVklDRV9F TkFCTEVEKQo+IC0JCWVuYWJsZSA9IDE7Cj4gLQllbHNlIGlmIChtb2RlID09IFRIRVJNQUxfREVW SUNFX0RJU0FCTEVEKSB7Cj4gLQkJZW5hYmxlID0gMDsKPiArCWlmIChtb2RlID09IFRIRVJNQUxf REVWSUNFX0RJU0FCTEVEKQo+ICAJCXByX3dhcm4oInRoZXJtYWwgem9uZSB3aWxsIGJlIGRpc2Fi bGVkXG4iKTsKPiAtCX0gZWxzZQo+IC0JCXJldHVybiAtRUlOVkFMOwo+ICAKPiAtCWlmIChlbmFi bGUgIT0gdHotPnR6X2VuYWJsZWQpIHsKPiAtCQl0ei0+dHpfZW5hYmxlZCA9IGVuYWJsZTsKPiAr CS8qCj4gKwkgKiB0aGlzIGRyaXZlciBkb2VzIG5vdCBwcm92aWRlIC0+Z2V0X21vZGUoKSwgc28g Y2FsbGluZwo+ICsJICogdGhlcm1hbF96b25lX2RldmljZV9nZXRfbW9kZSgpIGFsd2F5cyBzdWNj ZWVkcwo+ICsJICovCj4gKwl0aGVybWFsX3pvbmVfZGV2aWNlX2dldF9tb2RlKHRoZXJtYWwsICZv bGRfbW9kZSk7Cj4gKwo+ICsJaWYgKG1vZGUgIT0gb2xkX21vZGUpIHsKPiArCQl0aGVybWFsX3pv bmVfZGV2aWNlX3N0b3JlX21vZGUodGhlcm1hbCwgbW9kZSk7Cj4gIAkJQUNQSV9ERUJVR19QUklO VCgoQUNQSV9EQl9JTkZPLAo+ICAJCQkiJXMga2VybmVsIEFDUEkgdGhlcm1hbCBjb250cm9sXG4i LAo+IC0JCQl0ei0+dHpfZW5hYmxlZCA/ICJFbmFibGUiIDogIkRpc2FibGUiKSk7Cj4gKwkJCW1v ZGUgPT0gVEhFUk1BTF9ERVZJQ0VfRU5BQkxFRCA/Cj4gKwkJCSJFbmFibGUiIDogIkRpc2FibGUi KSk7Cj4gIAkJYWNwaV90aGVybWFsX2NoZWNrKHR6KTsKPiAgCX0KPiAgCXJldHVybiAwOwo+IEBA IC04NTAsNyArODQ5LDYgQEAgc3RhdGljIHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlX29wcyBh Y3BpX3RoZXJtYWxfem9uZV9vcHMgPSB7Cj4gIAkuYmluZCA9IGFjcGlfdGhlcm1hbF9iaW5kX2Nv b2xpbmdfZGV2aWNlLAo+ICAJLnVuYmluZAk9IGFjcGlfdGhlcm1hbF91bmJpbmRfY29vbGluZ19k ZXZpY2UsCj4gIAkuZ2V0X3RlbXAgPSB0aGVybWFsX2dldF90ZW1wLAo+IC0JLmdldF9tb2RlID0g dGhlcm1hbF9nZXRfbW9kZSwKPiAgCS5zZXRfbW9kZSA9IHRoZXJtYWxfc2V0X21vZGUsCj4gIAku Z2V0X3RyaXBfdHlwZSA9IHRoZXJtYWxfZ2V0X3RyaXBfdHlwZSwKPiAgCS5nZXRfdHJpcF90ZW1w ID0gdGhlcm1hbF9nZXRfdHJpcF90ZW1wLAo+IEBAIC05MDcsNyArOTA1LDcgQEAgc3RhdGljIGlu dCBhY3BpX3RoZXJtYWxfcmVnaXN0ZXJfdGhlcm1hbF96b25lKHN0cnVjdCBhY3BpX3RoZXJtYWwg KnR6KQo+ICAJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKQo+ICAJCXJldHVybiAtRU5PREVWOwo+ ICAKPiAtCXR6LT50el9lbmFibGVkID0gMTsKPiArCXRoZXJtYWxfem9uZV9kZXZpY2Vfc3RvcmVf ZW5hYmxlZCh0ei0+dGhlcm1hbF96b25lKTsKPiAgCj4gIAlkZXZfaW5mbygmdHotPmRldmljZS0+ ZGV2LCAicmVnaXN0ZXJlZCBhcyB0aGVybWFsX3pvbmUlZFxuIiwKPiAgCQkgdHotPnRoZXJtYWxf em9uZS0+aWQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHhzdy9jb3JlX3RoZXJtYWwuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3 L2NvcmVfdGhlcm1hbC5jCj4gaW5kZXggY2Q0MzVjYTdhZGJlLi5jNDIzOWIyYmExNmQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZV90aGVybWFs LmMKPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3JlX3RoZXJt YWwuYwo+IEBAIC05OCw3ICs5OCw2IEBAIHN0cnVjdCBtbHhzd190aGVybWFsX21vZHVsZSB7Cj4g IAlzdHJ1Y3QgbWx4c3dfdGhlcm1hbCAqcGFyZW50Owo+ICAJc3RydWN0IHRoZXJtYWxfem9uZV9k ZXZpY2UgKnR6ZGV2Owo+ICAJc3RydWN0IG1seHN3X3RoZXJtYWxfdHJpcCB0cmlwc1tNTFhTV19U SEVSTUFMX05VTV9UUklQU107Cj4gLQllbnVtIHRoZXJtYWxfZGV2aWNlX21vZGUgbW9kZTsKPiAg CWludCBtb2R1bGU7IC8qIE1vZHVsZSBvciBnZWFyYm94IG51bWJlciAqLwo+ICB9Owo+ICAKPiBA QCAtMTEwLDcgKzEwOSw2IEBAIHN0cnVjdCBtbHhzd190aGVybWFsIHsKPiAgCXN0cnVjdCB0aGVy bWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2c1tNTFhTV19NRkNSX1BXTVNfTUFYXTsKPiAgCXU4IGNv b2xpbmdfbGV2ZWxzW01MWFNXX1RIRVJNQUxfTUFYX1NUQVRFICsgMV07Cj4gIAlzdHJ1Y3QgbWx4 c3dfdGhlcm1hbF90cmlwIHRyaXBzW01MWFNXX1RIRVJNQUxfTlVNX1RSSVBTXTsKPiAtCWVudW0g dGhlcm1hbF9kZXZpY2VfbW9kZSBtb2RlOwo+ICAJc3RydWN0IG1seHN3X3RoZXJtYWxfbW9kdWxl ICp0el9tb2R1bGVfYXJyOwo+ICAJdTggdHpfbW9kdWxlX251bTsKPiAgCXN0cnVjdCBtbHhzd190 aGVybWFsX21vZHVsZSAqdHpfZ2VhcmJveF9hcnI7Cj4gQEAgLTI3NywxNiArMjc1LDYgQEAgc3Rh dGljIGludCBtbHhzd190aGVybWFsX3VuYmluZChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAq dHpkZXYsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBtbHhzd190aGVybWFs X2dldF9tb2RlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emRldiwKPiAtCQkJCSAgZW51 bSB0aGVybWFsX2RldmljZV9tb2RlICptb2RlKQo+IC17Cj4gLQlzdHJ1Y3QgbWx4c3dfdGhlcm1h bCAqdGhlcm1hbCA9IHR6ZGV2LT5kZXZkYXRhOwo+IC0KPiAtCSptb2RlID0gdGhlcm1hbC0+bW9k ZTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBtbHhzd190aGVybWFs X3NldF9tb2RlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emRldiwKPiAgCQkJCSAgZW51 bSB0aGVybWFsX2RldmljZV9tb2RlIG1vZGUpCj4gIHsKPiBAQCAtMzAzLDcgKzI5MSw3IEBAIHN0 YXRpYyBpbnQgbWx4c3dfdGhlcm1hbF9zZXRfbW9kZShzdHJ1Y3QgdGhlcm1hbF96b25lX2Rldmlj ZSAqdHpkZXYsCj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZ0emRldi0+bG9jayk7Cj4gIAo+IC0JdGhl cm1hbC0+bW9kZSA9IG1vZGU7Cj4gKwl0aGVybWFsX3pvbmVfZGV2aWNlX3N0b3JlX21vZGUodHpk ZXYsIG1vZGUpOwo+ICAJdGhlcm1hbF96b25lX2RldmljZV91cGRhdGUodHpkZXYsIFRIRVJNQUxf RVZFTlRfVU5TUEVDSUZJRUQpOwo+ICAKPiAgCXJldHVybiAwOwo+IEBAIC00MDksNyArMzk3LDYg QEAgc3RhdGljIGludCBtbHhzd190aGVybWFsX3RyZW5kX2dldChzdHJ1Y3QgdGhlcm1hbF96b25l X2RldmljZSAqdHpkZXYsCj4gIHN0YXRpYyBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMg bWx4c3dfdGhlcm1hbF9vcHMgPSB7Cj4gIAkuYmluZCA9IG1seHN3X3RoZXJtYWxfYmluZCwKPiAg CS51bmJpbmQgPSBtbHhzd190aGVybWFsX3VuYmluZCwKPiAtCS5nZXRfbW9kZSA9IG1seHN3X3Ro ZXJtYWxfZ2V0X21vZGUsCj4gIAkuc2V0X21vZGUgPSBtbHhzd190aGVybWFsX3NldF9tb2RlLAo+ ICAJLmdldF90ZW1wID0gbWx4c3dfdGhlcm1hbF9nZXRfdGVtcCwKPiAgCS5nZXRfdHJpcF90eXBl CT0gbWx4c3dfdGhlcm1hbF9nZXRfdHJpcF90eXBlLAo+IEBAIC00NjgsMTYgKzQ1NSw2IEBAIHN0 YXRpYyBpbnQgbWx4c3dfdGhlcm1hbF9tb2R1bGVfdW5iaW5kKHN0cnVjdCB0aGVybWFsX3pvbmVf ZGV2aWNlICp0emRldiwKPiAgCXJldHVybiBlcnI7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgbWx4 c3dfdGhlcm1hbF9tb2R1bGVfbW9kZV9nZXQoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6 ZGV2LAo+IC0JCQkJCSBlbnVtIHRoZXJtYWxfZGV2aWNlX21vZGUgKm1vZGUpCj4gLXsKPiAtCXN0 cnVjdCBtbHhzd190aGVybWFsX21vZHVsZSAqdHogPSB0emRldi0+ZGV2ZGF0YTsKPiAtCj4gLQkq bW9kZSA9IHR6LT5tb2RlOwo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+ICBzdGF0aWMgaW50 IG1seHN3X3RoZXJtYWxfbW9kdWxlX21vZGVfc2V0KHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNl ICp0emRldiwKPiAgCQkJCQkgZW51bSB0aGVybWFsX2RldmljZV9tb2RlIG1vZGUpCj4gIHsKPiBA QCAtNDk1LDcgKzQ3Miw3IEBAIHN0YXRpYyBpbnQgbWx4c3dfdGhlcm1hbF9tb2R1bGVfbW9kZV9z ZXQoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZGV2LAo+ICAKPiAgCW11dGV4X3VubG9j aygmdHpkZXYtPmxvY2spOwo+ICAKPiAtCXR6LT5tb2RlID0gbW9kZTsKPiArCXRoZXJtYWxfem9u ZV9kZXZpY2Vfc3RvcmVfbW9kZSh0emRldiwgbW9kZSk7Cj4gIAl0aGVybWFsX3pvbmVfZGV2aWNl X3VwZGF0ZSh0emRldiwgVEhFUk1BTF9FVkVOVF9VTlNQRUNJRklFRCk7Cj4gIAo+ICAJcmV0dXJu IDA7Cj4gQEAgLTYwMCw3ICs1NzcsNiBAQCBtbHhzd190aGVybWFsX21vZHVsZV90cmlwX2h5c3Rf c2V0KHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emRldiwgaW50IHRyaXAsCj4gIHN0YXRp YyBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbWx4c3dfdGhlcm1hbF9tb2R1bGVfb3Bz ID0gewo+ICAJLmJpbmQJCT0gbWx4c3dfdGhlcm1hbF9tb2R1bGVfYmluZCwKPiAgCS51bmJpbmQJ CT0gbWx4c3dfdGhlcm1hbF9tb2R1bGVfdW5iaW5kLAo+IC0JLmdldF9tb2RlCT0gbWx4c3dfdGhl cm1hbF9tb2R1bGVfbW9kZV9nZXQsCj4gIAkuc2V0X21vZGUJPSBtbHhzd190aGVybWFsX21vZHVs ZV9tb2RlX3NldCwKPiAgCS5nZXRfdGVtcAk9IG1seHN3X3RoZXJtYWxfbW9kdWxlX3RlbXBfZ2V0 LAo+ICAJLmdldF90cmlwX3R5cGUJPSBtbHhzd190aGVybWFsX21vZHVsZV90cmlwX3R5cGVfZ2V0 LAo+IEBAIC02MzksNyArNjE1LDYgQEAgc3RhdGljIGludCBtbHhzd190aGVybWFsX2dlYXJib3hf dGVtcF9nZXQoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZGV2LAo+ICBzdGF0aWMgc3Ry dWN0IHRoZXJtYWxfem9uZV9kZXZpY2Vfb3BzIG1seHN3X3RoZXJtYWxfZ2VhcmJveF9vcHMgPSB7 Cj4gIAkuYmluZAkJPSBtbHhzd190aGVybWFsX21vZHVsZV9iaW5kLAo+ICAJLnVuYmluZAkJPSBt bHhzd190aGVybWFsX21vZHVsZV91bmJpbmQsCj4gLQkuZ2V0X21vZGUJPSBtbHhzd190aGVybWFs X21vZHVsZV9tb2RlX2dldCwKPiAgCS5zZXRfbW9kZQk9IG1seHN3X3RoZXJtYWxfbW9kdWxlX21v ZGVfc2V0LAo+ICAJLmdldF90ZW1wCT0gbWx4c3dfdGhlcm1hbF9nZWFyYm94X3RlbXBfZ2V0LAo+ ICAJLmdldF90cmlwX3R5cGUJPSBtbHhzd190aGVybWFsX21vZHVsZV90cmlwX3R5cGVfZ2V0LAo+ IEBAIC03NjksNyArNzQ0LDcgQEAgbWx4c3dfdGhlcm1hbF9tb2R1bGVfdHpfaW5pdChzdHJ1Y3Qg bWx4c3dfdGhlcm1hbF9tb2R1bGUgKm1vZHVsZV90eikKPiAgCQlyZXR1cm4gZXJyOwo+ICAJfQo+ ICAKPiAtCW1vZHVsZV90ei0+bW9kZSA9IFRIRVJNQUxfREVWSUNFX0VOQUJMRUQ7Cj4gKwl0aGVy bWFsX3pvbmVfZGV2aWNlX3N0b3JlX2VuYWJsZWQobW9kdWxlX3R6LT50emRldik7Cj4gIAlyZXR1 cm4gMDsKPiAgfQo+ICAKPiBAQCAtODg1LDcgKzg2MCw3IEBAIG1seHN3X3RoZXJtYWxfZ2VhcmJv eF90el9pbml0KHN0cnVjdCBtbHhzd190aGVybWFsX21vZHVsZSAqZ2VhcmJveF90eikKPiAgCWlm IChJU19FUlIoZ2VhcmJveF90ei0+dHpkZXYpKQo+ICAJCXJldHVybiBQVFJfRVJSKGdlYXJib3hf dHotPnR6ZGV2KTsKPiAgCj4gLQlnZWFyYm94X3R6LT5tb2RlID0gVEhFUk1BTF9ERVZJQ0VfRU5B QkxFRDsKPiArCXRoZXJtYWxfem9uZV9kZXZpY2Vfc3RvcmVfZW5hYmxlZChnZWFyYm94X3R6LT50 emRldik7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiBAQCAtMTA1NCw3ICsxMDI5LDcgQEAgaW50 IG1seHN3X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbWx4c3dfY29yZSAqY29yZSwKPiAgCWlmIChlcnIp Cj4gIAkJZ290byBlcnJfdW5yZWdfbW9kdWxlc190emRldjsKPiAgCj4gLQl0aGVybWFsLT5tb2Rl ID0gVEhFUk1BTF9ERVZJQ0VfRU5BQkxFRDsKPiArCXRoZXJtYWxfem9uZV9kZXZpY2Vfc3RvcmVf ZW5hYmxlZCh0aGVybWFsLT50emRldik7Cj4gIAkqcF90aGVybWFsID0gdGhlcm1hbDsKPiAgCXJl dHVybiAwOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvYWNlcmhkZi5j IGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvYWNlcmhkZi5jCj4gaW5kZXggZDUxODhjMWQ2ODhiLi5l NWE2YWJkZjYyY2EgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvYWNlcmhkZi5j Cj4gKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvYWNlcmhkZi5jCj4gQEAgLTY1LDggKzY1LDEw IEBACj4gIAo+ICAjaWZkZWYgU1RBUlRfSU5fS0VSTkVMX01PREUKPiAgc3RhdGljIGludCBrZXJu ZWxtb2RlID0gMTsKPiArI2RlZmluZSBBQ0VSSERGX0RFRkFVTFRfTU9ERSBUSEVSTUFMX0RFVklD RV9FTkFCTEVECj4gICNlbHNlCj4gIHN0YXRpYyBpbnQga2VybmVsbW9kZTsKPiArI2RlZmluZSBB Q0VSSERGX0RFRkFVTFRfTU9ERSBUSEVSTUFMX0RFVklDRV9ESVNBQkxFRAo+ICAjZW5kaWYKPiAg Cj4gIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZXJ2YWwgPSAxMDsKPiBAQCAtNDEwLDE4ICs0MTIs NiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWNlcmhkZl9lbmFibGVfa2VybmVsbW9kZSh2b2lkKQo+ ICAJcHJfbm90aWNlKCJrZXJuZWwgbW9kZSBmYW4gY29udHJvbCBPTlxuIik7Cj4gIH0KPiAgCj4g LXN0YXRpYyBpbnQgYWNlcmhkZl9nZXRfbW9kZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAq dGhlcm1hbCwKPiAtCQkJICAgIGVudW0gdGhlcm1hbF9kZXZpY2VfbW9kZSAqbW9kZSkKPiAtewo+ IC0JaWYgKHZlcmJvc2UpCj4gLQkJcHJfbm90aWNlKCJrZXJuZWwgbW9kZSBmYW4gY29udHJvbCAl ZFxuIiwga2VybmVsbW9kZSk7Cj4gLQo+IC0JKm1vZGUgPSAoa2VybmVsbW9kZSkgPyBUSEVSTUFM X0RFVklDRV9FTkFCTEVECj4gLQkJCSAgICAgOiBUSEVSTUFMX0RFVklDRV9ESVNBQkxFRDsKPiAt Cj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgLyoKPiAgICogc2V0IG9wZXJhdGlvbiBtb2RlOwo+ ICAgKiBlbmFibGVkOiB0aGUgdGhlcm1hbCBsYXllciBvZiB0aGUga2VybmVsIHRha2VzIGNhcmUg YWJvdXQKPiBAQCAtNDM1LDEwICs0MjUsMTMgQEAgc3RhdGljIGludCBhY2VyaGRmX3NldF9tb2Rl KHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0aGVybWFsLAo+ICAJICAgIG1vZGUgIT0gVEhF Uk1BTF9ERVZJQ0VfRU5BQkxFRCkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gLQlpZiAobW9k ZSA9PSBUSEVSTUFMX0RFVklDRV9ESVNBQkxFRCAmJiBrZXJuZWxtb2RlKQo+ICsJaWYgKG1vZGUg PT0gVEhFUk1BTF9ERVZJQ0VfRElTQUJMRUQgJiYga2VybmVsbW9kZSkgewo+ICAJCWFjZXJoZGZf cmV2ZXJ0X3RvX2Jpb3NfbW9kZSgpOwo+IC0JZWxzZSBpZiAobW9kZSA9PSBUSEVSTUFMX0RFVklD RV9FTkFCTEVEICYmICFrZXJuZWxtb2RlKQo+ICsJCXRoZXJtYWxfem9uZV9kZXZpY2Vfc3RvcmVf ZW5hYmxlZCh0aGVybWFsKTsKPiArCX0gZWxzZSBpZiAobW9kZSA9PSBUSEVSTUFMX0RFVklDRV9F TkFCTEVEICYmICFrZXJuZWxtb2RlKSB7Cj4gIAkJYWNlcmhkZl9lbmFibGVfa2VybmVsbW9kZSgp Owo+ICsJCXRoZXJtYWxfem9uZV9kZXZpY2Vfc3RvcmVfZGlzYWJsZWQodGhlcm1hbCk7Cj4gKwl9 Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBAQCAtNDkyLDcgKzQ4NSw2IEBAIHN0YXRpYyBzdHJ1 Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgYWNlcmhkZl9kZXZfb3BzID0gewo+ICAJLmJpbmQg PSBhY2VyaGRmX2JpbmQsCj4gIAkudW5iaW5kID0gYWNlcmhkZl91bmJpbmQsCj4gIAkuZ2V0X3Rl bXAgPSBhY2VyaGRmX2dldF9lY190ZW1wLAo+IC0JLmdldF9tb2RlID0gYWNlcmhkZl9nZXRfbW9k ZSwKPiAgCS5zZXRfbW9kZSA9IGFjZXJoZGZfc2V0X21vZGUsCj4gIAkuZ2V0X3RyaXBfdHlwZSA9 IGFjZXJoZGZfZ2V0X3RyaXBfdHlwZSwKPiAgCS5nZXRfdHJpcF9oeXN0ID0gYWNlcmhkZl9nZXRf dHJpcF9oeXN0LAo+IEBAIC03NTcsNiArNzQ5LDggQEAgc3RhdGljIGludCBfX2luaXQgYWNlcmhk Zl9yZWdpc3Rlcl90aGVybWFsKHZvaWQpCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+ ICsJdGhlcm1hbF96b25lX2RldmljZV9zdG9yZV9tb2RlKHRoel9kZXYsIEFDRVJIREZfREVGQVVM VF9NT0RFKTsKPiArCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy90aGVybWFsL2RhOTA2Mi10aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvZGE5MDYyLXRoZXJt YWwuYwo+IGluZGV4IGMzMjcwOWJhZGVkYS4uMjc5ZDM5M2JiMDQ4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvdGhlcm1hbC9kYTkwNjItdGhlcm1hbC5jCj4gKysrIGIvZHJpdmVycy90aGVybWFsL2Rh OTA2Mi10aGVybWFsLmMKPiBAQCAtNDksNyArNDksNiBAQCBzdHJ1Y3QgZGE5MDYyX3RoZXJtYWwg ewo+ICAJc3RydWN0IGRhOTA2MiAqaHc7Cj4gIAlzdHJ1Y3QgZGVsYXllZF93b3JrIHdvcms7Cj4g IAlzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqem9uZTsKPiAtCWVudW0gdGhlcm1hbF9kZXZp Y2VfbW9kZSBtb2RlOwo+ICAJc3RydWN0IG11dGV4IGxvY2s7IC8qIHByb3RlY3Rpb24gZm9yIGRh OTA2Ml90aGVybWFsIHRlbXBlcmF0dXJlICovCj4gIAlpbnQgdGVtcGVyYXR1cmU7Cj4gIAlpbnQg aXJxOwo+IEBAIC0xMjEsMTQgKzEyMCw2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBkYTkwNjJfdGhl cm1hbF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQo+ICAJcmV0dXJuIElSUV9IQU5E TEVEOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGRhOTA2Ml90aGVybWFsX2dldF9tb2RlKHN0cnVj dCB0aGVybWFsX3pvbmVfZGV2aWNlICp6LAo+IC0JCQkJICAgZW51bSB0aGVybWFsX2RldmljZV9t b2RlICptb2RlKQo+IC17Cj4gLQlzdHJ1Y3QgZGE5MDYyX3RoZXJtYWwgKnRoZXJtYWwgPSB6LT5k ZXZkYXRhOwo+IC0JKm1vZGUgPSB0aGVybWFsLT5tb2RlOwo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAt Cj4gIHN0YXRpYyBpbnQgZGE5MDYyX3RoZXJtYWxfZ2V0X3RyaXBfdHlwZShzdHJ1Y3QgdGhlcm1h bF96b25lX2RldmljZSAqeiwKPiAgCQkJCQlpbnQgdHJpcCwKPiAgCQkJCQllbnVtIHRoZXJtYWxf dHJpcF90eXBlICp0eXBlKQo+IEBAIC0xODEsNyArMTcyLDYgQEAgc3RhdGljIGludCBkYTkwNjJf dGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqeiwKPiAgCj4gIHN0 YXRpYyBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgZGE5MDYyX3RoZXJtYWxfb3BzID0g ewo+ICAJLmdldF90ZW1wCT0gZGE5MDYyX3RoZXJtYWxfZ2V0X3RlbXAsCj4gLQkuZ2V0X21vZGUJ PSBkYTkwNjJfdGhlcm1hbF9nZXRfbW9kZSwKPiAgCS5nZXRfdHJpcF90eXBlCT0gZGE5MDYyX3Ro ZXJtYWxfZ2V0X3RyaXBfdHlwZSwKPiAgCS5nZXRfdHJpcF90ZW1wCT0gZGE5MDYyX3RoZXJtYWxf Z2V0X3RyaXBfdGVtcCwKPiAgfTsKPiBAQCAtMjMzLDcgKzIyMyw2IEBAIHN0YXRpYyBpbnQgZGE5 MDYyX3RoZXJtYWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCj4gIAl0 aGVybWFsLT5jb25maWcgPSBtYXRjaC0+ZGF0YTsKPiAgCXRoZXJtYWwtPmh3ID0gY2hpcDsKPiAt CXRoZXJtYWwtPm1vZGUgPSBUSEVSTUFMX0RFVklDRV9FTkFCTEVEOwo+ICAJdGhlcm1hbC0+ZGV2 ID0gJnBkZXYtPmRldjsKPiAgCj4gIAlJTklUX0RFTEFZRURfV09SSygmdGhlcm1hbC0+d29yaywg ZGE5MDYyX3RoZXJtYWxfcG9sbF9vbik7Cj4gQEAgLTI0OCw2ICsyMzcsNyBAQCBzdGF0aWMgaW50 IGRhOTA2Ml90aGVybWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJ cmV0ID0gUFRSX0VSUih0aGVybWFsLT56b25lKTsKPiAgCQlnb3RvIGVycjsKPiAgCX0KPiArCXRo ZXJtYWxfem9uZV9kZXZpY2Vfc3RvcmVfZW5hYmxlZCh0aGVybWFsLT56b25lKTsKPiAgCj4gIAlk ZXZfZGJnKCZwZGV2LT5kZXYsCj4gIAkJIlRKVU5DIHRlbXBlcmF0dXJlIHBvbGxpbmcgcGVyaW9k IHNldCBhdCAlZCBtc1xuIiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2lteF90aGVy bWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvaW14X3RoZXJtYWwuYwo+IGluZGV4IDM2YjE5MjRmMTkz OC4uZjNmNjAyYjRlY2U1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbXhfdGhlcm1h bC5jCj4gKysrIGIvZHJpdmVycy90aGVybWFsL2lteF90aGVybWFsLmMKPiBAQCAtMTk3LDcgKzE5 Nyw2IEBAIHN0cnVjdCBpbXhfdGhlcm1hbF9kYXRhIHsKPiAgCXN0cnVjdCBjcHVmcmVxX3BvbGlj eSAqcG9saWN5Owo+ICAJc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6Owo+ICAJc3RydWN0 IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7Cj4gLQllbnVtIHRoZXJtYWxfZGV2aWNlX21v ZGUgbW9kZTsKPiAgCXN0cnVjdCByZWdtYXAgKnRlbXBtb247Cj4gIAl1MzIgYzEsIGMyOyAvKiBT ZWUgZm9ybXVsYSBpbiBpbXhfaW5pdF9jYWxpYigpICovCj4gIAlpbnQgdGVtcF9wYXNzaXZlOwo+ IEBAIC0yNTIsMTEgKzI1MSwxNyBAQCBzdGF0aWMgaW50IGlteF9nZXRfdGVtcChzdHJ1Y3QgdGhl cm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKPiAgCXN0cnVjdCBpbXhfdGhlcm1hbF9k YXRhICpkYXRhID0gdHotPmRldmRhdGE7Cj4gIAljb25zdCBzdHJ1Y3QgdGhlcm1hbF9zb2NfZGF0 YSAqc29jX2RhdGEgPSBkYXRhLT5zb2NkYXRhOwo+ICAJc3RydWN0IHJlZ21hcCAqbWFwID0gZGF0 YS0+dGVtcG1vbjsKPiArCWVudW0gdGhlcm1hbF9kZXZpY2VfbW9kZSBtb2RlOwo+ICAJdW5zaWdu ZWQgaW50IG5fbWVhczsKPiAgCWJvb2wgd2FpdDsKPiAgCXUzMiB2YWw7Cj4gIAo+IC0JaWYgKGRh dGEtPm1vZGUgPT0gVEhFUk1BTF9ERVZJQ0VfRU5BQkxFRCkgewo+ICsJLyoKPiArCSAqIHRoaXMg ZHJpdmVyIGRvZXMgbm90IHByb3ZpZGUgLT5nZXRfbW9kZSgpLCBzbyBjYWxsaW5nCj4gKwkgKiB0 aGVybWFsX3pvbmVfZGV2aWNlX2dldF9tb2RlKCkgYWx3YXlzIHN1Y2NlZWRzCj4gKwkgKi8KPiAr CXRoZXJtYWxfem9uZV9kZXZpY2VfZ2V0X21vZGUodHosICZtb2RlKTsKPiArCWlmIChtb2RlID09 IFRIRVJNQUxfREVWSUNFX0VOQUJMRUQpIHsKPiAgCQkvKiBDaGVjayBpZiBhIG1lYXN1cmVtZW50 IGlzIGN1cnJlbnRseSBpbiBwcm9ncmVzcyAqLwo+ICAJCXJlZ21hcF9yZWFkKG1hcCwgc29jX2Rh dGEtPnRlbXBfZGF0YSwgJnZhbCk7Cj4gIAkJd2FpdCA9ICEodmFsICYgc29jX2RhdGEtPnRlbXBf dmFsaWRfbWFzayk7Cj4gQEAgLTI4Myw3ICsyODgsNyBAQCBzdGF0aWMgaW50IGlteF9nZXRfdGVt cChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKPiAgCj4gIAlyZWdt YXBfcmVhZChtYXAsIHNvY19kYXRhLT50ZW1wX2RhdGEsICZ2YWwpOwo+ICAKPiAtCWlmIChkYXRh LT5tb2RlICE9IFRIRVJNQUxfREVWSUNFX0VOQUJMRUQpIHsKPiArCWlmIChtb2RlICE9IFRIRVJN QUxfREVWSUNFX0VOQUJMRUQpIHsKPiAgCQlyZWdtYXBfd3JpdGUobWFwLCBzb2NfZGF0YS0+c2Vu c29yX2N0cmwgKyBSRUdfQ0xSLAo+ICAJCQkgICAgIHNvY19kYXRhLT5tZWFzdXJlX3RlbXBfbWFz ayk7Cj4gIAkJcmVnbWFwX3dyaXRlKG1hcCwgc29jX2RhdGEtPnNlbnNvcl9jdHJsICsgUkVHX1NF VCwKPiBAQCAtMzMxLDE2ICszMzYsNiBAQCBzdGF0aWMgaW50IGlteF9nZXRfdGVtcChzdHJ1Y3Qg dGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKPiAgCXJldHVybiAwOwo+ICB9Cj4g IAo+IC1zdGF0aWMgaW50IGlteF9nZXRfbW9kZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAq dHosCj4gLQkJCWVudW0gdGhlcm1hbF9kZXZpY2VfbW9kZSAqbW9kZSkKPiAtewo+IC0Jc3RydWN0 IGlteF90aGVybWFsX2RhdGEgKmRhdGEgPSB0ei0+ZGV2ZGF0YTsKPiAtCj4gLQkqbW9kZSA9IGRh dGEtPm1vZGU7Cj4gLQo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gIHN0YXRpYyBpbnQgaW14X3Nl dF9tb2RlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwKPiAgCQkJZW51bSB0aGVybWFs X2RldmljZV9tb2RlIG1vZGUpCj4gIHsKPiBAQCAtMzc4LDcgKzM3Myw3IEBAIHN0YXRpYyBpbnQg aW14X3NldF9tb2RlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwKPiAgCQlyZXR1cm4g LUVJTlZBTDsKPiAgCX0KPiAgCj4gLQlkYXRhLT5tb2RlID0gbW9kZTsKPiArCXRoZXJtYWxfem9u ZV9kZXZpY2Vfc3RvcmVfbW9kZSh0eiwgbW9kZSk7Cj4gIAl0aGVybWFsX3pvbmVfZGV2aWNlX3Vw ZGF0ZSh0eiwgVEhFUk1BTF9FVkVOVF9VTlNQRUNJRklFRCk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4g QEAgLTQ2OSw3ICs0NjQsNiBAQCBzdGF0aWMgc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Vfb3Bz IGlteF90el9vcHMgPSB7Cj4gIAkuYmluZCA9IGlteF9iaW5kLAo+ICAJLnVuYmluZCA9IGlteF91 bmJpbmQsCj4gIAkuZ2V0X3RlbXAgPSBpbXhfZ2V0X3RlbXAsCj4gLQkuZ2V0X21vZGUgPSBpbXhf Z2V0X21vZGUsCj4gIAkuc2V0X21vZGUgPSBpbXhfc2V0X21vZGUsCj4gIAkuZ2V0X3RyaXBfdHlw ZSA9IGlteF9nZXRfdHJpcF90eXBlLAo+ICAJLmdldF90cmlwX3RlbXAgPSBpbXhfZ2V0X3RyaXBf dGVtcCwKPiBAQCAtODMzLDcgKzgyNyw3IEBAIHN0YXRpYyBpbnQgaW14X3RoZXJtYWxfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCQkgICAgIGRhdGEtPnNvY2RhdGEtPm1l YXN1cmVfdGVtcF9tYXNrKTsKPiAgCj4gIAlkYXRhLT5pcnFfZW5hYmxlZCA9IHRydWU7Cj4gLQlk YXRhLT5tb2RlID0gVEhFUk1BTF9ERVZJQ0VfRU5BQkxFRDsKPiArCXRoZXJtYWxfem9uZV9kZXZp Y2Vfc3RvcmVfZW5hYmxlZChkYXRhLT50eik7Cj4gIAo+ICAJcmV0ID0gZGV2bV9yZXF1ZXN0X3Ro cmVhZGVkX2lycSgmcGRldi0+ZGV2LCBkYXRhLT5pcnEsCj4gIAkJCWlteF90aGVybWFsX2FsYXJt X2lycSwgaW14X3RoZXJtYWxfYWxhcm1faXJxX3RocmVhZCwKPiBAQCAtODg3LDcgKzg4MSw3IEBA IHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgaW14X3RoZXJtYWxfc3VzcGVuZChzdHJ1Y3QgZGV2 aWNlICpkZXYpCj4gIAkJICAgICBkYXRhLT5zb2NkYXRhLT5tZWFzdXJlX3RlbXBfbWFzayk7Cj4g IAlyZWdtYXBfd3JpdGUobWFwLCBkYXRhLT5zb2NkYXRhLT5zZW5zb3JfY3RybCArIFJFR19TRVQs Cj4gIAkJICAgICBkYXRhLT5zb2NkYXRhLT5wb3dlcl9kb3duX21hc2spOwo+IC0JZGF0YS0+bW9k ZSA9IFRIRVJNQUxfREVWSUNFX0RJU0FCTEVEOwo+ICsJdGhlcm1hbF96b25lX2RldmljZV9zdG9y ZV9kaXNhYmxlZChkYXRhLT50eik7Cj4gIAljbGtfZGlzYWJsZV91bnByZXBhcmUoZGF0YS0+dGhl cm1hbF9jbGspOwo+ICAKPiAgCXJldHVybiAwOwo+IEBAIC05MDcsNyArOTAxLDcgQEAgc3RhdGlj IGludCBfX21heWJlX3VudXNlZCBpbXhfdGhlcm1hbF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2 KQo+ICAJCSAgICAgZGF0YS0+c29jZGF0YS0+cG93ZXJfZG93bl9tYXNrKTsKPiAgCXJlZ21hcF93 cml0ZShtYXAsIGRhdGEtPnNvY2RhdGEtPnNlbnNvcl9jdHJsICsgUkVHX1NFVCwKPiAgCQkgICAg IGRhdGEtPnNvY2RhdGEtPm1lYXN1cmVfdGVtcF9tYXNrKTsKPiAtCWRhdGEtPm1vZGUgPSBUSEVS TUFMX0RFVklDRV9FTkFCTEVEOwo+ICsJdGhlcm1hbF96b25lX2RldmljZV9zdG9yZV9lbmFibGVk KGRhdGEtPnR6KTsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MDBfdGhlcm1hbC5jIGIvZHJpdmVy cy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1hbC9pbnQzNDAwX3RoZXJtYWwuYwo+IGluZGV4 IGZiYjU5ZGQwOTQ4MS4uYTdkOWI0MmMwNjBkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdGhlcm1h bC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvaW50MzQwMF90aGVybWFsLmMKPiArKysgYi9kcml2ZXJz L3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MDBfdGhlcm1hbC5jCj4gQEAgLTQ0 LDcgKzQ0LDYgQEAgc3RhdGljIGNoYXIgKmludDM0MDBfdGhlcm1hbF91dWlkc1tJTlQzNDAwX1RI RVJNQUxfTUFYSU1VTV9VVUlEXSA9IHsKPiAgc3RydWN0IGludDM0MDBfdGhlcm1hbF9wcml2IHsK PiAgCXN0cnVjdCBhY3BpX2RldmljZSAqYWRldjsKPiAgCXN0cnVjdCB0aGVybWFsX3pvbmVfZGV2 aWNlICp0aGVybWFsOwo+IC0JaW50IG1vZGU7Cj4gIAlpbnQgYXJ0X2NvdW50Owo+ICAJc3RydWN0 IGFydCAqYXJ0czsKPiAgCWludCB0cnRfY291bnQ7Cj4gQEAgLTIzMCw0MiArMjI5LDMzIEBAIHN0 YXRpYyBpbnQgaW50MzQwMF90aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2 aWNlICp0aGVybWFsLAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaW50MzQw MF90aGVybWFsX2dldF9tb2RlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0aGVybWFsLAo+ IC0JCQkJZW51bSB0aGVybWFsX2RldmljZV9tb2RlICptb2RlKQo+IC17Cj4gLQlzdHJ1Y3QgaW50 MzQwMF90aGVybWFsX3ByaXYgKnByaXYgPSB0aGVybWFsLT5kZXZkYXRhOwo+IC0KPiAtCSptb2Rl ID0gcHJpdi0+bW9kZTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBp bnQzNDAwX3RoZXJtYWxfc2V0X21vZGUoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnRoZXJt YWwsCj4gIAkJCQllbnVtIHRoZXJtYWxfZGV2aWNlX21vZGUgbW9kZSkKPiAgewo+ICAJc3RydWN0 IGludDM0MDBfdGhlcm1hbF9wcml2ICpwcml2ID0gdGhlcm1hbC0+ZGV2ZGF0YTsKPiAtCWJvb2wg ZW5hYmxlOwo+ICsJZW51bSB0aGVybWFsX2RldmljZV9tb2RlIG9sZF9tb2RlOwo+ICAJaW50IHJl c3VsdCA9IDA7Cj4gIAo+IC0JaWYgKG1vZGUgPT0gVEhFUk1BTF9ERVZJQ0VfRU5BQkxFRCkKPiAt CQllbmFibGUgPSB0cnVlOwo+IC0JZWxzZSBpZiAobW9kZSA9PSBUSEVSTUFMX0RFVklDRV9ESVNB QkxFRCkKPiAtCQllbmFibGUgPSBmYWxzZTsKPiAtCWVsc2UKPiArCWlmIChtb2RlICE9IFRIRVJN QUxfREVWSUNFX0VOQUJMRUQgJiYKPiArCSAgICBtb2RlICE9IFRIRVJNQUxfREVWSUNFX0RJU0FC TEVEKQo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAKPiAtCWlmIChlbmFibGUgIT0gcHJpdi0+bW9k ZSkgewo+IC0JCXByaXYtPm1vZGUgPSBlbmFibGU7Cj4gKwkvKgo+ICsJICogdGhpcyBkcml2ZXIg ZG9lcyBub3QgcHJvdmlkZSAtPmdldF9tb2RlKCksIHNvIGNhbGxpbmcKPiArCSAqIHRoZXJtYWxf em9uZV9kZXZpY2VfZ2V0X21vZGUoKSBhbHdheXMgc3VjY2VlZHMKPiArCSAqLwo+ICsJdGhlcm1h bF96b25lX2RldmljZV9nZXRfbW9kZSh0aGVybWFsLCAmb2xkX21vZGUpOwo+ICsJaWYgKG1vZGUg IT0gb2xkX21vZGUpIHsKPiArCQl0aGVybWFsX3pvbmVfZGV2aWNlX3N0b3JlX21vZGUodGhlcm1h bCwgbW9kZSk7Cj4gIAkJcmVzdWx0ID0gaW50MzQwMF90aGVybWFsX3J1bl9vc2MocHJpdi0+YWRl di0+aGFuZGxlLAo+IC0JCQkJCQkgcHJpdi0+Y3VycmVudF91dWlkX2luZGV4LAo+IC0JCQkJCQkg ZW5hYmxlKTsKPiArCQkJCQkJcHJpdi0+Y3VycmVudF91dWlkX2luZGV4LAo+ICsJCQkJCQltb2Rl ID09IFRIRVJNQUxfREVWSUNFX0VOQUJMRUQpOwo+ICAJfQo+ICAJcmV0dXJuIHJlc3VsdDsKPiAg fQo+ICAKPiAgc3RhdGljIHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlX29wcyBpbnQzNDAwX3Ro ZXJtYWxfb3BzID0gewo+ICAJLmdldF90ZW1wID0gaW50MzQwMF90aGVybWFsX2dldF90ZW1wLAo+ IC0JLmdldF9tb2RlID0gaW50MzQwMF90aGVybWFsX2dldF9tb2RlLAo+ICAJLnNldF9tb2RlID0g aW50MzQwMF90aGVybWFsX3NldF9tb2RlLAo+ICB9Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy90aGVybWFsL2ludGVsL2ludGVsX3F1YXJrX2R0c190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJt YWwvaW50ZWwvaW50ZWxfcXVhcmtfZHRzX3RoZXJtYWwuYwo+IGluZGV4IDExZDdkYjg5NTEyNS4u NmQ0NDBlZjMwNTVmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9x dWFya19kdHNfdGhlcm1hbC5jCj4gKysrIGIvZHJpdmVycy90aGVybWFsL2ludGVsL2ludGVsX3F1 YXJrX2R0c190aGVybWFsLmMKPiBAQCAtMTAzLDcgKzEwMyw2IEBAIHN0cnVjdCBzb2Nfc2Vuc29y X2VudHJ5IHsKPiAgCWJvb2wgbG9ja2VkOwo+ICAJdTMyIHN0b3JlX3B0cHM7Cj4gIAl1MzIgc3Rv cmVfZHRzX2VuYWJsZTsKPiAtCWVudW0gdGhlcm1hbF9kZXZpY2VfbW9kZSBtb2RlOwo+ICAJc3Ry dWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6b25lOwo+ICB9Owo+ICAKPiBAQCAtMTI4LDcgKzEy Nyw3IEBAIHN0YXRpYyBpbnQgc29jX2R0c19lbmFibGUoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZp Y2UgKnR6ZCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAgCWlmIChvdXQgJiBRUktfRFRTX0VOQUJM RV9CSVQpIHsKPiAtCQlhdXhfZW50cnktPm1vZGUgPSBUSEVSTUFMX0RFVklDRV9FTkFCTEVEOwo+ ICsJCXRoZXJtYWxfem9uZV9kZXZpY2Vfc3RvcmVfZW5hYmxlZCh0emQpOwo+ICAJCXJldHVybiAw Owo+ICAJfQo+ICAKPiBAQCAtMTM5LDkgKzEzOCw5IEBAIHN0YXRpYyBpbnQgc29jX2R0c19lbmFi bGUoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZCkKPiAgCQlpZiAocmV0KQo+ICAJCQly ZXR1cm4gcmV0Owo+ICAKPiAtCQlhdXhfZW50cnktPm1vZGUgPSBUSEVSTUFMX0RFVklDRV9FTkFC TEVEOwo+ICsJCXRoZXJtYWxfem9uZV9kZXZpY2Vfc3RvcmVfZW5hYmxlZCh0emQpOwo+ICAJfSBl bHNlIHsKPiAtCQlhdXhfZW50cnktPm1vZGUgPSBUSEVSTUFMX0RFVklDRV9ESVNBQkxFRDsKPiAr CQl0aGVybWFsX3pvbmVfZGV2aWNlX3N0b3JlX2Rpc2FibGVkKHR6ZCk7Cj4gIAkJcHJfaW5mbygi RFRTIGlzIGxvY2tlZC4gQ2Fubm90IGVuYWJsZSBEVFNcbiIpOwo+ICAJCXJldCA9IC1FUEVSTTsK PiAgCX0KPiBAQCAtMTYxLDcgKzE2MCw3IEBAIHN0YXRpYyBpbnQgc29jX2R0c19kaXNhYmxlKHN0 cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gIAlp ZiAoIShvdXQgJiBRUktfRFRTX0VOQUJMRV9CSVQpKSB7Cj4gLQkJYXV4X2VudHJ5LT5tb2RlID0g VEhFUk1BTF9ERVZJQ0VfRElTQUJMRUQ7Cj4gKwkJdGhlcm1hbF96b25lX2RldmljZV9zdG9yZV9k aXNhYmxlZCh0emQpOwo+ICAJCXJldHVybiAwOwo+ICAJfQo+ICAKPiBAQCAtMTczLDkgKzE3Miw5 IEBAIHN0YXRpYyBpbnQgc29jX2R0c19kaXNhYmxlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNl ICp0emQpCj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsKPiAgCj4gLQkJYXV4X2VudHJ5 LT5tb2RlID0gVEhFUk1BTF9ERVZJQ0VfRElTQUJMRUQ7Cj4gKwkJdGhlcm1hbF96b25lX2Rldmlj ZV9zdG9yZV9kaXNhYmxlZCh0emQpOwo+ICAJfSBlbHNlIHsKPiAtCQlhdXhfZW50cnktPm1vZGUg PSBUSEVSTUFMX0RFVklDRV9FTkFCTEVEOwo+ICsJCXRoZXJtYWxfem9uZV9kZXZpY2Vfc3RvcmVf ZW5hYmxlZCh0emQpOwo+ICAJCXByX2luZm8oIkRUUyBpcyBsb2NrZWQuIENhbm5vdCBkaXNhYmxl IERUU1xuIik7Cj4gIAkJcmV0ID0gLUVQRVJNOwo+ICAJfQo+IEBAIC0zMDksMTQgKzMwOCw2IEBA IHN0YXRpYyBpbnQgc3lzX2dldF9jdXJyX3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Ug KnR6ZCwKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHN5c19nZXRfbW9kZShz dHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLAo+IC0JCQkJZW51bSB0aGVybWFsX2Rldmlj ZV9tb2RlICptb2RlKQo+IC17Cj4gLQlzdHJ1Y3Qgc29jX3NlbnNvcl9lbnRyeSAqYXV4X2VudHJ5 ID0gdHpkLT5kZXZkYXRhOwo+IC0JKm1vZGUgPSBhdXhfZW50cnktPm1vZGU7Cj4gLQlyZXR1cm4g MDsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBzeXNfc2V0X21vZGUoc3RydWN0IHRoZXJtYWxfem9u ZV9kZXZpY2UgKnR6ZCwKPiAgCQkJCWVudW0gdGhlcm1hbF9kZXZpY2VfbW9kZSBtb2RlKQo+ICB7 Cj4gQEAgLTM0MSw3ICszMzIsNiBAQCBzdGF0aWMgc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Vf b3BzIHR6b25lX29wcyA9IHsKPiAgCS5nZXRfdHJpcF90eXBlID0gc3lzX2dldF90cmlwX3R5cGUs Cj4gIAkuc2V0X3RyaXBfdGVtcCA9IHN5c19zZXRfdHJpcF90ZW1wLAo+ICAJLmdldF9jcml0X3Rl bXAgPSBzeXNfZ2V0X2NyaXRfdGVtcCwKPiAtCS5nZXRfbW9kZSA9IHN5c19nZXRfbW9kZSwKPiAg CS5zZXRfbW9kZSA9IHN5c19zZXRfbW9kZSwKPiAgfTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvdGhlcm1hbC9vZi10aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvb2YtdGhlcm1hbC5jCj4g aW5kZXggMzZiZWJmNjIzOTgwLi4wZjFlMTM0ZTkwZWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy90 aGVybWFsL29mLXRoZXJtYWwuYwo+ICsrKyBiL2RyaXZlcnMvdGhlcm1hbC9vZi10aGVybWFsLmMK PiBAQCAtNTEsNyArNTEsNiBAQCBzdHJ1Y3QgX190aGVybWFsX2JpbmRfcGFyYW1zIHsKPiAgCj4g IC8qKgo+ICAgKiBzdHJ1Y3QgX190aGVybWFsX3pvbmUgLSBpbnRlcm5hbCByZXByZXNlbnRhdGlv biBvZiBhIHRoZXJtYWwgem9uZQo+IC0gKiBAbW9kZTogY3VycmVudCB0aGVybWFsIHpvbmUgZGV2 aWNlIG1vZGUgKGVuYWJsZWQvZGlzYWJsZWQpCj4gICAqIEBwYXNzaXZlX2RlbGF5OiBwb2xsaW5n IGludGVydmFsIHdoaWxlIHBhc3NpdmUgY29vbGluZyBpcyBhY3RpdmF0ZWQKPiAgICogQHBvbGxp bmdfZGVsYXk6IHpvbmUgcG9sbGluZyBpbnRlcnZhbAo+ICAgKiBAc2xvcGU6IHNsb3BlIG9mIHRo ZSB0ZW1wZXJhdHVyZSBhZGp1c3RtZW50IGN1cnZlCj4gQEAgLTY1LDcgKzY0LDYgQEAgc3RydWN0 IF9fdGhlcm1hbF9iaW5kX3BhcmFtcyB7Cj4gICAqLwo+ICAKPiAgc3RydWN0IF9fdGhlcm1hbF96 b25lIHsKPiAtCWVudW0gdGhlcm1hbF9kZXZpY2VfbW9kZSBtb2RlOwo+ICAJaW50IHBhc3NpdmVf ZGVsYXk7Cj4gIAlpbnQgcG9sbGluZ19kZWxheTsKPiAgCWludCBzbG9wZTsKPiBAQCAtMjY5LDE2 ICsyNjcsNiBAQCBzdGF0aWMgaW50IG9mX3RoZXJtYWxfdW5iaW5kKHN0cnVjdCB0aGVybWFsX3pv bmVfZGV2aWNlICp0aGVybWFsLAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQg b2ZfdGhlcm1hbF9nZXRfbW9kZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosCj4gLQkJ CSAgICAgICBlbnVtIHRoZXJtYWxfZGV2aWNlX21vZGUgKm1vZGUpCj4gLXsKPiAtCXN0cnVjdCBf X3RoZXJtYWxfem9uZSAqZGF0YSA9IHR6LT5kZXZkYXRhOwo+IC0KPiAtCSptb2RlID0gZGF0YS0+ bW9kZTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBvZl90aGVybWFs X3NldF9tb2RlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwKPiAgCQkJICAgICAgIGVu dW0gdGhlcm1hbF9kZXZpY2VfbW9kZSBtb2RlKQo+ICB7Cj4gQEAgLTI5OCw3ICsyODYsNyBAQCBz dGF0aWMgaW50IG9mX3RoZXJtYWxfc2V0X21vZGUoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Ug KnR6LAo+ICAKPiAgCW11dGV4X3VubG9jaygmdHotPmxvY2spOwo+ICAKPiAtCWRhdGEtPm1vZGUg PSBtb2RlOwo+ICsJdGhlcm1hbF96b25lX2RldmljZV9zdG9yZV9tb2RlKHR6LCBtb2RlKTsKPiAg CXRoZXJtYWxfem9uZV9kZXZpY2VfdXBkYXRlKHR6LCBUSEVSTUFMX0VWRU5UX1VOU1BFQ0lGSUVE KTsKPiAgCj4gIAlyZXR1cm4gMDsKPiBAQCAtMzk1LDcgKzM4Myw2IEBAIHN0YXRpYyBpbnQgb2Zf dGhlcm1hbF9nZXRfY3JpdF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwKPiAg fQo+ICAKPiAgc3RhdGljIHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlX29wcyBvZl90aGVybWFs X29wcyA9IHsKPiAtCS5nZXRfbW9kZSA9IG9mX3RoZXJtYWxfZ2V0X21vZGUsCj4gIAkuc2V0X21v ZGUgPSBvZl90aGVybWFsX3NldF9tb2RlLAo+ICAKPiAgCS5nZXRfdHJpcF90eXBlID0gb2ZfdGhl cm1hbF9nZXRfdHJpcF90eXBlLAo+IEBAIC01NTYsNyArNTQzLDcgQEAgdGhlcm1hbF96b25lX29m X3NlbnNvcl9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBzZW5zb3JfaWQsIHZvaWQg KmRhdGEsCj4gIAkJCXR6ZCA9IHRoZXJtYWxfem9uZV9vZl9hZGRfc2Vuc29yKGNoaWxkLCBzZW5z b3JfbnAsCj4gIAkJCQkJCQkgZGF0YSwgb3BzKTsKPiAgCQkJaWYgKCFJU19FUlIodHpkKSkKPiAt CQkJCXR6ZC0+b3BzLT5zZXRfbW9kZSh0emQsIFRIRVJNQUxfREVWSUNFX0VOQUJMRUQpOwo+ICsJ CQkJdGhlcm1hbF96b25lX2RldmljZV9lbmFibGUodHpkKTsKPiAgCj4gIAkJCW9mX25vZGVfcHV0 KGNoaWxkKTsKPiAgCQkJZ290byBleGl0Owo+IEBAIC05ODEsNyArOTY4LDYgQEAgX19pbml0ICp0 aGVybWFsX29mX2J1aWxkX3RoZXJtYWxfem9uZShzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+ICAK PiAgZmluaXNoOgo+ICAJb2Zfbm9kZV9wdXQoY2hpbGQpOwo+IC0JdHotPm1vZGUgPSBUSEVSTUFM X0RFVklDRV9ESVNBQkxFRDsKPiAgCj4gIAlyZXR1cm4gdHo7Cj4gIAo+IEBAIC0xMTM2LDYgKzEx MjIsNyBAQCBpbnQgX19pbml0IG9mX3BhcnNlX3RoZXJtYWxfem9uZXModm9pZCkKPiAgCQkJb2Zf dGhlcm1hbF9mcmVlX3pvbmUodHopOwo+ICAJCQkvKiBhdHRlbXB0aW5nIHRvIGJ1aWxkIHJlbWFp bmluZyB6b25lcyBzdGlsbCAqLwo+ICAJCX0KPiArCQl0aGVybWFsX3pvbmVfZGV2aWNlX3N0b3Jl X2Rpc2FibGVkKHpvbmUpOwo+ICAJfQo+ICAJb2Zfbm9kZV9wdXQobnApOwo+ICAKPiAKCgotLSAK PGh0dHA6Ly93d3cubGluYXJvLm9yZy8+IExpbmFyby5vcmcg4pSCIE9wZW4gc291cmNlIHNvZnR3 YXJlIGZvciBBUk0gU29DcwoKRm9sbG93IExpbmFybzogIDxodHRwOi8vd3d3LmZhY2Vib29rLmNv bS9wYWdlcy9MaW5hcm8+IEZhY2Vib29rIHwKPGh0dHA6Ly90d2l0dGVyLmNvbS8jIS9saW5hcm9v cmc+IFR3aXR0ZXIgfAo8aHR0cDovL3d3dy5saW5hcm8ub3JnL2xpbmFyby1ibG9nLz4gQmxvZwoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=