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 8C964C05027 for ; Fri, 10 Feb 2023 20:16:20 +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=NLT8huL9YP0hcYyzgRIMF8wO2jRilNg0M4yOiRV32fM=; b=bKRijBDoI84zhi uDHVkvU9BIuTHiQ1B6pQEKSmlqJiK+5do/M9PQzxEZqdmLOhNHWAZGOXolgi/VeA+WEuo1s8aLu9y PutlohIBbBfxP/zNW41xChfU+NdPhx4k8kjjPjRc9uCK0efKS6QEKuaTXL+A3WmieZgK2XRGWeyme oxJnmdQIs64y3sBhZRLakppFYXiGBPkPVj1e8pUuX6elzn73F058l1ZigaR1Dmrd9N7aVzptHfQ8/ Pn+CnbLfGJzMJMj+hsq/pLLyzM+WmoilZW7JSnDL4Q9uMFT7SydT0NbZXH8RzURC2HGBJGcpQajOR WsmTwZLp3HvFe/0C97nw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQZny-007JS2-Sk; Fri, 10 Feb 2023 20:15:35 +0000 Received: from mail-dm6nam11on20605.outbound.protection.outlook.com ([2a01:111:f400:7eaa::605] helo=NAM11-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQZDU-00789L-Ld; Fri, 10 Feb 2023 19:37:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HjlTok03Vc9Y2siSXPZSsfEAHFKnrFPeEKFw8NdVe2NCFZXCCmqglzOkqN0DVPcSy72PFKUFxXGPYLmY4e2R905EFJhcoRSWe4mtbjouvV/DhG0hEKru9rAK0d/fwYDwuXlxxy88QThTwsG1L944lNmaJeHHEQNpCEsbXrLWZ+6WTFG8NDNj9JG7NRcDteaEiDQVB1Js2/CdxRfHKLSpNLAvcQHeiLzJwBQsYlix8ihcPj5wKmq+bhLrx0lowrjQ9DdslXuYbxUr9pbDpajeNKCxFSprze537zvE/fnf165XjvzKSTIN6ErxsHCQ5Z1GqXlolQPkdh1bMK4RWz4mmw== 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=3FnSzgxLBCFaOpczF2H53UXn2abmg2+ECOBYQqmX6M0=; b=RUocYWwU0GyO7rtRCwmTVw+2IYS2e1b5RDYc0Ngybix///8LsbcrxzRoJm1pV7YspPgw1uWtDz2n26QPEhKXuGMAYDWJlyyA19Z31I9MljkZwfitytzY5GhOnl4Io1R2S/iC2nb/UDA57r2DKIxbE2pwaHgh2zFwBtZlfQetYR0WRE/2TS+SKyefTzlzNY9YYXJKATaoYpAb0cSwN2ACvUJSkydDvWV6Z2Erpc2oV4aI0Idd38wwwzfc8Sdld6suF8Jkx13MZwTyTGGM0sWE3FqoCMyceTpk7+b8joY1RYeJv3WTOLSCpYsmax/X4VFX55P50ZwpnzwonfDGkXFFnA== 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=3FnSzgxLBCFaOpczF2H53UXn2abmg2+ECOBYQqmX6M0=; b=wf9zSFwt0sPW8Gy4MgRkjiVc01+fse9eYgS9KRGCPMeTcDDhUMzJp2HWckVAD6DuCzgYE8rh4jROCz+Bt2IsxVpMCDAiNpqggsJlIzRUqidai20aJC4uTwmeKdFT793iP5rxe+AbW//iXaLTsN86kjRicRffvHEUxu0kyTVfUgM= Received: from MW2PR16CA0044.namprd16.prod.outlook.com (2603:10b6:907:1::21) by PH7PR12MB6740.namprd12.prod.outlook.com (2603:10b6:510:1ab::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Fri, 10 Feb 2023 19:37:45 +0000 Received: from CO1NAM11FT096.eop-nam11.prod.protection.outlook.com (2603:10b6:907:1:cafe::94) by MW2PR16CA0044.outlook.office365.com (2603:10b6:907:1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.21 via Frontend Transport; Fri, 10 Feb 2023 19:37:45 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by CO1NAM11FT096.mail.protection.outlook.com (10.13.175.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6086.21 via Frontend Transport; Fri, 10 Feb 2023 19:37:44 +0000 Received: from SATLEXMB08.amd.com (10.181.40.132) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 10 Feb 2023 13:37:44 -0600 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB08.amd.com (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 10 Feb 2023 11:37:42 -0800 Received: from xhdsneeli40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Fri, 10 Feb 2023 13:37:16 -0600 From: Amit Kumar Mahapatra To: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Amit Kumar Mahapatra , Dhruva Gole , Patrice Chotard , William Zhang Subject: [PATCH v4 01/15] spi: Replace all spi->chip_select and spi->cs_gpiod references with function call Date: Sat, 11 Feb 2023 01:06:32 +0530 Message-ID: <20230210193647.4159467-2-amit.kumar-mahapatra@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230210193647.4159467-1-amit.kumar-mahapatra@amd.com> References: <20230210193647.4159467-1-amit.kumar-mahapatra@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT096:EE_|PH7PR12MB6740:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d64d57d-5030-4477-65b9-08db0b9e485e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IXXxt7bji0C9Kj2ZYthoBInqIJmQhRV/E8w8+76q20nggQvWe0u7SxHVbrxvb0Q0i2U0hHoR4dCre3p2tLTTq06NrCrV6WN/uoQ7Du1HJlwRDFsHN/CQ1BlEABHOdJFgFw1oRjU9Mc5yCJJcfpCpNwOMqJhhqbCVNFU8npDAt9aOkJhebdKYeQ+MQDN/TS4nc80KftHZvnPUkCFc8WEHGepFK10Fd5L2nv06rvTy8cYUKJATxDMm2jG2mDIOa+aZiE3VHYQYtg2xHuUoUxOw4SHpxi9QFhf3aZ8oNuKcn/uHNciCCu1j1nBlFio0cGI9E2lqwykoW8Ulaylo3haW+k/snkgZTjiiy1pDXNIuONfBObXrgIL0tr9wJvdQcVlnoJOaQ+jnkiljDQU+aOCJoPchQUjCVNzdCOmpnczWI8M+UCEuMZDPyot11XuUmqoBugntGsdAvNe7PNSqbO6BOcGjN3m7EMyDGDYAwPGdnUGU8jqVEF6ptIXbaJRT4ckdvtxPDMNnIUpNxl9HIYEY+cbnBaXBpd5hJWUFf5siPpVUu7bnI5740//6pE+c4sOkZcuJYqGB3p9SKuzcY8ISEknujlo8lzx+wNPnwNF1qOY+OvGtTmlyrCgG7V3nkDuBh4Wq7rPBqEKYtnUcwjj3Pal1l2xozp0EZpp7ln/Vzs22fllakPEWdP1RGYSarLTsd1n1+tvMcDJ/gKQIXyqpcnoPIJVDD6ion1eWq2scGs1ktwOVK+vVxlCJa2we5JcP+eEpYRWr60bRYl7gk2xiGJBW1eOIDY3gPsuEH61T4yrMtQNp0NRWj2UvJKuonuLzK/0DGzwN53NCsEAtRlq2QYf3KnQxZfw74sMtPfTu7TU= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(396003)(376002)(346002)(136003)(451199018)(40470700004)(36840700001)(46966006)(5660300002)(82740400003)(36860700001)(7336002)(7406005)(7416002)(26005)(81166007)(186003)(7366002)(30864003)(8936002)(40460700003)(7276002)(921005)(2906002)(66899018)(1076003)(356005)(41300700001)(6666004)(316002)(8676002)(4326008)(70586007)(2616005)(70206006)(1191002)(86362001)(83380400001)(110136005)(40480700001)(54906003)(478600001)(66574015)(47076005)(426003)(336012)(36756003)(82310400005)(84006005)(83996005)(36900700001)(2101003)(41080700001)(579004)(559001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2023 19:37:44.7910 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4d64d57d-5030-4477-65b9-08db0b9e485e 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT096.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6740 X-Mailman-Approved-At: Fri, 10 Feb 2023 12:15:07 -0800 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 IGRyaXZlcnMvc3BpL3NwaS1iY202M3h4LWhzc3BpLmMgICB8IDIyICsrKysrKysrKysrLS0tLS0t LS0tLS0KIGRyaXZlcnMvc3BpL3NwaS1iY202M3h4LmMgICAgICAgICB8ICAyICstCiBkcml2ZXJz L3NwaS9zcGktY2FkZW5jZS1xdWFkc3BpLmMgfCAgNSArKystLQogZHJpdmVycy9zcGkvc3BpLWNh ZGVuY2UteHNwaS5jICAgIHwgIDQgKystLQogZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UuYyAgICAg ICAgIHwgIDQgKystLQogZHJpdmVycy9zcGkvc3BpLWNhdml1bS5jICAgICAgICAgIHwgIDggKysr Ky0tLS0KIGRyaXZlcnMvc3BpL3NwaS1jb2xkZmlyZS1xc3BpLmMgICB8ICA4ICsrKystLS0tCiBk cml2ZXJzL3NwaS9zcGktZGF2aW5jaS5jICAgICAgICAgfCAxOCArKysrKysrKystLS0tLS0tLS0K IGRyaXZlcnMvc3BpL3NwaS1kbG4yLmMgICAgICAgICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9z cGkvc3BpLWR3LWNvcmUuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1kdy1tbWlv LmMgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3NwaS1mYWxjb24uYyAgICAgICAgICB8 ICAyICstCiBkcml2ZXJzL3NwaS9zcGktZnNpLmMgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVy cy9zcGkvc3BpLWZzbC1kc3BpLmMgICAgICAgIHwgMTYgKysrKysrKystLS0tLS0tLQogZHJpdmVy cy9zcGkvc3BpLWZzbC1lc3BpLmMgICAgICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL3NwaS9zcGkt ZnNsLWxwc3BpLmMgICAgICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3BpLWZzbC1xc3BpLmMgICAg ICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL3NwaS9zcGktZnNsLXNwaS5jICAgICAgICAgfCAgMiAr LQogZHJpdmVycy9zcGkvc3BpLWdlbmktcWNvbS5jICAgICAgIHwgIDYgKysrLS0tCiBkcml2ZXJz L3NwaS9zcGktZ3Bpby5jICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3NwaS9zcGktZ3hw LmMgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3NwaS9zcGktaGlzaS1zZmMtdjN4eC5j ICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3BpLWltZy1zcGZpLmMgICAgICAgIHwgMTQgKysrKysr Ky0tLS0tLS0KIGRyaXZlcnMvc3BpL3NwaS1pbXguYyAgICAgICAgICAgICB8IDMwICsrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9zcGkvc3BpLWluZ2VuaWMuYyAgICAgICAg IHwgIDQgKystLQogZHJpdmVycy9zcGkvc3BpLWludGVsLmMgICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvc3BpL3NwaS1qY29yZS5jICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3Nw aS1sYW50aXEtc3NjLmMgICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9zcGkvc3BpLW1lbS5jICAg ICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9zcGkvc3BpLW1lc29uLXNwaWNjLmMgICAgIHwg IDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1taWNyb2NoaXAtY29yZS5jICB8ICA2ICsrKy0tLQogZHJp dmVycy9zcGkvc3BpLW1wYzUxMngtcHNjLmMgICAgIHwgIDggKysrKy0tLS0KIGRyaXZlcnMvc3Bp L3NwaS1tcGM1Mnh4LmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGktbXQ2NXh4LmMg ICAgICAgICAgfCAgNiArKystLS0KIGRyaXZlcnMvc3BpL3NwaS1tdDc2MjEuYyAgICAgICAgICB8 ICAyICstCiBkcml2ZXJzL3NwaS9zcGktbXV4LmMgICAgICAgICAgICAgfCAgOCArKysrLS0tLQog ZHJpdmVycy9zcGkvc3BpLW14aWMuYyAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQogZHJpdmVy cy9zcGkvc3BpLW14cy5jICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1ucGNt LWZpdS5jICAgICAgICB8IDIwICsrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL3NwaS9zcGkt bnhwLWZzcGkuYyAgICAgICAgfCAxMCArKysrKy0tLS0tCiBkcml2ZXJzL3NwaS9zcGktb21hcC0x MDBrLmMgICAgICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3BpLW9tYXAtdXdpcmUuYyAgICAgIHwg IDggKysrKy0tLS0KIGRyaXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jICAgICB8IDI0ICsrKysr KysrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9zcGkvc3BpLW9yaW9uLmMgICAgICAgICAgIHwg IDQgKystLQogZHJpdmVycy9zcGkvc3BpLXBjaTF4eHh4LmMgICAgICAgIHwgIDQgKystLQogZHJp dmVycy9zcGkvc3BpLXBpYzMyLXNxaS5jICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1w aWMzMi5jICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3NwaS1wbDAyMi5jICAgICAg ICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3NwaS1weGEyeHguYyAgICAgICAgICB8ICA2ICsr Ky0tLQogZHJpdmVycy9zcGkvc3BpLXFjb20tcXNwaS5jICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv c3BpL3NwaS1yYjR4eC5jICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGktcm9ja2No aXAtc2ZjLmMgICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3BpLXJvY2tjaGlwLmMgICAgICAgIHwg MjYgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvc3BpL3NwaS1yc3BpLmMgICAg ICAgICAgICB8IDEwICsrKysrLS0tLS0KIGRyaXZlcnMvc3BpL3NwaS1zM2M2NHh4LmMgICAgICAg ICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGktc2MxOGlzNjAyLmMgICAgICAgfCAgNCArKy0tCiBk cml2ZXJzL3NwaS9zcGktc2gtbXNpb2YuYyAgICAgICAgfCAgNiArKystLS0KIGRyaXZlcnMvc3Bp L3NwaS1zaC1zY2kuYyAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGktc2lmaXZlLmMg ICAgICAgICAgfCAgNiArKystLS0KIGRyaXZlcnMvc3BpL3NwaS1zbi1mLW9zcGkuYyAgICAgICB8 ICAyICstCiBkcml2ZXJzL3NwaS9zcGktc3Qtc3NjNC5jICAgICAgICAgfCAgMiArLQogZHJpdmVy cy9zcGkvc3BpLXN0bTMyLXFzcGkuYyAgICAgIHwgMTIgKysrKysrLS0tLS0tCiBkcml2ZXJzL3Nw aS9zcGktc3VuNGkuYyAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zcGkvc3BpLXN1bjZpLmMg ICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS1zeW5xdWFjZXIuYyAgICAgICB8ICA2 ICsrKy0tLQogZHJpdmVycy9zcGkvc3BpLXRlZ3JhMTE0LmMgICAgICAgIHwgMjggKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9zcGkvc3BpLXRlZ3JhMjAtc2ZsYXNoLmMgIHwg IDIgKy0KIGRyaXZlcnMvc3BpL3NwaS10ZWdyYTIwLXNsaW5rLmMgICB8ICA2ICsrKy0tLQogZHJp dmVycy9zcGkvc3BpLXRlZ3JhMjEwLXF1YWQuYyAgIHwgIDggKysrKy0tLS0KIGRyaXZlcnMvc3Bp L3NwaS10aS1xc3BpLmMgICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMvc3Bp L3NwaS10b3BjbGlmZi1wY2guYyAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc3BpL3NwaS13cGNtLWZp dS5jICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogZHJpdmVycy9zcGkvc3BpLXhjb21tLmMgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS14aWxpbnguYyAgICAgICAgICB8ICA2ICsr Ky0tLQogZHJpdmVycy9zcGkvc3BpLXhscC5jICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVy cy9zcGkvc3BpLXp5bnEtcXNwaS5jICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3BpL3NwaS16eW5x bXAtZ3FzcGkuYyAgICB8ICAyICstCiBkcml2ZXJzL3NwaS9zcGlkZXYuYyAgICAgICAgICAgICAg fCAgNiArKystLS0KIGluY2x1ZGUvdHJhY2UvZXZlbnRzL3NwaS5oICAgICAgICB8IDEwICsrKysr LS0tLS0KIDkyIGZpbGVzIGNoYW5nZWQsIDMxNSBpbnNlcnRpb25zKCspLCAzMTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWFsdGVyYS1jb3JlLmMgYi9kcml2ZXJz L3NwaS9zcGktYWx0ZXJhLWNvcmUuYwppbmRleCA5NGZlNmJmMWI5YTYuLjg3ZTM3ZjQ4ZjE5NiAx MDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWFsdGVyYS1jb3JlLmMKKysrIGIvZHJpdmVycy9z cGkvc3BpLWFsdGVyYS1jb3JlLmMKQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIHZvaWQgYWx0ZXJh X3NwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBpc19oaWdoKQogCQlhbHRy X3NwaV93cml0ZWwoaHcsIEFMVEVSQV9TUElfVEFSR0VUX1NFTCwgMCk7CiAJfSBlbHNlIHsKIAkJ YWx0cl9zcGlfd3JpdGVsKGh3LCBBTFRFUkFfU1BJX1RBUkdFVF9TRUwsCi0JCQkJQklUKHNwaS0+ Y2hpcF9zZWxlY3QpKTsKKwkJCQlCSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpKTsKIAkJ aHctPmltciB8PSBBTFRFUkFfU1BJX0NPTlRST0xfU1NPX01TSzsKIAkJYWx0cl9zcGlfd3JpdGVs KGh3LCBBTFRFUkFfU1BJX0NPTlRST0wsIGh3LT5pbXIpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3BpL3NwaS1hbWQuYyBiL2RyaXZlcnMvc3BpL3NwaS1hbWQuYwppbmRleCBiZmMzYWI1ZjM5 ZWEuLmZlY2VhZDc1N2EzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWFtZC5jCisrKyBi L2RyaXZlcnMvc3BpL3NwaS1hbWQuYwpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHN0YXRpYyBpbmxpbmUg aW50IGFtZF9zcGlfZmlmb194ZmVyKHN0cnVjdCBhbWRfc3BpICphbWRfc3BpLAogCWNhc2UgQU1E X1NQSV9WMToKIAkJYnJlYWs7CiAJY2FzZSBBTURfU1BJX1YyOgotCQlhbWRfc3BpX2NsZWFyX2No aXAoYW1kX3NwaSwgbWVzc2FnZS0+c3BpLT5jaGlwX3NlbGVjdCk7CisJCWFtZF9zcGlfY2xlYXJf Y2hpcChhbWRfc3BpLCBzcGlfZ2V0X2NoaXBzZWxlY3QobWVzc2FnZS0+c3BpLCAwKSk7CiAJCWJy ZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRU5PREVWOwpAQCAtMzY0LDcgKzM2NCw3IEBAIHN0 YXRpYyBpbnQgYW1kX3NwaV9tYXN0ZXJfdHJhbnNmZXIoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3Rl ciwKIAlzdHJ1Y3QgYW1kX3NwaSAqYW1kX3NwaSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEobWFz dGVyKTsKIAlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gbXNnLT5zcGk7CiAKLQlhbWRfc3BpX3Nl bGVjdF9jaGlwKGFtZF9zcGksIHNwaS0+Y2hpcF9zZWxlY3QpOworCWFtZF9zcGlfc2VsZWN0X2No aXAoYW1kX3NwaSwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJLyoKIAkgKiBFeHRy YWN0IHNwaV90cmFuc2ZlcnMgZnJvbSB0aGUgc3BpIG1lc3NhZ2UgYW5kCmRpZmYgLS1naXQgYS9k cml2ZXJzL3NwaS9zcGktYXI5MzR4LmMgYi9kcml2ZXJzL3NwaS9zcGktYXI5MzR4LmMKaW5kZXgg NGE2ZWNhYTBhOWM5Li40MWVmNmNmNWM1ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1h cjkzNHguYworKysgYi9kcml2ZXJzL3NwaS9zcGktYXI5MzR4LmMKQEAgLTEyNSw3ICsxMjUsNyBA QCBzdGF0aWMgaW50IGFyOTM0eF9zcGlfdHJhbnNmZXJfb25lX21lc3NhZ2Uoc3RydWN0IHNwaV9j b250cm9sbGVyICpjdGxyLAogCQkJCWlvd3JpdGUzMihyZWcsIHNwLT5iYXNlICsgQVI5MzRYX1NQ SV9EQVRBT1VUKTsKIAkJCX0KIAotCQkJcmVnID0gQVI5MzRYX1NQSV9TSElGVF9WQUwoc3BpLT5j aGlwX3NlbGVjdCwgdGVybSwKKwkJCXJlZyA9IEFSOTM0WF9TUElfU0hJRlRfVkFMKHNwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApLCB0ZXJtLAogCQkJCQkJICAgdHJ4X2N1ciAqIDgpOwogCQkJaW93 cml0ZTMyKHJlZywgc3AtPmJhc2UgKyBBUjkzNFhfU1BJX1JFR19TSElGVF9DVFJMKTsKIAkJCXN0 YXQgPSByZWFkbF9wb2xsX3RpbWVvdXQoCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktYXJt YWRhLTM3MDAuYyBiL2RyaXZlcnMvc3BpL3NwaS1hcm1hZGEtMzcwMC5jCmluZGV4IDRkNTU0Yjk0 OGQ3MS4uODU4NDA0NWZjMTdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktYXJtYWRhLTM3 MDAuYworKysgYi9kcml2ZXJzL3NwaS9zcGktYXJtYWRhLTM3MDAuYwpAQCAtNDM3LDkgKzQzNyw5 IEBAIHN0YXRpYyB2b2lkIGEzNzAwX3NwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwg Ym9vbCBlbmFibGUpCiAJc3RydWN0IGEzNzAwX3NwaSAqYTM3MDBfc3BpID0gc3BpX2NvbnRyb2xs ZXJfZ2V0X2RldmRhdGEoc3BpLT5jb250cm9sbGVyKTsKIAogCWlmICghZW5hYmxlKQotCQlhMzcw MF9zcGlfYWN0aXZhdGVfY3MoYTM3MDBfc3BpLCBzcGktPmNoaXBfc2VsZWN0KTsKKwkJYTM3MDBf c3BpX2FjdGl2YXRlX2NzKGEzNzAwX3NwaSwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwog CWVsc2UKLQkJYTM3MDBfc3BpX2RlYWN0aXZhdGVfY3MoYTM3MDBfc3BpLCBzcGktPmNoaXBfc2Vs ZWN0KTsKKwkJYTM3MDBfc3BpX2RlYWN0aXZhdGVfY3MoYTM3MDBfc3BpLCBzcGlfZ2V0X2NoaXBz ZWxlY3Qoc3BpLCAwKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGEzNzAwX3NwaV9oZWFkZXJfc2V0KHN0 cnVjdCBhMzcwMF9zcGkgKmEzNzAwX3NwaSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1h c3BlZWQtc21jLmMgYi9kcml2ZXJzL3NwaS9zcGktYXNwZWVkLXNtYy5jCmluZGV4IDg3M2ZmMmNm NzJjOS4uYjdhOWVjNTUwYmExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktYXNwZWVkLXNt Yy5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1hc3BlZWQtc21jLmMKQEAgLTI5Niw3ICsyOTYsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGFzcGVlZF9zcGlfZGF0YSBhc3QyNDAwX3NwaV9kYXRhOwog c3RhdGljIGludCBkb19hc3BlZWRfc3BpX2V4ZWNfb3Aoc3RydWN0IHNwaV9tZW0gKm1lbSwgY29u c3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQogewogCXN0cnVjdCBhc3BlZWRfc3BpICphc3BpID0g c3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEobWVtLT5zcGktPm1hc3Rlcik7Ci0Jc3RydWN0IGFz cGVlZF9zcGlfY2hpcCAqY2hpcCA9ICZhc3BpLT5jaGlwc1ttZW0tPnNwaS0+Y2hpcF9zZWxlY3Rd OworCXN0cnVjdCBhc3BlZWRfc3BpX2NoaXAgKmNoaXAgPSAmYXNwaS0+Y2hpcHNbc3BpX2dldF9j aGlwc2VsZWN0KG1lbS0+c3BpLCAwKV07CiAJdTMyIGFkZHJfbW9kZSwgYWRkcl9tb2RlX2JhY2t1 cDsKIAl1MzIgY3RsX3ZhbDsKIAlpbnQgcmV0ID0gMDsKQEAgLTM3Nyw3ICszNzcsOCBAQCBzdGF0 aWMgY29uc3QgY2hhciAqYXNwZWVkX3NwaV9nZXRfbmFtZShzdHJ1Y3Qgc3BpX21lbSAqbWVtKQog CXN0cnVjdCBhc3BlZWRfc3BpICphc3BpID0gc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEobWVt LT5zcGktPm1hc3Rlcik7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gYXNwaS0+ZGV2OwogCi0JcmV0 dXJuIGRldm1fa2FzcHJpbnRmKGRldiwgR0ZQX0tFUk5FTCwgIiVzLiVkIiwgZGV2X25hbWUoZGV2 KSwgbWVtLT5zcGktPmNoaXBfc2VsZWN0KTsKKwlyZXR1cm4gZGV2bV9rYXNwcmludGYoZGV2LCBH RlBfS0VSTkVMLCAiJXMuJWQiLCBkZXZfbmFtZShkZXYpLAorCQkJICAgICAgc3BpX2dldF9jaGlw c2VsZWN0KG1lbS0+c3BpLCAwKSk7CiB9CiAKIHN0cnVjdCBhc3BlZWRfc3BpX3dpbmRvdyB7CkBA IC01NTMsNyArNTU0LDcgQEAgc3RhdGljIGludCBhc3BlZWRfc3BpX2RvX2NhbGlicmF0aW9uKHN0 cnVjdCBhc3BlZWRfc3BpX2NoaXAgKmNoaXApOwogc3RhdGljIGludCBhc3BlZWRfc3BpX2Rpcm1h cF9jcmVhdGUoc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rlc2MgKmRlc2MpCiB7CiAJc3RydWN0IGFz cGVlZF9zcGkgKmFzcGkgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShkZXNjLT5tZW0tPnNw aS0+bWFzdGVyKTsKLQlzdHJ1Y3QgYXNwZWVkX3NwaV9jaGlwICpjaGlwID0gJmFzcGktPmNoaXBz W2Rlc2MtPm1lbS0+c3BpLT5jaGlwX3NlbGVjdF07CisJc3RydWN0IGFzcGVlZF9zcGlfY2hpcCAq Y2hpcCA9ICZhc3BpLT5jaGlwc1tzcGlfZ2V0X2NoaXBzZWxlY3QoZGVzYy0+bWVtLT5zcGksIDAp XTsKIAlzdHJ1Y3Qgc3BpX21lbV9vcCAqb3AgPSAmZGVzYy0+aW5mby5vcF90bXBsOwogCXUzMiBj dGxfdmFsOwogCWludCByZXQgPSAwOwpAQCAtNjIwLDcgKzYyMSw3IEBAIHN0YXRpYyBzc2l6ZV90 IGFzcGVlZF9zcGlfZGlybWFwX3JlYWQoc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rlc2MgKmRlc2Ms CiAJCQkJICAgICAgdTY0IG9mZnNldCwgc2l6ZV90IGxlbiwgdm9pZCAqYnVmKQogewogCXN0cnVj dCBhc3BlZWRfc3BpICphc3BpID0gc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoZGVzYy0+bWVt LT5zcGktPm1hc3Rlcik7Ci0Jc3RydWN0IGFzcGVlZF9zcGlfY2hpcCAqY2hpcCA9ICZhc3BpLT5j aGlwc1tkZXNjLT5tZW0tPnNwaS0+Y2hpcF9zZWxlY3RdOworCXN0cnVjdCBhc3BlZWRfc3BpX2No aXAgKmNoaXAgPSAmYXNwaS0+Y2hpcHNbc3BpX2dldF9jaGlwc2VsZWN0KGRlc2MtPm1lbS0+c3Bp LCAwKV07CiAKIAkvKiBTd2l0Y2ggdG8gVVNFUiBjb21tYW5kIG1vZGUgaWYgbWFwcGluZyB3aW5k b3cgaXMgdG9vIHNtYWxsICovCiAJaWYgKGNoaXAtPmFoYl93aW5kb3dfc2l6ZSA8IG9mZnNldCAr IGxlbikgewpAQCAtNjcwLDcgKzY3MSw3IEBAIHN0YXRpYyBpbnQgYXNwZWVkX3NwaV9zZXR1cChz dHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogewogCXN0cnVjdCBhc3BlZWRfc3BpICphc3BpID0gc3Bp X2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwogCWNvbnN0IHN0cnVjdCBhc3Bl ZWRfc3BpX2RhdGEgKmRhdGEgPSBhc3BpLT5kYXRhOwotCXVuc2lnbmVkIGludCBjcyA9IHNwaS0+ Y2hpcF9zZWxlY3Q7CisJdW5zaWduZWQgaW50IGNzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwg MCk7CiAJc3RydWN0IGFzcGVlZF9zcGlfY2hpcCAqY2hpcCA9ICZhc3BpLT5jaGlwc1tjc107CiAK IAljaGlwLT5hc3BpID0gYXNwaTsKQEAgLTY5Nyw3ICs2OTgsNyBAQCBzdGF0aWMgaW50IGFzcGVl ZF9zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIHN0YXRpYyB2b2lkIGFzcGVlZF9z cGlfY2xlYW51cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogewogCXN0cnVjdCBhc3BlZWRfc3Bp ICphc3BpID0gc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwotCXVuc2ln bmVkIGludCBjcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJdW5zaWduZWQgaW50IGNzID0gc3BpX2dl dF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAKIAlhc3BlZWRfc3BpX2NoaXBfZW5hYmxlKGFzcGksIGNz LCBmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1hdDkxLXVzYXJ0LmMgYi9k cml2ZXJzL3NwaS9zcGktYXQ5MS11c2FydC5jCmluZGV4IGZhYjlkMjIzZTI0YS4uY2EwNWM0MmFl NGE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktYXQ5MS11c2FydC5jCisrKyBiL2RyaXZl cnMvc3BpL3NwaS1hdDkxLXVzYXJ0LmMKQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0aWMgaW50IGF0 OTFfdXNhcnRfc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAKIAlkZXZfZGJnKCZz cGktPmRldiwKIAkJInNldHVwOiBicHcgJXUgbW9kZSAweCV4IC0+IG1yICVkICUwOHhcbiIsCi0J CXNwaS0+Yml0c19wZXJfd29yZCwgc3BpLT5tb2RlLCBzcGktPmNoaXBfc2VsZWN0LCBtcik7CisJ CXNwaS0+Yml0c19wZXJfd29yZCwgc3BpLT5tb2RlLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KSwgbXIpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktYXRo NzkuYyBiL2RyaXZlcnMvc3BpL3NwaS1hdGg3OS5jCmluZGV4IDc5NWU4OGRiZWYxYi4uNmMyMDAx Y2ZhM2QxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktYXRoNzkuYworKysgYi9kcml2ZXJz L3NwaS9zcGktYXRoNzkuYwpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgdm9pZCBhdGg3OV9zcGlf Y2hpcHNlbGVjdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQgaXNfYWN0aXZlKQogewogCXN0 cnVjdCBhdGg3OV9zcGkgKnNwID0gYXRoNzlfc3BpZGV2X3RvX3NwKHNwaSk7CiAJaW50IGNzX2hp Z2ggPSAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpID8gaXNfYWN0aXZlIDogIWlzX2FjdGl2ZTsK LQl1MzIgY3NfYml0ID0gQVI3MVhYX1NQSV9JT0NfQ1Moc3BpLT5jaGlwX3NlbGVjdCk7CisJdTMy IGNzX2JpdCA9IEFSNzFYWF9TUElfSU9DX0NTKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsK IAogCWlmIChjc19oaWdoKQogCQlzcC0+aW9jX2Jhc2UgfD0gY3NfYml0OwpAQCAtMTQwLDcgKzE0 MCw3IEBAIHN0YXRpYyBpbnQgYXRoNzlfZXhlY19tZW1fb3Aoc3RydWN0IHNwaV9tZW0gKm1lbSwK IAlzdHJ1Y3QgYXRoNzlfc3BpICpzcCA9IGF0aDc5X3NwaWRldl90b19zcChtZW0tPnNwaSk7CiAK IAkvKiBFbnN1cmVzIHRoYXQgcmVhZGluZyBpcyBwZXJmb3JtZWQgb24gZGV2aWNlIGNvbm5lY3Rl ZCB0byBoYXJkd2FyZSBjczAgKi8KLQlpZiAobWVtLT5zcGktPmNoaXBfc2VsZWN0IHx8IG1lbS0+ c3BpLT5jc19ncGlvZCkKKwlpZiAoc3BpX2dldF9jaGlwc2VsZWN0KG1lbS0+c3BpLCAwKSB8fCBz cGlfZ2V0X2NzZ3Bpb2QobWVtLT5zcGksIDApKQogCQlyZXR1cm4gLUVOT1RTVVBQOwogCiAJLyog T25seSB1c2UgZm9yIGZhc3QtcmVhZCBvcC4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3Nw aS1hdG1lbC5jIGIvZHJpdmVycy9zcGkvc3BpLWF0bWVsLmMKaW5kZXggNWM1Njc4ZjA2NWYzLi43 YjE3NjA0YTc3NjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1hdG1lbC5jCisrKyBiL2Ry aXZlcnMvc3BpL3NwaS1hdG1lbC5jCkBAIC0zMjcsMTAgKzMyNywxMCBAQCBzdGF0aWMgdm9pZCBj c19hY3RpdmF0ZShzdHJ1Y3QgYXRtZWxfc3BpICphcywgc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkK IAlpbnQgY2hpcF9zZWxlY3Q7CiAJdTMyIG1yOwogCi0JaWYgKHNwaS0+Y3NfZ3Bpb2QpCisJaWYg KHNwaV9nZXRfY3NncGlvZChzcGksIDApKQogCQljaGlwX3NlbGVjdCA9IGFzLT5uYXRpdmVfY3Nf Zm9yX2dwaW87CiAJZWxzZQotCQljaGlwX3NlbGVjdCA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJCWNo aXBfc2VsZWN0ID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAKIAlpZiAoYXRtZWxfc3Bp X2lzX3YyKGFzKSkgewogCQlzcGlfd3JpdGVsKGFzLCBDU1IwICsgNCAqIGNoaXBfc2VsZWN0LCBh c2QtPmNzcik7CkBAIC0zNzgsMTAgKzM3OCwxMCBAQCBzdGF0aWMgdm9pZCBjc19kZWFjdGl2YXRl KHN0cnVjdCBhdG1lbF9zcGkgKmFzLCBzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCWludCBjaGlw X3NlbGVjdDsKIAl1MzIgbXI7CiAKLQlpZiAoc3BpLT5jc19ncGlvZCkKKwlpZiAoc3BpX2dldF9j c2dwaW9kKHNwaSwgMCkpCiAJCWNoaXBfc2VsZWN0ID0gYXMtPm5hdGl2ZV9jc19mb3JfZ3BpbzsK IAllbHNlCi0JCWNoaXBfc2VsZWN0ID0gc3BpLT5jaGlwX3NlbGVjdDsKKwkJY2hpcF9zZWxlY3Qg PSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAogCS8qIG9ubHkgZGVhY3RpdmF0ZSAqdGhp cyogZGV2aWNlOyBzb21ldGltZXMgdHJhbnNmZXJzIHRvCiAJICogYW5vdGhlciBkZXZpY2UgbWF5 IGJlIGFjdGl2ZSB3aGVuIHRoaXMgcm91dGluZSBpcyBjYWxsZWQuCkBAIC0zOTQsNyArMzk0LDcg QEAgc3RhdGljIHZvaWQgY3NfZGVhY3RpdmF0ZShzdHJ1Y3QgYXRtZWxfc3BpICphcywgc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSkKIAogCWRldl9kYmcoJnNwaS0+ZGV2LCAiREVhY3RpdmF0ZSBOUENT LCBtciAlMDh4XG4iLCBtcik7CiAKLQlpZiAoIXNwaS0+Y3NfZ3Bpb2QpCisJaWYgKCFzcGlfZ2V0 X2NzZ3Bpb2Qoc3BpLCAwKSkKIAkJc3BpX3dyaXRlbChhcywgQ1IsIFNQSV9CSVQoTEFTVFhGRVIp KTsKIH0KIApAQCAtODAwLDEwICs4MDAsMTAgQEAgc3RhdGljIGludCBhdG1lbF9zcGlfc2V0X3hm ZXJfc3BlZWQoc3RydWN0IGF0bWVsX3NwaSAqYXMsCiAJdW5zaWduZWQgbG9uZwkJYnVzX2h6Owog CWludCBjaGlwX3NlbGVjdDsKIAotCWlmIChzcGktPmNzX2dwaW9kKQorCWlmIChzcGlfZ2V0X2Nz Z3Bpb2Qoc3BpLCAwKSkKIAkJY2hpcF9zZWxlY3QgPSBhcy0+bmF0aXZlX2NzX2Zvcl9ncGlvOwog CWVsc2UKLQkJY2hpcF9zZWxlY3QgPSBzcGktPmNoaXBfc2VsZWN0OworCQljaGlwX3NlbGVjdCA9 IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCiAJLyogdjEgY2hpcHMgc3RhcnQgb3V0IGF0 IGhhbGYgdGhlIHBlcmlwaGVyYWwgYnVzIHNwZWVkLiAqLwogCWJ1c19oeiA9IGFzLT5zcGlfY2xr OwpAQCAtMTE4OSw3ICsxMTg5LDcgQEAgc3RhdGljIGludCBhdG1lbF9zcGlfc2V0dXAoc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSkKIAlhcyA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKHNwaS0+ Y29udHJvbGxlcik7CiAKIAkvKiBzZWUgbm90ZXMgYWJvdmUgcmUgY2hpcHNlbGVjdCAqLwotCWlm ICghc3BpLT5jc19ncGlvZCAmJiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpKSB7CisJaWYgKCFz cGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSAmJiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpKSB7CiAJ CWRldl93YXJuKCZzcGktPmRldiwgInNldHVwOiBub24gR1BJTyBDUyBjYW4ndCBiZSBhY3RpdmUt aGlnaFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTEyMDEsMTYgKzEyMDEsMTYgQEAg c3RhdGljIGludCBhdG1lbF9zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkgKi8K IAlpbml0aWFsaXplX25hdGl2ZV9jc19mb3JfZ3Bpbyhhcyk7CiAKLQlpZiAoc3BpLT5jc19ncGlv ZCAmJiBhcy0+bmF0aXZlX2NzX2ZyZWUpIHsKKwlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkg JiYgYXMtPm5hdGl2ZV9jc19mcmVlKSB7CiAJCWRldl9lcnIoJnNwaS0+ZGV2LAogCQkJIk5vIG5h dGl2ZSBDUyBhdmFpbGFibGUgdG8gc3VwcG9ydCB0aGlzIEdQSU8gQ1NcbiIpOwogCQlyZXR1cm4g LUVCVVNZOwogCX0KIAotCWlmIChzcGktPmNzX2dwaW9kKQorCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qo c3BpLCAwKSkKIAkJY2hpcF9zZWxlY3QgPSBhcy0+bmF0aXZlX2NzX2Zvcl9ncGlvOwogCWVsc2UK LQkJY2hpcF9zZWxlY3QgPSBzcGktPmNoaXBfc2VsZWN0OworCQljaGlwX3NlbGVjdCA9IHNwaV9n ZXRfY2hpcHNlbGVjdChzcGksIDApOwogCiAJY3NyID0gU1BJX0JGKEJJVFMsIGJpdHMgLSA4KTsK IAlpZiAoc3BpLT5tb2RlICYgU1BJX0NQT0wpCkBAIC0xMjE4LDcgKzEyMTgsNyBAQCBzdGF0aWMg aW50IGF0bWVsX3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCWlmICghKHNwaS0+ bW9kZSAmIFNQSV9DUEhBKSkKIAkJY3NyIHw9IFNQSV9CSVQoTkNQSEEpOwogCi0JaWYgKCFzcGkt PmNzX2dwaW9kKQorCWlmICghc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCiAJCWNzciB8PSBTUElf QklUKENTQUFUKTsKIAljc3IgfD0gU1BJX0JGKERMWUJTLCAwKTsKIApAQCAtMTI0NCw3ICsxMjQ0 LDcgQEAgc3RhdGljIGludCBhdG1lbF9zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkK IAogCWRldl9kYmcoJnNwaS0+ZGV2LAogCQkic2V0dXA6IGJwdyAldSBtb2RlIDB4JXggLT4gY3Ny JWQgJTA4eFxuIiwKLQkJYml0cywgc3BpLT5tb2RlLCBzcGktPmNoaXBfc2VsZWN0LCBjc3IpOwor CQliaXRzLCBzcGktPm1vZGUsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApLCBjc3IpOwogCiAJ aWYgKCFhdG1lbF9zcGlfaXNfdjIoYXMpKQogCQlzcGlfd3JpdGVsKGFzLCBDU1IwICsgNCAqIGNo aXBfc2VsZWN0LCBjc3IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWF1MTU1MC5jIGIv ZHJpdmVycy9zcGkvc3BpLWF1MTU1MC5jCmluZGV4IGUwMDg3NjEyOThkYS4uZGE3MTNjZGZlMDg3 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktYXUxNTUwLmMKKysrIGIvZHJpdmVycy9zcGkv c3BpLWF1MTU1MC5jCkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQgYXUxNTUwX3NwaV9j aGlwc2VsKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGludCB2YWx1ZSkKIAlzd2l0Y2ggKHZhbHVl KSB7CiAJY2FzZSBCSVRCQU5HX0NTX0lOQUNUSVZFOgogCQlpZiAoaHctPnBkYXRhLT5kZWFjdGl2 YXRlX2NzKQotCQkJaHctPnBkYXRhLT5kZWFjdGl2YXRlX2NzKGh3LT5wZGF0YSwgc3BpLT5jaGlw X3NlbGVjdCwKKwkJCWh3LT5wZGF0YS0+ZGVhY3RpdmF0ZV9jcyhody0+cGRhdGEsIHNwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApLAogCQkJCQljc3BvbCk7CiAJCWJyZWFrOwogCkBAIC0yMTEsNyAr MjExLDcgQEAgc3RhdGljIHZvaWQgYXUxNTUwX3NwaV9jaGlwc2VsKHN0cnVjdCBzcGlfZGV2aWNl ICpzcGksIGludCB2YWx1ZSkKIAkJfSB3aGlsZSAoKHN0YXQgJiBQU0NfU1BJU1RBVF9EUikgPT0g MCk7CiAKIAkJaWYgKGh3LT5wZGF0YS0+YWN0aXZhdGVfY3MpCi0JCQlody0+cGRhdGEtPmFjdGl2 YXRlX2NzKGh3LT5wZGF0YSwgc3BpLT5jaGlwX3NlbGVjdCwKKwkJCWh3LT5wZGF0YS0+YWN0aXZh dGVfY3MoaHctPnBkYXRhLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSwKIAkJCQkJY3Nwb2wp OwogCQlicmVhazsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktYXhpLXNwaS1lbmdp bmUuYyBiL2RyaXZlcnMvc3BpL3NwaS1heGktc3BpLWVuZ2luZS5jCmluZGV4IDgwYzNlMzhmNWMx Yi4uMWZmMjg3ODRjZmJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktYXhpLXNwaS1lbmdp bmUuYworKysgYi9kcml2ZXJzL3NwaS9zcGktYXhpLXNwaS1lbmdpbmUuYwpAQCAtMTkzLDcgKzE5 Myw3IEBAIHN0YXRpYyB2b2lkIHNwaV9lbmdpbmVfZ2VuX2NzKHN0cnVjdCBzcGlfZW5naW5lX3By b2dyYW0gKnAsIGJvb2wgZHJ5LAogCXVuc2lnbmVkIGludCBtYXNrID0gMHhmZjsKIAogCWlmIChh c3NlcnQpCi0JCW1hc2sgXj0gQklUKHNwaS0+Y2hpcF9zZWxlY3QpOworCQltYXNrIF49IEJJVChz cGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAlzcGlfZW5naW5lX3Byb2dyYW1fYWRkX2Nt ZChwLCBkcnksIFNQSV9FTkdJTkVfQ01EX0FTU0VSVCgxLCBtYXNrKSk7CiB9CmRpZmYgLS1naXQg YS9kcml2ZXJzL3NwaS9zcGktYmNtLXFzcGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1iY20tcXNwaS5j CmluZGV4IDBlZWU1NzRkM2UxZi4uN2MyZjFkMWZiM2Y3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Nw aS9zcGktYmNtLXFzcGkuYworKysgYi9kcml2ZXJzL3NwaS9zcGktYmNtLXFzcGkuYwpAQCAtOTg2 LDcgKzk4Niw3IEBAIHN0YXRpYyBpbnQgd3JpdGVfdG9faHcoc3RydWN0IGJjbV9xc3BpICpxc3Bp LCBzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCQlpZiAoaGFzX2JzcGkocXNwaSkpCiAJCQltc3Bp X2NkcmFtICY9IH4xOwogCQllbHNlCi0JCQltc3BpX2NkcmFtIHw9ICh+KDEgPDwgc3BpLT5jaGlw X3NlbGVjdCkgJgorCQkJbXNwaV9jZHJhbSB8PSAofigxIDw8IHNwaV9nZXRfY2hpcHNlbGVjdChz cGksIDApKSAmCiAJCQkJICAgICAgIE1TUElfQ0RSQU1fUENTKTsKIAogCQl3cml0ZV9jZHJhbV9z bG90KHFzcGksIHNsb3QsIG1zcGlfY2RyYW0pOwpAQCAtMTA0Niw4ICsxMDQ2LDggQEAgc3RhdGlj IGludCBiY21fcXNwaV9ic3BpX2V4ZWNfbWVtX29wKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJ CQlyZXR1cm4gLUVJTzsKIAogCWZyb20gPSBvcC0+YWRkci52YWw7Ci0JaWYgKCFzcGktPmNzX2dw aW9kKQotCQliY21fcXNwaV9jaGlwX3NlbGVjdChxc3BpLCBzcGktPmNoaXBfc2VsZWN0KTsKKwlp ZiAoIXNwaV9nZXRfY3NncGlvZChzcGksIDApKQorCQliY21fcXNwaV9jaGlwX3NlbGVjdChxc3Bp LCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJYmNtX3FzcGlfd3JpdGUocXNwaSwgTVNQ SSwgTVNQSV9XUklURV9MT0NLLCAwKTsKIAogCS8qCkBAIC0xMTI2LDggKzExMjYsOCBAQCBzdGF0 aWMgaW50IGJjbV9xc3BpX3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVyLAog CWludCBzbG90czsKIAl1bnNpZ25lZCBsb25nIHRpbWVvID0gbXNlY3NfdG9famlmZmllcygxMDAp OwogCi0JaWYgKCFzcGktPmNzX2dwaW9kKQotCQliY21fcXNwaV9jaGlwX3NlbGVjdChxc3BpLCBz cGktPmNoaXBfc2VsZWN0KTsKKwlpZiAoIXNwaV9nZXRfY3NncGlvZChzcGksIDApKQorCQliY21f cXNwaV9jaGlwX3NlbGVjdChxc3BpLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJcXNw aS0+dHJhbnNfcG9zLnRyYW5zID0gdHJhbnM7CiAJcXNwaS0+dHJhbnNfcG9zLmJ5dGUgPSAwOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktYmNtMjgzNS5jIGIvZHJpdmVycy9zcGkvc3Bp LWJjbTI4MzUuYwppbmRleCA3NDdlMDMyMjhjNDguLjZiN2EzZmE5M2ZkZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9zcGkvc3BpLWJjbTI4MzUuYworKysgYi9kcml2ZXJzL3NwaS9zcGktYmNtMjgzNS5j CkBAIC0xMjc0LDkgKzEyNzQsOSBAQCBzdGF0aWMgaW50IGJjbTI4MzVfc3BpX3NldHVwKHN0cnVj dCBzcGlfZGV2aWNlICpzcGkpCiAJICogVGhlIFNQSSBjb3JlIGhhcyBzdWNjZXNzZnVsbHkgcmVx dWVzdGVkIHRoZSBDUyBHUElPIGxpbmUgZnJvbSB0aGUKIAkgKiBkZXZpY2UgdHJlZSwgc28gd2Ug YXJlIGRvbmUuCiAJICovCi0JaWYgKHNwaS0+Y3NfZ3Bpb2QpCisJaWYgKHNwaV9nZXRfY3NncGlv ZChzcGksIDApKQogCQlyZXR1cm4gMDsKLQlpZiAoc3BpLT5jaGlwX3NlbGVjdCA+IDEpIHsKKwlp ZiAoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkgPiAxKSB7CiAJCS8qIGVycm9yIGluIHRoZSBj YXNlIG9mIG5hdGl2ZSBDUyByZXF1ZXN0ZWQgd2l0aCBDUyA+IDEKIAkJICogb2ZmaWNpYWxseSB0 aGVyZSBpcyBhIENTMiwgYnV0IGl0IGlzIG5vdCBkb2N1bWVudGVkCiAJCSAqIHdoaWNoIEdQSU8g aXMgY29ubmVjdGVkIHdpdGggdGhhdC4uLgpAQCAtMTMwMSwxOCArMTMwMSwxOSBAQCBzdGF0aWMg aW50IGJjbTI4MzVfc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJaWYgKCFjaGlw KQogCQlyZXR1cm4gMDsKIAotCXNwaS0+Y3NfZ3Bpb2QgPSBncGlvY2hpcF9yZXF1ZXN0X293bl9k ZXNjKGNoaXAsIDggLSBzcGktPmNoaXBfc2VsZWN0LAotCQkJCQkJICBEUlZfTkFNRSwKLQkJCQkJ CSAgR1BJT19MT09LVVBfRkxBR1NfREVGQVVMVCwKLQkJCQkJCSAgR1BJT0RfT1VUX0xPVyk7Ci0J aWYgKElTX0VSUihzcGktPmNzX2dwaW9kKSkgewotCQlyZXQgPSBQVFJfRVJSKHNwaS0+Y3NfZ3Bp b2QpOworCXNwaV9zZXRfY3NncGlvZChzcGksIDAsIGdwaW9jaGlwX3JlcXVlc3Rfb3duX2Rlc2Mo Y2hpcCwKKwkJCQkJCQkgIDggLSAoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpLAorCQkJCQkJ CSAgRFJWX05BTUUsCisJCQkJCQkJICBHUElPX0xPT0tVUF9GTEFHU19ERUZBVUxULAorCQkJCQkJ CSAgR1BJT0RfT1VUX0xPVykpOworCWlmIChJU19FUlIoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkp KSB7CisJCXJldCA9IFBUUl9FUlIoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpOwogCQlnb3RvIGVy cl9jbGVhbnVwOwogCX0KIAogCS8qIGFuZCBzZXQgdXAgdGhlICJtb2RlIiBhbmQgbGV2ZWwgKi8K IAlkZXZfaW5mbygmc3BpLT5kZXYsICJzZXR0aW5nIHVwIG5hdGl2ZS1DUyVpIHRvIHVzZSBHUElP XG4iLAotCQkgc3BpLT5jaGlwX3NlbGVjdCk7CisJCSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KSk7CiAKIAlyZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWJjbTI4MzVh dXguYyBiL2RyaXZlcnMvc3BpL3NwaS1iY20yODM1YXV4LmMKaW5kZXggZTI4NTIxOTIyMzMwLi5h M2Q4ZjYxMDg0NzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1iY20yODM1YXV4LmMKKysr IGIvZHJpdmVycy9zcGkvc3BpLWJjbTI4MzVhdXguYwpAQCAtNDQ4LDcgKzQ0OCw3IEBAIHN0YXRp YyBpbnQgYmNtMjgzNWF1eF9zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlpZiAo c3BpLT5tb2RlICYgU1BJX05PX0NTKQogCQlyZXR1cm4gMDsKIAotCWlmIChzcGktPmNzX2dwaW9k KQorCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKIAkJcmV0dXJuIDA7CiAKIAkvKiBmb3Ig ZHQtYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6IG9ubHkgc3VwcG9ydCBuYXRpdmUgb24gQ1MwCkBA IC00NjUsNyArNDY1LDcgQEAgc3RhdGljIGludCBiY20yODM1YXV4X3NwaV9zZXR1cChzdHJ1Y3Qg c3BpX2RldmljZSAqc3BpKQogCWRldl93YXJuKCZzcGktPmRldiwKIAkJICJOYXRpdmUgQ1MgaXMg bm90IHN1cHBvcnRlZCAtIHBsZWFzZSBjb25maWd1cmUgY3MtZ3BpbyBpbiBkZXZpY2UtdHJlZVxu Iik7CiAKLQlpZiAoc3BpLT5jaGlwX3NlbGVjdCA9PSAwKQorCWlmIChzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKSA9PSAwKQogCQlyZXR1cm4gMDsKIAogCWRldl93YXJuKCZzcGktPmRldiwgIk5h dGl2ZSBDUyBpcyBub3Qgd29ya2luZyBmb3IgY3MgPiAwXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3BpL3NwaS1iY202M3h4LWhzc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGktYmNtNjN4eC1oc3Nw aS5jCmluZGV4IDU1Y2JlN2RlYmEwOC4uNDk1ZGYyNDdjMjRkIDEwMDY0NAotLS0gYS9kcml2ZXJz L3NwaS9zcGktYmNtNjN4eC1oc3NwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1iY202M3h4LWhz c3BpLmMKQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMgdm9pZCBiY202M3h4X2hzc3BpX3NldF9j cyhzdHJ1Y3QgYmNtNjN4eF9oc3NwaSAqYnMsIHVuc2lnbmVkIGludCBjcywKIHN0YXRpYyB2b2lk IGJjbTYzeHhfaHNzcGlfc2V0X2NsayhzdHJ1Y3QgYmNtNjN4eF9oc3NwaSAqYnMsCiAJCQkJICBz dHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQgaHopCiB7Ci0JdW5zaWduZWQgaW50IHByb2ZpbGUg PSBzcGktPmNoaXBfc2VsZWN0OworCXVuc2lnbmVkIGludCBwcm9maWxlID0gc3BpX2dldF9jaGlw c2VsZWN0KHNwaSwgMCk7CiAJdTMyIHJlZzsKIAogCXJlZyA9IERJVl9ST1VORF9VUCgyMDQ4LCBE SVZfUk9VTkRfVVAoYnMtPnNwZWVkX2h6LCBoeikpOwpAQCAtMjA5LDcgKzIwOSw3IEBAIHN0YXRp YyB2b2lkIGJjbTYzeHhfaHNzcGlfc2V0X2NsayhzdHJ1Y3QgYmNtNjN4eF9oc3NwaSAqYnMsCiBz dGF0aWMgaW50IGJjbTYzeHhfaHNzcGlfZG9fdHhyeChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBz dHJ1Y3Qgc3BpX3RyYW5zZmVyICp0KQogewogCXN0cnVjdCBiY202M3h4X2hzc3BpICpicyA9IHNw aV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwotCXVuc2lnbmVkIGludCBjaGlwX3Nl bGVjdCA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJdW5zaWduZWQgaW50IGNoaXBfc2VsZWN0ID0gc3Bp X2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJdTE2IG9wY29kZSA9IDA7CiAJaW50IHBlbmRpbmcg PSB0LT5sZW47CiAJaW50IHN0ZXBfc2l6ZSA9IEhTU1BJX0JVRkZFUl9MRU47CkBAIC0yMTksNyAr MjE5LDcgQEAgc3RhdGljIGludCBiY202M3h4X2hzc3BpX2RvX3R4cngoc3RydWN0IHNwaV9kZXZp Y2UgKnNwaSwgc3RydWN0IHNwaV90cmFuc2ZlciAqdCkKIAl1bnNpZ25lZCBsb25nIGxpbWl0Owog CiAJYmNtNjN4eF9oc3NwaV9zZXRfY2xrKGJzLCBzcGksIHQtPnNwZWVkX2h6KTsKLQliY202M3h4 X2hzc3BpX3NldF9jcyhicywgc3BpLT5jaGlwX3NlbGVjdCwgdHJ1ZSk7CisJYmNtNjN4eF9oc3Nw aV9zZXRfY3MoYnMsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApLCB0cnVlKTsKIAogCWlmICh0 eCAmJiByeCkKIAkJb3Bjb2RlID0gSFNTUElfT1BfUkVBRF9XUklURTsKQEAgLTI5OSwxNCArMjk5 LDE0IEBAIHN0YXRpYyBpbnQgYmNtNjN4eF9oc3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAq c3BpKQogCXUzMiByZWc7CiAKIAlyZWcgPSBfX3Jhd19yZWFkbChicy0+cmVncyArCi0JCQkgIEhT U1BJX1BST0ZJTEVfU0lHTkFMX0NUUkxfUkVHKHNwaS0+Y2hpcF9zZWxlY3QpKTsKKwkJCSAgSFNT UElfUFJPRklMRV9TSUdOQUxfQ1RSTF9SRUcoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpKTsK IAlyZWcgJj0gfihTSUdOQUxfQ1RSTF9MQVVOQ0hfUklTSU5HIHwgU0lHTkFMX0NUUkxfTEFUQ0hf UklTSU5HKTsKIAlpZiAoc3BpLT5tb2RlICYgU1BJX0NQSEEpCiAJCXJlZyB8PSBTSUdOQUxfQ1RS TF9MQVVOQ0hfUklTSU5HOwogCWVsc2UKIAkJcmVnIHw9IFNJR05BTF9DVFJMX0xBVENIX1JJU0lO RzsKIAlfX3Jhd193cml0ZWwocmVnLCBicy0+cmVncyArCi0JCSAgICAgSFNTUElfUFJPRklMRV9T SUdOQUxfQ1RSTF9SRUcoc3BpLT5jaGlwX3NlbGVjdCkpOworCQkgICAgIEhTU1BJX1BST0ZJTEVf U0lHTkFMX0NUUkxfUkVHKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSk7CiAKIAltdXRleF9s b2NrKCZicy0+YnVzX211dGV4KTsKIAlyZWcgPSBfX3Jhd19yZWFkbChicy0+cmVncyArIEhTU1BJ X0dMT0JBTF9DVFJMX1JFRyk7CkBAIC0zMTQsMTYgKzMxNCwxNiBAQCBzdGF0aWMgaW50IGJjbTYz eHhfaHNzcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkvKiBvbmx5IGNoYW5nZSBh Y3R1YWwgcG9sYXJpdGllcyBpZiB0aGVyZSBpcyBubyB0cmFuc2ZlciAqLwogCWlmICgocmVnICYg R0xPQkFMX0NUUkxfQ1NfUE9MQVJJVFlfTUFTSykgPT0gYnMtPmNzX3BvbGFyaXR5KSB7CiAJCWlm IChzcGktPm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJCXJlZyB8PSBCSVQoc3BpLT5jaGlwX3NlbGVj dCk7CisJCQlyZWcgfD0gQklUKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAkJZWxzZQot CQkJcmVnICY9IH5CSVQoc3BpLT5jaGlwX3NlbGVjdCk7CisJCQlyZWcgJj0gfkJJVChzcGlfZ2V0 X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJCV9fcmF3X3dyaXRlbChyZWcsIGJzLT5yZWdzICsgSFNT UElfR0xPQkFMX0NUUkxfUkVHKTsKIAl9CiAKIAlpZiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gp Ci0JCWJzLT5jc19wb2xhcml0eSB8PSBCSVQoc3BpLT5jaGlwX3NlbGVjdCk7CisJCWJzLT5jc19w b2xhcml0eSB8PSBCSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCWVsc2UKLQkJYnMt PmNzX3BvbGFyaXR5ICY9IH5CSVQoc3BpLT5jaGlwX3NlbGVjdCk7CisJCWJzLT5jc19wb2xhcml0 eSAmPSB+QklUKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAogCW11dGV4X3VubG9jaygm YnMtPmJ1c19tdXRleCk7CiAKQEAgLTM1NSw3ICszNTUsNyBAQCBzdGF0aWMgaW50IGJjbTYzeHhf aHNzcGlfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAJICogZS4gQXQg dGhlIGVuZCByZXN0b3JlIHRoZSBwb2xhcml0aWVzIGFnYWluIHRvIHRoZWlyIGRlZmF1bHQgdmFs dWVzLgogCSAqLwogCi0JZHVtbXlfY3MgPSAhc3BpLT5jaGlwX3NlbGVjdDsKKwlkdW1teV9jcyA9 ICFzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAliY202M3h4X2hzc3BpX3NldF9jcyhicywg ZHVtbXlfY3MsIHRydWUpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0LCAmbXNnLT50cmFuc2Zl cnMsIHRyYW5zZmVyX2xpc3QpIHsKQEAgLTM2OCw3ICszNjgsNyBAQCBzdGF0aWMgaW50IGJjbTYz eHhfaHNzcGlfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAJCXNwaV90 cmFuc2Zlcl9kZWxheV9leGVjKHQpOwogCiAJCWlmICh0LT5jc19jaGFuZ2UpCi0JCQliY202M3h4 X2hzc3BpX3NldF9jcyhicywgc3BpLT5jaGlwX3NlbGVjdCwgZmFsc2UpOworCQkJYmNtNjN4eF9o c3NwaV9zZXRfY3MoYnMsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApLCBmYWxzZSk7CiAJfQog CiAJbXV0ZXhfbG9jaygmYnMtPmJ1c19tdXRleCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9z cGktYmNtNjN4eC5jIGIvZHJpdmVycy9zcGkvc3BpLWJjbTYzeHguYwppbmRleCAzNjg2ZDc4YzQ0 YTYuLjc4NzYyNWNlNzAwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWJjbTYzeHguYwor KysgYi9kcml2ZXJzL3NwaS9zcGktYmNtNjN4eC5jCkBAIC0yOTIsNyArMjkyLDcgQEAgc3RhdGlj IGludCBiY202M3h4X3R4cnhfYnVmcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3Qgc3Bp X3RyYW5zZmVyICpmaXJzdCwKIAkvKiBJc3N1ZSB0aGUgdHJhbnNmZXIgKi8KIAljbWQgPSBTUElf Q01EX1NUQVJUX0lNTUVESUFURTsKIAljbWQgfD0gKHByZXBlbmRfbGVuIDw8IFNQSV9DTURfUFJF UEVORF9CWVRFX0NOVF9TSElGVCk7Ci0JY21kIHw9IChzcGktPmNoaXBfc2VsZWN0IDw8IFNQSV9D TURfREVWSUNFX0lEX1NISUZUKTsKKwljbWQgfD0gKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDAp IDw8IFNQSV9DTURfREVWSUNFX0lEX1NISUZUKTsKIAliY21fc3BpX3dyaXRldyhicywgY21kLCBT UElfQ01EKTsKIAogCS8qIEVuYWJsZSB0aGUgQ01EX0RPTkUgaW50ZXJydXB0ICovCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3NwaS9zcGktY2FkZW5jZS1xdWFkc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGkt Y2FkZW5jZS1xdWFkc3BpLmMKaW5kZXggNjc2MzEzZTFiZGFkLi5iNGExMjAxZjdlMWIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1jYWRlbmNlLXF1YWRzcGkuYworKysgYi9kcml2ZXJzL3Nw aS9zcGktY2FkZW5jZS1xdWFkc3BpLmMKQEAgLTEzMjksNyArMTMyOSw3IEBAIHN0YXRpYyBpbnQg Y3FzcGlfbWVtX3Byb2Nlc3Moc3RydWN0IHNwaV9tZW0gKm1lbSwgY29uc3Qgc3RydWN0IHNwaV9t ZW1fb3AgKm9wKQogCXN0cnVjdCBjcXNwaV9zdCAqY3FzcGkgPSBzcGlfbWFzdGVyX2dldF9kZXZk YXRhKG1lbS0+c3BpLT5tYXN0ZXIpOwogCXN0cnVjdCBjcXNwaV9mbGFzaF9wZGF0YSAqZl9wZGF0 YTsKIAotCWZfcGRhdGEgPSAmY3FzcGktPmZfcGRhdGFbbWVtLT5zcGktPmNoaXBfc2VsZWN0XTsK KwlmX3BkYXRhID0gJmNxc3BpLT5mX3BkYXRhW3NwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwg MCldOwogCWNxc3BpX2NvbmZpZ3VyZShmX3BkYXRhLCBtZW0tPnNwaS0+bWF4X3NwZWVkX2h6KTsK IAogCWlmIChvcC0+ZGF0YS5kaXIgPT0gU1BJX01FTV9EQVRBX0lOICYmIG9wLT5kYXRhLmJ1Zi5p bikgewpAQCAtMTUyOSw3ICsxNTI5LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNxc3BpX2dldF9u YW1lKHN0cnVjdCBzcGlfbWVtICptZW0pCiAJc3RydWN0IGNxc3BpX3N0ICpjcXNwaSA9IHNwaV9t YXN0ZXJfZ2V0X2RldmRhdGEobWVtLT5zcGktPm1hc3Rlcik7CiAJc3RydWN0IGRldmljZSAqZGV2 ID0gJmNxc3BpLT5wZGV2LT5kZXY7CiAKLQlyZXR1cm4gZGV2bV9rYXNwcmludGYoZGV2LCBHRlBf S0VSTkVMLCAiJXMuJWQiLCBkZXZfbmFtZShkZXYpLCBtZW0tPnNwaS0+Y2hpcF9zZWxlY3QpOwor CXJldHVybiBkZXZtX2thc3ByaW50ZihkZXYsIEdGUF9LRVJORUwsICIlcy4lZCIsIGRldl9uYW1l KGRldiksCisJCQkgICAgICBzcGlfZ2V0X2NoaXBzZWxlY3QobWVtLT5zcGksIDApKTsKIH0KIAog c3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfY29udHJvbGxlcl9tZW1fb3BzIGNxc3BpX21lbV9vcHMg PSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktY2FkZW5jZS14c3BpLmMgYi9kcml2ZXJz L3NwaS9zcGktY2FkZW5jZS14c3BpLmMKaW5kZXggOTFkYjNjOTczMTY3Li5jZTRhMzE0NWYwNjUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1jYWRlbmNlLXhzcGkuYworKysgYi9kcml2ZXJz L3NwaS9zcGktY2FkZW5jZS14c3BpLmMKQEAgLTQwOSw4ICs0MDksOCBAQCBzdGF0aWMgaW50IGNk bnNfeHNwaV9tZW1fb3Aoc3RydWN0IGNkbnNfeHNwaV9kZXYgKmNkbnNfeHNwaSwKIHsKIAllbnVt IHNwaV9tZW1fZGF0YV9kaXIgZGlyID0gb3AtPmRhdGEuZGlyOwogCi0JaWYgKGNkbnNfeHNwaS0+ Y3VyX2NzICE9IG1lbS0+c3BpLT5jaGlwX3NlbGVjdCkKLQkJY2Ruc194c3BpLT5jdXJfY3MgPSBt ZW0tPnNwaS0+Y2hpcF9zZWxlY3Q7CisJaWYgKGNkbnNfeHNwaS0+Y3VyX2NzICE9IHNwaV9nZXRf Y2hpcHNlbGVjdChtZW0tPnNwaSwgMCkpCisJCWNkbnNfeHNwaS0+Y3VyX2NzID0gc3BpX2dldF9j aGlwc2VsZWN0KG1lbS0+c3BpLCAwKTsKIAogCXJldHVybiBjZG5zX3hzcGlfc2VuZF9zdGlnX2Nv bW1hbmQoY2Ruc194c3BpLCBvcCwKIAkJCQkJICAgKGRpciAhPSBTUElfTUVNX05PX0RBVEEpKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1jYWRlbmNlLmMgYi9kcml2ZXJzL3NwaS9zcGkt Y2FkZW5jZS5jCmluZGV4IDZhN2Y3ZGYxZTc3Ni4uNGVjNzc4ZGU1YmFmIDEwMDY0NAotLS0gYS9k cml2ZXJzL3NwaS9zcGktY2FkZW5jZS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1jYWRlbmNlLmMK QEAgLTE4NSwxMSArMTg1LDExIEBAIHN0YXRpYyB2b2lkIGNkbnNfc3BpX2NoaXBzZWxlY3Qoc3Ry dWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBpc19oaWdoKQogCQkvKiBTZWxlY3QgdGhlIHNsYXZl ICovCiAJCWN0cmxfcmVnICY9IH5DRE5TX1NQSV9DUl9TU0NUUkw7CiAJCWlmICghKHhzcGktPmlz X2RlY29kZWRfY3MpKQotCQkJY3RybF9yZWcgfD0gKCh+KENETlNfU1BJX1NTMCA8PCBzcGktPmNo aXBfc2VsZWN0KSkgPDwKKwkJCWN0cmxfcmVnIHw9ICgofihDRE5TX1NQSV9TUzAgPDwgc3BpX2dl dF9jaGlwc2VsZWN0KHNwaSwgMCkpKSA8PAogCQkJCSAgICAgQ0ROU19TUElfU1NfU0hJRlQpICYK IAkJCQkgICAgIENETlNfU1BJX0NSX1NTQ1RSTDsKIAkJZWxzZQotCQkJY3RybF9yZWcgfD0gKHNw aS0+Y2hpcF9zZWxlY3QgPDwgQ0ROU19TUElfU1NfU0hJRlQpICYKKwkJCWN0cmxfcmVnIHw9IChz cGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSA8PCBDRE5TX1NQSV9TU19TSElGVCkgJgogCQkJCSAg ICAgQ0ROU19TUElfQ1JfU1NDVFJMOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3Bp LWNhdml1bS5jIGIvZHJpdmVycy9zcGkvc3BpLWNhdml1bS5jCmluZGV4IDY4NTRjM2NlNDIzYi4u ZGZlMjI0ZGVmZDZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktY2F2aXVtLmMKKysrIGIv ZHJpdmVycy9zcGkvc3BpLWNhdml1bS5jCkBAIC01Nyw4ICs1Nyw4IEBAIHN0YXRpYyBpbnQgb2N0 ZW9uX3NwaV9kb190cmFuc2ZlcihzdHJ1Y3Qgb2N0ZW9uX3NwaSAqcCwKIAltcGlfY2ZnLnMuY3Ns YXRlID0gY3BoYSA/IDEgOiAwOwogCW1waV9jZmcucy5lbmFibGUgPSAxOwogCi0JaWYgKHNwaS0+ Y2hpcF9zZWxlY3QgPCA0KQotCQlwLT5jc19lbmF4IHw9IDF1bGwgPDwgKDEyICsgc3BpLT5jaGlw X3NlbGVjdCk7CisJaWYgKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApIDwgNCkKKwkJcC0+Y3Nf ZW5heCB8PSAxdWxsIDw8ICgxMiArIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAltcGlf Y2ZnLnU2NCB8PSBwLT5jc19lbmF4OwogCiAJaWYgKG1waV9jZmcudTY0ICE9IHAtPmxhc3RfY2Zn KSB7CkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBpbnQgb2N0ZW9uX3NwaV9kb190cmFuc2Zlcihz dHJ1Y3Qgb2N0ZW9uX3NwaSAqcCwKIAkJCXdyaXRlcShkLCBwLT5yZWdpc3Rlcl9iYXNlICsgT0NU RU9OX1NQSV9EQVQwKHApICsgKDggKiBpKSk7CiAJCX0KIAkJbXBpX3R4LnU2NCA9IDA7Ci0JCW1w aV90eC5zLmNzaWQgPSBzcGktPmNoaXBfc2VsZWN0OworCQltcGlfdHgucy5jc2lkID0gc3BpX2dl dF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJCW1waV90eC5zLmxlYXZlY3MgPSAxOwogCQltcGlfdHgu cy50eG51bSA9IHR4X2J1ZiA/IE9DVEVPTl9TUElfTUFYX0JZVEVTIDogMDsKIAkJbXBpX3R4LnMu dG90bnVtID0gT0NURU9OX1NQSV9NQVhfQllURVM7CkBAIC0xMDMsNyArMTAzLDcgQEAgc3RhdGlj IGludCBvY3Rlb25fc3BpX2RvX3RyYW5zZmVyKHN0cnVjdCBvY3Rlb25fc3BpICpwLAogCX0KIAog CW1waV90eC51NjQgPSAwOwotCW1waV90eC5zLmNzaWQgPSBzcGktPmNoaXBfc2VsZWN0OworCW1w aV90eC5zLmNzaWQgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAlpZiAobGFzdF94ZmVy KQogCQltcGlfdHgucy5sZWF2ZWNzID0geGZlci0+Y3NfY2hhbmdlOwogCWVsc2UKZGlmZiAtLWdp dCBhL2RyaXZlcnMvc3BpL3NwaS1jb2xkZmlyZS1xc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGktY29s ZGZpcmUtcXNwaS5jCmluZGV4IDI2M2NlOTA0NzMyNy4uMThlNGZkODZiMmYyIDEwMDY0NAotLS0g YS9kcml2ZXJzL3NwaS9zcGktY29sZGZpcmUtcXNwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1j b2xkZmlyZS1xc3BpLmMKQEAgLTI5MCw5ICsyOTAsOSBAQCBzdGF0aWMgdm9pZCBtY2Zxc3BpX3Nl dF9jcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBib29sIGVuYWJsZSkKIAlib29sIGNzX2hpZ2gg PSBzcGktPm1vZGUgJiBTUElfQ1NfSElHSDsKIAogCWlmIChlbmFibGUpCi0JCW1jZnFzcGlfY3Nf c2VsZWN0KG1jZnFzcGksIHNwaS0+Y2hpcF9zZWxlY3QsIGNzX2hpZ2gpOworCQltY2Zxc3BpX2Nz X3NlbGVjdChtY2Zxc3BpLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSwgY3NfaGlnaCk7CiAJ ZWxzZQotCQltY2Zxc3BpX2NzX2Rlc2VsZWN0KG1jZnFzcGksIHNwaS0+Y2hpcF9zZWxlY3QsIGNz X2hpZ2gpOworCQltY2Zxc3BpX2NzX2Rlc2VsZWN0KG1jZnFzcGksIHNwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApLCBjc19oaWdoKTsKIH0KIAogc3RhdGljIGludCBtY2Zxc3BpX3RyYW5zZmVyX29u ZShzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVyLApAQCAtMzI0LDExICszMjQsMTEgQEAgc3RhdGlj IGludCBtY2Zxc3BpX3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVyLAogc3Rh dGljIGludCBtY2Zxc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CiAJbWNmcXNw aV9jc19kZXNlbGVjdChzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKSwKLQkJCSAg ICBzcGktPmNoaXBfc2VsZWN0LCBzcGktPm1vZGUgJiBTUElfQ1NfSElHSCk7CisJCQkgICAgc3Bp X2dldF9jaGlwc2VsZWN0KHNwaSwgMCksIHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKTsKIAogCWRl dl9kYmcoJnNwaS0+ZGV2LAogCQkJImJpdHMgcGVyIHdvcmQgJWQsIGNoaXAgc2VsZWN0ICVkLCBz cGVlZCAlZCBLSHpcbiIsCi0JCQlzcGktPmJpdHNfcGVyX3dvcmQsIHNwaS0+Y2hpcF9zZWxlY3Qs CisJCQlzcGktPmJpdHNfcGVyX3dvcmQsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApLAogCQkJ KE1DRlFTUElfQlVTQ0xLIC8gbWNmcXNwaV9xbXJfYmF1ZChzcGktPm1heF9zcGVlZF9oeikpCiAJ CQkvIDEwMDApOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktZGF2aW5jaS5jIGIvZHJp dmVycy9zcGkvc3BpLWRhdmluY2kuYwppbmRleCBkMTEyYzJjYWMwNDIuLjU1YzlhYmNiOGUzYiAx MDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWRhdmluY2kuYworKysgYi9kcml2ZXJzL3NwaS9z cGktZGF2aW5jaS5jCkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIHZvaWQgZGF2aW5jaV9zcGlf Y2hpcHNlbGVjdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQgdmFsdWUpCiB7CiAJc3RydWN0 IGRhdmluY2lfc3BpICpkc3BpOwogCXN0cnVjdCBkYXZpbmNpX3NwaV9jb25maWcgKnNwaWNmZyA9 IHNwaS0+Y29udHJvbGxlcl9kYXRhOwotCXU4IGNoaXBfc2VsID0gc3BpLT5jaGlwX3NlbGVjdDsK Kwl1OCBjaGlwX3NlbCA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCXUxNiBzcGlkYXQx ID0gQ1NfREVGQVVMVDsKIAogCWRzcGkgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFz dGVyKTsKQEAgLTIxMiwxMSArMjEyLDExIEBAIHN0YXRpYyB2b2lkIGRhdmluY2lfc3BpX2NoaXBz ZWxlY3Qoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgaW50IHZhbHVlKQogCSAqIEJvYXJkIHNwZWNp ZmljIGNoaXAgc2VsZWN0IGxvZ2ljIGRlY2lkZXMgdGhlIHBvbGFyaXR5IGFuZCBjcwogCSAqIGxp bmUgZm9yIHRoZSBjb250cm9sbGVyCiAJICovCi0JaWYgKHNwaS0+Y3NfZ3Bpb2QpIHsKKwlpZiAo c3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpIHsKIAkJaWYgKHZhbHVlID09IEJJVEJBTkdfQ1NfQUNU SVZFKQotCQkJZ3Bpb2Rfc2V0X3ZhbHVlKHNwaS0+Y3NfZ3Bpb2QsIDEpOworCQkJZ3Bpb2Rfc2V0 X3ZhbHVlKHNwaV9nZXRfY3NncGlvZChzcGksIDApLCAxKTsKIAkJZWxzZQotCQkJZ3Bpb2Rfc2V0 X3ZhbHVlKHNwaS0+Y3NfZ3Bpb2QsIDApOworCQkJZ3Bpb2Rfc2V0X3ZhbHVlKHNwaV9nZXRfY3Nn cGlvZChzcGksIDApLCAwKTsKIAl9IGVsc2UgewogCQlpZiAodmFsdWUgPT0gQklUQkFOR19DU19B Q1RJVkUpIHsKIAkJCWlmICghKHNwaS0+bW9kZSAmIFNQSV9DU19XT1JEKSkKQEAgLTI5MywxMSAr MjkzLDExIEBAIHN0YXRpYyBpbnQgZGF2aW5jaV9zcGlfc2V0dXBfdHJhbnNmZXIoc3RydWN0IHNw aV9kZXZpY2UgKnNwaSwKIAlpZiAoYml0c19wZXJfd29yZCA8PSA4KSB7CiAJCWRzcGktPmdldF9y eCA9IGRhdmluY2lfc3BpX3J4X2J1Zl91ODsKIAkJZHNwaS0+Z2V0X3R4ID0gZGF2aW5jaV9zcGlf dHhfYnVmX3U4OwotCQlkc3BpLT5ieXRlc19wZXJfd29yZFtzcGktPmNoaXBfc2VsZWN0XSA9IDE7 CisJCWRzcGktPmJ5dGVzX3Blcl93b3JkW3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXSA9IDE7 CiAJfSBlbHNlIHsKIAkJZHNwaS0+Z2V0X3J4ID0gZGF2aW5jaV9zcGlfcnhfYnVmX3UxNjsKIAkJ ZHNwaS0+Z2V0X3R4ID0gZGF2aW5jaV9zcGlfdHhfYnVmX3UxNjsKLQkJZHNwaS0+Ynl0ZXNfcGVy X3dvcmRbc3BpLT5jaGlwX3NlbGVjdF0gPSAyOworCQlkc3BpLT5ieXRlc19wZXJfd29yZFtzcGlf Z2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV0gPSAyOwogCX0KIAogCWlmICghaHopCkBAIC00MTUsMTEg KzQxNSwxMSBAQCBzdGF0aWMgaW50IGRhdmluY2lfc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNl ICpzcGkpCiAJZHNwaSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwogCiAJ aWYgKCEoc3BpLT5tb2RlICYgU1BJX05PX0NTKSkgewotCQlpZiAobnAgJiYgc3BpLT5jc19ncGlv ZCkKKwkJaWYgKG5wICYmIHNwaV9nZXRfY3NncGlvZChzcGksIDApKQogCQkJaW50ZXJuYWxfY3Mg PSBmYWxzZTsKIAogCQlpZiAoaW50ZXJuYWxfY3MpCi0JCQlzZXRfaW9fYml0cyhkc3BpLT5iYXNl ICsgU1BJUEMwLCAxIDw8IHNwaS0+Y2hpcF9zZWxlY3QpOworCQkJc2V0X2lvX2JpdHMoZHNwaS0+ YmFzZSArIFNQSVBDMCwgMSA8PCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJfQogCiAJ aWYgKHNwaS0+bW9kZSAmIFNQSV9SRUFEWSkKQEAgLTU3OSw3ICs1NzksNyBAQCBzdGF0aWMgaW50 IGRhdmluY2lfc3BpX2J1ZnMoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IHNwaV90cmFu c2ZlciAqdCkKIAkJc3BpY2ZnID0gJmRhdmluY2lfc3BpX2RlZmF1bHRfY2ZnOwogCiAJLyogY29u dmVydCBsZW4gdG8gd29yZHMgYmFzZWQgb24gYml0c19wZXJfd29yZCAqLwotCWRhdGFfdHlwZSA9 IGRzcGktPmJ5dGVzX3Blcl93b3JkW3NwaS0+Y2hpcF9zZWxlY3RdOworCWRhdGFfdHlwZSA9IGRz cGktPmJ5dGVzX3Blcl93b3JkW3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXTsKIAogCWRzcGkt PnR4ID0gdC0+dHhfYnVmOwogCWRzcGktPnJ4ID0gdC0+cnhfYnVmOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zcGkvc3BpLWRsbjIuYyBiL2RyaXZlcnMvc3BpL3NwaS1kbG4yLmMKaW5kZXggMGExZmIy YmM5ZTU0Li41ZTYwZTNkNTgyMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1kbG4yLmMK KysrIGIvZHJpdmVycy9zcGkvc3BpLWRsbjIuYwpAQCAtNTk2LDEyICs1OTYsMTIgQEAgc3RhdGlj IGludCBkbG4yX3NwaV9wcmVwYXJlX21lc3NhZ2Uoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciwK IAlzdHJ1Y3QgZGxuMl9zcGkgKmRsbjIgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKG1hc3Rlcik7 CiAJc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IG1lc3NhZ2UtPnNwaTsKIAotCWlmIChkbG4yLT5j cyAhPSBzcGktPmNoaXBfc2VsZWN0KSB7Ci0JCXJldCA9IGRsbjJfc3BpX2NzX3NldF9vbmUoZGxu Miwgc3BpLT5jaGlwX3NlbGVjdCk7CisJaWYgKGRsbjItPmNzICE9IHNwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApKSB7CisJCXJldCA9IGRsbjJfc3BpX2NzX3NldF9vbmUoZGxuMiwgc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgMCkpOwogCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CiAKLQkJ ZGxuMi0+Y3MgPSBzcGktPmNoaXBfc2VsZWN0OworCQlkbG4yLT5jcyA9IHNwaV9nZXRfY2hpcHNl bGVjdChzcGksIDApOwogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkv c3BpLWR3LWNvcmUuYyBiL2RyaXZlcnMvc3BpL3NwaS1kdy1jb3JlLmMKaW5kZXggYzNiZmI2Yzg0 Y2FiLi5hZTMxMDhjNzBmNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1kdy1jb3JlLmMK KysrIGIvZHJpdmVycy9zcGkvc3BpLWR3LWNvcmUuYwpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQg ZHdfc3BpX3NldF9jcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBib29sIGVuYWJsZSkKIAkgKiBz dXBwb3J0IGFjdGl2ZS1oaWdoIG9yIGFjdGl2ZS1sb3cgQ1MgbGV2ZWwuCiAJICovCiAJaWYgKGNz X2hpZ2ggPT0gZW5hYmxlKQotCQlkd193cml0ZWwoZHdzLCBEV19TUElfU0VSLCBCSVQoc3BpLT5j aGlwX3NlbGVjdCkpOworCQlkd193cml0ZWwoZHdzLCBEV19TUElfU0VSLCBCSVQoc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgMCkpKTsKIAllbHNlCiAJCWR3X3dyaXRlbChkd3MsIERXX1NQSV9TRVIs IDApOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWR3LW1taW8uYyBiL2RyaXZlcnMv c3BpL3NwaS1kdy1tbWlvLmMKaW5kZXggMjZjNDBlYTZkZDEyLi5kNTExZGE3NjZjZTggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1kdy1tbWlvLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWR3 LW1taW8uYwpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgdm9pZCBkd19zcGlfbXNjY19zZXRfY3Mo c3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBlbmFibGUpCiAJc3RydWN0IGR3X3NwaSAqZHdz ID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGktPm1hc3Rlcik7CiAJc3RydWN0IGR3X3NwaV9t bWlvICpkd3NtbWlvID0gY29udGFpbmVyX29mKGR3cywgc3RydWN0IGR3X3NwaV9tbWlvLCBkd3Mp OwogCXN0cnVjdCBkd19zcGlfbXNjYyAqZHdzbXNjYyA9IGR3c21taW8tPnByaXY7Ci0JdTMyIGNz ID0gc3BpLT5jaGlwX3NlbGVjdDsKKwl1MzIgY3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KTsKIAogCWlmIChjcyA8IDQpIHsKIAkJdTMyIHN3X21vZGUgPSBNU0NDX1NQSV9NU1RfU1dfTU9E RV9TV19QSU5fQ1RSTF9NT0RFOwpAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRpYyB2b2lkIGR3X3Nw aV9zcGFyeDVfc2V0X2NzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGJvb2wgZW5hYmxlKQogCXN0 cnVjdCBkd19zcGkgKmR3cyA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwog CXN0cnVjdCBkd19zcGlfbW1pbyAqZHdzbW1pbyA9IGNvbnRhaW5lcl9vZihkd3MsIHN0cnVjdCBk d19zcGlfbW1pbywgZHdzKTsKIAlzdHJ1Y3QgZHdfc3BpX21zY2MgKmR3c21zY2MgPSBkd3NtbWlv LT5wcml2OwotCXU4IGNzID0gc3BpLT5jaGlwX3NlbGVjdDsKKwl1OCBjcyA9IHNwaV9nZXRfY2hp cHNlbGVjdChzcGksIDApOwogCiAJaWYgKCFlbmFibGUpIHsKIAkJLyogQ1Mgb3ZlcnJpZGUgZHJp dmUgZW5hYmxlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktZmFsY29uLmMgYi9kcml2 ZXJzL3NwaS9zcGktZmFsY29uLmMKaW5kZXggYTdkNGRmZmFjNjZiLi40YzEwM2RmZjBkNDQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1mYWxjb24uYworKysgYi9kcml2ZXJzL3NwaS9zcGkt ZmFsY29uLmMKQEAgLTEzMSw3ICsxMzEsNyBAQCBpbnQgZmFsY29uX3NmbGFzaF94ZmVyKHN0cnVj dCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBzcGlfdHJhbnNmZXIgKnQsCiAJCQkJICogZXNwZWNp YWxseSBhbGVuIGFuZCBkdW1sZW4uCiAJCQkJICovCiAKLQkJCQlwcml2LT5zZmNtZCA9ICgoc3Bp LT5jaGlwX3NlbGVjdAorCQkJCXByaXYtPnNmY21kID0gKChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3Bp LCAwKQogCQkJCQkJPDwgU0ZDTURfQ1NfT0ZGU0VUKQogCQkJCQkgICAgICAgJiBTRkNNRF9DU19N QVNLKTsKIAkJCQlwcml2LT5zZmNtZCB8PSBTRkNNRF9LRUVQX0NTX0tFRVBfU0VMRUNURUQ7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktZnNpLmMgYi9kcml2ZXJzL3NwaS9zcGktZnNpLmMK aW5kZXggY2YxZTRmOWViZDcyLi5iYTNiMTdkN2M5ZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3Bp L3NwaS1mc2kuYworKysgYi9kcml2ZXJzL3NwaS9zcGktZnNpLmMKQEAgLTQyNSw3ICs0MjUsNyBA QCBzdGF0aWMgaW50IGZzaV9zcGlfdHJhbnNmZXJfb25lX21lc3NhZ2Uoc3RydWN0IHNwaV9jb250 cm9sbGVyICpjdGxyLAogCQkJCQlzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm1lc2cpCiB7CiAJaW50IHJj OwotCXU4IHNlcV9zbGF2ZSA9IFNQSV9GU0lfU0VRVUVOQ0VfU0VMX1NMQVZFKG1lc2ctPnNwaS0+ Y2hpcF9zZWxlY3QgKyAxKTsKKwl1OCBzZXFfc2xhdmUgPSBTUElfRlNJX1NFUVVFTkNFX1NFTF9T TEFWRShzcGlfZ2V0X2NoaXBzZWxlY3QobWVzZy0+c3BpLCAwKSArIDEpOwogCXVuc2lnbmVkIGlu dCBsZW47CiAJc3RydWN0IHNwaV90cmFuc2ZlciAqdHJhbnNmZXI7CiAJc3RydWN0IGZzaV9zcGkg KmN0eCA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKGN0bHIpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zcGkvc3BpLWZzbC1kc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGktZnNsLWRzcGkuYwppbmRl eCBlNDE5NjQyZWIxMGUuLjBmOWE5N2VlMmU3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3Bp LWZzbC1kc3BpLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWZzbC1kc3BpLmMKQEAgLTkwMiwxOSAr OTAyLDE5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBkc3BpX2ludGVycnVwdChpbnQgaXJxLCB2b2lk ICpkZXZfaWQpCiAKIHN0YXRpYyB2b2lkIGRzcGlfYXNzZXJ0X2NzKHN0cnVjdCBzcGlfZGV2aWNl ICpzcGksIGJvb2wgKmNzKQogewotCWlmICghc3BpLT5jc19ncGlvZCB8fCAqY3MpCisJaWYgKCFz cGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSB8fCAqY3MpCiAJCXJldHVybjsKIAotCWdwaW9kX3NldF92 YWx1ZV9jYW5zbGVlcChzcGktPmNzX2dwaW9kLCB0cnVlKTsKKwlncGlvZF9zZXRfdmFsdWVfY2Fu c2xlZXAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCksIHRydWUpOwogCSpjcyA9IHRydWU7CiB9CiAK IHN0YXRpYyB2b2lkIGRzcGlfZGVhc3NlcnRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9v bCAqY3MpCiB7Ci0JaWYgKCFzcGktPmNzX2dwaW9kIHx8ICEqY3MpCisJaWYgKCFzcGlfZ2V0X2Nz Z3Bpb2Qoc3BpLCAwKSB8fCAhKmNzKQogCQlyZXR1cm47CiAKLQlncGlvZF9zZXRfdmFsdWVfY2Fu c2xlZXAoc3BpLT5jc19ncGlvZCwgZmFsc2UpOworCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChz cGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSwgZmFsc2UpOwogCSpjcyA9IGZhbHNlOwogfQogCkBAIC05 MzgsOCArOTM4LDggQEAgc3RhdGljIGludCBkc3BpX3RyYW5zZmVyX29uZV9tZXNzYWdlKHN0cnVj dCBzcGlfY29udHJvbGxlciAqY3RsciwKIAogCQkvKiBQcmVwYXJlIGNvbW1hbmQgd29yZCBmb3Ig Q01EIEZJRk8gKi8KIAkJZHNwaS0+dHhfY21kID0gU1BJX1BVU0hSX0NNRF9DVEFTKDApOwotCQlp ZiAoIXNwaS0+Y3NfZ3Bpb2QpCi0JCQlkc3BpLT50eF9jbWQgfD0gU1BJX1BVU0hSX0NNRF9QQ1Mo c3BpLT5jaGlwX3NlbGVjdCk7CisJCWlmICghc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCisJCQlk c3BpLT50eF9jbWQgfD0gU1BJX1BVU0hSX0NNRF9QQ1Moc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwg MCkpOwogCiAJCWlmIChsaXN0X2lzX2xhc3QoJmRzcGktPmN1cl90cmFuc2Zlci0+dHJhbnNmZXJf bGlzdCwKIAkJCQkgJmRzcGktPmN1cl9tc2ctPnRyYW5zZmVycykpIHsKQEAgLTEwNTgsNyArMTA1 OCw3IEBAIHN0YXRpYyBpbnQgZHNwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCQkJ Y2hpcC0+Y3Rhcl92YWwgfD0gU1BJX0NUQVJfTFNCRkU7CiAJfQogCi0JZ3Bpb2RfZGlyZWN0aW9u X291dHB1dChzcGktPmNzX2dwaW9kLCBmYWxzZSk7CisJZ3Bpb2RfZGlyZWN0aW9uX291dHB1dChz cGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSwgZmFsc2UpOwogCWRzcGlfZGVhc3NlcnRfY3Moc3BpLCAm Y3MpOwogCiAJc3BpX3NldF9jdGxkYXRhKHNwaSwgY2hpcCk7CkBAIC0xMDcxLDcgKzEwNzEsNyBA QCBzdGF0aWMgdm9pZCBkc3BpX2NsZWFudXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlzdHJ1 Y3QgY2hpcF9kYXRhICpjaGlwID0gc3BpX2dldF9jdGxkYXRhKChzdHJ1Y3Qgc3BpX2RldmljZSAq KXNwaSk7CiAKIAlkZXZfZGJnKCZzcGktPmRldiwgInNwaV9kZXZpY2UgJXUuJXUgY2xlYW51cFxu IiwKLQkJc3BpLT5jb250cm9sbGVyLT5idXNfbnVtLCBzcGktPmNoaXBfc2VsZWN0KTsKKwkJc3Bp LT5jb250cm9sbGVyLT5idXNfbnVtLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAlr ZnJlZShjaGlwKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1mc2wtZXNwaS5jIGIv ZHJpdmVycy9zcGkvc3BpLWZzbC1lc3BpLmMKaW5kZXggZjcwNjZiZWY3YjA2Li5iNTkzMDU1ZTNk NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1mc2wtZXNwaS5jCisrKyBiL2RyaXZlcnMv c3BpL3NwaS1mc2wtZXNwaS5jCkBAIC0zNDUsNyArMzQ1LDcgQEAgc3RhdGljIHZvaWQgZnNsX2Vz cGlfc2V0dXBfdHJhbnNmZXIoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwKIAogCS8qIGRvbid0IHdy aXRlIHRoZSBtb2RlIHJlZ2lzdGVyIGlmIHRoZSBtb2RlIGRvZXNuJ3QgY2hhbmdlICovCiAJaWYg KGNzLT5od19tb2RlICE9IGh3X21vZGVfb2xkKQotCQlmc2xfZXNwaV93cml0ZV9yZWcoZXNwaSwg RVNQSV9TUE1PREV4KHNwaS0+Y2hpcF9zZWxlY3QpLAorCQlmc2xfZXNwaV93cml0ZV9yZWcoZXNw aSwgRVNQSV9TUE1PREV4KHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSwKIAkJCQkgICBjcy0+ aHdfbW9kZSk7CiB9CiAKQEAgLTM1OSw3ICszNTksNyBAQCBzdGF0aWMgaW50IGZzbF9lc3BpX2J1 ZnMoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IHNwaV90cmFuc2ZlciAqdCkKIAlyZWlu aXRfY29tcGxldGlvbigmZXNwaS0+ZG9uZSk7CiAKIAkvKiBTZXQgU1BDT01bQ1NdIGFuZCBTUENP TVtUUkFOTEVOXSBmaWVsZCAqLwotCXNwY29tID0gU1BDT01fQ1Moc3BpLT5jaGlwX3NlbGVjdCk7 CisJc3Bjb20gPSBTUENPTV9DUyhzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJc3Bjb20g fD0gU1BDT01fVFJBTkxFTih0LT5sZW4gLSAxKTsKIAogCS8qIGNvbmZpZ3VyZSBSWFNLSVAgbW9k ZSAqLwpAQCAtNDkyLDcgKzQ5Miw3IEBAIHN0YXRpYyBpbnQgZnNsX2VzcGlfc2V0dXAoc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSkKIAogCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZXNwaS0+ZGV2KTsKIAot CWNzLT5od19tb2RlID0gZnNsX2VzcGlfcmVhZF9yZWcoZXNwaSwgRVNQSV9TUE1PREV4KHNwaS0+ Y2hpcF9zZWxlY3QpKTsKKwljcy0+aHdfbW9kZSA9IGZzbF9lc3BpX3JlYWRfcmVnKGVzcGksIEVT UElfU1BNT0RFeChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkpOwogCS8qIG1hc2sgb3V0IGJp dHMgd2UgYXJlIGdvaW5nIHRvIHNldCAqLwogCWNzLT5od19tb2RlICY9IH4oQ1NNT0RFX0NQX0JF R0lOX0VER0VDTEsgfCBDU01PREVfQ0lfSU5BQ1RJVkVISUdICiAJCQkgfCBDU01PREVfUkVWKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1mc2wtbHBzcGkuYyBiL2RyaXZlcnMvc3BpL3Nw aS1mc2wtbHBzcGkuYwppbmRleCAzNDQ4OGRlNTU1ODcuLmZlNjllYzhjOWQ2OCAxMDA2NDQKLS0t IGEvZHJpdmVycy9zcGkvc3BpLWZzbC1scHNwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1mc2wt bHBzcGkuYwpAQCAtNDI1LDcgKzQyNSw3IEBAIHN0YXRpYyBpbnQgZnNsX2xwc3BpX3NldHVwX3Ry YW5zZmVyKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY29udHJvbGxlciwKIAlpZiAoZnNsX2xwc3Bp LT5pc19vbmx5X2NzMSkKIAkJZnNsX2xwc3BpLT5jb25maWcuY2hpcF9zZWxlY3QgPSAxOwogCWVs c2UKLQkJZnNsX2xwc3BpLT5jb25maWcuY2hpcF9zZWxlY3QgPSBzcGktPmNoaXBfc2VsZWN0Owor CQlmc2xfbHBzcGktPmNvbmZpZy5jaGlwX3NlbGVjdCA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGks IDApOwogCiAJaWYgKCFmc2xfbHBzcGktPmNvbmZpZy5zcGVlZF9oeikKIAkJZnNsX2xwc3BpLT5j b25maWcuc3BlZWRfaHogPSBzcGktPm1heF9zcGVlZF9oejsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv c3BpL3NwaS1mc2wtcXNwaS5jIGIvZHJpdmVycy9zcGkvc3BpLWZzbC1xc3BpLmMKaW5kZXggODVj YzcxYmE2MjRhLi40ZjE2ZDQ2NzY2NTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1mc2wt cXNwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1mc2wtcXNwaS5jCkBAIC01MjgsNyArNTI4LDcg QEAgc3RhdGljIHZvaWQgZnNsX3FzcGlfc2VsZWN0X21lbShzdHJ1Y3QgZnNsX3FzcGkgKnEsIHN0 cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJdW5zaWduZWQgbG9uZyByYXRlID0gc3BpLT5tYXhfc3Bl ZWRfaHo7CiAJaW50IHJldDsKIAotCWlmIChxLT5zZWxlY3RlZCA9PSBzcGktPmNoaXBfc2VsZWN0 KQorCWlmIChxLT5zZWxlY3RlZCA9PSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkKIAkJcmV0 dXJuOwogCiAJaWYgKG5lZWRzXzR4X2Nsb2NrKHEpKQpAQCAtNTQ0LDcgKzU0NCw3IEBAIHN0YXRp YyB2b2lkIGZzbF9xc3BpX3NlbGVjdF9tZW0oc3RydWN0IGZzbF9xc3BpICpxLCBzdHJ1Y3Qgc3Bp X2RldmljZSAqc3BpKQogCWlmIChyZXQpCiAJCXJldHVybjsKIAotCXEtPnNlbGVjdGVkID0gc3Bp LT5jaGlwX3NlbGVjdDsKKwlxLT5zZWxlY3RlZCA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDAp OwogCiAJZnNsX3FzcGlfaW52YWxpZGF0ZShxKTsKIH0KQEAgLTgyMyw3ICs4MjMsNyBAQCBzdGF0 aWMgY29uc3QgY2hhciAqZnNsX3FzcGlfZ2V0X25hbWUoc3RydWN0IHNwaV9tZW0gKm1lbSkKIAog CW5hbWUgPSBkZXZtX2thc3ByaW50ZihkZXYsIEdGUF9LRVJORUwsCiAJCQkgICAgICAiJXMtJWQi LCBkZXZfbmFtZShxLT5kZXYpLAotCQkJICAgICAgbWVtLT5zcGktPmNoaXBfc2VsZWN0KTsKKwkJ CSAgICAgIHNwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCkpOwogCiAJaWYgKCFuYW1lKSB7 CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBtZW1vcnkgZm9yIGN1c3RvbSBmbGFzaCBu YW1lXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1mc2wtc3BpLmMgYi9kcml2ZXJz L3NwaS9zcGktZnNsLXNwaS5jCmluZGV4IDkzMTUyMTQ0ZmQyZS4uMDhmYTZlMzhmNGViIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZnNsLXNwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1m c2wtc3BpLmMKQEAgLTUwMyw3ICs1MDMsNyBAQCBzdGF0aWMgdm9pZCBmc2xfc3BpX2dybGliX2Nz X2NvbnRyb2woc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBvbikKIAlzdHJ1Y3QgbXBjOHh4 eF9zcGkgKm1wYzh4eHhfc3BpID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGktPm1hc3Rlcik7 CiAJc3RydWN0IGZzbF9zcGlfcmVnIF9faW9tZW0gKnJlZ19iYXNlID0gbXBjOHh4eF9zcGktPnJl Z19iYXNlOwogCXUzMiBzbHZzZWw7Ci0JdTE2IGNzID0gc3BpLT5jaGlwX3NlbGVjdDsKKwl1MTYg Y3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAogCWlmIChjcyA8IG1wYzh4eHhfc3Bp LT5uYXRpdmVfY2hpcHNlbGVjdHMpIHsKIAkJc2x2c2VsID0gbXBjOHh4eF9zcGlfcmVhZF9yZWco JnJlZ19iYXNlLT5zbHZzZWwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWdlbmktcWNv bS5jIGIvZHJpdmVycy9zcGkvc3BpLWdlbmktcWNvbS5jCmluZGV4IGUxYjJlMGI2NTc3OS4uYTk5 YmRhYjAwZWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZ2VuaS1xY29tLmMKKysrIGIv ZHJpdmVycy9zcGkvc3BpLWdlbmktcWNvbS5jCkBAIC0zOTEsOSArMzkxLDkgQEAgc3RhdGljIGlu dCBzZXR1cF9maWZvX3BhcmFtcyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpX3NsdiwKIAkJCWNwaGEg PSBDUEhBOwogCiAJCWlmIChzcGlfc2x2LT5tb2RlICYgU1BJX0NTX0hJR0gpCi0JCQlkZW11eF9v dXRwdXRfaW52ID0gQklUKHNwaV9zbHYtPmNoaXBfc2VsZWN0KTsKKwkJCWRlbXV4X291dHB1dF9p bnYgPSBCSVQoc3BpX2dldF9jaGlwc2VsZWN0KHNwaV9zbHYsIDApKTsKIAotCQlkZW11eF9zZWwg PSBzcGlfc2x2LT5jaGlwX3NlbGVjdDsKKwkJZGVtdXhfc2VsID0gc3BpX2dldF9jaGlwc2VsZWN0 KHNwaV9zbHYsIDApOwogCQltYXMtPmN1cl9iaXRzX3Blcl93b3JkID0gc3BpX3Nsdi0+Yml0c19w ZXJfd29yZDsKIAogCQlzcGlfc2V0dXBfd29yZF9sZW4obWFzLCBzcGlfc2x2LT5tb2RlLCBzcGlf c2x2LT5iaXRzX3Blcl93b3JkKTsKQEAgLTQ2OSw3ICs0NjksNyBAQCBzdGF0aWMgaW50IHNldHVw X2dzaV94ZmVyKHN0cnVjdCBzcGlfdHJhbnNmZXIgKnhmZXIsIHN0cnVjdCBzcGlfZ2VuaV9tYXN0 ZXIgKm1hcwogCXBlcmlwaGVyYWwubG9vcGJhY2tfZW4gPSAhIShzcGlfc2x2LT5tb2RlICYgU1BJ X0xPT1ApOwogCXBlcmlwaGVyYWwuY2xvY2tfcG9sX2hpZ2ggPSAhIShzcGlfc2x2LT5tb2RlICYg U1BJX0NQT0wpOwogCXBlcmlwaGVyYWwuZGF0YV9wb2xfaGlnaCA9ICEhKHNwaV9zbHYtPm1vZGUg JiBTUElfQ1BIQSk7Ci0JcGVyaXBoZXJhbC5jcyA9IHNwaV9zbHYtPmNoaXBfc2VsZWN0OworCXBl cmlwaGVyYWwuY3MgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpX3NsdiwgMCk7CiAJcGVyaXBoZXJh bC5wYWNrX2VuID0gdHJ1ZTsKIAlwZXJpcGhlcmFsLndvcmRfbGVuID0geGZlci0+Yml0c19wZXJf d29yZCAtIE1JTl9XT1JEX0xFTjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWdwaW8u YyBiL2RyaXZlcnMvc3BpL3NwaS1ncGlvLmMKaW5kZXggOWM4Yzc5NDgwNDRlLi4wOTJhZmM3Njc5 ZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1ncGlvLmMKKysrIGIvZHJpdmVycy9zcGkv c3BpLWdwaW8uYwpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyB2b2lkIHNwaV9ncGlvX2NoaXBz ZWxlY3Qoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgaW50IGlzX2FjdGl2ZSkKIAogCS8qIERyaXZl IGNoaXAgc2VsZWN0IGxpbmUsIGlmIHdlIGhhdmUgb25lICovCiAJaWYgKHNwaV9ncGlvLT5jc19n cGlvcykgewotCQlzdHJ1Y3QgZ3Bpb19kZXNjICpjcyA9IHNwaV9ncGlvLT5jc19ncGlvc1tzcGkt PmNoaXBfc2VsZWN0XTsKKwkJc3RydWN0IGdwaW9fZGVzYyAqY3MgPSBzcGlfZ3Bpby0+Y3NfZ3Bp b3Nbc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCldOwogCiAJCS8qIFNQSSBjaGlwIHNlbGVjdHMg YXJlIG5vcm1hbGx5IGFjdGl2ZS1sb3cgKi8KIAkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGNz LCAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpID8gaXNfYWN0aXZlIDogIWlzX2FjdGl2ZSk7CkBA IC0yNDgsNyArMjQ4LDcgQEAgc3RhdGljIGludCBzcGlfZ3Bpb19zZXR1cChzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpKQogCSAqIGluaXRpYWxpemVkIGZyb20gdGhlIGRlc2NyaXB0b3IgbG9va3VwLgog CSAqLwogCWlmIChzcGlfZ3Bpby0+Y3NfZ3Bpb3MpIHsKLQkJY3MgPSBzcGlfZ3Bpby0+Y3NfZ3Bp b3Nbc3BpLT5jaGlwX3NlbGVjdF07CisJCWNzID0gc3BpX2dwaW8tPmNzX2dwaW9zW3NwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApXTsKIAkJaWYgKCFzcGktPmNvbnRyb2xsZXJfc3RhdGUgJiYgY3Mp CiAJCQlzdGF0dXMgPSBncGlvZF9kaXJlY3Rpb25fb3V0cHV0KGNzLAogCQkJCQkJICAhKHNwaS0+ bW9kZSAmIFNQSV9DU19ISUdIKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktZ3hwLmMg Yi9kcml2ZXJzL3NwaS9zcGktZ3hwLmMKaW5kZXggYzkwMGMyZjM5YjU3Li42ODRkNjNmNDAyZjMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1neHAuYworKysgYi9kcml2ZXJzL3NwaS9zcGkt Z3hwLmMKQEAgLTIwMSw3ICsyMDEsNyBAQCBzdGF0aWMgc3NpemVfdCBneHBfc3BpX3dyaXRlKHN0 cnVjdCBneHBfc3BpX2NoaXAgKmNoaXAsIGNvbnN0IHN0cnVjdCBzcGlfbWVtX29wCiBzdGF0aWMg aW50IGRvX2d4cF9leGVjX21lbV9vcChzdHJ1Y3Qgc3BpX21lbSAqbWVtLCBjb25zdCBzdHJ1Y3Qg c3BpX21lbV9vcCAqb3ApCiB7CiAJc3RydWN0IGd4cF9zcGkgKnNwaWZpID0gc3BpX2NvbnRyb2xs ZXJfZ2V0X2RldmRhdGEobWVtLT5zcGktPm1hc3Rlcik7Ci0Jc3RydWN0IGd4cF9zcGlfY2hpcCAq Y2hpcCA9ICZzcGlmaS0+Y2hpcHNbbWVtLT5zcGktPmNoaXBfc2VsZWN0XTsKKwlzdHJ1Y3QgZ3hw X3NwaV9jaGlwICpjaGlwID0gJnNwaWZpLT5jaGlwc1tzcGlfZ2V0X2NoaXBzZWxlY3QobWVtLT5z cGksIDApXTsKIAlpbnQgcmV0OwogCiAJaWYgKG9wLT5kYXRhLmRpciA9PSBTUElfTUVNX0RBVEFf SU4pIHsKQEAgLTIzNyw3ICsyMzcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9jb250cm9s bGVyX21lbV9vcHMgZ3hwX3NwaV9tZW1fb3BzID0gewogc3RhdGljIGludCBneHBfc3BpX3NldHVw KHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CiAJc3RydWN0IGd4cF9zcGkgKnNwaWZpID0gc3Bp X2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwotCXVuc2lnbmVkIGludCBjcyA9 IHNwaS0+Y2hpcF9zZWxlY3Q7CisJdW5zaWduZWQgaW50IGNzID0gc3BpX2dldF9jaGlwc2VsZWN0 KHNwaSwgMCk7CiAJc3RydWN0IGd4cF9zcGlfY2hpcCAqY2hpcCA9ICZzcGlmaS0+Y2hpcHNbY3Nd OwogCiAJY2hpcC0+c3BpZmkgPSBzcGlmaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1o aXNpLXNmYy12M3h4LmMgYi9kcml2ZXJzL3NwaS9zcGktaGlzaS1zZmMtdjN4eC5jCmluZGV4IGYw N2QxMDQ1YTMwYS4uN2NiY2IwNjViYjQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktaGlz aS1zZmMtdjN4eC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1oaXNpLXNmYy12M3h4LmMKQEAgLTM2 MSw3ICszNjEsNyBAQCBzdGF0aWMgaW50IGhpc2lfc2ZjX3YzeHhfZXhlY19vcChzdHJ1Y3Qgc3Bp X21lbSAqbWVtLAogewogCXN0cnVjdCBoaXNpX3NmY192M3h4X2hvc3QgKmhvc3Q7CiAJc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSA9IG1lbS0+c3BpOwotCXU4IGNoaXBfc2VsZWN0ID0gc3BpLT5jaGlw X3NlbGVjdDsKKwl1OCBjaGlwX3NlbGVjdCA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwog CiAJaG9zdCA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWltZy1zcGZpLmMgYi9kcml2ZXJzL3NwaS9zcGktaW1n LXNwZmkuYwppbmRleCAyNTcwNDZmODQzZmYuLjE1NzVlNzhmOGIwOSAxMDA2NDQKLS0tIGEvZHJp dmVycy9zcGkvc3BpLWltZy1zcGZpLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWltZy1zcGZpLmMK QEAgLTQxMywxNSArNDEzLDE1IEBAIHN0YXRpYyBpbnQgaW1nX3NwZmlfcHJlcGFyZShzdHJ1Y3Qg c3BpX21hc3RlciAqbWFzdGVyLCBzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm1zZykKIAl2YWwgPSBzcGZp X3JlYWRsKHNwZmksIFNQRklfUE9SVF9TVEFURSk7CiAJdmFsICY9IH4oU1BGSV9QT1JUX1NUQVRF X0RFVl9TRUxfTUFTSyA8PAogCQkgU1BGSV9QT1JUX1NUQVRFX0RFVl9TRUxfU0hJRlQpOwotCXZh bCB8PSBtc2ctPnNwaS0+Y2hpcF9zZWxlY3QgPDwgU1BGSV9QT1JUX1NUQVRFX0RFVl9TRUxfU0hJ RlQ7CisJdmFsIHw9IHNwaV9nZXRfY2hpcHNlbGVjdChtc2ctPnNwaSwgMCkgPDwgU1BGSV9QT1JU X1NUQVRFX0RFVl9TRUxfU0hJRlQ7CiAJaWYgKG1zZy0+c3BpLT5tb2RlICYgU1BJX0NQSEEpCi0J CXZhbCB8PSBTUEZJX1BPUlRfU1RBVEVfQ0tfUEhBU0UobXNnLT5zcGktPmNoaXBfc2VsZWN0KTsK KwkJdmFsIHw9IFNQRklfUE9SVF9TVEFURV9DS19QSEFTRShzcGlfZ2V0X2NoaXBzZWxlY3QobXNn LT5zcGksIDApKTsKIAllbHNlCi0JCXZhbCAmPSB+U1BGSV9QT1JUX1NUQVRFX0NLX1BIQVNFKG1z Zy0+c3BpLT5jaGlwX3NlbGVjdCk7CisJCXZhbCAmPSB+U1BGSV9QT1JUX1NUQVRFX0NLX1BIQVNF KHNwaV9nZXRfY2hpcHNlbGVjdChtc2ctPnNwaSwgMCkpOwogCWlmIChtc2ctPnNwaS0+bW9kZSAm IFNQSV9DUE9MKQotCQl2YWwgfD0gU1BGSV9QT1JUX1NUQVRFX0NLX1BPTChtc2ctPnNwaS0+Y2hp cF9zZWxlY3QpOworCQl2YWwgfD0gU1BGSV9QT1JUX1NUQVRFX0NLX1BPTChzcGlfZ2V0X2NoaXBz ZWxlY3QobXNnLT5zcGksIDApKTsKIAllbHNlCi0JCXZhbCAmPSB+U1BGSV9QT1JUX1NUQVRFX0NL X1BPTChtc2ctPnNwaS0+Y2hpcF9zZWxlY3QpOworCQl2YWwgJj0gflNQRklfUE9SVF9TVEFURV9D S19QT0woc3BpX2dldF9jaGlwc2VsZWN0KG1zZy0+c3BpLCAwKSk7CiAJc3BmaV93cml0ZWwoc3Bm aSwgdmFsLCBTUEZJX1BPUlRfU1RBVEUpOwogCiAJcmV0dXJuIDA7CkBAIC00NTAsMTEgKzQ1MCwx MSBAQCBzdGF0aWMgdm9pZCBpbWdfc3BmaV9jb25maWcoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3Rl ciwgc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwKIAlkaXYgPSBESVZfUk9VTkRfVVAoY2xrX2dldF9y YXRlKHNwZmktPnNwZmlfY2xrKSwgeGZlci0+c3BlZWRfaHopOwogCWRpdiA9IGNsYW1wKDUxMiAv ICgxIDw8IGdldF9jb3VudF9vcmRlcihkaXYpKSwgMSwgMTI4KTsKIAotCXZhbCA9IHNwZmlfcmVh ZGwoc3BmaSwgU1BGSV9ERVZJQ0VfUEFSQU1FVEVSKHNwaS0+Y2hpcF9zZWxlY3QpKTsKKwl2YWwg PSBzcGZpX3JlYWRsKHNwZmksIFNQRklfREVWSUNFX1BBUkFNRVRFUihzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKSkpOwogCXZhbCAmPSB+KFNQRklfREVWSUNFX1BBUkFNRVRFUl9CSVRDTEtfTUFT SyA8PAogCQkgU1BGSV9ERVZJQ0VfUEFSQU1FVEVSX0JJVENMS19TSElGVCk7CiAJdmFsIHw9IGRp diA8PCBTUEZJX0RFVklDRV9QQVJBTUVURVJfQklUQ0xLX1NISUZUOwotCXNwZmlfd3JpdGVsKHNw ZmksIHZhbCwgU1BGSV9ERVZJQ0VfUEFSQU1FVEVSKHNwaS0+Y2hpcF9zZWxlY3QpKTsKKwlzcGZp X3dyaXRlbChzcGZpLCB2YWwsIFNQRklfREVWSUNFX1BBUkFNRVRFUihzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKSkpOwogCiAJc3BmaV93cml0ZWwoc3BmaSwgeGZlci0+bGVuIDw8IFNQRklfVFJB TlNBQ1RJT05fVFNJWkVfU0hJRlQsCiAJCSAgICBTUEZJX1RSQU5TQUNUSU9OKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvc3BpL3NwaS1pbXguYyBiL2RyaXZlcnMvc3BpL3NwaS1pbXguYwppbmRleCBl NGNjZDBjMzI5ZDAuLjYyMGJjZTk2YjFmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWlt eC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1pbXguYwpAQCAtNTI4LDcgKzUyOCw3IEBAIHN0YXRp YyBpbnQgbXg1MV9lY3NwaV9wcmVwYXJlX21lc3NhZ2Uoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3Bp X2lteCwKIAkJY3RybCB8PSBNWDUxX0VDU1BJX0NUUkxfRFJDVEwoc3BpX2lteC0+c3BpX2RyY3Rs KTsKIAogCS8qIHNldCBjaGlwIHNlbGVjdCB0byB1c2UgKi8KLQljdHJsIHw9IE1YNTFfRUNTUElf Q1RSTF9DUyhzcGktPmNoaXBfc2VsZWN0KTsKKwljdHJsIHw9IE1YNTFfRUNTUElfQ1RSTF9DUyhz cGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAkvKgogCSAqIFRoZSBjdHJsIHJlZ2lzdGVy IG11c3QgYmUgd3JpdHRlbiBmaXJzdCwgd2l0aCB0aGUgRU4gYml0IHNldCBvdGhlcgpAQCAtNTQ5 LDIyICs1NDksMjIgQEAgc3RhdGljIGludCBteDUxX2Vjc3BpX3ByZXBhcmVfbWVzc2FnZShzdHJ1 Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14LAogCSAqIEJVUlNUX0xFTkdUSCArIDEgYml0cyBhcmUg cmVjZWl2ZWQKIAkgKi8KIAlpZiAoc3BpX2lteC0+c2xhdmVfbW9kZSAmJiBpc19pbXg1M19lY3Nw aShzcGlfaW14KSkKLQkJY2ZnICY9IH5NWDUxX0VDU1BJX0NPTkZJR19TQkJDVFJMKHNwaS0+Y2hp cF9zZWxlY3QpOworCQljZmcgJj0gfk1YNTFfRUNTUElfQ09ORklHX1NCQkNUUkwoc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgMCkpOwogCWVsc2UKLQkJY2ZnIHw9IE1YNTFfRUNTUElfQ09ORklHX1NC QkNUUkwoc3BpLT5jaGlwX3NlbGVjdCk7CisJCWNmZyB8PSBNWDUxX0VDU1BJX0NPTkZJR19TQkJD VFJMKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAogCWlmIChzcGktPm1vZGUgJiBTUElf Q1BPTCkgewotCQljZmcgfD0gTVg1MV9FQ1NQSV9DT05GSUdfU0NMS1BPTChzcGktPmNoaXBfc2Vs ZWN0KTsKLQkJY2ZnIHw9IE1YNTFfRUNTUElfQ09ORklHX1NDTEtDVEwoc3BpLT5jaGlwX3NlbGVj dCk7CisJCWNmZyB8PSBNWDUxX0VDU1BJX0NPTkZJR19TQ0xLUE9MKHNwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApKTsKKwkJY2ZnIHw9IE1YNTFfRUNTUElfQ09ORklHX1NDTEtDVEwoc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgMCkpOwogCX0gZWxzZSB7Ci0JCWNmZyAmPSB+TVg1MV9FQ1NQSV9DT05G SUdfU0NMS1BPTChzcGktPmNoaXBfc2VsZWN0KTsKLQkJY2ZnICY9IH5NWDUxX0VDU1BJX0NPTkZJ R19TQ0xLQ1RMKHNwaS0+Y2hpcF9zZWxlY3QpOworCQljZmcgJj0gfk1YNTFfRUNTUElfQ09ORklH X1NDTEtQT0woc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOworCQljZmcgJj0gfk1YNTFfRUNT UElfQ09ORklHX1NDTEtDVEwoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCX0KIAogCWlm IChzcGktPm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJY2ZnIHw9IE1YNTFfRUNTUElfQ09ORklHX1NT QlBPTChzcGktPmNoaXBfc2VsZWN0KTsKKwkJY2ZnIHw9IE1YNTFfRUNTUElfQ09ORklHX1NTQlBP TChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJZWxzZQotCQljZmcgJj0gfk1YNTFfRUNT UElfQ09ORklHX1NTQlBPTChzcGktPmNoaXBfc2VsZWN0KTsKKwkJY2ZnICY9IH5NWDUxX0VDU1BJ X0NPTkZJR19TU0JQT0woc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJaWYgKGNmZyA9 PSBjdXJyZW50X2NmZykKIAkJcmV0dXJuIDA7CkBAIC02MTQsOSArNjE0LDkgQEAgc3RhdGljIHZv aWQgbXg1MV9jb25maWd1cmVfY3BoYShzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14LAogCWNw aGEgXj0gZmxpcF9jcGhhOwogCiAJaWYgKGNwaGEpCi0JCWNmZyB8PSBNWDUxX0VDU1BJX0NPTkZJ R19TQ0xLUEhBKHNwaS0+Y2hpcF9zZWxlY3QpOworCQljZmcgfD0gTVg1MV9FQ1NQSV9DT05GSUdf U0NMS1BIQShzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAJZWxzZQotCQljZmcgJj0gfk1Y NTFfRUNTUElfQ09ORklHX1NDTEtQSEEoc3BpLT5jaGlwX3NlbGVjdCk7CisJCWNmZyAmPSB+TVg1 MV9FQ1NQSV9DT05GSUdfU0NMS1BIQShzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAl3 cml0ZWwoY2ZnLCBzcGlfaW14LT5iYXNlICsgTVg1MV9FQ1NQSV9DT05GSUcpOwogfQpAQCAtNzY4 LDggKzc2OCw4IEBAIHN0YXRpYyBpbnQgbXgzMV9wcmVwYXJlX3RyYW5zZmVyKHN0cnVjdCBzcGlf aW14X2RhdGEgKnNwaV9pbXgsCiAJCXJlZyB8PSBNWDMxX0NTUElDVFJMX1BPTDsKIAlpZiAoc3Bp LT5tb2RlICYgU1BJX0NTX0hJR0gpCiAJCXJlZyB8PSBNWDMxX0NTUElDVFJMX1NTUE9MOwotCWlm ICghc3BpLT5jc19ncGlvZCkKLQkJcmVnIHw9IChzcGktPmNoaXBfc2VsZWN0KSA8PAorCWlmICgh c3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCisJCXJlZyB8PSAoc3BpX2dldF9jaGlwc2VsZWN0KHNw aSwgMCkpIDw8CiAJCQkoaXNfaW14MzVfY3NwaShzcGlfaW14KSA/IE1YMzVfQ1NQSUNUUkxfQ1Nf U0hJRlQgOgogCQkJCQkJICBNWDMxX0NTUElDVFJMX0NTX1NISUZUKTsKIApAQCAtODY4LDggKzg2 OCw4IEBAIHN0YXRpYyBpbnQgbXgyMV9wcmVwYXJlX3RyYW5zZmVyKHN0cnVjdCBzcGlfaW14X2Rh dGEgKnNwaV9pbXgsCiAJCXJlZyB8PSBNWDIxX0NTUElDVFJMX1BPTDsKIAlpZiAoc3BpLT5tb2Rl ICYgU1BJX0NTX0hJR0gpCiAJCXJlZyB8PSBNWDIxX0NTUElDVFJMX1NTUE9MOwotCWlmICghc3Bp LT5jc19ncGlvZCkKLQkJcmVnIHw9IHNwaS0+Y2hpcF9zZWxlY3QgPDwgTVgyMV9DU1BJQ1RSTF9D U19TSElGVDsKKwlpZiAoIXNwaV9nZXRfY3NncGlvZChzcGksIDApKQorCQlyZWcgfD0gc3BpX2dl dF9jaGlwc2VsZWN0KHNwaSwgMCkgPDwgTVgyMV9DU1BJQ1RSTF9DU19TSElGVDsKIAogCXdyaXRl bChyZWcsIHNwaV9pbXgtPmJhc2UgKyBNWENfQ1NQSUNUUkwpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3NwaS9zcGktaW5nZW5pYy5jIGIvZHJpdmVycy9zcGkvc3BpLWluZ2VuaWMuYwppbmRleCA3 MTNhMjM4YmVlNjMuLjdkNGI1MTVhMTYwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLWlu Z2VuaWMuYworKysgYi9kcml2ZXJzL3NwaS9zcGktaW5nZW5pYy5jCkBAIC0yNjMsNyArMjYzLDcg QEAgc3RhdGljIGludCBzcGlfaW5nZW5pY19wcmVwYXJlX21lc3NhZ2Uoc3RydWN0IHNwaV9jb250 cm9sbGVyICpjdGxyLAogewogCXN0cnVjdCBpbmdlbmljX3NwaSAqcHJpdiA9IHNwaV9jb250cm9s bGVyX2dldF9kZXZkYXRhKGN0bHIpOwogCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBtZXNzYWdl LT5zcGk7Ci0JdW5zaWduZWQgaW50IGNzID0gUkVHX1NTSUNSMV9GUk1ITCA8PCBzcGktPmNoaXBf c2VsZWN0OworCXVuc2lnbmVkIGludCBjcyA9IFJFR19TU0lDUjFfRlJNSEwgPDwgc3BpX2dldF9j aGlwc2VsZWN0KHNwaSwgMCk7CiAJdW5zaWduZWQgaW50IHNzaWNyMF9tYXNrID0gUkVHX1NTSUNS MF9MT09QIHwgUkVHX1NTSUNSMF9GU0VMOwogCXVuc2lnbmVkIGludCBzc2ljcjFfbWFzayA9IFJF R19TU0lDUjFfUEhBIHwgUkVHX1NTSUNSMV9QT0wgfCBjczsKIAl1bnNpZ25lZCBpbnQgc3NpY3Iw ID0gMCwgc3NpY3IxID0gMDsKQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgaW50IHNwaV9pbmdl bmljX3ByZXBhcmVfbWVzc2FnZShzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIsCiAKIAlpZiAo c3BpLT5tb2RlICYgU1BJX0xPT1ApCiAJCXNzaWNyMCB8PSBSRUdfU1NJQ1IwX0xPT1A7Ci0JaWYg KHNwaS0+Y2hpcF9zZWxlY3QpCisJaWYgKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKQogCQlz c2ljcjAgfD0gUkVHX1NTSUNSMF9GU0VMOwogCiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9DUEhBKQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWludGVsLmMgYi9kcml2ZXJzL3NwaS9zcGktaW50 ZWwuYwppbmRleCAxMDUyZmI0Yjc5NzMuLjNiZGRiMzE3YzlkNCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9zcGkvc3BpLWludGVsLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWludGVsLmMKQEAgLTQ1MSw3 ICs0NTEsNyBAQCBzdGF0aWMgdTMyIGludGVsX3NwaV9jaGlwX2FkZHIoY29uc3Qgc3RydWN0IGlu dGVsX3NwaSAqaXNwaSwKIAkvKiBQaWNrIHVwIHRoZSBjb3JyZWN0IHN0YXJ0IGFkZHJlc3MgKi8K IAlpZiAoIW1lbSkKIAkJcmV0dXJuIDA7Ci0JcmV0dXJuIG1lbS0+c3BpLT5jaGlwX3NlbGVjdCA9 PSAxID8gaXNwaS0+Y2hpcDBfc2l6ZSA6IDA7CisJcmV0dXJuIChzcGlfZ2V0X2NoaXBzZWxlY3Qo bWVtLT5zcGksIDApID09IDEpID8gaXNwaS0+Y2hpcDBfc2l6ZSA6IDA7CiB9CiAKIHN0YXRpYyBp bnQgaW50ZWxfc3BpX3JlYWRfcmVnKHN0cnVjdCBpbnRlbF9zcGkgKmlzcGksIGNvbnN0IHN0cnVj dCBzcGlfbWVtICptZW0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktamNvcmUuYyBiL2Ry aXZlcnMvc3BpL3NwaS1qY29yZS5jCmluZGV4IDc0YzgzMTljMjlmMS4uYzQyYTMzNThlOGM5IDEw MDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktamNvcmUuYworKysgYi9kcml2ZXJzL3NwaS9zcGkt amNvcmUuYwpAQCAtNjgsOSArNjgsOSBAQCBzdGF0aWMgdm9pZCBqY29yZV9zcGlfcHJvZ3JhbShz dHJ1Y3QgamNvcmVfc3BpICpodykKIHN0YXRpYyB2b2lkIGpjb3JlX3NwaV9jaGlwc2VsKHN0cnVj dCBzcGlfZGV2aWNlICpzcGksIGJvb2wgdmFsdWUpCiB7CiAJc3RydWN0IGpjb3JlX3NwaSAqaHcg PSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKLQl1MzIgY3NiaXQgPSAxVSA8 PCAoMiAqIHNwaS0+Y2hpcF9zZWxlY3QpOworCXUzMiBjc2JpdCA9IDFVIDw8ICgyICogc3BpX2dl dF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCi0JZGV2X2RiZyhody0+bWFzdGVyLT5kZXYucGFyZW50 LCAiY2hpcHNlbGVjdCAlZFxuIiwgc3BpLT5jaGlwX3NlbGVjdCk7CisJZGV2X2RiZyhody0+bWFz dGVyLT5kZXYucGFyZW50LCAiY2hpcHNlbGVjdCAlZFxuIiwgc3BpX2dldF9jaGlwc2VsZWN0KHNw aSwgMCkpOwogCiAJaWYgKHZhbHVlKQogCQlody0+Y3NfcmVnIHw9IGNzYml0OwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zcGkvc3BpLWxhbnRpcS1zc2MuYyBiL2RyaXZlcnMvc3BpL3NwaS1sYW50aXEt c3NjLmMKaW5kZXggYWFlMjZmNjJlYTg3Li42YjE5MWNlZmIwZDQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3BpL3NwaS1sYW50aXEtc3NjLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWxhbnRpcS1zc2Mu YwpAQCAtMzg4LDExICszODgsMTEgQEAgc3RhdGljIGludCBsYW50aXFfc3NjX3NldHVwKHN0cnVj dCBzcGlfZGV2aWNlICpzcGlkZXYpCiB7CiAJc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3RlciA9IHNw aWRldi0+bWFzdGVyOwogCXN0cnVjdCBsYW50aXFfc3NjX3NwaSAqc3BpID0gc3BpX21hc3Rlcl9n ZXRfZGV2ZGF0YShtYXN0ZXIpOwotCXVuc2lnbmVkIGludCBjcyA9IHNwaWRldi0+Y2hpcF9zZWxl Y3Q7CisJdW5zaWduZWQgaW50IGNzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaWRldiwgMCk7CiAJ dTMyIGdwb2NvbjsKIAogCS8qIEdQSU9zIGFyZSB1c2VkIGZvciBDUyAqLwotCWlmIChzcGlkZXYt PmNzX2dwaW9kKQorCWlmIChzcGlfZ2V0X2NzZ3Bpb2Qoc3BpZGV2LCAwKSkKIAkJcmV0dXJuIDA7 CiAKIAlkZXZfZGJnKHNwaS0+ZGV2LCAidXNpbmcgaW50ZXJuYWwgY2hpcHNlbGVjdCAldVxuIiwg Y3MpOwpAQCAtNzk2LDcgKzc5Niw3IEBAIHN0YXRpYyB2b2lkIGxhbnRpcV9zc2NfaGFuZGxlX2Vy cihzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVyLAogc3RhdGljIHZvaWQgbGFudGlxX3NzY19zZXRf Y3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaWRldiwgYm9vbCBlbmFibGUpCiB7CiAJc3RydWN0IGxh bnRpcV9zc2Nfc3BpICpzcGkgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaWRldi0+bWFzdGVy KTsKLQl1bnNpZ25lZCBpbnQgY3MgPSBzcGlkZXYtPmNoaXBfc2VsZWN0OworCXVuc2lnbmVkIGlu dCBjcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGlkZXYsIDApOwogCXUzMiBmZ3BvOwogCiAJaWYg KCEhKHNwaWRldi0+bW9kZSAmIFNQSV9DU19ISUdIKSA9PSBlbmFibGUpCmRpZmYgLS1naXQgYS9k cml2ZXJzL3NwaS9zcGktbWVtLmMgYi9kcml2ZXJzL3NwaS9zcGktbWVtLmMKaW5kZXggMGM3OTE5 M2Q5Njk3Li5mODViYjQ2NjI1OTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1tZW0uYwor KysgYi9kcml2ZXJzL3NwaS9zcGktbWVtLmMKQEAgLTMyNSw3ICszMjUsNyBAQCBpbnQgc3BpX21l bV9leGVjX29wKHN0cnVjdCBzcGlfbWVtICptZW0sIGNvbnN0IHN0cnVjdCBzcGlfbWVtX29wICpv cCkKIAlpZiAoIXNwaV9tZW1faW50ZXJuYWxfc3VwcG9ydHNfb3AobWVtLCBvcCkpCiAJCXJldHVy biAtRU5PVFNVUFA7CiAKLQlpZiAoY3Rsci0+bWVtX29wcyAmJiAhbWVtLT5zcGktPmNzX2dwaW9k KSB7CisJaWYgKGN0bHItPm1lbV9vcHMgJiYgIXNwaV9nZXRfY3NncGlvZChtZW0tPnNwaSwgMCkp IHsKIAkJcmV0ID0gc3BpX21lbV9hY2Nlc3Nfc3RhcnQobWVtKTsKIAkJaWYgKHJldCkKIAkJCXJl dHVybiByZXQ7CkBAIC04MDgsNyArODA4LDcgQEAgaW50IHNwaV9tZW1fcG9sbF9zdGF0dXMoc3Ry dWN0IHNwaV9tZW0gKm1lbSwKIAkgICAgb3AtPmRhdGEuZGlyICE9IFNQSV9NRU1fREFUQV9JTikK IAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoY3Rsci0+bWVtX29wcyAmJiBjdGxyLT5tZW1fb3Bz LT5wb2xsX3N0YXR1cyAmJiAhbWVtLT5zcGktPmNzX2dwaW9kKSB7CisJaWYgKGN0bHItPm1lbV9v cHMgJiYgY3Rsci0+bWVtX29wcy0+cG9sbF9zdGF0dXMgJiYgIXNwaV9nZXRfY3NncGlvZChtZW0t PnNwaSwgMCkpIHsKIAkJcmV0ID0gc3BpX21lbV9hY2Nlc3Nfc3RhcnQobWVtKTsKIAkJaWYgKHJl dCkKIAkJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktbWVzb24tc3Bp Y2MuYyBiL2RyaXZlcnMvc3BpL3NwaS1tZXNvbi1zcGljYy5jCmluZGV4IGQ0N2YyNjIzYTYwZi4u MGQ0NWNmOGEyZTcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktbWVzb24tc3BpY2MuYwor KysgYi9kcml2ZXJzL3NwaS9zcGktbWVzb24tc3BpY2MuYwpAQCAtNTA1LDcgKzUwNSw3IEBAIHN0 YXRpYyBpbnQgbWVzb25fc3BpY2NfcHJlcGFyZV9tZXNzYWdlKHN0cnVjdCBzcGlfbWFzdGVyICpt YXN0ZXIsCiAJCWNvbmYgfD0gRklFTERfUFJFUChTUElDQ19EUkNUTF9NQVNLLCBTUElDQ19EUkNU TF9JR05PUkUpOwogCiAJLyogU2VsZWN0IENTICovCi0JY29uZiB8PSBGSUVMRF9QUkVQKFNQSUND X0NTX01BU0ssIHNwaS0+Y2hpcF9zZWxlY3QpOworCWNvbmYgfD0gRklFTERfUFJFUChTUElDQ19D U19NQVNLLCBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAkvKiBEZWZhdWx0IDhiaXQg d29yZCAqLwogCWNvbmYgfD0gRklFTERfUFJFUChTUElDQ19CSVRMRU5HVEhfTUFTSywgOCAtIDEp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLW1pY3JvY2hpcC1jb3JlLmMgYi9kcml2ZXJz L3NwaS9zcGktbWljcm9jaGlwLWNvcmUuYwppbmRleCBhZWFhMWRhODhmMzkuLjFhOTBmY2ZlNjAx NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLW1pY3JvY2hpcC1jb3JlLmMKKysrIGIvZHJp dmVycy9zcGkvc3BpLW1pY3JvY2hpcC1jb3JlLmMKQEAgLTI0Nyw4ICsyNDcsOCBAQCBzdGF0aWMg dm9pZCBtY2hwX2NvcmVzcGlfc2V0X2NzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGJvb2wgZGlz YWJsZSkKIAlzdHJ1Y3QgbWNocF9jb3Jlc3BpICpjb3Jlc3BpID0gc3BpX21hc3Rlcl9nZXRfZGV2 ZGF0YShzcGktPm1hc3Rlcik7CiAKIAlyZWcgPSBtY2hwX2NvcmVzcGlfcmVhZChjb3Jlc3BpLCBS RUdfU0xBVkVfU0VMRUNUKTsKLQlyZWcgJj0gfkJJVChzcGktPmNoaXBfc2VsZWN0KTsKLQlyZWcg fD0gIWRpc2FibGUgPDwgc3BpLT5jaGlwX3NlbGVjdDsKKwlyZWcgJj0gfkJJVChzcGlfZ2V0X2No aXBzZWxlY3Qoc3BpLCAwKSk7CisJcmVnIHw9ICFkaXNhYmxlIDw8IHNwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApOwogCiAJbWNocF9jb3Jlc3BpX3dyaXRlKGNvcmVzcGksIFJFR19TTEFWRV9TRUxF Q1QsIHJlZyk7CiB9CkBAIC0yNjUsNyArMjY1LDcgQEAgc3RhdGljIGludCBtY2hwX2NvcmVzcGlf c2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkgKi8KIAlpZiAoc3BpLT5tb2RlICYgU1BJ X0NTX0hJR0gpIHsKIAkJcmVnID0gbWNocF9jb3Jlc3BpX3JlYWQoY29yZXNwaSwgUkVHX1NMQVZF X1NFTEVDVCk7Ci0JCXJlZyB8PSBCSVQoc3BpLT5jaGlwX3NlbGVjdCk7CisJCXJlZyB8PSBCSVQo c3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCQltY2hwX2NvcmVzcGlfd3JpdGUoY29yZXNw aSwgUkVHX1NMQVZFX1NFTEVDVCwgcmVnKTsKIAl9CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9k cml2ZXJzL3NwaS9zcGktbXBjNTEyeC1wc2MuYyBiL2RyaXZlcnMvc3BpL3NwaS1tcGM1MTJ4LXBz Yy5jCmluZGV4IDAzNjMwMzU5Y2U3MC4uZGM3MmY0YzViODE2IDEwMDY0NAotLS0gYS9kcml2ZXJz L3NwaS9zcGktbXBjNTEyeC1wc2MuYworKysgYi9kcml2ZXJzL3NwaS9zcGktbXBjNTEyeC1wc2Mu YwpAQCAtMTI3LDEzICsxMjcsMTMgQEAgc3RhdGljIHZvaWQgbXBjNTEyeF9wc2Nfc3BpX2FjdGl2 YXRlX2NzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJb3V0X2JlMzIocHNjX2FkZHIobXBzLCBj Y3IpLCBjY3IpOwogCW1wcy0+Yml0c19wZXJfd29yZCA9IGNzLT5iaXRzX3Blcl93b3JkOwogCi0J aWYgKHNwaS0+Y3NfZ3Bpb2QpIHsKKwlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpIHsKIAkJ aWYgKG1wcy0+Y3NfY29udHJvbCkKIAkJCS8qIGJvYXJkZmlsZSBvdmVycmlkZSAqLwogCQkJbXBz LT5jc19jb250cm9sKHNwaSwgKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKSA/IDEgOiAwKTsKIAkJ ZWxzZQogCQkJLyogZ3Bpb2xpYiB3aWxsIGRlYWwgd2l0aCB0aGUgaW52ZXJzaW9uICovCi0JCQln cGlvZF9zZXRfdmFsdWUoc3BpLT5jc19ncGlvZCwgMSk7CisJCQlncGlvZF9zZXRfdmFsdWUoc3Bp X2dldF9jc2dwaW9kKHNwaSwgMCksIDEpOwogCX0KIH0KIApAQCAtMTQxLDEzICsxNDEsMTMgQEAg c3RhdGljIHZvaWQgbXBjNTEyeF9wc2Nfc3BpX2RlYWN0aXZhdGVfY3Moc3RydWN0IHNwaV9kZXZp Y2UgKnNwaSkKIHsKIAlzdHJ1Y3QgbXBjNTEyeF9wc2Nfc3BpICptcHMgPSBzcGlfbWFzdGVyX2dl dF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKIAotCWlmIChzcGktPmNzX2dwaW9kKSB7CisJaWYgKHNw aV9nZXRfY3NncGlvZChzcGksIDApKSB7CiAJCWlmIChtcHMtPmNzX2NvbnRyb2wpCiAJCQkvKiBi b2FyZGZpbGUgb3ZlcnJpZGUgKi8KIAkJCW1wcy0+Y3NfY29udHJvbChzcGksIChzcGktPm1vZGUg JiBTUElfQ1NfSElHSCkgPyAwIDogMSk7CiAJCWVsc2UKIAkJCS8qIGdwaW9saWIgd2lsbCBkZWFs IHdpdGggdGhlIGludmVyc2lvbiAqLwotCQkJZ3Bpb2Rfc2V0X3ZhbHVlKHNwaS0+Y3NfZ3Bpb2Qs IDApOworCQkJZ3Bpb2Rfc2V0X3ZhbHVlKHNwaV9nZXRfY3NncGlvZChzcGksIDApLCAwKTsKIAl9 CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1tcGM1Mnh4LmMgYi9kcml2ZXJzL3Nw aS9zcGktbXBjNTJ4eC5jCmluZGV4IDdiNjRlNjRjNjVjZi4uYzQ3NGE3NjdmYzQ4IDEwMDY0NAot LS0gYS9kcml2ZXJzL3NwaS9zcGktbXBjNTJ4eC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1tcGM1 Mnh4LmMKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgdm9pZCBtcGM1Mnh4X3NwaV9jaGlwc2Vs KHN0cnVjdCBtcGM1Mnh4X3NwaSAqbXMsIGludCB2YWx1ZSkKIAlpbnQgY3M7CiAKIAlpZiAobXMt PmdwaW9fY3NfY291bnQgPiAwKSB7Ci0JCWNzID0gbXMtPm1lc3NhZ2UtPnNwaS0+Y2hpcF9zZWxl Y3Q7CisJCWNzID0gc3BpX2dldF9jaGlwc2VsZWN0KG1zLT5tZXNzYWdlLT5zcGksIDApOwogCQln cGlvZF9zZXRfdmFsdWUobXMtPmdwaW9fY3NbY3NdLCB2YWx1ZSk7CiAJfSBlbHNlIHsKIAkJb3V0 XzgobXMtPnJlZ3MgKyBTUElfUE9SVERBVEEsIHZhbHVlID8gMCA6IDB4MDgpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zcGkvc3BpLW10NjV4eC5jIGIvZHJpdmVycy9zcGkvc3BpLW10NjV4eC5jCmlu ZGV4IDllYWI2YzIwZGJjNS4uMjFjMzIxZjQzNzY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9z cGktbXQ2NXh4LmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLW10NjV4eC5jCkBAIC00MjEsNyArNDIx LDcgQEAgc3RhdGljIGludCBtdGtfc3BpX2h3X2luaXQoc3RydWN0IHNwaV9tYXN0ZXIgKm1hc3Rl ciwKIAogCS8qIHBhZCBzZWxlY3QgKi8KIAlpZiAobWRhdGEtPmRldl9jb21wLT5uZWVkX3BhZF9z ZWwpCi0JCXdyaXRlbChtZGF0YS0+cGFkX3NlbFtzcGktPmNoaXBfc2VsZWN0XSwKKwkJd3JpdGVs KG1kYXRhLT5wYWRfc2VsW3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXSwKIAkJICAgICAgIG1k YXRhLT5iYXNlICsgU1BJX1BBRF9TRUxfUkVHKTsKIAogCS8qIHRpY2sgZGVsYXkgKi8KQEAgLTcz NSw5ICs3MzUsOSBAQCBzdGF0aWMgaW50IG10a19zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2Ug KnNwaSkKIAlpZiAoIXNwaS0+Y29udHJvbGxlcl9kYXRhKQogCQlzcGktPmNvbnRyb2xsZXJfZGF0 YSA9ICh2b2lkICopJm10a19kZWZhdWx0X2NoaXBfaW5mbzsKIAotCWlmIChtZGF0YS0+ZGV2X2Nv bXAtPm5lZWRfcGFkX3NlbCAmJiBzcGktPmNzX2dwaW9kKQorCWlmIChtZGF0YS0+ZGV2X2NvbXAt Pm5lZWRfcGFkX3NlbCAmJiBzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSkKIAkJLyogQ1MgZGUtYXNz ZXJ0ZWQsIGdwaW9saWIgd2lsbCBoYW5kbGUgaW52ZXJzaW9uICovCi0JCWdwaW9kX2RpcmVjdGlv bl9vdXRwdXQoc3BpLT5jc19ncGlvZCwgMCk7CisJCWdwaW9kX2RpcmVjdGlvbl9vdXRwdXQoc3Bp X2dldF9jc2dwaW9kKHNwaSwgMCksIDApOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL3NwaS9zcGktbXQ3NjIxLmMgYi9kcml2ZXJzL3NwaS9zcGktbXQ3NjIxLmMKaW5kZXgg YzRjYzhlMmY4NWUyLi4zZTlkMzk2YjMzYmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1t dDc2MjEuYworKysgYi9kcml2ZXJzL3NwaS9zcGktbXQ3NjIxLmMKQEAgLTc2LDcgKzc2LDcgQEAg c3RhdGljIGlubGluZSB2b2lkIG10NzYyMV9zcGlfd3JpdGUoc3RydWN0IG10NzYyMV9zcGkgKnJz LCB1MzIgcmVnLCB1MzIgdmFsKQogc3RhdGljIHZvaWQgbXQ3NjIxX3NwaV9zZXRfY3Moc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSwgaW50IGVuYWJsZSkKIHsKIAlzdHJ1Y3QgbXQ3NjIxX3NwaSAqcnMg PSBzcGlkZXZfdG9fbXQ3NjIxX3NwaShzcGkpOwotCWludCBjcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7 CisJaW50IGNzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJdTMyIHBvbGFyID0gMDsK IAl1MzIgbWFzdGVyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktbXV4LmMgYi9kcml2 ZXJzL3NwaS9zcGktbXV4LmMKaW5kZXggMDcwOWU5ODdiZDVhLi5mYThjMWY3NDBjNzAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1tdXguYworKysgYi9kcml2ZXJzL3NwaS9zcGktbXV4LmMK QEAgLTUxLDIyICs1MSwyMiBAQCBzdGF0aWMgaW50IHNwaV9tdXhfc2VsZWN0KHN0cnVjdCBzcGlf ZGV2aWNlICpzcGkpCiAJc3RydWN0IHNwaV9tdXhfcHJpdiAqcHJpdiA9IHNwaV9jb250cm9sbGVy X2dldF9kZXZkYXRhKHNwaS0+Y29udHJvbGxlcik7CiAJaW50IHJldDsKIAotCXJldCA9IG11eF9j b250cm9sX3NlbGVjdChwcml2LT5tdXgsIHNwaS0+Y2hpcF9zZWxlY3QpOworCXJldCA9IG11eF9j b250cm9sX3NlbGVjdChwcml2LT5tdXgsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAlp ZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaWYgKHByaXYtPmN1cnJlbnRfY3MgPT0gc3BpLT5j aGlwX3NlbGVjdCkKKwlpZiAocHJpdi0+Y3VycmVudF9jcyA9PSBzcGlfZ2V0X2NoaXBzZWxlY3Qo c3BpLCAwKSkKIAkJcmV0dXJuIDA7CiAKIAlkZXZfZGJnKCZwcml2LT5zcGktPmRldiwgInNldHRp bmcgdXAgdGhlIG11eCBmb3IgY3MgJWRcbiIsCi0JCXNwaS0+Y2hpcF9zZWxlY3QpOworCQlzcGlf Z2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAkvKiBjb3B5IHRoZSBjaGlsZCBkZXZpY2UncyBz ZXR0aW5ncyBleGNlcHQgZm9yIHRoZSBjcyAqLwogCXByaXYtPnNwaS0+bWF4X3NwZWVkX2h6ID0g c3BpLT5tYXhfc3BlZWRfaHo7CiAJcHJpdi0+c3BpLT5tb2RlID0gc3BpLT5tb2RlOwogCXByaXYt PnNwaS0+Yml0c19wZXJfd29yZCA9IHNwaS0+Yml0c19wZXJfd29yZDsKIAotCXByaXYtPmN1cnJl bnRfY3MgPSBzcGktPmNoaXBfc2VsZWN0OworCXByaXYtPmN1cnJlbnRfY3MgPSBzcGlfZ2V0X2No aXBzZWxlY3Qoc3BpLCAwKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z cGkvc3BpLW14aWMuYyBiL2RyaXZlcnMvc3BpL3NwaS1teGljLmMKaW5kZXggYTNkYmExNzM5MGVi Li41MmJkMmM0OWMzNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1teGljLmMKKysrIGIv ZHJpdmVycy9zcGkvc3BpLW14aWMuYwpAQCAtMzA2LDggKzMwNiw4IEBAIHN0YXRpYyB1MzIgbXhp Y19zcGlfcHJlcF9oY19jZmcoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgdTMyIGZsYWdzKQogCQlu aW8gPSAyOwogCiAJcmV0dXJuIGZsYWdzIHwgSENfQ0ZHX05JTyhuaW8pIHwKLQkgICAgICAgSENf Q0ZHX1RZUEUoc3BpLT5jaGlwX3NlbGVjdCwgSENfQ0ZHX1RZUEVfU1BJX05PUikgfAotCSAgICAg ICBIQ19DRkdfU0xWX0FDVChzcGktPmNoaXBfc2VsZWN0KSB8IEhDX0NGR19JRExFX1NJT19MVkwo MSk7CisJICAgICAgIEhDX0NGR19UWVBFKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApLCBIQ19D RkdfVFlQRV9TUElfTk9SKSB8CisJICAgICAgIEhDX0NGR19TTFZfQUNUKHNwaV9nZXRfY2hpcHNl bGVjdChzcGksIDApKSB8IEhDX0NGR19JRExFX1NJT19MVkwoMSk7CiB9CiAKIHN0YXRpYyB1MzIg bXhpY19zcGlfbWVtX3ByZXBfb3BfY2ZnKGNvbnN0IHN0cnVjdCBzcGlfbWVtX29wICpvcCwKQEAg LTQwNSw3ICs0MDUsNyBAQCBzdGF0aWMgc3NpemVfdCBteGljX3NwaV9tZW1fZGlybWFwX3JlYWQo c3RydWN0IHNwaV9tZW1fZGlybWFwX2Rlc2MgKmRlc2MsCiAJbGVuID0gbWluX3Qoc2l6ZV90LCBs ZW4sIG14aWMtPmxpbmVhci5zaXplKTsKIAl3cml0ZWwobGVuLCBteGljLT5yZWdzICsgTFJEX1JB TkdFKTsKIAl3cml0ZWwoTE1PREVfQ01EMChkZXNjLT5pbmZvLm9wX3RtcGwuY21kLm9wY29kZSkg fAotCSAgICAgICBMTU9ERV9TTFZfQUNUKGRlc2MtPm1lbS0+c3BpLT5jaGlwX3NlbGVjdCkgfAor CSAgICAgICBMTU9ERV9TTFZfQUNUKHNwaV9nZXRfY2hpcHNlbGVjdChkZXNjLT5tZW0tPnNwaSwg MCkpIHwKIAkgICAgICAgTE1PREVfRU4sCiAJICAgICAgIG14aWMtPnJlZ3MgKyBMUkRfQ1RSTCk7 CiAKQEAgLTQ0OSw3ICs0NDksNyBAQCBzdGF0aWMgc3NpemVfdCBteGljX3NwaV9tZW1fZGlybWFw X3dyaXRlKHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9kZXNjICpkZXNjLAogCWxlbiA9IG1pbl90KHNp emVfdCwgbGVuLCBteGljLT5saW5lYXIuc2l6ZSk7CiAJd3JpdGVsKGxlbiwgbXhpYy0+cmVncyAr IExXUl9SQU5HRSk7CiAJd3JpdGVsKExNT0RFX0NNRDAoZGVzYy0+aW5mby5vcF90bXBsLmNtZC5v cGNvZGUpIHwKLQkgICAgICAgTE1PREVfU0xWX0FDVChkZXNjLT5tZW0tPnNwaS0+Y2hpcF9zZWxl Y3QpIHwKKwkgICAgICAgTE1PREVfU0xWX0FDVChzcGlfZ2V0X2NoaXBzZWxlY3QoZGVzYy0+bWVt LT5zcGksIDApKSB8CiAJICAgICAgIExNT0RFX0VOLAogCSAgICAgICBteGljLT5yZWdzICsgTFdS X0NUUkwpOwogCkBAIC01MjQsNyArNTI0LDcgQEAgc3RhdGljIGludCBteGljX3NwaV9tZW1fZXhl Y19vcChzdHJ1Y3Qgc3BpX21lbSAqbWVtLAogCXdyaXRlbChIQ19FTl9CSVQsIG14aWMtPnJlZ3Mg KyBIQ19FTik7CiAKIAl3cml0ZWwobXhpY19zcGlfbWVtX3ByZXBfb3BfY2ZnKG9wLCBvcC0+ZGF0 YS5uYnl0ZXMpLAotCSAgICAgICBteGljLT5yZWdzICsgU1NfQ1RSTChtZW0tPnNwaS0+Y2hpcF9z ZWxlY3QpKTsKKwkgICAgICAgbXhpYy0+cmVncyArIFNTX0NUUkwoc3BpX2dldF9jaGlwc2VsZWN0 KG1lbS0+c3BpLCAwKSkpOwogCiAJd3JpdGVsKHJlYWRsKG14aWMtPnJlZ3MgKyBIQ19DRkcpIHwg SENfQ0ZHX01BTl9DU19BU1NFUlQsCiAJICAgICAgIG14aWMtPnJlZ3MgKyBIQ19DRkcpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLW14cy5jIGIvZHJpdmVycy9zcGkvc3BpLW14cy5jCmlu ZGV4IDU1MTc4NTc5ZjNjNi4uOTgwNzZhYTRiMWM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9z cGktbXhzLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLW14cy5jCkBAIC0zNjksNyArMzY5LDcgQEAg c3RhdGljIGludCBteHNfc3BpX3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVy LAogCS8qIFByb2dyYW0gQ1MgcmVnaXN0ZXIgYml0cyBoZXJlLCBpdCB3aWxsIGJlIHVzZWQgZm9y IGFsbCB0cmFuc2ZlcnMuICovCiAJd3JpdGVsKEJNX1NTUF9DVFJMMF9XQUlUX0ZPUl9DTUQgfCBC TV9TU1BfQ1RSTDBfV0FJVF9GT1JfSVJRLAogCSAgICAgICBzc3AtPmJhc2UgKyBIV19TU1BfQ1RS TDAgKyBTVE1QX09GRlNFVF9SRUdfQ0xSKTsKLQl3cml0ZWwobXhzX3NwaV9jc190b19yZWcobS0+ c3BpLT5jaGlwX3NlbGVjdCksCisJd3JpdGVsKG14c19zcGlfY3NfdG9fcmVnKHNwaV9nZXRfY2hp cHNlbGVjdChtLT5zcGksIDApKSwKIAkgICAgICAgc3NwLT5iYXNlICsgSFdfU1NQX0NUUkwwICsg U1RNUF9PRkZTRVRfUkVHX1NFVCk7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHQsICZtLT50cmFu c2ZlcnMsIHRyYW5zZmVyX2xpc3QpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1ucGNt LWZpdS5jIGIvZHJpdmVycy9zcGkvc3BpLW5wY20tZml1LmMKaW5kZXggNTU5ZDNhNWI0MDYyLi44 NmUzOTc4ODgzZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1ucGNtLWZpdS5jCisrKyBi L2RyaXZlcnMvc3BpL3NwaS1ucGNtLWZpdS5jCkBAIC0yODgsNyArMjg4LDcgQEAgc3RhdGljIHNz aXplX3QgbnBjbV9maXVfZGlyZWN0X3JlYWQoc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rlc2MgKmRl c2MsCiB7CiAJc3RydWN0IG5wY21fZml1X3NwaSAqZml1ID0KIAkJc3BpX2NvbnRyb2xsZXJfZ2V0 X2RldmRhdGEoZGVzYy0+bWVtLT5zcGktPm1hc3Rlcik7Ci0Jc3RydWN0IG5wY21fZml1X2NoaXAg KmNoaXAgPSAmZml1LT5jaGlwW2Rlc2MtPm1lbS0+c3BpLT5jaGlwX3NlbGVjdF07CisJc3RydWN0 IG5wY21fZml1X2NoaXAgKmNoaXAgPSAmZml1LT5jaGlwW3NwaV9nZXRfY2hpcHNlbGVjdChkZXNj LT5tZW0tPnNwaSwgMCldOwogCXZvaWQgX19pb21lbSAqc3JjID0gKHZvaWQgX19pb21lbSAqKShj aGlwLT5mbGFzaF9yZWdpb25fbWFwcGVkX3B0ciArCiAJCQkJCSAgICAgb2Zmcyk7CiAJdTggKmJ1 Zl9yeCA9IGJ1ZjsKQEAgLTMxNSw3ICszMTUsNyBAQCBzdGF0aWMgc3NpemVfdCBucGNtX2ZpdV9k aXJlY3Rfd3JpdGUoc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rlc2MgKmRlc2MsCiB7CiAJc3RydWN0 IG5wY21fZml1X3NwaSAqZml1ID0KIAkJc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoZGVzYy0+ bWVtLT5zcGktPm1hc3Rlcik7Ci0Jc3RydWN0IG5wY21fZml1X2NoaXAgKmNoaXAgPSAmZml1LT5j aGlwW2Rlc2MtPm1lbS0+c3BpLT5jaGlwX3NlbGVjdF07CisJc3RydWN0IG5wY21fZml1X2NoaXAg KmNoaXAgPSAmZml1LT5jaGlwW3NwaV9nZXRfY2hpcHNlbGVjdChkZXNjLT5tZW0tPnNwaSwgMCld OwogCXZvaWQgX19pb21lbSAqZHN0ID0gKHZvaWQgX19pb21lbSAqKShjaGlwLT5mbGFzaF9yZWdp b25fbWFwcGVkX3B0ciArCiAJCQkJCSAgICAgb2Zmcyk7CiAJY29uc3QgdTggKmJ1Zl90eCA9IGJ1 ZjsKQEAgLTM0NCw3ICszNDQsNyBAQCBzdGF0aWMgaW50IG5wY21fZml1X3VtYV9yZWFkKHN0cnVj dCBzcGlfbWVtICptZW0sCiAKIAlyZWdtYXBfdXBkYXRlX2JpdHMoZml1LT5yZWdtYXAsIE5QQ01f RklVX1VNQV9DVFMsCiAJCQkgICBOUENNX0ZJVV9VTUFfQ1RTX0RFVl9OVU0sCi0JCQkgICAobWVt LT5zcGktPmNoaXBfc2VsZWN0IDw8CisJCQkgICAoc3BpX2dldF9jaGlwc2VsZWN0KG1lbS0+c3Bp LCAwKSA8PAogCQkJICAgIE5QQ01fRklVX1VNQV9DVFNfREVWX05VTV9TSElGVCkpOwogCXJlZ21h cF91cGRhdGVfYml0cyhmaXUtPnJlZ21hcCwgTlBDTV9GSVVfVU1BX0NNRCwKIAkJCSAgIE5QQ01f RklVX1VNQV9DTURfQ01ELCBvcC0+Y21kLm9wY29kZSk7CkBAIC0zOTgsNyArMzk4LDcgQEAgc3Rh dGljIGludCBucGNtX2ZpdV91bWFfd3JpdGUoc3RydWN0IHNwaV9tZW0gKm1lbSwKIAogCXJlZ21h cF91cGRhdGVfYml0cyhmaXUtPnJlZ21hcCwgTlBDTV9GSVVfVU1BX0NUUywKIAkJCSAgIE5QQ01f RklVX1VNQV9DVFNfREVWX05VTSwKLQkJCSAgIChtZW0tPnNwaS0+Y2hpcF9zZWxlY3QgPDwKKwkJ CSAgIChzcGlfZ2V0X2NoaXBzZWxlY3QobWVtLT5zcGksIDApIDw8CiAJCQkgICAgTlBDTV9GSVVf VU1BX0NUU19ERVZfTlVNX1NISUZUKSk7CiAKIAlyZWdtYXBfdXBkYXRlX2JpdHMoZml1LT5yZWdt YXAsIE5QQ01fRklVX1VNQV9DTUQsCkBAIC00NTEsNyArNDUxLDcgQEAgc3RhdGljIGludCBucGNt X2ZpdV9tYW51YWx3cml0ZShzdHJ1Y3Qgc3BpX21lbSAqbWVtLAogCiAJcmVnbWFwX3VwZGF0ZV9i aXRzKGZpdS0+cmVnbWFwLCBOUENNX0ZJVV9VTUFfQ1RTLAogCQkJICAgTlBDTV9GSVVfVU1BX0NU U19ERVZfTlVNLAotCQkJICAgKG1lbS0+c3BpLT5jaGlwX3NlbGVjdCA8PAorCQkJICAgKHNwaV9n ZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCkgPDwKIAkJCSAgICBOUENNX0ZJVV9VTUFfQ1RTX0RF Vl9OVU1fU0hJRlQpKTsKIAlyZWdtYXBfdXBkYXRlX2JpdHMoZml1LT5yZWdtYXAsIE5QQ01fRklV X1VNQV9DVFMsCiAJCQkgICBOUENNX0ZJVV9VTUFfQ1RTX1NXX0NTLCAwKTsKQEAgLTU0NSw3ICs1 NDUsNyBAQCBzdGF0aWMgaW50IG5wY21fZml1X2V4ZWNfb3Aoc3RydWN0IHNwaV9tZW0gKm1lbSwg Y29uc3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQogewogCXN0cnVjdCBucGNtX2ZpdV9zcGkgKmZp dSA9CiAJCXNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKG1lbS0+c3BpLT5tYXN0ZXIpOwotCXN0 cnVjdCBucGNtX2ZpdV9jaGlwICpjaGlwID0gJmZpdS0+Y2hpcFttZW0tPnNwaS0+Y2hpcF9zZWxl Y3RdOworCXN0cnVjdCBucGNtX2ZpdV9jaGlwICpjaGlwID0gJmZpdS0+Y2hpcFtzcGlfZ2V0X2No aXBzZWxlY3QobWVtLT5zcGksIDApXTsKIAlpbnQgcmV0ID0gMDsKIAl1OCAqYnVmOwogCkBAIC02 MDUsNyArNjA1LDcgQEAgc3RhdGljIGludCBucGNtX2ZpdV9kaXJtYXBfY3JlYXRlKHN0cnVjdCBz cGlfbWVtX2Rpcm1hcF9kZXNjICpkZXNjKQogewogCXN0cnVjdCBucGNtX2ZpdV9zcGkgKmZpdSA9 CiAJCXNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKGRlc2MtPm1lbS0+c3BpLT5tYXN0ZXIpOwot CXN0cnVjdCBucGNtX2ZpdV9jaGlwICpjaGlwID0gJmZpdS0+Y2hpcFtkZXNjLT5tZW0tPnNwaS0+ Y2hpcF9zZWxlY3RdOworCXN0cnVjdCBucGNtX2ZpdV9jaGlwICpjaGlwID0gJmZpdS0+Y2hpcFtz cGlfZ2V0X2NoaXBzZWxlY3QoZGVzYy0+bWVtLT5zcGksIDApXTsKIAlzdHJ1Y3QgcmVnbWFwICpn Y3JfcmVnbWFwOwogCiAJaWYgKCFmaXUtPnJlc19tZW0pIHsKQEAgLTYyNCw3ICs2MjQsNyBAQCBz dGF0aWMgaW50IG5wY21fZml1X2Rpcm1hcF9jcmVhdGUoc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rl c2MgKmRlc2MpCiAJCWNoaXAtPmZsYXNoX3JlZ2lvbl9tYXBwZWRfcHRyID0KIAkJCWRldm1faW9y ZW1hcChmaXUtPmRldiwgKGZpdS0+cmVzX21lbS0+c3RhcnQgKwogCQkJCQkJCShmaXUtPmluZm8t Pm1heF9tYXBfc2l6ZSAqCi0JCQkJCQkgICAgZGVzYy0+bWVtLT5zcGktPmNoaXBfc2VsZWN0KSks CisJCQkJCQkgICAgc3BpX2dldF9jaGlwc2VsZWN0KGRlc2MtPm1lbS0+c3BpLCAwKSkpLAogCQkJ CQkgICAgICh1MzIpZGVzYy0+aW5mby5sZW5ndGgpOwogCQlpZiAoIWNoaXAtPmZsYXNoX3JlZ2lv bl9tYXBwZWRfcHRyKSB7CiAJCQlkZXZfd2FybihmaXUtPmRldiwgIkVycm9yIG1hcHBpbmcgbWVt b3J5IHJlZ2lvbiwgZGlyZWN0IHJlYWQgZGlzYWJsZWRcbiIpOwpAQCAtNjY5LDkgKzY2OSw5IEBA IHN0YXRpYyBpbnQgbnBjbV9maXVfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlzdHJ1 Y3QgbnBjbV9maXVfc3BpICpmaXUgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShjdHJsKTsK IAlzdHJ1Y3QgbnBjbV9maXVfY2hpcCAqY2hpcDsKIAotCWNoaXAgPSAmZml1LT5jaGlwW3NwaS0+ Y2hpcF9zZWxlY3RdOworCWNoaXAgPSAmZml1LT5jaGlwW3NwaV9nZXRfY2hpcHNlbGVjdChzcGks IDApXTsKIAljaGlwLT5maXUgPSBmaXU7Ci0JY2hpcC0+Y2hpcHNlbGVjdCA9IHNwaS0+Y2hpcF9z ZWxlY3Q7CisJY2hpcC0+Y2hpcHNlbGVjdCA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwog CWNoaXAtPmNsa3JhdGUgPSBzcGktPm1heF9zcGVlZF9oejsKIAogCWZpdS0+Y2xrcmF0ZSA9IGNs a19nZXRfcmF0ZShmaXUtPmNsayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktbnhwLWZz cGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1ueHAtZnNwaS5jCmluZGV4IDFjMTk5MWEyNmMxNS4uZTli YWY5M2FlZjdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktbnhwLWZzcGkuYworKysgYi9k cml2ZXJzL3NwaS9zcGktbnhwLWZzcGkuYwpAQCAtNjYzLDcgKzY2Myw3IEBAIHN0YXRpYyB2b2lk IG54cF9mc3BpX3NlbGVjdF9tZW0oc3RydWN0IG54cF9mc3BpICpmLCBzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpKQogCSAqIFJldHVybiwgaWYgcHJldmlvdXNseSBzZWxlY3RlZCBzbGF2ZSBkZXZpY2Ug aXMgc2FtZSBhcyBjdXJyZW50CiAJICogcmVxdWVzdGVkIHNsYXZlIGRldmljZS4KIAkgKi8KLQlp ZiAoZi0+c2VsZWN0ZWQgPT0gc3BpLT5jaGlwX3NlbGVjdCkKKwlpZiAoZi0+c2VsZWN0ZWQgPT0g c3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpCiAJCXJldHVybjsKIAogCS8qIFJlc2V0IEZMU0h4 eENSMCByZWdpc3RlcnMgKi8KQEAgLTY3Niw5ICs2NzYsOSBAQCBzdGF0aWMgdm9pZCBueHBfZnNw aV9zZWxlY3RfbWVtKHN0cnVjdCBueHBfZnNwaSAqZiwgc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkK IAlzaXplX2tiID0gRlNQSV9GTFNIWENSMF9TWihmLT5tZW1tYXBfcGh5X3NpemUpOwogCiAJZnNw aV93cml0ZWwoZiwgc2l6ZV9rYiwgZi0+aW9iYXNlICsgRlNQSV9GTFNIQTFDUjAgKwotCQkgICAg NCAqIHNwaS0+Y2hpcF9zZWxlY3QpOworCQkgICAgNCAqIHNwaV9nZXRfY2hpcHNlbGVjdChzcGks IDApKTsKIAotCWRldl9kYmcoZi0+ZGV2LCAiU2xhdmUgZGV2aWNlIFtDUzoleF0gc2VsZWN0ZWRc biIsIHNwaS0+Y2hpcF9zZWxlY3QpOworCWRldl9kYmcoZi0+ZGV2LCAiU2xhdmUgZGV2aWNlIFtD UzoleF0gc2VsZWN0ZWRcbiIsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAogCW54cF9m c3BpX2Nsa19kaXNhYmxlX3VucHJlcChmKTsKIApAQCAtNjkwLDcgKzY5MCw3IEBAIHN0YXRpYyB2 b2lkIG54cF9mc3BpX3NlbGVjdF9tZW0oc3RydWN0IG54cF9mc3BpICpmLCBzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpKQogCWlmIChyZXQpCiAJCXJldHVybjsKIAotCWYtPnNlbGVjdGVkID0gc3BpLT5j aGlwX3NlbGVjdDsKKwlmLT5zZWxlY3RlZCA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwog fQogCiBzdGF0aWMgaW50IG54cF9mc3BpX3JlYWRfYWhiKHN0cnVjdCBueHBfZnNwaSAqZiwgY29u c3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQpAQCAtMTA1NSw3ICsxMDU1LDcgQEAgc3RhdGljIGNv bnN0IGNoYXIgKm54cF9mc3BpX2dldF9uYW1lKHN0cnVjdCBzcGlfbWVtICptZW0pCiAKIAluYW1l ID0gZGV2bV9rYXNwcmludGYoZGV2LCBHRlBfS0VSTkVMLAogCQkJICAgICAgIiVzLSVkIiwgZGV2 X25hbWUoZi0+ZGV2KSwKLQkJCSAgICAgIG1lbS0+c3BpLT5jaGlwX3NlbGVjdCk7CisJCQkgICAg ICBzcGlfZ2V0X2NoaXBzZWxlY3QobWVtLT5zcGksIDApKTsKIAogCWlmICghbmFtZSkgewogCQlk ZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgbWVtb3J5IGZvciBjdXN0b20gZmxhc2ggbmFtZVxu Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktb21hcC0xMDBrLmMgYi9kcml2ZXJzL3Nw aS9zcGktb21hcC0xMDBrLmMKaW5kZXggMDYxZjczOTRlNWI5Li5lYzA1Nzc4MjE2YTEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1vbWFwLTEwMGsuYworKysgYi9kcml2ZXJzL3NwaS9zcGkt b21hcC0xMDBrLmMKQEAgLTI2OCw3ICsyNjgsNyBAQCBzdGF0aWMgaW50IG9tYXAxX3NwaTEwMGtf c2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkJY3MgPSBkZXZtX2t6YWxsb2MoJnNwaS0+ ZGV2LCBzaXplb2YoKmNzKSwgR0ZQX0tFUk5FTCk7CiAJCWlmICghY3MpCiAJCQlyZXR1cm4gLUVO T01FTTsKLQkJY3MtPmJhc2UgPSBzcGkxMDBrLT5iYXNlICsgc3BpLT5jaGlwX3NlbGVjdCAqIDB4 MTQ7CisJCWNzLT5iYXNlID0gc3BpMTAway0+YmFzZSArIHNwaV9nZXRfY2hpcHNlbGVjdChzcGks IDApICogMHgxNDsKIAkJc3BpLT5jb250cm9sbGVyX3N0YXRlID0gY3M7CiAJfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3NwaS9zcGktb21hcC11d2lyZS5jIGIvZHJpdmVycy9zcGkvc3BpLW9tYXAt dXdpcmUuYwppbmRleCAyOTE5OGU2ODE1YjIuLjdmOWZlOTE0N2U2MSAxMDA2NDQKLS0tIGEvZHJp dmVycy9zcGkvc3BpLW9tYXAtdXdpcmUuYworKysgYi9kcml2ZXJzL3NwaS9zcGktb21hcC11d2ly ZS5jCkBAIC0xNzksNyArMTc5LDcgQEAgc3RhdGljIHZvaWQgdXdpcmVfY2hpcHNlbGVjdChzdHJ1 Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQgdmFsdWUpCiAKIAl3ID0gdXdpcmVfcmVhZF9yZWcoVVdJ UkVfQ1NSKTsKIAlvbGRfY3MgPSAodyA+PiAxMCkgJiAweDAzOwotCWlmICh2YWx1ZSA9PSBCSVRC QU5HX0NTX0lOQUNUSVZFIHx8IG9sZF9jcyAhPSBzcGktPmNoaXBfc2VsZWN0KSB7CisJaWYgKHZh bHVlID09IEJJVEJBTkdfQ1NfSU5BQ1RJVkUgfHwgb2xkX2NzICE9IHNwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApKSB7CiAJCS8qIERlc2VsZWN0IHRoaXMgQ1MsIG9yIHRoZSBwcmV2aW91cyBDUyAq LwogCQl3ICY9IH5DU19DTUQ7CiAJCXV3aXJlX3dyaXRlX3JlZyhVV0lSRV9DU1IsIHcpOwpAQCAt MTkzLDcgKzE5Myw3IEBAIHN0YXRpYyB2b2lkIHV3aXJlX2NoaXBzZWxlY3Qoc3RydWN0IHNwaV9k ZXZpY2UgKnNwaSwgaW50IHZhbHVlKQogCQllbHNlCiAJCQl1d2lyZV93cml0ZV9yZWcoVVdJUkVf U1I0LCAwKTsKIAotCQl3ID0gc3BpLT5jaGlwX3NlbGVjdCA8PCAxMDsKKwkJdyA9IHNwaV9nZXRf Y2hpcHNlbGVjdChzcGksIDApIDw8IDEwOwogCQl3IHw9IENTX0NNRDsKIAkJdXdpcmVfd3JpdGVf cmVnKFVXSVJFX0NTUiwgdyk7CiAJfQpAQCAtMjEwLDcgKzIxMCw3IEBAIHN0YXRpYyBpbnQgdXdp cmVfdHhyeChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3Qgc3BpX3RyYW5zZmVyICp0KQog CWlmICghdC0+dHhfYnVmICYmICF0LT5yeF9idWYpCiAJCXJldHVybiAwOwogCi0JdyA9IHNwaS0+ Y2hpcF9zZWxlY3QgPDwgMTA7CisJdyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApIDw8IDEw OwogCXcgfD0gQ1NfQ01EOwogCiAJaWYgKHQtPnR4X2J1ZikgewpAQCAtNDA4LDcgKzQwOCw3IEBA IHN0YXRpYyBpbnQgdXdpcmVfc2V0dXBfdHJhbnNmZXIoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwg c3RydWN0IHNwaV90cmFuc2ZlciAqdCkKIAkJcmF0ZSAvPSA4OwogCQlicmVhazsKIAl9Ci0Jb21h cF91d2lyZV9jb25maWd1cmVfbW9kZShzcGktPmNoaXBfc2VsZWN0LCBmbGFncyk7CisJb21hcF91 d2lyZV9jb25maWd1cmVfbW9kZShzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSwgZmxhZ3MpOwog CXByX2RlYnVnKCIlczogdXdpcmUgZmxhZ3MgJTAyeCwgYXJteG9yICVsdSBLSHosIFNDSyAlbHUg S0h6XG4iLAogCQkJX19mdW5jX18sIGZsYWdzLAogCQkJY2xrX2dldF9yYXRlKHV3aXJlLT5jaykg LyAxMDAwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmMgYi9kcml2 ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYwppbmRleCA2YmE5YjBkNzcxMGIuLjVlNDA0ZGExMTJh MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmMKKysrIGIvZHJpdmVy cy9zcGkvc3BpLW9tYXAyLW1jc3BpLmMKQEAgLTM3OSw3ICszNzksNyBAQCBzdGF0aWMgdm9pZCBv bWFwMl9tY3NwaV9yeF9jYWxsYmFjayh2b2lkICpkYXRhKQogewogCXN0cnVjdCBzcGlfZGV2aWNl ICpzcGkgPSBkYXRhOwogCXN0cnVjdCBvbWFwMl9tY3NwaSAqbWNzcGkgPSBzcGlfbWFzdGVyX2dl dF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKLQlzdHJ1Y3Qgb21hcDJfbWNzcGlfZG1hICptY3NwaV9k bWEgPSAmbWNzcGktPmRtYV9jaGFubmVsc1tzcGktPmNoaXBfc2VsZWN0XTsKKwlzdHJ1Y3Qgb21h cDJfbWNzcGlfZG1hICptY3NwaV9kbWEgPSAmbWNzcGktPmRtYV9jaGFubmVsc1tzcGlfZ2V0X2No aXBzZWxlY3Qoc3BpLCAwKV07CiAKIAkvKiBXZSBtdXN0IGRpc2FibGUgdGhlIERNQSBSWCByZXF1 ZXN0ICovCiAJb21hcDJfbWNzcGlfc2V0X2RtYV9yZXEoc3BpLCAxLCAwKTsKQEAgLTM5MSw3ICsz OTEsNyBAQCBzdGF0aWMgdm9pZCBvbWFwMl9tY3NwaV90eF9jYWxsYmFjayh2b2lkICpkYXRhKQog ewogCXN0cnVjdCBzcGlfZGV2aWNlICpzcGkgPSBkYXRhOwogCXN0cnVjdCBvbWFwMl9tY3NwaSAq bWNzcGkgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKLQlzdHJ1Y3Qgb21h cDJfbWNzcGlfZG1hICptY3NwaV9kbWEgPSAmbWNzcGktPmRtYV9jaGFubmVsc1tzcGktPmNoaXBf c2VsZWN0XTsKKwlzdHJ1Y3Qgb21hcDJfbWNzcGlfZG1hICptY3NwaV9kbWEgPSAmbWNzcGktPmRt YV9jaGFubmVsc1tzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV07CiAKIAkvKiBXZSBtdXN0IGRp c2FibGUgdGhlIERNQSBUWCByZXF1ZXN0ICovCiAJb21hcDJfbWNzcGlfc2V0X2RtYV9yZXEoc3Bp LCAwLCAwKTsKQEAgLTQwOCw3ICs0MDgsNyBAQCBzdGF0aWMgdm9pZCBvbWFwMl9tY3NwaV90eF9k bWEoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwKIAlzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0 b3IgKnR4OwogCiAJbWNzcGkgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsK LQltY3NwaV9kbWEgPSAmbWNzcGktPmRtYV9jaGFubmVsc1tzcGktPmNoaXBfc2VsZWN0XTsKKwlt Y3NwaV9kbWEgPSAmbWNzcGktPmRtYV9jaGFubmVsc1tzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KV07CiAKIAlkbWFlbmdpbmVfc2xhdmVfY29uZmlnKG1jc3BpX2RtYS0+ZG1hX3R4LCAmY2ZnKTsK IApAQCAtNDQ2LDcgKzQ0Niw3IEBAIG9tYXAyX21jc3BpX3J4X2RtYShzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpLCBzdHJ1Y3Qgc3BpX3RyYW5zZmVyICp4ZmVyLAogCXN0cnVjdCBkbWFfYXN5bmNfdHhf ZGVzY3JpcHRvciAqdHg7CiAKIAltY3NwaSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5t YXN0ZXIpOwotCW1jc3BpX2RtYSA9ICZtY3NwaS0+ZG1hX2NoYW5uZWxzW3NwaS0+Y2hpcF9zZWxl Y3RdOworCW1jc3BpX2RtYSA9ICZtY3NwaS0+ZG1hX2NoYW5uZWxzW3NwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApXTsKIAljb3VudCA9IHhmZXItPmxlbjsKIAogCS8qCkBAIC01OTEsNyArNTkxLDcg QEAgb21hcDJfbWNzcGlfdHhyeF9kbWEoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IHNw aV90cmFuc2ZlciAqeGZlcikKIAlpbnQJCQl3YWl0X3JlczsKIAogCW1jc3BpID0gc3BpX21hc3Rl cl9nZXRfZGV2ZGF0YShzcGktPm1hc3Rlcik7Ci0JbWNzcGlfZG1hID0gJm1jc3BpLT5kbWFfY2hh bm5lbHNbc3BpLT5jaGlwX3NlbGVjdF07CisJbWNzcGlfZG1hID0gJm1jc3BpLT5kbWFfY2hhbm5l bHNbc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCldOwogCiAJaWYgKGNzLT53b3JkX2xlbiA8PSA4 KSB7CiAJCXdpZHRoID0gRE1BX1NMQVZFX0JVU1dJRFRIXzFfQllURTsKQEAgLTEwNjIsOCArMTA2 Miw4IEBAIHN0YXRpYyBpbnQgb21hcDJfbWNzcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNw aSkKIAkJY3MgPSBremFsbG9jKHNpemVvZigqY3MpLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFjcykK IAkJCXJldHVybiAtRU5PTUVNOwotCQljcy0+YmFzZSA9IG1jc3BpLT5iYXNlICsgc3BpLT5jaGlw X3NlbGVjdCAqIDB4MTQ7Ci0JCWNzLT5waHlzID0gbWNzcGktPnBoeXMgKyBzcGktPmNoaXBfc2Vs ZWN0ICogMHgxNDsKKwkJY3MtPmJhc2UgPSBtY3NwaS0+YmFzZSArIHNwaV9nZXRfY2hpcHNlbGVj dChzcGksIDApICogMHgxNDsKKwkJY3MtPnBoeXMgPSBtY3NwaS0+cGh5cyArIHNwaV9nZXRfY2hp cHNlbGVjdChzcGksIDApICogMHgxNDsKIAkJY3MtPm1vZGUgPSAwOwogCQljcy0+Y2hjb25mMCA9 IDA7CiAJCWNzLT5jaGN0cmwwID0gMDsKQEAgLTExNDIsNyArMTE0Miw3IEBAIHN0YXRpYyBpbnQg b21hcDJfbWNzcGlfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAJdTMy CQkJCWNoY29uZjsKIAogCW1jc3BpID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShtYXN0ZXIpOwot CW1jc3BpX2RtYSA9IG1jc3BpLT5kbWFfY2hhbm5lbHMgKyBzcGktPmNoaXBfc2VsZWN0OworCW1j c3BpX2RtYSA9IG1jc3BpLT5kbWFfY2hhbm5lbHMgKyBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAw KTsKIAljcyA9IHNwaS0+Y29udHJvbGxlcl9zdGF0ZTsKIAljZCA9IHNwaS0+Y29udHJvbGxlcl9k YXRhOwogCkBAIC0xMTU4LDcgKzExNTgsNyBAQCBzdGF0aWMgaW50IG9tYXAyX21jc3BpX3RyYW5z ZmVyX29uZShzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVyLAogCiAJb21hcDJfbWNzcGlfc2V0X2Vu YWJsZShzcGksIDApOwogCi0JaWYgKHNwaS0+Y3NfZ3Bpb2QpCisJaWYgKHNwaV9nZXRfY3NncGlv ZChzcGksIDApKQogCQlvbWFwMl9tY3NwaV9zZXRfY3Moc3BpLCBzcGktPm1vZGUgJiBTUElfQ1Nf SElHSCk7CiAKIAlpZiAocGFyX292ZXJyaWRlIHx8CkBAIC0xMjQ3LDcgKzEyNDcsNyBAQCBzdGF0 aWMgaW50IG9tYXAyX21jc3BpX3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVy LAogCiAJb21hcDJfbWNzcGlfc2V0X2VuYWJsZShzcGksIDApOwogCi0JaWYgKHNwaS0+Y3NfZ3Bp b2QpCisJaWYgKHNwaV9nZXRfY3NncGlvZChzcGksIDApKQogCQlvbWFwMl9tY3NwaV9zZXRfY3Mo c3BpLCAhKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKSk7CiAKIAlpZiAobWNzcGktPmZpZm9fZGVw dGggPiAwICYmIHQpCkBAIC0xMjg5LDcgKzEyODksNyBAQCBzdGF0aWMgYm9vbCBvbWFwMl9tY3Nw aV9jYW5fZG1hKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiB7CiAJc3RydWN0IG9tYXAyX21j c3BpICptY3NwaSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwogCXN0cnVj dCBvbWFwMl9tY3NwaV9kbWEgKm1jc3BpX2RtYSA9Ci0JCSZtY3NwaS0+ZG1hX2NoYW5uZWxzW3Nw aS0+Y2hpcF9zZWxlY3RdOworCQkmbWNzcGktPmRtYV9jaGFubmVsc1tzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKV07CiAKIAlpZiAoIW1jc3BpX2RtYS0+ZG1hX3J4IHx8ICFtY3NwaV9kbWEtPmRt YV90eCkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMTMwNyw3ICsxMzA3LDcgQEAgc3RhdGljIHNpemVf dCBvbWFwMl9tY3NwaV9tYXhfeGZlcl9zaXplKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CiAJ c3RydWN0IG9tYXAyX21jc3BpICptY3NwaSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5t YXN0ZXIpOwogCXN0cnVjdCBvbWFwMl9tY3NwaV9kbWEgKm1jc3BpX2RtYSA9Ci0JCSZtY3NwaS0+ ZG1hX2NoYW5uZWxzW3NwaS0+Y2hpcF9zZWxlY3RdOworCQkmbWNzcGktPmRtYV9jaGFubmVsc1tz cGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV07CiAKIAlpZiAobWNzcGktPm1heF94ZmVyX2xlbiAm JiBtY3NwaV9kbWEtPmRtYV9yeCkKIAkJcmV0dXJuIG1jc3BpLT5tYXhfeGZlcl9sZW47CmRpZmYg LS1naXQgYS9kcml2ZXJzL3NwaS9zcGktb3Jpb24uYyBiL2RyaXZlcnMvc3BpL3NwaS1vcmlvbi5j CmluZGV4IDU2NWNkNGM0OGQ3Yi4uMTNlNjA5NzY2OTJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Nw aS9zcGktb3Jpb24uYworKysgYi9kcml2ZXJzL3NwaS9zcGktb3Jpb24uYwpAQCAtMzQ2LDcgKzM0 Niw3IEBAIHN0YXRpYyB2b2lkIG9yaW9uX3NwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNw aSwgYm9vbCBlbmFibGUpCiAJICogYXMgaXQgaXMgaGFuZGxlZCBieSBhIEdQSU8sIGJ1dCB0aGF0 IGRvZXNuJ3QgbWF0dGVyLiBXaGF0IHdlIG5lZWQKIAkgKiBpcyB0byBkZWFzc2VydCB0aGUgb2xk IGNoaXAgc2VsZWN0IGFuZCBhc3NlcnQgc29tZSBvdGhlciBjaGlwIHNlbGVjdC4KIAkgKi8KLQl2 YWwgfD0gT1JJT05fU1BJX0NTKHNwaS0+Y2hpcF9zZWxlY3QpOworCXZhbCB8PSBPUklPTl9TUElf Q1Moc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJLyoKIAkgKiBDaGlwIHNlbGVjdCBs b2dpYyBpcyBpbnZlcnRlZCBmcm9tIHNwaV9zZXRfY3MoKS4gRm9yIGxpbmVzIHVzaW5nIGEKQEAg LTQ3MCw3ICs0NzAsNyBAQCBvcmlvbl9zcGlfd3JpdGVfcmVhZChzdHJ1Y3Qgc3BpX2RldmljZSAq c3BpLCBzdHJ1Y3Qgc3BpX3RyYW5zZmVyICp4ZmVyKQogCXVuc2lnbmVkIGludCBjb3VudDsKIAlp bnQgd29yZF9sZW47CiAJc3RydWN0IG9yaW9uX3NwaSAqb3Jpb25fc3BpOwotCWludCBjcyA9IHNw aS0+Y2hpcF9zZWxlY3Q7CisJaW50IGNzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJ dm9pZCBfX2lvbWVtICp2YWRkcjsKIAogCXdvcmRfbGVuID0gc3BpLT5iaXRzX3Blcl93b3JkOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXBjaTF4eHh4LmMgYi9kcml2ZXJzL3NwaS9zcGkt cGNpMXh4eHguYwppbmRleCBhMzFjM2I2MTJhNDMuLjFjNTczMTY0MWEwNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9zcGkvc3BpLXBjaTF4eHh4LmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXBjaTF4eHh4 LmMKQEAgLTExNiwxMSArMTE2LDExIEBAIHN0YXRpYyB2b2lkIHBjaTF4eHh4X3NwaV9zZXRfY3Mo c3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBlbmFibGUpCiAJcmVndmFsID0gcmVhZGwocGFy LT5yZWdfYmFzZSArIFNQSV9NU1RfQ1RMX1JFR19PRkZTRVQocC0+aHdfaW5zdCkpOwogCWlmIChl bmFibGUpIHsKIAkJcmVndmFsICY9IH5TUElfTVNUX0NUTF9ERVZTRUxfTUFTSzsKLQkJcmVndmFs IHw9IChzcGktPmNoaXBfc2VsZWN0IDw8IDI1KTsKKwkJcmVndmFsIHw9IChzcGlfZ2V0X2NoaXBz ZWxlY3Qoc3BpLCAwKSA8PCAyNSk7CiAJCXdyaXRlbChyZWd2YWwsCiAJCSAgICAgICBwYXItPnJl Z19iYXNlICsgU1BJX01TVF9DVExfUkVHX09GRlNFVChwLT5od19pbnN0KSk7CiAJfSBlbHNlIHsK LQkJcmVndmFsICY9IH4oc3BpLT5jaGlwX3NlbGVjdCA8PCAyNSk7CisJCXJlZ3ZhbCAmPSB+KHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApIDw8IDI1KTsKIAkJd3JpdGVsKHJlZ3ZhbCwKIAkJICAg ICAgIHBhci0+cmVnX2Jhc2UgKyBTUElfTVNUX0NUTF9SRUdfT0ZGU0VUKHAtPmh3X2luc3QpKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXBpYzMyLXNxaS5jIGIvZHJpdmVycy9zcGkv c3BpLXBpYzMyLXNxaS5jCmluZGV4IDg2YWQxNzU5N2Y1Zi4uZWQwMmQxNzg5N2QxIDEwMDY0NAot LS0gYS9kcml2ZXJzL3NwaS9zcGktcGljMzItc3FpLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXBp YzMyLXNxaS5jCkBAIC0yNjcsNyArMjY3LDcgQEAgc3RhdGljIGludCBwaWMzMl9zcWlfb25lX3Ry YW5zZmVyKHN0cnVjdCBwaWMzMl9zcWkgKnNxaSwKIAl1MzIgbmJpdHM7CiAKIAkvKiBEZXZpY2Ug c2VsZWN0aW9uICovCi0JYmRfY3RybCA9IHNwaS0+Y2hpcF9zZWxlY3QgPDwgQkRfREVWU0VMX1NI SUZUOworCWJkX2N0cmwgPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSA8PCBCRF9ERVZTRUxf U0hJRlQ7CiAKIAkvKiBoYWxmLWR1cGxleDogc2VsZWN0IHRyYW5zZmVyIGJ1ZmZlciwgZGlyZWN0 aW9uIGFuZCBsYW5lICovCiAJaWYgKHhmZXItPnJ4X2J1ZikgewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zcGkvc3BpLXBpYzMyLmMgYi9kcml2ZXJzL3NwaS9zcGktcGljMzIuYwppbmRleCA3ZTVjMDlh N2Q0ODkuLjM4NzY3MzY5NGY5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLXBpYzMyLmMK KysrIGIvZHJpdmVycy9zcGkvc3BpLXBpYzMyLmMKQEAgLTU5MSw3ICs1OTEsNyBAQCBzdGF0aWMg aW50IHBpYzMyX3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCSAqIHVucmVsaWFi bGUvZXJyb25lb3VzIFNQSSB0cmFuc2FjdGlvbnMuCiAJICogVG8gYXZvaWQgdGhhdCB3ZSB3aWxs IGFsd2F5cyBoYW5kbGUgL0NTIGJ5IHRvZ2dsaW5nIEdQSU8uCiAJICovCi0JaWYgKCFzcGktPmNz X2dwaW9kKQorCWlmICghc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCiAJCXJldHVybiAtRUlOVkFM OwogCiAJcmV0dXJuIDA7CkBAIC02MDAsNyArNjAwLDcgQEAgc3RhdGljIGludCBwaWMzMl9zcGlf c2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIHN0YXRpYyB2b2lkIHBpYzMyX3NwaV9jbGVh bnVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CiAJLyogZGUtYWN0aXZhdGUgY3MtZ3Bpbywg Z3Bpb2xpYiB3aWxsIGhhbmRsZSBpbnZlcnNpb24gKi8KLQlncGlvZF9kaXJlY3Rpb25fb3V0cHV0 KHNwaS0+Y3NfZ3Bpb2QsIDApOworCWdwaW9kX2RpcmVjdGlvbl9vdXRwdXQoc3BpX2dldF9jc2dw aW9kKHNwaSwgMCksIDApOwogfQogCiBzdGF0aWMgaW50IHBpYzMyX3NwaV9kbWFfcHJlcChzdHJ1 Y3QgcGljMzJfc3BpICpwaWMzMnMsIHN0cnVjdCBkZXZpY2UgKmRldikKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3BpL3NwaS1wbDAyMi5jIGIvZHJpdmVycy9zcGkvc3BpLXBsMDIyLmMKaW5kZXggYTE3 ZmY4MzkxMTdmLi45ODI0MDdiYzVkOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1wbDAy Mi5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1wbDAyMi5jCkBAIC0xNTg3LDkgKzE1ODcsOSBAQCBz dGF0aWMgaW50IHBsMDIyX3RyYW5zZmVyX29uZV9tZXNzYWdlKHN0cnVjdCBzcGlfbWFzdGVyICpt YXN0ZXIsCiAKIAkvKiBTZXR1cCB0aGUgU1BJIHVzaW5nIHRoZSBwZXIgY2hpcCBjb25maWd1cmF0 aW9uICovCiAJcGwwMjItPmN1cl9jaGlwID0gc3BpX2dldF9jdGxkYXRhKG1zZy0+c3BpKTsKLQlw bDAyMi0+Y3VyX2NzID0gbXNnLT5zcGktPmNoaXBfc2VsZWN0OworCXBsMDIyLT5jdXJfY3MgPSBz cGlfZ2V0X2NoaXBzZWxlY3QobXNnLT5zcGksIDApOwogCS8qIFRoaXMgaXMgYWx3YXlzIGF2YWls YWJsZSBidXQgbWF5IGJlIHNldCB0byAtRU5PRU5UICovCi0JcGwwMjItPmN1cl9ncGlvZCA9IG1z Zy0+c3BpLT5jc19ncGlvZDsKKwlwbDAyMi0+Y3VyX2dwaW9kID0gc3BpX2dldF9jc2dwaW9kKG1z Zy0+c3BpLCAwKTsKIAogCXJlc3RvcmVfc3RhdGUocGwwMjIpOwogCWZsdXNoKHBsMDIyKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1weGEyeHguYyBiL2RyaXZlcnMvc3BpL3NwaS1weGEy eHguYwppbmRleCAzMmNjODJhODllYzEuLmFiY2RjMWViMWE0MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9zcGkvc3BpLXB4YTJ4eC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1weGEyeHguYwpAQCAtMzY4 LDcgKzM2OCw3IEBAIHN0YXRpYyB2b2lkIGxwc3Nfc3NwX3NlbGVjdF9jcyhzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpLAogCiAJdmFsdWUgPSBfX2xwc3Nfc3NwX3JlYWRfcHJpdihkcnZfZGF0YSwgY29u ZmlnLT5yZWdfY3NfY3RybCk7CiAKLQljcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJY3MgPSBzcGlf Z2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAljcyA8PD0gY29uZmlnLT5jc19zZWxfc2hpZnQ7CiAJ aWYgKGNzICE9ICh2YWx1ZSAmIGNvbmZpZy0+Y3Nfc2VsX21hc2spKSB7CiAJCS8qCkBAIC00Mjks NyArNDI5LDcgQEAgc3RhdGljIHZvaWQgY3NfYXNzZXJ0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGkp CiAJCXNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKHNwaS0+Y29udHJvbGxlcik7CiAKIAlpZiAo ZHJ2X2RhdGEtPnNzcF90eXBlID09IENFNDEwMF9TU1ApIHsKLQkJcHhhMnh4X3NwaV93cml0ZShk cnZfZGF0YSwgU1NTUiwgc3BpLT5jaGlwX3NlbGVjdCk7CisJCXB4YTJ4eF9zcGlfd3JpdGUoZHJ2 X2RhdGEsIFNTU1IsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAkJcmV0dXJuOwogCX0K IApAQCAtMTIxNyw3ICsxMjE3LDcgQEAgc3RhdGljIGludCBzZXR1cChzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpKQogCQkJcmV0dXJuIC1FTk9NRU07CiAKIAkJaWYgKGRydl9kYXRhLT5zc3BfdHlwZSA9 PSBDRTQxMDBfU1NQKSB7Ci0JCQlpZiAoc3BpLT5jaGlwX3NlbGVjdCA+IDQpIHsKKwkJCWlmIChz cGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSA+IDQpIHsKIAkJCQlkZXZfZXJyKCZzcGktPmRldiwK IAkJCQkJImZhaWxlZCBzZXR1cDogY3MgbnVtYmVyIG11c3Qgbm90IGJlID4gNC5cbiIpOwogCQkJ CWtmcmVlKGNoaXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXFjb20tcXNwaS5jIGIv ZHJpdmVycy9zcGkvc3BpLXFjb20tcXNwaS5jCmluZGV4IGMzMzRkZmVjNDExNy4uMzNjMDU2ZmQ1 ZjRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktcWNvbS1xc3BpLmMKKysrIGIvZHJpdmVy cy9zcGkvc3BpLXFjb20tcXNwaS5jCkBAIC0zMTEsNyArMzExLDcgQEAgc3RhdGljIGludCBxY29t X3FzcGlfcHJlcGFyZV9tZXNzYWdlKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAKIAltc3Ry X2NmZyA9IHJlYWRsKGN0cmwtPmJhc2UgKyBNU1RSX0NPTkZJRyk7CiAJbXN0cl9jZmcgJj0gfkNI SVBfU0VMRUNUX05VTTsKLQlpZiAobWVzc2FnZS0+c3BpLT5jaGlwX3NlbGVjdCkKKwlpZiAoc3Bp X2dldF9jaGlwc2VsZWN0KG1lc3NhZ2UtPnNwaSwgMCkpCiAJCW1zdHJfY2ZnIHw9IENISVBfU0VM RUNUX05VTTsKIAogCW1zdHJfY2ZnIHw9IEZCX0NMS19FTiB8IFBJTl9XUE4gfCBQSU5fSE9MRE4g fCBTQkxfRU4gfCBGVUxMX0NZQ0xFX01PREU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGkt cmI0eHguYyBiL2RyaXZlcnMvc3BpL3NwaS1yYjR4eC5jCmluZGV4IDlmOTdkMThhMDVjMS4uM2M3 OWE1ZDg1YWMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktcmI0eHguYworKysgYi9kcml2 ZXJzL3NwaS9zcGktcmI0eHguYwpAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyBpbnQgcmI0eHhf dHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAJICogY29tbWFuZCBzZXQg d2FzIGRlc2lnbmVkIHRvIGFsbW9zdCBub3QgY2xhc2ggd2l0aCB0aGF0IG9mIHRoZQogCSAqIGJv b3QgZmxhc2guCiAJICovCi0JaWYgKHNwaS0+Y2hpcF9zZWxlY3QgPT0gMikKKwlpZiAoc3BpX2dl dF9jaGlwc2VsZWN0KHNwaSwgMCkgPT0gMikKIAkJLyogTU1DICovCiAJCXNwaV9pb2MgPSBBUjcx WFhfU1BJX0lPQ19DUzA7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXJvY2tj aGlwLXNmYy5jIGIvZHJpdmVycy9zcGkvc3BpLXJvY2tjaGlwLXNmYy5jCmluZGV4IGJkODdkM2M5 MmRkMy4uMjQ2ZTgxNDUzZWMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktcm9ja2NoaXAt c2ZjLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXJvY2tjaGlwLXNmYy5jCkBAIC0zNDYsNyArMzQ2 LDcgQEAgc3RhdGljIGludCByb2NrY2hpcF9zZmNfeGZlcl9zZXR1cChzdHJ1Y3Qgcm9ja2NoaXBf c2ZjICpzZmMsCiAKIAkvKiBzZXQgdGhlIENvbnRyb2xsZXIgKi8KIAljdHJsIHw9IFNGQ19DVFJM X1BIQVNFX1NFTF9ORUdFVElWRTsKLQljbWQgfD0gbWVtLT5zcGktPmNoaXBfc2VsZWN0IDw8IFNG Q19DTURfQ1NfU0hJRlQ7CisJY21kIHw9IHNwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCkg PDwgU0ZDX0NNRF9DU19TSElGVDsKIAogCWRldl9kYmcoc2ZjLT5kZXYsICJzZmMgYWRkci5uYnl0 ZXM9JXgoeCVkKSBkdW1teS5uYnl0ZXM9JXgoeCVkKVxuIiwKIAkJb3AtPmFkZHIubmJ5dGVzLCBv cC0+YWRkci5idXN3aWR0aCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1yb2NrY2hpcC5j IGIvZHJpdmVycy9zcGkvc3BpLXJvY2tjaGlwLmMKaW5kZXggNzkyNDJkYzUyNzJkLi5hZGM1NjM4 ZWZmNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1yb2NrY2hpcC5jCisrKyBiL2RyaXZl cnMvc3BpL3NwaS1yb2NrY2hpcC5jCkBAIC0yNDYsMjggKzI0NiwzMCBAQCBzdGF0aWMgdm9pZCBy b2NrY2hpcF9zcGlfc2V0X2NzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGJvb2wgZW5hYmxlKQog CWJvb2wgY3NfYXNzZXJ0ZWQgPSBzcGktPm1vZGUgJiBTUElfQ1NfSElHSCA/IGVuYWJsZSA6ICFl bmFibGU7CiAKIAkvKiBSZXR1cm4gaW1tZWRpYXRlbHkgZm9yIG5vLW9wICovCi0JaWYgKGNzX2Fz c2VydGVkID09IHJzLT5jc19hc3NlcnRlZFtzcGktPmNoaXBfc2VsZWN0XSkKKwlpZiAoY3NfYXNz ZXJ0ZWQgPT0gcnMtPmNzX2Fzc2VydGVkW3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXSkKIAkJ cmV0dXJuOwogCiAJaWYgKGNzX2Fzc2VydGVkKSB7CiAJCS8qIEtlZXAgdGhpbmdzIHBvd2VyZWQg YXMgbG9uZyBhcyBDUyBpcyBhc3NlcnRlZCAqLwogCQlwbV9ydW50aW1lX2dldF9zeW5jKHJzLT5k ZXYpOwogCi0JCWlmIChzcGktPmNzX2dwaW9kKQorCQlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaSwg MCkpCiAJCQlST0NLQ0hJUF9TUElfU0VUX0JJVFMocnMtPnJlZ3MgKyBST0NLQ0hJUF9TUElfU0VS LCAxKTsKIAkJZWxzZQotCQkJUk9DS0NISVBfU1BJX1NFVF9CSVRTKHJzLT5yZWdzICsgUk9DS0NI SVBfU1BJX1NFUiwgQklUKHNwaS0+Y2hpcF9zZWxlY3QpKTsKKwkJCVJPQ0tDSElQX1NQSV9TRVRf QklUUyhycy0+cmVncyArIFJPQ0tDSElQX1NQSV9TRVIsCisJCQkJCSAgICAgIEJJVChzcGlfZ2V0 X2NoaXBzZWxlY3Qoc3BpLCAwKSkpOwogCX0gZWxzZSB7Ci0JCWlmIChzcGktPmNzX2dwaW9kKQor CQlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCiAJCQlST0NLQ0hJUF9TUElfQ0xSX0JJVFMo cnMtPnJlZ3MgKyBST0NLQ0hJUF9TUElfU0VSLCAxKTsKIAkJZWxzZQotCQkJUk9DS0NISVBfU1BJ X0NMUl9CSVRTKHJzLT5yZWdzICsgUk9DS0NISVBfU1BJX1NFUiwgQklUKHNwaS0+Y2hpcF9zZWxl Y3QpKTsKKwkJCVJPQ0tDSElQX1NQSV9DTFJfQklUUyhycy0+cmVncyArIFJPQ0tDSElQX1NQSV9T RVIsCisJCQkJCSAgICAgIEJJVChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkpOwogCiAJCS8q IERyb3AgcmVmZXJlbmNlIGZyb20gd2hlbiB3ZSBmaXJzdCBhc3NlcnRlZCBDUyAqLwogCQlwbV9y dW50aW1lX3B1dChycy0+ZGV2KTsKIAl9CiAKLQlycy0+Y3NfYXNzZXJ0ZWRbc3BpLT5jaGlwX3Nl bGVjdF0gPSBjc19hc3NlcnRlZDsKKwlycy0+Y3NfYXNzZXJ0ZWRbc3BpX2dldF9jaGlwc2VsZWN0 KHNwaSwgMCldID0gY3NfYXNzZXJ0ZWQ7CiB9CiAKIHN0YXRpYyB2b2lkIHJvY2tjaGlwX3NwaV9o YW5kbGVfZXJyKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RsciwKQEAgLTU0MSw3ICs1NDMsNyBA QCBzdGF0aWMgaW50IHJvY2tjaGlwX3NwaV9jb25maWcoc3RydWN0IHJvY2tjaGlwX3NwaSAqcnMs CiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9MU0JfRklSU1QpCiAJCWNyMCB8PSBDUjBfRkJNX0xTQiA8 PCBDUjBfRkJNX09GRlNFVDsKIAlpZiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpCi0JCWNyMCB8 PSBCSVQoc3BpLT5jaGlwX3NlbGVjdCkgPDwgQ1IwX1NPSV9PRkZTRVQ7CisJCWNyMCB8PSBCSVQo c3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpIDw8IENSMF9TT0lfT0ZGU0VUOwogCiAJaWYgKHhm ZXItPnJ4X2J1ZiAmJiB4ZmVyLT50eF9idWYpCiAJCWNyMCB8PSBDUjBfWEZNX1RSIDw8IENSMF9Y Rk1fT0ZGU0VUOwpAQCAtNzI0LDcgKzcyNiw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfc3BpX3Nl dHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJc3RydWN0IHJvY2tjaGlwX3NwaSAqcnMgPSBz cGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShzcGktPmNvbnRyb2xsZXIpOwogCXUzMiBjcjA7CiAK LQlpZiAoIXNwaS0+Y3NfZ3Bpb2QgJiYgKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKSAmJiAhcnMt PmNzX2hpZ2hfc3VwcG9ydGVkKSB7CisJaWYgKCFzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAwKSAmJiAo c3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpICYmICFycy0+Y3NfaGlnaF9zdXBwb3J0ZWQpIHsKIAkJ ZGV2X3dhcm4oJnNwaS0+ZGV2LCAic2V0dXA6IG5vbiBHUElPIENTIGNhbid0IGJlIGFjdGl2ZS1o aWdoXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtNzM1LDEwICs3MzcsMTAgQEAgc3Rh dGljIGludCByb2NrY2hpcF9zcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAogCWNy MCAmPSB+KDB4MyA8PCBDUjBfU0NQSF9PRkZTRVQpOwogCWNyMCB8PSAoKHNwaS0+bW9kZSAmIDB4 MykgPDwgQ1IwX1NDUEhfT0ZGU0VUKTsKLQlpZiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0ggJiYg c3BpLT5jaGlwX3NlbGVjdCA8PSAxKQotCQljcjAgfD0gQklUKHNwaS0+Y2hpcF9zZWxlY3QpIDw8 IENSMF9TT0lfT0ZGU0VUOwotCWVsc2UgaWYgKHNwaS0+Y2hpcF9zZWxlY3QgPD0gMSkKLQkJY3Iw ICY9IH4oQklUKHNwaS0+Y2hpcF9zZWxlY3QpIDw8IENSMF9TT0lfT0ZGU0VUKTsKKwlpZiAoc3Bp LT5tb2RlICYgU1BJX0NTX0hJR0ggJiYgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkgPD0gMSkK KwkJY3IwIHw9IEJJVChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkgPDwgQ1IwX1NPSV9PRkZT RVQ7CisJZWxzZSBpZiAoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkgPD0gMSkKKwkJY3IwICY9 IH4oQklUKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSA8PCBDUjBfU09JX09GRlNFVCk7CiAK IAl3cml0ZWxfcmVsYXhlZChjcjAsIHJzLT5yZWdzICsgUk9DS0NISVBfU1BJX0NUUkxSMCk7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1yc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGktcnNw aS5jCmluZGV4IDQxMWIxMzA3YjdmZC4uNGQ0Yjk4ZjhlYjgwIDEwMDY0NAotLS0gYS9kcml2ZXJz L3NwaS9zcGktcnNwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1yc3BpLmMKQEAgLTk1MCw3ICs5 NTAsNyBAQCBzdGF0aWMgaW50IHJzcGlfc2V0dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlz dHJ1Y3QgcnNwaV9kYXRhICpyc3BpID0gc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoc3BpLT5j b250cm9sbGVyKTsKIAl1OCBzc2xwOwogCi0JaWYgKHNwaS0+Y3NfZ3Bpb2QpCisJaWYgKHNwaV9n ZXRfY3NncGlvZChzcGksIDApKQogCQlyZXR1cm4gMDsKIAogCXBtX3J1bnRpbWVfZ2V0X3N5bmMo JnJzcGktPnBkZXYtPmRldik7CkBAIC05NTgsOSArOTU4LDkgQEAgc3RhdGljIGludCByc3BpX3Nl dHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAKIAlzc2xwID0gcnNwaV9yZWFkOChyc3BpLCBS U1BJX1NTTFApOwogCWlmIChzcGktPm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJc3NscCB8PSBTU0xQ X1NTTFAoc3BpLT5jaGlwX3NlbGVjdCk7CisJCXNzbHAgfD0gU1NMUF9TU0xQKHNwaV9nZXRfY2hp cHNlbGVjdChzcGksIDApKTsKIAllbHNlCi0JCXNzbHAgJj0gflNTTFBfU1NMUChzcGktPmNoaXBf c2VsZWN0KTsKKwkJc3NscCAmPSB+U1NMUF9TU0xQKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDAp KTsKIAlyc3BpX3dyaXRlOChyc3BpLCBzc2xwLCBSU1BJX1NTTFApOwogCiAJc3Bpbl91bmxvY2tf aXJxKCZyc3BpLT5sb2NrKTsKQEAgLTEwMDEsOCArMTAwMSw4IEBAIHN0YXRpYyBpbnQgcnNwaV9w cmVwYXJlX21lc3NhZ2Uoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLAogCQlyc3BpLT5zcGNt ZCB8PSBTUENNRF9MU0JGOwogCiAJLyogQ29uZmlndXJlIHNsYXZlIHNpZ25hbCB0byBhc3NlcnQg Ki8KLQlyc3BpLT5zcGNtZCB8PSBTUENNRF9TU0xBKHNwaS0+Y3NfZ3Bpb2QgPyByc3BpLT5jdGxy LT51bnVzZWRfbmF0aXZlX2NzCi0JCQkJCQk6IHNwaS0+Y2hpcF9zZWxlY3QpOworCXJzcGktPnNw Y21kIHw9IFNQQ01EX1NTTEEoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkgPyByc3BpLT5jdGxyLT51 bnVzZWRfbmF0aXZlX2NzCisJCQkJCQk6IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAog CS8qIENNT1Mgb3V0cHV0IG1vZGUgYW5kIE1PU0kgc2lnbmFsIGZyb20gcHJldmlvdXMgdHJhbnNm ZXIgKi8KIAlyc3BpLT5zcHBjciA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktczNj NjR4eC5jIGIvZHJpdmVycy9zcGkvc3BpLXMzYzY0eHguYwppbmRleCA3MWQzMjRlYzlhNzAuLmY2 NjgyYmZlNDg0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLXMzYzY0eHguYworKysgYi9k cml2ZXJzL3NwaS9zcGktczNjNjR4eC5jCkBAIC04OTEsNyArODkxLDcgQEAgc3RhdGljIGludCBz M2M2NHh4X3NwaV9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCiAJLyogTlVMTCBpcyBm aW5lLCB3ZSBqdXN0IGF2b2lkIHVzaW5nIHRoZSBGQiBkZWxheSAoPTApICovCiAJaWYgKElTX0VS UihjcykpIHsKLQkJZGV2X2Vycigmc3BpLT5kZXYsICJObyBDUyBmb3IgU1BJKCVkKVxuIiwgc3Bp LT5jaGlwX3NlbGVjdCk7CisJCWRldl9lcnIoJnNwaS0+ZGV2LCAiTm8gQ1MgZm9yIFNQSSglZClc biIsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktc2MxOGlzNjAyLmMgYi9kcml2ZXJzL3NwaS9z cGktc2MxOGlzNjAyLmMKaW5kZXggOTgzYjM2MjFiYzJhLi5hMTJhZGM2ODczMWIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvc3BpL3NwaS1zYzE4aXM2MDIuYworKysgYi9kcml2ZXJzL3NwaS9zcGktc2Mx OGlzNjAyLmMKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIGludCBzYzE4aXM2MDJfdHhyeChzdHJ1 Y3Qgc2MxOGlzNjAyICpodywgc3RydWN0IHNwaV9tZXNzYWdlICptc2csCiAKIAlpZiAoaHctPnRs ZW4gPT0gMCkgewogCQkvKiBGaXJzdCBieXRlIChJMkMgY29tbWFuZCkgaXMgY2hpcCBzZWxlY3Qg Ki8KLQkJaHctPmJ1ZmZlclswXSA9IDEgPDwgbXNnLT5zcGktPmNoaXBfc2VsZWN0OworCQlody0+ YnVmZmVyWzBdID0gMSA8PCBzcGlfZ2V0X2NoaXBzZWxlY3QobXNnLT5zcGksIDApOwogCQlody0+ dGxlbiA9IDE7CiAJCWh3LT5yaW5kZXggPSAwOwogCX0KQEAgLTIyOSw3ICsyMjksNyBAQCBzdGF0 aWMgaW50IHNjMThpczYwMl9zZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCXN0cnVjdCBz YzE4aXM2MDIgKmh3ID0gc3BpX21hc3Rlcl9nZXRfZGV2ZGF0YShzcGktPm1hc3Rlcik7CiAKIAkv KiBTQzE4SVM2MDIgZG9lcyBub3Qgc3VwcG9ydCBDUzIgKi8KLQlpZiAoaHctPmlkID09IHNjMThp czYwMiAmJiBzcGktPmNoaXBfc2VsZWN0ID09IDIpCisJaWYgKGh3LT5pZCA9PSBzYzE4aXM2MDIg JiYgKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApID09IDIpKQogCQlyZXR1cm4gLUVOWElPOwog CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktc2gtbXNpb2YuYyBiL2Ry aXZlcnMvc3BpL3NwaS1zaC1tc2lvZi5jCmluZGV4IDliY2EzZDA3NmYwNS4uNzI0ZjMyZDc2Nzlm IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktc2gtbXNpb2YuYworKysgYi9kcml2ZXJzL3Nw aS9zcGktc2gtbXNpb2YuYwpAQCAtNTU0LDcgKzU1NCw3IEBAIHN0YXRpYyBpbnQgc2hfbXNpb2Zf c3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJCXNwaV9jb250cm9sbGVyX2dldF9k ZXZkYXRhKHNwaS0+Y29udHJvbGxlcik7CiAJdTMyIGNsciwgc2V0LCB0bXA7CiAKLQlpZiAoc3Bp LT5jc19ncGlvZCB8fCBzcGlfY29udHJvbGxlcl9pc19zbGF2ZShwLT5jdGxyKSkKKwlpZiAoc3Bp X2dldF9jc2dwaW9kKHNwaSwgMCkgfHwgc3BpX2NvbnRyb2xsZXJfaXNfc2xhdmUocC0+Y3Rscikp CiAJCXJldHVybiAwOwogCiAJaWYgKHAtPm5hdGl2ZV9jc19pbml0ZWQgJiYKQEAgLTU4NywxMSAr NTg3LDExIEBAIHN0YXRpYyBpbnQgc2hfbXNpb2ZfcHJlcGFyZV9tZXNzYWdlKHN0cnVjdCBzcGlf Y29udHJvbGxlciAqY3RsciwKIAl1MzIgc3MsIGNzX2hpZ2g7CiAKIAkvKiBDb25maWd1cmUgcGlu cyBiZWZvcmUgYXNzZXJ0aW5nIENTICovCi0JaWYgKHNwaS0+Y3NfZ3Bpb2QpIHsKKwlpZiAoc3Bp X2dldF9jc2dwaW9kKHNwaSwgMCkpIHsKIAkJc3MgPSBjdGxyLT51bnVzZWRfbmF0aXZlX2NzOwog CQljc19oaWdoID0gcC0+bmF0aXZlX2NzX2hpZ2g7CiAJfSBlbHNlIHsKLQkJc3MgPSBzcGktPmNo aXBfc2VsZWN0OworCQlzcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCQljc19oaWdo ID0gISEoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpOwogCX0KIAlzaF9tc2lvZl9zcGlfc2V0X3Bp bl9yZWdzKHAsIHNzLCAhIShzcGktPm1vZGUgJiBTUElfQ1BPTCksCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3NwaS9zcGktc2gtc2NpLmMgYi9kcml2ZXJzL3NwaS9zcGktc2gtc2NpLmMKaW5kZXggOGYz MDUzMWUxNDE4Li4zMDAzZGQ3YzcyYzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1zaC1z Y2kuYworKysgYi9kcml2ZXJzL3NwaS9zcGktc2gtc2NpLmMKQEAgLTEwOCw3ICsxMDgsNyBAQCBz dGF0aWMgdm9pZCBzaF9zY2lfc3BpX2NoaXBzZWxlY3Qoc3RydWN0IHNwaV9kZXZpY2UgKmRldiwg aW50IHZhbHVlKQogCXN0cnVjdCBzaF9zY2lfc3BpICpzcCA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRh dGEoZGV2LT5tYXN0ZXIpOwogCiAJaWYgKHNwLT5pbmZvLT5jaGlwX3NlbGVjdCkKLQkJKHNwLT5p bmZvLT5jaGlwX3NlbGVjdCkoc3AtPmluZm8sIGRldi0+Y2hpcF9zZWxlY3QsIHZhbHVlKTsKKwkJ KHNwLT5pbmZvLT5jaGlwX3NlbGVjdCkoc3AtPmluZm8sIHNwaV9nZXRfY2hpcHNlbGVjdChkZXYs IDApLCB2YWx1ZSk7CiB9CiAKIHN0YXRpYyBpbnQgc2hfc2NpX3NwaV9wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktc2lmaXZlLmMg Yi9kcml2ZXJzL3NwaS9zcGktc2lmaXZlLmMKaW5kZXggZTI5ZTg1Y2VlODhhLi43ODQwZWY5NDBm ZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1zaWZpdmUuYworKysgYi9kcml2ZXJzL3Nw aS9zcGktc2lmaXZlLmMKQEAgLTEzNSwxMyArMTM1LDEzIEBAIHNpZml2ZV9zcGlfcHJlcGFyZV9t ZXNzYWdlKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsIHN0cnVjdCBzcGlfbWVzc2FnZSAqbXNn KQogCiAJLyogVXBkYXRlIHRoZSBjaGlwIHNlbGVjdCBwb2xhcml0eSAqLwogCWlmIChkZXZpY2Ut Pm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJc3BpLT5jc19pbmFjdGl2ZSAmPSB+QklUKGRldmljZS0+ Y2hpcF9zZWxlY3QpOworCQlzcGktPmNzX2luYWN0aXZlICY9IH5CSVQoc3BpX2dldF9jaGlwc2Vs ZWN0KGRldmljZSwgMCkpOwogCWVsc2UKLQkJc3BpLT5jc19pbmFjdGl2ZSB8PSBCSVQoZGV2aWNl LT5jaGlwX3NlbGVjdCk7CisJCXNwaS0+Y3NfaW5hY3RpdmUgfD0gQklUKHNwaV9nZXRfY2hpcHNl bGVjdChkZXZpY2UsIDApKTsKIAlzaWZpdmVfc3BpX3dyaXRlKHNwaSwgU0lGSVZFX1NQSV9SRUdf Q1NERUYsIHNwaS0+Y3NfaW5hY3RpdmUpOwogCiAJLyogU2VsZWN0IHRoZSBjb3JyZWN0IGRldmlj ZSAqLwotCXNpZml2ZV9zcGlfd3JpdGUoc3BpLCBTSUZJVkVfU1BJX1JFR19DU0lELCBkZXZpY2Ut PmNoaXBfc2VsZWN0KTsKKwlzaWZpdmVfc3BpX3dyaXRlKHNwaSwgU0lGSVZFX1NQSV9SRUdfQ1NJ RCwgc3BpX2dldF9jaGlwc2VsZWN0KGRldmljZSwgMCkpOwogCiAJLyogU2V0IGNsb2NrIG1vZGUg Ki8KIAlzaWZpdmVfc3BpX3dyaXRlKHNwaSwgU0lGSVZFX1NQSV9SRUdfU0NLTU9ERSwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1zbi1mLW9zcGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1zbi1m LW9zcGkuYwppbmRleCAzNDhjNmUxZWRkMzguLmJjMTkyMWVkYmMxYSAxMDA2NDQKLS0tIGEvZHJp dmVycy9zcGkvc3BpLXNuLWYtb3NwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1zbi1mLW9zcGku YwpAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0YXRpYyB2b2lkIGZfb3NwaV9jb25maWdfaW5kaXJfcHJv dG9jb2woc3RydWN0IGZfb3NwaSAqb3NwaSwKIAlpbnQgdW5pdDsKIAogCS8qIFNldCBvbmUgY2hp cCBzZWxlY3QgKi8KLQl3cml0ZWwoQklUKHNwaS0+Y2hpcF9zZWxlY3QpLCBvc3BpLT5iYXNlICsg T1NQSV9TU0VMKTsKKwl3cml0ZWwoQklUKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKSwgb3Nw aS0+YmFzZSArIE9TUElfU1NFTCk7CiAKIAltb2RlID0gZl9vc3BpX2dldF9tb2RlKG9zcGksIG9w LT5jbWQuYnVzd2lkdGgsIDEpOwogCXByb3QgfD0gRklFTERfUFJFUChPU1BJX1BST1RfTU9ERV9D T0RFX01BU0ssIG1vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXN0LXNzYzQuYyBi L2RyaXZlcnMvc3BpL3NwaS1zdC1zc2M0LmMKaW5kZXggODQzYmU4MDM2OTZiLi41N2FhYWUzOWU1 ZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1zdC1zc2M0LmMKKysrIGIvZHJpdmVycy9z cGkvc3BpLXN0LXNzYzQuYwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRpYyBpbnQgc3BpX3N0X3Nl dHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlm ICghc3BpLT5jc19ncGlvZCkgeworCWlmICghc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpIHsKIAkJ ZGV2X2Vycigmc3BpLT5kZXYsICJubyB2YWxpZCBncGlvIGFzc2lnbmVkXG4iKTsKIAkJcmV0dXJu IC1FSU5WQUw7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXN0bTMyLXFzcGkuYyBi L2RyaXZlcnMvc3BpL3NwaS1zdG0zMi1xc3BpLmMKaW5kZXggOTEzMTY2MGMxYWZiLi5iOWU2MTM3 MmRjZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1zdG0zMi1xc3BpLmMKKysrIGIvZHJp dmVycy9zcGkvc3BpLXN0bTMyLXFzcGkuYwpAQCAtMzU5LDcgKzM1OSw3IEBAIHN0YXRpYyBpbnQg c3RtMzJfcXNwaV9nZXRfbW9kZSh1OCBidXN3aWR0aCkKIHN0YXRpYyBpbnQgc3RtMzJfcXNwaV9z ZW5kKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGNvbnN0IHN0cnVjdCBzcGlfbWVtX29wICpvcCkK IHsKIAlzdHJ1Y3Qgc3RtMzJfcXNwaSAqcXNwaSA9IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRh KHNwaS0+bWFzdGVyKTsKLQlzdHJ1Y3Qgc3RtMzJfcXNwaV9mbGFzaCAqZmxhc2ggPSAmcXNwaS0+ Zmxhc2hbc3BpLT5jaGlwX3NlbGVjdF07CisJc3RydWN0IHN0bTMyX3FzcGlfZmxhc2ggKmZsYXNo ID0gJnFzcGktPmZsYXNoW3NwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApXTsKIAl1MzIgY2NyLCBj cjsKIAlpbnQgdGltZW91dCwgZXJyID0gMCwgZXJyX3BvbGxfc3RhdHVzID0gMDsKIApAQCAtNTY0 LDcgKzU2NCw3IEBAIHN0YXRpYyBpbnQgc3RtMzJfcXNwaV90cmFuc2Zlcl9vbmVfbWVzc2FnZShz dHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0cmwsCiAJc3RydWN0IHNwaV9tZW1fb3Agb3A7CiAJaW50 IHJldCA9IDA7CiAKLQlpZiAoIXNwaS0+Y3NfZ3Bpb2QpCisJaWYgKCFzcGlfZ2V0X2NzZ3Bpb2Qo c3BpLCAwKSkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCiAJcmV0ID0gcG1fcnVudGltZV9yZXN1 bWVfYW5kX2dldChxc3BpLT5kZXYpOwpAQCAtNTczLDcgKzU3Myw3IEBAIHN0YXRpYyBpbnQgc3Rt MzJfcXNwaV90cmFuc2Zlcl9vbmVfbWVzc2FnZShzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0cmws CiAKIAltdXRleF9sb2NrKCZxc3BpLT5sb2NrKTsKIAotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVl cChzcGktPmNzX2dwaW9kLCB0cnVlKTsKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoc3BpX2dl dF9jc2dwaW9kKHNwaSwgMCksIHRydWUpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0cmFuc2Zl ciwgJm1zZy0+dHJhbnNmZXJzLCB0cmFuc2Zlcl9saXN0KSB7CiAJCXU4IGR1bW15X2J5dGVzID0g MDsKQEAgLTYyNiw3ICs2MjYsNyBAQCBzdGF0aWMgaW50IHN0bTMyX3FzcGlfdHJhbnNmZXJfb25l X21lc3NhZ2Uoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdHJsLAogCX0KIAogZW5kX29mX3RyYW5z ZmVyOgotCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChzcGktPmNzX2dwaW9kLCBmYWxzZSk7CisJ Z3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHNwaV9nZXRfY3NncGlvZChzcGksIDApLCBmYWxzZSk7 CiAKIAltdXRleF91bmxvY2soJnFzcGktPmxvY2spOwogCkBAIC02NjksOCArNjY5LDggQEAgc3Rh dGljIGludCBzdG0zMl9xc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAKIAlwcmVz YyA9IERJVl9ST1VORF9VUChxc3BpLT5jbGtfcmF0ZSwgc3BpLT5tYXhfc3BlZWRfaHopIC0gMTsK IAotCWZsYXNoID0gJnFzcGktPmZsYXNoW3NwaS0+Y2hpcF9zZWxlY3RdOwotCWZsYXNoLT5jcyA9 IHNwaS0+Y2hpcF9zZWxlY3Q7CisJZmxhc2ggPSAmcXNwaS0+Zmxhc2hbc3BpX2dldF9jaGlwc2Vs ZWN0KHNwaSwgMCldOworCWZsYXNoLT5jcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwog CWZsYXNoLT5wcmVzYyA9IHByZXNjOwogCiAJbXV0ZXhfbG9jaygmcXNwaS0+bG9jayk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3NwaS9zcGktc3VuNGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1zdW40aS5j CmluZGV4IDYwMDBkMDc2MTIwNi4uMWUzYjE5MjIwNTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Nw aS9zcGktc3VuNGkuYworKysgYi9kcml2ZXJzL3NwaS9zcGktc3VuNGkuYwpAQCAtMTY3LDcgKzE2 Nyw3IEBAIHN0YXRpYyB2b2lkIHN1bjRpX3NwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNw aSwgYm9vbCBlbmFibGUpCiAJcmVnID0gc3VuNGlfc3BpX3JlYWQoc3NwaSwgU1VONElfQ1RMX1JF Ryk7CiAKIAlyZWcgJj0gflNVTjRJX0NUTF9DU19NQVNLOwotCXJlZyB8PSBTVU40SV9DVExfQ1Mo c3BpLT5jaGlwX3NlbGVjdCk7CisJcmVnIHw9IFNVTjRJX0NUTF9DUyhzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKSk7CiAKIAkvKiBXZSB3YW50IHRvIGNvbnRyb2wgdGhlIGNoaXAgc2VsZWN0IG1h bnVhbGx5ICovCiAJcmVnIHw9IFNVTjRJX0NUTF9DU19NQU5VQUw7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3NwaS9zcGktc3VuNmkuYyBiL2RyaXZlcnMvc3BpL3NwaS1zdW42aS5jCmluZGV4IDIzYWQw NTI1MjhkYi4uNDZlN2M0NDY1MDNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktc3VuNmku YworKysgYi9kcml2ZXJzL3NwaS9zcGktc3VuNmkuYwpAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRp YyB2b2lkIHN1bjZpX3NwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgYm9vbCBlbmFi bGUpCiAKIAlyZWcgPSBzdW42aV9zcGlfcmVhZChzc3BpLCBTVU42SV9URlJfQ1RMX1JFRyk7CiAJ cmVnICY9IH5TVU42SV9URlJfQ1RMX0NTX01BU0s7Ci0JcmVnIHw9IFNVTjZJX1RGUl9DVExfQ1Mo c3BpLT5jaGlwX3NlbGVjdCk7CisJcmVnIHw9IFNVTjZJX1RGUl9DVExfQ1Moc3BpX2dldF9jaGlw c2VsZWN0KHNwaSwgMCkpOwogCiAJaWYgKGVuYWJsZSkKIAkJcmVnIHw9IFNVTjZJX1RGUl9DVExf Q1NfTEVWRUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktc3lucXVhY2VyLmMgYi9kcml2 ZXJzL3NwaS9zcGktc3lucXVhY2VyLmMKaW5kZXggNDdjYmU3MzEzN2MyLi43Mzg1YTg1YzBiMDEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1zeW5xdWFjZXIuYworKysgYi9kcml2ZXJzL3Nw aS9zcGktc3lucXVhY2VyLmMKQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgaW50IHN5bnF1YWNl cl9zcGlfY29uZmlnKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAJfQogCiAJbW9kZSA9IHNw aS0+bW9kZTsKLQljcyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJY3MgPSBzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKTsKIAlzcGVlZCA9IHhmZXItPnNwZWVkX2h6OwogCWJwdyA9IHhmZXItPmJpdHNf cGVyX3dvcmQ7CiAKQEAgLTM0NCw3ICszNDQsNyBAQCBzdGF0aWMgaW50IHN5bnF1YWNlcl9zcGlf Y29uZmlnKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAJc3NwaS0+YnB3ID0gYnB3OwogCXNz cGktPm1vZGUgPSBtb2RlOwogCXNzcGktPnNwZWVkID0gc3BlZWQ7Ci0Jc3NwaS0+Y3MgPSBzcGkt PmNoaXBfc2VsZWN0OworCXNzcGktPmNzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJ c3NwaS0+YnVzX3dpZHRoID0gYnVzX3dpZHRoOwogCiAJcmV0dXJuIDA7CkBAIC00ODksNyArNDg5 LDcgQEAgc3RhdGljIHZvaWQgc3lucXVhY2VyX3NwaV9zZXRfY3Moc3RydWN0IHNwaV9kZXZpY2Ug KnNwaSwgYm9vbCBlbmFibGUpCiAJdmFsID0gcmVhZGwoc3NwaS0+cmVncyArIFNZTlFVQUNFUl9I U1NQSV9SRUdfRE1TVEFSVCk7CiAJdmFsICY9IH4oU1lOUVVBQ0VSX0hTU1BJX0RNUFNFTF9DU19N QVNLIDw8CiAJCSBTWU5RVUFDRVJfSFNTUElfRE1QU0VMX0NTX1NISUZUKTsKLQl2YWwgfD0gc3Bp LT5jaGlwX3NlbGVjdCA8PCBTWU5RVUFDRVJfSFNTUElfRE1QU0VMX0NTX1NISUZUOworCXZhbCB8 PSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSA8PCBTWU5RVUFDRVJfSFNTUElfRE1QU0VMX0NT X1NISUZUOwogCiAJaWYgKCFlbmFibGUpCiAJCXZhbCB8PSBTWU5RVUFDRVJfSFNTUElfRE1TVE9Q X1NUT1A7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktdGVncmExMTQuYyBiL2RyaXZlcnMv c3BpL3NwaS10ZWdyYTExNC5jCmluZGV4IGQ5YmU4MGUzZTFiYy4uZTMzNDE4MzI0MWQ3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktdGVncmExMTQuYworKysgYi9kcml2ZXJzL3NwaS9zcGkt dGVncmExMTQuYwpAQCAtNzQ3LDcgKzc0Nyw3IEBAIHN0YXRpYyBpbnQgdGVncmFfc3BpX3NldF9o d19jc190aW1pbmcoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlpZiAoc2V0dXBfZGx5ICYmIGhv bGRfZGx5KSB7CiAJCXNldHVwX2hvbGQgPSBTUElfU0VUVVBfSE9MRChzZXR1cF9kbHkgLSAxLCBo b2xkX2RseSAtIDEpOwogCQlzcGlfY3NfdGltaW5nID0gU1BJX0NTX1NFVFVQX0hPTEQodHNwaS0+ c3BpX2NzX3RpbWluZzEsCi0JCQkJCQkgIHNwaS0+Y2hpcF9zZWxlY3QsCisJCQkJCQkgIHNwaV9n ZXRfY2hpcHNlbGVjdChzcGksIDApLAogCQkJCQkJICBzZXR1cF9ob2xkKTsKIAkJaWYgKHRzcGkt PnNwaV9jc190aW1pbmcxICE9IHNwaV9jc190aW1pbmcpIHsKIAkJCXRzcGktPnNwaV9jc190aW1p bmcxID0gc3BpX2NzX3RpbWluZzsKQEAgLTc2MCw5ICs3NjAsOSBAQCBzdGF0aWMgaW50IHRlZ3Jh X3NwaV9zZXRfaHdfY3NfdGltaW5nKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJCWluYWN0aXZl X2N5Y2xlcy0tOwogCWNzX3N0YXRlID0gaW5hY3RpdmVfY3ljbGVzID8gMCA6IDE7CiAJc3BpX2Nz X3RpbWluZyA9IHRzcGktPnNwaV9jc190aW1pbmcyOwotCVNQSV9TRVRfQ1NfQUNUSVZFX0JFVFdF RU5fUEFDS0VUUyhzcGlfY3NfdGltaW5nLCBzcGktPmNoaXBfc2VsZWN0LAorCVNQSV9TRVRfQ1Nf QUNUSVZFX0JFVFdFRU5fUEFDS0VUUyhzcGlfY3NfdGltaW5nLCBzcGlfZ2V0X2NoaXBzZWxlY3Qo c3BpLCAwKSwKIAkJCQkJICBjc19zdGF0ZSk7Ci0JU1BJX1NFVF9DWUNMRVNfQkVUV0VFTl9QQUNL RVRTKHNwaV9jc190aW1pbmcsIHNwaS0+Y2hpcF9zZWxlY3QsCisJU1BJX1NFVF9DWUNMRVNfQkVU V0VFTl9QQUNLRVRTKHNwaV9jc190aW1pbmcsIHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApLAog CQkJCSAgICAgICBpbmFjdGl2ZV9jeWNsZXMpOwogCWlmICh0c3BpLT5zcGlfY3NfdGltaW5nMiAh PSBzcGlfY3NfdGltaW5nKSB7CiAJCXRzcGktPnNwaV9jc190aW1pbmcyID0gc3BpX2NzX3RpbWlu ZzsKQEAgLTgzMSw4ICs4MzEsOCBAQCBzdGF0aWMgdTMyIHRlZ3JhX3NwaV9zZXR1cF90cmFuc2Zl cl9vbmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwKIAkJCXRlZ3JhX3NwaV93cml0ZWwodHNwaSwg Y29tbWFuZDEsIFNQSV9DT01NQU5EMSk7CiAKIAkJLyogR1BJTyBiYXNlZCBjaGlwIHNlbGVjdCBj b250cm9sICovCi0JCWlmIChzcGktPmNzX2dwaW9kKQotCQkJZ3Bpb2Rfc2V0X3ZhbHVlKHNwaS0+ Y3NfZ3Bpb2QsIDEpOworCQlpZiAoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCkpCisJCQlncGlvZF9z ZXRfdmFsdWUoc3BpX2dldF9jc2dwaW9kKHNwaSwgMCksIDEpOwogCiAJCWlmIChpc19zaW5nbGVf eGZlciAmJiAhKHQtPmNzX2NoYW5nZSkpIHsKIAkJCXRzcGktPnVzZV9od19iYXNlZF9jcyA9IHRy dWU7CkBAIC04NDYsNyArODQ2LDcgQEAgc3RhdGljIHUzMiB0ZWdyYV9zcGlfc2V0dXBfdHJhbnNm ZXJfb25lKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJCQkJY29tbWFuZDEgJj0gflNQSV9DU19T V19WQUw7CiAJCX0KIAotCQlpZiAodHNwaS0+bGFzdF91c2VkX2NzICE9IHNwaS0+Y2hpcF9zZWxl Y3QpIHsKKwkJaWYgKHRzcGktPmxhc3RfdXNlZF9jcyAhPSBzcGlfZ2V0X2NoaXBzZWxlY3Qoc3Bp LCAwKSkgewogCQkJaWYgKGNkYXRhICYmIGNkYXRhLT50eF9jbGtfdGFwX2RlbGF5KQogCQkJCXR4 X3RhcCA9IGNkYXRhLT50eF9jbGtfdGFwX2RlbGF5OwogCQkJaWYgKGNkYXRhICYmIGNkYXRhLT5y eF9jbGtfdGFwX2RlbGF5KQpAQCAtODU1LDcgKzg1NSw3IEBAIHN0YXRpYyB1MzIgdGVncmFfc3Bp X3NldHVwX3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCQkJCSAgIFNQSV9S WF9UQVBfREVMQVkocnhfdGFwKTsKIAkJCWlmIChjb21tYW5kMiAhPSB0c3BpLT5kZWZfY29tbWFu ZDJfcmVnKQogCQkJCXRlZ3JhX3NwaV93cml0ZWwodHNwaSwgY29tbWFuZDIsIFNQSV9DT01NQU5E Mik7Ci0JCQl0c3BpLT5sYXN0X3VzZWRfY3MgPSBzcGktPmNoaXBfc2VsZWN0OworCQkJdHNwaS0+ bGFzdF91c2VkX2NzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJCX0KIAogCX0gZWxz ZSB7CkBAIC04OTYsNyArODk2LDcgQEAgc3RhdGljIGludCB0ZWdyYV9zcGlfc3RhcnRfdHJhbnNm ZXJfb25lKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJCWNvbW1hbmQxIHw9IFNQSV9UWF9FTjsK IAkJdHNwaS0+Y3VyX2RpcmVjdGlvbiB8PSBEQVRBX0RJUl9UWDsKIAl9Ci0JY29tbWFuZDEgfD0g U1BJX0NTX1NFTChzcGktPmNoaXBfc2VsZWN0KTsKKwljb21tYW5kMSB8PSBTUElfQ1NfU0VMKHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAl0ZWdyYV9zcGlfd3JpdGVsKHRzcGksIGNvbW1h bmQxLCBTUElfQ09NTUFORDEpOwogCXRzcGktPmNvbW1hbmQxX3JlZyA9IGNvbW1hbmQxOwogCkBA IC05ODAsMTQgKzk4MCwxNCBAQCBzdGF0aWMgaW50IHRlZ3JhX3NwaV9zZXR1cChzdHJ1Y3Qgc3Bp X2RldmljZSAqc3BpKQogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnRzcGktPmxvY2ssIGZsYWdzKTsK IAkvKiBHUElPIGJhc2VkIGNoaXAgc2VsZWN0IGNvbnRyb2wgKi8KLQlpZiAoc3BpLT5jc19ncGlv ZCkKLQkJZ3Bpb2Rfc2V0X3ZhbHVlKHNwaS0+Y3NfZ3Bpb2QsIDApOworCWlmIChzcGlfZ2V0X2Nz Z3Bpb2Qoc3BpLCAwKSkKKwkJZ3Bpb2Rfc2V0X3ZhbHVlKHNwaV9nZXRfY3NncGlvZChzcGksIDAp LCAwKTsKIAogCXZhbCA9IHRzcGktPmRlZl9jb21tYW5kMV9yZWc7CiAJaWYgKHNwaS0+bW9kZSAm IFNQSV9DU19ISUdIKQotCQl2YWwgJj0gflNQSV9DU19QT0xfSU5BQ1RJVkUoc3BpLT5jaGlwX3Nl bGVjdCk7CisJCXZhbCAmPSB+U1BJX0NTX1BPTF9JTkFDVElWRShzcGlfZ2V0X2NoaXBzZWxlY3Qo c3BpLCAwKSk7CiAJZWxzZQotCQl2YWwgfD0gU1BJX0NTX1BPTF9JTkFDVElWRShzcGktPmNoaXBf c2VsZWN0KTsKKwkJdmFsIHw9IFNQSV9DU19QT0xfSU5BQ1RJVkUoc3BpX2dldF9jaGlwc2VsZWN0 KHNwaSwgMCkpOwogCXRzcGktPmRlZl9jb21tYW5kMV9yZWcgPSB2YWw7CiAJdGVncmFfc3BpX3dy aXRlbCh0c3BpLCB0c3BpLT5kZWZfY29tbWFuZDFfcmVnLCBTUElfQ09NTUFORDEpOwogCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnRzcGktPmxvY2ssIGZsYWdzKTsKQEAgLTEwMDIsOCArMTAwMiw4 IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX3NwaV90cmFuc2Zlcl9lbmQoc3RydWN0IHNwaV9kZXZpY2Ug KnNwaSkKIAlpbnQgY3NfdmFsID0gKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKSA/IDAgOiAxOwog CiAJLyogR1BJTyBiYXNlZCBjaGlwIHNlbGVjdCBjb250cm9sICovCi0JaWYgKHNwaS0+Y3NfZ3Bp b2QpCi0JCWdwaW9kX3NldF92YWx1ZShzcGktPmNzX2dwaW9kLCAwKTsKKwlpZiAoc3BpX2dldF9j c2dwaW9kKHNwaSwgMCkpCisJCWdwaW9kX3NldF92YWx1ZShzcGlfZ2V0X2NzZ3Bpb2Qoc3BpLCAw KSwgMCk7CiAKIAlpZiAoIXRzcGktPnVzZV9od19iYXNlZF9jcykgewogCQlpZiAoY3NfdmFsKQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXRlZ3JhMjAtc2ZsYXNoLmMgYi9kcml2ZXJzL3Nw aS9zcGktdGVncmEyMC1zZmxhc2guYwppbmRleCAyMjBlZTA4YzRhMDYuLmY2N2QwYWFmYTc0NCAx MDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpLXRlZ3JhMjAtc2ZsYXNoLmMKKysrIGIvZHJpdmVy cy9zcGkvc3BpLXRlZ3JhMjAtc2ZsYXNoLmMKQEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0aWMgaW50 IHRlZ3JhX3NmbGFzaF9zdGFydF90cmFuc2Zlcl9vbmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwK IAkJCWNvbW1hbmQgfD0gU1BJX0FDVElWRV9TQ0xLX0RSSVZFX0hJR0g7CiAJCWVsc2UKIAkJCWNv bW1hbmQgfD0gU1BJX0FDVElWRV9TQ0xLX0RSSVZFX0xPVzsKLQkJY29tbWFuZCB8PSBTUElfQ1Mw X0VOIDw8IHNwaS0+Y2hpcF9zZWxlY3Q7CisJCWNvbW1hbmQgfD0gU1BJX0NTMF9FTiA8PCBzcGlf Z2V0X2NoaXBzZWxlY3Qoc3BpLCAwKTsKIAl9IGVsc2UgewogCQljb21tYW5kID0gdHNkLT5jb21t YW5kX3JlZzsKIAkJY29tbWFuZCAmPSB+U1BJX0JJVF9MRU5HVEgofjApOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zcGkvc3BpLXRlZ3JhMjAtc2xpbmsuYyBiL2RyaXZlcnMvc3BpL3NwaS10ZWdyYTIw LXNsaW5rLmMKaW5kZXggMTQ4MDQzZDBjMmI4Li4wYWZiYTdkYmQ5M2EgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvc3BpL3NwaS10ZWdyYTIwLXNsaW5rLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLXRlZ3Jh MjAtc2xpbmsuYwpAQCAtNzU4LDkgKzc1OCw5IEBAIHN0YXRpYyBpbnQgdGVncmFfc2xpbmtfc2V0 dXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlzcGluX2xvY2tfaXJxc2F2ZSgmdHNwaS0+bG9j aywgZmxhZ3MpOwogCXZhbCA9IHRzcGktPmRlZl9jb21tYW5kX3JlZzsKIAlpZiAoc3BpLT5tb2Rl ICYgU1BJX0NTX0hJR0gpCi0JCXZhbCB8PSBjc19wb2xfYml0W3NwaS0+Y2hpcF9zZWxlY3RdOwor CQl2YWwgfD0gY3NfcG9sX2JpdFtzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV07CiAJZWxzZQot CQl2YWwgJj0gfmNzX3BvbF9iaXRbc3BpLT5jaGlwX3NlbGVjdF07CisJCXZhbCAmPSB+Y3NfcG9s X2JpdFtzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKV07CiAJdHNwaS0+ZGVmX2NvbW1hbmRfcmVn ID0gdmFsOwogCXRlZ3JhX3NsaW5rX3dyaXRlbCh0c3BpLCB0c3BpLT5kZWZfY29tbWFuZF9yZWcs IFNMSU5LX0NPTU1BTkQpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRzcGktPmxvY2ssIGZs YWdzKTsKQEAgLTc4MSw3ICs3ODEsNyBAQCBzdGF0aWMgaW50IHRlZ3JhX3NsaW5rX3ByZXBhcmVf bWVzc2FnZShzdHJ1Y3Qgc3BpX21hc3RlciAqbWFzdGVyLAogCXRzcGktPmNvbW1hbmRfcmVnIHw9 IFNMSU5LX0NTX1NXIHwgU0xJTktfQ1NfVkFMVUU7CiAKIAl0c3BpLT5jb21tYW5kMl9yZWcgPSB0 c3BpLT5kZWZfY29tbWFuZDJfcmVnOwotCXRzcGktPmNvbW1hbmQyX3JlZyB8PSBTTElOS19TU19F Tl9DUyhzcGktPmNoaXBfc2VsZWN0KTsKKwl0c3BpLT5jb21tYW5kMl9yZWcgfD0gU0xJTktfU1Nf RU5fQ1Moc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJdHNwaS0+Y29tbWFuZF9yZWcg Jj0gflNMSU5LX01PREVTOwogCWlmIChzcGktPm1vZGUgJiBTUElfQ1BIQSkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3BpL3NwaS10ZWdyYTIxMC1xdWFkLmMgYi9kcml2ZXJzL3NwaS9zcGktdGVncmEy MTAtcXVhZC5jCmluZGV4IDlmMzU2NjEyYmE3ZS4uNjYxZWE4NzJkNGJhIDEwMDY0NAotLS0gYS9k cml2ZXJzL3NwaS9zcGktdGVncmEyMTAtcXVhZC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS10ZWdy YTIxMC1xdWFkLmMKQEAgLTgyOSw3ICs4MjksNyBAQCBzdGF0aWMgdTMyIHRlZ3JhX3FzcGlfc2V0 dXBfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBzcGlfdHJhbgog CQl0ZWdyYV9xc3BpX21hc2tfY2xlYXJfaXJxKHRxc3BpKTsKIAogCQljb21tYW5kMSA9IHRxc3Bp LT5kZWZfY29tbWFuZDFfcmVnOwotCQljb21tYW5kMSB8PSBRU1BJX0NTX1NFTChzcGktPmNoaXBf c2VsZWN0KTsKKwkJY29tbWFuZDEgfD0gUVNQSV9DU19TRUwoc3BpX2dldF9jaGlwc2VsZWN0KHNw aSwgMCkpOwogCQljb21tYW5kMSB8PSBRU1BJX0JJVF9MRU5HVEgoYml0c19wZXJfd29yZCAtIDEp OwogCiAJCWNvbW1hbmQxICY9IH5RU1BJX0NPTlRST0xfTU9ERV9NQVNLOwpAQCAtOTYwLDExICs5 NjAsMTEgQEAgc3RhdGljIGludCB0ZWdyYV9xc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpz cGkpCiAKIAkvKiBrZWVwIGRlZmF1bHQgY3Mgc3RhdGUgdG8gaW5hY3RpdmUgKi8KIAl2YWwgPSB0 cXNwaS0+ZGVmX2NvbW1hbmQxX3JlZzsKLQl2YWwgfD0gUVNQSV9DU19TRUwoc3BpLT5jaGlwX3Nl bGVjdCk7CisJdmFsIHw9IFFTUElfQ1NfU0VMKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsK IAlpZiAoc3BpLT5tb2RlICYgU1BJX0NTX0hJR0gpCi0JCXZhbCAmPSB+UVNQSV9DU19QT0xfSU5B Q1RJVkUoc3BpLT5jaGlwX3NlbGVjdCk7CisJCXZhbCAmPSB+UVNQSV9DU19QT0xfSU5BQ1RJVkUo c3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCWVsc2UKLQkJdmFsIHw9IFFTUElfQ1NfUE9M X0lOQUNUSVZFKHNwaS0+Y2hpcF9zZWxlY3QpOworCQl2YWwgfD0gUVNQSV9DU19QT0xfSU5BQ1RJ VkUoc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCiAJdHFzcGktPmRlZl9jb21tYW5kMV9y ZWcgPSB2YWw7CiAJdGVncmFfcXNwaV93cml0ZWwodHFzcGksIHRxc3BpLT5kZWZfY29tbWFuZDFf cmVnLCBRU1BJX0NPTU1BTkQxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS10aS1xc3Bp LmMgYi9kcml2ZXJzL3NwaS9zcGktdGktcXNwaS5jCmluZGV4IDYwMDg2ODY5YmNhZS4uNTkxNDMz NWZmNjNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktdGktcXNwaS5jCisrKyBiL2RyaXZl cnMvc3BpL3NwaS10aS1xc3BpLmMKQEAgLTUzMywxMCArNTMzLDEwIEBAIHN0YXRpYyB2b2lkIHRp X3FzcGlfZW5hYmxlX21lbW9yeV9tYXAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlpZiAocXNw aS0+Y3RybF9iYXNlKSB7CiAJCXJlZ21hcF91cGRhdGVfYml0cyhxc3BpLT5jdHJsX2Jhc2UsIHFz cGktPmN0cmxfcmVnLAogCQkJCSAgIE1FTV9DU19NQVNLLAotCQkJCSAgIE1FTV9DU19FTihzcGkt PmNoaXBfc2VsZWN0KSk7CisJCQkJICAgTUVNX0NTX0VOKHNwaV9nZXRfY2hpcHNlbGVjdChzcGks IDApKSk7CiAJfQogCXFzcGktPm1tYXBfZW5hYmxlZCA9IHRydWU7Ci0JcXNwaS0+Y3VycmVudF9j cyA9IHNwaS0+Y2hpcF9zZWxlY3Q7CisJcXNwaS0+Y3VycmVudF9jcyA9IHNwaV9nZXRfY2hpcHNl bGVjdChzcGksIDApOwogfQogCiBzdGF0aWMgdm9pZCB0aV9xc3BpX2Rpc2FibGVfbWVtb3J5X21h cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQpAQCAtNTcyLDcgKzU3Miw3IEBAIHN0YXRpYyB2b2lk IHRpX3FzcGlfc2V0dXBfbW1hcF9yZWFkKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHU4IG9wY29k ZSwKIAltZW12YWwgfD0gKChhZGRyX3dpZHRoIC0gMSkgPDwgUVNQSV9TRVRVUF9BRERSX1NISUZU IHwKIAkJICAgZHVtbXlfYnl0ZXMgPDwgUVNQSV9TRVRVUF9EVU1NWV9TSElGVCk7CiAJdGlfcXNw aV93cml0ZShxc3BpLCBtZW12YWwsCi0JCSAgICAgIFFTUElfU1BJX1NFVFVQX1JFRyhzcGktPmNo aXBfc2VsZWN0KSk7CisJCSAgICAgIFFTUElfU1BJX1NFVFVQX1JFRyhzcGlfZ2V0X2NoaXBzZWxl Y3Qoc3BpLCAwKSkpOwogfQogCiBzdGF0aWMgaW50IHRpX3FzcGlfYWRqdXN0X29wX3NpemUoc3Ry dWN0IHNwaV9tZW0gKm1lbSwgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQpAQCAtNjIzLDcgKzYyMyw3 IEBAIHN0YXRpYyBpbnQgdGlfcXNwaV9leGVjX21lbV9vcChzdHJ1Y3Qgc3BpX21lbSAqbWVtLAog CiAJbXV0ZXhfbG9jaygmcXNwaS0+bGlzdF9sb2NrKTsKIAotCWlmICghcXNwaS0+bW1hcF9lbmFi bGVkIHx8IHFzcGktPmN1cnJlbnRfY3MgIT0gbWVtLT5zcGktPmNoaXBfc2VsZWN0KSB7CisJaWYg KCFxc3BpLT5tbWFwX2VuYWJsZWQgfHwgcXNwaS0+Y3VycmVudF9jcyAhPSBzcGlfZ2V0X2NoaXBz ZWxlY3QobWVtLT5zcGksIDApKSB7CiAJCXRpX3FzcGlfc2V0dXBfY2xrKHFzcGksIG1lbS0+c3Bp LT5tYXhfc3BlZWRfaHopOwogCQl0aV9xc3BpX2VuYWJsZV9tZW1vcnlfbWFwKG1lbS0+c3BpKTsK IAl9CkBAIC02NzMsMTEgKzY3MywxMSBAQCBzdGF0aWMgaW50IHRpX3FzcGlfc3RhcnRfdHJhbnNm ZXJfb25lKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAJcXNwaS0+ZGMgPSAwOwogCiAJaWYg KHNwaS0+bW9kZSAmIFNQSV9DUEhBKQotCQlxc3BpLT5kYyB8PSBRU1BJX0NLUEhBKHNwaS0+Y2hp cF9zZWxlY3QpOworCQlxc3BpLT5kYyB8PSBRU1BJX0NLUEhBKHNwaV9nZXRfY2hpcHNlbGVjdChz cGksIDApKTsKIAlpZiAoc3BpLT5tb2RlICYgU1BJX0NQT0wpCi0JCXFzcGktPmRjIHw9IFFTUElf Q0tQT0woc3BpLT5jaGlwX3NlbGVjdCk7CisJCXFzcGktPmRjIHw9IFFTUElfQ0tQT0woc3BpX2dl dF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCWlmIChzcGktPm1vZGUgJiBTUElfQ1NfSElHSCkKLQkJ cXNwaS0+ZGMgfD0gUVNQSV9DU1BPTChzcGktPmNoaXBfc2VsZWN0KTsKKwkJcXNwaS0+ZGMgfD0g UVNQSV9DU1BPTChzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSk7CiAKIAlmcmFtZV9sZW5fd29y ZHMgPSAwOwogCWxpc3RfZm9yX2VhY2hfZW50cnkodCwgJm0tPnRyYW5zZmVycywgdHJhbnNmZXJf bGlzdCkKQEAgLTY4Niw3ICs2ODYsNyBAQCBzdGF0aWMgaW50IHRpX3FzcGlfc3RhcnRfdHJhbnNm ZXJfb25lKHN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXIsCiAKIAkvKiBzZXR1cCBjb21tYW5kIHJl ZyAqLwogCXFzcGktPmNtZCA9IDA7Ci0JcXNwaS0+Y21kIHw9IFFTUElfRU5fQ1Moc3BpLT5jaGlw X3NlbGVjdCk7CisJcXNwaS0+Y21kIHw9IFFTUElfRU5fQ1Moc3BpX2dldF9jaGlwc2VsZWN0KHNw aSwgMCkpOwogCXFzcGktPmNtZCB8PSBRU1BJX0ZMRU4oZnJhbWVfbGVuX3dvcmRzKTsKIAogCXRp X3FzcGlfd3JpdGUocXNwaSwgcXNwaS0+ZGMsIFFTUElfU1BJX0RDX1JFRyk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL3NwaS9zcGktdG9wY2xpZmYtcGNoLmMgYi9kcml2ZXJzL3NwaS9zcGktdG9wY2xp ZmYtcGNoLmMKaW5kZXggY2JiNjAxOThhN2YwLi4xMWNmZTg0NzE0ZTcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvc3BpL3NwaS10b3BjbGlmZi1wY2guYworKysgYi9kcml2ZXJzL3NwaS9zcGktdG9wY2xp ZmYtcGNoLmMKQEAgLTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGNoX3NwaV9z ZWxlY3RfY2hpcChzdHJ1Y3QgcGNoX3NwaV9kYXRhICpkYXRhLAogCQkJCSAgICAgICBzdHJ1Y3Qg c3BpX2RldmljZSAqcHNwaSkKIHsKIAlpZiAoZGF0YS0+Y3VycmVudF9jaGlwICE9IE5VTEwpIHsK LQkJaWYgKHBzcGktPmNoaXBfc2VsZWN0ICE9IGRhdGEtPm5fY3VybnRfY2hpcCkgeworCQlpZiAo c3BpX2dldF9jaGlwc2VsZWN0KHBzcGksIDApICE9IGRhdGEtPm5fY3VybnRfY2hpcCkgewogCQkJ ZGV2X2RiZygmcHNwaS0+ZGV2LCAiJXMgOiBkaWZmZXJlbnQgc2xhdmVcbiIsIF9fZnVuY19fKTsK IAkJCWRhdGEtPmN1cnJlbnRfY2hpcCA9IE5VTEw7CiAJCX0KQEAgLTUwNyw3ICs1MDcsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgcGNoX3NwaV9zZWxlY3RfY2hpcChzdHJ1Y3QgcGNoX3NwaV9kYXRh ICpkYXRhLAogCiAJZGF0YS0+Y3VycmVudF9jaGlwID0gcHNwaTsKIAotCWRhdGEtPm5fY3VybnRf Y2hpcCA9IGRhdGEtPmN1cnJlbnRfY2hpcC0+Y2hpcF9zZWxlY3Q7CisJZGF0YS0+bl9jdXJudF9j aGlwID0gc3BpX2dldF9jaGlwc2VsZWN0KGRhdGEtPmN1cnJlbnRfY2hpcCwgMCk7CiAKIAlkZXZf ZGJnKCZwc3BpLT5kZXYsICIlcyA6SW52b2tpbmcgcGNoX3NwaV9zZXR1cF90cmFuc2ZlclxuIiwg X19mdW5jX18pOwogCXBjaF9zcGlfc2V0dXBfdHJhbnNmZXIocHNwaSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL3NwaS9zcGktd3BjbS1maXUuYyBiL2RyaXZlcnMvc3BpL3NwaS13cGNtLWZpdS5jCmlu ZGV4IGFiMzM3MTBkNTBhYy4uZjE1MzEyZmRjZGFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9z cGktd3BjbS1maXUuYworKysgYi9kcml2ZXJzL3NwaS9zcGktd3BjbS1maXUuYwpAQCAtMTU4LDcg KzE1OCw3IEBAIHN0YXRpYyBpbnQgd3BjbV9maXVfbm9ybWFsX2V4ZWMoc3RydWN0IHNwaV9tZW0g Km1lbSwgY29uc3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wCiAJaWYgKG9wLT5kYXRhLmRpciA9PSBT UElfTUVNX0RBVEFfT1VUKQogCQl3cGNtX2ZpdV9zZXRfZGF0YShmaXUsIG9wLT5kYXRhLmJ1Zi5v dXQsIG9wLT5kYXRhLm5ieXRlcyk7CiAKLQlyZXQgPSB3cGNtX2ZpdV9kb191bWEoZml1LCBtZW0t PnNwaS0+Y2hpcF9zZWxlY3QsIG9wLT5hZGRyLm5ieXRlcyA9PSAzLAorCXJldCA9IHdwY21fZml1 X2RvX3VtYShmaXUsIHNwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCksIG9wLT5hZGRyLm5i eXRlcyA9PSAzLAogCQkJICAgICAgb3AtPmRhdGEuZGlyID09IFNQSV9NRU1fREFUQV9PVVQsIG9w LT5kYXRhLm5ieXRlcyk7CiAKIAlpZiAob3AtPmRhdGEuZGlyID09IFNQSV9NRU1fREFUQV9JTikK QEAgLTE5Niw3ICsxOTYsNyBAQCBzdGF0aWMgYm9vbCB3cGNtX2ZpdV80YmFfbWF0Y2goY29uc3Qg c3RydWN0IHNwaV9tZW1fb3AgKm9wKQogc3RhdGljIGludCB3cGNtX2ZpdV80YmFfZXhlYyhzdHJ1 Y3Qgc3BpX21lbSAqbWVtLCBjb25zdCBzdHJ1Y3Qgc3BpX21lbV9vcCAqb3ApCiB7CiAJc3RydWN0 IHdwY21fZml1X3NwaSAqZml1ID0gc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEobWVtLT5zcGkt PmNvbnRyb2xsZXIpOwotCWludCBjcyA9IG1lbS0+c3BpLT5jaGlwX3NlbGVjdDsKKwlpbnQgY3Mg PSBzcGlfZ2V0X2NoaXBzZWxlY3QobWVtLT5zcGksIDApOwogCiAJd3BjbV9maXVfZWN0c19hc3Nl cnQoZml1LCBjcyk7CiAKQEAgLTI0MSw3ICsyNDEsNyBAQCBzdGF0aWMgYm9vbCB3cGNtX2ZpdV9y ZGlkX21hdGNoKGNvbnN0IHN0cnVjdCBzcGlfbWVtX29wICpvcCkKIHN0YXRpYyBpbnQgd3BjbV9m aXVfcmRpZF9leGVjKHN0cnVjdCBzcGlfbWVtICptZW0sIGNvbnN0IHN0cnVjdCBzcGlfbWVtX29w ICpvcCkKIHsKIAlzdHJ1Y3Qgd3BjbV9maXVfc3BpICpmaXUgPSBzcGlfY29udHJvbGxlcl9nZXRf ZGV2ZGF0YShtZW0tPnNwaS0+Y29udHJvbGxlcik7Ci0JaW50IGNzID0gbWVtLT5zcGktPmNoaXBf c2VsZWN0OworCWludCBjcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCk7CiAKIAkv KiBGaXJzdCB0cmFuc2ZlciAqLwogCXdwY21fZml1X3NldF9vcGNvZGUoZml1LCBvcC0+Y21kLm9w Y29kZSk7CkBAIC0yNzgsNyArMjc4LDcgQEAgc3RhdGljIGJvb2wgd3BjbV9maXVfZHVtbXlfbWF0 Y2goY29uc3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQogc3RhdGljIGludCB3cGNtX2ZpdV9kdW1t eV9leGVjKHN0cnVjdCBzcGlfbWVtICptZW0sIGNvbnN0IHN0cnVjdCBzcGlfbWVtX29wICpvcCkK IHsKIAlzdHJ1Y3Qgd3BjbV9maXVfc3BpICpmaXUgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0 YShtZW0tPnNwaS0+Y29udHJvbGxlcik7Ci0JaW50IGNzID0gbWVtLT5zcGktPmNoaXBfc2VsZWN0 OworCWludCBjcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChtZW0tPnNwaSwgMCk7CiAKIAl3cGNtX2Zp dV9lY3RzX2Fzc2VydChmaXUsIGNzKTsKIApAQCAtMzc2LDcgKzM3Niw3IEBAIHN0YXRpYyBpbnQg d3BjbV9maXVfYWRqdXN0X29wX3NpemUoc3RydWN0IHNwaV9tZW0gKm1lbSwgc3RydWN0IHNwaV9t ZW1fb3AgKm9wKQogc3RhdGljIGludCB3cGNtX2ZpdV9kaXJtYXBfY3JlYXRlKHN0cnVjdCBzcGlf bWVtX2Rpcm1hcF9kZXNjICpkZXNjKQogewogCXN0cnVjdCB3cGNtX2ZpdV9zcGkgKmZpdSA9IHNw aV9jb250cm9sbGVyX2dldF9kZXZkYXRhKGRlc2MtPm1lbS0+c3BpLT5jb250cm9sbGVyKTsKLQlp bnQgY3MgPSBkZXNjLT5tZW0tPnNwaS0+Y2hpcF9zZWxlY3Q7CisJaW50IGNzID0gc3BpX2dldF9j aGlwc2VsZWN0KGRlc2MtPm1lbS0+c3BpLCAwKTsKIAogCWlmIChkZXNjLT5pbmZvLm9wX3RtcGwu ZGF0YS5kaXIgIT0gU1BJX01FTV9EQVRBX0lOKQogCQlyZXR1cm4gLUVOT1RTVVBQOwpAQCAtNDAw LDcgKzQwMCw3IEBAIHN0YXRpYyBpbnQgd3BjbV9maXVfZGlybWFwX2NyZWF0ZShzdHJ1Y3Qgc3Bp X21lbV9kaXJtYXBfZGVzYyAqZGVzYykKIHN0YXRpYyBzc2l6ZV90IHdwY21fZml1X2RpcmVjdF9y ZWFkKHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9kZXNjICpkZXNjLCB1NjQgb2Zmcywgc2l6ZV90IGxl biwgdm9pZCAqYnVmKQogewogCXN0cnVjdCB3cGNtX2ZpdV9zcGkgKmZpdSA9IHNwaV9jb250cm9s bGVyX2dldF9kZXZkYXRhKGRlc2MtPm1lbS0+c3BpLT5jb250cm9sbGVyKTsKLQlpbnQgY3MgPSBk ZXNjLT5tZW0tPnNwaS0+Y2hpcF9zZWxlY3Q7CisJaW50IGNzID0gc3BpX2dldF9jaGlwc2VsZWN0 KGRlc2MtPm1lbS0+c3BpLCAwKTsKIAogCWlmIChvZmZzID49IE1BWF9NRU1PUllfU0laRV9QRVJf Q1MpCiAJCXJldHVybiAtRU5PVFNVUFA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGkteGNv bW0uYyBiL2RyaXZlcnMvc3BpL3NwaS14Y29tbS5jCmluZGV4IDg2MjgyNDFlYzk5ZS4uNWQyMzQx MWYyYTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGkteGNvbW0uYworKysgYi9kcml2ZXJz L3NwaS9zcGkteGNvbW0uYwpAQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgaW50IHNwaV94Y29tbV9z eW5jX2NvbmZpZyhzdHJ1Y3Qgc3BpX3hjb21tICpzcGlfeGNvbW0sIHVuc2lnbmVkIGludCBsZW4p CiBzdGF0aWMgdm9pZCBzcGlfeGNvbW1fY2hpcHNlbGVjdChzdHJ1Y3Qgc3BpX3hjb21tICpzcGlf eGNvbW0sCiAJc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgaW50IGlzX2FjdGl2ZSkKIHsKLQl1bnNp Z25lZCBsb25nIGNzID0gc3BpLT5jaGlwX3NlbGVjdDsKKwl1bnNpZ25lZCBsb25nIGNzID0gc3Bp X2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJdWludDE2X3QgY2hpcHNlbGVjdCA9IHNwaV94Y29t bS0+Y2hpcHNlbGVjdDsKIAogCWlmIChpc19hY3RpdmUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Nw aS9zcGkteGlsaW54LmMgYi9kcml2ZXJzL3NwaS9zcGkteGlsaW54LmMKaW5kZXggNzM3N2QzYjgx MzAyLi4yZDQxODgxMmZjMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS14aWxpbnguYwor KysgYi9kcml2ZXJzL3NwaS9zcGkteGlsaW54LmMKQEAgLTIxMyw3ICsyMTMsNyBAQCBzdGF0aWMg dm9pZCB4aWxpbnhfc3BpX2NoaXBzZWxlY3Qoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgaW50IGlz X29uKQogCSAqLwogCiAJY3MgPSB4c3BpLT5jc19pbmFjdGl2ZTsKLQljcyBePSBCSVQoc3BpLT5j aGlwX3NlbGVjdCk7CisJY3MgXj0gQklUKHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAog CS8qIEFjdGl2YXRlIHRoZSBjaGlwIHNlbGVjdCAqLwogCXhzcGktPndyaXRlX2ZuKGNzLCB4c3Bp LT5yZWdzICsgWFNQSV9TU1JfT0ZGU0VUKTsKQEAgLTIyOCw5ICsyMjgsOSBAQCBzdGF0aWMgaW50 IHhpbGlueF9zcGlfc2V0dXBfdHJhbnNmZXIoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwKIAlzdHJ1 Y3QgeGlsaW54X3NwaSAqeHNwaSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIp OwogCiAJaWYgKHNwaS0+bW9kZSAmIFNQSV9DU19ISUdIKQotCQl4c3BpLT5jc19pbmFjdGl2ZSAm PSB+QklUKHNwaS0+Y2hpcF9zZWxlY3QpOworCQl4c3BpLT5jc19pbmFjdGl2ZSAmPSB+QklUKHNw aV9nZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAllbHNlCi0JCXhzcGktPmNzX2luYWN0aXZlIHw9 IEJJVChzcGktPmNoaXBfc2VsZWN0KTsKKwkJeHNwaS0+Y3NfaW5hY3RpdmUgfD0gQklUKHNwaV9n ZXRfY2hpcHNlbGVjdChzcGksIDApKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zcGkvc3BpLXhscC5jIGIvZHJpdmVycy9zcGkvc3BpLXhscC5jCmluZGV4IGU1NzA3ZmU1 YzhmMS4uM2I5MWNkZDVhZTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGkteGxwLmMKKysr IGIvZHJpdmVycy9zcGkvc3BpLXhscC5jCkBAIC0xMzksNyArMTM5LDcgQEAgc3RhdGljIGludCB4 bHBfc3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJaW50IGNzOwogCiAJeHNwaSA9 IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwotCWNzID0gc3BpLT5jaGlwX3Nl bGVjdDsKKwljcyA9IHNwaV9nZXRfY2hpcHNlbGVjdChzcGksIDApOwogCS8qCiAJICogVGhlIHZh bHVlIG9mIGZkaXYgbXVzdCBiZSBiZXR3ZWVuIDQgYW5kIDY1NTM1LgogCSAqLwpAQCAtMzUwLDcg KzM1MCw3IEBAIHN0YXRpYyBpbnQgeGxwX3NwaV90cmFuc2Zlcl9vbmUoc3RydWN0IHNwaV9tYXN0 ZXIgKm1hc3RlciwKIAlzdHJ1Y3QgeGxwX3NwaV9wcml2ICp4c3BpID0gc3BpX21hc3Rlcl9nZXRf ZGV2ZGF0YShtYXN0ZXIpOwogCWludCByZXQgPSAwOwogCi0JeHNwaS0+Y3MgPSBzcGktPmNoaXBf c2VsZWN0OworCXhzcGktPmNzID0gc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCk7CiAJeHNwaS0+ ZGV2ID0gc3BpLT5kZXY7CiAKIAlpZiAoc3BpX3RyYW5zZmVyX2lzX2xhc3QobWFzdGVyLCB0KSkK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS16eW5xLXFzcGkuYyBiL2RyaXZlcnMvc3BpL3Nw aS16eW5xLXFzcGkuYwppbmRleCA3OGYzMWI2MWEyYWEuLmRlYmI1M2VmMTlhMCAxMDA2NDQKLS0t IGEvZHJpdmVycy9zcGkvc3BpLXp5bnEtcXNwaS5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS16eW5x LXFzcGkuYwpAQCAtMjk2LDcgKzI5Niw3IEBAIHN0YXRpYyB2b2lkIHp5bnFfcXNwaV9jaGlwc2Vs ZWN0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIGJvb2wgYXNzZXJ0KQogCS8qIFNlbGVjdCB0aGUg bG93ZXIgKENTMCkgb3IgdXBwZXIgKENTMSkgbWVtb3J5ICovCiAJaWYgKGN0bHItPm51bV9jaGlw c2VsZWN0ID4gMSkgewogCQljb25maWdfcmVnID0genlucV9xc3BpX3JlYWQoeHFzcGksIFpZTlFf UVNQSV9MSU5FQVJfQ0ZHX09GRlNFVCk7Ci0JCWlmICghc3BpLT5jaGlwX3NlbGVjdCkKKwkJaWYg KCFzcGlfZ2V0X2NoaXBzZWxlY3Qoc3BpLCAwKSkKIAkJCWNvbmZpZ19yZWcgJj0gflpZTlFfUVNQ SV9MQ0ZHX1VfUEFHRTsKIAkJZWxzZQogCQkJY29uZmlnX3JlZyB8PSBaWU5RX1FTUElfTENGR19V X1BBR0U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktenlucW1wLWdxc3BpLmMgYi9kcml2 ZXJzL3NwaS9zcGktenlucW1wLWdxc3BpLmMKaW5kZXggOTVmZjE1NjY1ZDQ0Li4zMTljZGQ1YTBi ZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS16eW5xbXAtZ3FzcGkuYworKysgYi9kcml2 ZXJzL3NwaS9zcGktenlucW1wLWdxc3BpLmMKQEAgLTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgdm9p ZCB6eW5xbXBfcXNwaV9jaGlwc2VsZWN0KHN0cnVjdCBzcGlfZGV2aWNlICpxc3BpLCBib29sIGlz X2hpZ2gpCiAJZ2VuZmlmb2VudHJ5IHw9IEdRU1BJX0dFTkZJRk9fTU9ERV9TUEk7CiAKIAlpZiAo IWlzX2hpZ2gpIHsKLQkJaWYgKCFxc3BpLT5jaGlwX3NlbGVjdCkgeworCQlpZiAoIXNwaV9nZXRf Y2hpcHNlbGVjdChxc3BpLCAwKSkgewogCQkJeHFzcGktPmdlbmZpZm9idXMgPSBHUVNQSV9HRU5G SUZPX0JVU19MT1dFUjsKIAkJCXhxc3BpLT5nZW5maWZvY3MgPSBHUVNQSV9HRU5GSUZPX0NTX0xP V0VSOwogCQl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpZGV2LmMgYi9kcml2 ZXJzL3NwaS9zcGlkZXYuYwppbmRleCA1YTAzOGM2Njc0MDEuLmEzOTljNjE3Y2EyNSAxMDA2NDQK LS0tIGEvZHJpdmVycy9zcGkvc3BpZGV2LmMKKysrIGIvZHJpdmVycy9zcGkvc3BpZGV2LmMKQEAg LTM5Myw3ICszOTMsNyBAQCBzcGlkZXZfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVk IGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQkJc3RydWN0IHNwaV9jb250cm9sbGVyICpj dGxyID0gc3BpLT5jb250cm9sbGVyOwogCiAJCQlpZiAoY3Rsci0+dXNlX2dwaW9fZGVzY3JpcHRv cnMgJiYgY3Rsci0+Y3NfZ3Bpb2RzICYmCi0JCQkgICAgY3Rsci0+Y3NfZ3Bpb2RzW3NwaS0+Y2hp cF9zZWxlY3RdKQorCQkJICAgIGN0bHItPmNzX2dwaW9kc1tzcGlfZ2V0X2NoaXBzZWxlY3Qoc3Bp LCAwKV0pCiAJCQkJdG1wICY9IH5TUElfQ1NfSElHSDsKIAkJfQogCkBAIC00MzIsNyArNDMyLDcg QEAgc3BpZGV2X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNp Z25lZCBsb25nIGFyZykKIAkJCX0KIAogCQkJaWYgKGN0bHItPnVzZV9ncGlvX2Rlc2NyaXB0b3Jz ICYmIGN0bHItPmNzX2dwaW9kcyAmJgotCQkJICAgIGN0bHItPmNzX2dwaW9kc1tzcGktPmNoaXBf c2VsZWN0XSkKKwkJCSAgICBjdGxyLT5jc19ncGlvZHNbc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwg MCldKQogCQkJCXRtcCB8PSBTUElfQ1NfSElHSDsKIAogCQkJdG1wIHw9IHNwaS0+bW9kZSAmIH5T UElfTU9ERV9NQVNLOwpAQCAtODA1LDcgKzgwNSw3IEBAIHN0YXRpYyBpbnQgc3BpZGV2X3Byb2Jl KHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJCXNwaWRldi0+ZGV2dCA9IE1LREVWKFNQSURFVl9N QUpPUiwgbWlub3IpOwogCQlkZXYgPSBkZXZpY2VfY3JlYXRlKHNwaWRldl9jbGFzcywgJnNwaS0+ ZGV2LCBzcGlkZXYtPmRldnQsCiAJCQkJICAgIHNwaWRldiwgInNwaWRldiVkLiVkIiwKLQkJCQkg ICAgc3BpLT5tYXN0ZXItPmJ1c19udW0sIHNwaS0+Y2hpcF9zZWxlY3QpOworCQkJCSAgICBzcGkt Pm1hc3Rlci0+YnVzX251bSwgc3BpX2dldF9jaGlwc2VsZWN0KHNwaSwgMCkpOwogCQlzdGF0dXMg PSBQVFJfRVJSX09SX1pFUk8oZGV2KTsKIAl9IGVsc2UgewogCQlkZXZfZGJnKCZzcGktPmRldiwg Im5vIG1pbm9yIG51bWJlciBhdmFpbGFibGUhXG4iKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdHJh Y2UvZXZlbnRzL3NwaS5oIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvc3BpLmgKaW5kZXggYzBkOTg0 NGJlZmQ3Li5jMDI0OGE4ZmE3OWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL3Nw aS5oCisrKyBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL3NwaS5oCkBAIC01Nyw3ICs1Nyw3IEBAIFRS QUNFX0VWRU5UKHNwaV9zZXR1cCwKIAogCVRQX2Zhc3RfYXNzaWduKAogCQlfX2VudHJ5LT5idXNf bnVtID0gc3BpLT5jb250cm9sbGVyLT5idXNfbnVtOwotCQlfX2VudHJ5LT5jaGlwX3NlbGVjdCA9 IHNwaS0+Y2hpcF9zZWxlY3Q7CisJCV9fZW50cnktPmNoaXBfc2VsZWN0ID0gIHNwaV9nZXRfY2hp cHNlbGVjdChzcGksIDApOwogCQlfX2VudHJ5LT5tb2RlID0gc3BpLT5tb2RlOwogCQlfX2VudHJ5 LT5iaXRzX3Blcl93b3JkID0gc3BpLT5iaXRzX3Blcl93b3JkOwogCQlfX2VudHJ5LT5tYXhfc3Bl ZWRfaHogPSBzcGktPm1heF9zcGVlZF9oejsKQEAgLTg4LDcgKzg4LDcgQEAgVFJBQ0VfRVZFTlQo c3BpX3NldF9jcywKIAogCVRQX2Zhc3RfYXNzaWduKAogCQlfX2VudHJ5LT5idXNfbnVtID0gc3Bp LT5jb250cm9sbGVyLT5idXNfbnVtOwotCQlfX2VudHJ5LT5jaGlwX3NlbGVjdCA9IHNwaS0+Y2hp cF9zZWxlY3Q7CisJCV9fZW50cnktPmNoaXBfc2VsZWN0ID0gc3BpX2dldF9jaGlwc2VsZWN0KHNw aSwgMCk7CiAJCV9fZW50cnktPm1vZGUgPSBzcGktPm1vZGU7CiAJCV9fZW50cnktPmVuYWJsZSA9 IGVuYWJsZTsKIAkpLApAQCAtMTEzLDcgKzExMyw3IEBAIERFQ0xBUkVfRVZFTlRfQ0xBU1Moc3Bp X21lc3NhZ2UsCiAKIAlUUF9mYXN0X2Fzc2lnbigKIAkJX19lbnRyeS0+YnVzX251bSA9IG1zZy0+ c3BpLT5jb250cm9sbGVyLT5idXNfbnVtOwotCQlfX2VudHJ5LT5jaGlwX3NlbGVjdCA9IG1zZy0+ c3BpLT5jaGlwX3NlbGVjdDsKKwkJX19lbnRyeS0+Y2hpcF9zZWxlY3QgPSBzcGlfZ2V0X2NoaXBz ZWxlY3QobXNnLT5zcGksIDApOwogCQlfX2VudHJ5LT5tc2cgPSBtc2c7CiAJKSwKIApAQCAtMTU0 LDcgKzE1NCw3IEBAIFRSQUNFX0VWRU5UKHNwaV9tZXNzYWdlX2RvbmUsCiAKIAlUUF9mYXN0X2Fz c2lnbigKIAkJX19lbnRyeS0+YnVzX251bSA9IG1zZy0+c3BpLT5jb250cm9sbGVyLT5idXNfbnVt OwotCQlfX2VudHJ5LT5jaGlwX3NlbGVjdCA9IG1zZy0+c3BpLT5jaGlwX3NlbGVjdDsKKwkJX19l bnRyeS0+Y2hpcF9zZWxlY3QgPSBzcGlfZ2V0X2NoaXBzZWxlY3QobXNnLT5zcGksIDApOwogCQlf X2VudHJ5LT5tc2cgPSBtc2c7CiAJCV9fZW50cnktPmZyYW1lID0gbXNnLT5mcmFtZV9sZW5ndGg7 CiAJCV9fZW50cnktPmFjdHVhbCA9IG1zZy0+YWN0dWFsX2xlbmd0aDsKQEAgLTE5Nyw3ICsxOTcs NyBAQCBERUNMQVJFX0VWRU5UX0NMQVNTKHNwaV90cmFuc2ZlciwKIAogCVRQX2Zhc3RfYXNzaWdu KAogCQlfX2VudHJ5LT5idXNfbnVtID0gbXNnLT5zcGktPmNvbnRyb2xsZXItPmJ1c19udW07Ci0J CV9fZW50cnktPmNoaXBfc2VsZWN0ID0gbXNnLT5zcGktPmNoaXBfc2VsZWN0OworCQlfX2VudHJ5 LT5jaGlwX3NlbGVjdCA9IHNwaV9nZXRfY2hpcHNlbGVjdChtc2ctPnNwaSwgMCk7CiAJCV9fZW50 cnktPnhmZXIgPSB4ZmVyOwogCQlfX2VudHJ5LT5sZW4gPSB4ZmVyLT5sZW47CiAKLS0gCjIuMjUu MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFtbG9naWMgbWFpbGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFtbG9naWMK