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 D9C89A0C43; Wed, 15 Sep 2021 05:28:23 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C7648410E0; Wed, 15 Sep 2021 05:28:23 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 3620A4003C for ; Wed, 15 Sep 2021 05:28:22 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10107"; a="244559086" X-IronPort-AV: E=Sophos;i="5.85,294,1624345200"; d="scan'208";a="244559086" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2021 20:28:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,294,1624345200"; d="scan'208";a="609940326" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga001.fm.intel.com with ESMTP; 14 Sep 2021 20:28:04 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 14 Sep 2021 20:28:04 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 14 Sep 2021 20:28:04 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.170) 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.2242.12; Tue, 14 Sep 2021 20:28:01 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iqeFrK/zqIUkL85ncILSZB70vpi9ViBNiFSLqo1Q7JnOdqC0lxqTpH6V2ZORxQhtPuBimHGYyZGeC3PoJpIlej47pXBAsz/rxiQiGLGl0QvA3F63l71buv0DxPKeb5QyUSIPK94ysucSF+xWHN6xgaxKqi09AGIrYQWZoL90HiJYe0SSNhL7PksGkasoz8Dg3aArsQkEtCGtP9dnKYqb0IBYV8D1hjTajd9XEEc2mYDSUxwfAV8wxHbAcOM7JoV0Ovc6RX5uz/qiYO05yJT5iF2N0P/iH38l0lYiVvupIE6QXzzdA3tCA+OoAb+vFL8QVwoMYiHKOT8eZKPrep69uA== 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; bh=03Rsde6ij6I6zFGxBzM+DmKPmydvdR/4Whcf4n7reZM=; b=lU/BgOKN6pH5PU6A++4JA0K4MJ7UdwRYktMBLXwjjcpUiVt9PkH0bHpHPh3cPWuQLCLeUuH6K24pMDfWJCIe2KSQYDNeaxJN0REBDbXxb61cZjU283W4z87Lz0130EnVWe7NxKkWvoyioFY706pO6GhlbLJjTZRKZfAGvitH/eQlTB/gYWJBtgd4s2/R2i6nCQ77HQsSwmusYvlLFymft5OCQRdqYM6JnwX/aKxXoDvIYEVf/dwTZO/DioC7ORtX/oBJz/M/RNx+CXBc7l1xP28EkbIEeEhOfIrLlR7CCRhDXwYgJIJ7+i8TDaG/WVNIyGn8ry/4fNMpOPy9nFwv7Q== 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=03Rsde6ij6I6zFGxBzM+DmKPmydvdR/4Whcf4n7reZM=; b=Ea/ZJVbAK0rbaxtrOLV4zxfJ5ImuuT0FFzSYBNcGxHgR3omcd/Ru7YR8ZOiTE1Kmh2fdEE9ohKjoT44GB5oZ4lqZBLL3hIYG0CiX25DxC/qbvQJ1y1KH8ZR1dtEib5uiWXycnrmtic/fnWvgEC6i0MVkaWHhyvWUaQMCgyfPYRo= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by BL1PR11MB5509.namprd11.prod.outlook.com (2603:10b6:208:31f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14; Wed, 15 Sep 2021 03:27:49 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801%3]) with mapi id 15.20.4523.014; Wed, 15 Sep 2021 03:27:49 +0000 From: "Xia, Chenbo" To: "Ma, WenwuX" , "dev@dpdk.org" CC: "maxime.coquelin@redhat.com" , "Jiang, Cheng1" , "Hu, Jiayu" , "Pai G, Sunil" , "Yang, YvonneX" Thread-Topic: [PATCH 4/4] examples/vhost: support vhost async dequeue data path Thread-Index: AQHXov0VAAMcFoEtmUOdR+pTRcTpequkeJAg Date: Wed, 15 Sep 2021 03:27:48 +0000 Message-ID: References: <20210906204837.112466-1-wenwux.ma@intel.com> <20210906204837.112466-5-wenwux.ma@intel.com> In-Reply-To: <20210906204837.112466-5-wenwux.ma@intel.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f205808d-550c-4111-ac74-08d977f8cb03 x-ms-traffictypediagnostic: BL1PR11MB5509: 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:4303; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: l+ThkItpYIHClbWD3CwZXO8PBxzS35I0ed1TUfYQfEw0sQxFECJPyN1OgF0yyFqNVaAZuhI2O0iYX2Z06LPsHUrk56EIyrjIYO0uWmz8cR6w26Wo3zzAbSf90fZjBwZwPTa6odd0jBIYnrrldCd5Hs14DZrhw4h/kI/Jw9fbocl9qVxO9L7NZdbAhua9PO4WmHF+PGmDXfZZeqNGeXSAvmc6NjA7rsovfVS9EbmC1yhUgCzvNMWN3DjTfOpzO8fRXmC07Dfm5MIRBhNzg5HohIU92vyfX1F3jPRSmlZJ0igf6k3kyMAwdpUps4DhkgSya/1rk0Q+40aK1VhbE8T+qomI9VXf/M1FFCcjHbCfPrVmRi/VUpG7D4RtPadPf2wxGFwu8aVExQKQVW9+kVqkzCgmZ3vcwubooexgnLYzM0lzzUVm0VtRCOh9emBPTWRMOB9ll7UKj9XDbhwod9UbNdVzbvuaYNFCY7L1sZY5jH8TxcqnYvoCBN4KAf30c6x/N8sXOntYFqXEfK5uAe6dCCsZ7sx+30a/Fm8eXom3DHg8KsPv1SepRAWCSTsq979Kve6NSwK97DaFTV3bZdhxQPWxAIHkucx+fV90YcRTrSubW9HHClt8Jr0mBhksF3BudGtMQkMMGoIKc+T8G9rscUMSsl+1eA+3eMFbjxe1+W3L1UPXtyVdL+yY1YVrsD29nWjKdSLFpZVbB66k/c0pVA== 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)(366004)(39860400002)(376002)(136003)(396003)(346002)(33656002)(38100700002)(110136005)(54906003)(7696005)(86362001)(4326008)(316002)(122000001)(38070700005)(2906002)(30864003)(478600001)(107886003)(26005)(8936002)(9686003)(186003)(55016002)(5660300002)(76116006)(66946007)(83380400001)(52536014)(53546011)(6506007)(64756008)(66446008)(66556008)(71200400001)(8676002)(66476007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?enNHTDdwbmljdEJIL0g1YmlsaDkyeGg5clVOMXN5M2hOcmhoSW9yUTM3VzVG?= =?utf-8?B?STI5UTQybDRWM1VLeWRXTnF6dGhjZyttMTVaaUdKc24xMU1tOVQ5YmhEYzAy?= =?utf-8?B?MDhNYmFHZ0NhODlJSjFWdHlQK1lKNXRsWXVDVHpRVzlJdjROQi8yY3U3SFp1?= =?utf-8?B?RWVyTWJVdWZ5S0JQNGJrMytaYnZaVG9TZ0twdWoxWUVvRS96M3pLSmV6UnY1?= =?utf-8?B?V3Jxd01DWkNhMENRZUU2N2tJMTV6bEJIQUU1V1A3WGRGU3JGRXBpaXVhMFps?= =?utf-8?B?bnduMVNKTzNjdEF2UTNpU0plcFNqNEtuVms3TEJaUTlXa2F4QUNUdXVXK1l1?= =?utf-8?B?UUNyY2FlekJmNkE0dGdYRnBvN3BqUXREbmtNcEh4R0xMSDBPa3pROFFsNW1J?= =?utf-8?B?Q3R0MDFYSGtCcmpvRG1QVXhsQVkvVUU3TjJGTzhNS3VsdFpPZkpidnBQWWNh?= =?utf-8?B?dnJWSVp2eFU2L0N1OUZjTFovb0E0SzJWcTQ5VHVJNk11RC9BYzg5cXB3bHd4?= =?utf-8?B?MW9EdEhIT0RCU3h4dnpWYW9xTTlpZUZzNmludjdIYWU1SmRtMFZOODQybXZi?= =?utf-8?B?K3o5Y01ZLzRCZHM0MkJTaEE2WnkxWGRwYUluRitWTXBJS2NMMlJOWkIzN1FY?= =?utf-8?B?SDdLQzZvd1dZRGRvYW1xL1BvWnh5ZTZLUm5IZmtoVkFYMmR0eDQzSEFTSjlS?= =?utf-8?B?d0pWOVlKbFhyazJWbGJHbUp6bTBmVTBPSEx0MTA5NE1TMmdnbkJqSldxWkta?= =?utf-8?B?MVB4bWJtTVRxNWRUUTFwd01KZVJzOE44SjQ1VGtvMHJUSldBNkdPTStVTENT?= =?utf-8?B?ZFh1TnJaSTNmTjkvaGxJK3RuN3hFMEZhVm1xWS9EcnRXQVJCUkU1NXRnRUZt?= =?utf-8?B?bHRYeTRydzVGWUZWdlRkZUR5M3dYRFVXdnNoM3V3bWt3M2VxRnRoR2dWVUN2?= =?utf-8?B?cDUwWTNQMEtSRFBxc3VQMS83aThIb1U3WmxsSUg2OG51NTRvMVAzcU9jV2dJ?= =?utf-8?B?WFMxY1VVdzlmU3hDQ2cyK1lzWmtnYnVEek8zemdKMWlWRTFjYWxWVklxOTRE?= =?utf-8?B?ZXhDZCt0R0FIZnZvMGVLVDN1MWp6MWpUTGJ1M3NZKzgyTnZSUXNwaURsaExr?= =?utf-8?B?Y2ZuSU5WaXE3M0hHMHlYOWZTQTY5R2d1V1JSMGxhUWkwbU85Mkl1U1E0M1Az?= =?utf-8?B?Z1FZbWNvK1kzSHV2ZjUyUGRZK0VzUklxUFVSbnJCY2VnU0k1TlBFeXFVdGpJ?= =?utf-8?B?aUFOYlNBQ0c5OHlib29kRDZndG9PdERVa0ZmdkhMdEl4NTBIbXJ6UUVYUlZ5?= =?utf-8?B?S0NGRDQxSkw1R2labSs5Nng3ODdpd3A4c1dRMGMwRStvQnpwN1Q0KzFDb3cr?= =?utf-8?B?NWl3MXhvSTViM0JLU2N1akV2b1p6dzRWQmxDckhyTnhLUHpOMkFFaUVIWTVM?= =?utf-8?B?Rm9MWlM5NDVQUms3di9EclRvdGg3RDVyQVRwM0lTYWhaU3dBaG02aGFHUW5O?= =?utf-8?B?U2NuZXlBeExlc015dW1LOXBNcE9WSGkvdmtQY2JvcjFCMC9IekRjbzkvQ21H?= =?utf-8?B?STFMTXNXY2duRkJ1bmdibnZzMHFkR25DT0VnVW9GMG4yYkNGRjRWUFpQT3pG?= =?utf-8?B?R1JXdVVnZUZsUWFoWmVKWHo0S25URGttdFZlS2QzUlM5V3dPQlRMd0puUXVC?= =?utf-8?B?V1EyQ3cxLytGRDdCQ2o2b1R2bWNtd0toUC9Nak5rU3lyM0dXc0lhaDkxVWFY?= =?utf-8?Q?cHRDym+LKSDD/mzfNw=3D?= 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: f205808d-550c-4111-ac74-08d977f8cb03 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Sep 2021 03:27:48.8637 (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: NmlR64lKzdHuU/5QJ6fhRY5SY1kyWeaaQxKryFCUatOpUMEVvIfutbLGaMuaLEpyYn9s+qoE3b2GQdmezYC0oQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5509 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 4/4] examples/vhost: support vhost async dequeue data path 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" SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWEsIFdlbnd1WCA8 d2Vud3V4Lm1hQGludGVsLmNvbT4NCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDcsIDIwMjEg NDo0OSBBTQ0KPiBUbzogZGV2QGRwZGsub3JnDQo+IENjOiBtYXhpbWUuY29xdWVsaW5AcmVkaGF0 LmNvbTsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPjsgSmlhbmcsDQo+IENoZW5n MSA8Y2hlbmcxLmppYW5nQGludGVsLmNvbT47IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29t PjsgUGFpIEcsIFN1bmlsDQo+IDxzdW5pbC5wYWkuZ0BpbnRlbC5jb20+OyBZYW5nLCBZdm9ubmVY IDx5dm9ubmV4LnlhbmdAaW50ZWwuY29tPjsgTWEsIFdlbnd1WA0KPiA8d2Vud3V4Lm1hQGludGVs LmNvbT4NCj4gU3ViamVjdDogW1BBVENIIDQvNF0gZXhhbXBsZXMvdmhvc3Q6IHN1cHBvcnQgdmhv c3QgYXN5bmMgZGVxdWV1ZSBkYXRhIHBhdGgNCj4gDQo+IFRoaXMgcGF0Y2ggaXMgdG8gYWRkIHZo b3N0IGFzeW5jIGRlcXVldWUgZGF0YS1wYXRoIGluIHZob3N0IHNhbXBsZS4NCj4gdnN3aXRjaCBj YW4gbGV2ZXJhZ2UgSU9BVCB0byBhY2NlbGVyYXRlIHZob3N0IGFzeW5jIGRlcXVldWUgZGF0YS1w YXRoLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogV2Vud3UgTWEgPHdlbnd1eC5tYUBpbnRlbC5jb20+ DQo+IFJldmlld2VkLWJ5OiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQu Y29tPg0KPiAtLS0NCj4gIGRvYy9ndWlkZXMvc2FtcGxlX2FwcF91Zy92aG9zdC5yc3QgfCAgIDkg Ky0NCj4gIGV4YW1wbGVzL3Zob3N0L2lvYXQuYyAgICAgICAgICAgICAgfCAgNjEgKysrKysrKy0t DQo+ICBleGFtcGxlcy92aG9zdC9pb2F0LmggICAgICAgICAgICAgIHwgIDI1ICsrKysNCj4gIGV4 YW1wbGVzL3Zob3N0L21haW4uYyAgICAgICAgICAgICAgfCAyMDEgKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0NCj4gIGV4YW1wbGVzL3Zob3N0L21haW4uaCAgICAgICAgICAgICAgfCAgIDMg Ky0NCj4gIDUgZmlsZXMgY2hhbmdlZCwgMjE2IGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygt KQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvc2FtcGxlX2FwcF91Zy92aG9zdC5yc3QN Cj4gYi9kb2MvZ3VpZGVzL3NhbXBsZV9hcHBfdWcvdmhvc3QucnN0DQo+IGluZGV4IDlhZmRlOWM3 ZjUuLjYzZGNmMTgxZTEgMTAwNjQ0DQo+IC0tLSBhL2RvYy9ndWlkZXMvc2FtcGxlX2FwcF91Zy92 aG9zdC5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9zYW1wbGVfYXBwX3VnL3Zob3N0LnJzdA0KPiBA QCAtMTY5LDkgKzE2OSwxMiBAQCBkZW1vbnN0cmF0ZXMgaG93IHRvIHVzZSB0aGUgYXN5bmMgdmhv c3QgQVBJcy4gSXQncyB1c2VkDQo+IGluIGNvbWJpbmF0aW9uIHdpdGggZG1hcw0KPiAgKiotLWRt YXMqKg0KPiAgVGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBhc3NpZ25lZCBE TUEgZGV2aWNlIG9mIGEgdmhvc3QgZGV2aWNlLg0KPiAgQXN5bmMgdmhvc3QtdXNlciBuZXQgZHJp dmVyIHdpbGwgYmUgdXNlZCBpZiAtLWRtYXMgaXMgc2V0LiBGb3IgZXhhbXBsZQ0KPiAtLS1kbWFz IFt0eGQwQDAwOjA0LjAsdHhkMUAwMDowNC4xXSBtZWFucyB1c2UgRE1BIGNoYW5uZWwgMDA6MDQu MCBmb3Igdmhvc3QNCj4gLWRldmljZSAwIGVucXVldWUgb3BlcmF0aW9uIGFuZCB1c2UgRE1BIGNo YW5uZWwgMDA6MDQuMSBmb3Igdmhvc3QgZGV2aWNlIDENCj4gLWVucXVldWUgb3BlcmF0aW9uLg0K PiArLS1kbWFzIFt0eGQwQDAwOjA0LjAsdHhkMUAwMDowNC4xLHJ4ZDBAMDA6MDQuMixyeGQxQDAw OjA0LjNdIG1lYW5zIHVzZQ0KPiArRE1BIGNoYW5uZWwgMDA6MDQuMC8wMDowNC4yIGZvciB2aG9z dCBkZXZpY2UgMCBlbnF1ZXVlL2RlcXVldWUgb3BlcmF0aW9uDQo+ICthbmQgdXNlIERNQSBjaGFu bmVsIDAwOjA0LjEvMDA6MDQuMyBmb3Igdmhvc3QgZGV2aWNlIDEgZW5xdWV1ZS9kZXF1ZXVlDQo+ ICtvcGVyYXRpb24uIFRoZSBpbmRleCBvZiB0aGUgZGV2aWNlIGNvcnJlc3BvbmRzIHRvIHRoZSBz b2NrZXQgZmlsZSBpbiBvcmRlciwNCj4gK3RoYXQgbWVhbnMgdmhvc3QgZGV2aWNlIDAgaXMgY3Jl YXRlZCB0aHJvdWdoIHRoZSBmaXJzdCBzb2NrZXQgZmlsZSwgdmhvc3QNCj4gK2RldmljZSAxIGlz IGNyZWF0ZWQgdGhyb3VnaCB0aGUgc2Vjb25kIHNvY2tldCBmaWxlLCBhbmQgc28gb24uDQo+IA0K PiAgQ29tbW9uIElzc3Vlcw0KPiAgLS0tLS0tLS0tLS0tLQ0KPiBkaWZmIC0tZ2l0IGEvZXhhbXBs ZXMvdmhvc3QvaW9hdC5jIGIvZXhhbXBsZXMvdmhvc3QvaW9hdC5jDQo+IGluZGV4IDZhZGMzMGI2 MjIuLjU0MGI2MWZmZjYgMTAwNjQ0DQo+IC0tLSBhL2V4YW1wbGVzL3Zob3N0L2lvYXQuYw0KPiAr KysgYi9leGFtcGxlcy92aG9zdC9pb2F0LmMNCj4gQEAgLTIxLDYgKzIxLDggQEAgc3RydWN0IHBh Y2tldF90cmFja2VyIHsNCj4gDQo+ICBzdHJ1Y3QgcGFja2V0X3RyYWNrZXIgY2JfdHJhY2tlcltN QVhfVkhPU1RfREVWSUNFXTsNCj4gDQo+ICtpbnQgdmlkMnNvY2tldGlkW01BWF9WSE9TVF9ERVZJ Q0VdOw0KPiArDQo+ICBpbnQNCj4gIG9wZW5faW9hdChjb25zdCBjaGFyICp2YWx1ZSkNCj4gIHsN Cj4gQEAgLTI5LDcgKzMxLDcgQEAgb3Blbl9pb2F0KGNvbnN0IGNoYXIgKnZhbHVlKQ0KPiAgCWNo YXIgKmFkZHJzID0gaW5wdXQ7DQo+ICAJY2hhciAqcHRyc1syXTsNCj4gIAljaGFyICpzdGFydCwg KmVuZCwgKnN1YnN0cjsNCj4gLQlpbnQ2NF90IHZpZCwgdnJpbmdfaWQ7DQo+ICsJaW50NjRfdCBz b2NrZXRpZCwgdnJpbmdfaWQ7DQo+ICAJc3RydWN0IHJ0ZV9pb2F0X3Jhd2Rldl9jb25maWcgY29u ZmlnOw0KPiAgCXN0cnVjdCBydGVfcmF3ZGV2X2luZm8gaW5mbyA9IHsgLmRldl9wcml2YXRlID0g JmNvbmZpZyB9Ow0KPiAgCWNoYXIgbmFtZVszMl07DQo+IEBAIC02MCw2ICs2Miw3IEBAIG9wZW5f aW9hdChjb25zdCBjaGFyICp2YWx1ZSkNCj4gIAkJZ290byBvdXQ7DQo+ICAJfQ0KPiAgCXdoaWxl IChpIDwgYXJnc19ucikgew0KPiArCQlib29sIGlzX3R4ZDsNCj4gIAkJY2hhciAqYXJnX3RlbXAg PSBkbWFfYXJnW2ldOw0KPiAgCQl1aW50OF90IHN1Yl9ucjsNCj4gIAkJc3ViX25yID0gcnRlX3N0 cnNwbGl0KGFyZ190ZW1wLCBzdHJsZW4oYXJnX3RlbXApLCBwdHJzLCAyLCAnQCcpOw0KPiBAQCAt NjgsMjcgKzcxLDM5IEBAIG9wZW5faW9hdChjb25zdCBjaGFyICp2YWx1ZSkNCj4gIAkJCWdvdG8g b3V0Ow0KPiAgCQl9DQo+IA0KPiAtCQlzdGFydCA9IHN0cnN0cihwdHJzWzBdLCAidHhkIik7DQo+ IC0JCWlmIChzdGFydCA9PSBOVUxMKSB7DQo+ICsJCWludCBhc3luY19mbGFnOw0KPiArCQljaGFy ICp0eGQsICpyeGQ7DQo+ICsJCXR4ZCA9IHN0cnN0cihwdHJzWzBdLCAidHhkIik7DQo+ICsJCXJ4 ZCA9IHN0cnN0cihwdHJzWzBdLCAicnhkIik7DQo+ICsJCWlmICh0eGQpIHsNCj4gKwkJCWlzX3R4 ZCA9IHRydWU7DQo+ICsJCQlzdGFydCA9IHR4ZDsNCj4gKwkJCWFzeW5jX2ZsYWcgPSBBU1lOQ19F TlFVRVVFX1ZIT1NUOw0KPiArCQl9IGVsc2UgaWYgKHJ4ZCkgew0KPiArCQkJaXNfdHhkID0gZmFs c2U7DQo+ICsJCQlzdGFydCA9IHJ4ZDsNCj4gKwkJCWFzeW5jX2ZsYWcgPSBBU1lOQ19ERVFVRVVF X1ZIT1NUOw0KPiArCQl9IGVsc2Ugew0KPiAgCQkJcmV0ID0gLTE7DQo+ICAJCQlnb3RvIG91dDsN Cj4gIAkJfQ0KPiANCj4gIAkJc3RhcnQgKz0gMzsNCj4gLQkJdmlkID0gc3RydG9sKHN0YXJ0LCAm ZW5kLCAwKTsNCj4gKwkJc29ja2V0aWQgPSBzdHJ0b2woc3RhcnQsICZlbmQsIDApOw0KPiAgCQlp ZiAoZW5kID09IHN0YXJ0KSB7DQo+ICAJCQlyZXQgPSAtMTsNCj4gIAkJCWdvdG8gb3V0Ow0KPiAg CQl9DQo+IA0KPiAtCQl2cmluZ19pZCA9IDAgKyBWSVJUSU9fUlhROw0KPiArCQl2cmluZ19pZCA9 IGlzX3R4ZCA/IFZJUlRJT19SWFEgOiBWSVJUSU9fVFhROw0KPiArDQo+ICAJCWlmIChydGVfcGNp X2FkZHJfcGFyc2UocHRyc1sxXSwNCj4gLQkJCQkmKGRtYV9pbmZvICsgdmlkKS0+ZG1hc1t2cmlu Z19pZF0uYWRkcikgPCAwKSB7DQo+ICsJCQkmKGRtYV9pbmZvICsgc29ja2V0aWQpLT5kbWFzW3Zy aW5nX2lkXS5hZGRyKSA8IDApIHsNCj4gIAkJCXJldCA9IC0xOw0KPiAgCQkJZ290byBvdXQ7DQo+ ICAJCX0NCj4gDQo+IC0JCXJ0ZV9wY2lfZGV2aWNlX25hbWUoJihkbWFfaW5mbyArIHZpZCktPmRt YXNbdnJpbmdfaWRdLmFkZHIsDQo+ICsJCXJ0ZV9wY2lfZGV2aWNlX25hbWUoJihkbWFfaW5mbyAr IHNvY2tldGlkKS0+ZG1hc1t2cmluZ19pZF0uYWRkciwNCj4gIAkJCQluYW1lLCBzaXplb2YobmFt ZSkpOw0KPiAgCQlkZXZfaWQgPSBydGVfcmF3ZGV2X2dldF9kZXZfaWQobmFtZSk7DQo+ICAJCWlm IChkZXZfaWQgPT0gKHVpbnQxNl90KSgtRU5PREVWKSB8fA0KPiBAQCAtMTAzLDggKzExOCw5IEBA IG9wZW5faW9hdChjb25zdCBjaGFyICp2YWx1ZSkNCj4gIAkJCWdvdG8gb3V0Ow0KPiAgCQl9DQo+ IA0KPiAtCQkoZG1hX2luZm8gKyB2aWQpLT5kbWFzW3ZyaW5nX2lkXS5kZXZfaWQgPSBkZXZfaWQ7 DQo+IC0JCShkbWFfaW5mbyArIHZpZCktPmRtYXNbdnJpbmdfaWRdLmlzX3ZhbGlkID0gdHJ1ZTsN Cj4gKwkJKGRtYV9pbmZvICsgc29ja2V0aWQpLT5kbWFzW3ZyaW5nX2lkXS5kZXZfaWQgPSBkZXZf aWQ7DQo+ICsJCShkbWFfaW5mbyArIHNvY2tldGlkKS0+ZG1hc1t2cmluZ19pZF0uaXNfdmFsaWQg PSB0cnVlOw0KPiArCQkoZG1hX2luZm8gKyBzb2NrZXRpZCktPmFzeW5jX2ZsYWcgfD0gYXN5bmNf ZmxhZzsNCj4gIAkJY29uZmlnLnJpbmdfc2l6ZSA9IElPQVRfUklOR19TSVpFOw0KPiAgCQljb25m aWcuaGRsc19kaXNhYmxlID0gdHJ1ZTsNCj4gIAkJaWYgKHJ0ZV9yYXdkZXZfY29uZmlndXJlKGRl dl9pZCwgJmluZm8sIHNpemVvZihjb25maWcpKSA8IDApIHsNCj4gQEAgLTEyNiwxMyArMTQyLDE2 IEBAIGlvYXRfdHJhbnNmZXJfZGF0YV9jYihpbnQgdmlkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4g IAkJc3RydWN0IHJ0ZV92aG9zdF9hc3luY19zdGF0dXMgKm9wYXF1ZV9kYXRhLCB1aW50MTZfdCBj b3VudCkNCj4gIHsNCj4gIAl1aW50MzJfdCBpX2Rlc2M7DQo+IC0JdWludDE2X3QgZGV2X2lkID0g ZG1hX2JpbmRbdmlkXS5kbWFzW3F1ZXVlX2lkICogMiArIFZJUlRJT19SWFFdLmRldl9pZDsNCj4g IAlzdHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyICpzcmMgPSBOVUxMOw0KPiAgCXN0cnVjdCBydGVf dmhvc3RfaW92X2l0ZXIgKmRzdCA9IE5VTEw7DQo+ICAJdW5zaWduZWQgbG9uZyBpX3NlZzsNCj4g IAl1bnNpZ25lZCBzaG9ydCBtYXNrID0gTUFYX0VOUVVFVUVEX1NJWkUgLSAxOw0KPiAtCXVuc2ln bmVkIHNob3J0IHdyaXRlID0gY2JfdHJhY2tlcltkZXZfaWRdLm5leHRfd3JpdGU7DQo+IA0KPiAr CWlmIChxdWV1ZV9pZCA+PSBNQVhfUklOR19DT1VOVCkNCj4gKwkJcmV0dXJuIC0xOw0KPiArDQo+ ICsJdWludDE2X3QgZGV2X2lkID0gZG1hX2JpbmRbdmlkMnNvY2tldGlkW3ZpZF1dLmRtYXNbcXVl dWVfaWRdLmRldl9pZDsNCj4gKwl1bnNpZ25lZCBzaG9ydCB3cml0ZSA9IGNiX3RyYWNrZXJbZGV2 X2lkXS5uZXh0X3dyaXRlOw0KPiAgCWlmICghb3BhcXVlX2RhdGEpIHsNCj4gIAkJZm9yIChpX2Rl c2MgPSAwOyBpX2Rlc2MgPCBjb3VudDsgaV9kZXNjKyspIHsNCj4gIAkJCXNyYyA9IGRlc2NzW2lf ZGVzY10uc3JjOw0KPiBAQCAtMTcwLDE2ICsxODksMTYgQEAgaW9hdF9jaGVja19jb21wbGV0ZWRf Y29waWVzX2NiKGludCB2aWQsIHVpbnQxNl90DQo+IHF1ZXVlX2lkLA0KPiAgCQlzdHJ1Y3QgcnRl X3Zob3N0X2FzeW5jX3N0YXR1cyAqb3BhcXVlX2RhdGEsDQo+ICAJCXVpbnQxNl90IG1heF9wYWNr ZXRzKQ0KPiAgew0KPiAtCWlmICghb3BhcXVlX2RhdGEpIHsNCj4gKwlpZiAoIW9wYXF1ZV9kYXRh ICYmIChxdWV1ZV9pZCA8IE1BWF9SSU5HX0NPVU5UKSkgew0KDQpTaG91bGQgYmU6IGlmICghb3Bh cXVlX2RhdGEgJiYgcXVldWVfaWQgPCBNQVhfUklOR19DT1VOVCkgew0KDQo+ICAJCXVpbnRwdHJf dCBkdW1wWzI1NV07DQo+ICAJCWludCBuX3NlZzsNCj4gIAkJdW5zaWduZWQgc2hvcnQgcmVhZCwg d3JpdGU7DQo+ICAJCXVuc2lnbmVkIHNob3J0IG5iX3BhY2tldCA9IDA7DQo+ICAJCXVuc2lnbmVk IHNob3J0IG1hc2sgPSBNQVhfRU5RVUVVRURfU0laRSAtIDE7DQo+ICAJCXVuc2lnbmVkIHNob3J0 IGk7DQo+ICsJCXVpbnQxNl90IGRldl9pZDsNCj4gDQo+IC0JCXVpbnQxNl90IGRldl9pZCA9IGRt YV9iaW5kW3ZpZF0uZG1hc1txdWV1ZV9pZCAqIDINCj4gLQkJCQkrIFZJUlRJT19SWFFdLmRldl9p ZDsNCj4gKwkJZGV2X2lkID0gZG1hX2JpbmRbdmlkMnNvY2tldGlkW3ZpZF1dLmRtYXNbcXVldWVf aWRdLmRldl9pZDsNCj4gIAkJbl9zZWcgPSBydGVfaW9hdF9jb21wbGV0ZWRfb3BzKGRldl9pZCwg MjU1LCBOVUxMLCBOVUxMLCBkdW1wLA0KPiBkdW1wKTsNCj4gIAkJaWYgKG5fc2VnIDwgMCkgew0K PiAgCQkJUlRFX0xPRyhFUlIsDQo+IEBAIC0yMTUsNCArMjM0LDE4IEBAIGlvYXRfY2hlY2tfY29t cGxldGVkX2NvcGllc19jYihpbnQgdmlkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gIAlyZXR1cm4g LTE7DQo+ICB9DQo+IA0KPiArdWludDMyX3QgZ2V0X2FzeW5jX2ZsYWdfYnlfdmlkKGludCB2aWQp DQo+ICt7DQo+ICsJcmV0dXJuIGRtYV9iaW5kW3ZpZDJzb2NrZXRpZFt2aWRdXS5hc3luY19mbGFn Ow0KDQphc3luY19mbGFnIGlzIHNvbWV0aW1lcyBpbnQgYW5kIHNvbWV0aW1lcyB1aW50MzJfdC4g UGxlYXNlIGNoZWNrIGNvZGUgdGhhdCB1c2VzDQp0aGUgZmxhZyBhbmQgbWFrZSBpdCBhbGwgdWlu dDMyX3QuDQoNCj4gK30NCj4gKw0KPiArdWludDMyX3QgZ2V0X2FzeW5jX2ZsYWdfYnlfc29ja2V0 aWQoaW50IHNvY2tldGlkKQ0KPiArew0KPiArCXJldHVybiBkbWFfYmluZFtzb2NrZXRpZF0uYXN5 bmNfZmxhZzsNCj4gK30NCj4gKw0KPiArdm9pZCBpbml0X3ZpZDJzb2NrZXRpZF9hcnJheShpbnQg dmlkLCBpbnQgc29ja2V0aWQpDQo+ICt7DQo+ICsJdmlkMnNvY2tldGlkW3ZpZF0gPSBzb2NrZXRp ZDsNCj4gK30NCj4gICNlbmRpZiAvKiBSVEVfUkFXX0lPQVQgKi8NCj4gZGlmZiAtLWdpdCBhL2V4 YW1wbGVzL3Zob3N0L2lvYXQuaCBiL2V4YW1wbGVzL3Zob3N0L2lvYXQuaA0KPiBpbmRleCA2MmUx NjNjNTg1Li5mYTUwODZlNjYyIDEwMDY0NA0KPiAtLS0gYS9leGFtcGxlcy92aG9zdC9pb2F0LmgN Cj4gKysrIGIvZXhhbXBsZXMvdmhvc3QvaW9hdC5oDQo+IEBAIC0xMiw2ICsxMiw5IEBADQo+ICAj ZGVmaW5lIE1BWF9WSE9TVF9ERVZJQ0UgMTAyNA0KPiAgI2RlZmluZSBJT0FUX1JJTkdfU0laRSA0 MDk2DQo+ICAjZGVmaW5lIE1BWF9FTlFVRVVFRF9TSVpFIDQwOTYNCj4gKyNkZWZpbmUgTUFYX1JJ TkdfQ09VTlQJMg0KPiArI2RlZmluZSBBU1lOQ19FTlFVRVVFX1ZIT1NUCTENCj4gKyNkZWZpbmUg QVNZTkNfREVRVUVVRV9WSE9TVAkyDQo+IA0KPiAgc3RydWN0IGRtYV9pbmZvIHsNCj4gIAlzdHJ1 Y3QgcnRlX3BjaV9hZGRyIGFkZHI7DQo+IEBAIC0yMCw2ICsyMyw3IEBAIHN0cnVjdCBkbWFfaW5m byB7DQo+ICB9Ow0KPiANCj4gIHN0cnVjdCBkbWFfZm9yX3Zob3N0IHsNCj4gKwlpbnQgYXN5bmNf ZmxhZzsNCj4gIAlzdHJ1Y3QgZG1hX2luZm8gZG1hc1tSVEVfTUFYX1FVRVVFU19QRVJfUE9SVCAq IDJdOw0KPiAgCXVpbnQxNl90IG5yOw0KPiAgfTsNCj4gQEAgLTM2LDYgKzQwLDEwIEBAIGludDMy X3QNCj4gIGlvYXRfY2hlY2tfY29tcGxldGVkX2NvcGllc19jYihpbnQgdmlkLCB1aW50MTZfdCBx dWV1ZV9pZCwNCj4gIAkJc3RydWN0IHJ0ZV92aG9zdF9hc3luY19zdGF0dXMgKm9wYXF1ZV9kYXRh LA0KPiAgCQl1aW50MTZfdCBtYXhfcGFja2V0cyk7DQo+ICsNCj4gK3VpbnQzMl90IGdldF9hc3lu Y19mbGFnX2J5X3ZpZChpbnQgdmlkKTsNCj4gK3VpbnQzMl90IGdldF9hc3luY19mbGFnX2J5X3Nv Y2tldGlkKGludCBzb2NrZXRpZCk7DQo+ICt2b2lkIGluaXRfdmlkMnNvY2tldGlkX2FycmF5KGlu dCB2aWQsIGludCBzb2NrZXRpZCk7DQo+ICAjZWxzZQ0KPiAgc3RhdGljIGludCBvcGVuX2lvYXQo Y29uc3QgY2hhciAqdmFsdWUgX19ydGVfdW51c2VkKQ0KPiAgew0KPiBAQCAtNTksNSArNjcsMjIg QEAgaW9hdF9jaGVja19jb21wbGV0ZWRfY29waWVzX2NiKGludCB2aWQgX19ydGVfdW51c2VkLA0K PiAgew0KPiAgCXJldHVybiAtMTsNCj4gIH0NCj4gKw0KPiArc3RhdGljIHVpbnQzMl90DQo+ICtn ZXRfYXN5bmNfZmxhZ19ieV92aWQoaW50IHZpZCBfX3J0ZV91bnVzZWQpDQo+ICt7DQo+ICsJcmV0 dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB1aW50MzJfdA0KPiArZ2V0X2FzeW5jX2ZsYWdf Ynlfc29ja2V0aWQoaW50IHNvY2tldGlkIF9fcnRlX3VudXNlZCkNCj4gK3sNCj4gKwlyZXR1cm4g MDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK2luaXRfdmlkMnNvY2tldGlkX2FycmF5 KGludCB2aWQgX19ydGVfdW51c2VkLCBpbnQgc29ja2V0aWQgX19ydGVfdW51c2VkKQ0KPiArew0K PiArfQ0KPiAgI2VuZGlmDQo+ICAjZW5kaWYgLyogX0lPQVRfSF8gKi8NCj4gZGlmZiAtLWdpdCBh L2V4YW1wbGVzL3Zob3N0L21haW4uYyBiL2V4YW1wbGVzL3Zob3N0L21haW4uYw0KPiBpbmRleCBl MjQ2YjY0MGVhLi5iMzQ1MzQxMTFkIDEwMDY0NA0KPiAtLS0gYS9leGFtcGxlcy92aG9zdC9tYWlu LmMNCj4gKysrIGIvZXhhbXBsZXMvdmhvc3QvbWFpbi5jDQo+IEBAIC05Myw4ICs5Myw2IEBAIHN0 YXRpYyBpbnQgY2xpZW50X21vZGU7DQo+IA0KPiAgc3RhdGljIGludCBidWlsdGluX25ldF9kcml2 ZXI7DQo+IA0KPiAtc3RhdGljIGludCBhc3luY192aG9zdF9kcml2ZXI7DQo+IC0NCj4gIHN0YXRp YyBjaGFyICpkbWFfdHlwZTsNCj4gDQo+ICAvKiBTcGVjaWZ5IHRpbWVvdXQgKGluIHVzZWNvbmRz KSBiZXR3ZWVuIHJldHJpZXMgb24gUlguICovDQo+IEBAIC02NzksNyArNjc3LDYgQEAgdXNfdmhv c3RfcGFyc2VfYXJncyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICAJCQkJdXNfdmhvc3RfdXNh Z2UocHJnbmFtZSk7DQo+ICAJCQkJcmV0dXJuIC0xOw0KPiAgCQkJfQ0KPiAtCQkJYXN5bmNfdmhv c3RfZHJpdmVyID0gMTsNCj4gIAkJCWJyZWFrOw0KPiANCj4gIAkJY2FzZSBPUFRfQ0xJRU5UX05V TToNCj4gQEAgLTg1NSw3ICs4NTIsOCBAQCBjb21wbGV0ZV9hc3luY19wa3RzKHN0cnVjdCB2aG9z dF9kZXYgKnZkZXYpDQo+ICAJCQkJCVZJUlRJT19SWFEsIHBfY3BsLCBNQVhfUEtUX0JVUlNUKTsN Cj4gIAlpZiAoY29tcGxldGVfY291bnQpIHsNCj4gIAkJZnJlZV9wa3RzKHBfY3BsLCBjb21wbGV0 ZV9jb3VudCk7DQo+IC0JCV9fYXRvbWljX3N1Yl9mZXRjaCgmdmRldi0+cGt0c19pbmZsaWdodCwg Y29tcGxldGVfY291bnQsDQo+IF9fQVRPTUlDX1NFUV9DU1QpOw0KPiArCQlfX2F0b21pY19zdWJf ZmV0Y2goJnZkZXYtPnBrdHNfZW5xX2luZmxpZ2h0LA0KPiArCQkJCWNvbXBsZXRlX2NvdW50LCBf X0FUT01JQ19TRVFfQ1NUKTsNCj4gIAl9DQo+IA0KPiAgfQ0KPiBAQCAtOTAwLDcgKzg5OCw3IEBA IGRyYWluX3Zob3N0KHN0cnVjdCB2aG9zdF9kZXYgKnZkZXYpDQo+ICAJCQkJX19BVE9NSUNfU0VR X0NTVCk7DQo+ICAJfQ0KPiANCj4gLQlpZiAoIWFzeW5jX3Zob3N0X2RyaXZlcikNCj4gKwlpZiAo KGdldF9hc3luY19mbGFnX2J5X3ZpZCh2ZGV2LT52aWQpICYgQVNZTkNfRU5RVUVVRV9WSE9TVCkg PT0gMCkNCj4gIAkJZnJlZV9wa3RzKG0sIG5yX3htaXQpOw0KPiAgfQ0KPiANCj4gQEAgLTExODAs OCArMTE3OCw4IEBAIGFzeW5jX2VucXVldWVfcGt0cyhzdHJ1Y3Qgdmhvc3RfZGV2ICp2ZGV2LCB1 aW50MTZfdA0KPiBxdWV1ZV9pZCwNCj4gIAljb21wbGV0ZV9hc3luY19wa3RzKHZkZXYpOw0KPiAg CWVucXVldWVfY291bnQgPSBydGVfdmhvc3Rfc3VibWl0X2VucXVldWVfYnVyc3QodmRldi0+dmlk LA0KPiAgCQkJCXF1ZXVlX2lkLCBwa3RzLCByeF9jb3VudCk7DQo+IC0JX19hdG9taWNfYWRkX2Zl dGNoKCZ2ZGV2LT5wa3RzX2luZmxpZ2h0LCBlbnF1ZXVlX2NvdW50LA0KPiAtCQkJCQlfX0FUT01J Q19TRVFfQ1NUKTsNCj4gKwlfX2F0b21pY19hZGRfZmV0Y2goJnZkZXYtPnBrdHNfZW5xX2luZmxp Z2h0LA0KPiArCQkJZW5xdWV1ZV9jb3VudCwgX19BVE9NSUNfU0VRX0NTVCk7DQo+IA0KPiAgCWVu cXVldWVfZmFpbCA9IHJ4X2NvdW50IC0gZW5xdWV1ZV9jb3VudDsNCj4gIAlpZiAoZW5xdWV1ZV9m YWlsKQ0KPiBAQCAtMTIzNywxMCArMTIzNSwyMyBAQCBkcmFpbl9ldGhfcngoc3RydWN0IHZob3N0 X2RldiAqdmRldikNCj4gIAkJCQlfX0FUT01JQ19TRVFfQ1NUKTsNCj4gIAl9DQo+IA0KPiAtCWlm ICghYXN5bmNfdmhvc3RfZHJpdmVyKQ0KPiArCWlmICgoZ2V0X2FzeW5jX2ZsYWdfYnlfdmlkKHZk ZXYtPnZpZCkgJiBBU1lOQ19FTlFVRVVFX1ZIT1NUKSA9PSAwKQ0KPiAgCQlmcmVlX3BrdHMocGt0 cywgcnhfY291bnQpOw0KPiAgfQ0KPiANCj4gK3VpbnQxNl90IGFzeW5jX2RlcXVldWVfcGt0cyhz dHJ1Y3Qgdmhvc3RfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiArCQkJCXN0cnVjdCBy dGVfbWVtcG9vbCAqbWJ1Zl9wb29sLA0KPiArCQkJCXN0cnVjdCBydGVfbWJ1ZiAqKnBrdHMsIHVp bnQxNl90IGNvdW50KQ0KPiArew0KPiArCWludCBucl9pbmZsaWdodDsNCj4gKwl1aW50MTZfdCBk ZXF1ZXVlX2NvdW50Ow0KPiArCWRlcXVldWVfY291bnQgPSBydGVfdmhvc3RfYXN5bmNfdHJ5X2Rl cXVldWVfYnVyc3QoZGV2LT52aWQsIHF1ZXVlX2lkLA0KPiArCQkJbWJ1Zl9wb29sLCBwa3RzLCBj b3VudCwgJm5yX2luZmxpZ2h0KTsNCj4gKwlpZiAobGlrZWx5KG5yX2luZmxpZ2h0ICE9IC0xKSkN Cj4gKwkJZGV2LT5wa3RzX2RlcV9pbmZsaWdodCA9IG5yX2luZmxpZ2h0Ow0KPiArCXJldHVybiBk ZXF1ZXVlX2NvdW50Ow0KPiArfQ0KPiArDQo+ICB1aW50MTZfdCBzeW5jX2RlcXVldWVfcGt0cyhz dHJ1Y3Qgdmhvc3RfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiAgCQkJc3RydWN0IHJ0 ZV9tZW1wb29sICptYnVmX3Bvb2wsDQo+ICAJCQlzdHJ1Y3QgcnRlX21idWYgKipwa3RzLCB1aW50 MTZfdCBjb3VudCkNCj4gQEAgLTEzMzYsNiArMTM0NywzMiBAQCBzd2l0Y2hfd29ya2VyKHZvaWQg KmFyZyBfX3J0ZV91bnVzZWQpDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IA0KPiArc3RhdGljIHZv aWQNCj4gK3Zob3N0X2NsZWFyX3F1ZXVlX3RocmVhZF91bnNhZmUoc3RydWN0IHZob3N0X2RldiAq dmRldiwgdWludDE2X3QgcXVldWVfaWQpDQo+ICt7DQo+ICsJdWludDE2X3Qgbl9wa3QgPSAwOw0K PiArCXN0cnVjdCBydGVfbWJ1ZiAqbV9lbnFfY3BsW3ZkZXYtPnBrdHNfZW5xX2luZmxpZ2h0XTsN Cj4gKwlzdHJ1Y3QgcnRlX21idWYgKm1fZGVxX2NwbFt2ZGV2LT5wa3RzX2RlcV9pbmZsaWdodF07 DQo+ICsNCj4gKwlpZiAoKHF1ZXVlX2lkICUgVklSVElPX1FOVU0pID09IDApIHsNCg0KWW91IGFy ZSBhc3N1bWluZyBWSVJUSU9fUU5VTSBlcXVhbHMgMiBoZXJlLiBUaGUgY29ycmVjdCBsb2dpYyBz aG91bGQgYmUNCidxdWV1ZV9pZCAlIDIgPT0gMCcgb3IgJ3F1ZXVlX2lkICYgMHgxID09IDAnDQoN ClRoYW5rcywNCkNoZW5ibw0KDQo+ICsJCXdoaWxlICh2ZGV2LT5wa3RzX2VucV9pbmZsaWdodCkg ew0KPiArCQkJbl9wa3QgPSBydGVfdmhvc3RfY2xlYXJfcXVldWVfdGhyZWFkX3Vuc2FmZSh2ZGV2 LT52aWQsDQo+ICsJCQkJcXVldWVfaWQsIG1fZW5xX2NwbCwgdmRldi0+cGt0c19lbnFfaW5mbGln aHQpOw0KPiArCQkJZnJlZV9wa3RzKG1fZW5xX2NwbCwgbl9wa3QpOw0KPiArCQkJX19hdG9taWNf c3ViX2ZldGNoKCZ2ZGV2LT5wa3RzX2VucV9pbmZsaWdodCwNCj4gKwkJCQkJbl9wa3QsIF9fQVRP TUlDX1NFUV9DU1QpOw0KPiArCQl9DQoNCg==