From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915: Defer enabling rc6 til after we submit the first batch/context Date: Wed, 25 May 2016 18:07:58 +0100 Message-ID: <1464196078-31694-1-git-send-email-chris@chris-wilson.co.uk> References: <1464188291-25769-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 55F816E9CC for ; Wed, 25 May 2016 17:08:06 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id q62so17464210wmg.3 for ; Wed, 25 May 2016 10:08:06 -0700 (PDT) In-Reply-To: <1464188291-25769-1-git-send-email-chris@chris-wilson.co.uk> 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: Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org U29tZSBoYXJkd2FyZSByZXF1aXJlcyBhIHZhbGlkIHJlbmRlciBjb250ZXh0IGJlZm9yZSBpdCBj YW4gaW5pdGlhdGUKcmM2IHBvd2VyIGdhdGluZyBvZiB0aGUgR1BVOyB0aGUgZGVmYXVsdCBzdGF0 ZSBvZiB0aGUgR1BVIGlzIG5vdApzdWZmaWNpZW50IGFuZCBtYXkgbGVhZCB0byB1bmRlZmluZWQg YmVoYXZpb3VyLiBUaGUgZmlyc3QgZXhlY3V0aW9uIG9mCmFueSBiYXRjaCB3aWxsIGxvYWQgdGhl ICJnb2xkZW4gcmVuZGVyIHN0YXRlIiwgYXQgd2hpY2ggcG9pbnQgaXQgaXMgc2FmZQp0byBlbmFi bGUgcmM2LgoKVGhlIG1ham9yIGRvd25zaWRlIGlzIHRoYXQgcmM2IGlzIHRoZW4gbm90IGVuYWJs ZWQgKHRoZSBHUFUgaXMgbGVmdCBhdApsb3cgZnJlcXVlbmN5KSB1bnRpbCB1c2Vyc3BhY2UgZXhl Y3V0ZXMuIFRoZSBjb3VudGVyIGFyZ3VtZW50IGlzIHRoYXQKd2l0aG91dCB0aGUgZHJpdmVyLCB0 aGUgaGFyZHdhcmUgd291bGQgYmUgbGVmdCBvdXQgb2YgcmM2IChidXQgdGhpcyBpcyBhCmxlc3Nl ciBvZiB0d28gZXZpbHMgYXJndW1lbnQpLiBTdGlsbCwgaWYgc29tZW9uZSBub3RpY2VzLi4uCgpU aGUgZml4IGlzIGFzIGJlZm9yZSB0byBzY2hlZHVsZSBhIGRlbGF5ZWQgYmF0Y2ggdGhhdCBzd2l0 Y2hlcyB0byBrZXJuZWwKY29udGV4dCBhbmQgZW1pdHMgdGhlIGdvbGRlbiBzdGF0ZS4gVGhlIHN1 Ym1pc3Npb24gd2lsbCB0aGVuIGVuYWJsZSByYzYuCgp2MjogUmVhcnJhbmdlIGludGVsX2Rpc2Fi bGVfZ3RfcG93ZXJzYXZlKCkgdG8gbWF0Y2guCnYzOiBBcHBseSB1c2VyIHNwZWNpZmllZCBjdXJf ZnJlcSAob3IgaWRsZV9mcmVxIGlmIG5vdCBzZXQpLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1 b3BwYWxhQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgIHwg IDEyIC0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgIHwgICAyIC0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3N5c2ZzLmMgICAgfCAgMTIgLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o ICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCAxNjEg KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3VuY29yZS5jICB8ICAgMiArLQogOCBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25z KCspLCAxMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRl eCA2MTVjZWY3MzYzNTYuLmFlMDk3YzVkMmI1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKQEAgLTExOTMsOCArMTE5Myw2IEBAIHN0YXRpYyBpbnQgaTkxNV9mcmVxdWVuY3lfaW5m byhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAogCWludGVsX3J1bnRpbWVfcG1f Z2V0KGRldl9wcml2KTsKIAotCWZsdXNoX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPnJwcy5kZWxh eWVkX3Jlc3VtZV93b3JrKTsKLQogCWlmIChJU19HRU41KGRldikpIHsKIAkJdTE2IHJndnN3Y3Rs ID0gSTkxNV9SRUFEMTYoTUVNU1dDVEwpOwogCQl1MTYgcmd2c3RhdCA9IEk5MTVfUkVBRDE2KE1F TVNUQVRfSUxLKTsKQEAgLTE4ODEsOCArMTg3OSw2IEBAIHN0YXRpYyBpbnQgaTkxNV9yaW5nX2Zy ZXFfdGFibGUoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAKIAlpbnRlbF9ydW50 aW1lX3BtX2dldChkZXZfcHJpdik7CiAKLQlmbHVzaF9kZWxheWVkX3dvcmsoJmRldl9wcml2LT5y cHMuZGVsYXllZF9yZXN1bWVfd29yayk7Ci0KIAlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGli bGUoJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CkBAIC00 OTc1LDggKzQ5NzEsNiBAQCBpOTE1X21heF9mcmVxX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbCkK IAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA2KQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWZs dXNoX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPnJwcy5kZWxheWVkX3Jlc3VtZV93b3JrKTsKLQog CXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsK IAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpAQCAtNDk5OCw4ICs0OTkyLDYgQEAgaTkxNV9tYXhf ZnJlcV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4g PCA2KQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWZsdXNoX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYt PnJwcy5kZWxheWVkX3Jlc3VtZV93b3JrKTsKLQogCURSTV9ERUJVR19EUklWRVIoIk1hbnVhbGx5 IHNldHRpbmcgbWF4IGZyZXEgdG8gJWxsdVxuIiwgdmFsKTsKIAogCXJldCA9IG11dGV4X2xvY2tf aW50ZXJydXB0aWJsZSgmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKQEAgLTUwNDIsOCArNTAzNCw2 IEBAIGk5MTVfbWluX2ZyZXFfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQogCWlmIChJTlRFTF9J TkZPKGRldiktPmdlbiA8IDYpCiAJCXJldHVybiAtRU5PREVWOwogCi0JZmx1c2hfZGVsYXllZF93 b3JrKCZkZXZfcHJpdi0+cnBzLmRlbGF5ZWRfcmVzdW1lX3dvcmspOwotCiAJcmV0ID0gbXV0ZXhf bG9ja19pbnRlcnJ1cHRpYmxlKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwogCWlmIChyZXQpCiAJ CXJldHVybiByZXQ7CkBAIC01MDY1LDggKzUwNTUsNiBAQCBpOTE1X21pbl9mcmVxX3NldCh2b2lk ICpkYXRhLCB1NjQgdmFsKQogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDYpCiAJCXJldHVy biAtRU5PREVWOwogCi0JZmx1c2hfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+cnBzLmRlbGF5ZWRf cmVzdW1lX3dvcmspOwotCiAJRFJNX0RFQlVHX0RSSVZFUigiTWFudWFsbHkgc2V0dGluZyBtaW4g ZnJlcSB0byAlbGx1XG4iLCB2YWwpOwogCiAJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxl KCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggOTQz ZDdiMjIyZmQ0Li42ZjY4NWI2NjU4NjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMTY3 NSw4ICsxNjc1LDYgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2 aWNlICpkZXZpY2UpCiAJaWYgKCFJU19WQUxMRVlWSUVXKGRldl9wcml2KSAmJiAhSVNfQ0hFUlJZ VklFVyhkZXZfcHJpdikpCiAJCWludGVsX2hwZF9pbml0KGRldl9wcml2KTsKIAotCWludGVsX2Vu YWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwotCiAJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2Vy dHMoZGV2X3ByaXYpOwogCiAJaWYgKHJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGI5 ZDlhNDIwNTk5Mi4uNWZlZDAzNzA5N2M4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTEx NjEsNyArMTE2MSw2IEBAIHN0cnVjdCBpbnRlbF9nZW42X3Bvd2VyX21nbXQgewogCWJvb2wgY2xp ZW50X2Jvb3N0OwogCiAJYm9vbCBlbmFibGVkOwotCXN0cnVjdCBkZWxheWVkX3dvcmsgZGVsYXll ZF9yZXN1bWVfd29yazsKIAl1bnNpZ25lZCBib29zdHM7CiAKIAlzdHJ1Y3QgaW50ZWxfcnBzX2Ns aWVudCBzZW1hcGhvcmVzLCBtbWlvZmxpcHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3N5c2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKaW5k ZXggYTZlOTBmZTA1YTFlLi42NzljM2Q1NGJkOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc3lzZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2Zz LmMKQEAgLTI3MSw4ICsyNzEsNiBAQCBzdGF0aWMgc3NpemVfdCBndF9hY3RfZnJlcV9taHpfc2hv dyhzdHJ1Y3QgZGV2aWNlICprZGV2LAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJaW50IHJldDsKIAotCWZsdXNoX2RlbGF5ZWRfd29yaygm ZGV2X3ByaXYtPnJwcy5kZWxheWVkX3Jlc3VtZV93b3JrKTsKLQogCWludGVsX3J1bnRpbWVfcG1f Z2V0KGRldl9wcml2KTsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CkBA IC0zMDUsOCArMzAzLDYgQEAgc3RhdGljIHNzaXplX3QgZ3RfY3VyX2ZyZXFfbWh6X3Nob3coc3Ry dWN0IGRldmljZSAqa2RldiwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCWludCByZXQ7CiAKLQlmbHVzaF9kZWxheWVkX3dvcmsoJmRldl9w cml2LT5ycHMuZGVsYXllZF9yZXN1bWVfd29yayk7Ci0KIAlpbnRlbF9ydW50aW1lX3BtX2dldChk ZXZfcHJpdik7CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwpAQCAtMzM3 LDggKzMzMyw2IEBAIHN0YXRpYyBzc2l6ZV90IGd0X21heF9mcmVxX21oel9zaG93KHN0cnVjdCBk ZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlpbnQgcmV0OwogCi0JZmx1c2hf ZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+cnBzLmRlbGF5ZWRfcmVzdW1lX3dvcmspOwotCiAJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKIAlyZXQgPSBpbnRlbF9ncHVfZnJlcShk ZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5tYXhfZnJlcV9zb2Z0bGltaXQpOwogCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKQEAgLTM2MCw4ICszNTQsNiBAQCBzdGF0aWMgc3Np emVfdCBndF9tYXhfZnJlcV9taHpfc3RvcmUoc3RydWN0IGRldmljZSAqa2RldiwKIAlpZiAocmV0 KQogCQlyZXR1cm4gcmV0OwogCi0JZmx1c2hfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+cnBzLmRl bGF5ZWRfcmVzdW1lX3dvcmspOwotCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwog CiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKQEAgLTQwNSw4ICszOTcsNiBA QCBzdGF0aWMgc3NpemVfdCBndF9taW5fZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJaW50IHJldDsKIAotCWZsdXNoX2RlbGF5ZWRfd29y aygmZGV2X3ByaXYtPnJwcy5kZWxheWVkX3Jlc3VtZV93b3JrKTsKLQogCW11dGV4X2xvY2soJmRl dl9wcml2LT5ycHMuaHdfbG9jayk7CiAJcmV0ID0gaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIGRl dl9wcml2LT5ycHMubWluX2ZyZXFfc29mdGxpbWl0KTsKIAltdXRleF91bmxvY2soJmRldl9wcml2 LT5ycHMuaHdfbG9jayk7CkBAIC00MjgsOCArNDE4LDYgQEAgc3RhdGljIHNzaXplX3QgZ3RfbWlu X2ZyZXFfbWh6X3N0b3JlKHN0cnVjdCBkZXZpY2UgKmtkZXYsCiAJaWYgKHJldCkKIAkJcmV0dXJu IHJldDsKIAotCWZsdXNoX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPnJwcy5kZWxheWVkX3Jlc3Vt ZV93b3JrKTsKLQogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKIAogCW11dGV4X2xv Y2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKaW5kZXggOWNjZDc2Njk5ZjQ4Li5lMDI0YWQ0MjIzMzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKQEAgLTEwOTA5LDYgKzEwOTA5LDcgQEAgdm9pZCBpbnRlbF9tYXJrX2J1 c3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXR1cm47CiAKIAlpbnRl bF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CisJaW50ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShk ZXZfcHJpdik7CiAJaTkxNV91cGRhdGVfZ2Z4X3ZhbChkZXZfcHJpdik7CiAJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gNikKIAkJZ2VuNl9ycHNfYnVzeShkZXZfcHJpdik7CkBAIC0xNTM2NSw3 ICsxNTM2Niw2IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJZGV2X3ByaXYtPmF0b21pY19jZGNsa19mcmVxID0gZGV2X3ByaXYtPmNkY2xrX2Zy ZXE7CiAKIAlpbnRlbF9pbml0X2Nsb2NrX2dhdGluZyhkZXYpOwotCWludGVsX2VuYWJsZV9ndF9w b3dlcnNhdmUoZGV2X3ByaXYpOwogfQogCiAvKgpAQCAtMTYxNDgsNiArMTYxNDgsNyBAQCB2b2lk IGludGVsX21vZGVzZXRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCisJaW50ZWxfc3VzcGVuZF9ndF9wb3dlcnNhdmUo ZGV2X3ByaXYpOwogCWludGVsX2Rpc2FibGVfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKIAogCWlu dGVsX2JhY2tsaWdodF91bnJlZ2lzdGVyKGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmlu ZGV4IDliNWY2NjM0YzU1OC4uNGQyY2YyZDdkZjE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aApAQCAtMTY0MSw2ICsxNjQxLDcgQEAgdm9pZCBpbnRlbF9ncHVfaXBzX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfZ3B1X2lwc190ZWFyZG93bih2 b2lkKTsKIHZvaWQgaW50ZWxfaW5pdF9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfY2xlYW51cF9ndF9wb3dlcnNhdmUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaW50ZWxfc2FuaXRpemVfZ3RfcG93ZXJz YXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX2VuYWJs ZV9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQg aW50ZWxfZGlzYWJsZV9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKIHZvaWQgaW50ZWxfc3VzcGVuZF9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IGI2ZGZkMDI2NDk1 MC4uNTczNGYyZjJiMDVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTQ5NTQsNiArNDk1 NCw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfaW5pdF9ycHNfZnJlcXVlbmNpZXMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCX0KIAogCWRldl9wcml2LT5ycHMuaWRsZV9mcmVxID0g ZGV2X3ByaXYtPnJwcy5taW5fZnJlcTsKKwlkZXZfcHJpdi0+cnBzLmN1cl9mcmVxID0gZGV2X3By aXYtPnJwcy5pZGxlX2ZyZXE7CiAKIAkvKiBQcmVzZXJ2ZSBtaW4vbWF4IHNldHRpbmdzIGluIGNh c2Ugb2YgcmUtaW5pdCAqLwogCWlmIChkZXZfcHJpdi0+cnBzLm1heF9mcmVxX3NvZnRsaW1pdCA9 PSAwKQpAQCAtNDk3Myw2ICs0OTc0LDggQEAgc3RhdGljIHZvaWQgZ2VuNl9pbml0X3Jwc19mcmVx dWVuY2llcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAvKiBTZWUgdGhlIEdl bjlfR1RfUE1fUHJvZ3JhbW1pbmdfR3VpZGUgZG9jIGZvciB0aGUgYmVsb3cgKi8KIHN0YXRpYyB2 b2lkIGdlbjlfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7 CisJdTggZnJlcTsKKwogCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LCBGT1JD RVdBS0VfQUxMKTsKIAogCWdlbjZfaW5pdF9ycHNfZnJlcXVlbmNpZXMoZGV2X3ByaXYpOwpAQCAt NTAwNiw4ICs1MDA5LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjlfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJLyogTGVhbmluZyBvbiB0aGUgYmVsb3cgY2FsbCB0 byBnZW42X3NldF9ycHMgdG8gcHJvZ3JhbS9zZXR1cCB0aGUKIAkgKiBVcC9Eb3duIEVJICYgdGhy ZXNob2xkIHJlZ2lzdGVycywgYXMgd2VsbCBhcyB0aGUgUlBfQ09OVFJPTCwKIAkgKiBSUF9JTlRF UlJVUFRfTElNSVRTICYgUlBOU1dSRVEgcmVnaXN0ZXJzICovCi0JZGV2X3ByaXYtPnJwcy5wb3dl ciA9IEhJR0hfUE9XRVI7IC8qIGZvcmNlIGEgcmVzZXQgKi8KLQlnZW42X3NldF9ycHMoZGV2X3By aXYsIGRldl9wcml2LT5ycHMuaWRsZV9mcmVxKTsKKwlmcmVxID0gZGV2X3ByaXYtPnJwcy5jdXJf ZnJlcTsgLyogZm9yY2UgYSByZXNldCAqLworCWRldl9wcml2LT5ycHMucG93ZXIgPSAtMTsKKwlk ZXZfcHJpdi0+cnBzLmN1cl9mcmVxID0gLTE7CisJZ2VuNl9zZXRfcnBzKGRldl9wcml2LCBmcmVx KTsKIAogCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxM KTsKIH0KQEAgLTUwODMsNiArNTA4OCw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfZW5hYmxlX3Jwcyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOwogCXVpbnQzMl90IHJjNl9tYXNrID0gMDsKKwl1OCBmcmVxOwogCiAJLyog MWE6IFNvZnR3YXJlIFJDIHN0YXRlIC0gUkMwICovCiAJSTkxNV9XUklURShHRU42X1JDX1NUQVRF LCAwKTsKQEAgLTUxNTMsOCArNTE1OSwxMCBAQCBzdGF0aWMgdm9pZCBnZW44X2VuYWJsZV9ycHMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJLyogNjogUmluZyBmcmVxdWVu Y3kgKyBvdmVyY2xvY2tpbmcgKG91ciBkcml2ZXIgZG9lcyB0aGlzIGxhdGVyICovCiAKLQlkZXZf cHJpdi0+cnBzLnBvd2VyID0gSElHSF9QT1dFUjsgLyogZm9yY2UgYSByZXNldCAqLwotCWdlbjZf c2V0X3JwcyhkZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5pZGxlX2ZyZXEpOworCWZyZXEgPSBkZXZf cHJpdi0+cnBzLmN1cl9mcmVxOyAvKiBmb3JjZSBhIHJlc2V0ICovCisJZGV2X3ByaXYtPnJwcy5w b3dlciA9IC0xOworCWRldl9wcml2LT5ycHMuY3VyX2ZyZXEgPSAtMTsKKwlnZW42X3NldF9ycHMo ZGV2X3ByaXYsIGZyZXEpOwogCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYs IEZPUkNFV0FLRV9BTEwpOwogfQpAQCAtNTE2NSw2ICs1MTczLDcgQEAgc3RhdGljIHZvaWQgZ2Vu Nl9lbmFibGVfcnBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAl1MzIgcmM2 dmlkcywgcGN1X21ib3ggPSAwLCByYzZfbWFzayA9IDA7CiAJdTMyIGd0Zmlmb2RiZzsKIAlpbnQg cmM2X21vZGU7CisJdTggZnJlcTsKIAlpbnQgcmV0OwogCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9j a2VkKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spKTsKQEAgLTUyNDcsOCArNTI1NiwxMCBAQCBzdGF0 aWMgdm9pZCBnZW42X2VuYWJsZV9ycHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCQlkZXZfcHJpdi0+cnBzLm1heF9mcmVxID0gcGN1X21ib3ggJiAweGZmOwogCX0KIAotCWRl dl9wcml2LT5ycHMucG93ZXIgPSBISUdIX1BPV0VSOyAvKiBmb3JjZSBhIHJlc2V0ICovCi0JZ2Vu Nl9zZXRfcnBzKGRldl9wcml2LCBkZXZfcHJpdi0+cnBzLmlkbGVfZnJlcSk7CisJZnJlcSA9IGRl dl9wcml2LT5ycHMuY3VyX2ZyZXE7IC8qIGZvcmNlIGEgcmVzZXQgKi8KKwlkZXZfcHJpdi0+cnBz LnBvd2VyID0gLTE7CisJZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSA9IC0xOworCWdlbjZfc2V0X3Jw cyhkZXZfcHJpdiwgZnJlcSk7CiAKIAlyYzZ2aWRzID0gMDsKIAlyZXQgPSBzYW5keWJyaWRnZV9w Y29kZV9yZWFkKGRldl9wcml2LCBHRU42X1BDT0RFX1JFQURfUkM2VklEUywgJnJjNnZpZHMpOwpA QCAtNTYxMiw2ICs1NjIzLDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19pbml0X2d0X3Bvd2Vy c2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQkgZGV2X3ByaXYtPnJw cy5taW5fZnJlcSk7CiAKIAlkZXZfcHJpdi0+cnBzLmlkbGVfZnJlcSA9IGRldl9wcml2LT5ycHMu bWluX2ZyZXE7CisJZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSA9IGRldl9wcml2LT5ycHMuaWRsZV9m cmVxOwogCiAJLyogUHJlc2VydmUgbWluL21heCBzZXR0aW5ncyBpbiBjYXNlIG9mIHJlLWluaXQg Ki8KIAlpZiAoZGV2X3ByaXYtPnJwcy5tYXhfZnJlcV9zb2Z0bGltaXQgPT0gMCkKQEAgLTU2NzYs NiArNTY4OCw3IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfaW5pdF9ndF9wb3dlcnNhdmUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkgICJPZGQgR1BVIGZyZXEgdmFsdWVz XG4iKTsKIAogCWRldl9wcml2LT5ycHMuaWRsZV9mcmVxID0gZGV2X3ByaXYtPnJwcy5taW5fZnJl cTsKKwlkZXZfcHJpdi0+cnBzLmN1cl9mcmVxID0gZGV2X3ByaXYtPnJwcy5pZGxlX2ZyZXE7CiAK IAkvKiBQcmVzZXJ2ZSBtaW4vbWF4IHNldHRpbmdzIGluIGNhc2Ugb2YgcmUtaW5pdCAqLwogCWlm IChkZXZfcHJpdi0+cnBzLm1heF9mcmVxX3NvZnRsaW1pdCA9PSAwKQpAQCAtNTY5Niw2ICs1NzA5 LDcgQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19lbmFibGVfcnBzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJ dTMyIGd0Zmlmb2RiZywgdmFsLCByYzZfbW9kZSA9IDAsIHBjYnI7CisJdTggZnJlcTsKIAogCVdB Uk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPnJwcy5od19sb2NrKSk7CiAKQEAgLTU3 ODQsNyArNTc5OCwxMCBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2VuYWJsZV9ycHMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJIGludGVsX2dwdV9mcmVxKGRldl9wcml2 LCBkZXZfcHJpdi0+cnBzLmlkbGVfZnJlcSksCiAJCQkgZGV2X3ByaXYtPnJwcy5pZGxlX2ZyZXEp OwogCi0JdmFsbGV5dmlld19zZXRfcnBzKGRldl9wcml2LCBkZXZfcHJpdi0+cnBzLmlkbGVfZnJl cSk7CisJZnJlcSA9IGRldl9wcml2LT5ycHMuY3VyX2ZyZXE7IC8qIGZvcmNlIGEgcmVzZXQgKi8K KwlkZXZfcHJpdi0+cnBzLnBvd2VyID0gLTE7CisJZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSA9IC0x OworCXZhbGxleXZpZXdfc2V0X3JwcyhkZXZfcHJpdiwgZnJlcSk7CiAKIAlpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX3B1dChkZXZfcHJpdiwgRk9SQ0VXQUtFX0FMTCk7CiB9CkBAIC01NzkzLDYgKzU4 MTAsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsK IAl1MzIgZ3RmaWZvZGJnLCB2YWwsIHJjNl9tb2RlID0gMDsKKwl1OCBmcmVxOwogCiAJV0FSTl9P TighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spKTsKIApAQCAtNTg2NCwx NiArNTg4MiwxMCBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCURSTV9ERUJVR19EUklWRVIoIkdQTEwgZW5hYmxl ZD8gJXNcbiIsIHllc25vKHZhbCAmIEdQTExFTkFCTEUpKTsKIAlEUk1fREVCVUdfRFJJVkVSKCJH UFUgc3RhdHVzOiAweCUwOHhcbiIsIHZhbCk7CiAKLQlkZXZfcHJpdi0+cnBzLmN1cl9mcmVxID0g KHZhbCA+PiA4KSAmIDB4ZmY7Ci0JRFJNX0RFQlVHX0RSSVZFUigiY3VycmVudCBHUFUgZnJlcTog JWQgTUh6ICgldSlcbiIsCi0JCQkgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIGRldl9wcml2LT5y cHMuY3VyX2ZyZXEpLAotCQkJIGRldl9wcml2LT5ycHMuY3VyX2ZyZXEpOwotCi0JRFJNX0RFQlVH X0RSSVZFUigic2V0dGluZyBHUFUgZnJlcSB0byAlZCBNSHogKCV1KVxuIiwKLQkJCSBpbnRlbF9n cHVfZnJlcShkZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5pZGxlX2ZyZXEpLAotCQkJIGRldl9wcml2 LT5ycHMuaWRsZV9mcmVxKTsKLQotCXZhbGxleXZpZXdfc2V0X3JwcyhkZXZfcHJpdiwgZGV2X3By aXYtPnJwcy5pZGxlX2ZyZXEpOworCWZyZXEgPSBkZXZfcHJpdi0+cnBzLmN1cl9mcmVxOyAvKiBm b3JjZSBhIHJlc2V0ICovCisJZGV2X3ByaXYtPnJwcy5wb3dlciA9IC0xOworCWRldl9wcml2LT5y cHMuY3VyX2ZyZXEgPSAtMTsKKwl2YWxsZXl2aWV3X3NldF9ycHMoZGV2X3ByaXYsIGZyZXEpOwog CiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwog fQpAQCAtNjM4NywxMyArNjM5OSw2IEBAIHZvaWQgaW50ZWxfY2xlYW51cF9ndF9wb3dlcnNhdmUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlpbnRlbF9ydW50aW1lX3BtX3B1 dChkZXZfcHJpdik7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjZfc3VzcGVuZF9ycHMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWZsdXNoX2RlbGF5ZWRfd29yaygmZGV2X3By aXYtPnJwcy5kZWxheWVkX3Jlc3VtZV93b3JrKTsKLQotCWdlbjZfZGlzYWJsZV9ycHNfaW50ZXJy dXB0cyhkZXZfcHJpdik7Ci19Ci0KIC8qKgogICogaW50ZWxfc3VzcGVuZF9ndF9wb3dlcnNhdmUg LSBzdXNwZW5kIFBNIHdvcmsgYW5kIGhlbHBlciB0aHJlYWRzCiAgKiBAZGV2X3ByaXY6IGk5MTUg ZGV2aWNlCkBAIC02NDA3LDUwICs2NDEyLDYzIEBAIHZvaWQgaW50ZWxfc3VzcGVuZF9ndF9wb3dl cnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpIDwgNikKIAkJcmV0dXJuOwogCi0JZ2VuNl9zdXNwZW5kX3JwcyhkZXZfcHJpdik7 CisJZ2VuNl9kaXNhYmxlX3Jwc19pbnRlcnJ1cHRzKGRldl9wcml2KTsKIAogCS8qIEZvcmNlIEdQ VSB0byBtaW4gZnJlcSBkdXJpbmcgc3VzcGVuZCAqLwogCWdlbjZfcnBzX2lkbGUoZGV2X3ByaXYp OwogfQogCit2b2lkIGludGVsX3Nhbml0aXplX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJZGV2X3ByaXYtPnJwcy5lbmFibGVkID0gdHJ1ZTsgLyog Zm9yY2UgZGlzYWJsaW5nICovCisJaW50ZWxfZGlzYWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYp OworCisJZ2VuNl9yZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7Cit9CisKIHZvaWQgaW50 ZWxfZGlzYWJsZV9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogewotCWlmIChJU19JUk9OTEFLRV9NKGRldl9wcml2KSkgewotCQlpcm9ubGFrZV9kaXNhYmxl X2RycHMoZGV2X3ByaXYpOwotCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+ PSA2KSB7Ci0JCWludGVsX3N1c3BlbmRfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKKwlpZiAoIVJF QURfT05DRShkZXZfcHJpdi0+cnBzLmVuYWJsZWQpKQorCQlyZXR1cm47CiAKLQkJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKLQkJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5n ZW4gPj0gOSkgewotCQkJZ2VuOV9kaXNhYmxlX3JjNihkZXZfcHJpdik7Ci0JCQlnZW45X2Rpc2Fi bGVfcnBzKGRldl9wcml2KTsKLQkJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkK LQkJCWNoZXJyeXZpZXdfZGlzYWJsZV9ycHMoZGV2X3ByaXYpOwotCQllbHNlIGlmIChJU19WQUxM RVlWSUVXKGRldl9wcml2KSkKLQkJCXZhbGxleXZpZXdfZGlzYWJsZV9ycHMoZGV2X3ByaXYpOwot CQllbHNlCi0JCQlnZW42X2Rpc2FibGVfcnBzKGRldl9wcml2KTsKKwltdXRleF9sb2NrKCZkZXZf cHJpdi0+cnBzLmh3X2xvY2spOwogCi0JCWRldl9wcml2LT5ycHMuZW5hYmxlZCA9IGZhbHNlOwot CQltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CisJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gOSkgeworCQlnZW45X2Rpc2FibGVfcmM2KGRldl9wcml2KTsKKwkJZ2VuOV9k aXNhYmxlX3JwcyhkZXZfcHJpdik7CisJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2 KSkgeworCQljaGVycnl2aWV3X2Rpc2FibGVfcnBzKGRldl9wcml2KTsKKwl9IGVsc2UgaWYgKElT X1ZBTExFWVZJRVcoZGV2X3ByaXYpKSB7CisJCXZhbGxleXZpZXdfZGlzYWJsZV9ycHMoZGV2X3By aXYpOworCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KSB7CisJCWdlbjZfZGlz YWJsZV9ycHMoZGV2X3ByaXYpOworCX0gIGVsc2UgaWYgKElTX0lST05MQUtFX00oZGV2X3ByaXYp KSB7CisJCWlyb25sYWtlX2Rpc2FibGVfZHJwcyhkZXZfcHJpdik7CiAJfQorCisJZGV2X3ByaXYt PnJwcy5lbmFibGVkID0gZmFsc2U7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xv Y2spOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9nZW42X3Bvd2Vyc2F2ZV93b3JrKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKK3ZvaWQgaW50ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0KLQkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRl LAotCQkJICAgICBycHMuZGVsYXllZF9yZXN1bWVfd29yay53b3JrKTsKKwkvKiBXZSBzaG91bGRu J3QgYmUgZGlzYWJsaW5nIGFzIHdlIHN1Ym1pdCwgc28gdGhpcyBzaG91bGQgYmUgbGVzcworCSAq IHJhY3kgdGhhbiBpdCBhcHBlYXJzIQorCSAqLworCWlmIChSRUFEX09OQ0UoZGV2X3ByaXYtPnJw cy5lbmFibGVkKSkKKwkJcmV0dXJuOwogCi0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19s b2NrKTsKKwkvKiBQb3dlcnNhdmluZyBpcyBjb250cm9sbGVkIGJ5IHRoZSBob3N0IHdoZW4gaW5z aWRlIGEgVk0gKi8KKwlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoZGV2X3ByaXYpKQorCQlyZXR1cm47 CiAKLQlnZW42X3Jlc2V0X3Jwc19pbnRlcnJ1cHRzKGRldl9wcml2KTsKKwltdXRleF9sb2NrKCZk ZXZfcHJpdi0+cnBzLmh3X2xvY2spOwogCiAJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7 CiAJCWNoZXJyeXZpZXdfZW5hYmxlX3JwcyhkZXZfcHJpdik7CiAJfSBlbHNlIGlmIChJU19WQUxM RVlWSUVXKGRldl9wcml2KSkgewogCQl2YWxsZXl2aWV3X2VuYWJsZV9ycHMoZGV2X3ByaXYpOwot CX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA5KSB7CisJfSBlbHNlIGlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKIAkJZ2VuOV9lbmFibGVfcmM2KGRldl9wcml2 KTsKIAkJZ2VuOV9lbmFibGVfcnBzKGRldl9wcml2KTsKIAkJaWYgKElTX1NLWUxBS0UoZGV2X3By aXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKQEAgLTY0NTgsOSArNjQ3NiwxMiBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9nZW42X3Bvd2Vyc2F2ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKIAkJZ2VuOF9lbmFibGVf cnBzKGRldl9wcml2KTsKIAkJX19nZW42X3VwZGF0ZV9yaW5nX2ZyZXEoZGV2X3ByaXYpOwotCX0g ZWxzZSB7CisJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpIHsKIAkJZ2VuNl9l bmFibGVfcnBzKGRldl9wcml2KTsKIAkJX19nZW42X3VwZGF0ZV9yaW5nX2ZyZXEoZGV2X3ByaXYp OworCX0gZWxzZSBpZiAoSVNfSVJPTkxBS0VfTShkZXZfcHJpdikpIHsKKwkJaXJvbmxha2VfZW5h YmxlX2RycHMoZGV2X3ByaXYpOworCQlpbnRlbF9pbml0X2Vtb24oZGV2X3ByaXYpOwogCX0KIAog CVdBUk5fT04oZGV2X3ByaXYtPnJwcy5tYXhfZnJlcSA8IGRldl9wcml2LT5ycHMubWluX2ZyZXEp OwpAQCAtNjQ2OSw0MyArNjQ5MCwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9nZW42X3Bvd2Vyc2F2 ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlXQVJOX09OKGRldl9wcml2LT5ycHMu ZWZmaWNpZW50X2ZyZXEgPCBkZXZfcHJpdi0+cnBzLm1pbl9mcmVxKTsKIAlXQVJOX09OKGRldl9w cml2LT5ycHMuZWZmaWNpZW50X2ZyZXEgPiBkZXZfcHJpdi0+cnBzLm1heF9mcmVxKTsKIAotCWRl dl9wcml2LT5ycHMuZW5hYmxlZCA9IHRydWU7Ci0KLQlnZW42X2VuYWJsZV9ycHNfaW50ZXJydXB0 cyhkZXZfcHJpdik7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikKKwkJZ2VuNl9lbmFi bGVfcnBzX2ludGVycnVwdHMoZGV2X3ByaXYpOwogCisJZGV2X3ByaXYtPnJwcy5lbmFibGVkID0g dHJ1ZTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Ci0KLQlpbnRlbF9y dW50aW1lX3BtX3B1dChkZXZfcHJpdik7Ci19Ci0KLXZvaWQgaW50ZWxfZW5hYmxlX2d0X3Bvd2Vy c2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0JLyogUG93ZXJzYXZp bmcgaXMgY29udHJvbGxlZCBieSB0aGUgaG9zdCB3aGVuIGluc2lkZSBhIFZNICovCi0JaWYgKGlu dGVsX3ZncHVfYWN0aXZlKGRldl9wcml2KSkKLQkJcmV0dXJuOwotCi0JaWYgKElTX0lST05MQUtF X00oZGV2X3ByaXYpKSB7Ci0JCWlyb25sYWtlX2VuYWJsZV9kcnBzKGRldl9wcml2KTsKLQkJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKLQkJaW50ZWxfaW5pdF9lbW9u KGRldl9wcml2KTsKLQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgp OwotCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA2KSB7Ci0JCS8qCi0J CSAqIFBDVSBjb21tdW5pY2F0aW9uIGlzIHNsb3cgYW5kIHRoaXMgZG9lc24ndCBuZWVkIHRvIGJl Ci0JCSAqIGRvbmUgYXQgYW55IHNwZWNpZmljIHRpbWUsIHNvIGRvIHRoaXMgb3V0IG9mIG91ciBm YXN0IHBhdGgKLQkJICogdG8gbWFrZSByZXN1bWUgYW5kIGluaXQgZmFzdGVyLgotCQkgKgotCQkg KiBXZSBkZXBlbmQgb24gdGhlIEhXIFJDNiBwb3dlciBjb250ZXh0IHNhdmUvcmVzdG9yZQotCQkg KiBtZWNoYW5pc20gd2hlbiBlbnRlcmluZyBEMyB0aHJvdWdoIHJ1bnRpbWUgUE0gc3VzcGVuZC4g U28KLQkJICogZGlzYWJsZSBSUE0gdW50aWwgUlBTL1JDNiBpcyBwcm9wZXJseSBzZXR1cC4gV2Ug Y2FuIG9ubHkKLQkJICogZ2V0IGhlcmUgdmlhIHRoZSBkcml2ZXIgbG9hZC9zeXN0ZW0gcmVzdW1l L3J1bnRpbWUgcmVzdW1lCi0JCSAqIHBhdGhzLCBzbyB0aGUgX25vcmVzdW1lIHZlcnNpb24gaXMg ZW5vdWdoIChhbmQgaW4gY2FzZSBvZgotCQkgKiBydW50aW1lIHJlc3VtZSBpdCdzIG5lY2Vzc2Fy eSkuCi0JCSAqLwotCQlpZiAoc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+cnBzLmRl bGF5ZWRfcmVzdW1lX3dvcmssCi0JCQkJCSAgIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUoSFop KSkKLQkJCWludGVsX3J1bnRpbWVfcG1fZ2V0X25vcmVzdW1lKGRldl9wcml2KTsKLQl9CiB9CiAK IHZvaWQgaW50ZWxfcmVzZXRfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKQEAgLTY1MTMsNyArNjUwMiw3IEBAIHZvaWQgaW50ZWxfcmVzZXRfZ3RfcG93ZXJz YXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAoSU5URUxfSU5GTyhk ZXZfcHJpdiktPmdlbiA8IDYpCiAJCXJldHVybjsKIAotCWdlbjZfc3VzcGVuZF9ycHMoZGV2X3By aXYpOworCWdlbjZfZGlzYWJsZV9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7CiAJZGV2X3ByaXYt PnJwcy5lbmFibGVkID0gZmFsc2U7CiB9CiAKQEAgLTc1NzksOCArNzU2OCw2IEBAIHZvaWQgaW50 ZWxfcG1fc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAltdXRleF9pbml0KCZkZXZfcHJp di0+cnBzLmh3X2xvY2spOwogCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+cnBzLmNsaWVudF9s b2NrKTsKIAotCUlOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+cnBzLmRlbGF5ZWRfcmVzdW1l X3dvcmssCi0JCQkgIGludGVsX2dlbjZfcG93ZXJzYXZlX3dvcmspOwogCUlOSVRfTElTVF9IRUFE KCZkZXZfcHJpdi0+cnBzLmNsaWVudHMpOwogCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+cnBz LnNlbWFwaG9yZXMubGluayk7CiAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5ycHMubW1pb2Zs aXBzLmxpbmspOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3Jl LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwppbmRleCBjMWNhNDU4ZDY4 OGUuLjFjN2FlOWRkOGNhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf dW5jb3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKQEAgLTQz NSw3ICs0MzUsNyBAQCB2b2lkIGludGVsX3VuY29yZV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJaTkxNS5lbmFibGVfcmM2ID0gc2FuaXRpemVfcmM2X29wdGlv bihkZXZfcHJpdiwgaTkxNS5lbmFibGVfcmM2KTsKIAogCS8qIEJJT1Mgb2Z0ZW4gbGVhdmVzIFJD NiBlbmFibGVkLCBidXQgZGlzYWJsZSBpdCBmb3IgaHcgaW5pdCAqLwotCWludGVsX2Rpc2FibGVf Z3RfcG93ZXJzYXZlKGRldl9wcml2KTsKKwlpbnRlbF9zYW5pdGl6ZV9ndF9wb3dlcnNhdmUoZGV2 X3ByaXYpOwogfQogCiBzdGF0aWMgdm9pZCBfX2ludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLS0gCjIuOC4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK