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 5FE70C43603 for ; Mon, 9 Dec 2019 17:21:54 +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 354E82073D for ; Mon, 9 Dec 2019 17:21:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 354E82073D 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 DB90F6E4F8; Mon, 9 Dec 2019 17:21:53 +0000 (UTC) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2047.outbound.protection.outlook.com [40.107.237.47]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7FF3C6E4F8 for ; Mon, 9 Dec 2019 17:21:52 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YY8C/Q+apxR8i4nEaeP3I0QGQRYjDsgioU1PogZc1CMsDW88ljY6dFVTblB8O4aygf/i9nUO5re4IGNZmU/XJNE8tS17WC+TI9vsN2NrkZEXY53OqTYXIjxhgXET54DPoupWXIr/jyRxOmz+iYmMRviLa2gJmPIl1WDvJdSdiBatOL7QrJBtrWScgClCwyTkloI2dPBc1ISKF6pUwhb64OQKYSkxQUSVDAp97izOHP3GiF0UttVcIDVy9kxWKKMZ6E+75g8uxWXdmj2J1oRsBynBgSKzUcuVG/rWOWqLL7GVv530ZV3QOBfnSV/GZYkCgQgNfMcVCr0xwmXFDe0b6g== 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=0byVFSxggTeV7XGbE6A03bDAWw2RkTz1pgckRj6w2pE=; b=UHe7KBS254L+4y/sV29s3BKiAaHvStaEhnJJH6zMW7dQL48FvhSQYs7aAax/7VqrnVfTzQvBOpLlqRIBIEP6MNGh0hMMEf6qqjThS3+ghjezK2D9TIOleBCU9d384l7+3D5D6ma62ZV7mo8rjR3Beio5bPRy0kclyUtmiusYJCub98yDSkaiY+AU+lGWkwkLU8sN9JK0VF3WRLJhZ3b/YMkg1lWzSviNjcWod0KQIgpD8W1mordyDVRKhVKyku7UzRXa9mfj/uSjp8s5FEhJhQyT2S6+7NP7RSHs0BfFPm/i8sTWhG2tQJbBBqI9sOIHLtZ48iPBrSOuVFi3tGKu1g== 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 DM3PR12CA0075.namprd12.prod.outlook.com (2603:10b6:0:57::19) by MN2PR12MB4062.namprd12.prod.outlook.com (2603:10b6:208:1d0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2516.17; Mon, 9 Dec 2019 17:21:50 +0000 Received: from BN8NAM11FT056.eop-nam11.prod.protection.outlook.com (2a01:111:f400:7eae::205) by DM3PR12CA0075.outlook.office365.com (2603:10b6:0:57::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2516.12 via Frontend Transport; Mon, 9 Dec 2019 17:21:50 +0000 Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Received: from SATLEXMB02.amd.com (165.204.84.17) by BN8NAM11FT056.mail.protection.outlook.com (10.13.177.26) 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 17:21:50 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB02.amd.com (10.181.40.143) 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 11:21:49 -0600 Received: from SATLEXMB02.amd.com (10.181.40.143) 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 11:21:49 -0600 Received: from yttao-code-machine.amd.com (10.180.168.240) by SATLEXMB02.amd.com (10.181.40.143) with Microsoft SMTP Server id 15.1.1713.5 via Frontend Transport; Mon, 9 Dec 2019 11:21:47 -0600 From: Yintian Tao To: , Subject: [PATCH] drm/amd/powerplay: enable pp one vf mode for vega10 Date: Tue, 10 Dec 2019 01:21:36 +0800 Message-ID: <20191209172136.26694-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)(39860400002)(376002)(346002)(136003)(396003)(428003)(189003)(199004)(8936002)(81166006)(30864003)(36756003)(2906002)(8676002)(81156014)(305945005)(478600001)(110136005)(54906003)(70586007)(186003)(2616005)(7696005)(316002)(6666004)(426003)(26005)(6636002)(336012)(1076003)(4326008)(356004)(70206006)(5660300002)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR12MB4062; H:SATLEXMB02.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoDomainNonexistent; MX:1; A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 09876220-5cc0-45cb-0579-08d77ccc46e2 X-MS-TrafficTypeDiagnostic: MN2PR12MB4062: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:913; X-Forefront-PRVS: 02462830BE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XOdLpBTaF73Gihqfc4xYA0aP4Ekh81dLPB67QKPr7A7HaNe1kWJMqX2Z+WUKSmCpbI8NAcsjtWkdC031sOv5Q6gaHJr0N987NcAxTc/Vtof//W0a53rk8ye/NoPQhr0HnE+a80oVVM7IuSOIa5ZNb0HEPtHTWI7rQ/u83SrBa70qj6amarxLf1CEKyurGteRL+lFGpoMGwf4SnvrjOma83/NpoO15/ljOo+McqxjdOiBTmXHL8H1PQE2b6vtQXLWmRRyQwxPtvulTqudVu7N+zyEUZC7Z9chW2We6sYBsOH6vBHYW+QoIJRajWASr0BB5wTHfN8bEANAhWef5BWph6gEgUBGMm0K/XggzqUTJF0dcESordoeiEeVRca+4Zk5ZBZi1U4gv4K3JBt6hzkiGxpz72smV39YwJkfWo5rMcHl90rNah7wrMvsJcUVr4fr X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2019 17:21:50.0164 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 09876220-5cc0-45cb-0579-08d77ccc46e2 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=[SATLEXMB02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4062 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=0byVFSxggTeV7XGbE6A03bDAWw2RkTz1pgckRj6w2pE=; b=XGIWgR35GMu/xB7xVt/2oRNQYcDseD96xe+7/gvbUKtyxhX4/MaxHqUxm3GM0Zw7k5nCYU2AormKcxvHQsUAHH7AJ9Fkv1BHgFie6zknYyISBZ+hhpflKUefIhg1UVILWe1k8K1ZJ65DR+tiZxvu3TPSSbvZMav6vkW1VSMTbwc= 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 Cm1tTVAxX1NNTl9DMlBNU0dfMTAzOiByZWdpc3RlciB0byBoYW5kbGUgU01VIHJlc3BvbnNlCgp2 MjogcmVtb3ZlIG1vZHVsZSBwYXJhbWV0ZXIgcHBfb25lX3ZmCnYzOiBzZXBhcnRlIG9uZSBmaXgg aW50byBhbm90aGVyIHBhdGNoIGFuZCBmaXggdGhlIHBhcmVucwoKU2lnbmVkLW9mZi1ieTogWWlu dGlhbiBUYW8gPHl0dGFvQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2RldmljZS5jICAgIHwgIDEzICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfa21zLmMgICAgICAgfCAgIDQgLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3BtLmMgICAgICAgIHwgMTE4ICsrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92aXJ0LmMgICAgICB8ICA1MSAtLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmggICAgICB8ICAxNCArLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvbXhncHVfYWkuYyAgICAgICAgIHwgIDc4IC0tLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuaCAgICAgICAgIHwgICA0IC0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3NvYzE1LmMgICAgICAgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvYW1kX3Bvd2VycGxheS5jIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMgICAgfCAgMjQgKy0tCiAuLi4vZHJtL2FtZC9wb3dl cnBsYXkvaHdtZ3IvaGFyZHdhcmVtYW5hZ2VyLmMgfCAgMTUgKy0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdyLmMgICB8ICAgNyArCiBkcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9od21nci9wcF9wc20uYyAgfCAgMzAgKystLQogLi4uL2RybS9hbWQvcG93ZXJw bGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jICAgIHwgMTU3ICsrKysrKysrKysrKy0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmggICAgIHwgICAxICsKIC4uLi9k cm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Ivc211OV9zbXVtZ3IuYyAgICB8ICA1NiArKysrKy0tCiAu Li4vZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2ExMF9zbXVtZ3IuYyAgfCAgIDYgKwogMTcg ZmlsZXMgY2hhbmdlZCwgMjc5IGluc2VydGlvbnMoKyksIDMxMSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKaW5kZXggYjljYTdlNzI4ZDNl Li4zMGViNDI1OTNhMjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2 aWNlLmMKQEAgLTE4ODAsNiArMTg4MCw5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9pcF9p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQl9CiAJfQogCisJaWYgKGFtZGdwdV9z cmlvdl92ZihhZGV2KSkKKwkJYW1kZ3B1X3ZpcnRfaW5pdF9kYXRhX2V4Y2hhbmdlKGFkZXYpOwor CiAJciA9IGFtZGdwdV9pYl9wb29sX2luaXQoYWRldik7CiAJaWYgKHIpIHsKIAkJZGV2X2Vycihh ZGV2LT5kZXYsICJJQiBpbml0aWFsaXphdGlvbiBmYWlsZWQgKCVkKS5cbiIsIHIpOwpAQCAtMTky Miw4ICsxOTI1LDYgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX2lwX2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiAKIGluaXRfZmFpbGVkOgogCWlmIChhbWRncHVfc3Jpb3ZfdmYo YWRldikpIHsKLQkJaWYgKCFyKQotCQkJYW1kZ3B1X3ZpcnRfaW5pdF9kYXRhX2V4Y2hhbmdlKGFk ZXYpOwogCQlhbWRncHVfdmlydF9yZWxlYXNlX2Z1bGxfZ3B1KGFkZXYsIHRydWUpOwogCX0KIApA QCAtMjgxOSw3ICsyODIwLDYgQEAgaW50IGFtZGdwdV9kZXZpY2VfaW5pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwKIAltdXRleF9pbml0KCZhZGV2LT52aXJ0LnZmX2Vycm9ycy5sb2NrKTsK IAloYXNoX2luaXQoYWRldi0+bW5faGFzaCk7CiAJbXV0ZXhfaW5pdCgmYWRldi0+bG9ja19yZXNl dCk7Ci0JbXV0ZXhfaW5pdCgmYWRldi0+dmlydC5kcG1fbXV0ZXgpOwogCW11dGV4X2luaXQoJmFk ZXYtPnBzcC5tdXRleCk7CiAKIAlyID0gYW1kZ3B1X2RldmljZV9jaGVja19hcmd1bWVudHMoYWRl dik7CkBAIC0zMDQwLDkgKzMwNDAsNiBAQCBpbnQgYW1kZ3B1X2RldmljZV9pbml0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAogCiAJYW1kZ3B1X2ZiZGV2X2luaXQoYWRldik7CiAKLQlpZiAo YW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFtZGdpbV9pc19od3BlcmYoYWRldikpCi0JCWFtZGdw dV9wbV92aXJ0X3N5c2ZzX2luaXQoYWRldik7Ci0KIAlyID0gYW1kZ3B1X3BtX3N5c2ZzX2luaXQo YWRldik7CiAJaWYgKHIpIHsKIAkJYWRldi0+cG1fc3lzZnNfZW4gPSBmYWxzZTsKQEAgLTMxODcs OCArMzE4NCw2IEBAIHZvaWQgYW1kZ3B1X2RldmljZV9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCWlvdW5tYXAoYWRldi0+cm1taW8pOwogCWFkZXYtPnJtbWlvID0gTlVMTDsKIAlh bWRncHVfZGV2aWNlX2Rvb3JiZWxsX2ZpbmkoYWRldik7Ci0JaWYgKGFtZGdwdV9zcmlvdl92Zihh ZGV2KSAmJiBhbWRnaW1faXNfaHdwZXJmKGFkZXYpKQotCQlhbWRncHVfcG1fdmlydF9zeXNmc19m aW5pKGFkZXYpOwogCiAJYW1kZ3B1X2RlYnVnZnNfcmVnc19jbGVhbnVwKGFkZXYpOwogCWRldmlj ZV9yZW1vdmVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wY2llX3JlcGxheV9jb3VudCk7CkBA IC0zNjY5LDYgKzM2NjQsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfcmVzZXRfc3Jpb3Yo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJaWYgKHIpCiAJCWdvdG8gZXJyb3I7CiAKKwlh bWRncHVfdmlydF9pbml0X2RhdGFfZXhjaGFuZ2UoYWRldik7CiAJLyogd2UgbmVlZCByZWNvdmVy IGdhcnQgcHJpb3IgdG8gcnVuIFNNQy9DUC9TRE1BIHJlc3VtZSAqLwogCWFtZGdwdV9ndHRfbWdy X3JlY292ZXIoJmFkZXYtPm1tYW4uYmRldi5tYW5bVFRNX1BMX1RUXSk7CiAKQEAgLTM2ODYsNyAr MzY4Miw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9yZXNldF9zcmlvdihzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKIAlhbWRncHVfYW1ka2ZkX3Bvc3RfcmVzZXQoYWRldik7CiAKIGVy cm9yOgotCWFtZGdwdV92aXJ0X2luaXRfZGF0YV9leGNoYW5nZShhZGV2KTsKIAlhbWRncHVfdmly dF9yZWxlYXNlX2Z1bGxfZ3B1KGFkZXYsIHRydWUpOwogCWlmICghciAmJiBhZGV2LT52aXJ0Lmdp bV9mZWF0dXJlICYgQU1ER0lNX0ZFQVRVUkVfR0lNX0ZMUl9WUkFNTE9TVCkgewogCQlhbWRncHVf aW5jX3ZyYW1fbG9zdChhZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMu YwppbmRleCA1ZWMxNDE1ZDE3NTUuLjNhMGVhOTA5NjQ5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9rbXMuYwpAQCAtNzAzLDEwICs3MDMsNiBAQCBzdGF0aWMgaW50IGFtZGdw dV9pbmZvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBk cm1fZmlsZQogCQlpZiAoYWRldi0+cG0uZHBtX2VuYWJsZWQpIHsKIAkJCWRldl9pbmZvLm1heF9l bmdpbmVfY2xvY2sgPSBhbWRncHVfZHBtX2dldF9zY2xrKGFkZXYsIGZhbHNlKSAqIDEwOwogCQkJ ZGV2X2luZm8ubWF4X21lbW9yeV9jbG9jayA9IGFtZGdwdV9kcG1fZ2V0X21jbGsoYWRldiwgZmFs c2UpICogMTA7Ci0JCX0gZWxzZSBpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFtZGdpbV9p c19od3BlcmYoYWRldikgJiYKLQkJCSAgIGFkZXYtPnZpcnQub3BzLT5nZXRfcHBfY2xrKSB7Ci0J CQlkZXZfaW5mby5tYXhfZW5naW5lX2Nsb2NrID0gYW1kZ3B1X3ZpcnRfZ2V0X3NjbGsoYWRldiwg ZmFsc2UpICogMTA7Ci0JCQlkZXZfaW5mby5tYXhfbWVtb3J5X2Nsb2NrID0gYW1kZ3B1X3ZpcnRf Z2V0X21jbGsoYWRldiwgZmFsc2UpICogMTA7CiAJCX0gZWxzZSB7CiAJCQlkZXZfaW5mby5tYXhf ZW5naW5lX2Nsb2NrID0gYWRldi0+Y2xvY2suZGVmYXVsdF9zY2xrICogMTA7CiAJCQlkZXZfaW5m by5tYXhfbWVtb3J5X2Nsb2NrID0gYWRldi0+Y2xvY2suZGVmYXVsdF9tY2xrICogMTA7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCmluZGV4IDBjNzMyNGJjMzFhNy4uYTIxZWUw MzVjYTU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYwpAQCAtMjgzLDcg KzI4Myw3IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfZHBtX2ZvcmNlZF9wZXJmb3JtYW5j ZV9sZXZlbChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSBkZGV2LT5kZXZfcHJpdmF0ZTsKIAllbnVtIGFtZF9kcG1fZm9yY2VkX2xldmVsIGxldmVsID0g MHhmZjsKIAotCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCisJaWYgKGFtZGdwdV9zcmlvdl92 ZihhZGV2KSAmJiAhYW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKIAkJcmV0dXJuIDA7CiAKIAlp ZiAoKGFkZXYtPmZsYWdzICYgQU1EX0lTX1BYKSAmJgpAQCAtMzIwLDYgKzMyMCw5IEBAIHN0YXRp YyBzc2l6ZV90IGFtZGdwdV9zZXRfZHBtX2ZvcmNlZF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3Qg ZGV2aWNlICpkZXYsCiAJZW51bSBhbWRfZHBtX2ZvcmNlZF9sZXZlbCBjdXJyZW50X2xldmVsID0g MHhmZjsKIAlpbnQgcmV0ID0gMDsKIAorCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYgIWFt ZGdpbV9pc19wcF9vbmVfdmYoYWRldikpCisJCXJldHVybiAtRUlOVkFMOworCiAJLyogQ2FuJ3Qg Zm9yY2UgcGVyZm9ybWFuY2UgbGV2ZWwgd2hlbiB0aGUgY2FyZCBpcyBvZmYgKi8KIAlpZiAgKChh ZGV2LT5mbGFncyAmIEFNRF9JU19QWCkgJiYKIAkgICAgIChkZGV2LT5zd2l0Y2hfcG93ZXJfc3Rh dGUgIT0gRFJNX1NXSVRDSF9QT1dFUl9PTikpCkBAIC0zNDgsMTkgKzM1MSw2IEBAIHN0YXRpYyBz c2l6ZV90IGFtZGdwdV9zZXRfZHBtX2ZvcmNlZF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3QgZGV2 aWNlICpkZXYsCiAJCWdvdG8gZmFpbDsKIAl9CiAKLQkvKiBoYW5kbGUgc3Jpb3YgY2FzZSBoZXJl ICovCi0JaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewotCQlpZiAoYW1kZ2ltX2lzX2h3cGVy ZihhZGV2KSAmJgotCQkgICAgYWRldi0+dmlydC5vcHMtPmZvcmNlX2RwbV9sZXZlbCkgewotCQkJ bXV0ZXhfbG9jaygmYWRldi0+cG0ubXV0ZXgpOwotCQkJYWRldi0+dmlydC5vcHMtPmZvcmNlX2Rw bV9sZXZlbChhZGV2LCBsZXZlbCk7Ci0JCQltdXRleF91bmxvY2soJmFkZXYtPnBtLm11dGV4KTsK LQkJCXJldHVybiBjb3VudDsKLQkJfSBlbHNlIHsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0J fQotCiAJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQogCQljdXJyZW50X2xldmVsID0gc211 X2dldF9wZXJmb3JtYW5jZV9sZXZlbCgmYWRldi0+c211KTsKIAllbHNlIGlmIChhZGV2LT5wb3dl cnBsYXkucHBfZnVuY3MtPmdldF9wZXJmb3JtYW5jZV9sZXZlbCkKQEAgLTY1NCw2ICs2NDQsOSBA QCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X3BwX29kX2Nsa192b2x0YWdlKHN0cnVjdCBkZXZp Y2UgKmRldiwKIAljb25zdCBjaGFyIGRlbGltaXRlclszXSA9IHsnICcsICdcbicsICdcMCd9Owog CXVpbnQzMl90IHR5cGU7CiAKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmICFhbWRnaW1f aXNfcHBfb25lX3ZmKGFkZXYpKQorCQlyZXR1cm4gMDsKKwogCWlmIChjb3VudCA+IDEyNykKIAkJ cmV0dXJuIC1FSU5WQUw7CiAKQEAgLTg0MSw5ICs4MzQsMTAgQEAgc3RhdGljIHNzaXplX3QgYW1k Z3B1X2dldF9wcF9kcG1fc2NsayhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9kZXZp Y2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IGRkZXYtPmRldl9wcml2YXRlOwogCi0JaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSAm JiBhbWRnaW1faXNfaHdwZXJmKGFkZXYpICYmCi0JICAgIGFkZXYtPnZpcnQub3BzLT5nZXRfcHBf Y2xrKQotCQlyZXR1cm4gYWRldi0+dmlydC5vcHMtPmdldF9wcF9jbGsoYWRldiwgUFBfU0NMSywg YnVmKTsKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CisJCWlmICghYW1kZ2ltX2lzX3Bw X29uZV92ZihhZGV2KSkKKwkJCXJldHVybiAtRUlOVkFMOworCX0KIAogCWlmIChpc19zdXBwb3J0 X3N3X3NtdShhZGV2KSkKIAkJcmV0dXJuIHNtdV9wcmludF9jbGtfbGV2ZWxzKCZhZGV2LT5zbXUs IFNNVV9TQ0xLLCBidWYpOwpAQCAtODc4LDcgKzg3Miw2IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdw dV9yZWFkX21hc2soY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQsIHVpbnQzMl90ICptYXNr KQogCXdoaWxlICh0bXBbMF0pIHsKIAkJc3ViX3N0ciA9IHN0cnNlcCgmdG1wLCBkZWxpbWl0ZXIp OwogCQlpZiAoc3RybGVuKHN1Yl9zdHIpKSB7Ci0JCQlyZXQgPSBrc3RydG9sKHN1Yl9zdHIsIDAs ICZsZXZlbCk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJKm1hc2sgfD0g MSA8PCBsZXZlbDsKQEAgLTg5OSw4ICs4OTIsMTAgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3Nl dF9wcF9kcG1fc2NsayhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJaW50IHJldDsKIAl1aW50MzJfdCBt YXNrID0gMDsKIAotCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCi0JCXJldHVybiAwOworCWlm IChhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsKKwkJaWYgKCFhbWRnaW1faXNfcHBfb25lX3ZmKGFk ZXYpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfQogCiAJcmV0ID0gYW1kZ3B1X3JlYWRfbWFzayhi dWYsIGNvdW50LCAmbWFzayk7CiAJaWYgKHJldCkKQEAgLTkyNCw5ICs5MTksMTAgQEAgc3RhdGlj IHNzaXplX3QgYW1kZ3B1X2dldF9wcF9kcG1fbWNsayhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRlOwogCi0JaWYgKGFtZGdwdV9zcmlv dl92ZihhZGV2KSAmJiBhbWRnaW1faXNfaHdwZXJmKGFkZXYpICYmCi0JICAgIGFkZXYtPnZpcnQu b3BzLT5nZXRfcHBfY2xrKQotCQlyZXR1cm4gYWRldi0+dmlydC5vcHMtPmdldF9wcF9jbGsoYWRl diwgUFBfTUNMSywgYnVmKTsKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CisJCWlmICgh YW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKKwkJCXJldHVybiAtRUlOVkFMOworCX0KIAogCWlm IChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSkKIAkJcmV0dXJuIHNtdV9wcmludF9jbGtfbGV2ZWxz KCZhZGV2LT5zbXUsIFNNVV9NQ0xLLCBidWYpOwpAQCAtOTQ2LDggKzk0MiwxMSBAQCBzdGF0aWMg c3NpemVfdCBhbWRncHVfc2V0X3BwX2RwbV9tY2xrKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlpbnQg cmV0OwogCXVpbnQzMl90IG1hc2sgPSAwOwogCi0JaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkK LQkJcmV0dXJuIDA7CisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgeworCQlpZiAoIWFtZGdp bV9pc19wcF9vbmVfdmYoYWRldikpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCX0KIAogCXJldCA9 IGFtZGdwdV9yZWFkX21hc2soYnVmLCBjb3VudCwgJm1hc2spOwogCWlmIChyZXQpCkBAIC05NzEs NiArOTcwLDExIEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfcHBfZHBtX3NvY2NsayhzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRl OwogCisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgeworCQlpZiAoIWFtZGdpbV9pc19wcF9v bmVfdmYoYWRldikpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlpZiAoaXNfc3VwcG9ydF9z d19zbXUoYWRldikpCiAJCXJldHVybiBzbXVfcHJpbnRfY2xrX2xldmVscygmYWRldi0+c211LCBT TVVfU09DQ0xLLCBidWYpOwogCWVsc2UgaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+cHJp bnRfY2xvY2tfbGV2ZWxzKQpAQCAtOTg5LDYgKzk5Myw5IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdw dV9zZXRfcHBfZHBtX3NvY2NsayhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJaW50IHJldDsKIAl1aW50 MzJfdCBtYXNrID0gMDsKIAorCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCisJCXJldHVybiAw OworCiAJcmV0ID0gYW1kZ3B1X3JlYWRfbWFzayhidWYsIGNvdW50LCAmbWFzayk7CiAJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKQEAgLTEwMjksNiArMTAzNiwxMSBAQCBzdGF0aWMgc3NpemVfdCBh bWRncHVfc2V0X3BwX2RwbV9mY2xrKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlpbnQgcmV0OwogCXVp bnQzMl90IG1hc2sgPSAwOwogCisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgeworCQlpZiAo IWFtZGdpbV9pc19wcF9vbmVfdmYoYWRldikpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAly ZXQgPSBhbWRncHVfcmVhZF9tYXNrKGJ1ZiwgY291bnQsICZtYXNrKTsKIAlpZiAocmV0KQogCQly ZXR1cm4gcmV0OwpAQCAtMTA1MSw2ICsxMDYzLDkgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2dl dF9wcF9kcG1fZGNlZmNsayhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9kZXZpY2Ug KmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IGRkZXYtPmRldl9wcml2YXRlOwogCisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkKKwkJ cmV0dXJuIDA7CisKIAlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpCiAJCXJldHVybiBzbXVf cHJpbnRfY2xrX2xldmVscygmYWRldi0+c211LCBTTVVfRENFRkNMSywgYnVmKTsKIAllbHNlIGlm IChhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnByaW50X2Nsb2NrX2xldmVscykKQEAgLTEwNjks NiArMTA4NCw5IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfcHBfZHBtX2RjZWZjbGsoc3Ry dWN0IGRldmljZSAqZGV2LAogCWludCByZXQ7CiAJdWludDMyX3QgbWFzayA9IDA7CiAKKwlpZiAo YW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQorCQlyZXR1cm4gMDsKKwogCXJldCA9IGFtZGdwdV9yZWFk X21hc2soYnVmLCBjb3VudCwgJm1hc2spOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0x MDkxLDYgKzExMDksOSBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZ2V0X3BwX2RwbV9wY2llKHN0 cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGRldi0+ZGV2X3ByaXZh dGU7CiAKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQorCQlyZXR1cm4gMDsKKwogCWlmIChp c19zdXBwb3J0X3N3X3NtdShhZGV2KSkKIAkJcmV0dXJuIHNtdV9wcmludF9jbGtfbGV2ZWxzKCZh ZGV2LT5zbXUsIFNNVV9QQ0lFLCBidWYpOwogCWVsc2UgaWYgKGFkZXYtPnBvd2VycGxheS5wcF9m dW5jcy0+cHJpbnRfY2xvY2tfbGV2ZWxzKQpAQCAtMTEwOSw2ICsxMTMwLDkgQEAgc3RhdGljIHNz aXplX3QgYW1kZ3B1X3NldF9wcF9kcG1fcGNpZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJaW50IHJl dDsKIAl1aW50MzJfdCBtYXNrID0gMDsKIAorCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCisJ CXJldHVybiAwOworCiAJcmV0ID0gYW1kZ3B1X3JlYWRfbWFzayhidWYsIGNvdW50LCAmbWFzayk7 CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTExNTAsNiArMTE3NCw5IEBAIHN0YXRpYyBz c2l6ZV90IGFtZGdwdV9zZXRfcHBfc2Nsa19vZChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJaW50IHJl dDsKIAlsb25nIGludCB2YWx1ZTsKIAorCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYgIWFt ZGdpbV9pc19wcF9vbmVfdmYoYWRldikpCisJCXJldHVybiAwOworCiAJcmV0ID0ga3N0cnRvbChi dWYsIDAsICZ2YWx1ZSk7CiAKIAlpZiAocmV0KSB7CkBAIC0xMjAxLDYgKzEyMjgsOSBAQCBzdGF0 aWMgc3NpemVfdCBhbWRncHVfc2V0X3BwX21jbGtfb2Qoc3RydWN0IGRldmljZSAqZGV2LAogCWlu dCByZXQ7CiAJbG9uZyBpbnQgdmFsdWU7CiAKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYm ICFhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYpKQorCQlyZXR1cm4gMDsKKwogCXJldCA9IGtzdHJ0 b2woYnVmLCAwLCAmdmFsdWUpOwogCiAJaWYgKHJldCkgewpAQCAtMjczMCw0NCArMjc2MCw2IEBA IHZvaWQgYW1kZ3B1X2RwbV9lbmFibGVfanBlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg Ym9vbCBlbmFibGUpCiAJfQogfQogCi1pbnQgYW1kZ3B1X3BtX3ZpcnRfc3lzZnNfaW5pdChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKLXsKLQlpbnQgcmV0ID0gMDsKLQotCWlmICghKGFtZGdw dV9zcmlvdl92ZihhZGV2KSAmJiBhbWRnaW1faXNfaHdwZXJmKGFkZXYpKSkKLQkJcmV0dXJuIHJl dDsKLQotCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wcF9k cG1fc2Nsayk7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoImZhaWxlZCB0byBjcmVhdGUgZGV2 aWNlIGZpbGUgcHBfZHBtX3NjbGtcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldCA9IGRl dmljZV9jcmVhdGVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wcF9kcG1fbWNsayk7Ci0JaWYg KHJldCkgewotCQlEUk1fRVJST1IoImZhaWxlZCB0byBjcmVhdGUgZGV2aWNlIGZpbGUgcHBfZHBt X21jbGtcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldCA9IGRldmljZV9jcmVhdGVfZmls ZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wb3dlcl9kcG1fZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwp OwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY3JlYXRlIGRldmljZSBmaWxl IGZvciBkcG0gc3RhdGVcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldHVybiByZXQ7Ci19 Ci0KLXZvaWQgYW1kZ3B1X3BtX3ZpcnRfc3lzZnNfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKLXsKLQlpZiAoIShhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYgYW1kZ2ltX2lzX2h3cGVy ZihhZGV2KSkpCi0JCXJldHVybjsKLQotCWRldmljZV9yZW1vdmVfZmlsZShhZGV2LT5kZXYsICZk ZXZfYXR0cl9wb3dlcl9kcG1fZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwpOwotCWRldmljZV9yZW1v dmVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wcF9kcG1fc2Nsayk7Ci0JZGV2aWNlX3JlbW92 ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX2RwbV9tY2xrKTsKLX0KLQogaW50IGFtZGdw dV9wbV9sb2FkX3NtdV9maXJtd2FyZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMy X3QgKnNtdV92ZXJzaW9uKQogewogCWludCByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92aXJ0LmMKaW5kZXggZTMyYWU5MDZkNzk3Li4xMDMwMzNmOTZmMTMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYwpAQCAtMzc5LDU0ICszNzksMyBAQCB2b2lk IGFtZGdwdV92aXJ0X2luaXRfZGF0YV9leGNoYW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIAkJfQogCX0KIH0KLQotc3RhdGljIHVpbnQzMl90IHBhcnNlX2NsayhjaGFyICpidWYsIGJv b2wgbWluKQotewotICAgICAgICBjaGFyICpwdHIgPSBidWY7Ci0gICAgICAgIHVpbnQzMl90IGNs ayA9IDA7Ci0KLSAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIHB0ciA9IHN0cmNocihwdHIs ICc6Jyk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwdHIpCi0gICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgICAgICAgICBwdHIrPTI7Ci0JCWlmIChrc3RydG91MzIocHRyLCAx MCwgJmNsaykpCi0JCQlyZXR1cm4gMDsKLSAgICAgICAgfSB3aGlsZSAoIW1pbik7Ci0KLSAgICAg ICAgcmV0dXJuIGNsayAqIDEwMDsKLX0KLQotdWludDMyX3QgYW1kZ3B1X3ZpcnRfZ2V0X3NjbGso c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgbG93ZXN0KQotewotCWNoYXIgKmJ1ZiA9 IE5VTEw7Ci0JdWludDMyX3QgY2xrID0gMDsKLQotCWJ1ZiA9IGt6YWxsb2MoUEFHRV9TSVpFLCBH RlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlhZGV2LT52aXJ0 Lm9wcy0+Z2V0X3BwX2NsayhhZGV2LCBQUF9TQ0xLLCBidWYpOwotCWNsayA9IHBhcnNlX2Nsayhi dWYsIGxvd2VzdCk7Ci0KLQlrZnJlZShidWYpOwotCi0JcmV0dXJuIGNsazsKLX0KLQotdWludDMy X3QgYW1kZ3B1X3ZpcnRfZ2V0X21jbGsoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wg bG93ZXN0KQotewotCWNoYXIgKmJ1ZiA9IE5VTEw7Ci0JdWludDMyX3QgY2xrID0gMDsKLQotCWJ1 ZiA9IGt6YWxsb2MoUEFHRV9TSVpFLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZikKLQkJcmV0dXJu IC1FTk9NRU07Ci0KLQlhZGV2LT52aXJ0Lm9wcy0+Z2V0X3BwX2NsayhhZGV2LCBQUF9NQ0xLLCBi dWYpOwotCWNsayA9IHBhcnNlX2NsayhidWYsIGxvd2VzdCk7Ci0KLQlrZnJlZShidWYpOwotCi0J cmV0dXJuIGNsazsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92aXJ0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oCmlu ZGV4IGIwYjJiZGM3NTBkZi4uNjNkYjJhNmYwMDhkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92aXJ0LmgKQEAgLTU3LDggKzU3LDYgQEAgc3RydWN0IGFtZGdwdV92aXJ0X29w cyB7CiAJaW50ICgqcmVzZXRfZ3B1KShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAJaW50 ICgqd2FpdF9yZXNldCkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogCXZvaWQgKCp0cmFu c19tc2cpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgcmVxLCB1MzIgZGF0YTEsIHUz MiBkYXRhMiwgdTMyIGRhdGEzKTsKLQlpbnQgKCpnZXRfcHBfY2xrKShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwgdTMyIHR5cGUsIGNoYXIgKmJ1Zik7Ci0JaW50ICgqZm9yY2VfZHBtX2xldmVs KShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIGxldmVsKTsKIH07CiAKIC8qCkBAIC04 NSw4ICs4Myw4IEBAIGVudW0gQU1ER0lNX0ZFQVRVUkVfRkxBRyB7CiAJQU1ER0lNX0ZFQVRVUkVf R0lNX0xPQURfVUNPREVTICAgPSAweDIsCiAJLyogVlJBTSBMT1NUIGJ5IEdJTSAqLwogCUFNREdJ TV9GRUFUVVJFX0dJTV9GTFJfVlJBTUxPU1QgPSAweDQsCi0JLyogSFcgUEVSRiBTSU0gaW4gR0lN ICovCi0JQU1ER0lNX0ZFQVRVUkVfSFdfUEVSRl9TSU1VTEFUSU9OID0gKDEgPDwgMyksCisJLyog UFAgT05FIFZGIE1PREUgaW4gR0lNICovCisJQU1ER0lNX0ZFQVRVUkVfUFBfT05FX1ZGID0gKDEg PDwgNCksCiB9OwogCiBzdHJ1Y3QgYW1kX3NyaW92X21zZ19wZjJ2Zl9pbmZvX2hlYWRlciB7CkBA IC0yNTcsOCArMjU1LDYgQEAgc3RydWN0IGFtZGdwdV92aXJ0IHsKIAlzdHJ1Y3QgYW1kZ3B1X3Zm X2Vycm9yX2J1ZmZlciAgIHZmX2Vycm9yczsKIAlzdHJ1Y3QgYW1kZ3B1X3ZpcnRfZndfcmVzZXJ2 ZQlmd19yZXNlcnZlOwogCXVpbnQzMl90IGdpbV9mZWF0dXJlOwotCS8qIHByb3RlY3QgRFBNIGV2 ZW50cyB0byBHSU0gKi8KLQlzdHJ1Y3QgbXV0ZXggICAgICAgICAgICAgICAgICAgIGRwbV9tdXRl eDsKIAl1aW50MzJfdCByZWdfYWNjZXNzX21vZGU7CiB9OwogCkBAIC0yODYsOCArMjgyLDggQEAg c3RhdGljIGlubGluZSBib29sIGlzX3ZpcnR1YWxfbWFjaGluZSh2b2lkKQogI2VuZGlmCiB9CiAK LSNkZWZpbmUgYW1kZ2ltX2lzX2h3cGVyZihhZGV2KSBcCi0JKChhZGV2KS0+dmlydC5naW1fZmVh dHVyZSAmIEFNREdJTV9GRUFUVVJFX0hXX1BFUkZfU0lNVUxBVElPTikKKyNkZWZpbmUgYW1kZ2lt X2lzX3BwX29uZV92ZihhZGV2KSBcCisJKChhZGV2KS0+dmlydC5naW1fZmVhdHVyZSAmIEFNREdJ TV9GRUFUVVJFX1BQX09ORV9WRikKIAogYm9vbCBhbWRncHVfdmlydF9tbWlvX2Jsb2NrZWQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogdm9pZCBhbWRncHVfdmlydF9pbml0X3NldHRpbmco c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwpAQCAtMzA2LDYgKzMwMiw0IEBAIGludCBhbWRn cHVfdmlydF9md19yZXNlcnZlX2dldF9jaGVja3N1bSh2b2lkICpvYmosIHVuc2lnbmVkIGxvbmcg b2JqX3NpemUsCiAJCQkJCXVuc2lnbmVkIGludCBrZXksCiAJCQkJCXVuc2lnbmVkIGludCBjaGtz dW0pOwogdm9pZCBhbWRncHVfdmlydF9pbml0X2RhdGFfZXhjaGFuZ2Uoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpOwotdWludDMyX3QgYW1kZ3B1X3ZpcnRfZ2V0X3NjbGsoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIGJvb2wgbG93ZXN0KTsKLXVpbnQzMl90IGFtZGdwdV92aXJ0X2dldF9t Y2xrKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGxvd2VzdCk7CiAjZW5kaWYKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV9haS5jCmluZGV4IGNjNWJmNTk1ZjliMS4uNDMzMDVh ZmEzZDZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV9haS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMKQEAgLTE1OCw4MiAr MTU4LDYgQEAgc3RhdGljIHZvaWQgeGdwdV9haV9tYWlsYm94X3RyYW5zX21zZyAoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCiAJeGdwdV9haV9tYWlsYm94X3NldF92YWxpZChhZGV2LCBmYWxz ZSk7CiB9CiAKLXN0YXRpYyBpbnQgeGdwdV9haV9nZXRfcHBfY2xrKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LCB1MzIgdHlwZSwgY2hhciAqYnVmKQotewotICAgICAgICBpbnQgciA9IDA7Ci0g ICAgICAgIHUzMiByZXEsIHZhbCwgc2l6ZTsKLQotICAgICAgICBpZiAoIWFtZGdpbV9pc19od3Bl cmYoYWRldikgfHwgYnVmID09IE5VTEwpCi0gICAgICAgICAgICAgICAgcmV0dXJuIC1FQkFEUlFD OwotCi0gICAgICAgIHN3aXRjaCh0eXBlKSB7Ci0gICAgICAgIGNhc2UgUFBfU0NMSzoKLSAgICAg ICAgICAgICAgICByZXEgPSBJREhfSVJRX0dFVF9QUF9TQ0xLOwotICAgICAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICBjYXNlIFBQX01DTEs6Ci0gICAgICAgICAgICAgICAgcmVxID0gSURIX0lS UV9HRVRfUFBfTUNMSzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoK LSAgICAgICAgICAgICAgICByZXR1cm4gLUVCQURSUUM7Ci0gICAgICAgIH0KLQotICAgICAgICBt dXRleF9sb2NrKCZhZGV2LT52aXJ0LmRwbV9tdXRleCk7Ci0KLSAgICAgICAgeGdwdV9haV9tYWls Ym94X3RyYW5zX21zZyhhZGV2LCByZXEsIDAsIDAsIDApOwotCi0gICAgICAgIHIgPSB4Z3B1X2Fp X3BvbGxfbXNnKGFkZXYsIElESF9TVUNDRVNTKTsKLSAgICAgICAgaWYgKCFyICYmIGFkZXYtPmZ3 X3ZyYW1fdXNhZ2UudmEgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHZhbCA9IFJSRUczMl9O T19LSVEoCi0gICAgICAgICAgICAgICAgICAgICAgICBTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1tQklGX0JYX1BGMF9N QUlMQk9YX01TR0JVRl9SQ1ZfRFcxKSk7Ci0gICAgICAgICAgICAgICAgc2l6ZSA9IHN0cm5sZW4o KCgoY2hhciAqKWFkZXYtPnZpcnQuZndfcmVzZXJ2ZS5wX3BmMnZmKSArCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZhbCksIFBBR0VfU0laRSk7Ci0KLSAgICAgICAgICAgICAgICBp ZiAoc2l6ZSA8IFBBR0VfU0laRSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNweShidWYs KChjaGFyICopYWRldi0+dmlydC5md19yZXNlcnZlLnBfcGYydmYgKyB2YWwpKTsKLSAgICAgICAg ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gMDsKLQotICAgICAg ICAgICAgICAgIHIgPSBzaXplOwotICAgICAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9 Ci0KLSAgICAgICAgciA9IHhncHVfYWlfcG9sbF9tc2coYWRldiwgSURIX0ZBSUwpOwotICAgICAg ICBpZihyKQotICAgICAgICAgICAgICAgIHByX2luZm8oIiVzIERQTSByZXF1ZXN0IGZhaWxlZCIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAodHlwZSA9PSBQUF9TQ0xLKT8gIlNDTEsiIDogIk1D TEsiKTsKLQotb3V0OgotICAgICAgICBtdXRleF91bmxvY2soJmFkZXYtPnZpcnQuZHBtX211dGV4 KTsKLSAgICAgICAgcmV0dXJuIHI7Ci19Ci0KLXN0YXRpYyBpbnQgeGdwdV9haV9mb3JjZV9kcG1f bGV2ZWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiBsZXZlbCkKLXsKLSAgICAgICAg aW50IHIgPSAwOwotICAgICAgICB1MzIgcmVxID0gSURIX0lSUV9GT1JDRV9EUE1fTEVWRUw7Ci0K LSAgICAgICAgaWYgKCFhbWRnaW1faXNfaHdwZXJmKGFkZXYpKQotICAgICAgICAgICAgICAgIHJl dHVybiAtRUJBRFJRQzsKLQotICAgICAgICBtdXRleF9sb2NrKCZhZGV2LT52aXJ0LmRwbV9tdXRl eCk7Ci0gICAgICAgIHhncHVfYWlfbWFpbGJveF90cmFuc19tc2coYWRldiwgcmVxLCBsZXZlbCwg MCwgMCk7Ci0KLSAgICAgICAgciA9IHhncHVfYWlfcG9sbF9tc2coYWRldiwgSURIX1NVQ0NFU1Mp OwotICAgICAgICBpZiAoIXIpCi0gICAgICAgICAgICAgICAgZ290byBvdXQ7Ci0KLSAgICAgICAg ciA9IHhncHVfYWlfcG9sbF9tc2coYWRldiwgSURIX0ZBSUwpOwotICAgICAgICBpZiAoIXIpCi0g ICAgICAgICAgICAgICAgcHJfaW5mbygiRFBNIHJlcXVlc3QgZmFpbGVkIik7Ci0gICAgICAgIGVs c2UKLSAgICAgICAgICAgICAgICBwcl9pbmZvKCJNYWlsYm94IGlzIGJyb2tlbiIpOwotCi1vdXQ6 Ci0gICAgICAgIG11dGV4X3VubG9jaygmYWRldi0+dmlydC5kcG1fbXV0ZXgpOwotICAgICAgICBy ZXR1cm4gcjsKLX0KLQogc3RhdGljIGludCB4Z3B1X2FpX3NlbmRfYWNjZXNzX3JlcXVlc3RzKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCQllbnVtIGlkaF9yZXF1ZXN0IHJlcSkKIHsK QEAgLTQ1NSw2ICszNzksNCBAQCBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3ZpcnRfb3BzIHhncHVfYWlf dmlydF9vcHMgPSB7CiAJLnJlc2V0X2dwdSA9IHhncHVfYWlfcmVxdWVzdF9yZXNldCwKIAkud2Fp dF9yZXNldCA9IE5VTEwsCiAJLnRyYW5zX21zZyA9IHhncHVfYWlfbWFpbGJveF90cmFuc19tc2cs Ci0JLmdldF9wcF9jbGsgPSB4Z3B1X2FpX2dldF9wcF9jbGssCi0JLmZvcmNlX2RwbV9sZXZlbCA9 IHhncHVfYWlfZm9yY2VfZHBtX2xldmVsLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L214Z3B1X2FpLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdw dV9haS5oCmluZGV4IDA3N2U5MWEzM2Q2Mi4uMzdkYmUwZjIxNDJmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV9haS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L214Z3B1X2FpLmgKQEAgLTM1LDEwICszNSw2IEBAIGVudW0gaWRoX3JlcXVlc3Qg ewogCUlESF9SRUxfR1BVX0ZJTklfQUNDRVNTLAogCUlESF9SRVFfR1BVX1JFU0VUX0FDQ0VTUywK IAotCUlESF9JUlFfRk9SQ0VfRFBNX0xFVkVMID0gMTAsCi0JSURIX0lSUV9HRVRfUFBfU0NMSywK LQlJREhfSVJRX0dFVF9QUF9NQ0xLLAotCiAJSURIX0xPR19WRl9FUlJPUiAgICAgICA9IDIwMCwK IH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5jCmluZGV4IDQ4NjQ5ZjU1ZjNiYS4uNTlm NWYyYTM5ZmU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmMKQEAgLTc3NywxMSArNzc3 LDExIEBAIGludCBzb2MxNV9zZXRfaXBfYmxvY2tzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCQl9CiAJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZnZnhfdjlfMF9pcF9i bG9jayk7CiAJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZzZG1hX3Y0XzBfaXBf YmxvY2spOwotCQlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewotCQkJaWYgKGlzX3N1cHBv cnRfc3dfc211KGFkZXYpKQorCQlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpIHsKKwkJCWlm ICghYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQogCQkJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRk KGFkZXYsICZzbXVfdjExXzBfaXBfYmxvY2spOwotCQkJZWxzZQotCQkJCWFtZGdwdV9kZXZpY2Vf aXBfYmxvY2tfYWRkKGFkZXYsICZwcF9zbXVfaXBfYmxvY2spOworCQl9IGVsc2UgeworCQkJYW1k Z3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJnBwX3NtdV9pcF9ibG9jayk7CiAJCX0KIAkJ aWYgKGFkZXYtPmVuYWJsZV92aXJ0dWFsX2Rpc3BsYXkgfHwgYW1kZ3B1X3NyaW92X3ZmKGFkZXYp KQogCQkJYW1kZ3B1X2RldmljZV9pcF9ibG9ja19hZGQoYWRldiwgJmRjZV92aXJ0dWFsX2lwX2Js b2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZF9wb3dl cnBsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXkuYwpp bmRleCA3OTMyZWIxNjNhMDAuLjUwODdkNmJkYmE2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvYW1kX3Bvd2VycGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXkuYwpAQCAtNDgsNyArNDgsNiBAQCBzdGF0aWMgaW50 IGFtZF9wb3dlcnBsYXlfY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJaHdt Z3ItPmFkZXYgPSBhZGV2OwogCWh3bWdyLT5ub3RfdmYgPSAhYW1kZ3B1X3NyaW92X3ZmKGFkZXYp OwotCWh3bWdyLT5wbV9lbiA9IChhbWRncHVfZHBtICYmIGh3bWdyLT5ub3RfdmYpID8gdHJ1ZSA6 IGZhbHNlOwogCWh3bWdyLT5kZXZpY2UgPSBhbWRncHVfY2dzX2NyZWF0ZV9kZXZpY2UoYWRldik7 CiAJbXV0ZXhfaW5pdCgmaHdtZ3ItPnNtdV9sb2NrKTsKIAlod21nci0+Y2hpcF9mYW1pbHkgPSBh ZGV2LT5mYW1pbHk7CkBAIC0yNzYsNiArMjc1LDkgQEAgc3RhdGljIGludCBwcF9kcG1fbG9hZF9m dyh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IHBwX2h3bWdyICpod21nciA9IGhhbmRsZTsKIAor CWlmICghaHdtZ3ItPm5vdF92ZikKKwkJcmV0dXJuIDA7CisKIAlpZiAoIWh3bWdyIHx8ICFod21n ci0+c211bWdyX2Z1bmNzIHx8ICFod21nci0+c211bWdyX2Z1bmNzLT5zdGFydF9zbXUpCiAJCXJl dHVybiAtRUlOVkFMOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxh eS9hbWRncHVfc211LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRncHVfc211 LmMKaW5kZXggMzYwMDFhNGY2NWQ3Li43MTRiODM4MWQwMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZGdwdV9zbXUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMKQEAgLTE2NTMsMTEgKzE2NTMsMTMgQEAgaW50IHNt dV9hZGp1c3RfcG93ZXJfc3RhdGVfZHluYW1pYyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAlp ZiAoIXNtdS0+cG1fZW5hYmxlZCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoIXNraXBfZGlz cGxheV9zZXR0aW5ncykgewotCQlyZXQgPSBzbXVfZGlzcGxheV9jb25maWdfY2hhbmdlZChzbXUp OwotCQlpZiAocmV0KSB7Ci0JCQlwcl9lcnIoIkZhaWxlZCB0byBjaGFuZ2UgZGlzcGxheSBjb25m aWchIik7Ci0JCQlyZXR1cm4gcmV0OworCWlmICghYW1kZ3B1X3NyaW92X3ZmKHNtdS0+YWRldikp IHsKKwkJaWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpIHsKKwkJCXJldCA9IHNtdV9kaXNwbGF5 X2NvbmZpZ19jaGFuZ2VkKHNtdSk7CisJCQlpZiAocmV0KSB7CisJCQkJcHJfZXJyKCJGYWlsZWQg dG8gY2hhbmdlIGRpc3BsYXkgY29uZmlnISIpOworCQkJCXJldHVybiByZXQ7CisJCQl9CiAJCX0K IAl9CiAKQEAgLTE2NjcsMTEgKzE2NjksMTMgQEAgaW50IHNtdV9hZGp1c3RfcG93ZXJfc3RhdGVf ZHluYW1pYyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlp ZiAoIXNraXBfZGlzcGxheV9zZXR0aW5ncykgewotCQlyZXQgPSBzbXVfbm90aWZ5X3NtY19kaXNw YWx5X2NvbmZpZyhzbXUpOwotCQlpZiAocmV0KSB7Ci0JCQlwcl9lcnIoIkZhaWxlZCB0byBub3Rp Znkgc21jIGRpc3BsYXkgY29uZmlnISIpOwotCQkJcmV0dXJuIHJldDsKKwlpZiAoYW1kZ3B1X3Ny aW92X3ZmKHNtdS0+YWRldikpIHsKKwkJaWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpIHsKKwkJ CXJldCA9IHNtdV9ub3RpZnlfc21jX2Rpc3BhbHlfY29uZmlnKHNtdSk7CisJCQlpZiAocmV0KSB7 CisJCQkJcHJfZXJyKCJGYWlsZWQgdG8gbm90aWZ5IHNtYyBkaXNwbGF5IGNvbmZpZyEiKTsKKwkJ CQlyZXR1cm4gcmV0OworCQkJfQogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9od21nci9oYXJkd2FyZW1hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL2hhcmR3YXJlbWFuYWdlci5jCmluZGV4IGNjNTdmYjk1M2U2 Mi4uMjUzODYwZDMwYjIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxh eS9od21nci9oYXJkd2FyZW1hbmFnZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2Vy cGxheS9od21nci9oYXJkd2FyZW1hbmFnZXIuYwpAQCAtODEsOCArODEsOCBAQCBpbnQgcGhtX2Vu YWJsZV9keW5hbWljX3N0YXRlX21hbmFnZW1lbnQoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAlh ZGV2ID0gaHdtZ3ItPmFkZXY7CiAKIAkvKiBTa2lwIGZvciBzdXNwZW5kL3Jlc3VtZSBjYXNlICov Ci0JaWYgKHNtdW1faXNfZHBtX3J1bm5pbmcoaHdtZ3IpICYmICFhbWRncHVfcGFzc3Rocm91Z2go YWRldikKLQkJJiYgYWRldi0+aW5fc3VzcGVuZCkgeworCWlmICghaHdtZ3ItPnBwX29uZV92ZiAm JiBzbXVtX2lzX2RwbV9ydW5uaW5nKGh3bWdyKQorCSAgICAmJiAhYW1kZ3B1X3Bhc3N0aHJvdWdo KGFkZXYpICYmIGFkZXYtPmluX3N1c3BlbmQpIHsKIAkJcHJfaW5mbygiZHBtIGhhcyBiZWVuIGVu YWJsZWRcbiIpOwogCQlyZXR1cm4gMDsKIAl9CkBAIC0yMDAsNiArMjAwLDkgQEAgaW50IHBobV9z dG9wX3RoZXJtYWxfY29udHJvbGxlcihzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogewogCVBITV9G VU5DX0NIRUNLKGh3bWdyKTsKIAorCWlmICghaHdtZ3ItPm5vdF92ZikKKwkJcmV0dXJuIDA7CisK IAlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPnN0b3BfdGhlcm1hbF9jb250cm9sbGVyID09IE5VTEwp CiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC0yMzcsNiArMjQwLDkgQEAgaW50IHBobV9zdGFydF90 aGVybWFsX2NvbnRyb2xsZXIoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAkJVEVNUF9SQU5HRV9N QVh9OwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gaHdtZ3ItPmFkZXY7CiAKKwlpZiAo IWh3bWdyLT5ub3RfdmYpCisJCXJldHVybiAwOworCiAJaWYgKGh3bWdyLT5od21ncl9mdW5jLT5n ZXRfdGhlcm1hbF90ZW1wZXJhdHVyZV9yYW5nZSkKIAkJaHdtZ3ItPmh3bWdyX2Z1bmMtPmdldF90 aGVybWFsX3RlbXBlcmF0dXJlX3JhbmdlKAogCQkJCWh3bWdyLCAmcmFuZ2UpOwpAQCAtMjYzLDYg KzI2OSw4IEBAIGludCBwaG1fc3RhcnRfdGhlcm1hbF9jb250cm9sbGVyKHN0cnVjdCBwcF9od21n ciAqaHdtZ3IpCiBib29sIHBobV9jaGVja19zbWNfdXBkYXRlX3JlcXVpcmVkX2Zvcl9kaXNwbGF5 X2NvbmZpZ3VyYXRpb24oc3RydWN0IHBwX2h3bWdyICpod21ncikKIHsKIAlQSE1fRlVOQ19DSEVD Syhod21ncik7CisJaWYgKGh3bWdyLT5wcF9vbmVfdmYpCisJCXJldHVybiBmYWxzZTsKIAogCWlm IChod21nci0+aHdtZ3JfZnVuYy0+Y2hlY2tfc21jX3VwZGF0ZV9yZXF1aXJlZF9mb3JfZGlzcGxh eV9jb25maWd1cmF0aW9uID09IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKQEAgLTQ4Miw2ICs0OTAs OSBAQCBpbnQgcGhtX2Rpc2FibGVfc21jX2Zpcm13YXJlX2N0ZihzdHJ1Y3QgcHBfaHdtZ3IgKmh3 bWdyKQogewogCVBITV9GVU5DX0NIRUNLKGh3bWdyKTsKIAorCWlmICghaHdtZ3ItPm5vdF92ZikK KwkJcmV0dXJuIDA7CisKIAlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPmRpc2FibGVfc21jX2Zpcm13 YXJlX2N0ZiA9PSBOVUxMKQogCQlyZXR1cm4gLUVJTlZBTDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvaHdtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdyLmMKaW5kZXggZDI5MDljOTFkNjViLi5mOGM4MWY5NjM2 NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvaHdtZ3IuYwpAQCAt MjIxLDYgKzIyMSw5IEBAIGludCBod21ncl9od19pbml0KHN0cnVjdCBwcF9od21nciAqaHdtZ3Ip CiB7CiAJaW50IHJldCA9IDA7CiAKKwlod21nci0+cHBfb25lX3ZmID0gYW1kZ2ltX2lzX3BwX29u ZV92Zigoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilod21nci0+YWRldik7CisJaHdtZ3ItPnBtX2Vu ID0gKGFtZGdwdV9kcG0gJiYgKGh3bWdyLT5ub3RfdmYgfHwgaHdtZ3ItPnBwX29uZV92ZikpCisJ CQk/IHRydWUgOiBmYWxzZTsKIAlpZiAoIWh3bWdyLT5wbV9lbikKIAkJcmV0dXJuIDA7CiAKQEAg LTM2NSw2ICszNjgsOCBAQCBpbnQgaHdtZ3JfaGFuZGxlX3Rhc2soc3RydWN0IHBwX2h3bWdyICpo d21nciwgZW51bSBhbWRfcHBfdGFzayB0YXNrX2lkLAogCiAJc3dpdGNoICh0YXNrX2lkKSB7CiAJ Y2FzZSBBTURfUFBfVEFTS19ESVNQTEFZX0NPTkZJR19DSEFOR0U6CisJCWlmICghaHdtZ3ItPm5v dF92ZikKKwkJCXJldHVybiByZXQ7CiAJCXJldCA9IHBobV9wcmVfZGlzcGxheV9jb25maWd1cmF0 aW9uX2NoYW5nZWQoaHdtZ3IpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKQEAgLTM4MSw2 ICszODYsOCBAQCBpbnQgaHdtZ3JfaGFuZGxlX3Rhc2soc3RydWN0IHBwX2h3bWdyICpod21nciwg ZW51bSBhbWRfcHBfdGFzayB0YXNrX2lkLAogCQllbnVtIFBQX1N0YXRlVUlMYWJlbCByZXF1ZXN0 ZWRfdWlfbGFiZWw7CiAJCXN0cnVjdCBwcF9wb3dlcl9zdGF0ZSAqcmVxdWVzdGVkX3BzID0gTlVM TDsKIAorCQlpZiAoIWh3bWdyLT5ub3RfdmYpCisJCQlyZXR1cm4gcmV0OwogCQlpZiAodXNlcl9z dGF0ZSA9PSBOVUxMKSB7CiAJCQlyZXQgPSAtRUlOVkFMOwogCQkJYnJlYWs7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9wcF9wc20uYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3BwX3BzbS5jCmluZGV4IDZiZjQ4OTM0ZmRjNC4u MzFhMzJhNzljZmMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9o d21nci9wcF9wc20uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9w cF9wc20uYwpAQCAtMjYyLDIwICsyNjIsMjIgQEAgaW50IHBzbV9hZGp1c3RfcG93ZXJfc3RhdGVf ZHluYW1pYyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBib29sIHNraXBfZGlzcGxheV9zZXQKIAl1 aW50MzJfdCBpbmRleDsKIAlsb25nIHdvcmtsb2FkOwogCi0JaWYgKCFza2lwX2Rpc3BsYXlfc2V0 dGluZ3MpCi0JCXBobV9kaXNwbGF5X2NvbmZpZ3VyYXRpb25fY2hhbmdlZChod21ncik7Ci0KLQlp ZiAoaHdtZ3ItPnBzKQotCQlwb3dlcl9zdGF0ZV9tYW5hZ2VtZW50KGh3bWdyLCBuZXdfcHMpOwot CWVsc2UKLQkJLyoKLQkJICogZm9yIHZlZ2ExMi92ZWdhMjAgd2hpY2ggZG9lcyBub3Qgc3VwcG9y dCBwb3dlciBzdGF0ZSBtYW5hZ2VyCi0JCSAqIERBTCBjbG9jayBsaW1pdHMgc2hvdWxkIGFsc28g YmUgaG9ub3VyZWQKLQkJICovCi0JCXBobV9hcHBseV9jbG9ja19hZGp1c3RfcnVsZXMoaHdtZ3Ip OwotCi0JaWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpCi0JCXBobV9ub3RpZnlfc21jX2Rpc3Bs YXlfY29uZmlnX2FmdGVyX3BzX2FkanVzdG1lbnQoaHdtZ3IpOworCWlmIChod21nci0+bm90X3Zm KSB7CisJCWlmICghc2tpcF9kaXNwbGF5X3NldHRpbmdzKQorCQkJcGhtX2Rpc3BsYXlfY29uZmln dXJhdGlvbl9jaGFuZ2VkKGh3bWdyKTsKKworCQlpZiAoaHdtZ3ItPnBzKQorCQkJcG93ZXJfc3Rh dGVfbWFuYWdlbWVudChod21nciwgbmV3X3BzKTsKKwkJZWxzZQorCQkJLyoKKwkJCSAqIGZvciB2 ZWdhMTIvdmVnYTIwIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQgcG93ZXIgc3RhdGUgbWFuYWdlcgor CQkJICogREFMIGNsb2NrIGxpbWl0cyBzaG91bGQgYWxzbyBiZSBob25vdXJlZAorCQkJICovCisJ CQlwaG1fYXBwbHlfY2xvY2tfYWRqdXN0X3J1bGVzKGh3bWdyKTsKKworCQlpZiAoIXNraXBfZGlz cGxheV9zZXR0aW5ncykKKwkJCXBobV9ub3RpZnlfc21jX2Rpc3BsYXlfY29uZmlnX2FmdGVyX3Bz X2FkanVzdG1lbnQoaHdtZ3IpOworCX0KIAogCWlmICghcGhtX2ZvcmNlX2RwbV9sZXZlbHMoaHdt Z3IsIGh3bWdyLT5yZXF1ZXN0X2RwbV9sZXZlbCkpCiAJCWh3bWdyLT5kcG1fbGV2ZWwgPSBod21n ci0+cmVxdWVzdF9kcG1fbGV2ZWw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9od21nci92ZWdhMTBfaHdtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jCmluZGV4IGIyOWU5OTZkZjFkNC4uNDFhOWI4Njk5MDAx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBf aHdtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBf aHdtZ3IuYwpAQCAtOTEyLDYgKzkxMiw5IEBAIHN0YXRpYyBpbnQgdmVnYTEwX2h3bWdyX2JhY2tl bmRfaW5pdChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogCWh3bWdyLT5wbGF0Zm9ybV9kZXNjcmlw dG9yLmNsb2NrU3RlcC5tZW1vcnlDbG9jayA9IDUwMDsKIAogCWRhdGEtPnRvdGFsX2FjdGl2ZV9j dXMgPSBhZGV2LT5nZnguY3VfaW5mby5udW1iZXI7CisJaWYgKCFod21nci0+bm90X3ZmKQorCQly ZXR1cm4gcmVzdWx0OworCiAJLyogU2V0dXAgZGVmYXVsdCBPdmVyZHJpdmUgRmFuIGNvbnRyb2wg c2V0dGluZ3MgKi8KIAlkYXRhLT5vZG5fZmFuX3RhYmxlLnRhcmdldF9mYW5fc3BlZWQgPQogCQkJ aHdtZ3ItPnRoZXJtYWxfY29udHJvbGxlci5hZHZhbmNlRmFuQ29udHJvbFBhcmFtZXRlcnMudXNN YXhGYW5SUE07CkBAIC05NzksNiArOTgyLDkgQEAgc3RhdGljIGludCB2ZWdhMTBfc2V0dXBfZHBt X2xlZF9jb25maWcoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAogc3RhdGljIGludCB2ZWdhMTBf c2V0dXBfYXNpY190YXNrKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCiB7CisJaWYgKCFod21nci0+ bm90X3ZmKQorCQlyZXR1cm4gMDsKKwogCVBQX0FTU0VSVF9XSVRIX0NPREUoIXZlZ2ExMF9pbml0 X3NjbGtfdGhyZXNob2xkKGh3bWdyKSwKIAkJCSJGYWlsZWQgdG8gaW5pdCBzY2xrIHRocmVzaG9s ZCEiLAogCQkJcmV0dXJuIC1FSU5WQUwpOwpAQCAtMjUwMyw2ICsyNTA5LDkgQEAgc3RhdGljIGlu dCB2ZWdhMTBfaW5pdF9zbWNfdGFibGUoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAkJCSJGYWls ZWQgdG8gc2V0dXAgZGVmYXVsdCBEUE0gdGFibGVzISIsCiAJCQlyZXR1cm4gcmVzdWx0KTsKIAor CWlmICghaHdtZ3ItPm5vdF92ZikKKwkJcmV0dXJuIDA7CisKIAkvKiBpbml0aWFsaXplIE9ETiB0 YWJsZSAqLwogCWlmIChod21nci0+b2RfZW5hYmxlZCkgewogCQlpZiAob2RuX3RhYmxlLT5tYXhf dmRkYykgewpAQCAtMjkzMiw2MSArMjk0MSw3NSBAQCBzdGF0aWMgaW50IHZlZ2ExMF9lbmFibGVf ZHBtX3Rhc2tzKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCiAJc3RydWN0IHZlZ2ExMF9od21nciAq ZGF0YSA9IGh3bWdyLT5iYWNrZW5kOwogCWludCB0bXBfcmVzdWx0LCByZXN1bHQgPSAwOwogCi0J dmVnYTEwX2VuYWJsZV9kaXNhYmxlX1BDQ19saW1pdF9mZWF0dXJlKGh3bWdyLCB0cnVlKTsKLQot CXNtdW1fc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyKGh3bWdyLAotCQlQUFNNQ19NU0df Q29uZmlndXJlVGVsZW1ldHJ5LCBkYXRhLT5jb25maWdfdGVsZW1ldHJ5KTsKKwlpZiAoaHdtZ3It Pm5vdF92ZikgeworCQl2ZWdhMTBfZW5hYmxlX2Rpc2FibGVfUENDX2xpbWl0X2ZlYXR1cmUoaHdt Z3IsIHRydWUpOwogCi0JdG1wX3Jlc3VsdCA9IHZlZ2ExMF9jb25zdHJ1Y3Rfdm9sdGFnZV90YWJs ZXMoaHdtZ3IpOwotCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCi0JCQkiRmFpbGVk IHRvIGNvbnN0cnVjdCB2b2x0YWdlIHRhYmxlcyEiLAotCQkJcmVzdWx0ID0gdG1wX3Jlc3VsdCk7 CisJCXNtdW1fc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyKGh3bWdyLAorCQkJUFBTTUNf TVNHX0NvbmZpZ3VyZVRlbGVtZXRyeSwgZGF0YS0+Y29uZmlnX3RlbGVtZXRyeSk7CiAKLQl0bXBf cmVzdWx0ID0gdmVnYTEwX2luaXRfc21jX3RhYmxlKGh3bWdyKTsKLQlQUF9BU1NFUlRfV0lUSF9D T0RFKCF0bXBfcmVzdWx0LAotCQkJIkZhaWxlZCB0byBpbml0aWFsaXplIFNNQyB0YWJsZSEiLAot CQkJcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisJCXRtcF9yZXN1bHQgPSB2ZWdhMTBfY29uc3RydWN0 X3ZvbHRhZ2VfdGFibGVzKGh3bWdyKTsKKwkJUFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3Vs dCwKKwkJCQkgICAgIkZhaWxlZCB0byBjb25zdHJ1Y3Qgdm9sdGFnZSB0YWJsZXMhIiwKKwkJCQkg ICAgcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisJfQogCi0JaWYgKFBQX0NBUChQSE1fUGxhdGZvcm1D YXBzX1RoZXJtYWxDb250cm9sbGVyKSkgewotCQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV90 aGVybWFsX3Byb3RlY3Rpb24oaHdtZ3IpOworCWlmIChod21nci0+bm90X3ZmIHx8IGh3bWdyLT5w cF9vbmVfdmYpIHsKKwkJdG1wX3Jlc3VsdCA9IHZlZ2ExMF9pbml0X3NtY190YWJsZShod21ncik7 CiAJCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCi0JCQkJIkZhaWxlZCB0byBlbmFi bGUgdGhlcm1hbCBwcm90ZWN0aW9uISIsCi0JCQkJcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisJCQkJ ICAgICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBTTUMgdGFibGUhIiwKKwkJCQkgICAgcmVzdWx0ID0g dG1wX3Jlc3VsdCk7CiAJfQogCi0JdG1wX3Jlc3VsdCA9IHZlZ2ExMF9lbmFibGVfdnJob3RfZmVh dHVyZShod21ncik7Ci0JUFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwKLQkJCSJGYWls ZWQgdG8gZW5hYmxlIFZSIGhvdCBmZWF0dXJlISIsCi0JCQlyZXN1bHQgPSB0bXBfcmVzdWx0KTsK KwlpZiAoaHdtZ3ItPm5vdF92ZikgeworCQlpZiAoUFBfQ0FQKFBITV9QbGF0Zm9ybUNhcHNfVGhl cm1hbENvbnRyb2xsZXIpKSB7CisJCQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV90aGVybWFs X3Byb3RlY3Rpb24oaHdtZ3IpOworCQkJUFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwK KwkJCQkJICAgICJGYWlsZWQgdG8gZW5hYmxlIHRoZXJtYWwgcHJvdGVjdGlvbiEiLAorCQkJCQkg ICAgcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisJCX0KIAotCXRtcF9yZXN1bHQgPSB2ZWdhMTBfZW5h YmxlX2RlZXBfc2xlZXBfbWFzdGVyX3N3aXRjaChod21ncik7Ci0JUFBfQVNTRVJUX1dJVEhfQ09E RSghdG1wX3Jlc3VsdCwKLQkJCSJGYWlsZWQgdG8gZW5hYmxlIGRlZXAgc2xlZXAgbWFzdGVyIHN3 aXRjaCEiLAotCQkJcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisJCXRtcF9yZXN1bHQgPSB2ZWdhMTBf ZW5hYmxlX3ZyaG90X2ZlYXR1cmUoaHdtZ3IpOworCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBf cmVzdWx0LAorCQkJCSAgICAiRmFpbGVkIHRvIGVuYWJsZSBWUiBob3QgZmVhdHVyZSEiLAorCQkJ CSAgICByZXN1bHQgPSB0bXBfcmVzdWx0KTsKIAotCXRtcF9yZXN1bHQgPSB2ZWdhMTBfc3RhcnRf ZHBtKGh3bWdyLCBTTUNfRFBNX0ZFQVRVUkVTKTsKLQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBf cmVzdWx0LAotCQkJIkZhaWxlZCB0byBzdGFydCBEUE0hIiwgcmVzdWx0ID0gdG1wX3Jlc3VsdCk7 CisJCXRtcF9yZXN1bHQgPSB2ZWdhMTBfZW5hYmxlX2RlZXBfc2xlZXBfbWFzdGVyX3N3aXRjaCho d21ncik7CisJCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCisJCQkJICAgICJGYWls ZWQgdG8gZW5hYmxlIGRlZXAgc2xlZXAgbWFzdGVyIHN3aXRjaCEiLAorCQkJCSAgICByZXN1bHQg PSB0bXBfcmVzdWx0KTsKKwl9CiAKLQkvKiBlbmFibGUgZGlkdCwgZG8gbm90IGFib3J0IGlmIGZh aWxlZCBkaWR0ICovCi0JdG1wX3Jlc3VsdCA9IHZlZ2ExMF9lbmFibGVfZGlkdF9jb25maWcoaHdt Z3IpOwotCVBQX0FTU0VSVCghdG1wX3Jlc3VsdCwKLQkJCSJGYWlsZWQgdG8gZW5hYmxlIGRpZHQg Y29uZmlnISIpOworCWlmIChod21nci0+bm90X3ZmKSB7CisJCXRtcF9yZXN1bHQgPSB2ZWdhMTBf c3RhcnRfZHBtKGh3bWdyLCBTTUNfRFBNX0ZFQVRVUkVTKTsKKwkJUFBfQVNTRVJUX1dJVEhfQ09E RSghdG1wX3Jlc3VsdCwKKwkJCQkgICAgIkZhaWxlZCB0byBzdGFydCBEUE0hIiwgcmVzdWx0ID0g dG1wX3Jlc3VsdCk7CisJfQogCi0JdG1wX3Jlc3VsdCA9IHZlZ2ExMF9lbmFibGVfcG93ZXJfY29u dGFpbm1lbnQoaHdtZ3IpOwotCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCi0JCQki RmFpbGVkIHRvIGVuYWJsZSBwb3dlciBjb250YWlubWVudCEiLAotCQkJcmVzdWx0ID0gdG1wX3Jl c3VsdCk7CisJaWYgKGh3bWdyLT5ub3RfdmYpIHsKKwkJLyogZW5hYmxlIGRpZHQsIGRvIG5vdCBh Ym9ydCBpZiBmYWlsZWQgZGlkdCAqLworCQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV9kaWR0 X2NvbmZpZyhod21ncik7CisJCVBQX0FTU0VSVCghdG1wX3Jlc3VsdCwKKwkJCSAgIkZhaWxlZCB0 byBlbmFibGUgZGlkdCBjb25maWchIik7CisJfQogCi0JdG1wX3Jlc3VsdCA9IHZlZ2ExMF9wb3dl cl9jb250cm9sX3NldF9sZXZlbChod21ncik7Ci0JUFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jl c3VsdCwKLQkJCSJGYWlsZWQgdG8gcG93ZXIgY29udHJvbCBzZXQgbGV2ZWwhIiwKLQkJCXJlc3Vs dCA9IHRtcF9yZXN1bHQpOworCWlmIChod21nci0+bm90X3ZmKSB7CisJCXRtcF9yZXN1bHQgPSB2 ZWdhMTBfZW5hYmxlX3Bvd2VyX2NvbnRhaW5tZW50KGh3bWdyKTsKKwkJUFBfQVNTRVJUX1dJVEhf Q09ERSghdG1wX3Jlc3VsdCwKKwkJCQkgICAgIkZhaWxlZCB0byBlbmFibGUgcG93ZXIgY29udGFp bm1lbnQhIiwKKwkJCQkgICAgcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisJfQogCi0JdG1wX3Jlc3Vs dCA9IHZlZ2ExMF9lbmFibGVfdWx2KGh3bWdyKTsKLQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBf cmVzdWx0LAotCQkJIkZhaWxlZCB0byBlbmFibGUgVUxWISIsCi0JCQlyZXN1bHQgPSB0bXBfcmVz dWx0KTsKKwlpZiAoaHdtZ3ItPm5vdF92ZikgeworCQl0bXBfcmVzdWx0ID0gdmVnYTEwX3Bvd2Vy X2NvbnRyb2xfc2V0X2xldmVsKGh3bWdyKTsKKwkJUFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jl c3VsdCwKKwkJCQkgICAgIkZhaWxlZCB0byBwb3dlciBjb250cm9sIHNldCBsZXZlbCEiLAorCQkJ CSAgICByZXN1bHQgPSB0bXBfcmVzdWx0KTsKKworCQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJs ZV91bHYoaHdtZ3IpOworCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBfcmVzdWx0LAorCQkJCSAg ICAiRmFpbGVkIHRvIGVuYWJsZSBVTFYhIiwKKwkJCQkgICAgcmVzdWx0ID0gdG1wX3Jlc3VsdCk7 CisJfQogCiAJcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTMwODAsMTEgKzMxMDMsMjIgQEAgc3RhdGlj IGludCB2ZWdhMTBfZ2V0X3BwX3RhYmxlX2VudHJ5X2NhbGxiYWNrX2Z1bmMoc3RydWN0IHBwX2h3 bWdyICpod21nciwKIAlwZXJmb3JtYW5jZV9sZXZlbC0+c29jX2Nsb2NrID0gc29jY2xrX2RlcF90 YWJsZS0+ZW50cmllcwogCQkJCVtzdGF0ZV9lbnRyeS0+dWNTb2NDbG9ja0luZGV4SGlnaF0udWxD bGs7CiAJaWYgKGdmeGNsa19kZXBfdGFibGUtPnVjUmV2SWQgPT0gMCkgewotCQlwZXJmb3JtYW5j ZV9sZXZlbC0+Z2Z4X2Nsb2NrID0gZ2Z4Y2xrX2RlcF90YWJsZS0+ZW50cmllcwotCQkJW3N0YXRl X2VudHJ5LT51Y0dmeENsb2NrSW5kZXhIaWdoXS51bENsazsKKwkJLyogdW5kZXIgdmVnYTEwIHBw IG9uZSB2ZiBtb2RlLCB0aGUgZ2Z4IGNsayBkcG0gbmVlZCBiZSBsb3dlcgorCQkgKiB0byBsZXZl bC00IGR1ZSB0byB0aGUgbGltaXRlZCAxMTB3LXBvd2VyCisJCSAqLworCQlpZiAoaHdtZ3ItPnBw X29uZV92ZiAmJiAoc3RhdGVfZW50cnktPnVjR2Z4Q2xvY2tJbmRleEhpZ2ggPiAwKSkKKwkJCXBl cmZvcm1hbmNlX2xldmVsLT5nZnhfY2xvY2sgPQorCQkJCWdmeGNsa19kZXBfdGFibGUtPmVudHJp ZXNbNF0udWxDbGs7CisJCWVsc2UKKwkJCXBlcmZvcm1hbmNlX2xldmVsLT5nZnhfY2xvY2sgPSBn ZnhjbGtfZGVwX3RhYmxlLT5lbnRyaWVzCisJCQkJW3N0YXRlX2VudHJ5LT51Y0dmeENsb2NrSW5k ZXhIaWdoXS51bENsazsKIAl9IGVsc2UgaWYgKGdmeGNsa19kZXBfdGFibGUtPnVjUmV2SWQgPT0g MSkgewogCQlwYXRvbV9yZWNvcmRfVjIgPSAoQVRPTV9WZWdhMTBfR0ZYQ0xLX0RlcGVuZGVuY3lf UmVjb3JkX1YyICopZ2Z4Y2xrX2RlcF90YWJsZS0+ZW50cmllczsKLQkJcGVyZm9ybWFuY2VfbGV2 ZWwtPmdmeF9jbG9jayA9IHBhdG9tX3JlY29yZF9WMltzdGF0ZV9lbnRyeS0+dWNHZnhDbG9ja0lu ZGV4SGlnaF0udWxDbGs7CisJCWlmIChod21nci0+cHBfb25lX3ZmICYmIChzdGF0ZV9lbnRyeS0+ dWNHZnhDbG9ja0luZGV4SGlnaCA+IDApKQorCQkJcGVyZm9ybWFuY2VfbGV2ZWwtPmdmeF9jbG9j ayA9IHBhdG9tX3JlY29yZF9WMls0XS51bENsazsKKwkJZWxzZQorCQkJcGVyZm9ybWFuY2VfbGV2 ZWwtPmdmeF9jbG9jayA9CisJCQkJcGF0b21fcmVjb3JkX1YyW3N0YXRlX2VudHJ5LT51Y0dmeENs b2NrSW5kZXhIaWdoXS51bENsazsKIAl9CiAKIAlwZXJmb3JtYW5jZV9sZXZlbC0+bWVtX2Nsb2Nr ID0gbWNsa19kZXBfdGFibGUtPmVudHJpZXMKQEAgLTM0OTUsNiArMzUyOSw3IEBAIHN0YXRpYyBp bnQgdmVnYTEwX3VwbG9hZF9kcG1fYm9vdHVwX2xldmVsKHN0cnVjdCBwcF9od21nciAqaHdtZ3Ip CiAJCQlzbXVtX3NlbmRfbXNnX3RvX3NtY193aXRoX3BhcmFtZXRlcihod21nciwKIAkJCQlQUFNN Q19NU0dfU2V0U29mdE1pbkdmeGNsa0J5SW5kZXgsCiAJCQkJZGF0YS0+c21jX3N0YXRlX3RhYmxl LmdmeF9ib290X2xldmVsKTsKKwogCQkJZGF0YS0+ZHBtX3RhYmxlLmdmeF90YWJsZS5kcG1fc3Rh dGUuc29mdF9taW5fbGV2ZWwgPQogCQkJCQlkYXRhLT5zbWNfc3RhdGVfdGFibGUuZ2Z4X2Jvb3Rf bGV2ZWw7CiAJCX0KQEAgLTM1MTgsNiArMzU1Myw5IEBAIHN0YXRpYyBpbnQgdmVnYTEwX3VwbG9h ZF9kcG1fYm9vdHVwX2xldmVsKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCiAJCX0KIAl9CiAKKwlp ZiAoIWh3bWdyLT5ub3RfdmYpCisJCXJldHVybiAwOworCiAJaWYgKCFkYXRhLT5yZWdpc3RyeV9k YXRhLnNvY2Nsa19kcG1fa2V5X2Rpc2FibGVkKSB7CiAJCWlmIChkYXRhLT5zbWNfc3RhdGVfdGFi bGUuc29jX2Jvb3RfbGV2ZWwgIT0KIAkJCQlkYXRhLT5kcG1fdGFibGUuc29jX3RhYmxlLmRwbV9z dGF0ZS5zb2Z0X21pbl9sZXZlbCkgewpAQCAtMzU2MCw2ICszNTk4LDkgQEAgc3RhdGljIGludCB2 ZWdhMTBfdXBsb2FkX2RwbV9tYXhfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAkJfQog CX0KIAorCWlmICghaHdtZ3ItPm5vdF92ZikKKwkJcmV0dXJuIDA7CisKIAlpZiAoIWRhdGEtPnJl Z2lzdHJ5X2RhdGEuc29jY2xrX2RwbV9rZXlfZGlzYWJsZWQpIHsKIAkJaWYgKGRhdGEtPnNtY19z dGF0ZV90YWJsZS5zb2NfbWF4X2xldmVsICE9CiAJCQlkYXRhLT5kcG1fdGFibGUuc29jX3RhYmxl LmRwbV9zdGF0ZS5zb2Z0X21heF9sZXZlbCkgewpAQCAtNDA1NCwxNSArNDA5NSwyNSBAQCBzdGF0 aWMgaW50IHZlZ2ExMF9nZXRfcHJvZmlsaW5nX2Nsa19tYXNrKHN0cnVjdCBwcF9od21nciAqaHdt Z3IsIGVudW0gYW1kX2RwbV9mbwogCX0gZWxzZSBpZiAobGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURf TEVWRUxfUFJPRklMRV9NSU5fTUNMSykgewogCQkqbWNsa19tYXNrID0gMDsKIAl9IGVsc2UgaWYg KGxldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfUEVBSykgewotCQkqc2Nsa19t YXNrID0gdGFibGVfaW5mby0+dmRkX2RlcF9vbl9zY2xrLT5jb3VudCAtIDE7CisJCS8qIHVuZGVy IHZlZ2ExMCAgcHAgb25lIHZmIG1vZGUsIHRoZSBnZnggY2xrIGRwbSBuZWVkIGJlIGxvd2VyCisJ CSAqIHRvIGxldmVsLTQgZHVlIHRvIHRoZSBsaW1pdGVkIHBvd2VyCisJCSAqLworCQlpZiAoaHdt Z3ItPnBwX29uZV92ZikKKwkJCSpzY2xrX21hc2sgPSA0OworCQllbHNlCisJCQkqc2Nsa19tYXNr ID0gdGFibGVfaW5mby0+dmRkX2RlcF9vbl9zY2xrLT5jb3VudCAtIDE7CiAJCSpzb2NfbWFzayA9 IHRhYmxlX2luZm8tPnZkZF9kZXBfb25fc29jY2xrLT5jb3VudCAtIDE7CiAJCSptY2xrX21hc2sg PSB0YWJsZV9pbmZvLT52ZGRfZGVwX29uX21jbGstPmNvdW50IC0gMTsKIAl9CisKIAlyZXR1cm4g MDsKIH0KIAogc3RhdGljIHZvaWQgdmVnYTEwX3NldF9mYW5fY29udHJvbF9tb2RlKHN0cnVjdCBw cF9od21nciAqaHdtZ3IsIHVpbnQzMl90IG1vZGUpCiB7CisJaWYgKCFod21nci0+bm90X3ZmKQor CQlyZXR1cm47CisKIAlzd2l0Y2ggKG1vZGUpIHsKIAljYXNlIEFNRF9GQU5fQ1RSTF9OT05FOgog CQl2ZWdhMTBfZmFuX2N0cmxfc2V0X2Zhbl9zcGVlZF9wZXJjZW50KGh3bWdyLCAxMDApOwpAQCAt NDE3Niw2ICs0MjI3LDkgQEAgc3RhdGljIGludCB2ZWdhMTBfZHBtX2ZvcmNlX2RwbV9sZXZlbChz dHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCQlicmVhazsKIAl9CiAKKwlpZiAoIWh3bWdyLT5ub3Rf dmYpCisJCXJldHVybiByZXQ7CisKIAlpZiAoIXJldCkgewogCQlpZiAobGV2ZWwgPT0gQU1EX0RQ TV9GT1JDRURfTEVWRUxfUFJPRklMRV9QRUFLICYmIGh3bWdyLT5kcG1fbGV2ZWwgIT0gQU1EX0RQ TV9GT1JDRURfTEVWRUxfUFJPRklMRV9QRUFLKQogCQkJdmVnYTEwX3NldF9mYW5fY29udHJvbF9t b2RlKGh3bWdyLCBBTURfRkFOX0NUUkxfTk9ORSk7CkBAIC00NDgwLDcgKzQ1MzQsNyBAQCBzdGF0 aWMgaW50IHZlZ2ExMF9wcmludF9jbG9ja19sZXZlbHMoc3RydWN0IHBwX2h3bWdyICpod21nciwK IAlzdHJ1Y3QgdmVnYTEwX3BjaWVfdGFibGUgKnBjaWVfdGFibGUgPSAmKGRhdGEtPmRwbV90YWJs ZS5wY2llX3RhYmxlKTsKIAlzdHJ1Y3QgdmVnYTEwX29kbl9jbG9ja192b2x0YWdlX2RlcGVuZGVu Y3lfdGFibGUgKnBvZG5fdmRkX2RlcCA9IE5VTEw7CiAKLQlpbnQgaSwgbm93LCBzaXplID0gMDsK KwlpbnQgaSwgbm93LCBzaXplLCBjb3VudCA9IDA7CiAKIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNl IFBQX1NDTEs6CkBAIC00NDkwLDcgKzQ1NDQsMTIgQEAgc3RhdGljIGludCB2ZWdhMTBfcHJpbnRf Y2xvY2tfbGV2ZWxzKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJCXNtdW1fc2VuZF9tc2dfdG9f c21jKGh3bWdyLCBQUFNNQ19NU0dfR2V0Q3VycmVudEdmeGNsa0luZGV4KTsKIAkJbm93ID0gc211 bV9nZXRfYXJndW1lbnQoaHdtZ3IpOwogCi0JCWZvciAoaSA9IDA7IGkgPCBzY2xrX3RhYmxlLT5j b3VudDsgaSsrKQorCQlpZiAoaHdtZ3ItPnBwX29uZV92ZiAmJgorCQkgICAgKGh3bWdyLT5kcG1f bGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9QRUFLKSkKKwkJCWNvdW50ID0g NTsKKwkJZWxzZQorCQkJY291bnQgPSBzY2xrX3RhYmxlLT5jb3VudDsKKwkJZm9yIChpID0gMDsg aSA8IGNvdW50OyBpKyspCiAJCQlzaXplICs9IHNwcmludGYoYnVmICsgc2l6ZSwgIiVkOiAldU1o eiAlc1xuIiwKIAkJCQkJaSwgc2Nsa190YWJsZS0+ZHBtX2xldmVsc1tpXS52YWx1ZSAvIDEwMCwK IAkJCQkJKGkgPT0gbm93KSA/ICIqIiA6ICIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBs YXkvaW5jL2h3bWdyLmgKaW5kZXggYWY5Nzc2NzVmZDMzLi4yZmZiNjY2Yjk3ZTYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oCkBAIC03NDEsNiArNzQxLDcgQEAg c3RydWN0IHBwX2h3bWdyIHsKIAl1aW50MzJfdCBzbXVfdmVyc2lvbjsKIAlib29sIG5vdF92ZjsK IAlib29sIHBtX2VuOworCWJvb2wgcHBfb25lX3ZmOwogCXN0cnVjdCBtdXRleCBzbXVfbG9jazsK IAogCXVpbnQzMl90IHBwX3RhYmxlX3ZlcnNpb247CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Ivc211OV9zbXVtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L3NtdW1nci9zbXU5X3NtdW1nci5jCmluZGV4IDc0MmIzZGMxZjZjYi4uYWRm YmNiZTVkMTEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVt Z3Ivc211OV9zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVt Z3Ivc211OV9zbXVtZ3IuYwpAQCAtNjEsMTUgKzYxLDI5IEBAIHN0YXRpYyB1aW50MzJfdCBzbXU5 X3dhaXRfZm9yX3Jlc3BvbnNlKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCiAJdWludDMyX3QgcmVn OwogCXVpbnQzMl90IHJldDsKIAotCXJlZyA9IFNPQzE1X1JFR19PRkZTRVQoTVAxLCAwLCBtbU1Q MV9TTU5fQzJQTVNHXzkwKTsKKwkvKiBEdWUgdG8gdGhlIEwxIHBvbGljeSBwcm9ibGVtIHVuZGVy IFNSSU9WLCB3ZSBoYXZlIHRvIHVzZQorCSAqIG1tTVAxX1NNTl9DMlBNU0dfMTAzIGFzIHRoZSBk cml2ZXIgcmVzcG9uc2UgcmVnaXN0ZXIKKwkgKi8KKwlpZiAoaHdtZ3ItPnBwX29uZV92Zikgewor CQlyZWcgPSBTT0MxNV9SRUdfT0ZGU0VUKE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR18xMDMpOwog Ci0JcmV0ID0gcGhtX3dhaXRfZm9yX3JlZ2lzdGVyX3VuZXF1YWwoaHdtZ3IsIHJlZywKLQkJCTAs IE1QMV9DMlBNU0dfOTBfX0NPTlRFTlRfTUFTSyk7CisJCXJldCA9IHBobV93YWl0X2Zvcl9yZWdp c3Rlcl91bmVxdWFsKGh3bWdyLCByZWcsCisJCQkJMCwgTVAxX0MyUE1TR18xMDNfX0NPTlRFTlRf TUFTSyk7CiAKLQlpZiAocmV0KQotCQlwcl9lcnIoIk5vIHJlc3BvbnNlIGZyb20gc211XG4iKTsK KwkJaWYgKHJldCkKKwkJCXByX2VycigiTm8gcmVzcG9uc2UgZnJvbSBzbXVcbiIpOwogCi0JcmV0 dXJuIFJSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfOTApOworCQlyZXR1cm4g UlJFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR18xMDMpOworCX0gZWxzZSB7CisJ CXJlZyA9IFNPQzE1X1JFR19PRkZTRVQoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzkwKTsKKwor CQlyZXQgPSBwaG1fd2FpdF9mb3JfcmVnaXN0ZXJfdW5lcXVhbChod21nciwgcmVnLAorCQkJCTAs IE1QMV9DMlBNU0dfOTBfX0NPTlRFTlRfTUFTSyk7CisKKwkJaWYgKHJldCkKKwkJCXByX2Vycigi Tm8gcmVzcG9uc2UgZnJvbSBzbXVcbiIpOworCQlyZXR1cm4gUlJFRzMyX1NPQzE1KE1QMSwgMCwg bW1NUDFfU01OX0MyUE1TR185MCk7CisJfQogfQogCiAvKgpAQCAtODMsNyArOTcsMTEgQEAgc3Rh dGljIGludCBzbXU5X3NlbmRfbXNnX3RvX3NtY193aXRob3V0X3dhaXRpbmcoc3RydWN0IHBwX2h3 bWdyICpod21nciwKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGh3bWdyLT5hZGV2 OwogCi0JV1JFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR182NiwgbXNnKTsKKwlp ZiAoaHdtZ3ItPnBwX29uZV92ZikgeworCQlXUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5f QzJQTVNHXzEwMSwgbXNnKTsKKwl9IGVsc2UgeworCQlXUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1Q MV9TTU5fQzJQTVNHXzY2LCBtc2cpOworCX0KIAogCXJldHVybiAwOwogfQpAQCAtMTAxLDcgKzEx OSwxMCBAQCBpbnQgc211OV9zZW5kX21zZ190b19zbWMoc3RydWN0IHBwX2h3bWdyICpod21nciwg dWludDE2X3QgbXNnKQogCiAJc211OV93YWl0X2Zvcl9yZXNwb25zZShod21ncik7CiAKLQlXUkVH MzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzkwLCAwKTsKKwlpZiAoaHdtZ3ItPnBw X29uZV92ZikKKwkJV1JFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR18xMDMsIDAp OworCWVsc2UKKwkJV1JFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR185MCwgMCk7 CiAKIAlzbXU5X3NlbmRfbXNnX3RvX3NtY193aXRob3V0X3dhaXRpbmcoaHdtZ3IsIG1zZyk7CiAK QEAgLTEyNyw5ICsxNDgsMTcgQEAgaW50IHNtdTlfc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1l dGVyKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAKIAlzbXU5X3dhaXRfZm9yX3Jlc3BvbnNlKGh3 bWdyKTsKIAotCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfOTAsIDApOwot Ci0JV1JFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR184MiwgcGFyYW1ldGVyKTsK KwkvKiBEdWUgdG8gdGhlIEwxIHBvbGljeSBwcm9ibGVtIHVuZGVyIFNSSU9WLCB3ZSBoYXZlIHRv IHVzZQorCSAqIG1tTVAxX1NNTl9DMlBNU0dfMTAxIGFzIHRoZSBkcml2ZXIgbWVzc2FnZSByZWdp c3RlciBhbmQKKwkgKiBtbU1QMV9TTU5fQzJQTVNHXzEwMiBhcyB0aGUgZHJpdmVyIHBhcmFtZXRl ciByZWdpc3Rlci4KKwkgKi8KKwlpZiAoaHdtZ3ItPnBwX29uZV92ZikgeworCQlXUkVHMzJfU09D MTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzEwMywgMCk7CisJCVdSRUczMl9TT0MxNShNUDEs IDAsIG1tTVAxX1NNTl9DMlBNU0dfMTAyLCBwYXJhbWV0ZXIpOworCX0gZWxzZSB7CisJCVdSRUcz Ml9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfOTAsIDApOworCQlXUkVHMzJfU09DMTUo TVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzgyLCBwYXJhbWV0ZXIpOworCX0KIAogCXNtdTlfc2Vu ZF9tc2dfdG9fc21jX3dpdGhvdXRfd2FpdGluZyhod21nciwgbXNnKTsKIApAQCAtMTQ0LDUgKzE3 Myw4IEBAIHVpbnQzMl90IHNtdTlfZ2V0X2FyZ3VtZW50KHN0cnVjdCBwcF9od21nciAqaHdtZ3Ip CiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBod21nci0+YWRldjsKIAotCXJldHVy biBSUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzgyKTsKKwlpZiAoaHdtZ3It PnBwX29uZV92ZikKKwkJcmV0dXJuIFJSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBN U0dfMTAyKTsKKwllbHNlCisJCXJldHVybiBSUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5f QzJQTVNHXzgyKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5 L3NtdW1nci92ZWdhMTBfc211bWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9z bXVtZ3IvdmVnYTEwX3NtdW1nci5jCmluZGV4IDBmMzgzNmZkOTY2Ni4uYmVhMzM3YTZjNWI3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdmVnYTEwX3Nt dW1nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci92ZWdhMTBf c211bWdyLmMKQEAgLTcxLDYgKzcxLDEyIEBAIHN0YXRpYyBpbnQgdmVnYTEwX2NvcHlfdGFibGVf dG9fc21jKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiB7CiAJc3RydWN0IHZlZ2ExMF9zbXVtZ3Ig KnByaXYgPSBod21nci0+c211X2JhY2tlbmQ7CiAKKwkvKiB1bmRlciBwcF9vbmVfdmYgbW9kZSwg dmJpb3Mgb3IgaHlwZXJ2aXNvciBkcml2ZXIKKwkgKiBoYXMgYWxyZWFkeSBjb3B5IHRhYmxlIHRv IHNtYyBzbyBoZXJlIG9ubHkgc2tpcCBpdAorCSAqLworCWlmICghaHdtZ3ItPm5vdF92ZiAmJiAh aHdtZ3ItPnBwX29uZV92ZikKKwkJcmV0dXJuIDA7CisKIAlQUF9BU1NFUlRfV0lUSF9DT0RFKHRh YmxlX2lkIDwgTUFYX1NNVV9UQUJMRSwKIAkJCSJJbnZhbGlkIFNNVSBUYWJsZSBJRCEiLCByZXR1 cm4gLUVJTlZBTCk7CiAJUFBfQVNTRVJUX1dJVEhfQ09ERShwcml2LT5zbXVfdGFibGVzLmVudHJ5 W3RhYmxlX2lkXS52ZXJzaW9uICE9IDAsCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vYW1kLWdmeA==