From mboxrd@z Thu Jan 1 00:00:00 1970 From: j.glisse@gmail.com Subject: [PATCH 16/24] drm/radeon: move lockup detection code into radeon_ring.c v2 Date: Wed, 25 Apr 2012 15:03:21 -0400 Message-ID: <1335380609-5804-17-git-send-email-j.glisse@gmail.com> References: <1335380609-5804-1-git-send-email-j.glisse@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qa0-f42.google.com (mail-qa0-f42.google.com [209.85.216.42]) by gabe.freedesktop.org (Postfix) with ESMTP id AD48F9ED98 for ; Wed, 25 Apr 2012 12:04:08 -0700 (PDT) Received: by mail-qa0-f42.google.com with SMTP id i31so3761995qaf.15 for ; Wed, 25 Apr 2012 12:04:08 -0700 (PDT) In-Reply-To: <1335380609-5804-1-git-send-email-j.glisse@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org Cc: Jerome Glisse , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogSmVyb21lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgoKSXQgaXNuJ3QgY2hpcHNl dCBzcGVjaWZpYywgc28gaXQgbWFrZXMgbm8gc2Vuc2UKdG8gaGF2ZSB0aGF0IGluc2lkZSByMTAw LmMuCgp2MjogcmViYXNlIG9uIGRlYnVnZnMgcmVtb3ZhbAoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0 aWFuIEvDtm5pZyA8ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGU+Ci0tLQogZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9ldmVyZ3JlZW4uYyAgIHwgICAgNSArLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24v bmkuYyAgICAgICAgICB8ICAgIDUgKy0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IxMDAuYyAg ICAgICAgfCAgIDU3ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yMzAwLmMgICAgICAgIHwgICAgNCArLQogZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yNjAwLmMgICAgICAgIHwgICAxMCArLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uLmggICAgICB8ICAgMTYgKystLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9hc2ljLmggfCAgICA1IC0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcmlu Zy5jIHwgICA1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3NpLmMgICAgICAgICAgfCAgICA1ICstLQogOSBmaWxlcyBjaGFuZ2VkLCA2OSBp bnNlcnRpb25zKCspLCA5MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2V2ZXJncmVlbi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4u YwppbmRleCBhNzYzODljLi4zNTNkMTBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL2V2ZXJncmVlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMK QEAgLTI0MjQsNyArMjQyNCw2IEBAIGJvb2wgZXZlcmdyZWVuX2dwdV9pc19sb2NrdXAoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluCiAJdTMyIHNyYm1f c3RhdHVzOwogCXUzMiBncmJtX3N0YXR1czsKIAl1MzIgZ3JibV9zdGF0dXNfc2UwLCBncmJtX3N0 YXR1c19zZTE7Ci0Jc3RydWN0IHIxMDBfZ3B1X2xvY2t1cCAqbG9ja3VwID0gJnJkZXYtPmNvbmZp Zy5ldmVyZ3JlZW4ubG9ja3VwOwogCWludCByOwogCiAJc3JibV9zdGF0dXMgPSBSUkVHMzIoU1JC TV9TVEFUVVMpOwpAQCAtMjQzMiw3ICsyNDMxLDcgQEAgYm9vbCBldmVyZ3JlZW5fZ3B1X2lzX2xv Y2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW4K IAlncmJtX3N0YXR1c19zZTAgPSBSUkVHMzIoR1JCTV9TVEFUVVNfU0UwKTsKIAlncmJtX3N0YXR1 c19zZTEgPSBSUkVHMzIoR1JCTV9TVEFUVVNfU0UxKTsKIAlpZiAoIShncmJtX3N0YXR1cyAmIEdV SV9BQ1RJVkUpKSB7Ci0JCXIxMDBfZ3B1X2xvY2t1cF91cGRhdGUobG9ja3VwLCByaW5nKTsKKwkJ cmFkZW9uX3JpbmdfbG9ja3VwX3VwZGF0ZShyaW5nKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIAkv KiBmb3JjZSBDUCBhY3Rpdml0aWVzICovCkBAIC0yNDQ0LDcgKzI0NDMsNyBAQCBib29sIGV2ZXJn cmVlbl9ncHVfaXNfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFk ZW9uX3JpbmcgKnJpbgogCQlyYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHJkZXYsIHJpbmcpOwog CX0KIAlyaW5nLT5ycHRyID0gUlJFRzMyKENQX1JCX1JQVFIpOwotCXJldHVybiByMTAwX2dwdV9j cF9pc19sb2NrdXAocmRldiwgbG9ja3VwLCByaW5nKTsKKwlyZXR1cm4gcmFkZW9uX3JpbmdfdGVz dF9sb2NrdXAocmRldiwgcmluZyk7CiB9CiAKIHN0YXRpYyBpbnQgZXZlcmdyZWVuX2dwdV9zb2Z0 X3Jlc2V0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9uaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCmluZGV4IGMw YjA5NTYuLjQzMjdiMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25pLmMKQEAgLTEzOTcsNyArMTM5Nyw2IEBAIGJv b2wgY2F5bWFuX2dwdV9pc19sb2NrdXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVj dCByYWRlb25fcmluZyAqcmluZykKIAl1MzIgc3JibV9zdGF0dXM7CiAJdTMyIGdyYm1fc3RhdHVz OwogCXUzMiBncmJtX3N0YXR1c19zZTAsIGdyYm1fc3RhdHVzX3NlMTsKLQlzdHJ1Y3QgcjEwMF9n cHVfbG9ja3VwICpsb2NrdXAgPSAmcmRldi0+Y29uZmlnLmNheW1hbi5sb2NrdXA7CiAJaW50IHI7 CiAKIAlzcmJtX3N0YXR1cyA9IFJSRUczMihTUkJNX1NUQVRVUyk7CkBAIC0xNDA1LDcgKzE0MDQs NyBAQCBib29sIGNheW1hbl9ncHVfaXNfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAJZ3JibV9zdGF0dXNfc2UwID0gUlJFRzMyKEdS Qk1fU1RBVFVTX1NFMCk7CiAJZ3JibV9zdGF0dXNfc2UxID0gUlJFRzMyKEdSQk1fU1RBVFVTX1NF MSk7CiAJaWYgKCEoZ3JibV9zdGF0dXMgJiBHVUlfQUNUSVZFKSkgewotCQlyMTAwX2dwdV9sb2Nr dXBfdXBkYXRlKGxvY2t1cCwgcmluZyk7CisJCXJhZGVvbl9yaW5nX2xvY2t1cF91cGRhdGUocmlu Zyk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAJLyogZm9yY2UgQ1AgYWN0aXZpdGllcyAqLwpAQCAt MTQxOCw3ICsxNDE3LDcgQEAgYm9vbCBjYXltYW5fZ3B1X2lzX2xvY2t1cChzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nKQogCX0KIAkvKiBYWFggZGVh bCB3aXRoIENQMCwxLDIgKi8KIAlyaW5nLT5ycHRyID0gUlJFRzMyKHJpbmctPnJwdHJfcmVnKTsK LQlyZXR1cm4gcjEwMF9ncHVfY3BfaXNfbG9ja3VwKHJkZXYsIGxvY2t1cCwgcmluZyk7CisJcmV0 dXJuIHJhZGVvbl9yaW5nX3Rlc3RfbG9ja3VwKHJkZXYsIHJpbmcpOwogfQogCiBzdGF0aWMgaW50 IGNheW1hbl9ncHVfc29mdF9yZXNldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yMTAwLmMKaW5kZXggYmU1MWY3Yi4uMGE2MmFkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yMTAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMK QEAgLTIxNTIsNTkgKzIxNTIsNiBAQCBpbnQgcjEwMF9tY193YWl0X2Zvcl9pZGxlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KQogCXJldHVybiAtMTsKIH0KIAotdm9pZCByMTAwX2dwdV9sb2Nr dXBfdXBkYXRlKHN0cnVjdCByMTAwX2dwdV9sb2NrdXAgKmxvY2t1cCwgc3RydWN0IHJhZGVvbl9y aW5nICpyaW5nKQotewotCWxvY2t1cC0+bGFzdF9jcF9ycHRyID0gcmluZy0+cnB0cjsKLQlsb2Nr dXAtPmxhc3RfamlmZmllcyA9IGppZmZpZXM7Ci19Ci0KLS8qKgotICogcjEwMF9ncHVfY3BfaXNf bG9ja3VwKCkgLSBjaGVjayBpZiBDUCBpcyBsb2NrdXAgYnkgcmVjb3JkaW5nIGluZm9ybWF0aW9u Ci0gKiBAcmRldjoJcmFkZW9uIGRldmljZSBzdHJ1Y3R1cmUKLSAqIEBsb2NrdXA6CXIxMDBfZ3B1 X2xvY2t1cCBzdHJ1Y3R1cmUgaG9sZGluZyBDUCBsb2NrdXAgdHJhY2tpbmcgaW5mb3JtYXRpb25z Ci0gKiBAY3A6CQlyYWRlb25fY3Agc3RydWN0dXJlIGhvbGRpbmcgQ1AgaW5mb3JtYXRpb24KLSAq Ci0gKiBXZSBkb24ndCBuZWVkIHRvIGluaXRpYWxpemUgdGhlIGxvY2t1cCB0cmFja2luZyBpbmZv cm1hdGlvbiBhcyB3ZSB3aWxsIGVpdGhlcgotICogaGF2ZSBDUCBycHRyIHRvIGEgZGlmZmVyZW50 IHZhbHVlIG9mIGppZmZpZXMgd3JhcCBhcm91bmQgd2hpY2ggd2lsbCBmb3JjZQotICogaW5pdGlh bGl6YXRpb24gb2YgdGhlIGxvY2t1cCB0cmFja2luZyBpbmZvcm1hdGlvbnMuCi0gKgotICogQSBw b3NzaWJsZSBmYWxzZSBwb3NpdGl2aWUgaXMgaWYgd2UgZ2V0IGNhbGwgYWZ0ZXIgd2hpbGUgYW5k IGxhc3RfY3BfcnB0ciA9PQotICogdGhlIGN1cnJlbnQgQ1AgcnB0ciwgZXZlbiBpZiBpdCdzIHVu bGlrZWx5IGl0IG1pZ2h0IGhhcHBlbi4gVG8gYXZvaWQgdGhpcwotICogaWYgdGhlIGVsYXBzZWQg dGltZSBzaW5jZSBsYXN0IGNhbGwgaXMgYmlnZ2VyIHRoYW4gMiBzZWNvbmQgdGhhbiB3ZSByZXR1 cm4KLSAqIGZhbHNlIGFuZCB1cGRhdGUgdGhlIHRyYWNraW5nIGluZm9ybWF0aW9uLiBEdWUgdG8g dGhpcyB0aGUgY2FsbGVyIG11c3QgY2FsbAotICogcjEwMF9ncHVfY3BfaXNfbG9ja3VwIHNldmVy YWwgdGltZSBpbiBsZXNzIHRoYW4gMnNlYyBmb3IgbG9ja3VwIHRvIGJlIHJlcG9ydGVkCi0gKiB0 aGUgZmVuY2luZyBjb2RlIHNob3VsZCBiZSBjYXV0aW91cyBhYm91dCB0aGF0LgotICoKLSAqIENh bGxlciBzaG91bGQgd3JpdGUgdG8gdGhlIHJpbmcgdG8gZm9yY2UgQ1AgdG8gZG8gc29tZXRoaW5n IHNvIHdlIGRvbid0IGdldAotICogZmFsc2UgcG9zaXRpdmUgd2hlbiBDUCBpcyBqdXN0IGdpdmVk IG5vdGhpbmcgdG8gZG8uCi0gKgotICoqLwotYm9vbCByMTAwX2dwdV9jcF9pc19sb2NrdXAoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByMTAwX2dwdV9sb2NrdXAgKmxvY2t1cCwg c3RydWN0IHJhZGVvbl9yaW5nICpyaW5nKQotewotCXVuc2lnbmVkIGxvbmcgY2ppZmZpZXMsIGVs YXBzZWQ7Ci0KLQljamlmZmllcyA9IGppZmZpZXM7Ci0JaWYgKCF0aW1lX2FmdGVyKGNqaWZmaWVz LCBsb2NrdXAtPmxhc3RfamlmZmllcykpIHsKLQkJLyogbGlrZWx5IGEgd3JhcCBhcm91bmQgKi8K LQkJbG9ja3VwLT5sYXN0X2NwX3JwdHIgPSByaW5nLT5ycHRyOwotCQlsb2NrdXAtPmxhc3Rfamlm ZmllcyA9IGppZmZpZXM7Ci0JCXJldHVybiBmYWxzZTsKLQl9Ci0JaWYgKHJpbmctPnJwdHIgIT0g bG9ja3VwLT5sYXN0X2NwX3JwdHIpIHsKLQkJLyogQ1AgaXMgc3RpbGwgd29ya2luZyBubyBsb2Nr dXAgKi8KLQkJbG9ja3VwLT5sYXN0X2NwX3JwdHIgPSByaW5nLT5ycHRyOwotCQlsb2NrdXAtPmxh c3RfamlmZmllcyA9IGppZmZpZXM7Ci0JCXJldHVybiBmYWxzZTsKLQl9Ci0JZWxhcHNlZCA9IGpp ZmZpZXNfdG9fbXNlY3MoY2ppZmZpZXMgLSBsb2NrdXAtPmxhc3RfamlmZmllcyk7Ci0JaWYgKGVs YXBzZWQgPj0gMTAwMDApIHsKLQkJZGV2X2VycihyZGV2LT5kZXYsICJHUFUgbG9ja3VwIENQIHN0 YWxsIGZvciBtb3JlIHRoYW4gJWx1bXNlY1xuIiwgZWxhcHNlZCk7Ci0JCXJldHVybiB0cnVlOwot CX0KLQkvKiBnaXZlIGEgY2hhbmNlIHRvIHRoZSBHUFUgLi4uICovCi0JcmV0dXJuIGZhbHNlOwot fQotCiBib29sIHIxMDBfZ3B1X2lzX2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwg c3RydWN0IHJhZGVvbl9yaW5nICpyaW5nKQogewogCXUzMiByYmJtX3N0YXR1czsKQEAgLTIyMTIs NyArMjE1OSw3IEBAIGJvb2wgcjEwMF9ncHVfaXNfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAKIAlyYmJtX3N0YXR1cyA9IFJSRUcz MihSXzAwMEU0MF9SQkJNX1NUQVRVUyk7CiAJaWYgKCFHXzAwMEU0MF9HVUlfQUNUSVZFKHJiYm1f c3RhdHVzKSkgewotCQlyMTAwX2dwdV9sb2NrdXBfdXBkYXRlKCZyZGV2LT5jb25maWcucjEwMC5s b2NrdXAsIHJpbmcpOworCQlyYWRlb25fcmluZ19sb2NrdXBfdXBkYXRlKHJpbmcpOwogCQlyZXR1 cm4gZmFsc2U7CiAJfQogCS8qIGZvcmNlIENQIGFjdGl2aXRpZXMgKi8KQEAgLTIyMjQsNyArMjE3 MSw3IEBAIGJvb2wgcjEwMF9ncHVfaXNfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAJCXJhZGVvbl9yaW5nX3VubG9ja19jb21taXQo cmRldiwgcmluZyk7CiAJfQogCXJpbmctPnJwdHIgPSBSUkVHMzIocmluZy0+cnB0cl9yZWcpOwot CXJldHVybiByMTAwX2dwdV9jcF9pc19sb2NrdXAocmRldiwgJnJkZXYtPmNvbmZpZy5yMTAwLmxv Y2t1cCwgcmluZyk7CisJcmV0dXJuIHJhZGVvbl9yaW5nX3Rlc3RfbG9ja3VwKHJkZXYsIHJpbmcp OwogfQogCiB2b2lkIHIxMDBfYm1fZGlzYWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMC5jIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yMzAwLmMKaW5kZXggYWUxNWMxMC4uZTQ2YmJkMCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y MzAwLmMKQEAgLTM3OSw3ICszNzksNyBAQCBib29sIHIzMDBfZ3B1X2lzX2xvY2t1cChzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nKQogCiAJcmJibV9z dGF0dXMgPSBSUkVHMzIoUl8wMDBFNDBfUkJCTV9TVEFUVVMpOwogCWlmICghR18wMDBFNDBfR1VJ X0FDVElWRShyYmJtX3N0YXR1cykpIHsKLQkJcjEwMF9ncHVfbG9ja3VwX3VwZGF0ZSgmcmRldi0+ Y29uZmlnLnIzMDAubG9ja3VwLCByaW5nKTsKKwkJcmFkZW9uX3JpbmdfbG9ja3VwX3VwZGF0ZShy aW5nKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIAkvKiBmb3JjZSBDUCBhY3Rpdml0aWVzICovCkBA IC0zOTEsNyArMzkxLDcgQEAgYm9vbCByMzAwX2dwdV9pc19sb2NrdXAoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZykKIAkJcmFkZW9uX3JpbmdfdW5s b2NrX2NvbW1pdChyZGV2LCByaW5nKTsKIAl9CiAJcmluZy0+cnB0ciA9IFJSRUczMihSQURFT05f Q1BfUkJfUlBUUik7Ci0JcmV0dXJuIHIxMDBfZ3B1X2NwX2lzX2xvY2t1cChyZGV2LCAmcmRldi0+ Y29uZmlnLnIzMDAubG9ja3VwLCByaW5nKTsKKwlyZXR1cm4gcmFkZW9uX3JpbmdfdGVzdF9sb2Nr dXAocmRldiwgcmluZyk7CiB9CiAKIGludCByMzAwX2FzaWNfcmVzZXQoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCmluZGV4IDI0ZTY4ZmQuLjg3YjFkMjUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcjYwMC5jCkBAIC0xMzQ4LDE5ICsxMzQ4LDEzIEBAIGJvb2wgcjYwMF9ncHVf aXNfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3Jpbmcg KnJpbmcpCiAJdTMyIHNyYm1fc3RhdHVzOwogCXUzMiBncmJtX3N0YXR1czsKIAl1MzIgZ3JibV9z dGF0dXMyOwotCXN0cnVjdCByMTAwX2dwdV9sb2NrdXAgKmxvY2t1cDsKIAlpbnQgcjsKIAotCWlm IChyZGV2LT5mYW1pbHkgPj0gQ0hJUF9SVjc3MCkKLQkJbG9ja3VwID0gJnJkZXYtPmNvbmZpZy5y djc3MC5sb2NrdXA7Ci0JZWxzZQotCQlsb2NrdXAgPSAmcmRldi0+Y29uZmlnLnI2MDAubG9ja3Vw OwotCiAJc3JibV9zdGF0dXMgPSBSUkVHMzIoUl8wMDBFNTBfU1JCTV9TVEFUVVMpOwogCWdyYm1f c3RhdHVzID0gUlJFRzMyKFJfMDA4MDEwX0dSQk1fU1RBVFVTKTsKIAlncmJtX3N0YXR1czIgPSBS UkVHMzIoUl8wMDgwMTRfR1JCTV9TVEFUVVMyKTsKIAlpZiAoIUdfMDA4MDEwX0dVSV9BQ1RJVkUo Z3JibV9zdGF0dXMpKSB7Ci0JCXIxMDBfZ3B1X2xvY2t1cF91cGRhdGUobG9ja3VwLCByaW5nKTsK KwkJcmFkZW9uX3JpbmdfbG9ja3VwX3VwZGF0ZShyaW5nKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0K IAkvKiBmb3JjZSBDUCBhY3Rpdml0aWVzICovCkBAIC0xMzcyLDcgKzEzNjYsNyBAQCBib29sIHI2 MDBfZ3B1X2lzX2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVv bl9yaW5nICpyaW5nKQogCQlyYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHJkZXYsIHJpbmcpOwog CX0KIAlyaW5nLT5ycHRyID0gUlJFRzMyKHJpbmctPnJwdHJfcmVnKTsKLQlyZXR1cm4gcjEwMF9n cHVfY3BfaXNfbG9ja3VwKHJkZXYsIGxvY2t1cCwgcmluZyk7CisJcmV0dXJuIHJhZGVvbl9yaW5n X3Rlc3RfbG9ja3VwKHJkZXYsIHJpbmcpOwogfQogCiBpbnQgcjYwMF9hc2ljX3Jlc2V0KHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKaW5kZXggNmVjNDAy NS4uYzBlZDA3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBAIC01ODgsNiArNTg4LDggQEAg c3RydWN0IHJhZGVvbl9yaW5nIHsKIAl1bnNpZ25lZAkJcmluZ19zaXplOwogCXVuc2lnbmVkCQly aW5nX2ZyZWVfZHc7CiAJaW50CQkJY291bnRfZHc7CisJdW5zaWduZWQgbG9uZwkJbGFzdF9hY3Rp dml0eTsKKwl1bnNpZ25lZAkJbGFzdF9ycHRyOwogCXVpbnQ2NF90CQlncHVfYWRkcjsKIAl1aW50 MzJfdAkJYWxpZ25fbWFzazsKIAl1aW50MzJfdAkJcHRyX21hc2s7CkBAIC03MzEsNiArNzMzLDgg QEAgdm9pZCByYWRlb25fcmluZ19jb21taXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0 cnVjdCByYWRlb25fcmluZyAqY3ApOwogdm9pZCByYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKmNwKTsKIHZvaWQg cmFkZW9uX3JpbmdfdW5sb2NrX3VuZG8oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVj dCByYWRlb25fcmluZyAqY3ApOwogaW50IHJhZGVvbl9yaW5nX3Rlc3Qoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqY3ApOwordm9pZCByYWRlb25fcmluZ19s b2NrdXBfdXBkYXRlKHN0cnVjdCByYWRlb25fcmluZyAqcmluZyk7Citib29sIHJhZGVvbl9yaW5n X3Rlc3RfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3Jp bmcgKnJpbmcpOwogaW50IHJhZGVvbl9yaW5nX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsIHN0cnVjdCByYWRlb25fcmluZyAqY3AsIHVuc2lnbmVkIHJpbmdfc2l6ZSwKIAkJICAgICB1 bnNpZ25lZCBycHRyX29mZnMsIHVuc2lnbmVkIHJwdHJfcmVnLCB1bnNpZ25lZCB3cHRyX3JlZywK IAkJICAgICB1MzIgcHRyX3JlZ19zaGlmdCwgdTMyIHB0cl9yZWdfbWFzaywgdTMyIG5vcCk7CkBA IC0xMTgwLDE2ICsxMTg0LDEwIEBAIHN0cnVjdCByYWRlb25fYXNpYyB7CiAvKgogICogQXNpYyBz dHJ1Y3R1cmVzCiAgKi8KLXN0cnVjdCByMTAwX2dwdV9sb2NrdXAgewotCXVuc2lnbmVkIGxvbmcJ bGFzdF9qaWZmaWVzOwotCXUzMgkJbGFzdF9jcF9ycHRyOwotfTsKLQogc3RydWN0IHIxMDBfYXNp YyB7CiAJY29uc3QgdW5zaWduZWQJCSpyZWdfc2FmZV9ibTsKIAl1bnNpZ25lZAkJcmVnX3NhZmVf Ym1fc2l6ZTsKIAl1MzIJCQloZHBfY250bDsKLQlzdHJ1Y3QgcjEwMF9ncHVfbG9ja3VwCWxvY2t1 cDsKIH07CiAKIHN0cnVjdCByMzAwX2FzaWMgewpAQCAtMTE5Nyw3ICsxMTk1LDYgQEAgc3RydWN0 IHIzMDBfYXNpYyB7CiAJdW5zaWduZWQJCXJlZ19zYWZlX2JtX3NpemU7CiAJdTMyCQkJcmVzeW5j X3NjcmF0Y2g7CiAJdTMyCQkJaGRwX2NudGw7Ci0Jc3RydWN0IHIxMDBfZ3B1X2xvY2t1cAlsb2Nr dXA7CiB9OwogCiBzdHJ1Y3QgcjYwMF9hc2ljIHsKQEAgLTEyMTksNyArMTIxNiw2IEBAIHN0cnVj dCByNjAwX2FzaWMgewogCXVuc2lnbmVkCQl0aWxpbmdfZ3JvdXBfc2l6ZTsKIAl1bnNpZ25lZAkJ dGlsZV9jb25maWc7CiAJdW5zaWduZWQJCWJhY2tlbmRfbWFwOwotCXN0cnVjdCByMTAwX2dwdV9s b2NrdXAJbG9ja3VwOwogfTsKIAogc3RydWN0IHJ2NzcwX2FzaWMgewpAQCAtMTI0NSw3ICsxMjQx LDYgQEAgc3RydWN0IHJ2NzcwX2FzaWMgewogCXVuc2lnbmVkCQl0aWxpbmdfZ3JvdXBfc2l6ZTsK IAl1bnNpZ25lZAkJdGlsZV9jb25maWc7CiAJdW5zaWduZWQJCWJhY2tlbmRfbWFwOwotCXN0cnVj dCByMTAwX2dwdV9sb2NrdXAJbG9ja3VwOwogfTsKIAogc3RydWN0IGV2ZXJncmVlbl9hc2ljIHsK QEAgLTEyNzIsNyArMTI2Nyw2IEBAIHN0cnVjdCBldmVyZ3JlZW5fYXNpYyB7CiAJdW5zaWduZWQg dGlsaW5nX2dyb3VwX3NpemU7CiAJdW5zaWduZWQgdGlsZV9jb25maWc7CiAJdW5zaWduZWQgYmFj a2VuZF9tYXA7Ci0Jc3RydWN0IHIxMDBfZ3B1X2xvY2t1cAlsb2NrdXA7CiB9OwogCiBzdHJ1Y3Qg Y2F5bWFuX2FzaWMgewpAQCAtMTMxMSw3ICsxMzA1LDYgQEAgc3RydWN0IGNheW1hbl9hc2ljIHsK IAl1bnNpZ25lZCBtdWx0aV9ncHVfdGlsZV9zaXplOwogCiAJdW5zaWduZWQgdGlsZV9jb25maWc7 Ci0Jc3RydWN0IHIxMDBfZ3B1X2xvY2t1cAlsb2NrdXA7CiB9OwogCiBzdHJ1Y3Qgc2lfYXNpYyB7 CkBAIC0xMzQyLDcgKzEzMzUsNiBAQCBzdHJ1Y3Qgc2lfYXNpYyB7CiAJdW5zaWduZWQgbXVsdGlf Z3B1X3RpbGVfc2l6ZTsKIAogCXVuc2lnbmVkIHRpbGVfY29uZmlnOwotCXN0cnVjdCByMTAwX2dw dV9sb2NrdXAJbG9ja3VwOwogfTsKIAogdW5pb24gcmFkZW9uX2FzaWNfY29uZmlnIHsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaCBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaAppbmRleCA2ZjMxZjlhLi44NGYzNTUyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5oCkBAIC0xMDAsMTEgKzEwMCw2IEBAIHZvaWQgcjEw MF9wY2lfZ2FydF9maW5pKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIGludCByMTAwX3Bj aV9nYXJ0X2VuYWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiB2b2lkIHIxMDBfcGNp X2dhcnRfZGlzYWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiBpbnQgcjEwMF9ndWlf d2FpdF9mb3JfaWRsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Ci12b2lkIHIxMDBfZ3B1 X2xvY2t1cF91cGRhdGUoc3RydWN0IHIxMDBfZ3B1X2xvY2t1cCAqbG9ja3VwLAotCQkJICAgIHN0 cnVjdCByYWRlb25fcmluZyAqY3ApOwotYm9vbCByMTAwX2dwdV9jcF9pc19sb2NrdXAoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYsCi0JCQkgICBzdHJ1Y3QgcjEwMF9ncHVfbG9ja3VwICpsb2Nr dXAsCi0JCQkgICBzdHJ1Y3QgcmFkZW9uX3JpbmcgKmNwKTsKIHZvaWQgcjEwMF9pYl9maW5pKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIGludCByMTAwX2liX3Rlc3Qoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZyk7CiB2b2lkIHIxMDBfaXJx X2Rpc2FibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcmluZy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fcmluZy5jCmluZGV4IGM4ZGVhZTkuLmYyZGZjYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3JpbmcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9yaW5nLmMKQEAgLTMyNSw2ICszMjUsNTkgQEAgdm9pZCByYWRlb25fcmluZ191bmxv Y2tfdW5kbyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpy aW4KIAltdXRleF91bmxvY2soJnJpbmctPm11dGV4KTsKIH0KIAordm9pZCByYWRlb25fcmluZ19s b2NrdXBfdXBkYXRlKHN0cnVjdCByYWRlb25fcmluZyAqcmluZykKK3sKKwlyaW5nLT5sYXN0X3Jw dHIgPSByaW5nLT5ycHRyOworCXJpbmctPmxhc3RfYWN0aXZpdHkgPSBqaWZmaWVzOworfQorCisv KioKKyAqIHJhZGVvbl9yaW5nX3Rlc3RfbG9ja3VwKCkgLSBjaGVjayBpZiByaW5nIGlzIGxvY2tl ZHVwIGJ5IHJlY29yZGluZyBpbmZvcm1hdGlvbgorICogQHJkZXY6ICAgICAgIHJhZGVvbiBkZXZp Y2Ugc3RydWN0dXJlCisgKiBAcmluZzogICAgICAgcmFkZW9uX3Jpbmcgc3RydWN0dXJlIGhvbGRp bmcgcmluZyBpbmZvcm1hdGlvbgorICoKKyAqIFdlIGRvbid0IG5lZWQgdG8gaW5pdGlhbGl6ZSB0 aGUgbG9ja3VwIHRyYWNraW5nIGluZm9ybWF0aW9uIGFzIHdlIHdpbGwgZWl0aGVyCisgKiBoYXZl IENQIHJwdHIgdG8gYSBkaWZmZXJlbnQgdmFsdWUgb2YgamlmZmllcyB3cmFwIGFyb3VuZCB3aGlj aCB3aWxsIGZvcmNlCisgKiBpbml0aWFsaXphdGlvbiBvZiB0aGUgbG9ja3VwIHRyYWNraW5nIGlu Zm9ybWF0aW9ucy4KKyAqCisgKiBBIHBvc3NpYmxlIGZhbHNlIHBvc2l0aXZpZSBpcyBpZiB3ZSBn ZXQgY2FsbCBhZnRlciB3aGlsZSBhbmQgbGFzdF9jcF9ycHRyID09CisgKiB0aGUgY3VycmVudCBD UCBycHRyLCBldmVuIGlmIGl0J3MgdW5saWtlbHkgaXQgbWlnaHQgaGFwcGVuLiBUbyBhdm9pZCB0 aGlzCisgKiBpZiB0aGUgZWxhcHNlZCB0aW1lIHNpbmNlIGxhc3QgY2FsbCBpcyBiaWdnZXIgdGhh biAyIHNlY29uZCB0aGFuIHdlIHJldHVybgorICogZmFsc2UgYW5kIHVwZGF0ZSB0aGUgdHJhY2tp bmcgaW5mb3JtYXRpb24uIER1ZSB0byB0aGlzIHRoZSBjYWxsZXIgbXVzdCBjYWxsCisgKiByYWRl b25fcmluZ190ZXN0X2xvY2t1cCBzZXZlcmFsIHRpbWUgaW4gbGVzcyB0aGFuIDJzZWMgZm9yIGxv Y2t1cCB0byBiZSByZXBvcnRlZAorICogdGhlIGZlbmNpbmcgY29kZSBzaG91bGQgYmUgY2F1dGlv dXMgYWJvdXQgdGhhdC4KKyAqCisgKiBDYWxsZXIgc2hvdWxkIHdyaXRlIHRvIHRoZSByaW5nIHRv IGZvcmNlIENQIHRvIGRvIHNvbWV0aGluZyBzbyB3ZSBkb24ndCBnZXQKKyAqIGZhbHNlIHBvc2l0 aXZlIHdoZW4gQ1AgaXMganVzdCBnaXZlZCBub3RoaW5nIHRvIGRvLgorICoKKyAqKi8KK2Jvb2wg cmFkZW9uX3JpbmdfdGVzdF9sb2NrdXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVj dCByYWRlb25fcmluZyAqcmluZykKK3sKKwl1bnNpZ25lZCBsb25nIGNqaWZmaWVzLCBlbGFwc2Vk OworCXVpbnQzMl90IHJwdHI7CisKKwljamlmZmllcyA9IGppZmZpZXM7CisJaWYgKCF0aW1lX2Fm dGVyKGNqaWZmaWVzLCByaW5nLT5sYXN0X2FjdGl2aXR5KSkgeworCQkvKiBsaWtlbHkgYSB3cmFw IGFyb3VuZCAqLworCQlyYWRlb25fcmluZ19sb2NrdXBfdXBkYXRlKHJpbmcpOworCQlyZXR1cm4g ZmFsc2U7CisJfQorCXJwdHIgPSBSUkVHMzIocmluZy0+cnB0cl9yZWcpOworCXJpbmctPnJwdHIg PSAocnB0ciAmIHJpbmctPnB0cl9yZWdfbWFzaykgPj4gcmluZy0+cHRyX3JlZ19zaGlmdDsKKwlp ZiAocmluZy0+cnB0ciAhPSByaW5nLT5sYXN0X3JwdHIpIHsKKwkJLyogQ1AgaXMgc3RpbGwgd29y a2luZyBubyBsb2NrdXAgKi8KKwkJcmFkZW9uX3JpbmdfbG9ja3VwX3VwZGF0ZShyaW5nKTsKKwkJ cmV0dXJuIGZhbHNlOworCX0KKwllbGFwc2VkID0gamlmZmllc190b19tc2VjcyhjamlmZmllcyAt IHJpbmctPmxhc3RfYWN0aXZpdHkpOworCWlmIChlbGFwc2VkID49IDEwMDAwKSB7CisJCWRldl9l cnIocmRldi0+ZGV2LCAiR1BVIGxvY2t1cCBDUCBzdGFsbCBmb3IgbW9yZSB0aGFuICVsdW1zZWNc biIsIGVsYXBzZWQpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisJLyogZ2l2ZSBhIGNoYW5jZSB0byB0 aGUgR1BVIC4uLiAqLworCXJldHVybiBmYWxzZTsKK30KKwogaW50IHJhZGVvbl9yaW5nX2luaXQo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZywgdW5z aWduZWQgcmluZ19zaXplLAogCQkgICAgIHVuc2lnbmVkIHJwdHJfb2ZmcywgdW5zaWduZWQgcnB0 cl9yZWcsIHVuc2lnbmVkIHdwdHJfcmVnLAogCQkgICAgIHUzMiBwdHJfcmVnX3NoaWZ0LCB1MzIg cHRyX3JlZ19tYXNrLCB1MzIgbm9wKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9zaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCmluZGV4IGViZTJjOWIuLjFiZDU2 NzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3NpLmMKQEAgLTIyMTcsNyArMjIxNyw2IEBAIGJvb2wgc2lfZ3B1X2lz X2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpy aW5nKQogCXUzMiBzcmJtX3N0YXR1czsKIAl1MzIgZ3JibV9zdGF0dXMsIGdyYm1fc3RhdHVzMjsK IAl1MzIgZ3JibV9zdGF0dXNfc2UwLCBncmJtX3N0YXR1c19zZTE7Ci0Jc3RydWN0IHIxMDBfZ3B1 X2xvY2t1cCAqbG9ja3VwID0gJnJkZXYtPmNvbmZpZy5zaS5sb2NrdXA7CiAJaW50IHI7CiAKIAlz cmJtX3N0YXR1cyA9IFJSRUczMihTUkJNX1NUQVRVUyk7CkBAIC0yMjI2LDcgKzIyMjUsNyBAQCBi b29sIHNpX2dwdV9pc19sb2NrdXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCBy YWRlb25fcmluZyAqcmluZykKIAlncmJtX3N0YXR1c19zZTAgPSBSUkVHMzIoR1JCTV9TVEFUVVNf U0UwKTsKIAlncmJtX3N0YXR1c19zZTEgPSBSUkVHMzIoR1JCTV9TVEFUVVNfU0UxKTsKIAlpZiAo IShncmJtX3N0YXR1cyAmIEdVSV9BQ1RJVkUpKSB7Ci0JCXIxMDBfZ3B1X2xvY2t1cF91cGRhdGUo bG9ja3VwLCByaW5nKTsKKwkJcmFkZW9uX3JpbmdfbG9ja3VwX3VwZGF0ZShyaW5nKTsKIAkJcmV0 dXJuIGZhbHNlOwogCX0KIAkvKiBmb3JjZSBDUCBhY3Rpdml0aWVzICovCkBAIC0yMjM5LDcgKzIy MzgsNyBAQCBib29sIHNpX2dwdV9pc19sb2NrdXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs IHN0cnVjdCByYWRlb25fcmluZyAqcmluZykKIAl9CiAJLyogWFhYIGRlYWwgd2l0aCBDUDAsMSwy ICovCiAJcmluZy0+cnB0ciA9IFJSRUczMihyaW5nLT5ycHRyX3JlZyk7Ci0JcmV0dXJuIHIxMDBf Z3B1X2NwX2lzX2xvY2t1cChyZGV2LCBsb2NrdXAsIHJpbmcpOworCXJldHVybiByYWRlb25fcmlu Z190ZXN0X2xvY2t1cChyZGV2LCByaW5nKTsKIH0KIAogc3RhdGljIGludCBzaV9ncHVfc29mdF9y ZXNldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKLS0gCjEuNy43LjYKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==