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 46401A0548; Sat, 24 Sep 2022 00:58:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E708B4067B; Sat, 24 Sep 2022 00:58:34 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 6EACF400D4 for ; Sat, 24 Sep 2022 00:58:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663973912; x=1695509912; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=L9nbusC7cJ2B13K3qPHIteyKBMKgpjNYBbCtogp9gxQ=; b=gkDSyD7yINg+30BSlbcdliBk3iFL7xdJUqoAJD0LFBbH+HtP8wbFFp7z QlAYFgz8YNZ1EkYh5snfnQp8c0QE/NWlnVtJZyU2E2cVQrOJWZyJZTsJG +lP8TQhNZAr9FL6xZLP/CPcwMQfQyGawa0+ta+bhevf3YXBMTpDf2rkHC 7Jdgq/RrP/R2hTNtuVoZzaE8sEI+UAP0NNFWXQk00Ow7RM2u+pnwTXZNs JnNFQjfjZ76EZzNftK2JXABq0Eul2/qLFtkTp4EY0xVRu1YzMZIJZVLdO HlAl2wiZ3T9SEc9LOvIaAE9REBIvAJNE8/mnWapndb0U+dODiXM9KdILK Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10479"; a="300695120" X-IronPort-AV: E=Sophos;i="5.93,340,1654585200"; d="scan'208";a="300695120" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2022 15:58:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,340,1654585200"; d="scan'208";a="622687347" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga007.fm.intel.com with ESMTP; 23 Sep 2022 15:58:26 -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.2375.31; Fri, 23 Sep 2022 15:58:26 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.2375.31; Fri, 23 Sep 2022 15:58:25 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2375.31 via Frontend Transport; Fri, 23 Sep 2022 15:58:25 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.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.2375.31; Fri, 23 Sep 2022 15:58:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YocXkgt+LKd4AHuO5ijL/1iXAMgTK+BJCK4cxGzsn+sRyHLAUsqVrAvxxeUcIhtGeVrKONfFJNLIxQCjlxiIpoaqEvBgjps7OuWxuo3DjrL53WcUjzkWCm8SsonFMf4ZzZEPJC7+Dzk8SRJwIc46+zIsaOvq6Fjwo93bNqV0OhByE9KqvlKP+EoigBlgcpQIrFGYW01qFGu5TvZOZOr/2N8Ixkf+VqiiNl0WaPvj8s5GSdUg5D5uIVigrgixZlTReNB5XYpjAeDJQAINRH9vwI99/zZpVuIfYE2QnBW7/aBZtXDDursiHhDq+Z9dTPY9i7vAelacl5SAUWs7F4kqgQ== 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=L9nbusC7cJ2B13K3qPHIteyKBMKgpjNYBbCtogp9gxQ=; b=Hy7AeKTmOzFJhBMEWHom1szce1OL5p46lMYjlP6x2Iky5tH/zl1snGD3Mz0A5QlA8B4RHroxSGMNonxEaTroR/bmnMCy2wxbOpvUfGjZvf3a/8UcdKCbViM+S+hgIXrVbIWRtIFNaTFqdaokohJvv/7indvganHMl5PkjfLgms/EhGUkdI3KPPv0kHrCNHfgsuM/l5JsUlasnIiPY+pYNRAECePX/SGQEcOgiQlKGMSRl7N2tbtJUj6MFDqyzdeQeBC2AVgq1dlZutsENFZ6LRE270nfMgyqQWTrIEj4Y5JoHT/yQxq1sCMJ+K369m1QMwi5EzqT/jsXULC9HHjaLQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by PH0PR11MB4903.namprd11.prod.outlook.com (2603:10b6:510:36::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.20; Fri, 23 Sep 2022 22:58:23 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::e6be:3feb:17fd:bdcf]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::e6be:3feb:17fd:bdcf%7]) with mapi id 15.20.5654.020; Fri, 23 Sep 2022 22:58:23 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" , "thomas@monjalon.net" CC: "trix@redhat.com" , "mdr@ashroe.eu" , "Richardson, Bruce" , "hemant.agrawal@nxp.com" , "david.marchand@redhat.com" , "stephen@networkplumber.org" , "Vargas, Hernan" Subject: RE: [PATCH v4 11/14] baseband/acc: support interrupt Thread-Topic: [PATCH v4 11/14] baseband/acc: support interrupt Thread-Index: AQHYzho20ot2wETHkkuliYFgll1gBK3svksAgADhXVA= Date: Fri, 23 Sep 2022 22:58:23 +0000 Message-ID: References: <1663806460-45162-1-git-send-email-nicolas.chautru@intel.com> <1663806460-45162-12-git-send-email-nicolas.chautru@intel.com> <5c2b9cf5-c600-32f5-7567-b9bb24f79ea0@redhat.com> In-Reply-To: <5c2b9cf5-c600-32f5-7567-b9bb24f79ea0@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR11MB4451:EE_|PH0PR11MB4903:EE_ x-ms-office365-filtering-correlation-id: bfd0f879-4867-435a-5e3a-08da9db71e03 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: u9g1Le2mMfJXtLKJd6q4y0vDKru/JZ8k+uZj0Vtnf+qSqhN9Xqwndwwjq8kdr973c8UPCao0z00UkpHEviW2lRJi4adVmN6rEpZmQ/nnK69/yo8rYoriWut/6lT9SixK663KTaJhLy+ALd5gohBvkzDDfre3AK8sB8hDfqaNkyvBpiLH0CMxxYL1mlj8p9/KNWUsMr6LWwugnF4GaCEe0G3cA+xRQWzlEVyK13HB6Etlb93fHPWSLLcRPCcAxo0o2srYBaxomtMl9DmEffKnzYhxc3DZpvDcBEi35U3lTV0EAYGYth8NKkQ9Q+k2fQwWA9Wj7QUfWchgBDS7qT+oxaotIbSbZnuB8w7mYcqB2Z5UAL84B3K7bW1lVJ3OR56rpPyir7IWrFw0Hpo2L1XzHPuI528833ZetL8YBjHCHoI81ofA2aMyVLEaHAT6TpdHX6n/5jThFIy55Qy9g1xt0CaVjmDFWtKD8tQVap0ktee6LhOZKSZHpQChSxbhM+8owdONDi7dtiIdlYn72Hrdys/L5gbHXQKQtFibcHs4P5uFrpVlOOUricAZl7mxL8Eyib2D4KwgT1stDO2Re02OUg6jK4ATnVrT1M9QYuvUsM0jnUK6aiU5I1tF6zLV4s43DjQvZrFipV/BR2S4+hezM6j2njaiRP2s1pS+iPEFJwsjIM91cRUDZ210rXqjg1kZyADt7oE06Gd2idf1+8UpeHFFfEc7ER76VzQM5n7/EewkM3TrgEB+5RVu8LGp3oIlWrGkyy8T6rin7i65XF6OWA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(54906003)(7696005)(30864003)(110136005)(2906002)(8936002)(316002)(52536014)(5660300002)(107886003)(41300700001)(71200400001)(478600001)(33656002)(122000001)(38100700002)(82960400001)(38070700005)(186003)(86362001)(53546011)(6506007)(9686003)(26005)(55016003)(83380400001)(66946007)(4326008)(76116006)(8676002)(66556008)(64756008)(66476007)(66446008)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?alJueDQxaCt5U3gwVUVxK0d0VXhmcmZxcE1Cd2dabzhRQmkreFpJQ05MdnIw?= =?utf-8?B?RVgyMXg5S0ZmRnRCdWZlUWZMR0k2SThEbkVsRjRETnNiSkVvaXlrc283cjEz?= =?utf-8?B?T0tWQUU4aWdtMUg5WFJLNENZSHFYbjFJdmVMME5ueTg1RVJMbjJ6eDFVQzk4?= =?utf-8?B?YmVYcGhYb0FqWGswR3BXMkhNcXMxTzhZK3QycXNPc0tSeWNKVUVuS2NHbms4?= =?utf-8?B?THJjZFpNM3pUSzJibzN4cFo4UmJxY2lzUnZqdkFmRzNtRFpJdEFDa0hXOHYr?= =?utf-8?B?NXpjS2FFcEIyMFhkWDM0Ykw4VWw5SVZ4MFFlVXVNT0x4UER3RW9kZmc4R2Zr?= =?utf-8?B?dkVyc2Jua0NTdzM2Wm9za3U0LzA2c0VBbWxIdi9wZHBFb2pnQytvcUlibzBC?= =?utf-8?B?QkhGMmk4ZDB3ei83Vm15cmRaWTFoN2ZBbWFzOUQ5Z0xERjVXRVhkZHJ6ZkIv?= =?utf-8?B?WURMZG1RbDdFMEZ6aVNlK0RnMUhHYmxpRVRTSlhaOWJRZ1hzS0ZOd2gyTEE4?= =?utf-8?B?Ky94WkVhUWdWdE9HR1hKU0l5YndMNGNGYUdPb0pia0YyUUc0bEd6UTZBT1Ni?= =?utf-8?B?b0VrTEZsYnNsc3kyaTdNaXpjMVBYRFZpM09aQ0FGL2YzNHBwT05WWVFyM1pU?= =?utf-8?B?blhIVVMwektCMHBTci94WXpxSWJId1FxRnp0UjVWWStnQVRKeUVBNVU5ZE15?= =?utf-8?B?KzBJUUh3SEpYQ2dpVFJqbnFKbHNBejh5cFBYaTRzeGcwa3V0TlFpY29zQys1?= =?utf-8?B?SjhBc2tEWlJibW01RGl5ZldHSmQrTFFpeFBiOUFQNGY0VUVYTG5hSWE4eFV2?= =?utf-8?B?cVlKazhwR3ZOMXQ5WDFXcDdIb01rS2dIYjFFaHIyWWg0a09jemszV2lsNk1O?= =?utf-8?B?MGVONVQ3K2FtWjNPR1hGTUJ5VGlIakpMUGxxR1pwMDQwQ3pjMjFuNGwrSmMr?= =?utf-8?B?a3N4K1UvUUpVenhwY3pMV2R2QjJBNEc2VzR3T1V3cW5scDNvcGd1bzlwc3E1?= =?utf-8?B?dTNpSlN3U1FpRE00cllSYjB4NG9ZUlJWT2w4R0tmemdaanNvS05zWk51dTlj?= =?utf-8?B?KzZxcW5QSmlDRE0yLzJ0STM5WTFJd3VGdkdGa2g5d2ZCMVNvWFgwak5EWW9h?= =?utf-8?B?a25paVFmVWg4QnA1K2szVFRsVWpFMTduM09tTExXVlBiRCtncmJhdzZvdmov?= =?utf-8?B?MVVMZ3VpRVlZT0IvbmVZZ2x6Rk9tajlGai9YdEVpMnNqVjJkQmNJTUJwK1pO?= =?utf-8?B?OU96VmFoeVJyUHhrb09sVzZLdzBFbEh1UHdNMXY5TStocklnVmk1ZHBKSFhm?= =?utf-8?B?YndTOWpqSnRodStUVWU1SFRDcDFlVTIwcmRRR1hJZHVwRUg5MER3YmhLc3Iv?= =?utf-8?B?Sm1PN0wvaEZqRnJsUG9xbW5ydllqWms2ZnY5R01vaHlQZEZMS3UyRVhFVlVv?= =?utf-8?B?T0ozbkZIdVQ3MFdCc0hpWWx3Q3Bpd2xOZmZvSFRMeGx5NXFZZ0N0VVNkMWJx?= =?utf-8?B?ZTBwbTJ0bXBwTnByVmhtVWg4TlcwN1JMZUpZa1ZBOU1VU1J5YzhTallhNXll?= =?utf-8?B?Q21ocWQ4ZFlxaXRmUzJrYnB1ejdPclA0ekVoVGFMZFFqTStINzlnZ25abWJ2?= =?utf-8?B?SmpkUjVTYU04cklPVFVBYm9vVlV1SXRhcmtLaU4ySmt2bXNDT0VTbmZFZHlF?= =?utf-8?B?NWUzSTBhckpIZVhLSDEyQjRMTVVxejI4MmJ5MldKTHJORWFjR1ZUZkh2Ylo1?= =?utf-8?B?a2NXNGxQWTdJTDlZYy9EYTVuV25LR0xoNXg3ZDdlTXhZSjY3QU44UmxoV0l1?= =?utf-8?B?WlJlMTFVVk9uQWNlSlBEcGlydkxIQXZNTnNCclVua00rWlRvWkZtUEh6RGtl?= =?utf-8?B?OUJ6YzNUckJJVFVNYlBhMCtSZjhjMzlZM21MNHJDWkFORVBKWnpGTDZHd2J1?= =?utf-8?B?L21aZ08wOUJ6UmNmNTJaNURPQ0lBRjJ2ckFsMmhBMmxhbE55NjdEa0pYWGlT?= =?utf-8?B?QThSMXg4amhpTjA4YVQ5Ym9ZbnpYUEQ1NXlnN21jSHhmNUdMRTVlYU1mVVF0?= =?utf-8?B?akZ1VCtkZVhaWUxQK29tS1A0NFRPODJHZDIwSDd2bFhHdGZRSmEwbEU2NVhh?= =?utf-8?Q?CvbiVdwo8/gjK94we0kFN/rwc?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfd0f879-4867-435a-5e3a-08da9db71e03 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2022 22:58:23.3990 (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: 5s3pqoCZ3+oCb5UpBIWekcPigHyDzbs+P9heg0GF26Lyyjj0oTDs5Fk9KaZn5vlGg4OxUWRFQNgtr4bVK7UbaqpxYa47GbM303S/jpvPPMM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4903 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 bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBGcmlkYXks IFNlcHRlbWJlciAyMywgMjAyMiAyOjE3IEFNDQo+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNv bGFzLmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOw0KPiB0aG9tYXNAbW9uamFsb24u bmV0DQo+IENjOiB0cml4QHJlZGhhdC5jb207IG1kckBhc2hyb2UuZXU7IFJpY2hhcmRzb24sIEJy dWNlDQo+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IGhlbWFudC5hZ3Jhd2FsQG54cC5j b207DQo+IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIu b3JnOyBWYXJnYXMsDQo+IEhlcm5hbiA8aGVybmFuLnZhcmdhc0BpbnRlbC5jb20+DQo+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0ggdjQgMTEvMTRdIGJhc2ViYW5kL2FjYzogc3VwcG9ydCBpbnRlcnJ1cHQN Cj4gDQo+IA0KPiANCj4gT24gOS8yMi8yMiAwMjoyNywgTmljIENoYXV0cnUgd3JvdGU6DQo+ID4g QWRkaW5nIHN1cHBvcnQgZm9yIGNhcGFiaWxpdHkgYW5kIGZ1bmN0aW9ucyBmb3IgTVNJL01TSS1Y IGludGVycnVwdA0KPiA+IGFuZCB1bmRlcmx5aW5nIGluZm9ybWF0aW9uIHJpbmcuDQo+ID4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBOaWMgQ2hhdXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4N Cj4gPiAtLS0NCj4gPiAgIGRyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2MyMDBfcG1kLmMgfCAz NDYNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiA+ICAgMSBmaWxlIGNo YW5nZWQsIDM0NCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2MyMDBfcG1kLmMNCj4gPiBiL2RyaXZl cnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2MyMDBfcG1kLmMNCj4gPiBpbmRleCBmYTIzYjZlLi5iOGI2 MjFhIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2MyMDBfcG1k LmMNCj4gPiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfYWNjMjAwX3BtZC5jDQo+ID4g QEAgLTIyMCw2ICsyMjAsMTkzIEBADQo+ID4gICAJCQlhY2NfY29uZi0+cV9mZnQuYXFfZGVwdGhf bG9nMik7DQo+ID4gICB9DQo+ID4NCj4gPiArLyogQ2hlY2tzIFBGIEluZm8gUmluZyB0byBmaW5k IHRoZSBpbnRlcnJ1cHQgY2F1c2UgYW5kIGhhbmRsZXMgaXQNCj4gPiArYWNjb3JkaW5nbHkgKi8g c3RhdGljIGlubGluZSB2b2lkIGFjYzIwMF9jaGVja19pcihzdHJ1Y3QgYWNjX2RldmljZQ0KPiA+ ICsqYWNjMjAwX2Rldikgew0KPiA+ICsJdm9sYXRpbGUgdW5pb24gYWNjX2luZm9fcmluZ19kYXRh ICpyaW5nX2RhdGE7DQo+ID4gKwl1aW50MTZfdCBpbmZvX3JpbmdfaGVhZCA9IGFjYzIwMF9kZXYt PmluZm9fcmluZ19oZWFkOw0KPiA+ICsJaWYgKGFjYzIwMF9kZXYtPmluZm9fcmluZyA9PSBOVUxM KQ0KPiA+ICsJCXJldHVybjsNCj4gPiArDQo+ID4gKwlyaW5nX2RhdGEgPSBhY2MyMDBfZGV2LT5p bmZvX3JpbmcgKyAoYWNjMjAwX2Rldi0+aW5mb19yaW5nX2hlYWQNCj4gJg0KPiA+ICsJCQlBQ0Nf SU5GT19SSU5HX01BU0spOw0KPiA+ICsNCj4gPiArCXdoaWxlIChyaW5nX2RhdGEtPnZhbGlkKSB7 DQo+ID4gKwkJaWYgKChyaW5nX2RhdGEtPmludF9uYiA8DQo+IEFDQzIwMF9QRl9JTlRfRE1BX0RM X0RFU0NfSVJRKSB8fCAoDQo+ID4gKwkJCQlyaW5nX2RhdGEtPmludF9uYiA+DQo+ID4gKwkJCQlB Q0MyMDBfUEZfSU5UX0RNQV9ETDVHX0RFU0NfSVJRKSkgew0KPiA+ICsJCQlydGVfYmJkZXZfbG9n KFdBUk5JTkcsICJJbmZvUmluZzogSVRSOiVkDQo+IEluZm86MHgleCIsDQo+ID4gKwkJCQlyaW5n X2RhdGEtPmludF9uYiwgcmluZ19kYXRhLQ0KPiA+ZGV0YWlsZWRfaW5mbyk7DQo+ID4gKwkJCS8q IEluaXRpYWxpemUgSW5mbyBSaW5nIGVudHJ5IGFuZCBtb3ZlIGZvcndhcmQgKi8NCj4gPiArCQkJ cmluZ19kYXRhLT52YWwgPSAwOw0KPiA+ICsJCX0NCj4gPiArCQlpbmZvX3JpbmdfaGVhZCsrOw0K PiA+ICsJCXJpbmdfZGF0YSA9IGFjYzIwMF9kZXYtPmluZm9fcmluZyArDQo+ID4gKwkJCQkoaW5m b19yaW5nX2hlYWQgJiBBQ0NfSU5GT19SSU5HX01BU0spOw0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4g Kw0KPiA+ICsvKiBDaGVja3MgUEYgSW5mbyBSaW5nIHRvIGZpbmQgdGhlIGludGVycnVwdCBjYXVz ZSBhbmQgaGFuZGxlcyBpdA0KPiA+ICthY2NvcmRpbmdseSAqLyBzdGF0aWMgaW5saW5lIHZvaWQg YWNjMjAwX3BmX2ludGVycnVwdF9oYW5kbGVyKHN0cnVjdA0KPiA+ICtydGVfYmJkZXYgKmRldikg ew0KPiA+ICsJc3RydWN0IGFjY19kZXZpY2UgKmFjYzIwMF9kZXYgPSBkZXYtPmRhdGEtPmRldl9w cml2YXRlOw0KPiA+ICsJdm9sYXRpbGUgdW5pb24gYWNjX2luZm9fcmluZ19kYXRhICpyaW5nX2Rh dGE7DQo+ID4gKwlzdHJ1Y3QgYWNjX2RlcV9pbnRyX2RldGFpbHMgZGVxX2ludHJfZGV0Ow0KPiA+ ICsNCj4gPiArCXJpbmdfZGF0YSA9IGFjYzIwMF9kZXYtPmluZm9fcmluZyArIChhY2MyMDBfZGV2 LT5pbmZvX3JpbmdfaGVhZA0KPiAmDQo+ID4gKwkJCUFDQ19JTkZPX1JJTkdfTUFTSyk7DQo+ID4g Kw0KPiA+ICsJd2hpbGUgKHJpbmdfZGF0YS0+dmFsaWQpIHsNCj4gPiArDQo+ID4gKwkJcnRlX2Ji ZGV2X2xvZ19kZWJ1ZygNCj4gPiArCQkJCSJBQ0MyMDAgUEYgSW50ZXJydXB0IHJlY2VpdmVkLCBJ bmZvIFJpbmcNCj4gZGF0YTogMHgleCAtPiAlZCIsDQo+ID4gKwkJCQlyaW5nX2RhdGEtPnZhbCwg cmluZ19kYXRhLT5pbnRfbmIpOw0KPiA+ICsNCj4gPiArCQlzd2l0Y2ggKHJpbmdfZGF0YS0+aW50 X25iKSB7DQo+ID4gKwkJY2FzZSBBQ0MyMDBfUEZfSU5UX0RNQV9ETF9ERVNDX0lSUToNCj4gPiAr CQljYXNlIEFDQzIwMF9QRl9JTlRfRE1BX1VMX0RFU0NfSVJROg0KPiA+ICsJCWNhc2UgQUNDMjAw X1BGX0lOVF9ETUFfRkZUX0RFU0NfSVJROg0KPiA+ICsJCWNhc2UgQUNDMjAwX1BGX0lOVF9ETUFf VUw1R19ERVNDX0lSUToNCj4gPiArCQljYXNlIEFDQzIwMF9QRl9JTlRfRE1BX0RMNUdfREVTQ19J UlE6DQo+ID4gKwkJCWRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9DQo+IGdldF9xdWV1ZV9pZF9mcm9t X3JpbmdfaW5mbygNCj4gPiArCQkJCQlkZXYtPmRhdGEsICpyaW5nX2RhdGEpOw0KPiA+ICsJCQlp ZiAoZGVxX2ludHJfZGV0LnF1ZXVlX2lkID09IFVJTlQxNl9NQVgpIHsNCj4gPiArCQkJCXJ0ZV9i YmRldl9sb2coRVJSLA0KPiA+ICsJCQkJCQkiQ291bGRuJ3QgZmluZCBxdWV1ZTogYXFfaWQ6DQo+ ICV1LCBxZ19pZDogJXUsIHZmX2lkOiAldSIsDQo+ID4gKwkJCQkJCXJpbmdfZGF0YS0+YXFfaWQs DQo+ID4gKwkJCQkJCXJpbmdfZGF0YS0+cWdfaWQsDQo+ID4gKwkJCQkJCXJpbmdfZGF0YS0+dmZf aWQpOw0KPiA+ICsJCQkJcmV0dXJuOw0KPiA+ICsJCQl9DQo+ID4gKwkJCXJ0ZV9iYmRldl9wbWRf Y2FsbGJhY2tfcHJvY2VzcyhkZXYsDQo+ID4gKwkJCQkJUlRFX0JCREVWX0VWRU5UX0RFUVVFVUUs DQo+ICZkZXFfaW50cl9kZXQpOw0KPiA+ICsJCQlicmVhazsNCj4gPiArCQlkZWZhdWx0Og0KPiA+ ICsJCQlydGVfYmJkZXZfcG1kX2NhbGxiYWNrX3Byb2Nlc3MoZGV2LA0KPiA+ICsJCQkJCVJURV9C QkRFVl9FVkVOVF9FUlJPUiwgTlVMTCk7DQo+ID4gKwkJCWJyZWFrOw0KPiA+ICsJCX0NCj4gPiAr DQo+ID4gKwkJLyogSW5pdGlhbGl6ZSBJbmZvIFJpbmcgZW50cnkgYW5kIG1vdmUgZm9yd2FyZCAq Lw0KPiA+ICsJCXJpbmdfZGF0YS0+dmFsID0gMDsNCj4gPiArCQkrK2FjYzIwMF9kZXYtPmluZm9f cmluZ19oZWFkOw0KPiA+ICsJCXJpbmdfZGF0YSA9IGFjYzIwMF9kZXYtPmluZm9fcmluZyArDQo+ ID4gKwkJCQkoYWNjMjAwX2Rldi0+aW5mb19yaW5nX2hlYWQgJg0KPiBBQ0NfSU5GT19SSU5HX01B U0spOw0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiBDaGVja3MgVkYgSW5mbyBSaW5n IHRvIGZpbmQgdGhlIGludGVycnVwdCBjYXVzZSBhbmQgaGFuZGxlcyBpdA0KPiA+ICthY2NvcmRp bmdseSAqLyBzdGF0aWMgaW5saW5lIHZvaWQgYWNjMjAwX3ZmX2ludGVycnVwdF9oYW5kbGVyKHN0 cnVjdA0KPiA+ICtydGVfYmJkZXYgKmRldikgew0KPiA+ICsJc3RydWN0IGFjY19kZXZpY2UgKmFj YzIwMF9kZXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJdm9sYXRpbGUgdW5pb24g YWNjX2luZm9fcmluZ19kYXRhICpyaW5nX2RhdGE7DQo+ID4gKwlzdHJ1Y3QgYWNjX2RlcV9pbnRy X2RldGFpbHMgZGVxX2ludHJfZGV0Ow0KPiA+ICsNCj4gPiArCXJpbmdfZGF0YSA9IGFjYzIwMF9k ZXYtPmluZm9fcmluZyArIChhY2MyMDBfZGV2LT5pbmZvX3JpbmdfaGVhZA0KPiAmDQo+ID4gK0FD Q19JTkZPX1JJTkdfTUFTSyk7DQo+ID4gKw0KPiA+ICsJd2hpbGUgKHJpbmdfZGF0YS0+dmFsaWQp IHsNCj4gPiArDQo+ID4gKwkJcnRlX2JiZGV2X2xvZ19kZWJ1ZygNCj4gPiArCQkJCSJBQ0MyMDAg VkYgSW50ZXJydXB0IHJlY2VpdmVkLCBJbmZvIFJpbmcNCj4gZGF0YTogMHgleFxuIiwNCj4gPiAr CQkJCXJpbmdfZGF0YS0+dmFsKTsNCj4gPiArDQo+ID4gKwkJc3dpdGNoIChyaW5nX2RhdGEtPmlu dF9uYikgew0KPiA+ICsJCWNhc2UgQUNDMjAwX1ZGX0lOVF9ETUFfRExfREVTQ19JUlE6DQo+ID4g KwkJY2FzZSBBQ0MyMDBfVkZfSU5UX0RNQV9VTF9ERVNDX0lSUToNCj4gPiArCQljYXNlIEFDQzIw MF9WRl9JTlRfRE1BX0ZGVF9ERVNDX0lSUToNCj4gPiArCQljYXNlIEFDQzIwMF9WRl9JTlRfRE1B X1VMNUdfREVTQ19JUlE6DQo+ID4gKwkJY2FzZSBBQ0MyMDBfVkZfSU5UX0RNQV9ETDVHX0RFU0Nf SVJROg0KPiA+ICsJCQkvKiBWRnMgYXJlIG5vdCBhd2FyZSBvZiB0aGVpciB2Zl9pZCAtIGl0J3Mg c2V0IHRvIDAgaW4NCj4gPiArCQkJICogcXVldWUgc3RydWN0dXJlcy4NCj4gPiArCQkJICovDQo+ ID4gKwkJCXJpbmdfZGF0YS0+dmZfaWQgPSAwOw0KPiA+ICsJCQlkZXFfaW50cl9kZXQucXVldWVf aWQgPQ0KPiBnZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oDQo+ID4gKwkJCQkJZGV2LT5kYXRh LCAqcmluZ19kYXRhKTsNCj4gPiArCQkJaWYgKGRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9PSBVSU5U MTZfTUFYKSB7DQo+ID4gKwkJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiArCQkJCQkJIkNvdWxk bid0IGZpbmQgcXVldWU6IGFxX2lkOg0KPiAldSwgcWdfaWQ6ICV1IiwNCj4gPiArCQkJCQkJcmlu Z19kYXRhLT5hcV9pZCwNCj4gPiArCQkJCQkJcmluZ19kYXRhLT5xZ19pZCk7DQo+ID4gKwkJCQly ZXR1cm47DQo+ID4gKwkJCX0NCj4gPiArCQkJcnRlX2JiZGV2X3BtZF9jYWxsYmFja19wcm9jZXNz KGRldiwNCj4gPiArCQkJCQlSVEVfQkJERVZfRVZFTlRfREVRVUVVRSwNCj4gJmRlcV9pbnRyX2Rl dCk7DQo+ID4gKwkJCWJyZWFrOw0KPiA+ICsJCWRlZmF1bHQ6DQo+ID4gKwkJCXJ0ZV9iYmRldl9w bWRfY2FsbGJhY2tfcHJvY2VzcyhkZXYsDQo+ID4gKwkJCQkJUlRFX0JCREVWX0VWRU5UX0VSUk9S LCBOVUxMKTsNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQkvKiBJbml0 aWFsaXplIEluZm8gUmluZyBlbnRyeSBhbmQgbW92ZSBmb3J3YXJkICovDQo+ID4gKwkJcmluZ19k YXRhLT52YWxpZCA9IDA7DQo+ID4gKwkJKythY2MyMDBfZGV2LT5pbmZvX3JpbmdfaGVhZDsNCj4g PiArCQlyaW5nX2RhdGEgPSBhY2MyMDBfZGV2LT5pbmZvX3JpbmcgKyAoYWNjMjAwX2Rldi0NCj4g PmluZm9fcmluZ19oZWFkDQo+ID4gKwkJCQkmIEFDQ19JTkZPX1JJTkdfTUFTSyk7DQo+ID4gKwl9 DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIEludGVycnVwdCBoYW5kbGVyIHRyaWdnZXJlZCBieSBB Q0MyMDAgZGV2IGZvciBoYW5kbGluZyBzcGVjaWZpYw0KPiA+ICtpbnRlcnJ1cHQgKi8gc3RhdGlj IHZvaWQgYWNjMjAwX2Rldl9pbnRlcnJ1cHRfaGFuZGxlcih2b2lkICpjYl9hcmcpIHsNCj4gPiAr CXN0cnVjdCBydGVfYmJkZXYgKmRldiA9IGNiX2FyZzsNCj4gPiArCXN0cnVjdCBhY2NfZGV2aWNl ICphY2MyMDBfZGV2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArDQo+ID4gKwkvKiBS ZWFkIGluZm8gcmluZyAqLw0KPiA+ICsJaWYgKGFjYzIwMF9kZXYtPnBmX2RldmljZSkNCj4gPiAr CQlhY2MyMDBfcGZfaW50ZXJydXB0X2hhbmRsZXIoZGV2KTsNCj4gPiArCWVsc2UNCj4gPiArCQlh Y2MyMDBfdmZfaW50ZXJydXB0X2hhbmRsZXIoZGV2KTsNCj4gPiArfQ0KPiANCj4gQm90aCBoYW5k bGVycyBhcmUgcXVpdGUgaWRlbnRpY2FsLCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gcmV3b3Jr IGRpZmZlcmVudGx5DQo+IHNvIHRoYXQgbW9yZSBjb2RlIGFyZSBzaGFyZWQgYmV0d2VlbiBQRiBh bmQgVkYgY2FzZXMuDQoNCk9LDQoNCj4gDQo+ID4gKw0KPiA+ICsvKiBBbGxvY2F0ZSBhbmQgc2V0 dXAgaW5mb3JpbmcgKi8NCj4gPiArc3RhdGljIGludA0KPiA+ICthbGxvY2F0ZV9pbmZvX3Jpbmco c3RydWN0IHJ0ZV9iYmRldiAqZGV2KSB7DQo+ID4gKwlzdHJ1Y3QgYWNjX2RldmljZSAqZCA9IGRl di0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKwljb25zdCBzdHJ1Y3QgYWNjMjAwX3JlZ2lzdHJ5 X2FkZHIgKnJlZ19hZGRyOw0KPiA+ICsJcnRlX2lvdmFfdCBpbmZvX3JpbmdfaW92YTsNCj4gPiAr CXVpbnQzMl90IHBoeXNfbG93LCBwaHlzX2hpZ2g7DQo+ID4gKw0KPiA+ICsJaWYgKGQtPmluZm9f cmluZyAhPSBOVUxMKQ0KPiA+ICsJCXJldHVybiAwOyAvKiBBbHJlYWR5IGNvbmZpZ3VyZWQgKi8N Cj4gPiArDQo+ID4gKwkvKiBDaG9vc2UgY29ycmVjdCByZWdpc3RyeSBhZGRyZXNzZXMgZm9yIHRo ZSBkZXZpY2UgdHlwZSAqLw0KPiA+ICsJaWYgKGQtPnBmX2RldmljZSkNCj4gPiArCQlyZWdfYWRk ciA9ICZwZl9yZWdfYWRkcjsNCj4gPiArCWVsc2UNCj4gPiArCQlyZWdfYWRkciA9ICZ2Zl9yZWdf YWRkcjsNCj4gPiArCS8qIEFsbG9jYXRlIEluZm9SaW5nICovDQo+ID4gKwlpZiAoZC0+aW5mb19y aW5nID09IE5VTEwpDQo+IA0KPiBUaGlzIGNoZWNrIGlzIHVzZWxlc3Mgc2luY2UgaXQgaXMgYWxy ZWFkeSBkb25lIGVhcmxpZXIuDQoNClRoYW5rcw0KDQo+IA0KPiA+ICsJCWQtPmluZm9fcmluZyA9 IHJ0ZV96bWFsbG9jX3NvY2tldCgiSW5mbyBSaW5nIiwNCj4gPiArCQkJCUFDQ19JTkZPX1JJTkdf TlVNX0VOVFJJRVMgKg0KPiA+ICsJCQkJc2l6ZW9mKCpkLT5pbmZvX3JpbmcpLA0KPiBSVEVfQ0FD SEVfTElORV9TSVpFLA0KPiA+ICsJCQkJZGV2LT5kYXRhLT5zb2NrZXRfaWQpOw0KPiA+ICsJaWYg KGQtPmluZm9fcmluZyA9PSBOVUxMKSB7DQo+ID4gKwkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4g KwkJCQkiRmFpbGVkIHRvIGFsbG9jYXRlIEluZm8gUmluZyBmb3IgJXM6JXUiLA0KPiA+ICsJCQkJ ZGV2LT5kZXZpY2UtPmRyaXZlci0+bmFtZSwNCj4gPiArCQkJCWRldi0+ZGF0YS0+ZGV2X2lkKTsN Cj4gPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gPiArCX0NCj4gPiArCWluZm9fcmluZ19pb3ZhID0g cnRlX21hbGxvY192aXJ0MmlvdmEoZC0+aW5mb19yaW5nKTsNCj4gPiArDQo+ID4gKwkvKiBTZXR1 cCBJbmZvIFJpbmcgKi8NCj4gPiArCXBoeXNfaGlnaCA9ICh1aW50MzJfdCkoaW5mb19yaW5nX2lv dmEgPj4gMzIpOw0KPiA+ICsJcGh5c19sb3cgID0gKHVpbnQzMl90KShpbmZvX3JpbmdfaW92YSk7 DQo+ID4gKwlhY2NfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT5pbmZvX3JpbmdfaGksIHBoeXNfaGln aCk7DQo+ID4gKwlhY2NfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT5pbmZvX3JpbmdfbG8sIHBoeXNf bG93KTsNCj4gPiArCWFjY19yZWdfd3JpdGUoZCwgcmVnX2FkZHItPmluZm9fcmluZ19lbiwNCj4g QUNDMjAwX1JFR19JUlFfRU5fQUxMKTsNCj4gPiArCWQtPmluZm9fcmluZ19oZWFkID0gKGFjY19y ZWdfcmVhZChkLCByZWdfYWRkci0+aW5mb19yaW5nX3B0cikgJg0KPiA+ICsJCQkweEZGRikgLyBz aXplb2YodW5pb24gYWNjX2luZm9fcmluZ19kYXRhKTsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9 DQo+ID4gKw0KPiA+ICsNCj4gPiAgIC8qIEFsbG9jYXRlIDY0TUIgbWVtb3J5IHVzZWQgZm9yIGFs bCBzb2Z0d2FyZSByaW5ncyAqLw0KPiA+ICAgc3RhdGljIGludA0KPiA+ICAgYWNjMjAwX3NldHVw X3F1ZXVlcyhzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsIHVpbnQxNl90IG51bV9xdWV1ZXMsIGludA0K PiA+IHNvY2tldF9pZCkgQEAgLTIyNyw2ICs0MTQsNyBAQA0KPiA+ICAgCXVpbnQzMl90IHBoeXNf bG93LCBwaHlzX2hpZ2gsIHZhbHVlOw0KPiA+ICAgCXN0cnVjdCBhY2NfZGV2aWNlICpkID0gZGV2 LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiAgIAljb25zdCBzdHJ1Y3QgYWNjMjAwX3JlZ2lzdHJ5 X2FkZHIgKnJlZ19hZGRyOw0KPiA+ICsJaW50IHJldDsNCj4gPg0KPiA+ICAgCWlmIChkLT5wZl9k ZXZpY2UgJiYgIWQtPmFjY19jb25mLnBmX21vZGVfZW4pIHsNCj4gPiAgIAkJcnRlX2JiZGV2X2xv ZyhOT1RJQ0UsDQo+ID4gQEAgLTMyNyw2ICs1MTUsMTQgQEANCj4gPiAgIAlhY2NfcmVnX3dyaXRl KGQsIHJlZ19hZGRyLT50YWlsX3B0cnNfZmZ0X2hpLCBwaHlzX2hpZ2gpOw0KPiA+ICAgCWFjY19y ZWdfd3JpdGUoZCwgcmVnX2FkZHItPnRhaWxfcHRyc19mZnRfbG8sIHBoeXNfbG93KTsNCj4gPg0K PiA+ICsJcmV0ID0gYWxsb2NhdGVfaW5mb19yaW5nKGRldik7DQo+ID4gKwlpZiAocmV0IDwgMCkg ew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiRmFpbGVkIHRvIGFsbG9jYXRlIGluZm9fcmlu ZyBmb3IgJXM6JXUiLA0KPiA+ICsJCQkJZGV2LT5kZXZpY2UtPmRyaXZlci0+bmFtZSwNCj4gPiAr CQkJCWRldi0+ZGF0YS0+ZGV2X2lkKTsNCj4gPiArCQkvKiBDb250aW51ZSAqLw0KPiA+ICsJfQ0K PiA+ICsNCj4gPiAgIAlpZiAoZC0+aGFycV9sYXlvdXQgPT0gTlVMTCkNCj4gPiAgIAkJZC0+aGFy cV9sYXlvdXQgPSBydGVfem1hbGxvY19zb2NrZXQoIkhBUlEgTGF5b3V0IiwNCj4gPiAgIAkJCQlB Q0NfSEFSUV9MQVlPVVQgKiBzaXplb2YoKmQtDQo+ID5oYXJxX2xheW91dCksIEBAIC0zNDksMTcg KzU0NSwxMjENCj4gPiBAQA0KPiA+ICAgCXJldHVybiAwOw0KPiA+ICAgfQ0KPiA+DQo+ID4gK3N0 YXRpYyBpbnQNCj4gPiArYWNjMjAwX2ludHJfZW5hYmxlKHN0cnVjdCBydGVfYmJkZXYgKmRldikg ew0KPiA+ICsJaW50IHJldDsNCj4gPiArCXN0cnVjdCBhY2NfZGV2aWNlICpkID0gZGV2LT5kYXRh LT5kZXZfcHJpdmF0ZTsNCj4gPiArCS8qDQo+ID4gKwkgKiBNU0kvTVNJLVggYXJlIHN1cHBvcnRl ZA0KPiA+ICsJICogT3B0aW9uIGNvbnRyb2xsZWQgYnkgdmZpby1pbnRyIHRocm91Z2ggRUFMIHBh cmFtZXRlcg0KPiA+ICsJICovDQo+ID4gKwlpZiAocnRlX2ludHJfdHlwZV9nZXQoZGV2LT5pbnRy X2hhbmRsZSkgPT0NCj4gUlRFX0lOVFJfSEFORExFX1ZGSU9fTVNJKQ0KPiA+ICt7DQo+ID4gKw0K PiA+ICsJCXJldCA9IGFsbG9jYXRlX2luZm9fcmluZyhkZXYpOw0KPiA+ICsJCWlmIChyZXQgPCAw KSB7DQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICsJCQkJCSJDb3VsZG4ndCBhbGxv Y2F0ZSBpbmZvIHJpbmcgZm9yDQo+IGRldmljZTogJXMiLA0KPiA+ICsJCQkJCWRldi0+ZGF0YS0+ bmFtZSk7DQo+ID4gKwkJCXJldHVybiByZXQ7DQo+ID4gKwkJfQ0KPiA+ICsJCXJldCA9IHJ0ZV9p bnRyX2VuYWJsZShkZXYtPmludHJfaGFuZGxlKTsNCj4gPiArCQlpZiAocmV0IDwgMCkgew0KPiA+ ICsJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiArCQkJCQkiQ291bGRuJ3QgZW5hYmxlIGludGVy cnVwdHMgZm9yDQo+IGRldmljZTogJXMiLA0KPiA+ICsJCQkJCWRldi0+ZGF0YS0+bmFtZSk7DQo+ ID4gKwkJCXJ0ZV9mcmVlKGQtPmluZm9fcmluZyk7DQo+ID4gKwkJCXJldHVybiByZXQ7DQo+ID4g KwkJfQ0KPiA+ICsJCXJldCA9IHJ0ZV9pbnRyX2NhbGxiYWNrX3JlZ2lzdGVyKGRldi0+aW50cl9o YW5kbGUsDQo+ID4gKwkJCQlhY2MyMDBfZGV2X2ludGVycnVwdF9oYW5kbGVyLCBkZXYpOw0KPiA+ ICsJCWlmIChyZXQgPCAwKSB7DQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICsJCQkJ CSJDb3VsZG4ndCByZWdpc3RlciBpbnRlcnJ1cHQgY2FsbGJhY2sNCj4gZm9yIGRldmljZTogJXMi LA0KPiA+ICsJCQkJCWRldi0+ZGF0YS0+bmFtZSk7DQo+ID4gKwkJCXJ0ZV9mcmVlKGQtPmluZm9f cmluZyk7DQo+ID4gKwkJCXJldHVybiByZXQ7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQlyZXR1 cm4gMDsNCj4gPiArCX0gZWxzZSBpZiAocnRlX2ludHJfdHlwZV9nZXQoZGV2LT5pbnRyX2hhbmRs ZSkgPT0NCj4gPiArUlRFX0lOVFJfSEFORExFX1ZGSU9fTVNJWCkgew0KPiA+ICsNCj4gPiArCQly ZXQgPSBhbGxvY2F0ZV9pbmZvX3JpbmcoZGV2KTsNCj4gPiArCQlpZiAocmV0IDwgMCkgew0KPiA+ ICsJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiArCQkJCQkiQ291bGRuJ3QgYWxsb2NhdGUgaW5m byByaW5nIGZvcg0KPiBkZXZpY2U6ICVzIiwNCj4gPiArCQkJCQlkZXYtPmRhdGEtPm5hbWUpOw0K PiA+ICsJCQlyZXR1cm4gcmV0Ow0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJaW50IGksIG1heF9x dWV1ZXM7DQo+ID4gKwkJc3RydWN0IGFjY19kZXZpY2UgKmFjYzIwMF9kZXYgPSBkZXYtPmRhdGEt PmRldl9wcml2YXRlOw0KPiANCj4gRG9uJ3QgbWl4IGRlY2xhcmF0aW9ucyAmIGNvZGUuDQoNCk9L DQoNCj4gDQo+ID4gKwkJaWYgKGFjYzIwMF9kZXYtPnBmX2RldmljZSkNCj4gPiArCQkJbWF4X3F1 ZXVlcyA9IEFDQzIwMF9NQVhfUEZfTVNJWDsNCj4gPiArCQllbHNlDQo+ID4gKwkJCW1heF9xdWV1 ZXMgPSBBQ0MyMDBfTUFYX1ZGX01TSVg7DQo+ID4gKw0KPiA+ICsJCWlmIChydGVfaW50cl9lZmRf ZW5hYmxlKGRldi0+aW50cl9oYW5kbGUsIG1heF9xdWV1ZXMpKSB7DQo+ID4gKwkJCXJ0ZV9iYmRl dl9sb2coRVJSLCAiRmFpbGVkIHRvIGNyZWF0ZSBmZHMgZm9yICV1DQo+IHF1ZXVlcyIsDQo+ID4g KwkJCQkJZGV2LT5kYXRhLT5udW1fcXVldWVzKTsNCj4gPiArCQkJcmV0dXJuIC0xOw0KPiA+ICsJ CX0NCj4gPiArDQo+ID4gKwkJZm9yIChpID0gMDsgaSA8IG1heF9xdWV1ZXM7ICsraSkgew0KPiA+ ICsJCQlpZiAocnRlX2ludHJfZWZkc19pbmRleF9zZXQoZGV2LT5pbnRyX2hhbmRsZSwgaSwNCj4g PiArCQkJCQlydGVfaW50cl9mZF9nZXQoZGV2LT5pbnRyX2hhbmRsZSkpKQ0KPiA+ICsJCQkJcmV0 dXJuIC1ydGVfZXJybm87DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQlpZiAocnRlX2ludHJfdmVj X2xpc3RfYWxsb2MoZGV2LT5pbnRyX2hhbmRsZSwgImludHJfdmVjIiwNCj4gPiArCQkJCWRldi0+ ZGF0YS0+bnVtX3F1ZXVlcykpIHsNCj4gPiArCQkJcnRlX2JiZGV2X2xvZyhFUlIsICJGYWlsZWQg dG8gYWxsb2NhdGUgJXUgdmVjdG9ycyIsDQo+ID4gKwkJCQkJZGV2LT5kYXRhLT5udW1fcXVldWVz KTsNCj4gPiArCQkJcmV0dXJuIC1FTk9NRU07DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQlyZXQg PSBydGVfaW50cl9lbmFibGUoZGV2LT5pbnRyX2hhbmRsZSk7DQo+ID4gKw0KPiA+ICsJCWlmIChy ZXQgPCAwKSB7DQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICsJCQkJCSJDb3VsZG4n dCBlbmFibGUgaW50ZXJydXB0cyBmb3INCj4gZGV2aWNlOiAlcyIsDQo+ID4gKwkJCQkJZGV2LT5k YXRhLT5uYW1lKTsNCj4gPiArCQkJcnRlX2ZyZWUoZC0+aW5mb19yaW5nKTsNCj4gPiArCQkJcmV0 dXJuIHJldDsNCj4gPiArCQl9DQo+ID4gKwkJcmV0ID0gcnRlX2ludHJfY2FsbGJhY2tfcmVnaXN0 ZXIoZGV2LT5pbnRyX2hhbmRsZSwNCj4gPiArCQkJCWFjYzIwMF9kZXZfaW50ZXJydXB0X2hhbmRs ZXIsIGRldik7DQo+ID4gKwkJaWYgKHJldCA8IDApIHsNCj4gPiArCQkJcnRlX2JiZGV2X2xvZyhF UlIsDQo+ID4gKwkJCQkJIkNvdWxkbid0IHJlZ2lzdGVyIGludGVycnVwdCBjYWxsYmFjaw0KPiBm b3IgZGV2aWNlOiAlcyIsDQo+ID4gKwkJCQkJZGV2LT5kYXRhLT5uYW1lKTsNCj4gPiArCQkJcnRl X2ZyZWUoZC0+aW5mb19yaW5nKTsNCj4gPiArCQkJcmV0dXJuIHJldDsNCj4gPiArCQl9DQo+ID4g Kw0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJ0ZV9iYmRldl9sb2co RVJSLCAiQUNDMjAwICglcykgc3VwcG9ydHMgb25seSBWRklPIE1TSS9NU0ktWA0KPiBpbnRlcnJ1 cHRzXG4iLA0KPiA+ICsJCQlkZXYtPmRhdGEtPm5hbWUpOw0KPiA+ICsJcmV0dXJuIC1FTk9UU1VQ Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICAgLyogRnJlZSBtZW1vcnkgdXNlZCBmb3Igc29mdHdhcmUg cmluZ3MgKi8NCj4gPiAgIHN0YXRpYyBpbnQNCj4gPiAgIGFjYzIwMF9kZXZfY2xvc2Uoc3RydWN0 IHJ0ZV9iYmRldiAqZGV2KQ0KPiA+ICAgew0KPiA+ICAgCXN0cnVjdCBhY2NfZGV2aWNlICpkID0g ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArCWFjYzIwMF9jaGVja19pcihkKTsNCj4gPiAg IAlpZiAoZC0+c3dfcmluZ3NfYmFzZSAhPSBOVUxMKSB7DQo+ID4gICAJCXJ0ZV9mcmVlKGQtPnRh aWxfcHRycyk7DQo+ID4gKwkJcnRlX2ZyZWUoZC0+aW5mb19yaW5nKTsNCj4gPiAgIAkJcnRlX2Zy ZWUoZC0+c3dfcmluZ3NfYmFzZSk7DQo+ID4gICAJCXJ0ZV9mcmVlKGQtPmhhcnFfbGF5b3V0KTsN Cj4gPiAgIAkJZC0+c3dfcmluZ3NfYmFzZSA9IE5VTEw7DQo+ID4gICAJCWQtPnRhaWxfcHRycyA9 IE5VTEw7DQo+ID4gKwkJZC0+aW5mb19yaW5nID0gTlVMTDsNCj4gPiAgIAkJZC0+aGFycV9sYXlv dXQgPSBOVUxMOw0KPiA+ICAgCX0NCj4gPiAgIAkvKiBFbnN1cmUgYWxsIGluIGZsaWdodCBIVyB0 cmFuc2FjdGlvbnMgYXJlIGNvbXBsZXRlZCAqLyBAQCAtNjUyLDYNCj4gPiArOTUyLDcgQEANCj4g Pg0KPiAJUlRFX0JCREVWX1RVUkJPX0NPTlRJTlVFX0NSQ19NQVRDSCB8DQo+ID4gICAJCQkJCVJU RV9CQkRFVl9UVVJCT19TT0ZUX09VVFBVVA0KPiB8DQo+ID4NCj4gCVJURV9CQkRFVl9UVVJCT19F QVJMWV9URVJNSU5BVElPTiB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX1RVUkJPX0RFQ19JTlRFUlJV UFRTIHwNCj4gPg0KPiAJUlRFX0JCREVWX1RVUkJPX05FR19MTFJfMV9CSVRfSU4gfA0KPiA+DQo+ IAlSVEVfQkJERVZfVFVSQk9fTkVHX0xMUl8xX0JJVF9TT0ZUX09VVCB8DQo+ID4gICAJCQkJCVJU RV9CQkRFVl9UVVJCT19NQVBfREVDIHwNCj4gPiBAQCAtNjczLDYgKzk3NCw3IEBADQo+ID4NCj4g CVJURV9CQkRFVl9UVVJCT19DUkNfMjRCX0FUVEFDSCB8DQo+ID4NCj4gCVJURV9CQkRFVl9UVVJC T19SVl9JTkRFWF9CWVBBU1MgfA0KPiA+ICAgCQkJCQlSVEVfQkJERVZfVFVSQk9fUkFURV9NQVRD SCB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX1RVUkJPX0VOQ19JTlRFUlJVUFRTIHwNCj4gPg0KPiAJ UlRFX0JCREVWX1RVUkJPX0VOQ19TQ0FUVEVSX0dBVEhFUiwNCj4gPiAgIAkJCQkubnVtX2J1ZmZl cnNfc3JjID0NCj4gPg0KPiAJUlRFX0JCREVWX1RVUkJPX01BWF9DT0RFX0JMT0NLUywgQEAgLTY4 Niw3ICs5ODgsOCBAQA0KPiA+ICAgCQkJCS5jYXBhYmlsaXR5X2ZsYWdzID0NCj4gPiAgIAkJCQkJ UlRFX0JCREVWX0xEUENfUkFURV9NQVRDSCB8DQo+ID4NCj4gCVJURV9CQkRFVl9MRFBDX0NSQ18y NEJfQVRUQUNIIHwNCj4gPiAtDQo+IAlSVEVfQkJERVZfTERQQ19JTlRFUkxFQVZFUl9CWVBBU1Ms DQo+ID4gKw0KPiAJUlRFX0JCREVWX0xEUENfSU5URVJMRUFWRVJfQllQQVNTIHwNCj4gPiArDQo+ IAlSVEVfQkJERVZfTERQQ19FTkNfSU5URVJSVVBUUywNCj4gPiAgIAkJCQkubnVtX2J1ZmZlcnNf c3JjID0NCj4gPg0KPiAJUlRFX0JCREVWX0xEUENfTUFYX0NPREVfQkxPQ0tTLA0KPiA+ICAgCQkJ CS5udW1fYnVmZmVyc19kc3QgPQ0KPiA+IEBAIC03MDcsNyArMTAxMCw4IEBADQo+ID4gICAJCQkJ UlRFX0JCREVWX0xEUENfREVJTlRFUkxFQVZFUl9CWVBBU1MNCj4gfA0KPiA+ICAgCQkJCVJURV9C QkRFVl9MRFBDX0RFQ19TQ0FUVEVSX0dBVEhFUiB8DQo+ID4NCj4gCVJURV9CQkRFVl9MRFBDX0hB UlFfNkJJVF9DT01QUkVTU0lPTiB8DQo+ID4gLQkJCQlSVEVfQkJERVZfTERQQ19MTFJfQ09NUFJF U1NJT04sDQo+ID4gKwkJCQlSVEVfQkJERVZfTERQQ19MTFJfQ09NUFJFU1NJT04gfA0KPiA+ICsJ CQkJUlRFX0JCREVWX0xEUENfREVDX0lOVEVSUlVQVFMsDQo+ID4gICAJCQkubGxyX3NpemUgPSA4 LA0KPiA+ICAgCQkJLmxscl9kZWNpbWFscyA9IDEsDQo+ID4gICAJCQkubnVtX2J1ZmZlcnNfc3Jj ID0NCj4gPiBAQCAtNzc1LDE1ICsxMDc5LDQ2IEBADQo+ID4gICAJZGV2X2luZm8tPm1pbl9hbGln bm1lbnQgPSAxOw0KPiA+ICAgCWRldl9pbmZvLT5jYXBhYmlsaXRpZXMgPSBiYmRldl9jYXBhYmls aXRpZXM7DQo+ID4gICAJZGV2X2luZm8tPmhhcnFfYnVmZmVyX3NpemUgPSAwOw0KPiA+ICsNCj4g PiArCWFjYzIwMF9jaGVja19pcihkKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludA0K PiA+ICthY2MyMDBfcXVldWVfaW50cl9lbmFibGUoc3RydWN0IHJ0ZV9iYmRldiAqZGV2LCB1aW50 MTZfdCBxdWV1ZV9pZCkgew0KPiA+ICsJc3RydWN0IGFjY19xdWV1ZSAqcSA9IGRldi0+ZGF0YS0+ cXVldWVzW3F1ZXVlX2lkXS5xdWV1ZV9wcml2YXRlOw0KPiA+ICsNCj4gPiArCWlmIChydGVfaW50 cl90eXBlX2dldChkZXYtPmludHJfaGFuZGxlKSAhPQ0KPiBSVEVfSU5UUl9IQU5ETEVfVkZJT19N U0kgJiYNCj4gPiArCQkJcnRlX2ludHJfdHlwZV9nZXQoZGV2LT5pbnRyX2hhbmRsZSkgIT0NCj4g UlRFX0lOVFJfSEFORExFX1ZGSU9fTVNJWCkNCj4gPiArCQlyZXR1cm4gLUVOT1RTVVA7DQo+ID4g Kw0KPiA+ICsJcS0+aXJxX2VuYWJsZSA9IDE7DQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArc3RhdGljIGludA0KPiA+ICthY2MyMDBfcXVldWVfaW50cl9kaXNhYmxlKHN0cnVj dCBydGVfYmJkZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWQpIHsNCj4gPiArCXN0cnVjdCBhY2Nf cXVldWUgKnEgPSBkZXYtPmRhdGEtPnF1ZXVlc1txdWV1ZV9pZF0ucXVldWVfcHJpdmF0ZTsNCj4g PiArDQo+ID4gKwlpZiAocnRlX2ludHJfdHlwZV9nZXQoZGV2LT5pbnRyX2hhbmRsZSkgIT0NCj4g UlRFX0lOVFJfSEFORExFX1ZGSU9fTVNJICYmDQo+ID4gKwkJCXJ0ZV9pbnRyX3R5cGVfZ2V0KGRl di0+aW50cl9oYW5kbGUpICE9DQo+IFJURV9JTlRSX0hBTkRMRV9WRklPX01TSVgpDQo+ID4gKwkJ cmV0dXJuIC1FTk9UU1VQOw0KPiA+ICsNCj4gPiArCXEtPmlycV9lbmFibGUgPSAwOw0KPiA+ICsJ cmV0dXJuIDA7DQo+ID4gICB9DQo+ID4NCj4gPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2Ji ZGV2X29wcyBhY2MyMDBfYmJkZXZfb3BzID0gew0KPiA+ICAgCS5zZXR1cF9xdWV1ZXMgPSBhY2My MDBfc2V0dXBfcXVldWVzLA0KPiA+ICsJLmludHJfZW5hYmxlID0gYWNjMjAwX2ludHJfZW5hYmxl LA0KPiA+ICAgCS5jbG9zZSA9IGFjYzIwMF9kZXZfY2xvc2UsDQo+ID4gICAJLmluZm9fZ2V0ID0g YWNjMjAwX2Rldl9pbmZvX2dldCwNCj4gPiAgIAkucXVldWVfc2V0dXAgPSBhY2MyMDBfcXVldWVf c2V0dXAsDQo+ID4gICAJLnF1ZXVlX3JlbGVhc2UgPSBhY2MyMDBfcXVldWVfcmVsZWFzZSwNCj4g PiAgIAkucXVldWVfc3RvcCA9IGFjY19xdWV1ZV9zdG9wLA0KPiA+ICsJLnF1ZXVlX2ludHJfZW5h YmxlID0gYWNjMjAwX3F1ZXVlX2ludHJfZW5hYmxlLA0KPiA+ICsJLnF1ZXVlX2ludHJfZGlzYWJs ZSA9IGFjYzIwMF9xdWV1ZV9pbnRyX2Rpc2FibGUNCj4gPiAgIH07DQo+ID4NCj4gPiAgIC8qIEFD QzIwMCBQQ0kgUEYgYWRkcmVzcyBtYXAgKi8NCj4gPiBAQCAtMjY5NCw2ICszMDI5LDcgQEANCj4g PiAgIAlpZiAob3AtPnN0YXR1cyAhPSAwKSB7DQo+ID4gICAJCS8qIFRoZXNlIGVycm9ycyBhcmUg bm90IGV4cGVjdGVkICovDQo+ID4gICAJCXFfZGF0YS0+cXVldWVfc3RhdHMuZGVxdWV1ZV9lcnJf Y291bnQrKzsNCj4gPiArCQlhY2MyMDBfY2hlY2tfaXIocS0+ZCk7DQo+ID4gICAJfQ0KPiA+DQo+ ID4gICAJLyogQ1JDIGludmFsaWQgaWYgZXJyb3IgZXhpc3RzICovDQo+ID4gQEAgLTI3NjMsNiAr MzA5OSw5IEBADQo+ID4NCj4gPiAgIAlvcC0+bGRwY19kZWMuaXRlcl9jb3VudCA9ICh1aW50OF90 KSByc3AuaXRlcl9jbnQ7DQo+ID4NCj4gPiArCWlmIChvcC0+c3RhdHVzICYgKDEgPDwgUlRFX0JC REVWX0RSVl9FUlJPUikpDQo+ID4gKwkJYWNjMjAwX2NoZWNrX2lyKHEtPmQpOw0KPiA+ICsNCj4g PiAgIAkvKiBDaGVjayBpZiB0aGlzIGlzIHRoZSBsYXN0IGRlc2MgaW4gYmF0Y2ggKEF0b21pYyBR dWV1ZSkgKi8NCj4gPiAgIAlpZiAoZGVzYy0+cmVxLmxhc3RfZGVzY19pbl9iYXRjaCkgew0KPiA+ ICAgCQkoKmFxX2RlcXVldWVkKSsrOw0KPiA+IEBAIC0zMjMyLDYgKzM1NzEsOSBAQA0KPiA+ICAg CWlmIChvcC0+c3RhdHVzICE9IDApDQo+ID4gICAJCXFfZGF0YS0+cXVldWVfc3RhdHMuZGVxdWV1 ZV9lcnJfY291bnQrKzsNCj4gPg0KPiA+ICsJaWYgKG9wLT5zdGF0dXMgJiAoMSA8PCBSVEVfQkJE RVZfRFJWX0VSUk9SKSkNCj4gPiArCQlhY2MyMDBfY2hlY2tfaXIocS0+ZCk7DQo+ID4gKw0KPiA+ ICAgCS8qIENoZWNrIGlmIHRoaXMgaXMgdGhlIGxhc3QgZGVzYyBpbiBiYXRjaCAoQXRvbWljIFF1 ZXVlKSAqLw0KPiA+ICAgCWlmIChkZXNjLT5yZXEubGFzdF9kZXNjX2luX2JhdGNoKSB7DQo+ID4g ICAJCSgqYXFfZGVxdWV1ZWQpKys7DQoNCg==