From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: [PATCH v2] drm/i915: Refer to GGTT VM consistently Date: Wed, 23 Mar 2016 15:18:31 +0200 Message-ID: <1458739111-931-1-git-send-email-joonas.lahtinen@linux.intel.com> References: <1458738023-31292-2-git-send-email-joonas.lahtinen@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 5281A6E0BF for ; Wed, 23 Mar 2016 13:18:06 +0000 (UTC) In-Reply-To: <1458738023-31292-2-git-send-email-joonas.lahtinen@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel graphics driver community testing & development List-Id: intel-gfx@lists.freedesktop.org UmVmZXIgdG8gdGhlIEdHVFQgVk0gY29uc2lzdGVudGx5IGFzICJnZ3R0X3ZtIiBpbnN0ZWFkIG9m IGp1c3QgImdndHQiLAoidm0iIG9yIGluZGlyZWN0bHkgdGhyb3VnaCBvdGhlciB2YXJpYWJsZXMg bGlrZSAiZGV2X3ByaXYtPmdndHQuYmFzZSIKdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggdGhlIGk5 MTVfZ2d0dCBvYmplY3QgaXRzZWxmIGFuZCBQUEdUVCBWTXMuCgpBcyBhIGJvbnVzIGdldHMgcmlk IG9mIHRoZSBsb25nLXN0YW5kaW5nIGk5MTVfb2JqX3RvX2dndHQgdnMuCmk5MTVfZ2VtX29ial90 b19nZ3R0IGNvbmZsaWN0LCBkdWUgdG8gdGhlIG90aGVyIGJlY29taW5nCmk5MTVfb2JqX3RvX2dn dHRfdm0hCgp2MjoKLSBBZGRlZCBzb21lIG1vcmUgYWZ0ZXIgZ3JlcHBpbmcgc291cmNlcyB3aXRo IENocmlzCgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6 IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgpDYzogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClNpZ25lZC1vZmYtYnk6IEpvb25hcyBM YWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICB8ICAxNiArKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyAgICAgICAgfCAgMjMgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYyAgICB8IDE0MSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIHwgIDEwICstLQogNSBmaWxlcyBjaGFu Z2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgOTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwppbmRleCBlMGJhM2UzLi40MWE3NmIxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwpAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2Jq ZWN0X2xpc3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc3RydWN0IGxp c3RfaGVhZCAqaGVhZDsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRl djsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl OwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gJmRldl9wcml2LT5nZ3R0LmJhc2U7 CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0dF92bSA9ICZkZXZfcHJpdi0+Z2d0dC5i YXNlOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCXU2NCB0b3RhbF9vYmpfc2l6ZSwgdG90YWxf Z3R0X3NpemU7CiAJaW50IGNvdW50LCByZXQ7CkBAIC0yMTYsMTEgKzIxNiwxMSBAQCBzdGF0aWMg aW50IGk5MTVfZ2VtX29iamVjdF9saXN0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpk YXRhKQogCXN3aXRjaCAobGlzdCkgewogCWNhc2UgQUNUSVZFX0xJU1Q6CiAJCXNlcV9wdXRzKG0s ICJBY3RpdmU6XG4iKTsKLQkJaGVhZCA9ICZ2bS0+YWN0aXZlX2xpc3Q7CisJCWhlYWQgPSAmZ2d0 dF92bS0+YWN0aXZlX2xpc3Q7CiAJCWJyZWFrOwogCWNhc2UgSU5BQ1RJVkVfTElTVDoKIAkJc2Vx X3B1dHMobSwgIkluYWN0aXZlOlxuIik7Ci0JCWhlYWQgPSAmdm0tPmluYWN0aXZlX2xpc3Q7CisJ CWhlYWQgPSAmZ2d0dF92bS0+aW5hY3RpdmVfbGlzdDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJ bXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CkBAIC00MzAsMTAgKzQzMCwxMSBAQCBz dGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCog ZGF0YSkKIAlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9kZSA9IG0tPnByaXZhdGU7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaTkxNV9nZ3R0ICpn Z3R0ID0gJmRldl9wcml2LT5nZ3R0OworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHRf dm0gPSAmZ2d0dC0+YmFzZTsKIAl1MzIgY291bnQsIG1hcHBhYmxlX2NvdW50LCBwdXJnZWFibGVf Y291bnQ7CiAJdTY0IHNpemUsIG1hcHBhYmxlX3NpemUsIHB1cmdlYWJsZV9zaXplOwogCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0gPSAmZGV2X3ByaXYtPmdndHQuYmFzZTsKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGU7CiAJc3Ry dWN0IGk5MTVfdm1hICp2bWE7CiAJaW50IHJldDsKQEAgLTQ1MiwxMiArNDUzLDEyIEBAIHN0YXRp YyBpbnQgaTkxNV9nZW1fb2JqZWN0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkKiBkYXRh KQogCQkgICBjb3VudCwgbWFwcGFibGVfY291bnQsIHNpemUsIG1hcHBhYmxlX3NpemUpOwogCiAJ c2l6ZSA9IGNvdW50ID0gbWFwcGFibGVfc2l6ZSA9IG1hcHBhYmxlX2NvdW50ID0gMDsKLQljb3Vu dF92bWFzKCZ2bS0+YWN0aXZlX2xpc3QsIHZtX2xpbmspOworCWNvdW50X3ZtYXMoJmdndHRfdm0t PmFjdGl2ZV9saXN0LCB2bV9saW5rKTsKIAlzZXFfcHJpbnRmKG0sICIgICV1IFsldV0gYWN0aXZl IG9iamVjdHMsICVsbHUgWyVsbHVdIGJ5dGVzXG4iLAogCQkgICBjb3VudCwgbWFwcGFibGVfY291 bnQsIHNpemUsIG1hcHBhYmxlX3NpemUpOwogCiAJc2l6ZSA9IGNvdW50ID0gbWFwcGFibGVfc2l6 ZSA9IG1hcHBhYmxlX2NvdW50ID0gMDsKLQljb3VudF92bWFzKCZ2bS0+aW5hY3RpdmVfbGlzdCwg dm1fbGluayk7CisJY291bnRfdm1hcygmZ2d0dF92bS0+aW5hY3RpdmVfbGlzdCwgdm1fbGluayk7 CiAJc2VxX3ByaW50ZihtLCAiICAldSBbJXVdIGluYWN0aXZlIG9iamVjdHMsICVsbHUgWyVsbHVd IGJ5dGVzXG4iLAogCQkgICBjb3VudCwgbWFwcGFibGVfY291bnQsIHNpemUsIG1hcHBhYmxlX3Np emUpOwogCkBAIC00OTIsOCArNDkzLDcgQEAgc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfaW5m byhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQqIGRhdGEpCiAJCSAgIGNvdW50LCBzaXplKTsKIAog CXNlcV9wcmludGYobSwgIiVsbHUgWyVsbHVdIGd0dCB0b3RhbFxuIiwKLQkJICAgZGV2X3ByaXYt PmdndHQuYmFzZS50b3RhbCwKLQkJICAgKHU2NClkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZV9lbmQg LSBkZXZfcHJpdi0+Z2d0dC5iYXNlLnN0YXJ0KTsKKwkJICAgZ2d0dF92bS0+dG90YWwsIGdndHQt Pm1hcHBhYmxlX2VuZCAtIGdndHRfdm0tPnN0YXJ0KTsKIAogCXNlcV9wdXRjKG0sICdcbicpOwog CXByaW50X2JhdGNoX3Bvb2xfc3RhdHMobSwgZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKaW5kZXggMDhiODhjMC4uM2RmMTBmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0z MTM3LDcgKzMxMzcsNyBAQCBpOTE1X2dlbV9vYmpfdG9fZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKQogYm9vbCBpOTE1X2dlbV9vYmpfaXNfcGlubmVkKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmopOwogCiAvKiBTb21lIEdHVFQgVk0gaGVscGVycyAqLwotI2RlZmlu ZSBpOTE1X29ial90b19nZ3R0KG9iaikgXAorI2RlZmluZSBpOTE1X29ial90b19nZ3R0X3ZtKG9i aikgXAogCSgmKChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqKShvYmopLT5iYXNlLmRldi0+ZGV2 X3ByaXZhdGUpLT5nZ3R0LmJhc2UpCiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGk5MTVfaHdfcHBn dHQgKgpAQCAtMzE1Niw3ICszMTU2LDcgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX29i al9nZ3R0X2JvdW5kKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiBzdGF0aWMgaW5s aW5lIHVuc2lnbmVkIGxvbmcKIGk5MTVfZ2VtX29ial9nZ3R0X3NpemUoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKIHsKLQlyZXR1cm4gaTkxNV9nZW1fb2JqX3NpemUob2JqLCBpOTE1 X29ial90b19nZ3R0KG9iaikpOworCXJldHVybiBpOTE1X2dlbV9vYmpfc2l6ZShvYmosIGk5MTVf b2JqX3RvX2dndHRfdm0ob2JqKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IF9fbXVzdF9jaGVj awpAQCAtMzE2NCw3ICszMTY0LDcgQEAgaTkxNV9nZW1fb2JqX2dndHRfcGluKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCSAgICAgIHVpbnQzMl90IGFsaWdubWVudCwKIAkJICAg ICAgdW5zaWduZWQgZmxhZ3MpCiB7Ci0JcmV0dXJuIGk5MTVfZ2VtX29iamVjdF9waW4ob2JqLCBp OTE1X29ial90b19nZ3R0KG9iaiksCisJcmV0dXJuIGk5MTVfZ2VtX29iamVjdF9waW4ob2JqLCBp OTE1X29ial90b19nZ3R0X3ZtKG9iaiksCiAJCQkJICAgYWxpZ25tZW50LCBmbGFncyB8IFBJTl9H TE9CQUwpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA1MDZhNzA2Li41ZmU0Mjc5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTEzMywyMCArMTMzLDIxIEBAIGk5MTVfZ2Vt X2dldF9hcGVydHVyZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJ c3RydWN0IGRybV9pOTE1X2dlbV9nZXRfYXBlcnR1cmUgKmFyZ3MgPSBkYXRhOwogCXN0cnVjdCBp OTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7CisJc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqZ2d0dF92bSA9ICZnZ3R0LT5iYXNlOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCXNp emVfdCBwaW5uZWQ7CiAKIAlwaW5uZWQgPSAwOwogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211 dGV4KTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJmdndHQtPmJhc2UuYWN0aXZlX2xpc3Qs IHZtX2xpbmspCisJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZnZ3R0X3ZtLT5hY3RpdmVfbGlz dCwgdm1fbGluaykKIAkJaWYgKHZtYS0+cGluX2NvdW50KQogCQkJcGlubmVkICs9IHZtYS0+bm9k ZS5zaXplOwotCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmZ2d0dC0+YmFzZS5pbmFjdGl2ZV9s aXN0LCB2bV9saW5rKQorCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmZ2d0dF92bS0+aW5hY3Rp dmVfbGlzdCwgdm1fbGluaykKIAkJaWYgKHZtYS0+cGluX2NvdW50KQogCQkJcGlubmVkICs9IHZt YS0+bm9kZS5zaXplOwogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCi0JYXJn cy0+YXBlcl9zaXplID0gZGV2X3ByaXYtPmdndHQuYmFzZS50b3RhbDsKKwlhcmdzLT5hcGVyX3Np emUgPSBnZ3R0X3ZtLT50b3RhbDsKIAlhcmdzLT5hcGVyX2F2YWlsYWJsZV9zaXplID0gYXJncy0+ YXBlcl9zaXplIC0gcGlubmVkOwogCiAJcmV0dXJuIDA7CkBAIC0zNzcyLDcgKzM3NzMsNyBAQCBp OTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwgYm9vbCB3cml0ZSkKIAl2bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChvYmopOwog CWlmICh2bWEgJiYgZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpICYmICFvYmotPmFj dGl2ZSkKIAkJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywKLQkJCSAgICAgICAmdG9faTkx NShvYmotPmJhc2UuZGV2KS0+Z2d0dC5iYXNlLmluYWN0aXZlX2xpc3QpOworCQkJICAgICAgICZp OTE1X29ial90b19nZ3R0X3ZtKG9iaiktPmluYWN0aXZlX2xpc3QpOwogCiAJcmV0dXJuIDA7CiB9 CkBAIC00MzA5LDcgKzQzMTAsNyBAQCBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlpZiAoV0FSTl9PTkNFKCF2aWV3LCAibm8gdmlldyBz cGVjaWZpZWQiKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0 X2RvX3BpbihvYmosIGk5MTVfb2JqX3RvX2dndHQob2JqKSwgdmlldywKKwlyZXR1cm4gaTkxNV9n ZW1fb2JqZWN0X2RvX3BpbihvYmosIGk5MTVfb2JqX3RvX2dndHRfdm0ob2JqKSwgdmlldywKIAkJ CQkgICAgICBhbGlnbm1lbnQsIGZsYWdzIHwgUElOX0dMT0JBTCk7CiB9CiAKQEAgLTQ2MjEsMTQg KzQ2MjIsMTQgQEAgc3RydWN0IGk5MTVfdm1hICppOTE1X2dlbV9vYmpfdG9fdm1hKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiBzdHJ1Y3QgaTkxNV92bWEgKmk5MTVfZ2VtX29ial90 b19nZ3R0X3ZpZXcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkJICAgY29u c3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3KQogewotCXN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKmdndHQgPSBpOTE1X29ial90b19nZ3R0KG9iaik7CisJc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqZ2d0dF92bSA9IGk5MTVfb2JqX3RvX2dndHRfdm0ob2JqKTsKIAlzdHJ1Y3QgaTkx NV92bWEgKnZtYTsKIAogCWlmIChXQVJOX09OQ0UoIXZpZXcsICJubyB2aWV3IHNwZWNpZmllZCIp KQogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkodm1h LCAmb2JqLT52bWFfbGlzdCwgb2JqX2xpbmspCi0JCWlmICh2bWEtPnZtID09IGdndHQgJiYKKwkJ aWYgKHZtYS0+dm0gPT0gZ2d0dF92bSAmJgogCQkgICAgaTkxNV9nZ3R0X3ZpZXdfZXF1YWwoJnZt YS0+Z2d0dF92aWV3LCB2aWV3KSkKIAkJCXJldHVybiB2bWE7CiAJcmV0dXJuIE5VTEw7CkBAIC01 MjIxLDExICs1MjIyLDExIEBAIHU2NCBpOTE1X2dlbV9vYmpfb2Zmc2V0KHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvLAogdTY0IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldF92aWV3KHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvLAogCQkJCSAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92 aWV3ICp2aWV3KQogewotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHQgPSBpOTE1X29i al90b19nZ3R0KG8pOworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHRfdm0gPSBpOTE1 X29ial90b19nZ3R0X3ZtKG8pOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCiAJbGlzdF9mb3Jf ZWFjaF9lbnRyeSh2bWEsICZvLT52bWFfbGlzdCwgb2JqX2xpbmspCi0JCWlmICh2bWEtPnZtID09 IGdndHQgJiYKKwkJaWYgKHZtYS0+dm0gPT0gZ2d0dF92bSAmJgogCQkgICAgaTkxNV9nZ3R0X3Zp ZXdfZXF1YWwoJnZtYS0+Z2d0dF92aWV3LCB2aWV3KSkKIAkJCXJldHVybiB2bWEtPm5vZGUuc3Rh cnQ7CiAKQEAgLTUyNTIsMTEgKzUyNTMsMTEgQEAgYm9vbCBpOTE1X2dlbV9vYmpfYm91bmQoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm8sCiBib29sIGk5MTVfZ2VtX29ial9nZ3R0X2JvdW5k X3ZpZXcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm8sCiAJCQkJICBjb25zdCBzdHJ1Y3Qg aTkxNV9nZ3R0X3ZpZXcgKnZpZXcpCiB7Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0 dCA9IGk5MTVfb2JqX3RvX2dndHQobyk7CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0 dF92bSA9IGk5MTVfb2JqX3RvX2dndHRfdm0obyk7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAK IAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm8tPnZtYV9saXN0LCBvYmpfbGluaykKLQkJaWYg KHZtYS0+dm0gPT0gZ2d0dCAmJgorCQlpZiAodm1hLT52bSA9PSBnZ3R0X3ZtICYmCiAJCSAgICBp OTE1X2dndHRfdmlld19lcXVhbCgmdm1hLT5nZ3R0X3ZpZXcsIHZpZXcpICYmCiAJCSAgICBkcm1f bW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpCiAJCQlyZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggYzIzNTEzYi4uN2M2ZDVjYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTE5OTgsNiArMTk5OCw4IEBAIHN0YXRpYyBpbnQgZ2Vu Nl9wcGd0dF9hbGxvY2F0ZV9wYWdlX2RpcmVjdG9yaWVzKHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpw cGd0dCkKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9ICZwcGd0dC0+YmFzZTsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHBndHQtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGk5MTVfZ2d0 dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpn Z3R0X3ZtID0gJmdndHQtPmJhc2U7CiAJYm9vbCByZXRyaWVkID0gZmFsc2U7CiAJaW50IHJldDsK IApAQCAtMjAwNSwyMyArMjAwNywyMyBAQCBzdGF0aWMgaW50IGdlbjZfcHBndHRfYWxsb2NhdGVf cGFnZV9kaXJlY3RvcmllcyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiAJICogYWxsb2Nh dG9yIHdvcmtzIGluIGFkZHJlc3Mgc3BhY2Ugc2l6ZXMsIHNvIGl0J3MgbXVsdGlwbGllZCBieSBw YWdlCiAJICogc2l6ZS4gV2UgYWxsb2NhdGUgYXQgdGhlIHRvcCBvZiB0aGUgR1RUIHRvIGF2b2lk IGZyYWdtZW50YXRpb24uCiAJICovCi0JQlVHX09OKCFkcm1fbW1faW5pdGlhbGl6ZWQoJmRldl9w cml2LT5nZ3R0LmJhc2UubW0pKTsKKwlCVUdfT04oIWRybV9tbV9pbml0aWFsaXplZCgmZ2d0dF92 bS0+bW0pKTsKIAogCXJldCA9IGdlbjZfaW5pdF9zY3JhdGNoKHZtKTsKIAlpZiAocmV0KQogCQly ZXR1cm4gcmV0OwogCiBhbGxvYzoKLQlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2Vf Z2VuZXJpYygmZGV2X3ByaXYtPmdndHQuYmFzZS5tbSwKKwlyZXQgPSBkcm1fbW1faW5zZXJ0X25v ZGVfaW5fcmFuZ2VfZ2VuZXJpYygmZ2d0dF92bS0+bW0sCiAJCQkJCQkgICZwcGd0dC0+bm9kZSwg R0VONl9QRF9TSVpFLAogCQkJCQkJICBHRU42X1BEX0FMSUdOLCAwLAotCQkJCQkJICAwLCBkZXZf cHJpdi0+Z2d0dC5iYXNlLnRvdGFsLAorCQkJCQkJICAwLCBnZ3R0X3ZtLT50b3RhbCwKIAkJCQkJ CSAgRFJNX01NX1RPUERPV04pOwogCWlmIChyZXQgPT0gLUVOT1NQQyAmJiAhcmV0cmllZCkgewot CQlyZXQgPSBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoZGV2LCAmZGV2X3ByaXYtPmdndHQuYmFz ZSwKKwkJcmV0ID0gaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKGRldiwgZ2d0dF92bSwKIAkJCQkJ ICAgICAgIEdFTjZfUERfU0laRSwgR0VONl9QRF9BTElHTiwKIAkJCQkJICAgICAgIEk5MTVfQ0FD SEVfTk9ORSwKLQkJCQkJICAgICAgIDAsIGRldl9wcml2LT5nZ3R0LmJhc2UudG90YWwsCisJCQkJ CSAgICAgICAwLCBnZ3R0X3ZtLT50b3RhbCwKIAkJCQkJICAgICAgIDApOwogCQlpZiAocmV0KQog CQkJZ290byBlcnJfb3V0OwpAQCAtMjAzNCw3ICsyMDM2LDcgQEAgYWxsb2M6CiAJCWdvdG8gZXJy X291dDsKIAogCi0JaWYgKHBwZ3R0LT5ub2RlLnN0YXJ0IDwgZGV2X3ByaXYtPmdndHQubWFwcGFi bGVfZW5kKQorCWlmIChwcGd0dC0+bm9kZS5zdGFydCA8IGdndHQtPm1hcHBhYmxlX2VuZCkKIAkJ RFJNX0RFQlVHKCJGb3JjZWQgdG8gdXNlIGFwZXJ0dXJlIGZvciBQREVzXG4iKTsKIAogCXJldHVy biAwOwpAQCAtMjA2Myw5ICsyMDY1LDEwIEBAIHN0YXRpYyBpbnQgZ2VuNl9wcGd0dF9pbml0KHN0 cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g cHBndHQtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0dF92bSA9ICZk ZXZfcHJpdi0+Z2d0dC5iYXNlOwogCWludCByZXQ7CiAKLQlwcGd0dC0+YmFzZS5wdGVfZW5jb2Rl ID0gZGV2X3ByaXYtPmdndHQuYmFzZS5wdGVfZW5jb2RlOworCXBwZ3R0LT5iYXNlLnB0ZV9lbmNv ZGUgPSBnZ3R0X3ZtLT5wdGVfZW5jb2RlOwogCWlmIChJU19HRU42KGRldikpIHsKIAkJcHBndHQt PnN3aXRjaF9tbSA9IGdlbjZfbW1fc3dpdGNoOwogCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYp KSB7CkBAIC0yMzI1LDYgKzIzMjgsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dndHRfZmx1c2goc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2d0 dF9tYXBwaW5ncyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqZ2d0dF92bSA9ICZkZXZfcHJpdi0+Z2d0dC5iYXNlOwogCiAJLyogRG9uJ3QgYm90 aGVyIG1lc3Npbmcgd2l0aCBmYXVsdHMgcHJlIEdFTjYgYXMgd2UgaGF2ZSBsaXR0bGUKIAkgKiBk b2N1bWVudGF0aW9uIHN1cHBvcnRpbmcgdGhhdCBpdCdzIGEgZ29vZCBpZGVhLgpAQCAtMjMzNCwx MCArMjMzOCw4IEBAIHZvaWQgaTkxNV9nZW1fc3VzcGVuZF9ndHRfbWFwcGluZ3Moc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAogCWk5MTVfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhkZXYpOwogCi0J ZGV2X3ByaXYtPmdndHQuYmFzZS5jbGVhcl9yYW5nZSgmZGV2X3ByaXYtPmdndHQuYmFzZSwKLQkJ CQkgICAgICAgZGV2X3ByaXYtPmdndHQuYmFzZS5zdGFydCwKLQkJCQkgICAgICAgZGV2X3ByaXYt PmdndHQuYmFzZS50b3RhbCwKLQkJCQkgICAgICAgdHJ1ZSk7CisJZ2d0dF92bS0+Y2xlYXJfcmFu Z2UoZ2d0dF92bSwgZ2d0dF92bS0+c3RhcnQsIGdndHRfdm0tPnRvdGFsLAorCQkJICAgICB0cnVl KTsKIAogCWk5MTVfZ2d0dF9mbHVzaChkZXZfcHJpdik7CiB9CkBAIC0yODAxLDggKzI4MDMsOCBA QCBzdGF0aWMgaW50IGk5MTVfZ2VtX3NldHVwX2dsb2JhbF9ndHQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJCQkJdHJ1ZSk7CiAKIAkJZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0ID0gcHBn dHQ7Ci0JCVdBUk5fT04oZGV2X3ByaXYtPmdndHQuYmFzZS5iaW5kX3ZtYSAhPSBnZ3R0X2JpbmRf dm1hKTsKLQkJZGV2X3ByaXYtPmdndHQuYmFzZS5iaW5kX3ZtYSA9IGFsaWFzaW5nX2d0dF9iaW5k X3ZtYTsKKwkJV0FSTl9PTihnZ3R0X3ZtLT5iaW5kX3ZtYSAhPSBnZ3R0X2JpbmRfdm1hKTsKKwkJ Z2d0dF92bS0+YmluZF92bWEgPSBhbGlhc2luZ19ndHRfYmluZF92bWE7CiAJfQogCiAJcmV0dXJu IDA7CkBAIC0yODE1LDEyICsyODE3LDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fc2V0dXBfZ2xv YmFsX2d0dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogdm9pZCBpOTE1X2dlbV9pbml0X2dndHQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXU2NCBndHRfc2l6ZSwgbWFwcGFibGVfc2l6ZTsK LQotCWd0dF9zaXplID0gZGV2X3ByaXYtPmdndHQuYmFzZS50b3RhbDsKLQltYXBwYWJsZV9zaXpl ID0gZGV2X3ByaXYtPmdndHQubWFwcGFibGVfZW5kOworCXN0cnVjdCBpOTE1X2dndHQgKmdndHQg PSAmZGV2X3ByaXYtPmdndHQ7CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0dF92bSA9 ICZnZ3R0LT5iYXNlOwogCi0JaTkxNV9nZW1fc2V0dXBfZ2xvYmFsX2d0dChkZXYsIDAsIG1hcHBh YmxlX3NpemUsIGd0dF9zaXplKTsKKwlpOTE1X2dlbV9zZXR1cF9nbG9iYWxfZ3R0KGRldiwgMCwg Z2d0dC0+bWFwcGFibGVfZW5kLCBnZ3R0X3ZtLT50b3RhbCk7CiB9CiAKIC8qKgpAQCAtMjgzMCw3 ICsyODMwLDcgQEAgdm9pZCBpOTE1X2dlbV9pbml0X2dndHQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIHZvaWQgaTkxNV9jbGVhbnVwX2dndHRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwot CXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gJmRldl9wcml2LT5nZ3R0LmJhc2U7CisJ c3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0dF92bSA9ICZkZXZfcHJpdi0+Z2d0dC5iYXNl OwogCiAJaWYgKGRldl9wcml2LT5tbS5hbGlhc2luZ19wcGd0dCkgewogCQlzdHJ1Y3QgaTkxNV9o d19wcGd0dCAqcHBndHQgPSBkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBndHQ7CkBAIC0yODQwLDE1 ICsyODQwLDE1IEBAIHZvaWQgaTkxNV9jbGVhbnVwX2dndHRfaHcoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAogCWk5MTVfZ2VtX2NsZWFudXBfc3RvbGVuKGRldik7CiAKLQlpZiAoZHJtX21tX2lu aXRpYWxpemVkKCZ2bS0+bW0pKSB7CisJaWYgKGRybV9tbV9pbml0aWFsaXplZCgmZ2d0dF92bS0+ bW0pKSB7CiAJCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXYpKQogCQkJaW50ZWxfdmd0X2RlYmFs bG9vbigpOwogCi0JCWRybV9tbV90YWtlZG93bigmdm0tPm1tKTsKLQkJbGlzdF9kZWwoJnZtLT5n bG9iYWxfbGluayk7CisJCWRybV9tbV90YWtlZG93bigmZ2d0dF92bS0+bW0pOworCQlsaXN0X2Rl bCgmZ2d0dF92bS0+Z2xvYmFsX2xpbmspOwogCX0KIAotCXZtLT5jbGVhbnVwKHZtKTsKKwlnZ3R0 X3ZtLT5jbGVhbnVwKGdndHRfdm0pOwogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50IGdlbjZfZ2V0 X3RvdGFsX2d0dF9zaXplKHUxNiBzbmJfZ21jaF9jdGwpCkBAIC0yOTMzLDYgKzI5MzMsNyBAQCBz dGF0aWMgaW50IGdndHRfcHJvYmVfY29tbW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkg ICAgIHNpemVfdCBndHRfc2l6ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHRf dm0gPSAmZGV2X3ByaXYtPmdndHQuYmFzZTsKIAlzdHJ1Y3QgaTkxNV9wYWdlX3NjcmF0Y2ggKnNj cmF0Y2hfcGFnZTsKIAlwaHlzX2FkZHJfdCBndHRfcGh5c19hZGRyOwogCkBAIC0yOTY0LDcgKzI5 NjUsNyBAQCBzdGF0aWMgaW50IGdndHRfcHJvYmVfY29tbW9uKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCXJldHVybiBQVFJfRVJSKHNjcmF0Y2hfcGFnZSk7CiAJfQogCi0JZGV2X3ByaXYtPmdn dHQuYmFzZS5zY3JhdGNoX3BhZ2UgPSBzY3JhdGNoX3BhZ2U7CisJZ2d0dF92bS0+c2NyYXRjaF9w YWdlID0gc2NyYXRjaF9wYWdlOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zMDQ0LDcgKzMwNDUsOCBA QCBzdGF0aWMgdm9pZCBjaHZfc2V0dXBfcHJpdmF0ZV9wcGF0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAogc3RhdGljIGludCBnZW44X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVf Z2d0dCAqZ2d0dCkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZ2d0dC0+YmFzZS5kZXY7 CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0dF92bSA9ICZnZ3R0LT5iYXNlOworCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBnZ3R0X3ZtLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1MTYgc25iX2dtY2hfY3RsOwog CWludCByZXQ7CkBAIC0zMDY5LDcgKzMwNzEsNyBAQCBzdGF0aWMgaW50IGdlbjhfZ21jaF9wcm9i ZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCQlnZ3R0LT5zaXplID0gZ2VuOF9nZXRfdG90YWxf Z3R0X3NpemUoc25iX2dtY2hfY3RsKTsKIAl9CiAKLQlnZ3R0LT5iYXNlLnRvdGFsID0gKGdndHQt PnNpemUgLyBzaXplb2YoZ2VuOF9wdGVfdCkpIDw8IFBBR0VfU0hJRlQ7CisJZ2d0dF92bS0+dG90 YWwgPSAoZ2d0dC0+c2l6ZSAvIHNpemVvZihnZW44X3B0ZV90KSkgPDwgUEFHRV9TSElGVDsKIAog CWlmIChJU19DSEVSUllWSUVXKGRldikgfHwgSVNfQlJPWFRPTihkZXYpKQogCQljaHZfc2V0dXBf cHJpdmF0ZV9wcGF0KGRldl9wcml2KTsKQEAgLTMwNzgsMjEgKzMwODAsMjEgQEAgc3RhdGljIGlu dCBnZW44X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIAogCXJldCA9IGdndHRf cHJvYmVfY29tbW9uKGRldiwgZ2d0dC0+c2l6ZSk7CiAKLQlnZ3R0LT5iYXNlLmNsZWFyX3Jhbmdl ID0gZ2VuOF9nZ3R0X2NsZWFyX3JhbmdlOworCWdndHRfdm0tPmNsZWFyX3JhbmdlID0gZ2VuOF9n Z3R0X2NsZWFyX3JhbmdlOwogCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKLQkJZ2d0dC0+ YmFzZS5pbnNlcnRfZW50cmllcyA9IGdlbjhfZ2d0dF9pbnNlcnRfZW50cmllc19fQktMOworCQln Z3R0X3ZtLT5pbnNlcnRfZW50cmllcyA9IGdlbjhfZ2d0dF9pbnNlcnRfZW50cmllc19fQktMOwog CWVsc2UKLQkJZ2d0dC0+YmFzZS5pbnNlcnRfZW50cmllcyA9IGdlbjhfZ2d0dF9pbnNlcnRfZW50 cmllczsKLQlnZ3R0LT5iYXNlLmJpbmRfdm1hID0gZ2d0dF9iaW5kX3ZtYTsKLQlnZ3R0LT5iYXNl LnVuYmluZF92bWEgPSBnZ3R0X3VuYmluZF92bWE7Ci0KKwkJZ2d0dF92bS0+aW5zZXJ0X2VudHJp ZXMgPSBnZW44X2dndHRfaW5zZXJ0X2VudHJpZXM7CisJZ2d0dF92bS0+YmluZF92bWEgPSBnZ3R0 X2JpbmRfdm1hOworCWdndHRfdm0tPnVuYmluZF92bWEgPSBnZ3R0X3VuYmluZF92bWE7CiAKIAly ZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGdlbjZfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9n Z3R0ICpnZ3R0KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBnZ3R0LT5iYXNlLmRldjsK KwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpnZ3R0X3ZtID0gJmdndHQtPmJhc2U7CisJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGdndHRfdm0tPmRldjsKIAl1MTYgc25iX2dtY2hfY3RsOwog CWludCByZXQ7CiAKQEAgLTMxMTMsMTQgKzMxMTUsMTQgQEAgc3RhdGljIGludCBnZW42X2dtY2hf cHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIAogCWdndHQtPnN0b2xlbl9zaXplID0gZ2Vu Nl9nZXRfc3RvbGVuX3NpemUoc25iX2dtY2hfY3RsKTsKIAlnZ3R0LT5zaXplID0gZ2VuNl9nZXRf dG90YWxfZ3R0X3NpemUoc25iX2dtY2hfY3RsKTsKLQlnZ3R0LT5iYXNlLnRvdGFsID0gKGdndHQt PnNpemUgLyBzaXplb2YoZ2VuNl9wdGVfdCkpIDw8IFBBR0VfU0hJRlQ7CisJZ2d0dF92bS0+dG90 YWwgPSAoZ2d0dC0+c2l6ZSAvIHNpemVvZihnZW42X3B0ZV90KSkgPDwgUEFHRV9TSElGVDsKIAog CXJldCA9IGdndHRfcHJvYmVfY29tbW9uKGRldiwgZ2d0dC0+c2l6ZSk7CiAKLQlnZ3R0LT5iYXNl LmNsZWFyX3JhbmdlID0gZ2VuNl9nZ3R0X2NsZWFyX3JhbmdlOwotCWdndHQtPmJhc2UuaW5zZXJ0 X2VudHJpZXMgPSBnZW42X2dndHRfaW5zZXJ0X2VudHJpZXM7Ci0JZ2d0dC0+YmFzZS5iaW5kX3Zt YSA9IGdndHRfYmluZF92bWE7Ci0JZ2d0dC0+YmFzZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRf dm1hOworCWdndHRfdm0tPmNsZWFyX3JhbmdlID0gZ2VuNl9nZ3R0X2NsZWFyX3JhbmdlOworCWdn dHRfdm0tPmluc2VydF9lbnRyaWVzID0gZ2VuNl9nZ3R0X2luc2VydF9lbnRyaWVzOworCWdndHRf dm0tPmJpbmRfdm1hID0gZ2d0dF9iaW5kX3ZtYTsKKwlnZ3R0X3ZtLT51bmJpbmRfdm1hID0gZ2d0 dF91bmJpbmRfdm1hOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTMxMzUsNyArMzEzNyw4IEBAIHN0 YXRpYyB2b2lkIGdlbjZfZ21jaF9yZW1vdmUoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0p CiAKIHN0YXRpYyBpbnQgaTkxNV9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiB7 Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGdndHQtPmJhc2UuZGV2OworCXN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKmdndHRfdm0gPSAmZ2d0dC0+YmFzZTsKKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gZ2d0dF92bS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJaW50IHJldDsKIApAQCAtMzE0NSwxNCArMzE0OCwxNCBA QCBzdGF0aWMgaW50IGk5MTVfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCQly ZXR1cm4gLUVJTzsKIAl9CiAKLQlpbnRlbF9ndHRfZ2V0KCZnZ3R0LT5iYXNlLnRvdGFsLCAmZ2d0 dC0+c3RvbGVuX3NpemUsCisJaW50ZWxfZ3R0X2dldCgmZ2d0dF92bS0+dG90YWwsICZnZ3R0LT5z dG9sZW5fc2l6ZSwKIAkJICAgICAgJmdndHQtPm1hcHBhYmxlX2Jhc2UsICZnZ3R0LT5tYXBwYWJs ZV9lbmQpOwogCiAJZ2d0dC0+ZG9faWRsZV9tYXBzID0gbmVlZHNfaWRsZV9tYXBzKGRldl9wcml2 LT5kZXYpOwotCWdndHQtPmJhc2UuaW5zZXJ0X2VudHJpZXMgPSBpOTE1X2dndHRfaW5zZXJ0X2Vu dHJpZXM7Ci0JZ2d0dC0+YmFzZS5jbGVhcl9yYW5nZSA9IGk5MTVfZ2d0dF9jbGVhcl9yYW5nZTsK LQlnZ3R0LT5iYXNlLmJpbmRfdm1hID0gZ2d0dF9iaW5kX3ZtYTsKLQlnZ3R0LT5iYXNlLnVuYmlu ZF92bWEgPSBnZ3R0X3VuYmluZF92bWE7CisJZ2d0dF92bS0+aW5zZXJ0X2VudHJpZXMgPSBpOTE1 X2dndHRfaW5zZXJ0X2VudHJpZXM7CisJZ2d0dF92bS0+Y2xlYXJfcmFuZ2UgPSBpOTE1X2dndHRf Y2xlYXJfcmFuZ2U7CisJZ2d0dF92bS0+YmluZF92bWEgPSBnZ3R0X2JpbmRfdm1hOworCWdndHRf dm0tPnVuYmluZF92bWEgPSBnZ3R0X3VuYmluZF92bWE7CiAKIAlpZiAodW5saWtlbHkoZ2d0dC0+ ZG9faWRsZV9tYXBzKSkKIAkJRFJNX0lORk8oImFwcGx5aW5nIElyb25sYWtlIHF1aXJrcyBmb3Ig aW50ZWxfaW9tbXVcbiIpOwpAQCAtMzE3Myw0MiArMzE3Niw0MyBAQCBpbnQgaTkxNV9pbml0X2dn dHRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQg PSAmZGV2X3ByaXYtPmdndHQ7CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0dF92bSA9 ICZnZ3R0LT5iYXNlOwogCWludCByZXQ7CiAKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0g NSkgewogCQlnZ3R0LT5wcm9iZSA9IGk5MTVfZ21jaF9wcm9iZTsKLQkJZ2d0dC0+YmFzZS5jbGVh bnVwID0gaTkxNV9nbWNoX3JlbW92ZTsKKwkJZ2d0dF92bS0+Y2xlYW51cCA9IGk5MTVfZ21jaF9y ZW1vdmU7CiAJfSBlbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDgpIHsKIAkJZ2d0dC0+ cHJvYmUgPSBnZW42X2dtY2hfcHJvYmU7Ci0JCWdndHQtPmJhc2UuY2xlYW51cCA9IGdlbjZfZ21j aF9yZW1vdmU7CisJCWdndHRfdm0tPmNsZWFudXAgPSBnZW42X2dtY2hfcmVtb3ZlOwogCQlpZiAo SVNfSEFTV0VMTChkZXYpICYmIGRldl9wcml2LT5lbGxjX3NpemUpCi0JCQlnZ3R0LT5iYXNlLnB0 ZV9lbmNvZGUgPSBpcmlzX3B0ZV9lbmNvZGU7CisJCQlnZ3R0X3ZtLT5wdGVfZW5jb2RlID0gaXJp c19wdGVfZW5jb2RlOwogCQllbHNlIGlmIChJU19IQVNXRUxMKGRldikpCi0JCQlnZ3R0LT5iYXNl LnB0ZV9lbmNvZGUgPSBoc3dfcHRlX2VuY29kZTsKKwkJCWdndHRfdm0tPnB0ZV9lbmNvZGUgPSBo c3dfcHRlX2VuY29kZTsKIAkJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKQotCQkJZ2d0dC0+ YmFzZS5wdGVfZW5jb2RlID0gYnl0X3B0ZV9lbmNvZGU7CisJCQlnZ3R0X3ZtLT5wdGVfZW5jb2Rl ID0gYnl0X3B0ZV9lbmNvZGU7CiAJCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcp Ci0JCQlnZ3R0LT5iYXNlLnB0ZV9lbmNvZGUgPSBpdmJfcHRlX2VuY29kZTsKKwkJCWdndHRfdm0t PnB0ZV9lbmNvZGUgPSBpdmJfcHRlX2VuY29kZTsKIAkJZWxzZQotCQkJZ2d0dC0+YmFzZS5wdGVf ZW5jb2RlID0gc25iX3B0ZV9lbmNvZGU7CisJCQlnZ3R0X3ZtLT5wdGVfZW5jb2RlID0gc25iX3B0 ZV9lbmNvZGU7CiAJfSBlbHNlIHsKIAkJZ2d0dC0+cHJvYmUgPSBnZW44X2dtY2hfcHJvYmU7Ci0J CWdndHQtPmJhc2UuY2xlYW51cCA9IGdlbjZfZ21jaF9yZW1vdmU7CisJCWdndHRfdm0tPmNsZWFu dXAgPSBnZW42X2dtY2hfcmVtb3ZlOwogCX0KIAotCWdndHQtPmJhc2UuZGV2ID0gZGV2OwotCWdn dHQtPmJhc2UuaXNfZ2d0dCA9IHRydWU7CisJZ2d0dF92bS0+ZGV2ID0gZGV2OworCWdndHRfdm0t PmlzX2dndHQgPSB0cnVlOwogCiAJcmV0ID0gZ2d0dC0+cHJvYmUoZ2d0dCk7CiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKIAotCWlmICgoZ2d0dC0+YmFzZS50b3RhbCAtIDEpID4+IDMyKSB7CisJ aWYgKChnZ3R0X3ZtLT50b3RhbCAtIDEpID4+IDMyKSB7CiAJCURSTV9FUlJPUigiV2UgbmV2ZXIg ZXhwZWN0ZWQgYSBHbG9iYWwgR1RUIHdpdGggbW9yZSB0aGFuIDMyYml0cyIKIAkJCSAgIm9mIGFk ZHJlc3Mgc3BhY2UhIEZvdW5kICVsbGRNIVxuIiwKLQkJCSAgZ2d0dC0+YmFzZS50b3RhbCA+PiAy MCk7Ci0JCWdndHQtPmJhc2UudG90YWwgPSAxVUxMIDw8IDMyOwotCQlnZ3R0LT5tYXBwYWJsZV9l bmQgPSBtaW4oZ2d0dC0+bWFwcGFibGVfZW5kLCBnZ3R0LT5iYXNlLnRvdGFsKTsKKwkJCSAgZ2d0 dF92bS0+dG90YWwgPj4gMjApOworCQlnZ3R0X3ZtLT50b3RhbCA9IDFVTEwgPDwgMzI7CisJCWdn dHQtPm1hcHBhYmxlX2VuZCA9IG1pbihnZ3R0LT5tYXBwYWJsZV9lbmQsIGdndHRfdm0tPnRvdGFs KTsKIAl9CiAKIAkvKgpAQCAtMzIyMSw3ICszMjI1LDcgQEAgaW50IGk5MTVfaW5pdF9nZ3R0X2h3 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkvKiBHTUFEUiBpcyB0aGUgUENJIG1taW8gYXBl cnR1cmUgaW50byB0aGUgZ2xvYmFsIEdUVC4gKi8KIAlEUk1fSU5GTygiTWVtb3J5IHVzYWJsZSBi eSBncmFwaGljcyBkZXZpY2UgPSAlbGx1TVxuIiwKLQkJIGdndHQtPmJhc2UudG90YWwgPj4gMjAp OworCQkgZ2d0dF92bS0+dG90YWwgPj4gMjApOwogCURSTV9ERUJVR19EUklWRVIoIkdNQURSIHNp emUgPSAlbGxkTVxuIiwgZ2d0dC0+bWFwcGFibGVfZW5kID4+IDIwKTsKIAlEUk1fREVCVUdfRFJJ VkVSKCJHVFQgc3RvbGVuIHNpemUgPSAlemRNXG4iLCBnZ3R0LT5zdG9sZW5fc2l6ZSA+PiAyMCk7 CiAjaWZkZWYgQ09ORklHX0lOVEVMX0lPTU1VCkBAIC0zMjQwLDcgKzMyNDQsNyBAQCBpbnQgaTkx NV9pbml0X2dndHRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyZXR1cm4gMDsKIAogb3V0 X2d0dF9jbGVhbnVwOgotCWdndHQtPmJhc2UuY2xlYW51cCgmZGV2X3ByaXYtPmdndHQuYmFzZSk7 CisJZ2d0dF92bS0+Y2xlYW51cChnZ3R0X3ZtKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0zMjQ4 LDI1ICszMjUyLDIyIEBAIG91dF9ndHRfY2xlYW51cDoKIHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9n dHRfbWFwcGluZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKmdndHRfdm0gPSAmZGV2X3ByaXYtPmdndHQuYmFzZTsKIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOwogCXN0 cnVjdCBpOTE1X3ZtYSAqdm1hOwogCWJvb2wgZmx1c2g7CiAKIAlpOTE1X2NoZWNrX2FuZF9jbGVh cl9mYXVsdHMoZGV2KTsKIAogCS8qIEZpcnN0IGZpbGwgb3VyIHBvcnRpb24gb2YgdGhlIEdUVCB3 aXRoIHNjcmF0Y2ggcGFnZXMgKi8KLQlkZXZfcHJpdi0+Z2d0dC5iYXNlLmNsZWFyX3JhbmdlKCZk ZXZfcHJpdi0+Z2d0dC5iYXNlLAotCQkJCSAgICAgICBkZXZfcHJpdi0+Z2d0dC5iYXNlLnN0YXJ0 LAotCQkJCSAgICAgICBkZXZfcHJpdi0+Z2d0dC5iYXNlLnRvdGFsLAotCQkJCSAgICAgICB0cnVl KTsKKwlnZ3R0X3ZtLT5jbGVhcl9yYW5nZShnZ3R0X3ZtLCBnZ3R0X3ZtLT5zdGFydCwgZ2d0dF92 bS0+dG90YWwsCisJCQkgICAgIHRydWUpOwogCiAJLyogQ2FjaGUgZmx1c2ggb2JqZWN0cyBib3Vu ZCBpbnRvIEdHVFQgYW5kIHJlYmluZCB0aGVtLiAqLwotCXZtID0gJmRldl9wcml2LT5nZ3R0LmJh c2U7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShvYmosICZkZXZfcHJpdi0+bW0uYm91bmRfbGlzdCwg Z2xvYmFsX2xpc3QpIHsKIAkJZmx1c2ggPSBmYWxzZTsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeSh2 bWEsICZvYmotPnZtYV9saXN0LCBvYmpfbGluaykgewotCQkJaWYgKHZtYS0+dm0gIT0gdm0pCisJ CQlpZiAodm1hLT52bSAhPSBnZ3R0X3ZtKQogCQkJCWNvbnRpbnVlOwogCiAJCQlXQVJOX09OKGk5 MTVfdm1hX2JpbmQodm1hLCBvYmotPmNhY2hlX2xldmVsLApAQCAtMzI4OSw2ICszMjkwLDggQEAg dm9pZCBpOTE1X2dlbV9yZXN0b3JlX2d0dF9tYXBwaW5ncyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCX0KIAogCWlmIChVU0VTX1BQR1RUKGRldikpIHsKKwkJc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm07CisKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bSwgJmRldl9wcml2LT52bV9saXN0 LCBnbG9iYWxfbGluaykgewogCQkJLyogVE9ETzogUGVyaGFwcyBpdCBzaG91bGRuJ3QgYmUgZ2Vu NiBzcGVjaWZpYyAqLwogCkBAIC0zMzU2LDcgKzMzNTksNyBAQCBzdHJ1Y3QgaTkxNV92bWEgKgog aTkxNV9nZW1fb2JqX2xvb2t1cF9vcl9jcmVhdGVfZ2d0dF92bWEoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2 aWV3KQogewotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHQgPSBpOTE1X29ial90b19n Z3R0KG9iaik7CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0dF92bSA9IGk5MTVfb2Jq X3RvX2dndHRfdm0ob2JqKTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAogCWlmIChXQVJOX09O KCF2aWV3KSkKQEAgLTMzNjgsNyArMzM3MSw3IEBAIGk5MTVfZ2VtX29ial9sb29rdXBfb3JfY3Jl YXRlX2dndHRfdm1hKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCXJldHVybiB2 bWE7CiAKIAlpZiAoIXZtYSkKLQkJdm1hID0gX19pOTE1X2dlbV92bWFfY3JlYXRlKG9iaiwgZ2d0 dCwgdmlldyk7CisJCXZtYSA9IF9faTkxNV9nZW1fdm1hX2NyZWF0ZShvYmosIGdndHRfdm0sIHZp ZXcpOwogCiAJcmV0dXJuIHZtYTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4u YwppbmRleCBkZTg5MWM5Li5mMmI3MWE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9zdG9sZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9z dG9sZW4uYwpAQCAtNjI5LDcgKzYyOSw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVu X2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJICAgICAgIHUz MiBzaXplKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0dCA9ICZkZXZfcHJpdi0+ Z2d0dC5iYXNlOworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHRfdm0gPSAmZGV2X3By aXYtPmdndHQuYmFzZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVj dCBkcm1fbW1fbm9kZSAqc3RvbGVuOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwpAQCAtNjc1LDcg KzY3NSw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoZ3R0X29mZnNldCA9PSBJOTE1X0dUVF9PRkZT RVRfTk9ORSkKIAkJcmV0dXJuIG9iajsKIAotCXZtYSA9IGk5MTVfZ2VtX29ial9sb29rdXBfb3Jf Y3JlYXRlX3ZtYShvYmosIGdndHQpOworCXZtYSA9IGk5MTVfZ2VtX29ial9sb29rdXBfb3JfY3Jl YXRlX3ZtYShvYmosIGdndHRfdm0pOwogCWlmIChJU19FUlIodm1hKSkgewogCQlyZXQgPSBQVFJf RVJSKHZtYSk7CiAJCWdvdG8gZXJyOwpAQCAtNjg4LDggKzY4OCw4IEBAIGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAkgKi8KIAl2bWEtPm5vZGUuc3RhcnQgPSBndHRfb2Zmc2V0OwogCXZtYS0+bm9kZS5zaXplID0g c2l6ZTsKLQlpZiAoZHJtX21tX2luaXRpYWxpemVkKCZnZ3R0LT5tbSkpIHsKLQkJcmV0ID0gZHJt X21tX3Jlc2VydmVfbm9kZSgmZ2d0dC0+bW0sICZ2bWEtPm5vZGUpOworCWlmIChkcm1fbW1faW5p dGlhbGl6ZWQoJmdndHRfdm0tPm1tKSkgeworCQlyZXQgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZn Z3R0X3ZtLT5tbSwgJnZtYS0+bm9kZSk7CiAJCWlmIChyZXQpIHsKIAkJCURSTV9ERUJVR19LTVMo ImZhaWxlZCB0byBhbGxvY2F0ZSBzdG9sZW4gR1RUIHNwYWNlXG4iKTsKIAkJCWdvdG8gZXJyOwpA QCAtNjk3LDcgKzY5Nyw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVh bGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCQl2bWEtPmJvdW5kIHw9IEdMT0JB TF9CSU5EOwogCQlfX2k5MTVfdm1hX3NldF9tYXBfYW5kX2ZlbmNlYWJsZSh2bWEpOwotCQlsaXN0 X2FkZF90YWlsKCZ2bWEtPnZtX2xpbmssICZnZ3R0LT5pbmFjdGl2ZV9saXN0KTsKKwkJbGlzdF9h ZGRfdGFpbCgmdm1hLT52bV9saW5rLCAmZ2d0dF92bS0+aW5hY3RpdmVfbGlzdCk7CiAJfQogCiAJ bGlzdF9hZGRfdGFpbCgmb2JqLT5nbG9iYWxfbGlzdCwgJmRldl9wcml2LT5tbS5ib3VuZF9saXN0 KTsKLS0gCjIuNS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK