Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp168620pxb; Thu, 13 Jan 2022 04:25:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJyUFmfLN+Hsn7zQc1pNPRgsDEPacK/brsJTnAc1tm37YT142nR0MqGsRY/t1oYy2BlFtVpC X-Received: by 2002:a63:6c03:: with SMTP id h3mr3568841pgc.604.1642076744689; Thu, 13 Jan 2022 04:25:44 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1642076744; cv=pass; d=google.com; s=arc-20160816; b=Bd+KnqOYDQsFcbsayHzP6G+MxjDZbtPVPdMQ7WsV/hK/U+Dsc8hmMWGHoGnLcITnh4 ZxL9chzlvauOVF5RLCS80iq+AcvQYnMZ0jbzHg9S4AIKJ/H4Jy3wMp13Z7ZGHBE2Dxs6 cOAlAvZZCPiz/Q46Yr2h8wstwX9nbEnMkYuLxhwHnH7okYprzD2dnVSVjeN0mYMRguow EmC7EmFJMddV9aMWgcsn+RSomwUW+jklLWp7qr0lsqB2IBXoJPID4lYLk/76T+cJv0nm l4BMXd9biQz+HWP1n3iq8lkrvlDSpL15yUyue0zdD/R9STOYapMIWmwN6PJjZjC8bYTD u/oQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=AhoMa+qKUdTLLWGtJiak6+0cbIxssJb92W/+xQDb1VI=; b=v3lVbLpAM9z/oT3pNQsmV/aTEXdE7ww4W6AAPSTLotjqI5yxzyKn+KFvqVLCgp/6dg X8vFdqm+hC8P+yjkUdNo0oRH64CmURgw7qBUNRQoMSQmATdT8xM1onRarVs4yprPBtl6 45AFE0pSofIniKQdWLOzzEDmwaFZzh7hj5ja5gCMRFIXKWLAgxK1ViiVWY1r+keIf+C5 o/38CG+vXgf8YWERDIKij+9IAcATjGW9L5eZZGGeZDuEHTz22m/0+toI+C/NAXWaWjWx GmJUwPLWNglhg20jQO5RpsE3mxjgCCT38CKzU5poHrT3iwEFWrRqah7S/XtJRL4coJjw KcLg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=AWrcjtK1; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bb5si2414888plb.567.2022.01.13.04.25.35; Thu, 13 Jan 2022 04:25:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=AWrcjtK1; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233179AbiAMI4Y (ORCPT + 71 others); Thu, 13 Jan 2022 03:56:24 -0500 Received: from mail-co1nam11on2086.outbound.protection.outlook.com ([40.107.220.86]:28322 "EHLO NAM11-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231853AbiAMI4R (ORCPT ); Thu, 13 Jan 2022 03:56:17 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QWLQywJJpAz6LC0VXQW/sASyaix6Dz+MID5zatn4COwfYAYs5um/7I1O8N1rid2nftrIXxvbvoYxGQcU+tN40W9ow88zxOSsybIR19eVo07psppwNOdhiazN/HdWtpKEEncvw+pbARDA25puIDsulNNgMegTjZBAR59ELat2m+AqrRbH2aZSAFRfMvkxNQl9Z4iVZh5jsEc4NRugp5U79dw6kbcNu5lyXlH29SX6wWEYfv7UIman05KcpZ/H0zeRvStP2Ol7TnDZMTWEPfBy9N4yfHI309l+VNejqe74Fn2j5PqIoB05Li0k694n2WJbw3Ndb+gb4c/KwThI5J6JWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AhoMa+qKUdTLLWGtJiak6+0cbIxssJb92W/+xQDb1VI=; b=QFsjdJLOZYgLbjyfnMjOp2I+pS3MLwkAhBS7R0SWvCehL7qv6gNrq0XS0NZunq63oBAIGZhlM8bFrFCJi59ls7dP8+AJbef6uAoqMfRMiYf1Rdp/zA8VoNc4SUnQImuErQ047LPWmBZsFdeo6i0Q+e6PWzDJsjAucR+VdIZKLS5dOZT538BFa8fR6oAfKSojvbt1HcmTbxAqKDQEYqGRvjTZz7XgsY3vxSjZAtRSY6XoOZry/tlHAy8PfF5od7ca69ntlO28pHG6N+7kj3jmqGF/dzyzQ/8dYmD5n6C5wwO4VjT8Gw9alb7WI2+11iwJua00RJxq9upB1oCc4nKedA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AhoMa+qKUdTLLWGtJiak6+0cbIxssJb92W/+xQDb1VI=; b=AWrcjtK1c+SCiDhr4cgZ5p5Ds/yJXrqyMM0iqDUrwF58UI90F7bBe2NXMJmk1YxxiiZzx983YB02Mb+3+cPeNprafsFPK+qeka1GNVy9hNj9rQiDgadknaf5QN/0jBPRYSPo/2NSFBKYpqbHChs7Qla7ykrB/90u+Dq6ZaizIWo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=silabs.com; Received: from PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) by BY5PR11MB4040.namprd11.prod.outlook.com (2603:10b6:a03:186::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.10; Thu, 13 Jan 2022 08:56:05 +0000 Received: from PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4]) by PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4%5]) with mapi id 15.20.4888.011; Thu, 13 Jan 2022 08:56:05 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= Subject: [PATCH 14/31] staging: wfx: prefix functions from hif_*.h with wfx_ Date: Thu, 13 Jan 2022 09:55:07 +0100 Message-Id: <20220113085524.1110708-15-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220113085524.1110708-1-Jerome.Pouiller@silabs.com> References: <20220113085524.1110708-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: SA0PR11CA0117.namprd11.prod.outlook.com (2603:10b6:806:d1::32) To PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ffc0467a-f323-429b-4b68-08d9d6728844 X-MS-TrafficTypeDiagnostic: BY5PR11MB4040:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:109; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NK0Hf9RC1HBcXn2ZzPtIKunD6kQwXyJSBZ7WUcVKFvoPRXPSg7AeHMi4Q6xB56uiQjSLrQiZzBLmtx+DPADlSnEQy8g5MjRpYdC1rfH4huxXhwedMpOeAfEykPodCmCPJuV4VXGtOD5si3Bs4CsxOd8lWntkd4UmTT4X6Cvd9IWtm8AaUUVy8wgK/IuCQ3rYmWHRtZ1FklGOcF0yvBzU99934GQy4qNWFrA2jovK27jRCU9lVeMqE4iKhkYl3Ow1UlPs9p4R1zOiuL65OmNhzKsmGvmpi7AjzhrR7fSJjVinoikqV5CUPtSf140fcWOcf+TiFR1/FVAcETl2ZFMjfRgEcjeZtwLgzjbCpgTK3b9+r7k5zr/A3yUmW3Zpt83pg+d+MlSbEgerbeeaCBnQUQqmG/noThI74dbXzjDgOtwi8u0i1aNnzBc5bMhF1wx6b734Oj63x3rVAnB69oSwNV0GpZQuLOKBwqcafoRC4VK6JpOWRbtDhOPoVr765VibyRMIs14u96qTNDqkh6TzQVLKZs8+MoZ6p6oCtJhmB0cdVi7Kb7KyrnOFnOj7jwzCz5ViUF/fftIP5Tj/Oci11yzMQBebyYDi5rnpsaDvxXE8fTLI/LfH1cWcSILkwIs0qumUHSiWPcGiKSSDfyo+NA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5657.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6506007)(508600001)(186003)(38100700002)(30864003)(4326008)(8936002)(6512007)(66946007)(83380400001)(1076003)(2616005)(54906003)(86362001)(66556008)(2906002)(66476007)(316002)(52116002)(36756003)(5660300002)(66574015)(8676002)(6486002)(107886003)(559001)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SGRBdUh3bHM1TUphU1FoeGhSSC8yT2ppRXBwTVBSZFdaWVlDVEZYODVMbWZs?= =?utf-8?B?U2Z2ckZyTlU5Y211cENaK05ENkZYV05pWVZ2a2J5Z3pHSGNUNC9zSE5rUUow?= =?utf-8?B?ci8xUTVubEhxOHErUFlySjRmNlduOWlUSWZlZkdacUhaQ05GOWRHNjFNcUU4?= =?utf-8?B?MXdqdm54Q2pyMWg1VUxCYTJNRjZGWHp5NkxkR24rM3QwNTBhUlovOWpoY0NR?= =?utf-8?B?ck5weUlMajhQUVJ6SWxJbDl2K2IvL2tIMm5VUFlYTVRNWGlZQVJpeW1PUk1B?= =?utf-8?B?TVhzczVNaEgzeS9IUERIRnI0NmRvRENsRjI0WTFzVG9Sb24rUXlwdXBPMW1C?= =?utf-8?B?L3ZhVGNHZGxVcWJ3OUhDcGdic2tzRDNiclVsWkpLRnJBU3lseWFsZkE1YVp2?= =?utf-8?B?TEdkbndzeFpDOXRwWHFJY3Vld0tWL25SeDlXR1Z2VkUzT3E2S3BSVlF3Wi9O?= =?utf-8?B?V1VaMTUxd0pUSHc2UHk1RWx6bjRsd01JZ3dZYVRucjN0VnhZdjRLVlRGUlVy?= =?utf-8?B?VU82LzgxQnVvSUZ4MTNQVDl6ZjcwZ2M1ZHJoUmJlSGNvT0Y3bEZycWE4b0tI?= =?utf-8?B?bXpHQnhMTmp6STlpVEZmYzVnT25ySEFsWGxsNEw3NlVFY1laYXVUQnlIS05y?= =?utf-8?B?dEU2eTBsZmVoMG4wWWJLdDd5U0tUd3crb0JWRy9EYUdYYXhkc3M0cVlsN3VN?= =?utf-8?B?VzZhcE9zMmFzZzBmL3RTck1kY3czcmNLeUF6QnRybEh0QWpNd1ZZNFZzZEgw?= =?utf-8?B?bGJlMDRCUml2cElQU2hWWHNvOVBpajlXekVUbDhMdTRSQ21JN3FPWUNlZHJ0?= =?utf-8?B?em5YNEQwblhya2RVbnpNYmxobEhqckNOdWhvYmN4My9yYzc1NWJNay9wbFEr?= =?utf-8?B?OU51VFAwakdJdGpPRFBselhqell0bWs3dmQ0WmQwQUV3eUt0b3ZTbFFWYll3?= =?utf-8?B?T1NkWGZ6a1ZSb3hPcTBuWDVDR3MycU5LempkdmdSKzcxVUZIYmo0YXFTbVVE?= =?utf-8?B?eGlyYldRcnhpdTJFWkUxVzZZVTZ4ZXdsZGFSWHNZV005eTI3SFgzR1VnV2lX?= =?utf-8?B?UldUeWxUQnkrTHRlQzZWNTlXWFJsb2ZGQXpYOHRBOERvcDZoVXVpWWVRYWZ1?= =?utf-8?B?UzEzT2pyOHVwazBybUtYWEJYU05NRzRVaWcyekh5dUlLTGlPdGlTbTh3K3VV?= =?utf-8?B?bHR0V1BwaGNtcGFhNkNrdW5GQVpobkgvNWNhRFU2OWk2MTZmNG0wbyt0SlFo?= =?utf-8?B?cWk2SlNKQ2RISzhtSlkxdDQwcjNhdkdWLzNudUMrY3ZkdHdBYlk0eWdLUUsw?= =?utf-8?B?Z1diaWp2eFRpcDZYTjV0M1JZUHV6ZlY2elcwVTZLOVhzYXg2cU9ra284RzNV?= =?utf-8?B?TmtCSXVRRkk2VURrMnR3cmhvRDJ0RE4xVnJMYjB4UzlrekUreXlTdkN3VmZn?= =?utf-8?B?K1lKOFVraTlybVh0WVFwTkp5alpWdjRZNExXTlQzdTFxdzVObGgxSE5pQ2ln?= =?utf-8?B?Sy9wcTNsbGVpM0xjdFNCK3lmdit4NWJYbmdFenpKdEVIRnZhUzZvMmE4bW9m?= =?utf-8?B?VURiQURKTStLWS90RnpOTGoweldQYnpzN0tseTdpZGl0V1VROFBRVUxIZFkr?= =?utf-8?B?OGxyRUZHNG96L2xrbndkUktFUG9ndkVGS3M4bzA4MUdDdlpLMjBMYkx3d3pT?= =?utf-8?B?czZoN1lrMm1ielI0QXpMTnM1N2p4K0JOSUhxeElwM3Y0Q0UzUlBhbGxKZm9G?= =?utf-8?B?bTlRMFVIRXJ2Y0R3c3Fqa2RpdEJjVWFWVDVYNDY3ZUl6Qm9IeDdyaEVma2Ev?= =?utf-8?B?cEU0TVdlUkpRTGljcTdkNVE5TTFFUXNDdGkxWmJ2bktwTS9aVHZVOWxlNG5D?= =?utf-8?B?NzFBRitUL1FBY0hmaGlPcDlINzdqYTVEUUNUN25LMjlsdFFpTFY4MzVyRWRM?= =?utf-8?B?cmsrbnVuajdteUN0eHgvdDJsaFFvZ3BMV2VMZEZCRTdsNU1sbmlKb1hjNW02?= =?utf-8?B?Zk9UVm5JR0JJdmlmRHZnSWM0VlREYjFaQ29SWlVFN1lqM2Jldm5paTBCV0p0?= =?utf-8?B?MTN0VmdFYmlzWDc3bnNhVS9NVWpGaUl1b0F4WjFFaHJuVlhiRUx4aVV3WS81?= =?utf-8?B?RXBXaHZzalJ4YzFTc0lSVXNSWU9UVXdIZTYxdWRFUkc3V05NYkZ3M3V2UXBt?= =?utf-8?B?OExreU8rRnRQRjhVS0F2S3NJWEo3WUYvdy9jUlI5MndGTHFvTFd6RnNncDdK?= =?utf-8?Q?iieN4b+a9poC18ZpsukAISWvY5TDwU9itEWTrAtJgk=3D?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: ffc0467a-f323-429b-4b68-08d9d6728844 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5657.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2022 08:56:05.5271 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OYHjO80VnaJn/hp8/KkAf6JHiCdBwOGZ7kibDVdo7eQgLM3IqzUchbWNwfMwcif4PsO5yUEP20j52fxWAL1Buw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4040 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKQWxs IHRoZSBmdW5jdGlvbnMgcmVsYXRlZCB0byBhIGRyaXZlciBzaG91bGQgdXNlIHRoZSBzYW1lIHBy ZWZpeC4KClNpZ25lZC1vZmYtYnk6IErDqXLDtG1lIFBvdWlsbGVyIDxqZXJvbWUucG91aWxsZXJA c2lsYWJzLmNvbT4KLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHguYyAgICB8ICAgMiAr LQogZHJpdmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5jICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvc3Rh Z2luZy93ZngvaGlmX3J4LmMgICAgIHwgMTAzICsrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9z dGFnaW5nL3dmeC9oaWZfdHguYyAgICAgfCAgNDggKysrKystLS0tCiBkcml2ZXJzL3N0YWdpbmcv d2Z4L2hpZl90eC5oICAgICB8ICA0OCArKysrLS0tLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvaGlm X3R4X21pYi5jIHwgMTc3ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv c3RhZ2luZy93ZngvaGlmX3R4X21pYi5oIHwgIDY3ICsrKysrKy0tLS0tLQogZHJpdmVycy9zdGFn aW5nL3dmeC9rZXkuYyAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5j ICAgICAgIHwgIDEyICstLQogZHJpdmVycy9zdGFnaW5nL3dmeC9zY2FuLmMgICAgICAgfCAgMTAg Ky0KIGRyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmMgICAgICAgIHwgIDkyICsrKysrKysrLS0tLS0t LS0KIDExIGZpbGVzIGNoYW5nZWQsIDI5MSBpbnNlcnRpb25zKCspLCAyNzQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3R4LmMgYi9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2RhdGFfdHguYwppbmRleCA5ZmY5Y2NhNWViNjYuLjU0ZmY5YmNhNzhkNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3R4LmMKKysrIGIvZHJpdmVycy9zdGFn aW5nL3dmeC9kYXRhX3R4LmMKQEAgLTE3Myw3ICsxNzMsNyBAQCBzdGF0aWMgaW50IHdmeF90eF9w b2xpY3lfdXBsb2FkKHN0cnVjdCB3ZnhfdmlmICp3dmlmKQogCQkJcG9saWNpZXNbaV0udXBsb2Fk ZWQgPSB0cnVlOwogCQkJbWVtY3B5KHRtcF9yYXRlcywgcG9saWNpZXNbaV0ucmF0ZXMsIHNpemVv Zih0bXBfcmF0ZXMpKTsKIAkJCXNwaW5fdW5sb2NrX2JoKCZ3dmlmLT50eF9wb2xpY3lfY2FjaGUu bG9jayk7Ci0JCQloaWZfc2V0X3R4X3JhdGVfcmV0cnlfcG9saWN5KHd2aWYsIGksIHRtcF9yYXRl cyk7CisJCQl3ZnhfaGlmX3NldF90eF9yYXRlX3JldHJ5X3BvbGljeSh3dmlmLCBpLCB0bXBfcmF0 ZXMpOwogCQl9IGVsc2UgewogCQkJc3Bpbl91bmxvY2tfYmgoJnd2aWYtPnR4X3BvbGljeV9jYWNo ZS5sb2NrKTsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5jIGIv ZHJpdmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5jCmluZGV4IDlmOTMyNjhhMzIwMi4uZTVmOTQwZjE5 YmJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RlYnVnLmMKKysrIGIvZHJpdmVy cy9zdGFnaW5nL3dmeC9kZWJ1Zy5jCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBpbnQgd2Z4X2Nv dW50ZXJzX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpCiAJc3RydWN0IGhpZl9t aWJfZXh0ZW5kZWRfY291bnRfdGFibGUgY291bnRlcnNbM107CiAKIAlmb3IgKGkgPSAwOyBpIDwg QVJSQVlfU0laRShjb3VudGVycyk7IGkrKykgewotCQlyZXQgPSBoaWZfZ2V0X2NvdW50ZXJzX3Rh YmxlKHdkZXYsIGksIGNvdW50ZXJzICsgaSk7CisJCXJldCA9IHdmeF9oaWZfZ2V0X2NvdW50ZXJz X3RhYmxlKHdkZXYsIGksIGNvdW50ZXJzICsgaSk7CiAJCWlmIChyZXQgPCAwKQogCQkJcmV0dXJu IHJldDsKIAkJaWYgKHJldCA+IDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hp Zl9yeC5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfcnguYwppbmRleCBlYTZkMTkyY2UyOGMu LjdhMmEzMmUzY2ViOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfcnguYwor KysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9yeC5jCkBAIC0xNiw4ICsxNiw4IEBACiAjaW5j bHVkZSAiZGF0YV9yeC5oIgogI2luY2x1ZGUgImhpZl9hcGlfY21kLmgiCiAKLXN0YXRpYyBpbnQg aGlmX2dlbmVyaWNfY29uZmlybShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKLQkJCSAgICAgICBjb25z dCBzdHJ1Y3QgaGlmX21zZyAqaGlmLCBjb25zdCB2b2lkICpidWYpCitzdGF0aWMgaW50IHdmeF9o aWZfZ2VuZXJpY19jb25maXJtKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAorCQkJCSAgIGNvbnN0IHN0 cnVjdCBoaWZfbXNnICpoaWYsIGNvbnN0IHZvaWQgKmJ1ZikKIHsKIAkvKiBBbGwgY29uZmlybSBt ZXNzYWdlcyBzdGFydCB3aXRoIHN0YXR1cyAqLwogCWludCBzdGF0dXMgPSBsZTMyX3RvX2NwdXAo KF9fbGUzMiAqKWJ1Zik7CkBAIC01MCw4ICs1MCw4IEBAIHN0YXRpYyBpbnQgaGlmX2dlbmVyaWNf Y29uZmlybShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKIAlyZXR1cm4gc3RhdHVzOwogfQogCi1zdGF0 aWMgaW50IGhpZl90eF9jb25maXJtKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJICBjb25zdCBz dHJ1Y3QgaGlmX21zZyAqaGlmLCBjb25zdCB2b2lkICpidWYpCitzdGF0aWMgaW50IHdmeF9oaWZf dHhfY29uZmlybShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBo aWZfbXNnICpoaWYsIGNvbnN0IHZvaWQgKmJ1ZikKIHsKIAljb25zdCBzdHJ1Y3QgaGlmX2NuZl90 eCAqYm9keSA9IGJ1ZjsKIApAQCAtNTksOCArNTksOCBAQCBzdGF0aWMgaW50IGhpZl90eF9jb25m aXJtKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGhp Zl9tdWx0aV90eF9jb25maXJtKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCWNvbnN0IHN0cnVj dCBoaWZfbXNnICpoaWYsIGNvbnN0IHZvaWQgKmJ1ZikKK3N0YXRpYyBpbnQgd2Z4X2hpZl9tdWx0 aV90eF9jb25maXJtKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAorCQkJCSAgICBjb25zdCBzdHJ1Y3Qg aGlmX21zZyAqaGlmLCBjb25zdCB2b2lkICpidWYpCiB7CiAJY29uc3Qgc3RydWN0IGhpZl9jbmZf bXVsdGlfdHJhbnNtaXQgKmJvZHkgPSBidWY7CiAJaW50IGk7CkBAIC03MSw4ICs3MSw5IEBAIHN0 YXRpYyBpbnQgaGlmX211bHRpX3R4X2NvbmZpcm0oc3RydWN0IHdmeF9kZXYgKndkZXYsCiAJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaGlmX3N0YXJ0dXBfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwKLQkJCQkgIGNvbnN0IHN0cnVjdCBoaWZfbXNnICpoaWYsIGNvbnN0IHZvaWQg KmJ1ZikKK3N0YXRpYyBpbnQgd2Z4X2hpZl9zdGFydHVwX2luZGljYXRpb24oc3RydWN0IHdmeF9k ZXYgKndkZXYsCisJCQkJICAgICAgY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwKKwkJCQkgICAg ICBjb25zdCB2b2lkICpidWYpCiB7CiAJY29uc3Qgc3RydWN0IGhpZl9pbmRfc3RhcnR1cCAqYm9k eSA9IGJ1ZjsKIApAQCAtODUsOCArODYsOCBAQCBzdGF0aWMgaW50IGhpZl9zdGFydHVwX2luZGlj YXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg aGlmX3dha2V1cF9pbmRpY2F0aW9uKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCSBjb25zdCBz dHJ1Y3QgaGlmX21zZyAqaGlmLCBjb25zdCB2b2lkICpidWYpCitzdGF0aWMgaW50IHdmeF9oaWZf d2FrZXVwX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsCisJCQkJICAgICBjb25zdCBz dHJ1Y3QgaGlmX21zZyAqaGlmLCBjb25zdCB2b2lkICpidWYpCiB7CiAJaWYgKCF3ZGV2LT5wZGF0 YS5ncGlvX3dha2V1cCB8fAogCSAgICBncGlvZF9nZXRfdmFsdWUod2Rldi0+cGRhdGEuZ3Bpb193 YWtldXApID09IDApIHsKQEAgLTk2LDkgKzk3LDkgQEAgc3RhdGljIGludCBoaWZfd2FrZXVwX2lu ZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgaGlmX3JlY2VpdmVfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKLQkJCQkgIGNv bnN0IHN0cnVjdCBoaWZfbXNnICpoaWYsCi0JCQkJICBjb25zdCB2b2lkICpidWYsIHN0cnVjdCBz a19idWZmICpza2IpCitzdGF0aWMgaW50IHdmeF9oaWZfcmVjZWl2ZV9pbmRpY2F0aW9uKHN0cnVj dCB3ZnhfZGV2ICp3ZGV2LAorCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBoaWZfbXNnICpoaWYsCisJ CQkJICAgICAgY29uc3Qgdm9pZCAqYnVmLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVj dCB3ZnhfdmlmICp3dmlmID0gd2Rldl90b193dmlmKHdkZXYsIGhpZi0+aW50ZXJmYWNlKTsKIAlj b25zdCBzdHJ1Y3QgaGlmX2luZF9yeCAqYm9keSA9IGJ1ZjsKQEAgLTExNCw4ICsxMTUsOCBAQCBz dGF0aWMgaW50IGhpZl9yZWNlaXZlX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaGlmX2V2ZW50X2luZGljYXRpb24oc3RydWN0IHdm eF9kZXYgKndkZXYsCi0JCQkJY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwgY29uc3Qgdm9pZCAq YnVmKQorc3RhdGljIGludCB3ZnhfaGlmX2V2ZW50X2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYg KndkZXYsCisJCQkJICAgIGNvbnN0IHN0cnVjdCBoaWZfbXNnICpoaWYsIGNvbnN0IHZvaWQgKmJ1 ZikKIHsKIAlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiA9IHdkZXZfdG9fd3ZpZih3ZGV2LCBoaWYtPmlu dGVyZmFjZSk7CiAJY29uc3Qgc3RydWN0IGhpZl9pbmRfZXZlbnQgKmJvZHkgPSBidWY7CkBAIC0x NDksOSArMTUwLDkgQEAgc3RhdGljIGludCBoaWZfZXZlbnRfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBoaWZfcG1fbW9kZV9jb21w bGV0ZV9pbmRpY2F0aW9uKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCQkgICBjb25zdCBzdHJ1 Y3QgaGlmX21zZyAqaGlmLAotCQkJCQkgICBjb25zdCB2b2lkICpidWYpCitzdGF0aWMgaW50IHdm eF9oaWZfcG1fbW9kZV9jb21wbGV0ZV9pbmRpY2F0aW9uKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAor CQkJCQkgICAgICAgY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwKKwkJCQkJICAgICAgIGNvbnN0 IHZvaWQgKmJ1ZikKIHsKIAlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiA9IHdkZXZfdG9fd3ZpZih3ZGV2 LCBoaWYtPmludGVyZmFjZSk7CiAKQEAgLTE2NCw5ICsxNjUsOSBAQCBzdGF0aWMgaW50IGhpZl9w bV9tb2RlX2NvbXBsZXRlX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgaGlmX3NjYW5fY29tcGxldGVfaW5kaWNhdGlvbihzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwKLQkJCQkJY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwKLQkJCQkJY29u c3Qgdm9pZCAqYnVmKQorc3RhdGljIGludCB3ZnhfaGlmX3NjYW5fY29tcGxldGVfaW5kaWNhdGlv bihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKKwkJCQkJICAgIGNvbnN0IHN0cnVjdCBoaWZfbXNnICpo aWYsCisJCQkJCSAgICBjb25zdCB2b2lkICpidWYpCiB7CiAJc3RydWN0IHdmeF92aWYgKnd2aWYg PSB3ZGV2X3RvX3d2aWYod2RldiwgaGlmLT5pbnRlcmZhY2UpOwogCWNvbnN0IHN0cnVjdCBoaWZf aW5kX3NjYW5fY21wbCAqYm9keSA9IGJ1ZjsKQEAgLTE4MSw5ICsxODIsOSBAQCBzdGF0aWMgaW50 IGhpZl9zY2FuX2NvbXBsZXRlX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsCiAJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaGlmX2pvaW5fY29tcGxldGVfaW5kaWNhdGlvbihzdHJ1 Y3Qgd2Z4X2RldiAqd2RldiwKLQkJCQkJY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwKLQkJCQkJ Y29uc3Qgdm9pZCAqYnVmKQorc3RhdGljIGludCB3ZnhfaGlmX2pvaW5fY29tcGxldGVfaW5kaWNh dGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKKwkJCQkJICAgIGNvbnN0IHN0cnVjdCBoaWZfbXNn ICpoaWYsCisJCQkJCSAgICBjb25zdCB2b2lkICpidWYpCiB7CiAJc3RydWN0IHdmeF92aWYgKnd2 aWYgPSB3ZGV2X3RvX3d2aWYod2RldiwgaGlmLT5pbnRlcmZhY2UpOwogCkBAIC0xOTYsOSArMTk3 LDkgQEAgc3RhdGljIGludCBoaWZfam9pbl9jb21wbGV0ZV9pbmRpY2F0aW9uKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGhpZl9zdXNwZW5kX3Jlc3Vt ZV9pbmRpY2F0aW9uKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCQkgY29uc3Qgc3RydWN0IGhp Zl9tc2cgKmhpZiwKLQkJCQkJIGNvbnN0IHZvaWQgKmJ1ZikKK3N0YXRpYyBpbnQgd2Z4X2hpZl9z dXNwZW5kX3Jlc3VtZV9pbmRpY2F0aW9uKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAorCQkJCQkgICAg IGNvbnN0IHN0cnVjdCBoaWZfbXNnICpoaWYsCisJCQkJCSAgICAgY29uc3Qgdm9pZCAqYnVmKQog ewogCWNvbnN0IHN0cnVjdCBoaWZfaW5kX3N1c3BlbmRfcmVzdW1lX3R4ICpib2R5ID0gYnVmOwog CXN0cnVjdCB3ZnhfdmlmICp3dmlmOwpAQCAtMjI1LDggKzIyNiw5IEBAIHN0YXRpYyBpbnQgaGlm X3N1c3BlbmRfcmVzdW1lX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgaGlmX2dlbmVyaWNfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4X2Rl diAqd2RldiwKLQkJCQkgIGNvbnN0IHN0cnVjdCBoaWZfbXNnICpoaWYsIGNvbnN0IHZvaWQgKmJ1 ZikKK3N0YXRpYyBpbnQgd2Z4X2hpZl9nZW5lcmljX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYg KndkZXYsCisJCQkJICAgICAgY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwKKwkJCQkgICAgICBj b25zdCB2b2lkICpidWYpCiB7CiAJY29uc3Qgc3RydWN0IGhpZl9pbmRfZ2VuZXJpYyAqYm9keSA9 IGJ1ZjsKIAlpbnQgdHlwZSA9IGxlMzJfdG9fY3B1KGJvZHktPnR5cGUpOwpAQCAtMzA1LDggKzMw Nyw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCQkic2VjdXJlIGxpbmsgcGFyYW1zIChub25j ZSBvciB0YWcpIG1pc21hdGNoIiB9LAogfTsKIAotc3RhdGljIGludCBoaWZfZXJyb3JfaW5kaWNh dGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKLQkJCQljb25zdCBzdHJ1Y3QgaGlmX21zZyAqaGlm LCBjb25zdCB2b2lkICpidWYpCitzdGF0aWMgaW50IHdmeF9oaWZfZXJyb3JfaW5kaWNhdGlvbihz dHJ1Y3Qgd2Z4X2RldiAqd2RldiwKKwkJCQkgICAgY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwg Y29uc3Qgdm9pZCAqYnVmKQogewogCWNvbnN0IHN0cnVjdCBoaWZfaW5kX2Vycm9yICpib2R5ID0g YnVmOwogCWludCB0eXBlID0gbGUzMl90b19jcHUoYm9keS0+dHlwZSk7CkBAIC0zMzIsOCArMzM0 LDkgQEAgc3RhdGljIGludCBoaWZfZXJyb3JfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2Rl diwKIAlyZXR1cm4gMDsKIH07CiAKLXN0YXRpYyBpbnQgaGlmX2V4Y2VwdGlvbl9pbmRpY2F0aW9u KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCSAgICBjb25zdCBzdHJ1Y3QgaGlmX21zZyAqaGlm LCBjb25zdCB2b2lkICpidWYpCitzdGF0aWMgaW50IHdmeF9oaWZfZXhjZXB0aW9uX2luZGljYXRp b24oc3RydWN0IHdmeF9kZXYgKndkZXYsCisJCQkJCWNvbnN0IHN0cnVjdCBoaWZfbXNnICpoaWYs CisJCQkJCWNvbnN0IHZvaWQgKmJ1ZikKIHsKIAljb25zdCBzdHJ1Y3QgaGlmX2luZF9leGNlcHRp b24gKmJvZHkgPSBidWY7CiAJaW50IHR5cGUgPSBsZTMyX3RvX2NwdShib2R5LT50eXBlKTsKQEAg LTM1NiwyMSArMzU5LDIxIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCQkgICAgICAgY29uc3Qg c3RydWN0IGhpZl9tc2cgKmhpZiwgY29uc3Qgdm9pZCAqYnVmKTsKIH0gaGlmX2hhbmRsZXJzW10g PSB7CiAJLyogQ29uZmlybWF0aW9ucyAqLwotCXsgSElGX0NORl9JRF9UWCwgICAgICAgICAgICAg ICAgICAgaGlmX3R4X2NvbmZpcm0gfSwKLQl7IEhJRl9DTkZfSURfTVVMVElfVFJBTlNNSVQsICAg ICAgIGhpZl9tdWx0aV90eF9jb25maXJtIH0sCisJeyBISUZfQ05GX0lEX1RYLCAgICAgICAgICAg ICAgICB3ZnhfaGlmX3R4X2NvbmZpcm0gfSwKKwl7IEhJRl9DTkZfSURfTVVMVElfVFJBTlNNSVQs ICAgIHdmeF9oaWZfbXVsdGlfdHhfY29uZmlybSB9LAogCS8qIEluZGljYXRpb25zICovCi0JeyBI SUZfSU5EX0lEX1NUQVJUVVAsICAgICAgICAgICAgICBoaWZfc3RhcnR1cF9pbmRpY2F0aW9uIH0s Ci0JeyBISUZfSU5EX0lEX1dBS0VVUCwgICAgICAgICAgICAgICBoaWZfd2FrZXVwX2luZGljYXRp b24gfSwKLQl7IEhJRl9JTkRfSURfSk9JTl9DT01QTEVURSwgICAgICAgIGhpZl9qb2luX2NvbXBs ZXRlX2luZGljYXRpb24gfSwKLQl7IEhJRl9JTkRfSURfU0VUX1BNX01PREVfQ01QTCwgICAgIGhp Zl9wbV9tb2RlX2NvbXBsZXRlX2luZGljYXRpb24gfSwKLQl7IEhJRl9JTkRfSURfU0NBTl9DTVBM LCAgICAgICAgICAgIGhpZl9zY2FuX2NvbXBsZXRlX2luZGljYXRpb24gfSwKLQl7IEhJRl9JTkRf SURfU1VTUEVORF9SRVNVTUVfVFgsICAgIGhpZl9zdXNwZW5kX3Jlc3VtZV9pbmRpY2F0aW9uIH0s Ci0JeyBISUZfSU5EX0lEX0VWRU5ULCAgICAgICAgICAgICAgICBoaWZfZXZlbnRfaW5kaWNhdGlv biB9LAotCXsgSElGX0lORF9JRF9HRU5FUklDLCAgICAgICAgICAgICAgaGlmX2dlbmVyaWNfaW5k aWNhdGlvbiB9LAotCXsgSElGX0lORF9JRF9FUlJPUiwgICAgICAgICAgICAgICAgaGlmX2Vycm9y X2luZGljYXRpb24gfSwKLQl7IEhJRl9JTkRfSURfRVhDRVBUSU9OLCAgICAgICAgICAgIGhpZl9l eGNlcHRpb25faW5kaWNhdGlvbiB9LAotCS8qIEZJWE1FOiBhbGxvY2F0ZSBza2JfcCBmcm9tIGhp Zl9yZWNlaXZlX2luZGljYXRpb24gYW5kIG1ha2UgaXQgZ2VuZXJpYyAqLwotCS8veyBISUZfSU5E X0lEX1JYLCAgICAgICAgICAgICAgICAgaGlmX3JlY2VpdmVfaW5kaWNhdGlvbiB9LAorCXsgSElG X0lORF9JRF9TVEFSVFVQLCAgICAgICAgICAgd2Z4X2hpZl9zdGFydHVwX2luZGljYXRpb24gfSwK Kwl7IEhJRl9JTkRfSURfV0FLRVVQLCAgICAgICAgICAgIHdmeF9oaWZfd2FrZXVwX2luZGljYXRp b24gfSwKKwl7IEhJRl9JTkRfSURfSk9JTl9DT01QTEVURSwgICAgIHdmeF9oaWZfam9pbl9jb21w bGV0ZV9pbmRpY2F0aW9uIH0sCisJeyBISUZfSU5EX0lEX1NFVF9QTV9NT0RFX0NNUEwsICB3Znhf aGlmX3BtX21vZGVfY29tcGxldGVfaW5kaWNhdGlvbiB9LAorCXsgSElGX0lORF9JRF9TQ0FOX0NN UEwsICAgICAgICAgd2Z4X2hpZl9zY2FuX2NvbXBsZXRlX2luZGljYXRpb24gfSwKKwl7IEhJRl9J TkRfSURfU1VTUEVORF9SRVNVTUVfVFgsIHdmeF9oaWZfc3VzcGVuZF9yZXN1bWVfaW5kaWNhdGlv biB9LAorCXsgSElGX0lORF9JRF9FVkVOVCwgICAgICAgICAgICAgd2Z4X2hpZl9ldmVudF9pbmRp Y2F0aW9uIH0sCisJeyBISUZfSU5EX0lEX0dFTkVSSUMsICAgICAgICAgICB3ZnhfaGlmX2dlbmVy aWNfaW5kaWNhdGlvbiB9LAorCXsgSElGX0lORF9JRF9FUlJPUiwgICAgICAgICAgICAgd2Z4X2hp Zl9lcnJvcl9pbmRpY2F0aW9uIH0sCisJeyBISUZfSU5EX0lEX0VYQ0VQVElPTiwgICAgICAgICB3 ZnhfaGlmX2V4Y2VwdGlvbl9pbmRpY2F0aW9uIH0sCisJLyogRklYTUU6IGFsbG9jYXRlIHNrYl9w IGZyb20gd2Z4X2hpZl9yZWNlaXZlX2luZGljYXRpb24gYW5kIG1ha2UgaXQgZ2VuZXJpYyAqLwor CS8veyBISUZfSU5EX0lEX1JYLCAgICAgICAgICAgICAgd2Z4X2hpZl9yZWNlaXZlX2luZGljYXRp b24gfSwKIH07CiAKIHZvaWQgd2Z4X2hhbmRsZV9yeChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwgc3Ry dWN0IHNrX2J1ZmYgKnNrYikKQEAgLTM4MCw4ICszODMsOCBAQCB2b2lkIHdmeF9oYW5kbGVfcngo c3RydWN0IHdmeF9kZXYgKndkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJaW50IGhpZl9pZCA9 IGhpZi0+aWQ7CiAKIAlpZiAoaGlmX2lkID09IEhJRl9JTkRfSURfUlgpIHsKLQkJLyogaGlmX3Jl Y2VpdmVfaW5kaWNhdGlvbiB0YWtlIGNhcmUgb2Ygc2tiIGxpZmV0aW1lICovCi0JCWhpZl9yZWNl aXZlX2luZGljYXRpb24od2RldiwgaGlmLCBoaWYtPmJvZHksIHNrYik7CisJCS8qIHdmeF9oaWZf cmVjZWl2ZV9pbmRpY2F0aW9uIHRha2UgY2FyZSBvZiBza2IgbGlmZXRpbWUgKi8KKwkJd2Z4X2hp Zl9yZWNlaXZlX2luZGljYXRpb24od2RldiwgaGlmLCBoaWYtPmJvZHksIHNrYik7CiAJCXJldHVy bjsKIAl9CiAJLyogTm90ZTogbXV0ZXhfaXNfbG9jayBjYXVzZSBhbiBpbXBsaWNpdCBtZW1vcnkg YmFycmllciB0aGF0IHByb3RlY3QKQEAgLTM5MCw3ICszOTMsNyBAQCB2b2lkIHdmeF9oYW5kbGVf cngoc3RydWN0IHdmeF9kZXYgKndkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJaWYgKG11dGV4 X2lzX2xvY2tlZCgmd2Rldi0+aGlmX2NtZC5sb2NrKSAmJgogCSAgICB3ZGV2LT5oaWZfY21kLmJ1 Zl9zZW5kICYmCiAJICAgIHdkZXYtPmhpZl9jbWQuYnVmX3NlbmQtPmlkID09IGhpZl9pZCkgewot CQloaWZfZ2VuZXJpY19jb25maXJtKHdkZXYsIGhpZiwgaGlmLT5ib2R5KTsKKwkJd2Z4X2hpZl9n ZW5lcmljX2NvbmZpcm0od2RldiwgaGlmLCBoaWYtPmJvZHkpOwogCQlnb3RvIGZyZWU7CiAJfQog CWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhpZl9oYW5kbGVycyk7IGkrKykgewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYyBiL2RyaXZlcnMvc3RhZ2luZy93Zngv aGlmX3R4LmMKaW5kZXggMmZkOGJiZDM2ZTI1Li43YzlkM2Q4NmMyMmUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4LmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZf dHguYwpAQCAtMTIyLDcgKzEyMiw3IEBAIGludCB3ZnhfY21kX3NlbmQoc3RydWN0IHdmeF9kZXYg KndkZXYsIHN0cnVjdCBoaWZfbXNnICpyZXF1ZXN0LAogLyogVGhpcyBmdW5jdGlvbiBpcyBzcGVj aWFsLiBBZnRlciBISUZfUkVRX0lEX1NIVVRfRE9XTiwgY2hpcCB3b24ndCByZXBseSB0byBhbnkK ICAqIHJlcXVlc3QgYW55bW9yZS4gT2J2aW91c2x5LCBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbiBk dXJpbmcgZGV2aWNlIHVucmVnaXN0ZXIuCiAgKi8KLWludCBoaWZfc2h1dGRvd24oc3RydWN0IHdm eF9kZXYgKndkZXYpCitpbnQgd2Z4X2hpZl9zaHV0ZG93bihzdHJ1Y3Qgd2Z4X2RldiAqd2RldikK IHsKIAlpbnQgcmV0OwogCXN0cnVjdCBoaWZfbXNnICpoaWY7CkBAIC0xNDAsNyArMTQwLDcgQEAg aW50IGhpZl9zaHV0ZG93bihzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIAlyZXR1cm4gcmV0OwogfQog Ci1pbnQgaGlmX2NvbmZpZ3VyYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHU4ICpj b25mLCBzaXplX3QgbGVuKQoraW50IHdmeF9oaWZfY29uZmlndXJhdGlvbihzdHJ1Y3Qgd2Z4X2Rl diAqd2RldiwgY29uc3QgdTggKmNvbmYsIHNpemVfdCBsZW4pCiB7CiAJaW50IHJldDsKIAlzaXpl X3QgYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgaGlmX3JlcV9jb25maWd1cmF0aW9uKSArIGxlbjsK QEAgLTE1Nyw3ICsxNTcsNyBAQCBpbnQgaGlmX2NvbmZpZ3VyYXRpb24oc3RydWN0IHdmeF9kZXYg KndkZXYsIGNvbnN0IHU4ICpjb25mLCBzaXplX3QgbGVuKQogCXJldHVybiByZXQ7CiB9CiAKLWlu dCBoaWZfcmVzZXQoc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wgcmVzZXRfc3RhdCkKK2ludCB3 ZnhfaGlmX3Jlc2V0KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIHJlc2V0X3N0YXQpCiB7CiAJ aW50IHJldDsKIAlzdHJ1Y3QgaGlmX21zZyAqaGlmOwpAQCAtMTcyLDggKzE3Miw4IEBAIGludCBo aWZfcmVzZXQoc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wgcmVzZXRfc3RhdCkKIAlyZXR1cm4g cmV0OwogfQogCi1pbnQgaGlmX3JlYWRfbWliKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgdmlm X2lkLCB1MTYgbWliX2lkLAotCQkgdm9pZCAqdmFsLCBzaXplX3QgdmFsX2xlbikKK2ludCB3Znhf aGlmX3JlYWRfbWliKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgdmlmX2lkLCB1MTYgbWliX2lk LAorCQkgICAgIHZvaWQgKnZhbCwgc2l6ZV90IHZhbF9sZW4pCiB7CiAJaW50IHJldDsKIAlzdHJ1 Y3QgaGlmX21zZyAqaGlmOwpAQCAtMjA4LDggKzIwOCw4IEBAIGludCBoaWZfcmVhZF9taWIoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIGludCB2aWZfaWQsIHUxNiBtaWJfaWQsCiAJcmV0dXJuIHJldDsK IH0KIAotaW50IGhpZl93cml0ZV9taWIoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCB2aWZfaWQs IHUxNiBtaWJfaWQsCi0JCSAgdm9pZCAqdmFsLCBzaXplX3QgdmFsX2xlbikKK2ludCB3ZnhfaGlm X3dyaXRlX21pYihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHZpZl9pZCwgdTE2IG1pYl9pZCwK KwkJICAgICAgdm9pZCAqdmFsLCBzaXplX3QgdmFsX2xlbikKIHsKIAlpbnQgcmV0OwogCXN0cnVj dCBoaWZfbXNnICpoaWY7CkBAIC0yMjcsOCArMjI3LDggQEAgaW50IGhpZl93cml0ZV9taWIoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIGludCB2aWZfaWQsIHUxNiBtaWJfaWQsCiAJcmV0dXJuIHJldDsK IH0KIAotaW50IGhpZl9zY2FuKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3QgY2ZnODAyMTFf c2Nhbl9yZXF1ZXN0ICpyZXEsCi0JICAgICBpbnQgY2hhbl9zdGFydF9pZHgsIGludCBjaGFuX251 bSkKK2ludCB3ZnhfaGlmX3NjYW4oc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBjZmc4MDIx MV9zY2FuX3JlcXVlc3QgKnJlcSwKKwkJIGludCBjaGFuX3N0YXJ0X2lkeCwgaW50IGNoYW5fbnVt KQogewogCWludCByZXQsIGk7CiAJc3RydWN0IGhpZl9tc2cgKmhpZjsKQEAgLTI3Niw3ICsyNzYs NyBAQCBpbnQgaGlmX3NjYW4oc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBjZmc4MDIxMV9z Y2FuX3JlcXVlc3QgKnJlcSwKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgaGlmX3N0b3Bfc2Nhbihz dHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKK2ludCB3ZnhfaGlmX3N0b3Bfc2NhbihzdHJ1Y3Qgd2Z4X3Zp ZiAqd3ZpZikKIHsKIAlpbnQgcmV0OwogCXN0cnVjdCBoaWZfbXNnICpoaWY7CkBAIC0yOTEsOCAr MjkxLDggQEAgaW50IGhpZl9zdG9wX3NjYW4oc3RydWN0IHdmeF92aWYgKnd2aWYpCiAJcmV0dXJu IHJldDsKIH0KIAotaW50IGhpZl9qb2luKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBjb25zdCBzdHJ1 Y3QgaWVlZTgwMjExX2Jzc19jb25mICpjb25mLAotCSAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFu bmVsICpjaGFubmVsLCBjb25zdCB1OCAqc3NpZCwgaW50IHNzaWRsZW4pCitpbnQgd2Z4X2hpZl9q b2luKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25m ICpjb25mLAorCQkgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFubmVsLCBjb25zdCB1OCAq c3NpZCwgaW50IHNzaWRsZW4pCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3QgaGlmX21zZyAqaGlmOwpA QCAtMzIyLDcgKzMyMiw3IEBAIGludCBoaWZfam9pbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgY29u c3Qgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqY29uZiwKIAlyZXR1cm4gcmV0OwogfQogCi1p bnQgaGlmX3NldF9ic3NfcGFyYW1zKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgYWlkLCBpbnQg YmVhY29uX2xvc3RfY291bnQpCitpbnQgd2Z4X2hpZl9zZXRfYnNzX3BhcmFtcyhzdHJ1Y3Qgd2Z4 X3ZpZiAqd3ZpZiwgaW50IGFpZCwgaW50IGJlYWNvbl9sb3N0X2NvdW50KQogewogCWludCByZXQ7 CiAJc3RydWN0IGhpZl9tc2cgKmhpZjsKQEAgLTM0MCw3ICszNDAsNyBAQCBpbnQgaGlmX3NldF9i c3NfcGFyYW1zKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgYWlkLCBpbnQgYmVhY29uX2xvc3Rf Y291bnQpCiAJcmV0dXJuIHJldDsKIH0KIAotaW50IGhpZl9hZGRfa2V5KHN0cnVjdCB3ZnhfZGV2 ICp3ZGV2LCBjb25zdCBzdHJ1Y3QgaGlmX3JlcV9hZGRfa2V5ICphcmcpCitpbnQgd2Z4X2hpZl9h ZGRfa2V5KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBjb25zdCBzdHJ1Y3QgaGlmX3JlcV9hZGRfa2V5 ICphcmcpCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3QgaGlmX21zZyAqaGlmOwpAQCAtMzY0LDcgKzM2 NCw3IEBAIGludCBoaWZfYWRkX2tleShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3Qgc3RydWN0 IGhpZl9yZXFfYWRkX2tleSAqYXJnKQogCXJldHVybiByZXQ7CiB9CiAKLWludCBoaWZfcmVtb3Zl X2tleShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IGlkeCkKK2ludCB3ZnhfaGlmX3JlbW92ZV9r ZXkoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCBpZHgpCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3Qg aGlmX21zZyAqaGlmOwpAQCAtMzc5LDggKzM3OSw4IEBAIGludCBoaWZfcmVtb3ZlX2tleShzdHJ1 Y3Qgd2Z4X2RldiAqd2RldiwgaW50IGlkeCkKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgaGlmX3Nl dF9lZGNhX3F1ZXVlX3BhcmFtcyhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgdTE2IHF1ZXVlLAotCQkJ ICAgICAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV90eF9xdWV1ZV9wYXJhbXMgKmFyZykKK2ludCB3 ZnhfaGlmX3NldF9lZGNhX3F1ZXVlX3BhcmFtcyhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgdTE2IHF1 ZXVlLAorCQkJCSAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV90eF9xdWV1ZV9wYXJhbXMgKmFyZykK IHsKIAlpbnQgcmV0OwogCXN0cnVjdCBoaWZfbXNnICpoaWY7CkBAIC00MTAsNyArNDEwLDcgQEAg aW50IGhpZl9zZXRfZWRjYV9xdWV1ZV9wYXJhbXMoc3RydWN0IHdmeF92aWYgKnd2aWYsIHUxNiBx dWV1ZSwKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgaGlmX3NldF9wbShzdHJ1Y3Qgd2Z4X3ZpZiAq d3ZpZiwgYm9vbCBwcywgaW50IGR5bmFtaWNfcHNfdGltZW91dCkKK2ludCB3ZnhfaGlmX3NldF9w bShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgYm9vbCBwcywgaW50IGR5bmFtaWNfcHNfdGltZW91dCkK IHsKIAlpbnQgcmV0OwogCXN0cnVjdCBoaWZfbXNnICpoaWY7CkBAIC00MzQsOCArNDM0LDggQEAg aW50IGhpZl9zZXRfcG0oc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wgcHMsIGludCBkeW5hbWlj X3BzX3RpbWVvdXQpCiAJcmV0dXJuIHJldDsKIH0KIAotaW50IGhpZl9zdGFydChzdHJ1Y3Qgd2Z4 X3ZpZiAqd3ZpZiwgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqY29uZiwKLQkgICAg ICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW5uZWwpCitpbnQgd2Z4X2hpZl9z dGFydChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9ic3NfY29u ZiAqY29uZiwKKwkJICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW5uZWwpCiB7 CiAJaW50IHJldDsKIAlzdHJ1Y3QgaGlmX21zZyAqaGlmOwpAQCAtNDU4LDcgKzQ1OCw3IEBAIGlu dCBoaWZfc3RhcnQoc3RydWN0IHdmeF92aWYgKnd2aWYsIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFf YnNzX2NvbmYgKmNvbmYsCiAJcmV0dXJuIHJldDsKIH0KIAotaW50IGhpZl9iZWFjb25fdHJhbnNt aXQoc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wgZW5hYmxlKQoraW50IHdmeF9oaWZfYmVhY29u X3RyYW5zbWl0KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIGVuYWJsZSkKIHsKIAlpbnQgcmV0 OwogCXN0cnVjdCBoaWZfbXNnICpoaWY7CkBAIC00NzUsNyArNDc1LDggQEAgaW50IGhpZl9iZWFj b25fdHJhbnNtaXQoc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wgZW5hYmxlKQogCXJldHVybiBy ZXQ7CiB9CiAKLWludCBoaWZfbWFwX2xpbmsoc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wgdW5t YXAsIHU4ICptYWNfYWRkciwgaW50IHN0YV9pZCwgYm9vbCBtZnApCitpbnQgd2Z4X2hpZl9tYXBf bGluayhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgYm9vbCB1bm1hcCwgdTggKm1hY19hZGRyLCBpbnQg c3RhX2lkLAorCQkgICAgIGJvb2wgbWZwKQogewogCWludCByZXQ7CiAJc3RydWN0IGhpZl9tc2cg KmhpZjsKQEAgLTQ5NCw3ICs0OTUsOCBAQCBpbnQgaGlmX21hcF9saW5rKHN0cnVjdCB3Znhfdmlm ICp3dmlmLCBib29sIHVubWFwLCB1OCAqbWFjX2FkZHIsIGludCBzdGFfaWQsIGJvbwogCXJldHVy biByZXQ7CiB9CiAKLWludCBoaWZfdXBkYXRlX2llX2JlYWNvbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3Zp ZiwgY29uc3QgdTggKmllcywgc2l6ZV90IGllc19sZW4pCitpbnQgd2Z4X2hpZl91cGRhdGVfaWVf YmVhY29uKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAorCQkJICAgICBjb25zdCB1OCAqaWVzLCBzaXpl X3QgaWVzX2xlbikKIHsKIAlpbnQgcmV0OwogCXN0cnVjdCBoaWZfbXNnICpoaWY7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eC5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9o aWZfdHguaAppbmRleCBmNzg5NTg0NTY4NmYuLmIyOGEyZWU1MzUwYSAxMDA2NDQKLS0tIGEvZHJp dmVycy9zdGFnaW5nL3dmeC9oaWZfdHguaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90 eC5oCkBAIC0zNiwyOSArMzYsMjkgQEAgdm9pZCB3ZnhfaW5pdF9oaWZfY21kKHN0cnVjdCB3Znhf aGlmX2NtZCAqd2Z4X2hpZl9jbWQpOwogaW50IHdmeF9jbWRfc2VuZChzdHJ1Y3Qgd2Z4X2RldiAq d2Rldiwgc3RydWN0IGhpZl9tc2cgKnJlcXVlc3QsCiAJCSB2b2lkICpyZXBseSwgc2l6ZV90IHJl cGx5X2xlbiwgYm9vbCBhc3luYyk7CiAKLWludCBoaWZfc2h1dGRvd24oc3RydWN0IHdmeF9kZXYg KndkZXYpOwotaW50IGhpZl9jb25maWd1cmF0aW9uKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBjb25z dCB1OCAqY29uZiwgc2l6ZV90IGxlbik7Ci1pbnQgaGlmX3Jlc2V0KHN0cnVjdCB3ZnhfdmlmICp3 dmlmLCBib29sIHJlc2V0X3N0YXQpOwotaW50IGhpZl9yZWFkX21pYihzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwgaW50IHZpZl9pZCwgdTE2IG1pYl9pZCwKLQkJIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ1Zl9z aXplKTsKLWludCBoaWZfd3JpdGVfbWliKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgdmlmX2lk LCB1MTYgbWliX2lkLAotCQkgIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ1Zl9zaXplKTsKLWludCBoaWZf c2NhbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgc3RydWN0IGNmZzgwMjExX3NjYW5fcmVxdWVzdCAq cmVxODAyMTEsCi0JICAgICBpbnQgY2hhbl9zdGFydCwgaW50IGNoYW5fbnVtKTsKLWludCBoaWZf c3RvcF9zY2FuKHN0cnVjdCB3ZnhfdmlmICp3dmlmKTsKLWludCBoaWZfam9pbihzdHJ1Y3Qgd2Z4 X3ZpZiAqd3ZpZiwgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqY29uZiwKLQkgICAg IHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbm5lbCwgY29uc3QgdTggKnNzaWQsIGludCBz c2lkbGVuKTsKLWludCBoaWZfc2V0X3BtKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIHBzLCBp bnQgZHluYW1pY19wc190aW1lb3V0KTsKLWludCBoaWZfc2V0X2Jzc19wYXJhbXMoc3RydWN0IHdm eF92aWYgKnd2aWYsIGludCBhaWQsIGludCBiZWFjb25fbG9zdF9jb3VudCk7Ci1pbnQgaGlmX2Fk ZF9rZXkoc3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHN0cnVjdCBoaWZfcmVxX2FkZF9rZXkg KmFyZyk7Ci1pbnQgaGlmX3JlbW92ZV9rZXkoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCBpZHgp OwotaW50IGhpZl9zZXRfZWRjYV9xdWV1ZV9wYXJhbXMoc3RydWN0IHdmeF92aWYgKnd2aWYsIHUx NiBxdWV1ZSwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdHhfcXVldWVfcGFyYW1z ICphcmcpOwotaW50IGhpZl9zdGFydChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgY29uc3Qgc3RydWN0 IGllZWU4MDIxMV9ic3NfY29uZiAqY29uZiwKLQkgICAgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjEx X2NoYW5uZWwgKmNoYW5uZWwpOwotaW50IGhpZl9iZWFjb25fdHJhbnNtaXQoc3RydWN0IHdmeF92 aWYgKnd2aWYsIGJvb2wgZW5hYmxlKTsKLWludCBoaWZfbWFwX2xpbmsoc3RydWN0IHdmeF92aWYg Knd2aWYsCi0JCSBib29sIHVubWFwLCB1OCAqbWFjX2FkZHIsIGludCBzdGFfaWQsIGJvb2wgbWZw KTsKLWludCBoaWZfdXBkYXRlX2llX2JlYWNvbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgY29uc3Qg dTggKmllcywgc2l6ZV90IGllc19sZW4pOworaW50IHdmeF9oaWZfcmVhZF9taWIoc3RydWN0IHdm eF9kZXYgKndkZXYsIGludCB2aWZfaWQsIHUxNiBtaWJfaWQsCisJCSAgICAgdm9pZCAqYnVmLCBz aXplX3QgYnVmX3NpemUpOworaW50IHdmeF9oaWZfd3JpdGVfbWliKHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2LCBpbnQgdmlmX2lkLCB1MTYgbWliX2lkLAorCQkgICAgICB2b2lkICpidWYsIHNpemVfdCBi dWZfc2l6ZSk7CitpbnQgd2Z4X2hpZl9zdGFydChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgY29uc3Qg c3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqY29uZiwKKwkJICBjb25zdCBzdHJ1Y3QgaWVlZTgw MjExX2NoYW5uZWwgKmNoYW5uZWwpOworaW50IHdmeF9oaWZfcmVzZXQoc3RydWN0IHdmeF92aWYg Knd2aWYsIGJvb2wgcmVzZXRfc3RhdCk7CitpbnQgd2Z4X2hpZl9qb2luKHN0cnVjdCB3Znhfdmlm ICp3dmlmLCBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpjb25mLAorCQkgc3RydWN0 IGllZWU4MDIxMV9jaGFubmVsICpjaGFubmVsLCBjb25zdCB1OCAqc3NpZCwgaW50IHNzaWRsZW4p OworaW50IHdmeF9oaWZfbWFwX2xpbmsoc3RydWN0IHdmeF92aWYgKnd2aWYsCisJCSAgICAgYm9v bCB1bm1hcCwgdTggKm1hY19hZGRyLCBpbnQgc3RhX2lkLCBib29sIG1mcCk7CitpbnQgd2Z4X2hp Zl9hZGRfa2V5KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBjb25zdCBzdHJ1Y3QgaGlmX3JlcV9hZGRf a2V5ICphcmcpOworaW50IHdmeF9oaWZfcmVtb3ZlX2tleShzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwg aW50IGlkeCk7CitpbnQgd2Z4X2hpZl9zZXRfcG0oc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wg cHMsIGludCBkeW5hbWljX3BzX3RpbWVvdXQpOworaW50IHdmeF9oaWZfc2V0X2Jzc19wYXJhbXMo c3RydWN0IHdmeF92aWYgKnd2aWYsIGludCBhaWQsIGludCBiZWFjb25fbG9zdF9jb3VudCk7Citp bnQgd2Z4X2hpZl9zZXRfZWRjYV9xdWV1ZV9wYXJhbXMoc3RydWN0IHdmeF92aWYgKnd2aWYsIHUx NiBxdWV1ZSwKKwkJCQkgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdHhfcXVldWVfcGFyYW1zICph cmcpOworaW50IHdmeF9oaWZfYmVhY29uX3RyYW5zbWl0KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBi b29sIGVuYWJsZSk7CitpbnQgd2Z4X2hpZl91cGRhdGVfaWVfYmVhY29uKHN0cnVjdCB3Znhfdmlm ICp3dmlmLCBjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbik7CitpbnQgd2Z4X2hpZl9zY2Fu KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3QgY2ZnODAyMTFfc2Nhbl9yZXF1ZXN0ICpyZXE4 MDIxMSwKKwkJIGludCBjaGFuX3N0YXJ0LCBpbnQgY2hhbl9udW0pOworaW50IHdmeF9oaWZfc3Rv cF9zY2FuKHN0cnVjdCB3ZnhfdmlmICp3dmlmKTsKK2ludCB3ZnhfaGlmX2NvbmZpZ3VyYXRpb24o c3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHU4ICpjb25mLCBzaXplX3QgbGVuKTsKK2ludCB3 ZnhfaGlmX3NodXRkb3duKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KTsKIAogI2VuZGlmCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eF9taWIuYyBiL2RyaXZlcnMvc3RhZ2luZy93 ZngvaGlmX3R4X21pYi5jCmluZGV4IDk3ZTk2MWU2YmNmNi4uYjc5ZmZkZjZmY2QyIDEwMDY0NAot LS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eF9taWIuYworKysgYi9kcml2ZXJzL3N0YWdp bmcvd2Z4L2hpZl90eF9taWIuYwpAQCAtMTQsMjAgKzE0LDIwIEBACiAjaW5jbHVkZSAiaGlmX3R4 X21pYi5oIgogI2luY2x1ZGUgImhpZl9hcGlfbWliLmgiCiAKLWludCBoaWZfc2V0X291dHB1dF9w b3dlcihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IHZhbCkKK2ludCB3ZnhfaGlmX3NldF9vdXRw dXRfcG93ZXIoc3RydWN0IHdmeF92aWYgKnd2aWYsIGludCB2YWwpCiB7CiAJc3RydWN0IGhpZl9t aWJfY3VycmVudF90eF9wb3dlcl9sZXZlbCBhcmcgPSB7CiAJCS5wb3dlcl9sZXZlbCA9IGNwdV90 b19sZTMyKHZhbCAqIDEwKSwKIAl9OwogCi0JcmV0dXJuIGhpZl93cml0ZV9taWIod3ZpZi0+d2Rl diwgd3ZpZi0+aWQsCi0JCQkgICAgIEhJRl9NSUJfSURfQ1VSUkVOVF9UWF9QT1dFUl9MRVZFTCwK LQkJCSAgICAgJmFyZywgc2l6ZW9mKGFyZykpOworCXJldHVybiB3ZnhfaGlmX3dyaXRlX21pYih3 dmlmLT53ZGV2LCB3dmlmLT5pZCwKKwkJCQkgSElGX01JQl9JRF9DVVJSRU5UX1RYX1BPV0VSX0xF VkVMLAorCQkJCSAmYXJnLCBzaXplb2YoYXJnKSk7CiB9CiAKLWludCBoaWZfc2V0X2JlYWNvbl93 YWtldXBfcGVyaW9kKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAotCQkJCSB1bnNpZ25lZCBpbnQgZHRp bV9pbnRlcnZhbCwKLQkJCQkgdW5zaWduZWQgaW50IGxpc3Rlbl9pbnRlcnZhbCkKK2ludCB3Znhf aGlmX3NldF9iZWFjb25fd2FrZXVwX3BlcmlvZChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKKwkJCQkg ICAgIHVuc2lnbmVkIGludCBkdGltX2ludGVydmFsLAorCQkJCSAgICAgdW5zaWduZWQgaW50IGxp c3Rlbl9pbnRlcnZhbCkKIHsKIAlzdHJ1Y3QgaGlmX21pYl9iZWFjb25fd2FrZV91cF9wZXJpb2Qg YXJnID0gewogCQkud2FrZXVwX3BlcmlvZF9taW4gPSBkdGltX2ludGVydmFsLApAQCAtMzcsMTMg KzM3LDEzIEBAIGludCBoaWZfc2V0X2JlYWNvbl93YWtldXBfcGVyaW9kKHN0cnVjdCB3Znhfdmlm ICp3dmlmLAogCiAJaWYgKGR0aW1faW50ZXJ2YWwgPiAweEZGIHx8IGxpc3Rlbl9pbnRlcnZhbCA+ IDB4RkZGRikKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JcmV0dXJuIGhpZl93cml0ZV9taWIod3ZpZi0+ d2Rldiwgd3ZpZi0+aWQsCi0JCQkgICAgIEhJRl9NSUJfSURfQkVBQ09OX1dBS0VVUF9QRVJJT0Qs Ci0JCQkgICAgICZhcmcsIHNpemVvZihhcmcpKTsKKwlyZXR1cm4gd2Z4X2hpZl93cml0ZV9taWIo d3ZpZi0+d2Rldiwgd3ZpZi0+aWQsCisJCQkJIEhJRl9NSUJfSURfQkVBQ09OX1dBS0VVUF9QRVJJ T0QsCisJCQkJICZhcmcsIHNpemVvZihhcmcpKTsKIH0KIAotaW50IGhpZl9zZXRfcmNwaV9yc3Np X3RocmVzaG9sZChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKLQkJCQlpbnQgcnNzaV90aG9sZCwgaW50 IHJzc2lfaHlzdCkKK2ludCB3ZnhfaGlmX3NldF9yY3BpX3Jzc2lfdGhyZXNob2xkKHN0cnVjdCB3 ZnhfdmlmICp3dmlmLAorCQkJCSAgICBpbnQgcnNzaV90aG9sZCwgaW50IHJzc2lfaHlzdCkKIHsK IAlzdHJ1Y3QgaGlmX21pYl9yY3BpX3Jzc2lfdGhyZXNob2xkIGFyZyA9IHsKIAkJLnJvbGxpbmdf YXZlcmFnZV9jb3VudCA9IDgsCkBAIC02MCwzNyArNjAsMzkgQEAgaW50IGhpZl9zZXRfcmNwaV9y c3NpX3RocmVzaG9sZChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKIAkJYXJnLmxvd2VyX3RocmVzaG9s ZCA9IChhcmcubG93ZXJfdGhyZXNob2xkICsgMTEwKSAqIDI7CiAJfQogCi0JcmV0dXJuIGhpZl93 cml0ZV9taWIod3ZpZi0+d2Rldiwgd3ZpZi0+aWQsCi0JCQkgICAgIEhJRl9NSUJfSURfUkNQSV9S U1NJX1RIUkVTSE9MRCwgJmFyZywgc2l6ZW9mKGFyZykpOworCXJldHVybiB3ZnhfaGlmX3dyaXRl X21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwKKwkJCQkgSElGX01JQl9JRF9SQ1BJX1JTU0lfVEhS RVNIT0xELAorCQkJCSAmYXJnLCBzaXplb2YoYXJnKSk7CiB9CiAKLWludCBoaWZfZ2V0X2NvdW50 ZXJzX3RhYmxlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgdmlmX2lkLAotCQkJICAgc3RydWN0 IGhpZl9taWJfZXh0ZW5kZWRfY291bnRfdGFibGUgKmFyZykKK2ludCB3ZnhfaGlmX2dldF9jb3Vu dGVyc190YWJsZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHZpZl9pZCwKKwkJCSAgICAgICBz dHJ1Y3QgaGlmX21pYl9leHRlbmRlZF9jb3VudF90YWJsZSAqYXJnKQogewogCWlmICh3ZnhfYXBp X29sZGVyX3RoYW4od2RldiwgMSwgMykpIHsKIAkJLyogZXh0ZW5kZWRfY291bnRfdGFibGUgaXMg d2lkZXIgdGhhbiBjb3VudF90YWJsZSAqLwogCQltZW1zZXQoYXJnLCAweEZGLCBzaXplb2YoKmFy ZykpOwotCQlyZXR1cm4gaGlmX3JlYWRfbWliKHdkZXYsIHZpZl9pZCwgSElGX01JQl9JRF9DT1VO VEVSU19UQUJMRSwKKwkJcmV0dXJuIHdmeF9oaWZfcmVhZF9taWIod2RldiwgdmlmX2lkLCBISUZf TUlCX0lEX0NPVU5URVJTX1RBQkxFLAogCQkJCSAgICBhcmcsIHNpemVvZihzdHJ1Y3QgaGlmX21p Yl9jb3VudF90YWJsZSkpOwogCX0gZWxzZSB7Ci0JCXJldHVybiBoaWZfcmVhZF9taWIod2Rldiwg dmlmX2lkLAorCQlyZXR1cm4gd2Z4X2hpZl9yZWFkX21pYih3ZGV2LCB2aWZfaWQsCiAJCQkJICAg IEhJRl9NSUJfSURfRVhURU5ERURfQ09VTlRFUlNfVEFCTEUsIGFyZywKIAkJCQkgICAgc2l6ZW9m KHN0cnVjdCBoaWZfbWliX2V4dGVuZGVkX2NvdW50X3RhYmxlKSk7CiAJfQogfQogCi1pbnQgaGlm X3NldF9tYWNhZGRyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCB1OCAqbWFjKQoraW50IHdmeF9oaWZf c2V0X21hY2FkZHIoc3RydWN0IHdmeF92aWYgKnd2aWYsIHU4ICptYWMpCiB7CiAJc3RydWN0IGhp Zl9taWJfbWFjX2FkZHJlc3MgYXJnID0geyB9OwogCiAJaWYgKG1hYykKIAkJZXRoZXJfYWRkcl9j b3B5KGFyZy5tYWNfYWRkciwgbWFjKTsKLQlyZXR1cm4gaGlmX3dyaXRlX21pYih3dmlmLT53ZGV2 LCB3dmlmLT5pZCwgSElGX01JQl9JRF9ET1QxMV9NQUNfQUREUkVTUywKLQkJCSAgICAgJmFyZywg c2l6ZW9mKGFyZykpOworCXJldHVybiB3ZnhfaGlmX3dyaXRlX21pYih3dmlmLT53ZGV2LCB3dmlm LT5pZCwKKwkJCQkgSElGX01JQl9JRF9ET1QxMV9NQUNfQUREUkVTUywKKwkJCQkgJmFyZywgc2l6 ZW9mKGFyZykpOwogfQogCi1pbnQgaGlmX3NldF9yeF9maWx0ZXIoc3RydWN0IHdmeF92aWYgKnd2 aWYsCi0JCSAgICAgIGJvb2wgZmlsdGVyX2Jzc2lkLCBib29sIGZpbHRlcl9wcmJyZXEpCitpbnQg d2Z4X2hpZl9zZXRfcnhfZmlsdGVyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAorCQkJICBib29sIGZp bHRlcl9ic3NpZCwgYm9vbCBmaWx0ZXJfcHJicmVxKQogewogCXN0cnVjdCBoaWZfbWliX3J4X2Zp bHRlciBhcmcgPSB7IH07CiAKQEAgLTk4LDEyICsxMDAsMTIgQEAgaW50IGhpZl9zZXRfcnhfZmls dGVyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAogCQlhcmcuYnNzaWRfZmlsdGVyID0gMTsKIAlpZiAo IWZpbHRlcl9wcmJyZXEpCiAJCWFyZy5md2RfcHJvYmVfcmVxID0gMTsKLQlyZXR1cm4gaGlmX3dy aXRlX21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwgSElGX01JQl9JRF9SWF9GSUxURVIsCi0JCQkg ICAgICZhcmcsIHNpemVvZihhcmcpKTsKKwlyZXR1cm4gd2Z4X2hpZl93cml0ZV9taWIod3ZpZi0+ d2Rldiwgd3ZpZi0+aWQsIEhJRl9NSUJfSURfUlhfRklMVEVSLAorCQkJCSAmYXJnLCBzaXplb2Yo YXJnKSk7CiB9CiAKLWludCBoaWZfc2V0X2JlYWNvbl9maWx0ZXJfdGFibGUoc3RydWN0IHdmeF92 aWYgKnd2aWYsIGludCB0YmxfbGVuLAotCQkJCWNvbnN0IHN0cnVjdCBoaWZfaWVfdGFibGVfZW50 cnkgKnRibCkKK2ludCB3ZnhfaGlmX3NldF9iZWFjb25fZmlsdGVyX3RhYmxlKHN0cnVjdCB3Znhf dmlmICp3dmlmLCBpbnQgdGJsX2xlbiwKKwkJCQkgICAgY29uc3Qgc3RydWN0IGhpZl9pZV90YWJs ZV9lbnRyeSAqdGJsKQogewogCWludCByZXQ7CiAJc3RydWN0IGhpZl9taWJfYmNuX2ZpbHRlcl90 YWJsZSAqYXJnOwpAQCAtMTE0LDM3ICsxMTYsMzggQEAgaW50IGhpZl9zZXRfYmVhY29uX2ZpbHRl cl90YWJsZShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IHRibF9sZW4sCiAJCXJldHVybiAtRU5P TUVNOwogCWFyZy0+bnVtX29mX2luZm9fZWxtdHMgPSBjcHVfdG9fbGUzMih0YmxfbGVuKTsKIAlt ZW1jcHkoYXJnLT5pZV90YWJsZSwgdGJsLCBmbGV4X2FycmF5X3NpemUoYXJnLCBpZV90YWJsZSwg dGJsX2xlbikpOwotCXJldCA9IGhpZl93cml0ZV9taWIod3ZpZi0+d2Rldiwgd3ZpZi0+aWQsCi0J CQkgICAgSElGX01JQl9JRF9CRUFDT05fRklMVEVSX1RBQkxFLCBhcmcsIGJ1Zl9sZW4pOworCXJl dCA9IHdmeF9oaWZfd3JpdGVfbWliKHd2aWYtPndkZXYsIHd2aWYtPmlkLAorCQkJCUhJRl9NSUJf SURfQkVBQ09OX0ZJTFRFUl9UQUJMRSwgYXJnLCBidWZfbGVuKTsKIAlrZnJlZShhcmcpOwogCXJl dHVybiByZXQ7CiB9CiAKLWludCBoaWZfYmVhY29uX2ZpbHRlcl9jb250cm9sKHN0cnVjdCB3Znhf dmlmICp3dmlmLAotCQkJICAgICAgaW50IGVuYWJsZSwgaW50IGJlYWNvbl9jb3VudCkKK2ludCB3 ZnhfaGlmX2JlYWNvbl9maWx0ZXJfY29udHJvbChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKKwkJCQkg IGludCBlbmFibGUsIGludCBiZWFjb25fY291bnQpCiB7CiAJc3RydWN0IGhpZl9taWJfYmNuX2Zp bHRlcl9lbmFibGUgYXJnID0gewogCQkuZW5hYmxlID0gY3B1X3RvX2xlMzIoZW5hYmxlKSwKIAkJ LmJjbl9jb3VudCA9IGNwdV90b19sZTMyKGJlYWNvbl9jb3VudCksCiAJfTsKLQlyZXR1cm4gaGlm X3dyaXRlX21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwKLQkJCSAgICAgSElGX01JQl9JRF9CRUFD T05fRklMVEVSX0VOQUJMRSwKLQkJCSAgICAgJmFyZywgc2l6ZW9mKGFyZykpOworCXJldHVybiB3 ZnhfaGlmX3dyaXRlX21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwKKwkJCQkgSElGX01JQl9JRF9C RUFDT05fRklMVEVSX0VOQUJMRSwKKwkJCQkgJmFyZywgc2l6ZW9mKGFyZykpOwogfQogCi1pbnQg aGlmX3NldF9vcGVyYXRpb25hbF9tb2RlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBlbnVtIGhpZl9v cF9wb3dlcl9tb2RlIG1vZGUpCitpbnQgd2Z4X2hpZl9zZXRfb3BlcmF0aW9uYWxfbW9kZShzdHJ1 Y3Qgd2Z4X2RldiAqd2RldiwKKwkJCQkgZW51bSBoaWZfb3BfcG93ZXJfbW9kZSBtb2RlKQogewog CXN0cnVjdCBoaWZfbWliX2dsX29wZXJhdGlvbmFsX3Bvd2VyX21vZGUgYXJnID0gewogCQkucG93 ZXJfbW9kZSA9IG1vZGUsCiAJCS53dXBfaW5kX2FjdGl2YXRpb24gPSAxLAogCX07CiAKLQlyZXR1 cm4gaGlmX3dyaXRlX21pYih3ZGV2LCAtMSwgSElGX01JQl9JRF9HTF9PUEVSQVRJT05BTF9QT1dF Ul9NT0RFLAotCQkJICAgICAmYXJnLCBzaXplb2YoYXJnKSk7CisJcmV0dXJuIHdmeF9oaWZfd3Jp dGVfbWliKHdkZXYsIC0xLCBISUZfTUlCX0lEX0dMX09QRVJBVElPTkFMX1BPV0VSX01PREUsCisJ CQkJICZhcmcsIHNpemVvZihhcmcpKTsKIH0KIAotaW50IGhpZl9zZXRfdGVtcGxhdGVfZnJhbWUo c3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBza19idWZmICpza2IsCi0JCQkgICB1OCBmcmFt ZV90eXBlLCBpbnQgaW5pdF9yYXRlKQoraW50IHdmeF9oaWZfc2V0X3RlbXBsYXRlX2ZyYW1lKHN0 cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJICAgICAgIHU4IGZy YW1lX3R5cGUsIGludCBpbml0X3JhdGUpCiB7CiAJc3RydWN0IGhpZl9taWJfdGVtcGxhdGVfZnJh bWUgKmFyZzsKIApAQCAtMTU1LDExICsxNTgsMTEgQEAgaW50IGhpZl9zZXRfdGVtcGxhdGVfZnJh bWUoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBza19idWZmICpza2IsCiAJYXJnLT5pbml0 X3JhdGUgPSBpbml0X3JhdGU7CiAJYXJnLT5mcmFtZV90eXBlID0gZnJhbWVfdHlwZTsKIAlhcmct PmZyYW1lX2xlbmd0aCA9IGNwdV90b19sZTE2KHNrYi0+bGVuKTsKLQlyZXR1cm4gaGlmX3dyaXRl X21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwgSElGX01JQl9JRF9URU1QTEFURV9GUkFNRSwKLQkJ CSAgICAgYXJnLCBzaXplb2YoKmFyZykgKyBza2ItPmxlbik7CisJcmV0dXJuIHdmeF9oaWZfd3Jp dGVfbWliKHd2aWYtPndkZXYsIHd2aWYtPmlkLCBISUZfTUlCX0lEX1RFTVBMQVRFX0ZSQU1FLAor CQkJCSBhcmcsIHNpemVvZigqYXJnKSArIHNrYi0+bGVuKTsKIH0KIAotaW50IGhpZl9zZXRfbWZw KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIGNhcGFibGUsIGJvb2wgcmVxdWlyZWQpCitpbnQg d2Z4X2hpZl9zZXRfbWZwKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIGNhcGFibGUsIGJvb2wg cmVxdWlyZWQpCiB7CiAJc3RydWN0IGhpZl9taWJfcHJvdGVjdGVkX21nbXRfcG9saWN5IGFyZyA9 IHsgfTsKIApAQCAtMTcwLDI1ICsxNzMsMjYgQEAgaW50IGhpZl9zZXRfbWZwKHN0cnVjdCB3Znhf dmlmICp3dmlmLCBib29sIGNhcGFibGUsIGJvb2wgcmVxdWlyZWQpCiAJfQogCWlmICghcmVxdWly ZWQpCiAJCWFyZy51bnBtZl9hbGxvd2VkID0gMTsKLQlyZXR1cm4gaGlmX3dyaXRlX21pYih3dmlm LT53ZGV2LCB3dmlmLT5pZCwKLQkJCSAgICAgSElGX01JQl9JRF9QUk9URUNURURfTUdNVF9QT0xJ Q1ksCi0JCQkgICAgICZhcmcsIHNpemVvZihhcmcpKTsKKwlyZXR1cm4gd2Z4X2hpZl93cml0ZV9t aWIod3ZpZi0+d2Rldiwgd3ZpZi0+aWQsCisJCQkJIEhJRl9NSUJfSURfUFJPVEVDVEVEX01HTVRf UE9MSUNZLAorCQkJCSAmYXJnLCBzaXplb2YoYXJnKSk7CiB9CiAKLWludCBoaWZfc2V0X2Jsb2Nr X2Fja19wb2xpY3koc3RydWN0IHdmeF92aWYgKnd2aWYsCi0JCQkgICAgIHU4IHR4X3RpZF9wb2xp Y3ksIHU4IHJ4X3RpZF9wb2xpY3kpCitpbnQgd2Z4X2hpZl9zZXRfYmxvY2tfYWNrX3BvbGljeShz dHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKKwkJCQkgdTggdHhfdGlkX3BvbGljeSwgdTggcnhfdGlkX3Bv bGljeSkKIHsKIAlzdHJ1Y3QgaGlmX21pYl9ibG9ja19hY2tfcG9saWN5IGFyZyA9IHsKIAkJLmJs b2NrX2Fja190eF90aWRfcG9saWN5ID0gdHhfdGlkX3BvbGljeSwKIAkJLmJsb2NrX2Fja19yeF90 aWRfcG9saWN5ID0gcnhfdGlkX3BvbGljeSwKIAl9OwogCi0JcmV0dXJuIGhpZl93cml0ZV9taWIo d3ZpZi0+d2Rldiwgd3ZpZi0+aWQsIEhJRl9NSUJfSURfQkxPQ0tfQUNLX1BPTElDWSwKLQkJCSAg ICAgJmFyZywgc2l6ZW9mKGFyZykpOworCXJldHVybiB3ZnhfaGlmX3dyaXRlX21pYih3dmlmLT53 ZGV2LCB3dmlmLT5pZCwKKwkJCQkgSElGX01JQl9JRF9CTE9DS19BQ0tfUE9MSUNZLAorCQkJCSAm YXJnLCBzaXplb2YoYXJnKSk7CiB9CiAKLWludCBoaWZfc2V0X2Fzc29jaWF0aW9uX21vZGUoc3Ry dWN0IHdmeF92aWYgKnd2aWYsIGludCBhbXBkdV9kZW5zaXR5LAotCQkJICAgICBib29sIGdyZWVu ZmllbGQsIGJvb2wgc2hvcnRfcHJlYW1ibGUpCitpbnQgd2Z4X2hpZl9zZXRfYXNzb2NpYXRpb25f bW9kZShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IGFtcGR1X2RlbnNpdHksCisJCQkJIGJvb2wg Z3JlZW5maWVsZCwgYm9vbCBzaG9ydF9wcmVhbWJsZSkKIHsKIAlzdHJ1Y3QgaGlmX21pYl9zZXRf YXNzb2NpYXRpb25fbW9kZSBhcmcgPSB7CiAJCS5wcmVhbWJ0eXBlX3VzZSA9IDEsCkBAIC0xOTks MTIgKzIwMywxMyBAQCBpbnQgaGlmX3NldF9hc3NvY2lhdGlvbl9tb2RlKHN0cnVjdCB3Znhfdmlm ICp3dmlmLCBpbnQgYW1wZHVfZGVuc2l0eSwKIAkJLm1wZHVfc3RhcnRfc3BhY2luZyA9IGFtcGR1 X2RlbnNpdHksCiAJfTsKIAotCXJldHVybiBoaWZfd3JpdGVfbWliKHd2aWYtPndkZXYsIHd2aWYt PmlkLAotCQkJICAgICBISUZfTUlCX0lEX1NFVF9BU1NPQ0lBVElPTl9NT0RFLCAmYXJnLCBzaXpl b2YoYXJnKSk7CisJcmV0dXJuIHdmeF9oaWZfd3JpdGVfbWliKHd2aWYtPndkZXYsIHd2aWYtPmlk LAorCQkJCSBISUZfTUlCX0lEX1NFVF9BU1NPQ0lBVElPTl9NT0RFLAorCQkJCSAmYXJnLCBzaXpl b2YoYXJnKSk7CiB9CiAKLWludCBoaWZfc2V0X3R4X3JhdGVfcmV0cnlfcG9saWN5KHN0cnVjdCB3 ZnhfdmlmICp3dmlmLAotCQkJCSBpbnQgcG9saWN5X2luZGV4LCB1OCAqcmF0ZXMpCitpbnQgd2Z4 X2hpZl9zZXRfdHhfcmF0ZV9yZXRyeV9wb2xpY3koc3RydWN0IHdmeF92aWYgKnd2aWYsCisJCQkJ ICAgICBpbnQgcG9saWN5X2luZGV4LCB1OCAqcmF0ZXMpCiB7CiAJc3RydWN0IGhpZl9taWJfc2V0 X3R4X3JhdGVfcmV0cnlfcG9saWN5ICphcmc7CiAJc2l6ZV90IHNpemUgPSBzdHJ1Y3Rfc2l6ZShh cmcsIHR4X3JhdGVfcmV0cnlfcG9saWN5LCAxKTsKQEAgLTIyMiwyMyArMjI3LDI1IEBAIGludCBo aWZfc2V0X3R4X3JhdGVfcmV0cnlfcG9saWN5KHN0cnVjdCB3ZnhfdmlmICp3dmlmLAogCWFyZy0+ dHhfcmF0ZV9yZXRyeV9wb2xpY3lbMF0uY291bnRfaW5pdCA9IDE7CiAJbWVtY3B5KCZhcmctPnR4 X3JhdGVfcmV0cnlfcG9saWN5WzBdLnJhdGVzLCByYXRlcywKIAkgICAgICAgc2l6ZW9mKGFyZy0+ dHhfcmF0ZV9yZXRyeV9wb2xpY3lbMF0ucmF0ZXMpKTsKLQlyZXQgPSBoaWZfd3JpdGVfbWliKHd2 aWYtPndkZXYsIHd2aWYtPmlkLAotCQkJICAgIEhJRl9NSUJfSURfU0VUX1RYX1JBVEVfUkVUUllf UE9MSUNZLCBhcmcsIHNpemUpOworCXJldCA9IHdmeF9oaWZfd3JpdGVfbWliKHd2aWYtPndkZXYs IHd2aWYtPmlkLAorCQkJCUhJRl9NSUJfSURfU0VUX1RYX1JBVEVfUkVUUllfUE9MSUNZLAorCQkJ CWFyZywgc2l6ZSk7CiAJa2ZyZWUoYXJnKTsKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgaGlmX2tl ZXBfYWxpdmVfcGVyaW9kKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgcGVyaW9kKQoraW50IHdm eF9oaWZfa2VlcF9hbGl2ZV9wZXJpb2Qoc3RydWN0IHdmeF92aWYgKnd2aWYsIGludCBwZXJpb2Qp CiB7CiAJc3RydWN0IGhpZl9taWJfa2VlcF9hbGl2ZV9wZXJpb2QgYXJnID0gewogCQkua2VlcF9h bGl2ZV9wZXJpb2QgPSBjcHVfdG9fbGUxNihwZXJpb2QpLAogCX07CiAKLQlyZXR1cm4gaGlmX3dy aXRlX21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwgSElGX01JQl9JRF9LRUVQX0FMSVZFX1BFUklP RCwKLQkJCSAgICAgJmFyZywgc2l6ZW9mKGFyZykpOworCXJldHVybiB3ZnhfaGlmX3dyaXRlX21p Yih3dmlmLT53ZGV2LCB3dmlmLT5pZCwKKwkJCQkgSElGX01JQl9JRF9LRUVQX0FMSVZFX1BFUklP RCwKKwkJCQkgJmFyZywgc2l6ZW9mKGFyZykpOwogfTsKIAotaW50IGhpZl9zZXRfYXJwX2lwdjRf ZmlsdGVyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgaWR4LCBfX2JlMzIgKmFkZHIpCitpbnQg d2Z4X2hpZl9zZXRfYXJwX2lwdjRfZmlsdGVyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgaWR4 LCBfX2JlMzIgKmFkZHIpCiB7CiAJc3RydWN0IGhpZl9taWJfYXJwX2lwX2FkZHJfdGFibGUgYXJn ID0gewogCQkuY29uZGl0aW9uX2lkeCA9IGlkeCwKQEAgLTI1MCwyMiArMjU3LDIyIEBAIGludCBo aWZfc2V0X2FycF9pcHY0X2ZpbHRlcihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IGlkeCwgX19i ZTMyICphZGRyKQogCQltZW1jcHkoYXJnLmlwdjRfYWRkcmVzcywgYWRkciwgc2l6ZW9mKGFyZy5p cHY0X2FkZHJlc3MpKTsKIAkJYXJnLmFycF9lbmFibGUgPSBISUZfQVJQX05TX0ZJTFRFUklOR19F TkFCTEU7CiAJfQotCXJldHVybiBoaWZfd3JpdGVfbWliKHd2aWYtPndkZXYsIHd2aWYtPmlkLAot CQkJICAgICBISUZfTUlCX0lEX0FSUF9JUF9BRERSRVNTRVNfVEFCTEUsCi0JCQkgICAgICZhcmcs IHNpemVvZihhcmcpKTsKKwlyZXR1cm4gd2Z4X2hpZl93cml0ZV9taWIod3ZpZi0+d2Rldiwgd3Zp Zi0+aWQsCisJCQkJIEhJRl9NSUJfSURfQVJQX0lQX0FERFJFU1NFU19UQUJMRSwKKwkJCQkgJmFy Zywgc2l6ZW9mKGFyZykpOwogfQogCi1pbnQgaGlmX3VzZV9tdWx0aV90eF9jb25mKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCBib29sIGVuYWJsZSkKK2ludCB3ZnhfaGlmX3VzZV9tdWx0aV90eF9jb25m KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBib29sIGVuYWJsZSkKIHsKIAlzdHJ1Y3QgaGlmX21pYl9n bF9zZXRfbXVsdGlfbXNnIGFyZyA9IHsKIAkJLmVuYWJsZV9tdWx0aV90eF9jb25mID0gZW5hYmxl LAogCX07CiAKLQlyZXR1cm4gaGlmX3dyaXRlX21pYih3ZGV2LCAtMSwgSElGX01JQl9JRF9HTF9T RVRfTVVMVElfTVNHLAotCQkJICAgICAmYXJnLCBzaXplb2YoYXJnKSk7CisJcmV0dXJuIHdmeF9o aWZfd3JpdGVfbWliKHdkZXYsIC0xLCBISUZfTUlCX0lEX0dMX1NFVF9NVUxUSV9NU0csCisJCQkJ ICZhcmcsIHNpemVvZihhcmcpKTsKIH0KIAotaW50IGhpZl9zZXRfdWFwc2RfaW5mbyhzdHJ1Y3Qg d2Z4X3ZpZiAqd3ZpZiwgdW5zaWduZWQgbG9uZyB2YWwpCitpbnQgd2Z4X2hpZl9zZXRfdWFwc2Rf aW5mbyhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgdW5zaWduZWQgbG9uZyB2YWwpCiB7CiAJc3RydWN0 IGhpZl9taWJfc2V0X3VhcHNkX2luZm9ybWF0aW9uIGFyZyA9IHsgfTsKIApAQCAtMjc3LDQ4ICsy ODQsNTAgQEAgaW50IGhpZl9zZXRfdWFwc2RfaW5mbyhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgdW5z aWduZWQgbG9uZyB2YWwpCiAJCWFyZy50cmlnX2JlID0gMTsKIAlpZiAodmFsICYgQklUKElFRUU4 MDIxMV9BQ19CSykpCiAJCWFyZy50cmlnX2Jja2dybmQgPSAxOwotCXJldHVybiBoaWZfd3JpdGVf bWliKHd2aWYtPndkZXYsIHd2aWYtPmlkLAotCQkJICAgICBISUZfTUlCX0lEX1NFVF9VQVBTRF9J TkZPUk1BVElPTiwKLQkJCSAgICAgJmFyZywgc2l6ZW9mKGFyZykpOworCXJldHVybiB3ZnhfaGlm X3dyaXRlX21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwKKwkJCQkgSElGX01JQl9JRF9TRVRfVUFQ U0RfSU5GT1JNQVRJT04sCisJCQkJICZhcmcsIHNpemVvZihhcmcpKTsKIH0KIAotaW50IGhpZl9l cnBfdXNlX3Byb3RlY3Rpb24oc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wgZW5hYmxlKQoraW50 IHdmeF9oaWZfZXJwX3VzZV9wcm90ZWN0aW9uKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIGVu YWJsZSkKIHsKIAlzdHJ1Y3QgaGlmX21pYl9ub25fZXJwX3Byb3RlY3Rpb24gYXJnID0gewogCQku dXNlX2N0c190b19zZWxmID0gZW5hYmxlLAogCX07CiAKLQlyZXR1cm4gaGlmX3dyaXRlX21pYih3 dmlmLT53ZGV2LCB3dmlmLT5pZCwKLQkJCSAgICAgSElGX01JQl9JRF9OT05fRVJQX1BST1RFQ1RJ T04sICZhcmcsIHNpemVvZihhcmcpKTsKKwlyZXR1cm4gd2Z4X2hpZl93cml0ZV9taWIod3ZpZi0+ d2Rldiwgd3ZpZi0+aWQsCisJCQkJIEhJRl9NSUJfSURfTk9OX0VSUF9QUk9URUNUSU9OLAorCQkJ CSAmYXJnLCBzaXplb2YoYXJnKSk7CiB9CiAKLWludCBoaWZfc2xvdF90aW1lKHN0cnVjdCB3Znhf dmlmICp3dmlmLCBpbnQgdmFsKQoraW50IHdmeF9oaWZfc2xvdF90aW1lKHN0cnVjdCB3Znhfdmlm ICp3dmlmLCBpbnQgdmFsKQogewogCXN0cnVjdCBoaWZfbWliX3Nsb3RfdGltZSBhcmcgPSB7CiAJ CS5zbG90X3RpbWUgPSBjcHVfdG9fbGUzMih2YWwpLAogCX07CiAKLQlyZXR1cm4gaGlmX3dyaXRl X21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwgSElGX01JQl9JRF9TTE9UX1RJTUUsCi0JCQkgICAg ICZhcmcsIHNpemVvZihhcmcpKTsKKwlyZXR1cm4gd2Z4X2hpZl93cml0ZV9taWIod3ZpZi0+d2Rl diwgd3ZpZi0+aWQsIEhJRl9NSUJfSURfU0xPVF9USU1FLAorCQkJCSAmYXJnLCBzaXplb2YoYXJn KSk7CiB9CiAKLWludCBoaWZfd2VwX2RlZmF1bHRfa2V5X2lkKHN0cnVjdCB3ZnhfdmlmICp3dmlm LCBpbnQgdmFsKQoraW50IHdmeF9oaWZfd2VwX2RlZmF1bHRfa2V5X2lkKHN0cnVjdCB3Znhfdmlm ICp3dmlmLCBpbnQgdmFsKQogewogCXN0cnVjdCBoaWZfbWliX3dlcF9kZWZhdWx0X2tleV9pZCBh cmcgPSB7CiAJCS53ZXBfZGVmYXVsdF9rZXlfaWQgPSB2YWwsCiAJfTsKIAotCXJldHVybiBoaWZf d3JpdGVfbWliKHd2aWYtPndkZXYsIHd2aWYtPmlkLAotCQkJICAgICBISUZfTUlCX0lEX0RPVDEx X1dFUF9ERUZBVUxUX0tFWV9JRCwKLQkJCSAgICAgJmFyZywgc2l6ZW9mKGFyZykpOworCXJldHVy biB3ZnhfaGlmX3dyaXRlX21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwKKwkJCQkgSElGX01JQl9J RF9ET1QxMV9XRVBfREVGQVVMVF9LRVlfSUQsCisJCQkJICZhcmcsIHNpemVvZihhcmcpKTsKIH0K IAotaW50IGhpZl9ydHNfdGhyZXNob2xkKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgdmFsKQor aW50IHdmeF9oaWZfcnRzX3RocmVzaG9sZChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IHZhbCkK IHsKIAlzdHJ1Y3QgaGlmX21pYl9kb3QxMV9ydHNfdGhyZXNob2xkIGFyZyA9IHsKIAkJLnRocmVz aG9sZCA9IGNwdV90b19sZTMyKHZhbCA+PSAwID8gdmFsIDogMHhGRkZGKSwKIAl9OwogCi0JcmV0 dXJuIGhpZl93cml0ZV9taWIod3ZpZi0+d2Rldiwgd3ZpZi0+aWQsCi0JCQkgICAgIEhJRl9NSUJf SURfRE9UMTFfUlRTX1RIUkVTSE9MRCwgJmFyZywgc2l6ZW9mKGFyZykpOworCXJldHVybiB3Znhf aGlmX3dyaXRlX21pYih3dmlmLT53ZGV2LCB3dmlmLT5pZCwKKwkJCQkgSElGX01JQl9JRF9ET1Qx MV9SVFNfVEhSRVNIT0xELAorCQkJCSAmYXJnLCBzaXplb2YoYXJnKSk7CiB9CmRpZmYgLS1naXQg YS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eF9taWIuaCBiL2RyaXZlcnMvc3RhZ2luZy93Zngv aGlmX3R4X21pYi5oCmluZGV4IGZlMDhhNjk0MTJhYi4uOWI0YzE2YWQ1ZWNmIDEwMDY0NAotLS0g YS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eF9taWIuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcv d2Z4L2hpZl90eF9taWIuaApAQCAtMTcsMzggKzE3LDM5IEBAIHN0cnVjdCB3ZnhfZGV2Owogc3Ry dWN0IGhpZl9pZV90YWJsZV9lbnRyeTsKIHN0cnVjdCBoaWZfbWliX2V4dGVuZGVkX2NvdW50X3Rh YmxlOwogCi1pbnQgaGlmX3NldF9vdXRwdXRfcG93ZXIoc3RydWN0IHdmeF92aWYgKnd2aWYsIGlu dCB2YWwpOwotaW50IGhpZl9zZXRfYmVhY29uX3dha2V1cF9wZXJpb2Qoc3RydWN0IHdmeF92aWYg Knd2aWYsCi0JCQkJIHVuc2lnbmVkIGludCBkdGltX2ludGVydmFsLAotCQkJCSB1bnNpZ25lZCBp bnQgbGlzdGVuX2ludGVydmFsKTsKLWludCBoaWZfc2V0X3JjcGlfcnNzaV90aHJlc2hvbGQoc3Ry dWN0IHdmeF92aWYgKnd2aWYsCi0JCQkJaW50IHJzc2lfdGhvbGQsIGludCByc3NpX2h5c3QpOwot aW50IGhpZl9nZXRfY291bnRlcnNfdGFibGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCB2aWZf aWQsCi0JCQkgICBzdHJ1Y3QgaGlmX21pYl9leHRlbmRlZF9jb3VudF90YWJsZSAqYXJnKTsKLWlu dCBoaWZfc2V0X21hY2FkZHIoc3RydWN0IHdmeF92aWYgKnd2aWYsIHU4ICptYWMpOwotaW50IGhp Zl9zZXRfcnhfZmlsdGVyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAotCQkgICAgICBib29sIGZpbHRl cl9ic3NpZCwgYm9vbCBmd2RfcHJvYmVfcmVxKTsKLWludCBoaWZfc2V0X2JlYWNvbl9maWx0ZXJf dGFibGUoc3RydWN0IHdmeF92aWYgKnd2aWYsIGludCB0YmxfbGVuLAotCQkJCWNvbnN0IHN0cnVj dCBoaWZfaWVfdGFibGVfZW50cnkgKnRibCk7Ci1pbnQgaGlmX2JlYWNvbl9maWx0ZXJfY29udHJv bChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKLQkJCSAgICAgIGludCBlbmFibGUsIGludCBiZWFjb25f Y291bnQpOwotaW50IGhpZl9zZXRfb3BlcmF0aW9uYWxfbW9kZShzdHJ1Y3Qgd2Z4X2RldiAqd2Rl diwgZW51bSBoaWZfb3BfcG93ZXJfbW9kZSBtb2RlKTsKLWludCBoaWZfc2V0X3RlbXBsYXRlX2Zy YW1lKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotCQkJICAgdTgg ZnJhbWVfdHlwZSwgaW50IGluaXRfcmF0ZSk7Ci1pbnQgaGlmX3NldF9tZnAoc3RydWN0IHdmeF92 aWYgKnd2aWYsIGJvb2wgY2FwYWJsZSwgYm9vbCByZXF1aXJlZCk7Ci1pbnQgaGlmX3NldF9ibG9j a19hY2tfcG9saWN5KHN0cnVjdCB3ZnhfdmlmICp3dmlmLAotCQkJICAgICB1OCB0eF90aWRfcG9s aWN5LCB1OCByeF90aWRfcG9saWN5KTsKLWludCBoaWZfc2V0X2Fzc29jaWF0aW9uX21vZGUoc3Ry dWN0IHdmeF92aWYgKnd2aWYsIGludCBhbXBkdV9kZW5zaXR5LAotCQkJICAgICBib29sIGdyZWVu ZmllbGQsIGJvb2wgc2hvcnRfcHJlYW1ibGUpOwotaW50IGhpZl9zZXRfdHhfcmF0ZV9yZXRyeV9w b2xpY3koc3RydWN0IHdmeF92aWYgKnd2aWYsCi0JCQkJIGludCBwb2xpY3lfaW5kZXgsIHU4ICpy YXRlcyk7Ci1pbnQgaGlmX2tlZXBfYWxpdmVfcGVyaW9kKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBp bnQgcGVyaW9kKTsKLWludCBoaWZfc2V0X2FycF9pcHY0X2ZpbHRlcihzdHJ1Y3Qgd2Z4X3ZpZiAq d3ZpZiwgaW50IGlkeCwgX19iZTMyICphZGRyKTsKLWludCBoaWZfdXNlX211bHRpX3R4X2NvbmYo c3RydWN0IHdmeF9kZXYgKndkZXYsIGJvb2wgZW5hYmxlKTsKLWludCBoaWZfc2V0X3VhcHNkX2lu Zm8oc3RydWN0IHdmeF92aWYgKnd2aWYsIHVuc2lnbmVkIGxvbmcgdmFsKTsKLWludCBoaWZfZXJw X3VzZV9wcm90ZWN0aW9uKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIGVuYWJsZSk7Ci1pbnQg aGlmX3Nsb3RfdGltZShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IHZhbCk7Ci1pbnQgaGlmX3dl cF9kZWZhdWx0X2tleV9pZChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IHZhbCk7Ci1pbnQgaGlm X3J0c190aHJlc2hvbGQoc3RydWN0IHdmeF92aWYgKnd2aWYsIGludCB2YWwpOworaW50IHdmeF9o aWZfc2V0X291dHB1dF9wb3dlcihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IHZhbCk7CitpbnQg d2Z4X2hpZl9zZXRfYmVhY29uX3dha2V1cF9wZXJpb2Qoc3RydWN0IHdmeF92aWYgKnd2aWYsCisJ CQkJICAgICB1bnNpZ25lZCBpbnQgZHRpbV9pbnRlcnZhbCwKKwkJCQkgICAgIHVuc2lnbmVkIGlu dCBsaXN0ZW5faW50ZXJ2YWwpOworaW50IHdmeF9oaWZfc2V0X3JjcGlfcnNzaV90aHJlc2hvbGQo c3RydWN0IHdmeF92aWYgKnd2aWYsCisJCQkJICAgIGludCByc3NpX3Rob2xkLCBpbnQgcnNzaV9o eXN0KTsKK2ludCB3ZnhfaGlmX2dldF9jb3VudGVyc190YWJsZShzdHJ1Y3Qgd2Z4X2RldiAqd2Rl diwgaW50IHZpZl9pZCwKKwkJCSAgICAgICBzdHJ1Y3QgaGlmX21pYl9leHRlbmRlZF9jb3VudF90 YWJsZSAqYXJnKTsKK2ludCB3ZnhfaGlmX3NldF9tYWNhZGRyKHN0cnVjdCB3ZnhfdmlmICp3dmlm LCB1OCAqbWFjKTsKK2ludCB3ZnhfaGlmX3NldF9yeF9maWx0ZXIoc3RydWN0IHdmeF92aWYgKnd2 aWYsCisJCQkgIGJvb2wgZmlsdGVyX2Jzc2lkLCBib29sIGZ3ZF9wcm9iZV9yZXEpOworaW50IHdm eF9oaWZfc2V0X2JlYWNvbl9maWx0ZXJfdGFibGUoc3RydWN0IHdmeF92aWYgKnd2aWYsIGludCB0 YmxfbGVuLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgaGlmX2llX3RhYmxlX2VudHJ5ICp0YmwpOwor aW50IHdmeF9oaWZfYmVhY29uX2ZpbHRlcl9jb250cm9sKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAor CQkJCSAgaW50IGVuYWJsZSwgaW50IGJlYWNvbl9jb3VudCk7CitpbnQgd2Z4X2hpZl9zZXRfb3Bl cmF0aW9uYWxfbW9kZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKKwkJCQkgZW51bSBoaWZfb3BfcG93 ZXJfbW9kZSBtb2RlKTsKK2ludCB3ZnhfaGlmX3NldF90ZW1wbGF0ZV9mcmFtZShzdHJ1Y3Qgd2Z4 X3ZpZiAqd3ZpZiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCSAgICAgICB1OCBmcmFtZV90eXBl LCBpbnQgaW5pdF9yYXRlKTsKK2ludCB3ZnhfaGlmX3NldF9tZnAoc3RydWN0IHdmeF92aWYgKnd2 aWYsIGJvb2wgY2FwYWJsZSwgYm9vbCByZXF1aXJlZCk7CitpbnQgd2Z4X2hpZl9zZXRfYmxvY2tf YWNrX3BvbGljeShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKKwkJCQkgdTggdHhfdGlkX3BvbGljeSwg dTggcnhfdGlkX3BvbGljeSk7CitpbnQgd2Z4X2hpZl9zZXRfYXNzb2NpYXRpb25fbW9kZShzdHJ1 Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IGFtcGR1X2RlbnNpdHksCisJCQkJIGJvb2wgZ3JlZW5maWVs ZCwgYm9vbCBzaG9ydF9wcmVhbWJsZSk7CitpbnQgd2Z4X2hpZl9zZXRfdHhfcmF0ZV9yZXRyeV9w b2xpY3koc3RydWN0IHdmeF92aWYgKnd2aWYsCisJCQkJICAgICBpbnQgcG9saWN5X2luZGV4LCB1 OCAqcmF0ZXMpOworaW50IHdmeF9oaWZfa2VlcF9hbGl2ZV9wZXJpb2Qoc3RydWN0IHdmeF92aWYg Knd2aWYsIGludCBwZXJpb2QpOworaW50IHdmeF9oaWZfc2V0X2FycF9pcHY0X2ZpbHRlcihzdHJ1 Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IGlkeCwgX19iZTMyICphZGRyKTsKK2ludCB3ZnhfaGlmX3Vz ZV9tdWx0aV90eF9jb25mKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBib29sIGVuYWJsZSk7CitpbnQg d2Z4X2hpZl9zZXRfdWFwc2RfaW5mbyhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgdW5zaWduZWQgbG9u ZyB2YWwpOworaW50IHdmeF9oaWZfZXJwX3VzZV9wcm90ZWN0aW9uKHN0cnVjdCB3ZnhfdmlmICp3 dmlmLCBib29sIGVuYWJsZSk7CitpbnQgd2Z4X2hpZl9zbG90X3RpbWUoc3RydWN0IHdmeF92aWYg Knd2aWYsIGludCB2YWwpOworaW50IHdmeF9oaWZfd2VwX2RlZmF1bHRfa2V5X2lkKHN0cnVjdCB3 ZnhfdmlmICp3dmlmLCBpbnQgdmFsKTsKK2ludCB3ZnhfaGlmX3J0c190aHJlc2hvbGQoc3RydWN0 IHdmeF92aWYgKnd2aWYsIGludCB2YWwpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMv c3RhZ2luZy93Zngva2V5LmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2tleS5jCmluZGV4IDY1MTM0 YTE3NDY4My4uNjA2OWJlMTYxMTU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2tl eS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngva2V5LmMKQEAgLTIwNSw3ICsyMDUsNyBAQCBz dGF0aWMgaW50IHdmeF9hZGRfa2V5KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3QgaWVlZTgw MjExX3N0YSAqc3RhLAogCQl3ZnhfZnJlZV9rZXkod2RldiwgaWR4KTsKIAkJcmV0dXJuIC1FT1BO T1RTVVBQOwogCX0KLQlyZXQgPSBoaWZfYWRkX2tleSh3ZGV2LCAmayk7CisJcmV0ID0gd2Z4X2hp Zl9hZGRfa2V5KHdkZXYsICZrKTsKIAlpZiAocmV0KSB7CiAJCXdmeF9mcmVlX2tleSh3ZGV2LCBp ZHgpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CkBAIC0yMjAsNyArMjIwLDcgQEAgc3RhdGljIGlu dCB3ZnhfcmVtb3ZlX2tleShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgc3RydWN0IGllZWU4MDIxMV9r ZXlfY29uZiAqa2V5KQogewogCVdBUk4oa2V5LT5od19rZXlfaWR4ID49IE1BWF9LRVlfRU5UUklF UywgImNvcnJ1cHRlZCBod19rZXlfaWR4Iik7CiAJd2Z4X2ZyZWVfa2V5KHd2aWYtPndkZXYsIGtl eS0+aHdfa2V5X2lkeCk7Ci0JcmV0dXJuIGhpZl9yZW1vdmVfa2V5KHd2aWYtPndkZXYsIGtleS0+ aHdfa2V5X2lkeCk7CisJcmV0dXJuIHdmeF9oaWZfcmVtb3ZlX2tleSh3dmlmLT53ZGV2LCBrZXkt Pmh3X2tleV9pZHgpOwogfQogCiBpbnQgd2Z4X3NldF9rZXkoc3RydWN0IGllZWU4MDIxMV9odyAq aHcsIGVudW0gc2V0X2tleV9jbWQgY21kLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dm eC9tYWluLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L21haW4uYwppbmRleCBkZGM5NWVhMTZiNmQu LmFiYzFhNmQ0MzMwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9tYWluLmMKKysr IGIvZHJpdmVycy9zdGFnaW5nL3dmeC9tYWluLmMKQEAgLTIwMSw4ICsyMDEsOCBAQCBpbnQgd2Z4 X3NlbmRfcGRzKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1OCAqYnVmLCBzaXplX3QgbGVuKQogCQkJ YnVmW2ldID0gMDsKIAkJCWRldl9kYmcod2Rldi0+ZGV2LCAic2VuZCBQRFMgJyVzfSdcbiIsIGJ1 ZiArIHN0YXJ0KTsKIAkJCWJ1ZltpXSA9ICd9JzsKLQkJCXJldCA9IGhpZl9jb25maWd1cmF0aW9u KHdkZXYsIGJ1ZiArIHN0YXJ0LAotCQkJCQkJaSAtIHN0YXJ0ICsgMSk7CisJCQlyZXQgPSB3Znhf aGlmX2NvbmZpZ3VyYXRpb24od2RldiwgYnVmICsgc3RhcnQsCisJCQkJCQkgICAgaSAtIHN0YXJ0 ICsgMSk7CiAJCQlpZiAocmV0ID4gMCkgewogCQkJCWRldl9lcnIod2Rldi0+ZGV2LCAiUERTIGJ5 dGVzICVkIHRvICVkOiBpbnZhbGlkIGRhdGEgKHVuc3VwcG9ydGVkIG9wdGlvbnM/KVxuIiwKIAkJ CQkJc3RhcnQsIGkpOwpAQCAtNDE4LDcgKzQxOCw3IEBAIGludCB3ZnhfcHJvYmUoc3RydWN0IHdm eF9kZXYgKndkZXYpCiAJaWYgKGVycikKIAkJZ290byBlcnIwOwogCi0JZXJyID0gaGlmX3VzZV9t dWx0aV90eF9jb25mKHdkZXYsIHRydWUpOworCWVyciA9IHdmeF9oaWZfdXNlX211bHRpX3R4X2Nv bmYod2RldiwgdHJ1ZSk7CiAJaWYgKGVycikKIAkJZGV2X2Vycih3ZGV2LT5kZXYsICJtaXNjb25m aWd1cmVkIElSUT9cbiIpOwogCkBAIC00MjksOSArNDI5LDkgQEAgaW50IHdmeF9wcm9iZShzdHJ1 Y3Qgd2Z4X2RldiAqd2RldikKIAkJCXdkZXYtPnBkYXRhLmZpbGVfcGRzKTsKIAkJZ3Bpb2Rfc2V0 X3ZhbHVlX2NhbnNsZWVwKHdkZXYtPnBkYXRhLmdwaW9fd2FrZXVwLCAxKTsKIAkJY29udHJvbF9y ZWdfd3JpdGUod2RldiwgMCk7Ci0JCWhpZl9zZXRfb3BlcmF0aW9uYWxfbW9kZSh3ZGV2LCBISUZf T1BfUE9XRVJfTU9ERV9RVUlFU0NFTlQpOworCQl3ZnhfaGlmX3NldF9vcGVyYXRpb25hbF9tb2Rl KHdkZXYsIEhJRl9PUF9QT1dFUl9NT0RFX1FVSUVTQ0VOVCk7CiAJfSBlbHNlIHsKLQkJaGlmX3Nl dF9vcGVyYXRpb25hbF9tb2RlKHdkZXYsIEhJRl9PUF9QT1dFUl9NT0RFX0RPWkUpOworCQl3Znhf aGlmX3NldF9vcGVyYXRpb25hbF9tb2RlKHdkZXYsIEhJRl9PUF9QT1dFUl9NT0RFX0RPWkUpOwog CX0KIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdkZXYtPmFkZHJlc3Nlcyk7IGkrKykg ewpAQCAtNDc4LDcgKzQ3OCw3IEBAIGludCB3ZnhfcHJvYmUoc3RydWN0IHdmeF9kZXYgKndkZXYp CiB2b2lkIHdmeF9yZWxlYXNlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQogewogCWllZWU4MDIxMV91 bnJlZ2lzdGVyX2h3KHdkZXYtPmh3KTsKLQloaWZfc2h1dGRvd24od2Rldik7CisJd2Z4X2hpZl9z aHV0ZG93bih3ZGV2KTsKIAl3ZGV2LT5od2J1c19vcHMtPmlycV91bnN1YnNjcmliZSh3ZGV2LT5o d2J1c19wcml2KTsKIAl3ZnhfYmhfdW5yZWdpc3Rlcih3ZGV2KTsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy93Zngvc2Nhbi5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9zY2FuLmMKaW5k ZXggYTFmZDBmODUwNDgxLi5mNjFjNmIyZGIzNTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy93Zngvc2Nhbi5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc2Nhbi5jCkBAIC0zMyw3ICsz Myw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX3Byb2JlX3RtcGwoc3RydWN0IHdmeF92aWYgKnd2aWYs CiAJCXJldHVybiAtRU5PTUVNOwogCiAJc2tiX3B1dF9kYXRhKHNrYiwgcmVxLT5pZSwgcmVxLT5p ZV9sZW4pOwotCWhpZl9zZXRfdGVtcGxhdGVfZnJhbWUod3ZpZiwgc2tiLCBISUZfVE1QTFRfUFJC UkVRLCAwKTsKKwl3ZnhfaGlmX3NldF90ZW1wbGF0ZV9mcmFtZSh3dmlmLCBza2IsIEhJRl9UTVBM VF9QUkJSRVEsIDApOwogCWRldl9rZnJlZV9za2Ioc2tiKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTU2 LDE0ICs1NiwxNCBAQCBzdGF0aWMgaW50IHNlbmRfc2Nhbl9yZXEoc3RydWN0IHdmeF92aWYgKnd2 aWYsCiAJd2Z4X3R4X2xvY2tfZmx1c2god3ZpZi0+d2Rldik7CiAJd3ZpZi0+c2Nhbl9hYm9ydCA9 IGZhbHNlOwogCXJlaW5pdF9jb21wbGV0aW9uKCZ3dmlmLT5zY2FuX2NvbXBsZXRlKTsKLQlyZXQg PSBoaWZfc2Nhbih3dmlmLCByZXEsIHN0YXJ0X2lkeCwgaSAtIHN0YXJ0X2lkeCk7CisJcmV0ID0g d2Z4X2hpZl9zY2FuKHd2aWYsIHJlcSwgc3RhcnRfaWR4LCBpIC0gc3RhcnRfaWR4KTsKIAlpZiAo cmV0KSB7CiAJCXdmeF90eF91bmxvY2sod3ZpZi0+d2Rldik7CiAJCXJldHVybiAtRUlPOwogCX0K IAlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJnd2aWYtPnNjYW5fY29tcGxldGUs IDEgKiBIWik7CiAJaWYgKCFyZXQpIHsKLQkJaGlmX3N0b3Bfc2Nhbih3dmlmKTsKKwkJd2Z4X2hp Zl9zdG9wX3NjYW4od3ZpZik7CiAJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgm d3ZpZi0+c2Nhbl9jb21wbGV0ZSwgMSAqIEhaKTsKIAkJZGV2X2RiZyh3dmlmLT53ZGV2LT5kZXYs ICJzY2FuIHRpbWVvdXQgKCVkIGNoYW5uZWxzIGRvbmUpXG4iLAogCQkJd3ZpZi0+c2Nhbl9uYl9j aGFuX2RvbmUpOwpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgaW50IHNlbmRfc2Nhbl9yZXEoc3Ry dWN0IHdmeF92aWYgKnd2aWYsCiAJCXJldCA9IHd2aWYtPnNjYW5fbmJfY2hhbl9kb25lOwogCX0K IAlpZiAocmVxLT5jaGFubmVsc1tzdGFydF9pZHhdLT5tYXhfcG93ZXIgIT0gd3ZpZi0+dmlmLT5i c3NfY29uZi50eHBvd2VyKQotCQloaWZfc2V0X291dHB1dF9wb3dlcih3dmlmLCB3dmlmLT52aWYt PmJzc19jb25mLnR4cG93ZXIpOworCQl3ZnhfaGlmX3NldF9vdXRwdXRfcG93ZXIod3ZpZiwgd3Zp Zi0+dmlmLT5ic3NfY29uZi50eHBvd2VyKTsKIAl3ZnhfdHhfdW5sb2NrKHd2aWYtPndkZXYpOwog CXJldHVybiByZXQ7CiB9CkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCB3ZnhfY2FuY2VsX2h3X3Nj YW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpCiAJ c3RydWN0IHdmeF92aWYgKnd2aWYgPSAoc3RydWN0IHdmeF92aWYgKil2aWYtPmRydl9wcml2Owog CiAJd3ZpZi0+c2Nhbl9hYm9ydCA9IHRydWU7Ci0JaGlmX3N0b3Bfc2Nhbih3dmlmKTsKKwl3Znhf aGlmX3N0b3Bfc2Nhbih3dmlmKTsKIH0KIAogdm9pZCB3Znhfc2Nhbl9jb21wbGV0ZShzdHJ1Y3Qg d2Z4X3ZpZiAqd3ZpZiwgaW50IG5iX2NoYW5fZG9uZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy93Zngvc3RhLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5jCmluZGV4IDIzYzA0MjVl MzkyOS4uZDM4NGYyZGYzMjljIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5j CisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmMKQEAgLTg5LDEwICs4OSwxMiBAQCBzdGF0 aWMgdm9pZCB3ZnhfZmlsdGVyX2JlYWNvbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgYm9vbCBmaWx0 ZXJfYmVhY29uKQogCX07CiAKIAlpZiAoIWZpbHRlcl9iZWFjb24pIHsKLQkJaGlmX2JlYWNvbl9m aWx0ZXJfY29udHJvbCh3dmlmLCAwLCAxKTsKKwkJd2Z4X2hpZl9iZWFjb25fZmlsdGVyX2NvbnRy b2wod3ZpZiwgMCwgMSk7CiAJfSBlbHNlIHsKLQkJaGlmX3NldF9iZWFjb25fZmlsdGVyX3RhYmxl KHd2aWYsIEFSUkFZX1NJWkUoZmlsdGVyX2llcyksIGZpbHRlcl9pZXMpOwotCQloaWZfYmVhY29u X2ZpbHRlcl9jb250cm9sKHd2aWYsIEhJRl9CRUFDT05fRklMVEVSX0VOQUJMRSwgMCk7CisJCXdm eF9oaWZfc2V0X2JlYWNvbl9maWx0ZXJfdGFibGUod3ZpZiwgQVJSQVlfU0laRShmaWx0ZXJfaWVz KSwKKwkJCQkJCWZpbHRlcl9pZXMpOworCQl3ZnhfaGlmX2JlYWNvbl9maWx0ZXJfY29udHJvbCh3 dmlmLAorCQkJCQkgICAgICBISUZfQkVBQ09OX0ZJTFRFUl9FTkFCTEUsIDApOwogCX0KIH0KIApA QCAtMTQzLDcgKzE0NSw3IEBAIHZvaWQgd2Z4X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4 MDIxMV9odyAqaHcsIHVuc2lnbmVkIGludCBjaGFuZ2VkX2ZsYWdzLAogCQkJZmlsdGVyX3ByYnJl cSA9IGZhbHNlOwogCQllbHNlCiAJCQlmaWx0ZXJfcHJicmVxID0gdHJ1ZTsKLQkJaGlmX3NldF9y eF9maWx0ZXIod3ZpZiwgZmlsdGVyX2Jzc2lkLCBmaWx0ZXJfcHJicmVxKTsKKwkJd2Z4X2hpZl9z ZXRfcnhfZmlsdGVyKHd2aWYsIGZpbHRlcl9ic3NpZCwgZmlsdGVyX3ByYnJlcSk7CiAKIAkJbXV0 ZXhfdW5sb2NrKCZ3dmlmLT5zY2FuX2xvY2spOwogCX0KQEAgLTIxMCw3ICsyMTIsNyBAQCBpbnQg d2Z4X3VwZGF0ZV9wbShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKIAkJCQkJIFRVX1RPX0pJRkZJRVMo NTEyKSkpCiAJCWRldl93YXJuKHd2aWYtPndkZXYtPmRldiwKIAkJCSAidGltZW91dCB3aGlsZSB3 YWl0aW5nIG9mIHNldF9wbV9tb2RlX2NvbXBsZXRlXG4iKTsKLQlyZXR1cm4gaGlmX3NldF9wbSh3 dmlmLCBwcywgcHNfdGltZW91dCk7CisJcmV0dXJuIHdmeF9oaWZfc2V0X3BtKHd2aWYsIHBzLCBw c190aW1lb3V0KTsKIH0KIAogaW50IHdmeF9jb25mX3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3 LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLApAQCAtMjI0LDEwICsyMjYsMTAgQEAgaW50IHdm eF9jb25mX3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAq dmlmLAogCiAJbXV0ZXhfbG9jaygmd2Rldi0+Y29uZl9tdXRleCk7CiAJYXNzaWduX2JpdChxdWV1 ZSwgJnd2aWYtPnVhcHNkX21hc2ssIHBhcmFtcy0+dWFwc2QpOwotCWhpZl9zZXRfZWRjYV9xdWV1 ZV9wYXJhbXMod3ZpZiwgcXVldWUsIHBhcmFtcyk7CisJd2Z4X2hpZl9zZXRfZWRjYV9xdWV1ZV9w YXJhbXMod3ZpZiwgcXVldWUsIHBhcmFtcyk7CiAJaWYgKHd2aWYtPnZpZi0+dHlwZSA9PSBOTDgw MjExX0lGVFlQRV9TVEFUSU9OICYmCiAJICAgIG9sZF91YXBzZCAhPSB3dmlmLT51YXBzZF9tYXNr KSB7Ci0JCWhpZl9zZXRfdWFwc2RfaW5mbyh3dmlmLCB3dmlmLT51YXBzZF9tYXNrKTsKKwkJd2Z4 X2hpZl9zZXRfdWFwc2RfaW5mbyh3dmlmLCB3dmlmLT51YXBzZF9tYXNrKTsKIAkJd2Z4X3VwZGF0 ZV9wbSh3dmlmKTsKIAl9CiAJbXV0ZXhfdW5sb2NrKCZ3ZGV2LT5jb25mX211dGV4KTsKQEAgLTI0 MCw3ICsyNDIsNyBAQCBpbnQgd2Z4X3NldF9ydHNfdGhyZXNob2xkKHN0cnVjdCBpZWVlODAyMTFf aHcgKmh3LCB1MzIgdmFsdWUpCiAJc3RydWN0IHdmeF92aWYgKnd2aWYgPSBOVUxMOwogCiAJd2hp bGUgKCh3dmlmID0gd3ZpZl9pdGVyYXRlKHdkZXYsIHd2aWYpKSAhPSBOVUxMKQotCQloaWZfcnRz X3RocmVzaG9sZCh3dmlmLCB2YWx1ZSk7CisJCXdmeF9oaWZfcnRzX3RocmVzaG9sZCh3dmlmLCB2 YWx1ZSk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI3Niw3ICsyNzgsNyBAQCB2b2lkIHdmeF9zZXRf ZGVmYXVsdF91bmljYXN0X2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIHsKIAlzdHJ1Y3Qg d2Z4X3ZpZiAqd3ZpZiA9IChzdHJ1Y3Qgd2Z4X3ZpZiAqKXZpZi0+ZHJ2X3ByaXY7CiAKLQloaWZf d2VwX2RlZmF1bHRfa2V5X2lkKHd2aWYsIGlkeCk7CisJd2Z4X2hpZl93ZXBfZGVmYXVsdF9rZXlf aWQod3ZpZiwgaWR4KTsKIH0KIAogdm9pZCB3ZnhfcmVzZXQoc3RydWN0IHdmeF92aWYgKnd2aWYp CkBAIC0yODQsMTAgKzI4NiwxMCBAQCB2b2lkIHdmeF9yZXNldChzdHJ1Y3Qgd2Z4X3ZpZiAqd3Zp ZikKIAlzdHJ1Y3Qgd2Z4X2RldiAqd2RldiA9IHd2aWYtPndkZXY7CiAKIAl3ZnhfdHhfbG9ja19m bHVzaCh3ZGV2KTsKLQloaWZfcmVzZXQod3ZpZiwgZmFsc2UpOworCXdmeF9oaWZfcmVzZXQod3Zp ZiwgZmFsc2UpOwogCXdmeF90eF9wb2xpY3lfaW5pdCh3dmlmKTsKIAlpZiAod3ZpZl9jb3VudCh3 ZGV2KSA8PSAxKQotCQloaWZfc2V0X2Jsb2NrX2Fja19wb2xpY3kod3ZpZiwgMHhGRiwgMHhGRik7 CisJCXdmeF9oaWZfc2V0X2Jsb2NrX2Fja19wb2xpY3kod3ZpZiwgMHhGRiwgMHhGRik7CiAJd2Z4 X3R4X3VubG9jayh3ZGV2KTsKIAl3dmlmLT5qb2luX2luX3Byb2dyZXNzID0gZmFsc2U7CiAJY2Fu Y2VsX2RlbGF5ZWRfd29ya19zeW5jKCZ3dmlmLT5iZWFjb25fbG9zc193b3JrKTsKQEAgLTMwNSw3 ICszMDcsNyBAQCBpbnQgd2Z4X3N0YV9hZGQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVj dCBpZWVlODAyMTFfdmlmICp2aWYsCiAJc3RhX3ByaXYtPnZpZl9pZCA9IHd2aWYtPmlkOwogCiAJ aWYgKHZpZi0+dHlwZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKQotCQloaWZfc2V0X21mcCh3 dmlmLCBzdGEtPm1mcCwgc3RhLT5tZnApOworCQl3ZnhfaGlmX3NldF9tZnAod3ZpZiwgc3RhLT5t ZnAsIHN0YS0+bWZwKTsKIAogCS8qIEluIHN0YXRpb24gbW9kZSwgdGhlIGZpcm13YXJlIGludGVy cHJldHMgbmV3IGxpbmstaWQgYXMgYSBURExTIHBlZXIgKi8KIAlpZiAodmlmLT50eXBlID09IE5M ODAyMTFfSUZUWVBFX1NUQVRJT04gJiYgIXN0YS0+dGRscykKQEAgLTMxNCw3ICszMTYsNyBAQCBp bnQgd2Z4X3N0YV9hZGQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFf dmlmICp2aWYsCiAJd3ZpZi0+bGlua19pZF9tYXAgfD0gQklUKHN0YV9wcml2LT5saW5rX2lkKTsK IAlXQVJOX09OKCFzdGFfcHJpdi0+bGlua19pZCk7CiAJV0FSTl9PTihzdGFfcHJpdi0+bGlua19p ZCA+PSBISUZfTElOS19JRF9NQVgpOwotCWhpZl9tYXBfbGluayh3dmlmLCBmYWxzZSwgc3RhLT5h ZGRyLCBzdGFfcHJpdi0+bGlua19pZCwgc3RhLT5tZnApOworCXdmeF9oaWZfbWFwX2xpbmsod3Zp ZiwgZmFsc2UsIHN0YS0+YWRkciwgc3RhX3ByaXYtPmxpbmtfaWQsIHN0YS0+bWZwKTsKIAogCXJl dHVybiAwOwogfQpAQCAtMzI5LDcgKzMzMSw3IEBAIGludCB3Znhfc3RhX3JlbW92ZShzdHJ1Y3Qg aWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwKIAlpZiAoIXN0YV9w cml2LT5saW5rX2lkKQogCQlyZXR1cm4gMDsKIAkvKiBGSVhNRSBhZGQgYSBtdXRleD8gKi8KLQlo aWZfbWFwX2xpbmsod3ZpZiwgdHJ1ZSwgc3RhLT5hZGRyLCBzdGFfcHJpdi0+bGlua19pZCwgZmFs c2UpOworCXdmeF9oaWZfbWFwX2xpbmsod3ZpZiwgdHJ1ZSwgc3RhLT5hZGRyLCBzdGFfcHJpdi0+ bGlua19pZCwgZmFsc2UpOwogCXd2aWYtPmxpbmtfaWRfbWFwICY9IH5CSVQoc3RhX3ByaXYtPmxp bmtfaWQpOwogCXJldHVybiAwOwogfQpAQCAtMzQxLDE1ICszNDMsMTUgQEAgc3RhdGljIGludCB3 ZnhfdXBsb2FkX2FwX3RlbXBsYXRlcyhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKIAlza2IgPSBpZWVl ODAyMTFfYmVhY29uX2dldCh3dmlmLT53ZGV2LT5odywgd3ZpZi0+dmlmKTsKIAlpZiAoIXNrYikK IAkJcmV0dXJuIC1FTk9NRU07Ci0JaGlmX3NldF90ZW1wbGF0ZV9mcmFtZSh3dmlmLCBza2IsIEhJ Rl9UTVBMVF9CQ04sCi0JCQkgICAgICAgQVBJX1JBVEVfSU5ERVhfQl8xTUJQUyk7CisJd2Z4X2hp Zl9zZXRfdGVtcGxhdGVfZnJhbWUod3ZpZiwgc2tiLCBISUZfVE1QTFRfQkNOLAorCQkJCSAgIEFQ SV9SQVRFX0lOREVYX0JfMU1CUFMpOwogCWRldl9rZnJlZV9za2Ioc2tiKTsKIAogCXNrYiA9IGll ZWU4MDIxMV9wcm9iZXJlc3BfZ2V0KHd2aWYtPndkZXYtPmh3LCB3dmlmLT52aWYpOwogCWlmICgh c2tiKQogCQlyZXR1cm4gLUVOT01FTTsKLQloaWZfc2V0X3RlbXBsYXRlX2ZyYW1lKHd2aWYsIHNr YiwgSElGX1RNUExUX1BSQlJFUywKLQkJCSAgICAgICBBUElfUkFURV9JTkRFWF9CXzFNQlBTKTsK Kwl3ZnhfaGlmX3NldF90ZW1wbGF0ZV9mcmFtZSh3dmlmLCBza2IsIEhJRl9UTVBMVF9QUkJSRVMs CisJCQkJICAgQVBJX1JBVEVfSU5ERVhfQl8xTUJQUyk7CiAJZGV2X2tmcmVlX3NrYihza2IpOwog CXJldHVybiAwOwogfQpAQCAtMzc1LDcgKzM3Nyw3IEBAIHN0YXRpYyB2b2lkIHdmeF9zZXRfbWZw X2FwKHN0cnVjdCB3ZnhfdmlmICp3dmlmKQogCQlwdHIgKz0gMSArIGFrbV9zdWl0ZV9zaXplICog KnB0cjsKIAkJaWYgKFdBUk5fT04ocHRyID4gKHUxNiAqKXNrYl90YWlsX3BvaW50ZXIoc2tiKSkp CiAJCQlyZXR1cm47Ci0JCWhpZl9zZXRfbWZwKHd2aWYsICpwdHIgJiBCSVQoNyksICpwdHIgJiBC SVQoNikpOworCQl3ZnhfaGlmX3NldF9tZnAod3ZpZiwgKnB0ciAmIEJJVCg3KSwgKnB0ciAmIEJJ VCg2KSk7CiAJfQogfQogCkBAIC0zOTAsNyArMzkyLDcgQEAgaW50IHdmeF9zdGFydF9hcChzdHJ1 Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZikKIAkJd2Z4X3Vw ZGF0ZV9wbSh3dmlmKTsKIAl3dmlmID0gKHN0cnVjdCB3ZnhfdmlmICopdmlmLT5kcnZfcHJpdjsK IAl3ZnhfdXBsb2FkX2FwX3RlbXBsYXRlcyh3dmlmKTsKLQlyZXQgPSBoaWZfc3RhcnQod3ZpZiwg JnZpZi0+YnNzX2NvbmYsIHd2aWYtPmNoYW5uZWwpOworCXJldCA9IHdmeF9oaWZfc3RhcnQod3Zp ZiwgJnZpZi0+YnNzX2NvbmYsIHd2aWYtPmNoYW5uZWwpOwogCWlmIChyZXQgPiAwKQogCQlyZXR1 cm4gLUVJTzsKIAl3Znhfc2V0X21mcF9hcCh3dmlmKTsKQEAgLTQzNyw3ICs0MzksNyBAQCBzdGF0 aWMgdm9pZCB3Znhfam9pbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKIAljZmc4MDIxMV9wdXRfYnNz KHd2aWYtPndkZXYtPmh3LT53aXBoeSwgYnNzKTsKIAogCXd2aWYtPmpvaW5faW5fcHJvZ3Jlc3Mg PSB0cnVlOwotCXJldCA9IGhpZl9qb2luKHd2aWYsIGNvbmYsIHd2aWYtPmNoYW5uZWwsIHNzaWQs IHNzaWRsZW4pOworCXJldCA9IHdmeF9oaWZfam9pbih3dmlmLCBjb25mLCB3dmlmLT5jaGFubmVs LCBzc2lkLCBzc2lkbGVuKTsKIAlpZiAocmV0KSB7CiAJCWllZWU4MDIxMV9jb25uZWN0aW9uX2xv c3Mod3ZpZi0+dmlmKTsKIAkJd2Z4X3Jlc2V0KHd2aWYpOwpAQCAtNDcwLDE0ICs0NzIsMTQgQEAg c3RhdGljIHZvaWQgd2Z4X2pvaW5fZmluYWxpemUoc3RydWN0IHdmeF92aWYgKnd2aWYsCiAJcmN1 X3JlYWRfdW5sb2NrKCk7CiAKIAl3dmlmLT5qb2luX2luX3Byb2dyZXNzID0gZmFsc2U7Ci0JaGlm X3NldF9hc3NvY2lhdGlvbl9tb2RlKHd2aWYsIGFtcGR1X2RlbnNpdHksIGdyZWVuZmllbGQsCi0J CQkJIGluZm8tPnVzZV9zaG9ydF9wcmVhbWJsZSk7Ci0JaGlmX2tlZXBfYWxpdmVfcGVyaW9kKHd2 aWYsIDApOworCXdmeF9oaWZfc2V0X2Fzc29jaWF0aW9uX21vZGUod3ZpZiwgYW1wZHVfZGVuc2l0 eSwgZ3JlZW5maWVsZCwKKwkJCQkgICAgIGluZm8tPnVzZV9zaG9ydF9wcmVhbWJsZSk7CisJd2Z4 X2hpZl9rZWVwX2FsaXZlX3BlcmlvZCh3dmlmLCAwKTsKIAkvKiBiZWFjb25fbG9zc19jb3VudCBp cyBkZWZpbmVkIHRvIDcgaW4gbmV0L21hYzgwMjExL21sbWUuYy4gTGV0J3MgdXNlCiAJICogdGhl IHNhbWUgdmFsdWUuCiAJICovCi0JaGlmX3NldF9ic3NfcGFyYW1zKHd2aWYsIGluZm8tPmFpZCwg Nyk7Ci0JaGlmX3NldF9iZWFjb25fd2FrZXVwX3BlcmlvZCh3dmlmLCAxLCAxKTsKKwl3ZnhfaGlm X3NldF9ic3NfcGFyYW1zKHd2aWYsIGluZm8tPmFpZCwgNyk7CisJd2Z4X2hpZl9zZXRfYmVhY29u X3dha2V1cF9wZXJpb2Qod3ZpZiwgMSwgMSk7CiAJd2Z4X3VwZGF0ZV9wbSh3dmlmKTsKIH0KIApA QCAtNTA4LDcgKzUxMCw3IEBAIHN0YXRpYyB2b2lkIHdmeF9lbmFibGVfYmVhY29uKHN0cnVjdCB3 ZnhfdmlmICp3dmlmLCBib29sIGVuYWJsZSkKIAkJd3ZpZi0+YWZ0ZXJfZHRpbV90eF9hbGxvd2Vk ID0gdHJ1ZTsKIAkJd2Z4X2JoX3JlcXVlc3RfdHgod3ZpZi0+d2Rldik7CiAJfQotCWhpZl9iZWFj b25fdHJhbnNtaXQod3ZpZiwgZW5hYmxlKTsKKwl3ZnhfaGlmX2JlYWNvbl90cmFuc21pdCh3dmlm LCBlbmFibGUpOwogfQogCiB2b2lkIHdmeF9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLApAQCAtNTQxLDggKzU0Myw4IEBA IHZvaWQgd2Z4X2Jzc19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVj dCBpZWVlODAyMTFfdmlmICp2aWYsCiAJCWlmICh2aWYtPnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVf U1RBVElPTikKIAkJCWRldl93YXJuKHdkZXYtPmRldiwgIiVzOiBtaXN1bmRlcnN0b29kIGNoYW5n ZTogQkVBQ09OX0lORk9cbiIsCiAJCQkJIF9fZnVuY19fKTsKLQkJaGlmX3NldF9iZWFjb25fd2Fr ZXVwX3BlcmlvZCh3dmlmLCBpbmZvLT5kdGltX3BlcmlvZCwKLQkJCQkJICAgICBpbmZvLT5kdGlt X3BlcmlvZCk7CisJCXdmeF9oaWZfc2V0X2JlYWNvbl93YWtldXBfcGVyaW9kKHd2aWYsIGluZm8t PmR0aW1fcGVyaW9kLAorCQkJCQkJIGluZm8tPmR0aW1fcGVyaW9kKTsKIAkJLyogV2UgdGVtcG9y YXJ5IGZvcndhcmRlZCBiZWFjb24gZm9yIGpvaW4gcHJvY2Vzcy4gSXQgaXMgbm93IG5vCiAJCSAq IG1vcmUgbmVjZXNzYXJ5LgogCQkgKi8KQEAgLTU1Nyw3ICs1NTksNyBAQCB2b2lkIHdmeF9ic3Nf aW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3Zp ZiAqdmlmLAogCQkJCWFycF9hZGRyID0gTlVMTDsKIAkJCWlmIChpID49IGluZm8tPmFycF9hZGRy X2NudCkKIAkJCQlhcnBfYWRkciA9IE5VTEw7Ci0JCQloaWZfc2V0X2FycF9pcHY0X2ZpbHRlcih3 dmlmLCBpLCBhcnBfYWRkcik7CisJCQl3ZnhfaGlmX3NldF9hcnBfaXB2NF9maWx0ZXIod3ZpZiwg aSwgYXJwX2FkZHIpOwogCQl9CiAJfQogCkBAIC01NjksMjEgKzU3MSwyMSBAQCB2b2lkIHdmeF9i c3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjEx X3ZpZiAqdmlmLAogCQl3ZnhfZW5hYmxlX2JlYWNvbih3dmlmLCBpbmZvLT5lbmFibGVfYmVhY29u KTsKIAogCWlmIChjaGFuZ2VkICYgQlNTX0NIQU5HRURfS0VFUF9BTElWRSkKLQkJaGlmX2tlZXBf YWxpdmVfcGVyaW9kKHd2aWYsIGluZm8tPm1heF9pZGxlX3BlcmlvZCAqCi0JCQkJCSAgICBVU0VD X1BFUl9UVSAvIFVTRUNfUEVSX01TRUMpOworCQl3ZnhfaGlmX2tlZXBfYWxpdmVfcGVyaW9kKHd2 aWYsIGluZm8tPm1heF9pZGxlX3BlcmlvZCAqCisJCQkJCQlVU0VDX1BFUl9UVSAvIFVTRUNfUEVS X01TRUMpOwogCiAJaWYgKGNoYW5nZWQgJiBCU1NfQ0hBTkdFRF9FUlBfQ1RTX1BST1QpCi0JCWhp Zl9lcnBfdXNlX3Byb3RlY3Rpb24od3ZpZiwgaW5mby0+dXNlX2N0c19wcm90KTsKKwkJd2Z4X2hp Zl9lcnBfdXNlX3Byb3RlY3Rpb24od3ZpZiwgaW5mby0+dXNlX2N0c19wcm90KTsKIAogCWlmIChj aGFuZ2VkICYgQlNTX0NIQU5HRURfRVJQX1NMT1QpCi0JCWhpZl9zbG90X3RpbWUod3ZpZiwgaW5m by0+dXNlX3Nob3J0X3Nsb3QgPyA5IDogMjApOworCQl3ZnhfaGlmX3Nsb3RfdGltZSh3dmlmLCBp bmZvLT51c2Vfc2hvcnRfc2xvdCA/IDkgOiAyMCk7CiAKIAlpZiAoY2hhbmdlZCAmIEJTU19DSEFO R0VEX0NRTSkKLQkJaGlmX3NldF9yY3BpX3Jzc2lfdGhyZXNob2xkKHd2aWYsIGluZm8tPmNxbV9y c3NpX3Rob2xkLAotCQkJCQkgICAgaW5mby0+Y3FtX3Jzc2lfaHlzdCk7CisJCXdmeF9oaWZfc2V0 X3JjcGlfcnNzaV90aHJlc2hvbGQod3ZpZiwgaW5mby0+Y3FtX3Jzc2lfdGhvbGQsCisJCQkJCQlp bmZvLT5jcW1fcnNzaV9oeXN0KTsKIAogCWlmIChjaGFuZ2VkICYgQlNTX0NIQU5HRURfVFhQT1dF UikKLQkJaGlmX3NldF9vdXRwdXRfcG93ZXIod3ZpZiwgaW5mby0+dHhwb3dlcik7CisJCXdmeF9o aWZfc2V0X291dHB1dF9wb3dlcih3dmlmLCBpbmZvLT50eHBvd2VyKTsKIAogCWlmIChjaGFuZ2Vk ICYgQlNTX0NIQU5HRURfUFMpCiAJCXdmeF91cGRhdGVfcG0od3ZpZik7CkBAIC02MTQsNyArNjE2 LDcgQEAgc3RhdGljIGludCB3ZnhfdXBkYXRlX3RpbShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKIAkJ CXRpbV9wdHJbNF0gJj0gfjE7CiAJfQogCi0JaGlmX3VwZGF0ZV9pZV9iZWFjb24od3ZpZiwgdGlt X3B0ciwgdGltX2xlbmd0aCk7CisJd2Z4X2hpZl91cGRhdGVfaWVfYmVhY29uKHd2aWYsIHRpbV9w dHIsIHRpbV9sZW5ndGgpOwogCWRldl9rZnJlZV9za2Ioc2tiKTsKIAogCXJldHVybiAwOwpAQCAt Nzc0LDcgKzc3Niw3IEBAIGludCB3ZnhfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3 ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZikKIAl9CiAJV0FSTihpID09IEFSUkFZX1NJ WkUod2Rldi0+dmlmKSwgInRyeSB0byBpbnN0YW50aWF0ZSBtb3JlIHZpZiB0aGFuIHN1cHBvcnRl ZCIpOwogCi0JaGlmX3NldF9tYWNhZGRyKHd2aWYsIHZpZi0+YWRkcik7CisJd2Z4X2hpZl9zZXRf bWFjYWRkcih3dmlmLCB2aWYtPmFkZHIpOwogCiAJbXV0ZXhfdW5sb2NrKCZ3ZGV2LT5jb25mX211 dGV4KTsKIApAQCAtNzgyLDkgKzc4NCw5IEBAIGludCB3ZnhfYWRkX2ludGVyZmFjZShzdHJ1Y3Qg aWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZikKIAl3aGlsZSAoKHd2 aWYgPSB3dmlmX2l0ZXJhdGUod2Rldiwgd3ZpZikpICE9IE5VTEwpIHsKIAkJLyogQ29tYm8gbW9k ZSBkb2VzIG5vdCBzdXBwb3J0IEJsb2NrIEFja3MuIFdlIGNhbiByZS1lbmFibGUgdGhlbSAqLwog CQlpZiAod3ZpZl9jb3VudCh3ZGV2KSA9PSAxKQotCQkJaGlmX3NldF9ibG9ja19hY2tfcG9saWN5 KHd2aWYsIDB4RkYsIDB4RkYpOworCQkJd2Z4X2hpZl9zZXRfYmxvY2tfYWNrX3BvbGljeSh3dmlm LCAweEZGLCAweEZGKTsKIAkJZWxzZQotCQkJaGlmX3NldF9ibG9ja19hY2tfcG9saWN5KHd2aWYs IDB4MDAsIDB4MDApOworCQkJd2Z4X2hpZl9zZXRfYmxvY2tfYWNrX3BvbGljeSh3dmlmLCAweDAw LCAweDAwKTsKIAl9CiAJcmV0dXJuIHJldDsKIH0KQEAgLTgwMCw4ICs4MDIsOCBAQCB2b2lkIHdm eF9yZW1vdmVfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgw MjExX3ZpZiAqdmlmKQogCW11dGV4X2xvY2soJndkZXYtPmNvbmZfbXV0ZXgpOwogCVdBUk4od3Zp Zi0+bGlua19pZF9tYXAgIT0gMSwgImNvcnJ1cHRlZCBzdGF0ZSIpOwogCi0JaGlmX3Jlc2V0KHd2 aWYsIGZhbHNlKTsKLQloaWZfc2V0X21hY2FkZHIod3ZpZiwgTlVMTCk7CisJd2Z4X2hpZl9yZXNl dCh3dmlmLCBmYWxzZSk7CisJd2Z4X2hpZl9zZXRfbWFjYWRkcih3dmlmLCBOVUxMKTsKIAl3Znhf dHhfcG9saWN5X2luaXQod3ZpZik7CiAKIAljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJnd2aWYt PmJlYWNvbl9sb3NzX3dvcmspOwpAQCAtODE0LDkgKzgxNiw5IEBAIHZvaWQgd2Z4X3JlbW92ZV9p bnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2 aWYpCiAJd2hpbGUgKCh3dmlmID0gd3ZpZl9pdGVyYXRlKHdkZXYsIHd2aWYpKSAhPSBOVUxMKSB7 CiAJCS8qIENvbWJvIG1vZGUgZG9lcyBub3Qgc3VwcG9ydCBCbG9jayBBY2tzLiBXZSBjYW4gcmUt ZW5hYmxlIHRoZW0gKi8KIAkJaWYgKHd2aWZfY291bnQod2RldikgPT0gMSkKLQkJCWhpZl9zZXRf YmxvY2tfYWNrX3BvbGljeSh3dmlmLCAweEZGLCAweEZGKTsKKwkJCXdmeF9oaWZfc2V0X2Jsb2Nr X2Fja19wb2xpY3kod3ZpZiwgMHhGRiwgMHhGRik7CiAJCWVsc2UKLQkJCWhpZl9zZXRfYmxvY2tf YWNrX3BvbGljeSh3dmlmLCAweDAwLCAweDAwKTsKKwkJCXdmeF9oaWZfc2V0X2Jsb2NrX2Fja19w b2xpY3kod3ZpZiwgMHgwMCwgMHgwMCk7CiAJfQogfQogCi0tIAoyLjM0LjEKCg==