From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0F4D3CD6E59 for ; Wed, 11 Oct 2023 10:26:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=WiGeFeHY4YBDsuVS1Tkr9wckpWaBjvMUetvjaNmwMkQ=; b=YaQlrxj27GtKZW ARTokrJD9HVABjjgV7TTrW2sz0Zvh2X3oPEeddYBCUl3NesOJ+mhn880oWWRTm9AEc4UfeSOmYb8r DNeTz447IVKqujSGxcqpVHwhz+D3E4CR9PAnk0e3QbfybZcPcWPKp4Skp8idEz0q+tleQh60KSDbf +MuZZGyThu1rtM2Yax59tqTTPbghLs/19EZQqsbO9DYUt1KR/HUFzWNjJk0T5Xpo0VPiDCYJGUH7o 8i7vYwyZuzAs9PpRhL5TTOtnEt50Ec/Nw74sOUSotPdkHySBwwRDNZWlf4tujtq0y1nUeNqDWX4sM Z922IofKif8YINTfgr6w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qqWPZ-00FSq9-2n; Wed, 11 Oct 2023 10:25:53 +0000 Received: from mail-he1eur04on0627.outbound.protection.outlook.com ([2a01:111:f400:fe0d::627] helo=EUR04-HE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qqWPV-00FSpG-1S for linux-arm-kernel@lists.infradead.org; Wed, 11 Oct 2023 10:25:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FD2wsXk4ZP6QS0Ku1RG8uxMcebFl6XThy5GcC/vdtsWs1uj2KONJOIAe7Rcl2KQRj8fTxrFE62mj4yiFedCV8bG+Wefhhe9VEdSreBQczbAQstNwhqQUV+j/gct8iNEETvtF2fogCMK5PF9Dxgzw0AeHbS7KpS7ELrcfhiF7R4HoKcrGqbxPByEG7umtxpTt2k+NJ31SxsOX3wQUes+X9vqBURcwNo4LABAW2BfotG30NJsYnPCMOVg12I9xVZqJScq9OtgHDGNK+tP7c3bPZ5dsopGoBF47WzBqVWMFKfmMNBHhWzRvJTVUK1u5v9cEIxJQEXhc02sAaJnun0BbyQ== 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=voEMFhJnHcGQ07j4XBjVpP30ULPoCWKqrt6snntFwQ0=; b=J/ie7jPiwBe0KEe4/oWEw66pYg4KoCl0P1bP7upELpc/3QfcRfK4qWtGeWl/icMFsd5zdmr+7aeURotF2GJVlQy+m4LfmUJzxHX0PwN9B5xqT4wkvu82ejuH30IfjZGSkyGMJ+285jKpHeTzUXfIWqYeVw9qXWy//DzoZ0YJVAROMJJofOmRbyLpbYc61DMrn1Euh1UYxgrt4mpCFdln/Q3yw7TxJ1qbbvTGCk3OIY+56jaIiG20/umWBnkni8d46qDGvSoJE2e+5yDaD9dDqdWatIBRzCP2rqA+r3HOLSmzUe75W10gS4QIZfeRKsMf7WEFUuLMC+KNCbMgiGEK9g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=voEMFhJnHcGQ07j4XBjVpP30ULPoCWKqrt6snntFwQ0=; b=qKfSB51cqavwVi1LX/aHHO1AQ3/Jz3Y3UAhS0ctyu+7CA5NAh4Ctb+NjCWJsAyRt4I7aDVzfEB2Wsj2PySqCOVwKeNo2jR9KFebJwxpxzUy9p8vZrZz9WJt+OV+Nddyo9GdNwc78zHAQr/rCtEDsrldqe5tCabDHBv6jhS3C4a4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by PAXPR04MB8320.eurprd04.prod.outlook.com (2603:10a6:102:1cf::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6863.38; Wed, 11 Oct 2023 10:25:42 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::992:76c8:4771:8367]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::992:76c8:4771:8367%7]) with mapi id 15.20.6863.041; Wed, 11 Oct 2023 10:25:41 +0000 Date: Wed, 11 Oct 2023 13:25:36 +0300 From: Vladimir Oltean To: MD Danish Anwar Cc: Andrew Lunn , Roger Quadros , Vignesh Raghavendra , Richard Cochran , Paolo Abeni , Jakub Kicinski , Eric Dumazet , "David S. Miller" , Simon Horman , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, srk@ti.com, r-gunasekaran@ti.com, linux-arm-kernel@lists.infradead.org, Roger Quadros , Vinicius Costa Gomes Subject: Re: [PATCH net-next v4] net: ti: icssg_prueth: add TAPRIO offload support Message-ID: <20231011102536.r65xyzmh5kap2cf2@skbuf> References: <20231006102028.3831341-1-danishanwar@ti.com> Content-Disposition: inline In-Reply-To: <20231006102028.3831341-1-danishanwar@ti.com> X-ClientProxiedBy: VE1PR08CA0033.eurprd08.prod.outlook.com (2603:10a6:803:104::46) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|PAXPR04MB8320:EE_ X-MS-Office365-Filtering-Correlation-Id: f2e5b2cf-3583-4fe5-521e-08dbca446bba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: E0YEPJjYEjaMHiagPzLxOms33ngF4EKv8y1NZfKcSIfIjrRNLisWHa/ysrWb+K5a4SWR7bIOPg3TL6zvXXpS4Pf9X48gD/9NDxCYAfDVxikXRjFuvHGdCb2AHgABTFkRPgcSxYSz2y6YkG98o1DdFylfR0kKw1MtBvwERLP9dor+WaaN+DLDYyIvHTdhjuZNUv7TabwRdiz8Uur+4ez9dP/eLbMvMFOpuk6DPe/QyhI6ZQQPMyDnipKMKH2Yx34k/xYYvSry4fJFkssCn564QA1YSiqHuKelGd1i5o2qH/DiIkAsMlSdC2UHT8A51utq9Huu9ShXrzLzr7OVSHzcwmnM8hXMEqSAmktkkHixJsY5P4JwYXvYUPPqDZGKHGhijaOZvL2hpSu7AwM8fm8LiecAF5Ff3dh7JIP9UusuLv8g07OQdzGbo4SFmXculxGjqqD4GbU7QU3CRf+igq/pvXmsOvuV+Lxlcdf/RuLphUeFhpdl9ub4rtGazUdh0AvH18E/dMOJB1tWPonfgVUEDPhBVKBfoE9mcutrfRbE1G8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(7916004)(396003)(346002)(136003)(366004)(376002)(39860400002)(230922051799003)(1800799009)(186009)(64100799003)(451199024)(1076003)(6512007)(9686003)(38100700002)(86362001)(44832011)(83380400001)(7416002)(2906002)(30864003)(6486002)(966005)(6666004)(478600001)(4326008)(6506007)(8676002)(26005)(8936002)(6916009)(66476007)(316002)(41300700001)(33716001)(66556008)(54906003)(66946007)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NmpJZFNpSWpSTEpzemd0RjdWdlF2S0xpN2RZeHV3VFJSNmptUTZHUTh3bCtH?= =?utf-8?B?N2xKdjFRSFVQQldMMjNlcnZtYnlzZktDd0hUM0l5S0ZlTUVhRWtrd2JIYWdt?= =?utf-8?B?TnA3c09oTlZFT3JtZWl1WldxY29uZE5lS3lCR0NabVlLaWxWdXNPejRiQ0M0?= =?utf-8?B?azFqUDh6SEFkekpVVGpMdGlVYW01WVF5UjcwSWhFR0kyTUNydTc2V2VwWDQv?= =?utf-8?B?Z3JkVzJZNjFiWE1BeTIvOEVUTXRqanFqVGJXQTFBVVBhTzBGMDk1VTg2RlR2?= =?utf-8?B?TEQzTzN2ZWJ2dnRESnVlT25FNnVyZmF1Mk9uN016em00dFZQdjdSZ1dSemY1?= =?utf-8?B?VWRoV1Z0VVF4VUhhUEx4ZUVuZFNWb0w4b2J6b3U2dDVEVzZOaTRDcUVZVkhj?= =?utf-8?B?TnJrTHdkQ29lMm9qcVU5WllxUjdLM2twYjJwcWVxRTZuL3puUmpxQ1dJQzBa?= =?utf-8?B?UFFxdzRVWlFHMkNiaEx3KzJKcEhzbnJkZlBhSjh5QXIxY2w1N0RaOE82TUJR?= =?utf-8?B?SVBuT05KZGxpVjlnRFVzU0NhdDVnazVvbkFRS0R6c0pJZ1Q4VVZoQ0VrZitN?= =?utf-8?B?OFlDMitoQWQwOTlZK3Z3MlArSDlKaDZEeDZaekc5dGRuWTBrdEZrcGFXSE0w?= =?utf-8?B?SzVrMXFGMFdGa0VNcmRDT29JVFNlamRqUURuUDNoOUcwZ3lybDc0djIrY2NP?= =?utf-8?B?UElpcHhaK3dXZk9LZStPb1BaUE5OTHc4WGEyQUppVmtXQjNHMlFvU0Y3N2ZP?= =?utf-8?B?WU9qZlR0cEFIc3lmL1UxVk41S2lDTnBqZ3VxYVVVQUF4aGREMTFDWnBZdXF5?= =?utf-8?B?MHA0blZWWTJ4YU5TOTR3NEtReW1QSXNKU1hieWx1U0pxcmZRWU5kOEVoZHZT?= =?utf-8?B?MDdPUWozdS9WREJFbkhRYVhFUHU5VzRYK3BnSjcyZUx6S1ovNW8xdE0zMUJ3?= =?utf-8?B?ZEFQNFVJdEhjV3ozSmZucEVxNEU2L1g0ZTdVWFFET1lYdk5rRkYwaGdmck5h?= =?utf-8?B?czhuVGV4b0I1b2tJTEFOV3NONUg0b1RzWXgzK0g3M1VqaklXcGZLVjdNNDky?= =?utf-8?B?cGVuc05nOEtXWGNaZGtqcUhHWHd0S2duUjZJMlNMUFJIdmdZSFlXNHpwN0lR?= =?utf-8?B?YTQxWUNvT1hIaDFRT0RTSnlqOHU1UlA3cVZZZGhMcGJvNWN6RkFmbTNlMmly?= =?utf-8?B?UEJ2OVFyWE9mVGRQRy90cGx2Q3dxK29kRytmRXlrTlp1bE12cHMyREpvTHhy?= =?utf-8?B?R3ZsbGlLakpqcjFsdHFvcENSdGJyUnRQOVZvVENGM1NSRkU3alFTTkZQYnNZ?= =?utf-8?B?U251NHQxYTIyVjhGNDZPcE8wMlRENHdDbWFVV01rVXh3RG5NU1Nrd1Y0SkF6?= =?utf-8?B?ZTFPWHlmTVRBSHRhdHJueTFvak5lcHNJWEJFSFFXcFZoaGRpc3ZHejdpbnln?= =?utf-8?B?RHluQ3NZZkhpUXNtMHFmc2RRYkNQbnU1OUtBdVdFblV0MG94ZW1QaGMrNXJT?= =?utf-8?B?Q05nOFBuY1lWWWVjVnozLzBWQTFocXQ4RkwwTnFtVklKbjBrSkFKSjZKaEln?= =?utf-8?B?YTFSU1VoeCt1WVoydDhGbGVVVW04d25NL0xUMGJqUnpTdURrZ2ttY0dDaEVL?= =?utf-8?B?VjlCazZmM0NuT0YyaFRCR0U3dW9CMExnaWcwY0I0dDJaK3hTUmFWVm5zbUp6?= =?utf-8?B?elBjOS9vc0FEVUZWdTNaZy9jalZNNnN6ekN4MzZtb3p6RzhacHJENyszOWZn?= =?utf-8?B?d3JOSG13bUgrUCtTQ3FicEswdTNQZ0taTjRTRzdrYnBJMytMSis0ZlJIRjZu?= =?utf-8?B?dFNqTG5adThrOGV3VHJkRXJacjF3Z3FYRGRzSkRsUG1GKzRlL1dCOW1XcmRB?= =?utf-8?B?REJLNFQ2aDBweXYzWHJVbHlPMXVQM1VsbThqczJvc0dqVjBBOFloTTJoVnM3?= =?utf-8?B?YkwrTmVKN2p6VHdlZTFSN2V1RVd2M3BXTVpWcFJ1TTRoZzVxc0d3ZVo3NVpC?= =?utf-8?B?ellLbW5KMmhzQy9XZEt6bFZVeitDODEwbm8rWURIb2ZvUGxDcHpkdk1keUJO?= =?utf-8?B?NTU2eXh1QmtZc2lHeUhkSllrd0tCMFUva1N5aGxESVkxWVY5bGk1WlFMZzIx?= =?utf-8?B?alFQaHJORGIyRGhuU1M0SkpDcVMxd25ReHoyUkJBRWxySlJTcHFpR2g5UDBq?= =?utf-8?B?RWc9PQ==?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2e5b2cf-3583-4fe5-521e-08dbca446bba X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2023 10:25:41.9069 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JkpD0KSt/k/U29xVfZTGxTAjp30nDQmA0pLzkdEijZAfCuoC4/HMflCp3T7oJ/k3kkut6Mi54g3AC0v+VBxvbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8320 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231011_032549_677701_8FA87C20 X-CRM114-Status: GOOD ( 36.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBPY3QgMDYsIDIwMjMgYXQgMDM6NTA6MjhQTSArMDUzMCwgTUQgRGFuaXNoIEFud2Fy IHdyb3RlOgo+IEZyb206IFJvZ2VyIFF1YWRyb3MgPHJvZ2VycUB0aS5jb20+Cj4gCj4gSUNTU0cg ZHVhbC1lbWFjIGYvdyBzdXBwb3J0cyBFbmhhbmNlZCBTY2hlZHVsZWQgVHJhZmZpYyAoRVNUIOKA kyBkZWZpbmVkCj4gaW4gUDgwMi4xUWJ2L0QyLjIgdGhhdCBsYXRlciBnb3QgaW5jbHVkZWQgaW4g SUVFRSA4MDIuMVEtMjAxOCkKPiBjb25maWd1cmF0aW9uLiBFU1QgYWxsb3dzIGV4cHJlc3MgcXVl dWUgdHJhZmZpYyB0byBiZSBzY2hlZHVsZWQKPiAocGxhY2VkKSBvbiB0aGUgd2lyZSBhdCBzcGVj aWZpYyByZXBlYXRhYmxlIHRpbWUgaW50ZXJ2YWxzLiBJbgo+IExpbnV4IGtlcm5lbCwgRVNUIGNv bmZpZ3VyYXRpb24gaXMgZG9uZSB0aHJvdWdoIHRjIGNvbW1hbmQgYW5kCj4gdGhlIHRhcHJpbyBz Y2hlZHVsZXIgaW4gdGhlIG5ldCBjb3JlIGltcGxlbWVudHMgYSBzb2Z0d2FyZSBvbmx5Cj4gc2No ZWR1bGVyIChTQ0hfVEFQUklPKS4gSWYgdGhlIE5JQyBpcyBjYXBhYmxlIG9mIEVTVCBjb25maWd1 cmF0aW9uLAo+IHVzZXIgaW5kaWNhdGUgImZsYWcgMiIgaW4gdGhlIGNvbW1hbmQgd2hpY2ggaXMg dGhlbiBwYXJzZWQgYnkKPiB0YXByaW8gc2NoZWR1bGVyIGluIG5ldCBjb3JlIGFuZCBpbmRpY2F0 ZSB0aGF0IHRoZSBjb21tYW5kIGlzIHRvCj4gYmUgb2ZmbG9hZGVkIHRvIGgvdy4gdGFwcmlvIHRo ZW4gb2ZmbG9hZHMgdGhlIGNvbW1hbmQgdG8gdGhlCj4gZHJpdmVyIGJ5IGNhbGxpbmcgbmRvX3Nl dHVwX3RjKCkgbmRvIG9wcy4gVGhpcyBwYXRjaCBpbXBsZW1lbnRzCj4gbmRvX3NldHVwX3RjKCkg dG8gb2ZmbG9hZCBFU1QgY29uZmlndXJhdGlvbiB0byBJQ1NTRy4KPiAKPiBTaWduZWQtb2ZmLWJ5 OiBSb2dlciBRdWFkcm9zIDxyb2dlcnFAdGkuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFZpZ25lc2gg UmFnaGF2ZW5kcmEgPHZpZ25lc2hyQHRpLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNRCBEYW5pc2gg QW53YXIgPGRhbmlzaGFud2FyQHRpLmNvbT4KPiAtLS0KPiBDYzogUm9nZXIgUXVhZHJvcyA8cm9n ZXJxQHRpLmNvbT4KPiBDYzogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgo+IENjOiBWaW5p Y2l1cyBDb3N0YSBHb21lcyA8dmluaWNpdXMuZ29tZXNAaW50ZWwuY29tPgo+IENjOiBKYWt1YiBL aWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgo+IAo+IENoYW5nZXMgZnJvbSB2MyB0byB2NDoKPiAq KSBSZWJhc2VkIG9uIHRoZSBsYXRlc3QgbmV4dC0yMDIzMTAwNSBsaW51eC1uZXh0LgoKVGhlIHRy ZWUgdGhhdCB0aGUgcGF0Y2ggd2lsbCBiZSBhcHBsaWVkIHRvIGlzCmh0dHBzOi8vZ2l0Lmtlcm5l bC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L25ldGRldi9uZXQtbmV4dC5naXQsCm5vdCBs aW51eC1uZXh0LgoKPiAqKSBBZGRyZXNzZWQgUm9nZXIgYW5kIFZpbmljaXVzJyBjb21tZW50cyBh bmQgbW92ZWQgYWxsIHRoZSB2YWxpZGF0aW9ucyB0bwo+ICAgIGVtYWNfdGFwcmlvX3JlcGxhY2Uo KSBBUEkuCj4gKikgTW9kaWZpZWQgZW1hY19zZXR1cF90YXByaW8oKSBBUEkgdG8gdXNlIHN3aXRj aCBjYXNlIGJhc2VkIG9uIHRhcHJpby0+Y21kCj4gICAgYW5kIGFkZGVkIGVtYWNfdGFwcmlvX2Rl c3Ryb3koKSBhbmQgZW1hY190YXByaW9fcmVwbGFjZSgpIEFQSXMuCj4gKikgTW9kaWZpZWQgdGhl IGRvY3VtZW50YXRpb24gb2Ygc3RydWN0cyAvIGVudW1zIGluIGljc3NnX3Fvcy5oIGJ5IHVzaW5n Cj4gICAgdGhlIGNvcnJlY3Qga2RvYyBmb3JtYXQuCj4gCj4gQ2hhbmdlcyBmcm9tIHYyIHRvIHYz Ogo+ICopIFJlYmFzZWQgb24gdGhlIGxhdGVzdCBuZXh0LTIwMjMwOTI4IGxpbnV4LW5leHQuCj4g KikgUmV0YWluZWQgb3JpZ2luYWwgYXV0aG9yc2hpcCBvZiB0aGUgcGF0Y2guCj4gKikgQWRkcmVz c2VkIFJvZ2VyJ3MgY29tbWVudHMgYW5kIG1vZGlmaWVkIGVtYWNfc2V0dXBfdGFwcmlvKCkgYW5k Cj4gICAgZW1hY19zZXRfdGFwcmlvKCkgQVBJcyBhY2NvcmRpbmdseS4KPiAqKSBSZW1vdmVkIG5l dGlmX3J1bm5pbmcoKSBjaGVjayBmcm9tIGVtYWNfc2V0dXBfdGFwcmlvKCkuCj4gKikgQWRkcmVz c2VkIFZpbmljaXVzJyBjb21tZW50cyBhbmQgYWRkZWQgY2hlY2sgZm9yIE1JTiBhbmQgTUFYIGN5 Y2xlIHRpbWUuCj4gKikgQWRkZWQgY2hlY2sgZm9yIGFsbG9jYXRpb24gZmFpbHVyZSBvZiBlc3Rf bmV3IGluIGVtYWNfc2V0dXBfdGFwcmlvKCkuCj4gCj4gQ2hhbmdlcyBmcm9tIHYxIHRvIHYyOgo+ ICopIFJlYmFzZWQgb24gdGhlIGxhdGVzdCBuZXh0LTIwMjMwOTIxIGxpbnV4LW5leHQuCj4gKikg RHJvcHBlZCB0aGUgUkZDIHRhZyBhcyBtZXJnZSB3aW5kb3cgaXMgb3BlbiBub3cuCj4gKikgU3Bs aXR0ZWQgdGhpcyBwYXRjaCBmcm9tIHRoZSBzd2l0Y2ggbW9kZSBzZXJpZXMgW3YxXS4KPiAqKSBS ZW1vdmVkIFRPRE8gY29tbWVudCBhcyBhc2tlZCBieSBBbmRyZXcgYW5kIFJvZ2VyLgo+ICopIENo YW5nZWQgQ29weXJpZ2h0IHRvIDIwMjMgYXMgYXNrZWQgYnkgUm9nZXIuCj4gCj4gdjM6IGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2FsbC8yMDIzMDkyODEwMzAwMC4xODYzMDQtMS1kYW5pc2hhbndh ckB0aS5jb20vCj4gdjI6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC8yMDIzMDkyMTA3MDAz MS43OTU3ODgtMS1kYW5pc2hhbndhckB0aS5jb20vCj4gdjE6IGh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL2FsbC8yMDIzMDgzMDExMDg0Ny4xMjE5NTE1LTEtZGFuaXNoYW53YXJAdGkuY29tLwo+IAo+ ICBkcml2ZXJzL25ldC9ldGhlcm5ldC90aS9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMyArLQo+ ICBkcml2ZXJzL25ldC9ldGhlcm5ldC90aS9pY3NzZy9pY3NzZ19wcnVldGguYyB8ICAgNSArLQo+ ICBkcml2ZXJzL25ldC9ldGhlcm5ldC90aS9pY3NzZy9pY3NzZ19wcnVldGguaCB8ICAgNiArCj4g IGRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2ljc3NnL2ljc3NnX3Fvcy5jICAgIHwgMzAxICsrKysr KysrKysrKysrKysrKysKPiAgZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvaWNzc2cvaWNzc2dfcW9z LmggICAgfCAxMTMgKysrKysrKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDQyNiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJu ZXQvdGkvaWNzc2cvaWNzc2dfcW9zLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0 L2V0aGVybmV0L3RpL2ljc3NnL2ljc3NnX3Fvcy5oCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L3RpL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvTWFrZWZp bGUKPiBpbmRleCAzNGZkN2E3MTZiYTYuLjBkZjYwZGVkMWIyZCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC90aS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3RpL01ha2VmaWxlCj4gQEAgLTM3LDUgKzM3LDYgQEAgaWNzc2ctcHJ1ZXRoLXkgOj0gazMtY3Bw aS1kZXNjLXBvb2wubyBcCj4gIAkJICBpY3NzZy9pY3NzZ19jb25maWcubyBcCj4gIAkJICBpY3Nz Zy9pY3NzZ19taWlfY2ZnLm8gXAo+ICAJCSAgaWNzc2cvaWNzc2dfc3RhdHMubyBcCj4gLQkJICBp Y3NzZy9pY3NzZ19ldGh0b29sLm8KPiArCQkgIGljc3NnL2ljc3NnX2V0aHRvb2wubyBcCj4gKwkJ ICBpY3NzZy9pY3NzZ19xb3Mubwo+ICBvYmotJChDT05GSUdfVElfSUNTU19JRVApICs9IGljc3Nn L2ljc3NfaWVwLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvaWNzc2cv aWNzc2dfcHJ1ZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9pY3NzZy9pY3NzZ19wcnVl dGguYwo+IGluZGV4IDY2MzViMjhiYzY3Mi4uODljMzAxNzE2OTI2IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3RpL2ljc3NnL2ljc3NnX3BydWV0aC5jCj4gKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvdGkvaWNzc2cvaWNzc2dfcHJ1ZXRoLmMKPiBAQCAtMTE2Niw3ICsxMTY2 LDcgQEAgc3RhdGljIGludCBlbWFjX3BoeV9jb25uZWN0KHN0cnVjdCBwcnVldGhfZW1hYyAqZW1h YykKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdTY0IHBydWV0aF9pZXBfZ2V0dGlt ZSh2b2lkICpjbG9ja29wc19kYXRhLCBzdHJ1Y3QgcHRwX3N5c3RlbV90aW1lc3RhbXAgKnN0cykK PiArdTY0IHBydWV0aF9pZXBfZ2V0dGltZSh2b2lkICpjbG9ja29wc19kYXRhLCBzdHJ1Y3QgcHRw X3N5c3RlbV90aW1lc3RhbXAgKnN0cykKPiAgewo+ICAJdTMyIGhpX3JvbGxvdmVyX2NvdW50LCBo aV9yb2xsb3Zlcl9jb3VudF9yOwo+ICAJc3RydWN0IHBydWV0aF9lbWFjICplbWFjID0gY2xvY2tv cHNfZGF0YTsKPiBAQCAtMTQwMyw2ICsxNDAzLDggQEAgc3RhdGljIGludCBlbWFjX25kb19vcGVu KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KQo+ICAJCW5hcGlfZW5hYmxlKCZlbWFjLT50eF9jaG5z W2ldLm5hcGlfdHgpOwo+ICAJbmFwaV9lbmFibGUoJmVtYWMtPm5hcGlfcngpOwo+ICAKPiArCWlj c3NnX3Fvc190YXNfaW5pdChuZGV2KTsKCkkgYmVsaWV2ZSB0aGUgaW50ZW50aW9uIGlzIGZvciB0 aGlzIGNvZGUgdG8gYmUgcnVuIGJlZm9yZSBhbnkgdGFwcmlvCm9mZmxvYWQgaXMgYWRkZWQsIGNv cnJlY3Q/IEJ1dCBpdCBpcyBwb3NzaWJsZSBmb3IgdGhlIHVzZXIgdG8gYWRkIGFuCm9mZmxvYWRl ZCBRZGlzYyBldmVuIHdoaWxlIHRoZSBuZXRkZXYgaGFzIG5vdCB5ZXQgYmVlbiBicm91Z2h0IHVw LgpJcyB0aGF0IGNhc2UgaGFuZGxlZCBjb3JyZWN0bHksIG9yIHdpbGwgaXQgc2ltcGx5IHJlc3Vs dCBpbiBOVUxMIHBvaW50ZXIKZGVyZWZlcmVuY2VzICh0YXMtPmNvbmZpZ19saXN0KT8KCj4gKwo+ ICAJLyogc3RhcnQgUEhZICovCj4gIAlwaHlfc3RhcnQobmRldi0+cGh5ZGV2KTsKPiAgCj4gQEAg LTE2NjksNiArMTY3MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgZW1h Y19uZXRkZXZfb3BzID0gewo+ICAJLm5kb19zZXRfcnhfbW9kZSA9IGVtYWNfbmRvX3NldF9yeF9t b2RlLAo+ICAJLm5kb19ldGhfaW9jdGwgPSBlbWFjX25kb19pb2N0bCwKPiAgCS5uZG9fZ2V0X3N0 YXRzNjQgPSBlbWFjX25kb19nZXRfc3RhdHM2NCwKPiArCS5uZG9fc2V0dXBfdGMgPSBpY3NzZ19x b3NfbmRvX3NldHVwX3RjLAo+ICB9Owo+ICAKPiAgLyogZ2V0IGVtYWNfcG9ydCBjb3JyZXNwb25k aW5nIHRvIGV0aF9ub2RlIG5hbWUgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvdGkvaWNzc2cvaWNzc2dfcHJ1ZXRoLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9pY3Nz Zy9pY3NzZ19wcnVldGguaAo+IGluZGV4IDhiNmQ2YjQ5NzAxMC4uN2NiZjBlNTYxOTA1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2ljc3NnL2ljc3NnX3BydWV0aC5oCj4g KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvaWNzc2cvaWNzc2dfcHJ1ZXRoLmgKPiBAQCAt MzcsNiArMzcsNyBAQAo+ICAjaW5jbHVkZSAiaWNzc2dfY29uZmlnLmgiCj4gICNpbmNsdWRlICJp Y3NzX2llcC5oIgo+ICAjaW5jbHVkZSAiaWNzc2dfc3dpdGNoX21hcC5oIgo+ICsjaW5jbHVkZSAi aWNzc2dfcW9zLmgiCj4gIAo+ICAjZGVmaW5lIFBSVUVUSF9NQVhfTVRVICAgICAgICAgICgyMDAw IC0gRVRIX0hMRU4gLSBFVEhfRkNTX0xFTikKPiAgI2RlZmluZSBQUlVFVEhfTUlOX1BLVF9TSVpF ICAgICAoVkxBTl9FVEhfWkxFTikKPiBAQCAtMTc0LDYgKzE3NSw4IEBAIHN0cnVjdCBwcnVldGhf ZW1hYyB7Cj4gIAo+ICAJc3RydWN0IHBydXNzX21lbV9yZWdpb24gZHJhbTsKPiAgCj4gKwlzdHJ1 Y3QgcHJ1ZXRoX3FvcyBxb3M7Cj4gKwo+ICAJc3RydWN0IGRlbGF5ZWRfd29yayBzdGF0c193b3Jr Owo+ICAJdTY0IHN0YXRzW0lDU1NHX05VTV9TVEFUU107Cj4gIH07Cj4gQEAgLTI4NSw0ICsyODgs NyBAQCB1MzIgaWNzc2dfcXVldWVfbGV2ZWwoc3RydWN0IHBydWV0aCAqcHJ1ZXRoLCBpbnQgcXVl dWUpOwo+ICB2b2lkIGVtYWNfc3RhdHNfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yayk7Cj4gIHZvaWQgZW1hY191cGRhdGVfaGFyZHdhcmVfc3RhdHMoc3RydWN0IHBydWV0aF9l bWFjICplbWFjKTsKPiAgaW50IGVtYWNfZ2V0X3N0YXRfYnlfbmFtZShzdHJ1Y3QgcHJ1ZXRoX2Vt YWMgKmVtYWMsIGNoYXIgKnN0YXRfbmFtZSk7Cj4gKwo+ICt1NjQgcHJ1ZXRoX2llcF9nZXR0aW1l KHZvaWQgKmNsb2Nrb3BzX2RhdGEsIHN0cnVjdCBwdHBfc3lzdGVtX3RpbWVzdGFtcCAqc3RzKTsK PiArCj4gICNlbmRpZiAvKiBfX05FVF9USV9JQ1NTR19QUlVFVEhfSCAqLwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9pY3NzZy9pY3NzZ19xb3MuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3RpL2ljc3NnL2ljc3NnX3Fvcy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBp bmRleCAwMDAwMDAwMDAwMDAuLmM4YzQ0NTBjNDFiYgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC90aS9pY3NzZy9pY3NzZ19xb3MuYwo+IEBAIC0wLDAgKzEsMzAx IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gKy8qIFRleGFzIElu c3RydW1lbnRzIElDU1NHIFBSVUVUSCBRb1Mgc3VibW9kdWxlCj4gKyAqIENvcHlyaWdodCAoQykg MjAyMyBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQgLSBodHRwOi8vd3d3LnRpLmNvbS8K PiArICovCj4gKwo+ICsjaW5jbHVkZSA8bGludXgvcHJpbnRrLmg+Cj4gKyNpbmNsdWRlICJpY3Nz Z19wcnVldGguaCIKPiArI2luY2x1ZGUgImljc3NnX3N3aXRjaF9tYXAuaCIKPiArCj4gK3N0YXRp YyB2b2lkIHRhc191cGRhdGVfZndfbGlzdF9wb2ludGVycyhzdHJ1Y3QgcHJ1ZXRoX2VtYWMgKmVt YWMpCj4gK3sKPiArCXN0cnVjdCB0YXNfY29uZmlnICp0YXMgPSAmZW1hYy0+cW9zLnRhcy5jb25m aWc7Cj4gKwo+ICsJaWYgKChyZWFkYih0YXMtPmFjdGl2ZV9saXN0KSkgPT0gVEFTX0xJU1QwKSB7 Cj4gKwkJdGFzLT5md19hY3RpdmVfbGlzdCA9IGVtYWMtPmRyYW0udmEgKyBUQVNfR0FURV9NQVNL X0xJU1QwOwo+ICsJCXRhcy0+Zndfc2hhZG93X2xpc3QgPSBlbWFjLT5kcmFtLnZhICsgVEFTX0dB VEVfTUFTS19MSVNUMTsKPiArCX0gZWxzZSB7Cj4gKwkJdGFzLT5md19hY3RpdmVfbGlzdCA9IGVt YWMtPmRyYW0udmEgKyBUQVNfR0FURV9NQVNLX0xJU1QxOwo+ICsJCXRhcy0+Zndfc2hhZG93X2xp c3QgPSBlbWFjLT5kcmFtLnZhICsgVEFTX0dBVEVfTUFTS19MSVNUMDsKPiArCX0KPiArfQo+ICsK PiArc3RhdGljIHZvaWQgdGFzX3VwZGF0ZV9tYXhzZHVfdGFibGUoc3RydWN0IHBydWV0aF9lbWFj ICplbWFjKQo+ICt7Cj4gKwlzdHJ1Y3QgdGFzX2NvbmZpZyAqdGFzID0gJmVtYWMtPnFvcy50YXMu Y29uZmlnOwo+ICsJdTE2IF9faW9tZW0gKm1heF9zZHVfdGJsX3B0cjsKPiArCXU4IGdhdGVfaWR4 Owo+ICsKPiArCS8qIHVwZGF0ZSB0aGUgbWF4c2R1IHRhYmxlICovCj4gKwltYXhfc2R1X3RibF9w dHIgPSBlbWFjLT5kcmFtLnZhICsgVEFTX1FVRVVFX01BWF9TRFVfTElTVDsKPiArCj4gKwlmb3Ig KGdhdGVfaWR4ID0gMDsgZ2F0ZV9pZHggPCBUQVNfTUFYX05VTV9RVUVVRVM7IGdhdGVfaWR4Kysp Cj4gKwkJd3JpdGV3KHRhcy0+bWF4X3NkdV90YWJsZS5tYXhfc2R1W2dhdGVfaWR4XSwgJm1heF9z ZHVfdGJsX3B0cltnYXRlX2lkeF0pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCB0YXNfcmVzZXQo c3RydWN0IHBydWV0aF9lbWFjICplbWFjKQo+ICt7Cj4gKwlzdHJ1Y3QgdGFzX2NvbmZpZyAqdGFz ID0gJmVtYWMtPnFvcy50YXMuY29uZmlnOwo+ICsJaW50IGk7Cj4gKwo+ICsJZm9yIChpID0gMDsg aSA8IFRBU19NQVhfTlVNX1FVRVVFUzsgaSsrKQo+ICsJCXRhcy0+bWF4X3NkdV90YWJsZS5tYXhf c2R1W2ldID0gMjA0ODsKPiArCj4gKwl0YXNfdXBkYXRlX21heHNkdV90YWJsZShlbWFjKTsKPiAr Cj4gKwl3cml0ZWIoVEFTX0xJU1QwLCB0YXMtPmFjdGl2ZV9saXN0KTsKPiArCj4gKwltZW1zZXRf aW8odGFzLT5md19hY3RpdmVfbGlzdCwgMCwgc2l6ZW9mKCp0YXMtPmZ3X2FjdGl2ZV9saXN0KSk7 Cj4gKwltZW1zZXRfaW8odGFzLT5md19zaGFkb3dfbGlzdCwgMCwgc2l6ZW9mKCp0YXMtPmZ3X3No YWRvd19saXN0KSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgdGFzX3NldF9zdGF0ZShzdHJ1Y3Qg cHJ1ZXRoX2VtYWMgKmVtYWMsIGVudW0gdGFzX3N0YXRlIHN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3Qg dGFzX2NvbmZpZyAqdGFzID0gJmVtYWMtPnFvcy50YXMuY29uZmlnOwo+ICsJaW50IHJldDsKPiAr Cj4gKwlpZiAodGFzLT5zdGF0ZSA9PSBzdGF0ZSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlzd2l0 Y2ggKHN0YXRlKSB7Cj4gKwljYXNlIFRBU19TVEFURV9SRVNFVDoKPiArCQl0YXNfcmVzZXQoZW1h Yyk7Cj4gKwkJcmV0ID0gZW1hY19zZXRfcG9ydF9zdGF0ZShlbWFjLCBJQ1NTR19FTUFDX1BPUlRf VEFTX1JFU0VUKTsKPiArCQl0YXMtPnN0YXRlID0gVEFTX1NUQVRFX1JFU0VUOwo+ICsJCWJyZWFr Owo+ICsJY2FzZSBUQVNfU1RBVEVfRU5BQkxFOgo+ICsJCXJldCA9IGVtYWNfc2V0X3BvcnRfc3Rh dGUoZW1hYywgSUNTU0dfRU1BQ19QT1JUX1RBU19FTkFCTEUpOwo+ICsJCXRhcy0+c3RhdGUgPSBU QVNfU1RBVEVfRU5BQkxFOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBUQVNfU1RBVEVfRElTQUJMRToK PiArCQlyZXQgPSBlbWFjX3NldF9wb3J0X3N0YXRlKGVtYWMsIElDU1NHX0VNQUNfUE9SVF9UQVNf RElTQUJMRSk7Cj4gKwkJdGFzLT5zdGF0ZSA9IFRBU19TVEFURV9ESVNBQkxFOwo+ICsJCWJyZWFr Owo+ICsJZGVmYXVsdDoKPiArCQluZXRkZXZfZXJyKGVtYWMtPm5kZXYsICIlczogdW5zdXBwb3J0 ZWQgc3RhdGVcbiIsIF9fZnVuY19fKTsKPiArCQlyZXQgPSAtRUlOVkFMOwo+ICsJCWJyZWFrOwo+ ICsJfQo+ICsKPiArCWlmIChyZXQpCj4gKwkJbmV0ZGV2X2VycihlbWFjLT5uZGV2LCAiVEFTIHNl dCBzdGF0ZSBmYWlsZWQgJWRcbiIsIHJldCk7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IHRhc19zZXRfdHJpZ2dlcl9saXN0X2NoYW5nZShzdHJ1Y3QgcHJ1ZXRoX2VtYWMg KmVtYWMpCj4gK3sKPiArCXN0cnVjdCB0Y190YXByaW9fcW9wdF9vZmZsb2FkICphZG1pbl9saXN0 ID0gZW1hYy0+cW9zLnRhcy50YXByaW9fYWRtaW47Cj4gKwlzdHJ1Y3QgdGFzX2NvbmZpZyAqdGFz ID0gJmVtYWMtPnFvcy50YXMuY29uZmlnOwo+ICsJc3RydWN0IHB0cF9zeXN0ZW1fdGltZXN0YW1w IHN0czsKPiArCXUzMiBjaGFuZ2VfY3ljbGVfY291bnQ7Cj4gKwl1MzIgY3ljbGVfdGltZTsKPiAr CXU2NCBiYXNlX3RpbWU7Cj4gKwl1NjQgY3VyX3RpbWU7Cj4gKwo+ICsJaWYgKGFkbWluX2xpc3Qt PmN5Y2xlX3RpbWUgPCBUQVNfTUlOX0NZQ0xFX1RJTUUpCj4gKwkJcmV0dXJuIC1FSU5WQUw7CgpT aG91bGRuJ3QgdGhpcyB2ZXJpZmljYXRpb24gaGF2ZSBiZWVuIHBhcnQgb2YgZW1hY190YXByaW9f cmVwbGFjZSgpLCBhbmQKaGF2ZSBhIHByb3BlciBleHRhY2s/Cgo+ICsKPiArCWN5Y2xlX3RpbWUg PSBhZG1pbl9saXN0LT5jeWNsZV90aW1lIC0gNDsgLyogLTRucyB0byBjb21wZW5zYXRlIGZvciBJ RVAgd3JhcGFyb3VuZCB0aW1lICovCgpEZXRhaWxzPyBEb2Vzbid0IHRoaXMgbWFrZSB0aGUgcGhh c2UgYWxpZ25tZW50IG9mIHRoZSBzY2hlZHVsZSBkaXZlcmdlCmZyb20gd2hhdCB0aGUgdXNlciBl eHBlY3RzPwoKPiArCWJhc2VfdGltZSA9IGFkbWluX2xpc3QtPmJhc2VfdGltZTsKPiArCWN1cl90 aW1lID0gcHJ1ZXRoX2llcF9nZXR0aW1lKGVtYWMsICZzdHMpOwo+ICsKPiArCWlmIChiYXNlX3Rp bWUgPiBjdXJfdGltZSkKPiArCQljaGFuZ2VfY3ljbGVfY291bnQgPSBESVZfUk9VTkRfVVBfVUxM KGJhc2VfdGltZSAtIGN1cl90aW1lLCBjeWNsZV90aW1lKTsKPiArCWVsc2UKPiArCQljaGFuZ2Vf Y3ljbGVfY291bnQgPSAxOwoKSSBzZWUgdGhhdCB0aGUgYmFzZV90aW1lIGlzIG9ubHkgdXNlZCB0 byBjYWxjdWxhdGUgdGhlIG51bWJlciBvZiBjeWNsZXMKcmVsYXRpdmUgdG8gY3VyX3RpbWUuIFRh cHJpbyB1c2VycyB3YW50IHRvIHNwZWNpZnkgYSBiYXNldGltZSB2YWx1ZQp3aGljaCBpbmRpY2F0 ZXMgdGhlIHBoYXNlIGFsaWdubWVudCBvZiB0aGUgc2NoZWR1bGUuIFRoaXMgaXMgaW1wb3J0YW50 CndoZW4gdGhlIGRldmljZSBpcyBzeW5jaHJvbml6ZWQgb3ZlciBQVFAgd2l0aCBvdGhlciBzd2l0 Y2hlcyBpbiB0aGUKbmV0d29yay4gQ2FuIHlvdSBleHBsYWluIGhvdyBpcyB0aGUgYmFzZXRpbWUg dGFrZW4gaW50byBjb25zaWRlcmF0aW9uIGluCnlvdXIgaW1wbGVtZW50YXRpb24/Cgo+ICsKPiAr CXdyaXRlbChjeWNsZV90aW1lLCBlbWFjLT5kcmFtLnZhICsgVEFTX0FETUlOX0NZQ0xFX1RJTUUp Owo+ICsJd3JpdGVsKGNoYW5nZV9jeWNsZV9jb3VudCwgZW1hYy0+ZHJhbS52YSArIFRBU19DT05G SUdfQ0hBTkdFX0NZQ0xFX0NPVU5UKTsKPiArCXdyaXRlYihhZG1pbl9saXN0LT5udW1fZW50cmll cywgZW1hYy0+ZHJhbS52YSArIFRBU19BRE1JTl9MSVNUX0xFTkdUSCk7Cj4gKwo+ICsJLyogY29u ZmlnX2NoYW5nZSBjbGVhcmVkIGJ5IGYvdyB0byBhY2sgcmVjZXB0aW9uIG9mIG5ldyBzaGFkb3cg bGlzdCAqLwo+ICsJd3JpdGViKDEsICZ0YXMtPmNvbmZpZ19saXN0LT5jb25maWdfY2hhbmdlKTsK PiArCS8qIGNvbmZpZ19wZW5kaW5nIGNsZWFyZWQgYnkgZi93IHdoZW4gbmV3IHNoYWRvdyBsaXN0 IGlzIGNvcGllZCB0byBhY3RpdmUgbGlzdCAqLwo+ICsJd3JpdGViKDEsICZ0YXMtPmNvbmZpZ19s aXN0LT5jb25maWdfcGVuZGluZyk7Cj4gKwo+ICsJcmV0dXJuIGVtYWNfc2V0X3BvcnRfc3RhdGUo ZW1hYywgSUNTU0dfRU1BQ19QT1JUX1RBU19UUklHR0VSKTsKPiArfQo+ICsKPiArc3RhdGljIGlu dCB0YXNfdXBkYXRlX29wZXJfbGlzdChzdHJ1Y3QgcHJ1ZXRoX2VtYWMgKmVtYWMpCj4gK3sKPiAr CXN0cnVjdCB0Y190YXByaW9fcW9wdF9vZmZsb2FkICphZG1pbl9saXN0ID0gZW1hYy0+cW9zLnRh cy50YXByaW9fYWRtaW47Cj4gKwlzdHJ1Y3QgdGFzX2NvbmZpZyAqdGFzID0gJmVtYWMtPnFvcy50 YXMuY29uZmlnOwo+ICsJdTMyIHRhc19hY2NfZ2F0ZV9jbG9zZV90aW1lID0gMDsKPiArCXU4IGlk eCwgZ2F0ZV9pZHgsIHZhbDsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKGFkbWluX2xpc3QtPmN5 Y2xlX3RpbWUgPiBUQVNfTUFYX0NZQ0xFX1RJTUUpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ ICsJdGFzX3VwZGF0ZV9md19saXN0X3BvaW50ZXJzKGVtYWMpOwo+ICsKPiArCWZvciAoaWR4ID0g MDsgaWR4IDwgYWRtaW5fbGlzdC0+bnVtX2VudHJpZXM7IGlkeCsrKSB7Cj4gKwkJd3JpdGViKGFk bWluX2xpc3QtPmVudHJpZXNbaWR4XS5nYXRlX21hc2ssCj4gKwkJICAgICAgICZ0YXMtPmZ3X3No YWRvd19saXN0LT5nYXRlX21hc2tfbGlzdFtpZHhdKTsKPiArCQl0YXNfYWNjX2dhdGVfY2xvc2Vf dGltZSArPSBhZG1pbl9saXN0LT5lbnRyaWVzW2lkeF0uaW50ZXJ2YWw7Cj4gKwo+ICsJCS8qIGV4 dGVuZCBsYXN0IGVudHJ5IHRpbGwgZW5kIG9mIGN5Y2xlIHRpbWUgKi8KPiArCQlpZiAoaWR4ID09 IGFkbWluX2xpc3QtPm51bV9lbnRyaWVzIC0gMSkKPiArCQkJd3JpdGVsKGFkbWluX2xpc3QtPmN5 Y2xlX3RpbWUsCj4gKwkJCSAgICAgICAmdGFzLT5md19zaGFkb3dfbGlzdC0+d2luX2VuZF90aW1l X2xpc3RbaWR4XSk7Cj4gKwkJZWxzZQo+ICsJCQl3cml0ZWwodGFzX2FjY19nYXRlX2Nsb3NlX3Rp bWUsCj4gKwkJCSAgICAgICAmdGFzLT5md19zaGFkb3dfbGlzdC0+d2luX2VuZF90aW1lX2xpc3Rb aWR4XSk7Cj4gKwl9Cj4gKwo+ICsJLyogY2xlYXIgcmVtYWluaW5nIGVudHJpZXMgKi8KPiArCWZv ciAoaWR4ID0gYWRtaW5fbGlzdC0+bnVtX2VudHJpZXM7IGlkeCA8IFRBU19NQVhfQ01EX0xJU1RT OyBpZHgrKykgewo+ICsJCXdyaXRlYigwLCAmdGFzLT5md19zaGFkb3dfbGlzdC0+Z2F0ZV9tYXNr X2xpc3RbaWR4XSk7Cj4gKwkJd3JpdGVsKDAsICZ0YXMtPmZ3X3NoYWRvd19saXN0LT53aW5fZW5k X3RpbWVfbGlzdFtpZHhdKTsKPiArCX0KPiArCj4gKwkvKiB1cGRhdGUgdGhlIEFycmF5IG9mIGdh dGUgY2xvc2UgdGltZSBmb3IgZWFjaCBxdWV1ZSBpbiBlYWNoIHdpbmRvdyAqLwo+ICsJZm9yIChp ZHggPSAwIDsgaWR4IDwgYWRtaW5fbGlzdC0+bnVtX2VudHJpZXM7IGlkeCsrKSB7Cj4gKwkJLyog T24gTGludXgsIG9ubHkgUFJVRVRIX01BWF9UWF9RVUVVRVMgYXJlIHN1cHBvcnRlZCBwZXIgcG9y dCAqLwo+ICsJCWZvciAoZ2F0ZV9pZHggPSAwOyBnYXRlX2lkeCA8IFBSVUVUSF9NQVhfVFhfUVVF VUVTOyBnYXRlX2lkeCsrKSB7Cj4gKwkJCXU4IGdhdGVfbWFza19saXN0X2lkeCA9IHJlYWRiKCZ0 YXMtPmZ3X3NoYWRvd19saXN0LT5nYXRlX21hc2tfbGlzdFtpZHhdKTsKPiArCQkJdTMyIGdhdGVf Y2xvc2VfdGltZSA9IDA7Cj4gKwo+ICsJCQlpZiAoZ2F0ZV9tYXNrX2xpc3RfaWR4ICYgQklUKGdh dGVfaWR4KSkKPiArCQkJCWdhdGVfY2xvc2VfdGltZSA9IHJlYWRsKCZ0YXMtPmZ3X3NoYWRvd19s aXN0LT53aW5fZW5kX3RpbWVfbGlzdFtpZHhdKTsKPiArCj4gKwkJCXdyaXRlbChnYXRlX2Nsb3Nl X3RpbWUsCj4gKwkJCSAgICAgICAmdGFzLT5md19zaGFkb3dfbGlzdC0+Z2F0ZV9jbG9zZV90aW1l X2xpc3RbaWR4XVtnYXRlX2lkeF0pOwo+ICsJCX0KPiArCX0KPiArCj4gKwkvKiB0ZWxsIGYvdyB0 byBzd2FwIGFjdGl2ZSAmIHNoYWRvdyBsaXN0ICovCj4gKwlyZXQgPSB0YXNfc2V0X3RyaWdnZXJf bGlzdF9jaGFuZ2UoZW1hYyk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJbmV0ZGV2X2VycihlbWFjLT5u ZGV2LCAiZmFpbGVkIHRvIHN3YXAgZi93IGNvbmZpZyBsaXN0OiAlZFxuIiwgcmV0KTsKPiArCQly ZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCS8qIFdhaXQgZm9yIGNvbXBsZXRpb24gKi8KPiArCXJl dCA9IHJlYWRiX3BvbGxfdGltZW91dCgmdGFzLT5jb25maWdfbGlzdC0+Y29uZmlnX2NoYW5nZSwg dmFsLCAhdmFsLAo+ICsJCQkJIFVTRUNfUEVSX01TRUMsIDEwICogVVNFQ19QRVJfTVNFQyk7Cj4g KwlpZiAocmV0KSB7Cj4gKwkJbmV0ZGV2X2VycihlbWFjLT5uZGV2LCAiVEFTIGxpc3QgY2hhbmdl IGNvbXBsZXRpb24gdGltZSBvdXRcbiIpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJ dGFzX3VwZGF0ZV9md19saXN0X3BvaW50ZXJzKGVtYWMpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBlbWFjX2NwX3RhcHJpbyhzdHJ1Y3QgdGNfdGFwcmlvX3FvcHRf b2ZmbG9hZCAqZnJvbSwKPiArCQkJICAgc3RydWN0IHRjX3RhcHJpb19xb3B0X29mZmxvYWQgKnRv KQo+ICt7Cj4gKwlpbnQgaTsKPiArCj4gKwkqdG8gPSAqZnJvbTsKPiArCWZvciAoaSA9IDA7IGkg PCBmcm9tLT5udW1fZW50cmllczsgaSsrKQo+ICsJCXRvLT5lbnRyaWVzW2ldID0gZnJvbS0+ZW50 cmllc1tpXTsKPiArfQo+ICsKPiArc3RhdGljIGludCBlbWFjX3RhcHJpb19yZXBsYWNlKHN0cnVj dCBuZXRfZGV2aWNlICpuZGV2LAo+ICsJCQkgICAgICAgc3RydWN0IHRjX3RhcHJpb19xb3B0X29m ZmxvYWQgKnRhcHJpbykKPiArewo+ICsJc3RydWN0IHBydWV0aF9lbWFjICplbWFjID0gbmV0ZGV2 X3ByaXYobmRldik7Cj4gKwlzdHJ1Y3QgdGNfdGFwcmlvX3FvcHRfb2ZmbG9hZCAqZXN0X25ldzsK PiArCWludCByZXQsIGlkeDsKPiArCj4gKwlpZiAodGFwcmlvLT5jeWNsZV90aW1lX2V4dGVuc2lv bikgewo+ICsJCW5ldGRldl9lcnIobmRldiwgIkZhaWxlZCB0byBzZXQgY3ljbGUgdGltZSBleHRl bnNpb24iKTsKCiJmYWlsZWQiIGltcGxpZXMgdGhhdCB0aGUgZHJpdmVyIHRyaWVkIHRvIGRvIHNv bWV0aGluZywgYnV0IGl0IGRpZG4ndCB3b3JrLgpNYXliZSAiQ3ljbGUgdGltZSBleHRlbnNpb24g bm90IHN1cHBvcnRlZCI/IEFsc28sIE5MX1NFVF9FUlJfTVNHX01PRCgpLgoKPiArCQlyZXR1cm4g LUVPUE5PVFNVUFA7Cj4gKwl9Cj4gKwo+ICsJaWYgKHRhcHJpby0+bnVtX2VudHJpZXMgPT0gMCB8 fAoKQ2Fubm90IGhhcHBlbi4gU2VlIHNjaF90YXByaW8uYzoKCglpZiAobmV3X2FkbWluLT5udW1f ZW50cmllcyA9PSAwKSB7CgkJTkxfU0VUX0VSUl9NU0coZXh0YWNrLCAiVGhlcmUgc2hvdWxkIGJl IGF0IGxlYXN0IG9uZSBlbnRyeSBpbiB0aGUgc2NoZWR1bGUiKTsKCQllcnIgPSAtRUlOVkFMOwoJ CWdvdG8gZnJlZV9zY2hlZDsKCX0KCj4gKwkgICAgdGFwcmlvLT5udW1fZW50cmllcyA+IFRBU19N QVhfQ01EX0xJU1RTKSB7Cj4gKwkJTkxfU0VUX0VSUl9NU0dfRk1UX01PRCh0YXByaW8tPmV4dGFj aywgInVuc3VwcG9ydGVkIG51bV9lbnRyaWVzICVsZCBpbiB0YXByaW8gY29uZmlnXG4iLAo+ICsJ CQkJICAgICAgIHRhcHJpby0+bnVtX2VudHJpZXMpOwoKQmV0dGVyIHRvIHNheSB3aGF0J3MgdGhl IGhhcmR3YXJlIG1heGltdW0sIHRoYW4gdG8gcmVwb3J0IGJhY2sgbnVtX2VudHJpZXMKYXMgYmVp bmcgbm90IHN1cHBvcnRlZC4KCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJLyog SWYgYW55IHRpbWVfaW50ZXJ2YWwgaXMgMCBpbiBiZXR3ZWVuIHRoZSBsaXN0LCB0aGVuIGV4aXQg Ki8KPiArCWZvciAoaWR4ID0gMDsgaWR4IDwgdGFwcmlvLT5udW1fZW50cmllczsgaWR4KyspIHsK PiArCQlpZiAodGFwcmlvLT5lbnRyaWVzW2lkeF0uaW50ZXJ2YWwgPT0gMCkgewo+ICsJCQlOTF9T RVRfRVJSX01TR19NT0QodGFwcmlvLT5leHRhY2ssICIwIGludGVydmFsIGluIHRhcHJpbyBjb25m aWcgbm90IHN1cHBvcnRlZFxuIik7Cj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCX0K CkFsc28gbm90IHBvc3NpYmxlLCBzZWUgZmlsbF9zY2hlZF9lbnRyeSgpCgoJLyogVGhlIGludGVy dmFsIHNob3VsZCBhbGxvdyBhdCBsZWFzdCB0aGUgbWluaW11bSBldGhlcm5ldAoJICogZnJhbWUg dG8gZ28gb3V0LgoJICovCglpZiAoaW50ZXJ2YWwgPCBtaW5fZHVyYXRpb24pIHsKCQlOTF9TRVRf RVJSX01TRyhleHRhY2ssICJJbnZhbGlkIGludGVydmFsIGZvciBzY2hlZHVsZSBlbnRyeSIpOwoJ CXJldHVybiAtRUlOVkFMOwoJfQoKPiArCj4gKwlpZiAoZW1hYy0+cW9zLnRhcy50YXByaW9fYWRt aW4pCj4gKwkJZGV2bV9rZnJlZSgmbmRldi0+ZGV2LCBlbWFjLT5xb3MudGFzLnRhcHJpb19hZG1p bik7Cj4gKwo+ICsJZXN0X25ldyA9IGRldm1fa3phbGxvYygmbmRldi0+ZGV2LAo+ICsJCQkgICAg ICAgc3RydWN0X3NpemUoZXN0X25ldywgZW50cmllcywgdGFwcmlvLT5udW1fZW50cmllcyksCj4g KwkJCSAgICAgICBHRlBfS0VSTkVMKTsKPiArCWlmICghZXN0X25ldykKPiArCQlyZXR1cm4gLUVO T01FTTsKCllvdSBkb24ndCBuZWVkIHRvIGFsbG9jYXRlIGVzdF9uZXcsIHlvdSBjYW4ga2VlcCBh IHJlZmVyZW5jZSBvbiB0YXByaW8KdXNpbmcgdGFwcmlvX29mZmxvYWRfZ2V0KCksIGFuZCBjYWxs IHRhcHJpb19vZmZsb2FkX3B1dCgpIHRvIHJlbGVhc2UgdGhlCnJlZmVyZW5jZSB3aGVuIHlvdSdy ZSBkb25lIHdpdGggaXQuCgo+ICsKPiArCWVtYWNfY3BfdGFwcmlvKHRhcHJpbywgZXN0X25ldyk7 Cj4gKwllbWFjLT5xb3MudGFzLnRhcHJpb19hZG1pbiA9IGVzdF9uZXc7Cj4gKwlyZXQgPSB0YXNf dXBkYXRlX29wZXJfbGlzdChlbWFjKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiAr Cj4gKwlyZXQgPSAgdGFzX3NldF9zdGF0ZShlbWFjLCBUQVNfU1RBVEVfRU5BQkxFKTsKPiArCWlm IChyZXQpCj4gKwkJZGV2bV9rZnJlZSgmbmRldi0+ZGV2LCBlc3RfbmV3KTsKPiArCj4gKwlyZXR1 cm4gcmV0Owo+ICt9CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==