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 62005A052A; Sun, 24 Jan 2021 16:10:52 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D296A140D49; Sun, 24 Jan 2021 16:10:51 +0100 (CET) Received: from hqnvemgate25.nvidia.com (hqnvemgate25.nvidia.com [216.228.121.64]) by mails.dpdk.org (Postfix) with ESMTP id DD806140D43 for ; Sun, 24 Jan 2021 16:10:50 +0100 (CET) Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate25.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Sun, 24 Jan 2021 07:10:50 -0800 Received: from HQMAIL105.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Sun, 24 Jan 2021 07:10:50 -0800 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Sun, 24 Jan 2021 07:10:50 -0800 Received: from HQMAIL107.nvidia.com (172.20.187.13) by HQMAIL105.nvidia.com (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Sun, 24 Jan 2021 15:10:47 +0000 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.105) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Sun, 24 Jan 2021 15:10:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xjg5C4UePBsFM9vp0Fti6/kw55Zy5D2UVQnvm0pmn92BX7sXYlH7XeFBOF2yd1yKl04geeWRBoruD6vIxOH0BdZDF3Pp8pKPN1+BQPRhX7cD19w53rqRNHppmo0qpPYFIRuI1ytSvlEDqOS2zxHnAxzHHJRLixWKkxh7DD39YGx7UX+F8c4sRI1E3r/6ynkbBQtQNEGmuSGKm0xpwc/85sJ82e+JmMiy3xI42ylpawqOdDHId6L8PeKeSHOluq4gSQaip5N02q2dLA6y7g/SG7iqI2Mtj0mcKjedq3GhlbWlTzvmI95ILgpXT3V9RnhLLZfQyEX8mK72fT4+t04/wA== 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=InI1rKjtZIL+DcvM8UFLgGUuxug/KrwvHmBWMAKg9nU=; b=K4nH/9BrCi5g7KX+Sh7xfELtDdRIW44vWuE7aKq74jiVasyS7EhW6MEFMLKFnuPtdr6ftcHnyVyiAA5FmbJSarUDkjnfPNh8zTExS03jc0tvnMjIKQZIXB8e6O3oAYUyHA79dRj7PqY4eyIDM5c0Cu0ydb50kDH8tIHJAhXPRurJ+MUKxmiv3/gpxBGvZoPkSizn9wVrxXAK1IFaEC8r54jc4CPfB8gwYtFZJQv9zMWHev7xKyuxXi0UEZ0tLS0t0ojqD288HtntKwq8/gzoMeDZbMKyiPYD+G2L89wgPNDlKk1v+/u1A+Tx6Q8YixAeRsldkHLgrYT6yVBufUWhHw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none Received: from BY5PR12MB4324.namprd12.prod.outlook.com (2603:10b6:a03:209::10) by BYAPR12MB3029.namprd12.prod.outlook.com (2603:10b6:a03:ab::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12; Sun, 24 Jan 2021 15:10:45 +0000 Received: from BY5PR12MB4324.namprd12.prod.outlook.com ([fe80::8d03:2ada:5add:965d]) by BY5PR12MB4324.namprd12.prod.outlook.com ([fe80::8d03:2ada:5add:965d%3]) with mapi id 15.20.3784.017; Sun, 24 Jan 2021 15:10:45 +0000 From: "Xueming(Steven) Li" To: =?utf-8?B?6LCi5Y2O5LyfKOatpOaXtuatpOWIu++8iQ==?= , Maxime Coquelin , "ferruh.yigit@intel.com" CC: "dev@dpdk.org" , "anatoly.burakov@intel.com" , "david.marchand@redhat.com" , "zhihong.wang@intel.com" , "chenbo.xia@intel.com" , "grive@u256.net" Thread-Topic: [dpdk-dev] [PATCH v5 1/3] PCI: use PCI standard sysfs entry to get PIO address Thread-Index: AQHW6LoGGuj1BlmLsEmOBsPg7W9siKonc1sAgA9/2PA= Date: Sun, 24 Jan 2021 15:10:45 +0000 Message-ID: References: <68ecd941-9c56-4de7-fae2-2ad15bdfd81a@alibaba-inc.com> <1603381885-88819-1-git-send-email-huawei.xhw@alibaba-inc.com> <1603381885-88819-2-git-send-email-huawei.xhw@alibaba-inc.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: alibaba-inc.com; dkim=none (message not signed) header.d=none; alibaba-inc.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [222.72.18.238] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 18517cc6-c880-4034-5651-08d8c07a3998 x-ms-traffictypediagnostic: BYAPR12MB3029: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:158; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ObiMD2BkLh9ZIKNHPslbVNWr92ZHHlTsfYVqdFfAiS/oOd7jOeR3EmCzsyfBPqok7A6dsuFjEhDcIRlX64jJAPUzpc/r6aCIqsdTxSB5W1TylNRtfdizm14CzNrYlvZZBX6kf77IiTBHFFEJoy4jfUkK3QbwsA2KEI4+LG74rBHxX7DM0kwR/cTysJm8+hvpQxa1EdxX7OdkGbFOSOjQL2V/n0t8inG99AFFrfqfjEng9nWrKCB2+hs1+4TO86xVJHeheiyPFm+yt+9PAhw8jdgxd5e3omUxnQLAVBWWePQ/E7RlSIpSPTuKoEXMD3Ia4FE3Uj1BoyGVI1ZUnzuoG6fLEJkw3YagOBVAzdmg+T7FQSGOY5PLwa4SE8YYspULeFEdPC4mJYmb4r3PYBAZ1A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR12MB4324.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(346002)(376002)(366004)(136003)(396003)(71200400001)(4326008)(2906002)(83380400001)(7696005)(76116006)(478600001)(66446008)(8936002)(66556008)(64756008)(66476007)(66946007)(5660300002)(86362001)(9686003)(6506007)(110136005)(316002)(52536014)(55016002)(54906003)(26005)(53546011)(8676002)(33656002)(186003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?UUZDNEI4aDh2djRzYmsvYXIzekdLNVVubC84YndiajMyRk5vYjd6RVpycE0r?= =?utf-8?B?c0paSE9nVStMZ0JoNVBScUNNZlNtbFVldzQ5Wk11NGxTRStiMCtOQ2Q5cXhY?= =?utf-8?B?U2lhQ0pLTlVqTHU5YkRpaVUzY0MxbUNnSHRPU3huNjdpZHZjbmpGdWw4ZFEz?= =?utf-8?B?UHY0azFVNzF3b21hd2ZZWmQwdGp1c2VEek1EZHJlVlRoSER2V2Z4K25JVFNM?= =?utf-8?B?ZzBVVlRUZm5HZCtiK3lEa2hjaDl0dWttaU5tMTRPRXdxNjVSMUZpZVFEN0hB?= =?utf-8?B?ZTVzU2RCd0lxa0NWQnkyOEJIZU1YM1pTbDhlczBSTVY1dXcyb1Y0UCtPc3Ex?= =?utf-8?B?VnVyR0pwK2JEdE9RT2JQSU54L1FwZVN2bkQ1MHBLM2c3QVFja0dHd3BVUE1k?= =?utf-8?B?cVRYTGNLTGVMMU1nVzZnSGVCUXkyM0creDVRNEt5ZTRSMWMrZVBiMnpSYVRi?= =?utf-8?B?QjArNlg5aVBwSVZiN0ZoMkpmS282NDhtdEhDN0NMTW5xdElLVG84dU9JZURr?= =?utf-8?B?MjZUQUhWMmRhenNEeVpYQndyUWlYUHJ2ME9lc1pCTnluN0krYUdjQzFuMjdu?= =?utf-8?B?cEdkbnBZREJnV2hROVJjMkNYSTIrNU9kc0k1ZUkzN3g3NTJBZG1NMXhrWlRl?= =?utf-8?B?Ymd1R2JSSS9sNDFNZTJmVzI0SlVkVzF2aklZQTd5emFQRmFuTXEvcW9wWGtB?= =?utf-8?B?L3g2disxL05GVURoc0FnVTE5dk9FeFlPSmNiSHp2M3ZnMHlnQ2tvKzFaOFdq?= =?utf-8?B?bU5GMGI0OG94L21mT2o3TlF2dHgrTkdTS0ZEdk1qM3ZhUHB1UjBIUWw2T3JI?= =?utf-8?B?aFh5Y1dBMjNyYW5iRnQ5RHluTGpsSmNhaHM5eUFnNkJOMXhVbUJSQU9sMU1N?= =?utf-8?B?RzYwR2NnZy9QMTRYcm9YRm1iZ1d3SGhQSkdaRjE1c3c5OVBNNG15R0xxN3hx?= =?utf-8?B?RzRGVlR1Ri9Kb2NOcDYvWU5SSXBybElDNzh5NEJvM0hENWlSM1hzQlk2a1Ux?= =?utf-8?B?RjJjNmVoSldQUDVTVDJnQi9HcTg2QTFua01jQ2krYm9xMjk1M0lMVnVDZjNC?= =?utf-8?B?bS9oSTFEdGozQnRZQUtYRFZITTZBcHZSdUl0aFRWRGR5OGkwbnFERjhRMWZR?= =?utf-8?B?alpVYk94dEx0RGZBa3dEYVBhWUhQRGZLazFBa1BVQjIrUkxUS01mSjFHcy8x?= =?utf-8?B?eFB5QjZlQ3BJREt3T1NUNzZEd1h1NUF3MXdtWHJUcVVIaWRVenNQS0orSUVO?= =?utf-8?B?TGxHbUFhaUtCTTllRE14bDZhd1o4ajNMdzY3WTJHeXdZM2JJOVpiY21yWlBD?= =?utf-8?Q?4tt5pE6Miz48s=3D?= x-ms-exchange-transport-forked: True 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: BY5PR12MB4324.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18517cc6-c880-4034-5651-08d8c07a3998 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jan 2021 15:10:45.6304 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5Qf4pGiBjUa+vdCgO3hhdLteqL7OYHm6InKpB0xarqo2+OZv1NudQVVps5zNPRf75HjgwtyrIc6OGOK/k0khxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB3029 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1611501050; bh=InI1rKjtZIL+DcvM8UFLgGUuxug/KrwvHmBWMAKg9nU=; h=X-PGP-Universal:ARC-Seal:ARC-Message-Signature: ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic: Thread-Index:Date:Message-ID:References:In-Reply-To: Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers:x-ms-exchange-senderadcheck: x-microsoft-antispam:x-microsoft-antispam-message-info: x-forefront-antispam-report:x-ms-exchange-antispam-messagedata: x-ms-exchange-transport-forked:Content-Type: Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=CmaVsRik4oafullwebXhTXYa/sP7iKPmqvJhotp3yxluWowCQo1JehqZR6Q4qDAO/ jkbW82RJaUPV7lKJxPOptEtq2vMKUXxix4Tb5Mznzvf3u8B49uPEnd6QlU+YtEqTe7 JKyR+pTJumHhz+6KbQMfk9jAgIbGZWPvNTIuXdTwkxlZISjY3PIyI7SOa+QxZmT/lP r3P8MmVaX5Ll9p+Z7uERg/u/ATeSWc28muzickaAV2zDZSw6P9hnCsqP25r5TvUnk/ bepOwPaTtFW0GoVWCbEiLeLuICFUo+4LgxXJr91pImtXZLCV9MRovxWME8gZTTQmHb mORyYiywR5wCA== Subject: Re: [dpdk-dev] [PATCH v5 1/3] PCI: use PCI standard sysfs entry to get PIO address 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 Sender: "dev" SGkgSHVhd2VpLA0KDQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBkZXYgPGRl di1ib3VuY2VzQGRwZGsub3JnPiBPbiBCZWhhbGYgT2Yg6LCi5Y2O5LyfKOatpOaXtuatpOWIu++8 iQ0KPlNlbnQ6IEZyaWRheSwgSmFudWFyeSAxNSwgMjAyMSAyOjI0IEFNDQo+VG86IE1heGltZSBD b3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+Ow0KPmZlcnJ1aC55aWdpdEBpbnRl bC5jb20NCj5DYzogZGV2QGRwZGsub3JnOyBhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tOw0KPmRh dmlkLm1hcmNoYW5kQHJlZGhhdC5jb207IHpoaWhvbmcud2FuZ0BpbnRlbC5jb207DQo+Y2hlbmJv LnhpYUBpbnRlbC5jb207IGdyaXZlQHUyNTYubmV0DQo+U3ViamVjdDogUmU6IFtkcGRrLWRldl0g W1BBVENIIHY1IDEvM10gUENJOiB1c2UgUENJIHN0YW5kYXJkIHN5c2ZzIGVudHJ5IHRvIGdldA0K PlBJTyBhZGRyZXNzDQo+DQo+DQo+T24gMjAyMS8xLzEyIDE2OjA3LCBNYXhpbWUgQ29xdWVsaW4g d3JvdGU6DQo+PiBIaSBIdWF3ZWksDQo+Pg0KPj4gVGhlIHRpdGxlIHNob3VsZCBiZSB1bmRlciB0 aGUgZm9ybToNCj4+ICJidXMvcGNpOiB1c2UgUENJIHN0YW5kYXJkIHN5c2ZzIGVudHJ5IHRvIGdl dCBQSU8gYWRkcmVzcyINCj4+DQo+PiBPbiAxMC8yMi8yMCA1OjUxIFBNLCDosKLljY7kvJ8o5q2k 5pe25q2k5Yi777yJIHdyb3RlOg0KPj4+IEZyb206ICJodWF3ZWkueGh3IiA8aHVhd2VpLnhod0Bh bGliYWJhLWluYy5jb20+DQo+Pj4NCj4+PiBQcmV2aW91c2x5IHdpdGggaWdiX3VpbyB3ZSBnZXQg UElPIGFkZHJlc3MgZnJvbSBpZ2JfdWlvIHN5c2ZzIGVudHJ5LA0KPj4+IHdpdGggdWlvX3BjaV9n ZW5lcmljLCB3ZSBnZXQgUElPIGFkZHJlc3MgZnJvbSAvcHJvYy9pb3BvcnRzLg0KDQpJdCB3aWxs IGJlIGdyZWF0IHRvIGV4cGxhaW4gYSBsaXR0bGUgYml0IG1vcmUgd2hhdCB0aGlzIHBhdGNoIGlz IHRyeWluZyB0byBkby4NCg0KPj4+DQo+Pj4gU2lnbmVkLW9mZi1ieTogaHVhd2VpLnhodyA8aHVh d2VpLnhod0BhbGliYWJhLWluYy5jb20+DQo+PiBJbiBvcmRlciB0byBjb21wbHkgd2l0aCB0aGUg Y29udHJpYnV0aW9uIHJ1bGVzLCB5b3VyIG5hbWUgbXVzdCBiZQ0KPj4gZGlzYXBseWVkIHVuZGVy IHRoZSBmb3JtOg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEZpcnN0bmFtZSBMYXN0bmFtZSA8aHVh d2VpLnhod0BhbGliYWJhLWluYy5jb20+DQo+V291bGQgZml4IHRoaXMuDQo+Pj4gLS0tDQo+Pj4g ICBkcml2ZXJzL2J1cy9wY2kvbGludXgvcGNpLmMgICAgIHwgNzcgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+PiAgIGRyaXZlcnMvYnVzL3BjaS9saW51eC9wY2lf dWlvLmMgfCA2NCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tDQo+Pj4gICAyIGZp bGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQ0KPj4+DQo+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvYnVzL3BjaS9saW51eC9wY2kuYw0KPj4+IGIvZHJpdmVycy9i dXMvcGNpL2xpbnV4L3BjaS5jIGluZGV4IDJlMTgwOGIuLjBmMzhhYmYgMTAwNjQ0DQo+Pj4gLS0t IGEvZHJpdmVycy9idXMvcGNpL2xpbnV4L3BjaS5jDQo+Pj4gKysrIGIvZHJpdmVycy9idXMvcGNp L2xpbnV4L3BjaS5jDQo+Pj4gQEAgLTY3Nyw3MSArNjc3LDYgQEAgaW50IHJ0ZV9wY2lfd3JpdGVf Y29uZmlnKGNvbnN0IHN0cnVjdA0KPnJ0ZV9wY2lfZGV2aWNlICpkZXZpY2UsDQo+Pj4gICAJfQ0K Pj4+ICAgfQ0KPj4+DQo+Pj4gLSNpZiBkZWZpbmVkKFJURV9BUkNIX1g4NikNCj4+PiAtc3RhdGlj IGludA0KPj4+IC1wY2lfaW9wb3J0X21hcChzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldiwgaW50 IGJhciBfX3J0ZV91bnVzZWQsDQo+Pj4gLQkJc3RydWN0IHJ0ZV9wY2lfaW9wb3J0ICpwKQ0KPj4+ IC17DQo+Pj4gLQl1aW50MTZfdCBzdGFydCwgZW5kOw0KPj4+IC0JRklMRSAqZnA7DQo+Pj4gLQlj aGFyICpsaW5lID0gTlVMTDsNCj4+PiAtCWNoYXIgcGNpX2lkWzE2XTsNCj4+PiAtCWludCBmb3Vu ZCA9IDA7DQo+Pj4gLQlzaXplX3QgbGluZXN6Ow0KPj4+IC0NCj4+PiAtCWlmIChydGVfZWFsX2lv cGxfaW5pdCgpICE9IDApIHsNCj4+PiAtCQlSVEVfTE9HKEVSUiwgRUFMLCAiJXMoKTogaW5zdWZm aWNpZW50IGlvcG9ydCBwZXJtaXNzaW9ucyBmb3INCj5QQ0kgZGV2aWNlICVzXG4iLA0KPj4+IC0J CQlfX2Z1bmNfXywgZGV2LT5uYW1lKTsNCj4+PiAtCQlyZXR1cm4gLTE7DQo+Pj4gLQl9DQo+Pj4g LQ0KPj4+IC0Jc25wcmludGYocGNpX2lkLCBzaXplb2YocGNpX2lkKSwgUENJX1BSSV9GTVQsDQo+ Pj4gLQkJIGRldi0+YWRkci5kb21haW4sIGRldi0+YWRkci5idXMsDQo+Pj4gLQkJIGRldi0+YWRk ci5kZXZpZCwgZGV2LT5hZGRyLmZ1bmN0aW9uKTsNCj4+PiAtDQo+Pj4gLQlmcCA9IGZvcGVuKCIv cHJvYy9pb3BvcnRzIiwgInIiKTsNCj4+PiAtCWlmIChmcCA9PSBOVUxMKSB7DQo+Pj4gLQkJUlRF X0xPRyhFUlIsIEVBTCwgIiVzKCk6IGNhbid0IG9wZW4gaW9wb3J0c1xuIiwgX19mdW5jX18pOw0K Pj4+IC0JCXJldHVybiAtMTsNCj4+PiAtCX0NCj4+PiAtDQo+Pj4gLQl3aGlsZSAoZ2V0ZGVsaW0o JmxpbmUsICZsaW5lc3osICdcbicsIGZwKSA+IDApIHsNCj4+PiAtCQljaGFyICpwdHIgPSBsaW5l Ow0KPj4+IC0JCWNoYXIgKmxlZnQ7DQo+Pj4gLQkJaW50IG47DQo+Pj4gLQ0KPj4+IC0JCW4gPSBz dHJjc3BuKHB0ciwgIjoiKTsNCj4+PiAtCQlwdHJbbl0gPSAwOw0KPj4+IC0JCWxlZnQgPSAmcHRy W24gKyAxXTsNCj4+PiAtDQo+Pj4gLQkJd2hpbGUgKCpsZWZ0ICYmIGlzc3BhY2UoKmxlZnQpKQ0K Pj4+IC0JCQlsZWZ0Kys7DQo+Pj4gLQ0KPj4+IC0JCWlmICghc3RybmNtcChsZWZ0LCBwY2lfaWQs IHN0cmxlbihwY2lfaWQpKSkgew0KPj4+IC0JCQlmb3VuZCA9IDE7DQo+Pj4gLQ0KPj4+IC0JCQl3 aGlsZSAoKnB0ciAmJiBpc3NwYWNlKCpwdHIpKQ0KPj4+IC0JCQkJcHRyKys7DQo+Pj4gLQ0KPj4+ IC0JCQlzc2NhbmYocHRyLCAiJTA0aHgtJTA0aHgiLCAmc3RhcnQsICZlbmQpOw0KPj4+IC0NCj4+ PiAtCQkJYnJlYWs7DQo+Pj4gLQkJfQ0KPj4+IC0JfQ0KPj4+IC0NCj4+PiAtCWZyZWUobGluZSk7 DQo+Pj4gLQlmY2xvc2UoZnApOw0KPj4+IC0NCj4+PiAtCWlmICghZm91bmQpDQo+Pj4gLQkJcmV0 dXJuIC0xOw0KPj4+IC0NCj4+PiAtCXAtPmJhc2UgPSBzdGFydDsNCj4+PiAtCVJURV9MT0coREVC VUcsIEVBTCwgIlBDSSBQb3J0IElPIGZvdW5kIHN0YXJ0PTB4JXhcbiIsIHN0YXJ0KTsNCj4+PiAt DQo+Pj4gLQlyZXR1cm4gMDsNCj4+PiAtfQ0KPj4+IC0jZW5kaWYNCj4+PiAtDQo+Pj4gICBpbnQN Cj4+PiAgIHJ0ZV9wY2lfaW9wb3J0X21hcChzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldiwgaW50 IGJhciwNCj4+PiAgIAkJc3RydWN0IHJ0ZV9wY2lfaW9wb3J0ICpwKQ0KPj4+IEBAIC03NTYsMTQg KzY5MSw4IEBAIGludCBydGVfcGNpX3dyaXRlX2NvbmZpZyhjb25zdCBzdHJ1Y3QNCj5ydGVfcGNp X2RldmljZSAqZGV2aWNlLA0KPj4+ICAgCQlicmVhazsNCj4+PiAgICNlbmRpZg0KPj4+ICAgCWNh c2UgUlRFX1BDSV9LRFJWX0lHQl9VSU86DQo+Pj4gLQkJcmV0ID0gcGNpX3Vpb19pb3BvcnRfbWFw KGRldiwgYmFyLCBwKTsNCj4+PiAtCQlicmVhazsNCj4+PiAgIAljYXNlIFJURV9QQ0lfS0RSVl9V SU9fR0VORVJJQzoNCj4+PiAtI2lmIGRlZmluZWQoUlRFX0FSQ0hfWDg2KQ0KPj4+IC0JCXJldCA9 IHBjaV9pb3BvcnRfbWFwKGRldiwgYmFyLCBwKTsNCj4+PiAtI2Vsc2UNCj4+PiAgIAkJcmV0ID0g cGNpX3Vpb19pb3BvcnRfbWFwKGRldiwgYmFyLCBwKTsgLSNlbmRpZg0KPj4+ICAgCQlicmVhazsN Cj4+PiAgIAlkZWZhdWx0Og0KPj4+ICAgCQlicmVhazsNCj4+PiBAQCAtODMwLDE0ICs3NTksOCBA QCBpbnQgcnRlX3BjaV93cml0ZV9jb25maWcoY29uc3Qgc3RydWN0DQo+cnRlX3BjaV9kZXZpY2Ug KmRldmljZSwNCj4+PiAgIAkJYnJlYWs7DQo+Pj4gICAjZW5kaWYNCj4+PiAgIAljYXNlIFJURV9Q Q0lfS0RSVl9JR0JfVUlPOg0KPj4+IC0JCXJldCA9IHBjaV91aW9faW9wb3J0X3VubWFwKHApOw0K Pj4+IC0JCWJyZWFrOw0KPj4+ICAgCWNhc2UgUlRFX1BDSV9LRFJWX1VJT19HRU5FUklDOg0KPj4+ IC0jaWYgZGVmaW5lZChSVEVfQVJDSF9YODYpDQo+Pj4gLQkJcmV0ID0gMDsNCj4+PiAtI2Vsc2UN Cj4+PiAgIAkJcmV0ID0gcGNpX3Vpb19pb3BvcnRfdW5tYXAocCk7DQo+Pj4gLSNlbmRpZg0KPj4+ ICAgCQlicmVhazsNCj4+PiAgIAlkZWZhdWx0Og0KPj4+ICAgCQlicmVhazsNCj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9idXMvcGNpL2xpbnV4L3BjaV91aW8uYw0KPj4+IGIvZHJpdmVycy9idXMv cGNpL2xpbnV4L3BjaV91aW8uYyBpbmRleCBmMzMwNWEyLi4wMWYyYTQwIDEwMDY0NA0KPj4+IC0t LSBhL2RyaXZlcnMvYnVzL3BjaS9saW51eC9wY2lfdWlvLmMNCj4+PiArKysgYi9kcml2ZXJzL2J1 cy9wY2kvbGludXgvcGNpX3Vpby5jDQo+Pj4gQEAgLTM3MywxMCArMzczLDEzIEBADQo+Pj4gICBw Y2lfdWlvX2lvcG9ydF9tYXAoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpkZXYsIGludCBiYXIsDQo+ Pj4gICAJCSAgIHN0cnVjdCBydGVfcGNpX2lvcG9ydCAqcCkNCj4+PiAgIHsNCj4+PiArCUZJTEUg KmYgPSBOVUxMOw0KPj4+ICAgCWNoYXIgZGlybmFtZVtQQVRIX01BWF07DQo+Pj4gICAJY2hhciBm aWxlbmFtZVtQQVRIX01BWF07DQo+Pj4gLQlpbnQgdWlvX251bTsNCj4+PiAtCXVuc2lnbmVkIGxv bmcgc3RhcnQ7DQo+Pj4gKwljaGFyIGJ1ZltCVUZTSVpdOw0KPj4+ICsJdWludDY0X3QgcGh5c19h ZGRyLCBlbmRfYWRkciwgZmxhZ3M7DQo+Pj4gKwl1bnNpZ25lZCBsb25nIGJhc2U7DQo+Pj4gKwlp bnQgaTsNCj4+Pg0KPj4+ICAgCWlmIChydGVfZWFsX2lvcGxfaW5pdCgpICE9IDApIHsNCj4+PiAg IAkJUlRFX0xPRyhFUlIsIEVBTCwgIiVzKCk6IGluc3VmZmljaWVudCBpb3BvcnQgcGVybWlzc2lv bnMgZm9yDQo+UENJDQo+Pj4gZGV2aWNlICVzXG4iLCBAQCAtMzg0LDQxICszODcsNjYgQEANCj4+ PiAgIAkJcmV0dXJuIC0xOw0KPj4+ICAgCX0NCj4+Pg0KPj4+IC0JdWlvX251bSA9IHBjaV9nZXRf dWlvX2RldihkZXYsIGRpcm5hbWUsIHNpemVvZihkaXJuYW1lKSwgMCk7DQo+Pj4gLQlpZiAodWlv X251bSA8IDApDQo+Pj4gKwkvKiBvcGVuIGFuZCByZWFkIGFkZHJlc3NlcyBvZiB0aGUgY29ycmVz cG9uZGluZyByZXNvdXJjZSBpbiBzeXNmcyAqLw0KPj4+ICsJc25wcmludGYoZmlsZW5hbWUsIHNp emVvZihmaWxlbmFtZSksICIlcy8iIFBDSV9QUklfRk1UICIvcmVzb3VyY2UiLA0KPj4+ICsJCXJ0 ZV9wY2lfZ2V0X3N5c2ZzX3BhdGgoKSwgZGV2LT5hZGRyLmRvbWFpbiwgZGV2LT5hZGRyLmJ1cywN Cj4+PiArCQlkZXYtPmFkZHIuZGV2aWQsIGRldi0+YWRkci5mdW5jdGlvbik7DQo+Pj4gKwlmID0g Zm9wZW4oZmlsZW5hbWUsICJyIik7DQo+Pj4gKwlpZiAoZiA9PSBOVUxMKSB7DQo+Pj4gKwkJUlRF X0xPRyhFUlIsIEVBTCwgIiVzKCk6IENhbm5vdCBvcGVuIHN5c2ZzIHJlc291cmNlOiAlc1xuIiwN Cj4+PiArCQkJX19mdW5jX18sIHN0cmVycm9yKGVycm5vKSk7DQo+Pj4gICAJCXJldHVybiAtMTsN Cj4+PiArCX0NCj4+Pg0KPj4+IC0JLyogZ2V0IHBvcnRpbyBzdGFydCAqLw0KPj4+IC0Jc25wcmlu dGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksDQo+Pj4gLQkJICIlcy9wb3J0aW8vcG9ydCVk L3N0YXJ0IiwgZGlybmFtZSwgYmFyKTsNCj4+PiAtCWlmIChlYWxfcGFyc2Vfc3lzZnNfdmFsdWUo ZmlsZW5hbWUsICZzdGFydCkgPCAwKSB7DQo+Pj4gLQkJUlRFX0xPRyhFUlIsIEVBTCwgIiVzKCk6 IGNhbm5vdCBwYXJzZSBwb3J0aW8gc3RhcnRcbiIsDQo+Pj4gLQkJCV9fZnVuY19fKTsNCj4+PiAt CQlyZXR1cm4gLTE7DQo+Pj4gKwlmb3IgKGkgPSAwOyBpIDwgYmFyICsgMTsgaSsrKSB7DQo+Pj4g KwkJaWYgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGYpID09IE5VTEwpIHsNCj4+PiArCQkJUlRF X0xPRyhFUlIsIEVBTCwgIiVzKCk6IENhbm5vdCByZWFkIHN5c2ZzDQo+cmVzb3VyY2VcbiIsIF9f ZnVuY19fKTsNCj4+PiArCQkJZ290byBlcnJvcjsNCj4+PiArCQl9DQo+Pj4gICAJfQ0KPj4+IC0J LyogZW5zdXJlIHdlIGRvbid0IGdldCBhbnl0aGluZyBmdW5ueSBoZXJlLCByZWFkL3dyaXRlIHdp bGwgY2FzdCB0bw0KPj4+IC0JICogdWluMTZfdCAqLw0KPj4+IC0JaWYgKHN0YXJ0ID4gVUlOVDE2 X01BWCkNCj4+PiAtCQlyZXR1cm4gLTE7DQo+Pj4gKwlpZiAocGNpX3BhcnNlX29uZV9zeXNmc19y ZXNvdXJjZShidWYsIHNpemVvZihidWYpLCAmcGh5c19hZGRyLA0KPj4+ICsJCSZlbmRfYWRkciwg JmZsYWdzKSA8IDApDQo+Pj4gKwkJZ290byBlcnJvcjsNCj4+PiArDQo+Pj4gKwlpZiAoIShmbGFn cyAmIElPUkVTT1VSQ0VfSU8pKSB7DQo+Pj4gKwkJUlRFX0xPRyhFUlIsIEVBTCwgIiVzKCk6IGJh ciByZXNvdXJjZSBvdGhlciB0aGFuIElPIGlzIG5vdA0KPnN1cHBvcnRlZFxuIiwgX19mdW5jX18p Ow0KPj4+ICsJCWdvdG8gZXJyb3I7DQo+Pj4gKwl9DQo+Pj4gKwliYXNlID0gKHVuc2lnbmVkIGxv bmcpcGh5c19hZGRyOw0KPj4+ICsJUlRFX0xPRyhJTkZPLCBFQUwsICIlcygpOiBQSU8gQkFSICUw OGx4IGRldGVjdGVkXG4iLCBfX2Z1bmNfXywNCj4+PiArYmFzZSk7DQoNCkFyZSB5b3Ugc3VyZSBJ TkZPIGxldmVsIGlzIHJlcXVpcmVkPyBCVFcsIHRoZXJlIGlzIGEgc2FtZSBsb2cgYmVsb3cuDQoN Cj4+PiArDQo+Pj4gKwlpZiAoYmFzZSA+IFVJTlQxNl9NQVgpDQo+Pj4gKwkJZ290byBlcnJvcjsN Cj4+Pg0KPj4+ICAgCS8qIEZJWE1FIG9ubHkgZm9yIHByaW1hcnkgcHJvY2VzcyA/ICovDQo+Pj4g ICAJaWYgKGRldi0+aW50cl9oYW5kbGUudHlwZSA9PSBSVEVfSU5UUl9IQU5ETEVfVU5LTk9XTikg ew0KPj4+ICsJCWludCB1aW9fbnVtID0gcGNpX2dldF91aW9fZGV2KGRldiwgZGlybmFtZSwgc2l6 ZW9mKGRpcm5hbWUpLA0KPjApOw0KPj4+ICsJCWlmICh1aW9fbnVtIDwgMCkgew0KPj4+ICsJCQlS VEVfTE9HKEVSUiwgRUFMLCAiY2Fubm90IG9wZW4gJXM6ICVzXG4iLA0KPj4+ICsJCQkJZGlybmFt ZSwgc3RyZXJyb3IoZXJybm8pKTsNCj4+PiArCQkJZ290byBlcnJvcjsNCj4+PiArCQl9DQo+Pj4N Cj4+PiAgIAkJc25wcmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIvZGV2L3VpbyV1 IiwgdWlvX251bSk7DQo+Pj4gICAJCWRldi0+aW50cl9oYW5kbGUuZmQgPSBvcGVuKGZpbGVuYW1l LCBPX1JEV1IpOw0KPj4+ICAgCQlpZiAoZGV2LT5pbnRyX2hhbmRsZS5mZCA8IDApIHsNCj4+PiAg IAkJCVJURV9MT0coRVJSLCBFQUwsICJDYW5ub3Qgb3BlbiAlczogJXNcbiIsDQo+Pj4gICAJCQkJ ZmlsZW5hbWUsIHN0cmVycm9yKGVycm5vKSk7DQo+Pj4gLQkJCXJldHVybiAtMTsNCj4+PiArCQkJ Z290byBlcnJvcjsNCj4+PiAgIAkJfQ0KPj4+ICAgCQlkZXYtPmludHJfaGFuZGxlLnR5cGUgPSBS VEVfSU5UUl9IQU5ETEVfVUlPOw0KPj4+ICAgCX0NCj4+Pg0KPj4+IC0JUlRFX0xPRyhERUJVRywg RUFMLCAiUENJIFBvcnQgSU8gZm91bmQgc3RhcnQ9MHglbHhcbiIsIHN0YXJ0KTsNCj4+PiArCVJU RV9MT0coREVCVUcsIEVBTCwgIlBDSSBQb3J0IElPIGZvdW5kIHN0YXJ0PTB4JWx4XG4iLCBiYXNl KTsNCj4+Pg0KPj4+IC0JcC0+YmFzZSA9IHN0YXJ0Ow0KPj4+ICsJcC0+YmFzZSA9IGJhc2U7DQo+ Pj4gICAJcC0+bGVuID0gMDsNCj4+PiArCWZjbG9zZShmKTsNCj4+PiAgIAlyZXR1cm4gMDsNCj4+ PiArZXJyb3I6DQo+Pj4gKwlpZiAoZikNCj4+PiArCQlmY2xvc2UoZik7DQo+Pj4gKwlyZXR1cm4g LTE7DQo+Pj4gICB9DQo+Pj4gICAjZWxzZQ0KPj4+ICAgaW50DQo+Pj4NCj4+IEkgdGhpbmsgaXQg bWFrZXMgc2Vuc2UgdG8gaGF2ZSBhIGNvbW1vbiB3YXkgZm9yIGJvdGggaWdiX3VpbyBhbmQNCj4+ IHVpb19wY2lfZ2VuZXJpYyB0byBnZXQgdGhlIFBJTyBiYXNlIGFkZHJlc3MuDQo+Pg0KPj4gV2l0 aCBjb21taXQgbWVzc2FnZSBhbmQgdGl0bGUgZml4ZWQsIGZlZWwgZnJlZSB0byBhZGQgbXk6DQo+ Pg0KPj4gUmV2aWV3ZWQtYnk6IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhh dC5jb20+DQo+VGhhbmtzIE1heGltZS4NCj4+DQo+PiBUaGFua3MsDQo+PiBNYXhpbWUNCg0KVGhh bmtzLA0KWHVlbWluZw0K