From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 03/33] drm/i915: Move missed interrupt detection from hangcheck to breadcrumbs Date: Sun, 7 Aug 2016 15:45:11 +0100 Message-ID: <1470581141-14432-4-git-send-email-chris@chris-wilson.co.uk> References: <1470581141-14432-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 mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 580736E2EA for ; Sun, 7 Aug 2016 14:45:51 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id x83so11037916wma.3 for ; Sun, 07 Aug 2016 07:45:51 -0700 (PDT) In-Reply-To: <1470581141-14432-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: intel-gfx@lists.freedesktop.org Cc: Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org SW4gY29tbWl0IDI1MjlkNTcwNTBhZiAoImRybS9pOTE1OiBEcm9wIHJhY3kgbWFya3VwIG9mIG1p c3NlZC1pcnFzIGZyb20KaWRsZS13b3JrZXIiKSB0aGUgcmFjeSBkZXRlY3Rpb24gb2YgbWlzc2Vk IGludGVycnVwdHMgd2FzIHJlbW92ZWQgd2hlbgp3ZSB3ZW50IGlkbGUuIFRoaXMgaG93ZXZlciBv cGVuZWQgdXAgdGhlIGlzc3VlIHRoYXQgdGhlIHN0dWNrIHdhaXRlcnMKd2VyZSBub3QgYmVpbmcg cmVwb3J0ZWQsIGNhdXNpbmcgYSB0ZXN0IGNhc2UgZmFpbHVyZS4gSWYgd2UgbW92ZSB0aGUKc3R1 Y2sgd2FpdGVyIGRldGVjdGlvbiBvdXQgb2YgaGFuZ2NoZWNrIGFuZCBpbnRvIHRoZSBicmVhZGNy dW1iCm1lY2hhbmltcyAoaS5lLiB0aGUgd2FpdGVyKSBpdHNlbGYsIHdlIGNhbiBhdm9pZCB0aGlz IGlzc3VlIGVudGlyZWx5LgpUaGlzIGxlYXZlcyBoYW5nY2hlY2sgbG9va2luZyBmb3IgYSBzdHVj ayBHUFUgKGluc3BlY3RpbmcgZm9yIHJlcXVlc3QKYWR2YW5jZW1lbnQgYW5kIEhFQUQgbW90aW9u KSwgYW5kIGJyZWFkY3J1bWJzIGxvb2tpbmcgZm9yIGEgc3R1Y2sKd2FpdGVyIC0gaG9wZWZ1bGx5 IG1ha2UgYm90aCBlYXNpZXIgdG8gdW5kZXJzdGFuZCBieSB0aGVpciBzZWdyZWdhdGlvbi4KCnYy OiBSZWR1Y2UgdGhlIGVycm9yIG1lc3NhZ2UgYXMgd2Ugbm93IHJ1biBpbmRlcGVuZGVudGx5IG9m IGhhbmdjaGVjaywKYW5kIHRoZSBoYW5naW5nIGJhdGNoIHVzZWQgYnkgaWd0IGFsc28gY291bnRz IGFzIGEgc3R1Y2sgd2FpdGVyIGNhdXNpbmcKZXh0cmEgd2FybmluZ3MgaW4gZG1lc2cuCgpCdWd6 aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcxMDQK Rml4ZXM6IDI1MjlkNTcwNTBhZiAod2FpdGVyImRybS9pOTE1OiBEcm9wIHJhY3kgbWFya3VwIG9m IG1pc3NlZC1pcnFzLi4uIikKVGVzdGNhc2U6IGlndC9kcnZfbWlzc2VkX2lycQpTaWduZWQtb2Zm LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IEpvb25hcyBM YWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IFR2cnRrbyBVcnN1 bGluIDx0dnJ0a28udXJzdWxpbkBsaW51eC5pbnRlbC5jb20+CkNjOiBNaWthIEt1b3BwYWxhIDxt aWthLmt1b3BwYWxhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYyAgICAgIHwgMTEgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyAgICAgICAgICB8IDEwIC0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMg ICAgICAgICAgfCAyNiArLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYnJlYWRjcnVtYnMuYyB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgIHwgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8ICA2ICsrLS0KIDYgZmlsZXMgY2hhbmdl ZCwgNDUgaW5zZXJ0aW9ucygrKSwgNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwppbmRleCA5YmQ0MTU4MWI1OTIuLjA2MjdlMTcwZWEyNSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTc4Nyw4ICs3ODcsNiBAQCBzdGF0aWMgdm9pZCBpOTE1 X3Jpbmdfc2Vxbm9faW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiAKIAlzZXFfcHJpbnRmKG0sICJD dXJyZW50IHNlcXVlbmNlICglcyk6ICV4XG4iLAogCQkgICBlbmdpbmUtPm5hbWUsIGludGVsX2Vu Z2luZV9nZXRfc2Vxbm8oZW5naW5lKSk7Ci0Jc2VxX3ByaW50ZihtLCAiQ3VycmVudCB1c2VyIGlu dGVycnVwdHMgKCVzKTogJWx4XG4iLAotCQkgICBlbmdpbmUtPm5hbWUsIFJFQURfT05DRShlbmdp bmUtPmJyZWFkY3J1bWJzLmlycV93YWtldXBzKSk7CiAKIAlzcGluX2xvY2soJmItPmxvY2spOwog CWZvciAocmIgPSByYl9maXJzdCgmYi0+d2FpdGVycyk7IHJiOyByYiA9IHJiX25leHQocmIpKSB7 CkBAIC0xNDM0LDExICsxNDMyLDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAkJCSAgIGVuZ2luZS0+aGFuZ2NoZWNr LnNlcW5vLAogCQkJICAgc2Vxbm9baWRdLAogCQkJICAgZW5naW5lLT5sYXN0X3N1Ym1pdHRlZF9z ZXFubyk7Ci0JCXNlcV9wcmludGYobSwgIlx0d2FpdGVycz8gJWRcbiIsCi0JCQkgICBpbnRlbF9l bmdpbmVfaGFzX3dhaXRlcihlbmdpbmUpKTsKLQkJc2VxX3ByaW50ZihtLCAiXHR1c2VyIGludGVy cnVwdHMgPSAlbHggW2N1cnJlbnQgJWx4XVxuIiwKLQkJCSAgIGVuZ2luZS0+aGFuZ2NoZWNrLnVz ZXJfaW50ZXJydXB0cywKLQkJCSAgIFJFQURfT05DRShlbmdpbmUtPmJyZWFkY3J1bWJzLmlycV93 YWtldXBzKSk7CisJCXNlcV9wcmludGYobSwgIlx0d2FpdGVycz8gJXMsIGZha2UgaXJxIGFjdGl2 ZT8gJXNcbiIsCisJCQkgICB5ZXNubyhpbnRlbF9lbmdpbmVfaGFzX3dhaXRlcihlbmdpbmUpKSwK KwkJCSAgIHllc25vKHRlc3RfYml0KGVuZ2luZS0+aWQsCisJCQkJCSAgJmRldl9wcml2LT5ncHVf ZXJyb3IubWlzc2VkX2lycV9yaW5ncykpKTsKIAkJc2VxX3ByaW50ZihtLCAiXHRBQ1RIRCA9IDB4 JTA4bGx4IFtjdXJyZW50IDB4JTA4bGx4XVxuIiwKIAkJCSAgIChsb25nIGxvbmcpZW5naW5lLT5o YW5nY2hlY2suYWN0aGQsCiAJCQkgICAobG9uZyBsb25nKWFjdGhkW2lkXSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwppbmRleCA2NTRmMGIwMTVmOTcuLmNmOTRjNmVkMGZmNSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCkBAIC0yNTI2LDcgKzI1MjYsNiBAQCBpOTE1X2dlbV9pZGxlX3dvcmtfaGFu ZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBl b2YoKmRldl9wcml2KSwgZ3QuaWRsZV93b3JrLndvcmspOwogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSAmZGV2X3ByaXYtPmRybTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0J dW5zaWduZWQgaW50IHN0dWNrX2VuZ2luZXM7CiAJYm9vbCByZWFybV9oYW5nY2hlY2s7CiAKIAlp ZiAoIVJFQURfT05DRShkZXZfcHJpdi0+Z3QuYXdha2UpKQpAQCAtMjU1NiwxNSArMjU1NSw2IEBA IGk5MTVfZ2VtX2lkbGVfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlk ZXZfcHJpdi0+Z3QuYXdha2UgPSBmYWxzZTsKIAlyZWFybV9oYW5nY2hlY2sgPSBmYWxzZTsKIAot CS8qIEFzIHdlIGhhdmUgZGlzYWJsZWQgaGFuZ2NoZWNrLCB3ZSBuZWVkIHRvIHVuc3RpY2sgYW55 IHdhaXRlcnMgc3RpbGwKLQkgKiBoYW5naW5nIGFyb3VuZC4gSG93ZXZlciwgYXMgd2UgbWF5IGJl IHJhY2luZyBhZ2FpbnN0IHRoZSBpbnRlcnJ1cHQKLQkgKiBoYW5kbGVyIG9yIHRoZSB3YWl0ZXJz IHRoZW1zZWx2ZXMsIHdlIHNraXAgZW5hYmxpbmcgdGhlIGZha2UtaXJxLgotCSAqLwotCXN0dWNr X2VuZ2luZXMgPSBpbnRlbF9raWNrX3dhaXRlcnMoZGV2X3ByaXYpOwotCWlmICh1bmxpa2VseShz dHVja19lbmdpbmVzKSkKLQkJRFJNX0RFQlVHX0RSSVZFUigia2lja2VkIHN0dWNrIHdhaXRlcnMg KCV4KS4uLm1pc3NlZCBpcnE/XG4iLAotCQkJCSBzdHVja19lbmdpbmVzKTsKLQogCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDYpCiAJCWdlbjZfcnBzX2lkbGUoZGV2X3ByaXYpOwogCWludGVs X3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IDU5 MWY0NTJlY2U2OC4uZWJiODNkNWE0NDhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTk3 MiwxMCArOTcyLDggQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcnBzX2NoYW5nZV9pcnFfaGFuZGxl cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBub3RpZnlf cmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc21wX3N0b3JlX21iKGVu Z2luZS0+YnJlYWRjcnVtYnMuaXJxX3Bvc3RlZCwgdHJ1ZSk7Ci0JaWYgKGludGVsX2VuZ2luZV93 YWtldXAoZW5naW5lKSkgeworCWlmIChpbnRlbF9lbmdpbmVfd2FrZXVwKGVuZ2luZSkpCiAJCXRy YWNlX2k5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KGVuZ2luZSk7Ci0JCWVuZ2luZS0+YnJlYWRjcnVt YnMuaXJxX3dha2V1cHMrKzsKLQl9CiB9CiAKIHN0YXRpYyB2b2lkIHZsdl9jMF9yZWFkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTMwNDQsMjIgKzMwNDIsNiBAQCBlbmdp bmVfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1NjQgYWN0aGQpCiAJcmV0 dXJuIEhBTkdDSEVDS19IVU5HOwogfQogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBraWNrX3dhaXRl cnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotewotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1OwotCXVuc2lnbmVkIGxvbmcgaXJxX2NvdW50ID0g UkVBRF9PTkNFKGVuZ2luZS0+YnJlYWRjcnVtYnMuaXJxX3dha2V1cHMpOwotCi0JaWYgKGVuZ2lu ZS0+aGFuZ2NoZWNrLnVzZXJfaW50ZXJydXB0cyA9PSBpcnFfY291bnQgJiYKLQkgICAgIXRlc3Rf YW5kX3NldF9iaXQoZW5naW5lLT5pZCwgJmk5MTUtPmdwdV9lcnJvci5taXNzZWRfaXJxX3Jpbmdz KSkgewotCQlpZiAoIXRlc3RfYml0KGVuZ2luZS0+aWQsICZpOTE1LT5ncHVfZXJyb3IudGVzdF9p cnFfcmluZ3MpKQotCQkJRFJNX0VSUk9SKCJIYW5nY2hlY2sgdGltZXIgZWxhcHNlZC4uLiAlcyBp ZGxlXG4iLAotCQkJCSAgZW5naW5lLT5uYW1lKTsKLQotCQlpbnRlbF9lbmdpbmVfZW5hYmxlX2Zh a2VfaXJxKGVuZ2luZSk7Ci0JfQotCi0JcmV0dXJuIGlycV9jb3VudDsKLX0KIC8qCiAgKiBUaGlz IGlzIGNhbGxlZCB3aGVuIHRoZSBjaGlwIGhhc24ndCByZXBvcnRlZCBiYWNrIHdpdGggY29tcGxl dGVkCiAgKiBiYXRjaGJ1ZmZlcnMgaW4gYSBsb25nIHRpbWUuIFdlIGtlZXAgdHJhY2sgcGVyIHJp bmcgc2Vxbm8gcHJvZ3Jlc3MgYW5kCkBAIC0zMDk3LDcgKzMwNzksNiBAQCBzdGF0aWMgdm9pZCBp OTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJYm9vbCBi dXN5ID0gaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoZW5naW5lKTsKIAkJdTY0IGFjdGhkOwogCQl1 MzIgc2Vxbm87Ci0JCXVuc2lnbmVkIHVzZXJfaW50ZXJydXB0czsKIAogCQlzZW1hcGhvcmVfY2xl YXJfZGVhZGxvY2tzKGRldl9wcml2KTsKIApAQCAtMzExNCwxNSArMzA5NSwxMSBAQCBzdGF0aWMg dm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJ YWN0aGQgPSBpbnRlbF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7CiAJCXNlcW5vID0g aW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwogCi0JCS8qIFJlc2V0IHN0dWNrIGludGVy cnVwdHMgYmV0d2VlbiBiYXRjaCBhZHZhbmNlcyAqLwotCQl1c2VyX2ludGVycnVwdHMgPSAwOwot CiAJCWlmIChlbmdpbmUtPmhhbmdjaGVjay5zZXFubyA9PSBzZXFubykgewogCQkJaWYgKCFpbnRl bF9lbmdpbmVfaXNfYWN0aXZlKGVuZ2luZSkpIHsKIAkJCQllbmdpbmUtPmhhbmdjaGVjay5hY3Rp b24gPSBIQU5HQ0hFQ0tfSURMRTsKIAkJCQlpZiAoYnVzeSkgewogCQkJCQkvKiBTYWZlZ3VhcmQg YWdhaW5zdCBkcml2ZXIgZmFpbHVyZSAqLwotCQkJCQl1c2VyX2ludGVycnVwdHMgPSBraWNrX3dh aXRlcnMoZW5naW5lKTsKIAkJCQkJZW5naW5lLT5oYW5nY2hlY2suc2NvcmUgKz0gQlVTWTsKIAkJ CQl9CiAJCQl9IGVsc2UgewpAQCAtMzE4NSw3ICszMTYyLDYgQEAgc3RhdGljIHZvaWQgaTkxNV9o YW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAkJZW5naW5lLT5o YW5nY2hlY2suc2Vxbm8gPSBzZXFubzsKIAkJZW5naW5lLT5oYW5nY2hlY2suYWN0aGQgPSBhY3Ro ZDsKLQkJZW5naW5lLT5oYW5nY2hlY2sudXNlcl9pbnRlcnJ1cHRzID0gdXNlcl9pbnRlcnJ1cHRz OwogCQlidXN5X2NvdW50ICs9IGJ1c3k7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YnJlYWRjcnVtYnMuYwppbmRleCA5MDg2NzQ0NmYxYTUuLjhlY2IzYjY1MzhmYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCkBAIC0yNiw2ICsyNiwyOSBAQAogCiAj aW5jbHVkZSAiaTkxNV9kcnYuaCIKIAorc3RhdGljIHZvaWQgaW50ZWxfYnJlYWRjcnVtYnNfaGFu Z2NoZWNrKHVuc2lnbmVkIGxvbmcgZGF0YSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUgPSAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqKWRhdGE7CisJc3RydWN0IGludGVsX2Jy ZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7CisKKwlpZiAoIWItPmlycV9lbmFi bGVkKQorCQlyZXR1cm47CisKKwlpZiAodGltZV9iZWZvcmUoamlmZmllcywgYi0+dGltZW91dCkp IHsKKwkJbW9kX3RpbWVyKCZiLT5oYW5nY2hlY2ssIGItPnRpbWVvdXQpOworCQlyZXR1cm47CisJ fQorCisJRFJNX0RFQlVHKCJIYW5nY2hlY2sgdGltZXIgZWxhcHNlZC4uLiAlcyBpZGxlXG4iLCBl bmdpbmUtPm5hbWUpOworCXNldF9iaXQoZW5naW5lLT5pZCwgJmVuZ2luZS0+aTkxNS0+Z3B1X2Vy cm9yLm1pc3NlZF9pcnFfcmluZ3MpOworCW1vZF90aW1lcigmZW5naW5lLT5icmVhZGNydW1icy5m YWtlX2lycSwgamlmZmllcyArIDEpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyB3YWl0X3Rp bWVvdXQodm9pZCkKK3sKKwlyZXR1cm4gcm91bmRfamlmZmllc191cChqaWZmaWVzICsgRFJNX0k5 MTVfSEFOR0NIRUNLX0pJRkZJRVMpOworfQorCiBzdGF0aWMgdm9pZCBpbnRlbF9icmVhZGNydW1i c19mYWtlX2lycSh1bnNpZ25lZCBsb25nIGRhdGEpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lID0gKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKilkYXRhOwpAQCAtNTEsMTMgKzc0 LDYgQEAgc3RhdGljIHZvaWQgaXJxX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCiAJICovCiAJZW5naW5lLT5icmVhZGNydW1icy5pcnFfcG9zdGVkID0gdHJ1ZTsKIAotCS8q IE1ha2Ugc3VyZSB0aGUgY3VycmVudCBoYW5nY2hlY2sgZG9lc24ndCBmYWxzZWx5IGFjY3VzZSBh IGp1c3QKLQkgKiBzdGFydGVkIGlycSBoYW5kbGVyIGZyb20gbWlzc2luZyBhbiBpbnRlcnJ1cHQg KGJlY2F1c2UgdGhlCi0JICogaW50ZXJydXB0IGNvdW50IHN0aWxsIG1hdGNoZXMgdGhlIHN0YWxl IHZhbHVlIGZyb20gd2hlbgotCSAqIHRoZSBpcnEgaGFuZGxlciB3YXMgZGlzYWJsZWQsIG1hbnkg aGFuZ2NoZWNrcyBhZ28pLgotCSAqLwotCWVuZ2luZS0+YnJlYWRjcnVtYnMuaXJxX3dha2V1cHMr KzsKLQogCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOwogCWVuZ2luZS0+ aXJxX2VuYWJsZShlbmdpbmUpOwogCXNwaW5fdW5sb2NrX2lycSgmZW5naW5lLT5pOTE1LT5pcnFf bG9jayk7CkBAIC05OCw4ICsxMTQsMTMgQEAgc3RhdGljIHZvaWQgX19pbnRlbF9icmVhZGNydW1i c19lbmFibGVfaXJxKHN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKIAl9CiAKIAlpZiAoIWIt PmlycV9lbmFibGVkIHx8Ci0JICAgIHRlc3RfYml0KGVuZ2luZS0+aWQsICZpOTE1LT5ncHVfZXJy b3IubWlzc2VkX2lycV9yaW5ncykpCisJICAgIHRlc3RfYml0KGVuZ2luZS0+aWQsICZpOTE1LT5n cHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncykpIHsKIAkJbW9kX3RpbWVyKCZiLT5mYWtlX2lycSwg amlmZmllcyArIDEpOworCX0gZWxzZSB7CisJCS8qIEVuc3VyZSB3ZSBuZXZlciBzbGVlcCBpbmRl ZmluaXRlbHkgKi8KKwkJR0VNX0JVR19PTighdGltZV9hZnRlcihiLT50aW1lb3V0LCBqaWZmaWVz KSk7CisJCW1vZF90aW1lcigmYi0+aGFuZ2NoZWNrLCBiLT50aW1lb3V0KTsKKwl9CiAKIAkvKiBF bnN1cmUgdGhhdCBldmVuIGlmIHRoZSBHUFUgaGFuZ3MsIHdlIGdldCB3b2tlbiB1cC4KIAkgKgpA QCAtMjE5LDYgKzI0MCw3IEBAIHN0YXRpYyBib29sIF9faW50ZWxfZW5naW5lX2FkZF93YWl0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJR0VNX0JVR19PTighbmV4dCAmJiAhZmly c3QpOwogCQlpZiAobmV4dCAmJiBuZXh0ICE9ICZ3YWl0LT5ub2RlKSB7CiAJCQlHRU1fQlVHX09O KGZpcnN0KTsKKwkJCWItPnRpbWVvdXQgPSB3YWl0X3RpbWVvdXQoKTsKIAkJCWItPmZpcnN0X3dh aXQgPSB0b193YWl0KG5leHQpOwogCQkJc21wX3N0b3JlX21iKGItPmlycV9zZXFub19iaCwgYi0+ Zmlyc3Rfd2FpdC0+dHNrKTsKIAkJCS8qIEFzIHRoZXJlIGlzIGEgZGVsYXkgYmV0d2VlbiByZWFk aW5nIHRoZSBjdXJyZW50CkBAIC0yNDUsNiArMjY3LDcgQEAgc3RhdGljIGJvb2wgX19pbnRlbF9l bmdpbmVfYWRkX3dhaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiAJaWYgKGZp cnN0KSB7CiAJCUdFTV9CVUdfT04ocmJfZmlyc3QoJmItPndhaXRlcnMpICE9ICZ3YWl0LT5ub2Rl KTsKKwkJYi0+dGltZW91dCA9IHdhaXRfdGltZW91dCgpOwogCQliLT5maXJzdF93YWl0ID0gd2Fp dDsKIAkJc21wX3N0b3JlX21iKGItPmlycV9zZXFub19iaCwgd2FpdC0+dHNrKTsKIAkJLyogQWZ0 ZXIgYXNzaWduaW5nIG91cnNlbHZlcyBhcyB0aGUgbmV3IGJvdHRvbS1oYWxmLCB3ZSBtdXN0CkBA IC0yNzcsMTEgKzMwMCw2IEBAIGJvb2wgaW50ZWxfZW5naW5lX2FkZF93YWl0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlyZXR1cm4gZmlyc3Q7CiB9CiAKLXZvaWQgaW50ZWxfZW5n aW5lX2VuYWJsZV9mYWtlX2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0J bW9kX3RpbWVyKCZlbmdpbmUtPmJyZWFkY3J1bWJzLmZha2VfaXJxLCBqaWZmaWVzICsgMSk7Ci19 Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGFpbl93YWtldXAoc3RydWN0IHJiX25vZGUgKnJiLCBp bnQgcHJpb3JpdHkpCiB7CiAJcmV0dXJuIHJiICYmIHRvX3dhaXQocmIpLT50c2stPnByaW8gPD0g cHJpb3JpdHk7CkBAIC0zNTksNiArMzc3LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfcmVtb3ZlX3dh aXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJICogdGhlIGludGVycnVwdCwg b3IgaWYgd2UgaGF2ZSB0byBoYW5kbGUgYW4KIAkJCSAqIGV4Y2VwdGlvbiByYXRoZXIgdGhhbiBh IHNlcW5vIGNvbXBsZXRpb24uCiAJCQkgKi8KKwkJCWItPnRpbWVvdXQgPSB3YWl0X3RpbWVvdXQo KTsKIAkJCWItPmZpcnN0X3dhaXQgPSB0b193YWl0KG5leHQpOwogCQkJc21wX3N0b3JlX21iKGIt PmlycV9zZXFub19iaCwgYi0+Zmlyc3Rfd2FpdC0+dHNrKTsKIAkJCWlmIChiLT5maXJzdF93YWl0 LT5zZXFubyAhPSB3YWl0LT5zZXFubykKQEAgLTUzMyw2ICs1NTIsOSBAQCBpbnQgaW50ZWxfZW5n aW5lX2luaXRfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXN0 cnVjdCB0YXNrX3N0cnVjdCAqdHNrOwogCiAJc3Bpbl9sb2NrX2luaXQoJmItPmxvY2spOworCXNl dHVwX3RpbWVyKCZiLT5oYW5nY2hlY2ssCisJCSAgICBpbnRlbF9icmVhZGNydW1ic19oYW5nY2hl Y2ssCisJCSAgICAodW5zaWduZWQgbG9uZyllbmdpbmUpOwogCXNldHVwX3RpbWVyKCZiLT5mYWtl X2lycSwKIAkJICAgIGludGVsX2JyZWFkY3J1bWJzX2Zha2VfaXJxLAogCQkgICAgKHVuc2lnbmVk IGxvbmcpZW5naW5lKTsKQEAgLTU2MSw2ICs1ODMsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9maW5p X2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJa3RocmVhZF9z dG9wKGItPnNpZ25hbGVyKTsKIAogCWRlbF90aW1lcl9zeW5jKCZiLT5mYWtlX2lycSk7CisJZGVs X3RpbWVyX3N5bmMoJmItPmhhbmdjaGVjayk7CiB9CiAKIHVuc2lnbmVkIGludCBpbnRlbF9raWNr X3dhaXRlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IGU5YjMwMWFlMmQwYy4uMGRkM2QxZGUxOGFhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMTY0LDYgKzE2NCw3IEBAIGNs ZWFudXA6CiB2b2lkIGludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCiB7CiAJbWVtc2V0KCZlbmdpbmUtPmhhbmdjaGVjaywgMCwgc2l6ZW9m KGVuZ2luZS0+aGFuZ2NoZWNrKSk7CisJY2xlYXJfYml0KGVuZ2luZS0+aWQsICZlbmdpbmUtPmk5 MTUtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxf ZW5naW5lX2luaXRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDQzZTU0NWU0NDM1Mi4uNGFl ZDQ1ODZiMGI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC03 NSw3ICs3NSw2IEBAIGVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gewogCiBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2hhbmdjaGVjayB7CiAJdTY0IGFjdGhkOwotCXVuc2lnbmVkIGxvbmcg dXNlcl9pbnRlcnJ1cHRzOwogCXUzMiBzZXFubzsKIAlpbnQgc2NvcmU7CiAJZW51bSBpbnRlbF9l bmdpbmVfaGFuZ2NoZWNrX2FjdGlvbiBhY3Rpb247CkBAIC0xNzMsNyArMTcyLDYgQEAgc3RydWN0 IGludGVsX2VuZ2luZV9jcyB7CiAJICovCiAJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzIHsKIAkJ c3RydWN0IHRhc2tfc3RydWN0ICppcnFfc2Vxbm9fYmg7IC8qIGJoIGZvciB1c2VyIGludGVycnVw dHMgKi8KLQkJdW5zaWduZWQgbG9uZyBpcnFfd2FrZXVwczsKIAkJYm9vbCBpcnFfcG9zdGVkOwog CiAJCXNwaW5sb2NrX3QgbG9jazsgLyogcHJvdGVjdHMgdGhlIGxpc3RzIG9mIHJlcXVlc3RzICov CkBAIC0xODMsNiArMTgxLDkgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJCXN0cnVjdCB0 YXNrX3N0cnVjdCAqc2lnbmFsZXI7IC8qIHVzZWQgZm9yIGZlbmNlIHNpZ25hbGxpbmcgKi8KIAkJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpmaXJzdF9zaWduYWw7CiAJCXN0cnVjdCB0aW1l cl9saXN0IGZha2VfaXJxOyAvKiB1c2VkIGFmdGVyIGEgbWlzc2VkIGludGVycnVwdCAqLworCQlz dHJ1Y3QgdGltZXJfbGlzdCBoYW5nY2hlY2s7IC8qIGRldGVjdCBtaXNzZWQgaW50ZXJydXB0cyAq LworCisJCXVuc2lnbmVkIGxvbmcgdGltZW91dDsKIAogCQlib29sIGlycV9lbmFibGVkIDogMTsK IAkJYm9vbCBycG1fd2FrZWxvY2sgOiAxOwpAQCAtNTYwLDcgKzU2MSw2IEBAIHN0YXRpYyBpbmxp bmUgYm9vbCBpbnRlbF9lbmdpbmVfd2FrZXVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKIAlyZXR1cm4gd2FrZXVwOwogfQogCi12b2lkIGludGVsX2VuZ2luZV9lbmFibGVfZmFrZV9p cnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHZvaWQgaW50ZWxfZW5naW5lX2Zp bmlfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHVuc2lnbmVk IGludCBpbnRlbF9raWNrX3dhaXRlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwog dW5zaWduZWQgaW50IGludGVsX2tpY2tfc2lnbmFsZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KTsKLS0gCjIuOC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK