From mboxrd@z Thu Jan 1 00:00:00 1970 From: j.glisse@gmail.com Subject: [PATCH 2/3] drm/radeon: rip out the ib pool v4 Date: Wed, 2 May 2012 11:59:15 -0400 Message-ID: <1335974356-3009-3-git-send-email-j.glisse@gmail.com> References: <1335974356-3009-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-qc0-f177.google.com (mail-qc0-f177.google.com [209.85.216.177]) by gabe.freedesktop.org (Postfix) with ESMTP id B2B439E7B4 for ; Wed, 2 May 2012 08:59:34 -0700 (PDT) Received: by qcsu28 with SMTP id u28so488231qcs.36 for ; Wed, 02 May 2012 08:59:34 -0700 (PDT) In-Reply-To: <1335974356-3009-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?= , Jerome Glisse List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGU+CgpJdCBpc24n dCBuZWNlc3NhcnkgYW55IG1vcmUgYW5kIHRoZSBzdWJhbGxvY2F0b3IKc2VlbXMgdG8gcGVyZm9y bSBldmVuIGJldHRlci4KCnYyOiBpZ25vcmUgRVJFU1RBUlRTWVMgaW4gZXJyb3IgcmVwb3J0aW5n LAogICAgc3BsaXQgZmVuY2UgY2hhbmdlcyBpbnRvIHNlcGVyYXRlIHBhdGNoLAogICAgdXNlIHRy eV9mcmVlIFNBIGNhbGxiYWNrIHRvIGF2b2lkIGxvY2t1cHMKdjM6IHJlYmFzZSBvbiB0b3Agb2Yg c2EgbWFuYWdlciBuZXcgcGF0Y2gKdjQ6IHJlYmFzZSBvbiB0b3Agb2YgbGFzdGVzdCBwYXRjaHNl dAoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8ZGVhdGhzaW1wbGVAdm9kYWZvbmUu ZGU+ClNpZ25lZC1vZmYtYnk6IEplcm9tZSBHbGlzc2UgPGpnbGlzc2VAcmVkaGF0LmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jICAgICAgICB8ICAgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYyAgICAgICAgICAgICAgIHwgICAgMiArLQogZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMgICAgICAgICAgICAgfCAgICAyICstCiBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3I2MDAuYyAgICAgICAgICAgICB8ICAgIDYgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcjYwMF9ibGl0X2ttcy5jICAgIHwgICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb24uaCAgICAgICAgICAgfCAgIDE4ICstLQogZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fY3MuYyAgICAgICAgfCAgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9kZXZpY2UuYyAgICB8ICAgIDEgLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f Z2FydC5jICAgICAgfCAgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9yaW5n LmMgICAgICB8ICAyMzYgKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX3NlbWFwaG9yZS5jIHwgICAgNyArLQogZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9zaS5jICAgICAgICAgICAgICAgfCAgICA2ICstCiAxMiBmaWxlcyBjaGFuZ2VkLCA5 MSBpbnNlcnRpb25zKCspLCAyMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdy ZWVuLmMKaW5kZXggMGU4NjBjNi4uNDY1MDI2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9ldmVyZ3JlZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVl bi5jCkBAIC0xMzY2LDcgKzEzNjYsNyBAQCB2b2lkIGV2ZXJncmVlbl9tY19wcm9ncmFtKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KQogICovCiB2b2lkIGV2ZXJncmVlbl9yaW5nX2liX2V4ZWN1 dGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25faWIgKmliKQogewot CXN0cnVjdCByYWRlb25fcmluZyAqcmluZyA9ICZyZGV2LT5yaW5nW2liLT5mZW5jZS0+cmluZ107 CisJc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nID0gJnJkZXYtPnJpbmdbaWItPnNhX2JvLT5mZW5j ZS0+cmluZ107CiAKIAkvKiBzZXQgdG8gRFgxMC8xMSBtb2RlICovCiAJcmFkZW9uX3Jpbmdfd3Jp dGUocmluZywgUEFDS0VUMyhQQUNLRVQzX01PREVfQ09OVFJPTCwgMCkpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5j CmluZGV4IDljZDI2NTcuLmU1NWVlN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vbmkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25pLmMKQEAgLTExMjcsNyArMTEy Nyw3IEBAIHZvaWQgY2F5bWFuX2ZlbmNlX3JpbmdfZW1pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwKIAogdm9pZCBjYXltYW5fcmluZ19pYl9leGVjdXRlKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYikKIHsKLQlzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJp bmcgPSAmcmRldi0+cmluZ1tpYi0+ZmVuY2UtPnJpbmddOworCXN0cnVjdCByYWRlb25fcmluZyAq cmluZyA9ICZyZGV2LT5yaW5nW2liLT5zYV9iby0+ZmVuY2UtPnJpbmddOwogCiAJLyogc2V0IHRv IERYMTAvMTEgbW9kZSAqLwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDMoUEFDS0VU M19NT0RFX0NPTlRST0wsIDApKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cjEwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKaW5kZXggZWUwMTAzYy4uZDQ3 ZmZkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKQEAgLTM3MTEsNyArMzcxMSw3IEBAIGludCByMTAw X2liX3Rlc3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAq cmluZykKIAkJcmFkZW9uX2liX2ZyZWUocmRldiwgJmliKTsKIAkJcmV0dXJuIHI7CiAJfQotCXIg PSByYWRlb25fZmVuY2Vfd2FpdChpYi0+ZmVuY2UsIGZhbHNlKTsKKwlyID0gcmFkZW9uX2ZlbmNl X3dhaXQoaWItPnNhX2JvLT5mZW5jZSwgZmFsc2UpOwogCWlmIChyKSB7CiAJCXJldHVybiByOwog CX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yNjAwLmMKaW5kZXggMWNhZGY5Ny4uOWJhYzk0NyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yNjAwLmMKQEAgLTI2NzIsNyArMjY3Miw3IEBAIHZvaWQgcjYwMF9maW5pKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2KQogICovCiB2b2lkIHI2MDBfcmluZ19pYl9leGVjdXRlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYikKIHsKLQlzdHJ1Y3QgcmFk ZW9uX3JpbmcgKnJpbmcgPSAmcmRldi0+cmluZ1tpYi0+ZmVuY2UtPnJpbmddOworCXN0cnVjdCBy YWRlb25fcmluZyAqcmluZyA9ICZyZGV2LT5yaW5nW2liLT5zYV9iby0+ZmVuY2UtPnJpbmddOwog CiAJLyogRklYTUU6IGltcGxlbWVudCAqLwogCXJhZGVvbl9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tF VDMoUEFDS0VUM19JTkRJUkVDVF9CVUZGRVIsIDIpKTsKQEAgLTI3MTYsNyArMjcxNiw3IEBAIGlu dCByNjAwX2liX3Rlc3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25f cmluZyAqcmluZykKIAkJRFJNX0VSUk9SKCJyYWRlb246IGZhaWxlZCB0byBzY2hlZHVsZSBpYiAo JWQpLlxuIiwgcik7CiAJCXJldHVybiByOwogCX0KLQlyID0gcmFkZW9uX2ZlbmNlX3dhaXQoaWIt PmZlbmNlLCBmYWxzZSk7CisJciA9IHJhZGVvbl9mZW5jZV93YWl0KGliLT5zYV9iby0+ZmVuY2Us IGZhbHNlKTsKIAlpZiAocikgewogCQlEUk1fRVJST1IoInJhZGVvbjogZmVuY2Ugd2FpdCBmYWls ZWQgKCVkKS5cbiIsIHIpOwogCQlyZXR1cm4gcjsKQEAgLTI3MjgsNyArMjcyOCw3IEBAIGludCBy NjAwX2liX3Rlc3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmlu ZyAqcmluZykKIAkJRFJNX1VERUxBWSgxKTsKIAl9CiAJaWYgKGkgPCByZGV2LT51c2VjX3RpbWVv dXQpIHsKLQkJRFJNX0lORk8oImliIHRlc3Qgb24gcmluZyAlZCBzdWNjZWVkZWQgaW4gJXUgdXNl Y3NcbiIsIGliLT5mZW5jZS0+cmluZywgaSk7CisJCURSTV9JTkZPKCJpYiB0ZXN0IG9uIHJpbmcg JWQgc3VjY2VlZGVkIGluICV1IHVzZWNzXG4iLCBpYi0+c2FfYm8tPmZlbmNlLT5yaW5nLCBpKTsK IAl9IGVsc2UgewogCQlEUk1fRVJST1IoInJhZGVvbjogaWIgdGVzdCBmYWlsZWQgKHNjcmF0Y2go MHglMDRYKT0weCUwOFgpXG4iLAogCQkJICBzY3JhdGNoLCB0bXApOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2JsaXRfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3I2MDBfYmxpdF9rbXMuYwppbmRleCBkYjM4ZjU4Li45NTgwYjA2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfYmxpdF9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3I2MDBfYmxpdF9rbXMuYwpAQCAtNjM4LDcgKzYzOCw3IEBAIHN0YXRpYyBpbnQg cjYwMF92Yl9pYl9nZXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHVuc2lnbmVkIHNpemUp CiAKIHN0YXRpYyB2b2lkIHI2MDBfdmJfaWJfcHV0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 KQogewotCXJhZGVvbl9mZW5jZV9lbWl0KHJkZXYsIHJkZXYtPnI2MDBfYmxpdC52Yl9pYi0+ZmVu Y2UpOworCXJhZGVvbl9mZW5jZV9lbWl0KHJkZXYsIHJkZXYtPnI2MDBfYmxpdC52Yl9pYi0+c2Ff Ym8tPmZlbmNlKTsKIAlyYWRlb25faWJfZnJlZShyZGV2LCAmcmRldi0+cjYwMF9ibGl0LnZiX2li KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKaW5kZXggYWNiYjY0Mi4uMmU4M2E2NiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBAIC02MzUsMjcgKzYzNSwxMyBAQCB2b2lkIHJhZGVvbl9p cnFfa21zX3BmbGlwX2lycV9wdXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCBjcnRj KTsKIAogc3RydWN0IHJhZGVvbl9pYiB7CiAJc3RydWN0IHJhZGVvbl9zYV9ibwkqc2FfYm87Ci0J dW5zaWduZWQJCWlkeDsKIAl1aW50MzJfdAkJbGVuZ3RoX2R3OwogCXVpbnQ2NF90CQlncHVfYWRk cjsKIAl1aW50MzJfdAkJKnB0cjsKLQlzdHJ1Y3QgcmFkZW9uX2ZlbmNlCSpmZW5jZTsKIAl1bnNp Z25lZAkJdm1faWQ7CiAJYm9vbAkJCWlzX2NvbnN0X2liOwogfTsKIAotLyoKLSAqIGxvY2tpbmcg LQotICogbXV0ZXggcHJvdGVjdHMgc2NoZWR1bGVkX2licywgcmVhZHksIGFsbG9jX2JtCi0gKi8K LXN0cnVjdCByYWRlb25faWJfcG9vbCB7Ci0Jc3RydWN0IHJhZGVvbl9tdXRleAkJbXV0ZXg7Ci0J c3RydWN0IHJhZGVvbl9zYV9tYW5hZ2VyCXNhX21hbmFnZXI7Ci0Jc3RydWN0IHJhZGVvbl9pYgkJ aWJzW1JBREVPTl9JQl9QT09MX1NJWkVdOwotCWJvb2wJCQkJcmVhZHk7Ci0JdW5zaWduZWQJCQlo ZWFkX2lkOwotfTsKLQogc3RydWN0IHJhZGVvbl9yaW5nIHsKIAlzdHJ1Y3QgcmFkZW9uX2JvCSpy aW5nX29iajsKIAl2b2xhdGlsZSB1aW50MzJfdAkqcmluZzsKQEAgLTc5OCw3ICs3ODQsNiBAQCBz dHJ1Y3Qgc2lfcmxjIHsKIGludCByYWRlb25faWJfZ2V0KHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBpbnQgcmluZywKIAkJICBzdHJ1Y3QgcmFkZW9uX2liICoqaWIsIHVuc2lnbmVkIHNpemUp Owogdm9pZCByYWRlb25faWJfZnJlZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0 IHJhZGVvbl9pYiAqKmliKTsKLWJvb2wgcmFkZW9uX2liX3RyeV9mcmVlKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYik7CiBpbnQgcmFkZW9uX2liX3NjaGVk dWxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYik7CiBp bnQgcmFkZW9uX2liX3Bvb2xfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiB2b2lk IHJhZGVvbl9pYl9wb29sX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwpAQCAtMTUy Myw3ICsxNTA4LDggQEAgc3RydWN0IHJhZGVvbl9kZXZpY2UgewogCXN0cnVjdCByYWRlb25fZmVu Y2VfZHJpdmVyCWZlbmNlX2RydltSQURFT05fTlVNX1JJTkdTXTsKIAlzdHJ1Y3QgcmFkZW9uX3Nl bWFwaG9yZV9kcml2ZXIJc2VtYXBob3JlX2RydjsKIAlzdHJ1Y3QgcmFkZW9uX3JpbmcJCXJpbmdb UkFERU9OX05VTV9SSU5HU107Ci0Jc3RydWN0IHJhZGVvbl9pYl9wb29sCQlpYl9wb29sOworCWJv b2wJCQkJaWJfcG9vbF9yZWFkeTsKKwlzdHJ1Y3QgcmFkZW9uX3NhX21hbmFnZXIJcmluZ190bXBf Ym87CiAJc3RydWN0IHJhZGVvbl9pcnEJCWlycTsKIAlzdHJ1Y3QgcmFkZW9uX2FzaWMJCSphc2lj OwogCXN0cnVjdCByYWRlb25fZ2VtCQlnZW07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYwpp bmRleCAzOTg5MDE1Li4wYzBjOWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMKQEAg LTEzOCwxMiArMTM4LDEyIEBAIHN0YXRpYyBpbnQgcmFkZW9uX2NzX3N5bmNfcmluZ3Moc3RydWN0 IHJhZGVvbl9jc19wYXJzZXIgKnApCiAJCXJldHVybiAwOwogCX0KIAotCXIgPSByYWRlb25fc2Vt YXBob3JlX2NyZWF0ZShwLT5yZGV2LCAmcC0+aWItPmZlbmNlLT5zZW1hcGhvcmUpOworCXIgPSBy YWRlb25fc2VtYXBob3JlX2NyZWF0ZShwLT5yZGV2LCAmcC0+aWItPnNhX2JvLT5mZW5jZS0+c2Vt YXBob3JlKTsKIAlpZiAocikgewogCQlyZXR1cm4gcjsKIAl9CiAKLQlyZXR1cm4gcmFkZW9uX3Nl bWFwaG9yZV9zeW5jX3JpbmdzKHAtPnJkZXYsIHAtPmliLT5mZW5jZS0+c2VtYXBob3JlLAorCXJl dHVybiByYWRlb25fc2VtYXBob3JlX3N5bmNfcmluZ3MocC0+cmRldiwgcC0+aWItPnNhX2JvLT5m ZW5jZS0+c2VtYXBob3JlLAogCQkJCQkgICBzeW5jX3RvX3JpbmcsIHAtPnJpbmcpOwogfQogCkBA IC0yOTcsNyArMjk3LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2NzX3BhcnNlcl9maW5pKHN0cnVj dCByYWRlb25fY3NfcGFyc2VyICpwYXJzZXIsIGludCBlcnJvcikKIAogCWlmICghZXJyb3IgJiYg cGFyc2VyLT5pYikKIAkJdHRtX2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKCZwYXJzZXItPnZhbGlk YXRlZCwKLQkJCQkJICAgIHBhcnNlci0+aWItPmZlbmNlKTsKKwkJCQkJICAgIHBhcnNlci0+aWIt PnNhX2JvLT5mZW5jZSk7CiAJZWxzZQogCQl0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbigmcGFy c2VyLT52YWxpZGF0ZWQpOwogCkBAIC00ODMsNyArNDgzLDcgQEAgb3V0OgogCQlpZiAodm0tPmZl bmNlKSB7CiAJCQlyYWRlb25fZmVuY2VfdW5yZWYoJnZtLT5mZW5jZSk7CiAJCX0KLQkJdm0tPmZl bmNlID0gcmFkZW9uX2ZlbmNlX3JlZihwYXJzZXItPmliLT5mZW5jZSk7CisJCXZtLT5mZW5jZSA9 IHJhZGVvbl9mZW5jZV9yZWYocGFyc2VyLT5pYi0+c2FfYm8tPmZlbmNlKTsKIAl9CiAJbXV0ZXhf dW5sb2NrKCZmcHJpdi0+dm0ubXV0ZXgpOwogCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9kZXZpY2UuYwppbmRleCA5ZDZhODVlLi5lMzE2MTQ0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9kZXZpY2UuYwpAQCAtNzIzLDcgKzcyMyw2IEBAIGludCByYWRlb25fZGV2 aWNlX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJLyogbXV0ZXggaW5pdGlhbGl6 YXRpb24gYXJlIGFsbCBkb25lIGhlcmUgc28gd2UKIAkgKiBjYW4gcmVjYWxsIGZ1bmN0aW9uIHdp dGhvdXQgaGF2aW5nIGxvY2tpbmcgaXNzdWVzICovCiAJcmFkZW9uX211dGV4X2luaXQoJnJkZXYt PmNzX211dGV4KTsKLQlyYWRlb25fbXV0ZXhfaW5pdCgmcmRldi0+aWJfcG9vbC5tdXRleCk7CiAJ Zm9yIChpID0gMDsgaSA8IFJBREVPTl9OVU1fUklOR1M7ICsraSkKIAkJbXV0ZXhfaW5pdCgmcmRl di0+cmluZ1tpXS5tdXRleCk7CiAJbXV0ZXhfaW5pdCgmcmRldi0+ZGNfaHdfaTJjX211dGV4KTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dhcnQuYyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dhcnQuYwppbmRleCBjYzUwMzZjLi5jYWIwMTJmIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nYXJ0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2FydC5jCkBAIC00MzcsOCArNDM3LDggQEAgcmV0 cnlfaWQ6CiAJcmRldi0+dm1fbWFuYWdlci51c2VfYml0bWFwIHw9IDEgPDwgaWQ7CiAJdm0tPmlk ID0gaWQ7CiAJbGlzdF9hZGRfdGFpbCgmdm0tPmxpc3QsICZyZGV2LT52bV9tYW5hZ2VyLmxydV92 bSk7Ci0JcmV0dXJuIHJhZGVvbl92bV9ib191cGRhdGVfcHRlKHJkZXYsIHZtLCByZGV2LT5pYl9w b29sLnNhX21hbmFnZXIuYm8sCi0JCQkJICAgICAgICZyZGV2LT5pYl9wb29sLnNhX21hbmFnZXIu Ym8tPnRiby5tZW0pOworCXJldHVybiByYWRlb25fdm1fYm9fdXBkYXRlX3B0ZShyZGV2LCB2bSwg cmRldi0+cmluZ190bXBfYm8uYm8sCisJCQkJICAgICAgICZyZGV2LT5yaW5nX3RtcF9iby5iby0+ dGJvLm1lbSk7CiB9CiAKIC8qIG9iamVjdCBoYXZlIHRvIGJlIHJlc2VydmVkICovCkBAIC02MzYs NyArNjM2LDcgQEAgaW50IHJhZGVvbl92bV9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LCBzdHJ1Y3QgcmFkZW9uX3ZtICp2bSkKIAkvKiBtYXAgdGhlIGliIHBvb2wgYnVmZmVyIGF0IDAg aW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlLCBzZXQKIAkgKiByZWFkIG9ubHkKIAkgKi8KLQlyID0g cmFkZW9uX3ZtX2JvX2FkZChyZGV2LCB2bSwgcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLmJvLCAw LAorCXIgPSByYWRlb25fdm1fYm9fYWRkKHJkZXYsIHZtLCByZGV2LT5yaW5nX3RtcF9iby5ibywg MCwKIAkJCSAgICAgUkFERU9OX1ZNX1BBR0VfUkVBREFCTEUgfCBSQURFT05fVk1fUEFHRV9TTk9P UEVEKTsKIAlyZXR1cm4gcjsKIH0KQEAgLTY1MywxMiArNjUzLDEyIEBAIHZvaWQgcmFkZW9uX3Zt X2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fdm0gKnZtKQog CXJhZGVvbl9tdXRleF91bmxvY2soJnJkZXYtPmNzX211dGV4KTsKIAogCS8qIHJlbW92ZSBhbGwg Ym8gKi8KLQlyID0gcmFkZW9uX2JvX3Jlc2VydmUocmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLmJv LCBmYWxzZSk7CisJciA9IHJhZGVvbl9ib19yZXNlcnZlKHJkZXYtPnJpbmdfdG1wX2JvLmJvLCBm YWxzZSk7CiAJaWYgKCFyKSB7Ci0JCWJvX3ZhID0gcmFkZW9uX2JvX3ZhKHJkZXYtPmliX3Bvb2wu c2FfbWFuYWdlci5ibywgdm0pOworCQlib192YSA9IHJhZGVvbl9ib192YShyZGV2LT5yaW5nX3Rt cF9iby5ibywgdm0pOwogCQlsaXN0X2RlbF9pbml0KCZib192YS0+Ym9fbGlzdCk7CiAJCWxpc3Rf ZGVsX2luaXQoJmJvX3ZhLT52bV9saXN0KTsKLQkJcmFkZW9uX2JvX3VucmVzZXJ2ZShyZGV2LT5p Yl9wb29sLnNhX21hbmFnZXIuYm8pOworCQlyYWRlb25fYm9fdW5yZXNlcnZlKHJkZXYtPnJpbmdf dG1wX2JvLmJvKTsKIAkJa2ZyZWUoYm9fdmEpOwogCX0KIAlpZiAoIWxpc3RfZW1wdHkoJnZtLT52 YSkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3JpbmcuYyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3JpbmcuYwppbmRleCBhN2RiODkwLi5iMjc5 YTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9yaW5nLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcmluZy5jCkBAIC0yNCw2ICsyNCw3IEBA CiAgKiBBdXRob3JzOiBEYXZlIEFpcmxpZQogICogICAgICAgICAgQWxleCBEZXVjaGVyCiAgKiAg ICAgICAgICBKZXJvbWUgR2xpc3NlCisgKiAgICAgICAgICBDaHJpc3RpYW4gS8O2bmlnCiAgKi8K ICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KQEAg LTMzLDggKzM0LDEwIEBACiAjaW5jbHVkZSAicmFkZW9uLmgiCiAjaW5jbHVkZSAiYXRvbS5oIgog Ci1pbnQgcmFkZW9uX2RlYnVnZnNfaWJfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7 Ci1pbnQgcmFkZW9uX2RlYnVnZnNfcmluZ19pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpOworLyoKKyAqIElCLgorICovCitpbnQgcmFkZW9u X2RlYnVnZnNfc2FfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiAKIHUzMiByYWRl b25fZ2V0X2liX3ZhbHVlKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLCBpbnQgaWR4KQogewpA QCAtNjEsNDcgKzY0LDExIEBAIHUzMiByYWRlb25fZ2V0X2liX3ZhbHVlKHN0cnVjdCByYWRlb25f Y3NfcGFyc2VyICpwLCBpbnQgaWR4KQogCXJldHVybiBpZHhfdmFsdWU7CiB9CiAKLXZvaWQgcmFk ZW9uX3Jpbmdfd3JpdGUoc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nLCB1aW50MzJfdCB2KQotewot I2lmIERSTV9ERUJVR19DT0RFCi0JaWYgKHJpbmctPmNvdW50X2R3IDw9IDApIHsKLQkJRFJNX0VS Uk9SKCJyYWRlb246IHdyaXR0aW5nIG1vcmUgZHdvcmQgdG8gcmluZyB0aGFuIGV4cGVjdGVkICFc biIpOwotCX0KLSNlbmRpZgotCXJpbmctPnJpbmdbcmluZy0+d3B0cisrXSA9IHY7Ci0JcmluZy0+ d3B0ciAmPSByaW5nLT5wdHJfbWFzazsKLQlyaW5nLT5jb3VudF9kdy0tOwotCXJpbmctPnJpbmdf ZnJlZV9kdy0tOwotfQotCi0vKgotICogSUIuCi0gKi8KLWJvb2wgcmFkZW9uX2liX3RyeV9mcmVl KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYikKLXsKLQli b29sIGRvbmUgPSBmYWxzZTsKLQotCS8qIG9ubHkgZnJlZSBpYiB3aGljaCBoYXZlIGJlZW4gZW1p dGVkICovCi0JaWYgKGliLT5mZW5jZSAmJiBpYi0+ZmVuY2UtPmVtaXR0ZWQpIHsKLQkJaWYgKHJh ZGVvbl9mZW5jZV9zaWduYWxlZChpYi0+ZmVuY2UpKSB7Ci0JCQlyYWRlb25fZmVuY2VfdW5yZWYo JmliLT5mZW5jZSk7Ci0JCQlyYWRlb25fc2FfYm9fZnJlZShyZGV2LCAmaWItPnNhX2JvKTsKLQkJ CWRvbmUgPSB0cnVlOwotCQl9Ci0JfQotCXJldHVybiBkb25lOwotfQotCiBpbnQgcmFkZW9uX2li X2dldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpbmcsCiAJCSAgc3RydWN0IHJh ZGVvbl9pYiAqKmliLCB1bnNpZ25lZCBzaXplKQogewogCXN0cnVjdCByYWRlb25fZmVuY2UgKmZl bmNlOwotCXVuc2lnbmVkIGNyZXRyeSA9IDA7Ci0JaW50IHIgPSAwLCBpLCBpZHg7Ci0KLQkqaWIg PSBOVUxMOwotCS8qIGFsaWduIHNpemUgb24gMjU2IGJ5dGVzICovCi0Jc2l6ZSA9IEFMSUdOKHNp emUsIDI1Nik7CisJaW50IHI7CiAKIAlyID0gcmFkZW9uX2ZlbmNlX2NyZWF0ZShyZGV2LCAmZmVu Y2UsIHJpbmcpOwogCWlmIChyKSB7CkBAIC0xMDksNjAgKzc2LDMzIEBAIGludCByYWRlb25faWJf Z2V0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZywKIAkJcmV0dXJuIHI7CiAJ fQogCi0JcmFkZW9uX211dGV4X2xvY2soJnJkZXYtPmliX3Bvb2wubXV0ZXgpOwotCWlkeCA9IHJk ZXYtPmliX3Bvb2wuaGVhZF9pZDsKLXJldHJ5OgotCWlmIChjcmV0cnkgPiA1KSB7Ci0JCWRldl9l cnIocmRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBhbiBpYiBhZnRlciA1IHJldHJ5XG4iKTsKLQkJ cmFkZW9uX211dGV4X3VubG9jaygmcmRldi0+aWJfcG9vbC5tdXRleCk7CisJKmliID0ga21hbGxv YyhzaXplb2Yoc3RydWN0IHJhZGVvbl9pYiksIEdGUF9LRVJORUwpOworCWlmICgqaWIgPT0gTlVM TCkgewogCQlyYWRlb25fZmVuY2VfdW5yZWYoJmZlbmNlKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJ fQotCWNyZXRyeSsrOwotCWZvciAoaSA9IDA7IGkgPCBSQURFT05fSUJfUE9PTF9TSVpFOyBpKysp IHsKLQkJcmFkZW9uX2liX3RyeV9mcmVlKHJkZXYsICZyZGV2LT5pYl9wb29sLmlic1tpZHhdKTsK LQkJaWYgKHJkZXYtPmliX3Bvb2wuaWJzW2lkeF0uZmVuY2UgPT0gTlVMTCkgewotCQkJciA9IHJh ZGVvbl9zYV9ib19uZXcocmRldiwgJnJkZXYtPmliX3Bvb2wuaWJzW2lkeF0uc2FfYm8sCi0JCQkJ CSAgICAgJnJkZXYtPmliX3Bvb2wuc2FfbWFuYWdlciwKLQkJCQkJICAgICBzaXplLCAyNTYsIGZh bHNlLCBOVUxMKTsKLQkJCWlmICghcikgewotCQkJCSppYiA9ICZyZGV2LT5pYl9wb29sLmlic1tp ZHhdOwotCQkJCSgqaWIpLT5wdHIgPSByZGV2LT5pYl9wb29sLnNhX21hbmFnZXIuY3B1X3B0cjsK LQkJCQkoKmliKS0+cHRyICs9ICgoKmliKS0+c2FfYm8tPnNvZmZzZXQgPj4gMik7Ci0JCQkJKCpp YiktPmdwdV9hZGRyID0gcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLmdwdV9hZGRyOwotCQkJCSgq aWIpLT5ncHVfYWRkciArPSAoKmliKS0+c2FfYm8tPnNvZmZzZXQ7Ci0JCQkJKCppYiktPmZlbmNl ID0gZmVuY2U7Ci0JCQkJKCppYiktPnZtX2lkID0gMDsKLQkJCQkoKmliKS0+aXNfY29uc3RfaWIg PSBmYWxzZTsKLQkJCQkvKiBpYiBhcmUgbW9zdCBsaWtlbHkgdG8gYmUgYWxsb2NhdGVkIGluIGEg cmluZyBmYXNoaW9uCi0JCQkJICogdGh1cyByZGV2LT5pYl9wb29sLmhlYWRfaWQgc2hvdWxkIGJl IHRoZSBpZCBvZiB0aGUKLQkJCQkgKiBvbGRlc3QgaWIKLQkJCQkgKi8KLQkJCQlyZGV2LT5pYl9w b29sLmhlYWRfaWQgPSAoMSArIGlkeCk7Ci0JCQkJcmRldi0+aWJfcG9vbC5oZWFkX2lkICY9IChS QURFT05fSUJfUE9PTF9TSVpFIC0gMSk7Ci0JCQkJcmFkZW9uX211dGV4X3VubG9jaygmcmRldi0+ aWJfcG9vbC5tdXRleCk7Ci0JCQkJcmV0dXJuIDA7Ci0JCQl9Ci0JCX0KLQkJaWR4ID0gKGlkeCAr IDEpICYgKFJBREVPTl9JQl9QT09MX1NJWkUgLSAxKTsKLQl9Ci0JLyogdGhpcyBzaG91bGQgYmUg cmFyZSBldmVudCwgaWUgYWxsIGliIHNjaGVkdWxlZCBub25lIHNpZ25hbGVkIHlldC4KLQkgKi8K LQlyID0gLUVOT01FTTsKLQlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX0lCX1BPT0xfU0laRTsgaSsr KSB7Ci0JCWlmIChyZGV2LT5pYl9wb29sLmlic1tpZHhdLmZlbmNlICYmIHJkZXYtPmliX3Bvb2wu aWJzW2lkeF0uZmVuY2UtPmVtaXR0ZWQpIHsKLQkJCXIgPSByYWRlb25fZmVuY2Vfd2FpdChyZGV2 LT5pYl9wb29sLmlic1tpZHhdLmZlbmNlLCBmYWxzZSk7Ci0JCQlpZiAoIXIpIHsKLQkJCQlnb3Rv IHJldHJ5OwotCQkJfQotCQkJLyogYW4gZXJyb3IgaGFwcGVuZWQgKi8KLQkJCWJyZWFrOworCisJ ciA9IHJhZGVvbl9zYV9ib19uZXcocmRldiwgJigqaWIpLT5zYV9ibywgJnJkZXYtPnJpbmdfdG1w X2JvLAorCQkJICAgICBzaXplLCAyNTYsIHRydWUsIGZlbmNlKTsKKwlpZiAocikgeworCQlpZiAo ciAhPSAtRVJFU1RBUlRTWVMpIHsKKwkJCWRldl9lcnIocmRldi0+ZGV2LCAiZmFpbGVkIHRvIGdl dCBhIG5ldyBJQiAoJWQpXG4iLCByKTsKIAkJfQotCQlpZHggPSAoaWR4ICsgMSkgJiAoUkFERU9O X0lCX1BPT0xfU0laRSAtIDEpOworCQlrZnJlZSgqaWIpOworCQkqaWIgPSBOVUxMOworCQlyYWRl b25fZmVuY2VfdW5yZWYoJmZlbmNlKTsKKwkJcmV0dXJuIHI7CiAJfQotCXJhZGVvbl9tdXRleF91 bmxvY2soJnJkZXYtPmliX3Bvb2wubXV0ZXgpOworCisJKCppYiktPnB0ciA9IHJkZXYtPnJpbmdf dG1wX2JvLmNwdV9wdHI7CisJKCppYiktPnB0ciArPSAoKCppYiktPnNhX2JvLT5zb2Zmc2V0ID4+ IDIpOworCSgqaWIpLT5ncHVfYWRkciA9IHJkZXYtPnJpbmdfdG1wX2JvLmdwdV9hZGRyOworCSgq aWIpLT5ncHVfYWRkciArPSAoKmliKS0+c2FfYm8tPnNvZmZzZXQ7CisJKCppYiktPnZtX2lkID0g MDsKKwkoKmliKS0+aXNfY29uc3RfaWIgPSBmYWxzZTsKIAlyYWRlb25fZmVuY2VfdW5yZWYoJmZl bmNlKTsKLQlyZXR1cm4gcjsKKworCXJldHVybiAwOwogfQogCiB2b2lkIHJhZGVvbl9pYl9mcmVl KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICoqaWIpCkBAIC0x NzMsMjIgKzExMywxOSBAQCB2b2lkIHJhZGVvbl9pYl9mcmVlKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICoqaWIpCiAJaWYgKHRtcCA9PSBOVUxMKSB7CiAJCXJl dHVybjsKIAl9Ci0JcmFkZW9uX211dGV4X2xvY2soJnJkZXYtPmliX3Bvb2wubXV0ZXgpOwotCWlm ICh0bXAtPmZlbmNlICYmICF0bXAtPmZlbmNlLT5lbWl0dGVkKSB7Ci0JCXJhZGVvbl9zYV9ib19m cmVlKHJkZXYsICZ0bXAtPnNhX2JvKTsKLQkJcmFkZW9uX2ZlbmNlX3VucmVmKCZ0bXAtPmZlbmNl KTsKLQl9Ci0JcmFkZW9uX211dGV4X3VubG9jaygmcmRldi0+aWJfcG9vbC5tdXRleCk7CisKKwly YWRlb25fc2FfYm9fZnJlZShyZGV2LCAmdG1wLT5zYV9ibyk7CisJa2ZyZWUodG1wKTsKIH0KIAog aW50IHJhZGVvbl9pYl9zY2hlZHVsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0 IHJhZGVvbl9pYiAqaWIpCiB7Ci0Jc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nID0gJnJkZXYtPnJp bmdbaWItPmZlbmNlLT5yaW5nXTsKKwlzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcgPSAmcmRldi0+ cmluZ1tpYi0+c2FfYm8tPmZlbmNlLT5yaW5nXTsKIAlpbnQgciA9IDA7CiAKIAlpZiAoIWliLT5s ZW5ndGhfZHcgfHwgIXJpbmctPnJlYWR5KSB7CiAJCS8qIFRPRE86IE5vdGhpbmdzIGluIHRoZSBp YiB3ZSBzaG91bGQgcmVwb3J0LiAqLwotCQlEUk1fRVJST1IoInJhZGVvbjogY291bGRuJ3Qgc2No ZWR1bGUgSUIoJXUpLlxuIiwgaWItPmlkeCk7CisJCURSTV9FUlJPUigicmFkZW9uOiBjb3VsZG4n dCBzY2hlZHVsZSBJQi5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTE5OCw3NCAr MTM1LDUzIEBAIGludCByYWRlb25faWJfc2NoZWR1bGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsIHN0cnVjdCByYWRlb25faWIgKmliKQogCQlEUk1fRVJST1IoInJhZGVvbjogc2NoZWR1bGlu ZyBJQiBmYWlsZWQgKCVkKS5cbiIsIHIpOwogCQlyZXR1cm4gcjsKIAl9Ci0JcmFkZW9uX3Jpbmdf aWJfZXhlY3V0ZShyZGV2LCBpYi0+ZmVuY2UtPnJpbmcsIGliKTsKLQlyYWRlb25fZmVuY2VfZW1p dChyZGV2LCBpYi0+ZmVuY2UpOworCXJhZGVvbl9yaW5nX2liX2V4ZWN1dGUocmRldiwgaWItPnNh X2JvLT5mZW5jZS0+cmluZywgaWIpOworCXJhZGVvbl9mZW5jZV9lbWl0KHJkZXYsIGliLT5zYV9i by0+ZmVuY2UpOwogCXJhZGVvbl9yaW5nX3VubG9ja19jb21taXQocmRldiwgcmluZyk7CiAJcmV0 dXJuIDA7CiB9CiAKIGludCByYWRlb25faWJfcG9vbF9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KQogewotCXN0cnVjdCByYWRlb25fc2FfbWFuYWdlciB0bXA7Ci0JaW50IGksIHI7CisJ aW50IHI7CisKKwlpZiAocmRldi0+aWJfcG9vbF9yZWFkeSkgeworCQlyZXR1cm4gMDsKKwl9CiAK LQlyID0gcmFkZW9uX3NhX2JvX21hbmFnZXJfaW5pdChyZGV2LCAmdG1wLAorCXIgPSByYWRlb25f c2FfYm9fbWFuYWdlcl9pbml0KHJkZXYsICZyZGV2LT5yaW5nX3RtcF9ibywKIAkJCQkgICAgICBS QURFT05fSUJfUE9PTF9TSVpFKjY0KjEwMjQsCiAJCQkJICAgICAgUkFERU9OX0dFTV9ET01BSU5f R1RUKTsKIAlpZiAocikgewogCQlyZXR1cm4gcjsKIAl9CiAKLQlyYWRlb25fbXV0ZXhfbG9jaygm cmRldi0+aWJfcG9vbC5tdXRleCk7Ci0JaWYgKHJkZXYtPmliX3Bvb2wucmVhZHkpIHsKLQkJcmFk ZW9uX211dGV4X3VubG9jaygmcmRldi0+aWJfcG9vbC5tdXRleCk7Ci0JCXJhZGVvbl9zYV9ib19t YW5hZ2VyX2ZpbmkocmRldiwgJnRtcCk7Ci0JCXJldHVybiAwOworCWlmIChyYWRlb25fZGVidWdm c19zYV9pbml0KHJkZXYpKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlZ2lzdGVyIGRlYnVn ZnMgZmlsZSBmb3IgU0EgIVxuIik7CiAJfQogCi0JcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyID0g dG1wOwotCUlOSVRfTElTVF9IRUFEKCZyZGV2LT5pYl9wb29sLnNhX21hbmFnZXIuc2FfYm8pOwot CWZvciAoaSA9IDA7IGkgPCBSQURFT05fSUJfUE9PTF9TSVpFOyBpKyspIHsKLQkJcmRldi0+aWJf cG9vbC5pYnNbaV0uZmVuY2UgPSBOVUxMOwotCQlyZGV2LT5pYl9wb29sLmlic1tpXS5pZHggPSBp OwotCQlyZGV2LT5pYl9wb29sLmlic1tpXS5sZW5ndGhfZHcgPSAwOwotCQlyZGV2LT5pYl9wb29s Lmlic1tpXS5zYV9ibyA9IE5VTEw7Ci0JfQotCXJkZXYtPmliX3Bvb2wuaGVhZF9pZCA9IDA7Ci0J cmRldi0+aWJfcG9vbC5yZWFkeSA9IHRydWU7CiAJRFJNX0lORk8oInJhZGVvbjogaWIgcG9vbCBy ZWFkeS5cbiIpOworCXJkZXYtPmliX3Bvb2xfcmVhZHkgPSB0cnVlOwogCi0JaWYgKHJhZGVvbl9k ZWJ1Z2ZzX2liX2luaXQocmRldikpIHsKLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVnaXN0ZXIg ZGVidWdmcyBmaWxlIGZvciBJQiAhXG4iKTsKLQl9Ci0JcmFkZW9uX211dGV4X3VubG9jaygmcmRl di0+aWJfcG9vbC5tdXRleCk7CiAJcmV0dXJuIDA7CiB9CiAKIHZvaWQgcmFkZW9uX2liX3Bvb2xf ZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIHsKLQl1bnNpZ25lZCBpOwotCi0JcmFk ZW9uX211dGV4X2xvY2soJnJkZXYtPmliX3Bvb2wubXV0ZXgpOwotCWlmIChyZGV2LT5pYl9wb29s LnJlYWR5KSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBSQURFT05fSUJfUE9PTF9TSVpFOyBpKyspIHsK LQkJCXJhZGVvbl9zYV9ib19mcmVlKHJkZXYsICZyZGV2LT5pYl9wb29sLmlic1tpXS5zYV9ibyk7 Ci0JCQlyYWRlb25fZmVuY2VfdW5yZWYoJnJkZXYtPmliX3Bvb2wuaWJzW2ldLmZlbmNlKTsKLQkJ fQotCQlyYWRlb25fc2FfYm9fbWFuYWdlcl9maW5pKHJkZXYsICZyZGV2LT5pYl9wb29sLnNhX21h bmFnZXIpOwotCQlyZGV2LT5pYl9wb29sLnJlYWR5ID0gZmFsc2U7CisJaWYgKHJkZXYtPmliX3Bv b2xfcmVhZHkpIHsKKwkJcmFkZW9uX3NhX2JvX21hbmFnZXJfZmluaShyZGV2LCAmcmRldi0+cmlu Z190bXBfYm8pOworCQlyZGV2LT5pYl9wb29sX3JlYWR5ID0gZmFsc2U7CiAJfQotCXJhZGVvbl9t dXRleF91bmxvY2soJnJkZXYtPmliX3Bvb2wubXV0ZXgpOwogfQogCiBpbnQgcmFkZW9uX2liX3Bv b2xfc3RhcnQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7Ci0JcmV0dXJuIHJhZGVvbl9z YV9ib19tYW5hZ2VyX3N0YXJ0KHJkZXYsICZyZGV2LT5pYl9wb29sLnNhX21hbmFnZXIpOworCXJl dHVybiByYWRlb25fc2FfYm9fbWFuYWdlcl9zdGFydChyZGV2LCAmcmRldi0+cmluZ190bXBfYm8p OwogfQogCiBpbnQgcmFkZW9uX2liX3Bvb2xfc3VzcGVuZChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldikKIHsKLQlyZXR1cm4gcmFkZW9uX3NhX2JvX21hbmFnZXJfc3VzcGVuZChyZGV2LCAmcmRl di0+aWJfcG9vbC5zYV9tYW5hZ2VyKTsKKwlyZXR1cm4gcmFkZW9uX3NhX2JvX21hbmFnZXJfc3Vz cGVuZChyZGV2LCAmcmRldi0+cmluZ190bXBfYm8pOwogfQogCiBpbnQgcmFkZW9uX2liX3Jpbmdf dGVzdHMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCkBAIC0zMDEsNiArMjE3LDIxIEBAIGlu dCByYWRlb25faWJfcmluZ190ZXN0cyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIC8qCiAg KiBSaW5nLgogICovCitpbnQgcmFkZW9uX2RlYnVnZnNfcmluZ19pbml0KHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpOworCit2b2lkIHJhZGVvbl9y aW5nX3dyaXRlKHN0cnVjdCByYWRlb25fcmluZyAqcmluZywgdWludDMyX3QgdikKK3sKKyNpZiBE Uk1fREVCVUdfQ09ERQorCWlmIChyaW5nLT5jb3VudF9kdyA8PSAwKSB7CisJCURSTV9FUlJPUigi cmFkZW9uOiB3cml0dGluZyBtb3JlIGR3b3JkIHRvIHJpbmcgdGhhbiBleHBlY3RlZCAhXG4iKTsK Kwl9CisjZW5kaWYKKwlyaW5nLT5yaW5nW3JpbmctPndwdHIrK10gPSB2OworCXJpbmctPndwdHIg Jj0gcmluZy0+cHRyX21hc2s7CisJcmluZy0+Y291bnRfZHctLTsKKwlyaW5nLT5yaW5nX2ZyZWVf ZHctLTsKK30KKwogaW50IHJhZGVvbl9yaW5nX2luZGV4KHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiB7CiAJLyogcjF4eC1yNXh4IG9ubHkgaGFz IENQIHJpbmcgKi8KQEAgLTU3OCwzNyArNTA5LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2luZm9f bGlzdCByYWRlb25fZGVidWdmc19yaW5nX2luZm9fbGlzdFtdID0gewogCXsicmFkZW9uX3Jpbmdf Y3AyIiwgcmFkZW9uX2RlYnVnZnNfcmluZ19pbmZvLCAwLCAmY2F5bWFuX3JpbmdfdHlwZV9jcDJf aW5kZXh9LAogfTsKIAotc3RhdGljIGludCByYWRlb25fZGVidWdmc19pYl9pbmZvKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9kZSA9 IChzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqKSBtLT5wcml2YXRlOwotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBub2RlLT5taW5vci0+ZGV2OwotCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgcmFkZW9uX2liICppYiA9ICZyZGV2LT5pYl9wb29s Lmlic1sqKCh1bnNpZ25lZCopbm9kZS0+aW5mb19lbnQtPmRhdGEpXTsKLQl1bnNpZ25lZCBpOwot Ci0JaWYgKGliID09IE5VTEwpIHsKLQkJcmV0dXJuIDA7Ci0JfQotCXNlcV9wcmludGYobSwgIklC ICUwNHVcbiIsIGliLT5pZHgpOwotCXNlcV9wcmludGYobSwgIklCIGZlbmNlICVwXG4iLCBpYi0+ ZmVuY2UpOwotCXNlcV9wcmludGYobSwgIklCIHNpemUgJTA1dSBkd29yZHNcbiIsIGliLT5sZW5n dGhfZHcpOwotCWZvciAoaSA9IDA7IGkgPCBpYi0+bGVuZ3RoX2R3OyBpKyspIHsKLQkJc2VxX3By aW50ZihtLCAiWyUwNXVdPTB4JTA4WFxuIiwgaSwgaWItPnB0cltpXSk7Ci0JfQotCXJldHVybiAw OwotfQotCi1zdGF0aWMgc3RydWN0IGRybV9pbmZvX2xpc3QgcmFkZW9uX2RlYnVnZnNfaWJfbGlz dFtSQURFT05fSUJfUE9PTF9TSVpFXTsKLXN0YXRpYyBjaGFyIHJhZGVvbl9kZWJ1Z2ZzX2liX25h bWVzW1JBREVPTl9JQl9QT09MX1NJWkVdWzMyXTsKLXN0YXRpYyB1bnNpZ25lZCByYWRlb25fZGVi dWdmc19pYl9pZHhbUkFERU9OX0lCX1BPT0xfU0laRV07Ci0KIHN0YXRpYyBpbnQgcmFkZW9uX2Rl YnVnZnNfc2FfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0 IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKikgbS0+cHJpdmF0 ZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKLQlyYWRlb25fc2FfYm9f ZHVtcF9kZWJ1Z19pbmZvKCZyZGV2LT5pYl9wb29sLnNhX21hbmFnZXIsIG0pOworCXJhZGVvbl9z YV9ib19kdW1wX2RlYnVnX2luZm8oJnJkZXYtPnJpbmdfdG1wX2JvLCBtKTsKIAogCXJldHVybiAw OwogfQpAQCAtNjQzLDIxICs1NTAsMTAgQEAgaW50IHJhZGVvbl9kZWJ1Z2ZzX3JpbmdfaW5pdChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW4KIAlyZXR1 cm4gMDsKIH0KIAotaW50IHJhZGVvbl9kZWJ1Z2ZzX2liX2luaXQoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYpCitpbnQgcmFkZW9uX2RlYnVnZnNfc2FfaW5pdChzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldikKIHsKICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKLQl1bnNpZ25lZCBpOwot Ci0JZm9yIChpID0gMDsgaSA8IFJBREVPTl9JQl9QT09MX1NJWkU7IGkrKykgewotCQlzcHJpbnRm KHJhZGVvbl9kZWJ1Z2ZzX2liX25hbWVzW2ldLCAicmFkZW9uX2liXyUwNHUiLCBpKTsKLQkJcmFk ZW9uX2RlYnVnZnNfaWJfaWR4W2ldID0gaTsKLQkJcmFkZW9uX2RlYnVnZnNfaWJfbGlzdFtpXS5u YW1lID0gcmFkZW9uX2RlYnVnZnNfaWJfbmFtZXNbaV07Ci0JCXJhZGVvbl9kZWJ1Z2ZzX2liX2xp c3RbaV0uc2hvdyA9ICZyYWRlb25fZGVidWdmc19pYl9pbmZvOwotCQlyYWRlb25fZGVidWdmc19p Yl9saXN0W2ldLmRyaXZlcl9mZWF0dXJlcyA9IDA7Ci0JCXJhZGVvbl9kZWJ1Z2ZzX2liX2xpc3Rb aV0uZGF0YSA9ICZyYWRlb25fZGVidWdmc19pYl9pZHhbaV07Ci0JfQotCXJldHVybiByYWRlb25f ZGVidWdmc19hZGRfZmlsZXMocmRldiwgcmFkZW9uX2RlYnVnZnNfaWJfbGlzdCwKLQkJCQkJUkFE RU9OX0lCX1BPT0xfU0laRSk7CisJcmV0dXJuIHJhZGVvbl9kZWJ1Z2ZzX2FkZF9maWxlcyhyZGV2 LCByYWRlb25fZGVidWdmc19zYV9saXN0LCAxKTsKICNlbHNlCiAJcmV0dXJuIDA7CiAjZW5kaWYK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3NlbWFwaG9yZS5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBob3JlLmMKaW5kZXggODIyNzIzZS4u NDBhMjA3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBo b3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBob3JlLmMKQEAg LTU0LDkgKzU0LDkgQEAgc3RhdGljIGludCByYWRlb25fc2VtYXBob3JlX2FkZF9ibyhzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldikKIAkJa2ZyZWUoYm8pOwogCQlyZXR1cm4gcjsKIAl9Ci0JZ3B1 X2FkZHIgPSByZGV2LT5pYl9wb29sLnNhX21hbmFnZXIuZ3B1X2FkZHI7CisJZ3B1X2FkZHIgPSBy ZGV2LT5yaW5nX3RtcF9iby5ncHVfYWRkcjsKIAlncHVfYWRkciArPSBiby0+aWItPnNhX2JvLT5z b2Zmc2V0OwotCWNwdV9wdHIgPSByZGV2LT5pYl9wb29sLnNhX21hbmFnZXIuY3B1X3B0cjsKKwlj cHVfcHRyID0gcmRldi0+cmluZ190bXBfYm8uY3B1X3B0cjsKIAljcHVfcHRyICs9IChiby0+aWIt PnNhX2JvLT5zb2Zmc2V0ID4+IDIpOwogCWZvciAoaSA9IDA7IGkgPCAoUkFERU9OX1NFTUFQSE9S RV9CT19TSVpFLzgpOyBpKyspIHsKIAkJYm8tPnNlbWFwaG9yZXNbaV0uZ3B1X2FkZHIgPSBncHVf YWRkcjsKQEAgLTc1LDggKzc1LDcgQEAgc3RhdGljIGludCByYWRlb25fc2VtYXBob3JlX2FkZF9i byhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIHN0YXRpYyB2b2lkIHJhZGVvbl9zZW1hcGhv cmVfZGVsX2JvX2xvY2tlZChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkJICAgc3Ry dWN0IHJhZGVvbl9zZW1hcGhvcmVfYm8gKmJvKQogewotCXJhZGVvbl9zYV9ib19mcmVlKHJkZXYs ICZiby0+aWItPnNhX2JvKTsKLQlyYWRlb25fZmVuY2VfdW5yZWYoJmJvLT5pYi0+ZmVuY2UpOwor CXJhZGVvbl9pYl9mcmVlKHJkZXYsICZiby0+aWIpOwogCWxpc3RfZGVsKCZiby0+bGlzdCk7CiAJ a2ZyZWUoYm8pOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCmluZGV4IGY4ZWUwNjYuLmRlMzdmMDkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3NpLmMKQEAgLTE5MTUsNyArMTkxNSw3IEBAIHZvaWQgc2lfZmVuY2VfcmluZ19lbWl0 KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogICovCiB2b2lkIHNpX3JpbmdfaWJfZXhlY3V0 ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9pYiAqaWIpCiB7Ci0J c3RydWN0IHJhZGVvbl9yaW5nICpyaW5nID0gJnJkZXYtPnJpbmdbaWItPmZlbmNlLT5yaW5nXTsK KwlzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcgPSAmcmRldi0+cmluZ1tpYi0+c2FfYm8tPmZlbmNl LT5yaW5nXTsKIAl1MzIgaGVhZGVyOwogCiAJaWYgKGliLT5pc19jb25zdF9pYikKQEAgLTI4NTQs NyArMjg1NCw3IEBAIGludCBzaV9pYl9wYXJzZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwg c3RydWN0IHJhZGVvbl9pYiAqaWIpCiAJCQlpZiAoaWItPmlzX2NvbnN0X2liKQogCQkJCXJldCA9 IHNpX3ZtX3BhY2tldDNfY2VfY2hlY2socmRldiwgaWItPnB0ciwgJnBrdCk7CiAJCQllbHNlIHsK LQkJCQlzd2l0Y2ggKGliLT5mZW5jZS0+cmluZykgeworCQkJCXN3aXRjaCAoaWItPnNhX2JvLT5m ZW5jZS0+cmluZykgewogCQkJCWNhc2UgUkFERU9OX1JJTkdfVFlQRV9HRlhfSU5ERVg6CiAJCQkJ CXJldCA9IHNpX3ZtX3BhY2tldDNfZ2Z4X2NoZWNrKHJkZXYsIGliLT5wdHIsICZwa3QpOwogCQkJ CQlicmVhazsKQEAgLTI4NjMsNyArMjg2Myw3IEBAIGludCBzaV9pYl9wYXJzZShzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9pYiAqaWIpCiAJCQkJCXJldCA9IHNpX3Zt X3BhY2tldDNfY29tcHV0ZV9jaGVjayhyZGV2LCBpYi0+cHRyLCAmcGt0KTsKIAkJCQkJYnJlYWs7 CiAJCQkJZGVmYXVsdDoKLQkJCQkJZGV2X2VycihyZGV2LT5kZXYsICJOb24tUE00IHJpbmcgJWQg IVxuIiwgaWItPmZlbmNlLT5yaW5nKTsKKwkJCQkJZGV2X2VycihyZGV2LT5kZXYsICJOb24tUE00 IHJpbmcgJWQgIVxuIiwgaWItPnNhX2JvLT5mZW5jZS0+cmluZyk7CiAJCQkJCXJldCA9IC1FSU5W QUw7CiAJCQkJCWJyZWFrOwogCQkJCX0KLS0gCjEuNy43LjYKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==