From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC 12/12] drm/i915: Remove I915_READ16 and I915_WRITE16 Date: Fri, 7 Jun 2019 13:08:38 +0100 Message-ID: <20190607120838.20514-13-tvrtko.ursulin@linux.intel.com> References: <20190607120838.20514-1-tvrtko.ursulin@linux.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 76B0889DBA for ; Fri, 7 Jun 2019 12:08:56 +0000 (UTC) In-Reply-To: <20190607120838.20514-1-tvrtko.ursulin@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-gfx@lists.freedesktop.org Cc: Jani Nikula List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClJlbW92ZSBj YWxsIHNpdGVzIGluIGZhdm91ciBvZiB1bmNvcmUgbW1pbyBhY2Nlc3NvcnMgYW5kIHJlbW92ZSB0 aGUgb2xkCm1hY3Jvcy4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ2J1 ZmZlci5jIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAg ICAgfCAgMzcgKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAg ICAgICB8ICAgMyAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAg fCAxMDQgKysrKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jICAgICAgICAgICAgfCAgNDAgKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgICAgICAgICAgICB8ICA5MyArKysrKysrKysrLS0tLS0tLS0KIDYgZmlsZXMgY2hhbmdl ZCwgMTYxIGluc2VydGlvbnMoKyksIDEyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggMDM3M2FmNjQ4ZTcyLi5iZTBiYTBiNzQy ZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTk4 NiwxMCArOTg2LDEwIEBAIGk4eHhfaXJxX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiBzdGF0aWMgdm9pZAogaTh4eF9pcnFfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5n aW5lLT5pOTE1OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1 OwogCi0JZGV2X3ByaXYtPmlycV9tYXNrIHw9IGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrOwotCUk5 MTVfV1JJVEUxNihHRU4yX0lNUiwgZGV2X3ByaXYtPmlycV9tYXNrKTsKKwlpOTE1LT5pcnFfbWFz ayB8PSBlbmdpbmUtPmlycV9lbmFibGVfbWFzazsKKwlpbnRlbF91bmNvcmVfd3JpdGUxNigmaTkx NS0+dW5jb3JlLCBHRU4yX0lNUiwgaTkxNS0+aXJxX21hc2spOwogfQogCiBzdGF0aWMgaW50CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGYyMTIyNDFhMjc1OC4uYTExZTA2YzIx MTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtOTk4LDYgKzk5OCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGk5MTVfZXJyb3Jfc3RhdGVfZm9w cyA9IHsKIHN0YXRpYyBpbnQgaTkxNV9mcmVxdWVuY3lfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKnVudXNlZCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBu b2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0g JmRldl9wcml2LT51bmNvcmU7CiAJc3RydWN0IGludGVsX3JwcyAqcnBzID0gJmRldl9wcml2LT5n dF9wbS5ycHM7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJaW50IHJldCA9IDA7CkBAIC0x MDA1LDggKzEwMDYsOCBAQCBzdGF0aWMgaW50IGk5MTVfZnJlcXVlbmN5X2luZm8oc3RydWN0IHNl cV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0 KGRldl9wcml2KTsKIAogCWlmIChJU19HRU4oZGV2X3ByaXYsIDUpKSB7Ci0JCXUxNiByZ3Zzd2N0 bCA9IEk5MTVfUkVBRDE2KE1FTVNXQ1RMKTsKLQkJdTE2IHJndnN0YXQgPSBJOTE1X1JFQUQxNihN RU1TVEFUX0lMSyk7CisJCXUxNiByZ3Zzd2N0bCA9IGludGVsX3VuY29yZV9yZWFkMTYodW5jb3Jl LCBNRU1TV0NUTCk7CisJCXUxNiByZ3ZzdGF0ID0gaW50ZWxfdW5jb3JlX3JlYWQxNih1bmNvcmUs IE1FTVNUQVRfSUxLKTsKIAogCQlzZXFfcHJpbnRmKG0sICJSZXF1ZXN0ZWQgUC1zdGF0ZTogJWRc biIsIChyZ3Zzd2N0bCA+PiA4KSAmIDB4Zik7CiAJCXNlcV9wcmludGYobSwgIlJlcXVlc3RlZCBW SUQ6ICVkXG4iLCByZ3Zzd2N0bCAmIDB4M2YpOwpAQCAtMTMyOCwxMyArMTMyOSwxNCBAQCBzdGF0 aWMgaW50IGk5MTVfcmVzZXRfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkK IAogc3RhdGljIGludCBpcm9ubGFrZV9kcnBjX2luZm8oc3RydWN0IHNlcV9maWxlICptKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2 YXRlKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG5vZGVfdG9faTkxNShtLT5w cml2YXRlKTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOwog CXUzMiByZ3Ztb2RlY3RsLCByc3RkYnljdGw7CiAJdTE2IGNyc3RhbmR2aWQ7CiAKLQlyZ3Ztb2Rl Y3RsID0gSTkxNV9SRUFEKE1FTU1PREVDVEwpOwotCXJzdGRieWN0bCA9IEk5MTVfUkVBRChSU1RE QllDVEwpOwotCWNyc3RhbmR2aWQgPSBJOTE1X1JFQUQxNihDUlNUQU5EVklEKTsKKwlyZ3Ztb2Rl Y3RsID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBNRU1NT0RFQ1RMKTsKKwlyc3RkYnljdGwg PSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIFJTVERCWUNUTCk7CisJY3JzdGFuZHZpZCA9IGlu dGVsX3VuY29yZV9yZWFkMTYodW5jb3JlLCBDUlNUQU5EVklEKTsKIAogCXNlcV9wcmludGYobSwg IkhEIGJvb3N0OiAlc1xuIiwgeWVzbm8ocmd2bW9kZWN0bCAmIE1FTU1PREVfQk9PU1RfRU4pKTsK IAlzZXFfcHJpbnRmKG0sICJCb29zdCBmcmVxOiAlZFxuIiwKQEAgLTE5MTcsNiArMTkxOSw3IEBA IHN0YXRpYyBjb25zdCBjaGFyICpzd2l6emxlX3N0cmluZyh1bnNpZ25lZCBzd2l6emxlKQogc3Rh dGljIGludCBpOTE1X3N3aXp6bGVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEp CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0t PnByaXZhdGUpOworCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5j b3JlOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCiAJd2FrZXJlZiA9IGludGVsX3J1bnRp bWVfcG1fZ2V0KGRldl9wcml2KTsKQEAgLTE5MjgsMzAgKzE5MzEsMzAgQEAgc3RhdGljIGludCBp OTE1X3N3aXp6bGVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAKIAlpZiAo SVNfR0VOX1JBTkdFKGRldl9wcml2LCAzLCA0KSkgewogCQlzZXFfcHJpbnRmKG0sICJEREMgPSAw eCUwOHhcbiIsCi0JCQkgICBJOTE1X1JFQUQoRENDKSk7CisJCQkgICBpbnRlbF91bmNvcmVfcmVh ZCh1bmNvcmUsIERDQykpOwogCQlzZXFfcHJpbnRmKG0sICJEREMyID0gMHglMDh4XG4iLAotCQkJ ICAgSTkxNV9SRUFEKERDQzIpKTsKKwkJCSAgIGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgREND MikpOwogCQlzZXFfcHJpbnRmKG0sICJDMERSQjMgPSAweCUwNHhcbiIsCi0JCQkgICBJOTE1X1JF QUQxNihDMERSQjMpKTsKKwkJCSAgIGludGVsX3VuY29yZV9yZWFkMTYodW5jb3JlLCBDMERSQjMp KTsKIAkJc2VxX3ByaW50ZihtLCAiQzFEUkIzID0gMHglMDR4XG4iLAotCQkJICAgSTkxNV9SRUFE MTYoQzFEUkIzKSk7CisJCQkgICBpbnRlbF91bmNvcmVfcmVhZDE2KHVuY29yZSwgQzFEUkIzKSk7 CiAJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpIHsKIAkJc2VxX3ByaW50Ziht LCAiTUFEX0RJTU1fQzAgPSAweCUwOHhcbiIsCi0JCQkgICBJOTE1X1JFQUQoTUFEX0RJTU1fQzAp KTsKKwkJCSAgIGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgTUFEX0RJTU1fQzApKTsKIAkJc2Vx X3ByaW50ZihtLCAiTUFEX0RJTU1fQzEgPSAweCUwOHhcbiIsCi0JCQkgICBJOTE1X1JFQUQoTUFE X0RJTU1fQzEpKTsKKwkJCSAgIGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgTUFEX0RJTU1fQzEp KTsKIAkJc2VxX3ByaW50ZihtLCAiTUFEX0RJTU1fQzIgPSAweCUwOHhcbiIsCi0JCQkgICBJOTE1 X1JFQUQoTUFEX0RJTU1fQzIpKTsKKwkJCSAgIGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgTUFE X0RJTU1fQzIpKTsKIAkJc2VxX3ByaW50ZihtLCAiVElMRUNUTCA9IDB4JTA4eFxuIiwKLQkJCSAg IEk5MTVfUkVBRChUSUxFQ1RMKSk7CisJCQkgICBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIFRJ TEVDVEwpKTsKIAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKIAkJCXNlcV9wcmludGYo bSwgIkdBTVRBUkJNT0RFID0gMHglMDh4XG4iLAotCQkJCSAgIEk5MTVfUkVBRChHQU1UQVJCTU9E RSkpOworCQkJCSAgIGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgR0FNVEFSQk1PREUpKTsKIAkJ ZWxzZQogCQkJc2VxX3ByaW50ZihtLCAiQVJCX01PREUgPSAweCUwOHhcbiIsCi0JCQkJICAgSTkx NV9SRUFEKEFSQl9NT0RFKSk7CisJCQkJICAgaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBBUkJf TU9ERSkpOwogCQlzZXFfcHJpbnRmKG0sICJESVNQX0FSQl9DVEwgPSAweCUwOHhcbiIsCi0JCQkg ICBJOTE1X1JFQUQoRElTUF9BUkJfQ1RMKSk7CisJCQkgICBpbnRlbF91bmNvcmVfcmVhZCh1bmNv cmUsIERJU1BfQVJCX0NUTCkpOwogCX0KIAogCWlmIChkZXZfcHJpdi0+cXVpcmtzICYgUVVJUktf UElOX1NXSVpaTEVEX1BBR0VTKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggOWYwMjA4ZTQx MGVkLi4yNjFiNjVjYWFmODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjg1Miw5ICsy ODUyLDYgQEAgZXh0ZXJuIHZvaWQgaW50ZWxfZGlzcGxheV9wcmludF9lcnJvcl9zdGF0ZShzdHJ1 Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICplLAogI2RlZmluZSBfX0k5MTVfUkVHX09QKG9w X18sIGRldl9wcml2X18sIC4uLikgXAogCWludGVsX3VuY29yZV8jI29wX18oJihkZXZfcHJpdl9f KS0+dW5jb3JlLCBfX1ZBX0FSR1NfXykKIAotI2RlZmluZSBJOTE1X1JFQUQxNihyZWdfXykJICAg X19JOTE1X1JFR19PUChyZWFkMTYsIGRldl9wcml2LCAocmVnX18pKQotI2RlZmluZSBJOTE1X1dS SVRFMTYocmVnX18sIHZhbF9fKSBfX0k5MTVfUkVHX09QKHdyaXRlMTYsIGRldl9wcml2LCAocmVn X18pLCAodmFsX18pKQotCiAjZGVmaW5lIEk5MTVfUkVBRChyZWdfXykJIF9fSTkxNV9SRUdfT1Ao cmVhZCwgZGV2X3ByaXYsIChyZWdfXykpCiAjZGVmaW5lIEk5MTVfV1JJVEUocmVnX18sIHZhbF9f KSBfX0k5MTVfUkVHX09QKHdyaXRlLCBkZXZfcHJpdiwgKHJlZ19fKSwgKHZhbF9fKSkKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggYTUyM2JmMDUwYTI1Li45Y2FmOTFk OThiMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtMTU3Niw3ICsx NTc2LDggQEAgc3RhdGljIHZvaWQgY2FwdHVyZV91Y19zdGF0ZShzdHJ1Y3QgaTkxNV9ncHVfc3Rh dGUgKmVycm9yKQogLyogQ2FwdHVyZSBhbGwgcmVnaXN0ZXJzIHdoaWNoIGRvbid0IGZpdCBpbnRv IGFub3RoZXIgY2F0ZWdvcnkuICovCiBzdGF0aWMgdm9pZCBjYXB0dXJlX3JlZ19zdGF0ZShzdHJ1 Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGVycm9yLT5pOTE1OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g ZXJyb3ItPmk5MTU7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmk5MTUtPnVuY29y ZTsKIAlpbnQgaTsKIAogCS8qIEdlbmVyYWwgb3JnYW5pemF0aW9uCkBAIC0xNTg4LDcxICsxNTg5 LDg0IEBAIHN0YXRpYyB2b2lkIGNhcHR1cmVfcmVnX3N0YXRlKHN0cnVjdCBpOTE1X2dwdV9zdGF0 ZSAqZXJyb3IpCiAJICovCiAKIAkvKiAxOiBSZWdpc3RlcnMgc3BlY2lmaWMgdG8gYSBzaW5nbGUg Z2VuZXJhdGlvbiAqLwotCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkgewotCQllcnJvci0+ Z3RpZXJbMF0gPSBJOTE1X1JFQUQoR1RJRVIpOwotCQllcnJvci0+aWVyID0gSTkxNV9SRUFEKFZM Vl9JRVIpOwotCQllcnJvci0+Zm9yY2V3YWtlID0gSTkxNV9SRUFEX0ZXKEZPUkNFV0FLRV9WTFYp OworCWlmIChJU19WQUxMRVlWSUVXKGk5MTUpKSB7CisJCWVycm9yLT5ndGllclswXSA9IGludGVs X3VuY29yZV9yZWFkKHVuY29yZSwgR1RJRVIpOworCQllcnJvci0+aWVyID0gaW50ZWxfdW5jb3Jl X3JlYWQodW5jb3JlLCBWTFZfSUVSKTsKKwkJZXJyb3ItPmZvcmNld2FrZSA9IGludGVsX3VuY29y ZV9yZWFkX2Z3KHVuY29yZSwgRk9SQ0VXQUtFX1ZMVik7CiAJfQogCi0JaWYgKElTX0dFTihkZXZf cHJpdiwgNykpCi0JCWVycm9yLT5lcnJfaW50ID0gSTkxNV9SRUFEKEdFTjdfRVJSX0lOVCk7CisJ aWYgKElTX0dFTihpOTE1LCA3KSkKKwkJZXJyb3ItPmVycl9pbnQgPSBpbnRlbF91bmNvcmVfcmVh ZCh1bmNvcmUsIEdFTjdfRVJSX0lOVCk7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4 KSB7Ci0JCWVycm9yLT5mYXVsdF9kYXRhMCA9IEk5MTVfUkVBRChHRU44X0ZBVUxUX1RMQl9EQVRB MCk7Ci0JCWVycm9yLT5mYXVsdF9kYXRhMSA9IEk5MTVfUkVBRChHRU44X0ZBVUxUX1RMQl9EQVRB MSk7CisJaWYgKElOVEVMX0dFTihpOTE1KSA+PSA4KSB7CisJCWVycm9yLT5mYXVsdF9kYXRhMCA9 IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwKKwkJCQkJCSAgICAgICBHRU44X0ZBVUxUX1RMQl9E QVRBMCk7CisJCWVycm9yLT5mYXVsdF9kYXRhMSA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwK KwkJCQkJCSAgICAgICBHRU44X0ZBVUxUX1RMQl9EQVRBMSk7CiAJfQogCi0JaWYgKElTX0dFTihk ZXZfcHJpdiwgNikpIHsKLQkJZXJyb3ItPmZvcmNld2FrZSA9IEk5MTVfUkVBRF9GVyhGT1JDRVdB S0UpOwotCQllcnJvci0+Z2FiX2N0bCA9IEk5MTVfUkVBRChHQUJfQ1RMKTsKLQkJZXJyb3ItPmdm eF9tb2RlID0gSTkxNV9SRUFEKEdGWF9NT0RFKTsKKwlpZiAoSVNfR0VOKGk5MTUsIDYpKSB7CisJ CWVycm9yLT5mb3JjZXdha2UgPSBpbnRlbF91bmNvcmVfcmVhZF9mdyh1bmNvcmUsIEZPUkNFV0FL RSk7CisJCWVycm9yLT5nYWJfY3RsID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBHQUJfQ1RM KTsKKwkJZXJyb3ItPmdmeF9tb2RlID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBHRlhfTU9E RSk7CiAJfQogCiAJLyogMjogUmVnaXN0ZXJzIHdoaWNoIGJlbG9uZyB0byBtdWx0aXBsZSBnZW5l cmF0aW9ucyAqLwotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDcpCi0JCWVycm9yLT5mb3Jj ZXdha2UgPSBJOTE1X1JFQURfRlcoRk9SQ0VXQUtFX01UKTsKKwlpZiAoSU5URUxfR0VOKGk5MTUp ID49IDcpCisJCWVycm9yLT5mb3JjZXdha2UgPSBpbnRlbF91bmNvcmVfcmVhZF9mdyh1bmNvcmUs IEZPUkNFV0FLRV9NVCk7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KSB7Ci0JCWVy cm9yLT5kZXJybXIgPSBJOTE1X1JFQUQoREVSUk1SKTsKLQkJZXJyb3ItPmVycm9yID0gSTkxNV9S RUFEKEVSUk9SX0dFTjYpOwotCQllcnJvci0+ZG9uZV9yZWcgPSBJOTE1X1JFQUQoRE9ORV9SRUcp OworCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gNikgeworCQllcnJvci0+ZGVycm1yID0gaW50ZWxf dW5jb3JlX3JlYWQodW5jb3JlLCBERVJSTVIpOworCQllcnJvci0+ZXJyb3IgPSBpbnRlbF91bmNv cmVfcmVhZCh1bmNvcmUsIEVSUk9SX0dFTjYpOworCQllcnJvci0+ZG9uZV9yZWcgPSBpbnRlbF91 bmNvcmVfcmVhZCh1bmNvcmUsIERPTkVfUkVHKTsKIAl9CiAKLQlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA1KQotCQllcnJvci0+Y2NpZCA9IEk5MTVfUkVBRChDQ0lEKFJFTkRFUl9SSU5HX0JB U0UpKTsKKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDUpCisJCWVycm9yLT5jY2lkID0gaW50ZWxf dW5jb3JlX3JlYWQodW5jb3JlLCBDQ0lEKFJFTkRFUl9SSU5HX0JBU0UpKTsKIAogCS8qIDM6IEZl YXR1cmUgc3BlY2lmaWMgcmVnaXN0ZXJzICovCi0JaWYgKElTX0dFTl9SQU5HRShkZXZfcHJpdiwg NiwgNykpIHsKLQkJZXJyb3ItPmdhbV9lY29jaGsgPSBJOTE1X1JFQUQoR0FNX0VDT0NISyk7Ci0J CWVycm9yLT5nYWNfZWNvID0gSTkxNV9SRUFEKEdBQ19FQ09fQklUUyk7CisJaWYgKElTX0dFTl9S QU5HRShpOTE1LCA2LCA3KSkgeworCQllcnJvci0+Z2FtX2Vjb2NoayA9IGludGVsX3VuY29yZV9y ZWFkKHVuY29yZSwgR0FNX0VDT0NISyk7CisJCWVycm9yLT5nYWNfZWNvID0gaW50ZWxfdW5jb3Jl X3JlYWQodW5jb3JlLCBHQUNfRUNPX0JJVFMpOwogCX0KIAogCS8qIDQ6IEV2ZXJ5dGhpbmcgZWxz ZSAqLwotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCWVycm9yLT5pZXIgPSBJ OTE1X1JFQUQoR0VOOF9ERV9NSVNDX0lFUik7Ci0JCWVycm9yLT5ndGllclswXSA9IEk5MTVfUkVB RChHRU4xMV9SRU5ERVJfQ09QWV9JTlRSX0VOQUJMRSk7Ci0JCWVycm9yLT5ndGllclsxXSA9IEk5 MTVfUkVBRChHRU4xMV9WQ1NfVkVDU19JTlRSX0VOQUJMRSk7Ci0JCWVycm9yLT5ndGllclsyXSA9 IEk5MTVfUkVBRChHRU4xMV9HVUNfU0dfSU5UUl9FTkFCTEUpOwotCQllcnJvci0+Z3RpZXJbM10g PSBJOTE1X1JFQUQoR0VOMTFfR1BNX1dHQk9YUEVSRl9JTlRSX0VOQUJMRSk7Ci0JCWVycm9yLT5n dGllcls0XSA9IEk5MTVfUkVBRChHRU4xMV9DUllQVE9fUlNWRF9JTlRSX0VOQUJMRSk7Ci0JCWVy cm9yLT5ndGllcls1XSA9IEk5MTVfUkVBRChHRU4xMV9HVU5JVF9DU01FX0lOVFJfRU5BQkxFKTsK KwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDExKSB7CisJCWVycm9yLT5pZXIgPSBpbnRlbF91bmNv cmVfcmVhZCh1bmNvcmUsIEdFTjhfREVfTUlTQ19JRVIpOworCQllcnJvci0+Z3RpZXJbMF0gPQor CQkJaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLAorCQkJCQkgIEdFTjExX1JFTkRFUl9DT1BZX0lO VFJfRU5BQkxFKTsKKwkJZXJyb3ItPmd0aWVyWzFdID0KKwkJCWludGVsX3VuY29yZV9yZWFkKHVu Y29yZSwgR0VOMTFfVkNTX1ZFQ1NfSU5UUl9FTkFCTEUpOworCQllcnJvci0+Z3RpZXJbMl0gPQor CQkJaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBHRU4xMV9HVUNfU0dfSU5UUl9FTkFCTEUpOwor CQllcnJvci0+Z3RpZXJbM10gPQorCQkJaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLAorCQkJCQkg IEdFTjExX0dQTV9XR0JPWFBFUkZfSU5UUl9FTkFCTEUpOworCQllcnJvci0+Z3RpZXJbNF0gPQor CQkJaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLAorCQkJCQkgIEdFTjExX0NSWVBUT19SU1ZEX0lO VFJfRU5BQkxFKTsKKwkJZXJyb3ItPmd0aWVyWzVdID0KKwkJCWludGVsX3VuY29yZV9yZWFkKHVu Y29yZSwKKwkJCQkJICBHRU4xMV9HVU5JVF9DU01FX0lOVFJfRU5BQkxFKTsKIAkJZXJyb3ItPm5n dGllciA9IDY7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKLQkJZXJy b3ItPmllciA9IEk5MTVfUkVBRChHRU44X0RFX01JU0NfSUVSKTsKKwl9IGVsc2UgaWYgKElOVEVM X0dFTihpOTE1KSA+PSA4KSB7CisJCWVycm9yLT5pZXIgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNv cmUsIEdFTjhfREVfTUlTQ19JRVIpOwogCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQotCQkJZXJy b3ItPmd0aWVyW2ldID0gSTkxNV9SRUFEKEdFTjhfR1RfSUVSKGkpKTsKKwkJCWVycm9yLT5ndGll cltpXSA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwKKwkJCQkJCQkgICAgR0VOOF9HVF9JRVIo aSkpOwogCQllcnJvci0+bmd0aWVyID0gNDsKLQl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2 X3ByaXYpKSB7Ci0JCWVycm9yLT5pZXIgPSBJOTE1X1JFQUQoREVJRVIpOwotCQllcnJvci0+Z3Rp ZXJbMF0gPSBJOTE1X1JFQUQoR1RJRVIpOworCX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChpOTE1 KSkgeworCQllcnJvci0+aWVyID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBERUlFUik7CisJ CWVycm9yLT5ndGllclswXSA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgR1RJRVIpOwogCQll cnJvci0+bmd0aWVyID0gMTsKLQl9IGVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgMikpIHsKLQkJ ZXJyb3ItPmllciA9IEk5MTVfUkVBRDE2KEdFTjJfSUVSKTsKLQl9IGVsc2UgaWYgKCFJU19WQUxM RVlWSUVXKGRldl9wcml2KSkgewotCQllcnJvci0+aWVyID0gSTkxNV9SRUFEKEdFTjJfSUVSKTsK Kwl9IGVsc2UgaWYgKElTX0dFTihpOTE1LCAyKSkgeworCQllcnJvci0+aWVyID0gaW50ZWxfdW5j b3JlX3JlYWQxNih1bmNvcmUsIEdFTjJfSUVSKTsKKwl9IGVsc2UgaWYgKCFJU19WQUxMRVlWSUVX KGk5MTUpKSB7CisJCWVycm9yLT5pZXIgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEdFTjJf SUVSKTsKIAl9Ci0JZXJyb3ItPmVpciA9IEk5MTVfUkVBRChFSVIpOwotCWVycm9yLT5wZ3RibF9l ciA9IEk5MTVfUkVBRChQR1RCTF9FUik7CisJZXJyb3ItPmVpciA9IGludGVsX3VuY29yZV9yZWFk KHVuY29yZSwgRUlSKTsKKwllcnJvci0+cGd0YmxfZXIgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNv cmUsIFBHVEJMX0VSKTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMKaW5kZXggMDc2M2ZmZmZlYTUzLi45NjgwZjEzNzZhYzUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYwpAQCAtMTIzMSwyMCArMTIzMSwyMyBAQCBpbnQgaW50ZWxfZ2V0X2NydGNfc2Nhbmxp bmUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIHN0YXRpYyB2b2lkIGlyb25sYWtlX3Jwc19j aGFuZ2VfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewor CXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCXUzMiBi dXN5X3VwLCBidXN5X2Rvd24sIG1heF9hdmcsIG1pbl9hdmc7CiAJdTggbmV3X2RlbGF5OwogCiAJ c3Bpbl9sb2NrKCZtY2hkZXZfbG9jayk7CiAKLQlJOTE1X1dSSVRFMTYoTUVNSU5UUlNUUywgSTkx NV9SRUFEKE1FTUlOVFJTVFMpKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUxNih1bmNvcmUsCisJCQkg ICAgIE1FTUlOVFJTVFMsCisJCQkgICAgIGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgTUVNSU5U UlNUUykpOwogCiAJbmV3X2RlbGF5ID0gZGV2X3ByaXYtPmlwcy5jdXJfZGVsYXk7CiAKLQlJOTE1 X1dSSVRFMTYoTUVNSU5UUlNUUywgTUVNSU5UX0VWQUxfQ0hHKTsKLQlidXN5X3VwID0gSTkxNV9S RUFEKFJDUFJFVkJTWVRVUEFWRyk7Ci0JYnVzeV9kb3duID0gSTkxNV9SRUFEKFJDUFJFVkJTWVRE TkFWRyk7Ci0JbWF4X2F2ZyA9IEk5MTVfUkVBRChSQ0JNQVhBVkcpOwotCW1pbl9hdmcgPSBJOTE1 X1JFQUQoUkNCTUlOQVZHKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUxNih1bmNvcmUsIE1FTUlOVFJT VFMsIE1FTUlOVF9FVkFMX0NIRyk7CisJYnVzeV91cCA9IGludGVsX3VuY29yZV9yZWFkKHVuY29y ZSwgUkNQUkVWQlNZVFVQQVZHKTsKKwlidXN5X2Rvd24gPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNv cmUsIFJDUFJFVkJTWVRETkFWRyk7CisJbWF4X2F2ZyA9IGludGVsX3VuY29yZV9yZWFkKHVuY29y ZSwgUkNCTUFYQVZHKTsKKwltaW5fYXZnID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBSQ0JN SU5BVkcpOwogCiAJLyogSGFuZGxlIFJDUyBjaGFuZ2UgcmVxdWVzdCBmcm9tIGh3ICovCiAJaWYg KGJ1c3lfdXAgPiBtYXhfYXZnKSB7CkBAIC00MzIzLDggKzQzMjYsMTAgQEAgc3RhdGljIGludCBp OHh4X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBpbnRl bF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCXUxNiBlbmFibGVfbWFzazsK IAotCUk5MTVfV1JJVEUxNihFTVIsIH4oSTkxNV9FUlJPUl9QQUdFX1RBQkxFIHwKLQkJCSAgICBJ OTE1X0VSUk9SX01FTU9SWV9SRUZSRVNIKSk7CisJaW50ZWxfdW5jb3JlX3dyaXRlMTYodW5jb3Jl LAorCQkJICAgICBFTVIsCisJCQkgICAgIH4oSTkxNV9FUlJPUl9QQUdFX1RBQkxFIHwKKwkJCSAg ICAgICBJOTE1X0VSUk9SX01FTU9SWV9SRUZSRVNIKSk7CiAKIAkvKiBVbm1hc2sgdGhlIGludGVy cnVwdHMgdGhhdCB3ZSBhbHdheXMgd2FudCBvbi4gKi8KIAlkZXZfcHJpdi0+aXJxX21hc2sgPQpA QCAtNDM1MCwxNyArNDM1NSwxOCBAQCBzdGF0aWMgaW50IGk4eHhfaXJxX3Bvc3RpbnN0YWxsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGk4eHhf ZXJyb3JfaXJxX2FjayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCitzdGF0aWMg dm9pZCBpOHh4X2Vycm9yX2lycV9hY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJ CQkgICAgICAgdTE2ICplaXIsIHUxNiAqZWlyX3N0dWNrKQogeworCXN0cnVjdCBpbnRlbF91bmNv cmUgKnVuY29yZSA9ICZpOTE1LT51bmNvcmU7CiAJdTE2IGVtcjsKIAotCSplaXIgPSBJOTE1X1JF QUQxNihFSVIpOworCSplaXIgPSBpbnRlbF91bmNvcmVfcmVhZDE2KHVuY29yZSwgRUlSKTsKIAog CWlmICgqZWlyKQotCQlJOTE1X1dSSVRFMTYoRUlSLCAqZWlyKTsKKwkJaW50ZWxfdW5jb3JlX3dy aXRlMTYodW5jb3JlLCBFSVIsICplaXIpOwogCi0JKmVpcl9zdHVjayA9IEk5MTVfUkVBRDE2KEVJ Uik7CisJKmVpcl9zdHVjayA9IGludGVsX3VuY29yZV9yZWFkMTYodW5jb3JlLCBFSVIpOwogCWlm ICgqZWlyX3N0dWNrID09IDApCiAJCXJldHVybjsKIApAQCAtNDM3NCw5ICs0MzgwLDkgQEAgc3Rh dGljIHZvaWQgaTh4eF9lcnJvcl9pcnFfYWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkgKiAob3IgYnkgYSBHUFUgcmVzZXQpIHNvIHdlIG1hc2sgYW55IGJpdCB0aGF0CiAJ ICogcmVtYWlucyBzZXQuCiAJICovCi0JZW1yID0gSTkxNV9SRUFEMTYoRU1SKTsKLQlJOTE1X1dS SVRFMTYoRU1SLCAweGZmZmYpOwotCUk5MTVfV1JJVEUxNihFTVIsIGVtciB8ICplaXJfc3R1Y2sp OworCWVtciA9IGludGVsX3VuY29yZV9yZWFkMTYodW5jb3JlLCBFTVIpOworCWludGVsX3VuY29y ZV93cml0ZTE2KHVuY29yZSwgRU1SLCAweGZmZmYpOworCWludGVsX3VuY29yZV93cml0ZTE2KHVu Y29yZSwgRU1SLCBlbXIgfCAqZWlyX3N0dWNrKTsKIH0KIAogc3RhdGljIHZvaWQgaTh4eF9lcnJv cl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC00NDQy LDcgKzQ0NDgsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaTh4eF9pcnFfaGFuZGxlcihpbnQgaXJx LCB2b2lkICphcmcpCiAJCXUxNiBlaXIgPSAwLCBlaXJfc3R1Y2sgPSAwOwogCQl1MTYgaWlyOwog Ci0JCWlpciA9IEk5MTVfUkVBRDE2KEdFTjJfSUlSKTsKKwkJaWlyID0gaW50ZWxfdW5jb3JlX3Jl YWQxNigmZGV2X3ByaXYtPnVuY29yZSwgR0VOMl9JSVIpOwogCQlpZiAoaWlyID09IDApCiAJCQli cmVhazsKIApAQCAtNDQ1NSw3ICs0NDYxLDcgQEAgc3RhdGljIGlycXJldHVybl90IGk4eHhfaXJx X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCQlpZiAoaWlyICYgSTkxNV9NQVNURVJfRVJS T1JfSU5URVJSVVBUKQogCQkJaTh4eF9lcnJvcl9pcnFfYWNrKGRldl9wcml2LCAmZWlyLCAmZWly X3N0dWNrKTsKIAotCQlJOTE1X1dSSVRFMTYoR0VOMl9JSVIsIGlpcik7CisJCWludGVsX3VuY29y ZV93cml0ZTE2KCZkZXZfcHJpdi0+dW5jb3JlLCBHRU4yX0lJUiwgaWlyKTsKIAogCQlpZiAoaWly ICYgSTkxNV9VU0VSX0lOVEVSUlVQVCkKIAkJCWludGVsX2VuZ2luZV9icmVhZGNydW1ic19pcnEo ZGV2X3ByaXYtPmVuZ2luZVtSQ1MwXSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCA1YTY2 NzllMmI2ZWUuLjJjN2YzZWJjMDExNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0xOTEs OCArMTkxLDggQEAgc3RhdGljIHZvaWQgaTkxNV9pcm9ubGFrZV9nZXRfbWVtX2ZyZXEoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXUxNiBkZHJwbGwsIGNzaXBsbDsKIAot CWRkcnBsbCA9IEk5MTVfUkVBRDE2KEREUk1QTEwxKTsKLQljc2lwbGwgPSBJOTE1X1JFQUQxNihD U0lQTEwwKTsKKwlkZHJwbGwgPSBpbnRlbF91bmNvcmVfcmVhZDE2KCZkZXZfcHJpdi0+dW5jb3Jl LCBERFJNUExMMSk7CisJY3NpcGxsID0gaW50ZWxfdW5jb3JlX3JlYWQxNigmZGV2X3ByaXYtPnVu Y29yZSwgQ1NJUExMMCk7CiAKIAlzd2l0Y2ggKGRkcnBsbCAmIDB4ZmYpIHsKIAljYXNlIDB4YzoK QEAgLTY0MzIsMjYgKzY0MzIsMjcgQEAgYm9vbCBpcm9ubGFrZV9zZXRfZHJwcyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTggdmFsKQogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lbmFi bGVfZHJwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CisJc3RydWN0IGlu dGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7CiAJdTMyIHJndm1vZGVjdGw7 CiAJdTggZm1heCwgZm1pbiwgZnN0YXJ0LCB2c3RhcnQ7CiAKIAlzcGluX2xvY2tfaXJxKCZtY2hk ZXZfbG9jayk7CiAKLQlyZ3Ztb2RlY3RsID0gSTkxNV9SRUFEKE1FTU1PREVDVEwpOworCXJndm1v ZGVjdGwgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIE1FTU1PREVDVEwpOwogCiAJLyogRW5h YmxlIHRlbXAgcmVwb3J0aW5nICovCi0JSTkxNV9XUklURTE2KFBNTUlTQywgSTkxNV9SRUFEKFBN TUlTQykgfCBNQ1BQQ0VfRU4pOwotCUk5MTVfV1JJVEUxNihUU0MxLCBJOTE1X1JFQUQoVFNDMSkg fCBUU0UpOworCWludGVsX3VuY29yZV93cml0ZTE2KHVuY29yZSwgUE1NSVNDLCBJOTE1X1JFQUQo UE1NSVNDKSB8IE1DUFBDRV9FTik7CisJaW50ZWxfdW5jb3JlX3dyaXRlMTYodW5jb3JlLCBUU0Mx LCBJOTE1X1JFQUQoVFNDMSkgfCBUU0UpOwogCiAJLyogMTAwbXMgUkMgZXZhbHVhdGlvbiBpbnRl cnZhbHMgKi8KLQlJOTE1X1dSSVRFKFJDVVBFSSwgMTAwMDAwKTsKLQlJOTE1X1dSSVRFKFJDRE5F SSwgMTAwMDAwKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBSQ1VQRUksIDEwMDAwMCk7 CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgUkNETkVJLCAxMDAwMDApOwogCiAJLyogU2V0 IG1heC9taW4gdGhyZXNob2xkcyB0byA5MG1zIGFuZCA4MG1zIHJlc3BlY3RpdmVseSAqLwotCUk5 MTVfV1JJVEUoUkNCTUFYQVZHLCA5MDAwMCk7Ci0JSTkxNV9XUklURShSQ0JNSU5BVkcsIDgwMDAw KTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBSQ0JNQVhBVkcsIDkwMDAwKTsKKwlpbnRl bF91bmNvcmVfd3JpdGUodW5jb3JlLCBSQ0JNSU5BVkcsIDgwMDAwKTsKIAotCUk5MTVfV1JJVEUo TUVNSUhZU1QsIDEpOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIE1FTUlIWVNULCAxKTsK IAogCS8qIFNldCB1cCBtaW4sIG1heCwgYW5kIGN1ciBmb3IgaW50ZXJydXB0IGhhbmRsaW5nICov CiAJZm1heCA9IChyZ3Ztb2RlY3RsICYgTUVNTU9ERV9GTUFYX01BU0spID4+IE1FTU1PREVfRk1B WF9TSElGVDsKQEAgLTY0NTksOCArNjQ2MCw4IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2VuYWJs ZV9kcnBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlmc3RhcnQgPSAocmd2 bW9kZWN0bCAmIE1FTU1PREVfRlNUQVJUX01BU0spID4+CiAJCU1FTU1PREVfRlNUQVJUX1NISUZU OwogCi0JdnN0YXJ0ID0gKEk5MTVfUkVBRChQWFZGUkVRKGZzdGFydCkpICYgUFhWRlJFUV9QWF9N QVNLKSA+PgotCQlQWFZGUkVRX1BYX1NISUZUOworCXZzdGFydCA9IChpbnRlbF91bmNvcmVfcmVh ZCh1bmNvcmUsIFBYVkZSRVEoZnN0YXJ0KSkgJgorCQkgIFBYVkZSRVFfUFhfTUFTSykgPj4gUFhW RlJFUV9QWF9TSElGVDsKIAogCWRldl9wcml2LT5pcHMuZm1heCA9IGZtYXg7IC8qIElQUyBjYWxs YmFjayB3aWxsIGluY3JlYXNlIHRoaXMgKi8KIAlkZXZfcHJpdi0+aXBzLmZzdGFydCA9IGZzdGFy dDsKQEAgLTY0NzIsNTMgKzY0NzMsNjYgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX2Ry cHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCURSTV9ERUJVR19EUklWRVIo ImZtYXg6ICVkLCBmbWluOiAlZCwgZnN0YXJ0OiAlZFxuIiwKIAkJCSBmbWF4LCBmbWluLCBmc3Rh cnQpOwogCi0JSTkxNV9XUklURShNRU1JTlRSRU4sIE1FTUlOVF9DWF9TVVBSX0VOIHwgTUVNSU5U X0VWQUxfQ0hHX0VOKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAorCQkJICAgTUVNSU5U UkVOLAorCQkJICAgTUVNSU5UX0NYX1NVUFJfRU4gfCBNRU1JTlRfRVZBTF9DSEdfRU4pOwogCiAJ LyoKIAkgKiBJbnRlcnJ1cHRzIHdpbGwgYmUgZW5hYmxlZCBpbiBpcm9ubGFrZV9pcnFfcG9zdGlu c3RhbGwKIAkgKi8KIAotCUk5MTVfV1JJVEUoVklEU1RBUlQsIHZzdGFydCk7Ci0JUE9TVElOR19S RUFEKFZJRFNUQVJUKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBWSURTVEFSVCwgdnN0 YXJ0KTsKKwlpbnRlbF91bmNvcmVfcG9zdGluZ19yZWFkKHVuY29yZSwgVklEU1RBUlQpOwogCiAJ cmd2bW9kZWN0bCB8PSBNRU1NT0RFX1NXTU9ERV9FTjsKLQlJOTE1X1dSSVRFKE1FTU1PREVDVEws IHJndm1vZGVjdGwpOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIE1FTU1PREVDVEwsIHJn dm1vZGVjdGwpOwogCi0JaWYgKHdhaXRfZm9yX2F0b21pYygoSTkxNV9SRUFEKE1FTVNXQ1RMKSAm IE1FTUNUTF9DTURfU1RTKSA9PSAwLCAxMCkpCisJaWYgKHdhaXRfZm9yX2F0b21pYygoaW50ZWxf dW5jb3JlX3JlYWQodW5jb3JlLCBNRU1TV0NUTCkgJgorCQkJICAgICBNRU1DVExfQ01EX1NUUykg PT0gMCwgMTApKQogCQlEUk1fRVJST1IoInN0dWNrIHRyeWluZyB0byBjaGFuZ2UgcGVyZiBtb2Rl XG4iKTsKIAltZGVsYXkoMSk7CiAKIAlpcm9ubGFrZV9zZXRfZHJwcyhkZXZfcHJpdiwgZnN0YXJ0 KTsKIAotCWRldl9wcml2LT5pcHMubGFzdF9jb3VudDEgPSBJOTE1X1JFQUQoRE1JRUMpICsKLQkJ STkxNV9SRUFEKEREUkVDKSArIEk5MTVfUkVBRChDU0lFQyk7CisJZGV2X3ByaXYtPmlwcy5sYXN0 X2NvdW50MSA9CisJCWludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgRE1JRUMpICsKKwkJaW50ZWxf dW5jb3JlX3JlYWQodW5jb3JlLCBERFJFQykgKworCQlpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUs IENTSUVDKTsKIAlkZXZfcHJpdi0+aXBzLmxhc3RfdGltZTEgPSBqaWZmaWVzX3RvX21zZWNzKGpp ZmZpZXMpOwotCWRldl9wcml2LT5pcHMubGFzdF9jb3VudDIgPSBJOTE1X1JFQUQoR0ZYRUMpOwor CWRldl9wcml2LT5pcHMubGFzdF9jb3VudDIgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEdG WEVDKTsKIAlkZXZfcHJpdi0+aXBzLmxhc3RfdGltZTIgPSBrdGltZV9nZXRfcmF3X25zKCk7CiAK IAlzcGluX3VubG9ja19pcnEoJm1jaGRldl9sb2NrKTsKIH0KIAotc3RhdGljIHZvaWQgaXJvbmxh a2VfZGlzYWJsZV9kcnBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRp YyB2b2lkIGlyb25sYWtlX2Rpc2FibGVfZHJwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKIHsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOwogCXUx NiByZ3Zzd2N0bDsKIAogCXNwaW5fbG9ja19pcnEoJm1jaGRldl9sb2NrKTsKIAotCXJndnN3Y3Rs ID0gSTkxNV9SRUFEMTYoTUVNU1dDVEwpOworCXJndnN3Y3RsID0gaW50ZWxfdW5jb3JlX3JlYWQx Nih1bmNvcmUsIE1FTVNXQ1RMKTsKIAogCS8qIEFjayBpbnRlcnJ1cHRzLCBkaXNhYmxlIEVGQyBp bnRlcnJ1cHQgKi8KLQlJOTE1X1dSSVRFKE1FTUlOVFJFTiwgSTkxNV9SRUFEKE1FTUlOVFJFTikg JiB+TUVNSU5UX0VWQUxfQ0hHX0VOKTsKLQlJOTE1X1dSSVRFKE1FTUlOVFJTVFMsIE1FTUlOVF9F VkFMX0NIRyk7Ci0JSTkxNV9XUklURShERUlFUiwgSTkxNV9SRUFEKERFSUVSKSAmIH5ERV9QQ1Vf RVZFTlQpOwotCUk5MTVfV1JJVEUoREVJSVIsIERFX1BDVV9FVkVOVCk7Ci0JSTkxNV9XUklURShE RUlNUiwgSTkxNV9SRUFEKERFSU1SKSB8IERFX1BDVV9FVkVOVCk7CisJaW50ZWxfdW5jb3JlX3dy aXRlKHVuY29yZSwKKwkJCSAgIE1FTUlOVFJFTiwKKwkJCSAgIGludGVsX3VuY29yZV9yZWFkKHVu Y29yZSwgTUVNSU5UUkVOKSAmCisJCQkgICB+TUVNSU5UX0VWQUxfQ0hHX0VOKTsKKwlpbnRlbF91 bmNvcmVfd3JpdGUodW5jb3JlLCBNRU1JTlRSU1RTLCBNRU1JTlRfRVZBTF9DSEcpOworCWludGVs X3VuY29yZV93cml0ZSh1bmNvcmUsCisJCQkgICBERUlFUiwKKwkJCSAgIGludGVsX3VuY29yZV9y ZWFkKHVuY29yZSwgREVJRVIpICYgfkRFX1BDVV9FVkVOVCk7CisJaW50ZWxfdW5jb3JlX3dyaXRl KHVuY29yZSwgREVJSVIsIERFX1BDVV9FVkVOVCk7CisJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29y ZSwKKwkJCSAgIERFSU1SLAorCQkJICAgaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBERUlNUikg fCBERV9QQ1VfRVZFTlQpOwogCiAJLyogR28gYmFjayB0byB0aGUgc3RhcnRpbmcgZnJlcXVlbmN5 ICovCi0JaXJvbmxha2Vfc2V0X2RycHMoZGV2X3ByaXYsIGRldl9wcml2LT5pcHMuZnN0YXJ0KTsK Kwlpcm9ubGFrZV9zZXRfZHJwcyhpOTE1LCBpOTE1LT5pcHMuZnN0YXJ0KTsKIAltZGVsYXkoMSk7 CiAJcmd2c3djdGwgfD0gTUVNQ1RMX0NNRF9TVFM7Ci0JSTkxNV9XUklURShNRU1TV0NUTCwgcmd2 c3djdGwpOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIE1FTVNXQ1RMLCByZ3Zzd2N0bCk7 CiAJbWRlbGF5KDEpOwogCiAJc3Bpbl91bmxvY2tfaXJxKCZtY2hkZXZfbG9jayk7CkBAIC05NTA0 LDE2ICs5NTE4LDIxIEBAIHN0YXRpYyB2b2lkIGc0eF9pbml0X2Nsb2NrX2dhdGluZyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyB2b2lkIGk5NjVnbV9pbml0X2Ns b2NrX2dhdGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JSTkxNV9X UklURShSRU5DTEtfR0FURV9EMSwgSTk2NV9SQ0NfQ0xPQ0tfR0FURV9ESVNBQkxFKTsKLQlJOTE1 X1dSSVRFKFJFTkNMS19HQVRFX0QyLCAwKTsKLQlJOTE1X1dSSVRFKERTUENMS19HQVRFX0QsIDAp OwotCUk5MTVfV1JJVEUoUkFNQ0xLX0dBVEVfRCwgMCk7Ci0JSTkxNV9XUklURTE2KERFVUMsIDAp OwotCUk5MTVfV1JJVEUoTUlfQVJCX1NUQVRFLAotCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUoTUlf QVJCX0RJU1BMQVlfVFJJQ0tMRV9GRUVEX0RJU0FCTEUpKTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3Jl ICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKKworCWludGVsX3VuY29yZV93cml0ZSh1bmNv cmUsIFJFTkNMS19HQVRFX0QxLCBJOTY1X1JDQ19DTE9DS19HQVRFX0RJU0FCTEUpOworCWludGVs X3VuY29yZV93cml0ZSh1bmNvcmUsIFJFTkNMS19HQVRFX0QyLCAwKTsKKwlpbnRlbF91bmNvcmVf d3JpdGUodW5jb3JlLCBEU1BDTEtfR0FURV9ELCAwKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5j b3JlLCBSQU1DTEtfR0FURV9ELCAwKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUxNih1bmNvcmUsIERF VUMsIDApOworCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCisJCQkgICBNSV9BUkJfU1RBVEUs CisJCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUoTUlfQVJCX0RJU1BMQVlfVFJJQ0tMRV9GRUVEX0RJ U0FCTEUpKTsKIAogCS8qIFdhRGlzYWJsZV9SZW5kZXJDYWNoZV9PcGVyYXRpb25hbEZsdXNoOmdl bjQgKi8KLQlJOTE1X1dSSVRFKENBQ0hFX01PREVfMCwgX01BU0tFRF9CSVRfRElTQUJMRShSQ19P UF9GTFVTSF9FTkFCTEUpKTsKKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAorCQkJICAgQ0FD SEVfTU9ERV8wLAorCQkJICAgX01BU0tFRF9CSVRfRElTQUJMRShSQ19PUF9GTFVTSF9FTkFCTEUp KTsKIH0KIAogc3RhdGljIHZvaWQgaTk2NWdfaW5pdF9jbG9ja19nYXRpbmcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=