Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C88CDC43217 for ; Tue, 11 Jan 2022 17:18:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344319AbiAKRSK (ORCPT ); Tue, 11 Jan 2022 12:18:10 -0500 Received: from mail-co1nam11on2074.outbound.protection.outlook.com ([40.107.220.74]:39233 "EHLO NAM11-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S241871AbiAKRQp (ORCPT ); Tue, 11 Jan 2022 12:16:45 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iLXtbwYlZJidTQJuOCHlq4uujgXKcuRIGphVthcLPZM7reKUSZGQTqKe8lEYY2/bmXBNqmog2c68HOGjtJFDDstP6mQLJC7LLJOFZPbcdVklbfTtoG3uylvM78sWdmgYn0fGqtZutxtgLrfUhrRAKSHC4Qm97vXpUnI55o/MM2if7j4xz8GkM7FRRD2Q7w4S8UNNMs6HEE0aXfrBn5aQyDEt0fYbx016J1qPhnxy3ETSMRCb215gPCFcCpfSvHD7PdD667K9Ixnndp+fbA5IReOlUzKWvXjZKEUT1P3+dJ9zTJkb0N3UbzUdmipzydSEAVZnSBJEr9eal5Aq6frVcg== 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=qoysj/mtAVSNUXQ7KwO2eNZhDpLMvPi23Qvt5OyTevw=; b=nW4OlQQkNN3rWroSCVKqpzFFrvxXmbrQVTHolxW3fhMDDJLxWtyXLxSwWyyzR1b9/fiboCruVHU31EPwUZnqHbHcdwoE20h5wQtd70RB7VQ2Qi3Tp41X+JK/gh1+E+BKcmXKzuyIH8poDLbnjiR+l17KM3OLUkn/GFIoAgNOWGaekY+YVSZhXRp2yNStKE5JyUuiJhOtsgsndVjyW0Yjd/YTkuOVX62n0U+BWwNBntYRu4MaaYPdw2fMZUFgQ6ZmRJnDH0XNEnzk1sx46h2UbU3oJj3ng8BNKHC43tHyst+2fCqYJU+XACvANs4TCjw8Q3JZCrn4b9eKAlQ1eJcG9Q== 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=qoysj/mtAVSNUXQ7KwO2eNZhDpLMvPi23Qvt5OyTevw=; b=mynXS9lbEoX7vhmP7HjxPdjSqYooGhAgMt3OLnnpgPUzoagCZFJUqNCruuA1nGc9NwvaqfuNVgPFYPRzNEozEo2PUznCVfPpyHga8s/voRQ8Y+L10tNGAFf9uF01jgYdwQYEEtos6b+ahcpzrMh5rmoGiw/4K/XmICOLGziFcQU= 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 PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.11; Tue, 11 Jan 2022 17:15:41 +0000 Received: from PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4]) by PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4%6]) with mapi id 15.20.4867.012; Tue, 11 Jan 2022 17:15:41 +0000 From: Jerome Pouiller To: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Kalle Valo Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , "David S . Miller" , devicetree@vger.kernel.org, Rob Herring , linux-mmc@vger.kernel.org, =?UTF-8?q?Pali=20Roh=C3=A1r?= , Ulf Hansson , =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= Subject: [PATCH v9 21/24] wfx: add debug.c/debug.h Date: Tue, 11 Jan 2022 18:14:21 +0100 Message-Id: <20220111171424.862764-22-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220111171424.862764-1-Jerome.Pouiller@silabs.com> References: <20220111171424.862764-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: SN1PR12CA0099.namprd12.prod.outlook.com (2603:10b6:802:21::34) 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: ffb89243-dda4-431e-fb08-08d9d525feac X-MS-TrafficTypeDiagnostic: PH0PR11MB5657:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:989; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p8nqKxg1ecEICMrFWgl14/ieSQff4aAIioeY4uknQWar3dtV0MmVubBOiKW3qCLjlm6Zn86aTh8BhK8JbXJuQlKUc8bmmdfXHUIQkkNbyyEYdGJ2SlqG+0Q0A5SMOGIhU+MZEFiVzcS2Ax2g6esHcEFPqrLp8araD+XtFkejFBLDXLkH9myd8dseVfiujcgG6bCmYNkcNyGGWuyqt00s3+q1Nbnhfl8gDENQp/LV7RXHy+O/BVcTVeHmUQXOAmDFcjvgu8+JANL4oVRW76j1Gz6nLSHFuEpXCIaFT4nSDqDRwY6QiXe59wYL0dxIGDh3nJb/s8eA1dBUDnxpD4jJ0UGp0YkX9DPwehZ7jPLGqguXDnIldGPBblc334oWPFHIfwHbmB/SGg0leQPDJixVqyiqZ8emg5n0XdLZshKUzyViNtLzNED6Hik7mTfdiWuqoXzro48/gIQaKYsNYIGzrXbjhlNoA8beMwqKEetlWe/95QNchvAZNpavqWTCGGKFw6kR3Uy0h+ThCP3LIX7ftsW8XSDa4/vhRWheD20WTInKUGRZVug5080sN+b/J0lGsxbSiL6T5Pur7U7IGLVzrJwdEUS0jCWOMEQI/jdUsqNYRuIwSVGpBR142PnnTMI4fPbXoBERU6amJObRMDWd/Q== 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)(66574015)(86362001)(5660300002)(8936002)(7416002)(6916009)(8676002)(83380400001)(1076003)(6486002)(36756003)(38100700002)(186003)(66946007)(6666004)(2616005)(4326008)(2906002)(316002)(107886003)(66556008)(66476007)(54906003)(6512007)(508600001)(30864003)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cGcyaXp1YmlsR2FsR1ZSeEdvUEExeWozd3Q0N09mWmF4N1VwYnlKYWFCSWFI?= =?utf-8?B?SEZudy9DcWVoUWJDREF4SjFRS0Y3RTg0VUtLZzhUSTV4aTlxWDNEeDNQSnV4?= =?utf-8?B?Vmoxellmd2pyUVpoVkZ5RjEzcU1BZVZhRWtLRy9UN3R6STkyK3B3WGJqRnEr?= =?utf-8?B?bEZlb0tTY2s3ZjNxdDhveEtOQkIvdVczdUFaQWhSampBVS9iZHdxMHpnSk5X?= =?utf-8?B?YnJnL1ExeTN5RjB6WWp0VVNERVpYYytWTjR2RkhKRXR1bk50d3FCSG5yeTlu?= =?utf-8?B?dExMdVNFVGxjelB6M2NuYjNFYVVqZGhKRmp4UTNwcDhNYU8rME9GN1IrMHdv?= =?utf-8?B?b1h6WWE2REVTOENqRGIzOEdOUGJ2YnlFa1I0N09DNGJVeXJMakZHL0NTKyto?= =?utf-8?B?ZVk3dEwweFdHd0JHWWROeHNMYkcvVVJhc2NJdzBBUGpoQWxrK2NJdEJmNlBr?= =?utf-8?B?UlhkTzRTdS9TWGVMVDkzS01NRzM0S3hYem9idjNjQUlCcmR0WEdYVTJadW9I?= =?utf-8?B?dzJkQ3dwQnZlQnVWNmJiUnVUdVNKSmRkNUs2cnNXc0FqMHdBMDhzS1ZMU0Za?= =?utf-8?B?OVNlYWpmMlRqazdtZ0JndDM5RDZMN3JyblJ5ZzdMbFd6alMrcHVseGlYOWd0?= =?utf-8?B?dVVEVFVkS3p2eXQrYSs4cGtlUW01cWVXV09wRHdQOEh1RmVoRTZMS2hMS3Ur?= =?utf-8?B?SXBBaHhrQlFBcDZuc2RTY2EyWXpZUG9udU9Oa0ZnNUtHL1pFZG9yVktkQWZW?= =?utf-8?B?N0RJb3dBb0lObjZuMjFRZTU0VzhoTktubGdFbFRzbFRPb2RyT3EwV0w5b2lD?= =?utf-8?B?eURUaHV1OUo3YXoxdzJ0emh3empsaFlOSmI4TTN3aXZIeDg0eHF3MjRQV3JJ?= =?utf-8?B?Q3dncnVheUlKbG5McDhhZE0xNUt5MUJKVmN4a010NC9qTERYd29hektkck1u?= =?utf-8?B?eXVkaHN1clo4VzhrS1ZmVWxZR3Nha0t3QUNvMk1BV1NRTm5QOFlFSHhvSWk3?= =?utf-8?B?TFJxaTBEak1EWEM0OUZTRStXQjlLUGs3Q0wzSlg4UmsyVFZBamxWcUNGVW9h?= =?utf-8?B?MjZxSE9FU09EaEQyNkkrcnI0SWlib0VUcWlSaUlaMWR2L3RvOWVWRWFsZ09m?= =?utf-8?B?ajR4cjdiajl4OGZFaDExQU84Z2NUTk9EMG5jdFB2SGloSlVmcUlrK3BOdGs1?= =?utf-8?B?VHdoT1N0RGxlN3grMkV2b1dCS0hmZWpqaFd2R0FBOHZLZjVteVJhblVlNzU0?= =?utf-8?B?R2xuazV6WVlDWStKcVByYk1UQUIwVlN5Nzd2Y2FRTUZKSk5hV1RBeTFTVkJr?= =?utf-8?B?dWx5SklQTkRTV1NGNzVQbDdGK2ROYnhsTmtiQXMxUnZrMWFKRU53bUhMVmVa?= =?utf-8?B?UnRHc3F5N0RoK0t5cjlBbHVCSDhnTld2UitVTGtjRUdXOGVIZUxMMVhXQmJD?= =?utf-8?B?M2ltV1psdDNibXFWNXBCa3JXWmpCNzQ3bC85b0cwZlQzeUlnWW9hWHlUMW12?= =?utf-8?B?ME9ETXIyMTVBVmdHcSs4dUhNeXdjZzFrUEZwbXZiYWRYYzF5c3ZPalROVmdt?= =?utf-8?B?NlIyb1Q0WE9YNUhUTlV3K0Rhak9hVVBxNmNETUQ3dk9JM1FGUUtoaU5lWjBJ?= =?utf-8?B?S1orTmZERE1zQzcrTCswM3IyY0xXM2J3Ym5KTDdTZ1JyNXlsNkFTYkkwNzVN?= =?utf-8?B?ZG9sNUdCQ1VjbWhnbyt3Z2VPbXM3ZnQ3VlpqYW51UWk5ZmdTY2NMSVpDbmRR?= =?utf-8?B?cXNmSUpIaW5KRlRpNnNUMitqZHhVTzhJaWhuYUVuQWRSVXU4Q3hCVXNRaVh5?= =?utf-8?B?YzJqSVZ3L25ETFl6dzl0Q3NYTU1ma2VjYXhKeHlTV2ZBeXJZcXVobGo2cnlS?= =?utf-8?B?YnRUQWZTb0pOT01Xb2Z0akJORGw1WnB2blZkTmltV1luaWxwV0JLaCtPSDNh?= =?utf-8?B?S2ZFc29DTUxLYUlkREFHVmFLc2dMc1JSc2VPMGM1cjArSHlsSjJJZ3RvVFpv?= =?utf-8?B?QUNkTVFob21JZVBxdHpHWSs2ckVGYXAvVzNPN2NFMFNZYlNsWTVQdEpyQno0?= =?utf-8?B?R3hjN2tGMElBWVlycitodk9KZXl2b1J3aXRTdUZXakx6MUZ0RHV5NFZNQnVv?= =?utf-8?B?NkJpZ3NyNEdrNnhaVzQ3T3lyYzN2VkNmK0hFME4zVWErdjkzRlE3WmlLYjRX?= =?utf-8?B?UUxIVytaQXdIQTIzSWNnNXdONENIeUZjMmFPQU90bFNLMm1tQzA0cHc2eklE?= =?utf-8?Q?nR7TDBHU3mjSLaDjnAekN8FUJcry72PDmEflxmkSA8=3D?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: ffb89243-dda4-431e-fb08-08d9d525feac X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5657.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 17:15:41.5547 (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: XPRIGg5W4WpNYNs5PlNhlKid+2BNKZGiHBjQWrN/4+PuPvOxIdAsJtOB3aypZxq5j1o5H6QZnNWj1Iw/xEUt7A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5657 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKU2ln bmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29t PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYyB8IDMzMSArKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVi dWcuaCB8ICAxOSArKwogMiBmaWxlcyBjaGFuZ2VkLCAzNTAgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuaAoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmU4MjY1MjA4ZjlhNQotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYwpAQCAtMCwwICsxLDMzMSBAQAor Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorLyoKKyAqIERlYnVnZnMg aW50ZXJmYWNlLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNy0yMDIwLCBTaWxpY29uIExhYm9y YXRvcmllcywgSW5jLgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBTVC1Fcmljc3NvbgorICovCisj aW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+Cisj aW5jbHVkZSA8bGludXgvY3JjMzIuaD4KKworI2luY2x1ZGUgImRlYnVnLmgiCisjaW5jbHVkZSAi d2Z4LmgiCisjaW5jbHVkZSAic3RhLmgiCisjaW5jbHVkZSAibWFpbi5oIgorI2luY2x1ZGUgImhp Zl90eC5oIgorI2luY2x1ZGUgImhpZl90eF9taWIuaCIKKworI2RlZmluZSBDUkVBVEVfVFJBQ0Vf UE9JTlRTCisjaW5jbHVkZSAidHJhY2VzLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHJhY2Vf cHJpbnRfZmxhZ3MgaGlmX21zZ19wcmludF9tYXBbXSA9IHsKKwloaWZfbXNnX2xpc3QsCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IHRyYWNlX3ByaW50X2ZsYWdzIGhpZl9taWJfcHJpbnRfbWFw W10gPSB7CisJaGlmX21pYl9saXN0LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB0cmFjZV9w cmludF9mbGFncyB3ZnhfcmVnX3ByaW50X21hcFtdID0geworCXdmeF9yZWdfbGlzdCwKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICpnZXRfc3ltYm9sKHVuc2lnbmVkIGxvbmcgdmFsLCBjb25zdCBz dHJ1Y3QgdHJhY2VfcHJpbnRfZmxhZ3MgKnN5bWJvbF9hcnJheSkKK3sKKwlpbnQgaTsKKworCWZv ciAoaSA9IDA7IHN5bWJvbF9hcnJheVtpXS5tYXNrICE9IC0xOyBpKyspIHsKKwkJaWYgKHZhbCA9 PSBzeW1ib2xfYXJyYXlbaV0ubWFzaykKKwkJCXJldHVybiBzeW1ib2xfYXJyYXlbaV0ubmFtZTsK Kwl9CisKKwlyZXR1cm4gInVua25vd24iOworfQorCitjb25zdCBjaGFyICp3ZnhfZ2V0X2hpZl9u YW1lKHVuc2lnbmVkIGxvbmcgaWQpCit7CisJcmV0dXJuIGdldF9zeW1ib2woaWQsIGhpZl9tc2df cHJpbnRfbWFwKTsKK30KKworY29uc3QgY2hhciAqd2Z4X2dldF9taWJfbmFtZSh1bnNpZ25lZCBs b25nIGlkKQoreworCXJldHVybiBnZXRfc3ltYm9sKGlkLCBoaWZfbWliX3ByaW50X21hcCk7Cit9 CisKK2NvbnN0IGNoYXIgKndmeF9nZXRfcmVnX25hbWUodW5zaWduZWQgbG9uZyBpZCkKK3sKKwly ZXR1cm4gZ2V0X3N5bWJvbChpZCwgd2Z4X3JlZ19wcmludF9tYXApOworfQorCitzdGF0aWMgaW50 IHdmeF9jb3VudGVyc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQoreworCWlu dCByZXQsIGk7CisJc3RydWN0IHdmeF9kZXYgKndkZXYgPSBzZXEtPnByaXZhdGU7CisJc3RydWN0 IHdmeF9oaWZfbWliX2V4dGVuZGVkX2NvdW50X3RhYmxlIGNvdW50ZXJzWzNdOworCisJZm9yIChp ID0gMDsgaSA8IEFSUkFZX1NJWkUoY291bnRlcnMpOyBpKyspIHsKKwkJcmV0ID0gd2Z4X2hpZl9n ZXRfY291bnRlcnNfdGFibGUod2RldiwgaSwgY291bnRlcnMgKyBpKTsKKwkJaWYgKHJldCA8IDAp CisJCQlyZXR1cm4gcmV0OworCQlpZiAocmV0ID4gMCkKKwkJCXJldHVybiAtRUlPOworCX0KKwor CXNlcV9wcmludGYoc2VxLCAiJS0yNHMgJTEycyAlMTJzICUxMnNcbiIsICIiLCAiZ2xvYmFsIiwg ImlmYWNlIDAiLCAiaWZhY2UgMSIpOworCisjZGVmaW5lIFBVVF9DT1VOVEVSKG5hbWUpIFwKKwlz ZXFfcHJpbnRmKHNlcSwgIiUtMjRzICUxMmQgJTEyZCAlMTJkXG4iLCAjbmFtZSwgIFwKKwkJICAg bGUzMl90b19jcHUoY291bnRlcnNbMl0uY291bnRfIyNuYW1lKSwgXAorCQkgICBsZTMyX3RvX2Nw dShjb3VudGVyc1swXS5jb3VudF8jI25hbWUpLCBcCisJCSAgIGxlMzJfdG9fY3B1KGNvdW50ZXJz WzFdLmNvdW50XyMjbmFtZSkpCisKKwlQVVRfQ09VTlRFUih0eF9mcmFtZXMpOworCVBVVF9DT1VO VEVSKHR4X2ZyYW1lc19tdWx0aWNhc3QpOworCVBVVF9DT1VOVEVSKHR4X2ZyYW1lc19zdWNjZXNz KTsKKwlQVVRfQ09VTlRFUih0eF9mcmFtZXNfcmV0cmllZCk7CisJUFVUX0NPVU5URVIodHhfZnJh bWVzX211bHRpX3JldHJpZWQpOworCVBVVF9DT1VOVEVSKHR4X2ZyYW1lc19mYWlsZWQpOworCisJ UFVUX0NPVU5URVIoYWNrX2ZhaWxlZCk7CisJUFVUX0NPVU5URVIocnRzX3N1Y2Nlc3MpOworCVBV VF9DT1VOVEVSKHJ0c19mYWlsZWQpOworCisJUFVUX0NPVU5URVIocnhfZnJhbWVzKTsKKwlQVVRf Q09VTlRFUihyeF9mcmFtZXNfbXVsdGljYXN0KTsKKwlQVVRfQ09VTlRFUihyeF9mcmFtZXNfc3Vj Y2Vzcyk7CisJUFVUX0NPVU5URVIocnhfZnJhbWVzX2ZhaWxlZCk7CisJUFVUX0NPVU5URVIoZHJv cF9wbGNwKTsKKwlQVVRfQ09VTlRFUihkcm9wX2Zjcyk7CisJUFVUX0NPVU5URVIoZHJvcF9ub19r ZXkpOworCVBVVF9DT1VOVEVSKGRyb3BfZGVjcnlwdGlvbik7CisJUFVUX0NPVU5URVIoZHJvcF90 a2lwX21pYyk7CisJUFVUX0NPVU5URVIoZHJvcF9iaXBfbWljKTsKKwlQVVRfQ09VTlRFUihkcm9w X2NtYWNfaWN2KTsKKwlQVVRfQ09VTlRFUihkcm9wX2NtYWNfcmVwbGF5KTsKKwlQVVRfQ09VTlRF Uihkcm9wX2NjbXBfcmVwbGF5KTsKKwlQVVRfQ09VTlRFUihkcm9wX2R1cGxpY2F0ZSk7CisKKwlQ VVRfQ09VTlRFUihyeF9iY25fbWlzcyk7CisJUFVUX0NPVU5URVIocnhfYmNuX3N1Y2Nlc3MpOwor CVBVVF9DT1VOVEVSKHJ4X2Jjbl9kdGltKTsKKwlQVVRfQ09VTlRFUihyeF9iY25fZHRpbV9haWQw X2Nscik7CisJUFVUX0NPVU5URVIocnhfYmNuX2R0aW1fYWlkMF9zZXQpOworCisjdW5kZWYgUFVU X0NPVU5URVIKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNvdW50ZXJzWzBdLnJlc2Vy dmVkKTsgaSsrKQorCQlzZXFfcHJpbnRmKHNlcSwgInJlc2VydmVkWyUwMmRdJTEycyAlMTJkICUx MmQgJTEyZFxuIiwgaSwgIiIsCisJCQkgICBsZTMyX3RvX2NwdShjb3VudGVyc1syXS5yZXNlcnZl ZFtpXSksCisJCQkgICBsZTMyX3RvX2NwdShjb3VudGVyc1swXS5yZXNlcnZlZFtpXSksCisJCQkg ICBsZTMyX3RvX2NwdShjb3VudGVyc1sxXS5yZXNlcnZlZFtpXSkpOworCisJcmV0dXJuIDA7Cit9 CitERUZJTkVfU0hPV19BVFRSSUJVVEUod2Z4X2NvdW50ZXJzKTsKKworc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBjaGFubmVsX25hbWVzW10gPSB7CisJWzBdID0gIjFNIiwKKwlbMV0gPSAiMk0i LAorCVsyXSA9ICI1LjVNIiwKKwlbM10gPSAiMTFNIiwKKwkvKiBFbnRyaWVzIDQgYW5kIDUgZG9l cyBub3QgZXhpc3QgKi8KKwlbNl0gPSAiNk0iLAorCVs3XSA9ICI5TSIsCisJWzhdID0gIjEyTSIs CisJWzldID0gIjE4TSIsCisJWzEwXSA9ICIyNE0iLAorCVsxMV0gPSAiMzZNIiwKKwlbMTJdID0g IjQ4TSIsCisJWzEzXSA9ICI1NE0iLAorCVsxNF0gPSAiTUNTMCIsCisJWzE1XSA9ICJNQ1MxIiwK KwlbMTZdID0gIk1DUzIiLAorCVsxN10gPSAiTUNTMyIsCisJWzE4XSA9ICJNQ1M0IiwKKwlbMTld ID0gIk1DUzUiLAorCVsyMF0gPSAiTUNTNiIsCisJWzIxXSA9ICJNQ1M3IiwKK307CisKK3N0YXRp YyBpbnQgd2Z4X3J4X3N0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpCit7 CisJc3RydWN0IHdmeF9kZXYgKndkZXYgPSBzZXEtPnByaXZhdGU7CisJc3RydWN0IHdmeF9oaWZf cnhfc3RhdHMgKnN0ID0gJndkZXYtPnJ4X3N0YXRzOworCWludCBpOworCisJbXV0ZXhfbG9jaygm d2Rldi0+cnhfc3RhdHNfbG9jayk7CisJc2VxX3ByaW50ZihzZXEsICJUaW1lc3RhbXA6ICVkdXNc biIsIHN0LT5kYXRlKTsKKwlzZXFfcHJpbnRmKHNlcSwgIkxvdyBwb3dlciBjbG9jazogZnJlcXVl bmN5ICV1SHosIGV4dGVybmFsICVzXG4iLAorCQkgICBsZTMyX3RvX2NwdShzdC0+cHdyX2Nsa19m cmVxKSwgc3QtPmlzX2V4dF9wd3JfY2xrID8gInllcyIgOiAibm8iKTsKKwlzZXFfcHJpbnRmKHNl cSwgIk51bS4gb2YgZnJhbWVzOiAlZCwgUEVSICh4MTBlNCk6ICVkLCBUaHJvdWdocHV0OiAlZEti cHMvc1xuIiwKKwkJICAgc3QtPm5iX3J4X2ZyYW1lLCBzdC0+cGVyX3RvdGFsLCBzdC0+dGhyb3Vn aHB1dCk7CisJc2VxX3B1dHMoc2VxLCAiICAgICAgIE51bS4gb2YgICAgICBQRVIgICAgIFJTU0kg ICAgICBTTlIgICAgICBDRk9cbiIpOworCXNlcV9wdXRzKHNlcSwgIiAgICAgICAgZnJhbWVzICAo eDEwZTQpICAgIChkQm0pICAgICAoZEIpICAgIChrSHopXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwg QVJSQVlfU0laRShjaGFubmVsX25hbWVzKTsgaSsrKSB7CisJCWlmIChjaGFubmVsX25hbWVzW2ld KQorCQkJc2VxX3ByaW50ZihzZXEsICIlNXMgJThkICU4ZCAlOGQgJThkICU4ZFxuIiwKKwkJCQkg ICBjaGFubmVsX25hbWVzW2ldLAorCQkJCSAgIGxlMzJfdG9fY3B1KHN0LT5uYl9yeF9ieV9yYXRl W2ldKSwKKwkJCQkgICBsZTE2X3RvX2NwdShzdC0+cGVyW2ldKSwKKwkJCQkgICAoczE2KWxlMTZf dG9fY3B1KHN0LT5yc3NpW2ldKSAvIDEwMCwKKwkJCQkgICAoczE2KWxlMTZfdG9fY3B1KHN0LT5z bnJbaV0pIC8gMTAwLAorCQkJCSAgIChzMTYpbGUxNl90b19jcHUoc3QtPmNmb1tpXSkpOworCX0K KwltdXRleF91bmxvY2soJndkZXYtPnJ4X3N0YXRzX2xvY2spOworCisJcmV0dXJuIDA7Cit9CitE RUZJTkVfU0hPV19BVFRSSUJVVEUod2Z4X3J4X3N0YXRzKTsKKworc3RhdGljIGludCB3ZnhfdHhf cG93ZXJfbG9vcF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQoreworCXN0cnVj dCB3ZnhfZGV2ICp3ZGV2ID0gc2VxLT5wcml2YXRlOworCXN0cnVjdCB3ZnhfaGlmX3R4X3Bvd2Vy X2xvb3BfaW5mbyAqc3QgPSAmd2Rldi0+dHhfcG93ZXJfbG9vcF9pbmZvOworCWludCB0bXA7CisK KwltdXRleF9sb2NrKCZ3ZGV2LT50eF9wb3dlcl9sb29wX2luZm9fbG9jayk7CisJdG1wID0gbGUx Nl90b19jcHUoc3QtPnR4X2dhaW5fZGlnKTsKKwlzZXFfcHJpbnRmKHNlcSwgIlR4IGdhaW4gZGln aXRhbDogJWRcbiIsIHRtcCk7CisJdG1wID0gbGUxNl90b19jcHUoc3QtPnR4X2dhaW5fcGEpOwor CXNlcV9wcmludGYoc2VxLCAiVHggZ2FpbiBQQTogJWRcbiIsIHRtcCk7CisJdG1wID0gKHMxNils ZTE2X3RvX2NwdShzdC0+dGFyZ2V0X3BvdXQpOworCXNlcV9wcmludGYoc2VxLCAiVGFyZ2V0IFBv dXQ6ICVkLiUwMmQgZEJtXG4iLCB0bXAgLyA0LCAodG1wICUgNCkgKiAyNSk7CisJdG1wID0gKHMx NilsZTE2X3RvX2NwdShzdC0+cF9lc3RpbWF0aW9uKTsKKwlzZXFfcHJpbnRmKHNlcSwgIkZFTSBQ b3V0OiAlZC4lMDJkIGRCbVxuIiwgdG1wIC8gNCwgKHRtcCAlIDQpICogMjUpOworCXRtcCA9IGxl MTZfdG9fY3B1KHN0LT52cGRldCk7CisJc2VxX3ByaW50ZihzZXEsICJWcGRldDogJWQgbVZcbiIs IHRtcCk7CisJc2VxX3ByaW50ZihzZXEsICJNZWFzdXJlIGluZGV4OiAlZFxuIiwgc3QtPm1lYXN1 cmVtZW50X2luZGV4KTsKKwltdXRleF91bmxvY2soJndkZXYtPnR4X3Bvd2VyX2xvb3BfaW5mb19s b2NrKTsKKworCXJldHVybiAwOworfQorREVGSU5FX1NIT1dfQVRUUklCVVRFKHdmeF90eF9wb3dl cl9sb29wKTsKKworc3RhdGljIHNzaXplX3Qgd2Z4X3NlbmRfcGRzX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdXNlcl9idWYsCisJCQkJICBzaXplX3QgY291bnQs IGxvZmZfdCAqcHBvcykKK3sKKwlzdHJ1Y3Qgd2Z4X2RldiAqd2RldiA9IGZpbGUtPnByaXZhdGVf ZGF0YTsKKwljaGFyICpidWY7CisJaW50IHJldDsKKworCWlmICgqcHBvcyAhPSAwKSB7CisJCWRl dl9kYmcod2Rldi0+ZGV2LCAiUERTIGRhdGEgbXVzdCBiZSB3cml0dGVuIGluIG9uZSB0cmFuc2Fj dGlvbiIpOworCQlyZXR1cm4gLUVCVVNZOworCX0KKwlidWYgPSBtZW1kdXBfdXNlcih1c2VyX2J1 ZiwgY291bnQpOworCWlmIChJU19FUlIoYnVmKSkKKwkJcmV0dXJuIFBUUl9FUlIoYnVmKTsKKwkq cHBvcyA9ICpwcG9zICsgY291bnQ7CisJcmV0ID0gd2Z4X3NlbmRfcGRzKHdkZXYsIGJ1ZiwgY291 bnQpOworCWtmcmVlKGJ1Zik7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisJcmV0dXJu IGNvdW50OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB3Znhfc2Vu ZF9wZHNfZm9wcyA9IHsKKwkub3BlbiA9IHNpbXBsZV9vcGVuLAorCS53cml0ZSA9IHdmeF9zZW5k X3Bkc193cml0ZSwKK307CisKK3N0cnVjdCBkYmdmc19oaWZfbXNnIHsKKwlzdHJ1Y3Qgd2Z4X2Rl diAqd2RldjsKKwlzdHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0ZTsKKwl1OCByZXBseVsxMDI0XTsK KwlpbnQgcmV0OworfTsKKworc3RhdGljIHNzaXplX3Qgd2Z4X3NlbmRfaGlmX21zZ193cml0ZShz dHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKnVzZXJfYnVmLAorCQkJCSAgICAg IHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCBkYmdmc19oaWZfbXNnICpj b250ZXh0ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCB3ZnhfZGV2ICp3ZGV2ID0gY29u dGV4dC0+d2RldjsKKwlzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKnJlcXVlc3Q7CisKKwlpZiAoY29tcGxl dGlvbl9kb25lKCZjb250ZXh0LT5jb21wbGV0ZSkpIHsKKwkJZGV2X2RiZyh3ZGV2LT5kZXYsICJy ZWFkIHByZXZpb3VzIHJlc3VsdCBiZWZvcmUgc3RhcnQgYSBuZXcgb25lXG4iKTsKKwkJcmV0dXJu IC1FQlVTWTsKKwl9CisJaWYgKGNvdW50IDwgc2l6ZW9mKHN0cnVjdCB3ZnhfaGlmX21zZykpCisJ CXJldHVybiAtRUlOVkFMOworCisJLyogd2Z4X2NtZF9zZW5kKCkgY2hlY2tzIHRoYXQgcmVwbHkg YnVmZmVyIGlzIHdpZGUgZW5vdWdoLCBidXQgZG9lcyBub3QgcmV0dXJuIHByZWNpc2UKKwkgKiBs ZW5ndGggcmVhZC4gVXNlciBoYXZlIHRvIGtub3cgaG93IG1hbnkgYnl0ZXMgc2hvdWxkIGJlIHJl YWQuIEZpbGxpbmcgcmVwbHkgYnVmZmVyIHdpdGggYQorCSAqIG1lbW9yeSBwYXR0ZXJuIG1heSBo ZWxwIHVzZXIuCisJICovCisJbWVtc2V0KGNvbnRleHQtPnJlcGx5LCAweEZGLCBzaXplb2YoY29u dGV4dC0+cmVwbHkpKTsKKwlyZXF1ZXN0ID0gbWVtZHVwX3VzZXIodXNlcl9idWYsIGNvdW50KTsK KwlpZiAoSVNfRVJSKHJlcXVlc3QpKQorCQlyZXR1cm4gUFRSX0VSUihyZXF1ZXN0KTsKKwlpZiAo bGUxNl90b19jcHUocmVxdWVzdC0+bGVuKSAhPSBjb3VudCkgeworCQlrZnJlZShyZXF1ZXN0KTsK KwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWNvbnRleHQtPnJldCA9IHdmeF9jbWRfc2VuZCh3ZGV2 LCByZXF1ZXN0LCBjb250ZXh0LT5yZXBseSwgc2l6ZW9mKGNvbnRleHQtPnJlcGx5KSwgZmFsc2Up OworCisJa2ZyZWUocmVxdWVzdCk7CisJY29tcGxldGUoJmNvbnRleHQtPmNvbXBsZXRlKTsKKwly ZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHdmeF9zZW5kX2hpZl9tc2dfcmVhZChz dHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLAorCQkJCSAgICAgc2l6ZV90 IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IGRiZ2ZzX2hpZl9tc2cgKmNvbnRleHQg PSBmaWxlLT5wcml2YXRlX2RhdGE7CisJaW50IHJldDsKKworCWlmIChjb3VudCA+IHNpemVvZihj b250ZXh0LT5yZXBseSkpCisJCXJldHVybiAtRUlOVkFMOworCXJldCA9IHdhaXRfZm9yX2NvbXBs ZXRpb25faW50ZXJydXB0aWJsZSgmY29udGV4dC0+Y29tcGxldGUpOworCWlmIChyZXQpCisJCXJl dHVybiByZXQ7CisJaWYgKGNvbnRleHQtPnJldCA8IDApCisJCXJldHVybiBjb250ZXh0LT5yZXQ7 CisJLyogQmUgY2FyZWZ1bCwgd3JpdGUoKSBpcyB3YWl0aW5nIGZvciBhIGZ1bGwgbWVzc2FnZSB3 aGlsZSByZWFkKCkgb25seSByZXR1cm5zIGEgcGF5bG9hZCAqLworCWlmIChjb3B5X3RvX3VzZXIo dXNlcl9idWYsIGNvbnRleHQtPnJlcGx5LCBjb3VudCkpCisJCXJldHVybiAtRUZBVUxUOworCisJ cmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgaW50IHdmeF9zZW5kX2hpZl9tc2dfb3BlbihzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgZGJnZnNfaGlm X21zZyAqY29udGV4dCA9IGt6YWxsb2Moc2l6ZW9mKCpjb250ZXh0KSwgR0ZQX0tFUk5FTCk7CisK KwlpZiAoIWNvbnRleHQpCisJCXJldHVybiAtRU5PTUVNOworCWNvbnRleHQtPndkZXYgPSBpbm9k ZS0+aV9wcml2YXRlOworCWluaXRfY29tcGxldGlvbigmY29udGV4dC0+Y29tcGxldGUpOworCWZp bGUtPnByaXZhdGVfZGF0YSA9IGNvbnRleHQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQg d2Z4X3NlbmRfaGlmX21zZ19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl ICpmaWxlKQoreworCXN0cnVjdCBkYmdmc19oaWZfbXNnICpjb250ZXh0ID0gZmlsZS0+cHJpdmF0 ZV9kYXRhOworCisJa2ZyZWUoY29udGV4dCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHdmeF9zZW5kX2hpZl9tc2dfZm9wcyA9IHsKKwkub3Bl biA9IHdmeF9zZW5kX2hpZl9tc2dfb3BlbiwKKwkucmVsZWFzZSA9IHdmeF9zZW5kX2hpZl9tc2df cmVsZWFzZSwKKwkud3JpdGUgPSB3Znhfc2VuZF9oaWZfbXNnX3dyaXRlLAorCS5yZWFkID0gd2Z4 X3NlbmRfaGlmX21zZ19yZWFkLAorfTsKKworaW50IHdmeF9kZWJ1Z19pbml0KHN0cnVjdCB3Znhf ZGV2ICp3ZGV2KQoreworCXN0cnVjdCBkZW50cnkgKmQ7CisKKwlkID0gZGVidWdmc19jcmVhdGVf ZGlyKCJ3ZngiLCB3ZGV2LT5ody0+d2lwaHktPmRlYnVnZnNkaXIpOworCWRlYnVnZnNfY3JlYXRl X2ZpbGUoImNvdW50ZXJzIiwgMDQ0NCwgZCwgd2RldiwgJndmeF9jb3VudGVyc19mb3BzKTsKKwlk ZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJyeF9zdGF0cyIsIDA0NDQsIGQsIHdkZXYsICZ3Znhfcnhfc3Rh dHNfZm9wcyk7CisJZGVidWdmc19jcmVhdGVfZmlsZSgidHhfcG93ZXJfbG9vcCIsIDA0NDQsIGQs IHdkZXYsICZ3ZnhfdHhfcG93ZXJfbG9vcF9mb3BzKTsKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJz ZW5kX3BkcyIsIDAyMDAsIGQsIHdkZXYsICZ3Znhfc2VuZF9wZHNfZm9wcyk7CisJZGVidWdmc19j cmVhdGVfZmlsZSgic2VuZF9oaWZfbXNnIiwgMDYwMCwgZCwgd2RldiwgJndmeF9zZW5kX2hpZl9t c2dfZm9wcyk7CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL3NpbGFicy93ZngvZGVidWcuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93Zngv ZGVidWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM4NDA1NzVl NWUyOAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93Zngv ZGVidWcuaApAQCAtMCwwICsxLDE5IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMC1vbmx5ICovCisvKgorICogRGVidWdmcyBpbnRlcmZhY2UuCisgKgorICogQ29weXJpZ2h0 IChjKSAyMDE3LTIwMTksIFNpbGljb24gTGFib3JhdG9yaWVzLCBJbmMuCisgKiBDb3B5cmlnaHQg KGMpIDIwMTEsIFNULUVyaWNzc29uCisgKi8KKyNpZm5kZWYgV0ZYX0RFQlVHX0gKKyNkZWZpbmUg V0ZYX0RFQlVHX0gKKworc3RydWN0IHdmeF9kZXY7CisKK2ludCB3ZnhfZGVidWdfaW5pdChzdHJ1 Y3Qgd2Z4X2RldiAqd2Rldik7CisKK2NvbnN0IGNoYXIgKndmeF9nZXRfaGlmX25hbWUodW5zaWdu ZWQgbG9uZyBpZCk7Citjb25zdCBjaGFyICp3ZnhfZ2V0X21pYl9uYW1lKHVuc2lnbmVkIGxvbmcg aWQpOworY29uc3QgY2hhciAqd2Z4X2dldF9yZWdfbmFtZSh1bnNpZ25lZCBsb25nIGlkKTsKKwor I2VuZGlmCi0tIAoyLjM0LjEKCg==