Received: by 2002:a05:7412:a9a3:b0:f9:93eb:408e with SMTP id o35csp76622rdh; Wed, 20 Dec 2023 23:47:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IGgV6PDo66ydV5vtMycoMkvvkG73y+4TL4JWyKsU7V9Os/03qiriEBZd+AnroSCJ3vVpAMd X-Received: by 2002:a05:622a:4ce:b0:425:4043:18c7 with SMTP id q14-20020a05622a04ce00b00425404318c7mr27422699qtx.122.1703144867323; Wed, 20 Dec 2023 23:47:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1703144867; cv=pass; d=google.com; s=arc-20160816; b=ANZVaS/5BZn3fn+C5ruSkY5az4kraaJvunQ6h42k31W85qAiyf65VSy+Tbn68xL8Hl wlbblhxPWfwn4uJeRYiTmwsGSzvjWniS/nvU7lJ+7LC/dCg7GQ6mAMtsrFXrVGoW5loX UtvyySs4JWsi7PUZmrtXdJKBMi0Gc85176m/QW88dRBXUuCkpeObKced2Rbs6EThEE6P 1yVhWYz6eoCA2KbAOXxsT7jIzF8cRpgiQ51rRFQkIbITSTPS4j+4SY1bHQqTB1D8RCBP XqsFwLdIjynlHVC7c9QIVLjAiCGZLUR0kreZ9VK+vPAgjsbpSGFoeI1SC7bqqkpI+H9k cVyQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:cc:to:from:dkim-signature; bh=lpE/v8S2EUwzHBnzK8a9eJgX+dhay/Eyy7SRi8tg2Ik=; fh=IHkr4r7Uke6xgH9nZDnZyx5916SNDO4yVI/ZhpFlCbo=; b=tHBxixx/yAUdbN6M5UUmI+ecpWZ1X/Y/nyAc6ksFpGoteAEnK0w/ZwEcvZQgLXOG+H 2XrohSIJ90eAqnN1n0qNnr+apxqXEuumHuBDQnnf0mL02HU4HtWGDYBwUO1tkXh8b6HP 5ThgZnqNC3Q91a4q5j3XIsq637MJcVOMZOXFS3RWVZcNbs27l7zOG07KwRq7smLJaNPF awIEIOB6opIoiHgIoDnceVhSxRKs0lQdNSftyNIwTEzesgEjTByAU/HvV1WUBUjT5Lq6 HRSndCP91WArKs7NKrTneIZ9qjixnnAj2fe0x0ctM3FgDXuzb27yNmQT5+QoK0mOEWM/ WF8A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=Vj3LCNqJ; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel+bounces-7962-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7962-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id 2-20020ac85942000000b004237f64dec8si1603558qtz.528.2023.12.20.23.47.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 23:47:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-7962-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=Vj3LCNqJ; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel+bounces-7962-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7962-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id CD4F51C2335C for ; Thu, 21 Dec 2023 07:47:46 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C4BFC156D4; Thu, 21 Dec 2023 07:47:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="Vj3LCNqJ" X-Original-To: linux-kernel@vger.kernel.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2059.outbound.protection.outlook.com [40.107.6.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 880C4171A1; Thu, 21 Dec 2023 07:47:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C8mr0wGvo4d1jDcY07wMFrKyVJBpsx8A0g35MetOFVFBq9itYRhcBjIeyhjAN8J9E4CknrdUPqfe3qF57ctGmYEMI33jcLxZu7jPL8RywR0DXGEQQPtvmzZjuaH+We8G0+GodhtQVv8w4X8eO6gGk4TW8X5n96CZSwTRFv4HJ99SwEbwY31crtI8pxKenj3S1FWLhgwGPsdg4Uf2BUrHMzXgA6Zg1uVIiKTeSfGOWdeNZxY3pJS37HINTczCFzm/FSYWdfAAsI/XBRLzXwomYkg5N/Q5Un7DFKFzRE1YvT/Sj2D4+2vmR6O1zXg76A+UNjdQRfCe1JYcmzQYWXHrqA== 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=lpE/v8S2EUwzHBnzK8a9eJgX+dhay/Eyy7SRi8tg2Ik=; b=EmIUIQwpd/mf/ih7JxVxopQBpV0+gVyimUYMIOQOARn+UEobSgFnOGEnO+qr1dBk+Temu4L7A0NLL1KP81i1V5TzQ5m4rVp4bnn56RGtRUq9XwgPIS2/SruhbntLoEBpOStYqDYW+I9zEzjZNl16fBlYCAFB8sLKV2+ZLdgF1vngft2ApsIM7gf8fY0msGa8u1nEQvRku9nJUY2lCdgOA5iDExPXXRbAmzHzklBMCQwECGxpx4K8jBzxpfrA0oZcXoo1EOaNdNpkeOJPyofAccgZxf2iGFaELf6KaY/znsl0cWWr3PJDtf4Iz1Syj9vkvSIL4BrqPehzUNy++dBM7g== 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=lpE/v8S2EUwzHBnzK8a9eJgX+dhay/Eyy7SRi8tg2Ik=; b=Vj3LCNqJWHTwb42TyrbFbrq37CDO9xl5EY7XhpPTe/8FwHvHLopAkK0zXzgW5uydG5lYbWsf6TZ4oNR0C877sVCCbDQXWoQ86gnIYs7GiIijayUGNcxvffBuxdHkyFjv3ayQUTZmgd90UakQUq+uMvOo4bHZ1NWdLtsMuTBHMxs= Received: from AM6PR04MB5925.eurprd04.prod.outlook.com (2603:10a6:20b:ab::19) by AM9PR04MB8954.eurprd04.prod.outlook.com (2603:10a6:20b:409::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.21; Thu, 21 Dec 2023 07:47:19 +0000 Received: from AM6PR04MB5925.eurprd04.prod.outlook.com ([fe80::a894:4f78:80ab:26f4]) by AM6PR04MB5925.eurprd04.prod.outlook.com ([fe80::a894:4f78:80ab:26f4%5]) with mapi id 15.20.7113.019; Thu, 21 Dec 2023 07:47:19 +0000 From: Joy Zou To: Frank Li , "vkoul@kernel.org" CC: "devicetree@vger.kernel.org" , "dmaengine@vger.kernel.org" , "imx@lists.linux.dev" , "krzysztof.kozlowski+dt@linaro.org" , "linux-kernel@vger.kernel.org" , Peng Fan , "robh+dt@kernel.org" , Shenwei Wang Subject: RE: [PATCH v3 6/6] dmaengine: fsl-edma: integrate TCD64 support for i.MX95 Thread-Topic: [PATCH v3 6/6] dmaengine: fsl-edma: integrate TCD64 support for i.MX95 Thread-Index: AQHaIYTyk9+0RXmw4UWB2foSgU+/brCzgBIw Date: Thu, 21 Dec 2023 07:47:19 +0000 Message-ID: References: <20231127225542.2744711-1-Frank.Li@nxp.com> <20231127225542.2744711-7-Frank.Li@nxp.com> In-Reply-To: <20231127225542.2744711-7-Frank.Li@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM6PR04MB5925:EE_|AM9PR04MB8954:EE_ x-ms-office365-filtering-correlation-id: 957fd868-66ab-4972-1540-08dc01f90f31 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KGSvAuKbF/05n70XnYJuuzAQT1P4/0iTleKDf21FCTSPYlLkz97Snjr9koKqSo1Qy3A43McEksmOIq1KkzC03XFNUiJnuIfvSbaUgd7edf8+NLTdrEt80cfJbxRahIoXjjhZOR1lf1Q1bkwMnIQAyFpjYFWR1QOjPdsL5pD5llgUNYLdIw91ioZOS5GCCrIeDS4lINQcllzl9U4xdorR1cvWqArmGXbMTjo4CMSNvdgCKJiIvrQ9X6WmJXDOq/J8CJrtlzNx/3nD9heR6o1u8w8vKoCMI69Qh92V5zL23vXYL2yPhAnTj/VKfk+NyIDZEwVQbwTzOXLVnRcTjyghEQoAd1yMEkoTeJqCcvOBe4k+ksuO6zL4sgeR6UJqfF0W8elqkl7kfz8uG0/KufSHyJJV1+i0+9A8UC5Yhowp8/Nofj/YNmsQrEOFBlXszSkoJ8XbBPrDpHEES6lZfOqk58tdibnvM6sKR7J3I+IQXdGw7Y2IcOqozdvfoGfh0lE612rrTkfLC/9n7xR0vZTZhHwONnZXLWUBvltzWGEshwY8rGVelzS/BDjGCwkQ0/1wSmnQhm+SOH8txNro6AEelw8PEpC2hMxCR3GM9hIT/eb+LnFAga2GfYLaeIqn1Zue x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5925.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(346002)(396003)(136003)(376002)(39860400002)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(26005)(9686003)(71200400001)(6506007)(7696005)(53546011)(122000001)(83380400001)(5660300002)(4326008)(30864003)(44832011)(52536014)(8676002)(8936002)(41300700001)(66556008)(2906002)(478600001)(316002)(110136005)(76116006)(66946007)(54906003)(64756008)(66446008)(66476007)(33656002)(86362001)(38100700002)(38070700009)(55016003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?K1h0cmxhdUdkbVhIQmlobDVGL2lBbDR6Lzd4NytjdnlXZ0doSWx6bGhmNGNY?= =?gb2312?B?Zm1lSXd6RER1Vnk1SWQrR3NqZVBVeDNVRlBsdkNwUTFmREsrMjNBVitreW9S?= =?gb2312?B?RjhKVXdIQkNsc2xGcEx5M2Juc0pMQWtTakRiU2JNQyt4cHRPL3FUZTRhV21l?= =?gb2312?B?am1WSmFDN2o2MkhwNW1TRVhqYlJhQjhFU2k4Q2d1WTc5R3ZxczJ0bWtyWGEv?= =?gb2312?B?WUx2Mko5N0VFWU4zZXNmbXdKVEk4cXNsUVB3MXVkZTN2azNNczVwRGlCQjJH?= =?gb2312?B?NittazhkZGFUdEY4VW1zemVVQzE4d1hYREcvc0F5U1BxUG1GYjIzNmpFQ1Iz?= =?gb2312?B?cklIdFd3QnpKUS96TnJiVFhpUVIwQjhVcS9TbHRwRGo5OTFzNS9UN1VrazJE?= =?gb2312?B?eFBUN1EvRHRxTllMOUxaNDZIUnFVa0hJQkFxdnFYWTlhbEdveTF1VXpnVGtX?= =?gb2312?B?TVFhR0pkN3hKYzBRWk9yU3lVem8wa2VFME5ESUMya2VJNWxXQU5DeWRSUHYx?= =?gb2312?B?MU4rbW0vYStXN1V0amtBZXp4SkMzbXVMN0VwMWQxbnZXQk9ZWUpiREg0T3E0?= =?gb2312?B?eFFVRGpCcGlRWnQ1TTVNdnVPL0FLSm5zOEE4bE9MMC9IZTZnZGxnSW5KZGhW?= =?gb2312?B?QXl1d0dLN25RRG5nRmhZemVQcGxZeDI1YVdQY2xZalZnVGRVS0x4cUdxdWpR?= =?gb2312?B?U1hsc3F3OUJjWk5VdCsyRE9ac040M2plbXVMblV2Q0pwUTVBNlBFM0VUL0dB?= =?gb2312?B?b3VGakZ3Vm5BWGlMbTJzeHAwdXdDcHQrZk1vb3J1aE5JNFZENklBU0duOWVU?= =?gb2312?B?SjdFRTNSaStOMjV0UTVWSzlBSG5VT25zUmZROFFTWGo1V1E0cWlWV0JVVU56?= =?gb2312?B?dE9qTXpXM3JhZjloMDJrWUR2YWpPUXV6RGtNS0hoYk95a3JMQWNMMlc5S053?= =?gb2312?B?R0ZkQzVZak1FYW9MSmtZa1FQdDRvMng0Ni9XRk1UTDNmWmsxYlJqTFQ2V3dq?= =?gb2312?B?TXJhVGhDYzNlVHF6WU4rOUZhUjZ2cGJ6Y2t0SWpWY3BFWThZZDlMMTVaTjhw?= =?gb2312?B?SnMyT0I2N1RqZWtRK1VnZW4yNHp0cnVKWis2bGN4cEdITld0b0lWZUsrMmJH?= =?gb2312?B?ckxZQ1dMTys5bWgya25WRWFuUjBFK3M4OS96OFBnV0hNK3RYZldCbnIxNm5a?= =?gb2312?B?aGxxVDFSY0VOY0cxM1lhRWNkbmZQNTF4N1pvUlN4L3VUYlhnTjJtRU5VK0x3?= =?gb2312?B?R00zdHJiTjZwWUpZMlBKYTE2c2d0V1N4dCtrM3lBNGsvN3VoWjNIMVcxbzk5?= =?gb2312?B?OXJmWFVzNjJSN3dVd2JUVmNGeHlYbEw2MTFxRHRDSlBKeHM1L3ZBc0xCVjVY?= =?gb2312?B?dGo2bVFpMDQ3NXQzTTRzMXdJOFhjcXRlaWd1NDQranYzUU41QmdOZm8wZmhj?= =?gb2312?B?QzFUdk5XZU15UUovRFk3UkRTR2dMdjhiWHVrYzlxa2RheFNhVVlZYXI4Vnll?= =?gb2312?B?UWpvQVB6ZjlhTUhCMnVMQitVS1lqdSt1VGx0UFc0eC8xdU9kYmNyRFRadjhM?= =?gb2312?B?aVhGdGN3c3N3bUNNVG9vZldTSzBkVUhXcCt1dlF0UWhnZmRTSXA3ZXZEREFC?= =?gb2312?B?TGRSeVZ5eTF3TFE5czVrUHFuc3A0MlcrVmZzRXlMeVpMNitmbnY5a2V3dEhV?= =?gb2312?B?eXRqWldkSCtLcUZ6RS9BWkhxTytmY1BOVVpQT3VLOFN6NUZ6MjhDcUZmU3pM?= =?gb2312?B?OHJmVFJBcDQxWWwrRkQyU09vSG1JQUpjNU1hSzBHc3pGdmRnMHRzWjZqQTA3?= =?gb2312?B?K3FsUWhhdEIrOHFoTEFBRnRvZ2VNWENRSEJEM3YxaC9tdGFWRTVDS1pCYWNL?= =?gb2312?B?eC9neHl2T0dnWnljK0kwcW9CK3c0VTI3K1BRNkh0YlJIS3hUZnhiWTNrMVJR?= =?gb2312?B?SFRtS0NHd09ZK1I0ZU1vUlNZL3hidnQyWk95OUdrdlJjdCtBcXc4dHJ1Uit0?= =?gb2312?B?Z1dYaEZWTk9uV3pjbjhiWkJzd3pubm1oMmpWd1U1a1BqTDhmMXBHcFU4YUp5?= =?gb2312?B?c3VOVmo5b3pZZU9LUkE3MFRrd2xpRzRLWCtMYW5VTklHNTR4VUtGRjdna0FQ?= =?gb2312?Q?62vo=3D?= Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5925.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 957fd868-66ab-4972-1540-08dc01f90f31 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Dec 2023 07:47:19.2877 (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: eHeufvNcPUHHRgUg2DxeYokzrz7GpsmMZFi+FvIOqZ9oh7zKF/juChptXAYn+O0V X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8954 SGkgZnJhbmssDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEZyYW5rIExp IDxmcmFuay5saUBueHAuY29tPg0KPiBTZW50OiAyMDIzxOoxMdTCMjjI1SA2OjU2DQo+IFRvOiBG cmFuayBMaSA8ZnJhbmsubGlAbnhwLmNvbT47IHZrb3VsQGtlcm5lbC5vcmcNCj4gQ2M6IGRldmlj ZXRyZWVAdmdlci5rZXJuZWwub3JnOyBkbWFlbmdpbmVAdmdlci5rZXJuZWwub3JnOw0KPiBpbXhA bGlzdHMubGludXguZGV2OyBKb3kgWm91IDxqb3kuem91QG54cC5jb20+Ow0KPiBrcnp5c3p0b2Yu a296bG93c2tpK2R0QGxpbmFyby5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IFBl bmcgRmFuDQo+IDxwZW5nLmZhbkBueHAuY29tPjsgcm9iaCtkdEBrZXJuZWwub3JnOyBTaGVud2Vp IFdhbmcNCj4gPHNoZW53ZWkud2FuZ0BueHAuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjMgNi82 XSBkbWFlbmdpbmU6IGZzbC1lZG1hOiBpbnRlZ3JhdGUgVENENjQgc3VwcG9ydCBmb3INCj4gaS5N WDk1DQo+IA0KPiBJbiBpLk1YOTUncyBlZG1hIHZlcnNpb24gNSwgdGhlIFRDRCBzdHJ1Y3R1cmUg aXMgZXh0ZW5kZWQgdG8gc3VwcG9ydCA2NC1iaXQNCj4gYWRkcmVzc2VzIGZvciBmaWVsZHMgbGlr ZSBzYWRkciBhbmQgZGFkZHIuIFRvIHByZXZlbnQgY29kZSBkdXBsaWNhdGlvbiwgZW1wbG95DQo+ IGhlbHAgbWFjcm9zIHRvIGhhbmRsZSB0aGUgZmllbGRzLCBhcyB0aGUgZmllbGQgbmFtZXMgcmVt YWluIHRoZSBzYW1lIGJldHdlZW4NCj4gVENEIGFuZCBUQ0Q2NC4NCj4gDQo+IENoYW5nZSBsb2Nh bCB2YXJpYWJsZXMgcmVsYXRlZCB0byBUQ0QgYWRkcmVzc2VzIGZyb20gJ3UzMicgdG8gJ2RtYV9h ZGRyX3QnDQo+IHRvIGFjY2VwdCA2NC1iaXQgRE1BIGFkZHJlc3Nlcy4NCj4gDQo+IENoYW5nZSAn dnRjZCcgdHlwZSB0byAndm9pZCAqJyB0byBhdm9pZCBkaXJlY3QgdXNlLiBVc2UgaGVscGVyIG1h Y3JvcyB0byBhY2Nlc3MNCj4gdGhlIFRDRCBmaWVsZHMgY29ycmVjdGx5Lg0KPiANCj4gQ2FsbCAn ZG1hX3NldF9tYXNrX2FuZF9jb2hlcmVudCg2NCknIHdoZW4gVENENjQgaXMgc3VwcG9ydGVkLg0K PiANCj4gU2lnbmVkLW9mZi1ieTogRnJhbmsgTGkgPEZyYW5rLkxpQG54cC5jb20+DQo+IC0tLQ0K PiAgZHJpdmVycy9kbWEvZnNsLWVkbWEtY29tbW9uLmMgfCAgMzQgKysrKy0tLQ0KPiBkcml2ZXJz L2RtYS9mc2wtZWRtYS1jb21tb24uaCB8IDE2NQ0KPiArKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tDQo+ICBkcml2ZXJzL2RtYS9mc2wtZWRtYS1tYWluLmMgICB8ICAxNCArKysNCj4g IDMgZmlsZXMgY2hhbmdlZCwgMTcwIGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQ0KPiAN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLWNvbW1vbi5jDQo+IGIvZHJpdmVy cy9kbWEvZnNsLWVkbWEtY29tbW9uLmMgaW5kZXggNjVmNDY2YWI5ZDRkYS4uYzhhY2ZmMDkzMDhm ZA0KPiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9kbWEvZnNsLWVkbWEtY29tbW9uLmMNCj4gKysr IGIvZHJpdmVycy9kbWEvZnNsLWVkbWEtY29tbW9uLmMNCj4gQEAgLTM1MSw3ICszNTEsNyBAQCBz dGF0aWMgc2l6ZV90IGZzbF9lZG1hX2Rlc2NfcmVzaWR1ZShzdHJ1Y3QNCj4gZnNsX2VkbWFfY2hh biAqZnNsX2NoYW4sICB7DQo+ICAJc3RydWN0IGZzbF9lZG1hX2Rlc2MgKmVkZXNjID0gZnNsX2No YW4tPmVkZXNjOw0KPiAgCWVudW0gZG1hX3RyYW5zZmVyX2RpcmVjdGlvbiBkaXIgPSBlZGVzYy0+ ZGlybjsNCj4gLQlkbWFfYWRkcl90IGN1cl9hZGRyLCBkbWFfYWRkcjsNCj4gKwlkbWFfYWRkcl90 IGN1cl9hZGRyLCBkbWFfYWRkciwgb2xkX2FkZHI7DQo+ICAJc2l6ZV90IGxlbiwgc2l6ZTsNCj4g IAl1MzIgbmJ5dGVzID0gMDsNCj4gIAlpbnQgaTsNCj4gQEAgLTM2NywxMCArMzY3LDE2IEBAIHN0 YXRpYyBzaXplX3QgZnNsX2VkbWFfZGVzY19yZXNpZHVlKHN0cnVjdA0KPiBmc2xfZWRtYV9jaGFu ICpmc2xfY2hhbiwNCj4gIAlpZiAoIWluX3Byb2dyZXNzKQ0KPiAgCQlyZXR1cm4gbGVuOw0KPiAN Cj4gLQlpZiAoZGlyID09IERNQV9NRU1fVE9fREVWKQ0KPiAtCQljdXJfYWRkciA9IGVkbWFfcmVh ZF90Y2RyZWcoZnNsX2NoYW4sIHNhZGRyKTsNCj4gLQllbHNlDQo+IC0JCWN1cl9hZGRyID0gZWRt YV9yZWFkX3RjZHJlZyhmc2xfY2hhbiwgZGFkZHIpOw0KPiArCS8qIDY0Yml0IHJlYWQgaXMgbm90 IGF0b21pYywgbmVlZCByZWFkIHJldHJ5IHdoZW4gaGlnaCAzMmJpdCBjaGFuZ2VkICovDQo+ICsJ ZG8gew0KPiArCQlpZiAoZGlyID09IERNQV9NRU1fVE9fREVWKSB7DQo+ICsJCQlvbGRfYWRkciA9 IGVkbWFfcmVhZF90Y2RyZWcoZnNsX2NoYW4sIHNhZGRyKTsNCj4gKwkJCWN1cl9hZGRyID0gZWRt YV9yZWFkX3RjZHJlZyhmc2xfY2hhbiwgc2FkZHIpOw0KPiArCQl9IGVsc2Ugew0KPiArCQkJb2xk X2FkZHIgPSBlZG1hX3JlYWRfdGNkcmVnKGZzbF9jaGFuLCBkYWRkcik7DQo+ICsJCQljdXJfYWRk ciA9IGVkbWFfcmVhZF90Y2RyZWcoZnNsX2NoYW4sIGRhZGRyKTsNCj4gKwkJfQ0KPiArCX0gd2hp bGUgKHVwcGVyXzMyX2JpdHMoY3VyX2FkZHIpICE9IHVwcGVyXzMyX2JpdHMob2xkX2FkZHIpKTsN Cj4gDQo+ICAJLyogZmlndXJlIG91dCB0aGUgZmluaXNoZWQgYW5kIGNhbGN1bGF0ZSB0aGUgcmVz aWR1ZSAqLw0KPiAgCWZvciAoaSA9IDA7IGkgPCBmc2xfY2hhbi0+ZWRlc2MtPm5fdGNkczsgaSsr KSB7IEBAIC00MjYsOCArNDMyLDcgQEANCj4gZW51bSBkbWFfc3RhdHVzIGZzbF9lZG1hX3R4X3N0 YXR1cyhzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4sDQo+ICAJcmV0dXJuIGZzbF9jaGFuLT5zdGF0dXM7 DQo+ICB9DQo+IA0KPiAtc3RhdGljIHZvaWQgZnNsX2VkbWFfc2V0X3RjZF9yZWdzKHN0cnVjdCBm c2xfZWRtYV9jaGFuICpmc2xfY2hhbiwNCj4gLQkJCQkgIHN0cnVjdCBmc2xfZWRtYV9od190Y2Qg KnRjZCkNCj4gK3N0YXRpYyB2b2lkIGZzbF9lZG1hX3NldF90Y2RfcmVncyhzdHJ1Y3QgZnNsX2Vk bWFfY2hhbiAqZnNsX2NoYW4sIHZvaWQNCj4gKyp0Y2QpDQo+ICB7DQo+ICAJdTE2IGNzciA9IDA7 DQo+IA0KPiBAQCAtNDc4LDkgKzQ4Myw5IEBAIHN0YXRpYyB2b2lkIGZzbF9lZG1hX3NldF90Y2Rf cmVncyhzdHJ1Y3QNCj4gZnNsX2VkbWFfY2hhbiAqZnNsX2NoYW4sDQo+IA0KPiAgc3RhdGljIGlu bGluZQ0KPiAgdm9pZCBmc2xfZWRtYV9maWxsX3RjZChzdHJ1Y3QgZnNsX2VkbWFfY2hhbiAqZnNs X2NoYW4sDQo+IC0JCSAgICAgICBzdHJ1Y3QgZnNsX2VkbWFfaHdfdGNkICp0Y2QsIHUzMiBzcmMs IHUzMiBkc3QsDQo+IC0JCSAgICAgICB1MTYgYXR0ciwgdTE2IHNvZmYsIHUzMiBuYnl0ZXMsIHUz MiBzbGFzdCwgdTE2IGNpdGVyLA0KPiAtCQkgICAgICAgdTE2IGJpdGVyLCB1MTYgZG9mZiwgdTMy IGRsYXN0X3NnYSwgYm9vbCBtYWpvcl9pbnQsDQo+ICsJCSAgICAgICBzdHJ1Y3QgZnNsX2VkbWFf aHdfdGNkICp0Y2QsIGRtYV9hZGRyX3Qgc3JjLCBkbWFfYWRkcl90DQo+IGRzdCwNCj4gKwkJICAg ICAgIHUxNiBhdHRyLCB1MTYgc29mZiwgdTMyIG5ieXRlcywgZG1hX2FkZHJfdCBzbGFzdCwgdTE2 IGNpdGVyLA0KPiArCQkgICAgICAgdTE2IGJpdGVyLCB1MTYgZG9mZiwgZG1hX2FkZHJfdCBkbGFz dF9zZ2EsIGJvb2wgbWFqb3JfaW50LA0KPiAgCQkgICAgICAgYm9vbCBkaXNhYmxlX3JlcSwgYm9v bCBlbmFibGVfc2cpICB7DQo+ICAJc3RydWN0IGRtYV9zbGF2ZV9jb25maWcgKmNmZyA9ICZmc2xf Y2hhbi0+Y2ZnOyBAQCAtNTgxLDggKzU4Niw5IEBADQo+IHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVz Y3JpcHRvciAqZnNsX2VkbWFfcHJlcF9kbWFfY3ljbGljKA0KPiAgCWRtYV9hZGRyX3QgZG1hX2J1 Zl9uZXh0Ow0KPiAgCWJvb2wgbWFqb3JfaW50ID0gdHJ1ZTsNCj4gIAlpbnQgc2dfbGVuLCBpOw0K PiAtCXUzMiBzcmNfYWRkciwgZHN0X2FkZHIsIGxhc3Rfc2csIG5ieXRlczsNCj4gKwlkbWFfYWRk cl90IHNyY19hZGRyLCBkc3RfYWRkciwgbGFzdF9zZzsNCj4gIAl1MTYgc29mZiwgZG9mZiwgaXRl cjsNCj4gKwl1MzIgbmJ5dGVzOw0KPiANCj4gIAlpZiAoIWlzX3NsYXZlX2RpcmVjdGlvbihkaXJl Y3Rpb24pKQ0KPiAgCQlyZXR1cm4gTlVMTDsNCj4gQEAgLTY1NCw4ICs2NjAsOSBAQCBzdHJ1Y3Qg ZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3INCj4gKmZzbF9lZG1hX3ByZXBfc2xhdmVfc2coDQo+ICAJ c3RydWN0IGZzbF9lZG1hX2NoYW4gKmZzbF9jaGFuID0gdG9fZnNsX2VkbWFfY2hhbihjaGFuKTsN Cj4gIAlzdHJ1Y3QgZnNsX2VkbWFfZGVzYyAqZnNsX2Rlc2M7DQo+ICAJc3RydWN0IHNjYXR0ZXJs aXN0ICpzZzsNCj4gLQl1MzIgc3JjX2FkZHIsIGRzdF9hZGRyLCBsYXN0X3NnLCBuYnl0ZXM7DQo+ ICsJZG1hX2FkZHJfdCBzcmNfYWRkciwgZHN0X2FkZHIsIGxhc3Rfc2c7DQo+ICAJdTE2IHNvZmYs IGRvZmYsIGl0ZXI7DQo+ICsJdTMyIG5ieXRlczsNCj4gIAlpbnQgaTsNCj4gDQo+ICAJaWYgKCFp c19zbGF2ZV9kaXJlY3Rpb24oZGlyZWN0aW9uKSkNCj4gQEAgLTgwNCw3ICs4MTEsOCBAQCBpbnQg ZnNsX2VkbWFfYWxsb2NfY2hhbl9yZXNvdXJjZXMoc3RydWN0IGRtYV9jaGFuDQo+ICpjaGFuKQ0K PiAgCXN0cnVjdCBmc2xfZWRtYV9jaGFuICpmc2xfY2hhbiA9IHRvX2ZzbF9lZG1hX2NoYW4oY2hh bik7DQo+IA0KPiAgCWZzbF9jaGFuLT50Y2RfcG9vbCA9IGRtYV9wb29sX2NyZWF0ZSgidGNkX3Bv b2wiLCBjaGFuLT5kZXZpY2UtPmRldiwNCj4gLQkJCQlzaXplb2Yoc3RydWN0IGZzbF9lZG1hX2h3 X3RjZCksDQo+ICsJCQkJZnNsX2VkbWFfZHJ2ZmxhZ3MoZnNsX2NoYW4pICYgRlNMX0VETUFfRFJW X1RDRDY0ID8NCj4gKwkJCQlzaXplb2Yoc3RydWN0IGZzbF9lZG1hX2h3X3RjZDY0KSA6IHNpemVv ZihzdHJ1Y3QNCj4gZnNsX2VkbWFfaHdfdGNkKSwNCj4gIAkJCQkzMiwgMCk7DQo+ICAJcmV0dXJu IDA7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9mc2wtZWRtYS1jb21tb24uaA0K PiBiL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLWNvbW1vbi5oIGluZGV4IDRmMzlhNTQ4NTQ3YTYuLjZh ZmNlYjlmZGVkMWINCj4gMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLWNvbW1v bi5oDQo+ICsrKyBiL2RyaXZlcnMvZG1hL2ZzbC1lZG1hLWNvbW1vbi5oDQo+IEBAIC04Nyw2ICs4 NywyMCBAQCBzdHJ1Y3QgZnNsX2VkbWFfaHdfdGNkIHsNCj4gIAlfX2xlMTYJYml0ZXI7DQo+ICB9 Ow0KPiANCj4gK3N0cnVjdCBmc2xfZWRtYV9od190Y2Q2NCB7DQo+ICsJX19sZTY0ICBzYWRkcjsN Cj4gKwlfX2xlMTYgIHNvZmY7DQo+ICsJX19sZTE2ICBhdHRyOw0KPiArCV9fbGUzMiAgbmJ5dGVz Ow0KPiArCV9fbGU2NCAgc2xhc3Q7DQo+ICsJX19sZTY0ICBkYWRkcjsNCj4gKwlfX2xlNjQgIGRs YXN0X3NnYTsNCj4gKwlfX2xlMTYgIGRvZmY7DQo+ICsJX19sZTE2ICBjaXRlcjsNCj4gKwlfX2xl MTYgIGNzcjsNCj4gKwlfX2xlMTYgIGJpdGVyOw0KPiArfSBfX3BhY2tlZDsNCj4gKw0KPiAgc3Ry dWN0IGZzbF9lZG1hM19jaF9yZWcgew0KPiAgCV9fbGUzMgljaF9jc3I7DQo+ICAJX19sZTMyCWNo X2VzOw0KPiBAQCAtOTYsNyArMTEwLDEwIEBAIHN0cnVjdCBmc2xfZWRtYTNfY2hfcmVnIHsNCj4g IAlfX2xlMzIJY2hfbXV4Ow0KPiAgCV9fbGUzMiAgY2hfbWF0dHI7IC8qIGVkbWE0LCByZXNlcnZl ZCBmb3IgZWRtYTMgKi8NCj4gIAlfX2xlMzIgIGNoX3Jlc2VydmVkOw0KPiAtCXN0cnVjdCBmc2xf ZWRtYV9od190Y2QgdGNkOw0KPiArCXVuaW9uIHsNCj4gKwkJc3RydWN0IGZzbF9lZG1hX2h3X3Rj ZCB0Y2Q7DQo+ICsJCXN0cnVjdCBmc2xfZWRtYV9od190Y2QgdGNkNjQ7DQo+ICsJfTsNCj4gIH0g X19wYWNrZWQ7IA0KVGhlIHRjZDY0IHNob3VsZCBiZSBmc2xfZWRtYV9od190Y2Q2ND8NCkJSDQpK b3kgWm91IA0KPiANCj4gIC8qDQo+IEBAIC0xMjUsNyArMTQyLDcgQEAgc3RydWN0IGVkbWFfcmVn cyB7DQo+IA0KPiAgc3RydWN0IGZzbF9lZG1hX3N3X3RjZCB7DQo+ICAJZG1hX2FkZHJfdAkJCXB0 Y2Q7DQo+IC0Jc3RydWN0IGZzbF9lZG1hX2h3X3RjZAkJKnZ0Y2Q7DQo+ICsJdm9pZAkJCQkqdnRj ZDsNCj4gIH07DQo+IA0KPiAgc3RydWN0IGZzbF9lZG1hX2NoYW4gew0KPiBAQCAtMTQ0LDcgKzE2 MSw3IEBAIHN0cnVjdCBmc2xfZWRtYV9jaGFuIHsNCj4gIAl1MzIJCQkJZG1hX2Rldl9zaXplOw0K PiAgCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uCQlkbWFfZGlyOw0KPiAgCWNoYXIJCQkJY2hhbl9u YW1lWzMyXTsNCj4gLQlzdHJ1Y3QgZnNsX2VkbWFfaHdfdGNkIF9faW9tZW0gKnRjZDsNCj4gKwl2 b2lkIF9faW9tZW0JCQkqdGNkOw0KPiAgCXZvaWQgX19pb21lbQkJCSptdXhfYWRkcjsNCj4gIAl1 MzIJCQkJcmVhbF9jb3VudDsNCj4gIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QJCWlzc3VlX3dvcmtlcjsN Cj4gQEAgLTE4OCw2ICsyMDUsNyBAQCBzdHJ1Y3QgZnNsX2VkbWFfZGVzYyB7DQo+ICAjZGVmaW5l IEZTTF9FRE1BX0RSVl9DTEVBUl9ET05FX0VfU0cJQklUKDEzKQ0KPiAgLyogTmVlZCBjbGVhbiBD SG5fQ1NSIERPTkUgYmVmb3JlIGVuYWJsZSBUQ0QncyBNQUpPUkVMSU5LICovDQo+ICAjZGVmaW5l IEZTTF9FRE1BX0RSVl9DTEVBUl9ET05FX0VfTElOSwlCSVQoMTQpDQo+ICsjZGVmaW5lIEZTTF9F RE1BX0RSVl9UQ0Q2NAkJQklUKDE1KQ0KPiANCj4gICNkZWZpbmUgRlNMX0VETUFfRFJWX0VETUEz CShGU0xfRURNQV9EUlZfU1BMSVRfUkVHIHwJXA0KPiAgCQkJCSBGU0xfRURNQV9EUlZfQlVTXzhC WVRFIHwJXA0KPiBAQCAtMjMxLDE4ICsyNDksNjEgQEAgc3RydWN0IGZzbF9lZG1hX2VuZ2luZSB7 DQo+ICAJc3RydWN0IGZzbF9lZG1hX2NoYW4JY2hhbnNbXSBfX2NvdW50ZWRfYnkobl9jaGFucyk7 DQo+ICB9Ow0KPiANCj4gLSNkZWZpbmUgZWRtYV9yZWFkX3RjZHJlZyhjaGFuLCBfX25hbWUpCQkJ CVwNCj4gLShzaXplb2YoY2hhbi0+dGNkLT5fX25hbWUpID09IHNpemVvZih1MzIpID8JCQlcDQo+ IC0JZWRtYV9yZWFkbChjaGFuLT5lZG1hLCAmY2hhbi0+dGNkLT5fX25hbWUpIDoJCVwNCj4gLQll ZG1hX3JlYWR3KGNoYW4tPmVkbWEsICZjaGFuLT50Y2QtPl9fbmFtZSkpDQo+ICsjZGVmaW5lIGVk bWFfcmVhZF90Y2RyZWdfYyhjaGFuLCBfdGNkLCAgX19uYW1lKQkJCQlcDQo+ICsoc2l6ZW9mKChf dGNkKS0+X19uYW1lKSA9PSBzaXplb2YodTY0KSA/CQkJCVwNCj4gKwllZG1hX3JlYWRxKGNoYW4t PmVkbWEsICYoX3RjZCktPl9fbmFtZSkgOgkJCVwNCj4gKwkJKChzaXplb2YoKF90Y2QpLT5fX25h bWUpID09IHNpemVvZih1MzIpKSA/CQlcDQo+ICsJCQllZG1hX3JlYWRsKGNoYW4tPmVkbWEsICYo X3RjZCktPl9fbmFtZSkgOglcDQo+ICsJCQllZG1hX3JlYWR3KGNoYW4tPmVkbWEsICYoX3RjZCkt Pl9fbmFtZSkJCVwNCj4gKwkJKSkNCj4gKw0KPiArI2RlZmluZSBlZG1hX3JlYWRfdGNkcmVnKGNo YW4sIF9fbmFtZSkNCj4gCVwNCj4gKygoZnNsX2VkbWFfZHJ2ZmxhZ3MoY2hhbikgJiBGU0xfRURN QV9EUlZfVENENjQpID8NCj4gCVwNCj4gKwllZG1hX3JlYWRfdGNkcmVnX2MoY2hhbiwgKChzdHJ1 Y3QgZnNsX2VkbWFfaHdfdGNkNjQgX19pb21lbQ0KPiAqKWNoYW4tPnRjZCksIF9fbmFtZSkgOglc DQo+ICsJZWRtYV9yZWFkX3RjZHJlZ19jKGNoYW4sICgoc3RydWN0IGZzbF9lZG1hX2h3X3RjZCBf X2lvbWVtDQo+ICopY2hhbi0+dGNkKSwgX19uYW1lKQkJXA0KPiArKQ0KPiArDQo+ICsjZGVmaW5l IGVkbWFfd3JpdGVfdGNkcmVnX2MoY2hhbiwgX3RjZCwgX3ZhbCwgX19uYW1lKQkJCQlcDQo+ICtk byB7CQkJCQkJCQkJCVwNCj4gKwlzd2l0Y2ggKHNpemVvZihfdGNkLT5fX25hbWUpKSB7CQkJCQkJ XA0KPiArCWNhc2Ugc2l6ZW9mKHU2NCk6CQkJCQkJCVwNCj4gKwkJZWRtYV93cml0ZXEoY2hhbi0+ ZWRtYSwgKHU2NCBfX2ZvcmNlKV92YWwsICZfdGNkLT5fX25hbWUpOwlcDQo+ICsJCWJyZWFrOwkJ CQkJCQkJXA0KPiArCWNhc2Ugc2l6ZW9mKHUzMik6CQkJCQkJCVwNCj4gKwkJZWRtYV93cml0ZWwo Y2hhbi0+ZWRtYSwgKHUzMiBfX2ZvcmNlKV92YWwsICZfdGNkLT5fX25hbWUpOwlcDQo+ICsJCWJy ZWFrOwkJCQkJCQkJXA0KPiArCWNhc2Ugc2l6ZW9mKHUxNik6CQkJCQkJCVwNCj4gKwkJZWRtYV93 cml0ZXcoY2hhbi0+ZWRtYSwgKHUxNiBfX2ZvcmNlKV92YWwsICZfdGNkLT5fX25hbWUpOwlcDQo+ ICsJCWJyZWFrOwkJCQkJCQkJXA0KPiArCWNhc2Ugc2l6ZW9mKHU4KToJCQkJCQkJXA0KPiArCQll ZG1hX3dyaXRlYihjaGFuLT5lZG1hLCAodTggX19mb3JjZSlfdmFsLCAmX3RjZC0+X19uYW1lKTsJ XA0KPiArCQlicmVhazsJCQkJCQkJCVwNCj4gKwl9CQkJCQkJCQkJXA0KPiArfSB3aGlsZSAoMCkN Cj4gDQo+IC0jZGVmaW5lIGVkbWFfd3JpdGVfdGNkcmVnKGNoYW4sIHZhbCwgX19uYW1lKQkJCVwN Cj4gLShzaXplb2YoY2hhbi0+dGNkLT5fX25hbWUpID09IHNpemVvZih1MzIpID8JCQlcDQo+IC0J ZWRtYV93cml0ZWwoY2hhbi0+ZWRtYSwgKHUzMiBfX2ZvcmNlKXZhbCwgJmNoYW4tPnRjZC0+X19u YW1lKSA6CVwNCj4gLQllZG1hX3dyaXRldyhjaGFuLT5lZG1hLCAodTE2IF9fZm9yY2UpdmFsLCAm Y2hhbi0+dGNkLT5fX25hbWUpKQ0KPiArI2RlZmluZSBlZG1hX3dyaXRlX3RjZHJlZyhjaGFuLCB2 YWwsIF9fbmFtZSkNCj4gXA0KPiArZG8gewkJCQkJCQkJCQkJCSAgIFwNCj4gKwlzdHJ1Y3QgZnNs X2VkbWFfaHdfdGNkNjQgX19pb21lbSAqdGNkNjRfciA9IChzdHJ1Y3QNCj4gZnNsX2VkbWFfaHdf dGNkNjQgX19pb21lbSAqKWNoYW4tPnRjZDsgXA0KPiArCXN0cnVjdCBmc2xfZWRtYV9od190Y2Qg X19pb21lbSAqdGNkX3IgPSAoc3RydWN0IGZzbF9lZG1hX2h3X3RjZA0KPiBfX2lvbWVtICopY2hh bi0+dGNkOwkgICBcDQo+ICsJCQkJCQkJCQkJCQkgICBcDQo+ICsJaWYgKGZzbF9lZG1hX2RydmZs YWdzKGNoYW4pICYgRlNMX0VETUFfRFJWX1RDRDY0KQ0KPiAJICAgXA0KPiArCQllZG1hX3dyaXRl X3RjZHJlZ19jKGNoYW4sIHRjZDY0X3IsIHZhbCwgX19uYW1lKTsNCj4gXA0KPiArCWVsc2UJCQkJ CQkJCQkJCSAgIFwNCj4gKwkJZWRtYV93cml0ZV90Y2RyZWdfYyhjaGFuLCB0Y2RfciwgdmFsLCBf X25hbWUpOw0KPiBcDQo+ICt9IHdoaWxlICgwKQ0KPiANCj4gLSNkZWZpbmUgZWRtYV9jcF90Y2Rf dG9fcmVnKGNoYW4sIF9fdGNkLCBfX25hbWUpCQkJXA0KPiAtCWVkbWFfd3JpdGVfdGNkcmVnKGNo YW4sIF9fdGNkLT5fX25hbWUsIF9fbmFtZSkNCj4gKyNkZWZpbmUgZWRtYV9jcF90Y2RfdG9fcmVn KGNoYW4sIF9fdGNkLCBfX25hbWUpDQo+IAkgICBcDQo+ICtkbyB7CVwNCj4gKwlzdHJ1Y3QgZnNs X2VkbWFfaHdfdGNkNjQgX19pb21lbSAqdGNkNjRfciA9IChzdHJ1Y3QNCj4gZnNsX2VkbWFfaHdf dGNkNjQgX19pb21lbSAqKWNoYW4tPnRjZDsgXA0KPiArCXN0cnVjdCBmc2xfZWRtYV9od190Y2Qg X19pb21lbSAqdGNkX3IgPSAoc3RydWN0IGZzbF9lZG1hX2h3X3RjZA0KPiBfX2lvbWVtICopY2hh bi0+dGNkOwkgICBcDQo+ICsJc3RydWN0IGZzbF9lZG1hX2h3X3RjZDY0ICp0Y2Q2NF9tID0gKHN0 cnVjdCBmc2xfZWRtYV9od190Y2Q2NA0KPiAqKV9fdGNkOwkJCSAgIFwNCj4gKwlzdHJ1Y3QgZnNs X2VkbWFfaHdfdGNkICp0Y2RfbSA9IChzdHJ1Y3QgZnNsX2VkbWFfaHdfdGNkICopX190Y2Q7DQo+ IAkgICBcDQo+ICsJCQkJCQkJCQkJCQkgICBcDQo+ICsJaWYgKGZzbF9lZG1hX2RydmZsYWdzKGNo YW4pICYgRlNMX0VETUFfRFJWX1RDRDY0KQ0KPiAJICAgXA0KPiArCQllZG1hX3dyaXRlX3RjZHJl Z19jKGNoYW4sIHRjZDY0X3IsICB0Y2Q2NF9tLT5fX25hbWUsIF9fbmFtZSk7DQo+IAkJICAgXA0K PiArCWVsc2UJCQkJCQkJCQkJCSAgIFwNCj4gKwkJZWRtYV93cml0ZV90Y2RyZWdfYyhjaGFuLCB0 Y2RfciwgdGNkX20tPl9fbmFtZSwgX19uYW1lKTsNCj4gCSAgIFwNCj4gK30gd2hpbGUgKDApDQo+ IA0KPiAgI2RlZmluZSBlZG1hX3JlYWRsX2NocmVnKGNoYW4sIF9fbmFtZSkJCQkJXA0KPiAgCWVk bWFfcmVhZGwoY2hhbi0+ZWRtYSwJCQkJCVwNCj4gQEAgLTI1NCwyNCArMzE1LDQxIEBAIHN0cnVj dCBmc2xfZWRtYV9lbmdpbmUgew0KPiAgCQkgICAodm9pZCBfX2lvbWVtICopJihjb250YWluZXJf b2YoKChfX2ZvcmNlIHZvaWQgKiljaGFuLT50Y2QpLFwNCj4gIAkJCQkJCSAgc3RydWN0IGZzbF9l ZG1hM19jaF9yZWcsIHRjZCktPl9fbmFtZSkpDQo+IA0KPiAtI2RlZmluZSBmc2xfZWRtYV9nZXRf dGNkKF9jaGFuLCBfdGNkLCBfZmllbGQpICgoX3RjZCktPl9maWVsZCkNCj4gLQ0KPiAtI2RlZmlu ZSBmc2xfZWRtYV9sZV90b19jcHUoeCkJCQkJCVwNCj4gLShzaXplb2YoeCkgPT0gc2l6ZW9mKHUz MikgPyBsZTMyX3RvX2NwdSgoX19mb3JjZSBfX2xlMzIpKHgpKSA6DQo+IGxlMTZfdG9fY3B1KChf X2ZvcmNlIF9fbGUxNikoeCkpKQ0KPiAtDQo+IC0jZGVmaW5lIGZzbF9lZG1hX2dldF90Y2RfdG9f Y3B1KF9jaGFuLCBfdGNkLCBfZmllbGQpCQlcDQo+IC1mc2xfZWRtYV9sZV90b19jcHUoZnNsX2Vk bWFfZ2V0X3RjZChfY2hhbiwgX3RjZCwgX2ZpZWxkKSkNCj4gKyNkZWZpbmUgZnNsX2VkbWFfZ2V0 X3RjZChfY2hhbiwgX3RjZCwgX2ZpZWxkKQkJCVwNCj4gKyhmc2xfZWRtYV9kcnZmbGFncyhfY2hh bikgJiBGU0xfRURNQV9EUlZfVENENjQgPyAoKChzdHJ1Y3QNCj4gZnNsX2VkbWFfaHdfdGNkNjQg KilfdGNkKS0+X2ZpZWxkKSA6IFwNCj4gKwkJCQkJCSAoKChzdHJ1Y3QgZnNsX2VkbWFfaHdfdGNk ICopX3RjZCktPl9maWVsZCkpDQo+ICsNCj4gKyNkZWZpbmUgZnNsX2VkbWFfbGVfdG9fY3B1KHgp CQkJCQkJXA0KPiArKHNpemVvZih4KSA9PSBzaXplb2YodTY0KSA/IGxlNjRfdG9fY3B1KChfX2Zv cmNlIF9fbGU2NCkoeCkpIDoJCVwNCj4gKwkoc2l6ZW9mKHgpID09IHNpemVvZih1MzIpID8gbGUz Ml90b19jcHUoKF9fZm9yY2UgX19sZTMyKSh4KSkgOglcDQo+ICsJCQkJICAgIGxlMTZfdG9fY3B1 KChfX2ZvcmNlIF9fbGUxNikoeCkpKSkNCj4gKw0KPiArI2RlZmluZSBmc2xfZWRtYV9nZXRfdGNk X3RvX2NwdShfY2hhbiwgX3RjZCwgX2ZpZWxkKQkJCQlcDQo+ICsoZnNsX2VkbWFfZHJ2ZmxhZ3Mo X2NoYW4pICYgRlNMX0VETUFfRFJWX1RDRDY0ID8JCQkJXA0KPiArCWZzbF9lZG1hX2xlX3RvX2Nw dSgoKHN0cnVjdCBmc2xfZWRtYV9od190Y2Q2NCAqKV90Y2QpLT5fZmllbGQpIDoJXA0KPiArCWZz bF9lZG1hX2xlX3RvX2NwdSgoKHN0cnVjdCBmc2xfZWRtYV9od190Y2QgKilfdGNkKS0+X2ZpZWxk KSkNCj4gKw0KPiArI2RlZmluZSBmc2xfZWRtYV9zZXRfdGNkX3RvX2xlX2MoX3RjZCwgX3ZhbCwg X2ZpZWxkKQkJCQkJXA0KPiArZG8gewkJCQkJCQkJCQkJXA0KPiArCXN3aXRjaCAoc2l6ZW9mKChf dGNkKS0+X2ZpZWxkKSkgewkJCQkJCVwNCj4gKwljYXNlIHNpemVvZih1NjQpOgkJCQkJCQkJXA0K PiArCQkqKF9fZm9yY2UgX19sZTY0ICopKCYoKF90Y2QpLT5fZmllbGQpKSA9IGNwdV90b19sZTY0 KF92YWwpOwkJXA0KPiArCQlicmVhazsJCQkJCQkJCQlcDQo+ICsJY2FzZSBzaXplb2YodTMyKToJ CQkJCQkJCVwNCj4gKwkJKihfX2ZvcmNlIF9fbGUzMiAqKSgmKChfdGNkKS0+X2ZpZWxkKSkgPSBj cHVfdG9fbGUzMihfdmFsKTsJCVwNCj4gKwkJYnJlYWs7CQkJCQkJCQkJXA0KPiArCWNhc2Ugc2l6 ZW9mKHUxNik6CQkJCQkJCQlcDQo+ICsJCSooX19mb3JjZSBfX2xlMTYgKikoJigoX3RjZCktPl9m aWVsZCkpID0gY3B1X3RvX2xlMTYoX3ZhbCk7CQlcDQo+ICsJCWJyZWFrOwkJCQkJCQkJCVwNCj4g Kwl9CQkJCQkJCQkJCVwNCj4gK30gd2hpbGUgKDApDQo+IA0KPiAtI2RlZmluZSBmc2xfZWRtYV9z ZXRfdGNkX3RvX2xlKF9mc2xfY2hhbiwgX3RjZCwgX3ZhbCwgX2ZpZWxkKQkJCVwNCj4gLWRvIHsJ CQkJCQkJCQkJXA0KPiAtCXN3aXRjaCAoc2l6ZW9mKChfdGNkKS0+X2ZpZWxkKSkgewkJCQkJXA0K PiAtCWNhc2Ugc2l6ZW9mKHUzMik6CQkJCQkJCVwNCj4gLQkJKihfX2ZvcmNlIF9fbGUzMiAqKSgm KChfdGNkKS0+X2ZpZWxkKSkgPSBjcHVfdG9fbGUzMihfdmFsKTsJXA0KPiAtCQlicmVhazsJCQkJ CQkJCVwNCj4gLQljYXNlIHNpemVvZih1MTYpOgkJCQkJCQlcDQo+IC0JCSooX19mb3JjZSBfX2xl MTYgKikoJigoX3RjZCktPl9maWVsZCkpID0gY3B1X3RvX2xlMTYoX3ZhbCk7CVwNCj4gLQkJYnJl YWs7CQkJCQkJCQlcDQo+IC0JfQkJCQkJCQkJCVwNCj4gKyNkZWZpbmUgZnNsX2VkbWFfc2V0X3Rj ZF90b19sZShfY2hhbiwgX3RjZCwgX3ZhbCwgX2ZpZWxkKQlcDQo+ICtkbyB7CQkJCQkJCQlcDQo+ ICsJaWYgKGZzbF9lZG1hX2RydmZsYWdzKF9jaGFuKSAmIEZTTF9FRE1BX0RSVl9UQ0Q2NCkJXA0K PiArCQlmc2xfZWRtYV9zZXRfdGNkX3RvX2xlX2MoKHN0cnVjdCBmc2xfZWRtYV9od190Y2Q2NCAq KV90Y2QsIF92YWwsDQo+IF9maWVsZCk7CVwNCj4gKwllbHNlCQkJCQkJCQkJCQlcDQo+ICsJCWZz bF9lZG1hX3NldF90Y2RfdG9fbGVfYygoc3RydWN0IGZzbF9lZG1hX2h3X3RjZCAqKV90Y2QsIF92 YWwsDQo+IF9maWVsZCk7CQlcDQo+ICB9IHdoaWxlICgwKQ0KPiANCj4gIC8qDQo+IEBAIC0yODAs NiArMzU4LDIxIEBAIGRvIHsNCj4gCVwNCj4gICAqIEZvciB0aGUgYmlnLWVuZGlhbiBJUCBtb2R1 bGUsIHRoZSBvZmZzZXQgZm9yIDgtYml0IG9yIDE2LWJpdCByZWdpc3RlcnMNCj4gICAqIHNob3Vs ZCBhbHNvIGJlIHN3YXBwZWQgb3Bwb3NpdGUgdG8gdGhhdCBpbiBsaXR0bGUtZW5kaWFuIElQLg0K PiAgICovDQo+ICtzdGF0aWMgaW5saW5lIHU2NCBlZG1hX3JlYWRxKHN0cnVjdCBmc2xfZWRtYV9l bmdpbmUgKmVkbWEsIHZvaWQgX19pb21lbQ0KPiArKmFkZHIpIHsNCj4gKwl1NjQgbCwgaDsNCj4g Kw0KPiArCWlmIChlZG1hLT5iaWdfZW5kaWFuKSB7DQo+ICsJCWwgPSBpb3JlYWQzMmJlKGFkZHIp Ow0KPiArCQloID0gaW9yZWFkMzJiZShhZGRyICsgNCk7DQo+ICsJfSBlbHNlIHsNCj4gKwkJbCA9 IGlvcmVhZDMyKGFkZHIpOw0KPiArCQloID0gaW9yZWFkMzIoYWRkciArIDQpOw0KPiArCX0NCj4g Kw0KPiArCXJldHVybiAoaCA8PCAzMikgfCBsOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW5saW5l IHUzMiBlZG1hX3JlYWRsKHN0cnVjdCBmc2xfZWRtYV9lbmdpbmUgKmVkbWEsIHZvaWQgX19pb21l bQ0KPiAqYWRkcikgIHsNCj4gIAlpZiAoZWRtYS0+YmlnX2VuZGlhbikNCj4gQEAgLTMyNSw2ICs0 MTgsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIGVkbWFfd3JpdGVsKHN0cnVjdA0KPiBmc2xfZWRt YV9lbmdpbmUgKmVkbWEsDQo+ICAJCWlvd3JpdGUzMih2YWwsIGFkZHIpOw0KPiAgfQ0KPiANCj4g K3N0YXRpYyBpbmxpbmUgdm9pZCBlZG1hX3dyaXRlcShzdHJ1Y3QgZnNsX2VkbWFfZW5naW5lICpl ZG1hLA0KPiArCQkJICAgICAgIHU2NCB2YWwsIHZvaWQgX19pb21lbSAqYWRkcikNCj4gK3sNCj4g KwlpZiAoZWRtYS0+YmlnX2VuZGlhbikgew0KPiArCQlpb3dyaXRlMzJiZSh2YWwgJiAweEZGRkZG RkZGLCBhZGRyKTsNCj4gKwkJaW93cml0ZTMyYmUodmFsID4+IDMyLCBhZGRyICsgNCk7DQo+ICsJ fSBlbHNlIHsNCj4gKwkJaW93cml0ZTMyKHZhbCAmIDB4RkZGRkZGRkYsIGFkZHIpOw0KPiArCQlp b3dyaXRlMzIodmFsID4+IDMyLCBhZGRyICsgNCk7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICBzdGF0 aWMgaW5saW5lIHN0cnVjdCBmc2xfZWRtYV9jaGFuICp0b19mc2xfZWRtYV9jaGFuKHN0cnVjdCBk bWFfY2hhbiAqY2hhbikNCj4gew0KPiAgCXJldHVybiBjb250YWluZXJfb2YoY2hhbiwgc3RydWN0 IGZzbF9lZG1hX2NoYW4sIHZjaGFuLmNoYW4pOyBkaWZmIC0tZ2l0DQo+IGEvZHJpdmVycy9kbWEv ZnNsLWVkbWEtbWFpbi5jIGIvZHJpdmVycy9kbWEvZnNsLWVkbWEtbWFpbi5jIGluZGV4DQo+IGQ3 NjdjODk5NzNiNjkuLmMyYzBjM2VmZmM4Y2IgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZG1hL2Zz bC1lZG1hLW1haW4uYw0KPiArKysgYi9kcml2ZXJzL2RtYS9mc2wtZWRtYS1tYWluLmMNCj4gQEAg LTM2NCw2ICszNjQsMTYgQEAgc3RhdGljIHN0cnVjdCBmc2xfZWRtYV9kcnZkYXRhIGlteDkzX2Rh dGE0ID0gew0KPiAgCS5zZXR1cF9pcnEgPSBmc2xfZWRtYTNfaXJxX2luaXQsDQo+ICB9Ow0KPiAN Cj4gK3N0YXRpYyBzdHJ1Y3QgZnNsX2VkbWFfZHJ2ZGF0YSBpbXg5NV9kYXRhNSA9IHsNCj4gKwku ZmxhZ3MgPSBGU0xfRURNQV9EUlZfSEFTX0NITVVYIHwgRlNMX0VETUFfRFJWX0hBU19ETUFDTEsg fA0KPiBGU0xfRURNQV9EUlZfRURNQTQgfA0KPiArCQkgRlNMX0VETUFfRFJWX1RDRDY0LA0KPiAr CS5jaHJlZ19zcGFjZV9zeiA9IDB4ODAwMCwNCj4gKwkuY2hyZWdfb2ZmID0gMHgxMDAwMCwNCj4g KwkubXV4X29mZiA9IDB4MjAwLA0KPiArCS5tdXhfc2tpcCA9IHNpemVvZih1MzIpLA0KPiArCS5z ZXR1cF9pcnEgPSBmc2xfZWRtYTNfaXJxX2luaXQsDQo+ICt9Ow0KPiArDQo+ICBzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCBmc2xfZWRtYV9kdF9pZHNbXSA9IHsNCj4gIAl7IC5jb21w YXRpYmxlID0gImZzbCx2ZjYxMC1lZG1hIiwgLmRhdGEgPSAmdmY2MTBfZGF0YX0sDQo+ICAJeyAu Y29tcGF0aWJsZSA9ICJmc2wsbHMxMDI4YS1lZG1hIiwgLmRhdGEgPSAmbHMxMDI4YV9kYXRhfSwg QEAgLTM3Miw2DQo+ICszODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBm c2xfZWRtYV9kdF9pZHNbXSA9IHsNCj4gIAl7IC5jb21wYXRpYmxlID0gImZzbCxpbXg4cW0tYWRt YSIsIC5kYXRhID0gJmlteDhxbV9hdWRpb19kYXRhfSwNCj4gIAl7IC5jb21wYXRpYmxlID0gImZz bCxpbXg5My1lZG1hMyIsIC5kYXRhID0gJmlteDkzX2RhdGEzfSwNCj4gIAl7IC5jb21wYXRpYmxl ID0gImZzbCxpbXg5My1lZG1hNCIsIC5kYXRhID0gJmlteDkzX2RhdGE0fSwNCj4gKwl7IC5jb21w YXRpYmxlID0gImZzbCxpbXg5NS1lZG1hNSIsIC5kYXRhID0gJmlteDk1X2RhdGE1fSwNCj4gIAl7 IC8qIHNlbnRpbmVsICovIH0NCj4gIH07DQo+ICBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBmc2xf ZWRtYV9kdF9pZHMpOyBAQCAtNTEzLDYgKzUyNCw5IEBAIHN0YXRpYw0KPiBpbnQgZnNsX2VkbWFf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gIAkJCXJldHVybiByZXQ7DQo+ ICAJfQ0KPiANCj4gKwlpZiAoZHJ2ZGF0YS0+ZmxhZ3MgJiBGU0xfRURNQV9EUlZfVENENjQpDQo+ ICsJCWRtYV9zZXRfbWFza19hbmRfY29oZXJlbnQoJnBkZXYtPmRldiwgRE1BX0JJVF9NQVNLKDY0 KSk7DQo+ICsNCj4gIAlJTklUX0xJU1RfSEVBRCgmZnNsX2VkbWEtPmRtYV9kZXYuY2hhbm5lbHMp Ow0KPiAgCWZvciAoaSA9IDA7IGkgPCBmc2xfZWRtYS0+bl9jaGFuczsgaSsrKSB7DQo+ICAJCXN0 cnVjdCBmc2xfZWRtYV9jaGFuICpmc2xfY2hhbiA9ICZmc2xfZWRtYS0+Y2hhbnNbaV07DQo+IC0t DQo+IDIuMzQuMQ0KDQo=