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 9A42DC7618A for ; Sun, 19 Mar 2023 16:03:53 +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:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=R4+FsP8itAhZZmuE6aDELHW/SYfFfJTYENKDXc4BBgg=; b=0AH1q6Q15x5slh jmo/cr31/ED07z+BylLzfe2f6rPPoO6NbNtb1f/dgZsvqOhHJ3yE+A4hOtKLu8DeAJ6V1M1QIUP7n OKMJR2DBsXKMJ93D6cjz5hgup6+HWkNLmBmcneMkOYg/z5yRnLoTOoRw9ceoAcjqljEuedPPwb5Bn 7EFdKGXjNN3XZG37/6jm4fPx6F8msqws4ZmvVK29X7IJa3L4BcmesH6v5Fm/56JSi6AYyoCcgIhKU QctZ/lBYTqxpHJA3WGOajWpJS8BCTT9dhRFyaJmbH724tIP0Oxltx0fJKTgISr17Y0HYLp8Chy8/R MM7VmSfyJG29r98rSqNw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pdvUQ-006yj9-2V; Sun, 19 Mar 2023 16:02:34 +0000 Received: from mail-dm6nam10on20628.outbound.protection.outlook.com ([2a01:111:f400:7e88::628] helo=NAM10-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pZEXj-00E5al-QW; Mon, 06 Mar 2023 17:22:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EUxa3HuKo+9pPyaEiCVxVHxtkSQyVz3W2koirnphTsqfEej8CtkuAR7bson9xrow/qmCX+U+39H0VA7JsWkYskzIQHHx7E3GHRpPNB4NYkHUlE621yuoqCvJLf5tIOquJg7fzMG9cloGHSK7b2o5Sy3jvLvjrkW1QEPaxA/C6i8CcStniOhCxRLkCX6/BiTAYiU5dvH1INFMOoXdzbRDTR2rYWYRLV85L44lLe5bOP2ykMddD9TIADTrS306/HjJEW/BvoQg9C+u4DAygW+umnTlHPDJPAMpmuF/IwX5h7LMwnwhljrWpPNiTkgdDrtx5b63cbEbca8PtxxaC8S+qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YREE40HDO+gVeY8ivPI1whPer9dC+VgwIRxFR7usEVk=; b=AS2jelBLNuoGnLdo1Hb8uEGGnfV+E4ALlmKd2z67r9/iKN6PobqL/Ry+3JPJyZsUko5r277xA7UqS1dOKBcwHY7YNGGWMOYeBofJeDT82NJMQHGWrOXCHRUE8Qjy7GSpeX8V01Nvbsrvlwwkc02ZirzydyJNhRT+PyqMNV6lg7EInfGjYWTYgVZCXfSTPBFgJ5dVG2Nz3CJd3a3Ffbnt/dX9BqWUt7+WqS+HWo8rXz9MgnvQWIFaVITBZ1RZQM8RVFU271E2g6dCs2OjaQZkkvmfXVAH3BNwPM1uk8s6juaVlZMi9v0vFKCsDZSnEnToKGIDv/0b377OGVLNy71jzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YREE40HDO+gVeY8ivPI1whPer9dC+VgwIRxFR7usEVk=; b=pIVHfnZH1c5aZlT9MrJxYNT3fTXdDmA0VtJRMoaWt0OAc7veUmC7DPyMg3WtRe4FkIfes7aaepUs2LSuOcIwD0E26RdbXZRj3cLiMUf/4d9c1WYnl4qBHeig8xFLVfdLyXKn4ZsGA6fXWuEGX7cJ0CJ2rZLuH6xzbSEBsy7pIGA= Received: from DS7PR03CA0295.namprd03.prod.outlook.com (2603:10b6:5:3ad::30) by CH3PR12MB8210.namprd12.prod.outlook.com (2603:10b6:610:129::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28; Mon, 6 Mar 2023 17:22:28 +0000 Received: from DM6NAM11FT111.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3ad:cafe::b6) by DS7PR03CA0295.outlook.office365.com (2603:10b6:5:3ad::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28 via Frontend Transport; Mon, 6 Mar 2023 17:22:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT111.mail.protection.outlook.com (10.13.173.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6178.15 via Frontend Transport; Mon, 6 Mar 2023 17:22:28 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Mon, 6 Mar 2023 11:22:26 -0600 Received: from xhdsneeli40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Mon, 6 Mar 2023 11:21:59 -0600 From: Amit Kumar Mahapatra To: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Dhruva Gole , Patrice Chotard Subject: [PATCH V5 01/15] spi: Replace all spi->chip_select and spi->cs_gpiod references with function call Date: Mon, 6 Mar 2023 22:50:55 +0530 Message-ID: <20230306172109.595464-2-amit.kumar-mahapatra@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230306172109.595464-1-amit.kumar-mahapatra@amd.com> References: <20230306172109.595464-1-amit.kumar-mahapatra@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT111:EE_|CH3PR12MB8210:EE_ X-MS-Office365-Filtering-Correlation-Id: ae413132-1a2c-4943-c727-08db1e675c7d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tUwDmsEu3u4jcrGGSL5qN3rwQYL7AJ7gpNrQKne6JVPWwp092CtZLPmR+GfpisaekXFP3HU0orrU1QIhIhC+BVYpiJETfzblAaUJ1wwPE9Wy7oHN2VSLdVGehUG3Ml4UspKprHN71y4EIONYOy++uKZMAeAadtO+7P2/kQyA2g/R9Ouwtbxt1J3UEJE04TD0suu2UHmHKml7YqpkfsjTreoDGKlkK6J0xD/pV6Ej1yBjwkM0VpOoOd0/t/xcz6LRf9HQli590r9l3wXwDNoQzQRwBNDAw0sJMCKJAw6LgftxmWv0Nzeed3bmprpyL85Hj8cFNkjAH3B/bki9PRIuzgQwlv6SZudV89t2iQM/XV0qNZZcoLxhCAiI2sxg2MmQUWK7+jzEyhWM27yKtP5kgfVGc7nGWipWDx5AgHJklT+yauyIOUNnPAZu4jiHvooMMUMf23szszl3H6T5lkix2V3lNp3n6PGOqImm1C72jv4bFuygeRznI1gyMKy8WvUYzIU0ATzMYJ5Qpd88BUXRVrRmEioceCUNgiZE1+wC5b4F3WYiIpu9JWlGRB0qp5f28KQCwJ+rCG/QV168m2j3wUDFDXgUrVwKhNZrdIS50cl2PaULpmFufnGlI6uLiPQaVedRVcLU9/VGaq4wT6/j3NZo97tsr/yY9uEVrr0gnYt4O88gevxPnpywXCIWor+BbkPE+eXAaqD7i7sEo6ouu6Y5x+uoF8Oo+dq3ZboAWBlHZ1gaoPLuaq0xCSN+xjZiB4FAH9LYlqpVk8FmUNLPgzvoxjob35eqcTLCq5dnB0BoU2tYh9etArcbdsmqKpZl49kl2w7R3M1HVGxJCE5fdvHTj5KtTcVWXYIVMb7RQlw= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(346002)(376002)(136003)(396003)(451199018)(46966006)(36840700001)(40470700004)(2906002)(921005)(356005)(36860700001)(81166007)(336012)(82740400003)(186003)(26005)(1076003)(66899018)(2616005)(316002)(6666004)(30864003)(40460700003)(82310400005)(70586007)(478600001)(70206006)(7276002)(8936002)(5660300002)(7336002)(7366002)(7406005)(7416002)(40480700001)(41300700001)(47076005)(426003)(66574015)(1191002)(110136005)(54906003)(86362001)(36756003)(4326008)(8676002)(83380400001)(83996005)(84006005)(2101003)(41080700001)(36900700001)(579004)(559001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2023 17:22:28.3706 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ae413132-1a2c-4943-c727-08db1e675c7d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT111.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8210 X-Mailman-Approved-At: Sun, 19 Mar 2023 09:02:29 -0700 X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org U3VwcG9ydGluZyBtdWx0aS1jcyBpbiBzcGkgZHJpdmVycyB3b3VsZCByZXF1aXJlIHRoZSBjaGlw X3NlbGVjdCAmIGNzX2dwaW9kCm1lbWJlcnMgb2Ygc3RydWN0IHNwaV9kZXZpY2UgdG8gYmUgYW4g YXJyYXkuIEJ1dCBjaGFuZ2luZyB0aGUgdHlwZSBvZiB0aGVzZQptZW1iZXJzIHRvIGFycmF5IHdv dWxkIGJyZWFrIHRoZSBzcGkgZHJpdmVyIGZ1bmN0aW9uYWxpdHkuIFRvIG1ha2UgdGhlCnRyYW5z aXRpb24gc21vb3RoZXIgaW50cm9kdWNlZCBmb3VyIG5ldyBBUElzIHRvIGdldC9zZXQgdGhlCnNw aS0+Y2hpcF9zZWxlY3QgJiBzcGktPmNzX2dwaW9kIGFuZCByZXBsYWNlZCBhbGwgc3BpLT5jaGlw X3NlbGVjdCBhbmQKc3BpLT5jc19ncGlvZCByZWZlcmVuY2VzIHdpdGggZ2V0IG9yIHNldCBBUEkg Y2FsbHMuCldoaWxlIGFkZGluZyBtdWx0aS1jcyBzdXBwb3J0IGluIGZ1cnRoZXIgcGF0Y2hlcyB0 aGUgY2hpcF9zZWxlY3QgJiBjc19ncGlvZAptZW1iZXJzIG9mIHRoZSBzcGlfZGV2aWNlIHN0cnVj dHVyZSB3b3VsZCBiZSBjb252ZXJ0ZWQgdG8gYXJyYXlzICYgdGhlCiJpZHgiIHBhcmFtZXRlciBv ZiB0aGUgQVBJcyB3b3VsZCBiZSB1c2VkIGFzIGFycmF5IGluZGV4IGkuZS4sCnNwaS0+Y2hpcF9z ZWxlY3RbaWR4XSAmIHNwaS0+Y3NfZ3Bpb2RbaWR4XSByZXNwZWN0aXZlbHkuCgpTaWduZWQtb2Zm LWJ5OiBBbWl0IEt1bWFyIE1haGFwYXRyYSA8YW1pdC5rdW1hci1tYWhhcGF0cmFAYW1kLmNvbT4K QWNrZWQtYnk6IEhlaWtvIFN0dWVibmVyIDxoZWlrb0BzbnRlY2guZGU+ICMgUm9ja2NoaXAgZHJp dmVycwpSZXZpZXdlZC1ieTogTWljaGFsIFNpbWVrIDxtaWNoYWwuc2ltZWtAYW1kLmNvbT4KUmV2 aWV3ZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAa2FvZC5vcmc+ICMgQXNwZWVkIGRyaXZl cgpSZXZpZXdlZC1ieTogRGhydXZhIEdvbGUgPGQtZ29sZUB0aS5jb20+ICMgU1BJIENhZGVuY2Ug UVNQSQpSZXZpZXdlZC1ieTogUGF0cmljZSBDaG90YXJkIDxwYXRyaWNlLmNob3RhcmRAZm9zcy5z dC5jb20+ICMgc3BpLXN0bTMyLXFzcGkKQWNrZWQtYnk6IFdpbGxpYW0gWmhhbmcgPHdpbGxpYW0u emhhbmdAYnJvYWRjb20uY29tPiAjIGJjbTYzeHgtaHNzcGkgZHJpdmVyClJldmlld2VkLWJ5OiBT ZXJnZSBTZW1pbiA8ZmFuY2VyLmxhbmNlckBnbWFpbC5jb20+ICMgRFcgU1NJIHBhcnQKLS0tCiBk cml2ZXJzL3NwaS9zcGktYWx0ZXJhLWNvcmUuYyAgICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3Bp LWFtZC5jICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9zcGkvc3BpLWFyOTM0eC5jICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1hcm1hZGEtMzcwMC5jICAgICB8ICA0ICsr LS0KIGRyaXZlcnMvc3BpL3NwaS1hc3BlZWQtc21jLmMgICAgICB8IDEzICsrKysrKystLS0tLS0K IGRyaXZlcnMvc3BpL3NwaS1hdDkxLXVzYXJ0LmMgICAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9z cGktYXRoNzkuYyAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3NwaS9zcGktYXRtZWwuYyAg ICAgICAgICAgfCAyNiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9zcGkvc3Bp LWF1MTU1MC5jICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9zcGkvc3BpLWF4aS1zcGktZW5n aW5lLmMgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1iY20tcXNwaS5jICAgICAgICB8IDEwICsr KysrLS0tLS0KIGRyaXZlcnMvc3BpL3NwaS1iY20yODM1LmMgICAgICAgICB8IDE5ICsrKysrKysr KystLS0tLS0tLS0KIGRyaXZlcnMvc3BpL3NwaS1iY20yODM1YXV4LmMgICAgICB8ICA0ICsrLS0K IGRyaXZlcnMvc3BpL3NwaS1iY202M3h4LWhzc3BpLmMgICB8IDMwICsrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLQogZHJpdmVycy9zcGkvc3BpLWJjbTYzeHguYyAgICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvc3BpL3NwaS1iY21iY2EtaHNzcGkuYyAgICB8IDMwICsrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLQogZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UtcXVhZHNwaS5jIHwgIDUgKysr LS0KIGRyaXZlcnMvc3BpL3NwaS1jYWRlbmNlLXhzcGkuYyAgICB8ICA0ICsrLS0KIGRyaXZlcnMv c3BpL3NwaS1jYWRlbmNlLmMgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3NwaS1jYXZp dW0uYyAgICAgICAgICB8ICA4ICsrKystLS0tCiBkcml2ZXJzL3NwaS9zcGktY29sZGZpcmUtcXNw aS5jICAgfCAgOCArKysrLS0tLQogZHJpdmVycy9zcGkvc3BpLWRhdmluY2kuYyAgICAgICAgIHwg MTggKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL3NwaS9zcGktZGxuMi5jICAgICAgICAgICAg fCAgNiArKystLS0KIGRyaXZlcnMvc3BpL3NwaS1kdy1jb3JlLmMgICAgICAgICB8ICAyICstCiBk cml2ZXJzL3NwaS9zcGktZHctbW1pby5jICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3NwaS9z cGktZmFsY29uLmMgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3BpLWZzaS5jICAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1mc2wtZHNwaS5jICAgICAgICB8IDE2ICsr KysrKysrLS0tLS0tLS0KIGRyaXZlcnMvc3BpL3NwaS1mc2wtZXNwaS5jICAgICAgICB8ICA2ICsr Ky0tLQogZHJpdmVycy9zcGkvc3BpLWZzbC1scHNwaS5jICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv c3BpL3NwaS1mc2wtcXNwaS5jICAgICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9zcGkvc3BpLWZz bC1zcGkuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1nZW5pLXFjb20uYyAgICAg ICB8ICA2ICsrKy0tLQogZHJpdmVycy9zcGkvc3BpLWdwaW8uYyAgICAgICAgICAgIHwgIDQgKyst LQogZHJpdmVycy9zcGkvc3BpLWd4cC5jICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9z cGkvc3BpLWhpc2ktc2ZjLXYzeHguYyAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1pbWctc3Bm aS5jICAgICAgICB8IDE0ICsrKysrKystLS0tLS0tCiBkcml2ZXJzL3NwaS9zcGktaW14LmMgICAg ICAgICAgICAgfCAzMCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvc3Bp L3NwaS1pbmdlbmljLmMgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3NwaS1pbnRlbC5j ICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGktamNvcmUuYyAgICAgICAgICAgfCAg NCArKy0tCiBkcml2ZXJzL3NwaS9zcGktbGFudGlxLXNzYy5jICAgICAgfCAgNiArKystLS0KIGRy aXZlcnMvc3BpL3NwaS1tZW0uYyAgICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3Nw aS1tZXNvbi1zcGljYy5jICAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGktbWljcm9jaGlwLWNv cmUuYyAgfCAgNiArKystLS0KIGRyaXZlcnMvc3BpL3NwaS1tcGM1MTJ4LXBzYy5jICAgICB8ICA4 ICsrKystLS0tCiBkcml2ZXJzL3NwaS9zcGktbXBjNTJ4eC5jICAgICAgICAgfCAgMiArLQogZHJp dmVycy9zcGkvc3BpLW10NjV4eC5jICAgICAgICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL3NwaS9z cGktbXQ3NjIxLmMgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3BpLW11eC5jICAgICAg ICAgICAgIHwgIDggKysrKy0tLS0KIGRyaXZlcnMvc3BpL3NwaS1teGljLmMgICAgICAgICAgICB8 IDEwICsrKysrLS0tLS0KIGRyaXZlcnMvc3BpL3NwaS1teHMuYyAgICAgICAgICAgICB8ICAyICst CiBkcml2ZXJzL3NwaS9zcGktbnBjbS1maXUuYyAgICAgICAgfCAyMCArKysrKysrKysrLS0tLS0t LS0tLQogZHJpdmVycy9zcGkvc3BpLW54cC1mc3BpLmMgICAgICAgIHwgMTAgKysrKystLS0tLQog ZHJpdmVycy9zcGkvc3BpLW9tYXAtMTAway5jICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3Nw aS1vbWFwLXV3aXJlLmMgICAgICB8ICA4ICsrKystLS0tCiBkcml2ZXJzL3NwaS9zcGktb21hcDIt bWNzcGkuYyAgICAgfCAyNCArKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvc3BpL3Nw aS1vcmlvbi5jICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3NwaS1wY2kxeHh4eC5j ICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3NwaS1waWMzMi1zcWkuYyAgICAgICB8ICAy ICstCiBkcml2ZXJzL3NwaS9zcGktcGljMzIuYyAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJz L3NwaS9zcGktcGwwMjIuYyAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3NwaS9zcGktcHhh Mnh4LmMgICAgICAgICAgfCAgNiArKystLS0KIGRyaXZlcnMvc3BpL3NwaS1xY29tLXFzcGkuYyAg ICAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGktcmI0eHguYyAgICAgICAgICAgfCAgMiArLQog ZHJpdmVycy9zcGkvc3BpLXJvY2tjaGlwLXNmYy5jICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3Nw aS1yb2NrY2hpcC5jICAgICAgICB8IDI2ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBkcml2 ZXJzL3NwaS9zcGktcnNwaS5jICAgICAgICAgICAgfCAxMCArKysrKy0tLS0tCiBkcml2ZXJzL3Nw aS9zcGktczNjNjR4eC5jICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3BpLXNjMThpczYw Mi5jICAgICAgIHwgIDQgKystLQogZHJpdmVycy9zcGkvc3BpLXNoLW1zaW9mLmMgICAgICAgIHwg IDYgKysrLS0tCiBkcml2ZXJzL3NwaS9zcGktc2gtc2NpLmMgICAgICAgICAgfCAgMiArLQogZHJp dmVycy9zcGkvc3BpLXNpZml2ZS5jICAgICAgICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL3NwaS9z cGktc24tZi1vc3BpLmMgICAgICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3BpLXN0LXNzYzQuYyAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1zdG0zMi1xc3BpLmMgICAgICB8IDEyICsr KysrKy0tLS0tLQogZHJpdmVycy9zcGkvc3BpLXN1bjRpLmMgICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvc3BpL3NwaS1zdW42aS5jICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGkt c3lucXVhY2VyLmMgICAgICAgfCAgNiArKystLS0KIGRyaXZlcnMvc3BpL3NwaS10ZWdyYTExNC5j ICAgICAgICB8IDI4ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvc3BpL3Nw aS10ZWdyYTIwLXNmbGFzaC5jICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGktdGVncmEyMC1zbGlu ay5jICAgfCAgNiArKystLS0KIGRyaXZlcnMvc3BpL3NwaS10ZWdyYTIxMC1xdWFkLmMgICB8ICA4 ICsrKystLS0tCiBkcml2ZXJzL3NwaS9zcGktdGktcXNwaS5jICAgICAgICAgfCAxNiArKysrKysr Ky0tLS0tLS0tCiBkcml2ZXJzL3NwaS9zcGktdG9wY2xpZmYtcGNoLmMgICAgfCAgNCArKy0tCiBk cml2ZXJzL3NwaS9zcGktd3BjbS1maXUuYyAgICAgICAgfCAxMiArKysrKystLS0tLS0KIGRyaXZl cnMvc3BpL3NwaS14Y29tbS5jICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGkteGls aW54LmMgICAgICAgICAgfCAgNiArKystLS0KIGRyaXZlcnMvc3BpL3NwaS14bHAuYyAgICAgICAg ICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3NwaS16eW5xLXFzcGkuYyAgICAgICB8ICAyICst CiBkcml2ZXJzL3NwaS9zcGktenlucW1wLWdxc3BpLmMgICAgfCAgMiArLQogZHJpdmVycy9zcGkv c3BpZGV2LmMgICAgICAgICAgICAgIHwgIDYgKysrLS0tCiBpbmNsdWRlL3RyYWNlL2V2ZW50cy9z cGkuaCAgICAgICAgfCAxMCArKysrKy0tLS0tCiA5MyBmaWxlcyBjaGFuZ2VkLCAzMzQgaW5zZXJ0 aW9ucygrKSwgMzI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1h bHRlcmEtY29yZS5jIGIvZHJpdmVycy9zcGkvc3BpLWFsdGVyYS1jb3JlLmMKaW5kZXggOTRmZTZi ZjFiOWE2Li44N2UzN2Y0OGYxOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1hbHRlcmEt Y29yZS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1hbHRlcmEtY29yZS5jCkBAIC04MCw3ICs4MCw3 IEBAIHN0YXRpYyB2b2lkIGFsdGVyYV9zcGlfc2V0X2NzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGks IGJvb2wgaXNfaGlnaCkKIAkJYWx0cl9zcGlfd3JpdGVsKGh3LCBBTFRFUkFfU1BJX1RBUkdFVF9T RUwsIDApOwogCX0gZWxzZSB7CiAJCWFsdHJfc3BpX3dyaXRlbChodywgQUxURVJBX1NQSV9UQVJH RVRfU0VMLAotCQkJCUJJVChzcGktPmNoaXBfc2VsZWN0KSk7CisJCQkJQklUKHNwaV9nZXRfY2hp cHNlbGVjdChzcGksIDApKSk7CiAJCWh3LT5pbXIgfD0gQUxURVJBX1NQSV9DT05UUk9MX1NTT19N U0s7CiAJCWFsdHJfc3BpX3dyaXRlbChodywgQUxURVJBX1NQSV9DT05UUk9MLCBody0+aW1yKTsK IAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktYW1kLmMgYi9kcml2ZXJzL3NwaS9zcGkt YW1kLmMKaW5kZXggYmZjM2FiNWYzOWVhLi5mZWNlYWQ3NTdhM2MgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3BpL3NwaS1hbWQuYworKysgYi9kcml2ZXJzL3NwaS9zcGktYW1kLmMKQEAgLTM0Nyw3ICsz NDcsNyBAQCBzdGF0aWMgaW5saW5lIGludCBhbWRfc3BpX2ZpZm9feGZlcihzdHJ1Y3QgYW1kX3Nw aSAqYW1kX3NwaSwKIAljYXNlIEFNRF9TUElfVjE6CiAJCWJyZWFrOwogCWNhc2UgQU1EX1NQSV9W MjoKLQkJYW1kX3NwaV9jbGVhcl9jaGlwKGFtZF9zcGksIG1lc3NhZ2UtPnNwaS0+Y2hpcF9zZWxl Y3QpOworCQlhbWRfc3BpX2NsZWFyX2NoaXAoYW1kX3NwaSwgc3BpX2dldF9jaGlwc2VsZWN0KG1l c3NhZ2UtPnNwaSwgMCkpOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVOT0RFVjsK QEAgLTM2NCw3ICszNjQsNyBAQCBzdGF0aWMgaW50IGFtZF9zcGlfbWFzdGVyX3RyYW5zZmVyKHN0 cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAJc3RydWN0IGFtZF9zcGkgKmFtZF9zcGkgPSBzcGlf bWFzdGVyX2dldF9kZXZkYXRhKG1hc3Rlcik7CiAJc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IG1z Zy0+c3BpOwogCi0JYW1kX3NwaV9zZWxlY3RfY2hpcChhbWRfc3BpLCBzcGktPmNoaXBfc2VsZWN0 KTsKKwlhbWRfc3BpX3NlbGVjdF9jaGlwKGFtZF9zcGksIHNwaV9nZXRfY2hpcHNlbGVjdChzcGks IDApKTsKIAogCS8qCiAJICogRXh0cmFjdCBzcGlfdHJhbnNmZXJzIGZyb20gdGhlIHNwaSBtZXNz YWdlIGFuZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWFyOTM0eC5jIGIvZHJpdmVycy9z cGkvc3BpLWFyOTM0eC5jCmluZGV4IDRhNmVjYWEwYTljOS4uNDFlZjZjZjVjNTg1IDEwMDY0NAot LS0gYS9kcml2ZXJzL3NwaS9zcGktYXI5MzR4LmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWFyOTM0 eC5jCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIGludCBhcjkzNHhfc3BpX3RyYW5zZmVyX29u ZV9tZXNzYWdlKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RsciwKIAkJCQlpb3dyaXRlMzIocmVn LCBzcC0+YmFzZSArIEFSOTM0WF9TUElfREFUQU9VVCk7CiAJCQl9CiAKLQkJCXJlZyA9IEFSOTM0 WF9TUElfU0hJRlRfVkFMKHNwaS0+Y2hpcF9zZWxlY3QsIHRlcm0sCisJCQlyZWcgPSBBUjkzNFhf U1BJX1NISUZUX1ZBTChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSwgdGVybSwKIAkJCQkJCSAg IHRyeF9jdXIgKiA4KTsKIAkJCWlvd3JpdGUzMihyZWcsIHNwLT5iYXNlICsgQVI5MzRYX1NQSV9S RUdfU0hJRlRfQ1RSTCk7CiAJCQlzdGF0ID0gcmVhZGxfcG9sbF90aW1lb3V0KApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zcGkvc3BpLWFybWFkYS0zNzAwLmMgYi9kcml2ZXJzL3NwaS9zcGktYXJtYWRh LTM3MDAuYwppbmRleCA0ZDU1NGI5NDhkNzEuLjg1ODQwNDVmYzE3YiAxMDA2NDQKLS0tIGEvZHJp dmVycy9zcGkvc3BpLWFybWFkYS0zNzAwLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWFybWFkYS0z NzAwLmMKQEAgLTQzNyw5ICs0MzcsOSBAQCBzdGF0aWMgdm9pZCBhMzcwMF9zcGlfc2V0X2NzKHN0 cnVjdCBzcGlfZGV2aWNlICpzcGksIGJvb2wgZW5hYmxlKQogCXN0cnVjdCBhMzcwMF9zcGkgKmEz NzAwX3NwaSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKHNwaS0+Y29udHJvbGxlcik7CiAK IAlpZiAoIWVuYWJsZSkKLQkJYTM3MDBfc3BpX2FjdGl2YXRlX2NzKGEzNzAwX3NwaSwgc3BpLT5j aGlwX3NlbGVjdCk7CisJCWEzNzAwX3NwaV9hY3RpdmF0ZV9jcyhhMzcwMF9zcGksIHNwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApKTsKIAllbHNlCi0JCWEzNzAwX3NwaV9kZWFjdGl2YXRlX2NzKGEz NzAwX3NwaSwgc3BpLT5jaGlwX3NlbGVjdCk7CisJCWEzNzAwX3NwaV9kZWFjdGl2YXRlX2NzKGEz NzAwX3NwaSwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogfQogCiBzdGF0aWMgdm9pZCBh MzcwMF9zcGlfaGVhZGVyX3NldChzdHJ1Y3QgYTM3MDBfc3BpICphMzcwMF9zcGkpCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3NwaS9zcGktYXNwZWVkLXNtYy5jIGIvZHJpdmVycy9zcGkvc3BpLWFzcGVl ZC1zbWMuYwppbmRleCA4NzNmZjJjZjcyYzkuLmI3YTllYzU1MGJhMSAxMDA2NDQKLS0tIGEvZHJp dmVycy9zcGkvc3BpLWFzcGVlZC1zbWMuYworKysgYi9kcml2ZXJzL3NwaS9zcGktYXNwZWVkLXNt Yy5jCkBAIC0yOTYsNyArMjk2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhc3BlZWRfc3BpX2Rh dGEgYXN0MjQwMF9zcGlfZGF0YTsKIHN0YXRpYyBpbnQgZG9fYXNwZWVkX3NwaV9leGVjX29wKHN0 cnVjdCBzcGlfbWVtICptZW0sIGNvbnN0IHN0cnVjdCBzcGlfbWVtX29wICpvcCkKIHsKIAlzdHJ1 Y3QgYXNwZWVkX3NwaSAqYXNwaSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKG1lbS0+c3Bp LT5tYXN0ZXIpOwotCXN0cnVjdCBhc3BlZWRfc3BpX2NoaXAgKmNoaXAgPSAmYXNwaS0+Y2hpcHNb bWVtLT5zcGktPmNoaXBfc2VsZWN0XTsKKwlzdHJ1Y3QgYXNwZWVkX3NwaV9jaGlwICpjaGlwID0g JmFzcGktPmNoaXBzW3NwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCldOwogCXUzMiBhZGRy X21vZGUsIGFkZHJfbW9kZV9iYWNrdXA7CiAJdTMyIGN0bF92YWw7CiAJaW50IHJldCA9IDA7CkBA IC0zNzcsNyArMzc3LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmFzcGVlZF9zcGlfZ2V0X25hbWUo c3RydWN0IHNwaV9tZW0gKm1lbSkKIAlzdHJ1Y3QgYXNwZWVkX3NwaSAqYXNwaSA9IHNwaV9jb250 cm9sbGVyX2dldF9kZXZkYXRhKG1lbS0+c3BpLT5tYXN0ZXIpOwogCXN0cnVjdCBkZXZpY2UgKmRl diA9IGFzcGktPmRldjsKIAotCXJldHVybiBkZXZtX2thc3ByaW50ZihkZXYsIEdGUF9LRVJORUws ICIlcy4lZCIsIGRldl9uYW1lKGRldiksIG1lbS0+c3BpLT5jaGlwX3NlbGVjdCk7CisJcmV0dXJu IGRldm1fa2FzcHJpbnRmKGRldiwgR0ZQX0tFUk5FTCwgIiVzLiVkIiwgZGV2X25hbWUoZGV2KSwK KwkJCSAgICAgIHNwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCkpOwogfQogCiBzdHJ1Y3Qg YXNwZWVkX3NwaV93aW5kb3cgewpAQCAtNTUzLDcgKzU1NCw3IEBAIHN0YXRpYyBpbnQgYXNwZWVk X3NwaV9kb19jYWxpYnJhdGlvbihzdHJ1Y3QgYXNwZWVkX3NwaV9jaGlwICpjaGlwKTsKIHN0YXRp YyBpbnQgYXNwZWVkX3NwaV9kaXJtYXBfY3JlYXRlKHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9kZXNj ICpkZXNjKQogewogCXN0cnVjdCBhc3BlZWRfc3BpICphc3BpID0gc3BpX2NvbnRyb2xsZXJfZ2V0 X2RldmRhdGEoZGVzYy0+bWVtLT5zcGktPm1hc3Rlcik7Ci0Jc3RydWN0IGFzcGVlZF9zcGlfY2hp cCAqY2hpcCA9ICZhc3BpLT5jaGlwc1tkZXNjLT5tZW0tPnNwaS0+Y2hpcF9zZWxlY3RdOworCXN0 cnVjdCBhc3BlZWRfc3BpX2NoaXAgKmNoaXAgPSAmYXNwaS0+Y2hpcHNbc3BpX2dldF9jaGlwc2Vs ZWN0KGRlc2MtPm1lbS0+c3BpLCAwKV07CiAJc3RydWN0IHNwaV9tZW1fb3AgKm9wID0gJmRlc2Mt PmluZm8ub3BfdG1wbDsKIAl1MzIgY3RsX3ZhbDsKIAlpbnQgcmV0ID0gMDsKQEAgLTYyMCw3ICs2 MjEsNyBAQCBzdGF0aWMgc3NpemVfdCBhc3BlZWRfc3BpX2Rpcm1hcF9yZWFkKHN0cnVjdCBzcGlf bWVtX2Rpcm1hcF9kZXNjICpkZXNjLAogCQkJCSAgICAgIHU2NCBvZmZzZXQsIHNpemVfdCBsZW4s IHZvaWQgKmJ1ZikKIHsKIAlzdHJ1Y3QgYXNwZWVkX3NwaSAqYXNwaSA9IHNwaV9jb250cm9sbGVy X2dldF9kZXZkYXRhKGRlc2MtPm1lbS0+c3BpLT5tYXN0ZXIpOwotCXN0cnVjdCBhc3BlZWRfc3Bp X2NoaXAgKmNoaXAgPSAmYXNwaS0+Y2hpcHNbZGVzYy0+bWVtLT5zcGktPmNoaXBfc2VsZWN0XTsK KwlzdHJ1Y3QgYXNwZWVkX3NwaV9jaGlwICpjaGlwID0gJmFzcGktPmNoaXBzW3NwaV9nZXRfY2hp cHNlbGVjdChkZXNjLT5tZW0tPnNwaSwgMCldOwogCiAJLyogU3dpdGNoIHRvIFVTRVIgY29tbWFu ZCBtb2RlIGlmIG1hcHBpbmcgd2luZG93IGlzIHRvbyBzbWFsbCAqLwogCWlmIChjaGlwLT5haGJf d2luZG93X3NpemUgPCBvZmZzZXQgKyBsZW4pIHsKQEAgLTY3MCw3ICs2NzEsNyBAQCBzdGF0aWMg aW50IGFzcGVlZF9zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIHsKIAlzdHJ1Y3Qg YXNwZWVkX3NwaSAqYXNwaSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVy KTsKIAljb25zdCBzdHJ1Y3QgYXNwZWVkX3NwaV9kYXRhICpkYXRhID0gYXNwaS0+ZGF0YTsKLQl1 bnNpZ25lZCBpbnQgY3MgPSBzcGktPmNoaXBfc2VsZWN0OworCXVuc2lnbmVkIGludCBjcyA9IHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCXN0cnVjdCBhc3BlZWRfc3BpX2NoaXAgKmNoaXAg PSAmYXNwaS0+Y2hpcHNbY3NdOwogCiAJY2hpcC0+YXNwaSA9IGFzcGk7CkBAIC02OTcsNyArNjk4 LDcgQEAgc3RhdGljIGludCBhc3BlZWRfc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkp CiBzdGF0aWMgdm9pZCBhc3BlZWRfc3BpX2NsZWFudXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkK IHsKIAlzdHJ1Y3QgYXNwZWVkX3NwaSAqYXNwaSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRh KHNwaS0+bWFzdGVyKTsKLQl1bnNpZ25lZCBpbnQgY3MgPSBzcGktPmNoaXBfc2VsZWN0OworCXVu c2lnbmVkIGludCBjcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCiAJYXNwZWVkX3Nw aV9jaGlwX2VuYWJsZShhc3BpLCBjcywgZmFsc2UpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Nw aS9zcGktYXQ5MS11c2FydC5jIGIvZHJpdmVycy9zcGkvc3BpLWF0OTEtdXNhcnQuYwppbmRleCBm YWI5ZDIyM2UyNGEuLmNhMDVjNDJhZTRhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWF0 OTEtdXNhcnQuYworKysgYi9kcml2ZXJzL3NwaS9zcGktYXQ5MS11c2FydC5jCkBAIC0zOTAsNyAr MzkwLDcgQEAgc3RhdGljIGludCBhdDkxX3VzYXJ0X3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpKQogCiAJZGV2X2RiZygmc3BpLT5kZXYsCiAJCSJzZXR1cDogYnB3ICV1IG1vZGUgMHgl eCAtPiBtciAlZCAlMDh4XG4iLAotCQlzcGktPmJpdHNfcGVyX3dvcmQsIHNwaS0+bW9kZSwgc3Bp LT5jaGlwX3NlbGVjdCwgbXIpOworCQlzcGktPmJpdHNfcGVyX3dvcmQsIHNwaS0+bW9kZSwgc3Bp X2dldF9jaGlwc2VsZWN0KHNwaSwgMCksIG1yKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zcGkvc3BpLWF0aDc5LmMgYi9kcml2ZXJzL3NwaS9zcGktYXRoNzkuYwppbmRl eCA3OTVlODhkYmVmMWIuLjZjMjAwMWNmYTNkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3Bp LWF0aDc5LmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWF0aDc5LmMKQEAgLTcxLDcgKzcxLDcgQEAg c3RhdGljIHZvaWQgYXRoNzlfc3BpX2NoaXBzZWxlY3Qoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwg aW50IGlzX2FjdGl2ZSkKIHsKIAlzdHJ1Y3QgYXRoNzlfc3BpICpzcCA9IGF0aDc5X3NwaWRldl90 b19zcChzcGkpOwogCWludCBjc19oaWdoID0gKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKSA/IGlz X2FjdGl2ZSA6ICFpc19hY3RpdmU7Ci0JdTMyIGNzX2JpdCA9IEFSNzFYWF9TUElfSU9DX0NTKHNw aS0+Y2hpcF9zZWxlY3QpOworCXUzMiBjc19iaXQgPSBBUjcxWFhfU1BJX0lPQ19DUyhzcGlfZ2V0 X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAlpZiAoY3NfaGlnaCkKIAkJc3AtPmlvY19iYXNlIHw9 IGNzX2JpdDsKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgaW50IGF0aDc5X2V4ZWNfbWVtX29w KHN0cnVjdCBzcGlfbWVtICptZW0sCiAJc3RydWN0IGF0aDc5X3NwaSAqc3AgPSBhdGg3OV9zcGlk ZXZfdG9fc3AobWVtLT5zcGkpOwogCiAJLyogRW5zdXJlcyB0aGF0IHJlYWRpbmcgaXMgcGVyZm9y bWVkIG9uIGRldmljZSBjb25uZWN0ZWQgdG8gaGFyZHdhcmUgY3MwICovCi0JaWYgKG1lbS0+c3Bp LT5jaGlwX3NlbGVjdCB8fCBtZW0tPnNwaS0+Y3NfZ3Bpb2QpCisJaWYgKHNwaV9nZXRfY2hpcHNl bGVjdChtZW0tPnNwaSwgMCkgfHwgc3BpX2dldF9jc2dwaW9kKG1lbS0+c3BpLCAwKSkKIAkJcmV0 dXJuIC1FTk9UU1VQUDsKIAogCS8qIE9ubHkgdXNlIGZvciBmYXN0LXJlYWQgb3AuICovCmRpZmYg LS1naXQgYS9kcml2ZXJzL3NwaS9zcGktYXRtZWwuYyBiL2RyaXZlcnMvc3BpL3NwaS1hdG1lbC5j CmluZGV4IDVjNTY3OGYwNjVmMy4uN2IxNzYwNGE3NzYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Nw aS9zcGktYXRtZWwuYworKysgYi9kcml2ZXJzL3NwaS9zcGktYXRtZWwuYwpAQCAtMzI3LDEwICsz MjcsMTAgQEAgc3RhdGljIHZvaWQgY3NfYWN0aXZhdGUoc3RydWN0IGF0bWVsX3NwaSAqYXMsIHN0 cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJaW50IGNoaXBfc2VsZWN0OwogCXUzMiBtcjsKIAotCWlm IChzcGktPmNzX2dwaW9kKQorCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKIAkJY2hpcF9z ZWxlY3QgPSBhcy0+bmF0aXZlX2NzX2Zvcl9ncGlvOwogCWVsc2UKLQkJY2hpcF9zZWxlY3QgPSBz cGktPmNoaXBfc2VsZWN0OworCQljaGlwX3NlbGVjdCA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGks IDApOwogCiAJaWYgKGF0bWVsX3NwaV9pc192MihhcykpIHsKIAkJc3BpX3dyaXRlbChhcywgQ1NS MCArIDQgKiBjaGlwX3NlbGVjdCwgYXNkLT5jc3IpOwpAQCAtMzc4LDEwICszNzgsMTAgQEAgc3Rh dGljIHZvaWQgY3NfZGVhY3RpdmF0ZShzdHJ1Y3QgYXRtZWxfc3BpICphcywgc3RydWN0IHNwaV9k ZXZpY2UgKnNwaSkKIAlpbnQgY2hpcF9zZWxlY3Q7CiAJdTMyIG1yOwogCi0JaWYgKHNwaS0+Y3Nf Z3Bpb2QpCisJaWYgKHNwaV9nZXRfY3NncGlvZChzcGksIDApKQogCQljaGlwX3NlbGVjdCA9IGFz LT5uYXRpdmVfY3NfZm9yX2dwaW87CiAJZWxzZQotCQljaGlwX3NlbGVjdCA9IHNwaS0+Y2hpcF9z ZWxlY3Q7CisJCWNoaXBfc2VsZWN0ID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAKIAkv KiBvbmx5IGRlYWN0aXZhdGUgKnRoaXMqIGRldmljZTsgc29tZXRpbWVzIHRyYW5zZmVycyB0bwog CSAqIGFub3RoZXIgZGV2aWNlIG1heSBiZSBhY3RpdmUgd2hlbiB0aGlzIHJvdXRpbmUgaXMgY2Fs bGVkLgpAQCAtMzk0LDcgKzM5NCw3IEBAIHN0YXRpYyB2b2lkIGNzX2RlYWN0aXZhdGUoc3RydWN0 IGF0bWVsX3NwaSAqYXMsIHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAKIAlkZXZfZGJnKCZzcGkt PmRldiwgIkRFYWN0aXZhdGUgTlBDUywgbXIgJTA4eFxuIiwgbXIpOwogCi0JaWYgKCFzcGktPmNz X2dwaW9kKQorCWlmICghc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCiAJCXNwaV93cml0ZWwoYXMs IENSLCBTUElfQklUKExBU1RYRkVSKSk7CiB9CiAKQEAgLTgwMCwxMCArODAwLDEwIEBAIHN0YXRp YyBpbnQgYXRtZWxfc3BpX3NldF94ZmVyX3NwZWVkKHN0cnVjdCBhdG1lbF9zcGkgKmFzLAogCXVu c2lnbmVkIGxvbmcJCWJ1c19oejsKIAlpbnQgY2hpcF9zZWxlY3Q7CiAKLQlpZiAoc3BpLT5jc19n cGlvZCkKKwlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCiAJCWNoaXBfc2VsZWN0ID0gYXMt Pm5hdGl2ZV9jc19mb3JfZ3BpbzsKIAllbHNlCi0JCWNoaXBfc2VsZWN0ID0gc3BpLT5jaGlwX3Nl bGVjdDsKKwkJY2hpcF9zZWxlY3QgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAogCS8q IHYxIGNoaXBzIHN0YXJ0IG91dCBhdCBoYWxmIHRoZSBwZXJpcGhlcmFsIGJ1cyBzcGVlZC4gKi8K IAlidXNfaHogPSBhcy0+c3BpX2NsazsKQEAgLTExODksNyArMTE4OSw3IEBAIHN0YXRpYyBpbnQg YXRtZWxfc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJYXMgPSBzcGlfY29udHJv bGxlcl9nZXRfZGV2ZGF0YShzcGktPmNvbnRyb2xsZXIpOwogCiAJLyogc2VlIG5vdGVzIGFib3Zl IHJlIGNoaXBzZWxlY3QgKi8KLQlpZiAoIXNwaS0+Y3NfZ3Bpb2QgJiYgKHNwaS0+bW9kZSAmIFNQ SV9DU19ISUdIKSkgeworCWlmICghc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkgJiYgKHNwaS0+bW9k ZSAmIFNQSV9DU19ISUdIKSkgewogCQlkZXZfd2Fybigmc3BpLT5kZXYsICJzZXR1cDogbm9uIEdQ SU8gQ1MgY2FuJ3QgYmUgYWN0aXZlLWhpZ2hcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBA IC0xMjAxLDE2ICsxMjAxLDE2IEBAIHN0YXRpYyBpbnQgYXRtZWxfc3BpX3NldHVwKHN0cnVjdCBz cGlfZGV2aWNlICpzcGkpCiAJICovCiAJaW5pdGlhbGl6ZV9uYXRpdmVfY3NfZm9yX2dwaW8oYXMp OwogCi0JaWYgKHNwaS0+Y3NfZ3Bpb2QgJiYgYXMtPm5hdGl2ZV9jc19mcmVlKSB7CisJaWYgKHNw aV9nZXRfY3NncGlvZChzcGksIDApICYmIGFzLT5uYXRpdmVfY3NfZnJlZSkgewogCQlkZXZfZXJy KCZzcGktPmRldiwKIAkJCSJObyBuYXRpdmUgQ1MgYXZhaWxhYmxlIHRvIHN1cHBvcnQgdGhpcyBH UElPIENTXG4iKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKLQlpZiAoc3BpLT5jc19ncGlvZCkK KwlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCiAJCWNoaXBfc2VsZWN0ID0gYXMtPm5hdGl2 ZV9jc19mb3JfZ3BpbzsKIAllbHNlCi0JCWNoaXBfc2VsZWN0ID0gc3BpLT5jaGlwX3NlbGVjdDsK KwkJY2hpcF9zZWxlY3QgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAogCWNzciA9IFNQ SV9CRihCSVRTLCBiaXRzIC0gOCk7CiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9DUE9MKQpAQCAtMTIx OCw3ICsxMjE4LDcgQEAgc3RhdGljIGludCBhdG1lbF9zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZp Y2UgKnNwaSkKIAlpZiAoIShzcGktPm1vZGUgJiBTUElfQ1BIQSkpCiAJCWNzciB8PSBTUElfQklU KE5DUEhBKTsKIAotCWlmICghc3BpLT5jc19ncGlvZCkKKwlpZiAoIXNwaV9nZXRfY3NncGlvZChz cGksIDApKQogCQljc3IgfD0gU1BJX0JJVChDU0FBVCk7CiAJY3NyIHw9IFNQSV9CRihETFlCUywg MCk7CiAKQEAgLTEyNDQsNyArMTI0NCw3IEBAIHN0YXRpYyBpbnQgYXRtZWxfc3BpX3NldHVwKHN0 cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAKIAlkZXZfZGJnKCZzcGktPmRldiwKIAkJInNldHVwOiBi cHcgJXUgbW9kZSAweCV4IC0+IGNzciVkICUwOHhcbiIsCi0JCWJpdHMsIHNwaS0+bW9kZSwgc3Bp LT5jaGlwX3NlbGVjdCwgY3NyKTsKKwkJYml0cywgc3BpLT5tb2RlLCBzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKSwgY3NyKTsKIAogCWlmICghYXRtZWxfc3BpX2lzX3YyKGFzKSkKIAkJc3BpX3dy aXRlbChhcywgQ1NSMCArIDQgKiBjaGlwX3NlbGVjdCwgY3NyKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3BpL3NwaS1hdTE1NTAuYyBiL2RyaXZlcnMvc3BpL3NwaS1hdTE1NTAuYwppbmRleCBlMDA4 NzYxMjk4ZGEuLmRhNzEzY2RmZTA4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWF1MTU1 MC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1hdTE1NTAuYwpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0 YXRpYyB2b2lkIGF1MTU1MF9zcGlfY2hpcHNlbChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQg dmFsdWUpCiAJc3dpdGNoICh2YWx1ZSkgewogCWNhc2UgQklUQkFOR19DU19JTkFDVElWRToKIAkJ aWYgKGh3LT5wZGF0YS0+ZGVhY3RpdmF0ZV9jcykKLQkJCWh3LT5wZGF0YS0+ZGVhY3RpdmF0ZV9j cyhody0+cGRhdGEsIHNwaS0+Y2hpcF9zZWxlY3QsCisJCQlody0+cGRhdGEtPmRlYWN0aXZhdGVf Y3MoaHctPnBkYXRhLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSwKIAkJCQkJY3Nwb2wpOwog CQlicmVhazsKIApAQCAtMjExLDcgKzIxMSw3IEBAIHN0YXRpYyB2b2lkIGF1MTU1MF9zcGlfY2hp cHNlbChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQgdmFsdWUpCiAJCX0gd2hpbGUgKChzdGF0 ICYgUFNDX1NQSVNUQVRfRFIpID09IDApOwogCiAJCWlmIChody0+cGRhdGEtPmFjdGl2YXRlX2Nz KQotCQkJaHctPnBkYXRhLT5hY3RpdmF0ZV9jcyhody0+cGRhdGEsIHNwaS0+Y2hpcF9zZWxlY3Qs CisJCQlody0+cGRhdGEtPmFjdGl2YXRlX2NzKGh3LT5wZGF0YSwgc3BpX2dldF9jaGlwc2VsZWN0 KHNwaSwgMCksCiAJCQkJCWNzcG9sKTsKIAkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zcGkvc3BpLWF4aS1zcGktZW5naW5lLmMgYi9kcml2ZXJzL3NwaS9zcGktYXhpLXNwaS1lbmdp bmUuYwppbmRleCA4MGMzZTM4ZjVjMWIuLjFmZjI4Nzg0Y2ZiYiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9zcGkvc3BpLWF4aS1zcGktZW5naW5lLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWF4aS1zcGkt ZW5naW5lLmMKQEAgLTE5Myw3ICsxOTMsNyBAQCBzdGF0aWMgdm9pZCBzcGlfZW5naW5lX2dlbl9j cyhzdHJ1Y3Qgc3BpX2VuZ2luZV9wcm9ncmFtICpwLCBib29sIGRyeSwKIAl1bnNpZ25lZCBpbnQg bWFzayA9IDB4ZmY7CiAKIAlpZiAoYXNzZXJ0KQotCQltYXNrIF49IEJJVChzcGktPmNoaXBfc2Vs ZWN0KTsKKwkJbWFzayBePSBCSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJc3Bp X2VuZ2luZV9wcm9ncmFtX2FkZF9jbWQocCwgZHJ5LCBTUElfRU5HSU5FX0NNRF9BU1NFUlQoMSwg bWFzaykpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWJjbS1xc3BpLmMgYi9kcml2 ZXJzL3NwaS9zcGktYmNtLXFzcGkuYwppbmRleCAwZWVlNTc0ZDNlMWYuLjdjMmYxZDFmYjNmNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWJjbS1xc3BpLmMKKysrIGIvZHJpdmVycy9zcGkv c3BpLWJjbS1xc3BpLmMKQEAgLTk4Niw3ICs5ODYsNyBAQCBzdGF0aWMgaW50IHdyaXRlX3RvX2h3 KHN0cnVjdCBiY21fcXNwaSAqcXNwaSwgc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkJaWYgKGhh c19ic3BpKHFzcGkpKQogCQkJbXNwaV9jZHJhbSAmPSB+MTsKIAkJZWxzZQotCQkJbXNwaV9jZHJh bSB8PSAofigxIDw8IHNwaS0+Y2hpcF9zZWxlY3QpICYKKwkJCW1zcGlfY2RyYW0gfD0gKH4oMSA8 PCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkgJgogCQkJCSAgICAgICBNU1BJX0NEUkFNX1BD Uyk7CiAKIAkJd3JpdGVfY2RyYW1fc2xvdChxc3BpLCBzbG90LCBtc3BpX2NkcmFtKTsKQEAgLTEw NDYsOCArMTA0Niw4IEBAIHN0YXRpYyBpbnQgYmNtX3FzcGlfYnNwaV9leGVjX21lbV9vcChzdHJ1 Y3Qgc3BpX2RldmljZSAqc3BpLAogCQkJcmV0dXJuIC1FSU87CiAKIAlmcm9tID0gb3AtPmFkZHIu dmFsOwotCWlmICghc3BpLT5jc19ncGlvZCkKLQkJYmNtX3FzcGlfY2hpcF9zZWxlY3QocXNwaSwg c3BpLT5jaGlwX3NlbGVjdCk7CisJaWYgKCFzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKKwkJYmNt X3FzcGlfY2hpcF9zZWxlY3QocXNwaSwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCWJj bV9xc3BpX3dyaXRlKHFzcGksIE1TUEksIE1TUElfV1JJVEVfTE9DSywgMCk7CiAKIAkvKgpAQCAt MTEyNiw4ICsxMTI2LDggQEAgc3RhdGljIGludCBiY21fcXNwaV90cmFuc2Zlcl9vbmUoc3RydWN0 IHNwaV9tYXN0ZXIgKm1hc3RlciwKIAlpbnQgc2xvdHM7CiAJdW5zaWduZWQgbG9uZyB0aW1lbyA9 IG1zZWNzX3RvX2ppZmZpZXMoMTAwKTsKIAotCWlmICghc3BpLT5jc19ncGlvZCkKLQkJYmNtX3Fz cGlfY2hpcF9zZWxlY3QocXNwaSwgc3BpLT5jaGlwX3NlbGVjdCk7CisJaWYgKCFzcGlfZ2V0X2Nz Z3Bpb2Qoc3BpLCAwKSkKKwkJYmNtX3FzcGlfY2hpcF9zZWxlY3QocXNwaSwgc3BpX2dldF9jaGlw c2VsZWN0KHNwaSwgMCkpOwogCXFzcGktPnRyYW5zX3Bvcy50cmFucyA9IHRyYW5zOwogCXFzcGkt PnRyYW5zX3Bvcy5ieXRlID0gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWJjbTI4 MzUuYyBiL2RyaXZlcnMvc3BpL3NwaS1iY20yODM1LmMKaW5kZXggNzQ3ZTAzMjI4YzQ4Li42Yjdh M2ZhOTNmZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1iY20yODM1LmMKKysrIGIvZHJp dmVycy9zcGkvc3BpLWJjbTI4MzUuYwpAQCAtMTI3NCw5ICsxMjc0LDkgQEAgc3RhdGljIGludCBi Y20yODM1X3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCSAqIFRoZSBTUEkgY29y ZSBoYXMgc3VjY2Vzc2Z1bGx5IHJlcXVlc3RlZCB0aGUgQ1MgR1BJTyBsaW5lIGZyb20gdGhlCiAJ ICogZGV2aWNlIHRyZWUsIHNvIHdlIGFyZSBkb25lLgogCSAqLwotCWlmIChzcGktPmNzX2dwaW9k KQorCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKIAkJcmV0dXJuIDA7Ci0JaWYgKHNwaS0+ Y2hpcF9zZWxlY3QgPiAxKSB7CisJaWYgKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApID4gMSkg ewogCQkvKiBlcnJvciBpbiB0aGUgY2FzZSBvZiBuYXRpdmUgQ1MgcmVxdWVzdGVkIHdpdGggQ1Mg PiAxCiAJCSAqIG9mZmljaWFsbHkgdGhlcmUgaXMgYSBDUzIsIGJ1dCBpdCBpcyBub3QgZG9jdW1l bnRlZAogCQkgKiB3aGljaCBHUElPIGlzIGNvbm5lY3RlZCB3aXRoIHRoYXQuLi4KQEAgLTEzMDEs MTggKzEzMDEsMTkgQEAgc3RhdGljIGludCBiY20yODM1X3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpKQogCWlmICghY2hpcCkKIAkJcmV0dXJuIDA7CiAKLQlzcGktPmNzX2dwaW9kID0g Z3Bpb2NoaXBfcmVxdWVzdF9vd25fZGVzYyhjaGlwLCA4IC0gc3BpLT5jaGlwX3NlbGVjdCwKLQkJ CQkJCSAgRFJWX05BTUUsCi0JCQkJCQkgIEdQSU9fTE9PS1VQX0ZMQUdTX0RFRkFVTFQsCi0JCQkJ CQkgIEdQSU9EX09VVF9MT1cpOwotCWlmIChJU19FUlIoc3BpLT5jc19ncGlvZCkpIHsKLQkJcmV0 ID0gUFRSX0VSUihzcGktPmNzX2dwaW9kKTsKKwlzcGlfc2V0X2NzZ3Bpb2Qoc3BpLCAwLCBncGlv Y2hpcF9yZXF1ZXN0X293bl9kZXNjKGNoaXAsCisJCQkJCQkJICA4IC0gKHNwaV9nZXRfY2hpcHNl bGVjdChzcGksIDApKSwKKwkJCQkJCQkgIERSVl9OQU1FLAorCQkJCQkJCSAgR1BJT19MT09LVVBf RkxBR1NfREVGQVVMVCwKKwkJCQkJCQkgIEdQSU9EX09VVF9MT1cpKTsKKwlpZiAoSVNfRVJSKHNw aV9nZXRfY3NncGlvZChzcGksIDApKSkgeworCQlyZXQgPSBQVFJfRVJSKHNwaV9nZXRfY3NncGlv ZChzcGksIDApKTsKIAkJZ290byBlcnJfY2xlYW51cDsKIAl9CiAKIAkvKiBhbmQgc2V0IHVwIHRo ZSAibW9kZSIgYW5kIGxldmVsICovCiAJZGV2X2luZm8oJnNwaS0+ZGV2LCAic2V0dGluZyB1cCBu YXRpdmUtQ1MlaSB0byB1c2UgR1BJT1xuIiwKLQkJIHNwaS0+Y2hpcF9zZWxlY3QpOworCQkgc3Bp X2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3BpL3NwaS1iY20yODM1YXV4LmMgYi9kcml2ZXJzL3NwaS9zcGktYmNtMjgzNWF1eC5j CmluZGV4IGUyODUyMTkyMjMzMC4uYTNkOGY2MTA4NDc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Nw aS9zcGktYmNtMjgzNWF1eC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1iY20yODM1YXV4LmMKQEAg LTQ0OCw3ICs0NDgsNyBAQCBzdGF0aWMgaW50IGJjbTI4MzVhdXhfc3BpX3NldHVwKHN0cnVjdCBz cGlfZGV2aWNlICpzcGkpCiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9OT19DUykKIAkJcmV0dXJuIDA7 CiAKLQlpZiAoc3BpLT5jc19ncGlvZCkKKwlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCiAJ CXJldHVybiAwOwogCiAJLyogZm9yIGR0LWJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OiBvbmx5IHN1 cHBvcnQgbmF0aXZlIG9uIENTMApAQCAtNDY1LDcgKzQ2NSw3IEBAIHN0YXRpYyBpbnQgYmNtMjgz NWF1eF9zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlkZXZfd2Fybigmc3BpLT5k ZXYsCiAJCSAiTmF0aXZlIENTIGlzIG5vdCBzdXBwb3J0ZWQgLSBwbGVhc2UgY29uZmlndXJlIGNz LWdwaW8gaW4gZGV2aWNlLXRyZWVcbiIpOwogCi0JaWYgKHNwaS0+Y2hpcF9zZWxlY3QgPT0gMCkK KwlpZiAoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkgPT0gMCkKIAkJcmV0dXJuIDA7CiAKIAlk ZXZfd2Fybigmc3BpLT5kZXYsICJOYXRpdmUgQ1MgaXMgbm90IHdvcmtpbmcgZm9yIGNzID4gMFxu Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktYmNtNjN4eC1oc3NwaS5jIGIvZHJpdmVy cy9zcGkvc3BpLWJjbTYzeHgtaHNzcGkuYwppbmRleCBjZDBhNjQ3OGY1ZTcuLmQxYWVhZTI5ZmFi OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWJjbTYzeHgtaHNzcGkuYworKysgYi9kcml2 ZXJzL3NwaS9zcGktYmNtNjN4eC1oc3NwaS5jCkBAIC0zNDksNyArMzQ5LDcgQEAgc3RhdGljIGlu dCBiY202M3h4X2hzc3BpX2RvX3ByZXBlbmRfdHhyeChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAog CQkJCQkgc3RydWN0IHNwaV90cmFuc2ZlciAqdCkKIHsKIAlzdHJ1Y3QgYmNtNjN4eF9oc3NwaSAq YnMgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKLQl1bnNpZ25lZCBpbnQg Y2hpcF9zZWxlY3QgPSBzcGktPmNoaXBfc2VsZWN0OworCXVuc2lnbmVkIGludCBjaGlwX3NlbGVj dCA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCXUxNiBvcGNvZGUgPSAwLCB2YWw7CiAJ Y29uc3QgdTggKnR4ID0gdC0+dHhfYnVmOwogCXU4ICpyeCA9IHQtPnJ4X2J1ZjsKQEAgLTQ0MSw3 ICs0NDEsNyBAQCBzdGF0aWMgdm9pZCBiY202M3h4X2hzc3BpX3NldF9jcyhzdHJ1Y3QgYmNtNjN4 eF9oc3NwaSAqYnMsIHVuc2lnbmVkIGludCBjcywKIHN0YXRpYyB2b2lkIGJjbTYzeHhfaHNzcGlf c2V0X2NsayhzdHJ1Y3QgYmNtNjN4eF9oc3NwaSAqYnMsCiAJCQkJICBzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpLCBpbnQgaHopCiB7Ci0JdW5zaWduZWQgaW50IHByb2ZpbGUgPSBzcGktPmNoaXBfc2Vs ZWN0OworCXVuc2lnbmVkIGludCBwcm9maWxlID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7 CiAJdTMyIHJlZzsKIAogCXJlZyA9IERJVl9ST1VORF9VUCgyMDQ4LCBESVZfUk9VTkRfVVAoYnMt PnNwZWVkX2h6LCBoeikpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHN0YXRpYyB2b2lkIGJjbTYzeHhf aHNzcGlfc2V0X2NsayhzdHJ1Y3QgYmNtNjN4eF9oc3NwaSAqYnMsCiBzdGF0aWMgaW50IGJjbTYz eHhfaHNzcGlfZG9fdHhyeChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3Qgc3BpX3RyYW5z ZmVyICp0KQogewogCXN0cnVjdCBiY202M3h4X2hzc3BpICpicyA9IHNwaV9tYXN0ZXJfZ2V0X2Rl dmRhdGEoc3BpLT5tYXN0ZXIpOwotCXVuc2lnbmVkIGludCBjaGlwX3NlbGVjdCA9IHNwaS0+Y2hp cF9zZWxlY3Q7CisJdW5zaWduZWQgaW50IGNoaXBfc2VsZWN0ID0gc3BpX2dldF9jaGlwc2VsZWN0 KHNwaSwgMCk7CiAJdTE2IG9wY29kZSA9IDAsIHZhbDsKIAlpbnQgcGVuZGluZyA9IHQtPmxlbjsK IAlpbnQgc3RlcF9zaXplID0gSFNTUElfQlVGRkVSX0xFTjsKQEAgLTQ3OCw3ICs0NzgsNyBAQCBz dGF0aWMgaW50IGJjbTYzeHhfaHNzcGlfZG9fdHhyeChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBz dHJ1Y3Qgc3BpX3RyYW5zZmVyICp0KQogCiAJYmNtNjN4eF9oc3NwaV9zZXRfY2xrKGJzLCBzcGks IHQtPnNwZWVkX2h6KTsKIAlpZiAoIXQtPmNzX29mZikKLQkJYmNtNjN4eF9oc3NwaV9zZXRfY3Mo YnMsIHNwaS0+Y2hpcF9zZWxlY3QsIHRydWUpOworCQliY202M3h4X2hzc3BpX3NldF9jcyhicywg c3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCksIHRydWUpOwogCiAJaWYgKHR4ICYmIHJ4KQogCQlv cGNvZGUgPSBIU1NQSV9PUF9SRUFEX1dSSVRFOwpAQCAtNTQ1LDE0ICs1NDUsMTQgQEAgc3RhdGlj IGludCBiY202M3h4X2hzc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJdTMyIHJl ZzsKIAogCXJlZyA9IF9fcmF3X3JlYWRsKGJzLT5yZWdzICsKLQkJCSAgSFNTUElfUFJPRklMRV9T SUdOQUxfQ1RSTF9SRUcoc3BpLT5jaGlwX3NlbGVjdCkpOworCQkJICBIU1NQSV9QUk9GSUxFX1NJ R05BTF9DVFJMX1JFRyhzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkpOwogCXJlZyAmPSB+KFNJ R05BTF9DVFJMX0xBVU5DSF9SSVNJTkcgfCBTSUdOQUxfQ1RSTF9MQVRDSF9SSVNJTkcpOwogCWlm IChzcGktPm1vZGUgJiBTUElfQ1BIQSkKIAkJcmVnIHw9IFNJR05BTF9DVFJMX0xBVU5DSF9SSVNJ Tkc7CiAJZWxzZQogCQlyZWcgfD0gU0lHTkFMX0NUUkxfTEFUQ0hfUklTSU5HOwogCV9fcmF3X3dy aXRlbChyZWcsIGJzLT5yZWdzICsKLQkJICAgICBIU1NQSV9QUk9GSUxFX1NJR05BTF9DVFJMX1JF RyhzcGktPmNoaXBfc2VsZWN0KSk7CisJCSAgICAgSFNTUElfUFJPRklMRV9TSUdOQUxfQ1RSTF9S RUcoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpKTsKIAogCW11dGV4X2xvY2soJmJzLT5idXNf bXV0ZXgpOwogCXJlZyA9IF9fcmF3X3JlYWRsKGJzLT5yZWdzICsgSFNTUElfR0xPQkFMX0NUUkxf UkVHKTsKQEAgLTU2MCwxNiArNTYwLDE2IEBAIHN0YXRpYyBpbnQgYmNtNjN4eF9oc3NwaV9zZXR1 cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCS8qIG9ubHkgY2hhbmdlIGFjdHVhbCBwb2xhcml0 aWVzIGlmIHRoZXJlIGlzIG5vIHRyYW5zZmVyICovCiAJaWYgKChyZWcgJiBHTE9CQUxfQ1RSTF9D U19QT0xBUklUWV9NQVNLKSA9PSBicy0+Y3NfcG9sYXJpdHkpIHsKIAkJaWYgKHNwaS0+bW9kZSAm IFNQSV9DU19ISUdIKQotCQkJcmVnIHw9IEJJVChzcGktPmNoaXBfc2VsZWN0KTsKKwkJCXJlZyB8 PSBCSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCQllbHNlCi0JCQlyZWcgJj0gfkJJ VChzcGktPmNoaXBfc2VsZWN0KTsKKwkJCXJlZyAmPSB+QklUKHNwaV9nZXRfY2hpcHNlbGVjdChz cGksIDApKTsKIAkJX19yYXdfd3JpdGVsKHJlZywgYnMtPnJlZ3MgKyBIU1NQSV9HTE9CQUxfQ1RS TF9SRUcpOwogCX0KIAogCWlmIChzcGktPm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJYnMtPmNzX3Bv bGFyaXR5IHw9IEJJVChzcGktPmNoaXBfc2VsZWN0KTsKKwkJYnMtPmNzX3BvbGFyaXR5IHw9IEJJ VChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJZWxzZQotCQlicy0+Y3NfcG9sYXJpdHkg Jj0gfkJJVChzcGktPmNoaXBfc2VsZWN0KTsKKwkJYnMtPmNzX3BvbGFyaXR5ICY9IH5CSVQoc3Bp X2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJbXV0ZXhfdW5sb2NrKCZicy0+YnVzX211dGV4 KTsKIApAQCAtNjAwLDcgKzYwMCw3IEBAIHN0YXRpYyBpbnQgYmNtNjN4eF9oc3NwaV9kb19kdW1t eV9jc190eHJ4KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJICogZS4gQXQgdGhlIGVuZCByZXN0 b3JlIHRoZSBwb2xhcml0aWVzIGFnYWluIHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVzLgogCSAqLwog Ci0JZHVtbXlfY3MgPSAhc3BpLT5jaGlwX3NlbGVjdDsKKwlkdW1teV9jcyA9ICFzcGlfZ2V0X2No aXBzZWxlY3Qoc3BpLCAwKTsKIAliY202M3h4X2hzc3BpX3NldF9jcyhicywgZHVtbXlfY3MsIHRy dWUpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0LCAmbXNnLT50cmFuc2ZlcnMsIHRyYW5zZmVy X2xpc3QpIHsKQEAgLTYzMywyMiArNjMzLDIyIEBAIHN0YXRpYyBpbnQgYmNtNjN4eF9oc3NwaV9k b19kdW1teV9jc190eHJ4KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJCQkJa2VlcF9jcyA9IHRy dWU7CiAJCQl9IGVsc2UgewogCQkJCWlmICghdC0+Y3Nfb2ZmKQotCQkJCQliY202M3h4X2hzc3Bp X3NldF9jcyhicywgc3BpLT5jaGlwX3NlbGVjdCwgZmFsc2UpOworCQkJCQliY202M3h4X2hzc3Bp X3NldF9jcyhicywgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCksIGZhbHNlKTsKIAogCQkJCXNw aV90cmFuc2Zlcl9jc19jaGFuZ2VfZGVsYXlfZXhlYyhtc2csIHQpOwogCiAJCQkJaWYgKCFsaXN0 X25leHRfZW50cnkodCwgdHJhbnNmZXJfbGlzdCktPmNzX29mZikKLQkJCQkJYmNtNjN4eF9oc3Nw aV9zZXRfY3MoYnMsIHNwaS0+Y2hpcF9zZWxlY3QsIHRydWUpOworCQkJCQliY202M3h4X2hzc3Bp X3NldF9jcyhicywgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCksIHRydWUpOwogCQkJfQogCQl9 IGVsc2UgaWYgKCFsaXN0X2lzX2xhc3QoJnQtPnRyYW5zZmVyX2xpc3QsICZtc2ctPnRyYW5zZmVy cykgJiYKIAkJCSAgIHQtPmNzX29mZiAhPSBsaXN0X25leHRfZW50cnkodCwgdHJhbnNmZXJfbGlz dCktPmNzX29mZikgewotCQkJYmNtNjN4eF9oc3NwaV9zZXRfY3MoYnMsIHNwaS0+Y2hpcF9zZWxl Y3QsIHQtPmNzX29mZik7CisJCQliY202M3h4X2hzc3BpX3NldF9jcyhicywgc3BpX2dldF9jaGlw c2VsZWN0KHNwaSwgMCksIHQtPmNzX29mZik7CiAJCX0KIAl9CiAKIAliY202M3h4X2hzc3BpX3Nl dF9jcyhicywgZHVtbXlfY3MsIGZhbHNlKTsKIAlpZiAoc3RhdHVzIHx8ICFrZWVwX2NzKQotCQli Y202M3h4X2hzc3BpX3NldF9jcyhicywgc3BpLT5jaGlwX3NlbGVjdCwgZmFsc2UpOworCQliY202 M3h4X2hzc3BpX3NldF9jcyhicywgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCksIGZhbHNlKTsK IAogCXJldHVybiBzdGF0dXM7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktYmNtNjN4 eC5jIGIvZHJpdmVycy9zcGkvc3BpLWJjbTYzeHguYwppbmRleCAzNjg2ZDc4YzQ0YTYuLjc4NzYy NWNlNzAwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWJjbTYzeHguYworKysgYi9kcml2 ZXJzL3NwaS9zcGktYmNtNjN4eC5jCkBAIC0yOTIsNyArMjkyLDcgQEAgc3RhdGljIGludCBiY202 M3h4X3R4cnhfYnVmcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3Qgc3BpX3RyYW5zZmVy ICpmaXJzdCwKIAkvKiBJc3N1ZSB0aGUgdHJhbnNmZXIgKi8KIAljbWQgPSBTUElfQ01EX1NUQVJU X0lNTUVESUFURTsKIAljbWQgfD0gKHByZXBlbmRfbGVuIDw8IFNQSV9DTURfUFJFUEVORF9CWVRF X0NOVF9TSElGVCk7Ci0JY21kIHw9IChzcGktPmNoaXBfc2VsZWN0IDw8IFNQSV9DTURfREVWSUNF X0lEX1NISUZUKTsKKwljbWQgfD0gKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApIDw8IFNQSV9D TURfREVWSUNFX0lEX1NISUZUKTsKIAliY21fc3BpX3dyaXRldyhicywgY21kLCBTUElfQ01EKTsK IAogCS8qIEVuYWJsZSB0aGUgQ01EX0RPTkUgaW50ZXJydXB0ICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3NwaS9zcGktYmNtYmNhLWhzc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGktYmNtYmNhLWhzc3Bp LmMKaW5kZXggM2Y5ZTYxMzFhZDg2Li4yMzA2YmY4Nzk3ODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv c3BpL3NwaS1iY21iY2EtaHNzcGkuYworKysgYi9kcml2ZXJzL3NwaS9zcGktYmNtYmNhLWhzc3Bp LmMKQEAgLTE5Myw3ICsxOTMsNyBAQCBzdGF0aWMgdm9pZCBiY21iY2FfaHNzcGlfc2V0X2NzKHN0 cnVjdCBiY21iY2FfaHNzcGkgKmJzLCB1bnNpZ25lZCBpbnQgY3MsCiBzdGF0aWMgdm9pZCBiY21i Y2FfaHNzcGlfc2V0X2NsayhzdHJ1Y3QgYmNtYmNhX2hzc3BpICpicywKIAkJCQkgIHN0cnVjdCBz cGlfZGV2aWNlICpzcGksIGludCBoeikKIHsKLQl1bnNpZ25lZCBpbnQgcHJvZmlsZSA9IHNwaS0+ Y2hpcF9zZWxlY3Q7CisJdW5zaWduZWQgaW50IHByb2ZpbGUgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qo c3BpLCAwKTsKIAl1MzIgcmVnOwogCiAJcmVnID0gRElWX1JPVU5EX1VQKDIwNDgsIERJVl9ST1VO RF9VUChicy0+c3BlZWRfaHosIGh6KSk7CkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGljIGludCBi Y21iY2FfaHNzcGlfZG9fdHhyeChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3Qgc3BpX3Ry YW5zZmVyICp0LAogCQkJCQkJCQlzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm1zZykKIHsKIAlzdHJ1Y3Qg YmNtYmNhX2hzc3BpICpicyA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwot CXVuc2lnbmVkIGludCBjaGlwX3NlbGVjdCA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJdW5zaWduZWQg aW50IGNoaXBfc2VsZWN0ID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJdTE2IG9wY29k ZSA9IDAsIHZhbDsKIAlpbnQgcGVuZGluZyA9IHQtPmxlbjsKIAlpbnQgc3RlcF9zaXplID0gSFNT UElfQlVGRkVSX0xFTjsKQEAgLTMxMiw3ICszMTIsNyBAQCBzdGF0aWMgaW50IGJjbWJjYV9oc3Nw aV9kb190eHJ4KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBzcGlfdHJhbnNmZXIgKnQs CiAJCQkgICAgUElOR1BPTkdfQ09NTUFORF9TVEFSVF9OT1c7CiAJCV9fcmF3X3dyaXRlbChyZWcs IGJzLT5yZWdzICsgSFNTUElfUElOR1BPTkdfQ09NTUFORF9SRUcoMCkpOwogCi0JCWlmIChiY21i Y2FfaHNzcGlfd2FpdF9jbWQoYnMsIHNwaS0+Y2hpcF9zZWxlY3QpKQorCQlpZiAoYmNtYmNhX2hz c3BpX3dhaXRfY21kKGJzLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkpCiAJCQlyZXR1cm4g LUVUSU1FRE9VVDsKIAogCQlwZW5kaW5nIC09IGN1cnJfc3RlcDsKQEAgLTMzMiwzMyArMzMyLDMz IEBAIHN0YXRpYyBpbnQgYmNtYmNhX2hzc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkp CiAJdTMyIHJlZzsKIAogCXJlZyA9IF9fcmF3X3JlYWRsKGJzLT5yZWdzICsKLQkJCSAgSFNTUElf UFJPRklMRV9TSUdOQUxfQ1RSTF9SRUcoc3BpLT5jaGlwX3NlbGVjdCkpOworCQkJICBIU1NQSV9Q Uk9GSUxFX1NJR05BTF9DVFJMX1JFRyhzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkpOwogCXJl ZyAmPSB+KFNJR05BTF9DVFJMX0xBVU5DSF9SSVNJTkcgfCBTSUdOQUxfQ1RSTF9MQVRDSF9SSVNJ TkcpOwogCWlmIChzcGktPm1vZGUgJiBTUElfQ1BIQSkKIAkJcmVnIHw9IFNJR05BTF9DVFJMX0xB VU5DSF9SSVNJTkc7CiAJZWxzZQogCQlyZWcgfD0gU0lHTkFMX0NUUkxfTEFUQ0hfUklTSU5HOwog CV9fcmF3X3dyaXRlbChyZWcsIGJzLT5yZWdzICsKLQkJICAgICBIU1NQSV9QUk9GSUxFX1NJR05B TF9DVFJMX1JFRyhzcGktPmNoaXBfc2VsZWN0KSk7CisJCSAgICAgSFNTUElfUFJPRklMRV9TSUdO QUxfQ1RSTF9SRUcoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpKTsKIAogCW11dGV4X2xvY2so JmJzLT5idXNfbXV0ZXgpOwogCXJlZyA9IF9fcmF3X3JlYWRsKGJzLT5yZWdzICsgSFNTUElfR0xP QkFMX0NUUkxfUkVHKTsKIAogCWlmIChzcGktPm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJcmVnIHw9 IEJJVChzcGktPmNoaXBfc2VsZWN0KTsKKwkJcmVnIHw9IEJJVChzcGlfZ2V0X2NoaXBzZWxlY3Qo c3BpLCAwKSk7CiAJZWxzZQotCQlyZWcgJj0gfkJJVChzcGktPmNoaXBfc2VsZWN0KTsKKwkJcmVn ICY9IH5CSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCV9fcmF3X3dyaXRlbChyZWcs IGJzLT5yZWdzICsgSFNTUElfR0xPQkFMX0NUUkxfUkVHKTsKIAogCWlmIChzcGktPm1vZGUgJiBT UElfQ1NfSElHSCkKLQkJYnMtPmNzX3BvbGFyaXR5IHw9IEJJVChzcGktPmNoaXBfc2VsZWN0KTsK KwkJYnMtPmNzX3BvbGFyaXR5IHw9IEJJVChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJ ZWxzZQotCQlicy0+Y3NfcG9sYXJpdHkgJj0gfkJJVChzcGktPmNoaXBfc2VsZWN0KTsKKwkJYnMt PmNzX3BvbGFyaXR5ICY9IH5CSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJcmVn ID0gX19yYXdfcmVhZGwoYnMtPnNwaW1fY3RybCk7Ci0JcmVnICY9IH5CSVQoc3BpLT5jaGlwX3Nl bGVjdCArIFNQSU1fQ1RSTF9DU19PVkVSUklERV9WQUxfU0hJRlQpOworCXJlZyAmPSB+QklUKHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApICsgU1BJTV9DVFJMX0NTX09WRVJSSURFX1ZBTF9TSElG VCk7CiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKQotCQlyZWcgfD0gQklUKHNwaS0+Y2hp cF9zZWxlY3QgKyBTUElNX0NUUkxfQ1NfT1ZFUlJJREVfVkFMX1NISUZUKTsKKwkJcmVnIHw9IEJJ VChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSArIFNQSU1fQ1RSTF9DU19PVkVSUklERV9WQUxf U0hJRlQpOwogCV9fcmF3X3dyaXRlbChyZWcsIGJzLT5zcGltX2N0cmwpOwogCiAJbXV0ZXhfdW5s b2NrKCZicy0+YnVzX211dGV4KTsKQEAgLTM4OCwxNiArMzg4LDE2IEBAIHN0YXRpYyBpbnQgYmNt YmNhX2hzc3BpX3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVyLAogCQkJCWtl ZXBfY3MgPSB0cnVlOwogCQkJfSBlbHNlIHsKIAkJCQlpZiAoIXQtPmNzX29mZikKLQkJCQkJYmNt YmNhX2hzc3BpX3NldF9jcyhicywgc3BpLT5jaGlwX3NlbGVjdCwgZmFsc2UpOworCQkJCQliY21i Y2FfaHNzcGlfc2V0X2NzKGJzLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSwgZmFsc2UpOwog CiAJCQkJc3BpX3RyYW5zZmVyX2NzX2NoYW5nZV9kZWxheV9leGVjKG1zZywgdCk7CiAKIAkJCQlp ZiAoIWxpc3RfbmV4dF9lbnRyeSh0LCB0cmFuc2Zlcl9saXN0KS0+Y3Nfb2ZmKQotCQkJCQliY21i Y2FfaHNzcGlfc2V0X2NzKGJzLCBzcGktPmNoaXBfc2VsZWN0LCB0cnVlKTsKKwkJCQkJYmNtYmNh X2hzc3BpX3NldF9jcyhicywgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCksIHRydWUpOwogCQkJ fQogCQl9IGVsc2UgaWYgKCFsaXN0X2lzX2xhc3QoJnQtPnRyYW5zZmVyX2xpc3QsICZtc2ctPnRy YW5zZmVycykgJiYKIAkJCSAgIHQtPmNzX29mZiAhPSBsaXN0X25leHRfZW50cnkodCwgdHJhbnNm ZXJfbGlzdCktPmNzX29mZikgewotCQkJYmNtYmNhX2hzc3BpX3NldF9jcyhicywgc3BpLT5jaGlw X3NlbGVjdCwgdC0+Y3Nfb2ZmKTsKKwkJCWJjbWJjYV9oc3NwaV9zZXRfY3MoYnMsIHNwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApLCB0LT5jc19vZmYpOwogCQl9CiAKIAkJbXNnLT5hY3R1YWxfbGVu Z3RoICs9IHQtPmxlbjsKQEAgLTQwNiw3ICs0MDYsNyBAQCBzdGF0aWMgaW50IGJjbWJjYV9oc3Nw aV90cmFuc2Zlcl9vbmUoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciwKIAltdXRleF91bmxvY2so JmJzLT5tc2dfbXV0ZXgpOwogCiAJaWYgKHN0YXR1cyB8fCAha2VlcF9jcykKLQkJYmNtYmNhX2hz c3BpX3NldF9jcyhicywgc3BpLT5jaGlwX3NlbGVjdCwgZmFsc2UpOworCQliY21iY2FfaHNzcGlf c2V0X2NzKGJzLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSwgZmFsc2UpOwogCiAJbXNnLT5z dGF0dXMgPSBzdGF0dXM7CiAJc3BpX2ZpbmFsaXplX2N1cnJlbnRfbWVzc2FnZShtYXN0ZXIpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UtcXVhZHNwaS5jIGIvZHJpdmVycy9z cGkvc3BpLWNhZGVuY2UtcXVhZHNwaS5jCmluZGV4IDY0YjZhNDYwZDczOS4uZmI2ZDg1ZmQyZTg2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktY2FkZW5jZS1xdWFkc3BpLmMKKysrIGIvZHJp dmVycy9zcGkvc3BpLWNhZGVuY2UtcXVhZHNwaS5jCkBAIC0xMzU1LDcgKzEzNTUsNyBAQCBzdGF0 aWMgaW50IGNxc3BpX21lbV9wcm9jZXNzKHN0cnVjdCBzcGlfbWVtICptZW0sIGNvbnN0IHN0cnVj dCBzcGlfbWVtX29wICpvcCkKIAlzdHJ1Y3QgY3FzcGlfc3QgKmNxc3BpID0gc3BpX21hc3Rlcl9n ZXRfZGV2ZGF0YShtZW0tPnNwaS0+bWFzdGVyKTsKIAlzdHJ1Y3QgY3FzcGlfZmxhc2hfcGRhdGEg KmZfcGRhdGE7CiAKLQlmX3BkYXRhID0gJmNxc3BpLT5mX3BkYXRhW21lbS0+c3BpLT5jaGlwX3Nl bGVjdF07CisJZl9wZGF0YSA9ICZjcXNwaS0+Zl9wZGF0YVtzcGlfZ2V0X2NoaXBzZWxlY3QobWVt LT5zcGksIDApXTsKIAljcXNwaV9jb25maWd1cmUoZl9wZGF0YSwgbWVtLT5zcGktPm1heF9zcGVl ZF9oeik7CiAKIAlpZiAob3AtPmRhdGEuZGlyID09IFNQSV9NRU1fREFUQV9JTiAmJiBvcC0+ZGF0 YS5idWYuaW4pIHsKQEAgLTE1NjEsNyArMTU2MSw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjcXNw aV9nZXRfbmFtZShzdHJ1Y3Qgc3BpX21lbSAqbWVtKQogCXN0cnVjdCBjcXNwaV9zdCAqY3FzcGkg PSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKG1lbS0+c3BpLT5tYXN0ZXIpOwogCXN0cnVjdCBkZXZp Y2UgKmRldiA9ICZjcXNwaS0+cGRldi0+ZGV2OwogCi0JcmV0dXJuIGRldm1fa2FzcHJpbnRmKGRl diwgR0ZQX0tFUk5FTCwgIiVzLiVkIiwgZGV2X25hbWUoZGV2KSwgbWVtLT5zcGktPmNoaXBfc2Vs ZWN0KTsKKwlyZXR1cm4gZGV2bV9rYXNwcmludGYoZGV2LCBHRlBfS0VSTkVMLCAiJXMuJWQiLCBk ZXZfbmFtZShkZXYpLAorCQkJICAgICAgc3BpX2dldF9jaGlwc2VsZWN0KG1lbS0+c3BpLCAwKSk7 CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXJfbWVtX29wcyBjcXNwaV9t ZW1fb3BzID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UteHNwaS5jIGIv ZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UteHNwaS5jCmluZGV4IDkxZGIzYzk3MzE2Ny4uY2U0YTMx NDVmMDY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktY2FkZW5jZS14c3BpLmMKKysrIGIv ZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UteHNwaS5jCkBAIC00MDksOCArNDA5LDggQEAgc3RhdGlj IGludCBjZG5zX3hzcGlfbWVtX29wKHN0cnVjdCBjZG5zX3hzcGlfZGV2ICpjZG5zX3hzcGksCiB7 CiAJZW51bSBzcGlfbWVtX2RhdGFfZGlyIGRpciA9IG9wLT5kYXRhLmRpcjsKIAotCWlmIChjZG5z X3hzcGktPmN1cl9jcyAhPSBtZW0tPnNwaS0+Y2hpcF9zZWxlY3QpCi0JCWNkbnNfeHNwaS0+Y3Vy X2NzID0gbWVtLT5zcGktPmNoaXBfc2VsZWN0OworCWlmIChjZG5zX3hzcGktPmN1cl9jcyAhPSBz cGlfZ2V0X2NoaXBzZWxlY3QobWVtLT5zcGksIDApKQorCQljZG5zX3hzcGktPmN1cl9jcyA9IHNw aV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCk7CiAKIAlyZXR1cm4gY2Ruc194c3BpX3NlbmRf c3RpZ19jb21tYW5kKGNkbnNfeHNwaSwgb3AsCiAJCQkJCSAgIChkaXIgIT0gU1BJX01FTV9OT19E QVRBKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktY2FkZW5jZS5jIGIvZHJpdmVycy9z cGkvc3BpLWNhZGVuY2UuYwppbmRleCA2YTdmN2RmMWU3NzYuLjRlYzc3OGRlNWJhZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UuYworKysgYi9kcml2ZXJzL3NwaS9zcGktY2Fk ZW5jZS5jCkBAIC0xODUsMTEgKzE4NSwxMSBAQCBzdGF0aWMgdm9pZCBjZG5zX3NwaV9jaGlwc2Vs ZWN0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGJvb2wgaXNfaGlnaCkKIAkJLyogU2VsZWN0IHRo ZSBzbGF2ZSAqLwogCQljdHJsX3JlZyAmPSB+Q0ROU19TUElfQ1JfU1NDVFJMOwogCQlpZiAoISh4 c3BpLT5pc19kZWNvZGVkX2NzKSkKLQkJCWN0cmxfcmVnIHw9ICgofihDRE5TX1NQSV9TUzAgPDwg c3BpLT5jaGlwX3NlbGVjdCkpIDw8CisJCQljdHJsX3JlZyB8PSAoKH4oQ0ROU19TUElfU1MwIDw8 IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSkgPDwKIAkJCQkgICAgIENETlNfU1BJX1NTX1NI SUZUKSAmCiAJCQkJICAgICBDRE5TX1NQSV9DUl9TU0NUUkw7CiAJCWVsc2UKLQkJCWN0cmxfcmVn IHw9IChzcGktPmNoaXBfc2VsZWN0IDw8IENETlNfU1BJX1NTX1NISUZUKSAmCisJCQljdHJsX3Jl ZyB8PSAoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkgPDwgQ0ROU19TUElfU1NfU0hJRlQpICYK IAkJCQkgICAgIENETlNfU1BJX0NSX1NTQ1RSTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv c3BpL3NwaS1jYXZpdW0uYyBiL2RyaXZlcnMvc3BpL3NwaS1jYXZpdW0uYwppbmRleCA2ODU0YzNj ZTQyM2IuLmRmZTIyNGRlZmQ2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWNhdml1bS5j CisrKyBiL2RyaXZlcnMvc3BpL3NwaS1jYXZpdW0uYwpAQCAtNTcsOCArNTcsOCBAQCBzdGF0aWMg aW50IG9jdGVvbl9zcGlfZG9fdHJhbnNmZXIoc3RydWN0IG9jdGVvbl9zcGkgKnAsCiAJbXBpX2Nm Zy5zLmNzbGF0ZSA9IGNwaGEgPyAxIDogMDsKIAltcGlfY2ZnLnMuZW5hYmxlID0gMTsKIAotCWlm IChzcGktPmNoaXBfc2VsZWN0IDwgNCkKLQkJcC0+Y3NfZW5heCB8PSAxdWxsIDw8ICgxMiArIHNw aS0+Y2hpcF9zZWxlY3QpOworCWlmIChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSA8IDQpCisJ CXAtPmNzX2VuYXggfD0gMXVsbCA8PCAoMTIgKyBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7 CiAJbXBpX2NmZy51NjQgfD0gcC0+Y3NfZW5heDsKIAogCWlmIChtcGlfY2ZnLnU2NCAhPSBwLT5s YXN0X2NmZykgewpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgaW50IG9jdGVvbl9zcGlfZG9fdHJh bnNmZXIoc3RydWN0IG9jdGVvbl9zcGkgKnAsCiAJCQl3cml0ZXEoZCwgcC0+cmVnaXN0ZXJfYmFz ZSArIE9DVEVPTl9TUElfREFUMChwKSArICg4ICogaSkpOwogCQl9CiAJCW1waV90eC51NjQgPSAw OwotCQltcGlfdHgucy5jc2lkID0gc3BpLT5jaGlwX3NlbGVjdDsKKwkJbXBpX3R4LnMuY3NpZCA9 IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCQltcGlfdHgucy5sZWF2ZWNzID0gMTsKIAkJ bXBpX3R4LnMudHhudW0gPSB0eF9idWYgPyBPQ1RFT05fU1BJX01BWF9CWVRFUyA6IDA7CiAJCW1w aV90eC5zLnRvdG51bSA9IE9DVEVPTl9TUElfTUFYX0JZVEVTOwpAQCAtMTAzLDcgKzEwMyw3IEBA IHN0YXRpYyBpbnQgb2N0ZW9uX3NwaV9kb190cmFuc2ZlcihzdHJ1Y3Qgb2N0ZW9uX3NwaSAqcCwK IAl9CiAKIAltcGlfdHgudTY0ID0gMDsKLQltcGlfdHgucy5jc2lkID0gc3BpLT5jaGlwX3NlbGVj dDsKKwltcGlfdHgucy5jc2lkID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJaWYgKGxh c3RfeGZlcikKIAkJbXBpX3R4LnMubGVhdmVjcyA9IHhmZXItPmNzX2NoYW5nZTsKIAllbHNlCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktY29sZGZpcmUtcXNwaS5jIGIvZHJpdmVycy9zcGkv c3BpLWNvbGRmaXJlLXFzcGkuYwppbmRleCAyNjNjZTkwNDczMjcuLjE4ZTRmZDg2YjJmMiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWNvbGRmaXJlLXFzcGkuYworKysgYi9kcml2ZXJzL3Nw aS9zcGktY29sZGZpcmUtcXNwaS5jCkBAIC0yOTAsOSArMjkwLDkgQEAgc3RhdGljIHZvaWQgbWNm cXNwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBlbmFibGUpCiAJYm9vbCBj c19oaWdoID0gc3BpLT5tb2RlICYgU1BJX0NTX0hJR0g7CiAKIAlpZiAoZW5hYmxlKQotCQltY2Zx c3BpX2NzX3NlbGVjdChtY2Zxc3BpLCBzcGktPmNoaXBfc2VsZWN0LCBjc19oaWdoKTsKKwkJbWNm cXNwaV9jc19zZWxlY3QobWNmcXNwaSwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCksIGNzX2hp Z2gpOwogCWVsc2UKLQkJbWNmcXNwaV9jc19kZXNlbGVjdChtY2Zxc3BpLCBzcGktPmNoaXBfc2Vs ZWN0LCBjc19oaWdoKTsKKwkJbWNmcXNwaV9jc19kZXNlbGVjdChtY2Zxc3BpLCBzcGlfZ2V0X2No aXBzZWxlY3Qoc3BpLCAwKSwgY3NfaGlnaCk7CiB9CiAKIHN0YXRpYyBpbnQgbWNmcXNwaV90cmFu c2Zlcl9vbmUoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciwKQEAgLTMyNCwxMSArMzI0LDExIEBA IHN0YXRpYyBpbnQgbWNmcXNwaV90cmFuc2Zlcl9vbmUoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3Rl ciwKIHN0YXRpYyBpbnQgbWNmcXNwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogewog CW1jZnFzcGlfY3NfZGVzZWxlY3Qoc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGktPm1hc3Rlciks Ci0JCQkgICAgc3BpLT5jaGlwX3NlbGVjdCwgc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpOworCQkJ ICAgIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApLCBzcGktPm1vZGUgJiBTUElfQ1NfSElHSCk7 CiAKIAlkZXZfZGJnKCZzcGktPmRldiwKIAkJCSJiaXRzIHBlciB3b3JkICVkLCBjaGlwIHNlbGVj dCAlZCwgc3BlZWQgJWQgS0h6XG4iLAotCQkJc3BpLT5iaXRzX3Blcl93b3JkLCBzcGktPmNoaXBf c2VsZWN0LAorCQkJc3BpLT5iaXRzX3Blcl93b3JkLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KSwKIAkJCShNQ0ZRU1BJX0JVU0NMSyAvIG1jZnFzcGlfcW1yX2JhdWQoc3BpLT5tYXhfc3BlZWRf aHopKQogCQkJLyAxMDAwKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWRhdmluY2ku YyBiL2RyaXZlcnMvc3BpL3NwaS1kYXZpbmNpLmMKaW5kZXggZDExMmMyY2FjMDQyLi41NWM5YWJj YjhlM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1kYXZpbmNpLmMKKysrIGIvZHJpdmVy cy9zcGkvc3BpLWRhdmluY2kuYwpAQCAtMTk5LDcgKzE5OSw3IEBAIHN0YXRpYyB2b2lkIGRhdmlu Y2lfc3BpX2NoaXBzZWxlY3Qoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgaW50IHZhbHVlKQogewog CXN0cnVjdCBkYXZpbmNpX3NwaSAqZHNwaTsKIAlzdHJ1Y3QgZGF2aW5jaV9zcGlfY29uZmlnICpz cGljZmcgPSBzcGktPmNvbnRyb2xsZXJfZGF0YTsKLQl1OCBjaGlwX3NlbCA9IHNwaS0+Y2hpcF9z ZWxlY3Q7CisJdTggY2hpcF9zZWwgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAl1MTYg c3BpZGF0MSA9IENTX0RFRkFVTFQ7CiAKIAlkc3BpID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShz cGktPm1hc3Rlcik7CkBAIC0yMTIsMTEgKzIxMiwxMSBAQCBzdGF0aWMgdm9pZCBkYXZpbmNpX3Nw aV9jaGlwc2VsZWN0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGludCB2YWx1ZSkKIAkgKiBCb2Fy ZCBzcGVjaWZpYyBjaGlwIHNlbGVjdCBsb2dpYyBkZWNpZGVzIHRoZSBwb2xhcml0eSBhbmQgY3MK IAkgKiBsaW5lIGZvciB0aGUgY29udHJvbGxlcgogCSAqLwotCWlmIChzcGktPmNzX2dwaW9kKSB7 CisJaWYgKHNwaV9nZXRfY3NncGlvZChzcGksIDApKSB7CiAJCWlmICh2YWx1ZSA9PSBCSVRCQU5H X0NTX0FDVElWRSkKLQkJCWdwaW9kX3NldF92YWx1ZShzcGktPmNzX2dwaW9kLCAxKTsKKwkJCWdw aW9kX3NldF92YWx1ZShzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSwgMSk7CiAJCWVsc2UKLQkJCWdw aW9kX3NldF92YWx1ZShzcGktPmNzX2dwaW9kLCAwKTsKKwkJCWdwaW9kX3NldF92YWx1ZShzcGlf Z2V0X2NzZ3Bpb2Qoc3BpLCAwKSwgMCk7CiAJfSBlbHNlIHsKIAkJaWYgKHZhbHVlID09IEJJVEJB TkdfQ1NfQUNUSVZFKSB7CiAJCQlpZiAoIShzcGktPm1vZGUgJiBTUElfQ1NfV09SRCkpCkBAIC0y OTMsMTEgKzI5MywxMSBAQCBzdGF0aWMgaW50IGRhdmluY2lfc3BpX3NldHVwX3RyYW5zZmVyKHN0 cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJaWYgKGJpdHNfcGVyX3dvcmQgPD0gOCkgewogCQlkc3Bp LT5nZXRfcnggPSBkYXZpbmNpX3NwaV9yeF9idWZfdTg7CiAJCWRzcGktPmdldF90eCA9IGRhdmlu Y2lfc3BpX3R4X2J1Zl91ODsKLQkJZHNwaS0+Ynl0ZXNfcGVyX3dvcmRbc3BpLT5jaGlwX3NlbGVj dF0gPSAxOworCQlkc3BpLT5ieXRlc19wZXJfd29yZFtzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KV0gPSAxOwogCX0gZWxzZSB7CiAJCWRzcGktPmdldF9yeCA9IGRhdmluY2lfc3BpX3J4X2J1Zl91 MTY7CiAJCWRzcGktPmdldF90eCA9IGRhdmluY2lfc3BpX3R4X2J1Zl91MTY7Ci0JCWRzcGktPmJ5 dGVzX3Blcl93b3JkW3NwaS0+Y2hpcF9zZWxlY3RdID0gMjsKKwkJZHNwaS0+Ynl0ZXNfcGVyX3dv cmRbc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCldID0gMjsKIAl9CiAKIAlpZiAoIWh6KQpAQCAt NDE1LDExICs0MTUsMTEgQEAgc3RhdGljIGludCBkYXZpbmNpX3NwaV9zZXR1cChzdHJ1Y3Qgc3Bp X2RldmljZSAqc3BpKQogCWRzcGkgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVy KTsKIAogCWlmICghKHNwaS0+bW9kZSAmIFNQSV9OT19DUykpIHsKLQkJaWYgKG5wICYmIHNwaS0+ Y3NfZ3Bpb2QpCisJCWlmIChucCAmJiBzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKIAkJCWludGVy bmFsX2NzID0gZmFsc2U7CiAKIAkJaWYgKGludGVybmFsX2NzKQotCQkJc2V0X2lvX2JpdHMoZHNw aS0+YmFzZSArIFNQSVBDMCwgMSA8PCBzcGktPmNoaXBfc2VsZWN0KTsKKwkJCXNldF9pb19iaXRz KGRzcGktPmJhc2UgKyBTUElQQzAsIDEgPDwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwog CX0KIAogCWlmIChzcGktPm1vZGUgJiBTUElfUkVBRFkpCkBAIC01NzksNyArNTc5LDcgQEAgc3Rh dGljIGludCBkYXZpbmNpX3NwaV9idWZzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBz cGlfdHJhbnNmZXIgKnQpCiAJCXNwaWNmZyA9ICZkYXZpbmNpX3NwaV9kZWZhdWx0X2NmZzsKIAog CS8qIGNvbnZlcnQgbGVuIHRvIHdvcmRzIGJhc2VkIG9uIGJpdHNfcGVyX3dvcmQgKi8KLQlkYXRh X3R5cGUgPSBkc3BpLT5ieXRlc19wZXJfd29yZFtzcGktPmNoaXBfc2VsZWN0XTsKKwlkYXRhX3R5 cGUgPSBkc3BpLT5ieXRlc19wZXJfd29yZFtzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV07CiAK IAlkc3BpLT50eCA9IHQtPnR4X2J1ZjsKIAlkc3BpLT5yeCA9IHQtPnJ4X2J1ZjsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvc3BpL3NwaS1kbG4yLmMgYi9kcml2ZXJzL3NwaS9zcGktZGxuMi5jCmluZGV4 IDBhMWZiMmJjOWU1NC4uNWU2MGUzZDU4MjJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGkt ZGxuMi5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1kbG4yLmMKQEAgLTU5NiwxMiArNTk2LDEyIEBA IHN0YXRpYyBpbnQgZGxuMl9zcGlfcHJlcGFyZV9tZXNzYWdlKHN0cnVjdCBzcGlfbWFzdGVyICpt YXN0ZXIsCiAJc3RydWN0IGRsbjJfc3BpICpkbG4yID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YSht YXN0ZXIpOwogCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBtZXNzYWdlLT5zcGk7CiAKLQlpZiAo ZGxuMi0+Y3MgIT0gc3BpLT5jaGlwX3NlbGVjdCkgewotCQlyZXQgPSBkbG4yX3NwaV9jc19zZXRf b25lKGRsbjIsIHNwaS0+Y2hpcF9zZWxlY3QpOworCWlmIChkbG4yLT5jcyAhPSBzcGlfZ2V0X2No aXBzZWxlY3Qoc3BpLCAwKSkgeworCQlyZXQgPSBkbG4yX3NwaV9jc19zZXRfb25lKGRsbjIsIHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0 OwogCi0JCWRsbjItPmNzID0gc3BpLT5jaGlwX3NlbGVjdDsKKwkJZGxuMi0+Y3MgPSBzcGlfZ2V0 X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3BpL3NwaS1kdy1jb3JlLmMgYi9kcml2ZXJzL3NwaS9zcGktZHctY29yZS5jCmluZGV4IGMz YmZiNmM4NGNhYi4uYWUzMTA4YzcwZjUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZHct Y29yZS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1kdy1jb3JlLmMKQEAgLTEwMyw3ICsxMDMsNyBA QCB2b2lkIGR3X3NwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBlbmFibGUp CiAJICogc3VwcG9ydCBhY3RpdmUtaGlnaCBvciBhY3RpdmUtbG93IENTIGxldmVsLgogCSAqLwog CWlmIChjc19oaWdoID09IGVuYWJsZSkKLQkJZHdfd3JpdGVsKGR3cywgRFdfU1BJX1NFUiwgQklU KHNwaS0+Y2hpcF9zZWxlY3QpKTsKKwkJZHdfd3JpdGVsKGR3cywgRFdfU1BJX1NFUiwgQklUKHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSk7CiAJZWxzZQogCQlkd193cml0ZWwoZHdzLCBEV19T UElfU0VSLCAwKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1kdy1tbWlvLmMgYi9k cml2ZXJzL3NwaS9zcGktZHctbW1pby5jCmluZGV4IDI2YzQwZWE2ZGQxMi4uZDUxMWRhNzY2Y2U4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZHctbW1pby5jCisrKyBiL2RyaXZlcnMvc3Bp L3NwaS1kdy1tbWlvLmMKQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIHZvaWQgZHdfc3BpX21zY2Nf c2V0X2NzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGJvb2wgZW5hYmxlKQogCXN0cnVjdCBkd19z cGkgKmR3cyA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwogCXN0cnVjdCBk d19zcGlfbW1pbyAqZHdzbW1pbyA9IGNvbnRhaW5lcl9vZihkd3MsIHN0cnVjdCBkd19zcGlfbW1p bywgZHdzKTsKIAlzdHJ1Y3QgZHdfc3BpX21zY2MgKmR3c21zY2MgPSBkd3NtbWlvLT5wcml2Owot CXUzMiBjcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJdTMyIGNzID0gc3BpX2dldF9jaGlwc2VsZWN0 KHNwaSwgMCk7CiAKIAlpZiAoY3MgPCA0KSB7CiAJCXUzMiBzd19tb2RlID0gTVNDQ19TUElfTVNU X1NXX01PREVfU1dfUElOX0NUUkxfTU9ERTsKQEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0aWMgdm9p ZCBkd19zcGlfc3Bhcng1X3NldF9jcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBib29sIGVuYWJs ZSkKIAlzdHJ1Y3QgZHdfc3BpICpkd3MgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFz dGVyKTsKIAlzdHJ1Y3QgZHdfc3BpX21taW8gKmR3c21taW8gPSBjb250YWluZXJfb2YoZHdzLCBz dHJ1Y3QgZHdfc3BpX21taW8sIGR3cyk7CiAJc3RydWN0IGR3X3NwaV9tc2NjICpkd3Ntc2NjID0g ZHdzbW1pby0+cHJpdjsKLQl1OCBjcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJdTggY3MgPSBzcGlf Z2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAogCWlmICghZW5hYmxlKSB7CiAJCS8qIENTIG92ZXJy aWRlIGRyaXZlIGVuYWJsZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWZhbGNvbi5j IGIvZHJpdmVycy9zcGkvc3BpLWZhbGNvbi5jCmluZGV4IGE3ZDRkZmZhYzY2Yi4uNGMxMDNkZmYw ZDQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZmFsY29uLmMKKysrIGIvZHJpdmVycy9z cGkvc3BpLWZhbGNvbi5jCkBAIC0xMzEsNyArMTMxLDcgQEAgaW50IGZhbGNvbl9zZmxhc2hfeGZl cihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3Qgc3BpX3RyYW5zZmVyICp0LAogCQkJCSAq IGVzcGVjaWFsbHkgYWxlbiBhbmQgZHVtbGVuLgogCQkJCSAqLwogCi0JCQkJcHJpdi0+c2ZjbWQg PSAoKHNwaS0+Y2hpcF9zZWxlY3QKKwkJCQlwcml2LT5zZmNtZCA9ICgoc3BpX2dldF9jaGlwc2Vs ZWN0KHNwaSwgMCkKIAkJCQkJCTw8IFNGQ01EX0NTX09GRlNFVCkKIAkJCQkJICAgICAgICYgU0ZD TURfQ1NfTUFTSyk7CiAJCQkJcHJpdi0+c2ZjbWQgfD0gU0ZDTURfS0VFUF9DU19LRUVQX1NFTEVD VEVEOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWZzaS5jIGIvZHJpdmVycy9zcGkvc3Bp LWZzaS5jCmluZGV4IGNmMWU0ZjllYmQ3Mi4uYmEzYjE3ZDdjOWVjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3NwaS9zcGktZnNpLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWZzaS5jCkBAIC00MjUsNyAr NDI1LDcgQEAgc3RhdGljIGludCBmc2lfc3BpX3RyYW5zZmVyX29uZV9tZXNzYWdlKHN0cnVjdCBz cGlfY29udHJvbGxlciAqY3RsciwKIAkJCQkJc3RydWN0IHNwaV9tZXNzYWdlICptZXNnKQogewog CWludCByYzsKLQl1OCBzZXFfc2xhdmUgPSBTUElfRlNJX1NFUVVFTkNFX1NFTF9TTEFWRShtZXNn LT5zcGktPmNoaXBfc2VsZWN0ICsgMSk7CisJdTggc2VxX3NsYXZlID0gU1BJX0ZTSV9TRVFVRU5D RV9TRUxfU0xBVkUoc3BpX2dldF9jaGlwc2VsZWN0KG1lc2ctPnNwaSwgMCkgKyAxKTsKIAl1bnNp Z25lZCBpbnQgbGVuOwogCXN0cnVjdCBzcGlfdHJhbnNmZXIgKnRyYW5zZmVyOwogCXN0cnVjdCBm c2lfc3BpICpjdHggPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShjdGxyKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvc3BpL3NwaS1mc2wtZHNwaS5jIGIvZHJpdmVycy9zcGkvc3BpLWZzbC1kc3Bp LmMKaW5kZXggZTQxOTY0MmViMTBlLi4wZjlhOTdlZTJlNzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv c3BpL3NwaS1mc2wtZHNwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1mc2wtZHNwaS5jCkBAIC05 MDIsMTkgKzkwMiwxOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZHNwaV9pbnRlcnJ1cHQoaW50IGly cSwgdm9pZCAqZGV2X2lkKQogCiBzdGF0aWMgdm9pZCBkc3BpX2Fzc2VydF9jcyhzdHJ1Y3Qgc3Bp X2RldmljZSAqc3BpLCBib29sICpjcykKIHsKLQlpZiAoIXNwaS0+Y3NfZ3Bpb2QgfHwgKmNzKQor CWlmICghc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkgfHwgKmNzKQogCQlyZXR1cm47CiAKLQlncGlv ZF9zZXRfdmFsdWVfY2Fuc2xlZXAoc3BpLT5jc19ncGlvZCwgdHJ1ZSk7CisJZ3Bpb2Rfc2V0X3Zh bHVlX2NhbnNsZWVwKHNwaV9nZXRfY3NncGlvZChzcGksIDApLCB0cnVlKTsKIAkqY3MgPSB0cnVl OwogfQogCiBzdGF0aWMgdm9pZCBkc3BpX2RlYXNzZXJ0X2NzKHN0cnVjdCBzcGlfZGV2aWNlICpz cGksIGJvb2wgKmNzKQogewotCWlmICghc3BpLT5jc19ncGlvZCB8fCAhKmNzKQorCWlmICghc3Bp X2dldF9jc2dwaW9kKHNwaSwgMCkgfHwgISpjcykKIAkJcmV0dXJuOwogCi0JZ3Bpb2Rfc2V0X3Zh bHVlX2NhbnNsZWVwKHNwaS0+Y3NfZ3Bpb2QsIGZhbHNlKTsKKwlncGlvZF9zZXRfdmFsdWVfY2Fu c2xlZXAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCksIGZhbHNlKTsKIAkqY3MgPSBmYWxzZTsKIH0K IApAQCAtOTM4LDggKzkzOCw4IEBAIHN0YXRpYyBpbnQgZHNwaV90cmFuc2Zlcl9vbmVfbWVzc2Fn ZShzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIsCiAKIAkJLyogUHJlcGFyZSBjb21tYW5kIHdv cmQgZm9yIENNRCBGSUZPICovCiAJCWRzcGktPnR4X2NtZCA9IFNQSV9QVVNIUl9DTURfQ1RBUygw KTsKLQkJaWYgKCFzcGktPmNzX2dwaW9kKQotCQkJZHNwaS0+dHhfY21kIHw9IFNQSV9QVVNIUl9D TURfUENTKHNwaS0+Y2hpcF9zZWxlY3QpOworCQlpZiAoIXNwaV9nZXRfY3NncGlvZChzcGksIDAp KQorCQkJZHNwaS0+dHhfY21kIHw9IFNQSV9QVVNIUl9DTURfUENTKHNwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApKTsKIAogCQlpZiAobGlzdF9pc19sYXN0KCZkc3BpLT5jdXJfdHJhbnNmZXItPnRy YW5zZmVyX2xpc3QsCiAJCQkJICZkc3BpLT5jdXJfbXNnLT50cmFuc2ZlcnMpKSB7CkBAIC0xMDU4 LDcgKzEwNTgsNyBAQCBzdGF0aWMgaW50IGRzcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNw aSkKIAkJCWNoaXAtPmN0YXJfdmFsIHw9IFNQSV9DVEFSX0xTQkZFOwogCX0KIAotCWdwaW9kX2Rp cmVjdGlvbl9vdXRwdXQoc3BpLT5jc19ncGlvZCwgZmFsc2UpOworCWdwaW9kX2RpcmVjdGlvbl9v dXRwdXQoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCksIGZhbHNlKTsKIAlkc3BpX2RlYXNzZXJ0X2Nz KHNwaSwgJmNzKTsKIAogCXNwaV9zZXRfY3RsZGF0YShzcGksIGNoaXApOwpAQCAtMTA3MSw3ICsx MDcxLDcgQEAgc3RhdGljIHZvaWQgZHNwaV9jbGVhbnVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkp CiAJc3RydWN0IGNoaXBfZGF0YSAqY2hpcCA9IHNwaV9nZXRfY3RsZGF0YSgoc3RydWN0IHNwaV9k ZXZpY2UgKilzcGkpOwogCiAJZGV2X2RiZygmc3BpLT5kZXYsICJzcGlfZGV2aWNlICV1LiV1IGNs ZWFudXBcbiIsCi0JCXNwaS0+Y29udHJvbGxlci0+YnVzX251bSwgc3BpLT5jaGlwX3NlbGVjdCk7 CisJCXNwaS0+Y29udHJvbGxlci0+YnVzX251bSwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkp OwogCiAJa2ZyZWUoY2hpcCk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktZnNsLWVz cGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1mc2wtZXNwaS5jCmluZGV4IGY3MDY2YmVmN2IwNi4uYjU5 MzA1NWUzZDZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZnNsLWVzcGkuYworKysgYi9k cml2ZXJzL3NwaS9zcGktZnNsLWVzcGkuYwpAQCAtMzQ1LDcgKzM0NSw3IEBAIHN0YXRpYyB2b2lk IGZzbF9lc3BpX3NldHVwX3RyYW5zZmVyKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAKIAkvKiBk b24ndCB3cml0ZSB0aGUgbW9kZSByZWdpc3RlciBpZiB0aGUgbW9kZSBkb2Vzbid0IGNoYW5nZSAq LwogCWlmIChjcy0+aHdfbW9kZSAhPSBod19tb2RlX29sZCkKLQkJZnNsX2VzcGlfd3JpdGVfcmVn KGVzcGksIEVTUElfU1BNT0RFeChzcGktPmNoaXBfc2VsZWN0KSwKKwkJZnNsX2VzcGlfd3JpdGVf cmVnKGVzcGksIEVTUElfU1BNT0RFeChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSksCiAJCQkJ ICAgY3MtPmh3X21vZGUpOwogfQogCkBAIC0zNTksNyArMzU5LDcgQEAgc3RhdGljIGludCBmc2xf ZXNwaV9idWZzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBzcGlfdHJhbnNmZXIgKnQp CiAJcmVpbml0X2NvbXBsZXRpb24oJmVzcGktPmRvbmUpOwogCiAJLyogU2V0IFNQQ09NW0NTXSBh bmQgU1BDT01bVFJBTkxFTl0gZmllbGQgKi8KLQlzcGNvbSA9IFNQQ09NX0NTKHNwaS0+Y2hpcF9z ZWxlY3QpOworCXNwY29tID0gU1BDT01fQ1Moc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwog CXNwY29tIHw9IFNQQ09NX1RSQU5MRU4odC0+bGVuIC0gMSk7CiAKIAkvKiBjb25maWd1cmUgUlhT S0lQIG1vZGUgKi8KQEAgLTQ5Miw3ICs0OTIsNyBAQCBzdGF0aWMgaW50IGZzbF9lc3BpX3NldHVw KHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAKIAlwbV9ydW50aW1lX2dldF9zeW5jKGVzcGktPmRl dik7CiAKLQljcy0+aHdfbW9kZSA9IGZzbF9lc3BpX3JlYWRfcmVnKGVzcGksIEVTUElfU1BNT0RF eChzcGktPmNoaXBfc2VsZWN0KSk7CisJY3MtPmh3X21vZGUgPSBmc2xfZXNwaV9yZWFkX3JlZyhl c3BpLCBFU1BJX1NQTU9ERXgoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpKTsKIAkvKiBtYXNr IG91dCBiaXRzIHdlIGFyZSBnb2luZyB0byBzZXQgKi8KIAljcy0+aHdfbW9kZSAmPSB+KENTTU9E RV9DUF9CRUdJTl9FREdFQ0xLIHwgQ1NNT0RFX0NJX0lOQUNUSVZFSElHSAogCQkJIHwgQ1NNT0RF X1JFVik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktZnNsLWxwc3BpLmMgYi9kcml2ZXJz L3NwaS9zcGktZnNsLWxwc3BpLmMKaW5kZXggMzQ0ODhkZTU1NTg3Li5mZTY5ZWM4YzlkNjggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1mc2wtbHBzcGkuYworKysgYi9kcml2ZXJzL3NwaS9z cGktZnNsLWxwc3BpLmMKQEAgLTQyNSw3ICs0MjUsNyBAQCBzdGF0aWMgaW50IGZzbF9scHNwaV9z ZXR1cF90cmFuc2ZlcihzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmNvbnRyb2xsZXIsCiAJaWYgKGZz bF9scHNwaS0+aXNfb25seV9jczEpCiAJCWZzbF9scHNwaS0+Y29uZmlnLmNoaXBfc2VsZWN0ID0g MTsKIAllbHNlCi0JCWZzbF9scHNwaS0+Y29uZmlnLmNoaXBfc2VsZWN0ID0gc3BpLT5jaGlwX3Nl bGVjdDsKKwkJZnNsX2xwc3BpLT5jb25maWcuY2hpcF9zZWxlY3QgPSBzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKTsKIAogCWlmICghZnNsX2xwc3BpLT5jb25maWcuc3BlZWRfaHopCiAJCWZzbF9s cHNwaS0+Y29uZmlnLnNwZWVkX2h6ID0gc3BpLT5tYXhfc3BlZWRfaHo7CmRpZmYgLS1naXQgYS9k cml2ZXJzL3NwaS9zcGktZnNsLXFzcGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1mc2wtcXNwaS5jCmlu ZGV4IDg1Y2M3MWJhNjI0YS4uNGYxNmQ0Njc2NjUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9z cGktZnNsLXFzcGkuYworKysgYi9kcml2ZXJzL3NwaS9zcGktZnNsLXFzcGkuYwpAQCAtNTI4LDcg KzUyOCw3IEBAIHN0YXRpYyB2b2lkIGZzbF9xc3BpX3NlbGVjdF9tZW0oc3RydWN0IGZzbF9xc3Bp ICpxLCBzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCXVuc2lnbmVkIGxvbmcgcmF0ZSA9IHNwaS0+ bWF4X3NwZWVkX2h6OwogCWludCByZXQ7CiAKLQlpZiAocS0+c2VsZWN0ZWQgPT0gc3BpLT5jaGlw X3NlbGVjdCkKKwlpZiAocS0+c2VsZWN0ZWQgPT0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkp CiAJCXJldHVybjsKIAogCWlmIChuZWVkc180eF9jbG9jayhxKSkKQEAgLTU0NCw3ICs1NDQsNyBA QCBzdGF0aWMgdm9pZCBmc2xfcXNwaV9zZWxlY3RfbWVtKHN0cnVjdCBmc2xfcXNwaSAqcSwgc3Ry dWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlpZiAocmV0KQogCQlyZXR1cm47CiAKLQlxLT5zZWxlY3Rl ZCA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJcS0+c2VsZWN0ZWQgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qo c3BpLCAwKTsKIAogCWZzbF9xc3BpX2ludmFsaWRhdGUocSk7CiB9CkBAIC04MjMsNyArODIzLDcg QEAgc3RhdGljIGNvbnN0IGNoYXIgKmZzbF9xc3BpX2dldF9uYW1lKHN0cnVjdCBzcGlfbWVtICpt ZW0pCiAKIAluYW1lID0gZGV2bV9rYXNwcmludGYoZGV2LCBHRlBfS0VSTkVMLAogCQkJICAgICAg IiVzLSVkIiwgZGV2X25hbWUocS0+ZGV2KSwKLQkJCSAgICAgIG1lbS0+c3BpLT5jaGlwX3NlbGVj dCk7CisJCQkgICAgICBzcGlfZ2V0X2NoaXBzZWxlY3QobWVtLT5zcGksIDApKTsKIAogCWlmICgh bmFtZSkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgbWVtb3J5IGZvciBjdXN0b20g Zmxhc2ggbmFtZVxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktZnNsLXNwaS5jIGIv ZHJpdmVycy9zcGkvc3BpLWZzbC1zcGkuYwppbmRleCA5MzE1MjE0NGZkMmUuLjA4ZmE2ZTM4ZjRl YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWZzbC1zcGkuYworKysgYi9kcml2ZXJzL3Nw aS9zcGktZnNsLXNwaS5jCkBAIC01MDMsNyArNTAzLDcgQEAgc3RhdGljIHZvaWQgZnNsX3NwaV9n cmxpYl9jc19jb250cm9sKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGJvb2wgb24pCiAJc3RydWN0 IG1wYzh4eHhfc3BpICptcGM4eHh4X3NwaSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5t YXN0ZXIpOwogCXN0cnVjdCBmc2xfc3BpX3JlZyBfX2lvbWVtICpyZWdfYmFzZSA9IG1wYzh4eHhf c3BpLT5yZWdfYmFzZTsKIAl1MzIgc2x2c2VsOwotCXUxNiBjcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7 CisJdTE2IGNzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAKIAlpZiAoY3MgPCBtcGM4 eHh4X3NwaS0+bmF0aXZlX2NoaXBzZWxlY3RzKSB7CiAJCXNsdnNlbCA9IG1wYzh4eHhfc3BpX3Jl YWRfcmVnKCZyZWdfYmFzZS0+c2x2c2VsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1n ZW5pLXFjb20uYyBiL2RyaXZlcnMvc3BpL3NwaS1nZW5pLXFjb20uYwppbmRleCBlMWIyZTBiNjU3 NzkuLmE5OWJkYWIwMGVkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWdlbmktcWNvbS5j CisrKyBiL2RyaXZlcnMvc3BpL3NwaS1nZW5pLXFjb20uYwpAQCAtMzkxLDkgKzM5MSw5IEBAIHN0 YXRpYyBpbnQgc2V0dXBfZmlmb19wYXJhbXMoc3RydWN0IHNwaV9kZXZpY2UgKnNwaV9zbHYsCiAJ CQljcGhhID0gQ1BIQTsKIAogCQlpZiAoc3BpX3Nsdi0+bW9kZSAmIFNQSV9DU19ISUdIKQotCQkJ ZGVtdXhfb3V0cHV0X2ludiA9IEJJVChzcGlfc2x2LT5jaGlwX3NlbGVjdCk7CisJCQlkZW11eF9v dXRwdXRfaW52ID0gQklUKHNwaV9nZXRfY2hpcHNlbGVjdChzcGlfc2x2LCAwKSk7CiAKLQkJZGVt dXhfc2VsID0gc3BpX3Nsdi0+Y2hpcF9zZWxlY3Q7CisJCWRlbXV4X3NlbCA9IHNwaV9nZXRfY2hp cHNlbGVjdChzcGlfc2x2LCAwKTsKIAkJbWFzLT5jdXJfYml0c19wZXJfd29yZCA9IHNwaV9zbHYt PmJpdHNfcGVyX3dvcmQ7CiAKIAkJc3BpX3NldHVwX3dvcmRfbGVuKG1hcywgc3BpX3Nsdi0+bW9k ZSwgc3BpX3Nsdi0+Yml0c19wZXJfd29yZCk7CkBAIC00NjksNyArNDY5LDcgQEAgc3RhdGljIGlu dCBzZXR1cF9nc2lfeGZlcihzdHJ1Y3Qgc3BpX3RyYW5zZmVyICp4ZmVyLCBzdHJ1Y3Qgc3BpX2dl bmlfbWFzdGVyICptYXMKIAlwZXJpcGhlcmFsLmxvb3BiYWNrX2VuID0gISEoc3BpX3Nsdi0+bW9k ZSAmIFNQSV9MT09QKTsKIAlwZXJpcGhlcmFsLmNsb2NrX3BvbF9oaWdoID0gISEoc3BpX3Nsdi0+ bW9kZSAmIFNQSV9DUE9MKTsKIAlwZXJpcGhlcmFsLmRhdGFfcG9sX2hpZ2ggPSAhIShzcGlfc2x2 LT5tb2RlICYgU1BJX0NQSEEpOwotCXBlcmlwaGVyYWwuY3MgPSBzcGlfc2x2LT5jaGlwX3NlbGVj dDsKKwlwZXJpcGhlcmFsLmNzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaV9zbHYsIDApOwogCXBl cmlwaGVyYWwucGFja19lbiA9IHRydWU7CiAJcGVyaXBoZXJhbC53b3JkX2xlbiA9IHhmZXItPmJp dHNfcGVyX3dvcmQgLSBNSU5fV09SRF9MRU47CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3Nw aS1ncGlvLmMgYi9kcml2ZXJzL3NwaS9zcGktZ3Bpby5jCmluZGV4IDljOGM3OTQ4MDQ0ZS4uMDky YWZjNzY3OWQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZ3Bpby5jCisrKyBiL2RyaXZl cnMvc3BpL3NwaS1ncGlvLmMKQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgdm9pZCBzcGlfZ3Bp b19jaGlwc2VsZWN0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGludCBpc19hY3RpdmUpCiAKIAkv KiBEcml2ZSBjaGlwIHNlbGVjdCBsaW5lLCBpZiB3ZSBoYXZlIG9uZSAqLwogCWlmIChzcGlfZ3Bp by0+Y3NfZ3Bpb3MpIHsKLQkJc3RydWN0IGdwaW9fZGVzYyAqY3MgPSBzcGlfZ3Bpby0+Y3NfZ3Bp b3Nbc3BpLT5jaGlwX3NlbGVjdF07CisJCXN0cnVjdCBncGlvX2Rlc2MgKmNzID0gc3BpX2dwaW8t PmNzX2dwaW9zW3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXTsKIAogCQkvKiBTUEkgY2hpcCBz ZWxlY3RzIGFyZSBub3JtYWxseSBhY3RpdmUtbG93ICovCiAJCWdwaW9kX3NldF92YWx1ZV9jYW5z bGVlcChjcywgKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKSA/IGlzX2FjdGl2ZSA6ICFpc19hY3Rp dmUpOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIHN0YXRpYyBpbnQgc3BpX2dwaW9fc2V0dXAoc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSkKIAkgKiBpbml0aWFsaXplZCBmcm9tIHRoZSBkZXNjcmlwdG9yIGxv b2t1cC4KIAkgKi8KIAlpZiAoc3BpX2dwaW8tPmNzX2dwaW9zKSB7Ci0JCWNzID0gc3BpX2dwaW8t PmNzX2dwaW9zW3NwaS0+Y2hpcF9zZWxlY3RdOworCQljcyA9IHNwaV9ncGlvLT5jc19ncGlvc1tz cGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV07CiAJCWlmICghc3BpLT5jb250cm9sbGVyX3N0YXRl ICYmIGNzKQogCQkJc3RhdHVzID0gZ3Bpb2RfZGlyZWN0aW9uX291dHB1dChjcywKIAkJCQkJCSAg IShzcGktPm1vZGUgJiBTUElfQ1NfSElHSCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3Bp LWd4cC5jIGIvZHJpdmVycy9zcGkvc3BpLWd4cC5jCmluZGV4IGM5MDBjMmYzOWI1Ny4uNjg0ZDYz ZjQwMmYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZ3hwLmMKKysrIGIvZHJpdmVycy9z cGkvc3BpLWd4cC5jCkBAIC0yMDEsNyArMjAxLDcgQEAgc3RhdGljIHNzaXplX3QgZ3hwX3NwaV93 cml0ZShzdHJ1Y3QgZ3hwX3NwaV9jaGlwICpjaGlwLCBjb25zdCBzdHJ1Y3Qgc3BpX21lbV9vcAog c3RhdGljIGludCBkb19neHBfZXhlY19tZW1fb3Aoc3RydWN0IHNwaV9tZW0gKm1lbSwgY29uc3Qg c3RydWN0IHNwaV9tZW1fb3AgKm9wKQogewogCXN0cnVjdCBneHBfc3BpICpzcGlmaSA9IHNwaV9j b250cm9sbGVyX2dldF9kZXZkYXRhKG1lbS0+c3BpLT5tYXN0ZXIpOwotCXN0cnVjdCBneHBfc3Bp X2NoaXAgKmNoaXAgPSAmc3BpZmktPmNoaXBzW21lbS0+c3BpLT5jaGlwX3NlbGVjdF07CisJc3Ry dWN0IGd4cF9zcGlfY2hpcCAqY2hpcCA9ICZzcGlmaS0+Y2hpcHNbc3BpX2dldF9jaGlwc2VsZWN0 KG1lbS0+c3BpLCAwKV07CiAJaW50IHJldDsKIAogCWlmIChvcC0+ZGF0YS5kaXIgPT0gU1BJX01F TV9EQVRBX0lOKSB7CkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlf Y29udHJvbGxlcl9tZW1fb3BzIGd4cF9zcGlfbWVtX29wcyA9IHsKIHN0YXRpYyBpbnQgZ3hwX3Nw aV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogewogCXN0cnVjdCBneHBfc3BpICpzcGlm aSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKLQl1bnNpZ25lZCBp bnQgY3MgPSBzcGktPmNoaXBfc2VsZWN0OworCXVuc2lnbmVkIGludCBjcyA9IHNwaV9nZXRfY2hp cHNlbGVjdChzcGksIDApOwogCXN0cnVjdCBneHBfc3BpX2NoaXAgKmNoaXAgPSAmc3BpZmktPmNo aXBzW2NzXTsKIAogCWNoaXAtPnNwaWZpID0gc3BpZmk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Nw aS9zcGktaGlzaS1zZmMtdjN4eC5jIGIvZHJpdmVycy9zcGkvc3BpLWhpc2ktc2ZjLXYzeHguYwpp bmRleCBmMDdkMTA0NWEzMGEuLjdjYmNiMDY1YmI0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkv c3BpLWhpc2ktc2ZjLXYzeHguYworKysgYi9kcml2ZXJzL3NwaS9zcGktaGlzaS1zZmMtdjN4eC5j CkBAIC0zNjEsNyArMzYxLDcgQEAgc3RhdGljIGludCBoaXNpX3NmY192M3h4X2V4ZWNfb3Aoc3Ry dWN0IHNwaV9tZW0gKm1lbSwKIHsKIAlzdHJ1Y3QgaGlzaV9zZmNfdjN4eF9ob3N0ICpob3N0Owog CXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBtZW0tPnNwaTsKLQl1OCBjaGlwX3NlbGVjdCA9IHNw aS0+Y2hpcF9zZWxlY3Q7CisJdTggY2hpcF9zZWxlY3QgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3Bp LCAwKTsKIAogCWhvc3QgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShzcGktPm1hc3Rlcik7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1pbWctc3BmaS5jIGIvZHJpdmVycy9zcGkv c3BpLWltZy1zcGZpLmMKaW5kZXggMjU3MDQ2Zjg0M2ZmLi4xNTc1ZTc4ZjhiMDkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvc3BpL3NwaS1pbWctc3BmaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1pbWct c3BmaS5jCkBAIC00MTMsMTUgKzQxMywxNSBAQCBzdGF0aWMgaW50IGltZ19zcGZpX3ByZXBhcmUo c3RydWN0IHNwaV9tYXN0ZXIgKm1hc3Rlciwgc3RydWN0IHNwaV9tZXNzYWdlICptc2cpCiAJdmFs ID0gc3BmaV9yZWFkbChzcGZpLCBTUEZJX1BPUlRfU1RBVEUpOwogCXZhbCAmPSB+KFNQRklfUE9S VF9TVEFURV9ERVZfU0VMX01BU0sgPDwKIAkJIFNQRklfUE9SVF9TVEFURV9ERVZfU0VMX1NISUZU KTsKLQl2YWwgfD0gbXNnLT5zcGktPmNoaXBfc2VsZWN0IDw8IFNQRklfUE9SVF9TVEFURV9ERVZf U0VMX1NISUZUOworCXZhbCB8PSBzcGlfZ2V0X2NoaXBzZWxlY3QobXNnLT5zcGksIDApIDw8IFNQ RklfUE9SVF9TVEFURV9ERVZfU0VMX1NISUZUOwogCWlmIChtc2ctPnNwaS0+bW9kZSAmIFNQSV9D UEhBKQotCQl2YWwgfD0gU1BGSV9QT1JUX1NUQVRFX0NLX1BIQVNFKG1zZy0+c3BpLT5jaGlwX3Nl bGVjdCk7CisJCXZhbCB8PSBTUEZJX1BPUlRfU1RBVEVfQ0tfUEhBU0Uoc3BpX2dldF9jaGlwc2Vs ZWN0KG1zZy0+c3BpLCAwKSk7CiAJZWxzZQotCQl2YWwgJj0gflNQRklfUE9SVF9TVEFURV9DS19Q SEFTRShtc2ctPnNwaS0+Y2hpcF9zZWxlY3QpOworCQl2YWwgJj0gflNQRklfUE9SVF9TVEFURV9D S19QSEFTRShzcGlfZ2V0X2NoaXBzZWxlY3QobXNnLT5zcGksIDApKTsKIAlpZiAobXNnLT5zcGkt Pm1vZGUgJiBTUElfQ1BPTCkKLQkJdmFsIHw9IFNQRklfUE9SVF9TVEFURV9DS19QT0wobXNnLT5z cGktPmNoaXBfc2VsZWN0KTsKKwkJdmFsIHw9IFNQRklfUE9SVF9TVEFURV9DS19QT0woc3BpX2dl dF9jaGlwc2VsZWN0KG1zZy0+c3BpLCAwKSk7CiAJZWxzZQotCQl2YWwgJj0gflNQRklfUE9SVF9T VEFURV9DS19QT0wobXNnLT5zcGktPmNoaXBfc2VsZWN0KTsKKwkJdmFsICY9IH5TUEZJX1BPUlRf U1RBVEVfQ0tfUE9MKHNwaV9nZXRfY2hpcHNlbGVjdChtc2ctPnNwaSwgMCkpOwogCXNwZmlfd3Jp dGVsKHNwZmksIHZhbCwgU1BGSV9QT1JUX1NUQVRFKTsKIAogCXJldHVybiAwOwpAQCAtNDUwLDEx ICs0NTAsMTEgQEAgc3RhdGljIHZvaWQgaW1nX3NwZmlfY29uZmlnKHN0cnVjdCBzcGlfbWFzdGVy ICptYXN0ZXIsIHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJZGl2ID0gRElWX1JPVU5EX1VQKGNs a19nZXRfcmF0ZShzcGZpLT5zcGZpX2NsayksIHhmZXItPnNwZWVkX2h6KTsKIAlkaXYgPSBjbGFt cCg1MTIgLyAoMSA8PCBnZXRfY291bnRfb3JkZXIoZGl2KSksIDEsIDEyOCk7CiAKLQl2YWwgPSBz cGZpX3JlYWRsKHNwZmksIFNQRklfREVWSUNFX1BBUkFNRVRFUihzcGktPmNoaXBfc2VsZWN0KSk7 CisJdmFsID0gc3BmaV9yZWFkbChzcGZpLCBTUEZJX0RFVklDRV9QQVJBTUVURVIoc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgMCkpKTsKIAl2YWwgJj0gfihTUEZJX0RFVklDRV9QQVJBTUVURVJfQklU Q0xLX01BU0sgPDwKIAkJIFNQRklfREVWSUNFX1BBUkFNRVRFUl9CSVRDTEtfU0hJRlQpOwogCXZh bCB8PSBkaXYgPDwgU1BGSV9ERVZJQ0VfUEFSQU1FVEVSX0JJVENMS19TSElGVDsKLQlzcGZpX3dy aXRlbChzcGZpLCB2YWwsIFNQRklfREVWSUNFX1BBUkFNRVRFUihzcGktPmNoaXBfc2VsZWN0KSk7 CisJc3BmaV93cml0ZWwoc3BmaSwgdmFsLCBTUEZJX0RFVklDRV9QQVJBTUVURVIoc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgMCkpKTsKIAogCXNwZmlfd3JpdGVsKHNwZmksIHhmZXItPmxlbiA8PCBT UEZJX1RSQU5TQUNUSU9OX1RTSVpFX1NISUZULAogCQkgICAgU1BGSV9UUkFOU0FDVElPTik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktaW14LmMgYi9kcml2ZXJzL3NwaS9zcGktaW14LmMK aW5kZXggZTRjY2QwYzMyOWQwLi42MjBiY2U5NmIxZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3Bp L3NwaS1pbXguYworKysgYi9kcml2ZXJzL3NwaS9zcGktaW14LmMKQEAgLTUyOCw3ICs1MjgsNyBA QCBzdGF0aWMgaW50IG14NTFfZWNzcGlfcHJlcGFyZV9tZXNzYWdlKHN0cnVjdCBzcGlfaW14X2Rh dGEgKnNwaV9pbXgsCiAJCWN0cmwgfD0gTVg1MV9FQ1NQSV9DVFJMX0RSQ1RMKHNwaV9pbXgtPnNw aV9kcmN0bCk7CiAKIAkvKiBzZXQgY2hpcCBzZWxlY3QgdG8gdXNlICovCi0JY3RybCB8PSBNWDUx X0VDU1BJX0NUUkxfQ1Moc3BpLT5jaGlwX3NlbGVjdCk7CisJY3RybCB8PSBNWDUxX0VDU1BJX0NU UkxfQ1Moc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJLyoKIAkgKiBUaGUgY3RybCBy ZWdpc3RlciBtdXN0IGJlIHdyaXR0ZW4gZmlyc3QsIHdpdGggdGhlIEVOIGJpdCBzZXQgb3RoZXIK QEAgLTU0OSwyMiArNTQ5LDIyIEBAIHN0YXRpYyBpbnQgbXg1MV9lY3NwaV9wcmVwYXJlX21lc3Nh Z2Uoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwKIAkgKiBCVVJTVF9MRU5HVEggKyAxIGJp dHMgYXJlIHJlY2VpdmVkCiAJICovCiAJaWYgKHNwaV9pbXgtPnNsYXZlX21vZGUgJiYgaXNfaW14 NTNfZWNzcGkoc3BpX2lteCkpCi0JCWNmZyAmPSB+TVg1MV9FQ1NQSV9DT05GSUdfU0JCQ1RSTChz cGktPmNoaXBfc2VsZWN0KTsKKwkJY2ZnICY9IH5NWDUxX0VDU1BJX0NPTkZJR19TQkJDVFJMKHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAllbHNlCi0JCWNmZyB8PSBNWDUxX0VDU1BJX0NP TkZJR19TQkJDVFJMKHNwaS0+Y2hpcF9zZWxlY3QpOworCQljZmcgfD0gTVg1MV9FQ1NQSV9DT05G SUdfU0JCQ1RSTChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAlpZiAoc3BpLT5tb2Rl ICYgU1BJX0NQT0wpIHsKLQkJY2ZnIHw9IE1YNTFfRUNTUElfQ09ORklHX1NDTEtQT0woc3BpLT5j aGlwX3NlbGVjdCk7Ci0JCWNmZyB8PSBNWDUxX0VDU1BJX0NPTkZJR19TQ0xLQ1RMKHNwaS0+Y2hp cF9zZWxlY3QpOworCQljZmcgfD0gTVg1MV9FQ1NQSV9DT05GSUdfU0NMS1BPTChzcGlfZ2V0X2No aXBzZWxlY3Qoc3BpLCAwKSk7CisJCWNmZyB8PSBNWDUxX0VDU1BJX0NPTkZJR19TQ0xLQ1RMKHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAl9IGVsc2UgewotCQljZmcgJj0gfk1YNTFfRUNT UElfQ09ORklHX1NDTEtQT0woc3BpLT5jaGlwX3NlbGVjdCk7Ci0JCWNmZyAmPSB+TVg1MV9FQ1NQ SV9DT05GSUdfU0NMS0NUTChzcGktPmNoaXBfc2VsZWN0KTsKKwkJY2ZnICY9IH5NWDUxX0VDU1BJ X0NPTkZJR19TQ0xLUE9MKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKKwkJY2ZnICY9IH5N WDUxX0VDU1BJX0NPTkZJR19TQ0xLQ1RMKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAl9 CiAKIAlpZiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpCi0JCWNmZyB8PSBNWDUxX0VDU1BJX0NP TkZJR19TU0JQT0woc3BpLT5jaGlwX3NlbGVjdCk7CisJCWNmZyB8PSBNWDUxX0VDU1BJX0NPTkZJ R19TU0JQT0woc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCWVsc2UKLQkJY2ZnICY9IH5N WDUxX0VDU1BJX0NPTkZJR19TU0JQT0woc3BpLT5jaGlwX3NlbGVjdCk7CisJCWNmZyAmPSB+TVg1 MV9FQ1NQSV9DT05GSUdfU1NCUE9MKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAogCWlm IChjZmcgPT0gY3VycmVudF9jZmcpCiAJCXJldHVybiAwOwpAQCAtNjE0LDkgKzYxNCw5IEBAIHN0 YXRpYyB2b2lkIG14NTFfY29uZmlndXJlX2NwaGEoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lt eCwKIAljcGhhIF49IGZsaXBfY3BoYTsKIAogCWlmIChjcGhhKQotCQljZmcgfD0gTVg1MV9FQ1NQ SV9DT05GSUdfU0NMS1BIQShzcGktPmNoaXBfc2VsZWN0KTsKKwkJY2ZnIHw9IE1YNTFfRUNTUElf Q09ORklHX1NDTEtQSEEoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCWVsc2UKLQkJY2Zn ICY9IH5NWDUxX0VDU1BJX0NPTkZJR19TQ0xLUEhBKHNwaS0+Y2hpcF9zZWxlY3QpOworCQljZmcg Jj0gfk1YNTFfRUNTUElfQ09ORklHX1NDTEtQSEEoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkp OwogCiAJd3JpdGVsKGNmZywgc3BpX2lteC0+YmFzZSArIE1YNTFfRUNTUElfQ09ORklHKTsKIH0K QEAgLTc2OCw4ICs3NjgsOCBAQCBzdGF0aWMgaW50IG14MzFfcHJlcGFyZV90cmFuc2ZlcihzdHJ1 Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14LAogCQlyZWcgfD0gTVgzMV9DU1BJQ1RSTF9QT0w7CiAJ aWYgKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKQogCQlyZWcgfD0gTVgzMV9DU1BJQ1RSTF9TU1BP TDsKLQlpZiAoIXNwaS0+Y3NfZ3Bpb2QpCi0JCXJlZyB8PSAoc3BpLT5jaGlwX3NlbGVjdCkgPDwK KwlpZiAoIXNwaV9nZXRfY3NncGlvZChzcGksIDApKQorCQlyZWcgfD0gKHNwaV9nZXRfY2hpcHNl bGVjdChzcGksIDApKSA8PAogCQkJKGlzX2lteDM1X2NzcGkoc3BpX2lteCkgPyBNWDM1X0NTUElD VFJMX0NTX1NISUZUIDoKIAkJCQkJCSAgTVgzMV9DU1BJQ1RSTF9DU19TSElGVCk7CiAKQEAgLTg2 OCw4ICs4NjgsOCBAQCBzdGF0aWMgaW50IG14MjFfcHJlcGFyZV90cmFuc2ZlcihzdHJ1Y3Qgc3Bp X2lteF9kYXRhICpzcGlfaW14LAogCQlyZWcgfD0gTVgyMV9DU1BJQ1RSTF9QT0w7CiAJaWYgKHNw aS0+bW9kZSAmIFNQSV9DU19ISUdIKQogCQlyZWcgfD0gTVgyMV9DU1BJQ1RSTF9TU1BPTDsKLQlp ZiAoIXNwaS0+Y3NfZ3Bpb2QpCi0JCXJlZyB8PSBzcGktPmNoaXBfc2VsZWN0IDw8IE1YMjFfQ1NQ SUNUUkxfQ1NfU0hJRlQ7CisJaWYgKCFzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKKwkJcmVnIHw9 IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApIDw8IE1YMjFfQ1NQSUNUUkxfQ1NfU0hJRlQ7CiAK IAl3cml0ZWwocmVnLCBzcGlfaW14LT5iYXNlICsgTVhDX0NTUElDVFJMKTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zcGkvc3BpLWluZ2VuaWMuYyBiL2RyaXZlcnMvc3BpL3NwaS1pbmdlbmljLmMK aW5kZXggNzEzYTIzOGJlZTYzLi43ZDRiNTE1YTE2MGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3Bp L3NwaS1pbmdlbmljLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWluZ2VuaWMuYwpAQCAtMjYzLDcg KzI2Myw3IEBAIHN0YXRpYyBpbnQgc3BpX2luZ2VuaWNfcHJlcGFyZV9tZXNzYWdlKHN0cnVjdCBz cGlfY29udHJvbGxlciAqY3RsciwKIHsKIAlzdHJ1Y3QgaW5nZW5pY19zcGkgKnByaXYgPSBzcGlf Y29udHJvbGxlcl9nZXRfZGV2ZGF0YShjdGxyKTsKIAlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0g bWVzc2FnZS0+c3BpOwotCXVuc2lnbmVkIGludCBjcyA9IFJFR19TU0lDUjFfRlJNSEwgPDwgc3Bp LT5jaGlwX3NlbGVjdDsKKwl1bnNpZ25lZCBpbnQgY3MgPSBSRUdfU1NJQ1IxX0ZSTUhMIDw8IHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCXVuc2lnbmVkIGludCBzc2ljcjBfbWFzayA9IFJF R19TU0lDUjBfTE9PUCB8IFJFR19TU0lDUjBfRlNFTDsKIAl1bnNpZ25lZCBpbnQgc3NpY3IxX21h c2sgPSBSRUdfU1NJQ1IxX1BIQSB8IFJFR19TU0lDUjFfUE9MIHwgY3M7CiAJdW5zaWduZWQgaW50 IHNzaWNyMCA9IDAsIHNzaWNyMSA9IDA7CkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIGludCBz cGlfaW5nZW5pY19wcmVwYXJlX21lc3NhZ2Uoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLAog CiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9MT09QKQogCQlzc2ljcjAgfD0gUkVHX1NTSUNSMF9MT09Q OwotCWlmIChzcGktPmNoaXBfc2VsZWN0KQorCWlmIChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KSkKIAkJc3NpY3IwIHw9IFJFR19TU0lDUjBfRlNFTDsKIAogCWlmIChzcGktPm1vZGUgJiBTUElf Q1BIQSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1pbnRlbC5jIGIvZHJpdmVycy9zcGkv c3BpLWludGVsLmMKaW5kZXggZjQ2Nzk4NjhjNDlmLi5iYzZkMjIxNDllN2UgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvc3BpL3NwaS1pbnRlbC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1pbnRlbC5jCkBA IC00NTEsNyArNDUxLDcgQEAgc3RhdGljIHUzMiBpbnRlbF9zcGlfY2hpcF9hZGRyKGNvbnN0IHN0 cnVjdCBpbnRlbF9zcGkgKmlzcGksCiAJLyogUGljayB1cCB0aGUgY29ycmVjdCBzdGFydCBhZGRy ZXNzICovCiAJaWYgKCFtZW0pCiAJCXJldHVybiAwOwotCXJldHVybiBtZW0tPnNwaS0+Y2hpcF9z ZWxlY3QgPT0gMSA/IGlzcGktPmNoaXAwX3NpemUgOiAwOworCXJldHVybiAoc3BpX2dldF9jaGlw c2VsZWN0KG1lbS0+c3BpLCAwKSA9PSAxKSA/IGlzcGktPmNoaXAwX3NpemUgOiAwOwogfQogCiBz dGF0aWMgaW50IGludGVsX3NwaV9yZWFkX3JlZyhzdHJ1Y3QgaW50ZWxfc3BpICppc3BpLCBjb25z dCBzdHJ1Y3Qgc3BpX21lbSAqbWVtLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWpjb3Jl LmMgYi9kcml2ZXJzL3NwaS9zcGktamNvcmUuYwppbmRleCA3NGM4MzE5YzI5ZjEuLmM0MmEzMzU4 ZThjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWpjb3JlLmMKKysrIGIvZHJpdmVycy9z cGkvc3BpLWpjb3JlLmMKQEAgLTY4LDkgKzY4LDkgQEAgc3RhdGljIHZvaWQgamNvcmVfc3BpX3By b2dyYW0oc3RydWN0IGpjb3JlX3NwaSAqaHcpCiBzdGF0aWMgdm9pZCBqY29yZV9zcGlfY2hpcHNl bChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBib29sIHZhbHVlKQogewogCXN0cnVjdCBqY29yZV9z cGkgKmh3ID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGktPm1hc3Rlcik7Ci0JdTMyIGNzYml0 ID0gMVUgPDwgKDIgKiBzcGktPmNoaXBfc2VsZWN0KTsKKwl1MzIgY3NiaXQgPSAxVSA8PCAoMiAq IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAotCWRldl9kYmcoaHctPm1hc3Rlci0+ZGV2 LnBhcmVudCwgImNoaXBzZWxlY3QgJWRcbiIsIHNwaS0+Y2hpcF9zZWxlY3QpOworCWRldl9kYmco aHctPm1hc3Rlci0+ZGV2LnBhcmVudCwgImNoaXBzZWxlY3QgJWRcbiIsIHNwaV9nZXRfY2hpcHNl bGVjdChzcGksIDApKTsKIAogCWlmICh2YWx1ZSkKIAkJaHctPmNzX3JlZyB8PSBjc2JpdDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1sYW50aXEtc3NjLmMgYi9kcml2ZXJzL3NwaS9zcGkt bGFudGlxLXNzYy5jCmluZGV4IGFhZTI2ZjYyZWE4Ny4uNmIxOTFjZWZiMGQ0IDEwMDY0NAotLS0g YS9kcml2ZXJzL3NwaS9zcGktbGFudGlxLXNzYy5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1sYW50 aXEtc3NjLmMKQEAgLTM4OCwxMSArMzg4LDExIEBAIHN0YXRpYyBpbnQgbGFudGlxX3NzY19zZXR1 cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpZGV2KQogewogCXN0cnVjdCBzcGlfbWFzdGVyICptYXN0 ZXIgPSBzcGlkZXYtPm1hc3RlcjsKIAlzdHJ1Y3QgbGFudGlxX3NzY19zcGkgKnNwaSA9IHNwaV9t YXN0ZXJfZ2V0X2RldmRhdGEobWFzdGVyKTsKLQl1bnNpZ25lZCBpbnQgY3MgPSBzcGlkZXYtPmNo aXBfc2VsZWN0OworCXVuc2lnbmVkIGludCBjcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGlkZXYs IDApOwogCXUzMiBncG9jb247CiAKIAkvKiBHUElPcyBhcmUgdXNlZCBmb3IgQ1MgKi8KLQlpZiAo c3BpZGV2LT5jc19ncGlvZCkKKwlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaWRldiwgMCkpCiAJCXJl dHVybiAwOwogCiAJZGV2X2RiZyhzcGktPmRldiwgInVzaW5nIGludGVybmFsIGNoaXBzZWxlY3Qg JXVcbiIsIGNzKTsKQEAgLTc5Niw3ICs3OTYsNyBAQCBzdGF0aWMgdm9pZCBsYW50aXFfc3NjX2hh bmRsZV9lcnIoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciwKIHN0YXRpYyB2b2lkIGxhbnRpcV9z c2Nfc2V0X2NzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGlkZXYsIGJvb2wgZW5hYmxlKQogewogCXN0 cnVjdCBsYW50aXFfc3NjX3NwaSAqc3BpID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGlkZXYt Pm1hc3Rlcik7Ci0JdW5zaWduZWQgaW50IGNzID0gc3BpZGV2LT5jaGlwX3NlbGVjdDsKKwl1bnNp Z25lZCBpbnQgY3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpZGV2LCAwKTsKIAl1MzIgZmdwbzsK IAogCWlmICghIShzcGlkZXYtPm1vZGUgJiBTUElfQ1NfSElHSCkgPT0gZW5hYmxlKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9zcGkvc3BpLW1lbS5jIGIvZHJpdmVycy9zcGkvc3BpLW1lbS5jCmluZGV4 IDcwMTgzOGI2ZjBjNC4uZWRkNzQzMGQ0YzA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGkt bWVtLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLW1lbS5jCkBAIC0zMjUsNyArMzI1LDcgQEAgaW50 IHNwaV9tZW1fZXhlY19vcChzdHJ1Y3Qgc3BpX21lbSAqbWVtLCBjb25zdCBzdHJ1Y3Qgc3BpX21l bV9vcCAqb3ApCiAJaWYgKCFzcGlfbWVtX2ludGVybmFsX3N1cHBvcnRzX29wKG1lbSwgb3ApKQog CQlyZXR1cm4gLUVOT1RTVVBQOwogCi0JaWYgKGN0bHItPm1lbV9vcHMgJiYgY3Rsci0+bWVtX29w cy0+ZXhlY19vcCAmJiAhbWVtLT5zcGktPmNzX2dwaW9kKSB7CisJaWYgKGN0bHItPm1lbV9vcHMg JiYgY3Rsci0+bWVtX29wcy0+ZXhlY19vcCAmJiAhc3BpX2dldF9jc2dwaW9kKG1lbS0+c3BpLCAw KSkgewogCQlyZXQgPSBzcGlfbWVtX2FjY2Vzc19zdGFydChtZW0pOwogCQlpZiAocmV0KQogCQkJ cmV0dXJuIHJldDsKQEAgLTgwOCw3ICs4MDgsNyBAQCBpbnQgc3BpX21lbV9wb2xsX3N0YXR1cyhz dHJ1Y3Qgc3BpX21lbSAqbWVtLAogCSAgICBvcC0+ZGF0YS5kaXIgIT0gU1BJX01FTV9EQVRBX0lO KQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmIChjdGxyLT5tZW1fb3BzICYmIGN0bHItPm1lbV9v cHMtPnBvbGxfc3RhdHVzICYmICFtZW0tPnNwaS0+Y3NfZ3Bpb2QpIHsKKwlpZiAoY3Rsci0+bWVt X29wcyAmJiBjdGxyLT5tZW1fb3BzLT5wb2xsX3N0YXR1cyAmJiAhc3BpX2dldF9jc2dwaW9kKG1l bS0+c3BpLCAwKSkgewogCQlyZXQgPSBzcGlfbWVtX2FjY2Vzc19zdGFydChtZW0pOwogCQlpZiAo cmV0KQogCQkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1tZXNvbi1z cGljYy5jIGIvZHJpdmVycy9zcGkvc3BpLW1lc29uLXNwaWNjLmMKaW5kZXggZDQ3ZjI2MjNhNjBm Li4wZDQ1Y2Y4YTJlNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1tZXNvbi1zcGljYy5j CisrKyBiL2RyaXZlcnMvc3BpL3NwaS1tZXNvbi1zcGljYy5jCkBAIC01MDUsNyArNTA1LDcgQEAg c3RhdGljIGludCBtZXNvbl9zcGljY19wcmVwYXJlX21lc3NhZ2Uoc3RydWN0IHNwaV9tYXN0ZXIg Km1hc3RlciwKIAkJY29uZiB8PSBGSUVMRF9QUkVQKFNQSUNDX0RSQ1RMX01BU0ssIFNQSUNDX0RS Q1RMX0lHTk9SRSk7CiAKIAkvKiBTZWxlY3QgQ1MgKi8KLQljb25mIHw9IEZJRUxEX1BSRVAoU1BJ Q0NfQ1NfTUFTSywgc3BpLT5jaGlwX3NlbGVjdCk7CisJY29uZiB8PSBGSUVMRF9QUkVQKFNQSUND X0NTX01BU0ssIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAogCS8qIERlZmF1bHQgOGJp dCB3b3JkICovCiAJY29uZiB8PSBGSUVMRF9QUkVQKFNQSUNDX0JJVExFTkdUSF9NQVNLLCA4IC0g MSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktbWljcm9jaGlwLWNvcmUuYyBiL2RyaXZl cnMvc3BpL3NwaS1taWNyb2NoaXAtY29yZS5jCmluZGV4IGFlYWExZGE4OGYzOS4uMWE5MGZjZmU2 MDE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktbWljcm9jaGlwLWNvcmUuYworKysgYi9k cml2ZXJzL3NwaS9zcGktbWljcm9jaGlwLWNvcmUuYwpAQCAtMjQ3LDggKzI0Nyw4IEBAIHN0YXRp YyB2b2lkIG1jaHBfY29yZXNwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBk aXNhYmxlKQogCXN0cnVjdCBtY2hwX2NvcmVzcGkgKmNvcmVzcGkgPSBzcGlfbWFzdGVyX2dldF9k ZXZkYXRhKHNwaS0+bWFzdGVyKTsKIAogCXJlZyA9IG1jaHBfY29yZXNwaV9yZWFkKGNvcmVzcGks IFJFR19TTEFWRV9TRUxFQ1QpOwotCXJlZyAmPSB+QklUKHNwaS0+Y2hpcF9zZWxlY3QpOwotCXJl ZyB8PSAhZGlzYWJsZSA8PCBzcGktPmNoaXBfc2VsZWN0OworCXJlZyAmPSB+QklUKHNwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApKTsKKwlyZWcgfD0gIWRpc2FibGUgPDwgc3BpX2dldF9jaGlwc2Vs ZWN0KHNwaSwgMCk7CiAKIAltY2hwX2NvcmVzcGlfd3JpdGUoY29yZXNwaSwgUkVHX1NMQVZFX1NF TEVDVCwgcmVnKTsKIH0KQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgaW50IG1jaHBfY29yZXNw aV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCSAqLwogCWlmIChzcGktPm1vZGUgJiBT UElfQ1NfSElHSCkgewogCQlyZWcgPSBtY2hwX2NvcmVzcGlfcmVhZChjb3Jlc3BpLCBSRUdfU0xB VkVfU0VMRUNUKTsKLQkJcmVnIHw9IEJJVChzcGktPmNoaXBfc2VsZWN0KTsKKwkJcmVnIHw9IEJJ VChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJCW1jaHBfY29yZXNwaV93cml0ZShjb3Jl c3BpLCBSRUdfU0xBVkVfU0VMRUNULCByZWcpOwogCX0KIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3BpL3NwaS1tcGM1MTJ4LXBzYy5jIGIvZHJpdmVycy9zcGkvc3BpLW1wYzUxMngt cHNjLmMKaW5kZXggMDM2MzAzNTljZTcwLi5kYzcyZjRjNWI4MTYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3BpL3NwaS1tcGM1MTJ4LXBzYy5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1tcGM1MTJ4LXBz Yy5jCkBAIC0xMjcsMTMgKzEyNywxMyBAQCBzdGF0aWMgdm9pZCBtcGM1MTJ4X3BzY19zcGlfYWN0 aXZhdGVfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlvdXRfYmUzMihwc2NfYWRkcihtcHMs IGNjciksIGNjcik7CiAJbXBzLT5iaXRzX3Blcl93b3JkID0gY3MtPmJpdHNfcGVyX3dvcmQ7CiAK LQlpZiAoc3BpLT5jc19ncGlvZCkgeworCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkgewog CQlpZiAobXBzLT5jc19jb250cm9sKQogCQkJLyogYm9hcmRmaWxlIG92ZXJyaWRlICovCiAJCQlt cHMtPmNzX2NvbnRyb2woc3BpLCAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpID8gMSA6IDApOwog CQllbHNlCiAJCQkvKiBncGlvbGliIHdpbGwgZGVhbCB3aXRoIHRoZSBpbnZlcnNpb24gKi8KLQkJ CWdwaW9kX3NldF92YWx1ZShzcGktPmNzX2dwaW9kLCAxKTsKKwkJCWdwaW9kX3NldF92YWx1ZShz cGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSwgMSk7CiAJfQogfQogCkBAIC0xNDEsMTMgKzE0MSwxMyBA QCBzdGF0aWMgdm9pZCBtcGM1MTJ4X3BzY19zcGlfZGVhY3RpdmF0ZV9jcyhzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpKQogewogCXN0cnVjdCBtcGM1MTJ4X3BzY19zcGkgKm1wcyA9IHNwaV9tYXN0ZXJf Z2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwogCi0JaWYgKHNwaS0+Y3NfZ3Bpb2QpIHsKKwlpZiAo c3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpIHsKIAkJaWYgKG1wcy0+Y3NfY29udHJvbCkKIAkJCS8q IGJvYXJkZmlsZSBvdmVycmlkZSAqLwogCQkJbXBzLT5jc19jb250cm9sKHNwaSwgKHNwaS0+bW9k ZSAmIFNQSV9DU19ISUdIKSA/IDAgOiAxKTsKIAkJZWxzZQogCQkJLyogZ3Bpb2xpYiB3aWxsIGRl YWwgd2l0aCB0aGUgaW52ZXJzaW9uICovCi0JCQlncGlvZF9zZXRfdmFsdWUoc3BpLT5jc19ncGlv ZCwgMCk7CisJCQlncGlvZF9zZXRfdmFsdWUoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCksIDApOwog CX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLW1wYzUyeHguYyBiL2RyaXZlcnMv c3BpL3NwaS1tcGM1Mnh4LmMKaW5kZXggN2I2NGU2NGM2NWNmLi5jNDc0YTc2N2ZjNDggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1tcGM1Mnh4LmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLW1w YzUyeHguYwpAQCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyB2b2lkIG1wYzUyeHhfc3BpX2NoaXBz ZWwoc3RydWN0IG1wYzUyeHhfc3BpICptcywgaW50IHZhbHVlKQogCWludCBjczsKIAogCWlmICht cy0+Z3Bpb19jc19jb3VudCA+IDApIHsKLQkJY3MgPSBtcy0+bWVzc2FnZS0+c3BpLT5jaGlwX3Nl bGVjdDsKKwkJY3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3QobXMtPm1lc3NhZ2UtPnNwaSwgMCk7CiAJ CWdwaW9kX3NldF92YWx1ZShtcy0+Z3Bpb19jc1tjc10sIHZhbHVlKTsKIAl9IGVsc2UgewogCQlv dXRfOChtcy0+cmVncyArIFNQSV9QT1JUREFUQSwgdmFsdWUgPyAwIDogMHgwOCk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3NwaS9zcGktbXQ2NXh4LmMgYi9kcml2ZXJzL3NwaS9zcGktbXQ2NXh4LmMK aW5kZXggOWVhYjZjMjBkYmM1Li4yMWMzMjFmNDM3NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3Bp L3NwaS1tdDY1eHguYworKysgYi9kcml2ZXJzL3NwaS9zcGktbXQ2NXh4LmMKQEAgLTQyMSw3ICs0 MjEsNyBAQCBzdGF0aWMgaW50IG10a19zcGlfaHdfaW5pdChzdHJ1Y3Qgc3BpX21hc3RlciAqbWFz dGVyLAogCiAJLyogcGFkIHNlbGVjdCAqLwogCWlmIChtZGF0YS0+ZGV2X2NvbXAtPm5lZWRfcGFk X3NlbCkKLQkJd3JpdGVsKG1kYXRhLT5wYWRfc2VsW3NwaS0+Y2hpcF9zZWxlY3RdLAorCQl3cml0 ZWwobWRhdGEtPnBhZF9zZWxbc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCldLAogCQkgICAgICAg bWRhdGEtPmJhc2UgKyBTUElfUEFEX1NFTF9SRUcpOwogCiAJLyogdGljayBkZWxheSAqLwpAQCAt NzM1LDkgKzczNSw5IEBAIHN0YXRpYyBpbnQgbXRrX3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpKQogCWlmICghc3BpLT5jb250cm9sbGVyX2RhdGEpCiAJCXNwaS0+Y29udHJvbGxlcl9k YXRhID0gKHZvaWQgKikmbXRrX2RlZmF1bHRfY2hpcF9pbmZvOwogCi0JaWYgKG1kYXRhLT5kZXZf Y29tcC0+bmVlZF9wYWRfc2VsICYmIHNwaS0+Y3NfZ3Bpb2QpCisJaWYgKG1kYXRhLT5kZXZfY29t cC0+bmVlZF9wYWRfc2VsICYmIHNwaV9nZXRfY3NncGlvZChzcGksIDApKQogCQkvKiBDUyBkZS1h c3NlcnRlZCwgZ3Bpb2xpYiB3aWxsIGhhbmRsZSBpbnZlcnNpb24gKi8KLQkJZ3Bpb2RfZGlyZWN0 aW9uX291dHB1dChzcGktPmNzX2dwaW9kLCAwKTsKKwkJZ3Bpb2RfZGlyZWN0aW9uX291dHB1dChz cGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSwgMCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3BpL3NwaS1tdDc2MjEuYyBiL2RyaXZlcnMvc3BpL3NwaS1tdDc2MjEuYwppbmRl eCBjNGNjOGUyZjg1ZTIuLjNlOWQzOTZiMzNiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3Bp LW10NzYyMS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1tdDc2MjEuYwpAQCAtNzYsNyArNzYsNyBA QCBzdGF0aWMgaW5saW5lIHZvaWQgbXQ3NjIxX3NwaV93cml0ZShzdHJ1Y3QgbXQ3NjIxX3NwaSAq cnMsIHUzMiByZWcsIHUzMiB2YWwpCiBzdGF0aWMgdm9pZCBtdDc2MjFfc3BpX3NldF9jcyhzdHJ1 Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQgZW5hYmxlKQogewogCXN0cnVjdCBtdDc2MjFfc3BpICpy cyA9IHNwaWRldl90b19tdDc2MjFfc3BpKHNwaSk7Ci0JaW50IGNzID0gc3BpLT5jaGlwX3NlbGVj dDsKKwlpbnQgY3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAl1MzIgcG9sYXIgPSAw OwogCXUzMiBtYXN0ZXI7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1tdXguYyBiL2Ry aXZlcnMvc3BpL3NwaS1tdXguYwppbmRleCAwNzA5ZTk4N2JkNWEuLmZhOGMxZjc0MGM3MCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLW11eC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1tdXgu YwpAQCAtNTEsMjIgKzUxLDIyIEBAIHN0YXRpYyBpbnQgc3BpX211eF9zZWxlY3Qoc3RydWN0IHNw aV9kZXZpY2UgKnNwaSkKIAlzdHJ1Y3Qgc3BpX211eF9wcml2ICpwcml2ID0gc3BpX2NvbnRyb2xs ZXJfZ2V0X2RldmRhdGEoc3BpLT5jb250cm9sbGVyKTsKIAlpbnQgcmV0OwogCi0JcmV0ID0gbXV4 X2NvbnRyb2xfc2VsZWN0KHByaXYtPm11eCwgc3BpLT5jaGlwX3NlbGVjdCk7CisJcmV0ID0gbXV4 X2NvbnRyb2xfc2VsZWN0KHByaXYtPm11eCwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpZiAocHJpdi0+Y3VycmVudF9jcyA9PSBzcGkt PmNoaXBfc2VsZWN0KQorCWlmIChwcml2LT5jdXJyZW50X2NzID09IHNwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApKQogCQlyZXR1cm4gMDsKIAogCWRldl9kYmcoJnByaXYtPnNwaS0+ZGV2LCAic2V0 dGluZyB1cCB0aGUgbXV4IGZvciBjcyAlZFxuIiwKLQkJc3BpLT5jaGlwX3NlbGVjdCk7CisJCXNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAogCS8qIGNvcHkgdGhlIGNoaWxkIGRldmljZSdz IHNldHRpbmdzIGV4Y2VwdCBmb3IgdGhlIGNzICovCiAJcHJpdi0+c3BpLT5tYXhfc3BlZWRfaHog PSBzcGktPm1heF9zcGVlZF9oejsKIAlwcml2LT5zcGktPm1vZGUgPSBzcGktPm1vZGU7CiAJcHJp di0+c3BpLT5iaXRzX3Blcl93b3JkID0gc3BpLT5iaXRzX3Blcl93b3JkOwogCi0JcHJpdi0+Y3Vy cmVudF9jcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJcHJpdi0+Y3VycmVudF9jcyA9IHNwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJz L3NwaS9zcGktbXhpYy5jIGIvZHJpdmVycy9zcGkvc3BpLW14aWMuYwppbmRleCBhM2RiYTE3Mzkw ZWIuLjUyYmQyYzQ5YzM0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLW14aWMuYworKysg Yi9kcml2ZXJzL3NwaS9zcGktbXhpYy5jCkBAIC0zMDYsOCArMzA2LDggQEAgc3RhdGljIHUzMiBt eGljX3NwaV9wcmVwX2hjX2NmZyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCB1MzIgZmxhZ3MpCiAJ CW5pbyA9IDI7CiAKIAlyZXR1cm4gZmxhZ3MgfCBIQ19DRkdfTklPKG5pbykgfAotCSAgICAgICBI Q19DRkdfVFlQRShzcGktPmNoaXBfc2VsZWN0LCBIQ19DRkdfVFlQRV9TUElfTk9SKSB8Ci0JICAg ICAgIEhDX0NGR19TTFZfQUNUKHNwaS0+Y2hpcF9zZWxlY3QpIHwgSENfQ0ZHX0lETEVfU0lPX0xW TCgxKTsKKwkgICAgICAgSENfQ0ZHX1RZUEUoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCksIEhD X0NGR19UWVBFX1NQSV9OT1IpIHwKKwkgICAgICAgSENfQ0ZHX1NMVl9BQ1Qoc3BpX2dldF9jaGlw c2VsZWN0KHNwaSwgMCkpIHwgSENfQ0ZHX0lETEVfU0lPX0xWTCgxKTsKIH0KIAogc3RhdGljIHUz MiBteGljX3NwaV9tZW1fcHJlcF9vcF9jZmcoY29uc3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wLApA QCAtNDA1LDcgKzQwNSw3IEBAIHN0YXRpYyBzc2l6ZV90IG14aWNfc3BpX21lbV9kaXJtYXBfcmVh ZChzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBfZGVzYyAqZGVzYywKIAlsZW4gPSBtaW5fdChzaXplX3Qs IGxlbiwgbXhpYy0+bGluZWFyLnNpemUpOwogCXdyaXRlbChsZW4sIG14aWMtPnJlZ3MgKyBMUkRf UkFOR0UpOwogCXdyaXRlbChMTU9ERV9DTUQwKGRlc2MtPmluZm8ub3BfdG1wbC5jbWQub3Bjb2Rl KSB8Ci0JICAgICAgIExNT0RFX1NMVl9BQ1QoZGVzYy0+bWVtLT5zcGktPmNoaXBfc2VsZWN0KSB8 CisJICAgICAgIExNT0RFX1NMVl9BQ1Qoc3BpX2dldF9jaGlwc2VsZWN0KGRlc2MtPm1lbS0+c3Bp LCAwKSkgfAogCSAgICAgICBMTU9ERV9FTiwKIAkgICAgICAgbXhpYy0+cmVncyArIExSRF9DVFJM KTsKIApAQCAtNDQ5LDcgKzQ0OSw3IEBAIHN0YXRpYyBzc2l6ZV90IG14aWNfc3BpX21lbV9kaXJt YXBfd3JpdGUoc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rlc2MgKmRlc2MsCiAJbGVuID0gbWluX3Qo c2l6ZV90LCBsZW4sIG14aWMtPmxpbmVhci5zaXplKTsKIAl3cml0ZWwobGVuLCBteGljLT5yZWdz ICsgTFdSX1JBTkdFKTsKIAl3cml0ZWwoTE1PREVfQ01EMChkZXNjLT5pbmZvLm9wX3RtcGwuY21k Lm9wY29kZSkgfAotCSAgICAgICBMTU9ERV9TTFZfQUNUKGRlc2MtPm1lbS0+c3BpLT5jaGlwX3Nl bGVjdCkgfAorCSAgICAgICBMTU9ERV9TTFZfQUNUKHNwaV9nZXRfY2hpcHNlbGVjdChkZXNjLT5t ZW0tPnNwaSwgMCkpIHwKIAkgICAgICAgTE1PREVfRU4sCiAJICAgICAgIG14aWMtPnJlZ3MgKyBM V1JfQ1RSTCk7CiAKQEAgLTUyNCw3ICs1MjQsNyBAQCBzdGF0aWMgaW50IG14aWNfc3BpX21lbV9l eGVjX29wKHN0cnVjdCBzcGlfbWVtICptZW0sCiAJd3JpdGVsKEhDX0VOX0JJVCwgbXhpYy0+cmVn cyArIEhDX0VOKTsKIAogCXdyaXRlbChteGljX3NwaV9tZW1fcHJlcF9vcF9jZmcob3AsIG9wLT5k YXRhLm5ieXRlcyksCi0JICAgICAgIG14aWMtPnJlZ3MgKyBTU19DVFJMKG1lbS0+c3BpLT5jaGlw X3NlbGVjdCkpOworCSAgICAgICBteGljLT5yZWdzICsgU1NfQ1RSTChzcGlfZ2V0X2NoaXBzZWxl Y3QobWVtLT5zcGksIDApKSk7CiAKIAl3cml0ZWwocmVhZGwobXhpYy0+cmVncyArIEhDX0NGRykg fCBIQ19DRkdfTUFOX0NTX0FTU0VSVCwKIAkgICAgICAgbXhpYy0+cmVncyArIEhDX0NGRyk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktbXhzLmMgYi9kcml2ZXJzL3NwaS9zcGktbXhzLmMK aW5kZXggNTUxNzg1NzlmM2M2Li45ODA3NmFhNGIxYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3Bp L3NwaS1teHMuYworKysgYi9kcml2ZXJzL3NwaS9zcGktbXhzLmMKQEAgLTM2OSw3ICszNjksNyBA QCBzdGF0aWMgaW50IG14c19zcGlfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0 ZXIsCiAJLyogUHJvZ3JhbSBDUyByZWdpc3RlciBiaXRzIGhlcmUsIGl0IHdpbGwgYmUgdXNlZCBm b3IgYWxsIHRyYW5zZmVycy4gKi8KIAl3cml0ZWwoQk1fU1NQX0NUUkwwX1dBSVRfRk9SX0NNRCB8 IEJNX1NTUF9DVFJMMF9XQUlUX0ZPUl9JUlEsCiAJICAgICAgIHNzcC0+YmFzZSArIEhXX1NTUF9D VFJMMCArIFNUTVBfT0ZGU0VUX1JFR19DTFIpOwotCXdyaXRlbChteHNfc3BpX2NzX3RvX3JlZyht LT5zcGktPmNoaXBfc2VsZWN0KSwKKwl3cml0ZWwobXhzX3NwaV9jc190b19yZWcoc3BpX2dldF9j aGlwc2VsZWN0KG0tPnNwaSwgMCkpLAogCSAgICAgICBzc3AtPmJhc2UgKyBIV19TU1BfQ1RSTDAg KyBTVE1QX09GRlNFVF9SRUdfU0VUKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkodCwgJm0tPnRy YW5zZmVycywgdHJhbnNmZXJfbGlzdCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLW5w Y20tZml1LmMgYi9kcml2ZXJzL3NwaS9zcGktbnBjbS1maXUuYwppbmRleCA1NTlkM2E1YjQwNjIu Ljg2ZTM5Nzg4ODNmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLW5wY20tZml1LmMKKysr IGIvZHJpdmVycy9zcGkvc3BpLW5wY20tZml1LmMKQEAgLTI4OCw3ICsyODgsNyBAQCBzdGF0aWMg c3NpemVfdCBucGNtX2ZpdV9kaXJlY3RfcmVhZChzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBfZGVzYyAq ZGVzYywKIHsKIAlzdHJ1Y3QgbnBjbV9maXVfc3BpICpmaXUgPQogCQlzcGlfY29udHJvbGxlcl9n ZXRfZGV2ZGF0YShkZXNjLT5tZW0tPnNwaS0+bWFzdGVyKTsKLQlzdHJ1Y3QgbnBjbV9maXVfY2hp cCAqY2hpcCA9ICZmaXUtPmNoaXBbZGVzYy0+bWVtLT5zcGktPmNoaXBfc2VsZWN0XTsKKwlzdHJ1 Y3QgbnBjbV9maXVfY2hpcCAqY2hpcCA9ICZmaXUtPmNoaXBbc3BpX2dldF9jaGlwc2VsZWN0KGRl c2MtPm1lbS0+c3BpLCAwKV07CiAJdm9pZCBfX2lvbWVtICpzcmMgPSAodm9pZCBfX2lvbWVtICop KGNoaXAtPmZsYXNoX3JlZ2lvbl9tYXBwZWRfcHRyICsKIAkJCQkJICAgICBvZmZzKTsKIAl1OCAq YnVmX3J4ID0gYnVmOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyBzc2l6ZV90IG5wY21fZml1 X2RpcmVjdF93cml0ZShzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBfZGVzYyAqZGVzYywKIHsKIAlzdHJ1 Y3QgbnBjbV9maXVfc3BpICpmaXUgPQogCQlzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShkZXNj LT5tZW0tPnNwaS0+bWFzdGVyKTsKLQlzdHJ1Y3QgbnBjbV9maXVfY2hpcCAqY2hpcCA9ICZmaXUt PmNoaXBbZGVzYy0+bWVtLT5zcGktPmNoaXBfc2VsZWN0XTsKKwlzdHJ1Y3QgbnBjbV9maXVfY2hp cCAqY2hpcCA9ICZmaXUtPmNoaXBbc3BpX2dldF9jaGlwc2VsZWN0KGRlc2MtPm1lbS0+c3BpLCAw KV07CiAJdm9pZCBfX2lvbWVtICpkc3QgPSAodm9pZCBfX2lvbWVtICopKGNoaXAtPmZsYXNoX3Jl Z2lvbl9tYXBwZWRfcHRyICsKIAkJCQkJICAgICBvZmZzKTsKIAljb25zdCB1OCAqYnVmX3R4ID0g YnVmOwpAQCAtMzQ0LDcgKzM0NCw3IEBAIHN0YXRpYyBpbnQgbnBjbV9maXVfdW1hX3JlYWQoc3Ry dWN0IHNwaV9tZW0gKm1lbSwKIAogCXJlZ21hcF91cGRhdGVfYml0cyhmaXUtPnJlZ21hcCwgTlBD TV9GSVVfVU1BX0NUUywKIAkJCSAgIE5QQ01fRklVX1VNQV9DVFNfREVWX05VTSwKLQkJCSAgICht ZW0tPnNwaS0+Y2hpcF9zZWxlY3QgPDwKKwkJCSAgIChzcGlfZ2V0X2NoaXBzZWxlY3QobWVtLT5z cGksIDApIDw8CiAJCQkgICAgTlBDTV9GSVVfVU1BX0NUU19ERVZfTlVNX1NISUZUKSk7CiAJcmVn bWFwX3VwZGF0ZV9iaXRzKGZpdS0+cmVnbWFwLCBOUENNX0ZJVV9VTUFfQ01ELAogCQkJICAgTlBD TV9GSVVfVU1BX0NNRF9DTUQsIG9wLT5jbWQub3Bjb2RlKTsKQEAgLTM5OCw3ICszOTgsNyBAQCBz dGF0aWMgaW50IG5wY21fZml1X3VtYV93cml0ZShzdHJ1Y3Qgc3BpX21lbSAqbWVtLAogCiAJcmVn bWFwX3VwZGF0ZV9iaXRzKGZpdS0+cmVnbWFwLCBOUENNX0ZJVV9VTUFfQ1RTLAogCQkJICAgTlBD TV9GSVVfVU1BX0NUU19ERVZfTlVNLAotCQkJICAgKG1lbS0+c3BpLT5jaGlwX3NlbGVjdCA8PAor CQkJICAgKHNwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCkgPDwKIAkJCSAgICBOUENNX0ZJ VV9VTUFfQ1RTX0RFVl9OVU1fU0hJRlQpKTsKIAogCXJlZ21hcF91cGRhdGVfYml0cyhmaXUtPnJl Z21hcCwgTlBDTV9GSVVfVU1BX0NNRCwKQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdGF0aWMgaW50IG5w Y21fZml1X21hbnVhbHdyaXRlKHN0cnVjdCBzcGlfbWVtICptZW0sCiAKIAlyZWdtYXBfdXBkYXRl X2JpdHMoZml1LT5yZWdtYXAsIE5QQ01fRklVX1VNQV9DVFMsCiAJCQkgICBOUENNX0ZJVV9VTUFf Q1RTX0RFVl9OVU0sCi0JCQkgICAobWVtLT5zcGktPmNoaXBfc2VsZWN0IDw8CisJCQkgICAoc3Bp X2dldF9jaGlwc2VsZWN0KG1lbS0+c3BpLCAwKSA8PAogCQkJICAgIE5QQ01fRklVX1VNQV9DVFNf REVWX05VTV9TSElGVCkpOwogCXJlZ21hcF91cGRhdGVfYml0cyhmaXUtPnJlZ21hcCwgTlBDTV9G SVVfVU1BX0NUUywKIAkJCSAgIE5QQ01fRklVX1VNQV9DVFNfU1dfQ1MsIDApOwpAQCAtNTQ1LDcg KzU0NSw3IEBAIHN0YXRpYyBpbnQgbnBjbV9maXVfZXhlY19vcChzdHJ1Y3Qgc3BpX21lbSAqbWVt LCBjb25zdCBzdHJ1Y3Qgc3BpX21lbV9vcCAqb3ApCiB7CiAJc3RydWN0IG5wY21fZml1X3NwaSAq Zml1ID0KIAkJc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEobWVtLT5zcGktPm1hc3Rlcik7Ci0J c3RydWN0IG5wY21fZml1X2NoaXAgKmNoaXAgPSAmZml1LT5jaGlwW21lbS0+c3BpLT5jaGlwX3Nl bGVjdF07CisJc3RydWN0IG5wY21fZml1X2NoaXAgKmNoaXAgPSAmZml1LT5jaGlwW3NwaV9nZXRf Y2hpcHNlbGVjdChtZW0tPnNwaSwgMCldOwogCWludCByZXQgPSAwOwogCXU4ICpidWY7CiAKQEAg LTYwNSw3ICs2MDUsNyBAQCBzdGF0aWMgaW50IG5wY21fZml1X2Rpcm1hcF9jcmVhdGUoc3RydWN0 IHNwaV9tZW1fZGlybWFwX2Rlc2MgKmRlc2MpCiB7CiAJc3RydWN0IG5wY21fZml1X3NwaSAqZml1 ID0KIAkJc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoZGVzYy0+bWVtLT5zcGktPm1hc3Rlcik7 Ci0Jc3RydWN0IG5wY21fZml1X2NoaXAgKmNoaXAgPSAmZml1LT5jaGlwW2Rlc2MtPm1lbS0+c3Bp LT5jaGlwX3NlbGVjdF07CisJc3RydWN0IG5wY21fZml1X2NoaXAgKmNoaXAgPSAmZml1LT5jaGlw W3NwaV9nZXRfY2hpcHNlbGVjdChkZXNjLT5tZW0tPnNwaSwgMCldOwogCXN0cnVjdCByZWdtYXAg Kmdjcl9yZWdtYXA7CiAKIAlpZiAoIWZpdS0+cmVzX21lbSkgewpAQCAtNjI0LDcgKzYyNCw3IEBA IHN0YXRpYyBpbnQgbnBjbV9maXVfZGlybWFwX2NyZWF0ZShzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBf ZGVzYyAqZGVzYykKIAkJY2hpcC0+Zmxhc2hfcmVnaW9uX21hcHBlZF9wdHIgPQogCQkJZGV2bV9p b3JlbWFwKGZpdS0+ZGV2LCAoZml1LT5yZXNfbWVtLT5zdGFydCArCiAJCQkJCQkJKGZpdS0+aW5m by0+bWF4X21hcF9zaXplICoKLQkJCQkJCSAgICBkZXNjLT5tZW0tPnNwaS0+Y2hpcF9zZWxlY3Qp KSwKKwkJCQkJCSAgICBzcGlfZ2V0X2NoaXBzZWxlY3QoZGVzYy0+bWVtLT5zcGksIDApKSksCiAJ CQkJCSAgICAgKHUzMilkZXNjLT5pbmZvLmxlbmd0aCk7CiAJCWlmICghY2hpcC0+Zmxhc2hfcmVn aW9uX21hcHBlZF9wdHIpIHsKIAkJCWRldl93YXJuKGZpdS0+ZGV2LCAiRXJyb3IgbWFwcGluZyBt ZW1vcnkgcmVnaW9uLCBkaXJlY3QgcmVhZCBkaXNhYmxlZFxuIik7CkBAIC02NjksOSArNjY5LDkg QEAgc3RhdGljIGludCBucGNtX2ZpdV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCXN0 cnVjdCBucGNtX2ZpdV9zcGkgKmZpdSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKGN0cmwp OwogCXN0cnVjdCBucGNtX2ZpdV9jaGlwICpjaGlwOwogCi0JY2hpcCA9ICZmaXUtPmNoaXBbc3Bp LT5jaGlwX3NlbGVjdF07CisJY2hpcCA9ICZmaXUtPmNoaXBbc3BpX2dldF9jaGlwc2VsZWN0KHNw aSwgMCldOwogCWNoaXAtPmZpdSA9IGZpdTsKLQljaGlwLT5jaGlwc2VsZWN0ID0gc3BpLT5jaGlw X3NlbGVjdDsKKwljaGlwLT5jaGlwc2VsZWN0ID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7 CiAJY2hpcC0+Y2xrcmF0ZSA9IHNwaS0+bWF4X3NwZWVkX2h6OwogCiAJZml1LT5jbGtyYXRlID0g Y2xrX2dldF9yYXRlKGZpdS0+Y2xrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1ueHAt ZnNwaS5jIGIvZHJpdmVycy9zcGkvc3BpLW54cC1mc3BpLmMKaW5kZXggMWMxOTkxYTI2YzE1Li5l OWJhZjkzYWVmN2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1ueHAtZnNwaS5jCisrKyBi L2RyaXZlcnMvc3BpL3NwaS1ueHAtZnNwaS5jCkBAIC02NjMsNyArNjYzLDcgQEAgc3RhdGljIHZv aWQgbnhwX2ZzcGlfc2VsZWN0X21lbShzdHJ1Y3QgbnhwX2ZzcGkgKmYsIHN0cnVjdCBzcGlfZGV2 aWNlICpzcGkpCiAJICogUmV0dXJuLCBpZiBwcmV2aW91c2x5IHNlbGVjdGVkIHNsYXZlIGRldmlj ZSBpcyBzYW1lIGFzIGN1cnJlbnQKIAkgKiByZXF1ZXN0ZWQgc2xhdmUgZGV2aWNlLgogCSAqLwot CWlmIChmLT5zZWxlY3RlZCA9PSBzcGktPmNoaXBfc2VsZWN0KQorCWlmIChmLT5zZWxlY3RlZCA9 PSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkKIAkJcmV0dXJuOwogCiAJLyogUmVzZXQgRkxT SHh4Q1IwIHJlZ2lzdGVycyAqLwpAQCAtNjc2LDkgKzY3Niw5IEBAIHN0YXRpYyB2b2lkIG54cF9m c3BpX3NlbGVjdF9tZW0oc3RydWN0IG54cF9mc3BpICpmLCBzdHJ1Y3Qgc3BpX2RldmljZSAqc3Bp KQogCXNpemVfa2IgPSBGU1BJX0ZMU0hYQ1IwX1NaKGYtPm1lbW1hcF9waHlfc2l6ZSk7CiAKIAlm c3BpX3dyaXRlbChmLCBzaXplX2tiLCBmLT5pb2Jhc2UgKyBGU1BJX0ZMU0hBMUNSMCArCi0JCSAg ICA0ICogc3BpLT5jaGlwX3NlbGVjdCk7CisJCSAgICA0ICogc3BpX2dldF9jaGlwc2VsZWN0KHNw aSwgMCkpOwogCi0JZGV2X2RiZyhmLT5kZXYsICJTbGF2ZSBkZXZpY2UgW0NTOiV4XSBzZWxlY3Rl ZFxuIiwgc3BpLT5jaGlwX3NlbGVjdCk7CisJZGV2X2RiZyhmLT5kZXYsICJTbGF2ZSBkZXZpY2Ug W0NTOiV4XSBzZWxlY3RlZFxuIiwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJbnhw X2ZzcGlfY2xrX2Rpc2FibGVfdW5wcmVwKGYpOwogCkBAIC02OTAsNyArNjkwLDcgQEAgc3RhdGlj IHZvaWQgbnhwX2ZzcGlfc2VsZWN0X21lbShzdHJ1Y3QgbnhwX2ZzcGkgKmYsIHN0cnVjdCBzcGlf ZGV2aWNlICpzcGkpCiAJaWYgKHJldCkKIAkJcmV0dXJuOwogCi0JZi0+c2VsZWN0ZWQgPSBzcGkt PmNoaXBfc2VsZWN0OworCWYtPnNlbGVjdGVkID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7 CiB9CiAKIHN0YXRpYyBpbnQgbnhwX2ZzcGlfcmVhZF9haGIoc3RydWN0IG54cF9mc3BpICpmLCBj b25zdCBzdHJ1Y3Qgc3BpX21lbV9vcCAqb3ApCkBAIC0xMDU1LDcgKzEwNTUsNyBAQCBzdGF0aWMg Y29uc3QgY2hhciAqbnhwX2ZzcGlfZ2V0X25hbWUoc3RydWN0IHNwaV9tZW0gKm1lbSkKIAogCW5h bWUgPSBkZXZtX2thc3ByaW50ZihkZXYsIEdGUF9LRVJORUwsCiAJCQkgICAgICAiJXMtJWQiLCBk ZXZfbmFtZShmLT5kZXYpLAotCQkJICAgICAgbWVtLT5zcGktPmNoaXBfc2VsZWN0KTsKKwkJCSAg ICAgIHNwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCkpOwogCiAJaWYgKCFuYW1lKSB7CiAJ CWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBtZW1vcnkgZm9yIGN1c3RvbSBmbGFzaCBuYW1l XG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1vbWFwLTEwMGsuYyBiL2RyaXZlcnMv c3BpL3NwaS1vbWFwLTEwMGsuYwppbmRleCAwNjFmNzM5NGU1YjkuLmVjMDU3NzgyMTZhMSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLW9tYXAtMTAway5jCisrKyBiL2RyaXZlcnMvc3BpL3Nw aS1vbWFwLTEwMGsuYwpAQCAtMjY4LDcgKzI2OCw3IEBAIHN0YXRpYyBpbnQgb21hcDFfc3BpMTAw a19zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCQljcyA9IGRldm1fa3phbGxvYygmc3Bp LT5kZXYsIHNpemVvZigqY3MpLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFjcykKIAkJCXJldHVybiAt RU5PTUVNOwotCQljcy0+YmFzZSA9IHNwaTEwMGstPmJhc2UgKyBzcGktPmNoaXBfc2VsZWN0ICog MHgxNDsKKwkJY3MtPmJhc2UgPSBzcGkxMDBrLT5iYXNlICsgc3BpX2dldF9jaGlwc2VsZWN0KHNw aSwgMCkgKiAweDE0OwogCQlzcGktPmNvbnRyb2xsZXJfc3RhdGUgPSBjczsKIAl9CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1vbWFwLXV3aXJlLmMgYi9kcml2ZXJzL3NwaS9zcGktb21h cC11d2lyZS5jCmluZGV4IDI5MTk4ZTY4MTViMi4uN2Y5ZmU5MTQ3ZTYxIDEwMDY0NAotLS0gYS9k cml2ZXJzL3NwaS9zcGktb21hcC11d2lyZS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1vbWFwLXV3 aXJlLmMKQEAgLTE3OSw3ICsxNzksNyBAQCBzdGF0aWMgdm9pZCB1d2lyZV9jaGlwc2VsZWN0KHN0 cnVjdCBzcGlfZGV2aWNlICpzcGksIGludCB2YWx1ZSkKIAogCXcgPSB1d2lyZV9yZWFkX3JlZyhV V0lSRV9DU1IpOwogCW9sZF9jcyA9ICh3ID4+IDEwKSAmIDB4MDM7Ci0JaWYgKHZhbHVlID09IEJJ VEJBTkdfQ1NfSU5BQ1RJVkUgfHwgb2xkX2NzICE9IHNwaS0+Y2hpcF9zZWxlY3QpIHsKKwlpZiAo dmFsdWUgPT0gQklUQkFOR19DU19JTkFDVElWRSB8fCBvbGRfY3MgIT0gc3BpX2dldF9jaGlwc2Vs ZWN0KHNwaSwgMCkpIHsKIAkJLyogRGVzZWxlY3QgdGhpcyBDUywgb3IgdGhlIHByZXZpb3VzIENT ICovCiAJCXcgJj0gfkNTX0NNRDsKIAkJdXdpcmVfd3JpdGVfcmVnKFVXSVJFX0NTUiwgdyk7CkBA IC0xOTMsNyArMTkzLDcgQEAgc3RhdGljIHZvaWQgdXdpcmVfY2hpcHNlbGVjdChzdHJ1Y3Qgc3Bp X2RldmljZSAqc3BpLCBpbnQgdmFsdWUpCiAJCWVsc2UKIAkJCXV3aXJlX3dyaXRlX3JlZyhVV0lS RV9TUjQsIDApOwogCi0JCXcgPSBzcGktPmNoaXBfc2VsZWN0IDw8IDEwOworCQl3ID0gc3BpX2dl dF9jaGlwc2VsZWN0KHNwaSwgMCkgPDwgMTA7CiAJCXcgfD0gQ1NfQ01EOwogCQl1d2lyZV93cml0 ZV9yZWcoVVdJUkVfQ1NSLCB3KTsKIAl9CkBAIC0yMTAsNyArMjEwLDcgQEAgc3RhdGljIGludCB1 d2lyZV90eHJ4KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBzcGlfdHJhbnNmZXIgKnQp CiAJaWYgKCF0LT50eF9idWYgJiYgIXQtPnJ4X2J1ZikKIAkJcmV0dXJuIDA7CiAKLQl3ID0gc3Bp LT5jaGlwX3NlbGVjdCA8PCAxMDsKKwl3ID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkgPDwg MTA7CiAJdyB8PSBDU19DTUQ7CiAKIAlpZiAodC0+dHhfYnVmKSB7CkBAIC00MDgsNyArNDA4LDcg QEAgc3RhdGljIGludCB1d2lyZV9zZXR1cF90cmFuc2ZlcihzdHJ1Y3Qgc3BpX2RldmljZSAqc3Bp LCBzdHJ1Y3Qgc3BpX3RyYW5zZmVyICp0KQogCQlyYXRlIC89IDg7CiAJCWJyZWFrOwogCX0KLQlv bWFwX3V3aXJlX2NvbmZpZ3VyZV9tb2RlKHNwaS0+Y2hpcF9zZWxlY3QsIGZsYWdzKTsKKwlvbWFw X3V3aXJlX2NvbmZpZ3VyZV9tb2RlKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApLCBmbGFncyk7 CiAJcHJfZGVidWcoIiVzOiB1d2lyZSBmbGFncyAlMDJ4LCBhcm14b3IgJWx1IEtIeiwgU0NLICVs dSBLSHpcbiIsCiAJCQlfX2Z1bmNfXywgZmxhZ3MsCiAJCQljbGtfZ2V0X3JhdGUodXdpcmUtPmNr KSAvIDEwMDAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYyBiL2Ry aXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jCmluZGV4IDZiYTliMGQ3NzEwYi4uNWU0MDRkYTEx MmEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYworKysgYi9kcml2 ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYwpAQCAtMzc5LDcgKzM3OSw3IEBAIHN0YXRpYyB2b2lk IG9tYXAyX21jc3BpX3J4X2NhbGxiYWNrKHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IHNwaV9kZXZp Y2UgKnNwaSA9IGRhdGE7CiAJc3RydWN0IG9tYXAyX21jc3BpICptY3NwaSA9IHNwaV9tYXN0ZXJf Z2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwotCXN0cnVjdCBvbWFwMl9tY3NwaV9kbWEgKm1jc3Bp X2RtYSA9ICZtY3NwaS0+ZG1hX2NoYW5uZWxzW3NwaS0+Y2hpcF9zZWxlY3RdOworCXN0cnVjdCBv bWFwMl9tY3NwaV9kbWEgKm1jc3BpX2RtYSA9ICZtY3NwaS0+ZG1hX2NoYW5uZWxzW3NwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApXTsKIAogCS8qIFdlIG11c3QgZGlzYWJsZSB0aGUgRE1BIFJYIHJl cXVlc3QgKi8KIAlvbWFwMl9tY3NwaV9zZXRfZG1hX3JlcShzcGksIDEsIDApOwpAQCAtMzkxLDcg KzM5MSw3IEBAIHN0YXRpYyB2b2lkIG9tYXAyX21jc3BpX3R4X2NhbGxiYWNrKHZvaWQgKmRhdGEp CiB7CiAJc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IGRhdGE7CiAJc3RydWN0IG9tYXAyX21jc3Bp ICptY3NwaSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwotCXN0cnVjdCBv bWFwMl9tY3NwaV9kbWEgKm1jc3BpX2RtYSA9ICZtY3NwaS0+ZG1hX2NoYW5uZWxzW3NwaS0+Y2hp cF9zZWxlY3RdOworCXN0cnVjdCBvbWFwMl9tY3NwaV9kbWEgKm1jc3BpX2RtYSA9ICZtY3NwaS0+ ZG1hX2NoYW5uZWxzW3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXTsKIAogCS8qIFdlIG11c3Qg ZGlzYWJsZSB0aGUgRE1BIFRYIHJlcXVlc3QgKi8KIAlvbWFwMl9tY3NwaV9zZXRfZG1hX3JlcShz cGksIDAsIDApOwpAQCAtNDA4LDcgKzQwOCw3IEBAIHN0YXRpYyB2b2lkIG9tYXAyX21jc3BpX3R4 X2RtYShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCXN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3Jp cHRvciAqdHg7CiAKIAltY3NwaSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIp OwotCW1jc3BpX2RtYSA9ICZtY3NwaS0+ZG1hX2NoYW5uZWxzW3NwaS0+Y2hpcF9zZWxlY3RdOwor CW1jc3BpX2RtYSA9ICZtY3NwaS0+ZG1hX2NoYW5uZWxzW3NwaV9nZXRfY2hpcHNlbGVjdChzcGks IDApXTsKIAogCWRtYWVuZ2luZV9zbGF2ZV9jb25maWcobWNzcGlfZG1hLT5kbWFfdHgsICZjZmcp OwogCkBAIC00NDYsNyArNDQ2LDcgQEAgb21hcDJfbWNzcGlfcnhfZG1hKHN0cnVjdCBzcGlfZGV2 aWNlICpzcGksIHN0cnVjdCBzcGlfdHJhbnNmZXIgKnhmZXIsCiAJc3RydWN0IGRtYV9hc3luY190 eF9kZXNjcmlwdG9yICp0eDsKIAogCW1jc3BpID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGkt Pm1hc3Rlcik7Ci0JbWNzcGlfZG1hID0gJm1jc3BpLT5kbWFfY2hhbm5lbHNbc3BpLT5jaGlwX3Nl bGVjdF07CisJbWNzcGlfZG1hID0gJm1jc3BpLT5kbWFfY2hhbm5lbHNbc3BpX2dldF9jaGlwc2Vs ZWN0KHNwaSwgMCldOwogCWNvdW50ID0geGZlci0+bGVuOwogCiAJLyoKQEAgLTU5MSw3ICs1OTEs NyBAQCBvbWFwMl9tY3NwaV90eHJ4X2RtYShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3Qg c3BpX3RyYW5zZmVyICp4ZmVyKQogCWludAkJCXdhaXRfcmVzOwogCiAJbWNzcGkgPSBzcGlfbWFz dGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKLQltY3NwaV9kbWEgPSAmbWNzcGktPmRtYV9j aGFubmVsc1tzcGktPmNoaXBfc2VsZWN0XTsKKwltY3NwaV9kbWEgPSAmbWNzcGktPmRtYV9jaGFu bmVsc1tzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV07CiAKIAlpZiAoY3MtPndvcmRfbGVuIDw9 IDgpIHsKIAkJd2lkdGggPSBETUFfU0xBVkVfQlVTV0lEVEhfMV9CWVRFOwpAQCAtMTA2Miw4ICsx MDYyLDggQEAgc3RhdGljIGludCBvbWFwMl9tY3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAq c3BpKQogCQljcyA9IGt6YWxsb2Moc2l6ZW9mKCpjcyksIEdGUF9LRVJORUwpOwogCQlpZiAoIWNz KQogCQkJcmV0dXJuIC1FTk9NRU07Ci0JCWNzLT5iYXNlID0gbWNzcGktPmJhc2UgKyBzcGktPmNo aXBfc2VsZWN0ICogMHgxNDsKLQkJY3MtPnBoeXMgPSBtY3NwaS0+cGh5cyArIHNwaS0+Y2hpcF9z ZWxlY3QgKiAweDE0OworCQljcy0+YmFzZSA9IG1jc3BpLT5iYXNlICsgc3BpX2dldF9jaGlwc2Vs ZWN0KHNwaSwgMCkgKiAweDE0OworCQljcy0+cGh5cyA9IG1jc3BpLT5waHlzICsgc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgMCkgKiAweDE0OwogCQljcy0+bW9kZSA9IDA7CiAJCWNzLT5jaGNvbmYw ID0gMDsKIAkJY3MtPmNoY3RybDAgPSAwOwpAQCAtMTE0Miw3ICsxMTQyLDcgQEAgc3RhdGljIGlu dCBvbWFwMl9tY3NwaV90cmFuc2Zlcl9vbmUoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciwKIAl1 MzIJCQkJY2hjb25mOwogCiAJbWNzcGkgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKG1hc3Rlcik7 Ci0JbWNzcGlfZG1hID0gbWNzcGktPmRtYV9jaGFubmVscyArIHNwaS0+Y2hpcF9zZWxlY3Q7CisJ bWNzcGlfZG1hID0gbWNzcGktPmRtYV9jaGFubmVscyArIHNwaV9nZXRfY2hpcHNlbGVjdChzcGks IDApOwogCWNzID0gc3BpLT5jb250cm9sbGVyX3N0YXRlOwogCWNkID0gc3BpLT5jb250cm9sbGVy X2RhdGE7CiAKQEAgLTExNTgsNyArMTE1OCw3IEBAIHN0YXRpYyBpbnQgb21hcDJfbWNzcGlfdHJh bnNmZXJfb25lKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAKIAlvbWFwMl9tY3NwaV9zZXRf ZW5hYmxlKHNwaSwgMCk7CiAKLQlpZiAoc3BpLT5jc19ncGlvZCkKKwlpZiAoc3BpX2dldF9jc2dw aW9kKHNwaSwgMCkpCiAJCW9tYXAyX21jc3BpX3NldF9jcyhzcGksIHNwaS0+bW9kZSAmIFNQSV9D U19ISUdIKTsKIAogCWlmIChwYXJfb3ZlcnJpZGUgfHwKQEAgLTEyNDcsNyArMTI0Nyw3IEBAIHN0 YXRpYyBpbnQgb21hcDJfbWNzcGlfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0 ZXIsCiAKIAlvbWFwMl9tY3NwaV9zZXRfZW5hYmxlKHNwaSwgMCk7CiAKLQlpZiAoc3BpLT5jc19n cGlvZCkKKwlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCiAJCW9tYXAyX21jc3BpX3NldF9j cyhzcGksICEoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpKTsKIAogCWlmIChtY3NwaS0+Zmlmb19k ZXB0aCA+IDAgJiYgdCkKQEAgLTEyODksNyArMTI4OSw3IEBAIHN0YXRpYyBib29sIG9tYXAyX21j c3BpX2Nhbl9kbWEoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciwKIHsKIAlzdHJ1Y3Qgb21hcDJf bWNzcGkgKm1jc3BpID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGktPm1hc3Rlcik7CiAJc3Ry dWN0IG9tYXAyX21jc3BpX2RtYSAqbWNzcGlfZG1hID0KLQkJJm1jc3BpLT5kbWFfY2hhbm5lbHNb c3BpLT5jaGlwX3NlbGVjdF07CisJCSZtY3NwaS0+ZG1hX2NoYW5uZWxzW3NwaV9nZXRfY2hpcHNl bGVjdChzcGksIDApXTsKIAogCWlmICghbWNzcGlfZG1hLT5kbWFfcnggfHwgIW1jc3BpX2RtYS0+ ZG1hX3R4KQogCQlyZXR1cm4gZmFsc2U7CkBAIC0xMzA3LDcgKzEzMDcsNyBAQCBzdGF0aWMgc2l6 ZV90IG9tYXAyX21jc3BpX21heF94ZmVyX3NpemUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIHsK IAlzdHJ1Y3Qgb21hcDJfbWNzcGkgKm1jc3BpID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGkt Pm1hc3Rlcik7CiAJc3RydWN0IG9tYXAyX21jc3BpX2RtYSAqbWNzcGlfZG1hID0KLQkJJm1jc3Bp LT5kbWFfY2hhbm5lbHNbc3BpLT5jaGlwX3NlbGVjdF07CisJCSZtY3NwaS0+ZG1hX2NoYW5uZWxz W3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXTsKIAogCWlmIChtY3NwaS0+bWF4X3hmZXJfbGVu ICYmIG1jc3BpX2RtYS0+ZG1hX3J4KQogCQlyZXR1cm4gbWNzcGktPm1heF94ZmVyX2xlbjsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1vcmlvbi5jIGIvZHJpdmVycy9zcGkvc3BpLW9yaW9u LmMKaW5kZXggNTY1Y2Q0YzQ4ZDdiLi4xM2U2MDk3NjY5MmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv c3BpL3NwaS1vcmlvbi5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1vcmlvbi5jCkBAIC0zNDYsNyAr MzQ2LDcgQEAgc3RhdGljIHZvaWQgb3Jpb25fc3BpX3NldF9jcyhzdHJ1Y3Qgc3BpX2RldmljZSAq c3BpLCBib29sIGVuYWJsZSkKIAkgKiBhcyBpdCBpcyBoYW5kbGVkIGJ5IGEgR1BJTywgYnV0IHRo YXQgZG9lc24ndCBtYXR0ZXIuIFdoYXQgd2UgbmVlZAogCSAqIGlzIHRvIGRlYXNzZXJ0IHRoZSBv bGQgY2hpcCBzZWxlY3QgYW5kIGFzc2VydCBzb21lIG90aGVyIGNoaXAgc2VsZWN0LgogCSAqLwot CXZhbCB8PSBPUklPTl9TUElfQ1Moc3BpLT5jaGlwX3NlbGVjdCk7CisJdmFsIHw9IE9SSU9OX1NQ SV9DUyhzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAkvKgogCSAqIENoaXAgc2VsZWN0 IGxvZ2ljIGlzIGludmVydGVkIGZyb20gc3BpX3NldF9jcygpLiBGb3IgbGluZXMgdXNpbmcgYQpA QCAtNDcwLDcgKzQ3MCw3IEBAIG9yaW9uX3NwaV93cml0ZV9yZWFkKHN0cnVjdCBzcGlfZGV2aWNl ICpzcGksIHN0cnVjdCBzcGlfdHJhbnNmZXIgKnhmZXIpCiAJdW5zaWduZWQgaW50IGNvdW50Owog CWludCB3b3JkX2xlbjsKIAlzdHJ1Y3Qgb3Jpb25fc3BpICpvcmlvbl9zcGk7Ci0JaW50IGNzID0g c3BpLT5jaGlwX3NlbGVjdDsKKwlpbnQgY3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsK IAl2b2lkIF9faW9tZW0gKnZhZGRyOwogCiAJd29yZF9sZW4gPSBzcGktPmJpdHNfcGVyX3dvcmQ7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktcGNpMXh4eHguYyBiL2RyaXZlcnMvc3BpL3Nw aS1wY2kxeHh4eC5jCmluZGV4IGEzMWMzYjYxMmE0My4uMWM1NzMxNjQxYTA0IDEwMDY0NAotLS0g YS9kcml2ZXJzL3NwaS9zcGktcGNpMXh4eHguYworKysgYi9kcml2ZXJzL3NwaS9zcGktcGNpMXh4 eHguYwpAQCAtMTE2LDExICsxMTYsMTEgQEAgc3RhdGljIHZvaWQgcGNpMXh4eHhfc3BpX3NldF9j cyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBib29sIGVuYWJsZSkKIAlyZWd2YWwgPSByZWFkbChw YXItPnJlZ19iYXNlICsgU1BJX01TVF9DVExfUkVHX09GRlNFVChwLT5od19pbnN0KSk7CiAJaWYg KGVuYWJsZSkgewogCQlyZWd2YWwgJj0gflNQSV9NU1RfQ1RMX0RFVlNFTF9NQVNLOwotCQlyZWd2 YWwgfD0gKHNwaS0+Y2hpcF9zZWxlY3QgPDwgMjUpOworCQlyZWd2YWwgfD0gKHNwaV9nZXRfY2hp cHNlbGVjdChzcGksIDApIDw8IDI1KTsKIAkJd3JpdGVsKHJlZ3ZhbCwKIAkJICAgICAgIHBhci0+ cmVnX2Jhc2UgKyBTUElfTVNUX0NUTF9SRUdfT0ZGU0VUKHAtPmh3X2luc3QpKTsKIAl9IGVsc2Ug ewotCQlyZWd2YWwgJj0gfihzcGktPmNoaXBfc2VsZWN0IDw8IDI1KTsKKwkJcmVndmFsICY9IH4o c3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkgPDwgMjUpOwogCQl3cml0ZWwocmVndmFsLAogCQkg ICAgICAgcGFyLT5yZWdfYmFzZSArIFNQSV9NU1RfQ1RMX1JFR19PRkZTRVQocC0+aHdfaW5zdCkp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktcGljMzItc3FpLmMgYi9kcml2ZXJzL3Nw aS9zcGktcGljMzItc3FpLmMKaW5kZXggODZhZDE3NTk3ZjVmLi5lZDAyZDE3ODk3ZDEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1waWMzMi1zcWkuYworKysgYi9kcml2ZXJzL3NwaS9zcGkt cGljMzItc3FpLmMKQEAgLTI2Nyw3ICsyNjcsNyBAQCBzdGF0aWMgaW50IHBpYzMyX3NxaV9vbmVf dHJhbnNmZXIoc3RydWN0IHBpYzMyX3NxaSAqc3FpLAogCXUzMiBuYml0czsKIAogCS8qIERldmlj ZSBzZWxlY3Rpb24gKi8KLQliZF9jdHJsID0gc3BpLT5jaGlwX3NlbGVjdCA8PCBCRF9ERVZTRUxf U0hJRlQ7CisJYmRfY3RybCA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApIDw8IEJEX0RFVlNF TF9TSElGVDsKIAogCS8qIGhhbGYtZHVwbGV4OiBzZWxlY3QgdHJhbnNmZXIgYnVmZmVyLCBkaXJl Y3Rpb24gYW5kIGxhbmUgKi8KIAlpZiAoeGZlci0+cnhfYnVmKSB7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3NwaS9zcGktcGljMzIuYyBiL2RyaXZlcnMvc3BpL3NwaS1waWMzMi5jCmluZGV4IDdlNWMw OWE3ZDQ4OS4uMzg3NjczNjk0ZjkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktcGljMzIu YworKysgYi9kcml2ZXJzL3NwaS9zcGktcGljMzIuYwpAQCAtNTkxLDcgKzU5MSw3IEBAIHN0YXRp YyBpbnQgcGljMzJfc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJICogdW5yZWxp YWJsZS9lcnJvbmVvdXMgU1BJIHRyYW5zYWN0aW9ucy4KIAkgKiBUbyBhdm9pZCB0aGF0IHdlIHdp bGwgYWx3YXlzIGhhbmRsZSAvQ1MgYnkgdG9nZ2xpbmcgR1BJTy4KIAkgKi8KLQlpZiAoIXNwaS0+ Y3NfZ3Bpb2QpCisJaWYgKCFzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKIAkJcmV0dXJuIC1FSU5W QUw7CiAKIAlyZXR1cm4gMDsKQEAgLTYwMCw3ICs2MDAsNyBAQCBzdGF0aWMgaW50IHBpYzMyX3Nw aV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogc3RhdGljIHZvaWQgcGljMzJfc3BpX2Ns ZWFudXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIHsKIAkvKiBkZS1hY3RpdmF0ZSBjcy1ncGlv LCBncGlvbGliIHdpbGwgaGFuZGxlIGludmVyc2lvbiAqLwotCWdwaW9kX2RpcmVjdGlvbl9vdXRw dXQoc3BpLT5jc19ncGlvZCwgMCk7CisJZ3Bpb2RfZGlyZWN0aW9uX291dHB1dChzcGlfZ2V0X2Nz Z3Bpb2Qoc3BpLCAwKSwgMCk7CiB9CiAKIHN0YXRpYyBpbnQgcGljMzJfc3BpX2RtYV9wcmVwKHN0 cnVjdCBwaWMzMl9zcGkgKnBpYzMycywgc3RydWN0IGRldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zcGkvc3BpLXBsMDIyLmMgYi9kcml2ZXJzL3NwaS9zcGktcGwwMjIuYwppbmRleCBh MTdmZjgzOTExN2YuLjk4MjQwN2JjNWQ5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLXBs MDIyLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXBsMDIyLmMKQEAgLTE1ODcsOSArMTU4Nyw5IEBA IHN0YXRpYyBpbnQgcGwwMjJfdHJhbnNmZXJfb25lX21lc3NhZ2Uoc3RydWN0IHNwaV9tYXN0ZXIg Km1hc3RlciwKIAogCS8qIFNldHVwIHRoZSBTUEkgdXNpbmcgdGhlIHBlciBjaGlwIGNvbmZpZ3Vy YXRpb24gKi8KIAlwbDAyMi0+Y3VyX2NoaXAgPSBzcGlfZ2V0X2N0bGRhdGEobXNnLT5zcGkpOwot CXBsMDIyLT5jdXJfY3MgPSBtc2ctPnNwaS0+Y2hpcF9zZWxlY3Q7CisJcGwwMjItPmN1cl9jcyA9 IHNwaV9nZXRfY2hpcHNlbGVjdChtc2ctPnNwaSwgMCk7CiAJLyogVGhpcyBpcyBhbHdheXMgYXZh aWxhYmxlIGJ1dCBtYXkgYmUgc2V0IHRvIC1FTk9FTlQgKi8KLQlwbDAyMi0+Y3VyX2dwaW9kID0g bXNnLT5zcGktPmNzX2dwaW9kOworCXBsMDIyLT5jdXJfZ3Bpb2QgPSBzcGlfZ2V0X2NzZ3Bpb2Qo bXNnLT5zcGksIDApOwogCiAJcmVzdG9yZV9zdGF0ZShwbDAyMik7CiAJZmx1c2gocGwwMjIpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXB4YTJ4eC5jIGIvZHJpdmVycy9zcGkvc3BpLXB4 YTJ4eC5jCmluZGV4IDMyY2M4MmE4OWVjMS4uYWJjZGMxZWIxYTQwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3NwaS9zcGktcHhhMnh4LmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXB4YTJ4eC5jCkBAIC0z NjgsNyArMzY4LDcgQEAgc3RhdGljIHZvaWQgbHBzc19zc3Bfc2VsZWN0X2NzKHN0cnVjdCBzcGlf ZGV2aWNlICpzcGksCiAKIAl2YWx1ZSA9IF9fbHBzc19zc3BfcmVhZF9wcml2KGRydl9kYXRhLCBj b25maWctPnJlZ19jc19jdHJsKTsKIAotCWNzID0gc3BpLT5jaGlwX3NlbGVjdDsKKwljcyA9IHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCWNzIDw8PSBjb25maWctPmNzX3NlbF9zaGlmdDsK IAlpZiAoY3MgIT0gKHZhbHVlICYgY29uZmlnLT5jc19zZWxfbWFzaykpIHsKIAkJLyoKQEAgLTQy OSw3ICs0MjksNyBAQCBzdGF0aWMgdm9pZCBjc19hc3NlcnQoc3RydWN0IHNwaV9kZXZpY2UgKnNw aSkKIAkJc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoc3BpLT5jb250cm9sbGVyKTsKIAogCWlm IChkcnZfZGF0YS0+c3NwX3R5cGUgPT0gQ0U0MTAwX1NTUCkgewotCQlweGEyeHhfc3BpX3dyaXRl KGRydl9kYXRhLCBTU1NSLCBzcGktPmNoaXBfc2VsZWN0KTsKKwkJcHhhMnh4X3NwaV93cml0ZShk cnZfZGF0YSwgU1NTUiwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCQlyZXR1cm47CiAJ fQogCkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgaW50IHNldHVwKHN0cnVjdCBzcGlfZGV2 aWNlICpzcGkpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAogCQlpZiAoZHJ2X2RhdGEtPnNzcF90eXBl ID09IENFNDEwMF9TU1ApIHsKLQkJCWlmIChzcGktPmNoaXBfc2VsZWN0ID4gNCkgeworCQkJaWYg KHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApID4gNCkgewogCQkJCWRldl9lcnIoJnNwaS0+ZGV2 LAogCQkJCQkiZmFpbGVkIHNldHVwOiBjcyBudW1iZXIgbXVzdCBub3QgYmUgPiA0LlxuIik7CiAJ CQkJa2ZyZWUoY2hpcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktcWNvbS1xc3BpLmMg Yi9kcml2ZXJzL3NwaS9zcGktcWNvbS1xc3BpLmMKaW5kZXggYzMzNGRmZWM0MTE3Li4zM2MwNTZm ZDVmNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1xY29tLXFzcGkuYworKysgYi9kcml2 ZXJzL3NwaS9zcGktcWNvbS1xc3BpLmMKQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgaW50IHFj b21fcXNwaV9wcmVwYXJlX21lc3NhZ2Uoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciwKIAogCW1z dHJfY2ZnID0gcmVhZGwoY3RybC0+YmFzZSArIE1TVFJfQ09ORklHKTsKIAltc3RyX2NmZyAmPSB+ Q0hJUF9TRUxFQ1RfTlVNOwotCWlmIChtZXNzYWdlLT5zcGktPmNoaXBfc2VsZWN0KQorCWlmIChz cGlfZ2V0X2NoaXBzZWxlY3QobWVzc2FnZS0+c3BpLCAwKSkKIAkJbXN0cl9jZmcgfD0gQ0hJUF9T RUxFQ1RfTlVNOwogCiAJbXN0cl9jZmcgfD0gRkJfQ0xLX0VOIHwgUElOX1dQTiB8IFBJTl9IT0xE TiB8IFNCTF9FTiB8IEZVTExfQ1lDTEVfTU9ERTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3Nw aS1yYjR4eC5jIGIvZHJpdmVycy9zcGkvc3BpLXJiNHh4LmMKaW5kZXggOWY5N2QxOGEwNWMxLi4z Yzc5YTVkODVhYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1yYjR4eC5jCisrKyBiL2Ry aXZlcnMvc3BpL3NwaS1yYjR4eC5jCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIGludCByYjR4 eF90cmFuc2Zlcl9vbmUoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciwKIAkgKiBjb21tYW5kIHNl dCB3YXMgZGVzaWduZWQgdG8gYWxtb3N0IG5vdCBjbGFzaCB3aXRoIHRoYXQgb2YgdGhlCiAJICog Ym9vdCBmbGFzaC4KIAkgKi8KLQlpZiAoc3BpLT5jaGlwX3NlbGVjdCA9PSAyKQorCWlmIChzcGlf Z2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSA9PSAyKQogCQkvKiBNTUMgKi8KIAkJc3BpX2lvYyA9IEFS NzFYWF9TUElfSU9DX0NTMDsKIAllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktcm9j a2NoaXAtc2ZjLmMgYi9kcml2ZXJzL3NwaS9zcGktcm9ja2NoaXAtc2ZjLmMKaW5kZXggYmQ4N2Qz YzkyZGQzLi4yNDZlODE0NTNlYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1yb2NrY2hp cC1zZmMuYworKysgYi9kcml2ZXJzL3NwaS9zcGktcm9ja2NoaXAtc2ZjLmMKQEAgLTM0Niw3ICsz NDYsNyBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX3NmY194ZmVyX3NldHVwKHN0cnVjdCByb2NrY2hp cF9zZmMgKnNmYywKIAogCS8qIHNldCB0aGUgQ29udHJvbGxlciAqLwogCWN0cmwgfD0gU0ZDX0NU UkxfUEhBU0VfU0VMX05FR0VUSVZFOwotCWNtZCB8PSBtZW0tPnNwaS0+Y2hpcF9zZWxlY3QgPDwg U0ZDX0NNRF9DU19TSElGVDsKKwljbWQgfD0gc3BpX2dldF9jaGlwc2VsZWN0KG1lbS0+c3BpLCAw KSA8PCBTRkNfQ01EX0NTX1NISUZUOwogCiAJZGV2X2RiZyhzZmMtPmRldiwgInNmYyBhZGRyLm5i eXRlcz0leCh4JWQpIGR1bW15Lm5ieXRlcz0leCh4JWQpXG4iLAogCQlvcC0+YWRkci5uYnl0ZXMs IG9wLT5hZGRyLmJ1c3dpZHRoLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXJvY2tjaGlw LmMgYi9kcml2ZXJzL3NwaS9zcGktcm9ja2NoaXAuYwppbmRleCA3OTI0MmRjNTI3MmQuLmFkYzU2 MzhlZmY0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLXJvY2tjaGlwLmMKKysrIGIvZHJp dmVycy9zcGkvc3BpLXJvY2tjaGlwLmMKQEAgLTI0NiwyOCArMjQ2LDMwIEBAIHN0YXRpYyB2b2lk IHJvY2tjaGlwX3NwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBlbmFibGUp CiAJYm9vbCBjc19hc3NlcnRlZCA9IHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIID8gZW5hYmxlIDog IWVuYWJsZTsKIAogCS8qIFJldHVybiBpbW1lZGlhdGVseSBmb3Igbm8tb3AgKi8KLQlpZiAoY3Nf YXNzZXJ0ZWQgPT0gcnMtPmNzX2Fzc2VydGVkW3NwaS0+Y2hpcF9zZWxlY3RdKQorCWlmIChjc19h c3NlcnRlZCA9PSBycy0+Y3NfYXNzZXJ0ZWRbc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCldKQog CQlyZXR1cm47CiAKIAlpZiAoY3NfYXNzZXJ0ZWQpIHsKIAkJLyogS2VlcCB0aGluZ3MgcG93ZXJl ZCBhcyBsb25nIGFzIENTIGlzIGFzc2VydGVkICovCiAJCXBtX3J1bnRpbWVfZ2V0X3N5bmMocnMt PmRldik7CiAKLQkJaWYgKHNwaS0+Y3NfZ3Bpb2QpCisJCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qoc3Bp LCAwKSkKIAkJCVJPQ0tDSElQX1NQSV9TRVRfQklUUyhycy0+cmVncyArIFJPQ0tDSElQX1NQSV9T RVIsIDEpOwogCQllbHNlCi0JCQlST0NLQ0hJUF9TUElfU0VUX0JJVFMocnMtPnJlZ3MgKyBST0NL Q0hJUF9TUElfU0VSLCBCSVQoc3BpLT5jaGlwX3NlbGVjdCkpOworCQkJUk9DS0NISVBfU1BJX1NF VF9CSVRTKHJzLT5yZWdzICsgUk9DS0NISVBfU1BJX1NFUiwKKwkJCQkJICAgICAgQklUKHNwaV9n ZXRfY2hpcHNlbGVjdChzcGksIDApKSk7CiAJfSBlbHNlIHsKLQkJaWYgKHNwaS0+Y3NfZ3Bpb2Qp CisJCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKIAkJCVJPQ0tDSElQX1NQSV9DTFJfQklU Uyhycy0+cmVncyArIFJPQ0tDSElQX1NQSV9TRVIsIDEpOwogCQllbHNlCi0JCQlST0NLQ0hJUF9T UElfQ0xSX0JJVFMocnMtPnJlZ3MgKyBST0NLQ0hJUF9TUElfU0VSLCBCSVQoc3BpLT5jaGlwX3Nl bGVjdCkpOworCQkJUk9DS0NISVBfU1BJX0NMUl9CSVRTKHJzLT5yZWdzICsgUk9DS0NISVBfU1BJ X1NFUiwKKwkJCQkJICAgICAgQklUKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSk7CiAKIAkJ LyogRHJvcCByZWZlcmVuY2UgZnJvbSB3aGVuIHdlIGZpcnN0IGFzc2VydGVkIENTICovCiAJCXBt X3J1bnRpbWVfcHV0KHJzLT5kZXYpOwogCX0KIAotCXJzLT5jc19hc3NlcnRlZFtzcGktPmNoaXBf c2VsZWN0XSA9IGNzX2Fzc2VydGVkOworCXJzLT5jc19hc3NlcnRlZFtzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKV0gPSBjc19hc3NlcnRlZDsKIH0KIAogc3RhdGljIHZvaWQgcm9ja2NoaXBfc3Bp X2hhbmRsZV9lcnIoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLApAQCAtNTQxLDcgKzU0Myw3 IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfc3BpX2NvbmZpZyhzdHJ1Y3Qgcm9ja2NoaXBfc3BpICpy cywKIAlpZiAoc3BpLT5tb2RlICYgU1BJX0xTQl9GSVJTVCkKIAkJY3IwIHw9IENSMF9GQk1fTFNC IDw8IENSMF9GQk1fT0ZGU0VUOwogCWlmIChzcGktPm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJY3Iw IHw9IEJJVChzcGktPmNoaXBfc2VsZWN0KSA8PCBDUjBfU09JX09GRlNFVDsKKwkJY3IwIHw9IEJJ VChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkgPDwgQ1IwX1NPSV9PRkZTRVQ7CiAKIAlpZiAo eGZlci0+cnhfYnVmICYmIHhmZXItPnR4X2J1ZikKIAkJY3IwIHw9IENSMF9YRk1fVFIgPDwgQ1Iw X1hGTV9PRkZTRVQ7CkBAIC03MjQsNyArNzI2LDcgQEAgc3RhdGljIGludCByb2NrY2hpcF9zcGlf c2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlzdHJ1Y3Qgcm9ja2NoaXBfc3BpICpycyA9 IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKHNwaS0+Y29udHJvbGxlcik7CiAJdTMyIGNyMDsK IAotCWlmICghc3BpLT5jc19ncGlvZCAmJiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpICYmICFy cy0+Y3NfaGlnaF9zdXBwb3J0ZWQpIHsKKwlpZiAoIXNwaV9nZXRfY3NncGlvZChzcGksIDApICYm IChzcGktPm1vZGUgJiBTUElfQ1NfSElHSCkgJiYgIXJzLT5jc19oaWdoX3N1cHBvcnRlZCkgewog CQlkZXZfd2Fybigmc3BpLT5kZXYsICJzZXR1cDogbm9uIEdQSU8gQ1MgY2FuJ3QgYmUgYWN0aXZl LWhpZ2hcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC03MzUsMTAgKzczNywxMCBAQCBz dGF0aWMgaW50IHJvY2tjaGlwX3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCiAJ Y3IwICY9IH4oMHgzIDw8IENSMF9TQ1BIX09GRlNFVCk7CiAJY3IwIHw9ICgoc3BpLT5tb2RlICYg MHgzKSA8PCBDUjBfU0NQSF9PRkZTRVQpOwotCWlmIChzcGktPm1vZGUgJiBTUElfQ1NfSElHSCAm JiBzcGktPmNoaXBfc2VsZWN0IDw9IDEpCi0JCWNyMCB8PSBCSVQoc3BpLT5jaGlwX3NlbGVjdCkg PDwgQ1IwX1NPSV9PRkZTRVQ7Ci0JZWxzZSBpZiAoc3BpLT5jaGlwX3NlbGVjdCA8PSAxKQotCQlj cjAgJj0gfihCSVQoc3BpLT5jaGlwX3NlbGVjdCkgPDwgQ1IwX1NPSV9PRkZTRVQpOworCWlmIChz cGktPm1vZGUgJiBTUElfQ1NfSElHSCAmJiBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSA8PSAx KQorCQljcjAgfD0gQklUKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSA8PCBDUjBfU09JX09G RlNFVDsKKwllbHNlIGlmIChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSA8PSAxKQorCQljcjAg Jj0gfihCSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpIDw8IENSMF9TT0lfT0ZGU0VUKTsK IAogCXdyaXRlbF9yZWxheGVkKGNyMCwgcnMtPnJlZ3MgKyBST0NLQ0hJUF9TUElfQ1RSTFIwKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXJzcGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1y c3BpLmMKaW5kZXggNDExYjEzMDdiN2ZkLi40ZDRiOThmOGViODAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3BpL3NwaS1yc3BpLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXJzcGkuYwpAQCAtOTUwLDcg Kzk1MCw3IEBAIHN0YXRpYyBpbnQgcnNwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQog CXN0cnVjdCByc3BpX2RhdGEgKnJzcGkgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShzcGkt PmNvbnRyb2xsZXIpOwogCXU4IHNzbHA7CiAKLQlpZiAoc3BpLT5jc19ncGlvZCkKKwlpZiAoc3Bp X2dldF9jc2dwaW9kKHNwaSwgMCkpCiAJCXJldHVybiAwOwogCiAJcG1fcnVudGltZV9nZXRfc3lu YygmcnNwaS0+cGRldi0+ZGV2KTsKQEAgLTk1OCw5ICs5NTgsOSBAQCBzdGF0aWMgaW50IHJzcGlf c2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAogCXNzbHAgPSByc3BpX3JlYWQ4KHJzcGks IFJTUElfU1NMUCk7CiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKQotCQlzc2xwIHw9IFNT TFBfU1NMUChzcGktPmNoaXBfc2VsZWN0KTsKKwkJc3NscCB8PSBTU0xQX1NTTFAoc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgMCkpOwogCWVsc2UKLQkJc3NscCAmPSB+U1NMUF9TU0xQKHNwaS0+Y2hp cF9zZWxlY3QpOworCQlzc2xwICY9IH5TU0xQX1NTTFAoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwg MCkpOwogCXJzcGlfd3JpdGU4KHJzcGksIHNzbHAsIFJTUElfU1NMUCk7CiAKIAlzcGluX3VubG9j a19pcnEoJnJzcGktPmxvY2spOwpAQCAtMTAwMSw4ICsxMDAxLDggQEAgc3RhdGljIGludCByc3Bp X3ByZXBhcmVfbWVzc2FnZShzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIsCiAJCXJzcGktPnNw Y21kIHw9IFNQQ01EX0xTQkY7CiAKIAkvKiBDb25maWd1cmUgc2xhdmUgc2lnbmFsIHRvIGFzc2Vy dCAqLwotCXJzcGktPnNwY21kIHw9IFNQQ01EX1NTTEEoc3BpLT5jc19ncGlvZCA/IHJzcGktPmN0 bHItPnVudXNlZF9uYXRpdmVfY3MKLQkJCQkJCTogc3BpLT5jaGlwX3NlbGVjdCk7CisJcnNwaS0+ c3BjbWQgfD0gU1BDTURfU1NMQShzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSA/IHJzcGktPmN0bHIt PnVudXNlZF9uYXRpdmVfY3MKKwkJCQkJCTogc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwog CiAJLyogQ01PUyBvdXRwdXQgbW9kZSBhbmQgTU9TSSBzaWduYWwgZnJvbSBwcmV2aW91cyB0cmFu c2ZlciAqLwogCXJzcGktPnNwcGNyID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1z M2M2NHh4LmMgYi9kcml2ZXJzL3NwaS9zcGktczNjNjR4eC5jCmluZGV4IDcxZDMyNGVjOWE3MC4u ZjY2ODJiZmU0ODRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktczNjNjR4eC5jCisrKyBi L2RyaXZlcnMvc3BpL3NwaS1zM2M2NHh4LmMKQEAgLTg5MSw3ICs4OTEsNyBAQCBzdGF0aWMgaW50 IHMzYzY0eHhfc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAKIAkvKiBOVUxMIGlz IGZpbmUsIHdlIGp1c3QgYXZvaWQgdXNpbmcgdGhlIEZCIGRlbGF5ICg9MCkgKi8KIAlpZiAoSVNf RVJSKGNzKSkgewotCQlkZXZfZXJyKCZzcGktPmRldiwgIk5vIENTIGZvciBTUEkoJWQpXG4iLCBz cGktPmNoaXBfc2VsZWN0KTsKKwkJZGV2X2Vycigmc3BpLT5kZXYsICJObyBDUyBmb3IgU1BJKCVk KVxuIiwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1zYzE4aXM2MDIuYyBiL2RyaXZlcnMvc3Bp L3NwaS1zYzE4aXM2MDIuYwppbmRleCA5ODNiMzYyMWJjMmEuLmExMmFkYzY4NzMxYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9zcGkvc3BpLXNjMThpczYwMi5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1z YzE4aXM2MDIuYwpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgaW50IHNjMThpczYwMl90eHJ4KHN0 cnVjdCBzYzE4aXM2MDIgKmh3LCBzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm1zZywKIAogCWlmIChody0+ dGxlbiA9PSAwKSB7CiAJCS8qIEZpcnN0IGJ5dGUgKEkyQyBjb21tYW5kKSBpcyBjaGlwIHNlbGVj dCAqLwotCQlody0+YnVmZmVyWzBdID0gMSA8PCBtc2ctPnNwaS0+Y2hpcF9zZWxlY3Q7CisJCWh3 LT5idWZmZXJbMF0gPSAxIDw8IHNwaV9nZXRfY2hpcHNlbGVjdChtc2ctPnNwaSwgMCk7CiAJCWh3 LT50bGVuID0gMTsKIAkJaHctPnJpbmRleCA9IDA7CiAJfQpAQCAtMjI5LDcgKzIyOSw3IEBAIHN0 YXRpYyBpbnQgc2MxOGlzNjAyX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJc3RydWN0 IHNjMThpczYwMiAqaHcgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKIAog CS8qIFNDMThJUzYwMiBkb2VzIG5vdCBzdXBwb3J0IENTMiAqLwotCWlmIChody0+aWQgPT0gc2Mx OGlzNjAyICYmIHNwaS0+Y2hpcF9zZWxlY3QgPT0gMikKKwlpZiAoaHctPmlkID09IHNjMThpczYw MiAmJiAoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkgPT0gMikpCiAJCXJldHVybiAtRU5YSU87 CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1zaC1tc2lvZi5jIGIv ZHJpdmVycy9zcGkvc3BpLXNoLW1zaW9mLmMKaW5kZXggOWJjYTNkMDc2ZjA1Li44N2NiOTc1Y2U5 ZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1zaC1tc2lvZi5jCisrKyBiL2RyaXZlcnMv c3BpL3NwaS1zaC1tc2lvZi5jCkBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBzaF9tc2lv Zl9zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkJc3BpX2NvbnRyb2xsZXJfZ2V0 X2RldmRhdGEoc3BpLT5jb250cm9sbGVyKTsKIAl1MzIgY2xyLCBzZXQsIHRtcDsKIAotCWlmIChz cGktPmNzX2dwaW9kIHx8IHNwaV9jb250cm9sbGVyX2lzX3NsYXZlKHAtPmN0bHIpKQorCWlmIChz cGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSB8fCBzcGlfY29udHJvbGxlcl9pc19zbGF2ZShwLT5jdGxy KSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAocC0+bmF0aXZlX2NzX2luaXRlZCAmJgpAQCAtNTg3LDEx ICs1ODcsMTEgQEAgc3RhdGljIGludCBzaF9tc2lvZl9wcmVwYXJlX21lc3NhZ2Uoc3RydWN0IHNw aV9jb250cm9sbGVyICpjdGxyLAogCXUzMiBzcywgY3NfaGlnaDsKIAogCS8qIENvbmZpZ3VyZSBw aW5zIGJlZm9yZSBhc3NlcnRpbmcgQ1MgKi8KLQlpZiAoc3BpLT5jc19ncGlvZCkgeworCWlmIChz cGlfZ2V0X2NzZ3Bpb2QoKHN0cnVjdCBzcGlfZGV2aWNlICopc3BpLCAwKSkgewogCQlzcyA9IGN0 bHItPnVudXNlZF9uYXRpdmVfY3M7CiAJCWNzX2hpZ2ggPSBwLT5uYXRpdmVfY3NfaGlnaDsKIAl9 IGVsc2UgewotCQlzcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJCXNzID0gc3BpX2dldF9jaGlwc2Vs ZWN0KChzdHJ1Y3Qgc3BpX2RldmljZSAqKXNwaSwgMCk7CiAJCWNzX2hpZ2ggPSAhIShzcGktPm1v ZGUgJiBTUElfQ1NfSElHSCk7CiAJfQogCXNoX21zaW9mX3NwaV9zZXRfcGluX3JlZ3MocCwgc3Ms ICEhKHNwaS0+bW9kZSAmIFNQSV9DUE9MKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1z aC1zY2kuYyBiL2RyaXZlcnMvc3BpL3NwaS1zaC1zY2kuYwppbmRleCA4ZjMwNTMxZTE0MTguLjMw MDNkZDdjNzJjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLXNoLXNjaS5jCisrKyBiL2Ry aXZlcnMvc3BpL3NwaS1zaC1zY2kuYwpAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyB2b2lkIHNo X3NjaV9zcGlfY2hpcHNlbGVjdChzdHJ1Y3Qgc3BpX2RldmljZSAqZGV2LCBpbnQgdmFsdWUpCiAJ c3RydWN0IHNoX3NjaV9zcGkgKnNwID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShkZXYtPm1hc3Rl cik7CiAKIAlpZiAoc3AtPmluZm8tPmNoaXBfc2VsZWN0KQotCQkoc3AtPmluZm8tPmNoaXBfc2Vs ZWN0KShzcC0+aW5mbywgZGV2LT5jaGlwX3NlbGVjdCwgdmFsdWUpOworCQkoc3AtPmluZm8tPmNo aXBfc2VsZWN0KShzcC0+aW5mbywgc3BpX2dldF9jaGlwc2VsZWN0KGRldiwgMCksIHZhbHVlKTsK IH0KIAogc3RhdGljIGludCBzaF9zY2lfc3BpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KmRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1zaWZpdmUuYyBiL2RyaXZlcnMvc3Bp L3NwaS1zaWZpdmUuYwppbmRleCBlMjllODVjZWU4OGEuLjc4NDBlZjk0MGZmOCAxMDA2NDQKLS0t IGEvZHJpdmVycy9zcGkvc3BpLXNpZml2ZS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1zaWZpdmUu YwpAQCAtMTM1LDEzICsxMzUsMTMgQEAgc2lmaXZlX3NwaV9wcmVwYXJlX21lc3NhZ2Uoc3RydWN0 IHNwaV9tYXN0ZXIgKm1hc3Rlciwgc3RydWN0IHNwaV9tZXNzYWdlICptc2cpCiAKIAkvKiBVcGRh dGUgdGhlIGNoaXAgc2VsZWN0IHBvbGFyaXR5ICovCiAJaWYgKGRldmljZS0+bW9kZSAmIFNQSV9D U19ISUdIKQotCQlzcGktPmNzX2luYWN0aXZlICY9IH5CSVQoZGV2aWNlLT5jaGlwX3NlbGVjdCk7 CisJCXNwaS0+Y3NfaW5hY3RpdmUgJj0gfkJJVChzcGlfZ2V0X2NoaXBzZWxlY3QoZGV2aWNlLCAw KSk7CiAJZWxzZQotCQlzcGktPmNzX2luYWN0aXZlIHw9IEJJVChkZXZpY2UtPmNoaXBfc2VsZWN0 KTsKKwkJc3BpLT5jc19pbmFjdGl2ZSB8PSBCSVQoc3BpX2dldF9jaGlwc2VsZWN0KGRldmljZSwg MCkpOwogCXNpZml2ZV9zcGlfd3JpdGUoc3BpLCBTSUZJVkVfU1BJX1JFR19DU0RFRiwgc3BpLT5j c19pbmFjdGl2ZSk7CiAKIAkvKiBTZWxlY3QgdGhlIGNvcnJlY3QgZGV2aWNlICovCi0Jc2lmaXZl X3NwaV93cml0ZShzcGksIFNJRklWRV9TUElfUkVHX0NTSUQsIGRldmljZS0+Y2hpcF9zZWxlY3Qp OworCXNpZml2ZV9zcGlfd3JpdGUoc3BpLCBTSUZJVkVfU1BJX1JFR19DU0lELCBzcGlfZ2V0X2No aXBzZWxlY3QoZGV2aWNlLCAwKSk7CiAKIAkvKiBTZXQgY2xvY2sgbW9kZSAqLwogCXNpZml2ZV9z cGlfd3JpdGUoc3BpLCBTSUZJVkVfU1BJX1JFR19TQ0tNT0RFLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zcGkvc3BpLXNuLWYtb3NwaS5jIGIvZHJpdmVycy9zcGkvc3BpLXNuLWYtb3NwaS5jCmluZGV4 IDMzM2IyMmRmZDhkYi4uMTE3MTdjYWU1MTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGkt c24tZi1vc3BpLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXNuLWYtb3NwaS5jCkBAIC0yNjcsNyAr MjY3LDcgQEAgc3RhdGljIHZvaWQgZl9vc3BpX2NvbmZpZ19pbmRpcl9wcm90b2NvbChzdHJ1Y3Qg Zl9vc3BpICpvc3BpLAogCWludCB1bml0OwogCiAJLyogU2V0IG9uZSBjaGlwIHNlbGVjdCAqLwot CXdyaXRlbChCSVQoc3BpLT5jaGlwX3NlbGVjdCksIG9zcGktPmJhc2UgKyBPU1BJX1NTRUwpOwor CXdyaXRlbChCSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpLCBvc3BpLT5iYXNlICsgT1NQ SV9TU0VMKTsKIAogCW1vZGUgPSBmX29zcGlfZ2V0X21vZGUob3NwaSwgb3AtPmNtZC5idXN3aWR0 aCwgMSk7CiAJcHJvdCB8PSBGSUVMRF9QUkVQKE9TUElfUFJPVF9NT0RFX0NPREVfTUFTSywgbW9k ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktc3Qtc3NjNC5jIGIvZHJpdmVycy9zcGkv c3BpLXN0LXNzYzQuYwppbmRleCA4NDNiZTgwMzY5NmIuLjU3YWFhZTM5ZTVmOCAxMDA2NDQKLS0t IGEvZHJpdmVycy9zcGkvc3BpLXN0LXNzYzQuYworKysgYi9kcml2ZXJzL3NwaS9zcGktc3Qtc3Nj NC5jCkBAIC0xODMsNyArMTgzLDcgQEAgc3RhdGljIGludCBzcGlfc3Rfc2V0dXAoc3RydWN0IHNw aV9kZXZpY2UgKnNwaSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKCFzcGktPmNzX2dw aW9kKSB7CisJaWYgKCFzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkgewogCQlkZXZfZXJyKCZzcGkt PmRldiwgIm5vIHZhbGlkIGdwaW8gYXNzaWduZWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktc3RtMzItcXNwaS5jIGIvZHJpdmVycy9zcGkv c3BpLXN0bTMyLXFzcGkuYwppbmRleCA5MTMxNjYwYzFhZmIuLmI5ZTYxMzcyZGNmYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9zcGkvc3BpLXN0bTMyLXFzcGkuYworKysgYi9kcml2ZXJzL3NwaS9zcGkt c3RtMzItcXNwaS5jCkBAIC0zNTksNyArMzU5LDcgQEAgc3RhdGljIGludCBzdG0zMl9xc3BpX2dl dF9tb2RlKHU4IGJ1c3dpZHRoKQogc3RhdGljIGludCBzdG0zMl9xc3BpX3NlbmQoc3RydWN0IHNw aV9kZXZpY2UgKnNwaSwgY29uc3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQogewogCXN0cnVjdCBz dG0zMl9xc3BpICpxc3BpID0gc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIp OwotCXN0cnVjdCBzdG0zMl9xc3BpX2ZsYXNoICpmbGFzaCA9ICZxc3BpLT5mbGFzaFtzcGktPmNo aXBfc2VsZWN0XTsKKwlzdHJ1Y3Qgc3RtMzJfcXNwaV9mbGFzaCAqZmxhc2ggPSAmcXNwaS0+Zmxh c2hbc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCldOwogCXUzMiBjY3IsIGNyOwogCWludCB0aW1l b3V0LCBlcnIgPSAwLCBlcnJfcG9sbF9zdGF0dXMgPSAwOwogCkBAIC01NjQsNyArNTY0LDcgQEAg c3RhdGljIGludCBzdG0zMl9xc3BpX3RyYW5zZmVyX29uZV9tZXNzYWdlKHN0cnVjdCBzcGlfY29u dHJvbGxlciAqY3RybCwKIAlzdHJ1Y3Qgc3BpX21lbV9vcCBvcDsKIAlpbnQgcmV0ID0gMDsKIAot CWlmICghc3BpLT5jc19ncGlvZCkKKwlpZiAoIXNwaV9nZXRfY3NncGlvZChzcGksIDApKQogCQly ZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAlyZXQgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KHFz cGktPmRldik7CkBAIC01NzMsNyArNTczLDcgQEAgc3RhdGljIGludCBzdG0zMl9xc3BpX3RyYW5z ZmVyX29uZV9tZXNzYWdlKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RybCwKIAogCW11dGV4X2xv Y2soJnFzcGktPmxvY2spOwogCi0JZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHNwaS0+Y3NfZ3Bp b2QsIHRydWUpOworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChzcGlfZ2V0X2NzZ3Bpb2Qoc3Bp LCAwKSwgdHJ1ZSk7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRyYW5zZmVyLCAmbXNnLT50cmFu c2ZlcnMsIHRyYW5zZmVyX2xpc3QpIHsKIAkJdTggZHVtbXlfYnl0ZXMgPSAwOwpAQCAtNjI2LDcg KzYyNiw3IEBAIHN0YXRpYyBpbnQgc3RtMzJfcXNwaV90cmFuc2Zlcl9vbmVfbWVzc2FnZShzdHJ1 Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0cmwsCiAJfQogCiBlbmRfb2ZfdHJhbnNmZXI6Ci0JZ3Bpb2Rf c2V0X3ZhbHVlX2NhbnNsZWVwKHNwaS0+Y3NfZ3Bpb2QsIGZhbHNlKTsKKwlncGlvZF9zZXRfdmFs dWVfY2Fuc2xlZXAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCksIGZhbHNlKTsKIAogCW11dGV4X3Vu bG9jaygmcXNwaS0+bG9jayk7CiAKQEAgLTY2OSw4ICs2NjksOCBAQCBzdGF0aWMgaW50IHN0bTMy X3FzcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAogCXByZXNjID0gRElWX1JPVU5E X1VQKHFzcGktPmNsa19yYXRlLCBzcGktPm1heF9zcGVlZF9oeikgLSAxOwogCi0JZmxhc2ggPSAm cXNwaS0+Zmxhc2hbc3BpLT5jaGlwX3NlbGVjdF07Ci0JZmxhc2gtPmNzID0gc3BpLT5jaGlwX3Nl bGVjdDsKKwlmbGFzaCA9ICZxc3BpLT5mbGFzaFtzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV07 CisJZmxhc2gtPmNzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJZmxhc2gtPnByZXNj ID0gcHJlc2M7CiAKIAltdXRleF9sb2NrKCZxc3BpLT5sb2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3BpL3NwaS1zdW40aS5jIGIvZHJpdmVycy9zcGkvc3BpLXN1bjRpLmMKaW5kZXggNjAwMGQw NzYxMjA2Li4xZTNiMTkyMjA1OWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1zdW40aS5j CisrKyBiL2RyaXZlcnMvc3BpL3NwaS1zdW40aS5jCkBAIC0xNjcsNyArMTY3LDcgQEAgc3RhdGlj IHZvaWQgc3VuNGlfc3BpX3NldF9jcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBib29sIGVuYWJs ZSkKIAlyZWcgPSBzdW40aV9zcGlfcmVhZChzc3BpLCBTVU40SV9DVExfUkVHKTsKIAogCXJlZyAm PSB+U1VONElfQ1RMX0NTX01BU0s7Ci0JcmVnIHw9IFNVTjRJX0NUTF9DUyhzcGktPmNoaXBfc2Vs ZWN0KTsKKwlyZWcgfD0gU1VONElfQ1RMX0NTKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsK IAogCS8qIFdlIHdhbnQgdG8gY29udHJvbCB0aGUgY2hpcCBzZWxlY3QgbWFudWFsbHkgKi8KIAly ZWcgfD0gU1VONElfQ1RMX0NTX01BTlVBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1z dW42aS5jIGIvZHJpdmVycy9zcGkvc3BpLXN1bjZpLmMKaW5kZXggMjNhZDA1MjUyOGRiLi40NmU3 YzQ0NjUwM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1zdW42aS5jCisrKyBiL2RyaXZl cnMvc3BpL3NwaS1zdW42aS5jCkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIHZvaWQgc3VuNmlf c3BpX3NldF9jcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBib29sIGVuYWJsZSkKIAogCXJlZyA9 IHN1bjZpX3NwaV9yZWFkKHNzcGksIFNVTjZJX1RGUl9DVExfUkVHKTsKIAlyZWcgJj0gflNVTjZJ X1RGUl9DVExfQ1NfTUFTSzsKLQlyZWcgfD0gU1VONklfVEZSX0NUTF9DUyhzcGktPmNoaXBfc2Vs ZWN0KTsKKwlyZWcgfD0gU1VONklfVEZSX0NUTF9DUyhzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KSk7CiAKIAlpZiAoZW5hYmxlKQogCQlyZWcgfD0gU1VONklfVEZSX0NUTF9DU19MRVZFTDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1zeW5xdWFjZXIuYyBiL2RyaXZlcnMvc3BpL3NwaS1z eW5xdWFjZXIuYwppbmRleCBkYzE4OGY5MjAyYzkuLjczM2RjOGM1MmIwOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9zcGkvc3BpLXN5bnF1YWNlci5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1zeW5xdWFj ZXIuYwpAQCAtMjUwLDcgKzI1MCw3IEBAIHN0YXRpYyBpbnQgc3lucXVhY2VyX3NwaV9jb25maWco c3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciwKIAl9CiAKIAltb2RlID0gc3BpLT5tb2RlOwotCWNz ID0gc3BpLT5jaGlwX3NlbGVjdDsKKwljcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwog CXNwZWVkID0geGZlci0+c3BlZWRfaHo7CiAJYnB3ID0geGZlci0+Yml0c19wZXJfd29yZDsKIApA QCAtMzQ0LDcgKzM0NCw3IEBAIHN0YXRpYyBpbnQgc3lucXVhY2VyX3NwaV9jb25maWcoc3RydWN0 IHNwaV9tYXN0ZXIgKm1hc3RlciwKIAlzc3BpLT5icHcgPSBicHc7CiAJc3NwaS0+bW9kZSA9IG1v ZGU7CiAJc3NwaS0+c3BlZWQgPSBzcGVlZDsKLQlzc3BpLT5jcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7 CisJc3NwaS0+Y3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAlzc3BpLT5idXNfd2lk dGggPSBidXNfd2lkdGg7CiAKIAlyZXR1cm4gMDsKQEAgLTQ4OCw3ICs0ODgsNyBAQCBzdGF0aWMg dm9pZCBzeW5xdWFjZXJfc3BpX3NldF9jcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBib29sIGVu YWJsZSkKIAl2YWwgPSByZWFkbChzc3BpLT5yZWdzICsgU1lOUVVBQ0VSX0hTU1BJX1JFR19ETVNU QVJUKTsKIAl2YWwgJj0gfihTWU5RVUFDRVJfSFNTUElfRE1QU0VMX0NTX01BU0sgPDwKIAkJIFNZ TlFVQUNFUl9IU1NQSV9ETVBTRUxfQ1NfU0hJRlQpOwotCXZhbCB8PSBzcGktPmNoaXBfc2VsZWN0 IDw8IFNZTlFVQUNFUl9IU1NQSV9ETVBTRUxfQ1NfU0hJRlQ7CisJdmFsIHw9IHNwaV9nZXRfY2hp cHNlbGVjdChzcGksIDApIDw8IFNZTlFVQUNFUl9IU1NQSV9ETVBTRUxfQ1NfU0hJRlQ7CiAKIAlp ZiAoIWVuYWJsZSkKIAkJdmFsIHw9IFNZTlFVQUNFUl9IU1NQSV9ETVNUT1BfU1RPUDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3BpL3NwaS10ZWdyYTExNC5jIGIvZHJpdmVycy9zcGkvc3BpLXRlZ3Jh MTE0LmMKaW5kZXggZDliZTgwZTNlMWJjLi5lMzM0MTgzMjQxZDcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3BpL3NwaS10ZWdyYTExNC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS10ZWdyYTExNC5jCkBA IC03NDcsNyArNzQ3LDcgQEAgc3RhdGljIGludCB0ZWdyYV9zcGlfc2V0X2h3X2NzX3RpbWluZyhz dHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCWlmIChzZXR1cF9kbHkgJiYgaG9sZF9kbHkpIHsKIAkJ c2V0dXBfaG9sZCA9IFNQSV9TRVRVUF9IT0xEKHNldHVwX2RseSAtIDEsIGhvbGRfZGx5IC0gMSk7 CiAJCXNwaV9jc190aW1pbmcgPSBTUElfQ1NfU0VUVVBfSE9MRCh0c3BpLT5zcGlfY3NfdGltaW5n MSwKLQkJCQkJCSAgc3BpLT5jaGlwX3NlbGVjdCwKKwkJCQkJCSAgc3BpX2dldF9jaGlwc2VsZWN0 KHNwaSwgMCksCiAJCQkJCQkgIHNldHVwX2hvbGQpOwogCQlpZiAodHNwaS0+c3BpX2NzX3RpbWlu ZzEgIT0gc3BpX2NzX3RpbWluZykgewogCQkJdHNwaS0+c3BpX2NzX3RpbWluZzEgPSBzcGlfY3Nf dGltaW5nOwpAQCAtNzYwLDkgKzc2MCw5IEBAIHN0YXRpYyBpbnQgdGVncmFfc3BpX3NldF9od19j c190aW1pbmcoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkJaW5hY3RpdmVfY3ljbGVzLS07CiAJ Y3Nfc3RhdGUgPSBpbmFjdGl2ZV9jeWNsZXMgPyAwIDogMTsKIAlzcGlfY3NfdGltaW5nID0gdHNw aS0+c3BpX2NzX3RpbWluZzI7Ci0JU1BJX1NFVF9DU19BQ1RJVkVfQkVUV0VFTl9QQUNLRVRTKHNw aV9jc190aW1pbmcsIHNwaS0+Y2hpcF9zZWxlY3QsCisJU1BJX1NFVF9DU19BQ1RJVkVfQkVUV0VF Tl9QQUNLRVRTKHNwaV9jc190aW1pbmcsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApLAogCQkJ CQkgIGNzX3N0YXRlKTsKLQlTUElfU0VUX0NZQ0xFU19CRVRXRUVOX1BBQ0tFVFMoc3BpX2NzX3Rp bWluZywgc3BpLT5jaGlwX3NlbGVjdCwKKwlTUElfU0VUX0NZQ0xFU19CRVRXRUVOX1BBQ0tFVFMo c3BpX2NzX3RpbWluZywgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCksCiAJCQkJICAgICAgIGlu YWN0aXZlX2N5Y2xlcyk7CiAJaWYgKHRzcGktPnNwaV9jc190aW1pbmcyICE9IHNwaV9jc190aW1p bmcpIHsKIAkJdHNwaS0+c3BpX2NzX3RpbWluZzIgPSBzcGlfY3NfdGltaW5nOwpAQCAtODMxLDgg KzgzMSw4IEBAIHN0YXRpYyB1MzIgdGVncmFfc3BpX3NldHVwX3RyYW5zZmVyX29uZShzdHJ1Y3Qg c3BpX2RldmljZSAqc3BpLAogCQkJdGVncmFfc3BpX3dyaXRlbCh0c3BpLCBjb21tYW5kMSwgU1BJ X0NPTU1BTkQxKTsKIAogCQkvKiBHUElPIGJhc2VkIGNoaXAgc2VsZWN0IGNvbnRyb2wgKi8KLQkJ aWYgKHNwaS0+Y3NfZ3Bpb2QpCi0JCQlncGlvZF9zZXRfdmFsdWUoc3BpLT5jc19ncGlvZCwgMSk7 CisJCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKKwkJCWdwaW9kX3NldF92YWx1ZShzcGlf Z2V0X2NzZ3Bpb2Qoc3BpLCAwKSwgMSk7CiAKIAkJaWYgKGlzX3NpbmdsZV94ZmVyICYmICEodC0+ Y3NfY2hhbmdlKSkgewogCQkJdHNwaS0+dXNlX2h3X2Jhc2VkX2NzID0gdHJ1ZTsKQEAgLTg0Niw3 ICs4NDYsNyBAQCBzdGF0aWMgdTMyIHRlZ3JhX3NwaV9zZXR1cF90cmFuc2Zlcl9vbmUoc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSwKIAkJCQljb21tYW5kMSAmPSB+U1BJX0NTX1NXX1ZBTDsKIAkJfQog Ci0JCWlmICh0c3BpLT5sYXN0X3VzZWRfY3MgIT0gc3BpLT5jaGlwX3NlbGVjdCkgeworCQlpZiAo dHNwaS0+bGFzdF91c2VkX2NzICE9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSB7CiAJCQlp ZiAoY2RhdGEgJiYgY2RhdGEtPnR4X2Nsa190YXBfZGVsYXkpCiAJCQkJdHhfdGFwID0gY2RhdGEt PnR4X2Nsa190YXBfZGVsYXk7CiAJCQlpZiAoY2RhdGEgJiYgY2RhdGEtPnJ4X2Nsa190YXBfZGVs YXkpCkBAIC04NTUsNyArODU1LDcgQEAgc3RhdGljIHUzMiB0ZWdyYV9zcGlfc2V0dXBfdHJhbnNm ZXJfb25lKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJCQkJICAgU1BJX1JYX1RBUF9ERUxBWShy eF90YXApOwogCQkJaWYgKGNvbW1hbmQyICE9IHRzcGktPmRlZl9jb21tYW5kMl9yZWcpCiAJCQkJ dGVncmFfc3BpX3dyaXRlbCh0c3BpLCBjb21tYW5kMiwgU1BJX0NPTU1BTkQyKTsKLQkJCXRzcGkt Pmxhc3RfdXNlZF9jcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJCQl0c3BpLT5sYXN0X3VzZWRfY3Mg PSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAkJfQogCiAJfSBlbHNlIHsKQEAgLTg5Niw3 ICs4OTYsNyBAQCBzdGF0aWMgaW50IHRlZ3JhX3NwaV9zdGFydF90cmFuc2Zlcl9vbmUoc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSwKIAkJY29tbWFuZDEgfD0gU1BJX1RYX0VOOwogCQl0c3BpLT5jdXJf ZGlyZWN0aW9uIHw9IERBVEFfRElSX1RYOwogCX0KLQljb21tYW5kMSB8PSBTUElfQ1NfU0VMKHNw aS0+Y2hpcF9zZWxlY3QpOworCWNvbW1hbmQxIHw9IFNQSV9DU19TRUwoc3BpX2dldF9jaGlwc2Vs ZWN0KHNwaSwgMCkpOwogCXRlZ3JhX3NwaV93cml0ZWwodHNwaSwgY29tbWFuZDEsIFNQSV9DT01N QU5EMSk7CiAJdHNwaS0+Y29tbWFuZDFfcmVnID0gY29tbWFuZDE7CiAKQEAgLTk4MCwxNCArOTgw LDE0IEBAIHN0YXRpYyBpbnQgdGVncmFfc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkp CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmdHNwaS0+bG9jaywgZmxhZ3MpOwogCS8qIEdQSU8gYmFz ZWQgY2hpcCBzZWxlY3QgY29udHJvbCAqLwotCWlmIChzcGktPmNzX2dwaW9kKQotCQlncGlvZF9z ZXRfdmFsdWUoc3BpLT5jc19ncGlvZCwgMCk7CisJaWYgKHNwaV9nZXRfY3NncGlvZChzcGksIDAp KQorCQlncGlvZF9zZXRfdmFsdWUoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCksIDApOwogCiAJdmFs ID0gdHNwaS0+ZGVmX2NvbW1hbmQxX3JlZzsKIAlpZiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gp Ci0JCXZhbCAmPSB+U1BJX0NTX1BPTF9JTkFDVElWRShzcGktPmNoaXBfc2VsZWN0KTsKKwkJdmFs ICY9IH5TUElfQ1NfUE9MX0lOQUNUSVZFKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAll bHNlCi0JCXZhbCB8PSBTUElfQ1NfUE9MX0lOQUNUSVZFKHNwaS0+Y2hpcF9zZWxlY3QpOworCQl2 YWwgfD0gU1BJX0NTX1BPTF9JTkFDVElWRShzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJ dHNwaS0+ZGVmX2NvbW1hbmQxX3JlZyA9IHZhbDsKIAl0ZWdyYV9zcGlfd3JpdGVsKHRzcGksIHRz cGktPmRlZl9jb21tYW5kMV9yZWcsIFNQSV9DT01NQU5EMSk7CiAJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmdHNwaS0+bG9jaywgZmxhZ3MpOwpAQCAtMTAwMiw4ICsxMDAyLDggQEAgc3RhdGljIHZv aWQgdGVncmFfc3BpX3RyYW5zZmVyX2VuZChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCWludCBj c192YWwgPSAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpID8gMCA6IDE7CiAKIAkvKiBHUElPIGJh c2VkIGNoaXAgc2VsZWN0IGNvbnRyb2wgKi8KLQlpZiAoc3BpLT5jc19ncGlvZCkKLQkJZ3Bpb2Rf c2V0X3ZhbHVlKHNwaS0+Y3NfZ3Bpb2QsIDApOworCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAw KSkKKwkJZ3Bpb2Rfc2V0X3ZhbHVlKHNwaV9nZXRfY3NncGlvZChzcGksIDApLCAwKTsKIAogCWlm ICghdHNwaS0+dXNlX2h3X2Jhc2VkX2NzKSB7CiAJCWlmIChjc192YWwpCmRpZmYgLS1naXQgYS9k cml2ZXJzL3NwaS9zcGktdGVncmEyMC1zZmxhc2guYyBiL2RyaXZlcnMvc3BpL3NwaS10ZWdyYTIw LXNmbGFzaC5jCmluZGV4IDIyMGVlMDhjNGEwNi4uZjY3ZDBhYWZhNzQ0IDEwMDY0NAotLS0gYS9k cml2ZXJzL3NwaS9zcGktdGVncmEyMC1zZmxhc2guYworKysgYi9kcml2ZXJzL3NwaS9zcGktdGVn cmEyMC1zZmxhc2guYwpAQCAtMjgwLDcgKzI4MCw3IEBAIHN0YXRpYyBpbnQgdGVncmFfc2ZsYXNo X3N0YXJ0X3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCQkJY29tbWFuZCB8 PSBTUElfQUNUSVZFX1NDTEtfRFJJVkVfSElHSDsKIAkJZWxzZQogCQkJY29tbWFuZCB8PSBTUElf QUNUSVZFX1NDTEtfRFJJVkVfTE9XOwotCQljb21tYW5kIHw9IFNQSV9DUzBfRU4gPDwgc3BpLT5j aGlwX3NlbGVjdDsKKwkJY29tbWFuZCB8PSBTUElfQ1MwX0VOIDw8IHNwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApOwogCX0gZWxzZSB7CiAJCWNvbW1hbmQgPSB0c2QtPmNvbW1hbmRfcmVnOwogCQlj b21tYW5kICY9IH5TUElfQklUX0xFTkdUSCh+MCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9z cGktdGVncmEyMC1zbGluay5jIGIvZHJpdmVycy9zcGkvc3BpLXRlZ3JhMjAtc2xpbmsuYwppbmRl eCAxNDgwNDNkMGMyYjguLjBhZmJhN2RiZDkzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3Bp LXRlZ3JhMjAtc2xpbmsuYworKysgYi9kcml2ZXJzL3NwaS9zcGktdGVncmEyMC1zbGluay5jCkBA IC03NTgsOSArNzU4LDkgQEAgc3RhdGljIGludCB0ZWdyYV9zbGlua19zZXR1cChzdHJ1Y3Qgc3Bp X2RldmljZSAqc3BpKQogCXNwaW5fbG9ja19pcnFzYXZlKCZ0c3BpLT5sb2NrLCBmbGFncyk7CiAJ dmFsID0gdHNwaS0+ZGVmX2NvbW1hbmRfcmVnOwogCWlmIChzcGktPm1vZGUgJiBTUElfQ1NfSElH SCkKLQkJdmFsIHw9IGNzX3BvbF9iaXRbc3BpLT5jaGlwX3NlbGVjdF07CisJCXZhbCB8PSBjc19w b2xfYml0W3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXTsKIAllbHNlCi0JCXZhbCAmPSB+Y3Nf cG9sX2JpdFtzcGktPmNoaXBfc2VsZWN0XTsKKwkJdmFsICY9IH5jc19wb2xfYml0W3NwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApXTsKIAl0c3BpLT5kZWZfY29tbWFuZF9yZWcgPSB2YWw7CiAJdGVn cmFfc2xpbmtfd3JpdGVsKHRzcGksIHRzcGktPmRlZl9jb21tYW5kX3JlZywgU0xJTktfQ09NTUFO RCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdHNwaS0+bG9jaywgZmxhZ3MpOwpAQCAtNzgx LDcgKzc4MSw3IEBAIHN0YXRpYyBpbnQgdGVncmFfc2xpbmtfcHJlcGFyZV9tZXNzYWdlKHN0cnVj dCBzcGlfbWFzdGVyICptYXN0ZXIsCiAJdHNwaS0+Y29tbWFuZF9yZWcgfD0gU0xJTktfQ1NfU1cg fCBTTElOS19DU19WQUxVRTsKIAogCXRzcGktPmNvbW1hbmQyX3JlZyA9IHRzcGktPmRlZl9jb21t YW5kMl9yZWc7Ci0JdHNwaS0+Y29tbWFuZDJfcmVnIHw9IFNMSU5LX1NTX0VOX0NTKHNwaS0+Y2hp cF9zZWxlY3QpOworCXRzcGktPmNvbW1hbmQyX3JlZyB8PSBTTElOS19TU19FTl9DUyhzcGlfZ2V0 X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAl0c3BpLT5jb21tYW5kX3JlZyAmPSB+U0xJTktfTU9E RVM7CiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9DUEhBKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkv c3BpLXRlZ3JhMjEwLXF1YWQuYyBiL2RyaXZlcnMvc3BpL3NwaS10ZWdyYTIxMC1xdWFkLmMKaW5k ZXggMGI5YmMzYjdmNTNhLi44MGMzYmQ5ZjhiYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3Nw aS10ZWdyYTIxMC1xdWFkLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXRlZ3JhMjEwLXF1YWQuYwpA QCAtODI5LDcgKzgyOSw3IEBAIHN0YXRpYyB1MzIgdGVncmFfcXNwaV9zZXR1cF90cmFuc2Zlcl9v bmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IHNwaV90cmFuCiAJCXRlZ3JhX3FzcGlf bWFza19jbGVhcl9pcnEodHFzcGkpOwogCiAJCWNvbW1hbmQxID0gdHFzcGktPmRlZl9jb21tYW5k MV9yZWc7Ci0JCWNvbW1hbmQxIHw9IFFTUElfQ1NfU0VMKHNwaS0+Y2hpcF9zZWxlY3QpOworCQlj b21tYW5kMSB8PSBRU1BJX0NTX1NFTChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJCWNv bW1hbmQxIHw9IFFTUElfQklUX0xFTkdUSChiaXRzX3Blcl93b3JkIC0gMSk7CiAKIAkJY29tbWFu ZDEgJj0gflFTUElfQ09OVFJPTF9NT0RFX01BU0s7CkBAIC05NjAsMTEgKzk2MCwxMSBAQCBzdGF0 aWMgaW50IHRlZ3JhX3FzcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAogCS8qIGtl ZXAgZGVmYXVsdCBjcyBzdGF0ZSB0byBpbmFjdGl2ZSAqLwogCXZhbCA9IHRxc3BpLT5kZWZfY29t bWFuZDFfcmVnOwotCXZhbCB8PSBRU1BJX0NTX1NFTChzcGktPmNoaXBfc2VsZWN0KTsKKwl2YWwg fD0gUVNQSV9DU19TRUwoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCWlmIChzcGktPm1v ZGUgJiBTUElfQ1NfSElHSCkKLQkJdmFsICY9IH5RU1BJX0NTX1BPTF9JTkFDVElWRShzcGktPmNo aXBfc2VsZWN0KTsKKwkJdmFsICY9IH5RU1BJX0NTX1BPTF9JTkFDVElWRShzcGlfZ2V0X2NoaXBz ZWxlY3Qoc3BpLCAwKSk7CiAJZWxzZQotCQl2YWwgfD0gUVNQSV9DU19QT0xfSU5BQ1RJVkUoc3Bp LT5jaGlwX3NlbGVjdCk7CisJCXZhbCB8PSBRU1BJX0NTX1BPTF9JTkFDVElWRShzcGlfZ2V0X2No aXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAl0cXNwaS0+ZGVmX2NvbW1hbmQxX3JlZyA9IHZhbDsKIAl0 ZWdyYV9xc3BpX3dyaXRlbCh0cXNwaSwgdHFzcGktPmRlZl9jb21tYW5kMV9yZWcsIFFTUElfQ09N TUFORDEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXRpLXFzcGkuYyBiL2RyaXZlcnMv c3BpL3NwaS10aS1xc3BpLmMKaW5kZXggNjAwODY4NjliY2FlLi41OTE0MzM1ZmY2M2QgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS10aS1xc3BpLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXRp LXFzcGkuYwpAQCAtNTMzLDEwICs1MzMsMTAgQEAgc3RhdGljIHZvaWQgdGlfcXNwaV9lbmFibGVf bWVtb3J5X21hcChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCWlmIChxc3BpLT5jdHJsX2Jhc2Up IHsKIAkJcmVnbWFwX3VwZGF0ZV9iaXRzKHFzcGktPmN0cmxfYmFzZSwgcXNwaS0+Y3RybF9yZWcs CiAJCQkJICAgTUVNX0NTX01BU0ssCi0JCQkJICAgTUVNX0NTX0VOKHNwaS0+Y2hpcF9zZWxlY3Qp KTsKKwkJCQkgICBNRU1fQ1NfRU4oc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpKTsKIAl9CiAJ cXNwaS0+bW1hcF9lbmFibGVkID0gdHJ1ZTsKLQlxc3BpLT5jdXJyZW50X2NzID0gc3BpLT5jaGlw X3NlbGVjdDsKKwlxc3BpLT5jdXJyZW50X2NzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7 CiB9CiAKIHN0YXRpYyB2b2lkIHRpX3FzcGlfZGlzYWJsZV9tZW1vcnlfbWFwKHN0cnVjdCBzcGlf ZGV2aWNlICpzcGkpCkBAIC01NzIsNyArNTcyLDcgQEAgc3RhdGljIHZvaWQgdGlfcXNwaV9zZXR1 cF9tbWFwX3JlYWQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTggb3Bjb2RlLAogCW1lbXZhbCB8 PSAoKGFkZHJfd2lkdGggLSAxKSA8PCBRU1BJX1NFVFVQX0FERFJfU0hJRlQgfAogCQkgICBkdW1t eV9ieXRlcyA8PCBRU1BJX1NFVFVQX0RVTU1ZX1NISUZUKTsKIAl0aV9xc3BpX3dyaXRlKHFzcGks IG1lbXZhbCwKLQkJICAgICAgUVNQSV9TUElfU0VUVVBfUkVHKHNwaS0+Y2hpcF9zZWxlY3QpKTsK KwkJICAgICAgUVNQSV9TUElfU0VUVVBfUkVHKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSk7 CiB9CiAKIHN0YXRpYyBpbnQgdGlfcXNwaV9hZGp1c3Rfb3Bfc2l6ZShzdHJ1Y3Qgc3BpX21lbSAq bWVtLCBzdHJ1Y3Qgc3BpX21lbV9vcCAqb3ApCkBAIC02MjMsNyArNjIzLDcgQEAgc3RhdGljIGlu dCB0aV9xc3BpX2V4ZWNfbWVtX29wKHN0cnVjdCBzcGlfbWVtICptZW0sCiAKIAltdXRleF9sb2Nr KCZxc3BpLT5saXN0X2xvY2spOwogCi0JaWYgKCFxc3BpLT5tbWFwX2VuYWJsZWQgfHwgcXNwaS0+ Y3VycmVudF9jcyAhPSBtZW0tPnNwaS0+Y2hpcF9zZWxlY3QpIHsKKwlpZiAoIXFzcGktPm1tYXBf ZW5hYmxlZCB8fCBxc3BpLT5jdXJyZW50X2NzICE9IHNwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNw aSwgMCkpIHsKIAkJdGlfcXNwaV9zZXR1cF9jbGsocXNwaSwgbWVtLT5zcGktPm1heF9zcGVlZF9o eik7CiAJCXRpX3FzcGlfZW5hYmxlX21lbW9yeV9tYXAobWVtLT5zcGkpOwogCX0KQEAgLTY3Mywx MSArNjczLDExIEBAIHN0YXRpYyBpbnQgdGlfcXNwaV9zdGFydF90cmFuc2Zlcl9vbmUoc3RydWN0 IHNwaV9tYXN0ZXIgKm1hc3RlciwKIAlxc3BpLT5kYyA9IDA7CiAKIAlpZiAoc3BpLT5tb2RlICYg U1BJX0NQSEEpCi0JCXFzcGktPmRjIHw9IFFTUElfQ0tQSEEoc3BpLT5jaGlwX3NlbGVjdCk7CisJ CXFzcGktPmRjIHw9IFFTUElfQ0tQSEEoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCWlm IChzcGktPm1vZGUgJiBTUElfQ1BPTCkKLQkJcXNwaS0+ZGMgfD0gUVNQSV9DS1BPTChzcGktPmNo aXBfc2VsZWN0KTsKKwkJcXNwaS0+ZGMgfD0gUVNQSV9DS1BPTChzcGlfZ2V0X2NoaXBzZWxlY3Qo c3BpLCAwKSk7CiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKQotCQlxc3BpLT5kYyB8PSBR U1BJX0NTUE9MKHNwaS0+Y2hpcF9zZWxlY3QpOworCQlxc3BpLT5kYyB8PSBRU1BJX0NTUE9MKHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAogCWZyYW1lX2xlbl93b3JkcyA9IDA7CiAJbGlz dF9mb3JfZWFjaF9lbnRyeSh0LCAmbS0+dHJhbnNmZXJzLCB0cmFuc2Zlcl9saXN0KQpAQCAtNjg2 LDcgKzY4Niw3IEBAIHN0YXRpYyBpbnQgdGlfcXNwaV9zdGFydF90cmFuc2Zlcl9vbmUoc3RydWN0 IHNwaV9tYXN0ZXIgKm1hc3RlciwKIAogCS8qIHNldHVwIGNvbW1hbmQgcmVnICovCiAJcXNwaS0+ Y21kID0gMDsKLQlxc3BpLT5jbWQgfD0gUVNQSV9FTl9DUyhzcGktPmNoaXBfc2VsZWN0KTsKKwlx c3BpLT5jbWQgfD0gUVNQSV9FTl9DUyhzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJcXNw aS0+Y21kIHw9IFFTUElfRkxFTihmcmFtZV9sZW5fd29yZHMpOwogCiAJdGlfcXNwaV93cml0ZShx c3BpLCBxc3BpLT5kYywgUVNQSV9TUElfRENfUkVHKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Bp L3NwaS10b3BjbGlmZi1wY2guYyBiL2RyaXZlcnMvc3BpL3NwaS10b3BjbGlmZi1wY2guYwppbmRl eCBjYmI2MDE5OGE3ZjAuLjExY2ZlODQ3MTRlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3Bp LXRvcGNsaWZmLXBjaC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS10b3BjbGlmZi1wY2guYwpAQCAt NDk5LDcgKzQ5OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwY2hfc3BpX3NlbGVjdF9jaGlwKHN0 cnVjdCBwY2hfc3BpX2RhdGEgKmRhdGEsCiAJCQkJICAgICAgIHN0cnVjdCBzcGlfZGV2aWNlICpw c3BpKQogewogCWlmIChkYXRhLT5jdXJyZW50X2NoaXAgIT0gTlVMTCkgewotCQlpZiAocHNwaS0+ Y2hpcF9zZWxlY3QgIT0gZGF0YS0+bl9jdXJudF9jaGlwKSB7CisJCWlmIChzcGlfZ2V0X2NoaXBz ZWxlY3QocHNwaSwgMCkgIT0gZGF0YS0+bl9jdXJudF9jaGlwKSB7CiAJCQlkZXZfZGJnKCZwc3Bp LT5kZXYsICIlcyA6IGRpZmZlcmVudCBzbGF2ZVxuIiwgX19mdW5jX18pOwogCQkJZGF0YS0+Y3Vy cmVudF9jaGlwID0gTlVMTDsKIAkJfQpAQCAtNTA3LDcgKzUwNyw3IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBwY2hfc3BpX3NlbGVjdF9jaGlwKHN0cnVjdCBwY2hfc3BpX2RhdGEgKmRhdGEsCiAKIAlk YXRhLT5jdXJyZW50X2NoaXAgPSBwc3BpOwogCi0JZGF0YS0+bl9jdXJudF9jaGlwID0gZGF0YS0+ Y3VycmVudF9jaGlwLT5jaGlwX3NlbGVjdDsKKwlkYXRhLT5uX2N1cm50X2NoaXAgPSBzcGlfZ2V0 X2NoaXBzZWxlY3QoZGF0YS0+Y3VycmVudF9jaGlwLCAwKTsKIAogCWRldl9kYmcoJnBzcGktPmRl diwgIiVzIDpJbnZva2luZyBwY2hfc3BpX3NldHVwX3RyYW5zZmVyXG4iLCBfX2Z1bmNfXyk7CiAJ cGNoX3NwaV9zZXR1cF90cmFuc2Zlcihwc3BpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3Nw aS13cGNtLWZpdS5jIGIvZHJpdmVycy9zcGkvc3BpLXdwY20tZml1LmMKaW5kZXggYWIzMzcxMGQ1 MGFjLi5mMTUzMTJmZGNkYWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS13cGNtLWZpdS5j CisrKyBiL2RyaXZlcnMvc3BpL3NwaS13cGNtLWZpdS5jCkBAIC0xNTgsNyArMTU4LDcgQEAgc3Rh dGljIGludCB3cGNtX2ZpdV9ub3JtYWxfZXhlYyhzdHJ1Y3Qgc3BpX21lbSAqbWVtLCBjb25zdCBz dHJ1Y3Qgc3BpX21lbV9vcCAqb3AKIAlpZiAob3AtPmRhdGEuZGlyID09IFNQSV9NRU1fREFUQV9P VVQpCiAJCXdwY21fZml1X3NldF9kYXRhKGZpdSwgb3AtPmRhdGEuYnVmLm91dCwgb3AtPmRhdGEu bmJ5dGVzKTsKIAotCXJldCA9IHdwY21fZml1X2RvX3VtYShmaXUsIG1lbS0+c3BpLT5jaGlwX3Nl bGVjdCwgb3AtPmFkZHIubmJ5dGVzID09IDMsCisJcmV0ID0gd3BjbV9maXVfZG9fdW1hKGZpdSwg c3BpX2dldF9jaGlwc2VsZWN0KG1lbS0+c3BpLCAwKSwgb3AtPmFkZHIubmJ5dGVzID09IDMsCiAJ CQkgICAgICBvcC0+ZGF0YS5kaXIgPT0gU1BJX01FTV9EQVRBX09VVCwgb3AtPmRhdGEubmJ5dGVz KTsKIAogCWlmIChvcC0+ZGF0YS5kaXIgPT0gU1BJX01FTV9EQVRBX0lOKQpAQCAtMTk2LDcgKzE5 Niw3IEBAIHN0YXRpYyBib29sIHdwY21fZml1XzRiYV9tYXRjaChjb25zdCBzdHJ1Y3Qgc3BpX21l bV9vcCAqb3ApCiBzdGF0aWMgaW50IHdwY21fZml1XzRiYV9leGVjKHN0cnVjdCBzcGlfbWVtICpt ZW0sIGNvbnN0IHN0cnVjdCBzcGlfbWVtX29wICpvcCkKIHsKIAlzdHJ1Y3Qgd3BjbV9maXVfc3Bp ICpmaXUgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShtZW0tPnNwaS0+Y29udHJvbGxlcik7 Ci0JaW50IGNzID0gbWVtLT5zcGktPmNoaXBfc2VsZWN0OworCWludCBjcyA9IHNwaV9nZXRfY2hp cHNlbGVjdChtZW0tPnNwaSwgMCk7CiAKIAl3cGNtX2ZpdV9lY3RzX2Fzc2VydChmaXUsIGNzKTsK IApAQCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyBib29sIHdwY21fZml1X3JkaWRfbWF0Y2goY29u c3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQogc3RhdGljIGludCB3cGNtX2ZpdV9yZGlkX2V4ZWMo c3RydWN0IHNwaV9tZW0gKm1lbSwgY29uc3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQogewogCXN0 cnVjdCB3cGNtX2ZpdV9zcGkgKmZpdSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKG1lbS0+ c3BpLT5jb250cm9sbGVyKTsKLQlpbnQgY3MgPSBtZW0tPnNwaS0+Y2hpcF9zZWxlY3Q7CisJaW50 IGNzID0gc3BpX2dldF9jaGlwc2VsZWN0KG1lbS0+c3BpLCAwKTsKIAogCS8qIEZpcnN0IHRyYW5z ZmVyICovCiAJd3BjbV9maXVfc2V0X29wY29kZShmaXUsIG9wLT5jbWQub3Bjb2RlKTsKQEAgLTI3 OCw3ICsyNzgsNyBAQCBzdGF0aWMgYm9vbCB3cGNtX2ZpdV9kdW1teV9tYXRjaChjb25zdCBzdHJ1 Y3Qgc3BpX21lbV9vcCAqb3ApCiBzdGF0aWMgaW50IHdwY21fZml1X2R1bW15X2V4ZWMoc3RydWN0 IHNwaV9tZW0gKm1lbSwgY29uc3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQogewogCXN0cnVjdCB3 cGNtX2ZpdV9zcGkgKmZpdSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKG1lbS0+c3BpLT5j b250cm9sbGVyKTsKLQlpbnQgY3MgPSBtZW0tPnNwaS0+Y2hpcF9zZWxlY3Q7CisJaW50IGNzID0g c3BpX2dldF9jaGlwc2VsZWN0KG1lbS0+c3BpLCAwKTsKIAogCXdwY21fZml1X2VjdHNfYXNzZXJ0 KGZpdSwgY3MpOwogCkBAIC0zNzYsNyArMzc2LDcgQEAgc3RhdGljIGludCB3cGNtX2ZpdV9hZGp1 c3Rfb3Bfc2l6ZShzdHJ1Y3Qgc3BpX21lbSAqbWVtLCBzdHJ1Y3Qgc3BpX21lbV9vcCAqb3ApCiBz dGF0aWMgaW50IHdwY21fZml1X2Rpcm1hcF9jcmVhdGUoc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rl c2MgKmRlc2MpCiB7CiAJc3RydWN0IHdwY21fZml1X3NwaSAqZml1ID0gc3BpX2NvbnRyb2xsZXJf Z2V0X2RldmRhdGEoZGVzYy0+bWVtLT5zcGktPmNvbnRyb2xsZXIpOwotCWludCBjcyA9IGRlc2Mt Pm1lbS0+c3BpLT5jaGlwX3NlbGVjdDsKKwlpbnQgY3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3QoZGVz Yy0+bWVtLT5zcGksIDApOwogCiAJaWYgKGRlc2MtPmluZm8ub3BfdG1wbC5kYXRhLmRpciAhPSBT UElfTUVNX0RBVEFfSU4pCiAJCXJldHVybiAtRU5PVFNVUFA7CkBAIC00MDAsNyArNDAwLDcgQEAg c3RhdGljIGludCB3cGNtX2ZpdV9kaXJtYXBfY3JlYXRlKHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9k ZXNjICpkZXNjKQogc3RhdGljIHNzaXplX3Qgd3BjbV9maXVfZGlyZWN0X3JlYWQoc3RydWN0IHNw aV9tZW1fZGlybWFwX2Rlc2MgKmRlc2MsIHU2NCBvZmZzLCBzaXplX3QgbGVuLCB2b2lkICpidWYp CiB7CiAJc3RydWN0IHdwY21fZml1X3NwaSAqZml1ID0gc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRh dGEoZGVzYy0+bWVtLT5zcGktPmNvbnRyb2xsZXIpOwotCWludCBjcyA9IGRlc2MtPm1lbS0+c3Bp LT5jaGlwX3NlbGVjdDsKKwlpbnQgY3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3QoZGVzYy0+bWVtLT5z cGksIDApOwogCiAJaWYgKG9mZnMgPj0gTUFYX01FTU9SWV9TSVpFX1BFUl9DUykKIAkJcmV0dXJu IC1FTk9UU1VQUDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS14Y29tbS5jIGIvZHJpdmVy cy9zcGkvc3BpLXhjb21tLmMKaW5kZXggODYyODI0MWVjOTllLi41ZDIzNDExZjJhM2UgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS14Y29tbS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS14Y29t bS5jCkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBpbnQgc3BpX3hjb21tX3N5bmNfY29uZmlnKHN0 cnVjdCBzcGlfeGNvbW0gKnNwaV94Y29tbSwgdW5zaWduZWQgaW50IGxlbikKIHN0YXRpYyB2b2lk IHNwaV94Y29tbV9jaGlwc2VsZWN0KHN0cnVjdCBzcGlfeGNvbW0gKnNwaV94Y29tbSwKIAlzdHJ1 Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQgaXNfYWN0aXZlKQogewotCXVuc2lnbmVkIGxvbmcgY3Mg PSBzcGktPmNoaXBfc2VsZWN0OworCXVuc2lnbmVkIGxvbmcgY3MgPSBzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKTsKIAl1aW50MTZfdCBjaGlwc2VsZWN0ID0gc3BpX3hjb21tLT5jaGlwc2VsZWN0 OwogCiAJaWYgKGlzX2FjdGl2ZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS14aWxpbngu YyBiL2RyaXZlcnMvc3BpL3NwaS14aWxpbnguYwppbmRleCAxNDExNTQ4ZjQyNTUuLmEyNDIyYzE2 MzZmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLXhpbGlueC5jCisrKyBiL2RyaXZlcnMv c3BpL3NwaS14aWxpbnguYwpAQCAtMjEzLDcgKzIxMyw3IEBAIHN0YXRpYyB2b2lkIHhpbGlueF9z cGlfY2hpcHNlbGVjdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQgaXNfb24pCiAJICovCiAK IAljcyA9IHhzcGktPmNzX2luYWN0aXZlOwotCWNzIF49IEJJVChzcGktPmNoaXBfc2VsZWN0KTsK KwljcyBePSBCSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJLyogQWN0aXZhdGUg dGhlIGNoaXAgc2VsZWN0ICovCiAJeHNwaS0+d3JpdGVfZm4oY3MsIHhzcGktPnJlZ3MgKyBYU1BJ X1NTUl9PRkZTRVQpOwpAQCAtMjI4LDkgKzIyOCw5IEBAIHN0YXRpYyBpbnQgeGlsaW54X3NwaV9z ZXR1cF90cmFuc2ZlcihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCXN0cnVjdCB4aWxpbnhfc3Bp ICp4c3BpID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGktPm1hc3Rlcik7CiAKIAlpZiAoc3Bp LT5tb2RlICYgU1BJX0NTX0hJR0gpCi0JCXhzcGktPmNzX2luYWN0aXZlICY9IH5CSVQoc3BpLT5j aGlwX3NlbGVjdCk7CisJCXhzcGktPmNzX2luYWN0aXZlICY9IH5CSVQoc3BpX2dldF9jaGlwc2Vs ZWN0KHNwaSwgMCkpOwogCWVsc2UKLQkJeHNwaS0+Y3NfaW5hY3RpdmUgfD0gQklUKHNwaS0+Y2hp cF9zZWxlY3QpOworCQl4c3BpLT5jc19pbmFjdGl2ZSB8PSBCSVQoc3BpX2dldF9jaGlwc2VsZWN0 KHNwaSwgMCkpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGkt eGxwLmMgYi9kcml2ZXJzL3NwaS9zcGkteGxwLmMKaW5kZXggZTU3MDdmZTVjOGYxLi4zYjkxY2Rk NWFlMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS14bHAuYworKysgYi9kcml2ZXJzL3Nw aS9zcGkteGxwLmMKQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0aWMgaW50IHhscF9zcGlfc2V0dXAo c3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlpbnQgY3M7CiAKIAl4c3BpID0gc3BpX21hc3Rlcl9n ZXRfZGV2ZGF0YShzcGktPm1hc3Rlcik7Ci0JY3MgPSBzcGktPmNoaXBfc2VsZWN0OworCWNzID0g c3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJLyoKIAkgKiBUaGUgdmFsdWUgb2YgZmRpdiBt dXN0IGJlIGJldHdlZW4gNCBhbmQgNjU1MzUuCiAJICovCkBAIC0zNTAsNyArMzUwLDcgQEAgc3Rh dGljIGludCB4bHBfc3BpX3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVyLAog CXN0cnVjdCB4bHBfc3BpX3ByaXYgKnhzcGkgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKG1hc3Rl cik7CiAJaW50IHJldCA9IDA7CiAKLQl4c3BpLT5jcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJeHNw aS0+Y3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAl4c3BpLT5kZXYgPSBzcGktPmRl djsKIAogCWlmIChzcGlfdHJhbnNmZXJfaXNfbGFzdChtYXN0ZXIsIHQpKQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zcGkvc3BpLXp5bnEtcXNwaS5jIGIvZHJpdmVycy9zcGkvc3BpLXp5bnEtcXNwaS5j CmluZGV4IDc4ZjMxYjYxYTJhYS4uZGViYjUzZWYxOWEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Nw aS9zcGktenlucS1xc3BpLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXp5bnEtcXNwaS5jCkBAIC0y OTYsNyArMjk2LDcgQEAgc3RhdGljIHZvaWQgenlucV9xc3BpX2NoaXBzZWxlY3Qoc3RydWN0IHNw aV9kZXZpY2UgKnNwaSwgYm9vbCBhc3NlcnQpCiAJLyogU2VsZWN0IHRoZSBsb3dlciAoQ1MwKSBv ciB1cHBlciAoQ1MxKSBtZW1vcnkgKi8KIAlpZiAoY3Rsci0+bnVtX2NoaXBzZWxlY3QgPiAxKSB7 CiAJCWNvbmZpZ19yZWcgPSB6eW5xX3FzcGlfcmVhZCh4cXNwaSwgWllOUV9RU1BJX0xJTkVBUl9D RkdfT0ZGU0VUKTsKLQkJaWYgKCFzcGktPmNoaXBfc2VsZWN0KQorCQlpZiAoIXNwaV9nZXRfY2hp cHNlbGVjdChzcGksIDApKQogCQkJY29uZmlnX3JlZyAmPSB+WllOUV9RU1BJX0xDRkdfVV9QQUdF OwogCQllbHNlCiAJCQljb25maWdfcmVnIHw9IFpZTlFfUVNQSV9MQ0ZHX1VfUEFHRTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3BpL3NwaS16eW5xbXAtZ3FzcGkuYyBiL2RyaXZlcnMvc3BpL3NwaS16 eW5xbXAtZ3FzcGkuYwppbmRleCA5NWZmMTU2NjVkNDQuLjMxOWNkZDVhMGJkYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9zcGkvc3BpLXp5bnFtcC1ncXNwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS16 eW5xbXAtZ3FzcGkuYwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHN0YXRpYyB2b2lkIHp5bnFtcF9xc3Bp X2NoaXBzZWxlY3Qoc3RydWN0IHNwaV9kZXZpY2UgKnFzcGksIGJvb2wgaXNfaGlnaCkKIAlnZW5m aWZvZW50cnkgfD0gR1FTUElfR0VORklGT19NT0RFX1NQSTsKIAogCWlmICghaXNfaGlnaCkgewot CQlpZiAoIXFzcGktPmNoaXBfc2VsZWN0KSB7CisJCWlmICghc3BpX2dldF9jaGlwc2VsZWN0KHFz cGksIDApKSB7CiAJCQl4cXNwaS0+Z2VuZmlmb2J1cyA9IEdRU1BJX0dFTkZJRk9fQlVTX0xPV0VS OwogCQkJeHFzcGktPmdlbmZpZm9jcyA9IEdRU1BJX0dFTkZJRk9fQ1NfTE9XRVI7CiAJCX0gZWxz ZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGlkZXYuYyBiL2RyaXZlcnMvc3BpL3NwaWRl di5jCmluZGV4IDVhMDM4YzY2NzQwMS4uYTM5OWM2MTdjYTI1IDEwMDY0NAotLS0gYS9kcml2ZXJz L3NwaS9zcGlkZXYuYworKysgYi9kcml2ZXJzL3NwaS9zcGlkZXYuYwpAQCAtMzkzLDcgKzM5Myw3 IEBAIHNwaWRldl9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5z aWduZWQgbG9uZyBhcmcpCiAJCQlzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIgPSBzcGktPmNv bnRyb2xsZXI7CiAKIAkJCWlmIChjdGxyLT51c2VfZ3Bpb19kZXNjcmlwdG9ycyAmJiBjdGxyLT5j c19ncGlvZHMgJiYKLQkJCSAgICBjdGxyLT5jc19ncGlvZHNbc3BpLT5jaGlwX3NlbGVjdF0pCisJ CQkgICAgY3Rsci0+Y3NfZ3Bpb2RzW3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXSkKIAkJCQl0 bXAgJj0gflNQSV9DU19ISUdIOwogCQl9CiAKQEAgLTQzMiw3ICs0MzIsNyBAQCBzcGlkZXZfaW9j dGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJn KQogCQkJfQogCiAJCQlpZiAoY3Rsci0+dXNlX2dwaW9fZGVzY3JpcHRvcnMgJiYgY3Rsci0+Y3Nf Z3Bpb2RzICYmCi0JCQkgICAgY3Rsci0+Y3NfZ3Bpb2RzW3NwaS0+Y2hpcF9zZWxlY3RdKQorCQkJ ICAgIGN0bHItPmNzX2dwaW9kc1tzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV0pCiAJCQkJdG1w IHw9IFNQSV9DU19ISUdIOwogCiAJCQl0bXAgfD0gc3BpLT5tb2RlICYgflNQSV9NT0RFX01BU0s7 CkBAIC04MDUsNyArODA1LDcgQEAgc3RhdGljIGludCBzcGlkZXZfcHJvYmUoc3RydWN0IHNwaV9k ZXZpY2UgKnNwaSkKIAkJc3BpZGV2LT5kZXZ0ID0gTUtERVYoU1BJREVWX01BSk9SLCBtaW5vcik7 CiAJCWRldiA9IGRldmljZV9jcmVhdGUoc3BpZGV2X2NsYXNzLCAmc3BpLT5kZXYsIHNwaWRldi0+ ZGV2dCwKIAkJCQkgICAgc3BpZGV2LCAic3BpZGV2JWQuJWQiLAotCQkJCSAgICBzcGktPm1hc3Rl ci0+YnVzX251bSwgc3BpLT5jaGlwX3NlbGVjdCk7CisJCQkJICAgIHNwaS0+bWFzdGVyLT5idXNf bnVtLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJCXN0YXR1cyA9IFBUUl9FUlJfT1Jf WkVSTyhkZXYpOwogCX0gZWxzZSB7CiAJCWRldl9kYmcoJnNwaS0+ZGV2LCAibm8gbWlub3IgbnVt YmVyIGF2YWlsYWJsZSFcbiIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS90cmFjZS9ldmVudHMvc3Bp LmggYi9pbmNsdWRlL3RyYWNlL2V2ZW50cy9zcGkuaAppbmRleCBjMGQ5ODQ0YmVmZDcuLmMwMjQ4 YThmYTc5YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS90cmFjZS9ldmVudHMvc3BpLmgKKysrIGIvaW5j bHVkZS90cmFjZS9ldmVudHMvc3BpLmgKQEAgLTU3LDcgKzU3LDcgQEAgVFJBQ0VfRVZFTlQoc3Bp X3NldHVwLAogCiAJVFBfZmFzdF9hc3NpZ24oCiAJCV9fZW50cnktPmJ1c19udW0gPSBzcGktPmNv bnRyb2xsZXItPmJ1c19udW07Ci0JCV9fZW50cnktPmNoaXBfc2VsZWN0ID0gc3BpLT5jaGlwX3Nl bGVjdDsKKwkJX19lbnRyeS0+Y2hpcF9zZWxlY3QgPSAgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwg MCk7CiAJCV9fZW50cnktPm1vZGUgPSBzcGktPm1vZGU7CiAJCV9fZW50cnktPmJpdHNfcGVyX3dv cmQgPSBzcGktPmJpdHNfcGVyX3dvcmQ7CiAJCV9fZW50cnktPm1heF9zcGVlZF9oeiA9IHNwaS0+ bWF4X3NwZWVkX2h6OwpAQCAtODgsNyArODgsNyBAQCBUUkFDRV9FVkVOVChzcGlfc2V0X2NzLAog CiAJVFBfZmFzdF9hc3NpZ24oCiAJCV9fZW50cnktPmJ1c19udW0gPSBzcGktPmNvbnRyb2xsZXIt PmJ1c19udW07Ci0JCV9fZW50cnktPmNoaXBfc2VsZWN0ID0gc3BpLT5jaGlwX3NlbGVjdDsKKwkJ X19lbnRyeS0+Y2hpcF9zZWxlY3QgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAkJX19l bnRyeS0+bW9kZSA9IHNwaS0+bW9kZTsKIAkJX19lbnRyeS0+ZW5hYmxlID0gZW5hYmxlOwogCSks CkBAIC0xMTMsNyArMTEzLDcgQEAgREVDTEFSRV9FVkVOVF9DTEFTUyhzcGlfbWVzc2FnZSwKIAog CVRQX2Zhc3RfYXNzaWduKAogCQlfX2VudHJ5LT5idXNfbnVtID0gbXNnLT5zcGktPmNvbnRyb2xs ZXItPmJ1c19udW07Ci0JCV9fZW50cnktPmNoaXBfc2VsZWN0ID0gbXNnLT5zcGktPmNoaXBfc2Vs ZWN0OworCQlfX2VudHJ5LT5jaGlwX3NlbGVjdCA9IHNwaV9nZXRfY2hpcHNlbGVjdChtc2ctPnNw aSwgMCk7CiAJCV9fZW50cnktPm1zZyA9IG1zZzsKIAkpLAogCkBAIC0xNTQsNyArMTU0LDcgQEAg VFJBQ0VfRVZFTlQoc3BpX21lc3NhZ2VfZG9uZSwKIAogCVRQX2Zhc3RfYXNzaWduKAogCQlfX2Vu dHJ5LT5idXNfbnVtID0gbXNnLT5zcGktPmNvbnRyb2xsZXItPmJ1c19udW07Ci0JCV9fZW50cnkt PmNoaXBfc2VsZWN0ID0gbXNnLT5zcGktPmNoaXBfc2VsZWN0OworCQlfX2VudHJ5LT5jaGlwX3Nl bGVjdCA9IHNwaV9nZXRfY2hpcHNlbGVjdChtc2ctPnNwaSwgMCk7CiAJCV9fZW50cnktPm1zZyA9 IG1zZzsKIAkJX19lbnRyeS0+ZnJhbWUgPSBtc2ctPmZyYW1lX2xlbmd0aDsKIAkJX19lbnRyeS0+ YWN0dWFsID0gbXNnLT5hY3R1YWxfbGVuZ3RoOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIERFQ0xBUkVf RVZFTlRfQ0xBU1Moc3BpX3RyYW5zZmVyLAogCiAJVFBfZmFzdF9hc3NpZ24oCiAJCV9fZW50cnkt PmJ1c19udW0gPSBtc2ctPnNwaS0+Y29udHJvbGxlci0+YnVzX251bTsKLQkJX19lbnRyeS0+Y2hp cF9zZWxlY3QgPSBtc2ctPnNwaS0+Y2hpcF9zZWxlY3Q7CisJCV9fZW50cnktPmNoaXBfc2VsZWN0 ID0gc3BpX2dldF9jaGlwc2VsZWN0KG1zZy0+c3BpLCAwKTsKIAkJX19lbnRyeS0+eGZlciA9IHhm ZXI7CiAJCV9fZW50cnktPmxlbiA9IHhmZXItPmxlbjsKIAotLSAKMi4yNS4xCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYW1sb2dpYyBtYWls aW5nIGxpc3QKbGludXgtYW1sb2dpY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYW1sb2dpYwo=