From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D8D57A04B5; Wed, 30 Sep 2020 21:45:51 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6B7021D454; Wed, 30 Sep 2020 21:45:49 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 120ED1D146 for ; Wed, 30 Sep 2020 21:45:46 +0200 (CEST) IronPort-SDR: XUzN3wvCwdvaWL85piAQgA7mI5N4qN5B8bWoNWvOPJWJ3fB/63QBOMpfTpWAPOIh1Rs8NM+7zm QL+L8LKD/b/w== X-IronPort-AV: E=McAfee;i="6000,8403,9760"; a="142539945" X-IronPort-AV: E=Sophos;i="5.77,322,1596524400"; d="scan'208";a="142539945" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2020 12:45:40 -0700 IronPort-SDR: 5Ny6sARO+30EtF1EYMXDW6pXu3qK/Ls62j3x9OxLXrUYDIQiqDuOtQaA/mQlfWSgJOn5CIvvJ2 sI5w1oe64bXw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,322,1596524400"; d="scan'208";a="308278039" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga003.jf.intel.com with ESMTP; 30 Sep 2020 12:45:38 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 30 Sep 2020 12:45:38 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.1713.5; Wed, 30 Sep 2020 12:45:37 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 30 Sep 2020 12:45:37 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.44) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 30 Sep 2020 12:45:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cltz1F7h0QPmEK46KAAJ0vEIeNRnQjf5gq3ym/dge2JGqdm24zQVGn69cg5hAe/bFYB7d5Xlmmiog2tOiTg/zJBU00aVLHMH6KRHye2zXaQ5agj7BxkAxtklL0zLBpOucnaPACl+P5WTswrRx5v0MfoSjWtoiicrfTADJDjVLnLx86no3Mu4cQCUZDTWiACaVRavs/vdhbkKhs9z6mOyfE7DlCqoLHiICeHmAEdukk7MuUYHLnXDJiS9FsZZoCIqbB9xqkCe1K2VKNI1/eWkYLuBXgGJzTDzhXQ6uOZB+PsyIwzgr6UjmzesbrIBFPStO9ixUP1BFvuONiudy3Q3pg== 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-SenderADCheck; bh=+MLLu8debbBpvfg2CFX532mJX1W8TBqIFrYyS2QiL4I=; b=k1yRn+VD1Q2wdugsNtv3aYJdF1PAEiFhdM0Q2VndAsxHGXHbvWTk3jsquFhhLlRyhmzvt4Keq9lGMbeNxc9zQiq1/Fv2i0LmonwICqWNfl8gP8n9Rx7OVp6S/PEVa7WMedA5fA13LxhcB94wEuCa2GB9trtr/n9RYTpLu82tnsaxTDXEnevMznIVeIKt6BvoMouy60T4W6UyZmNvh9fncp3d0OYg5XyegOO1k7ruD3/9IBMbckJ4Z2wZtNgAXNiYAx4wn8EuMMV3MKeNEwjbWRDyDQjTo+B/7oMLGYFaBEX7xIpPt6QR/ZiSS5dJX6rs8C9tkAzkhoGWN5LeEn6qbw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+MLLu8debbBpvfg2CFX532mJX1W8TBqIFrYyS2QiL4I=; b=jVbLM2WrENtEpW3xyCC03EudRCpRsJxW6zINRL6tuCeUM+ZQIE07rI3hulylmVD1OzTVCTZe8ciz+wTKKCthtE96DuVsmXjej6MIkWnxG8LKIG9Ydu2DvAvZXZ7g8s+nq+5f34oV8JgCY/8NhuqBD6UDXVZAyP7ZI3MP6aGDNxA= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BY5PR11MB4072.namprd11.prod.outlook.com (2603:10b6:a03:18f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.28; Wed, 30 Sep 2020 19:45:33 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508%7]) with mapi id 15.20.3412.028; Wed, 30 Sep 2020 19:45:32 +0000 From: "Chautru, Nicolas" To: Tom Rix , "dev@dpdk.org" , "akhil.goyal@nxp.com" CC: "Richardson, Bruce" , "Xu, Rosen" , "dave.burley@accelercomm.com" , "aidan.goddard@accelercomm.com" , "Yigit, Ferruh" , "Liu, Tianjiao" Thread-Topic: [dpdk-dev] [PATCH v9 08/10] baseband/acc100: add interrupt support to PMD Thread-Index: AQHWlffhmFZRJrzE0EmOSkxOy21O76mBjMIAgAAC5LA= Date: Wed, 30 Sep 2020 19:45:31 +0000 Message-ID: References: <1597796731-57841-12-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-1-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-9-git-send-email-nicolas.chautru@intel.com> <5f42d8ad-e19d-0601-da5a-492b1b84333b@redhat.com> In-Reply-To: <5f42d8ad-e19d-0601-da5a-492b1b84333b@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.5.1.3 authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [45.28.143.88] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 54fbdf69-f0a9-4225-ba44-08d86579644b x-ms-traffictypediagnostic: BY5PR11MB4072: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Qm3fQF49cnfUbDtEKpPoD+gXSB6UNlMI0uisyDWGebnIaI5lD8dIiN9xjwHMIUPiTu0sLYjjpiO4b3qfmcQOw/pLXNPhCTSG1PuUBJUv9B4Eh8bdmQrHA5yNML3/80ar4xSuLI7iEDzjjqzNosEC9s2+2b3qhbH3Nh38aoD1xTlIn0VkJ9ZpFI7GE+f3HixP/bW3AMi8Tirsn0U9a67KNqtV/CGPllxuDugSxvpZLy1KbqYbro1JUykrwwz+QPIVM64E9mGudkLDjHkDuaLAU8bp3Il97dGbXoRx5ZUIN0x3JiAHYhDomQ2c87I8fk7BOWJBdNEp1y/3HAcpd1rlOMwOigBF/H6NEsDAQDmNmvkIFhIpaHsXfRWeQq4Fqx33 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:(4636009)(136003)(39860400002)(346002)(396003)(366004)(376002)(26005)(478600001)(110136005)(316002)(54906003)(83380400001)(186003)(4326008)(66446008)(55016002)(71200400001)(66476007)(66556008)(64756008)(9686003)(5660300002)(52536014)(86362001)(2906002)(66946007)(53546011)(6506007)(33656002)(8936002)(107886003)(7696005)(76116006)(30864003)(8676002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: xD6QOcavxo4MFPXZ6fVopqay9nDI0ZGKl6kejjbs+4eYNGmHNiSU4xbG/UJUxAwnX867dBIoBZckRdn3VbW6Jd0IhTdAkIIPZ/BOjaxvxLGyLkblNMfaeGGJrqK7TRN8D8DrfS1fvfTltxAg88HTx1NG8E/RRRyNpJEBcrm2Y/RD2ttdhRrG7VD+jV+vfzLMenp+Lix3jpPCjdqg2bHQqXl9OuX5MfkLIP98EFAXXSKQNyhoJ8NcojP/uOZY7bxHzHnBJzh1mipCGWbZ4V0UXbqkhRnbzkdojnn9ShqN3def1UDBp9JoMKy8FoE02yYS7MwXQyustcMjAxhA50pfTFKiGC61vDVa8k7a3e6UkFqpb1pA6cf2UkJoYk7bDkpuz0E/bIlwIPmTuW5m9fY7MPYuBN7ommn6bowyuv3s4fNIHOKRQj50QA26wjRzMN2GexGDxx+Z2DMMtD48/KiCP2GPQ2wGE861q08IXC4G4nYIsJuGCIkIHp6D5wCx7NjLbRMs77m2ZnGby3LLQubl5RGU2gkWHs+Nv2Omia8PyZNSQZ+l8XdJNgReOeBbkDZZJsm335lM1GJ+WwEcWxTaERKHPDwPoZPs4ZhjdFufC/d17xyqDKoAMjhvmvuzwsE9Ak4q/HNgTyaMlfNQCi9/Ug== 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: 54fbdf69-f0a9-4225-ba44-08d86579644b X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2020 19:45:31.8109 (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: iRwUZ0/R7/n1itqGx/cZLeGlJO10QazbZRAABG0G3VxOUfWldscWLbpDRXDsM825hVCQloXXq291wTDF2U7spaaYvAaRRqWN595/phP0pFc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4072 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v9 08/10] baseband/acc100: add interrupt support to PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgVG9tLCANCg0KPiBGcm9tOiBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+DQo+IE9uIDkvMjgv MjAgNToyOSBQTSwgTmljb2xhcyBDaGF1dHJ1IHdyb3RlOg0KPiA+IEFkZGluZyBjYXBhYmlsaXR5 IGFuZCBmdW5jdGlvbnMgdG8gc3VwcG9ydCBNU0kgaW50ZXJydXB0cywgY2FsbCBiYWNrcw0KPiA+ IGFuZCBpbmZvcmluZy4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgQ2hhdXRydSA8 bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4gPiBBY2tlZC1ieTogTGl1IFRpYW5qaWFvIDxU aWFuamlhby5saXVAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL2Jhc2ViYW5kL2Fj YzEwMC9ydGVfYWNjMTAwX3BtZC5jIHwgMjg4DQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLQ0KPiA+IGRyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmggfCAg MTUgKysNCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAzMDAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVf YWNjMTAwX3BtZC5jDQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3Bt ZC5jDQo+ID4gaW5kZXggN2Q0YzNkZi4uYjZkOWU3YyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJz L2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gKysrIGIvZHJpdmVycy9iYXNl YmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYw0KPiA+IEBAIC0zMzksNiArMzM5LDIxMyBAQA0K PiA+ICAJZnJlZV9iYXNlX2FkZHJlc3NlcyhiYXNlX2FkZHJzLCBpKTsNCj4gPiAgfQ0KPiA+DQo+ ID4gKy8qDQo+ID4gKyAqIEZpbmQgcXVldWVfaWQgb2YgYSBkZXZpY2UgcXVldWUgYmFzZWQgb24g ZGV0YWlscyBmcm9tIHRoZSBJbmZvIFJpbmcuDQo+ID4gKyAqIElmIGEgcXVldWUgaXNuJ3QgZm91 bmQgVUlOVDE2X01BWCBpcyByZXR1cm5lZC4NCj4gPiArICovDQo+ID4gK3N0YXRpYyBpbmxpbmUg dWludDE2X3QNCj4gPiArZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKHN0cnVjdCBydGVfYmJk ZXZfZGF0YSAqZGF0YSwNCj4gPiArCQljb25zdCB1bmlvbiBhY2MxMDBfaW5mb19yaW5nX2RhdGEg cmluZ19kYXRhKSB7DQo+ID4gKwl1aW50MTZfdCBxdWV1ZV9pZDsNCj4gPiArDQo+ID4gKwlmb3Ig KHF1ZXVlX2lkID0gMDsgcXVldWVfaWQgPCBkYXRhLT5udW1fcXVldWVzOyArK3F1ZXVlX2lkKSB7 DQo+ID4gKwkJc3RydWN0IGFjYzEwMF9xdWV1ZSAqYWNjMTAwX3EgPQ0KPiA+ICsJCQkJZGF0YS0+ cXVldWVzW3F1ZXVlX2lkXS5xdWV1ZV9wcml2YXRlOw0KPiA+ICsJCWlmIChhY2MxMDBfcSAhPSBO VUxMICYmIGFjYzEwMF9xLT5hcV9pZCA9PSByaW5nX2RhdGEuYXFfaWQNCj4gJiYNCj4gPiArCQkJ CWFjYzEwMF9xLT5xZ3JwX2lkID09IHJpbmdfZGF0YS5xZ19pZCAmJg0KPiA+ICsJCQkJYWNjMTAw X3EtPnZmX2lkID09IHJpbmdfZGF0YS52Zl9pZCkNCj4gPiArCQkJcmV0dXJuIHF1ZXVlX2lkOw0K PiANCj4gSWYgbnVtX3F1ZXVlcyBpcyBsYXJnZSwgdGhpcyBsaW5lYXIgc2VhcmNoIHdpbGwgYmUg c2xvdy4NCj4gDQo+IENvbnNpZGVyIGNoYW5naW5nIHRoZSBzZWFyY2ggYWxnb3JpdGhtLg0KDQpU aGlzIGlzIG5vdCBpbiB0aGUgdGltZSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBjb2RlDQoNCg0KPiAN Cj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4gVUlOVDE2X01BWDsNCj4gdGhlIGludGVycnVw dCBoYW5kbGVycyB0aGF0IHVzZSB0aGlzIGZ1bmN0aW9uIGRvIG5vdCBhIGdyZWF0IGpvYiBvZiBo YW5kbGluZw0KPiB0aGlzIGVycm9yLg0KDQppZiB0aGF0IGVycm9yIGFjdHVhbHkgaGFwcGVuZWQg dGhlbiB0aGVyZSBpcyBub3QgbXVjaCBlbHNlIHRoYXQgY2FuIGJlIGRvbmUgZXhjZXB0IHJlcG9y dGluZyB0aGUgdW5leHBlY3RlZCBkYXRhLg0KDQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIENoZWNr cyBQRiBJbmZvIFJpbmcgdG8gZmluZCB0aGUgaW50ZXJydXB0IGNhdXNlIGFuZCBoYW5kbGVzIGl0 DQo+ID4gK2FjY29yZGluZ2x5ICovIHN0YXRpYyBpbmxpbmUgdm9pZCBhY2MxMDBfY2hlY2tfaXIo c3RydWN0DQo+ID4gK2FjYzEwMF9kZXZpY2UgKmFjYzEwMF9kZXYpIHsNCj4gPiArCXZvbGF0aWxl IHVuaW9uIGFjYzEwMF9pbmZvX3JpbmdfZGF0YSAqcmluZ19kYXRhOw0KPiA+ICsJdWludDE2X3Qg aW5mb19yaW5nX2hlYWQgPSBhY2MxMDBfZGV2LT5pbmZvX3JpbmdfaGVhZDsNCj4gPiArCWlmIChh Y2MxMDBfZGV2LT5pbmZvX3JpbmcgPT0gTlVMTCkNCj4gPiArCQlyZXR1cm47DQo+ID4gKw0KPiA+ ICsJcmluZ19kYXRhID0gYWNjMTAwX2Rldi0+aW5mb19yaW5nICsgKGFjYzEwMF9kZXYtPmluZm9f cmluZ19oZWFkICYNCj4gPiArCQkJQUNDMTAwX0lORk9fUklOR19NQVNLKTsNCj4gPiArDQo+ID4g Kwl3aGlsZSAocmluZ19kYXRhLT52YWxpZCkgew0KPiA+ICsJCWlmICgocmluZ19kYXRhLT5pbnRf bmIgPA0KPiBBQ0MxMDBfUEZfSU5UX0RNQV9ETF9ERVNDX0lSUSkgfHwgKA0KPiA+ICsJCQkJcmlu Z19kYXRhLT5pbnRfbmIgPg0KPiA+ICsJCQkJQUNDMTAwX1BGX0lOVF9ETUFfREw1R19ERVNDX0lS USkpDQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2coV0FSTklORywgIkluZm9SaW5nOiBJVFI6JWQNCj4g SW5mbzoweCV4IiwNCj4gPiArCQkJCXJpbmdfZGF0YS0+aW50X25iLCByaW5nX2RhdGEtDQo+ID5k ZXRhaWxlZF9pbmZvKTsNCj4gPiArCQkvKiBJbml0aWFsaXplIEluZm8gUmluZyBlbnRyeSBhbmQg bW92ZSBmb3J3YXJkICovDQo+ID4gKwkJcmluZ19kYXRhLT52YWwgPSAwOw0KPiA+ICsJCWluZm9f cmluZ19oZWFkKys7DQo+ID4gKwkJcmluZ19kYXRhID0gYWNjMTAwX2Rldi0+aW5mb19yaW5nICsN Cj4gPiArCQkJCShpbmZvX3JpbmdfaGVhZCAmDQo+IEFDQzEwMF9JTkZPX1JJTkdfTUFTSyk7DQo+ IFRoZXNlIHRocmVlIHN0YXRlbWVudHMgYXJlIGNvbW1vbiBmb3IgdGhlIHJpbmcgaGFuZGxpbmcs IGNvbnNpZGVyIGEgbWFjcm8NCj4gb3IgaW5saW5lIGZ1bmN0aW9uLg0KDQpvaw0KDQo+ID4gKwl9 DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIENoZWNrcyBQRiBJbmZvIFJpbmcgdG8gZmluZCB0aGUg aW50ZXJydXB0IGNhdXNlIGFuZCBoYW5kbGVzIGl0DQo+ID4gK2FjY29yZGluZ2x5ICovIHN0YXRp YyBpbmxpbmUgdm9pZCBhY2MxMDBfcGZfaW50ZXJydXB0X2hhbmRsZXIoc3RydWN0DQo+ID4gK3J0 ZV9iYmRldiAqZGV2KSB7DQo+ID4gKwlzdHJ1Y3QgYWNjMTAwX2RldmljZSAqYWNjMTAwX2RldiA9 IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKwl2b2xhdGlsZSB1bmlvbiBhY2MxMDBfaW5m b19yaW5nX2RhdGEgKnJpbmdfZGF0YTsNCj4gPiArCXN0cnVjdCBhY2MxMDBfZGVxX2ludHJfZGV0 YWlscyBkZXFfaW50cl9kZXQ7DQo+ID4gKw0KPiA+ICsJcmluZ19kYXRhID0gYWNjMTAwX2Rldi0+ aW5mb19yaW5nICsgKGFjYzEwMF9kZXYtPmluZm9fcmluZ19oZWFkICYNCj4gPiArCQkJQUNDMTAw X0lORk9fUklOR19NQVNLKTsNCj4gPiArDQo+ID4gKwl3aGlsZSAocmluZ19kYXRhLT52YWxpZCkg ew0KPiA+ICsNCj4gPiArCQlydGVfYmJkZXZfbG9nX2RlYnVnKA0KPiA+ICsJCQkJIkFDQzEwMCBQ RiBJbnRlcnJ1cHQgcmVjZWl2ZWQsIEluZm8gUmluZw0KPiBkYXRhOiAweCV4IiwNCj4gPiArCQkJ CXJpbmdfZGF0YS0+dmFsKTsNCj4gPiArDQo+ID4gKwkJc3dpdGNoIChyaW5nX2RhdGEtPmludF9u Yikgew0KPiA+ICsJCWNhc2UgQUNDMTAwX1BGX0lOVF9ETUFfRExfREVTQ19JUlE6DQo+ID4gKwkJ Y2FzZSBBQ0MxMDBfUEZfSU5UX0RNQV9VTF9ERVNDX0lSUToNCj4gPiArCQljYXNlIEFDQzEwMF9Q Rl9JTlRfRE1BX1VMNUdfREVTQ19JUlE6DQo+ID4gKwkJY2FzZSBBQ0MxMDBfUEZfSU5UX0RNQV9E TDVHX0RFU0NfSVJROg0KPiA+ICsJCQlkZXFfaW50cl9kZXQucXVldWVfaWQgPQ0KPiBnZXRfcXVl dWVfaWRfZnJvbV9yaW5nX2luZm8oDQo+ID4gKwkJCQkJZGV2LT5kYXRhLCAqcmluZ19kYXRhKTsN Cj4gPiArCQkJaWYgKGRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9PSBVSU5UMTZfTUFYKSB7DQo+ID4g KwkJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiArCQkJCQkJIkNvdWxkbid0IGZpbmQgcXVldWU6 IGFxX2lkOg0KPiAldSwgcWdfaWQ6ICV1LCB2Zl9pZDogJXUiLA0KPiA+ICsJCQkJCQlyaW5nX2Rh dGEtPmFxX2lkLA0KPiA+ICsJCQkJCQlyaW5nX2RhdGEtPnFnX2lkLA0KPiA+ICsJCQkJCQlyaW5n X2RhdGEtPnZmX2lkKTsNCj4gPiArCQkJCXJldHVybjsNCj4gPiArCQkJfQ0KPiA+ICsJCQlydGVf YmJkZXZfcG1kX2NhbGxiYWNrX3Byb2Nlc3MoZGV2LA0KPiA+ICsJCQkJCVJURV9CQkRFVl9FVkVO VF9ERVFVRVVFLA0KPiAmZGVxX2ludHJfZGV0KTsNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJZGVm YXVsdDoNCj4gPiArCQkJcnRlX2JiZGV2X3BtZF9jYWxsYmFja19wcm9jZXNzKGRldiwNCj4gPiAr CQkJCQlSVEVfQkJERVZfRVZFTlRfRVJST1IsIE5VTEwpOw0KPiA+ICsJCQlicmVhazsNCj4gPiAr CQl9DQo+ID4gKw0KPiA+ICsJCS8qIEluaXRpYWxpemUgSW5mbyBSaW5nIGVudHJ5IGFuZCBtb3Zl IGZvcndhcmQgKi8NCj4gPiArCQlyaW5nX2RhdGEtPnZhbCA9IDA7DQo+ID4gKwkJKythY2MxMDBf ZGV2LT5pbmZvX3JpbmdfaGVhZDsNCj4gPiArCQlyaW5nX2RhdGEgPSBhY2MxMDBfZGV2LT5pbmZv X3JpbmcgKw0KPiA+ICsJCQkJKGFjYzEwMF9kZXYtPmluZm9fcmluZ19oZWFkICYNCj4gPiArCQkJ CUFDQzEwMF9JTkZPX1JJTkdfTUFTSyk7DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gKy8q IENoZWNrcyBWRiBJbmZvIFJpbmcgdG8gZmluZCB0aGUgaW50ZXJydXB0IGNhdXNlIGFuZCBoYW5k bGVzIGl0DQo+ID4gK2FjY29yZGluZ2x5ICovIHN0YXRpYyBpbmxpbmUgdm9pZCBhY2MxMDBfdmZf aW50ZXJydXB0X2hhbmRsZXIoc3RydWN0DQo+ID4gK3J0ZV9iYmRldiAqZGV2KQ0KPiB2ZXJ5IHNp bWlsYXIgdG8gcGYgY2FzZSwgY29uc2lkZXIgY29tYmluaW5nLg0KPiA+ICt7DQo+ID4gKwlzdHJ1 Y3QgYWNjMTAwX2RldmljZSAqYWNjMTAwX2RldiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ ID4gKwl2b2xhdGlsZSB1bmlvbiBhY2MxMDBfaW5mb19yaW5nX2RhdGEgKnJpbmdfZGF0YTsNCj4g PiArCXN0cnVjdCBhY2MxMDBfZGVxX2ludHJfZGV0YWlscyBkZXFfaW50cl9kZXQ7DQo+ID4gKw0K PiA+ICsJcmluZ19kYXRhID0gYWNjMTAwX2Rldi0+aW5mb19yaW5nICsgKGFjYzEwMF9kZXYtPmlu Zm9fcmluZ19oZWFkICYNCj4gPiArCQkJQUNDMTAwX0lORk9fUklOR19NQVNLKTsNCj4gPiArDQo+ ID4gKwl3aGlsZSAocmluZ19kYXRhLT52YWxpZCkgew0KPiA+ICsNCj4gPiArCQlydGVfYmJkZXZf bG9nX2RlYnVnKA0KPiA+ICsJCQkJIkFDQzEwMCBWRiBJbnRlcnJ1cHQgcmVjZWl2ZWQsIEluZm8g UmluZw0KPiBkYXRhOiAweCV4IiwNCj4gPiArCQkJCXJpbmdfZGF0YS0+dmFsKTsNCj4gPiArDQo+ ID4gKwkJc3dpdGNoIChyaW5nX2RhdGEtPmludF9uYikgew0KPiA+ICsJCWNhc2UgQUNDMTAwX1ZG X0lOVF9ETUFfRExfREVTQ19JUlE6DQo+ID4gKwkJY2FzZSBBQ0MxMDBfVkZfSU5UX0RNQV9VTF9E RVNDX0lSUToNCj4gPiArCQljYXNlIEFDQzEwMF9WRl9JTlRfRE1BX1VMNUdfREVTQ19JUlE6DQo+ ID4gKwkJY2FzZSBBQ0MxMDBfVkZfSU5UX0RNQV9ETDVHX0RFU0NfSVJROg0KPiA+ICsJCQkvKiBW RnMgYXJlIG5vdCBhd2FyZSBvZiB0aGVpciB2Zl9pZCAtIGl0J3Mgc2V0IHRvIDAgaW4NCj4gPiAr CQkJICogcXVldWUgc3RydWN0dXJlcy4NCj4gPiArCQkJICovDQo+ID4gKwkJCXJpbmdfZGF0YS0+ dmZfaWQgPSAwOw0KPiA+ICsJCQlkZXFfaW50cl9kZXQucXVldWVfaWQgPQ0KPiBnZXRfcXVldWVf aWRfZnJvbV9yaW5nX2luZm8oDQo+ID4gKwkJCQkJZGV2LT5kYXRhLCAqcmluZ19kYXRhKTsNCj4g PiArCQkJaWYgKGRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9PSBVSU5UMTZfTUFYKSB7DQo+ID4gKwkJ CQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiArCQkJCQkJIkNvdWxkbid0IGZpbmQgcXVldWU6IGFx X2lkOg0KPiAldSwgcWdfaWQ6ICV1IiwNCj4gPiArCQkJCQkJcmluZ19kYXRhLT5hcV9pZCwNCj4g PiArCQkJCQkJcmluZ19kYXRhLT5xZ19pZCk7DQo+ID4gKwkJCQlyZXR1cm47DQo+ID4gKwkJCX0N Cj4gPiArCQkJcnRlX2JiZGV2X3BtZF9jYWxsYmFja19wcm9jZXNzKGRldiwNCj4gPiArCQkJCQlS VEVfQkJERVZfRVZFTlRfREVRVUVVRSwNCj4gJmRlcV9pbnRyX2RldCk7DQo+ID4gKwkJCWJyZWFr Ow0KPiA+ICsJCWRlZmF1bHQ6DQo+ID4gKwkJCXJ0ZV9iYmRldl9wbWRfY2FsbGJhY2tfcHJvY2Vz cyhkZXYsDQo+ID4gKwkJCQkJUlRFX0JCREVWX0VWRU5UX0VSUk9SLCBOVUxMKTsNCj4gPiArCQkJ YnJlYWs7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQkvKiBJbml0aWFsaXplIEluZm8gUmluZyBl bnRyeSBhbmQgbW92ZSBmb3J3YXJkICovDQo+ID4gKwkJcmluZ19kYXRhLT52YWxpZCA9IDA7DQo+ ID4gKwkJKythY2MxMDBfZGV2LT5pbmZvX3JpbmdfaGVhZDsNCj4gPiArCQlyaW5nX2RhdGEgPSBh Y2MxMDBfZGV2LT5pbmZvX3JpbmcgKyAoYWNjMTAwX2Rldi0NCj4gPmluZm9fcmluZ19oZWFkDQo+ ID4gKwkJCQkmIEFDQzEwMF9JTkZPX1JJTkdfTUFTSyk7DQo+ID4gKwl9DQo+ID4gK30NCj4gPiAr DQo+ID4gKy8qIEludGVycnVwdCBoYW5kbGVyIHRyaWdnZXJlZCBieSBBQ0MxMDAgZGV2IGZvciBo YW5kbGluZyBzcGVjaWZpYw0KPiA+ICtpbnRlcnJ1cHQgKi8gc3RhdGljIHZvaWQgYWNjMTAwX2Rl dl9pbnRlcnJ1cHRfaGFuZGxlcih2b2lkICpjYl9hcmcpIHsNCj4gPiArCXN0cnVjdCBydGVfYmJk ZXYgKmRldiA9IGNiX2FyZzsNCj4gPiArCXN0cnVjdCBhY2MxMDBfZGV2aWNlICphY2MxMDBfZGV2 ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArDQo+ID4gKwkvKiBSZWFkIGluZm8gcmlu ZyAqLw0KPiA+ICsJaWYgKGFjYzEwMF9kZXYtPnBmX2RldmljZSkNCj4gPiArCQlhY2MxMDBfcGZf aW50ZXJydXB0X2hhbmRsZXIoZGV2KTsNCj4gDQo+IGNvbWJpbmVkIGxpa2UgLi4NCj4gDQo+IGFj YzEwMF9pbnRlcnJ1cHRfaGFuZGxlcihkZXYsIGlzX3BmKQ0KDQp1bnN1cmUgaXQgd2lsbCBoZWxw IHJlYWRhYmlsaXR5LiBNdWNoIG9mIHRoZSBjb2RlIHdvdWxkIHN0aWxsIGJlIGRpc3RpbmN0DQoN Cj4gDQo+ID4gKwllbHNlDQo+ID4gKwkJYWNjMTAwX3ZmX2ludGVycnVwdF9oYW5kbGVyKGRldik7 DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIEFsbG9jYXRlIGFuZCBzZXR1cCBpbmZvcmluZyAqLw0K PiA+ICtzdGF0aWMgaW50DQo+ID4gK2FsbG9jYXRlX2luZm9yaW5nKHN0cnVjdCBydGVfYmJkZXYg KmRldikNCj4gDQo+IGNvbnNpZGVyIHJlbmFtaW5nDQo+IA0KPiBhbGxvY2F0ZV9pbmZvX3JpbmcN Cg0Kb2sNCg0KPiANCj4gPiArew0KPiA+ICsJc3RydWN0IGFjYzEwMF9kZXZpY2UgKmQgPSBkZXYt PmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJY29uc3Qgc3RydWN0IGFjYzEwMF9yZWdpc3RyeV9h ZGRyICpyZWdfYWRkcjsNCj4gPiArCXJ0ZV9pb3ZhX3QgaW5mb19yaW5nX3BoeXM7DQo+ID4gKwl1 aW50MzJfdCBwaHlzX2xvdywgcGh5c19oaWdoOw0KPiA+ICsNCj4gPiArCWlmIChkLT5pbmZvX3Jp bmcgIT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gMDsgLyogQWxyZWFkeSBjb25maWd1cmVkICovDQo+ ID4gKw0KPiA+ICsJLyogQ2hvb3NlIGNvcnJlY3QgcmVnaXN0cnkgYWRkcmVzc2VzIGZvciB0aGUg ZGV2aWNlIHR5cGUgKi8NCj4gPiArCWlmIChkLT5wZl9kZXZpY2UpDQo+ID4gKwkJcmVnX2FkZHIg PSAmcGZfcmVnX2FkZHI7DQo+ID4gKwllbHNlDQo+ID4gKwkJcmVnX2FkZHIgPSAmdmZfcmVnX2Fk ZHI7DQo+ID4gKwkvKiBBbGxvY2F0ZSBJbmZvUmluZyAqLw0KPiA+ICsJZC0+aW5mb19yaW5nID0g cnRlX3ptYWxsb2Nfc29ja2V0KCJJbmZvIFJpbmciLA0KPiA+ICsJCQlBQ0MxMDBfSU5GT19SSU5H X05VTV9FTlRSSUVTICoNCj4gPiArCQkJc2l6ZW9mKCpkLT5pbmZvX3JpbmcpLCBSVEVfQ0FDSEVf TElORV9TSVpFLA0KPiA+ICsJCQlkZXYtPmRhdGEtPnNvY2tldF9pZCk7DQo+ID4gKwlpZiAoZC0+ aW5mb19yaW5nID09IE5VTEwpIHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiArCQkJ CSJGYWlsZWQgdG8gYWxsb2NhdGUgSW5mbyBSaW5nIGZvciAlczoldSIsDQo+ID4gKwkJCQlkZXYt PmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQkJZGV2LT5kYXRhLT5kZXZfaWQpOw0KPiBU aGUgY2FsbGVycyBkbyBub3QgY2hlY2sgdGhhdCB0aGlzIGZhaWxzLg0KDQphcmd1YWJseSB0aGUg ZXJyb3Igd291bGQgYmUgc2VsZiBjb250YWluZWQgaWYgdGhhdCBkaWQgZmFpbC4gQnV0IGRvZXNu J3QgaHVydCB0byBhZGQsIG9rLiANCg0KPiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsJfQ0K PiA+ICsJaW5mb19yaW5nX3BoeXMgPSBydGVfbWFsbG9jX3ZpcnQyaW92YShkLT5pbmZvX3Jpbmcp Ow0KPiA+ICsNCj4gPiArCS8qIFNldHVwIEluZm8gUmluZyAqLw0KPiA+ICsJcGh5c19oaWdoID0g KHVpbnQzMl90KShpbmZvX3JpbmdfcGh5cyA+PiAzMik7DQo+ID4gKwlwaHlzX2xvdyAgPSAodWlu dDMyX3QpKGluZm9fcmluZ19waHlzKTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2Fk ZHItPmluZm9fcmluZ19oaSwgcGh5c19oaWdoKTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwg cmVnX2FkZHItPmluZm9fcmluZ19sbywgcGh5c19sb3cpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0 ZShkLCByZWdfYWRkci0+aW5mb19yaW5nX2VuLA0KPiBBQ0MxMDBfUkVHX0lSUV9FTl9BTEwpOw0K PiA+ICsJZC0+aW5mb19yaW5nX2hlYWQgPSAoYWNjMTAwX3JlZ19yZWFkKGQsIHJlZ19hZGRyLT5p bmZvX3JpbmdfcHRyKSAmDQo+ID4gKwkJCTB4RkZGKSAvIHNpemVvZih1bmlvbiBhY2MxMDBfaW5m b19yaW5nX2RhdGEpOw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gKw0KPiA+ ICAvKiBBbGxvY2F0ZSA2NE1CIG1lbW9yeSB1c2VkIGZvciBhbGwgc29mdHdhcmUgcmluZ3MgKi8g IHN0YXRpYyBpbnQNCj4gPiBhY2MxMDBfc2V0dXBfcXVldWVzKHN0cnVjdCBydGVfYmJkZXYgKmRl diwgdWludDE2X3QgbnVtX3F1ZXVlcywgaW50DQo+ID4gc29ja2V0X2lkKSBAQCAtNDI2LDYgKzYz Myw3IEBADQo+ID4gIAlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT50YWlsX3B0cnNfZGw0 Z19oaSwgcGh5c19oaWdoKTsNCj4gPiAgCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPnRh aWxfcHRyc19kbDRnX2xvLCBwaHlzX2xvdyk7DQo+ID4NCj4gPiArCWFsbG9jYXRlX2luZm9yaW5n KGRldik7DQo+IG5lZWQgdG8gY2hlY2sgaGVyZQ0KPiA+ICAJZC0+aGFycV9sYXlvdXQgPSBydGVf em1hbGxvY19zb2NrZXQoIkhBUlEgTGF5b3V0IiwNCj4gPiAgCQkJQUNDMTAwX0hBUlFfTEFZT1VU ICogc2l6ZW9mKCpkLT5oYXJxX2xheW91dCksDQo+ID4gIAkJCVJURV9DQUNIRV9MSU5FX1NJWkUs IGRldi0+ZGF0YS0+c29ja2V0X2lkKTsgQEAgLQ0KPiA0MzcsMTMgKzY0NSw1MyBAQA0KPiA+ICAJ cmV0dXJuIDA7DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK2FjYzEwMF9pbnRy X2VuYWJsZShzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYpIHsNCj4gPiArCWludCByZXQ7DQo+ID4gKwlz dHJ1Y3QgYWNjMTAwX2RldmljZSAqZCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKw0K PiA+ICsJLyogT25seSBNU0kgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgKi8NCj4gPiArCWlmIChk ZXYtPmludHJfaGFuZGxlLT50eXBlID09IFJURV9JTlRSX0hBTkRMRV9WRklPX01TSSB8fA0KPiA+ ICsJCQlkZXYtPmludHJfaGFuZGxlLT50eXBlID09IFJURV9JTlRSX0hBTkRMRV9VSU8pDQo+IHsN Cj4gPiArDQo+ID4gKwkJYWxsb2NhdGVfaW5mb3JpbmcoZGV2KTsNCj4gbmVlZCB0byBjaGVjayBo ZXJlDQo+ID4gKw0KPiA+ICsJCXJldCA9IHJ0ZV9pbnRyX2VuYWJsZShkZXYtPmludHJfaGFuZGxl KTsNCj4gPiArCQlpZiAocmV0IDwgMCkgew0KPiA+ICsJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4g PiArCQkJCQkiQ291bGRuJ3QgZW5hYmxlIGludGVycnVwdHMgZm9yDQo+IGRldmljZTogJXMiLA0K PiA+ICsJCQkJCWRldi0+ZGF0YS0+bmFtZSk7DQo+ID4gKwkJCXJ0ZV9mcmVlKGQtPmluZm9fcmlu Zyk7DQo+ID4gKwkJCXJldHVybiByZXQ7DQo+ID4gKwkJfQ0KPiA+ICsJCXJldCA9IHJ0ZV9pbnRy X2NhbGxiYWNrX3JlZ2lzdGVyKGRldi0+aW50cl9oYW5kbGUsDQo+ID4gKwkJCQlhY2MxMDBfZGV2 X2ludGVycnVwdF9oYW5kbGVyLCBkZXYpOw0KPiA+ICsJCWlmIChyZXQgPCAwKSB7DQo+ID4gKwkJ CXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICsJCQkJCSJDb3VsZG4ndCByZWdpc3RlciBpbnRlcnJ1 cHQgY2FsbGJhY2sNCj4gZm9yIGRldmljZTogJXMiLA0KPiA+ICsJCQkJCWRldi0+ZGF0YS0+bmFt ZSk7DQo+ID4gKwkJCXJ0ZV9mcmVlKGQtPmluZm9fcmluZyk7DQo+IGRvZXMgaW50ciBuZWVkIHRv IGJlIGRpc2FibGVkIGhlcmUgPw0KDQpXZWxsIEkgZG9uJ3Qgc2VlIGEgbG90IG9mIGNvbnNpc3Rl bmN5IHdpdGggb3RoZXIgZHJpdmVycy4gU29tZXRpbWVzIHRoZXNlIGFyZSBub3QgZXZlbiBjaGVj ayBmb3IgZmFpbHVyZS4NCkkgd291bGQgcmF0aGVyIGRlZmVyIGNoYW5naW5nIHRocm91Z2ggb3Ro ZXIgZnV0dXJlIHBhdGNoIGlmIHJlcXVpcmVkIGFzIHRoaXMgaXMgc2FtZSBjb2RlIG9uIG90aGVy IGJiZGV2IGRyaXZlcnMgYWxyZWFkeSB1c2VkIChpZiBjaGFuZ2VkIEkgd291bGQgcmF0aGVyIGFs bCBjaGFuZ2VkIHRoZSBzYW1lIHdheSkuIA0KDQo+ID4gKwkJCXJldHVybiByZXQ7DQo+ID4gKwkJ fQ0KPiA+ICsNCj4gPiArCQlyZXR1cm4gMDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlydGVfYmJk ZXZfbG9nKEVSUiwgIkFDQzEwMCAoJXMpIHN1cHBvcnRzIG9ubHkgVkZJTyBNU0kNCj4gaW50ZXJy dXB0cyIsDQo+ID4gKwkJCWRldi0+ZGF0YS0+bmFtZSk7DQo+ID4gKwlyZXR1cm4gLUVOT1RTVVA7 DQo+ID4gK30NCj4gPiArDQo+ID4gIC8qIEZyZWUgNjRNQiBtZW1vcnkgdXNlZCBmb3Igc29mdHdh cmUgcmluZ3MgKi8gIHN0YXRpYyBpbnQNCj4gPiBhY2MxMDBfZGV2X2Nsb3NlKHN0cnVjdCBydGVf YmJkZXYgKmRldikgIHsNCj4gPiAgCXN0cnVjdCBhY2MxMDBfZGV2aWNlICpkID0gZGV2LT5kYXRh LT5kZXZfcHJpdmF0ZTsNCj4gPiArCWFjYzEwMF9jaGVja19pcihkKTsNCj4gPiAgCWlmIChkLT5z d19yaW5nc19iYXNlICE9IE5VTEwpIHsNCj4gPiAgCQlydGVfZnJlZShkLT50YWlsX3B0cnMpOw0K PiA+ICsJCXJ0ZV9mcmVlKGQtPmluZm9fcmluZyk7DQo+ID4gIAkJcnRlX2ZyZWUoZC0+c3dfcmlu Z3NfYmFzZSk7DQo+ID4gIAkJZC0+c3dfcmluZ3NfYmFzZSA9IE5VTEw7DQo+ID4gIAl9DQo+ID4g QEAgLTY0Myw2ICs4OTEsNyBAQA0KPiA+ICAJCQkJCVJURV9CQkRFVl9UVVJCT19DUkNfVFlQRV8y NEINCj4gfA0KPiA+DQo+IAlSVEVfQkJERVZfVFVSQk9fSEFMRl9JVEVSQVRJT05fRVZFTiB8DQo+ ID4NCj4gCVJURV9CQkRFVl9UVVJCT19FQVJMWV9URVJNSU5BVElPTiB8DQo+ID4gKw0KPiAJUlRF X0JCREVWX1RVUkJPX0RFQ19JTlRFUlJVUFRTIHwNCj4gPg0KPiAJUlRFX0JCREVWX1RVUkJPX05F R19MTFJfMV9CSVRfSU4gfA0KPiA+ICAJCQkJCVJURV9CQkRFVl9UVVJCT19NQVBfREVDIHwNCj4g Pg0KPiAJUlRFX0JCREVWX1RVUkJPX0RFQ19UQl9DUkNfMjRCX0tFRVAgfCBAQCAtNjYzLDYgKzkx Miw3DQo+IEBADQo+ID4NCj4gCVJURV9CQkRFVl9UVVJCT19DUkNfMjRCX0FUVEFDSCB8DQo+ID4N Cj4gCVJURV9CQkRFVl9UVVJCT19SVl9JTkRFWF9CWVBBU1MgfA0KPiA+ICAJCQkJCVJURV9CQkRF Vl9UVVJCT19SQVRFX01BVENIIHwNCj4gPiArDQo+IAlSVEVfQkJERVZfVFVSQk9fRU5DX0lOVEVS UlVQVFMgfA0KPiA+DQo+IAlSVEVfQkJERVZfVFVSQk9fRU5DX1NDQVRURVJfR0FUSEVSLA0KPiA+ ICAJCQkJLm51bV9idWZmZXJzX3NyYyA9DQo+ID4NCj4gCVJURV9CQkRFVl9UVVJCT19NQVhfQ09E RV9CTE9DS1MsIEBAIC02NzYsNyArOTI2LDggQEANCj4gPiAgCQkJCS5jYXBhYmlsaXR5X2ZsYWdz ID0NCj4gPiAgCQkJCQlSVEVfQkJERVZfTERQQ19SQVRFX01BVENIIHwNCj4gPg0KPiAJUlRFX0JC REVWX0xEUENfQ1JDXzI0Ql9BVFRBQ0ggfA0KPiA+IC0NCj4gCVJURV9CQkRFVl9MRFBDX0lOVEVS TEVBVkVSX0JZUEFTUywNCj4gPiArDQo+IAlSVEVfQkJERVZfTERQQ19JTlRFUkxFQVZFUl9CWVBB U1MgfA0KPiA+ICsNCj4gCVJURV9CQkRFVl9MRFBDX0VOQ19JTlRFUlJVUFRTLA0KPiA+ICAJCQkJ Lm51bV9idWZmZXJzX3NyYyA9DQo+ID4NCj4gCVJURV9CQkRFVl9MRFBDX01BWF9DT0RFX0JMT0NL UywNCj4gPiAgCQkJCS5udW1fYnVmZmVyc19kc3QgPQ0KPiA+IEBAIC03MDEsNyArOTUyLDggQEAN Cj4gPiAgCQkJCVJURV9CQkRFVl9MRFBDX0RFQ09ERV9CWVBBU1MgfA0KPiA+ICAJCQkJUlRFX0JC REVWX0xEUENfREVDX1NDQVRURVJfR0FUSEVSIHwNCj4gPg0KPiAJUlRFX0JCREVWX0xEUENfSEFS UV82QklUX0NPTVBSRVNTSU9OIHwNCj4gPiAtCQkJCVJURV9CQkRFVl9MRFBDX0xMUl9DT01QUkVT U0lPTiwNCj4gPiArCQkJCVJURV9CQkRFVl9MRFBDX0xMUl9DT01QUkVTU0lPTiB8DQo+ID4gKwkJ CQlSVEVfQkJERVZfTERQQ19ERUNfSU5URVJSVVBUUywNCj4gPiAgCQkJLmxscl9zaXplID0gOCwN Cj4gPiAgCQkJLmxscl9kZWNpbWFscyA9IDEsDQo+ID4gIAkJCS5udW1fYnVmZmVyc19zcmMgPQ0K PiA+IEBAIC03NTEsMTQgKzEwMDMsMzkgQEANCj4gPiAgI2Vsc2UNCj4gPiAgCWRldl9pbmZvLT5o YXJxX2J1ZmZlcl9zaXplID0gMDsNCj4gPiAgI2VuZGlmDQo+ID4gKwlhY2MxMDBfY2hlY2tfaXIo ZCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArYWNjMTAwX3F1ZXVlX2lu dHJfZW5hYmxlKHN0cnVjdCBydGVfYmJkZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWQpIHsNCj4g PiArCXN0cnVjdCBhY2MxMDBfcXVldWUgKnEgPSBkZXYtPmRhdGEtDQo+ID5xdWV1ZXNbcXVldWVf aWRdLnF1ZXVlX3ByaXZhdGU7DQo+ID4gKw0KPiA+ICsJaWYgKGRldi0+aW50cl9oYW5kbGUtPnR5 cGUgIT0gUlRFX0lOVFJfSEFORExFX1ZGSU9fTVNJICYmDQo+ID4gKwkJCWRldi0+aW50cl9oYW5k bGUtPnR5cGUgIT0gUlRFX0lOVFJfSEFORExFX1VJTykNCj4gPiArCQlyZXR1cm4gLUVOT1RTVVA7 DQo+ID4gKw0KPiA+ICsJcS0+aXJxX2VuYWJsZSA9IDE7DQo+ID4gKwlyZXR1cm4gMDsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArc3RhdGljIGludA0KPiA+ICthY2MxMDBfcXVldWVfaW50cl9kaXNhYmxl KHN0cnVjdCBydGVfYmJkZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWQpIHsNCj4gPiArCXN0cnVj dCBhY2MxMDBfcXVldWUgKnEgPSBkZXYtPmRhdGEtDQo+ID5xdWV1ZXNbcXVldWVfaWRdLnF1ZXVl X3ByaXZhdGU7DQo+ID4gKwlxLT5pcnFfZW5hYmxlID0gMDsNCj4gQSAtRU5PVFNVUCBhYm92ZSwg c2hvdWxkIG5lZWQgc2ltaWxhciBjaGVjayBoZXJlLg0KDQpIb3cgY2FuIHRoaXMgZmFpbCB3aGVu IHdlIHB1cmVseSBkaXNhYmxlPw0KDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiAgfQ0KPiA+DQo+ID4g IHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2JiZGV2X29wcyBhY2MxMDBfYmJkZXZfb3BzID0gew0K PiA+ICAJLnNldHVwX3F1ZXVlcyA9IGFjYzEwMF9zZXR1cF9xdWV1ZXMsDQo+ID4gKwkuaW50cl9l bmFibGUgPSBhY2MxMDBfaW50cl9lbmFibGUsDQo+ID4gIAkuY2xvc2UgPSBhY2MxMDBfZGV2X2Ns b3NlLA0KPiA+ICAJLmluZm9fZ2V0ID0gYWNjMTAwX2Rldl9pbmZvX2dldCwNCj4gPiAgCS5xdWV1 ZV9zZXR1cCA9IGFjYzEwMF9xdWV1ZV9zZXR1cCwNCj4gPiAgCS5xdWV1ZV9yZWxlYXNlID0gYWNj MTAwX3F1ZXVlX3JlbGVhc2UsDQo+ID4gKwkucXVldWVfaW50cl9lbmFibGUgPSBhY2MxMDBfcXVl dWVfaW50cl9lbmFibGUsDQo+ID4gKwkucXVldWVfaW50cl9kaXNhYmxlID0gYWNjMTAwX3F1ZXVl X2ludHJfZGlzYWJsZQ0KPiA+ICB9Ow0KPiA+DQo+ID4gIC8qIEFDQzEwMCBQQ0kgUEYgYWRkcmVz cyBtYXAgKi8NCj4gPiBAQCAtMzAxOCw4ICszMjk1LDEwIEBADQo+ID4gIAkJCT8gKDEgPDwgUlRF X0JCREVWX0RBVEFfRVJST1IpIDogMCk7DQo+ID4gIAlvcC0+c3RhdHVzIHw9ICgocnNwLmRtYV9l cnIpID8gKDEgPDwgUlRFX0JCREVWX0RSVl9FUlJPUikgOiAwKTsNCj4gPiAgCW9wLT5zdGF0dXMg fD0gKChyc3AuZmN3X2VycikgPyAoMSA8PCBSVEVfQkJERVZfRFJWX0VSUk9SKSA6IDApOw0KPiA+ IC0JaWYgKG9wLT5zdGF0dXMgIT0gMCkNCj4gPiArCWlmIChvcC0+c3RhdHVzICE9IDApIHsNCj4g PiAgCQlxX2RhdGEtPnF1ZXVlX3N0YXRzLmRlcXVldWVfZXJyX2NvdW50Kys7DQo+ID4gKwkJYWNj MTAwX2NoZWNrX2lyKHEtPmQpOw0KPiA+ICsJfQ0KPiA+DQo+ID4gIAkvKiBDUkMgaW52YWxpZCBp ZiBlcnJvciBleGlzdHMgKi8NCj4gPiAgCWlmICghb3AtPnN0YXR1cykNCj4gPiBAQCAtMzA3Niw2 ICszMzU1LDkgQEANCj4gPiAgCQlvcC0+c3RhdHVzIHw9IDEgPDwgUlRFX0JCREVWX1NZTkRST01F X0VSUk9SOw0KPiA+ICAJb3AtPmxkcGNfZGVjLml0ZXJfY291bnQgPSAodWludDhfdCkgcnNwLml0 ZXJfY250Ow0KPiA+DQo+ID4gKwlpZiAob3AtPnN0YXR1cyAmICgxIDw8IFJURV9CQkRFVl9EUlZf RVJST1IpKQ0KPiA+ICsJCWFjYzEwMF9jaGVja19pcihxLT5kKTsNCj4gPiArDQo+ID4gIAkvKiBD aGVjayBpZiB0aGlzIGlzIHRoZSBsYXN0IGRlc2MgaW4gYmF0Y2ggKEF0b21pYyBRdWV1ZSkgKi8N Cj4gPiAgCWlmIChkZXNjLT5yZXEubGFzdF9kZXNjX2luX2JhdGNoKSB7DQo+ID4gIAkJKCphcV9k ZXF1ZXVlZCkrKzsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRl X2FjYzEwMF9wbWQuaA0KPiA+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9w bWQuaA0KPiA+IGluZGV4IDc4Njg2YzEuLjg5ODBmYTUgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVy cy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuaA0KPiA+ICsrKyBiL2RyaXZlcnMvYmFz ZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmgNCj4gPiBAQCAtNTU5LDcgKzU1OSwxNCBAQCBz dHJ1Y3QgYWNjMTAwX2RldmljZSB7DQo+ID4gIAkvKiBWaXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGlu Zm8gbWVtb3J5IHJvdXRlZCB0byB0aGUgdGhpcyBmdW5jdGlvbg0KPiB1bmRlcg0KPiA+ICAJICog b3BlcmF0aW9uLCB3aGV0aGVyIGl0IGlzIFBGIG9yIFZGLg0KPiA+ICAJICovDQo+ID4gKwl1bmlv biBhY2MxMDBfaW5mb19yaW5nX2RhdGEgKmluZm9fcmluZzsNCj4gDQo+IE5lZWQgYSBjb21tZW50 IHRoYXQgdGhpcyBhcnJheSBuZWVkcyBhIHNlbnRpbmVsID8NCg0KQ2FuIGNsYXJpZnkgYSBiaXQg ZXhwZWN0ZWQgSFcgYmVoYXZpb3VyDQoNClRoYW5rcw0KDQo+IA0KPiBUb20NCj4gDQo+ID4gKw0K PiA+ICAJdW5pb24gYWNjMTAwX2hhcnFfbGF5b3V0X2RhdGEgKmhhcnFfbGF5b3V0Ow0KPiA+ICsJ LyogVmlydHVhbCBJbmZvIFJpbmcgaGVhZCAqLw0KPiA+ICsJdWludDE2X3QgaW5mb19yaW5nX2hl YWQ7DQo+ID4gKwkvKiBOdW1iZXIgb2YgYnl0ZXMgYXZhaWxhYmxlIGZvciBlYWNoIHF1ZXVlIGlu IGRldmljZSwgZGVwZW5kaW5nDQo+IG9uDQo+ID4gKwkgKiBob3cgbWFueSBxdWV1ZXMgYXJlIGVu YWJsZWQgd2l0aCBjb25maWd1cmUoKQ0KPiA+ICsJICovDQo+ID4gIAl1aW50MzJfdCBzd19yaW5n X3NpemU7DQo+ID4gIAl1aW50MzJfdCBkZHJfc2l6ZTsgLyogU2l6ZSBpbiBrQiAqLw0KPiA+ICAJ dWludDMyX3QgKnRhaWxfcHRyczsgLyogQmFzZSBhZGRyZXNzIG9mIHJlc3BvbnNlIHRhaWwgcG9p bnRlciBidWZmZXINCj4gPiAqLyBAQCAtNTc1LDQgKzU4MiwxMiBAQCBzdHJ1Y3QgYWNjMTAwX2Rl dmljZSB7DQo+ID4gIAlib29sIGNvbmZpZ3VyZWQ7IC8qKjwgVHJ1ZSBpZiB0aGlzIEFDQzEwMCBk ZXZpY2UgaXMgY29uZmlndXJlZCAqLw0KPiA+IH07DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAqIFN0 cnVjdHVyZSB3aXRoIGRldGFpbHMgYWJvdXQgUlRFX0JCREVWX0VWRU5UX0RFUVVFVUUgZXZlbnQu IEl0J3MNCj4gPiArcGFzc2VkIHRvDQo+ID4gKyAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4NCj4g PiArICovDQo+ID4gK3N0cnVjdCBhY2MxMDBfZGVxX2ludHJfZGV0YWlscyB7DQo+ID4gKwl1aW50 MTZfdCBxdWV1ZV9pZDsNCj4gPiArfTsNCj4gPiArDQo+ID4gICNlbmRpZiAvKiBfUlRFX0FDQzEw MF9QTURfSF8gKi8NCg0K