From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 53001A034C; Thu, 29 Sep 2022 23:15:28 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 45D8E4114E; Thu, 29 Sep 2022 23:15:28 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 1042240694 for ; Thu, 29 Sep 2022 23:15:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664486126; x=1696022126; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/DveTwO97hCgM1WfOgP6P4gigCYQy9leTZuFbMjrsZM=; b=GXk7WvzjkVB2NcMEPjhuu7XQCtkFkZ+i3jd9qpKkpOVhIkPzlcoZ1MeM oiXwoQlNFp+zbkTJXkwK2NYvcvb8qMf42A1+4gXGspbX3rNqS4ciJzBew 3p2PAVa8nGg+ZvFaWYcldqi+UnYCqI2ssUEZ5VFNdiVc685Rls2ww7AzL ShKkr6Jh7lGizs+EV9Pv7mXfA6wvxMugesw+APzhGTetxoplbzim9hsMu Qqz4pqnr7QPuf5jX4NnmgmYDKpnYbLoer+udxjfA7VbxIkgwUEnPyxVpD VnfgAt0vBkK6GdejQct+o04yG5l4wYa9yzjJS7XPizFR5HDBnhKu37baX Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10485"; a="302941991" X-IronPort-AV: E=Sophos;i="5.93,356,1654585200"; d="scan'208";a="302941991" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2022 14:15:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10485"; a="622530394" X-IronPort-AV: E=Sophos;i="5.93,356,1654585200"; d="scan'208";a="622530394" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga002.jf.intel.com with ESMTP; 29 Sep 2022 14:15:24 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 29 Sep 2022 14:15:24 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 29 Sep 2022 14:15:23 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Thu, 29 Sep 2022 14:15:23 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.42) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Thu, 29 Sep 2022 14:15:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lcm4Y5A0AkPsMV3m73cf2yQvXGgBjQjTKGmCQqJEAhOFfhV8+IQR3Xjup628DzAhCePHY2zAMOwC43/GhATcBTcr8Fj4W8//KP4AQfygXpak8tdViytFkss2jHhmFebALxLE4muhKNMN2rqk2K3qI9Nc5gQ0BReFxyleIxA8whl+fhGHzRG9PRGaGfcqgkvgv7vr1DJzluvUF042CgQIpYetbzzObq/Tvuw1URnOzOqDv1OiDK2DcgbDfGf4yz3RW5BG6SpT/8fBoxTi1TRuxTm0paWWYKuEx/TWIp9fjGG+6oZDcT/ovVvr7PL0itk+Jyy6LMyQ7BsqRmB4/zcVqQ== 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=/DveTwO97hCgM1WfOgP6P4gigCYQy9leTZuFbMjrsZM=; b=XiOmxHosHWuL2wI0xlCKbqrbMLw4ZWbZ/qfkW/CkLXt2MUvd3x6FWN2z6unNIpT519d6H2isz1UrbiSEbNjvdI70EIviSl6G0a044bHb42SMAffzzS15zaT3osN4Ay/XtRBODtzlq9LVqPqu8gVv3JEmZDOxhZjqUPB3C3KLpgwT+5gHjN0Yscslpfk6L4Bzhf1OxE1qNKSzFhXwhkIXr5F8yTMoGhxFN+db0n6Rp96oJSde9dbY7hh/QOJZ1guax9IM9r59plMTPjVMr/9hi1URZnruKfCzTa4kaM+UZLGAA7NTBsA6IwbZlRiNbJD5kXtMizNFU06bF3ZHduKZQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by DM4PR11MB6456.namprd11.prod.outlook.com (2603:10b6:8:bc::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.20; Thu, 29 Sep 2022 21:15:21 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::e6be:3feb:17fd:bdcf]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::e6be:3feb:17fd:bdcf%7]) with mapi id 15.20.5676.020; Thu, 29 Sep 2022 21:15:21 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" , "thomas@monjalon.net" CC: "trix@redhat.com" , "mdr@ashroe.eu" , "Richardson, Bruce" , "hemant.agrawal@nxp.com" , "david.marchand@redhat.com" , "stephen@networkplumber.org" , "Vargas, Hernan" Subject: RE: [PATCH v6 11/14] baseband/acc: support interrupt Thread-Topic: [PATCH v6 11/14] baseband/acc: support interrupt Thread-Index: AQHYz6+4COytkh5esEqwcxr/7vZTfq3zUKiAgAOg/4A= Date: Thu, 29 Sep 2022 21:15:21 +0000 Message-ID: References: <20220924005048.20302-1-nicolas.chautru@intel.com> <20220924005048.20302-12-nicolas.chautru@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR11MB4451:EE_|DM4PR11MB6456:EE_ x-ms-office365-filtering-correlation-id: c49224b7-0acc-41c6-bb91-08daa25fb795 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8by0oFYuTi5oXDD8RWXj0rfNiBYf63+dNbsYDiRh5u+Xtn8Lhlw/NixKlGnCsEYT2/b7z5SvfL8OdpZE3EZQzsfWpMjuGtmVrtOxGrGKUWnb4uVom9TGZ0K8l9txnf7RY3haVl+BfAtbgOmG/krtWo58hnhk1KgZukGWioXJSQt9GnJV74j/If+SK9z3ry2UYZXK9ADfM6eU026aYSdDY5A6CZTpO2bBNE6zsoyJwMEurC4YveGpVkLOfyj7TjgmnMTRrE6MUeKuNCmiQt82OBj82v4HKwT0nM9jI68tKWk5uX5L97yQ1I+b/odE2WbtnLzza/laxBU2tRsbLonabpFR8VqP/rJNDABPnlcTHhtVUKMoO8Bk0bz5HpYe48qIAEa+4gIlFx06TC6L2blaVqOk11mAHa/AelbZY4zosIbiq/Si5QD6csJCxo3niFjyTZfdkJ5INF4tQ6ZPVOj4phlY/vP4Nq7mlrNcRzSbZ62MfQaJ8GQF/7hTx7gkAIcHoODwasPy5TowRIlHW3RhknF6P93CrNXVsuI9wL7swzRFyl2hMPz/ORUkl6pvLafgFv6pjJ8UaDUdeqzrnTudKP55zTL97W8hjHfoTKztOOXZB0i/3UIDv8O3YQKlr7XctYYWkE0p5yI3tbeG8Ec/n67TY+IerlRpi4AJ4jnLvLjFjrOxR+9w8svcubDZ3MKX9YIhdDyBVXU0mbxDexqfYUS6qEKzBm/Oc6ZcDuXhFg8E7alHHgZQzSxYEV8nVKM4K/1t0n9ElJyGYAQyEf5KBQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(366004)(451199015)(86362001)(82960400001)(33656002)(38070700005)(55016003)(122000001)(38100700002)(76116006)(4326008)(110136005)(71200400001)(8676002)(54906003)(66476007)(66946007)(52536014)(2906002)(5660300002)(8936002)(64756008)(66556008)(66446008)(83380400001)(186003)(7696005)(107886003)(498600001)(53546011)(6506007)(26005)(30864003)(9686003)(66899015); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bVprSkUxVTkxYU1ydktEOEc4d0QxYzBaWUE4alVmenFTaFVnS0lKUUhKb201?= =?utf-8?B?ZS9iSFg3OWp1Z29zazUxU0FoSHdJM0VzakFycnhyNXI5dWxSMnErNER0N2RV?= =?utf-8?B?MnhhRnJZUk11M3FSM1JHTStjQjdkdEZpMDM0ei9oU1RQZ0JrOVJjZU8xSER1?= =?utf-8?B?ekVJa0w3TFF1NGhhQmVZdW40dFVlSzZuTkNtRDFnakZ5V2Q5djAzRE1PVFRR?= =?utf-8?B?SFR2TDNHNlVRZzY3NHlHYUxSSUlKQ0ZPd1dWMHIrRUZDTGpRellqbzU5RTZL?= =?utf-8?B?VHVmTlZzOXk5a1hENlI1T1BocndXNWJ6bzIzanRhSjQxbVp3bTBLcE04OWhz?= =?utf-8?B?NWwwcU1WZWtPSStRU3MrOUdQTEZJVlJ6d0pIM0pKZ05OSkk2RFhScWRwVldZ?= =?utf-8?B?TUhKdHFhVkQrNk9kcjl2V3dnMVVmMGZ4TzZJc2h5bDgwU1k3Vm91V0YzNmVU?= =?utf-8?B?THNYRDR4SVZwc0RsRjRtQTJ3VGF4dEtscGV1Y3J0WlZDUCtBTUh3NkZsclBu?= =?utf-8?B?QUxrbHE1bFEvaGxhOTFqWlZFVkZSY3h6U1hJREQxZURMRk9tOThJWmtBb2lx?= =?utf-8?B?a1phaFVGRVZyOSsyVzh6ZHFiVDZJNlYzaTZmOTBrL1NrVEI1SFpveWN4bnBs?= =?utf-8?B?VjlEWmZ0ZG4xMlNKRXRuVkd2QXB3WGJ1OVhIUnh5VUNqNktFR1hCSk9VR2I1?= =?utf-8?B?RmpkV1JIWWsxTHUrNTdwUktuU090eExpSWlncUszM0hlVFpmNFB1anhLMzZ5?= =?utf-8?B?Zm5aQ0sxZUNTSVM0R2syQTZxMEsxSi9CYXo1V1hFNDc2cVZZN3VvUmxCcHcv?= =?utf-8?B?dnN6aENxUmFmeFpmVFc0bGNlOWNkRDBJZW5XQ0pLT2RubG5hNi83Z0NQai80?= =?utf-8?B?NGl5V2pReUJyRzVHVFBpWVMwcXF4OWRja3pLS3ZNQTZ1S2l4UlhlUVUxS2Fp?= =?utf-8?B?Rzg0ajFUcXI5NDJxWmZMMnlOWmluMkZNak00NnJodElLa0hIektnVUZKN0R3?= =?utf-8?B?d01HUnByUWdOVmhzWUM2a0JCTWNPV2pBb2ZSQ2x1Q3NuTEZSaW43c0JpL1Jo?= =?utf-8?B?MGE3R09iU3Q1SUo1YUNneWdFck1ydnZLMkZzZVRZNktkSE1GdW1mZGFDbnNS?= =?utf-8?B?NjJidlZUc3hITGFiUE9adjlLZTRDVHYxSnFhM0ZwSXdiK3NvajBTRTZHT0tP?= =?utf-8?B?VzZWM01mL2FxUWw4c29VS1BMUXRweFRVbmU1YmJWNVBVT2ZMN3lHNWxEYU51?= =?utf-8?B?YU5tcFVMSzBNY20xTFhsdU5PZjFFYVd6blJaOHNHY1B5dGg5UGhnMzVPcCtD?= =?utf-8?B?aGJ6b1JBZ1FkOS9TNXkwSi9TR0p5THAwYnNpcHZkdm53eGd3U0Z5RW9VUVA3?= =?utf-8?B?SkNEL0NqamZQeVowNkROMlIxUjRqcVhSb0Y5ajJWUW1LbktMT0dQanpzZXZT?= =?utf-8?B?bWpFcTIzY2hBeitTcGJWYzZzMWlzQXk2RnUxeHlEQWJHKzFjYllTRyt6bE5C?= =?utf-8?B?dW5RS3lPZkpPekVoWFBNdWFpR0ZPMHhmWUVqOE9NbjlxQnJ2WnBRVXRQNzFX?= =?utf-8?B?WHRhUFJyVjVsOU83dXNjZjlENU5RRGhwMGpJMUtzV2FBQ0FEWHFaVWx1ci83?= =?utf-8?B?bnpVb3FzOElwaXNadUJxbnJGY1VIejIycFZlYTZMc2Q3MWorNE1PcmFaenQz?= =?utf-8?B?NVhZL0JIKzhtUXg0bnpteitSNUczdnNLZ0dUTzM5V0plZUVoSFp1YlAvRjJ2?= =?utf-8?B?eUI1cTBkS0tORnQwcUxmdHprdythRnB4U09hRUJVQThrRE1jSnkwdTc0WGEw?= =?utf-8?B?Z0FFWE9FT3JNYWFEdHBHU1YxbDRNOU5WQU5WMHZkdnU1ZXZCL2hKN1lMS3pV?= =?utf-8?B?cVZoK25ON1VKV1I3QVEyZTlUWDVrR2ora0RJTXNFN0hGdGZwTDFmcDhCUWpJ?= =?utf-8?B?OFY5bFU5OEZxVFkzRUFsblEyU1ZjYzhpVDluTGQ3cXVKSUhLNG9XMWJNQWky?= =?utf-8?B?U1M4eGtyVXpyVTllYnNnemFQZjVaeEFubXNNQjkxR1BVcnB2cU83eWVoaFFY?= =?utf-8?B?bGZ3bEE3Mk5YNVZaQXE2OE1tY0hhSHc4dEVZeG00V2NBZXJXalNhYTI1RWtu?= =?utf-8?Q?SsowORZCj7krZeYNRj6TGZc2t?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c49224b7-0acc-41c6-bb91-08daa25fb795 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2022 21:15:21.1357 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: oodouDsNM8fx5wnLV20KX02xpKgImwd3yeKSte1DY3Qxermw3vef9Ij4IIhbPidbWm0UqDBgWbf3usfmHRSaqupxzuOtGaqbXwltmqXquOs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6456 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgTWF4aW1lLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhp bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5 LCBTZXB0ZW1iZXIgMjcsIDIwMjIgNjo1MCBBTQ0KPiBUbzogQ2hhdXRydSwgTmljb2xhcyA8bmlj b2xhcy5jaGF1dHJ1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZzsNCj4gdGhvbWFzQG1vbmphbG9u Lm5ldA0KPiBDYzogdHJpeEByZWRoYXQuY29tOyBtZHJAYXNocm9lLmV1OyBSaWNoYXJkc29uLCBC cnVjZQ0KPiA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBoZW1hbnQuYWdyYXdhbEBueHAu Y29tOw0KPiBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tOyBzdGVwaGVuQG5ldHdvcmtwbHVtYmVy Lm9yZzsgVmFyZ2FzLCBIZXJuYW4NCj4gPGhlcm5hbi52YXJnYXNAaW50ZWwuY29tPg0KPiBTdWJq ZWN0OiBSZTogW1BBVENIIHY2IDExLzE0XSBiYXNlYmFuZC9hY2M6IHN1cHBvcnQgaW50ZXJydXB0 DQo+IA0KPiANCj4gDQo+IE9uIDkvMjQvMjIgMDI6NTAsIE5pY29sYXMgQ2hhdXRydSB3cm90ZToN Cj4gPiBGcm9tOiBOaWMgQ2hhdXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4gPg0K PiA+IEFkZGluZyBzdXBwb3J0IGZvciBjYXBhYmlsaXR5IGFuZCBmdW5jdGlvbnMgZm9yIE1TSS9N U0ktWCBpbnRlcnJ1cHQNCj4gPiBhbmQgdW5kZXJseWluZyBpbmZvcm1hdGlvbiByaW5nLg0KPiA+ DQo+ID4gU2lnbmVkLW9mZi1ieTogTmljIENoYXV0cnUgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5j b20+DQo+ID4gLS0tDQo+ID4gICBkcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfYWNjMjAwX3BtZC5j IHwgMzAzDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKystDQo+ID4gICAxIGZpbGUgY2hhbmdl ZCwgMzAxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX2FjYzIwMF9wbWQuYw0KPiA+IGIvZHJpdmVycy9i YXNlYmFuZC9hY2MvcnRlX2FjYzIwMF9wbWQuYw0KPiA+IGluZGV4IDdmMmNkNzExNjYuLjQ2MDI3 ZmY2YWYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX2FjYzIwMF9w bWQuYw0KPiA+ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2MyMDBfcG1kLmMNCj4g PiBAQCAtMjIwLDYgKzIyMCwxNTIgQEAgZmV0Y2hfYWNjMjAwX2NvbmZpZyhzdHJ1Y3QgcnRlX2Ji ZGV2ICpkZXYpDQo+ID4gICAJCQlhY2NfY29uZi0+cV9mZnQuYXFfZGVwdGhfbG9nMik7DQo+ID4g ICB9DQo+ID4NCj4gPiArLyogQ2hlY2tzIFBGIEluZm8gUmluZyB0byBmaW5kIHRoZSBpbnRlcnJ1 cHQgY2F1c2UgYW5kIGhhbmRsZXMgaXQNCj4gPiArYWNjb3JkaW5nbHkgKi8gc3RhdGljIGlubGlu ZSB2b2lkIGFjYzIwMF9jaGVja19pcihzdHJ1Y3QgYWNjX2RldmljZQ0KPiA+ICsqYWNjMjAwX2Rl dikgew0KPiA+ICsJdm9sYXRpbGUgdW5pb24gYWNjX2luZm9fcmluZ19kYXRhICpyaW5nX2RhdGE7 DQo+ID4gKwl1aW50MTZfdCBpbmZvX3JpbmdfaGVhZCA9IGFjYzIwMF9kZXYtPmluZm9fcmluZ19o ZWFkOw0KPiA+ICsJaWYgKGFjYzIwMF9kZXYtPmluZm9fcmluZyA9PSBOVUxMKQ0KPiA+ICsJCXJl dHVybjsNCj4gDQo+IE15IHVuZGVyc3RhbmRpbmcgaXMgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg aW4gdGhlIGhvdCBwYXRoLCBhbmQgYWJvdmUgY29uZGl0aW9uDQo+IGlzIG5vdCBleHBlY3RlZCB0 byBiZSB0cnVlIGluIHdvcmtpbmcgY29uZGl0aW9ucy4NCj4gSWYgc28sIGl0IGNhbiBiZSBtYXJr ZWQgYXMgdW5saWtlbHkuDQoNClRoYW5rcywgdXBkYXRlZCBpbiB2Nw0KDQo+IA0KPiA+ICsNCj4g PiArCXJpbmdfZGF0YSA9IGFjYzIwMF9kZXYtPmluZm9fcmluZyArIChhY2MyMDBfZGV2LT5pbmZv X3JpbmdfaGVhZCAmDQo+ID4gKwkJCUFDQ19JTkZPX1JJTkdfTUFTSyk7DQo+ID4gKw0KPiA+ICsJ d2hpbGUgKHJpbmdfZGF0YS0+dmFsaWQpIHsNCj4gPiArCQlpZiAoKHJpbmdfZGF0YS0+aW50X25i IDwgQUNDMjAwX1BGX0lOVF9ETUFfRExfREVTQ19JUlEpDQo+IHx8ICgNCj4gPiArCQkJCXJpbmdf ZGF0YS0+aW50X25iID4NCj4gPiArCQkJCUFDQzIwMF9QRl9JTlRfRE1BX0RMNUdfREVTQ19JUlEp KSB7DQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2coV0FSTklORywgIkluZm9SaW5nOiBJVFI6JWQNCj4g SW5mbzoweCV4IiwNCj4gPiArCQkJCXJpbmdfZGF0YS0+aW50X25iLCByaW5nX2RhdGEtPmRldGFp bGVkX2luZm8pOw0KPiA+ICsJCQkvKiBJbml0aWFsaXplIEluZm8gUmluZyBlbnRyeSBhbmQgbW92 ZSBmb3J3YXJkICovDQo+ID4gKwkJCXJpbmdfZGF0YS0+dmFsID0gMDsNCj4gPiArCQl9DQo+ID4g KwkJaW5mb19yaW5nX2hlYWQrKzsNCj4gPiArCQlyaW5nX2RhdGEgPSBhY2MyMDBfZGV2LT5pbmZv X3JpbmcgKw0KPiA+ICsJCQkJKGluZm9fcmluZ19oZWFkICYgQUNDX0lORk9fUklOR19NQVNLKTsN Cj4gPiArCX0NCj4gPiArfQ0KPiA+ICsNCj4gPiArLyogSW50ZXJydXB0IGhhbmRsZXIgdHJpZ2dl cmVkIGJ5IEFDQzIwMCBkZXYgZm9yIGhhbmRsaW5nIHNwZWNpZmljDQo+ID4gK2ludGVycnVwdCAq LyBzdGF0aWMgdm9pZCBhY2MyMDBfZGV2X2ludGVycnVwdF9oYW5kbGVyKHZvaWQgKmNiX2FyZykg ew0KPiA+ICsJc3RydWN0IHJ0ZV9iYmRldiAqZGV2ID0gY2JfYXJnOw0KPiA+ICsJc3RydWN0IGFj Y19kZXZpY2UgKmFjYzIwMF9kZXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJdm9s YXRpbGUgdW5pb24gYWNjX2luZm9fcmluZ19kYXRhICpyaW5nX2RhdGE7DQo+ID4gKwlzdHJ1Y3Qg YWNjX2RlcV9pbnRyX2RldGFpbHMgZGVxX2ludHJfZGV0Ow0KPiA+ICsNCj4gPiArCXJpbmdfZGF0 YSA9IGFjYzIwMF9kZXYtPmluZm9fcmluZyArIChhY2MyMDBfZGV2LT5pbmZvX3JpbmdfaGVhZCAm DQo+ID4gK0FDQ19JTkZPX1JJTkdfTUFTSyk7DQo+ID4gKw0KPiA+ICsJd2hpbGUgKHJpbmdfZGF0 YS0+dmFsaWQpIHsNCj4gPiArCQlpZiAoYWNjMjAwX2Rldi0+cGZfZGV2aWNlKSB7DQo+ID4gKwkJ CXJ0ZV9iYmRldl9sb2dfZGVidWcoDQo+ID4gKwkJCQkJIkFDQzIwMCBQRiBJbnRlcnJ1cHQgcmVj ZWl2ZWQsIEluZm8NCj4gUmluZyBkYXRhOiAweCV4IC0+ICVkIiwNCj4gPiArCQkJCQlyaW5nX2Rh dGEtPnZhbCwgcmluZ19kYXRhLT5pbnRfbmIpOw0KPiA+ICsNCj4gPiArCQkJc3dpdGNoIChyaW5n X2RhdGEtPmludF9uYikgew0KPiA+ICsJCQljYXNlIEFDQzIwMF9QRl9JTlRfRE1BX0RMX0RFU0Nf SVJROg0KPiA+ICsJCQljYXNlIEFDQzIwMF9QRl9JTlRfRE1BX1VMX0RFU0NfSVJROg0KPiA+ICsJ CQljYXNlIEFDQzIwMF9QRl9JTlRfRE1BX0ZGVF9ERVNDX0lSUToNCj4gPiArCQkJY2FzZSBBQ0My MDBfUEZfSU5UX0RNQV9VTDVHX0RFU0NfSVJROg0KPiA+ICsJCQljYXNlIEFDQzIwMF9QRl9JTlRf RE1BX0RMNUdfREVTQ19JUlE6DQo+ID4gKwkJCQlkZXFfaW50cl9kZXQucXVldWVfaWQgPQ0KPiBn ZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oDQo+ID4gKwkJCQkJCWRldi0+ZGF0YSwgKnJpbmdf ZGF0YSk7DQo+ID4gKwkJCQlpZiAoZGVxX2ludHJfZGV0LnF1ZXVlX2lkID09IFVJTlQxNl9NQVgp IHsNCj4gPiArCQkJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiArCQkJCQkJCSJDb3VsZG4ndCBm aW5kIHF1ZXVlOg0KPiBhcV9pZDogJXUsIHFnX2lkOiAldSwgdmZfaWQ6ICV1IiwNCj4gPiArCQkJ CQkJCXJpbmdfZGF0YS0+YXFfaWQsDQo+ID4gKwkJCQkJCQlyaW5nX2RhdGEtPnFnX2lkLA0KPiA+ ICsJCQkJCQkJcmluZ19kYXRhLT52Zl9pZCk7DQo+ID4gKwkJCQkJcmV0dXJuOw0KPiA+ICsJCQkJ fQ0KPiA+ICsJCQkJcnRlX2JiZGV2X3BtZF9jYWxsYmFja19wcm9jZXNzKGRldiwNCj4gPiArDQo+ IAlSVEVfQkJERVZfRVZFTlRfREVRVUVVRSwgJmRlcV9pbnRyX2RldCk7DQo+ID4gKwkJCQlicmVh azsNCj4gPiArCQkJZGVmYXVsdDoNCj4gPiArCQkJCXJ0ZV9iYmRldl9wbWRfY2FsbGJhY2tfcHJv Y2VzcyhkZXYsDQo+IFJURV9CQkRFVl9FVkVOVF9FUlJPUiwgTlVMTCk7DQo+ID4gKwkJCQlicmVh azsNCj4gPiArCQkJfQ0KPiA+ICsJCX0gZWxzZSB7DQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2dfZGVi dWcoDQo+ID4gKwkJCQkJIkFDQzIwMCBWRiBJbnRlcnJ1cHQgcmVjZWl2ZWQsIEluZm8NCj4gUmlu ZyBkYXRhOiAweCV4XG4iLA0KPiA+ICsJCQkJCXJpbmdfZGF0YS0+dmFsKTsNCj4gPiArCQkJc3dp dGNoIChyaW5nX2RhdGEtPmludF9uYikgew0KPiA+ICsJCQljYXNlIEFDQzIwMF9WRl9JTlRfRE1B X0RMX0RFU0NfSVJROg0KPiA+ICsJCQljYXNlIEFDQzIwMF9WRl9JTlRfRE1BX1VMX0RFU0NfSVJR Og0KPiA+ICsJCQljYXNlIEFDQzIwMF9WRl9JTlRfRE1BX0ZGVF9ERVNDX0lSUToNCj4gPiArCQkJ Y2FzZSBBQ0MyMDBfVkZfSU5UX0RNQV9VTDVHX0RFU0NfSVJROg0KPiA+ICsJCQljYXNlIEFDQzIw MF9WRl9JTlRfRE1BX0RMNUdfREVTQ19JUlE6DQo+ID4gKwkJCQkvKiBWRnMgYXJlIG5vdCBhd2Fy ZSBvZiB0aGVpciB2Zl9pZCAtIGl0J3Mgc2V0IHRvDQo+IDAgICovDQo+ID4gKwkJCQlyaW5nX2Rh dGEtPnZmX2lkID0gMDsNCj4gPiArCQkJCWRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9DQo+IGdldF9x dWV1ZV9pZF9mcm9tX3JpbmdfaW5mbygNCj4gPiArCQkJCQkJZGV2LT5kYXRhLCAqcmluZ19kYXRh KTsNCj4gPiArCQkJCWlmIChkZXFfaW50cl9kZXQucXVldWVfaWQgPT0gVUlOVDE2X01BWCkgew0K PiA+ICsJCQkJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICsJCQkJCQkJIkNvdWxkbid0IGZpbmQg cXVldWU6DQo+IGFxX2lkOiAldSwgcWdfaWQ6ICV1IiwNCj4gPiArCQkJCQkJCXJpbmdfZGF0YS0+ YXFfaWQsDQo+ID4gKwkJCQkJCQlyaW5nX2RhdGEtPnFnX2lkKTsNCj4gPiArCQkJCQlyZXR1cm47 DQo+ID4gKwkJCQl9DQo+ID4gKwkJCQlydGVfYmJkZXZfcG1kX2NhbGxiYWNrX3Byb2Nlc3MoZGV2 LA0KPiA+ICsNCj4gCVJURV9CQkRFVl9FVkVOVF9ERVFVRVVFLCAmZGVxX2ludHJfZGV0KTsNCj4g PiArCQkJCWJyZWFrOw0KPiA+ICsJCQlkZWZhdWx0Og0KPiA+ICsJCQkJcnRlX2JiZGV2X3BtZF9j YWxsYmFja19wcm9jZXNzKGRldiwNCj4gUlRFX0JCREVWX0VWRU5UX0VSUk9SLCBOVUxMKTsNCj4g PiArCQkJCWJyZWFrOw0KPiA+ICsJCQl9DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQkvKiBJbml0 aWFsaXplIEluZm8gUmluZyBlbnRyeSBhbmQgbW92ZSBmb3J3YXJkICovDQo+ID4gKwkJcmluZ19k YXRhLT52YWwgPSAwOw0KPiA+ICsJCSsrYWNjMjAwX2Rldi0+aW5mb19yaW5nX2hlYWQ7DQo+ID4g KwkJcmluZ19kYXRhID0gYWNjMjAwX2Rldi0+aW5mb19yaW5nICsNCj4gPiArCQkJCShhY2MyMDBf ZGV2LT5pbmZvX3JpbmdfaGVhZCAmDQo+IEFDQ19JTkZPX1JJTkdfTUFTSyk7DQo+ID4gKwl9DQo+ ID4gK30NCj4gPiArDQo+ID4gKy8qIEFsbG9jYXRlIGFuZCBzZXR1cCBpbmZvcmluZyAqLw0KPiA+ ICtzdGF0aWMgaW50DQo+ID4gK2FsbG9jYXRlX2luZm9fcmluZyhzdHJ1Y3QgcnRlX2JiZGV2ICpk ZXYpIHsNCj4gPiArCXN0cnVjdCBhY2NfZGV2aWNlICpkID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZTsNCj4gPiArCWNvbnN0IHN0cnVjdCBhY2MyMDBfcmVnaXN0cnlfYWRkciAqcmVnX2FkZHI7DQo+ ID4gKwlydGVfaW92YV90IGluZm9fcmluZ19pb3ZhOw0KPiA+ICsJdWludDMyX3QgcGh5c19sb3cs IHBoeXNfaGlnaDsNCj4gPiArDQo+ID4gKwlpZiAoZC0+aW5mb19yaW5nICE9IE5VTEwpDQo+ID4g KwkJcmV0dXJuIDA7IC8qIEFscmVhZHkgY29uZmlndXJlZCAqLw0KPiA+ICsNCj4gPiArCS8qIENo b29zZSBjb3JyZWN0IHJlZ2lzdHJ5IGFkZHJlc3NlcyBmb3IgdGhlIGRldmljZSB0eXBlICovDQo+ ID4gKwlpZiAoZC0+cGZfZGV2aWNlKQ0KPiA+ICsJCXJlZ19hZGRyID0gJnBmX3JlZ19hZGRyOw0K PiA+ICsJZWxzZQ0KPiA+ICsJCXJlZ19hZGRyID0gJnZmX3JlZ19hZGRyOw0KPiA+ICsJLyogQWxs b2NhdGUgSW5mb1JpbmcgKi8NCj4gPiArCWQtPmluZm9fcmluZyA9IHJ0ZV96bWFsbG9jX3NvY2tl dCgiSW5mbyBSaW5nIiwNCj4gQUNDX0lORk9fUklOR19OVU1fRU5UUklFUyAqDQo+ID4gKwkJCXNp emVvZigqZC0+aW5mb19yaW5nKSwgUlRFX0NBQ0hFX0xJTkVfU0laRSwgZGV2LQ0KPiA+ZGF0YS0+ c29ja2V0X2lkKTsNCj4gPiArCWlmIChkLT5pbmZvX3JpbmcgPT0gTlVMTCkgew0KPiA+ICsJCXJ0 ZV9iYmRldl9sb2coRVJSLA0KPiA+ICsJCQkJIkZhaWxlZCB0byBhbGxvY2F0ZSBJbmZvIFJpbmcg Zm9yICVzOiV1IiwNCj4gPiArCQkJCWRldi0+ZGV2aWNlLT5kcml2ZXItPm5hbWUsDQo+ID4gKwkJ CQlkZXYtPmRhdGEtPmRldl9pZCk7DQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ID4gKwl9DQo+ ID4gKwlpbmZvX3JpbmdfaW92YSA9IHJ0ZV9tYWxsb2NfdmlydDJpb3ZhKGQtPmluZm9fcmluZyk7 DQo+ID4gKw0KPiA+ICsJLyogU2V0dXAgSW5mbyBSaW5nICovDQo+ID4gKwlwaHlzX2hpZ2ggPSAo dWludDMyX3QpKGluZm9fcmluZ19pb3ZhID4+IDMyKTsNCj4gPiArCXBoeXNfbG93ICA9ICh1aW50 MzJfdCkoaW5mb19yaW5nX2lvdmEpOw0KPiA+ICsJYWNjX3JlZ193cml0ZShkLCByZWdfYWRkci0+ aW5mb19yaW5nX2hpLCBwaHlzX2hpZ2gpOw0KPiA+ICsJYWNjX3JlZ193cml0ZShkLCByZWdfYWRk ci0+aW5mb19yaW5nX2xvLCBwaHlzX2xvdyk7DQo+ID4gKwlhY2NfcmVnX3dyaXRlKGQsIHJlZ19h ZGRyLT5pbmZvX3JpbmdfZW4sIEFDQzIwMF9SRUdfSVJRX0VOX0FMTCk7DQo+ID4gKwlkLT5pbmZv X3JpbmdfaGVhZCA9IChhY2NfcmVnX3JlYWQoZCwgcmVnX2FkZHItPmluZm9fcmluZ19wdHIpICYN Cj4gPiArCQkJMHhGRkYpIC8gc2l6ZW9mKHVuaW9uIGFjY19pbmZvX3JpbmdfZGF0YSk7DQo+ID4g KwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArDQo+ID4gICAvKiBBbGxvY2F0ZSA2NE1C IG1lbW9yeSB1c2VkIGZvciBhbGwgc29mdHdhcmUgcmluZ3MgKi8NCj4gPiAgIHN0YXRpYyBpbnQN Cj4gPiAgIGFjYzIwMF9zZXR1cF9xdWV1ZXMoc3RydWN0IHJ0ZV9iYmRldiAqZGV2LCB1aW50MTZf dCBudW1fcXVldWVzLCBpbnQNCj4gPiBzb2NrZXRfaWQpIEBAIC0zMjgsNiArNDc0LDE0IEBAIGFj YzIwMF9zZXR1cF9xdWV1ZXMoc3RydWN0IHJ0ZV9iYmRldg0KPiAqZGV2LCB1aW50MTZfdCBudW1f cXVldWVzLCBpbnQgc29ja2V0X2lkKQ0KPiA+ICAgCWFjY19yZWdfd3JpdGUoZCwgcmVnX2FkZHIt PnRhaWxfcHRyc19mZnRfaGksIHBoeXNfaGlnaCk7DQo+ID4gICAJYWNjX3JlZ193cml0ZShkLCBy ZWdfYWRkci0+dGFpbF9wdHJzX2ZmdF9sbywgcGh5c19sb3cpOw0KPiA+DQo+ID4gKwlyZXQgPSBh bGxvY2F0ZV9pbmZvX3JpbmcoZGV2KTsNCj4gPiArCWlmIChyZXQgPCAwKSB7DQo+ID4gKwkJcnRl X2JiZGV2X2xvZyhFUlIsICJGYWlsZWQgdG8gYWxsb2NhdGUgaW5mb19yaW5nIGZvciAlczoldSIs DQo+ID4gKwkJCQlkZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQkJZGV2LT5kYXRh LT5kZXZfaWQpOw0KPiA+ICsJCS8qIENvbnRpbnVlICovDQo+ID4gKwl9DQo+ID4gKw0KPiA+ICAg CWlmIChkLT5oYXJxX2xheW91dCA9PSBOVUxMKQ0KPiA+ICAgCQlkLT5oYXJxX2xheW91dCA9IHJ0 ZV96bWFsbG9jX3NvY2tldCgiSEFSUSBMYXlvdXQiLA0KPiA+ICAgCQkJCUFDQ19IQVJRX0xBWU9V VCAqIHNpemVvZigqZC0NCj4gPmhhcnFfbGF5b3V0KSwgQEAgLTM1OCwxNyArNTEyLDEyMA0KPiA+ IEBAIGFjYzIwMF9zZXR1cF9xdWV1ZXMoc3RydWN0IHJ0ZV9iYmRldiAqZGV2LCB1aW50MTZfdCBu dW1fcXVldWVzLCBpbnQNCj4gc29ja2V0X2lkKQ0KPiA+ICAgCXJldHVybiByZXQ7DQo+ID4gICB9 DQo+ID4NCj4gPiArc3RhdGljIGludA0KPiA+ICthY2MyMDBfaW50cl9lbmFibGUoc3RydWN0IHJ0 ZV9iYmRldiAqZGV2KSB7DQo+ID4gKwlpbnQgcmV0Ow0KPiA+ICsJc3RydWN0IGFjY19kZXZpY2Ug KmQgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJLyoNCj4gPiArCSAqIE1TSS9NU0kt WCBhcmUgc3VwcG9ydGVkDQo+ID4gKwkgKiBPcHRpb24gY29udHJvbGxlZCBieSB2ZmlvLWludHIg dGhyb3VnaCBFQUwgcGFyYW1ldGVyDQo+ID4gKwkgKi8NCj4gPiArCWlmIChydGVfaW50cl90eXBl X2dldChkZXYtPmludHJfaGFuZGxlKSA9PQ0KPiBSVEVfSU5UUl9IQU5ETEVfVkZJT19NU0kpDQo+ ID4gK3sNCj4gPiArDQo+ID4gKwkJcmV0ID0gYWxsb2NhdGVfaW5mb19yaW5nKGRldik7DQo+ID4g KwkJaWYgKHJldCA8IDApIHsNCj4gPiArCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4gKwkJCQkJ IkNvdWxkbid0IGFsbG9jYXRlIGluZm8gcmluZyBmb3IgZGV2aWNlOg0KPiAlcyIsDQo+ID4gKwkJ CQkJZGV2LT5kYXRhLT5uYW1lKTsNCj4gPiArCQkJcmV0dXJuIHJldDsNCj4gPiArCQl9DQo+ID4g KwkJcmV0ID0gcnRlX2ludHJfZW5hYmxlKGRldi0+aW50cl9oYW5kbGUpOw0KPiA+ICsJCWlmIChy ZXQgPCAwKSB7DQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICsJCQkJCSJDb3VsZG4n dCBlbmFibGUgaW50ZXJydXB0cyBmb3IgZGV2aWNlOg0KPiAlcyIsDQo+ID4gKwkJCQkJZGV2LT5k YXRhLT5uYW1lKTsNCj4gPiArCQkJcnRlX2ZyZWUoZC0+aW5mb19yaW5nKTsNCj4gPiArCQkJcmV0 dXJuIHJldDsNCj4gPiArCQl9DQo+ID4gKwkJcmV0ID0gcnRlX2ludHJfY2FsbGJhY2tfcmVnaXN0 ZXIoZGV2LT5pbnRyX2hhbmRsZSwNCj4gPiArCQkJCWFjYzIwMF9kZXZfaW50ZXJydXB0X2hhbmRs ZXIsIGRldik7DQo+ID4gKwkJaWYgKHJldCA8IDApIHsNCj4gPiArCQkJcnRlX2JiZGV2X2xvZyhF UlIsDQo+ID4gKwkJCQkJIkNvdWxkbid0IHJlZ2lzdGVyIGludGVycnVwdCBjYWxsYmFjaw0KPiBm b3IgZGV2aWNlOiAlcyIsDQo+ID4gKwkJCQkJZGV2LT5kYXRhLT5uYW1lKTsNCj4gPiArCQkJcnRl X2ZyZWUoZC0+aW5mb19yaW5nKTsNCj4gPiArCQkJcmV0dXJuIHJldDsNCj4gPiArCQl9DQo+ID4g Kw0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICsJfSBlbHNlIGlmIChydGVfaW50cl90eXBlX2dldChk ZXYtPmludHJfaGFuZGxlKSA9PQ0KPiBSVEVfSU5UUl9IQU5ETEVfVkZJT19NU0lYKSB7DQo+ID4g KwkJaW50IGksIG1heF9xdWV1ZXM7DQo+ID4gKwkJc3RydWN0IGFjY19kZXZpY2UgKmFjYzIwMF9k ZXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsNCj4gPiArCQlyZXQgPSBhbGxvY2F0 ZV9pbmZvX3JpbmcoZGV2KTsNCj4gPiArCQlpZiAocmV0IDwgMCkgew0KPiA+ICsJCQlydGVfYmJk ZXZfbG9nKEVSUiwNCj4gPiArCQkJCQkiQ291bGRuJ3QgYWxsb2NhdGUgaW5mbyByaW5nIGZvciBk ZXZpY2U6DQo+ICVzIiwNCj4gPiArCQkJCQlkZXYtPmRhdGEtPm5hbWUpOw0KPiA+ICsJCQlyZXR1 cm4gcmV0Ow0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJaWYgKGFjYzIwMF9kZXYtPnBmX2Rldmlj ZSkNCj4gPiArCQkJbWF4X3F1ZXVlcyA9IEFDQzIwMF9NQVhfUEZfTVNJWDsNCj4gPiArCQllbHNl DQo+ID4gKwkJCW1heF9xdWV1ZXMgPSBBQ0MyMDBfTUFYX1ZGX01TSVg7DQo+ID4gKw0KPiA+ICsJ CWlmIChydGVfaW50cl9lZmRfZW5hYmxlKGRldi0+aW50cl9oYW5kbGUsIG1heF9xdWV1ZXMpKSB7 DQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2coRVJSLCAiRmFpbGVkIHRvIGNyZWF0ZSBmZHMgZm9yICV1 DQo+IHF1ZXVlcyIsDQo+ID4gKwkJCQkJZGV2LT5kYXRhLT5udW1fcXVldWVzKTsNCj4gPiArCQkJ cmV0dXJuIC0xOw0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJZm9yIChpID0gMDsgaSA8IG1heF9x dWV1ZXM7ICsraSkgew0KPiA+ICsJCQlpZiAocnRlX2ludHJfZWZkc19pbmRleF9zZXQoZGV2LT5p bnRyX2hhbmRsZSwgaSwNCj4gPiArCQkJCQlydGVfaW50cl9mZF9nZXQoZGV2LT5pbnRyX2hhbmRs ZSkpKQ0KPiA+ICsJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiAr CQlpZiAocnRlX2ludHJfdmVjX2xpc3RfYWxsb2MoZGV2LT5pbnRyX2hhbmRsZSwgImludHJfdmVj IiwNCj4gPiArCQkJCWRldi0+ZGF0YS0+bnVtX3F1ZXVlcykpIHsNCj4gPiArCQkJcnRlX2JiZGV2 X2xvZyhFUlIsICJGYWlsZWQgdG8gYWxsb2NhdGUgJXUgdmVjdG9ycyIsDQo+ID4gKwkJCQkJZGV2 LT5kYXRhLT5udW1fcXVldWVzKTsNCj4gPiArCQkJcmV0dXJuIC1FTk9NRU07DQo+ID4gKwkJfQ0K PiA+ICsNCj4gPiArCQlyZXQgPSBydGVfaW50cl9lbmFibGUoZGV2LT5pbnRyX2hhbmRsZSk7DQo+ ID4gKw0KPiA+ICsJCWlmIChyZXQgPCAwKSB7DQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2coRVJSLA0K PiA+ICsJCQkJCSJDb3VsZG4ndCBlbmFibGUgaW50ZXJydXB0cyBmb3IgZGV2aWNlOg0KPiAlcyIs DQo+ID4gKwkJCQkJZGV2LT5kYXRhLT5uYW1lKTsNCj4gPiArCQkJcnRlX2ZyZWUoZC0+aW5mb19y aW5nKTsNCj4gPiArCQkJcmV0dXJuIHJldDsNCj4gPiArCQl9DQo+ID4gKwkJcmV0ID0gcnRlX2lu dHJfY2FsbGJhY2tfcmVnaXN0ZXIoZGV2LT5pbnRyX2hhbmRsZSwNCj4gPiArCQkJCWFjYzIwMF9k ZXZfaW50ZXJydXB0X2hhbmRsZXIsIGRldik7DQo+ID4gKwkJaWYgKHJldCA8IDApIHsNCj4gPiAr CQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4gKwkJCQkJIkNvdWxkbid0IHJlZ2lzdGVyIGludGVy cnVwdCBjYWxsYmFjaw0KPiBmb3IgZGV2aWNlOiAlcyIsDQo+ID4gKwkJCQkJZGV2LT5kYXRhLT5u YW1lKTsNCj4gPiArCQkJcnRlX2ZyZWUoZC0+aW5mb19yaW5nKTsNCj4gPiArCQkJcmV0dXJuIHJl dDsNCj4gPiArCQl9DQo+ID4gKw0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICsJfQ0KPiA+ICsNCj4g PiArCXJ0ZV9iYmRldl9sb2coRVJSLCAiQUNDMjAwICglcykgc3VwcG9ydHMgb25seSBWRklPIE1T SS9NU0ktWA0KPiBpbnRlcnJ1cHRzXG4iLA0KPiA+ICsJCQlkZXYtPmRhdGEtPm5hbWUpOw0KPiA+ ICsJcmV0dXJuIC1FTk9UU1VQOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICAgLyogRnJlZSBtZW1vcnkg dXNlZCBmb3Igc29mdHdhcmUgcmluZ3MgKi8NCj4gPiAgIHN0YXRpYyBpbnQNCj4gPiAgIGFjYzIw MF9kZXZfY2xvc2Uoc3RydWN0IHJ0ZV9iYmRldiAqZGV2KQ0KPiA+ICAgew0KPiA+ICAgCXN0cnVj dCBhY2NfZGV2aWNlICpkID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArCWFjYzIwMF9j aGVja19pcihkKTsNCj4gPiAgIAlpZiAoZC0+c3dfcmluZ3NfYmFzZSAhPSBOVUxMKSB7DQo+ID4g ICAJCXJ0ZV9mcmVlKGQtPnRhaWxfcHRycyk7DQo+ID4gKwkJcnRlX2ZyZWUoZC0+aW5mb19yaW5n KTsNCj4gPiAgIAkJcnRlX2ZyZWUoZC0+c3dfcmluZ3NfYmFzZSk7DQo+ID4gICAJCXJ0ZV9mcmVl KGQtPmhhcnFfbGF5b3V0KTsNCj4gPiAgIAkJZC0+c3dfcmluZ3NfYmFzZSA9IE5VTEw7DQo+ID4g ICAJCWQtPnRhaWxfcHRycyA9IE5VTEw7DQo+ID4gKwkJZC0+aW5mb19yaW5nID0gTlVMTDsNCj4g PiAgIAkJZC0+aGFycV9sYXlvdXQgPSBOVUxMOw0KPiANCj4gTm90IGEgYmlnIGRlYWwsIGJ1dCBy dGVfZnJlZSgpIGFuZCBOVUxMIGFzc2lnbm1lbnQgYXJlIG5vdCBkb25lIGluIHRoZSBzYW1lDQo+ IG9yZGVyLg0KDQpUaGFua3MsIHVwZGF0ZWQgaW4gdjcNCg0KPiANCj4gPiAgIAl9DQo+ID4gICAJ LyogRW5zdXJlIGFsbCBpbiBmbGlnaHQgSFcgdHJhbnNhY3Rpb25zIGFyZSBjb21wbGV0ZWQgKi8g QEAgLTY3MCw2DQo+ID4gKzkyNyw3IEBAIGFjYzIwMF9kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9i YmRldiAqZGV2LA0KPiA+DQo+IAlSVEVfQkJERVZfVFVSQk9fQ09OVElOVUVfQ1JDX01BVENIIHwN Cj4gPiAgIAkJCQkJUlRFX0JCREVWX1RVUkJPX1NPRlRfT1VUUFVUIHwNCj4gPg0KPiAJUlRFX0JC REVWX1RVUkJPX0VBUkxZX1RFUk1JTkFUSU9OIHwNCj4gPiArDQo+IAlSVEVfQkJERVZfVFVSQk9f REVDX0lOVEVSUlVQVFMgfA0KPiA+DQo+IAlSVEVfQkJERVZfVFVSQk9fTkVHX0xMUl8xX0JJVF9J TiB8DQo+ID4NCj4gCVJURV9CQkRFVl9UVVJCT19ORUdfTExSXzFfQklUX1NPRlRfT1VUIHwNCj4g PiAgIAkJCQkJUlRFX0JCREVWX1RVUkJPX01BUF9ERUMgfA0KPiA+IEBAIC02OTEsNiArOTQ5LDcg QEAgYWNjMjAwX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsDQo+ID4NCj4gCVJU RV9CQkRFVl9UVVJCT19DUkNfMjRCX0FUVEFDSCB8DQo+ID4NCj4gCVJURV9CQkRFVl9UVVJCT19S Vl9JTkRFWF9CWVBBU1MgfA0KPiA+ICAgCQkJCQlSVEVfQkJERVZfVFVSQk9fUkFURV9NQVRDSCB8 DQo+ID4gKw0KPiAJUlRFX0JCREVWX1RVUkJPX0VOQ19JTlRFUlJVUFRTIHwNCj4gPg0KPiAJUlRF X0JCREVWX1RVUkJPX0VOQ19TQ0FUVEVSX0dBVEhFUiwNCj4gPiAgIAkJCQkubnVtX2J1ZmZlcnNf c3JjID0NCj4gPg0KPiAJUlRFX0JCREVWX1RVUkJPX01BWF9DT0RFX0JMT0NLUywgQEAgLTcwNCw3 ICs5NjMsOCBAQA0KPiA+IGFjYzIwMF9kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9iYmRldiAqZGV2 LA0KPiA+ICAgCQkJCS5jYXBhYmlsaXR5X2ZsYWdzID0NCj4gPiAgIAkJCQkJUlRFX0JCREVWX0xE UENfUkFURV9NQVRDSCB8DQo+ID4gICAJCQkJCVJURV9CQkRFVl9MRFBDX0NSQ18yNEJfQVRUQUNI DQo+IHwNCj4gPiAtDQo+IAlSVEVfQkJERVZfTERQQ19JTlRFUkxFQVZFUl9CWVBBU1MsDQo+ID4g Kw0KPiAJUlRFX0JCREVWX0xEUENfSU5URVJMRUFWRVJfQllQQVNTIHwNCj4gPiArCQkJCQlSVEVf QkJERVZfTERQQ19FTkNfSU5URVJSVVBUUywNCj4gPiAgIAkJCQkubnVtX2J1ZmZlcnNfc3JjID0N Cj4gPg0KPiAJUlRFX0JCREVWX0xEUENfTUFYX0NPREVfQkxPQ0tTLA0KPiA+ICAgCQkJCS5udW1f YnVmZmVyc19kc3QgPQ0KPiA+IEBAIC03MjUsNyArOTg1LDggQEAgYWNjMjAwX2Rldl9pbmZvX2dl dChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsDQo+ID4gICAJCQkJUlRFX0JCREVWX0xEUENfREVJTlRF UkxFQVZFUl9CWVBBU1MgfA0KPiA+ICAgCQkJCVJURV9CQkRFVl9MRFBDX0RFQ19TQ0FUVEVSX0dB VEhFUiB8DQo+ID4gICAJCQkJUlRFX0JCREVWX0xEUENfSEFSUV82QklUX0NPTVBSRVNTSU9ODQo+ IHwNCj4gPiAtCQkJCVJURV9CQkRFVl9MRFBDX0xMUl9DT01QUkVTU0lPTiwNCj4gPiArCQkJCVJU RV9CQkRFVl9MRFBDX0xMUl9DT01QUkVTU0lPTiB8DQo+ID4gKwkJCQlSVEVfQkJERVZfTERQQ19E RUNfSU5URVJSVVBUUywNCj4gPiAgIAkJCS5sbHJfc2l6ZSA9IDgsDQo+ID4gICAJCQkubGxyX2Rl Y2ltYWxzID0gMSwNCj4gPiAgIAkJCS5udW1fYnVmZmVyc19zcmMgPQ0KPiA+IEBAIC03OTMsMTUg KzEwNTQsNDYgQEAgYWNjMjAwX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsDQo+ ID4gICAJZGV2X2luZm8tPm1pbl9hbGlnbm1lbnQgPSAxOw0KPiA+ICAgCWRldl9pbmZvLT5jYXBh YmlsaXRpZXMgPSBiYmRldl9jYXBhYmlsaXRpZXM7DQo+ID4gICAJZGV2X2luZm8tPmhhcnFfYnVm ZmVyX3NpemUgPSAwOw0KPiA+ICsNCj4gPiArCWFjYzIwMF9jaGVja19pcihkKTsNCj4gPiArfQ0K PiA+ICsNCj4gPiArc3RhdGljIGludA0KPiA+ICthY2MyMDBfcXVldWVfaW50cl9lbmFibGUoc3Ry dWN0IHJ0ZV9iYmRldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCkgew0KPiA+ICsJc3RydWN0IGFj Y19xdWV1ZSAqcSA9IGRldi0+ZGF0YS0+cXVldWVzW3F1ZXVlX2lkXS5xdWV1ZV9wcml2YXRlOw0K PiA+ICsNCj4gPiArCWlmIChydGVfaW50cl90eXBlX2dldChkZXYtPmludHJfaGFuZGxlKSAhPQ0K PiBSVEVfSU5UUl9IQU5ETEVfVkZJT19NU0kgJiYNCj4gPiArCQkJcnRlX2ludHJfdHlwZV9nZXQo ZGV2LT5pbnRyX2hhbmRsZSkgIT0NCj4gUlRFX0lOVFJfSEFORExFX1ZGSU9fTVNJWCkNCj4gPiAr CQlyZXR1cm4gLUVOT1RTVVA7DQo+ID4gKw0KPiA+ICsJcS0+aXJxX2VuYWJsZSA9IDE7DQo+ID4g KwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludA0KPiA+ICthY2MyMDBf cXVldWVfaW50cl9kaXNhYmxlKHN0cnVjdCBydGVfYmJkZXYgKmRldiwgdWludDE2X3QgcXVldWVf aWQpIHsNCj4gPiArCXN0cnVjdCBhY2NfcXVldWUgKnEgPSBkZXYtPmRhdGEtPnF1ZXVlc1txdWV1 ZV9pZF0ucXVldWVfcHJpdmF0ZTsNCj4gPiArDQo+ID4gKwlpZiAocnRlX2ludHJfdHlwZV9nZXQo ZGV2LT5pbnRyX2hhbmRsZSkgIT0NCj4gUlRFX0lOVFJfSEFORExFX1ZGSU9fTVNJICYmDQo+ID4g KwkJCXJ0ZV9pbnRyX3R5cGVfZ2V0KGRldi0+aW50cl9oYW5kbGUpICE9DQo+IFJURV9JTlRSX0hB TkRMRV9WRklPX01TSVgpDQo+ID4gKwkJcmV0dXJuIC1FTk9UU1VQOw0KPiA+ICsNCj4gPiArCXEt PmlycV9lbmFibGUgPSAwOw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gICB9DQo+ID4NCj4gPiAgIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2JiZGV2X29wcyBhY2MyMDBfYmJkZXZfb3BzID0gew0KPiA+ ICAgCS5zZXR1cF9xdWV1ZXMgPSBhY2MyMDBfc2V0dXBfcXVldWVzLA0KPiA+ICsJLmludHJfZW5h YmxlID0gYWNjMjAwX2ludHJfZW5hYmxlLA0KPiA+ICAgCS5jbG9zZSA9IGFjYzIwMF9kZXZfY2xv c2UsDQo+ID4gICAJLmluZm9fZ2V0ID0gYWNjMjAwX2Rldl9pbmZvX2dldCwNCj4gPiAgIAkucXVl dWVfc2V0dXAgPSBhY2MyMDBfcXVldWVfc2V0dXAsDQo+ID4gICAJLnF1ZXVlX3JlbGVhc2UgPSBh Y2MyMDBfcXVldWVfcmVsZWFzZSwNCj4gPiAgIAkucXVldWVfc3RvcCA9IGFjY19xdWV1ZV9zdG9w LA0KPiA+ICsJLnF1ZXVlX2ludHJfZW5hYmxlID0gYWNjMjAwX3F1ZXVlX2ludHJfZW5hYmxlLA0K PiA+ICsJLnF1ZXVlX2ludHJfZGlzYWJsZSA9IGFjYzIwMF9xdWV1ZV9pbnRyX2Rpc2FibGUNCj4g PiAgIH07DQo+ID4NCj4gPiAgIC8qIEFDQzIwMCBQQ0kgUEYgYWRkcmVzcyBtYXAgKi8NCj4gPiBA QCAtMjU3NCw2ICsyODY2LDcgQEAgZGVxdWV1ZV9kZWNfb25lX29wX2NiKHN0cnVjdA0KPiBydGVf YmJkZXZfcXVldWVfZGF0YSAqcV9kYXRhLA0KPiA+ICAgCWlmIChvcC0+c3RhdHVzICE9IDApIHsN Cj4gPiAgIAkJLyogVGhlc2UgZXJyb3JzIGFyZSBub3QgZXhwZWN0ZWQgKi8NCj4gPiAgIAkJcV9k YXRhLT5xdWV1ZV9zdGF0cy5kZXF1ZXVlX2Vycl9jb3VudCsrOw0KPiA+ICsJCWFjYzIwMF9jaGVj a19pcihxLT5kKTsNCj4gPiAgIAl9DQo+ID4NCj4gPiAgIAkvKiBDUkMgaW52YWxpZCBpZiBlcnJv ciBleGlzdHMgKi8NCj4gPiBAQCAtMjY0Myw2ICsyOTM2LDkgQEAgZGVxdWV1ZV9sZHBjX2RlY19v bmVfb3BfY2Ioc3RydWN0DQo+ID4gcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSwNCj4gPg0K PiA+ICAgCW9wLT5sZHBjX2RlYy5pdGVyX2NvdW50ID0gKHVpbnQ4X3QpIHJzcC5pdGVyX2NudDsN Cj4gPg0KPiA+ICsJaWYgKG9wLT5zdGF0dXMgJiAoMSA8PCBSVEVfQkJERVZfRFJWX0VSUk9SKSkN Cj4gPiArCQlhY2MyMDBfY2hlY2tfaXIocS0+ZCk7DQo+ID4gKw0KPiA+ICAgCS8qIENoZWNrIGlm IHRoaXMgaXMgdGhlIGxhc3QgZGVzYyBpbiBiYXRjaCAoQXRvbWljIFF1ZXVlKSAqLw0KPiA+ICAg CWlmIChkZXNjLT5yZXEubGFzdF9kZXNjX2luX2JhdGNoKSB7DQo+ID4gICAJCSgqYXFfZGVxdWV1 ZWQpKys7DQo+ID4gQEAgLTMwOTgsNiArMzM5NCw5IEBAIGRlcXVldWVfZmZ0X29uZV9vcChzdHJ1 Y3QNCj4gcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSwNCj4gPiAgIAlpZiAob3AtPnN0YXR1 cyAhPSAwKQ0KPiA+ICAgCQlxX2RhdGEtPnF1ZXVlX3N0YXRzLmRlcXVldWVfZXJyX2NvdW50Kys7 DQo+ID4NCj4gPiArCWlmIChvcC0+c3RhdHVzICYgKDEgPDwgUlRFX0JCREVWX0RSVl9FUlJPUikp DQo+ID4gKwkJYWNjMjAwX2NoZWNrX2lyKHEtPmQpOw0KPiA+ICsNCj4gPiAgIAkvKiBDaGVjayBp ZiB0aGlzIGlzIHRoZSBsYXN0IGRlc2MgaW4gYmF0Y2ggKEF0b21pYyBRdWV1ZSkgKi8NCj4gPiAg IAlpZiAoZGVzYy0+cmVxLmxhc3RfZGVzY19pbl9iYXRjaCkgew0KPiA+ICAgCQkoKmFxX2RlcXVl dWVkKSsrOw0KDQo=