From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0D0ACA09FF; Wed, 6 Jan 2021 13:05:48 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C47FC1608F1; Wed, 6 Jan 2021 13:05:47 +0100 (CET) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 77203160868 for ; Wed, 6 Jan 2021 13:05:46 +0100 (CET) IronPort-SDR: 6TzPVSlh8lwJ0o6Krtxw44lf3wZFQS6CH+ZUApk+dS/ybVonfz8gQ/tSbU5AyMqf5LkHex6BS+ uUQNzoLXp1kw== X-IronPort-AV: E=McAfee;i="6000,8403,9855"; a="157051349" X-IronPort-AV: E=Sophos;i="5.78,480,1599548400"; d="scan'208";a="157051349" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2021 04:05:45 -0800 IronPort-SDR: E7kmKdCXpw7pJMMXjUEzR1KFmdQiWvoogxEkXRfGQW+0QowGVHwnZ3v2TEN3ZW1Nr/qtYzPH6T Cq3Wn3EPqbBQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,480,1599548400"; d="scan'208";a="395611215" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga004.fm.intel.com with ESMTP; 06 Jan 2021 04:05:45 -0800 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) 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; Wed, 6 Jan 2021 04:05:45 -0800 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 6 Jan 2021 04:05:44 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx609.amr.corp.intel.com (10.22.229.22) 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, 6 Jan 2021 04:05:44 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.170) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 6 Jan 2021 04:04:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nvv6Bo05tUpv9t9Sg/IpK2JegtCx2s9v6GZVG/vwRLPIKOuMVIgEhHxo6Qo9ayHUneC9blJGL2OEcX2EyWdJuwrmDtf6uABarNJLBU+Md5DrkQU53bPekfeYUCiCKeY2dkTySE6bPuhlXdDsYiAd3WdtlkZnwWmhRApRpfMFPwC4oE1/ZtsKFU49aFWdENlMSj7dFX92j7m6ewoe2Vwd2BLDntZ6K8z3X0XJnC21liWkRgg5ABj3I7ha1dLgvvJ3qAy6UT7TLdQ9EfNjhLb0XShCCxTcXEl/01QBNVnsidgVihWSMXxs8kNEyM81ANpd33bhuPYUj3q6+TWDORMknA== 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=YiNccM2B41HsJgiILDWo8P/gpDzY9bnvaZOBrojCOfs=; b=BAc5gkUMoiDq6fJkTqvwytDie37DP0gGewHabvnCn703hdWt6WT2PtQ2ldg6hsJRKjvPtO+HsZ90YMrxIe3cGk4gO3fI62WP9s1uo82988Bi3m/RLy1LEycZJ31xPTYebFf6No3QLZtk6kqAqAnTpty+a2Ujr5qVyQ6T14bY8jm/aDyyY2XbleygJ33YQFi0mcXbxektXDhKKuLDoW3aHE90PiO68q4SMSsN8vhvfEBFhoNDAZ8StkHcx/dsBrBZeswbXyPqpDz0nDgderhTojIwTdSrZWCg1WXMAabbRJ+1qZxtFiYXTSOnOZXjKSRu0Ky8ZQ6aIPYoCJEnlYTgtg== 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=YiNccM2B41HsJgiILDWo8P/gpDzY9bnvaZOBrojCOfs=; b=AMQvblvTxIiibTxYKUGWDZRpRE0sv9W1tEww03BIn2MYBD8DUa06++pSezpEK8Cv0U1EeT7BcpqAiLStETy+sulVv5wT3a2tOlFeNson4j3nFvi/J6Uq5hvUDg1svN68FUzM7tgyoLOA3thQdkq7IxS1ayEpUzc4Oz/7Sdyryig= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3871.namprd11.prod.outlook.com (2603:10b6:208:13c::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Wed, 6 Jan 2021 12:04:45 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272%7]) with mapi id 15.20.3721.024; Wed, 6 Jan 2021 12:04:45 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH 29/40] net/virtio: add Virtio-user vring file ops Thread-Index: AQHW1xVd8hOhLbhu7k+DF25JqeSVLKoamcrQ Date: Wed, 6 Jan 2021 12:04:44 +0000 Message-ID: References: <20201220211405.313012-1-maxime.coquelin@redhat.com> <20201220211405.313012-30-maxime.coquelin@redhat.com> In-Reply-To: <20201220211405.313012-30-maxime.coquelin@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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.102.204.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: da971911-ae6d-4b1f-5d7c-08d8b23b41d8 x-ms-traffictypediagnostic: MN2PR11MB3871: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1923; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nKVZuPLUNi8YxWdZr84Gl5b/YV5OkB7dgtItFAs2V9AJEwDkrxh0Ze63Pw1stil2n71FtozJ9gpr5h5BUtlpRGYJZaiC/9SWYsDgpIK0eVawwlv7UO34nNxtcbfxySlCJ3CAE6Pem+yasm16qaCSZCDb2C5cfYjXwXSQjOdnjJDFPFWMkLOujLU+3zoyLVnPG83nRWFu9+pz8eum5XyutlfsqbEu0uJ4jb6w1CkagMxtdPrwXY5nKMnVun0E9Dho5YiQkkfWIwFtohjszi+V8cBWX2b387h0YZiaALTzfBcIrNaLOo7qcvwBKAEI7sfIMuC6QGnQ+7P69l/8jUd0Cq++8+V1v9RzPm1y2Jn+/nMGmfDxhKlWAg142QushUDtBkALMuwT7Tq9QJvzPnx2gA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(366004)(136003)(376002)(346002)(7696005)(316002)(110136005)(2906002)(478600001)(86362001)(76116006)(52536014)(66476007)(66556008)(64756008)(66446008)(66946007)(55016002)(53546011)(6506007)(71200400001)(186003)(26005)(33656002)(8936002)(9686003)(8676002)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?T1gzR0xqS21YNDFYUGs3ejFUdlk0S0tvT3VxQWtxK085ck5NbzNMOG5Kd01m?= =?utf-8?B?VEVPdnQyOTh6ZnV2S28yTHJQc2RjU2QyNk9QUmZRRTliQUVzRklwZVVUNUNN?= =?utf-8?B?b2plcFh5T25YUTEvRnB4ZUpIQWZ4akNKLy9mTW5xUlV5U2NwODJyYnpKMFJi?= =?utf-8?B?RUhCVFVlclNUbWtsT1FrVkZaSjRsUmZBZ3FiZ2VOZnpzMXVFYnlxRWNkMllG?= =?utf-8?B?cjF6UjBQM1g2dDI5UGsyOVM1bHo5YjBYWVpmWGE2emlSOWpOSVlzM0IvdGpm?= =?utf-8?B?aURLblBFbmF0bFJVRk44OCs1dDZLUjF2M0N2a1grMGlnZ3NRZVh4ekZwS09S?= =?utf-8?B?REF3ZW5DU01DZ1Nld0dZS1Q5L0R0Mi9TcDNFZEM2S0grYVZrTnB3NVNQVTJY?= =?utf-8?B?dFpYckZrS25MQ0xGQXc5MDJkV0hKN0dBZncxWjVoV3dTbUJ5aWl4dHY1RUNF?= =?utf-8?B?MytTZUVqVk9FL0phMU84RlhZQ3MrSWpjcDRWQVpzOVlPU2F3eHM3QUh5UFZi?= =?utf-8?B?QnFLdWUzMEFSYlFpU3dvU1hSMkhvZ2JrL1VWOE1rbXhYSS9ieXlUUVRYcXMr?= =?utf-8?B?enZhYzF3UEZYOHdQK2JON0JGNDJXalpCV0JsSkRTanFNOEpBMnlHcVZsMSt5?= =?utf-8?B?dDl1ZUNZY3prbnNia3Z0bVJqTUtvMk5qRDlJWHBjUEZPU3hxeWhaL3lyYm1v?= =?utf-8?B?NTdmeDI4TWgycVZDdG5hbXlHOGNxdzJkclJWQ09XQzhlSi9JRWRRRWFya2Uw?= =?utf-8?B?K1d4RE5kbHYzSlpUOXRiWGMySmJYVGtKY3VHMm1FSFdWV1dxTzV4eHlqYXpy?= =?utf-8?B?dG5Fdk9DZWFRa0xMY1phRnBnZmFnK0tvazd3d01aOVlPSFJMUzBGc0pJQXJz?= =?utf-8?B?OUliSHdqVVJhbzFuenBtKzdQUkhGRjhjV00rUmhIOWtqWE50ZVhFNC93d01I?= =?utf-8?B?YXJwZkhhWFRIWUNjRWRmbXVKVjFmYUQ5Vk81ZktwSVg3ci81NzJsajJuUktu?= =?utf-8?B?U003Qzk4Vnlydnl1NTR0K3JDck1aZjhJZlRCMUhTOTJ1QjJWU2lSWFFpSDB0?= =?utf-8?B?MWw5ZEhsSGo2MDZJeTkyOUdENHdDK2gydnJkczgxbVBaVFduZGZWbXA1bGJF?= =?utf-8?B?YzNNdWpPcExLb0tPclYwU0FPVGdkUDJacmVZaXp2YUpZbXZhWDE5ZTVCQjY4?= =?utf-8?B?VUhaUFoxam53eTJMWXRJczJsREpMVmxBN0YrbjRXUFpSczYvRlNTYW9BejlN?= =?utf-8?B?L0V2QmZjMnJ6NkVmbzJzRjdXWTlSNW45YTJtYUZoRTRuamhrR3QweFZHM0h5?= =?utf-8?Q?0iF7mnrUyIhyQ=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: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: da971911-ae6d-4b1f-5d7c-08d8b23b41d8 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jan 2021 12:04:44.9019 (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: qOgTcXVNR7ULZlvYroSjR3l1nHb0bZwCNmlu6vv+q5heCxJx61ZfeNv6t171ky00SMfBhh+CfXmLNKw5mrjrtA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3871 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 29/40] net/virtio: add Virtio-user vring file ops 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" SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IE1vbmRheSwg RGVjZW1iZXIgMjEsIDIwMjAgNToxNCBBTQ0KPiBUbzogZGV2QGRwZGsub3JnOyBYaWEsIENoZW5i byA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+OyBvbGl2aWVyLm1hdHpANndpbmQuY29tOw0KPiBhbW9y ZW5vekByZWRoYXQuY29tOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tDQo+IENjOiBNYXhpbWUg Q29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0gg MjkvNDBdIG5ldC92aXJ0aW86IGFkZCBWaXJ0aW8tdXNlciB2cmluZyBmaWxlIG9wcw0KPiANCj4g VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBjYWxsYmFja3MgZm9yIHNldHRpbmcNCj4gdnJpbmcg ZmlsZXMgKGtpY2sgYW5kIGNhbGwpLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWF4aW1lIENvcXVl bGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL25ldC92 aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaCAgICAgICAgfCAgMiArDQo+ICBkcml2ZXJzL25ldC92 aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsLmMgfCA0MSArKysrKysrKysrKysrKystLQ0K PiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIuYyAgIHwgNDYgKysr KysrKysrKysrKysrKystLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0 X3ZkcGEuYyAgIHwgMTggKysrKysrLS0NCj4gIC4uLi9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zp cnRpb191c2VyX2Rldi5jICB8ICA0ICstDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Zp cnRpby92aXJ0aW9fdXNlci92aG9zdC5oDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191 c2VyL3Zob3N0LmgNCj4gaW5kZXggMTM4NWMxNTYzYi4uYjI5NmVlMjE1ZCAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4gKysrIGIvZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4gQEAgLTExMSw2ICsxMTEsOCBAQCBz dHJ1Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9vcHMgew0KPiAgCWludCAoKnNldF92cmluZ19udW0p KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX3N0YXRl ICpzdGF0ZSk7DQo+ICAJaW50ICgqc2V0X3ZyaW5nX2Jhc2UpKHN0cnVjdCB2aXJ0aW9fdXNlcl9k ZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX3N0YXRlICpzdGF0ZSk7DQo+ICAJaW50ICgq Z2V0X3ZyaW5nX2Jhc2UpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgc3RydWN0DQo+IHZo b3N0X3ZyaW5nX3N0YXRlICpzdGF0ZSk7DQo+ICsJaW50ICgqc2V0X3ZyaW5nX2NhbGwpKHN0cnVj dCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX2ZpbGUgKmZpbGUp Ow0KPiArCWludCAoKnNldF92cmluZ19raWNrKShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYs IHN0cnVjdA0KPiB2aG9zdF92cmluZ19maWxlICpmaWxlKTsNCj4gIAlpbnQgKCpzZW5kX3JlcXVl c3QpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gIAkJCSAgICBlbnVtIHZob3N0X3Vz ZXJfcmVxdWVzdCByZXEsDQo+ICAJCQkgICAgdm9pZCAqYXJnKTsNCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYw0KPiBiL2RyaXZlcnMv bmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYw0KPiBpbmRleCAyZjFiNDg0MGVl Li4xODA1YWVlN2Y3IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3Vz ZXIvdmhvc3Rfa2VybmVsLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2Vy L3Zob3N0X2tlcm5lbC5jDQo+IEBAIC0yNTksMTEgKzI1OSw0NCBAQCB2aG9zdF9rZXJuZWxfZ2V0 X3ZyaW5nX2Jhc2Uoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LA0KPiBzdHJ1Y3Qgdmhvc3Rf dnJpbmdfc3RhdA0KPiAgCXJldHVybiB2aG9zdF9rZXJuZWxfc2V0X3ZyaW5nKGRldiwgVkhPU1Rf R0VUX1ZSSU5HX0JBU0UsIHN0YXRlKTsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9z dF9rZXJuZWxfc2V0X3ZyaW5nX2ZpbGUoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50 NjRfdCByZXEsDQo+ICsJCXN0cnVjdCB2aG9zdF92cmluZ19maWxlICpmaWxlKQ0KPiArew0KPiAr CWludCByZXQsIGZkOw0KPiArCXVpbnQzMl90IGluZGV4ID0gZmlsZS0+aW5kZXg7DQoNCkJldHRl ciB1c2UgJ3Vuc2lnbmVkIGludCBpbmRleCcgaGVyZT8gSXQgY2FuIGhhcmRseSBjYXVzZSBwcm9i bGVtIGJ1dCBJIHRoaW5rIGl0J3MNCmJldHRlciB0byB1c2UgdGhlIHR5cGUgaW4gc3RydWN0IHZo b3N0X3ZyaW5nX2ZpbGUuDQoNCj4gKw0KPiArCS8qIENvbnZlcnQgZnJvbSBxdWV1ZSBpbmRleCB0 byBxdWV1ZS1wYWlyICYgb2Zmc2V0ICovDQo+ICsJZmQgPSBkZXYtPnZob3N0ZmRzW2ZpbGUtPmlu ZGV4IC8gMl07DQo+ICsJZmlsZS0+aW5kZXggJT0gMjsNCj4gKw0KPiArCXJldCA9IHZob3N0X2tl cm5lbF9pb2N0bChmZCwgcmVxLCBmaWxlKTsNCj4gKwlpZiAocmV0IDwgMCkgew0KPiArCQlQTURf RFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gc2V0IHZyaW5nIGZpbGUgKHJlcXVlc3QgJWx1KSIsIHJl cSk7DQoNClNlZW1zIERhdmlkIGhhcyBhbHNvIG5vdGljZWQ6IGJldHRlciB1c2UgUFJJdTY0IGhl cmUgaW5zdGVhZCBvZiAlbHUgPw0KDQpUaGFua3MsDQpDaGVuYm8NCg0KPiArCQlyZXR1cm4gLTE7 DQo+ICsJfQ0KPiArDQo+ICsJLyogcmVzdG9yZSBpbmRleCBiYWNrIHRvIHF1ZXVlIGluZGV4ICov DQo+ICsJZmlsZS0+aW5kZXggPSBpbmRleDsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF9rZXJuZWxfc2V0X3ZyaW5nX2tpY2soc3RydWN0IHZp cnRpb191c2VyX2RldiAqZGV2LCBzdHJ1Y3QNCj4gdmhvc3RfdnJpbmdfZmlsZSAqZmlsZSkNCj4g K3sNCj4gKwlyZXR1cm4gdmhvc3Rfa2VybmVsX3NldF92cmluZ19maWxlKGRldiwgVkhPU1RfU0VU X1ZSSU5HX0NBTEwsIGZpbGUpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF9r ZXJuZWxfc2V0X3ZyaW5nX2NhbGwoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCBzdHJ1Y3QN Cj4gdmhvc3RfdnJpbmdfZmlsZSAqZmlsZSkNCj4gK3sNCj4gKwlyZXR1cm4gdmhvc3Rfa2VybmVs X3NldF92cmluZ19maWxlKGRldiwgVkhPU1RfU0VUX1ZSSU5HX0tJQ0ssIGZpbGUpOw0KPiArfQ0K PiArDQo+ICBzdGF0aWMgdWludDY0X3Qgdmhvc3RfcmVxX3VzZXJfdG9fa2VybmVsW10gPSB7DQo+ ICAJW1ZIT1NUX1VTRVJfUkVTRVRfT1dORVJdID0gVkhPU1RfUkVTRVRfT1dORVIsDQo+IC0JW1ZI T1NUX1VTRVJfU0VUX1ZSSU5HX0NBTExdID0gVkhPU1RfU0VUX1ZSSU5HX0NBTEwsDQo+ICAJW1ZI T1NUX1VTRVJfU0VUX1ZSSU5HX0FERFJdID0gVkhPU1RfU0VUX1ZSSU5HX0FERFIsDQo+IC0JW1ZI T1NUX1VTRVJfU0VUX1ZSSU5HX0tJQ0tdID0gVkhPU1RfU0VUX1ZSSU5HX0tJQ0ssDQo+ICB9Ow0K PiANCj4gIHN0YXRpYyBpbnQNCj4gQEAgLTI4Myw4ICszMTYsNiBAQCB2aG9zdF9rZXJuZWxfc2Vu ZF9yZXF1ZXN0KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gDQo+ICAJc3dpdGNoIChy ZXFfa2VybmVsKSB7DQo+ICAJY2FzZSBWSE9TVF9TRVRfVlJJTkdfQUREUjoNCj4gLQljYXNlIFZI T1NUX1NFVF9WUklOR19LSUNLOg0KPiAtCWNhc2UgVkhPU1RfU0VUX1ZSSU5HX0NBTEw6DQo+ICAJ CXF1ZXVlX3NlbCA9ICoodW5zaWduZWQgaW50ICopYXJnOw0KPiAgCQl2aG9zdGZkID0gZGV2LT52 aG9zdGZkc1txdWV1ZV9zZWwgLyAyXTsNCj4gIAkJKih1bnNpZ25lZCBpbnQgKilhcmcgPSBxdWV1 ZV9zZWwgJSAyOw0KPiBAQCAtNDQwLDYgKzQ3MSw4IEBAIHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNr ZW5kX29wcyB2aXJ0aW9fb3BzX2tlcm5lbCA9IHsNCj4gIAkuc2V0X3ZyaW5nX251bSA9IHZob3N0 X2tlcm5lbF9zZXRfdnJpbmdfbnVtLA0KPiAgCS5zZXRfdnJpbmdfYmFzZSA9IHZob3N0X2tlcm5l bF9zZXRfdnJpbmdfYmFzZSwNCj4gIAkuZ2V0X3ZyaW5nX2Jhc2UgPSB2aG9zdF9rZXJuZWxfZ2V0 X3ZyaW5nX2Jhc2UsDQo+ICsJLnNldF92cmluZ19jYWxsID0gdmhvc3Rfa2VybmVsX3NldF92cmlu Z19jYWxsLA0KPiArCS5zZXRfdnJpbmdfa2ljayA9IHZob3N0X2tlcm5lbF9zZXRfdnJpbmdfa2lj aywNCj4gIAkuc2VuZF9yZXF1ZXN0ID0gdmhvc3Rfa2VybmVsX3NlbmRfcmVxdWVzdCwNCj4gIAku ZW5hYmxlX3FwID0gdmhvc3Rfa2VybmVsX2VuYWJsZV9xdWV1ZV9wYWlyDQo+ICB9Ow0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIuYw0KPiBi L2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF91c2VyLmMNCj4gaW5kZXggNTBh NTg3ZmFiNC4uNTA5YTk2ZGZiYyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3Zob3N0X3VzZXIuYw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlv X3VzZXIvdmhvc3RfdXNlci5jDQo+IEBAIC00ODMsMTMgKzQ4Myw1MSBAQCB2aG9zdF91c2VyX2dl dF92cmluZ19iYXNlKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gc3RydWN0IHZob3N0 X3ZyaW5nX3N0YXRlDQo+ICAJcmV0dXJuIC0xOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBpbnQNCj4g K3Zob3N0X3VzZXJfc2V0X3ZyaW5nX2ZpbGUoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCBl bnVtDQo+IHZob3N0X3VzZXJfcmVxdWVzdCByZXEsDQo+ICsJCXN0cnVjdCB2aG9zdF92cmluZ19m aWxlICpmaWxlKQ0KPiArew0KPiArCWludCByZXQ7DQo+ICsJaW50IGZkID0gZmlsZS0+ZmQ7DQo+ ICsJaW50IG51bV9mZCA9IDA7DQo+ICsJc3RydWN0IHZob3N0X3VzZXJfbXNnIG1zZyA9IHsNCj4g KwkJLnJlcXVlc3QgPSByZXEsDQo+ICsJCS5mbGFncyA9IFZIT1NUX1VTRVJfVkVSU0lPTiwNCj4g KwkJLnNpemUgPSBzaXplb2YobXNnLnBheWxvYWQudTY0KSwNCj4gKwkJLnBheWxvYWQudTY0ID0g ZmlsZS0+aW5kZXggJiBWSE9TVF9VU0VSX1ZSSU5HX0lEWF9NQVNLLA0KPiArCX07DQo+ICsNCj4g KwlpZiAoZmQgPj0gMCkNCj4gKwkJbnVtX2ZkKys7DQo+ICsJZWxzZQ0KPiArCQltc2cucGF5bG9h ZC51NjQgfD0gVkhPU1RfVVNFUl9WUklOR19OT0ZEX01BU0s7DQo+ICsNCj4gKwlyZXQgPSB2aG9z dF91c2VyX3dyaXRlKGRldi0+dmhvc3RmZCwgJm1zZywgJmZkLCBudW1fZmQpOw0KPiArCWlmIChy ZXQgPCAwKSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZXQgdnJpbmcgZmls ZSAocmVxdWVzdCAlZCkiLCByZXEpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJ cmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3Zob3N0X3VzZXJfc2V0X3Zy aW5nX2NhbGwoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCBzdHJ1Y3QNCj4gdmhvc3RfdnJp bmdfZmlsZSAqZmlsZSkNCj4gK3sNCj4gKwlyZXR1cm4gdmhvc3RfdXNlcl9zZXRfdnJpbmdfZmls ZShkZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0NBTEwsIGZpbGUpOw0KPiArfQ0KPiArDQo+ICtz dGF0aWMgaW50DQo+ICt2aG9zdF91c2VyX3NldF92cmluZ19raWNrKHN0cnVjdCB2aXJ0aW9fdXNl cl9kZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX2ZpbGUgKmZpbGUpDQo+ICt7DQo+ICsJ cmV0dXJuIHZob3N0X3VzZXJfc2V0X3ZyaW5nX2ZpbGUoZGV2LCBWSE9TVF9VU0VSX1NFVF9WUklO R19LSUNLLCBmaWxlKTsNCj4gK30NCj4gKw0KPiAgc3RhdGljIHN0cnVjdCB2aG9zdF91c2VyX21z ZyBtOw0KPiANCj4gIGNvbnN0IGNoYXIgKiBjb25zdCB2aG9zdF9tc2dfc3RyaW5nc1tdID0gew0K PiAgCVtWSE9TVF9VU0VSX1JFU0VUX09XTkVSXSA9ICJWSE9TVF9SRVNFVF9PV05FUiIsDQo+IC0J W1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0NBTExdID0gIlZIT1NUX1NFVF9WUklOR19DQUxMIiwNCj4g IAlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfQUREUl0gPSAiVkhPU1RfU0VUX1ZSSU5HX0FERFIiLA0K PiAtCVtWSE9TVF9VU0VSX1NFVF9WUklOR19LSUNLXSA9ICJWSE9TVF9TRVRfVlJJTkdfS0lDSyIs DQo+ICAJW1ZIT1NUX1VTRVJfU0VUX1NUQVRVU10gPSAiVkhPU1RfU0VUX1NUQVRVUyIsDQo+ICAJ W1ZIT1NUX1VTRVJfR0VUX1NUQVRVU10gPSAiVkhPU1RfR0VUX1NUQVRVUyIsDQo+ICB9Ow0KPiBA QCAtNTU2LDggKzU5NCw2IEBAIHZob3N0X3VzZXJfc29jayhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2 ICpkZXYsDQo+ICAJCW1zZy5zaXplID0gc2l6ZW9mKG0ucGF5bG9hZC5hZGRyKTsNCj4gIAkJYnJl YWs7DQo+IA0KPiAtCWNhc2UgVkhPU1RfVVNFUl9TRVRfVlJJTkdfS0lDSzoNCj4gLQljYXNlIFZI T1NUX1VTRVJfU0VUX1ZSSU5HX0NBTEw6DQo+ICAJY2FzZSBWSE9TVF9VU0VSX1NFVF9WUklOR19F UlI6DQo+ICAJCWZpbGUgPSBhcmc7DQo+ICAJCW1zZy5wYXlsb2FkLnU2NCA9IGZpbGUtPmluZGV4 ICYgVkhPU1RfVVNFUl9WUklOR19JRFhfTUFTSzsNCj4gQEAgLTcyOSw2ICs3NjUsOCBAQCBzdHJ1 Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9vcHMgdmlydGlvX29wc191c2VyID0gew0KPiAgCS5zZXRf dnJpbmdfbnVtID0gdmhvc3RfdXNlcl9zZXRfdnJpbmdfbnVtLA0KPiAgCS5zZXRfdnJpbmdfYmFz ZSA9IHZob3N0X3VzZXJfc2V0X3ZyaW5nX2Jhc2UsDQo+ICAJLmdldF92cmluZ19iYXNlID0gdmhv c3RfdXNlcl9nZXRfdnJpbmdfYmFzZSwNCj4gKwkuc2V0X3ZyaW5nX2NhbGwgPSB2aG9zdF91c2Vy X3NldF92cmluZ19jYWxsLA0KPiArCS5zZXRfdnJpbmdfa2ljayA9IHZob3N0X3VzZXJfc2V0X3Zy aW5nX2tpY2ssDQo+ICAJLnNlbmRfcmVxdWVzdCA9IHZob3N0X3VzZXJfc29jaywNCj4gIAkuZW5h YmxlX3FwID0gdmhvc3RfdXNlcl9lbmFibGVfcXVldWVfcGFpcg0KPiAgfTsNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMNCj4gYi9kcml2 ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdmRwYS5jDQo+IGluZGV4IGMxYjc5MGRk YzYuLjQ4ZmUzZjIzZTggMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f dXNlci92aG9zdF92ZHBhLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2Vy L3Zob3N0X3ZkcGEuYw0KPiBAQCAtMzYsOSArMzYsNyBAQA0KPiANCj4gIHN0YXRpYyB1aW50NjRf dCB2aG9zdF9yZXFfdXNlcl90b192ZHBhW10gPSB7DQo+ICAJW1ZIT1NUX1VTRVJfUkVTRVRfT1dO RVJdID0gVkhPU1RfUkVTRVRfT1dORVIsDQo+IC0JW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0NBTExd ID0gVkhPU1RfU0VUX1ZSSU5HX0NBTEwsDQo+ICAJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0FERFJd ID0gVkhPU1RfU0VUX1ZSSU5HX0FERFIsDQo+IC0JW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0tJQ0td ID0gVkhPU1RfU0VUX1ZSSU5HX0tJQ0ssDQo+ICAJW1ZIT1NUX1VTRVJfU0VUX1NUQVRVU10gPSBW SE9TVF9WRFBBX1NFVF9TVEFUVVMsDQo+ICAJW1ZIT1NUX1VTRVJfR0VUX1NUQVRVU10gPSBWSE9T VF9WRFBBX0dFVF9TVEFUVVMsDQo+ICB9Ow0KPiBAQCAtMjM4LDYgKzIzNiwxOCBAQCB2aG9zdF92 ZHBhX2dldF92cmluZ19iYXNlKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gc3RydWN0 IHZob3N0X3ZyaW5nX3N0YXRlDQo+ICAJcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9z dGZkLCBWSE9TVF9HRVRfVlJJTkdfQkFTRSwgc3RhdGUpOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBp bnQNCj4gK3Zob3N0X3ZkcGFfc2V0X3ZyaW5nX2NhbGwoc3RydWN0IHZpcnRpb191c2VyX2RldiAq ZGV2LCBzdHJ1Y3QNCj4gdmhvc3RfdnJpbmdfZmlsZSAqZmlsZSkNCj4gK3sNCj4gKwlyZXR1cm4g dmhvc3RfdmRwYV9pb2N0bChkZXYtPnZob3N0ZmQsIFZIT1NUX1NFVF9WUklOR19DQUxMLCBmaWxl KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3RfdmRwYV9zZXRfdnJpbmdfa2lj ayhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHN0cnVjdA0KPiB2aG9zdF92cmluZ19maWxl ICpmaWxlKQ0KPiArew0KPiArCXJldHVybiB2aG9zdF92ZHBhX2lvY3RsKGRldi0+dmhvc3RmZCwg VkhPU1RfU0VUX1ZSSU5HX0tJQ0ssIGZpbGUpOw0KPiArfQ0KPiArDQo+ICAvKiB3aXRoIGJlbG93 IGZlYXR1cmVzLCB2aG9zdCB2ZHBhIGRvZXMgbm90IG5lZWQgdG8gZG8gdGhlIGNoZWNrc3VtIGFu ZCBUU08sDQo+ICAgKiB0aGVzZSBpbmZvIHdpbGwgYmUgcGFzc2VkIHRvIHZpcnRpb191c2VyIHRo cm91Z2ggdmlydGlvIG5ldCBoZWFkZXIuDQo+ICAgKi8NCj4gQEAgLTI2Nyw4ICsyNzcsNiBAQCB2 aG9zdF92ZHBhX3NlbmRfcmVxdWVzdChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsDQo+IA0K PiAgCXN3aXRjaCAocmVxX3ZkcGEpIHsNCj4gIAljYXNlIFZIT1NUX1NFVF9WUklOR19BRERSOg0K PiAtCWNhc2UgVkhPU1RfU0VUX1ZSSU5HX0tJQ0s6DQo+IC0JY2FzZSBWSE9TVF9TRVRfVlJJTkdf Q0FMTDoNCj4gIAkJUE1EX0RSVl9MT0coREVCVUcsICJ2aG9zdGZkPSVkLCBpbmRleD0ldSIsDQo+ ICAJCQkgICAgZGV2LT52aG9zdGZkLCAqKHVuc2lnbmVkIGludCAqKWFyZyk7DQo+ICAJCWJyZWFr Ow0KPiBAQCAtMzQ3LDYgKzM1NSw4IEBAIHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB2 aXJ0aW9fb3BzX3ZkcGEgPSB7DQo+ICAJLnNldF92cmluZ19udW0gPSB2aG9zdF92ZHBhX3NldF92 cmluZ19udW0sDQo+ICAJLnNldF92cmluZ19iYXNlID0gdmhvc3RfdmRwYV9zZXRfdnJpbmdfYmFz ZSwNCj4gIAkuZ2V0X3ZyaW5nX2Jhc2UgPSB2aG9zdF92ZHBhX2dldF92cmluZ19iYXNlLA0KPiAr CS5zZXRfdnJpbmdfY2FsbCA9IHZob3N0X3ZkcGFfc2V0X3ZyaW5nX2NhbGwsDQo+ICsJLnNldF92 cmluZ19raWNrID0gdmhvc3RfdmRwYV9zZXRfdnJpbmdfa2ljaywNCj4gIAkuc2VuZF9yZXF1ZXN0 ID0gdmhvc3RfdmRwYV9zZW5kX3JlcXVlc3QsDQo+ICAJLmVuYWJsZV9xcCA9IHZob3N0X3ZkcGFf ZW5hYmxlX3F1ZXVlX3BhaXIsDQo+ICAJLmRtYV9tYXAgPSB2aG9zdF92ZHBhX2RtYV9tYXAsDQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJf ZGV2LmMNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2 LmMNCj4gaW5kZXggNDk2YTQ4ZWU1MS4uZTQ5NzU4MzhlYSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jDQo+ICsrKyBiL2RyaXZl cnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiBAQCAtNDAsNyAr NDAsNyBAQCB2aXJ0aW9fdXNlcl9jcmVhdGVfcXVldWUoc3RydWN0IHZpcnRpb191c2VyX2RldiAq ZGV2LA0KPiB1aW50MzJfdCBxdWV1ZV9zZWwpDQo+IA0KPiAgCWZpbGUuaW5kZXggPSBxdWV1ZV9z ZWw7DQo+ICAJZmlsZS5mZCA9IGRldi0+Y2FsbGZkc1txdWV1ZV9zZWxdOw0KPiAtCWRldi0+b3Bz LT5zZW5kX3JlcXVlc3QoZGV2LCBWSE9TVF9VU0VSX1NFVF9WUklOR19DQUxMLCAmZmlsZSk7DQo+ ICsJZGV2LT5vcHMtPnNldF92cmluZ19jYWxsKGRldiwgJmZpbGUpOw0KPiANCj4gIAlyZXR1cm4g MDsNCj4gIH0NCj4gQEAgLTg5LDcgKzg5LDcgQEAgdmlydGlvX3VzZXJfa2lja19xdWV1ZShzdHJ1 Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQzMl90DQo+IHF1ZXVlX3NlbCkNCj4gIAkgKi8N Cj4gIAlmaWxlLmluZGV4ID0gcXVldWVfc2VsOw0KPiAgCWZpbGUuZmQgPSBkZXYtPmtpY2tmZHNb cXVldWVfc2VsXTsNCj4gLQlkZXYtPm9wcy0+c2VuZF9yZXF1ZXN0KGRldiwgVkhPU1RfVVNFUl9T RVRfVlJJTkdfS0lDSywgJmZpbGUpOw0KPiArCWRldi0+b3BzLT5zZXRfdnJpbmdfa2ljayhkZXYs ICZmaWxlKTsNCj4gDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IC0tDQo+IDIuMjkuMg0KDQo=