From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1A074A04B5; Fri, 11 Sep 2020 09:44:12 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 035691C0D2; Fri, 11 Sep 2020 09:44:12 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 80FFF1C0D2 for ; Fri, 11 Sep 2020 09:44:10 +0200 (CEST) IronPort-SDR: I42QF4v0s1DDu1EJXUHczgQ0nAA+OSIRkk082y087H8xLA0le4GJC8P4owFoAn9XFnVI20ly/v rmOceAJIlrsw== X-IronPort-AV: E=McAfee;i="6000,8403,9740"; a="220265957" X-IronPort-AV: E=Sophos;i="5.76,414,1592895600"; d="scan'208";a="220265957" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Sep 2020 00:44:09 -0700 IronPort-SDR: /Lnho06Wo0slJ4/fr8d6TMeyjLhMSZQh6K6Jif45LqRTFCXxOi9MkjC1mxG7aptlq49EJVbz3H zhLkV5JqwgYA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,414,1592895600"; d="scan'208";a="505423861" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga006.fm.intel.com with ESMTP; 11 Sep 2020 00:44:09 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 11 Sep 2020 00:44:08 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 11 Sep 2020 00:44:08 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) 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 via Frontend Transport; Fri, 11 Sep 2020 00:44:08 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.173) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 11 Sep 2020 00:44:06 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V96YX9R6Is1NgT9SGZ55jf2MVClxPBc+QtSVh8bMnbrTLxt7XkCOADx0mob5Qtw9/Yn8i92ju3Es4/HN53VERSAZWhKIn+5tyHUpzozOVSl7UJsYhlIKlFrxJDWrYxwI6KQyLmeL2JUw3YCS1eqeoTBlCY6Oqhk3By3gB/xKa8926QZzAjwEokK2suF9nCwxHn96Tka8thBYiSf2pF91TT7N8wTLacFE5B47YJzS9GKN8saAx/z61ljJCUySxB+D1qqQR2DyoKxmoj/UVNEbneDsSOhtpqKHY4dpoLXUD6Iwae/oQBvaFNZ0UcQQOUNQsycEqxWlq5h7K2ixDZLv9A== 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=9Nx5R2YdmjBT9DKAVmF6d0vQSrwZ5c/x+spXOHP1f/c=; b=DH0uGjK+mGiaqxC0tdOlH9y+3/qycQPwDf2NY738h0J2A3R/t3HMPoBNHfw0r5iCp1tllCbX1eqqUeV2KaddAPukArKJhlvPhlmVyzpAldfGwPXJk1ufL+az+cAthu+lQVCw/FQA0F3JTEBDvbcCTIdbgvmSkJIbsd5r50qcUDSrcmrRvqjxqOg5pSxuX3d70iNKUfJc36XjALF25PMuvmWSgrxLOQbwV1GKnebW9lj627sv0hTFozUJo7mOsp63HbivsThn8DHrPSeWenxvj3K6AgjVjw860E4XKmD/gy0BopNrW8UxtidfDgQzLSpVFf9g3JqXxcIrJ8p296K4Tg== 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=9Nx5R2YdmjBT9DKAVmF6d0vQSrwZ5c/x+spXOHP1f/c=; b=BppMMFgdA3zIecv3Dc9zIFMpZ8uSQVF/2PNDjzk9GE0Qd9kvk7g+WaRpjEQCAN2nFh1b24/fCDVyVkK5943BhFt+UfX7ReX5llXn28xktvV5EFRmVYHi8R+GqUyvmaCQpeKMeNz9zuh6C567rFszhhgp9aHYsHqV/9JfSUOd+l8= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3695.namprd11.prod.outlook.com (2603:10b6:208:f2::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3326.19; Fri, 11 Sep 2020 07:44:04 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::b898:36f5:61cb:42ca]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::b898:36f5:61cb:42ca%7]) with mapi id 15.20.3370.016; Fri, 11 Sep 2020 07:44:04 +0000 From: "Xia, Chenbo" To: David Christensen , "maxime.coquelin@redhat.com" , "Wang, Zhihong" , "dev@dpdk.org" Thread-Topic: [PATCH] net/vhost: fix xstats wrong after clearing stats Thread-Index: AQHWgUr57vdsStjvyEO7302PlpYwPqljGO2g Date: Fri, 11 Sep 2020 07:44:03 +0000 Message-ID: References: <20200902170309.16513-1-drc@linux.vnet.ibm.com> In-Reply-To: <20200902170309.16513-1-drc@linux.vnet.ibm.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: linux.vnet.ibm.com; dkim=none (message not signed) header.d=none;linux.vnet.ibm.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: cacb8e30-1bfa-44d4-7c6a-08d8562674e0 x-ms-traffictypediagnostic: MN2PR11MB3695: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: lTsCE9sFqhiWStXgBlavg2RJUM5XojVuUNOXNZqLj9rcCpEJA8GH3aV8ELfe051h1n7qJKtdaLarfEOBJkfZep6L/bs7xIz10t7gF32kx/SNjAFdCoIeylG64GWO/7sBUUrAIrZCqq8NnxgOqUVdRivmBw45G0zoWIx6RqNCQh/R62PVkjYuxZTk2OOP4q3xxPiRtpvbqSGR166ZtHNu/r9/qFrg7poB4xiizAD7q7hjDBgEq6zBViFtbyjrwHC8R+FTY36k8KWHv+XahJdHir53kjdc8LtsqiQMYMmN8JBC94EPhNhXKxQM5g2I3pbumw7WMM2Fy6J+XuHngUUeykJ6X3tVC1Mr5/lFodUv7FnD0DXdD4xjTAmu4SXynwlf 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)(376002)(346002)(136003)(39860400002)(366004)(396003)(26005)(55016002)(8936002)(64756008)(7696005)(66556008)(66476007)(71200400001)(478600001)(86362001)(33656002)(316002)(66446008)(76116006)(52536014)(66946007)(110136005)(6506007)(186003)(2906002)(9686003)(53546011)(5660300002)(83380400001)(8676002)(21314003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: lF+tV/x7Yo9/T4u56Q1ZxLKSF/5i8U+hB4SRJ+7iDMt/Dka0k4lvqt3vfQM93ON4/u4SDUAh5NF0W43F5fJkSglfvNQBal0vnLUCD1RKrO5Y77QCPEardwJ51qMrhpp+zj5kL4ksH+Jw+bhnQwUslHn8RuCtww3TahMxPIBUlCd8ZZo5DZfNizP8Bk5sDAji7/sa2Q/x9LuqIsv8V+6Gp3K5UBG7aHD1LpNUTwJVtpmJp1vFRsBcGPR8ANUS5qn623WK4fTZwDzDrqCjNpZM+qutSkXNE90urRJbe83JUJhL7BfktIEaldspboAKiw3NpBReKSd/Q0uOzPMl6QpI0Uh7VqkVXFYG9aolfEX5ljlt3e0cnww3L4xHNXvpNV/4YXDxNM8PwF8/MF/Oyw1uzlCixz+pKfmvhkWuZOKkAEGCPJRP6f6EEE17Njob6NSUbw8wahkXJyvkNTbZdf7hpZiyGik6Z1q4fUDMzRAvwLBgO7hz2o4wQlPE10xzQJrSMYYyIEHXP3wAKz+E9BKr4Ro8a4sbYg7YzxzCWkWN1+N9xyWZebMBhecx7LCrZMkFZh2KdNjIG2Kjs/HIIDmihk2q89o9XM5T5V7tpdns/CnwSyCKQfdN8M8nPNAzMAojQIQ//4/P9HkZBqwSkEtftQ== 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: cacb8e30-1bfa-44d4-7c6a-08d8562674e0 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Sep 2020 07:44:04.0951 (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: KZdCUz8KvTMbsMeqxnt8dAZFFrZigUkOuEiTBZ2DDubzQ/agb/xQctGLZYyb0Fz/ByLXKj5Sb061GlBYBEdbsQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3695 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] net/vhost: fix xstats wrong after clearing stats X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" SGkgRGF2aWQsDQoNClRoYW5rcyBmb3Igd29ya2luZyBvbiB0aGlzLiBDb21tZW50cyBpbmxpbmUu DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRGF2aWQgQ2hyaXN0ZW5z ZW4gPGRyY0BsaW51eC52bmV0LmlibS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIg MywgMjAyMCAxOjAzIEFNDQo+IFRvOiBtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbTsgWGlhLCBD aGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPjsgV2FuZywNCj4gWmhpaG9uZyA8emhpaG9uZy53 YW5nQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogRGF2aWQgQ2hyaXN0ZW5zZW4gPGRy Y0BsaW51eC52bmV0LmlibS5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSF0gbmV0L3Zob3N0OiBmaXgg eHN0YXRzIHdyb25nIGFmdGVyIGNsZWFyaW5nIHN0YXRzDQo+IA0KPiBUaGUgUE1EIEFQSSBhbGxv d3Mgc3RhdHMgYW5kIHhzdGF0cyB2YWx1ZXMgdG8gYmUgY2xlYXJlZCBzZXBhcmF0ZWx5Lg0KPiBU aGlzIGlzIGEgcHJvYmxlbSBmb3IgdGhlIHZob3N0IFBNRCBzaW5jZSBzb21lIG9mIHRoZSB4c3Rh dHMgdmFsdWVzIGFyZQ0KPiBkZXJpdmVkIGZyb20gZXhpc3Rpbmcgc3RhdHMgdmFsdWVzLiAgRm9y IGV4YW1wbGU6DQo+IA0KPiB0ZXN0cG1kPiBzaG93IHBvcnQgeHN0YXRzIGFsbA0KPiAuLi4NCj4g dHhfdW5pY2FzdF9wYWNrZXRzOiAxNzU2Mjk1OQ0KPiAuLi4NCj4gdGVzdHBtZD4gY2xlYXIgcG9y dCBzdGF0cyBhbGwNCj4gLi4uDQo+IHNob3cgcG9ydCB4c3RhdHMgYWxsDQo+IC4uLg0KPiB0eF91 bmljYXN0X3BhY2tldHM6IDE4NDQ2NzQ0MDczNzA5NTUxNjE1DQo+IC4uLg0KPiANCj4gTW9kaWZ5 IHRoZSBkcml2ZXIgc28gdGhhdCBzdGF0cyBhbmQgeHN0YXRzIHZhbHVlcyBhcmUgc3RvcmVkLCB1 cGRhdGVkLA0KPiBhbmQgY2xlYXJlZCBzZXBhcmF0ZWx5Lg0KDQpJIHRoaW5rIGl0J3MgZml4IHBh dGNoLiBTbyBwbGVhc2UgYWRkICdGaXhlczpYWFgnIGFuZCBjYyB0byBzdGFibGVAZHBkay5vcmcN CmluIHlvdXIgY29tbWl0IG1lc3NhZ2UuDQoNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IERhdmlkIENo cmlzdGVuc2VuIDxkcmNAbGludXgudm5ldC5pYm0uY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvbmV0 L3Zob3N0L3J0ZV9ldGhfdmhvc3QuYyB8IDU0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkN Cj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aG9zdC9ydGVfZXRoX3Zob3N0LmMNCj4g Yi9kcml2ZXJzL25ldC92aG9zdC9ydGVfZXRoX3Zob3N0LmMNCj4gaW5kZXggZTU1Mjc4YWY2Li40 ZTcyY2MyY2EgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3Zob3N0L3J0ZV9ldGhfdmhvc3Qu Yw0KPiArKysgYi9kcml2ZXJzL25ldC92aG9zdC9ydGVfZXRoX3Zob3N0LmMNCj4gQEAgLTczLDYg KzczLDkgQEAgZW51bSB2aG9zdF94c3RhdHNfcGt0cyB7DQo+ICAJVkhPU1RfQlJPQURDQVNUX1BL VCwNCj4gIAlWSE9TVF9NVUxUSUNBU1RfUEtULA0KPiAgCVZIT1NUX1VOSUNBU1RfUEtULA0KPiAr CVZIT1NUX1BLVCwNCj4gKwlWSE9TVF9CWVRFLA0KPiArCVZIT1NUX01JU1NFRF9QS1QsDQo+ICAJ VkhPU1RfRVJST1JTX1BLVCwNCj4gIAlWSE9TVF9FUlJPUlNfRlJBR01FTlRFRCwNCj4gIAlWSE9T VF9FUlJPUlNfSkFCQkVSLA0KPiBAQCAtMTQ5LDExICsxNTIsMTEgQEAgc3RydWN0IHZob3N0X3hz dGF0c19uYW1lX29mZiB7DQo+ICAvKiBbcnhdX2lzIHByZXBlbmRlZCB0byB0aGUgbmFtZSBzdHJp bmcgaGVyZSAqLw0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2aG9zdF94c3RhdHNfbmFtZV9vZmYg dmhvc3Rfcnhwb3J0X3N0YXRfc3RyaW5nc1tdID0gew0KPiAgCXsiZ29vZF9wYWNrZXRzIiwNCj4g LQkgb2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy5wa3RzKX0sDQo+ICsJIG9mZnNl dG9mKHN0cnVjdCB2aG9zdF9xdWV1ZSwgc3RhdHMueHN0YXRzW1ZIT1NUX1BLVF0pfSwNCj4gIAl7 InRvdGFsX2J5dGVzIiwNCj4gLQkgb2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy5i eXRlcyl9LA0KPiArCSBvZmZzZXRvZihzdHJ1Y3Qgdmhvc3RfcXVldWUsIHN0YXRzLnhzdGF0c1tW SE9TVF9CWVRFXSl9LA0KPiAgCXsibWlzc2VkX3BrdHMiLA0KPiAtCSBvZmZzZXRvZihzdHJ1Y3Qg dmhvc3RfcXVldWUsIHN0YXRzLm1pc3NlZF9wa3RzKX0sDQo+ICsJIG9mZnNldG9mKHN0cnVjdCB2 aG9zdF9xdWV1ZSwgc3RhdHMueHN0YXRzW1ZIT1NUX01JU1NFRF9QS1RdKX0sDQo+ICAJeyJicm9h ZGNhc3RfcGFja2V0cyIsDQo+ICAJIG9mZnNldG9mKHN0cnVjdCB2aG9zdF9xdWV1ZSwgc3RhdHMu eHN0YXRzW1ZIT1NUX0JST0FEQ0FTVF9QS1RdKX0sDQo+ICAJeyJtdWx0aWNhc3RfcGFja2V0cyIs DQo+IEBAIC0xODksMTEgKzE5MiwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZob3N0X3hzdGF0 c19uYW1lX29mZg0KPiB2aG9zdF9yeHBvcnRfc3RhdF9zdHJpbmdzW10gPSB7DQo+ICAvKiBbdHhd XyBpcyBwcmVwZW5kZWQgdG8gdGhlIG5hbWUgc3RyaW5nIGhlcmUgKi8NCj4gIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgdmhvc3RfeHN0YXRzX25hbWVfb2ZmIHZob3N0X3R4cG9ydF9zdGF0X3N0cmluZ3Nb XSA9IHsNCj4gIAl7Imdvb2RfcGFja2V0cyIsDQo+IC0JIG9mZnNldG9mKHN0cnVjdCB2aG9zdF9x dWV1ZSwgc3RhdHMucGt0cyl9LA0KPiArCSBvZmZzZXRvZihzdHJ1Y3Qgdmhvc3RfcXVldWUsIHN0 YXRzLnhzdGF0c1tWSE9TVF9QS1RdKX0sDQo+ICAJeyJ0b3RhbF9ieXRlcyIsDQo+IC0JIG9mZnNl dG9mKHN0cnVjdCB2aG9zdF9xdWV1ZSwgc3RhdHMuYnl0ZXMpfSwNCj4gKwkgb2Zmc2V0b2Yoc3Ry dWN0IHZob3N0X3F1ZXVlLCBzdGF0cy54c3RhdHNbVkhPU1RfQllURV0pfSwNCj4gIAl7Im1pc3Nl ZF9wa3RzIiwNCj4gLQkgb2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy5taXNzZWRf cGt0cyl9LA0KPiArCSBvZmZzZXRvZihzdHJ1Y3Qgdmhvc3RfcXVldWUsIHN0YXRzLnhzdGF0c1tW SE9TVF9NSVNTRURfUEtUXSl9LA0KPiAgCXsiYnJvYWRjYXN0X3BhY2tldHMiLA0KPiAgCSBvZmZz ZXRvZihzdHJ1Y3Qgdmhvc3RfcXVldWUsIHN0YXRzLnhzdGF0c1tWSE9TVF9CUk9BRENBU1RfUEtU XSl9LA0KPiAgCXsibXVsdGljYXN0X3BhY2tldHMiLA0KPiBAQCAtMjkxLDE4ICsyOTQsMTEgQEAg dmhvc3RfZGV2X3hzdGF0c19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdA0KPiBy dGVfZXRoX3hzdGF0ICp4c3RhdHMsDQo+ICAJCXZxID0gZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV07 DQo+ICAJCWlmICghdnEpDQo+ICAJCQljb250aW51ZTsNCj4gLQkJdnEtPnN0YXRzLnhzdGF0c1tW SE9TVF9VTklDQVNUX1BLVF0gPSB2cS0+c3RhdHMucGt0cw0KPiAtCQkJCS0gKHZxLT5zdGF0cy54 c3RhdHNbVkhPU1RfQlJPQURDQVNUX1BLVF0NCj4gLQkJCQkrIHZxLT5zdGF0cy54c3RhdHNbVkhP U1RfTVVMVElDQVNUX1BLVF0pOw0KPiAgCX0NCg0KV2h5IG5vdCBkZWxldGUgdGhlIGZvciBsb29w IGhlcmU/DQoNCj4gIAlmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7IGkr Kykgew0KPiAgCQl2cSA9IGRldi0+ZGF0YS0+dHhfcXVldWVzW2ldOw0KPiAgCQlpZiAoIXZxKQ0K PiAgCQkJY29udGludWU7DQo+IC0JCXZxLT5zdGF0cy54c3RhdHNbVkhPU1RfVU5JQ0FTVF9QS1Rd ID0gdnEtPnN0YXRzLnBrdHMNCj4gLQkJCQkrIHZxLT5zdGF0cy5taXNzZWRfcGt0cw0KPiAtCQkJ CS0gKHZxLT5zdGF0cy54c3RhdHNbVkhPU1RfQlJPQURDQVNUX1BLVF0NCj4gLQkJCQkrIHZxLT5z dGF0cy54c3RhdHNbVkhPU1RfTVVMVElDQVNUX1BLVF0pOw0KPiAgCX0NCg0KRGl0dG8uDQoNCj4g IAlmb3IgKHQgPSAwOyB0IDwgVkhPU1RfTkJfWFNUQVRTX1JYUE9SVDsgdCsrKSB7DQo+ICAJCXhz dGF0c1tjb3VudF0udmFsdWUgPSAwOw0KPiBAQCAtMzQ2LDIwICszNDIsMjcgQEAgdmhvc3RfY291 bnRfbXVsdGljYXN0X2Jyb2FkY2FzdChzdHJ1Y3Qgdmhvc3RfcXVldWUNCj4gKnZxLA0KPiAgCQkJ cHN0YXRzLT54c3RhdHNbVkhPU1RfQlJPQURDQVNUX1BLVF0rKzsNCj4gIAkJZWxzZQ0KPiAgCQkJ cHN0YXRzLT54c3RhdHNbVkhPU1RfTVVMVElDQVNUX1BLVF0rKzsNCj4gKwl9IGVsc2Ugew0KPiAr CQlwc3RhdHMtPnhzdGF0c1tWSE9TVF9VTklDQVNUX1BLVF0rKzsNCg0KQXMgdGhpcyBmdW5jdGlv biBhbHNvIGNvdW50IHVuaWNhc3QgcGt0cyBub3cuIFRoZSBmdW5jdGlvbiBuYW1lIHNob3VsZCBi ZXR0ZXINCmJlIGNoYW5nZWQuIEJlc2lkZXMsIGluICdldGhfdmhvc3RfdHgnIHdoaWNoIGNhbGxz IHRoaXMgZnVuY3Rpb24sIHRoZXJlJ3MgYQ0KY29tbWVudCBhYm91dCB3aHkgd2UgY2FsbHMgdGhl IGZ1bmN0aW9uLiBJIHRoaW5rIHRoYXQgc2hvdWxkIGFsc28gYmUgdXBkYXRlZC4NCg0KVGhhbmtz IQ0KQ2hlbmJvDQoNCj4gIAl9DQo+ICB9DQo+IA0KPiAgc3RhdGljIHZvaWQNCj4gLXZob3N0X3Vw ZGF0ZV9wYWNrZXRfeHN0YXRzKHN0cnVjdCB2aG9zdF9xdWV1ZSAqdnEsDQo+IC0JCQkgICBzdHJ1 Y3QgcnRlX21idWYgKipidWZzLA0KPiAtCQkJICAgdWludDE2X3QgY291bnQpDQo+ICt2aG9zdF91 cGRhdGVfcGFja2V0X3hzdGF0cyhzdHJ1Y3Qgdmhvc3RfcXVldWUgKnZxLCBzdHJ1Y3QgcnRlX21i dWYgKipidWZzLA0KPiArCQkJICAgdWludDE2X3QgY291bnQsIHVpbnQ2NF90IG5iX2J5dGVzLA0K PiArCQkJICAgdWludDY0X3QgbmJfbWlzc2VkKQ0KPiAgew0KPiAgCXVpbnQzMl90IHBrdF9sZW4g PSAwOw0KPiAgCXVpbnQ2NF90IGkgPSAwOw0KPiAgCXVpbnQ2NF90IGluZGV4Ow0KPiAgCXN0cnVj dCB2aG9zdF9zdGF0cyAqcHN0YXRzID0gJnZxLT5zdGF0czsNCj4gDQo+ICsJcHN0YXRzLT54c3Rh dHNbVkhPU1RfQllURV0gKz0gbmJfYnl0ZXM7DQo+ICsJcHN0YXRzLT54c3RhdHNbVkhPU1RfTUlT U0VEX1BLVF0gKz0gbmJfbWlzc2VkOw0KPiArCXBzdGF0cy0+eHN0YXRzW1ZIT1NUX1VOSUNBU1Rf UEtUXSArPSBuYl9taXNzZWQ7DQo+ICsNCj4gIAlmb3IgKGkgPSAwOyBpIDwgY291bnQgOyBpKysp IHsNCj4gKwkJcHN0YXRzLT54c3RhdHNbVkhPU1RfUEtUXSsrOw0KPiAgCQlwa3RfbGVuID0gYnVm c1tpXS0+cGt0X2xlbjsNCj4gIAkJaWYgKHBrdF9sZW4gPT0gNjQpIHsNCj4gIAkJCXBzdGF0cy0+ eHN0YXRzW1ZIT1NUXzY0X1BLVF0rKzsNCj4gQEAgLTM4NSw2ICszODgsNyBAQCBldGhfdmhvc3Rf cngodm9pZCAqcSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywgdWludDE2X3QNCj4gbmJfYnVmcykN Cj4gIAlzdHJ1Y3Qgdmhvc3RfcXVldWUgKnIgPSBxOw0KPiAgCXVpbnQxNl90IGksIG5iX3J4ID0g MDsNCj4gIAl1aW50MTZfdCBuYl9yZWNlaXZlID0gbmJfYnVmczsNCj4gKwl1aW50NjRfdCBuYl9i eXRlcyA9IDA7DQo+IA0KPiAgCWlmICh1bmxpa2VseShydGVfYXRvbWljMzJfcmVhZCgmci0+YWxs b3dfcXVldWluZykgPT0gMCkpDQo+ICAJCXJldHVybiAwOw0KPiBAQCAtNDE5LDEwICs0MjMsMTEg QEAgZXRoX3Zob3N0X3J4KHZvaWQgKnEsIHN0cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMsDQo+IHVpbnQx Nl90IG5iX2J1ZnMpDQo+ICAJCWlmIChyLT5pbnRlcm5hbC0+dmxhbl9zdHJpcCkNCj4gIAkJCXJ0 ZV92bGFuX3N0cmlwKGJ1ZnNbaV0pOw0KPiANCj4gLQkJci0+c3RhdHMuYnl0ZXMgKz0gYnVmc1tp XS0+cGt0X2xlbjsNCj4gKwkJbmJfYnl0ZXMgKz0gYnVmc1tpXS0+cGt0X2xlbjsNCj4gIAl9DQo+ IA0KPiAtCXZob3N0X3VwZGF0ZV9wYWNrZXRfeHN0YXRzKHIsIGJ1ZnMsIG5iX3J4KTsNCj4gKwly LT5zdGF0cy5ieXRlcyArPSBuYl9ieXRlczsNCj4gKwl2aG9zdF91cGRhdGVfcGFja2V0X3hzdGF0 cyhyLCBidWZzLCBuYl9yeCwgbmJfYnl0ZXMsIDApOw0KPiANCj4gIG91dDoNCj4gIAlydGVfYXRv bWljMzJfc2V0KCZyLT53aGlsZV9xdWV1aW5nLCAwKTsNCj4gQEAgLTQzNiw2ICs0NDEsOCBAQCBl dGhfdmhvc3RfdHgodm9pZCAqcSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywgdWludDE2X3QNCj4g bmJfYnVmcykNCj4gIAlzdHJ1Y3Qgdmhvc3RfcXVldWUgKnIgPSBxOw0KPiAgCXVpbnQxNl90IGks IG5iX3R4ID0gMDsNCj4gIAl1aW50MTZfdCBuYl9zZW5kID0gMDsNCj4gKwl1aW50NjRfdCBuYl9i eXRlcyA9IDA7DQo+ICsJdWludDY0X3QgbmJfbWlzc2VkID0gMDsNCj4gDQo+ICAJaWYgKHVubGlr ZWx5KHJ0ZV9hdG9taWMzMl9yZWFkKCZyLT5hbGxvd19xdWV1aW5nKSA9PSAwKSkNCj4gIAkJcmV0 dXJuIDA7DQo+IEBAIC00NzYsMTMgKzQ4MywxNiBAQCBldGhfdmhvc3RfdHgodm9pZCAqcSwgc3Ry dWN0IHJ0ZV9tYnVmICoqYnVmcywNCj4gdWludDE2X3QgbmJfYnVmcykNCj4gIAkJCWJyZWFrOw0K PiAgCX0NCj4gDQo+ICsJZm9yIChpID0gMDsgbGlrZWx5KGkgPCBuYl90eCk7IGkrKykNCj4gKwkJ bmJfYnl0ZXMgKz0gYnVmc1tpXS0+cGt0X2xlbjsNCj4gKw0KPiArCW5iX21pc3NlZCA9IG5iX2J1 ZnMgLSBuYl90eDsNCj4gKw0KPiAgCXItPnN0YXRzLnBrdHMgKz0gbmJfdHg7DQo+ICsJci0+c3Rh dHMuYnl0ZXMgKz0gbmJfYnl0ZXM7DQo+ICAJci0+c3RhdHMubWlzc2VkX3BrdHMgKz0gbmJfYnVm cyAtIG5iX3R4Ow0KPiANCj4gLQlmb3IgKGkgPSAwOyBsaWtlbHkoaSA8IG5iX3R4KTsgaSsrKQ0K PiAtCQlyLT5zdGF0cy5ieXRlcyArPSBidWZzW2ldLT5wa3RfbGVuOw0KPiAtDQo+IC0Jdmhvc3Rf dXBkYXRlX3BhY2tldF94c3RhdHMociwgYnVmcywgbmJfdHgpOw0KPiArCXZob3N0X3VwZGF0ZV9w YWNrZXRfeHN0YXRzKHIsIGJ1ZnMsIG5iX3R4LCBuYl9ieXRlcywgbmJfbWlzc2VkKTsNCj4gDQo+ ICAJLyogQWNjb3JkaW5nIHRvIFJGQzI4NjMgcGFnZTQyIHNlY3Rpb24gaWZIQ091dE11bHRpY2Fz dFBrdHMgYW5kDQo+ICAJICogaWZIQ091dEJyb2FkY2FzdFBrdHMsIHRoZSBjb3VudGVycyAibXVs dGljYXN0IiBhbmQgImJyb2FkY2FzdCINCj4gLS0NCj4gMi4xOC40DQoNCg==