From mboxrd@z Thu Jan 1 00:00:00 1970 From: j.glisse@gmail.com Subject: [PATCH 12/24] drm/radeon: rip out the ib pool v2 Date: Wed, 25 Apr 2012 15:03:17 -0400 Message-ID: <1335380609-5804-13-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-qc0-f177.google.com (mail-qc0-f177.google.com [209.85.216.177]) by gabe.freedesktop.org (Postfix) with ESMTP id E0D14A09D0 for ; Wed, 25 Apr 2012 12:04:02 -0700 (PDT) Received: by mail-qc0-f177.google.com with SMTP id u28so327267qcs.36 for ; Wed, 25 Apr 2012 12:04:02 -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: =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGU+CgpJdCBpc24n dCBuZWNlc3NhcnkgYW55IG1vcmUgYW5kIHRoZSBzdWJhbGxvY2F0b3IKc2VlbXMgdG8gcGVyZm9y bSBldmVuIGJldHRlci4KCnYyOiBkcm9wIGRlYnVnZnMKClNpZ25lZC1vZmYtYnk6IENocmlzdGlh biBLw7ZuaWcgPGRlYXRoc2ltcGxlQHZvZGFmb25lLmRlPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uLmggICAgICAgICAgIHwgICAyMiArLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9kZXZpY2UuYyAgICB8ICAgIDEgLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fZmVuY2UuYyAgICAgfCAgIDQ0ICsrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2dhcnQuYyAgICAgIHwgICAxMiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fcmluZy5jICAgICAgfCAgMTg3ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zZW1hcGhvcmUuYyB8ICAgIDYgKy0KIDYgZmlsZXMg Y2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDE1NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb24uaAppbmRleCA3ZjczZjQwLi41NzVkYzA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u LmgKQEAgLTI0OSw2ICsyNDksOCBAQCBleHRlcm4gdm9pZCBldmVyZ3JlZW5fdGlsaW5nX2ZpZWxk cyh1bnNpZ25lZCB0aWxpbmdfZmxhZ3MsIHVuc2lnbmVkICpiYW5rdywKIC8qCiAgKiBGZW5jZXMu CiAgKi8KK3N0cnVjdCByYWRlb25faWI7CisKIHN0cnVjdCByYWRlb25fZmVuY2VfZHJpdmVyIHsK IAl1aW50MzJfdAkJCXNjcmF0Y2hfcmVnOwogCXVpbnQ2NF90CQkJZ3B1X2FkZHI7CkBAIC0yNTks NyArMjYxLDYgQEAgc3RydWN0IHJhZGVvbl9mZW5jZV9kcml2ZXIgewogCXdhaXRfcXVldWVfaGVh ZF90CQlxdWV1ZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQljcmVhdGVkOwogCXN0cnVjdCBsaXN0X2hl YWQJCWVtaXR0ZWQ7Ci0Jc3RydWN0IGxpc3RfaGVhZAkJc2lnbmFsZWQ7CiAJYm9vbAkJCQlpbml0 aWFsaXplZDsKIH07CiAKQEAgLTI3NCw2ICsyNzUsNyBAQCBzdHJ1Y3QgcmFkZW9uX2ZlbmNlIHsK IAkvKiBSQiwgRE1BLCBldGMuICovCiAJaW50CQkJCXJpbmc7CiAJc3RydWN0IHJhZGVvbl9zZW1h cGhvcmUJCSpzZW1hcGhvcmU7CisJc3RydWN0IHJhZGVvbl9pYgkJKmliOwogfTsKIAogaW50IHJh ZGVvbl9mZW5jZV9kcml2ZXJfc3RhcnRfcmluZyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwg aW50IHJpbmcpOwpAQCAtMjg5LDYgKzI5MSw3IEBAIGludCByYWRlb25fZmVuY2Vfd2FpdF9lbXB0 eShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpbmcpOwogc3RydWN0IHJhZGVvbl9m ZW5jZSAqcmFkZW9uX2ZlbmNlX3JlZihzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSk7CiB2b2lk IHJhZGVvbl9mZW5jZV91bnJlZihzdHJ1Y3QgcmFkZW9uX2ZlbmNlICoqZmVuY2UpOwogaW50IHJh ZGVvbl9mZW5jZV9jb3VudF9lbWl0dGVkKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQg cmluZyk7Citib29sIHJhZGVvbl9mZW5jZV9zZXRfYXNzb2NpYXRlZF9pYihzdHJ1Y3QgcmFkZW9u X2ZlbmNlICpmZW5jZSwgc3RydWN0IHJhZGVvbl9pYiAqaWIpOwogCiAvKgogICogVGlsaW5nIHJl Z2lzdGVycwpAQCAtNjAzLDcgKzYwNiw2IEBAIHZvaWQgcmFkZW9uX2lycV9rbXNfcGZsaXBfaXJx X3B1dChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IGNydGMpOwogCiBzdHJ1Y3QgcmFk ZW9uX2liIHsKIAlzdHJ1Y3QgcmFkZW9uX3NhX2JvCXNhX2JvOwotCXVuc2lnbmVkCQlpZHg7CiAJ dWludDMyX3QJCWxlbmd0aF9kdzsKIAl1aW50NjRfdAkJZ3B1X2FkZHI7CiAJdWludDMyX3QJCSpw dHI7CkBAIC02MTIsMTggKzYxNCw2IEBAIHN0cnVjdCByYWRlb25faWIgewogCWJvb2wJCQlpc19j b25zdF9pYjsKIH07CiAKLS8qCi0gKiBsb2NraW5nIC0KLSAqIG11dGV4IHByb3RlY3RzIHNjaGVk dWxlZF9pYnMsIHJlYWR5LCBhbGxvY19ibQotICovCi1zdHJ1Y3QgcmFkZW9uX2liX3Bvb2wgewot CXN0cnVjdCByYWRlb25fbXV0ZXgJCW11dGV4OwotCXN0cnVjdCByYWRlb25fc2FfbWFuYWdlcglz YV9tYW5hZ2VyOwotCXN0cnVjdCByYWRlb25faWIJCWlic1tSQURFT05fSUJfUE9PTF9TSVpFXTsK LQlib29sCQkJCXJlYWR5OwotCXVuc2lnbmVkCQkJaGVhZF9pZDsKLX07Ci0KIHN0cnVjdCByYWRl b25fcmluZyB7CiAJc3RydWN0IHJhZGVvbl9ibwkqcmluZ19vYmo7CiAJdm9sYXRpbGUgdWludDMy X3QJKnJpbmc7CkBAIC03NjQsNyArNzU0LDYgQEAgc3RydWN0IHNpX3JsYyB7CiBpbnQgcmFkZW9u X2liX2dldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpbmcsCiAJCSAgc3RydWN0 IHJhZGVvbl9pYiAqKmliLCB1bnNpZ25lZCBzaXplKTsKIHZvaWQgcmFkZW9uX2liX2ZyZWUoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25faWIgKippYik7Ci1ib29sIHJh ZGVvbl9pYl90cnlfZnJlZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVv bl9pYiAqaWIpOwogaW50IHJhZGVvbl9pYl9zY2hlZHVsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwgc3RydWN0IHJhZGVvbl9pYiAqaWIpOwogaW50IHJhZGVvbl9pYl9wb29sX2luaXQoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogdm9pZCByYWRlb25faWJfcG9vbF9maW5pKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KTsKQEAgLTE0OTcsNyArMTQ4Niw4IEBAIHN0cnVjdCByYWRl b25fZGV2aWNlIHsKIAlyd2xvY2tfdAkJCWZlbmNlX2xvY2s7CiAJc3RydWN0IHJhZGVvbl9mZW5j ZV9kcml2ZXIJZmVuY2VfZHJ2W1JBREVPTl9OVU1fUklOR1NdOwogCXN0cnVjdCByYWRlb25fcmlu ZwkJcmluZ1tSQURFT05fTlVNX1JJTkdTXTsKLQlzdHJ1Y3QgcmFkZW9uX2liX3Bvb2wJCWliX3Bv b2w7CisJYm9vbAkJCQlpYl9wb29sX3JlYWR5OworCXN0cnVjdCByYWRlb25fc2FfbWFuYWdlcglz YV9tYW5hZ2VyOwogCXN0cnVjdCByYWRlb25faXJxCQlpcnE7CiAJc3RydWN0IHJhZGVvbl9hc2lj CQkqYXNpYzsKIAlzdHJ1Y3QgcmFkZW9uX2dlbQkJZ2VtOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9kZXZpY2UuYwppbmRleCBkNzdmMTlmLi4yNmZiOWRhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9kZXZpY2UuYwpAQCAtNzIzLDcgKzcyMyw2IEBAIGludCByYWRlb25fZGV2aWNl X2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJLyogbXV0ZXggaW5pdGlhbGl6YXRp b24gYXJlIGFsbCBkb25lIGhlcmUgc28gd2UKIAkgKiBjYW4gcmVjYWxsIGZ1bmN0aW9uIHdpdGhv dXQgaGF2aW5nIGxvY2tpbmcgaXNzdWVzICovCiAJcmFkZW9uX211dGV4X2luaXQoJnJkZXYtPmNz X211dGV4KTsKLQlyYWRlb25fbXV0ZXhfaW5pdCgmcmRldi0+aWJfcG9vbC5tdXRleCk7CiAJZm9y IChpID0gMDsgaSA8IFJBREVPTl9OVU1fUklOR1M7ICsraSkKIAkJbXV0ZXhfaW5pdCgmcmRldi0+ cmluZ1tpXS5tdXRleCk7CiAJbXV0ZXhfaW5pdCgmcmRldi0+ZGNfaHdfaTJjX211dGV4KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9mZW5jZS5jCmluZGV4IGM5NmQxMTIuLmFiZDEwZjkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmVuY2UuYwpAQCAtODMsNyArODMsOCBAQCBpbnQg cmFkZW9uX2ZlbmNlX2VtaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRl b25fZmVuY2UgKmZlbmNlKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgYm9vbCByYWRlb25fZmVu Y2VfcG9sbF9sb2NrZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCByaW5nKQorc3Rh dGljIGJvb2wgcmFkZW9uX2ZlbmNlX3BvbGxfbG9ja2VkKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBpbnQgcmluZywKKwkJCQkgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnNpZ25hbGVkKQogewog CXN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlOwogCXN0cnVjdCBsaXN0X2hlYWQgKmksICpuOwpA QCAtMTEwLDcgKzExMSw3IEBAIHN0YXRpYyBib29sIHJhZGVvbl9mZW5jZV9wb2xsX2xvY2tlZChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpbmcpCiAJCWkgPSBuOwogCQlkbyB7CiAJ CQluID0gaS0+cHJldjsKLQkJCWxpc3RfbW92ZV90YWlsKGksICZyZGV2LT5mZW5jZV9kcnZbcmlu Z10uc2lnbmFsZWQpOworCQkJbGlzdF9tb3ZlX3RhaWwoaSwgc2lnbmFsZWQpOwogCQkJZmVuY2Ug PSBsaXN0X2VudHJ5KGksIHN0cnVjdCByYWRlb25fZmVuY2UsIGxpc3QpOwogCQkJZmVuY2UtPnNp Z25hbGVkID0gdHJ1ZTsKIAkJCWkgPSBuOwpAQCAtMTIwLDYgKzEyMSwxOCBAQCBzdGF0aWMgYm9v bCByYWRlb25fZmVuY2VfcG9sbF9sb2NrZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGlu dCByaW5nKQogCXJldHVybiB3YWtlOwogfQogCitzdGF0aWMgdm9pZCByYWRlb25fZmVuY2VfcHJv Y2Vzc19zaWduYWxlZChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IGxpc3RfaGVh ZCAqc2lnbmFsZWQpCit7CisJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2U7CisJc3RydWN0IGxp c3RfaGVhZCAqaSwgKm47CisKKwlsaXN0X2Zvcl9lYWNoX3NhZmUoaSwgbiwgc2lnbmFsZWQpIHsK KwkJZmVuY2UgPSBsaXN0X2VudHJ5KGksIHN0cnVjdCByYWRlb25fZmVuY2UsIGxpc3QpOworCQls aXN0X2RlbF9pbml0KCZmZW5jZS0+bGlzdCk7CisJCXJhZGVvbl9pYl9mcmVlKHJkZXYsICZmZW5j ZS0+aWIpOworCX0KK30KKwogc3RhdGljIHZvaWQgcmFkZW9uX2ZlbmNlX2Rlc3Ryb3koc3RydWN0 IGtyZWYgKmtyZWYpCiB7CiAJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CkBAIC0xNTIsNiArMTY1 LDcgQEAgaW50IHJhZGVvbl9mZW5jZV9jcmVhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs CiAJKCpmZW5jZSktPnNlcSA9IDA7CiAJKCpmZW5jZSktPnJpbmcgPSByaW5nOwogCSgqZmVuY2Up LT5zZW1hcGhvcmUgPSBOVUxMOworCSgqZmVuY2UpLT5pYiA9IE5VTEw7CiAJSU5JVF9MSVNUX0hF QUQoJigqZmVuY2UpLT5saXN0KTsKIAogCXdyaXRlX2xvY2tfaXJxc2F2ZSgmcmRldi0+ZmVuY2Vf bG9jaywgaXJxX2ZsYWdzKTsKQEAgLTE2NCw2ICsxNzgsNyBAQCBib29sIHJhZGVvbl9mZW5jZV9z aWduYWxlZChzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSkKIHsKIAl1bnNpZ25lZCBsb25nIGly cV9mbGFnczsKIAlib29sIHNpZ25hbGVkID0gZmFsc2U7CisJTElTVF9IRUFEKHNpZ2xpc3QpOwog CiAJaWYgKCFmZW5jZSkKIAkJcmV0dXJuIHRydWU7CkBAIC0xNzksMTAgKzE5NCwxMiBAQCBib29s IHJhZGVvbl9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSkKIAkJc2ln bmFsZWQgPSB0cnVlOwogCX0KIAlpZiAoIXNpZ25hbGVkKSB7Ci0JCXJhZGVvbl9mZW5jZV9wb2xs X2xvY2tlZChmZW5jZS0+cmRldiwgZmVuY2UtPnJpbmcpOworCQlyYWRlb25fZmVuY2VfcG9sbF9s b2NrZWQoZmVuY2UtPnJkZXYsIGZlbmNlLT5yaW5nLCAmc2lnbGlzdCk7CiAJCXNpZ25hbGVkID0g ZmVuY2UtPnNpZ25hbGVkOwogCX0KIAl3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmZmVuY2UtPnJk ZXYtPmZlbmNlX2xvY2ssIGlycV9mbGFncyk7CisJcmFkZW9uX2ZlbmNlX3Byb2Nlc3Nfc2lnbmFs ZWQoZmVuY2UtPnJkZXYsICZzaWdsaXN0KTsKKwogCXJldHVybiBzaWduYWxlZDsKIH0KIApAQCAt MzQxLDEwICszNTgsMTIgQEAgdm9pZCByYWRlb25fZmVuY2VfcHJvY2VzcyhzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwgaW50IHJpbmcpCiB7CiAJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CiAJ Ym9vbCB3YWtlOworCUxJU1RfSEVBRChzaWduYWxlZCk7CiAKIAl3cml0ZV9sb2NrX2lycXNhdmUo JnJkZXYtPmZlbmNlX2xvY2ssIGlycV9mbGFncyk7Ci0Jd2FrZSA9IHJhZGVvbl9mZW5jZV9wb2xs X2xvY2tlZChyZGV2LCByaW5nKTsKKwl3YWtlID0gcmFkZW9uX2ZlbmNlX3BvbGxfbG9ja2VkKHJk ZXYsIHJpbmcsICZzaWduYWxlZCk7CiAJd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJnJkZXYtPmZl bmNlX2xvY2ssIGlycV9mbGFncyk7CisJcmFkZW9uX2ZlbmNlX3Byb2Nlc3Nfc2lnbmFsZWQocmRl diwgJnNpZ25hbGVkKTsKIAlpZiAod2FrZSkgewogCQl3YWtlX3VwX2FsbCgmcmRldi0+ZmVuY2Vf ZHJ2W3JpbmddLnF1ZXVlKTsKIAl9CkBAIC0zNzMsNiArMzkyLDIyIEBAIGludCByYWRlb25fZmVu Y2VfY291bnRfZW1pdHRlZChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpbmcpCiAJ cmV0dXJuIG5vdF9wcm9jZXNzZWQ7CiB9CiAKK2Jvb2wgcmFkZW9uX2ZlbmNlX3NldF9hc3NvY2lh dGVkX2liKHN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgcmFkZW9uX2liICppYikK K3sKKwlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGZlbmNlLT5yZGV2OworCXVuc2lnbmVk IGxvbmcgaXJxX2ZsYWdzOworCWJvb2wgaXNzZXQgPSBmYWxzZTsKKworCS8qIGEgcmVhZGxvY2sg aXMgc3VmaWNpZW50LCBjYXVzZSB0aGlzIHNob3VsZCBiZSBjYWxsZWQgb25seSBvbmNlICovCisJ cmVhZF9sb2NrX2lycXNhdmUoJnJkZXYtPmZlbmNlX2xvY2ssIGlycV9mbGFncyk7CisJaWYgKGZl bmNlLT5lbWl0dGVkICYmICFmZW5jZS0+c2lnbmFsZWQpIHsKKwkJZmVuY2UtPmliID0gaWI7CisJ CWlzc2V0ID0gdHJ1ZTsKKwl9CisJcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmcmRldi0+ZmVuY2Vf bG9jaywgaXJxX2ZsYWdzKTsKKwlyZXR1cm4gaXNzZXQ7Cit9CisKIGludCByYWRlb25fZmVuY2Vf ZHJpdmVyX3N0YXJ0X3Jpbmcoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCByaW5nKQog ewogCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOwpAQCAtNDEzLDcgKzQ0OCw2IEBAIHN0YXRpYyB2 b2lkIHJhZGVvbl9mZW5jZV9kcml2ZXJfaW5pdF9yaW5nKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBpbnQgcmluZykKIAlhdG9taWNfc2V0KCZyZGV2LT5mZW5jZV9kcnZbcmluZ10uc2VxLCAw KTsKIAlJTklUX0xJU1RfSEVBRCgmcmRldi0+ZmVuY2VfZHJ2W3JpbmddLmNyZWF0ZWQpOwogCUlO SVRfTElTVF9IRUFEKCZyZGV2LT5mZW5jZV9kcnZbcmluZ10uZW1pdHRlZCk7Ci0JSU5JVF9MSVNU X0hFQUQoJnJkZXYtPmZlbmNlX2RydltyaW5nXS5zaWduYWxlZCk7CiAJaW5pdF93YWl0cXVldWVf aGVhZCgmcmRldi0+ZmVuY2VfZHJ2W3JpbmddLnF1ZXVlKTsKIAlyZGV2LT5mZW5jZV9kcnZbcmlu Z10uaW5pdGlhbGl6ZWQgPSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2dhcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dhcnQu YwppbmRleCA3YWY0ZmY5Li4yMjBkYmI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9nYXJ0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2Fy dC5jCkBAIC00MzQsOCArNDM0LDggQEAgcmV0cnlfaWQ6CiAJcmRldi0+dm1fbWFuYWdlci51c2Vf Yml0bWFwIHw9IDEgPDwgaWQ7CiAJdm0tPmlkID0gaWQ7CiAJbGlzdF9hZGRfdGFpbCgmdm0tPmxp c3QsICZyZGV2LT52bV9tYW5hZ2VyLmxydV92bSk7Ci0JcmV0dXJuIHJhZGVvbl92bV9ib191cGRh dGVfcHRlKHJkZXYsIHZtLCByZGV2LT5pYl9wb29sLnNhX21hbmFnZXIuYm8sCi0JCQkJICAgICAg ICZyZGV2LT5pYl9wb29sLnNhX21hbmFnZXIuYm8tPnRiby5tZW0pOworCXJldHVybiByYWRlb25f dm1fYm9fdXBkYXRlX3B0ZShyZGV2LCB2bSwgcmRldi0+c2FfbWFuYWdlci5ibywKKwkJCQkgICAg ICAgJnJkZXYtPnNhX21hbmFnZXIuYm8tPnRiby5tZW0pOwogfQogCiAvKiBvYmplY3QgaGF2ZSB0 byBiZSByZXNlcnZlZCAqLwpAQCAtNjMzLDcgKzYzMyw3IEBAIGludCByYWRlb25fdm1faW5pdChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl92bSAqdm0pCiAJLyogbWFw IHRoZSBpYiBwb29sIGJ1ZmZlciBhdCAwIGluIHZpcnR1YWwgYWRkcmVzcyBzcGFjZSwgc2V0CiAJ ICogcmVhZCBvbmx5CiAJICovCi0JciA9IHJhZGVvbl92bV9ib19hZGQocmRldiwgdm0sIHJkZXYt PmliX3Bvb2wuc2FfbWFuYWdlci5ibywgMCwKKwlyID0gcmFkZW9uX3ZtX2JvX2FkZChyZGV2LCB2 bSwgcmRldi0+c2FfbWFuYWdlci5ibywgMCwKIAkJCSAgICAgUkFERU9OX1ZNX1BBR0VfUkVBREFC TEUgfCBSQURFT05fVk1fUEFHRV9TTk9PUEVEKTsKIAlyZXR1cm4gcjsKIH0KQEAgLTY1MCwxMiAr NjUwLDEyIEBAIHZvaWQgcmFkZW9uX3ZtX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs IHN0cnVjdCByYWRlb25fdm0gKnZtKQogCXJhZGVvbl9tdXRleF91bmxvY2soJnJkZXYtPmNzX211 dGV4KTsKIAogCS8qIHJlbW92ZSBhbGwgYm8gKi8KLQlyID0gcmFkZW9uX2JvX3Jlc2VydmUocmRl di0+aWJfcG9vbC5zYV9tYW5hZ2VyLmJvLCBmYWxzZSk7CisJciA9IHJhZGVvbl9ib19yZXNlcnZl KHJkZXYtPnNhX21hbmFnZXIuYm8sIGZhbHNlKTsKIAlpZiAoIXIpIHsKLQkJYm9fdmEgPSByYWRl b25fYm9fdmEocmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLmJvLCB2bSk7CisJCWJvX3ZhID0gcmFk ZW9uX2JvX3ZhKHJkZXYtPnNhX21hbmFnZXIuYm8sIHZtKTsKIAkJbGlzdF9kZWxfaW5pdCgmYm9f dmEtPmJvX2xpc3QpOwogCQlsaXN0X2RlbF9pbml0KCZib192YS0+dm1fbGlzdCk7Ci0JCXJhZGVv bl9ib191bnJlc2VydmUocmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLmJvKTsKKwkJcmFkZW9uX2Jv X3VucmVzZXJ2ZShyZGV2LT5zYV9tYW5hZ2VyLmJvKTsKIAkJa2ZyZWUoYm9fdmEpOwogCX0KIAlp ZiAoIWxpc3RfZW1wdHkoJnZtLT52YSkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX3JpbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3Jpbmcu YwppbmRleCBiMDZlMDRmLi5jOGRlYWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9yaW5nLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcmlu Zy5jCkBAIC0yNCw2ICsyNCw3IEBACiAgKiBBdXRob3JzOiBEYXZlIEFpcmxpZQogICogICAgICAg ICAgQWxleCBEZXVjaGVyCiAgKiAgICAgICAgICBKZXJvbWUgR2xpc3NlCisgKiAgICAgICAgICBD aHJpc3RpYW4gS8O2bmlnCiAgKi8KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1 ZGUgPGxpbnV4L3NsYWIuaD4KQEAgLTMzLDYgKzM0LDkgQEAKICNpbmNsdWRlICJyYWRlb24uaCIK ICNpbmNsdWRlICJhdG9tLmgiCiAKKy8qCisgKiBJQi4KKyAqLwogdTMyIHJhZGVvbl9nZXRfaWJf dmFsdWUoc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsIGludCBpZHgpCiB7CiAJc3RydWN0IHJh ZGVvbl9jc19jaHVuayAqaWJjID0gJnAtPmNodW5rc1twLT5jaHVua19pYl9pZHhdOwpAQCAtNTgs MTIzICs2Miw2MiBAQCB1MzIgcmFkZW9uX2dldF9pYl92YWx1ZShzdHJ1Y3QgcmFkZW9uX2NzX3Bh cnNlciAqcCwgaW50IGlkeCkKIAlyZXR1cm4gaWR4X3ZhbHVlOwogfQogCi12b2lkIHJhZGVvbl9y aW5nX3dyaXRlKHN0cnVjdCByYWRlb25fcmluZyAqcmluZywgdWludDMyX3QgdikKLXsKLSNpZiBE Uk1fREVCVUdfQ09ERQotCWlmIChyaW5nLT5jb3VudF9kdyA8PSAwKSB7Ci0JCURSTV9FUlJPUigi cmFkZW9uOiB3cml0dGluZyBtb3JlIGR3b3JkIHRvIHJpbmcgdGhhbiBleHBlY3RlZCAhXG4iKTsK LQl9Ci0jZW5kaWYKLQlyaW5nLT5yaW5nW3JpbmctPndwdHIrK10gPSB2OwotCXJpbmctPndwdHIg Jj0gcmluZy0+cHRyX21hc2s7Ci0JcmluZy0+Y291bnRfZHctLTsKLQlyaW5nLT5yaW5nX2ZyZWVf ZHctLTsKLX0KLQotLyoKLSAqIElCLgotICovCi1ib29sIHJhZGVvbl9pYl90cnlfZnJlZShzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9pYiAqaWIpCi17Ci0JYm9vbCBk b25lID0gZmFsc2U7Ci0KLQkvKiBvbmx5IGZyZWUgaWIgd2hpY2ggaGF2ZSBiZWVuIGVtaXRlZCAq LwotCWlmIChpYi0+ZmVuY2UgJiYgaWItPmZlbmNlLT5lbWl0dGVkKSB7Ci0JCWlmIChyYWRlb25f ZmVuY2Vfc2lnbmFsZWQoaWItPmZlbmNlKSkgewotCQkJcmFkZW9uX2ZlbmNlX3VucmVmKCZpYi0+ ZmVuY2UpOwotCQkJcmFkZW9uX3NhX2JvX2ZyZWUocmRldiwgJmliLT5zYV9ibyk7Ci0JCQlkb25l ID0gdHJ1ZTsKLQkJfQotCX0KLQlyZXR1cm4gZG9uZTsKLX0KLQogaW50IHJhZGVvbl9pYl9nZXQo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCByaW5nLAogCQkgIHN0cnVjdCByYWRlb25f aWIgKippYiwgdW5zaWduZWQgc2l6ZSkKIHsKLQlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZTsK LQl1bnNpZ25lZCBjcmV0cnkgPSAwOwotCWludCByID0gMCwgaSwgaWR4OworCWludCByOwogCi0J KmliID0gTlVMTDsKLQkvKiBhbGlnbiBzaXplIG9uIDI1NiBieXRlcyAqLwotCXNpemUgPSBBTElH TihzaXplLCAyNTYpOworCSppYiA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCByYWRlb25faWIpLCBH RlBfS0VSTkVMKTsKKwlpZiAoKmliID09IE5VTEwpIHsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQog Ci0JciA9IHJhZGVvbl9mZW5jZV9jcmVhdGUocmRldiwgJmZlbmNlLCByaW5nKTsKKwlyID0gcmFk ZW9uX3NhX2JvX25ldyhyZGV2LCAmcmRldi0+c2FfbWFuYWdlciwgJigqaWIpLT5zYV9ibywgc2l6 ZSwgMjU2LCB0cnVlKTsKIAlpZiAocikgewotCQlkZXZfZXJyKHJkZXYtPmRldiwgImZhaWxlZCB0 byBjcmVhdGUgZmVuY2UgZm9yIG5ldyBJQlxuIik7CisJCWRldl9lcnIocmRldi0+ZGV2LCAiZmFp bGVkIHRvIGdldCBhIG5ldyBJQiAoJWQpXG4iLCByKTsKKwkJa2ZyZWUoKmliKTsKKwkJKmliID0g TlVMTDsKIAkJcmV0dXJuIHI7CiAJfQogCi0JcmFkZW9uX211dGV4X2xvY2soJnJkZXYtPmliX3Bv b2wubXV0ZXgpOwotCWlkeCA9IHJkZXYtPmliX3Bvb2wuaGVhZF9pZDsKLXJldHJ5OgotCWlmIChj cmV0cnkgPiA1KSB7Ci0JCWRldl9lcnIocmRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBhbiBpYiBh ZnRlciA1IHJldHJ5XG4iKTsKLQkJcmFkZW9uX211dGV4X3VubG9jaygmcmRldi0+aWJfcG9vbC5t dXRleCk7Ci0JCXJhZGVvbl9mZW5jZV91bnJlZigmZmVuY2UpOwotCQlyZXR1cm4gLUVOT01FTTsK LQl9Ci0JY3JldHJ5Kys7Ci0JZm9yIChpID0gMDsgaSA8IFJBREVPTl9JQl9QT09MX1NJWkU7IGkr KykgewotCQlyYWRlb25faWJfdHJ5X2ZyZWUocmRldiwgJnJkZXYtPmliX3Bvb2wuaWJzW2lkeF0p OwotCQlpZiAocmRldi0+aWJfcG9vbC5pYnNbaWR4XS5mZW5jZSA9PSBOVUxMKSB7Ci0JCQlyID0g cmFkZW9uX3NhX2JvX25ldyhyZGV2LCAmcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLAotCQkJCQkg ICAgICZyZGV2LT5pYl9wb29sLmlic1tpZHhdLnNhX2JvLAotCQkJCQkgICAgIHNpemUsIDI1Niwg ZmFsc2UpOwotCQkJaWYgKCFyKSB7Ci0JCQkJKmliID0gJnJkZXYtPmliX3Bvb2wuaWJzW2lkeF07 Ci0JCQkJKCppYiktPnB0ciA9IHJkZXYtPmliX3Bvb2wuc2FfbWFuYWdlci5jcHVfcHRyOwotCQkJ CSgqaWIpLT5wdHIgKz0gKCgqaWIpLT5zYV9iby5vZmZzZXQgPj4gMik7Ci0JCQkJKCppYiktPmdw dV9hZGRyID0gcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLmdwdV9hZGRyOwotCQkJCSgqaWIpLT5n cHVfYWRkciArPSAoKmliKS0+c2FfYm8ub2Zmc2V0OwotCQkJCSgqaWIpLT5mZW5jZSA9IGZlbmNl OwotCQkJCSgqaWIpLT52bV9pZCA9IDA7Ci0JCQkJKCppYiktPmlzX2NvbnN0X2liID0gZmFsc2U7 Ci0JCQkJLyogaWIgYXJlIG1vc3QgbGlrZWx5IHRvIGJlIGFsbG9jYXRlZCBpbiBhIHJpbmcgZmFz aGlvbgotCQkJCSAqIHRodXMgcmRldi0+aWJfcG9vbC5oZWFkX2lkIHNob3VsZCBiZSB0aGUgaWQg b2YgdGhlCi0JCQkJICogb2xkZXN0IGliCi0JCQkJICovCi0JCQkJcmRldi0+aWJfcG9vbC5oZWFk X2lkID0gKDEgKyBpZHgpOwotCQkJCXJkZXYtPmliX3Bvb2wuaGVhZF9pZCAmPSAoUkFERU9OX0lC X1BPT0xfU0laRSAtIDEpOwotCQkJCXJhZGVvbl9tdXRleF91bmxvY2soJnJkZXYtPmliX3Bvb2wu bXV0ZXgpOwotCQkJCXJldHVybiAwOwotCQkJfQotCQl9Ci0JCWlkeCA9IChpZHggKyAxKSAmIChS QURFT05fSUJfUE9PTF9TSVpFIC0gMSk7Ci0JfQotCS8qIHRoaXMgc2hvdWxkIGJlIHJhcmUgZXZl bnQsIGllIGFsbCBpYiBzY2hlZHVsZWQgbm9uZSBzaWduYWxlZCB5ZXQuCi0JICovCi0JZm9yIChp ID0gMDsgaSA8IFJBREVPTl9JQl9QT09MX1NJWkU7IGkrKykgewotCQlpZiAocmRldi0+aWJfcG9v bC5pYnNbaWR4XS5mZW5jZSAmJiByZGV2LT5pYl9wb29sLmlic1tpZHhdLmZlbmNlLT5lbWl0dGVk KSB7Ci0JCQlyID0gcmFkZW9uX2ZlbmNlX3dhaXQocmRldi0+aWJfcG9vbC5pYnNbaWR4XS5mZW5j ZSwgZmFsc2UpOwotCQkJaWYgKCFyKSB7Ci0JCQkJZ290byByZXRyeTsKLQkJCX0KLQkJCS8qIGFu IGVycm9yIGhhcHBlbmVkICovCi0JCQlicmVhazsKLQkJfQotCQlpZHggPSAoaWR4ICsgMSkgJiAo UkFERU9OX0lCX1BPT0xfU0laRSAtIDEpOworCXIgPSByYWRlb25fZmVuY2VfY3JlYXRlKHJkZXYs ICYoKmliKS0+ZmVuY2UsIHJpbmcpOworCWlmIChyKSB7CisJCWRldl9lcnIocmRldi0+ZGV2LCAi ZmFpbGVkIHRvIGNyZWF0ZSBmZW5jZSBmb3IgbmV3IElCICglZClcbiIsIHIpOworCQlyYWRlb25f c2FfYm9fZnJlZShyZGV2LCAmKCppYiktPnNhX2JvKTsKKwkJa2ZyZWUoKmliKTsKKwkJKmliID0g TlVMTDsKKwkJcmV0dXJuIHI7CiAJfQotCXJhZGVvbl9tdXRleF91bmxvY2soJnJkZXYtPmliX3Bv b2wubXV0ZXgpOwotCXJhZGVvbl9mZW5jZV91bnJlZigmZmVuY2UpOwotCXJldHVybiByOworCisJ KCppYiktPnB0ciA9IHJkZXYtPnNhX21hbmFnZXIuY3B1X3B0cjsKKwkoKmliKS0+cHRyICs9ICgo KmliKS0+c2FfYm8ub2Zmc2V0ID4+IDIpOworCSgqaWIpLT5ncHVfYWRkciA9IHJkZXYtPnNhX21h bmFnZXIuZ3B1X2FkZHI7CisJKCppYiktPmdwdV9hZGRyICs9ICgqaWIpLT5zYV9iby5vZmZzZXQ7 CisJKCppYiktPnZtX2lkID0gMDsKKwkoKmliKS0+aXNfY29uc3RfaWIgPSBmYWxzZTsKKworCXJl dHVybiAwOwogfQogCiB2b2lkIHJhZGVvbl9pYl9mcmVlKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICoqaWIpCiB7CiAJc3RydWN0IHJhZGVvbl9pYiAqdG1wID0g KmliOworCWJvb2wgZGVzdHJveSA9IHRydWU7CiAKIAkqaWIgPSBOVUxMOwogCWlmICh0bXAgPT0g TlVMTCkgewogCQlyZXR1cm47CiAJfQotCXJhZGVvbl9tdXRleF9sb2NrKCZyZGV2LT5pYl9wb29s Lm11dGV4KTsKLQlpZiAodG1wLT5mZW5jZSAmJiAhdG1wLT5mZW5jZS0+ZW1pdHRlZCkgeworCisJ aWYgKHRtcC0+ZmVuY2UpIHsKKwkJZGVzdHJveSA9ICFyYWRlb25fZmVuY2Vfc2V0X2Fzc29jaWF0 ZWRfaWIodG1wLT5mZW5jZSwgdG1wKTsKKwl9CisKKwlpZiAoZGVzdHJveSkgewogCQlyYWRlb25f c2FfYm9fZnJlZShyZGV2LCAmdG1wLT5zYV9ibyk7CiAJCXJhZGVvbl9mZW5jZV91bnJlZigmdG1w LT5mZW5jZSk7CisJCWtmcmVlKHRtcCk7CiAJfQotCXJhZGVvbl9tdXRleF91bmxvY2soJnJkZXYt PmliX3Bvb2wubXV0ZXgpOwogfQogCiBpbnQgcmFkZW9uX2liX3NjaGVkdWxlKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYikKQEAgLTE4NCw3ICsxMjcsNyBA QCBpbnQgcmFkZW9uX2liX3NjaGVkdWxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1 Y3QgcmFkZW9uX2liICppYikKIAogCWlmICghaWItPmxlbmd0aF9kdyB8fCAhcmluZy0+cmVhZHkp IHsKIAkJLyogVE9ETzogTm90aGluZ3MgaW4gdGhlIGliIHdlIHNob3VsZCByZXBvcnQuICovCi0J CURSTV9FUlJPUigicmFkZW9uOiBjb3VsZG4ndCBzY2hlZHVsZSBJQigldSkuXG4iLCBpYi0+aWR4 KTsKKwkJRFJNX0VSUk9SKCJyYWRlb246IGNvdWxkbid0IHNjaGVkdWxlIElCLlxuIik7CiAJCXJl dHVybiAtRUlOVkFMOwogCX0KIApAQCAtMjAyLDYxICsxNDUsNDAgQEAgaW50IHJhZGVvbl9pYl9z Y2hlZHVsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9pYiAqaWIp CiAKIGludCByYWRlb25faWJfcG9vbF9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQog ewotCWludCBpLCByOworCWludCByOwogCi0JcmFkZW9uX211dGV4X2xvY2soJnJkZXYtPmliX3Bv b2wubXV0ZXgpOwotCWlmIChyZGV2LT5pYl9wb29sLnJlYWR5KSB7CisJaWYgKHJkZXYtPmliX3Bv b2xfcmVhZHkpIHsKIAkJcmV0dXJuIDA7CiAJfQotCXJkZXYtPmliX3Bvb2wucmVhZHkgPSB0cnVl OwotCXJhZGVvbl9tdXRleF91bmxvY2soJnJkZXYtPmliX3Bvb2wubXV0ZXgpOwogCi0JciA9IHJh ZGVvbl9zYV9ib19tYW5hZ2VyX2luaXQocmRldiwgJnJkZXYtPmliX3Bvb2wuc2FfbWFuYWdlciwK KwlyID0gcmFkZW9uX3NhX2JvX21hbmFnZXJfaW5pdChyZGV2LCAmcmRldi0+c2FfbWFuYWdlciwK IAkJCQkgICAgICBSQURFT05fSUJfUE9PTF9TSVpFKjY0KjEwMjQsCiAJCQkJICAgICAgUkFERU9O X0dFTV9ET01BSU5fR1RUKTsKIAlpZiAocikgewogCQlyZXR1cm4gcjsKIAl9CiAKLQlyYWRlb25f bXV0ZXhfbG9jaygmcmRldi0+aWJfcG9vbC5tdXRleCk7Ci0JZm9yIChpID0gMDsgaSA8IFJBREVP Tl9JQl9QT09MX1NJWkU7IGkrKykgewotCQlyZGV2LT5pYl9wb29sLmlic1tpXS5mZW5jZSA9IE5V TEw7Ci0JCXJkZXYtPmliX3Bvb2wuaWJzW2ldLmlkeCA9IGk7Ci0JCXJkZXYtPmliX3Bvb2wuaWJz W2ldLmxlbmd0aF9kdyA9IDA7Ci0JCUlOSVRfTElTVF9IRUFEKCZyZGV2LT5pYl9wb29sLmlic1tp XS5zYV9iby5saXN0KTsKLQl9Ci0JcmRldi0+aWJfcG9vbC5oZWFkX2lkID0gMDsKLQlyZGV2LT5p Yl9wb29sLnJlYWR5ID0gdHJ1ZTsKIAlEUk1fSU5GTygicmFkZW9uOiBpYiBwb29sIHJlYWR5Llxu Iik7Ci0KLQlyYWRlb25fbXV0ZXhfdW5sb2NrKCZyZGV2LT5pYl9wb29sLm11dGV4KTsKKwlyZGV2 LT5pYl9wb29sX3JlYWR5ID0gdHJ1ZTsKIAlyZXR1cm4gMDsKIH0KIAogdm9pZCByYWRlb25faWJf cG9vbF9maW5pKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogewotCXVuc2lnbmVkIGk7Ci0K LQlyYWRlb25fbXV0ZXhfbG9jaygmcmRldi0+aWJfcG9vbC5tdXRleCk7Ci0JaWYgKHJkZXYtPmli X3Bvb2wucmVhZHkpIHsKLQkJZm9yIChpID0gMDsgaSA8IFJBREVPTl9JQl9QT09MX1NJWkU7IGkr KykgewotCQkJcmFkZW9uX3NhX2JvX2ZyZWUocmRldiwgJnJkZXYtPmliX3Bvb2wuaWJzW2ldLnNh X2JvKTsKLQkJCXJhZGVvbl9mZW5jZV91bnJlZigmcmRldi0+aWJfcG9vbC5pYnNbaV0uZmVuY2Up OwotCQl9Ci0JCXJhZGVvbl9zYV9ib19tYW5hZ2VyX2ZpbmkocmRldiwgJnJkZXYtPmliX3Bvb2wu c2FfbWFuYWdlcik7Ci0JCXJkZXYtPmliX3Bvb2wucmVhZHkgPSBmYWxzZTsKKwlpZiAocmRldi0+ aWJfcG9vbF9yZWFkeSkgeworCQlyYWRlb25fc2FfYm9fbWFuYWdlcl9maW5pKHJkZXYsICZyZGV2 LT5zYV9tYW5hZ2VyKTsKKwkJcmRldi0+aWJfcG9vbF9yZWFkeSA9IGZhbHNlOwogCX0KLQlyYWRl b25fbXV0ZXhfdW5sb2NrKCZyZGV2LT5pYl9wb29sLm11dGV4KTsKIH0KIAogaW50IHJhZGVvbl9p Yl9wb29sX3N0YXJ0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogewotCXJldHVybiByYWRl b25fc2FfYm9fbWFuYWdlcl9zdGFydChyZGV2LCAmcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyKTsK KwlyZXR1cm4gcmFkZW9uX3NhX2JvX21hbmFnZXJfc3RhcnQocmRldiwgJnJkZXYtPnNhX21hbmFn ZXIpOwogfQogCiBpbnQgcmFkZW9uX2liX3Bvb2xfc3VzcGVuZChzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldikKIHsKLQlyZXR1cm4gcmFkZW9uX3NhX2JvX21hbmFnZXJfc3VzcGVuZChyZGV2LCAm cmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyKTsKKwlyZXR1cm4gcmFkZW9uX3NhX2JvX21hbmFnZXJf c3VzcGVuZChyZGV2LCAmcmRldi0+c2FfbWFuYWdlcik7CiB9CiAKIGludCByYWRlb25faWJfcmlu Z190ZXN0cyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKQEAgLTI5Miw2ICsyMTQsMjEgQEAg aW50IHJhZGVvbl9pYl9yaW5nX3Rlc3RzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogLyoK ICAqIFJpbmcuCiAgKi8KK2ludCByYWRlb25fZGVidWdmc19yaW5nX2luaXQoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZyk7CisKK3ZvaWQgcmFkZW9u X3Jpbmdfd3JpdGUoc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nLCB1aW50MzJfdCB2KQoreworI2lm IERSTV9ERUJVR19DT0RFCisJaWYgKHJpbmctPmNvdW50X2R3IDw9IDApIHsKKwkJRFJNX0VSUk9S KCJyYWRlb246IHdyaXR0aW5nIG1vcmUgZHdvcmQgdG8gcmluZyB0aGFuIGV4cGVjdGVkICFcbiIp OworCX0KKyNlbmRpZgorCXJpbmctPnJpbmdbcmluZy0+d3B0cisrXSA9IHY7CisJcmluZy0+d3B0 ciAmPSByaW5nLT5wdHJfbWFzazsKKwlyaW5nLT5jb3VudF9kdy0tOworCXJpbmctPnJpbmdfZnJl ZV9kdy0tOworfQorCiBpbnQgcmFkZW9uX3JpbmdfaW5kZXgoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZykKIHsKIAkvKiByMXh4LXI1eHggb25seSBo YXMgQ1AgcmluZyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f c2VtYXBob3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zZW1hcGhvcmUuYwpp bmRleCBiNjdjMjU5Li45ZTJjZjQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9zZW1hcGhvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9z ZW1hcGhvcmUuYwpAQCAtNDIsNyArNDIsNyBAQCBpbnQgcmFkZW9uX3NlbWFwaG9yZV9jcmVhdGUo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAotCXIg PSByYWRlb25fc2FfYm9fbmV3KHJkZXYsICZyZGV2LT5pYl9wb29sLnNhX21hbmFnZXIsCisJciA9 IHJhZGVvbl9zYV9ib19uZXcocmRldiwgJnJkZXYtPnNhX21hbmFnZXIsCiAJCQkgICAgICYoKnNl bWFwaG9yZSktPnNhX2JvLCA4LCA4LCB0cnVlKTsKIAlpZiAocikgewogCQlrZnJlZSgqc2VtYXBo b3JlKTsKQEAgLTUxLDEwICs1MSwxMCBAQCBpbnQgcmFkZW9uX3NlbWFwaG9yZV9jcmVhdGUoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJfQogCiAJKCpzZW1hcGhvcmUpLT53YWl0ZXJzID0g MDsKLQkoKnNlbWFwaG9yZSktPmdwdV9hZGRyID0gcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLmdw dV9hZGRyOworCSgqc2VtYXBob3JlKS0+Z3B1X2FkZHIgPSByZGV2LT5zYV9tYW5hZ2VyLmdwdV9h ZGRyOwogCSgqc2VtYXBob3JlKS0+Z3B1X2FkZHIgKz0gKCpzZW1hcGhvcmUpLT5zYV9iby5vZmZz ZXQ7CiAKLQljcHVfcHRyID0gcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLmNwdV9wdHI7CisJY3B1 X3B0ciA9IHJkZXYtPnNhX21hbmFnZXIuY3B1X3B0cjsKIAljcHVfcHRyICs9ICgqc2VtYXBob3Jl KS0+c2FfYm8ub2Zmc2V0OwogCSooKHVpbnQ2NF90KiljcHVfcHRyKSA9IDA7CiAKLS0gCjEuNy43 LjYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==