From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 7AF19199A9 for ; Fri, 22 Sep 2017 17:52:11 +0200 (CEST) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga105.jf.intel.com with ESMTP; 22 Sep 2017 08:52:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,427,1500966000"; d="scan'208";a="154395168" Received: from irsmsx109.ger.corp.intel.com ([163.33.3.23]) by fmsmga005.fm.intel.com with ESMTP; 22 Sep 2017 08:52:09 -0700 Received: from irsmsx108.ger.corp.intel.com ([169.254.11.167]) by IRSMSX109.ger.corp.intel.com ([169.254.13.28]) with mapi id 14.03.0319.002; Fri, 22 Sep 2017 16:52:08 +0100 From: "Dumitrescu, Cristian" To: Olivier Chirossel CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] [PATCH v3] lib/librte_sched: fix update tc_credits Thread-Index: AQHTM7MXturMcmpHXUq0aDZGmo+NMaLBCnww Date: Fri, 22 Sep 2017 15:52:07 +0000 Message-ID: <3EB4FA525960D640B5BDFFD6A3D891267BABFB4E@IRSMSX108.ger.corp.intel.com> References: <1499348668-2155-2-git-send-email-olivier.chirossel@gmail.com> <71309e54-c9b1-2a47-0114-a018c9047a21@intel.com> In-Reply-To: <71309e54-c9b1-2a47-0114-a018c9047a21@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] [PATCH v3] lib/librte_sched: fix update tc_credits 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: , X-List-Received-Date: Fri, 22 Sep 2017 15:52:13 -0000 PiANCj4gU2lnbmVkLW9mZi1ieTogT2xpdmllciBDaGlyb3NzZWwgPG9saXZpZXIuY2hpcm9zc2Vs QGdtYWlsLmNvbT4NCj4gLS0tDQo+ICBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcW9zX2ZyYW1ld29y ay5yc3QgfCAgMTAgKystDQo+ICBsaWIvbGlicnRlX3NjaGVkL3J0ZV9zY2hlZC5jICAgICAgICAg ICAgfCAxMjQNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0NCj4gIDIgZmlsZXMg Y2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAt LWdpdCBhL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9xb3NfZnJhbWV3b3JrLnJzdA0KPiBiL2RvYy9n dWlkZXMvcHJvZ19ndWlkZS9xb3NfZnJhbWV3b3JrLnJzdA0KPiBpbmRleCBmM2Y2MGI4Li5lNTY2 ZmY5IDEwMDY0NA0KPiAtLS0gYS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcW9zX2ZyYW1ld29yay5y c3QNCj4gKysrIGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3Fvc19mcmFtZXdvcmsucnN0DQo+IEBA IC03OTksNiArNzk5LDkgQEAgYXMgZGVzY3JpYmVkIGluIDpudW1yZWY6YHRhYmxlX3Fvc18xMGAg YW5kDQo+IDpudW1yZWY6YHRhYmxlX3Fvc18xMWAuDQo+ICAgICB8IDQgfCB0Y19jcmVkaXRzICAg ICAgICAgICAgfCBCeXRlcyB8IEN1cnJlbnQgdXBwZXIgbGltaXQgZm9yIHRoZQ0KPiBudW1iZXIg b2YgY3JlZGl0cyB0aGF0IGNhbiBiZSBjb25zdW1lZCBieSB8DQo+ICAgICB8ICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICB8IHRoZSBjdXJyZW50IHRyYWZmaWMgY2xhc3MgZm9yDQo+ IHRoZSByZW1haW5kZXIgb2YgdGhlIGN1cnJlbnQgICAgICAgICAgICB8DQo+ICAgICB8ICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8IGVuZm9yY2VtZW50IHBlcmlvZC4NCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArICAgfCAgIHwgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgfCB3aGVuIFRoZSBjcmVkaXRzIGlzIHVwZGF0ZQ0KPiAo ZXZlcnkgdGNfcGVyaW9kKSB0aGUgICAgICAgICAgICAgICAgICAgICAgfA0KPiArICAgfCAgIHwg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfCB0Y19jcmVkaXRzX3Blcl9wZXJpb2QgaXMg YWRkZWQNCj4gdG8gdGhlIHZhbHVlICh0Y19jcmVkaXRzKSBpZiB0aGUgbmV3ICAgfA0KPiArICAg fCAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfCB2YWx1ZSBpcyBsb3dlciB0aGFu IHRjX3JhdGUuDQo+IGVsc2UgdGhlIHZhbHVlIGlzIHNldCB0byB0Y19yYXRlLiAgICAgICAgfA0K PiAgICAgfCAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfA0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+IA0KPiArLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0tLS0tLS0tLS0tLS0tKw0KPiAgQEAgLTgxOSw4ICs4MjIs MTEgQEAgYXMgZGVzY3JpYmVkIGluIDpudW1yZWY6YHRhYmxlX3Fvc18xMGAgYW5kDQo+IDpudW1y ZWY6YHRhYmxlX3Fvc18xMWAuDQo+ICAgICB8ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICAgICB8ICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpZiAodGltZSA+PSB0Y190aW1lKSB7DQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gICAgIHwgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwNCj4gLSAgIHwgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRjX2NyZWRp dHMgPSB0Y19jcmVkaXRzX3Blcl9wZXJpb2Q7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwNCj4gLSAgIHwgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyAgIHwgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8IGlmICh0Y19jcmVkaXRzICsNCj4gdGNfY3JlZGl0c19w ZXJfcGVyaW9kIDwgdGNfcmF0ZSkgeyAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyAgIHwg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHRjX2NyZWRpdHMgKz0NCj4gdGNf Y3JlZGl0c19wZXJfcGVyaW9kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiAr ICAgfCAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZWxzZSB7DQo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyAgIHwgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgIHRjX2NyZWRpdHMgPSB0Y19yYXRlDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyAgIHwgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8IH0NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0K PiAgICAgfCAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdGNfdGltZSA9IHRpbWUgKyB0 Y19wZXJpb2Q7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4g ICAgIHwgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwNCj4gICAgIHwgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICB8IH0NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiBk aWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9zY2hlZC9ydGVfc2NoZWQuYyBiL2xpYi9saWJydGVfc2No ZWQvcnRlX3NjaGVkLmMNCj4gaW5kZXggYjdjYmExMS4uNzMyZDVlZiAxMDA2NDQNCj4gLS0tIGEv bGliL2xpYnJ0ZV9zY2hlZC9ydGVfc2NoZWQuYw0KPiArKysgYi9saWIvbGlicnRlX3NjaGVkL3J0 ZV9zY2hlZC5jDQo+IEBAIC04NSw2ICs4NSw3IEBAIHN0cnVjdCBydGVfc2NoZWRfc3VicG9ydCB7 DQo+ICAgCS8qIFRyYWZmaWMgY2xhc3NlcyAoVENzKSAqLw0KPiAgCXVpbnQ2NF90IHRjX3RpbWU7 IC8qIHRpbWUgb2YgbmV4dCB1cGRhdGUgKi8NCj4gKwl1aW50MzJfdCB0Y19yYXRlW1JURV9TQ0hF RF9UUkFGRklDX0NMQVNTRVNfUEVSX1BJUEVdOw0KPiAJdWludDMyX3QNCj4gdGNfY3JlZGl0c19w ZXJfcGVyaW9kW1JURV9TQ0hFRF9UUkFGRklDX0NMQVNTRVNfUEVSX1BJUEVdOw0KPiAgCXVpbnQz Ml90IHRjX2NyZWRpdHNbUlRFX1NDSEVEX1RSQUZGSUNfQ0xBU1NFU19QRVJfUElQRV07DQo+ICAJ dWludDMyX3QgdGNfcGVyaW9kOw0KPiBAQCAtMTA5LDYgKzExMCw3IEBAIHN0cnVjdCBydGVfc2No ZWRfcGlwZV9wcm9maWxlIHsNCj4gIAl1aW50MzJfdCB0Yl9zaXplOw0KPiAgIAkvKiBQaXBlIHRy YWZmaWMgY2xhc3NlcyAqLw0KPiArCXVpbnQzMl90IHRjX3JhdGVbUlRFX1NDSEVEX1RSQUZGSUNf Q0xBU1NFU19QRVJfUElQRV07DQo+ICAJdWludDMyX3QgdGNfcGVyaW9kOw0KPiAgCXVpbnQzMl90 DQo+IHRjX2NyZWRpdHNfcGVyX3BlcmlvZFtSVEVfU0NIRURfVFJBRkZJQ19DTEFTU0VTX1BFUl9Q SVBFXTsNCj4gIAl1aW50OF90IHRjX292X3dlaWdodDsNCj4gQEAgLTU2OCwxMSArNTcwLDE0IEBA IHJ0ZV9zY2hlZF9wb3J0X2NvbmZpZ19waXBlX3Byb2ZpbGVfdGFibGUoc3RydWN0DQo+IHJ0ZV9z Y2hlZF9wb3J0ICpwb3J0LCBzdHJ1Y3QgcnRlDQo+ICAJCS8qIFRyYWZmaWMgQ2xhc3NlcyAqLw0K PiAgCQlkc3QtPnRjX3BlcmlvZCA9IHJ0ZV9zY2hlZF90aW1lX21zX3RvX2J5dGVzKHNyYy0NCj4g PnRjX3BlcmlvZCwNCj4gIAkJCQkJCQkgICAgcGFyYW1zLT5yYXRlKTsNCj4gLQ0KPiAtCQlmb3Ig KGogPSAwOyBqIDwgUlRFX1NDSEVEX1RSQUZGSUNfQ0xBU1NFU19QRVJfUElQRTsgaisrKQ0KPiAr DQo+ICsJCWZvciAoaiA9IDA7IGogPCBSVEVfU0NIRURfVFJBRkZJQ19DTEFTU0VTX1BFUl9QSVBF OyBqKyspIHsNCj4gKwkJICAgICAgICBkc3QtPnRjX3JhdGVbal0gPSBzcmMtPnRjX3JhdGVbal07 DQo+ICAJCQlkc3QtPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFtqXQ0KPiAgCQkJCT0gcnRlX3NjaGVk X3RpbWVfbXNfdG9fYnl0ZXMoc3JjLQ0KPiA+dGNfcGVyaW9kLA0KPiAgCQkJCQkJCSAgICAgc3Jj LT50Y19yYXRlW2pdKTsNCj4gKwkJfQ0KPiArDQo+ICAgI2lmZGVmIFJURV9TQ0hFRF9TVUJQT1JU X1RDX09WDQo+ICAJCWRzdC0+dGNfb3Zfd2VpZ2h0ID0gc3JjLT50Y19vdl93ZWlnaHQ7DQo+IEBA IC04MzgsNiArODQzLDcgQEAgcnRlX3NjaGVkX3N1YnBvcnRfY29uZmlnKHN0cnVjdCBydGVfc2No ZWRfcG9ydA0KPiAqcG9ydCwNCj4gIAkvKiBUcmFmZmljIENsYXNzZXMgKFRDcykgKi8NCj4gIAlz LT50Y19wZXJpb2QgPSBydGVfc2NoZWRfdGltZV9tc190b19ieXRlcyhwYXJhbXMtPnRjX3Blcmlv ZCwNCj4gcG9ydC0+cmF0ZSk7DQo+ICAJZm9yIChpID0gMDsgaSA8IFJURV9TQ0hFRF9UUkFGRklD X0NMQVNTRVNfUEVSX1BJUEU7IGkrKykgew0KPiArCSAgICAgICAgcy0+dGNfcmF0ZVtpXSA9ICBw YXJhbXMtPnRjX3JhdGVbaV07DQo+ICAJCXMtPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFtpXQ0KPiAg CQkJPSBydGVfc2NoZWRfdGltZV9tc190b19ieXRlcyhwYXJhbXMtPnRjX3BlcmlvZCwNCj4gIAkJ CQkJCSAgICAgcGFyYW1zLT50Y19yYXRlW2ldKTsNCj4gQEAgLTE0OTUsMTkgKzE1MDEsNTkgQEAg Z3JpbmRlcl9jcmVkaXRzX3VwZGF0ZShzdHJ1Y3QgcnRlX3NjaGVkX3BvcnQNCj4gKnBvcnQsIHVp bnQzMl90IHBvcykNCj4gICAJLyogU3VicG9ydCBUQ3MgKi8NCj4gIAlpZiAodW5saWtlbHkocG9y dC0+dGltZSA+PSBzdWJwb3J0LT50Y190aW1lKSkgew0KPiAtCQlzdWJwb3J0LT50Y19jcmVkaXRz WzBdID0gc3VicG9ydC0+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzBdOw0KPiAtCQlzdWJwb3J0LT50 Y19jcmVkaXRzWzFdID0gc3VicG9ydC0+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzFdOw0KPiAtCQlz dWJwb3J0LT50Y19jcmVkaXRzWzJdID0gc3VicG9ydC0+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzJd Ow0KPiAtCQlzdWJwb3J0LT50Y19jcmVkaXRzWzNdID0gc3VicG9ydC0+dGNfY3JlZGl0c19wZXJf cGVyaW9kWzNdOw0KPiArCSAgICAgICAgaWYgKGxpa2VseSgoc3VicG9ydC0+dGNfY3JlZGl0c1sw XSArDQo+IHN1YnBvcnQtPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFswXSkgPCBzdWJwb3J0LT50Y19y YXRlWzBdKSkgew0KPiArCQkgICAgICAgIHN1YnBvcnQtPnRjX2NyZWRpdHNbMF0gKz0gc3VicG9y dC0NCj4gPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFswXTsNCj4gKwkJfQ0KPiArCQllbHNlIHsNCj4g KwkJICAgICAgICBzdWJwb3J0LT50Y19jcmVkaXRzWzBdID0gc3VicG9ydC0+dGNfcmF0ZVswXTsN Cj4gKwkJfQ0KPiArCQlpZiAobGlrZWx5KChzdWJwb3J0LT50Y19jcmVkaXRzWzFdICsNCj4gc3Vi cG9ydC0+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzFdKSA8IHN1YnBvcnQtPnRjX3JhdGVbMV0pKSB7 DQo+ICsJCSAgICAgICAgc3VicG9ydC0+dGNfY3JlZGl0c1sxXSArPSBzdWJwb3J0LQ0KPiA+dGNf Y3JlZGl0c19wZXJfcGVyaW9kWzFdOw0KPiArCQl9DQo+ICsJCWVsc2Ugew0KPiArCQkgICAgICAg IHN1YnBvcnQtPnRjX2NyZWRpdHNbMV0gPSBzdWJwb3J0LT50Y19yYXRlWzFdOw0KPiArCQl9DQo+ ICsJCWlmIChsaWtlbHkoKHN1YnBvcnQtPnRjX2NyZWRpdHNbMl0gKw0KPiBzdWJwb3J0LT50Y19j cmVkaXRzX3Blcl9wZXJpb2RbMl0pIDwgc3VicG9ydC0+dGNfcmF0ZVsyXSkpIHsNCj4gKwkJICAg ICAgICBzdWJwb3J0LT50Y19jcmVkaXRzWzJdICs9IHN1YnBvcnQtDQo+ID50Y19jcmVkaXRzX3Bl cl9wZXJpb2RbMl07DQo+ICsJCX0NCj4gKwkJZWxzZSB7DQo+ICsJCSAgICAgICAgc3VicG9ydC0+ dGNfY3JlZGl0c1syXSA9IHN1YnBvcnQtPnRjX3JhdGVbMl07DQo+ICsJCX0NCj4gKwkJaWYgKGxp a2VseSgoc3VicG9ydC0+dGNfY3JlZGl0c1szXSArDQo+IHN1YnBvcnQtPnRjX2NyZWRpdHNfcGVy X3BlcmlvZFszXSkgPCBzdWJwb3J0LT50Y19yYXRlWzNdKSkgew0KPiArCQkgICAgICAgIHN1YnBv cnQtPnRjX2NyZWRpdHNbM10gKz0gc3VicG9ydC0NCj4gPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFsz XTsNCj4gKwkJfQ0KPiArCQllbHNlIHsNCj4gKwkJICAgICAgICBzdWJwb3J0LT50Y19jcmVkaXRz WzNdID0gc3VicG9ydC0+dGNfcmF0ZVszXTsNCj4gKwkJfQ0KPiAgCQlzdWJwb3J0LT50Y190aW1l ID0gcG9ydC0+dGltZSArIHN1YnBvcnQtPnRjX3BlcmlvZDsNCj4gIAl9DQo+ICAgCS8qIFBpcGUg VENzICovDQo+ICAJaWYgKHVubGlrZWx5KHBvcnQtPnRpbWUgPj0gcGlwZS0+dGNfdGltZSkpIHsN Cj4gLQkJcGlwZS0+dGNfY3JlZGl0c1swXSA9IHBhcmFtcy0+dGNfY3JlZGl0c19wZXJfcGVyaW9k WzBdOw0KPiAtCQlwaXBlLT50Y19jcmVkaXRzWzFdID0gcGFyYW1zLT50Y19jcmVkaXRzX3Blcl9w ZXJpb2RbMV07DQo+IC0JCXBpcGUtPnRjX2NyZWRpdHNbMl0gPSBwYXJhbXMtPnRjX2NyZWRpdHNf cGVyX3BlcmlvZFsyXTsNCj4gLQkJcGlwZS0+dGNfY3JlZGl0c1szXSA9IHBhcmFtcy0+dGNfY3Jl ZGl0c19wZXJfcGVyaW9kWzNdOw0KPiArCSAgICAgICAgaWYgKGxpa2VseSgocGlwZS0+dGNfY3Jl ZGl0c1swXSArDQo+IHBhcmFtcy0+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzBdKSA8IHBhcmFtcy0+ dGNfcmF0ZVswXSkpIHsNCj4gKwkJICAgICAgICBwaXBlLT50Y19jcmVkaXRzWzBdICs9IHBhcmFt cy0NCj4gPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFswXTsNCj4gKwkJfQ0KPiArCQllbHNlIHsNCj4g KwkJICAgICAgICBwaXBlLT50Y19jcmVkaXRzWzBdID0gcGFyYW1zLT50Y19yYXRlWzBdOw0KPiAr CQl9DQo+ICsJICAgICAgICBpZiAobGlrZWx5KChwaXBlLT50Y19jcmVkaXRzWzFdICsNCj4gcGFy YW1zLT50Y19jcmVkaXRzX3Blcl9wZXJpb2RbMV0pIDwgcGFyYW1zLT50Y19yYXRlWzFdKSkgew0K PiArCQkgICAgICAgIHBpcGUtPnRjX2NyZWRpdHNbMV0gKz0gcGFyYW1zLQ0KPiA+dGNfY3JlZGl0 c19wZXJfcGVyaW9kWzFdOw0KPiArCQl9DQo+ICsJCWVsc2Ugew0KPiArCQkgICAgICAgIHBpcGUt PnRjX2NyZWRpdHNbMV0gPSBwYXJhbXMtPnRjX3JhdGVbMV07DQo+ICsJCX0NCj4gKwkgICAgICAg IGlmIChsaWtlbHkoKHBpcGUtPnRjX2NyZWRpdHNbMl0gKw0KPiBwYXJhbXMtPnRjX2NyZWRpdHNf cGVyX3BlcmlvZFsyXSkgPCBwYXJhbXMtPnRjX3JhdGVbMl0pKSB7DQo+ICsJCSAgICAgICAgcGlw ZS0+dGNfY3JlZGl0c1syXSArPSBwYXJhbXMtDQo+ID50Y19jcmVkaXRzX3Blcl9wZXJpb2RbMl07 DQo+ICsJCX0NCj4gKwkJZWxzZSB7DQo+ICsJCSAgICAgICAgcGlwZS0+dGNfY3JlZGl0c1syXSA9 IHBhcmFtcy0+dGNfcmF0ZVsyXTsNCj4gKwkJfQ0KPiArCSAgICAgICAgaWYgKGxpa2VseSgocGlw ZS0+dGNfY3JlZGl0c1szXSArDQo+IHBhcmFtcy0+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzNdKSA8 IHBhcmFtcy0+dGNfcmF0ZVszXSkpIHsNCj4gKwkJICAgICAgICBwaXBlLT50Y19jcmVkaXRzWzNd ICs9IHBhcmFtcy0NCj4gPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFszXTsNCj4gKwkJfQ0KPiArCQll bHNlIHsNCj4gKwkJICAgICAgICBwaXBlLT50Y19jcmVkaXRzWzNdID0gcGFyYW1zLT50Y19yYXRl WzNdOw0KPiArCQl9DQo+ICAJCXBpcGUtPnRjX3RpbWUgPSBwb3J0LT50aW1lICsgcGFyYW1zLT50 Y19wZXJpb2Q7DQo+ICAJfQ0KPiAgfQ0KPiBAQCAtMTU3MywyMiArMTYxOSw2MCBAQCBncmluZGVy X2NyZWRpdHNfdXBkYXRlKHN0cnVjdCBydGVfc2NoZWRfcG9ydA0KPiAqcG9ydCwgdWludDMyX3Qg cG9zKQ0KPiAgCS8qIFN1YnBvcnQgVENzICovDQo+ICAJaWYgKHVubGlrZWx5KHBvcnQtPnRpbWUg Pj0gc3VicG9ydC0+dGNfdGltZSkpIHsNCj4gIAkJc3VicG9ydC0+dGNfb3Zfd20gPSBncmluZGVy X3RjX292X2NyZWRpdHNfdXBkYXRlKHBvcnQsDQo+IHBvcyk7DQo+IC0NCj4gLQkJc3VicG9ydC0+ dGNfY3JlZGl0c1swXSA9IHN1YnBvcnQtPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFswXTsNCj4gLQkJ c3VicG9ydC0+dGNfY3JlZGl0c1sxXSA9IHN1YnBvcnQtPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFsx XTsNCj4gLQkJc3VicG9ydC0+dGNfY3JlZGl0c1syXSA9IHN1YnBvcnQtPnRjX2NyZWRpdHNfcGVy X3BlcmlvZFsyXTsNCj4gLQkJc3VicG9ydC0+dGNfY3JlZGl0c1szXSA9IHN1YnBvcnQtPnRjX2Ny ZWRpdHNfcGVyX3BlcmlvZFszXTsNCj4gLQ0KPiArCQlpZiAobGlrZWx5KChzdWJwb3J0LT50Y19j cmVkaXRzWzBdICsNCj4gc3VicG9ydC0+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzBdKSA8IHN1YnBv cnQtPnRjX3JhdGVbMF0pKSB7DQo+ICsJCSAgICAgICAgc3VicG9ydC0+dGNfY3JlZGl0c1swXSAr PSBzdWJwb3J0LQ0KPiA+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzBdOw0KPiArCQl9DQo+ICsJCWVs c2Ugew0KPiArCQkgICAgICAgIHN1YnBvcnQtPnRjX2NyZWRpdHNbMF0gPSBzdWJwb3J0LT50Y19y YXRlWzBdOw0KPiArCQl9DQo+ICsJCWlmIChsaWtlbHkoKHN1YnBvcnQtPnRjX2NyZWRpdHNbMV0g Kw0KPiBzdWJwb3J0LT50Y19jcmVkaXRzX3Blcl9wZXJpb2RbMV0pIDwgc3VicG9ydC0+dGNfcmF0 ZVsxXSkpIHsNCj4gKwkJICAgICAgICBzdWJwb3J0LT50Y19jcmVkaXRzWzFdICs9IHN1YnBvcnQt DQo+ID50Y19jcmVkaXRzX3Blcl9wZXJpb2RbMV07DQo+ICsJCX0NCj4gKwkJZWxzZSB7DQo+ICsJ CSAgICAgICAgc3VicG9ydC0+dGNfY3JlZGl0c1sxXSA9IHN1YnBvcnQtPnRjX3JhdGVbMV07DQo+ ICsJCX0NCj4gKwkJaWYgKGxpa2VseSgoc3VicG9ydC0+dGNfY3JlZGl0c1syXSArDQo+IHN1YnBv cnQtPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFsyXSkgPCBzdWJwb3J0LT50Y19yYXRlWzJdKSkgew0K PiArCQkgICAgICAgIHN1YnBvcnQtPnRjX2NyZWRpdHNbMl0gKz0gc3VicG9ydC0NCj4gPnRjX2Ny ZWRpdHNfcGVyX3BlcmlvZFsyXTsNCj4gKwkJfQ0KPiArCQllbHNlIHsNCj4gKwkJICAgICAgIHN1 YnBvcnQtPnRjX2NyZWRpdHNbMl0gPSBzdWJwb3J0LT50Y19yYXRlWzJdOw0KPiArCQl9DQo+ICsJ CWlmIChsaWtlbHkoKHN1YnBvcnQtPnRjX2NyZWRpdHNbM10gKw0KPiBzdWJwb3J0LT50Y19jcmVk aXRzX3Blcl9wZXJpb2RbM10pIDwgc3VicG9ydC0+dGNfcmF0ZVszXSkpIHsNCj4gKwkJICAgICAg ICBzdWJwb3J0LT50Y19jcmVkaXRzWzNdICs9IHN1YnBvcnQtDQo+ID50Y19jcmVkaXRzX3Blcl9w ZXJpb2RbM107DQo+ICsJCX0NCj4gKwkJZWxzZSB7DQo+ICsJCSAgICAgICAgc3VicG9ydC0+dGNf Y3JlZGl0c1szXSA9IHN1YnBvcnQtPnRjX3JhdGVbM107DQo+ICsJCX0NCj4gIAkJc3VicG9ydC0+ dGNfdGltZSA9IHBvcnQtPnRpbWUgKyBzdWJwb3J0LT50Y19wZXJpb2Q7DQo+ICAJCXN1YnBvcnQt PnRjX292X3BlcmlvZF9pZCsrOw0KPiAgCX0NCj4gICAJLyogUGlwZSBUQ3MgKi8NCj4gIAlpZiAo dW5saWtlbHkocG9ydC0+dGltZSA+PSBwaXBlLT50Y190aW1lKSkgew0KPiAtCQlwaXBlLT50Y19j cmVkaXRzWzBdID0gcGFyYW1zLT50Y19jcmVkaXRzX3Blcl9wZXJpb2RbMF07DQo+IC0JCXBpcGUt PnRjX2NyZWRpdHNbMV0gPSBwYXJhbXMtPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFsxXTsNCj4gLQkJ cGlwZS0+dGNfY3JlZGl0c1syXSA9IHBhcmFtcy0+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzJdOw0K PiAtCQlwaXBlLT50Y19jcmVkaXRzWzNdID0gcGFyYW1zLT50Y19jcmVkaXRzX3Blcl9wZXJpb2Rb M107DQo+ICsJICAgICAgICBpZiAobGlrZWx5KChwaXBlLT50Y19jcmVkaXRzWzBdICsNCj4gcGFy YW1zLT50Y19jcmVkaXRzX3Blcl9wZXJpb2RbMF0pIDwgcGFyYW1zLT50Y19yYXRlWzBdKSkgew0K PiArCQkgICAgICAgIHBpcGUtPnRjX2NyZWRpdHNbMF0gKz0gcGFyYW1zLQ0KPiA+dGNfY3JlZGl0 c19wZXJfcGVyaW9kWzBdOw0KPiArCQl9DQo+ICsJCWVsc2Ugew0KPiArCQkgICAgICAgIHBpcGUt PnRjX2NyZWRpdHNbMF0gPSBwYXJhbXMtPnRjX3JhdGVbMF07DQo+ICsJCX0NCj4gKwkgICAgICAg IGlmIChsaWtlbHkoKHBpcGUtPnRjX2NyZWRpdHNbMV0gKw0KPiBwYXJhbXMtPnRjX2NyZWRpdHNf cGVyX3BlcmlvZFsxXSkgPCBwYXJhbXMtPnRjX3JhdGVbMV0pKSB7DQo+ICsJCSAgICAgICAgcGlw ZS0+dGNfY3JlZGl0c1sxXSArPSBwYXJhbXMtDQo+ID50Y19jcmVkaXRzX3Blcl9wZXJpb2RbMV07 DQo+ICsJCX0NCj4gKwkJZWxzZSB7DQo+ICsJCSAgICAgICAgcGlwZS0+dGNfY3JlZGl0c1sxXSA9 IHBhcmFtcy0+dGNfcmF0ZVsxXTsNCj4gKwkJfQ0KPiArCSAgICAgICAgaWYgKGxpa2VseSgocGlw ZS0+dGNfY3JlZGl0c1syXSArDQo+IHBhcmFtcy0+dGNfY3JlZGl0c19wZXJfcGVyaW9kWzJdKSA8 IHBhcmFtcy0+dGNfcmF0ZVsyXSkpIHsNCj4gKwkJICAgICAgICBwaXBlLT50Y19jcmVkaXRzWzJd ICs9IHBhcmFtcy0NCj4gPnRjX2NyZWRpdHNfcGVyX3BlcmlvZFsyXTsNCj4gKwkJfQ0KPiArCQll bHNlIHsNCj4gKwkJICAgICAgICBwaXBlLT50Y19jcmVkaXRzWzJdID0gcGFyYW1zLT50Y19yYXRl WzJdOw0KPiArCQl9DQo+ICsJICAgICAgICBpZiAobGlrZWx5KChwaXBlLT50Y19jcmVkaXRzWzNd ICsNCj4gcGFyYW1zLT50Y19jcmVkaXRzX3Blcl9wZXJpb2RbM10pIDwgcGFyYW1zLT50Y19yYXRl WzNdKSkgew0KPiArCQkgICAgICAgIHBpcGUtPnRjX2NyZWRpdHNbM10gKz0gcGFyYW1zLQ0KPiA+ dGNfY3JlZGl0c19wZXJfcGVyaW9kWzNdOw0KPiArCQl9DQo+ICsJCWVsc2Ugew0KPiArCQkgICAg ICAgIHBpcGUtPnRjX2NyZWRpdHNbM10gPSBwYXJhbXMtPnRjX3JhdGVbM107DQo+ICsJICAgICAg ICB9DQo+ICAJCXBpcGUtPnRjX3RpbWUgPSBwb3J0LT50aW1lICsgcGFyYW1zLT50Y19wZXJpb2Q7 DQo+ICAJfQ0KPiAgLS0gMi43LjQNCj4gDQoNCkhpIE9saXZpZXIsDQoNClRoYW5rcyBmb3IgeW91 ciBwYXRjaCwgSSBoYXZlIHJldmlld2VkIGl0IGluIGRldGFpbCwgYnV0IEkgaGF2ZSB0byBOQUsg aXQuDQoNClRoaXMgcGF0Y2ggbWlnaHQgaGVscCBmb3Igc29tZSBwYXJ0aWN1bGFyIGNhc2UgcmVs YXRlZCB0byBsb3cgcmF0ZSBwaXBlIGNvbmZpZ3VyYXRpb24sIGJ1dCBpdCBicmVha3MgZXZlcnl0 aGluZyBlbHNlLg0KDQpSaWdodCBub3csIHRvIGF2b2lkIHRoZSBNVFUgcHJvYmxlbSB0aGF0IHlv dSBhcmUgZGVzY3JpYmluZywgdGhlIHNvbHV0aW9uIGZvciBsb3cgcmF0ZSBwaXBlIGlzIHRvIHBp Y2sgdGhlIHRjX3BlcmlvZCBpbiBzdWNoIGEgd2F5IHRoYXQgdGNfY3JlZGl0c19wZXJfcGVyaW9k IGlzIGJpZ2dlciB0aGFuIE1UVS4NCkV4YW1wbGVzOiB0Y19wZXJpb2QgPSA0MCBtcywgTVRVID0g MTUwMCBieXRlcw0KYSkgcGlwZSByYXRlID0gdGMgcmF0ZSA9IDEgTUIvcyAoaGlnaCkgPT4gdGNf Y3JlZGl0c19wZXJfcGVyaW9kID0gNDAga0IgPiBNVFUgKE9LKQ0KYikgcGlwZSByYXRlID0gdGMg cmF0ZSA9IDEga0IvcyA9PiB0Y19jcmVkaXRzX3Blcl9wZXJpb2QgPSA0MCBCIDwgTVRVIChub3Qg T0spDQpjKSBwaXBlIHJhdGUgPSB0YyByYXRlID0gNDAga0IvcyA9PiB0Y19jcmVkaXRzX3Blcl9w ZXJpb2QgPSAxNjAwIEIgfj0gTVRVICh0aGlzIGlzIHRoZSB0aHJlc2hvbGQgZm9yIG1pbmltdW0g cGlwZSByYXRlIGZvciBnaXZlbiB0Y19wZXJpb2QpDQoNCkkgYWdyZWUgdGhpcyBjb3VsZCBiZSBp bXByb3ZlZCwgYnV0IHlvdXIgcHJvcG9zZWQgZml4IGRvZXMgbm90IGFjaGlldmUgdGhpczsgaXQg b25seSBkaXNhYmxlcyB0aGUgdGMgcmF0ZSBlbmZvcmNlbWVudCBtZWNoYW5pc20gYnkgc2V0dGlu ZyB0YyBjcmVkaXRzIHRvIGEgdmVyeSBoaWdoIHJhdGUgKGkuZS4gdGNfcmF0ZSkgdGhhdCBpcyBu b3QgY29ycmVsYXRlZCB3aXRoIHRjX3BlcmlvZCBpbiBhbnkgd2F5Lg0KDQpTbywgTkFLIGZvciBu b3cuDQoNClJlZ2FyZHMsDQpDcmlzdGlhbg0KDQo=