Received: by 2002:a05:6358:7058:b0:131:369:b2a3 with SMTP id 24csp1662630rwp; Thu, 13 Jul 2023 14:37:30 -0700 (PDT) X-Google-Smtp-Source: APBJJlH2NxH7F9qb7UKfgr5o6oZjwrXf/HFMhunTdFKtk/fNjEZEU0Q/OvOKvGrOEtI1wk38w1tq X-Received: by 2002:a17:906:bcd2:b0:96b:e93:3aa8 with SMTP id lw18-20020a170906bcd200b0096b0e933aa8mr2469128ejb.21.1689284249919; Thu, 13 Jul 2023 14:37:29 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1689284249; cv=pass; d=google.com; s=arc-20160816; b=m0CMuSMyfN1VcGERc6W7ZufBbsjNqAibSQfPBvon/QDhawhwMDGfM0Hu9YNcL7cu/f Q202nYS0V/k6Yr5gdrYsvmXd2O96B7EP3FdIdhnTiST8pOvHZ9rlYI2oVvVbF+udJLJY CfSLe3+zkSLU5uRRAMaAniNTZ4iHJuQSxc51Vmsc3eufjcIeZzIG9pLbJQLiXEvd/Vfv aMvvW3iiDjEW79lz/OqiQc+CUjBiTQ1nQ4mUElMRh1Vc17hRPlk7bByZgwy+ByQOAovt TQDAkgFr0Mdwl9Nblqnm1V6YVQYwysIZ4MRkZG+jZx7pirJ0ewAT1IPwZwFIsegkihGp ZF4A== 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 :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature:dkim-signature; bh=Gzp05/GxiwQMsVL/chn5m0bCMSbtEC+/PMtIP5alRCA=; fh=aW55Y1dYGlamJonthgCMCplHqiDKWHRjO++C0TXs+b4=; b=mmCXj1wuk4rkKVAkKdyzY2gD13X3dNDjn8oZjJKmeM62vlI63h2oYrzoNjtCTnHOua 8YAKxTwUa8NGKWDX9qHY7NdsmY+oANqH67jFAm+7ckcXM3N1RqWa7RSVe4VoTvH9/biQ UWA/mL3HaNzH/22u7B3cgHvl2EdgTdWaGbm14vVTs+f4Ok/dk9n13qhoxh2smk0UeFM2 JM6GfETK1gsNiM8TwyrS0ZJQaWu1VBKqOcRdn5+GUypXPgAVSILUk8bCrhZ3k+GzDK7q H+zXf17tNPDxSL3cChD3J6eM5JMQjNrvNUE9vLYNfY4CD5ytLy1O4IlfYM/b9xg7T0lj IXlw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=Ju5bLCPI; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=JKCtktAl; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ss9-20020a170907038900b0098dfdc3f2d7si7203294ejb.674.2023.07.13.14.37.10; Thu, 13 Jul 2023 14:37:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=Ju5bLCPI; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=JKCtktAl; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232502AbjGMVei (ORCPT + 60 others); Thu, 13 Jul 2023 17:34:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229788AbjGMVeg (ORCPT ); Thu, 13 Jul 2023 17:34:36 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F28263A98 for ; Thu, 13 Jul 2023 14:34:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1689284047; x=1720820047; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Gzp05/GxiwQMsVL/chn5m0bCMSbtEC+/PMtIP5alRCA=; b=Ju5bLCPIxLKr0DS9M4J82KWueF/HJQTq+ESbz0bgVWkG3ToPPlDq0J8M z+fgWIH/lhCm2Jo+jP1FMJgxgutaEYHDCiLtxeGWhLXm1mPOO1PgdKqqr Dt6TCxN4O14FzmJOzQfltr5zKYHLem944DV+/3MVR24cHhn4fBT64tHey NESrMmhGhgJMNyJvAI9hU1O85+f7iLIkbD+kqsxtmInat0XMx7kQ2jviZ Bjpqvilhp88F4Wm5KsGEw1+u6dY+wflvldULF3JQ5a9Z4LSMs9hzAnRki m76dZKGSkErMFRal1MaOzSE6i4BAq8v1QIRwXrahqDt2Oi6+1aEMSyUKE w==; X-IronPort-AV: E=Sophos;i="6.01,203,1684825200"; d="scan'208";a="222942426" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa3.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 13 Jul 2023 14:33:50 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 13 Jul 2023 14:33:50 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Thu, 13 Jul 2023 14:33:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RECZeuH9Yi5bdc547ql3+4ITKBcsNn1ZMyUeq91rwjyZmD7gMW1u1cQiLq2aSePXyCYStRcTkVyLtjmxm0ZROeMj/O5mulPkVJlkUZfBwxeK0d8QXIZuCcXxSpxm1mCQMEuIXFjVOo52DF/jlTi9wLvyZgAjXyG4zKamVwajfb6pKI9WjaBCzzVbj33y2FMcf61hFMBBqorOGyUeyhmVbm11bjVFCNzOa+uDrKS3Y6D/s6OCzgjcJFYENl2aSEte9/sPrng5RPQ9dxww9dvYgMZniPvOajhkwymsQLo2ywVbU9z1bD75CCVJZVIBqcn4PPshr8M7XBCINe5C+O7LiA== 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=Gzp05/GxiwQMsVL/chn5m0bCMSbtEC+/PMtIP5alRCA=; b=Wxk/2Esgad2A4V7fbO71j8igtdAIbLltaiVR3rRX0rMEoImXvtbWQD4pB7P232nGHrp8kGoeXkdwFjD2GIiFo/KcnPscbR451r15IKq+4B90hEhuVuDGQL7po03KXVm3pH0WzxOTw2svlCCTqbJRbQcWOZY1mec5XLPW1RMEOfwJoqgOLlDDHYmVDRlQi292YhFRlrTtRGmTstZJc+teGb/uNfw/wQqKh7PJkXCTyXD+rByeYjiyGPh14Pe+46WTYKaeIRmGKxbxR1rX84udShqRs6Sr79XGmYGEhfB116Ng0ymU1/u2cIZ+VHGH5MIE1XHlTNFLt5ffDAgs/35UAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Gzp05/GxiwQMsVL/chn5m0bCMSbtEC+/PMtIP5alRCA=; b=JKCtktAlHcXV57RqAeNCG+iHhG2f8jPZ05JijX35E6bnrTvb5vphiPetJp0z9AhTd7ZTs3jdqoJQUxcoOdApq7dBXhDlEwnYHCR9eU4Qw0hujLRx4RlOpIaryC6PfxZ9A92ckKZ0mPatINVh8ne2MMsh+Jd+PnhnapyYA4y+xSQ= Received: from PH0PR11MB5176.namprd11.prod.outlook.com (2603:10b6:510:3f::5) by PH0PR11MB5208.namprd11.prod.outlook.com (2603:10b6:510:3b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.32; Thu, 13 Jul 2023 21:33:47 +0000 Received: from PH0PR11MB5176.namprd11.prod.outlook.com ([fe80::a60a:7f6:661c:ac78]) by PH0PR11MB5176.namprd11.prod.outlook.com ([fe80::a60a:7f6:661c:ac78%6]) with mapi id 15.20.6588.017; Thu, 13 Jul 2023 21:33:47 +0000 From: To: CC: , , Subject: Re: [PATCH] wifi: wilc1000: simplify TX callback functions Thread-Topic: [PATCH] wifi: wilc1000: simplify TX callback functions Thread-Index: AQHZtWPHeXt76UclPUySmlPqoY2Gh6+4OJ+A Date: Thu, 13 Jul 2023 21:33:46 +0000 Message-ID: References: <20230713082616.112160-1-dmantipov@yandex.ru> In-Reply-To: <20230713082616.112160-1-dmantipov@yandex.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5176:EE_|PH0PR11MB5208:EE_ x-ms-office365-filtering-correlation-id: e7d76735-29da-41ef-d321-08db83e8d747 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ocTYtRDyti2gSruiia/ZE6mxyV1s+ga+WvIg5s/mTksKnyfOT8vXTuFZB3A9wSMHb9KL6p3dzXtMZ7gpGHuNh0sBw0KGWFFutskFTzTIgiXOWp+Z0ugm9cs/c9lzIckAAyxuok991GvSHOrYGqs3gaHc3Bd7kfO5Qx/v1wZL9ys2kuAdVRo5Wtf06/5shy05nNtE1KeX1UY5dsIwVT6yB+kUbn2ww7ILn0MCZXaSXPcmmgjMlGy3fO8QzmGYqEG3NblwQDfC6Hs8WG1kKxCpM3ZSHbhITtVFyMfsFWeDyoM/qiyYHtdTSffkzMLq9BLI6Ap5dh3eiAcNep5ZiNEXXtlZNoTnJjt97Tm+6btPWriugXoCYI5QAnXfqkxjI5YuhO7hLfdBbd0n9W3l4IsUWyZvjGeGFf5PkxwNBWlUQjEx8r34TvF4JNptoynAZK1PZsBh6XWylqKsod8eCrWfsiak/hpYx1HZmGQJyj2Gnik/Hi779azAA84odov8FNi+Ju1spJ3i8wGHRko/puKbekjPI8wT0xFeAqbQ7pTeJvu/oP+o6hw850CTHE+crrhRALlCxmx7YfDLq1i1+O+AqB6c+RjKUS0aFTWWmtt4M+1IAAlkhnfTR+IYUgjW3KfVVYy7e0N1NauuYBlP6wiIfkmbQLmk1pjyCrqGrpsRoDz6inCCTEX7mCYml0ItON5b x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5176.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(376002)(136003)(39860400002)(346002)(366004)(451199021)(83380400001)(186003)(26005)(6512007)(6506007)(2616005)(53546011)(478600001)(41300700001)(6916009)(30864003)(316002)(64756008)(66556008)(2906002)(5660300002)(66446008)(4326008)(8676002)(66476007)(8936002)(66946007)(54906003)(71200400001)(76116006)(36756003)(6486002)(122000001)(38070700005)(38100700002)(31696002)(86362001)(31686004)(45980500001)(43740500002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?c3NOU29QZ0ptYVVnVEpYd3p6d0l3aWpIUTNQaVN5b1hOQS9wU2d4Zyt4L2JN?= =?utf-8?B?SVl1eDZkVUljNzdvSnEwK2d5U3FLdHUwc3hZUFJHMEc5anZBZXdBcHFMSmhp?= =?utf-8?B?YmROcUtSeG9GQmhtQnVjRWZQb2ZVWkFHaGY4TkxTb2FIVG50aUxscTFGRjQ4?= =?utf-8?B?b2dRazNGZUVyVDgwWW9sTFJsY2h1dkJrTUF4TkhkV2YrbzZCWDZZT05aMnlX?= =?utf-8?B?OGJxa1BlaDFtZGtIdWZBQ0lpL0x4dUZhd2U0a1pWOURLVVkwK1BzenBxRks2?= =?utf-8?B?bGZWM0EyWlR5c01pcDBVb3FlK2JDTC9nNHZGSHl4TFpCMWJ0bFdCa3I3a2kr?= =?utf-8?B?S3dLbUhVeklCcGx2ZTJNa0ZLTkRDVUQrb1IxMzA2VWNER3puemY1aHUwVUMw?= =?utf-8?B?ZTlsdlEwcnpRZUZURG4rVEthek45MFBBcklOTTZiZTZJRENNOThnekk3bkw5?= =?utf-8?B?M0pQbS93YmloTWVyM0xDY0pIbk9OQ0NpSk5uNzBJQ2xLa1hFQ2Q3cGhqSFFP?= =?utf-8?B?amdDSGxGaHdxczRFUWJWTlN3YU1jS05EWEl6bjVVSGhWT1RrQ2NQcmUvc2Vo?= =?utf-8?B?alJxT3A2UERkYi9YMllhaVlhRzNvQ1piZm8xS05oU3FvbUFsdWc3SUMwN2ds?= =?utf-8?B?a0Urc1hSaHJOOUFXd1VoY2tNN085TDdNcFFFQnQ2WmxkSEtGSEF4SXVPenhV?= =?utf-8?B?Z3FkbWN0SjloQnV6d3kzMitOTW4yWXQveG53VjZvbTZ5SEZPaFlMRGlpZjRG?= =?utf-8?B?amxFcFZOa2NRN1dkcXl1WGxxdUtkcDY4ejJZRCs1U2hYbnVEV1pmbDF4aHkz?= =?utf-8?B?S2laNDdXOXVnNEEwZUJ3QlJHWmkzN212NGhNWlVxaWhhclcraGJpNmFaVG5M?= =?utf-8?B?S2JhT0RXaW9uUzRKb0JldEZWRXlnakZrZlRsMFRvcmxzeUVXYXVjd0NlZHpq?= =?utf-8?B?Rnl2a2ZlbEd2RFpRbTczdHhYeDhCaklqcGZ3NjZnUTdCbnZXWElDbk9uVlZH?= =?utf-8?B?dXFlQmIwL2dsQ2J2REdpenYrQ1ZFL281c1pFRE1mN3N0bHBjalZ4KzZmVHZS?= =?utf-8?B?b21CR2xyd2V0eUord0d6dGV0UHhqT1dmcUtUQy9WeHhmOU9EdnJxOXRWZG1h?= =?utf-8?B?clRhdnRyU1VCWXlLMlJCM3RmaTdHTytEanptSFM3Sy9FOTNZc1hESDdSc0gv?= =?utf-8?B?NTVONHAzMm1yUHlNOHpMRjhaeFZ0dEtrbSs0bFJYS3Bkd3cwR2pRTU13Rzlt?= =?utf-8?B?a09SSWpOS0VWclJIbjQ1STlEMkJ6aENDQ2dKaXkrK3k0ZzNKSGlsSjJCdzhK?= =?utf-8?B?RWREenBHRUtBK0dRSlh0aksydmoxQWQ0UjhmN2NsVmZXemRaYnd3alRtNE10?= =?utf-8?B?bTFiNnpEVFJKNFJkb2h1clBDMHNPWmc1ZS9zT1A5NG9JTjZ0RGFDQ1k3YjF6?= =?utf-8?B?MlpmK2RkMEIrU0ZJWEY5NEUvZXJQVllERGNmak1DSUJXT0grUnlCa1lsK3Vy?= =?utf-8?B?ekF5R0MwVWZ3RjVGMUt1UGNKek1HZFFCKzNyeENLSTBuT0w2N1oxY3YyQnkz?= =?utf-8?B?b1dQUzJwZkp6eGIyVnQyajBmU0FxUzF4RDRXZEkxUTMxZ2tFVEY5NUFoaThP?= =?utf-8?B?M0V4N1dnaExmWFB1N2tRR0RLQjBGVXdyTlV5cW16NFhWMDVpL3Q2c2ZFZGxL?= =?utf-8?B?UjgvVWYzejdTdTkyWTVWU09iTEEyMXViUm45T1REMjluWllueTZIVXFJcG5m?= =?utf-8?B?WWgraU8wOHJCbW1LZkdpdVZUSyt6RGhlemdXTkgyUkJjTEFJNmN4cGRxaFlD?= =?utf-8?B?Sm9CbVVqdHFaM1VBODM3MjJPU3dXVDRQb0dsaWl2a1IxV2h5YlZOcnVYamdk?= =?utf-8?B?ZFdhWS8rcWMwSjhDYWFnV0M1Z0ZKVERnTW82bTRoUlpkVW8yZURWV1FDdCtq?= =?utf-8?B?dmw5UFV6RVdoQVp5OGRtcDNkaGh0bE1QdjRKajEvT1JOay9PY1hqSTBVV1ZN?= =?utf-8?B?TmdsMGpLUm5TSG5IdXI3M0FYZDFwdHF5b3VSUkxaY2NHSnlEWVVHSTFQQ2Fh?= =?utf-8?B?NlQ3dVFRc3BaYWJ2Q0V1NzF1WkNoT1c5VCtqWXBOdkZEU0t2SmhQOU5HOFdq?= =?utf-8?Q?TSlT86okX9t3hExmPKNE598y0?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5176.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e7d76735-29da-41ef-d321-08db83e8d747 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jul 2023 21:33:47.0042 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sPW6i9crRltmrMwbsWhEZ9DQzvdgNmRhg3NS0BMLFCRCuxcPj28h+ss82EzYPRjA0v/2zk88B9q3AKaGHvD0xwqpx/wtl6ZlNdas6KZSqnI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5208 X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org SGkgRG1pdHJ5LA0KDQpPbiA3LzEzLzIzIDAxOjI2LCBEbWl0cnkgQW50aXBvdiB3cm90ZToNCj4g RVhURVJOQUwgRU1BSUw6IERvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVu bGVzcyB5b3Uga25vdyB0aGUgY29udGVudCBpcyBzYWZlDQo+IA0KPiBEcm9wIHVudXNlZCBzZWNv bmQgYXJndW1lbnQgb2YgVFggY2FsbGJhY2sgZnVuY3Rpb25zIGFuZCB1c2UNCj4gJ3N0cnVjdCB0 eHFfZW50cnlfdCAqJyBhcyB0aGUgb25seSBhcmd1bWVudCwgdGh1cyByZW1vdmluZw0KPiAnc3Ry dWN0IHdpbGNfcDJwX21nbXRfZGF0YScsICdzdHJ1Y3QgdHhfY29tcGxldGVfbW9uX2RhdGEnDQo+ IGFuZCAnc3RydWN0IHR4X2NvbXBsZXRlX2RhdGEnIChhY3R1YWxseSBpbnRlbmRlZCBqdXN0IHRv DQo+IHBhc3MgY2FsbGJhY2tzIHBhcmFtZXRlcnMpIGFzIHdlbGwuIFRoaXMgYWxzbyBzaHJpbmtz DQo+ICdzdHJ1Y3QgdHhxX2VudHJ5X3QnIGJ5ICdwcml2JyBmaWVsZCBhbmQgZWxpbWluYXRlcyBh IGZldw0KPiAna21hbGxvYygpL2tmcmVlKCknIGNhbGxzIChhdCB0aGUgY29zdCBvZiBoYXZpbmcg ZHVtbXkNCj4gc3RhY2stYWxsb2NhdGVkICdzdHJ1Y3QgdHhxX2VudHJ5X3QnIGluc3RhbmNlcyku DQoNCkknbSBqdXN0IGN1cmlvdXMgdG8ga25vdyBpZiB5b3UgaGF2ZSB0ZXN0ZWQgdGhpcyBwYXRj aCB3aXRoIHRoZSByZWFsDQpoYXJkd2FyZS4NCg0KSW4gbXkgb3Bpbmlvbiwgc29tZSBvZiB0aGVz ZSBwYXRjaCBjaGFuZ2VzIHdvdWxkIG1ha2UgdGhlIGNvZGUgYml0DQpkaWZmaWN1bHQgdG8gcmVh ZCBiZWNhdXNlIGl0IGlzIHBhcnRpYWxseSBtb2RpZnlpbmcgdGhlIGN1cnJlbnQgZGVzaWduDQp0 aGF0IGhhbmRsZXMgdGhlIGRpZmZlcmVudCBjYXRlZ29yaWVzIG9mIFR4IGZyYW1lcy4NCg0KQXMg eW91IHNlZSwgdGhlICd0eHFfZW50cnknIHN0cnVjdCBpcyB1c2VkIHRvIGhvbGQgdGhyZWUgZGlm ZmVyZW50DQp0eXBlcyhXTEFOLCBuZXR3b3JrIGFuZCBXSUQncyBjb25maWcpIG9mIGZyYW1lcy4g VGhlIGRyaXZlciBhbGxvY2F0ZXMNCnRoZSBhcHByb3ByaWF0ZSB0eXBlIG9mIGZyYW1lIGFuZCB0 aGVuIHRyYW5zZmVyIHRvIHRoZSBmaXJtd2FyZSBvdmVyIGJ1cw0KaW50ZXJmYWNlLiBPbmNlIHRo ZSBmcmFtZSBpcyB0cmFuc2ZlcnJlZCB0byBmaXJtd2FyZSwgdGhlIGRyaXZlciBuZWVkcw0KdG8g ZnJlZSB0aGUgYXBwcm9wcmlhdGUgYnVmZmVyIHVzaW5nIHR4X2NvbXBsZXRlIGNhbGxiYWNrIGZv ciB0aGF0IHRoZQ0KZHJpdmVyIG5lZWRzIHRoZSBjb3JyZWN0IGJ1ZmZlciBwb2ludGVyLg0KTW9y ZW92ZXIsIHRoZSBidWZmZXIgZm9ybWF0IGlzIG5vdCBzYW1lIGZvciBlYWNoIHR5cGUgb2YgZnJh bWUgaS5lIGluDQpjYXNlIG9mIG5ldHdvcmsgZnJhbWUgaXQncyBza2IgYnVmZmVyIHdoZXJlYXMg V0lEJ3MgY29uZmlnIGZyYW1lcyB1c2VzIGENCnJhdyBidWZmZXIgd2hpY2ggY29udGFpbnMgZGF0 YSBhcyBwZXIgV0lEIGZvcm1hdCwgc28gaXQgbmVlZHMgdG8ga25vdw0KdGhlIGVudHJ5IHR5cGUg dG8gY2FsbCB0aGUgc3BlY2lmaWMgZnJlZSBmdW5jdGlvbi4NCg0KIEN1cnJlbnRseSwgdGhlICdw cml2JyBlbGVtZW50IGlzIHVzZWQgdG8gc3RvcmUgZWl0aGVyICdza2InIG9yDQondHhfY29tcGxl dGVfbW9uL3R4X2NvbXBsZXRlJyB3aGljaCBpcyBiYXNlZCBvbiB0aGUgdHlwZSBvZiB0aGUgZnJh bWUsDQpzbyBjaGFuZ2luZyAncHJpdicgdG8gJ3NrYicgZG9lc24ndCBtYWtlIHNlbnNlIGZvciBu b24gZGF0YSBmcmFtZXMuDQoNCk1heWJlLCBpZiB3ZSBzdG9yZSBvbmx5IG9uZSBidWZmZXIgcG9p bnRlciBhbmQgbGV0IHRoZSBjb21wbGV0ZSBjYWxsYmFjaw0KZnVuY3Rpb24gdGFrZSBjYXJlIG9m IGZyZWVpbmcgaXQgaS5lIHVzaW5nICBkZXZfa2ZyZWVfc2tiKCkgZm9yIGRhdGENCmZyYW1lIG9y IGtmcmVlKCkgZm9yIHRoZSByZXN0IHRoZW4gaXQgbWFrZXMgbW9yZSBzZW5zZS4NCg0KQWxzbywg d2hlbiBzb21lIG9mIHRoZSB0eF9jb21wbGV0ZSBzdHJ1Y3R1cmVzLCB3aGljaCBhcmUgdXNlZCB0 byBmcmVlLXVwDQp0aGUgYnVmZmVycywgYXJlIHJlbW92ZWQsIHNvbWUgb2YgdGhlIEFQSSBwYXJh bWV0ZXJzIHNob3VsZCBiZSBtb2RpZmllZA0KYWNjb3JkaW5nbHkuDQoNCj4gDQo+IFNpZ25lZC1v ZmYtYnk6IERtaXRyeSBBbnRpcG92IDxkbWFudGlwb3ZAeWFuZGV4LnJ1Pg0KPiAtLS0NCj4gIC4u Li93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYyAgICB8IDMzICsrKy0tLS0t LS0tLQ0KPiAgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jIHwg MzIgKysrLS0tLS0tLS0tDQo+ICAuLi4vbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9u ZXRkZXYuYyAgfCAyNCArKy0tLS0tLS0NCj4gIC4uLi9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dp bGMxMDAwL3dsYW4uYyAgICB8IDUwICsrKysrKysrKy0tLS0tLS0tLS0NCj4gIC4uLi9uZXQvd2ly ZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaCAgICB8IDIyICsrKy0tLS0tDQo+ICA1IGZp bGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDExMSBkZWxldGlvbnMoLSkNCj4gDQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAy MTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5j DQo+IGluZGV4IGI1NDVkOTNjNmUzNy4uNDQ5MDcxM2E5NjNiIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYw0KPiArKysgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYw0KPiBAQCAt NTQsMTEgKzU0LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB3aXBoeV93b3dsYW5fc3VwcG9ydCB3 b3dsYW5fc3VwcG9ydCA9IHsNCj4gIH07DQo+ICAjZW5kaWYNCj4gDQo+IC1zdHJ1Y3Qgd2lsY19w MnBfbWdtdF9kYXRhIHsNCj4gLSAgICAgICBpbnQgc2l6ZTsNCj4gLSAgICAgICB1OCAqYnVmZjsN Cj4gLX07DQo+IC0NCj4gIHN0cnVjdCB3aWxjX3AycF9wdWJfYWN0X2ZyYW1lIHsNCj4gICAgICAg ICB1OCBjYXRlZ29yeTsNCj4gICAgICAgICB1OCBhY3Rpb247DQo+IEBAIC0xMDg2LDEyICsxMDgx LDkgQEAgdm9pZCB3aWxjX3dmaV9wMnBfcngoc3RydWN0IHdpbGNfdmlmICp2aWYsIHU4ICpidWZm LCB1MzIgc2l6ZSkNCj4gICAgICAgICBjZmc4MDIxMV9yeF9tZ210KCZwcml2LT53ZGV2LCBmcmVx LCAwLCBidWZmLCBzaXplLCAwKTsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgdm9pZCB3aWxjX3dmaV9t Z210X3R4X2NvbXBsZXRlKHZvaWQgKnByaXYsIGludCBzdGF0dXMpDQo+ICtzdGF0aWMgdm9pZCB3 aWxjX3dmaV9tZ210X3R4X2NvbXBsZXRlKHN0cnVjdCB0eHFfZW50cnlfdCAqdHFlKQ0KPiAgew0K PiAtICAgICAgIHN0cnVjdCB3aWxjX3AycF9tZ210X2RhdGEgKnB2X2RhdGEgPSBwcml2Ow0KPiAt DQo+IC0gICAgICAga2ZyZWUocHZfZGF0YS0+YnVmZik7DQo+IC0gICAgICAga2ZyZWUocHZfZGF0 YSk7DQo+ICsgICAgICAga2ZyZWUodHFlLT5idWZmZXIpOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyB2 b2lkIHdpbGNfd2ZpX3JlbWFpbl9vbl9jaGFubmVsX2V4cGlyZWQodm9pZCAqZGF0YSwgdTY0IGNv b2tpZSkNCj4gQEAgLTExNzIsNyArMTE2NCw2IEBAIHN0YXRpYyBpbnQgbWdtdF90eChzdHJ1Y3Qg d2lwaHkgKndpcGh5LA0KPiAgICAgICAgIGNvbnN0IHU4ICpidWYgPSBwYXJhbXMtPmJ1ZjsNCj4g ICAgICAgICBzaXplX3QgbGVuID0gcGFyYW1zLT5sZW47DQo+ICAgICAgICAgY29uc3Qgc3RydWN0 IGllZWU4MDIxMV9tZ210ICptZ210Ow0KPiAtICAgICAgIHN0cnVjdCB3aWxjX3AycF9tZ210X2Rh dGEgKm1nbXRfdHg7DQo+ICAgICAgICAgc3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJp dih3ZGV2LT5uZXRkZXYpOw0KPiAgICAgICAgIHN0cnVjdCB3aWxjX3ByaXYgKnByaXYgPSAmdmlm LT5wcml2Ow0KPiAgICAgICAgIHN0cnVjdCBob3N0X2lmX2RydiAqd2ZpX2RydiA9IHByaXYtPmhp Zl9kcnY7DQo+IEBAIC0xMTgxLDYgKzExNzIsNyBAQCBzdGF0aWMgaW50IG1nbXRfdHgoc3RydWN0 IHdpcGh5ICp3aXBoeSwNCj4gICAgICAgICBpbnQgaWVfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0 IGllZWU4MDIxMV9tZ210LCB1KSArIHNpemVvZigqZCk7DQo+ICAgICAgICAgY29uc3QgdTggKnZl bmRvcl9pZTsNCj4gICAgICAgICBpbnQgcmV0ID0gMDsNCj4gKyAgICAgICB1OCAqY29weTsNCj4g DQo+ICAgICAgICAgKmNvb2tpZSA9IGdldF9yYW5kb21fdTMyKCk7DQo+ICAgICAgICAgcHJpdi0+ dHhfY29va2llID0gKmNvb2tpZTsNCj4gQEAgLTExODksMjEgKzExODEsMTIgQEAgc3RhdGljIGlu dCBtZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksDQo+ICAgICAgICAgaWYgKCFpZWVlODAyMTFf aXNfbWdtdChtZ210LT5mcmFtZV9jb250cm9sKSkNCj4gICAgICAgICAgICAgICAgIGdvdG8gb3V0 Ow0KPiANCj4gLSAgICAgICBtZ210X3R4ID0ga21hbGxvYyhzaXplb2YoKm1nbXRfdHgpLCBHRlBf S0VSTkVMKTsNCj4gLSAgICAgICBpZiAoIW1nbXRfdHgpIHsNCj4gLSAgICAgICAgICAgICAgIHJl dCA9IC1FTk9NRU07DQo+IC0gICAgICAgICAgICAgICBnb3RvIG91dDsNCj4gLSAgICAgICB9DQo+ IC0NCj4gLSAgICAgICBtZ210X3R4LT5idWZmID0ga21lbWR1cChidWYsIGxlbiwgR0ZQX0tFUk5F TCk7DQo+IC0gICAgICAgaWYgKCFtZ210X3R4LT5idWZmKSB7DQo+ICsgICAgICAgY29weSA9IGtt ZW1kdXAoYnVmLCBsZW4sIEdGUF9LRVJORUwpOw0KPiArICAgICAgIGlmICghY29weSkgew0KPiAg ICAgICAgICAgICAgICAgcmV0ID0gLUVOT01FTTsNCj4gLSAgICAgICAgICAgICAgIGtmcmVlKG1n bXRfdHgpOw0KPiAgICAgICAgICAgICAgICAgZ290byBvdXQ7DQo+ICAgICAgICAgfQ0KPiANCj4g LSAgICAgICBtZ210X3R4LT5zaXplID0gbGVuOw0KPiAtDQo+ICAgICAgICAgaWYgKGllZWU4MDIx MV9pc19wcm9iZV9yZXNwKG1nbXQtPmZyYW1lX2NvbnRyb2wpKSB7DQo+ICAgICAgICAgICAgICAg ICB3aWxjX3NldF9tYWNfY2hubF9udW0odmlmLCBjaGFuLT5od192YWx1ZSk7DQo+ICAgICAgICAg ICAgICAgICB2aWYtPndpbGMtPm9wX2NoID0gY2hhbi0+aHdfdmFsdWU7DQo+IEBAIC0xMjMwLDgg KzEyMTMsNyBAQCBzdGF0aWMgaW50IG1nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwNCj4gICAg ICAgICAgICAgICAgIGdvdG8gb3V0X3NldF90aW1lb3V0Ow0KPiANCj4gICAgICAgICB2ZW5kb3Jf aWUgPSBjZmc4MDIxMV9maW5kX3ZlbmRvcl9pZShXTEFOX09VSV9XRkEsIFdMQU5fT1VJX1RZUEVf V0ZBX1AyUCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt Z210X3R4LT5idWZmICsgaWVfb2Zmc2V0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxlbiAtIGllX29mZnNldCk7DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29weSArIGllX29mZnNldCwgbGVuIC0gaWVfb2Zmc2V0 KTsNCj4gICAgICAgICBpZiAoIXZlbmRvcl9pZSkNCj4gICAgICAgICAgICAgICAgIGdvdG8gb3V0 X3NldF90aW1lb3V0Ow0KPiANCj4gQEAgLTEyNDMsOCArMTIyNSw3IEBAIHN0YXRpYyBpbnQgbWdt dF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LA0KPiANCj4gIG91dF90eHFfYWRkX3BrdDoNCj4gDQo+ IC0gICAgICAgd2lsY193bGFuX3R4cV9hZGRfbWdtdF9wa3Qod2Rldi0+bmV0ZGV2LCBtZ210X3R4 LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1nbXRfdHgtPmJ1ZmYsIG1n bXRfdHgtPnNpemUsDQo+ICsgICAgICAgd2lsY193bGFuX3R4cV9hZGRfbWdtdF9wa3Qod2Rldi0+ bmV0ZGV2LCBOVUxMLCBjb3B5LCBsZW4sDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgd2lsY193ZmlfbWdtdF90eF9jb21wbGV0ZSk7DQoNCk5vIG5lZWQgdG8gcGFzcyAnTlVM TCcuIFRoZSBzZWNvbmQgcGFyYW10ZXIgaW4NCid3aWxjX3dsYW5fdHhxX2FkZF9tZ210X3BrdCcg Y2FuIGJlIHJlbW92ZWQuDQoNCj4gDQo+ICBvdXQ6DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMNCj4gaW5kZXggMDNiNzIyOWEwZmY1Li4wNWUwYWYx MzNkZDMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxj MTAwMC9tb24uYw0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEw MDAvbW9uLmMNCj4gQEAgLTk1LDQ1ICs5NSwyNSBAQCB2b2lkIHdpbGNfd2ZpX21vbml0b3Jfcngo c3RydWN0IG5ldF9kZXZpY2UgKm1vbl9kZXYsIHU4ICpidWZmLCB1MzIgc2l6ZSkNCj4gICAgICAg ICBuZXRpZl9yeChza2IpOw0KPiAgfQ0KPiANCj4gLXN0cnVjdCB0eF9jb21wbGV0ZV9tb25fZGF0 YSB7DQo+IC0gICAgICAgaW50IHNpemU7DQo+IC0gICAgICAgdm9pZCAqYnVmZjsNCj4gLX07DQo+ IC0NCj4gLXN0YXRpYyB2b2lkIG1nbXRfdHhfY29tcGxldGUodm9pZCAqcHJpdiwgaW50IHN0YXR1 cykNCj4gK3N0YXRpYyB2b2lkIG1nbXRfdHhfY29tcGxldGUoc3RydWN0IHR4cV9lbnRyeV90ICp0 cWUpDQoNClRoaXMgZnVuY3Rpb24gY2FuIGJlIHJlbW92ZWQgYW5kIGluc3RlYWQgJ3dpbGNfd2Zp X21nbXRfdHhfY29tcGxldGUnIGNiDQpjYW4gYmUgdXNlZCBzaW5jZSBib3RoIGFyZSBkb2luZyB0 aGUgc2FtZS4NCg0KPiAgew0KPiAtICAgICAgIHN0cnVjdCB0eF9jb21wbGV0ZV9tb25fZGF0YSAq cHZfZGF0YSA9IHByaXY7DQo+IC0gICAgICAgLyoNCj4gLSAgICAgICAgKiBpbiBjYXNlIG9mIGZ1 bGx5IGhvc3RpbmcgbW9kZSwgdGhlIGZyZWVpbmcgd2lsbCBiZSBkb25lDQo+IC0gICAgICAgICog aW4gcmVzcG9uc2UgdG8gdGhlIGNmZyBwYWNrZXQNCj4gLSAgICAgICAgKi8NCj4gLSAgICAgICBr ZnJlZShwdl9kYXRhLT5idWZmKTsNCj4gLQ0KPiAtICAgICAgIGtmcmVlKHB2X2RhdGEpOw0KPiAr ICAgICAgIGtmcmVlKHRxZS0+YnVmZmVyKTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgaW50IG1vbl9t Z210X3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHU4ICpidWYsIHNpemVfdCBsZW4p DQo+ICB7DQo+IC0gICAgICAgc3RydWN0IHR4X2NvbXBsZXRlX21vbl9kYXRhICptZ210X3R4ID0g TlVMTDsNCj4gKyAgICAgICB1OCAqYnVmZjsNCj4gDQo+ICAgICAgICAgaWYgKCFkZXYpDQo+ICAg ICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsNCj4gDQo+ICAgICAgICAgbmV0aWZfc3RvcF9x dWV1ZShkZXYpOw0KPiAtICAgICAgIG1nbXRfdHggPSBrbWFsbG9jKHNpemVvZigqbWdtdF90eCks IEdGUF9BVE9NSUMpOw0KPiAtICAgICAgIGlmICghbWdtdF90eCkNCj4gLSAgICAgICAgICAgICAg IHJldHVybiAtRU5PTUVNOw0KPiANCj4gLSAgICAgICBtZ210X3R4LT5idWZmID0ga21lbWR1cChi dWYsIGxlbiwgR0ZQX0FUT01JQyk7DQo+IC0gICAgICAgaWYgKCFtZ210X3R4LT5idWZmKSB7DQo+ IC0gICAgICAgICAgICAgICBrZnJlZShtZ210X3R4KTsNCj4gKyAgICAgICBidWZmID0ga21lbWR1 cChidWYsIGxlbiwgR0ZQX0FUT01JQyk7DQo+ICsgICAgICAgaWYgKCFidWZmKQ0KPiAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+IC0gICAgICAgfQ0KPiAtDQo+IC0gICAgICAgbWdt dF90eC0+c2l6ZSA9IGxlbjsNCj4gDQo+IC0gICAgICAgd2lsY193bGFuX3R4cV9hZGRfbWdtdF9w a3QoZGV2LCBtZ210X3R4LCBtZ210X3R4LT5idWZmLCBtZ210X3R4LT5zaXplLA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1nbXRfdHhfY29tcGxldGUpOw0KPiArICAgICAg IHdpbGNfd2xhbl90eHFfYWRkX21nbXRfcGt0KGRldiwgTlVMTCwgYnVmZiwgbGVuLCBtZ210X3R4 X2NvbXBsZXRlKTsNCj4gDQoNClNhbWUgYXMgYWJvdmUsIG5vIG5lZWQgdG8gcGFzcyB0aGUgJ05V TEwnIHZhbHVlLg0KDQo+ICAgICAgICAgbmV0aWZfd2FrZV9xdWV1ZShkZXYpOw0KPiAgICAgICAg IHJldHVybiAwOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlw L3dpbGMxMDAwL25ldGRldi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMx MDAwL25ldGRldi5jDQo+IGluZGV4IGU5ZjU5ZGUzMWIwYi4uNzQ4NjQ1MDVlYTIyIDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMN Cj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5j DQo+IEBAIC03MTMsMTkgKzcxMywxNSBAQCBzdGF0aWMgdm9pZCB3aWxjX3NldF9tdWx0aWNhc3Rf bGlzdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQ0KPiAgICAgICAgICAgICAgICAga2ZyZWUobWNf bGlzdCk7DQo+ICB9DQo+IA0KPiAtc3RhdGljIHZvaWQgd2lsY190eF9jb21wbGV0ZSh2b2lkICpw cml2LCBpbnQgc3RhdHVzKQ0KPiArc3RhdGljIHZvaWQgd2lsY190eF9jb21wbGV0ZShzdHJ1Y3Qg dHhxX2VudHJ5X3QgKnRxZSkNCj4gIHsNCj4gLSAgICAgICBzdHJ1Y3QgdHhfY29tcGxldGVfZGF0 YSAqcHZfZGF0YSA9IHByaXY7DQo+IC0NCj4gLSAgICAgICBkZXZfa2ZyZWVfc2tiKHB2X2RhdGEt PnNrYik7DQo+IC0gICAgICAga2ZyZWUocHZfZGF0YSk7DQo+ICsgICAgICAgZGV2X2tmcmVlX3Nr Yih0cWUtPnNrYik7DQo+ICB9DQo+IA0KDQo+ICBuZXRkZXZfdHhfdCB3aWxjX21hY194bWl0KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KQ0KPiAgew0KPiAgICAg ICAgIHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYobmRldik7DQo+ICAgICAgICAg c3RydWN0IHdpbGMgKndpbGMgPSB2aWYtPndpbGM7DQo+IC0gICAgICAgc3RydWN0IHR4X2NvbXBs ZXRlX2RhdGEgKnR4X2RhdGEgPSBOVUxMOw0KPiAgICAgICAgIGludCBxdWV1ZV9jb3VudDsNCj4g DQo+ICAgICAgICAgaWYgKHNrYi0+ZGV2ICE9IG5kZXYpIHsNCj4gQEAgLTczNCwyMSArNzMwLDkg QEAgbmV0ZGV2X3R4X3Qgd2lsY19tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg bmV0X2RldmljZSAqbmRldikNCj4gICAgICAgICAgICAgICAgIHJldHVybiBORVRERVZfVFhfT0s7 DQo+ICAgICAgICAgfQ0KPiANCj4gLSAgICAgICB0eF9kYXRhID0ga21hbGxvYyhzaXplb2YoKnR4 X2RhdGEpLCBHRlBfQVRPTUlDKTsNCj4gLSAgICAgICBpZiAoIXR4X2RhdGEpIHsNCj4gLSAgICAg ICAgICAgICAgIGRldl9rZnJlZV9za2Ioc2tiKTsNCj4gLSAgICAgICAgICAgICAgIG5ldGlmX3dh a2VfcXVldWUobmRldik7DQo+IC0gICAgICAgICAgICAgICByZXR1cm4gTkVUREVWX1RYX09LOw0K PiAtICAgICAgIH0NCj4gLQ0KPiAtICAgICAgIHR4X2RhdGEtPmJ1ZmYgPSBza2ItPmRhdGE7DQo+ IC0gICAgICAgdHhfZGF0YS0+c2l6ZSA9IHNrYi0+bGVuOw0KPiAtICAgICAgIHR4X2RhdGEtPnNr YiAgPSBza2I7DQo+IC0NCj4gICAgICAgICB2aWYtPm5ldHN0YXRzLnR4X3BhY2tldHMrKzsNCj4g LSAgICAgICB2aWYtPm5ldHN0YXRzLnR4X2J5dGVzICs9IHR4X2RhdGEtPnNpemU7DQo+IC0gICAg ICAgcXVldWVfY291bnQgPSB3aWxjX3dsYW5fdHhxX2FkZF9uZXRfcGt0KG5kZXYsIHR4X2RhdGEs DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR4X2Rh dGEtPmJ1ZmYsIHR4X2RhdGEtPnNpemUsDQo+ICsgICAgICAgdmlmLT5uZXRzdGF0cy50eF9ieXRl cyArPSBza2ItPmxlbjsNCj4gKyAgICAgICBxdWV1ZV9jb3VudCA9IHdpbGNfd2xhbl90eHFfYWRk X25ldF9wa3QobmRldiwgc2tiLCBza2ItPmRhdGEsIHNrYi0+bGVuLA0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxjX3R4X2NvbXBsZXRlKTsNCg0K UGFzc2luZyBvbmx5ICdza2InIHNob3VsZCBiZSBlbm91Z2ggYW5kIHdpbGNfd2xhbl90eHFfYWRk X25ldF9wa3Qgc2hvdWxkDQpiZSBtb2RpZnkgdG8gZXh0cmFjdCB0aGUgYnVmZmVyIGFuZCBsZW5n dGggdmFsdWUgaW50ZXJuYWxseS4NCg0KPiANCj4gICAgICAgICBpZiAocXVldWVfY291bnQgPiBG TE9XX0NPTlRST0xfVVBQRVJfVEhSRVNIT0xEKSB7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYw0KPiBpbmRleCA1OGJiZjUwMDgxZTQuLjE5NTYx YTgwNzEzNyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dp bGMxMDAwL3dsYW4uYw0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2ls YzEwMDAvd2xhbi5jDQo+IEBAIC0yMjEsOCArMjIxLDcgQEAgc3RhdGljIHZvaWQgd2lsY193bGFu X3R4cV9maWx0ZXJfZHVwX3RjcF9hY2soc3RydWN0IG5ldF9kZXZpY2UgKmRldikNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxjX3dsYW5fdHhxX3JlbW92ZSh3aWxjLCB0cWUt PnFfbnVtLCB0cWUpOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRxZS0+c3Rh dHVzID0gMTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHFlLT50eF9j b21wbGV0ZV9mdW5jKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dHFlLT50eF9jb21wbGV0ZV9mdW5jKHRxZS0+cHJpdiwNCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cWUtPnN0YXR1cyk7DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cWUtPnR4X2NvbXBsZXRl X2Z1bmModHFlKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZnJlZSh0cWUp Ow0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BwZWQrKzsNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KPiBAQCAtMjcwLDEwICsyNjksMTAgQEAgc3RhdGljIGludCB3 aWxjX3dsYW5fdHhxX2FkZF9jZmdfcGt0KHN0cnVjdCB3aWxjX3ZpZiAqdmlmLCB1OCAqYnVmZmVy LA0KPiAgICAgICAgIH0NCj4gDQo+ICAgICAgICAgdHFlLT50eXBlID0gV0lMQ19DRkdfUEtUOw0K PiArICAgICAgIHRxZS0+c2tiID0gTlVMTDsNCj4gICAgICAgICB0cWUtPmJ1ZmZlciA9IGJ1ZmZl cjsNCj4gICAgICAgICB0cWUtPmJ1ZmZlcl9zaXplID0gYnVmZmVyX3NpemU7DQo+ICAgICAgICAg dHFlLT50eF9jb21wbGV0ZV9mdW5jID0gTlVMTDsNCj4gLSAgICAgICB0cWUtPnByaXYgPSBOVUxM Ow0KPiAgICAgICAgIHRxZS0+cV9udW0gPSBBQ19WT19ROw0KPiAgICAgICAgIHRxZS0+YWNrX2lk eCA9IE5PVF9UQ1BfQUNLOw0KPiAgICAgICAgIHRxZS0+dmlmID0gdmlmOw0KPiBAQCAtNDEwLDEy ICs0MDksMTIgQEAgc3RhdGljIGlubGluZSB1OCBhY19jaGFuZ2Uoc3RydWN0IHdpbGMgKndpbGMs IHU4ICphYykNCj4gICAgICAgICByZXR1cm4gMTsNCj4gIH0NCj4gDQo+IC1pbnQgd2lsY193bGFu X3R4cV9hZGRfbmV0X3BrdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LA0KPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHhfY29tcGxldGVfZGF0YSAqdHhfZGF0YSwgdTggKmJ1 ZmZlciwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGJ1ZmZlcl9zaXplLA0K PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqdHhfY29tcGxldGVfZm4pKHZv aWQgKiwgaW50KSkNCj4gK2ludCB3aWxjX3dsYW5fdHhxX2FkZF9uZXRfcGt0KHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHU4ICpidWZmZXIsIHUzMiBidWZmZXJfc2l6ZSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdm9pZCAoKnR4X2NvbXBsZXRlX2ZuKShzdHJ1Y3QgdHhxX2VudHJ5X3Qg KikpDQo+ICB7DQo+IC0gICAgICAgc3RydWN0IHR4cV9lbnRyeV90ICp0cWU7DQo+ICsgICAgICAg c3RydWN0IHR4cV9lbnRyeV90ICp0cWUsIGR1bW15ID0geyAuc2tiID0gc2tiLCAuYnVmZmVyID0g YnVmZmVyLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmJ1 ZmZlcl9zaXplID0gYnVmZmVyX3NpemUgfTsNCg0KTm8gbmVlZCB0byB1c2UgYSAnZHVtbXknIHZh cmlhYmxlIGhlcmUuDQoNCj4gICAgICAgICBzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9w cml2KGRldik7DQo+ICAgICAgICAgc3RydWN0IHdpbGMgKndpbGM7DQo+ICAgICAgICAgdTggcV9u dW07DQo+IEBAIC00MjMsMzIgKzQyMiwzMiBAQCBpbnQgd2lsY193bGFuX3R4cV9hZGRfbmV0X3Br dChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LA0KPiAgICAgICAgIHdpbGMgPSB2aWYtPndpbGM7DQo+ IA0KPiAgICAgICAgIGlmICh3aWxjLT5xdWl0KSB7DQo+IC0gICAgICAgICAgICAgICB0eF9jb21w bGV0ZV9mbih0eF9kYXRhLCAwKTsNCj4gKyAgICAgICAgICAgICAgIHR4X2NvbXBsZXRlX2ZuKCZk dW1teSk7DQoNCidza2InIGJ1ZmZlciBjYW4gYmUgZnJlZSBkaXJlY3RseSBvciAndHhfY29tcGxl dGVfZm4nIHNob3VsZCBiZSBtb2RpZnkNCnRvIHdvcmsgdXNpbmcgYnVmZmVyIHBvaW50ZXIgc2lu Y2UgJ3R4X2RhdGEnIGlzIGRlbGV0ZWQgaW4gdGhpcyBwYXRjaC4NCg0KPiAgICAgICAgICAgICAg ICAgcmV0dXJuIDA7DQo+ICAgICAgICAgfQ0KPiANCj4gICAgICAgICBpZiAoIXdpbGMtPmluaXRp YWxpemVkKSB7DQo+IC0gICAgICAgICAgICAgICB0eF9jb21wbGV0ZV9mbih0eF9kYXRhLCAwKTsN Cj4gKyAgICAgICAgICAgICAgIHR4X2NvbXBsZXRlX2ZuKCZkdW1teSk7DQoNCnNhbWUgYXMgYWJv dmUgY29tbWVudC4NCg0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ICAgICAgICAgfQ0K PiANCj4gICAgICAgICB0cWUgPSBrbWFsbG9jKHNpemVvZigqdHFlKSwgR0ZQX0FUT01JQyk7DQo+ IA0KPiAgICAgICAgIGlmICghdHFlKSB7DQo+IC0gICAgICAgICAgICAgICB0eF9jb21wbGV0ZV9m bih0eF9kYXRhLCAwKTsNCj4gKyAgICAgICAgICAgICAgIHR4X2NvbXBsZXRlX2ZuKCZkdW1teSk7 DQo+ICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gICAgICAgICB9DQo+ICAgICAgICAgdHFl LT50eXBlID0gV0lMQ19ORVRfUEtUOw0KPiArICAgICAgIHRxZS0+c2tiID0gc2tiOw0KPiAgICAg ICAgIHRxZS0+YnVmZmVyID0gYnVmZmVyOw0KPiAgICAgICAgIHRxZS0+YnVmZmVyX3NpemUgPSBi dWZmZXJfc2l6ZTsNCg0KVGhlIGFib3ZlIGNhbiBiZSBtb2RpZmllZCB0byBmaWxsIHVzaW5nIHNr YiBidWZmZXINCiAgICAgZS5nDQoNCiAgICAgICAgIHRxZS0+YnVmZmVyID0gc2tiLT5kYXRhOw0K ICAgICAgICAgdHFlLT5idWZmZXJfc2l6ZSA9IHNrYi0+bGVuOw0KDQo+ICAgICAgICAgdHFlLT50 eF9jb21wbGV0ZV9mdW5jID0gdHhfY29tcGxldGVfZm47DQo+IC0gICAgICAgdHFlLT5wcml2ID0g dHhfZGF0YTsNCj4gICAgICAgICB0cWUtPnZpZiA9IHZpZjsNCj4gDQo+IC0gICAgICAgcV9udW0g PSBhY19jbGFzc2lmeSh3aWxjLCB0eF9kYXRhLT5za2IpOw0KPiArICAgICAgIHFfbnVtID0gYWNf Y2xhc3NpZnkod2lsYywgc2tiKTsNCj4gICAgICAgICB0cWUtPnFfbnVtID0gcV9udW07DQo+ICAg ICAgICAgaWYgKGFjX2NoYW5nZSh3aWxjLCAmcV9udW0pKSB7DQo+IC0gICAgICAgICAgICAgICB0 eF9jb21wbGV0ZV9mbih0eF9kYXRhLCAwKTsNCj4gKyAgICAgICAgICAgICAgIHR4X2NvbXBsZXRl X2ZuKHRxZSk7DQo+ICAgICAgICAgICAgICAgICBrZnJlZSh0cWUpOw0KPiAgICAgICAgICAgICAg ICAgcmV0dXJuIDA7DQo+ICAgICAgICAgfQ0KPiBAQCAtNDU5LDQzICs0NTgsNDQgQEAgaW50IHdp bGNfd2xhbl90eHFfYWRkX25ldF9wa3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgdGNwX3Byb2Nlc3MoZGV2LCB0cWUpOw0KPiAgICAgICAgICAgICAg ICAgd2lsY193bGFuX3R4cV9hZGRfdG9fdGFpbChkZXYsIHFfbnVtLCB0cWUpOw0KPiAgICAgICAg IH0gZWxzZSB7DQo+IC0gICAgICAgICAgICAgICB0eF9jb21wbGV0ZV9mbih0eF9kYXRhLCAwKTsN Cj4gKyAgICAgICAgICAgICAgIHR4X2NvbXBsZXRlX2ZuKHRxZSk7DQo+ICAgICAgICAgICAgICAg ICBrZnJlZSh0cWUpOw0KPiAgICAgICAgIH0NCj4gDQo+ICAgICAgICAgcmV0dXJuIHdpbGMtPnR4 cV9lbnRyaWVzOw0KPiAgfQ0KPiANCj4gLWludCB3aWxjX3dsYW5fdHhxX2FkZF9tZ210X3BrdChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB2b2lkICpwcml2LCB1OCAqYnVmZmVyLA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGJ1ZmZlcl9zaXplLA0KPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdm9pZCAoKnR4X2NvbXBsZXRlX2ZuKSh2b2lkICosIGludCkpDQo+ ICtpbnQgd2lsY193bGFuX3R4cV9hZGRfbWdtdF9wa3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg c3RydWN0IHNrX2J1ZmYgKnNrYiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4 ICpidWZmZXIsIHUzMiBidWZmZXJfc2l6ZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZvaWQgKCp0eF9jb21wbGV0ZV9mbikoc3RydWN0IHR4cV9lbnRyeV90ICopKQ0KPiAgew0K DQonc2tiJyBhcmd1bWVudCBpcyBub3QgbmVjZXNzYXJ5IGluIHRoaXMgZnVuY3Rpb24uDQoNCj4g LSAgICAgICBzdHJ1Y3QgdHhxX2VudHJ5X3QgKnRxZTsNCj4gKyAgICAgICBzdHJ1Y3QgdHhxX2Vu dHJ5X3QgKnRxZSwgZHVtbXkgPSB7IC5za2IgPSBza2IsIC5idWZmZXIgPSBidWZmZXIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYnVmZmVyX3NpemUgPSBi dWZmZXJfc2l6ZSB9Ow0KDQpObyBuZWVkIHRvIHVzZSBhICdkdW1teScgdmFyaWFibGUgaGVyZS4N Cg0KPiAgICAgICAgIHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYoZGV2KTsNCj4g ICAgICAgICBzdHJ1Y3Qgd2lsYyAqd2lsYzsNCj4gDQo+ICAgICAgICAgd2lsYyA9IHZpZi0+d2ls YzsNCj4gDQo+ICAgICAgICAgaWYgKHdpbGMtPnF1aXQpIHsNCj4gLSAgICAgICAgICAgICAgIHR4 X2NvbXBsZXRlX2ZuKHByaXYsIDApOw0KPiArICAgICAgICAgICAgICAgdHhfY29tcGxldGVfZm4o JmR1bW15KTsNCnNhbWUgYXMgZWFybGllciAndHhfY29tcGxldGVfZm4nIGNhbGwuDQo+ICAgICAg ICAgICAgICAgICByZXR1cm4gMDsNCj4gICAgICAgICB9DQo+IA0KPiAgICAgICAgIGlmICghd2ls Yy0+aW5pdGlhbGl6ZWQpIHsNCj4gLSAgICAgICAgICAgICAgIHR4X2NvbXBsZXRlX2ZuKHByaXYs IDApOw0KPiArICAgICAgICAgICAgICAgdHhfY29tcGxldGVfZm4oJmR1bW15KTsNCg0Kc2FtZSBh cyBhYm92ZS4NCg0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ICAgICAgICAgfQ0KPiAg ICAgICAgIHRxZSA9IGttYWxsb2Moc2l6ZW9mKCp0cWUpLCBHRlBfQVRPTUlDKTsNCj4gDQo+ICAg ICAgICAgaWYgKCF0cWUpIHsNCj4gLSAgICAgICAgICAgICAgIHR4X2NvbXBsZXRlX2ZuKHByaXYs IDApOw0KPiArICAgICAgICAgICAgICAgdHhfY29tcGxldGVfZm4oJmR1bW15KTsNCg0Kc2FtZSBh cyBhYm92ZS4NCg0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ICAgICAgICAgfQ0KPiAg ICAgICAgIHRxZS0+dHlwZSA9IFdJTENfTUdNVF9QS1Q7DQo+ICsgICAgICAgdHFlLT5za2IgPSBz a2I7DQoNClNldHRpbmcgb2YgJ3NrYicgYnVmZmVyIGlzIG5vdCBuZWVkZWQgZm9yIFdMQU4gZnJh bWVzLg0KDQo+ICAgICAgICAgdHFlLT5idWZmZXIgPSBidWZmZXI7DQo+ICAgICAgICAgdHFlLT5i dWZmZXJfc2l6ZSA9IGJ1ZmZlcl9zaXplOw0KPiAgICAgICAgIHRxZS0+dHhfY29tcGxldGVfZnVu YyA9IHR4X2NvbXBsZXRlX2ZuOw0KPiAtICAgICAgIHRxZS0+cHJpdiA9IHByaXY7DQo+ICAgICAg ICAgdHFlLT5xX251bSA9IEFDX0JFX1E7DQo+ICAgICAgICAgdHFlLT5hY2tfaWR4ID0gTk9UX1RD UF9BQ0s7DQo+ICAgICAgICAgdHFlLT52aWYgPSB2aWY7DQo+IEBAIC05MTgsNyArOTE4LDcgQEAg aW50IHdpbGNfd2xhbl9oYW5kbGVfdHhxKHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgKnR4cV9jb3Vu dCkNCj4gICAgICAgICAgICAgICAgIGkrKzsNCj4gICAgICAgICAgICAgICAgIHRxZS0+c3RhdHVz ID0gMTsNCj4gICAgICAgICAgICAgICAgIGlmICh0cWUtPnR4X2NvbXBsZXRlX2Z1bmMpDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgIHRxZS0+dHhfY29tcGxldGVfZnVuYyh0cWUtPnByaXYsIHRx ZS0+c3RhdHVzKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgdHFlLT50eF9jb21wbGV0ZV9m dW5jKHRxZSk7DQo+ICAgICAgICAgICAgICAgICBpZiAodHFlLT5hY2tfaWR4ICE9IE5PVF9UQ1Bf QUNLICYmDQo+ICAgICAgICAgICAgICAgICAgICAgdHFlLT5hY2tfaWR4IDwgTUFYX1BFTkRJTkdf QUNLUykNCj4gICAgICAgICAgICAgICAgICAgICAgICAgdmlmLT5hY2tfZmlsdGVyLnBlbmRpbmdf YWNrc1t0cWUtPmFja19pZHhdLnR4cWUgPSBOVUxMOw0KPiBAQCAtMTI0NCw3ICsxMjQ0LDcgQEAg dm9pZCB3aWxjX3dsYW5fY2xlYW51cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQ0KPiAgICAgICAg IGZvciAoYWMgPSAwOyBhYyA8IE5RVUVVRVM7IGFjKyspIHsNCj4gICAgICAgICAgICAgICAgIHdo aWxlICgodHFlID0gd2lsY193bGFuX3R4cV9yZW1vdmVfZnJvbV9oZWFkKHdpbGMsIGFjKSkpIHsN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRxZS0+dHhfY29tcGxldGVfZnVuYykNCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cWUtPnR4X2NvbXBsZXRlX2Z1bmModHFl LT5wcml2LCAwKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cWUtPnR4X2Nv bXBsZXRlX2Z1bmModHFlKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAga2ZyZWUodHFlKTsN Cj4gICAgICAgICAgICAgICAgIH0NCj4gICAgICAgICB9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaA0KPiBpbmRleCBhNzJjZDVjYWM4MWQuLmVj Y2NkNDNiYWFhMyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlw L3dpbGMxMDAwL3dsYW4uaA0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAv d2lsYzEwMDAvd2xhbi5oDQo+IEBAIC0zMjgsMTAgKzMyOCwxMCBAQCBzdHJ1Y3QgdHhxX2VudHJ5 X3Qgew0KPiAgICAgICAgIGludCBhY2tfaWR4Ow0KPiAgICAgICAgIHU4ICpidWZmZXI7DQo+ICAg ICAgICAgaW50IGJ1ZmZlcl9zaXplOw0KPiAtICAgICAgIHZvaWQgKnByaXY7DQo+ICsgICAgICAg c3RydWN0IHNrX2J1ZmYgKnNrYjsNCg0KSW4gbXkgb3BpbmlvbiwgaWYgYSBzaW5nbGUgYnVmZmVy IGlzIHVzZWQgdGhlbiBpdCBwYXRjaCBtYWtlcyBzZW5zZQ0Kb3RoZXJ3aXNlIHRoZSBwcmV2aW91 cyBpbXBsZW1lbnRhdGlvbiB3YXMgbW9yZSByZWFkYWJsZS4NCg0KPiAgICAgICAgIGludCBzdGF0 dXM7DQo+ICAgICAgICAgc3RydWN0IHdpbGNfdmlmICp2aWY7DQo+IC0gICAgICAgdm9pZCAoKnR4 X2NvbXBsZXRlX2Z1bmMpKHZvaWQgKnByaXYsIGludCBzdGF0dXMpOw0KPiArICAgICAgIHZvaWQg KCp0eF9jb21wbGV0ZV9mdW5jKShzdHJ1Y3QgdHhxX2VudHJ5X3QgKnRxZSk7DQo+ICB9Ow0KPiAN Cj4gIHN0cnVjdCB0eHFfZndfcmVjdl9xdWV1ZV9zdGF0IHsNCj4gQEAgLTM3OCwxMiArMzc4LDYg QEAgc3RydWN0IHdpbGNfaGlmX2Z1bmMgew0KPiANCj4gICNkZWZpbmUgV0lMQ19NQVhfQ0ZHX0ZS QU1FX1NJWkUgICAgICAgICAgICAgICAgMTQ2OA0KPiANCj4gLXN0cnVjdCB0eF9jb21wbGV0ZV9k YXRhIHsNCj4gLSAgICAgICBpbnQgc2l6ZTsNCj4gLSAgICAgICB2b2lkICpidWZmOw0KPiAtICAg ICAgIHN0cnVjdCBza19idWZmICpza2I7DQo+IC19Ow0KPiAtDQo+ICBzdHJ1Y3Qgd2lsY19jZmdf Y21kX2hkciB7DQo+ICAgICAgICAgdTggY21kX3R5cGU7DQo+ICAgICAgICAgdTggc2VxX25vOw0K PiBAQCAtNDA3LDEwICs0MDEsOSBAQCBpbnQgd2lsY193bGFuX2Zpcm13YXJlX2Rvd25sb2FkKHN0 cnVjdCB3aWxjICp3aWxjLCBjb25zdCB1OCAqYnVmZmVyLA0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHUzMiBidWZmZXJfc2l6ZSk7DQo+ICBpbnQgd2lsY193bGFuX3N0YXJ0KHN0 cnVjdCB3aWxjICp3aWxjKTsNCj4gIGludCB3aWxjX3dsYW5fc3RvcChzdHJ1Y3Qgd2lsYyAqd2ls Yywgc3RydWN0IHdpbGNfdmlmICp2aWYpOw0KPiAtaW50IHdpbGNfd2xhbl90eHFfYWRkX25ldF9w a3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR4X2NvbXBsZXRlX2RhdGEgKnR4X2RhdGEsIHU4ICpidWZmZXIsDQo+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBidWZmZXJfc2l6ZSwNCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdm9pZCAoKnR4X2NvbXBsZXRlX2ZuKSh2b2lkICosIGludCkpOw0K PiAraW50IHdpbGNfd2xhbl90eHFfYWRkX25ldF9wa3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg c3RydWN0IHNrX2J1ZmYgKnNrYiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTgg KmJ1ZmZlciwgdTMyIGJ1ZmZlcl9zaXplLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2b2lkICgqdHhfY29tcGxldGVfZm4pKHN0cnVjdCB0eHFfZW50cnlfdCAqKSk7DQo+ICBpbnQg d2lsY193bGFuX2hhbmRsZV90eHEoc3RydWN0IHdpbGMgKndsLCB1MzIgKnR4cV9jb3VudCk7DQo+ ICB2b2lkIHdpbGNfaGFuZGxlX2lzcihzdHJ1Y3Qgd2lsYyAqd2lsYyk7DQo+ICB2b2lkIHdpbGNf d2xhbl9jbGVhbnVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOw0KPiBAQCAtNDE4LDggKzQxMSw5 IEBAIGludCB3aWxjX3dsYW5fY2ZnX3NldChzdHJ1Y3Qgd2lsY192aWYgKnZpZiwgaW50IHN0YXJ0 LCB1MTYgd2lkLCB1OCAqYnVmZmVyLA0KPiAgICAgICAgICAgICAgICAgICAgICAgdTMyIGJ1ZmZl cl9zaXplLCBpbnQgY29tbWl0LCB1MzIgZHJ2X2hhbmRsZXIpOw0KPiAgaW50IHdpbGNfd2xhbl9j ZmdfZ2V0KHN0cnVjdCB3aWxjX3ZpZiAqdmlmLCBpbnQgc3RhcnQsIHUxNiB3aWQsIGludCBjb21t aXQsDQo+ICAgICAgICAgICAgICAgICAgICAgICB1MzIgZHJ2X2hhbmRsZXIpOw0KPiAtaW50IHdp bGNfd2xhbl90eHFfYWRkX21nbXRfcGt0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKnBy aXYsIHU4ICpidWZmZXIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgYnVm ZmVyX3NpemUsIHZvaWQgKCpmdW5jKSh2b2lkICosIGludCkpOw0KPiAraW50IHdpbGNfd2xhbl90 eHFfYWRkX21nbXRfcGt0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpz a2IsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCAqYnVmZmVyLCB1MzIgYnVm ZmVyX3NpemUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqdHhfY29t cGxldGVfZm4pKHN0cnVjdCB0eHFfZW50cnlfdCAqKSk7DQo+ICB2b2lkIHdpbGNfZW5hYmxlX3Rj cF9hY2tfZmlsdGVyKHN0cnVjdCB3aWxjX3ZpZiAqdmlmLCBib29sIHZhbHVlKTsNCj4gIGludCB3 aWxjX3dsYW5fZ2V0X251bV9jb25uX2lmY3Moc3RydWN0IHdpbGMgKndpbGMpOw0KPiAgbmV0ZGV2 X3R4X3Qgd2lsY19tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2KTsNCj4gLS0NCj4gMi40MS4wDQo+IA0KDQo=