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 925CD426B1; Tue, 3 Oct 2023 20:54:33 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1D62840297; Tue, 3 Oct 2023 20:54:33 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) by mails.dpdk.org (Postfix) with ESMTP id 2B8AD40262 for ; Tue, 3 Oct 2023 20:54:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696359272; x=1727895272; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=kMnLSMCBzQY/BXdS1sfyqb/LG8RCEbFil8h5P3Q45Mo=; b=NY1VFh4aoL/c8qGvO+v9jsJBKHQNhHhWWznztc9ghorgeSvrAeXxOofM 8Ch7Ciy9at+wnRmYlYl6biSJZNp31YR4YxrxbWLBOzOLyYvQ2cdY/L8qv dQ15Zsf0QyjcvWWS5iHFTCj/hSg6uXYvNqi3yM30M/vNfLTnZJUnVwT6k MawjyrpRfwYMAjnjHf4sRybF5EK2IK1lKB7V+Q3hBLG6UMGZqzPJ1Go/v p7BX6Co9Qgzs4qI2zXFDC5DFyVVcg+AYK4CKOPH/f9bLvm9HbBNzT2LsL v7qKwF6cg6RWd+lrfegHy4kuMTsjb5Cd7QOks9umHS8b15Dkq4icXE7Lz Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10852"; a="1548618" X-IronPort-AV: E=Sophos;i="6.03,198,1694761200"; d="scan'208";a="1548618" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Oct 2023 11:54:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10852"; a="816807867" X-IronPort-AV: E=Sophos;i="6.03,198,1694761200"; d="scan'208";a="816807867" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga008.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 03 Oct 2023 11:54:29 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 3 Oct 2023 11:54:29 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 3 Oct 2023 11:54:28 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Tue, 3 Oct 2023 11:54:28 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Tue, 3 Oct 2023 11:54:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Oorc1CM1oyyPa/QaXIEk0rkKZT45uVQCBBo0+WN1TuhkAlcEWjFDqWHgW9agfQMCtdhMnrsSlMG5N7WEtzkfnrRFpMsYqn4ihtQJiiTUdMwLiXDwgiOe5bnT0XgQe+ZM8XGtkFHf8np2o3cBYPvApXQeS3TOUdOI8UCEAZWzgSgXnMGyk85Q5dA0v699nMBI1RNAtS6pAdXNDhk4OILAXzifqkutKuHzBE3pFyDmM3h7A8WNh2hRn/u2VIQySZfkEdCHfs7rMGt+y2dLUWl0YWWEbyGrROQOsbHF9lOOQLm9ofqjE7s9t+x5h20rcS1x4HF3AdibkGS3at5rirGEUA== 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=kMnLSMCBzQY/BXdS1sfyqb/LG8RCEbFil8h5P3Q45Mo=; b=ZQ/w55rchME3UeACiLNy075lJhshCG5zj6xoO/UK1KMrNbIfMZTIxhDtrfox08+EayN9pchIcVwYAi/0Fu5TboDOuirFAkYFY241HiGcIg4V8k4rEWRxVG9C0blB+hqFAhZum3ztTEMrqNNZwXWShB65sbJb4hDtFDg2CkE7FixZi4SSYu6iyq5EMBvw6Tu0T84ZBHyLQLrkNI5Au5OzMLDTuD7pGhU7xQLSz+ld0+YvrN0dXd3COudPPkMifQeH+Yley9B1QAiKq6RYHNYSddR++/Y5wDNZ5eVpjyILAKnjkLw+LTyAxR/lgHhQ+OBuBN0kq1XWJmp62DuGDWLiFQ== 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 DM6PR11MB4457.namprd11.prod.outlook.com (2603:10b6:5:203::22) by CH0PR11MB8165.namprd11.prod.outlook.com (2603:10b6:610:18e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.24; Tue, 3 Oct 2023 18:54:26 +0000 Received: from DM6PR11MB4457.namprd11.prod.outlook.com ([fe80::3207:2893:cd81:30a7]) by DM6PR11MB4457.namprd11.prod.outlook.com ([fe80::3207:2893:cd81:30a7%3]) with mapi id 15.20.6838.030; Tue, 3 Oct 2023 18:54:26 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" CC: "hemant.agrawal@nxp.com" , "david.marchand@redhat.com" , "Vargas, Hernan" Subject: RE: [PATCH v3 06/12] baseband/acc: refactor to allow unified driver extension Thread-Topic: [PATCH v3 06/12] baseband/acc: refactor to allow unified driver extension Thread-Index: AQHZ8vNUPpMOsHAQBUyvV0DDV8YSKbA4ETCAgABduAA= Date: Tue, 3 Oct 2023 18:54:25 +0000 Message-ID: References: <20230929163516.3636499-1-nicolas.chautru@intel.com> <20230929163516.3636499-7-nicolas.chautru@intel.com> In-Reply-To: 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB4457:EE_|CH0PR11MB8165:EE_ x-ms-office365-filtering-correlation-id: 80342a0a-ac18-4e37-d33f-08dbc4422a27 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tjHTmq7xW7n/wgyFbp0F5UqTeYMlp6nF1hnd/87SVbC4HCIEGm7y9nq8bC4m+8zsLoxMTxK8SL+csRYZQ1+wyh3zC2KnMGlKPw5VFqg3KrAD6Fy6j57rknuIUTqa5ZDf3/vIQLN2HoiplxzylAx4YqyR/0d/s+9wE2B6RN7t9WYD4McIQm/df+FHYluzZCgFb3HdBxJNHbnz89rZ1vmOG/v2Dj5I1qBgHOxdIzqoatVF4++KeLdNZjwZv5IlnBTVKp7YQcz21hNgoGn70y3NZYMa/5lUMh6um6SZrxuPlUzj4MY9vJBwfDBHgYLHUwq5w5RPvEo7EwUjFE/Ql8OyM//TzJW2nUkCl+nGiMdKZqMFQFr1eGIgN07Qojnrv0UmFMlJja+Dig87lU6D5NsYIiybI0KTU9JNOnOdEvSZjP4x/+2G8B0+We9NmYk0Md+mAiO+LAkNoIUVKMw324mSGxns/QgiV1+9069tuLeHw341t6m/Q1FoUT+v+0ps5ZpeqEBHN7dlNwK9VZGrW8ohqpgSQ1PQ2Sh4KgffRIUsK3/jURe91cxiOYy4fCYPn7E8N3GSJx+qQ2v+8LnXaW8oso5tFX35ZLts46KDD6X07c53eCCUiYbzDjWaBaigd9Km x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4457.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376002)(39860400002)(346002)(396003)(136003)(366004)(230922051799003)(451199024)(64100799003)(186009)(1800799009)(2906002)(9686003)(53546011)(107886003)(33656002)(38070700005)(38100700002)(66556008)(86362001)(66946007)(76116006)(7696005)(66446008)(54906003)(83380400001)(82960400001)(26005)(122000001)(6506007)(4326008)(8676002)(316002)(66476007)(110136005)(5660300002)(64756008)(41300700001)(30864003)(55016003)(8936002)(52536014)(478600001)(71200400001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a2dqUXVWY2diOXM1aWhYMmY0RTNGS3NyK0dLTmdMTVZyN05zS2ZGOUp6cURr?= =?utf-8?B?QnZnT0JwV09MWHZZbElvVVljdEhEY083UERJdEsvNnYzY1QrSXA0ampMZkFS?= =?utf-8?B?U05DUFJYd1JzUHliY2lOaWJPTVlqVUhIUnEwN2EvVVpUamlEUCtjdGFST0RZ?= =?utf-8?B?V0NGU0VocEpocUZBOXZLaW9TMDRTMG5WcHpTQUFDUGZWWWQ5L3p5cll6dXNF?= =?utf-8?B?SmNKWGw0R3RveFlmN2dCbWdlZy9KRy92M2k4RGd3UVJiY3dtVk9pcklQb09h?= =?utf-8?B?QURqajFEUld6QWxVcWxibFV6U1Z4dWd3WXVISlBwNDJxZk15R0NIQm9WSDFE?= =?utf-8?B?Y1BZa0U0NnVjbE8rdW1CN0szMk9EU29sV2EwdmlVU0Q4eDNhcHI2S3hyaklo?= =?utf-8?B?N2hlV3VEQzlqK0NuVkliOGViZ25NOTcyY1lCWjB1bEkyclRSdVV6eWNFdzRZ?= =?utf-8?B?TXFGOGdZTVZ6TXEwZWs0VjRkNWZDcG50UFUzSEhwWXhxTHRkRHpVSVZyaEVR?= =?utf-8?B?Y0NJRXFkVWF6VGpZMWJzYVRaUmpFNHhlWXZJOFA4QjU4WmJCR0Y2eG9yczFK?= =?utf-8?B?cGtxT0l5WVZWMDZsWEJsRjFoYnJCVzhzaTNteTNscWlTTVloZDgyWGVyZXpw?= =?utf-8?B?VUhCbUp4VmwxdkZkTzRQWWIzUGJmTmd2UnU0S281RHFTdk0zTk1sSGVoSlFL?= =?utf-8?B?Z3NvL1cveThvWjJyaW1wNkdQZXFwSjZNbi9sR28yc1EvZ2toa04zKzBMeXNZ?= =?utf-8?B?UnVlcnNid2grRUFReTE1OC96TGFxMEdNK3hlc2FiNnpMSHNFeXUxYmRWRFJj?= =?utf-8?B?dGRSMjRrQkM4YW0vN1FnUlhUdGNXQytlMWFUSERsaWd1VXN2aHRYMmpEUFNV?= =?utf-8?B?Tnk0a2ZsWE5FVVFKMnoyS3lSRGs2ZENaNTNzdk1ueVdycmFPMXhwNFVRcWhO?= =?utf-8?B?YlYxSkFZWlZ5WVlVeU1TcEVyNjNjMDcycFhUSUVBNDVyU3l0MzJGTGlsYjhF?= =?utf-8?B?VzVKc0NLWlRGRXFJaEpFVnNXMWdKc3VVdmhSSXU1OFZrTzNWNHRaY0t1M1FE?= =?utf-8?B?ekpIZ2dVczQrRUc5ZGN4OXoydkoxRmJnZHlxVnU5TzIrbGRwZkZMMVhkdi9j?= =?utf-8?B?REw5NjZBODB2c2x3c1RnUlY3SXVHK1N1bEdISjNIWVpYc2xQaWhpcTR2cFpD?= =?utf-8?B?NnZXYVhRdjRyejZPKytlSVRWWGowMXdsRlFYZEZRU0JHZGk4c2RMc0pyOWMv?= =?utf-8?B?UHkxeG9DYWI3WGgvTW0rbjVIYURKUnFXS0FXNTBISXUvbGRHYlBkQmplMGFr?= =?utf-8?B?VDE3YkgyckdqV1FTTDlCSUVsTlNBdW5NQ3lYK3E3Wk9obE9vK1k5eTFWOUdy?= =?utf-8?B?UldzUDZiVHV5TlR2NkVxK2RwN3lzOWM5WGFTZ0lZQ2dHLzIyM2RnY0lhUmwz?= =?utf-8?B?eW43bEhLM2k3NUxsQlZ0WjJTTmJGTVF4Q2pHdkVVdjFJZkdQY1VtZ08zR1Z3?= =?utf-8?B?VlJIZWc5TjhORnlyRzlhNGN4UkVvKzFYV1YwNUpXem0wVSt2NllsN25jMCs2?= =?utf-8?B?R09hM285Qm5ESHpqc2ZqRGlLMGlQSFRSaHN1REU1YXYza3J4TzBJNklZMFo1?= =?utf-8?B?MW5YRVpkbHJhU3hiUmRXVmp0a1lCdUFlTzhKRDNta1p1Nmp2RlNDRk55Zklz?= =?utf-8?B?ZjJja2ZvdzBCQnpPV25Zam5obnRIOFBqSTVneDV0QjczUjEyNElyTjl5N2ts?= =?utf-8?B?WkZXWGk3UEp5Mlo0UnFlVjRxUHg1T1l3V2JLSWt0QUFjOGxKZWtkc3VHSzhE?= =?utf-8?B?dnUyMktmajhTVy9yMzZVb2dqWmdSMHc2Sm02UHVTU0JYQmdtTmVLRWpJV0Nx?= =?utf-8?B?azVBUVRYQ2RHNTlObDVqYWhjVWVycmJ3dDFpZEp5NFZ0WFpRZk9Ga2M3emo4?= =?utf-8?B?Y203K2NhdDFiSllkRzhCMHZxUUJ0S0VuR3BxbjJvME02WUlLWUtkemM0ZFpB?= =?utf-8?B?a0g4M25NeEdEQVQ5bVFKL21ReXA5TFFONnoyN3BrYTJjVEpXVWpTcGlLNlpS?= =?utf-8?B?TXNvQ0xXWW42bmpPaEJlOU5YeXZYU0F5RUhvbk1oQWtLN2lSTlRPQXp1RWl4?= =?utf-8?Q?5ZAtMvlzr53WGaktlHv/9W5oF?= 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: DM6PR11MB4457.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80342a0a-ac18-4e37-d33f-08dbc4422a27 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Oct 2023 18:54:25.6755 (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: UkJBAZUzfF5cYiDXbBoTgkuy1QwFr6iShuGLli3buQ9q92abiCDFF3x4o7gkfhgJ3bmDjg7I2PCe/vDlkuCb7KNjjG28rEpz3KCNB4icvjo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB8165 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 LCBPY3RvYmVyIDMsIDIwMjMgNjoxNSBBTQ0KPiBUbzogQ2hhdXRydSwgTmljb2xhcyA8bmljb2xh cy5jaGF1dHJ1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogaGVtYW50LmFncmF3YWxA bnhwLmNvbTsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbTsgVmFyZ2FzLCBIZXJuYW4NCj4gPGhl cm5hbi52YXJnYXNAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDA2LzEyXSBi YXNlYmFuZC9hY2M6IHJlZmFjdG9yIHRvIGFsbG93IHVuaWZpZWQgZHJpdmVyDQo+IGV4dGVuc2lv bg0KPiANCj4gVGhhbmtzIGZvciBkb2luZyB0aGUgc3BsaXQsIHRoYXQgd2lsbCBlYXNlIHJldmll dy4NCj4gDQo+IE9uIDkvMjkvMjMgMTg6MzUsIE5pY29sYXMgQ2hhdXRydSB3cm90ZToNCj4gPiBB ZGRpbmcgYSBmZXcgZnVuY3Rpb25zIGFuZCBjb21tb24gY29kZSBwcmlvciB0byBleHRlbmRpbmcg dGhlIFZSQg0KPiA+IGRyaXZlci4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgQ2hh dXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgIGRyaXZlcnMv YmFzZWJhbmQvYWNjL2FjY19jb21tb24uaCAgICAgfCAxNjQgKysrKysrKysrKysrKysrKysrKysr KystDQo+IC0tDQo+ID4gICBkcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfYWNjMTAwX3BtZC5jIHwg ICA0ICstDQo+ID4gICBkcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfdnJiX3BtZC5jICAgIHwgIDYy ICsrKysrLS0tLS0NCj4gPiAgIDMgZmlsZXMgY2hhbmdlZCwgMTg0IGluc2VydGlvbnMoKyksIDQ2 IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNj L2FjY19jb21tb24uaA0KPiA+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MvYWNjX2NvbW1vbi5oDQo+ ID4gaW5kZXggNzg4YWJmMWEzYy4uODk4OTNlYWU0MyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJz L2Jhc2ViYW5kL2FjYy9hY2NfY29tbW9uLmgNCj4gPiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2Fj Yy9hY2NfY29tbW9uLmgNCj4gPiBAQCAtMTgsNiArMTgsNyBAQA0KPiA+ICAgI2RlZmluZSBBQ0Nf RE1BX0JMS0lEX09VVF9IQVJRICAgICAgMw0KPiA+ICAgI2RlZmluZSBBQ0NfRE1BX0JMS0lEX0lO X0hBUlEgICAgICAgMw0KPiA+ICAgI2RlZmluZSBBQ0NfRE1BX0JMS0lEX0lOX01MRF9SICAgICAg Mw0KPiA+ICsjZGVmaW5lIEFDQ19ETUFfQkxLSURfREVXSU5fSU4gICAgICAzDQo+ID4NCj4gPiAg IC8qIFZhbHVlcyB1c2VkIGluIGZpbGxpbmcgaW4gZGVjb2RlIEZDV3MgKi8NCj4gPiAgICNkZWZp bmUgQUNDX0ZDV19URF9WRVIgICAgICAgICAgICAgIDENCj4gPiBAQCAtMTAzLDYgKzEwNCw5IEBA DQo+ID4gICAjZGVmaW5lIEFDQ19NQVhfTlVNX1FHUlBTICAgICAgICAgICAgICAzMg0KPiA+ICAg I2RlZmluZSBBQ0NfUklOR19TSVpFX0dSQU5VTEFSSVRZICAgICAgNjQNCj4gPiAgICNkZWZpbmUg QUNDX01BWF9GQ1dfU0laRSAgICAgICAgICAgICAgMTI4DQo+ID4gKyNkZWZpbmUgQUNDX0lRX1NJ WkUgICAgICAgICAgICAgICAgICAgIDQNCj4gPiArDQo+ID4gKyNkZWZpbmUgQUNDX0ZDV19GRlRf QkxFTl8zICAgICAgICAgICAgIDI4DQo+ID4NCj4gPiAgIC8qIENvbnN0YW50cyBmcm9tIEswIGNv bXB1dGF0aW9uIGZyb20gM0dQUCAzOC4yMTIgVGFibGUgNS40LjIuMS0yICovDQo+ID4gICAjZGVm aW5lIEFDQ19OX1pDXzEgNjYgLyogTiA9IDY2IFpjIGZvciBCRyAxICovIEBAIC0xMzIsNiArMTM2 LDE3IEBADQo+ID4gICAjZGVmaW5lIEFDQ19MSU1fMjEgMTQgLyogMC4yMSAqLw0KPiA+ICAgI2Rl ZmluZSBBQ0NfTElNXzMxIDIwIC8qIDAuMzEgKi8NCj4gPiAgICNkZWZpbmUgQUNDX01BWF9FICgx MjggKiAxMDI0IC0gMikNCj4gPiArI2RlZmluZSBBQ0NfTUFYX0NTIDEyDQo+ID4gKw0KPiA+ICsj ZGVmaW5lIEFDQzEwMF9WQVJJQU5UICAgICAgICAgIDANCj4gPiArI2RlZmluZSBWUkIxX1ZBUklB TlQJCTINCj4gPiArI2RlZmluZSBWUkIyX1ZBUklBTlQJCTMNCj4gPiArDQo+ID4gKy8qIFF1ZXVl IEluZGV4IEhpZXJhcmNoeSAqLw0KPiA+ICsjZGVmaW5lIFZSQjFfR1JQX0lEX1NISUZUICAgIDEw DQo+ID4gKyNkZWZpbmUgVlJCMV9WRl9JRF9TSElGVCAgICAgNA0KPiA+ICsjZGVmaW5lIFZSQjJf R1JQX0lEX1NISUZUICAgIDEyDQo+ID4gKyNkZWZpbmUgVlJCMl9WRl9JRF9TSElGVCAgICAgNg0K PiA+DQo+ID4gICAvKiBIZWxwZXIgbWFjcm8gZm9yIGxvZ2dpbmcgKi8NCj4gPiAgICNkZWZpbmUg cnRlX2FjY19sb2cobGV2ZWwsIGZtdCwgLi4uKSBcIEBAIC0zMzIsNiArMzQ3LDM3IEBAIHN0cnVj dA0KPiA+IF9fcnRlX3BhY2tlZCBhY2NfZmN3X2ZmdCB7DQo+ID4gICAJCXJlczoxOTsNCj4gPiAg IH07DQo+ID4NCj4gPiArLyogRkZUIEZyYW1lIENvbnRyb2wgV29yZC4gKi8NCj4gPiArc3RydWN0 IF9fcnRlX3BhY2tlZCBhY2NfZmN3X2ZmdF8zIHsNCj4gPiArCXVpbnQzMl90IGluX2ZyYW1lX3Np emU6MTYsDQo+ID4gKwkJbGVhZGluZ19wYWRfc2l6ZToxNjsNCj4gPiArCXVpbnQzMl90IG91dF9m cmFtZV9zaXplOjE2LA0KPiA+ICsJCWxlYWRpbmdfZGVwYWRfc2l6ZToxNjsNCj4gPiArCXVpbnQz Ml90IGNzX3dpbmRvd19zZWw7DQo+ID4gKwl1aW50MzJfdCBjc193aW5kb3dfc2VsMjoxNiwNCj4g PiArCQljc19lbmFibGVfYm1hcDoxNjsNCj4gPiArCXVpbnQzMl90IG51bV9hbnRlbm5hczo4LA0K PiA+ICsJCWlkZnRfc2l6ZTo4LA0KPiA+ICsJCWRmdF9zaXplOjgsDQo+ID4gKwkJY3Nfb2Zmc2V0 Ojg7DQo+ID4gKwl1aW50MzJfdCBpZGZ0X3NoaWZ0OjgsDQo+ID4gKwkJZGZ0X3NoaWZ0OjgsDQo+ ID4gKwkJY3NfbXVsdGlwbGllcjoxNjsNCj4gPiArCXVpbnQzMl90IGJ5cGFzczoyLA0KPiA+ICsJ CWZwMTZfaW46MSwNCj4gPiArCQlmcDE2X291dDoxLA0KPiA+ICsJCWV4cF9hZGo6NCwNCj4gPiAr CQlwb3dlcl9zaGlmdDo0LA0KPiA+ICsJCXBvd2VyX2VuOjEsDQo+ID4gKwkJZW5hYmxlX2Rld2lu OjEsDQo+ID4gKwkJZnJlcV9yZXNhbXBsZV9tb2RlOjIsDQo+ID4gKwkJZGVwYWRfb3V0cHV0X3Np emU6MTY7DQo+ID4gKwl1aW50MTZfdCBjc190aGV0YV8wW0FDQ19NQVhfQ1NdOw0KPiA+ICsJdWlu dDMyX3QgY3NfdGhldGFfZFtBQ0NfTUFYX0NTXTsNCj4gPiArCWludDhfdCBjc190aW1lX29mZnNl dFtBQ0NfTUFYX0NTXTsNCj4gPiArfTsNCj4gPiArDQo+ID4gKw0KPiA+ICAgLyogTUxELVRTIEZy YW1lIENvbnRyb2wgV29yZCAqLw0KPiA+ICAgc3RydWN0IF9fcnRlX3BhY2tlZCBhY2NfZmN3X21s ZHRzIHsNCj4gPiAgIAl1aW50MzJfdCBmY3dfdmVyc2lvbjo0LA0KPiA+IEBAIC00NzMsMTQgKzUx OSwxNCBAQCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgew0KPiA+ICAgCQl1aW50MTZfdCB2YWxp ZDogMTsNCj4gPiAgIAl9Ow0KPiA+ICAgCXN0cnVjdCB7DQo+ID4gLQkJdWludDMyX3QgYXFfaWRf MzogNjsNCj4gPiAtCQl1aW50MzJfdCBxZ19pZF8zOiA1Ow0KPiA+IC0JCXVpbnQzMl90IHZmX2lk XzM6IDY7DQo+ID4gLQkJdWludDMyX3QgaW50X25iXzM6IDY7DQo+ID4gLQkJdWludDMyX3QgbXNp XzBfMzogMTsNCj4gPiAtCQl1aW50MzJfdCB2ZjJwZl8zOiA2Ow0KPiA+IC0JCXVpbnQzMl90IGxv b3BfMzogMTsNCj4gPiAtCQl1aW50MzJfdCB2YWxpZF8zOiAxOw0KPiA+ICsJCXVpbnQzMl90IGFx X2lkX3ZyYjI6IDY7DQo+ID4gKwkJdWludDMyX3QgcWdfaWRfdnJiMjogNTsNCj4gPiArCQl1aW50 MzJfdCB2Zl9pZF92cmIyOiA2Ow0KPiA+ICsJCXVpbnQzMl90IGludF9uYl92cmIyOiA2Ow0KPiA+ ICsJCXVpbnQzMl90IG1zaV8wX3ZyYjI6IDE7DQo+ID4gKwkJdWludDMyX3QgdmYycGZfdnJiMjog NjsNCj4gPiArCQl1aW50MzJfdCBsb29wX3ZyYjI6IDE7DQo+ID4gKwkJdWludDMyX3QgdmFsaWRf dnJiMjogMTsNCj4gPiAgIAl9Ow0KPiA+ICAgfSBfX3J0ZV9wYWNrZWQ7DQo+ID4NCj4gPiBAQCAt NzYxLDIyICs4MDcsMTA1IEBAIGFsbG9jX3N3X3JpbmdzX21pbl9tZW0oc3RydWN0IHJ0ZV9iYmRl diAqZGV2LA0KPiBzdHJ1Y3QgYWNjX2RldmljZSAqZCwNCj4gPiAgIAlmcmVlX2Jhc2VfYWRkcmVz c2VzKGJhc2VfYWRkcnMsIGkpOw0KPiA+ICAgfQ0KPiA+DQo+ID4gKy8qIFdyYXBwZXIgdG8gcHJv dmlkZSBWRiBpbmRleCBmcm9tIHJpbmcgZGF0YS4gKi8gc3RhdGljIGlubGluZQ0KPiA+ICt1aW50 MTZfdCB2Zl9mcm9tX3JpbmcoY29uc3QgdW5pb24gYWNjX2luZm9fcmluZ19kYXRhIHJpbmdfZGF0 YSwNCj4gPiArdWludDE2X3QgZGV2aWNlX3ZhcmlhbnQpIHsNCj4gDQo+IGN1cmx5IGJyYWNlcyBv biBhIG5ldyBsaW5lLg0KDQpUaGFua3MuIA0KDQo+IA0KPiA+ICsJaWYgKGRldmljZV92YXJpYW50 ID09IFZSQjJfVkFSSUFOVCkNCj4gPiArCQlyZXR1cm4gcmluZ19kYXRhLnZmX2lkX3ZyYjI7DQo+ ID4gKwllbHNlDQo+ID4gKwkJcmV0dXJuIHJpbmdfZGF0YS52Zl9pZDsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArLyogV3JhcHBlciB0byBwcm92aWRlIFFHIGluZGV4IGZyb20gcmluZyBkYXRhLiAqLyBz dGF0aWMgaW5saW5lDQo+ID4gK3VpbnQxNl90IHFnX2Zyb21fcmluZyhjb25zdCB1bmlvbiBhY2Nf aW5mb19yaW5nX2RhdGEgcmluZ19kYXRhLA0KPiA+ICt1aW50MTZfdCBkZXZpY2VfdmFyaWFudCkg ew0KPiA+ICsJaWYgKGRldmljZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkNCj4gPiArCQlyZXR1 cm4gcmluZ19kYXRhLnFnX2lkX3ZyYjI7DQo+ID4gKwllbHNlDQo+ID4gKwkJcmV0dXJuIHJpbmdf ZGF0YS5xZ19pZDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyogV3JhcHBlciB0byBwcm92aWRlIEFR IGluZGV4IGZyb20gcmluZyBkYXRhLiAqLyBzdGF0aWMgaW5saW5lDQo+ID4gK3VpbnQxNl90IGFx X2Zyb21fcmluZyhjb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgcmluZ19kYXRhLA0KPiA+ ICt1aW50MTZfdCBkZXZpY2VfdmFyaWFudCkgew0KPiA+ICsJaWYgKGRldmljZV92YXJpYW50ID09 IFZSQjJfVkFSSUFOVCkNCj4gPiArCQlyZXR1cm4gcmluZ19kYXRhLmFxX2lkX3ZyYjI7DQo+ID4g KwllbHNlDQo+ID4gKwkJcmV0dXJuIHJpbmdfZGF0YS5hcV9pZDsNCj4gPiArfQ0KPiA+ICsNCj4g PiArLyogV3JhcHBlciB0byBwcm92aWRlIGludCBpbmRleCBmcm9tIHJpbmcgZGF0YS4gKi8gc3Rh dGljIGlubGluZQ0KPiA+ICt1aW50MTZfdCBpbnRfZnJvbV9yaW5nKGNvbnN0IHVuaW9uIGFjY19p bmZvX3JpbmdfZGF0YSByaW5nX2RhdGEsDQo+ID4gK3VpbnQxNl90IGRldmljZV92YXJpYW50KSB7 DQo+ID4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKQ0KPiA+ICsJCXJldHVy biByaW5nX2RhdGEuaW50X25iX3ZyYjI7DQo+ID4gKwllbHNlDQo+ID4gKwkJcmV0dXJuIHJpbmdf ZGF0YS5pbnRfbmI7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIFdyYXBwZXIgdG8gcHJvdmlkZSBx dWV1ZSBpbmRleCBmcm9tIGdyb3VwIGFuZCBhcSBpbmRleC4gKi8gc3RhdGljDQo+ID4gK2lubGlu ZSBpbnQgcXVldWVfaW5kZXgodWludDE2X3QgZ3JvdXBfaWR4LCB1aW50MTZfdCBhcV9pZHgsIHVp bnQxNl90DQo+ID4gK2RldmljZV92YXJpYW50KSB7DQo+ID4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQg PT0gVlJCMl9WQVJJQU5UKQ0KPiA+ICsJCXJldHVybiAoZ3JvdXBfaWR4IDw8IFZSQjJfR1JQX0lE X1NISUZUKSArIGFxX2lkeDsNCj4gPiArCWVsc2UNCj4gPiArCQlyZXR1cm4gKGdyb3VwX2lkeCA8 PCBWUkIxX0dSUF9JRF9TSElGVCkgKyBhcV9pZHg7IH0NCj4gPiArDQo+ID4gKy8qIFdyYXBwZXIg dG8gcHJvdmlkZSBxdWV1ZSBncm91cCBmcm9tIHF1ZXVlIGluZGV4LiAqLyBzdGF0aWMgaW5saW5l DQo+ID4gK2ludCBxZ19mcm9tX3EodWludDMyX3QgcV9pZHgsIHVpbnQxNl90IGRldmljZV92YXJp YW50KSB7DQo+ID4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKQ0KPiA+ICsJ CXJldHVybiAocV9pZHggPj4gVlJCMl9HUlBfSURfU0hJRlQpICYgMHgxRjsNCj4gPiArCWVsc2UN Cj4gPiArCQlyZXR1cm4gKHFfaWR4ID4+IFZSQjFfR1JQX0lEX1NISUZUKSAmIDB4RjsgfQ0KPiA+ ICsNCj4gPiArLyogV3JhcHBlciB0byBwcm92aWRlIHZmIGZyb20gcXVldWUgaW5kZXguICovIHN0 YXRpYyBpbmxpbmUgaW50MzJfdA0KPiA+ICt2Zl9mcm9tX3EodWludDMyX3QgcV9pZHgsIHVpbnQx Nl90IGRldmljZV92YXJpYW50KSB7DQo+ID4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9W QVJJQU5UKQ0KPiA+ICsJCXJldHVybiAocV9pZHggPj4gVlJCMl9WRl9JRF9TSElGVCkgICYgMHgz RjsNCj4gPiArCWVsc2UNCj4gPiArCQlyZXR1cm4gKHFfaWR4ID4+IFZSQjFfVkZfSURfU0hJRlQp ICAmIDB4M0Y7IH0NCj4gPiArDQo+ID4gKy8qIFdyYXBwZXIgdG8gcHJvdmlkZSBhcSBpbmRleCBm cm9tIHF1ZXVlIGluZGV4LiAqLyBzdGF0aWMgaW5saW5lDQo+ID4gK2ludDMyX3QgYXFfZnJvbV9x KHVpbnQzMl90IHFfaWR4LCB1aW50MTZfdCBkZXZpY2VfdmFyaWFudCkgew0KPiA+ICsJaWYgKGRl dmljZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkNCj4gPiArCQlyZXR1cm4gcV9pZHggJiAweDNG Ow0KPiA+ICsJZWxzZQ0KPiA+ICsJCXJldHVybiBxX2lkeCAmIDB4RjsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArLyogV3JhcHBlciB0byBzZXQgVkYgaW5kZXggaW4gcmluZyBkYXRhLiAqLyBzdGF0aWMg aW5saW5lIGludDMyX3QNCj4gPiArc2V0X3ZmX2luX3Jpbmcodm9sYXRpbGUgdW5pb24gYWNjX2lu Zm9fcmluZ19kYXRhICpyaW5nX2RhdGEsDQo+ID4gKwkJdWludDE2X3QgZGV2aWNlX3ZhcmlhbnQs IHVpbnQxNl90IHZhbHVlKSB7DQo+ID4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJ QU5UKQ0KPiA+ICsJCXJldHVybiByaW5nX2RhdGEtPnZmX2lkX3ZyYjIgPSB2YWx1ZTsNCj4gPiAr CWVsc2UNCj4gPiArCQlyZXR1cm4gcmluZ19kYXRhLT52Zl9pZCA9IHZhbHVlOw0KPiA+ICt9DQo+ ID4gKw0KPiA+ICAgLyoNCj4gPiAgICAqIEZpbmQgcXVldWVfaWQgb2YgYSBkZXZpY2UgcXVldWUg YmFzZWQgb24gZGV0YWlscyBmcm9tIHRoZSBJbmZvIFJpbmcuDQo+ID4gICAgKiBJZiBhIHF1ZXVl IGlzbid0IGZvdW5kIFVJTlQxNl9NQVggaXMgcmV0dXJuZWQuDQo+ID4gICAgKi8NCj4gPiAgIHN0 YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gPiAgIGdldF9xdWV1ZV9pZF9mcm9tX3JpbmdfaW5mbyhz dHJ1Y3QgcnRlX2JiZGV2X2RhdGEgKmRhdGEsDQo+ID4gLQkJY29uc3QgdW5pb24gYWNjX2luZm9f cmluZ19kYXRhIHJpbmdfZGF0YSkNCj4gPiArCQljb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2Rh dGEgcmluZ19kYXRhLCB1aW50MTZfdA0KPiBkZXZpY2VfdmFyaWFudCkNCj4gDQo+IEFzIEkgc3Vn Z2VzdGVkIG9uIHYyOg0KPiANCj4gZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKHN0cnVjdCBy dGVfYmJkZXZfZGF0YSAqZGF0YSwNCj4gCWNvbnN0IHVuaW9uIGFjY19pbmZvX3JpbmdfZGF0YSBy aW5nX2RhdGEpIHsNCj4gCXN0cnVjdCBhY2NfZGV2aWNlICpkID0gZGF0YS0+ZGV2X3ByaXZhdGU7 DQo+IA0KPiAJLi4uDQo+IA0KPiAJaWYgKGFjY19xICE9IE5VTEwgJiYgYWNjX3EtPmFxX2lkID09 IGFxX2Zyb21fcmluZyhkLCByaW5nX2RhdGEpICYmDQo+IC4uLg0KPiANCj4gfQ0KPiANCj4gd2l0 aA0KPiANCj4gLyogV3JhcHBlciB0byBwcm92aWRlIEFRIGluZGV4IGZyb20gcmluZyBkYXRhLiAq LyB0YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gYXFfZnJvbV9yaW5nKHN0cnVjdCBhY2NfZGV2aWNl ICpkLCBjb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgcmluZ19kYXRhKQ0KPiB7DQo+IAlp ZiAoZC0+ZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKQ0KPiAJCXJldHVybiByaW5nX2Rh dGEuYXFfaWRfdnJiMjsNCj4gCWVsc2UNCj4gCQlyZXR1cm4gcmluZ19kYXRhLmFxX2lkOw0KPiB9 DQo+IA0KDQpJIHdpbGwgY2hhbmdlIHRoZSBnZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oKSB0 byBoYXZlIGEgc21hbGxlciBwcm90b3R5cGUNCmJ1dCBJIGRvbuKAmXQgcGxhbiBvbiBjaGFuZ2lu ZyB0aGUgb3RoZXIgbmV3IHVuZGVybHlpbmcgZnVucyB0byB1c2UgZGV2IGluc3RlYWQgb2YgdGhl IHZhcmlhbnQNCmluIHByb3RvdHlwZSwgDQpJIGRvbuKAmXQgc2VlIGEgcmVhc29uIHRvIGFzIHRo ZXNlIG9ubHkgbmVlZCB0aGlzIHZlcnkgbWVtYmVyLiANCg0KPiA+ICAgew0KPiA+ICAgCXVpbnQx Nl90IHF1ZXVlX2lkOw0KPiA+ICsJc3RydWN0IGFjY19xdWV1ZSAqYWNjX3E7DQo+ID4NCj4gPiAg IAlmb3IgKHF1ZXVlX2lkID0gMDsgcXVldWVfaWQgPCBkYXRhLT5udW1fcXVldWVzOyArK3F1ZXVl X2lkKSB7DQo+ID4gLQkJc3RydWN0IGFjY19xdWV1ZSAqYWNjX3EgPQ0KPiA+IC0JCQkJZGF0YS0+ cXVldWVzW3F1ZXVlX2lkXS5xdWV1ZV9wcml2YXRlOw0KPiA+IC0JCWlmIChhY2NfcSAhPSBOVUxM ICYmIGFjY19xLT5hcV9pZCA9PSByaW5nX2RhdGEuYXFfaWQgJiYNCj4gPiAtCQkJCWFjY19xLT5x Z3JwX2lkID09IHJpbmdfZGF0YS5xZ19pZCAmJg0KPiA+IC0JCQkJYWNjX3EtPnZmX2lkID09IHJp bmdfZGF0YS52Zl9pZCkNCj4gPiArCQlhY2NfcSA9IGRhdGEtPnF1ZXVlc1txdWV1ZV9pZF0ucXVl dWVfcHJpdmF0ZTsNCj4gPiArDQo+ID4gKwkJaWYgKGFjY19xICE9IE5VTEwgJiYgYWNjX3EtPmFx X2lkID09DQo+IGFxX2Zyb21fcmluZyhyaW5nX2RhdGEsIGRldmljZV92YXJpYW50KSAmJg0KPiA+ ICsJCQkJYWNjX3EtPnFncnBfaWQgPT0gcWdfZnJvbV9yaW5nKHJpbmdfZGF0YSwNCj4gZGV2aWNl X3ZhcmlhbnQpICYmDQo+ID4gKwkJCQlhY2NfcS0+dmZfaWQgPT0gdmZfZnJvbV9yaW5nKHJpbmdf ZGF0YSwNCj4gZGV2aWNlX3ZhcmlhbnQpKQ0KPiA+ICAgCQkJcmV0dXJuIHF1ZXVlX2lkOw0KPiA+ ICAgCX0NCj4gPg0KPiA+IEBAIC0xNDM4LDQgKzE1NjcsMTEgQEAgZ2V0X251bV9jYnNfaW5fdGJf bGRwY19lbmMoc3RydWN0DQo+IHJ0ZV9iYmRldl9vcF9sZHBjX2VuYyAqbGRwY19lbmMpDQo+ID4g ICAJcmV0dXJuIGNic19pbl90YjsNCj4gPiAgIH0NCj4gPg0KPiA+ICtzdGF0aWMgaW5saW5lIHZv aWQNCj4gPiArYWNjX3JlZ19mYXN0X3dyaXRlKHN0cnVjdCBhY2NfZGV2aWNlICpkLCB1aW50MzJf dCBvZmZzZXQsIHVpbnQzMl90DQo+ID4gK3ZhbHVlKSB7DQo+ID4gKwl2b2lkICpyZWdfYWRkciA9 IFJURV9QVFJfQUREKGQtPm1taW9fYmFzZSwgb2Zmc2V0KTsNCj4gPiArCW1taW9fd3JpdGUocmVn X2FkZHIsIHZhbHVlKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgICNlbmRpZiAvKiBfQUNDX0NPTU1P Tl9IXyAqLw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfYWNjMTAw X3BtZC5jDQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfYWNjMTAwX3BtZC5jDQo+ID4g aW5kZXggNTM2MmQzOWMzMC4uN2Y4ZDA1YjVhOSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2Jh c2ViYW5kL2FjYy9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9h Y2MvcnRlX2FjYzEwMF9wbWQuYw0KPiA+IEBAIC0yOTQsNyArMjk0LDcgQEAgYWNjMTAwX3BmX2lu dGVycnVwdF9oYW5kbGVyKHN0cnVjdCBydGVfYmJkZXYgKmRldikNCj4gPiAgIAkJY2FzZSBBQ0Mx MDBfUEZfSU5UX0RNQV9VTDVHX0RFU0NfSVJROg0KPiA+ICAgCQljYXNlIEFDQzEwMF9QRl9JTlRf RE1BX0RMNUdfREVTQ19JUlE6DQo+ID4gICAJCQlkZXFfaW50cl9kZXQucXVldWVfaWQgPQ0KPiBn ZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oDQo+ID4gLQkJCQkJZGV2LT5kYXRhLCAqcmluZ19k YXRhKTsNCj4gPiArCQkJCQlkZXYtPmRhdGEsICpyaW5nX2RhdGEsIGFjYzEwMF9kZXYtDQo+ID5k ZXZpY2VfdmFyaWFudCk7DQo+ID4gICAJCQlpZiAoZGVxX2ludHJfZGV0LnF1ZXVlX2lkID09IFVJ TlQxNl9NQVgpIHsNCj4gPiAgIAkJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiAgIAkJCQkJCSJD b3VsZG4ndCBmaW5kIHF1ZXVlOiBhcV9pZDoNCj4gJXUsIHFnX2lkOiAldSwgdmZfaWQ6ICV1Iiwg QEANCj4gPiAtMzQ4LDcgKzM0OCw3IEBAIGFjYzEwMF92Zl9pbnRlcnJ1cHRfaGFuZGxlcihzdHJ1 Y3QgcnRlX2JiZGV2ICpkZXYpDQo+ID4gICAJCQkgKi8NCj4gPiAgIAkJCXJpbmdfZGF0YS0+dmZf aWQgPSAwOw0KPiA+ICAgCQkJZGVxX2ludHJfZGV0LnF1ZXVlX2lkID0NCj4gZ2V0X3F1ZXVlX2lk X2Zyb21fcmluZ19pbmZvKA0KPiA+IC0JCQkJCWRldi0+ZGF0YSwgKnJpbmdfZGF0YSk7DQo+ID4g KwkJCQkJZGV2LT5kYXRhLCAqcmluZ19kYXRhLCBhY2MxMDBfZGV2LQ0KPiA+ZGV2aWNlX3Zhcmlh bnQpOw0KPiA+ICAgCQkJaWYgKGRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9PSBVSU5UMTZfTUFYKSB7 DQo+ID4gICAJCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4gICAJCQkJCQkiQ291bGRuJ3QgZmlu ZCBxdWV1ZTogYXFfaWQ6DQo+ICV1LCBxZ19pZDogJXUiLCBkaWZmIC0tZ2l0DQo+ID4gYS9kcml2 ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfdnJiX3BtZC5jDQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2Fj Yy9ydGVfdnJiX3BtZC5jDQo+ID4gaW5kZXggYTFkZTAxMmI0MC4uYzg5YzI2YzU5YSAxMDA2NDQN Cj4gPiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfdnJiX3BtZC5jDQo+ID4gKysrIGIv ZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9wbWQuYw0KPiA+IEBAIC0zNDEsMTcgKzM0MSwx OCBAQCBzdGF0aWMgaW5saW5lIHZvaWQNCj4gPiAgIHZyYl9jaGVja19pcihzdHJ1Y3QgYWNjX2Rl dmljZSAqYWNjX2RldikNCj4gPiAgIHsNCj4gPiAgIAl2b2xhdGlsZSB1bmlvbiBhY2NfaW5mb19y aW5nX2RhdGEgKnJpbmdfZGF0YTsNCj4gPiAtCXVpbnQxNl90IGluZm9fcmluZ19oZWFkID0gYWNj X2Rldi0+aW5mb19yaW5nX2hlYWQ7DQo+ID4gKwl1aW50MTZfdCBpbmZvX3JpbmdfaGVhZCA9IGFj Y19kZXYtPmluZm9fcmluZ19oZWFkLCBpbnRfbmI7DQo+ID4gICAJaWYgKHVubGlrZWx5KGFjY19k ZXYtPmluZm9fcmluZyA9PSBOVUxMKSkNCj4gPiAgIAkJcmV0dXJuOw0KPiA+DQo+ID4gICAJcmlu Z19kYXRhID0gYWNjX2Rldi0+aW5mb19yaW5nICsgKGFjY19kZXYtPmluZm9fcmluZ19oZWFkICYN Cj4gPiBBQ0NfSU5GT19SSU5HX01BU0spOw0KPiA+DQo+ID4gICAJd2hpbGUgKHJpbmdfZGF0YS0+ dmFsaWQpIHsNCj4gPiAtCQlpZiAoKHJpbmdfZGF0YS0+aW50X25iIDwgQUNDX1BGX0lOVF9ETUFf RExfREVTQ19JUlEpIHx8ICgNCj4gPiAtCQkJCXJpbmdfZGF0YS0+aW50X25iID4NCj4gQUNDX1BG X0lOVF9ETUFfTUxEX0RFU0NfSVJRKSkgew0KPiA+ICsJCWludF9uYiA9IGludF9mcm9tX3Jpbmco KnJpbmdfZGF0YSwgYWNjX2Rldi0+ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+ICsJCWlmICgoaW50X25i IDwgQUNDX1BGX0lOVF9ETUFfRExfREVTQ19JUlEpIHx8ICgNCj4gPiArCQkJCWludF9uYiA+IEFD Q19QRl9JTlRfRE1BX01MRF9ERVNDX0lSUSkpDQo+IHsNCj4gPiAgIAkJCXJ0ZV9iYmRldl9sb2co V0FSTklORywgIkluZm9SaW5nOiBJVFI6JWQNCj4gSW5mbzoweCV4IiwNCj4gPiAtCQkJCQlyaW5n X2RhdGEtPmludF9uYiwgcmluZ19kYXRhLQ0KPiA+ZGV0YWlsZWRfaW5mbyk7DQo+ID4gKwkJCQkJ aW50X25iLCByaW5nX2RhdGEtPmRldGFpbGVkX2luZm8pOw0KPiA+ICAgCQkJLyogSW5pdGlhbGl6 ZSBJbmZvIFJpbmcgZW50cnkgYW5kIG1vdmUgZm9yd2FyZC4gKi8NCj4gPiAgIAkJCXJpbmdfZGF0 YS0+dmFsID0gMDsNCj4gPiAgIAkJfQ0KPiA+IEBAIC0zNjgsMTYgKzM2OSwyMSBAQCB2cmJfZGV2 X2ludGVycnVwdF9oYW5kbGVyKHZvaWQgKmNiX2FyZykNCj4gPiAgIAlzdHJ1Y3QgYWNjX2Rldmlj ZSAqYWNjX2RldiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gICAJdm9sYXRpbGUgdW5p b24gYWNjX2luZm9fcmluZ19kYXRhICpyaW5nX2RhdGE7DQo+ID4gICAJc3RydWN0IGFjY19kZXFf aW50cl9kZXRhaWxzIGRlcV9pbnRyX2RldDsNCj4gPiArCXVpbnQxNl90IHZmX2lkLCBhcV9pZCwg cWdfaWQsIGludF9uYjsNCj4gPg0KPiA+ICAgCXJpbmdfZGF0YSA9IGFjY19kZXYtPmluZm9fcmlu ZyArIChhY2NfZGV2LT5pbmZvX3JpbmdfaGVhZCAmDQo+ID4gQUNDX0lORk9fUklOR19NQVNLKTsN Cj4gPg0KPiA+ICAgCXdoaWxlIChyaW5nX2RhdGEtPnZhbGlkKSB7DQo+ID4gKwkJdmZfaWQgPSB2 Zl9mcm9tX3JpbmcoKnJpbmdfZGF0YSwgYWNjX2Rldi0+ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+ICsJ CWFxX2lkID0gYXFfZnJvbV9yaW5nKCpyaW5nX2RhdGEsIGFjY19kZXYtPmRldmljZV92YXJpYW50 KTsNCj4gPiArCQlxZ19pZCA9IHFnX2Zyb21fcmluZygqcmluZ19kYXRhLCBhY2NfZGV2LT5kZXZp Y2VfdmFyaWFudCk7DQo+ID4gKwkJaW50X25iID0gaW50X2Zyb21fcmluZygqcmluZ19kYXRhLCBh Y2NfZGV2LT5kZXZpY2VfdmFyaWFudCk7DQo+ID4gICAJCWlmIChhY2NfZGV2LT5wZl9kZXZpY2Up IHsNCj4gPiAgIAkJCXJ0ZV9iYmRldl9sb2dfZGVidWcoDQo+ID4gLQkJCQkJIlZSQjEgUEYgSW50 ZXJydXB0IHJlY2VpdmVkLCBJbmZvIFJpbmcNCj4gZGF0YTogMHgleCAtPiAlZCIsDQo+ID4gLQkJ CQkJcmluZ19kYXRhLT52YWwsIHJpbmdfZGF0YS0+aW50X25iKTsNCj4gPiArCQkJCQkiUEYgSW50 ZXJydXB0IHJlY2VpdmVkLCBJbmZvIFJpbmcgZGF0YToNCj4gMHgleCAtPiAlZCIsDQo+ID4gKwkJ CQkJcmluZ19kYXRhLT52YWwsIGludF9uYik7DQo+ID4NCj4gPiAtCQkJc3dpdGNoIChyaW5nX2Rh dGEtPmludF9uYikgew0KPiA+ICsJCQlzd2l0Y2ggKGludF9uYikgew0KPiA+ICAgCQkJY2FzZSBB Q0NfUEZfSU5UX0RNQV9ETF9ERVNDX0lSUToNCj4gPiAgIAkJCWNhc2UgQUNDX1BGX0lOVF9ETUFf VUxfREVTQ19JUlE6DQo+ID4gICAJCQljYXNlIEFDQ19QRl9JTlRfRE1BX0ZGVF9ERVNDX0lSUToN Cj4gPiBAQCAtMzg1LDEzICszOTEsMTEgQEAgdnJiX2Rldl9pbnRlcnJ1cHRfaGFuZGxlcih2b2lk ICpjYl9hcmcpDQo+ID4gICAJCQljYXNlIEFDQ19QRl9JTlRfRE1BX0RMNUdfREVTQ19JUlE6DQo+ ID4gICAJCQljYXNlIEFDQ19QRl9JTlRfRE1BX01MRF9ERVNDX0lSUToNCj4gPiAgIAkJCQlkZXFf aW50cl9kZXQucXVldWVfaWQgPQ0KPiBnZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oDQo+ID4g LQkJCQkJCWRldi0+ZGF0YSwgKnJpbmdfZGF0YSk7DQo+ID4gKwkJCQkJCWRldi0+ZGF0YSwgKnJp bmdfZGF0YSwNCj4gYWNjX2Rldi0+ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+ICAgCQkJCWlmIChkZXFf aW50cl9kZXQucXVldWVfaWQgPT0gVUlOVDE2X01BWCkgew0KPiA+ICAgCQkJCQlydGVfYmJkZXZf bG9nKEVSUiwNCj4gPiAgIAkJCQkJCQkiQ291bGRuJ3QgZmluZCBxdWV1ZToNCj4gYXFfaWQ6ICV1 LCBxZ19pZDogJXUsIHZmX2lkOiAldSIsDQo+ID4gLQkJCQkJCQlyaW5nX2RhdGEtPmFxX2lkLA0K PiA+IC0JCQkJCQkJcmluZ19kYXRhLT5xZ19pZCwNCj4gPiAtCQkJCQkJCXJpbmdfZGF0YS0+dmZf aWQpOw0KPiA+ICsJCQkJCQkJYXFfaWQsIHFnX2lkLCB2Zl9pZCk7DQo+ID4gICAJCQkJCXJldHVy bjsNCj4gPiAgIAkJCQl9DQo+ID4gICAJCQkJcnRlX2JiZGV2X3BtZF9jYWxsYmFja19wcm9jZXNz KGRldiwNCj4gPiBAQCAtNDAzLDkgKzQwNyw5IEBAIHZyYl9kZXZfaW50ZXJydXB0X2hhbmRsZXIo dm9pZCAqY2JfYXJnKQ0KPiA+ICAgCQkJfQ0KPiA+ICAgCQl9IGVsc2Ugew0KPiA+ICAgCQkJcnRl X2JiZGV2X2xvZ19kZWJ1ZygNCj4gPiAtCQkJCQkiVlJCMSBWRiBJbnRlcnJ1cHQgcmVjZWl2ZWQs IEluZm8gUmluZw0KPiBkYXRhOiAweCV4XG4iLA0KPiA+ICsJCQkJCSJWUkIgVkYgSW50ZXJydXB0 IHJlY2VpdmVkLCBJbmZvIFJpbmcNCj4gZGF0YTogMHgleFxuIiwNCj4gPiAgIAkJCQkJcmluZ19k YXRhLT52YWwpOw0KPiA+IC0JCQlzd2l0Y2ggKHJpbmdfZGF0YS0+aW50X25iKSB7DQo+ID4gKwkJ CXN3aXRjaCAoaW50X25iKSB7DQo+ID4gICAJCQljYXNlIEFDQ19WRl9JTlRfRE1BX0RMX0RFU0Nf SVJROg0KPiA+ICAgCQkJY2FzZSBBQ0NfVkZfSU5UX0RNQV9VTF9ERVNDX0lSUToNCj4gPiAgIAkJ CWNhc2UgQUNDX1ZGX0lOVF9ETUFfRkZUX0RFU0NfSVJROg0KPiA+IEBAIC00MTMsMTQgKzQxNywx MyBAQCB2cmJfZGV2X2ludGVycnVwdF9oYW5kbGVyKHZvaWQgKmNiX2FyZykNCj4gPiAgIAkJCWNh c2UgQUNDX1ZGX0lOVF9ETUFfREw1R19ERVNDX0lSUToNCj4gPiAgIAkJCWNhc2UgQUNDX1ZGX0lO VF9ETUFfTUxEX0RFU0NfSVJROg0KPiA+ICAgCQkJCS8qIFZGcyBhcmUgbm90IGF3YXJlIG9mIHRo ZWlyIHZmX2lkIC0gaXQncyBzZXQgdG8NCj4gMC4gICovDQo+ID4gLQkJCQlyaW5nX2RhdGEtPnZm X2lkID0gMDsNCj4gPiArCQkJCXNldF92Zl9pbl9yaW5nKHJpbmdfZGF0YSwgYWNjX2Rldi0NCj4g PmRldmljZV92YXJpYW50LCAwKTsNCj4gPiAgIAkJCQlkZXFfaW50cl9kZXQucXVldWVfaWQgPQ0K PiBnZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oDQo+ID4gLQkJCQkJCWRldi0+ZGF0YSwgKnJp bmdfZGF0YSk7DQo+ID4gKwkJCQkJCWRldi0+ZGF0YSwgKnJpbmdfZGF0YSwNCj4gYWNjX2Rldi0+ ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+ICAgCQkJCWlmIChkZXFfaW50cl9kZXQucXVldWVfaWQgPT0g VUlOVDE2X01BWCkgew0KPiA+ICAgCQkJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiAgIAkJCQkJ CQkiQ291bGRuJ3QgZmluZCBxdWV1ZToNCj4gYXFfaWQ6ICV1LCBxZ19pZDogJXUiLA0KPiA+IC0J CQkJCQkJcmluZ19kYXRhLT5hcV9pZCwNCj4gPiAtCQkJCQkJCXJpbmdfZGF0YS0+cWdfaWQpOw0K PiA+ICsJCQkJCQkJYXFfaWQsIHFnX2lkKTsNCj4gPiAgIAkJCQkJcmV0dXJuOw0KPiA+ICAgCQkJ CX0NCj4gPiAgIAkJCQlydGVfYmJkZXZfcG1kX2NhbGxiYWNrX3Byb2Nlc3MoZGV2LA0KPiA+IEBA IC00MzUsOCArNDM4LDcgQEAgdnJiX2Rldl9pbnRlcnJ1cHRfaGFuZGxlcih2b2lkICpjYl9hcmcp DQo+ID4gICAJCS8qIEluaXRpYWxpemUgSW5mbyBSaW5nIGVudHJ5IGFuZCBtb3ZlIGZvcndhcmQu ICovDQo+ID4gICAJCXJpbmdfZGF0YS0+dmFsID0gMDsNCj4gPiAgIAkJKythY2NfZGV2LT5pbmZv X3JpbmdfaGVhZDsNCj4gPiAtCQlyaW5nX2RhdGEgPSBhY2NfZGV2LT5pbmZvX3JpbmcgKw0KPiA+ IC0JCQkJKGFjY19kZXYtPmluZm9fcmluZ19oZWFkICYNCj4gQUNDX0lORk9fUklOR19NQVNLKTsN Cj4gPiArCQlyaW5nX2RhdGEgPSBhY2NfZGV2LT5pbmZvX3JpbmcgKyAoYWNjX2Rldi0+aW5mb19y aW5nX2hlYWQgJg0KPiA+ICtBQ0NfSU5GT19SSU5HX01BU0spOw0KPiA+ICAgCX0NCj4gPiAgIH0N Cj4gPg0KPiA+IEBAIC01NTYsOCArNTU4LDcgQEAgdnJiX3NldHVwX3F1ZXVlcyhzdHJ1Y3QgcnRl X2JiZGV2ICpkZXYsIHVpbnQxNl90DQo+ID4gbnVtX3F1ZXVlcywgaW50IHNvY2tldF9pZCkNCj4g Pg0KPiA+ICAgCS8qIENvbmZpZ3VyZSB0YWlsIHBvaW50ZXIgZm9yIHVzZSB3aGVuIFNET05FIGVu YWJsZWQuICovDQo+ID4gICAJaWYgKGQtPnRhaWxfcHRycyA9PSBOVUxMKQ0KPiA+IC0JCWQtPnRh aWxfcHRycyA9IHJ0ZV96bWFsbG9jX3NvY2tldCgNCj4gPiAtCQkJCWRldi0+ZGV2aWNlLT5kcml2 ZXItPm5hbWUsDQo+ID4gKwkJZC0+dGFpbF9wdHJzID0gcnRlX3ptYWxsb2Nfc29ja2V0KGRldi0+ ZGV2aWNlLT5kcml2ZXItPm5hbWUsDQo+ID4gICAJCQkJVlJCX01BWF9RR1JQUyAqIFZSQl9NQVhf QVFTICoNCj4gc2l6ZW9mKHVpbnQzMl90KSwNCj4gPiAgIAkJCQlSVEVfQ0FDSEVfTElORV9TSVpF LCBzb2NrZXRfaWQpOw0KPiA+ICAgCWlmIChkLT50YWlsX3B0cnMgPT0gTlVMTCkgew0KPiA+IEBA IC03ODMsNyArNzg0LDcgQEAgdnJiX2ZpbmRfZnJlZV9xdWV1ZV9pZHgoc3RydWN0IHJ0ZV9iYmRl diAqZGV2LA0KPiA+ICAgCQkJLyogTWFyayB0aGUgUXVldWUgYXMgYXNzaWduZWQuICovDQo+ID4g ICAJCQlkLT5xX2Fzc2lnbmVkX2JpdF9tYXBbZ3JvdXBfaWR4XSB8PSAoMVVMTCA8PA0KPiBhcV9p ZHgpOw0KPiA+ICAgCQkJLyogUmVwb3J0IHRoZSBBUSBJbmRleC4gKi8NCj4gPiAtCQkJcmV0dXJu IChncm91cF9pZHggPDwgVlJCMV9HUlBfSURfU0hJRlQpICsgYXFfaWR4Ow0KPiA+ICsJCQlyZXR1 cm4gcXVldWVfaW5kZXgoZ3JvdXBfaWR4LCBhcV9pZHgsIGQtDQo+ID5kZXZpY2VfdmFyaWFudCk7 DQo+ID4gICAJCX0NCj4gPiAgIAl9DQo+ID4gICAJcnRlX2JiZGV2X2xvZyhJTkZPLCAiRmFpbGVk IHRvIGZpbmQgZnJlZSBxdWV1ZSBvbiAlcywgcHJpb3JpdHkgJXUiLA0KPiA+IEBAIC05MjIsOSAr OTIzLDEwIEBAIHZyYl9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsIHVpbnQxNl90 DQo+IHF1ZXVlX2lkLA0KPiA+ICAgCQl9DQo+ID4gICAJfQ0KPiA+DQo+ID4gLQlxLT5xZ3JwX2lk ID0gKHFfaWR4ID4+IFZSQjFfR1JQX0lEX1NISUZUKSAmIDB4RjsNCj4gPiAtCXEtPnZmX2lkID0g KHFfaWR4ID4+IFZSQjFfVkZfSURfU0hJRlQpICAmIDB4M0Y7DQo+ID4gLQlxLT5hcV9pZCA9IHFf aWR4ICYgMHhGOw0KPiA+ICsJcS0+cWdycF9pZCA9IHFnX2Zyb21fcShxX2lkeCwgZC0+ZGV2aWNl X3ZhcmlhbnQpOw0KPiA+ICsJcS0+dmZfaWQgPSB2Zl9mcm9tX3EocV9pZHgsIGQtPmRldmljZV92 YXJpYW50KTsNCj4gPiArCXEtPmFxX2lkID0gYXFfZnJvbV9xKHFfaWR4LCBkLT5kZXZpY2VfdmFy aWFudCk7DQo+ID4gKw0KPiA+ICAgCXEtPmFxX2RlcHRoID0gMDsNCj4gPiAgIAlpZiAoY29uZi0+ b3BfdHlwZSA9PSAgUlRFX0JCREVWX09QX1RVUkJPX0RFQykNCj4gPiAgIAkJcS0+YXFfZGVwdGgg PSAoMSA8PCBkLT5hY2NfY29uZi5xX3VsXzRnLmFxX2RlcHRoX2xvZzIpOw0KPiA+IEBAIC0xMzEx LDcgKzEzMTMsNyBAQCB2cmJfZmN3X3RkX2ZpbGwoY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9kZWNf b3ANCj4gKm9wLCBzdHJ1Y3QgYWNjX2Zjd190ZCAqZmN3KQ0KPiA+ICAgCQlmY3ctPmJ5cGFzc190 ZXEgPSAwOw0KPiA+ICAgCX0NCj4gPg0KPiA+IC0JZmN3LT5jb2RlX2Jsb2NrX21vZGUgPSAxOyAv KiBGSVhNRSAqLw0KPiA+ICsJZmN3LT5jb2RlX2Jsb2NrX21vZGUgPSAxOw0KPiANCj4gQ291bGQg eW91IHJlbWluZCBtZSB3aGF0IHdhcyB0aGUgaXNzdWU/DQoNCkhpc3RvcmljYWxseSB0aGVyZSB3 YXMgdGhlIGludGVudGlvbiB0byB1c2UgYSBkaWZmZXJlbmNlIGZvcm1hdCBvcHRpb24gaW4gdGhl IGZjdyB0byBoZWxwIHdpdGggdGhlIFRCIG1vZGUgYnV0IHRoYXQgaXMgbm90IGNvbnNpZGVyZWQg YW55bW9yZS4gDQoNCj4gDQo+ID4gICAJZmN3LT50dXJib19jcmNfdHlwZSA9IGNoZWNrX2JpdChv cC0+dHVyYm9fZGVjLm9wX2ZsYWdzLA0KPiA+ICAgCQkJUlRFX0JCREVWX1RVUkJPX0NSQ19UWVBF XzI0Qik7DQo+ID4NCj4gPiBAQCAtMTQ3MSw4ICsxNDczLDggQEAgdnJiX2RtYV9kZXNjX3RkX2Zp bGwoc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3ANCj4gKm9wLA0KPiA+ICAgCWlmIChvcC0+dHVyYm9f ZGVjLmNvZGVfYmxvY2tfbW9kZSA9PQ0KPiBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKSB7DQo+ ID4gICAJCWsgPSBvcC0+dHVyYm9fZGVjLnRiX3BhcmFtcy5rX3BvczsNCj4gPiAgIAkJZSA9IChy IDwgb3AtPnR1cmJvX2RlYy50Yl9wYXJhbXMuY2FiKQ0KPiA+IC0JCQk/IG9wLT50dXJib19kZWMu dGJfcGFyYW1zLmVhDQo+ID4gLQkJCTogb3AtPnR1cmJvX2RlYy50Yl9wYXJhbXMuZWI7DQo+ID4g KwkJCQk/IG9wLT50dXJib19kZWMudGJfcGFyYW1zLmVhDQo+ID4gKwkJCQk6IG9wLT50dXJib19k ZWMudGJfcGFyYW1zLmViOw0KPiA+ICAgCX0gZWxzZSB7DQo+ID4gICAJCWsgPSBvcC0+dHVyYm9f ZGVjLmNiX3BhcmFtcy5rOw0KPiA+ICAgCQllID0gb3AtPnR1cmJvX2RlYy5jYl9wYXJhbXMuZTsN Cj4gPiBAQCAtMTcyNiw3ICsxNzI4LDcgQEAgdnJiX2RtYV9kZXNjX2xkX3VwZGF0ZShzdHJ1Y3QN Cj4gcnRlX2JiZGV2X2RlY19vcCAqb3AsDQo+ID4gICAJZGVzYy0+b3BfYWRkciA9IG9wOw0KPiA+ ICAgfQ0KPiA+DQo+ID4gLS8qIEVucXVldWUgb25lIGVuY29kZSBvcGVyYXRpb25zIGZvciBkZXZp Y2UgaW4gQ0IgbW9kZSAqLw0KPiA+ICsvKiBFbnF1ZXVlIG9uZSBlbmNvZGUgb3BlcmF0aW9ucyBm b3IgZGV2aWNlIGluIENCIG1vZGUuICovDQo+ID4gICBzdGF0aWMgaW5saW5lIGludA0KPiA+ICAg ZW5xdWV1ZV9lbmNfb25lX29wX2NiKHN0cnVjdCBhY2NfcXVldWUgKnEsIHN0cnVjdCBydGVfYmJk ZXZfZW5jX29wDQo+ICpvcCwNCj4gPiAgIAkJdWludDE2X3QgdG90YWxfZW5xdWV1ZWRfY2JzKQ0K PiA+IEBAIC0yMjYzLDcgKzIyNjUsNyBAQCB2cmJfZW5xdWV1ZV9sZHBjX2RlY19vbmVfb3BfdGIo c3RydWN0DQo+IGFjY19xdWV1ZSAqcSwgc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3AgKm9wLA0KPiA+ ICAgCXJldHVybiBjdXJyZW50X2VucXVldWVkX2NiczsNCj4gPiAgIH0NCj4gPg0KPiA+IC0vKiBF bnF1ZXVlIG9uZSBkZWNvZGUgb3BlcmF0aW9ucyBmb3IgZGV2aWNlIGluIFRCIG1vZGUgKi8NCj4g PiArLyogRW5xdWV1ZSBvbmUgZGVjb2RlIG9wZXJhdGlvbnMgZm9yIGRldmljZSBpbiBUQiBtb2Rl LiAqLw0KPiA+ICAgc3RhdGljIGlubGluZSBpbnQNCj4gPiAgIGVucXVldWVfZGVjX29uZV9vcF90 YihzdHJ1Y3QgYWNjX3F1ZXVlICpxLCBzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcA0KPiAqb3AsDQo+ ID4gICAJCXVpbnQxNl90IHRvdGFsX2VucXVldWVkX2NicywgdWludDhfdCBjYnNfaW5fdGIpDQoN Cg==