From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2] drm/i915: Move missed interrupt detection from hangcheck to breadcrumbs Date: Fri, 5 Aug 2016 13:42:20 +0100 Message-ID: <1470400940-10871-1-git-send-email-chris@chris-wilson.co.uk> References: <1470394635-7842-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-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 969D96EB88 for ; Fri, 5 Aug 2016 12:42:26 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id q128so3635896wma.1 for ; Fri, 05 Aug 2016 05:42:26 -0700 (PDT) In-Reply-To: <1470394635-7842-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 YnVnZnMuYyAgICAgIHwgMTEgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j ICAgICAgICAgIHwgMTAgLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAg ICAgICAgIHwgMjYgKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jy ZWFkY3J1bWJzLmMgfCA2MiArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgfCAgNiArKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDUx IGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKaW5kZXggMDYyMGE4NGQwMGNhLi5mMzE2ZjM3MGZhNzkgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCkBAIC03ODcsOCArNzg3LDYgQEAgc3RhdGljIHZvaWQgaTkxNV9yaW5n X3NlcW5vX2luZm8oc3RydWN0IHNlcV9maWxlICptLAogCiAJc2VxX3ByaW50ZihtLCAiQ3VycmVu dCBzZXF1ZW5jZSAoJXMpOiAleFxuIiwKIAkJICAgZW5naW5lLT5uYW1lLCBpbnRlbF9lbmdpbmVf Z2V0X3NlcW5vKGVuZ2luZSkpOwotCXNlcV9wcmludGYobSwgIkN1cnJlbnQgdXNlciBpbnRlcnJ1 cHRzICglcyk6ICVseFxuIiwKLQkJICAgZW5naW5lLT5uYW1lLCBSRUFEX09OQ0UoZW5naW5lLT5i cmVhZGNydW1icy5pcnFfd2FrZXVwcykpOwogCiAJc3Bpbl9sb2NrKCZiLT5sb2NrKTsKIAlmb3Ig KHJiID0gcmJfZmlyc3QoJmItPndhaXRlcnMpOyByYjsgcmIgPSByYl9uZXh0KHJiKSkgewpAQCAt MTQzNCwxMSArMTQzMiwxMCBAQCBzdGF0aWMgaW50IGk5MTVfaGFuZ2NoZWNrX2luZm8oc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCQkgICBlbmdpbmUtPmhhbmdjaGVjay5zZXFu bywKIAkJCSAgIHNlcW5vW2lkXSwKIAkJCSAgIGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm8p OwotCQlzZXFfcHJpbnRmKG0sICJcdHdhaXRlcnM/ICVkXG4iLAotCQkJICAgaW50ZWxfZW5naW5l X2hhc193YWl0ZXIoZW5naW5lKSk7Ci0JCXNlcV9wcmludGYobSwgIlx0dXNlciBpbnRlcnJ1cHRz ID0gJWx4IFtjdXJyZW50ICVseF1cbiIsCi0JCQkgICBlbmdpbmUtPmhhbmdjaGVjay51c2VyX2lu dGVycnVwdHMsCi0JCQkgICBSRUFEX09OQ0UoZW5naW5lLT5icmVhZGNydW1icy5pcnFfd2FrZXVw cykpOworCQlzZXFfcHJpbnRmKG0sICJcdHdhaXRlcnM/ICVzLCBmYWtlIGlycSBhY3RpdmU/ICVz XG4iLAorCQkJICAgeWVzbm8oaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoZW5naW5lKSksCisJCQkg ICB5ZXNubyh0ZXN0X2JpdChlbmdpbmUtPmlkLAorCQkJCQkgICZkZXZfcHJpdi0+Z3B1X2Vycm9y Lm1pc3NlZF9pcnFfcmluZ3MpKSk7CiAJCXNlcV9wcmludGYobSwgIlx0QUNUSEQgPSAweCUwOGxs eCBbY3VycmVudCAweCUwOGxseF1cbiIsCiAJCQkgICAobG9uZyBsb25nKWVuZ2luZS0+aGFuZ2No ZWNrLmFjdGhkLAogCQkJICAgKGxvbmcgbG9uZylhY3RoZFtpZF0pOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKaW5kZXggZjRmOGVhYTkwZjJhLi42MjcxNmRkMDI1NGYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwpAQCAtMjUyNiw3ICsyNTI2LDYgQEAgaTkxNV9nZW1faWRsZV93b3JrX2hhbmRsZXIo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQljb250YWluZXJfb2Yod29yaywgdHlwZW9mKCpk ZXZfcHJpdiksIGd0LmlkbGVfd29yay53b3JrKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g JmRldl9wcml2LT5kcm07CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCXVuc2ln bmVkIGludCBzdHVja19lbmdpbmVzOwogCWJvb2wgcmVhcm1faGFuZ2NoZWNrOwogCiAJaWYgKCFS RUFEX09OQ0UoZGV2X3ByaXYtPmd0LmF3YWtlKSkKQEAgLTI1NTYsMTUgKzI1NTUsNiBAQCBpOTE1 X2dlbV9pZGxlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJZGV2X3By aXYtPmd0LmF3YWtlID0gZmFsc2U7CiAJcmVhcm1faGFuZ2NoZWNrID0gZmFsc2U7CiAKLQkvKiBB cyB3ZSBoYXZlIGRpc2FibGVkIGhhbmdjaGVjaywgd2UgbmVlZCB0byB1bnN0aWNrIGFueSB3YWl0 ZXJzIHN0aWxsCi0JICogaGFuZ2luZyBhcm91bmQuIEhvd2V2ZXIsIGFzIHdlIG1heSBiZSByYWNp bmcgYWdhaW5zdCB0aGUgaW50ZXJydXB0Ci0JICogaGFuZGxlciBvciB0aGUgd2FpdGVycyB0aGVt c2VsdmVzLCB3ZSBza2lwIGVuYWJsaW5nIHRoZSBmYWtlLWlycS4KLQkgKi8KLQlzdHVja19lbmdp bmVzID0gaW50ZWxfa2lja193YWl0ZXJzKGRldl9wcml2KTsKLQlpZiAodW5saWtlbHkoc3R1Y2tf ZW5naW5lcykpCi0JCURSTV9ERUJVR19EUklWRVIoImtpY2tlZCBzdHVjayB3YWl0ZXJzICgleCku Li5taXNzZWQgaXJxP1xuIiwKLQkJCQkgc3R1Y2tfZW5naW5lcyk7Ci0KIAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSA2KQogCQlnZW42X3Jwc19pZGxlKGRldl9wcml2KTsKIAlpbnRlbF9ydW50 aW1lX3BtX3B1dChkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCAwMDZhODU1 ODc3YWQuLmJkMmUxYjY0Y2VmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC05NzgsMTAg Kzk3OCw4IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3Jwc19jaGFuZ2VfaXJxX2hhbmRsZXIoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZvaWQgbm90aWZ5X3Jpbmco c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXNtcF9zdG9yZV9tYihlbmdpbmUt PmJyZWFkY3J1bWJzLmlycV9wb3N0ZWQsIHRydWUpOwotCWlmIChpbnRlbF9lbmdpbmVfd2FrZXVw KGVuZ2luZSkpIHsKKwlpZiAoaW50ZWxfZW5naW5lX3dha2V1cChlbmdpbmUpKQogCQl0cmFjZV9p OTE1X2dlbV9yZXF1ZXN0X25vdGlmeShlbmdpbmUpOwotCQllbmdpbmUtPmJyZWFkY3J1bWJzLmly cV93YWtldXBzKys7Ci0JfQogfQogCiBzdGF0aWMgdm9pZCB2bHZfYzBfcmVhZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC0zMDUwLDIyICszMDQ4LDYgQEAgZW5naW5lX3N0 dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTY0IGFjdGhkKQogCXJldHVybiBI QU5HQ0hFQ0tfSFVORzsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcga2lja193YWl0ZXJzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKLQl1bnNpZ25lZCBsb25nIGlycV9jb3VudCA9IFJFQURf T05DRShlbmdpbmUtPmJyZWFkY3J1bWJzLmlycV93YWtldXBzKTsKLQotCWlmIChlbmdpbmUtPmhh bmdjaGVjay51c2VyX2ludGVycnVwdHMgPT0gaXJxX2NvdW50ICYmCi0JICAgICF0ZXN0X2FuZF9z ZXRfYml0KGVuZ2luZS0+aWQsICZpOTE1LT5ncHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncykpIHsK LQkJaWYgKCF0ZXN0X2JpdChlbmdpbmUtPmlkLCAmaTkxNS0+Z3B1X2Vycm9yLnRlc3RfaXJxX3Jp bmdzKSkKLQkJCURSTV9FUlJPUigiSGFuZ2NoZWNrIHRpbWVyIGVsYXBzZWQuLi4gJXMgaWRsZVxu IiwKLQkJCQkgIGVuZ2luZS0+bmFtZSk7Ci0KLQkJaW50ZWxfZW5naW5lX2VuYWJsZV9mYWtlX2ly cShlbmdpbmUpOwotCX0KLQotCXJldHVybiBpcnFfY291bnQ7Ci19CiAvKgogICogVGhpcyBpcyBj YWxsZWQgd2hlbiB0aGUgY2hpcCBoYXNuJ3QgcmVwb3J0ZWQgYmFjayB3aXRoIGNvbXBsZXRlZAog ICogYmF0Y2hidWZmZXJzIGluIGEgbG9uZyB0aW1lLiBXZSBrZWVwIHRyYWNrIHBlciByaW5nIHNl cW5vIHByb2dyZXNzIGFuZApAQCAtMzEwMyw3ICszMDg1LDYgQEAgc3RhdGljIHZvaWQgaTkxNV9o YW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCWJvb2wgYnVzeSA9 IGludGVsX2VuZ2luZV9oYXNfd2FpdGVyKGVuZ2luZSk7CiAJCXU2NCBhY3RoZDsKIAkJdTMyIHNl cW5vOwotCQl1bnNpZ25lZCB1c2VyX2ludGVycnVwdHM7CiAKIAkJc2VtYXBob3JlX2NsZWFyX2Rl YWRsb2NrcyhkZXZfcHJpdik7CiAKQEAgLTMxMjAsMTUgKzMxMDEsMTEgQEAgc3RhdGljIHZvaWQg aTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCWFjdGhk ID0gaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwogCQlzZXFubyA9IGludGVs X2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKIAotCQkvKiBSZXNldCBzdHVjayBpbnRlcnJ1cHRz IGJldHdlZW4gYmF0Y2ggYWR2YW5jZXMgKi8KLQkJdXNlcl9pbnRlcnJ1cHRzID0gMDsKLQogCQlp ZiAoZW5naW5lLT5oYW5nY2hlY2suc2Vxbm8gPT0gc2Vxbm8pIHsKIAkJCWlmICghaW50ZWxfZW5n aW5lX2lzX2FjdGl2ZShlbmdpbmUpKSB7CiAJCQkJZW5naW5lLT5oYW5nY2hlY2suYWN0aW9uID0g SEFOR0NIRUNLX0lETEU7CiAJCQkJaWYgKGJ1c3kpIHsKIAkJCQkJLyogU2FmZWd1YXJkIGFnYWlu c3QgZHJpdmVyIGZhaWx1cmUgKi8KLQkJCQkJdXNlcl9pbnRlcnJ1cHRzID0ga2lja193YWl0ZXJz KGVuZ2luZSk7CiAJCQkJCWVuZ2luZS0+aGFuZ2NoZWNrLnNjb3JlICs9IEJVU1k7CiAJCQkJfQog CQkJfSBlbHNlIHsKQEAgLTMxOTEsNyArMzE2OCw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2No ZWNrX2VsYXBzZWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJCWVuZ2luZS0+aGFuZ2No ZWNrLnNlcW5vID0gc2Vxbm87CiAJCWVuZ2luZS0+aGFuZ2NoZWNrLmFjdGhkID0gYWN0aGQ7Ci0J CWVuZ2luZS0+aGFuZ2NoZWNrLnVzZXJfaW50ZXJydXB0cyA9IHVzZXJfaW50ZXJydXB0czsKIAkJ YnVzeV9jb3VudCArPSBidXN5OwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFk Y3J1bWJzLmMKaW5kZXggOTA4Njc0NDZmMWE1Li42NjA5YjRhMTFjMmMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwpAQCAtMjYsNiArMjYsMjkgQEAKIAogI2luY2x1 ZGUgImk5MTVfZHJ2LmgiCiAKK3N0YXRpYyB2b2lkIGludGVsX2JyZWFkY3J1bWJzX2hhbmdjaGVj ayh1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l ID0gKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKilkYXRhOworCXN0cnVjdCBpbnRlbF9icmVhZGNy dW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOworCisJaWYgKCFiLT5pcnFfZW5hYmxlZCkK KwkJcmV0dXJuOworCisJaWYgKHRpbWVfYmVmb3JlKGppZmZpZXMsIGItPnRpbWVvdXQpKSB7CisJ CW1vZF90aW1lcigmYi0+aGFuZ2NoZWNrLCBiLT50aW1lb3V0KTsKKwkJcmV0dXJuOworCX0KKwor CURSTV9ERUJVRygiSGFuZ2NoZWNrIHRpbWVyIGVsYXBzZWQuLi4gJXMgaWRsZVxuIiwgZW5naW5l LT5uYW1lKTsKKwlzZXRfYml0KGVuZ2luZS0+aWQsICZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvci5t aXNzZWRfaXJxX3JpbmdzKTsKKwltb2RfdGltZXIoJmVuZ2luZS0+YnJlYWRjcnVtYnMuZmFrZV9p cnEsIGppZmZpZXMgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgd2FpdF90aW1lb3V0 KHZvaWQpCit7CisJcmV0dXJuIHJvdW5kX2ppZmZpZXNfdXAoamlmZmllcyArIERSTV9JOTE1X0hB TkdDSEVDS19KSUZGSUVTKTsKK30KKwogc3RhdGljIHZvaWQgaW50ZWxfYnJlYWRjcnVtYnNfZmFr ZV9pcnEodW5zaWduZWQgbG9uZyBkYXRhKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKQEAgLTUxLDEzICs3NCw2IEBA IHN0YXRpYyB2b2lkIGlycV9lbmFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQog CSAqLwogCWVuZ2luZS0+YnJlYWRjcnVtYnMuaXJxX3Bvc3RlZCA9IHRydWU7CiAKLQkvKiBNYWtl IHN1cmUgdGhlIGN1cnJlbnQgaGFuZ2NoZWNrIGRvZXNuJ3QgZmFsc2VseSBhY2N1c2UgYSBqdXN0 Ci0JICogc3RhcnRlZCBpcnEgaGFuZGxlciBmcm9tIG1pc3NpbmcgYW4gaW50ZXJydXB0IChiZWNh dXNlIHRoZQotCSAqIGludGVycnVwdCBjb3VudCBzdGlsbCBtYXRjaGVzIHRoZSBzdGFsZSB2YWx1 ZSBmcm9tIHdoZW4KLQkgKiB0aGUgaXJxIGhhbmRsZXIgd2FzIGRpc2FibGVkLCBtYW55IGhhbmdj aGVja3MgYWdvKS4KLQkgKi8KLQllbmdpbmUtPmJyZWFkY3J1bWJzLmlycV93YWtldXBzKys7Ci0K IAlzcGluX2xvY2tfaXJxKCZlbmdpbmUtPmk5MTUtPmlycV9sb2NrKTsKIAllbmdpbmUtPmlycV9l bmFibGUoZW5naW5lKTsKIAlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2sp OwpAQCAtOTgsMTYgKzExNCwyMCBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2JyZWFkY3J1bWJzX2Vu YWJsZV9pcnEoc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiKQogCX0KIAogCWlmICghYi0+aXJx X2VuYWJsZWQgfHwKLQkgICAgdGVzdF9iaXQoZW5naW5lLT5pZCwgJmk5MTUtPmdwdV9lcnJvci5t aXNzZWRfaXJxX3JpbmdzKSkKKwkgICAgdGVzdF9iaXQoZW5naW5lLT5pZCwgJmk5MTUtPmdwdV9l cnJvci5taXNzZWRfaXJxX3JpbmdzKSkgewogCQltb2RfdGltZXIoJmItPmZha2VfaXJxLCBqaWZm aWVzICsgMSk7CisJfSBlbHNlIHsKKwkJLyogRW5zdXJlIHRoYXQgZXZlbiBpZiB0aGUgR1BVIGhh bmdzLCB3ZSBnZXQgd29rZW4gdXAuCisJCSAqCisJCSAqIEhvd2V2ZXIsIG5vdGUgdGhhdCBpZiBu byBvbmUgaXMgd2FpdGluZywgd2UgbmV2ZXIgbm90aWNlCisJCSAqIGEgZ3B1IGhhbmcuIEV2ZW50 dWFsbHksIHdlIHdpbGwgaGF2ZSB0byB3YWl0IGZvciBhIHJlc291cmNlCisJCSAqIGhlbGQgYnkg dGhlIEdQVSBhbmQgc28gdHJpZ2dlciBhIGhhbmdjaGVjay4gSW4gdGhlIG1vc3QKKwkJICogcGF0 aG9sb2dpY2FsIGNhc2UsIHRoaXMgd2lsbCBiZSB1cG9uIG1lbW9yeSBzdGFydmF0aW9uIQorCQkg Ki8KKwkJYi0+dGltZW91dCA9IHdhaXRfdGltZW91dCgpOworCQltb2RfdGltZXIoJmItPmhhbmdj aGVjaywgYi0+dGltZW91dCk7CisJfQogCi0JLyogRW5zdXJlIHRoYXQgZXZlbiBpZiB0aGUgR1BV IGhhbmdzLCB3ZSBnZXQgd29rZW4gdXAuCi0JICoKLQkgKiBIb3dldmVyLCBub3RlIHRoYXQgaWYg bm8gb25lIGlzIHdhaXRpbmcsIHdlIG5ldmVyIG5vdGljZQotCSAqIGEgZ3B1IGhhbmcuIEV2ZW50 dWFsbHksIHdlIHdpbGwgaGF2ZSB0byB3YWl0IGZvciBhIHJlc291cmNlCi0JICogaGVsZCBieSB0 aGUgR1BVIGFuZCBzbyB0cmlnZ2VyIGEgaGFuZ2NoZWNrLiBJbiB0aGUgbW9zdAotCSAqIHBhdGhv bG9naWNhbCBjYXNlLCB0aGlzIHdpbGwgYmUgdXBvbiBtZW1vcnkgc3RhcnZhdGlvbiEKLQkgKi8K IAlpOTE1X3F1ZXVlX2hhbmdjaGVjayhpOTE1KTsKIH0KIApAQCAtMjE5LDYgKzIzOSw3IEBAIHN0 YXRpYyBib29sIF9faW50ZWxfZW5naW5lX2FkZF93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwKIAkJR0VNX0JVR19PTighbmV4dCAmJiAhZmlyc3QpOwogCQlpZiAobmV4dCAmJiBu ZXh0ICE9ICZ3YWl0LT5ub2RlKSB7CiAJCQlHRU1fQlVHX09OKGZpcnN0KTsKKwkJCWItPnRpbWVv dXQgPSB3YWl0X3RpbWVvdXQoKTsKIAkJCWItPmZpcnN0X3dhaXQgPSB0b193YWl0KG5leHQpOwog CQkJc21wX3N0b3JlX21iKGItPmlycV9zZXFub19iaCwgYi0+Zmlyc3Rfd2FpdC0+dHNrKTsKIAkJ CS8qIEFzIHRoZXJlIGlzIGEgZGVsYXkgYmV0d2VlbiByZWFkaW5nIHRoZSBjdXJyZW50CkBAIC0y NDUsNiArMjY2LDcgQEAgc3RhdGljIGJvb2wgX19pbnRlbF9lbmdpbmVfYWRkX3dhaXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiAJaWYgKGZpcnN0KSB7CiAJCUdFTV9CVUdfT04o cmJfZmlyc3QoJmItPndhaXRlcnMpICE9ICZ3YWl0LT5ub2RlKTsKKwkJYi0+dGltZW91dCA9IHdh aXRfdGltZW91dCgpOwogCQliLT5maXJzdF93YWl0ID0gd2FpdDsKIAkJc21wX3N0b3JlX21iKGIt PmlycV9zZXFub19iaCwgd2FpdC0+dHNrKTsKIAkJLyogQWZ0ZXIgYXNzaWduaW5nIG91cnNlbHZl cyBhcyB0aGUgbmV3IGJvdHRvbS1oYWxmLCB3ZSBtdXN0CkBAIC0yNzcsMTEgKzI5OSw2IEBAIGJv b2wgaW50ZWxfZW5naW5lX2FkZF93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwK IAlyZXR1cm4gZmlyc3Q7CiB9CiAKLXZvaWQgaW50ZWxfZW5naW5lX2VuYWJsZV9mYWtlX2lycShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0JbW9kX3RpbWVyKCZlbmdpbmUtPmJy ZWFkY3J1bWJzLmZha2VfaXJxLCBqaWZmaWVzICsgMSk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgYm9v bCBjaGFpbl93YWtldXAoc3RydWN0IHJiX25vZGUgKnJiLCBpbnQgcHJpb3JpdHkpCiB7CiAJcmV0 dXJuIHJiICYmIHRvX3dhaXQocmIpLT50c2stPnByaW8gPD0gcHJpb3JpdHk7CkBAIC0zNTksNiAr Mzc2LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfcmVtb3ZlX3dhaXQoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAogCQkJICogdGhlIGludGVycnVwdCwgb3IgaWYgd2UgaGF2ZSB0byBoYW5k bGUgYW4KIAkJCSAqIGV4Y2VwdGlvbiByYXRoZXIgdGhhbiBhIHNlcW5vIGNvbXBsZXRpb24uCiAJ CQkgKi8KKwkJCWItPnRpbWVvdXQgPSB3YWl0X3RpbWVvdXQoKTsKIAkJCWItPmZpcnN0X3dhaXQg PSB0b193YWl0KG5leHQpOwogCQkJc21wX3N0b3JlX21iKGItPmlycV9zZXFub19iaCwgYi0+Zmly c3Rfd2FpdC0+dHNrKTsKIAkJCWlmIChiLT5maXJzdF93YWl0LT5zZXFubyAhPSB3YWl0LT5zZXFu bykKQEAgLTUzMyw2ICs1NTEsOSBAQCBpbnQgaW50ZWxfZW5naW5lX2luaXRfYnJlYWRjcnVtYnMo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNr OwogCiAJc3Bpbl9sb2NrX2luaXQoJmItPmxvY2spOworCXNldHVwX3RpbWVyKCZiLT5oYW5nY2hl Y2ssCisJCSAgICBpbnRlbF9icmVhZGNydW1ic19oYW5nY2hlY2ssCisJCSAgICAodW5zaWduZWQg bG9uZyllbmdpbmUpOwogCXNldHVwX3RpbWVyKCZiLT5mYWtlX2lycSwKIAkJICAgIGludGVsX2Jy ZWFkY3J1bWJzX2Zha2VfaXJxLAogCQkgICAgKHVuc2lnbmVkIGxvbmcpZW5naW5lKTsKQEAgLTU2 MSw2ICs1ODIsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJa3RocmVhZF9zdG9wKGItPnNpZ25hbGVyKTsKIAog CWRlbF90aW1lcl9zeW5jKCZiLT5mYWtlX2lycSk7CisJZGVsX3RpbWVyX3N5bmMoJmItPmhhbmdj aGVjayk7CiB9CiAKIHVuc2lnbmVkIGludCBpbnRlbF9raWNrX3dhaXRlcnMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCmlu ZGV4IDFlMDNmNWZhYzMzOC4uOGM1YmQzY2I0NDE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9lbmdpbmVfY3MuYwpAQCAtMTY3LDYgKzE2Nyw3IEBAIGNsZWFudXA6CiB2b2lkIGludGVsX2Vu Z2luZV9pbml0X2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJ bWVtc2V0KCZlbmdpbmUtPmhhbmdjaGVjaywgMCwgc2l6ZW9mKGVuZ2luZS0+aGFuZ2NoZWNrKSk7 CisJY2xlYXJfYml0KGVuZ2luZS0+aWQsICZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvci5taXNzZWRf aXJxX3JpbmdzKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfcmVxdWVzdHMo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oCmluZGV4IDQzZTU0NWU0NDM1Mi4uNGFlZDQ1ODZiMGI2IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC03NSw3ICs3NSw2IEBAIGVudW0gaW50 ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gewogCiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2hhbmdj aGVjayB7CiAJdTY0IGFjdGhkOwotCXVuc2lnbmVkIGxvbmcgdXNlcl9pbnRlcnJ1cHRzOwogCXUz MiBzZXFubzsKIAlpbnQgc2NvcmU7CiAJZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlv biBhY3Rpb247CkBAIC0xNzMsNyArMTcyLDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJ ICovCiAJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzIHsKIAkJc3RydWN0IHRhc2tfc3RydWN0ICpp cnFfc2Vxbm9fYmg7IC8qIGJoIGZvciB1c2VyIGludGVycnVwdHMgKi8KLQkJdW5zaWduZWQgbG9u ZyBpcnFfd2FrZXVwczsKIAkJYm9vbCBpcnFfcG9zdGVkOwogCiAJCXNwaW5sb2NrX3QgbG9jazsg LyogcHJvdGVjdHMgdGhlIGxpc3RzIG9mIHJlcXVlc3RzICovCkBAIC0xODMsNiArMTgxLDkgQEAg c3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJCXN0cnVjdCB0YXNrX3N0cnVjdCAqc2lnbmFsZXI7 IC8qIHVzZWQgZm9yIGZlbmNlIHNpZ25hbGxpbmcgKi8KIAkJc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpmaXJzdF9zaWduYWw7CiAJCXN0cnVjdCB0aW1lcl9saXN0IGZha2VfaXJxOyAvKiB1 c2VkIGFmdGVyIGEgbWlzc2VkIGludGVycnVwdCAqLworCQlzdHJ1Y3QgdGltZXJfbGlzdCBoYW5n Y2hlY2s7IC8qIGRldGVjdCBtaXNzZWQgaW50ZXJydXB0cyAqLworCisJCXVuc2lnbmVkIGxvbmcg dGltZW91dDsKIAogCQlib29sIGlycV9lbmFibGVkIDogMTsKIAkJYm9vbCBycG1fd2FrZWxvY2sg OiAxOwpAQCAtNTYwLDcgKzU2MSw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9lbmdpbmVf d2FrZXVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlyZXR1cm4gd2FrZXVwOwog fQogCi12b2lkIGludGVsX2VuZ2luZV9lbmFibGVfZmFrZV9pcnEoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKTsKIHZvaWQgaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHVuc2lnbmVkIGludCBpbnRlbF9raWNrX3dhaXRl cnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogdW5zaWduZWQgaW50IGludGVsX2tp Y2tfc2lnbmFsZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLS0gCjIuOC4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK