From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5D19AA0524; Tue, 13 Apr 2021 11:06:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C714D160D10; Tue, 13 Apr 2021 11:06:37 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id B73ED160D06 for ; Tue, 13 Apr 2021 11:06:35 +0200 (CEST) IronPort-SDR: HAyQbRxkev8PWT92rilseCfnhh1HnFQswo6Twpd2N9Q0eBVyZ6LAhFtyEj7s//RSlppoFcbIP2 XBW3uIlt3lPw== X-IronPort-AV: E=McAfee;i="6200,9189,9952"; a="193933154" X-IronPort-AV: E=Sophos;i="5.82,219,1613462400"; d="scan'208";a="193933154" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2021 02:06:34 -0700 IronPort-SDR: /L1/JvzaLtx+MXib89oVXvMptZy7QCcCKnrxdCy5c7LtktiANKhUHOKQ8R3ALZfRpncXUo/5bp 4TFP8RJ+QYXw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,219,1613462400"; d="scan'208";a="424170895" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga008.jf.intel.com with ESMTP; 13 Apr 2021 02:06:34 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 13 Apr 2021 02:06:33 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) 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.2106.2; Tue, 13 Apr 2021 02:06:33 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2106.2 via Frontend Transport; Tue, 13 Apr 2021 02:06:33 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (104.47.38.50) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Tue, 13 Apr 2021 02:06:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EAtcJ38hw2Jr3zQ/YLfRPtotXApnfxKfCPV8ftP2TIc4nYg7UZ8c4Dk1Y0dbEIPoNRxFC8j2omx126ICH1SD6Nn2qckNaLm30vrcFgxtB7/iI9d339Cp6xiPg27cP/sybxG/zOTTWDCw818La6Ek/Gk+JGYtGDyXE74Zv2n5O2VmKyPmpTIuUyLilhgi+6p8zZ7ZsSs3aIz5doUrPwssKmakG06446fVJenqJ28KEV9v3tzI7WCYoGJuB4PCx+IDFtio2PAS4YFdqjpxiUiY+duIfGgIzP9JWzq1H6zqMmDnHohAOzqf3QBu6yM4ffS0xeMmQgXXiKj1a3VDr48oKw== 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=1/aF7sABG6KmHpvl7mfrCPHcNp5wDOR0ZZlQ3DuIHA0=; b=AuXsn7HwlDdOP9MwJM5riywRbL5yQEyjydjjAnWmhObDrSVNKhK2FOd7eJxwhnFiNOf4R5KEiFH93zL1sycy/uXhx8Eh7IXx3sb5Et8vxVvbOfJc00ynZ8Mdiv5nhc6oDeDZOwrbCr7NZ9hTfgPVlsr/+ZGFjhREO6hpA4MTMTqX90GQwDexGd8ug3U/HMI71wMFYDr3EazKjFaFH5g3xIab+2aSKoTjDh5whtGPs97I+aATTjUqpEVfHeTjg+PQy1BDOn+6BEeu+50J4kNONVFpGV3WP4lBIREvrtr4x+JQ/i0ShjFX0PS7YcTpHCWR+idUJwmauGfowPzEqbC5LQ== 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=1/aF7sABG6KmHpvl7mfrCPHcNp5wDOR0ZZlQ3DuIHA0=; b=xS9yp0rvynzAi1nkvFehLsWk2it8wLzwU41w/JnoSS6wKSCgL1MDFAHZXPTYvULaO1PNOHvAW8fu7N8aJYPwh008W379Ayc3GU4EWYnaugER+vplYjT4caBgvPM7lK7v4vB8WX6vZKMl/mC2GhILt4QWGa5j4ukiz43AJjoNEvQ= Received: from SJ0PR11MB5006.namprd11.prod.outlook.com (2603:10b6:a03:2db::22) by SJ0PR11MB5184.namprd11.prod.outlook.com (2603:10b6:a03:2d5::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.20; Tue, 13 Apr 2021 09:06:30 +0000 Received: from SJ0PR11MB5006.namprd11.prod.outlook.com ([fe80::522:5b2:4210:a4b3]) by SJ0PR11MB5006.namprd11.prod.outlook.com ([fe80::522:5b2:4210:a4b3%7]) with mapi id 15.20.4020.022; Tue, 13 Apr 2021 09:06:30 +0000 From: "Jiang, Cheng1" To: Maxime Coquelin , "Xia, Chenbo" CC: "dev@dpdk.org" , "Hu, Jiayu" , "Yang, YvonneX" , "Wang, Yinan" , "Liu, Yong" Thread-Topic: [PATCH v5 1/4] vhost: abstract and reorganize async split ring code Thread-Index: AQHXL5Gts8KlbL2ZXE+6VMg7Yn9WJKqyCWKAgAAaeqA= Date: Tue, 13 Apr 2021 09:06:29 +0000 Message-ID: References: <20210317085426.10119-1-Cheng1.jiang@intel.com> <20210412113430.17587-1-Cheng1.jiang@intel.com> <20210412113430.17587-2-Cheng1.jiang@intel.com> <2ccb21b8-bff9-7334-6f63-adceef1b7641@redhat.com> In-Reply-To: <2ccb21b8-bff9-7334-6f63-adceef1b7641@redhat.com> Accept-Language: zh-CN, en-US 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.51] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b605a2ba-a980-4880-fd2e-08d8fe5b6d68 x-ms-traffictypediagnostic: SJ0PR11MB5184: 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:4125; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SwHSZ0DFkjT+EnsScUY38B4QxY+m1Q/XH5PCAJ+ZrF8O++fawftatZN5tQ93OpanvU+bE+7+Aje8utVivaxSi/SXXhArm3jF64BM9/LJVUDRBKtoaAk4t3xhcc5/9usrr9KBRzHFGLuKQhLRRYh3vLCqQ75LPyax+5wEHPl6Qwyg4LesouKQ+gCBjCXOrrZ0pRcybJAVcYCq4dxliRVNtBhRVC1Xwd71bSOf8S5pdCjjSiNTFCCS51ZgcQPJrMdK7XZAosxmxLF30Io5RdvmvFWoKjB5EiOlVXFNqfdjGRYFgrWPXOMlh7k2njqqMtO70mf862IrrFxg7C6kGdzkXCSnuIq1uvxtZC6bM2BI/lBJj7/vk2wuX74DpPcjvhkks8MVx2gwbfhROAfju7ivr5mnGMYnxHAtcsq54ZT8vACw9zyWLVE4cljBJbyYmVPF9pNlOHvYIdQLzMhnKq93xEZa1wjuvYjambLETccMA6I7rP5l1KPOVhxZJijVi0Rpjs3l8LaF3OEnFhSGoTNXycGc5l8X8M3bkumwE1fLnVicaDLc6jOD7DHGIsOwhWL1UGv3BNT9PbZSKjiY3Me5fEzKU5lANpxdKCdi0uMi1bw= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB5006.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(376002)(136003)(39860400002)(366004)(346002)(396003)(66446008)(64756008)(71200400001)(66556008)(66476007)(26005)(9686003)(8936002)(55016002)(76116006)(6506007)(5660300002)(53546011)(33656002)(7696005)(66946007)(2906002)(107886003)(8676002)(186003)(86362001)(83380400001)(52536014)(478600001)(6636002)(110136005)(316002)(54906003)(38100700002)(4326008)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?V1h5aVJFZHV4NGxrMTd4REVNRk4yVWxJZnErdVVyQnpoS3RoNjF0bWpKM0pR?= =?utf-8?B?MEVJSHBPSCt3S2szbjBKUkljL3liVlk1aHh2OWI0SHJtZ2NabXduemhOeGNX?= =?utf-8?B?d1YzWlpiczkvMkQrbWRWa0gwanBSRjFYNFVORkFZblYrd0RwMlhrakIxcHcz?= =?utf-8?B?OUxzWjJCQlYrdE5MV1p1OExoQXJXd2V4WEc2K3didXp5eEErWlZJOWFwTVQz?= =?utf-8?B?UkdkQ1M4SlRBbnJhVWpyUit4eEtVaXR4L3JTRFNQbjdWU3pNMmlDK1g0VUpn?= =?utf-8?B?d3VseXJqSFdtQkhsQjRhdTk2azV2M1g3SEwzL0N5NmRyT2RYT2VNM0R2Undx?= =?utf-8?B?U0hld1JycXVvNFZCT1E1NFp6OGI3WFZTZ0s5LzRJOE05NXQ4ZTRNUWxhejFX?= =?utf-8?B?VlVmY2JEbERrZkJpTnFHM0VQQkJ4WlNGSU1pMk1tVzY0dWdwKzFxdG1XOUwy?= =?utf-8?B?RmpERlM5TW8rQTUrMmdrb3NzY00rUVFjeUNIcEV6bGJOeGFOS29DN1Y4aDE3?= =?utf-8?B?Y3F0TmpTZnZNSEtpQ3RYOUpseHFhcXQ0MU5kOWh0YmFmQ054QTYvVC9JZlN4?= =?utf-8?B?V255UE5pWERock5wUE9haFFIWnBYU0lKbDhZaDltUXI5OXNjU2ZLVTB2aUp2?= =?utf-8?B?cmpqOGFBQlpnaDVQaWJuZ1c0bkJsc2NtQmx4T1lTVTcyZmNjMDFSRHBvOXRs?= =?utf-8?B?ZVovUTErdFpaQXcxYjkxYXhNVEVKSHBsTEVjblFBSWp1ZndKcXdpdFR1bFln?= =?utf-8?B?ZjVCZXZONHk5ZHZieEMvQ2RSVjFqMTREYWE0YkZET2ptVW9hTFVzZjRHZzN3?= =?utf-8?B?VUNFY1FNWitKODQ3bzZ1bGduMU96LzRTN290aCtXaWY5UzF2QitnOFQ2Q3pC?= =?utf-8?B?MFZtSnpMS2FNTWRPeXZkOHVURHNCVlNNYUJ4MjJzd2xGa3premQ0YnI0OUYw?= =?utf-8?B?TVJIYjcwMzA0VzVYeFZNRHZGNndtbndrTjNodHd5WG80K0xzejFSRk9mS3ZD?= =?utf-8?B?UlZ4WERPQ2tZRjR0Tnl1Z1lYb0cydC9xMnFoV244VkpramdsK1h2WUFZc01F?= =?utf-8?B?dmdoczFYRHRuakpDakVZN3Zrd0xUU0V5ZjlzMmRJOFlyU0dyQUw1Wk84L2M0?= =?utf-8?B?cG1iUjJOMTlkZVY4WndKR2xWU3pNR2lsMmpQdHlEZXFFMXJXVWNEbXBiWlIy?= =?utf-8?B?NXJoM3k2MWVsUkVnZlp0VWhKRVRFNjljUHZJelZ4OTJVbk9XMGV5di9NRTd3?= =?utf-8?B?bTFUVmNZTXlVRzhNck54NjVYRG4yQlFURlM1bkN1eTVuYm1DbzBZWjlpeXhj?= =?utf-8?B?bVFJdC9UYXptdWtLcDBNN2JEdkx2UWY5eVEwSksrVk03cTZGa01NMFVMTDZC?= =?utf-8?B?NFJEWlV6RmQ3TGY2eEpSTU0wbURjd09heVRiUDZHT0RaUzFzZmwxSFRoa2tN?= =?utf-8?B?YnppQlZCUzdSbGhIOUM1bDNyd3RCVXg0ekxvTjhoamRYTG05Z1VZaWl0QmNo?= =?utf-8?B?eHpacitzMS9OaDFqMDB0Q2RXUzhVVDRTUnRodW8ydW9LZUNOSlQ4NTVFQ3Fl?= =?utf-8?B?Q2xPbVVyS1FUWmJxc1ZaM25jVFBjVm9xOXBxNDBJRVFqcDY3c1k4dkpSOFY3?= =?utf-8?B?TExXR09IRWR4dmlBZlI1QTlvTHZ5YmllNjV2ZDZBbWlZTG1panFSZHl4cTBr?= =?utf-8?B?czBEdDBpd0FXWnB1MVQzU08yWnhJdUd4cmF6aTJtVXp4TXFJdFQ4VmhDTkwv?= =?utf-8?Q?ctS/FyjhBGLYjEgSvOySIcep8PaDm6fesXH8r21?= 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: SJ0PR11MB5006.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b605a2ba-a980-4880-fd2e-08d8fe5b6d68 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2021 09:06:30.2965 (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: eYyBaoj2z4x2hTFtJD7JeWpIldL3hsjtrWZ+z86HqAicLwuzaj06dyRfikWResj72zZorJpYAw0h/dYIguR3wA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5184 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v5 1/4] vhost: abstract and reorganize async split ring code 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+IFNlbnQ6IFR1ZXNkYXks IEFwcmlsIDEzLCAyMDIxIDM6MTIgUE0NCj4gVG86IEppYW5nLCBDaGVuZzEgPGNoZW5nMS5qaWFu Z0BpbnRlbC5jb20+OyBYaWEsIENoZW5ibw0KPiA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+IENj OiBkZXZAZHBkay5vcmc7IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29tPjsgWWFuZywgWXZv bm5lWA0KPiA8eXZvbm5leC55YW5nQGludGVsLmNvbT47IFdhbmcsIFlpbmFuIDx5aW5hbi53YW5n QGludGVsLmNvbT47IExpdSwNCj4gWW9uZyA8eW9uZy5saXVAaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSZTogW1BBVENIIHY1IDEvNF0gdmhvc3Q6IGFic3RyYWN0IGFuZCByZW9yZ2FuaXplIGFzeW5j IHNwbGl0IHJpbmcNCj4gY29kZQ0KPiANCj4gSGkgQ2hlbmcsDQo+IA0KPiBPbiA0LzEyLzIxIDE6 MzQgUE0sIENoZW5nIEppYW5nIHdyb3RlOg0KPiA+IEluIG9yZGVyIHRvIGltcHJvdmUgY29kZSBl ZmZpY2llbmN5IGFuZCByZWFkYWJpbGl0eSB3aGVuIGFzeW5jIHBhY2tlZA0KPiA+IHJpbmcgc3Vw cG9ydCBpcyBlbmFibGVkLiBUaGlzIHBhdGNoIGFic3RyYWN0IHNvbWUgZnVuY3Rpb25zIGxpa2UN Cj4gPiBzaGFkb3dfcmluZ19zdG9yZSBhbmQgd3JpdGVfYmFja19jb21wbGV0ZWRfZGVzY3Nfc3Bs aXQuIEFuZCBpbXByb3ZlDQo+ID4gdGhlIGVmZmljaWVuY3kgb2Ygc29tZSBwb2ludGVyIG9mZnNl dCBjYWxjdWxhdGlvbi4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IENoZW5nIEppYW5nIDxDaGVu ZzEuamlhbmdAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBsaWIvbGlicnRlX3Zob3N0L3ZpcnRp b19uZXQuYyB8IDE0Ng0KPiA+ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCj4g PiAgMSBmaWxlIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQ0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfdmhvc3QvdmlydGlvX25ldC5jDQo+ID4gYi9s aWIvbGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYyBpbmRleCBmZjM5ODc4NjAuLmM0M2FiMDA5MyAx MDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYw0KPiA+ICsrKyBi L2xpYi9saWJydGVfdmhvc3QvdmlydGlvX25ldC5jDQo+ID4gQEAgLTE0NTgsNiArMTQ1OCwyOSBA QCB2aXJ0aW9fZGV2X3J4X2FzeW5jX2dldF9pbmZvX2lkeCh1aW50MTZfdA0KPiBwa3RzX2lkeCwN Cj4gPiAgCQkodnFfc2l6ZSAtIG5faW5mbGlnaHQgKyBwa3RzX2lkeCkgJiAodnFfc2l6ZSAtIDEp OyAgfQ0KPiA+DQo+ID4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiArc2hh ZG93X3Jpbmdfc3RvcmUoc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEsICB2b2lkICpzaGFkb3df cmluZywgdm9pZA0KPiAqZF9yaW5nLA0KPiA+ICsJCXVpbnQxNl90IHNfaWR4LCB1aW50MTZfdCBk X2lkeCwNCj4gPiArCQl1aW50MTZfdCBjb3VudCwgdWludDE2X3QgZWxlbV9zaXplKSB7DQo+ID4g KwlpZiAoZF9pZHggKyBjb3VudCA8PSB2cS0+c2l6ZSkgew0KPiA+ICsJCXJ0ZV9tZW1jcHkoKHZv aWQgKikoKHVpbnRwdHJfdClkX3JpbmcgKyBkX2lkeCAqIGVsZW1fc2l6ZSksDQo+ID4gKwkJCSh2 b2lkICopKCh1aW50cHRyX3Qpc2hhZG93X3JpbmcgKyBzX2lkeCAqIGVsZW1fc2l6ZSksDQo+ID4g KwkJCWNvdW50ICogZWxlbV9zaXplKTsNCj4gPiArCX0gZWxzZSB7DQo+ID4gKwkJdWludDE2X3Qg c2l6ZSA9IHZxLT5zaXplIC0gZF9pZHg7DQo+ID4gKw0KPiA+ICsJCXJ0ZV9tZW1jcHkoKHZvaWQg KikoKHVpbnRwdHJfdClkX3JpbmcgKyBkX2lkeCAqIGVsZW1fc2l6ZSksDQo+ID4gKwkJCSh2b2lk ICopKCh1aW50cHRyX3Qpc2hhZG93X3JpbmcgKyBzX2lkeCAqIGVsZW1fc2l6ZSksDQo+ID4gKwkJ CXNpemUgKiBlbGVtX3NpemUpOw0KPiA+ICsNCj4gPiArCQlydGVfbWVtY3B5KCh2b2lkICopKCh1 aW50cHRyX3QpZF9yaW5nKSwNCj4gPiArCQkJKHZvaWQgKikoKHVpbnRwdHJfdClzaGFkb3dfcmlu ZyArDQo+ID4gKwkJCQkoc19pZHggKyBzaXplKSAqIGVsZW1fc2l6ZSksDQo+ID4gKwkJCShjb3Vu dCAtIHNpemUpICogZWxlbV9zaXplKTsNCj4gPiArCX0NCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3Rh dGljIF9fcnRlX25vaW5saW5lIHVpbnQzMl90DQo+ID4gIHZpcnRpb19kZXZfcnhfYXN5bmNfc3Vi bWl0X3NwbGl0KHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsDQo+ID4gIAlzdHJ1Y3Qgdmhvc3Rfdmly dHF1ZXVlICp2cSwgdWludDE2X3QgcXVldWVfaWQsIEBAIC0xNDc4LDYgKzE1MDEsNw0KPiBAQA0K PiA+IHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0X3NwbGl0KHN0cnVjdCB2aXJ0aW9fbmV0ICpk ZXYsDQo+ID4gIAlzdHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyICpkc3RfaXQgPSBpdF9wb29sICsg MTsNCj4gPiAgCXVpbnQxNl90IHNsb3RfaWR4ID0gMDsNCj4gPiAgCXVpbnQxNl90IHNlZ3NfYXdh aXQgPSAwOw0KPiA+ICsJdWludDE2X3QgaW92ZWNfaWR4ID0gMCwgaXRfaWR4ID0gMDsNCj4gPiAg CXN0cnVjdCBhc3luY19pbmZsaWdodF9pbmZvICpwa3RzX2luZm8gPSB2cS0+YXN5bmNfcGt0c19p bmZvOw0KPiA+ICAJdWludDMyX3Qgbl9wa3RzID0gMCwgcGt0X2VyciA9IDA7DQo+ID4gIAl1aW50 MzJfdCBudW1fYXN5bmNfcGt0cyA9IDAsIG51bV9kb25lX3BrdHMgPSAwOyBAQCAtMTUxMywyNw0K PiArMTUzNywzMg0KPiA+IEBAIHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0X3NwbGl0KHN0cnVj dCB2aXJ0aW9fbmV0ICpkZXYsDQo+ID4NCj4gPiAgCQlpZiAoYXN5bmNfbWJ1Zl90b19kZXNjKGRl diwgdnEsIHBrdHNbcGt0X2lkeF0sDQo+ID4gIAkJCQlidWZfdmVjLCBucl92ZWMsIG51bV9idWZm ZXJzLA0KPiA+IC0JCQkJc3JjX2lvdmVjLCBkc3RfaW92ZWMsIHNyY19pdCwgZHN0X2l0KSA8IDAp IHsNCj4gPiArCQkJCSZzcmNfaW92ZWNbaW92ZWNfaWR4XSwNCj4gPiArCQkJCSZkc3RfaW92ZWNb aW92ZWNfaWR4XSwNCj4gPiArCQkJCSZzcmNfaXRbaXRfaWR4XSwNCj4gPiArCQkJCSZkc3RfaXRb aXRfaWR4XSkgPCAwKSB7DQo+ID4gIAkJCXZxLT5zaGFkb3dfdXNlZF9pZHggLT0gbnVtX2J1ZmZl cnM7DQo+ID4gIAkJCWJyZWFrOw0KPiA+ICAJCX0NCj4gPg0KPiA+ICAJCXNsb3RfaWR4ID0gKHZx LT5hc3luY19wa3RzX2lkeCArIG51bV9hc3luY19wa3RzKSAmDQo+ID4gIAkJCSh2cS0+c2l6ZSAt IDEpOw0KPiA+IC0JCWlmIChzcmNfaXQtPmNvdW50KSB7DQo+ID4gKwkJaWYgKHNyY19pdFtpdF9p ZHhdLmNvdW50KSB7DQo+ID4gIAkJCXVpbnQxNl90IGZyb20sIHRvOw0KPiA+DQo+ID4gLQkJCWFz eW5jX2ZpbGxfZGVzYygmdGRlc1twa3RfYnVyc3RfaWR4KytdLCBzcmNfaXQsDQo+IGRzdF9pdCk7 DQo+ID4gKwkJCWFzeW5jX2ZpbGxfZGVzYygmdGRlc1twa3RfYnVyc3RfaWR4KytdLA0KPiA+ICsJ CQkJJnNyY19pdFtpdF9pZHhdLA0KPiA+ICsJCQkJJmRzdF9pdFtpdF9pZHhdKTsNCj4gPiAgCQkJ cGt0c19pbmZvW3Nsb3RfaWR4XS5kZXNjcyA9IG51bV9idWZmZXJzOw0KPiA+ICAJCQlwa3RzX2lu Zm9bc2xvdF9pZHhdLm1idWYgPSBwa3RzW3BrdF9pZHhdOw0KPiA+ICAJCQlhc3luY19wa3RzX2xv Z1tudW1fYXN5bmNfcGt0c10ucGt0X2lkeCA9IHBrdF9pZHg7DQo+ID4gIAkJCWFzeW5jX3BrdHNf bG9nW251bV9hc3luY19wa3RzKytdLmxhc3RfYXZhaWxfaWR4ID0NCj4gPiAgCQkJCXZxLT5sYXN0 X2F2YWlsX2lkeDsNCj4gPiAtCQkJc3JjX2lvdmVjICs9IHNyY19pdC0+bnJfc2VnczsNCj4gPiAt CQkJZHN0X2lvdmVjICs9IGRzdF9pdC0+bnJfc2VnczsNCj4gPiAtCQkJc3JjX2l0ICs9IDI7DQo+ ID4gLQkJCWRzdF9pdCArPSAyOw0KPiA+IC0JCQlzZWdzX2F3YWl0ICs9IHNyY19pdC0+bnJfc2Vn czsNCj4gPiArDQo+ID4gKwkJCWlvdmVjX2lkeCArPSBzcmNfaXRbaXRfaWR4XS5ucl9zZWdzOw0K PiA+ICsJCQlpdF9pZHggKz0gMjsNCj4gPiArDQo+ID4gKwkJCXNlZ3NfYXdhaXQgKz0gc3JjX2l0 W2l0X2lkeF0ubnJfc2VnczsNCj4gPg0KPiA+ICAJCQkvKioNCj4gPiAgCQkJICogcmVjb3ZlciBz aGFkb3cgdXNlZCByaW5nIGFuZCBrZWVwIERNQS1vY2N1cGllZA0KPiBAQCAtMTU0MSwyMw0KPiA+ ICsxNTcwLDEyIEBAIHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0X3NwbGl0KHN0cnVjdCB2aXJ0 aW9fbmV0ICpkZXYsDQo+ID4gIAkJCSAqLw0KPiA+ICAJCQlmcm9tID0gdnEtPnNoYWRvd191c2Vk X2lkeCAtIG51bV9idWZmZXJzOw0KPiA+ICAJCQl0byA9IHZxLT5hc3luY19kZXNjX2lkeCAmICh2 cS0+c2l6ZSAtIDEpOw0KPiA+IC0JCQlpZiAobnVtX2J1ZmZlcnMgKyB0byA8PSB2cS0+c2l6ZSkg ew0KPiA+IC0JCQkJcnRlX21lbWNweSgmdnEtPmFzeW5jX2Rlc2NzX3NwbGl0W3RvXSwNCj4gPiAt CQkJCQkJJnZxLQ0KPiA+c2hhZG93X3VzZWRfc3BsaXRbZnJvbV0sDQo+ID4gLQkJCQkJCW51bV9i dWZmZXJzICoNCj4gPiAtCQkJCQkJc2l6ZW9mKHN0cnVjdA0KPiB2cmluZ191c2VkX2VsZW0pKTsN Cj4gPiAtCQkJfSBlbHNlIHsNCj4gPiAtCQkJCWludCBzaXplID0gdnEtPnNpemUgLSB0bzsNCj4g PiAtDQo+ID4gLQkJCQlydGVfbWVtY3B5KCZ2cS0+YXN5bmNfZGVzY3Nfc3BsaXRbdG9dLA0KPiA+ IC0JCQkJCQkmdnEtDQo+ID5zaGFkb3dfdXNlZF9zcGxpdFtmcm9tXSwNCj4gPiAtCQkJCQkJc2l6 ZSAqDQo+ID4gLQkJCQkJCXNpemVvZihzdHJ1Y3QNCj4gdnJpbmdfdXNlZF9lbGVtKSk7DQo+ID4g LQkJCQlydGVfbWVtY3B5KHZxLT5hc3luY19kZXNjc19zcGxpdCwNCj4gPiAtCQkJCQkJJnZxLQ0K PiA+c2hhZG93X3VzZWRfc3BsaXRbZnJvbSArDQo+ID4gLQkJCQkJCXNpemVdLCAobnVtX2J1ZmZl cnMgLSBzaXplKSAqDQo+ID4gLQkJCQkJICAgc2l6ZW9mKHN0cnVjdCB2cmluZ191c2VkX2VsZW0p KTsNCj4gPiAtCQkJfQ0KPiA+ICsNCj4gPiArCQkJc2hhZG93X3Jpbmdfc3RvcmUodnEsIHZxLT5z aGFkb3dfdXNlZF9zcGxpdCwNCj4gPiArCQkJCQl2cS0+YXN5bmNfZGVzY3Nfc3BsaXQsDQo+ID4g KwkJCQkJZnJvbSwgdG8sIG51bV9idWZmZXJzLA0KPiA+ICsJCQkJCXNpemVvZihzdHJ1Y3QgdnJp bmdfdXNlZF9lbGVtKSk7DQo+ID4gKw0KPiANCj4gSSdtIG5vdCBjb252aW5jZWQgd2l0aCB0aGlz IHJld29yay4NCj4gDQo+IEkgdGhpbmsgaXQgaXMgZ29vZCB0byBjcmVhdGUgYSBkZWRpY2F0ZWQg ZnVuY3Rpb24gZm9yIHRoaXMgdG8gc2ltcGxpZnkgdGhpcyBodWdlDQo+IHZpcnRpb19kZXZfcnhf YXN5bmNfc3VibWl0X3NwbGl0KCkgZnVuY3Rpb24uIEJ1dCB3ZSBzaG91bGQgaGF2ZSBhDQo+IGRl ZGljYXRlZCB2ZXJzaW9uIGZvciBzcGxpdCByaW5nLiBIYXZpbmcgYSBzaW5nbGUgZnVuY3Rpb24g Zm9yIGJvdGggc3BsaXQgYW5kDQo+IHBhY2tlZCByaW5nIGRvZXMgbm90IGltcHJvdmUgcmVhZGFi aWxpdHksIGFuZCB1bmxpa2VseSBpbXByb3ZlIHBlcmZvcm1hbmNlLg0KDQpTdXJlLCBJJ20gYWdy ZWUgd2l0aCB5b3UuIEkgd2lsbCB1c2UgdHdvIGZ1bmN0aW9ucyBmb3Igc3BsaXQgYW5kIHBhY2tl ZCBzZXBhcmF0ZWx5IGluIHRoZSBuZXh0IHZlcnNpb24uDQoNCj4gDQo+ID4gIAkJCXZxLT5hc3lu Y19kZXNjX2lkeCArPSBudW1fYnVmZmVyczsNCj4gPiAgCQkJdnEtPnNoYWRvd191c2VkX2lkeCAt PSBudW1fYnVmZmVyczsNCj4gPiAgCQl9IGVsc2UNCj4gPiBAQCAtMTU3NSwxMCArMTU5Myw5IEBA IHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0X3NwbGl0KHN0cnVjdA0KPiB2aXJ0aW9fbmV0ICpk ZXYsDQo+ID4gIAkJCUJVRl9WRUNUT1JfTUFYKSkpIHsNCj4gPiAgCQkJbl9wa3RzID0gdnEtPmFz eW5jX29wcy50cmFuc2Zlcl9kYXRhKGRldi0+dmlkLA0KPiA+ICAJCQkJCXF1ZXVlX2lkLCB0ZGVz LCAwLCBwa3RfYnVyc3RfaWR4KTsNCj4gPiAtCQkJc3JjX2lvdmVjID0gdmVjX3Bvb2w7DQo+ID4g LQkJCWRzdF9pb3ZlYyA9IHZlY19wb29sICsgKFZIT1NUX01BWF9BU1lOQ19WRUMgPj4NCj4gMSk7 DQo+ID4gLQkJCXNyY19pdCA9IGl0X3Bvb2w7DQo+ID4gLQkJCWRzdF9pdCA9IGl0X3Bvb2wgKyAx Ow0KPiA+ICsJCQlpb3ZlY19pZHggPSAwOw0KPiA+ICsJCQlpdF9pZHggPSAwOw0KPiA+ICsNCj4g PiAgCQkJc2Vnc19hd2FpdCA9IDA7DQo+ID4gIAkJCXZxLT5hc3luY19wa3RzX2luZmxpZ2h0X24g Kz0gbl9wa3RzOw0KPiA+DQo+ID4gQEAgLTE2MzksNiArMTY1Niw0MyBAQCB2aXJ0aW9fZGV2X3J4 X2FzeW5jX3N1Ym1pdF9zcGxpdChzdHJ1Y3QNCj4gdmlydGlvX25ldCAqZGV2LA0KPiA+ICAJcmV0 dXJuIHBrdF9pZHg7DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0aWMgX19ydGVfYWx3YXlzX2lubGlu ZSB2b2lkDQo+ID4gK3dyaXRlX2JhY2tfY29tcGxldGVkX2Rlc2NzX3NwbGl0KHN0cnVjdCB2aG9z dF92aXJ0cXVldWUgKnZxLCB1aW50MTZfdA0KPiA+ICtuX2Rlc2NzKSB7DQo+ID4gKwl1aW50MTZf dCBucl9sZWZ0ID0gbl9kZXNjczsNCj4gPiArCXVpbnQxNl90IG5yX2NvcHk7DQo+ID4gKwl1aW50 MTZfdCB0bywgZnJvbTsNCj4gPiArDQo+ID4gKwlkbyB7DQo+ID4gKwkJZnJvbSA9IHZxLT5sYXN0 X2FzeW5jX2Rlc2NfaWR4ICYgKHZxLT5zaXplIC0gMSk7DQo+ID4gKwkJbnJfY29weSA9IG5yX2xl ZnQgKyBmcm9tIDw9IHZxLT5zaXplID8gbnJfbGVmdCA6DQo+ID4gKwkJCXZxLT5zaXplIC0gZnJv bTsNCj4gPiArCQl0byA9IHZxLT5sYXN0X3VzZWRfaWR4ICYgKHZxLT5zaXplIC0gMSk7DQo+ID4g Kw0KPiA+ICsJCWlmICh0byArIG5yX2NvcHkgPD0gdnEtPnNpemUpIHsNCj4gPiArCQkJcnRlX21l bWNweSgmdnEtPnVzZWQtPnJpbmdbdG9dLA0KPiA+ICsJCQkJCSZ2cS0+YXN5bmNfZGVzY3Nfc3Bs aXRbZnJvbV0sDQo+ID4gKwkJCQkJbnJfY29weSAqDQo+ID4gKwkJCQkJc2l6ZW9mKHN0cnVjdCB2 cmluZ191c2VkX2VsZW0pKTsNCj4gPiArCQl9IGVsc2Ugew0KPiA+ICsJCQl1aW50MTZfdCBzaXpl ID0gdnEtPnNpemUgLSB0bzsNCj4gPiArDQo+ID4gKwkJCXJ0ZV9tZW1jcHkoJnZxLT51c2VkLT5y aW5nW3RvXSwNCj4gPiArCQkJCQkmdnEtPmFzeW5jX2Rlc2NzX3NwbGl0W2Zyb21dLA0KPiA+ICsJ CQkJCXNpemUgKg0KPiA+ICsJCQkJCXNpemVvZihzdHJ1Y3QgdnJpbmdfdXNlZF9lbGVtKSk7DQo+ ID4gKwkJCXJ0ZV9tZW1jcHkodnEtPnVzZWQtPnJpbmcsDQo+ICZ2cS0+dXNlZC0+cmluZ1swXSBm b3IgY29uc2lzdGVuY3kNCg0KSXQgd2lsbCBiZSBmaXhlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0K DQo+ID4gKwkJCQkJJnZxLT5hc3luY19kZXNjc19zcGxpdFtmcm9tICsNCj4gPiArCQkJCQlzaXpl XSwgKG5yX2NvcHkgLSBzaXplKSAqDQo+ID4gKwkJCQkJc2l6ZW9mKHN0cnVjdCB2cmluZ191c2Vk X2VsZW0pKTsNCj4gDQo+IExpbmVzIGNhbiBub3cgYmUgdXAgdG8gMTAwIGNoYXJzLg0KPiBQbGVh c2UgdGFrZSB0aGUgb3Bwb3J0dW5pdHkgdG8gaW5kZW50IHByb3Blcmx5IG5vdCB0byBoYXZlIHBh cnRzIG9mIGVhY2ggYXJncw0KPiBiZWluZyBwdXQgb24gdGhlIHNhbWUgbGluZS4gSXQgd2lsbCBo ZWxwIHJlYWRhYmlsaXR5Lg0KDQpPaywgZ2xhZCB0byBrbm93LiBJIHdpbGwgZml4IHRoZW0gaW4g dGhlIG5leHQgdmVyc2lvbi4NCg0KVGhhbmtzIGEgbG90Lg0KQ2hlbmcNCg0KPiANCj4gPiArCQl9 DQo+ID4gKw0KPiA+ICsJCXZxLT5sYXN0X2FzeW5jX2Rlc2NfaWR4ICs9IG5yX2NvcHk7DQo+ID4g KwkJdnEtPmxhc3RfdXNlZF9pZHggKz0gbnJfY29weTsNCj4gPiArCQlucl9sZWZ0IC09IG5yX2Nv cHk7DQo+ID4gKwl9IHdoaWxlIChucl9sZWZ0ID4gMCk7DQo+ID4gK30NCj4gPiArDQo+ID4gIHVp bnQxNl90IHJ0ZV92aG9zdF9wb2xsX2VucXVldWVfY29tcGxldGVkKGludCB2aWQsIHVpbnQxNl90 IHF1ZXVlX2lkLA0KPiA+ICAJCXN0cnVjdCBydGVfbWJ1ZiAqKnBrdHMsIHVpbnQxNl90IGNvdW50 KSAgeyBAQCAtMTY5NSwzOQ0KPiArMTc0OSw3IEBADQo+ID4gdWludDE2X3QgcnRlX3Zob3N0X3Bv bGxfZW5xdWV1ZV9jb21wbGV0ZWQoaW50IHZpZCwgdWludDE2X3QgcXVldWVfaWQsDQo+ID4gIAl2 cS0+YXN5bmNfcGt0c19pbmZsaWdodF9uIC09IG5fcGt0c19wdXQ7DQo+ID4NCj4gPiAgCWlmIChs aWtlbHkodnEtPmVuYWJsZWQgJiYgdnEtPmFjY2Vzc19vaykpIHsNCj4gPiAtCQl1aW50MTZfdCBu cl9sZWZ0ID0gbl9kZXNjczsNCj4gPiAtCQl1aW50MTZfdCBucl9jb3B5Ow0KPiA+IC0JCXVpbnQx Nl90IHRvOw0KPiA+IC0NCj4gPiAtCQkvKiB3cml0ZSBiYWNrIGNvbXBsZXRlZCBkZXNjcmlwdG9y cyB0byB1c2VkIHJpbmcgKi8NCj4gPiAtCQlkbyB7DQo+ID4gLQkJCWZyb20gPSB2cS0+bGFzdF9h c3luY19kZXNjX2lkeCAmICh2cS0+c2l6ZSAtIDEpOw0KPiA+IC0JCQlucl9jb3B5ID0gbnJfbGVm dCArIGZyb20gPD0gdnEtPnNpemUgPyBucl9sZWZ0IDoNCj4gPiAtCQkJCXZxLT5zaXplIC0gZnJv bTsNCj4gPiAtCQkJdG8gPSB2cS0+bGFzdF91c2VkX2lkeCAmICh2cS0+c2l6ZSAtIDEpOw0KPiA+ IC0NCj4gPiAtCQkJaWYgKHRvICsgbnJfY29weSA8PSB2cS0+c2l6ZSkgew0KPiA+IC0JCQkJcnRl X21lbWNweSgmdnEtPnVzZWQtPnJpbmdbdG9dLA0KPiA+IC0JCQkJCQkmdnEtDQo+ID5hc3luY19k ZXNjc19zcGxpdFtmcm9tXSwNCj4gPiAtCQkJCQkJbnJfY29weSAqDQo+ID4gLQkJCQkJCXNpemVv ZihzdHJ1Y3QNCj4gdnJpbmdfdXNlZF9lbGVtKSk7DQo+ID4gLQkJCX0gZWxzZSB7DQo+ID4gLQkJ CQl1aW50MTZfdCBzaXplID0gdnEtPnNpemUgLSB0bzsNCj4gPiAtDQo+ID4gLQkJCQlydGVfbWVt Y3B5KCZ2cS0+dXNlZC0+cmluZ1t0b10sDQo+ID4gLQkJCQkJCSZ2cS0NCj4gPmFzeW5jX2Rlc2Nz X3NwbGl0W2Zyb21dLA0KPiA+IC0JCQkJCQlzaXplICoNCj4gPiAtCQkJCQkJc2l6ZW9mKHN0cnVj dA0KPiB2cmluZ191c2VkX2VsZW0pKTsNCj4gPiAtCQkJCXJ0ZV9tZW1jcHkodnEtPnVzZWQtPnJp bmcsDQo+ID4gLQkJCQkJCSZ2cS0+YXN5bmNfZGVzY3Nfc3BsaXRbZnJvbQ0KPiArDQo+ID4gLQkJ CQkJCXNpemVdLCAobnJfY29weSAtIHNpemUpICoNCj4gPiAtCQkJCQkJc2l6ZW9mKHN0cnVjdA0K PiB2cmluZ191c2VkX2VsZW0pKTsNCj4gPiAtCQkJfQ0KPiA+IC0NCj4gPiAtCQkJdnEtPmxhc3Rf YXN5bmNfZGVzY19pZHggKz0gbnJfY29weTsNCj4gPiAtCQkJdnEtPmxhc3RfdXNlZF9pZHggKz0g bnJfY29weTsNCj4gPiAtCQkJbnJfbGVmdCAtPSBucl9jb3B5Ow0KPiA+IC0JCX0gd2hpbGUgKG5y X2xlZnQgPiAwKTsNCj4gPiArCQl3cml0ZV9iYWNrX2NvbXBsZXRlZF9kZXNjc19zcGxpdCh2cSwg bl9kZXNjcyk7DQo+ID4NCj4gPiAgCQlfX2F0b21pY19hZGRfZmV0Y2goJnZxLT51c2VkLT5pZHgs IG5fZGVzY3MsDQo+IF9fQVRPTUlDX1JFTEVBU0UpOw0KPiA+ICAJCXZob3N0X3ZyaW5nX2NhbGxf c3BsaXQoZGV2LCB2cSk7DQo+ID4NCg0K