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 20:20:51 +0200 Message-ID: <20151119182051.GU4437@intel.com> References: <564E0AF4.3050406@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 4ED4F6E65F for ; Mon, 30 Nov 2015 12:13:11 -0800 (PST) Resent-Message-ID: <20151130201308.GA4437@intel.com> Resent-To: dri-devel@lists.freedesktop.org Content-Disposition: inline In-Reply-To: <564E0AF4.3050406@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 T24gVGh1LCBOb3YgMTksIDIwMTUgYXQgMDY6NDY6MjhQTSArMDEwMCwgTWFyaW8gS2xlaW5lciB3 cm90ZToKPiBIaSBBbGV4IGFuZCBNaWNoZWwgYW5kIFZpbGxlLAo+IAo+IGl0J3MgImZpeCB2Ymxh bmsgc3R1ZmYiIHRpbWUgYWdhaW4gOy0pCj4gCj4gVmlsbGUncyBjaGFuZ2VzIHRvIHRoZSBEUk0n cyBkcm1faGFuZGxlX3ZibGFuaygpIC8gCj4gZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoKSBjb2Rl IGluIExpbnV4IDQuNCBub3Qgb25seSBtYWRlIHRoYXQgY29kZSBtb3JlIAo+IGVsZWdhbnQsIGJ1 dCBhbHNvIHJlbW92ZWQgdGhlIHJvYnVzdG5lc3MgYWdhaW5zdCB0aGUgdmJsYW5rIGlycSBxdWly a3MgCj4gaW4gQU1EIGh3IGFuZCBzaW1pbGFyIGhhcmR3YXJlLiBTbyBub3cgaSBnZXQgdG9ucyBv ZiBvZmYtYnktb25lIGVycm9ycyBhbmQKPiAKPiAiWyAgIDQzMi4zNDVdIChXVykgUkFERU9OKDEp OiByYWRlb25fZHJpMl9mbGlwX2V2ZW50X2hhbmRsZXI6IFBhZ2VmbGlwIAo+IGNvbXBsZXRpb24g ZXZlbnQgaGFzIGltcG9zc2libGUgbXNjIDI0ODAzIDwgdGFyZ2V0X21zYyAyNDgwNCIgWE9yZyAK PiBtZXNzYWdlcyBmcm9tIHRoYXQga2VybmVsLgoKQXJnaC4gU29ycnkgYWJvdXQgdGhhdC4KCj4g Cj4gT25lIG9mIHRoZSByZWFzb25zIGZvciB0cm91YmxlIGlzIHRoYXQgQU1EIGh3IHF1aXJrIHdo ZXJlIHRoZSBodyBmaXJlcyAKPiBhbiBleHRyYSB2YmxhbmsgaXJxIHNob3J0bHkgYWZ0ZXIgdmJs YW5rIGlycSdzIGdldCBlbmFibGVkLCBub3QgCj4gc3luY2hyb25pemVkIHRvIHZibGFuaywgYnV0 IHR5cGljYWxseSBpbiB0aGUgbWlkZGxlIG9mIGFjdGl2ZSBzY2Fub3V0LCAKPiBzbyB3ZSBnZXQg YSByZWR1bmRhbnQgY2FsbCB0byBkcm1faGFuZGxlX3ZibGFuayBpbiB0aGUgbWlkZGxlIG9mIHNj YW5vdXQuCgpJIHRoaW5rIHRoYXQgc2hvdWxkIGJlIGZpbmUgYXMgc3VjaC4gVGhlIGNvZGUgc2hv dWxkIGlnbm9yZSByZWR1ZG50YW50CnZibCBpcnFzLiBXZWxsLCBhc3N1bWluZyB5b3UgaGF2ZSBh IHJlbGlhYmxlIGh3IGNvdW50ZXIgb3IgeW91IHVzZSB0aGUKdGltZXN0YW1wIGd1ZXNzdGltYXRl IG1lY2hhbmlzbSBhbmQgeW91ciBzY2Fub3V0IHBvc2l0aW9uIGlzIHJlcG9ydGVkCmFjY3VyYXRl bHkuIEJ1dCBJIGd1ZXNzIHlvdSBoYXZlIGEgYml0IG9mIHByb2JsZW0gd2l0aCBib3RoLgoKPiAK PiBUbyBmaXggdGhhdCBpIGhhdmUgYSBtaW5vciBwYXRjaCB0byBtYWtlIGRybV91cGRhdGVfdmJs YW5rX2NvdW50KCkgYWdhaW4gCj4gcm9idXN0IGFnYWluc3Qgc3VjaCByZWR1bmRhbnQgY2FsbHMs IHdoaWNoIGkgd2lsbCBzZW5kIG91dCBsYXRlciB0byB0aGUgCj4gbWFpbGluZyBsaXN0LiBEaWZm IGF0dGFjaGVkIGZvciByZWZlcmVuY2UuCj4gCj4gVGhlIHNlY29uZCBxdWlyayBvZiBBTUQgaHcg aXMgdGhhdCB0aGUgdmJsYW5rIGludGVycnVwdCBmaXJlcyBhIGZldyAKPiBzY2FubGluZXMgYmVm b3JlIHN0YXJ0IG9mIHZibGFuaywgc28gZHJtX2hhbmRsZV92YmxhbmsgLT4gCj4gZHJtX3VwZGF0 ZV92YmxhbmtfY291bnQoKSAtPiBkZXYtPmRyaXZlci0+Z2V0X3ZibGFua19jb3VudGVyKCkgZ2V0 cyAKPiBjYWxsZWQgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgdmJsYW5rIGZvciB3aGljaCB0aGUg bmV3IHZibGFuayBjb3VudCAKPiBzaG91bGQgYmUgcXVlcmllZC4KCkRvZXMgaXQgZmlyZSB0b28g c29vbiwgb3IgaXMgdGhlIHNjYW5vdXQgcG9zaXRpb24gcmVnaXN0ZXIgdmFsdWUocykKanVzdCBv ZmZzZXQgYnkgYSBmZXcgbGluZXMgcGVyaGFwcz8KCldlIGhhdmUgdGhhdCB3aXRoIGk5MTUgYW5k IEkgc2ltcGx5IGZpeCB1cCB0aGUgdmFsdWUgd2hlbiByZWFkaW5nIGl0Cm91dC4gRm9ydHVuYXRl bHkgZm9yIHVzIHRoZSBvZmZzZXQgaXMgY29uc3RhbnQgKG9yIGF0IGxlYXN0IHNlZW1zIHRvCmJl KSBmb3IgYSBnaXZlbiBwbGF0Zm9ybS9jb25uZWN0b3IgY29tYm8uCgo+IAo+IFRoZSB0aGlyZCBw cm9ibGVtIGlzIHRoYXQgdGhlIERSTSB2YmxhbmsgaGFuZGxpbmcgYWx3YXlzIGhhZCB0aGUgCj4g YXNzdW1wdGlvbiB0aGF0IGhhcmR3YXJlIHZibGFuayBjb3VudGVycyB3b3VsZCBlc3NlbnRpYWxs eSBpbmNyZW1lbnQgYXQgCj4gbGVhZGluZyBlZGdlIG9mIHZibGFuayAtIGJhc2ljYWxseSBpbiBz eW5jIHdpdGggdGhlIGZpcmluZyBvZiB0aGUgdmJsYW5rIAo+IGlycSwgc28gdGhhdCBhIGh3IGNv dW50ZXIgcmVhZG91dCBmcm9tIHdpdGhpbiB0aGUgdmJsYW5rIGlycSBoYW5kbGVyIAo+IHdvdWxk IGFsd2F5cyBkZWxpdmVyIHRoZSBuZXcgaW5jcmVtZW50ZWQgdmFsdWUuIElmIHRoaXMgYXNzdW1w dGlvbiBpcyAKPiB2aW9sYXRlZCB0aGVuIHRoZSBjb3VudGluZyBieSB1c2Ugb2YgdGhlIGh3IGNv dW50ZXIgZ2V0cyB1bnJlbGlhYmxlLCAKPiBiZWNhdXNlIGRlcGVuZGluZyBvbiByYW5kb20gc21h bGwgZGVsYXlzIGluIGlycSBoYW5kbGluZyB0aGUgY29kZSBtYXkgCj4gZW5kIHVwIHNhbXBsaW5n IHRoZSBodyBjb3VudGVyIHByZS0gb3IgcG9zdC1pbmNyZW1lbnQsIGxlYWRpbmcgdG8gCj4gaW5j b25zaXN0ZW50IHVwZGF0aW5nIGFuZCBmdW5reSBidWdzLiBJdCBqdXN0IHNvIGhhcHBlbnMgdGhh dCBBTUQgCj4gaGFyZHdhcmUgZG9lc24ndCBpbmNyZW1lbnQgdGhlIGh3IGNvdW50ZXIgYXQgbGVh ZGluZyBlZGdlIG9mIHZibGFuaywgc28gCj4gc3R1ZmYgZmFsbHMgYXBhcnQuCj4gCj4gU28gdG8g Zml4IHRob3NlIHR3byBwcm9ibGVtcyBpJ20gdGlua2VyaW5nIHdpdGggY29va2luZyB0aGUgaHcg dmJsYW5rIAo+IGNvdW50ZXIgdmFsdWUgcmV0dXJuZWQgYnkgcmFkZW9uX2dldF92YmxhbmtfY291 bnRlcl9rbXMoKSB0byBtYWtlIGl0IAo+IGFwcGVhciBhcyBpZiB0aGUgY291bnRlciBpbmNyZW1l bnRlZCBhdCBsZWFkaW5nIGVkZ2Ugb2YgdmJsYW5rIGluIHN5bmMgCj4gd2l0aCB2YmxhbmsgaXJx LgoKWWVhaCwgSSBkbyB0aGF0IGluIGk5MTUgdG9vLiBXZWxsLCBvbiBzb21lIHBsYXRmb3JtcyB3 aGVyZSB0aGUKY291bnRlciBpbmNyZW1lbnRzIGF0IHRoZSBsZWFkaW5nIGVkZ2Ugb2YgYWN0aXZl LgoKPiAKPiBJdCBhbG1vc3Qgc29ydCBvZiB3b3JrcyBvbiB0aGUgcnM2MDAgY29kZSBwYXRoLCBi dXQgaSBuZWVkIGEgYml0IG9mIGluZm8gCj4gZnJvbSB5b3U6Cj4gCj4gMS4gVGhlcmUncyB0aGlz IHJlZ2lzdGVyIGZyb20gdGhlIG9sZCBzcGVjcyBmb3IgbTc2LnBkZiwgd2hpY2ggaXMgbm90IAo+ IHBhcnQgb2YgdGhlIGN1cnJlbnQgcmVnaXN0ZXIgZGVmaW5lcyBmb3IgcmFkZW9uLWttczoKPiAK PiAiRDFDUlRDX1NUQVRVU19WRl9DT1VOVCAtIFJXIC0gMzIgYml0cyAtIFtHcHVGME1NUmVnOjB4 NjBBOF0iCj4gCj4gSXQgY29udGFpbnMgdGhlIGxvd2VyIDE2IGJpdHMgb2YgZnJhbWVjb3VudGVy IGFuZCB0aGUgMTMgYml0cyBvZiAKPiB2ZXJ0aWNhbCBzY2Fub3V0IHBvc2l0aW9uLiBJdCBzZWVt cyB0byBnaXZlIHRoZSBzYW1lIHJlYWRpbmdzIGFzIHRoZSAyNCAKPiBiaXQgUl8wMDYwQTRfRDFD UlRDX1NUQVRVU19GUkFNRV9DT1VOVCB3ZSB1c2UgZm9yIHRoZSBodyBjb3VudGVyLiBUaGlzIAo+ IHdvdWxkIGNvbWUgaGFuZHkuCj4gCj4gRG9lcyBFdmVyZ3JlZW4gYW5kIGxhdGVyIGhhdmUgYSBz YW1lL3NpbWlsYXIgcmVnaXN0ZXIgYW5kIHdoZXJlIGlzIGl0Pwo+IAo+IDIuIFRoZSBodyBmcmFt ZWNvdW50ZXIgc2VlbXMgdG8gaW5jcmVtZW50IHdoZW4gdGhlIHZlcnRpY2FsIHNjYW5vdXQgCj4g cG9zaXRpb24gd3JhcHMgYmFjayBmcm9tIChWVE9UQUwgLSAxKSB0byAwLCBhdCBsZWFzdCBvbiB0 aGUgb25lIERDRS0zIAo+IGdwdSBpIHRlc3RlZCBzbyBmYXIuIElzIHRoaXMgc28gb24gYWxsIGFz aWNzPyBBbmQgaXMgdGhlIGh3IGNvdW50ZXIgCj4gaW5jcmVtZW50IGhhcHBlbmluZyBleGFjdGx5 IGF0IHRoZSBtb21lbnQgdGhhdCB2ZXJ0aWNhbCBzY2Fub3V0IHBvc2l0aW9uIAo+IGp1bXBzIGJh Y2sgdG8gemVybywgaWUuIGJvdGggZXZlbnRzIGFyZSBkcml2ZW4gYnkgdGhlIHNhbWUgc2lnbmFs PyBPciBpcyAKPiB0aGUgZnJhbWVjb3VudGVyIGluY3JlbWVudCBqdXN0IGhhcHBlbmluZyBzb21l d2hlcmUgaW5zaWRlIGVpdGhlciAKPiBzY2FubGluZSBWVE9UQUwtMSBvciBzY2FubGluZSAwPwo+ IAo+IAo+IElmIHdlIGNhbiBmaXggdGhpcyBhbmQgZ2V0IGl0IGludG8gcmMyIG9yIHJjMyB0aGVu IHdlIGNvdWxkIGF2b2lkIGEgYmFkIAo+IHJlZ3Jlc3Npb24gYW5kIHdpdGggYSBiaXQgb2YgbHVj ayBhdCB0aGUgc2FtZSB0aW1lIGltcHJvdmUgYnkgYmVpbmcgYWJsZSAKPiB0byBzZXQgZGV2LT52 YmxhbmtfZGlzYWJsZV9pbW1lZGlhdGUgPSB0cnVlIHRoZW4gYW5kIGFsbG93IHZibGFuayBpcnFz IAo+IHRvIGdldCB0dXJuZWQgb2ZmIG1vcmUgYWdncmVzc2l2ZWx5IGZvciBhIGJpdCBvZiBleHRy YSBwb3dlciBzYXZpbmcuCj4gCj4gdGhhbmtzLAo+IC1tYXJpbwoKPiAtLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1faXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gQEAgLTE3 Miw5ICsxNzIsMTEgQEAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncykKPiAgewo+ICAgICAgICAgc3Ry dWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJsYW5rW3BpcGVdOwo+IC0gICAg ICAgdTMyIGN1cl92YmxhbmssIGRpZmY7Cj4gKyAgICAgICB1MzIgY3VyX3ZibGFuaywgZGlmZiA9 IDA7Cj4gICAgICAgICBib29sIHJjOwo+ICAgICAgICAgc3RydWN0IHRpbWV2YWwgdF92Ymxhbms7 Cj4gKyAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXZhbCAqdF9vbGQ7Cj4gKyAgICAgICB1NjQgZGlm Zl9uczsKPiAgICAgICAgIGludCBjb3VudCA9IERSTV9USU1FU1RBTVBfTUFYUkVUUklFUzsKPiAg ICAgICAgIGludCBmcmFtZWR1cl9ucyA9IHZibGFuay0+ZnJhbWVkdXJfbnM7Cj4gCj4gQEAgLTE5 NSwxMyArMTk3LDE1IEBAIHN0YXRpYyB2b2lkIGRybV91cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+ICAgICAgICAgICAgICAgICBy YyA9IGRybV9nZXRfbGFzdF92Ymx0aW1lc3RhbXAoZGV2LCBwaXBlLCAmdF92YmxhbmssIGZsYWdz KTsKPiAgICAgICAgIH0gd2hpbGUgKGN1cl92YmxhbmsgIT0gZGV2LT5kcml2ZXItPmdldF92Ymxh bmtfY291bnRlcihkZXYsIHBpcGUpICYmIC0tY291bnQgPiAwKTsKPiAKPiAtICAgICAgIGlmIChk ZXYtPm1heF92YmxhbmtfY291bnQgIT0gMCkgewo+IC0gICAgICAgICAgICAgICAvKiB0cnVzdCB0 aGUgaHcgY291bnRlciB3aGVuIGl0J3MgYXJvdW5kICovCj4gLSAgICAgICAgICAgICAgIGRpZmYg PSAoY3VyX3ZibGFuayAtIHZibGFuay0+bGFzdCkgJiBkZXYtPm1heF92YmxhbmtfY291bnQ7Cj4g LSAgICAgICB9IGVsc2UgaWYgKHJjICYmIGZyYW1lZHVyX25zKSB7Cj4gLSAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCB0aW1ldmFsICp0X29sZDsKPiAtICAgICAgICAgICAgICAgdTY0IGRpZmZf bnM7Cj4gLQo+ICsgICAgICAgLyoKPiArICAgICAgICAqIEFsd2F5cyB1c2UgdmJsYW5rIHRpbWVz dGFtcGluZyBiYXNlZCBtZXRob2QgaWYgc3VwcG9ydGVkIHRvIHJlamVjdAo+ICsgICAgICAgICog cmVkdW5kYW50IHZibGFuayBpcnFzLiBFLmcuLCBBTUQgaGFyZHdhcmUgbmVlZHMgdGhpcyB0byBu b3Qgc2NyZXcgdXAKPiArICAgICAgICAqIGR1ZSB0byBzb21lIGlycSBoYW5kbGluZyBxdWlyay4K CkhtbS4gSSdtIHRoaW5raW5nIGl0IHdvdWxkIGJlIGJldHRlciB0byBzaW1wbHkgbm90IGNsYWlt IHRoYXQgdGhlcmUncyBhIGh3CmNvdW50ZXIgaWYgaXQgaXNuJ3QgcmVsaWFibGUuCgo+ICsgICAg ICAgICoKPiArICAgICAgICAqIFRoaXMgYWxzbyBzZXRzIHRoZSBkaWZmIHZhbHVlIGZvciB1c2Ug YXMgZmFsbGJhY2sgYmVsb3cgaW4gY2FzZSB0aGUKPiArICAgICAgICAqIGh3IGRvZXMgbm90IHN1 cHBvcnQgYSBzdWl0YWJsZSBodyB2YmxhbmsgY291bnRlci4KPiArICAgICAgICAqLwo+ICsgICAg ICAgaWYgKHJjICYmIGZyYW1lZHVyX25zKSB7Cj4gICAgICAgICAgICAgICAgIHRfb2xkID0gJnZi bGFua3RpbWVzdGFtcChkZXYsIHBpcGUsIHZibGFuay0+Y291bnQpOwo+ICAgICAgICAgICAgICAg ICBkaWZmX25zID0gdGltZXZhbF90b19ucygmdF92YmxhbmspIC0gdGltZXZhbF90b19ucyh0X29s ZCk7Cj4gCj4gQEAgLTIxMiwxMSArMjE2LDI4IEBAIHN0YXRpYyB2b2lkIGRybV91cGRhdGVfdmJs YW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+ICAg ICAgICAgICAgICAgICAgKi8KPiAgICAgICAgICAgICAgICAgZGlmZiA9IERJVl9ST1VORF9DTE9T RVNUX1VMTChkaWZmX25zLCBmcmFtZWR1cl9ucyk7Cj4gCj4gLSAgICAgICAgICAgICAgIGlmIChk aWZmID09IDAgJiYgZmxhZ3MgJiBEUk1fQ0FMTEVEX0ZST01fVkJMSVJRKQo+IC0gICAgICAgICAg ICAgICAgICAgICAgIERSTV9ERUJVR19WQkwoImNydGMgJXU6IFJlZHVuZGFudCB2YmxpcnEgaWdu b3JlZC4iCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGRpZmZfbnMg PSAlbGxkLCBmcmFtZWR1cl9ucyA9ICVkKVxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBpcGUsIChsb25nIGxvbmcpIGRpZmZfbnMsIGZyYW1lZHVyX25zKTsKPiAt ICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgIGlmIChkaWZmID09IDAgJiYgZmxhZ3Mg JiBEUk1fQ0FMTEVEX0ZST01fVkJMSVJRKSB7Cj4gKyAgICAgICAgICAgICAgICAgICBEUk1fREVC VUdfVkJMKCJjcnRjICV1OiBSZWR1bmRhbnQgdmJsaXJxIGlnbm9yZWQuIgo+ICsgICAgICAgICAg ICAgICAgICAgIiBkaWZmX25zID0gJWxsZCwgZnJhbWVkdXJfbnMgPSAlZClcbiIsCj4gKyAgICAg ICAgICAgICAgICAgICBwaXBlLCAobG9uZyBsb25nKSBkaWZmX25zLCBmcmFtZWR1cl9ucyk7Cj4g Kwo+ICsgICAgICAgICAgICAgICAgICAgLyogVHJlYXQgdGhpcyByZWR1bmRhbnQgaW52b2NhdGlv biBhcyBuby1vcC4gKi8KPiArICAgICAgICAgICAgICAgICAgIFdBUk5fT05fT05DRShjdXJfdmJs YW5rICE9IHZibGFuay0+bGFzdCk7Cj4gKyAgICAgICAgICAgICAgICAgICByZXR1cm47Cj4gKyAg ICAgICAgICAgICAgIH0KPiArICAgICAgIH0KPiArCj4gKyAgICAgICAvKgo+ICsgICAgICAgICog aHcgY291bnRlcnMsIGlmIG1hcmtlZCBhcyBzdXBwb3J0ZWQgdmlhIG1heF92YmxhbmtfY291bnQg IT0gMCwKPiArICAgICAgICAqICptdXN0KiBpbmNyZW1lbnQgYXQgbGVhZGluZyBlZGdlIG9mIHZi bGFuayBhbmQgaW4gc3luYyB3aXRoCj4gKyAgICAgICAgKiB0aGUgZmlyaW5nIG9mIHRoZSBodyB2 YmxhbmsgaXJxLCBvdGhlcndpc2Ugd2UgaGF2ZSBhIHJhY2UgaGVyZQo+ICsgICAgICAgICogYmV0 d2VlbiBncHUgYW5kIHVzLCB3aGVyZSBzbWFsbCB2YXJpYXRpb25zIGluIG91ciBleGVjdXRpb24K PiArICAgICAgICAqIHRpbWluZyBjYW4gY2F1c2Ugb2ZmLWJ5LW9uZSBtaXNjb3VudGluZyBvZiB2 YmxhbmtzLgo+ICsgICAgICAgICovCj4gKyAgICAgICBpZiAoZGV2LT5tYXhfdmJsYW5rX2NvdW50 ICE9IDApIHsKPiArICAgICAgICAgICAgICAgLyogdHJ1c3QgdGhlIGh3IGNvdW50ZXIgd2hlbiBp dCdzIGFyb3VuZCAqLwo+ICsgICAgICAgICAgICAgICBkaWZmID0gKGN1cl92YmxhbmsgLSB2Ymxh bmstPmxhc3QpICYgZGV2LT5tYXhfdmJsYW5rX2NvdW50Owo+ICsgICAgICAgfSBlbHNlIGlmICgh KHJjICYmIGZyYW1lZHVyX25zKSkgewo+ICAgICAgICAgICAgICAgICAvKiBzb21lIGtpbmQgb2Yg ZGVmYXVsdCBmb3IgZHJpdmVycyB3L28gYWNjdXJhdGUgdmJsIHRpbWVzdGFtcGluZyAqLwo+ICAg ICAgICAgICAgICAgICBkaWZmID0gKGZsYWdzICYgRFJNX0NBTExFRF9GUk9NX1ZCTElSUSkgIT0g MDsKPiAgICAgICAgIH0KCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=