From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun Siluvery Subject: [PATCH v2 04/15] drm/i915/tdr: Modify error handler for per engine hang recovery Date: Fri, 17 Jun 2016 08:09:04 +0100 Message-ID: <1466147355-4635-5-git-send-email-arun.siluvery@linux.intel.com> References: <1466147355-4635-1-git-send-email-arun.siluvery@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id D501B6EAE3 for ; Fri, 17 Jun 2016 07:09:27 +0000 (UTC) In-Reply-To: <1466147355-4635-1-git-send-email-arun.siluvery@linux.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 Cc: Ian Lister , Tomas Elf List-Id: intel-gfx@lists.freedesktop.org VGhpcyBpcyBhIHByZXBhcmF0b3J5IHBhdGNoIHdoaWNoIG1vZGlmaWVzIGVycm9yIGhhbmRsZXIg dG8gZG8gcGVyIGVuZ2luZQpoYW5nIHJlY292ZXJ5LiBUaGUgYWN0dWFsIHBhdGNoIHdoaWNoIGlt cGxlbWVudHMgdGhpcyBzZXF1ZW5jZSBmb2xsb3dzCmxhdGVyIGluIHRoZSBzZXJpZXMuIFRoZSBh aW0gaXMgdG8gcHJlcGFyZSBleGlzdGluZyByZWNvdmVyeSBmdW5jdGlvbiB0bwphZGFwdCB0byB0 aGlzIG5ldyBmdW5jdGlvbiB3aGVyZSBhcHBsaWNhYmxlICh3aGljaCBmYWlscyBhdCB0aGlzIHBv aW50CmJlY2F1c2UgY29yZSBpbXBsZW1lbnRhdGlvbiBpcyBsYWNraW5nKSBhbmQgY29udGludWUg cmVjb3ZlcnkgdXNpbmcgbGVnYWN5CmZ1bGwgZ3B1IHJlc2V0LgoKQSBoZWxwZXIgZnVuY3Rpb24g aXMgYWxzbyBhZGRlZCB0byBxdWVyeSB3aGV0aGVyIGVuZ2luZSByZXNldCBpcyBzdXBwb3J0ZWQK b3Igbm90LiBFbmdpbmUgcmVzZXQgYW5kIGZ1bGwgZ3B1IHJlc2V0IHNlY3Rpb25zIGFyZSBhbHNv IGV4dHJhY3RlZCB0bwpzZXBhcmF0ZSBmdW5jdGlvbnMsIGl0IGhlbHBzIHJlYWRhYmlsaXR5IGFu ZCBicmFuY2hpbmcgYmV0d2VlbiByZXNldCB0eXBlCnNpbXBsZXIuCgpUaGUgZXJyb3IgZXZlbnRz IGJlaGF2aW91ciB0aGF0IGFyZSB1c2VkIHRvIG5vdGlmeSB1c2VyIG9mIHJlc2V0IGFyZQphZGFw dGVkIHRvIGVuZ2luZSByZXNldCBzdWNoIHRoYXQgaXQgZG9lc24ndCBicmVhayB1c2VycyBsaXN0 ZW5pbmcgdG8gdGhlc2UKZXZlbnRzLiBJbiBsZWdhY3kgd2UgcmVwb3J0IGFuIGVycm9yIGV2ZW50 LCBhIHJlc2V0IGV2ZW50IGJlZm9yZSByZXNldHRpbmcKdGhlIGdwdSBhbmQgYSByZXNldCBkb25l IGV2ZW50IG1hcmtpbmcgdGhlIGNvbXBsZXRpb24gb2YgcmVzZXQuIFRoZSBzYW1lCmJlaGF2aW91 ciBpcyBhZGFwdGVkIGJ1dCByZXNldCBldmVudCBpcyBvbmx5IGRpc3BhdGNoZWQgb25jZSBldmVu IHdoZW4KbXVsdGlwbGUgZW5naW5lcyBhcmUgaHVuZy4gRmluYWxseSBvbmNlIHJlc2V0IGlzIGNv bXBsZXRlIHdlIHNlbmQgcmVzZXQKZG9uZSBldmVudCBhcyB1c3VhbC4KCkNjOiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3Vv cHBhbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJYW4gTGlzdGVyIDxpYW4ubGlz dGVyQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVG9tYXMgRWxmIDx0b21hcy5lbGZAaW50ZWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBBcnVuIFNpbHV2ZXJ5IDxhcnVuLnNpbHV2ZXJ5QGxpbnV4Lmlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICB8ICAyMyAr KysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAgMiArCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICB8IDIwNSArKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIHwgICA1 ICsKIDQgZmlsZXMgY2hhbmdlZCwgMTg4IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IDNlYjQ3ZmIuLmRmYWM4YjMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwpAQCAtMTAxMiw2ICsxMDEyLDI5IEBAIGVycm9yOgogCXJldHVybiByZXQ7 CiB9CiAKKy8qKgorICogaTkxNV9yZXNldF9lbmdpbmUgLSByZXNldCBHUFUgZW5naW5lIHRvIHJl Y292ZXIgZnJvbSBhIGhhbmcKKyAqIEBlbmdpbmU6IGVuZ2luZSB0byByZXNldAorICoKKyAqIFJl c2V0IGEgc3BlY2lmaWMgR1BVIGVuZ2luZS4gVXNlZnVsIGlmIGEgaGFuZyBpcyBkZXRlY3RlZC4K KyAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzZnVsIHJlc2V0IG9yIG90aGVyd2lzZSBhbiBlcnJv ciBjb2RlLgorICoKKyAqIFByb2NlZHVyZSBpcyBmYWlybHkgc2ltcGxlOgorICogIC0gZm9yY2Ug ZW5naW5lIHRvIGlkbGUKKyAqICAtIHNhdmUgY3VycmVudCBzdGF0ZSB3aGljaCBpbmNsdWRlcyBo ZWFkIGFuZCBjdXJyZW50IHJlcXVlc3QKKyAqICAtIHJlc2V0IGVuZ2luZQorICogIC0gcmVzdG9y ZSBzYXZlZCBzdGF0ZSBhbmQgcmVzdWJtaXQgY29udGV4dAorICovCitpbnQgaTkxNV9yZXNldF9l bmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCWludCByZXQ7CisKKwkv KiBGSVhNRTogcmVwbGFjZSBtZSB3aXRoIGVuZ2luZSByZXNldCBzZXF1ZW5jZSAqLworCXJldCA9 IC1FTk9ERVY7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50IGk5MTVfcGNpX3Byb2Jl KHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQog ewogCXN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW50ZWxfaW5mbyA9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCA5YWQxNWM3Li5iMzVjYTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK QEAgLTI5MDksNiArMjkwOSw4IEBAIGV4dGVybiBsb25nIGk5MTVfY29tcGF0X2lvY3RsKHN0cnVj dCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAogZXh0ZXJuIGludCBpbnRlbF9ncHVfcmVz ZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgZW5naW5lX21hc2spOwog ZXh0ZXJuIGJvb2wgaW50ZWxfaGFzX2dwdV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwogZXh0ZXJuIGludCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7CitleHRlcm4gYm9vbCBpbnRlbF9oYXNfZW5naW5lX3Jlc2V0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CitleHRlcm4gaW50IGk5MTVfcmVzZXRfZW5naW5l KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiBleHRlcm4gaW50IGludGVsX2d1Y19y ZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogZXh0ZXJuIHZvaWQgaW50 ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7 CiBleHRlcm4gdW5zaWduZWQgbG9uZyBpOTE1X2NoaXBzZXRfdmFsKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCAyMjRmZjJiLi4x OTkwOTUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTI1MTUsNiArMjUxNSw4OCBAQCBz dGF0aWMgdm9pZCBpOTE1X2Vycm9yX3dha2VfdXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCQl3YWtlX3VwX2FsbCgmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9xdWV1ZSk7 CiB9CiAKK3N0YXRpYyBpbnQgaTkxNV9yZXNldF9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisKKwlm b3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgeworCQlpbnQgcmV0OworCQlzdHJ1Y3Qg aTkxNV9ncHVfZXJyb3IgKmVycm9yID0gJmRldl9wcml2LT5ncHVfZXJyb3I7CisKKwkJaWYgKCFp OTE1X2VuZ2luZV9yZXNldF9pbl9wcm9ncmVzcyhlcnJvciwgZW5naW5lLT5pZCkpCisJCQljb250 aW51ZTsKKworCQlyZXQgPSBpOTE1X3Jlc2V0X2VuZ2luZShlbmdpbmUpOworCQlpZiAocmV0KSB7 CisJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplOworCisJCQlEUk1fRVJST1IoIlJlc2V0IG9m ICVzIGZhaWxlZCEgcmV0PSVkIiwKKwkJCQkgIGVuZ2luZS0+bmFtZSwgcmV0KTsKKworCQkJLyoK KwkJCSAqIHdoZW4gZW5naW5lIHJlc2V0IGZhaWxzIHdlIHN3aXRjaCB0byBmdWxsIGdwdSByZXNl dAorCQkJICogd2hpY2ggY2xlYXJzIGV2ZXJ5dGhpbmc7IEluIHRoZSBjYXNlIHdoZXJlIG11bHRp cGxlCisJCQkgKiBlbmdpbmVzIGFyZSBodW5nIHdlIHdvdWxkJ3ZlIGFscmVhZHkgc2NoZWR1bGVk IHdvcmsKKwkJCSAqIGl0ZW1zIGFuZCB3aGVuIHRoZXkgYXR0ZW1wdCB0byBkbyBlbmdpbmUgcmVz ZXQgdGhleQorCQkJICogd29uJ3QgZmluZCBhbnkgYWN0aXZlIHJlcXVlc3QgKGZ1bGwgZ3B1IHJl c2V0CisJCQkgKiB3b3VsZCd2ZSBjbGVhcmVkIGl0KS4gVG8gbWFrZSB0aGUgd29yayBpdGVtcyBl eGl0CisJCQkgKiBzYWZlbHksIGNsZWFyIGVuZ2luZSByZXNldCBwZW5kaW5nIG1hc2suCisJCQkg Ki8KKwkJCWZvcl9lYWNoX2VuZ2luZShlLCBkZXZfcHJpdikgeworCQkJCWlmIChpOTE1X2VuZ2lu ZV9yZXNldF9pbl9wcm9ncmVzcyhlcnJvciwgZS0+aWQpKQorCQkJCQlhdG9taWNfYW5kKH5JOTE1 X0VOR0lORV9SRVNFVF9JTl9QUk9HUkVTUywKKwkJCQkJCSAgICZlcnJvci0+ZW5naW5lX3Jlc2V0 X2NvdW50ZXJbZS0+aWRdKTsKKwkJCX0KKworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCWF0b21p Y19pbmMoJmVycm9yLT5lbmdpbmVfcmVzZXRfY291bnRlcltlbmdpbmUtPmlkXSk7CisJfQorCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTkxNV9yZXNldF9mdWxsKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yID0g JmRldl9wcml2LT5ncHVfZXJyb3I7CisJaW50IHJldDsKKworCS8qIGVuc3VyZSBkZXZpY2UgaXMg YXdha2UgKi8KKwlhc3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQoZGV2X3ByaXYpOworCisJaW50ZWxf cHJlcGFyZV9yZXNldChkZXZfcHJpdik7CisKKwkvKgorCSAqIEFsbCBzdGF0ZSByZXNldCBfbXVz dF8gYmUgY29tcGxldGVkIGJlZm9yZSB3ZSB1cGRhdGUgdGhlCisJICogcmVzZXQgY291bnRlciwg Zm9yIG90aGVyd2lzZSB3YWl0ZXJzIG1pZ2h0IG1pc3MgdGhlIHJlc2V0CisJICogcGVuZGluZyBz dGF0ZSBhbmQgbm90IHByb3Blcmx5IGRyb3AgbG9ja3MsIHJlc3VsdGluZyBpbgorCSAqIGRlYWRs b2NrcyB3aXRoIHRoZSByZXNldCB3b3JrLgorCSAqLworCXJldCA9IGk5MTVfcmVzZXQoZGV2X3By aXYpOworCisJaW50ZWxfZmluaXNoX3Jlc2V0KGRldl9wcml2KTsKKworCWlmIChyZXQgPT0gMCkg eworCQkvKgorCQkgKiBBZnRlciBhbGwgdGhlIGdlbSBzdGF0ZSBpcyByZXNldCwgaW5jcmVtZW50 IHRoZSByZXNldAorCQkgKiBjb3VudGVyIGFuZCB3YWtlIHVwIGV2ZXJ5b25lIHdhaXRpbmcgZm9y IHRoZSByZXNldCB0bworCQkgKiBjb21wbGV0ZS4KKwkJICoKKwkJICogU2luY2UgdW5sb2NrIG9w ZXJhdGlvbnMgYXJlIGEgb25lLXNpZGVkIGJhcnJpZXIgb25seSwKKwkJICogd2UgbmVlZCB0byBp bnNlcnQgYSBiYXJyaWVyIGhlcmUgdG8gb3JkZXIgYW55IHNlcW5vCisJCSAqIHVwZGF0ZXMgYmVm b3JlCisJCSAqIHRoZSBjb3VudGVyIGluY3JlbWVudC4KKwkJICovCisJCXNtcF9tYl9fYmVmb3Jl X2F0b21pYygpOworCQlhdG9taWNfaW5jKCZlcnJvci0+cmVzZXRfY291bnRlcik7CisJfSBlbHNl IHsKKwkJYXRvbWljX29yKEk5MTVfV0VER0VELCAmZXJyb3ItPnJlc2V0X2NvdW50ZXIpOworCX0K KworCXJldHVybiByZXQ7Cit9CisKIC8qKgogICogaTkxNV9lcnJvcl93b3JrX2Z1bmMgLSBkbyBw cm9jZXNzIGNvbnRleHQgZXJyb3IgaGFuZGxpbmcgd29yawogICogQHdvcms6IHdvcmsgaXRlbSBj b250YWluaW5nIGVycm9yIHN0cnVjdCwgcGFzc2VkIGJ5IHRoZSBlcnJvciBoYW5kbGVyCkBAIC0y NTI4LDYgKzI2MTAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2Vycm9yX3dvcmtfZnVuYyhzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCiAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3b3JrKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQogCSAg ICAgICAgY29udGFpbmVyX29mKGVycm9yLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgZ3B1X2Vy cm9yKTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKIAlzdHJ1Y3Qg a29iamVjdCAqa29iaiA9ICZkZXZfcHJpdi0+ZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqOwogCWNo YXIgKmVycm9yX2V2ZW50W10gPSB7IEk5MTVfRVJST1JfVUVWRU5UICI9MSIsIE5VTEwgfTsKIAlj aGFyICpyZXNldF9ldmVudFtdID0geyBJOTE1X1JFU0VUX1VFVkVOVCAiPTEiLCBOVUxMIH07CkBA IC0yNTM3LDYgKzI2MjAsMzkgQEAgc3RhdGljIHZvaWQgaTkxNV9lcnJvcl93b3JrX2Z1bmMoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWtvYmplY3RfdWV2ZW50X2Vudihrb2JqLCBLT0JKX0NI QU5HRSwgZXJyb3JfZXZlbnQpOwogCiAJLyoKKwkgKiBUaGlzIGV2ZW50IG5lZWRzIHRvIGJlIHNl bnQgYmVmb3JlIHBlcmZvcm1pbmcgZ3B1IHJlc2V0LiBXaGVuCisJICogZW5naW5lIHJlc2V0cyBh cmUgc3VwcG9ydGVkIHdlIGl0ZXJhdGUgdGhyb3VnaCBhbGwgZW5naW5lcyBhbmQKKwkgKiByZXNl dCBodW5nIGVuZ2luZXMgaW5kaXZpZHVhbGx5LiBUbyBrZWVwIHRoZSBldmVudCBkaXNwYXRjaAor CSAqIG1lY2hhbmlzbSBjb25zaXN0ZW50IHdpdGggZnVsbCBncHUgcmVzZXQsIHRoaXMgaXMgb25s eSBzZW50IG9uY2UKKwkgKiBldmVuIHdoZW4gbXVsdGlwbGUgZW5naW5lcyBhcmUgaHVuZy4gSXQg aXMgYWxzbyBzYWZlIHRvIG1vdmUgdGhpcworCSAqIGhlcmUgYmVjYXVzZSB3aGVuIHdlIGFyZSBp biB0aGlzIGZ1bmN0aW9uLCB3ZSB3aWxsIGRlZmluaXRlbHkKKwkgKiBwZXJmb3JtIGdwdSByZXNl dC4KKwkgKi8KKwlrb2JqZWN0X3VldmVudF9lbnYoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwg S09CSl9DSEFOR0UsIHJlc2V0X2V2ZW50KTsKKworCS8qCisJICogSW4gbW9zdCBjYXNlcyBpdCdz IGd1YXJhbnRlZWQgdGhhdCB3ZSBnZXQgaGVyZSB3aXRoIGFuIFJQTQorCSAqIHJlZmVyZW5jZSBo ZWxkLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHRoZXJlIGlzIGEgcGVuZGluZyBHUFUKKwkgKiByZXF1 ZXN0IHRoYXQgd29uJ3QgZmluaXNoIHVudGlsIHRoZSByZXNldCBpcyBkb25lLiBUaGlzCisJICog aXNuJ3QgdGhlIGNhc2UgYXQgbGVhc3Qgd2hlbiB3ZSBnZXQgaGVyZSBieSBkb2luZyBhCisJICog c2ltdWxhdGVkIHJlc2V0IHZpYSBkZWJ1Z3MsIHNvIGdldCBhbiBSUE0gcmVmZXJlbmNlLgorCSAq LworCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKworCW11dGV4X2xvY2soJmRldi0+ c3RydWN0X211dGV4KTsKKworCWlmICghaTkxNV9yZXNldF9pbl9wcm9ncmVzcyhlcnJvcikpIHsK KwkJcmV0ID0gaTkxNV9yZXNldF9lbmdpbmVzKGRldl9wcml2KTsKKwkJaWYgKHJldCkgeworCQkJ LyogYXR0ZW1wdCBmdWxsIGdwdSByZXNldCB0byByZWNvdmVyICovCisJCQlhdG9taWNfb3IoSTkx NV9SRVNFVF9JTl9QUk9HUkVTU19GTEFHLAorCQkJCSAgJmRldl9wcml2LT5ncHVfZXJyb3IucmVz ZXRfY291bnRlcik7CisJCX0KKwl9CisKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4 KTsKKworCS8qCiAJICogTm90ZSB0aGF0IHRoZXJlJ3Mgb25seSBvbmUgd29yayBpdGVtIHdoaWNo IGRvZXMgZ3B1IHJlc2V0cywgc28gd2UKIAkgKiBuZWVkIG5vdCB3b3JyeSBhYm91dCBjb25jdXJy ZW50IGdwdSByZXNldHMgcG90ZW50aWFsbHkgaW5jcmVtZW50aW5nCiAJICogZXJyb3ItPnJlc2V0 X2NvdW50ZXIgdHdpY2UuIFdlIG9ubHkgbmVlZCB0byB0YWtlIGNhcmUgb2YgYW5vdGhlcgpAQCAt MjU0OCw0MSArMjY2NCwyMSBAQCBzdGF0aWMgdm9pZCBpOTE1X2Vycm9yX3dvcmtfZnVuYyhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJICovCiAJaWYgKGk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3Mo JmRldl9wcml2LT5ncHVfZXJyb3IpKSB7CiAJCURSTV9ERUJVR19EUklWRVIoInJlc2V0dGluZyBj aGlwXG4iKTsKLQkJa29iamVjdF91ZXZlbnRfZW52KGtvYmosIEtPQkpfQ0hBTkdFLCByZXNldF9l dmVudCk7Ci0KLQkJLyoKLQkJICogSW4gbW9zdCBjYXNlcyBpdCdzIGd1YXJhbnRlZWQgdGhhdCB3 ZSBnZXQgaGVyZSB3aXRoIGFuIFJQTQotCQkgKiByZWZlcmVuY2UgaGVsZCwgZm9yIGV4YW1wbGUg YmVjYXVzZSB0aGVyZSBpcyBhIHBlbmRpbmcgR1BVCi0JCSAqIHJlcXVlc3QgdGhhdCB3b24ndCBm aW5pc2ggdW50aWwgdGhlIHJlc2V0IGlzIGRvbmUuIFRoaXMKLQkJICogaXNuJ3QgdGhlIGNhc2Ug YXQgbGVhc3Qgd2hlbiB3ZSBnZXQgaGVyZSBieSBkb2luZyBhCi0JCSAqIHNpbXVsYXRlZCByZXNl dCB2aWEgZGVidWdzLCBzbyBnZXQgYW4gUlBNIHJlZmVyZW5jZS4KLQkJICovCi0JCWludGVsX3J1 bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKLQotCQlpbnRlbF9wcmVwYXJlX3Jlc2V0KGRldl9wcml2 KTsKLQotCQkvKgotCQkgKiBBbGwgc3RhdGUgcmVzZXQgX211c3RfIGJlIGNvbXBsZXRlZCBiZWZv cmUgd2UgdXBkYXRlIHRoZQotCQkgKiByZXNldCBjb3VudGVyLCBmb3Igb3RoZXJ3aXNlIHdhaXRl cnMgbWlnaHQgbWlzcyB0aGUgcmVzZXQKLQkJICogcGVuZGluZyBzdGF0ZSBhbmQgbm90IHByb3Bl cmx5IGRyb3AgbG9ja3MsIHJlc3VsdGluZyBpbgotCQkgKiBkZWFkbG9ja3Mgd2l0aCB0aGUgcmVz ZXQgd29yay4KLQkJICovCi0JCXJldCA9IGk5MTVfcmVzZXQoZGV2X3ByaXYpOwotCi0JCWludGVs X2ZpbmlzaF9yZXNldChkZXZfcHJpdik7CiAKLQkJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3By aXYpOwotCi0JCWlmIChyZXQgPT0gMCkKLQkJCWtvYmplY3RfdWV2ZW50X2Vudihrb2JqLAotCQkJ CQkgICBLT0JKX0NIQU5HRSwgcmVzZXRfZG9uZV9ldmVudCk7CisJCXJldCA9IGk5MTVfcmVzZXRf ZnVsbChkZXZfcHJpdik7CisJfQogCi0JCS8qCi0JCSAqIE5vdGU6IFRoZSB3YWtlX3VwIGFsc28g c2VydmVzIGFzIGEgbWVtb3J5IGJhcnJpZXIgc28gdGhhdAotCQkgKiB3YWl0ZXJzIHNlZSB0aGUg dXBkYXRlIHZhbHVlIG9mIHRoZSByZXNldCBjb3VudGVyIGF0b21pY190LgotCQkgKi8KKwkvKgor CSAqIE5vdGU6IFRoZSB3YWtlX3VwIGFsc28gc2VydmVzIGFzIGEgbWVtb3J5IGJhcnJpZXIgc28g dGhhdAorCSAqIHdhaXRlcnMgc2VlIHRoZSB1cGRhdGUgdmFsdWUgb2YgdGhlIHJlc2V0IGNvdW50 ZXIgYXRvbWljX3QuCisJICovCisJaWYgKCFpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGVycm9yKSkg ewogCQlpOTE1X2Vycm9yX3dha2VfdXAoZGV2X3ByaXYsIHRydWUpOworCQlrb2JqZWN0X3VldmVu dF9lbnYoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwKKwkJCQkgICBLT0JKX0NIQU5HRSwgcmVz ZXRfZG9uZV9ldmVudCk7CiAJfQorCisJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwog fQogCiBzdGF0aWMgdm9pZCBpOTE1X3JlcG9ydF9hbmRfY2xlYXJfZWlyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTI2ODAsNiArMjc3Niw4IEBAIHN0YXRpYyB2b2lkIGk5 MTVfcmVwb3J0X2FuZF9jbGVhcl9laXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogICogaTkxNV9oYW5kbGVfZXJyb3IgLSBoYW5kbGUgYSBncHUgZXJyb3IKICAqIEBkZXZfcHJp djogaTkxNSBkZXZpY2UgcHJpdmF0ZQogICogQGVuZ2luZV9tYXNrOiBtYXNrIHJlcHJlc2VudGlu ZyBlbmdpbmVzIHRoYXQgYXJlIGh1bmcKKyAqIEBmbXQ6IGZvcm1hdHRlZCBoYW5nIG1zZyB0aGF0 IGdldHMgbG9nZ2VkIGluIGNhcHR1cmVkIGVycm9yIHN0YXRlCisgKgogICogRG8gc29tZSBiYXNp YyBjaGVja2luZyBvZiByZWdpc3RlciBzdGF0ZSBhdCBlcnJvciB0aW1lIGFuZAogICogZHVtcCBp dCB0byB0aGUgc3lzbG9nLiAgQWxzbyBjYWxsIGk5MTVfY2FwdHVyZV9lcnJvcl9zdGF0ZSgpIHRv IG1ha2UKICAqIHN1cmUgd2UgZ2V0IGEgcmVjb3JkIGFuZCBtYWtlIGl0IGF2YWlsYWJsZSBpbiBk ZWJ1Z2ZzLiAgRmlyZSBhIHVldmVudApAQCAtMjcwMiwyNiArMjgwMCwzOSBAQCB2b2lkIGk5MTVf aGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpOTE1X3Jl cG9ydF9hbmRfY2xlYXJfZWlyKGRldl9wcml2KTsKIAogCWlmIChlbmdpbmVfbWFzaykgewotCQlh dG9taWNfb3IoSTkxNV9SRVNFVF9JTl9QUk9HUkVTU19GTEFHLAotCQkJCSZkZXZfcHJpdi0+Z3B1 X2Vycm9yLnJlc2V0X2NvdW50ZXIpOworCQlpZiAoaW50ZWxfaGFzX2VuZ2luZV9yZXNldChkZXZf cHJpdikpIHsKKwkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwkJCXN0cnVjdCBp OTE1X2dwdV9lcnJvciAqZXJyb3IgPSAmZGV2X3ByaXYtPmdwdV9lcnJvcjsKIAotCQkvKgotCQkg KiBXYWtldXAgd2FpdGluZyBwcm9jZXNzZXMgc28gdGhhdCB0aGUgcmVzZXQgZnVuY3Rpb24KLQkJ ICogaTkxNV9yZXNldF9hbmRfd2FrZXVwIGRvZXNuJ3QgZGVhZGxvY2sgdHJ5aW5nIHRvIGdyYWIK LQkJICogdmFyaW91cyBsb2Nrcy4gQnkgYnVtcGluZyB0aGUgcmVzZXQgY291bnRlciBmaXJzdCwg dGhlIHdva2VuCi0JCSAqIHByb2Nlc3NlcyB3aWxsIHNlZSBhIHJlc2V0IGluIHByb2dyZXNzIGFu ZCBiYWNrIG9mZiwKLQkJICogcmVsZWFzaW5nIHRoZWlyIGxvY2tzIGFuZCB0aGVuIHdhaXQgZm9y IHRoZSByZXNldCBjb21wbGV0aW9uLgotCQkgKiBXZSBtdXN0IGRvIHRoaXMgZm9yIF9hbGxfIGdw dSB3YWl0ZXJzIHRoYXQgbWlnaHQgaG9sZCBsb2NrcwotCQkgKiB0aGF0IHRoZSByZXNldCB3b3Jr IG5lZWRzIHRvIGFjcXVpcmUuCi0JCSAqCi0JCSAqIE5vdGU6IFRoZSB3YWtlX3VwIHNlcnZlcyBh cyB0aGUgcmVxdWlyZWQgbWVtb3J5IGJhcnJpZXIgdG8KLQkJICogZW5zdXJlIHRoYXQgdGhlIHdh aXRlcnMgc2VlIHRoZSB1cGRhdGVkIHZhbHVlIG9mIHRoZSByZXNldAotCQkgKiBjb3VudGVyIGF0 b21pY190LgotCQkgKi8KLQkJaTkxNV9lcnJvcl93YWtlX3VwKGRldl9wcml2LCBmYWxzZSk7CisJ CQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZGV2X3ByaXYsIGVuZ2luZV9tYXNrKSB7 CisJCQkJaWYgKGk5MTVfZW5naW5lX3Jlc2V0X2luX3Byb2dyZXNzKGVycm9yLCBlbmdpbmUtPmlk KSkKKwkJCQkJY29udGludWU7CisKKwkJCQlhdG9taWNfb3IoSTkxNV9FTkdJTkVfUkVTRVRfSU5f UFJPR1JFU1MsCisJCQkJCSAgJmVycm9yLT5lbmdpbmVfcmVzZXRfY291bnRlcltlbmdpbmUtPmlk XSk7CisJCQl9CisJCX0gZWxzZSB7CisJCQlhdG9taWNfb3IoSTkxNV9SRVNFVF9JTl9QUk9HUkVT U19GTEFHLAorCQkJCSAgJmRldl9wcml2LT5ncHVfZXJyb3IucmVzZXRfY291bnRlcik7CisJCX0K IAl9CiAKIAkvKgorCSAqIFdha2V1cCB3YWl0aW5nIHByb2Nlc3NlcyBzbyB0aGF0IHRoZSByZXNl dCBmdW5jdGlvbgorCSAqIGk5MTVfcmVzZXRfYW5kX3dha2V1cCBkb2Vzbid0IGRlYWRsb2NrIHRy eWluZyB0byBncmFiCisJICogdmFyaW91cyBsb2Nrcy4gQnkgYnVtcGluZyB0aGUgcmVzZXQgY291 bnRlciBmaXJzdCwgdGhlIHdva2VuCisJICogcHJvY2Vzc2VzIHdpbGwgc2VlIGEgcmVzZXQgaW4g cHJvZ3Jlc3MgYW5kIGJhY2sgb2ZmLAorCSAqIHJlbGVhc2luZyB0aGVpciBsb2NrcyBhbmQgdGhl biB3YWl0IGZvciB0aGUgcmVzZXQgY29tcGxldGlvbi4KKwkgKiBXZSBtdXN0IGRvIHRoaXMgZm9y IF9hbGxfIGdwdSB3YWl0ZXJzIHRoYXQgbWlnaHQgaG9sZCBsb2NrcworCSAqIHRoYXQgdGhlIHJl c2V0IHdvcmsgbmVlZHMgdG8gYWNxdWlyZS4KKwkgKgorCSAqIE5vdGU6IFRoZSB3YWtlX3VwIHNl cnZlcyBhcyB0aGUgcmVxdWlyZWQgbWVtb3J5IGJhcnJpZXIgdG8KKwkgKiBlbnN1cmUgdGhhdCB0 aGUgd2FpdGVycyBzZWUgdGhlIHVwZGF0ZWQgdmFsdWUgb2YgdGhlIHJlc2V0CisJICogY291bnRl ciBhdG9taWNfdC4KKwkgKi8KKwlpOTE1X2Vycm9yX3dha2VfdXAoZGV2X3ByaXYsIGZhbHNlKTsK KworCS8qCiAJICogT3VyIHJlc2V0IHdvcmsgY2FuIGdyYWIgbW9kZXNldCBsb2NrcyAoc2luY2Ug aXQgbmVlZHMgdG8gcmVzZXQgdGhlCiAJICogc3RhdGUgb2Ygb3V0c3RhbmRpbmcgcGFnZWZsaXBz KS4gSGVuY2UgaXQgbXVzdCBub3QgYmUgcnVuIG9uIG91ciBvd24KIAkgKiBkZXYtcHJpdi0+d3Eg d29yayBxdWV1ZSBmb3Igb3RoZXJ3aXNlIHRoZSBmbHVzaF93b3JrIGluIHRoZSBwYWdlZmxpcApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwppbmRleCBjMWNhNDU4Li5kOTczYzJhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwpAQCAtMTcxMCw2ICsxNzEwLDExIEBAIGJvb2wg aW50ZWxfaGFzX2dwdV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ cmV0dXJuIGludGVsX2dldF9ncHVfcmVzZXQoZGV2X3ByaXYpICE9IE5VTEw7CiB9CiAKK2Jvb2wg aW50ZWxfaGFzX2VuZ2luZV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cit7CisJcmV0dXJuIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49OCAmJiBpOTE1LnJlc2V0 ID09IDIpOworfQorCiBpbnQgaW50ZWxfZ3VjX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKIAlpbnQgcmV0OwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=