From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 582BF23D for ; Tue, 30 Oct 2018 11:34:04 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Oct 2018 03:34:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,444,1534834800"; d="scan'208,217";a="103902683" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga001.jf.intel.com with ESMTP; 30 Oct 2018 03:34:02 -0700 Received: from fmsmsx158.amr.corp.intel.com (10.18.116.75) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 30 Oct 2018 03:34:02 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx158.amr.corp.intel.com (10.18.116.75) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 30 Oct 2018 03:34:02 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.117]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.214]) with mapi id 14.03.0415.000; Tue, 30 Oct 2018 18:33:59 +0800 From: "Lin, Xueqin" To: Alejandro Lucero CC: "Yao, Lei A" , Thomas Monjalon , dev , "Xu, Qian Q" , "Burakov, Anatoly" , "Yigit, Ferruh" , "Zhang, Qi Z" Thread-Topic: [dpdk-dev] [PATCH v3 0/6] use IOVAs check based on DMA mask Thread-Index: AQHUbwHVCqPw4mslyE66+0cqAeEf9aU14R4g//+BeYCAAJNOUP//fw2AgAAGWoCAAAFZAIAAF0MAgAACGoCAABM6AIAAi+4w//+ArgAALSJAoP//5lCA//9wTDA= Date: Tue, 30 Oct 2018 10:33:59 +0000 Message-ID: <0D300480287911409D9FF92C1FA2A3355B443027@SHSMSX104.ccr.corp.intel.com> References: <1538743527-8285-1-git-send-email-alejandro.lucero@netronome.com> <2737161.TvyDVilZt4@xps> <2DBBFF226F7CF64BAFCA79B681719D954502B94F@shsmsx102.ccr.corp.intel.com> <0D300480287911409D9FF92C1FA2A3355B442C48@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH v3 0/6] use IOVAs check based on DMA mask 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: , X-List-Received-Date: Tue, 30 Oct 2018 10:34:05 -0000 SGkgTHVjZXJvLA0KDQpObywgd2UgaGF2ZSByZXByb2R1Y2VkIG11bHRpLXByb2Nlc3MgaXNzdWVz KGluY2x1ZGUgc3ltbWV0cmljX21wLCBzaW1wbGVfbXAsIGhvdHBsdWdfbXAsIG11bHRpLXByb2Nl c3MgdW5pdCB0ZXN04oCmIClvbiBtb3N0IG9mIG91ciBzZXJ2ZXJzLg0KSXQgaXMgYWxzbyBzdHJh bmdlIHRoYXQgMX4yIHNlcnZlcnMgZG9u4oCZdCBoYXZlIHRoZSBpc3N1ZS4NCg0KQmluZCB0d28g Tk5UIHBvcnRzIG9yIEZWTCBwb3J0cw0KDQouL2J1aWxkL3N5bW1ldHJpY19tcCAtYyA0IC0tcHJv Yy10eXBlPWF1dG8gLS0gLXAgMyAtLW51bS1wcm9jcz00IC0tcHJvYy1pZD0xDQoNCkVBTDogRGV0 ZWN0ZWQgODggbGNvcmUocykNCkVBTDogRGV0ZWN0ZWQgMiBOVU1BIG5vZGVzDQpFQUw6IEF1dG8t ZGV0ZWN0ZWQgcHJvY2VzcyB0eXBlOiBTRUNPTkRBUlkNCltOZXcgVGhyZWFkIDB4N2ZmZmY2ZWRh NzAwIChMV1AgOTAxMDMpXQ0KRUFMOiBNdWx0aS1wcm9jZXNzIHNvY2tldCAvdmFyL3J1bi9kcGRr L3J0ZS9tcF9zb2NrZXRfOTAwOTlfMmYxYjU1Mzg4MmI2Mg0KW05ldyBUaHJlYWQgMHg3ZmZmZjY2 ZDk3MDAgKExXUCA5MDEwNCldDQoNClRocmVhZCAxICJzeW1tZXRyaWNfbXAiIHJlY2VpdmVkIHNp Z25hbCBTSUdTRUdWLCBTZWdtZW50YXRpb24gZmF1bHQuDQoweDAwMDAwMDAwMDA1NTY2YjUgaW4g cnRlX2ZiYXJyYXlfZmluZF9uZXh0X3VzZWQgKCkNCihnZGIpIGJ0DQojMCAgMHgwMDAwMDAwMDAw NTU2NmI1IGluIHJ0ZV9mYmFycmF5X2ZpbmRfbmV4dF91c2VkICgpDQojMSAgMHgwMDAwMDAwMDAw NTRkYTljIGluIHJ0ZV9lYWxfY2hlY2tfZG1hX21hc2sgKCkNCiMyICAweDAwMDAwMDAwMDA1NzJh ZTcgaW4gcGNpX29uZV9kZXZpY2VfaW9tbXVfc3VwcG9ydF92YSAoKQ0KIzMgIDB4MDAwMDAwMDAw MDU3Mzk4OCBpbiBydGVfcGNpX2dldF9pb21tdV9jbGFzcyAoKQ0KIzQgIDB4MDAwMDAwMDAwMDU0 Zjc0MyBpbiBydGVfYnVzX2dldF9pb21tdV9jbGFzcyAoKQ0KIzUgIDB4MDAwMDAwMDAwMDUzYzEy MyBpbiBydGVfZWFsX2luaXQgKCkNCiM2ICAweDAwMDAwMDAwMDA0NmJlMmIgaW4gbWFpbiAoKQ0K DQpCZXN0IHJlZ2FyZHMsDQpYdWVxaW4NCg0KRnJvbTogQWxlamFuZHJvIEx1Y2VybyBbbWFpbHRv OmFsZWphbmRyby5sdWNlcm9AbmV0cm9ub21lLmNvbV0NClNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIg MzAsIDIwMTggNTo0MSBQTQ0KVG86IExpbiwgWHVlcWluIDx4dWVxaW4ubGluQGludGVsLmNvbT4N CkNjOiBZYW8sIExlaSBBIDxsZWkuYS55YW9AaW50ZWwuY29tPjsgVGhvbWFzIE1vbmphbG9uIDx0 aG9tYXNAbW9uamFsb24ubmV0PjsgZGV2IDxkZXZAZHBkay5vcmc+OyBYdSwgUWlhbiBRIDxxaWFu LnEueHVAaW50ZWwuY29tPjsgQnVyYWtvdiwgQW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVs LmNvbT47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBaaGFuZywgUWkg WiA8cWkuei56aGFuZ0BpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0gg djMgMC82XSB1c2UgSU9WQXMgY2hlY2sgYmFzZWQgb24gRE1BIG1hc2sNCg0KDQpPbiBUdWUsIE9j dCAzMCwgMjAxOCBhdCAzOjIwIEFNIExpbiwgWHVlcWluIDx4dWVxaW4ubGluQGludGVsLmNvbTxt YWlsdG86eHVlcWluLmxpbkBpbnRlbC5jb20+PiB3cm90ZToNCkhpIEx1Y2VybyZUaG9tYXMsDQoN CkZpbmQgdGhlIHBhdGNoIGNhbuKAmXQgZml4IG11bHRpLXByb2Nlc3MgY2FzZXMuDQoNCkhpLA0K DQpJIHRoaW5rIGl0IGlzIG5vdCBzcGVjaWZpY2FsbHkgYWJvdXQgbXVsdGlwcm9jZXNzIGJ1dCBh Ym91dCBob3RwbHVnIHdpdGggbXVsdGlwcm9jZXNzIGJlY2F1c2UgSSBjYW4gZXhlY3V0ZSB0aGUg c3ltbWV0cmljX21wIHN1Y2Nlc3NmdWxseSB3aXRoIGEgc2Vjb25kYXJ5IHByb2Nlc3MuDQoNCldv cmtpbmcgb24gdGhpcyBhcyBhIHByaW9yaXR5Lg0KDQpUaGFua3MuDQoNClN0ZXBzOg0KDQoxLiAg ICAgICBTZXR1cCBwcmltYXJ5IHByb2Nlc3Mgc3VjY2Vzc2Z1bGx5DQoNCi4vaG90cGx1Z19tcCAt LXByb2MtdHlwZT1hdXRvDQoNCg0KDQoyLiAgICAgICBGYWlsIHRvIHNldHVwIHNlY29uZGFyeSBw cm9jZXNzDQoNCi4vaG90cGx1Z19tcCAtLXByb2MtdHlwZT1hdXRvDQoNCkVBTDogRGV0ZWN0ZWQg ODggbGNvcmUocykNCg0KRUFMOiBEZXRlY3RlZCAyIE5VTUEgbm9kZXMNCg0KRUFMOiBBdXRvLWRl dGVjdGVkIHByb2Nlc3MgdHlwZTogU0VDT05EQVJZDQoNCkVBTDogTXVsdGktcHJvY2VzcyBzb2Nr ZXQgL3Zhci9ydW4vZHBkay9ydGUvbXBfc29ja2V0XzE0NzIxMl8yYmZlMDhlZTg4ZDIzDQoNClNl Z21lbnRhdGlvbiBmYXVsdCAoY29yZSBkdW1wZWQpDQoNCg0KTW9yZSBpbmZvcm1hdGlvbiBhcyBi ZWxvdzoNCg0KVGhyZWFkIDEgImhvdHBsdWdfbXAiIHJlY2VpdmVkIHNpZ25hbCBTSUdTRUdWLCBT ZWdtZW50YXRpb24gZmF1bHQuDQoNCjB4MDAwMDAwMDAwMDU5N2NmYiBpbiBmaW5kX25leHQgKGFy cj0weDdmZmZmN2ZmMjBhNCwgc3RhcnQ9MCwgdXNlZD10cnVlKQ0KDQogICAgYXQgL3Jvb3QvZHBk ay9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9mYmFycmF5LmM6MjY0DQoNCjI2NCAg ICAgICAgICAgICBmb3IgKGlkeCA9IGZpcnN0OyBpZHggPCBtc2stPm5fbWFza3M7IGlkeCsrKSB7 DQoNCiMwICAweDAwMDAwMDAwMDA1OTdjZmIgaW4gZmluZF9uZXh0IChhcnI9MHg3ZmZmZjdmZjIw YTQsIHN0YXJ0PTAsIHVzZWQ9dHJ1ZSkNCg0KICAgIGF0IC9yb290L2RwZGsvbGliL2xpYnJ0ZV9l YWwvY29tbW9uL2VhbF9jb21tb25fZmJhcnJheS5jOjI2NA0KDQojMSAgMHgwMDAwMDAwMDAwNTk4 NTczIGluIGZiYXJyYXlfZmluZCAoYXJyPTB4N2ZmZmY3ZmYyMGE0LCBzdGFydD0wLCBuZXh0PXRy dWUsDQoNCiAgICB1c2VkPXRydWUpIGF0IC9yb290L2RwZGsvbGliL2xpYnJ0ZV9lYWwvY29tbW9u L2VhbF9jb21tb25fZmJhcnJheS5jOjEwMDENCg0KIzIgIDB4MDAwMDAwMDAwMDU5OTI5YiBpbiBy dGVfZmJhcnJheV9maW5kX25leHRfdXNlZCAoYXJyPTB4N2ZmZmY3ZmYyMGE0LCBzdGFydD0wKQ0K DQogICAgYXQgL3Jvb3QvZHBkay9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9mYmFy cmF5LmM6MTAxOA0KDQojMyAgMHgwMDAwMDAwMDAwNThjODc3IGluIHJ0ZV9tZW1zZWdfd2Fsa190 aHJlYWRfdW5zYWZlIChmdW5jPTB4NThjNDAxIDxjaGVja19pb3ZhPiwNCg0KICAgIGFyZz0weDdm ZmZmZmZmY2MzOCkgYXQgL3Jvb3QvZHBkay9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1v bl9tZW1vcnkuYzo1ODkNCg0KIzQgIDB4MDAwMDAwMDAwMDU4Y2UwOCBpbiBydGVfZWFsX2NoZWNr X2RtYV9tYXNrIChtYXNrYml0cz00OCAnMCcpDQoNCiAgICBhdCAvcm9vdC9kcGRrL2xpYi9saWJy dGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX21lbW9yeS5jOjQ2NQ0KDQojNSAgMHgwMDAwMDAwMDAw NWI5NmM0IGluIHBjaV9vbmVfZGV2aWNlX2lvbW11X3N1cHBvcnRfdmEgKGRldj0weDExYjNkOTAp DQoNCiAgICBhdCAvcm9vdC9kcGRrL2RyaXZlcnMvYnVzL3BjaS9saW51eC9wY2kuYzo1OTMNCg0K IzYgIDB4MDAwMDAwMDAwMDViOTczOCBpbiBwY2lfZGV2aWNlc19pb21tdV9zdXBwb3J0X3ZhICgp DQoNCiAgICBhdCAvcm9vdC9kcGRrL2RyaXZlcnMvYnVzL3BjaS9saW51eC9wY2kuYzo2MjYNCg0K IzcgIDB4MDAwMDAwMDAwMDViOTdhNyBpbiBydGVfcGNpX2dldF9pb21tdV9jbGFzcyAoKQ0KDQog ICAgYXQgL3Jvb3QvZHBkay9kcml2ZXJzL2J1cy9wY2kvbGludXgvcGNpLmM6NjUwDQoNCiM4ICAw eDAwMDAwMDAwMDA1OGYxY2UgaW4gcnRlX2J1c19nZXRfaW9tbXVfY2xhc3MgKCkNCg0KICAgIGF0 IC9yb290L2RwZGsvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fYnVzLmM6MjM3DQoN CiM5ICAweDAwMDAwMDAwMDA1NzdjN2EgaW4gcnRlX2VhbF9pbml0IChhcmdjPTIsIGFyZ3Y9MHg3 ZmZmZmZmZmRmOTgpDQoNCiAgICBhdCAvcm9vdC9kcGRrL2xpYi9saWJydGVfZWFsL2xpbnV4YXBw L2VhbC9lYWwuYzo5MTkNCg0KIzEwIDB4MDAwMDAwMDAwMDQ1ZGQ1NiBpbiBtYWluIChhcmdjPTIs IGFyZ3Y9MHg3ZmZmZmZmZmRmOTgpDQoNCiAgICBhdCAvcm9vdC9kcGRrL2V4YW1wbGVzL211bHRp X3Byb2Nlc3MvaG90cGx1Z19tcC9tYWluLmM6MjgNCg0KDQpCZXN0IHJlZ2FyZHMsDQpYdWVxaW4N Cg0KRnJvbTogQWxlamFuZHJvIEx1Y2VybyBbbWFpbHRvOmFsZWphbmRyby5sdWNlcm9AbmV0cm9u b21lLmNvbTxtYWlsdG86YWxlamFuZHJvLmx1Y2Vyb0BuZXRyb25vbWUuY29tPl0NClNlbnQ6IE1v bmRheSwgT2N0b2JlciAyOSwgMjAxOCA5OjQxIFBNDQpUbzogWWFvLCBMZWkgQSA8bGVpLmEueWFv QGludGVsLmNvbTxtYWlsdG86bGVpLmEueWFvQGludGVsLmNvbT4+DQpDYzogVGhvbWFzIE1vbmph bG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PG1haWx0bzp0aG9tYXNAbW9uamFsb24ubmV0Pj47IGRl diA8ZGV2QGRwZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+PjsgWHUsIFFpYW4gUSA8cWlhbi5x Lnh1QGludGVsLmNvbTxtYWlsdG86cWlhbi5xLnh1QGludGVsLmNvbT4+OyBMaW4sIFh1ZXFpbiA8 eHVlcWluLmxpbkBpbnRlbC5jb208bWFpbHRvOnh1ZXFpbi5saW5AaW50ZWwuY29tPj47IEJ1cmFr b3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb208bWFpbHRvOmFuYXRvbHkuYnVy YWtvdkBpbnRlbC5jb20+PjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbTxt YWlsdG86ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4+DQpTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBb UEFUQ0ggdjMgMC82XSB1c2UgSU9WQXMgY2hlY2sgYmFzZWQgb24gRE1BIG1hc2sNCg0KDQpPbiBN b24sIE9jdCAyOSwgMjAxOCBhdCAxOjE4IFBNIFlhbywgTGVpIEEgPGxlaS5hLnlhb0BpbnRlbC5j b208bWFpbHRvOmxlaS5hLnlhb0BpbnRlbC5jb20+PiB3cm90ZToNCg0KDQpGcm9tOiBBbGVqYW5k cm8gTHVjZXJvIFttYWlsdG86YWxlamFuZHJvLmx1Y2Vyb0BuZXRyb25vbWUuY29tPG1haWx0bzph bGVqYW5kcm8ubHVjZXJvQG5ldHJvbm9tZS5jb20+XQ0KU2VudDogTW9uZGF5LCBPY3RvYmVyIDI5 LCAyMDE4IDg6NTYgUE0NClRvOiBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ8 bWFpbHRvOnRob21hc0Btb25qYWxvbi5uZXQ+Pg0KQ2M6IFlhbywgTGVpIEEgPGxlaS5hLnlhb0Bp bnRlbC5jb208bWFpbHRvOmxlaS5hLnlhb0BpbnRlbC5jb20+PjsgZGV2IDxkZXZAZHBkay5vcmc8 bWFpbHRvOmRldkBkcGRrLm9yZz4+OyBYdSwgUWlhbiBRIDxxaWFuLnEueHVAaW50ZWwuY29tPG1h aWx0bzpxaWFuLnEueHVAaW50ZWwuY29tPj47IExpbiwgWHVlcWluIDx4dWVxaW4ubGluQGludGVs LmNvbTxtYWlsdG86eHVlcWluLmxpbkBpbnRlbC5jb20+PjsgQnVyYWtvdiwgQW5hdG9seSA8YW5h dG9seS5idXJha292QGludGVsLmNvbTxtYWlsdG86YW5hdG9seS5idXJha292QGludGVsLmNvbT4+ OyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPG1haWx0bzpmZXJydWgueWln aXRAaW50ZWwuY29tPj4NClN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MyAwLzZdIHVz ZSBJT1ZBcyBjaGVjayBiYXNlZCBvbiBETUEgbWFzaw0KDQoNCk9uIE1vbiwgT2N0IDI5LCAyMDE4 IGF0IDExOjQ2IEFNIFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldDxtYWlsdG86 dGhvbWFzQG1vbmphbG9uLm5ldD4+IHdyb3RlOg0KMjkvMTAvMjAxOCAxMjozOSwgQWxlamFuZHJv IEx1Y2VybzoNCj4gSSBnb3QgYSBwYXRjaCB0aGF0IHNvbHZlcyBhIGJ1ZyB3aGVuIGNhbGxpbmcg cnRlX2VhbF9kbWFfbWFzayB1c2luZyB0aGUNCj4gbWFzayBpbnN0ZWFkIG9mIHRoZSBtYXNrYml0 cy4gSG93ZXZlciwgdGhpcyBkb2VzIG5vdCBzb2x2ZXMgdGhlIGRlYWRsb2NrLg0KDQpUaGUgZGVh ZGxvY2sgaXMgYSBiaWdnZXIgY29uY2VybiBJIHRoaW5rLg0KDQpJIHRoaW5rIG9uY2UgdGhlIGNh bGwgdG8gcnRlX2VhbF9jaGVja19kbWFfbWFzayB1c2VzIHRoZSBtYXNrYml0cyBpbnN0ZWFkIG9m IHRoZSBtYXNrLCBjYWxsaW5nIHJ0ZV9tZW1zZWdfd2Fsa190aHJlYWRfdW5zYWZlIGF2b2lkcyB0 aGUgZGVhZGxvY2suDQoNCllhbywgY2FuIHlvdSB0cnkgd2l0aCB0aGUgYXR0YWNoZWQgcGF0Y2g/ DQoNCkhpLCBMdWNlcm8NCg0KVGhpcyBwYXRjaCBjYW4gZml4IHRoZSBpc3N1ZSBhdCBteSBzaWRl LiBUaGFua3MgYSBsb3QNCmZvciB5b3UgcXVpY2sgYWN0aW9uLg0KDQoNCkdyZWF0IQ0KDQpJIHdp bGwgc2VuZCBhbiBvZmZpY2lhbCBwYXRjaCB3aXRoIHRoZSBjaGFuZ2VzLg0KDQpJIGhhdmUgdG8g c2F5IHRoYXQgSSB0ZXN0ZWQgdGhlIHBhdGNoc2V0LCBidXQgSSB0aGluayBpdCB3YXMgd2hlcmUg bGVnYWN5X21lbSB3YXMgc3RpbGwgdGhlcmUgYW5kIHRoZXJlZm9yZSBkeW5hbWljIG1lbW9yeSBh bGxvY2F0aW9uIGNvZGUgbm90IHVzZWQgZHVyaW5nIG1lbW9yeSBpbml0aWFsaXphdGlvbi4NCg0K VGhlcmUgaXMgc29tZXRoaW5nIHRoYXQgY29uY2VybnMgbWUgdGhvdWdoLiBVc2luZyBydGVfbWVt c2VnX3dhbGtfdGhyZWFkX3Vuc2FmZSBjb3VsZCBiZSBhIHByb2JsZW0gdW5kZXIgc29tZSBzaXR1 YXRpb25zIGFsdGhvdWdoIHRob3NlIHNpdHVhdGlvbnMgYmVpbmcgdW5saWtlbHkuDQoNClVzdWFs bHksIGNhbGxpbmcgcnRlX2VhbF9jaGVja19kbWFfbWFzayBoYXBwZW5zIGR1cmluZyBpbml0aWFs aXphdGlvbi4gVGhlbiBpdCBpcyBzYWZlIHRvIHVzZSB0aGUgdW5zYWZlIGZ1bmN0aW9uIGZvciB3 YWxraW5nIG1lbXNlZ3MsIGJ1dCB3aXRoIGRldmljZSBob3RwbHVnIGFuZCBkeW5hbWljIG1lbW9y eSBhbGxvY2F0aW9uLCB0aGVyZSBleGlzdHMgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gd2hl biB0aGUgcHJpbWFyeSBwcm9jZXNzIGlzIGFsbG9jYXRpbmcgbW9yZSBtZW1vcnkgYW5kIGNvbmN1 cnJlbnRseSBhIGRldmljZSBpcyBob3RwbHVnZ2VkIGFuZCBhIHNlY29uZGFyeSBwcm9jZXNzIGRv ZXMgdGhlIGRldmljZSBpbml0aWFsaXphdGlvbi4gQnkgbm93LCB0aGlzIGlzIGp1c3QgYSBwcm9i bGVtIHdpdGggdGhlIE5GUCwgYW5kIHRoZSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gd2luZG93 IHJlYWxseSB1bmxpa2VseSwgYnV0IEkgd2lsbCB3b3JrIG9uIHRoaXMgYXNhcC4NCg0KQlJzDQpM ZWkNCg0KPiBJbnRlcmVzdGluZ2x5LCB0aGUgcHJvYmxlbSBsb29rcyBsaWtlIGEgY29tcGlsZXIg b25lLiBDYWxsaW5nDQo+IHJ0ZV9tZW1zZWdfd2FsayBkb2VzIG5vdCByZXR1cm4gd2hlbiBjYWxs aW5nIGluc2lkZSBydF9lYWxfZG1hX21hc2ssIGJ1dCBpZg0KPiB5b3UgbW9kaWZ5IHRoZSBjYWxs IGxpa2UgdGhpczoNCj4NCj4gLSAgICAgICBpZiAocnRlX21lbXNlZ193YWxrKGNoZWNrX2lvdmEs ICZtYXNrKSkNCj4gKyAgICAgICBpZiAoIXJ0ZV9tZW1zZWdfd2FsayhjaGVja19pb3ZhLCAmbWFz aykpDQo+DQo+IGl0IHdvcmtzLCBhbHRob3VnaCB0aGUgdmFsdWUgcmV0dXJuZWQgdG8gdGhlIGlu dm9rZXIgY2hhbmdlcywgb2YgY291cnNlLg0KPiBCdXQgdGhlIHBvaW50IGhlcmUgaXMgaXQgc2hv dWxkIGJlIHRoZSBzYW1lIGJlaGF2aW91ciB3aGVuIGNhbGxpbmcNCj4gcnRlX21lbXNlZ193YWxr IHRoYW4gYmVmb3JlIGFuZCBpdCBpcyBub3QuDQoNCkFueXdheSwgdGhlIGNvZGluZyBzdHlsZSBy ZXF1aXJlcyB0byBzYXZlIHRoZSByZXR1cm4gdmFsdWUgaW4gYSB2YXJpYWJsZSwNCmluc3RlYWQg b2YgbmVzdGluZyB0aGUgY2FsbCBpbiBhbiAiaWYiIGNvbmRpdGlvbi4NCkFuZCB0aGUgImlmIiBj aGVjayBzaG91bGQgYmUgZXhwbGljaXRseSAhPSAwIGJlY2F1c2UgaXQgaXMgbm90IGEgcmVhbCBi b29sZWFuLg0KDQpQUzogcGxlYXNlIGRvIG5vdCB0b3AgcG9zdCBhbmQgYXZvaWQgSFRNTCBlbWFp bHMsIHRoYW5rcw0K