From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v3 5/7] drm/tinydrm: Drop using tinydrm_device Date: Mon, 25 Feb 2019 15:42:30 +0100 Message-ID: <20190225144232.20761-6-noralf@tronnes.org> References: <20190225144232.20761-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190225144232.20761-1-noralf@tronnes.org> 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: david@lechnology.com, daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, sam@ravnborg.org List-Id: dri-devel@lists.freedesktop.org VXNlIGRldm1fZHJtX2Rldl9pbml0KCkgYW5kIGRyb3AgdXNpbmcgdGlueWRybV9kZXZpY2UuCgp2 MjogZGV2bV9kcm1fZGV2X3JlZ2lzdGVyKCkgd2FzIGRyb3BwZWQgc28gYWRkIGRyaXZlciByZWxl YXNlIGNhbGxiYWNrcy4KClNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRy b25uZXMub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2h4ODM1N2QuYyAgfCAgNDAg KysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkyMjUuYyAgfCAgNDAgKysr KysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkzNDEuYyAgfCAgNDAgKysrKysr KysrLS0KIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMgfCAgNDAgKysrKysrKysr LS0KIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pcGktZGJpLmMgfCAgNjcgKysrKysrKysrKyst LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1ODYuYyAgIHwgMTA1ICsrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc3MzVyLmMg IHwgIDQwICsrKysrKysrKy0tCiBpbmNsdWRlL2RybS90aW55ZHJtL21pcGktZGJpLmggICAgIHwg IDI2ICsrKystLS0KIDggZmlsZXMgY2hhbmdlZCwgMjk0IGluc2VydGlvbnMoKyksIDEwNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9oeDgzNTdkLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9oeDgzNTdkLmMKaW5kZXggODRkZGE2MjJkZjg1Li5l OWI5ZTA4ZmFmYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2h4ODM1N2Qu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9oeDgzNTdkLmMKQEAgLTE4LDYgKzE4LDcg QEAKIAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9k cm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0v ZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJf aGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5oPgpAQCAtMTg5LDYg KzE5MCw3IEBAIERFRklORV9EUk1fR0VNX0NNQV9GT1BTKGh4ODM1N2RfZm9wcyk7CiBzdGF0aWMg c3RydWN0IGRybV9kcml2ZXIgaHg4MzU3ZF9kcml2ZXIgPSB7CiAJLmRyaXZlcl9mZWF0dXJlcwk9 IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9QUklNRSB8IERSSVZFUl9BVE9N SUMsCiAJLmZvcHMJCQk9ICZoeDgzNTdkX2ZvcHMsCisJLnJlbGVhc2UJCT0gbWlwaV9kYmlfcmVs ZWFzZSwKIAlEUk1fR0VNX0NNQV9WTUFQX0RSSVZFUl9PUFMsCiAJLmRlYnVnZnNfaW5pdAkJPSBt aXBpX2RiaV9kZWJ1Z2ZzX2luaXQsCiAJLm5hbWUJCQk9ICJoeDgzNTdkIiwKQEAgLTIxMywxNSAr MjE1LDI1IEBAIE1PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCBoeDgzNTdkX2lkKTsKIHN0YXRpYyBp bnQgaHg4MzU3ZF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogewogCXN0cnVjdCBkZXZp Y2UgKmRldiA9ICZzcGktPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwogCXN0cnVjdCBt aXBpX2RiaSAqbWlwaTsKIAlzdHJ1Y3QgZ3Bpb19kZXNjICpkYzsKIAl1MzIgcm90YXRpb24gPSAw OwogCWludCByZXQ7CiAKLQltaXBpID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCptaXBpKSwg R0ZQX0tFUk5FTCk7CisJbWlwaSA9IGt6YWxsb2Moc2l6ZW9mKCptaXBpKSwgR0ZQX0tFUk5FTCk7 CiAJaWYgKCFtaXBpKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWRybSA9ICZtaXBpLT5kcm07CisJ cmV0ID0gZGV2bV9kcm1fZGV2X2luaXQoZGV2LCBkcm0sICZoeDgzNTdkX2RyaXZlcik7CisJaWYg KHJldCkgeworCQlrZnJlZShtaXBpKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlkcm1fbW9kZV9j b25maWdfaW5pdChkcm0pOworCiAJZGMgPSBkZXZtX2dwaW9kX2dldChkZXYsICJkYyIsIEdQSU9E X09VVF9MT1cpOwogCWlmIChJU19FUlIoZGMpKSB7CiAJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFp bGVkIHRvIGdldCBncGlvICdkYydcbiIpOwpAQCAtMjM4LDE0ICsyNTAsMzEgQEAgc3RhdGljIGlu dCBoeDgzNTdkX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIAotCXJldCA9IG1pcGlfZGJpX2luaXQoJnNwaS0+ZGV2LCBtaXBpLCAmaHg4MzU3 ZF9waXBlX2Z1bmNzLAotCQkJICAgICZoeDgzNTdkX2RyaXZlciwgJnl4MzUwaHYxNV9tb2RlLCBy b3RhdGlvbik7CisJcmV0ID0gbWlwaV9kYmlfaW5pdChtaXBpLCAmaHg4MzU3ZF9waXBlX2Z1bmNz LCAmeXgzNTBodjE1X21vZGUsIHJvdGF0aW9uKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0Owog Ci0Jc3BpX3NldF9kcnZkYXRhKHNwaSwgbWlwaS0+dGlueWRybS5kcm0pOworCWRybV9tb2RlX2Nv bmZpZ19yZXNldChkcm0pOwogCi0JcmV0dXJuIGRldm1fdGlueWRybV9yZWdpc3RlcigmbWlwaS0+ dGlueWRybSk7CisJcmV0ID0gZHJtX2Rldl9yZWdpc3Rlcihkcm0sIDApOworCWlmIChyZXQpCisJ CXJldHVybiByZXQ7CisKKwlzcGlfc2V0X2RydmRhdGEoc3BpLCBkcm0pOworCisJZHJtX2ZiZGV2 X2dlbmVyaWNfc2V0dXAoZHJtLCAzMik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBo eDgzNTdkX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKKworCWRybV9kZXZfdW5wbHVnKGRybSk7 CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oZHJtKTsKKworCXJldHVybiAwOwogfQogCiBz dGF0aWMgdm9pZCBoeDgzNTdkX3NodXRkb3duKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCkBAIC0y NjAsNiArMjg5LDcgQEAgc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIGh4ODM1N2Rfc3BpX2RyaXZl ciA9IHsKIAl9LAogCS5pZF90YWJsZSA9IGh4ODM1N2RfaWQsCiAJLnByb2JlID0gaHg4MzU3ZF9w cm9iZSwKKwkucmVtb3ZlID0gaHg4MzU3ZF9yZW1vdmUsCiAJLnNodXRkb3duID0gaHg4MzU3ZF9z aHV0ZG93biwKIH07CiBtb2R1bGVfc3BpX2RyaXZlcihoeDgzNTdkX3NwaV9kcml2ZXIpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jIGIvZHJpdmVycy9ncHUv ZHJtL3Rpbnlkcm0vaWxpOTIyNS5jCmluZGV4IDNmNTljZmJkMzFiYS4uNGQzODdhMDdjNDhiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9pbGk5MjI1LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSA8 ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNs dWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBl ci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1f Y21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5o PgpAQCAtMzM5LDYgKzM0MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBpbGk5MjI1X2Ry aXZlciA9IHsKIAkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VU IHwgRFJJVkVSX1BSSU1FIHwKIAkJCQkgIERSSVZFUl9BVE9NSUMsCiAJLmZvcHMJCQk9ICZpbGk5 MjI1X2ZvcHMsCisJLnJlbGVhc2UJCT0gbWlwaV9kYmlfcmVsZWFzZSwKIAlEUk1fR0VNX0NNQV9W TUFQX0RSSVZFUl9PUFMsCiAJLm5hbWUJCQk9ICJpbGk5MjI1IiwKIAkuZGVzYwkJCT0gIklsaXRl ayBJTEk5MjI1IiwKQEAgLTM2MiwxNSArMzY0LDI1IEBAIE1PRFVMRV9ERVZJQ0VfVEFCTEUoc3Bp LCBpbGk5MjI1X2lkKTsKIHN0YXRpYyBpbnQgaWxpOTIyNV9wcm9iZShzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpKQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsKKwlzdHJ1Y3QgZHJt X2RldmljZSAqZHJtOwogCXN0cnVjdCBtaXBpX2RiaSAqbWlwaTsKIAlzdHJ1Y3QgZ3Bpb19kZXNj ICpyczsKIAl1MzIgcm90YXRpb24gPSAwOwogCWludCByZXQ7CiAKLQltaXBpID0gZGV2bV9remFs bG9jKGRldiwgc2l6ZW9mKCptaXBpKSwgR0ZQX0tFUk5FTCk7CisJbWlwaSA9IGt6YWxsb2Moc2l6 ZW9mKCptaXBpKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtaXBpKQogCQlyZXR1cm4gLUVOT01FTTsK IAorCWRybSA9ICZtaXBpLT5kcm07CisJcmV0ID0gZGV2bV9kcm1fZGV2X2luaXQoZGV2LCBkcm0s ICZpbGk5MjI1X2RyaXZlcik7CisJaWYgKHJldCkgeworCQlrZnJlZShtaXBpKTsKKwkJcmV0dXJu IHJldDsKKwl9CisKKwlkcm1fbW9kZV9jb25maWdfaW5pdChkcm0pOworCiAJbWlwaS0+cmVzZXQg PSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKIAlpZiAoSVNf RVJSKG1pcGktPnJlc2V0KSkgewogCQlEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQg Z3BpbyAncmVzZXQnXG4iKTsKQEAgLTM5MiwxNCArNDA0LDMxIEBAIHN0YXRpYyBpbnQgaWxpOTIy NV9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCS8qIG92ZXJyaWRlIHRoZSBjb21tYW5k IGZ1bmN0aW9uIHNldCBpbiAgbWlwaV9kYmlfc3BpX2luaXQoKSAqLwogCW1pcGktPmNvbW1hbmQg PSBpbGk5MjI1X2RiaV9jb21tYW5kOwogCi0JcmV0ID0gbWlwaV9kYmlfaW5pdCgmc3BpLT5kZXYs IG1pcGksICZpbGk5MjI1X3BpcGVfZnVuY3MsCi0JCQkgICAgJmlsaTkyMjVfZHJpdmVyLCAmaWxp OTIyNV9tb2RlLCByb3RhdGlvbik7CisJcmV0ID0gbWlwaV9kYmlfaW5pdChtaXBpLCAmaWxpOTIy NV9waXBlX2Z1bmNzLCAmaWxpOTIyNV9tb2RlLCByb3RhdGlvbik7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIAotCXNwaV9zZXRfZHJ2ZGF0YShzcGksIG1pcGktPnRpbnlkcm0uZHJtKTsKKwlk cm1fbW9kZV9jb25maWdfcmVzZXQoZHJtKTsKIAotCXJldHVybiBkZXZtX3Rpbnlkcm1fcmVnaXN0 ZXIoJm1pcGktPnRpbnlkcm0pOworCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKKwlp ZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3BpX3NldF9kcnZkYXRhKHNwaSwgZHJtKTsKKwor CWRybV9mYmRldl9nZW5lcmljX3NldHVwKGRybSwgMzIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgaWxpOTIyNV9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3sKKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7CisKKwlkcm1fZGV2X3Vu cGx1Zyhkcm0pOworCWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRybSk7CisKKwlyZXR1cm4g MDsKIH0KIAogc3RhdGljIHZvaWQgaWxpOTIyNV9zaHV0ZG93bihzdHJ1Y3Qgc3BpX2RldmljZSAq c3BpKQpAQCAtNDE1LDYgKzQ0NCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBpbGk5MjI1 X3NwaV9kcml2ZXIgPSB7CiAJfSwKIAkuaWRfdGFibGUgPSBpbGk5MjI1X2lkLAogCS5wcm9iZSA9 IGlsaTkyMjVfcHJvYmUsCisJLnJlbW92ZSA9IGlsaTkyMjVfcmVtb3ZlLAogCS5zaHV0ZG93biA9 IGlsaTkyMjVfc2h1dGRvd24sCiB9OwogbW9kdWxlX3NwaV9kcml2ZXIoaWxpOTIyNV9zcGlfZHJp dmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkzNDEuYyBiL2Ry aXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkzNDEuYwppbmRleCAzYjc1NjVhNjMxMWUuLjg1MGNl OWVkNmRkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTM0MS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkzNDEuYwpAQCAtMTcsNiArMTcsNyBAQAog CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9k cnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1f Z2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxw ZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyLmg+CkBAIC0xNDUsNiArMTQ2 LDcgQEAgREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoaWxpOTM0MV9mb3BzKTsKIHN0YXRpYyBzdHJ1 Y3QgZHJtX2RyaXZlciBpbGk5MzQxX2RyaXZlciA9IHsKIAkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJ VkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX1BSSU1FIHwgRFJJVkVSX0FUT01JQywK IAkuZm9wcwkJCT0gJmlsaTkzNDFfZm9wcywKKwkucmVsZWFzZQkJPSBtaXBpX2RiaV9yZWxlYXNl LAogCURSTV9HRU1fQ01BX1ZNQVBfRFJJVkVSX09QUywKIAkuZGVidWdmc19pbml0CQk9IG1pcGlf ZGJpX2RlYnVnZnNfaW5pdCwKIAkubmFtZQkJCT0gImlsaTkzNDEiLApAQCAtMTY5LDE1ICsxNzEs MjUgQEAgTU9EVUxFX0RFVklDRV9UQUJMRShzcGksIGlsaTkzNDFfaWQpOwogc3RhdGljIGludCBp bGk5MzQxX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CiAJc3RydWN0IGRldmljZSAq ZGV2ID0gJnNwaS0+ZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07CiAJc3RydWN0IG1pcGlf ZGJpICptaXBpOwogCXN0cnVjdCBncGlvX2Rlc2MgKmRjOwogCXUzMiByb3RhdGlvbiA9IDA7CiAJ aW50IHJldDsKIAotCW1pcGkgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKm1pcGkpLCBHRlBf S0VSTkVMKTsKKwltaXBpID0ga3phbGxvYyhzaXplb2YoKm1pcGkpLCBHRlBfS0VSTkVMKTsKIAlp ZiAoIW1pcGkpCiAJCXJldHVybiAtRU5PTUVNOwogCisJZHJtID0gJm1pcGktPmRybTsKKwlyZXQg PSBkZXZtX2RybV9kZXZfaW5pdChkZXYsIGRybSwgJmlsaTkzNDFfZHJpdmVyKTsKKwlpZiAocmV0 KSB7CisJCWtmcmVlKG1pcGkpOworCQlyZXR1cm4gcmV0OworCX0KKworCWRybV9tb2RlX2NvbmZp Z19pbml0KGRybSk7CisKIAltaXBpLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRl diwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOwogCWlmIChJU19FUlIobWlwaS0+cmVzZXQpKSB7 CiAJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIpOwpA QCAtMjAwLDE0ICsyMTIsMzEgQEAgc3RhdGljIGludCBpbGk5MzQxX3Byb2JlKHN0cnVjdCBzcGlf ZGV2aWNlICpzcGkpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IG1pcGlfZGJp X2luaXQoJnNwaS0+ZGV2LCBtaXBpLCAmaWxpOTM0MV9waXBlX2Z1bmNzLAotCQkJICAgICZpbGk5 MzQxX2RyaXZlciwgJnl4MjQwcXYyOV9tb2RlLCByb3RhdGlvbik7CisJcmV0ID0gbWlwaV9kYmlf aW5pdChtaXBpLCAmaWxpOTM0MV9waXBlX2Z1bmNzLCAmeXgyNDBxdjI5X21vZGUsIHJvdGF0aW9u KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0Jc3BpX3NldF9kcnZkYXRhKHNwaSwgbWlw aS0+dGlueWRybS5kcm0pOworCWRybV9tb2RlX2NvbmZpZ19yZXNldChkcm0pOwogCi0JcmV0dXJu IGRldm1fdGlueWRybV9yZWdpc3RlcigmbWlwaS0+dGlueWRybSk7CisJcmV0ID0gZHJtX2Rldl9y ZWdpc3Rlcihkcm0sIDApOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlzcGlfc2V0X2Ry dmRhdGEoc3BpLCBkcm0pOworCisJZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoZHJtLCAzMik7CisK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbGk5MzQxX3JlbW92ZShzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEo c3BpKTsKKworCWRybV9kZXZfdW5wbHVnKGRybSk7CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRv d24oZHJtKTsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBpbGk5MzQxX3NodXRkb3du KHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCkBAIC0yMjIsNiArMjUxLDcgQEAgc3RhdGljIHN0cnVj dCBzcGlfZHJpdmVyIGlsaTkzNDFfc3BpX2RyaXZlciA9IHsKIAl9LAogCS5pZF90YWJsZSA9IGls aTkzNDFfaWQsCiAJLnByb2JlID0gaWxpOTM0MV9wcm9iZSwKKwkucmVtb3ZlID0gaWxpOTM0MV9y ZW1vdmUsCiAJLnNodXRkb3duID0gaWxpOTM0MV9zaHV0ZG93biwKIH07CiBtb2R1bGVfc3BpX2Ry aXZlcihpbGk5MzQxX3NwaV9kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vbWkwMjgzcXQuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMKaW5k ZXggZGEzMjZmZDE0NTBkLi43YWVlMDU1ODZlOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS90aW55ZHJtL21pMDI4M3F0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWkwMjgz cXQuYwpAQCAtMTksNiArMTksNyBAQAogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVy Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBl ci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0v ZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRf aGVscGVyLmg+CkBAIC0xNTQsNiArMTU1LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIG1p MDI4M3F0X2RyaXZlciA9IHsKIAkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZF Ul9NT0RFU0VUIHwgRFJJVkVSX1BSSU1FIHwKIAkJCQkgIERSSVZFUl9BVE9NSUMsCiAJLmZvcHMJ CQk9ICZtaTAyODNxdF9mb3BzLAorCS5yZWxlYXNlCQk9IG1pcGlfZGJpX3JlbGVhc2UsCiAJRFJN X0dFTV9DTUFfVk1BUF9EUklWRVJfT1BTLAogCS5kZWJ1Z2ZzX2luaXQJCT0gbWlwaV9kYmlfZGVi dWdmc19pbml0LAogCS5uYW1lCQkJPSAibWkwMjgzcXQiLApAQCAtMTc4LDE1ICsxODAsMjUgQEAg TU9EVUxFX0RFVklDRV9UQUJMRShzcGksIG1pMDI4M3F0X2lkKTsKIHN0YXRpYyBpbnQgbWkwMjgz cXRfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYg PSAmc3BpLT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybTsKIAlzdHJ1Y3QgbWlwaV9kYmkg Km1pcGk7CiAJc3RydWN0IGdwaW9fZGVzYyAqZGM7CiAJdTMyIHJvdGF0aW9uID0gMDsKIAlpbnQg cmV0OwogCi0JbWlwaSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqbWlwaSksIEdGUF9LRVJO RUwpOworCW1pcGkgPSBremFsbG9jKHNpemVvZigqbWlwaSksIEdGUF9LRVJORUwpOwogCWlmICgh bWlwaSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlkcm0gPSAmbWlwaS0+ZHJtOworCXJldCA9IGRl dm1fZHJtX2Rldl9pbml0KGRldiwgZHJtLCAmbWkwMjgzcXRfZHJpdmVyKTsKKwlpZiAocmV0KSB7 CisJCWtmcmVlKG1pcGkpOworCQlyZXR1cm4gcmV0OworCX0KKworCWRybV9tb2RlX2NvbmZpZ19p bml0KGRybSk7CisKIAltaXBpLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwg InJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOwogCWlmIChJU19FUlIobWlwaS0+cmVzZXQpKSB7CiAJ CURSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIpOwpAQCAt MjEzLDE0ICsyMjUsMzEgQEAgc3RhdGljIGludCBtaTAyODNxdF9wcm9iZShzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSBtaXBpX2RiaV9p bml0KCZzcGktPmRldiwgbWlwaSwgJm1pMDI4M3F0X3BpcGVfZnVuY3MsCi0JCQkgICAgJm1pMDI4 M3F0X2RyaXZlciwgJm1pMDI4M3F0X21vZGUsIHJvdGF0aW9uKTsKKwlyZXQgPSBtaXBpX2RiaV9p bml0KG1pcGksICZtaTAyODNxdF9waXBlX2Z1bmNzLCAmbWkwMjgzcXRfbW9kZSwgcm90YXRpb24p OwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlzcGlfc2V0X2RydmRhdGEoc3BpLCBtaXBp LT50aW55ZHJtLmRybSk7CisJZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRybSk7CiAKLQlyZXR1cm4g ZGV2bV90aW55ZHJtX3JlZ2lzdGVyKCZtaXBpLT50aW55ZHJtKTsKKwlyZXQgPSBkcm1fZGV2X3Jl Z2lzdGVyKGRybSwgMCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXNwaV9zZXRfZHJ2 ZGF0YShzcGksIGRybSk7CisKKwlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm0sIDMyKTsKKwor CXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG1pMDI4M3F0X3JlbW92ZShzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEo c3BpKTsKKworCWRybV9kZXZfdW5wbHVnKGRybSk7CisJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRv d24oZHJtKTsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBtaTAyODNxdF9zaHV0ZG93 bihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQpAQCAtMjUzLDYgKzI4Miw3IEBAIHN0YXRpYyBzdHJ1 Y3Qgc3BpX2RyaXZlciBtaTAyODNxdF9zcGlfZHJpdmVyID0gewogCX0sCiAJLmlkX3RhYmxlID0g bWkwMjgzcXRfaWQsCiAJLnByb2JlID0gbWkwMjgzcXRfcHJvYmUsCisJLnJlbW92ZSA9IG1pMDI4 M3F0X3JlbW92ZSwKIAkuc2h1dGRvd24gPSBtaTAyODNxdF9zaHV0ZG93biwKIH07CiBtb2R1bGVf c3BpX2RyaXZlcihtaTAyODNxdF9zcGlfZHJpdmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS90aW55ZHJtL21pcGktZGJpLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taXBpLWRi aS5jCmluZGV4IDI0NmU3MDhhOWZmNy4uNWM4NDhmOTc1ZWJlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJt L21pcGktZGJpLmMKQEAgLTMxNiw3ICszMTYsNyBAQCBFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2Vu YWJsZV9mbHVzaCk7CiAKIHN0YXRpYyB2b2lkIG1pcGlfZGJpX2JsYW5rKHN0cnVjdCBtaXBpX2Ri aSAqbWlwaSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gbWlwaS0+dGlueWRybS5kcm07 CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9ICZtaXBpLT5kcm07CiAJdTE2IGhlaWdodCA9IGRy bS0+bW9kZV9jb25maWcubWluX2hlaWdodDsKIAl1MTYgd2lkdGggPSBkcm0tPm1vZGVfY29uZmln Lm1pbl93aWR0aDsKIAlzaXplX3QgbGVuID0gd2lkdGggKiBoZWlnaHQgKiAyOwpAQCAtMzU3LDYg KzM1NywxMiBAQCB2b2lkIG1pcGlfZGJpX3BpcGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9k aXNwbGF5X3BpcGUgKnBpcGUpCiB9CiBFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX3BpcGVfZGlzYWJs ZSk7CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIG1pcGlfZGJp X21vZGVfY29uZmlnX2Z1bmNzID0geworCS5mYl9jcmVhdGUgPSBkcm1fZ2VtX2ZiX2NyZWF0ZV93 aXRoX2RpcnR5LAorCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKKwku YXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKK307CisKIHN0YXRpYyBj b25zdCB1aW50MzJfdCBtaXBpX2RiaV9mb3JtYXRzW10gPSB7CiAJRFJNX0ZPUk1BVF9SR0I1NjUs CiAJRFJNX0ZPUk1BVF9YUkdCODg4OCwKQEAgLTM2NCwzMSArMzcwLDI3IEBAIHN0YXRpYyBjb25z dCB1aW50MzJfdCBtaXBpX2RiaV9mb3JtYXRzW10gPSB7CiAKIC8qKgogICogbWlwaV9kYmlfaW5p dCAtIE1JUEkgREJJIGluaXRpYWxpemF0aW9uCi0gKiBAZGV2OiBQYXJlbnQgZGV2aWNlCiAgKiBA bWlwaTogJm1pcGlfZGJpIHN0cnVjdHVyZSB0byBpbml0aWFsaXplCi0gKiBAcGlwZV9mdW5jczog RGlzcGxheSBwaXBlIGZ1bmN0aW9ucwotICogQGRyaXZlcjogRFJNIGRyaXZlcgorICogQGZ1bmNz OiBEaXNwbGF5IHBpcGUgZnVuY3Rpb25zCiAgKiBAbW9kZTogRGlzcGxheSBtb2RlCiAgKiBAcm90 YXRpb246IEluaXRpYWwgcm90YXRpb24gaW4gZGVncmVlcyBDb3VudGVyIENsb2NrIFdpc2UKICAq Ci0gKiBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGEgJm1pcGlfZGJpIHN0cnVjdHVyZSBhbmQg aXQncyB1bmRlcmx5aW5nCi0gKiBAdGlueWRybV9kZXZpY2UuIEl0IGFsc28gc2V0cyB1cCB0aGUg ZGlzcGxheSBwaXBlbGluZS4KKyAqIFRoaXMgZnVuY3Rpb24gc2V0cyB1cCBhICZkcm1fc2ltcGxl X2Rpc3BsYXlfcGlwZSB3aXRoIGEgJmRybV9jb25uZWN0b3IgdGhhdAorICogaGFzIG9uZSBmaXhl ZCAmZHJtX2Rpc3BsYXlfbW9kZSB3aGljaCBpcyByb3RhdGVkIGFjY29yZGluZyB0byBAcm90YXRp b24uCisgKiBUaGlzIG1vZGUgaXMgdXNlZCB0byBzZXQgdGhlIG1vZGUgY29uZmlnIG1pbi9tYXgg d2lkdGgvaGVpZ2h0IHByb3BlcnRpZXMuCisgKiBBZGRpdGlvbmFsbHkgJm1pcGlfZGJpLnR4X2J1 ZiBpcyBhbGxvY2F0ZWQuCiAgKgogICogU3VwcG9ydGVkIGZvcm1hdHM6IE5hdGl2ZSBSR0I1NjUg YW5kIGVtdWxhdGVkIFhSR0I4ODg4LgogICoKLSAqIE9iamVjdHMgY3JlYXRlZCBieSB0aGlzIGZ1 bmN0aW9uIHdpbGwgYmUgYXV0b21hdGljYWxseSBmcmVlZCBvbiBkcml2ZXIKLSAqIGRldGFjaCAo ZGV2cmVzKS4KLSAqCiAgKiBSZXR1cm5zOgogICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBl cnJvciBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KLWludCBtaXBpX2RiaV9pbml0KHN0cnVjdCBkZXZp Y2UgKmRldiwgc3RydWN0IG1pcGlfZGJpICptaXBpLAotCQkgIGNvbnN0IHN0cnVjdCBkcm1fc2lt cGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyAqcGlwZV9mdW5jcywKLQkJICBzdHJ1Y3QgZHJtX2RyaXZl ciAqZHJpdmVyLAoraW50IG1pcGlfZGJpX2luaXQoc3RydWN0IG1pcGlfZGJpICptaXBpLAorCQkg IGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyAqZnVuY3MsCiAJCSAg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsIHVuc2lnbmVkIGludCByb3RhdGlv bikKIHsKIAlzaXplX3QgYnVmc2l6ZSA9IG1vZGUtPnZkaXNwbGF5ICogbW9kZS0+aGRpc3BsYXkg KiBzaXplb2YodTE2KTsKLQlzdHJ1Y3QgdGlueWRybV9kZXZpY2UgKnRkZXYgPSAmbWlwaS0+dGlu eWRybTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gJm1pcGktPmRybTsKIAlpbnQgcmV0Owog CiAJaWYgKCFtaXBpLT5jb21tYW5kKQpAQCAtMzk2LDE2ICszOTgsMTIgQEAgaW50IG1pcGlfZGJp X2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksCiAKIAltdXRl eF9pbml0KCZtaXBpLT5jbWRsb2NrKTsKIAotCW1pcGktPnR4X2J1ZiA9IGRldm1fa21hbGxvYyhk ZXYsIGJ1ZnNpemUsIEdGUF9LRVJORUwpOworCW1pcGktPnR4X2J1ZiA9IGRldm1fa21hbGxvYyhk cm0tPmRldiwgYnVmc2l6ZSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtaXBpLT50eF9idWYpCiAJCXJl dHVybiAtRU5PTUVNOwogCi0JcmV0ID0gZGV2bV90aW55ZHJtX2luaXQoZGV2LCB0ZGV2LCBkcml2 ZXIpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KIAkvKiBUT0RPOiBNYXliZSBhZGQgRFJN X01PREVfQ09OTkVDVE9SX1NQSSAqLwotCXJldCA9IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQo dGRldi0+ZHJtLCAmdGRldi0+cGlwZSwgcGlwZV9mdW5jcywKKwlyZXQgPSB0aW55ZHJtX2Rpc3Bs YXlfcGlwZV9pbml0KGRybSwgJm1pcGktPnBpcGUsIGZ1bmNzLAogCQkJCQlEUk1fTU9ERV9DT05O RUNUT1JfVklSVFVBTCwKIAkJCQkJbWlwaV9kYmlfZm9ybWF0cywKIAkJCQkJQVJSQVlfU0laRSht aXBpX2RiaV9mb3JtYXRzKSwgbW9kZSwKQEAgLTQxMywyMCArNDExLDM5IEBAIGludCBtaXBpX2Ri aV9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IG1pcGlfZGJpICptaXBpLAogCWlmIChy ZXQpCiAJCXJldHVybiByZXQ7CiAKLQlkcm1fcGxhbmVfZW5hYmxlX2ZiX2RhbWFnZV9jbGlwcygm dGRldi0+cGlwZS5wbGFuZSk7CisJZHJtX3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2VfY2xpcHMoJm1p cGktPnBpcGUucGxhbmUpOwogCi0JdGRldi0+ZHJtLT5tb2RlX2NvbmZpZy5wcmVmZXJyZWRfZGVw dGggPSAxNjsKKwlkcm0tPm1vZGVfY29uZmlnLmZ1bmNzID0gJm1pcGlfZGJpX21vZGVfY29uZmln X2Z1bmNzOworCWRybS0+bW9kZV9jb25maWcucHJlZmVycmVkX2RlcHRoID0gMTY7CiAJbWlwaS0+ cm90YXRpb24gPSByb3RhdGlvbjsKIAotCWRybV9tb2RlX2NvbmZpZ19yZXNldCh0ZGV2LT5kcm0p OwotCiAJRFJNX0RFQlVHX0tNUygicHJlZmVycmVkX2RlcHRoPSV1LCByb3RhdGlvbiA9ICV1XG4i LAotCQkgICAgICB0ZGV2LT5kcm0tPm1vZGVfY29uZmlnLnByZWZlcnJlZF9kZXB0aCwgcm90YXRp b24pOworCQkgICAgICBkcm0tPm1vZGVfY29uZmlnLnByZWZlcnJlZF9kZXB0aCwgcm90YXRpb24p OwogCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2luaXQpOwogCisvKioK KyAqIG1pcGlfZGJpX3JlbGVhc2UgLSBEUk0gZHJpdmVyIHJlbGVhc2UgaGVscGVyCisgKiBAZHJt OiBEUk0gZGV2aWNlCisgKgorICogVGhpcyBmdW5jdGlvbiBmaW5hbGl6ZXMgYW5kIGZyZWVzICZt aXBpX2RiaS4KKyAqCisgKiBEcml2ZXJzIGNhbiB1c2UgdGhpcyBhcyB0aGVpciAmZHJtX2RyaXZl ci0+cmVsZWFzZSBjYWxsYmFjay4KKyAqLwordm9pZCBtaXBpX2RiaV9yZWxlYXNlKHN0cnVjdCBk cm1fZGV2aWNlICpkcm0pCit7CisJc3RydWN0IG1pcGlfZGJpICpkYmkgPSBkcm1fdG9fbWlwaV9k YmkoZHJtKTsKKworCURSTV9ERUJVR19EUklWRVIoIlxuIik7CisKKwlkcm1fbW9kZV9jb25maWdf Y2xlYW51cChkcm0pOworCWRybV9kZXZfZmluaShkcm0pOworCWtmcmVlKGRiaSk7Cit9CitFWFBP UlRfU1lNQk9MKG1pcGlfZGJpX3JlbGVhc2UpOworCiAvKioKICAqIG1pcGlfZGJpX2h3X3Jlc2V0 IC0gSGFyZHdhcmUgcmVzZXQgb2YgY29udHJvbGxlcgogICogQG1pcGk6IE1JUEkgREJJIHN0cnVj dHVyZQpAQCAtNDc5LDcgKzQ5Niw3IEBAIEVYUE9SVF9TWU1CT0wobWlwaV9kYmlfZGlzcGxheV9p c19vbik7CiAKIHN0YXRpYyBpbnQgbWlwaV9kYmlfcG93ZXJvbl9yZXNldF9jb25kaXRpb25hbChz dHJ1Y3QgbWlwaV9kYmkgKm1pcGksIGJvb2wgY29uZCkKIHsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYg PSBtaXBpLT50aW55ZHJtLmRybS0+ZGV2OworCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1pcGktPmRy bS5kZXY7CiAJaW50IHJldDsKIAogCWlmIChtaXBpLT5yZWd1bGF0b3IpIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzU4Ni5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlk cm0vc3Q3NTg2LmMKaW5kZXggNjA5NzU4NTkxM2YyLi42ZTkyZGU4MDliNjMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzU4Ni5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90 aW55ZHJtL3N0NzU4Ni5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9kYW1h Z2VfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KICNpbmNsdWRlIDxkcm0vZHJt X2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1 ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFt ZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KQEAgLTI2Miw0NiAr MjYzLDYgQEAgc3RhdGljIGNvbnN0IHUzMiBzdDc1ODZfZm9ybWF0c1tdID0gewogCURSTV9GT1JN QVRfWFJHQjg4ODgsCiB9OwogCi1zdGF0aWMgaW50IHN0NzU4Nl9pbml0KHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IG1pcGlfZGJpICptaXBpLAotCQljb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9k aXNwbGF5X3BpcGVfZnVuY3MgKnBpcGVfZnVuY3MsCi0JCXN0cnVjdCBkcm1fZHJpdmVyICpkcml2 ZXIsIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAotCQl1bnNpZ25lZCBpbnQg cm90YXRpb24pCi17Ci0Jc2l6ZV90IGJ1ZnNpemUgPSAobW9kZS0+dmRpc3BsYXkgKyAyKSAvIDMg KiBtb2RlLT5oZGlzcGxheTsKLQlzdHJ1Y3QgdGlueWRybV9kZXZpY2UgKnRkZXYgPSAmbWlwaS0+ dGlueWRybTsKLQlpbnQgcmV0OwotCi0JbXV0ZXhfaW5pdCgmbWlwaS0+Y21kbG9jayk7Ci0KLQlt aXBpLT50eF9idWYgPSBkZXZtX2ttYWxsb2MoZGV2LCBidWZzaXplLCBHRlBfS0VSTkVMKTsKLQlp ZiAoIW1pcGktPnR4X2J1ZikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyZXQgPSBkZXZtX3Rpbnlk cm1faW5pdChkZXYsIHRkZXYsIGRyaXZlcik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQot CXJldCA9IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQodGRldi0+ZHJtLCAmdGRldi0+cGlwZSwg cGlwZV9mdW5jcywKLQkJCQkJRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwsCi0JCQkJCXN0NzU4 Nl9mb3JtYXRzLAotCQkJCQlBUlJBWV9TSVpFKHN0NzU4Nl9mb3JtYXRzKSwKLQkJCQkJbW9kZSwg cm90YXRpb24pOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlkcm1fcGxhbmVfZW5hYmxl X2ZiX2RhbWFnZV9jbGlwcygmdGRldi0+cGlwZS5wbGFuZSk7Ci0KLQl0ZGV2LT5kcm0tPm1vZGVf Y29uZmlnLnByZWZlcnJlZF9kZXB0aCA9IDMyOwotCW1pcGktPnJvdGF0aW9uID0gcm90YXRpb247 Ci0KLQlkcm1fbW9kZV9jb25maWdfcmVzZXQodGRldi0+ZHJtKTsKLQotCURSTV9ERUJVR19LTVMo InByZWZlcnJlZF9kZXB0aD0ldSwgcm90YXRpb24gPSAldVxuIiwKLQkJICAgICAgdGRldi0+ZHJt LT5tb2RlX2NvbmZpZy5wcmVmZXJyZWRfZGVwdGgsIHJvdGF0aW9uKTsKLQotCXJldHVybiAwOwot fQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIHN0 NzU4Nl9waXBlX2Z1bmNzID0gewogCS5lbmFibGUJCT0gc3Q3NTg2X3BpcGVfZW5hYmxlLAogCS5k aXNhYmxlCT0gc3Q3NTg2X3BpcGVfZGlzYWJsZSwKQEAgLTMwOSw2ICsyNzAsMTIgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyBzdDc1ODZfcGlwZV9m dW5jcyA9IHsKIAkucHJlcGFyZV9mYgk9IGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9w cmVwYXJlX2ZiLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVu Y3Mgc3Q3NTg2X21vZGVfY29uZmlnX2Z1bmNzID0geworCS5mYl9jcmVhdGUgPSBkcm1fZ2VtX2Zi X2NyZWF0ZV93aXRoX2RpcnR5LAorCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9j aGVjaywKKwkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKK307CisK IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBzdDc1ODZfbW9kZSA9IHsKIAlE Uk1fU0lNUExFX01PREUoMTc4LCAxMjgsIDM3LCAyNyksCiB9OwpAQCAtMzE5LDYgKzI4Niw3IEBA IHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBzdDc1ODZfZHJpdmVyID0gewogCS5kcml2ZXJfZmVh dHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfUFJJTUUgfAogCQkJ CSAgRFJJVkVSX0FUT01JQywKIAkuZm9wcwkJCT0gJnN0NzU4Nl9mb3BzLAorCS5yZWxlYXNlCQk9 IG1pcGlfZGJpX3JlbGVhc2UsCiAJRFJNX0dFTV9DTUFfVk1BUF9EUklWRVJfT1BTLAogCS5kZWJ1 Z2ZzX2luaXQJCT0gbWlwaV9kYmlfZGVidWdmc19pbml0LAogCS5uYW1lCQkJPSAic3Q3NTg2IiwK QEAgLTM0MywxNSArMzExLDM1IEBAIE1PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCBzdDc1ODZfaWQp Owogc3RhdGljIGludCBzdDc1ODZfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIHsKIAlz dHJ1Y3QgZGV2aWNlICpkZXYgPSAmc3BpLT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybTsK IAlzdHJ1Y3QgbWlwaV9kYmkgKm1pcGk7CiAJc3RydWN0IGdwaW9fZGVzYyAqYTA7CiAJdTMyIHJv dGF0aW9uID0gMDsKKwlzaXplX3QgYnVmc2l6ZTsKIAlpbnQgcmV0OwogCi0JbWlwaSA9IGRldm1f a3phbGxvYyhkZXYsIHNpemVvZigqbWlwaSksIEdGUF9LRVJORUwpOworCW1pcGkgPSBremFsbG9j KHNpemVvZigqbWlwaSksIEdGUF9LRVJORUwpOwogCWlmICghbWlwaSkKIAkJcmV0dXJuIC1FTk9N RU07CiAKKwlkcm0gPSAmbWlwaS0+ZHJtOworCXJldCA9IGRldm1fZHJtX2Rldl9pbml0KGRldiwg ZHJtLCAmc3Q3NTg2X2RyaXZlcik7CisJaWYgKHJldCkgeworCQlrZnJlZShtaXBpKTsKKwkJcmV0 dXJuIHJldDsKKwl9CisKKwlkcm1fbW9kZV9jb25maWdfaW5pdChkcm0pOworCWRybS0+bW9kZV9j b25maWcucHJlZmVycmVkX2RlcHRoID0gMzI7CisJZHJtLT5tb2RlX2NvbmZpZy5mdW5jcyA9ICZz dDc1ODZfbW9kZV9jb25maWdfZnVuY3M7CisKKwltdXRleF9pbml0KCZtaXBpLT5jbWRsb2NrKTsK KworCWJ1ZnNpemUgPSAoc3Q3NTg2X21vZGUudmRpc3BsYXkgKyAyKSAvIDMgKiBzdDc1ODZfbW9k ZS5oZGlzcGxheTsKKwltaXBpLT50eF9idWYgPSBkZXZtX2ttYWxsb2MoZGV2LCBidWZzaXplLCBH RlBfS0VSTkVMKTsKKwlpZiAoIW1pcGktPnR4X2J1ZikKKwkJcmV0dXJuIC1FTk9NRU07CisKIAlt aXBpLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gp OwogCWlmIChJU19FUlIobWlwaS0+cmVzZXQpKSB7CiAJCURSTV9ERVZfRVJST1IoZGV2LCAiRmFp bGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIpOwpAQCAtMzY1LDYgKzM1Myw3IEBAIHN0YXRpYyBp bnQgc3Q3NTg2X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJfQogCiAJZGV2aWNlX3By b3BlcnR5X3JlYWRfdTMyKGRldiwgInJvdGF0aW9uIiwgJnJvdGF0aW9uKTsKKwltaXBpLT5yb3Rh dGlvbiA9IHJvdGF0aW9uOwogCiAJcmV0ID0gbWlwaV9kYmlfc3BpX2luaXQoc3BpLCBtaXBpLCBh MCk7CiAJaWYgKHJldCkKQEAgLTM4MiwxNCArMzcxLDM5IEBAIHN0YXRpYyBpbnQgc3Q3NTg2X3By b2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJICovCiAJbWlwaS0+c3dhcF9ieXRlcyA9IHRy dWU7CiAKLQlyZXQgPSBzdDc1ODZfaW5pdCgmc3BpLT5kZXYsIG1pcGksICZzdDc1ODZfcGlwZV9m dW5jcywgJnN0NzU4Nl9kcml2ZXIsCi0JCQkgICZzdDc1ODZfbW9kZSwgcm90YXRpb24pOworCXJl dCA9IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQoZHJtLCAmbWlwaS0+cGlwZSwgJnN0NzU4Nl9w aXBlX2Z1bmNzLAorCQkJCQlEUk1fTU9ERV9DT05ORUNUT1JfVklSVFVBTCwKKwkJCQkJc3Q3NTg2 X2Zvcm1hdHMsIEFSUkFZX1NJWkUoc3Q3NTg2X2Zvcm1hdHMpLAorCQkJCQkmc3Q3NTg2X21vZGUs IHJvdGF0aW9uKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0Jc3BpX3NldF9kcnZkYXRh KHNwaSwgbWlwaS0+dGlueWRybS5kcm0pOworCWRybV9wbGFuZV9lbmFibGVfZmJfZGFtYWdlX2Ns aXBzKCZtaXBpLT5waXBlLnBsYW5lKTsKIAotCXJldHVybiBkZXZtX3Rpbnlkcm1fcmVnaXN0ZXIo Jm1pcGktPnRpbnlkcm0pOworCWRybV9tb2RlX2NvbmZpZ19yZXNldChkcm0pOworCisJcmV0ID0g ZHJtX2Rldl9yZWdpc3Rlcihkcm0sIDApOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlz cGlfc2V0X2RydmRhdGEoc3BpLCBkcm0pOworCisJRFJNX0RFQlVHX0tNUygicHJlZmVycmVkX2Rl cHRoPSV1LCByb3RhdGlvbiA9ICV1XG4iLAorCQkgICAgICBkcm0tPm1vZGVfY29uZmlnLnByZWZl cnJlZF9kZXB0aCwgcm90YXRpb24pOworCisJZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoZHJtLCAz Mik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzdDc1ODZfcmVtb3ZlKHN0cnVjdCBz cGlfZGV2aWNlICpzcGkpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHNwaV9nZXRfZHJ2 ZGF0YShzcGkpOworCisJZHJtX2Rldl91bnBsdWcoZHJtKTsKKwlkcm1fYXRvbWljX2hlbHBlcl9z aHV0ZG93bihkcm0pOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIHN0NzU4Nl9zaHV0 ZG93bihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQpAQCAtNDA1LDYgKzQxOSw3IEBAIHN0YXRpYyBz dHJ1Y3Qgc3BpX2RyaXZlciBzdDc1ODZfc3BpX2RyaXZlciA9IHsKIAl9LAogCS5pZF90YWJsZSA9 IHN0NzU4Nl9pZCwKIAkucHJvYmUgPSBzdDc1ODZfcHJvYmUsCisJLnJlbW92ZSA9IHN0NzU4Nl9y ZW1vdmUsCiAJLnNodXRkb3duID0gc3Q3NTg2X3NodXRkb3duLAogfTsKIG1vZHVsZV9zcGlfZHJp dmVyKHN0NzU4Nl9zcGlfZHJpdmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55 ZHJtL3N0NzczNXIuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIuYwppbmRleCBi ZmE3ZTIyMjE1NDAuLjBmOGEzNDYwMjZhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vc3Q3NzM1ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIuYwpA QCAtMTYsNiArMTYsNyBAQAogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAj aW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgog I2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2dl bV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vdGlueWRybS9taXBpLWRiaS5o PgpAQCAtMTIwLDYgKzEyMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBzdDc3MzVyX2Ry aXZlciA9IHsKIAkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VU IHwgRFJJVkVSX1BSSU1FIHwKIAkJCQkgIERSSVZFUl9BVE9NSUMsCiAJLmZvcHMJCQk9ICZzdDc3 MzVyX2ZvcHMsCisJLnJlbGVhc2UJCT0gbWlwaV9kYmlfcmVsZWFzZSwKIAlEUk1fR0VNX0NNQV9W TUFQX0RSSVZFUl9PUFMsCiAJLmRlYnVnZnNfaW5pdAkJPSBtaXBpX2RiaV9kZWJ1Z2ZzX2luaXQs CiAJLm5hbWUJCQk9ICJzdDc3MzVyIiwKQEAgLTE0NCwxNSArMTQ2LDI1IEBAIE1PRFVMRV9ERVZJ Q0VfVEFCTEUoc3BpLCBzdDc3MzVyX2lkKTsKIHN0YXRpYyBpbnQgc3Q3NzM1cl9wcm9iZShzdHJ1 Y3Qgc3BpX2RldmljZSAqc3BpKQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwogCXN0cnVjdCBtaXBpX2RiaSAqbWlwaTsKIAlzdHJ1 Y3QgZ3Bpb19kZXNjICpkYzsKIAl1MzIgcm90YXRpb24gPSAwOwogCWludCByZXQ7CiAKLQltaXBp ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCptaXBpKSwgR0ZQX0tFUk5FTCk7CisJbWlwaSA9 IGt6YWxsb2Moc2l6ZW9mKCptaXBpKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtaXBpKQogCQlyZXR1 cm4gLUVOT01FTTsKIAorCWRybSA9ICZtaXBpLT5kcm07CisJcmV0ID0gZGV2bV9kcm1fZGV2X2lu aXQoZGV2LCBkcm0sICZzdDc3MzVyX2RyaXZlcik7CisJaWYgKHJldCkgeworCQlrZnJlZShtaXBp KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlkcm1fbW9kZV9jb25maWdfaW5pdChkcm0pOworCiAJ bWlwaS0+cmVzZXQgPSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdI KTsKIAlpZiAoSVNfRVJSKG1pcGktPnJlc2V0KSkgewogCQlEUk1fREVWX0VSUk9SKGRldiwgIkZh aWxlZCB0byBnZXQgZ3BpbyAncmVzZXQnXG4iKTsKQEAgLTE3OCwxNCArMTkwLDMxIEBAIHN0YXRp YyBpbnQgc3Q3NzM1cl9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCS8qIENhbm5vdCBy ZWFkIGZyb20gQWRhZnJ1aXQgMS44IiBkaXNwbGF5IHZpYSBTUEkgKi8KIAltaXBpLT5yZWFkX2Nv bW1hbmRzID0gTlVMTDsKIAotCXJldCA9IG1pcGlfZGJpX2luaXQoJnNwaS0+ZGV2LCBtaXBpLCAm amRfdDE4MDAzX3QwMV9waXBlX2Z1bmNzLAotCQkJICAgICZzdDc3MzVyX2RyaXZlciwgJmpkX3Qx ODAwM190MDFfbW9kZSwgcm90YXRpb24pOworCXJldCA9IG1pcGlfZGJpX2luaXQobWlwaSwgJmpk X3QxODAwM190MDFfcGlwZV9mdW5jcywgJmpkX3QxODAwM190MDFfbW9kZSwgcm90YXRpb24pOwog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlzcGlfc2V0X2RydmRhdGEoc3BpLCBtaXBpLT50 aW55ZHJtLmRybSk7CisJZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRybSk7CiAKLQlyZXR1cm4gZGV2 bV90aW55ZHJtX3JlZ2lzdGVyKCZtaXBpLT50aW55ZHJtKTsKKwlyZXQgPSBkcm1fZGV2X3JlZ2lz dGVyKGRybSwgMCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXNwaV9zZXRfZHJ2ZGF0 YShzcGksIGRybSk7CisKKwlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm0sIDMyKTsKKworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IHN0NzczNXJfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNl ICpzcGkpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkp OworCisJZHJtX2Rldl91bnBsdWcoZHJtKTsKKwlkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bihk cm0pOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIHN0NzczNXJfc2h1dGRvd24oc3Ry dWN0IHNwaV9kZXZpY2UgKnNwaSkKQEAgLTIwMSw2ICsyMzAsNyBAQCBzdGF0aWMgc3RydWN0IHNw aV9kcml2ZXIgc3Q3NzM1cl9zcGlfZHJpdmVyID0gewogCX0sCiAJLmlkX3RhYmxlID0gc3Q3NzM1 cl9pZCwKIAkucHJvYmUgPSBzdDc3MzVyX3Byb2JlLAorCS5yZW1vdmUgPSBzdDc3MzVyX3JlbW92 ZSwKIAkuc2h1dGRvd24gPSBzdDc3MzVyX3NodXRkb3duLAogfTsKIG1vZHVsZV9zcGlfZHJpdmVy KHN0NzczNXJfc3BpX2RyaXZlcik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90aW55ZHJtL21p cGktZGJpLmggYi9pbmNsdWRlL2RybS90aW55ZHJtL21pcGktZGJpLmgKaW5kZXggYWQ3ZTZiZWRh YjVmLi4zMDFiMmMzNGNkMDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3Rpbnlkcm0vbWlwaS1k YmkuaAorKysgYi9pbmNsdWRlL2RybS90aW55ZHJtL21pcGktZGJpLmgKQEAgLTEyLDcgKzEyLDkg QEAKICNpZm5kZWYgX19MSU5VWF9NSVBJX0RCSV9ICiAjZGVmaW5lIF9fTElOVVhfTUlQSV9EQklf SAogCi0jaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vdGlueWRybS5oPgorI2luY2x1ZGUgPGxpbnV4L211 dGV4Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Np bXBsZV9rbXNfaGVscGVyLmg+CiAKIHN0cnVjdCBkcm1fcmVjdDsKIHN0cnVjdCBzcGlfZGV2aWNl OwpAQCAtMjEsNyArMjMsNiBAQCBzdHJ1Y3QgcmVndWxhdG9yOwogCiAvKioKICAqIHN0cnVjdCBt aXBpX2RiaSAtIE1JUEkgREJJIGNvbnRyb2xsZXIKLSAqIEB0aW55ZHJtOiB0aW55ZHJtIGJhc2UK ICAqIEBzcGk6IFNQSSBkZXZpY2UKICAqIEBlbmFibGVkOiBQaXBlbGluZSBpcyBlbmFibGVkCiAg KiBAY21kbG9jazogQ29tbWFuZCBsb2NrCkBAIC0zOSw3ICs0MCwxNiBAQCBzdHJ1Y3QgcmVndWxh dG9yOwogICogQHJlZ3VsYXRvcjogcG93ZXIgcmVndWxhdG9yIChvcHRpb25hbCkKICAqLwogc3Ry dWN0IG1pcGlfZGJpIHsKLQlzdHJ1Y3QgdGlueWRybV9kZXZpY2UgdGlueWRybTsKKwkvKioKKwkg KiBAZHJtOiBEUk0gZGV2aWNlCisJICovCisJc3RydWN0IGRybV9kZXZpY2UgZHJtOworCisJLyoq CisJICogQHBpcGU6IERpc3BsYXkgcGlwZSBzdHJ1Y3R1cmUKKwkgKi8KKwlzdHJ1Y3QgZHJtX3Np bXBsZV9kaXNwbGF5X3BpcGUgcGlwZTsKKwogCXN0cnVjdCBzcGlfZGV2aWNlICpzcGk7CiAJYm9v bCBlbmFibGVkOwogCXN0cnVjdCBtdXRleCBjbWRsb2NrOwpAQCAtNTgsMTcgKzY4LDE1IEBAIHN0 cnVjdCBtaXBpX2RiaSB7CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IG1pcGlfZGJpICpkcm1fdG9f bWlwaV9kYmkoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKIHsKLQlzdHJ1Y3QgdGlueWRybV9kZXZp Y2UgKnRkZXYgPSBkcm0tPmRldl9wcml2YXRlOwotCi0JcmV0dXJuIGNvbnRhaW5lcl9vZih0ZGV2 LCBzdHJ1Y3QgbWlwaV9kYmksIHRpbnlkcm0pOworCXJldHVybiBjb250YWluZXJfb2YoZHJtLCBz dHJ1Y3QgbWlwaV9kYmksIGRybSk7CiB9CiAKIGludCBtaXBpX2RiaV9zcGlfaW5pdChzdHJ1Y3Qg c3BpX2RldmljZSAqc3BpLCBzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksCiAJCSAgICAgIHN0cnVjdCBn cGlvX2Rlc2MgKmRjKTsKLWludCBtaXBpX2RiaV9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IG1pcGlfZGJpICptaXBpLAotCQkgIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlf cGlwZV9mdW5jcyAqcGlwZV9mdW5jcywKLQkJICBzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyLAor aW50IG1pcGlfZGJpX2luaXQoc3RydWN0IG1pcGlfZGJpICptaXBpLAorCQkgIGNvbnN0IHN0cnVj dCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyAqZnVuY3MsCiAJCSAgY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsIHVuc2lnbmVkIGludCByb3RhdGlvbik7Cit2b2lkIG1p cGlfZGJpX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRybSk7CiB2b2lkIG1pcGlfZGJpX3Bp cGVfdXBkYXRlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkJCSAgc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKTsKIHZvaWQgbWlwaV9kYmlfZW5hYmxlX2Zs dXNoKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs