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 57EB7A04BC for ; Fri, 9 Oct 2020 05:13:52 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5F71C1BECA; Fri, 9 Oct 2020 05:13:48 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 25F181BEAA; Fri, 9 Oct 2020 05:13:41 +0200 (CEST) IronPort-SDR: YpQYSbYqFVuPGUy1UIPrVPWhHqSzE2mWnsHBm7zjI1YqAA5FX24SS3kQl/NFBjPAvZmAmae4zG w7jMVRcfv1EA== X-IronPort-AV: E=McAfee;i="6000,8403,9768"; a="153271693" X-IronPort-AV: E=Sophos;i="5.77,353,1596524400"; d="scan'208";a="153271693" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Oct 2020 20:13:39 -0700 IronPort-SDR: G8n+g4+IiY2SHN6zPARymHhk2QyzsfbrezvX9Is+BbwLD2pTAuKGruqcZw3wNHYI/2JGZ5AjA2 DG1DnAs7LBJw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,353,1596524400"; d="scan'208";a="354709178" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by FMSMGA003.fm.intel.com with ESMTP; 08 Oct 2020 20:13:39 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 8 Oct 2020 20:13:39 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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; Thu, 8 Oct 2020 20:13:38 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 8 Oct 2020 20:13:38 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) 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.1713.5; Thu, 8 Oct 2020 20:13:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ORuB7f0veW5V8ynNcZ4uHgv6spZM7xf85zqWtk+OT15pm3Uflo7C2wqX5dkZ8GbH1jO2+ndxiKilow9OVFpOXKL0qvMO+pEcRX8RmYGlVR8eeqkvSZe2OCVwVNUGS5/pJF5k1ZhRcS6+arZeODu3Xzcmnke+yn1h7RiU2JGeMBBaWCwSXuBmOXdx37FVOgPjpiS8/6z+ytvycY3LiYuNv/awA78weBjL5SqGk9k9LFdliOy9KYW6/GL+IDRLv5rdShdZzX4GeDjUtKe9peRHEytWWPIvD2LpwL4bwVYhN3uOoIKIMhgSt/ZmCpuPTTREf8Iu6uC5RXEOlLK46l9Nbw== 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=PEaraa6zAhQcYjn+t4Aki1Yhqi465M2fZqj/7Lu6gQI=; b=GBz3icTsUdZy2ANhgG6uvIJySfFRgqlHtCWoN77n7D4IauQcC/rQSp6/qRHvhJFOAFSeQeIx2i16gfbXZHxVHNjNIgvVd7tZAARo76KUScKXsMt4n2S3ahSjTUOwg4ZAKzkX9R+/82JxNswEQNlP0y/nqkrbeGqoHI2dbr8fWQmNMJjgfrczD0cU1iLcQX6B4evviooMVBT6RzTdJ4jP2P+NO2MBzW9CA6NR1ywZ7jl0lqt68ceKQ0YIEYo0XKYqA9gqOLyqEIljK+NEMmV/igAodI1cUo9l0axALw+FUFp6Fnk7VsNIc9/rEybXkHUyZKyE2+B/lgXswpM+W9g2TA== 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=PEaraa6zAhQcYjn+t4Aki1Yhqi465M2fZqj/7Lu6gQI=; b=EQJTST6EZPnqStAzzmV5RQquCRPrc0mkV2R+mC8dsVdqJyhLbCJCkdE4g99jjcQ0VQl2odVIztecoDtgYi483MMoMC/et96bF8FN+DXsfloXLsYebLQDnq64nYNCRn8I1KAAbHJfL+h2MJS2xtTRvoq+3ZsKCpM0Ri6KdqF+4NM= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3982.namprd11.prod.outlook.com (2603:10b6:208:13b::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.23; Fri, 9 Oct 2020 03:13:37 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::1dc7:9f52:91c1:52da]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::1dc7:9f52:91c1:52da%3]) with mapi id 15.20.3455.023; Fri, 9 Oct 2020 03:13:37 +0000 From: "Xia, Chenbo" To: David Christensen , "dev@dpdk.org" , "maxime.coquelin@redhat.com" , "Wang, Zhihong" CC: "stable@dpdk.org" , "Yang, Zhiyong" Thread-Topic: [PATCH v2] net/vhost: fix xstats wrong after clearing stats Thread-Index: AQHWnCbzlxAqtYvZCk2iM8Mzir/zXqmOmFhg Date: Fri, 9 Oct 2020 03:13:37 +0000 Message-ID: References: <20200902170309.16513-1-drc@linux.vnet.ibm.com> <20201006212316.409587-1-drc@linux.vnet.ibm.com> In-Reply-To: <20201006212316.409587-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.55.46.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c1b403a3-6e13-492a-c777-08d86c015090 x-ms-traffictypediagnostic: MN2PR11MB3982: 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: dCXvCbyCqdO57CI3PX+ndd/VLof1SYAjC21Rn7EvSGoQvk8aBfq2l93fGrrfzLFjJW03/KlRVV+emBwl1tcyIwRJf1HCyEcMaYTUS5ipyOpkXZJGXabjHjiyb4ANp5wq5dDHpwPy23oK0AWcARk3rVKjcEWupDGCuP0ijfo2DbSBOfkxt+ibN216xcdldvX/g0ADwoS3xcCBwkxrKj1XhMQXvvLOYwDDBMZRTJZfYo3Vfdqam3FwxRR7uyUYARzTSVjGn2HRPKNYZtMTfxCoNcpLsNtSwiNBDYLAA4K2kGMKbLjcbz10Bj9ZQFHsPWe7 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)(346002)(396003)(39860400002)(376002)(136003)(6506007)(55016002)(26005)(6636002)(53546011)(83380400001)(7696005)(4326008)(478600001)(9686003)(71200400001)(33656002)(54906003)(52536014)(86362001)(107886003)(66446008)(5660300002)(316002)(76116006)(66946007)(186003)(8676002)(66476007)(8936002)(64756008)(66556008)(110136005)(2906002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: nas4yzqDpnZp4ysjEMsCYaDVxfmuF73bO8x2S34uDE46piGvfbR39aqY79GacJHBOZUJ+9RyteyZ1yaxJZHUlPYnqrpvVG47hxmlJQZhnu2+NE2xFpIVWsezz2NpFct+jPiZXmi1Y/e5Z6wpSIJ468XWeDlJNud/V1HAnM/f44ucaHenyG8/etleLB3nqps7t4HGGHDAADyQoUcYEZGn6HVKshw3dG+0O9pRykQmAt87Litcpx0EcE5jD1wmmiBXY+602cXMwCYfr68u6JA0RdsRywMHgJvLpNmd6obILRIUnJP90zbe6baaokYU3WjvvfLU00ySlD+M4aFSet3m4sBwxD0+tGF8JdjAM8j+JNn8BrEuPbzgKKt4MFUvOEz9xTwHyw6Hk1zTcDvKWw+0miYqaPo3MH3/V9n4f+aUP3uZ0mQvVsUEo0c6N0MFyUjlr61OtAl1zUb9wWfYG/cXWeGbfltat/8j2eWjJw78uWX+t2EFqJqaKO+KWt4BxNdSSX6pZFiqmsKJrzxQbdI6s1tGiHKS3VbkNOirQH6pBfKNI+DKQDJj87V9wOg4L3twnZLgG1LVBM4vwH1jVISxU0dId7g/iHp6yHe1mANiWj5Washt9NMDz4GGtGfMwMVL+I5krnizE2OB6EhMg8Utfw== 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: c1b403a3-6e13-492a-c777-08d86c015090 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2020 03:13:37.4238 (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: /sMFvOrIiSajKOZQV+PToPQjqMkwxC2R8Z+8W8AOxRn6xsrqDAOjd6RD+pEbn8OPj3mJ+BUjqSSARb71Ole7OQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3982 X-OriginatorOrg: intel.com Subject: Re: [dpdk-stable] [PATCH v2] net/vhost: fix xstats wrong after clearing stats X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" SGkgRGF2aWQsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRGF2aWQg Q2hyaXN0ZW5zZW4gPGRyY0BsaW51eC52bmV0LmlibS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwg T2N0b2JlciA3LCAyMDIwIDU6MjMgQU0NCj4gVG86IGRldkBkcGRrLm9yZzsgbWF4aW1lLmNvcXVl bGluQHJlZGhhdC5jb207IFhpYSwgQ2hlbmJvDQo+IDxjaGVuYm8ueGlhQGludGVsLmNvbT47IFdh bmcsIFpoaWhvbmcgPHpoaWhvbmcud2FuZ0BpbnRlbC5jb20+DQo+IENjOiBzdGFibGVAZHBkay5v cmc7IERhdmlkIENocmlzdGVuc2VuIDxkcmNAbGludXgudm5ldC5pYm0uY29tPjsgWWFuZywNCj4g WmhpeW9uZyA8emhpeW9uZy55YW5nQGludGVsLmNvbT4NCj4gU3ViamVjdDogW1BBVENIIHYyXSBu ZXQvdmhvc3Q6IGZpeCB4c3RhdHMgd3JvbmcgYWZ0ZXIgY2xlYXJpbmcgc3RhdHMNCj4gDQo+IFRo ZSBQTUQgQVBJIGFsbG93cyBzdGF0cyBhbmQgeHN0YXRzIHZhbHVlcyB0byBiZSBjbGVhcmVkIHNl cGFyYXRlbHkuDQo+IFRoaXMgaXMgYSBwcm9ibGVtIGZvciB0aGUgdmhvc3QgUE1EIHNpbmNlIHNv bWUgb2YgdGhlIHhzdGF0cyB2YWx1ZXMgYXJlDQo+IGRlcml2ZWQgZnJvbSBleGlzdGluZyBzdGF0 cyB2YWx1ZXMuICBGb3IgZXhhbXBsZToNCj4gDQo+IHRlc3RwbWQ+IHNob3cgcG9ydCB4c3RhdHMg YWxsDQo+IC4uLg0KPiB0eF91bmljYXN0X3BhY2tldHM6IDE3NTYyOTU5DQo+IC4uLg0KPiB0ZXN0 cG1kPiBjbGVhciBwb3J0IHN0YXRzIGFsbA0KPiAuLi4NCj4gc2hvdyBwb3J0IHhzdGF0cyBhbGwN Cj4gLi4uDQo+IHR4X3VuaWNhc3RfcGFja2V0czogMTg0NDY3NDQwNzM3MDk1NTE2MTUNCj4gLi4u DQo+IA0KPiBNb2RpZnkgdGhlIGRyaXZlciBzbyB0aGF0IHN0YXRzIGFuZCB4c3RhdHMgdmFsdWVz IGFyZSBzdG9yZWQsIHVwZGF0ZWQsDQo+IGFuZCBjbGVhcmVkIHNlcGFyYXRlbHkuDQo+IA0KPiBG aXhlczogNGQ2Y2YyYWM5M2RjICgibmV0L3Zob3N0OiBhZGQgZXh0ZW5kZWQgc3RhdGlzdGljcyIp DQo+IENjOiB6aGl5b25nLnlhbmdAaW50ZWwuY29tDQoNCkJldHRlciB0byByZXBsYWNlIHRoaXMg Q2Mgd2l0aCAnQ2M6IHN0YWJsZUBkcGRrLm9yZycgYXMgb3RoZXIgZml4IHBhdGNoZXMNCmRvLiBZ b3UgY2FuIGNjIHpoaXlvbmcgd2l0aCBnaXQgc2VuZC1lbWFpbCBjb21tYW5kLg0KDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBEYXZpZCBDaHJpc3RlbnNlbiA8ZHJjQGxpbnV4LnZuZXQuaWJtLmNvbT4N Cj4gLS0tDQo+IHYyOg0KPiAqIFJlbW92ZWQgbmV3bHkgdW51c2VkIHZxIGxvb3BzDQo+ICogQWRk ZWQgImZpeGVzIiBtZXNzYWdlDQo+ICogUmVuYW1lZCB2aG9zdF9jb3VudF9tdWx0aWNhc3RfYnJv YWRjYXN0IHRvIHZob3N0X2NvdW50X3hjYXN0X3BhY2tldHMNCj4gDQo+ICBkcml2ZXJzL25ldC92 aG9zdC9ydGVfZXRoX3Zob3N0LmMgfCA3MCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t DQo+ICAxIGZpbGUgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pDQo+ IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmhvc3QvcnRlX2V0aF92aG9zdC5jDQo+IGIv ZHJpdmVycy9uZXQvdmhvc3QvcnRlX2V0aF92aG9zdC5jDQo+IGluZGV4IGU1NTI3OGFmNi4uMTYz Y2Y5NDA5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aG9zdC9ydGVfZXRoX3Zob3N0LmMN Cj4gKysrIGIvZHJpdmVycy9uZXQvdmhvc3QvcnRlX2V0aF92aG9zdC5jDQo+IEBAIC03Myw2ICs3 Myw5IEBAIGVudW0gdmhvc3RfeHN0YXRzX3BrdHMgew0KPiAgCVZIT1NUX0JST0FEQ0FTVF9QS1Qs DQo+ICAJVkhPU1RfTVVMVElDQVNUX1BLVCwNCj4gIAlWSE9TVF9VTklDQVNUX1BLVCwNCj4gKwlW SE9TVF9QS1QsDQo+ICsJVkhPU1RfQllURSwNCj4gKwlWSE9TVF9NSVNTRURfUEtULA0KPiAgCVZI T1NUX0VSUk9SU19QS1QsDQo+ICAJVkhPU1RfRVJST1JTX0ZSQUdNRU5URUQsDQo+ICAJVkhPU1Rf RVJST1JTX0pBQkJFUiwNCj4gQEAgLTE0OSwxMSArMTUyLDExIEBAIHN0cnVjdCB2aG9zdF94c3Rh dHNfbmFtZV9vZmYgew0KPiAgLyogW3J4XV9pcyBwcmVwZW5kZWQgdG8gdGhlIG5hbWUgc3RyaW5n IGhlcmUgKi8NCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdmhvc3RfeHN0YXRzX25hbWVfb2ZmIHZo b3N0X3J4cG9ydF9zdGF0X3N0cmluZ3NbXSA9IHsNCj4gIAl7Imdvb2RfcGFja2V0cyIsDQo+IC0J IG9mZnNldG9mKHN0cnVjdCB2aG9zdF9xdWV1ZSwgc3RhdHMucGt0cyl9LA0KPiArCSBvZmZzZXRv ZihzdHJ1Y3Qgdmhvc3RfcXVldWUsIHN0YXRzLnhzdGF0c1tWSE9TVF9QS1RdKX0sDQo+ICAJeyJ0 b3RhbF9ieXRlcyIsDQo+IC0JIG9mZnNldG9mKHN0cnVjdCB2aG9zdF9xdWV1ZSwgc3RhdHMuYnl0 ZXMpfSwNCj4gKwkgb2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy54c3RhdHNbVkhP U1RfQllURV0pfSwNCj4gIAl7Im1pc3NlZF9wa3RzIiwNCj4gLQkgb2Zmc2V0b2Yoc3RydWN0IHZo b3N0X3F1ZXVlLCBzdGF0cy5taXNzZWRfcGt0cyl9LA0KPiArCSBvZmZzZXRvZihzdHJ1Y3Qgdmhv c3RfcXVldWUsIHN0YXRzLnhzdGF0c1tWSE9TVF9NSVNTRURfUEtUXSl9LA0KPiAgCXsiYnJvYWRj YXN0X3BhY2tldHMiLA0KPiAgCSBvZmZzZXRvZihzdHJ1Y3Qgdmhvc3RfcXVldWUsIHN0YXRzLnhz dGF0c1tWSE9TVF9CUk9BRENBU1RfUEtUXSl9LA0KPiAgCXsibXVsdGljYXN0X3BhY2tldHMiLA0K PiBAQCAtMTg5LDExICsxOTIsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2aG9zdF94c3RhdHNf bmFtZV9vZmYNCj4gdmhvc3Rfcnhwb3J0X3N0YXRfc3RyaW5nc1tdID0gew0KPiAgLyogW3R4XV8g aXMgcHJlcGVuZGVkIHRvIHRoZSBuYW1lIHN0cmluZyBoZXJlICovDQo+ICBzdGF0aWMgY29uc3Qg c3RydWN0IHZob3N0X3hzdGF0c19uYW1lX29mZiB2aG9zdF90eHBvcnRfc3RhdF9zdHJpbmdzW10g PSB7DQo+ICAJeyJnb29kX3BhY2tldHMiLA0KPiAtCSBvZmZzZXRvZihzdHJ1Y3Qgdmhvc3RfcXVl dWUsIHN0YXRzLnBrdHMpfSwNCj4gKwkgb2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0 cy54c3RhdHNbVkhPU1RfUEtUXSl9LA0KPiAgCXsidG90YWxfYnl0ZXMiLA0KPiAtCSBvZmZzZXRv ZihzdHJ1Y3Qgdmhvc3RfcXVldWUsIHN0YXRzLmJ5dGVzKX0sDQo+ICsJIG9mZnNldG9mKHN0cnVj dCB2aG9zdF9xdWV1ZSwgc3RhdHMueHN0YXRzW1ZIT1NUX0JZVEVdKX0sDQo+ICAJeyJtaXNzZWRf cGt0cyIsDQo+IC0JIG9mZnNldG9mKHN0cnVjdCB2aG9zdF9xdWV1ZSwgc3RhdHMubWlzc2VkX3Br dHMpfSwNCj4gKwkgb2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy54c3RhdHNbVkhP U1RfTUlTU0VEX1BLVF0pfSwNCj4gIAl7ImJyb2FkY2FzdF9wYWNrZXRzIiwNCj4gIAkgb2Zmc2V0 b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy54c3RhdHNbVkhPU1RfQlJPQURDQVNUX1BLVF0p fSwNCj4gIAl7Im11bHRpY2FzdF9wYWNrZXRzIiwNCj4gQEAgLTI4NywyMyArMjkwLDYgQEAgdmhv c3RfZGV2X3hzdGF0c19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdA0KPiBydGVf ZXRoX3hzdGF0ICp4c3RhdHMsDQo+ICAJaWYgKG4gPCBueHN0YXRzKQ0KPiAgCQlyZXR1cm4gbnhz dGF0czsNCj4gDQo+IC0JZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzOyBp KyspIHsNCj4gLQkJdnEgPSBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXTsNCj4gLQkJaWYgKCF2cSkN Cj4gLQkJCWNvbnRpbnVlOw0KPiAtCQl2cS0+c3RhdHMueHN0YXRzW1ZIT1NUX1VOSUNBU1RfUEtU XSA9IHZxLT5zdGF0cy5wa3RzDQo+IC0JCQkJLSAodnEtPnN0YXRzLnhzdGF0c1tWSE9TVF9CUk9B RENBU1RfUEtUXQ0KPiAtCQkJCSsgdnEtPnN0YXRzLnhzdGF0c1tWSE9TVF9NVUxUSUNBU1RfUEtU XSk7DQo+IC0JfQ0KPiAtCWZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlczsg aSsrKSB7DQo+IC0JCXZxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV07DQo+IC0JCWlmICghdnEp DQo+IC0JCQljb250aW51ZTsNCj4gLQkJdnEtPnN0YXRzLnhzdGF0c1tWSE9TVF9VTklDQVNUX1BL VF0gPSB2cS0+c3RhdHMucGt0cw0KPiAtCQkJCSsgdnEtPnN0YXRzLm1pc3NlZF9wa3RzDQo+IC0J CQkJLSAodnEtPnN0YXRzLnhzdGF0c1tWSE9TVF9CUk9BRENBU1RfUEtUXQ0KPiAtCQkJCSsgdnEt PnN0YXRzLnhzdGF0c1tWSE9TVF9NVUxUSUNBU1RfUEtUXSk7DQo+IC0JfQ0KPiAgCWZvciAodCA9 IDA7IHQgPCBWSE9TVF9OQl9YU1RBVFNfUlhQT1JUOyB0KyspIHsNCj4gIAkJeHN0YXRzW2NvdW50 XS52YWx1ZSA9IDA7DQo+ICAJCWZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVl czsgaSsrKSB7DQo+IEBAIC0zMzQsNyArMzIwLDcgQEAgdmhvc3RfZGV2X3hzdGF0c19nZXQoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdA0KPiBydGVfZXRoX3hzdGF0ICp4c3RhdHMsDQo+ ICB9DQo+IA0KPiAgc3RhdGljIGlubGluZSB2b2lkDQo+IC12aG9zdF9jb3VudF9tdWx0aWNhc3Rf YnJvYWRjYXN0KHN0cnVjdCB2aG9zdF9xdWV1ZSAqdnEsDQo+ICt2aG9zdF9jb3VudF94Y2FzdF9w YWNrZXRzKHN0cnVjdCB2aG9zdF9xdWV1ZSAqdnEsDQo+ICAJCQkJc3RydWN0IHJ0ZV9tYnVmICpt YnVmKQ0KPiAgew0KPiAgCXN0cnVjdCBydGVfZXRoZXJfYWRkciAqZWEgPSBOVUxMOw0KPiBAQCAt MzQ2LDIwICszMzIsMjcgQEAgdmhvc3RfY291bnRfbXVsdGljYXN0X2Jyb2FkY2FzdChzdHJ1Y3Qg dmhvc3RfcXVldWUNCj4gKnZxLA0KPiAgCQkJcHN0YXRzLT54c3RhdHNbVkhPU1RfQlJPQURDQVNU X1BLVF0rKzsNCj4gIAkJZWxzZQ0KPiAgCQkJcHN0YXRzLT54c3RhdHNbVkhPU1RfTVVMVElDQVNU X1BLVF0rKzsNCj4gKwl9IGVsc2Ugew0KPiArCQlwc3RhdHMtPnhzdGF0c1tWSE9TVF9VTklDQVNU X1BLVF0rKzsNCj4gIAl9DQo+ICB9DQo+IA0KPiAgc3RhdGljIHZvaWQNCj4gLXZob3N0X3VwZGF0 ZV9wYWNrZXRfeHN0YXRzKHN0cnVjdCB2aG9zdF9xdWV1ZSAqdnEsDQo+IC0JCQkgICBzdHJ1Y3Qg cnRlX21idWYgKipidWZzLA0KPiAtCQkJICAgdWludDE2X3QgY291bnQpDQo+ICt2aG9zdF91cGRh dGVfcGFja2V0X3hzdGF0cyhzdHJ1Y3Qgdmhvc3RfcXVldWUgKnZxLCBzdHJ1Y3QgcnRlX21idWYg KipidWZzLA0KPiArCQkJICAgdWludDE2X3QgY291bnQsIHVpbnQ2NF90IG5iX2J5dGVzLA0KPiAr CQkJICAgdWludDY0X3QgbmJfbWlzc2VkKQ0KPiAgew0KPiAgCXVpbnQzMl90IHBrdF9sZW4gPSAw Ow0KPiAgCXVpbnQ2NF90IGkgPSAwOw0KPiAgCXVpbnQ2NF90IGluZGV4Ow0KPiAgCXN0cnVjdCB2 aG9zdF9zdGF0cyAqcHN0YXRzID0gJnZxLT5zdGF0czsNCj4gDQo+ICsJcHN0YXRzLT54c3RhdHNb VkhPU1RfQllURV0gKz0gbmJfYnl0ZXM7DQo+ICsJcHN0YXRzLT54c3RhdHNbVkhPU1RfTUlTU0VE X1BLVF0gKz0gbmJfbWlzc2VkOw0KPiArCXBzdGF0cy0+eHN0YXRzW1ZIT1NUX1VOSUNBU1RfUEtU XSArPSBuYl9taXNzZWQ7DQo+ICsNCj4gIAlmb3IgKGkgPSAwOyBpIDwgY291bnQgOyBpKyspIHsN Cj4gKwkJcHN0YXRzLT54c3RhdHNbVkhPU1RfUEtUXSsrOw0KPiAgCQlwa3RfbGVuID0gYnVmc1tp XS0+cGt0X2xlbjsNCj4gIAkJaWYgKHBrdF9sZW4gPT0gNjQpIHsNCj4gIAkJCXBzdGF0cy0+eHN0 YXRzW1ZIT1NUXzY0X1BLVF0rKzsNCj4gQEAgLTM3NSw3ICszNjgsNyBAQCB2aG9zdF91cGRhdGVf cGFja2V0X3hzdGF0cyhzdHJ1Y3Qgdmhvc3RfcXVldWUgKnZxLA0KPiAgCQkJZWxzZSBpZiAocGt0 X2xlbiA+IDE1MjIpDQo+ICAJCQkJcHN0YXRzLT54c3RhdHNbVkhPU1RfMTUyM19UT19NQVhfUEtU XSsrOw0KPiAgCQl9DQo+IC0JCXZob3N0X2NvdW50X211bHRpY2FzdF9icm9hZGNhc3QodnEsIGJ1 ZnNbaV0pOw0KPiArCQl2aG9zdF9jb3VudF94Y2FzdF9wYWNrZXRzKHZxLCBidWZzW2ldKTsNCj4g IAl9DQo+ICB9DQo+IA0KPiBAQCAtMzg1LDYgKzM3OCw3IEBAIGV0aF92aG9zdF9yeCh2b2lkICpx LCBzdHJ1Y3QgcnRlX21idWYgKipidWZzLCB1aW50MTZfdA0KPiBuYl9idWZzKQ0KPiAgCXN0cnVj dCB2aG9zdF9xdWV1ZSAqciA9IHE7DQo+ICAJdWludDE2X3QgaSwgbmJfcnggPSAwOw0KPiAgCXVp bnQxNl90IG5iX3JlY2VpdmUgPSBuYl9idWZzOw0KPiArCXVpbnQ2NF90IG5iX2J5dGVzID0gMDsN Cj4gDQo+ICAJaWYgKHVubGlrZWx5KHJ0ZV9hdG9taWMzMl9yZWFkKCZyLT5hbGxvd19xdWV1aW5n KSA9PSAwKSkNCj4gIAkJcmV0dXJuIDA7DQo+IEBAIC00MTksMTAgKzQxMywxMSBAQCBldGhfdmhv c3Rfcngodm9pZCAqcSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywNCj4gdWludDE2X3QgbmJfYnVm cykNCj4gIAkJaWYgKHItPmludGVybmFsLT52bGFuX3N0cmlwKQ0KPiAgCQkJcnRlX3ZsYW5fc3Ry aXAoYnVmc1tpXSk7DQo+IA0KPiAtCQlyLT5zdGF0cy5ieXRlcyArPSBidWZzW2ldLT5wa3RfbGVu Ow0KPiArCQluYl9ieXRlcyArPSBidWZzW2ldLT5wa3RfbGVuOw0KPiAgCX0NCj4gDQo+IC0Jdmhv c3RfdXBkYXRlX3BhY2tldF94c3RhdHMociwgYnVmcywgbmJfcngpOw0KPiArCXItPnN0YXRzLmJ5 dGVzICs9IG5iX2J5dGVzOw0KPiArCXZob3N0X3VwZGF0ZV9wYWNrZXRfeHN0YXRzKHIsIGJ1ZnMs IG5iX3J4LCBuYl9ieXRlcywgMCk7DQo+IA0KPiAgb3V0Og0KPiAgCXJ0ZV9hdG9taWMzMl9zZXQo JnItPndoaWxlX3F1ZXVpbmcsIDApOw0KPiBAQCAtNDM2LDYgKzQzMSw4IEBAIGV0aF92aG9zdF90 eCh2b2lkICpxLCBzdHJ1Y3QgcnRlX21idWYgKipidWZzLCB1aW50MTZfdA0KPiBuYl9idWZzKQ0K PiAgCXN0cnVjdCB2aG9zdF9xdWV1ZSAqciA9IHE7DQo+ICAJdWludDE2X3QgaSwgbmJfdHggPSAw Ow0KPiAgCXVpbnQxNl90IG5iX3NlbmQgPSAwOw0KPiArCXVpbnQ2NF90IG5iX2J5dGVzID0gMDsN Cj4gKwl1aW50NjRfdCBuYl9taXNzZWQgPSAwOw0KPiANCj4gIAlpZiAodW5saWtlbHkocnRlX2F0 b21pYzMyX3JlYWQoJnItPmFsbG93X3F1ZXVpbmcpID09IDApKQ0KPiAgCQlyZXR1cm4gMDsNCj4g QEAgLTQ3NiwyMCArNDczLDIzIEBAIGV0aF92aG9zdF90eCh2b2lkICpxLCBzdHJ1Y3QgcnRlX21i dWYgKipidWZzLA0KPiB1aW50MTZfdCBuYl9idWZzKQ0KPiAgCQkJYnJlYWs7DQo+ICAJfQ0KPiAN Cj4gKwlmb3IgKGkgPSAwOyBsaWtlbHkoaSA8IG5iX3R4KTsgaSsrKQ0KPiArCQluYl9ieXRlcyAr PSBidWZzW2ldLT5wa3RfbGVuOw0KPiArDQo+ICsJbmJfbWlzc2VkID0gbmJfYnVmcyAtIG5iX3R4 Ow0KPiArDQo+ICAJci0+c3RhdHMucGt0cyArPSBuYl90eDsNCj4gKwlyLT5zdGF0cy5ieXRlcyAr PSBuYl9ieXRlczsNCj4gIAlyLT5zdGF0cy5taXNzZWRfcGt0cyArPSBuYl9idWZzIC0gbmJfdHg7 DQo+IA0KPiAtCWZvciAoaSA9IDA7IGxpa2VseShpIDwgbmJfdHgpOyBpKyspDQo+IC0JCXItPnN0 YXRzLmJ5dGVzICs9IGJ1ZnNbaV0tPnBrdF9sZW47DQo+IC0NCj4gLQl2aG9zdF91cGRhdGVfcGFj a2V0X3hzdGF0cyhyLCBidWZzLCBuYl90eCk7DQo+ICsJdmhvc3RfdXBkYXRlX3BhY2tldF94c3Rh dHMociwgYnVmcywgbmJfdHgsIG5iX2J5dGVzLCBuYl9taXNzZWQpOw0KPiANCj4gIAkvKiBBY2Nv cmRpbmcgdG8gUkZDMjg2MyBwYWdlNDIgc2VjdGlvbiBpZkhDT3V0TXVsdGljYXN0UGt0cyBhbmQN Cj4gIAkgKiBpZkhDT3V0QnJvYWRjYXN0UGt0cywgdGhlIGNvdW50ZXJzICJtdWx0aWNhc3QiIGFu ZCAiYnJvYWRjYXN0Ig0KPiAgCSAqIGFyZSBpbmNyZWFzZWQgd2hlbiBwYWNrZXRzIGFyZSBub3Qg dHJhbnNtaXR0ZWQgc3VjY2Vzc2Z1bGx5Lg0KPiAgCSAqLw0KDQpJIHRoaW5rIHRoZSBhYm92ZSBj b21tZW50IHNob3VsZCBiZSB1cGRhdGVkIGJlY2F1c2UgaW4gdGhlIGJlbG93IGZ1bmN0aW9uLA0K d2UgYWxzbyB1cGRhdGUgdW5pY2FzdCBwa3RzIHRvbyAoQmFzZWQgb24gUkZDMjg2MykuDQoNClRo YW5rcyENCkNoZW5ibw0KDQo+ICAJZm9yIChpID0gbmJfdHg7IGkgPCBuYl9idWZzOyBpKyspDQo+ IC0JCXZob3N0X2NvdW50X211bHRpY2FzdF9icm9hZGNhc3QociwgYnVmc1tpXSk7DQo+ICsJCXZo b3N0X2NvdW50X3hjYXN0X3BhY2tldHMociwgYnVmc1tpXSk7DQo+IA0KPiAgCWZvciAoaSA9IDA7 IGxpa2VseShpIDwgbmJfdHgpOyBpKyspDQo+ICAJCXJ0ZV9wa3RtYnVmX2ZyZWUoYnVmc1tpXSk7 DQo+IC0tDQo+IDIuMTguNA0KDQo=