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 6C871A09FF; Thu, 7 Jan 2021 07:32:16 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 56608140EA4; Thu, 7 Jan 2021 07:32:16 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id C4472140EA3 for ; Thu, 7 Jan 2021 07:32:14 +0100 (CET) IronPort-SDR: Qi3Psl9fy2rgB9D5jj/UtRqfo+PeAn6DYswgeMZCmal4J9sep4MCB5XlRIQamNIwtBifFAUHLb EGIvdWao0neg== X-IronPort-AV: E=McAfee;i="6000,8403,9856"; a="173873303" X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="173873303" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2021 22:32:13 -0800 IronPort-SDR: SZhLdnmudTMu6S/JAFRQ6vHlivwFRUGUVx0Ab1ACJcN/Nh+5KTZa+6EF2fTuxWBOrrv0lU0RV0 hf3JmOOpH0TQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="570311791" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga005.fm.intel.com with ESMTP; 06 Jan 2021 22:32:13 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx602.amr.corp.intel.com (10.18.126.82) 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 22:32:13 -0800 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx609.amr.corp.intel.com (10.18.126.89) 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 22:32:13 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx607.amr.corp.intel.com (10.18.126.87) 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 22:32:13 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.174) by edgegateway.intel.com (192.55.55.68) 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 22:32:12 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ORR2XpShh2bou2MGr5uff+36OOZoded17rrVP4Rtj+3RVIMgXQf5N3IIKVGzDq0V16yK9Hd2uI3MAsYnLqSHCQdFLvQd/AQw2lPbVVsmCGUo+2wOhL/lTX3ElVaZVOMEhUZJoB2nqUd9gsi6eH1awfrixnOt+QulHZ7T8XlyRISjK9PW2QaLb1avI9/oYCr54uuEbkr3zDDCsOhGH+I73hX9nAEV77zcsYica3FmXRa3yeQHN5HKnqbKtQY/Hu6VDhsl3JLiCqKz8q1txahOXq8ITCbbew/JROGBf545TD1DuPvRzMfKm5ayqTAhcuvStgNQ+86TrfdxzRVsEUXrsQ== 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=p+6OfBSZqrhJJFUSr3JPJodxonmuRA6BvGT0k60LZyk=; b=m4AB02IKkVsyAIndbssM4huv49t2E2B5uGBapdivLx7W9+YdGZ+ukMjPv5L1dbCeJll4fiy3i41u5BLy6/gODoa8S+jk9gwGZPGYb0WJzRTgmkagz4IBvVY5C3U7bNv6nBci6GTPLHy1DOebJru0pH6Cgu08Ppg/imJQavqt6shmQ9FaMa5rAxGDTmdCWEWDII6QkkQ1D7hfP5CKiBWM5yb9ahHuYGLkoiIfloFDiqwto6AvN43ZxGrkbEimIYucHdESm5F4AH1x1x6csf5qcxR1r0IoLrgYs75dznztM+hPggjZD5Ru4xfdchcJyapMoEXMenm6XItGD8KYB9qEFQ== 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=p+6OfBSZqrhJJFUSr3JPJodxonmuRA6BvGT0k60LZyk=; b=lXSVpAySHK0yZUM8Ox97P0h4b4XJF5KKYKBXqNTiIpXmlq8cb0hlTszy4yqBkGgUA6fyL4H3rKyPnqNc1rRrRsn1qraywj+7gQ5Vvj5ff2/8bnrecBrrYGBZPM3ga+4jD8wummmrZcekJUN4xfaf+yj6IBKuYslCwe7LYfLLdJs= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB4016.namprd11.prod.outlook.com (2603:10b6:208:155::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.20; Thu, 7 Jan 2021 06:32:11 +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; Thu, 7 Jan 2021 06:32:11 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH 38/40] net/virtio: move Vhost-user specifics to its backend Thread-Index: AQHW1xV0UvQ1EdtoXkW2Kuuzt40CaqobwYow Date: Thu, 7 Jan 2021 06:32:11 +0000 Message-ID: References: <20201220211405.313012-1-maxime.coquelin@redhat.com> <20201220211405.313012-39-maxime.coquelin@redhat.com> In-Reply-To: <20201220211405.313012-39-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.55.46.46] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5462163e-e3d8-4a1f-0539-08d8b2d5f707 x-ms-traffictypediagnostic: MN2PR11MB4016: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:128; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Nw04d3998SlHwXlBpEXcY0VNrpzDxZHO+MmWaXRq3WenDPbUk0hbai+vvM84ldT6jPYwEbn86EpYLnjCqw0xq7o1BypmBQfMX7iqzYrfm5/iXr/0yYjsvddaBd3Wcn2gie3hsIEBcHAknezPRdbZg4+MaqhSfFaGSEe3Do6xx6tcEnJg8wPFtxS3vPo/2x5hHLgObdn2wj6RiJAk7FQa8+uOKMbz9reFTnl8dm+B9hK5VZMm7Jz9GIjZWJYLjFwbCG+WBYG4xktnzHjD+JAwAQV5/ONTPgHpJ0uxNj3NDEen8CmjpqPfnSAXBPiZyMdliiXkhWXFmo6j3/3Z/rKbRyy+nTZucyB6Koj/RbGpHDFWTn0bJBSW2qI4V3ze1IsmLGZ5FIxadmDRhCOvpCgf+g== 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)(136003)(366004)(346002)(396003)(39860400002)(376002)(66476007)(7696005)(316002)(26005)(66556008)(110136005)(478600001)(186003)(86362001)(2906002)(52536014)(8676002)(66946007)(8936002)(6506007)(5660300002)(66446008)(53546011)(76116006)(33656002)(83380400001)(9686003)(71200400001)(55016002)(64756008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?U2drTFAxM3dCanprbThuc3I4TDMxTTlWUFUzdUxIcFVUTmJPVm82cVhWTkd4?= =?utf-8?B?dDR0QkJ0SzFKUk1qUUU2YkJzWFpTRUdENmNGZmRGaTd5WjBLTC91OCtZSHYz?= =?utf-8?B?QzNjS2VBajBVdldRVEJjWjI1aDVBa2RDVGsza016cHJqNUR6ZUJDTncvVEli?= =?utf-8?B?S1lvbC9tNHRXWHJTWm1LeHQ0NEM4bkx4QzlvMXV0Rk5ycjNhMGZrdWhzUkYr?= =?utf-8?B?b1pxUW5iY05lbFpUbUFsb0FYc3N3bVB0ek9NQU1LWnVkR3ViL1FQekd3SkZl?= =?utf-8?B?QWk0bERMRlFYUHd1MTRuMFVOcUVQa2dXNVg5TFpZRGlKK0dtSTBKYUlQRVZw?= =?utf-8?B?amVHak94MUZpblVVVWc5c1BuUEovYWNpdlN6clp2Y2JlZ3YxSnpkSG1zdUY2?= =?utf-8?B?OVgyVlM4UHlyWmh3eVlobGpsaiswRGM2a1B3RTYzbDlCcHE5MFVrYjY3OVE1?= =?utf-8?B?Rys3eXVEeEEyOGpYYVlGUTBCTi8rQUc0TVFHS3JqZzI5R1JIQktEN3VhVExZ?= =?utf-8?B?VUgxTEtZQTlFK1d5QnRyaHVGa1ZzRTllR21xWHJtNVQwaFFmRVVISFBKZnJj?= =?utf-8?B?L0szL1JML2FlSTh2UmtrVWpvekNkNThjdk1SM3p0Qm9ZK1lIU2tvbHUyVjNn?= =?utf-8?B?V0RVejN3YTRteTJiaUx3c1kzS3UySHpwY0dPREpvbUwrMnpXYjFTd2xraW5D?= =?utf-8?B?azF3aEMxUUJEV25WK2VGYTVqV3lSV3Z3a1phMEpJbldJb0RzSkQza1JnY2VH?= =?utf-8?B?S0dUMkFnRVczUm5WVlZZRXM2K08zVkhiMmtpUjk3L3dnb05wYXVTMlFZRVFI?= =?utf-8?B?VHVNMjdxa2NHaWtwMjczSWltMVIrZFd3dmhxVTgwVTJxL3lyNUdxVVBiWUJ1?= =?utf-8?B?OTlYOWQyY1lhNVlHWCtPQXhzMkpGbFhYei9kVWxyeG1tWjhpK3NReDU0bzBI?= =?utf-8?B?N2ZJdURZWkpKTTZpQTJ2c3pOOE9nSWxTY3hGNVZuU3hUZkRmMmludTVtRFZn?= =?utf-8?B?ZXhrRTc0MVJCU1pnbDBtSTVXVVNoOHlCQWNoaldLcnR0aTBtN205TVdtTjN1?= =?utf-8?B?TGFhMzBwbDlCNXE0ZjFjV3RLMjAxODd4ZDRrTk9tVk5ZRVhhaUJBSVdVVEE3?= =?utf-8?B?VEI0TUtZb251S2hBVDZDL3JuOVNuQkFnZmJBUGthQ3NiT1ViMkxJMitvNU1o?= =?utf-8?B?cFZMYWRLaGliNVFVWGY3cmtRZm1rT1hBSUNBQTdwRjhGT3FwT2NmTFdkaEpw?= =?utf-8?B?R0UzUnJpa2Zud1ZYdzBHQ1dGaUNiT3ZhWDhOUEZDTGpZaXExZHZwRUFnTFl2?= =?utf-8?Q?FfKsWu7Q5SJX0=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: 5462163e-e3d8-4a1f-0539-08d8b2d5f707 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jan 2021 06:32:11.3646 (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: +1VOvczmqz+bNL6yOJQqKcXeXMAo9hlsLGp9lHqaEvrxutrc0BhHzidZPD7CyskXYV+j5uMpITj3+HeeP2rNjw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4016 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 38/40] net/virtio: move Vhost-user specifics to its backend 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 MzgvNDBdIG5ldC92aXJ0aW86IG1vdmUgVmhvc3QtdXNlciBzcGVjaWZpY3MgdG8gaXRzIGJhY2tl bmQNCj4gDQo+IFRoaXMgcGF0Y2ggbW92ZXMgYWxsIHRoZSBWaG9zdC11c2VyIGJhY2tlbmQgc3Bl Y2lmaWMNCj4gbG9naWMgbGlrZSBWaG9zdCBGRCwgbGlzdGVuIEZEIGFuZCBpbnRlcnJ1cHQgaGFu ZGxpbmcNCj4gdG8gdGhlIHZob3N0LXVzZXIgYmFja2VuZCBpbXBsZW1lbnRhdGlvbi4NCj4gDQo+ IEluIG9yZGVyIHRvIGFjaGlldmUgdGhhdCwgbmV3IG9wcyBhcmUgY3JlYXRlZCB0byB1cGRhdGUN Cj4gdGhlIGxpbmsgc3RhdHVzLCBkaXNjb25uZWN0IGFuZCByZWNvbm5lY3QgdGhlIHNlcnZlciwN Cj4gYW5kIGZldGNoIHRoZSBsaW5rIHN0YXRlIGludGVycnVwdCBGRC4NCj4gDQo+IFNpZ25lZC1v ZmYtYnk6IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IC0t LQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmggICAgICAgIHwgICA0 ICsNCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYyB8ICAx OCArLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIuYyAgIHwg MTY5ICsrKysrKysrKysrKysrLS0tDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIv dmhvc3RfdmRwYS5jICAgfCAgMTYgKysNCj4gIC4uLi9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zp cnRpb191c2VyX2Rldi5jICB8IDE3NSArKysrKysrKysrKysrKy0tLQ0KPiAgLi4uL25ldC92aXJ0 aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmggIHwgICA5ICstDQo+ICBkcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX3VzZXJfZXRoZGV2LmMgICAgICAgfCAxNzkgKy0tLS0tLS0tLS0tLS0t LS0tDQo+ICA3IGZpbGVzIGNoYW5nZWQsIDM0MCBpbnNlcnRpb25zKCspLCAyMzAgZGVsZXRpb25z KC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zo b3N0LmgNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaA0KPiBpbmRl eCBlZTU1OTgyMjZkLi42MDAxZDdhMTY0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0 aW8vdmlydGlvX3VzZXIvdmhvc3QuaA0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlv X3VzZXIvdmhvc3QuaA0KPiBAQCAtNzUsNiArNzUsMTAgQEAgc3RydWN0IHZpcnRpb191c2VyX2Jh Y2tlbmRfb3BzIHsNCj4gIAlpbnQgKCplbmFibGVfcXApKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldiwgdWludDE2X3QgcGFpcl9pZHgsIGludA0KPiBlbmFibGUpOw0KPiAgCWludCAoKmRtYV9t YXApKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdm9pZCAqYWRkciwgdWludDY0X3QgaW92 YSwNCj4gc2l6ZV90IGxlbik7DQo+ICAJaW50ICgqZG1hX3VubWFwKShzdHJ1Y3QgdmlydGlvX3Vz ZXJfZGV2ICpkZXYsIHZvaWQgKmFkZHIsIHVpbnQ2NF90IGlvdmEsDQo+IHNpemVfdCBsZW4pOw0K PiArCWludCAoKnVwZGF0ZV9saW5rX3N0YXRlKShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYp Ow0KPiArCWludCAoKnNlcnZlcl9kaXNjb25uZWN0KShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpk ZXYpOw0KPiArCWludCAoKnNlcnZlcl9yZWNvbm5lY3QpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldik7DQo+ICsJaW50ICgqZ2V0X2ludHJfZmQpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRl dik7DQoNClRoaXMgZ2V0X2ludHJfZmQgaXMgZm9yIGdldHRpbmcgbGluayBzdGF0ZSBpbnRlcnJ1 cHQgZmQuIEkgdGhpbmsgaGlzIG5hbWUgaXMgYSBsaXR0bGUgYml0DQpnZW5lcmljLiBXaGF0IGRv IHlvdSB0aGluaz8gTWF5YmUgd2UgY291bGQgY2hhbmdlIHRoZSBuYW1lIG9yIGFkZCBjb21tZW50 IGhlcmUgdG8gY2xhcmlmeSBoZXJlPw0KDQo+ICB9Ow0KPiANCj4gIGV4dGVybiBzdHJ1Y3Qgdmly dGlvX3VzZXJfYmFja2VuZF9vcHMgdmlydGlvX29wc191c2VyOw0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+IGIvZHJpdmVycy9u ZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+IGluZGV4IDAyM2ZkZGNkNjku LjBiYTM3YjIzZGMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNl ci92aG9zdF9rZXJuZWwuYw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIv dmhvc3Rfa2VybmVsLmMNCj4gQEAgLTQ1OSw2ICs0NTksMjAgQEAgdmhvc3Rfa2VybmVsX2dldF9i YWNrZW5kX2ZlYXR1cmVzKHVpbnQ2NF90ICpmZWF0dXJlcykNCj4gIAlyZXR1cm4gMDsNCj4gIH0N Cj4gDQoNCjxzbmlwPg0KDQo+ICtzdGF0aWMgdm9pZA0KPiArdmlydGlvX3VzZXJfZGV2X3Jlc2V0 X3F1ZXVlc19wYWNrZWQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KPiArew0KPiArCXN0 cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiA9IGV0aF9kZXYtPmRhdGEtPmRldl9wcml2YXRlOw0K PiArCXN0cnVjdCB2aXJ0aW9faHcgKmh3ID0gJmRldi0+aHc7DQo+ICsJc3RydWN0IHZpcnRuZXRf cnggKnJ4dnE7DQo+ICsJc3RydWN0IHZpcnRuZXRfdHggKnR4dnE7DQo+ICsJdWludDE2X3QgaTsN Cj4gKw0KPiArCS8qIEFkZCBsb2NrIHRvIGF2b2lkIHF1ZXVlIGNvbnRlbnRpb24uICovDQo+ICsJ cnRlX3NwaW5sb2NrX2xvY2soJmh3LT5zdGF0ZV9sb2NrKTsNCj4gKwlody0+c3RhcnRlZCA9IDA7 DQo+ICsNCj4gKwkvKg0KPiArCSAqIFdhaXR0aW5nIGZvciBkYXRhcGF0aCB0byBjb21wbGV0ZSBi ZWZvcmUgcmVzZXR0aW5nIHF1ZXVlcy4NCg0Kcy9XYWl0dGluZy9XYWl0aW5nDQoNCj4gKwkgKiAx IG1zIHNob3VsZCBiZSBlbm91Z2ggZm9yIHRoZSBvbmdvaW5nIFR4L1J4IGZ1bmN0aW9uIHRvIGZp bmlzaC4NCj4gKwkgKi8NCj4gKwlydGVfZGVsYXlfbXMoMSk7DQo+ICsNCj4gKwkvKiBWcmluZyBy ZXNldCBmb3IgZWFjaCBUeCBxdWV1ZSBhbmQgUnggcXVldWUuICovDQo+ICsJZm9yIChpID0gMDsg aSA8IGV0aF9kZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgaSsrKSB7DQo+ICsJCXJ4dnEgPSBldGhf ZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV07DQo+ICsJCXZpcnRxdWV1ZV9yeHZxX3Jlc2V0X3BhY2tl ZChyeHZxLT52cSk7DQo+ICsJCXZpcnRpb19kZXZfcnhfcXVldWVfc2V0dXBfZmluaXNoKGV0aF9k ZXYsIGkpOw0KPiArCX0NCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBldGhfZGV2LT5kYXRhLT5u Yl90eF9xdWV1ZXM7IGkrKykgew0KPiArCQl0eHZxID0gZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVz W2ldOw0KPiArCQl2aXJ0cXVldWVfdHh2cV9yZXNldF9wYWNrZWQodHh2cS0+dnEpOw0KPiArCX0N Cj4gKw0KPiArCWh3LT5zdGFydGVkID0gMTsNCj4gKwlydGVfc3BpbmxvY2tfdW5sb2NrKCZody0+ c3RhdGVfbG9jayk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3ZpcnRpb191c2VyX2Rldl9kZWxh eWVkX2hhbmRsZXIodm9pZCAqcGFyYW0pDQo+ICt7DQo+ICsJc3RydWN0IHZpcnRpb191c2VyX2Rl diAqZGV2ID0gcGFyYW07DQo+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2ID0gJnJ0ZV9l dGhfZGV2aWNlc1tkZXYtPnBvcnRfaWRdOw0KPiArDQo+ICsJaWYgKHJ0ZV9pbnRyX2Rpc2FibGUo ZXRoX2Rldi0+aW50cl9oYW5kbGUpIDwgMCkgew0KPiArCQlQTURfRFJWX0xPRyhFUlIsICJpbnRl cnJ1cHQgZGlzYWJsZSBmYWlsZWQiKTsNCj4gKwkJcmV0dXJuOw0KPiArCX0NCj4gKwlydGVfaW50 cl9jYWxsYmFja191bnJlZ2lzdGVyKGV0aF9kZXYtPmludHJfaGFuZGxlLA0KPiArCQkJCSAgICAg dmlydGlvX2ludGVycnVwdF9oYW5kbGVyLCBldGhfZGV2KTsNCj4gKwlpZiAoZGV2LT5pc19zZXJ2 ZXIpIHsNCj4gKwkJZGV2LT5vcHMtPnNlcnZlcl9kaXNjb25uZWN0KGRldik7DQoNCkJldHRlciB0 byBjaGVjayBvcHMgZXhpc3RlbmNlIHRvbz8NCg0KPiArCQlldGhfZGV2LT5pbnRyX2hhbmRsZS0+ ZmQgPSBkZXYtPm9wcy0+Z2V0X2ludHJfZmQoZGV2KTsNCj4gKwkJcnRlX2ludHJfY2FsbGJhY2tf cmVnaXN0ZXIoZXRoX2Rldi0+aW50cl9oYW5kbGUsDQo+ICsJCQkJCSAgIHZpcnRpb19pbnRlcnJ1 cHRfaGFuZGxlciwgZXRoX2Rldik7DQo+ICsJCWlmIChydGVfaW50cl9lbmFibGUoZXRoX2Rldi0+ aW50cl9oYW5kbGUpIDwgMCkgew0KPiArCQkJUE1EX0RSVl9MT0coRVJSLCAiaW50ZXJydXB0IGVu YWJsZSBmYWlsZWQiKTsNCj4gKwkJCXJldHVybjsNCj4gKwkJfQ0KPiArCX0NCj4gK30NCj4gKw0K PiAraW50DQo+ICt2aXJ0aW9fdXNlcl9kZXZfc2VydmVyX3JlY29ubmVjdChzdHJ1Y3QgdmlydGlv X3VzZXJfZGV2ICpkZXYpDQo+ICt7DQo+ICsJaW50IHJldCwgb2xkX3N0YXR1czsNCj4gKwlzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYgPSAmcnRlX2V0aF9kZXZpY2VzW2Rldi0+cG9ydF9pZF07 DQo+ICsJc3RydWN0IHZpcnRpb19odyAqaHcgPSAmZGV2LT5odzsNCj4gKw0KPiArCWlmICghZGV2 LT5vcHMtPnNlcnZlcl9yZWNvbm5lY3QpIHsNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAiKCVzKSBN aXNzaW5nIHNlcnZlciByZWNvbm5lY3QgY2FsbGJhY2siLCBkZXYtDQo+ID5wYXRoKTsNCj4gKwkJ cmV0dXJuIC0xOw0KPiArCX0NCg0KRm9yZ2V0IHRvIGNhbGwgc2VydmVyX3JlY29ubmVjdD8gOikg DQoNCj4gKw0KPiArCW9sZF9zdGF0dXMgPSB2aXJ0aW9fZ2V0X3N0YXR1cyhodyk7DQo+ICsNCj4g Kwl2aXJ0aW9fcmVzZXQoaHcpOw0KPiArDQo+ICsJdmlydGlvX3NldF9zdGF0dXMoaHcsIFZJUlRJ T19DT05GSUdfU1RBVFVTX0FDSyk7DQo+ICsNCj4gKwl2aXJ0aW9fc2V0X3N0YXR1cyhodywgVklS VElPX0NPTkZJR19TVEFUVVNfRFJJVkVSKTsNCj4gKw0KPiArCWlmIChkZXYtPm9wcy0+Z2V0X2Zl YXR1cmVzKGRldiwgJmRldi0+ZGV2aWNlX2ZlYXR1cmVzKSA8IDApIHsNCj4gKwkJUE1EX0lOSVRf TE9HKEVSUiwgImdldF9mZWF0dXJlcyBmYWlsZWQ6ICVzIiwNCj4gKwkJCSAgICAgc3RyZXJyb3Io ZXJybm8pKTsNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0NCj4gKw0KPiArCWRldi0+ZGV2aWNlX2Zl YXR1cmVzIHw9IGRldi0+ZnJvbnRlbmRfZmVhdHVyZXM7DQo+ICsNCj4gKwkvKiB1bWFzayB2aG9z dC11c2VyIHVuc3VwcG9ydGVkIGZlYXR1cmVzICovDQoNCnMvdW1hc2svdW5tYXNrDQoNClRoYW5r cywNCkNoZW5ibw0K