From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: Funky new vblank counter regressions in Linux 4.4-rc1 Date: Thu, 19 Nov 2015 21:45:57 +0200 Message-ID: <20151119194557.GB4437@intel.com> References: <564E0AF4.3050406@gmail.com> <20151119182051.GU4437@intel.com> <564E1F18.5070508@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id EE7516E663 for ; Mon, 30 Nov 2015 12:13:16 -0800 (PST) Resent-Message-ID: <20151130201314.GC4437@intel.com> Resent-To: dri-devel@lists.freedesktop.org Content-Disposition: inline In-Reply-To: <564E1F18.5070508@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mario Kleiner Cc: Michel =?iso-8859-1?Q?D=E4nzer?= List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBOb3YgMTksIDIwMTUgYXQgMDg6MTI6MjRQTSArMDEwMCwgTWFyaW8gS2xlaW5lciB3 cm90ZToKPiBPbiAxMS8xOS8yMDE1IDA3OjIwIFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4g PiBPbiBUaHUsIE5vdiAxOSwgMjAxNSBhdCAwNjo0NjoyOFBNICswMTAwLCBNYXJpbyBLbGVpbmVy IHdyb3RlOgo+ID4+IEhpIEFsZXggYW5kIE1pY2hlbCBhbmQgVmlsbGUsCj4gPj4KPiA+PiBpdCdz ICJmaXggdmJsYW5rIHN0dWZmIiB0aW1lIGFnYWluIDstKQo+ID4+Cj4gPj4gVmlsbGUncyBjaGFu Z2VzIHRvIHRoZSBEUk0ncyBkcm1faGFuZGxlX3ZibGFuaygpIC8KPiA+PiBkcm1fdXBkYXRlX3Zi bGFua19jb3VudCgpIGNvZGUgaW4gTGludXggNC40IG5vdCBvbmx5IG1hZGUgdGhhdCBjb2RlIG1v cmUKPiA+PiBlbGVnYW50LCBidXQgYWxzbyByZW1vdmVkIHRoZSByb2J1c3RuZXNzIGFnYWluc3Qg dGhlIHZibGFuayBpcnEgcXVpcmtzCj4gPj4gaW4gQU1EIGh3IGFuZCBzaW1pbGFyIGhhcmR3YXJl LiBTbyBub3cgaSBnZXQgdG9ucyBvZiBvZmYtYnktb25lIGVycm9ycyBhbmQKPiA+Pgo+ID4+ICJb ICAgNDMyLjM0NV0gKFdXKSBSQURFT04oMSk6IHJhZGVvbl9kcmkyX2ZsaXBfZXZlbnRfaGFuZGxl cjogUGFnZWZsaXAKPiA+PiBjb21wbGV0aW9uIGV2ZW50IGhhcyBpbXBvc3NpYmxlIG1zYyAyNDgw MyA8IHRhcmdldF9tc2MgMjQ4MDQiIFhPcmcKPiA+PiBtZXNzYWdlcyBmcm9tIHRoYXQga2VybmVs Lgo+ID4KPiA+IEFyZ2guIFNvcnJ5IGFib3V0IHRoYXQuCj4gPgo+IAo+IE9uIHRoZSBwbHVzIHNp ZGUsIHlvdXIgInZibGFuayB0aW1lc3RhbXAgZGVsdGFzIGFzIGZha2UgdmJsYW5rIGNvdW50ZXJz IiAKPiBjb2RlIHNlZW1zIHRvIHdvcmsgbmljZWx5IG9uIG5vdXZlYXUta21zLCBhcyBmYXIgYXMg dGVzdGluZyB3aXRoIHRocmVlIAo+IE52aWRpYSdzIHdlbnQgc28gZmFyIDopLiBBbmQgYm90aCBJ bnRlbCBncHUncyAoSEQgSXJvbmxha2UsIGFuZCAKPiBJdnlicmlkZ2UpIGkgdGVzdGVkIGNoZWNr ZWQgb3V0IG5pY2VseS4KPiAKPiBBbmQgYXQgbGVhc3QgdGhlIHJlY2VudCBudjUwKyBOVmlkaWEg VGVzbGEgYWxzbyBoYXZlIDE2IGJpdCB2YmxhbmsgCj4gY291bnRlcnMgd2hpY2ggd2UgY291bGQg aW1wbGVtZW50IGluIG5vdXZlYXUsIG1heWJlIHdpdGggdGhlIHNhbWUgCj4gdHJpY2tlcnkgdG8g YWxsb3cgbG9uZyB0cm91YmxlLWZyZWUgdmJsYW5rIG9mZiBwZXJpb2RzLCBob3BlZnVsbHkgdGhh dCAKPiB3b3VsZCBhbHNvIGFwcGx5IHRvIHRoZSBUZWdyYS00IGFuZCBsYXRlciBLZXBsZXIgYmFz ZWQgcGFydHMuIFRlZ3JhLTMgCj4gd2lsbCBwcm9iYWJseSBhbHNvIHdvcmsuIEkgdGhpbmsgaSBy ZWFkIGluIHRoZSBUZWdyYS0zIFBSTSB0aGF0IHRoZSBzeW5jIAo+IHBvaW50cyB0aGV5IHVzZSB0 byBpbXBsZW1lbnQgdmJsYW5rIGNvdW50ZXJzIGRvIGluY3JlbWVudCBhdCBsZWFkaW5nIAo+IGVk Z2Ugb2YgdmJsYW5rLgo+IAo+IFRoZSBvbmx5IHByb2JsZW0gd2UgbWF5IGhhdmUgaXMgdGhhdCBz b21lIG9mIHRoZSBlbWJlZGRlZCBncHVzIG1heSBub3QgCj4gaGF2ZSBjb21wbGlhbnQgdmJsYW5r IGNvdW50ZXJzIGFuZCB0aGV5IHByb2JhYmx5IGFsc28gbGFjayB2YmxhbmsgCj4gdGltZXN0YW1w aW5nLCBzbyBpdCBtaWdodCBiZSBhIGdvb2QgaWRlYSB0byByYXRoZXIgbm90IHVzZSB2Ymxhbmsg Cj4gY291bnRlcnMgYXQgYWxsIGluIHRob3NlIGRyaXZlcnMgLSBwYXRjaCB0aGVpciBrbXMgZHJp dmVycyB0byAKPiBtYXhfdmJsYW5rX2NvdW50ID0gMDsKPiAKPiA+Pgo+ID4+IE9uZSBvZiB0aGUg cmVhc29ucyBmb3IgdHJvdWJsZSBpcyB0aGF0IEFNRCBodyBxdWlyayB3aGVyZSB0aGUgaHcgZmly ZXMKPiA+PiBhbiBleHRyYSB2YmxhbmsgaXJxIHNob3J0bHkgYWZ0ZXIgdmJsYW5rIGlycSdzIGdl dCBlbmFibGVkLCBub3QKPiA+PiBzeW5jaHJvbml6ZWQgdG8gdmJsYW5rLCBidXQgdHlwaWNhbGx5 IGluIHRoZSBtaWRkbGUgb2YgYWN0aXZlIHNjYW5vdXQsCj4gPj4gc28gd2UgZ2V0IGEgcmVkdW5k YW50IGNhbGwgdG8gZHJtX2hhbmRsZV92YmxhbmsgaW4gdGhlIG1pZGRsZSBvZiBzY2Fub3V0Lgo+ ID4KPiA+IEkgdGhpbmsgdGhhdCBzaG91bGQgYmUgZmluZSBhcyBzdWNoLiBUaGUgY29kZSBzaG91 bGQgaWdub3JlIHJlZHVkbnRhbnQKPiA+IHZibCBpcnFzLiBXZWxsLCBhc3N1bWluZyB5b3UgaGF2 ZSBhIHJlbGlhYmxlIGh3IGNvdW50ZXIgb3IgeW91IHVzZSB0aGUKPiA+IHRpbWVzdGFtcCBndWVz c3RpbWF0ZSBtZWNoYW5pc20gYW5kIHlvdXIgc2Nhbm91dCBwb3NpdGlvbiBpcyByZXBvcnRlZAo+ ID4gYWNjdXJhdGVseS4gQnV0IEkgZ3Vlc3MgeW91IGhhdmUgYSBiaXQgb2YgcHJvYmxlbSB3aXRo IGJvdGguCj4gPgo+IAo+IFRoZSBwcm9ibGVtIGlzIGknbGwgbmVlZCB0byB0cmVhdCBjYWxscyB0 byByYWRlb24ga21zIAo+IGRyaXZlci0+Z2V0X3ZibGFua19jb3VudGVyIGRpZmZlcmVudGx5LCBk ZXBlbmRpbmcgaWYgdGhlIGZ1bmN0aW9uIGdldHMgCj4gY2FsbGVkIGZyb20gdmJsYW5rIGlycSwg b3IgZnJvbSByZWd1bGFyIGNvZGUsIHNvIHRoYXQgaHcgcXVpcmsgdGhhdCAKPiBjYXVzZXMgc3Bv bnRhbmVvdXMgbWlzZmlyaW5nIG9mIHRoZSB2YmxhbmsgaXJxIGluIHRoZSBtaWRkbGUgb2Ygc2Nh bm91dCAKPiB3b3VsZCBjb25mdXNlIG15IGh3IHZibGFuayBjb3VudGVyIGNvb2tpbmcgbWV0aG9k IHRvIHByb2R1Y2UgYSBmYWtlIGh3IAo+IHZibGFuayBjb3VudGVyIGluY3JlbWVudC4gVGhhdCdz IHdoeSBpIG1vdmVkIHRoZSBmaWx0ZXJpbmcgZm9yIHJlZHVuZGFudCAKPiBpcnFzIGJhc2VkIG9u IHZibGFuayB0aW1lc3RhbXBzIGluIGRybV92YmxhbmtfdXBkYXRlKCkgYXJvdW5kIHRvIGFsd2F5 cyAKPiBhcHBseS4gTWFrZXMgdXMgcm9idXN0IGFnYWluc3QgdGhhdCB0eXBlIG9mIGh3IHF1aXJr IGluIGdlbmVyYWwgYW5kIAo+IG1ha2VzIGxpZmUgZm9yIHRoZSB2YmxhbmsgY291bnRlciBjb29r aW5nIHNvIG11Y2ggZWFzaWVyLgo+IAo+IEl0J3MgYSBiZWF1dGlmdWwgY29sbGFib3JhdGlvbiBv ZiBkaWZmZXJlbnQgaHcgYnVncyB0byBtYWtlIHRoaW5ncyAKPiBpbnRlcmVzdGluZyA6KQo+IAo+ ID4+Cj4gPj4gVG8gZml4IHRoYXQgaSBoYXZlIGEgbWlub3IgcGF0Y2ggdG8gbWFrZSBkcm1fdXBk YXRlX3ZibGFua19jb3VudCgpIGFnYWluCj4gPj4gcm9idXN0IGFnYWluc3Qgc3VjaCByZWR1bmRh bnQgY2FsbHMsIHdoaWNoIGkgd2lsbCBzZW5kIG91dCBsYXRlciB0byB0aGUKPiA+PiBtYWlsaW5n IGxpc3QuIERpZmYgYXR0YWNoZWQgZm9yIHJlZmVyZW5jZS4KPiA+Pgo+ID4+IFRoZSBzZWNvbmQg cXVpcmsgb2YgQU1EIGh3IGlzIHRoYXQgdGhlIHZibGFuayBpbnRlcnJ1cHQgZmlyZXMgYSBmZXcK PiA+PiBzY2FubGluZXMgYmVmb3JlIHN0YXJ0IG9mIHZibGFuaywgc28gZHJtX2hhbmRsZV92Ymxh bmsgLT4KPiA+PiBkcm1fdXBkYXRlX3ZibGFua19jb3VudCgpIC0+IGRldi0+ZHJpdmVyLT5nZXRf dmJsYW5rX2NvdW50ZXIoKSBnZXRzCj4gPj4gY2FsbGVkIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhl IHZibGFuayBmb3Igd2hpY2ggdGhlIG5ldyB2YmxhbmsgY291bnQKPiA+PiBzaG91bGQgYmUgcXVl cmllZC4KPiA+Cj4gPiBEb2VzIGl0IGZpcmUgdG9vIHNvb24sIG9yIGlzIHRoZSBzY2Fub3V0IHBv c2l0aW9uIHJlZ2lzdGVyIHZhbHVlKHMpCj4gPiBqdXN0IG9mZnNldCBieSBhIGZldyBsaW5lcyBw ZXJoYXBzPwo+ID4KPiA+IFdlIGhhdmUgdGhhdCB3aXRoIGk5MTUgYW5kIEkgc2ltcGx5IGZpeCB1 cCB0aGUgdmFsdWUgd2hlbiByZWFkaW5nIGl0Cj4gPiBvdXQuIEZvcnR1bmF0ZWx5IGZvciB1cyB0 aGUgb2Zmc2V0IGlzIGNvbnN0YW50IChvciBhdCBsZWFzdCBzZWVtcyB0bwo+ID4gYmUpIGZvciBh IGdpdmVuIHBsYXRmb3JtL2Nvbm5lY3RvciBjb21iby4KPiA+Cj4gCj4gSSB0aGluayB0aGV5IGZp cmUgdG9vIHNvb24sIGZyb20gYWxsIGkndmUgc2VlbiBzbyBmYXIgb24gYSBmZXcgY2FyZHMuCgpU aGF0J3MgdW5mb3J0dW5hdGUuIEZpcmluZyBhIGJpdCB0b28gbGF0ZSB3b3VsZCBiZSBwZXJmZWN0 bHkgZmluZSBmb3IKbW9zdCB0aGluZ3MuIEFuZCB0aGF0J3MgYWN0dWFsbHkgd2hhdCBoYXBwZW5z IG9uIG9sZGVyIGludGVsIGh3LiBGaXJpbmcKdG9vIHNvb24gb3BlbnMgdXAgc29tZSBtb3JlIHJh Y2VzLCBhcyBpbiB5b3UgbWF5IGhhdmUgdG8gd2FpdCBhIGJpdAptb3JlIGFmdGVyIGdldHRpbmcg d29rZW4gdXAgdG8gbWFrZSBzdXJlIHlvdSd2ZSBjcm9zc2VkIGludG8gdGhlCmZyZWFtZSB5b3Ug d2VyZSB3YWl0aW5nIGZvci4KCkFsc28gbm90IHN1cmUgaG93IHRvIGRlYWwgd2l0aCB0aGF0IHNv cnQgb2YgdGhpbmcgaW4gYSByZWFzb25hYmxlIHdheSBpbgouZ2V0X3ZibGFua190aW1lc3RhbXAo KS4gRFJNX0NBTExFRF9GUk9NX1ZCTElSUSBnZXRzIHBhc3NlZCB0aGVyZSwgc28gaXQKY291bGQg ZnVkZ2UgdGhpbmdzIGEgYml0IHdoZW4gdGhlIGVhcmx5IGlycSBhcnJpdmVzLCBidXQgdGhlbiBp ZiBzb21lb25lCmNhbGxzIGRybV91cGRhdGVfdmJsYW5rX2NvdW50KCkgYWZ0ZXIgdGhlIGlycSB3 YXMgaGFuZGxlZCBidXQgYmVmb3JlCnN0YXJ0IG9mIHZibGFuayB5b3UnbGwgZW5kIHVwIHdpdGgg YSAtMSBkaWZmLgoKTWF5YmUgc29tZXRoaW5nIGxpa2U6Ci5nZXRfc2Nhbm91dF9wb3NpdG9uKCkK ewoJcmVhZCBmcmFtZSBjb3VudGVyIGFuZCBzY2FsaW5lIHBvc2l0aW9uCgoJaWYgKChmbGFncyAm IERSTV9DQUxMRURfRlJPTV9WQkxJUlEgfHwgZnJhbWUgPT0gbGFzdF9mdWRnZV9mcmFtZSkgJiYK CSAgICAgc2NhbmxpbmVfc2xpZ2h0bHlfYmVsb3dfc3RhcnRfb2ZfdmJsYW5rKSkgewoJCWxhc3Rf ZnVkZ2VfZnJhbWUgPSBmcmFtZTsKCQlzY2FubGluZSA9IHN0YXJ0X29mX3ZibGFuazsKCX0gZWxz ZQoJCWxhc3RfZnVkZ2VfZnJhbWUgPSBmcmFtZSAtIDE7Cn0KCmNvdWxkIGJlIGRvbmUuIFNvIGl0 IHdvdWxkIHByZXRlbmQgdGhlIHNjYW5saW5lIGhhcyBhbHJlYWR5IGNyb3NzZWQgaW50bwp0aGUg dmJsYW5rIHdoZW4gdGhlIGludGVycnVwdCBhcnJpdmVzLCBhbmQgaXQgc2hvdWxkIGtlZXAgZG9p bmcgdGhhdAp1bnRpbCB0aGUgZnJhbWUgY291bnRlciBpbmRpY2F0ZXMgdGhhdCB5b3UgcmVhbGx5 IGNyb3NzZWQgdGhlcmUuCgo+IAo+ID4+Cj4gPj4gVGhlIHRoaXJkIHByb2JsZW0gaXMgdGhhdCB0 aGUgRFJNIHZibGFuayBoYW5kbGluZyBhbHdheXMgaGFkIHRoZQo+ID4+IGFzc3VtcHRpb24gdGhh dCBoYXJkd2FyZSB2YmxhbmsgY291bnRlcnMgd291bGQgZXNzZW50aWFsbHkgaW5jcmVtZW50IGF0 Cj4gPj4gbGVhZGluZyBlZGdlIG9mIHZibGFuayAtIGJhc2ljYWxseSBpbiBzeW5jIHdpdGggdGhl IGZpcmluZyBvZiB0aGUgdmJsYW5rCj4gPj4gaXJxLCBzbyB0aGF0IGEgaHcgY291bnRlciByZWFk b3V0IGZyb20gd2l0aGluIHRoZSB2YmxhbmsgaXJxIGhhbmRsZXIKPiA+PiB3b3VsZCBhbHdheXMg ZGVsaXZlciB0aGUgbmV3IGluY3JlbWVudGVkIHZhbHVlLiBJZiB0aGlzIGFzc3VtcHRpb24gaXMK PiA+PiB2aW9sYXRlZCB0aGVuIHRoZSBjb3VudGluZyBieSB1c2Ugb2YgdGhlIGh3IGNvdW50ZXIg Z2V0cyB1bnJlbGlhYmxlLAo+ID4+IGJlY2F1c2UgZGVwZW5kaW5nIG9uIHJhbmRvbSBzbWFsbCBk ZWxheXMgaW4gaXJxIGhhbmRsaW5nIHRoZSBjb2RlIG1heQo+ID4+IGVuZCB1cCBzYW1wbGluZyB0 aGUgaHcgY291bnRlciBwcmUtIG9yIHBvc3QtaW5jcmVtZW50LCBsZWFkaW5nIHRvCj4gPj4gaW5j b25zaXN0ZW50IHVwZGF0aW5nIGFuZCBmdW5reSBidWdzLiBJdCBqdXN0IHNvIGhhcHBlbnMgdGhh dCBBTUQKPiA+PiBoYXJkd2FyZSBkb2Vzbid0IGluY3JlbWVudCB0aGUgaHcgY291bnRlciBhdCBs ZWFkaW5nIGVkZ2Ugb2YgdmJsYW5rLCBzbwo+ID4+IHN0dWZmIGZhbGxzIGFwYXJ0Lgo+ID4+Cj4g Pj4gU28gdG8gZml4IHRob3NlIHR3byBwcm9ibGVtcyBpJ20gdGlua2VyaW5nIHdpdGggY29va2lu ZyB0aGUgaHcgdmJsYW5rCj4gPj4gY291bnRlciB2YWx1ZSByZXR1cm5lZCBieSByYWRlb25fZ2V0 X3ZibGFua19jb3VudGVyX2ttcygpIHRvIG1ha2UgaXQKPiA+PiBhcHBlYXIgYXMgaWYgdGhlIGNv dW50ZXIgaW5jcmVtZW50ZWQgYXQgbGVhZGluZyBlZGdlIG9mIHZibGFuayBpbiBzeW5jCj4gPj4g d2l0aCB2YmxhbmsgaXJxLgo+ID4KPiA+IFllYWgsIEkgZG8gdGhhdCBpbiBpOTE1IHRvby4gV2Vs bCwgb24gc29tZSBwbGF0Zm9ybXMgd2hlcmUgdGhlCj4gPiBjb3VudGVyIGluY3JlbWVudHMgYXQg dGhlIGxlYWRpbmcgZWRnZSBvZiBhY3RpdmUuCj4gPgo+IAo+IFllcC4gSSB0aGluayB0aGF0J3Mg a2V5IHRvIG1ha2UgdGhlIHZibGFuayBpbnN0YW50IG9mZiBzdHVmZiB3b3JrIHJlbGlhYmx5LgoK SSB0aGluayBpdCBzaG91bGQgd29yayBPSyB3aXRoIHRoZSB0aW1lc3RhbXAgYmFzZWQgc3R1ZmYg dG9vLCBhc3N1bWluZwp5b3UgaGF2ZSBhY2N1cmF0ZSBzY2Fub3V0IHBvc2l0aW9uIHJlcG9ydGlu Zy4gU28gaGF2aW5nIGEgcmVsaWFibGUgaHcKY291bnRlciBzaG91bGRuJ3QgYmUgYSByZXF1aXJl bWVudCBmb3IgdGhhdC4KCj4gCj4gLW1hcmlvCj4gCj4gPj4KPiA+PiBJdCBhbG1vc3Qgc29ydCBv ZiB3b3JrcyBvbiB0aGUgcnM2MDAgY29kZSBwYXRoLCBidXQgaSBuZWVkIGEgYml0IG9mIGluZm8K PiA+PiBmcm9tIHlvdToKPiA+Pgo+ID4+IDEuIFRoZXJlJ3MgdGhpcyByZWdpc3RlciBmcm9tIHRo ZSBvbGQgc3BlY3MgZm9yIG03Ni5wZGYsIHdoaWNoIGlzIG5vdAo+ID4+IHBhcnQgb2YgdGhlIGN1 cnJlbnQgcmVnaXN0ZXIgZGVmaW5lcyBmb3IgcmFkZW9uLWttczoKPiA+Pgo+ID4+ICJEMUNSVENf U1RBVFVTX1ZGX0NPVU5UIC0gUlcgLSAzMiBiaXRzIC0gW0dwdUYwTU1SZWc6MHg2MEE4XSIKPiA+ Pgo+ID4+IEl0IGNvbnRhaW5zIHRoZSBsb3dlciAxNiBiaXRzIG9mIGZyYW1lY291bnRlciBhbmQg dGhlIDEzIGJpdHMgb2YKPiA+PiB2ZXJ0aWNhbCBzY2Fub3V0IHBvc2l0aW9uLiBJdCBzZWVtcyB0 byBnaXZlIHRoZSBzYW1lIHJlYWRpbmdzIGFzIHRoZSAyNAo+ID4+IGJpdCBSXzAwNjBBNF9EMUNS VENfU1RBVFVTX0ZSQU1FX0NPVU5UIHdlIHVzZSBmb3IgdGhlIGh3IGNvdW50ZXIuIFRoaXMKPiA+ PiB3b3VsZCBjb21lIGhhbmR5Lgo+ID4+Cj4gPj4gRG9lcyBFdmVyZ3JlZW4gYW5kIGxhdGVyIGhh dmUgYSBzYW1lL3NpbWlsYXIgcmVnaXN0ZXIgYW5kIHdoZXJlIGlzIGl0Pwo+ID4+Cj4gPj4gMi4g VGhlIGh3IGZyYW1lY291bnRlciBzZWVtcyB0byBpbmNyZW1lbnQgd2hlbiB0aGUgdmVydGljYWwg c2Nhbm91dAo+ID4+IHBvc2l0aW9uIHdyYXBzIGJhY2sgZnJvbSAoVlRPVEFMIC0gMSkgdG8gMCwg YXQgbGVhc3Qgb24gdGhlIG9uZSBEQ0UtMwo+ID4+IGdwdSBpIHRlc3RlZCBzbyBmYXIuIElzIHRo aXMgc28gb24gYWxsIGFzaWNzPyBBbmQgaXMgdGhlIGh3IGNvdW50ZXIKPiA+PiBpbmNyZW1lbnQg aGFwcGVuaW5nIGV4YWN0bHkgYXQgdGhlIG1vbWVudCB0aGF0IHZlcnRpY2FsIHNjYW5vdXQgcG9z aXRpb24KPiA+PiBqdW1wcyBiYWNrIHRvIHplcm8sIGllLiBib3RoIGV2ZW50cyBhcmUgZHJpdmVu IGJ5IHRoZSBzYW1lIHNpZ25hbD8gT3IgaXMKPiA+PiB0aGUgZnJhbWVjb3VudGVyIGluY3JlbWVu dCBqdXN0IGhhcHBlbmluZyBzb21ld2hlcmUgaW5zaWRlIGVpdGhlcgo+ID4+IHNjYW5saW5lIFZU T1RBTC0xIG9yIHNjYW5saW5lIDA/Cj4gPj4KPiA+Pgo+ID4+IElmIHdlIGNhbiBmaXggdGhpcyBh bmQgZ2V0IGl0IGludG8gcmMyIG9yIHJjMyB0aGVuIHdlIGNvdWxkIGF2b2lkIGEgYmFkCj4gPj4g cmVncmVzc2lvbiBhbmQgd2l0aCBhIGJpdCBvZiBsdWNrIGF0IHRoZSBzYW1lIHRpbWUgaW1wcm92 ZSBieSBiZWluZyBhYmxlCj4gPj4gdG8gc2V0IGRldi0+dmJsYW5rX2Rpc2FibGVfaW1tZWRpYXRl ID0gdHJ1ZSB0aGVuIGFuZCBhbGxvdyB2YmxhbmsgaXJxcwo+ID4+IHRvIGdldCB0dXJuZWQgb2Zm IG1vcmUgYWdncmVzc2l2ZWx5IGZvciBhIGJpdCBvZiBleHRyYSBwb3dlciBzYXZpbmcuCj4gPj4K PiA+PiB0aGFua3MsCj4gPj4gLW1hcmlvCj4gPgo+ID4+IC0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9pcnEuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKPiA+PiBAQCAtMTcy LDkgKzE3MiwxMSBAQCBzdGF0aWMgdm9pZCBkcm1fdXBkYXRlX3ZibGFua19jb3VudChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiA+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncykKPiA+PiAgIHsKPiA+PiAg ICAgICAgICBzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2LT52YmxhbmtbcGlw ZV07Cj4gPj4gLSAgICAgICB1MzIgY3VyX3ZibGFuaywgZGlmZjsKPiA+PiArICAgICAgIHUzMiBj dXJfdmJsYW5rLCBkaWZmID0gMDsKPiA+PiAgICAgICAgICBib29sIHJjOwo+ID4+ICAgICAgICAg IHN0cnVjdCB0aW1ldmFsIHRfdmJsYW5rOwo+ID4+ICsgICAgICAgY29uc3Qgc3RydWN0IHRpbWV2 YWwgKnRfb2xkOwo+ID4+ICsgICAgICAgdTY0IGRpZmZfbnM7Cj4gPj4gICAgICAgICAgaW50IGNv dW50ID0gRFJNX1RJTUVTVEFNUF9NQVhSRVRSSUVTOwo+ID4+ICAgICAgICAgIGludCBmcmFtZWR1 cl9ucyA9IHZibGFuay0+ZnJhbWVkdXJfbnM7Cj4gPj4KPiA+PiBAQCAtMTk1LDEzICsxOTcsMTUg QEAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gPj4gICAgICAgICAgICAgICAgICByYyA9IGRybV9n ZXRfbGFzdF92Ymx0aW1lc3RhbXAoZGV2LCBwaXBlLCAmdF92YmxhbmssIGZsYWdzKTsKPiA+PiAg ICAgICAgICB9IHdoaWxlIChjdXJfdmJsYW5rICE9IGRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2Nv dW50ZXIoZGV2LCBwaXBlKSAmJiAtLWNvdW50ID4gMCk7Cj4gPj4KPiA+PiAtICAgICAgIGlmIChk ZXYtPm1heF92YmxhbmtfY291bnQgIT0gMCkgewo+ID4+IC0gICAgICAgICAgICAgICAvKiB0cnVz dCB0aGUgaHcgY291bnRlciB3aGVuIGl0J3MgYXJvdW5kICovCj4gPj4gLSAgICAgICAgICAgICAg IGRpZmYgPSAoY3VyX3ZibGFuayAtIHZibGFuay0+bGFzdCkgJiBkZXYtPm1heF92YmxhbmtfY291 bnQ7Cj4gPj4gLSAgICAgICB9IGVsc2UgaWYgKHJjICYmIGZyYW1lZHVyX25zKSB7Cj4gPj4gLSAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1ldmFsICp0X29sZDsKPiA+PiAtICAgICAgICAg ICAgICAgdTY0IGRpZmZfbnM7Cj4gPj4gLQo+ID4+ICsgICAgICAgLyoKPiA+PiArICAgICAgICAq IEFsd2F5cyB1c2UgdmJsYW5rIHRpbWVzdGFtcGluZyBiYXNlZCBtZXRob2QgaWYgc3VwcG9ydGVk IHRvIHJlamVjdAo+ID4+ICsgICAgICAgICogcmVkdW5kYW50IHZibGFuayBpcnFzLiBFLmcuLCBB TUQgaGFyZHdhcmUgbmVlZHMgdGhpcyB0byBub3Qgc2NyZXcgdXAKPiA+PiArICAgICAgICAqIGR1 ZSB0byBzb21lIGlycSBoYW5kbGluZyBxdWlyay4KPiA+Cj4gPiBIbW0uIEknbSB0aGlua2luZyBp dCB3b3VsZCBiZSBiZXR0ZXIgdG8gc2ltcGx5IG5vdCBjbGFpbSB0aGF0IHRoZXJlJ3MgYSBodwo+ ID4gY291bnRlciBpZiBpdCBpc24ndCByZWxpYWJsZS4KPiA+Cj4gPj4gKyAgICAgICAgKgo+ID4+ ICsgICAgICAgICogVGhpcyBhbHNvIHNldHMgdGhlIGRpZmYgdmFsdWUgZm9yIHVzZSBhcyBmYWxs YmFjayBiZWxvdyBpbiBjYXNlIHRoZQo+ID4+ICsgICAgICAgICogaHcgZG9lcyBub3Qgc3VwcG9y dCBhIHN1aXRhYmxlIGh3IHZibGFuayBjb3VudGVyLgo+ID4+ICsgICAgICAgICovCj4gPj4gKyAg ICAgICBpZiAocmMgJiYgZnJhbWVkdXJfbnMpIHsKPiA+PiAgICAgICAgICAgICAgICAgIHRfb2xk ID0gJnZibGFua3RpbWVzdGFtcChkZXYsIHBpcGUsIHZibGFuay0+Y291bnQpOwo+ID4+ICAgICAg ICAgICAgICAgICAgZGlmZl9ucyA9IHRpbWV2YWxfdG9fbnMoJnRfdmJsYW5rKSAtIHRpbWV2YWxf dG9fbnModF9vbGQpOwo+ID4+Cj4gPj4gQEAgLTIxMiwxMSArMjE2LDI4IEBAIHN0YXRpYyB2b2lk IGRybV91cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGludCBwaXBlLAo+ID4+ICAgICAgICAgICAgICAgICAgICovCj4gPj4gICAgICAgICAgICAgICAg ICBkaWZmID0gRElWX1JPVU5EX0NMT1NFU1RfVUxMKGRpZmZfbnMsIGZyYW1lZHVyX25zKTsKPiA+ Pgo+ID4+IC0gICAgICAgICAgICAgICBpZiAoZGlmZiA9PSAwICYmIGZsYWdzICYgRFJNX0NBTExF RF9GUk9NX1ZCTElSUSkKPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICBEUk1fREVCVUdfVkJM KCJjcnRjICV1OiBSZWR1bmRhbnQgdmJsaXJxIGlnbm9yZWQuIgo+ID4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiBkaWZmX25zID0gJWxsZCwgZnJhbWVkdXJfbnMgPSAl ZClcbiIsCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXBlLCAo bG9uZyBsb25nKSBkaWZmX25zLCBmcmFtZWR1cl9ucyk7Cj4gPj4gLSAgICAgICB9IGVsc2Ugewo+ ID4+ICsgICAgICAgICAgICAgICBpZiAoZGlmZiA9PSAwICYmIGZsYWdzICYgRFJNX0NBTExFRF9G Uk9NX1ZCTElSUSkgewo+ID4+ICsgICAgICAgICAgICAgICAgICAgRFJNX0RFQlVHX1ZCTCgiY3J0 YyAldTogUmVkdW5kYW50IHZibGlycSBpZ25vcmVkLiIKPiA+PiArICAgICAgICAgICAgICAgICAg ICIgZGlmZl9ucyA9ICVsbGQsIGZyYW1lZHVyX25zID0gJWQpXG4iLAo+ID4+ICsgICAgICAgICAg ICAgICAgICAgcGlwZSwgKGxvbmcgbG9uZykgZGlmZl9ucywgZnJhbWVkdXJfbnMpOwo+ID4+ICsK PiA+PiArICAgICAgICAgICAgICAgICAgIC8qIFRyZWF0IHRoaXMgcmVkdW5kYW50IGludm9jYXRp b24gYXMgbm8tb3AuICovCj4gPj4gKyAgICAgICAgICAgICAgICAgICBXQVJOX09OX09OQ0UoY3Vy X3ZibGFuayAhPSB2YmxhbmstPmxhc3QpOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgcmV0dXJu Owo+ID4+ICsgICAgICAgICAgICAgICB9Cj4gPj4gKyAgICAgICB9Cj4gPj4gKwo+ID4+ICsgICAg ICAgLyoKPiA+PiArICAgICAgICAqIGh3IGNvdW50ZXJzLCBpZiBtYXJrZWQgYXMgc3VwcG9ydGVk IHZpYSBtYXhfdmJsYW5rX2NvdW50ICE9IDAsCj4gPj4gKyAgICAgICAgKiAqbXVzdCogaW5jcmVt ZW50IGF0IGxlYWRpbmcgZWRnZSBvZiB2YmxhbmsgYW5kIGluIHN5bmMgd2l0aAo+ID4+ICsgICAg ICAgICogdGhlIGZpcmluZyBvZiB0aGUgaHcgdmJsYW5rIGlycSwgb3RoZXJ3aXNlIHdlIGhhdmUg YSByYWNlIGhlcmUKPiA+PiArICAgICAgICAqIGJldHdlZW4gZ3B1IGFuZCB1cywgd2hlcmUgc21h bGwgdmFyaWF0aW9ucyBpbiBvdXIgZXhlY3V0aW9uCj4gPj4gKyAgICAgICAgKiB0aW1pbmcgY2Fu IGNhdXNlIG9mZi1ieS1vbmUgbWlzY291bnRpbmcgb2YgdmJsYW5rcy4KPiA+PiArICAgICAgICAq Lwo+ID4+ICsgICAgICAgaWYgKGRldi0+bWF4X3ZibGFua19jb3VudCAhPSAwKSB7Cj4gPj4gKyAg ICAgICAgICAgICAgIC8qIHRydXN0IHRoZSBodyBjb3VudGVyIHdoZW4gaXQncyBhcm91bmQgKi8K PiA+PiArICAgICAgICAgICAgICAgZGlmZiA9IChjdXJfdmJsYW5rIC0gdmJsYW5rLT5sYXN0KSAm IGRldi0+bWF4X3ZibGFua19jb3VudDsKPiA+PiArICAgICAgIH0gZWxzZSBpZiAoIShyYyAmJiBm cmFtZWR1cl9ucykpIHsKPiA+PiAgICAgICAgICAgICAgICAgIC8qIHNvbWUga2luZCBvZiBkZWZh dWx0IGZvciBkcml2ZXJzIHcvbyBhY2N1cmF0ZSB2YmwgdGltZXN0YW1waW5nICovCj4gPj4gICAg ICAgICAgICAgICAgICBkaWZmID0gKGZsYWdzICYgRFJNX0NBTExFRF9GUk9NX1ZCTElSUSkgIT0g MDsKPiA+PiAgICAgICAgICB9Cj4gPgo+ID4KCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RD Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==