From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH 3/9] drm/i915/tdr: Modify error handler for per engine hang recovery Date: Fri, 16 Dec 2016 12:20:04 -0800 Message-ID: <20161216202010.7983-4-michel.thierry@intel.com> References: <20161216202010.7983-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 BEBA16ED2F for ; Fri, 16 Dec 2016 20:20:11 +0000 (UTC) In-Reply-To: <20161216202010.7983-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 RnJvbTogQXJ1biBTaWx1dmVyeSA8YXJ1bi5zaWx1dmVyeUBsaW51eC5pbnRlbC5jb20+CgpUaGlz IGlzIGEgcHJlcGFyYXRvcnkgcGF0Y2ggd2hpY2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxlciB0byBk byBwZXIgZW5naW5lCmhhbmcgcmVjb3ZlcnkuIFRoZSBhY3R1YWwgcGF0Y2ggd2hpY2ggaW1wbGVt ZW50cyB0aGlzIHNlcXVlbmNlIGZvbGxvd3MKbGF0ZXIgaW4gdGhlIHNlcmllcy4gVGhlIGFpbSBp cyB0byBwcmVwYXJlIGV4aXN0aW5nIHJlY292ZXJ5IGZ1bmN0aW9uIHRvCmFkYXB0IHRvIHRoaXMg bmV3IGZ1bmN0aW9uIHdoZXJlIGFwcGxpY2FibGUgKHdoaWNoIGZhaWxzIGF0IHRoaXMgcG9pbnQK YmVjYXVzZSBjb3JlIGltcGxlbWVudGF0aW9uIGlzIGxhY2tpbmcpIGFuZCBjb250aW51ZSByZWNv dmVyeSB1c2luZyBsZWdhY3kKZnVsbCBncHUgcmVzZXQuCgpBIGhlbHBlciBmdW5jdGlvbiBpcyBh bHNvIGFkZGVkIHRvIHF1ZXJ5IHRoZSBhdmFpbGFiaWxpdHkgb2YgZW5naW5lCnJlc2V0LgoKVGhl IGVycm9yIGV2ZW50cyBiZWhhdmlvdXIgdGhhdCBhcmUgdXNlZCB0byBub3RpZnkgdXNlciBvZiBy ZXNldCBhcmUKYWRhcHRlZCB0byBlbmdpbmUgcmVzZXQgc3VjaCB0aGF0IGl0IGRvZXNuJ3QgYnJl YWsgdXNlcnMgbGlzdGVuaW5nIHRvIHRoZXNlCmV2ZW50cy4gSW4gbGVnYWN5IHdlIHJlcG9ydCBh biBlcnJvciBldmVudCwgYSByZXNldCBldmVudCBiZWZvcmUgcmVzZXR0aW5nCnRoZSBncHUgYW5k IGEgcmVzZXQgZG9uZSBldmVudCBtYXJraW5nIHRoZSBjb21wbGV0aW9uIG9mIHJlc2V0LiBUaGUg c2FtZQpiZWhhdmlvdXIgaXMgYWRhcHRlZCBidXQgcmVzZXQgZXZlbnQgaXMgb25seSBkaXNwYXRj aGVkIG9uY2UgZXZlbiB3aGVuCm11bHRpcGxlIGVuZ2luZXMgYXJlIGh1bmcuIEZpbmFsbHkgb25j ZSByZXNldCBpcyBjb21wbGV0ZSB3ZSBzZW5kIHJlc2V0CmRvbmUgZXZlbnQgYXMgdXN1YWwuCgpO b3RlIHRoYXQgdGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBlbmdpbmUgcmVzZXQgaXMgZm9yIGk5MTUg ZGlyZWN0bHkKc3VibWl0dGluZyB0byB0aGUgRUxTUCwgd2hlcmUgdGhlIGRyaXZlciBtYW5hZ2Vz IHRoZSBoYW5nIGRldGVjdGlvbiwKcmVjb3ZlcnkgYW5kIHJlc3VibWlzc2lvbi4gV2l0aCBHdUMg c3VibWlzc2lvbiB0aGVzZSB0YXNrcyBhcmUgc2hhcmVkCmJldHdlZW4gZHJpdmVyIGFuZCBmaXJt d2FyZTsgaTkxNSB3aWxsIHN0aWxsIHJlc3BvbnNpYmxlIGZvciBkZXRlY3RpbmcgYQpoYW5nLCBh bmQgd2hlbiBpdCBkb2VzIGl0IHdpbGwgaGF2ZSB0byByZXF1ZXN0IEd1QyB0byByZXNldCB0aGF0 IEVuZ2luZSBhbmQKcmVtaW5kIHRoZSBmaXJtd2FyZSBhYm91dCB0aGUgb3V0c3RhbmRpbmcgc3Vi bWlzc2lvbnMuCgp2MjogcmViYXNlLCBhZHZlcnRpc2UgZW5naW5lIHJlc2V0IGF2YWlsYWJpbGl0 eSBpbiBwbGF0Zm9ybSBkZWZpbml0aW9uLAphZGQgbm90ZSBhYm91dCBHdUMgc3VibWlzc2lvbi4K CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IE1pa2EgS3Vv cHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJYW4g TGlzdGVyIDxpYW4ubGlzdGVyQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVG9tYXMgRWxmIDx0 b21hcy5lbGZAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBcnVuIFNpbHV2ZXJ5IDxhcnVuLnNp bHV2ZXJ5QGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWljaGVsIFRoaWVycnkgPG1p Y2hlbC50aGllcnJ5QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jICAgICB8IDIxICsrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgfCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgfCA4OCArKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BjaS5jICAgICB8ICA1ICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3Jl LmMgfCAxMSArKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgMjUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggNjQyODU4ODUxOGFhLi5lNTY4 OGVkZDYyY2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMTgyNCw2ICsxODI0LDI3IEBA IHZvaWQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZ290 byB3YWtldXA7CiB9CiAKKy8qKgorICogaTkxNV9yZXNldF9lbmdpbmUgLSByZXNldCBHUFUgZW5n aW5lIHRvIHJlY292ZXIgZnJvbSBhIGhhbmcKKyAqIEBlbmdpbmU6IGVuZ2luZSB0byByZXNldAor ICoKKyAqIFJlc2V0IGEgc3BlY2lmaWMgR1BVIGVuZ2luZS4gVXNlZnVsIGlmIGEgaGFuZyBpcyBk ZXRlY3RlZC4KKyAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzZnVsIHJlc2V0IG9yIG90aGVyd2lz ZSBhbiBlcnJvciBjb2RlLgorICovCitpbnQgaTkxNV9yZXNldF9lbmdpbmUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQoreworCWludCByZXQ7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OworCisJLyogRklYTUU6IHJlcGxhY2UgbWUgd2l0 aCBlbmdpbmUgcmVzZXQgc2VxdWVuY2UgKi8KKwlyZXQgPSAtRU5PREVWOworCisJLyogdXNlIGZ1 bGwgZ3B1IHJlc2V0IHRvIHJlY292ZXIgb24gZXJyb3IgKi8KKwlzZXRfYml0KEk5MTVfUkVTRVRf SU5fUFJPR1JFU1MsICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKTsKKworCXJldHVybiByZXQ7 Cit9CisKIHN0YXRpYyBpbnQgaTkxNV9wbV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7 CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGtkZXYpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKaW5kZXggZmIzYzg4MTQ0YWE4Li42YjRlOGVlMTk5MDUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaApAQCAtNzgxLDYgKzc4MSw3IEBAIHN0cnVjdCBpbnRlbF9jc3IgewogCWZ1bmMo aGFzX2RkaSk7IFwKIAlmdW5jKGhhc19kZWNvdXBsZWRfbW1pbyk7IFwKIAlmdW5jKGhhc19kcF9t c3QpOyBcCisJZnVuYyhoYXNfZW5naW5lX3Jlc2V0KTsgXAogCWZ1bmMoaGFzX2ZiYyk7IFwKIAlm dW5jKGhhc19mcGdhX2RiZyk7IFwKIAlmdW5jKGhhc19mdWxsX3BwZ3R0KTsgXApAQCAtMzAwNyw2 ICszMDA4LDggQEAgZXh0ZXJuIHZvaWQgaTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwogZXh0ZXJuIGludCBpbnRlbF9ncHVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCB1MzIgZW5naW5lX21hc2spOwogZXh0ZXJuIGJvb2wgaW50ZWxfaGFz X2dwdV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogZXh0ZXJuIHZv aWQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworZXh0ZXJu IGJvb2wgaW50ZWxfaGFzX2VuZ2luZV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOworZXh0ZXJuIGludCBpOTE1X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpOwogZXh0ZXJuIGludCBpbnRlbF9ndWNfcmVzZXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKIGV4dGVybiB2b2lkIGludGVsX2VuZ2luZV9pbml0X2hhbmdj aGVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogZXh0ZXJuIHZvaWQgaW50ZWxf aGFuZ2NoZWNrX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jCmluZGV4IDc3Y2FlZWI1ZWU1NS4uZGE2MTk4MTBmNTllIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMKQEAgLTI1OTQsNyArMjU5NCw4IEBAIHN0YXRpYyB2b2lkIGk5MTVf ZXJyb3Jfd2FrZV91cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAgKiBGaXJl IGFuIGVycm9yIHVldmVudCBzbyB1c2Vyc3BhY2UgY2FuIHNlZSB0aGF0IGEgaGFuZyBvciBlcnJv cgogICogd2FzIGRldGVjdGVkLgogICovCi1zdGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2FuZF93YWtl dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgaTkxNV9y ZXNldF9hbmRfd2FrZXVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkg IHUzMiBlbmdpbmVfbWFzaykKIHsKIAlzdHJ1Y3Qga29iamVjdCAqa29iaiA9ICZkZXZfcHJpdi0+ ZHJtLnByaW1hcnktPmtkZXYtPmtvYmo7CiAJY2hhciAqZXJyb3JfZXZlbnRbXSA9IHsgSTkxNV9F UlJPUl9VRVZFTlQgIj0xIiwgTlVMTCB9OwpAQCAtMjYwMyw3ICsyNjA0LDE1IEBAIHN0YXRpYyB2 b2lkIGk5MTVfcmVzZXRfYW5kX3dha2V1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAKIAlrb2JqZWN0X3VldmVudF9lbnYoa29iaiwgS09CSl9DSEFOR0UsIGVycm9yX2V2ZW50 KTsKIAotCURSTV9ERUJVR19EUklWRVIoInJlc2V0dGluZyBjaGlwXG4iKTsKKwkvKgorCSAqIFRo aXMgZXZlbnQgbmVlZHMgdG8gYmUgc2VudCBiZWZvcmUgcGVyZm9ybWluZyBncHUgcmVzZXQuIFdo ZW4KKwkgKiBlbmdpbmUgcmVzZXRzIGFyZSBzdXBwb3J0ZWQgd2UgaXRlcmF0ZSB0aHJvdWdoIGFs bCBlbmdpbmVzIGFuZAorCSAqIHJlc2V0IGh1bmcgZW5naW5lcyBpbmRpdmlkdWFsbHkuIFRvIGtl ZXAgdGhlIGV2ZW50IGRpc3BhdGNoCisJICogbWVjaGFuaXNtIGNvbnNpc3RlbnQgd2l0aCBmdWxs IGdwdSByZXNldCwgdGhpcyBpcyBvbmx5IHNlbnQgb25jZQorCSAqIGV2ZW4gd2hlbiBtdWx0aXBs ZSBlbmdpbmVzIGFyZSBodW5nLiBJdCBpcyBhbHNvIHNhZmUgdG8gbW92ZSB0aGlzCisJICogaGVy ZSBiZWNhdXNlIHdoZW4gd2UgYXJlIGluIHRoaXMgZnVuY3Rpb24sIHdlIHdpbGwgZGVmaW5pdGVs eQorCSAqIHBlcmZvcm0gZ3B1IHJlc2V0LgorCSAqLwogCWtvYmplY3RfdWV2ZW50X2Vudihrb2Jq LCBLT0JKX0NIQU5HRSwgcmVzZXRfZXZlbnQpOwogCiAJLyoKQEAgLTI2MTQsMzAgKzI2MjMsNTUg QEAgc3RhdGljIHZvaWQgaTkxNV9yZXNldF9hbmRfd2FrZXVwKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAkgKiBzaW11bGF0ZWQgcmVzZXQgdmlhIGRlYnVncywgc28gZ2V0IGFu IFJQTSByZWZlcmVuY2UuCiAJICovCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwot CWludGVsX3ByZXBhcmVfcmVzZXQoZGV2X3ByaXYpOwogCi0JZG8gewotCQkvKgotCQkgKiBBbGwg c3RhdGUgcmVzZXQgX211c3RfIGJlIGNvbXBsZXRlZCBiZWZvcmUgd2UgdXBkYXRlIHRoZQotCQkg KiByZXNldCBjb3VudGVyLCBmb3Igb3RoZXJ3aXNlIHdhaXRlcnMgbWlnaHQgbWlzcyB0aGUgcmVz ZXQKLQkJICogcGVuZGluZyBzdGF0ZSBhbmQgbm90IHByb3Blcmx5IGRyb3AgbG9ja3MsIHJlc3Vs dGluZyBpbgotCQkgKiBkZWFkbG9ja3Mgd2l0aCB0aGUgcmVzZXQgd29yay4KLQkJICovCi0JCWlm IChtdXRleF90cnlsb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCkpIHsKLQkJCWk5MTVf cmVzZXQoZGV2X3ByaXYpOwotCQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9t dXRleCk7CisJLyogSWYgaGFyZHdhcmUgc3VwcG9ydHMgaXQgKEdFTjgrKSwgdHJ5IGVuZ2luZSBy ZXNldCBmaXJzdCAqLworCWlmIChpbnRlbF9oYXNfZW5naW5lX3Jlc2V0KGRldl9wcml2KSkgewor CQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJCXVuc2lnbmVkIGludCB0bXAsIHJl dDsKKworCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZGV2X3ByaXYsIGVuZ2luZV9t YXNrLCB0bXApIHsKKwkJCXJldCA9IGk5MTVfcmVzZXRfZW5naW5lKGVuZ2luZSk7CisJCQkvKiBv biBmYWlsdXJlIGZhbGxiYWNrIHRvIGZ1bGwgZ3B1IHJlc2V0IGZvciByZWNvdmVyeSAqLworCQkJ aWYgKHJldCkKKwkJCQlicmVhazsKIAkJfQorCX0KIAotCQkvKiBXZSBuZWVkIHRvIHdhaXQgZm9y IGFueW9uZSBob2xkaW5nIHRoZSBsb2NrIHRvIHdha2V1cCAqLwotCX0gd2hpbGUgKHdhaXRfb25f Yml0X3RpbWVvdXQoJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MsCi0JCQkJICAgICBJOTE1X1JF U0VUX0lOX1BST0dSRVNTLAotCQkJCSAgICAgVEFTS19VTklOVEVSUlVQVElCTEUsCi0JCQkJICAg ICBIWikpOworCS8qCisJICogSWYgdGhlIHdhaXRlciBhbHJlYWR5IGhlbGQgdGhlIHN0cnVjdF9t dXRleCBsb2NrLCBpdCBtYXkgaGF2ZSBhbHJlYWR5CisJICogdHJpZ2dlcmVkIHRoZSBHUFUgcmVz ZXQgYW5kIHRoZSByZXNldF9pbl9wcm9ncmVzcyBjYW4gYmUgZmFsc2UuCisJICovCisJaWYgKGk5 MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoJmRldl9wcml2LT5ncHVfZXJyb3IpKSB7CisJCURSTV9ERUJV R19EUklWRVIoInJlc2V0dGluZyBjaGlwXG4iKTsKKwkJaW50ZWxfcHJlcGFyZV9yZXNldChkZXZf cHJpdik7CisKKwkJZG8geworCQkJLyoKKwkJCSAqIEFsbCBzdGF0ZSByZXNldCBfbXVzdF8gYmUg Y29tcGxldGVkIGJlZm9yZSB3ZSB1cGRhdGUKKwkJCSAqIHRoZSByZXNldCBjb3VudGVyLCBmb3Ig b3RoZXJ3aXNlIHdhaXRlcnMgbWlnaHQgbWlzcworCQkJICogdGhlIHJlc2V0IHBlbmRpbmcgc3Rh dGUgYW5kIG5vdCBwcm9wZXJseSBkcm9wIGxvY2tzLAorCQkJICogcmVzdWx0aW5nIGluIGRlYWRs b2NrcyB3aXRoIHRoZSByZXNldCB3b3JrLgorCQkJICovCisJCQlpZiAobXV0ZXhfdHJ5bG9jaygm ZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpKSB7CisJCQkJaTkxNV9yZXNldChkZXZfcHJpdik7 CisJCQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCQl9CisK KwkJCS8qCisJCQkgKiBXZSBuZWVkIHRvIHdhaXQgZm9yIGFueW9uZSBob2xkaW5nIHRoZSBsb2Nr IHRvCisJCQkgKiB3YWtldXAuCisJCQkgKi8KKwkJfSB3aGlsZSAod2FpdF9vbl9iaXRfdGltZW91 dCgmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncywKKwkJCQkJICAgICBJOTE1X1JFU0VUX0lOX1BS T0dSRVNTLAorCQkJCQkgICAgIFRBU0tfVU5JTlRFUlJVUFRJQkxFLAorCQkJCQkgICAgIEhaKSk7 CisKKwkJaW50ZWxfZmluaXNoX3Jlc2V0KGRldl9wcml2KTsKKwl9CiAKLQlpbnRlbF9maW5pc2hf cmVzZXQoZGV2X3ByaXYpOwogCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKIAotCWlm ICghdGVzdF9iaXQoSTkxNV9XRURHRUQsICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKSkKKwlp ZiAoIWk5MTVfdGVybWluYWxseV93ZWRnZWQoJmRldl9wcml2LT5ncHVfZXJyb3IpKQogCQlrb2Jq ZWN0X3VldmVudF9lbnYoa29iaiwKIAkJCQkgICBLT0JKX0NIQU5HRSwgcmVzZXRfZG9uZV9ldmVu dCk7CiAKQEAgLTI3MjgsOSArMjc2MiwxNSBAQCB2b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoIWVuZ2luZV9tYXNrKQogCQlyZXR1 cm47CiAKLQlpZiAodGVzdF9hbmRfc2V0X2JpdChJOTE1X1JFU0VUX0lOX1BST0dSRVNTLAotCQkJ ICAgICAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncykpCi0JCXJldHVybjsKKwkvKgorCSAqIEVu Z2luZSByZXNldCBzdXBwb3J0IGlzIG9ubHkgYXZhaWxhYmxlIGZyb20gR2VuOCBvbndhcmRzIHNv IGlmCisJICogaXQgaXMgbm90IGF2YWlsYWJsZSBvciBleHBsaWNpdHkgZGlzYWJsZWQsIHVzZSBm dWxsIGdwdSByZXNldC4KKwkgKi8KKwlpZiAoIWludGVsX2hhc19lbmdpbmVfcmVzZXQoZGV2X3By aXYpKSB7CisJCWlmICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVTRVRfSU5fUFJPR1JFU1MsCisJ CQkJICAgICAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncykpCisJCQlyZXR1cm47CisJfQogCiAJ LyoKIAkgKiBXYWtldXAgd2FpdGluZyBwcm9jZXNzZXMgc28gdGhhdCB0aGUgcmVzZXQgZnVuY3Rp b24KQEAgLTI3NDYsNyArMjc4Niw3IEBAIHZvaWQgaTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqLwogCWk5MTVfZXJyb3Jfd2FrZV91cChkZXZf cHJpdik7CiAKLQlpOTE1X3Jlc2V0X2FuZF93YWtldXAoZGV2X3ByaXYpOworCWk5MTVfcmVzZXRf YW5kX3dha2V1cChkZXZfcHJpdiwgZW5naW5lX21hc2spOwogfQogCiAvKiBDYWxsZWQgZnJvbSBk cm0gZ2VuZXJpYyBjb2RlLCBwYXNzZWQgJ2NydGMnIHdoaWNoCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2ku YwppbmRleCAzNzI0NGZhZDliMDMuLjZlOTcxNmFlNGMyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wY2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bj aS5jCkBAIC0zMDgsNyArMzA4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2Vf aW5mbyBpbnRlbF9oYXN3ZWxsX2luZm8gPSB7CiAJQkRXX0NPTE9SUywgXAogCS5oYXNfbG9naWNh bF9yaW5nX2NvbnRleHRzID0gMSwgXAogCS5oYXNfZnVsbF80OGJpdF9wcGd0dCA9IDEsIFwKLQku aGFzXzY0Yml0X3JlbG9jID0gMQorCS5oYXNfNjRiaXRfcmVsb2MgPSAxLCBcCisJLmhhc19lbmdp bmVfcmVzZXQgPSAxCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50 ZWxfYnJvYWR3ZWxsX2luZm8gPSB7CiAJQkRXX0ZFQVRVUkVTLApAQCAtMzM5LDYgKzM0MCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfY2hlcnJ5dmlld19p bmZvID0gewogCS5oYXNfZ21jaF9kaXNwbGF5ID0gMSwKIAkuaGFzX2FsaWFzaW5nX3BwZ3R0ID0g MSwKIAkuaGFzX2Z1bGxfcHBndHQgPSAxLAorCS5oYXNfZW5naW5lX3Jlc2V0ID0gMSwKIAkuZGlz cGxheV9tbWlvX29mZnNldCA9IFZMVl9ESVNQTEFZX0JBU0UsCiAJR0VOX0NIVl9QSVBFT0ZGU0VU UywKIAlDVVJTT1JfT0ZGU0VUUywKQEAgLTM5MCw2ICszOTIsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3NreWxha2VfZ3QzX2luZm8gPSB7CiAJLmhhc19h bGlhc2luZ19wcGd0dCA9IDEsIFwKIAkuaGFzX2Z1bGxfcHBndHQgPSAxLCBcCiAJLmhhc19mdWxs XzQ4Yml0X3BwZ3R0ID0gMSwgXAorCS5oYXNfZW5naW5lX3Jlc2V0ID0gMSwgXAogCUdFTl9ERUZB VUxUX1BJUEVPRkZTRVRTLCBcCiAJSVZCX0NVUlNPUl9PRkZTRVRTLCBcCiAJQkRXX0NPTE9SUwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwppbmRleCA4ZmM1ZjI5ZTc5YTguLjk3Y2UzMjQ1 NzBhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKQEAgLTE4NTEsNiArMTg1MSwx NyBAQCBib29sIGludGVsX2hhc19ncHVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCXJldHVybiBpbnRlbF9nZXRfZ3B1X3Jlc2V0KGRldl9wcml2KSAhPSBOVUxMOwog fQogCisvKgorICogV2hlbiBHdUMgc3VibWlzc2lvbiBpcyBlbmFibGVkLCBHdUMgbWFuYWdlcyBF TFNQIGFuZCBjYW4gaW5pdGlhdGUgdGhlCisgKiBlbmdpbmUgcmVzZXQgdG9vLiBGb3Igbm93LCBm YWxsIGJhY2sgdG8gZnVsbCBHUFUgcmVzZXQgaWYgaXQgaXMgZW5hYmxlZC4KKyAqLworYm9vbCBp bnRlbF9oYXNfZW5naW5lX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK K3sKKwlyZXR1cm4gKGRldl9wcml2LT5pbmZvLmhhc19lbmdpbmVfcmVzZXQgJiYKKwkJIWRldl9w cml2LT5ndWMuZXhlY2J1Zl9jbGllbnQgJiYKKwkJaTkxNS5yZXNldCA9PSAyKTsKK30KKwogaW50 IGludGVsX2d1Y19yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJ aW50IHJldDsKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==