From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH v9 17/21] drm/i915: Watchdog timeout: IRQ handler for gen8+ Date: Thu, 15 Jun 2017 13:18:24 -0700 Message-ID: <20170615201828.23144-18-michel.thierry@intel.com> References: <20170615201828.23144-1-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id CD7536E80C for ; Thu, 15 Jun 2017 20:18:32 +0000 (UTC) In-Reply-To: <20170615201828.23144-1-michel.thierry@intel.com> 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 List-Id: intel-gfx@lists.freedesktop.org KioqIEdlbmVyYWwgKioqCgpXYXRjaGRvZyB0aW1lb3V0IChvciAibWVkaWEgZW5naW5lIHJlc2V0 IikgaXMgYSBmZWF0dXJlIHRoYXQgYWxsb3dzCnVzZXJsYW5kIGFwcGxpY2F0aW9ucyB0byBlbmFi bGUgaGFuZyBkZXRlY3Rpb24gb24gaW5kaXZpZHVhbCBiYXRjaCBidWZmZXJzLgpUaGUgZGV0ZWN0 aW9uIG1lY2hhbmlzbSBpdHNlbGYgaXMgbW9zdGx5IGJvdW5kIHRvIHRoZSBoYXJkd2FyZSBhbmQg dGhlIG9ubHkKdGhpbmcgdGhhdCB0aGUgZHJpdmVyIG5lZWRzIHRvIGRvIHRvIHN1cHBvcnQgdGhp cyBmb3JtIG9mIGhhbmcgZGV0ZWN0aW9uCmlzIHRvIGltcGxlbWVudCB0aGUgaW50ZXJydXB0IGhh bmRsaW5nIHN1cHBvcnQgYXMgd2VsbCBhcyB3YXRjaGRvZyBjb21tYW5kCmVtaXNzaW9uIGJlZm9y ZSBhbmQgYWZ0ZXIgdGhlIGVtaXR0ZWQgYmF0Y2ggYnVmZmVyIHN0YXJ0IGluc3RydWN0aW9uIGlu IHRoZQpyaW5nIGJ1ZmZlci4KClRoZSBwcmluY2lwbGUgb2YgdGhlIGhhbmcgZGV0ZWN0aW9uIG1l Y2hhbmlzbSBpcyBhcyBmb2xsb3dzOgoKMS4gT25jZSB0aGUgZGVjaXNpb24gaGFzIGJlZW4gbWFk ZSB0byBlbmFibGUgd2F0Y2hkb2cgdGltZW91dCBmb3IgYQpwYXJ0aWN1bGFyIGJhdGNoIGJ1ZmZl ciBhbmQgdGhlIGRyaXZlciBpcyBpbiB0aGUgcHJvY2VzcyBvZiBlbWl0dGluZyB0aGUKYmF0Y2gg YnVmZmVyIHN0YXJ0IGluc3RydWN0aW9uIGludG8gdGhlIHJpbmcgYnVmZmVyIGl0IGFsc28gZW1p dHMgYQp3YXRjaGRvZyB0aW1lciBzdGFydCBpbnN0cnVjdGlvbiBiZWZvcmUgYW5kIGEgd2F0Y2hk b2cgdGltZXIgY2FuY2VsbGF0aW9uCmluc3RydWN0aW9uIGFmdGVyIHRoZSBiYXRjaCBidWZmZXIg c3RhcnQgaW5zdHJ1Y3Rpb24gaW4gdGhlIHJpbmcgYnVmZmVyLgoKMi4gT25jZSB0aGUgR1BVIGV4 ZWN1dGlvbiByZWFjaGVzIHRoZSB3YXRjaGRvZyB0aW1lciBzdGFydCBpbnN0cnVjdGlvbgp0aGUg aGFyZHdhcmUgd2F0Y2hkb2cgY291bnRlciBpcyBzdGFydGVkIGJ5IHRoZSBoYXJkd2FyZS4gVGhl IGNvdW50ZXIKa2VlcHMgY291bnRpbmcgdW50aWwgZWl0aGVyIHJlYWNoaW5nIGEgcHJldmlvdXNs eSBjb25maWd1cmVkIHRocmVzaG9sZAp2YWx1ZSBvciB0aGUgdGltZXIgY2FuY2VsbGF0aW9uIGlu c3RydWN0aW9uIGlzIGV4ZWN1dGVkLgoKMmEuIElmIHRoZSBjb3VudGVyIHJlYWNoZXMgdGhlIHRo cmVzaG9sZCB2YWx1ZSB0aGUgaGFyZHdhcmUgZmlyZXMgYQp3YXRjaGRvZyBpbnRlcnJ1cHQgdGhh dCBpcyBwaWNrZWQgdXAgYnkgdGhlIHdhdGNoZG9nIGludGVycnVwdCBoYW5kbGVyLgpUaGlzIG1l YW5zIHRoYXQgYSBoYW5nIGhhcyBiZWVuIGRldGVjdGVkIGFuZCB0aGUgZHJpdmVyIG5lZWRzIHRv IGRlYWwgd2l0aAppdCB0aGUgc2FtZSB3YXkgaXQgd291bGQgZGVhbCB3aXRoIGEgZW5naW5lIGhh bmcgZGV0ZWN0ZWQgYnkgdGhlIHBlcmlvZGljCmhhbmcgY2hlY2tlci4gVGhlIG9ubHkgZGlmZmVy ZW5jZSBiZXR3ZWVuIHRoZSB0d28gaXMgdGhhdCB3ZSBhbHJlYWR5IGJsYW1lZAp0aGUgYWN0aXZl IHJlcXVlc3QgKHRvIGVuc3VyZSBhbiBlbmdpbmUgcmVzZXQpLgoKMmIuIElmIHRoZSBiYXRjaCBi dWZmZXIgY29tcGxldGVzIGFuZCB0aGUgZXhlY3V0aW9uIHJlYWNoZXMgdGhlIHdhdGNoZG9nCmNh bmNlbGxhdGlvbiBpbnN0cnVjdGlvbiBiZWZvcmUgdGhlIHdhdGNoZG9nIGNvdW50ZXIgcmVhY2hl cyBpdHMKdGhyZXNob2xkIHZhbHVlIHRoZSB3YXRjaGRvZyBpcyBjYW5jZWxsZWQgYW5kIG5vdGhp bmcgbW9yZSBjb21lcyBvZiBpdC4KTm8gaGFuZyBpcyBkZXRlY3RlZC4KCk5vdGUgYWJvdXQgZnV0 dXJlIGludGVyYWN0aW9uIHdpdGggcHJlZW1wdGlvbjogUHJlZW1wdGlvbiBjb3VsZCBoYXBwZW4K aW4gYSBjb21tYW5kIHNlcXVlbmNlIHByaW9yIHRvIHdhdGNoZG9nIGNvdW50ZXIgZ2V0dGluZyBk aXNhYmxlZCwKcmVzdWx0aW5nIGluIHdhdGNoZG9nIGJlaW5nIHRyaWdnZXJlZCBmb2xsb3dpbmcg cHJlZW1wdGlvbiAoZS5nLiB3aGVuCndhdGNoZG9nIGhhZCBiZWVuIGVuYWJsZWQgaW4gdGhlIGxv dyBwcmlvcml0eSBiYXRjaCkuIFRoZSBkcml2ZXIgd2lsbApuZWVkIHRvIGV4cGxpY2l0bHkgZGlz YWJsZSB0aGUgd2F0Y2hkb2cgY291bnRlciBhcyBwYXJ0IG9mIHRoZQpwcmVlbXB0aW9uIHNlcXVl bmNlLgoKKioqIFRoaXMgcGF0Y2ggaW50cm9kdWNlczogKioqCgoxLiBJUlEgaGFuZGxlciBjb2Rl IGZvciB3YXRjaGRvZyB0aW1lb3V0IGFsbG93aW5nIGRpcmVjdCBoYW5nIHJlY292ZXJ5CmJhc2Vk IG9uIGhhcmR3YXJlLWRyaXZlbiBoYW5nIGRldGVjdGlvbiwgd2hpY2ggdGhlbiBpbnRlZ3JhdGVz IGRpcmVjdGx5CndpdGggdGhlIGhhbmcgcmVjb3ZlcnkgcGF0aC4gVGhpcyBpcyBpbmRlcGVuZGVu dCBvZiBoYXZpbmcgcGVyLWVuZ2luZSByZXNldApvciBqdXN0IGZ1bGwgZ3B1IHJlc2V0LgoKMi4g V2F0Y2hkb2cgc3BlY2lmaWMgcmVnaXN0ZXIgaW5mb3JtYXRpb24uCgpDdXJyZW50bHkgdGhlIHJl bmRlciBlbmdpbmUgYW5kIGFsbCBhdmFpbGFibGUgbWVkaWEgZW5naW5lcyBzdXBwb3J0CndhdGNo ZG9nIHRpbWVvdXQgKFZFQ1MgaXMgb25seSBzdXBwb3J0ZWQgaW4gR0VOOSkuIFRoZSBzcGVjaWZp Y2F0aW9ucyBlbHVkZQp0byB0aGUgQkNTIGVuZ2luZSBiZWluZyBzdXBwb3J0ZWQgYnV0IHRoYXQg aXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkKdGhpcyBjb21taXQuCgpOb3RlIHRoYXQgdGhl IHZhbHVlIHRvIHN0b3AgdGhlIGNvdW50ZXIgaXMgZGlmZmVyZW50IGJldHdlZW4gcmVuZGVyIGFu ZApub24tcmVuZGVyIGVuZ2luZXMgaW4gR0VOODsgR0VOOSBvbndhcmRzIGl0J3MgdGhlIHNhbWUu Cgp2MjogTW92ZSBpcnEgaGFuZGxlciB0byB0YXNrbGV0LCBhcm0gd2F0Y2hkb2cgZm9yIGEgMm5k IHRpbWUgdG8gY2hlY2sKYWdhaW5zdCBmYWxzZS1wb3NpdGl2ZXMuCgp2MzogRG9uJ3QgdXNlIGhp Z2ggcHJpb3JpdHkgdGFza2xldCwgdXNlIGVuZ2luZV9sYXN0X3N1Ym1pdCB3aGlsZQpjaGVja2lu ZyBmb3IgZmFsc2UtcG9zaXRpdmVzLiBGcm9tIEdFTjkgb253YXJkcywgdGhlIHN0b3AgY291bnRl ciBiaXQgaXMKdGhlIHNhbWUgZm9yIGFsbCBlbmdpbmVzLgoKdjQ6IFJlbW92ZSB1bm5lY2Vzc2Fy eSBicmFja2V0cywgdXNlIGN1cnJlbnRfc2Vxbm8gdG8gbWFyayB0aGUgcmVxdWVzdAphcyBndWls dHkgaW4gdGhlIGhhbmdjaGVjay9jYXB0dXJlIGNvZGUuCgp2NTogUmViYXNlZCBhZnRlciBSRVNF VF9FTkdJTkVzIGZsYWcuCgp2NjogRG9uJ3QgY2FwdHVyZSBlcnJvciBzdGF0ZSBpbiBjYXNlIG9m IHdhdGNoZG9nIHRpbWVvdXQuIFRoZSBjYXB0dXJlCnByb2Nlc3MgaXMgdGltZSBjb25zdW1pbmcg YW5kIHRoaXMgd2lsbCBhbGlnbiB0byB3aGF0IGhhcHBlbnMgd2hlbiB3ZQp1c2UgR3VDIHRvIGhh bmRsZSB0aGUgd2F0Y2hkb2cgdGltZW91dC4gKENocmlzKQoKU2lnbmVkLW9mZi1ieTogVG9tYXMg RWxmIDx0b21hcy5lbGZAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJYW4gTGlzdGVyIDxpYW4u bGlzdGVyQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQXJ1biBTaWx1dmVyeSA8YXJ1bi5zaWx1 dmVyeUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5IDxtaWNo ZWwudGhpZXJyeUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgICAgIHwgIDQgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAg ICB8IDE5ICsrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAg IHwgIDYgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYyAgfCAxMyAr KysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCA2OSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaCB8ICA0ICsrCiA2IGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCsp LCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDk4NjlhY2FjYjU0 OC4uOTRjN2Q4NTYxNzRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTE1NTAsNiArMTU1 MCw5IEBAIHN0cnVjdCBpOTE1X2dwdV9lcnJvciB7CiAJICogaW5zcGVjdCB0aGUgYml0IGFuZCBk byB0aGUgcmVzZXQgZGlyZWN0bHksIG90aGVyd2lzZSB0aGUgd29ya2VyCiAJICogd2FpdHMgZm9y IHRoZSBzdHJ1Y3RfbXV0ZXguCiAJICoKKwkgKiAjSTkxNV9SRVNFVF9XQVRDSERPRyAtIFdoZW4g aHcgZGV0ZWN0cyBhIGhhbmcgYmVmb3JlIHVzLCB3ZSBjYW4gdXNlCisJICogSTkxNV9SRVNFVF9X QVRDSERPRyB0byByZXBvcnQgdGhlIGhhbmcgZGV0ZWN0aW9uIGNhdXNlIGFjY3VyYXRlbHkuCisJ ICoKIAkgKiAjSTkxNV9SRVNFVF9FTkdJTkVbbnVtX2VuZ2luZXNdIC0gU2luY2UgdGhlIGRyaXZl ciBkb2Vzbid0IG5lZWQgdG8KIAkgKiBhY3F1aXJlIHRoZSBzdHJ1Y3RfbXV0ZXggdG8gcmVzZXQg YW4gZW5naW5lLCB3ZSBuZWVkIGFuIGV4cGxpY2l0CiAJICogZmxhZyB0byBwcmV2ZW50IHR3byBj b25jdXJyZW50IHJlc2V0IGF0dGVtcHRzIGluIHRoZSBzYW1lIGVuZ2luZS4KQEAgLTE1NjQsNiAr MTU2Nyw3IEBAIHN0cnVjdCBpOTE1X2dwdV9lcnJvciB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsK ICNkZWZpbmUgSTkxNV9SRVNFVF9CQUNLT0ZGCTAKICNkZWZpbmUgSTkxNV9SRVNFVF9IQU5ET0ZG CTEKKyNkZWZpbmUgSTkxNV9SRVNFVF9XQVRDSERPRwkyCiAjZGVmaW5lIEk5MTVfV0VER0VECQko QklUU19QRVJfTE9ORyAtIDEpCiAjZGVmaW5lIEk5MTVfUkVTRVRfRU5HSU5FCShJOTE1X1dFREdF RCAtIEk5MTVfTlVNX0VOR0lORVMpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IDgwODhi NTE1MWZjYS4uMjExZWMxMTEwZWY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTEzMzYs NiArMTMzNiw5IEBAIGdlbjhfY3NfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLCB1MzIgaWlyLCBpbnQgdGVzdF9zaGlmdCkKIAogCWlmICh0YXNrbGV0KQogCQl0YXNr bGV0X2hpX3NjaGVkdWxlKCZlbmdpbmUtPmlycV90YXNrbGV0KTsKKworCWlmIChpaXIgJiAoR1Rf R0VOOF9XQVRDSERPR19JTlRFUlJVUFQgPDwgdGVzdF9zaGlmdCkpCisJCXRhc2tsZXRfc2NoZWR1 bGUoJmVuZ2luZS0+d2F0Y2hkb2dfdGFza2xldCk7CiB9CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBn ZW44X2d0X2lycV9hY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMjc0 MCw3ICsyNzQzLDEwIEBAIHZvaWQgaTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCSAqLwogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsK IAotCWk5MTVfY2FwdHVyZV9lcnJvcl9zdGF0ZShkZXZfcHJpdiwgZW5naW5lX21hc2ssIGVycm9y X21zZyk7CisJaWYgKHN0cnN0cihlcnJvcl9tc2csICJXYXRjaGRvZyB0aW1lb3V0IikpCisJCURS TV9JTkZPKCIlcyIsIGVycm9yX21zZyk7CisJZWxzZQorCQlpOTE1X2NhcHR1cmVfZXJyb3Jfc3Rh dGUoZGV2X3ByaXYsIGVuZ2luZV9tYXNrLCBlcnJvcl9tc2cpOwogCWk5MTVfY2xlYXJfZXJyb3Jf cmVnaXN0ZXJzKGRldl9wcml2KTsKIAogCWlmICghZW5naW5lX21hc2spCkBAIC0yNzUyLDcgKzI3 NTgsNyBAQCB2b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkgKi8KIAlpZiAoaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShkZXZfcHJpdikpIHsK IAkJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGRldl9wcml2LCBlbmdpbmVfbWFzaywg dG1wKSB7Ci0JCQlCVUlMRF9CVUdfT04oSTkxNV9SRVNFVF9IQU5ET0ZGID49IEk5MTVfUkVTRVRf RU5HSU5FKTsKKwkJCUJVSUxEX0JVR19PTihJOTE1X1JFU0VUX1dBVENIRE9HID49IEk5MTVfUkVT RVRfRU5HSU5FKTsKIAkJCWlmICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsg ZW5naW5lLT5pZCwKIAkJCQkJICAgICAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncykpCiAJCQkJ Y29udGludWU7CkBAIC0zNDM3LDEyICszNDQzLDE1IEBAIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJx X3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAl1aW50MzJf dCBndF9pbnRlcnJ1cHRzW10gPSB7CiAJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44 X1JDU19JUlFfU0hJRlQgfAogCQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhf UkNTX0lSUV9TSElGVCB8CisJCQlHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVCA8PCBHRU44X1JD U19JUlFfU0hJRlQgfAogCQkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lS UV9TSElGVCB8CiAJCQlHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9CQ1NfSVJR X1NISUZULAogCQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElG VCB8CiAJCQlHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElG VCB8CisJCQlHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzFfSVJRX1NISUZU IHwKIAkJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzJfSVJRX1NISUZUIHwK LQkJCUdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzJfSVJRX1NISUZULAor CQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQgfAor CQkJR1RfR0VOOF9XQVRDSERPR19JTlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElGVCwKIAkJ MCwKIAkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19JUlFfU0hJRlQgfAog CQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19JUlFfU0hJRlQKQEAg LTM0NTEsNiArMzQ2MCwxMCBAQCBzdGF0aWMgdm9pZCBnZW44X2d0X2lycV9wb3N0aW5zdGFsbChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKEhBU19MM19EUEYoZGV2X3By aXYpKQogCQlndF9pbnRlcnJ1cHRzWzBdIHw9IEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5U RVJSVVBUOwogCisJLyogVkVDUyB3YXRjaGRvZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBza2wrICov CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKKwkJZ3RfaW50ZXJydXB0c1szXSB8PSBH VF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVDsKKwogCWRldl9wcml2LT5wbV9pZXIgPSAweDA7CiAJ ZGV2X3ByaXYtPnBtX2ltciA9IH5kZXZfcHJpdi0+cG1faWVyOwogCUdFTjhfSVJRX0lOSVRfTkRY KEdULCAwLCB+Z3RfaW50ZXJydXB0c1swXSwgZ3RfaW50ZXJydXB0c1swXSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAppbmRleCBiZDUzNWYxMmRiMTguLjM1ODQ1YzBiZTQ2ZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCkBAIC0yMDk2LDYgKzIwOTYsMTEgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93 ZWxscyB7CiAjZGVmaW5lIFJJTkdfU1RBUlQoYmFzZSkJX01NSU8oKGJhc2UpKzB4MzgpCiAjZGVm aW5lIFJJTkdfQ1RMKGJhc2UpCQlfTU1JTygoYmFzZSkrMHgzYykKICNkZWZpbmUgICBSSU5HX0NU TF9TSVpFKHNpemUpCSgoc2l6ZSkgLSBQQUdFX1NJWkUpIC8qIGluIGJ5dGVzIC0+IHBhZ2VzICov CisjZGVmaW5lIFJJTkdfQ05UUihiYXNlKSAgICAgICAgX01NSU8oKGJhc2UpICsgMHgxNzgpCisj ZGVmaW5lICAgR0VOOF9XQVRDSERPR19FTkFCTEUJCTAKKyNkZWZpbmUgICBHRU44X1dBVENIRE9H X0RJU0FCTEUJMQorI2RlZmluZSAgIEdFTjhfWENTX1dBVENIRE9HX0RJU0FCTEUJMHhGRkZGRkZG RiAvKiBHRU44ICYgbm9uLXJlbmRlciBvbmx5ICovCisjZGVmaW5lIFJJTkdfVEhSRVNIKGJhc2Up ICAgICAgX01NSU8oKGJhc2UpICsgMHgxN0MpCiAjZGVmaW5lIFJJTkdfU1lOQ18wKGJhc2UpCV9N TUlPKChiYXNlKSsweDQwKQogI2RlZmluZSBSSU5HX1NZTkNfMShiYXNlKQlfTU1JTygoYmFzZSkr MHg0NCkKICNkZWZpbmUgUklOR19TWU5DXzIoYmFzZSkJX01NSU8oKGJhc2UpKzB4NDgpCkBAIC0y NTc3LDYgKzI1ODIsNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUgR1Rf QlNEX1VTRVJfSU5URVJSVVBUCQkJKDEgPDwgMTIpCiAjZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJ VFlfRVJST1JfSU5URVJSVVBUX1MxCSgxIDw8IDExKSAvKiBoc3crOyByc3ZkIG9uIHNuYiwgaXZi LCB2bHYgKi8KICNkZWZpbmUgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUCQkoMSA8PCAgOCkK KyNkZWZpbmUgR1RfR0VOOF9XQVRDSERPR19JTlRFUlJVUFQJCSgxIDw8ICA2KSAvKiBnZW44KyAq LwogI2RlZmluZSBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVAkoMSA8PCAgNSkg LyogIXNuYiAqLwogI2RlZmluZSBHVF9SRU5ERVJfUElQRUNUTF9OT1RJRllfSU5URVJSVVBUCSgx IDw8ICA0KQogI2RlZmluZSBHVF9SRU5ERVJfQ1NfTUFTVEVSX0VSUk9SX0lOVEVSUlVQVAkoMSA8 PCAgMykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKaW5kZXggOWIwZWNlNDI3 YmRjLi4yNTQxNTVlYmFiNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5j CkBAIC0zODgsNyArMzg4LDggQEAgc3RhdGljIHZvaWQgaGFuZ2NoZWNrX2FjY3VtdWxhdGVfc2Ft cGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAogc3RhdGljIHZvaWQgaGFuZ2No ZWNrX2RlY2xhcmVfaGFuZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkgICB1 bnNpZ25lZCBpbnQgaHVuZywKLQkJCQkgICB1bnNpZ25lZCBpbnQgc3R1Y2spCisJCQkJICAgdW5z aWduZWQgaW50IHN0dWNrLAorCQkJCSAgIHVuc2lnbmVkIGludCB3YXRjaGRvZykKIHsKIAlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJY2hhciBtc2dbODBdOwpAQCAtNDAxLDcgKzQw Miw4IEBAIHN0YXRpYyB2b2lkIGhhbmdjaGVja19kZWNsYXJlX2hhbmcoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCiAJaWYgKHN0dWNrICE9IGh1bmcpCiAJCWh1bmcgJj0gfnN0dWNrOwog CWxlbiA9IHNjbnByaW50Zihtc2csIHNpemVvZihtc2cpLAotCQkJIiVzIG9uICIsIHN0dWNrID09 IGh1bmcgPyAiTm8gcHJvZ3Jlc3MiIDogIkhhbmciKTsKKwkJCSIlcyBvbiAiLCB3YXRjaGRvZyA/ ICJXYXRjaGRvZyB0aW1lb3V0IiA6CisJCQkJICBzdHVjayA9PSBodW5nID8gIk5vIHByb2dyZXNz IiA6ICJIYW5nIik7CiAJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGk5MTUsIGh1bmcs IHRtcCkKIAkJbGVuICs9IHNjbnByaW50Zihtc2cgKyBsZW4sIHNpemVvZihtc2cpIC0gbGVuLAog CQkJCSAiJXMsICIsIGVuZ2luZS0+bmFtZSk7CkBAIC00MjUsNyArNDI3LDcgQEAgc3RhdGljIHZv aWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQkg ICAgIGdwdV9lcnJvci5oYW5nY2hlY2tfd29yay53b3JrKTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmU7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0JdW5zaWduZWQgaW50IGh1 bmcgPSAwLCBzdHVjayA9IDA7CisJdW5zaWduZWQgaW50IGh1bmcgPSAwLCBzdHVjayA9IDAsIHdh dGNoZG9nID0gMDsKIAlpbnQgYnVzeV9jb3VudCA9IDA7CiAKIAlpZiAoIWk5MTUuZW5hYmxlX2hh bmdjaGVjaykKQEAgLTQzNyw2ICs0MzksOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19l bGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpZiAoaTkxNV90ZXJtaW5hbGx5X3dl ZGdlZCgmZGV2X3ByaXYtPmdwdV9lcnJvcikpCiAJCXJldHVybjsKIAorCWlmICh0ZXN0X2FuZF9j bGVhcl9iaXQoSTkxNV9SRVNFVF9XQVRDSERPRywgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3Mp KQorCQl3YXRjaGRvZyA9IDE7CisKIAkvKiBBcyBlbmFibGluZyB0aGUgR1BVIHJlcXVpcmVzIGZh aXJseSBleHRlbnNpdmUgbW1pbyBhY2Nlc3MsCiAJICogcGVyaW9kaWNhbGx5IGFybSB0aGUgbW1p byBjaGVja2VyIHRvIHNlZSBpZiB3ZSBhcmUgdHJpZ2dlcmluZwogCSAqIGFueSBpbnZhbGlkIGFj Y2Vzcy4KQEAgLTQ2Myw3ICs0NjgsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFw c2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAl9CiAKIAlpZiAoaHVuZykKLQkJaGFuZ2No ZWNrX2RlY2xhcmVfaGFuZyhkZXZfcHJpdiwgaHVuZywgc3R1Y2spOworCQloYW5nY2hlY2tfZGVj bGFyZV9oYW5nKGRldl9wcml2LCBodW5nLCBzdHVjaywgd2F0Y2hkb2cpOwogCiAJLyogUmVzZXQg dGltZXIgaW4gY2FzZSBHUFUgaGFuZ3Mgd2l0aG91dCBhbm90aGVyIHJlcXVlc3QgYmVpbmcgYWRk ZWQgKi8KIAlpZiAoYnVzeV9jb3VudCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNzQw NGNmMmFhYzI4Li5hNjZjMjNkZTgwZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0x NTM5LDYgKzE1MzksNTMgQEAgc3RhdGljIGludCBnZW44X2VtaXRfZmx1c2hfcmVuZGVyKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAlyZXR1cm4gMDsKIH0KIAorLyogRnJv bSBHRU45IG9ud2FyZHMsIGFsbCBlbmdpbmVzIHVzZSB0aGUgc2FtZSBSSU5HX0NOVFIgZm9ybWF0 ICovCitzdGF0aWMgaW5saW5lIHUzMiBnZXRfd2F0Y2hkb2dfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCit7CisJaWYgKGVuZ2luZS0+aWQgPT0gUkNTIHx8IElOVEVMX0dF TihlbmdpbmUtPmk5MTUpID49IDkpCisJCXJldHVybiBHRU44X1dBVENIRE9HX0RJU0FCTEU7CisJ ZWxzZQorCQlyZXR1cm4gR0VOOF9YQ1NfV0FUQ0hET0dfRElTQUJMRTsKK30KKworI2RlZmluZSBH RU44X1dBVENIRE9HXzEwMDBVUyAweDJlZTAgLy9YWFg6IFRlbXAsIHJlcGxhY2Ugd2l0aCBoZWxw ZXIgZnVuY3Rpb24KK3N0YXRpYyB2b2lkIGdlbjhfd2F0Y2hkb2dfaXJxX2hhbmRsZXIodW5zaWdu ZWQgbG9uZyBkYXRhKQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBlbmdpbmUtPmk5MTU7CisJdTMyIGN1cnJlbnRfc2Vxbm87CisKKwlpbnRlbF91bmNv cmVfZm9yY2V3YWtlX2dldChkZXZfcHJpdiwgZW5naW5lLT5md19kb21haW5zKTsKKworCS8qIFN0 b3AgdGhlIGNvdW50ZXIgdG8gcHJldmVudCBmdXJ0aGVyIHRpbWVvdXQgaW50ZXJydXB0cyAqLwor CUk5MTVfV1JJVEVfRlcoUklOR19DTlRSKGVuZ2luZS0+bW1pb19iYXNlKSwgZ2V0X3dhdGNoZG9n X2Rpc2FibGUoZW5naW5lKSk7CisKKwljdXJyZW50X3NlcW5vID0gaW50ZWxfZW5naW5lX2dldF9z ZXFubyhlbmdpbmUpOworCisJLyogZGlkIHRoZSByZXF1ZXN0IGNvbXBsZXRlIGFmdGVyIHRoZSB0 aW1lciBleHBpcmVkPyAqLworCWlmIChpbnRlbF9lbmdpbmVfbGFzdF9zdWJtaXQoZW5naW5lKSA9 PSBjdXJyZW50X3NlcW5vKQorCQlnb3RvIGZ3X3B1dDsKKworCWlmIChlbmdpbmUtPmhhbmdjaGVj ay53YXRjaGRvZyA9PSBjdXJyZW50X3NlcW5vKSB7CisJCS8qIE1ha2Ugc3VyZSB0aGUgYWN0aXZl IHJlcXVlc3Qgd2lsbCBiZSBtYXJrZWQgYXMgZ3VpbHR5ICovCisJCWVuZ2luZS0+aGFuZ2NoZWNr LnN0YWxsZWQgPSB0cnVlOworCQllbmdpbmUtPmhhbmdjaGVjay5zZXFubyA9IGN1cnJlbnRfc2Vx bm87CisKKwkJLyogQW5kIHRyeSB0byBydW4gdGhlIGhhbmdjaGVja193b3JrIGFzIHNvb24gYXMg cG9zc2libGUgKi8KKwkJc2V0X2JpdChJOTE1X1JFU0VUX1dBVENIRE9HLCAmZGV2X3ByaXYtPmdw dV9lcnJvci5mbGFncyk7CisJCXF1ZXVlX2RlbGF5ZWRfd29yayhzeXN0ZW1fbG9uZ193cSwKKwkJ CQkgICAmZGV2X3ByaXYtPmdwdV9lcnJvci5oYW5nY2hlY2tfd29yaywgMCk7CisJfSBlbHNlIHsK KwkJZW5naW5lLT5oYW5nY2hlY2sud2F0Y2hkb2cgPSBjdXJyZW50X3NlcW5vOworCQkvKiBSZS1z dGFydCB0aGUgY291bnRlciwgaWYgcmVhbGx5IGh1bmcsIGl0IHdpbGwgZXhwaXJlIGFnYWluICov CisJCUk5MTVfV1JJVEVfRlcoUklOR19USFJFU0goZW5naW5lLT5tbWlvX2Jhc2UpLCBHRU44X1dB VENIRE9HXzEwMDBVUyk7CisJCUk5MTVfV1JJVEVfRlcoUklOR19DTlRSKGVuZ2luZS0+bW1pb19i YXNlKSwgR0VOOF9XQVRDSERPR19FTkFCTEUpOworCX0KKworZndfcHV0OgorCWludGVsX3VuY29y ZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBlbmdpbmUtPmZ3X2RvbWFpbnMpOworfQorCiAvKgog ICogUmVzZXJ2ZSBzcGFjZSBmb3IgMiBOT09QcyBhdCB0aGUgZW5kIG9mIGVhY2ggcmVxdWVzdCB0 byBiZQogICogdXNlZCBhcyBhIHdvcmthcm91bmQgZm9yIG5vdCBiZWluZyBhbGxvd2VkIHRvIGRv IGxpdGUKQEAgLTE2MzIsNiArMTY3OSw5IEBAIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFu dXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWlmIChXQVJOX09OKHRlc3RfYml0 KFRBU0tMRVRfU1RBVEVfU0NIRUQsICZlbmdpbmUtPmlycV90YXNrbGV0LnN0YXRlKSkpCiAJCXRh c2tsZXRfa2lsbCgmZW5naW5lLT5pcnFfdGFza2xldCk7CiAKKwlpZiAoV0FSTl9PTih0ZXN0X2Jp dChUQVNLTEVUX1NUQVRFX1NDSEVELCAmZW5naW5lLT53YXRjaGRvZ190YXNrbGV0LnN0YXRlKSkp CisJCXRhc2tsZXRfa2lsbCgmZW5naW5lLT53YXRjaGRvZ190YXNrbGV0KTsKKwogCWRldl9wcml2 ID0gZW5naW5lLT5pOTE1OwogCiAJaWYgKGVuZ2luZS0+YnVmZmVyKSB7CkBAIC0xNjkwLDYgKzE3 NDAsMjIgQEAgbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiAJdW5zaWduZWQgc2hpZnQgPSBlbmdpbmUtPmlycV9zaGlmdDsKIAllbmdpbmUt PmlycV9lbmFibGVfbWFzayA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBzaGlmdDsKIAll bmdpbmUtPmlycV9rZWVwX21hc2sgPSBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgc2hp ZnQ7CisKKwlzd2l0Y2ggKGVuZ2luZS0+aWQpIHsKKwlkZWZhdWx0OgorCQkvKiBCQ1MgZW5naW5l IGRvZXMgbm90IHN1cHBvcnQgaHcgd2F0Y2hkb2cgKi8KKwkJYnJlYWs7CisJY2FzZSBSQ1M6CisJ Y2FzZSBWQ1M6CisJY2FzZSBWQ1MyOgorCQllbmdpbmUtPmlycV9rZWVwX21hc2sgfD0gKEdUX0dF TjhfV0FUQ0hET0dfSU5URVJSVVBUIDw8IHNoaWZ0KTsKKwkJYnJlYWs7CisJY2FzZSBWRUNTOgor CQlpZiAoSU5URUxfR0VOKGVuZ2luZS0+aTkxNSkgPj0gOSkKKwkJCWVuZ2luZS0+aXJxX2tlZXBf bWFzayB8PQorCQkJCShHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVCA8PCBzaGlmdCk7CisJCWJy ZWFrOworCX0KIH0KIAogc3RhdGljIGludApAQCAtMTczOCw2ICsxODA0LDkgQEAgbG9naWNhbF9y aW5nX3NldHVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl0YXNrbGV0X2luaXQo JmVuZ2luZS0+aXJxX3Rhc2tsZXQsCiAJCSAgICAgaW50ZWxfbHJjX2lycV9oYW5kbGVyLCAodW5z aWduZWQgbG9uZyllbmdpbmUpOwogCisJdGFza2xldF9pbml0KCZlbmdpbmUtPndhdGNoZG9nX3Rh c2tsZXQsCisJCSAgICAgZ2VuOF93YXRjaGRvZ19pcnFfaGFuZGxlciwgKHVuc2lnbmVkIGxvbmcp ZW5naW5lKTsKKwogCWxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhlbmdpbmUpOwogCWxvZ2lj YWxfcmluZ19kZWZhdWx0X2lycXMoZW5naW5lKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaAppbmRleCBkMzNjOTM0NDRjMGQuLjM5MDZiMzNmNWU3NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMTE3LDYgKzExNyw3IEBAIHN0cnVj dCBpbnRlbF9pbnN0ZG9uZSB7CiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2hhbmdjaGVjayB7CiAJdTY0 IGFjdGhkOwogCXUzMiBzZXFubzsKKwl1MzIgd2F0Y2hkb2c7CiAJZW51bSBpbnRlbF9lbmdpbmVf aGFuZ2NoZWNrX2FjdGlvbiBhY3Rpb247CiAJdW5zaWduZWQgbG9uZyBhY3Rpb25fdGltZXN0YW1w OwogCWludCBkZWFkbG9jazsKQEAgLTQxNiw2ICs0MTcsOSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzIHsKIAogCXN0cnVjdCBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrIGhhbmdjaGVjazsKIAorCS8q IHdhdGNoZG9nX3Rhc2tsZXQ6IHN0b3AgY291bnRlciBhbmQgcmUtc2NoZWR1bGUgaGFuZ2NoZWNr X3dvcmsgYXNhcCAqLworCXN0cnVjdCB0YXNrbGV0X3N0cnVjdCB3YXRjaGRvZ190YXNrbGV0Owor CiAJYm9vbCBuZWVkc19jbWRfcGFyc2VyOwogCiAJLyoKLS0gCjIuMTEuMAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==