From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915: Convert trace-irq to the breadcrumb waiter Date: Mon, 30 Nov 2015 15:45:18 +0000 Message-ID: <1448898318-24502-1-git-send-email-chris@chris-wilson.co.uk> References: <1448786893-2522-9-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 fireflyinternet.com (mail.fireflyinternet.com [87.106.93.118]) by gabe.freedesktop.org (Postfix) with ESMTP id 1DED06E5FB for ; Mon, 30 Nov 2015 07:45:33 -0800 (PST) In-Reply-To: <1448786893-2522-9-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 List-Id: intel-gfx@lists.freedesktop.org SWYgd2UgY29udmVydCB0aGUgdHJhY2luZyBvdmVyIGZyb20gZGlyZWN0IHVzZSBvZiByaW5nLT5p cnFfZ2V0KCkgYW5kCm92ZXIgdG8gdGhlIGJyZWFkY3J1bWIgaW5mcmFzdHJ1Y3R1cmUsIHdlIG9u bHkgaGF2ZSBhIHNpbmdsZSB1c2VyIG9mIHRoZQpyaW5nLT5pcnFfZ2V0IGFuZCBzbyBjYW4gc2lt cGxpZnkgdGhlIGRyaXZlciByb3V0aW5lcyAoZWxpbWluYXRpbmcgdGhlCnJlZHVuZGFudCB2YWxp ZGF0aW9uIGFuZCBpcnEgcmVmY291bnRpbmcpLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVt YnMuYyB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICB8 ICAyNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgIHwgMjEw ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaCAgfCAgIDMgKy0KIDYgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9u cygrKSwgMTU5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGY1MGFh NTgwZTBiNS4uZTRkM2FiZTI0OTUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTM2Mzks OCArMzYzOSwxMCBAQCB3YWl0X3JlbWFpbmluZ19tc19mcm9tX2ppZmZpZXModW5zaWduZWQgbG9u ZyB0aW1lc3RhbXBfamlmZmllcywgaW50IHRvX3dhaXRfbXMpCiBzdGF0aWMgaW5saW5lIHZvaWQg aTkxNV90cmFjZV9pcnFfZ2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQkJICAg ICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0JaWYgKHJpbmctPnRyYWNl X2lycV9yZXEgPT0gTlVMTCAmJiByaW5nLT5pcnFfZ2V0KHJpbmcpKQorCWlmIChyaW5nLT50cmFj ZV9pcnFfcmVxID09IE5VTEwpIHsKIAkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJnJpbmctPnRy YWNlX2lycV9yZXEsIHJlcSk7CisJCWludGVsX2JyZWFkY3J1bWJzX2FkZF93YWl0ZXIocmVxKTsK Kwl9CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggMGFmY2JlZjdmZjVm Li41OTAyYmNkODcxNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMjg3Niw3ICsyODc2 LDcgQEAgaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZykKIAogCWlmICh1bmxpa2VseShyaW5nLT50cmFjZV9pcnFfcmVxICYmCiAJCSAgICAg aTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmluZy0+dHJhY2VfaXJxX3JlcSkpKSB7Ci0JCXJp bmctPmlycV9wdXQocmluZyk7CisJCWludGVsX2JyZWFkY3J1bWJzX3JlbW92ZV93YWl0ZXIocmlu Zy0+dHJhY2VfaXJxX3JlcSk7CiAJCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZyaW5nLT50cmFj ZV9pcnFfcmVxLCBOVUxMKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2JyZWFkY3J1bWJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNy dW1icy5jCmluZGV4IDY5MDkxZjVhZTBmNS4uNWY2NTkwNzlhYzFjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKQEAgLTM0LDcgKzM0LDggQEAgc3RhdGljIGJvb2wg X19pcnFfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpZiAoIWludGVs X2lycXNfZW5hYmxlZChlbmdpbmUtPmk5MTUpKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlyZXR1cm4g ZW5naW5lLT5pcnFfZ2V0KGVuZ2luZSk7CisJZW5naW5lLT5pcnFfZ2V0KGVuZ2luZSk7CisJcmV0 dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRvX3Jl cXVlc3Qoc3RydWN0IHJiX25vZGUgKnJiKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBj NDU3ZGQwMzU5MDAuLjg4NDJlYTBiNTNmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAg LTE2MjAsMjMgKzE2MjAsMTUgQEAgc3RhdGljIGludCBnZW44X2VtaXRfYmJfc3RhcnQoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBib29s IGdlbjhfbG9naWNhbF9yaW5nX2dldF9pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykK K3N0YXRpYyB2b2lkIGdlbjhfbG9naWNhbF9yaW5nX2dldF9pcnEoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdW5z aWduZWQgbG9uZyBmbGFnczsKLQotCWlmIChXQVJOX09OKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2 X3ByaXYpKSkKLQkJcmV0dXJuIGZhbHNlOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2 LT5pcnFfbG9jaywgZmxhZ3MpOwotCWlmIChyaW5nLT5pcnFfcmVmY291bnQrKyA9PSAwKSB7Ci0J CUk5MTVfV1JJVEVfSU1SKHJpbmcsIH4ocmluZy0+aXJxX2VuYWJsZV9tYXNrIHwgcmluZy0+aXJx X2tlZXBfbWFzaykpOwotCQlQT1NUSU5HX1JFQUQoUklOR19JTVIocmluZy0+bW1pb19iYXNlKSk7 Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3Mp OwogCi0JcmV0dXJuIHRydWU7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsK KwlJOTE1X1dSSVRFX0lNUihyaW5nLCB+KHJpbmctPmlycV9lbmFibGVfbWFzayB8IHJpbmctPmly cV9rZWVwX21hc2spKTsKKwlQT1NUSU5HX1JFQUQoUklOR19JTVIocmluZy0+bW1pb19iYXNlKSk7 CisJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogfQogCiBzdGF0aWMgdm9p ZCBnZW44X2xvZ2ljYWxfcmluZ19wdXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcp CkBAIC0xNjQ2LDEwICsxNjM4LDggQEAgc3RhdGljIHZvaWQgZ2VuOF9sb2dpY2FsX3JpbmdfcHV0 X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Ci0JaWYg KC0tcmluZy0+aXJxX3JlZmNvdW50ID09IDApIHsKLQkJSTkxNV9XUklURV9JTVIocmluZywgfnJp bmctPmlycV9rZWVwX21hc2spOwotCQlQT1NUSU5HX1JFQUQoUklOR19JTVIocmluZy0+bW1pb19i YXNlKSk7Ci0JfQorCUk5MTVfV1JJVEVfSU1SKHJpbmcsIH5yaW5nLT5pcnFfa2VlcF9tYXNrKTsK KwlQT1NUSU5HX1JFQUQoUklOR19JTVIocmluZy0+bW1pb19iYXNlKSk7CiAJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7CiB9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBjY2NlYjQzZjE0YWMuLjJjNmY3NGMwMDRj YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtMTUwNCwyMiAr MTUwNCwxNSBAQCBnZW42X3NlcW5vX2JhcnJpZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZykKIAlpbnRlbF9mbHVzaF9zdGF0dXNfcGFnZShyaW5nLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwog fQogCi1zdGF0aWMgYm9vbAorc3RhdGljIHZvaWQKIGdlbjVfcmluZ19nZXRfaXJxKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmct PmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlpZiAoV0FSTl9PTighaW50ZWxfaXJxc19l bmFibGVkKGRldl9wcml2KSkpCi0JCXJldHVybiBmYWxzZTsKLQotCXNwaW5fbG9ja19pcnFzYXZl KCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKLQlpZiAocmluZy0+aXJxX3JlZmNvdW50Kysg PT0gMCkKLQkJZ2VuNV9lbmFibGVfZ3RfaXJxKGRldl9wcml2LCByaW5nLT5pcnFfZW5hYmxlX21h c2spOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3Mp OwogCi0JcmV0dXJuIHRydWU7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsK KwlnZW41X2VuYWJsZV9ndF9pcnEoZGV2X3ByaXYsIHJpbmctPmlycV9lbmFibGVfbWFzayk7CisJ c3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogfQogCiBzdGF0aWMgdm9pZApA QCAtMTUyNywzMyArMTUyMCwyMyBAQCBnZW41X3JpbmdfcHV0X2lycShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1 bnNpZ25lZCBsb25nIGZsYWdzOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFf bG9jaywgZmxhZ3MpOwotCWlmICgtLXJpbmctPmlycV9yZWZjb3VudCA9PSAwKQotCQlnZW41X2Rp c2FibGVfZ3RfaXJxKGRldl9wcml2LCByaW5nLT5pcnFfZW5hYmxlX21hc2spOwotCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19p cnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJZ2VuNV9kaXNhYmxlX2d0X2lycShkZXZfcHJpdiwg cmluZy0+aXJxX2VuYWJsZV9tYXNrKTsKKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFf bG9jayk7CiB9CiAKLXN0YXRpYyBib29sCitzdGF0aWMgdm9pZAogaTl4eF9yaW5nX2dldF9pcnEo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gcmluZy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCWlmICghaW50ZWxfaXJxc19l bmFibGVkKGRldl9wcml2KSkKLQkJcmV0dXJuIGZhbHNlOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUo JmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOwotCWlmIChyaW5nLT5pcnFfcmVmY291bnQrKyA9 PSAwKSB7Ci0JCWRldl9wcml2LT5pcnFfbWFzayAmPSB+cmluZy0+aXJxX2VuYWJsZV9tYXNrOwot CQlJOTE1X1dSSVRFKElNUiwgZGV2X3ByaXYtPmlycV9tYXNrKTsKLQkJUE9TVElOR19SRUFEKElN Uik7Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxh Z3MpOwotCi0JcmV0dXJuIHRydWU7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2Nr KTsKKwlkZXZfcHJpdi0+aXJxX21hc2sgJj0gfnJpbmctPmlycV9lbmFibGVfbWFzazsKKwlJOTE1 X1dSSVRFKElNUiwgZGV2X3ByaXYtPmlycV9tYXNrKTsKKwlQT1NUSU5HX1JFQUQoSU1SKTsKKwlz cGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiB9CiAKIHN0YXRpYyB2b2lkCkBA IC0xNTYxLDM2ICsxNTQ0LDI1IEBAIGk5eHhfcmluZ19wdXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXVu c2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9s b2NrLCBmbGFncyk7Ci0JaWYgKC0tcmluZy0+aXJxX3JlZmNvdW50ID09IDApIHsKLQkJZGV2X3By aXYtPmlycV9tYXNrIHw9IHJpbmctPmlycV9lbmFibGVfbWFzazsKLQkJSTkxNV9XUklURShJTVIs IGRldl9wcml2LT5pcnFfbWFzayk7Ci0JCVBPU1RJTkdfUkVBRChJTVIpOwotCX0KLQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tf aXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCWRldl9wcml2LT5pcnFfbWFzayB8PSByaW5nLT5p cnFfZW5hYmxlX21hc2s7CisJSTkxNV9XUklURShJTVIsIGRldl9wcml2LT5pcnFfbWFzayk7CisJ UE9TVElOR19SRUFEKElNUik7CisJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2sp OwogfQogCi1zdGF0aWMgYm9vbAorc3RhdGljIHZvaWQKIGk4eHhfcmluZ19nZXRfaXJxKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHJp bmctPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlpZiAoIWludGVsX2lycXNfZW5hYmxl ZChkZXZfcHJpdikpCi0JCXJldHVybiBmYWxzZTsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZf cHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKLQlpZiAocmluZy0+aXJxX3JlZmNvdW50KysgPT0gMCkg ewotCQlkZXZfcHJpdi0+aXJxX21hc2sgJj0gfnJpbmctPmlycV9lbmFibGVfbWFzazsKLQkJSTkx NV9XUklURTE2KElNUiwgZGV2X3ByaXYtPmlycV9tYXNrKTsKLQkJUE9TVElOR19SRUFEMTYoSU1S KTsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFn cyk7Ci0KLQlyZXR1cm4gdHJ1ZTsKKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2sp OworCWRldl9wcml2LT5pcnFfbWFzayAmPSB+cmluZy0+aXJxX2VuYWJsZV9tYXNrOworCUk5MTVf V1JJVEUxNihJTVIsIGRldl9wcml2LT5pcnFfbWFzayk7CisJUE9TVElOR19SRUFEMTYoSU1SKTsK KwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiB9CiAKIHN0YXRpYyB2b2lk CkBAIC0xNTk4LDE1ICsxNTcwLDEyIEBAIGk4eHhfcmluZ19wdXRfaXJxKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwot CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmly cV9sb2NrLCBmbGFncyk7Ci0JaWYgKC0tcmluZy0+aXJxX3JlZmNvdW50ID09IDApIHsKLQkJZGV2 X3ByaXYtPmlycV9tYXNrIHw9IHJpbmctPmlycV9lbmFibGVfbWFzazsKLQkJSTkxNV9XUklURTE2 KElNUiwgZGV2X3ByaXYtPmlycV9tYXNrKTsKLQkJUE9TVElOR19SRUFEMTYoSU1SKTsKLQl9Ci0J c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7CisJc3Bp bl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlkZXZfcHJpdi0+aXJxX21hc2sgfD0g cmluZy0+aXJxX2VuYWJsZV9tYXNrOworCUk5MTVfV1JJVEUxNihJTVIsIGRldl9wcml2LT5pcnFf bWFzayk7CisJUE9TVElOR19SRUFEMTYoSU1SKTsKKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2 LT5pcnFfbG9jayk7CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTE2NDYsMjkgKzE2MTUsMjEgQEAgaTl4 eF9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAlyZXR1cm4g MDsKIH0KIAotc3RhdGljIGJvb2wKK3N0YXRpYyB2b2lkCiBnZW42X3JpbmdfZ2V0X2lycShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBy aW5nLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JaWYgKFdBUk5fT04oIWludGVsX2ly cXNfZW5hYmxlZChkZXZfcHJpdikpKQotCQlyZXR1cm4gZmFsc2U7CiAKLQlzcGluX2xvY2tfaXJx c2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Ci0JaWYgKHJpbmctPmlycV9yZWZjb3Vu dCsrID09IDApIHsKLQkJaWYgKEhBU19MM19EUEYoZGV2KSAmJiByaW5nLT5pZCA9PSBSQ1MpCi0J CQlJOTE1X1dSSVRFX0lNUihyaW5nLAotCQkJCSAgICAgICB+KHJpbmctPmlycV9lbmFibGVfbWFz ayB8Ci0JCQkJCSBHVF9QQVJJVFlfRVJST1IoZGV2KSkpOwotCQllbHNlCi0JCQlJOTE1X1dSSVRF X0lNUihyaW5nLCB+cmluZy0+aXJxX2VuYWJsZV9tYXNrKTsKLQkJZ2VuNV9lbmFibGVfZ3RfaXJx KGRldl9wcml2LCByaW5nLT5pcnFfZW5hYmxlX21hc2spOwotCX0KLQlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKLQotCXJldHVybiB0cnVlOworCXNw aW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJaWYgKEhBU19MM19EUEYoZGV2KSAm JiByaW5nLT5pZCA9PSBSQ1MpCisJCUk5MTVfV1JJVEVfSU1SKHJpbmcsCisJCQkgICAgICAgfihy aW5nLT5pcnFfZW5hYmxlX21hc2sgfAorCQkJCSBHVF9QQVJJVFlfRVJST1IoZGV2KSkpOworCWVs c2UKKwkJSTkxNV9XUklURV9JTVIocmluZywgfnJpbmctPmlycV9lbmFibGVfbWFzayk7CisJZ2Vu NV9lbmFibGVfZ3RfaXJxKGRldl9wcml2LCByaW5nLT5pcnFfZW5hYmxlX21hc2spOworCXNwaW5f dW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTE2 NzYsMzcgKzE2MzcsMjYgQEAgZ2VuNl9yaW5nX3B1dF9pcnEoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2OwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdW5zaWdu ZWQgbG9uZyBmbGFnczsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ss IGZsYWdzKTsKLQlpZiAoLS1yaW5nLT5pcnFfcmVmY291bnQgPT0gMCkgewotCQlpZiAoSEFTX0wz X0RQRihkZXYpICYmIHJpbmctPmlkID09IFJDUykKLQkJCUk5MTVfV1JJVEVfSU1SKHJpbmcsIH5H VF9QQVJJVFlfRVJST1IoZGV2KSk7Ci0JCWVsc2UKLQkJCUk5MTVfV1JJVEVfSU1SKHJpbmcsIH4w KTsKLQkJZ2VuNV9kaXNhYmxlX2d0X2lycShkZXZfcHJpdiwgcmluZy0+aXJxX2VuYWJsZV9tYXNr KTsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFn cyk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlpZiAoSEFTX0wzX0RQ RihkZXYpICYmIHJpbmctPmlkID09IFJDUykKKwkJSTkxNV9XUklURV9JTVIocmluZywgfkdUX1BB UklUWV9FUlJPUihkZXYpKTsKKwllbHNlCisJCUk5MTVfV1JJVEVfSU1SKHJpbmcsIH4wKTsKKwln ZW41X2Rpc2FibGVfZ3RfaXJxKGRldl9wcml2LCByaW5nLT5pcnFfZW5hYmxlX21hc2spOworCXNw aW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIH0KIAotc3RhdGljIGJvb2wKK3N0 YXRpYyB2b2lkCiBoc3dfdmVib3hfZ2V0X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNpZ25lZCBsb25n IGZsYWdzOwotCi0JaWYgKFdBUk5fT04oIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpKQot CQlyZXR1cm4gZmFsc2U7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2Nr LCBmbGFncyk7Ci0JaWYgKHJpbmctPmlycV9yZWZjb3VudCsrID09IDApIHsKLQkJSTkxNV9XUklU RV9JTVIocmluZywgfnJpbmctPmlycV9lbmFibGVfbWFzayk7Ci0JCWdlbjZfZW5hYmxlX3BtX2ly cShkZXZfcHJpdiwgcmluZy0+aXJxX2VuYWJsZV9tYXNrKTsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7CiAKLQlyZXR1cm4gdHJ1ZTsKKwlz cGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCUk5MTVfV1JJVEVfSU1SKHJpbmcs IH5yaW5nLT5pcnFfZW5hYmxlX21hc2spOworCWdlbjZfZW5hYmxlX3BtX2lycShkZXZfcHJpdiwg cmluZy0+aXJxX2VuYWJsZV9tYXNrKTsKKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFf bG9jayk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xNzE0LDQwICsxNjY0LDI5IEBAIGhzd192ZWJv eF9wdXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiB7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IHJpbmctPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlzcGluX2xv Y2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Ci0JaWYgKC0tcmluZy0+aXJx X3JlZmNvdW50ID09IDApIHsKLQkJSTkxNV9XUklURV9JTVIocmluZywgfjApOwotCQlnZW42X2Rp c2FibGVfcG1faXJxKGRldl9wcml2LCByaW5nLT5pcnFfZW5hYmxlX21hc2spOwotCX0KLQlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKKwlzcGluX2xv Y2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCUk5MTVfV1JJVEVfSU1SKHJpbmcsIH4wKTsK KwlnZW42X2Rpc2FibGVfcG1faXJxKGRldl9wcml2LCByaW5nLT5pcnFfZW5hYmxlX21hc2spOwor CXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIH0KIAotc3RhdGljIGJvb2wK K3N0YXRpYyB2b2lkCiBnZW44X3JpbmdfZ2V0X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNpZ25lZCBs b25nIGZsYWdzOwotCi0JaWYgKFdBUk5fT04oIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikp KQotCQlyZXR1cm4gZmFsc2U7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9s b2NrLCBmbGFncyk7Ci0JaWYgKHJpbmctPmlycV9yZWZjb3VudCsrID09IDApIHsKLQkJaWYgKEhB U19MM19EUEYoZGV2KSAmJiByaW5nLT5pZCA9PSBSQ1MpIHsKLQkJCUk5MTVfV1JJVEVfSU1SKHJp bmcsCi0JCQkJICAgICAgIH4ocmluZy0+aXJxX2VuYWJsZV9tYXNrIHwKLQkJCQkJIEdUX1JFTkRF Ul9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUKSk7Ci0JCX0gZWxzZSB7Ci0JCQlJOTE1X1dSSVRF X0lNUihyaW5nLCB+cmluZy0+aXJxX2VuYWJsZV9tYXNrKTsKLQkJfQotCQlQT1NUSU5HX1JFQUQo UklOR19JTVIocmluZy0+bW1pb19iYXNlKSk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmly cV9sb2NrKTsKKwlpZiAoSEFTX0wzX0RQRihkZXYpICYmIHJpbmctPmlkID09IFJDUykgeworCQlJ OTE1X1dSSVRFX0lNUihyaW5nLAorCQkJICAgICAgIH4ocmluZy0+aXJxX2VuYWJsZV9tYXNrIHwK KwkJCQkgR1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpKTsKKwl9IGVsc2Ugewor CQlJOTE1X1dSSVRFX0lNUihyaW5nLCB+cmluZy0+aXJxX2VuYWJsZV9tYXNrKTsKIAl9Ci0Jc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Ci0KLQlyZXR1 cm4gdHJ1ZTsKKwlQT1NUSU5HX1JFQUQoUklOR19JTVIocmluZy0+bW1pb19iYXNlKSk7CisJc3Bp bl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogfQogCiBzdGF0aWMgdm9pZApAQCAt MTc1NSwxOSArMTY5NCwxNiBAQCBnZW44X3JpbmdfcHV0X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNp Z25lZCBsb25nIGZsYWdzOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9j aywgZmxhZ3MpOwotCWlmICgtLXJpbmctPmlycV9yZWZjb3VudCA9PSAwKSB7Ci0JCWlmIChIQVNf TDNfRFBGKGRldikgJiYgcmluZy0+aWQgPT0gUkNTKSB7Ci0JCQlJOTE1X1dSSVRFX0lNUihyaW5n LAotCQkJCSAgICAgICB+R1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpOwotCQl9 IGVsc2UgewotCQkJSTkxNV9XUklURV9JTVIocmluZywgfjApOwotCQl9Ci0JCVBPU1RJTkdfUkVB RChSSU5HX0lNUihyaW5nLT5tbWlvX2Jhc2UpKTsKKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+ aXJxX2xvY2spOworCWlmIChIQVNfTDNfRFBGKGRldikgJiYgcmluZy0+aWQgPT0gUkNTKSB7CisJ CUk5MTVfV1JJVEVfSU1SKHJpbmcsCisJCQkgICAgICAgfkdUX1JFTkRFUl9MM19QQVJJVFlfRVJS T1JfSU5URVJSVVBUKTsKKwl9IGVsc2UgeworCQlJOTE1X1dSSVRFX0lNUihyaW5nLCB+MCk7CiAJ fQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOwor CVBPU1RJTkdfUkVBRChSSU5HX0lNUihyaW5nLT5tbWlvX2Jhc2UpKTsKKwlzcGluX3VubG9ja19p cnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiB9CiAKIHN0YXRpYyBpbnQKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCA3NGI5ZGYyMWYwNjIuLjlmNGE5NDVlMzEyYyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMTcxLDEwICsxNzEs OSBAQCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7CiAJc3RydWN0IGludGVsX2h3X3N0YXR1c19w YWdlIHN0YXR1c19wYWdlOwogCXN0cnVjdCBpOTE1X2N0eF93b3JrYXJvdW5kcyB3YV9jdHg7CiAK LQl1bnNpZ25lZCBpcnFfcmVmY291bnQ7IC8qIHByb3RlY3RlZCBieSBkZXZfcHJpdi0+aXJxX2xv Y2sgKi8KIAl1MzIJCWlycV9lbmFibGVfbWFzazsJLyogYml0bWFzayB0byBlbmFibGUgcmluZyBp bnRlcnJ1cHQgKi8KIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRyYWNlX2lycV9yZXE7 Ci0JYm9vbCBfX211c3RfY2hlY2sgKCppcnFfZ2V0KShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKTsKKwl2b2lkCQkoKmlycV9nZXQpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwog CXZvaWQJCSgqaXJxX3B1dCkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CiAKIAlpbnQJ CSgqaW5pdF9odykoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Ci0tIAoyLjYuMgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK