From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH v2 2/2] drm/i915: Use intel_ types more consistently for color management code (v2) Date: Mon, 10 Dec 2018 13:54:15 -0800 Message-ID: <20181210215415.19854-2-matthew.d.roper@intel.com> References: <20181210215415.19854-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 624F789E11 for ; Mon, 10 Dec 2018 21:54:38 +0000 (UTC) In-Reply-To: <20181210215415.19854-1-matthew.d.roper@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-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VHJ5IHRvIGJlIG1vcmUgY29uc2lzdGVudCBhYm91dCBpbnRlbF8qIHR5cGVzIHJhdGhlciB0aGFu IGRybV8qIHR5cGVzCmZvciBsb3dlci1sZXZlbCBkcml2ZXIgZnVuY3Rpb25zLiAgV2hpbGUgd2Un cmUgYXQgaXQsIGxldCdzIGFsc28gYmUgbW9yZQpjb25zaXN0ZW50IHdpdGggc3RhdGUgdmFyaWFi bGUgbmFtaW5nIChoYWxmIG9mIHRoZSBwbGF0Zm9ybXMgdXNlIHRoZQpuYW1lICdzdGF0ZScgd2hl cmVhcyB0aGUgb3RoZXIgaGFsZiB1c2VkICdjcnRjX3N0YXRlJykuCgpXaGlsZSB3ZSdyZSB0b3Vj aGluZyB0aGVzZSB2YXJpYWJsZXMsIGxldCdzIGFsc28gYmUgbW9yZSBjb25zaXN0ZW50CmFib3V0 IGFsd2F5cyBuYW1pbmcgdGhlIGludGVsX2NydGNfc3RhdGUncyAiY3J0Y19zdGF0ZSIgcmF0aGVy IHRoYW4KInN0YXRlIiBzbyB0aGF0IGRpZmZlcmVudCBwbGF0Zm9ybSB0eXBlcyBhcmVuJ3QgdXNp bmcgZGlmZmVyZW50IG5hbWluZwpjb252ZW50aW9ucy4KCnYyOgogLSBzL3N0YXRlL2NydGNfc3Rh dGUvIGZvciBjb25zaXN0ZW5jeSBiZXR3ZWVuIHBsYXRmb3JtIHR5cGVzIChWaWxsZSkKIC0gRHJv cCB0aGUgY3J0YyBwYXJhbWV0ZXIgdG8gaW50ZWxfY29sb3JfY2hlY2soKTsgd2UgY2FuIGp1c3Qg cHVsbCB0aGF0CiAgIG91dCBvZiB0aGUgc3RhdGUgb2JqZWN0LgoKU2lnbmVkLW9mZi1ieTogTWF0 dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jb2xvci5jICAgfCAyMTUgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAyMCArKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDggKy0KIDQgZmlsZXMgY2hhbmdlZCwg MTE3IGluc2VydGlvbnMoKyksIDEzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAppbmRleCAzMzBmYzBkMzljOGQuLmU3MDcwN2U3OTM4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCkBAIC0zMjAsOCArMzIwLDggQEAgc3RydWN0IGRybV9pOTE1X2Rpc3BsYXlfZnVuY3Mgewog CS8qIGRpc3BsYXkgY2xvY2sgaW5jcmVhc2UvZGVjcmVhc2UgKi8KIAkvKiBwbGwgY2xvY2sgaW5j cmVhc2UvZGVjcmVhc2UgKi8KIAotCXZvaWQgKCpsb2FkX2NzY19tYXRyaXgpKHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Ci0Jdm9pZCAoKmxvYWRfbHV0cykoc3RydWN0IGRybV9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKKwl2b2lkICgqbG9hZF9jc2NfbWF0cml4KShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CisJdm9pZCAoKmxvYWRfbHV0cykoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwogfTsKIAogI2RlZmluZSBDU1JfVkVSU0lP TihtYWpvciwgbWlub3IpCSgobWFqb3IpIDw8IDE2IHwgKG1pbm9yKSkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jb2xvci5jCmluZGV4IDUxMjdkYTI4NmEyYi4uMWQ1NzJlODNkYjdmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2NvbG9yLmMKQEAgLTc0LDEyICs3NCwxNCBAQAogI2RlZmluZSBJTEtfQ1ND X0NPRUZGXzFfMAkJXAogCSgoNyA8PCAxMikgfCBJTEtfQ1NDX0NPRUZGX0ZQKENUTV9DT0VGRl8x XzAsIDgpKQogCi1zdGF0aWMgYm9vbCBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKnN0YXRlKQorc3RhdGljIGJvb2wgY3J0Y19zdGF0ZV9pc19sZWdhY3lf Z2FtbWEoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0JcmV0dXJuICFz dGF0ZS0+ZGVnYW1tYV9sdXQgJiYKLQkJIXN0YXRlLT5jdG0gJiYKLQkJc3RhdGUtPmdhbW1hX2x1 dCAmJgotCQlkcm1fY29sb3JfbHV0X3NpemUoc3RhdGUtPmdhbW1hX2x1dCkgPT0gTEVHQUNZX0xV VF9MRU5HVEg7CisJaW50IGx1dF9sZW5ndGggPSBkcm1fY29sb3JfbHV0X3NpemUoY3J0Y19zdGF0 ZS0+YmFzZS5nYW1tYV9sdXQpOworCisJcmV0dXJuICFjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFf bHV0ICYmCisJCSFjcnRjX3N0YXRlLT5iYXNlLmN0bSAmJgorCQljcnRjX3N0YXRlLT5iYXNlLmdh bW1hX2x1dCAmJgorCQlsdXRfbGVuZ3RoID09IExFR0FDWV9MVVRfTEVOR1RIOwogfQogCiAvKgpA QCAtMTA4LDEwICsxMTAsMTAgQEAgc3RhdGljIHU2NCAqY3RtX211bHRfYnlfbGltaXRlZCh1NjQg KnJlc3VsdCwgY29uc3QgdTY0ICppbnB1dCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMg dm9pZCBpbGtfbG9hZF95Y2Jjcl9jb252ZXJzaW9uX21hdHJpeChzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YykKK3N0YXRpYyB2b2lkIGlsa19sb2FkX3ljYmNyX2NvbnZlcnNpb25fbWF0cml4 KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogewotCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlw ZTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2Ny dGMtPmJhc2UuZGV2KTsKKwlpbnQgcGlwZSA9IGNydGMtPnBpcGU7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlJOTE1X1dS SVRFKFBJUEVfQ1NDX1BSRU9GRl9ISShwaXBlKSwgMCk7CiAJSTkxNV9XUklURShQSVBFX0NTQ19Q UkVPRkZfTUUocGlwZSksIDApOwpAQCAtMTMyLDE0ICsxMzQsMTIgQEAgc3RhdGljIHZvaWQgaWxr X2xvYWRfeWNiY3JfY29udmVyc2lvbl9tYXRyaXgoc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMpCiAJSTkxNV9XUklURShQSVBFX0NTQ19NT0RFKHBpcGUpLCAwKTsKIH0KIAotc3RhdGljIHZv aWQgaWxrX2xvYWRfY3NjX21hdHJpeChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CitzdGF0aWMgdm9pZCBpbGtfbG9hZF9jc2NfbWF0cml4KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNydGNfc3RhdGUtPmNy dGM7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5k ZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKLQlpbnQgaSwgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CisJaW50 IGksIHBpcGUgPSBjcnRjLT5waXBlOwogCXVpbnQxNl90IGNvZWZmc1s5XSA9IHsgMCwgfTsKLQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNf c3RhdGUoY3J0Y19zdGF0ZSk7CiAJYm9vbCBsaW1pdGVkX2NvbG9yX3JhbmdlID0gZmFsc2U7CiAK IAkvKgpAQCAtMTQ3LDE0ICsxNDcsMTQgQEAgc3RhdGljIHZvaWQgaWxrX2xvYWRfY3NjX21hdHJp eChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJICogZG8gdGhlIHJhbmdlIGNv bXByZXNzaW9uIHVzaW5nIHRoZSBnYW1tYSBMVVQgaW5zdGVhZC4KIAkgKi8KIAlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA+PSA4IHx8IElTX0hBU1dFTEwoZGV2X3ByaXYpKQotCQlsaW1pdGVkX2Nv bG9yX3JhbmdlID0gaW50ZWxfY3J0Y19zdGF0ZS0+bGltaXRlZF9jb2xvcl9yYW5nZTsKKwkJbGlt aXRlZF9jb2xvcl9yYW5nZSA9IGNydGNfc3RhdGUtPmxpbWl0ZWRfY29sb3JfcmFuZ2U7CiAKLQlp ZiAoaW50ZWxfY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFU X1lDQkNSNDIwIHx8Ci0JICAgIGludGVsX2NydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5U RUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQ0NCkgewotCQlpbGtfbG9hZF95Y2Jjcl9jb252ZXJzaW9u X21hdHJpeChpbnRlbF9jcnRjKTsKKwlpZiAoY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBJ TlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwIHx8CisJICAgIGNydGNfc3RhdGUtPm91dHB1dF9m b3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQ0NCkgeworCQlpbGtfbG9hZF95Y2Jj cl9jb252ZXJzaW9uX21hdHJpeChjcnRjKTsKIAkJcmV0dXJuOwotCX0gZWxzZSBpZiAoY3J0Y19z dGF0ZS0+Y3RtKSB7Ci0JCXN0cnVjdCBkcm1fY29sb3JfY3RtICpjdG0gPSBjcnRjX3N0YXRlLT5j dG0tPmRhdGE7CisJfSBlbHNlIGlmIChjcnRjX3N0YXRlLT5iYXNlLmN0bSkgeworCQlzdHJ1Y3Qg ZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0ZS0+YmFzZS5jdG0tPmRhdGE7CiAJCWNvbnN0 IHU2NCAqaW5wdXQ7CiAJCXU2NCB0ZW1wWzldOwogCkBAIC0yNTMsMTYgKzI1MywxNSBAQCBzdGF0 aWMgdm9pZCBpbGtfbG9hZF9jc2NfbWF0cml4KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIC8qCiAgKiBTZXQgdXAgdGhlIHBpcGUgQ1NDIHVuaXQgb24gQ2hlcnJ5Vmlldy4KICAq Lwotc3RhdGljIHZvaWQgY2hlcnJ5dmlld19sb2FkX2NzY19tYXRyaXgoc3RydWN0IGRybV9jcnRj X3N0YXRlICpzdGF0ZSkKK3N0YXRpYyB2b2lkIGNoZXJyeXZpZXdfbG9hZF9jc2NfbWF0cml4KHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9IHN0YXRlLT5jcnRjOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7 CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2Owog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlpbnQg cGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7CisJaW50IHBpcGUgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7CiAJdWludDMyX3QgbW9kZTsKIAotCWlm IChzdGF0ZS0+Y3RtKSB7Ci0JCXN0cnVjdCBkcm1fY29sb3JfY3RtICpjdG0gPSBzdGF0ZS0+Y3Rt LT5kYXRhOworCWlmIChjcnRjX3N0YXRlLT5iYXNlLmN0bSkgeworCQlzdHJ1Y3QgZHJtX2NvbG9y X2N0bSAqY3RtID0gY3J0Y19zdGF0ZS0+YmFzZS5jdG0tPmRhdGE7CiAJCXVpbnQxNl90IGNvZWZm c1s5XSA9IHsgMCwgfTsKIAkJaW50IGk7CiAKQEAgLTI5MywxNyArMjkyLDE3IEBAIHN0YXRpYyB2 b2lkIGNoZXJyeXZpZXdfbG9hZF9jc2NfbWF0cml4KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3Rh dGUpCiAJCUk5MTVfV1JJVEUoQ0dNX1BJUEVfQ1NDX0NPRUZGOChwaXBlKSwgY29lZmZzWzhdKTsK IAl9CiAKLQltb2RlID0gKHN0YXRlLT5jdG0gPyBDR01fUElQRV9NT0RFX0NTQyA6IDApOwotCWlm ICghY3J0Y19zdGF0ZV9pc19sZWdhY3lfZ2FtbWEoc3RhdGUpKSB7Ci0JCW1vZGUgfD0gKHN0YXRl LT5kZWdhbW1hX2x1dCA/IENHTV9QSVBFX01PREVfREVHQU1NQSA6IDApIHwKLQkJCShzdGF0ZS0+ Z2FtbWFfbHV0ID8gQ0dNX1BJUEVfTU9ERV9HQU1NQSA6IDApOworCW1vZGUgPSAoY3J0Y19zdGF0 ZS0+YmFzZS5jdG0gPyBDR01fUElQRV9NT0RFX0NTQyA6IDApOworCWlmICghY3J0Y19zdGF0ZV9p c19sZWdhY3lfZ2FtbWEoY3J0Y19zdGF0ZSkpIHsKKwkJbW9kZSB8PSAoY3J0Y19zdGF0ZS0+YmFz ZS5kZWdhbW1hX2x1dCA/IENHTV9QSVBFX01PREVfREVHQU1NQSA6IDApIHwKKwkJCShjcnRjX3N0 YXRlLT5iYXNlLmdhbW1hX2x1dCA/IENHTV9QSVBFX01PREVfR0FNTUEgOiAwKTsKIAl9CiAJSTkx NV9XUklURShDR01fUElQRV9NT0RFKHBpcGUpLCBtb2RlKTsKIH0KIAotdm9pZCBpbnRlbF9jb2xv cl9zZXRfY3NjKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3ZvaWQgaW50ZWxf Y29sb3Jfc2V0X2NzYyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+Y3J0Yy0+ZGV2OworCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAKIAlpZiAoZGV2X3ByaXYt PmRpc3BsYXkubG9hZF9jc2NfbWF0cml4KQpAQCAtMzExLDE0ICszMTAsMTIgQEAgdm9pZCBpbnRl bF9jb2xvcl9zZXRfY3NjKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIH0KIAog LyogTG9hZHMgdGhlIGxlZ2FjeSBwYWxldHRlL2dhbW1hIHVuaXQgZm9yIHRoZSBDUlRDLiAqLwot c3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRj LAotCQkJCSAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IsCi0JCQkJICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQorc3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1 dHNfaW50ZXJuYWwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkJICAg IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Yyk7Ci0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOworCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpbnQgaTsKIAogCWlmIChIQVNf R01DSF9ESVNQTEFZKGRldl9wcml2KSkgewpAQCAtMzUzLDUzICszNTAsNDggQEAgc3RhdGljIHZv aWQgaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCX0KIH0K IAotc3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1dHMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQorc3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1dHMoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0JaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoY3J0Y19zdGF0ZS0+ Y3J0YywgY3J0Y19zdGF0ZS0+Z2FtbWFfbHV0LAotCQkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0 Y19zdGF0ZSkpOworCWk5eHhfbG9hZF9sdXRzX2ludGVybmFsKGNydGNfc3RhdGUsIGNydGNfc3Rh dGUtPmJhc2UuZ2FtbWFfbHV0KTsKIH0KIAogLyogTG9hZHMgdGhlIGxlZ2FjeSBwYWxldHRlL2dh bW1hIHVuaXQgZm9yIHRoZSBDUlRDIG9uIEhhc3dlbGwuICovCi1zdGF0aWMgdm9pZCBoYXN3ZWxs X2xvYWRfbHV0cyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCitzdGF0aWMgdm9p ZCBoYXN3ZWxsX2xvYWRfbHV0cyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT5jcnRjOwotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0 Y19zdGF0ZSA9Ci0JCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7CiAJYm9vbCByZWVuYWJsZV9pcHMgPSBmYWxzZTsKIAogCS8qCiAJICogV29ya2Fyb3VuZCA6 IERvIG5vdCByZWFkIG9yIHdyaXRlIHRoZSBwaXBlIHBhbGV0dGUvZ2FtbWEgZGF0YSB3aGlsZQog CSAqIEdBTU1BX01PREUgaXMgY29uZmlndXJlZCBmb3Igc3BsaXQgZ2FtbWEgYW5kIElQU19DVEwg aGFzIElQUyBlbmFibGVkLgogCSAqLwotCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBpbnRl bF9jcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCAmJgotCSAgICAoaW50ZWxfY3J0Y19zdGF0ZS0+Z2Ft bWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfU1BMSVQpKSB7Ci0JCWhzd19kaXNhYmxlX2lwcyhp bnRlbF9jcnRjX3N0YXRlKTsKKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYgY3J0Y19zdGF0 ZS0+aXBzX2VuYWJsZWQgJiYKKwkgICAgKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFf TU9ERV9NT0RFX1NQTElUKSkgeworCQloc3dfZGlzYWJsZV9pcHMoY3J0Y19zdGF0ZSk7CiAJCXJl ZW5hYmxlX2lwcyA9IHRydWU7CiAJfQogCi0JaW50ZWxfY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9 IEdBTU1BX01PREVfTU9ERV84QklUOwotCUk5MTVfV1JJVEUoR0FNTUFfTU9ERShpbnRlbF9jcnRj LT5waXBlKSwgR0FNTUFfTU9ERV9NT0RFXzhCSVQpOworCWNydGNfc3RhdGUtPmdhbW1hX21vZGUg PSBHQU1NQV9NT0RFX01PREVfOEJJVDsKKwlJOTE1X1dSSVRFKEdBTU1BX01PREUoY3J0Yy0+cGlw ZSksIEdBTU1BX01PREVfTU9ERV84QklUKTsKIAogCWk5eHhfbG9hZF9sdXRzKGNydGNfc3RhdGUp OwogCiAJaWYgKHJlZW5hYmxlX2lwcykKLQkJaHN3X2VuYWJsZV9pcHMoaW50ZWxfY3J0Y19zdGF0 ZSk7CisJCWhzd19lbmFibGVfaXBzKGNydGNfc3RhdGUpOwogfQogCi1zdGF0aWMgdm9pZCBiZHdf bG9hZF9kZWdhbW1hX2x1dChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQorc3RhdGljIHZv aWQgYmR3X2xvYWRfZGVnYW1tYV9sdXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0 ZS0+Y3J0Yy0+ZGV2KTsKLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoc3RhdGUtPmNy dGMpLT5waXBlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOwogCXVpbnQzMl90IGksIGx1dF9zaXpl ID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9yLmRlZ2FtbWFfbHV0X3NpemU7CiAKIAlJOTE1 X1dSSVRFKFBSRUNfUEFMX0lOREVYKHBpcGUpLAogCQkgICBQQUxfUFJFQ19TUExJVF9NT0RFIHwg UEFMX1BSRUNfQVVUT19JTkNSRU1FTlQpOwogCi0JaWYgKHN0YXRlLT5kZWdhbW1hX2x1dCkgewot CQlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gc3RhdGUtPmRlZ2FtbWFfbHV0LT5kYXRhOwor CWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KSB7CisJCXN0cnVjdCBkcm1fY29sb3Jf bHV0ICpsdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0LT5kYXRhOwogCiAJCWZvciAo aSA9IDA7IGkgPCBsdXRfc2l6ZTsgaSsrKSB7CiAJCQl1aW50MzJfdCB3b3JkID0KQEAgLTQxOSwx MCArNDExLDEwIEBAIHN0YXRpYyB2b2lkIGJkd19sb2FkX2RlZ2FtbWFfbHV0KHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqc3RhdGUpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBiZHdfbG9hZF9nYW1tYV9s dXQoc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwgdTMyIG9mZnNldCkKK3N0YXRpYyB2b2lk IGJkd19sb2FkX2dhbW1hX2x1dChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwg dTMyIG9mZnNldCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KHN0YXRlLT5jcnRjLT5kZXYpOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0Yyhz dGF0ZS0+Y3J0YyktPnBpcGU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJZW51bSBwaXBlIHBpcGUgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7CiAJdWludDMyX3QgaSwg bHV0X3NpemUgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZ2FtbWFfbHV0X3NpemU7CiAK IAlXQVJOX09OKG9mZnNldCAmIH5QQUxfUFJFQ19JTkRFWF9WQUxVRV9NQVNLKTsKQEAgLTQzMiw4 ICs0MjQsOCBAQCBzdGF0aWMgdm9pZCBiZHdfbG9hZF9nYW1tYV9sdXQoc3RydWN0IGRybV9jcnRj X3N0YXRlICpzdGF0ZSwgdTMyIG9mZnNldCkKIAkJICAgUEFMX1BSRUNfQVVUT19JTkNSRU1FTlQg fAogCQkgICBvZmZzZXQpOwogCi0JaWYgKHN0YXRlLT5nYW1tYV9sdXQpIHsKLQkJc3RydWN0IGRy bV9jb2xvcl9sdXQgKmx1dCA9IHN0YXRlLT5nYW1tYV9sdXQtPmRhdGE7CisJaWYgKGNydGNfc3Rh dGUtPmJhc2UuZ2FtbWFfbHV0KSB7CisJCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBjcnRj X3N0YXRlLT5iYXNlLmdhbW1hX2x1dC0+ZGF0YTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgbHV0X3Np emU7IGkrKykgewogCQkJdWludDMyX3Qgd29yZCA9CkBAIC00NjcsMjIgKzQ1OSwyMSBAQCBzdGF0 aWMgdm9pZCBiZHdfbG9hZF9nYW1tYV9sdXQoc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwg dTMyIG9mZnNldCkKIH0KIAogLyogTG9hZHMgdGhlIHBhbGV0dGUvZ2FtbWEgdW5pdCBmb3IgdGhl IENSVEMgb24gQnJvYWR3ZWxsKy4gKi8KLXN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9sb2FkX2x1dHMo c3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyB2b2lkIGJyb2Fkd2VsbF9sb2Fk X2x1dHMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+Y3J0Yy0+ZGV2KTsKLQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRl KHN0YXRlKTsKLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoc3RhdGUtPmNydGMpLT5w aXBlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOwogCi0JaWYgKGNydGNfc3RhdGVfaXNfbGVnYWN5 X2dhbW1hKHN0YXRlKSkgewotCQloYXN3ZWxsX2xvYWRfbHV0cyhzdGF0ZSk7CisJaWYgKGNydGNf c3RhdGVfaXNfbGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKSB7CisJCWhhc3dlbGxfbG9hZF9sdXRz KGNydGNfc3RhdGUpOwogCQlyZXR1cm47CiAJfQogCi0JYmR3X2xvYWRfZGVnYW1tYV9sdXQoc3Rh dGUpOwotCWJkd19sb2FkX2dhbW1hX2x1dChzdGF0ZSwKKwliZHdfbG9hZF9kZWdhbW1hX2x1dChj cnRjX3N0YXRlKTsKKwliZHdfbG9hZF9nYW1tYV9sdXQoY3J0Y19zdGF0ZSwKIAkJCSAgIElOVEVM X0lORk8oZGV2X3ByaXYpLT5jb2xvci5kZWdhbW1hX2x1dF9zaXplKTsKIAotCWludGVsX3N0YXRl LT5nYW1tYV9tb2RlID0gR0FNTUFfTU9ERV9NT0RFX1NQTElUOworCWNydGNfc3RhdGUtPmdhbW1h X21vZGUgPSBHQU1NQV9NT0RFX01PREVfU1BMSVQ7CiAJSTkxNV9XUklURShHQU1NQV9NT0RFKHBp cGUpLCBHQU1NQV9NT0RFX01PREVfU1BMSVQpOwogCVBPU1RJTkdfUkVBRChHQU1NQV9NT0RFKHBp cGUpKTsKIApAQCAtNDkzLDEwICs0ODQsMTAgQEAgc3RhdGljIHZvaWQgYnJvYWR3ZWxsX2xvYWRf bHV0cyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQogCUk5MTVfV1JJVEUoUFJFQ19QQUxf SU5ERVgocGlwZSksIDApOwogfQogCi1zdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dChz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQorc3RhdGljIHZvaWQgZ2xrX2xvYWRfZGVnYW1t YV9sdXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+Y3J0Yy0+ZGV2KTsKLQll bnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoc3RhdGUtPmNydGMpLT5waXBlOworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjLT5kZXYpOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpLT5waXBlOwogCWNvbnN0IHVpbnQzMl90IGx1dF9zaXplID0gMzM7CiAJdWludDMy X3QgaTsKIApAQCAtNTIzLDQ5ICs1MTQsNDYgQEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfZGVnYW1t YV9sdXQoc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKIAkJSTkxNV9XUklURShQUkVfQ1ND X0dBTUNfREFUQShwaXBlKSwgKDEgPDwgMTYpKTsKIH0KIAotc3RhdGljIHZvaWQgZ2xrX2xvYWRf bHV0cyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQorc3RhdGljIHZvaWQgZ2xrX2xvYWRf bHV0cyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSBzdGF0ZS0+Y3J0YzsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+ZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMt PmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfY3J0Y19z dGF0ZShzdGF0ZSk7Ci0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBl OworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp LT5waXBlOwogCi0JZ2xrX2xvYWRfZGVnYW1tYV9sdXQoc3RhdGUpOworCWdsa19sb2FkX2RlZ2Ft bWFfbHV0KGNydGNfc3RhdGUpOwogCi0JaWYgKGNydGNfc3RhdGVfaXNfbGVnYWN5X2dhbW1hKHN0 YXRlKSkgewotCQloYXN3ZWxsX2xvYWRfbHV0cyhzdGF0ZSk7CisJaWYgKGNydGNfc3RhdGVfaXNf bGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKSB7CisJCWhhc3dlbGxfbG9hZF9sdXRzKGNydGNfc3Rh dGUpOwogCQlyZXR1cm47CiAJfQogCi0JYmR3X2xvYWRfZ2FtbWFfbHV0KHN0YXRlLCAwKTsKKwli ZHdfbG9hZF9nYW1tYV9sdXQoY3J0Y19zdGF0ZSwgMCk7CiAKLQlpbnRlbF9zdGF0ZS0+Z2FtbWFf bW9kZSA9IEdBTU1BX01PREVfTU9ERV8xMEJJVDsKKwljcnRjX3N0YXRlLT5nYW1tYV9tb2RlID0g R0FNTUFfTU9ERV9NT0RFXzEwQklUOwogCUk5MTVfV1JJVEUoR0FNTUFfTU9ERShwaXBlKSwgR0FN TUFfTU9ERV9NT0RFXzEwQklUKTsKIAlQT1NUSU5HX1JFQUQoR0FNTUFfTU9ERShwaXBlKSk7CiB9 CiAKIC8qIExvYWRzIHRoZSBwYWxldHRlL2dhbW1hIHVuaXQgZm9yIHRoZSBDUlRDIG9uIENoZXJy eVZpZXcuICovCi1zdGF0aWMgdm9pZCBjaGVycnl2aWV3X2xvYWRfbHV0cyhzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKnN0YXRlKQorc3RhdGljIHZvaWQgY2hlcnJ5dmlld19sb2FkX2x1dHMoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRj ID0gc3RhdGUtPmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+ZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7CiAJ c3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dDsKIAl1aW50MzJfdCBpLCBsdXRfc2l6ZTsKIAl1aW50 MzJfdCB3b3JkMCwgd29yZDE7CiAKLQlpZiAoY3J0Y19zdGF0ZV9pc19sZWdhY3lfZ2FtbWEoc3Rh dGUpKSB7CisJaWYgKGNydGNfc3RhdGVfaXNfbGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKSB7CiAJ CS8qIFR1cm4gb2ZmIGRlZ2FtbWEvZ2FtbWEgb24gQ0dNIGJsb2NrLiAqLwogCQlJOTE1X1dSSVRF KENHTV9QSVBFX01PREUocGlwZSksCi0JCQkgICAoc3RhdGUtPmN0bSA/IENHTV9QSVBFX01PREVf Q1NDIDogMCkpOwotCQlpOXh4X2xvYWRfbHV0c19pbnRlcm5hbChjcnRjLCBzdGF0ZS0+Z2FtbWFf bHV0LAotCQkJCQl0b19pbnRlbF9jcnRjX3N0YXRlKHN0YXRlKSk7CisJCQkgICAoY3J0Y19zdGF0 ZS0+YmFzZS5jdG0gPyBDR01fUElQRV9NT0RFX0NTQyA6IDApKTsKKwkJaTl4eF9sb2FkX2x1dHNf aW50ZXJuYWwoY3J0Y19zdGF0ZSwgY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQpOwogCQlyZXR1 cm47CiAJfQogCi0JaWYgKHN0YXRlLT5kZWdhbW1hX2x1dCkgewotCQlsdXQgPSBzdGF0ZS0+ZGVn YW1tYV9sdXQtPmRhdGE7CisJaWYgKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQpIHsKKwkJ bHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dC0+ZGF0YTsKIAkJbHV0X3NpemUgPSBJ TlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZTsKIAkJZm9yIChpID0g MDsgaSA8IGx1dF9zaXplOyBpKyspIHsKIAkJCS8qIFdyaXRlIExVVCBpbiBVMC4xNCBmb3JtYXQu ICovCkBAIC01NzksOCArNTY3LDggQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19sb2FkX2x1dHMo c3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKIAkJfQogCX0KIAotCWlmIChzdGF0ZS0+Z2Ft bWFfbHV0KSB7Ci0JCWx1dCA9IHN0YXRlLT5nYW1tYV9sdXQtPmRhdGE7CisJaWYgKGNydGNfc3Rh dGUtPmJhc2UuZ2FtbWFfbHV0KSB7CisJCWx1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0 LT5kYXRhOwogCQlsdXRfc2l6ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5jb2xvci5nYW1tYV9s dXRfc2l6ZTsKIAkJZm9yIChpID0gMDsgaSA8IGx1dF9zaXplOyBpKyspIHsKIAkJCS8qIFdyaXRl IExVVCBpbiBVMC4xMCBmb3JtYXQuICovCkBAIC01OTUsMjkgKzU4MywyOCBAQCBzdGF0aWMgdm9p ZCBjaGVycnl2aWV3X2xvYWRfbHV0cyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQogCX0K IAogCUk5MTVfV1JJVEUoQ0dNX1BJUEVfTU9ERShwaXBlKSwKLQkJICAgKHN0YXRlLT5jdG0gPyBD R01fUElQRV9NT0RFX0NTQyA6IDApIHwKLQkJICAgKHN0YXRlLT5kZWdhbW1hX2x1dCA/IENHTV9Q SVBFX01PREVfREVHQU1NQSA6IDApIHwKLQkJICAgKHN0YXRlLT5nYW1tYV9sdXQgPyBDR01fUElQ RV9NT0RFX0dBTU1BIDogMCkpOworCQkgICAoY3J0Y19zdGF0ZS0+YmFzZS5jdG0gPyBDR01fUElQ RV9NT0RFX0NTQyA6IDApIHwKKwkJICAgKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQgPyBD R01fUElQRV9NT0RFX0RFR0FNTUEgOiAwKSB8CisJCSAgIChjcnRjX3N0YXRlLT5iYXNlLmdhbW1h X2x1dCA/IENHTV9QSVBFX01PREVfR0FNTUEgOiAwKSk7CiAKIAkvKgogCSAqIEFsc28gcHJvZ3Jh bSBhIGxpbmVhciBMVVQgaW4gdGhlIGxlZ2FjeSBibG9jayAoYmVoaW5kIHRoZQogCSAqIENHTSBi bG9jaykuCiAJICovCi0JaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoY3J0YywgTlVMTCwgdG9faW50 ZWxfY3J0Y19zdGF0ZShzdGF0ZSkpOworCWk5eHhfbG9hZF9sdXRzX2ludGVybmFsKGNydGNfc3Rh dGUsIE5VTEwpOwogfQogCi12b2lkIGludGVsX2NvbG9yX2xvYWRfbHV0cyhzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCit2b2lkIGludGVsX2NvbG9yX2xvYWRfbHV0cyhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Y19zdGF0ZS0+Y3J0Yy0+ZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj X3N0YXRlLT5iYXNlLmNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CiAKIAlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMoY3J0Y19z dGF0ZSk7CiB9CiAKLWludCBpbnRlbF9jb2xvcl9jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Ci0JCSAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK2ludCBpbnRlbF9j b2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNl LmNydGMtPmRldik7CiAJc2l6ZV90IGdhbW1hX2xlbmd0aCwgZGVnYW1tYV9sZW5ndGg7CiAKIAlk ZWdhbW1hX2xlbmd0aCA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5jb2xvci5kZWdhbW1hX2x1dF9z aXplOwpAQCAtNjI3LDEwICs2MTQsMTAgQEAgaW50IGludGVsX2NvbG9yX2NoZWNrKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAkgKiBXZSBhbGxvdyBib3RoIGRlZ2FtbWEgJiBnYW1tYSBsdXRzIGF0 IHRoZSByaWdodCBzaXplIG9yCiAJICogTlVMTC4KIAkgKi8KLQlpZiAoKCFjcnRjX3N0YXRlLT5k ZWdhbW1hX2x1dCB8fAotCSAgICAgZHJtX2NvbG9yX2x1dF9zaXplKGNydGNfc3RhdGUtPmRlZ2Ft bWFfbHV0KSA9PSBkZWdhbW1hX2xlbmd0aCkgJiYKLQkgICAgKCFjcnRjX3N0YXRlLT5nYW1tYV9s dXQgfHwKLQkgICAgIGRybV9jb2xvcl9sdXRfc2l6ZShjcnRjX3N0YXRlLT5nYW1tYV9sdXQpID09 IGdhbW1hX2xlbmd0aCkpCisJaWYgKCghY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCB8fAor CSAgICAgZHJtX2NvbG9yX2x1dF9zaXplKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQpID09 IGRlZ2FtbWFfbGVuZ3RoKSAmJgorCSAgICAoIWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0IHx8 CisJICAgICBkcm1fY29sb3JfbHV0X3NpemUoY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQpID09 IGdhbW1hX2xlbmd0aCkpCiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTY0MywxMSArNjMwLDExIEBA IGludCBpbnRlbF9jb2xvcl9jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJcmV0dXJuIC1F SU5WQUw7CiB9CiAKLXZvaWQgaW50ZWxfY29sb3JfaW5pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cit2b2lkIGludGVsX2NvbG9yX2luaXQoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp OwogCi0JZHJtX21vZGVfY3J0Y19zZXRfZ2FtbWFfc2l6ZShjcnRjLCAyNTYpOworCWRybV9tb2Rl X2NydGNfc2V0X2dhbW1hX3NpemUoJmNydGMtPmJhc2UsIDI1Nik7CiAKIAlpZiAoSVNfQ0hFUlJZ VklFVyhkZXZfcHJpdikpIHsKIAkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9jc2NfbWF0cml4ID0g Y2hlcnJ5dmlld19sb2FkX2NzY19tYXRyaXg7CkBAIC02NjksNyArNjU2LDcgQEAgdm9pZCBpbnRl bF9jb2xvcl9pbml0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkvKiBFbmFibGUgY29sb3IgbWFu YWdlbWVudCBzdXBwb3J0IHdoZW4gd2UgaGF2ZSBkZWdhbW1hICYgZ2FtbWEgTFVUcy4gKi8KIAlp ZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9yLmRlZ2FtbWFfbHV0X3NpemUgIT0gMCAmJgog CSAgICBJTlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZ2FtbWFfbHV0X3NpemUgIT0gMCkKLQkJ ZHJtX2NydGNfZW5hYmxlX2NvbG9yX21nbXQoY3J0YywKKwkJZHJtX2NydGNfZW5hYmxlX2NvbG9y X21nbXQoJmNydGMtPmJhc2UsCiAJCQkJCSAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5jb2xvci5k ZWdhbW1hX2x1dF9zaXplLAogCQkJCQkgICB0cnVlLAogCQkJCQkgICBJTlRFTF9JTkZPKGRldl9w cml2KS0+Y29sb3IuZ2FtbWFfbHV0X3NpemUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCmluZGV4IDk0M2Q2ODMyYjA1ZC4uMTNlNTY1MGI2ZjMxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCkBAIC01NjQxLDcgKzU2NDEsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFr ZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJICog T24gSUxLKyBMVVQgbXVzdCBiZSBsb2FkZWQgYmVmb3JlIHRoZSBwaXBlIGlzIHJ1bm5pbmcgYnV0 IHdpdGgKIAkgKiBjbG9ja3MgZW5hYmxlZAogCSAqLwotCWludGVsX2NvbG9yX2xvYWRfbHV0cygm cGlwZV9jb25maWctPmJhc2UpOworCWludGVsX2NvbG9yX2xvYWRfbHV0cyhwaXBlX2NvbmZpZyk7 CiAKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzICE9IE5VTEwpCiAJ CWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhvbGRfaW50ZWxfc3RhdGUsIHBp cGVfY29uZmlnKTsKQEAgLTU3NTIsNyArNTc1Miw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0 Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCiAJaGFzd2Vs bF9zZXRfcGlwZW1pc2MocGlwZV9jb25maWcpOwogCi0JaW50ZWxfY29sb3Jfc2V0X2NzYygmcGlw ZV9jb25maWctPmJhc2UpOworCWludGVsX2NvbG9yX3NldF9jc2MocGlwZV9jb25maWcpOwogCiAJ aW50ZWxfY3J0Yy0+YWN0aXZlID0gdHJ1ZTsKIApAQCAtNTc3MSw3ICs1NzcxLDcgQEAgc3RhdGlj IHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcsCiAJICogT24gSUxLKyBMVVQgbXVzdCBiZSBsb2FkZWQgYmVmb3JlIHRoZSBwaXBlIGlz IHJ1bm5pbmcgYnV0IHdpdGgKIAkgKiBjbG9ja3MgZW5hYmxlZAogCSAqLwotCWludGVsX2NvbG9y X2xvYWRfbHV0cygmcGlwZV9jb25maWctPmJhc2UpOworCWludGVsX2NvbG9yX2xvYWRfbHV0cyhw aXBlX2NvbmZpZyk7CiAKIAkvKgogCSAqIERpc3BsYXkgV0EgIzExNTM6IGVuYWJsZSBoYXJkd2Fy ZSB0byBieXBhc3MgdGhlIGFscGhhIG1hdGgKQEAgLTYxMTcsNyArNjExNyw3IEBAIHN0YXRpYyB2 b2lkIHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnLAogCiAJaTl4eF9zZXRfcGlwZWNvbmYocGlwZV9jb25maWcpOwogCi0JaW50ZWxfY29s b3Jfc2V0X2NzYygmcGlwZV9jb25maWctPmJhc2UpOworCWludGVsX2NvbG9yX3NldF9jc2MocGlw ZV9jb25maWcpOwogCiAJaW50ZWxfY3J0Yy0+YWN0aXZlID0gdHJ1ZTsKIApAQCAtNjEzNyw3ICs2 MTM3LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAKIAlpOXh4X3BmaXRfZW5hYmxlKHBpcGVfY29uZmln KTsKIAotCWludGVsX2NvbG9yX2xvYWRfbHV0cygmcGlwZV9jb25maWctPmJhc2UpOworCWludGVs X2NvbG9yX2xvYWRfbHV0cyhwaXBlX2NvbmZpZyk7CiAKIAlkZXZfcHJpdi0+ZGlzcGxheS5pbml0 aWFsX3dhdGVybWFya3Mob2xkX2ludGVsX3N0YXRlLAogCQkJCQkgICAgIHBpcGVfY29uZmlnKTsK QEAgLTYxOTMsNyArNjE5Myw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCiAJaTl4eF9wZml0X2VuYWJsZShwaXBl X2NvbmZpZyk7CiAKLQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMoJnBpcGVfY29uZmlnLT5iYXNlKTsK KwlpbnRlbF9jb2xvcl9sb2FkX2x1dHMocGlwZV9jb25maWcpOwogCiAJaWYgKGRldl9wcml2LT5k aXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyAhPSBOVUxMKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5p bml0aWFsX3dhdGVybWFya3Mob2xkX2ludGVsX3N0YXRlLApAQCAtMTA5NzIsNyArMTA5NzIsNyBA QCBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAl9CiAKIAlpZiAoY3J0Y19zdGF0ZS0+Y29sb3JfbWdtdF9jaGFuZ2VkKSB7Ci0JCXJldCA9 IGludGVsX2NvbG9yX2NoZWNrKGNydGMsIGNydGNfc3RhdGUpOworCQlyZXQgPSBpbnRlbF9jb2xv cl9jaGVjayhwaXBlX2NvbmZpZyk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCkBAIC0x MzU0Nyw4ICsxMzU0Nyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpZiAoIW1vZGVzZXQgJiYKIAkgICAgKGludGVsX2NzdGF0 ZS0+YmFzZS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKIAkgICAgIGludGVsX2NzdGF0ZS0+dXBkYXRl X3BpcGUpKSB7Ci0JCWludGVsX2NvbG9yX3NldF9jc2MoJmludGVsX2NzdGF0ZS0+YmFzZSk7Ci0J CWludGVsX2NvbG9yX2xvYWRfbHV0cygmaW50ZWxfY3N0YXRlLT5iYXNlKTsKKwkJaW50ZWxfY29s b3Jfc2V0X2NzYyhpbnRlbF9jc3RhdGUpOworCQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMoaW50ZWxf Y3N0YXRlKTsKIAl9CiAKIAkvKiBQZXJmb3JtIHZibGFuayBldmFzaW9uIGFyb3VuZCBjb21taXQg b3BlcmF0aW9uICovCkBAIC0xNDEyMSw3ICsxNDEyMSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0 Y19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUp CiAKIAlkcm1fY3J0Y19oZWxwZXJfYWRkKCZpbnRlbF9jcnRjLT5iYXNlLCAmaW50ZWxfaGVscGVy X2Z1bmNzKTsKIAotCWludGVsX2NvbG9yX2luaXQoJmludGVsX2NydGMtPmJhc2UpOworCWludGVs X2NvbG9yX2luaXQoaW50ZWxfY3J0Yyk7CiAKIAlXQVJOX09OKGRybV9jcnRjX2luZGV4KCZpbnRl bF9jcnRjLT5iYXNlKSAhPSBpbnRlbF9jcnRjLT5waXBlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAppbmRleCBhODE3N2NjZjFkNGYuLmQwOGYwOGY2MDdkZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKQEAgLTIzMjcsMTAgKzIzMjcsMTAgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19j aGVja193aXRoX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y18K IAkJCQkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9zdGF0ZSk7CiAKIC8qIGludGVs X2NvbG9yLmMgKi8KLXZvaWQgaW50ZWxfY29sb3JfaW5pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMp OwotaW50IGludGVsX2NvbG9yX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpzdGF0ZSk7Ci12b2lkIGludGVsX2NvbG9yX3NldF9jc2Moc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKLXZvaWQgaW50ZWxfY29sb3JfbG9hZF9sdXRzKHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cit2b2lkIGludGVsX2NvbG9yX2luaXQo c3RydWN0IGludGVsX2NydGMgKmNydGMpOworaW50IGludGVsX2NvbG9yX2NoZWNrKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKK3ZvaWQgaW50ZWxfY29sb3Jfc2V0X2NzYyhz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cit2b2lkIGludGVsX2NvbG9yX2xv YWRfbHV0cyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiAKIC8qIGludGVs X2xzcGNvbi5jICovCiBib29sIGxzcGNvbl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0KTsKLS0gCjIuMTQuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==