From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karol Herbst Subject: [PATCH 2/6] Revert "drm/ttm: initialize globals during device init (v2)" Date: Tue, 16 Apr 2019 02:35:19 +0200 Message-ID: <20190416003523.5069-3-kherbst@redhat.com> References: <20190416003523.5069-1-kherbst@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D36889316 for ; Tue, 16 Apr 2019 00:35:32 +0000 (UTC) Received: by mail-wm1-f66.google.com with SMTP id c1so22882806wml.4 for ; Mon, 15 Apr 2019 17:35:32 -0700 (PDT) In-Reply-To: <20190416003523.5069-1-kherbst@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Alex Deucher , Karol Herbst List-Id: dri-devel@lists.freedesktop.org VGhpcyByZXZlcnRzIGNvbW1pdCBhNjRmNzg0YmIxNGE1NmJmZGZhZDJkYzM5N2RkNjdlNDU2NGUz YTI5LgoKU2lnbmVkLW9mZi1ieTogS2Fyb2wgSGVyYnN0IDxraGVyYnN0QHJlZGhhdC5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICAgICAgIHwgNTkgKysr KysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5o ICAgICAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmggICAgICAgICAgICAg ICAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMgICAgICAgICAgICAgICAg IHwgMzYgKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Nocy5oICAgICAgICAg ICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jICAgICAgICAg ICAgICB8IDM1ICsrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19kcnYu aCAgICAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYyAg ICAgICAgICAgfCAzNiArKysrKysrKysrKwogLi4uL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hp Ym1jX2RybV9kcnYuaCAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9o aWJtY190dG0uYyAgIHwgMzQgKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21n YWcyMDBfZHJ2LmggICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcy MDBfdHRtLmMgICAgICAgICB8IDM2ICsrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2Rydi5oICAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X3R0bS5jICAgICAgICAgfCAzOSArKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX2Rydi5oICAgICAgICAgICAgICAgICB8ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9xeGwv cXhsX3R0bS5jICAgICAgICAgICAgICAgICB8IDMzICsrKysrKysrKysrCiBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbi5oICAgICAgICAgICAgICAgfCAgMiArCiBkcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl90dG0uYyAgICAgICAgICAgfCAzOSArKysrKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAgICB8IDE5ICsrKy0tLQogZHJpdmVy cy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5oICAgICAgICAgIHwgIDIgKwogZHJpdmVycy9n cHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jICAgICAgICAgIHwgMzUgKysrKysrKysrKysKIGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jICAgICAgICAgICB8IDExICsrKy0KIGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oICAgICAgICAgICB8ICAzICsKIGRyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9nbHVlLmMgICAgICB8IDI3ICsrKysrKysrKwog ZHJpdmVycy9zdGFnaW5nL3Zib3h2aWRlby92Ym94X2Rydi5oICAgICAgICAgIHwgIDEgKwogZHJp dmVycy9zdGFnaW5nL3Zib3h2aWRlby92Ym94X3R0bS5jICAgICAgICAgIHwgNDEgKysrKysrKysr KysrLQogaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCAgICAgICAgICAgICAgIHwgNDEg KysrKysrKysrKysrLQogMjcgZmlsZXMgY2hhbmdlZCwgNTIxIGluc2VydGlvbnMoKyksIDE3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwppbmRleCBj OTFlYzMxMDFkMDAuLjIxM2QyOWQwYWQ4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV90dG0uYwpAQCAtNjEsNiArNjEsNTYgQEAgc3RhdGljIGludCBhbWRncHVfbWFwX2J1ZmZl cihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogc3RhdGljIGludCBhbWRncHVfdHRtX2Rl YnVnZnNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBzdGF0aWMgdm9pZCBhbWRn cHVfdHRtX2RlYnVnZnNfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAKKy8qCisg KiBHbG9iYWwgbWVtb3J5LgorICovCisKKy8qKgorICogYW1kZ3B1X3R0bV9nbG9iYWxfaW5pdCAt IEluaXRpYWxpemUgZ2xvYmFsIFRUTSBtZW1vcnkgcmVmZXJlbmNlIHN0cnVjdHVyZXMuCisgKgor ICogQGFkZXY6IEFNREdQVSBkZXZpY2UgZm9yIHdoaWNoIHRoZSBnbG9iYWwgc3RydWN0dXJlcyBu ZWVkIHRvIGJlIHJlZ2lzdGVyZWQuCisgKgorICogVGhpcyBpcyBjYWxsZWQgYXMgcGFydCBvZiB0 aGUgQU1ER1BVIHR0bSBpbml0IGZyb20gYW1kZ3B1X3R0bV9pbml0KCkKKyAqIGR1cmluZyBicmlu ZyB1cC4KKyAqLworc3RhdGljIGludCBhbWRncHVfdHRtX2dsb2JhbF9pbml0KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQoreworCXN0cnVjdCBkcm1fZ2xvYmFsX3JlZmVyZW5jZSAqZ2xvYmFs X3JlZjsKKwlpbnQgcjsKKworCS8qIGVuc3VyZSByZWZlcmVuY2UgaXMgZmFsc2UgaW4gY2FzZSBp bml0IGZhaWxzICovCisJYWRldi0+bW1hbi5tZW1fZ2xvYmFsX3JlZmVyZW5jZWQgPSBmYWxzZTsK KworCWdsb2JhbF9yZWYgPSAmYWRldi0+bW1hbi5ib19nbG9iYWxfcmVmLnJlZjsKKwlnbG9iYWxf cmVmLT5nbG9iYWxfdHlwZSA9IERSTV9HTE9CQUxfVFRNX0JPOworCWdsb2JhbF9yZWYtPnNpemUg PSBzaXplb2Yoc3RydWN0IHR0bV9ib19nbG9iYWwpOworCWdsb2JhbF9yZWYtPmluaXQgPSAmdHRt X2JvX2dsb2JhbF9yZWZfaW5pdDsKKwlnbG9iYWxfcmVmLT5yZWxlYXNlID0gJnR0bV9ib19nbG9i YWxfcmVmX3JlbGVhc2U7CisJciA9IGRybV9nbG9iYWxfaXRlbV9yZWYoZ2xvYmFsX3JlZik7CisJ aWYgKHIpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgc2V0dGluZyB1cCBUVE0gQk8gc3Vic3lzdGVt LlxuIik7CisJCWdvdG8gZXJyb3JfYm87CisJfQorCisJbXV0ZXhfaW5pdCgmYWRldi0+bW1hbi5n dHRfd2luZG93X2xvY2spOworCisJYWRldi0+bW1hbi5tZW1fZ2xvYmFsX3JlZmVyZW5jZWQgPSB0 cnVlOworCisJcmV0dXJuIDA7CisKK2Vycm9yX2JvOgorCXJldHVybiByOworfQorCitzdGF0aWMg dm9pZCBhbWRncHVfdHRtX2dsb2JhbF9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQor eworCWlmIChhZGV2LT5tbWFuLm1lbV9nbG9iYWxfcmVmZXJlbmNlZCkgeworCQltdXRleF9kZXN0 cm95KCZhZGV2LT5tbWFuLmd0dF93aW5kb3dfbG9jayk7CisJCWRybV9nbG9iYWxfaXRlbV91bnJl ZigmYWRldi0+bW1hbi5ib19nbG9iYWxfcmVmLnJlZik7CisJCWFkZXYtPm1tYW4ubWVtX2dsb2Jh bF9yZWZlcmVuY2VkID0gZmFsc2U7CisJfQorfQorCiBzdGF0aWMgaW50IGFtZGdwdV9pbnZhbGlk YXRlX2NhY2hlcyhzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdWludDMyX3QgZmxhZ3MpCiB7 CiAJcmV0dXJuIDA7CkBAIC0xNjY0LDEwICsxNzE0LDE0IEBAIGludCBhbWRncHVfdHRtX2luaXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaW50IHI7CiAJdTY0IHZpc192cmFtX2xpbWl0 OwogCi0JbXV0ZXhfaW5pdCgmYWRldi0+bW1hbi5ndHRfd2luZG93X2xvY2spOwotCisJLyogaW5p dGlhbGl6ZSBnbG9iYWwgcmVmZXJlbmNlcyBmb3IgdnJhbS9ndHQgKi8KKwlyID0gYW1kZ3B1X3R0 bV9nbG9iYWxfaW5pdChhZGV2KTsKKwlpZiAocikgeworCQlyZXR1cm4gcjsKKwl9CiAJLyogTm8g b3RoZXJzIHVzZXIgb2YgYWRkcmVzcyBzcGFjZSBzbyBzZXQgaXQgdG8gMCAqLwogCXIgPSB0dG1f Ym9fZGV2aWNlX2luaXQoJmFkZXYtPm1tYW4uYmRldiwKKwkJCSAgICAgICBhZGV2LT5tbWFuLmJv X2dsb2JhbF9yZWYucmVmLm9iamVjdCwKIAkJCSAgICAgICAmYW1kZ3B1X2JvX2RyaXZlciwKIAkJ CSAgICAgICBhZGV2LT5kZGV2LT5hbm9uX2lub2RlLT5pX21hcHBpbmcsCiAJCQkgICAgICAgRFJN X0ZJTEVfUEFHRV9PRkZTRVQsCkBAIC0xODI0LDYgKzE4NzgsNyBAQCB2b2lkIGFtZGdwdV90dG1f ZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl0dG1fYm9fY2xlYW5fbW0oJmFkZXYt Pm1tYW4uYmRldiwgQU1ER1BVX1BMX0dXUyk7CiAJdHRtX2JvX2NsZWFuX21tKCZhZGV2LT5tbWFu LmJkZXYsIEFNREdQVV9QTF9PQSk7CiAJdHRtX2JvX2RldmljZV9yZWxlYXNlKCZhZGV2LT5tbWFu LmJkZXYpOworCWFtZGdwdV90dG1fZ2xvYmFsX2ZpbmkoYWRldik7CiAJYWRldi0+bW1hbi5pbml0 aWFsaXplZCA9IGZhbHNlOwogCURSTV9JTkZPKCJhbWRncHU6IHR0bSBmaW5hbGl6ZWRcbiIpOwog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oCmluZGV4IGI1YjJkMTAxZjdk Yi4uZTExNGYyMDliNzAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdHRtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5o CkBAIC0zOSw2ICszOSw3IEBACiAjZGVmaW5lIEFNREdQVV9HVFRfTlVNX1RSQU5TRkVSX1dJTkRP V1MJMgogCiBzdHJ1Y3QgYW1kZ3B1X21tYW4geworCXN0cnVjdCB0dG1fYm9fZ2xvYmFsX3JlZiAg ICAgICAgYm9fZ2xvYmFsX3JlZjsKIAlzdHJ1Y3QgdHRtX2JvX2RldmljZQkJYmRldjsKIAlib29s CQkJCW1lbV9nbG9iYWxfcmVmZXJlbmNlZDsKIAlib29sCQkJCWluaXRpYWxpemVkOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vYXN0 L2FzdF9kcnYuaAppbmRleCBiZmM2NTA0MGRmY2IuLjZhZTExYTQ3NzY0MyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9h c3RfZHJ2LmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBzdHJ1Y3QgYXN0X3ByaXZhdGUgewogCWludCBm Yl9tdHJyOwogCiAJc3RydWN0IHsKKwkJc3RydWN0IHR0bV9ib19nbG9iYWxfcmVmIGJvX2dsb2Jh bF9yZWY7CiAJCXN0cnVjdCB0dG1fYm9fZGV2aWNlIGJkZXY7CiAJfSB0dG07CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9h c3RfdHRtLmMKaW5kZXggYzE2OGQ2MmZlOGY5Li44YTU5ZDZmYzExNjAgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hc3QvYXN0X3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0 X3R0bS5jCkBAIC0zNiw2ICszNiwzNSBAQCBhc3RfYmRldihzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmQpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihiZCwgc3RydWN0IGFzdF9wcml2YXRlLCB0dG0uYmRl dik7CiB9CiAKK3N0YXRpYyBpbnQgYXN0X3R0bV9nbG9iYWxfaW5pdChzdHJ1Y3QgYXN0X3ByaXZh dGUgKmFzdCkKK3sKKwlzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKmdsb2JhbF9yZWY7CisJ aW50IHI7CisKKwlnbG9iYWxfcmVmID0gJmFzdC0+dHRtLmJvX2dsb2JhbF9yZWYucmVmOworCWds b2JhbF9yZWYtPmdsb2JhbF90eXBlID0gRFJNX0dMT0JBTF9UVE1fQk87CisJZ2xvYmFsX3JlZi0+ c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdHRtX2JvX2dsb2JhbCk7CisJZ2xvYmFsX3JlZi0+aW5pdCA9 ICZ0dG1fYm9fZ2xvYmFsX3JlZl9pbml0OworCWdsb2JhbF9yZWYtPnJlbGVhc2UgPSAmdHRtX2Jv X2dsb2JhbF9yZWZfcmVsZWFzZTsKKwlyID0gZHJtX2dsb2JhbF9pdGVtX3JlZihnbG9iYWxfcmVm KTsKKwlpZiAociAhPSAwKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHNldHRpbmcgdXAgVFRNIEJP IHN1YnN5c3RlbS5cbiIpOworCQlyZXR1cm4gcjsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyB2b2lkCithc3RfdHRtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0KQor eworCWlmIChhc3QtPnR0bS5ib19nbG9iYWxfcmVmLnJlZi5yZWxlYXNlID09IE5VTEwpCisJCXJl dHVybjsKKworCWRybV9nbG9iYWxfaXRlbV91bnJlZigmYXN0LT50dG0uYm9fZ2xvYmFsX3JlZi5y ZWYpOworCWFzdC0+dHRtLmJvX2dsb2JhbF9yZWYucmVmLnJlbGVhc2UgPSBOVUxMOworfQorCisK IHN0YXRpYyB2b2lkIGFzdF9ib190dG1fZGVzdHJveShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KnRibykKIHsKIAlzdHJ1Y3QgYXN0X2JvICpibzsKQEAgLTE3NSw3ICsyMDQsMTIgQEAgaW50IGFz dF9tbV9pbml0KHN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0KQogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBhc3QtPmRldjsKIAlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9ICZhc3QtPnR0bS5i ZGV2OwogCisJcmV0ID0gYXN0X3R0bV9nbG9iYWxfaW5pdChhc3QpOworCWlmIChyZXQpCisJCXJl dHVybiByZXQ7CisKIAlyZXQgPSB0dG1fYm9fZGV2aWNlX2luaXQoJmFzdC0+dHRtLmJkZXYsCisJ CQkJIGFzdC0+dHRtLmJvX2dsb2JhbF9yZWYucmVmLm9iamVjdCwKIAkJCQkgJmFzdF9ib19kcml2 ZXIsCiAJCQkJIGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5nLAogCQkJCSBEUk1fRklMRV9QQUdF X09GRlNFVCwKQEAgLTIwNiw2ICsyNDAsOCBAQCB2b2lkIGFzdF9tbV9maW5pKHN0cnVjdCBhc3Rf cHJpdmF0ZSAqYXN0KQogCiAJdHRtX2JvX2RldmljZV9yZWxlYXNlKCZhc3QtPnR0bS5iZGV2KTsK IAorCWFzdF90dG1fZ2xvYmFsX3JlbGVhc2UoYXN0KTsKKwogCWFyY2hfcGh5c193Y19kZWwoYXN0 LT5mYl9tdHJyKTsKIAlhcmNoX2lvX2ZyZWVfbWVtdHlwZV93YyhwY2lfcmVzb3VyY2Vfc3RhcnQo ZGV2LT5wZGV2LCAwKSwKIAkJCQlwY2lfcmVzb3VyY2VfbGVuKGRldi0+cGRldiwgMCkpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzLmggYi9kcml2ZXJzL2dwdS9kcm0v Ym9jaHMvYm9jaHMuaAppbmRleCBmYjM4YzhiODU3YjUuLmMxZDg4ZWE2YjQxOSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Jv Y2hzL2JvY2hzLmgKQEAgLTc3LDYgKzc3LDcgQEAgc3RydWN0IGJvY2hzX2RldmljZSB7CiAKIAkv KiB0dG0gKi8KIAlzdHJ1Y3QgeworCQlzdHJ1Y3QgdHRtX2JvX2dsb2JhbF9yZWYgYm9fZ2xvYmFs X3JlZjsKIAkJc3RydWN0IHR0bV9ib19kZXZpY2UgYmRldjsKIAkJYm9vbCBpbml0aWFsaXplZDsK IAl9IHR0bTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX21tLmMKaW5kZXggMDk4MDQxMWU0MWJmLi5jYWQ2 NTc3NGE5NzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jCkBAIC0xNiw2ICsxNiwzNSBAQCBz dGF0aWMgaW5saW5lIHN0cnVjdCBib2Noc19kZXZpY2UgKmJvY2hzX2JkZXYoc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkKQogCXJldHVybiBjb250YWluZXJfb2YoYmQsIHN0cnVjdCBib2Noc19kZXZp Y2UsIHR0bS5iZGV2KTsKIH0KIAorc3RhdGljIGludCBib2Noc190dG1fZ2xvYmFsX2luaXQoc3Ry dWN0IGJvY2hzX2RldmljZSAqYm9jaHMpCit7CisJc3RydWN0IGRybV9nbG9iYWxfcmVmZXJlbmNl ICpnbG9iYWxfcmVmOworCWludCByOworCisJZ2xvYmFsX3JlZiA9ICZib2Nocy0+dHRtLmJvX2ds b2JhbF9yZWYucmVmOworCWdsb2JhbF9yZWYtPmdsb2JhbF90eXBlID0gRFJNX0dMT0JBTF9UVE1f Qk87CisJZ2xvYmFsX3JlZi0+c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdHRtX2JvX2dsb2JhbCk7CisJ Z2xvYmFsX3JlZi0+aW5pdCA9ICZ0dG1fYm9fZ2xvYmFsX3JlZl9pbml0OworCWdsb2JhbF9yZWYt PnJlbGVhc2UgPSAmdHRtX2JvX2dsb2JhbF9yZWZfcmVsZWFzZTsKKwlyID0gZHJtX2dsb2JhbF9p dGVtX3JlZihnbG9iYWxfcmVmKTsKKwlpZiAociAhPSAwKSB7CisJCURSTV9FUlJPUigiRmFpbGVk IHNldHRpbmcgdXAgVFRNIEJPIHN1YnN5c3RlbS5cbiIpOworCQlyZXR1cm4gcjsKKwl9CisKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYm9jaHNfdHRtX2dsb2JhbF9yZWxlYXNlKHN0cnVj dCBib2Noc19kZXZpY2UgKmJvY2hzKQoreworCWlmIChib2Nocy0+dHRtLmJvX2dsb2JhbF9yZWYu cmVmLnJlbGVhc2UgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJZHJtX2dsb2JhbF9pdGVtX3VucmVm KCZib2Nocy0+dHRtLmJvX2dsb2JhbF9yZWYucmVmKTsKKwlib2Nocy0+dHRtLmJvX2dsb2JhbF9y ZWYucmVmLnJlbGVhc2UgPSBOVUxMOworfQorCisKIHN0YXRpYyB2b2lkIGJvY2hzX2JvX3R0bV9k ZXN0cm95KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvKQogewogCXN0cnVjdCBib2Noc19i byAqYm87CkBAIC0xNTMsNyArMTgyLDEyIEBAIGludCBib2Noc19tbV9pbml0KHN0cnVjdCBib2No c19kZXZpY2UgKmJvY2hzKQogCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gJmJvY2hzLT50 dG0uYmRldjsKIAlpbnQgcmV0OwogCisJcmV0ID0gYm9jaHNfdHRtX2dsb2JhbF9pbml0KGJvY2hz KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJcmV0ID0gdHRtX2JvX2RldmljZV9pbml0 KCZib2Nocy0+dHRtLmJkZXYsCisJCQkJIGJvY2hzLT50dG0uYm9fZ2xvYmFsX3JlZi5yZWYub2Jq ZWN0LAogCQkJCSAmYm9jaHNfYm9fZHJpdmVyLAogCQkJCSBib2Nocy0+ZGV2LT5hbm9uX2lub2Rl LT5pX21hcHBpbmcsCiAJCQkJIERSTV9GSUxFX1BBR0VfT0ZGU0VULApAQCAtMTgwLDYgKzIxNCw3 IEBAIHZvaWQgYm9jaHNfbW1fZmluaShzdHJ1Y3QgYm9jaHNfZGV2aWNlICpib2NocykKIAkJcmV0 dXJuOwogCiAJdHRtX2JvX2RldmljZV9yZWxlYXNlKCZib2Nocy0+dHRtLmJkZXYpOworCWJvY2hz X3R0bV9nbG9iYWxfcmVsZWFzZShib2Nocyk7CiAJYm9jaHMtPnR0bS5pbml0aWFsaXplZCA9IGZh bHNlOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oCmluZGV4IGYyYjJlMGQxNjlm YS4uMDE4NTJmYmRhOWRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1 c19kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19kcnYuaApAQCAtMTM2 LDYgKzEzNiw3IEBAIHN0cnVjdCBjaXJydXNfZGV2aWNlIHsKIAlpbnQgZmJfbXRycjsKIAogCXN0 cnVjdCB7CisJCXN0cnVjdCB0dG1fYm9fZ2xvYmFsX3JlZiBib19nbG9iYWxfcmVmOwogCQlzdHJ1 Y3QgdHRtX2JvX2RldmljZSBiZGV2OwogCX0gdHRtOwogCWJvb2wgbW1faW5pdGVkOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfdHRtLmMgYi9kcml2ZXJzL2dwdS9k cm0vY2lycnVzL2NpcnJ1c190dG0uYwppbmRleCBlMDc1ODEwYjRiZDQuLjc4MDFjNTZjM2M5YiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfdHRtLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfdHRtLmMKQEAgLTM2LDYgKzM2LDM1IEBAIGNpcnJ1 c19iZGV2KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZCkKIAlyZXR1cm4gY29udGFpbmVyX29mKGJk LCBzdHJ1Y3QgY2lycnVzX2RldmljZSwgdHRtLmJkZXYpOwogfQogCitzdGF0aWMgaW50IGNpcnJ1 c190dG1fZ2xvYmFsX2luaXQoc3RydWN0IGNpcnJ1c19kZXZpY2UgKmNpcnJ1cykKK3sKKwlzdHJ1 Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKmdsb2JhbF9yZWY7CisJaW50IHI7CisKKwlnbG9iYWxf cmVmID0gJmNpcnJ1cy0+dHRtLmJvX2dsb2JhbF9yZWYucmVmOworCWdsb2JhbF9yZWYtPmdsb2Jh bF90eXBlID0gRFJNX0dMT0JBTF9UVE1fQk87CisJZ2xvYmFsX3JlZi0+c2l6ZSA9IHNpemVvZihz dHJ1Y3QgdHRtX2JvX2dsb2JhbCk7CisJZ2xvYmFsX3JlZi0+aW5pdCA9ICZ0dG1fYm9fZ2xvYmFs X3JlZl9pbml0OworCWdsb2JhbF9yZWYtPnJlbGVhc2UgPSAmdHRtX2JvX2dsb2JhbF9yZWZfcmVs ZWFzZTsKKwlyID0gZHJtX2dsb2JhbF9pdGVtX3JlZihnbG9iYWxfcmVmKTsKKwlpZiAociAhPSAw KSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHNldHRpbmcgdXAgVFRNIEJPIHN1YnN5c3RlbS5cbiIp OworCQlyZXR1cm4gcjsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitjaXJydXNf dHRtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCBjaXJydXNfZGV2aWNlICpjaXJydXMpCit7CisJaWYg KGNpcnJ1cy0+dHRtLmJvX2dsb2JhbF9yZWYucmVmLnJlbGVhc2UgPT0gTlVMTCkKKwkJcmV0dXJu OworCisJZHJtX2dsb2JhbF9pdGVtX3VucmVmKCZjaXJydXMtPnR0bS5ib19nbG9iYWxfcmVmLnJl Zik7CisJY2lycnVzLT50dG0uYm9fZ2xvYmFsX3JlZi5yZWYucmVsZWFzZSA9IE5VTEw7Cit9CisK Kwogc3RhdGljIHZvaWQgY2lycnVzX2JvX3R0bV9kZXN0cm95KHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqdGJvKQogewogCXN0cnVjdCBjaXJydXNfYm8gKmJvOwpAQCAtMTc1LDcgKzIwNCwxMiBA QCBpbnQgY2lycnVzX21tX2luaXQoc3RydWN0IGNpcnJ1c19kZXZpY2UgKmNpcnJ1cykKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY2lycnVzLT5kZXY7CiAJc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYgPSAmY2lycnVzLT50dG0uYmRldjsKIAorCXJldCA9IGNpcnJ1c190dG1fZ2xvYmFsX2lu aXQoY2lycnVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJcmV0ID0gdHRtX2JvX2Rl dmljZV9pbml0KCZjaXJydXMtPnR0bS5iZGV2LAorCQkJCSBjaXJydXMtPnR0bS5ib19nbG9iYWxf cmVmLnJlZi5vYmplY3QsCiAJCQkJICZjaXJydXNfYm9fZHJpdmVyLAogCQkJCSBkZXYtPmFub25f aW5vZGUtPmlfbWFwcGluZywKIAkJCQkgRFJNX0ZJTEVfUEFHRV9PRkZTRVQsCkBAIC0yMTEsNiAr MjQ1LDggQEAgdm9pZCBjaXJydXNfbW1fZmluaShzdHJ1Y3QgY2lycnVzX2RldmljZSAqY2lycnVz KQogCiAJdHRtX2JvX2RldmljZV9yZWxlYXNlKCZjaXJydXMtPnR0bS5iZGV2KTsKIAorCWNpcnJ1 c190dG1fZ2xvYmFsX3JlbGVhc2UoY2lycnVzKTsKKwogCWFyY2hfcGh5c193Y19kZWwoY2lycnVz LT5mYl9tdHJyKTsKIAljaXJydXMtPmZiX210cnIgPSAwOwogCWFyY2hfaW9fZnJlZV9tZW10eXBl X3djKHBjaV9yZXNvdXJjZV9zdGFydChkZXYtPnBkZXYsIDApLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuaAppbmRleCAzYzE2OGFlNzdiMGMuLjYw NDc5NTAyZTI3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9o aWJtY19kcm1fZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJt Y19kcm1fZHJ2LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgc3RydWN0IGhpYm1jX2RybV9wcml2YXRlIHsK IAlib29sIG1vZGVfY29uZmlnX2luaXRpYWxpemVkOwogCiAJLyogdHRtICovCisJc3RydWN0IHR0 bV9ib19nbG9iYWxfcmVmIGJvX2dsb2JhbF9yZWY7CiAJc3RydWN0IHR0bV9ib19kZXZpY2UgYmRl djsKIAlib29sIGluaXRpYWxpemVkOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlz aWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJt Yy9oaWJtY190dG0uYwppbmRleCBkZDM4MzI2Nzg4NGMuLjE0MDcxYzg0OTEyMSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY190dG0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jCkBAIC0yOSw2ICsyOSwzMiBA QCBoaWJtY19iZGV2KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZCkKIAlyZXR1cm4gY29udGFpbmVy X29mKGJkLCBzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUsIGJkZXYpOwogfQogCitzdGF0aWMgaW50 IGhpYm1jX3R0bV9nbG9iYWxfaW5pdChzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKmhpYm1jKQor eworCWludCByZXQ7CisKKwloaWJtYy0+Ym9fZ2xvYmFsX3JlZi5yZWYuZ2xvYmFsX3R5cGUgPSBE Uk1fR0xPQkFMX1RUTV9CTzsKKwloaWJtYy0+Ym9fZ2xvYmFsX3JlZi5yZWYuc2l6ZSA9IHNpemVv ZihzdHJ1Y3QgdHRtX2JvX2dsb2JhbCk7CisJaGlibWMtPmJvX2dsb2JhbF9yZWYucmVmLmluaXQg PSAmdHRtX2JvX2dsb2JhbF9yZWZfaW5pdDsKKwloaWJtYy0+Ym9fZ2xvYmFsX3JlZi5yZWYucmVs ZWFzZSA9ICZ0dG1fYm9fZ2xvYmFsX3JlZl9yZWxlYXNlOworCXJldCA9IGRybV9nbG9iYWxfaXRl bV9yZWYoJmhpYm1jLT5ib19nbG9iYWxfcmVmLnJlZik7CisJaWYgKHJldCkgeworCQlEUk1fRVJS T1IoImZhaWxlZCBzZXR0aW5nIHVwIFRUTSBCTyBzdWJzeXN0ZW06ICVkXG4iLCByZXQpOworCQly ZXR1cm4gcmV0OworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2hpYm1jX3R0bV9n bG9iYWxfcmVsZWFzZShzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKmhpYm1jKQoreworCWlmICho aWJtYy0+Ym9fZ2xvYmFsX3JlZi5yZWYucmVsZWFzZSA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlk cm1fZ2xvYmFsX2l0ZW1fdW5yZWYoJmhpYm1jLT5ib19nbG9iYWxfcmVmLnJlZik7CisJaGlibWMt PmJvX2dsb2JhbF9yZWYucmVmLnJlbGVhc2UgPSBOVUxMOworfQorCiBzdGF0aWMgdm9pZCBoaWJt Y19ib190dG1fZGVzdHJveShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRibykKIHsKIAlzdHJ1 Y3QgaGlibWNfYm8gKmJvID0gY29udGFpbmVyX29mKHRibywgc3RydWN0IGhpYm1jX2JvLCBibyk7 CkBAIC0xODgsMTIgKzIxNCwxOCBAQCBpbnQgaGlibWNfbW1faW5pdChzdHJ1Y3QgaGlibWNfZHJt X3ByaXZhdGUgKmhpYm1jKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBoaWJtYy0+ZGV2Owog CXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gJmhpYm1jLT5iZGV2OwogCisJcmV0ID0gaGli bWNfdHRtX2dsb2JhbF9pbml0KGhpYm1jKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJ cmV0ID0gdHRtX2JvX2RldmljZV9pbml0KCZoaWJtYy0+YmRldiwKKwkJCQkgaGlibWMtPmJvX2ds b2JhbF9yZWYucmVmLm9iamVjdCwKIAkJCQkgJmhpYm1jX2JvX2RyaXZlciwKIAkJCQkgZGV2LT5h bm9uX2lub2RlLT5pX21hcHBpbmcsCiAJCQkJIERSTV9GSUxFX1BBR0VfT0ZGU0VULAogCQkJCSB0 cnVlKTsKIAlpZiAocmV0KSB7CisJCWhpYm1jX3R0bV9nbG9iYWxfcmVsZWFzZShoaWJtYyk7CiAJ CURSTV9FUlJPUigiZXJyb3IgaW5pdGlhbGl6aW5nIGJvIGRyaXZlcjogJWRcbiIsIHJldCk7CiAJ CXJldHVybiByZXQ7CiAJfQpAQCAtMjAxLDYgKzIzMyw3IEBAIGludCBoaWJtY19tbV9pbml0KHN0 cnVjdCBoaWJtY19kcm1fcHJpdmF0ZSAqaGlibWMpCiAJcmV0ID0gdHRtX2JvX2luaXRfbW0oYmRl diwgVFRNX1BMX1ZSQU0sCiAJCQkgICAgIGhpYm1jLT5mYl9zaXplID4+IFBBR0VfU0hJRlQpOwog CWlmIChyZXQpIHsKKwkJaGlibWNfdHRtX2dsb2JhbF9yZWxlYXNlKGhpYm1jKTsKIAkJRFJNX0VS Uk9SKCJmYWlsZWQgdHRtIFZSQU0gaW5pdDogJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7CiAJ fQpAQCAtMjE1LDYgKzI0OCw3IEBAIHZvaWQgaGlibWNfbW1fZmluaShzdHJ1Y3QgaGlibWNfZHJt X3ByaXZhdGUgKmhpYm1jKQogCQlyZXR1cm47CiAKIAl0dG1fYm9fZGV2aWNlX3JlbGVhc2UoJmhp Ym1jLT5iZGV2KTsKKwloaWJtY190dG1fZ2xvYmFsX3JlbGVhc2UoaGlibWMpOwogCWhpYm1jLT5t bV9pbml0ZWQgPSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcy MDAvbWdhZzIwMF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmgK aW5kZXggMGFhZWRjNTU0ODc5Li5lNTM0ODk1NWEzY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAv bWdhZzIwMF9kcnYuaApAQCAtMjEyLDYgKzIxMiw3IEBAIHN0cnVjdCBtZ2FfZGV2aWNlIHsKIAlp bnQgZmJfbXRycjsKIAogCXN0cnVjdCB7CisJCXN0cnVjdCB0dG1fYm9fZ2xvYmFsX3JlZiBib19n bG9iYWxfcmVmOwogCQlzdHJ1Y3QgdHRtX2JvX2RldmljZSBiZGV2OwogCX0gdHRtOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX3R0bS5jIGIvZHJpdmVycy9n cHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYwppbmRleCBkOTZhOWIzMjQ1NWUuLjExYmRjODEy MWE3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX3R0bS5jCkBAIC0zNiw2ICszNiwz NSBAQCBtZ2FnMjAwX2JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkKQogCXJldHVybiBjb250 YWluZXJfb2YoYmQsIHN0cnVjdCBtZ2FfZGV2aWNlLCB0dG0uYmRldik7CiB9CiAKK3N0YXRpYyBp bnQgbWdhZzIwMF90dG1fZ2xvYmFsX2luaXQoc3RydWN0IG1nYV9kZXZpY2UgKmFzdCkKK3sKKwlz dHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKmdsb2JhbF9yZWY7CisJaW50IHI7CisKKwlnbG9i YWxfcmVmID0gJmFzdC0+dHRtLmJvX2dsb2JhbF9yZWYucmVmOworCWdsb2JhbF9yZWYtPmdsb2Jh bF90eXBlID0gRFJNX0dMT0JBTF9UVE1fQk87CisJZ2xvYmFsX3JlZi0+c2l6ZSA9IHNpemVvZihz dHJ1Y3QgdHRtX2JvX2dsb2JhbCk7CisJZ2xvYmFsX3JlZi0+aW5pdCA9ICZ0dG1fYm9fZ2xvYmFs X3JlZl9pbml0OworCWdsb2JhbF9yZWYtPnJlbGVhc2UgPSAmdHRtX2JvX2dsb2JhbF9yZWZfcmVs ZWFzZTsKKwlyID0gZHJtX2dsb2JhbF9pdGVtX3JlZihnbG9iYWxfcmVmKTsKKwlpZiAociAhPSAw KSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHNldHRpbmcgdXAgVFRNIEJPIHN1YnN5c3RlbS5cbiIp OworCQlyZXR1cm4gcjsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCittZ2FnMjAw X3R0bV9nbG9iYWxfcmVsZWFzZShzdHJ1Y3QgbWdhX2RldmljZSAqYXN0KQoreworCWlmIChhc3Qt PnR0bS5ib19nbG9iYWxfcmVmLnJlZi5yZWxlYXNlID09IE5VTEwpCisJCXJldHVybjsKKworCWRy bV9nbG9iYWxfaXRlbV91bnJlZigmYXN0LT50dG0uYm9fZ2xvYmFsX3JlZi5yZWYpOworCWFzdC0+ dHRtLmJvX2dsb2JhbF9yZWYucmVmLnJlbGVhc2UgPSBOVUxMOworfQorCisKIHN0YXRpYyB2b2lk IG1nYWcyMDBfYm9fdHRtX2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pCiB7 CiAJc3RydWN0IG1nYWcyMDBfYm8gKmJvOwpAQCAtMTc1LDcgKzIwNCwxMiBAQCBpbnQgbWdhZzIw MF9tbV9pbml0KHN0cnVjdCBtZ2FfZGV2aWNlICptZGV2KQogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBtZGV2LT5kZXY7CiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSAmbWRldi0+dHRt LmJkZXY7CiAKKwlyZXQgPSBtZ2FnMjAwX3R0bV9nbG9iYWxfaW5pdChtZGV2KTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gcmV0OworCiAJcmV0ID0gdHRtX2JvX2RldmljZV9pbml0KCZtZGV2LT50dG0u YmRldiwKKwkJCQkgbWRldi0+dHRtLmJvX2dsb2JhbF9yZWYucmVmLm9iamVjdCwKIAkJCQkgJm1n YWcyMDBfYm9fZHJpdmVyLAogCQkJCSBkZXYtPmFub25faW5vZGUtPmlfbWFwcGluZywKIAkJCQkg RFJNX0ZJTEVfUEFHRV9PRkZTRVQsCkBAIC0yMDYsNiArMjQwLDggQEAgdm9pZCBtZ2FnMjAwX21t X2Zpbmkoc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYpCiAKIAl0dG1fYm9fZGV2aWNlX3JlbGVhc2Uo Jm1kZXYtPnR0bS5iZGV2KTsKIAorCW1nYWcyMDBfdHRtX2dsb2JhbF9yZWxlYXNlKG1kZXYpOwor CiAJYXJjaF9pb19mcmVlX21lbXR5cGVfd2MocGNpX3Jlc291cmNlX3N0YXJ0KGRldi0+cGRldiwg MCksCiAJCQkJcGNpX3Jlc291cmNlX2xlbihkZXYtPnBkZXYsIDApKTsKIAlhcmNoX3BoeXNfd2Nf ZGVsKG1kZXYtPmZiX210cnIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmgKaW5k ZXggZDIwYjliYTRiMWMxLi4wZjNiYjFhMTFmYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91 dmVhdV9kcnYuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHN0cnVjdCBub3V2ZWF1X2RybSB7CiAKIAkv KiBUVE0gaW50ZXJmYWNlIHN1cHBvcnQgKi8KIAlzdHJ1Y3QgeworCQlzdHJ1Y3QgdHRtX2JvX2ds b2JhbF9yZWYgYm9fZ2xvYmFsX3JlZjsKIAkJc3RydWN0IHR0bV9ib19kZXZpY2UgYmRldjsKIAkJ YXRvbWljX3QgdmFsaWRhdGVfc2VxdWVuY2U7CiAJCWludCAoKm1vdmUpKHN0cnVjdCBub3V2ZWF1 X2NoYW5uZWwgKiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf dHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jCmluZGV4IDE1NDNj MmY4ZDNkMy4uNjk0NDhiMDI2NDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRt LmMKQEAgLTE3NCw2ICsxNzQsMzggQEAgbm91dmVhdV90dG1fbW1hcChzdHJ1Y3QgZmlsZSAqZmls cCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJcmV0dXJuIHR0bV9ib19tbWFwKGZpbHAs IHZtYSwgJmRybS0+dHRtLmJkZXYpOwogfQogCitpbnQKK25vdXZlYXVfdHRtX2dsb2JhbF9pbml0 KHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKQoreworCXN0cnVjdCBkcm1fZ2xvYmFsX3JlZmVyZW5j ZSAqZ2xvYmFsX3JlZjsKKwlpbnQgcmV0OworCisJZ2xvYmFsX3JlZiA9ICZkcm0tPnR0bS5ib19n bG9iYWxfcmVmLnJlZjsKKwlnbG9iYWxfcmVmLT5nbG9iYWxfdHlwZSA9IERSTV9HTE9CQUxfVFRN X0JPOworCWdsb2JhbF9yZWYtPnNpemUgPSBzaXplb2Yoc3RydWN0IHR0bV9ib19nbG9iYWwpOwor CWdsb2JhbF9yZWYtPmluaXQgPSAmdHRtX2JvX2dsb2JhbF9yZWZfaW5pdDsKKwlnbG9iYWxfcmVm LT5yZWxlYXNlID0gJnR0bV9ib19nbG9iYWxfcmVmX3JlbGVhc2U7CisKKwlyZXQgPSBkcm1fZ2xv YmFsX2l0ZW1fcmVmKGdsb2JhbF9yZWYpOworCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKKwkJ RFJNX0VSUk9SKCJGYWlsZWQgc2V0dGluZyB1cCBUVE0gQk8gc3Vic3lzdGVtXG4iKTsKKwkJZHJt LT50dG0uYm9fZ2xvYmFsX3JlZi5yZWYucmVsZWFzZSA9IE5VTEw7CisJCXJldHVybiByZXQ7CisJ fQorCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQKK25vdXZlYXVfdHRtX2dsb2JhbF9yZWxlYXNlKHN0 cnVjdCBub3V2ZWF1X2RybSAqZHJtKQoreworCWlmIChkcm0tPnR0bS5ib19nbG9iYWxfcmVmLnJl Zi5yZWxlYXNlID09IE5VTEwpCisJCXJldHVybjsKKworCWRybV9nbG9iYWxfaXRlbV91bnJlZigm ZHJtLT50dG0uYm9fZ2xvYmFsX3JlZi5yZWYpOworCWRybS0+dHRtLmJvX2dsb2JhbF9yZWYucmVm LnJlbGVhc2UgPSBOVUxMOworfQorCiBzdGF0aWMgaW50CiBub3V2ZWF1X3R0bV9pbml0X2hvc3Qo c3RydWN0IG5vdXZlYXVfZHJtICpkcm0sIHU4IGtpbmQpCiB7CkBAIC0yMzYsNyArMjY4LDEyIEBA IG5vdXZlYXVfdHRtX2luaXQoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCiAJCWRybS0+YWdwLmNt YSA9IHBjaS0+YWdwLmNtYTsKIAl9CiAKKwlyZXQgPSBub3V2ZWF1X3R0bV9nbG9iYWxfaW5pdChk cm0pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAlyZXQgPSB0dG1fYm9fZGV2aWNlX2lu aXQoJmRybS0+dHRtLmJkZXYsCisJCQkJICBkcm0tPnR0bS5ib19nbG9iYWxfcmVmLnJlZi5vYmpl Y3QsCiAJCQkJICAmbm91dmVhdV9ib19kcml2ZXIsCiAJCQkJICBkZXYtPmFub25faW5vZGUtPmlf bWFwcGluZywKIAkJCQkgIERSTV9GSUxFX1BBR0VfT0ZGU0VULApAQCAtMjkxLDYgKzMyOCw4IEBA IG5vdXZlYXVfdHRtX2Zpbmkoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCiAKIAl0dG1fYm9fZGV2 aWNlX3JlbGVhc2UoJmRybS0+dHRtLmJkZXYpOwogCisJbm91dmVhdV90dG1fZ2xvYmFsX3JlbGVh c2UoZHJtKTsKKwogCWFyY2hfcGh5c193Y19kZWwoZHJtLT50dG0ubXRycik7CiAJZHJtLT50dG0u bXRyciA9IDA7CiAJYXJjaF9pb19mcmVlX21lbXR5cGVfd2MoZGV2aWNlLT5mdW5jLT5yZXNvdXJj ZV9hZGRyKGRldmljZSwgMSksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCmluZGV4IDEzYTAyNTRiNTlhMS4u YWM5Mzc0MDI4YjdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaApAQCAtMTI2LDYgKzEyNiw4IEBAIHN0 cnVjdCBxeGxfb3V0cHV0IHsKICNkZWZpbmUgZHJtX2VuY29kZXJfdG9fcXhsX291dHB1dCh4KSBj b250YWluZXJfb2YoeCwgc3RydWN0IHF4bF9vdXRwdXQsIGVuYykKIAogc3RydWN0IHF4bF9tbWFu IHsKKwlzdHJ1Y3QgdHRtX2JvX2dsb2JhbF9yZWYgICAgICAgIGJvX2dsb2JhbF9yZWY7CisJYm9v bAkJCQltZW1fZ2xvYmFsX3JlZmVyZW5jZWQ7CiAJc3RydWN0IHR0bV9ib19kZXZpY2UJCWJkZXY7 CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9xeGwvcXhsX3R0bS5jCmluZGV4IDg4NmY2MWU5NGYyNC4uYjdjNGViM2JkMTc5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcXhsL3F4bF90dG0uYwpAQCAtNDYsNiArNDYsMzQgQEAgc3RhdGljIHN0cnVjdCBx eGxfZGV2aWNlICpxeGxfZ2V0X3FkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpCiAJcmV0 dXJuIHFkZXY7CiB9CiAKK3N0YXRpYyBpbnQgcXhsX3R0bV9nbG9iYWxfaW5pdChzdHJ1Y3QgcXhs X2RldmljZSAqcWRldikKK3sKKwlzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKmdsb2JhbF9y ZWY7CisJaW50IHI7CisKKwlnbG9iYWxfcmVmID0gJnFkZXYtPm1tYW4uYm9fZ2xvYmFsX3JlZi5y ZWY7CisJZ2xvYmFsX3JlZi0+Z2xvYmFsX3R5cGUgPSBEUk1fR0xPQkFMX1RUTV9CTzsKKwlnbG9i YWxfcmVmLT5zaXplID0gc2l6ZW9mKHN0cnVjdCB0dG1fYm9fZ2xvYmFsKTsKKwlnbG9iYWxfcmVm LT5pbml0ID0gJnR0bV9ib19nbG9iYWxfcmVmX2luaXQ7CisJZ2xvYmFsX3JlZi0+cmVsZWFzZSA9 ICZ0dG1fYm9fZ2xvYmFsX3JlZl9yZWxlYXNlOworCXIgPSBkcm1fZ2xvYmFsX2l0ZW1fcmVmKGds b2JhbF9yZWYpOworCWlmIChyICE9IDApIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgc2V0dGluZyB1 cCBUVE0gQk8gc3Vic3lzdGVtLlxuIik7CisJCXJldHVybiByOworCX0KKworCXFkZXYtPm1tYW4u bWVtX2dsb2JhbF9yZWZlcmVuY2VkID0gdHJ1ZTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZv aWQgcXhsX3R0bV9nbG9iYWxfZmluaShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldikKK3sKKwlpZiAo cWRldi0+bW1hbi5tZW1fZ2xvYmFsX3JlZmVyZW5jZWQpIHsKKwkJZHJtX2dsb2JhbF9pdGVtX3Vu cmVmKCZxZGV2LT5tbWFuLmJvX2dsb2JhbF9yZWYucmVmKTsKKwkJcWRldi0+bW1hbi5tZW1fZ2xv YmFsX3JlZmVyZW5jZWQgPSBmYWxzZTsKKwl9Cit9CisKIHN0YXRpYyBzdHJ1Y3Qgdm1fb3BlcmF0 aW9uc19zdHJ1Y3QgcXhsX3R0bV92bV9vcHM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJh dGlvbnNfc3RydWN0ICp0dG1fdm1fb3BzOwogCkBAIC0zMTYsOCArMzQ0LDEyIEBAIGludCBxeGxf dHRtX2luaXQoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYpCiAJaW50IHI7CiAJaW50IG51bV9pb19w YWdlczsgLyogIT0gcm9tLT5udW1faW9fcGFnZXMsIHdlIGluY2x1ZGUgc3VyZmFjZTAgKi8KIAor CXIgPSBxeGxfdHRtX2dsb2JhbF9pbml0KHFkZXYpOworCWlmIChyKQorCQlyZXR1cm4gcjsKIAkv KiBObyBvdGhlcnMgdXNlciBvZiBhZGRyZXNzIHNwYWNlIHNvIHNldCBpdCB0byAwICovCiAJciA9 IHR0bV9ib19kZXZpY2VfaW5pdCgmcWRldi0+bW1hbi5iZGV2LAorCQkJICAgICAgIHFkZXYtPm1t YW4uYm9fZ2xvYmFsX3JlZi5yZWYub2JqZWN0LAogCQkJICAgICAgICZxeGxfYm9fZHJpdmVyLAog CQkJICAgICAgIHFkZXYtPmRkZXYuYW5vbl9pbm9kZS0+aV9tYXBwaW5nLAogCQkJICAgICAgIERS TV9GSUxFX1BBR0VfT0ZGU0VULCAwKTsKQEAgLTM1Myw2ICszODUsNyBAQCB2b2lkIHF4bF90dG1f ZmluaShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldikKIAl0dG1fYm9fY2xlYW5fbW0oJnFkZXYtPm1t YW4uYmRldiwgVFRNX1BMX1ZSQU0pOwogCXR0bV9ib19jbGVhbl9tbSgmcWRldi0+bW1hbi5iZGV2 LCBUVE1fUExfUFJJVik7CiAJdHRtX2JvX2RldmljZV9yZWxlYXNlKCZxZGV2LT5tbWFuLmJkZXYp OworCXF4bF90dG1fZ2xvYmFsX2ZpbmkocWRldik7CiAJRFJNX0lORk8oInF4bDogdHRtIGZpbmFs aXplZFxuIik7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u LmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCmluZGV4IDMyODA4ZTUwYmUxMi4u MDZmYjk1MmI2MjkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKQEAgLTQ0OCw3ICs0NDgsOSBA QCBzdHJ1Y3QgcmFkZW9uX3N1cmZhY2VfcmVnIHsKICAqIFRUTS4KICAqLwogc3RydWN0IHJhZGVv bl9tbWFuIHsKKwlzdHJ1Y3QgdHRtX2JvX2dsb2JhbF9yZWYgICAgICAgIGJvX2dsb2JhbF9yZWY7 CiAJc3RydWN0IHR0bV9ib19kZXZpY2UJCWJkZXY7CisJYm9vbAkJCQltZW1fZ2xvYmFsX3JlZmVy ZW5jZWQ7CiAJYm9vbAkJCQlpbml0aWFsaXplZDsKIAogI2lmIGRlZmluZWQoQ09ORklHX0RFQlVH X0ZTKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMgYi9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwppbmRleCA5OTIwYTZmYzExYmYuLjIx MDQ0MjlkZGJhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRt LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKQEAgLTYwLDYgKzYw LDM5IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmFkZW9uX2dldF9yZGV2KHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2KQogCXJldHVybiByZGV2OwogfQogCisKKy8qCisgKiBHbG9i YWwgbWVtb3J5LgorICovCitzdGF0aWMgaW50IHJhZGVvbl90dG1fZ2xvYmFsX2luaXQoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYpCit7CisJc3RydWN0IGRybV9nbG9iYWxfcmVmZXJlbmNlICpn bG9iYWxfcmVmOworCWludCByOworCisJcmRldi0+bW1hbi5tZW1fZ2xvYmFsX3JlZmVyZW5jZWQg PSBmYWxzZTsKKwlnbG9iYWxfcmVmID0gJnJkZXYtPm1tYW4uYm9fZ2xvYmFsX3JlZi5yZWY7CisJ Z2xvYmFsX3JlZi0+Z2xvYmFsX3R5cGUgPSBEUk1fR0xPQkFMX1RUTV9CTzsKKwlnbG9iYWxfcmVm LT5zaXplID0gc2l6ZW9mKHN0cnVjdCB0dG1fYm9fZ2xvYmFsKTsKKwlnbG9iYWxfcmVmLT5pbml0 ID0gJnR0bV9ib19nbG9iYWxfcmVmX2luaXQ7CisJZ2xvYmFsX3JlZi0+cmVsZWFzZSA9ICZ0dG1f Ym9fZ2xvYmFsX3JlZl9yZWxlYXNlOworCXIgPSBkcm1fZ2xvYmFsX2l0ZW1fcmVmKGdsb2JhbF9y ZWYpOworCWlmIChyICE9IDApIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgc2V0dGluZyB1cCBUVE0g Qk8gc3Vic3lzdGVtLlxuIik7CisJCXJldHVybiByOworCX0KKworCXJkZXYtPm1tYW4ubWVtX2ds b2JhbF9yZWZlcmVuY2VkID0gdHJ1ZTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcmFk ZW9uX3R0bV9nbG9iYWxfZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKK3sKKwlpZiAo cmRldi0+bW1hbi5tZW1fZ2xvYmFsX3JlZmVyZW5jZWQpIHsKKwkJZHJtX2dsb2JhbF9pdGVtX3Vu cmVmKCZyZGV2LT5tbWFuLmJvX2dsb2JhbF9yZWYucmVmKTsKKwkJcmRldi0+bW1hbi5tZW1fZ2xv YmFsX3JlZmVyZW5jZWQgPSBmYWxzZTsKKwl9Cit9CisKIHN0YXRpYyBpbnQgcmFkZW9uX2ludmFs aWRhdGVfY2FjaGVzKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1aW50MzJfdCBmbGFncykK IHsKIAlyZXR1cm4gMDsKQEAgLTc4OCw4ICs4MjEsMTMgQEAgaW50IHJhZGVvbl90dG1faW5pdChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIHsKIAlpbnQgcjsKIAorCXIgPSByYWRlb25fdHRt X2dsb2JhbF9pbml0KHJkZXYpOworCWlmIChyKSB7CisJCXJldHVybiByOworCX0KIAkvKiBObyBv dGhlcnMgdXNlciBvZiBhZGRyZXNzIHNwYWNlIHNvIHNldCBpdCB0byAwICovCiAJciA9IHR0bV9i b19kZXZpY2VfaW5pdCgmcmRldi0+bW1hbi5iZGV2LAorCQkJICAgICAgIHJkZXYtPm1tYW4uYm9f Z2xvYmFsX3JlZi5yZWYub2JqZWN0LAogCQkJICAgICAgICZyYWRlb25fYm9fZHJpdmVyLAogCQkJ ICAgICAgIHJkZXYtPmRkZXYtPmFub25faW5vZGUtPmlfbWFwcGluZywKIAkJCSAgICAgICBEUk1f RklMRV9QQUdFX09GRlNFVCwKQEAgLTg2MSw2ICs4OTksNyBAQCB2b2lkIHJhZGVvbl90dG1fZmlu aShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAl0dG1fYm9fY2xlYW5fbW0oJnJkZXYtPm1t YW4uYmRldiwgVFRNX1BMX1RUKTsKIAl0dG1fYm9fZGV2aWNlX3JlbGVhc2UoJnJkZXYtPm1tYW4u YmRldik7CiAJcmFkZW9uX2dhcnRfZmluaShyZGV2KTsKKwlyYWRlb25fdHRtX2dsb2JhbF9maW5p KHJkZXYpOwogCXJkZXYtPm1tYW4uaW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAlEUk1fSU5GTygicmFk ZW9uOiB0dG0gZmluYWxpemVkXG4iKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCmluZGV4IDBlYzA4Mzk0 ZTE3YS4uNTdjODkxNjFiNWM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTE1MzAsNyArMTUzMCw3 IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19nbG9iYWxfa29ial9yZWxlYXNlKHN0cnVjdCBrb2JqZWN0 ICprb2JqKQogCV9fZnJlZV9wYWdlKGdsb2ItPmR1bW15X3JlYWRfcGFnZSk7CiB9CiAKLXN0YXRp YyB2b2lkIHR0bV9ib19nbG9iYWxfcmVsZWFzZSh2b2lkKQordm9pZCB0dG1fYm9fZ2xvYmFsX3Jl bGVhc2Uodm9pZCkKIHsKIAlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fYm9fZ2xv YjsKIApAQCAtMTU0NCw4ICsxNTQ0LDkgQEAgc3RhdGljIHZvaWQgdHRtX2JvX2dsb2JhbF9yZWxl YXNlKHZvaWQpCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKIH0KK0VY UE9SVF9TWU1CT0wodHRtX2JvX2dsb2JhbF9yZWxlYXNlKTsKIAotc3RhdGljIGludCB0dG1fYm9f Z2xvYmFsX2luaXQodm9pZCkKK2ludCB0dG1fYm9fZ2xvYmFsX2luaXQodm9pZCkKIHsKIAlzdHJ1 Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fYm9fZ2xvYjsKIAlpbnQgcmV0ID0gMDsKQEAg LTE1ODIsNiArMTU4Myw4IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2dsb2JhbF9pbml0KHZvaWQpCiAJ bXV0ZXhfdW5sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKIAlyZXR1cm4gcmV0OwogfQorRVhQT1JU X1NZTUJPTCh0dG1fYm9fZ2xvYmFsX2luaXQpOworCiAKIGludCB0dG1fYm9fZGV2aWNlX3JlbGVh c2Uoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpCiB7CkBAIC0xNjIwLDI1ICsxNjIzLDE4IEBA IGludCB0dG1fYm9fZGV2aWNlX3JlbGVhc2Uoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpCiAK IAlkcm1fdm1hX29mZnNldF9tYW5hZ2VyX2Rlc3Ryb3koJmJkZXYtPnZtYV9tYW5hZ2VyKTsKIAot CWlmICghcmV0KQotCQl0dG1fYm9fZ2xvYmFsX3JlbGVhc2UoKTsKLQogCXJldHVybiByZXQ7CiB9 CiBFWFBPUlRfU1lNQk9MKHR0bV9ib19kZXZpY2VfcmVsZWFzZSk7CiAKIGludCB0dG1fYm9fZGV2 aWNlX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCisJCSAgICAgICBzdHJ1Y3QgdHRt X2JvX2dsb2JhbCAqZ2xvYiwKIAkJICAgICAgIHN0cnVjdCB0dG1fYm9fZHJpdmVyICpkcml2ZXIs CiAJCSAgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJICAgICAgIHVpbnQ2 NF90IGZpbGVfcGFnZV9vZmZzZXQsCiAJCSAgICAgICBib29sIG5lZWRfZG1hMzIpCiB7Ci0Jc3Ry dWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPSAmdHRtX2JvX2dsb2I7Ci0JaW50IHJldDsKLQotCXJl dCA9IHR0bV9ib19nbG9iYWxfaW5pdCgpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJaW50 IHJldCA9IC1FSU5WQUw7CiAKIAliZGV2LT5kcml2ZXIgPSBkcml2ZXI7CiAKQEAgLTE2NjUsNyAr MTY2MSw2IEBAIGludCB0dG1fYm9fZGV2aWNlX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsCiAKIAlyZXR1cm4gMDsKIG91dF9ub19zeXM6Ci0JdHRtX2JvX2dsb2JhbF9yZWxlYXNlKCk7 CiAJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1CT0wodHRtX2JvX2RldmljZV9pbml0KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaAppbmRleCAwYzE1MDAwZjkyNmUuLjc0NjI4YjVj ZjRlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaApAQCAtMTQ1LDYgKzE0NSw4 IEBAIHN0cnVjdCB2aXJ0aW9fZ3B1X2ZiZGV2IHsKIH07CiAKIHN0cnVjdCB2aXJ0aW9fZ3B1X21t YW4geworCXN0cnVjdCB0dG1fYm9fZ2xvYmFsX3JlZiAgICAgICAgYm9fZ2xvYmFsX3JlZjsKKwli b29sCQkJCW1lbV9nbG9iYWxfcmVmZXJlbmNlZDsKIAlzdHJ1Y3QgdHRtX2JvX2RldmljZQkJYmRl djsKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV90dG0u YyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV90dG0uYwppbmRleCA0YmZiZjI1ZmFi ZmYuLjVmZWNmNTVmZjFjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0 Z3B1X3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV90dG0uYwpAQCAt NTAsNiArNTAsMzUgQEAgdmlydGlvX2dwdV9kZXZpY2UgKnZpcnRpb19ncHVfZ2V0X3ZnZGV2KHN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQogCXJldHVybiB2Z2RldjsKIH0KIAorc3RhdGljIGlu dCB2aXJ0aW9fZ3B1X3R0bV9nbG9iYWxfaW5pdChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZn ZGV2KQoreworCXN0cnVjdCBkcm1fZ2xvYmFsX3JlZmVyZW5jZSAqZ2xvYmFsX3JlZjsKKwlpbnQg cjsKKworCXZnZGV2LT5tbWFuLm1lbV9nbG9iYWxfcmVmZXJlbmNlZCA9IGZhbHNlOworCWdsb2Jh bF9yZWYgPSAmdmdkZXYtPm1tYW4uYm9fZ2xvYmFsX3JlZi5yZWY7CisJZ2xvYmFsX3JlZi0+Z2xv YmFsX3R5cGUgPSBEUk1fR0xPQkFMX1RUTV9CTzsKKwlnbG9iYWxfcmVmLT5zaXplID0gc2l6ZW9m KHN0cnVjdCB0dG1fYm9fZ2xvYmFsKTsKKwlnbG9iYWxfcmVmLT5pbml0ID0gJnR0bV9ib19nbG9i YWxfcmVmX2luaXQ7CisJZ2xvYmFsX3JlZi0+cmVsZWFzZSA9ICZ0dG1fYm9fZ2xvYmFsX3JlZl9y ZWxlYXNlOworCXIgPSBkcm1fZ2xvYmFsX2l0ZW1fcmVmKGdsb2JhbF9yZWYpOworCWlmIChyICE9 IDApIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgc2V0dGluZyB1cCBUVE0gQk8gc3Vic3lzdGVtLlxu Iik7CisJCXJldHVybiByOworCX0KKworCXZnZGV2LT5tbWFuLm1lbV9nbG9iYWxfcmVmZXJlbmNl ZCA9IHRydWU7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHZpcnRpb19ncHVfdHRtX2ds b2JhbF9maW5pKHN0cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYpCit7CisJaWYgKHZnZGV2 LT5tbWFuLm1lbV9nbG9iYWxfcmVmZXJlbmNlZCkgeworCQlkcm1fZ2xvYmFsX2l0ZW1fdW5yZWYo JnZnZGV2LT5tbWFuLmJvX2dsb2JhbF9yZWYucmVmKTsKKwkJdmdkZXYtPm1tYW4ubWVtX2dsb2Jh bF9yZWZlcmVuY2VkID0gZmFsc2U7CisJfQorfQorCiBpbnQgdmlydGlvX2dwdV9tbWFwKHN0cnVj dCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKIAlzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdjsKQEAgLTMyNiw4ICszNTUsMTIgQEAgaW50IHZpcnRpb19ncHVfdHRt X2luaXQoc3RydWN0IHZpcnRpb19ncHVfZGV2aWNlICp2Z2RldikKIHsKIAlpbnQgcjsKIAorCXIg PSB2aXJ0aW9fZ3B1X3R0bV9nbG9iYWxfaW5pdCh2Z2Rldik7CisJaWYgKHIpCisJCXJldHVybiBy OwogCS8qIE5vIG90aGVycyB1c2VyIG9mIGFkZHJlc3Mgc3BhY2Ugc28gc2V0IGl0IHRvIDAgKi8K IAlyID0gdHRtX2JvX2RldmljZV9pbml0KCZ2Z2Rldi0+bW1hbi5iZGV2LAorCQkJICAgICAgIHZn ZGV2LT5tbWFuLmJvX2dsb2JhbF9yZWYucmVmLm9iamVjdCwKIAkJCSAgICAgICAmdmlydGlvX2dw dV9ib19kcml2ZXIsCiAJCQkgICAgICAgdmdkZXYtPmRkZXYtPmFub25faW5vZGUtPmlfbWFwcGlu ZywKIAkJCSAgICAgICBEUk1fRklMRV9QQUdFX09GRlNFVCwgMCk7CkBAIC0zNDYsMTEgKzM3OSwx MyBAQCBpbnQgdmlydGlvX2dwdV90dG1faW5pdChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZn ZGV2KQogZXJyX21tX2luaXQ6CiAJdHRtX2JvX2RldmljZV9yZWxlYXNlKCZ2Z2Rldi0+bW1hbi5i ZGV2KTsKIGVycl9kZXZfaW5pdDoKKwl2aXJ0aW9fZ3B1X3R0bV9nbG9iYWxfZmluaSh2Z2Rldik7 CiAJcmV0dXJuIHI7CiB9CiAKIHZvaWQgdmlydGlvX2dwdV90dG1fZmluaShzdHJ1Y3QgdmlydGlv X2dwdV9kZXZpY2UgKnZnZGV2KQogewogCXR0bV9ib19kZXZpY2VfcmVsZWFzZSgmdmdkZXYtPm1t YW4uYmRldik7CisJdmlydGlvX2dwdV90dG1fZ2xvYmFsX2ZpbmkodmdkZXYpOwogCURSTV9JTkZP KCJ2aXJ0aW9fZ3B1OiB0dG0gZmluYWxpemVkXG4iKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfZHJ2LmMKaW5kZXggN2VmNWRjYjA2MTA0Li5lMjRkOTc3MWUwNTYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2Rydi5jCkBAIC03ODUsNiArNzg1LDExIEBAIHN0YXRpYyBpbnQgdm13X2Ry aXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hpcHNldCkK IAlEUk1fSU5GTygiTU1JTyBhdCAweCUwOHggc2l6ZSBpcyAldSBraUJcbiIsCiAJCSBkZXZfcHJp di0+bW1pb19zdGFydCwgZGV2X3ByaXYtPm1taW9fc2l6ZSAvIDEwMjQpOwogCisJcmV0ID0gdm13 X3R0bV9nbG9iYWxfaW5pdChkZXZfcHJpdik7CisJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKKwkJ Z290byBvdXRfZXJyMDsKKworCiAJdm13X21hc3Rlcl9pbml0KCZkZXZfcHJpdi0+ZmJkZXZfbWFz dGVyKTsKIAl0dG1fbG9ja19zZXRfa2lsbCgmZGV2X3ByaXYtPmZiZGV2X21hc3Rlci5sb2NrLCBm YWxzZSwgU0lHVEVSTSk7CiAJZGV2X3ByaXYtPmFjdGl2ZV9tYXN0ZXIgPSAmZGV2X3ByaXYtPmZi ZGV2X21hc3RlcjsKQEAgLTc5NSw3ICs4MDAsNyBAQCBzdGF0aWMgaW50IHZtd19kcml2ZXJfbG9h ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGNoaXBzZXQpCiAJaWYgKHVu bGlrZWx5KGRldl9wcml2LT5tbWlvX3ZpcnQgPT0gTlVMTCkpIHsKIAkJcmV0ID0gLUVOT01FTTsK IAkJRFJNX0VSUk9SKCJGYWlsZWQgbWFwcGluZyBNTUlPLlxuIik7Ci0JCWdvdG8gb3V0X2VycjA7 CisJCWdvdG8gb3V0X2VycjM7CiAJfQogCiAJLyogTmVlZCBtbWlvIG1lbW9yeSB0byBjaGVjayBm b3IgZmlmbyBwaXRjaGxvY2sgY2FwLiAqLwpAQCAtODQ5LDYgKzg1NCw3IEBAIHN0YXRpYyBpbnQg dm13X2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hp cHNldCkKIAl9CiAKIAlyZXQgPSB0dG1fYm9fZGV2aWNlX2luaXQoJmRldl9wcml2LT5iZGV2LAor CQkJCSBkZXZfcHJpdi0+Ym9fZ2xvYmFsX3JlZi5yZWYub2JqZWN0LAogCQkJCSAmdm13X2JvX2Ry aXZlciwKIAkJCQkgZGV2LT5hbm9uX2lub2RlLT5pX21hcHBpbmcsCiAJCQkJIFZNV0dGWF9GSUxF X1BBR0VfT0ZGU0VULApAQCAtOTcwLDYgKzk3Niw4IEBAIHN0YXRpYyBpbnQgdm13X2RyaXZlcl9s b2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hpcHNldCkKIAl0dG1f b2JqZWN0X2RldmljZV9yZWxlYXNlKCZkZXZfcHJpdi0+dGRldik7CiBvdXRfZXJyNDoKIAltZW11 bm1hcChkZXZfcHJpdi0+bW1pb192aXJ0KTsKK291dF9lcnIzOgorCXZtd190dG1fZ2xvYmFsX3Jl bGVhc2UoZGV2X3ByaXYpOwogb3V0X2VycjA6CiAJZm9yIChpID0gdm13X3Jlc19jb250ZXh0OyBp IDwgdm13X3Jlc19tYXg7ICsraSkKIAkJaWRyX2Rlc3Ryb3koJmRldl9wcml2LT5yZXNfaWRyW2ld KTsKQEAgLTEwMjEsNiArMTAyOSw3IEBAIHN0YXRpYyB2b2lkIHZtd19kcml2ZXJfdW5sb2FkKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbWVtdW5tYXAoZGV2X3ByaXYtPm1taW9fdmlydCk7CiAJ aWYgKGRldl9wcml2LT5jdHguc3RhZ2VkX2JpbmRpbmdzKQogCQl2bXdfYmluZGluZ19zdGF0ZV9m cmVlKGRldl9wcml2LT5jdHguc3RhZ2VkX2JpbmRpbmdzKTsKKwl2bXdfdHRtX2dsb2JhbF9yZWxl YXNlKGRldl9wcml2KTsKIAogCWZvciAoaSA9IHZtd19yZXNfY29udGV4dDsgaSA8IHZtd19yZXNf bWF4OyArK2kpCiAJCWlkcl9kZXN0cm95KCZkZXZfcHJpdi0+cmVzX2lkcltpXSk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2Rydi5oCmluZGV4IGNkNjA3YmE5YzJmZS4uN2EzYzY0YmQ4MmIzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaApAQCAtNDE3LDYgKzQxNyw3IEBAIGVudW0g ewogCiBzdHJ1Y3Qgdm13X3ByaXZhdGUgewogCXN0cnVjdCB0dG1fYm9fZGV2aWNlIGJkZXY7CisJ c3RydWN0IHR0bV9ib19nbG9iYWxfcmVmIGJvX2dsb2JhbF9yZWY7CiAKIAlzdHJ1Y3Qgdm13X2Zp Zm9fc3RhdGUgZmlmbzsKIApAQCAtODMyLDYgKzgzMyw4IEBAIGV4dGVybiBpbnQgdm13X2ZpZm9f Zmx1c2goc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKICAqIFRUTSBnbHVlIC0gdm13Z2Z4 X3R0bV9nbHVlLmMKICAqLwogCitleHRlcm4gaW50IHZtd190dG1fZ2xvYmFsX2luaXQoc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdik7CitleHRlcm4gdm9pZCB2bXdfdHRtX2dsb2JhbF9yZWxl YXNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpOwogZXh0ZXJuIGludCB2bXdfbW1hcChz dHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogCiBleHRlcm4g dm9pZCB2bXdfdmFsaWRhdGlvbl9tZW1faW5pdF90dG0oc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9nbHVl LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fZ2x1ZS5jCmluZGV4IGU2ZDc1 ZTM3N2RkOC4uOGUzMjAzNzY2ODgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF90dG1fZ2x1ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0 bV9nbHVlLmMKQEAgLTc4LDMgKzc4LDMwIEBAIHZvaWQgdm13X3ZhbGlkYXRpb25fbWVtX2luaXRf dHRtKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHNpemVfdCBncmFuKQogCXZ2bS0+dW5y ZXNlcnZlX21lbSA9IHZtd192bXRfdW5yZXNlcnZlOwogCXZ2bS0+Z3JhbiA9IGdyYW47CiB9CisK K2ludCB2bXdfdHRtX2dsb2JhbF9pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCit7 CisJc3RydWN0IGRybV9nbG9iYWxfcmVmZXJlbmNlICpnbG9iYWxfcmVmOworCWludCByZXQ7CisK KwlnbG9iYWxfcmVmID0gJmRldl9wcml2LT5ib19nbG9iYWxfcmVmLnJlZjsKKwlnbG9iYWxfcmVm LT5nbG9iYWxfdHlwZSA9IERSTV9HTE9CQUxfVFRNX0JPOworCWdsb2JhbF9yZWYtPnNpemUgPSBz aXplb2Yoc3RydWN0IHR0bV9ib19nbG9iYWwpOworCWdsb2JhbF9yZWYtPmluaXQgPSAmdHRtX2Jv X2dsb2JhbF9yZWZfaW5pdDsKKwlnbG9iYWxfcmVmLT5yZWxlYXNlID0gJnR0bV9ib19nbG9iYWxf cmVmX3JlbGVhc2U7CisJcmV0ID0gZHJtX2dsb2JhbF9pdGVtX3JlZihnbG9iYWxfcmVmKTsKKwor CWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgc2V0dGluZyB1 cCBUVE0gYnVmZmVyIG9iamVjdHMuXG4iKTsKKwkJZ290byBvdXRfbm9fYm87CisJfQorCisJcmV0 dXJuIDA7CitvdXRfbm9fYm86CisJcmV0dXJuIHJldDsKK30KKwordm9pZCB2bXdfdHRtX2dsb2Jh bF9yZWxlYXNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJZHJtX2dsb2JhbF9p dGVtX3VucmVmKCZkZXZfcHJpdi0+Ym9fZ2xvYmFsX3JlZi5yZWYpOworfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zdGFnaW5nL3Zib3h2aWRlby92Ym94X2Rydi5oIGIvZHJpdmVycy9zdGFnaW5nL3Zi b3h2aWRlby92Ym94X2Rydi5oCmluZGV4IGFhNDBlNWNjMjg2MS4uMjRlNTRkNWRkYTZiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvdmJveHZpZGVvL3Zib3hfZHJ2LmgKKysrIGIvZHJpdmVy cy9zdGFnaW5nL3Zib3h2aWRlby92Ym94X2Rydi5oCkBAIC03OSw2ICs3OSw3IEBAIHN0cnVjdCB2 Ym94X3ByaXZhdGUgewogCWludCBmYl9tdHJyOwogCiAJc3RydWN0IHsKKwkJc3RydWN0IHR0bV9i b19nbG9iYWxfcmVmIGJvX2dsb2JhbF9yZWY7CiAJCXN0cnVjdCB0dG1fYm9fZGV2aWNlIGJkZXY7 CiAJfSB0dG07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy92Ym94dmlkZW8vdmJveF90 dG0uYyBiL2RyaXZlcnMvc3RhZ2luZy92Ym94dmlkZW8vdmJveF90dG0uYwppbmRleCAzMGYyNzAw MjdhY2YuLmNlYWNiYzFkM2ZmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3Zib3h2aWRl by92Ym94X3R0bS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy92Ym94dmlkZW8vdmJveF90dG0uYwpA QCAtMTYsNiArMTYsMzcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94 X2JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkKQogCXJldHVybiBjb250YWluZXJfb2YoYmQs IHN0cnVjdCB2Ym94X3ByaXZhdGUsIHR0bS5iZGV2KTsKIH0KIAorLyoqCisgKiBBZGRzIHRoZSB2 Ym94IG1lbW9yeSBtYW5hZ2VyIG9iamVjdC9zdHJ1Y3R1cmVzIHRvIHRoZSBnbG9iYWwgbWVtb3J5 IG1hbmFnZXIuCisgKi8KK3N0YXRpYyBpbnQgdmJveF90dG1fZ2xvYmFsX2luaXQoc3RydWN0IHZi b3hfcHJpdmF0ZSAqdmJveCkKK3sKKwlzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKmdsb2Jh bF9yZWY7CisJaW50IHJldDsKKworCWdsb2JhbF9yZWYgPSAmdmJveC0+dHRtLmJvX2dsb2JhbF9y ZWYucmVmOworCWdsb2JhbF9yZWYtPmdsb2JhbF90eXBlID0gRFJNX0dMT0JBTF9UVE1fQk87CisJ Z2xvYmFsX3JlZi0+c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdHRtX2JvX2dsb2JhbCk7CisJZ2xvYmFs X3JlZi0+aW5pdCA9ICZ0dG1fYm9fZ2xvYmFsX3JlZl9pbml0OworCWdsb2JhbF9yZWYtPnJlbGVh c2UgPSAmdHRtX2JvX2dsb2JhbF9yZWZfcmVsZWFzZTsKKworCXJldCA9IGRybV9nbG9iYWxfaXRl bV9yZWYoZ2xvYmFsX3JlZik7CisJaWYgKHJldCkgeworCQlEUk1fRVJST1IoIkZhaWxlZCBzZXR0 aW5nIHVwIFRUTSBCTyBzdWJzeXN0ZW0uXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1 cm4gMDsKK30KKworLyoqCisgKiBSZW1vdmVzIHRoZSB2Ym94IG1lbW9yeSBtYW5hZ2VyIG9iamVj dCBmcm9tIHRoZSBnbG9iYWwgbWVtb3J5IG1hbmFnZXIuCisgKi8KK3N0YXRpYyB2b2lkIHZib3hf dHRtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gpCit7CisJZHJtX2ds b2JhbF9pdGVtX3VucmVmKCZ2Ym94LT50dG0uYm9fZ2xvYmFsX3JlZi5yZWYpOworfQorCiBzdGF0 aWMgdm9pZCB2Ym94X2JvX3R0bV9kZXN0cm95KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJv KQogewogCXN0cnVjdCB2Ym94X2JvICpibzsKQEAgLTE1MywxMyArMTg0LDE4IEBAIGludCB2Ym94 X21tX2luaXQoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCkKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gJnZib3gtPmRkZXY7CiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSAmdmJveC0+ dHRtLmJkZXY7CiAKKwlyZXQgPSB2Ym94X3R0bV9nbG9iYWxfaW5pdCh2Ym94KTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gcmV0OworCiAJcmV0ID0gdHRtX2JvX2RldmljZV9pbml0KCZ2Ym94LT50dG0u YmRldiwKKwkJCQkgdmJveC0+dHRtLmJvX2dsb2JhbF9yZWYucmVmLm9iamVjdCwKIAkJCQkgJnZi b3hfYm9fZHJpdmVyLAogCQkJCSBkZXYtPmFub25faW5vZGUtPmlfbWFwcGluZywKIAkJCQkgRFJN X0ZJTEVfUEFHRV9PRkZTRVQsIHRydWUpOwogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJFcnJv ciBpbml0aWFsaXNpbmcgYm8gZHJpdmVyOyAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKKwkJ Z290byBlcnJfdHRtX2dsb2JhbF9yZWxlYXNlOwogCX0KIAogCXJldCA9IHR0bV9ib19pbml0X21t KGJkZXYsIFRUTV9QTF9WUkFNLApAQCAtMTgxLDYgKzIxNyw4IEBAIGludCB2Ym94X21tX2luaXQo c3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCkKIAogZXJyX2RldmljZV9yZWxlYXNlOgogCXR0bV9i b19kZXZpY2VfcmVsZWFzZSgmdmJveC0+dHRtLmJkZXYpOworZXJyX3R0bV9nbG9iYWxfcmVsZWFz ZToKKwl2Ym94X3R0bV9nbG9iYWxfcmVsZWFzZSh2Ym94KTsKIAlyZXR1cm4gcmV0OwogfQogCkBA IC0xOTQsNiArMjMyLDcgQEAgdm9pZCB2Ym94X21tX2Zpbmkoc3RydWN0IHZib3hfcHJpdmF0ZSAq dmJveCkKIAlhcmNoX3BoeXNfd2NfZGVsKHZib3gtPmZiX210cnIpOwogI2VuZGlmCiAJdHRtX2Jv X2RldmljZV9yZWxlYXNlKCZ2Ym94LT50dG0uYmRldik7CisJdmJveF90dG1fZ2xvYmFsX3JlbGVh c2UodmJveCk7CiB9CiAKIHZvaWQgdmJveF90dG1fcGxhY2VtZW50KHN0cnVjdCB2Ym94X2JvICpi bywgaW50IGRvbWFpbikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVy LmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCmluZGV4IDZmYjU4OWY2NDYzMy4u MjZiZTc0OTM5ZjEwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5o CisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKQEAgLTU2OSw2ICs1NjksOSBA QCB2b2lkIHR0bV9ib19tZW1fcHV0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVj dCB0dG1fbWVtX3JlZyAqbWVtKTsKIHZvaWQgdHRtX2JvX21lbV9wdXRfbG9ja2VkKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCQkgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSk7CiAK K3ZvaWQgdHRtX2JvX2dsb2JhbF9yZWxlYXNlKHZvaWQpOworaW50IHR0bV9ib19nbG9iYWxfaW5p dCh2b2lkKTsKKwogaW50IHR0bV9ib19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldik7CiAKIC8qKgpAQCAtNTg2LDcgKzU4OSw3IEBAIGludCB0dG1fYm9fZGV2aWNlX3Jl bGVhc2Uoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpOwogICogUmV0dXJuczoKICAqICEwOiBG YWlsdXJlLgogICovCi1pbnQgdHRtX2JvX2RldmljZV9pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAoraW50IHR0bV9ib19kZXZpY2VfaW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IsCiAJCSAgICAgICBzdHJ1Y3QgdHRtX2JvX2Ry aXZlciAqZHJpdmVyLAogCQkgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAJ CSAgICAgICB1aW50NjRfdCBmaWxlX3BhZ2Vfb2Zmc2V0LCBib29sIG5lZWRfZG1hMzIpOwpAQCAt ODg1LDQgKzg4OCw0MCBAQCBwZ3Byb3RfdCB0dG1faW9fcHJvdCh1aW50MzJfdCBjYWNoaW5nX2Zs YWdzLCBwZ3Byb3RfdCB0bXApOwogCiBleHRlcm4gY29uc3Qgc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyX2Z1bmMgdHRtX2JvX21hbmFnZXJfZnVuYzsKIAorLyoqCisgKiBzdHJ1Y3QgdHRtX2Jv X2dsb2JhbF9yZWYgLSBBcmd1bWVudCB0byBpbml0aWFsaXplIGEgc3RydWN0IHR0bV9ib19nbG9i YWwuCisgKi8KKworc3RydWN0IHR0bV9ib19nbG9iYWxfcmVmIHsKKwlzdHJ1Y3QgZHJtX2dsb2Jh bF9yZWZlcmVuY2UgcmVmOworfTsKKworLyoqCisgKiB0dG1fYm9fZ2xvYmFsX3JlZl9pbml0Cisg KgorICogQHJlZjogRFJNIGdsb2JhbCByZWZlcmVuY2UKKyAqCisgKiBIZWxwZXIgZnVuY3Rpb24g dGhhdCBpbml0aWFsaXplcyBhIHN0cnVjdCB0dG1fYm9fZ2xvYmFsLiBUaGlzIGZ1bmN0aW9uCisg KiBpcyB1c2VkIGFzIGluaXQgY2FsbC1iYWNrIGZ1bmN0aW9uIGZvciBEUk0gZ2xvYmFsIHJlZmVy ZW5jZXMgb2YgdHlwZQorICogRFJNX0dMT0JBTF9UVE1fQk9fUkVGLgorICovCitzdGF0aWMgaW5s aW5lIGludCB0dG1fYm9fZ2xvYmFsX3JlZl9pbml0KHN0cnVjdCBkcm1fZ2xvYmFsX3JlZmVyZW5j ZSAqcmVmKQoreworCXJldHVybiB0dG1fYm9fZ2xvYmFsX2luaXQoKTsKK30KKworLyoqCisgKiB0 dG1fYm9fZ2xvYmFsX3JlZl9yZWxlYXNlCisgKgorICogQHJlZjogRFJNIGdsb2JhbCByZWZlcmVu Y2UKKyAqCisgKiBIZWxwZXIgZnVuY3Rpb24gdGhhdCByZWxlYXNlcyBhIHN0cnVjdCB0dG1fYm9f Z2xvYmFsLiBUaGlzIGZ1bmN0aW9uCisgKiBpcyB1c2VkIGFzIHJlbGVhc2UgY2FsbC1iYWNrIGZ1 bmN0aW9uIGZvciBEUk0gZ2xvYmFsIHJlZmVyZW5jZXMgb2YgdHlwZQorICogRFJNX0dMT0JBTF9U VE1fQk9fUkVGLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgdHRtX2JvX2dsb2JhbF9yZWZfcmVs ZWFzZShzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKnJlZikKK3sKKwl0dG1fYm9fZ2xvYmFs X3JlbGVhc2UoKTsKK30KKwogI2VuZGlmCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==