From mboxrd@z Thu Jan 1 00:00:00 1970 From: j.glisse@gmail.com Subject: [PATCH 18/27] drm/radeon: rip out the ib pool v3 Date: Tue, 1 May 2012 13:19:28 -0400 Message-ID: <1335892777-7357-19-git-send-email-j.glisse@gmail.com> References: <ยท> <1335892777-7357-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 D0E0BA0908 for ; Tue, 1 May 2012 10:20:21 -0700 (PDT) Received: by mail-qa0-f42.google.com with SMTP id i31so1592646qaf.15 for ; Tue, 01 May 2012 10:20:21 -0700 (PDT) In-Reply-To: <1335892777-7357-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: =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGU+CgpJdCBpc24n dCBuZWNlc3NhcnkgYW55IG1vcmUgYW5kIHRoZSBzdWJhbGxvY2F0b3IKc2VlbXMgdG8gcGVyZm9y bSBldmVuIGJldHRlci4KCnYyOiBpZ25vcmUgRVJFU1RBUlRTWVMgaW4gZXJyb3IgcmVwb3J0aW5n LAogICAgc3BsaXQgZmVuY2UgY2hhbmdlcyBpbnRvIHNlcGVyYXRlIHBhdGNoLAogICAgdXNlIHRy eV9mcmVlIFNBIGNhbGxiYWNrIHRvIGF2b2lkIGxvY2t1cHMKdjM6IHJlYmFzZSBvbiB0b3Agb2Yg c2EgbWFuYWdlciBuZXcgcGF0Y2gKClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGRl YXRoc2ltcGxlQHZvZGFmb25lLmRlPgpSZXZpZXdlZC1ieTogSmVyb21lIEdsaXNzZSA8amdsaXNz ZUByZWRoYXQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggICAgICAg ICAgIHwgICAxNyArLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jICAg IHwgICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nYXJ0LmMgICAgICB8ICAg MTIgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3JpbmcuYyAgICAgIHwgIDI3NCAr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fc2VtYXBob3JlLmMgfCAgICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25z KCspLCAyMDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKaW5kZXggZjE4YWEx My4uMGM4ODkzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBAIC02MTQsNyArNjE0LDYgQEAg dm9pZCByYWRlb25faXJxX2ttc19wZmxpcF9pcnFfcHV0KHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBpbnQgY3J0Yyk7CiAKIHN0cnVjdCByYWRlb25faWIgewogCXN0cnVjdCByYWRlb25fc2Ff Ym8Jc2FfYm87Ci0JdW5zaWduZWQJCWlkeDsKIAl1aW50MzJfdAkJbGVuZ3RoX2R3OwogCXVpbnQ2 NF90CQlncHVfYWRkcjsKIAl1aW50MzJfdAkJKnB0cjsKQEAgLTYyMywxOCArNjIyLDYgQEAgc3Ry dWN0IHJhZGVvbl9pYiB7CiAJYm9vbAkJCWlzX2NvbnN0X2liOwogfTsKIAotLyoKLSAqIGxvY2tp bmcgLQotICogbXV0ZXggcHJvdGVjdHMgc2NoZWR1bGVkX2licywgcmVhZHksIGFsbG9jX2JtCi0g Ki8KLXN0cnVjdCByYWRlb25faWJfcG9vbCB7Ci0Jc3RydWN0IHJhZGVvbl9tdXRleAkJbXV0ZXg7 Ci0Jc3RydWN0IHJhZGVvbl9zYV9tYW5hZ2VyCXNhX21hbmFnZXI7Ci0Jc3RydWN0IHJhZGVvbl9p YgkJaWJzW1JBREVPTl9JQl9QT09MX1NJWkVdOwotCWJvb2wJCQkJcmVhZHk7Ci0JdW5zaWduZWQJ CQloZWFkX2lkOwotfTsKLQogc3RydWN0IHJhZGVvbl9yaW5nIHsKIAlzdHJ1Y3QgcmFkZW9uX2Jv CSpyaW5nX29iajsKIAl2b2xhdGlsZSB1aW50MzJfdAkqcmluZzsKQEAgLTc3NSw3ICs3NjIsNiBA QCBzdHJ1Y3Qgc2lfcmxjIHsKIGludCByYWRlb25faWJfZ2V0KHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCBpbnQgcmluZywKIAkJICBzdHJ1Y3QgcmFkZW9uX2liICoqaWIsIHVuc2lnbmVkIHNp emUpOwogdm9pZCByYWRlb25faWJfZnJlZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3Ry dWN0IHJhZGVvbl9pYiAqKmliKTsKLWJvb2wgcmFkZW9uX2liX3RyeV9mcmVlKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYik7CiBpbnQgcmFkZW9uX2liX3Nj aGVkdWxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYik7 CiBpbnQgcmFkZW9uX2liX3Bvb2xfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiB2 b2lkIHJhZGVvbl9pYl9wb29sX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwpAQCAt MTUwOCw3ICsxNDk0LDggQEAgc3RydWN0IHJhZGVvbl9kZXZpY2UgewogCXJ3bG9ja190CQkJZmVu Y2VfbG9jazsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlX2RyaXZlcglmZW5jZV9kcnZbUkFERU9OX05V TV9SSU5HU107CiAJc3RydWN0IHJhZGVvbl9yaW5nCQlyaW5nW1JBREVPTl9OVU1fUklOR1NdOwot CXN0cnVjdCByYWRlb25faWJfcG9vbAkJaWJfcG9vbDsKKwlib29sCQkJCWliX3Bvb2xfcmVhZHk7 CisJc3RydWN0IHJhZGVvbl9zYV9tYW5hZ2VyCXNhX21hbmFnZXI7CiAJc3RydWN0IHJhZGVvbl9p cnEJCWlycTsKIAlzdHJ1Y3QgcmFkZW9uX2FzaWMJCSphc2ljOwogCXN0cnVjdCByYWRlb25fZ2Vt CQlnZW07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2Uu YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jCmluZGV4IGQ3N2YxOWYu LjI2ZmI5ZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rldmlj ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jCkBAIC03MjMs NyArNzIzLDYgQEAgaW50IHJhZGVvbl9kZXZpY2VfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwKIAkvKiBtdXRleCBpbml0aWFsaXphdGlvbiBhcmUgYWxsIGRvbmUgaGVyZSBzbyB3ZQog CSAqIGNhbiByZWNhbGwgZnVuY3Rpb24gd2l0aG91dCBoYXZpbmcgbG9ja2luZyBpc3N1ZXMgKi8K IAlyYWRlb25fbXV0ZXhfaW5pdCgmcmRldi0+Y3NfbXV0ZXgpOwotCXJhZGVvbl9tdXRleF9pbml0 KCZyZGV2LT5pYl9wb29sLm11dGV4KTsKIAlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX05VTV9SSU5H UzsgKytpKQogCQltdXRleF9pbml0KCZyZGV2LT5yaW5nW2ldLm11dGV4KTsKIAltdXRleF9pbml0 KCZyZGV2LT5kY19od19pMmNfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fZ2FydC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2FydC5j CmluZGV4IDE3NjY2NzEuLjhlYmExYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2dhcnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nYXJ0 LmMKQEAgLTQzMiw4ICs0MzIsOCBAQCByZXRyeV9pZDoKIAlyZGV2LT52bV9tYW5hZ2VyLnVzZV9i aXRtYXAgfD0gMSA8PCBpZDsKIAl2bS0+aWQgPSBpZDsKIAlsaXN0X2FkZF90YWlsKCZ2bS0+bGlz dCwgJnJkZXYtPnZtX21hbmFnZXIubHJ1X3ZtKTsKLQlyZXR1cm4gcmFkZW9uX3ZtX2JvX3VwZGF0 ZV9wdGUocmRldiwgdm0sIHJkZXYtPmliX3Bvb2wuc2FfbWFuYWdlci5ibywKLQkJCQkgICAgICAg JnJkZXYtPmliX3Bvb2wuc2FfbWFuYWdlci5iby0+dGJvLm1lbSk7CisJcmV0dXJuIHJhZGVvbl92 bV9ib191cGRhdGVfcHRlKHJkZXYsIHZtLCByZGV2LT5zYV9tYW5hZ2VyLmJvLAorCQkJCSAgICAg ICAmcmRldi0+c2FfbWFuYWdlci5iby0+dGJvLm1lbSk7CiB9CiAKIC8qIG9iamVjdCBoYXZlIHRv IGJlIHJlc2VydmVkICovCkBAIC02MzEsNyArNjMxLDcgQEAgaW50IHJhZGVvbl92bV9pbml0KHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3ZtICp2bSkKIAkvKiBtYXAg dGhlIGliIHBvb2wgYnVmZmVyIGF0IDAgaW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlLCBzZXQKIAkg KiByZWFkIG9ubHkKIAkgKi8KLQlyID0gcmFkZW9uX3ZtX2JvX2FkZChyZGV2LCB2bSwgcmRldi0+ aWJfcG9vbC5zYV9tYW5hZ2VyLmJvLCAwLAorCXIgPSByYWRlb25fdm1fYm9fYWRkKHJkZXYsIHZt LCByZGV2LT5zYV9tYW5hZ2VyLmJvLCAwLAogCQkJICAgICBSQURFT05fVk1fUEFHRV9SRUFEQUJM RSB8IFJBREVPTl9WTV9QQUdFX1NOT09QRUQpOwogCXJldHVybiByOwogfQpAQCAtNjQ4LDEyICs2 NDgsMTIgQEAgdm9pZCByYWRlb25fdm1fZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwg c3RydWN0IHJhZGVvbl92bSAqdm0pCiAJcmFkZW9uX211dGV4X3VubG9jaygmcmRldi0+Y3NfbXV0 ZXgpOwogCiAJLyogcmVtb3ZlIGFsbCBibyAqLwotCXIgPSByYWRlb25fYm9fcmVzZXJ2ZShyZGV2 LT5pYl9wb29sLnNhX21hbmFnZXIuYm8sIGZhbHNlKTsKKwlyID0gcmFkZW9uX2JvX3Jlc2VydmUo cmRldi0+c2FfbWFuYWdlci5ibywgZmFsc2UpOwogCWlmICghcikgewotCQlib192YSA9IHJhZGVv bl9ib192YShyZGV2LT5pYl9wb29sLnNhX21hbmFnZXIuYm8sIHZtKTsKKwkJYm9fdmEgPSByYWRl b25fYm9fdmEocmRldi0+c2FfbWFuYWdlci5ibywgdm0pOwogCQlsaXN0X2RlbF9pbml0KCZib192 YS0+Ym9fbGlzdCk7CiAJCWxpc3RfZGVsX2luaXQoJmJvX3ZhLT52bV9saXN0KTsKLQkJcmFkZW9u X2JvX3VucmVzZXJ2ZShyZGV2LT5pYl9wb29sLnNhX21hbmFnZXIuYm8pOworCQlyYWRlb25fYm9f dW5yZXNlcnZlKHJkZXYtPnNhX21hbmFnZXIuYm8pOwogCQlrZnJlZShib192YSk7CiAJfQogCWlm ICghbGlzdF9lbXB0eSgmdm0tPnZhKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fcmluZy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcmluZy5j CmluZGV4IDAyOTMzNDIuLjcwMzFkNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX3JpbmcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9yaW5n LmMKQEAgLTI0LDYgKzI0LDcgQEAKICAqIEF1dGhvcnM6IERhdmUgQWlybGllCiAgKiAgICAgICAg ICBBbGV4IERldWNoZXIKICAqICAgICAgICAgIEplcm9tZSBHbGlzc2UKKyAqICAgICAgICAgIENo cmlzdGlhbiBLw7ZuaWcKICAqLwogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAjaW5jbHVk ZSA8bGludXgvc2xhYi5oPgpAQCAtMzMsOCArMzQsMTAgQEAKICNpbmNsdWRlICJyYWRlb24uaCIK ICNpbmNsdWRlICJhdG9tLmgiCiAKLWludCByYWRlb25fZGVidWdmc19pYl9pbml0KHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KTsKLWludCByYWRlb25fZGVidWdmc19yaW5nX2luaXQoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZyk7CisvKgorICog SUIuCisgKi8KK2ludCByYWRlb25fZGVidWdmc19zYV9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KTsKIAogdTMyIHJhZGVvbl9nZXRfaWJfdmFsdWUoc3RydWN0IHJhZGVvbl9jc19wYXJz ZXIgKnAsIGludCBpZHgpCiB7CkBAIC02MSwxMjEgKzY0LDcxIEBAIHUzMiByYWRlb25fZ2V0X2li X3ZhbHVlKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLCBpbnQgaWR4KQogCXJldHVybiBpZHhf dmFsdWU7CiB9CiAKLXZvaWQgcmFkZW9uX3Jpbmdfd3JpdGUoc3RydWN0IHJhZGVvbl9yaW5nICpy aW5nLCB1aW50MzJfdCB2KQotewotI2lmIERSTV9ERUJVR19DT0RFCi0JaWYgKHJpbmctPmNvdW50 X2R3IDw9IDApIHsKLQkJRFJNX0VSUk9SKCJyYWRlb246IHdyaXR0aW5nIG1vcmUgZHdvcmQgdG8g cmluZyB0aGFuIGV4cGVjdGVkICFcbiIpOwotCX0KLSNlbmRpZgotCXJpbmctPnJpbmdbcmluZy0+ d3B0cisrXSA9IHY7Ci0JcmluZy0+d3B0ciAmPSByaW5nLT5wdHJfbWFzazsKLQlyaW5nLT5jb3Vu dF9kdy0tOwotCXJpbmctPnJpbmdfZnJlZV9kdy0tOwotfQotCi0vKgotICogSUIuCi0gKi8KLWJv b2wgcmFkZW9uX2liX3RyeV9mcmVlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3Qg cmFkZW9uX2liICppYikKLXsKLQlib29sIGRvbmUgPSBmYWxzZTsKLQotCS8qIG9ubHkgZnJlZSBp YiB3aGljaCBoYXZlIGJlZW4gZW1pdGVkICovCi0JaWYgKGliLT5mZW5jZSAmJiBpYi0+ZmVuY2Ut PmVtaXR0ZWQpIHsKLQkJaWYgKHJhZGVvbl9mZW5jZV9zaWduYWxlZChpYi0+ZmVuY2UpKSB7Ci0J CQlyYWRlb25fZmVuY2VfdW5yZWYoJmliLT5mZW5jZSk7Ci0JCQlyYWRlb25fc2FfYm9fZnJlZShy ZGV2LCAmaWItPnNhX2JvKTsKLQkJCWRvbmUgPSB0cnVlOwotCQl9Ci0JfQotCXJldHVybiBkb25l OwotfQotCiBpbnQgcmFkZW9uX2liX2dldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50 IHJpbmcsCiAJCSAgc3RydWN0IHJhZGVvbl9pYiAqKmliLCB1bnNpZ25lZCBzaXplKQogewotCXN0 cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlOwotCXVuc2lnbmVkIGNyZXRyeSA9IDA7Ci0JaW50IHIg PSAwLCBpLCBpZHg7CisJaW50IHI7CiAKLQkqaWIgPSBOVUxMOwotCS8qIGFsaWduIHNpemUgb24g MjU2IGJ5dGVzICovCi0Jc2l6ZSA9IEFMSUdOKHNpemUsIDI1Nik7CisJKmliID0ga21hbGxvYyhz aXplb2Yoc3RydWN0IHJhZGVvbl9pYiksIEdGUF9LRVJORUwpOworCWlmICgqaWIgPT0gTlVMTCkg eworCQlyZXR1cm4gLUVOT01FTTsKKwl9CiAKLQlyID0gcmFkZW9uX2ZlbmNlX2NyZWF0ZShyZGV2 LCAmZmVuY2UsIHJpbmcpOworCXIgPSByYWRlb25fc2FfYm9fbmV3KHJkZXYsICZyZGV2LT5zYV9t YW5hZ2VyLCAmKCppYiktPnNhX2JvLCBzaXplLCAyNTYsIHRydWUpOwogCWlmIChyKSB7Ci0JCWRl dl9lcnIocmRldi0+ZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBmZW5jZSBmb3IgbmV3IElCXG4iKTsK KwkJaWYgKHIgIT0gLUVSRVNUQVJUU1lTKSB7CisJCQlkZXZfZXJyKHJkZXYtPmRldiwgImZhaWxl ZCB0byBnZXQgYSBuZXcgSUIgKCVkKVxuIiwgcik7CisJCX0KKwkJa2ZyZWUoKmliKTsKKwkJKmli ID0gTlVMTDsKIAkJcmV0dXJuIHI7CiAJfQogCi0JcmFkZW9uX211dGV4X2xvY2soJnJkZXYtPmli X3Bvb2wubXV0ZXgpOwotCWlkeCA9IHJkZXYtPmliX3Bvb2wuaGVhZF9pZDsKLXJldHJ5OgotCWlm IChjcmV0cnkgPiA1KSB7Ci0JCWRldl9lcnIocmRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBhbiBp YiBhZnRlciA1IHJldHJ5XG4iKTsKLQkJcmFkZW9uX211dGV4X3VubG9jaygmcmRldi0+aWJfcG9v bC5tdXRleCk7Ci0JCXJhZGVvbl9mZW5jZV91bnJlZigmZmVuY2UpOwotCQlyZXR1cm4gLUVOT01F TTsKLQl9Ci0JY3JldHJ5Kys7Ci0JZm9yIChpID0gMDsgaSA8IFJBREVPTl9JQl9QT09MX1NJWkU7 IGkrKykgewotCQlyYWRlb25faWJfdHJ5X2ZyZWUocmRldiwgJnJkZXYtPmliX3Bvb2wuaWJzW2lk eF0pOwotCQlpZiAocmRldi0+aWJfcG9vbC5pYnNbaWR4XS5mZW5jZSA9PSBOVUxMKSB7Ci0JCQly ID0gcmFkZW9uX3NhX2JvX25ldyhyZGV2LCAmcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLAotCQkJ CQkgICAgICZyZGV2LT5pYl9wb29sLmlic1tpZHhdLnNhX2JvLAotCQkJCQkgICAgIHNpemUsIDI1 NiwgZmFsc2UpOwotCQkJaWYgKCFyKSB7Ci0JCQkJKmliID0gJnJkZXYtPmliX3Bvb2wuaWJzW2lk eF07Ci0JCQkJKCppYiktPnB0ciA9IHJhZGVvbl9zYV9ib19jcHVfYWRkcigmKCppYiktPnNhX2Jv KTsKLQkJCQkoKmliKS0+Z3B1X2FkZHIgPSByYWRlb25fc2FfYm9fZ3B1X2FkZHIoJigqaWIpLT5z YV9ibyk7Ci0JCQkJKCppYiktPmZlbmNlID0gZmVuY2U7Ci0JCQkJKCppYiktPnZtX2lkID0gMDsK LQkJCQkoKmliKS0+aXNfY29uc3RfaWIgPSBmYWxzZTsKLQkJCQkvKiBpYiBhcmUgbW9zdCBsaWtl bHkgdG8gYmUgYWxsb2NhdGVkIGluIGEgcmluZyBmYXNoaW9uCi0JCQkJICogdGh1cyByZGV2LT5p Yl9wb29sLmhlYWRfaWQgc2hvdWxkIGJlIHRoZSBpZCBvZiB0aGUKLQkJCQkgKiBvbGRlc3QgaWIK LQkJCQkgKi8KLQkJCQlyZGV2LT5pYl9wb29sLmhlYWRfaWQgPSAoMSArIGlkeCk7Ci0JCQkJcmRl di0+aWJfcG9vbC5oZWFkX2lkICY9IChSQURFT05fSUJfUE9PTF9TSVpFIC0gMSk7Ci0JCQkJcmFk ZW9uX211dGV4X3VubG9jaygmcmRldi0+aWJfcG9vbC5tdXRleCk7Ci0JCQkJcmV0dXJuIDA7Ci0J CQl9Ci0JCX0KLQkJaWR4ID0gKGlkeCArIDEpICYgKFJBREVPTl9JQl9QT09MX1NJWkUgLSAxKTsK LQl9Ci0JLyogdGhpcyBzaG91bGQgYmUgcmFyZSBldmVudCwgaWUgYWxsIGliIHNjaGVkdWxlZCBu b25lIHNpZ25hbGVkIHlldC4KLQkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX0lCX1BPT0xf U0laRTsgaSsrKSB7Ci0JCWlmIChyZGV2LT5pYl9wb29sLmlic1tpZHhdLmZlbmNlICYmIHJkZXYt PmliX3Bvb2wuaWJzW2lkeF0uZmVuY2UtPmVtaXR0ZWQpIHsKLQkJCXIgPSByYWRlb25fZmVuY2Vf d2FpdChyZGV2LT5pYl9wb29sLmlic1tpZHhdLmZlbmNlLCBmYWxzZSk7Ci0JCQlpZiAoIXIpIHsK LQkJCQlnb3RvIHJldHJ5OwotCQkJfQotCQkJLyogYW4gZXJyb3IgaGFwcGVuZWQgKi8KLQkJCWJy ZWFrOwotCQl9Ci0JCWlkeCA9IChpZHggKyAxKSAmIChSQURFT05fSUJfUE9PTF9TSVpFIC0gMSk7 CisJciA9IHJhZGVvbl9mZW5jZV9jcmVhdGUocmRldiwgJigqaWIpLT5mZW5jZSwgcmluZyk7CisJ aWYgKHIpIHsKKwkJZGV2X2VycihyZGV2LT5kZXYsICJmYWlsZWQgdG8gY3JlYXRlIGZlbmNlIGZv ciBuZXcgSUIgKCVkKVxuIiwgcik7CisJCXJhZGVvbl9zYV9ib19mcmVlKHJkZXYsICYoKmliKS0+ c2FfYm8pOworCQlrZnJlZSgqaWIpOworCQkqaWIgPSBOVUxMOworCQlyZXR1cm4gcjsKIAl9Ci0J cmFkZW9uX211dGV4X3VubG9jaygmcmRldi0+aWJfcG9vbC5tdXRleCk7Ci0JcmFkZW9uX2ZlbmNl X3VucmVmKCZmZW5jZSk7Ci0JcmV0dXJuIHI7CisKKwkoKmliKS0+cHRyID0gcmRldi0+c2FfbWFu YWdlci5jcHVfcHRyOworCSgqaWIpLT5wdHIgKz0gKCgqaWIpLT5zYV9iby5vZmZzZXQgPj4gMik7 CisJKCppYiktPmdwdV9hZGRyID0gcmRldi0+c2FfbWFuYWdlci5ncHVfYWRkcjsKKwkoKmliKS0+ Z3B1X2FkZHIgKz0gKCppYiktPnNhX2JvLm9mZnNldDsKKwkoKmliKS0+dm1faWQgPSAwOworCSgq aWIpLT5pc19jb25zdF9pYiA9IGZhbHNlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lk IHJhZGVvbl9pYl9kZXN0cm95KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCB2b2lkICpkYXRh KQoreworCXN0cnVjdCByYWRlb25faWIgKmliID0gZGF0YTsKKwlyYWRlb25fc2FfYm9fZnJlZShy ZGV2LCAmaWItPnNhX2JvKTsKKwlyYWRlb25fZmVuY2VfdW5yZWYoJmliLT5mZW5jZSk7CisJa2Zy ZWUoaWIpOwogfQogCiB2b2lkIHJhZGVvbl9pYl9mcmVlKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICoqaWIpCiB7CiAJc3RydWN0IHJhZGVvbl9pYiAqdG1wID0g KmliOworCWJvb2wgZGVzdHJveSA9IHRydWU7CiAKIAkqaWIgPSBOVUxMOwogCWlmICh0bXAgPT0g TlVMTCkgewogCQlyZXR1cm47CiAJfQotCXJhZGVvbl9tdXRleF9sb2NrKCZyZGV2LT5pYl9wb29s Lm11dGV4KTsKLQlpZiAodG1wLT5mZW5jZSAmJiAhdG1wLT5mZW5jZS0+ZW1pdHRlZCkgewotCQly YWRlb25fc2FfYm9fZnJlZShyZGV2LCAmdG1wLT5zYV9ibyk7Ci0JCXJhZGVvbl9mZW5jZV91bnJl ZigmdG1wLT5mZW5jZSk7CisKKwlpZiAodG1wLT5mZW5jZSkgeworCQlkZXN0cm95ID0gIXJhZGVv bl9mZW5jZV9zZXRfc2lnbmFsX2NhbGxiYWNrKAorCQkJdG1wLT5mZW5jZSwgcmFkZW9uX2liX2Rl c3Ryb3ksIHRtcCk7CisJfQorCisJaWYgKGRlc3Ryb3kpIHsKKwkJcmFkZW9uX2liX2Rlc3Ryb3ko cmRldiwgdG1wKTsKIAl9Ci0JcmFkZW9uX211dGV4X3VubG9jaygmcmRldi0+aWJfcG9vbC5tdXRl eCk7CiB9CiAKIGludCByYWRlb25faWJfc2NoZWR1bGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsIHN0cnVjdCByYWRlb25faWIgKmliKQpAQCAtMTg1LDcgKzEzOCw3IEBAIGludCByYWRlb25f aWJfc2NoZWR1bGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25faWIg KmliKQogCiAJaWYgKCFpYi0+bGVuZ3RoX2R3IHx8ICFyaW5nLT5yZWFkeSkgewogCQkvKiBUT0RP OiBOb3RoaW5ncyBpbiB0aGUgaWIgd2Ugc2hvdWxkIHJlcG9ydC4gKi8KLQkJRFJNX0VSUk9SKCJy YWRlb246IGNvdWxkbid0IHNjaGVkdWxlIElCKCV1KS5cbiIsIGliLT5pZHgpOworCQlEUk1fRVJS T1IoInJhZGVvbjogY291bGRuJ3Qgc2NoZWR1bGUgSUIuXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7 CiAJfQogCkBAIC0yMDEsNzIgKzE1NCw1OCBAQCBpbnQgcmFkZW9uX2liX3NjaGVkdWxlKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYikKIAlyZXR1cm4gMDsK IH0KIAorc3RhdGljIHZvaWQgcmFkZW9uX2liX3RyeV9mcmVlKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KQoreworCWludCByaW5nOworCisJZm9yIChyaW5nID0gMDsgcmluZyA8IFJBREVPTl9O VU1fUklOR1M7IHJpbmcrKykgeworCQlpZiAocmRldi0+ZmVuY2VfZHJ2W3JpbmddLmluaXRpYWxp emVkKQorCQkJcmFkZW9uX2ZlbmNlX3Byb2Nlc3MocmRldiwgcmluZyk7CisJfQorfQorCiBpbnQg cmFkZW9uX2liX3Bvb2xfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIHsKLQlzdHJ1 Y3QgcmFkZW9uX3NhX21hbmFnZXIgdG1wOwotCWludCBpLCByOworCWludCByOwogCi0JciA9IHJh ZGVvbl9zYV9ib19tYW5hZ2VyX2luaXQocmRldiwgJnRtcCwKKwlpZiAocmRldi0+aWJfcG9vbF9y ZWFkeSkgeworCQlyZXR1cm4gMDsKKwl9CisKKwlyID0gcmFkZW9uX3NhX2JvX21hbmFnZXJfaW5p dChyZGV2LCAmcmRldi0+c2FfbWFuYWdlciwKIAkJCQkgICAgICBSQURFT05fSUJfUE9PTF9TSVpF KjY0KjEwMjQsCi0JCQkJICAgICAgUkFERU9OX0dFTV9ET01BSU5fR1RULCBOVUxMKTsKKwkJCQkg ICAgICBSQURFT05fR0VNX0RPTUFJTl9HVFQsCisJCQkJICAgICAgcmFkZW9uX2liX3RyeV9mcmVl KTsKIAlpZiAocikgewogCQlyZXR1cm4gcjsKIAl9CiAKLQlyYWRlb25fbXV0ZXhfbG9jaygmcmRl di0+aWJfcG9vbC5tdXRleCk7Ci0JaWYgKHJkZXYtPmliX3Bvb2wucmVhZHkpIHsKLQkJcmFkZW9u X211dGV4X3VubG9jaygmcmRldi0+aWJfcG9vbC5tdXRleCk7Ci0JCXJhZGVvbl9zYV9ib19tYW5h Z2VyX2ZpbmkocmRldiwgJnRtcCk7Ci0JCXJldHVybiAwOworCWlmIChyYWRlb25fZGVidWdmc19z YV9pbml0KHJkZXYpKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlZ2lzdGVyIGRlYnVnZnMg ZmlsZSBmb3IgU0EgIVxuIik7CiAJfQogCi0JLyogY29weSBvdmVyIHRoZSBzYV9tYW5hZ2VyIHdl IGhhdmUgdG8gZG8gdGhpcyB0byBzaWxlbmNlCi0JICoga2VybmVsIHBvc3NpYmxlIGRlYWRsb2Nr IGRldGVjdGlvbiBjb2RlIHRvIGNvbXBsYWluIGFib3V0Ci0JICogYSBmYWxzZSBwb3NpdGl2ZQot CSAqLwotCXJkZXYtPmliX3Bvb2wuc2FfbWFuYWdlciA9IHRtcDsKLQlJTklUX0xJU1RfSEVBRCgm cmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLnNhX2JvKTsKLQlmb3IgKGkgPSAwOyBpIDwgUkFERU9O X0lCX1BPT0xfU0laRTsgaSsrKSB7Ci0JCXJkZXYtPmliX3Bvb2wuaWJzW2ldLmZlbmNlID0gTlVM TDsKLQkJcmRldi0+aWJfcG9vbC5pYnNbaV0uaWR4ID0gaTsKLQkJcmRldi0+aWJfcG9vbC5pYnNb aV0ubGVuZ3RoX2R3ID0gMDsKLQkJSU5JVF9MSVNUX0hFQUQoJnJkZXYtPmliX3Bvb2wuaWJzW2ld LnNhX2JvLmxpc3QpOwotCX0KLQlyZGV2LT5pYl9wb29sLmhlYWRfaWQgPSAwOwotCXJkZXYtPmli X3Bvb2wucmVhZHkgPSB0cnVlOwogCURSTV9JTkZPKCJyYWRlb246IGliIHBvb2wgcmVhZHkuXG4i KTsKKwlyZGV2LT5pYl9wb29sX3JlYWR5ID0gdHJ1ZTsKIAotCWlmIChyYWRlb25fZGVidWdmc19p Yl9pbml0KHJkZXYpKSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlZ2lzdGVyIGRlYnVnZnMg ZmlsZSBmb3IgSUIgIVxuIik7Ci0JfQotCXJhZGVvbl9tdXRleF91bmxvY2soJnJkZXYtPmliX3Bv b2wubXV0ZXgpOwogCXJldHVybiAwOwogfQogCiB2b2lkIHJhZGVvbl9pYl9wb29sX2Zpbmkoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7Ci0JdW5zaWduZWQgaTsKLQotCXJhZGVvbl9tdXRl eF9sb2NrKCZyZGV2LT5pYl9wb29sLm11dGV4KTsKLQlpZiAocmRldi0+aWJfcG9vbC5yZWFkeSkg ewotCQlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX0lCX1BPT0xfU0laRTsgaSsrKSB7Ci0JCQlyYWRl b25fc2FfYm9fZnJlZShyZGV2LCAmcmRldi0+aWJfcG9vbC5pYnNbaV0uc2FfYm8pOwotCQkJcmFk ZW9uX2ZlbmNlX3VucmVmKCZyZGV2LT5pYl9wb29sLmlic1tpXS5mZW5jZSk7Ci0JCX0KLQkJcmFk ZW9uX3NhX2JvX21hbmFnZXJfZmluaShyZGV2LCAmcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyKTsK LQkJcmRldi0+aWJfcG9vbC5yZWFkeSA9IGZhbHNlOworCWlmIChyZGV2LT5pYl9wb29sX3JlYWR5 KSB7CisJCXJhZGVvbl9zYV9ib19tYW5hZ2VyX2ZpbmkocmRldiwgJnJkZXYtPnNhX21hbmFnZXIp OworCQlyZGV2LT5pYl9wb29sX3JlYWR5ID0gZmFsc2U7CiAJfQotCXJhZGVvbl9tdXRleF91bmxv Y2soJnJkZXYtPmliX3Bvb2wubXV0ZXgpOwogfQogCiBpbnQgcmFkZW9uX2liX3Bvb2xfc3RhcnQo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7Ci0JcmV0dXJuIHJhZGVvbl9zYV9ib19tYW5h Z2VyX3N0YXJ0KHJkZXYsICZyZGV2LT5pYl9wb29sLnNhX21hbmFnZXIpOworCXJldHVybiByYWRl b25fc2FfYm9fbWFuYWdlcl9zdGFydChyZGV2LCAmcmRldi0+c2FfbWFuYWdlcik7CiB9CiAKIGlu dCByYWRlb25faWJfcG9vbF9zdXNwZW5kKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogewot CXJldHVybiByYWRlb25fc2FfYm9fbWFuYWdlcl9zdXNwZW5kKHJkZXYsICZyZGV2LT5pYl9wb29s LnNhX21hbmFnZXIpOworCXJldHVybiByYWRlb25fc2FfYm9fbWFuYWdlcl9zdXNwZW5kKHJkZXYs ICZyZGV2LT5zYV9tYW5hZ2VyKTsKIH0KIAogaW50IHJhZGVvbl9pYl9yaW5nX3Rlc3RzKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KQpAQCAtMzAyLDYgKzI0MSwyMSBAQCBpbnQgcmFkZW9uX2li X3JpbmdfdGVzdHMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAvKgogICogUmluZy4KICAq LworaW50IHJhZGVvbl9kZWJ1Z2ZzX3JpbmdfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nKTsKKwordm9pZCByYWRlb25fcmluZ193cml0ZShz dHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcsIHVpbnQzMl90IHYpCit7CisjaWYgRFJNX0RFQlVHX0NP REUKKwlpZiAocmluZy0+Y291bnRfZHcgPD0gMCkgeworCQlEUk1fRVJST1IoInJhZGVvbjogd3Jp dHRpbmcgbW9yZSBkd29yZCB0byByaW5nIHRoYW4gZXhwZWN0ZWQgIVxuIik7CisJfQorI2VuZGlm CisJcmluZy0+cmluZ1tyaW5nLT53cHRyKytdID0gdjsKKwlyaW5nLT53cHRyICY9IHJpbmctPnB0 cl9tYXNrOworCXJpbmctPmNvdW50X2R3LS07CisJcmluZy0+cmluZ19mcmVlX2R3LS07Cit9CisK IGludCByYWRlb25fcmluZ19pbmRleChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0 IHJhZGVvbl9yaW5nICpyaW5nKQogewogCS8qIHIxeHgtcjV4eCBvbmx5IGhhcyBDUCByaW5nICov CkBAIC01MDgsMzcgKzQ2MiwxMyBAQCBzdGF0aWMgc3RydWN0IGRybV9pbmZvX2xpc3QgcmFkZW9u X2RlYnVnZnNfcmluZ19pbmZvX2xpc3RbXSA9IHsKIAl7InJhZGVvbl9yaW5nX2NwMiIsIHJhZGVv bl9kZWJ1Z2ZzX3JpbmdfaW5mbywgMCwgJmNheW1hbl9yaW5nX3R5cGVfY3AyX2luZGV4fSwKIH07 CiAKLXN0YXRpYyBpbnQgcmFkZW9uX2RlYnVnZnNfaWJfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRy bV9pbmZvX25vZGUgKikgbS0+cHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9k ZS0+bWlub3ItPmRldjsKLQlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3By aXZhdGU7Ci0Jc3RydWN0IHJhZGVvbl9pYiAqaWIgPSAmcmRldi0+aWJfcG9vbC5pYnNbKigodW5z aWduZWQqKW5vZGUtPmluZm9fZW50LT5kYXRhKV07Ci0JdW5zaWduZWQgaTsKLQotCWlmIChpYiA9 PSBOVUxMKSB7Ci0JCXJldHVybiAwOwotCX0KLQlzZXFfcHJpbnRmKG0sICJJQiAlMDR1XG4iLCBp Yi0+aWR4KTsKLQlzZXFfcHJpbnRmKG0sICJJQiBmZW5jZSAlcFxuIiwgaWItPmZlbmNlKTsKLQlz ZXFfcHJpbnRmKG0sICJJQiBzaXplICUwNXUgZHdvcmRzXG4iLCBpYi0+bGVuZ3RoX2R3KTsKLQlm b3IgKGkgPSAwOyBpIDwgaWItPmxlbmd0aF9kdzsgaSsrKSB7Ci0JCXNlcV9wcmludGYobSwgIlsl MDV1XT0weCUwOFhcbiIsIGksIGliLT5wdHJbaV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3Rh dGljIHN0cnVjdCBkcm1faW5mb19saXN0IHJhZGVvbl9kZWJ1Z2ZzX2liX2xpc3RbUkFERU9OX0lC X1BPT0xfU0laRV07Ci1zdGF0aWMgY2hhciByYWRlb25fZGVidWdmc19pYl9uYW1lc1tSQURFT05f SUJfUE9PTF9TSVpFXVszMl07Ci1zdGF0aWMgdW5zaWduZWQgcmFkZW9uX2RlYnVnZnNfaWJfaWR4 W1JBREVPTl9JQl9QT09MX1NJWkVdOwotCiBzdGF0aWMgaW50IHJhZGVvbl9kZWJ1Z2ZzX3NhX2lu Zm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBkcm1faW5mb19u b2RlICpub2RlID0gKHN0cnVjdCBkcm1faW5mb19ub2RlICopIG0tPnByaXZhdGU7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7CiAJc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCi0JcmFkZW9uX3NhX2JvX2R1bXBfZGVidWdf aW5mbygmcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLCBtKTsKKwlyYWRlb25fc2FfYm9fZHVtcF9k ZWJ1Z19pbmZvKCZyZGV2LT5zYV9tYW5hZ2VyLCBtKTsKIAogCXJldHVybiAwOwogCkBAIC01NzAs MjYgKzUwMCwxMCBAQCBpbnQgcmFkZW9uX2RlYnVnZnNfcmluZ19pbml0KHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbgogCXJldHVybiAwOwogfQogCi1p bnQgcmFkZW9uX2RlYnVnZnNfaWJfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKK2lu dCByYWRlb25fZGVidWdmc19zYV9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogewog I2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQotCXVuc2lnbmVkIGk7Ci0JaW50IHI7Ci0KLQly ID0gcmFkZW9uX2RlYnVnZnNfYWRkX2ZpbGVzKHJkZXYsIHJhZGVvbl9kZWJ1Z2ZzX3NhX2xpc3Qs IDEpOwotCWlmIChyKQotCQlyZXR1cm4gcjsKLQotCWZvciAoaSA9IDA7IGkgPCBSQURFT05fSUJf UE9PTF9TSVpFOyBpKyspIHsKLQkJc3ByaW50ZihyYWRlb25fZGVidWdmc19pYl9uYW1lc1tpXSwg InJhZGVvbl9pYl8lMDR1IiwgaSk7Ci0JCXJhZGVvbl9kZWJ1Z2ZzX2liX2lkeFtpXSA9IGk7Ci0J CXJhZGVvbl9kZWJ1Z2ZzX2liX2xpc3RbaV0ubmFtZSA9IHJhZGVvbl9kZWJ1Z2ZzX2liX25hbWVz W2ldOwotCQlyYWRlb25fZGVidWdmc19pYl9saXN0W2ldLnNob3cgPSAmcmFkZW9uX2RlYnVnZnNf aWJfaW5mbzsKLQkJcmFkZW9uX2RlYnVnZnNfaWJfbGlzdFtpXS5kcml2ZXJfZmVhdHVyZXMgPSAw OwotCQlyYWRlb25fZGVidWdmc19pYl9saXN0W2ldLmRhdGEgPSAmcmFkZW9uX2RlYnVnZnNfaWJf aWR4W2ldOwotCX0KLQlyZXR1cm4gcmFkZW9uX2RlYnVnZnNfYWRkX2ZpbGVzKHJkZXYsIHJhZGVv bl9kZWJ1Z2ZzX2liX2xpc3QsCi0JCQkJCVJBREVPTl9JQl9QT09MX1NJWkUpOworCXJldHVybiBy YWRlb25fZGVidWdmc19hZGRfZmlsZXMocmRldiwgcmFkZW9uX2RlYnVnZnNfc2FfbGlzdCwgMSk7 CiAjZWxzZQogCXJldHVybiAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9zZW1hcGhvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X3NlbWFwaG9yZS5jCmluZGV4IGE3NDY0MTAuLjRjZGNlZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3NlbWFwaG9yZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX3NlbWFwaG9yZS5jCkBAIC00MSw3ICs0MSw3IEBAIGludCByYWRlb25fc2Vt YXBob3JlX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJcmV0dXJuIC1FTk9N RU07CiAJfQogCi0JciA9IHJhZGVvbl9zYV9ib19uZXcocmRldiwgJnJkZXYtPmliX3Bvb2wuc2Ff bWFuYWdlciwKKwlyID0gcmFkZW9uX3NhX2JvX25ldyhyZGV2LCAmcmRldi0+c2FfbWFuYWdlciwK IAkJCSAgICAgJigqc2VtYXBob3JlKS0+c2FfYm8sIDgsIDgsIHRydWUpOwogCWlmIChyKSB7CiAJ CWtmcmVlKCpzZW1hcGhvcmUpOwotLSAKMS43LjcuNgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK