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 918C5A04B1; Tue, 29 Sep 2020 20:15:29 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 706DF1DA88; Tue, 29 Sep 2020 20:15:28 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id D5E901D6F7 for ; Tue, 29 Sep 2020 20:15:26 +0200 (CEST) IronPort-SDR: 356162bZcy6teLlVsE/aDTYhcofymSn97xWwjvxoU+2XxqGRHNBFdXZBcNEpY2VXYcsWdM3CcC icw2Mam/vIwQ== X-IronPort-AV: E=McAfee;i="6000,8403,9759"; a="180416597" X-IronPort-AV: E=Sophos;i="5.77,319,1596524400"; d="scan'208";a="180416597" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2020 11:15:23 -0700 IronPort-SDR: i0OMC38VJyhVskhbjrNggrCF6wytYmF6ziofZ6a+I0uKn0oabs0n2qdwftny5LiU6Iz0HD6H46 cR0iZv2eMumA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,319,1596524400"; d="scan'208";a="415474648" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 29 Sep 2020 11:15:23 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Sep 2020 11:15:22 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 29 Sep 2020 11:15:22 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.170) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 29 Sep 2020 11:15:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QfpulEi/GbwjqnM5jv8xjU+l8RimjmnWCugXQBFGUalR6m99iKd5ci+J5vH0sbRkE0nuCZj+j/zFf22w/h/EnZpL7GCDEo4wT3mntJudAR+cgV7NmR0/lcpzZ3DeR50dv1j1fS5MSCv+ra+toL2P1zFOJ1+r598/TWskcs/g1Wzgm3xtcUV18hfZiDwlEaNqHcugeXk1Z6/lIgo2yG6DQ5MaJVWwQSlemjkXwmHg1Ce2ncdEHvjrKW00Vgzx/EXzPSqu40p0KOEtjT6OnNdacvoiCVTMRFdI+CPN04LQ3uvI568hBCV+eqX81i6DSz+hDhoscEHfPTGZ7swevkPC2Q== 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=OHUZtrUmsvUlDxjr7c5TS/w3ZnlqtC4EYpkv1hDmwUg=; b=Z8+zt64PNYXFaRl4RdhHglVkOFrnnfMPdhky0s9G+tIJEykdoE57mfq5nVpWU33lk5q3Ildn4tPLWIdWrG7dwCV6dxZimiDY92YCoUyQ5QVTo6sRMslG074eKatnRWJov6v0L98BOTljxq4ds6AzUNH9QKZFBX+fxVwvk62HrWcBQn2uw/U4caWENht9TxBrHLDPsSUh5xClRAy3v2gB1x6p9we77je6l4Def8e/bBqNdR4EWO5CfD+8opuXh0F1XapNXtkXGu1SakX0ldNa1aM6sLXeMAvu/yc56xgg4dpVJdrbK+8Uu5iVtcG+H7FStP3KSMTaDcGZPMMNt+zr0w== 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=OHUZtrUmsvUlDxjr7c5TS/w3ZnlqtC4EYpkv1hDmwUg=; b=G9kkGUdAf0B9J5rIc4R6xzzXval0batSt2PP25WQsVwBRVwTQUrbi/RCxRHz28uQRpd56X/xTEkmpNmFFDKFqlNGZYytMKj6SHczRP6NaYECs1fvCU8Pd2rihMI6d9zGXscLgAYFpR+VjNrpbbF7cbo+exK1Lky38tZWy8b6Yu8= Received: from BL0PR11MB3043.namprd11.prod.outlook.com (2603:10b6:208:33::19) by MN2PR11MB4616.namprd11.prod.outlook.com (2603:10b6:208:26f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.32; Tue, 29 Sep 2020 18:15:20 +0000 Received: from BL0PR11MB3043.namprd11.prod.outlook.com ([fe80::11fa:a7fe:329d:9239]) by BL0PR11MB3043.namprd11.prod.outlook.com ([fe80::11fa:a7fe:329d:9239%5]) with mapi id 15.20.3433.032; Tue, 29 Sep 2020 18:15:20 +0000 From: "Zhang, Roy Fan" To: Maxime Coquelin , "Liu, Changpeng" , "dev@dpdk.org" CC: "matan@mellanox.com" , "Xia, Chenbo" , "Zawadzki, Tomasz" , "Yigit, Ferruh" Thread-Topic: [dpdk-dev] [PATCH] vhost: return ready when at least 1 vring is configured Thread-Index: AQHWlmojl+zDDeRl5UGA47Zp7KQYjKl/v1DQ Date: Tue, 29 Sep 2020 18:15:19 +0000 Message-ID: References: <1598944057-32690-1-git-send-email-changpeng.liu@intel.com> <8e0e8343-4e85-71f3-8c85-07eb1cff6079@redhat.com> <06542643-cc20-5e3e-26ae-7100005dc97d@redhat.com> <24b547af-2cda-36db-cb66-e5523d169556@redhat.com> <0f8b9daf-3ed7-0ede-8c0c-f2a1bcef9ca4@redhat.com> In-Reply-To: <0f8b9daf-3ed7-0ede-8c0c-f2a1bcef9ca4@redhat.com> Accept-Language: zh-Hans-HK, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows 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: [95.44.220.85] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 37284fa9-be73-4eab-f36d-08d864a3a019 x-ms-traffictypediagnostic: MN2PR11MB4616: 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:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 87eLiIgG0e7yyeaxuH2ZU75yFtfK3bIyNGkJBqQH1S+uM8YI50FUbBzjMSLpHL1AmfO0yfngQojZ6UboBfnIFH2EcsoMNbVH1L3Rke2IeIcs0eGciYYFvny0eIIx7GKVvg48kS8ghpuA67QipuxrrLSFKAT9iq4JUtxb0PGa5C9qK9qxUTDwP6igD9HMtNI6GFZPReKNTfH98P86qcBYD6ywX0J1Mec81Z84+26jJgl054Q/2T1R15jT09FRErqSUDYOq/c0jVH1lVTLM6IsVhMKQ5IxtVRkFD1TefRZ+8JLJ7Dg4bXSQzX+vk///nzda1TFQZeV1bOTnV0DLbEQjQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR11MB3043.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(136003)(366004)(376002)(346002)(396003)(71200400001)(54906003)(186003)(26005)(107886003)(7696005)(83380400001)(2906002)(53546011)(6506007)(478600001)(33656002)(76116006)(55016002)(86362001)(9686003)(4326008)(110136005)(316002)(8676002)(5660300002)(8936002)(64756008)(52536014)(66946007)(66446008)(66556008)(66476007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: UdTSGNyQxxwG2gEA4mVV6hIb7PhvZsHlBEXJB9tBVLNoxa4q/9L++znOMpmd/LPi0iuB7/VTO+f2dFRiJiWyfSJKSBjXuNExSzuY+mNki6U32RmHi9oskoEKhYReR5aBWZSHBBQJ6YtiNs6vvQI+DngwKGP1U1ix1J7VP5hqnSQPYXKgsEIuI4rRJAcWydFkPW6ki4Z0JjrHOyKuHk728QuBlGAffAqMdcrK1semBxURcYhqWkd3xvzLQCaRentlnV64BnTd1P4xx3IeAGh/cWRIy6CMxqf/A/5al6a6DnvRTpQU3aknBU0pVoR0vhDQg4gq8Mjq33IXUN+Ybyc4BF6clSlpxlMchcOHRp0tgydLv73+7oDyhNV8K2OND9kTgtniQgIwogrmynl4I1ZKl+TNwF2BXidOsRDDOrNM7TYElXXDcO0o63syzAsZtPXpEHspxUNLprhYw10AL0SBmkGuGivBspf7hqdsS2bvbgmE4LEV2XpI3CV8Aa2nF/fGYDSNgWisxyAidPRXB/6xeSxIcC+E1TnQfLoZ1dZwIyzhh4EgXw/NDqIXAxua7dQLFfWjHqWz/VA8PjjR8LtStstUA8sfOihzqU6hYQnlHWumctpYKVa6R29YtUUcmmXx/BU9WXP4XLHpV2W3G1BjMw== 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: BL0PR11MB3043.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 37284fa9-be73-4eab-f36d-08d864a3a019 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2020 18:15:19.9848 (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: sioZdlGUodMm13Mp0g9/k6/uH5MXf34+Ivvk0POBqWTT1vOuTzqk9GwIeQ/o4dfGKPw6UcY1RxTr+13zSSuNkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4616 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] vhost: return ready when at least 1 vring is configured 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" SGkgTWF4aW1lLA0KDQpUaGFua3MgZm9yIHRlbGxpbmcgbWUgdGhhdCBidXQgdmhvc3RfY3J5cHRv IGlzIHN0aWxsIGJyZWFraW5nLg0KDQpWaXJ0aW8tY3J5cHRvIChib3RoIExLQ0YgdmlydGlvLWNy eXB0IGRyaXZlciBhbmQgRFBESyB2aXJ0aW8tY3J5cHRvIFBNRCkgd29uJ3QgY3JlYXRlIGRldmlj ZSBxdWV1ZSB1bnRpbCB0aGUgY3J5cHRvIHNlc3Npb24gaXMgcmVxdWlyZWQgdG8gYmUgY3JlYXRl ZC4gVGh1cyB2cV9pc19yZWFkeSgpIHdpbGwgbmV2ZXIgcmV0dXJuIHRydWUgZHVyaW5nIGluaXRp YWxpemF0aW9uIC0gaGVuY2UgbmV3X2RldmljZSgpIGluIHZob3N0X2NyeXB0byBzYW1wbGUgYXBw IHdpbGwgbmV2ZXIgYmUgdHJpZ2dlcmVkLiBBbHNvIHNpbmNlIHJ0ZV92aG9zdF9kcml2ZXJfc2V0 X2ZlYXR1cmVzKCkgaXMgY2FsbGVkIGluc2lkZSBydGVfdmhvc3RfY3J5cHRvX2NyZWF0ZSgpLCB3 aGljaCBpcyB0cmlnZ2VyZWQgYnkgbmV3X2RldmljZSgpIGhhbmRsZXIsIHdlIGNhbm5vdCB1cGRh dGUgdGhlIGRldi0+ZmxhZ3MgdG8gYnlwYXNzIHRoZSAiaWYgKGRldi0+ZmxhZ3MgJiBWSVJUSU9f REVWX0JVSUxUSU5fVklSVElPX05FVCkiIGNoZWNrIGJlZm9yZSBuZXdfZGV2aWNlKCkgaXMgY2Fs bGVkLg0Kd2hhdCB0aGUgbmV3IGxvZ2ljIHZpcnRpb19pc19yZWFkeSgpIHJlcXVpcmVtZW50IHdp bGwgbmV2ZXIgbWVldCBmb3Igdmhvc3RfY3J5cHRvLg0KDQpBIHdheSB0byBmaXggaXQgaXMgd2l0 aCB0aGUgZm9sbG93aW5nIGNoYW5nZSAtIA0KDQpkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9z dC92aG9zdF91c2VyLmMgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KaW5kZXggYjAw ZTFmOTFkLi5lNTI2M2EzNjAgMTAwNjQ0DQotLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3Vz ZXIuYw0KKysrIGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCkBAIC0xOTM3LDYgKzE5 MzcsMTQgQEAgdmhvc3RfdXNlcl9zZXRfdnJpbmdfa2ljayhzdHJ1Y3QgdmlydGlvX25ldCAqKnBk ZXYsIHN0cnVjdCBWaG9zdFVzZXJNc2cgKm1zZywNCiAgICAgICAgICAgICAgICB9DQogICAgICAg IH0NCiANCisgICAgICAgLyogdmlydGlvLWNyeXB0byB2cSBpcyBub3QgcmVhZHkgdW50aWwgc2Vz c2lvbiBpcyBjcmVhdGVkLiBDaGVjaw0KKyAgICAgICAgKiBoZXJlIGlmIHdlIG5lZWQgdG8gaW5p dGlhbGl6ZSBkZXZpY2UgYWdhaW4NCisgICAgICAgICovDQorICAgICAgIGlmICghKGRldi0+Zmxh Z3MgJiBWSVJUSU9fREVWX1JVTk5JTkcpKSB7DQorICAgICAgICAgICAgICAgaWYgKGRldi0+bm90 aWZ5X29wcy0+bmV3X2RldmljZShkZXYtPnZpZCkgPT0gMCkNCisgICAgICAgICAgICAgICAgICAg ICAgIGRldi0+ZmxhZ3MgfD0gVklSVElPX0RFVl9SVU5OSU5HOw0KKyAgICAgICB9DQorDQogICAg ICAgIHJldHVybiBSVEVfVkhPU1RfTVNHX1JFU1VMVF9PSzsNCiB9DQoNCmJ1dCBJIGNhbm5vdCBh ZGQgdmlydGlvX2lzX3JlYWR5KCkgaW5zaWRlIHRoZSAiIGlmICghKGRldi0+ZmxhZ3MgJiBWSVJU SU9fREVWX1JVTk5JTkcpKSIgY2hlY2ssIHNpbmNlIHdlIG5lZWQgbmV3X2RldmljZSgpIGlzIGNh bGxlZCB0byBzZXQgdGhlIGZlYXR1cmUgZmxhZ3MgLSBpZiB0byBzZXQgdGhlIGZlYXR1cmUgZmxh Z3MgaW4gdGhlIGV4YW1wbGUgaW5zdGVhZCwgdGhlIGxvZ2ljIHdpbGwgbm90IHJpZ2h0LCBzaW5j ZSB2aXJ0aW8tbmV0IGRvZXMgbm90IHJlcXVpcmUgdGhlIHVzZXIgdG8gc2V0IHRoZSBmbGFncyB0 aGVtc2VsdmVzIGVpdGhlci4NCg0KUmVnYXJkcywNCkZhbg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gRnJvbTogTWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVk aGF0LmNvbT4NCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDI5LCAyMDIwIDM6MDYgUE0NCj4g VG86IFpoYW5nLCBSb3kgRmFuIDxyb3kuZmFuLnpoYW5nQGludGVsLmNvbT47IExpdSwgQ2hhbmdw ZW5nDQo+IDxjaGFuZ3BlbmcubGl1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogbWF0 YW5AbWVsbGFub3guY29tOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+OyBaYXdh ZHpraSwNCj4gVG9tYXN6IDx0b21hc3ouemF3YWR6a2lAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBS ZTogW2RwZGstZGV2XSBbUEFUQ0hdIHZob3N0OiByZXR1cm4gcmVhZHkgd2hlbiBhdCBsZWFzdCAx IHZyaW5nIGlzDQo+IGNvbmZpZ3VyZWQNCj4gDQo+IEhpIEZhbiwNCj4gDQo+IFRoZSBwYXRjaCBp cyBhbHJlYWR5IG1lcmdlZCBpbiBtYWluIGJyYW5jaDoNCj4gDQo+IGNvbW1pdCAwOTQyNGMzZjc0 MzExNTU1YzMzZDNkNGNkYzJjYTM2NTRjZTEzYjFjDQo+IEF1dGhvcjogTWF4aW1lIENvcXVlbGlu IDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gRGF0ZTogICBXZWQgU2VwIDIzIDExOjQ5 OjAyIDIwMjAgKzAyMDANCj4gDQo+ICAgICB2aG9zdDogZml4IGV4dGVybmFsIGJhY2tlbmRzIHJl YWRpbmVzcw0KPiANCj4gICAgIENvbW1pdCBkMGZjYzM4ZjVmYTQgKCJ2aG9zdDogaW1wcm92ZSBk ZXZpY2UgcmVhZGluZXNzIG5vdGlmaWNhdGlvbnMiKQ0KPiAgICAgbWFrZXMgdGhlIGFzc3VtcHRp b24gdGhhdCBldmVyeSBWaXJ0aW8gZGV2aWNlcyBhcmUgY29uc2lkZXJlZA0KPiAgICAgcmVhZHkg Zm9yIHByZW9jZXNzaW5nIGFzIHNvb24gYXMgZmlyc3QgcXVldWUgcGFpciBpcyBjb25maWd1cmVk DQo+ICAgICBhbmQgZW5hYmxlZC4NCj4gDQo+ICAgICBXaGlsZSB0aGlzIGlzIHRydWUgZm9yIFZp cnRpby1uZXQsIGl0IGlzbid0IGZvciBWaXJ0aW8tc2NzaQ0KPiAgICAgYW5kIFZpcnRpby1ibGsu DQo+IA0KPiAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IG9ubHkgbWFraW5nIHRoaXMgYXNz dW1wdGlvbiBmb3INCj4gICAgIHRoZSBidWlsdGluIFZpcnRpby1uZXQgYmFja2VuZCwgYW5kIHJl c3RvcmVzIGJhY2sgdG8gcHJldmlvdXMNCj4gICAgIGJlaGF2aW91ciBmb3Igb3RoZXIgYmFja2Vu ZHMuDQo+IA0KPiAgICAgRml4ZXM6IGQwZmNjMzhmNWZhNCAoInZob3N0OiBpbXByb3ZlIGRldmlj ZSByZWFkaW5lc3Mgbm90aWZpY2F0aW9ucyIpDQo+IA0KPiAgICAgUmVwb3J0ZWQtYnk6IENoYW5n cGVuZyBMaXUgPGNoYW5ncGVuZy5saXVAaW50ZWwuY29tPg0KPiAgICAgU2lnbmVkLW9mZi1ieTog TWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gICAgIFNpZ25l ZC1vZmYtYnk6IENoYW5ncGVuZyBMaXUgPGNoYW5ncGVuZy5saXVAaW50ZWwuY29tPg0KPiAgICAg UmV2aWV3ZWQtYnk6IENoZW5ibyBYaWEgPGNoZW5iby54aWFAaW50ZWwuY29tPg0KPiANCj4gDQo+ IFJlZ2FyZHMsDQo+IE1heGltZQ0KPiANCj4gT24gOS8yOS8yMCAzOjU0IFBNLCBaaGFuZywgUm95 IEZhbiB3cm90ZToNCj4gPiBIaSBNYXhpbWUsDQo+ID4NCj4gPiBWaG9zdC1jcnlwdG8gaGFzIGV4 YWN0bHkgdGhlIHNhbWUgaXNzdWUuIENoYW5ncGVuZydzIHBhdGNoIGZpeGVkIGl0Lg0KPiA+IENv dWxkIHlvdSBnaXZlIG1lIGEgc2hvdXQgd2hlbiB5b3VyIHBhdGNoIGlzIG91dCwgc28gSSBjYW4g aGF2ZSBhIHRlc3Q/DQo+ID4NCj4gPiBSZWdhcmRzLA0KPiA+IEZhbg0KPiA+DQo+ID4+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IGRldiA8ZGV2LWJvdW5jZXNAZHBkay5v cmc+IE9uIEJlaGFsZiBPZiBNYXhpbWUgQ29xdWVsaW4NCj4gPj4gU2VudDogV2VkbmVzZGF5LCBT ZXB0ZW1iZXIgMjMsIDIwMjAgOTowNSBBTQ0KPiA+PiBUbzogTGl1LCBDaGFuZ3BlbmcgPGNoYW5n cGVuZy5saXVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+IENjOiBtYXRhbkBtZWxsYW5v eC5jb207IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47DQo+IFphd2FkemtpLA0K PiA+PiBUb21hc3ogPHRvbWFzei56YXdhZHpraUBpbnRlbC5jb20+DQo+ID4+IFN1YmplY3Q6IFJl OiBbZHBkay1kZXZdIFtQQVRDSF0gdmhvc3Q6IHJldHVybiByZWFkeSB3aGVuIGF0IGxlYXN0IDEg dnJpbmcNCj4gaXMNCj4gPj4gY29uZmlndXJlZA0KPiA+Pg0KPiA+PiBIaSBDaGFuZ3BlbmcsDQo+ ID4+DQo+ID4+IE9uIDkvMjIvMjAgOToyMiBBTSwgTGl1LCBDaGFuZ3Blbmcgd3JvdGU6DQo+ID4+ PiBIaSBNYXhpbWUsDQo+ID4+Pg0KPiA+Pj4gVGhlIGNvZGUgeW91IHdyb3RlIHN0aWxsIG5lZWQg dG8gY2hlY2sgbnJfdnJpbmcgaXMgMCBvciBub3QsIHNlZSB0aGUgZXh0cmENCj4gMg0KPiA+PiBs aW5lcyBhZGRlZCBiZWxvdywgdGhlbiBpdCBjYW4gd29yayB3aXRoIG15IHRlc3RzIGZvciBub3cs IGNvdWxkIHlvdQ0KPiBzdWJtaXQNCj4gPj4gYSBwYXRjaCB0byBEUERLIHRvIGFwcGx5IHRoZSBw YXRjaD8gVGhhbmtzLg0KPiA+Pg0KPiA+PiBUaGFua3MhIFlvdSBhcmUgcmlnaHQuDQo+ID4+DQo+ ID4+IEknbGwgc2VuZCB0aGUgcGF0Y2ggbm93IGluY2x1ZGluZyB5b3VyIGZpeC4NCj4gPj4NCj4g Pj4+IEJUVywgZHBkayB2aG9zdCBsaWJyYXJ5IHN0aWxsIGhhcyBhbiBpc3N1ZSwgaXQncyBub3Qg cmVsYXRlZCB3aXRoIGNvbW1pdA0KPiA+PiBkMGZjYzM4ZiwgdGhlIEd1ZXN0IGRyaXZlciBtYXkg b25seSBraWNrIDEgdnJpbmcgZXZlbiBpdCBzZW5kcw0KPiBOVU1fUVVFVUVTDQo+ID4+IHdpdGgg YSBiaWdnZXIgdmFsdWUsDQo+ID4+PiB0aGlzIGlzIHF1aXRlIGNvbW1vbiBpbiBzZWFiaW9zLCBl Lmc6IHZpcnRpb19ibGsgd2lsbCBvbmx5IHVzZSAxIHZyaW5nIGluDQo+ID4+IHNlYWJpb3MsIHRo aXMgbWVhbnMgdGhlIGJhY2tlbmQgd2lsbCBuZXZlciBnZXQgc3RhcnRlZCBpbiBCSU9TLg0KPiA+ Pj4NCj4gPj4NCj4gPj4gSWYgSSB1bmRlcnN0YW5kIGNvcnJlY3RseSwgdGhpcyBpcyBub3QgYSBy ZWdyZXNzaW9uIGJ1dCBoYXMgYWx3YXlzIGJlZW4NCj4gPj4gaGVyZT8NCj4gPj4NCj4gPj4gV2Ug c2hvdWxkIHdvcmsgb24gZml4aW5nIGl0IGFueXdheSwgYnV0IEknbSBub3Qgc3VyZSB0byBoYXZl IHRoZSB0aW1lDQo+ID4+IGZvciB2MjAuMTEuMC4gSXQgd291bGQgYmUgZ3JlYXQgaWYgeW91IGNv dWxkIHByb3ZpZGUgc3RlcHMgdG8gcmVwcm9kdWNlDQo+ID4+IGl0LiBNYXliZSBmaWxlIGEgYnVn IGluIERQREsgdHJhY2tlcj8NCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+PiBNYXhpbWUNCj4gPj4N Cj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IE1heGltZSBD b3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+ID4+Pj4gU2VudDogTW9uZGF5 LCBTZXB0ZW1iZXIgMjEsIDIwMjAgNjoyMCBQTQ0KPiA+Pj4+IFRvOiBMaXUsIENoYW5ncGVuZyA8 Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4+PiBDYzogbWF0YW5A bWVsbGFub3guY29tOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+Ow0KPiA+PiBa YXdhZHpraSwNCj4gPj4+PiBUb21hc3ogPHRvbWFzei56YXdhZHpraUBpbnRlbC5jb20+DQo+ID4+ Pj4gU3ViamVjdDogUmU6IFtQQVRDSF0gdmhvc3Q6IHJldHVybiByZWFkeSB3aGVuIGF0IGxlYXN0 IDEgdnJpbmcgaXMNCj4gPj4gY29uZmlndXJlZA0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+ Pj4+IE9uIDkvMjEvMjAgNzowMyBBTSwgTGl1LCBDaGFuZ3Blbmcgd3JvdGU6DQo+ID4+Pj4+IEhp IE1heGltZSwNCj4gPj4+Pj4NCj4gPj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4+Pj4+PiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29t Pg0KPiA+Pj4+Pj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgMTgsIDIwMjAgNTo1NCBQTQ0KPiA+ Pj4+Pj4gVG86IExpdSwgQ2hhbmdwZW5nIDxjaGFuZ3BlbmcubGl1QGludGVsLmNvbT47IGRldkBk cGRrLm9yZw0KPiA+Pj4+Pj4gQ2M6IG1hdGFuQG1lbGxhbm94LmNvbTsgWGlhLCBDaGVuYm8gPGNo ZW5iby54aWFAaW50ZWwuY29tPjsNCj4gPj4gWmF3YWR6a2ksDQo+ID4+Pj4+PiBUb21hc3ogPHRv bWFzei56YXdhZHpraUBpbnRlbC5jb20+DQo+ID4+Pj4+PiBTdWJqZWN0OiBSZTogW1BBVENIXSB2 aG9zdDogcmV0dXJuIHJlYWR5IHdoZW4gYXQgbGVhc3QgMSB2cmluZyBpcw0KPiA+PiBjb25maWd1 cmVkDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSGkgQ2hhbmdwZW5nLA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ IE9uIDkvMS8yMCA5OjA3IEFNLCBDaGFuZ3BlbmcgTGl1IHdyb3RlOg0KPiA+Pj4+Pj4+IENvbW1p dCBkMGZjYzM4ZiAidmhvc3Q6IGltcHJvdmUgZGV2aWNlIHJlYWRpbmVzcyBub3RpZmljYXRpb25z Ig0KPiA+Pj4+Pj4+IG5lZWRzIGF0IGxlYXN0IDIgdnJpbmdzIGJlZm9yZSBjaGFuZ2luZyB0aGUg ZGV2aWNlIHN0YXRlIHRvDQo+ID4+Pj4+Pj4gcmVhZHksIHRoaXMgaXMgZmluZSBmb3IgTkVUIGRl dmljZSBidXQgbm90IGNvcnJlY3QgZm9yIEJMSw0KPiA+Pj4+Pj4+IGRldmljZS4NCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4+IFRoZSBudW1iZXIgb2YgdnJpbmcgcmVxdWlyZWQgc2hvdWxkIGJlIGJhc2Vk IG9uIHRoZSBkZXZpY2UNCj4gPj4+Pj4+PiB0eXBlLCBlLmcuIHZpcnRpb19zY3NpIGRldmljZSBu ZWVkcyBhdCBsZWFzdCAzIHZyaW5ncywgYW5kDQo+ID4+Pj4+Pj4gdmlydGlvX25ldCBuZWVkcyBh dCBsZWFzdCAyIHZyaW5ncywgdmlydGlvX2JsayBuZWVkcyBhdCBsZWFzdA0KPiA+Pj4+Pj4+IDEg dnJpbmcuIFNvIGluc3RlYWQgb2YgZG9pbmcgaXQgaW4gdmhvc3QgbGlicmFyeSBpdCdzIGJldHRl cg0KPiA+Pj4+Pj4+IHRoYXQgdGhlIGFwcGxpY2F0aW9uIHdobyB1c2VzIHRoaXMgbGlicmFyeSBk byB0aGlzIGNoZWNrLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hhbmdw ZW5nIExpdSA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+DQo+ID4+Pj4+Pj4gLS0tDQo+ID4+Pj4+ Pj4gIGxpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jIHwgMiArLQ0KPiA+Pj4+Pj4+ICAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkNCj4gPj4+Pj4+Pg0KPiA+ Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+PiBi L2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+Pj4+Pj4gaW5kZXggYzNjOTI0Zi4u NGQxODgzYyAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3Vz ZXIuYw0KPiA+Pj4+Pj4+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+ Pj4+Pj4gQEAgLTEzNDMsNyArMTM0Myw3IEBADQo+ID4+Pj4+Pj4gIAkgICAgICAgdnEtPmVuYWJs ZWQ7DQo+ID4+Pj4+Pj4gIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IC0jZGVmaW5lIFZJUlRJT19E RVZfTlVNX1ZRU19UT19CRV9SRUFEWSAydQ0KPiA+Pj4+Pj4+ICsjZGVmaW5lIFZJUlRJT19ERVZf TlVNX1ZRU19UT19CRV9SRUFEWSAxdQ0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgdGhpbmsgaXQgd291 bGQgYmUgYmV0dGVyIHRvIHJlbHkgb24NCj4gVklSVElPX0RFVl9CVUlMVElOX1ZJUlRJT19ORVQN Cj4gPj4gdG8NCj4gPj4+Pj4+IGtub3cgd2hldGhlciBpdCBzaG91bGQgd2FpdCBmb3IgMSBvciAy IHF1ZXVlcyB0byBkZXRlcm1pbmUgaWYgcmVhZHkuDQo+ID4+Pj4+IHZpcnRpb19zY3NpIG5lZWRz IGF0IGxlYXN0IDMgdnJpbmdzLCBzbyBib3RoIDEgYW5kIDIgY2FuJ3Qgd29yayBmb3INCj4gPj4g dmlydGlvX3Njc2kNCj4gPj4+PiBkZXZpY2UuDQo+ID4+Pj4+IENhbiB3ZSBleHBvc2UgYW4gQVBJ IHRvIGxldCB0aGUgY2FsbGVyIHRvIHNldCB0aGUgbWluaW11bSBudW1iZXIgb2YNCj4gPj4gdnJp bmdzDQo+ID4+Pj4gcmVxdWlyZWQgYnkNCj4gPj4+Pj4gdmlydGlvIGRldmljZT8NCj4gPj4+Pg0K PiA+Pj4+IE9LLCB0aGFua3MgZm9yIHBvaW50aW5nIHRoaXMgb3V0LCBJIG1pc3NlZCBpdC4NCj4g Pj4+Pg0KPiA+Pj4+IEknbSBub3QgaW4gZmF2b3Igb2YgaW50cm9kdWNpbmcgYW4gbmV3IEFQSSBm b3IgdGhpcy4NCj4gPj4+PiBJIHByb3Bvc2UgdG8gcmVzdHJpY3QgY2hhbmdlIGludHJvZHVjZWQg aW4gY29tbWl0IGQwZmNjMzhmIHRvIHRoZQ0KPiA+Pj4+IGJ1aWx0aW4gbmV0IGJhY2tlbmQuIENh biB5b3UgaGF2ZSBhIHRyeSB3aXRoIGJlbG93IHBhdGNoPw0KPiA+Pj4+DQo+ID4+Pj4gVGhhbmtz IGluIGFkdmFuY2UsDQo+ID4+Pj4gTWF4aW1lDQo+ID4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pg0K PiA+Pj4+Pj4+ICBzdGF0aWMgaW50DQo+ID4+Pj4+Pj4gIHZpcnRpb19pc19yZWFkeShzdHJ1Y3Qg dmlydGlvX25ldCAqZGV2KQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBkaWZm IC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gYi9saWIvbGlicnRlX3Zo b3N0L3Zob3N0X3VzZXIuYw0KPiA+Pj4+IGluZGV4IDUwMTIxOGUxOTIuLmY1NzFlZjkzZmMgMTAw NjQ0DQo+ID4+Pj4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gPj4+PiAr KysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+Pj4+IEBAIC0xMzQzLDIxICsx MzQzLDI1IEBAIHZxX2lzX3JlYWR5KHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHN0cnVjdA0KPiA+ Pj4+IHZob3N0X3ZpcnRxdWV1ZSAqdnEpDQo+ID4+Pj4gICAgICAgICAgICAgICAgdnEtPmVuYWJs ZWQ7DQo+ID4+Pj4gIH0NCj4gPj4+Pg0KPiA+Pj4+IC0jZGVmaW5lIFZJUlRJT19ERVZfTlVNX1ZR U19UT19CRV9SRUFEWSAydQ0KPiA+Pj4+ICsjZGVmaW5lIFZJUlRJT19CVUlMVElOX05VTV9WUVNf VE9fQkVfUkVBRFkgMnUNCj4gPj4+Pg0KPiA+Pj4+ICBzdGF0aWMgaW50DQo+ID4+Pj4gIHZpcnRp b19pc19yZWFkeShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2KQ0KPiA+Pj4+ICB7DQo+ID4+Pj4gICAg ICAgICBzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cTsNCj4gPj4+PiAtICAgICAgIHVpbnQzMl90 IGk7DQo+ID4+Pj4gKyAgICAgICB1aW50MzJfdCBpLCBucl92cmluZyA9IGRldi0+bnJfdnJpbmc7 DQo+ID4+Pj4NCj4gPj4+PiAgICAgICAgIGlmIChkZXYtPmZsYWdzICYgVklSVElPX0RFVl9SRUFE WSkNCj4gPj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQo+ID4+Pj4NCj4gPj4+PiAtICAg ICAgIGlmIChkZXYtPm5yX3ZyaW5nIDwgVklSVElPX0RFVl9OVU1fVlFTX1RPX0JFX1JFQURZKQ0K PiA+Pj4+IC0gICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPj4+PiArICAgICAgIGlmIChkZXYt PmZsYWdzICYgVklSVElPX0RFVl9CVUlMVElOX1ZJUlRJT19ORVQpIHsNCj4gPj4+PiArICAgICAg ICAgICAgICAgbnJfdnJpbmcgPSBWSVJUSU9fQlVJTFRJTl9OVU1fVlFTX1RPX0JFX1JFQURZOw0K PiA+Pj4+ICsNCj4gPj4+PiArICAgICAgICAgICAgICAgaWYgKGRldi0+bnJfdnJpbmcgPCBucl92 cmluZykNCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPj4+PiAr ICAgICAgIH0NCj4gPj4+DQo+ID4+PiAgICArICAgICAgICAgaWYoIW5yX3ZyaW5nKQ0KPiA+Pj4g ICAgKyAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPj4+Pg0KPiA+Pj4+IC0gICAgICAgZm9yIChp ID0gMDsgaSA8IFZJUlRJT19ERVZfTlVNX1ZRU19UT19CRV9SRUFEWTsgaSsrKSB7DQo+ID4+Pj4g KyAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnJfdnJpbmc7IGkrKykgew0KPiA+Pj4+ICAgICAgICAg ICAgICAgICB2cSA9IGRldi0+dmlydHF1ZXVlW2ldOw0KPiA+Pj4+DQo+ID4+Pj4gICAgICAgICAg ICAgICAgIGlmICghdnFfaXNfcmVhZHkoZGV2LCB2cSkpDQo+ID4+Pg0KPiA+DQoNCg==