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 1ABAC42677; Wed, 4 Oct 2023 23:29:08 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DA44B402D7; Wed, 4 Oct 2023 23:29:07 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 20D8F4029A for ; Wed, 4 Oct 2023 23:29:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696454945; x=1727990945; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=1w5Y3CwlySOA1IaQZTIbh1nPZdxURNNNdp2kKRqRG7U=; b=F0O62vG4DlXBlyJidxoS2Ta4adP5jJSUBdmazzFDAjNIyeo7BEJ4mb8+ HrhCBoNrbt27ZiH/pPxM2KCJv5+uHZYBZFsddPmZsrpAFApYAwh/odZyr fESOW7S8xpXlmWdBXherXZfc5jRyhH3eKTOWrQNZMVtznCY/XoOf6Njv5 eUEuVbJnV9TlS71fa4EVuKGLzTmVe9zpk3VQW5UpAAAqUOY1ch5Kfg0Vj tRjAwPzh0TrlbtEsYcGYcpANfciis36YlFFGhe3FRBz3uZTTxkDWLlCGA 16S6uieS8JpF+Tx4W5MK2Jt8DkRt+hVgUAEEc+wTnUaoouJAGTikckG56 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10853"; a="386138165" X-IronPort-AV: E=Sophos;i="6.03,201,1694761200"; d="scan'208";a="386138165" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Oct 2023 14:28:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10853"; a="821852475" X-IronPort-AV: E=Sophos;i="6.03,201,1694761200"; d="scan'208";a="821852475" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 04 Oct 2023 14:28:52 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Wed, 4 Oct 2023 14:28:51 -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.2507.32 via Frontend Transport; Wed, 4 Oct 2023 14:28:51 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.107) 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.2507.32; Wed, 4 Oct 2023 14:28:51 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dBvAWJcfVRk+GaUIZBLKDwRpGaiF49+zFn0h8v8lhAL/iz8HXJRP5X1DPo+qiCPdt+qqbVNtRq/qKwH11cuw/r8WCyd8Z9ECaFjyIeNOL/71Xi4pYsBa6Oo5cGBDUG7buz+9RAcw6BGl5brOHml2NUDU3662R+fFbJu9bXESHHfow/JYaRrlTRyLw9CdvTles+gCzanzQkenaVB/4UW9Vuawb2XHysue6jPDbEjLYpeoO+uVY4Biu3FgIJiJT9WjWEzfhpe1tPQg8Alb98Uz2GXFJfFgLiQOALLD1VptFThGTfm32KQ9h7keyFOvs+ZPGA3EVwxndbjYgQz+qOumOg== 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=1w5Y3CwlySOA1IaQZTIbh1nPZdxURNNNdp2kKRqRG7U=; b=QnnlX1jj2vU/YZtLg932lM/VA3ACY63VAhmyxHYVLOVEWV8wHSH7Wfo48DWTZ1zZqhCHPffJwt/UH4UknGKYqG29KITzrqD6idls4ZlCAnuUrCKQj7EDHbobYe/Vi8/mkyra2k/a0vayASZiYIS2G2H4nJuc+qPjwVTFaL/sYSMJ/Q63Gviw4UzgYAroZWofe1+eBoNDYroq4vW9TzCaHMkINIMT4a9ocxfCRdooy6QBqZ+Oo//uYjE3PAs93rg5id6CFFf+izb4C6jKoVuoZMWK6P5sfFBfVVbV1jPcGiwHEZfOV2ihOoQgSTI8rRW7ENkLW6Cldu6iRwp9MTRQYQ== 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 DM4PR11MB5485.namprd11.prod.outlook.com (2603:10b6:5:388::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.33; Wed, 4 Oct 2023 21:28:50 +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.033; Wed, 4 Oct 2023 21:28:49 +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: AQHZ8vNUPpMOsHAQBUyvV0DDV8YSKbA4ETCAgABduACAANYDAIAA5cjQ Date: Wed, 4 Oct 2023 21:28:49 +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_|DM4PR11MB5485:EE_ x-ms-office365-filtering-correlation-id: 7c8adb31-e26d-467a-99dc-08dbc520e626 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: l6h59S80g50vK/C2hwckI/fq7RM98lkl19l7KkCIwUChfS06tbzVFraOhRxcXn9BmprECBsodho3HQ1J4XMPEMbU39I5JCCCbmjBjugZDxn/3SMqIktW5p2kzghDspiGYFv7wojqZrAHnxV/LKaqSTj2nVHXOiXoIq88KGJc6GgEH+ZrtS2IOOGxZ5JEBxVfoO36Lvjf6wSmWwiV7LwVABL6JrfFaIPICuBUb8Wkrvf1OcYjkkYA4MiuSX9Kt0Zo9epCVwR5a/sUejXvds/e5F5dRv8h7Up9iS7z21XZ37cJsLVI0dxqZKu9uM24VgwDAj5dNfgeO8jtmimQWJbOjExtwoHS42qRPhAAMkJhAgFu0xxEf0S665ow8h/LMbUQs2dDe9sXXBsVNPolshbnicEzNbtiAcNQvRmh7MU9ZU7ojUevgvXwSCgbPszSMbsogo6jRasq1A/oZn7QPPI6SNPQat04AxUqA19SdNWyBqXSEqIU3waMcoJF05aCEgXDwMH8jV+61YTWy5XxAhu7U5N1J2A51jAOaNFrqHSJuqa3m8gmoIqumcsyt1+gGY//nOBeV8yFy+hhkKEXXip4wvXhAxtHEoCjrmBSv/CSvwyYea/XtnubZbgKhWhZ82Po 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)(366004)(376002)(136003)(346002)(396003)(39860400002)(230922051799003)(451199024)(1800799009)(186009)(64100799003)(53546011)(110136005)(54906003)(66446008)(86362001)(26005)(66556008)(66946007)(76116006)(66476007)(83380400001)(30864003)(33656002)(2906002)(41300700001)(8676002)(38070700005)(38100700002)(52536014)(4326008)(122000001)(8936002)(5660300002)(316002)(82960400001)(9686003)(55016003)(107886003)(64756008)(71200400001)(6506007)(7696005)(478600001)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L29ZVTkyazJaU094VE9PeGZsWThZWEgzRUFuV0VTdVRWOEVFb2dhOTdXR1lN?= =?utf-8?B?eVFLRXVrcUkyYmg3SGhJZ3lyaXorNzlOVXk2KzFjbmthSitvYlQ2WE9sQW1E?= =?utf-8?B?VG9nT1FqS2I0QXE3UEhTa01TR1kvS1duL09UcmZDR0E5U2Z1S3VNalRRUExV?= =?utf-8?B?V0c5bzg5TkZVZEwwVU11c3J3V1hDQ0puRkVoUnpFTW9QeGFrRlhzK1F2cExk?= =?utf-8?B?cDFaU284OC9JeVlRUWErVzZGbHlSVnFBN0MwTFVkeU9kSnA1eHlpN0JIT2VO?= =?utf-8?B?QjR5OTBieXVGWG8zekN1K2tkZ09FUDU4U1ZVdzBla1o2aEVpZFUxWit5SGEy?= =?utf-8?B?VlFkQ0hBd0FUeTg5bEF0T3VSdjkwZTdHb0dFazA5a0IrRldKQTdnVU5kSnd5?= =?utf-8?B?bHhTMVNFRlZuMTcyRXg2Vkh1TUVVNG41b2ZwSHNLZ0JYZTVlSmgrSjB6MDhs?= =?utf-8?B?dmtHVVArdWZXUzdVWXVUVWhKWGlTTXROV05qZjVtb3NsdU80TFJTNmM5TkpW?= =?utf-8?B?MkpJMU93R3NKZDdXVFN4eFZvSmJDVlVnMlhnaExaRmlhYTdVT21UODBtQnl0?= =?utf-8?B?d0oyK1BnM3ptZ0FlTVRaUmR3VlJrY3p0aVdWVm1CTWloZVlreTJSZkdVd0Ft?= =?utf-8?B?aGlIa0x2MkxxY1hJT0I5Y1lDdVB3NUwxVEQxWndKN2pnR1VnWU9mRmZ2ZFJk?= =?utf-8?B?VkVGUGdvUWl2cGRsU2JXak5FUVhtbmVzbjBXUTBhQVpMRU1iTWVIODZVK2JM?= =?utf-8?B?WHdQdVE5d0E2UXM0UmJ2YXdZQU9jTEI3c0dlekQ4aTlMYmRQbjRRTzhucSsr?= =?utf-8?B?TnFqK1dIS2F0NHZ5N0FmWHlEOW9UcVpISTBudktNZHg1S0ZjaldXb2MwVkRY?= =?utf-8?B?QXBtMzlCQ2xEWDRabExjc3Jqc3hqdkJPRmJ2L1pLRm1kRnVuUXhvbWgwNEls?= =?utf-8?B?dlQvZFIyU2FybjVDV2s3ZGVhc1VNdEFTcm9JdGdQSFVDblpiaWUwSWd6SDh2?= =?utf-8?B?a1FiMXZDSGRuTC9nN2ZVRXRDR1YxYjRQaGovMUF5dmEvakNzakhSeFczWGtC?= =?utf-8?B?V281QnIyZERpVis0c0tUcG0wNlpROWxwTU5BWUZtaXU4ZCt2Y3UvNzRBVE9o?= =?utf-8?B?N1p3ZDFXd0kycDE2QUZIZGJ3L241aHdHaldLL0tPYXlEMjE1cWFSQzlyNEg3?= =?utf-8?B?bXRuMGZKcHhHeUpJZ0JYaVJFdm9tNml4ckZKNXFORVFCNkNpQTFZTmZ1cnEr?= =?utf-8?B?ZWhORkxyRUlVaWFza3BFcVFBbHZVcjRYeXVoT29VVFVKRG4yRFhISmRTTS9J?= =?utf-8?B?VDQ4SFhjSTNveDkvVXUyeWJONnJnNUhrMUhEejNNTmszWTJ5TWdSZ2t3d01w?= =?utf-8?B?VXBIRkVNUG9ONlZFSjVXclFyNGIwUk83QUFZclZNYWJYTjNEYkczRXNKVmMr?= =?utf-8?B?SGNLRkxlRFd1NTFZS2lVWXRFMkFvK2tTSjhaK3o3QXRxblh3dzc5a0t2eVZZ?= =?utf-8?B?aWxCOUFZb1RCRjVKOTR3Z2dFM2FHYVVXcGh4NnFsVk1EcjJGaDRsc1ZIbSt6?= =?utf-8?B?djM1R255NTV5ZDhmdGJ3ZXprVzcyNDFhNzc0eVhTcjZhK2h4VXNpZzY2N2wz?= =?utf-8?B?L0Vud2VKS2E1NjVqMWRTOWpBRVQ0Kyt4aDdlaWxvSnU0dXdDRjNkRnF6TFlM?= =?utf-8?B?Ti9oY1hpVmRaSFViWHNINHlCeStyT01RWnBzOU8vMmdjeGxmK0NsSWMvd3NE?= =?utf-8?B?UEZ3TnhjeGlYeStZR2trT2ZucTRQcDlGT1pLZHFuTTduK25zOGE5MEM2QzA0?= =?utf-8?B?ZlB5NzUyUmpyM2NKR3F5MklNRzlPTVV6S2pUL1VSTHR0TFdKSkpVY3Q2dkF0?= =?utf-8?B?c1R0TGN2SkNqRlNNcWk0OXBqMkc0VkI0OXhpUHhtbWFXMmV4U0ZzSDh4WVVs?= =?utf-8?B?VnZLZElhdUowUmdlN0Mxc2lvOFJlMGNYZTVQekNGc2NwQng4NDNmQ2lxYkdh?= =?utf-8?B?T1JkL1c1aW9sM0cvMWk5R1RSMDZhQTZ0VHNBQlc1Wnh6MlREbDUxTlU0ZzIr?= =?utf-8?B?c3BlTGZxRHJpYlJWbE81dlJORHo3V1J3V2tZSG5qMnhteXNKbmUxbHgwdUk4?= =?utf-8?Q?+24oQzHkL4cOpm1CQOVBwe1R+?= 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: 7c8adb31-e26d-467a-99dc-08dbc520e626 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2023 21:28:49.3676 (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: WqnLAK5VCbydcblUIBCGPdP3jSY2QPLYbMo2hbkDnQi3yOiuxD6nzcKtMbwMAkVUNIgybV2vosRZGPDyoP1Gse49Nl9XGZbiQP+W820Ylxg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5485 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 bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNk YXksIE9jdG9iZXIgNCwgMjAyMyAxMjozNiBBTQ0KPiBUbzogQ2hhdXRydSwgTmljb2xhcyA8bmlj b2xhcy5jaGF1dHJ1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogaGVtYW50LmFncmF3 YWxAbnhwLmNvbTsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbTsgVmFyZ2FzLCBIZXJuYW4NCj4g PGhlcm5hbi52YXJnYXNAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDA2LzEy XSBiYXNlYmFuZC9hY2M6IHJlZmFjdG9yIHRvIGFsbG93IHVuaWZpZWQgZHJpdmVyDQo+IGV4dGVu c2lvbg0KPiANCj4gDQo+IA0KPiBPbiAxMC8zLzIzIDIwOjU0LCBDaGF1dHJ1LCBOaWNvbGFzIHdy b3RlOg0KPiA+IEhpIE1heGltZSwNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+PiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29t Pg0KPiA+PiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDMsIDIwMjMgNjoxNSBBTQ0KPiA+PiBUbzog Q2hhdXRydSwgTmljb2xhcyA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT47IGRldkBkcGRrLm9y Zw0KPiA+PiBDYzogaGVtYW50LmFncmF3YWxAbnhwLmNvbTsgZGF2aWQubWFyY2hhbmRAcmVkaGF0 LmNvbTsgVmFyZ2FzLA0KPiBIZXJuYW4NCj4gPj4gPGhlcm5hbi52YXJnYXNAaW50ZWwuY29tPg0K PiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDA2LzEyXSBiYXNlYmFuZC9hY2M6IHJlZmFjdG9y IHRvIGFsbG93IHVuaWZpZWQNCj4gPj4gZHJpdmVyIGV4dGVuc2lvbg0KPiA+Pg0KPiA+PiBUaGFu a3MgZm9yIGRvaW5nIHRoZSBzcGxpdCwgdGhhdCB3aWxsIGVhc2UgcmV2aWV3Lg0KPiA+Pg0KPiA+ PiBPbiA5LzI5LzIzIDE4OjM1LCBOaWNvbGFzIENoYXV0cnUgd3JvdGU6DQo+ID4+PiBBZGRpbmcg YSBmZXcgZnVuY3Rpb25zIGFuZCBjb21tb24gY29kZSBwcmlvciB0byBleHRlbmRpbmcgdGhlIFZS Qg0KPiA+Pj4gZHJpdmVyLg0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgQ2hh dXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4gPj4+IC0tLQ0KPiA+Pj4gICAgZHJp dmVycy9iYXNlYmFuZC9hY2MvYWNjX2NvbW1vbi5oICAgICB8IDE2NA0KPiArKysrKysrKysrKysr KysrKysrKysrKy0NCj4gPj4gLS0NCj4gPj4+ICAgIGRyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9h Y2MxMDBfcG1kLmMgfCAgIDQgKy0NCj4gPj4+ICAgIGRyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV92 cmJfcG1kLmMgICAgfCAgNjIgKysrKystLS0tLQ0KPiA+Pj4gICAgMyBmaWxlcyBjaGFuZ2VkLCAx ODQgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pDQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL2FjY19jb21tb24uaA0KPiA+Pj4gYi9kcml2ZXJzL2Jh c2ViYW5kL2FjYy9hY2NfY29tbW9uLmgNCj4gPj4+IGluZGV4IDc4OGFiZjFhM2MuLjg5ODkzZWFl NDMgMTAwNjQ0DQo+ID4+PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9hY2NfY29tbW9uLmgN Cj4gPj4+ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjL2FjY19jb21tb24uaA0KPiA+Pj4gQEAg LTE4LDYgKzE4LDcgQEANCj4gPj4+ICAgICNkZWZpbmUgQUNDX0RNQV9CTEtJRF9PVVRfSEFSUSAg ICAgIDMNCj4gPj4+ICAgICNkZWZpbmUgQUNDX0RNQV9CTEtJRF9JTl9IQVJRICAgICAgIDMNCj4g Pj4+ICAgICNkZWZpbmUgQUNDX0RNQV9CTEtJRF9JTl9NTERfUiAgICAgIDMNCj4gPj4+ICsjZGVm aW5lIEFDQ19ETUFfQkxLSURfREVXSU5fSU4gICAgICAzDQo+ID4+Pg0KPiA+Pj4gICAgLyogVmFs dWVzIHVzZWQgaW4gZmlsbGluZyBpbiBkZWNvZGUgRkNXcyAqLw0KPiA+Pj4gICAgI2RlZmluZSBB Q0NfRkNXX1REX1ZFUiAgICAgICAgICAgICAgMQ0KPiA+Pj4gQEAgLTEwMyw2ICsxMDQsOSBAQA0K PiA+Pj4gICAgI2RlZmluZSBBQ0NfTUFYX05VTV9RR1JQUyAgICAgICAgICAgICAgMzINCj4gPj4+ ICAgICNkZWZpbmUgQUNDX1JJTkdfU0laRV9HUkFOVUxBUklUWSAgICAgIDY0DQo+ID4+PiAgICAj ZGVmaW5lIEFDQ19NQVhfRkNXX1NJWkUgICAgICAgICAgICAgIDEyOA0KPiA+Pj4gKyNkZWZpbmUg QUNDX0lRX1NJWkUgICAgICAgICAgICAgICAgICAgIDQNCj4gPj4+ICsNCj4gPj4+ICsjZGVmaW5l IEFDQ19GQ1dfRkZUX0JMRU5fMyAgICAgICAgICAgICAyOA0KPiA+Pj4NCj4gPj4+ICAgIC8qIENv bnN0YW50cyBmcm9tIEswIGNvbXB1dGF0aW9uIGZyb20gM0dQUCAzOC4yMTIgVGFibGUgNS40LjIu MS0yICovDQo+ID4+PiAgICAjZGVmaW5lIEFDQ19OX1pDXzEgNjYgLyogTiA9IDY2IFpjIGZvciBC RyAxICovIEBAIC0xMzIsNiArMTM2LDE3IEBADQo+ID4+PiAgICAjZGVmaW5lIEFDQ19MSU1fMjEg MTQgLyogMC4yMSAqLw0KPiA+Pj4gICAgI2RlZmluZSBBQ0NfTElNXzMxIDIwIC8qIDAuMzEgKi8N Cj4gPj4+ICAgICNkZWZpbmUgQUNDX01BWF9FICgxMjggKiAxMDI0IC0gMikNCj4gPj4+ICsjZGVm aW5lIEFDQ19NQVhfQ1MgMTINCj4gPj4+ICsNCj4gPj4+ICsjZGVmaW5lIEFDQzEwMF9WQVJJQU5U ICAgICAgICAgIDANCj4gPj4+ICsjZGVmaW5lIFZSQjFfVkFSSUFOVAkJMg0KPiA+Pj4gKyNkZWZp bmUgVlJCMl9WQVJJQU5UCQkzDQo+ID4+PiArDQo+ID4+PiArLyogUXVldWUgSW5kZXggSGllcmFy Y2h5ICovDQo+ID4+PiArI2RlZmluZSBWUkIxX0dSUF9JRF9TSElGVCAgICAxMA0KPiA+Pj4gKyNk ZWZpbmUgVlJCMV9WRl9JRF9TSElGVCAgICAgNA0KPiA+Pj4gKyNkZWZpbmUgVlJCMl9HUlBfSURf U0hJRlQgICAgMTINCj4gPj4+ICsjZGVmaW5lIFZSQjJfVkZfSURfU0hJRlQgICAgIDYNCj4gPj4+ DQo+ID4+PiAgICAvKiBIZWxwZXIgbWFjcm8gZm9yIGxvZ2dpbmcgKi8NCj4gPj4+ICAgICNkZWZp bmUgcnRlX2FjY19sb2cobGV2ZWwsIGZtdCwgLi4uKSBcIEBAIC0zMzIsNiArMzQ3LDM3IEBADQo+ ID4+PiBzdHJ1Y3QgX19ydGVfcGFja2VkIGFjY19mY3dfZmZ0IHsNCj4gPj4+ICAgIAkJcmVzOjE5 Ow0KPiA+Pj4gICAgfTsNCj4gPj4+DQo+ID4+PiArLyogRkZUIEZyYW1lIENvbnRyb2wgV29yZC4g Ki8NCj4gPj4+ICtzdHJ1Y3QgX19ydGVfcGFja2VkIGFjY19mY3dfZmZ0XzMgew0KPiA+Pj4gKwl1 aW50MzJfdCBpbl9mcmFtZV9zaXplOjE2LA0KPiA+Pj4gKwkJbGVhZGluZ19wYWRfc2l6ZToxNjsN Cj4gPj4+ICsJdWludDMyX3Qgb3V0X2ZyYW1lX3NpemU6MTYsDQo+ID4+PiArCQlsZWFkaW5nX2Rl cGFkX3NpemU6MTY7DQo+ID4+PiArCXVpbnQzMl90IGNzX3dpbmRvd19zZWw7DQo+ID4+PiArCXVp bnQzMl90IGNzX3dpbmRvd19zZWwyOjE2LA0KPiA+Pj4gKwkJY3NfZW5hYmxlX2JtYXA6MTY7DQo+ ID4+PiArCXVpbnQzMl90IG51bV9hbnRlbm5hczo4LA0KPiA+Pj4gKwkJaWRmdF9zaXplOjgsDQo+ ID4+PiArCQlkZnRfc2l6ZTo4LA0KPiA+Pj4gKwkJY3Nfb2Zmc2V0Ojg7DQo+ID4+PiArCXVpbnQz Ml90IGlkZnRfc2hpZnQ6OCwNCj4gPj4+ICsJCWRmdF9zaGlmdDo4LA0KPiA+Pj4gKwkJY3NfbXVs dGlwbGllcjoxNjsNCj4gPj4+ICsJdWludDMyX3QgYnlwYXNzOjIsDQo+ID4+PiArCQlmcDE2X2lu OjEsDQo+ID4+PiArCQlmcDE2X291dDoxLA0KPiA+Pj4gKwkJZXhwX2Fkajo0LA0KPiA+Pj4gKwkJ cG93ZXJfc2hpZnQ6NCwNCj4gPj4+ICsJCXBvd2VyX2VuOjEsDQo+ID4+PiArCQllbmFibGVfZGV3 aW46MSwNCj4gPj4+ICsJCWZyZXFfcmVzYW1wbGVfbW9kZToyLA0KPiA+Pj4gKwkJZGVwYWRfb3V0 cHV0X3NpemU6MTY7DQo+ID4+PiArCXVpbnQxNl90IGNzX3RoZXRhXzBbQUNDX01BWF9DU107DQo+ ID4+PiArCXVpbnQzMl90IGNzX3RoZXRhX2RbQUNDX01BWF9DU107DQo+ID4+PiArCWludDhfdCBj c190aW1lX29mZnNldFtBQ0NfTUFYX0NTXTsgfTsNCj4gPj4+ICsNCj4gPj4+ICsNCj4gPj4+ICAg IC8qIE1MRC1UUyBGcmFtZSBDb250cm9sIFdvcmQgKi8NCj4gPj4+ICAgIHN0cnVjdCBfX3J0ZV9w YWNrZWQgYWNjX2Zjd19tbGR0cyB7DQo+ID4+PiAgICAJdWludDMyX3QgZmN3X3ZlcnNpb246NCwN Cj4gPj4+IEBAIC00NzMsMTQgKzUxOSwxNCBAQCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgew0K PiA+Pj4gICAgCQl1aW50MTZfdCB2YWxpZDogMTsNCj4gPj4+ICAgIAl9Ow0KPiA+Pj4gICAgCXN0 cnVjdCB7DQo+ID4+PiAtCQl1aW50MzJfdCBhcV9pZF8zOiA2Ow0KPiA+Pj4gLQkJdWludDMyX3Qg cWdfaWRfMzogNTsNCj4gPj4+IC0JCXVpbnQzMl90IHZmX2lkXzM6IDY7DQo+ID4+PiAtCQl1aW50 MzJfdCBpbnRfbmJfMzogNjsNCj4gPj4+IC0JCXVpbnQzMl90IG1zaV8wXzM6IDE7DQo+ID4+PiAt CQl1aW50MzJfdCB2ZjJwZl8zOiA2Ow0KPiA+Pj4gLQkJdWludDMyX3QgbG9vcF8zOiAxOw0KPiA+ Pj4gLQkJdWludDMyX3QgdmFsaWRfMzogMTsNCj4gPj4+ICsJCXVpbnQzMl90IGFxX2lkX3ZyYjI6 IDY7DQo+ID4+PiArCQl1aW50MzJfdCBxZ19pZF92cmIyOiA1Ow0KPiA+Pj4gKwkJdWludDMyX3Qg dmZfaWRfdnJiMjogNjsNCj4gPj4+ICsJCXVpbnQzMl90IGludF9uYl92cmIyOiA2Ow0KPiA+Pj4g KwkJdWludDMyX3QgbXNpXzBfdnJiMjogMTsNCj4gPj4+ICsJCXVpbnQzMl90IHZmMnBmX3ZyYjI6 IDY7DQo+ID4+PiArCQl1aW50MzJfdCBsb29wX3ZyYjI6IDE7DQo+ID4+PiArCQl1aW50MzJfdCB2 YWxpZF92cmIyOiAxOw0KPiA+Pj4gICAgCX07DQo+ID4+PiAgICB9IF9fcnRlX3BhY2tlZDsNCj4g Pj4+DQo+ID4+PiBAQCAtNzYxLDIyICs4MDcsMTA1IEBAIGFsbG9jX3N3X3JpbmdzX21pbl9tZW0o c3RydWN0IHJ0ZV9iYmRldg0KPiAqZGV2LA0KPiA+PiBzdHJ1Y3QgYWNjX2RldmljZSAqZCwNCj4g Pj4+ICAgIAlmcmVlX2Jhc2VfYWRkcmVzc2VzKGJhc2VfYWRkcnMsIGkpOw0KPiA+Pj4gICAgfQ0K PiA+Pj4NCj4gPj4+ICsvKiBXcmFwcGVyIHRvIHByb3ZpZGUgVkYgaW5kZXggZnJvbSByaW5nIGRh dGEuICovIHN0YXRpYyBpbmxpbmUNCj4gPj4+ICt1aW50MTZfdCB2Zl9mcm9tX3JpbmcoY29uc3Qg dW5pb24gYWNjX2luZm9fcmluZ19kYXRhIHJpbmdfZGF0YSwNCj4gPj4+ICt1aW50MTZfdCBkZXZp Y2VfdmFyaWFudCkgew0KPiA+Pg0KPiA+PiBjdXJseSBicmFjZXMgb24gYSBuZXcgbGluZS4NCj4g Pg0KPiA+IFRoYW5rcy4NCj4gPg0KPiA+Pg0KPiA+Pj4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0g VlJCMl9WQVJJQU5UKQ0KPiA+Pj4gKwkJcmV0dXJuIHJpbmdfZGF0YS52Zl9pZF92cmIyOw0KPiA+ Pj4gKwllbHNlDQo+ID4+PiArCQlyZXR1cm4gcmluZ19kYXRhLnZmX2lkOw0KPiA+Pj4gK30NCj4g Pj4+ICsNCj4gPj4+ICsvKiBXcmFwcGVyIHRvIHByb3ZpZGUgUUcgaW5kZXggZnJvbSByaW5nIGRh dGEuICovIHN0YXRpYyBpbmxpbmUNCj4gPj4+ICt1aW50MTZfdCBxZ19mcm9tX3JpbmcoY29uc3Qg dW5pb24gYWNjX2luZm9fcmluZ19kYXRhIHJpbmdfZGF0YSwNCj4gPj4+ICt1aW50MTZfdCBkZXZp Y2VfdmFyaWFudCkgew0KPiA+Pj4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5U KQ0KPiA+Pj4gKwkJcmV0dXJuIHJpbmdfZGF0YS5xZ19pZF92cmIyOw0KPiA+Pj4gKwllbHNlDQo+ ID4+PiArCQlyZXR1cm4gcmluZ19kYXRhLnFnX2lkOw0KPiA+Pj4gK30NCj4gPj4+ICsNCj4gPj4+ ICsvKiBXcmFwcGVyIHRvIHByb3ZpZGUgQVEgaW5kZXggZnJvbSByaW5nIGRhdGEuICovIHN0YXRp YyBpbmxpbmUNCj4gPj4+ICt1aW50MTZfdCBhcV9mcm9tX3JpbmcoY29uc3QgdW5pb24gYWNjX2lu Zm9fcmluZ19kYXRhIHJpbmdfZGF0YSwNCj4gPj4+ICt1aW50MTZfdCBkZXZpY2VfdmFyaWFudCkg ew0KPiA+Pj4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKQ0KPiA+Pj4gKwkJ cmV0dXJuIHJpbmdfZGF0YS5hcV9pZF92cmIyOw0KPiA+Pj4gKwllbHNlDQo+ID4+PiArCQlyZXR1 cm4gcmluZ19kYXRhLmFxX2lkOw0KPiA+Pj4gK30NCj4gPj4+ICsNCj4gPj4+ICsvKiBXcmFwcGVy IHRvIHByb3ZpZGUgaW50IGluZGV4IGZyb20gcmluZyBkYXRhLiAqLyBzdGF0aWMgaW5saW5lDQo+ ID4+PiArdWludDE2X3QgaW50X2Zyb21fcmluZyhjb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2Rh dGEgcmluZ19kYXRhLA0KPiA+Pj4gK3VpbnQxNl90IGRldmljZV92YXJpYW50KSB7DQo+ID4+PiAr CWlmIChkZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklBTlQpDQo+ID4+PiArCQlyZXR1cm4gcmlu Z19kYXRhLmludF9uYl92cmIyOw0KPiA+Pj4gKwllbHNlDQo+ID4+PiArCQlyZXR1cm4gcmluZ19k YXRhLmludF9uYjsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiArLyogV3JhcHBlciB0byBwcm92 aWRlIHF1ZXVlIGluZGV4IGZyb20gZ3JvdXAgYW5kIGFxIGluZGV4LiAqLw0KPiA+Pj4gK3N0YXRp YyBpbmxpbmUgaW50IHF1ZXVlX2luZGV4KHVpbnQxNl90IGdyb3VwX2lkeCwgdWludDE2X3QgYXFf aWR4LA0KPiA+Pj4gK3VpbnQxNl90DQo+ID4+PiArZGV2aWNlX3ZhcmlhbnQpIHsNCj4gPj4+ICsJ aWYgKGRldmljZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkNCj4gPj4+ICsJCXJldHVybiAoZ3Jv dXBfaWR4IDw8IFZSQjJfR1JQX0lEX1NISUZUKSArIGFxX2lkeDsNCj4gPj4+ICsJZWxzZQ0KPiA+ Pj4gKwkJcmV0dXJuIChncm91cF9pZHggPDwgVlJCMV9HUlBfSURfU0hJRlQpICsgYXFfaWR4OyB9 DQo+ID4+PiArDQo+ID4+PiArLyogV3JhcHBlciB0byBwcm92aWRlIHF1ZXVlIGdyb3VwIGZyb20g cXVldWUgaW5kZXguICovIHN0YXRpYw0KPiA+Pj4gK2lubGluZSBpbnQgcWdfZnJvbV9xKHVpbnQz Ml90IHFfaWR4LCB1aW50MTZfdCBkZXZpY2VfdmFyaWFudCkgew0KPiA+Pj4gKwlpZiAoZGV2aWNl X3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKQ0KPiA+Pj4gKwkJcmV0dXJuIChxX2lkeCA+PiBWUkIy X0dSUF9JRF9TSElGVCkgJiAweDFGOw0KPiA+Pj4gKwllbHNlDQo+ID4+PiArCQlyZXR1cm4gKHFf aWR4ID4+IFZSQjFfR1JQX0lEX1NISUZUKSAmIDB4RjsgfQ0KPiA+Pj4gKw0KPiA+Pj4gKy8qIFdy YXBwZXIgdG8gcHJvdmlkZSB2ZiBmcm9tIHF1ZXVlIGluZGV4LiAqLyBzdGF0aWMgaW5saW5lIGlu dDMyX3QNCj4gPj4+ICt2Zl9mcm9tX3EodWludDMyX3QgcV9pZHgsIHVpbnQxNl90IGRldmljZV92 YXJpYW50KSB7DQo+ID4+PiArCWlmIChkZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklBTlQpDQo+ ID4+PiArCQlyZXR1cm4gKHFfaWR4ID4+IFZSQjJfVkZfSURfU0hJRlQpICAmIDB4M0Y7DQo+ID4+ PiArCWVsc2UNCj4gPj4+ICsJCXJldHVybiAocV9pZHggPj4gVlJCMV9WRl9JRF9TSElGVCkgICYg MHgzRjsgfQ0KPiA+Pj4gKw0KPiA+Pj4gKy8qIFdyYXBwZXIgdG8gcHJvdmlkZSBhcSBpbmRleCBm cm9tIHF1ZXVlIGluZGV4LiAqLyBzdGF0aWMgaW5saW5lDQo+ID4+PiAraW50MzJfdCBhcV9mcm9t X3EodWludDMyX3QgcV9pZHgsIHVpbnQxNl90IGRldmljZV92YXJpYW50KSB7DQo+ID4+PiArCWlm IChkZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklBTlQpDQo+ID4+PiArCQlyZXR1cm4gcV9pZHgg JiAweDNGOw0KPiA+Pj4gKwllbHNlDQo+ID4+PiArCQlyZXR1cm4gcV9pZHggJiAweEY7DQo+ID4+ PiArfQ0KPiA+Pj4gKw0KPiA+Pj4gKy8qIFdyYXBwZXIgdG8gc2V0IFZGIGluZGV4IGluIHJpbmcg ZGF0YS4gKi8gc3RhdGljIGlubGluZSBpbnQzMl90DQo+ID4+PiArc2V0X3ZmX2luX3Jpbmcodm9s YXRpbGUgdW5pb24gYWNjX2luZm9fcmluZ19kYXRhICpyaW5nX2RhdGEsDQo+ID4+PiArCQl1aW50 MTZfdCBkZXZpY2VfdmFyaWFudCwgdWludDE2X3QgdmFsdWUpIHsNCj4gPj4+ICsJaWYgKGRldmlj ZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkNCj4gPj4+ICsJCXJldHVybiByaW5nX2RhdGEtPnZm X2lkX3ZyYjIgPSB2YWx1ZTsNCj4gPj4+ICsJZWxzZQ0KPiA+Pj4gKwkJcmV0dXJuIHJpbmdfZGF0 YS0+dmZfaWQgPSB2YWx1ZTsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiAgICAvKg0KPiA+Pj4g ICAgICogRmluZCBxdWV1ZV9pZCBvZiBhIGRldmljZSBxdWV1ZSBiYXNlZCBvbiBkZXRhaWxzIGZy b20gdGhlIEluZm8gUmluZy4NCj4gPj4+ICAgICAqIElmIGEgcXVldWUgaXNuJ3QgZm91bmQgVUlO VDE2X01BWCBpcyByZXR1cm5lZC4NCj4gPj4+ICAgICAqLw0KPiA+Pj4gICAgc3RhdGljIGlubGlu ZSB1aW50MTZfdA0KPiA+Pj4gICAgZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKHN0cnVjdCBy dGVfYmJkZXZfZGF0YSAqZGF0YSwNCj4gPj4+IC0JCWNvbnN0IHVuaW9uIGFjY19pbmZvX3Jpbmdf ZGF0YSByaW5nX2RhdGEpDQo+ID4+PiArCQljb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEg cmluZ19kYXRhLCB1aW50MTZfdA0KPiA+PiBkZXZpY2VfdmFyaWFudCkNCj4gPj4NCj4gPj4gQXMg SSBzdWdnZXN0ZWQgb24gdjI6DQo+ID4+DQo+ID4+IGdldF9xdWV1ZV9pZF9mcm9tX3JpbmdfaW5m byhzdHJ1Y3QgcnRlX2JiZGV2X2RhdGEgKmRhdGEsDQo+ID4+IAljb25zdCB1bmlvbiBhY2NfaW5m b19yaW5nX2RhdGEgcmluZ19kYXRhKSB7DQo+ID4+IAlzdHJ1Y3QgYWNjX2RldmljZSAqZCA9IGRh dGEtPmRldl9wcml2YXRlOw0KPiA+Pg0KPiA+PiAJLi4uDQo+ID4+DQo+ID4+IAlpZiAoYWNjX3Eg IT0gTlVMTCAmJiBhY2NfcS0+YXFfaWQgPT0gYXFfZnJvbV9yaW5nKGQsIHJpbmdfZGF0YSkgJiYN Cj4gPj4gLi4uDQo+ID4+DQo+ID4+IH0NCj4gPj4NCj4gPj4gd2l0aA0KPiA+Pg0KPiA+PiAvKiBX cmFwcGVyIHRvIHByb3ZpZGUgQVEgaW5kZXggZnJvbSByaW5nIGRhdGEuICovIHRhdGljIGlubGlu ZQ0KPiA+PiB1aW50MTZfdCBhcV9mcm9tX3Jpbmcoc3RydWN0IGFjY19kZXZpY2UgKmQsIGNvbnN0 IHVuaW9uDQo+ID4+IGFjY19pbmZvX3JpbmdfZGF0YSByaW5nX2RhdGEpIHsNCj4gPj4gCWlmIChk LT5kZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklBTlQpDQo+ID4+IAkJcmV0dXJuIHJpbmdfZGF0 YS5hcV9pZF92cmIyOw0KPiA+PiAJZWxzZQ0KPiA+PiAJCXJldHVybiByaW5nX2RhdGEuYXFfaWQ7 DQo+ID4+IH0NCj4gPj4NCj4gPg0KPiA+IEkgd2lsbCBjaGFuZ2UgdGhlIGdldF9xdWV1ZV9pZF9m cm9tX3JpbmdfaW5mbygpIHRvIGhhdmUgYSBzbWFsbGVyDQo+ID4gcHJvdG90eXBlIGJ1dCBJIGRv buKAmXQgcGxhbiBvbiBjaGFuZ2luZyB0aGUgb3RoZXIgbmV3IHVuZGVybHlpbmcgZnVucw0KPiA+ IHRvIHVzZSBkZXYgaW5zdGVhZCBvZiB0aGUgdmFyaWFudCBpbiBwcm90b3R5cGUsIEkgZG9u4oCZ dCBzZWUgYSByZWFzb24NCj4gPiB0byBhcyB0aGVzZSBvbmx5IG5lZWQgdGhpcyB2ZXJ5IG1lbWJl ci4NCj4gDQo+IElNSE8sIHJlYXNvbiBpcyBpdCBjb3N0IG5vdGhpbmcgYW5kIGlzIG1vcmUgZnV0 dXJlIHByb29mLg0KDQpUaGFua3MsIG9uIHRoYXQgdmVyeSBjYXNlIEkgYmVsaWV2ZSBpdCB0aGUg cHJvdG90eXBlIGlzIGNsZWFuZXIgd2l0aCB0aGUgZGV2aWNlIHZhcmlhbnQuIEkgZG9u4oCZdCBz ZWUgZnV0dXJlIHByb29mIGNvbmNlcm4uIA0KDQo+IA0KPiBBbHNvLCBteSBpbml0aWFsIGlkZWEg d2FzIHRvIGhhdmUgYW4gaW50ZXJtZWRpYXRlIHJlcHJlc2VudGF0aW9uLCBsaWtlOg0KPiANCj4g c3RydWN0IGFjY19xdWV1ZV9pbmZvIHsgLy8gTm90IHN1cmUgYWJvdXQgdGhlIG5hbWUNCj4gCXVp bnQxNl90IHZmX2lkOw0KPiAJdWludDhfdCBxZ3JwX2lkOw0KPiAJdWludDE2X3QgYXFfaWQ7DQo+ IH07DQo+IA0KPiBUaGVuIHdlIGhhdmUgYSBzaW5nbGUgY2FsbGJhY2sgZm9yIGVhY2ggdmFyaWFu dA0KPiANCj4gc3RhdGljIHZvaWQNCj4gdnJiMV9yaW5nX2RhdGFfdG9fcXVldWVfaW5mbyhjb25z dCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgcmluZ19kYXRhLA0KPiAJCXN0cnVjdCBhY2NfcXVl dWVfaW5mbyAqcXVldWVfaW5mbykNCj4gew0KPiAJcXVldWVfaW5mby0+dmZfaWQgPSByaW5nX2Rh dGEudmZfaWQ7DQo+IAlxdWV1ZV9pbmZvLT5xZ3JwX2lkID0gLi4uDQo+IH0NCj4gDQo+IHN0YXRp YyB2b2lkDQo+IHZyYjJfcmluZ19kYXRhX3RvX3F1ZXVlX2luZm8oY29uc3QgdW5pb24gYWNjX2lu Zm9fcmluZ19kYXRhIHJpbmdfZGF0YSwNCj4gCQlzdHJ1Y3QgYWNjX3F1ZXVlX2luZm8gKnF1ZXVl X2luZm8pDQo+IHsNCj4gDQo+IH0NCj4gDQo+IFRoZSBhY2NfcXVldWVfaW5mbyBzdHJ1Y3QgY2Fu IGFsc28gYmUgdXNlZCBpbiBzdHJ1Y3QgYWNjX3F1ZXVlLCBzbyB3ZSB1c2UNCj4gc2FtZSBmb3Jt YXQgZXZlcnl3aGVyZS4NCj4gDQo+IEkgdGhpbmsgaXQgd2lsbCBiZSBsZXNzIHZlcmJvc2UsIGFu ZCBxdWlja2VyIHRvIGFkZCBuZXcgdmFyaWFudHMgd2l0aG91dCByaXNraW5nIHRvDQo+IG1pc3Mg YWRkaW5nICJlbHNlIGlmIChkLT5kZXZpY2VfdmFyaWFudCA9PSBWUkJ4X1ZBUklBTlQpIg0KPiBh bnl3aGVyZS4NCj4gDQo+IFdoYXQgZG8geW91IHRoaW5rPw0KDQpJIHRoaW5rIGJvdGggd291bGQg d29yay4gVGhlIGludGVybWVkaWF0ZSBzdHJ1Y3R1cmUgbWF5IGJlIGEgYml0IGFydGlmaWNpYWws IGFuZCBpdCB3b3VsZCBoYXZlIGRpZmZlcmVudCBtZW1iZXJzIHdoZW4gZ2V0dGluZyBpbmZvIGZy b20gcXVldWUgb3IgcmluZyAoaWUuIHRoZSBpbnQgaW5kZXgpLiBBbHNvIHRoZXJlIGlzIG5vIHJl Y2lwcm9jYWwgZnVuY3Rpb24sIGllIHdlIHNldCBvbmx5IHRoZSBWRiBpbnRvIHRoZSByaW5nLiBB bmQgdGhlcmUgaXMgYSBsb2NhdGlvbiB3aGVyZSB3ZSBvbmx5IG5lZWQgb25lIG9mIGluZm9ybWF0 aW9uIG5vdCBhbGwgb2YgdGhlIG90aGVyIG1lbWJlcnMuIA0KQWdhaW4gYm90aCBhcmUgb2theSB0 byBtZSB3aXRob3V0IHN1cGVyIHN0cm9uZyBwcmVmZXJlbmNlLCBzbyBmb3Igbm93IEkgd291bGQg c3VnZ2VzdCB0byBrZWVwIGFzIGlzLiANCg0KPiANCj4gPg0KPiA+Pj4gICAgew0KPiA+Pj4gICAg CXVpbnQxNl90IHF1ZXVlX2lkOw0KPiA+Pj4gKwlzdHJ1Y3QgYWNjX3F1ZXVlICphY2NfcTsNCj4g Pj4+DQo+ID4+PiAgICAJZm9yIChxdWV1ZV9pZCA9IDA7IHF1ZXVlX2lkIDwgZGF0YS0+bnVtX3F1 ZXVlczsgKytxdWV1ZV9pZCkgew0KPiA+Pj4gLQkJc3RydWN0IGFjY19xdWV1ZSAqYWNjX3EgPQ0K PiA+Pj4gLQkJCQlkYXRhLT5xdWV1ZXNbcXVldWVfaWRdLnF1ZXVlX3ByaXZhdGU7DQo+ID4+PiAt CQlpZiAoYWNjX3EgIT0gTlVMTCAmJiBhY2NfcS0+YXFfaWQgPT0gcmluZ19kYXRhLmFxX2lkICYm DQo+ID4+PiAtCQkJCWFjY19xLT5xZ3JwX2lkID09IHJpbmdfZGF0YS5xZ19pZCAmJg0KPiA+Pj4g LQkJCQlhY2NfcS0+dmZfaWQgPT0gcmluZ19kYXRhLnZmX2lkKQ0KPiA+Pj4gKwkJYWNjX3EgPSBk YXRhLT5xdWV1ZXNbcXVldWVfaWRdLnF1ZXVlX3ByaXZhdGU7DQo+ID4+PiArDQo+ID4+PiArCQlp ZiAoYWNjX3EgIT0gTlVMTCAmJiBhY2NfcS0+YXFfaWQgPT0NCj4gPj4gYXFfZnJvbV9yaW5nKHJp bmdfZGF0YSwgZGV2aWNlX3ZhcmlhbnQpICYmDQo+ID4+PiArCQkJCWFjY19xLT5xZ3JwX2lkID09 IHFnX2Zyb21fcmluZyhyaW5nX2RhdGEsDQo+ID4+IGRldmljZV92YXJpYW50KSAmJg0KPiA+Pj4g KwkJCQlhY2NfcS0+dmZfaWQgPT0gdmZfZnJvbV9yaW5nKHJpbmdfZGF0YSwNCj4gPj4gZGV2aWNl X3ZhcmlhbnQpKQ0KPiA+Pj4gICAgCQkJcmV0dXJuIHF1ZXVlX2lkOw0KPiA+Pj4gICAgCX0NCj4g Pj4+DQo+ID4+PiBAQCAtMTQzOCw0ICsxNTY3LDExIEBAIGdldF9udW1fY2JzX2luX3RiX2xkcGNf ZW5jKHN0cnVjdA0KPiA+PiBydGVfYmJkZXZfb3BfbGRwY19lbmMgKmxkcGNfZW5jKQ0KPiA+Pj4g ICAgCXJldHVybiBjYnNfaW5fdGI7DQo+ID4+PiAgICB9DQo+ID4+Pg0KPiA+Pj4gK3N0YXRpYyBp bmxpbmUgdm9pZA0KPiA+Pj4gK2FjY19yZWdfZmFzdF93cml0ZShzdHJ1Y3QgYWNjX2RldmljZSAq ZCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdA0KPiA+Pj4gK3ZhbHVlKSB7DQo+ID4+PiArCXZv aWQgKnJlZ19hZGRyID0gUlRFX1BUUl9BREQoZC0+bW1pb19iYXNlLCBvZmZzZXQpOw0KPiA+Pj4g KwltbWlvX3dyaXRlKHJlZ19hZGRyLCB2YWx1ZSk7DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4g ICAgI2VuZGlmIC8qIF9BQ0NfQ09NTU9OX0hfICovDQo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9iYXNlYmFuZC9hY2MvcnRlX2FjYzEwMF9wbWQuYw0KPiA+Pj4gYi9kcml2ZXJzL2Jhc2ViYW5k L2FjYy9ydGVfYWNjMTAwX3BtZC5jDQo+ID4+PiBpbmRleCA1MzYyZDM5YzMwLi43ZjhkMDViNWE5 IDEwMDY0NA0KPiA+Pj4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX2FjYzEwMF9wbWQu Yw0KPiA+Pj4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX2FjYzEwMF9wbWQuYw0KPiA+ Pj4gQEAgLTI5NCw3ICsyOTQsNyBAQCBhY2MxMDBfcGZfaW50ZXJydXB0X2hhbmRsZXIoc3RydWN0 IHJ0ZV9iYmRldg0KPiAqZGV2KQ0KPiA+Pj4gICAgCQljYXNlIEFDQzEwMF9QRl9JTlRfRE1BX1VM NUdfREVTQ19JUlE6DQo+ID4+PiAgICAJCWNhc2UgQUNDMTAwX1BGX0lOVF9ETUFfREw1R19ERVND X0lSUToNCj4gPj4+ICAgIAkJCWRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9DQo+ID4+IGdldF9xdWV1 ZV9pZF9mcm9tX3JpbmdfaW5mbygNCj4gPj4+IC0JCQkJCWRldi0+ZGF0YSwgKnJpbmdfZGF0YSk7 DQo+ID4+PiArCQkJCQlkZXYtPmRhdGEsICpyaW5nX2RhdGEsIGFjYzEwMF9kZXYtDQo+ID4+PiBk ZXZpY2VfdmFyaWFudCk7DQo+ID4+PiAgICAJCQlpZiAoZGVxX2ludHJfZGV0LnF1ZXVlX2lkID09 IFVJTlQxNl9NQVgpIHsNCj4gPj4+ICAgIAkJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPj4+ICAg IAkJCQkJCSJDb3VsZG4ndCBmaW5kIHF1ZXVlOiBhcV9pZDoNCj4gPj4gJXUsIHFnX2lkOiAldSwg dmZfaWQ6ICV1IiwgQEANCj4gPj4+IC0zNDgsNyArMzQ4LDcgQEAgYWNjMTAwX3ZmX2ludGVycnVw dF9oYW5kbGVyKHN0cnVjdCBydGVfYmJkZXYgKmRldikNCj4gPj4+ICAgIAkJCSAqLw0KPiA+Pj4g ICAgCQkJcmluZ19kYXRhLT52Zl9pZCA9IDA7DQo+ID4+PiAgICAJCQlkZXFfaW50cl9kZXQucXVl dWVfaWQgPQ0KPiA+PiBnZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oDQo+ID4+PiAtCQkJCQlk ZXYtPmRhdGEsICpyaW5nX2RhdGEpOw0KPiA+Pj4gKwkJCQkJZGV2LT5kYXRhLCAqcmluZ19kYXRh LCBhY2MxMDBfZGV2LQ0KPiA+Pj4gZGV2aWNlX3ZhcmlhbnQpOw0KPiA+Pj4gICAgCQkJaWYgKGRl cV9pbnRyX2RldC5xdWV1ZV9pZCA9PSBVSU5UMTZfTUFYKSB7DQo+ID4+PiAgICAJCQkJcnRlX2Ji ZGV2X2xvZyhFUlIsDQo+ID4+PiAgICAJCQkJCQkiQ291bGRuJ3QgZmluZCBxdWV1ZTogYXFfaWQ6 DQo+ID4+ICV1LCBxZ19pZDogJXUiLCBkaWZmIC0tZ2l0DQo+ID4+PiBhL2RyaXZlcnMvYmFzZWJh bmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3Zy Yl9wbWQuYw0KPiA+Pj4gaW5kZXggYTFkZTAxMmI0MC4uYzg5YzI2YzU5YSAxMDA2NDQNCj4gPj4+ IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+ICsrKyBiL2Ry aXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+IEBAIC0zNDEsMTcgKzM0MSwx OCBAQCBzdGF0aWMgaW5saW5lIHZvaWQNCj4gPj4+ICAgIHZyYl9jaGVja19pcihzdHJ1Y3QgYWNj X2RldmljZSAqYWNjX2RldikNCj4gPj4+ICAgIHsNCj4gPj4+ICAgIAl2b2xhdGlsZSB1bmlvbiBh Y2NfaW5mb19yaW5nX2RhdGEgKnJpbmdfZGF0YTsNCj4gPj4+IC0JdWludDE2X3QgaW5mb19yaW5n X2hlYWQgPSBhY2NfZGV2LT5pbmZvX3JpbmdfaGVhZDsNCj4gPj4+ICsJdWludDE2X3QgaW5mb19y aW5nX2hlYWQgPSBhY2NfZGV2LT5pbmZvX3JpbmdfaGVhZCwgaW50X25iOw0KPiA+Pj4gICAgCWlm ICh1bmxpa2VseShhY2NfZGV2LT5pbmZvX3JpbmcgPT0gTlVMTCkpDQo+ID4+PiAgICAJCXJldHVy bjsNCj4gPj4+DQo+ID4+PiAgICAJcmluZ19kYXRhID0gYWNjX2Rldi0+aW5mb19yaW5nICsgKGFj Y19kZXYtPmluZm9fcmluZ19oZWFkICYNCj4gPj4+IEFDQ19JTkZPX1JJTkdfTUFTSyk7DQo+ID4+ Pg0KPiA+Pj4gICAgCXdoaWxlIChyaW5nX2RhdGEtPnZhbGlkKSB7DQo+ID4+PiAtCQlpZiAoKHJp bmdfZGF0YS0+aW50X25iIDwgQUNDX1BGX0lOVF9ETUFfRExfREVTQ19JUlEpIHx8ICgNCj4gPj4+ IC0JCQkJcmluZ19kYXRhLT5pbnRfbmIgPg0KPiA+PiBBQ0NfUEZfSU5UX0RNQV9NTERfREVTQ19J UlEpKSB7DQo+ID4+PiArCQlpbnRfbmIgPSBpbnRfZnJvbV9yaW5nKCpyaW5nX2RhdGEsIGFjY19k ZXYtPmRldmljZV92YXJpYW50KTsNCj4gPj4+ICsJCWlmICgoaW50X25iIDwgQUNDX1BGX0lOVF9E TUFfRExfREVTQ19JUlEpIHx8ICgNCj4gPj4+ICsJCQkJaW50X25iID4gQUNDX1BGX0lOVF9ETUFf TUxEX0RFU0NfSVJRKSkNCj4gPj4gew0KPiA+Pj4gICAgCQkJcnRlX2JiZGV2X2xvZyhXQVJOSU5H LCAiSW5mb1Jpbmc6IElUUjolZA0KPiA+PiBJbmZvOjB4JXgiLA0KPiA+Pj4gLQkJCQkJcmluZ19k YXRhLT5pbnRfbmIsIHJpbmdfZGF0YS0NCj4gPj4+IGRldGFpbGVkX2luZm8pOw0KPiA+Pj4gKwkJ CQkJaW50X25iLCByaW5nX2RhdGEtPmRldGFpbGVkX2luZm8pOw0KPiA+Pj4gICAgCQkJLyogSW5p dGlhbGl6ZSBJbmZvIFJpbmcgZW50cnkgYW5kIG1vdmUgZm9yd2FyZC4gKi8NCj4gPj4+ICAgIAkJ CXJpbmdfZGF0YS0+dmFsID0gMDsNCj4gPj4+ICAgIAkJfQ0KPiA+Pj4gQEAgLTM2OCwxNiArMzY5 LDIxIEBAIHZyYl9kZXZfaW50ZXJydXB0X2hhbmRsZXIodm9pZCAqY2JfYXJnKQ0KPiA+Pj4gICAg CXN0cnVjdCBhY2NfZGV2aWNlICphY2NfZGV2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4g Pj4+ICAgIAl2b2xhdGlsZSB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgKnJpbmdfZGF0YTsNCj4g Pj4+ICAgIAlzdHJ1Y3QgYWNjX2RlcV9pbnRyX2RldGFpbHMgZGVxX2ludHJfZGV0Ow0KPiA+Pj4g Kwl1aW50MTZfdCB2Zl9pZCwgYXFfaWQsIHFnX2lkLCBpbnRfbmI7DQo+ID4+Pg0KPiA+Pj4gICAg CXJpbmdfZGF0YSA9IGFjY19kZXYtPmluZm9fcmluZyArIChhY2NfZGV2LT5pbmZvX3JpbmdfaGVh ZCAmDQo+ID4+PiBBQ0NfSU5GT19SSU5HX01BU0spOw0KPiA+Pj4NCj4gPj4+ICAgIAl3aGlsZSAo cmluZ19kYXRhLT52YWxpZCkgew0KPiA+Pj4gKwkJdmZfaWQgPSB2Zl9mcm9tX3JpbmcoKnJpbmdf ZGF0YSwgYWNjX2Rldi0+ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+Pj4gKwkJYXFfaWQgPSBhcV9mcm9t X3JpbmcoKnJpbmdfZGF0YSwgYWNjX2Rldi0+ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+Pj4gKwkJcWdf aWQgPSBxZ19mcm9tX3JpbmcoKnJpbmdfZGF0YSwgYWNjX2Rldi0+ZGV2aWNlX3ZhcmlhbnQpOw0K PiA+Pj4gKwkJaW50X25iID0gaW50X2Zyb21fcmluZygqcmluZ19kYXRhLCBhY2NfZGV2LT5kZXZp Y2VfdmFyaWFudCk7DQo+ID4+PiAgICAJCWlmIChhY2NfZGV2LT5wZl9kZXZpY2UpIHsNCj4gPj4+ ICAgIAkJCXJ0ZV9iYmRldl9sb2dfZGVidWcoDQo+ID4+PiAtCQkJCQkiVlJCMSBQRiBJbnRlcnJ1 cHQgcmVjZWl2ZWQsIEluZm8gUmluZw0KPiA+PiBkYXRhOiAweCV4IC0+ICVkIiwNCj4gPj4+IC0J CQkJCXJpbmdfZGF0YS0+dmFsLCByaW5nX2RhdGEtPmludF9uYik7DQo+ID4+PiArCQkJCQkiUEYg SW50ZXJydXB0IHJlY2VpdmVkLCBJbmZvIFJpbmcgZGF0YToNCj4gPj4gMHgleCAtPiAlZCIsDQo+ ID4+PiArCQkJCQlyaW5nX2RhdGEtPnZhbCwgaW50X25iKTsNCj4gPj4+DQo+ID4+PiAtCQkJc3dp dGNoIChyaW5nX2RhdGEtPmludF9uYikgew0KPiA+Pj4gKwkJCXN3aXRjaCAoaW50X25iKSB7DQo+ ID4+PiAgICAJCQljYXNlIEFDQ19QRl9JTlRfRE1BX0RMX0RFU0NfSVJROg0KPiA+Pj4gICAgCQkJ Y2FzZSBBQ0NfUEZfSU5UX0RNQV9VTF9ERVNDX0lSUToNCj4gPj4+ICAgIAkJCWNhc2UgQUNDX1BG X0lOVF9ETUFfRkZUX0RFU0NfSVJROg0KPiA+Pj4gQEAgLTM4NSwxMyArMzkxLDExIEBAIHZyYl9k ZXZfaW50ZXJydXB0X2hhbmRsZXIodm9pZCAqY2JfYXJnKQ0KPiA+Pj4gICAgCQkJY2FzZSBBQ0Nf UEZfSU5UX0RNQV9ETDVHX0RFU0NfSVJROg0KPiA+Pj4gICAgCQkJY2FzZSBBQ0NfUEZfSU5UX0RN QV9NTERfREVTQ19JUlE6DQo+ID4+PiAgICAJCQkJZGVxX2ludHJfZGV0LnF1ZXVlX2lkID0NCj4g Pj4gZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKA0KPiA+Pj4gLQkJCQkJCWRldi0+ZGF0YSwg KnJpbmdfZGF0YSk7DQo+ID4+PiArCQkJCQkJZGV2LT5kYXRhLCAqcmluZ19kYXRhLA0KPiA+PiBh Y2NfZGV2LT5kZXZpY2VfdmFyaWFudCk7DQo+ID4+PiAgICAJCQkJaWYgKGRlcV9pbnRyX2RldC5x dWV1ZV9pZCA9PSBVSU5UMTZfTUFYKSB7DQo+ID4+PiAgICAJCQkJCXJ0ZV9iYmRldl9sb2coRVJS LA0KPiA+Pj4gICAgCQkJCQkJCSJDb3VsZG4ndCBmaW5kIHF1ZXVlOg0KPiA+PiBhcV9pZDogJXUs IHFnX2lkOiAldSwgdmZfaWQ6ICV1IiwNCj4gPj4+IC0JCQkJCQkJcmluZ19kYXRhLT5hcV9pZCwN Cj4gPj4+IC0JCQkJCQkJcmluZ19kYXRhLT5xZ19pZCwNCj4gPj4+IC0JCQkJCQkJcmluZ19kYXRh LT52Zl9pZCk7DQo+ID4+PiArCQkJCQkJCWFxX2lkLCBxZ19pZCwgdmZfaWQpOw0KPiA+Pj4gICAg CQkJCQlyZXR1cm47DQo+ID4+PiAgICAJCQkJfQ0KPiA+Pj4gICAgCQkJCXJ0ZV9iYmRldl9wbWRf Y2FsbGJhY2tfcHJvY2VzcyhkZXYsDQo+ID4+PiBAQCAtNDAzLDkgKzQwNyw5IEBAIHZyYl9kZXZf aW50ZXJydXB0X2hhbmRsZXIodm9pZCAqY2JfYXJnKQ0KPiA+Pj4gICAgCQkJfQ0KPiA+Pj4gICAg CQl9IGVsc2Ugew0KPiA+Pj4gICAgCQkJcnRlX2JiZGV2X2xvZ19kZWJ1ZygNCj4gPj4+IC0JCQkJ CSJWUkIxIFZGIEludGVycnVwdCByZWNlaXZlZCwgSW5mbyBSaW5nDQo+ID4+IGRhdGE6IDB4JXhc biIsDQo+ID4+PiArCQkJCQkiVlJCIFZGIEludGVycnVwdCByZWNlaXZlZCwgSW5mbyBSaW5nDQo+ ID4+IGRhdGE6IDB4JXhcbiIsDQo+ID4+PiAgICAJCQkJCXJpbmdfZGF0YS0+dmFsKTsNCj4gPj4+ IC0JCQlzd2l0Y2ggKHJpbmdfZGF0YS0+aW50X25iKSB7DQo+ID4+PiArCQkJc3dpdGNoIChpbnRf bmIpIHsNCj4gPj4+ICAgIAkJCWNhc2UgQUNDX1ZGX0lOVF9ETUFfRExfREVTQ19JUlE6DQo+ID4+ PiAgICAJCQljYXNlIEFDQ19WRl9JTlRfRE1BX1VMX0RFU0NfSVJROg0KPiA+Pj4gICAgCQkJY2Fz ZSBBQ0NfVkZfSU5UX0RNQV9GRlRfREVTQ19JUlE6DQo+ID4+PiBAQCAtNDEzLDE0ICs0MTcsMTMg QEAgdnJiX2Rldl9pbnRlcnJ1cHRfaGFuZGxlcih2b2lkICpjYl9hcmcpDQo+ID4+PiAgICAJCQlj YXNlIEFDQ19WRl9JTlRfRE1BX0RMNUdfREVTQ19JUlE6DQo+ID4+PiAgICAJCQljYXNlIEFDQ19W Rl9JTlRfRE1BX01MRF9ERVNDX0lSUToNCj4gPj4+ICAgIAkJCQkvKiBWRnMgYXJlIG5vdCBhd2Fy ZSBvZiB0aGVpciB2Zl9pZCAtIGl0J3Mgc2V0IHRvDQo+ID4+IDAuICAqLw0KPiA+Pj4gLQkJCQly aW5nX2RhdGEtPnZmX2lkID0gMDsNCj4gPj4+ICsJCQkJc2V0X3ZmX2luX3JpbmcocmluZ19kYXRh LCBhY2NfZGV2LQ0KPiA+Pj4gZGV2aWNlX3ZhcmlhbnQsIDApOw0KPiA+Pj4gICAgCQkJCWRlcV9p bnRyX2RldC5xdWV1ZV9pZCA9DQo+ID4+IGdldF9xdWV1ZV9pZF9mcm9tX3JpbmdfaW5mbygNCj4g Pj4+IC0JCQkJCQlkZXYtPmRhdGEsICpyaW5nX2RhdGEpOw0KPiA+Pj4gKwkJCQkJCWRldi0+ZGF0 YSwgKnJpbmdfZGF0YSwNCj4gPj4gYWNjX2Rldi0+ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+Pj4gICAg CQkJCWlmIChkZXFfaW50cl9kZXQucXVldWVfaWQgPT0gVUlOVDE2X01BWCkgew0KPiA+Pj4gICAg CQkJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPj4+ICAgIAkJCQkJCQkiQ291bGRuJ3QgZmluZCBx dWV1ZToNCj4gPj4gYXFfaWQ6ICV1LCBxZ19pZDogJXUiLA0KPiA+Pj4gLQkJCQkJCQlyaW5nX2Rh dGEtPmFxX2lkLA0KPiA+Pj4gLQkJCQkJCQlyaW5nX2RhdGEtPnFnX2lkKTsNCj4gPj4+ICsJCQkJ CQkJYXFfaWQsIHFnX2lkKTsNCj4gPj4+ICAgIAkJCQkJcmV0dXJuOw0KPiA+Pj4gICAgCQkJCX0N Cj4gPj4+ICAgIAkJCQlydGVfYmJkZXZfcG1kX2NhbGxiYWNrX3Byb2Nlc3MoZGV2LA0KPiA+Pj4g QEAgLTQzNSw4ICs0MzgsNyBAQCB2cmJfZGV2X2ludGVycnVwdF9oYW5kbGVyKHZvaWQgKmNiX2Fy ZykNCj4gPj4+ICAgIAkJLyogSW5pdGlhbGl6ZSBJbmZvIFJpbmcgZW50cnkgYW5kIG1vdmUgZm9y d2FyZC4gKi8NCj4gPj4+ICAgIAkJcmluZ19kYXRhLT52YWwgPSAwOw0KPiA+Pj4gICAgCQkrK2Fj Y19kZXYtPmluZm9fcmluZ19oZWFkOw0KPiA+Pj4gLQkJcmluZ19kYXRhID0gYWNjX2Rldi0+aW5m b19yaW5nICsNCj4gPj4+IC0JCQkJKGFjY19kZXYtPmluZm9fcmluZ19oZWFkICYNCj4gPj4gQUND X0lORk9fUklOR19NQVNLKTsNCj4gPj4+ICsJCXJpbmdfZGF0YSA9IGFjY19kZXYtPmluZm9fcmlu ZyArIChhY2NfZGV2LT5pbmZvX3JpbmdfaGVhZCAmDQo+ID4+PiArQUNDX0lORk9fUklOR19NQVNL KTsNCj4gPj4+ICAgIAl9DQo+ID4+PiAgICB9DQo+ID4+Pg0KPiA+Pj4gQEAgLTU1Niw4ICs1NTgs NyBAQCB2cmJfc2V0dXBfcXVldWVzKHN0cnVjdCBydGVfYmJkZXYgKmRldiwgdWludDE2X3QNCj4g Pj4+IG51bV9xdWV1ZXMsIGludCBzb2NrZXRfaWQpDQo+ID4+Pg0KPiA+Pj4gICAgCS8qIENvbmZp Z3VyZSB0YWlsIHBvaW50ZXIgZm9yIHVzZSB3aGVuIFNET05FIGVuYWJsZWQuICovDQo+ID4+PiAg ICAJaWYgKGQtPnRhaWxfcHRycyA9PSBOVUxMKQ0KPiA+Pj4gLQkJZC0+dGFpbF9wdHJzID0gcnRl X3ptYWxsb2Nfc29ja2V0KA0KPiA+Pj4gLQkJCQlkZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLA0K PiA+Pj4gKwkJZC0+dGFpbF9wdHJzID0gcnRlX3ptYWxsb2Nfc29ja2V0KGRldi0+ZGV2aWNlLT5k cml2ZXItPm5hbWUsDQo+ID4+PiAgICAJCQkJVlJCX01BWF9RR1JQUyAqIFZSQl9NQVhfQVFTICoN Cj4gPj4gc2l6ZW9mKHVpbnQzMl90KSwNCj4gPj4+ICAgIAkJCQlSVEVfQ0FDSEVfTElORV9TSVpF LCBzb2NrZXRfaWQpOw0KPiA+Pj4gICAgCWlmIChkLT50YWlsX3B0cnMgPT0gTlVMTCkgew0KPiA+ Pj4gQEAgLTc4Myw3ICs3ODQsNyBAQCB2cmJfZmluZF9mcmVlX3F1ZXVlX2lkeChzdHJ1Y3QgcnRl X2JiZGV2ICpkZXYsDQo+ID4+PiAgICAJCQkvKiBNYXJrIHRoZSBRdWV1ZSBhcyBhc3NpZ25lZC4g Ki8NCj4gPj4+ICAgIAkJCWQtPnFfYXNzaWduZWRfYml0X21hcFtncm91cF9pZHhdIHw9ICgxVUxM IDw8DQo+ID4+IGFxX2lkeCk7DQo+ID4+PiAgICAJCQkvKiBSZXBvcnQgdGhlIEFRIEluZGV4LiAq Lw0KPiA+Pj4gLQkJCXJldHVybiAoZ3JvdXBfaWR4IDw8IFZSQjFfR1JQX0lEX1NISUZUKSArIGFx X2lkeDsNCj4gPj4+ICsJCQlyZXR1cm4gcXVldWVfaW5kZXgoZ3JvdXBfaWR4LCBhcV9pZHgsIGQt DQo+ID4+PiBkZXZpY2VfdmFyaWFudCk7DQo+ID4+PiAgICAJCX0NCj4gPj4+ICAgIAl9DQo+ID4+ PiAgICAJcnRlX2JiZGV2X2xvZyhJTkZPLCAiRmFpbGVkIHRvIGZpbmQgZnJlZSBxdWV1ZSBvbiAl cywgcHJpb3JpdHkNCj4gPj4+ICV1IiwgQEAgLTkyMiw5ICs5MjMsMTAgQEAgdnJiX3F1ZXVlX3Nl dHVwKHN0cnVjdCBydGVfYmJkZXYgKmRldiwNCj4gPj4+IHVpbnQxNl90DQo+ID4+IHF1ZXVlX2lk LA0KPiA+Pj4gICAgCQl9DQo+ID4+PiAgICAJfQ0KPiA+Pj4NCj4gPj4+IC0JcS0+cWdycF9pZCA9 IChxX2lkeCA+PiBWUkIxX0dSUF9JRF9TSElGVCkgJiAweEY7DQo+ID4+PiAtCXEtPnZmX2lkID0g KHFfaWR4ID4+IFZSQjFfVkZfSURfU0hJRlQpICAmIDB4M0Y7DQo+ID4+PiAtCXEtPmFxX2lkID0g cV9pZHggJiAweEY7DQo+ID4+PiArCXEtPnFncnBfaWQgPSBxZ19mcm9tX3EocV9pZHgsIGQtPmRl dmljZV92YXJpYW50KTsNCj4gPj4+ICsJcS0+dmZfaWQgPSB2Zl9mcm9tX3EocV9pZHgsIGQtPmRl dmljZV92YXJpYW50KTsNCj4gPj4+ICsJcS0+YXFfaWQgPSBhcV9mcm9tX3EocV9pZHgsIGQtPmRl dmljZV92YXJpYW50KTsNCj4gPj4+ICsNCj4gPj4+ICAgIAlxLT5hcV9kZXB0aCA9IDA7DQo+ID4+ PiAgICAJaWYgKGNvbmYtPm9wX3R5cGUgPT0gIFJURV9CQkRFVl9PUF9UVVJCT19ERUMpDQo+ID4+ PiAgICAJCXEtPmFxX2RlcHRoID0gKDEgPDwgZC0+YWNjX2NvbmYucV91bF80Zy5hcV9kZXB0aF9s b2cyKTsNCj4gPj4+IEBAIC0xMzExLDcgKzEzMTMsNyBAQCB2cmJfZmN3X3RkX2ZpbGwoY29uc3Qg c3RydWN0IHJ0ZV9iYmRldl9kZWNfb3ANCj4gPj4gKm9wLCBzdHJ1Y3QgYWNjX2Zjd190ZCAqZmN3 KQ0KPiA+Pj4gICAgCQlmY3ctPmJ5cGFzc190ZXEgPSAwOw0KPiA+Pj4gICAgCX0NCj4gPj4+DQo+ ID4+PiAtCWZjdy0+Y29kZV9ibG9ja19tb2RlID0gMTsgLyogRklYTUUgKi8NCj4gPj4+ICsJZmN3 LT5jb2RlX2Jsb2NrX21vZGUgPSAxOw0KPiA+Pg0KPiA+PiBDb3VsZCB5b3UgcmVtaW5kIG1lIHdo YXQgd2FzIHRoZSBpc3N1ZT8NCj4gPg0KPiA+IEhpc3RvcmljYWxseSB0aGVyZSB3YXMgdGhlIGlu dGVudGlvbiB0byB1c2UgYSBkaWZmZXJlbmNlIGZvcm1hdCBvcHRpb24gaW4gdGhlDQo+IGZjdyB0 byBoZWxwIHdpdGggdGhlIFRCIG1vZGUgYnV0IHRoYXQgaXMgbm90IGNvbnNpZGVyZWQgYW55bW9y ZS4NCj4gDQo+IE9rLg0KPiANCj4gPg0KPiA+Pg0KPiA+Pj4gICAgCWZjdy0+dHVyYm9fY3JjX3R5 cGUgPSBjaGVja19iaXQob3AtPnR1cmJvX2RlYy5vcF9mbGFncywNCj4gPj4+ICAgIAkJCVJURV9C QkRFVl9UVVJCT19DUkNfVFlQRV8yNEIpOw0KPiA+Pj4NCj4gPj4+IEBAIC0xNDcxLDggKzE0NzMs OCBAQCB2cmJfZG1hX2Rlc2NfdGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcA0KPiA+PiAq b3AsDQo+ID4+PiAgICAJaWYgKG9wLT50dXJib19kZWMuY29kZV9ibG9ja19tb2RlID09DQo+ID4+ IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spIHsNCj4gPj4+ICAgIAkJayA9IG9wLT50dXJib19k ZWMudGJfcGFyYW1zLmtfcG9zOw0KPiA+Pj4gICAgCQllID0gKHIgPCBvcC0+dHVyYm9fZGVjLnRi X3BhcmFtcy5jYWIpDQo+ID4+PiAtCQkJPyBvcC0+dHVyYm9fZGVjLnRiX3BhcmFtcy5lYQ0KPiA+ Pj4gLQkJCTogb3AtPnR1cmJvX2RlYy50Yl9wYXJhbXMuZWI7DQo+ID4+PiArCQkJCT8gb3AtPnR1 cmJvX2RlYy50Yl9wYXJhbXMuZWENCj4gPj4+ICsJCQkJOiBvcC0+dHVyYm9fZGVjLnRiX3BhcmFt cy5lYjsNCj4gPj4+ICAgIAl9IGVsc2Ugew0KPiA+Pj4gICAgCQlrID0gb3AtPnR1cmJvX2RlYy5j Yl9wYXJhbXMuazsNCj4gPj4+ICAgIAkJZSA9IG9wLT50dXJib19kZWMuY2JfcGFyYW1zLmU7DQo+ ID4+PiBAQCAtMTcyNiw3ICsxNzI4LDcgQEAgdnJiX2RtYV9kZXNjX2xkX3VwZGF0ZShzdHJ1Y3QN Cj4gPj4gcnRlX2JiZGV2X2RlY19vcCAqb3AsDQo+ID4+PiAgICAJZGVzYy0+b3BfYWRkciA9IG9w Ow0KPiA+Pj4gICAgfQ0KPiA+Pj4NCj4gPj4+IC0vKiBFbnF1ZXVlIG9uZSBlbmNvZGUgb3BlcmF0 aW9ucyBmb3IgZGV2aWNlIGluIENCIG1vZGUgKi8NCj4gPj4+ICsvKiBFbnF1ZXVlIG9uZSBlbmNv ZGUgb3BlcmF0aW9ucyBmb3IgZGV2aWNlIGluIENCIG1vZGUuICovDQo+ID4+PiAgICBzdGF0aWMg aW5saW5lIGludA0KPiA+Pj4gICAgZW5xdWV1ZV9lbmNfb25lX29wX2NiKHN0cnVjdCBhY2NfcXVl dWUgKnEsIHN0cnVjdA0KPiA+Pj4gcnRlX2JiZGV2X2VuY19vcA0KPiA+PiAqb3AsDQo+ID4+PiAg ICAJCXVpbnQxNl90IHRvdGFsX2VucXVldWVkX2NicykNCj4gPj4+IEBAIC0yMjYzLDcgKzIyNjUs NyBAQCB2cmJfZW5xdWV1ZV9sZHBjX2RlY19vbmVfb3BfdGIoc3RydWN0DQo+ID4+IGFjY19xdWV1 ZSAqcSwgc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3AgKm9wLA0KPiA+Pj4gICAgCXJldHVybiBjdXJy ZW50X2VucXVldWVkX2NiczsNCj4gPj4+ICAgIH0NCj4gPj4+DQo+ID4+PiAtLyogRW5xdWV1ZSBv bmUgZGVjb2RlIG9wZXJhdGlvbnMgZm9yIGRldmljZSBpbiBUQiBtb2RlICovDQo+ID4+PiArLyog RW5xdWV1ZSBvbmUgZGVjb2RlIG9wZXJhdGlvbnMgZm9yIGRldmljZSBpbiBUQiBtb2RlLiAqLw0K PiA+Pj4gICAgc3RhdGljIGlubGluZSBpbnQNCj4gPj4+ICAgIGVucXVldWVfZGVjX29uZV9vcF90 YihzdHJ1Y3QgYWNjX3F1ZXVlICpxLCBzdHJ1Y3QNCj4gPj4+IHJ0ZV9iYmRldl9kZWNfb3ANCj4g Pj4gKm9wLA0KPiA+Pj4gICAgCQl1aW50MTZfdCB0b3RhbF9lbnF1ZXVlZF9jYnMsIHVpbnQ4X3Qg Y2JzX2luX3RiKQ0KPiA+DQoNCg==