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 36FECC00454 for ; Mon, 9 Dec 2019 10:39:27 +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 17D8F2073D for ; Mon, 9 Dec 2019 10:39:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 17D8F2073D 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 C5B966E392; Mon, 9 Dec 2019 10:39:26 +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 AB0E96E392 for ; Mon, 9 Dec 2019 10:39:25 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UYHjmUR3sr5tBC7NTVvqsc8DdONrKmjIvJYhdGyaAzXt2bTnDzQvoPAlAgnOYaP5X1k1ZmIxrzMij+WVl+mczbj53orOn5ZIx97sG0JRdlrPyxcfHQjmVD/OUzDZlFfbQ5Oykf5bjKI3zKBe+qqdwWdOEaawYjtDDVx9bM+IvQwdmMIEJbNJFP8ometTi1sJ/IYiPpz8/xuRRobkFCJDoZT7EAhEw6NRBG9U5AqoSXTrRyiYe49ejjbCbIG3sObme+4W5V2YbeRxPGg/7nLSTr7qmJd9eMdss6IszhyWFQ0/o3AlCJVPvM+AY7ZlKmbfCKCeB8lu8eUR6LH+cRUTjg== 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=2/ALMxAXugd1W56MYnE4ggyaatIjnPfGoI9IqlsHfmM=; b=Mh6SrPAhGvRSSRVDYPnVyOliGZ8dUvbJZAyt7vYaPStiPGC7Qvv0H00+VjeYShEjkuoi1OoH4bk2wlXkIRZE/bJVV3QvCuc3QSUnrFU5EVHqIGm0ToygUbxa1hnNZ1ttLt+6nDXc7G9wo34htVCXE1pUBOj1HTv1tjpWf8AzWummmqei51vkZtVoPrBUiMc0Ngti9LeQcTJNQSOIfEtELwfIiPYwFeANYbYY44DugO2J9YIBegtxLS1lSKoMlDW8L00igOhjQMJ7jrZ5RLDQ0wOITTIc0RlJwvDFb9E1DSpoFzB0FutrpwU3FOofpGCm4FAcIsBui85syDbd4j7T6g== 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 CY4PR1201CA0018.namprd12.prod.outlook.com (2603:10b6:910:16::28) by DM6PR12MB4186.namprd12.prod.outlook.com (2603:10b6:5:21b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2516.13; Mon, 9 Dec 2019 10:39:23 +0000 Received: from DM6NAM11FT016.eop-nam11.prod.protection.outlook.com (2a01:111:f400:7eaa::207) by CY4PR1201CA0018.outlook.office365.com (2603:10b6:910:16::28) 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 10:39:23 +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 DM6NAM11FT016.mail.protection.outlook.com (10.13.173.139) 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 10:39:22 +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 04:39:22 -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 04:39:22 -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 04:39:20 -0600 From: Yintian Tao To: , Subject: [PATCH] drm/amd/powerplay: enable pp one vf mode for vega10 Date: Mon, 9 Dec 2019 18:39:14 +0800 Message-ID: <20191209103914.29503-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)(136003)(396003)(376002)(346002)(39860400002)(428003)(199004)(189003)(6636002)(30864003)(336012)(426003)(26005)(1076003)(81156014)(8676002)(70586007)(316002)(70206006)(8936002)(54906003)(186003)(36756003)(110136005)(5660300002)(81166006)(2616005)(356004)(6666004)(478600001)(2906002)(305945005)(7696005)(4326008)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR12MB4186; H:SATLEXMB01.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoDomainNonexistent; A:1; MX:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0953f39c-9643-480c-f0fc-08d77c940e1a X-MS-TrafficTypeDiagnostic: DM6PR12MB4186: 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: CE6A3uWoQ9veO3vKiHaOaJYCMsoGpRmgzUzonHwuTidgIy1rEBTfNd6Rt4dlVstTcxM/cH5Zwhr9ky57SVUhJ5DzriliweplgdZNx3uMsIQClz30BgGP5b2ZTrHe+jemM6/APArp990RYv2aG+CBiVBCfw5EGVgMf/j582xO7EnDLDfFdwBNwp3GmOsOZyiT3jsYd4FP9QTR6X1Y/7AjdaUxpMaMXSeBt8CCCprmjhtqS4sqziw0NBlR/ZTKzA9DM+XBvrzhV/reLDea+2Fz4saUXqQSRZ+X+CtFXPJ6IxSEZS6NG64FiMR38WhWvJP+51unT3hm8LDskOjxLNXtox15pBpRxmdQPe/NCXdjiKHbF0anpQHx+Yu9DWVAf+dA7+G3cjfRUpqjPU2l9IRo6E19Pqj8iky9la6tpTIBqrZWF4r7Hnv2mXLeP/l+whEb X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2019 10:39:22.9034 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0953f39c-9643-480c-f0fc-08d77c940e1a 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: DM6PR12MB4186 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=2/ALMxAXugd1W56MYnE4ggyaatIjnPfGoI9IqlsHfmM=; b=EXHMvPUpaho53V4aq38QHMul33zr7OyLy4VOkKsCNwkX1u0xPVdygDFnEWm4C4DUWG9xY/XzgStOvXxBSdufblDI76cYB11lckbKOd0PJRrX5HPEQ4/5n74zPu08HUMxkXFpHb5UQQVc8NY6z7/755W+YblRxSCeNJHZHfa0eyU= 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 MjogcmVtb3ZlIG1vZHVsZSBwYXJhbWV0ZXIgcHBfb25lX3ZmCgpTaWduZWQtb2ZmLWJ5OiBZaW50 aWFuIFRhbyA8eXR0YW9AYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZGV2aWNlLmMgICAgfCAgMTMgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9rbXMuYyAgICAgICB8ICAgNCAtCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfcG0uYyAgICAgICAgfCAxMjEgKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92aXJ0LmMgICAgICB8ICA1MSAtLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmggICAgICB8ICAxNCArLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvbXhncHVfYWkuYyAgICAgICAgIHwgIDc4IC0tLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuaCAgICAgICAgIHwgICA0IC0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3NvYzE1LmMgICAgICAgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvYW1kX3Bvd2VycGxheS5jIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9hbWRncHVfc211LmMgICAgfCAgMjQgKy0tCiAuLi4vZHJtL2FtZC9wb3dl cnBsYXkvaHdtZ3IvaGFyZHdhcmVtYW5hZ2VyLmMgfCAgMTUgKy0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdyLmMgICB8ICAgNyArCiBkcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9od21nci9wcF9wc20uYyAgfCAgMzAgKystLQogLi4uL2RybS9hbWQvcG93ZXJw bGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jICAgIHwgMTU3ICsrKysrKysrKysrKy0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmggICAgIHwgICAxICsKIC4uLi9k cm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Ivc211OV9zbXVtZ3IuYyAgICB8ICA1NSArKysrLS0KIC4u Li9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdmVnYTEwX3NtdW1nci5jICB8ICAgNiArCiAxNyBm aWxlcyBjaGFuZ2VkLCAyODAgaW5zZXJ0aW9ucygrKSwgMzEyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwppbmRleCBiOWNhN2U3MjhkM2Uu LjMwZWI0MjU5M2EyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2RldmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZp Y2UuYwpAQCAtMTg4MCw2ICsxODgwLDkgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX2lwX2lu aXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCX0KIAl9CiAKKwlpZiAoYW1kZ3B1X3Ny aW92X3ZmKGFkZXYpKQorCQlhbWRncHVfdmlydF9pbml0X2RhdGFfZXhjaGFuZ2UoYWRldik7CisK IAlyID0gYW1kZ3B1X2liX3Bvb2xfaW5pdChhZGV2KTsKIAlpZiAocikgewogCQlkZXZfZXJyKGFk ZXYtPmRldiwgIklCIGluaXRpYWxpemF0aW9uIGZhaWxlZCAoJWQpLlxuIiwgcik7CkBAIC0xOTIy LDggKzE5MjUsNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfaXBfaW5pdChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAogaW5pdF9mYWlsZWQ6CiAJaWYgKGFtZGdwdV9zcmlvdl92Zihh ZGV2KSkgewotCQlpZiAoIXIpCi0JCQlhbWRncHVfdmlydF9pbml0X2RhdGFfZXhjaGFuZ2UoYWRl dik7CiAJCWFtZGdwdV92aXJ0X3JlbGVhc2VfZnVsbF9ncHUoYWRldiwgdHJ1ZSk7CiAJfQogCkBA IC0yODE5LDcgKzI4MjAsNiBAQCBpbnQgYW1kZ3B1X2RldmljZV9pbml0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAogCW11dGV4X2luaXQoJmFkZXYtPnZpcnQudmZfZXJyb3JzLmxvY2spOwog CWhhc2hfaW5pdChhZGV2LT5tbl9oYXNoKTsKIAltdXRleF9pbml0KCZhZGV2LT5sb2NrX3Jlc2V0 KTsKLQltdXRleF9pbml0KCZhZGV2LT52aXJ0LmRwbV9tdXRleCk7CiAJbXV0ZXhfaW5pdCgmYWRl di0+cHNwLm11dGV4KTsKIAogCXIgPSBhbWRncHVfZGV2aWNlX2NoZWNrX2FyZ3VtZW50cyhhZGV2 KTsKQEAgLTMwNDAsOSArMzA0MCw2IEBAIGludCBhbWRncHVfZGV2aWNlX2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCiAKIAlhbWRncHVfZmJkZXZfaW5pdChhZGV2KTsKIAotCWlmIChh bWRncHVfc3Jpb3ZfdmYoYWRldikgJiYgYW1kZ2ltX2lzX2h3cGVyZihhZGV2KSkKLQkJYW1kZ3B1 X3BtX3ZpcnRfc3lzZnNfaW5pdChhZGV2KTsKLQogCXIgPSBhbWRncHVfcG1fc3lzZnNfaW5pdChh ZGV2KTsKIAlpZiAocikgewogCQlhZGV2LT5wbV9zeXNmc19lbiA9IGZhbHNlOwpAQCAtMzE4Nyw4 ICszMTg0LDYgQEAgdm9pZCBhbWRncHVfZGV2aWNlX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCiAJaW91bm1hcChhZGV2LT5ybW1pbyk7CiAJYWRldi0+cm1taW8gPSBOVUxMOwogCWFt ZGdwdV9kZXZpY2VfZG9vcmJlbGxfZmluaShhZGV2KTsKLQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFk ZXYpICYmIGFtZGdpbV9pc19od3BlcmYoYWRldikpCi0JCWFtZGdwdV9wbV92aXJ0X3N5c2ZzX2Zp bmkoYWRldik7CiAKIAlhbWRncHVfZGVidWdmc19yZWdzX2NsZWFudXAoYWRldik7CiAJZGV2aWNl X3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BjaWVfcmVwbGF5X2NvdW50KTsKQEAg LTM2NjksNiArMzY2NCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9yZXNldF9zcmlvdihz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlpZiAocikKIAkJZ290byBlcnJvcjsKIAorCWFt ZGdwdV92aXJ0X2luaXRfZGF0YV9leGNoYW5nZShhZGV2KTsKIAkvKiB3ZSBuZWVkIHJlY292ZXIg Z2FydCBwcmlvciB0byBydW4gU01DL0NQL1NETUEgcmVzdW1lICovCiAJYW1kZ3B1X2d0dF9tZ3Jf cmVjb3ZlcigmYWRldi0+bW1hbi5iZGV2Lm1hbltUVE1fUExfVFRdKTsKIApAQCAtMzY4Niw3ICsz NjgyLDYgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3Jlc2V0X3NyaW92KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCWFtZGdwdV9hbWRrZmRfcG9zdF9yZXNldChhZGV2KTsKIAogZXJy b3I6Ci0JYW1kZ3B1X3ZpcnRfaW5pdF9kYXRhX2V4Y2hhbmdlKGFkZXYpOwogCWFtZGdwdV92aXJ0 X3JlbGVhc2VfZnVsbF9ncHUoYWRldiwgdHJ1ZSk7CiAJaWYgKCFyICYmIGFkZXYtPnZpcnQuZ2lt X2ZlYXR1cmUgJiBBTURHSU1fRkVBVFVSRV9HSU1fRkxSX1ZSQU1MT1NUKSB7CiAJCWFtZGdwdV9p bmNfdnJhbV9sb3N0KGFkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5j CmluZGV4IDVlYzE0MTVkMTc1NS4uM2EwZWE5MDk2NDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2ttcy5jCkBAIC03MDMsMTAgKzcwMyw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X2luZm9faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRy bV9maWxlCiAJCWlmIChhZGV2LT5wbS5kcG1fZW5hYmxlZCkgewogCQkJZGV2X2luZm8ubWF4X2Vu Z2luZV9jbG9jayA9IGFtZGdwdV9kcG1fZ2V0X3NjbGsoYWRldiwgZmFsc2UpICogMTA7CiAJCQlk ZXZfaW5mby5tYXhfbWVtb3J5X2Nsb2NrID0gYW1kZ3B1X2RwbV9nZXRfbWNsayhhZGV2LCBmYWxz ZSkgKiAxMDsKLQkJfSBlbHNlIGlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYgYW1kZ2ltX2lz X2h3cGVyZihhZGV2KSAmJgotCQkJICAgYWRldi0+dmlydC5vcHMtPmdldF9wcF9jbGspIHsKLQkJ CWRldl9pbmZvLm1heF9lbmdpbmVfY2xvY2sgPSBhbWRncHVfdmlydF9nZXRfc2NsayhhZGV2LCBm YWxzZSkgKiAxMDsKLQkJCWRldl9pbmZvLm1heF9tZW1vcnlfY2xvY2sgPSBhbWRncHVfdmlydF9n ZXRfbWNsayhhZGV2LCBmYWxzZSkgKiAxMDsKIAkJfSBlbHNlIHsKIAkJCWRldl9pbmZvLm1heF9l bmdpbmVfY2xvY2sgPSBhZGV2LT5jbG9jay5kZWZhdWx0X3NjbGsgKiAxMDsKIAkJCWRldl9pbmZv Lm1heF9tZW1vcnlfY2xvY2sgPSBhZGV2LT5jbG9jay5kZWZhdWx0X21jbGsgKiAxMDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMKaW5kZXggMGM3MzI0YmMzMWE3Li5iOGE0MmVi YjJmNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCkBAIC0xNjAsNyAr MTYwLDggQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2dldF9kcG1fc3RhdGUoc3RydWN0IGRldmlj ZSAqZGV2LAogCWVudW0gYW1kX3BtX3N0YXRlX3R5cGUgcG07CiAKIAlpZiAoaXNfc3VwcG9ydF9z d19zbXUoYWRldikpIHsKLQkJaWYgKGFkZXYtPnNtdS5wcHRfZnVuY3MtPmdldF9jdXJyZW50X3Bv d2VyX3N0YXRlKQorCQlpZiAoYWRldi0+c211LnBwdF9mdW5jcyAmJgorCQkgICAgYWRldi0+c211 LnBwdF9mdW5jcy0+Z2V0X2N1cnJlbnRfcG93ZXJfc3RhdGUpCiAJCQlwbSA9IHNtdV9nZXRfY3Vy cmVudF9wb3dlcl9zdGF0ZSgmYWRldi0+c211KTsKIAkJZWxzZQogCQkJcG0gPSBhZGV2LT5wbS5k cG0udXNlcl9zdGF0ZTsKQEAgLTI4Myw3ICsyODQsNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVf Z2V0X2RwbV9mb3JjZWRfcGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0IGRldmljZSAqZGV2LAogCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CiAJZW51bSBhbWRf ZHBtX2ZvcmNlZF9sZXZlbCBsZXZlbCA9IDB4ZmY7CiAKLQlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFk ZXYpKQorCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYgIWFtZGdpbV9pc19wcF9vbmVfdmYo YWRldikpCiAJCXJldHVybiAwOwogCiAJaWYgKChhZGV2LT5mbGFncyAmIEFNRF9JU19QWCkgJiYK QEAgLTMyMCw2ICszMjEsOSBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X2RwbV9mb3JjZWRf cGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0IGRldmljZSAqZGV2LAogCWVudW0gYW1kX2RwbV9mb3Jj ZWRfbGV2ZWwgY3VycmVudF9sZXZlbCA9IDB4ZmY7CiAJaW50IHJldCA9IDA7CiAKKwlpZiAoYW1k Z3B1X3NyaW92X3ZmKGFkZXYpICYmICFhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYpKQorCQlyZXR1 cm4gLUVJTlZBTDsKKwogCS8qIENhbid0IGZvcmNlIHBlcmZvcm1hbmNlIGxldmVsIHdoZW4gdGhl IGNhcmQgaXMgb2ZmICovCiAJaWYgICgoYWRldi0+ZmxhZ3MgJiBBTURfSVNfUFgpICYmCiAJICAg ICAoZGRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlICE9IERSTV9TV0lUQ0hfUE9XRVJfT04pKQpAQCAt MzQ4LDE5ICszNTIsNiBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X2RwbV9mb3JjZWRfcGVy Zm9ybWFuY2VfbGV2ZWwoc3RydWN0IGRldmljZSAqZGV2LAogCQlnb3RvIGZhaWw7CiAJfQogCi0J LyogaGFuZGxlIHNyaW92IGNhc2UgaGVyZSAqLwotCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikp IHsKLQkJaWYgKGFtZGdpbV9pc19od3BlcmYoYWRldikgJiYKLQkJICAgIGFkZXYtPnZpcnQub3Bz LT5mb3JjZV9kcG1fbGV2ZWwpIHsKLQkJCW11dGV4X2xvY2soJmFkZXYtPnBtLm11dGV4KTsKLQkJ CWFkZXYtPnZpcnQub3BzLT5mb3JjZV9kcG1fbGV2ZWwoYWRldiwgbGV2ZWwpOwotCQkJbXV0ZXhf dW5sb2NrKCZhZGV2LT5wbS5tdXRleCk7Ci0JCQlyZXR1cm4gY291bnQ7Ci0JCX0gZWxzZSB7Ci0J CQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCX0KLQogCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2 KSkKIAkJY3VycmVudF9sZXZlbCA9IHNtdV9nZXRfcGVyZm9ybWFuY2VfbGV2ZWwoJmFkZXYtPnNt dSk7CiAJZWxzZSBpZiAoYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5nZXRfcGVyZm9ybWFuY2Vf bGV2ZWwpCkBAIC02NTQsNiArNjQ1LDkgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9wcF9v ZF9jbGtfdm9sdGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJY29uc3QgY2hhciBkZWxpbWl0ZXJb M10gPSB7JyAnLCAnXG4nLCAnXDAnfTsKIAl1aW50MzJfdCB0eXBlOwogCisJaWYgKGFtZGdwdV9z cmlvdl92ZihhZGV2KSAmJiAhYW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKKwkJcmV0dXJuIDA7 CisKIAlpZiAoY291bnQgPiAxMjcpCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC04NDEsOSArODM1 LDEwIEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfcHBfZHBtX3NjbGsoc3RydWN0IGRldmlj ZSAqZGV2LAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7 CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKIAotCWlm IChhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYgYW1kZ2ltX2lzX2h3cGVyZihhZGV2KSAmJgotCSAg ICBhZGV2LT52aXJ0Lm9wcy0+Z2V0X3BwX2NsaykKLQkJcmV0dXJuIGFkZXYtPnZpcnQub3BzLT5n ZXRfcHBfY2xrKGFkZXYsIFBQX1NDTEssIGJ1Zik7CisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2 KSkgeworCQlpZiAoIWFtZGdpbV9pc19wcF9vbmVfdmYoYWRldikpCisJCQlyZXR1cm4gLUVJTlZB TDsKKwl9CiAKIAlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpCiAJCXJldHVybiBzbXVfcHJp bnRfY2xrX2xldmVscygmYWRldi0+c211LCBTTVVfU0NMSywgYnVmKTsKQEAgLTg3OCw3ICs4NzMs NiBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfcmVhZF9tYXNrKGNvbnN0IGNoYXIgKmJ1Ziwgc2l6 ZV90IGNvdW50LCB1aW50MzJfdCAqbWFzaykKIAl3aGlsZSAodG1wWzBdKSB7CiAJCXN1Yl9zdHIg PSBzdHJzZXAoJnRtcCwgZGVsaW1pdGVyKTsKIAkJaWYgKHN0cmxlbihzdWJfc3RyKSkgewotCQkJ cmV0ID0ga3N0cnRvbChzdWJfc3RyLCAwLCAmbGV2ZWwpOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1 cm4gLUVJTlZBTDsKIAkJCSptYXNrIHw9IDEgPDwgbGV2ZWw7CkBAIC04OTksOCArODkzLDEwIEBA IHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfcHBfZHBtX3NjbGsoc3RydWN0IGRldmljZSAqZGV2 LAogCWludCByZXQ7CiAJdWludDMyX3QgbWFzayA9IDA7CiAKLQlpZiAoYW1kZ3B1X3NyaW92X3Zm KGFkZXYpKQotCQlyZXR1cm4gMDsKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CisJCWlm ICghYW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKKwkJCXJldHVybiAtRUlOVkFMOworCX0KIAog CXJldCA9IGFtZGdwdV9yZWFkX21hc2soYnVmLCBjb3VudCwgJm1hc2spOwogCWlmIChyZXQpCkBA IC05MjQsOSArOTIwLDEwIEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfcHBfZHBtX21jbGso c3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9k cnZkYXRhKGRldik7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2LT5kZXZfcHJp dmF0ZTsKIAotCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYgYW1kZ2ltX2lzX2h3cGVyZihh ZGV2KSAmJgotCSAgICBhZGV2LT52aXJ0Lm9wcy0+Z2V0X3BwX2NsaykKLQkJcmV0dXJuIGFkZXYt PnZpcnQub3BzLT5nZXRfcHBfY2xrKGFkZXYsIFBQX01DTEssIGJ1Zik7CisJaWYgKGFtZGdwdV9z cmlvdl92ZihhZGV2KSkgeworCQlpZiAoIWFtZGdpbV9pc19wcF9vbmVfdmYoYWRldikpCisJCQly ZXR1cm4gLUVJTlZBTDsKKwl9CiAKIAlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpCiAJCXJl dHVybiBzbXVfcHJpbnRfY2xrX2xldmVscygmYWRldi0+c211LCBTTVVfTUNMSywgYnVmKTsKQEAg LTk0Niw4ICs5NDMsMTEgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9wcF9kcG1fbWNsayhz dHJ1Y3QgZGV2aWNlICpkZXYsCiAJaW50IHJldDsKIAl1aW50MzJfdCBtYXNrID0gMDsKIAotCWlm IChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCi0JCXJldHVybiAwOworCWlmIChhbWRncHVfc3Jpb3Zf dmYoYWRldikpIHsKKwkJaWYgKCFhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYpKQorCQkJcmV0dXJu IC1FSU5WQUw7CisKKwl9CiAKIAlyZXQgPSBhbWRncHVfcmVhZF9tYXNrKGJ1ZiwgY291bnQsICZt YXNrKTsKIAlpZiAocmV0KQpAQCAtOTcxLDYgKzk3MSwxMSBAQCBzdGF0aWMgc3NpemVfdCBhbWRn cHVfZ2V0X3BwX2RwbV9zb2NjbGsoc3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBkcm1fZGV2 aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKIAorCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikp IHsKKwkJaWYgKCFhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYpKQorCQkJcmV0dXJuIC1FSU5WQUw7 CisJfQorCiAJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQogCQlyZXR1cm4gc211X3ByaW50 X2Nsa19sZXZlbHMoJmFkZXYtPnNtdSwgU01VX1NPQ0NMSywgYnVmKTsKIAllbHNlIGlmIChhZGV2 LT5wb3dlcnBsYXkucHBfZnVuY3MtPnByaW50X2Nsb2NrX2xldmVscykKQEAgLTk4OSw2ICs5OTQs OSBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X3BwX2RwbV9zb2NjbGsoc3RydWN0IGRldmlj ZSAqZGV2LAogCWludCByZXQ7CiAJdWludDMyX3QgbWFzayA9IDA7CiAKKwlpZiAoYW1kZ3B1X3Ny aW92X3ZmKGFkZXYpKQorCQlyZXR1cm4gMDsKKwogCXJldCA9IGFtZGdwdV9yZWFkX21hc2soYnVm LCBjb3VudCwgJm1hc2spOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0xMDI5LDYgKzEw MzcsMTEgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9wcF9kcG1fZmNsayhzdHJ1Y3QgZGV2 aWNlICpkZXYsCiAJaW50IHJldDsKIAl1aW50MzJfdCBtYXNrID0gMDsKIAorCWlmIChhbWRncHVf c3Jpb3ZfdmYoYWRldikpIHsKKwkJaWYgKCFhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYpKQorCQkJ cmV0dXJuIC1FSU5WQUw7CisJfQorCiAJcmV0ID0gYW1kZ3B1X3JlYWRfbWFzayhidWYsIGNvdW50 LCAmbWFzayk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTEwNTEsNiArMTA2NCw5IEBA IHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfcHBfZHBtX2RjZWZjbGsoc3RydWN0IGRldmljZSAq ZGV2LAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKIAorCWlmIChh bWRncHVfc3Jpb3ZfdmYoYWRldikpCisJCXJldHVybiAwOworCiAJaWYgKGlzX3N1cHBvcnRfc3df c211KGFkZXYpKQogCQlyZXR1cm4gc211X3ByaW50X2Nsa19sZXZlbHMoJmFkZXYtPnNtdSwgU01V X0RDRUZDTEssIGJ1Zik7CiAJZWxzZSBpZiAoYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5wcmlu dF9jbG9ja19sZXZlbHMpCkBAIC0xMDY5LDYgKzEwODUsOSBAQCBzdGF0aWMgc3NpemVfdCBhbWRn cHVfc2V0X3BwX2RwbV9kY2VmY2xrKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlpbnQgcmV0OwogCXVp bnQzMl90IG1hc2sgPSAwOwogCisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkKKwkJcmV0dXJu IDA7CisKIAlyZXQgPSBhbWRncHVfcmVhZF9tYXNrKGJ1ZiwgY291bnQsICZtYXNrKTsKIAlpZiAo cmV0KQogCQlyZXR1cm4gcmV0OwpAQCAtMTA5MSw2ICsxMTEwLDkgQEAgc3RhdGljIHNzaXplX3Qg YW1kZ3B1X2dldF9wcF9kcG1fcGNpZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9k ZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRlOwogCisJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2 KSkKKwkJcmV0dXJuIDA7CisKIAlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpCiAJCXJldHVy biBzbXVfcHJpbnRfY2xrX2xldmVscygmYWRldi0+c211LCBTTVVfUENJRSwgYnVmKTsKIAllbHNl IGlmIChhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnByaW50X2Nsb2NrX2xldmVscykKQEAgLTEx MDksNiArMTEzMSw5IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfcHBfZHBtX3BjaWUoc3Ry dWN0IGRldmljZSAqZGV2LAogCWludCByZXQ7CiAJdWludDMyX3QgbWFzayA9IDA7CiAKKwlpZiAo YW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQorCQlyZXR1cm4gMDsKKwogCXJldCA9IGFtZGdwdV9yZWFk X21hc2soYnVmLCBjb3VudCwgJm1hc2spOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0x MTUwLDYgKzExNzUsOSBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfc2V0X3BwX3NjbGtfb2Qoc3Ry dWN0IGRldmljZSAqZGV2LAogCWludCByZXQ7CiAJbG9uZyBpbnQgdmFsdWU7CiAKKwlpZiAoYW1k Z3B1X3NyaW92X3ZmKGFkZXYpICYmICFhbWRnaW1faXNfcHBfb25lX3ZmKGFkZXYpKQorCQlyZXR1 cm4gMDsKKwogCXJldCA9IGtzdHJ0b2woYnVmLCAwLCAmdmFsdWUpOwogCiAJaWYgKHJldCkgewpA QCAtMTIwMSw2ICsxMjI5LDkgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9wcF9tY2xrX29k KHN0cnVjdCBkZXZpY2UgKmRldiwKIAlpbnQgcmV0OwogCWxvbmcgaW50IHZhbHVlOwogCisJaWYg KGFtZGdwdV9zcmlvdl92ZihhZGV2KSAmJiAhYW1kZ2ltX2lzX3BwX29uZV92ZihhZGV2KSkKKwkJ cmV0dXJuIDA7CisKIAlyZXQgPSBrc3RydG9sKGJ1ZiwgMCwgJnZhbHVlKTsKIAogCWlmIChyZXQp IHsKQEAgLTI3MzAsNDQgKzI3NjEsNiBAQCB2b2lkIGFtZGdwdV9kcG1fZW5hYmxlX2pwZWcoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgZW5hYmxlKQogCX0KIH0KIAotaW50IGFtZGdw dV9wbV92aXJ0X3N5c2ZzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCi17Ci0JaW50 IHJldCA9IDA7Ci0KLQlpZiAoIShhbWRncHVfc3Jpb3ZfdmYoYWRldikgJiYgYW1kZ2ltX2lzX2h3 cGVyZihhZGV2KSkpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUo YWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBfZHBtX3NjbGspOwotCWlmIChyZXQpIHsKLQkJRFJNX0VS Uk9SKCJmYWlsZWQgdG8gY3JlYXRlIGRldmljZSBmaWxlIHBwX2RwbV9zY2xrXG4iKTsKLQkJcmV0 dXJuIHJldDsKLQl9Ci0KLQlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2 X2F0dHJfcHBfZHBtX21jbGspOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8g Y3JlYXRlIGRldmljZSBmaWxlIHBwX2RwbV9tY2xrXG4iKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0K LQlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcG93ZXJfZHBt X2ZvcmNlX3BlcmZvcm1hbmNlX2xldmVsKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiZmFp bGVkIHRvIGNyZWF0ZSBkZXZpY2UgZmlsZSBmb3IgZHBtIHN0YXRlXG4iKTsKLQkJcmV0dXJuIHJl dDsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIGFtZGdwdV9wbV92aXJ0X3N5c2ZzX2Zp bmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCi17Ci0JaWYgKCEoYW1kZ3B1X3NyaW92X3Zm KGFkZXYpICYmIGFtZGdpbV9pc19od3BlcmYoYWRldikpKQotCQlyZXR1cm47Ci0KLQlkZXZpY2Vf cmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcG93ZXJfZHBtX2ZvcmNlX3BlcmZvcm1h bmNlX2xldmVsKTsKLQlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcHBf ZHBtX3NjbGspOwotCWRldmljZV9yZW1vdmVfZmlsZShhZGV2LT5kZXYsICZkZXZfYXR0cl9wcF9k cG1fbWNsayk7Ci19Ci0KIGludCBhbWRncHVfcG1fbG9hZF9zbXVfZmlybXdhcmUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90ICpzbXVfdmVyc2lvbikKIHsKIAlpbnQgcjsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jCmluZGV4IGUzMmFlOTA2ZDc5Ny4u MTAzMDMzZjk2ZjEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdmlydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMK QEAgLTM3OSw1NCArMzc5LDMgQEAgdm9pZCBhbWRncHVfdmlydF9pbml0X2RhdGFfZXhjaGFuZ2Uo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCX0KIAl9CiB9Ci0KLXN0YXRpYyB1aW50MzJf dCBwYXJzZV9jbGsoY2hhciAqYnVmLCBib29sIG1pbikKLXsKLSAgICAgICAgY2hhciAqcHRyID0g YnVmOwotICAgICAgICB1aW50MzJfdCBjbGsgPSAwOwotCi0gICAgICAgIGRvIHsKLSAgICAgICAg ICAgICAgICBwdHIgPSBzdHJjaHIocHRyLCAnOicpOwotICAgICAgICAgICAgICAgIGlmICghcHRy KQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgcHRyKz0y OwotCQlpZiAoa3N0cnRvdTMyKHB0ciwgMTAsICZjbGspKQotCQkJcmV0dXJuIDA7Ci0gICAgICAg IH0gd2hpbGUgKCFtaW4pOwotCi0gICAgICAgIHJldHVybiBjbGsgKiAxMDA7Ci19Ci0KLXVpbnQz Ml90IGFtZGdwdV92aXJ0X2dldF9zY2xrKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29s IGxvd2VzdCkKLXsKLQljaGFyICpidWYgPSBOVUxMOwotCXVpbnQzMl90IGNsayA9IDA7Ci0KLQli dWYgPSBremFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWYpCi0JCXJldHVy biAtRU5PTUVNOwotCi0JYWRldi0+dmlydC5vcHMtPmdldF9wcF9jbGsoYWRldiwgUFBfU0NMSywg YnVmKTsKLQljbGsgPSBwYXJzZV9jbGsoYnVmLCBsb3dlc3QpOwotCi0Ja2ZyZWUoYnVmKTsKLQot CXJldHVybiBjbGs7Ci19Ci0KLXVpbnQzMl90IGFtZGdwdV92aXJ0X2dldF9tY2xrKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCBib29sIGxvd2VzdCkKLXsKLQljaGFyICpidWYgPSBOVUxMOwot CXVpbnQzMl90IGNsayA9IDA7Ci0KLQlidWYgPSBremFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5F TCk7Ci0JaWYgKCFidWYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JYWRldi0+dmlydC5vcHMtPmdl dF9wcF9jbGsoYWRldiwgUFBfTUNMSywgYnVmKTsKLQljbGsgPSBwYXJzZV9jbGsoYnVmLCBsb3dl c3QpOwotCi0Ja2ZyZWUoYnVmKTsKLQotCXJldHVybiBjbGs7Ci19CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaAppbmRleCBiMGIyYmRjNzUwZGYuLjYzZGIyYTZmMDA4ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oCkBAIC01Nyw4ICs1Nyw2 IEBAIHN0cnVjdCBhbWRncHVfdmlydF9vcHMgewogCWludCAoKnJlc2V0X2dwdSkoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpOwogCWludCAoKndhaXRfcmVzZXQpKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KTsKIAl2b2lkICgqdHJhbnNfbXNnKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwgdTMyIHJlcSwgdTMyIGRhdGExLCB1MzIgZGF0YTIsIHUzMiBkYXRhMyk7Ci0JaW50ICgqZ2V0 X3BwX2Nsaykoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiB0eXBlLCBjaGFyICpidWYp OwotCWludCAoKmZvcmNlX2RwbV9sZXZlbCkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUz MiBsZXZlbCk7CiB9OwogCiAvKgpAQCAtODUsOCArODMsOCBAQCBlbnVtIEFNREdJTV9GRUFUVVJF X0ZMQUcgewogCUFNREdJTV9GRUFUVVJFX0dJTV9MT0FEX1VDT0RFUyAgID0gMHgyLAogCS8qIFZS QU0gTE9TVCBieSBHSU0gKi8KIAlBTURHSU1fRkVBVFVSRV9HSU1fRkxSX1ZSQU1MT1NUID0gMHg0 LAotCS8qIEhXIFBFUkYgU0lNIGluIEdJTSAqLwotCUFNREdJTV9GRUFUVVJFX0hXX1BFUkZfU0lN VUxBVElPTiA9ICgxIDw8IDMpLAorCS8qIFBQIE9ORSBWRiBNT0RFIGluIEdJTSAqLworCUFNREdJ TV9GRUFUVVJFX1BQX09ORV9WRiA9ICgxIDw8IDQpLAogfTsKIAogc3RydWN0IGFtZF9zcmlvdl9t c2dfcGYydmZfaW5mb19oZWFkZXIgewpAQCAtMjU3LDggKzI1NSw2IEBAIHN0cnVjdCBhbWRncHVf dmlydCB7CiAJc3RydWN0IGFtZGdwdV92Zl9lcnJvcl9idWZmZXIgICB2Zl9lcnJvcnM7CiAJc3Ry dWN0IGFtZGdwdV92aXJ0X2Z3X3Jlc2VydmUJZndfcmVzZXJ2ZTsKIAl1aW50MzJfdCBnaW1fZmVh dHVyZTsKLQkvKiBwcm90ZWN0IERQTSBldmVudHMgdG8gR0lNICovCi0Jc3RydWN0IG11dGV4ICAg ICAgICAgICAgICAgICAgICBkcG1fbXV0ZXg7CiAJdWludDMyX3QgcmVnX2FjY2Vzc19tb2RlOwog fTsKIApAQCAtMjg2LDggKzI4Miw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc192aXJ0dWFsX21h Y2hpbmUodm9pZCkKICNlbmRpZgogfQogCi0jZGVmaW5lIGFtZGdpbV9pc19od3BlcmYoYWRldikg XAotCSgoYWRldiktPnZpcnQuZ2ltX2ZlYXR1cmUgJiBBTURHSU1fRkVBVFVSRV9IV19QRVJGX1NJ TVVMQVRJT04pCisjZGVmaW5lIGFtZGdpbV9pc19wcF9vbmVfdmYoYWRldikgXAorCSgoYWRldikt PnZpcnQuZ2ltX2ZlYXR1cmUgJiBBTURHSU1fRkVBVFVSRV9QUF9PTkVfVkYpCiAKIGJvb2wgYW1k Z3B1X3ZpcnRfbW1pb19ibG9ja2VkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHZvaWQg YW1kZ3B1X3ZpcnRfaW5pdF9zZXR0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKQEAg LTMwNiw2ICszMDIsNCBAQCBpbnQgYW1kZ3B1X3ZpcnRfZndfcmVzZXJ2ZV9nZXRfY2hlY2tzdW0o dm9pZCAqb2JqLCB1bnNpZ25lZCBsb25nIG9ial9zaXplLAogCQkJCQl1bnNpZ25lZCBpbnQga2V5 LAogCQkJCQl1bnNpZ25lZCBpbnQgY2hrc3VtKTsKIHZvaWQgYW1kZ3B1X3ZpcnRfaW5pdF9kYXRh X2V4Y2hhbmdlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKLXVpbnQzMl90IGFtZGdwdV92 aXJ0X2dldF9zY2xrKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGxvd2VzdCk7Ci11 aW50MzJfdCBhbWRncHVfdmlydF9nZXRfbWNsayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg Ym9vbCBsb3dlc3QpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9teGdwdV9haS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuYwpp bmRleCBjYzViZjU5NWY5YjEuLjQzMzA1YWZhM2Q2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9teGdwdV9haS5jCkBAIC0xNTgsODIgKzE1OCw2IEBAIHN0YXRpYyB2b2lkIHhncHVfYWlfbWFp bGJveF90cmFuc19tc2cgKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXhncHVfYWlfbWFp bGJveF9zZXRfdmFsaWQoYWRldiwgZmFsc2UpOwogfQogCi1zdGF0aWMgaW50IHhncHVfYWlfZ2V0 X3BwX2NsayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHR5cGUsIGNoYXIgKmJ1ZikK LXsKLSAgICAgICAgaW50IHIgPSAwOwotICAgICAgICB1MzIgcmVxLCB2YWwsIHNpemU7Ci0KLSAg ICAgICAgaWYgKCFhbWRnaW1faXNfaHdwZXJmKGFkZXYpIHx8IGJ1ZiA9PSBOVUxMKQotICAgICAg ICAgICAgICAgIHJldHVybiAtRUJBRFJRQzsKLQotICAgICAgICBzd2l0Y2godHlwZSkgewotICAg ICAgICBjYXNlIFBQX1NDTEs6Ci0gICAgICAgICAgICAgICAgcmVxID0gSURIX0lSUV9HRVRfUFBf U0NMSzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQUF9NQ0xLOgotICAg ICAgICAgICAgICAgIHJlcSA9IElESF9JUlFfR0VUX1BQX01DTEs7Ci0gICAgICAgICAgICAgICAg YnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC1FQkFEUlFD OwotICAgICAgICB9Ci0KLSAgICAgICAgbXV0ZXhfbG9jaygmYWRldi0+dmlydC5kcG1fbXV0ZXgp OwotCi0gICAgICAgIHhncHVfYWlfbWFpbGJveF90cmFuc19tc2coYWRldiwgcmVxLCAwLCAwLCAw KTsKLQotICAgICAgICByID0geGdwdV9haV9wb2xsX21zZyhhZGV2LCBJREhfU1VDQ0VTUyk7Ci0g ICAgICAgIGlmICghciAmJiBhZGV2LT5md192cmFtX3VzYWdlLnZhICE9IE5VTEwpIHsKLSAgICAg ICAgICAgICAgICB2YWwgPSBSUkVHMzJfTk9fS0lRKAotICAgICAgICAgICAgICAgICAgICAgICAg U09DMTVfUkVHX09GRlNFVChOQklPLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtbUJJRl9CWF9QRjBfTUFJTEJPWF9NU0dCVUZfUkNWX0RXMSkpOwotICAgICAg ICAgICAgICAgIHNpemUgPSBzdHJubGVuKCgoKGNoYXIgKilhZGV2LT52aXJ0LmZ3X3Jlc2VydmUu cF9wZjJ2ZikgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpLCBQQUdFX1NJ WkUpOwotCi0gICAgICAgICAgICAgICAgaWYgKHNpemUgPCBQQUdFX1NJWkUpCi0gICAgICAgICAg ICAgICAgICAgICAgICBzdHJjcHkoYnVmLCgoY2hhciAqKWFkZXYtPnZpcnQuZndfcmVzZXJ2ZS5w X3BmMnZmICsgdmFsKSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZSA9IDA7Ci0KLSAgICAgICAgICAgICAgICByID0gc2l6ZTsKLSAgICAgICAgICAg ICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotCi0gICAgICAgIHIgPSB4Z3B1X2FpX3BvbGxfbXNn KGFkZXYsIElESF9GQUlMKTsKLSAgICAgICAgaWYocikKLSAgICAgICAgICAgICAgICBwcl9pbmZv KCIlcyBEUE0gcmVxdWVzdCBmYWlsZWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUg PT0gUFBfU0NMSyk/ICJTQ0xLIiA6ICJNQ0xLIik7Ci0KLW91dDoKLSAgICAgICAgbXV0ZXhfdW5s b2NrKCZhZGV2LT52aXJ0LmRwbV9tdXRleCk7Ci0gICAgICAgIHJldHVybiByOwotfQotCi1zdGF0 aWMgaW50IHhncHVfYWlfZm9yY2VfZHBtX2xldmVsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LCB1MzIgbGV2ZWwpCi17Ci0gICAgICAgIGludCByID0gMDsKLSAgICAgICAgdTMyIHJlcSA9IElE SF9JUlFfRk9SQ0VfRFBNX0xFVkVMOwotCi0gICAgICAgIGlmICghYW1kZ2ltX2lzX2h3cGVyZihh ZGV2KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gLUVCQURSUUM7Ci0KLSAgICAgICAgbXV0ZXhf bG9jaygmYWRldi0+dmlydC5kcG1fbXV0ZXgpOwotICAgICAgICB4Z3B1X2FpX21haWxib3hfdHJh bnNfbXNnKGFkZXYsIHJlcSwgbGV2ZWwsIDAsIDApOwotCi0gICAgICAgIHIgPSB4Z3B1X2FpX3Bv bGxfbXNnKGFkZXYsIElESF9TVUNDRVNTKTsKLSAgICAgICAgaWYgKCFyKQotICAgICAgICAgICAg ICAgIGdvdG8gb3V0OwotCi0gICAgICAgIHIgPSB4Z3B1X2FpX3BvbGxfbXNnKGFkZXYsIElESF9G QUlMKTsKLSAgICAgICAgaWYgKCFyKQotICAgICAgICAgICAgICAgIHByX2luZm8oIkRQTSByZXF1 ZXN0IGZhaWxlZCIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcHJfaW5mbygiTWFp bGJveCBpcyBicm9rZW4iKTsKLQotb3V0OgotICAgICAgICBtdXRleF91bmxvY2soJmFkZXYtPnZp cnQuZHBtX211dGV4KTsKLSAgICAgICAgcmV0dXJuIHI7Ci19Ci0KIHN0YXRpYyBpbnQgeGdwdV9h aV9zZW5kX2FjY2Vzc19yZXF1ZXN0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJ ZW51bSBpZGhfcmVxdWVzdCByZXEpCiB7CkBAIC00NTUsNiArMzc5LDQgQEAgY29uc3Qgc3RydWN0 IGFtZGdwdV92aXJ0X29wcyB4Z3B1X2FpX3ZpcnRfb3BzID0gewogCS5yZXNldF9ncHUgPSB4Z3B1 X2FpX3JlcXVlc3RfcmVzZXQsCiAJLndhaXRfcmVzZXQgPSBOVUxMLAogCS50cmFuc19tc2cgPSB4 Z3B1X2FpX21haWxib3hfdHJhbnNfbXNnLAotCS5nZXRfcHBfY2xrID0geGdwdV9haV9nZXRfcHBf Y2xrLAotCS5mb3JjZV9kcG1fbGV2ZWwgPSB4Z3B1X2FpX2ZvcmNlX2RwbV9sZXZlbCwKIH07CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV9haS5oIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuaAppbmRleCAwNzdlOTFhMzNkNjIuLjM3ZGJl MGYyMTQyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWku aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV9haS5oCkBAIC0zNSwxMCAr MzUsNiBAQCBlbnVtIGlkaF9yZXF1ZXN0IHsKIAlJREhfUkVMX0dQVV9GSU5JX0FDQ0VTUywKIAlJ REhfUkVRX0dQVV9SRVNFVF9BQ0NFU1MsCiAKLQlJREhfSVJRX0ZPUkNFX0RQTV9MRVZFTCA9IDEw LAotCUlESF9JUlFfR0VUX1BQX1NDTEssCi0JSURIX0lSUV9HRVRfUFBfTUNMSywKLQogCUlESF9M T0dfVkZfRVJST1IgICAgICAgPSAyMDAsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9zb2MxNS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUu YwppbmRleCA0ODY0OWY1NWYzYmEuLjU5ZjVmMmEzOWZlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvc29jMTUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9zb2MxNS5jCkBAIC03NzcsMTEgKzc3NywxMSBAQCBpbnQgc29jMTVfc2V0X2lwX2Jsb2Nrcyhz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJfQogCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2Nr X2FkZChhZGV2LCAmZ2Z4X3Y5XzBfaXBfYmxvY2spOwogCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2Nr X2FkZChhZGV2LCAmc2RtYV92NF8wX2lwX2Jsb2NrKTsKLQkJaWYgKCFhbWRncHVfc3Jpb3ZfdmYo YWRldikpIHsKLQkJCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSkKKwkJaWYgKGlzX3N1cHBv cnRfc3dfc211KGFkZXYpKSB7CisJCQlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkKIAkJCQlh bWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmc211X3YxMV8wX2lwX2Jsb2NrKTsKLQkJ CWVsc2UKLQkJCQlhbWRncHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmcHBfc211X2lwX2Js b2NrKTsKKwkJfSBlbHNlIHsKKwkJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZw cF9zbXVfaXBfYmxvY2spOwogCQl9CiAJCWlmIChhZGV2LT5lbmFibGVfdmlydHVhbF9kaXNwbGF5 IHx8IGFtZGdwdV9zcmlvdl92ZihhZGV2KSkKIAkJCWFtZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRk KGFkZXYsICZkY2VfdmlydHVhbF9pcF9ibG9jayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9hbWRfcG93ZXJwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9hbWRfcG93ZXJwbGF5LmMKaW5kZXggNzkzMmViMTYzYTAwLi41MDg3ZDZiZGJhNjAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRfcG93ZXJwbGF5LmMKQEAg LTQ4LDcgKzQ4LDYgQEAgc3RhdGljIGludCBhbWRfcG93ZXJwbGF5X2NyZWF0ZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAogCWh3bWdyLT5hZGV2ID0gYWRldjsKIAlod21nci0+bm90X3Zm ID0gIWFtZGdwdV9zcmlvdl92ZihhZGV2KTsKLQlod21nci0+cG1fZW4gPSAoYW1kZ3B1X2RwbSAm JiBod21nci0+bm90X3ZmKSA/IHRydWUgOiBmYWxzZTsKIAlod21nci0+ZGV2aWNlID0gYW1kZ3B1 X2Nnc19jcmVhdGVfZGV2aWNlKGFkZXYpOwogCW11dGV4X2luaXQoJmh3bWdyLT5zbXVfbG9jayk7 CiAJaHdtZ3ItPmNoaXBfZmFtaWx5ID0gYWRldi0+ZmFtaWx5OwpAQCAtMjc2LDYgKzI3NSw5IEBA IHN0YXRpYyBpbnQgcHBfZHBtX2xvYWRfZncodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBwcF9o d21nciAqaHdtZ3IgPSBoYW5kbGU7CiAKKwlpZiAoIWh3bWdyLT5ub3RfdmYpCisJCXJldHVybiAw OworCiAJaWYgKCFod21nciB8fCAhaHdtZ3ItPnNtdW1ncl9mdW5jcyB8fCAhaHdtZ3ItPnNtdW1n cl9mdW5jcy0+c3RhcnRfc211KQogCQlyZXR1cm4gLUVJTlZBTDsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jCmluZGV4IDM2MDAxYTRmNjVkNy4uNzE0YjgzODFk MDJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRncHVfc211 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jCkBAIC0x NjUzLDExICsxNjUzLDEzIEBAIGludCBzbXVfYWRqdXN0X3Bvd2VyX3N0YXRlX2R5bmFtaWMoc3Ry dWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCiAJCXJldHVybiAt RUlOVkFMOwogCi0JaWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpIHsKLQkJcmV0ID0gc211X2Rp c3BsYXlfY29uZmlnX2NoYW5nZWQoc211KTsKLQkJaWYgKHJldCkgewotCQkJcHJfZXJyKCJGYWls ZWQgdG8gY2hhbmdlIGRpc3BsYXkgY29uZmlnISIpOwotCQkJcmV0dXJuIHJldDsKKwlpZiAoIWFt ZGdwdV9zcmlvdl92ZihzbXUtPmFkZXYpKSB7CisJCWlmICghc2tpcF9kaXNwbGF5X3NldHRpbmdz KSB7CisJCQlyZXQgPSBzbXVfZGlzcGxheV9jb25maWdfY2hhbmdlZChzbXUpOworCQkJaWYgKHJl dCkgeworCQkJCXByX2VycigiRmFpbGVkIHRvIGNoYW5nZSBkaXNwbGF5IGNvbmZpZyEiKTsKKwkJ CQlyZXR1cm4gcmV0OworCQkJfQogCQl9CiAJfQogCkBAIC0xNjY3LDExICsxNjY5LDEzIEBAIGlu dCBzbXVfYWRqdXN0X3Bvd2VyX3N0YXRlX2R5bmFtaWMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUs CiAJCXJldHVybiByZXQ7CiAJfQogCi0JaWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpIHsKLQkJ cmV0ID0gc211X25vdGlmeV9zbWNfZGlzcGFseV9jb25maWcoc211KTsKLQkJaWYgKHJldCkgewot CQkJcHJfZXJyKCJGYWlsZWQgdG8gbm90aWZ5IHNtYyBkaXNwbGF5IGNvbmZpZyEiKTsKLQkJCXJl dHVybiByZXQ7CisJaWYgKGFtZGdwdV9zcmlvdl92ZihzbXUtPmFkZXYpKSB7CisJCWlmICghc2tp cF9kaXNwbGF5X3NldHRpbmdzKSB7CisJCQlyZXQgPSBzbXVfbm90aWZ5X3NtY19kaXNwYWx5X2Nv bmZpZyhzbXUpOworCQkJaWYgKHJldCkgeworCQkJCXByX2VycigiRmFpbGVkIHRvIG5vdGlmeSBz bWMgZGlzcGxheSBjb25maWchIik7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KIAkJfQogCX0KIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvaGFyZHdhcmVt YW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9oYXJkd2FyZW1h bmFnZXIuYwppbmRleCBjYzU3ZmI5NTNlNjIuLjI1Mzg2MGQzMGIyMCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvaGFyZHdhcmVtYW5hZ2VyLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvaGFyZHdhcmVtYW5hZ2VyLmMKQEAg LTgxLDggKzgxLDggQEAgaW50IHBobV9lbmFibGVfZHluYW1pY19zdGF0ZV9tYW5hZ2VtZW50KHN0 cnVjdCBwcF9od21nciAqaHdtZ3IpCiAJYWRldiA9IGh3bWdyLT5hZGV2OwogCiAJLyogU2tpcCBm b3Igc3VzcGVuZC9yZXN1bWUgY2FzZSAqLwotCWlmIChzbXVtX2lzX2RwbV9ydW5uaW5nKGh3bWdy KSAmJiAhYW1kZ3B1X3Bhc3N0aHJvdWdoKGFkZXYpCi0JCSYmIGFkZXYtPmluX3N1c3BlbmQpIHsK KwlpZiAoIWh3bWdyLT5wcF9vbmVfdmYgJiYgc211bV9pc19kcG1fcnVubmluZyhod21ncikKKwkg ICAgJiYgIWFtZGdwdV9wYXNzdGhyb3VnaChhZGV2KSAmJiBhZGV2LT5pbl9zdXNwZW5kKSB7CiAJ CXByX2luZm8oImRwbSBoYXMgYmVlbiBlbmFibGVkXG4iKTsKIAkJcmV0dXJuIDA7CiAJfQpAQCAt MjAwLDYgKzIwMCw5IEBAIGludCBwaG1fc3RvcF90aGVybWFsX2NvbnRyb2xsZXIoc3RydWN0IHBw X2h3bWdyICpod21ncikKIHsKIAlQSE1fRlVOQ19DSEVDSyhod21ncik7CiAKKwlpZiAoIWh3bWdy LT5ub3RfdmYpCisJCXJldHVybiAwOworCiAJaWYgKGh3bWdyLT5od21ncl9mdW5jLT5zdG9wX3Ro ZXJtYWxfY29udHJvbGxlciA9PSBOVUxMKQogCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtMjM3LDYg KzI0MCw5IEBAIGludCBwaG1fc3RhcnRfdGhlcm1hbF9jb250cm9sbGVyKHN0cnVjdCBwcF9od21n ciAqaHdtZ3IpCiAJCVRFTVBfUkFOR0VfTUFYfTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IGh3bWdyLT5hZGV2OwogCisJaWYgKCFod21nci0+bm90X3ZmKQorCQlyZXR1cm4gMDsKKwog CWlmIChod21nci0+aHdtZ3JfZnVuYy0+Z2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2UpCiAJ CWh3bWdyLT5od21ncl9mdW5jLT5nZXRfdGhlcm1hbF90ZW1wZXJhdHVyZV9yYW5nZSgKIAkJCQlo d21nciwgJnJhbmdlKTsKQEAgLTI2Myw2ICsyNjksOCBAQCBpbnQgcGhtX3N0YXJ0X3RoZXJtYWxf Y29udHJvbGxlcihzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogYm9vbCBwaG1fY2hlY2tfc21jX3Vw ZGF0ZV9yZXF1aXJlZF9mb3JfZGlzcGxheV9jb25maWd1cmF0aW9uKHN0cnVjdCBwcF9od21nciAq aHdtZ3IpCiB7CiAJUEhNX0ZVTkNfQ0hFQ0soaHdtZ3IpOworCWlmIChod21nci0+cHBfb25lX3Zm KQorCQlyZXR1cm4gZmFsc2U7CiAKIAlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPmNoZWNrX3NtY191 cGRhdGVfcmVxdWlyZWRfZm9yX2Rpc3BsYXlfY29uZmlndXJhdGlvbiA9PSBOVUxMKQogCQlyZXR1 cm4gZmFsc2U7CkBAIC00ODIsNiArNDkwLDkgQEAgaW50IHBobV9kaXNhYmxlX3NtY19maXJtd2Fy ZV9jdGYoc3RydWN0IHBwX2h3bWdyICpod21ncikKIHsKIAlQSE1fRlVOQ19DSEVDSyhod21ncik7 CiAKKwlpZiAoIWh3bWdyLT5ub3RfdmYpCisJCXJldHVybiAwOworCiAJaWYgKGh3bWdyLT5od21n cl9mdW5jLT5kaXNhYmxlX3NtY19maXJtd2FyZV9jdGYgPT0gTlVMTCkKIAkJcmV0dXJuIC1FSU5W QUw7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2h3 bWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9od21nci5jCmluZGV4 IGQyOTA5YzkxZDY1Yi4uZjhjODFmOTYzNjQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9od21nci9od21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93 ZXJwbGF5L2h3bWdyL2h3bWdyLmMKQEAgLTIyMSw2ICsyMjEsOSBAQCBpbnQgaHdtZ3JfaHdfaW5p dChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogewogCWludCByZXQgPSAwOwogCisJaHdtZ3ItPnBw X29uZV92ZiA9IGFtZGdpbV9pc19wcF9vbmVfdmYoKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaHdt Z3ItPmFkZXYpOworCWh3bWdyLT5wbV9lbiA9IChhbWRncHVfZHBtICYmIChod21nci0+bm90X3Zm IHx8IGh3bWdyLT5wcF9vbmVfdmYpKQorCQkJPyB0cnVlIDogZmFsc2U7CiAJaWYgKCFod21nci0+ cG1fZW4pCiAJCXJldHVybiAwOwogCkBAIC0zNjUsNiArMzY4LDggQEAgaW50IGh3bWdyX2hhbmRs ZV90YXNrKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIGVudW0gYW1kX3BwX3Rhc2sgdGFza19pZCwK IAogCXN3aXRjaCAodGFza19pZCkgewogCWNhc2UgQU1EX1BQX1RBU0tfRElTUExBWV9DT05GSUdf Q0hBTkdFOgorCQlpZiAoIWh3bWdyLT5ub3RfdmYpCisJCQlyZXR1cm4gcmV0OwogCQlyZXQgPSBw aG1fcHJlX2Rpc3BsYXlfY29uZmlndXJhdGlvbl9jaGFuZ2VkKGh3bWdyKTsKIAkJaWYgKHJldCkK IAkJCXJldHVybiByZXQ7CkBAIC0zODEsNiArMzg2LDggQEAgaW50IGh3bWdyX2hhbmRsZV90YXNr KHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIGVudW0gYW1kX3BwX3Rhc2sgdGFza19pZCwKIAkJZW51 bSBQUF9TdGF0ZVVJTGFiZWwgcmVxdWVzdGVkX3VpX2xhYmVsOwogCQlzdHJ1Y3QgcHBfcG93ZXJf c3RhdGUgKnJlcXVlc3RlZF9wcyA9IE5VTEw7CiAKKwkJaWYgKCFod21nci0+bm90X3ZmKQorCQkJ cmV0dXJuIHJldDsKIAkJaWYgKHVzZXJfc3RhdGUgPT0gTlVMTCkgewogCQkJcmV0ID0gLUVJTlZB TDsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkv aHdtZ3IvcHBfcHNtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9wcF9w c20uYwppbmRleCA2YmY0ODkzNGZkYzQuLjMxYTMyYTc5Y2ZjMiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcHBfcHNtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcHBfcHNtLmMKQEAgLTI2MiwyMCArMjYyLDIyIEBAIGlu dCBwc21fYWRqdXN0X3Bvd2VyX3N0YXRlX2R5bmFtaWMoc3RydWN0IHBwX2h3bWdyICpod21nciwg Ym9vbCBza2lwX2Rpc3BsYXlfc2V0CiAJdWludDMyX3QgaW5kZXg7CiAJbG9uZyB3b3JrbG9hZDsK IAotCWlmICghc2tpcF9kaXNwbGF5X3NldHRpbmdzKQotCQlwaG1fZGlzcGxheV9jb25maWd1cmF0 aW9uX2NoYW5nZWQoaHdtZ3IpOwotCi0JaWYgKGh3bWdyLT5wcykKLQkJcG93ZXJfc3RhdGVfbWFu YWdlbWVudChod21nciwgbmV3X3BzKTsKLQllbHNlCi0JCS8qCi0JCSAqIGZvciB2ZWdhMTIvdmVn YTIwIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQgcG93ZXIgc3RhdGUgbWFuYWdlcgotCQkgKiBEQUwg Y2xvY2sgbGltaXRzIHNob3VsZCBhbHNvIGJlIGhvbm91cmVkCi0JCSAqLwotCQlwaG1fYXBwbHlf Y2xvY2tfYWRqdXN0X3J1bGVzKGh3bWdyKTsKLQotCWlmICghc2tpcF9kaXNwbGF5X3NldHRpbmdz KQotCQlwaG1fbm90aWZ5X3NtY19kaXNwbGF5X2NvbmZpZ19hZnRlcl9wc19hZGp1c3RtZW50KGh3 bWdyKTsKKwlpZiAoaHdtZ3ItPm5vdF92ZikgeworCQlpZiAoIXNraXBfZGlzcGxheV9zZXR0aW5n cykKKwkJCXBobV9kaXNwbGF5X2NvbmZpZ3VyYXRpb25fY2hhbmdlZChod21ncik7CisKKwkJaWYg KGh3bWdyLT5wcykKKwkJCXBvd2VyX3N0YXRlX21hbmFnZW1lbnQoaHdtZ3IsIG5ld19wcyk7CisJ CWVsc2UKKwkJCS8qCisJCQkgKiBmb3IgdmVnYTEyL3ZlZ2EyMCB3aGljaCBkb2VzIG5vdCBzdXBw b3J0IHBvd2VyIHN0YXRlIG1hbmFnZXIKKwkJCSAqIERBTCBjbG9jayBsaW1pdHMgc2hvdWxkIGFs c28gYmUgaG9ub3VyZWQKKwkJCSAqLworCQkJcGhtX2FwcGx5X2Nsb2NrX2FkanVzdF9ydWxlcyho d21ncik7CisKKwkJaWYgKCFza2lwX2Rpc3BsYXlfc2V0dGluZ3MpCisJCQlwaG1fbm90aWZ5X3Nt Y19kaXNwbGF5X2NvbmZpZ19hZnRlcl9wc19hZGp1c3RtZW50KGh3bWdyKTsKKwl9CiAKIAlpZiAo IXBobV9mb3JjZV9kcG1fbGV2ZWxzKGh3bWdyLCBod21nci0+cmVxdWVzdF9kcG1fbGV2ZWwpKQog CQlod21nci0+ZHBtX2xldmVsID0gaHdtZ3ItPnJlcXVlc3RfZHBtX2xldmVsOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBfaHdtZ3IuYwppbmRleCBi MjllOTk2ZGYxZDQuLjQxYTliODY5OTAwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMKQEAgLTkxMiw2ICs5MTIsOSBAQCBzdGF0 aWMgaW50IHZlZ2ExMF9od21ncl9iYWNrZW5kX2luaXQoc3RydWN0IHBwX2h3bWdyICpod21ncikK IAlod21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5jbG9ja1N0ZXAubWVtb3J5Q2xvY2sgPSA1MDA7 CiAKIAlkYXRhLT50b3RhbF9hY3RpdmVfY3VzID0gYWRldi0+Z2Z4LmN1X2luZm8ubnVtYmVyOwor CWlmICghaHdtZ3ItPm5vdF92ZikKKwkJcmV0dXJuIHJlc3VsdDsKKwogCS8qIFNldHVwIGRlZmF1 bHQgT3ZlcmRyaXZlIEZhbiBjb250cm9sIHNldHRpbmdzICovCiAJZGF0YS0+b2RuX2Zhbl90YWJs ZS50YXJnZXRfZmFuX3NwZWVkID0KIAkJCWh3bWdyLT50aGVybWFsX2NvbnRyb2xsZXIuYWR2YW5j ZUZhbkNvbnRyb2xQYXJhbWV0ZXJzLnVzTWF4RmFuUlBNOwpAQCAtOTc5LDYgKzk4Miw5IEBAIHN0 YXRpYyBpbnQgdmVnYTEwX3NldHVwX2RwbV9sZWRfY29uZmlnKHN0cnVjdCBwcF9od21nciAqaHdt Z3IpCiAKIHN0YXRpYyBpbnQgdmVnYTEwX3NldHVwX2FzaWNfdGFzayhzdHJ1Y3QgcHBfaHdtZ3Ig Kmh3bWdyKQogeworCWlmICghaHdtZ3ItPm5vdF92ZikKKwkJcmV0dXJuIDA7CisKIAlQUF9BU1NF UlRfV0lUSF9DT0RFKCF2ZWdhMTBfaW5pdF9zY2xrX3RocmVzaG9sZChod21nciksCiAJCQkiRmFp bGVkIHRvIGluaXQgc2NsayB0aHJlc2hvbGQhIiwKIAkJCXJldHVybiAtRUlOVkFMKTsKQEAgLTI1 MDMsNiArMjUwOSw5IEBAIHN0YXRpYyBpbnQgdmVnYTEwX2luaXRfc21jX3RhYmxlKHN0cnVjdCBw cF9od21nciAqaHdtZ3IpCiAJCQkiRmFpbGVkIHRvIHNldHVwIGRlZmF1bHQgRFBNIHRhYmxlcyEi LAogCQkJcmV0dXJuIHJlc3VsdCk7CiAKKwlpZiAoIWh3bWdyLT5ub3RfdmYpCisJCXJldHVybiAw OworCiAJLyogaW5pdGlhbGl6ZSBPRE4gdGFibGUgKi8KIAlpZiAoaHdtZ3ItPm9kX2VuYWJsZWQp IHsKIAkJaWYgKG9kbl90YWJsZS0+bWF4X3ZkZGMpIHsKQEAgLTI5MzIsNjEgKzI5NDEsNzUgQEAg c3RhdGljIGludCB2ZWdhMTBfZW5hYmxlX2RwbV90YXNrcyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdy KQogCXN0cnVjdCB2ZWdhMTBfaHdtZ3IgKmRhdGEgPSBod21nci0+YmFja2VuZDsKIAlpbnQgdG1w X3Jlc3VsdCwgcmVzdWx0ID0gMDsKIAotCXZlZ2ExMF9lbmFibGVfZGlzYWJsZV9QQ0NfbGltaXRf ZmVhdHVyZShod21nciwgdHJ1ZSk7Ci0KLQlzbXVtX3NlbmRfbXNnX3RvX3NtY193aXRoX3BhcmFt ZXRlcihod21nciwKLQkJUFBTTUNfTVNHX0NvbmZpZ3VyZVRlbGVtZXRyeSwgZGF0YS0+Y29uZmln X3RlbGVtZXRyeSk7CisJaWYgKGh3bWdyLT5ub3RfdmYpIHsKKwkJdmVnYTEwX2VuYWJsZV9kaXNh YmxlX1BDQ19saW1pdF9mZWF0dXJlKGh3bWdyLCB0cnVlKTsKIAotCXRtcF9yZXN1bHQgPSB2ZWdh MTBfY29uc3RydWN0X3ZvbHRhZ2VfdGFibGVzKGh3bWdyKTsKLQlQUF9BU1NFUlRfV0lUSF9DT0RF KCF0bXBfcmVzdWx0LAotCQkJIkZhaWxlZCB0byBjb25zdHJ1Y3Qgdm9sdGFnZSB0YWJsZXMhIiwK LQkJCXJlc3VsdCA9IHRtcF9yZXN1bHQpOworCQlzbXVtX3NlbmRfbXNnX3RvX3NtY193aXRoX3Bh cmFtZXRlcihod21nciwKKwkJCVBQU01DX01TR19Db25maWd1cmVUZWxlbWV0cnksIGRhdGEtPmNv bmZpZ190ZWxlbWV0cnkpOwogCi0JdG1wX3Jlc3VsdCA9IHZlZ2ExMF9pbml0X3NtY190YWJsZSho d21ncik7Ci0JUFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwKLQkJCSJGYWlsZWQgdG8g aW5pdGlhbGl6ZSBTTUMgdGFibGUhIiwKLQkJCXJlc3VsdCA9IHRtcF9yZXN1bHQpOworCQl0bXBf cmVzdWx0ID0gdmVnYTEwX2NvbnN0cnVjdF92b2x0YWdlX3RhYmxlcyhod21ncik7CisJCVBQX0FT U0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCisJCQkJICAgICJGYWlsZWQgdG8gY29uc3RydWN0 IHZvbHRhZ2UgdGFibGVzISIsCisJCQkJICAgIHJlc3VsdCA9IHRtcF9yZXN1bHQpOworCX0KIAot CWlmIChQUF9DQVAoUEhNX1BsYXRmb3JtQ2Fwc19UaGVybWFsQ29udHJvbGxlcikpIHsKLQkJdG1w X3Jlc3VsdCA9IHZlZ2ExMF9lbmFibGVfdGhlcm1hbF9wcm90ZWN0aW9uKGh3bWdyKTsKKwlpZiAo aHdtZ3ItPm5vdF92ZiB8fCBod21nci0+cHBfb25lX3ZmKSB7CisJCXRtcF9yZXN1bHQgPSB2ZWdh MTBfaW5pdF9zbWNfdGFibGUoaHdtZ3IpOwogCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0bXBfcmVz dWx0LAotCQkJCSJGYWlsZWQgdG8gZW5hYmxlIHRoZXJtYWwgcHJvdGVjdGlvbiEiLAotCQkJCXJl c3VsdCA9IHRtcF9yZXN1bHQpOworCQkJCSAgICAiRmFpbGVkIHRvIGluaXRpYWxpemUgU01DIHRh YmxlISIsCisJCQkJICAgIHJlc3VsdCA9IHRtcF9yZXN1bHQpOwogCX0KIAotCXRtcF9yZXN1bHQg PSB2ZWdhMTBfZW5hYmxlX3ZyaG90X2ZlYXR1cmUoaHdtZ3IpOwotCVBQX0FTU0VSVF9XSVRIX0NP REUoIXRtcF9yZXN1bHQsCi0JCQkiRmFpbGVkIHRvIGVuYWJsZSBWUiBob3QgZmVhdHVyZSEiLAot CQkJcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisJaWYgKGh3bWdyLT5ub3RfdmYpIHsKKwkJaWYgKFBQ X0NBUChQSE1fUGxhdGZvcm1DYXBzX1RoZXJtYWxDb250cm9sbGVyKSkgeworCQkJdG1wX3Jlc3Vs dCA9IHZlZ2ExMF9lbmFibGVfdGhlcm1hbF9wcm90ZWN0aW9uKGh3bWdyKTsKKwkJCVBQX0FTU0VS VF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCisJCQkJCSAgICAiRmFpbGVkIHRvIGVuYWJsZSB0aGVy bWFsIHByb3RlY3Rpb24hIiwKKwkJCQkJICAgIHJlc3VsdCA9IHRtcF9yZXN1bHQpOworCQl9CiAK LQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV9kZWVwX3NsZWVwX21hc3Rlcl9zd2l0Y2goaHdt Z3IpOwotCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCi0JCQkiRmFpbGVkIHRvIGVu YWJsZSBkZWVwIHNsZWVwIG1hc3RlciBzd2l0Y2ghIiwKLQkJCXJlc3VsdCA9IHRtcF9yZXN1bHQp OworCQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV92cmhvdF9mZWF0dXJlKGh3bWdyKTsKKwkJ UFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwKKwkJCQkgICAgIkZhaWxlZCB0byBlbmFi bGUgVlIgaG90IGZlYXR1cmUhIiwKKwkJCQkgICAgcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CiAKLQl0 bXBfcmVzdWx0ID0gdmVnYTEwX3N0YXJ0X2RwbShod21nciwgU01DX0RQTV9GRUFUVVJFUyk7Ci0J UFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwKLQkJCSJGYWlsZWQgdG8gc3RhcnQgRFBN ISIsIHJlc3VsdCA9IHRtcF9yZXN1bHQpOworCQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV9k ZWVwX3NsZWVwX21hc3Rlcl9zd2l0Y2goaHdtZ3IpOworCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCF0 bXBfcmVzdWx0LAorCQkJCSAgICAiRmFpbGVkIHRvIGVuYWJsZSBkZWVwIHNsZWVwIG1hc3RlciBz d2l0Y2ghIiwKKwkJCQkgICAgcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisJfQogCi0JLyogZW5hYmxl IGRpZHQsIGRvIG5vdCBhYm9ydCBpZiBmYWlsZWQgZGlkdCAqLwotCXRtcF9yZXN1bHQgPSB2ZWdh MTBfZW5hYmxlX2RpZHRfY29uZmlnKGh3bWdyKTsKLQlQUF9BU1NFUlQoIXRtcF9yZXN1bHQsCi0J CQkiRmFpbGVkIHRvIGVuYWJsZSBkaWR0IGNvbmZpZyEiKTsKKwlpZiAoaHdtZ3ItPm5vdF92Zikg eworCQl0bXBfcmVzdWx0ID0gdmVnYTEwX3N0YXJ0X2RwbShod21nciwgU01DX0RQTV9GRUFUVVJF Uyk7CisJCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCisJCQkJICAgICJGYWlsZWQg dG8gc3RhcnQgRFBNISIsIHJlc3VsdCA9IHRtcF9yZXN1bHQpOworCX0KIAotCXRtcF9yZXN1bHQg PSB2ZWdhMTBfZW5hYmxlX3Bvd2VyX2NvbnRhaW5tZW50KGh3bWdyKTsKLQlQUF9BU1NFUlRfV0lU SF9DT0RFKCF0bXBfcmVzdWx0LAotCQkJIkZhaWxlZCB0byBlbmFibGUgcG93ZXIgY29udGFpbm1l bnQhIiwKLQkJCXJlc3VsdCA9IHRtcF9yZXN1bHQpOworCWlmIChod21nci0+bm90X3ZmKSB7CisJ CS8qIGVuYWJsZSBkaWR0LCBkbyBub3QgYWJvcnQgaWYgZmFpbGVkIGRpZHQgKi8KKwkJdG1wX3Jl c3VsdCA9IHZlZ2ExMF9lbmFibGVfZGlkdF9jb25maWcoaHdtZ3IpOworCQlQUF9BU1NFUlQoIXRt cF9yZXN1bHQsCisJCQkgICJGYWlsZWQgdG8gZW5hYmxlIGRpZHQgY29uZmlnISIpOworCX0KIAot CXRtcF9yZXN1bHQgPSB2ZWdhMTBfcG93ZXJfY29udHJvbF9zZXRfbGV2ZWwoaHdtZ3IpOwotCVBQ X0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCi0JCQkiRmFpbGVkIHRvIHBvd2VyIGNvbnRy b2wgc2V0IGxldmVsISIsCi0JCQlyZXN1bHQgPSB0bXBfcmVzdWx0KTsKKwlpZiAoaHdtZ3ItPm5v dF92ZikgeworCQl0bXBfcmVzdWx0ID0gdmVnYTEwX2VuYWJsZV9wb3dlcl9jb250YWlubWVudCho d21ncik7CisJCVBQX0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCisJCQkJICAgICJGYWls ZWQgdG8gZW5hYmxlIHBvd2VyIGNvbnRhaW5tZW50ISIsCisJCQkJICAgIHJlc3VsdCA9IHRtcF9y ZXN1bHQpOworCX0KIAotCXRtcF9yZXN1bHQgPSB2ZWdhMTBfZW5hYmxlX3Vsdihod21ncik7Ci0J UFBfQVNTRVJUX1dJVEhfQ09ERSghdG1wX3Jlc3VsdCwKLQkJCSJGYWlsZWQgdG8gZW5hYmxlIFVM ViEiLAotCQkJcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisJaWYgKGh3bWdyLT5ub3RfdmYpIHsKKwkJ dG1wX3Jlc3VsdCA9IHZlZ2ExMF9wb3dlcl9jb250cm9sX3NldF9sZXZlbChod21ncik7CisJCVBQ X0FTU0VSVF9XSVRIX0NPREUoIXRtcF9yZXN1bHQsCisJCQkJICAgICJGYWlsZWQgdG8gcG93ZXIg Y29udHJvbCBzZXQgbGV2ZWwhIiwKKwkJCQkgICAgcmVzdWx0ID0gdG1wX3Jlc3VsdCk7CisKKwkJ dG1wX3Jlc3VsdCA9IHZlZ2ExMF9lbmFibGVfdWx2KGh3bWdyKTsKKwkJUFBfQVNTRVJUX1dJVEhf Q09ERSghdG1wX3Jlc3VsdCwKKwkJCQkgICAgIkZhaWxlZCB0byBlbmFibGUgVUxWISIsCisJCQkJ ICAgIHJlc3VsdCA9IHRtcF9yZXN1bHQpOworCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0z MDgwLDExICszMTAzLDIyIEBAIHN0YXRpYyBpbnQgdmVnYTEwX2dldF9wcF90YWJsZV9lbnRyeV9j YWxsYmFja19mdW5jKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJcGVyZm9ybWFuY2VfbGV2ZWwt PnNvY19jbG9jayA9IHNvY2Nsa19kZXBfdGFibGUtPmVudHJpZXMKIAkJCQlbc3RhdGVfZW50cnkt PnVjU29jQ2xvY2tJbmRleEhpZ2hdLnVsQ2xrOwogCWlmIChnZnhjbGtfZGVwX3RhYmxlLT51Y1Jl dklkID09IDApIHsKLQkJcGVyZm9ybWFuY2VfbGV2ZWwtPmdmeF9jbG9jayA9IGdmeGNsa19kZXBf dGFibGUtPmVudHJpZXMKLQkJCVtzdGF0ZV9lbnRyeS0+dWNHZnhDbG9ja0luZGV4SGlnaF0udWxD bGs7CisJCS8qIHVuZGVyIHZlZ2ExMCBwcCBvbmUgdmYgbW9kZSwgdGhlIGdmeCBjbGsgZHBtIG5l ZWQgYmUgbG93ZXIKKwkJICogdG8gbGV2ZWwtNCBkdWUgdG8gdGhlIGxpbWl0ZWQgMTEwdy1wb3dl cgorCQkgKi8KKwkJaWYgKGh3bWdyLT5wcF9vbmVfdmYgJiYgKHN0YXRlX2VudHJ5LT51Y0dmeENs b2NrSW5kZXhIaWdoID4gMCkpCisJCQlwZXJmb3JtYW5jZV9sZXZlbC0+Z2Z4X2Nsb2NrID0KKwkJ CQlnZnhjbGtfZGVwX3RhYmxlLT5lbnRyaWVzWzRdLnVsQ2xrOworCQllbHNlCisJCQlwZXJmb3Jt YW5jZV9sZXZlbC0+Z2Z4X2Nsb2NrID0gZ2Z4Y2xrX2RlcF90YWJsZS0+ZW50cmllcworCQkJCVtz dGF0ZV9lbnRyeS0+dWNHZnhDbG9ja0luZGV4SGlnaF0udWxDbGs7CiAJfSBlbHNlIGlmIChnZnhj bGtfZGVwX3RhYmxlLT51Y1JldklkID09IDEpIHsKIAkJcGF0b21fcmVjb3JkX1YyID0gKEFUT01f VmVnYTEwX0dGWENMS19EZXBlbmRlbmN5X1JlY29yZF9WMiAqKWdmeGNsa19kZXBfdGFibGUtPmVu dHJpZXM7Ci0JCXBlcmZvcm1hbmNlX2xldmVsLT5nZnhfY2xvY2sgPSBwYXRvbV9yZWNvcmRfVjJb c3RhdGVfZW50cnktPnVjR2Z4Q2xvY2tJbmRleEhpZ2hdLnVsQ2xrOworCQlpZiAoaHdtZ3ItPnBw X29uZV92ZiAmJiAoc3RhdGVfZW50cnktPnVjR2Z4Q2xvY2tJbmRleEhpZ2ggPiAwKSkKKwkJCXBl cmZvcm1hbmNlX2xldmVsLT5nZnhfY2xvY2sgPSBwYXRvbV9yZWNvcmRfVjJbNF0udWxDbGs7CisJ CWVsc2UKKwkJCXBlcmZvcm1hbmNlX2xldmVsLT5nZnhfY2xvY2sgPQorCQkJCXBhdG9tX3JlY29y ZF9WMltzdGF0ZV9lbnRyeS0+dWNHZnhDbG9ja0luZGV4SGlnaF0udWxDbGs7CiAJfQogCiAJcGVy Zm9ybWFuY2VfbGV2ZWwtPm1lbV9jbG9jayA9IG1jbGtfZGVwX3RhYmxlLT5lbnRyaWVzCkBAIC0z NDk1LDYgKzM1MjksNyBAQCBzdGF0aWMgaW50IHZlZ2ExMF91cGxvYWRfZHBtX2Jvb3R1cF9sZXZl bChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogCQkJc211bV9zZW5kX21zZ190b19zbWNfd2l0aF9w YXJhbWV0ZXIoaHdtZ3IsCiAJCQkJUFBTTUNfTVNHX1NldFNvZnRNaW5HZnhjbGtCeUluZGV4LAog CQkJCWRhdGEtPnNtY19zdGF0ZV90YWJsZS5nZnhfYm9vdF9sZXZlbCk7CisKIAkJCWRhdGEtPmRw bV90YWJsZS5nZnhfdGFibGUuZHBtX3N0YXRlLnNvZnRfbWluX2xldmVsID0KIAkJCQkJZGF0YS0+ c21jX3N0YXRlX3RhYmxlLmdmeF9ib290X2xldmVsOwogCQl9CkBAIC0zNTE4LDYgKzM1NTMsOSBA QCBzdGF0aWMgaW50IHZlZ2ExMF91cGxvYWRfZHBtX2Jvb3R1cF9sZXZlbChzdHJ1Y3QgcHBfaHdt Z3IgKmh3bWdyKQogCQl9CiAJfQogCisJaWYgKCFod21nci0+bm90X3ZmKQorCQlyZXR1cm4gMDsK KwogCWlmICghZGF0YS0+cmVnaXN0cnlfZGF0YS5zb2NjbGtfZHBtX2tleV9kaXNhYmxlZCkgewog CQlpZiAoZGF0YS0+c21jX3N0YXRlX3RhYmxlLnNvY19ib290X2xldmVsICE9CiAJCQkJZGF0YS0+ ZHBtX3RhYmxlLnNvY190YWJsZS5kcG1fc3RhdGUuc29mdF9taW5fbGV2ZWwpIHsKQEAgLTM1NjAs NiArMzU5OCw5IEBAIHN0YXRpYyBpbnQgdmVnYTEwX3VwbG9hZF9kcG1fbWF4X2xldmVsKHN0cnVj dCBwcF9od21nciAqaHdtZ3IpCiAJCX0KIAl9CiAKKwlpZiAoIWh3bWdyLT5ub3RfdmYpCisJCXJl dHVybiAwOworCiAJaWYgKCFkYXRhLT5yZWdpc3RyeV9kYXRhLnNvY2Nsa19kcG1fa2V5X2Rpc2Fi bGVkKSB7CiAJCWlmIChkYXRhLT5zbWNfc3RhdGVfdGFibGUuc29jX21heF9sZXZlbCAhPQogCQkJ ZGF0YS0+ZHBtX3RhYmxlLnNvY190YWJsZS5kcG1fc3RhdGUuc29mdF9tYXhfbGV2ZWwpIHsKQEAg LTQwNTQsMTUgKzQwOTUsMjUgQEAgc3RhdGljIGludCB2ZWdhMTBfZ2V0X3Byb2ZpbGluZ19jbGtf bWFzayhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBlbnVtIGFtZF9kcG1fZm8KIAl9IGVsc2UgaWYg KGxldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfTUlOX01DTEspIHsKIAkJKm1j bGtfbWFzayA9IDA7CiAJfSBlbHNlIGlmIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9Q Uk9GSUxFX1BFQUspIHsKLQkJKnNjbGtfbWFzayA9IHRhYmxlX2luZm8tPnZkZF9kZXBfb25fc2Ns ay0+Y291bnQgLSAxOworCQkvKiB1bmRlciB2ZWdhMTAgIHBwIG9uZSB2ZiBtb2RlLCB0aGUgZ2Z4 IGNsayBkcG0gbmVlZCBiZSBsb3dlcgorCQkgKiB0byBsZXZlbC00IGR1ZSB0byB0aGUgbGltaXRl ZCBwb3dlcgorCQkgKi8KKwkJaWYgKGh3bWdyLT5wcF9vbmVfdmYpCisJCQkqc2Nsa19tYXNrID0g NDsKKwkJZWxzZQorCQkJKnNjbGtfbWFzayA9IHRhYmxlX2luZm8tPnZkZF9kZXBfb25fc2Nsay0+ Y291bnQgLSAxOwogCQkqc29jX21hc2sgPSB0YWJsZV9pbmZvLT52ZGRfZGVwX29uX3NvY2Nsay0+ Y291bnQgLSAxOwogCQkqbWNsa19tYXNrID0gdGFibGVfaW5mby0+dmRkX2RlcF9vbl9tY2xrLT5j b3VudCAtIDE7CiAJfQorCiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIHZlZ2ExMF9zZXRf ZmFuX2NvbnRyb2xfbW9kZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCB1aW50MzJfdCBtb2RlKQog eworCWlmICghaHdtZ3ItPm5vdF92ZikKKwkJcmV0dXJuOworCiAJc3dpdGNoIChtb2RlKSB7CiAJ Y2FzZSBBTURfRkFOX0NUUkxfTk9ORToKIAkJdmVnYTEwX2Zhbl9jdHJsX3NldF9mYW5fc3BlZWRf cGVyY2VudChod21nciwgMTAwKTsKQEAgLTQxNzYsNiArNDIyNyw5IEBAIHN0YXRpYyBpbnQgdmVn YTEwX2RwbV9mb3JjZV9kcG1fbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21nciwKIAkJYnJlYWs7 CiAJfQogCisJaWYgKCFod21nci0+bm90X3ZmKQorCQlyZXR1cm4gcmV0OworCiAJaWYgKCFyZXQp IHsKIAkJaWYgKGxldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfUEVBSyAmJiBo d21nci0+ZHBtX2xldmVsICE9IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfUEVBSykKIAkJ CXZlZ2ExMF9zZXRfZmFuX2NvbnRyb2xfbW9kZShod21nciwgQU1EX0ZBTl9DVFJMX05PTkUpOwpA QCAtNDQ4MCw3ICs0NTM0LDcgQEAgc3RhdGljIGludCB2ZWdhMTBfcHJpbnRfY2xvY2tfbGV2ZWxz KHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJc3RydWN0IHZlZ2ExMF9wY2llX3RhYmxlICpwY2ll X3RhYmxlID0gJihkYXRhLT5kcG1fdGFibGUucGNpZV90YWJsZSk7CiAJc3RydWN0IHZlZ2ExMF9v ZG5fY2xvY2tfdm9sdGFnZV9kZXBlbmRlbmN5X3RhYmxlICpwb2RuX3ZkZF9kZXAgPSBOVUxMOwog Ci0JaW50IGksIG5vdywgc2l6ZSA9IDA7CisJaW50IGksIG5vdywgc2l6ZSwgY291bnQgPSAwOwog CiAJc3dpdGNoICh0eXBlKSB7CiAJY2FzZSBQUF9TQ0xLOgpAQCAtNDQ5MCw3ICs0NTQ0LDEyIEBA IHN0YXRpYyBpbnQgdmVnYTEwX3ByaW50X2Nsb2NrX2xldmVscyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3 bWdyLAogCQlzbXVtX3NlbmRfbXNnX3RvX3NtYyhod21nciwgUFBTTUNfTVNHX0dldEN1cnJlbnRH ZnhjbGtJbmRleCk7CiAJCW5vdyA9IHNtdW1fZ2V0X2FyZ3VtZW50KGh3bWdyKTsKIAotCQlmb3Ig KGkgPSAwOyBpIDwgc2Nsa190YWJsZS0+Y291bnQ7IGkrKykKKwkJaWYgKGh3bWdyLT5wcF9vbmVf dmYgJiYKKwkJICAgIChod21nci0+ZHBtX2xldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BS T0ZJTEVfUEVBSykpCisJCQljb3VudCA9IDU7CisJCWVsc2UKKwkJCWNvdW50ID0gc2Nsa190YWJs ZS0+Y291bnQ7CisJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQogCQkJc2l6ZSArPSBzcHJp bnRmKGJ1ZiArIHNpemUsICIlZDogJXVNaHogJXNcbiIsCiAJCQkJCWksIHNjbGtfdGFibGUtPmRw bV9sZXZlbHNbaV0udmFsdWUgLyAxMDAsCiAJCQkJCShpID09IG5vdykgPyAiKiIgOiAiIik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvaHdtZ3IuaCBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oCmluZGV4IGFmOTc3Njc1ZmQz My4uMmZmYjY2NmI5N2U2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxh eS9pbmMvaHdtZ3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvaHdt Z3IuaApAQCAtNzQxLDYgKzc0MSw3IEBAIHN0cnVjdCBwcF9od21nciB7CiAJdWludDMyX3Qgc211 X3ZlcnNpb247CiAJYm9vbCBub3RfdmY7CiAJYm9vbCBwbV9lbjsKKwlib29sIHBwX29uZV92ZjsK IAlzdHJ1Y3QgbXV0ZXggc211X2xvY2s7CiAKIAl1aW50MzJfdCBwcF90YWJsZV92ZXJzaW9uOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdTlfc211 bWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Ivc211OV9zbXVtZ3Iu YwppbmRleCA3NDJiM2RjMWY2Y2IuLmE4NTc4YTI3Y2FiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdTlfc211bWdyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdTlfc211bWdyLmMKQEAgLTYxLDE1ICs2MSwy OSBAQCBzdGF0aWMgdWludDMyX3Qgc211OV93YWl0X2Zvcl9yZXNwb25zZShzdHJ1Y3QgcHBfaHdt Z3IgKmh3bWdyKQogCXVpbnQzMl90IHJlZzsKIAl1aW50MzJfdCByZXQ7CiAKLQlyZWcgPSBTT0Mx NV9SRUdfT0ZGU0VUKE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR185MCk7CisJLyogRHVlIHRvIHRo ZSBMMSBwb2xpY3kgcHJvYmxlbSB1bmRlciBTUklPViwgd2UgaGF2ZSB0byB1c2UKKwkgKiBtbU1Q MV9TTU5fQzJQTVNHXzEwMyBhcyB0aGUgZHJpdmVyIHJlc3BvbnNlIHJlZ2lzdGVyCisJICovCisJ aWYgKGh3bWdyLT5wcF9vbmVfdmYpIHsKKwkJcmVnID0gU09DMTVfUkVHX09GRlNFVChNUDEsIDAs IG1tTVAxX1NNTl9DMlBNU0dfMTAzKTsKIAotCXJldCA9IHBobV93YWl0X2Zvcl9yZWdpc3Rlcl91 bmVxdWFsKGh3bWdyLCByZWcsCi0JCQkwLCBNUDFfQzJQTVNHXzkwX19DT05URU5UX01BU0spOwor CQlyZXQgPSBwaG1fd2FpdF9mb3JfcmVnaXN0ZXJfdW5lcXVhbChod21nciwgcmVnLAorCQkJCTAs IE1QMV9DMlBNU0dfMTAzX19DT05URU5UX01BU0spOwogCi0JaWYgKHJldCkKLQkJcHJfZXJyKCJO byByZXNwb25zZSBmcm9tIHNtdVxuIik7CisJCWlmIChyZXQpCisJCQlwcl9lcnIoIk5vIHJlc3Bv bnNlIGZyb20gc211XG4iKTsKIAotCXJldHVybiBSUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9T TU5fQzJQTVNHXzkwKTsKKwkJcmV0dXJuIFJSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9D MlBNU0dfMTAzKTsKKwl9IGVsc2UgeworCQlyZWcgPSBTT0MxNV9SRUdfT0ZGU0VUKE1QMSwgMCwg bW1NUDFfU01OX0MyUE1TR185MCk7CisKKwkJcmV0ID0gcGhtX3dhaXRfZm9yX3JlZ2lzdGVyX3Vu ZXF1YWwoaHdtZ3IsIHJlZywKKwkJCQkwLCBNUDFfQzJQTVNHXzkwX19DT05URU5UX01BU0spOwor CisJCWlmIChyZXQpCisJCQlwcl9lcnIoIk5vIHJlc3BvbnNlIGZyb20gc211XG4iKTsKKwkJcmV0 dXJuIFJSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfOTApOworCX0KIH0KIAog LyoKQEAgLTgzLDcgKzk3LDEwIEBAIHN0YXRpYyBpbnQgc211OV9zZW5kX21zZ190b19zbWNfd2l0 aG91dF93YWl0aW5nKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiB7CiAJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSBod21nci0+YWRldjsKIAotCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAx X1NNTl9DMlBNU0dfNjYsIG1zZyk7CisJaWYgKGh3bWdyLT5wcF9vbmVfdmYpIHsKKwkJV1JFRzMy X1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR18xMDEsIG1zZyk7CisJfSBlbHNlCisJCVdS RUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBNU0dfNjYsIG1zZyk7CiAKIAlyZXR1cm4g MDsKIH0KQEAgLTEwMSw3ICsxMTgsMTAgQEAgaW50IHNtdTlfc2VuZF9tc2dfdG9fc21jKHN0cnVj dCBwcF9od21nciAqaHdtZ3IsIHVpbnQxNl90IG1zZykKIAogCXNtdTlfd2FpdF9mb3JfcmVzcG9u c2UoaHdtZ3IpOwogCi0JV1JFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR185MCwg MCk7CisJaWYgKGh3bWdyLT5wcF9vbmVfdmYpCisJCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAx X1NNTl9DMlBNU0dfMTAzLCAwKTsKKwllbHNlCisJCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAx X1NNTl9DMlBNU0dfOTAsIDApOwogCiAJc211OV9zZW5kX21zZ190b19zbWNfd2l0aG91dF93YWl0 aW5nKGh3bWdyLCBtc2cpOwogCkBAIC0xMjcsOSArMTQ3LDE3IEBAIGludCBzbXU5X3NlbmRfbXNn X3RvX3NtY193aXRoX3BhcmFtZXRlcihzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCiAJc211OV93 YWl0X2Zvcl9yZXNwb25zZShod21ncik7CiAKLQlXUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9T TU5fQzJQTVNHXzkwLCAwKTsKLQotCVdSRUczMl9TT0MxNShNUDEsIDAsIG1tTVAxX1NNTl9DMlBN U0dfODIsIHBhcmFtZXRlcik7CisJLyogRHVlIHRvIHRoZSBMMSBwb2xpY3kgcHJvYmxlbSB1bmRl ciBTUklPViwgd2UgaGF2ZSB0byB1c2UKKwkgKiBtbU1QMV9TTU5fQzJQTVNHXzEwMSBhcyB0aGUg ZHJpdmVyIG1lc3NhZ2UgcmVnaXN0ZXIgYW5kCisJICogbW1NUDFfU01OX0MyUE1TR18xMDIgYXMg dGhlIGRyaXZlciBwYXJhbWV0ZXIgcmVnaXN0ZXIuCisJICovCisJaWYgKGh3bWdyLT5wcF9vbmVf dmYpIHsKKwkJV1JFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR18xMDMsIDApOwor CQlXUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzEwMiwgcGFyYW1ldGVyKTsK Kwl9IGVsc2UgeworCQlXUkVHMzJfU09DMTUoTVAxLCAwLCBtbU1QMV9TTU5fQzJQTVNHXzkwLCAw KTsKKwkJV1JFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR184MiwgcGFyYW1ldGVy KTsKKwl9CiAKIAlzbXU5X3NlbmRfbXNnX3RvX3NtY193aXRob3V0X3dhaXRpbmcoaHdtZ3IsIG1z Zyk7CiAKQEAgLTE0NCw1ICsxNzIsOCBAQCB1aW50MzJfdCBzbXU5X2dldF9hcmd1bWVudChzdHJ1 Y3QgcHBfaHdtZ3IgKmh3bWdyKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gaHdt Z3ItPmFkZXY7CiAKLQlyZXR1cm4gUlJFRzMyX1NPQzE1KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1T R184Mik7CisJaWYgKGh3bWdyLT5wcF9vbmVfdmYpCisJCXJldHVybiBSUkVHMzJfU09DMTUoTVAx LCAwLCBtbU1QMV9TTU5fQzJQTVNHXzEwMik7CisJZWxzZQorCQlyZXR1cm4gUlJFRzMyX1NPQzE1 KE1QMSwgMCwgbW1NUDFfU01OX0MyUE1TR184Mik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdmVnYTEwX3NtdW1nci5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3ZlZ2ExMF9zbXVtZ3IuYwppbmRleCAwZjM4MzZmZDk2 NjYuLmJlYTMzN2E2YzViNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBs YXkvc211bWdyL3ZlZ2ExMF9zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2Vy cGxheS9zbXVtZ3IvdmVnYTEwX3NtdW1nci5jCkBAIC03MSw2ICs3MSwxMiBAQCBzdGF0aWMgaW50 IHZlZ2ExMF9jb3B5X3RhYmxlX3RvX3NtYyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogewogCXN0 cnVjdCB2ZWdhMTBfc211bWdyICpwcml2ID0gaHdtZ3ItPnNtdV9iYWNrZW5kOwogCisJLyogdW5k ZXIgcHBfb25lX3ZmIG1vZGUsIHZiaW9zIG9yIGh5cGVydmlzb3IgZHJpdmVyCisJICogaGFzIGFs cmVhZHkgY29weSB0YWJsZSB0byBzbWMgc28gaGVyZSBvbmx5IHNraXAgaXQKKwkgKi8KKwlpZiAo IWh3bWdyLT5ub3RfdmYgJiYgIWh3bWdyLT5wcF9vbmVfdmYpCisJCXJldHVybiAwOworCiAJUFBf QVNTRVJUX1dJVEhfQ09ERSh0YWJsZV9pZCA8IE1BWF9TTVVfVEFCTEUsCiAJCQkiSW52YWxpZCBT TVUgVGFibGUgSUQhIiwgcmV0dXJuIC1FSU5WQUwpOwogCVBQX0FTU0VSVF9XSVRIX0NPREUocHJp di0+c211X3RhYmxlcy5lbnRyeVt0YWJsZV9pZF0udmVyc2lvbiAhPSAwLAotLSAKMi4xNy4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1h aWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=