From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 0A8E741C49;
	Thu,  9 Feb 2023 09:00:59 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id EAACE410EA;
	Thu,  9 Feb 2023 09:00:58 +0100 (CET)
Received: from mga03.intel.com (mga03.intel.com [134.134.136.65])
 by mails.dpdk.org (Postfix) with ESMTP id A54CB4067B
 for <dev@dpdk.org>; Thu,  9 Feb 2023 09:00:56 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1675929656; x=1707465656;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=bGmXAv8x/5mswUWcFMkcz81gv0uP5fcK0NnJ+l84kNk=;
 b=CkUzOaifAsz3Z0YT742XZ/9S03D5nU/6c0IIDXOJc0MzhKRnArcWPBaF
 8/aAx2MIe/AvOb9ZLqiJXtciWULgSHnzW8MyJaxl/D0aLu9jlKUu0bYT5
 KTEkXLDcC972gwnnSQ7cj5qXqN+aSxOY5BbNzOCUs+vj4HQi/Kuzlz5M0
 2ILiYscv5WUMW726Ie9fwQgRxaVFlKtc1ziujCKcaVhENDErmHTA/L1E4
 4suUVPoRGqSwejqz5o2LefV6BtLqvVSqTGWjfM1dUwuSRCvN8QT2nX5cn
 WwiOPOG2aZegkIfu97sxRnIpSlVHY3gjWhruauBGRUC9I3EA+0idbgi7G Q==;
X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="332163211"
X-IronPort-AV: E=Sophos;i="5.97,283,1669104000"; d="scan'208";a="332163211"
Received: from fmsmga003.fm.intel.com ([10.253.24.29])
 by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 09 Feb 2023 00:00:49 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="756326379"
X-IronPort-AV: E=Sophos;i="5.97,283,1669104000"; d="scan'208";a="756326379"
Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16])
 by FMSMGA003.fm.intel.com with ESMTP; 09 Feb 2023 00:00:49 -0800
Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) 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.2507.16; Thu, 9 Feb 2023 00:00:48 -0800
Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by
 ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.16; Thu, 9 Feb 2023 00:00:48 -0800
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.16 via Frontend Transport; Thu, 9 Feb 2023 00:00:48 -0800
Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169)
 by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.16; Thu, 9 Feb 2023 00:00:47 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oS9w/Tf1bc6D2pY4akU4LeHfItyVmFdn8gW2IIX7WRz8nPeqANHXFeB+ZudYrnXsTAKujB5loN0aZ2fUlhnKdP060Igjjy7K9jQLZdScLfrYNQanxIIooObJi9L1PNl/Jrtqv8JYxNIH6LNnonpwEcqnALCwDNCxp2kXMlih/eCxoDtKQwdF3vK1BNlLLV2bfv6janRdL2as5X/iegwuvAVD4Fw34PF7Yv36KHkuY5+aw3AMP0jb5edSYTpGYMpBkgwg3zk6JKRjD29+tZF8Gtsl0D34r55+UZ+Fndf1j6zjNjXgfTE27F6sXpAzUQ2gZoG+dX7ZL8AlgJl8tAlDJw==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bGmXAv8x/5mswUWcFMkcz81gv0uP5fcK0NnJ+l84kNk=;
 b=lWzZwrfXg1Mj7S2zSxIFy5DHXIHv+1rExliZ+QxiSO9ND8TxylDNqYeX+SzwqZhqmJU+/4PBipU+vxxtD5/wxEwWBdKnA1SEFUqE5/bUxtAXdiAKH3vrVTkRsubvROhdgL28WZEdCstkILNcGYzK8kN0uh8Cm9UUbxGeESHBmwVAGzn0UoTQFMaSqihVZf1lTjdfyInmSbVx1qWuPed4WXBNvut6Ys1tM3KIXqU4JYDJ97akixrRvbgy+FmWtW0LQDRkdW6XnMIlJevfuOwrvQxpTsBNTkEIVl6kgWRpnUjULkN78m9gqZwLWXw3zz3SFKwooRgHd91epK8H6eCB9Q==
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
Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17)
 by DM6PR11MB4610.namprd11.prod.outlook.com (2603:10b6:5:2ab::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.17; Thu, 9 Feb
 2023 08:00:45 +0000
Received: from SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::c8f8:a3e1:5b23:a9c3]) by SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::c8f8:a3e1:5b23:a9c3%5]) with mapi id 15.20.6086.017; Thu, 9 Feb 2023
 08:00:45 +0000
From: "Xia, Chenbo" <chenbo.xia@intel.com>
To: David Marchand <david.marchand@redhat.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>,
 "stephen@networkplumber.org" <stephen@networkplumber.org>, "Hu, Jiayu"
 <jiayu.hu@intel.com>, "Wang, YuanX" <yuanx.wang@intel.com>, "Ding, Xuan"
 <xuan.ding@intel.com>, "mb@smartsharesystems.com" <mb@smartsharesystems.com>
Subject: RE: [PATCH v6 2/9] vhost: simplify need reply handling
Thread-Topic: [PATCH v6 2/9] vhost: simplify need reply handling
Thread-Index: AQHZOuFedk4N8pVvD0qMHSK2kdMUJK7GQ2tQ
Date: Thu, 9 Feb 2023 08:00:45 +0000
Message-ID: <SN6PR11MB3504FD773B9C8C41BD87D7049CD99@SN6PR11MB3504.namprd11.prod.outlook.com>
References: <20220328121758.26632-1-david.marchand@redhat.com>
 <20230207104532.2370869-1-david.marchand@redhat.com>
 <20230207104532.2370869-3-david.marchand@redhat.com>
In-Reply-To: <20230207104532.2370869-3-david.marchand@redhat.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SN6PR11MB3504:EE_|DM6PR11MB4610:EE_
x-ms-office365-filtering-correlation-id: 6ce6ffd6-e234-4c6f-6337-08db0a73bfc1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: zzL6oodeq7+8K0uUNuEl0coXgGOui5Ll1vSq+ko4/NwKgV0bpdlftVHQlpChQTbUI60GFa/Q/KQoPnhW/tM1sA5oBv9cuff6kIy6MRr5RP1nu0ylguWrGcV7O9MyRT2YbtGUTmP9puSkz9iSKlRU3w5dmAvvWY4Pa9knFp36fZgMiU1+HlBftVoDKO8YLZK7ZNbwV0yZDDvvu2pdyico10c++A1Xdawxb4XAZ15Zd/uwwgxqmFoJNlPsLk2+6puT0UysW5GBwaWaUtnasGDfeW6qbKM/n0hZn+0UbWMpCmpwkLOwd7z7R4ivWl3s91Xm1o1LspxxaFe33dcmqoIL0JWOHVHjLwurwHKIuU78Neu82ZjkNHJgwq8LFAz9vcF5kmmi34let8ulZtlseb1l44KWJL2yKT+B6oWFiU6yU293fBTqpR6Png/9ZuTgxpWh/3ZSNhv5wS9Hi7PXa0L/0lhYQGXcPi4ncnkfpMLVuKm8KQYX7wvCKj81MWO6dAweDNRL/itBLCPNwD00pq1IDIISHDjra0FNtEJ1xhcrawt66aX21pJKNYmpMyh1nMJ8uTic4bjVVGo42UqNybl8RuJ1t/ZrV9kju+txEUuwV5AKLZOAWl/G3X8in6WmL9+eGKLpEta3GZjNwa7hRJP++o4KoSgGb/CI4lPElm8XuK+QE7DsF8/l0qFG5SPy5d3NkXnmMhXpdOu1N5gv1BYfxg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230025)(366004)(39860400002)(136003)(376002)(396003)(346002)(451199018)(82960400001)(38100700002)(122000001)(41300700001)(6506007)(52536014)(8936002)(26005)(186003)(8676002)(33656002)(66476007)(4326008)(66556008)(76116006)(64756008)(66446008)(66946007)(66574015)(38070700005)(5660300002)(55016003)(316002)(86362001)(53546011)(478600001)(54906003)(7696005)(71200400001)(9686003)(110136005)(83380400001)(2906002);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b09XbmQ0MDd0cUVDLzVvRCtkTVN3cUw3V0JXUmNsa1ZuUWl5K2lsTXhzWmFO?=
 =?utf-8?B?NS9oY2MwYkhHNWV4bFUvaFhLemRweThKYTZreVJiU0ZRMmxJblJBdFdVWEpY?=
 =?utf-8?B?RVZsTmRwdFh0VlBBQXRuR2dBK3ZoVWdxY2tRWS9lRVAzajJDTUw4bFB6K0x0?=
 =?utf-8?B?amxyd2NVaFFCSzMySXU4eEVvaWl2L1JYbklDeng4Vk42QThFL3lOYjJONXo1?=
 =?utf-8?B?N2tyU3BOUDQ3Skt0N01zcUNQeEs5dlAwRGZCanNYdTlMQXhsQjZVQ3JGT3JR?=
 =?utf-8?B?OXlSSW0ySGE3VnhtWjRVZVdKSklHbGo1a24wd1gwbUlGMmpEa2VrcldPdWd2?=
 =?utf-8?B?N08zRGJvNmgyTWlDWXBPN3ZweHNjV09zLzZGakJLZjd0RXlkNG94dWZJTDJL?=
 =?utf-8?B?YlF4S3oxemRHSzYxVUJsa3NmODFzSWdtNFlxZkxxYWljd0xkdDRMZUg1Wjhy?=
 =?utf-8?B?ckUrKzByTFg3SU1DMUtKUHlnUmNVcDVwaVNJaE4zVjZYTWhMakd6c2pYaWR1?=
 =?utf-8?B?RDBSTlFja1dwRnRrMnpSVHRGTzBoUk41eS9RbkdSV0lDY21NbmZLYkZoLzE1?=
 =?utf-8?B?bFd1TkNtSjFjRXZZeU54RXkrdklmNTBNSnFRWTVGb3RQekpRSEM5ZmdLcEtQ?=
 =?utf-8?B?RzNNa2VUaWtMMWs1c3lXTHgvRUk2K3ZMY2RsbkZEaXJFWVhZVzR3Mkpwa05E?=
 =?utf-8?B?cHlQMUtiNFBSQ0RkbkhhOGNsOVJsa1o0d20wWjVXcFo2VW4yK3Avb0F1ekVn?=
 =?utf-8?B?SmM4THJDOG9SaStWcGhYRWlNM0VoNzBUQ3VtTGVDVkk2dmxSTzZnT3lYSHhu?=
 =?utf-8?B?eldBVE84bG9oUmVydFAyeXN0bEFEcHlkQlJIVnV1U3ZXZ0VoYnJNMTRmZ0Jn?=
 =?utf-8?B?a0VzOHNTWERUdjg3eE82QVJSZmxsOGNTTnl3SDA2ZEtYOXRTM3hpOXJZVGlZ?=
 =?utf-8?B?VVhWbXlnSENEa2dZTTlGcUtmdFVwZnBvUjhGRDI0UWJXWXdtSzhrWml3RGhX?=
 =?utf-8?B?Qi8vay9Xa3NKejdvYmhCOWpPQXpua055enpVMDYrR2k5UzVlblZ4Y0NuQlZt?=
 =?utf-8?B?TGgvbWFDa1pIYTVYb0Rjdi9OQVBHbG1NL3V6TGNyR2lYT1h0MEQvS2RBOFRs?=
 =?utf-8?B?SGIyS1MvTWpiaGZzTjFGMXFkVXpmeFczL0d3b1BQWmlDblYzblRROTJwU0dH?=
 =?utf-8?B?SFhJaWNFay9pbHZUbk5hSERSaTFESjR0WGxxelY3UnRFdHpJb1c1UllOYVFD?=
 =?utf-8?B?MnVSaXBXNG5ScVN5NDdYNEEzcVFHZlNrUHdoRVEzN1BTN0pSdFFJRXU4QlN1?=
 =?utf-8?B?RDdKV0xrOWt2b0JKd2dLQVozSlowV2pHbzNobmZxbjZEVmNTVks3MHFuRU9m?=
 =?utf-8?B?cE02RE14LzlnaS9Xd2l0TXBtdmIzUXpjNVVsMG9iYXZueXc4SWQ0UlY3MFNo?=
 =?utf-8?B?VjBZZG9UMGtYd2FQL1R2cElyTXZDaU1nU0QrNGtSWVl1TEtZcFE0UUp6T3Jy?=
 =?utf-8?B?YmtBdGpRRW94dWwwM2VLQU9VRDhEZndNWit3NTh2Z3dZSXVsVWdCbTVjRzhv?=
 =?utf-8?B?dzFnbElsQ1NxM2k1V0xNVFdWNUN1blJ1NStKY3BZVTRNdFpSS3E3THpoSXNz?=
 =?utf-8?B?TUlFdHBPTFNLWVZXaE94ZkVHL1A2R2Z6amhpVmFTZzhGL2RqSDl1cGEwcDBS?=
 =?utf-8?B?YW9TalB3NXpSYSthWVQxWVpUaGxlcWFleEQra3FoVUtZM3FHNG55T1djMGNw?=
 =?utf-8?B?Rm03U3p5Y0RJMFNtbHRkRzRyQ3JORlFOUlYxMzFkSkdoZzZhWFJYMkVzN3ha?=
 =?utf-8?B?RDZCOFBTQWlSK09YTU5RUUlIMTEvRHAxMVMzV3hEZVpmN211Z1VGa09TUVJR?=
 =?utf-8?B?VjBXU05mU1hQd2FqMUtGTmtKNFdMRzAyaUhvMzQ2SXJVMEx1cjZFNkN2UHFk?=
 =?utf-8?B?S2J5Ykd2MVdpK3kybXdkMWc4MVFZZFdHcnNRQlNqdGZqdnJYdC8zbU5jVFZa?=
 =?utf-8?B?V056ZmJRM3BoOWk3UlBlbnBIZ1ovb1R1R2tJN0RFV0NmRFpmSWNVbkVFcENw?=
 =?utf-8?B?RXQrL0dyeTYxSkZXQ2pqaGVGNTJjUm1pM1NUQWVxVCtnNTI1cjU5SUp4bTJV?=
 =?utf-8?Q?VDEeuaObk8LG0sY6g7wOHG4JN?=
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: SN6PR11MB3504.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6ce6ffd6-e234-4c6f-6337-08db0a73bfc1
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2023 08:00:45.7383 (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: cnza8oI6Rfd9EyM6b8jNIsNUNiEmSNFV+ObgDL4EsJTE7SOwTMMxhyZIUESooIkOcklkngO8CDdve/+Go6C6CQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4610
X-OriginatorOrg: intel.com
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEYXZpZCBNYXJjaGFuZCA8ZGF2
aWQubWFyY2hhbmRAcmVkaGF0LmNvbT4NCj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkgNywgMjAy
MyA2OjQ1IFBNDQo+IFRvOiBkZXZAZHBkay5vcmcNCj4gQ2M6IG1heGltZS5jb3F1ZWxpbkByZWRo
YXQuY29tOyBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZzsgWGlhLCBDaGVuYm8NCj4gPGNoZW5i
by54aWFAaW50ZWwuY29tPjsgSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+OyBXYW5nLCBZ
dWFuWA0KPiA8eXVhbngud2FuZ0BpbnRlbC5jb20+OyBEaW5nLCBYdWFuIDx4dWFuLmRpbmdAaW50
ZWwuY29tPjsNCj4gbWJAc21hcnRzaGFyZXN5c3RlbXMuY29tDQo+IFN1YmplY3Q6IFtQQVRDSCB2
NiAyLzldIHZob3N0OiBzaW1wbGlmeSBuZWVkIHJlcGx5IGhhbmRsaW5nDQo+IA0KPiBEZWRpY2F0
ZSBzZW5kX3Zob3N0X3NsYXZlX21lc3NhZ2UoKSBoZWxwZXIgdG8gdGhlIGNhc2Ugd2hlbiBubyBy
ZXBseSBpcw0KPiBuZWVkZWQuDQo+IA0KPiBBZGQgYSBzZW5kX3Zob3N0X3NsYXZlX21lc3NhZ2Vf
cHJvY2Vzc19yZXBseSgpIGhlbHBlciBmb3IgdGhlIG9wcG9zaXRlLg0KPiBUaGlzIG5ldyBoZWxw
ZXIgbWVyZ2VzIGJvdGggc2VuZF92aG9zdF9zbGF2ZV9tZXNzYWdlKCkgYW5kIHRoZSBjb2RlDQo+
IHByZXZpb3VzbHkgaW4gcHJvY2Vzc19zbGF2ZV9tZXNzYWdlX3JlcGx5KCkuDQo+IFRoZSBzbGF2
ZV9yZXFfbG9jayBsb2NrIGlzIHRoZW4gb25seSBoYW5kbGVkIGluIHRoaXMgaGVscGVyIHdoaWNo
IHdpbGwNCj4gbWFrZSBsb2NrIGNoZWNrcyB0cml2aWFsLg0KPiANCj4gU2lnbmVkLW9mZi1ieTog
RGF2aWQgTWFyY2hhbmQgPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+IEFja2VkLWJ5OiBN
b3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiBSZXZpZXdlZC1ieTog
TWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gLS0tDQo+ICBs
aWIvdmhvc3Qvdmhvc3RfdXNlci5jIHwgMTE5ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNjggZGVs
ZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3Zob3N0X3VzZXIuYyBiL2xp
Yi92aG9zdC92aG9zdF91c2VyLmMNCj4gaW5kZXggOGYzM2Q1ZjRkOS4uNjBlYzFiZjVmNiAxMDA2
NDQNCj4gLS0tIGEvbGliL3Zob3N0L3Zob3N0X3VzZXIuYw0KPiArKysgYi9saWIvdmhvc3Qvdmhv
c3RfdXNlci5jDQo+IEBAIC0yODc4LDE4ICsyODc4LDQ2IEBAIHNlbmRfdmhvc3RfcmVwbHkoc3Ry
dWN0IHZpcnRpb19uZXQgKmRldiwgaW50DQo+IHNvY2tmZCwgc3RydWN0IHZodV9tc2dfY29udGV4
dCAqY3R4DQo+ICB9DQo+IA0KPiAgc3RhdGljIGludA0KPiAtc2VuZF92aG9zdF9zbGF2ZV9tZXNz
YWdlKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsDQo+IC0JCXN0cnVjdCB2aHVfbXNnX2NvbnRleHQg
KmN0eCkNCj4gK3NlbmRfdmhvc3Rfc2xhdmVfbWVzc2FnZShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2
LCBzdHJ1Y3Qgdmh1X21zZ19jb250ZXh0DQo+ICpjdHgpDQo+ICt7DQo+ICsJcmV0dXJuIHNlbmRf
dmhvc3RfbWVzc2FnZShkZXYsIGRldi0+c2xhdmVfcmVxX2ZkLCBjdHgpOw0KPiArfQ0KPiArDQo+
ICtzdGF0aWMgaW50DQo+ICtzZW5kX3Zob3N0X3NsYXZlX21lc3NhZ2VfcHJvY2Vzc19yZXBseShz
dHJ1Y3QgdmlydGlvX25ldCAqZGV2LCBzdHJ1Y3QNCj4gdmh1X21zZ19jb250ZXh0ICpjdHgpDQo+
ICB7DQo+ICsJc3RydWN0IHZodV9tc2dfY29udGV4dCBtc2dfcmVwbHk7DQo+ICAJaW50IHJldDsN
Cj4gDQo+IC0JaWYgKGN0eC0+bXNnLmZsYWdzICYgVkhPU1RfVVNFUl9ORUVEX1JFUExZKQ0KPiAt
CQlydGVfc3BpbmxvY2tfbG9jaygmZGV2LT5zbGF2ZV9yZXFfbG9jayk7DQo+ICsJcnRlX3NwaW5s
b2NrX2xvY2soJmRldi0+c2xhdmVfcmVxX2xvY2spOw0KPiArCXJldCA9IHNlbmRfdmhvc3Rfc2xh
dmVfbWVzc2FnZShkZXYsIGN0eCk7DQo+ICsJaWYgKHJldCA8IDApIHsNCj4gKwkJVkhPU1RfTE9H
X0NPTkZJRyhkZXYtPmlmbmFtZSwgRVJSLCAiZmFpbGVkIHRvIHNlbmQgY29uZmlnDQo+IGNoYW5n
ZSAoJWQpXG4iLCByZXQpOw0KPiArCQlnb3RvIG91dDsNCj4gKwl9DQo+IA0KPiAtCXJldCA9IHNl
bmRfdmhvc3RfbWVzc2FnZShkZXYsIGRldi0+c2xhdmVfcmVxX2ZkLCBjdHgpOw0KPiAtCWlmIChy
ZXQgPCAwICYmIChjdHgtPm1zZy5mbGFncyAmIFZIT1NUX1VTRVJfTkVFRF9SRVBMWSkpDQo+IC0J
CXJ0ZV9zcGlubG9ja191bmxvY2soJmRldi0+c2xhdmVfcmVxX2xvY2spOw0KPiArCXJldCA9IHJl
YWRfdmhvc3RfbWVzc2FnZShkZXYsIGRldi0+c2xhdmVfcmVxX2ZkLCAmbXNnX3JlcGx5KTsNCj4g
KwlpZiAocmV0IDw9IDApIHsNCj4gKwkJaWYgKHJldCA8IDApDQo+ICsJCQlWSE9TVF9MT0dfQ09O
RklHKGRldi0+aWZuYW1lLCBFUlIsDQo+ICsJCQkJInZob3N0IHJlYWQgc2xhdmUgbWVzc2FnZSBy
ZXBseSBmYWlsZWRcbiIpOw0KPiArCQllbHNlDQo+ICsJCQlWSE9TVF9MT0dfQ09ORklHKGRldi0+
aWZuYW1lLCBJTkZPLCAidmhvc3QgcGVlcg0KPiBjbG9zZWRcbiIpOw0KPiArCQlyZXQgPSAtMTsN
Cj4gKwkJZ290byBvdXQ7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKG1zZ19yZXBseS5tc2cucmVxdWVz
dC5zbGF2ZSAhPSBjdHgtPm1zZy5yZXF1ZXN0LnNsYXZlKSB7DQo+ICsJCVZIT1NUX0xPR19DT05G
SUcoZGV2LT5pZm5hbWUsIEVSUiwNCj4gKwkJCSJyZWNlaXZlZCB1bmV4cGVjdGVkIG1zZyB0eXBl
ICgldSksIGV4cGVjdGVkICV1XG4iLA0KPiArCQkJbXNnX3JlcGx5Lm1zZy5yZXF1ZXN0LnNsYXZl
LCBjdHgtPm1zZy5yZXF1ZXN0LnNsYXZlKTsNCj4gKwkJcmV0ID0gLTE7DQo+ICsJCWdvdG8gb3V0
Ow0KPiArCX0NCj4gDQo+ICsJcmV0ID0gbXNnX3JlcGx5Lm1zZy5wYXlsb2FkLnU2NCA/IC0xIDog
MDsNCj4gK291dDoNCj4gKwlydGVfc3BpbmxvY2tfdW5sb2NrKCZkZXYtPnNsYXZlX3JlcV9sb2Nr
KTsNCj4gIAlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gQEAgLTMyMTMsNDIgKzMyNDEsNiBAQCB2
aG9zdF91c2VyX21zZ19oYW5kbGVyKGludCB2aWQsIGludCBmZCkNCj4gIAlyZXR1cm4gcmV0Ow0K
PiAgfQ0KPiANCj4gLXN0YXRpYyBpbnQgcHJvY2Vzc19zbGF2ZV9tZXNzYWdlX3JlcGx5KHN0cnVj
dCB2aXJ0aW9fbmV0ICpkZXYsDQo+IC0JCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2aHVfbXNnX2Nv
bnRleHQgKmN0eCkNCj4gLXsNCj4gLQlzdHJ1Y3Qgdmh1X21zZ19jb250ZXh0IG1zZ19yZXBseTsN
Cj4gLQlpbnQgcmV0Ow0KPiAtDQo+IC0JaWYgKChjdHgtPm1zZy5mbGFncyAmIFZIT1NUX1VTRVJf
TkVFRF9SRVBMWSkgPT0gMCkNCj4gLQkJcmV0dXJuIDA7DQo+IC0NCj4gLQlyZXQgPSByZWFkX3Zo
b3N0X21lc3NhZ2UoZGV2LCBkZXYtPnNsYXZlX3JlcV9mZCwgJm1zZ19yZXBseSk7DQo+IC0JaWYg
KHJldCA8PSAwKSB7DQo+IC0JCWlmIChyZXQgPCAwKQ0KPiAtCQkJVkhPU1RfTE9HX0NPTkZJRyhk
ZXYtPmlmbmFtZSwgRVJSLA0KPiAtCQkJCSJ2aG9zdCByZWFkIHNsYXZlIG1lc3NhZ2UgcmVwbHkg
ZmFpbGVkXG4iKTsNCj4gLQkJZWxzZQ0KPiAtCQkJVkhPU1RfTE9HX0NPTkZJRyhkZXYtPmlmbmFt
ZSwgSU5GTywgInZob3N0IHBlZXINCj4gY2xvc2VkXG4iKTsNCj4gLQkJcmV0ID0gLTE7DQo+IC0J
CWdvdG8gb3V0Ow0KPiAtCX0NCj4gLQ0KPiAtCXJldCA9IDA7DQo+IC0JaWYgKG1zZ19yZXBseS5t
c2cucmVxdWVzdC5zbGF2ZSAhPSBjdHgtPm1zZy5yZXF1ZXN0LnNsYXZlKSB7DQo+IC0JCVZIT1NU
X0xPR19DT05GSUcoZGV2LT5pZm5hbWUsIEVSUiwNCj4gLQkJCSJyZWNlaXZlZCB1bmV4cGVjdGVk
IG1zZyB0eXBlICgldSksIGV4cGVjdGVkICV1XG4iLA0KPiAtCQkJbXNnX3JlcGx5Lm1zZy5yZXF1
ZXN0LnNsYXZlLCBjdHgtPm1zZy5yZXF1ZXN0LnNsYXZlKTsNCj4gLQkJcmV0ID0gLTE7DQo+IC0J
CWdvdG8gb3V0Ow0KPiAtCX0NCj4gLQ0KPiAtCXJldCA9IG1zZ19yZXBseS5tc2cucGF5bG9hZC51
NjQgPyAtMSA6IDA7DQo+IC0NCj4gLW91dDoNCj4gLQlydGVfc3BpbmxvY2tfdW5sb2NrKCZkZXYt
PnNsYXZlX3JlcV9sb2NrKTsNCj4gLQlyZXR1cm4gcmV0Ow0KPiAtfQ0KPiAtDQo+ICBpbnQNCj4g
IHZob3N0X3VzZXJfaW90bGJfbWlzcyhzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCB1aW50NjRfdCBp
b3ZhLCB1aW50OF90IHBlcm0pDQo+ICB7DQo+IEBAIC0zMjc3LDEwICszMjY5LDkgQEAgdmhvc3Rf
dXNlcl9pb3RsYl9taXNzKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsDQo+IHVpbnQ2NF90IGlvdmEs
IHVpbnQ4X3QgcGVybSkNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgaW50DQo+
IC12aG9zdF91c2VyX3NsYXZlX2NvbmZpZ19jaGFuZ2Uoc3RydWN0IHZpcnRpb19uZXQgKmRldiwg
Ym9vbCBuZWVkX3JlcGx5KQ0KPiAraW50DQo+ICtydGVfdmhvc3Rfc2xhdmVfY29uZmlnX2NoYW5n
ZShpbnQgdmlkLCBib29sIG5lZWRfcmVwbHkpDQo+ICB7DQo+IC0JaW50IHJldDsNCj4gIAlzdHJ1
Y3Qgdmh1X21zZ19jb250ZXh0IGN0eCA9IHsNCj4gIAkJLm1zZyA9IHsNCj4gIAkJCS5yZXF1ZXN0
LnNsYXZlID0gVkhPU1RfVVNFUl9TTEFWRV9DT05GSUdfQ0hBTkdFX01TRywNCj4gQEAgLTMyODgs
MjkgKzMyNzksMjMgQEAgdmhvc3RfdXNlcl9zbGF2ZV9jb25maWdfY2hhbmdlKHN0cnVjdCB2aXJ0
aW9fbmV0DQo+ICpkZXYsIGJvb2wgbmVlZF9yZXBseSkNCj4gIAkJCS5zaXplID0gMCwNCj4gIAkJ
fQ0KPiAgCX07DQo+IC0NCj4gLQlpZiAobmVlZF9yZXBseSkNCj4gLQkJY3R4Lm1zZy5mbGFncyB8
PSBWSE9TVF9VU0VSX05FRURfUkVQTFk7DQo+IC0NCj4gLQlyZXQgPSBzZW5kX3Zob3N0X3NsYXZl
X21lc3NhZ2UoZGV2LCAmY3R4KTsNCj4gLQlpZiAocmV0IDwgMCkgew0KPiAtCQlWSE9TVF9MT0df
Q09ORklHKGRldi0+aWZuYW1lLCBFUlIsICJmYWlsZWQgdG8gc2VuZCBjb25maWcNCj4gY2hhbmdl
ICglZClcbiIsIHJldCk7DQo+IC0JCXJldHVybiByZXQ7DQo+IC0JfQ0KPiAtDQo+IC0JcmV0dXJu
IHByb2Nlc3Nfc2xhdmVfbWVzc2FnZV9yZXBseShkZXYsICZjdHgpOw0KPiAtfQ0KPiAtDQo+IC1p
bnQNCj4gLXJ0ZV92aG9zdF9zbGF2ZV9jb25maWdfY2hhbmdlKGludCB2aWQsIGJvb2wgbmVlZF9y
ZXBseSkNCj4gLXsNCj4gIAlzdHJ1Y3QgdmlydGlvX25ldCAqZGV2Ow0KPiArCWludCByZXQ7DQo+
IA0KPiAgCWRldiA9IGdldF9kZXZpY2UodmlkKTsNCj4gIAlpZiAoIWRldikNCj4gIAkJcmV0dXJu
IC1FTk9ERVY7DQo+IA0KPiAtCXJldHVybiB2aG9zdF91c2VyX3NsYXZlX2NvbmZpZ19jaGFuZ2Uo
ZGV2LCBuZWVkX3JlcGx5KTsNCj4gKwlpZiAoIW5lZWRfcmVwbHkpIHsNCj4gKwkJcmV0ID0gc2Vu
ZF92aG9zdF9zbGF2ZV9tZXNzYWdlKGRldiwgJmN0eCk7DQo+ICsJfSBlbHNlIHsNCj4gKwkJY3R4
Lm1zZy5mbGFncyB8PSBWSE9TVF9VU0VSX05FRURfUkVQTFk7DQo+ICsJCXJldCA9IHNlbmRfdmhv
c3Rfc2xhdmVfbWVzc2FnZV9wcm9jZXNzX3JlcGx5KGRldiwgJmN0eCk7DQo+ICsJfQ0KPiArDQo+
ICsJaWYgKHJldCA8IDApDQo+ICsJCVZIT1NUX0xPR19DT05GSUcoZGV2LT5pZm5hbWUsIEVSUiwg
ImZhaWxlZCB0byBzZW5kIGNvbmZpZw0KPiBjaGFuZ2UgKCVkKVxuIiwgcmV0KTsNCj4gKwlyZXR1
cm4gcmV0Ow0KPiAgfQ0KPiANCj4gIHN0YXRpYyBpbnQgdmhvc3RfdXNlcl9zbGF2ZV9zZXRfdnJp
bmdfaG9zdF9ub3RpZmllcihzdHJ1Y3QgdmlydGlvX25ldA0KPiAqZGV2LA0KPiBAQCAtMzMzOSwx
MyArMzMyNCwxMSBAQCBzdGF0aWMgaW50DQo+IHZob3N0X3VzZXJfc2xhdmVfc2V0X3ZyaW5nX2hv
c3Rfbm90aWZpZXIoc3RydWN0IHZpcnRpb19uZXQgKmRldiwNCj4gIAkJY3R4LmZkX251bSA9IDE7
DQo+ICAJfQ0KPiANCj4gLQlyZXQgPSBzZW5kX3Zob3N0X3NsYXZlX21lc3NhZ2UoZGV2LCAmY3R4
KTsNCj4gLQlpZiAocmV0IDwgMCkgew0KPiArCXJldCA9IHNlbmRfdmhvc3Rfc2xhdmVfbWVzc2Fn
ZV9wcm9jZXNzX3JlcGx5KGRldiwgJmN0eCk7DQo+ICsJaWYgKHJldCA8IDApDQo+ICAJCVZIT1NU
X0xPR19DT05GSUcoZGV2LT5pZm5hbWUsIEVSUiwgImZhaWxlZCB0byBzZXQgaG9zdA0KPiBub3Rp
ZmllciAoJWQpXG4iLCByZXQpOw0KPiAtCQlyZXR1cm4gcmV0Ow0KPiAtCX0NCj4gDQo+IC0JcmV0
dXJuIHByb2Nlc3Nfc2xhdmVfbWVzc2FnZV9yZXBseShkZXYsICZjdHgpOw0KPiArCXJldHVybiBy
ZXQ7DQo+ICB9DQo+IA0KPiAgaW50IHJ0ZV92aG9zdF9ob3N0X25vdGlmaWVyX2N0cmwoaW50IHZp
ZCwgdWludDE2X3QgcWlkLCBib29sIGVuYWJsZSkNCj4gLS0NCj4gMi4zOS4xDQoNClJldmlld2Vk
LWJ5OiBDaGVuYm8gWGlhIDxjaGVuYm8ueGlhQGludGVsLmNvbT4gDQo=