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: Mon, 23 Nov 2015 22:24:26 +0200 Message-ID: <20151123202426.GC4437@intel.com> References: <564E0AF4.3050406@gmail.com> <20151119182051.GU4437@intel.com> <564E1F18.5070508@gmail.com> <20151119194557.GB4437@intel.com> <564F3B42.5050803@gmail.com> <20151120153435.GR4437@intel.com> <56532F69.9080001@gmail.com> <20151123155109.GB4437@intel.com> <565353CA.5010909@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id DF9396E663 for ; Mon, 30 Nov 2015 12:13:42 -0800 (PST) Resent-Message-ID: <20151130201330.GI4437@intel.com> Resent-To: dri-devel@lists.freedesktop.org Content-Disposition: inline In-Reply-To: <565353CA.5010909@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 T24gTW9uLCBOb3YgMjMsIDIwMTUgYXQgMDY6NTg6MzRQTSArMDEwMCwgTWFyaW8gS2xlaW5lciB3 cm90ZToKPiAKPiAKPiBPbiAxMS8yMy8yMDE1IDA0OjUxIFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3Jv dGU6Cj4gPiBPbiBNb24sIE5vdiAyMywgMjAxNSBhdCAwNDoyMzoyMVBNICswMTAwLCBNYXJpbyBL bGVpbmVyIHdyb3RlOgo+ID4+IE9uIDExLzIwLzIwMTUgMDQ6MzQgUE0sIFZpbGxlIFN5cmrDpGzD pCB3cm90ZToKPiA+Pj4gT24gRnJpLCBOb3YgMjAsIDIwMTUgYXQgMDQ6MjQ6NTBQTSArMDEwMCwg TWFyaW8gS2xlaW5lciB3cm90ZToKPiA+Pgo+ID4+IC4uLgo+ID4+IE9rLCBidXQgd2h5IHdvdWxk IHRoYXQgYmUgYSBiYWQgdGhpbmc/IEkgdGhpbmsgd2Ugd2FudCBpdCB0byB0aGluayBpdCBpcwo+ ID4+IGluIHRoZSBwcmV2aW91cyBmcmFtZSBpZiBpdCBpcyBjYWxsZWQgb3V0c2lkZSB0aGUgdmJs YW5rIGlycSBjb250ZXh0Lgo+ID4+IFRoZSBvbmx5IHJlYXNvbiB3ZSBmdWRnZSBpdCB0byB0aGUg bmV4dCBmcmFtZXMgdmJsYW5rIGlmIGkgdmJsYW5rIGlycSBpcwo+ID4+IGJlY2F1c2Ugd2Uga25v dyB0aGUgdmJsYW5rIGlycSBoYW5kbGVyIHdlIGFyZSBleGVjdXRpbmcgYXRtLiB3YXMgbWVhbnQK PiA+PiB0byBleGVjdXRlIHdpdGhpbiB0aGUgdXBjb21pbmcgdmJsYW5rIGZvciB0aGUgbmV4dCBm cmFtZSwgc28gd2UgZnVkZ2UKPiA+PiB0aGUgc2Nhbm91dCBwb3NpdGlvbnMgYW5kIHRoZXJlYnkg dGltZXN0YW1wIHRvIGNvcnJlc3BvbmQgdG8gdGhhdCBuZXcKPiA+PiBmcmFtZS4gQnV0IGlmIHNv bWV0aGluZyBjYWxsZWQgb3V0c2lkZSBpcnEgY29udGV4dCBpdCBzaG91bGQgZ2V0IGEKPiA+PiBz Y2Fub3V0IHBvc2l0aW9uL3RpbWVzdGFtcCB0aGF0IGNvcnJlc3BvbmRzIHRvICJyZWFsaXR5Ii4K PiA+Cj4gPiBJdCB3b3VsZCBiZSBhIGJhZCB0aGluZyBzaW5jZSBpdCB3b3VsZCBjYXVzZSB0aGUg dGltZXN0YW1wIHRvIGp1bXAKPiA+IGJhY2t3YXJkcywgYW5kIHRoYXQgd291bGQgYWxzbyBjYXVz ZSB0aGUgZnJhbWUgY291bnQgZ3Vlc3N0aW1hdGUgdG8gZ28KPiA+IGJhY2t3YXJkcy4KPiA+Cj4g Cj4gQnV0IG9ubHkgaWYgd2UgZG9uJ3QgdXNlIHRoZSBkZXYtPmRyaXZlci0+Z2V0X3ZibGFua19j b3VudGVyKCkgbWV0aG9kLCAKPiB3aGljaCB3ZSB0cnkgdG8gdXNlIG9uIEFNRC4KCldlbGwsIGlm IHlvdSBkbyBpdCB0aGF0IHdheSB0aGVuIHlvdSBoYXZlIHRoZSBwcm9ibGVtIG9mIHRoZSBodyBj b3VudGVyCnNlZW1pbmcgdG8ganVtcCBmb3J3YXJkIGJ5IG9uZSBhZnRlciBjcm9zc2luZyB0aGUg c3RhcnQgb2YgdmJsYW5rICh3aGVuCmNvbXBhcmVkIHRvIHRoZSB2YWx1ZSB5b3Ugc2FtcGxlZCB3 aGVuIHlvdSBwcm9jZXNzZWQgdGhlIGVhcmx5IHZibGFuawppbnRlcnJ1cHQpLgoKSSBndWVzcyBv bmUgc2lsbHkgaWRlYSB3b3VsZCBiZSB0byBkZWZlciB0aGUgdmJsYW5rIGludGVycnVwdCBwcm9j ZXNzaW5nCnRvIGEgdGltZXIsIGFuZCBqdXN0IHNjaGVkdWxlIGl0IGEgYml0IGludG8gdGhlIGZ1 dHVyZSBmcm9tIHRoZSBhY3R1YWwKaW50ZXJydXB0IGhhbmRsZXIuCgo+IEFsc28gZGV2LT52Ymxh bmtfdGltZV9sb2NrIHNob3VsZCBwcm90ZWN0IHVzIAo+IGZyb20gY29uY3VycmVudCBleGVjdXRp b24gb2YgdGhlIHZibGFuayBjb3VudGluZy90aW1lc3RhbXBpbmcgaW4gaXJxIAo+IGNvbnRleHQg YW5kIG5vbi1pcnEgY29udGV4dD8gQXQgbGVhc3QgdGhhdCB3YXMgb25lIG9mIHRoZSBwdXJwb3Nl cyBvZiAKPiB0aGF0IGxvY2sgaW4gdGhlIHBhc3Q/CgpUaGUgc2NlbmFyaW9uIEkgb3V0bGluZWQg ZG9lc24ndCByZXF1aXJlIGFueXRoaW5nIHRvIGhhcHBlbgpjb25jdXJyZW50bHkuCgo+IAo+IC1t YXJpbwo+IAo+ID4+Cj4gPj4gSXQgd291bGQgbWF5YmUgYmUgYSBwcm9ibGVtIHRvIGdldCBkaWZm ZXJlbnQgYW5zd2VycyBmb3IgYSBxdWVyeSBhdCB0aGUKPiA+PiBzYW1lIHNjYW5vdXQgcG9zaXRp b24gaWYgd2UgdXNlZCAuZ2V0X3NjYW5vdXRfcG9zaXRpb24oKSBmb3Igc29tZXRoaW5nCj4gPj4g ZWxzZSB0aGFuIGZvciBjYWxjdWxhdGluZyB2YmxhbmsgdGltZXN0YW1wcywgYnV0IHdlIGRvbid0 IGRvIHRoYXQgYXRtLgo+ID4+Cj4gPj4gTWF5YmUgaSdtIG92ZXJsb29raW5nIHNvbWV0aGluZyBo ZXJlIHJlbGF0ZWQgdG8gdGhlIHNvbWV3aGF0IHJld3JpdHRlbgo+ID4+IGNvZGUgZnJvbSB0aGUg bGFzdCB5ZWFyIG9yIHNvPyBCdXQgaW4gdGhlIG9yaWdpbmFsIGRlc2lnbiB0aGlzIHdvdWxkIGJl Cj4gPj4gZXhhY3RseSB3aGF0IGkgaW50ZW5kZWQ/Cj4gPj4KPiA+PiAuLi4KPiA+Pgo+ID4+Pj4g U28gaXQncyBnb29kIGVub3VnaCBmb3IgdHlwaWNhbCBkZXNrdG9wCj4gPj4+PiBhcHBsaWNhdGlv bnMvY29tcG9zaXRvcnMvZ2FtZXMvbWVkaWEgcGxheWVycywgYW5kIGEgbmljZSBpbXByb3ZlbWVu dAo+ID4+Pj4gb3ZlciB0aGUgcHJldmlvdXMgc3RhdGUsIGJ1dCBub3QgcXVpdGUgc3VmZmljaWVu dCBmb3IgYXBwbGljYXRpb25zIHRoYXQKPiA+Pj4+IG5lZWQgbG9uZyB0aW1lIGNvbnNpc3RlbnQg dmJsYW5rIGNvdW50cyBmb3IgbG9uZyB3YWl0cyBvZiBtdWx0aXBsZQo+ID4+Pj4gc2Vjb25kcyBv ciBldmVuIG1pbnV0ZXMuIFNvIGl0J3Mgc3RpbGwgZ29vZCB0byBoYXZlIGh3IGNvdW50ZXJzIGlm IHdlCj4gPj4+PiBjYW4gZ2V0IHNvbWUgdGhhdCBhcmUgcmVsaWFibGUgZW5vdWdoLgo+ID4+Pgo+ ID4+PiBBaCwgSSBkaWRuJ3QgcmVhbGl6ZSB5b3UgY2FyZSBhYm91dCBzbWFsbCBlcnJvcnMgaW4g dGhlIGNvdW50ZXIgZm9yCj4gPj4+IHN1Y2ggbG9uZyBwZXJpb2RzIG9mIHZibGFuayBvZmYuCj4g Pj4+Cj4gPj4KPiA+PiBBY3R1YWxseSwgeW91IGFyZSByaWdodCwgaSB3YXMgc3R1cGlkIC0gbm90 IGVub3VnaCBzbGVlcCBsYXN0IGZyaWRheS4gSQo+ID4+IGRvIGNhcmUgYWJvdXQgc3VjaCBzbWFs bCBlcnJvcnMsIGJ1dCB0aGUgbG9uZyB2Ymxhbmsgb2ZmIHBlcmlvZHMgZG9uJ3QKPiA+PiBtYXR0 ZXIgYXQgYWxsIHRoZSB3YXkgbXkgc29mdHdhcmUgd29ya3MuIEkgcXVlcnkgdGhlIGN1cnJlbnQg Y291bnQgYW5kCj4gPj4gdGltZXN0YW1wIChnbFhHZXRTeW5jVmFsdWVzT01MKSwgY2FsY3VsYXRl IGEgdGFyZ2V0IGNvdW50IGJhc2VkIG9uIHRob3NlCj4gPj4gYW5kIHRoZW4gc2NoZWR1bGUgYSBz d2FwIGZvciB0aGF0IHRhcmdldCBjb3VudCB2aWEgZ2xYU3dhcEJ1ZmZlcnNNc2NPTUwuCj4gPj4g VGhhdCBzd2FwYnVmZmVycyBjYWxsIHdpbGwga2VlcCB2YmxhbmsgaXJxcyBvbiB1bnRpbCB0aGUg a21zIHBhZ2VmbGlwIGlzCj4gPj4gcXVldWVkLiBTbyBpIG9ubHkgY2FyZSBhYm91dCB2Ymxhbmsg Y291bnRzL3RpbWVzdGFtcHMgYmVpbmcgY29uc2lzdGVudAo+ID4+IGZvciBzaG9ydCBhbW91bnRz IG9mIHRpbWUsIHR5cGljYWxseSAxIHZpZGVvIHJlZnJlc2ggZnJvbSB2YmxhbmsgcXVlcnkKPiA+ PiB0byBxdWV1ZWluZyBhIHZibGFuayBldmVudCwgYW5kIHRoZW4gZnJvbSByZWNlcHRpb24gb2Yg dGhhdAo+ID4+IGV2ZW50L3F1ZXVpbmcgdGhlIHBhZ2VmbGlwIHRvIHBhZ2VmbGlwIGNvbXBsZXRp b24gZXZlbnQuIFNvIGV2ZW4gaWYgdGhlCj4gPj4gc3lzdGVtIHdvdWxkIGJlIGhlYXZpbHkgbG9h ZGVkIGFuZCBteSBjb2RlIHdvdWxkIGhhdmUgYmlnIHByZWVtcHRpb24KPiA+PiBkZWxheXMgaSB0 aGluayBjb3VudHMgdGhhdCBhcmUgY29uc2lzdGVudCBvdmVyIGEgZmV3IHNlY29uZHMgd291bGQg YmUKPiA+PiBlbm91Z2ggdG8ga2VlcCB0aGluZ3Mgd29ya2luZy4gT3RoZXJ3aXNlIGl0IHdvdWxk bid0IHdvcmsgbm93IGVpdGhlcgo+ID4+IHdpdGggYSB2Ymxhbmsgb2ZmIGFmdGVyIDUgc2Vjb25k cyBhbmQgbm91dmVhdSBub3QgaGF2aW5nIHZibGFuayBodyBjb3VudGVycy4KPiA+Pgo+ID4+IC1t YXJpbwo+ID4+Cj4gPj4KPiA+Pj4+Cj4gPj4+PiAtbWFyaW8KPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4+ Pgo+ID4+Pj4+PiAtbWFyaW8KPiA+Pj4+Pj4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IEl0IGFsbW9z dCBzb3J0IG9mIHdvcmtzIG9uIHRoZSByczYwMCBjb2RlIHBhdGgsIGJ1dCBpIG5lZWQgYSBiaXQg b2YgaW5mbwo+ID4+Pj4+Pj4+IGZyb20geW91Ogo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gMS4gVGhl cmUncyB0aGlzIHJlZ2lzdGVyIGZyb20gdGhlIG9sZCBzcGVjcyBmb3IgbTc2LnBkZiwgd2hpY2gg aXMgbm90Cj4gPj4+Pj4+Pj4gcGFydCBvZiB0aGUgY3VycmVudCByZWdpc3RlciBkZWZpbmVzIGZv ciByYWRlb24ta21zOgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gIkQxQ1JUQ19TVEFUVVNfVkZfQ09V TlQgLSBSVyAtIDMyIGJpdHMgLSBbR3B1RjBNTVJlZzoweDYwQThdIgo+ID4+Pj4+Pj4+Cj4gPj4+ Pj4+Pj4gSXQgY29udGFpbnMgdGhlIGxvd2VyIDE2IGJpdHMgb2YgZnJhbWVjb3VudGVyIGFuZCB0 aGUgMTMgYml0cyBvZgo+ID4+Pj4+Pj4+IHZlcnRpY2FsIHNjYW5vdXQgcG9zaXRpb24uIEl0IHNl ZW1zIHRvIGdpdmUgdGhlIHNhbWUgcmVhZGluZ3MgYXMgdGhlIDI0Cj4gPj4+Pj4+Pj4gYml0IFJf MDA2MEE0X0QxQ1JUQ19TVEFUVVNfRlJBTUVfQ09VTlQgd2UgdXNlIGZvciB0aGUgaHcgY291bnRl ci4gVGhpcwo+ID4+Pj4+Pj4+IHdvdWxkIGNvbWUgaGFuZHkuCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+ PiBEb2VzIEV2ZXJncmVlbiBhbmQgbGF0ZXIgaGF2ZSBhIHNhbWUvc2ltaWxhciByZWdpc3RlciBh bmQgd2hlcmUgaXMgaXQ/Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiAyLiBUaGUgaHcgZnJhbWVjb3Vu dGVyIHNlZW1zIHRvIGluY3JlbWVudCB3aGVuIHRoZSB2ZXJ0aWNhbCBzY2Fub3V0Cj4gPj4+Pj4+ Pj4gcG9zaXRpb24gd3JhcHMgYmFjayBmcm9tIChWVE9UQUwgLSAxKSB0byAwLCBhdCBsZWFzdCBv biB0aGUgb25lIERDRS0zCj4gPj4+Pj4+Pj4gZ3B1IGkgdGVzdGVkIHNvIGZhci4gSXMgdGhpcyBz byBvbiBhbGwgYXNpY3M/IEFuZCBpcyB0aGUgaHcgY291bnRlcgo+ID4+Pj4+Pj4+IGluY3JlbWVu dCBoYXBwZW5pbmcgZXhhY3RseSBhdCB0aGUgbW9tZW50IHRoYXQgdmVydGljYWwgc2Nhbm91dCBw b3NpdGlvbgo+ID4+Pj4+Pj4+IGp1bXBzIGJhY2sgdG8gemVybywgaWUuIGJvdGggZXZlbnRzIGFy ZSBkcml2ZW4gYnkgdGhlIHNhbWUgc2lnbmFsPyBPciBpcwo+ID4+Pj4+Pj4+IHRoZSBmcmFtZWNv dW50ZXIgaW5jcmVtZW50IGp1c3QgaGFwcGVuaW5nIHNvbWV3aGVyZSBpbnNpZGUgZWl0aGVyCj4g Pj4+Pj4+Pj4gc2NhbmxpbmUgVlRPVEFMLTEgb3Igc2NhbmxpbmUgMD8KPiA+Pj4+Pj4+Pgo+ID4+ Pj4+Pj4+Cj4gPj4+Pj4+Pj4gSWYgd2UgY2FuIGZpeCB0aGlzIGFuZCBnZXQgaXQgaW50byByYzIg b3IgcmMzIHRoZW4gd2UgY291bGQgYXZvaWQgYSBiYWQKPiA+Pj4+Pj4+PiByZWdyZXNzaW9uIGFu ZCB3aXRoIGEgYml0IG9mIGx1Y2sgYXQgdGhlIHNhbWUgdGltZSBpbXByb3ZlIGJ5IGJlaW5nIGFi bGUKPiA+Pj4+Pj4+PiB0byBzZXQgZGV2LT52YmxhbmtfZGlzYWJsZV9pbW1lZGlhdGUgPSB0cnVl IHRoZW4gYW5kIGFsbG93IHZibGFuayBpcnFzCj4gPj4+Pj4+Pj4gdG8gZ2V0IHR1cm5lZCBvZmYg bW9yZSBhZ2dyZXNzaXZlbHkgZm9yIGEgYml0IG9mIGV4dHJhIHBvd2VyIHNhdmluZy4KPiA+Pj4+ Pj4+Pgo+ID4+Pj4+Pj4+IHRoYW5rcywKPiA+Pj4+Pj4+PiAtbWFyaW8KPiA+Pj4+Pj4+Cj4gPj4+ Pj4+Pj4gLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gPj4+Pj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9pcnEuYwo+ID4+Pj4+Pj4+IEBAIC0xNzIsOSArMTcyLDExIEBAIHN0 YXRpYyB2b2lkIGRybV91cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVuc2lnbmVkIGludCBwaXBlLAo+ID4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKQo+ID4+Pj4+Pj4+ICAgICAgewo+ID4+ Pj4+Pj4+ICAgICAgICAgICAgIHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZkZXYt PnZibGFua1twaXBlXTsKPiA+Pj4+Pj4+PiAtICAgICAgIHUzMiBjdXJfdmJsYW5rLCBkaWZmOwo+ ID4+Pj4+Pj4+ICsgICAgICAgdTMyIGN1cl92YmxhbmssIGRpZmYgPSAwOwo+ID4+Pj4+Pj4+ICAg ICAgICAgICAgIGJvb2wgcmM7Cj4gPj4+Pj4+Pj4gICAgICAgICAgICAgc3RydWN0IHRpbWV2YWwg dF92Ymxhbms7Cj4gPj4+Pj4+Pj4gKyAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXZhbCAqdF9vbGQ7 Cj4gPj4+Pj4+Pj4gKyAgICAgICB1NjQgZGlmZl9uczsKPiA+Pj4+Pj4+PiAgICAgICAgICAgICBp bnQgY291bnQgPSBEUk1fVElNRVNUQU1QX01BWFJFVFJJRVM7Cj4gPj4+Pj4+Pj4gICAgICAgICAg ICAgaW50IGZyYW1lZHVyX25zID0gdmJsYW5rLT5mcmFtZWR1cl9uczsKPiA+Pj4+Pj4+Pgo+ID4+ Pj4+Pj4+IEBAIC0xOTUsMTMgKzE5NywxNSBAQCBzdGF0aWMgdm9pZCBkcm1fdXBkYXRlX3ZibGFu a19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiA+Pj4+ Pj4+PiAgICAgICAgICAgICAgICAgICAgIHJjID0gZHJtX2dldF9sYXN0X3ZibHRpbWVzdGFtcChk ZXYsIHBpcGUsICZ0X3ZibGFuaywgZmxhZ3MpOwo+ID4+Pj4+Pj4+ICAgICAgICAgICAgIH0gd2hp bGUgKGN1cl92YmxhbmsgIT0gZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRlcihkZXYsIHBp cGUpICYmIC0tY291bnQgPiAwKTsKPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IC0gICAgICAgaWYgKGRl di0+bWF4X3ZibGFua19jb3VudCAhPSAwKSB7Cj4gPj4+Pj4+Pj4gLSAgICAgICAgICAgICAgIC8q IHRydXN0IHRoZSBodyBjb3VudGVyIHdoZW4gaXQncyBhcm91bmQgKi8KPiA+Pj4+Pj4+PiAtICAg ICAgICAgICAgICAgZGlmZiA9IChjdXJfdmJsYW5rIC0gdmJsYW5rLT5sYXN0KSAmIGRldi0+bWF4 X3ZibGFua19jb3VudDsKPiA+Pj4+Pj4+PiAtICAgICAgIH0gZWxzZSBpZiAocmMgJiYgZnJhbWVk dXJfbnMpIHsKPiA+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHRpbWV2YWwg KnRfb2xkOwo+ID4+Pj4+Pj4+IC0gICAgICAgICAgICAgICB1NjQgZGlmZl9uczsKPiA+Pj4+Pj4+ PiAtCj4gPj4+Pj4+Pj4gKyAgICAgICAvKgo+ID4+Pj4+Pj4+ICsgICAgICAgICogQWx3YXlzIHVz ZSB2YmxhbmsgdGltZXN0YW1waW5nIGJhc2VkIG1ldGhvZCBpZiBzdXBwb3J0ZWQgdG8gcmVqZWN0 Cj4gPj4+Pj4+Pj4gKyAgICAgICAgKiByZWR1bmRhbnQgdmJsYW5rIGlycXMuIEUuZy4sIEFNRCBo YXJkd2FyZSBuZWVkcyB0aGlzIHRvIG5vdCBzY3JldyB1cAo+ID4+Pj4+Pj4+ICsgICAgICAgICog ZHVlIHRvIHNvbWUgaXJxIGhhbmRsaW5nIHF1aXJrLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IEhtbS4g SSdtIHRoaW5raW5nIGl0IHdvdWxkIGJlIGJldHRlciB0byBzaW1wbHkgbm90IGNsYWltIHRoYXQg dGhlcmUncyBhIGh3Cj4gPj4+Pj4+PiBjb3VudGVyIGlmIGl0IGlzbid0IHJlbGlhYmxlLgo+ID4+ Pj4+Pj4KPiA+Pj4+Pj4+PiArICAgICAgICAqCj4gPj4+Pj4+Pj4gKyAgICAgICAgKiBUaGlzIGFs c28gc2V0cyB0aGUgZGlmZiB2YWx1ZSBmb3IgdXNlIGFzIGZhbGxiYWNrIGJlbG93IGluIGNhc2Ug dGhlCj4gPj4+Pj4+Pj4gKyAgICAgICAgKiBodyBkb2VzIG5vdCBzdXBwb3J0IGEgc3VpdGFibGUg aHcgdmJsYW5rIGNvdW50ZXIuCj4gPj4+Pj4+Pj4gKyAgICAgICAgKi8KPiA+Pj4+Pj4+PiArICAg ICAgIGlmIChyYyAmJiBmcmFtZWR1cl9ucykgewo+ID4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAg ICAgdF9vbGQgPSAmdmJsYW5rdGltZXN0YW1wKGRldiwgcGlwZSwgdmJsYW5rLT5jb3VudCk7Cj4g Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICBkaWZmX25zID0gdGltZXZhbF90b19ucygmdF92 YmxhbmspIC0gdGltZXZhbF90b19ucyh0X29sZCk7Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBAQCAt MjEyLDExICsyMTYsMjggQEAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gPj4+Pj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgKi8KPiA+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBE SVZfUk9VTkRfQ0xPU0VTVF9VTEwoZGlmZl9ucywgZnJhbWVkdXJfbnMpOwo+ID4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgIGlmIChkaWZmID09IDAgJiYgZmxhZ3MgJiBEUk1fQ0FM TEVEX0ZST01fVkJMSVJRKQo+ID4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgIERSTV9E RUJVR19WQkwoImNydGMgJXU6IFJlZHVuZGFudCB2YmxpcnEgaWdub3JlZC4iCj4gPj4+Pj4+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGRpZmZfbnMgPSAlbGxkLCBm cmFtZWR1cl9ucyA9ICVkKVxuIiwKPiA+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBpcGUsIChsb25nIGxvbmcpIGRpZmZfbnMsIGZyYW1lZHVyX25zKTsKPiA+ Pj4+Pj4+PiAtICAgICAgIH0gZWxzZSB7Cj4gPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgIGlmIChk aWZmID09IDAgJiYgZmxhZ3MgJiBEUk1fQ0FMTEVEX0ZST01fVkJMSVJRKSB7Cj4gPj4+Pj4+Pj4g KyAgICAgICAgICAgICAgICAgICBEUk1fREVCVUdfVkJMKCJjcnRjICV1OiBSZWR1bmRhbnQgdmJs aXJxIGlnbm9yZWQuIgo+ID4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgIiBkaWZmX25zID0g JWxsZCwgZnJhbWVkdXJfbnMgPSAlZClcbiIsCj4gPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAg ICBwaXBlLCAobG9uZyBsb25nKSBkaWZmX25zLCBmcmFtZWR1cl9ucyk7Cj4gPj4+Pj4+Pj4gKwo+ ID4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgLyogVHJlYXQgdGhpcyByZWR1bmRhbnQgaW52 b2NhdGlvbiBhcyBuby1vcC4gKi8KPiA+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgIFdBUk5f T05fT05DRShjdXJfdmJsYW5rICE9IHZibGFuay0+bGFzdCk7Cj4gPj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICByZXR1cm47Cj4gPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgIH0KPiA+Pj4+Pj4+ PiArICAgICAgIH0KPiA+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4gKyAgICAgICAvKgo+ID4+Pj4+Pj4+ ICsgICAgICAgICogaHcgY291bnRlcnMsIGlmIG1hcmtlZCBhcyBzdXBwb3J0ZWQgdmlhIG1heF92 YmxhbmtfY291bnQgIT0gMCwKPiA+Pj4+Pj4+PiArICAgICAgICAqICptdXN0KiBpbmNyZW1lbnQg YXQgbGVhZGluZyBlZGdlIG9mIHZibGFuayBhbmQgaW4gc3luYyB3aXRoCj4gPj4+Pj4+Pj4gKyAg ICAgICAgKiB0aGUgZmlyaW5nIG9mIHRoZSBodyB2YmxhbmsgaXJxLCBvdGhlcndpc2Ugd2UgaGF2 ZSBhIHJhY2UgaGVyZQo+ID4+Pj4+Pj4+ICsgICAgICAgICogYmV0d2VlbiBncHUgYW5kIHVzLCB3 aGVyZSBzbWFsbCB2YXJpYXRpb25zIGluIG91ciBleGVjdXRpb24KPiA+Pj4+Pj4+PiArICAgICAg ICAqIHRpbWluZyBjYW4gY2F1c2Ugb2ZmLWJ5LW9uZSBtaXNjb3VudGluZyBvZiB2YmxhbmtzLgo+ ID4+Pj4+Pj4+ICsgICAgICAgICovCj4gPj4+Pj4+Pj4gKyAgICAgICBpZiAoZGV2LT5tYXhfdmJs YW5rX2NvdW50ICE9IDApIHsKPiA+Pj4+Pj4+PiArICAgICAgICAgICAgICAgLyogdHJ1c3QgdGhl IGh3IGNvdW50ZXIgd2hlbiBpdCdzIGFyb3VuZCAqLwo+ID4+Pj4+Pj4+ICsgICAgICAgICAgICAg ICBkaWZmID0gKGN1cl92YmxhbmsgLSB2YmxhbmstPmxhc3QpICYgZGV2LT5tYXhfdmJsYW5rX2Nv dW50Owo+ID4+Pj4+Pj4+ICsgICAgICAgfSBlbHNlIGlmICghKHJjICYmIGZyYW1lZHVyX25zKSkg ewo+ID4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgLyogc29tZSBraW5kIG9mIGRlZmF1bHQg Zm9yIGRyaXZlcnMgdy9vIGFjY3VyYXRlIHZibCB0aW1lc3RhbXBpbmcgKi8KPiA+Pj4+Pj4+PiAg ICAgICAgICAgICAgICAgICAgIGRpZmYgPSAoZmxhZ3MgJiBEUk1fQ0FMTEVEX0ZST01fVkJMSVJR KSAhPSAwOwo+ID4+Pj4+Pj4+ICAgICAgICAgICAgIH0KPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pgo+ID4+ Pj4+Cj4gPj4+Cj4gPgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK