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 1925FA04DB; Fri, 16 Oct 2020 03:38:36 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C948F1E894; Fri, 16 Oct 2020 03:38:34 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 45F2B1E88C; Fri, 16 Oct 2020 03:38:32 +0200 (CEST) IronPort-SDR: yfTkqV7UjZdsHNr+7AKwy8deFov1TVNFujyJRz+82bXP4I+DKH/Z6iExkGlCXisdzaLupbb9Z6 6kx/OCUh8XdA== X-IronPort-AV: E=McAfee;i="6000,8403,9775"; a="230693646" X-IronPort-AV: E=Sophos;i="5.77,381,1596524400"; d="scan'208";a="230693646" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Oct 2020 18:38:28 -0700 IronPort-SDR: V9tNGnHSC/7WX9rUQ0moyaJk2k4SiOOAs3UMxjqaL5JfSa0l2SNbOzONsWKqzrNJCj+2BfIsDO Y7duGXDA3kKA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,381,1596524400"; d="scan'208";a="314726644" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga003.jf.intel.com with ESMTP; 15 Oct 2020 18:38:28 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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.1713.5; Thu, 15 Oct 2020 18:38:27 -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, 15 Oct 2020 18:38:27 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.43) 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, 15 Oct 2020 18:38:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M66eZH38/Cs26S2XvrBj0bzZBwG6dGneCWsAJew/mr+3/dUhEUgDrxYMB9esdAHk/TYdcMDcJ18A3JhBBjwvNbofSF0vqm+zeXAqUl4D4DE3SFys3/g1h+YZBFkYp+ymk3G74vCPK87SNlNoGO7bFvfbhw5M0ZWE0UPk5z+SFrM4YkXE/iiuYQpLK/5Y0+lbpor6P06hr1bNR+vQIu/bNXJs+DdlSqNIesYa/C54IteZoBdEufL95ockBkX2assXDVHlBvtpQNooebPyMKZJ3qSRnwhfsVwur4+4NfuIIft2bBSnVnPwHOd8YU5bvQlJI4ePS3yumb3Wyqa3pWPlDQ== 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=jnL74/SvVtXiGF/7Vnthx6PxHt4sGcUrb3+KnGVdIuE=; b=h2N14gTYO6KA6oJYP3wobArJdyvK7z3uUo2XspHq8iGzrz+Pt5uM9RyVFxnJ+SGqMfZN60UPvkgIhAI9XfYug/LnKGKIxt5h1xo6jwNwOZL9TSYAiEd1uyQyqJOMbhTp0ICUON8fCWFDVuZzX7pOm5E9ryiOsdOTu7thy3D04BgQW7uX8JLBRmsACBAGRIyuIxm0ZHm5TzAQeAL+KHwt1BYonIIvXUh+abSqh5tJ1BYREKqHDl06tUjV5q8+bgxjiggbmo/GzvKK0TQnisTVbn7l6IK5OTDGjP6Vgkr+hFm64YHgZ7LatUaZsE5VeCNVGeQnuyPBnKlZZR8wnqYnqA== 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=jnL74/SvVtXiGF/7Vnthx6PxHt4sGcUrb3+KnGVdIuE=; b=IUcA/0OJtPkIb5S4Zbg5PpGCsyVx+JMtDHd1YU9bg/4ujlzmxBc8YQ98KQttllGdcODeg+KHRgi76yjVI2dPZODWu1QX+ZhpjOy/jKJMouPnByEYw6PWRlNcvhtfgLC67i3fSj5fI4DJk9SkHX2Zfhm+MGwE6ALO4RBVUlU1PL4= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3631.namprd11.prod.outlook.com (2603:10b6:208:ef::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 01:38:23 +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.031; Fri, 16 Oct 2020 01:38:23 +0000 From: "Xia, Chenbo" To: David Christensen , "dev@dpdk.org" , "maxime.coquelin@redhat.com" , "Wang, Zhihong" CC: "stable@dpdk.org" Thread-Topic: [PATCH v3] net/vhost: fix xstats wrong after clearing stats Thread-Index: AQHWoxuaaZkGJtBcWkGHKgGkpXaqUqmZc1gQ Date: Fri, 16 Oct 2020 01:38:23 +0000 Message-ID: References: <20201006212316.409587-1-drc@linux.vnet.ibm.com> <20201015174937.127234-1-drc@linux.vnet.ibm.com> In-Reply-To: <20201015174937.127234-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.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: eee37ea9-4bd6-4fb3-5518-08d871742bb3 x-ms-traffictypediagnostic: MN2PR11MB3631: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2887; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UOpPyFJng4Bse8H0IC4+BMRngVGBzUA/7tsiWj7zf3/0OOiR4fvMruMSagDTGPeNZCEneRKdUWvIA7W/6QX9WZIXCsxM1UYxfDYwDACpb19Jstjy914/rpcwWX9OggThnp7kzJ4bhHtREP/CkxTRatk/840sre3Z2ejOnB+2PIo/xvxzlgzP5OUMTCzo7sC6E0ILJ+jAYzxUWhE2jiLoxnKrRS3X/2fBiSnejIpG7XrcQiFn6oqgK0/YPoQ9/l0KLr8x0S7Neg1j+gMbHQVDktZIqX5FHzFWGGHqvJhm+0QbuhXWrO+747h+/vslo6ne 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)(39860400002)(136003)(366004)(346002)(376002)(396003)(6506007)(478600001)(110136005)(55016002)(53546011)(186003)(2906002)(8936002)(4326008)(71200400001)(26005)(8676002)(316002)(5660300002)(6636002)(66476007)(66556008)(52536014)(66446008)(76116006)(33656002)(83380400001)(64756008)(66946007)(86362001)(9686003)(7696005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: gLDKdfQq+wm7oCAGikYmC6s7qAzfYzau12Lk4hPmVFi34HrzIg6o7ef4Sky/x4azaS9UJXBydRmaip5fYRC36w8WDd6e3cesXlr/B5YkYw5cg0oJkPevGVb60yrQEE/80VxbhWDQyY+OuuMRR58KDNN4tckEhxhAZzbQ6gu83jgY9hC5AlzjrnTx4MNwacy3J3kFLdmB5DHaLJ6QBqqybLIY8ARKZtJ7rWa1Snb76EHoPWD43sDovkMv5lTX6S7mqcpmqzx0Y4p7jgO0rkXTABw3rRvK1xpiHQc0pOB9YvWM1ePySXSTAcZUYgyqaw+n69A46bBFB6RnqEBiE82xI6HN3SXsixK+o49gkuVqvAk0itifViUti1S474IHzlv0ybgPec1gCBJ32dI6mFuRGz4HIBWlMjSorOBc5s8cBTFCupHLCEIcHSVf7tnQYCTaBy2vEPxLOuRAIzOK+EbOUMjRx1DPrFtsgzI480hCu7js+GNgkk38AASlZm7Zf/0u5oOwM1GK3Jbw3pkgDvatCtWSPejah7VAFo0qLe9xQxdIgjQ9Cpqr/xR3YZap7nu8ZxdBzug288txZwDL7WnsmDzMOL8YEboxGwLr8KMX2kP0aMe5HjNwbMse/bmLSU2rSDu3pC3VYANcG4uybYbVKg== 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: eee37ea9-4bd6-4fb3-5518-08d871742bb3 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Oct 2020 01:38:23.5003 (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: f3pJld6BKdMPlrstm9rAGtdJlyay3VwGUbpJLnhpvMjvXYwUwCI5cv0TAiMsj6YA/sDyzstpJRVOrzzB6dN4LA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3631 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3] 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEYXZpZCBDaHJpc3RlbnNlbiA8 ZHJjQGxpbnV4LnZuZXQuaWJtLmNvbT4NCj4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDE2LCAyMDIw IDE6NTAgQU0NCj4gVG86IGRldkBkcGRrLm9yZzsgbWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb207 IFhpYSwgQ2hlbmJvDQo+IDxjaGVuYm8ueGlhQGludGVsLmNvbT47IFdhbmcsIFpoaWhvbmcgPHpo aWhvbmcud2FuZ0BpbnRlbC5jb20+DQo+IENjOiBzdGFibGVAZHBkay5vcmc7IERhdmlkIENocmlz dGVuc2VuIDxkcmNAbGludXgudm5ldC5pYm0uY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjNdIG5l dC92aG9zdDogZml4IHhzdGF0cyB3cm9uZyBhZnRlciBjbGVhcmluZyBzdGF0cw0KPiANCj4gVGhl IFBNRCBBUEkgYWxsb3dzIHN0YXRzIGFuZCB4c3RhdHMgdmFsdWVzIHRvIGJlIGNsZWFyZWQgc2Vw YXJhdGVseS4NCj4gVGhpcyBpcyBhIHByb2JsZW0gZm9yIHRoZSB2aG9zdCBQTUQgc2luY2Ugc29t ZSBvZiB0aGUgeHN0YXRzIHZhbHVlcyBhcmUNCj4gZGVyaXZlZCBmcm9tIGV4aXN0aW5nIHN0YXRz IHZhbHVlcy4gIEZvciBleGFtcGxlOg0KPiANCj4gdGVzdHBtZD4gc2hvdyBwb3J0IHhzdGF0cyBh bGwNCj4gLi4uDQo+IHR4X3VuaWNhc3RfcGFja2V0czogMTc1NjI5NTkNCj4gLi4uDQo+IHRlc3Rw bWQ+IGNsZWFyIHBvcnQgc3RhdHMgYWxsDQo+IC4uLg0KPiBzaG93IHBvcnQgeHN0YXRzIGFsbA0K PiAuLi4NCj4gdHhfdW5pY2FzdF9wYWNrZXRzOiAxODQ0Njc0NDA3MzcwOTU1MTYxNQ0KPiAuLi4N Cj4gDQo+IE1vZGlmeSB0aGUgZHJpdmVyIHNvIHRoYXQgc3RhdHMgYW5kIHhzdGF0cyB2YWx1ZXMg YXJlIHN0b3JlZCwgdXBkYXRlZCwNCj4gYW5kIGNsZWFyZWQgc2VwYXJhdGVseS4NCj4gDQo+IEZp eGVzOiA0ZDZjZjJhYzkzZGMgKCJuZXQvdmhvc3Q6IGFkZCBleHRlbmRlZCBzdGF0aXN0aWNzIikN Cj4gQ2M6IHN0YWJsZUBkcGRrLm9yZw0KPiANCj4gU2lnbmVkLW9mZi1ieTogRGF2aWQgQ2hyaXN0 ZW5zZW4gPGRyY0BsaW51eC52bmV0LmlibS5jb20+DQo+IC0tLQ0KPiB2MzoNCj4gKiBNb2RpZmll ZCBjb21tZW50IHRoYXQgdW5pY2FzdCBwYWNrZXRzIGluY2x1ZGUgdW5zZW50IHBhY2tldHMNCj4g KiBDaGFuZ2UgQ2M6IHRvIHN0YWJsZUBkcGRrLm9yZw0KPiB2MjoNCj4gKiBSZW1vdmVkIG5ld2x5 IHVudXNlZCB2cSBsb29wcw0KPiAqIEFkZGVkICJmaXhlcyIgbWVzc2FnZQ0KPiAqIFJlbmFtZWQg dmhvc3RfY291bnRfbXVsdGljYXN0X2Jyb2FkY2FzdCB0byB2aG9zdF9jb3VudF94Y2FzdF9wYWNr ZXRzDQo+IA0KPiAgZHJpdmVycy9uZXQvdmhvc3QvcnRlX2V0aF92aG9zdC5jIHwgNzYgKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDM4IGluc2VydGlv bnMoKyksIDM4IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Zo b3N0L3J0ZV9ldGhfdmhvc3QuYw0KPiBiL2RyaXZlcnMvbmV0L3Zob3N0L3J0ZV9ldGhfdmhvc3Qu Yw0KPiBpbmRleCBlNTUyNzhhZjYuLjg4NmIzYWZlMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9u ZXQvdmhvc3QvcnRlX2V0aF92aG9zdC5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3Zob3N0L3J0ZV9l dGhfdmhvc3QuYw0KPiBAQCAtNzMsNiArNzMsOSBAQCBlbnVtIHZob3N0X3hzdGF0c19wa3RzIHsN Cj4gIAlWSE9TVF9CUk9BRENBU1RfUEtULA0KPiAgCVZIT1NUX01VTFRJQ0FTVF9QS1QsDQo+ICAJ VkhPU1RfVU5JQ0FTVF9QS1QsDQo+ICsJVkhPU1RfUEtULA0KPiArCVZIT1NUX0JZVEUsDQo+ICsJ VkhPU1RfTUlTU0VEX1BLVCwNCj4gIAlWSE9TVF9FUlJPUlNfUEtULA0KPiAgCVZIT1NUX0VSUk9S U19GUkFHTUVOVEVELA0KPiAgCVZIT1NUX0VSUk9SU19KQUJCRVIsDQo+IEBAIC0xNDksMTEgKzE1 MiwxMSBAQCBzdHJ1Y3Qgdmhvc3RfeHN0YXRzX25hbWVfb2ZmIHsNCj4gIC8qIFtyeF1faXMgcHJl cGVuZGVkIHRvIHRoZSBuYW1lIHN0cmluZyBoZXJlICovDQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0 IHZob3N0X3hzdGF0c19uYW1lX29mZiB2aG9zdF9yeHBvcnRfc3RhdF9zdHJpbmdzW10gPSB7DQo+ ICAJeyJnb29kX3BhY2tldHMiLA0KPiAtCSBvZmZzZXRvZihzdHJ1Y3Qgdmhvc3RfcXVldWUsIHN0 YXRzLnBrdHMpfSwNCj4gKwkgb2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy54c3Rh dHNbVkhPU1RfUEtUXSl9LA0KPiAgCXsidG90YWxfYnl0ZXMiLA0KPiAtCSBvZmZzZXRvZihzdHJ1 Y3Qgdmhvc3RfcXVldWUsIHN0YXRzLmJ5dGVzKX0sDQo+ICsJIG9mZnNldG9mKHN0cnVjdCB2aG9z dF9xdWV1ZSwgc3RhdHMueHN0YXRzW1ZIT1NUX0JZVEVdKX0sDQo+ICAJeyJtaXNzZWRfcGt0cyIs DQo+IC0JIG9mZnNldG9mKHN0cnVjdCB2aG9zdF9xdWV1ZSwgc3RhdHMubWlzc2VkX3BrdHMpfSwN Cj4gKwkgb2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy54c3RhdHNbVkhPU1RfTUlT U0VEX1BLVF0pfSwNCj4gIAl7ImJyb2FkY2FzdF9wYWNrZXRzIiwNCj4gIAkgb2Zmc2V0b2Yoc3Ry dWN0IHZob3N0X3F1ZXVlLCBzdGF0cy54c3RhdHNbVkhPU1RfQlJPQURDQVNUX1BLVF0pfSwNCj4g IAl7Im11bHRpY2FzdF9wYWNrZXRzIiwNCj4gQEAgLTE4OSwxMSArMTkyLDExIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3Qgdmhvc3RfeHN0YXRzX25hbWVfb2ZmDQo+IHZob3N0X3J4cG9ydF9zdGF0X3N0 cmluZ3NbXSA9IHsNCj4gIC8qIFt0eF1fIGlzIHByZXBlbmRlZCB0byB0aGUgbmFtZSBzdHJpbmcg aGVyZSAqLw0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2aG9zdF94c3RhdHNfbmFtZV9vZmYgdmhv c3RfdHhwb3J0X3N0YXRfc3RyaW5nc1tdID0gew0KPiAgCXsiZ29vZF9wYWNrZXRzIiwNCj4gLQkg b2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy5wa3RzKX0sDQo+ICsJIG9mZnNldG9m KHN0cnVjdCB2aG9zdF9xdWV1ZSwgc3RhdHMueHN0YXRzW1ZIT1NUX1BLVF0pfSwNCj4gIAl7InRv dGFsX2J5dGVzIiwNCj4gLQkgb2Zmc2V0b2Yoc3RydWN0IHZob3N0X3F1ZXVlLCBzdGF0cy5ieXRl cyl9LA0KPiArCSBvZmZzZXRvZihzdHJ1Y3Qgdmhvc3RfcXVldWUsIHN0YXRzLnhzdGF0c1tWSE9T VF9CWVRFXSl9LA0KPiAgCXsibWlzc2VkX3BrdHMiLA0KPiAtCSBvZmZzZXRvZihzdHJ1Y3Qgdmhv c3RfcXVldWUsIHN0YXRzLm1pc3NlZF9wa3RzKX0sDQo+ICsJIG9mZnNldG9mKHN0cnVjdCB2aG9z dF9xdWV1ZSwgc3RhdHMueHN0YXRzW1ZIT1NUX01JU1NFRF9QS1RdKX0sDQo+ICAJeyJicm9hZGNh c3RfcGFja2V0cyIsDQo+ICAJIG9mZnNldG9mKHN0cnVjdCB2aG9zdF9xdWV1ZSwgc3RhdHMueHN0 YXRzW1ZIT1NUX0JST0FEQ0FTVF9QS1RdKX0sDQo+ICAJeyJtdWx0aWNhc3RfcGFja2V0cyIsDQo+ IEBAIC0yODcsMjMgKzI5MCw2IEBAIHZob3N0X2Rldl94c3RhdHNfZ2V0KHN0cnVjdCBydGVfZXRo X2RldiAqZGV2LCBzdHJ1Y3QNCj4gcnRlX2V0aF94c3RhdCAqeHN0YXRzLA0KPiAgCWlmIChuIDwg bnhzdGF0cykNCj4gIAkJcmV0dXJuIG54c3RhdHM7DQo+IA0KPiAtCWZvciAoaSA9IDA7IGkgPCBk ZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgaSsrKSB7DQo+IC0JCXZxID0gZGV2LT5kYXRhLT5yeF9x dWV1ZXNbaV07DQo+IC0JCWlmICghdnEpDQo+IC0JCQljb250aW51ZTsNCj4gLQkJdnEtPnN0YXRz LnhzdGF0c1tWSE9TVF9VTklDQVNUX1BLVF0gPSB2cS0+c3RhdHMucGt0cw0KPiAtCQkJCS0gKHZx LT5zdGF0cy54c3RhdHNbVkhPU1RfQlJPQURDQVNUX1BLVF0NCj4gLQkJCQkrIHZxLT5zdGF0cy54 c3RhdHNbVkhPU1RfTVVMVElDQVNUX1BLVF0pOw0KPiAtCX0NCj4gLQlmb3IgKGkgPSAwOyBpIDwg ZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7IGkrKykgew0KPiAtCQl2cSA9IGRldi0+ZGF0YS0+dHhf cXVldWVzW2ldOw0KPiAtCQlpZiAoIXZxKQ0KPiAtCQkJY29udGludWU7DQo+IC0JCXZxLT5zdGF0 cy54c3RhdHNbVkhPU1RfVU5JQ0FTVF9QS1RdID0gdnEtPnN0YXRzLnBrdHMNCj4gLQkJCQkrIHZx LT5zdGF0cy5taXNzZWRfcGt0cw0KPiAtCQkJCS0gKHZxLT5zdGF0cy54c3RhdHNbVkhPU1RfQlJP QURDQVNUX1BLVF0NCj4gLQkJCQkrIHZxLT5zdGF0cy54c3RhdHNbVkhPU1RfTVVMVElDQVNUX1BL VF0pOw0KPiAtCX0NCj4gIAlmb3IgKHQgPSAwOyB0IDwgVkhPU1RfTkJfWFNUQVRTX1JYUE9SVDsg dCsrKSB7DQo+ICAJCXhzdGF0c1tjb3VudF0udmFsdWUgPSAwOw0KPiAgCQlmb3IgKGkgPSAwOyBp IDwgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkrKykgew0KPiBAQCAtMzM0LDcgKzMyMCw3IEBA IHZob3N0X2Rldl94c3RhdHNfZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBzdHJ1Y3QNCj4g cnRlX2V0aF94c3RhdCAqeHN0YXRzLA0KPiAgfQ0KPiANCj4gIHN0YXRpYyBpbmxpbmUgdm9pZA0K PiAtdmhvc3RfY291bnRfbXVsdGljYXN0X2Jyb2FkY2FzdChzdHJ1Y3Qgdmhvc3RfcXVldWUgKnZx LA0KPiArdmhvc3RfY291bnRfeGNhc3RfcGFja2V0cyhzdHJ1Y3Qgdmhvc3RfcXVldWUgKnZxLA0K PiAgCQkJCXN0cnVjdCBydGVfbWJ1ZiAqbWJ1ZikNCj4gIHsNCj4gIAlzdHJ1Y3QgcnRlX2V0aGVy X2FkZHIgKmVhID0gTlVMTDsNCj4gQEAgLTM0NiwyMCArMzMyLDI3IEBAIHZob3N0X2NvdW50X211 bHRpY2FzdF9icm9hZGNhc3Qoc3RydWN0IHZob3N0X3F1ZXVlDQo+ICp2cSwNCj4gIAkJCXBzdGF0 cy0+eHN0YXRzW1ZIT1NUX0JST0FEQ0FTVF9QS1RdKys7DQo+ICAJCWVsc2UNCj4gIAkJCXBzdGF0 cy0+eHN0YXRzW1ZIT1NUX01VTFRJQ0FTVF9QS1RdKys7DQo+ICsJfSBlbHNlIHsNCj4gKwkJcHN0 YXRzLT54c3RhdHNbVkhPU1RfVU5JQ0FTVF9QS1RdKys7DQo+ICAJfQ0KPiAgfQ0KPiANCj4gIHN0 YXRpYyB2b2lkDQo+IC12aG9zdF91cGRhdGVfcGFja2V0X3hzdGF0cyhzdHJ1Y3Qgdmhvc3RfcXVl dWUgKnZxLA0KPiAtCQkJICAgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywNCj4gLQkJCSAgIHVpbnQx Nl90IGNvdW50KQ0KPiArdmhvc3RfdXBkYXRlX3BhY2tldF94c3RhdHMoc3RydWN0IHZob3N0X3F1 ZXVlICp2cSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywNCj4gKwkJCSAgIHVpbnQxNl90IGNvdW50 LCB1aW50NjRfdCBuYl9ieXRlcywNCj4gKwkJCSAgIHVpbnQ2NF90IG5iX21pc3NlZCkNCj4gIHsN Cj4gIAl1aW50MzJfdCBwa3RfbGVuID0gMDsNCj4gIAl1aW50NjRfdCBpID0gMDsNCj4gIAl1aW50 NjRfdCBpbmRleDsNCj4gIAlzdHJ1Y3Qgdmhvc3Rfc3RhdHMgKnBzdGF0cyA9ICZ2cS0+c3RhdHM7 DQo+IA0KPiArCXBzdGF0cy0+eHN0YXRzW1ZIT1NUX0JZVEVdICs9IG5iX2J5dGVzOw0KPiArCXBz dGF0cy0+eHN0YXRzW1ZIT1NUX01JU1NFRF9QS1RdICs9IG5iX21pc3NlZDsNCj4gKwlwc3RhdHMt PnhzdGF0c1tWSE9TVF9VTklDQVNUX1BLVF0gKz0gbmJfbWlzc2VkOw0KPiArDQo+ICAJZm9yIChp ID0gMDsgaSA8IGNvdW50IDsgaSsrKSB7DQo+ICsJCXBzdGF0cy0+eHN0YXRzW1ZIT1NUX1BLVF0r KzsNCj4gIAkJcGt0X2xlbiA9IGJ1ZnNbaV0tPnBrdF9sZW47DQo+ICAJCWlmIChwa3RfbGVuID09 IDY0KSB7DQo+ICAJCQlwc3RhdHMtPnhzdGF0c1tWSE9TVF82NF9QS1RdKys7DQo+IEBAIC0zNzUs NyArMzY4LDcgQEAgdmhvc3RfdXBkYXRlX3BhY2tldF94c3RhdHMoc3RydWN0IHZob3N0X3F1ZXVl ICp2cSwNCj4gIAkJCWVsc2UgaWYgKHBrdF9sZW4gPiAxNTIyKQ0KPiAgCQkJCXBzdGF0cy0+eHN0 YXRzW1ZIT1NUXzE1MjNfVE9fTUFYX1BLVF0rKzsNCj4gIAkJfQ0KPiAtCQl2aG9zdF9jb3VudF9t dWx0aWNhc3RfYnJvYWRjYXN0KHZxLCBidWZzW2ldKTsNCj4gKwkJdmhvc3RfY291bnRfeGNhc3Rf cGFja2V0cyh2cSwgYnVmc1tpXSk7DQo+ICAJfQ0KPiAgfQ0KPiANCj4gQEAgLTM4NSw2ICszNzgs NyBAQCBldGhfdmhvc3Rfcngodm9pZCAqcSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywgdWludDE2 X3QNCj4gbmJfYnVmcykNCj4gIAlzdHJ1Y3Qgdmhvc3RfcXVldWUgKnIgPSBxOw0KPiAgCXVpbnQx Nl90IGksIG5iX3J4ID0gMDsNCj4gIAl1aW50MTZfdCBuYl9yZWNlaXZlID0gbmJfYnVmczsNCj4g Kwl1aW50NjRfdCBuYl9ieXRlcyA9IDA7DQo+IA0KPiAgCWlmICh1bmxpa2VseShydGVfYXRvbWlj MzJfcmVhZCgmci0+YWxsb3dfcXVldWluZykgPT0gMCkpDQo+ICAJCXJldHVybiAwOw0KPiBAQCAt NDE5LDEwICs0MTMsMTEgQEAgZXRoX3Zob3N0X3J4KHZvaWQgKnEsIHN0cnVjdCBydGVfbWJ1ZiAq KmJ1ZnMsDQo+IHVpbnQxNl90IG5iX2J1ZnMpDQo+ICAJCWlmIChyLT5pbnRlcm5hbC0+dmxhbl9z dHJpcCkNCj4gIAkJCXJ0ZV92bGFuX3N0cmlwKGJ1ZnNbaV0pOw0KPiANCj4gLQkJci0+c3RhdHMu Ynl0ZXMgKz0gYnVmc1tpXS0+cGt0X2xlbjsNCj4gKwkJbmJfYnl0ZXMgKz0gYnVmc1tpXS0+cGt0 X2xlbjsNCj4gIAl9DQo+IA0KPiAtCXZob3N0X3VwZGF0ZV9wYWNrZXRfeHN0YXRzKHIsIGJ1ZnMs IG5iX3J4KTsNCj4gKwlyLT5zdGF0cy5ieXRlcyArPSBuYl9ieXRlczsNCj4gKwl2aG9zdF91cGRh dGVfcGFja2V0X3hzdGF0cyhyLCBidWZzLCBuYl9yeCwgbmJfYnl0ZXMsIDApOw0KPiANCj4gIG91 dDoNCj4gIAlydGVfYXRvbWljMzJfc2V0KCZyLT53aGlsZV9xdWV1aW5nLCAwKTsNCj4gQEAgLTQz Niw2ICs0MzEsOCBAQCBldGhfdmhvc3RfdHgodm9pZCAqcSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVm cywgdWludDE2X3QNCj4gbmJfYnVmcykNCj4gIAlzdHJ1Y3Qgdmhvc3RfcXVldWUgKnIgPSBxOw0K PiAgCXVpbnQxNl90IGksIG5iX3R4ID0gMDsNCj4gIAl1aW50MTZfdCBuYl9zZW5kID0gMDsNCj4g Kwl1aW50NjRfdCBuYl9ieXRlcyA9IDA7DQo+ICsJdWludDY0X3QgbmJfbWlzc2VkID0gMDsNCj4g DQo+ICAJaWYgKHVubGlrZWx5KHJ0ZV9hdG9taWMzMl9yZWFkKCZyLT5hbGxvd19xdWV1aW5nKSA9 PSAwKSkNCj4gIAkJcmV0dXJuIDA7DQo+IEBAIC00NzYsMjAgKzQ3MywyMyBAQCBldGhfdmhvc3Rf dHgodm9pZCAqcSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywNCj4gdWludDE2X3QgbmJfYnVmcykN Cj4gIAkJCWJyZWFrOw0KPiAgCX0NCj4gDQo+ICsJZm9yIChpID0gMDsgbGlrZWx5KGkgPCBuYl90 eCk7IGkrKykNCj4gKwkJbmJfYnl0ZXMgKz0gYnVmc1tpXS0+cGt0X2xlbjsNCj4gKw0KPiArCW5i X21pc3NlZCA9IG5iX2J1ZnMgLSBuYl90eDsNCj4gKw0KPiAgCXItPnN0YXRzLnBrdHMgKz0gbmJf dHg7DQo+ICsJci0+c3RhdHMuYnl0ZXMgKz0gbmJfYnl0ZXM7DQo+ICAJci0+c3RhdHMubWlzc2Vk X3BrdHMgKz0gbmJfYnVmcyAtIG5iX3R4Ow0KPiANCj4gLQlmb3IgKGkgPSAwOyBsaWtlbHkoaSA8 IG5iX3R4KTsgaSsrKQ0KPiAtCQlyLT5zdGF0cy5ieXRlcyArPSBidWZzW2ldLT5wa3RfbGVuOw0K PiAtDQo+IC0Jdmhvc3RfdXBkYXRlX3BhY2tldF94c3RhdHMociwgYnVmcywgbmJfdHgpOw0KPiAr CXZob3N0X3VwZGF0ZV9wYWNrZXRfeHN0YXRzKHIsIGJ1ZnMsIG5iX3R4LCBuYl9ieXRlcywgbmJf bWlzc2VkKTsNCj4gDQo+IC0JLyogQWNjb3JkaW5nIHRvIFJGQzI4NjMgcGFnZTQyIHNlY3Rpb24g aWZIQ091dE11bHRpY2FzdFBrdHMgYW5kDQo+IC0JICogaWZIQ091dEJyb2FkY2FzdFBrdHMsIHRo ZSBjb3VudGVycyAibXVsdGljYXN0IiBhbmQgImJyb2FkY2FzdCINCj4gLQkgKiBhcmUgaW5jcmVh c2VkIHdoZW4gcGFja2V0cyBhcmUgbm90IHRyYW5zbWl0dGVkIHN1Y2Nlc3NmdWxseS4NCj4gKwkv KiBBY2NvcmRpbmcgdG8gUkZDMjg2MywgaWZIQ091dFVjYXN0UGt0cywgaWZIQ091dE11bHRpY2Fz dFBrdHMgYW5kDQo+ICsJICogaWZIQ091dEJyb2FkY2FzdFBrdHMgY291bnRlcnMgYXJlIGluY3Jl YXNlZCB3aGVuIHBhY2tldHMgYXJlIG5vdA0KPiArCSAqIHRyYW5zbWl0dGVkIHN1Y2Nlc3NmdWxs eS4NCj4gIAkgKi8NCj4gIAlmb3IgKGkgPSBuYl90eDsgaSA8IG5iX2J1ZnM7IGkrKykNCj4gLQkJ dmhvc3RfY291bnRfbXVsdGljYXN0X2Jyb2FkY2FzdChyLCBidWZzW2ldKTsNCj4gKwkJdmhvc3Rf Y291bnRfeGNhc3RfcGFja2V0cyhyLCBidWZzW2ldKTsNCj4gDQo+ICAJZm9yIChpID0gMDsgbGlr ZWx5KGkgPCBuYl90eCk7IGkrKykNCj4gIAkJcnRlX3BrdG1idWZfZnJlZShidWZzW2ldKTsNCj4g LS0NCj4gMi4xOC40DQoNClJldmlld2VkLWJ5OiBDaGVuYm8gWGlhIDxjaGVuYm8ueGlhQGludGVs LmNvbT4NCg==