From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 17/26] drm/radeon: move lockup detection code into radeon_ring.c Date: Wed, 25 Apr 2012 14:46:34 +0200 Message-ID: <1335358003-2987-18-git-send-email-deathsimple@vodafone.de> References: <1335358003-2987-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from outgoing.email.vodafone.de (outgoing.email.vodafone.de [139.7.28.128]) by gabe.freedesktop.org (Postfix) with ESMTP id 6038D9E8D8 for ; Wed, 25 Apr 2012 05:46:55 -0700 (PDT) In-Reply-To: <1335358003-2987-1-git-send-email-deathsimple@vodafone.de> 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: =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org SXQgaXNuJ3QgY2hpcHNldCBzcGVjaWZpYywgc28gaXQgbWFrZXMgbm8gc2Vuc2UKdG8gaGF2ZSB0 aGF0IGluc2lkZSByMTAwLmMuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxkZWF0 aHNpbXBsZUB2b2RhZm9uZS5kZT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVl bi5jICAgfCAgICA1ICstLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jICAgICAgICAgIHwg ICAgNSArLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jICAgICAgICB8ICAgNTcgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Iz MDAuYyAgICAgICAgfCAgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYyAgICAg ICAgfCAgIDEwICstLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCAgICAgIHwg ICAxNiArKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaCB8ICAg IDUgLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9yaW5nLmMgfCAgIDUzICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYyAg ICAgICAgICB8ICAgIDUgKy0tCiA5IGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDkx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdy ZWVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jCmluZGV4IDI2ODQ4ZDYu LmUzMDQ4NTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYwpAQCAtMjQyNCw3ICsyNDI0 LDYgQEAgYm9vbCBldmVyZ3JlZW5fZ3B1X2lzX2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW4KIAl1MzIgc3JibV9zdGF0dXM7CiAJdTMyIGdy Ym1fc3RhdHVzOwogCXUzMiBncmJtX3N0YXR1c19zZTAsIGdyYm1fc3RhdHVzX3NlMTsKLQlzdHJ1 Y3QgcjEwMF9ncHVfbG9ja3VwICpsb2NrdXAgPSAmcmRldi0+Y29uZmlnLmV2ZXJncmVlbi5sb2Nr dXA7CiAJaW50IHI7CiAKIAlzcmJtX3N0YXR1cyA9IFJSRUczMihTUkJNX1NUQVRVUyk7CkBAIC0y NDMyLDcgKzI0MzEsNyBAQCBib29sIGV2ZXJncmVlbl9ncHVfaXNfbG9ja3VwKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbgogCWdyYm1fc3RhdHVzX3Nl MCA9IFJSRUczMihHUkJNX1NUQVRVU19TRTApOwogCWdyYm1fc3RhdHVzX3NlMSA9IFJSRUczMihH UkJNX1NUQVRVU19TRTEpOwogCWlmICghKGdyYm1fc3RhdHVzICYgR1VJX0FDVElWRSkpIHsKLQkJ cjEwMF9ncHVfbG9ja3VwX3VwZGF0ZShsb2NrdXAsIHJpbmcpOworCQlyYWRlb25fcmluZ19sb2Nr dXBfdXBkYXRlKHJpbmcpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCS8qIGZvcmNlIENQIGFjdGl2 aXRpZXMgKi8KQEAgLTI0NDQsNyArMjQ0Myw3IEBAIGJvb2wgZXZlcmdyZWVuX2dwdV9pc19sb2Nr dXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluCiAJ CXJhZGVvbl9yaW5nX3VubG9ja19jb21taXQocmRldiwgcmluZyk7CiAJfQogCXJpbmctPnJwdHIg PSBSUkVHMzIoQ1BfUkJfUlBUUik7Ci0JcmV0dXJuIHIxMDBfZ3B1X2NwX2lzX2xvY2t1cChyZGV2 LCBsb2NrdXAsIHJpbmcpOworCXJldHVybiByYWRlb25fcmluZ190ZXN0X2xvY2t1cChyZGV2LCBy aW5nKTsKIH0KIAogc3RhdGljIGludCBldmVyZ3JlZW5fZ3B1X3NvZnRfcmVzZXQoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25p LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25pLmMKaW5kZXggYzBiMDk1Ni4uNDMyN2IzMiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vbmkuYwpAQCAtMTM5Nyw3ICsxMzk3LDYgQEAgYm9vbCBjYXltYW5fZ3B1X2lz X2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpy aW5nKQogCXUzMiBzcmJtX3N0YXR1czsKIAl1MzIgZ3JibV9zdGF0dXM7CiAJdTMyIGdyYm1fc3Rh dHVzX3NlMCwgZ3JibV9zdGF0dXNfc2UxOwotCXN0cnVjdCByMTAwX2dwdV9sb2NrdXAgKmxvY2t1 cCA9ICZyZGV2LT5jb25maWcuY2F5bWFuLmxvY2t1cDsKIAlpbnQgcjsKIAogCXNyYm1fc3RhdHVz ID0gUlJFRzMyKFNSQk1fU1RBVFVTKTsKQEAgLTE0MDUsNyArMTQwNCw3IEBAIGJvb2wgY2F5bWFu X2dwdV9pc19sb2NrdXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25f cmluZyAqcmluZykKIAlncmJtX3N0YXR1c19zZTAgPSBSUkVHMzIoR1JCTV9TVEFUVVNfU0UwKTsK IAlncmJtX3N0YXR1c19zZTEgPSBSUkVHMzIoR1JCTV9TVEFUVVNfU0UxKTsKIAlpZiAoIShncmJt X3N0YXR1cyAmIEdVSV9BQ1RJVkUpKSB7Ci0JCXIxMDBfZ3B1X2xvY2t1cF91cGRhdGUobG9ja3Vw LCByaW5nKTsKKwkJcmFkZW9uX3JpbmdfbG9ja3VwX3VwZGF0ZShyaW5nKTsKIAkJcmV0dXJuIGZh bHNlOwogCX0KIAkvKiBmb3JjZSBDUCBhY3Rpdml0aWVzICovCkBAIC0xNDE4LDcgKzE0MTcsNyBA QCBib29sIGNheW1hbl9ncHVfaXNfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBz dHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAJfQogCS8qIFhYWCBkZWFsIHdpdGggQ1AwLDEsMiAq LwogCXJpbmctPnJwdHIgPSBSUkVHMzIocmluZy0+cnB0cl9yZWcpOwotCXJldHVybiByMTAwX2dw dV9jcF9pc19sb2NrdXAocmRldiwgbG9ja3VwLCByaW5nKTsKKwlyZXR1cm4gcmFkZW9uX3Jpbmdf dGVzdF9sb2NrdXAocmRldiwgcmluZyk7CiB9CiAKIHN0YXRpYyBpbnQgY2F5bWFuX2dwdV9zb2Z0 X3Jlc2V0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yMTAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IxMDAuYwppbmRl eCA2MmY5ZGFiLi4yMGJmNDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Ix MDAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IxMDAuYwpAQCAtMjE1OSw1OSArMjE1 OSw2IEBAIGludCByMTAwX21jX3dhaXRfZm9yX2lkbGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYpCiAJcmV0dXJuIC0xOwogfQogCi12b2lkIHIxMDBfZ3B1X2xvY2t1cF91cGRhdGUoc3RydWN0 IHIxMDBfZ3B1X2xvY2t1cCAqbG9ja3VwLCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCi17Ci0J bG9ja3VwLT5sYXN0X2NwX3JwdHIgPSByaW5nLT5ycHRyOwotCWxvY2t1cC0+bGFzdF9qaWZmaWVz ID0gamlmZmllczsKLX0KLQotLyoqCi0gKiByMTAwX2dwdV9jcF9pc19sb2NrdXAoKSAtIGNoZWNr IGlmIENQIGlzIGxvY2t1cCBieSByZWNvcmRpbmcgaW5mb3JtYXRpb24KLSAqIEByZGV2OglyYWRl b24gZGV2aWNlIHN0cnVjdHVyZQotICogQGxvY2t1cDoJcjEwMF9ncHVfbG9ja3VwIHN0cnVjdHVy ZSBob2xkaW5nIENQIGxvY2t1cCB0cmFja2luZyBpbmZvcm1hdGlvbnMKLSAqIEBjcDoJCXJhZGVv bl9jcCBzdHJ1Y3R1cmUgaG9sZGluZyBDUCBpbmZvcm1hdGlvbgotICoKLSAqIFdlIGRvbid0IG5l ZWQgdG8gaW5pdGlhbGl6ZSB0aGUgbG9ja3VwIHRyYWNraW5nIGluZm9ybWF0aW9uIGFzIHdlIHdp bGwgZWl0aGVyCi0gKiBoYXZlIENQIHJwdHIgdG8gYSBkaWZmZXJlbnQgdmFsdWUgb2YgamlmZmll cyB3cmFwIGFyb3VuZCB3aGljaCB3aWxsIGZvcmNlCi0gKiBpbml0aWFsaXphdGlvbiBvZiB0aGUg bG9ja3VwIHRyYWNraW5nIGluZm9ybWF0aW9ucy4KLSAqCi0gKiBBIHBvc3NpYmxlIGZhbHNlIHBv c2l0aXZpZSBpcyBpZiB3ZSBnZXQgY2FsbCBhZnRlciB3aGlsZSBhbmQgbGFzdF9jcF9ycHRyID09 Ci0gKiB0aGUgY3VycmVudCBDUCBycHRyLCBldmVuIGlmIGl0J3MgdW5saWtlbHkgaXQgbWlnaHQg aGFwcGVuLiBUbyBhdm9pZCB0aGlzCi0gKiBpZiB0aGUgZWxhcHNlZCB0aW1lIHNpbmNlIGxhc3Qg Y2FsbCBpcyBiaWdnZXIgdGhhbiAyIHNlY29uZCB0aGFuIHdlIHJldHVybgotICogZmFsc2UgYW5k IHVwZGF0ZSB0aGUgdHJhY2tpbmcgaW5mb3JtYXRpb24uIER1ZSB0byB0aGlzIHRoZSBjYWxsZXIg bXVzdCBjYWxsCi0gKiByMTAwX2dwdV9jcF9pc19sb2NrdXAgc2V2ZXJhbCB0aW1lIGluIGxlc3Mg dGhhbiAyc2VjIGZvciBsb2NrdXAgdG8gYmUgcmVwb3J0ZWQKLSAqIHRoZSBmZW5jaW5nIGNvZGUg c2hvdWxkIGJlIGNhdXRpb3VzIGFib3V0IHRoYXQuCi0gKgotICogQ2FsbGVyIHNob3VsZCB3cml0 ZSB0byB0aGUgcmluZyB0byBmb3JjZSBDUCB0byBkbyBzb21ldGhpbmcgc28gd2UgZG9uJ3QgZ2V0 Ci0gKiBmYWxzZSBwb3NpdGl2ZSB3aGVuIENQIGlzIGp1c3QgZ2l2ZWQgbm90aGluZyB0byBkby4K LSAqCi0gKiovCi1ib29sIHIxMDBfZ3B1X2NwX2lzX2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldiwgc3RydWN0IHIxMDBfZ3B1X2xvY2t1cCAqbG9ja3VwLCBzdHJ1Y3QgcmFkZW9uX3Jp bmcgKnJpbmcpCi17Ci0JdW5zaWduZWQgbG9uZyBjamlmZmllcywgZWxhcHNlZDsKLQotCWNqaWZm aWVzID0gamlmZmllczsKLQlpZiAoIXRpbWVfYWZ0ZXIoY2ppZmZpZXMsIGxvY2t1cC0+bGFzdF9q aWZmaWVzKSkgewotCQkvKiBsaWtlbHkgYSB3cmFwIGFyb3VuZCAqLwotCQlsb2NrdXAtPmxhc3Rf Y3BfcnB0ciA9IHJpbmctPnJwdHI7Ci0JCWxvY2t1cC0+bGFzdF9qaWZmaWVzID0gamlmZmllczsK LQkJcmV0dXJuIGZhbHNlOwotCX0KLQlpZiAocmluZy0+cnB0ciAhPSBsb2NrdXAtPmxhc3RfY3Bf cnB0cikgewotCQkvKiBDUCBpcyBzdGlsbCB3b3JraW5nIG5vIGxvY2t1cCAqLwotCQlsb2NrdXAt Pmxhc3RfY3BfcnB0ciA9IHJpbmctPnJwdHI7Ci0JCWxvY2t1cC0+bGFzdF9qaWZmaWVzID0gamlm ZmllczsKLQkJcmV0dXJuIGZhbHNlOwotCX0KLQllbGFwc2VkID0gamlmZmllc190b19tc2Vjcyhj amlmZmllcyAtIGxvY2t1cC0+bGFzdF9qaWZmaWVzKTsKLQlpZiAoZWxhcHNlZCA+PSAxMDAwMCkg ewotCQlkZXZfZXJyKHJkZXYtPmRldiwgIkdQVSBsb2NrdXAgQ1Agc3RhbGwgZm9yIG1vcmUgdGhh biAlbHVtc2VjXG4iLCBlbGFwc2VkKTsKLQkJcmV0dXJuIHRydWU7Ci0JfQotCS8qIGdpdmUgYSBj aGFuY2UgdG8gdGhlIEdQVSAuLi4gKi8KLQlyZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wgcjEwMF9n cHVfaXNfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3Jp bmcgKnJpbmcpCiB7CiAJdTMyIHJiYm1fc3RhdHVzOwpAQCAtMjIxOSw3ICsyMTY2LDcgQEAgYm9v bCByMTAwX2dwdV9pc19sb2NrdXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCBy YWRlb25fcmluZyAqcmluZykKIAogCXJiYm1fc3RhdHVzID0gUlJFRzMyKFJfMDAwRTQwX1JCQk1f U1RBVFVTKTsKIAlpZiAoIUdfMDAwRTQwX0dVSV9BQ1RJVkUocmJibV9zdGF0dXMpKSB7Ci0JCXIx MDBfZ3B1X2xvY2t1cF91cGRhdGUoJnJkZXYtPmNvbmZpZy5yMTAwLmxvY2t1cCwgcmluZyk7CisJ CXJhZGVvbl9yaW5nX2xvY2t1cF91cGRhdGUocmluZyk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAJ LyogZm9yY2UgQ1AgYWN0aXZpdGllcyAqLwpAQCAtMjIzMSw3ICsyMTc4LDcgQEAgYm9vbCByMTAw X2dwdV9pc19sb2NrdXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25f cmluZyAqcmluZykKIAkJcmFkZW9uX3JpbmdfdW5sb2NrX2NvbW1pdChyZGV2LCByaW5nKTsKIAl9 CiAJcmluZy0+cnB0ciA9IFJSRUczMihyaW5nLT5ycHRyX3JlZyk7Ci0JcmV0dXJuIHIxMDBfZ3B1 X2NwX2lzX2xvY2t1cChyZGV2LCAmcmRldi0+Y29uZmlnLnIxMDAubG9ja3VwLCByaW5nKTsKKwly ZXR1cm4gcmFkZW9uX3JpbmdfdGVzdF9sb2NrdXAocmRldiwgcmluZyk7CiB9CiAKIHZvaWQgcjEw MF9ibV9kaXNhYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IzMDAu YwppbmRleCAyNmUwZGI4Li5lMjA3NjY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3IzMDAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IzMDAuYwpAQCAtMzg0LDcg KzM4NCw3IEBAIGJvb2wgcjMwMF9ncHVfaXNfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAKIAlyYmJtX3N0YXR1cyA9IFJSRUczMihS XzAwMEU0MF9SQkJNX1NUQVRVUyk7CiAJaWYgKCFHXzAwMEU0MF9HVUlfQUNUSVZFKHJiYm1fc3Rh dHVzKSkgewotCQlyMTAwX2dwdV9sb2NrdXBfdXBkYXRlKCZyZGV2LT5jb25maWcucjMwMC5sb2Nr dXAsIHJpbmcpOworCQlyYWRlb25fcmluZ19sb2NrdXBfdXBkYXRlKHJpbmcpOwogCQlyZXR1cm4g ZmFsc2U7CiAJfQogCS8qIGZvcmNlIENQIGFjdGl2aXRpZXMgKi8KQEAgLTM5Niw3ICszOTYsNyBA QCBib29sIHIzMDBfZ3B1X2lzX2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3Ry dWN0IHJhZGVvbl9yaW5nICpyaW5nKQogCQlyYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHJkZXYs IHJpbmcpOwogCX0KIAlyaW5nLT5ycHRyID0gUlJFRzMyKFJBREVPTl9DUF9SQl9SUFRSKTsKLQly ZXR1cm4gcjEwMF9ncHVfY3BfaXNfbG9ja3VwKHJkZXYsICZyZGV2LT5jb25maWcucjMwMC5sb2Nr dXAsIHJpbmcpOworCXJldHVybiByYWRlb25fcmluZ190ZXN0X2xvY2t1cChyZGV2LCByaW5nKTsK IH0KIAogaW50IHIzMDBfYXNpY19yZXNldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yNjAwLmMKaW5kZXggNjU5YTA5Yy4uYmUyYTU4NiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAw LmMKQEAgLTEzNTAsMTkgKzEzNTAsMTMgQEAgYm9vbCByNjAwX2dwdV9pc19sb2NrdXAoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZykKIAl1MzIgc3Ji bV9zdGF0dXM7CiAJdTMyIGdyYm1fc3RhdHVzOwogCXUzMiBncmJtX3N0YXR1czI7Ci0Jc3RydWN0 IHIxMDBfZ3B1X2xvY2t1cCAqbG9ja3VwOwogCWludCByOwogCi0JaWYgKHJkZXYtPmZhbWlseSA+ PSBDSElQX1JWNzcwKQotCQlsb2NrdXAgPSAmcmRldi0+Y29uZmlnLnJ2NzcwLmxvY2t1cDsKLQll bHNlCi0JCWxvY2t1cCA9ICZyZGV2LT5jb25maWcucjYwMC5sb2NrdXA7Ci0KIAlzcmJtX3N0YXR1 cyA9IFJSRUczMihSXzAwMEU1MF9TUkJNX1NUQVRVUyk7CiAJZ3JibV9zdGF0dXMgPSBSUkVHMzIo Ul8wMDgwMTBfR1JCTV9TVEFUVVMpOwogCWdyYm1fc3RhdHVzMiA9IFJSRUczMihSXzAwODAxNF9H UkJNX1NUQVRVUzIpOwogCWlmICghR18wMDgwMTBfR1VJX0FDVElWRShncmJtX3N0YXR1cykpIHsK LQkJcjEwMF9ncHVfbG9ja3VwX3VwZGF0ZShsb2NrdXAsIHJpbmcpOworCQlyYWRlb25fcmluZ19s b2NrdXBfdXBkYXRlKHJpbmcpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCS8qIGZvcmNlIENQIGFj dGl2aXRpZXMgKi8KQEAgLTEzNzQsNyArMTM2OCw3IEBAIGJvb2wgcjYwMF9ncHVfaXNfbG9ja3Vw KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAJ CXJhZGVvbl9yaW5nX3VubG9ja19jb21taXQocmRldiwgcmluZyk7CiAJfQogCXJpbmctPnJwdHIg PSBSUkVHMzIocmluZy0+cnB0cl9yZWcpOwotCXJldHVybiByMTAwX2dwdV9jcF9pc19sb2NrdXAo cmRldiwgbG9ja3VwLCByaW5nKTsKKwlyZXR1cm4gcmFkZW9uX3JpbmdfdGVzdF9sb2NrdXAocmRl diwgcmluZyk7CiB9CiAKIGludCByNjAwX2FzaWNfcmVzZXQoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAppbmRleCA0M2QwNDY1Li5lZjcxNTEzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uLmgKQEAgLTU5Nyw2ICs1OTcsOCBAQCBzdHJ1Y3QgcmFkZW9uX3Jp bmcgewogCXVuc2lnbmVkCQlyaW5nX3NpemU7CiAJdW5zaWduZWQJCXJpbmdfZnJlZV9kdzsKIAlp bnQJCQljb3VudF9kdzsKKwl1bnNpZ25lZCBsb25nCQlsYXN0X2FjdGl2aXR5OworCXVuc2lnbmVk CQlsYXN0X3JwdHI7CiAJdWludDY0X3QJCWdwdV9hZGRyOwogCXVpbnQzMl90CQlhbGlnbl9tYXNr OwogCXVpbnQzMl90CQlwdHJfbWFzazsKQEAgLTc0MCw2ICs3NDIsOCBAQCB2b2lkIHJhZGVvbl9y aW5nX2NvbW1pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5n ICpjcCk7CiB2b2lkIHJhZGVvbl9yaW5nX3VubG9ja19jb21taXQoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqY3ApOwogdm9pZCByYWRlb25fcmluZ191bmxv Y2tfdW5kbyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpj cCk7CiBpbnQgcmFkZW9uX3JpbmdfdGVzdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3Ry dWN0IHJhZGVvbl9yaW5nICpjcCk7Cit2b2lkIHJhZGVvbl9yaW5nX2xvY2t1cF91cGRhdGUoc3Ry dWN0IHJhZGVvbl9yaW5nICpyaW5nKTsKK2Jvb2wgcmFkZW9uX3JpbmdfdGVzdF9sb2NrdXAoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZyk7CiBpbnQg cmFkZW9uX3JpbmdfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVv bl9yaW5nICpjcCwgdW5zaWduZWQgcmluZ19zaXplLAogCQkgICAgIHVuc2lnbmVkIHJwdHJfb2Zm cywgdW5zaWduZWQgcnB0cl9yZWcsIHVuc2lnbmVkIHdwdHJfcmVnLAogCQkgICAgIHUzMiBwdHJf cmVnX3NoaWZ0LCB1MzIgcHRyX3JlZ19tYXNrLCB1MzIgbm9wKTsKQEAgLTExODksMTYgKzExOTMs MTAgQEAgc3RydWN0IHJhZGVvbl9hc2ljIHsKIC8qCiAgKiBBc2ljIHN0cnVjdHVyZXMKICAqLwot c3RydWN0IHIxMDBfZ3B1X2xvY2t1cCB7Ci0JdW5zaWduZWQgbG9uZwlsYXN0X2ppZmZpZXM7Ci0J dTMyCQlsYXN0X2NwX3JwdHI7Ci19OwotCiBzdHJ1Y3QgcjEwMF9hc2ljIHsKIAljb25zdCB1bnNp Z25lZAkJKnJlZ19zYWZlX2JtOwogCXVuc2lnbmVkCQlyZWdfc2FmZV9ibV9zaXplOwogCXUzMgkJ CWhkcF9jbnRsOwotCXN0cnVjdCByMTAwX2dwdV9sb2NrdXAJbG9ja3VwOwogfTsKIAogc3RydWN0 IHIzMDBfYXNpYyB7CkBAIC0xMjA2LDcgKzEyMDQsNiBAQCBzdHJ1Y3QgcjMwMF9hc2ljIHsKIAl1 bnNpZ25lZAkJcmVnX3NhZmVfYm1fc2l6ZTsKIAl1MzIJCQlyZXN5bmNfc2NyYXRjaDsKIAl1MzIJ CQloZHBfY250bDsKLQlzdHJ1Y3QgcjEwMF9ncHVfbG9ja3VwCWxvY2t1cDsKIH07CiAKIHN0cnVj dCByNjAwX2FzaWMgewpAQCAtMTIyOCw3ICsxMjI1LDYgQEAgc3RydWN0IHI2MDBfYXNpYyB7CiAJ dW5zaWduZWQJCXRpbGluZ19ncm91cF9zaXplOwogCXVuc2lnbmVkCQl0aWxlX2NvbmZpZzsKIAl1 bnNpZ25lZAkJYmFja2VuZF9tYXA7Ci0Jc3RydWN0IHIxMDBfZ3B1X2xvY2t1cAlsb2NrdXA7CiB9 OwogCiBzdHJ1Y3QgcnY3NzBfYXNpYyB7CkBAIC0xMjU0LDcgKzEyNTAsNiBAQCBzdHJ1Y3QgcnY3 NzBfYXNpYyB7CiAJdW5zaWduZWQJCXRpbGluZ19ncm91cF9zaXplOwogCXVuc2lnbmVkCQl0aWxl X2NvbmZpZzsKIAl1bnNpZ25lZAkJYmFja2VuZF9tYXA7Ci0Jc3RydWN0IHIxMDBfZ3B1X2xvY2t1 cAlsb2NrdXA7CiB9OwogCiBzdHJ1Y3QgZXZlcmdyZWVuX2FzaWMgewpAQCAtMTI4MSw3ICsxMjc2 LDYgQEAgc3RydWN0IGV2ZXJncmVlbl9hc2ljIHsKIAl1bnNpZ25lZCB0aWxpbmdfZ3JvdXBfc2l6 ZTsKIAl1bnNpZ25lZCB0aWxlX2NvbmZpZzsKIAl1bnNpZ25lZCBiYWNrZW5kX21hcDsKLQlzdHJ1 Y3QgcjEwMF9ncHVfbG9ja3VwCWxvY2t1cDsKIH07CiAKIHN0cnVjdCBjYXltYW5fYXNpYyB7CkBA IC0xMzIwLDcgKzEzMTQsNiBAQCBzdHJ1Y3QgY2F5bWFuX2FzaWMgewogCXVuc2lnbmVkIG11bHRp X2dwdV90aWxlX3NpemU7CiAKIAl1bnNpZ25lZCB0aWxlX2NvbmZpZzsKLQlzdHJ1Y3QgcjEwMF9n cHVfbG9ja3VwCWxvY2t1cDsKIH07CiAKIHN0cnVjdCBzaV9hc2ljIHsKQEAgLTEzNTEsNyArMTM0 NCw2IEBAIHN0cnVjdCBzaV9hc2ljIHsKIAl1bnNpZ25lZCBtdWx0aV9ncHVfdGlsZV9zaXplOwog CiAJdW5zaWduZWQgdGlsZV9jb25maWc7Ci0Jc3RydWN0IHIxMDBfZ3B1X2xvY2t1cAlsb2NrdXA7 CiB9OwogCiB1bmlvbiByYWRlb25fYXNpY19jb25maWcgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fYXNpYy5oCmluZGV4IGIxMzViZWMuLmIwOTQxZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9hc2ljLmgKQEAgLTEwMywxMSArMTAzLDYgQEAgaW50IHIxMDBfcGNpX2dhcnRfZW5hYmxl KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIHZvaWQgcjEwMF9wY2lfZ2FydF9kaXNhYmxl KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIGludCByMTAwX2RlYnVnZnNfbWNfaW5mb19p bml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIGludCByMTAwX2d1aV93YWl0X2Zvcl9p ZGxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKLXZvaWQgcjEwMF9ncHVfbG9ja3VwX3Vw ZGF0ZShzdHJ1Y3QgcjEwMF9ncHVfbG9ja3VwICpsb2NrdXAsCi0JCQkgICAgc3RydWN0IHJhZGVv bl9yaW5nICpjcCk7Ci1ib29sIHIxMDBfZ3B1X2NwX2lzX2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwKLQkJCSAgIHN0cnVjdCByMTAwX2dwdV9sb2NrdXAgKmxvY2t1cCwKLQkJCSAg IHN0cnVjdCByYWRlb25fcmluZyAqY3ApOwogdm9pZCByMTAwX2liX2Zpbmkoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYpOwogaW50IHIxMDBfaWJfdGVzdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nKTsKIHZvaWQgcjEwMF9pcnFfZGlzYWJsZShz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9yaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9yaW5n LmMKaW5kZXggMTUyNTQ2ZS4uNWZkNjgzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fcmluZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3Jp bmcuYwpAQCAtMzMyLDYgKzMzMiw1OSBAQCB2b2lkIHJhZGVvbl9yaW5nX3VubG9ja191bmRvKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbgogCW11dGV4 X3VubG9jaygmcmluZy0+bXV0ZXgpOwogfQogCit2b2lkIHJhZGVvbl9yaW5nX2xvY2t1cF91cGRh dGUoc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nKQoreworCXJpbmctPmxhc3RfcnB0ciA9IHJpbmct PnJwdHI7CisJcmluZy0+bGFzdF9hY3Rpdml0eSA9IGppZmZpZXM7Cit9CisKKy8qKgorICogcmFk ZW9uX3JpbmdfdGVzdF9sb2NrdXAoKSAtIGNoZWNrIGlmIHJpbmcgaXMgbG9ja2VkdXAgYnkgcmVj b3JkaW5nIGluZm9ybWF0aW9uCisgKiBAcmRldjogICAgICAgcmFkZW9uIGRldmljZSBzdHJ1Y3R1 cmUKKyAqIEByaW5nOiAgICAgICByYWRlb25fcmluZyBzdHJ1Y3R1cmUgaG9sZGluZyByaW5nIGlu Zm9ybWF0aW9uCisgKgorICogV2UgZG9uJ3QgbmVlZCB0byBpbml0aWFsaXplIHRoZSBsb2NrdXAg dHJhY2tpbmcgaW5mb3JtYXRpb24gYXMgd2Ugd2lsbCBlaXRoZXIKKyAqIGhhdmUgQ1AgcnB0ciB0 byBhIGRpZmZlcmVudCB2YWx1ZSBvZiBqaWZmaWVzIHdyYXAgYXJvdW5kIHdoaWNoIHdpbGwgZm9y Y2UKKyAqIGluaXRpYWxpemF0aW9uIG9mIHRoZSBsb2NrdXAgdHJhY2tpbmcgaW5mb3JtYXRpb25z LgorICoKKyAqIEEgcG9zc2libGUgZmFsc2UgcG9zaXRpdmllIGlzIGlmIHdlIGdldCBjYWxsIGFm dGVyIHdoaWxlIGFuZCBsYXN0X2NwX3JwdHIgPT0KKyAqIHRoZSBjdXJyZW50IENQIHJwdHIsIGV2 ZW4gaWYgaXQncyB1bmxpa2VseSBpdCBtaWdodCBoYXBwZW4uIFRvIGF2b2lkIHRoaXMKKyAqIGlm IHRoZSBlbGFwc2VkIHRpbWUgc2luY2UgbGFzdCBjYWxsIGlzIGJpZ2dlciB0aGFuIDIgc2Vjb25k IHRoYW4gd2UgcmV0dXJuCisgKiBmYWxzZSBhbmQgdXBkYXRlIHRoZSB0cmFja2luZyBpbmZvcm1h dGlvbi4gRHVlIHRvIHRoaXMgdGhlIGNhbGxlciBtdXN0IGNhbGwKKyAqIHJhZGVvbl9yaW5nX3Rl c3RfbG9ja3VwIHNldmVyYWwgdGltZSBpbiBsZXNzIHRoYW4gMnNlYyBmb3IgbG9ja3VwIHRvIGJl IHJlcG9ydGVkCisgKiB0aGUgZmVuY2luZyBjb2RlIHNob3VsZCBiZSBjYXV0aW91cyBhYm91dCB0 aGF0LgorICoKKyAqIENhbGxlciBzaG91bGQgd3JpdGUgdG8gdGhlIHJpbmcgdG8gZm9yY2UgQ1Ag dG8gZG8gc29tZXRoaW5nIHNvIHdlIGRvbid0IGdldAorICogZmFsc2UgcG9zaXRpdmUgd2hlbiBD UCBpcyBqdXN0IGdpdmVkIG5vdGhpbmcgdG8gZG8uCisgKgorICoqLworYm9vbCByYWRlb25fcmlu Z190ZXN0X2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9y aW5nICpyaW5nKQoreworCXVuc2lnbmVkIGxvbmcgY2ppZmZpZXMsIGVsYXBzZWQ7CisJdWludDMy X3QgcnB0cjsKKworCWNqaWZmaWVzID0gamlmZmllczsKKwlpZiAoIXRpbWVfYWZ0ZXIoY2ppZmZp ZXMsIHJpbmctPmxhc3RfYWN0aXZpdHkpKSB7CisJCS8qIGxpa2VseSBhIHdyYXAgYXJvdW5kICov CisJCXJhZGVvbl9yaW5nX2xvY2t1cF91cGRhdGUocmluZyk7CisJCXJldHVybiBmYWxzZTsKKwl9 CisJcnB0ciA9IFJSRUczMihyaW5nLT5ycHRyX3JlZyk7CisJcmluZy0+cnB0ciA9IChycHRyICYg cmluZy0+cHRyX3JlZ19tYXNrKSA+PiByaW5nLT5wdHJfcmVnX3NoaWZ0OworCWlmIChyaW5nLT5y cHRyICE9IHJpbmctPmxhc3RfcnB0cikgeworCQkvKiBDUCBpcyBzdGlsbCB3b3JraW5nIG5vIGxv Y2t1cCAqLworCQlyYWRlb25fcmluZ19sb2NrdXBfdXBkYXRlKHJpbmcpOworCQlyZXR1cm4gZmFs c2U7CisJfQorCWVsYXBzZWQgPSBqaWZmaWVzX3RvX21zZWNzKGNqaWZmaWVzIC0gcmluZy0+bGFz dF9hY3Rpdml0eSk7CisJaWYgKGVsYXBzZWQgPj0gMTAwMDApIHsKKwkJZGV2X2VycihyZGV2LT5k ZXYsICJHUFUgbG9ja3VwIENQIHN0YWxsIGZvciBtb3JlIHRoYW4gJWx1bXNlY1xuIiwgZWxhcHNl ZCk7CisJCXJldHVybiB0cnVlOworCX0KKwkvKiBnaXZlIGEgY2hhbmNlIHRvIHRoZSBHUFUgLi4u ICovCisJcmV0dXJuIGZhbHNlOworfQorCiBpbnQgcmFkZW9uX3JpbmdfaW5pdChzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nLCB1bnNpZ25lZCByaW5n X3NpemUsCiAJCSAgICAgdW5zaWduZWQgcnB0cl9vZmZzLCB1bnNpZ25lZCBycHRyX3JlZywgdW5z aWduZWQgd3B0cl9yZWcsCiAJCSAgICAgdTMyIHB0cl9yZWdfc2hpZnQsIHUzMiBwdHJfcmVnX21h c2ssIHUzMiBub3ApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMgYi9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMKaW5kZXggN2MwMTEwZC4uYjExYjlmMCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vc2kuYwpAQCAtMjIxNyw3ICsyMjE3LDYgQEAgYm9vbCBzaV9ncHVfaXNfbG9ja3VwKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAJdTMy IHNyYm1fc3RhdHVzOwogCXUzMiBncmJtX3N0YXR1cywgZ3JibV9zdGF0dXMyOwogCXUzMiBncmJt X3N0YXR1c19zZTAsIGdyYm1fc3RhdHVzX3NlMTsKLQlzdHJ1Y3QgcjEwMF9ncHVfbG9ja3VwICps b2NrdXAgPSAmcmRldi0+Y29uZmlnLnNpLmxvY2t1cDsKIAlpbnQgcjsKIAogCXNyYm1fc3RhdHVz ID0gUlJFRzMyKFNSQk1fU1RBVFVTKTsKQEAgLTIyMjYsNyArMjIyNSw3IEBAIGJvb2wgc2lfZ3B1 X2lzX2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5n ICpyaW5nKQogCWdyYm1fc3RhdHVzX3NlMCA9IFJSRUczMihHUkJNX1NUQVRVU19TRTApOwogCWdy Ym1fc3RhdHVzX3NlMSA9IFJSRUczMihHUkJNX1NUQVRVU19TRTEpOwogCWlmICghKGdyYm1fc3Rh dHVzICYgR1VJX0FDVElWRSkpIHsKLQkJcjEwMF9ncHVfbG9ja3VwX3VwZGF0ZShsb2NrdXAsIHJp bmcpOworCQlyYWRlb25fcmluZ19sb2NrdXBfdXBkYXRlKHJpbmcpOwogCQlyZXR1cm4gZmFsc2U7 CiAJfQogCS8qIGZvcmNlIENQIGFjdGl2aXRpZXMgKi8KQEAgLTIyMzksNyArMjIzOCw3IEBAIGJv b2wgc2lfZ3B1X2lzX2xvY2t1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJh ZGVvbl9yaW5nICpyaW5nKQogCX0KIAkvKiBYWFggZGVhbCB3aXRoIENQMCwxLDIgKi8KIAlyaW5n LT5ycHRyID0gUlJFRzMyKHJpbmctPnJwdHJfcmVnKTsKLQlyZXR1cm4gcjEwMF9ncHVfY3BfaXNf bG9ja3VwKHJkZXYsIGxvY2t1cCwgcmluZyk7CisJcmV0dXJuIHJhZGVvbl9yaW5nX3Rlc3RfbG9j a3VwKHJkZXYsIHJpbmcpOwogfQogCiBzdGF0aWMgaW50IHNpX2dwdV9zb2Z0X3Jlc2V0KHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KQotLSAKMS43LjUuNAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK