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 45C6B45AD8; Mon, 7 Oct 2024 18:45:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2D8624026C; Mon, 7 Oct 2024 18:45:27 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) by mails.dpdk.org (Postfix) with ESMTP id DE5414003C for ; Mon, 7 Oct 2024 18:45:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1728319526; x=1759855526; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=FGvQnZOPgsZE3N2EREN/9F8qNLU+EYvxi1hYepd1/Kw=; b=f8ot6LutHFm8353gLg42rGBj/XhOd7fDMEWbzPsQrHz/Je5UvQxLrYth 99xcQCZqd8N+rmRGVYX9r55lyXXkhqPs91VhVZz2Zwzft4+OfzglWEHfc FiKGEw0W0/9pan1QxWOKW5qbnvGDBl8m3Zef/nYyc3Lo84TEiAre9uygc aeaIVHjq86CfOYbX5G4DZdNukiH//bnOErakdAi3NvKuKokL74BXP7zto jFAv+ixIVQ6h+HpC6ycD0+eqHwYYb3SnMHDx85mRFuIBn4yFaUTM5W9XQ 2qiCOBVh/pbU2/r1UlcSS+oKhgaipzYnz8RXgevIGoVsa1qWAjMOWwZpl w==; X-CSE-ConnectionGUID: 6f0bOUqpQIGnS+pZfbvwmA== X-CSE-MsgGUID: yW9a35YyQuG6ju0emCPF8A== X-IronPort-AV: E=McAfee;i="6700,10204,11218"; a="31180082" X-IronPort-AV: E=Sophos;i="6.11,184,1725346800"; d="scan'208";a="31180082" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Oct 2024 09:45:24 -0700 X-CSE-ConnectionGUID: ldsWJemXTWeOJ4UZ3rwlWg== X-CSE-MsgGUID: yYJBvsrJTsGoLjN12tTreQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,184,1725346800"; d="scan'208";a="79532853" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmviesa003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 07 Oct 2024 09:45:24 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.39; Mon, 7 Oct 2024 09:45:23 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Mon, 7 Oct 2024 09:45:23 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.170) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Mon, 7 Oct 2024 09:45:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FfnLSbbSVUhJi6x5N0cI93+cKVNlb6lr9s+uEaiblO4Gmmj+yaCrlI1DE+8KABiIwdbeQ2T4m8AbENOEQ4Io/7h6yeDQ3KMUqQyZIlW/8hqqL14L+mabW425dhWwgXmAMKQXEn9yP7HwIjd5bOC4dRXrF4h6k2ET1hnFZlHpbPT5e0N0UpSLDDU17P19mZ5hPXL/VFZZwrAchVIFjaAxee1M89qXY9ETNRzKf0Wygeehzv+Nih4Xrk6Ey1c4BF49yDpYHy7j8z4dvoRH84xtwDX2p9ElW7wYM1LQusncvtH0sreHQgE7xxsjuBtsj2mkt4HbIvszSN8zyG4PVAKRtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=FGvQnZOPgsZE3N2EREN/9F8qNLU+EYvxi1hYepd1/Kw=; b=QSEOXt+MKMhvx9RsEc4K3r5MLUcWA5Od4Hri00Mn/eYvnGou6hbZPmjD893Prc6AY3VmD8DYNfTFOY2lTFz+SuN1eF7r+hUq4JXFneNl/NaB33qUtPB7aL9UcdRHdhX4Y71CRtG5uybIGA4t1nqeiQ8+fO61QWto/oRppJ11hD+hv+QIIyRn0DAtQ+zjwsbrmlb1P7fpoOayEn/V67hu7sonKVQbBQCRFvhdHuGyavie0NGEaQqdL5IRCP+/wCngHwuilDuKJB2iix8uc5e+8LHDittWC7XXokGStesM/bcnNBMZE/EpYy1g4Q+orbpNGyf7/RdsFs/uEEzOiZ32Eg== 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 SJ0PR11MB6694.namprd11.prod.outlook.com (2603:10b6:a03:44d::17) by CH0PR11MB5316.namprd11.prod.outlook.com (2603:10b6:610:bf::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.23; Mon, 7 Oct 2024 16:45:20 +0000 Received: from SJ0PR11MB6694.namprd11.prod.outlook.com ([fe80::37fd:2328:c9e0:9d57]) by SJ0PR11MB6694.namprd11.prod.outlook.com ([fe80::37fd:2328:c9e0:9d57%4]) with mapi id 15.20.8026.020; Mon, 7 Oct 2024 16:45:20 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "Vargas, Hernan" , "dev@dpdk.org" , "gakhil@marvell.com" , "trix@redhat.com" CC: "Zhang, Qi Z" Subject: RE: [PATCH v2 02/10] baseband/acc: queue allocation refactor Thread-Topic: [PATCH v2 02/10] baseband/acc: queue allocation refactor Thread-Index: AQHbFdZqjkZi2vseFEuU/GWmsUJxebJ2gIaAgABkdRCABCasgIAAeBOQ Date: Mon, 7 Oct 2024 16:45:20 +0000 Message-ID: References: <20241003204912.131319-1-hernan.vargas@intel.com> <20241003204912.131319-3-hernan.vargas@intel.com> <8b2c6e6d-ec5b-431f-bda5-f596fabe0443@redhat.com> In-Reply-To: <8b2c6e6d-ec5b-431f-bda5-f596fabe0443@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR11MB6694:EE_|CH0PR11MB5316:EE_ x-ms-office365-filtering-correlation-id: cbed7505-2a65-4865-7d84-08dce6ef6e77 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?NjFObWxuSEJBTmE1THJrSU9jaW1seXYrN2FUZmlJYUFGRHFNakpwQlFwOUJX?= =?utf-8?B?YUlpQXNlM1ZhcFpKLzN3ZGZCcDAyRDFCRCtXQkNWRy9YSGZhcE04Y0s3OFlt?= =?utf-8?B?eG9XS3BUaytKbjEwanN1djR0Q1RRQSszRzlDT1BFQVhVekVxWXA2cEwrYTIr?= =?utf-8?B?cmVJcTRqbk9kVVYwVENmV0xncUlsVHNLQzF4S3ZFQ0psWlRxVmhDbS9OTGdp?= =?utf-8?B?OXhHTm5hb0FSYXFNeEV4M2VJMFppK1pvVmF5K0QxditMNnRrNnVJSklneCtT?= =?utf-8?B?dVlKNThBSWJNQmF6NDhYMXY0cXIvQXZRL3ZyRHJpYVpaNGFwc1JhcXZKejlD?= =?utf-8?B?TTBxWVJ6MVlLdlJZc1c2em44Y2lhQlp3M3VpOU9Ob2NXKzA2c1EwZ21uM2Zy?= =?utf-8?B?bmQ5aWlOeDJvcElSaHd2RWpKVlh2K0dhNHRDOTdCYlgwQU1ENlFRMjlVNVNu?= =?utf-8?B?bU9xeGVQQk1pamgwb2NteFBBUFg0Q2E0QzlQeU5ySUF4NmFaaDJkMzNJRUlk?= =?utf-8?B?ckNqNjNycExQM2oydGVKRFZrM2NRUzYxTXQ3eWMyb24xa2Nkb2s1cnlaWGJ5?= =?utf-8?B?VXhITzdURjRVcTk0VUdzSnd2WFkzMktFSFhucndYUDJFdURMZmt1NHBuY3Vw?= =?utf-8?B?M0JWeXltQ0RHNWt4QnpkSlR3ajZYWGxCdXErcWp1enZkaXE0NythaVE2RTVL?= =?utf-8?B?VXRJTXlSOTNaTWJOVkhGK1lNNTVDTnl2RTlkUHM5bkZFaVpkcXhQN25sbU9F?= =?utf-8?B?dmt3S21MSFVFNGtXUFFBaGpIS3hxRjk2OGUzT1NkODRha2V3T2dGUms2cjBG?= =?utf-8?B?MWwzT1dETUNqQ2luaHRtckpTcEJHbmFPc1p1M3BNVmlRa3hxL3VWQW5ydkFG?= =?utf-8?B?cjRud0hqVW9JcTRrMGdmYjBOL1ZGUHJjVHVFempTT1p4WkNVeE11V3gzOHE3?= =?utf-8?B?OUU5ZENkSjlrc3drOVA2WERLUm1qY3JLMDJCcWNySUUwRHpuZHNuTnppVkJZ?= =?utf-8?B?YjdDZk1DRDdKdGkzaFlKUlRMUzYwMG1tM3Z2MkxIdkx2VmZxcU4rMnppN1ho?= =?utf-8?B?UnFjclZWOHRVMEoxRnJyNnM0TU9ha2Y0bVZoekgyblJwVS8zaURDZUU5cU91?= =?utf-8?B?K3VyOEFDN29GTFEwTXROQ3ZKTlRnTU12RXF3S1pVQjZXUHVoTUppdEhTRTg1?= =?utf-8?B?ODZndE02blNidmVFMThhTExER0dRenZNbDFEbE04SzVURGtRekdSeTRPd1ZH?= =?utf-8?B?QkliN083akpDTjRGSTJtRitWYzFOK0UyMmlvQVVaVnJtT1dqVWwyTUNPWjRG?= =?utf-8?B?Y2NBMUpXL2M1Qkh3WG5CREVXTkhqdE1vYmtrZEg4M2xtbUZaYjA3dEVHTlVw?= =?utf-8?B?c0t0S29tQzg2elBmeXR3T01BUnJlZVlzRzhVTjYrT0pMOG9Cc3hGQ0tkMnd2?= =?utf-8?B?bnBnNUpuUHF5RTFEQ1lLQ01LV1MwZGpOMGpNVUR2OGl2Z0pKelZ5VmY1MVFZ?= =?utf-8?B?SXRYWE13aUdwUHE4YmxsbEJSWlJPbUpkVndydFFOK0ZCQUNIUjdoRVVMNUxw?= =?utf-8?B?OXZTWnh1U1pyRVZhbjBoc2FKdHNmWktKNlZydXRKTG1FNzRPdnRxN01YNWxj?= =?utf-8?B?UkVkdTN1MitDUWlUekdCaFlBWkZPT1NRWER5OGFCTXU2UjB6MEdpOXM2OURK?= =?utf-8?B?WUpxNEJET25nVjg0bTNta1laYTlUVU04ejdTL1ZMaDg1T2o3ZFZ1NWYvK2FZ?= =?utf-8?B?YkRKYlJyTDVIeHplMzF3WnpSSUZiQ0lWY2lhVkNDYVpNcDRDZjRuNnErSTZi?= =?utf-8?B?U3FYdFJuenlwM3liRHZrdz09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB6694.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Vm1yTjdkTFZoWlRpNlBjVlZhVEdKWXB3R2pmQmlaKzRKSCt2Vlh4UVQyNTNM?= =?utf-8?B?dTdUQXF1NVdkbmM3YnVnNEZOczhScmhOczAveFBtMElHQlBmYTkvaEY5UU13?= =?utf-8?B?VUhaZW1QYmM3ZHZIaWl5Qk0zM2c0clhVU0xRdFNZc3FyZlg0cUJjWGQ3U1hq?= =?utf-8?B?WHFMYWp0N0NIU1dlbjhaTnB6WXFwV1B2RitXZERRK213T2wvcC9tak1rcUNU?= =?utf-8?B?ZzdpSmsxaFJkeXErVEhXbGhhb25CbTNYRW5SLzJyMjVwOW1vdDc3aUZhYkQ5?= =?utf-8?B?cEo3emVicDFvMnJBRkFJT0RtbjFqVzBGbndNb0t1bm1oRGdSL01VMSs2R2hN?= =?utf-8?B?T1FMbWZwQ1I0TnJlTUE2MW03K3FDUWVDZW14QW84S3JpNDdXTEZHai9ZNmVz?= =?utf-8?B?dHhJSm9pZ0FGWFV0eTJXN3YzVFdxV202Z0dvNGg3QWVOZFJmd05XY0VWWmhv?= =?utf-8?B?dTBhTzNKSTdNenVBZ0piaE1Tdmhha2hyZ2w1UmZMb1BDS0dEM1FtcnM2eHpN?= =?utf-8?B?dmVmVEJrdkhHeGI2V1V5TEh3THFuWUNBMUhPUHZqS2wxc2FtZDZiQTQ1T1Mx?= =?utf-8?B?SXgweEFIcnZBVTh0bzVwYnk4S2VYS2d6UXlJS3UvWTl5bUcrdXpFZlpwaVRH?= =?utf-8?B?VEhnN3hGaTNwaEJadzZ3WGcyVm9WWWJ2bVd0WVhzNFRxZGROdURjMlkxYmkz?= =?utf-8?B?RUVEdVl0UFRvTk5NOUZERmJoelpHcmZTWHd0ZHNSbjhsTjN0cEF2eUJpVFhE?= =?utf-8?B?NUFFZlRXbWdoSDdsOFQ4MjA2U1lWNXNpQzdtcU1lcTlCUWlnbTNyZGV6c05j?= =?utf-8?B?eWRNNEJSUmN1anphcUJOWkxsU0d6Sjd3dnRMTVFTclloUVA1cTlpRXFKTXFU?= =?utf-8?B?QmhCbGh6K0w5NHBtWUh1TElpdmhyNFplbzNTQWFhcDVINE9TR2oyZmRrT0xl?= =?utf-8?B?MS96SFlYZHBRU3AwakRrWDdRRVZ5NzZKZWdCN2hFaFdFQ094UkVXU29idm9p?= =?utf-8?B?U3JHOVhnWjNVTzJ3ckIrbEFXcmFub21namxBWWkxZDlRWHBXbGpNbWp0RkZ6?= =?utf-8?B?TFY4MTZDekM5YWh1a1VwcWhsSk4yaUFxUWlXbnNLSUJmSXJVaTZDcmtScll6?= =?utf-8?B?dTRUdjVNQ3NwUHkxL1Y4TFBXWWs2ampuL2pGSm5pS0RJU1ZzRTlkY09tcjd6?= =?utf-8?B?OGgzUGk3RkM3QWtzNmNDaHJQd3NucFM1UlhSRGExcWNzSlR1ZFN2UUFkSHNo?= =?utf-8?B?ZVU5cVcvTmhtRjZMMW5aTGxLWmF4ZDBkK2dNT0dtTTgrYTJFa2tSSFVDTW5k?= =?utf-8?B?R1VZMmtJbWg0eVJDQlpTZkF2UWlRWnpCYzcyOWVnNXBUSENXcmREaWlVb0lj?= =?utf-8?B?UStvcXFaeUF1M01FdGFiY2tEbHpNaS95RE9RSzVkWmRnS2NIUS9uMyt1ZnhL?= =?utf-8?B?dU1BK0hQdGplcEM2cktObkE4QUg5NXRwMGowaXlOZ3kxZm84b1pZNWprUVdP?= =?utf-8?B?SWw0RXV0Nm1iYzlmVDBWc1hFNVVveHY2MEN0TXRtS0hQOHRmby9wdmFydUFB?= =?utf-8?B?UlA1M0xwUGhWV3NkbWtyRUxENGV2c25GUEJGUlJmSXpIbXNZSVZ1WmFGOXlQ?= =?utf-8?B?QlpEVW93S0toVklsb0ZERlE4d2pOa0RPWTBWUWZHN1ovMlhSTFZsQldySzdI?= =?utf-8?B?d0poTlVNclpMb2tjaDgzSzI1aW1aTTg4WFhFekRkb3l2MENjcjh2Y21jZGpU?= =?utf-8?B?c3AxTVdmc0xiR2gzTFdRS01vQXIwazVxYVN5MTVlYWMrc205MmZJUlhqUDlt?= =?utf-8?B?emRTUHRYMWFhTW1ydEc5ZDFScS81bEU4bnVHWmYySUIyVzNQS0pDVW5iQXAx?= =?utf-8?B?STFTZWNxQVhOblIwSUxsUFRNVWx6QklTSEFUYnN5S1RRVzdUQW9pb1lLaTJL?= =?utf-8?B?VjVUVzgrWW01b0VYRzN1TVk4c2xwRi9oa3BzSDN1SFQzNk5uOWpOMWxGd3Qv?= =?utf-8?B?Q0NJSGV3Ylo1QnVlMVRMVktoQ3Q0TmRpRWxOUk9UNU1TS3h1c1d2U0Q4S2tP?= =?utf-8?B?ZjNmM0hCTm1PTmdZMk4zR0RFRk9xMEZxd1p3Zm00VDhZclF0ZENVTm11bGtZ?= =?utf-8?Q?9iV+3EjEPKt4m8kmBti95CDgq?= 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: SJ0PR11MB6694.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cbed7505-2a65-4865-7d84-08dce6ef6e77 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Oct 2024 16:45:20.4172 (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: 7TgCJul8p+k1DkAPq3VcmO5VqzINuG6I7d6RLqwnLvcoPpxilnOlLZvznpCF9jU6yKaFSsicIJz42I9RPL+D2PiTJkeJ+UlXFMzeTp9H0Y0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB5316 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 bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBNb25kYXks IE9jdG9iZXIgNywgMjAyNCAyOjMxIEFNDQo+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNvbGFz LmNoYXV0cnVAaW50ZWwuY29tPjsgVmFyZ2FzLCBIZXJuYW4NCj4gPGhlcm5hbi52YXJnYXNAaW50 ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBnYWtoaWxAbWFydmVsbC5jb207DQo+IHRyaXhAcmVkaGF0 LmNvbQ0KPiBDYzogWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSZTogW1BBVENIIHYyIDAyLzEwXSBiYXNlYmFuZC9hY2M6IHF1ZXVlIGFsbG9jYXRpb24gcmVm YWN0b3INCj4gDQo+IEhpIE5pY29sYXMsDQo+IA0KPiBPbiAxMC80LzI0IDIwOjE5LCBDaGF1dHJ1 LCBOaWNvbGFzIHdyb3RlOg0KPiA+IEhpIE1heGltZSwNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxp bkByZWRoYXQuY29tPg0KPiA+PiBTZW50OiBGcmlkYXksIE9jdG9iZXIgNCwgMjAyNCA1OjA4IEFN DQo+ID4+IFRvOiBWYXJnYXMsIEhlcm5hbiA8aGVybmFuLnZhcmdhc0BpbnRlbC5jb20+OyBkZXZA ZHBkay5vcmc7DQo+ID4+IGdha2hpbEBtYXJ2ZWxsLmNvbTsgdHJpeEByZWRoYXQuY29tDQo+ID4+ IENjOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNvbGFzLmNoYXV0cnVAaW50ZWwuY29tPjsgWmhhbmcs IFFpIFoNCj4gPj4gPHFpLnouemhhbmdAaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW1BB VENIIHYyIDAyLzEwXSBiYXNlYmFuZC9hY2M6IHF1ZXVlIGFsbG9jYXRpb24gcmVmYWN0b3INCj4g Pj4NCj4gPj4NCj4gPj4NCj4gPj4gT24gMTAvMy8yNCAyMjo0OSwgSGVybmFuIFZhcmdhcyB3cm90 ZToNCj4gPj4+IFJlZmFjdG9yIHRvIG1hbmFnZSBxdWV1ZSBtZW1vcnkgcGVyIG9wZXJhdGlvbiBt b3JlIGZsZXhpYmx5IGZvciBWUkINCj4gPj4+IGRldmljZXMuDQo+ID4+Pg0KPiA+Pj4gU2lnbmVk LW9mZi1ieTogSGVybmFuIFZhcmdhcyA8aGVybmFuLnZhcmdhc0BpbnRlbC5jb20+DQo+ID4+PiAt LS0NCj4gPj4+ICAgIGRyaXZlcnMvYmFzZWJhbmQvYWNjL2FjY19jb21tb24uaCAgfCAgIDUgKw0K PiA+Pj4gICAgZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9wbWQuYyB8IDIxNCArKysrKysr KysrKysrKysrKysrKy0tLS0tLQ0KPiAtLS0NCj4gPj4+ICAgIDIgZmlsZXMgY2hhbmdlZCwgMTU3 IGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9hY2NfY29tbW9uLmgNCj4gPj4+IGIvZHJpdmVycy9iYXNl YmFuZC9hY2MvYWNjX2NvbW1vbi5oDQo+ID4+PiBpbmRleCBiMWY4MWU3M2U2OGQuLmFkYmFjMGRj Y2E3MCAxMDA2NDQNCj4gPj4+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL2FjY19jb21tb24u aA0KPiA+Pj4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MvYWNjX2NvbW1vbi5oDQo+ID4+PiBA QCAtMTQ5LDYgKzE0OSw4IEBADQo+ID4+PiAgICAjZGVmaW5lIFZSQjJfVkZfSURfU0hJRlQgICAg IDYNCj4gPj4+DQo+ID4+PiAgICAjZGVmaW5lIEFDQ19NQVhfRkZUX1dJTiAgICAgIDE2DQo+ID4+ PiArI2RlZmluZSBBQ0NfTUFYX1JJTkdfQlVGRkVSICA2NA0KPiA+Pj4gKyNkZWZpbmUgVlJCMl9N QVhfUV9QRVJfT1AgMjU2DQo+ID4+Pg0KPiA+Pj4gICAgZXh0ZXJuIGludCBhY2NfY29tbW9uX2xv Z3R5cGU7DQo+ID4+Pg0KPiA+Pj4gQEAgLTU4MSw2ICs1ODMsOSBAQCBzdHJ1Y3QgYWNjX2Rldmlj ZSB7DQo+ID4+PiAgICAJdm9pZCAqc3dfcmluZ3NfYmFzZTsgIC8qIEJhc2UgYWRkciBvZiB1bi1h bGlnbmVkIG1lbW9yeSBmb3Igc3cNCj4gPj4+IHJpbmdzDQo+ID4+ICovDQo+ID4+PiAgICAJdm9p ZCAqc3dfcmluZ3M7ICAvKiA2NE1CcyBvZiA2NE1CIGFsaWduZWQgbWVtb3J5IGZvciBzdyByaW5n cyAqLw0KPiA+Pj4gICAgCXJ0ZV9pb3ZhX3Qgc3dfcmluZ3NfaW92YTsgIC8qIElPVkEgYWRkcmVz cyBvZiBzd19yaW5ncyAqLw0KPiA+Pj4gKwl2b2lkICpzd19yaW5nc19hcnJheVtBQ0NfTUFYX1JJ TkdfQlVGRkVSXTsgIC8qIEFycmF5IG9mIGFsaWduZWQNCj4gPj4gbWVtb3J5IGZvciBzdyByaW5n cy4gKi8NCj4gPj4+ICsJcnRlX2lvdmFfdCBzd19yaW5nc19pb3ZhX2FycmF5W0FDQ19NQVhfUklO R19CVUZGRVJdOyAgLyogQXJyYXkNCj4gPj4gb2Ygc3dfcmluZ3MgSU9WQS4gKi8NCj4gPj4+ICsJ dWludDMyX3QgcXVldWVfaW5kZXhbQUNDX01BWF9SSU5HX0JVRkZFUl07IC8qIFRyYWNraW5nIHF1 ZXVlDQo+ID4+IGluZGV4DQo+ID4+PiArcGVyIHJpbmcgYnVmZmVyLiAqLw0KPiA+Pj4gICAgCS8q IFZpcnR1YWwgYWRkcmVzcyBvZiB0aGUgaW5mbyBtZW1vcnkgcm91dGVkIHRvIHRoZSB0aGlzIGZ1 bmN0aW9uIHVuZGVyDQo+ID4+PiAgICAJICogb3BlcmF0aW9uLCB3aGV0aGVyIGl0IGlzIFBGIG9y IFZGLg0KPiA+Pj4gICAgCSAqIEhXIG1heSBETUEgaW5mb3JtYXRpb24gZGF0YSBhdCB0aGlzIGxv Y2F0aW9uIGFzeW5jaHJvbm91c2x5DQo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFu ZC9hY2MvcnRlX3ZyYl9wbWQuYw0KPiA+Pj4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfdnJi X3BtZC5jDQo+ID4+PiBpbmRleCBiYWUwMWU1NjM4MjYuLjJjNjJhNWIzZTMyOSAxMDA2NDQNCj4g Pj4+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+ICsrKyBi L2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+IEBAIC0yODEsNyArMjgx LDcgQEAgZmV0Y2hfYWNjX2NvbmZpZyhzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYpDQo+ID4+PiAgICAJ CS8qIENoZWNrIHRoZSBkZXB0aCBvZiB0aGUgQVFzLiAqLw0KPiA+Pj4gICAgCQlyZWdfbGVuMCA9 IGFjY19yZWdfcmVhZChkLCBkLT5yZWdfYWRkci0+ZGVwdGhfbG9nMF9vZmZzZXQpOw0KPiA+Pj4g ICAgCQlyZWdfbGVuMSA9IGFjY19yZWdfcmVhZChkLCBkLT5yZWdfYWRkci0+ZGVwdGhfbG9nMV9v ZmZzZXQpOw0KPiA+Pj4gLQkJZm9yIChhY2MgPSAwOyBhY2MgPCBOVU1fQUNDOyBhY2MrKykgew0K PiA+Pj4gKwkJZm9yIChhY2MgPSAwOyBhY2MgPCBWUkIxX05VTV9BQ0NTOyBhY2MrKykgew0KPiA+ Pj4gICAgCQkJcXRvcEZyb21BY2MoJnFfdG9wLCBhY2MsIGFjY19jb25mKTsNCj4gPj4+ICAgIAkJ CWlmIChxX3RvcC0+Zmlyc3RfcWdyb3VwX2luZGV4IDwNCj4gPj4gQUNDX05VTV9RR1JQU19QRVJf V09SRCkNCj4gPj4+ICAgIAkJCQlxX3RvcC0+YXFfZGVwdGhfbG9nMiA9DQo+ID4+PiBAQCAtMjkw LDcgKzI5MCw3IEBAIGZldGNoX2FjY19jb25maWcoc3RydWN0IHJ0ZV9iYmRldiAqZGV2KQ0KPiA+ Pj4gICAgCQkJCXFfdG9wLT5hcV9kZXB0aF9sb2cyID0gKHJlZ19sZW4xID4+ICgocV90b3AtDQo+ ID4+PiBmaXJzdF9xZ3JvdXBfaW5kZXggLQ0KPiA+Pj4NCj4gPj4gCUFDQ19OVU1fUUdSUFNfUEVS X1dPUkQpICogNCkpICYgMHhGOw0KPiA+Pj4gICAgCQl9DQo+ID4+PiAtCX0gZWxzZSB7DQo+ID4+ PiArCX0gZWxzZSBpZiAoZC0+ZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKSB7DQo+ID4+ PiAgICAJCXJlZzAgPSBhY2NfcmVnX3JlYWQoZCwgZC0+cmVnX2FkZHItPnFtYW5fZ3JvdXBfZnVu Yyk7DQo+ID4+PiAgICAJCXJlZzEgPSBhY2NfcmVnX3JlYWQoZCwgZC0+cmVnX2FkZHItPnFtYW5f Z3JvdXBfZnVuYyArIDQpOw0KPiA+Pj4gICAgCQlyZWcyID0gYWNjX3JlZ19yZWFkKGQsIGQtPnJl Z19hZGRyLT5xbWFuX2dyb3VwX2Z1bmMgKyA4KTsNCj4gPj4gQEANCj4gPj4+IC0zMDgsNyArMzA4 LDcgQEAgZmV0Y2hfYWNjX2NvbmZpZyhzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYpDQo+ID4+PiAgICAJ CQkJCWlkeCA9IChyZWcyID4+ICgocWcgJQ0KPiA+PiBBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEKSAq IDQpKSAmIDB4NzsNCj4gPj4+ICAgIAkJCQllbHNlDQo+ID4+PiAgICAJCQkJCWlkeCA9IChyZWcz ID4+ICgocWcgJQ0KPiA+PiBBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEKSAqIDQpKSAmIDB4NzsNCj4g Pj4+IC0JCQkJaWYgKGlkeCA8IFZSQl9OVU1fQUNDUykgew0KPiA+Pj4gKwkJCQlpZiAoaWR4IDwg VlJCMl9OVU1fQUNDUykgew0KPiA+Pj4gICAgCQkJCQlhY2MgPSBxbWFuX2Z1bmNfaWRbaWR4XTsN Cj4gPj4+ICAgIAkJCQkJdXBkYXRlUXRvcChhY2MsIHFnLCBhY2NfY29uZiwgZCk7DQo+ID4+PiAg ICAJCQkJfQ0KPiA+Pj4gQEAgLTMyMSw3ICszMjEsNyBAQCBmZXRjaF9hY2NfY29uZmlnKHN0cnVj dCBydGVfYmJkZXYgKmRldikNCj4gPj4+ICAgIAkJcmVnX2xlbjIgPSBhY2NfcmVnX3JlYWQoZCwg ZC0+cmVnX2FkZHItPmRlcHRoX2xvZzBfb2Zmc2V0ICsNCj4gPj4gOCk7DQo+ID4+PiAgICAJCXJl Z19sZW4zID0gYWNjX3JlZ19yZWFkKGQsIGQtPnJlZ19hZGRyLT5kZXB0aF9sb2cwX29mZnNldCAr DQo+ID4+IDEyKTsNCj4gPj4+DQo+ID4+PiAtCQlmb3IgKGFjYyA9IDA7IGFjYyA8IE5VTV9BQ0M7 IGFjYysrKSB7DQo+ID4+PiArCQlmb3IgKGFjYyA9IDA7IGFjYyA8IFZSQjJfTlVNX0FDQ1M7IGFj YysrKSB7DQo+ID4+PiAgICAJCQlxdG9wRnJvbUFjYygmcV90b3AsIGFjYywgYWNjX2NvbmYpOw0K PiA+Pj4gICAgCQkJaWYgKHFfdG9wLT5maXJzdF9xZ3JvdXBfaW5kZXggLw0KPiA+PiBBQ0NfTlVN X1FHUlBTX1BFUl9XT1JEID09IDApDQo+ID4+PiAgICAJCQkJcV90b3AtPmFxX2RlcHRoX2xvZzIg PSAocmVnX2xlbjAgPj4gKChxX3RvcC0NCj4gPj4+IGZpcnN0X3Fncm91cF9pbmRleCAlDQo+ID4+ DQo+ID4+IFRoaXMgZnVuY3Rpb24gY291bGQgYmUgbXVjaCBoZWF2aWx5IHJlZmFjdG9yZWQuDQo+ ID4+IElmIHdlIGxvb2sgYXQgd2FzIGlzIGFjdHVhbGx0IHBlcmZvcm1lZCwgVlJCMSBhbmQgVlJC MiBsb2dpYyBpcyB0aGUNCj4gPj4gc2FtZSwganVzdCBhIGNvdXBsZSBvZiB2YWx1ZSBkaWZmZXJz ICh0aGV5IGNvdWxkIGJlIHNldCBhdCBwcm9iZSB0aW1lKS4NCj4gPj4NCj4gPj4gSSBtaWdodCBw cm9wb3NlIHNvbWV0aGluZyBpbiB0aGUgZnV0dXJlLg0KPiA+Pg0KPiA+Pj4gQEAgLTU0Myw2ICs1 NDMsNyBAQCB2cmJfc2V0dXBfcXVldWVzKHN0cnVjdCBydGVfYmJkZXYgKmRldiwNCj4gdWludDE2 X3QNCj4gPj4gbnVtX3F1ZXVlcywgaW50IHNvY2tldF9pZCkNCj4gPj4+ICAgIHsNCj4gPj4+ICAg IAl1aW50MzJfdCBwaHlzX2xvdywgcGh5c19oaWdoLCB2YWx1ZTsNCj4gPj4+ICAgIAlzdHJ1Y3Qg YWNjX2RldmljZSAqZCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4+PiArCXVpbnQxNl90 IHF1ZXVlc19wZXJfb3AsIGk7DQo+ID4+PiAgICAJaW50IHJldDsNCj4gPj4+DQo+ID4+PiAgICAJ aWYgKGQtPnBmX2RldmljZSAmJiAhZC0+YWNjX2NvbmYucGZfbW9kZV9lbikgeyBAQCAtNTY0LDI3 DQo+ID4+PiArNTY1LDM3IEBAIHZyYl9zZXR1cF9xdWV1ZXMoc3RydWN0IHJ0ZV9iYmRldiAqZGV2 LCB1aW50MTZfdA0KPiA+Pj4gbnVtX3F1ZXVlcywgaW50DQo+ID4+IHNvY2tldF9pZCkNCj4gPj4+ ICAgIAkJcmV0dXJuIC1FTk9ERVY7DQo+ID4+PiAgICAJfQ0KPiA+Pj4NCj4gPj4+IC0JYWxsb2Nf c3dfcmluZ3NfbWluX21lbShkZXYsIGQsIG51bV9xdWV1ZXMsIHNvY2tldF9pZCk7DQo+ID4+PiAr CWlmIChkLT5kZXZpY2VfdmFyaWFudCA9PSBWUkIxX1ZBUklBTlQpIHsNCj4gPj4+ICsJCWFsbG9j X3N3X3JpbmdzX21pbl9tZW0oZGV2LCBkLCBudW1fcXVldWVzLCBzb2NrZXRfaWQpOw0KPiA+Pj4N Cj4gPj4+IC0JLyogSWYgbWluaW1hbCBtZW1vcnkgc3BhY2UgYXBwcm9hY2ggZmFpbGVkLCB0aGVu IGFsbG9jYXRlDQo+ID4+PiAtCSAqIHRoZSAyICogNjRNQiBibG9jayBmb3IgdGhlIHN3IHJpbmdz Lg0KPiA+Pj4gLQkgKi8NCj4gPj4+IC0JaWYgKGQtPnN3X3JpbmdzID09IE5VTEwpDQo+ID4+PiAt CQlhbGxvY18yeDY0bWJfc3dfcmluZ3NfbWVtKGRldiwgZCwgc29ja2V0X2lkKTsNCj4gPj4+ICsJ CS8qIElmIG1pbmltYWwgbWVtb3J5IHNwYWNlIGFwcHJvYWNoIGZhaWxlZCwgdGhlbiBhbGxvY2F0 ZQ0KPiA+Pj4gKwkJICogdGhlIDIgKiA2NE1CIGJsb2NrIGZvciB0aGUgc3cgcmluZ3MuDQo+ID4+ PiArCQkgKi8NCj4gPj4+ICsJCWlmIChkLT5zd19yaW5ncyA9PSBOVUxMKQ0KPiA+Pj4gKwkJCWFs bG9jXzJ4NjRtYl9zd19yaW5nc19tZW0oZGV2LCBkLCBzb2NrZXRfaWQpOw0KPiA+Pj4NCj4gPj4+ IC0JaWYgKGQtPnN3X3JpbmdzID09IE5VTEwpIHsNCj4gPj4+IC0JCXJ0ZV9iYmRldl9sb2coTk9U SUNFLA0KPiA+Pj4gLQkJCQkiRmFpbHVyZSBhbGxvY2F0aW5nIHN3X3JpbmdzIG1lbW9yeSIpOw0K PiA+Pj4gLQkJcmV0dXJuIC1FTk9NRU07DQo+ID4+PiArCQlpZiAoZC0+c3dfcmluZ3MgPT0gTlVM TCkgew0KPiA+Pj4gKwkJCXJ0ZV9iYmRldl9sb2coTk9USUNFLCAiRmFpbHVyZSBhbGxvY2F0aW5n IHN3X3JpbmdzDQo+ID4+IG1lbW9yeSIpOw0KPiA+Pj4gKwkJCXJldHVybiAtRU5PTUVNOw0KPiA+ Pj4gKwkJfQ0KPiA+Pj4gKwl9IGVsc2UgaWYgKGQtPmRldmljZV92YXJpYW50ID09IFZSQjJfVkFS SUFOVCkgew0KPiA+Pj4gKwkJcXVldWVzX3Blcl9vcCA9IFJURV9NSU4oVlJCMl9NQVhfUV9QRVJf T1AsDQo+ID4+IG51bV9xdWV1ZXMpOw0KPiA+Pj4gKwkJZm9yIChpID0gMDsgaSA8PSBSVEVfQkJE RVZfT1BfTUxEVFM7IGkrKykgew0KPiA+Pj4gKwkJCWFsbG9jX3N3X3JpbmdzX21pbl9tZW0oZGV2 LCBkLCBxdWV1ZXNfcGVyX29wLA0KPiA+PiBzb2NrZXRfaWQpOw0KPiA+Pj4gKwkJCWlmIChkLT5z d19yaW5ncyA9PSBOVUxMKSB7DQo+ID4+PiArCQkJCXJ0ZV9iYmRldl9sb2coTk9USUNFLCAiRmFp bHVyZSBhbGxvY2F0aW5nDQo+ID4+IHN3X3JpbmdzIG1lbW9yeSAlZCIsIGkpOw0KPiA+Pj4gKwkJ CQlyZXR1cm4gLUVOT01FTTsNCj4gPj4+ICsJCQl9DQo+ID4+PiArCQkJLyogTW92ZXMgdGhlIHBv aW50ZXIgdG8gdGhlIHJlbGV2YW50IGFycmF5LiAqLw0KPiA+Pj4gKwkJCWQtPnN3X3JpbmdzX2Fy cmF5W2ldID0gZC0+c3dfcmluZ3M7DQo+ID4+PiArCQkJZC0+c3dfcmluZ3NfaW92YV9hcnJheVtp XSA9IGQtPnN3X3JpbmdzX2lvdmE7DQo+ID4+PiArCQkJZC0+c3dfcmluZ3MgPSBOVUxMOw0KPiA+ Pj4gKwkJCWQtPnN3X3JpbmdzX2Jhc2UgPSBOVUxMOw0KPiA+Pj4gKwkJCWQtPnN3X3JpbmdzX2lv dmEgPSAwOw0KPiA+Pj4gKwkJCWQtPnF1ZXVlX2luZGV4W2ldID0gMDsNCj4gPj4+ICsJCX0NCj4g Pj4+ICAgIAl9DQo+ID4+Pg0KPiA+Pj4gLQkvKiBDb25maWd1cmUgZGV2aWNlIHdpdGggdGhlIGJh c2UgYWRkcmVzcyBmb3IgRE1BIGRlc2NyaXB0b3IgcmluZ3MuDQo+ID4+PiAtCSAqIFNhbWUgZGVz Y3JpcHRvciByaW5ncyB1c2VkIGZvciBVTCBhbmQgREwgRE1BIEVuZ2luZXMuDQo+ID4+PiAtCSAq IE5vdGUgOiBBc3N1bWluZyBvbmx5IFZGMCBidW5kbGUgaXMgdXNlZCBmb3IgUEYgbW9kZS4NCj4g Pj4+IC0JICovDQo+ID4+PiAtCXBoeXNfaGlnaCA9ICh1aW50MzJfdCkoZC0+c3dfcmluZ3NfaW92 YSA+PiAzMik7DQo+ID4+PiAtCXBoeXNfbG93ICA9ICh1aW50MzJfdCkoZC0+c3dfcmluZ3NfaW92 YSAmIH4oQUNDX1NJWkVfNjRNQllURS0xKSk7DQo+ID4+PiAtDQo+ID4+PiAgICAJLyogUmVhZCB0 aGUgcG9wdWxhdGVkIGNmZyBmcm9tIGRldmljZSByZWdpc3RlcnMuICovDQo+ID4+PiAgICAJZmV0 Y2hfYWNjX2NvbmZpZyhkZXYpOw0KPiA+Pj4NCj4gPj4+IEBAIC01OTksMjAgKzYxMCw2MCBAQCB2 cmJfc2V0dXBfcXVldWVzKHN0cnVjdCBydGVfYmJkZXYgKmRldiwNCj4gPj4gdWludDE2X3QgbnVt X3F1ZXVlcywgaW50IHNvY2tldF9pZCkNCj4gPj4+ICAgIAlpZiAoZC0+cGZfZGV2aWNlKQ0KPiA+ Pj4gICAgCQlhY2NfcmVnX3dyaXRlKGQsIFZSQjFfUGZEbWFBeGlDb250cm9sLCAxKTsNCj4gPj4+ DQo+ID4+PiAtCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmRtYV9yaW5nX3VsNWdfaGks IHBoeXNfaGlnaCk7DQo+ID4+PiAtCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmRtYV9y aW5nX3VsNWdfbG8sIHBoeXNfbG93KTsNCj4gPj4+IC0JYWNjX3JlZ193cml0ZShkLCBkLT5yZWdf YWRkci0+ZG1hX3JpbmdfZGw1Z19oaSwgcGh5c19oaWdoKTsNCj4gPj4+IC0JYWNjX3JlZ193cml0 ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfZGw1Z19sbywgcGh5c19sb3cpOw0KPiA+Pj4gLQlh Y2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT5kbWFfcmluZ191bDRnX2hpLCBwaHlzX2hpZ2gp Ow0KPiA+Pj4gLQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT5kbWFfcmluZ191bDRnX2xv LCBwaHlzX2xvdyk7DQo+ID4+PiAtCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmRtYV9y aW5nX2RsNGdfaGksIHBoeXNfaGlnaCk7DQo+ID4+PiAtCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVn X2FkZHItPmRtYV9yaW5nX2RsNGdfbG8sIHBoeXNfbG93KTsNCj4gPj4+IC0JYWNjX3JlZ193cml0 ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfZmZ0X2hpLCBwaHlzX2hpZ2gpOw0KPiA+Pj4gLQlh Y2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT5kbWFfcmluZ19mZnRfbG8sIHBoeXNfbG93KTsN Cj4gPj4+IC0JaWYgKGQtPmRldmljZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkgew0KPiA+Pj4g LQkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfbWxkX2hpLCBwaHlzX2hp Z2gpOw0KPiA+Pj4gLQkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfbWxk X2xvLCBwaHlzX2xvdyk7DQo+ID4+PiArCWlmIChkLT5kZXZpY2VfdmFyaWFudCA9PSBWUkIxX1ZB UklBTlQpIHsNCj4gPj4+ICsJCS8qIENvbmZpZ3VyZSBkZXZpY2Ugd2l0aCB0aGUgYmFzZSBhZGRy ZXNzIGZvciBETUEgZGVzY3JpcHRvcg0KPiA+PiByaW5ncy4NCj4gPj4+ICsJCSAqIFNhbWUgZGVz Y3JpcHRvciByaW5ncyB1c2VkIGZvciBVTCBhbmQgREwgRE1BIEVuZ2luZXMuDQo+ID4+PiArCQkg KiBOb3RlIDogQXNzdW1pbmcgb25seSBWRjAgYnVuZGxlIGlzIHVzZWQgZm9yIFBGIG1vZGUuDQo+ ID4+PiArCQkgKi8NCj4gPj4+ICsJCXBoeXNfaGlnaCA9ICh1aW50MzJfdCkoZC0+c3dfcmluZ3Nf aW92YSA+PiAzMik7DQo+ID4+PiArCQlwaHlzX2xvdyAgPSAodWludDMyX3QpKGQtPnN3X3Jpbmdz X2lvdmEgJg0KPiA+PiB+KEFDQ19TSVpFXzY0TUJZVEUtMSkpOw0KPiA+Pj4gKwkJYWNjX3JlZ193 cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfdWw1Z19oaSwgcGh5c19oaWdoKTsNCj4gPj4+ ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmRtYV9yaW5nX3VsNWdfbG8sIHBoeXNf bG93KTsNCj4gPj4+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmRtYV9yaW5nX2Rs NWdfaGksIHBoeXNfaGlnaCk7DQo+ID4+PiArCQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRy LT5kbWFfcmluZ19kbDVnX2xvLCBwaHlzX2xvdyk7DQo+ID4+PiArCQlhY2NfcmVnX3dyaXRlKGQs IGQtPnJlZ19hZGRyLT5kbWFfcmluZ191bDRnX2hpLCBwaHlzX2hpZ2gpOw0KPiA+Pj4gKwkJYWNj X3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfdWw0Z19sbywgcGh5c19sb3cpOw0K PiA+Pj4gKwkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfZGw0Z19oaSwg cGh5c19oaWdoKTsNCj4gPj4+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmRtYV9y aW5nX2RsNGdfbG8sIHBoeXNfbG93KTsNCj4gPj4+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVn X2FkZHItPmRtYV9yaW5nX2ZmdF9oaSwgcGh5c19oaWdoKTsNCj4gPj4+ICsJCWFjY19yZWdfd3Jp dGUoZCwgZC0+cmVnX2FkZHItPmRtYV9yaW5nX2ZmdF9sbywgcGh5c19sb3cpOw0KPiA+Pj4gKwl9 IGVsc2UgaWYgKGQtPmRldmljZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkgew0KPiA+Pj4gKwkJ LyogQ29uZmlndXJlIGRldmljZSB3aXRoIHRoZSBiYXNlIGFkZHJlc3MgZm9yIERNQSBkZXNjcmlw dG9yDQo+ID4+IHJpbmdzLg0KPiA+Pj4gKwkJICogRGlmZmVyZW50IHJpbmcgYnVmZmVyIHVzZWQg Zm9yIGVhY2ggb3BlcmF0aW9uIHR5cGUuDQo+ID4+PiArCQkgKiBOb3RlIDogQXNzdW1pbmcgb25s eSBWRjAgYnVuZGxlIGlzIHVzZWQgZm9yIFBGIG1vZGUuDQo+ID4+PiArCQkgKi8NCj4gPj4+ICsJ CWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmRtYV9yaW5nX3VsNWdfaGksDQo+ID4+PiAr CQkJCSh1aW50MzJfdCkoZC0NCj4gPj4+IHN3X3JpbmdzX2lvdmFfYXJyYXlbUlRFX0JCREVWX09Q X0xEUENfREVDXSA+PiAzMikpOw0KPiA+Pj4gKwkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRk ci0+ZG1hX3JpbmdfdWw1Z19sbywNCj4gPj4+ICsJCQkJKHVpbnQzMl90KShkLQ0KPiA+Pj4gc3df cmluZ3NfaW92YV9hcnJheVtSVEVfQkJERVZfT1BfTERQQ19ERUNdDQo+ID4+PiArCQkJCSYgfihB Q0NfU0laRV82NE1CWVRFIC0gMSkpKTsNCj4gPj4+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVn X2FkZHItPmRtYV9yaW5nX2RsNWdfaGksDQo+ID4+PiArCQkJCSh1aW50MzJfdCkoZC0NCj4gPj4+ IHN3X3JpbmdzX2lvdmFfYXJyYXlbUlRFX0JCREVWX09QX0xEUENfRU5DXSA+PiAzMikpOw0KPiA+ Pj4gKwkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfZGw1Z19sbywNCj4g Pj4+ICsJCQkJKHVpbnQzMl90KShkLQ0KPiA+Pj4gc3dfcmluZ3NfaW92YV9hcnJheVtSVEVfQkJE RVZfT1BfTERQQ19FTkNdDQo+ID4+PiArCQkJCSYgfihBQ0NfU0laRV82NE1CWVRFIC0gMSkpKTsN Cj4gPj4+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmRtYV9yaW5nX3VsNGdfaGks DQo+ID4+PiArCQkJCSh1aW50MzJfdCkoZC0NCj4gPj4+IHN3X3JpbmdzX2lvdmFfYXJyYXlbUlRF X0JCREVWX09QX1RVUkJPX0RFQ10gPj4gMzIpKTsNCj4gPj4+ICsJCWFjY19yZWdfd3JpdGUoZCwg ZC0+cmVnX2FkZHItPmRtYV9yaW5nX3VsNGdfbG8sDQo+ID4+PiArCQkJCSh1aW50MzJfdCkoZC0N Cj4gPj4+IHN3X3JpbmdzX2lvdmFfYXJyYXlbUlRFX0JCREVWX09QX1RVUkJPX0RFQ10NCj4gPj4+ ICsJCQkJJiB+KEFDQ19TSVpFXzY0TUJZVEUgLSAxKSkpOw0KPiA+Pj4gKwkJYWNjX3JlZ193cml0 ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfZGw0Z19oaSwNCj4gPj4+ICsJCQkJKHVpbnQzMl90 KShkLQ0KPiA+Pj4gc3dfcmluZ3NfaW92YV9hcnJheVtSVEVfQkJERVZfT1BfVFVSQk9fRU5DXSA+ PiAzMikpOw0KPiA+Pj4gKwkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3Jpbmdf ZGw0Z19sbywNCj4gPj4+ICsJCQkJKHVpbnQzMl90KShkLQ0KPiA+Pj4gc3dfcmluZ3NfaW92YV9h cnJheVtSVEVfQkJERVZfT1BfVFVSQk9fRU5DXQ0KPiA+Pj4gKwkJCQkmIH4oQUNDX1NJWkVfNjRN QllURSAtIDEpKSk7DQo+ID4+PiArCQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT5kbWFf cmluZ19mZnRfaGksDQo+ID4+PiArCQkJCSh1aW50MzJfdCkoZC0NCj4gPj4+IHN3X3JpbmdzX2lv dmFfYXJyYXlbUlRFX0JCREVWX09QX0ZGVF0gPj4gMzIpKTsNCj4gPj4+ICsJCWFjY19yZWdfd3Jp dGUoZCwgZC0+cmVnX2FkZHItPmRtYV9yaW5nX2ZmdF9sbywNCj4gPj4+ICsJCQkJKHVpbnQzMl90 KShkLQ0KPiA+Pj4gc3dfcmluZ3NfaW92YV9hcnJheVtSVEVfQkJERVZfT1BfRkZUXQ0KPiA+Pj4g KwkJCQkmIH4oQUNDX1NJWkVfNjRNQllURSAtIDEpKSk7DQo+ID4+PiArCQlhY2NfcmVnX3dyaXRl KGQsIGQtPnJlZ19hZGRyLT5kbWFfcmluZ19tbGRfaGksDQo+ID4+PiArCQkJCSh1aW50MzJfdCko ZC0NCj4gPj4+IHN3X3JpbmdzX2lvdmFfYXJyYXlbUlRFX0JCREVWX09QX01MRFRTXSA+PiAzMikp Ow0KPiA+Pj4gKwkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfbWxkX2xv LA0KPiA+Pj4gKwkJCQkodWludDMyX3QpKGQtDQo+ID4+PiBzd19yaW5nc19pb3ZhX2FycmF5W1JU RV9CQkRFVl9PUF9NTERUU10NCj4gPj4+ICsJCQkJJiB+KEFDQ19TSVpFXzY0TUJZVEUgLSAxKSkp Ow0KPiA+Pj4gICAgCX0NCj4gPj4+ICsNCj4gPj4+ICAgIAkvKg0KPiA+Pj4gICAgCSAqIENvbmZp Z3VyZSBSaW5nIFNpemUgdG8gdGhlIG1heCBxdWV1ZSByaW5nIHNpemUNCj4gPj4+ICAgIAkgKiAo dXNlZCBmb3Igd3JhcHBpbmcgcHVycG9zZSkuDQo+ID4+PiBAQCAtNjM2LDE5ICs2ODcsMjEgQEAg dnJiX3NldHVwX3F1ZXVlcyhzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsDQo+ID4+IHVpbnQxNl90DQo+ ID4+PiBudW1fcXVldWVzLCBpbnQgc29ja2V0X2lkKQ0KPiA+Pj4NCj4gPj4+ICAgIAlwaHlzX2hp Z2ggPSAodWludDMyX3QpKGQtPnRhaWxfcHRyX2lvdmEgPj4gMzIpOw0KPiA+Pj4gICAgCXBoeXNf bG93ICA9ICh1aW50MzJfdCkoZC0+dGFpbF9wdHJfaW92YSk7DQo+ID4+PiAtCWFjY19yZWdfd3Jp dGUoZCwgZC0+cmVnX2FkZHItPnRhaWxfcHRyc191bDVnX2hpLCBwaHlzX2hpZ2gpOw0KPiA+Pj4g LQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT50YWlsX3B0cnNfdWw1Z19sbywgcGh5c19s b3cpOw0KPiA+Pj4gLQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT50YWlsX3B0cnNfZGw1 Z19oaSwgcGh5c19oaWdoKTsNCj4gPj4+IC0JYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+ dGFpbF9wdHJzX2RsNWdfbG8sIHBoeXNfbG93KTsNCj4gPj4+IC0JYWNjX3JlZ193cml0ZShkLCBk LT5yZWdfYWRkci0+dGFpbF9wdHJzX3VsNGdfaGksIHBoeXNfaGlnaCk7DQo+ID4+PiAtCWFjY19y ZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPnRhaWxfcHRyc191bDRnX2xvLCBwaHlzX2xvdyk7DQo+ ID4+PiAtCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPnRhaWxfcHRyc19kbDRnX2hpLCBw aHlzX2hpZ2gpOw0KPiA+Pj4gLQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT50YWlsX3B0 cnNfZGw0Z19sbywgcGh5c19sb3cpOw0KPiA+Pj4gLQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19h ZGRyLT50YWlsX3B0cnNfZmZ0X2hpLCBwaHlzX2hpZ2gpOw0KPiA+Pj4gLQlhY2NfcmVnX3dyaXRl KGQsIGQtPnJlZ19hZGRyLT50YWlsX3B0cnNfZmZ0X2xvLCBwaHlzX2xvdyk7DQo+ID4+PiAtCWlm IChkLT5kZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklBTlQpIHsNCj4gPj4+IC0JCWFjY19yZWdf d3JpdGUoZCwgZC0+cmVnX2FkZHItPnRhaWxfcHRyc19tbGRfaGksIHBoeXNfaGlnaCk7DQo+ID4+ PiAtCQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT50YWlsX3B0cnNfbWxkX2xvLCBwaHlz X2xvdyk7DQo+ID4+PiArCXsNCj4gPj4+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHIt PnRhaWxfcHRyc191bDVnX2hpLCBwaHlzX2hpZ2gpOw0KPiA+Pj4gKwkJYWNjX3JlZ193cml0ZShk LCBkLT5yZWdfYWRkci0+dGFpbF9wdHJzX3VsNWdfbG8sIHBoeXNfbG93KTsNCj4gPj4+ICsJCWFj Y19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPnRhaWxfcHRyc19kbDVnX2hpLCBwaHlzX2hpZ2gp Ow0KPiA+Pj4gKwkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+dGFpbF9wdHJzX2RsNWdf bG8sIHBoeXNfbG93KTsNCj4gPj4+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPnRh aWxfcHRyc191bDRnX2hpLCBwaHlzX2hpZ2gpOw0KPiA+Pj4gKwkJYWNjX3JlZ193cml0ZShkLCBk LT5yZWdfYWRkci0+dGFpbF9wdHJzX3VsNGdfbG8sIHBoeXNfbG93KTsNCj4gPj4+ICsJCWFjY19y ZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPnRhaWxfcHRyc19kbDRnX2hpLCBwaHlzX2hpZ2gpOw0K PiA+Pj4gKwkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+dGFpbF9wdHJzX2RsNGdfbG8s IHBoeXNfbG93KTsNCj4gPj4+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPnRhaWxf cHRyc19mZnRfaGksIHBoeXNfaGlnaCk7DQo+ID4+PiArCQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJl Z19hZGRyLT50YWlsX3B0cnNfZmZ0X2xvLCBwaHlzX2xvdyk7DQo+ID4+PiArCQlpZiAoZC0+ZGV2 aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKSB7DQo+ID4+PiArCQkJYWNjX3JlZ193cml0ZShk LCBkLT5yZWdfYWRkci0+dGFpbF9wdHJzX21sZF9oaSwNCj4gPj4gcGh5c19oaWdoKTsNCj4gPj4+ ICsJCQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT50YWlsX3B0cnNfbWxkX2xvLA0KPiA+ PiBwaHlzX2xvdyk7DQo+ID4+PiArCQl9DQo+ID4+PiAgICAJfQ0KPiA+Pj4NCj4gPj4+ICAgIAly ZXQgPSBhbGxvY2F0ZV9pbmZvX3JpbmcoZGV2KTsNCj4gPj4+IEBAIC02ODQsOCArNzM3LDEzIEBA IHZyYl9zZXR1cF9xdWV1ZXMoc3RydWN0IHJ0ZV9iYmRldiAqZGV2LA0KPiA+Pj4gdWludDE2X3QN Cj4gPj4gbnVtX3F1ZXVlcywgaW50IHNvY2tldF9pZCkNCj4gPj4+ICAgIAlydGVfZnJlZShkLT50 YWlsX3B0cnMpOw0KPiA+Pj4gICAgCWQtPnRhaWxfcHRycyA9IE5VTEw7DQo+ID4+PiAgICBmcmVl X3N3X3JpbmdzOg0KPiA+Pj4gLQlydGVfZnJlZShkLT5zd19yaW5nc19iYXNlKTsNCj4gPj4+IC0J ZC0+c3dfcmluZ3MgPSBOVUxMOw0KPiA+Pj4gKwlpZiAoZC0+ZGV2aWNlX3ZhcmlhbnQgPT0gVlJC MV9WQVJJQU5UKSB7DQo+ID4+PiArCQlydGVfZnJlZShkLT5zd19yaW5nc19iYXNlKTsNCj4gPj4+ ICsJCWQtPnN3X3JpbmdzID0gTlVMTDsNCj4gPj4NCj4gPj4gSXQgd2FzIG5vdCBjYXVnaHQgaW5p dGlhbGx5LCBidXQgaXQgbG9va3MgYWt3YXJkIHRvIGZyZWUNCj4gPj4gc3dfcmluZ3NfYmFzZSwg YW5kIHRoZW4gc2V0IHN3X3JpbmdzIHRvIE5VTEwuDQo+ID4+IHN3X3JpbmdzX2Jhc2VkIHNob3Vs ZCBhbHNvIGJlIHNldCB0byBOVUxMLg0KPiA+Pg0KPiA+Pj4gKwl9IGVsc2UgaWYgKGQtPmRldmlj ZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkgew0KPiA+Pj4gKwkJZm9yIChpID0gMDsgaSA8PSBS VEVfQkJERVZfT1BfTUxEVFM7IGkrKykNCj4gPj4+ICsJCQlydGVfZnJlZShkLT5zd19yaW5nc19h cnJheVtpXSk7DQo+ID4+DQo+ID4+IFNhbWUgaGVyZSwgeW91IHNob3VsZCBzZXQgc3dfcmluZ3Nf YXJyYXlbaV0gdG8gTlVMTCB0byBhdm9pZCBkb3VibGUNCj4gPj4gZnJlZSBsYXRlci4NCj4gPg0K PiA+IEkgYmVsaWV2ZSB0aGlzIGlzIG1vcmUgaGlzdG9yaWNhbCBhbmQgb3J0aG9nb25hbCB0byB0 aGF0IGNvbW1pdC4NCj4gPiBJIHdvdWxkIHByZWZlciB0byBjbGVhbiB0aGF0IHRocm91Z2ggYW5v dGhlciBzZXJpZSBhbmQgYXBwbHkgc2FtZSBCS00NCj4gY29uc2lzdGVudGx5LCBhbmQgd291bGQg bm90IHdhbnQgdG8gcnVzaCBpdC4NCj4gPiBPSyB3aXRoIHlvdT8NCj4gDQo+IFN1cmUsIHBsZWFz ZSBzZW5kIGFub3RoZXIgc2VyaWVzLCBhbmQgdGhlbiByZWJhc2UgdGhpcyBvbmUgb24gdG9wIG9m IGl0Lg0KPiBPciBpdCBjYW4gYmUgZG9uZSBpbiBzb21lIHBhdGNoZXMgYXQgdGhlIGJlZ2luaW5n IG9mIHRoaXMgc2VyaWVzLg0KPiANCj4gVGhhbmtzLA0KPiBNYXhpbWUNCg0KSSBiZWxpZXZlIHRo aXMgd2lsbCB0YWtlIG1vcmUgdGltZSB0byBnZXQgdGhpcyBkb25lLiANCkkgd291bGQgcmF0aGVy IHdlIGRvIHRoZSBvcHBvc2l0ZSBhbmQgZ2V0IHRoaXMgY3VycmVudCBzZXJpZXMgYXBwbGllZCBm aXJzdC4NClRoZW4gdGhlIGhpc3RvcmljYWwgaW1wcm92ZW1lbnQgdGhhdCB5b3Ugc3BvdHRlZCBp biBwYXJhbGxlbCBvZiB0aGlzIHJldmlldyBjYW4gYmUgbWFuYWdlZCBzZXBhcmF0ZWx5IG5vIGl0 cyBvd24gbWVyaXQsIGFuZCBwb3NzaWJseSBiZSBhcHBsaWVkIGluIDI0LjAzIHJlYWxpc3RpY2Fs bHkuIA0KSSB3b3VsZCByYXRoZXIgbm90IGludHJvZHVjZSBuZXcgY2hhbmdlcyBpbiB3aGljaCB3 b3VsZCBoYXZlIG5vdCBiZWVuIHRocm91Z2ggdGhvcm91Z2ggdmFsaWRhdGlvbi4gDQoNCj4gDQo+ ID4NCj4gPj4NCj4gPj4+ICsJfQ0KPiA+Pj4NCj4gPj4+ICAgIAlyZXR1cm4gcmV0Ow0KPiA+Pj4g ICAgfQ0KPiA+Pj4gQEAgLTgwOSwxNyArODY3LDM0IEBAIHZyYl9pbnRyX2VuYWJsZShzdHJ1Y3Qg cnRlX2JiZGV2ICpkZXYpDQo+ID4+PiAgICBzdGF0aWMgaW50DQo+ID4+PiAgICB2cmJfZGV2X2Ns b3NlKHN0cnVjdCBydGVfYmJkZXYgKmRldikNCj4gPj4+ICAgIHsNCj4gPj4+ICsJaW50IGk7DQo+ ID4+PiAgICAJc3RydWN0IGFjY19kZXZpY2UgKmQgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0K PiA+Pj4gKw0KPiA+Pj4gICAgCXZyYl9jaGVja19pcihkKTsNCj4gPj4+IC0JaWYgKGQtPnN3X3Jp bmdzX2Jhc2UgIT0gTlVMTCkgew0KPiA+Pj4gLQkJcnRlX2ZyZWUoZC0+dGFpbF9wdHJzKTsNCj4g Pj4+IC0JCXJ0ZV9mcmVlKGQtPmluZm9fcmluZyk7DQo+ID4+PiAtCQlydGVfZnJlZShkLT5zd19y aW5nc19iYXNlKTsNCj4gPj4+IC0JCXJ0ZV9mcmVlKGQtPmhhcnFfbGF5b3V0KTsNCj4gPj4+IC0J CWQtPnRhaWxfcHRycyA9IE5VTEw7DQo+ID4+PiAtCQlkLT5pbmZvX3JpbmcgPSBOVUxMOw0KPiA+ Pj4gLQkJZC0+c3dfcmluZ3NfYmFzZSA9IE5VTEw7DQo+ID4+PiAtCQlkLT5oYXJxX2xheW91dCA9 IE5VTEw7DQo+ID4+PiArCWlmIChkLT5kZXZpY2VfdmFyaWFudCA9PSBWUkIxX1ZBUklBTlQpIHsN Cj4gPj4+ICsJCWlmIChkLT5zd19yaW5nc19iYXNlICE9IE5VTEwpIHsNCj4gPj4+ICsJCQlydGVf ZnJlZShkLT50YWlsX3B0cnMpOw0KPiA+Pj4gKwkJCXJ0ZV9mcmVlKGQtPmluZm9fcmluZyk7DQo+ ID4+PiArCQkJcnRlX2ZyZWUoZC0+c3dfcmluZ3NfYmFzZSk7DQo+ID4+PiArCQkJcnRlX2ZyZWUo ZC0+aGFycV9sYXlvdXQpOw0KPiA+Pj4gKwkJCWQtPnRhaWxfcHRycyA9IE5VTEw7DQo+ID4+PiAr CQkJZC0+aW5mb19yaW5nID0gTlVMTDsNCj4gPj4+ICsJCQlkLT5zd19yaW5nc19iYXNlID0gTlVM TDsNCj4gPj4+ICsJCQlkLT5oYXJxX2xheW91dCA9IE5VTEw7DQo+ID4+PiArCQl9DQo+ID4+DQo+ ID4+IEFjdHVhbGx5LCBpdCB3b3VsZCBiZSBjbGVhbm5lciB0byBwZXJmb3JtIHRoZSBmcmVlIG9w ZXJhdGlvbnMNCj4gPj4gc3lzdGVtYXRpY2FsbHksIG5vIG5lZWQgdG8gY2hlY2sgd2hldGhlciBz d19yaW5nc19iYXNlIGlzIE5VTEwuDQo+ID4NCj4gPiBOb3RlZCBhcyBhYm92ZS4NCj4gPg0KPiA+ Pg0KPiA+Pj4gKwl9IGVsc2UgaWYgKGQtPmRldmljZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkg ew0KPiA+Pj4gKwkJaWYgKGQtPnN3X3JpbmdzX2FycmF5WzFdICE9IE5VTEwpIHsNCj4gPj4NCj4g Pj4gV2h5IDEgYW5kIG5vdCAwPyBBbmQgYXMgbWVudGlvbm5lZCBhYm92ZSB0aGlzIGNhbiBiZSBk b25lDQo+IHVuY29uZGl0aW9ubmFsbHkuDQo+ID4NCj4gPiBUaGFua3MuIFdlIGNhbiBjaGVjayB0 byBzdGFydCBmcm9tIGluZGV4IHplcm8gaW5kZWVkIHRvIG1hdGNoIHRoZQ0KPiBhbGxvY2F0aW9u Lg0KPiA+IEFyZ3VhYmx5IGFzIGFuIGFzaWRlIHRoZSBxdWV1ZSB6ZXJvIGlzIGEgc3BlY2lhbCBv bmUgYnV0IHdlIGNhbiBvcHRpbWl6ZSB0aGlzDQo+IGEgYml0IGluIHRoZSBmdXR1cmUuDQo+ID4g VGhhbmtzDQo+ID4NCj4gPj4NCj4gPj4+ICsJCQlydGVfZnJlZShkLT50YWlsX3B0cnMpOw0KPiA+ Pj4gKwkJCXJ0ZV9mcmVlKGQtPmluZm9fcmluZyk7DQo+ID4+PiArCQkJcnRlX2ZyZWUoZC0+aGFy cV9sYXlvdXQpOw0KPiA+Pj4gKwkJCWQtPnRhaWxfcHRycyA9IE5VTEw7DQo+ID4+PiArCQkJZC0+ aW5mb19yaW5nID0gTlVMTDsNCj4gPj4+ICsJCQlkLT5oYXJxX2xheW91dCA9IE5VTEw7DQo+ID4+ PiArCQkJZm9yIChpID0gMDsgaSA8PSBSVEVfQkJERVZfT1BfTUxEVFM7IGkrKykgew0KPiA+Pj4g KwkJCQlydGVfZnJlZShkLT5zd19yaW5nc19hcnJheVtpXSk7DQo+ID4+PiArCQkJCWQtPnN3X3Jp bmdzX2FycmF5W2ldID0gTlVMTDsNCj4gPj4+ICsJCQl9DQo+ID4+PiArCQl9DQo+ID4+PiAgICAJ fQ0KPiA+Pj4gICAgCS8qIEVuc3VyZSBhbGwgaW4gZmxpZ2h0IEhXIHRyYW5zYWN0aW9ucyBhcmUg Y29tcGxldGVkLiAqLw0KPiA+Pj4gICAgCXVzbGVlcChBQ0NfTE9OR19XQUlUKTsNCj4gPj4+IEBA IC04OTAsOCArOTY1LDE2IEBAIHZyYl9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYs DQo+IHVpbnQxNl90DQo+ID4+IHF1ZXVlX2lkLA0KPiA+Pj4gICAgCX0NCj4gPj4+DQo+ID4+PiAg ICAJcS0+ZCA9IGQ7DQo+ID4+PiAtCXEtPnJpbmdfYWRkciA9IFJURV9QVFJfQUREKGQtPnN3X3Jp bmdzLCAoZC0+c3dfcmluZ19zaXplICoNCj4gPj4gcXVldWVfaWQpKTsNCj4gPj4+IC0JcS0+cmlu Z19hZGRyX2lvdmEgPSBkLT5zd19yaW5nc19pb3ZhICsgKGQtPnN3X3Jpbmdfc2l6ZSAqIHF1ZXVl X2lkKTsNCj4gPj4+ICsJaWYgKGQtPmRldmljZV92YXJpYW50ID09IFZSQjFfVkFSSUFOVCkgew0K PiA+Pj4gKwkJcS0+cmluZ19hZGRyID0gUlRFX1BUUl9BREQoZC0+c3dfcmluZ3MsIChkLT5zd19y aW5nX3NpemUgKg0KPiA+PiBxdWV1ZV9pZCkpOw0KPiA+Pj4gKwkJcS0+cmluZ19hZGRyX2lvdmEg PSBkLT5zd19yaW5nc19pb3ZhICsgKGQtPnN3X3Jpbmdfc2l6ZSAqDQo+ID4+IHF1ZXVlX2lkKTsN Cj4gPj4+ICsJfSBlbHNlIGlmIChkLT5kZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklBTlQpIHsN Cj4gPj4+ICsJCXEtPnJpbmdfYWRkciA9IFJURV9QVFJfQUREKGQtPnN3X3JpbmdzX2FycmF5W2Nv bmYtDQo+ID4+PiBvcF90eXBlXSwNCj4gPj4+ICsJCQkJKGQtPnN3X3Jpbmdfc2l6ZSAqIGQtPnF1 ZXVlX2luZGV4W2NvbmYtDQo+ID4+PiBvcF90eXBlXSkpOw0KPiA+Pj4gKwkJcS0+cmluZ19hZGRy X2lvdmEgPSBkLT5zd19yaW5nc19pb3ZhX2FycmF5W2NvbmYtPm9wX3R5cGVdICsNCj4gPj4+ICsJ CQkJKGQtPnN3X3Jpbmdfc2l6ZSAqIGQtPnF1ZXVlX2luZGV4W2NvbmYtDQo+ID4+PiBvcF90eXBl XSk7DQo+ID4+PiArCQlkLT5xdWV1ZV9pbmRleFtjb25mLT5vcF90eXBlXSsrOw0KPiA+Pj4gKwl9 DQo+ID4+Pg0KPiA+Pj4gICAgCS8qIFByZXBhcmUgdGhlIFJpbmcgd2l0aCBkZWZhdWx0IGRlc2Ny aXB0b3IgZm9ybWF0LiAqLw0KPiA+Pj4gICAgCXVuaW9uIGFjY19kbWFfZGVzYyAqZGVzYyA9IE5V TEw7IEBAIC0xMzQ3LDggKzE0MzAsMTQgQEANCj4gPj4+IHZyYl9kZXZfaW5mb19nZXQoc3RydWN0 IHJ0ZV9iYmRldiAqZGV2LCBzdHJ1Y3QNCj4gPj4gcnRlX2JiZGV2X2RyaXZlcl9pbmZvICpkZXZf aW5mbykNCj4gPj4+ICAgIAlkZXZfaW5mby0+cXVldWVfcHJpb3JpdHlbUlRFX0JCREVWX09QX0ZG VF0gPSBkLQ0KPiA+Pj4gYWNjX2NvbmYucV9mZnQubnVtX3Fncm91cHM7DQo+ID4+PiAgICAJZGV2 X2luZm8tPnF1ZXVlX3ByaW9yaXR5W1JURV9CQkRFVl9PUF9NTERUU10gPSBkLQ0KPiA+Pj4gYWNj X2NvbmYucV9tbGQubnVtX3Fncm91cHM7DQo+ID4+PiAgICAJZGV2X2luZm8tPm1heF9udW1fcXVl dWVzID0gMDsNCj4gPj4+IC0JZm9yIChpID0gUlRFX0JCREVWX09QX05PTkU7IGkgPD0gUlRFX0JC REVWX09QX01MRFRTOyBpKyspDQo+ID4+PiArCWZvciAoaSA9IFJURV9CQkRFVl9PUF9OT05FOyBp IDw9IFJURV9CQkRFVl9PUF9NTERUUzsgaSsrKSB7DQo+ID4+PiArCQlpZiAodW5saWtlbHkoZGV2 X2luZm8tPm51bV9xdWV1ZXNbaV0gPg0KPiA+PiBWUkIyX01BWF9RX1BFUl9PUCkpIHsNCj4gPj4+ ICsJCQlydGVfYmJkZXZfbG9nKEVSUiwgIlVuZXhwZWN0ZWQgbnVtYmVyIG9mIHF1ZXVlcw0KPiA+ PiAlZCBleHBvc2VkIGZvciBvcCAlZCIsDQo+ID4+PiArCQkJCQlkZXZfaW5mby0+bnVtX3F1ZXVl c1tpXSwgaSk7DQo+ID4+PiArCQkJZGV2X2luZm8tPm51bV9xdWV1ZXNbaV0gPSBWUkIyX01BWF9R X1BFUl9PUDsNCj4gPj4+ICsJCX0NCj4gPj4+ICAgIAkJZGV2X2luZm8tPm1heF9udW1fcXVldWVz ICs9IGRldl9pbmZvLT5udW1fcXVldWVzW2ldOw0KPiA+Pj4gKwl9DQo+ID4+PiAgICAJZGV2X2lu Zm8tPnF1ZXVlX3NpemVfbGltID0gQUNDX01BWF9RVUVVRV9ERVBUSDsNCj4gPj4+ICAgIAlkZXZf aW5mby0+aGFyZHdhcmVfYWNjZWxlcmF0ZWQgPSB0cnVlOw0KPiA+Pj4gICAgCWRldl9pbmZvLT5t YXhfZGxfcXVldWVfcHJpb3JpdHkgPSBAQCAtNDIzOSw3ICs0MzI4LDggQEANCj4gPj4+IHZyYl9i YmRldl9pbml0KHN0cnVjdCBydGVfYmJkZXYgKmRldiwgc3RydWN0DQo+ID4+IHJ0ZV9wY2lfZHJp dmVyICpkcnYpDQo+ID4+PiAgICAJCQlkLT5yZWdfYWRkciA9ICZ2cmIxX3BmX3JlZ19hZGRyOw0K PiA+Pj4gICAgCQllbHNlDQo+ID4+PiAgICAJCQlkLT5yZWdfYWRkciA9ICZ2cmIxX3ZmX3JlZ19h ZGRyOw0KPiA+Pj4gLQl9IGVsc2Ugew0KPiA+Pj4gKwl9IGVsc2UgaWYgKChwY2lfZGV2LT5pZC5k ZXZpY2VfaWQgPT0gUlRFX1ZSQjJfUEZfREVWSUNFX0lEKSB8fA0KPiA+Pj4gKwkJCShwY2lfZGV2 LT5pZC5kZXZpY2VfaWQgPT0gUlRFX1ZSQjJfVkZfREVWSUNFX0lEKSkgew0KPiA+Pj4gICAgCQlk LT5kZXZpY2VfdmFyaWFudCA9IFZSQjJfVkFSSUFOVDsNCj4gPj4+ICAgIAkJZC0+cXVldWVfb2Zm c2V0ID0gdnJiMl9xdWV1ZV9vZmZzZXQ7DQo+ID4+PiAgICAJCWQtPm51bV9xZ3JvdXBzID0gVlJC Ml9OVU1fUUdSUFM7DQo+ID4NCg0K