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=-8.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 BCB1CC433DF for ; Wed, 1 Jul 2020 02:12:52 +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 8FF762074D for ; Wed, 1 Jul 2020 02:12:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="JfUxbTuX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8FF762074D 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 2A0C46E375; Wed, 1 Jul 2020 02:12:52 +0000 (UTC) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-eopbgr770057.outbound.protection.outlook.com [40.107.77.57]) by gabe.freedesktop.org (Postfix) with ESMTPS id DF5026E375 for ; Wed, 1 Jul 2020 02:12:49 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IebKfC/xRi/NLtOiTZaIVbcSzVpfN0WmGHx4AZcO6smjIsck+6IM6j9wqEy63ep/HtRaOyqr+SjA7hm1sgPBjt0scrOnK7QAEmCmJRnWZN+iqeVZm+QiXIjbLdtSL2HW98vM2CMNoy5Mum/DpjhGCaQ/YtUc8IMcnw4ibudozWgoNmC/KzWf1abj3YJWC7xvc6bKgW0LhFEKjB5t0Tax2X2IWEe/iyTk7DmQgeekPl+2MfmrlwYJUO85mt855NCP/5UUut/lzFDjyM58yGpNoE+TxCvL9GeBqAO0PkGGLYlBeI7oYnCybyNksiQSEDX2qTWqkEO5jrnkPq/gEfez4g== 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=0JkR3rjZpM75OEBEx2Ss5j4kWEQONZKI7/1zx31ejQc=; b=lUF4bsBUPPMniZHGfGl4aQZFF3tRR+YNtR86Q+3nbvakpjBZwAznmZSUD7c5pODqTGSvPQ1VQ2B05mAOwdFBb9ktT0NnofUEa81JdlXwxDGP3JL9hdd4NNyy+MB2hxilPS1SSNTW/Eoh7Hh84+xc5Sl6Gwl7PteIozGYKX8EcRekYkXwAIiG6Ws5RB/GH+H1YFdypm2+pZt/c23q+KDA8TEOePqlUVp+sXvwI13+dsTb2zcVBcs4egxce0e7dcnXy2IaQfdtbKY3waJZjuCiioqJbACmdrA9bY+pwtH1kk3LYG/LWNALOe8wKUPJsIxGCr7bOwC2APxEwJ3vmJTKTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none 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=0JkR3rjZpM75OEBEx2Ss5j4kWEQONZKI7/1zx31ejQc=; b=JfUxbTuXdNa52zkscgOBl+m9RaDd2dBagbFnkZwZNxjjuOhQjIR2MtCmYzln3Yv5iScNuUqNRy/1jts6S6ja/5n28epQX5aDVdvSAYizytPrjkXAC9/dfzHtJ+G44CEkh/Vl4LyzGtGjsw7yvR84nCyy1a67epVhaX3U2cKuC0g= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=amd.com; Received: from SN1PR12MB2414.namprd12.prod.outlook.com (2603:10b6:802:2e::31) by SA0PR12MB4415.namprd12.prod.outlook.com (2603:10b6:806:70::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.23; Wed, 1 Jul 2020 02:12:41 +0000 Received: from SN1PR12MB2414.namprd12.prod.outlook.com ([fe80::18d:97b:661f:9314]) by SN1PR12MB2414.namprd12.prod.outlook.com ([fe80::18d:97b:661f:9314%7]) with mapi id 15.20.3131.028; Wed, 1 Jul 2020 02:12:41 +0000 Subject: Re: [PATCH v5 01/12] iommu: Change type of pasid to u32 To: Fenghua Yu , Thomas Gleixner , Joerg Roedel , Ingo Molnar , Borislav Petkov , Peter Zijlstra , H Peter Anvin , David Woodhouse , Lu Baolu , Dave Hansen , Tony Luck , Jean-Philippe Brucker , Christoph Hellwig , Ashok Raj , Jacob Jun Pan , Dave Jiang , Sohil Mehta , Ravi V Shankar References: <1593560682-40814-1-git-send-email-fenghua.yu@intel.com> <1593560682-40814-2-git-send-email-fenghua.yu@intel.com> From: Felix Kuehling Message-ID: <22a0f829-aa00-5de3-b1ab-3fd04af32f97@amd.com> Date: Tue, 30 Jun 2020 22:12:38 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 In-Reply-To: <1593560682-40814-2-git-send-email-fenghua.yu@intel.com> Content-Language: en-US X-ClientProxiedBy: YT1PR01CA0134.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2f::13) To SN1PR12MB2414.namprd12.prod.outlook.com (2603:10b6:802:2e::31) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.2.100] (142.117.55.102) by YT1PR01CA0134.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 02:12:39 +0000 X-Originating-IP: [142.117.55.102] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: bc3c5078-7426-4bf3-f437-08d81d643bc0 X-MS-TrafficTypeDiagnostic: SA0PR12MB4415: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-Forefront-PRVS: 04519BA941 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Dq/ELg04DGndbsKhE+JwYH7UChaE1YPGVoH36INWejrhjhnIYuUqY5dG8/8Tl55B6wISbanFX9K5E162hpM9qEMKjcDwWYR6uaEaBXpFH1rRAdoxTn+nISgJD0zKyv468wILmwZT5Tvs3wQ/DOSB1TPW/4xzCTHMVislJ2M0LeS5w2DjzXJ7nP7DFbQEL694k5sZESZCVozjG2Ql/uXHAdecLi1S9aHuNcNX+Zys0MV6fMhGooGOcjxn3h6MYZTPN0X8ks+DTnYI8Ttoapm+wdIGJmAJk1gPPmeY6K2gSYHDhv2lBlBSIizB2aqj5VurGhYkJ+FMbYJuI5MBl57DKAmcktib3eSJdFrJqQ/nOqpFM5vtYPUSNPui10r+jcqRfeWP1jrlqsQu1i7TRRb+Ow== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN1PR12MB2414.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(136003)(346002)(366004)(39860400002)(396003)(8676002)(2616005)(86362001)(956004)(478600001)(26005)(6486002)(52116002)(44832011)(30864003)(186003)(83380400001)(31696002)(36756003)(5660300002)(4326008)(110136005)(66476007)(66556008)(2906002)(66946007)(8936002)(16526019)(16576012)(316002)(31686004)(54906003)(7416002)(921003)(43740500002)(559001)(579004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: uYUgtqpbPrsjiLCb87ew8hzDiS6RIKUJPVFwd/JS/ZN/DnB5WOhIzmBi7VY8JblY8U+P6KSzdfMsUlVPFz+y+vbZuPXFimsrA/7dos01zEMrT2kexlaoYeoog6k6947rxmPvsRsLl+LMACpZLOWin5/oyBfwARPTjDXtVkCayjTwdG2EC0lcfPwmvDi1vJ8FHRmsGgevnJF/v3iX9Bqn8aazgmlaiAbG0S0KErN2IvKUHyEPrq3dTKzBPpWgZtozzz0q/vXIpembdjpFoasVXWprW3eYBGgnYWvEbVgWZmFnq+D5lUkee9GfKJDNJU3LwfHDky0wzSE2vbGGQcoLr+Er1znwZQ7wkIAEszhXPVcNxyYOOLGTwVj0IDIYyMkpeHVVjv0evNVI0ki8ghOtzR34z44HuxMt78r3mg1Be6KhWXXQ85QCQsBTgVO9cu2TUbIHA1hsOAm+RFIasYx0KGzChi4AAEEqzBfakqoxkZRhlSIcsnPibIYS0NWYa0Dk X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: bc3c5078-7426-4bf3-f437-08d81d643bc0 X-MS-Exchange-CrossTenant-AuthSource: SN1PR12MB2414.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 02:12:41.2919 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BSET4ZEkydDr7NAKRqaSlQadeO9e5NK9k5s0CwzB+9EL9SO6+X8T/A0MYURKq5eKKgf81PdilqVfl23pxCaRSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4415 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: iommu@lists.linux-foundation.org, x86 , linux-kernel , amd-gfx Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" QW0gMjAyMC0wNi0zMCB1bSA3OjQ0IHAubS4gc2NocmllYiBGZW5naHVhIFl1Ogo+IFBBU0lEIGlz IGRlZmluZWQgYXMgYSBmZXcgZGlmZmVyZW50IHR5cGVzIGluIGlvbW11IGluY2x1ZGluZyAiaW50 IiwKPiAidTMyIiwgYW5kICJ1bnNpZ25lZCBpbnQiLiBUbyBiZSBjb25zaXN0ZW50IGFuZCB0byBt YXRjaCB3aXRoIHVhcGkKPiBkZWZpbml0aW9ucywgZGVmaW5lIFBBU0lEIGFuZCBpdHMgdmFyaWF0 aW9ucyAoZS5nLiBtYXggUEFTSUQpIGFzICJ1MzIiLgo+ICJ1MzIiIGlzIGFsc28gc2hvcnRlciBh bmQgYSBsaXR0bGUgbW9yZSBleHBsaWNpdCB0aGFuICJ1bnNpZ25lZCBpbnQiLgoKWW91IGRpZG4n dCBjaGFuZ2UgdGhlIHJldHVybiB0eXBlcyBvZiBhbWRncHVfcGFzaWRfYWxsb2MgYW5kCmtmZF9w YXNpZF9hbGxvYy4gYW1kZ3B1X3Bhc2lkX2FsbG9jIHJldHVybnMgaW50LCBiZWNhdXNlIGl0IGNh biByZXR1cm4KbmVnYXRpdmUgZXJyb3IgY29kZXMuIEJ1dCBrZmRfcGFzaWRfYWxsb2MgY291bGQg YmUgdXBkYXRlZCwgYmVjYXVzZSBpdApyZXR1cm5zIDAgZm9yIGVycm9ycy4KClJlZ2FyZHMsCsKg IEZlbGl4Cgo+Cj4gTm8gUEFTSUQgdHlwZSBjaGFuZ2UgaW4gdWFwaSBhbHRob3VnaCBpdCBkZWZp bmVzIFBBU0lEIGFzIF9fdTY0IGluCj4gc29tZSBwbGFjZXMuCj4KPiBTdWdnZXN0ZWQtYnk6IFRo b21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgo+IFNpZ25lZC1vZmYtYnk6IEZlbmdo dWEgWXUgPGZlbmdodWEueXVAaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBUb255IEx1Y2sgPHRv bnkubHVja0BpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IEx1IEJhb2x1IDxiYW9sdS5sdUBsaW51 eC5pbnRlbC5jb20+Cj4gLS0tCj4gdjU6Cj4gLSBSZXZpZXdlZCBieSBMdSBCYW9sdQo+Cj4gdjQ6 Cj4gLSBDaGFuZ2UgUEFTSUQgdHlwZSBmcm9tICJ1bnNpZ25lZCBpbnQiIHRvICJ1MzIiIChDaHJp c3RvcGgpCj4KPiB2MjoKPiAtIENyZWF0ZSB0aGlzIG5ldyBwYXRjaCB0byBkZWZpbmUgUEFTSUQg YXMgInVuc2lnbmVkIGludCIgY29uc2lzdGVudGx5IGluCj4gICBpb21tdSAoVGhvbWFzKQo+Cj4g IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuaCAgICB8ICA0ICstLQo+ ICAuLi4vZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjEwLmMgICAgfCAgMiArLQo+ ICAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y3LmMgfCAgMiArLQo+ ICAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y4LmMgfCAgMiArLQo+ ICAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmMgfCAgMiArLQo+ ICAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmggfCAgMiArLQo+ ICAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyAgfCAgNCArLS0K PiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lkcy5jICAgICAgIHwgIDYgKyst LQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWRzLmggICAgICAgfCAgNCAr LS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jICAgICAgIHwgIDIg Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgICAgICAgIHwgIDgg KystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmggICAgICAgIHwg IDggKystLS0KPiAgLi4uL2dwdS9kcm0vYW1kL2FtZGtmZC9jaWtfZXZlbnRfaW50ZXJydXB0LmMg IHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ2Rldi5jICAgICAg IHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21nci5oICAgICAg IHwgIDIgKy0KPiAgLi4uL2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5j IHwgIDcgKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2V2ZW50cy5jICAg ICAgIHwgIDggKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2V2ZW50cy5o ICAgICAgIHwgIDQgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9pb21tdS5j ICAgICAgICB8ICA2ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Bhc2lk LmMgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYu aCAgICAgICAgIHwgMTggKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX3Byb2Nlc3MuYyAgICAgIHwgIDIgKy0KPiAgLi4uL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dk X2tmZF9pbnRlcmZhY2UuaCAgIHwgIDIgKy0KPiAgZHJpdmVycy9pb21tdS9hbWQvYW1kX2lvbW11 LmggICAgICAgICAgICAgICAgIHwgMTAgKysrLS0tCj4gIGRyaXZlcnMvaW9tbXUvYW1kL2lvbW11 LmMgICAgICAgICAgICAgICAgICAgICB8IDMxICsrKysrKysrKystLS0tLS0tLS0KPiAgZHJpdmVy cy9pb21tdS9hbWQvaW9tbXVfdjIuYyAgICAgICAgICAgICAgICAgIHwgMjAgKysrKysrLS0tLS0t Cj4gIGRyaXZlcnMvaW9tbXUvaW50ZWwvZG1hci5jICAgICAgICAgICAgICAgICAgICB8ICA3ICsr Ky0tCj4gIGRyaXZlcnMvaW9tbXUvaW50ZWwvaW50ZWwtcGFzaWQuaCAgICAgICAgICAgICB8IDI0 ICsrKysrKystLS0tLS0tCj4gIGRyaXZlcnMvaW9tbXUvaW50ZWwvaW9tbXUuYyAgICAgICAgICAg ICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2lvbW11L2ludGVsL3Bhc2lkLmMgICAgICAgICAg ICAgICAgICAgfCAzMSArKysrKysrKystLS0tLS0tLS0tCj4gIGRyaXZlcnMvaW9tbXUvaW50ZWwv c3ZtLmMgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKy0tLS0KPiAgZHJpdmVycy9pb21tdS9p b21tdS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9taXNjL3Vh Y2NlL3VhY2NlLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgaW5jbHVkZS9saW51eC9h bWQtaW9tbXUuaCAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLS0KPiAgaW5jbHVkZS9saW51 eC9pbnRlbC1pb21tdS5oICAgICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tLQo+ICBpbmNsdWRl L2xpbnV4L2ludGVsLXN2bS5oICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICBpbmNsdWRl L2xpbnV4L2lvbW11LmggICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKystLS0KPiAgaW5j bHVkZS9saW51eC91YWNjZS5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgMzgg ZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKyksIDEzOSBkZWxldGlvbnMoLSkKPgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmggYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmgKPiBpbmRleCBmZmUxNDlh YWZjMzkuLmRmZWY1YTdlMGY1YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfYW1ka2ZkLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYW1ka2ZkLmgKPiBAQCAtMjA3LDExICsyMDcsMTEgQEAgdWludDhfdCBhbWRncHVfYW1k a2ZkX2dldF94Z21pX2hvcHNfY291bnQoc3RydWN0IGtnZF9kZXYgKmRzdCwgc3RydWN0IGtnZF9k ZXYgKnMKPiAgCX0pCj4gIAo+ICAvKiBHUFVWTSBBUEkgKi8KPiAtaW50IGFtZGdwdV9hbWRrZmRf Z3B1dm1fY3JlYXRlX3Byb2Nlc3Nfdm0oc3RydWN0IGtnZF9kZXYgKmtnZCwgdW5zaWduZWQgaW50 IHBhc2lkLAo+ICtpbnQgYW1kZ3B1X2FtZGtmZF9ncHV2bV9jcmVhdGVfcHJvY2Vzc192bShzdHJ1 Y3Qga2dkX2RldiAqa2dkLCB1MzIgcGFzaWQsCj4gIAkJCQkJdm9pZCAqKnZtLCB2b2lkICoqcHJv Y2Vzc19pbmZvLAo+ICAJCQkJCXN0cnVjdCBkbWFfZmVuY2UgKiplZik7Cj4gIGludCBhbWRncHVf YW1ka2ZkX2dwdXZtX2FjcXVpcmVfcHJvY2Vzc192bShzdHJ1Y3Qga2dkX2RldiAqa2dkLAo+IC0J CQkJCXN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgcGFzaWQsCj4gKwkJCQkJc3RydWN0 IGZpbGUgKmZpbHAsIHUzMiBwYXNpZCwKPiAgCQkJCQl2b2lkICoqdm0sIHZvaWQgKipwcm9jZXNz X2luZm8sCj4gIAkJCQkJc3RydWN0IGRtYV9mZW5jZSAqKmVmKTsKPiAgdm9pZCBhbWRncHVfYW1k a2ZkX2dwdXZtX2Rlc3Ryb3lfY2Ioc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3YxMC5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjEwLmMKPiBp bmRleCBiZjkyN2Y0MzI1MDYuLmVlNTMxYzM5ODhkMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92MTAuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3YxMC5jCj4gQEAgLTEwNSw3ICsx MDUsNyBAQCBzdGF0aWMgdm9pZCBrZ2RfcHJvZ3JhbV9zaF9tZW1fc2V0dGluZ3Moc3RydWN0IGtn ZF9kZXYgKmtnZCwgdWludDMyX3Qgdm1pZCwKPiAgCXVubG9ja19zcmJtKGtnZCk7Cj4gIH0KPiAg Cj4gLXN0YXRpYyBpbnQga2dkX3NldF9wYXNpZF92bWlkX21hcHBpbmcoc3RydWN0IGtnZF9kZXYg KmtnZCwgdW5zaWduZWQgaW50IHBhc2lkLAo+ICtzdGF0aWMgaW50IGtnZF9zZXRfcGFzaWRfdm1p ZF9tYXBwaW5nKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHUzMiBwYXNpZCwKPiAgCQkJCQl1bnNpZ25l ZCBpbnQgdm1pZCkKPiAgewo+ICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1k Z3B1X2RldmljZShrZ2QpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfYW1ka2ZkX2dmeF92Ny5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2FtZGtmZF9nZnhfdjcuYwo+IGluZGV4IDc0NDM2NmM3ZWU4NS4uNGQ0MTMxN2I5MjkyIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4 X3Y3LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dm eF92Ny5jCj4gQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0aWMgdm9pZCBrZ2RfcHJvZ3JhbV9zaF9t ZW1fc2V0dGluZ3Moc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDMyX3Qgdm1pZCwKPiAgCXVubG9j a19zcmJtKGtnZCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQga2dkX3NldF9wYXNpZF92bWlkX21h cHBpbmcoc3RydWN0IGtnZF9kZXYgKmtnZCwgdW5zaWduZWQgaW50IHBhc2lkLAo+ICtzdGF0aWMg aW50IGtnZF9zZXRfcGFzaWRfdm1pZF9tYXBwaW5nKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHUzMiBw YXNpZCwKPiAgCQkJCQl1bnNpZ25lZCBpbnQgdm1pZCkKPiAgewo+ICAJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2QpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjguYwo+IGluZGV4IGZlYWI0Y2M2 ZTgzNi4uMzU5MTdkNGI1MGY2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y4LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jCj4gQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIHZv aWQga2dkX3Byb2dyYW1fc2hfbWVtX3NldHRpbmdzKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQz Ml90IHZtaWQsCj4gIAl1bmxvY2tfc3JibShrZ2QpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGtn ZF9zZXRfcGFzaWRfdm1pZF9tYXBwaW5nKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVuc2lnbmVkIGlu dCBwYXNpZCwKPiArc3RhdGljIGludCBrZ2Rfc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyhzdHJ1Y3Qg a2dkX2RldiAqa2dkLCB1MzIgcGFzaWQsCj4gIAkJCQkJdW5zaWduZWQgaW50IHZtaWQpCj4gIHsK PiAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZ2V0X2FtZGdwdV9kZXZpY2Uoa2dkKTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9n ZnhfdjkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5 LmMKPiBpbmRleCBjN2ZkMGM0N2IyNTQuLmI0Yjg4ZTRkYTRkZSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYwo+IEBAIC0xMTAs NyArMTEwLDcgQEAgdm9pZCBrZ2RfZ2Z4X3Y5X3Byb2dyYW1fc2hfbWVtX3NldHRpbmdzKHN0cnVj dCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHZtaWQsCj4gIAl1bmxvY2tfc3JibShrZ2QpOwo+ICB9 Cj4gIAo+IC1pbnQga2dkX2dmeF92OV9zZXRfcGFzaWRfdm1pZF9tYXBwaW5nKHN0cnVjdCBrZ2Rf ZGV2ICprZ2QsIHVuc2lnbmVkIGludCBwYXNpZCwKPiAraW50IGtnZF9nZnhfdjlfc2V0X3Bhc2lk X3ZtaWRfbWFwcGluZyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1MzIgcGFzaWQsCj4gIAkJCQkJdW5z aWduZWQgaW50IHZtaWQpCj4gIHsKPiAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZ2V0 X2FtZGdwdV9kZXZpY2Uoa2dkKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmgKPiBpbmRleCBhZWRmNjdkNTc0NDkuLmZmMmJjNzJlNjY0 NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2Zk X2dmeF92OS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtm ZF9nZnhfdjkuaAo+IEBAIC0yNiw3ICsyNiw3IEBAIHZvaWQga2dkX2dmeF92OV9wcm9ncmFtX3No X21lbV9zZXR0aW5ncyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCB2bWlkLAo+ICAJCXVp bnQzMl90IHNoX21lbV9jb25maWcsCj4gIAkJdWludDMyX3Qgc2hfbWVtX2FwZTFfYmFzZSwgdWlu dDMyX3Qgc2hfbWVtX2FwZTFfbGltaXQsCj4gIAkJdWludDMyX3Qgc2hfbWVtX2Jhc2VzKTsKPiAt aW50IGtnZF9nZnhfdjlfc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyhzdHJ1Y3Qga2dkX2RldiAqa2dk LCB1bnNpZ25lZCBpbnQgcGFzaWQsCj4gK2ludCBrZ2RfZ2Z4X3Y5X3NldF9wYXNpZF92bWlkX21h cHBpbmcoc3RydWN0IGtnZF9kZXYgKmtnZCwgdTMyIHBhc2lkLAo+ICAJCXVuc2lnbmVkIGludCB2 bWlkKTsKPiAgaW50IGtnZF9nZnhfdjlfaW5pdF9pbnRlcnJ1cHRzKHN0cnVjdCBrZ2RfZGV2ICpr Z2QsIHVpbnQzMl90IHBpcGVfaWQpOwo+ICBpbnQga2dkX2dmeF92OV9ocWRfbG9hZChzdHJ1Y3Qg a2dkX2RldiAqa2dkLCB2b2lkICptcWQsIHVpbnQzMl90IHBpcGVfaWQsCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwo+IGluZGV4IGI5MWI1 MTcxMjcwZi4uOWQwNjM2NjMyMGJjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwo+IEBAIC05OTQsNyArOTk0LDcgQEAgc3RhdGlj IGludCBpbml0X2tmZF92bShzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgdm9pZCAqKnByb2Nlc3NfaW5m bywKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLWludCBhbWRncHVfYW1ka2ZkX2dwdXZtX2Ny ZWF0ZV9wcm9jZXNzX3ZtKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVuc2lnbmVkIGludCBwYXNpZCwK PiAraW50IGFtZGdwdV9hbWRrZmRfZ3B1dm1fY3JlYXRlX3Byb2Nlc3Nfdm0oc3RydWN0IGtnZF9k ZXYgKmtnZCwgdTMyIHBhc2lkLAo+ICAJCQkJCSAgdm9pZCAqKnZtLCB2b2lkICoqcHJvY2Vzc19p bmZvLAo+ICAJCQkJCSAgc3RydWN0IGRtYV9mZW5jZSAqKmVmKQo+ICB7Cj4gQEAgLTEwMzAsNyAr MTAzMCw3IEBAIGludCBhbWRncHVfYW1ka2ZkX2dwdXZtX2NyZWF0ZV9wcm9jZXNzX3ZtKHN0cnVj dCBrZ2RfZGV2ICprZ2QsIHVuc2lnbmVkIGludCBwYXNpCj4gIH0KPiAgCj4gIGludCBhbWRncHVf YW1ka2ZkX2dwdXZtX2FjcXVpcmVfcHJvY2Vzc192bShzdHJ1Y3Qga2dkX2RldiAqa2dkLAo+IC0J CQkJCSAgIHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgcGFzaWQsCj4gKwkJCQkJICAg c3RydWN0IGZpbGUgKmZpbHAsIHUzMiBwYXNpZCwKPiAgCQkJCQkgICB2b2lkICoqdm0sIHZvaWQg Kipwcm9jZXNzX2luZm8sCj4gIAkJCQkJICAgc3RydWN0IGRtYV9mZW5jZSAqKmVmKQo+ICB7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuYwo+IGluZGV4IGZlOTJkY2Q5NGQ0 YS4uM2Y2OTdlOTAxMGQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9pZHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9p ZHMuYwo+IEBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyBERUZJTkVfSURBKGFtZGdwdV9wYXNpZF9p ZGEpOwo+ICAvKiBIZWxwZXIgdG8gZnJlZSBwYXNpZCBmcm9tIGEgZmVuY2UgY2FsbGJhY2sgKi8K PiAgc3RydWN0IGFtZGdwdV9wYXNpZF9jYiB7Cj4gIAlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGNiOwo+ IC0JdW5zaWduZWQgaW50IHBhc2lkOwo+ICsJdTMyIHBhc2lkOwo+ICB9Owo+ICAKPiAgLyoqCj4g QEAgLTc5LDcgKzc5LDcgQEAgaW50IGFtZGdwdV9wYXNpZF9hbGxvYyh1bnNpZ25lZCBpbnQgYml0 cykKPiAgICogYW1kZ3B1X3Bhc2lkX2ZyZWUgLSBGcmVlIGEgUEFTSUQKPiAgICogQHBhc2lkOiBQ QVNJRCB0byBmcmVlCj4gICAqLwo+IC12b2lkIGFtZGdwdV9wYXNpZF9mcmVlKHVuc2lnbmVkIGlu dCBwYXNpZCkKPiArdm9pZCBhbWRncHVfcGFzaWRfZnJlZSh1MzIgcGFzaWQpCj4gIHsKPiAgCXRy YWNlX2FtZGdwdV9wYXNpZF9mcmVlZChwYXNpZCk7Cj4gIAlpZGFfc2ltcGxlX3JlbW92ZSgmYW1k Z3B1X3Bhc2lkX2lkYSwgcGFzaWQpOwo+IEBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIHZvaWQg YW1kZ3B1X3Bhc2lkX2ZyZWVfY2Ioc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCj4gICAqIEZyZWUg dGhlIHBhc2lkIG9ubHkgYWZ0ZXIgYWxsIHRoZSBmZW5jZXMgaW4gcmVzdiBhcmUgc2lnbmFsZWQu Cj4gICAqLwo+ICB2b2lkIGFtZGdwdV9wYXNpZF9mcmVlX2RlbGF5ZWQoc3RydWN0IGRtYV9yZXN2 ICpyZXN2LAo+IC0JCQkgICAgICAgdW5zaWduZWQgaW50IHBhc2lkKQo+ICsJCQkgICAgICAgdTMy IHBhc2lkKQo+ICB7Cj4gIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgKipmZW5jZXM7Cj4gIAlz dHJ1Y3QgYW1kZ3B1X3Bhc2lkX2NiICpjYjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2lkcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2lkcy5oCj4gaW5kZXggOGU1ODMyNWJiY2EyLi4wYzNiNGZhMWY5MzYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lkcy5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lkcy5oCj4gQEAgLTcxLDkgKzcxLDkgQEAgc3Ry dWN0IGFtZGdwdV92bWlkX21nciB7Cj4gIH07Cj4gIAo+ICBpbnQgYW1kZ3B1X3Bhc2lkX2FsbG9j KHVuc2lnbmVkIGludCBiaXRzKTsKPiAtdm9pZCBhbWRncHVfcGFzaWRfZnJlZSh1bnNpZ25lZCBp bnQgcGFzaWQpOwo+ICt2b2lkIGFtZGdwdV9wYXNpZF9mcmVlKHUzMiBwYXNpZCk7Cj4gIHZvaWQg YW1kZ3B1X3Bhc2lkX2ZyZWVfZGVsYXllZChzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCj4gLQkJCSAg ICAgICB1bnNpZ25lZCBpbnQgcGFzaWQpOwo+ICsJCQkgICAgICAgdTMyIHBhc2lkKTsKPiAgCj4g IGJvb2wgYW1kZ3B1X3ZtaWRfaGFkX2dwdV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKPiAgCQkJICAgICAgIHN0cnVjdCBhbWRncHVfdm1pZCAqaWQpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfa21zLmMKPiBpbmRleCBkN2UxN2UzNGZlZTEuLjg1MDNjY2U0Njdl YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMKPiBAQCAtMTA2 Miw3ICsxMDYyLDcgQEAgdm9pZCBhbWRncHVfZHJpdmVyX3Bvc3RjbG9zZV9rbXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiAgCXN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0gZmlsZV9wcml2 LT5kcml2ZXJfcHJpdjsKPiAgCXN0cnVjdCBhbWRncHVfYm9fbGlzdCAqbGlzdDsKPiAgCXN0cnVj dCBhbWRncHVfYm8gKnBkOwo+IC0JdW5zaWduZWQgaW50IHBhc2lkOwo+ICsJdTMyIHBhc2lkOwo+ ICAJaW50IGhhbmRsZTsKPiAgCj4gIAlpZiAoIWZwcml2KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92bS5jCj4gaW5kZXggNzQxNzc1NGU5MTQxLi5hZGEyNTM0ZGQ4ZDkgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+IEBAIC0yNzgzLDcgKzI3ODMs NyBAQCBsb25nIGFtZGdwdV92bV93YWl0X2lkbGUoc3RydWN0IGFtZGdwdV92bSAqdm0sIGxvbmcg dGltZW91dCkKPiAgICogMCBmb3Igc3VjY2VzcywgZXJyb3IgZm9yIGZhaWx1cmUuCj4gICAqLwo+ ICBpbnQgYW1kZ3B1X3ZtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBh bWRncHVfdm0gKnZtLAo+IC0JCSAgIGludCB2bV9jb250ZXh0LCB1bnNpZ25lZCBpbnQgcGFzaWQp Cj4gKwkJICAgaW50IHZtX2NvbnRleHQsIHUzMiBwYXNpZCkKPiAgewo+ICAJc3RydWN0IGFtZGdw dV9ib19wYXJhbSBicDsKPiAgCXN0cnVjdCBhbWRncHVfYm8gKnJvb3Q7Cj4gQEAgLTI5NTQsNyAr Mjk1NCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX2NoZWNrX2NsZWFuX3Jlc2VydmVkKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAgKiAwIGZvciBzdWNjZXNzLCAtZXJybm8gZm9yIGVy cm9ycy4KPiAgICovCj4gIGludCBhbWRncHVfdm1fbWFrZV9jb21wdXRlKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiAtCQkJICAgdW5zaWduZWQgaW50 IHBhc2lkKQo+ICsJCQkgICB1MzIgcGFzaWQpCj4gIHsKPiAgCWJvb2wgcHRlX3N1cHBvcnRfYXRz ID0gKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOKTsKPiAgCWludCByOwo+IEBAIC0zMjUy LDcgKzMyNTIsNyBAQCBpbnQgYW1kZ3B1X3ZtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlscCkKPiAgICogQHBhc2lkOiBQQVNJRCBp ZGVudGlmaWVyIGZvciBWTQo+ICAgKiBAdGFza19pbmZvOiB0YXNrX2luZm8gdG8gZmlsbC4KPiAg ICovCj4gLXZvaWQgYW1kZ3B1X3ZtX2dldF90YXNrX2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHVuc2lnbmVkIGludCBwYXNpZCwKPiArdm9pZCBhbWRncHVfdm1fZ2V0X3Rhc2tfaW5m byhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHBhc2lkLAo+ICAJCQkgc3RydWN0IGFt ZGdwdV90YXNrX2luZm8gKnRhc2tfaW5mbykKPiAgewo+ICAJc3RydWN0IGFtZGdwdV92bSAqdm07 Cj4gQEAgLTMyOTYsNyArMzI5Niw3IEBAIHZvaWQgYW1kZ3B1X3ZtX3NldF90YXNrX2luZm8oc3Ry dWN0IGFtZGdwdV92bSAqdm0pCj4gICAqIFRyeSB0byBncmFjZWZ1bGx5IGhhbmRsZSBhIFZNIGZh dWx0LiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZmF1bHQgd2FzIGhhbmRsZWQgYW5kCj4gICAqIHNob3Vs ZG4ndCBiZSByZXBvcnRlZCBhbnkgbW9yZS4KPiAgICovCj4gLWJvb2wgYW1kZ3B1X3ZtX2hhbmRs ZV9mYXVsdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgaW50IHBhc2lkLAo+ ICtib29sIGFtZGdwdV92bV9oYW5kbGVfZmF1bHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs IHUzMiBwYXNpZCwKPiAgCQkJICAgIHVpbnQ2NF90IGFkZHIpCj4gIHsKPiAgCXN0cnVjdCBhbWRn cHVfYm8gKnJvb3Q7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92bS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgKPiBpbmRl eCBjOGU2OGQ3ODkwYmYuLmMyZjIzYjA3MWYxNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92bS5oCj4gQEAgLTM3MSw4ICszNzEsOCBAQCB2b2lkIGFtZGdwdV92bV9tYW5h Z2VyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+ICAKPiAgbG9uZyBhbWRncHVf dm1fd2FpdF9pZGxlKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBsb25nIHRpbWVvdXQpOwo+ICBpbnQg YW1kZ3B1X3ZtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVf dm0gKnZtLAo+IC0JCSAgIGludCB2bV9jb250ZXh0LCB1bnNpZ25lZCBpbnQgcGFzaWQpOwo+IC1p bnQgYW1kZ3B1X3ZtX21ha2VfY29tcHV0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3Ry dWN0IGFtZGdwdV92bSAqdm0sIHVuc2lnbmVkIGludCBwYXNpZCk7Cj4gKwkJICAgaW50IHZtX2Nv bnRleHQsIHUzMiBwYXNpZCk7Cj4gK2ludCBhbWRncHVfdm1fbWFrZV9jb21wdXRlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgdTMyIHBhc2lkKTsKPiAg dm9pZCBhbWRncHVfdm1fcmVsZWFzZV9jb21wdXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSk7Cj4gIHZvaWQgYW1kZ3B1X3ZtX2Zpbmkoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtKTsKPiAgdm9pZCBhbWRncHVf dm1fZ2V0X3BkX2JvKHN0cnVjdCBhbWRncHVfdm0gKnZtLAo+IEBAIC00MjksOSArNDI5LDkgQEAg Ym9vbCBhbWRncHVfdm1fbmVlZF9waXBlbGluZV9zeW5jKHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZywKPiAgCQkJCSAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYik7Cj4gIHZvaWQgYW1kZ3B1X3ZtX2No ZWNrX2NvbXB1dGVfYnVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPiAgCj4gLXZvaWQg YW1kZ3B1X3ZtX2dldF90YXNrX2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2ln bmVkIGludCBwYXNpZCwKPiArdm9pZCBhbWRncHVfdm1fZ2V0X3Rhc2tfaW5mbyhzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwgdTMyIHBhc2lkLAo+ICAJCQkgICAgIHN0cnVjdCBhbWRncHVfdGFz a19pbmZvICp0YXNrX2luZm8pOwo+IC1ib29sIGFtZGdwdV92bV9oYW5kbGVfZmF1bHQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2lnbmVkIGludCBwYXNpZCwKPiArYm9vbCBhbWRncHVf dm1faGFuZGxlX2ZhdWx0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgcGFzaWQsCj4g IAkJCSAgICB1aW50NjRfdCBhZGRyKTsKPiAgCj4gIHZvaWQgYW1kZ3B1X3ZtX3NldF90YXNrX2lu Zm8oc3RydWN0IGFtZGdwdV92bSAqdm0pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGtmZC9jaWtfZXZlbnRfaW50ZXJydXB0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9jaWtfZXZlbnRfaW50ZXJydXB0LmMKPiBpbmRleCA5ZjU5YmE5M2NmZTAuLmMyZmQzMDA0 NWFkNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jaWtfZXZlbnRf aW50ZXJydXB0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jaWtfZXZlbnRf aW50ZXJydXB0LmMKPiBAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgdm9pZCBjaWtfZXZlbnRfaW50 ZXJydXB0X3dxKHN0cnVjdCBrZmRfZGV2ICpkZXYsCj4gIAkJCShjb25zdCBzdHJ1Y3QgY2lrX2lo X3JpbmdfZW50cnkgKilpaF9yaW5nX2VudHJ5Owo+ICAJdWludDMyX3QgY29udGV4dF9pZCA9IGlo cmUtPmRhdGEgJiAweGZmZmZmZmY7Cj4gIAl1bnNpZ25lZCBpbnQgdm1pZCAgPSAoaWhyZS0+cmlu Z19pZCAmIDB4MDAwMGZmMDApID4+IDg7Cj4gLQl1bnNpZ25lZCBpbnQgcGFzaWQgPSAoaWhyZS0+ cmluZ19pZCAmIDB4ZmZmZjAwMDApID4+IDE2Owo+ICsJdTMyIHBhc2lkID0gKGlocmUtPnJpbmdf aWQgJiAweGZmZmYwMDAwKSA+PiAxNjsKPiAgCj4gIAlpZiAocGFzaWQgPT0gMCkKPiAgCQlyZXR1 cm47Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdkZXYu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdkZXYuYwo+IGluZGV4IDI3YmNj NWI0NzJmNi4uYjI1OGEzZGFlNzY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1ka2ZkL2tmZF9kYmdkZXYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9kYmdkZXYuYwo+IEBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIGRiZ2Rldl9hZGRyZXNz X3dhdGNoX2Rpc2FibGVfbm9kaXEoc3RydWN0IGtmZF9kZXYgKmRldikKPiAgfQo+ICAKPiAgc3Rh dGljIGludCBkYmdkZXZfZGlxX3N1Ym1pdF9pYihzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2LAo+ IC0JCQkJdW5zaWduZWQgaW50IHBhc2lkLCB1aW50NjRfdCB2bWlkMF9hZGRyZXNzLAo+ICsJCQkJ dTMyIHBhc2lkLCB1aW50NjRfdCB2bWlkMF9hZGRyZXNzLAo+ICAJCQkJdWludDMyX3QgKnBhY2tl dF9idWZmLCBzaXplX3Qgc2l6ZV9pbl9ieXRlcykKPiAgewo+ICAJc3RydWN0IHBtNF9fcmVsZWFz ZV9tZW0gKnJtX3BhY2tldDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX2RiZ21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21nci5o Cj4gaW5kZXggYTA0YTFmZTFkMGQ5Li5mOWM2ZGYxZmRjNWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21nci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRrZmQva2ZkX2RiZ21nci5oCj4gQEAgLTI3NSw3ICsyNzUsNyBAQCBzdHJ1Y3Qga2Zk X2RiZ2RldiB7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3Qga2ZkX2RiZ21nciB7Cj4gLQl1bnNpZ25lZCBp bnQgcGFzaWQ7Cj4gKwl1MzIgcGFzaWQ7Cj4gIAlzdHJ1Y3Qga2ZkX2RldiAqZGV2Owo+ICAJc3Ry dWN0IGtmZF9kYmdkZXYgKmRiZ2RldjsKPiAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYwo+IGluZGV4IGU5YzQ4Njdh YmVmZi4uOTU3MWE2ZTVkZTRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k a2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMKPiBAQCAtNDAsNyArNDAsNyBAQAo+ ICAjZGVmaW5lIENJS19IUERfRU9QX0JZVEVTICgxVSA8PCBDSUtfSFBEX0VPUF9CWVRFU19MT0cy KQo+ICAKPiAgc3RhdGljIGludCBzZXRfcGFzaWRfdm1pZF9tYXBwaW5nKHN0cnVjdCBkZXZpY2Vf cXVldWVfbWFuYWdlciAqZHFtLAo+IC0JCQkJCXVuc2lnbmVkIGludCBwYXNpZCwgdW5zaWduZWQg aW50IHZtaWQpOwo+ICsJCQkJICB1MzIgcGFzaWQsIHVuc2lnbmVkIGludCB2bWlkKTsKPiAgCj4g IHN0YXRpYyBpbnQgZXhlY3V0ZV9xdWV1ZXNfY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5h Z2VyICpkcW0sCj4gIAkJCQllbnVtIGtmZF91bm1hcF9xdWV1ZXNfZmlsdGVyIGZpbHRlciwKPiBA QCAtOTA5LDcgKzkwOSw3IEBAIHN0YXRpYyBpbnQgdW5yZWdpc3Rlcl9wcm9jZXNzKHN0cnVjdCBk ZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50Cj4gLXNldF9w YXNpZF92bWlkX21hcHBpbmcoc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIHVuc2ln bmVkIGludCBwYXNpZCwKPiArc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyhzdHJ1Y3QgZGV2aWNlX3F1 ZXVlX21hbmFnZXIgKmRxbSwgdTMyIHBhc2lkLAo+ICAJCQl1bnNpZ25lZCBpbnQgdm1pZCkKPiAg ewo+ICAJcmV0dXJuIGRxbS0+ZGV2LT5rZmQya2dkLT5zZXRfcGFzaWRfdm1pZF9tYXBwaW5nKAo+ IEBAIC0xOTI1LDggKzE5MjUsNyBAQCB2b2lkIGRldmljZV9xdWV1ZV9tYW5hZ2VyX3VuaW5pdChz dHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSkKPiAgCWtmcmVlKGRxbSk7Cj4gIH0KPiAg Cj4gLWludCBrZmRfcHJvY2Vzc192bV9mYXVsdChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIg KmRxbSwKPiAtCQkJIHVuc2lnbmVkIGludCBwYXNpZCkKPiAraW50IGtmZF9wcm9jZXNzX3ZtX2Zh dWx0KHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLCB1MzIgcGFzaWQpCj4gIHsKPiAg CXN0cnVjdCBrZmRfcHJvY2Vzc19kZXZpY2UgKnBkZDsKPiAgCXN0cnVjdCBrZmRfcHJvY2VzcyAq cCA9IGtmZF9sb29rdXBfcHJvY2Vzc19ieV9wYXNpZChwYXNpZCk7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9ldmVudHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1ka2ZkL2tmZF9ldmVudHMuYwo+IGluZGV4IGE5NTgzYjk1ZmNjMS4uYmEyYzJjZTBjNTVh IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9ldmVudHMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9ldmVudHMuYwo+IEBAIC00NjAs NyArNDYwLDcgQEAgc3RhdGljIHZvaWQgc2V0X2V2ZW50X2Zyb21faW50ZXJydXB0KHN0cnVjdCBr ZmRfcHJvY2VzcyAqcCwKPiAgCX0KPiAgfQo+ICAKPiAtdm9pZCBrZmRfc2lnbmFsX2V2ZW50X2lu dGVycnVwdCh1bnNpZ25lZCBpbnQgcGFzaWQsIHVpbnQzMl90IHBhcnRpYWxfaWQsCj4gK3ZvaWQg a2ZkX3NpZ25hbF9ldmVudF9pbnRlcnJ1cHQodTMyIHBhc2lkLCB1aW50MzJfdCBwYXJ0aWFsX2lk LAo+ICAJCQkJdWludDMyX3QgdmFsaWRfaWRfYml0cykKPiAgewo+ICAJc3RydWN0IGtmZF9ldmVu dCAqZXYgPSBOVUxMOwo+IEBAIC04NzIsNyArODcyLDcgQEAgc3RhdGljIHZvaWQgbG9va3VwX2V2 ZW50c19ieV90eXBlX2FuZF9zaWduYWwoc3RydWN0IGtmZF9wcm9jZXNzICpwLAo+ICB9Cj4gIAo+ ICAjaWZkZWYgS0ZEX1NVUFBPUlRfSU9NTVVfVjIKPiAtdm9pZCBrZmRfc2lnbmFsX2lvbW11X2V2 ZW50KHN0cnVjdCBrZmRfZGV2ICpkZXYsIHVuc2lnbmVkIGludCBwYXNpZCwKPiArdm9pZCBrZmRf c2lnbmFsX2lvbW11X2V2ZW50KHN0cnVjdCBrZmRfZGV2ICpkZXYsIHUzMiBwYXNpZCwKPiAgCQl1 bnNpZ25lZCBsb25nIGFkZHJlc3MsIGJvb2wgaXNfd3JpdGVfcmVxdWVzdGVkLAo+ICAJCWJvb2wg aXNfZXhlY3V0ZV9yZXF1ZXN0ZWQpCj4gIHsKPiBAQCAtOTUwLDcgKzk1MCw3IEBAIHZvaWQga2Zk X3NpZ25hbF9pb21tdV9ldmVudChzdHJ1Y3Qga2ZkX2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgcGFz aWQsCj4gIH0KPiAgI2VuZGlmIC8qIEtGRF9TVVBQT1JUX0lPTU1VX1YyICovCj4gIAo+IC12b2lk IGtmZF9zaWduYWxfaHdfZXhjZXB0aW9uX2V2ZW50KHVuc2lnbmVkIGludCBwYXNpZCkKPiArdm9p ZCBrZmRfc2lnbmFsX2h3X2V4Y2VwdGlvbl9ldmVudCh1MzIgcGFzaWQpCj4gIHsKPiAgCS8qCj4g IAkgKiBCZWNhdXNlIHdlIGFyZSBjYWxsZWQgZnJvbSBhcmJpdHJhcnkgY29udGV4dCAod29ya3F1 ZXVlKSBhcyBvcHBvc2VkCj4gQEAgLTk3MSw3ICs5NzEsNyBAQCB2b2lkIGtmZF9zaWduYWxfaHdf ZXhjZXB0aW9uX2V2ZW50KHVuc2lnbmVkIGludCBwYXNpZCkKPiAgCWtmZF91bnJlZl9wcm9jZXNz KHApOwo+ICB9Cj4gIAo+IC12b2lkIGtmZF9zaWduYWxfdm1fZmF1bHRfZXZlbnQoc3RydWN0IGtm ZF9kZXYgKmRldiwgdW5zaWduZWQgaW50IHBhc2lkLAo+ICt2b2lkIGtmZF9zaWduYWxfdm1fZmF1 bHRfZXZlbnQoc3RydWN0IGtmZF9kZXYgKmRldiwgdTMyIHBhc2lkLAo+ICAJCQkJc3RydWN0IGtm ZF92bV9mYXVsdF9pbmZvICppbmZvKQo+ICB7Cj4gIAlzdHJ1Y3Qga2ZkX2V2ZW50ICpldjsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2V2ZW50cy5oIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2V2ZW50cy5oCj4gaW5kZXggYzdhYzZjNzNhZjg2 Li5jOGZlNWRiZGFkNTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX2V2ZW50cy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2V2ZW50 cy5oCj4gQEAgLTc5LDcgKzc5LDcgQEAgc3RydWN0IGtmZF9ldmVudCB7Cj4gICNkZWZpbmUgS0ZE X0VWRU5UX1RZUEVfREVCVUcgNQo+ICAjZGVmaW5lIEtGRF9FVkVOVF9UWVBFX01FTU9SWSA4Cj4g IAo+IC1leHRlcm4gdm9pZCBrZmRfc2lnbmFsX2V2ZW50X2ludGVycnVwdCh1bnNpZ25lZCBpbnQg cGFzaWQsIHVpbnQzMl90IHBhcnRpYWxfaWQsCj4gLQkJCQkJdWludDMyX3QgdmFsaWRfaWRfYml0 cyk7Cj4gK2V4dGVybiB2b2lkIGtmZF9zaWduYWxfZXZlbnRfaW50ZXJydXB0KHUzMiBwYXNpZCwg dWludDMyX3QgcGFydGlhbF9pZCwKPiArCQkJCSAgICAgICB1aW50MzJfdCB2YWxpZF9pZF9iaXRz KTsKPiAgCj4gICNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfaW9tbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9pb21tdS5jCj4g aW5kZXggN2M4Nzg2YjllYjBhLi5lOGVmMzg4NjY4OGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX2lvbW11LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfaW9tbXUuYwo+IEBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBrZmRfaW9tbXVf dW5iaW5kX3Byb2Nlc3Moc3RydWN0IGtmZF9wcm9jZXNzICpwKQo+ICB9Cj4gIAo+ICAvKiBDYWxs YmFjayBmb3IgcHJvY2VzcyBzaHV0ZG93biBpbnZva2VkIGJ5IHRoZSBJT01NVSBkcml2ZXIgKi8K PiAtc3RhdGljIHZvaWQgaW9tbXVfcGFzaWRfc2h1dGRvd25fY2FsbGJhY2soc3RydWN0IHBjaV9k ZXYgKnBkZXYsIGludCBwYXNpZCkKPiArc3RhdGljIHZvaWQgaW9tbXVfcGFzaWRfc2h1dGRvd25f Y2FsbGJhY2soc3RydWN0IHBjaV9kZXYgKnBkZXYsIHUzMiBwYXNpZCkKPiAgewo+ICAJc3RydWN0 IGtmZF9kZXYgKmRldiA9IGtmZF9kZXZpY2VfYnlfcGNpX2RldihwZGV2KTsKPiAgCXN0cnVjdCBr ZmRfcHJvY2VzcyAqcDsKPiBAQCAtMTg1LDggKzE4NSw4IEBAIHN0YXRpYyB2b2lkIGlvbW11X3Bh c2lkX3NodXRkb3duX2NhbGxiYWNrKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgcGFzaWQpCj4g IH0KPiAgCj4gIC8qIFRoaXMgZnVuY3Rpb24gY2FsbGVkIGJ5IElPTU1VIGRyaXZlciBvbiBQUFIg ZmFpbHVyZSAqLwo+IC1zdGF0aWMgaW50IGlvbW11X2ludmFsaWRfcHByX2NiKHN0cnVjdCBwY2lf ZGV2ICpwZGV2LCBpbnQgcGFzaWQsCj4gLQkJdW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1MTYgZmxh Z3MpCj4gK3N0YXRpYyBpbnQgaW9tbXVfaW52YWxpZF9wcHJfY2Ioc3RydWN0IHBjaV9kZXYgKnBk ZXYsIHUzMiBwYXNpZCwKPiArCQkJCXVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdTE2IGZsYWdzKQo+ ICB7Cj4gIAlzdHJ1Y3Qga2ZkX2RldiAqZGV2Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Bhc2lkLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfcGFzaWQuYwo+IGluZGV4IDMzYjA4ZmYwMGI1MC4uOTVmZjFiNjA2YWEyIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wYXNpZC5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Bhc2lkLmMKPiBAQCAtNzcsNyArNzcsNyBAQCB1 bnNpZ25lZCBpbnQga2ZkX3Bhc2lkX2FsbG9jKHZvaWQpCj4gIAlyZXR1cm4gciA+IDAgPyByIDog MDsKPiAgfQo+ICAKPiAtdm9pZCBrZmRfcGFzaWRfZnJlZSh1bnNpZ25lZCBpbnQgcGFzaWQpCj4g K3ZvaWQga2ZkX3Bhc2lkX2ZyZWUodTMyIHBhc2lkKQo+ICB7Cj4gIAlpZiAoa2ZkMmtnZCkKPiAg CQlhbWRncHVfcGFzaWRfZnJlZShwYXNpZCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1ka2ZkL2tmZF9wcml2LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf cHJpdi5oCj4gaW5kZXggZmVlNjA5MjFmY2NmLi42MjVlZGRiMmZiYjcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9wcml2LmgKPiBAQCAtNzE1LDcgKzcxNSw3IEBAIHN0cnVjdCBr ZmRfcHJvY2VzcyB7Cj4gIAkvKiBXZSB3YW50IHRvIHJlY2VpdmUgYSBub3RpZmljYXRpb24gd2hl biB0aGUgbW1fc3RydWN0IGlzIGRlc3Ryb3llZCAqLwo+ICAJc3RydWN0IG1tdV9ub3RpZmllciBt bXVfbm90aWZpZXI7Cj4gIAo+IC0JdWludDE2X3QgcGFzaWQ7Cj4gKwl1MzIgcGFzaWQ7Cj4gIAl1 bnNpZ25lZCBpbnQgZG9vcmJlbGxfaW5kZXg7Cj4gIAo+ICAJLyoKPiBAQCAtNzkwLDcgKzc5MCw3 IEBAIGludCBrZmRfcHJvY2Vzc19jcmVhdGVfd3Eodm9pZCk7Cj4gIHZvaWQga2ZkX3Byb2Nlc3Nf ZGVzdHJveV93cSh2b2lkKTsKPiAgc3RydWN0IGtmZF9wcm9jZXNzICprZmRfY3JlYXRlX3Byb2Nl c3Moc3RydWN0IGZpbGUgKmZpbGVwKTsKPiAgc3RydWN0IGtmZF9wcm9jZXNzICprZmRfZ2V0X3By b2Nlc3MoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICopOwo+IC1zdHJ1Y3Qga2ZkX3Byb2Nlc3Mg KmtmZF9sb29rdXBfcHJvY2Vzc19ieV9wYXNpZCh1bnNpZ25lZCBpbnQgcGFzaWQpOwo+ICtzdHJ1 Y3Qga2ZkX3Byb2Nlc3MgKmtmZF9sb29rdXBfcHJvY2Vzc19ieV9wYXNpZCh1MzIgcGFzaWQpOwo+ ICBzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKmtmZF9sb29rdXBfcHJvY2Vzc19ieV9tbShjb25zdCBzdHJ1 Y3QgbW1fc3RydWN0ICptbSk7Cj4gIHZvaWQga2ZkX3VucmVmX3Byb2Nlc3Moc3RydWN0IGtmZF9w cm9jZXNzICpwKTsKPiAgaW50IGtmZF9wcm9jZXNzX2V2aWN0X3F1ZXVlcyhzdHJ1Y3Qga2ZkX3By b2Nlc3MgKnApOwo+IEBAIC04MzIsNyArODMyLDcgQEAgdm9pZCBrZmRfcGFzaWRfZXhpdCh2b2lk KTsKPiAgYm9vbCBrZmRfc2V0X3Bhc2lkX2xpbWl0KHVuc2lnbmVkIGludCBuZXdfbGltaXQpOwo+ ICB1bnNpZ25lZCBpbnQga2ZkX2dldF9wYXNpZF9saW1pdCh2b2lkKTsKPiAgdW5zaWduZWQgaW50 IGtmZF9wYXNpZF9hbGxvYyh2b2lkKTsKPiAtdm9pZCBrZmRfcGFzaWRfZnJlZSh1bnNpZ25lZCBp bnQgcGFzaWQpOwo+ICt2b2lkIGtmZF9wYXNpZF9mcmVlKHUzMiBwYXNpZCk7Cj4gIAo+ICAvKiBE b29yYmVsbHMgKi8KPiAgc2l6ZV90IGtmZF9kb29yYmVsbF9wcm9jZXNzX3NsaWNlKHN0cnVjdCBr ZmRfZGV2ICprZmQpOwo+IEBAIC05MTcsNyArOTE3LDcgQEAgdm9pZCBkZXZpY2VfcXVldWVfbWFu YWdlcl91bmluaXQoc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0pOwo+ICBzdHJ1Y3Qg a2VybmVsX3F1ZXVlICprZXJuZWxfcXVldWVfaW5pdChzdHJ1Y3Qga2ZkX2RldiAqZGV2LAo+ICAJ CQkJCWVudW0ga2ZkX3F1ZXVlX3R5cGUgdHlwZSk7Cj4gIHZvaWQga2VybmVsX3F1ZXVlX3VuaW5p dChzdHJ1Y3Qga2VybmVsX3F1ZXVlICprcSwgYm9vbCBoYW5naW5nKTsKPiAtaW50IGtmZF9wcm9j ZXNzX3ZtX2ZhdWx0KHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLCB1bnNpZ25lZCBp bnQgcGFzaWQpOwo+ICtpbnQga2ZkX3Byb2Nlc3Nfdm1fZmF1bHQoc3RydWN0IGRldmljZV9xdWV1 ZV9tYW5hZ2VyICpkcW0sIHUzMiBwYXNpZCk7Cj4gIAo+ICAvKiBQcm9jZXNzIFF1ZXVlIE1hbmFn ZXIgKi8KPiAgc3RydWN0IHByb2Nlc3NfcXVldWVfbm9kZSB7Cj4gQEAgLTEwMzksMTIgKzEwMzks MTIgQEAgaW50IGtmZF93YWl0X29uX2V2ZW50cyhzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAsCj4gIAkJ ICAgICAgIHVpbnQzMl90IG51bV9ldmVudHMsIHZvaWQgX191c2VyICpkYXRhLAo+ICAJCSAgICAg ICBib29sIGFsbCwgdWludDMyX3QgdXNlcl90aW1lb3V0X21zLAo+ICAJCSAgICAgICB1aW50MzJf dCAqd2FpdF9yZXN1bHQpOwo+IC12b2lkIGtmZF9zaWduYWxfZXZlbnRfaW50ZXJydXB0KHVuc2ln bmVkIGludCBwYXNpZCwgdWludDMyX3QgcGFydGlhbF9pZCwKPiArdm9pZCBrZmRfc2lnbmFsX2V2 ZW50X2ludGVycnVwdCh1MzIgcGFzaWQsIHVpbnQzMl90IHBhcnRpYWxfaWQsCj4gIAkJCQl1aW50 MzJfdCB2YWxpZF9pZF9iaXRzKTsKPiAgdm9pZCBrZmRfc2lnbmFsX2lvbW11X2V2ZW50KHN0cnVj dCBrZmRfZGV2ICpkZXYsCj4gLQkJdW5zaWduZWQgaW50IHBhc2lkLCB1bnNpZ25lZCBsb25nIGFk ZHJlc3MsCj4gLQkJYm9vbCBpc193cml0ZV9yZXF1ZXN0ZWQsIGJvb2wgaXNfZXhlY3V0ZV9yZXF1 ZXN0ZWQpOwo+IC12b2lkIGtmZF9zaWduYWxfaHdfZXhjZXB0aW9uX2V2ZW50KHVuc2lnbmVkIGlu dCBwYXNpZCk7Cj4gKwkJCSAgICB1MzIgcGFzaWQsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiAr CQkJICAgIGJvb2wgaXNfd3JpdGVfcmVxdWVzdGVkLCBib29sIGlzX2V4ZWN1dGVfcmVxdWVzdGVk KTsKPiArdm9pZCBrZmRfc2lnbmFsX2h3X2V4Y2VwdGlvbl9ldmVudCh1MzIgcGFzaWQpOwo+ICBp bnQga2ZkX3NldF9ldmVudChzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAsIHVpbnQzMl90IGV2ZW50X2lk KTsKPiAgaW50IGtmZF9yZXNldF9ldmVudChzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAsIHVpbnQzMl90 IGV2ZW50X2lkKTsKPiAgaW50IGtmZF9ldmVudF9wYWdlX3NldChzdHJ1Y3Qga2ZkX3Byb2Nlc3Mg KnAsIHZvaWQgKmtlcm5lbF9hZGRyZXNzLAo+IEBAIC0xMDU1LDcgKzEwNTUsNyBAQCBpbnQga2Zk X2V2ZW50X2NyZWF0ZShzdHJ1Y3QgZmlsZSAqZGV2a2ZkLCBzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAs Cj4gIAkJICAgICB1aW50NjRfdCAqZXZlbnRfcGFnZV9vZmZzZXQsIHVpbnQzMl90ICpldmVudF9z bG90X2luZGV4KTsKPiAgaW50IGtmZF9ldmVudF9kZXN0cm95KHN0cnVjdCBrZmRfcHJvY2VzcyAq cCwgdWludDMyX3QgZXZlbnRfaWQpOwo+ICAKPiAtdm9pZCBrZmRfc2lnbmFsX3ZtX2ZhdWx0X2V2 ZW50KHN0cnVjdCBrZmRfZGV2ICpkZXYsIHVuc2lnbmVkIGludCBwYXNpZCwKPiArdm9pZCBrZmRf c2lnbmFsX3ZtX2ZhdWx0X2V2ZW50KHN0cnVjdCBrZmRfZGV2ICpkZXYsIHUzMiBwYXNpZCwKPiAg CQkJCXN0cnVjdCBrZmRfdm1fZmF1bHRfaW5mbyAqaW5mbyk7Cj4gIAo+ICB2b2lkIGtmZF9zaWdu YWxfcmVzZXRfZXZlbnQoc3RydWN0IGtmZF9kZXYgKmRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfcHJvY2Vzcy5jCj4gaW5kZXggMGUwYzQyZTlmNmEzLi43NTY3NjQ3ZTk3NmQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Byb2Nlc3MuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzLmMKPiBAQCAtMTA4 Nyw3ICsxMDg3LDcgQEAgdm9pZCBrZmRfcHJvY2Vzc19kZXZpY2VfcmVtb3ZlX29ial9oYW5kbGUo c3RydWN0IGtmZF9wcm9jZXNzX2RldmljZSAqcGRkLAo+ICB9Cj4gIAo+ICAvKiBUaGlzIGluY3Jl bWVudHMgdGhlIHByb2Nlc3MtPnJlZiBjb3VudGVyLiAqLwo+IC1zdHJ1Y3Qga2ZkX3Byb2Nlc3Mg KmtmZF9sb29rdXBfcHJvY2Vzc19ieV9wYXNpZCh1bnNpZ25lZCBpbnQgcGFzaWQpCj4gK3N0cnVj dCBrZmRfcHJvY2VzcyAqa2ZkX2xvb2t1cF9wcm9jZXNzX2J5X3Bhc2lkKHUzMiBwYXNpZCkKPiAg ewo+ICAJc3RydWN0IGtmZF9wcm9jZXNzICpwLCAqcmV0X3AgPSBOVUxMOwo+ICAJdW5zaWduZWQg aW50IHRlbXA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2Rf a2ZkX2ludGVyZmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9rZmRfaW50 ZXJmYWNlLmgKPiBpbmRleCBhM2MyMzhjMzllZjUuLjMwMWRlNDkzMzc3YSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dkX2tmZF9pbnRlcmZhY2UuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2Rfa2ZkX2ludGVyZmFjZS5oCj4gQEAgLTIy Niw3ICsyMjYsNyBAQCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyB7Cj4gIAkJCXVpbnQzMl90IHNoX21l bV9jb25maWcsCXVpbnQzMl90IHNoX21lbV9hcGUxX2Jhc2UsCj4gIAkJCXVpbnQzMl90IHNoX21l bV9hcGUxX2xpbWl0LCB1aW50MzJfdCBzaF9tZW1fYmFzZXMpOwo+ICAKPiAtCWludCAoKnNldF9w YXNpZF92bWlkX21hcHBpbmcpKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVuc2lnbmVkIGludCBwYXNp ZCwKPiArCWludCAoKnNldF9wYXNpZF92bWlkX21hcHBpbmcpKHN0cnVjdCBrZ2RfZGV2ICprZ2Qs IHUzMiBwYXNpZCwKPiAgCQkJCQl1bnNpZ25lZCBpbnQgdm1pZCk7Cj4gIAo+ICAJaW50ICgqaW5p dF9pbnRlcnJ1cHRzKShzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCBwaXBlX2lkKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hbWQvYW1kX2lvbW11LmggYi9kcml2ZXJzL2lvbW11 L2FtZC9hbWRfaW9tbXUuaAo+IGluZGV4IGY4OTI5OTJjODc0NC4uMWZhZTU4ZGQzYzI1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvaW9tbXUvYW1kL2FtZF9pb21tdS5oCj4gKysrIGIvZHJpdmVycy9p b21tdS9hbWQvYW1kX2lvbW11LmgKPiBAQCAtNDUsMTIgKzQ1LDEyIEBAIGV4dGVybiBpbnQgYW1k X2lvbW11X3JlZ2lzdGVyX3Bwcl9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsK PiAgZXh0ZXJuIGludCBhbWRfaW9tbXVfdW5yZWdpc3Rlcl9wcHJfbm90aWZpZXIoc3RydWN0IG5v dGlmaWVyX2Jsb2NrICpuYik7Cj4gIGV4dGVybiB2b2lkIGFtZF9pb21tdV9kb21haW5fZGlyZWN0 X21hcChzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20pOwo+ICBleHRlcm4gaW50IGFtZF9pb21tdV9k b21haW5fZW5hYmxlX3YyKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbSwgaW50IHBhc2lkcyk7Cj4g LWV4dGVybiBpbnQgYW1kX2lvbW11X2ZsdXNoX3BhZ2Uoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9t LCBpbnQgcGFzaWQsCj4gK2V4dGVybiBpbnQgYW1kX2lvbW11X2ZsdXNoX3BhZ2Uoc3RydWN0IGlv bW11X2RvbWFpbiAqZG9tLCB1MzIgcGFzaWQsCj4gIAkJCQl1NjQgYWRkcmVzcyk7Cj4gLWV4dGVy biBpbnQgYW1kX2lvbW11X2ZsdXNoX3RsYihzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20sIGludCBw YXNpZCk7Cj4gLWV4dGVybiBpbnQgYW1kX2lvbW11X2RvbWFpbl9zZXRfZ2NyMyhzdHJ1Y3QgaW9t bXVfZG9tYWluICpkb20sIGludCBwYXNpZCwKPiArZXh0ZXJuIGludCBhbWRfaW9tbXVfZmx1c2hf dGxiKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbSwgdTMyIHBhc2lkKTsKPiArZXh0ZXJuIGludCBh bWRfaW9tbXVfZG9tYWluX3NldF9nY3IzKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbSwgdTMyIHBh c2lkLAo+ICAJCQkJICAgICB1bnNpZ25lZCBsb25nIGNyMyk7Cj4gLWV4dGVybiBpbnQgYW1kX2lv bW11X2RvbWFpbl9jbGVhcl9nY3IzKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbSwgaW50IHBhc2lk KTsKPiArZXh0ZXJuIGludCBhbWRfaW9tbXVfZG9tYWluX2NsZWFyX2djcjMoc3RydWN0IGlvbW11 X2RvbWFpbiAqZG9tLCB1MzIgcGFzaWQpOwo+ICBleHRlcm4gc3RydWN0IGlvbW11X2RvbWFpbiAq YW1kX2lvbW11X2dldF92Ml9kb21haW4oc3RydWN0IHBjaV9kZXYgKnBkZXYpOwo+ICAKPiAgI2lm ZGVmIENPTkZJR19JUlFfUkVNQVAKPiBAQCAtNjYsNyArNjYsNyBAQCBzdGF0aWMgaW5saW5lIGlu dCBhbWRfaW9tbXVfY3JlYXRlX2lycV9kb21haW4oc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCj4g ICNkZWZpbmUgUFBSX0lOVkFMSUQJCQkweDEKPiAgI2RlZmluZSBQUFJfRkFJTFVSRQkJCTB4Zgo+ ICAKPiAtZXh0ZXJuIGludCBhbWRfaW9tbXVfY29tcGxldGVfcHByKHN0cnVjdCBwY2lfZGV2ICpw ZGV2LCBpbnQgcGFzaWQsCj4gK2V4dGVybiBpbnQgYW1kX2lvbW11X2NvbXBsZXRlX3BwcihzdHJ1 Y3QgcGNpX2RldiAqcGRldiwgdTMyIHBhc2lkLAo+ICAJCQkJICBpbnQgc3RhdHVzLCBpbnQgdGFn KTsKPiAgCj4gIHN0YXRpYyBpbmxpbmUgYm9vbCBpc19yZDg5MF9pb21tdShzdHJ1Y3QgcGNpX2Rl diAqcGRldikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hbWQvaW9tbXUuYyBiL2RyaXZl cnMvaW9tbXUvYW1kL2lvbW11LmMKPiBpbmRleCA3NGNjYTE3NTcxNzIuLjgzOThhMzhhZjcxOSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2lvbW11L2FtZC9pb21tdS5jCj4gKysrIGIvZHJpdmVycy9p b21tdS9hbWQvaW9tbXUuYwo+IEBAIC01MDIsMTAgKzUwMiwxMSBAQCBzdGF0aWMgdm9pZCBhbWRf aW9tbXVfcmVwb3J0X3BhZ2VfZmF1bHQodTE2IGRldmlkLCB1MTYgZG9tYWluX2lkLAo+ICBzdGF0 aWMgdm9pZCBpb21tdV9wcmludF9ldmVudChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdm9pZCAq X19ldnQpCj4gIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IGlvbW11LT5pb21tdS5kZXY7Cj4g LQlpbnQgdHlwZSwgZGV2aWQsIHBhc2lkLCBmbGFncywgdGFnOwo+ICsJaW50IHR5cGUsIGRldmlk LCBmbGFncywgdGFnOwo+ICAJdm9sYXRpbGUgdTMyICpldmVudCA9IF9fZXZ0Owo+ICAJaW50IGNv dW50ID0gMDsKPiAgCXU2NCBhZGRyZXNzOwo+ICsJdTMyIHBhc2lkOwo+ICAKPiAgcmV0cnk6Cj4g IAl0eXBlICAgID0gKGV2ZW50WzFdID4+IEVWRU5UX1RZUEVfU0hJRlQpICAmIEVWRU5UX1RZUEVf TUFTSzsKPiBAQCAtODk4LDcgKzg5OSw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2ludl9pb3RsYl9w YWdlcyhzdHJ1Y3QgaW9tbXVfY21kICpjbWQsIHUxNiBkZXZpZCwgaW50IHFkZXAsCj4gIAkJY21k LT5kYXRhWzJdIHw9IENNRF9JTlZfSU9NTVVfUEFHRVNfU0laRV9NQVNLOwo+ICB9Cj4gIAo+IC1z dGF0aWMgdm9pZCBidWlsZF9pbnZfaW9tbXVfcGFzaWQoc3RydWN0IGlvbW11X2NtZCAqY21kLCB1 MTYgZG9taWQsIGludCBwYXNpZCwKPiArc3RhdGljIHZvaWQgYnVpbGRfaW52X2lvbW11X3Bhc2lk KHN0cnVjdCBpb21tdV9jbWQgKmNtZCwgdTE2IGRvbWlkLCB1MzIgcGFzaWQsCj4gIAkJCQkgIHU2 NCBhZGRyZXNzLCBib29sIHNpemUpCj4gIHsKPiAgCW1lbXNldChjbWQsIDAsIHNpemVvZigqY21k KSk7Cj4gQEAgLTkxNiw3ICs5MTcsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnZfaW9tbXVfcGFz aWQoc3RydWN0IGlvbW11X2NtZCAqY21kLCB1MTYgZG9taWQsIGludCBwYXNpZCwKPiAgCUNNRF9T RVRfVFlQRShjbWQsIENNRF9JTlZfSU9NTVVfUEFHRVMpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9p ZCBidWlsZF9pbnZfaW90bGJfcGFzaWQoc3RydWN0IGlvbW11X2NtZCAqY21kLCB1MTYgZGV2aWQs IGludCBwYXNpZCwKPiArc3RhdGljIHZvaWQgYnVpbGRfaW52X2lvdGxiX3Bhc2lkKHN0cnVjdCBp b21tdV9jbWQgKmNtZCwgdTE2IGRldmlkLCB1MzIgcGFzaWQsCj4gIAkJCQkgIGludCBxZGVwLCB1 NjQgYWRkcmVzcywgYm9vbCBzaXplKQo+ICB7Cj4gIAltZW1zZXQoY21kLCAwLCBzaXplb2YoKmNt ZCkpOwo+IEBAIC05MzYsNyArOTM3LDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW52X2lvdGxiX3Bh c2lkKHN0cnVjdCBpb21tdV9jbWQgKmNtZCwgdTE2IGRldmlkLCBpbnQgcGFzaWQsCj4gIAlDTURf U0VUX1RZUEUoY21kLCBDTURfSU5WX0lPVExCX1BBR0VTKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZv aWQgYnVpbGRfY29tcGxldGVfcHByKHN0cnVjdCBpb21tdV9jbWQgKmNtZCwgdTE2IGRldmlkLCBp bnQgcGFzaWQsCj4gK3N0YXRpYyB2b2lkIGJ1aWxkX2NvbXBsZXRlX3BwcihzdHJ1Y3QgaW9tbXVf Y21kICpjbWQsIHUxNiBkZXZpZCwgdTMyIHBhc2lkLAo+ICAJCQkgICAgICAgaW50IHN0YXR1cywg aW50IHRhZywgYm9vbCBnbikKPiAgewo+ICAJbWVtc2V0KGNtZCwgMCwgc2l6ZW9mKCpjbWQpKTsK PiBAQCAtMjc3Miw3ICsyNzczLDcgQEAgaW50IGFtZF9pb21tdV9kb21haW5fZW5hYmxlX3YyKHN0 cnVjdCBpb21tdV9kb21haW4gKmRvbSwgaW50IHBhc2lkcykKPiAgfQo+ICBFWFBPUlRfU1lNQk9M KGFtZF9pb21tdV9kb21haW5fZW5hYmxlX3YyKTsKPiAgCj4gLXN0YXRpYyBpbnQgX19mbHVzaF9w YXNpZChzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbiwgaW50IHBhc2lkLAo+ICtzdGF0 aWMgaW50IF9fZmx1c2hfcGFzaWQoc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW4sIHUz MiBwYXNpZCwKPiAgCQkJIHU2NCBhZGRyZXNzLCBib29sIHNpemUpCj4gIHsKPiAgCXN0cnVjdCBp b21tdV9kZXZfZGF0YSAqZGV2X2RhdGE7Cj4gQEAgLTI4MzMsMTMgKzI4MzQsMTMgQEAgc3RhdGlj IGludCBfX2ZsdXNoX3Bhc2lkKHN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluLCBpbnQg cGFzaWQsCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IF9fYW1kX2lvbW11 X2ZsdXNoX3BhZ2Uoc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW4sIGludCBwYXNpZCwK PiArc3RhdGljIGludCBfX2FtZF9pb21tdV9mbHVzaF9wYWdlKHN0cnVjdCBwcm90ZWN0aW9uX2Rv bWFpbiAqZG9tYWluLCB1MzIgcGFzaWQsCj4gIAkJCQkgIHU2NCBhZGRyZXNzKQo+ICB7Cj4gIAly ZXR1cm4gX19mbHVzaF9wYXNpZChkb21haW4sIHBhc2lkLCBhZGRyZXNzLCBmYWxzZSk7Cj4gIH0K PiAgCj4gLWludCBhbWRfaW9tbXVfZmx1c2hfcGFnZShzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20s IGludCBwYXNpZCwKPiAraW50IGFtZF9pb21tdV9mbHVzaF9wYWdlKHN0cnVjdCBpb21tdV9kb21h aW4gKmRvbSwgdTMyIHBhc2lkLAo+ICAJCQkgdTY0IGFkZHJlc3MpCj4gIHsKPiAgCXN0cnVjdCBw cm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluID0gdG9fcGRvbWFpbihkb20pOwo+IEBAIC0yODU0LDEz ICsyODU1LDEzIEBAIGludCBhbWRfaW9tbXVfZmx1c2hfcGFnZShzdHJ1Y3QgaW9tbXVfZG9tYWlu ICpkb20sIGludCBwYXNpZCwKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGFtZF9pb21tdV9mbHVzaF9w YWdlKTsKPiAgCj4gLXN0YXRpYyBpbnQgX19hbWRfaW9tbXVfZmx1c2hfdGxiKHN0cnVjdCBwcm90 ZWN0aW9uX2RvbWFpbiAqZG9tYWluLCBpbnQgcGFzaWQpCj4gK3N0YXRpYyBpbnQgX19hbWRfaW9t bXVfZmx1c2hfdGxiKHN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluLCB1MzIgcGFzaWQp Cj4gIHsKPiAgCXJldHVybiBfX2ZsdXNoX3Bhc2lkKGRvbWFpbiwgcGFzaWQsIENNRF9JTlZfSU9N TVVfQUxMX1BBR0VTX0FERFJFU1MsCj4gIAkJCSAgICAgdHJ1ZSk7Cj4gIH0KPiAgCj4gLWludCBh bWRfaW9tbXVfZmx1c2hfdGxiKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbSwgaW50IHBhc2lkKQo+ ICtpbnQgYW1kX2lvbW11X2ZsdXNoX3RsYihzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20sIHUzMiBw YXNpZCkKPiAgewo+ICAJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW4gPSB0b19wZG9t YWluKGRvbSk7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+IEBAIC0yODc0LDcgKzI4NzUsNyBA QCBpbnQgYW1kX2lvbW11X2ZsdXNoX3RsYihzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20sIGludCBw YXNpZCkKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGFtZF9pb21tdV9mbHVzaF90bGIpOwo+ICAKPiAt c3RhdGljIHU2NCAqX19nZXRfZ2NyM19wdGUodTY0ICpyb290LCBpbnQgbGV2ZWwsIGludCBwYXNp ZCwgYm9vbCBhbGxvYykKPiArc3RhdGljIHU2NCAqX19nZXRfZ2NyM19wdGUodTY0ICpyb290LCBp bnQgbGV2ZWwsIHUzMiBwYXNpZCwgYm9vbCBhbGxvYykKPiAgewo+ICAJaW50IGluZGV4Owo+ICAJ dTY0ICpwdGU7Cj4gQEAgLTI5MDYsNyArMjkwNyw3IEBAIHN0YXRpYyB1NjQgKl9fZ2V0X2djcjNf cHRlKHU2NCAqcm9vdCwgaW50IGxldmVsLCBpbnQgcGFzaWQsIGJvb2wgYWxsb2MpCj4gIAlyZXR1 cm4gcHRlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IF9fc2V0X2djcjMoc3RydWN0IHByb3RlY3Rp b25fZG9tYWluICpkb21haW4sIGludCBwYXNpZCwKPiArc3RhdGljIGludCBfX3NldF9nY3IzKHN0 cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluLCB1MzIgcGFzaWQsCj4gIAkJICAgICAgdW5z aWduZWQgbG9uZyBjcjMpCj4gIHsKPiAgCXN0cnVjdCBkb21haW5fcGd0YWJsZSBwZ3RhYmxlOwo+ IEBAIC0yOTI1LDcgKzI5MjYsNyBAQCBzdGF0aWMgaW50IF9fc2V0X2djcjMoc3RydWN0IHByb3Rl Y3Rpb25fZG9tYWluICpkb21haW4sIGludCBwYXNpZCwKPiAgCXJldHVybiBfX2FtZF9pb21tdV9m bHVzaF90bGIoZG9tYWluLCBwYXNpZCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgX19jbGVhcl9n Y3IzKHN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluLCBpbnQgcGFzaWQpCj4gK3N0YXRp YyBpbnQgX19jbGVhcl9nY3IzKHN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluLCB1MzIg cGFzaWQpCj4gIHsKPiAgCXN0cnVjdCBkb21haW5fcGd0YWJsZSBwZ3RhYmxlOwo+ICAJdTY0ICpw dGU7Cj4gQEAgLTI5NDMsNyArMjk0NCw3IEBAIHN0YXRpYyBpbnQgX19jbGVhcl9nY3IzKHN0cnVj dCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluLCBpbnQgcGFzaWQpCj4gIAlyZXR1cm4gX19hbWRf aW9tbXVfZmx1c2hfdGxiKGRvbWFpbiwgcGFzaWQpOwo+ICB9Cj4gIAo+IC1pbnQgYW1kX2lvbW11 X2RvbWFpbl9zZXRfZ2NyMyhzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20sIGludCBwYXNpZCwKPiAr aW50IGFtZF9pb21tdV9kb21haW5fc2V0X2djcjMoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tLCB1 MzIgcGFzaWQsCj4gIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgY3IzKQo+ICB7Cj4gIAlzdHJ1Y3Qg cHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbiA9IHRvX3Bkb21haW4oZG9tKTsKPiBAQCAtMjk1OCw3 ICsyOTU5LDcgQEAgaW50IGFtZF9pb21tdV9kb21haW5fc2V0X2djcjMoc3RydWN0IGlvbW11X2Rv bWFpbiAqZG9tLCBpbnQgcGFzaWQsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChhbWRfaW9tbXVfZG9t YWluX3NldF9nY3IzKTsKPiAgCj4gLWludCBhbWRfaW9tbXVfZG9tYWluX2NsZWFyX2djcjMoc3Ry dWN0IGlvbW11X2RvbWFpbiAqZG9tLCBpbnQgcGFzaWQpCj4gK2ludCBhbWRfaW9tbXVfZG9tYWlu X2NsZWFyX2djcjMoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tLCB1MzIgcGFzaWQpCj4gIHsKPiAg CXN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluID0gdG9fcGRvbWFpbihkb20pOwo+ICAJ dW5zaWduZWQgbG9uZyBmbGFnczsKPiBAQCAtMjk3Miw3ICsyOTczLDcgQEAgaW50IGFtZF9pb21t dV9kb21haW5fY2xlYXJfZ2NyMyhzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20sIGludCBwYXNpZCkK PiAgfQo+ICBFWFBPUlRfU1lNQk9MKGFtZF9pb21tdV9kb21haW5fY2xlYXJfZ2NyMyk7Cj4gIAo+ IC1pbnQgYW1kX2lvbW11X2NvbXBsZXRlX3BwcihzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IHBh c2lkLAo+ICtpbnQgYW1kX2lvbW11X2NvbXBsZXRlX3BwcihzdHJ1Y3QgcGNpX2RldiAqcGRldiwg dTMyIHBhc2lkLAo+ICAJCQkgICBpbnQgc3RhdHVzLCBpbnQgdGFnKQo+ICB7Cj4gIAlzdHJ1Y3Qg aW9tbXVfZGV2X2RhdGEgKmRldl9kYXRhOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2Ft ZC9pb21tdV92Mi5jIGIvZHJpdmVycy9pb21tdS9hbWQvaW9tbXVfdjIuYwo+IGluZGV4IGU0YjAy NWM1NjM3Yy4uYTc2OTk4NWZmMjZlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaW9tbXUvYW1kL2lv bW11X3YyLmMKPiArKysgYi9kcml2ZXJzL2lvbW11L2FtZC9pb21tdV92Mi5jCj4gQEAgLTQwLDcg KzQwLDcgQEAgc3RydWN0IHBhc2lkX3N0YXRlIHsKPiAgCXN0cnVjdCBtbXVfbm90aWZpZXIgbW47 ICAgICAgICAgICAgICAgICAvKiBtbXVfbm90aWZpZXIgaGFuZGxlICovCj4gIAlzdHJ1Y3QgcHJp X3F1ZXVlIHByaVtQUklfUVVFVUVfU0laRV07CS8qIFBSSSB0YWcgc3RhdGVzICovCj4gIAlzdHJ1 Y3QgZGV2aWNlX3N0YXRlICpkZXZpY2Vfc3RhdGU7CS8qIExpbmsgdG8gb3VyIGRldmljZV9zdGF0 ZSAqLwo+IC0JaW50IHBhc2lkOwkJCQkvKiBQQVNJRCBpbmRleCAqLwo+ICsJdTMyIHBhc2lkOwkJ CQkvKiBQQVNJRCBpbmRleCAqLwo+ICAJYm9vbCBpbnZhbGlkOwkJCQkvKiBVc2VkIGR1cmluZyBz ZXR1cCBhbmQKPiAgCQkJCQkJICAgdGVhcmRvd24gb2YgdGhlIHBhc2lkICovCj4gIAlzcGlubG9j a190IGxvY2s7CQkJLyogUHJvdGVjdCBwcmlfcXVldWVzIGFuZAo+IEBAIC03MCw3ICs3MCw3IEBA IHN0cnVjdCBmYXVsdCB7Cj4gIAlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKPiAgCXU2NCBhZGRyZXNz Owo+ICAJdTE2IGRldmlkOwo+IC0JdTE2IHBhc2lkOwo+ICsJdTMyIHBhc2lkOwo+ICAJdTE2IHRh ZzsKPiAgCXUxNiBmaW5pc2g7Cj4gIAl1MTYgZmxhZ3M7Cj4gQEAgLTE1MCw3ICsxNTAsNyBAQCBz dGF0aWMgdm9pZCBwdXRfZGV2aWNlX3N0YXRlKHN0cnVjdCBkZXZpY2Vfc3RhdGUgKmRldl9zdGF0 ZSkKPiAgCj4gIC8qIE11c3QgYmUgY2FsbGVkIHVuZGVyIGRldl9zdGF0ZS0+bG9jayAqLwo+ICBz dGF0aWMgc3RydWN0IHBhc2lkX3N0YXRlICoqX19nZXRfcGFzaWRfc3RhdGVfcHRyKHN0cnVjdCBk ZXZpY2Vfc3RhdGUgKmRldl9zdGF0ZSwKPiAtCQkJCQkJICBpbnQgcGFzaWQsIGJvb2wgYWxsb2Mp Cj4gKwkJCQkJCSAgdTMyIHBhc2lkLCBib29sIGFsbG9jKQo+ICB7Cj4gIAlzdHJ1Y3QgcGFzaWRf c3RhdGUgKipyb290LCAqKnB0cjsKPiAgCWludCBsZXZlbCwgaW5kZXg7Cj4gQEAgLTE4NCw3ICsx ODQsNyBAQCBzdGF0aWMgc3RydWN0IHBhc2lkX3N0YXRlICoqX19nZXRfcGFzaWRfc3RhdGVfcHRy KHN0cnVjdCBkZXZpY2Vfc3RhdGUgKmRldl9zdGF0ZQo+ICAKPiAgc3RhdGljIGludCBzZXRfcGFz aWRfc3RhdGUoc3RydWN0IGRldmljZV9zdGF0ZSAqZGV2X3N0YXRlLAo+ICAJCQkgICBzdHJ1Y3Qg cGFzaWRfc3RhdGUgKnBhc2lkX3N0YXRlLAo+IC0JCQkgICBpbnQgcGFzaWQpCj4gKwkJCSAgIHUz MiBwYXNpZCkKPiAgewo+ICAJc3RydWN0IHBhc2lkX3N0YXRlICoqcHRyOwo+ICAJdW5zaWduZWQg bG9uZyBmbGFnczsKPiBAQCAtMjExLDcgKzIxMSw3IEBAIHN0YXRpYyBpbnQgc2V0X3Bhc2lkX3N0 YXRlKHN0cnVjdCBkZXZpY2Vfc3RhdGUgKmRldl9zdGF0ZSwKPiAgCXJldHVybiByZXQ7Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIGNsZWFyX3Bhc2lkX3N0YXRlKHN0cnVjdCBkZXZpY2Vfc3RhdGUg KmRldl9zdGF0ZSwgaW50IHBhc2lkKQo+ICtzdGF0aWMgdm9pZCBjbGVhcl9wYXNpZF9zdGF0ZShz dHJ1Y3QgZGV2aWNlX3N0YXRlICpkZXZfc3RhdGUsIHUzMiBwYXNpZCkKPiAgewo+ICAJc3RydWN0 IHBhc2lkX3N0YXRlICoqcHRyOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiBAQCAtMjI5LDcg KzIyOSw3IEBAIHN0YXRpYyB2b2lkIGNsZWFyX3Bhc2lkX3N0YXRlKHN0cnVjdCBkZXZpY2Vfc3Rh dGUgKmRldl9zdGF0ZSwgaW50IHBhc2lkKQo+ICB9Cj4gIAo+ICBzdGF0aWMgc3RydWN0IHBhc2lk X3N0YXRlICpnZXRfcGFzaWRfc3RhdGUoc3RydWN0IGRldmljZV9zdGF0ZSAqZGV2X3N0YXRlLAo+ IC0JCQkJCSAgIGludCBwYXNpZCkKPiArCQkJCQkgICB1MzIgcGFzaWQpCj4gIHsKPiAgCXN0cnVj dCBwYXNpZF9zdGF0ZSAqKnB0ciwgKnJldCA9IE5VTEw7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdz Owo+IEBAIC01OTQsNyArNTk0LDcgQEAgc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBwcHJf bmIgPSB7Cj4gIAkubm90aWZpZXJfY2FsbCA9IHBwcl9ub3RpZmllciwKPiAgfTsKPiAgCj4gLWlu dCBhbWRfaW9tbXVfYmluZF9wYXNpZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IHBhc2lkLAo+ ICtpbnQgYW1kX2lvbW11X2JpbmRfcGFzaWQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHUzMiBwYXNp ZCwKPiAgCQkJIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKPiAgewo+ICAJc3RydWN0IHBhc2lk X3N0YXRlICpwYXNpZF9zdGF0ZTsKPiBAQCAtNjE1LDcgKzYxNSw3IEBAIGludCBhbWRfaW9tbXVf YmluZF9wYXNpZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IHBhc2lkLAo+ICAJCXJldHVybiAt RUlOVkFMOwo+ICAKPiAgCXJldCA9IC1FSU5WQUw7Cj4gLQlpZiAocGFzaWQgPCAwIHx8IHBhc2lk ID49IGRldl9zdGF0ZS0+bWF4X3Bhc2lkcykKPiArCWlmIChwYXNpZCA+PSBkZXZfc3RhdGUtPm1h eF9wYXNpZHMpCj4gIAkJZ290byBvdXQ7Cj4gIAo+ICAJcmV0ID0gLUVOT01FTTsKPiBAQCAtNjc5 LDcgKzY3OSw3IEBAIGludCBhbWRfaW9tbXVfYmluZF9wYXNpZChzdHJ1Y3QgcGNpX2RldiAqcGRl diwgaW50IHBhc2lkLAo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woYW1kX2lvbW11X2JpbmRfcGFzaWQp Owo+ICAKPiAtdm9pZCBhbWRfaW9tbXVfdW5iaW5kX3Bhc2lkKHN0cnVjdCBwY2lfZGV2ICpwZGV2 LCBpbnQgcGFzaWQpCj4gK3ZvaWQgYW1kX2lvbW11X3VuYmluZF9wYXNpZChzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgdTMyIHBhc2lkKQo+ICB7Cj4gIAlzdHJ1Y3QgcGFzaWRfc3RhdGUgKnBhc2lkX3N0 YXRlOwo+ICAJc3RydWN0IGRldmljZV9zdGF0ZSAqZGV2X3N0YXRlOwo+IEBAIC02OTUsNyArNjk1 LDcgQEAgdm9pZCBhbWRfaW9tbXVfdW5iaW5kX3Bhc2lkKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBp bnQgcGFzaWQpCj4gIAlpZiAoZGV2X3N0YXRlID09IE5VTEwpCj4gIAkJcmV0dXJuOwo+ICAKPiAt CWlmIChwYXNpZCA8IDAgfHwgcGFzaWQgPj0gZGV2X3N0YXRlLT5tYXhfcGFzaWRzKQo+ICsJaWYg KHBhc2lkID49IGRldl9zdGF0ZS0+bWF4X3Bhc2lkcykKPiAgCQlnb3RvIG91dDsKPiAgCj4gIAlw YXNpZF9zdGF0ZSA9IGdldF9wYXNpZF9zdGF0ZShkZXZfc3RhdGUsIHBhc2lkKTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9pb21tdS9pbnRlbC9kbWFyLmMgYi9kcml2ZXJzL2lvbW11L2ludGVsL2Rt YXIuYwo+IGluZGV4IDY4M2I4MTJjNWM0Ny4uMmI3NWExNTYxMzc3IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvaW9tbXUvaW50ZWwvZG1hci5jCj4gKysrIGIvZHJpdmVycy9pb21tdS9pbnRlbC9kbWFy LmMKPiBAQCAtMTQ2Niw3ICsxNDY2LDcgQEAgdm9pZCBxaV9mbHVzaF9kZXZfaW90bGJfcGFzaWQo c3RydWN0IGludGVsX2lvbW11ICppb21tdSwgdTE2IHNpZCwgdTE2IHBmc2lkLAo+ICB9Cj4gIAo+ ICB2b2lkIHFpX2ZsdXNoX3Bhc2lkX2NhY2hlKHN0cnVjdCBpbnRlbF9pb21tdSAqaW9tbXUsIHUx NiBkaWQsCj4gLQkJCSAgdTY0IGdyYW51LCBpbnQgcGFzaWQpCj4gKwkJCSAgdTY0IGdyYW51LCB1 MzIgcGFzaWQpCj4gIHsKPiAgCXN0cnVjdCBxaV9kZXNjIGRlc2MgPSB7LnF3MSA9IDAsIC5xdzIg PSAwLCAucXczID0gMH07Cj4gIAo+IEBAIC0xNzgwLDcgKzE3ODAsNyBAQCB2b2lkIGRtYXJfbXNp X3JlYWQoaW50IGlycSwgc3RydWN0IG1zaV9tc2cgKm1zZykKPiAgfQo+ICAKPiAgc3RhdGljIGlu dCBkbWFyX2ZhdWx0X2RvX29uZShzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11LCBpbnQgdHlwZSwK PiAtCQl1OCBmYXVsdF9yZWFzb24sIGludCBwYXNpZCwgdTE2IHNvdXJjZV9pZCwKPiArCQl1OCBm YXVsdF9yZWFzb24sIHUzMiBwYXNpZCwgdTE2IHNvdXJjZV9pZCwKPiAgCQl1bnNpZ25lZCBsb25n IGxvbmcgYWRkcikKPiAgewo+ICAJY29uc3QgY2hhciAqcmVhc29uOwo+IEBAIC0xODMwLDcgKzE4 MzAsOCBAQCBpcnFyZXR1cm5fdCBkbWFyX2ZhdWx0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiAg CQl1OCBmYXVsdF9yZWFzb247Cj4gIAkJdTE2IHNvdXJjZV9pZDsKPiAgCQl1NjQgZ3Vlc3RfYWRk cjsKPiAtCQlpbnQgdHlwZSwgcGFzaWQ7Cj4gKwkJdTMyIHBhc2lkOwo+ICsJCWludCB0eXBlOwo+ ICAJCXUzMiBkYXRhOwo+ICAJCWJvb2wgcGFzaWRfcHJlc2VudDsKPiAgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvaW9tbXUvaW50ZWwvaW50ZWwtcGFzaWQuaCBiL2RyaXZlcnMvaW9tbXUvaW50ZWwv aW50ZWwtcGFzaWQuaAo+IGluZGV4IGM1MzE4ZDQwZTBmYS4uYmI1MTM3MTgzMTQ1IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvaW9tbXUvaW50ZWwvaW50ZWwtcGFzaWQuaAo+ICsrKyBiL2RyaXZlcnMv aW9tbXUvaW50ZWwvaW50ZWwtcGFzaWQuaAo+IEBAIC03Miw3ICs3Miw3IEBAIHN0cnVjdCBwYXNp ZF9lbnRyeSB7Cj4gIHN0cnVjdCBwYXNpZF90YWJsZSB7Cj4gIAl2b2lkCQkJKnRhYmxlOwkJLyog cGFzaWQgdGFibGUgcG9pbnRlciAqLwo+ICAJaW50CQkJb3JkZXI7CQkvKiBwYWdlIG9yZGVyIG9m IHBhc2lkIHRhYmxlICovCj4gLQlpbnQJCQltYXhfcGFzaWQ7CS8qIG1heCBwYXNpZCAqLwo+ICsJ dTMyCQkJbWF4X3Bhc2lkOwkvKiBtYXggcGFzaWQgKi8KPiAgCXN0cnVjdCBsaXN0X2hlYWQJZGV2 OwkJLyogZGV2aWNlIGxpc3QgKi8KPiAgfTsKPiAgCj4gQEAgLTk4LDMxICs5OCwzMSBAQCBzdGF0 aWMgaW5saW5lIGJvb2wgcGFzaWRfcHRlX2lzX3ByZXNlbnQoc3RydWN0IHBhc2lkX2VudHJ5ICpw dGUpCj4gIAlyZXR1cm4gUkVBRF9PTkNFKHB0ZS0+dmFsWzBdKSAmIFBBU0lEX1BURV9QUkVTRU5U Owo+ICB9Cj4gIAo+IC1leHRlcm4gdTMyIGludGVsX3Bhc2lkX21heF9pZDsKPiArZXh0ZXJuIHVu c2lnbmVkIGludCBpbnRlbF9wYXNpZF9tYXhfaWQ7Cj4gIGludCBpbnRlbF9wYXNpZF9hbGxvY19p ZCh2b2lkICpwdHIsIGludCBzdGFydCwgaW50IGVuZCwgZ2ZwX3QgZ2ZwKTsKPiAtdm9pZCBpbnRl bF9wYXNpZF9mcmVlX2lkKGludCBwYXNpZCk7Cj4gLXZvaWQgKmludGVsX3Bhc2lkX2xvb2t1cF9p ZChpbnQgcGFzaWQpOwo+ICt2b2lkIGludGVsX3Bhc2lkX2ZyZWVfaWQodTMyIHBhc2lkKTsKPiAr dm9pZCAqaW50ZWxfcGFzaWRfbG9va3VwX2lkKHUzMiBwYXNpZCk7Cj4gIGludCBpbnRlbF9wYXNp ZF9hbGxvY190YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ICB2b2lkIGludGVsX3Bhc2lkX2Zy ZWVfdGFibGUoc3RydWN0IGRldmljZSAqZGV2KTsKPiAgc3RydWN0IHBhc2lkX3RhYmxlICppbnRl bF9wYXNpZF9nZXRfdGFibGUoc3RydWN0IGRldmljZSAqZGV2KTsKPiAgaW50IGludGVsX3Bhc2lk X2dldF9kZXZfbWF4X2lkKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gLXN0cnVjdCBwYXNpZF9lbnRy eSAqaW50ZWxfcGFzaWRfZ2V0X2VudHJ5KHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBhc2lkKTsK PiArc3RydWN0IHBhc2lkX2VudHJ5ICppbnRlbF9wYXNpZF9nZXRfZW50cnkoc3RydWN0IGRldmlj ZSAqZGV2LCB1MzIgcGFzaWQpOwo+ICBpbnQgaW50ZWxfcGFzaWRfc2V0dXBfZmlyc3RfbGV2ZWwo c3RydWN0IGludGVsX2lvbW11ICppb21tdSwKPiAgCQkJCSAgc3RydWN0IGRldmljZSAqZGV2LCBw Z2RfdCAqcGdkLAo+IC0JCQkJICBpbnQgcGFzaWQsIHUxNiBkaWQsIGludCBmbGFncyk7Cj4gKwkJ CQkgIHUzMiBwYXNpZCwgdTE2IGRpZCwgaW50IGZsYWdzKTsKPiAgaW50IGludGVsX3Bhc2lkX3Nl dHVwX3NlY29uZF9sZXZlbChzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11LAo+ICAJCQkJICAgc3Ry dWN0IGRtYXJfZG9tYWluICpkb21haW4sCj4gLQkJCQkgICBzdHJ1Y3QgZGV2aWNlICpkZXYsIGlu dCBwYXNpZCk7Cj4gKwkJCQkgICBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBwYXNpZCk7Cj4gIGlu dCBpbnRlbF9wYXNpZF9zZXR1cF9wYXNzX3Rocm91Z2goc3RydWN0IGludGVsX2lvbW11ICppb21t dSwKPiAgCQkJCSAgIHN0cnVjdCBkbWFyX2RvbWFpbiAqZG9tYWluLAo+IC0JCQkJICAgc3RydWN0 IGRldmljZSAqZGV2LCBpbnQgcGFzaWQpOwo+ICsJCQkJICAgc3RydWN0IGRldmljZSAqZGV2LCB1 MzIgcGFzaWQpOwo+ICBpbnQgaW50ZWxfcGFzaWRfc2V0dXBfbmVzdGVkKHN0cnVjdCBpbnRlbF9p b21tdSAqaW9tbXUsCj4gLQkJCSAgICAgc3RydWN0IGRldmljZSAqZGV2LCBwZ2RfdCAqcGdkLCBp bnQgcGFzaWQsCj4gKwkJCSAgICAgc3RydWN0IGRldmljZSAqZGV2LCBwZ2RfdCAqcGdkLCB1MzIg cGFzaWQsCj4gIAkJCSAgICAgc3RydWN0IGlvbW11X2dwYXNpZF9iaW5kX2RhdGFfdnRkICpwYXNp ZF9kYXRhLAo+ICAJCQkgICAgIHN0cnVjdCBkbWFyX2RvbWFpbiAqZG9tYWluLCBpbnQgYWRkcl93 aWR0aCk7Cj4gIHZvaWQgaW50ZWxfcGFzaWRfdGVhcl9kb3duX2VudHJ5KHN0cnVjdCBpbnRlbF9p b21tdSAqaW9tbXUsCj4gLQkJCQkgc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcGFzaWQsCj4gKwkJ CQkgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgcGFzaWQsCj4gIAkJCQkgYm9vbCBmYXVsdF9pZ25v cmUpOwo+IC1pbnQgdmNtZF9hbGxvY19wYXNpZChzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11LCB1 bnNpZ25lZCBpbnQgKnBhc2lkKTsKPiAtdm9pZCB2Y21kX2ZyZWVfcGFzaWQoc3RydWN0IGludGVs X2lvbW11ICppb21tdSwgdW5zaWduZWQgaW50IHBhc2lkKTsKPiAraW50IHZjbWRfYWxsb2NfcGFz aWQoc3RydWN0IGludGVsX2lvbW11ICppb21tdSwgdTMyICpwYXNpZCk7Cj4gK3ZvaWQgdmNtZF9m cmVlX3Bhc2lkKHN0cnVjdCBpbnRlbF9pb21tdSAqaW9tbXUsIHUzMiBwYXNpZCk7Cj4gICNlbmRp ZiAvKiBfX0lOVEVMX1BBU0lEX0ggKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9pbnRl bC9pb21tdS5jIGIvZHJpdmVycy9pb21tdS9pbnRlbC9pb21tdS5jCj4gaW5kZXggZDc1OWU3MjM0 ZTk4Li43ZDJkYmMzMjdjNjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9pb21tdS9pbnRlbC9pb21t dS5jCj4gKysrIGIvZHJpdmVycy9pb21tdS9pbnRlbC9pb21tdS5jCj4gQEAgLTI0NzUsNyArMjQ3 NSw3IEBAIGRtYXJfc2VhcmNoX2RvbWFpbl9ieV9kZXZfaW5mbyhpbnQgc2VnbWVudCwgaW50IGJ1 cywgaW50IGRldmZuKQo+ICBzdGF0aWMgaW50IGRvbWFpbl9zZXR1cF9maXJzdF9sZXZlbChzdHJ1 Y3QgaW50ZWxfaW9tbXUgKmlvbW11LAo+ICAJCQkJICAgIHN0cnVjdCBkbWFyX2RvbWFpbiAqZG9t YWluLAo+ICAJCQkJICAgIHN0cnVjdCBkZXZpY2UgKmRldiwKPiAtCQkJCSAgICBpbnQgcGFzaWQp Cj4gKwkJCQkgICAgdTMyIHBhc2lkKQo+ICB7Cj4gIAlpbnQgZmxhZ3MgPSBQQVNJRF9GTEFHX1NV UEVSVklTT1JfTU9ERTsKPiAgCXN0cnVjdCBkbWFfcHRlICpwZ2QgPSBkb21haW4tPnBnZDsKPiBA QCAtNTE1NSw3ICs1MTU1LDcgQEAgc3RhdGljIGludCBhdXhfZG9tYWluX2FkZF9kZXYoc3RydWN0 IGRtYXJfZG9tYWluICpkb21haW4sCj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gIAo+ICAJaWYgKGRv bWFpbi0+ZGVmYXVsdF9wYXNpZCA8PSAwKSB7Cj4gLQkJaW50IHBhc2lkOwo+ICsJCXUzMiBwYXNp ZDsKPiAgCj4gIAkJLyogTm8gcHJpdmF0ZSBkYXRhIG5lZWRlZCBmb3IgdGhlIGRlZmF1bHQgcGFz aWQgKi8KPiAgCQlwYXNpZCA9IGlvYXNpZF9hbGxvYyhOVUxMLCBQQVNJRF9NSU4sCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvaW9tbXUvaW50ZWwvcGFzaWQuYyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwv cGFzaWQuYwo+IGluZGV4IGM4MWYwZjE3YzZiYS4uZDg2MzdjMDIwMjgxIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvaW9tbXUvaW50ZWwvcGFzaWQuYwo+ICsrKyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwv cGFzaWQuYwo+IEBAIC0yNyw3ICsyNyw3IEBACj4gIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0socGFz aWRfbG9jayk7Cj4gIHUzMiBpbnRlbF9wYXNpZF9tYXhfaWQgPSBQQVNJRF9NQVg7Cj4gIAo+IC1p bnQgdmNtZF9hbGxvY19wYXNpZChzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11LCB1bnNpZ25lZCBp bnQgKnBhc2lkKQo+ICtpbnQgdmNtZF9hbGxvY19wYXNpZChzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlv bW11LCB1MzIgKnBhc2lkKQo+ICB7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAJdTggc3Rh dHVzX2NvZGU7Cj4gQEAgLTU4LDcgKzU4LDcgQEAgaW50IHZjbWRfYWxsb2NfcGFzaWQoc3RydWN0 IGludGVsX2lvbW11ICppb21tdSwgdW5zaWduZWQgaW50ICpwYXNpZCkKPiAgCXJldHVybiByZXQ7 Cj4gIH0KPiAgCj4gLXZvaWQgdmNtZF9mcmVlX3Bhc2lkKHN0cnVjdCBpbnRlbF9pb21tdSAqaW9t bXUsIHVuc2lnbmVkIGludCBwYXNpZCkKPiArdm9pZCB2Y21kX2ZyZWVfcGFzaWQoc3RydWN0IGlu dGVsX2lvbW11ICppb21tdSwgdTMyIHBhc2lkKQo+ICB7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdz Owo+ICAJdTggc3RhdHVzX2NvZGU7Cj4gQEAgLTE0Niw3ICsxNDYsNyBAQCBpbnQgaW50ZWxfcGFz aWRfYWxsb2NfdGFibGUoc3RydWN0IGRldmljZSAqZGV2KQo+ICAJc3RydWN0IHBhc2lkX3RhYmxl ICpwYXNpZF90YWJsZTsKPiAgCXN0cnVjdCBwYXNpZF90YWJsZV9vcGFxdWUgZGF0YTsKPiAgCXN0 cnVjdCBwYWdlICpwYWdlczsKPiAtCWludCBtYXhfcGFzaWQgPSAwOwo+ICsJdTMyIG1heF9wYXNp ZCA9IDA7Cj4gIAlpbnQgcmV0LCBvcmRlcjsKPiAgCWludCBzaXplOwo+ICAKPiBAQCAtMTY4LDcg KzE2OCw3IEBAIGludCBpbnRlbF9wYXNpZF9hbGxvY190YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYp Cj4gIAlJTklUX0xJU1RfSEVBRCgmcGFzaWRfdGFibGUtPmRldik7Cj4gIAo+ICAJaWYgKGluZm8t PnBhc2lkX3N1cHBvcnRlZCkKPiAtCQltYXhfcGFzaWQgPSBtaW5fdChpbnQsIHBjaV9tYXhfcGFz aWRzKHRvX3BjaV9kZXYoZGV2KSksCj4gKwkJbWF4X3Bhc2lkID0gbWluX3QodTMyLCBwY2lfbWF4 X3Bhc2lkcyh0b19wY2lfZGV2KGRldikpLAo+ICAJCQkJICBpbnRlbF9wYXNpZF9tYXhfaWQpOwo+ ICAKPiAgCXNpemUgPSBtYXhfcGFzaWQgPj4gKFBBU0lEX1BERV9TSElGVCAtIDMpOwo+IEBAIC0y NDIsNyArMjQyLDcgQEAgaW50IGludGVsX3Bhc2lkX2dldF9kZXZfbWF4X2lkKHN0cnVjdCBkZXZp Y2UgKmRldikKPiAgCXJldHVybiBpbmZvLT5wYXNpZF90YWJsZS0+bWF4X3Bhc2lkOwo+ICB9Cj4g IAo+IC1zdHJ1Y3QgcGFzaWRfZW50cnkgKmludGVsX3Bhc2lkX2dldF9lbnRyeShzdHJ1Y3QgZGV2 aWNlICpkZXYsIGludCBwYXNpZCkKPiArc3RydWN0IHBhc2lkX2VudHJ5ICppbnRlbF9wYXNpZF9n ZXRfZW50cnkoc3RydWN0IGRldmljZSAqZGV2LCB1MzIgcGFzaWQpCj4gIHsKPiAgCXN0cnVjdCBk ZXZpY2VfZG9tYWluX2luZm8gKmluZm87Cj4gIAlzdHJ1Y3QgcGFzaWRfdGFibGUgKnBhc2lkX3Rh YmxlOwo+IEBAIC0yNTEsOCArMjUxLDcgQEAgc3RydWN0IHBhc2lkX2VudHJ5ICppbnRlbF9wYXNp ZF9nZXRfZW50cnkoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcGFzaWQpCj4gIAlpbnQgZGlyX2lu ZGV4LCBpbmRleDsKPiAgCj4gIAlwYXNpZF90YWJsZSA9IGludGVsX3Bhc2lkX2dldF90YWJsZShk ZXYpOwo+IC0JaWYgKFdBUk5fT04oIXBhc2lkX3RhYmxlIHx8IHBhc2lkIDwgMCB8fAo+IC0JCSAg ICBwYXNpZCA+PSBpbnRlbF9wYXNpZF9nZXRfZGV2X21heF9pZChkZXYpKSkKPiArCWlmIChXQVJO X09OKCFwYXNpZF90YWJsZSB8fCBwYXNpZCA+PSBpbnRlbF9wYXNpZF9nZXRfZGV2X21heF9pZChk ZXYpKSkKPiAgCQlyZXR1cm4gTlVMTDsKPiAgCj4gIAlkaXIgPSBwYXNpZF90YWJsZS0+dGFibGU7 Cj4gQEAgLTMwNSw3ICszMDQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGFzaWRfY2xlYXJfZW50 cnlfd2l0aF9mcGQoc3RydWN0IHBhc2lkX2VudHJ5ICpwZSkKPiAgfQo+ICAKPiAgc3RhdGljIHZv aWQKPiAtaW50ZWxfcGFzaWRfY2xlYXJfZW50cnkoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcGFz aWQsIGJvb2wgZmF1bHRfaWdub3JlKQo+ICtpbnRlbF9wYXNpZF9jbGVhcl9lbnRyeShzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHUzMiBwYXNpZCwgYm9vbCBmYXVsdF9pZ25vcmUpCj4gIHsKPiAgCXN0cnVj dCBwYXNpZF9lbnRyeSAqcGU7Cj4gIAo+IEBAIC00NDQsNyArNDQzLDcgQEAgcGFzaWRfc2V0X2Vh ZmUoc3RydWN0IHBhc2lkX2VudHJ5ICpwZSkKPiAgCj4gIHN0YXRpYyB2b2lkCj4gIHBhc2lkX2Nh Y2hlX2ludmFsaWRhdGlvbl93aXRoX3Bhc2lkKHN0cnVjdCBpbnRlbF9pb21tdSAqaW9tbXUsCj4g LQkJCQkgICAgdTE2IGRpZCwgaW50IHBhc2lkKQo+ICsJCQkJICAgIHUxNiBkaWQsIHUzMiBwYXNp ZCkKPiAgewo+ICAJc3RydWN0IHFpX2Rlc2MgZGVzYzsKPiAgCj4gQEAgLTQ3Myw3ICs0NzIsNyBA QCBpb3RsYl9pbnZhbGlkYXRpb25fd2l0aF9wYXNpZChzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11 LCB1MTYgZGlkLCB1MzIgcGFzaWQpCj4gIAo+ICBzdGF0aWMgdm9pZAo+ICBkZXZ0bGJfaW52YWxp ZGF0aW9uX3dpdGhfcGFzaWQoc3RydWN0IGludGVsX2lvbW11ICppb21tdSwKPiAtCQkJICAgICAg IHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBhc2lkKQo+ICsJCQkgICAgICAgc3RydWN0IGRldmlj ZSAqZGV2LCB1MzIgcGFzaWQpCj4gIHsKPiAgCXN0cnVjdCBkZXZpY2VfZG9tYWluX2luZm8gKmlu Zm87Cj4gIAl1MTYgc2lkLCBxZGVwLCBwZnNpZDsKPiBAQCAtNDkwLDcgKzQ4OSw3IEBAIGRldnRs Yl9pbnZhbGlkYXRpb25fd2l0aF9wYXNpZChzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11LAo+ICB9 Cj4gIAo+ICB2b2lkIGludGVsX3Bhc2lkX3RlYXJfZG93bl9lbnRyeShzdHJ1Y3QgaW50ZWxfaW9t bXUgKmlvbW11LCBzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gLQkJCQkgaW50IHBhc2lkLCBib29sIGZh dWx0X2lnbm9yZSkKPiArCQkJCSB1MzIgcGFzaWQsIGJvb2wgZmF1bHRfaWdub3JlKQo+ICB7Cj4g IAlzdHJ1Y3QgcGFzaWRfZW50cnkgKnB0ZTsKPiAgCXUxNiBkaWQ7Cj4gQEAgLTUxNSw3ICs1MTQs NyBAQCB2b2lkIGludGVsX3Bhc2lkX3RlYXJfZG93bl9lbnRyeShzdHJ1Y3QgaW50ZWxfaW9tbXUg KmlvbW11LCBzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAo+ICBzdGF0aWMgdm9pZCBwYXNpZF9mbHVz aF9jYWNoZXMoc3RydWN0IGludGVsX2lvbW11ICppb21tdSwKPiAgCQkJCXN0cnVjdCBwYXNpZF9l bnRyeSAqcHRlLAo+IC0JCQkJaW50IHBhc2lkLCB1MTYgZGlkKQo+ICsJCQkgICAgICAgdTMyIHBh c2lkLCB1MTYgZGlkKQo+ICB7Cj4gIAlpZiAoIWVjYXBfY29oZXJlbnQoaW9tbXUtPmVjYXApKQo+ ICAJCWNsZmx1c2hfY2FjaGVfcmFuZ2UocHRlLCBzaXplb2YoKnB0ZSkpOwo+IEBAIC01MzQsNyAr NTMzLDcgQEAgc3RhdGljIHZvaWQgcGFzaWRfZmx1c2hfY2FjaGVzKHN0cnVjdCBpbnRlbF9pb21t dSAqaW9tbXUsCj4gICAqLwo+ICBpbnQgaW50ZWxfcGFzaWRfc2V0dXBfZmlyc3RfbGV2ZWwoc3Ry dWN0IGludGVsX2lvbW11ICppb21tdSwKPiAgCQkJCSAgc3RydWN0IGRldmljZSAqZGV2LCBwZ2Rf dCAqcGdkLAo+IC0JCQkJICBpbnQgcGFzaWQsIHUxNiBkaWQsIGludCBmbGFncykKPiArCQkJCSAg dTMyIHBhc2lkLCB1MTYgZGlkLCBpbnQgZmxhZ3MpCj4gIHsKPiAgCXN0cnVjdCBwYXNpZF9lbnRy eSAqcHRlOwo+ICAKPiBAQCAtNjA3LDcgKzYwNiw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlvbW11 X3NraXBfYWdhdyhzdHJ1Y3QgZG1hcl9kb21haW4gKmRvbWFpbiwKPiAgICovCj4gIGludCBpbnRl bF9wYXNpZF9zZXR1cF9zZWNvbmRfbGV2ZWwoc3RydWN0IGludGVsX2lvbW11ICppb21tdSwKPiAg CQkJCSAgIHN0cnVjdCBkbWFyX2RvbWFpbiAqZG9tYWluLAo+IC0JCQkJICAgc3RydWN0IGRldmlj ZSAqZGV2LCBpbnQgcGFzaWQpCj4gKwkJCQkgICBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBwYXNp ZCkKPiAgewo+ICAJc3RydWN0IHBhc2lkX2VudHJ5ICpwdGU7Cj4gIAlzdHJ1Y3QgZG1hX3B0ZSAq cGdkOwo+IEBAIC02NjUsNyArNjY0LDcgQEAgaW50IGludGVsX3Bhc2lkX3NldHVwX3NlY29uZF9s ZXZlbChzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11LAo+ICAgKi8KPiAgaW50IGludGVsX3Bhc2lk X3NldHVwX3Bhc3NfdGhyb3VnaChzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11LAo+ICAJCQkJICAg c3RydWN0IGRtYXJfZG9tYWluICpkb21haW4sCj4gLQkJCQkgICBzdHJ1Y3QgZGV2aWNlICpkZXYs IGludCBwYXNpZCkKPiArCQkJCSAgIHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIHBhc2lkKQo+ICB7 Cj4gIAl1MTYgZGlkID0gRkxQVF9ERUZBVUxUX0RJRDsKPiAgCXN0cnVjdCBwYXNpZF9lbnRyeSAq cHRlOwo+IEBAIC03NTEsNyArNzUwLDcgQEAgaW50ZWxfcGFzaWRfc2V0dXBfYmluZF9kYXRhKHN0 cnVjdCBpbnRlbF9pb21tdSAqaW9tbXUsIHN0cnVjdCBwYXNpZF9lbnRyeSAqcHRlLAo+ICAgKiBA YWRkcl93aWR0aDogQWRkcmVzcyB3aWR0aCBvZiB0aGUgZmlyc3QgbGV2ZWwgKGd1ZXN0KQo+ICAg Ki8KPiAgaW50IGludGVsX3Bhc2lkX3NldHVwX25lc3RlZChzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlv bW11LCBzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gLQkJCSAgICAgcGdkX3QgKmdwZ2QsIGludCBwYXNp ZCwKPiArCQkJICAgICBwZ2RfdCAqZ3BnZCwgdTMyIHBhc2lkLAo+ICAJCQkgICAgIHN0cnVjdCBp b21tdV9ncGFzaWRfYmluZF9kYXRhX3Z0ZCAqcGFzaWRfZGF0YSwKPiAgCQkJICAgICBzdHJ1Y3Qg ZG1hcl9kb21haW4gKmRvbWFpbiwgaW50IGFkZHJfd2lkdGgpCj4gIHsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9pb21tdS9pbnRlbC9zdm0uYyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwvc3ZtLmMKPiBp bmRleCA2Yzg3YzgwN2EwYWIuLjc3ODA4OWQxOThlYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2lv bW11L2ludGVsL3N2bS5jCj4gKysrIGIvZHJpdmVycy9pb21tdS9pbnRlbC9zdm0uYwo+IEBAIC0y Myw3ICsyMyw3IEBACj4gICNpbmNsdWRlICJpbnRlbC1wYXNpZC5oIgo+ICAKPiAgc3RhdGljIGly cXJldHVybl90IHBycV9ldmVudF90aHJlYWQoaW50IGlycSwgdm9pZCAqZCk7Cj4gLXN0YXRpYyB2 b2lkIGludGVsX3N2bV9kcmFpbl9wcnEoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcGFzaWQpOwo+ ICtzdGF0aWMgdm9pZCBpbnRlbF9zdm1fZHJhaW5fcHJxKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMy IHBhc2lkKTsKPiAgCj4gICNkZWZpbmUgUFJRX09SREVSIDAKPiAgCj4gQEAgLTM3MSw3ICszNzEs NyBAQCBpbnQgaW50ZWxfc3ZtX2JpbmRfZ3Bhc2lkKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFp biwgc3RydWN0IGRldmljZSAqZGV2LAo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtaW50IGlu dGVsX3N2bV91bmJpbmRfZ3Bhc2lkKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBhc2lkKQo+ICtp bnQgaW50ZWxfc3ZtX3VuYmluZF9ncGFzaWQoc3RydWN0IGRldmljZSAqZGV2LCB1MzIgcGFzaWQp Cj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9pb21tdSAqaW9tbXUgPSBpbnRlbF9zdm1fZGV2aWNlX3Rv X2lvbW11KGRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfc3ZtX2RldiAqc2RldjsKPiBAQCAtNjAxLDcg KzYwMSw3IEBAIGludGVsX3N2bV9iaW5kX21tKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGZsYWdz LCBzdHJ1Y3Qgc3ZtX2Rldl9vcHMgKm9wcywKPiAgfQo+ICAKPiAgLyogQ2FsbGVyIG11c3QgaG9s ZCBwYXNpZF9tdXRleCAqLwo+IC1zdGF0aWMgaW50IGludGVsX3N2bV91bmJpbmRfbW0oc3RydWN0 IGRldmljZSAqZGV2LCBpbnQgcGFzaWQpCj4gK3N0YXRpYyBpbnQgaW50ZWxfc3ZtX3VuYmluZF9t bShzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBwYXNpZCkKPiAgewo+ICAJc3RydWN0IGludGVsX3N2 bV9kZXYgKnNkZXY7Cj4gIAlzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11Owo+IEBAIC03MjgsNyAr NzI4LDcgQEAgc3RhdGljIGJvb2wgaXNfY2Fub25pY2FsX2FkZHJlc3ModTY0IGFkZHIpCj4gICAq IGRlc2NyaWJlZCBpbiBWVC1kIHNwZWMgQ0g3LjEwIHRvIGRyYWluIGFsbCBwYWdlIHJlcXVlc3Rz IGFuZCBwYWdlCj4gICAqIHJlc3BvbnNlcyBwZW5kaW5nIGluIHRoZSBoYXJkd2FyZS4KPiAgICov Cj4gLXN0YXRpYyB2b2lkIGludGVsX3N2bV9kcmFpbl9wcnEoc3RydWN0IGRldmljZSAqZGV2LCBp bnQgcGFzaWQpCj4gK3N0YXRpYyB2b2lkIGludGVsX3N2bV9kcmFpbl9wcnEoc3RydWN0IGRldmlj ZSAqZGV2LCB1MzIgcGFzaWQpCj4gIHsKPiAgCXN0cnVjdCBkZXZpY2VfZG9tYWluX2luZm8gKmlu Zm87Cj4gIAlzdHJ1Y3QgZG1hcl9kb21haW4gKmRvbWFpbjsKPiBAQCAtOTg4LDEwICs5ODgsMTAg QEAgdm9pZCBpbnRlbF9zdm1fdW5iaW5kKHN0cnVjdCBpb21tdV9zdmEgKnN2YSkKPiAgCW11dGV4 X3VubG9jaygmcGFzaWRfbXV0ZXgpOwo+ICB9Cj4gIAo+IC1pbnQgaW50ZWxfc3ZtX2dldF9wYXNp ZChzdHJ1Y3QgaW9tbXVfc3ZhICpzdmEpCj4gK3UzMiBpbnRlbF9zdm1fZ2V0X3Bhc2lkKHN0cnVj dCBpb21tdV9zdmEgKnN2YSkKPiAgewo+ICAJc3RydWN0IGludGVsX3N2bV9kZXYgKnNkZXY7Cj4g LQlpbnQgcGFzaWQ7Cj4gKwl1MzIgcGFzaWQ7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmcGFzaWRfbXV0 ZXgpOwo+ICAJc2RldiA9IHRvX2ludGVsX3N2bV9kZXYoc3ZhKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9pb21tdS9pb21tdS5jIGIvZHJpdmVycy9pb21tdS9pb21tdS5jCj4gaW5kZXggZDQzMTIw ZWIxZGM1Li41NmRiYWJkZDdmNWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9pb21tdS9pb21tdS5j Cj4gKysrIGIvZHJpdmVycy9pb21tdS9pb21tdS5jCj4gQEAgLTI4MjgsNyArMjgyOCw3IEBAIHZv aWQgaW9tbXVfc3ZhX3VuYmluZF9kZXZpY2Uoc3RydWN0IGlvbW11X3N2YSAqaGFuZGxlKQo+ICB9 Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKGlvbW11X3N2YV91bmJpbmRfZGV2aWNlKTsKPiAgCj4gLWlu dCBpb21tdV9zdmFfZ2V0X3Bhc2lkKHN0cnVjdCBpb21tdV9zdmEgKmhhbmRsZSkKPiArdTMyIGlv bW11X3N2YV9nZXRfcGFzaWQoc3RydWN0IGlvbW11X3N2YSAqaGFuZGxlKQo+ICB7Cj4gIAljb25z dCBzdHJ1Y3QgaW9tbXVfb3BzICpvcHMgPSBoYW5kbGUtPmRldi0+YnVzLT5pb21tdV9vcHM7Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvdWFjY2UvdWFjY2UuYyBiL2RyaXZlcnMvbWlz Yy91YWNjZS91YWNjZS5jCj4gaW5kZXggMTA3MDI4ZTc3Y2EzLi41Y2M2ZWJjY2JhNjUgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9taXNjL3VhY2NlL3VhY2NlLmMKPiArKysgYi9kcml2ZXJzL21pc2Mv dWFjY2UvdWFjY2UuYwo+IEBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBsb25nIHVhY2NlX2ZvcHNf Y29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlcCwKPiAgCj4gIHN0YXRpYyBpbnQgdWFjY2Vf YmluZF9xdWV1ZShzdHJ1Y3QgdWFjY2VfZGV2aWNlICp1YWNjZSwgc3RydWN0IHVhY2NlX3F1ZXVl ICpxKQo+ICB7Cj4gLQlpbnQgcGFzaWQ7Cj4gKwl1MzIgcGFzaWQ7Cj4gIAlzdHJ1Y3QgaW9tbXVf c3ZhICpoYW5kbGU7Cj4gIAo+ICAJaWYgKCEodWFjY2UtPmZsYWdzICYgVUFDQ0VfREVWX1NWQSkp Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYW1kLWlvbW11LmggYi9pbmNsdWRlL2xpbnV4 L2FtZC1pb21tdS5oCj4gaW5kZXggMjFlOTUwZTRhYjYyLi40NTA3MTcyOTk5MjggMTAwNjQ0Cj4g LS0tIGEvaW5jbHVkZS9saW51eC9hbWQtaW9tbXUuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvYW1k LWlvbW11LmgKPiBAQCAtNzYsNyArNzYsNyBAQCBleHRlcm4gdm9pZCBhbWRfaW9tbXVfZnJlZV9k ZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpOwo+ICAgKgo+ICAgKiBUaGUgZnVuY3Rpb24gcmV0 dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBlcnJvci4KPiAgICovCj4g LWV4dGVybiBpbnQgYW1kX2lvbW11X2JpbmRfcGFzaWQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGlu dCBwYXNpZCwKPiArZXh0ZXJuIGludCBhbWRfaW9tbXVfYmluZF9wYXNpZChzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgdTMyIHBhc2lkLAo+ICAJCQkJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKPiAg Cj4gIC8qKgo+IEBAIC04OCw3ICs4OCw3IEBAIGV4dGVybiBpbnQgYW1kX2lvbW11X2JpbmRfcGFz aWQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBwYXNpZCwKPiAgICogV2hlbiB0aGlzIGZ1bmN0 aW9uIHJldHVybnMgdGhlIGRldmljZSBpcyBubyBsb25nZXIgdXNpbmcgdGhlIFBBU0lECj4gICAq IGFuZCB0aGUgUEFTSUQgaXMgbm8gbG9uZ2VyIGJvdW5kIHRvIGl0cyB0YXNrLgo+ICAgKi8KPiAt ZXh0ZXJuIHZvaWQgYW1kX2lvbW11X3VuYmluZF9wYXNpZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwg aW50IHBhc2lkKTsKPiArZXh0ZXJuIHZvaWQgYW1kX2lvbW11X3VuYmluZF9wYXNpZChzdHJ1Y3Qg cGNpX2RldiAqcGRldiwgdTMyIHBhc2lkKTsKPiAgCj4gIC8qKgo+ICAgKiBhbWRfaW9tbXVfc2V0 X2ludmFsaWRfcHByX2NiKCkgLSBSZWdpc3RlciBhIGNhbGwtYmFjayBmb3IgZmFpbGVkCj4gQEAg LTExNCw3ICsxMTQsNyBAQCBleHRlcm4gdm9pZCBhbWRfaW9tbXVfdW5iaW5kX3Bhc2lkKHN0cnVj dCBwY2lfZGV2ICpwZGV2LCBpbnQgcGFzaWQpOwo+ICAjZGVmaW5lIEFNRF9JT01NVV9JTlZfUFJJ X1JTUF9GQUlMCTIKPiAgCj4gIHR5cGVkZWYgaW50ICgqYW1kX2lvbW11X2ludmFsaWRfcHByX2Ni KShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPiAtCQkJCQlpbnQgcGFzaWQsCj4gKwkJCQkJdTMyIHBh c2lkLAo+ICAJCQkJCXVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiAgCQkJCQl1MTYpOwo+ICAKPiBA QCAtMTY2LDcgKzE2Niw3IEBAIGV4dGVybiBpbnQgYW1kX2lvbW11X2RldmljZV9pbmZvKHN0cnVj dCBwY2lfZGV2ICpwZGV2LAo+ICAgKiBAY2I6IFRoZSBjYWxsLWJhY2sgZnVuY3Rpb24KPiAgICov Cj4gIAo+IC10eXBlZGVmIHZvaWQgKCphbWRfaW9tbXVfaW52YWxpZGF0ZV9jdHgpKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBpbnQgcGFzaWQpOwo+ICt0eXBlZGVmIHZvaWQgKCphbWRfaW9tbXVfaW52 YWxpZGF0ZV9jdHgpKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1MzIgcGFzaWQpOwo+ICAKPiAgZXh0 ZXJuIGludCBhbWRfaW9tbXVfc2V0X2ludmFsaWRhdGVfY3R4X2NiKHN0cnVjdCBwY2lfZGV2ICpw ZGV2LAo+ICAJCQkJCSAgIGFtZF9pb21tdV9pbnZhbGlkYXRlX2N0eCBjYik7Cj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvaW50ZWwtaW9tbXUuaCBiL2luY2x1ZGUvbGludXgvaW50ZWwtaW9t bXUuaAo+IGluZGV4IDNlOGZhMWM3YTFlNi4uNjQzOTUxZTI4ZGQ0IDEwMDY0NAo+IC0tLSBhL2lu Y2x1ZGUvbGludXgvaW50ZWwtaW9tbXUuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvaW50ZWwtaW9t bXUuaAo+IEBAIC01NTAsNyArNTUwLDcgQEAgc3RydWN0IGRtYXJfZG9tYWluIHsKPiAgCQkJCQkg ICAyID09IDFHaUIsIDMgPT0gNTEyR2lCLCA0ID09IDFUaUIgKi8KPiAgCXU2NAkJbWF4X2FkZHI7 CS8qIG1heGltdW0gbWFwcGVkIGFkZHJlc3MgKi8KPiAgCj4gLQlpbnQJCWRlZmF1bHRfcGFzaWQ7 CS8qCj4gKwl1MzIJCWRlZmF1bHRfcGFzaWQ7CS8qCj4gIAkJCQkJICogVGhlIGRlZmF1bHQgcGFz aWQgdXNlZCBmb3Igbm9uLVNWTQo+ICAJCQkJCSAqIHRyYWZmaWMgb24gbWVkaWF0ZWQgZGV2aWNl cy4KPiAgCQkJCQkgKi8KPiBAQCAtNzA3LDcgKzcwNyw3IEBAIHZvaWQgcWlfZmx1c2hfZGV2X2lv dGxiX3Bhc2lkKHN0cnVjdCBpbnRlbF9pb21tdSAqaW9tbXUsIHUxNiBzaWQsIHUxNiBwZnNpZCwK PiAgCQkJICAgICAgdTMyIHBhc2lkLCB1MTYgcWRlcCwgdTY0IGFkZHIsCj4gIAkJCSAgICAgIHVu c2lnbmVkIGludCBzaXplX29yZGVyLCB1NjQgZ3JhbnUpOwo+ICB2b2lkIHFpX2ZsdXNoX3Bhc2lk X2NhY2hlKHN0cnVjdCBpbnRlbF9pb21tdSAqaW9tbXUsIHUxNiBkaWQsIHU2NCBncmFudSwKPiAt CQkJICBpbnQgcGFzaWQpOwo+ICsJCQkgIHUzMiBwYXNpZCk7Cj4gIAo+ICBpbnQgcWlfc3VibWl0 X3N5bmMoc3RydWN0IGludGVsX2lvbW11ICppb21tdSwgc3RydWN0IHFpX2Rlc2MgKmRlc2MsCj4g IAkJICAgdW5zaWduZWQgaW50IGNvdW50LCB1bnNpZ25lZCBsb25nIG9wdGlvbnMpOwo+IEBAIC03 MzUsMTEgKzczNSwxMSBAQCBleHRlcm4gaW50IGludGVsX3N2bV9lbmFibGVfcHJxKHN0cnVjdCBp bnRlbF9pb21tdSAqaW9tbXUpOwo+ICBleHRlcm4gaW50IGludGVsX3N2bV9maW5pc2hfcHJxKHN0 cnVjdCBpbnRlbF9pb21tdSAqaW9tbXUpOwo+ICBpbnQgaW50ZWxfc3ZtX2JpbmRfZ3Bhc2lkKHN0 cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgc3RydWN0IGRldmljZSAqZGV2LAo+ICAJCQkgIHN0 cnVjdCBpb21tdV9ncGFzaWRfYmluZF9kYXRhICpkYXRhKTsKPiAtaW50IGludGVsX3N2bV91bmJp bmRfZ3Bhc2lkKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBhc2lkKTsKPiAraW50IGludGVsX3N2 bV91bmJpbmRfZ3Bhc2lkKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIHBhc2lkKTsKPiAgc3RydWN0 IGlvbW11X3N2YSAqaW50ZWxfc3ZtX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbW1f c3RydWN0ICptbSwKPiAgCQkJCSB2b2lkICpkcnZkYXRhKTsKPiAgdm9pZCBpbnRlbF9zdm1fdW5i aW5kKHN0cnVjdCBpb21tdV9zdmEgKmhhbmRsZSk7Cj4gLWludCBpbnRlbF9zdm1fZ2V0X3Bhc2lk KHN0cnVjdCBpb21tdV9zdmEgKmhhbmRsZSk7Cj4gK3UzMiBpbnRlbF9zdm1fZ2V0X3Bhc2lkKHN0 cnVjdCBpb21tdV9zdmEgKmhhbmRsZSk7Cj4gIHN0cnVjdCBzdm1fZGV2X29wczsKPiAgCj4gIHN0 cnVjdCBpbnRlbF9zdm1fZGV2IHsKPiBAQCAtNzQ4LDcgKzc0OCw3IEBAIHN0cnVjdCBpbnRlbF9z dm1fZGV2IHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsKPiAgCXN0cnVjdCBzdm1fZGV2X29wcyAq b3BzOwo+ICAJc3RydWN0IGlvbW11X3N2YSBzdmE7Cj4gLQlpbnQgcGFzaWQ7Cj4gKwl1MzIgcGFz aWQ7Cj4gIAlpbnQgdXNlcnM7Cj4gIAl1MTYgZGlkOwo+ICAJdTE2IGRldl9pb3RsYjoxOwo+IEBA IC03NjEsNyArNzYxLDcgQEAgc3RydWN0IGludGVsX3N2bSB7Cj4gIAo+ICAJc3RydWN0IGludGVs X2lvbW11ICppb21tdTsKPiAgCWludCBmbGFnczsKPiAtCWludCBwYXNpZDsKPiArCXUzMiBwYXNp ZDsKPiAgCWludCBncGFzaWQ7IC8qIEluIGNhc2UgdGhhdCBndWVzdCBQQVNJRCBpcyBkaWZmZXJl bnQgZnJvbSBob3N0IFBBU0lEICovCj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIGRldnM7Cj4gIAlzdHJ1 Y3QgbGlzdF9oZWFkIGxpc3Q7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW50ZWwtc3Zt LmggYi9pbmNsdWRlL2xpbnV4L2ludGVsLXN2bS5oCj4gaW5kZXggYzllN2U2MDE5NTBkLi4zOWQz NjhhODEwYjggMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9pbnRlbC1zdm0uaAo+ICsrKyBi L2luY2x1ZGUvbGludXgvaW50ZWwtc3ZtLmgKPiBAQCAtMTEsNyArMTEsNyBAQAo+ICBzdHJ1Y3Qg ZGV2aWNlOwo+ICAKPiAgc3RydWN0IHN2bV9kZXZfb3BzIHsKPiAtCXZvaWQgKCpmYXVsdF9jYiko c3RydWN0IGRldmljZSAqZGV2LCBpbnQgcGFzaWQsIHU2NCBhZGRyZXNzLAo+ICsJdm9pZCAoKmZh dWx0X2NiKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBwYXNpZCwgdTY0IGFkZHJlc3MsCj4gIAkJ CSB2b2lkICpwcml2YXRlLCBpbnQgcnd4cCwgaW50IHJlc3BvbnNlKTsKPiAgfTsKPiAgCj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW9tbXUuaCBiL2luY2x1ZGUvbGludXgvaW9tbXUuaAo+ IGluZGV4IDVmMGI3ODU5ZDJlYi4uOTE4OGVjNWIzOWM1IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUv bGludXgvaW9tbXUuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvaW9tbXUuaAo+IEBAIC0yOTIsNyAr MjkyLDcgQEAgc3RydWN0IGlvbW11X29wcyB7Cj4gIAlzdHJ1Y3QgaW9tbXVfc3ZhICooKnN2YV9i aW5kKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAo+ICAJCQkJICAg ICAgdm9pZCAqZHJ2ZGF0YSk7Cj4gIAl2b2lkICgqc3ZhX3VuYmluZCkoc3RydWN0IGlvbW11X3N2 YSAqaGFuZGxlKTsKPiAtCWludCAoKnN2YV9nZXRfcGFzaWQpKHN0cnVjdCBpb21tdV9zdmEgKmhh bmRsZSk7Cj4gKwl1MzIgKCpzdmFfZ2V0X3Bhc2lkKShzdHJ1Y3QgaW9tbXVfc3ZhICpoYW5kbGUp Owo+ICAKPiAgCWludCAoKnBhZ2VfcmVzcG9uc2UpKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgCQkJ ICAgICBzdHJ1Y3QgaW9tbXVfZmF1bHRfZXZlbnQgKmV2dCwKPiBAQCAtMzAyLDcgKzMwMiw3IEBA IHN0cnVjdCBpb21tdV9vcHMgewo+ICAJaW50ICgqc3ZhX2JpbmRfZ3Bhc2lkKShzdHJ1Y3QgaW9t bXVfZG9tYWluICpkb21haW4sCj4gIAkJCXN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGlvbW11 X2dwYXNpZF9iaW5kX2RhdGEgKmRhdGEpOwo+ICAKPiAtCWludCAoKnN2YV91bmJpbmRfZ3Bhc2lk KShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwYXNpZCk7Cj4gKwlpbnQgKCpzdmFfdW5iaW5kX2dw YXNpZCkoc3RydWN0IGRldmljZSAqZGV2LCB1MzIgcGFzaWQpOwo+ICAKPiAgCWludCAoKmRlZl9k b21haW5fdHlwZSkoc3RydWN0IGRldmljZSAqZGV2KTsKPiAgCj4gQEAgLTY1Niw3ICs2NTYsNyBA QCBzdHJ1Y3QgaW9tbXVfc3ZhICppb21tdV9zdmFfYmluZF9kZXZpY2Uoc3RydWN0IGRldmljZSAq ZGV2LAo+ICAJCQkJCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAo+ICAJCQkJCXZvaWQgKmRydmRhdGEp Owo+ICB2b2lkIGlvbW11X3N2YV91bmJpbmRfZGV2aWNlKHN0cnVjdCBpb21tdV9zdmEgKmhhbmRs ZSk7Cj4gLWludCBpb21tdV9zdmFfZ2V0X3Bhc2lkKHN0cnVjdCBpb21tdV9zdmEgKmhhbmRsZSk7 Cj4gK3UzMiBpb21tdV9zdmFfZ2V0X3Bhc2lkKHN0cnVjdCBpb21tdV9zdmEgKmhhbmRsZSk7Cj4g IAo+ICAjZWxzZSAvKiBDT05GSUdfSU9NTVVfQVBJICovCj4gIAo+IEBAIC0xMDQ5LDcgKzEwNDks NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW9tbXVfc3ZhX3VuYmluZF9kZXZpY2Uoc3RydWN0IGlv bW11X3N2YSAqaGFuZGxlKQo+ICB7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbmxpbmUgaW50IGlvbW11 X3N2YV9nZXRfcGFzaWQoc3RydWN0IGlvbW11X3N2YSAqaGFuZGxlKQo+ICtzdGF0aWMgaW5saW5l IHUzMiBpb21tdV9zdmFfZ2V0X3Bhc2lkKHN0cnVjdCBpb21tdV9zdmEgKmhhbmRsZSkKPiAgewo+ ICAJcmV0dXJuIElPTU1VX1BBU0lEX0lOVkFMSUQ7Cj4gIH0KPiBAQCAtMTA2OCw3ICsxMDY4LDcg QEAgc3RhdGljIGlubGluZSBpbnQgaW9tbXVfc3ZhX2JpbmRfZ3Bhc2lkKHN0cnVjdCBpb21tdV9k b21haW4gKmRvbWFpbiwKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSBpbnQgaW9tbXVfc3ZhX3Vu YmluZF9ncGFzaWQoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAo+IC0JCQkJCSAgIHN0cnVj dCBkZXZpY2UgKmRldiwgaW50IHBhc2lkKQo+ICsJCQkJCSAgIHN0cnVjdCBkZXZpY2UgKmRldiwg dTMyIHBhc2lkKQo+ICB7Cj4gIAlyZXR1cm4gLUVOT0RFVjsKPiAgfQo+IGRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L3VhY2NlLmggYi9pbmNsdWRlL2xpbnV4L3VhY2NlLmgKPiBpbmRleCA0NTRj MmY2NjcyZDcuLjQ4ZTMxOWY0MDI3NSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3VhY2Nl LmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L3VhY2NlLmgKPiBAQCAtODEsNyArODEsNyBAQCBzdHJ1 Y3QgdWFjY2VfcXVldWUgewo+ICAJc3RydWN0IGxpc3RfaGVhZCBsaXN0Owo+ICAJc3RydWN0IHVh Y2NlX3FmaWxlX3JlZ2lvbiAqcWZyc1tVQUNDRV9NQVhfUkVHSU9OXTsKPiAgCWVudW0gdWFjY2Vf cV9zdGF0ZSBzdGF0ZTsKPiAtCWludCBwYXNpZDsKPiArCXUzMiBwYXNpZDsKPiAgCXN0cnVjdCBp b21tdV9zdmEgKmhhbmRsZTsKPiAgfTsKPiAgCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vYW1kLWdmeAo=