From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v3] drm/i915: Move missed interrupt detection from hangcheck to breadcrumbs Date: Tue, 09 Aug 2016 18:24:58 +0300 Message-ID: <87lh06newl.fsf@gaia.fi.intel.com> References: <1470581141-14432-4-git-send-email-chris@chris-wilson.co.uk> <1470751850-26771-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 97CC96E5F2 for ; Tue, 9 Aug 2016 15:25:28 +0000 (UTC) In-Reply-To: <1470751850-26771-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gSW4gY29t bWl0IDI1MjlkNTcwNTBhZiAoImRybS9pOTE1OiBEcm9wIHJhY3kgbWFya3VwIG9mIG1pc3NlZC1p cnFzIGZyb20KPiBpZGxlLXdvcmtlciIpIHRoZSByYWN5IGRldGVjdGlvbiBvZiBtaXNzZWQgaW50 ZXJydXB0cyB3YXMgcmVtb3ZlZCB3aGVuCj4gd2Ugd2VudCBpZGxlLiBUaGlzIGhvd2V2ZXIgb3Bl bmVkIHVwIHRoZSBpc3N1ZSB0aGF0IHRoZSBzdHVjayB3YWl0ZXJzCj4gd2VyZSBub3QgYmVpbmcg cmVwb3J0ZWQsIGNhdXNpbmcgYSB0ZXN0IGNhc2UgZmFpbHVyZS4gSWYgd2UgbW92ZSB0aGUKPiBz dHVjayB3YWl0ZXIgZGV0ZWN0aW9uIG91dCBvZiBoYW5nY2hlY2sgYW5kIGludG8gdGhlIGJyZWFk Y3J1bWIKPiBtZWNoYW5pbXMgKGkuZS4gdGhlIHdhaXRlcikgaXRzZWxmLCB3ZSBjYW4gYXZvaWQg dGhpcyBpc3N1ZSBlbnRpcmVseS4KPiBUaGlzIGxlYXZlcyBoYW5nY2hlY2sgbG9va2luZyBmb3Ig YSBzdHVjayBHUFUgKGluc3BlY3RpbmcgZm9yIHJlcXVlc3QKPiBhZHZhbmNlbWVudCBhbmQgSEVB RCBtb3Rpb24pLCBhbmQgYnJlYWRjcnVtYnMgbG9va2luZyBmb3IgYSBzdHVjawo+IHdhaXRlciAt IGhvcGVmdWxseSBtYWtlIGJvdGggZWFzaWVyIHRvIHVuZGVyc3RhbmQgYnkgdGhlaXIgc2VncmVn YXRpb24uCj4KPiB2MjogUmVkdWNlIHRoZSBlcnJvciBtZXNzYWdlIGFzIHdlIG5vdyBydW4gaW5k ZXBlbmRlbnRseSBvZiBoYW5nY2hlY2ssCj4gYW5kIHRoZSBoYW5naW5nIGJhdGNoIHVzZWQgYnkg aWd0IGFsc28gY291bnRzIGFzIGEgc3R1Y2sgd2FpdGVyIGNhdXNpbmcKPiBleHRyYSB3YXJuaW5n cyBpbiBkbWVzZy4KPiB2MzogTW92ZSB0aGUgYnJlYWRjcnVtYidzIGhhbmdjaGVjayBraWNrc3Rh cnQgdG8gdGhlIGZpcnN0IG1pc3NlZCB3YWl0Lgo+Cj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5m cmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MTA0Cj4gRml4ZXM6IDI1MjlkNTcwNTBh ZiAod2FpdGVyImRybS9pOTE1OiBEcm9wIHJhY3kgbWFya3VwIG9mIG1pc3NlZC1pcnFzLi4uIikK PiBUZXN0Y2FzZTogaWd0L2Rydl9taXNzZWRfaXJxCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpSZXZpZXdlZC1ieTogTWlrYSBLdW9wcGFs YSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+Cgo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25h cy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28u dXJzdWxpbkBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBh bGFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YyAgICAgIHwgMTEgKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAg ICAgICB8IDEwIC0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAg ICAgfCAyNiArLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRj cnVtYnMuYyB8IDY5ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgfCAgNiArLS0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA1 NiBpbnNlcnRpb25zKCspLCA2NyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCj4gaW5kZXggZjYyMjg1YzFlZDdmLi45NmJmYzc0NWE4MjAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC03ODcsOCArNzg3LDYgQEAgc3RhdGljIHZv aWQgaTkxNV9yaW5nX3NlcW5vX2luZm8oc3RydWN0IHNlcV9maWxlICptLAo+ICAKPiAgCXNlcV9w cmludGYobSwgIkN1cnJlbnQgc2VxdWVuY2UgKCVzKTogJXhcbiIsCj4gIAkJICAgZW5naW5lLT5u YW1lLCBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSkpOwo+IC0Jc2VxX3ByaW50ZihtLCAi Q3VycmVudCB1c2VyIGludGVycnVwdHMgKCVzKTogJWx4XG4iLAo+IC0JCSAgIGVuZ2luZS0+bmFt ZSwgUkVBRF9PTkNFKGVuZ2luZS0+YnJlYWRjcnVtYnMuaXJxX3dha2V1cHMpKTsKPiAgCj4gIAlz cGluX2xvY2soJmItPmxvY2spOwo+ICAJZm9yIChyYiA9IHJiX2ZpcnN0KCZiLT53YWl0ZXJzKTsg cmI7IHJiID0gcmJfbmV4dChyYikpIHsKPiBAQCAtMTQzNCwxMSArMTQzMiwxMCBAQCBzdGF0aWMg aW50IGk5MTVfaGFuZ2NoZWNrX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQp Cj4gIAkJCSAgIGVuZ2luZS0+aGFuZ2NoZWNrLnNlcW5vLAo+ICAJCQkgICBzZXFub1tpZF0sCj4g IAkJCSAgIGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm8pOwo+IC0JCXNlcV9wcmludGYobSwg Ilx0d2FpdGVycz8gJWRcbiIsCj4gLQkJCSAgIGludGVsX2VuZ2luZV9oYXNfd2FpdGVyKGVuZ2lu ZSkpOwo+IC0JCXNlcV9wcmludGYobSwgIlx0dXNlciBpbnRlcnJ1cHRzID0gJWx4IFtjdXJyZW50 ICVseF1cbiIsCj4gLQkJCSAgIGVuZ2luZS0+aGFuZ2NoZWNrLnVzZXJfaW50ZXJydXB0cywKPiAt CQkJICAgUkVBRF9PTkNFKGVuZ2luZS0+YnJlYWRjcnVtYnMuaXJxX3dha2V1cHMpKTsKPiArCQlz ZXFfcHJpbnRmKG0sICJcdHdhaXRlcnM/ICVzLCBmYWtlIGlycSBhY3RpdmU/ICVzXG4iLAo+ICsJ CQkgICB5ZXNubyhpbnRlbF9lbmdpbmVfaGFzX3dhaXRlcihlbmdpbmUpKSwKPiArCQkJICAgeWVz bm8odGVzdF9iaXQoZW5naW5lLT5pZCwKPiArCQkJCQkgICZkZXZfcHJpdi0+Z3B1X2Vycm9yLm1p c3NlZF9pcnFfcmluZ3MpKSk7Cj4gIAkJc2VxX3ByaW50ZihtLCAiXHRBQ1RIRCA9IDB4JTA4bGx4 IFtjdXJyZW50IDB4JTA4bGx4XVxuIiwKPiAgCQkJICAgKGxvbmcgbG9uZyllbmdpbmUtPmhhbmdj aGVjay5hY3RoZCwKPiAgCQkJICAgKGxvbmcgbG9uZylhY3RoZFtpZF0pOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwo+IGluZGV4IGQ3MWZhOWE5M2FmYS4uMmJiOWVmOTFhMjQzIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTI1MjQsNyArMjUyNCw2IEBAIGk5MTVfZ2VtX2lkbGVf d29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCQljb250YWluZXJfb2Yo d29yaywgdHlwZW9mKCpkZXZfcHJpdiksIGd0LmlkbGVfd29yay53b3JrKTsKPiAgCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZTsKPiAtCXVuc2lnbmVkIGludCBzdHVja19lbmdpbmVzOwo+ICAJYm9vbCByZWFy bV9oYW5nY2hlY2s7Cj4gIAo+ICAJaWYgKCFSRUFEX09OQ0UoZGV2X3ByaXYtPmd0LmF3YWtlKSkK PiBAQCAtMjU1NCwxNSArMjU1Myw2IEBAIGk5MTVfZ2VtX2lkbGVfd29ya19oYW5kbGVyKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCWRldl9wcml2LT5ndC5hd2FrZSA9IGZhbHNlOwo+ICAJ cmVhcm1faGFuZ2NoZWNrID0gZmFsc2U7Cj4gIAo+IC0JLyogQXMgd2UgaGF2ZSBkaXNhYmxlZCBo YW5nY2hlY2ssIHdlIG5lZWQgdG8gdW5zdGljayBhbnkgd2FpdGVycyBzdGlsbAo+IC0JICogaGFu Z2luZyBhcm91bmQuIEhvd2V2ZXIsIGFzIHdlIG1heSBiZSByYWNpbmcgYWdhaW5zdCB0aGUgaW50 ZXJydXB0Cj4gLQkgKiBoYW5kbGVyIG9yIHRoZSB3YWl0ZXJzIHRoZW1zZWx2ZXMsIHdlIHNraXAg ZW5hYmxpbmcgdGhlIGZha2UtaXJxLgo+IC0JICovCj4gLQlzdHVja19lbmdpbmVzID0gaW50ZWxf a2lja193YWl0ZXJzKGRldl9wcml2KTsKPiAtCWlmICh1bmxpa2VseShzdHVja19lbmdpbmVzKSkK PiAtCQlEUk1fREVCVUdfRFJJVkVSKCJraWNrZWQgc3R1Y2sgd2FpdGVycyAoJXgpLi4ubWlzc2Vk IGlycT9cbiIsCj4gLQkJCQkgc3R1Y2tfZW5naW5lcyk7Cj4gLQo+ICAJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gNikKPiAgCQlnZW42X3Jwc19pZGxlKGRldl9wcml2KTsKPiAgCWludGVsX3J1 bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCA1 OTFmNDUyZWNlNjguLmViYjgzZDVhNDQ4YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ IEBAIC05NzIsMTAgKzk3Miw4IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3Jwc19jaGFuZ2VfaXJx X2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICBzdGF0aWMgdm9p ZCBub3RpZnlfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIHsKPiAgCXNt cF9zdG9yZV9tYihlbmdpbmUtPmJyZWFkY3J1bWJzLmlycV9wb3N0ZWQsIHRydWUpOwo+IC0JaWYg KGludGVsX2VuZ2luZV93YWtldXAoZW5naW5lKSkgewo+ICsJaWYgKGludGVsX2VuZ2luZV93YWtl dXAoZW5naW5lKSkKPiAgCQl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShlbmdpbmUpOwo+ IC0JCWVuZ2luZS0+YnJlYWRjcnVtYnMuaXJxX3dha2V1cHMrKzsKPiAtCX0KPiAgfQo+ICAKPiAg c3RhdGljIHZvaWQgdmx2X2MwX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+IEBAIC0zMDQ0LDIyICszMDQyLDYgQEAgZW5naW5lX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwgdTY0IGFjdGhkKQo+ICAJcmV0dXJuIEhBTkdDSEVDS19IVU5HOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdW5zaWduZWQgbG9uZyBraWNrX3dhaXRlcnMoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9 IGVuZ2luZS0+aTkxNTsKPiAtCXVuc2lnbmVkIGxvbmcgaXJxX2NvdW50ID0gUkVBRF9PTkNFKGVu Z2luZS0+YnJlYWRjcnVtYnMuaXJxX3dha2V1cHMpOwo+IC0KPiAtCWlmIChlbmdpbmUtPmhhbmdj aGVjay51c2VyX2ludGVycnVwdHMgPT0gaXJxX2NvdW50ICYmCj4gLQkgICAgIXRlc3RfYW5kX3Nl dF9iaXQoZW5naW5lLT5pZCwgJmk5MTUtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzKSkgewo+ IC0JCWlmICghdGVzdF9iaXQoZW5naW5lLT5pZCwgJmk5MTUtPmdwdV9lcnJvci50ZXN0X2lycV9y aW5ncykpCj4gLQkJCURSTV9FUlJPUigiSGFuZ2NoZWNrIHRpbWVyIGVsYXBzZWQuLi4gJXMgaWRs ZVxuIiwKPiAtCQkJCSAgZW5naW5lLT5uYW1lKTsKPiAtCj4gLQkJaW50ZWxfZW5naW5lX2VuYWJs ZV9mYWtlX2lycShlbmdpbmUpOwo+IC0JfQo+IC0KPiAtCXJldHVybiBpcnFfY291bnQ7Cj4gLX0K PiAgLyoKPiAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgY2hpcCBoYXNuJ3QgcmVwb3J0ZWQg YmFjayB3aXRoIGNvbXBsZXRlZAo+ICAgKiBiYXRjaGJ1ZmZlcnMgaW4gYSBsb25nIHRpbWUuIFdl IGtlZXAgdHJhY2sgcGVyIHJpbmcgc2Vxbm8gcHJvZ3Jlc3MgYW5kCj4gQEAgLTMwOTcsNyArMzA3 OSw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2NoZWNrX2VsYXBzZWQoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQo+ICAJCWJvb2wgYnVzeSA9IGludGVsX2VuZ2luZV9oYXNfd2FpdGVyKGVuZ2lu ZSk7Cj4gIAkJdTY0IGFjdGhkOwo+ICAJCXUzMiBzZXFubzsKPiAtCQl1bnNpZ25lZCB1c2VyX2lu dGVycnVwdHM7Cj4gIAo+ICAJCXNlbWFwaG9yZV9jbGVhcl9kZWFkbG9ja3MoZGV2X3ByaXYpOwo+ ICAKPiBAQCAtMzExNCwxNSArMzA5NSwxMSBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19l bGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCQlhY3RoZCA9IGludGVsX2VuZ2lu ZV9nZXRfYWN0aXZlX2hlYWQoZW5naW5lKTsKPiAgCQlzZXFubyA9IGludGVsX2VuZ2luZV9nZXRf c2Vxbm8oZW5naW5lKTsKPiAgCj4gLQkJLyogUmVzZXQgc3R1Y2sgaW50ZXJydXB0cyBiZXR3ZWVu IGJhdGNoIGFkdmFuY2VzICovCj4gLQkJdXNlcl9pbnRlcnJ1cHRzID0gMDsKPiAtCj4gIAkJaWYg KGVuZ2luZS0+aGFuZ2NoZWNrLnNlcW5vID09IHNlcW5vKSB7Cj4gIAkJCWlmICghaW50ZWxfZW5n aW5lX2lzX2FjdGl2ZShlbmdpbmUpKSB7Cj4gIAkJCQllbmdpbmUtPmhhbmdjaGVjay5hY3Rpb24g PSBIQU5HQ0hFQ0tfSURMRTsKPiAgCQkJCWlmIChidXN5KSB7Cj4gIAkJCQkJLyogU2FmZWd1YXJk IGFnYWluc3QgZHJpdmVyIGZhaWx1cmUgKi8KPiAtCQkJCQl1c2VyX2ludGVycnVwdHMgPSBraWNr X3dhaXRlcnMoZW5naW5lKTsKPiAgCQkJCQllbmdpbmUtPmhhbmdjaGVjay5zY29yZSArPSBCVVNZ Owo+ICAJCQkJfQo+ICAJCQl9IGVsc2Ugewo+IEBAIC0zMTg1LDcgKzMxNjIsNiBAQCBzdGF0aWMg dm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAg Cj4gIAkJZW5naW5lLT5oYW5nY2hlY2suc2Vxbm8gPSBzZXFubzsKPiAgCQllbmdpbmUtPmhhbmdj aGVjay5hY3RoZCA9IGFjdGhkOwo+IC0JCWVuZ2luZS0+aGFuZ2NoZWNrLnVzZXJfaW50ZXJydXB0 cyA9IHVzZXJfaW50ZXJydXB0czsKPiAgCQlidXN5X2NvdW50ICs9IGJ1c3k7Cj4gIAl9Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwo+IGluZGV4IDkwODY3NDQ2 ZjFhNS4uN2JlOWFmMWQ1NDI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2JyZWFkY3J1bWJzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVh ZGNydW1icy5jCj4gQEAgLTI2LDYgKzI2LDQwIEBACj4gIAo+ICAjaW5jbHVkZSAiaTkxNV9kcnYu aCIKPiAgCj4gK3N0YXRpYyB2b2lkIGludGVsX2JyZWFkY3J1bWJzX2hhbmdjaGVjayh1bnNpZ25l ZCBsb25nIGRhdGEpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKPiArCXN0cnVjdCBpbnRlbF9icmVhZGNydW1i cyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwo+ICsKPiArCWlmICghYi0+aXJxX2VuYWJsZWQp Cj4gKwkJcmV0dXJuOwo+ICsKPiArCWlmICh0aW1lX2JlZm9yZShqaWZmaWVzLCBiLT50aW1lb3V0 KSkgewo+ICsJCW1vZF90aW1lcigmYi0+aGFuZ2NoZWNrLCBiLT50aW1lb3V0KTsKPiArCQlyZXR1 cm47Cj4gKwl9Cj4gKwo+ICsJRFJNX0RFQlVHKCJIYW5nY2hlY2sgdGltZXIgZWxhcHNlZC4uLiAl cyBpZGxlXG4iLCBlbmdpbmUtPm5hbWUpOwo+ICsJc2V0X2JpdChlbmdpbmUtPmlkLCAmZW5naW5l LT5pOTE1LT5ncHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncyk7Cj4gKwltb2RfdGltZXIoJmVuZ2lu ZS0+YnJlYWRjcnVtYnMuZmFrZV9pcnEsIGppZmZpZXMgKyAxKTsKPiArCj4gKwkvKiBFbnN1cmUg dGhhdCBldmVuIGlmIHRoZSBHUFUgaGFuZ3MsIHdlIGdldCB3b2tlbiB1cC4KPiArCSAqCj4gKwkg KiBIb3dldmVyLCBub3RlIHRoYXQgaWYgbm8gb25lIGlzIHdhaXRpbmcsIHdlIG5ldmVyIG5vdGlj ZQo+ICsJICogYSBncHUgaGFuZy4gRXZlbnR1YWxseSwgd2Ugd2lsbCBoYXZlIHRvIHdhaXQgZm9y IGEgcmVzb3VyY2UKPiArCSAqIGhlbGQgYnkgdGhlIEdQVSBhbmQgc28gdHJpZ2dlciBhIGhhbmdj aGVjay4gSW4gdGhlIG1vc3QKPiArCSAqIHBhdGhvbG9naWNhbCBjYXNlLCB0aGlzIHdpbGwgYmUg dXBvbiBtZW1vcnkgc3RhcnZhdGlvbiEgVG8KPiArCSAqIHByZXZlbnQgdGhpcywgd2UgYWxzbyBx dWV1ZSB0aGUgaGFuZ2NoZWNrIGZyb20gdGhlIHJldGlyZQo+ICsJICogd29ya2VyLgo+ICsJICov Cj4gKwlpOTE1X3F1ZXVlX2hhbmdjaGVjayhlbmdpbmUtPmk5MTUpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgdW5zaWduZWQgbG9uZyB3YWl0X3RpbWVvdXQodm9pZCkKPiArewo+ICsJcmV0dXJuIHJvdW5k X2ppZmZpZXNfdXAoamlmZmllcyArIERSTV9JOTE1X0hBTkdDSEVDS19KSUZGSUVTKTsKPiArfQo+ ICsKPiAgc3RhdGljIHZvaWQgaW50ZWxfYnJlYWRjcnVtYnNfZmFrZV9pcnEodW5zaWduZWQgbG9u ZyBkYXRhKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqKWRhdGE7Cj4gQEAgLTUxLDEzICs4NSw2IEBAIHN0YXRpYyB2b2lk IGlycV9lbmFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJICovCj4gIAll bmdpbmUtPmJyZWFkY3J1bWJzLmlycV9wb3N0ZWQgPSB0cnVlOwo+ICAKPiAtCS8qIE1ha2Ugc3Vy ZSB0aGUgY3VycmVudCBoYW5nY2hlY2sgZG9lc24ndCBmYWxzZWx5IGFjY3VzZSBhIGp1c3QKPiAt CSAqIHN0YXJ0ZWQgaXJxIGhhbmRsZXIgZnJvbSBtaXNzaW5nIGFuIGludGVycnVwdCAoYmVjYXVz ZSB0aGUKPiAtCSAqIGludGVycnVwdCBjb3VudCBzdGlsbCBtYXRjaGVzIHRoZSBzdGFsZSB2YWx1 ZSBmcm9tIHdoZW4KPiAtCSAqIHRoZSBpcnEgaGFuZGxlciB3YXMgZGlzYWJsZWQsIG1hbnkgaGFu Z2NoZWNrcyBhZ28pLgo+IC0JICovCj4gLQllbmdpbmUtPmJyZWFkY3J1bWJzLmlycV93YWtldXBz Kys7Cj4gLQo+ICAJc3Bpbl9sb2NrX2lycSgmZW5naW5lLT5pOTE1LT5pcnFfbG9jayk7Cj4gIAll bmdpbmUtPmlycV9lbmFibGUoZW5naW5lKTsKPiAgCXNwaW5fdW5sb2NrX2lycSgmZW5naW5lLT5p OTE1LT5pcnFfbG9jayk7Cj4gQEAgLTk4LDE3ICsxMjUsMTMgQEAgc3RhdGljIHZvaWQgX19pbnRl bF9icmVhZGNydW1ic19lbmFibGVfaXJxKHN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKPiAg CX0KPiAgCj4gIAlpZiAoIWItPmlycV9lbmFibGVkIHx8Cj4gLQkgICAgdGVzdF9iaXQoZW5naW5l LT5pZCwgJmk5MTUtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzKSkKPiArCSAgICB0ZXN0X2Jp dChlbmdpbmUtPmlkLCAmaTkxNS0+Z3B1X2Vycm9yLm1pc3NlZF9pcnFfcmluZ3MpKSB7Cj4gIAkJ bW9kX3RpbWVyKCZiLT5mYWtlX2lycSwgamlmZmllcyArIDEpOwo+IC0KPiAtCS8qIEVuc3VyZSB0 aGF0IGV2ZW4gaWYgdGhlIEdQVSBoYW5ncywgd2UgZ2V0IHdva2VuIHVwLgo+IC0JICoKPiAtCSAq IEhvd2V2ZXIsIG5vdGUgdGhhdCBpZiBubyBvbmUgaXMgd2FpdGluZywgd2UgbmV2ZXIgbm90aWNl Cj4gLQkgKiBhIGdwdSBoYW5nLiBFdmVudHVhbGx5LCB3ZSB3aWxsIGhhdmUgdG8gd2FpdCBmb3Ig YSByZXNvdXJjZQo+IC0JICogaGVsZCBieSB0aGUgR1BVIGFuZCBzbyB0cmlnZ2VyIGEgaGFuZ2No ZWNrLiBJbiB0aGUgbW9zdAo+IC0JICogcGF0aG9sb2dpY2FsIGNhc2UsIHRoaXMgd2lsbCBiZSB1 cG9uIG1lbW9yeSBzdGFydmF0aW9uIQo+IC0JICovCj4gLQlpOTE1X3F1ZXVlX2hhbmdjaGVjayhp OTE1KTsKPiArCX0gZWxzZSB7Cj4gKwkJLyogRW5zdXJlIHdlIG5ldmVyIHNsZWVwIGluZGVmaW5p dGVseSAqLwo+ICsJCUdFTV9CVUdfT04oIXRpbWVfYWZ0ZXIoYi0+dGltZW91dCwgamlmZmllcykp Owo+ICsJCW1vZF90aW1lcigmYi0+aGFuZ2NoZWNrLCBiLT50aW1lb3V0KTsKPiArCX0KPiAgfQo+ ICAKPiAgc3RhdGljIHZvaWQgX19pbnRlbF9icmVhZGNydW1ic19kaXNhYmxlX2lycShzdHJ1Y3Qg aW50ZWxfYnJlYWRjcnVtYnMgKmIpCj4gQEAgLTIxOSw2ICsyNDIsNyBAQCBzdGF0aWMgYm9vbCBf X2ludGVsX2VuZ2luZV9hZGRfd2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4g IAkJR0VNX0JVR19PTighbmV4dCAmJiAhZmlyc3QpOwo+ICAJCWlmIChuZXh0ICYmIG5leHQgIT0g JndhaXQtPm5vZGUpIHsKPiAgCQkJR0VNX0JVR19PTihmaXJzdCk7Cj4gKwkJCWItPnRpbWVvdXQg PSB3YWl0X3RpbWVvdXQoKTsKPiAgCQkJYi0+Zmlyc3Rfd2FpdCA9IHRvX3dhaXQobmV4dCk7Cj4g IAkJCXNtcF9zdG9yZV9tYihiLT5pcnFfc2Vxbm9fYmgsIGItPmZpcnN0X3dhaXQtPnRzayk7Cj4g IAkJCS8qIEFzIHRoZXJlIGlzIGEgZGVsYXkgYmV0d2VlbiByZWFkaW5nIHRoZSBjdXJyZW50Cj4g QEAgLTI0NSw2ICsyNjksNyBAQCBzdGF0aWMgYm9vbCBfX2ludGVsX2VuZ2luZV9hZGRfd2FpdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gIAo+ICAJaWYgKGZpcnN0KSB7Cj4gIAkJ R0VNX0JVR19PTihyYl9maXJzdCgmYi0+d2FpdGVycykgIT0gJndhaXQtPm5vZGUpOwo+ICsJCWIt PnRpbWVvdXQgPSB3YWl0X3RpbWVvdXQoKTsKPiAgCQliLT5maXJzdF93YWl0ID0gd2FpdDsKPiAg CQlzbXBfc3RvcmVfbWIoYi0+aXJxX3NlcW5vX2JoLCB3YWl0LT50c2spOwo+ICAJCS8qIEFmdGVy IGFzc2lnbmluZyBvdXJzZWx2ZXMgYXMgdGhlIG5ldyBib3R0b20taGFsZiwgd2UgbXVzdAo+IEBA IC0yNzcsMTEgKzMwMiw2IEBAIGJvb2wgaW50ZWxfZW5naW5lX2FkZF93YWl0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgCXJldHVybiBmaXJzdDsKPiAgfQo+ICAKPiAtdm9pZCBp bnRlbF9lbmdpbmVfZW5hYmxlX2Zha2VfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiAtewo+IC0JbW9kX3RpbWVyKCZlbmdpbmUtPmJyZWFkY3J1bWJzLmZha2VfaXJxLCBqaWZm aWVzICsgMSk7Cj4gLX0KPiAtCj4gIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGFpbl93YWtldXAoc3Ry dWN0IHJiX25vZGUgKnJiLCBpbnQgcHJpb3JpdHkpCj4gIHsKPiAgCXJldHVybiByYiAmJiB0b193 YWl0KHJiKS0+dHNrLT5wcmlvIDw9IHByaW9yaXR5Owo+IEBAIC0zNTksNiArMzc5LDcgQEAgdm9p ZCBpbnRlbF9lbmdpbmVfcmVtb3ZlX3dhaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LAo+ICAJCQkgKiB0aGUgaW50ZXJydXB0LCBvciBpZiB3ZSBoYXZlIHRvIGhhbmRsZSBhbgo+ICAJ CQkgKiBleGNlcHRpb24gcmF0aGVyIHRoYW4gYSBzZXFubyBjb21wbGV0aW9uLgo+ICAJCQkgKi8K PiArCQkJYi0+dGltZW91dCA9IHdhaXRfdGltZW91dCgpOwo+ICAJCQliLT5maXJzdF93YWl0ID0g dG9fd2FpdChuZXh0KTsKPiAgCQkJc21wX3N0b3JlX21iKGItPmlycV9zZXFub19iaCwgYi0+Zmly c3Rfd2FpdC0+dHNrKTsKPiAgCQkJaWYgKGItPmZpcnN0X3dhaXQtPnNlcW5vICE9IHdhaXQtPnNl cW5vKQo+IEBAIC01MzYsNiArNTU3LDkgQEAgaW50IGludGVsX2VuZ2luZV9pbml0X2JyZWFkY3J1 bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCXNldHVwX3RpbWVyKCZiLT5m YWtlX2lycSwKPiAgCQkgICAgaW50ZWxfYnJlYWRjcnVtYnNfZmFrZV9pcnEsCj4gIAkJICAgICh1 bnNpZ25lZCBsb25nKWVuZ2luZSk7Cj4gKwlzZXR1cF90aW1lcigmYi0+aGFuZ2NoZWNrLAo+ICsJ CSAgICBpbnRlbF9icmVhZGNydW1ic19oYW5nY2hlY2ssCj4gKwkJICAgICh1bnNpZ25lZCBsb25n KWVuZ2luZSk7Cj4gIAo+ICAJLyogU3Bhd24gYSB0aHJlYWQgdG8gcHJvdmlkZSBhIGNvbW1vbiBi b3R0b20taGFsZiBmb3IgYWxsIHNpZ25hbHMuCj4gIAkgKiBBcyB0aGlzIGlzIGFuIGFzeW5jaHJv bm91cyBpbnRlcmZhY2Ugd2UgY2Fubm90IHN0ZWFsIHRoZSBjdXJyZW50Cj4gQEAgLTU2MCw2ICs1 ODQsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiAgCWlmICghSVNfRVJSX09SX05VTEwoYi0+c2lnbmFsZXIpKQo+ ICAJCWt0aHJlYWRfc3RvcChiLT5zaWduYWxlcik7Cj4gIAo+ICsJZGVsX3RpbWVyX3N5bmMoJmIt PmhhbmdjaGVjayk7Cj4gIAlkZWxfdGltZXJfc3luYygmYi0+ZmFrZV9pcnEpOwo+ICB9Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gaW5kZXggZTliMzAxYWUyZDBj Li4wZGQzZDFkZTE4YWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3Mu Ywo+IEBAIC0xNjQsNiArMTY0LDcgQEAgY2xlYW51cDoKPiAgdm9pZCBpbnRlbF9lbmdpbmVfaW5p dF9oYW5nY2hlY2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICB7Cj4gIAltZW1z ZXQoJmVuZ2luZS0+aGFuZ2NoZWNrLCAwLCBzaXplb2YoZW5naW5lLT5oYW5nY2hlY2spKTsKPiAr CWNsZWFyX2JpdChlbmdpbmUtPmlkLCAmZW5naW5lLT5pOTE1LT5ncHVfZXJyb3IubWlzc2VkX2ly cV9yaW5ncyk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9pbml0X3JlcXVl c3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggNDNlNTQ1ZTQ0MzUyLi40YWVkNDU4NmIwYjYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTc1LDcgKzc1 LDYgQEAgZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlvbiB7Cj4gIAo+ICBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2hhbmdjaGVjayB7Cj4gIAl1NjQgYWN0aGQ7Cj4gLQl1bnNpZ25lZCBsb25n IHVzZXJfaW50ZXJydXB0czsKPiAgCXUzMiBzZXFubzsKPiAgCWludCBzY29yZTsKPiAgCWVudW0g aW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gYWN0aW9uOwo+IEBAIC0xNzMsNyArMTcyLDYg QEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4gIAkgKi8KPiAgCXN0cnVjdCBpbnRlbF9icmVh ZGNydW1icyB7Cj4gIAkJc3RydWN0IHRhc2tfc3RydWN0ICppcnFfc2Vxbm9fYmg7IC8qIGJoIGZv ciB1c2VyIGludGVycnVwdHMgKi8KPiAtCQl1bnNpZ25lZCBsb25nIGlycV93YWtldXBzOwo+ICAJ CWJvb2wgaXJxX3Bvc3RlZDsKPiAgCj4gIAkJc3BpbmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0cyB0 aGUgbGlzdHMgb2YgcmVxdWVzdHMgKi8KPiBAQCAtMTgzLDYgKzE4MSw5IEBAIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3Mgewo+ICAJCXN0cnVjdCB0YXNrX3N0cnVjdCAqc2lnbmFsZXI7IC8qIHVzZWQg Zm9yIGZlbmNlIHNpZ25hbGxpbmcgKi8KPiAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KmZpcnN0X3NpZ25hbDsKPiAgCQlzdHJ1Y3QgdGltZXJfbGlzdCBmYWtlX2lycTsgLyogdXNlZCBh ZnRlciBhIG1pc3NlZCBpbnRlcnJ1cHQgKi8KPiArCQlzdHJ1Y3QgdGltZXJfbGlzdCBoYW5nY2hl Y2s7IC8qIGRldGVjdCBtaXNzZWQgaW50ZXJydXB0cyAqLwo+ICsKPiArCQl1bnNpZ25lZCBsb25n IHRpbWVvdXQ7Cj4gIAo+ICAJCWJvb2wgaXJxX2VuYWJsZWQgOiAxOwo+ICAJCWJvb2wgcnBtX3dh a2Vsb2NrIDogMTsKPiBAQCAtNTYwLDcgKzU2MSw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRl bF9lbmdpbmVfd2FrZXVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCXJldHVy biB3YWtldXA7Cj4gIH0KPiAgCj4gLXZvaWQgaW50ZWxfZW5naW5lX2VuYWJsZV9mYWtlX2lycShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+ICB2b2lkIGludGVsX2VuZ2luZV9maW5p X2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gIHVuc2lnbmVk IGludCBpbnRlbF9raWNrX3dhaXRlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwo+ ICB1bnNpZ25lZCBpbnQgaW50ZWxfa2lja19zaWduYWxlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpOwo+IC0tIAo+IDIuOC4xCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=