From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 73733C43603 for ; Mon, 9 Dec 2019 08:30:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4FF9020726 for ; Mon, 9 Dec 2019 08:30:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4FF9020726 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DADC56E330; Mon, 9 Dec 2019 08:30:47 +0000 (UTC) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2059.outbound.protection.outlook.com [40.107.243.59]) by gabe.freedesktop.org (Postfix) with ESMTPS id D1EAF6E0D0 for ; Mon, 9 Dec 2019 08:30:45 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iGp9+JlyCmhjHJZcKtOSYEKES5xzZ5UU1DPLm7tM3GUk+iT8psdACoVqGWFvrPA2sCNfzDJLvI/UmbuZjGBCU5dziHSS7e6yv4c5gaq+iKkzSXzuCxKAsToZ5s/Mt9zgC6FCRcdvNjJH2JrOv5aLnk5v9O4GPUSr7SUNg0+GFWGvqENSzP1N02DAzMLT58EuuIdaBjXpu7lnBbDZryVfDxmstoMyWFlrWHKQIFp7V52eQjiy0+/fg0uyGlDfp/6Ri9Mf006SZs/YhzzhfqKYUNqtIrwQ7+beAoZyxsCWDAXZX0UYqzmi/czZXAPnSYfKlJhc9okaMOV315AMwhfPJw== 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-SenderADCheck; bh=+CvBA+669qIBwU5XvlQLrv3b0qRO4TXRmPpk9Y8cizM=; b=hWz+3bSn9oHPuxLPZ5eZzblLGrp3cEWVCOPuOdHf0zkYhd2Q3LWXwEs/Hd4Z7DhsMPWHQuFnVtDve7gzuuC4GlHMNA6A02RGNJPtO6xB7EqKLzbMMdzpBh/HbAIkCqinYvH61p0p0S57RplASUXnhP8X+W/0i8NjO5r6/8HgqdExAQ4/utsxq1S49kzbgPotJUNPKlwosPMI9MXL4zaMfPrBiBqgpEZCAkiZj0u9ooCHdHVhcF1gx241HLnZH5QVWEgo5CAUoXVPk8nLmaWXevyiz014RqRtA1TExS94D8CHfOCeAnCaFMumphChgJUEKDmYSzF0ICCD9g8Kq7m7Hg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=amd.com; dmarc=permerror action=none header.from=amd.com; dkim=none (message not signed); arc=none Received: from CH2PR12CA0021.namprd12.prod.outlook.com (2603:10b6:610:57::31) by CY4PR1201MB2549.namprd12.prod.outlook.com (2603:10b6:903:da::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2516.12; Mon, 9 Dec 2019 08:30:41 +0000 Received: from BN8NAM11FT016.eop-nam11.prod.protection.outlook.com (2a01:111:f400:7eae::207) by CH2PR12CA0021.outlook.office365.com (2603:10b6:610:57::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2516.14 via Frontend Transport; Mon, 9 Dec 2019 08:30:41 +0000 Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Received: from SATLEXMB01.amd.com (165.204.84.17) by BN8NAM11FT016.mail.protection.outlook.com (10.13.176.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.2451.23 via Frontend Transport; Mon, 9 Dec 2019 08:30:41 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB01.amd.com (10.181.40.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 9 Dec 2019 02:30:41 -0600 Received: from SATLEXMB01.amd.com (10.181.40.142) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 9 Dec 2019 02:30:40 -0600 Received: from yttao-code-machine.amd.com (10.180.168.240) by SATLEXMB01.amd.com (10.181.40.142) with Microsoft SMTP Server id 15.1.1713.5 via Frontend Transport; Mon, 9 Dec 2019 02:30:38 -0600 From: Yintian Tao To: , Subject: [PATCH] drm/amd/powerplay: enable pp one vf mode for vega10 Date: Mon, 9 Dec 2019 16:30:34 +0800 Message-ID: <20191209083034.20164-1-yttao@amd.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:165.204.84.17; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(4636009)(346002)(376002)(136003)(396003)(39860400002)(428003)(189003)(199004)(316002)(426003)(2906002)(36756003)(336012)(2616005)(305945005)(8936002)(50226002)(81166006)(81156014)(4326008)(6636002)(8676002)(186003)(48376002)(6666004)(356004)(50466002)(1076003)(53416004)(70206006)(70586007)(478600001)(30864003)(54906003)(110136005)(26005)(51416003)(7696005)(5660300002)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1201MB2549; H:SATLEXMB01.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoDomainNonexistent; MX:1; A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f4106c44-b6b2-46c2-b25a-08d77c8213b9 X-MS-TrafficTypeDiagnostic: CY4PR1201MB2549: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1060; X-Forefront-PRVS: 02462830BE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pNEu4ICnTy3/eC1fTQTRda2S7P5ZiLI75Rch+v8ZevozjUttH5lgshFs4E+2WBZg/sv/9w4gHzP2YIyoI/fmr+/Ix0RlBmwXqQ+DbYoLFjqN0iJMGwfaqCU3AR87M2S984jCK4QX3nfRjRzvM1jkYv38kOChNFcvYn/9xEv9tcDGtma05MCDASDivkj7Tj2hDDS76uAj2vWXBodSYi7OMyeYAiXCC5i+N/KL6XjS9ze3oqo1eR6TQ94LnCC95pcxeLvQeTABwI5PWiFy75OzOlqnuz2rLIxpYy7NbMbUQiZAdGuiMVqORRFQ3+lmUt4mnrnmGYJlCW8YlAZbX5USZicUn2pDl273HFOc6OO61M36a+RpnPmzjeT+L3rQdAE4CBeRU241aN/84Z/6bCNwAYB6g++VA6rSndT4AYsHF2QdtINaHAZiCLiWHt3o66xY X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2019 08:30:41.4313 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f4106c44-b6b2-46c2-b25a-08d77c8213b9 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=[SATLEXMB01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1201MB2549 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+CvBA+669qIBwU5XvlQLrv3b0qRO4TXRmPpk9Y8cizM=; b=Jr1jS1s+1ikxKe32WghXqd2mqhMxbxPhELP+hi67AxI+cNVWoukrmnyFjUnelzXFTzUXomZSpDmLhL57RCTUPnj8oKIYRvRV4C51sQsUgLd1x2EO7WtgJ3AR64m5/YDJyOsVDDT9xeN1hsxw6ctM3UrH4GymYobvFTaCdGjCbBk= X-Mailman-Original-Authentication-Results: spf=none (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; lists.freedesktop.org; dkim=none (message not signed) header.d=none;lists.freedesktop.org; dmarc=permerror action=none header.from=amd.com; X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: amd-gfx@lists.freedesktop.org, Yintian Tao Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" T3JpZ2luYWxseSwgZHVlIHRvIHRoZSByZXN0cmljdGlvbiBmcm9tIFBTUCBhbmQgU01VLCBWRiBo YXMKdG8gc2VuZCBtZXNzYWdlIHRvIGh5cGVydmlzb3IgZHJpdmVyIHRvIGhhbmRsZSBwb3dlcnBs YXkKY2hhbmdlIHdoaWNoIGlzIGNvbXBsaWNhdGVkIGFuZCByZWR1bmRhbnQuIEN1cnJlbnRseSwg U01VCmFuZCBQU1AgY2FuIHN1cHBvcnQgVkYgdG8gZGlyZWN0bHkgaGFuZGxlIHBvd2VycGxheQpj aGFuZ2UgYnkgaXRzZWxmLiBUaGVyZWZvcmUsIHRoZSBvbGQgY29kZSBhYm91dCB0aGUgaGFuZHNo YWtlCmJldHdlZW4gVkYgYW5kIFBGIHRvIGhhbmRsZSBwb3dlcnBsYXkgd2lsbCBiZSByZW1vdmVk IGFuZCBWRgp3aWxsIHVzZSBuZXcgdGhlIHJlZ2lzdGVycyBiZWxvdyB0byBoYW5kc2hha2Ugd2l0 aCBTTVUuCm1tTVAxX1NNTl9DMlBNU0dfMTAxOiByZWdpc3RlciB0byBoYW5kbGUgU01VIG1lc3Nh Z2UKbW1NUDFfU01OX0MyUE1TR18xMDI6IHJlZ2lzdGVyIHRvIGhhbmRsZSBTTVUgcGFyYW1ldGVy Cm1tTVAxX1NNTl9DMlBNU0dfMTAzOiByZWdpc3RlciB0byBoYW5kbGUgU01VIHJlc3BvbnNlCgpT aWduZWQtb2ZmLWJ5OiBZaW50aWFuIFRhbyA8eXR0YW9AYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jICAgIHwgICA2IC0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyAgICAgICB8ICAgNyArCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfa21zLmMgICAgICAgfCAgIDQgLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3BtLmMgICAgICAgIHwgMTIxICsrKysrKystLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jICAgICAgfCAgNTEgLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oICAgICAgfCAgMTQgKy0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMgICAgICAgICB8ICA3OCAtLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmggICAgICAgICB8ICAgNCAtCiBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5jICAgICAgICAgICAgfCAgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXkuYyB8ICAgNyArLQogZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jICAgIHwgIDI0ICstLQogLi4u L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2hhcmR3YXJlbWFuYWdlci5jIHwgIDE1ICstCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9od21nci5jICAgfCAgIDQgKwogZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcHBfcHNtLmMgIHwgIDMwICsrLS0KIC4uLi9k cm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBfaHdtZ3IuYyAgICB8IDE1NyArKysrKysrKysr KystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oICAgICB8 ICAgMSArCiAuLi4vZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdTlfc211bWdyLmMgICAgfCAg NTUgKysrKy0tCiAuLi4vZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2ExMF9zbXVtZ3IuYyAg fCAgIDYgKwogMTkgZmlsZXMgY2hhbmdlZCwgMjgxIGluc2VydGlvbnMoKyksIDMwNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4IDUwYmFiMzNjYmEzOS4u M2YwMGMyZTBiMGUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaApAQCAtMTE0LDYg KzExNCw3IEBAIHN0cnVjdCBhbWRncHVfbWdwdV9pbmZvCiAvKgogICogTW9kdWxlcyBwYXJhbWV0 ZXJzLgogICovCitleHRlcm4gaW50IGFtZGdwdV9wcF9vbmVfdmY7CiBleHRlcm4gaW50IGFtZGdw dV9tb2Rlc2V0OwogZXh0ZXJuIGludCBhbWRncHVfdnJhbV9saW1pdDsKIGV4dGVybiBpbnQgYW1k Z3B1X3Zpc192cmFtX2xpbWl0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rl dmljZS5jCmluZGV4IGI5Y2E3ZTcyOGQzZS4uNjJmYTVmMDc0ZWJkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCkBAIC0yODE5LDcgKzI4MTksNiBAQCBpbnQg YW1kZ3B1X2RldmljZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCW11dGV4X2lu aXQoJmFkZXYtPnZpcnQudmZfZXJyb3JzLmxvY2spOwogCWhhc2hfaW5pdChhZGV2LT5tbl9oYXNo KTsKIAltdXRleF9pbml0KCZhZGV2LT5sb2NrX3Jlc2V0KTsKLQltdXRleF9pbml0KCZhZGV2LT52 aXJ0LmRwbV9tdXRleCk7CiAJbXV0ZXhfaW5pdCgmYWRldi0+cHNwLm11dGV4KTsKIAogCXIgPSBh bWRncHVfZGV2aWNlX2NoZWNrX2FyZ3VtZW50cyhhZGV2KTsKQEAgLTMwNDAsOSArMzAzOSw2IEBA IGludCBhbWRncHVfZGV2aWNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIAlh bWRncHVfZmJkZXZfaW5pdChhZGV2KTsKIAotCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYg YW1kZ2ltX2lzX2h3cGVyZihhZGV2KSkKLQkJYW1kZ3B1X3BtX3ZpcnRfc3lzZnNfaW5pdChhZGV2 KTsKLQogCXIgPSBhbWRncHVfcG1fc3lzZnNfaW5pdChhZGV2KTsKIAlpZiAocikgewogCQlhZGV2 LT5wbV9zeXNmc19lbiA9IGZhbHNlOwpAQCAtMzE4Nyw4ICszMTgzLDYgQEAgdm9pZCBhbWRncHVf ZGV2aWNlX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaW91bm1hcChhZGV2LT5y bW1pbyk7CiAJYWRldi0+cm1taW8gPSBOVUxMOwogCWFtZGdwdV9kZXZpY2VfZG9vcmJlbGxfZmlu aShhZGV2KTsKLQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFtZGdpbV9pc19od3BlcmYo YWRldikpCi0JCWFtZGdwdV9wbV92aXJ0X3N5c2ZzX2ZpbmkoYWRldik7CiAKIAlhbWRncHVfZGVi dWdmc19yZWdzX2NsZWFudXAoYWRldik7CiAJZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwg JmRldl9hdHRyX3BjaWVfcmVwbGF5X2NvdW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kcnYuYwppbmRleCBkMWU5OTQ2YWMyMTguLmY2YTQ2NDJjZjliMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwpAQCAtMTM1LDYgKzEzNSw3IEBAIGludCBhbWRn cHVfbGJwdyA9IC0xOwogaW50IGFtZGdwdV9jb21wdXRlX211bHRpcGlwZSA9IC0xOwogaW50IGFt ZGdwdV9ncHVfcmVjb3ZlcnkgPSAtMTsgLyogYXV0byAqLwogaW50IGFtZGdwdV9lbXVfbW9kZSA9 IDA7CitpbnQgYW1kZ3B1X3BwX29uZV92ZjsKIHVpbnQgYW1kZ3B1X3NtdV9tZW1vcnlfcG9vbF9z aXplID0gMDsKIC8qIEZCQyAoYml0IDApIGRpc2FibGVkIGJ5IGRlZmF1bHQqLwogdWludCBhbWRn cHVfZGNfZmVhdHVyZV9tYXNrID0gMDsKQEAgLTE1Miw2ICsxNTMsMTIgQEAgc3RydWN0IGFtZGdw dV9tZ3B1X2luZm8gbWdwdV9pbmZvID0gewogaW50IGFtZGdwdV9yYXNfZW5hYmxlID0gLTE7CiB1 aW50IGFtZGdwdV9yYXNfbWFzayA9IDB4ZmZmZmZmZmY7CiAKKy8qKgorICogRE9DOiBwcF9vbmVf dmYgKGludCkKKyAqIEVuYWJsZSBWRiB0byBhZGp1c3QgdGhlIHBvd2VycGxheS4gVGhlIGRlZmF1 bHQgaXMgMCAoZGlzYWJsZSBpdCkuCisgKi8KK01PRFVMRV9QQVJNX0RFU0MocHBfb25lX3ZmLCAi T25lIHZmIG1vZGUgc3VwcG9ydCAoMCA9IGRpc2FibGUgKGRlZmF1bHQpLCAxID0gZW5hYmxlKSIp OworbW9kdWxlX3BhcmFtX25hbWVkKHBwX29uZV92ZiwgYW1kZ3B1X3BwX29uZV92ZiwgaW50LCAw NjAwKTsKIC8qKgogICogRE9DOiB2cmFtbGltaXQgKGludCkKICAqIFJlc3RyaWN0IHRoZSB0b3Rh bCBhbW91bnQgb2YgVlJBTSBpbiBNaUIgZm9yIHRlc3RpbmcuICBUaGUgZGVmYXVsdCBpcyAwIChV c2UgZnVsbCBWUkFNKS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwppbmRl eCA1ZWMxNDE1ZDE3NTUuLjNhMGVhOTA5NjQ5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9rbXMuYwpAQCAtNzAzLDEwICs3MDMsNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9pbmZv X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmls ZQogCQlpZiAoYWRldi0+cG0uZHBtX2VuYWJsZWQpIHsKIAkJCWRldl9pbmZvLm1heF9lbmdpbmVf Y2xvY2sgPSBhbWRncHVfZHBtX2dldF9zY2xrKGFkZXYsIGZhbHNlKSAqIDEwOwogCQkJZGV2X2lu Zm8ubWF4X21lbW9yeV9jbG9jayA9IGFtZGdwdV9kcG1fZ2V0X21jbGsoYWRldiwgZmFsc2UpICog MTA7Ci0JCX0gZWxzZSBpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFtZGdpbV9pc19od3Bl cmYoYWRldikgJiYKLQkJCSAgIGFkZXYtPnZpcnQub3BzLT5nZXRfcHBfY2xrKSB7Ci0JCQlkZXZf aW5mby5tYXhfZW5naW5lX2Nsb2NrID0gYW1kZ3B1X3ZpcnRfZ2V0X3NjbGsoYWRldiwgZmFsc2Up ICogMTA7Ci0JCQlkZXZfaW5mby5tYXhfbWVtb3J5X2Nsb2NrID0gYW1kZ3B1X3ZpcnRfZ2V0X21j bGsoYWRldiwgZmFsc2UpICogMTA7CiAJCX0gZWxzZSB7CiAJCQlkZXZfaW5mby5tYXhfZW5naW5l X2Nsb2NrID0gYWRldi0+Y2xvY2suZGVmYXVsdF9zY2xrICogMTA7CiAJCQlkZXZfaW5mby5tYXhf bWVtb3J5X2Nsb2NrID0gYWRldi0+Y2xvY2suZGVmYXVsdF9tY2xrICogMTA7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCmluZGV4IDBjNzMyNGJjMzFhNy4uYjhhNDJlYmIyZjVh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYwpAQCAtMTYwLDcgKzE2MCw4 IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfZHBtX3N0YXRlKHN0cnVjdCBkZXZpY2UgKmRl diwKIAllbnVtIGFtZF9wbV9zdGF0ZV90eXBlIHBtOwogCiAJaWYgKGlzX3N1cHBvcnRfc3dfc211 KGFkZXYpKSB7Ci0JCWlmIChhZGV2LT5zbXUucHB0X2Z1bmNzLT5nZXRfY3VycmVudF9wb3dlcl9z dGF0ZSkKKwkJaWYgKGFkZXYtPnNtdS5wcHRfZnVuY3MgJiYKKwkJICAgIGFkZXYtPnNtdS5wcHRf ZnVuY3MtPmdldF9jdXJyZW50X3Bvd2VyX3N0YXRlKQogCQkJcG0gPSBzbXVfZ2V0X2N1cnJlbnRf cG93ZXJfc3RhdGUoJmFkZXYtPnNtdSk7CiAJCWVsc2UKIAkJCXBtID0gYWRldi0+cG0uZHBtLnVz ZXJfc3RhdGU7CkBAIC0yODMsNyArMjg0LDcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2dldF9k cG1fZm9yY2VkX3BlcmZvcm1hbmNlX2xldmVsKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRlOwogCWVudW0gYW1kX2RwbV9m b3JjZWRfbGV2ZWwgbGV2ZWwgPSAweGZmOwogCi0JaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkK KwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmICFhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYp KQogCQlyZXR1cm4gMDsKIAogCWlmICgoYWRldi0+ZmxhZ3MgJiBBTURfSVNfUFgpICYmCkBAIC0z MjAsNiArMzIxLDkgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9kcG1fZm9yY2VkX3BlcmZv cm1hbmNlX2xldmVsKHN0cnVjdCBkZXZpY2UgKmRldiwKIAllbnVtIGFtZF9kcG1fZm9yY2VkX2xl dmVsIGN1cnJlbnRfbGV2ZWwgPSAweGZmOwogCWludCByZXQgPSAwOwogCisJaWYgKGFtZGdwdV9z cmlvdl92ZihhZGV2KSAmJiAhYW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKKwkJcmV0dXJuIC1F SU5WQUw7CisKIAkvKiBDYW4ndCBmb3JjZSBwZXJmb3JtYW5jZSBsZXZlbCB3aGVuIHRoZSBjYXJk IGlzIG9mZiAqLwogCWlmICAoKGFkZXYtPmZsYWdzICYgQU1EX0lTX1BYKSAmJgogCSAgICAgKGRk ZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENIX1BPV0VSX09OKSkKQEAgLTM0OCwx OSArMzUyLDYgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9kcG1fZm9yY2VkX3BlcmZvcm1h bmNlX2xldmVsKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJZ290byBmYWlsOwogCX0KIAotCS8qIGhh bmRsZSBzcmlvdiBjYXNlIGhlcmUgKi8KLQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7Ci0J CWlmIChhbWRnaW1faXNfaHdwZXJmKGFkZXYpICYmCi0JCSAgICBhZGV2LT52aXJ0Lm9wcy0+Zm9y Y2VfZHBtX2xldmVsKSB7Ci0JCQltdXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7Ci0JCQlhZGV2 LT52aXJ0Lm9wcy0+Zm9yY2VfZHBtX2xldmVsKGFkZXYsIGxldmVsKTsKLQkJCW11dGV4X3VubG9j aygmYWRldi0+cG0ubXV0ZXgpOwotCQkJcmV0dXJuIGNvdW50OwotCQl9IGVsc2UgewotCQkJcmV0 dXJuIC1FSU5WQUw7Ci0JCX0KLQl9Ci0KIAlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpCiAJ CWN1cnJlbnRfbGV2ZWwgPSBzbXVfZ2V0X3BlcmZvcm1hbmNlX2xldmVsKCZhZGV2LT5zbXUpOwog CWVsc2UgaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+Z2V0X3BlcmZvcm1hbmNlX2xldmVs KQpAQCAtNjU0LDYgKzY0NSw5IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfcHBfb2RfY2xr X3ZvbHRhZ2Uoc3RydWN0IGRldmljZSAqZGV2LAogCWNvbnN0IGNoYXIgZGVsaW1pdGVyWzNdID0g eycgJywgJ1xuJywgJ1wwJ307CiAJdWludDMyX3QgdHlwZTsKIAorCWlmIChhbWRncHVfc3Jpb3Zf dmYoYWRldikgJiYgIWFtZGdpbV9pc19wcF9vbmVfdmYoYWRldikpCisJCXJldHVybiAwOworCiAJ aWYgKGNvdW50ID4gMTI3KQogCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtODQxLDkgKzgzNSwxMCBA QCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZ2V0X3BwX2RwbV9zY2xrKHN0cnVjdCBkZXZpY2UgKmRl diwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CiAKLQlpZiAoYW1k Z3B1X3NyaW92X3ZmKGFkZXYpICYmIGFtZGdpbV9pc19od3BlcmYoYWRldikgJiYKLQkgICAgYWRl di0+dmlydC5vcHMtPmdldF9wcF9jbGspCi0JCXJldHVybiBhZGV2LT52aXJ0Lm9wcy0+Z2V0X3Bw X2NsayhhZGV2LCBQUF9TQ0xLLCBidWYpOworCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsK KwkJaWYgKCFhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJ fQogCiAJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQogCQlyZXR1cm4gc211X3ByaW50X2Ns a19sZXZlbHMoJmFkZXYtPnNtdSwgU01VX1NDTEssIGJ1Zik7CkBAIC04NzgsNyArODczLDYgQEAg c3RhdGljIHNzaXplX3QgYW1kZ3B1X3JlYWRfbWFzayhjb25zdCBjaGFyICpidWYsIHNpemVfdCBj b3VudCwgdWludDMyX3QgKm1hc2spCiAJd2hpbGUgKHRtcFswXSkgewogCQlzdWJfc3RyID0gc3Ry c2VwKCZ0bXAsIGRlbGltaXRlcik7CiAJCWlmIChzdHJsZW4oc3ViX3N0cikpIHsKLQkJCXJldCA9 IGtzdHJ0b2woc3ViX3N0ciwgMCwgJmxldmVsKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIC1F SU5WQUw7CiAJCQkqbWFzayB8PSAxIDw8IGxldmVsOwpAQCAtODk5LDggKzg5MywxMCBAQCBzdGF0 aWMgc3NpemVfdCBhbWRncHVfc2V0X3BwX2RwbV9zY2xrKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlp bnQgcmV0OwogCXVpbnQzMl90IG1hc2sgPSAwOwogCi0JaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2 KSkKLQkJcmV0dXJuIDA7CisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgeworCQlpZiAoIWFt ZGdpbV9pc19wcF9vbmVfdmYoYWRldikpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKIAlyZXQg PSBhbWRncHVfcmVhZF9tYXNrKGJ1ZiwgY291bnQsICZtYXNrKTsKIAlpZiAocmV0KQpAQCAtOTI0 LDkgKzkyMCwxMCBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZ2V0X3BwX2RwbV9tY2xrKHN0cnVj dCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRldl9nZXRfZHJ2ZGF0 YShkZXYpOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7 CiAKLQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFtZGdpbV9pc19od3BlcmYoYWRldikg JiYKLQkgICAgYWRldi0+dmlydC5vcHMtPmdldF9wcF9jbGspCi0JCXJldHVybiBhZGV2LT52aXJ0 Lm9wcy0+Z2V0X3BwX2NsayhhZGV2LCBQUF9NQ0xLLCBidWYpOworCWlmIChhbWRncHVfc3Jpb3Zf dmYoYWRldikpIHsKKwkJaWYgKCFhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYpKQorCQkJcmV0dXJu IC1FSU5WQUw7CisJfQogCiAJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQogCQlyZXR1cm4g c211X3ByaW50X2Nsa19sZXZlbHMoJmFkZXYtPnNtdSwgU01VX01DTEssIGJ1Zik7CkBAIC05NDYs OCArOTQzLDExIEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfcHBfZHBtX21jbGsoc3RydWN0 IGRldmljZSAqZGV2LAogCWludCByZXQ7CiAJdWludDMyX3QgbWFzayA9IDA7CiAKLQlpZiAoYW1k Z3B1X3NyaW92X3ZmKGFkZXYpKQotCQlyZXR1cm4gMDsKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFk ZXYpKSB7CisJCWlmICghYW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKKwkJCXJldHVybiAtRUlO VkFMOworCisJfQogCiAJcmV0ID0gYW1kZ3B1X3JlYWRfbWFzayhidWYsIGNvdW50LCAmbWFzayk7 CiAJaWYgKHJldCkKQEAgLTk3MSw2ICs5NzEsMTEgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2dl dF9wcF9kcG1fc29jY2xrKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGRldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gZGRldi0+ZGV2X3ByaXZhdGU7CiAKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CisJ CWlmICghYW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKKwkJCXJldHVybiAtRUlOVkFMOworCX0K KwogCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSkKIAkJcmV0dXJuIHNtdV9wcmludF9jbGtf bGV2ZWxzKCZhZGV2LT5zbXUsIFNNVV9TT0NDTEssIGJ1Zik7CiAJZWxzZSBpZiAoYWRldi0+cG93 ZXJwbGF5LnBwX2Z1bmNzLT5wcmludF9jbG9ja19sZXZlbHMpCkBAIC05ODksNiArOTk0LDkgQEAg c3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9wcF9kcG1fc29jY2xrKHN0cnVjdCBkZXZpY2UgKmRl diwKIAlpbnQgcmV0OwogCXVpbnQzMl90IG1hc2sgPSAwOwogCisJaWYgKGFtZGdwdV9zcmlvdl92 ZihhZGV2KSkKKwkJcmV0dXJuIDA7CisKIAlyZXQgPSBhbWRncHVfcmVhZF9tYXNrKGJ1ZiwgY291 bnQsICZtYXNrKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpAQCAtMTAyOSw2ICsxMDM3LDEx IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfcHBfZHBtX2ZjbGsoc3RydWN0IGRldmljZSAq ZGV2LAogCWludCByZXQ7CiAJdWludDMyX3QgbWFzayA9IDA7CiAKKwlpZiAoYW1kZ3B1X3NyaW92 X3ZmKGFkZXYpKSB7CisJCWlmICghYW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKKwkJCXJldHVy biAtRUlOVkFMOworCX0KKwogCXJldCA9IGFtZGdwdV9yZWFkX21hc2soYnVmLCBjb3VudCwgJm1h c2spOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0xMDUxLDYgKzEwNjQsOSBAQCBzdGF0 aWMgc3NpemVfdCBhbWRncHVfZ2V0X3BwX2RwbV9kY2VmY2xrKHN0cnVjdCBkZXZpY2UgKmRldiwK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CiAKKwlpZiAoYW1kZ3B1 X3NyaW92X3ZmKGFkZXYpKQorCQlyZXR1cm4gMDsKKwogCWlmIChpc19zdXBwb3J0X3N3X3NtdShh ZGV2KSkKIAkJcmV0dXJuIHNtdV9wcmludF9jbGtfbGV2ZWxzKCZhZGV2LT5zbXUsIFNNVV9EQ0VG Q0xLLCBidWYpOwogCWVsc2UgaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+cHJpbnRfY2xv Y2tfbGV2ZWxzKQpAQCAtMTA2OSw2ICsxMDg1LDkgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3Nl dF9wcF9kcG1fZGNlZmNsayhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJaW50IHJldDsKIAl1aW50MzJf dCBtYXNrID0gMDsKIAorCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCisJCXJldHVybiAwOwor CiAJcmV0ID0gYW1kZ3B1X3JlYWRfbWFzayhidWYsIGNvdW50LCAmbWFzayk7CiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKQEAgLTEwOTEsNiArMTExMCw5IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdw dV9nZXRfcHBfZHBtX3BjaWUoc3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKIAorCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCisJ CXJldHVybiAwOworCiAJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQogCQlyZXR1cm4gc211 X3ByaW50X2Nsa19sZXZlbHMoJmFkZXYtPnNtdSwgU01VX1BDSUUsIGJ1Zik7CiAJZWxzZSBpZiAo YWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5wcmludF9jbG9ja19sZXZlbHMpCkBAIC0xMTA5LDYg KzExMzEsOSBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X3BwX2RwbV9wY2llKHN0cnVjdCBk ZXZpY2UgKmRldiwKIAlpbnQgcmV0OwogCXVpbnQzMl90IG1hc2sgPSAwOwogCisJaWYgKGFtZGdw dV9zcmlvdl92ZihhZGV2KSkKKwkJcmV0dXJuIDA7CisKIAlyZXQgPSBhbWRncHVfcmVhZF9tYXNr KGJ1ZiwgY291bnQsICZtYXNrKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpAQCAtMTE1MCw2 ICsxMTc1LDkgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9wcF9zY2xrX29kKHN0cnVjdCBk ZXZpY2UgKmRldiwKIAlpbnQgcmV0OwogCWxvbmcgaW50IHZhbHVlOwogCisJaWYgKGFtZGdwdV9z cmlvdl92ZihhZGV2KSAmJiAhYW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKKwkJcmV0dXJuIDA7 CisKIAlyZXQgPSBrc3RydG9sKGJ1ZiwgMCwgJnZhbHVlKTsKIAogCWlmIChyZXQpIHsKQEAgLTEy MDEsNiArMTIyOSw5IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfcHBfbWNsa19vZChzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJaW50IHJldDsKIAlsb25nIGludCB2YWx1ZTsKIAorCWlmIChhbWRn cHVfc3Jpb3ZfdmYoYWRldikgJiYgIWFtZGdpbV9pc19wcF9vbmVfdmYoYWRldikpCisJCXJldHVy biAwOworCiAJcmV0ID0ga3N0cnRvbChidWYsIDAsICZ2YWx1ZSk7CiAKIAlpZiAocmV0KSB7CkBA IC0yNzMwLDQ0ICsyNzYxLDYgQEAgdm9pZCBhbWRncHVfZHBtX2VuYWJsZV9qcGVnKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCBib29sIGVuYWJsZSkKIAl9CiB9CiAKLWludCBhbWRncHVfcG1f dmlydF9zeXNmc19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQotewotCWludCByZXQg PSAwOwotCi0JaWYgKCEoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFtZGdpbV9pc19od3BlcmYo YWRldikpKQotCQlyZXR1cm4gcmV0OwotCi0JcmV0ID0gZGV2aWNlX2NyZWF0ZV9maWxlKGFkZXYt PmRldiwgJmRldl9hdHRyX3BwX2RwbV9zY2xrKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigi ZmFpbGVkIHRvIGNyZWF0ZSBkZXZpY2UgZmlsZSBwcF9kcG1fc2Nsa1xuIik7Ci0JCXJldHVybiBy ZXQ7Ci0JfQotCi0JcmV0ID0gZGV2aWNlX2NyZWF0ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRy X3BwX2RwbV9tY2xrKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGNyZWF0 ZSBkZXZpY2UgZmlsZSBwcF9kcG1fbWNsa1xuIik7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JcmV0 ID0gZGV2aWNlX2NyZWF0ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3Bvd2VyX2RwbV9mb3Jj ZV9wZXJmb3JtYW5jZV9sZXZlbCk7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoImZhaWxlZCB0 byBjcmVhdGUgZGV2aWNlIGZpbGUgZm9yIGRwbSBzdGF0ZVxuIik7Ci0JCXJldHVybiByZXQ7Ci0J fQotCi0JcmV0dXJuIHJldDsKLX0KLQotdm9pZCBhbWRncHVfcG1fdmlydF9zeXNmc19maW5pKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQotewotCWlmICghKGFtZGdwdV9zcmlvdl92ZihhZGV2 KSAmJiBhbWRnaW1faXNfaHdwZXJmKGFkZXYpKSkKLQkJcmV0dXJuOwotCi0JZGV2aWNlX3JlbW92 ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3Bvd2VyX2RwbV9mb3JjZV9wZXJmb3JtYW5jZV9s ZXZlbCk7Ci0JZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX2RwbV9z Y2xrKTsKLQlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBfZHBtX21j bGspOwotfQotCiBpbnQgYW1kZ3B1X3BtX2xvYWRfc211X2Zpcm13YXJlKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LCB1aW50MzJfdCAqc211X3ZlcnNpb24pCiB7CiAJaW50IHI7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYwppbmRleCBlMzJhZTkwNmQ3OTcuLjEwMzAz M2Y5NmYxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zp cnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jCkBAIC0z NzksNTQgKzM3OSwzIEBAIHZvaWQgYW1kZ3B1X3ZpcnRfaW5pdF9kYXRhX2V4Y2hhbmdlKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQogCQl9CiAJfQogfQotCi1zdGF0aWMgdWludDMyX3QgcGFy c2VfY2xrKGNoYXIgKmJ1ZiwgYm9vbCBtaW4pCi17Ci0gICAgICAgIGNoYXIgKnB0ciA9IGJ1ZjsK LSAgICAgICAgdWludDMyX3QgY2xrID0gMDsKLQotICAgICAgICBkbyB7Ci0gICAgICAgICAgICAg ICAgcHRyID0gc3RyY2hyKHB0ciwgJzonKTsKLSAgICAgICAgICAgICAgICBpZiAoIXB0cikKLSAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIHB0cis9MjsKLQkJ aWYgKGtzdHJ0b3UzMihwdHIsIDEwLCAmY2xrKSkKLQkJCXJldHVybiAwOwotICAgICAgICB9IHdo aWxlICghbWluKTsKLQotICAgICAgICByZXR1cm4gY2xrICogMTAwOwotfQotCi11aW50MzJfdCBh bWRncHVfdmlydF9nZXRfc2NsayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCBsb3dl c3QpCi17Ci0JY2hhciAqYnVmID0gTlVMTDsKLQl1aW50MzJfdCBjbGsgPSAwOwotCi0JYnVmID0g a3phbGxvYyhQQUdFX1NJWkUsIEdGUF9LRVJORUwpOwotCWlmICghYnVmKQotCQlyZXR1cm4gLUVO T01FTTsKLQotCWFkZXYtPnZpcnQub3BzLT5nZXRfcHBfY2xrKGFkZXYsIFBQX1NDTEssIGJ1Zik7 Ci0JY2xrID0gcGFyc2VfY2xrKGJ1ZiwgbG93ZXN0KTsKLQotCWtmcmVlKGJ1Zik7Ci0KLQlyZXR1 cm4gY2xrOwotfQotCi11aW50MzJfdCBhbWRncHVfdmlydF9nZXRfbWNsayhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgYm9vbCBsb3dlc3QpCi17Ci0JY2hhciAqYnVmID0gTlVMTDsKLQl1aW50 MzJfdCBjbGsgPSAwOwotCi0JYnVmID0ga3phbGxvYyhQQUdFX1NJWkUsIEdGUF9LRVJORUwpOwot CWlmICghYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWFkZXYtPnZpcnQub3BzLT5nZXRfcHBf Y2xrKGFkZXYsIFBQX01DTEssIGJ1Zik7Ci0JY2xrID0gcGFyc2VfY2xrKGJ1ZiwgbG93ZXN0KTsK LQotCWtmcmVlKGJ1Zik7Ci0KLQlyZXR1cm4gY2xrOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92aXJ0LmgKaW5kZXggYjBiMmJkYzc1MGRmLi42M2RiMmE2ZjAwOGQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaApAQCAtNTcsOCArNTcsNiBAQCBz dHJ1Y3QgYW1kZ3B1X3ZpcnRfb3BzIHsKIAlpbnQgKCpyZXNldF9ncHUpKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KTsKIAlpbnQgKCp3YWl0X3Jlc2V0KShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldik7CiAJdm9pZCAoKnRyYW5zX21zZykoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUz MiByZXEsIHUzMiBkYXRhMSwgdTMyIGRhdGEyLCB1MzIgZGF0YTMpOwotCWludCAoKmdldF9wcF9j bGspKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgdHlwZSwgY2hhciAqYnVmKTsKLQlp bnQgKCpmb3JjZV9kcG1fbGV2ZWwpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgbGV2 ZWwpOwogfTsKIAogLyoKQEAgLTg1LDggKzgzLDggQEAgZW51bSBBTURHSU1fRkVBVFVSRV9GTEFH IHsKIAlBTURHSU1fRkVBVFVSRV9HSU1fTE9BRF9VQ09ERVMgICA9IDB4MiwKIAkvKiBWUkFNIExP U1QgYnkgR0lNICovCiAJQU1ER0lNX0ZFQVRVUkVfR0lNX0ZMUl9WUkFNTE9TVCA9IDB4NCwKLQkv KiBIVyBQRVJGIFNJTSBpbiBHSU0gKi8KLQlBTURHSU1fRkVBVFVSRV9IV19QRVJGX1NJTVVMQVRJ T04gPSAoMSA8PCAzKSwKKwkvKiBQUCBPTkUgVkYgTU9ERSBpbiBHSU0gKi8KKwlBTURHSU1fRkVB VFVSRV9QUF9PTkVfVkYgPSAoMSA8PCA0KSwKIH07CiAKIHN0cnVjdCBhbWRfc3Jpb3ZfbXNnX3Bm MnZmX2luZm9faGVhZGVyIHsKQEAgLTI1Nyw4ICsyNTUsNiBAQCBzdHJ1Y3QgYW1kZ3B1X3ZpcnQg ewogCXN0cnVjdCBhbWRncHVfdmZfZXJyb3JfYnVmZmVyICAgdmZfZXJyb3JzOwogCXN0cnVjdCBh bWRncHVfdmlydF9md19yZXNlcnZlCWZ3X3Jlc2VydmU7CiAJdWludDMyX3QgZ2ltX2ZlYXR1cmU7 Ci0JLyogcHJvdGVjdCBEUE0gZXZlbnRzIHRvIEdJTSAqLwotCXN0cnVjdCBtdXRleCAgICAgICAg ICAgICAgICAgICAgZHBtX211dGV4OwogCXVpbnQzMl90IHJlZ19hY2Nlc3NfbW9kZTsKIH07CiAK QEAgLTI4Niw4ICsyODIsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNfdmlydHVhbF9tYWNoaW5l KHZvaWQpCiAjZW5kaWYKIH0KIAotI2RlZmluZSBhbWRnaW1faXNfaHdwZXJmKGFkZXYpIFwKLQko KGFkZXYpLT52aXJ0LmdpbV9mZWF0dXJlICYgQU1ER0lNX0ZFQVRVUkVfSFdfUEVSRl9TSU1VTEFU SU9OKQorI2RlZmluZSBhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYpIFwKKwkoKGFkZXYpLT52aXJ0 LmdpbV9mZWF0dXJlICYgQU1ER0lNX0ZFQVRVUkVfUFBfT05FX1ZGKQogCiBib29sIGFtZGdwdV92 aXJ0X21taW9fYmxvY2tlZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiB2b2lkIGFtZGdw dV92aXJ0X2luaXRfc2V0dGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CkBAIC0zMDYs NiArMzAyLDQgQEAgaW50IGFtZGdwdV92aXJ0X2Z3X3Jlc2VydmVfZ2V0X2NoZWNrc3VtKHZvaWQg Km9iaiwgdW5zaWduZWQgbG9uZyBvYmpfc2l6ZSwKIAkJCQkJdW5zaWduZWQgaW50IGtleSwKIAkJ CQkJdW5zaWduZWQgaW50IGNoa3N1bSk7CiB2b2lkIGFtZGdwdV92aXJ0X2luaXRfZGF0YV9leGNo YW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Ci11aW50MzJfdCBhbWRncHVfdmlydF9n ZXRfc2NsayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCBsb3dlc3QpOwotdWludDMy X3QgYW1kZ3B1X3ZpcnRfZ2V0X21jbGsoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wg bG93ZXN0KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv bXhncHVfYWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMKaW5kZXgg Y2M1YmY1OTVmOWIxLi40MzMwNWFmYTNkNmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L214Z3B1X2FpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhn cHVfYWkuYwpAQCAtMTU4LDgyICsxNTgsNiBAQCBzdGF0aWMgdm9pZCB4Z3B1X2FpX21haWxib3hf dHJhbnNfbXNnIChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAl4Z3B1X2FpX21haWxib3hf c2V0X3ZhbGlkKGFkZXYsIGZhbHNlKTsKIH0KIAotc3RhdGljIGludCB4Z3B1X2FpX2dldF9wcF9j bGsoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiB0eXBlLCBjaGFyICpidWYpCi17Ci0g ICAgICAgIGludCByID0gMDsKLSAgICAgICAgdTMyIHJlcSwgdmFsLCBzaXplOwotCi0gICAgICAg IGlmICghYW1kZ2ltX2lzX2h3cGVyZihhZGV2KSB8fCBidWYgPT0gTlVMTCkKLSAgICAgICAgICAg ICAgICByZXR1cm4gLUVCQURSUUM7Ci0KLSAgICAgICAgc3dpdGNoKHR5cGUpIHsKLSAgICAgICAg Y2FzZSBQUF9TQ0xLOgotICAgICAgICAgICAgICAgIHJlcSA9IElESF9JUlFfR0VUX1BQX1NDTEs7 Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFBfTUNMSzoKLSAgICAgICAg ICAgICAgICByZXEgPSBJREhfSVJRX0dFVF9QUF9NQ0xLOwotICAgICAgICAgICAgICAgIGJyZWFr OwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHJldHVybiAtRUJBRFJRQzsKLSAg ICAgICAgfQotCi0gICAgICAgIG11dGV4X2xvY2soJmFkZXYtPnZpcnQuZHBtX211dGV4KTsKLQot ICAgICAgICB4Z3B1X2FpX21haWxib3hfdHJhbnNfbXNnKGFkZXYsIHJlcSwgMCwgMCwgMCk7Ci0K LSAgICAgICAgciA9IHhncHVfYWlfcG9sbF9tc2coYWRldiwgSURIX1NVQ0NFU1MpOwotICAgICAg ICBpZiAoIXIgJiYgYWRldi0+ZndfdnJhbV91c2FnZS52YSAhPSBOVUxMKSB7Ci0gICAgICAgICAg ICAgICAgdmFsID0gUlJFRzMyX05PX0tJUSgKLSAgICAgICAgICAgICAgICAgICAgICAgIFNPQzE1 X1JFR19PRkZTRVQoTkJJTywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbW1CSUZfQlhfUEYwX01BSUxCT1hfTVNHQlVGX1JDVl9EVzEpKTsKLSAgICAgICAgICAg ICAgICBzaXplID0gc3RybmxlbigoKChjaGFyICopYWRldi0+dmlydC5md19yZXNlcnZlLnBfcGYy dmYpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsKSwgUEFHRV9TSVpFKTsK LQotICAgICAgICAgICAgICAgIGlmIChzaXplIDwgUEFHRV9TSVpFKQotICAgICAgICAgICAgICAg ICAgICAgICAgc3RyY3B5KGJ1ZiwoKGNoYXIgKilhZGV2LT52aXJ0LmZ3X3Jlc2VydmUucF9wZjJ2 ZiArIHZhbCkpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAg IHNpemUgPSAwOwotCi0gICAgICAgICAgICAgICAgciA9IHNpemU7Ci0gICAgICAgICAgICAgICAg Z290byBvdXQ7Ci0gICAgICAgIH0KLQotICAgICAgICByID0geGdwdV9haV9wb2xsX21zZyhhZGV2 LCBJREhfRkFJTCk7Ci0gICAgICAgIGlmKHIpCi0gICAgICAgICAgICAgICAgcHJfaW5mbygiJXMg RFBNIHJlcXVlc3QgZmFpbGVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlID09IFBQ X1NDTEspPyAiU0NMSyIgOiAiTUNMSyIpOwotCi1vdXQ6Ci0gICAgICAgIG11dGV4X3VubG9jaygm YWRldi0+dmlydC5kcG1fbXV0ZXgpOwotICAgICAgICByZXR1cm4gcjsKLX0KLQotc3RhdGljIGlu dCB4Z3B1X2FpX2ZvcmNlX2RwbV9sZXZlbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMy IGxldmVsKQotewotICAgICAgICBpbnQgciA9IDA7Ci0gICAgICAgIHUzMiByZXEgPSBJREhfSVJR X0ZPUkNFX0RQTV9MRVZFTDsKLQotICAgICAgICBpZiAoIWFtZGdpbV9pc19od3BlcmYoYWRldikp Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC1FQkFEUlFDOwotCi0gICAgICAgIG11dGV4X2xvY2so JmFkZXYtPnZpcnQuZHBtX211dGV4KTsKLSAgICAgICAgeGdwdV9haV9tYWlsYm94X3RyYW5zX21z ZyhhZGV2LCByZXEsIGxldmVsLCAwLCAwKTsKLQotICAgICAgICByID0geGdwdV9haV9wb2xsX21z ZyhhZGV2LCBJREhfU1VDQ0VTUyk7Ci0gICAgICAgIGlmICghcikKLSAgICAgICAgICAgICAgICBn b3RvIG91dDsKLQotICAgICAgICByID0geGdwdV9haV9wb2xsX21zZyhhZGV2LCBJREhfRkFJTCk7 Ci0gICAgICAgIGlmICghcikKLSAgICAgICAgICAgICAgICBwcl9pbmZvKCJEUE0gcmVxdWVzdCBm YWlsZWQiKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHByX2luZm8oIk1haWxib3gg aXMgYnJva2VuIik7Ci0KLW91dDoKLSAgICAgICAgbXV0ZXhfdW5sb2NrKCZhZGV2LT52aXJ0LmRw bV9tdXRleCk7Ci0gICAgICAgIHJldHVybiByOwotfQotCiBzdGF0aWMgaW50IHhncHVfYWlfc2Vu ZF9hY2Nlc3NfcmVxdWVzdHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCWVudW0g aWRoX3JlcXVlc3QgcmVxKQogewpAQCAtNDU1LDYgKzM3OSw0IEBAIGNvbnN0IHN0cnVjdCBhbWRn cHVfdmlydF9vcHMgeGdwdV9haV92aXJ0X29wcyA9IHsKIAkucmVzZXRfZ3B1ID0geGdwdV9haV9y ZXF1ZXN0X3Jlc2V0LAogCS53YWl0X3Jlc2V0ID0gTlVMTCwKIAkudHJhbnNfbXNnID0geGdwdV9h aV9tYWlsYm94X3RyYW5zX21zZywKLQkuZ2V0X3BwX2NsayA9IHhncHVfYWlfZ2V0X3BwX2NsaywK LQkuZm9yY2VfZHBtX2xldmVsID0geGdwdV9haV9mb3JjZV9kcG1fbGV2ZWwsCiB9OwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmgKaW5kZXggMDc3ZTkxYTMzZDYyLi4zN2RiZTBmMjE0 MmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuaApAQCAtMzUsMTAgKzM1LDYg QEAgZW51bSBpZGhfcmVxdWVzdCB7CiAJSURIX1JFTF9HUFVfRklOSV9BQ0NFU1MsCiAJSURIX1JF UV9HUFVfUkVTRVRfQUNDRVNTLAogCi0JSURIX0lSUV9GT1JDRV9EUE1fTEVWRUwgPSAxMCwKLQlJ REhfSVJRX0dFVF9QUF9TQ0xLLAotCUlESF9JUlFfR0VUX1BQX01DTEssCi0KIAlJREhfTE9HX1ZG X0VSUk9SICAgICAgID0gMjAwLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvc29jMTUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmMKaW5k ZXggNDg2NDlmNTVmM2JhLi42NGJmYzg2NGJjMWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3NvYzE1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29j MTUuYwpAQCAtNzc3LDcgKzc3Nyw3IEBAIGludCBzb2MxNV9zZXRfaXBfYmxvY2tzKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQogCQl9CiAJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFk ZXYsICZnZnhfdjlfMF9pcF9ibG9jayk7CiAJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFk ZXYsICZzZG1hX3Y0XzBfaXBfYmxvY2spOwotCQlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkg eworCQlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSB8fCBhbWRncHVfcHBfb25lX3ZmKSB7CiAJ CQlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpCiAJCQkJYW1kZ3B1X2RldmljZV9pcF9ibG9j a19hZGQoYWRldiwgJnNtdV92MTFfMF9pcF9ibG9jayk7CiAJCQllbHNlCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRfcG93ZXJwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9hbWRfcG93ZXJwbGF5LmMKaW5kZXggNzkzMmViMTYzYTAwLi43 NzljOWQ4YWM1MTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2Ft ZF9wb3dlcnBsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRfcG93 ZXJwbGF5LmMKQEAgLTQ4LDcgKzQ4LDkgQEAgc3RhdGljIGludCBhbWRfcG93ZXJwbGF5X2NyZWF0 ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCWh3bWdyLT5hZGV2ID0gYWRldjsKIAlo d21nci0+bm90X3ZmID0gIWFtZGdwdV9zcmlvdl92ZihhZGV2KTsKLQlod21nci0+cG1fZW4gPSAo YW1kZ3B1X2RwbSAmJiBod21nci0+bm90X3ZmKSA/IHRydWUgOiBmYWxzZTsKKwlod21nci0+cHBf b25lX3ZmID0gYW1kZ3B1X3BwX29uZV92ZjsKKwlod21nci0+cG1fZW4gPSAoYW1kZ3B1X2RwbSAm JiAoaHdtZ3ItPm5vdF92ZiB8fCBod21nci0+cHBfb25lX3ZmKSkKKwkJCT8gdHJ1ZSA6IGZhbHNl OwogCWh3bWdyLT5kZXZpY2UgPSBhbWRncHVfY2dzX2NyZWF0ZV9kZXZpY2UoYWRldik7CiAJbXV0 ZXhfaW5pdCgmaHdtZ3ItPnNtdV9sb2NrKTsKIAlod21nci0+Y2hpcF9mYW1pbHkgPSBhZGV2LT5m YW1pbHk7CkBAIC0yNzYsNiArMjc4LDkgQEAgc3RhdGljIGludCBwcF9kcG1fbG9hZF9mdyh2b2lk ICpoYW5kbGUpCiB7CiAJc3RydWN0IHBwX2h3bWdyICpod21nciA9IGhhbmRsZTsKIAorCWlmICgh aHdtZ3ItPm5vdF92ZikKKwkJcmV0dXJuIDA7CisKIAlpZiAoIWh3bWdyIHx8ICFod21nci0+c211 bWdyX2Z1bmNzIHx8ICFod21nci0+c211bWdyX2Z1bmNzLT5zdGFydF9zbXUpCiAJCXJldHVybiAt RUlOVkFMOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRn cHVfc211LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMKaW5k ZXggMzYwMDFhNGY2NWQ3Li43MTRiODM4MWQwMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2FtZGdwdV9zbXUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9hbWRncHVfc211LmMKQEAgLTE2NTMsMTEgKzE2NTMsMTMgQEAgaW50IHNtdV9hZGp1 c3RfcG93ZXJfc3RhdGVfZHluYW1pYyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAlpZiAoIXNt dS0+cG1fZW5hYmxlZCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoIXNraXBfZGlzcGxheV9z ZXR0aW5ncykgewotCQlyZXQgPSBzbXVfZGlzcGxheV9jb25maWdfY2hhbmdlZChzbXUpOwotCQlp ZiAocmV0KSB7Ci0JCQlwcl9lcnIoIkZhaWxlZCB0byBjaGFuZ2UgZGlzcGxheSBjb25maWchIik7 Ci0JCQlyZXR1cm4gcmV0OworCWlmICghYW1kZ3B1X3NyaW92X3ZmKHNtdS0+YWRldikpIHsKKwkJ aWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpIHsKKwkJCXJldCA9IHNtdV9kaXNwbGF5X2NvbmZp Z19jaGFuZ2VkKHNtdSk7CisJCQlpZiAocmV0KSB7CisJCQkJcHJfZXJyKCJGYWlsZWQgdG8gY2hh bmdlIGRpc3BsYXkgY29uZmlnISIpOworCQkJCXJldHVybiByZXQ7CisJCQl9CiAJCX0KIAl9CiAK QEAgLTE2NjcsMTEgKzE2NjksMTMgQEAgaW50IHNtdV9hZGp1c3RfcG93ZXJfc3RhdGVfZHluYW1p YyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlpZiAoIXNr aXBfZGlzcGxheV9zZXR0aW5ncykgewotCQlyZXQgPSBzbXVfbm90aWZ5X3NtY19kaXNwYWx5X2Nv bmZpZyhzbXUpOwotCQlpZiAocmV0KSB7Ci0JCQlwcl9lcnIoIkZhaWxlZCB0byBub3RpZnkgc21j IGRpc3BsYXkgY29uZmlnISIpOwotCQkJcmV0dXJuIHJldDsKKwlpZiAoYW1kZ3B1X3NyaW92X3Zm KHNtdS0+YWRldikpIHsKKwkJaWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpIHsKKwkJCXJldCA9 IHNtdV9ub3RpZnlfc21jX2Rpc3BhbHlfY29uZmlnKHNtdSk7CisJCQlpZiAocmV0KSB7CisJCQkJ cHJfZXJyKCJGYWlsZWQgdG8gbm90aWZ5IHNtYyBkaXNwbGF5IGNvbmZpZyEiKTsKKwkJCQlyZXR1 cm4gcmV0OworCQkJfQogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9od21nci9oYXJkd2FyZW1hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L2h3bWdyL2hhcmR3YXJlbWFuYWdlci5jCmluZGV4IGNjNTdmYjk1M2U2Mi4uMjUz ODYwZDMwYjIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21n ci9oYXJkd2FyZW1hbmFnZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9o d21nci9oYXJkd2FyZW1hbmFnZXIuYwpAQCAtODEsOCArODEsOCBAQCBpbnQgcGhtX2VuYWJsZV9k eW5hbWljX3N0YXRlX21hbmFnZW1lbnQoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAlhZGV2ID0g aHdtZ3ItPmFkZXY7CiAKIAkvKiBTa2lwIGZvciBzdXNwZW5kL3Jlc3VtZSBjYXNlICovCi0JaWYg KHNtdW1faXNfZHBtX3J1bm5pbmcoaHdtZ3IpICYmICFhbWRncHVfcGFzc3Rocm91Z2goYWRldikK LQkJJiYgYWRldi0+aW5fc3VzcGVuZCkgeworCWlmICghaHdtZ3ItPnBwX29uZV92ZiAmJiBzbXVt X2lzX2RwbV9ydW5uaW5nKGh3bWdyKQorCSAgICAmJiAhYW1kZ3B1X3Bhc3N0aHJvdWdoKGFkZXYp ICYmIGFkZXYtPmluX3N1c3BlbmQpIHsKIAkJcHJfaW5mbygiZHBtIGhhcyBiZWVuIGVuYWJsZWRc biIpOwogCQlyZXR1cm4gMDsKIAl9CkBAIC0yMDAsNiArMjAwLDkgQEAgaW50IHBobV9zdG9wX3Ro ZXJtYWxfY29udHJvbGxlcihzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogewogCVBITV9GVU5DX0NI RUNLKGh3bWdyKTsKIAorCWlmICghaHdtZ3ItPm5vdF92ZikKKwkJcmV0dXJuIDA7CisKIAlpZiAo aHdtZ3ItPmh3bWdyX2Z1bmMtPnN0b3BfdGhlcm1hbF9jb250cm9sbGVyID09IE5VTEwpCiAJCXJl dHVybiAtRUlOVkFMOwogCkBAIC0yMzcsNiArMjQwLDkgQEAgaW50IHBobV9zdGFydF90aGVybWFs X2NvbnRyb2xsZXIoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAkJVEVNUF9SQU5HRV9NQVh9Owog CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gaHdtZ3ItPmFkZXY7CiAKKwlpZiAoIWh3bWdy LT5ub3RfdmYpCisJCXJldHVybiAwOworCiAJaWYgKGh3bWdyLT5od21ncl9mdW5jLT5nZXRfdGhl cm1hbF90ZW1wZXJhdHVyZV9yYW5nZSkKIAkJaHdtZ3ItPmh3bWdyX2Z1bmMtPmdldF90aGVybWFs X3RlbXBlcmF0dXJlX3JhbmdlKAogCQkJCWh3bWdyLCAmcmFuZ2UpOwpAQCAtMjYzLDYgKzI2OSw4 IEBAIGludCBwaG1fc3RhcnRfdGhlcm1hbF9jb250cm9sbGVyKHN0cnVjdCBwcF9od21nciAqaHdt Z3IpCiBib29sIHBobV9jaGVja19zbWNfdXBkYXRlX3JlcXVpcmVkX2Zvcl9kaXNwbGF5X2NvbmZp Z3VyYXRpb24oc3RydWN0IHBwX2h3bWdyICpod21ncikKIHsKIAlQSE1fRlVOQ19DSEVDSyhod21n cik7CisJaWYgKGh3bWdyLT5wcF9vbmVfdmYpCisJCXJldHVybiBmYWxzZTsKIAogCWlmIChod21n ci0+aHdtZ3JfZnVuYy0+Y2hlY2tfc21jX3VwZGF0ZV9yZXF1aXJlZF9mb3JfZGlzcGxheV9jb25m aWd1cmF0aW9uID09IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKQEAgLTQ4Miw2ICs0OTAsOSBAQCBp bnQgcGhtX2Rpc2FibGVfc21jX2Zpcm13YXJlX2N0ZihzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQog ewogCVBITV9GVU5DX0NIRUNLKGh3bWdyKTsKIAorCWlmICghaHdtZ3ItPm5vdF92ZikKKwkJcmV0 dXJuIDA7CisKIAlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPmRpc2FibGVfc21jX2Zpcm13YXJlX2N0 ZiA9PSBOVUxMKQogCQlyZXR1cm4gLUVJTlZBTDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvaHdtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93 ZXJwbGF5L2h3bWdyL2h3bWdyLmMKaW5kZXggZDI5MDljOTFkNjViLi5jNjUwNWRhYTQ5OWQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdyLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvaHdtZ3IuYwpAQCAtMzY1LDYg KzM2NSw4IEBAIGludCBod21ncl9oYW5kbGVfdGFzayhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBl bnVtIGFtZF9wcF90YXNrIHRhc2tfaWQsCiAKIAlzd2l0Y2ggKHRhc2tfaWQpIHsKIAljYXNlIEFN RF9QUF9UQVNLX0RJU1BMQVlfQ09ORklHX0NIQU5HRToKKwkJaWYgKCFod21nci0+bm90X3ZmKQor CQkJcmV0dXJuIHJldDsKIAkJcmV0ID0gcGhtX3ByZV9kaXNwbGF5X2NvbmZpZ3VyYXRpb25fY2hh bmdlZChod21ncik7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwpAQCAtMzgxLDYgKzM4Myw4 IEBAIGludCBod21ncl9oYW5kbGVfdGFzayhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBlbnVtIGFt ZF9wcF90YXNrIHRhc2tfaWQsCiAJCWVudW0gUFBfU3RhdGVVSUxhYmVsIHJlcXVlc3RlZF91aV9s YWJlbDsKIAkJc3RydWN0IHBwX3Bvd2VyX3N0YXRlICpyZXF1ZXN0ZWRfcHMgPSBOVUxMOwogCisJ CWlmICghaHdtZ3ItPm5vdF92ZikKKwkJCXJldHVybiByZXQ7CiAJCWlmICh1c2VyX3N0YXRlID09 IE5VTEwpIHsKIAkJCXJldCA9IC1FSU5WQUw7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3BwX3BzbS5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvaHdtZ3IvcHBfcHNtLmMKaW5kZXggNmJmNDg5MzRmZGM0Li4zMWEzMmE3 OWNmYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3Bw X3BzbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3BwX3BzbS5j CkBAIC0yNjIsMjAgKzI2MiwyMiBAQCBpbnQgcHNtX2FkanVzdF9wb3dlcl9zdGF0ZV9keW5hbWlj KHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIGJvb2wgc2tpcF9kaXNwbGF5X3NldAogCXVpbnQzMl90 IGluZGV4OwogCWxvbmcgd29ya2xvYWQ7CiAKLQlpZiAoIXNraXBfZGlzcGxheV9zZXR0aW5ncykK LQkJcGhtX2Rpc3BsYXlfY29uZmlndXJhdGlvbl9jaGFuZ2VkKGh3bWdyKTsKLQotCWlmIChod21n ci0+cHMpCi0JCXBvd2VyX3N0YXRlX21hbmFnZW1lbnQoaHdtZ3IsIG5ld19wcyk7Ci0JZWxzZQot CQkvKgotCQkgKiBmb3IgdmVnYTEyL3ZlZ2EyMCB3aGljaCBkb2VzIG5vdCBzdXBwb3J0IHBvd2Vy IHN0YXRlIG1hbmFnZXIKLQkJICogREFMIGNsb2NrIGxpbWl0cyBzaG91bGQgYWxzbyBiZSBob25v dXJlZAotCQkgKi8KLQkJcGhtX2FwcGx5X2Nsb2NrX2FkanVzdF9ydWxlcyhod21ncik7Ci0KLQlp ZiAoIXNraXBfZGlzcGxheV9zZXR0aW5ncykKLQkJcGhtX25vdGlmeV9zbWNfZGlzcGxheV9jb25m aWdfYWZ0ZXJfcHNfYWRqdXN0bWVudChod21ncik7CisJaWYgKGh3bWdyLT5ub3RfdmYpIHsKKwkJ aWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpCisJCQlwaG1fZGlzcGxheV9jb25maWd1cmF0aW9u X2NoYW5nZWQoaHdtZ3IpOworCisJCWlmIChod21nci0+cHMpCisJCQlwb3dlcl9zdGF0ZV9tYW5h Z2VtZW50KGh3bWdyLCBuZXdfcHMpOworCQllbHNlCisJCQkvKgorCQkJICogZm9yIHZlZ2ExMi92 ZWdhMjAgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBwb3dlciBzdGF0ZSBtYW5hZ2VyCisJCQkgKiBE QUwgY2xvY2sgbGltaXRzIHNob3VsZCBhbHNvIGJlIGhvbm91cmVkCisJCQkgKi8KKwkJCXBobV9h cHBseV9jbG9ja19hZGp1c3RfcnVsZXMoaHdtZ3IpOworCisJCWlmICghc2tpcF9kaXNwbGF5X3Nl dHRpbmdzKQorCQkJcGhtX25vdGlmeV9zbWNfZGlzcGxheV9jb25maWdfYWZ0ZXJfcHNfYWRqdXN0 bWVudChod21ncik7CisJfQogCiAJaWYgKCFwaG1fZm9yY2VfZHBtX2xldmVscyhod21nciwgaHdt Z3ItPnJlcXVlc3RfZHBtX2xldmVsKSkKIAkJaHdtZ3ItPmRwbV9sZXZlbCA9IGh3bWdyLT5yZXF1 ZXN0X2RwbV9sZXZlbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5 L2h3bWdyL3ZlZ2ExMF9od21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdt Z3IvdmVnYTEwX2h3bWdyLmMKaW5kZXggYjI5ZTk5NmRmMWQ0Li40MWE5Yjg2OTkwMDEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5j CkBAIC05MTIsNiArOTEyLDkgQEAgc3RhdGljIGludCB2ZWdhMTBfaHdtZ3JfYmFja2VuZF9pbml0 KHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCiAJaHdtZ3ItPnBsYXRmb3JtX2Rlc2NyaXB0b3IuY2xv Y2tTdGVwLm1lbW9yeUNsb2NrID0gNTAwOwogCiAJZGF0YS0+dG90YWxfYWN0aXZlX2N1cyA9IGFk ZXYtPmdmeC5jdV9pbmZvLm51bWJlcjsKKwlpZiAoIWh3bWdyLT5ub3RfdmYpCisJCXJldHVybiBy ZXN1bHQ7CisKIAkvKiBTZXR1cCBkZWZhdWx0IE92ZXJkcml2ZSBGYW4gY29udHJvbCBzZXR0aW5n cyAqLwogCWRhdGEtPm9kbl9mYW5fdGFibGUudGFyZ2V0X2Zhbl9zcGVlZCA9CiAJCQlod21nci0+ dGhlcm1hbF9jb250cm9sbGVyLmFkdmFuY2VGYW5Db250cm9sUGFyYW1ldGVycy51c01heEZhblJQ TTsKQEAgLTk3OSw2ICs5ODIsOSBAQCBzdGF0aWMgaW50IHZlZ2ExMF9zZXR1cF9kcG1fbGVkX2Nv bmZpZyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogCiBzdGF0aWMgaW50IHZlZ2ExMF9zZXR1cF9h c2ljX3Rhc2soc3RydWN0IHBwX2h3bWdyICpod21ncikKIHsKKwlpZiAoIWh3bWdyLT5ub3RfdmYp CisJCXJldHVybiAwOworCiAJUFBfQVNTRVJUX1dJVEhfQ09ERSghdmVnYTEwX2luaXRfc2Nsa190 aHJlc2hvbGQoaHdtZ3IpLAogCQkJIkZhaWxlZCB0byBpbml0IHNjbGsgdGhyZXNob2xkISIsCiAJ CQlyZXR1cm4gLUVJTlZBTCk7CkBAIC0yNTAzLDYgKzI1MDksOSBAQCBzdGF0aWMgaW50IHZlZ2Ex MF9pbml0X3NtY190YWJsZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogCQkJIkZhaWxlZCB0byBz ZXR1cCBkZWZhdWx0IERQTSB0YWJsZXMhIiwKIAkJCXJldHVybiByZXN1bHQpOwogCisJaWYgKCFo d21nci0+bm90X3ZmKQorCQlyZXR1cm4gMDsKKwogCS8qIGluaXRpYWxpemUgT0ROIHRhYmxlICov CiAJaWYgKGh3bWdyLT5vZF9lbmFibGVkKSB7CiAJCWlmIChvZG5fdGFibGUtPm1heF92ZGRjKSB7 CkBAIC0yOTMyLDYxICsyOTQxLDc1IEBAIHN0YXRpYyBpbnQgdmVnYTEwX2VuYWJsZV9kcG1fdGFz a3Moc3RydWN0IHBwX2h3bWdyICpod21ncikKIAlzdHJ1Y3QgdmVnYTEwX2h3bWdyICpkYXRhID0g aHdtZ3ItPmJhY2tlbmQ7CiAJaW50IHRtcF9yZXN1bHQsIHJlc3VsdCA9IDA7CiAKLQl2ZWdhMTBf ZW5hYmxlX2Rpc2FibGVfUENDX2xpbWl0X2ZlYXR1cmUoaHdtZ3IsIHRydWUpOwotCi0Jc211bV9z ZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0ZXIoaHdtZ3IsCi0JCVBQU01DX01TR19Db25maWd1 cmVUZWxlbWV0cnksIGRhdGEtPmNvbmZpZ190ZWxlbWV0cnkpOworCWlmIChod21nci0+bm90X3Zm KSB7CisJCXZlZ2ExMF9lbmFibGVfZGlzYWJsZV9QQ0NfbGltaXRfZmVhdHVyZShod21nciwgdHJ1 ZSk7CiAKLQl0bXBfcmVzdWx0ID0gdmVnYTEwX2NvbnN0cnVjdF92b2x0YWdlX3RhYmxlcyhod21n cik7Ci0JUFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwKLQkJCSJGYWlsZWQgdG8gY29u c3RydWN0IHZvbHRhZ2UgdGFibGVzISIsCi0JCQlyZXN1bHQgPSB0bXBfcmVzdWx0KTsKKwkJc211 bV9zZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0ZXIoaHdtZ3IsCisJCQlQUFNNQ19NU0dfQ29u ZmlndXJlVGVsZW1ldHJ5LCBkYXRhLT5jb25maWdfdGVsZW1ldHJ5KTsKIAotCXRtcF9yZXN1bHQg PSB2ZWdhMTBfaW5pdF9zbWNfdGFibGUoaHdtZ3IpOwotCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRt cF9yZXN1bHQsCi0JCQkiRmFpbGVkIHRvIGluaXRpYWxpemUgU01DIHRhYmxlISIsCi0JCQlyZXN1 bHQgPSB0bXBfcmVzdWx0KTsKKwkJdG1wX3Jlc3VsdCA9IHZlZ2ExMF9jb25zdHJ1Y3Rfdm9sdGFn ZV90YWJsZXMoaHdtZ3IpOworCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBfcmVzdWx0LAorCQkJ CSAgICAiRmFpbGVkIHRvIGNvbnN0cnVjdCB2b2x0YWdlIHRhYmxlcyEiLAorCQkJCSAgICByZXN1 bHQgPSB0bXBfcmVzdWx0KTsKKwl9CiAKLQlpZiAoUFBfQ0FQKFBITV9QbGF0Zm9ybUNhcHNfVGhl cm1hbENvbnRyb2xsZXIpKSB7Ci0JCXRtcF9yZXN1bHQgPSB2ZWdhMTBfZW5hYmxlX3RoZXJtYWxf cHJvdGVjdGlvbihod21ncik7CisJaWYgKGh3bWdyLT5ub3RfdmYgfHwgaHdtZ3ItPnBwX29uZV92 ZikgeworCQl0bXBfcmVzdWx0ID0gdmVnYTEwX2luaXRfc21jX3RhYmxlKGh3bWdyKTsKIAkJUFBf QVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwKLQkJCQkiRmFpbGVkIHRvIGVuYWJsZSB0aGVy bWFsIHByb3RlY3Rpb24hIiwKLQkJCQlyZXN1bHQgPSB0bXBfcmVzdWx0KTsKKwkJCQkgICAgIkZh aWxlZCB0byBpbml0aWFsaXplIFNNQyB0YWJsZSEiLAorCQkJCSAgICByZXN1bHQgPSB0bXBfcmVz dWx0KTsKIAl9CiAKLQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV92cmhvdF9mZWF0dXJlKGh3 bWdyKTsKLQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBfcmVzdWx0LAotCQkJIkZhaWxlZCB0byBl bmFibGUgVlIgaG90IGZlYXR1cmUhIiwKLQkJCXJlc3VsdCA9IHRtcF9yZXN1bHQpOworCWlmICho d21nci0+bm90X3ZmKSB7CisJCWlmIChQUF9DQVAoUEhNX1BsYXRmb3JtQ2Fwc19UaGVybWFsQ29u dHJvbGxlcikpIHsKKwkJCXRtcF9yZXN1bHQgPSB2ZWdhMTBfZW5hYmxlX3RoZXJtYWxfcHJvdGVj dGlvbihod21ncik7CisJCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBfcmVzdWx0LAorCQkJCQkg ICAgIkZhaWxlZCB0byBlbmFibGUgdGhlcm1hbCBwcm90ZWN0aW9uISIsCisJCQkJCSAgICByZXN1 bHQgPSB0bXBfcmVzdWx0KTsKKwkJfQogCi0JdG1wX3Jlc3VsdCA9IHZlZ2ExMF9lbmFibGVfZGVl cF9zbGVlcF9tYXN0ZXJfc3dpdGNoKGh3bWdyKTsKLQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBf cmVzdWx0LAotCQkJIkZhaWxlZCB0byBlbmFibGUgZGVlcCBzbGVlcCBtYXN0ZXIgc3dpdGNoISIs Ci0JCQlyZXN1bHQgPSB0bXBfcmVzdWx0KTsKKwkJdG1wX3Jlc3VsdCA9IHZlZ2ExMF9lbmFibGVf dnJob3RfZmVhdHVyZShod21ncik7CisJCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQs CisJCQkJICAgICJGYWlsZWQgdG8gZW5hYmxlIFZSIGhvdCBmZWF0dXJlISIsCisJCQkJICAgIHJl c3VsdCA9IHRtcF9yZXN1bHQpOwogCi0JdG1wX3Jlc3VsdCA9IHZlZ2ExMF9zdGFydF9kcG0oaHdt Z3IsIFNNQ19EUE1fRkVBVFVSRVMpOwotCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQs Ci0JCQkiRmFpbGVkIHRvIHN0YXJ0IERQTSEiLCByZXN1bHQgPSB0bXBfcmVzdWx0KTsKKwkJdG1w X3Jlc3VsdCA9IHZlZ2ExMF9lbmFibGVfZGVlcF9zbGVlcF9tYXN0ZXJfc3dpdGNoKGh3bWdyKTsK KwkJUFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwKKwkJCQkgICAgIkZhaWxlZCB0byBl bmFibGUgZGVlcCBzbGVlcCBtYXN0ZXIgc3dpdGNoISIsCisJCQkJICAgIHJlc3VsdCA9IHRtcF9y ZXN1bHQpOworCX0KIAotCS8qIGVuYWJsZSBkaWR0LCBkbyBub3QgYWJvcnQgaWYgZmFpbGVkIGRp ZHQgKi8KLQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV9kaWR0X2NvbmZpZyhod21ncik7Ci0J UFBfQVNTRVJUKCF0bXBfcmVzdWx0LAotCQkJIkZhaWxlZCB0byBlbmFibGUgZGlkdCBjb25maWch Iik7CisJaWYgKGh3bWdyLT5ub3RfdmYpIHsKKwkJdG1wX3Jlc3VsdCA9IHZlZ2ExMF9zdGFydF9k cG0oaHdtZ3IsIFNNQ19EUE1fRkVBVFVSRVMpOworCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBf cmVzdWx0LAorCQkJCSAgICAiRmFpbGVkIHRvIHN0YXJ0IERQTSEiLCByZXN1bHQgPSB0bXBfcmVz dWx0KTsKKwl9CiAKLQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV9wb3dlcl9jb250YWlubWVu dChod21ncik7Ci0JUFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwKLQkJCSJGYWlsZWQg dG8gZW5hYmxlIHBvd2VyIGNvbnRhaW5tZW50ISIsCi0JCQlyZXN1bHQgPSB0bXBfcmVzdWx0KTsK KwlpZiAoaHdtZ3ItPm5vdF92ZikgeworCQkvKiBlbmFibGUgZGlkdCwgZG8gbm90IGFib3J0IGlm IGZhaWxlZCBkaWR0ICovCisJCXRtcF9yZXN1bHQgPSB2ZWdhMTBfZW5hYmxlX2RpZHRfY29uZmln KGh3bWdyKTsKKwkJUFBfQVNTRVJUKCF0bXBfcmVzdWx0LAorCQkJICAiRmFpbGVkIHRvIGVuYWJs ZSBkaWR0IGNvbmZpZyEiKTsKKwl9CiAKLQl0bXBfcmVzdWx0ID0gdmVnYTEwX3Bvd2VyX2NvbnRy b2xfc2V0X2xldmVsKGh3bWdyKTsKLQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBfcmVzdWx0LAot CQkJIkZhaWxlZCB0byBwb3dlciBjb250cm9sIHNldCBsZXZlbCEiLAotCQkJcmVzdWx0ID0gdG1w X3Jlc3VsdCk7CisJaWYgKGh3bWdyLT5ub3RfdmYpIHsKKwkJdG1wX3Jlc3VsdCA9IHZlZ2ExMF9l bmFibGVfcG93ZXJfY29udGFpbm1lbnQoaHdtZ3IpOworCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0 bXBfcmVzdWx0LAorCQkJCSAgICAiRmFpbGVkIHRvIGVuYWJsZSBwb3dlciBjb250YWlubWVudCEi LAorCQkJCSAgICByZXN1bHQgPSB0bXBfcmVzdWx0KTsKKwl9CiAKLQl0bXBfcmVzdWx0ID0gdmVn YTEwX2VuYWJsZV91bHYoaHdtZ3IpOwotCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQs Ci0JCQkiRmFpbGVkIHRvIGVuYWJsZSBVTFYhIiwKLQkJCXJlc3VsdCA9IHRtcF9yZXN1bHQpOwor CWlmIChod21nci0+bm90X3ZmKSB7CisJCXRtcF9yZXN1bHQgPSB2ZWdhMTBfcG93ZXJfY29udHJv bF9zZXRfbGV2ZWwoaHdtZ3IpOworCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBfcmVzdWx0LAor CQkJCSAgICAiRmFpbGVkIHRvIHBvd2VyIGNvbnRyb2wgc2V0IGxldmVsISIsCisJCQkJICAgIHJl c3VsdCA9IHRtcF9yZXN1bHQpOworCisJCXRtcF9yZXN1bHQgPSB2ZWdhMTBfZW5hYmxlX3Vsdiho d21ncik7CisJCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCisJCQkJICAgICJGYWls ZWQgdG8gZW5hYmxlIFVMViEiLAorCQkJCSAgICByZXN1bHQgPSB0bXBfcmVzdWx0KTsKKwl9CiAK IAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMzA4MCwxMSArMzEwMywyMiBAQCBzdGF0aWMgaW50IHZl Z2ExMF9nZXRfcHBfdGFibGVfZW50cnlfY2FsbGJhY2tfZnVuYyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3 bWdyLAogCXBlcmZvcm1hbmNlX2xldmVsLT5zb2NfY2xvY2sgPSBzb2NjbGtfZGVwX3RhYmxlLT5l bnRyaWVzCiAJCQkJW3N0YXRlX2VudHJ5LT51Y1NvY0Nsb2NrSW5kZXhIaWdoXS51bENsazsKIAlp ZiAoZ2Z4Y2xrX2RlcF90YWJsZS0+dWNSZXZJZCA9PSAwKSB7Ci0JCXBlcmZvcm1hbmNlX2xldmVs LT5nZnhfY2xvY2sgPSBnZnhjbGtfZGVwX3RhYmxlLT5lbnRyaWVzCi0JCQlbc3RhdGVfZW50cnkt PnVjR2Z4Q2xvY2tJbmRleEhpZ2hdLnVsQ2xrOworCQkvKiB1bmRlciB2ZWdhMTAgcHAgb25lIHZm IG1vZGUsIHRoZSBnZnggY2xrIGRwbSBuZWVkIGJlIGxvd2VyCisJCSAqIHRvIGxldmVsLTQgZHVl IHRvIHRoZSBsaW1pdGVkIDExMHctcG93ZXIKKwkJICovCisJCWlmIChod21nci0+cHBfb25lX3Zm ICYmIChzdGF0ZV9lbnRyeS0+dWNHZnhDbG9ja0luZGV4SGlnaCA+IDApKQorCQkJcGVyZm9ybWFu Y2VfbGV2ZWwtPmdmeF9jbG9jayA9CisJCQkJZ2Z4Y2xrX2RlcF90YWJsZS0+ZW50cmllc1s0XS51 bENsazsKKwkJZWxzZQorCQkJcGVyZm9ybWFuY2VfbGV2ZWwtPmdmeF9jbG9jayA9IGdmeGNsa19k ZXBfdGFibGUtPmVudHJpZXMKKwkJCQlbc3RhdGVfZW50cnktPnVjR2Z4Q2xvY2tJbmRleEhpZ2hd LnVsQ2xrOwogCX0gZWxzZSBpZiAoZ2Z4Y2xrX2RlcF90YWJsZS0+dWNSZXZJZCA9PSAxKSB7CiAJ CXBhdG9tX3JlY29yZF9WMiA9IChBVE9NX1ZlZ2ExMF9HRlhDTEtfRGVwZW5kZW5jeV9SZWNvcmRf VjIgKilnZnhjbGtfZGVwX3RhYmxlLT5lbnRyaWVzOwotCQlwZXJmb3JtYW5jZV9sZXZlbC0+Z2Z4 X2Nsb2NrID0gcGF0b21fcmVjb3JkX1YyW3N0YXRlX2VudHJ5LT51Y0dmeENsb2NrSW5kZXhIaWdo XS51bENsazsKKwkJaWYgKGh3bWdyLT5wcF9vbmVfdmYgJiYgKHN0YXRlX2VudHJ5LT51Y0dmeENs b2NrSW5kZXhIaWdoID4gMCkpCisJCQlwZXJmb3JtYW5jZV9sZXZlbC0+Z2Z4X2Nsb2NrID0gcGF0 b21fcmVjb3JkX1YyWzRdLnVsQ2xrOworCQllbHNlCisJCQlwZXJmb3JtYW5jZV9sZXZlbC0+Z2Z4 X2Nsb2NrID0KKwkJCQlwYXRvbV9yZWNvcmRfVjJbc3RhdGVfZW50cnktPnVjR2Z4Q2xvY2tJbmRl eEhpZ2hdLnVsQ2xrOwogCX0KIAogCXBlcmZvcm1hbmNlX2xldmVsLT5tZW1fY2xvY2sgPSBtY2xr X2RlcF90YWJsZS0+ZW50cmllcwpAQCAtMzQ5NSw2ICszNTI5LDcgQEAgc3RhdGljIGludCB2ZWdh MTBfdXBsb2FkX2RwbV9ib290dXBfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAkJCXNt dW1fc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyKGh3bWdyLAogCQkJCVBQU01DX01TR19T ZXRTb2Z0TWluR2Z4Y2xrQnlJbmRleCwKIAkJCQlkYXRhLT5zbWNfc3RhdGVfdGFibGUuZ2Z4X2Jv b3RfbGV2ZWwpOworCiAJCQlkYXRhLT5kcG1fdGFibGUuZ2Z4X3RhYmxlLmRwbV9zdGF0ZS5zb2Z0 X21pbl9sZXZlbCA9CiAJCQkJCWRhdGEtPnNtY19zdGF0ZV90YWJsZS5nZnhfYm9vdF9sZXZlbDsK IAkJfQpAQCAtMzUxOCw2ICszNTUzLDkgQEAgc3RhdGljIGludCB2ZWdhMTBfdXBsb2FkX2RwbV9i b290dXBfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAkJfQogCX0KIAorCWlmICghaHdt Z3ItPm5vdF92ZikKKwkJcmV0dXJuIDA7CisKIAlpZiAoIWRhdGEtPnJlZ2lzdHJ5X2RhdGEuc29j Y2xrX2RwbV9rZXlfZGlzYWJsZWQpIHsKIAkJaWYgKGRhdGEtPnNtY19zdGF0ZV90YWJsZS5zb2Nf Ym9vdF9sZXZlbCAhPQogCQkJCWRhdGEtPmRwbV90YWJsZS5zb2NfdGFibGUuZHBtX3N0YXRlLnNv ZnRfbWluX2xldmVsKSB7CkBAIC0zNTYwLDYgKzM1OTgsOSBAQCBzdGF0aWMgaW50IHZlZ2ExMF91 cGxvYWRfZHBtX21heF9sZXZlbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogCQl9CiAJfQogCisJ aWYgKCFod21nci0+bm90X3ZmKQorCQlyZXR1cm4gMDsKKwogCWlmICghZGF0YS0+cmVnaXN0cnlf ZGF0YS5zb2NjbGtfZHBtX2tleV9kaXNhYmxlZCkgewogCQlpZiAoZGF0YS0+c21jX3N0YXRlX3Rh YmxlLnNvY19tYXhfbGV2ZWwgIT0KIAkJCWRhdGEtPmRwbV90YWJsZS5zb2NfdGFibGUuZHBtX3N0 YXRlLnNvZnRfbWF4X2xldmVsKSB7CkBAIC00MDU0LDE1ICs0MDk1LDI1IEBAIHN0YXRpYyBpbnQg dmVnYTEwX2dldF9wcm9maWxpbmdfY2xrX21hc2soc3RydWN0IHBwX2h3bWdyICpod21nciwgZW51 bSBhbWRfZHBtX2ZvCiAJfSBlbHNlIGlmIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9Q Uk9GSUxFX01JTl9NQ0xLKSB7CiAJCSptY2xrX21hc2sgPSAwOwogCX0gZWxzZSBpZiAobGV2ZWwg PT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9QRUFLKSB7Ci0JCSpzY2xrX21hc2sgPSB0 YWJsZV9pbmZvLT52ZGRfZGVwX29uX3NjbGstPmNvdW50IC0gMTsKKwkJLyogdW5kZXIgdmVnYTEw ICBwcCBvbmUgdmYgbW9kZSwgdGhlIGdmeCBjbGsgZHBtIG5lZWQgYmUgbG93ZXIKKwkJICogdG8g bGV2ZWwtNCBkdWUgdG8gdGhlIGxpbWl0ZWQgcG93ZXIKKwkJICovCisJCWlmIChod21nci0+cHBf b25lX3ZmKQorCQkJKnNjbGtfbWFzayA9IDQ7CisJCWVsc2UKKwkJCSpzY2xrX21hc2sgPSB0YWJs ZV9pbmZvLT52ZGRfZGVwX29uX3NjbGstPmNvdW50IC0gMTsKIAkJKnNvY19tYXNrID0gdGFibGVf aW5mby0+dmRkX2RlcF9vbl9zb2NjbGstPmNvdW50IC0gMTsKIAkJKm1jbGtfbWFzayA9IHRhYmxl X2luZm8tPnZkZF9kZXBfb25fbWNsay0+Y291bnQgLSAxOwogCX0KKwogCXJldHVybiAwOwogfQog CiBzdGF0aWMgdm9pZCB2ZWdhMTBfc2V0X2Zhbl9jb250cm9sX21vZGUoc3RydWN0IHBwX2h3bWdy ICpod21nciwgdWludDMyX3QgbW9kZSkKIHsKKwlpZiAoIWh3bWdyLT5ub3RfdmYpCisJCXJldHVy bjsKKwogCXN3aXRjaCAobW9kZSkgewogCWNhc2UgQU1EX0ZBTl9DVFJMX05PTkU6CiAJCXZlZ2Ex MF9mYW5fY3RybF9zZXRfZmFuX3NwZWVkX3BlcmNlbnQoaHdtZ3IsIDEwMCk7CkBAIC00MTc2LDYg KzQyMjcsOSBAQCBzdGF0aWMgaW50IHZlZ2ExMF9kcG1fZm9yY2VfZHBtX2xldmVsKHN0cnVjdCBw cF9od21nciAqaHdtZ3IsCiAJCWJyZWFrOwogCX0KIAorCWlmICghaHdtZ3ItPm5vdF92ZikKKwkJ cmV0dXJuIHJldDsKKwogCWlmICghcmV0KSB7CiAJCWlmIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNF RF9MRVZFTF9QUk9GSUxFX1BFQUsgJiYgaHdtZ3ItPmRwbV9sZXZlbCAhPSBBTURfRFBNX0ZPUkNF RF9MRVZFTF9QUk9GSUxFX1BFQUspCiAJCQl2ZWdhMTBfc2V0X2Zhbl9jb250cm9sX21vZGUoaHdt Z3IsIEFNRF9GQU5fQ1RSTF9OT05FKTsKQEAgLTQ0ODAsNyArNDUzNCw3IEBAIHN0YXRpYyBpbnQg dmVnYTEwX3ByaW50X2Nsb2NrX2xldmVscyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCXN0cnVj dCB2ZWdhMTBfcGNpZV90YWJsZSAqcGNpZV90YWJsZSA9ICYoZGF0YS0+ZHBtX3RhYmxlLnBjaWVf dGFibGUpOwogCXN0cnVjdCB2ZWdhMTBfb2RuX2Nsb2NrX3ZvbHRhZ2VfZGVwZW5kZW5jeV90YWJs ZSAqcG9kbl92ZGRfZGVwID0gTlVMTDsKIAotCWludCBpLCBub3csIHNpemUgPSAwOworCWludCBp LCBub3csIHNpemUsIGNvdW50ID0gMDsKIAogCXN3aXRjaCAodHlwZSkgewogCWNhc2UgUFBfU0NM SzoKQEAgLTQ0OTAsNyArNDU0NCwxMiBAQCBzdGF0aWMgaW50IHZlZ2ExMF9wcmludF9jbG9ja19s ZXZlbHMoc3RydWN0IHBwX2h3bWdyICpod21nciwKIAkJc211bV9zZW5kX21zZ190b19zbWMoaHdt Z3IsIFBQU01DX01TR19HZXRDdXJyZW50R2Z4Y2xrSW5kZXgpOwogCQlub3cgPSBzbXVtX2dldF9h cmd1bWVudChod21ncik7CiAKLQkJZm9yIChpID0gMDsgaSA8IHNjbGtfdGFibGUtPmNvdW50OyBp KyspCisJCWlmIChod21nci0+cHBfb25lX3ZmICYmCisJCSAgICAoaHdtZ3ItPmRwbV9sZXZlbCA9 PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX1BFQUspKQorCQkJY291bnQgPSA1OworCQll bHNlCisJCQljb3VudCA9IHNjbGtfdGFibGUtPmNvdW50OworCQlmb3IgKGkgPSAwOyBpIDwgY291 bnQ7IGkrKykKIAkJCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXplLCAiJWQ6ICV1TWh6ICVzXG4i LAogCQkJCQlpLCBzY2xrX3RhYmxlLT5kcG1fbGV2ZWxzW2ldLnZhbHVlIC8gMTAwLAogCQkJCQko aSA9PSBub3cpID8gIioiIDogIiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9w b3dlcnBsYXkvaW5jL2h3bWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMv aHdtZ3IuaAppbmRleCBhZjk3NzY3NWZkMzMuLjJmZmI2NjZiOTdlNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmgKQEAgLTc0MSw2ICs3NDEsNyBAQCBzdHJ1Y3Qg cHBfaHdtZ3IgewogCXVpbnQzMl90IHNtdV92ZXJzaW9uOwogCWJvb2wgbm90X3ZmOwogCWJvb2wg cG1fZW47CisJYm9vbCBwcF9vbmVfdmY7CiAJc3RydWN0IG11dGV4IHNtdV9sb2NrOwogCiAJdWlu dDMyX3QgcHBfdGFibGVfdmVyc2lvbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L3NtdW1nci9zbXU5X3NtdW1nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvc211bWdyL3NtdTlfc211bWdyLmMKaW5kZXggNzQyYjNkYzFmNmNiLi5hODU3OGEyN2Nh YjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9zbXU5 X3NtdW1nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9zbXU5 X3NtdW1nci5jCkBAIC02MSwxNSArNjEsMjkgQEAgc3RhdGljIHVpbnQzMl90IHNtdTlfd2FpdF9m b3JfcmVzcG9uc2Uoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAl1aW50MzJfdCByZWc7CiAJdWlu dDMyX3QgcmV0OwogCi0JcmVnID0gU09DMTVfUkVHX09GRlNFVChNUDEsIDAsIG1tTVAxX1NNTl9D MlBNU0dfOTApOworCS8qIER1ZSB0byB0aGUgTDEgcG9saWN5IHByb2JsZW0gdW5kZXIgU1JJT1Ys IHdlIGhhdmUgdG8gdXNlCisJICogbW1NUDFfU01OX0MyUE1TR18xMDMgYXMgdGhlIGRyaXZlciBy ZXNwb25zZSByZWdpc3RlcgorCSAqLworCWlmIChod21nci0+cHBfb25lX3ZmKSB7CisJCXJlZyA9 IFNPQzE1X1JFR19PRkZTRVQoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzEwMyk7CiAKLQlyZXQg PSBwaG1fd2FpdF9mb3JfcmVnaXN0ZXJfdW5lcXVhbChod21nciwgcmVnLAotCQkJMCwgTVAxX0My UE1TR185MF9fQ09OVEVOVF9NQVNLKTsKKwkJcmV0ID0gcGhtX3dhaXRfZm9yX3JlZ2lzdGVyX3Vu ZXF1YWwoaHdtZ3IsIHJlZywKKwkJCQkwLCBNUDFfQzJQTVNHXzEwM19fQ09OVEVOVF9NQVNLKTsK IAotCWlmIChyZXQpCi0JCXByX2VycigiTm8gcmVzcG9uc2UgZnJvbSBzbXVcbiIpOworCQlpZiAo cmV0KQorCQkJcHJfZXJyKCJObyByZXNwb25zZSBmcm9tIHNtdVxuIik7CiAKLQlyZXR1cm4gUlJF RzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR185MCk7CisJCXJldHVybiBSUkVHMzJf U09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzEwMyk7CisJfSBlbHNlIHsKKwkJcmVnID0g U09DMTVfUkVHX09GRlNFVChNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfOTApOworCisJCXJldCA9 IHBobV93YWl0X2Zvcl9yZWdpc3Rlcl91bmVxdWFsKGh3bWdyLCByZWcsCisJCQkJMCwgTVAxX0My UE1TR185MF9fQ09OVEVOVF9NQVNLKTsKKworCQlpZiAocmV0KQorCQkJcHJfZXJyKCJObyByZXNw b25zZSBmcm9tIHNtdVxuIik7CisJCXJldHVybiBSUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9T TU5fQzJQTVNHXzkwKTsKKwl9CiB9CiAKIC8qCkBAIC04Myw3ICs5NywxMCBAQCBzdGF0aWMgaW50 IHNtdTlfc2VuZF9tc2dfdG9fc21jX3dpdGhvdXRfd2FpdGluZyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3 bWdyLAogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gaHdtZ3ItPmFkZXY7CiAKLQlX UkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzY2LCBtc2cpOworCWlmIChod21n ci0+cHBfb25lX3ZmKSB7CisJCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0df MTAxLCBtc2cpOworCX0gZWxzZQorCQlXUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQ TVNHXzY2LCBtc2cpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMDEsNyArMTE4LDEwIEBAIGludCBz bXU5X3NlbmRfbXNnX3RvX3NtYyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCB1aW50MTZfdCBtc2cp CiAKIAlzbXU5X3dhaXRfZm9yX3Jlc3BvbnNlKGh3bWdyKTsKIAotCVdSRUczMl9TT0MxNShNUDEs IDAsIG1tTVAxX1NNTl9DMlBNU0dfOTAsIDApOworCWlmIChod21nci0+cHBfb25lX3ZmKQorCQlX UkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzEwMywgMCk7CisJZWxzZQorCQlX UkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzkwLCAwKTsKIAogCXNtdTlfc2Vu ZF9tc2dfdG9fc21jX3dpdGhvdXRfd2FpdGluZyhod21nciwgbXNnKTsKIApAQCAtMTI3LDkgKzE0 NywxNyBAQCBpbnQgc211OV9zZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0ZXIoc3RydWN0IHBw X2h3bWdyICpod21nciwKIAogCXNtdTlfd2FpdF9mb3JfcmVzcG9uc2UoaHdtZ3IpOwogCi0JV1JF RzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR185MCwgMCk7Ci0KLQlXUkVHMzJfU09D MTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzgyLCBwYXJhbWV0ZXIpOworCS8qIER1ZSB0byB0 aGUgTDEgcG9saWN5IHByb2JsZW0gdW5kZXIgU1JJT1YsIHdlIGhhdmUgdG8gdXNlCisJICogbW1N UDFfU01OX0MyUE1TR18xMDEgYXMgdGhlIGRyaXZlciBtZXNzYWdlIHJlZ2lzdGVyIGFuZAorCSAq IG1tTVAxX1NNTl9DMlBNU0dfMTAyIGFzIHRoZSBkcml2ZXIgcGFyYW1ldGVyIHJlZ2lzdGVyLgor CSAqLworCWlmIChod21nci0+cHBfb25lX3ZmKSB7CisJCVdSRUczMl9TT0MxNShNUDEsIDAsIG1t TVAxX1NNTl9DMlBNU0dfMTAzLCAwKTsKKwkJV1JFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01O X0MyUE1TR18xMDIsIHBhcmFtZXRlcik7CisJfSBlbHNlIHsKKwkJV1JFRzMyX1NPQzE1KE1QMSwg MCwgbW1NUDFfU01OX0MyUE1TR185MCwgMCk7CisJCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAx X1NNTl9DMlBNU0dfODIsIHBhcmFtZXRlcik7CisJfQogCiAJc211OV9zZW5kX21zZ190b19zbWNf d2l0aG91dF93YWl0aW5nKGh3bWdyLCBtc2cpOwogCkBAIC0xNDQsNSArMTcyLDggQEAgdWludDMy X3Qgc211OV9nZXRfYXJndW1lbnQoc3RydWN0IHBwX2h3bWdyICpod21ncikKIHsKIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IGh3bWdyLT5hZGV2OwogCi0JcmV0dXJuIFJSRUczMl9TT0Mx NShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfODIpOworCWlmIChod21nci0+cHBfb25lX3ZmKQor CQlyZXR1cm4gUlJFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR18xMDIpOworCWVs c2UKKwkJcmV0dXJuIFJSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfODIpOwog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2Ex MF9zbXVtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci92ZWdhMTBf c211bWdyLmMKaW5kZXggMGYzODM2ZmQ5NjY2Li5iZWEzMzdhNmM1YjcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci92ZWdhMTBfc211bWdyLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2ExMF9zbXVtZ3IuYwpAQCAt NzEsNiArNzEsMTIgQEAgc3RhdGljIGludCB2ZWdhMTBfY29weV90YWJsZV90b19zbWMoc3RydWN0 IHBwX2h3bWdyICpod21nciwKIHsKIAlzdHJ1Y3QgdmVnYTEwX3NtdW1nciAqcHJpdiA9IGh3bWdy LT5zbXVfYmFja2VuZDsKIAorCS8qIHVuZGVyIHBwX29uZV92ZiBtb2RlLCB2YmlvcyBvciBoeXBl cnZpc29yIGRyaXZlcgorCSAqIGhhcyBhbHJlYWR5IGNvcHkgdGFibGUgdG8gc21jIHNvIGhlcmUg b25seSBza2lwIGl0CisJICovCisJaWYgKCFod21nci0+bm90X3ZmICYmICFod21nci0+cHBfb25l X3ZmKQorCQlyZXR1cm4gMDsKKwogCVBQX0FTU0VSVF9XSVRIX0NPREUodGFibGVfaWQgPCBNQVhf U01VX1RBQkxFLAogCQkJIkludmFsaWQgU01VIFRhYmxlIElEISIsIHJldHVybiAtRUlOVkFMKTsK IAlQUF9BU1NFUlRfV0lUSF9DT0RFKHByaXYtPnNtdV90YWJsZXMuZW50cnlbdGFibGVfaWRdLnZl cnNpb24gIT0gMCwKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9h bWQtZ2Z4