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 32E41A0350; Mon, 29 Jun 2020 03:15:57 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 910C22C2B; Mon, 29 Jun 2020 03:15:56 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 2DA371023 for ; Mon, 29 Jun 2020 03:15:53 +0200 (CEST) IronPort-SDR: ZMx2iATC/UTBV0NeIv8w6+tB73+EsoK/AserouJV8fnGbmNBFKxcRyteYAz04YThEXuO/ZmPlQ CmGE51kdPE9A== X-IronPort-AV: E=McAfee;i="6000,8403,9666"; a="145887157" X-IronPort-AV: E=Sophos;i="5.75,293,1589266800"; d="scan'208";a="145887157" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2020 18:15:52 -0700 IronPort-SDR: rFaZgFOOn43pZBnSGoRySVDW9kveBCzX/wFdhLvjfFdzV2HrrRKDR7T/C1v5fANDVdn1/z6vOU kTQO/pMDGF5w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,293,1589266800"; d="scan'208";a="276925539" Received: from orsmsx103.amr.corp.intel.com ([10.22.225.130]) by orsmga003.jf.intel.com with ESMTP; 28 Jun 2020 18:15:52 -0700 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by ORSMSX103.amr.corp.intel.com (10.22.225.130) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 28 Jun 2020 18:15:52 -0700 Received: from NAM04-BN3-obe.outbound.protection.outlook.com (104.47.46.51) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 28 Jun 2020 18:15:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MSCMMlMmVKku0qMkS19e+wP7DtWCt6C+UrdfBYlhiQf33CvHnvSMX6ioQMC9+gygTZqneyd2i+DNkrWOdhqK/A1VC1/hoQNy+hMXJEPNyUFDfoo439J+C7kmEkzCQXi/mjtiJ1JR6jmsWhJp/p00cRn78o/aNem0Q6sNuvPvPa8MKSZ4lOpqbzLcqcqTsbjYqk8RgFDoUlH9RAsVmTpUoE0mZuPu3eq8NqlGTv1gksWN/11OJ24/MN2MtRZkBMl0+hH6UmG9zXymArA+j4vR9+PXBr+W6b45WN6nOoO5D6zn9MHky4Xg+EknO932S+4cj8Z28qM9fXJ8nMgYzZp7xA== 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=ha64Fagmwf0dfh17+xUgREjWvdUisfoh4P08YfAHOrc=; b=X+gIRCCqDuGMM5oxgFmrKtaJyT2TW+HwkGsK9Q50+pa+ezoDLDyrCY20/cbWPC+1tkRIiMsX+45ZM11Hodt9LLTd03YqH1VntcBdNNH1y5PbiONAuOaSkd55df4AcmqzQENyLH+9rpAhcyaCMALvR/ero47mJhkCnjTmbq6jQn/mOrXousTK10UlYYWcVqib8HhVQSIipEgk1inqfCmybqoiJ1vUovdzYk77uY/UuZAxpgwJMR0nYL3KU4F1QkFRCXakDHT1gXrZv6NoIqSFj1YSqnlUMQjPn+4TGvSC8ynCm/dJYii1MYkXklALTOmsac/l1usMdld/y8d4HJVQZQ== 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=ha64Fagmwf0dfh17+xUgREjWvdUisfoh4P08YfAHOrc=; b=Keyq8VEcIWU4KsyGI7KX3S0HzFVc/fXMhyh90ouGeoHlvH9DnR9jWiP2XYGBoairwGaJtpfLMTMeV3LdjpqPdRWBD3F82cDeB8kJpxca+YA2pmeEMPqHpskXPTnJXE8CLCqrIvk9DrTlQCiuXoOf+yNNeU6ylvke+ZtX0GUSqE4= Received: from BYAPR11MB3735.namprd11.prod.outlook.com (2603:10b6:a03:b4::31) by BYAPR11MB2711.namprd11.prod.outlook.com (2603:10b6:a02:c2::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.26; Mon, 29 Jun 2020 01:15:50 +0000 Received: from BYAPR11MB3735.namprd11.prod.outlook.com ([fe80::2571:24e3:140b:d78c]) by BYAPR11MB3735.namprd11.prod.outlook.com ([fe80::2571:24e3:140b:d78c%7]) with mapi id 15.20.3131.026; Mon, 29 Jun 2020 01:15:50 +0000 From: "Fu, Patrick" To: Maxime Coquelin , "dev@dpdk.org" , "Xia, Chenbo" , "Wang, Zhihong" CC: "Jiang, Cheng1" , "Liang, Cunming" Thread-Topic: [PATCH v1 1/2] vhost: introduce async data path registration API Thread-Index: AQHWP9kL69pQFn0pyUK9iVpxZvUGSqjrDHcAgAPUNVA= Date: Mon, 29 Jun 2020 01:15:50 +0000 Message-ID: References: <1591869725-13331-1-git-send-email-patrick.fu@intel.com> <1591869725-13331-2-git-send-email-patrick.fu@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action 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: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a046398a-e72d-428a-de26-08d81bc9f647 x-ms-traffictypediagnostic: BYAPR11MB2711: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 044968D9E1 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rBGms0k8rbVCjw4zXXK+BPU9BdYJmZdL7Gca9LcpFhd+8Fm3skAmA/DwAw4aHBGkC96SJU9GtoRFyddrsPW0C+dZrr88pPb3+P4zr54aG/eOaGvZgCXjiNBk4VHXZqsGuzVUJZBtEMDCMdtG5HoQDXW2Z7sncb4HeAt3aKsP09B75FIAKPNzBNy0mXBEiPwNphqT5ySov+eq1TAOPpLltZzA82tV5lnhTwHjB5M1Pd6a9W/9n5sOC+jWny0eMLkn9zNu/W0Om4V+htBjy303rVlDqq6ssuMgojMipWw6io3R7lQCuSTg8PZvjejzwncF x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB3735.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(136003)(376002)(396003)(346002)(366004)(6506007)(8936002)(53546011)(316002)(110136005)(83380400001)(26005)(7696005)(107886003)(71200400001)(186003)(5660300002)(76116006)(55016002)(8676002)(33656002)(4326008)(478600001)(2906002)(66946007)(86362001)(9686003)(52536014)(66556008)(64756008)(66446008)(54906003)(66476007)(6636002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: vUhDBvLQptjgHYd/bbFlvMy+hCqwssgvyNIfcXdS0dBsIKfUyxkFKkBcB3aiYHjNlMluX9t4BMSS87YdzxvhgtAggGiBqFl7mbKLz6gEK2QMKYAd3lj5rXE9CLjYEv/29ZCi0PMx5xpmHaFiRsxhNiQ/we/zDyPoX1DfiAr7R7Yui/3hBEMAMkv2BU+rPTpXUcf2mqJyyxW0anPFY93H4V2udXvCkPKkcmeR7dq24H4Id3pIh56+9HBO4kFyTz3MNIATC6t9Ru/t3Ey8KiZTGINnmCBh3p2jyng1syiLpyK0OUuBFrKe//2DRbl+V5GlL0ejQRSdyar4BI7eSqH618duFf9GPmrYl9eCmDTI/wC2Z+pecgt34NnrQ7djNe4J45leRoPx2IPWCytKEb4Tzplu4Yf3cwLwZRroziK90v+UzdwS6DOBCqKnjqD3EMyOmVWy73B6MozoFxxrTAyUjEONsl1AUMwAxvN982+sEp6y1XWBbOJT8xI0VBEuyIdc 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: BYAPR11MB3735.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a046398a-e72d-428a-de26-08d81bc9f647 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2020 01:15:50.5547 (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: wO2yIPgHWYsodsiXqWMKxNVIaOzbCe4uN1H3QzcpgU6edW+I65fXTWvLgDloUF8DmwG8AfoN5PJ3BJT9O7idzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2711 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1 1/2] vhost: introduce async data path registration API 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" SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IEZyaWRheSwg SnVuZSAyNiwgMjAyMCAxMDoyOSBQTQ0KPiBUbzogRnUsIFBhdHJpY2sgPHBhdHJpY2suZnVAaW50 ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBYaWEsIENoZW5ibw0KPiA8Y2hlbmJvLnhpYUBpbnRlbC5j b20+OyBXYW5nLCBaaGlob25nIDx6aGlob25nLndhbmdAaW50ZWwuY29tPjsgWWUsDQo+IFhpYW9s b25nIDx4aWFvbG9uZy55ZUBpbnRlbC5jb20+DQo+IENjOiBKaWFuZywgQ2hlbmcxIDxjaGVuZzEu amlhbmdAaW50ZWwuY29tPjsgTGlhbmcsIEN1bm1pbmcNCj4gPGN1bm1pbmcubGlhbmdAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYxIDEvMl0gdmhvc3Q6IGludHJvZHVjZSBhc3lu YyBkYXRhIHBhdGggcmVnaXN0cmF0aW9uIEFQSQ0KPiANCj4gDQo+IA0KPiBPbiA2LzExLzIwIDEy OjAyIFBNLCBwYXRyaWNrLmZ1QGludGVsLmNvbSB3cm90ZToNCj4gPiBGcm9tOiBQYXRyaWNrIDxw YXRyaWNrLmZ1QGludGVsLmNvbT4NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zo b3N0L3NvY2tldC5jIGIvbGliL2xpYnJ0ZV92aG9zdC9zb2NrZXQuYw0KPiA+IGluZGV4IDBhNjZl ZjkuLmY4MTc3ODMgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC9zb2NrZXQuYw0K PiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvc29ja2V0LmMNCj4gPiBAQCAtNDIsNiArNDIsNyBA QCBzdHJ1Y3Qgdmhvc3RfdXNlcl9zb2NrZXQgew0KPiA+ICAJYm9vbCB1c2VfYnVpbHRpbl92aXJ0 aW9fbmV0Ow0KPiA+ICAJYm9vbCBleHRidWY7DQo+ID4gIAlib29sIGxpbmVhcmJ1ZjsNCj4gPiAr CWJvb2wgYXN5bmNfY29weTsNCj4gPg0KPiA+ICAJLyoNCj4gPiAgCSAqIFRoZSAic3VwcG9ydGVk X2ZlYXR1cmVzIiBpbmRpY2F0ZXMgdGhlIGZlYXR1cmUgYml0cyB0aGUgQEAgLTIxMCw2DQo+ID4g KzIxMSw3IEBAIHN0cnVjdCB2aG9zdF91c2VyIHsNCj4gPiAgCXNpemVfdCBzaXplOw0KPiA+ICAJ c3RydWN0IHZob3N0X3VzZXJfY29ubmVjdGlvbiAqY29ubjsNCj4gPiAgCWludCByZXQ7DQo+ID4g KwlzdHJ1Y3QgdmlydGlvX25ldCAqZGV2Ow0KPiA+DQo+ID4gIAlpZiAodnNvY2tldCA9PSBOVUxM KQ0KPiA+ICAJCXJldHVybjsNCj4gPiBAQCAtMjQxLDYgKzI0MywxMyBAQCBzdHJ1Y3Qgdmhvc3Rf dXNlciB7DQo+ID4gIAlpZiAodnNvY2tldC0+bGluZWFyYnVmKQ0KPiA+ICAJCXZob3N0X2VuYWJs ZV9saW5lYXJidWYodmlkKTsNCj4gPg0KPiA+ICsJaWYgKHZzb2NrZXQtPmFzeW5jX2NvcHkpIHsN Cj4gPiArCQlkZXYgPSBnZXRfZGV2aWNlKHZpZCk7DQo+ID4gKw0KPiA+ICsJCWlmIChkZXYpDQo+ ID4gKwkJCWRldi0+YXN5bmNfY29weSA9IDE7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICAJVkhPU1Rf TE9HX0NPTkZJRyhJTkZPLCAibmV3IGRldmljZSwgaGFuZGxlIGlzICVkXG4iLCB2aWQpOw0KPiA+ DQo+ID4gIAlpZiAodnNvY2tldC0+bm90aWZ5X29wcy0+bmV3X2Nvbm5lY3Rpb24pIHsgQEAgLTg5 MSw2ICs5MDAsMTcgQEANCj4gPiBzdHJ1Y3Qgdmhvc3RfdXNlcl9yZWNvbm5lY3RfbGlzdCB7DQo+ ID4gIAkJZ290byBvdXRfbXV0ZXg7DQo+ID4gIAl9DQo+ID4NCj4gPiArCXZzb2NrZXQtPmFzeW5j X2NvcHkgPSBmbGFncyAmIFJURV9WSE9TVF9VU0VSX0FTWU5DX0NPUFk7DQo+ID4gKw0KPiA+ICsJ aWYgKHZzb2NrZXQtPmFzeW5jX2NvcHkgJiYNCj4gPiArCQkoZmxhZ3MgJiAoUlRFX1ZIT1NUX1VT RVJfSU9NTVVfU1VQUE9SVCB8DQo+ID4gKwkJUlRFX1ZIT1NUX1VTRVJfUE9TVENPUFlfU1VQUE9S VCkpKSB7DQo+ID4gKwkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJlcnJvcjogZW5hYmxpbmcgYXN5 bmMgY29weSBhbmQNCj4gSU9NTVUgIg0KPiA+ICsJCQkib3IgcG9zdC1jb3B5IGZlYXR1cmUgc2lt dWx0YW5lb3VzbHkgaXMgbm90ICINCj4gPiArCQkJInN1cHBvcnRlZFxuIik7DQo+ID4gKwkJZ290 byBvdXRfbXV0ZXg7DQo+ID4gKwl9DQo+ID4gKw0KPiANCj4gSGF2ZSB5b3UgZW5zdXJlIGNvbXBh dGliaWxpdHkgd2l0aCB0aGUgbGluZWFyYnVmIGZlYXR1cmUgKFRTTyk/DQo+IFlvdSB3aWxsIHdh bnQgdG8gZG8gc2FtZSBraW5kIG9mIGNoZWNrIGlmIG5vdCBjb21wYXRpYmxlLg0KPiANCkkgdGhp bmsgdGhpcyBjb25jZXJuIGNvbWVzIHByaW1hcmlseSBmcm9tIGRlcXVldWUgc2lkZS4gQXMgY3Vy cmVudCBwYXRjaCBpcyBmb3IgZW5xdWV1ZSBvbmx5LCANCmxpbmVhcmJ1ZiBjaGVjayBkb2Vzbid0 IHNlZW0gdG8gYmUgbmVjZXNzYXJ5LiBGb3IgZnV0dXJlIGRlcXVldWUgaW1wbGVtZW50YXRpb24s IHdlIG1heSANCm5lZWQgdG8gYWRkIGFuIGFkZGl0aW9uYWwgZmVhdHVyZSBiaXQgdG8gbGV0IGFw cGxpY2F0aW9uIHRvIGRlY2lkZSBpZiB0aGUgYXN5bmMgY2FsbGJhY2sgaXMgDQpjb21wYXRpYmxl IHdpdGggbGluZWFyYnVmIG9yIG5vdC4gRm9yIGEgcmVhbCBoYXJkd2FyZSBETUEgZW5naW5lLCBp dCBzaG91bGQgdXN1YWxseSBzdXBwb3J0IA0KbGluZWFyYnVmLiBGb3IgYSBwdXJlIHNvZnR3YXJl IGJhY2tlbmQgKHNvbWV0aGluZyBsaWtlIGRlcXVldWUtemVyby1jb3B5KSwgaXQgbWF5IG5vdCBz dXBwb3J0LiANCg0KPiA+ICAJLyoNCj4gPiAgCSAqIFNldCB0aGUgc3VwcG9ydGVkIGZlYXR1cmVz IGNvcnJlY3RseSBmb3IgdGhlIGJ1aWx0aW4gdmhvc3QtdXNlcg0KPiA+ICAJICogbmV0IGRyaXZl ci4NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdC5jIGIvbGliL2xpYnJ0 ZV92aG9zdC92aG9zdC5jIGluZGV4DQo+ID4gMDI2NjMxOC4uZTZiNjg4YSAxMDA2NDQNCj4gPiAt LS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmMNCj4gPiArKysgYi9saWIvbGlicnRlX3Zob3N0 L3Zob3N0LmMNCj4gPiBAQCAtMzMyLDggKzMzMiwxMyBAQA0KPiA+ICB7DQo+ID4gIAlpZiAodnFf aXNfcGFja2VkKGRldikpDQo+ID4gIAkJcnRlX2ZyZWUodnEtPnNoYWRvd191c2VkX3BhY2tlZCk7 DQo+ID4gLQllbHNlDQo+ID4gKwllbHNlIHsNCj4gPiAgCQlydGVfZnJlZSh2cS0+c2hhZG93X3Vz ZWRfc3BsaXQpOw0KPiA+ICsJCWlmICh2cS0+YXN5bmNfcGt0c19wZW5kaW5nKQ0KPiA+ICsJCQly dGVfZnJlZSh2cS0+YXN5bmNfcGt0c19wZW5kaW5nKTsNCj4gPiArCQlpZiAodnEtPmFzeW5jX3Bl bmRpbmdfaW5mbykNCj4gPiArCQkJcnRlX2ZyZWUodnEtPmFzeW5jX3BlbmRpbmdfaW5mbyk7DQo+ ID4gKwl9DQo+ID4gIAlydGVfZnJlZSh2cS0+YmF0Y2hfY29weV9lbGVtcyk7DQo+ID4gIAlydGVf bWVtcG9vbF9mcmVlKHZxLT5pb3RsYl9wb29sKTsNCj4gPiAgCXJ0ZV9mcmVlKHZxKTsNCj4gPiBA QCAtMTUyNywzICsxNTMyLDcwIEBAIGludCBydGVfdmhvc3RfZXh0ZXJuX2NhbGxiYWNrX3JlZ2lz dGVyKGludCB2aWQsDQo+ID4gIAlpZiAodmhvc3RfZGF0YV9sb2dfbGV2ZWwgPj0gMCkNCj4gPiAg CQlydGVfbG9nX3NldF9sZXZlbCh2aG9zdF9kYXRhX2xvZ19sZXZlbCwNCj4gUlRFX0xPR19XQVJO SU5HKTsgIH0NCj4gPiArDQo+ID4gK2ludCBydGVfdmhvc3RfYXN5bmNfY2hhbm5lbF9yZWdpc3Rl cihpbnQgdmlkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPiArCQkJCQl1aW50MzJfdCBmZWF0dXJl cywNCj4gPiArCQkJCQlzdHJ1Y3QgcnRlX3Zob3N0X2FzeW5jX2NoYW5uZWxfb3BzDQo+ICpvcHMp IHsNCj4gPiArCXN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxOw0KPiA+ICsJc3RydWN0IHZpcnRp b19uZXQgKmRldiA9IGdldF9kZXZpY2UodmlkKTsNCj4gPiArCXN0cnVjdCBkbWFfY2hhbm5lbF9m ZWF0dXJlcyBmOw0KPiA+ICsNCj4gPiArCWlmIChkZXYgPT0gTlVMTCB8fCBvcHMgPT0gTlVMTCkN Cj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJZi5pbnR2YWwgPSBmZWF0dXJlczsNCj4g PiArDQo+ID4gKwl2cSA9IGRldi0+dmlydHF1ZXVlW3F1ZXVlX2lkXTsNCj4gPiArDQo+ID4gKwlp ZiAodnEgPT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJLyoqIHBhY2tl ZCBxdWV1ZSBpcyBub3Qgc3VwcG9ydGVkICovDQo+ID4gKwlpZiAodnFfaXNfcGFja2VkKGRldikg fHwgIWYuaW5vcmRlcikNCj4gPiArCQlyZXR1cm4gLTE7DQo+IA0KPiBZb3UgbWlnaHQgd2FudCB0 byBwcmludCBhbiBlcnJvciBtZXNzYWdlIHRvIGhlbHAgdGhlIHVzZXIgdW5kZXJzdGFuZGluZw0K PiB3aHkgaXQgZmFpbHMuDQo+IA0KV2lsbCB1cGRhdGUgaW4gdjIgcGF0Y2gNCg0KPiA+ICsNCj4g PiArCWlmIChvcHMtPmNoZWNrX2NvbXBsZXRlZF9jb3BpZXMgPT0gTlVMTCB8fA0KPiA+ICsJCW9w cy0+dHJhbnNmZXJfZGF0YSA9PSBOVUxMKQ0KPiA+ICsJCXJldHVybiAtMTsNCj4gPiArDQo+ID4g KwlydGVfc3BpbmxvY2tfbG9jaygmdnEtPmFjY2Vzc19sb2NrKTsNCj4gPiArDQo+ID4gKwl2cS0+ YXN5bmNfb3BzLmNoZWNrX2NvbXBsZXRlZF9jb3BpZXMgPSBvcHMtDQo+ID5jaGVja19jb21wbGV0 ZWRfY29waWVzOw0KPiA+ICsJdnEtPmFzeW5jX29wcy50cmFuc2Zlcl9kYXRhID0gb3BzLT50cmFu c2Zlcl9kYXRhOw0KPiA+ICsNCj4gPiArCXZxLT5hc3luY19pbm9yZGVyID0gZi5pbm9yZGVyOw0K PiA+ICsJdnEtPmFzeW5jX3RocmVzaG9sZCA9IGYudGhyZXNob2xkOw0KPiA+ICsNCj4gPiArCXZx LT5hc3luY19yZWdpc3RlcmVkID0gdHJ1ZTsNCj4gPiArDQo+ID4gKwlydGVfc3BpbmxvY2tfdW5s b2NrKCZ2cS0+YWNjZXNzX2xvY2spOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtpbnQgcnRlX3Zob3N0X2FzeW5jX2NoYW5uZWxfdW5yZWdpc3RlcihpbnQgdmlk LCB1aW50MTZfdCBxdWV1ZV9pZCkgew0KPiA+ICsJc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnE7 DQo+ID4gKwlzdHJ1Y3QgdmlydGlvX25ldCAqZGV2ID0gZ2V0X2RldmljZSh2aWQpOw0KPiA+ICsN Cj4gPiArCWlmIChkZXYgPT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJ dnEgPSBkZXYtPnZpcnRxdWV1ZVtxdWV1ZV9pZF07DQo+ID4gKw0KPiA+ICsJaWYgKHZxID09IE5V TEwpDQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsNCj4gPiArCXJ0ZV9zcGlubG9ja19sb2NrKCZ2 cS0+YWNjZXNzX2xvY2spOw0KPiANCj4gV2UgbWlnaHQgd2FudCB0byB3YWl0IGFsbCBhc3luYyB0 cmFuc2ZlcnMgYXJlIGRvbmUgYmVyZm9yZSB1bnJlZ2lzdGVyaW5nPw0KPiANClRoaXMgY291bGQg YmUgYSBsaXR0bGUgYml0IHRyaWNreS4gSW4gb3VyIGFzeW5jIGVucXVldWUgQVBJIGRlc2lnbiwg YXBwbGljYXRpb25zIHNlbmQgbWJ1ZiB0byBETUEgZW5naW5lIA0KZnJvbSBvbmUgQVBJIGNhbGwg YW5kIGdldCBmaW5pc2hlZCBtYnVmIGJhY2sgZnJvbSBhbm90aGVyIEFQSSBjYWxsLiBJZiB3ZSB3 YW50IHRvIGRyYWluIERNQSBidWZmZXIgYXQgdGhpcyANCnVucmVnaXN0cmF0aW9uIEFQSSwgd2Ug bmVlZCB0byBlaXRoZXIgcmV0dXJuIG1idWYgZnJvbSB1bnJlZ2lzdHJhdGlvbiwgb3Igc2F2ZSB0 aGUgbWJ1ZiBhbmQgcmV0dXJuIGl0IHNvbWV3aGVyZSBlbHNlLiANCkknbSB0aGlua2luZyBpZiBp dCdzIGJldHRlciB0byBqdXN0IHJlcG9ydCBlcnJvciBpbiB1bnJlZ2lzdHJhdGlvbiBpbiBjYXNl IGluLWZsaWdodCBwYWNrZXRzIGV4aXN0aW5nIGFuZCByZWx5IG9uIGFwcGxpY2F0aW9uIHRvIA0K cG9sbCBvdXQgYWxsIGluLWZsaWdodCBwYWNrZXRzLg0KDQo=