From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 18/32] drm/i915: Use HWS for seqno tracking everywhere Date: Fri, 11 Dec 2015 11:33:14 +0000 Message-ID: <1449833608-22125-19-git-send-email-chris@chris-wilson.co.uk> References: <1449833608-22125-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 fireflyinternet.com (mail.fireflyinternet.com [87.106.93.118]) by gabe.freedesktop.org (Postfix) with ESMTP id 424686EDD2 for ; Fri, 11 Dec 2015 03:34:24 -0800 (PST) In-Reply-To: <1449833608-22125-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 List-Id: intel-gfx@lists.freedesktop.org QnkgdXNpbmcgdGhlIHNhbWUgYWRkcmVzcyBmb3Igc3RvcmluZyB0aGUgSFdTIG9uIGV2ZXJ5IHBs YXRmb3JtLCB3ZSBjYW4KcmVtb3ZlIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyB2ZnVuY3MgYW5kIHJl ZHVjZSB0aGUgZ2V0LXNlcW5vIHJvdXRpbmUgdG8KYSBzaW5nbGUgcmVhZCBvZiBhIGNhY2hlZCBt ZW1vcnkgbG9jYXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgIHwgMTAgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICB8 ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgIHwgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgfCAgNCArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jICAgICAgICAgfCA0NiArKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICB8IDg2ICsrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggIHwgIDcg Ky0tCiA5IGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDEyMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDg4NjBkZWMzNmFhZS4uYTAzZWQ5 ZTM4NDk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtNjAwLDcgKzYwMCw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcGFnZWZsaXBfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKmRhdGEpCiAJCQkJCSAgIHJpbmctPm5hbWUsCiAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVl c3RfZ2V0X3NlcW5vKHdvcmstPmZsaXBfcXVldWVkX3JlcSksCiAJCQkJCSAgIGRldl9wcml2LT5u ZXh0X3NlcW5vLAotCQkJCQkgICByaW5nLT5nZXRfc2Vxbm8ocmluZyksCisJCQkJCSAgIGludGVs X3JpbmdfZ2V0X3NlcW5vKHJpbmcpLAogCQkJCQkgICBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRl ZCh3b3JrLT5mbGlwX3F1ZXVlZF9yZXEpKTsKIAkJCX0gZWxzZQogCQkJCXNlcV9wcmludGYobSwg IkZsaXAgbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgcmluZ1xuIik7CkBAIC03MzIsMTAgKzczMiw4 IEBAIHN0YXRpYyB2b2lkIGk5MTVfcmluZ19zZXFub19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwK IHsKIAlzdHJ1Y3QgcmJfbm9kZSAqcmI7CiAKLQlpZiAocmluZy0+Z2V0X3NlcW5vKSB7Ci0JCXNl cV9wcmludGYobSwgIkN1cnJlbnQgc2VxdWVuY2UgKCVzKTogJXhcbiIsCi0JCQkgICByaW5nLT5u YW1lLCByaW5nLT5nZXRfc2Vxbm8ocmluZykpOwotCX0KKwlzZXFfcHJpbnRmKG0sICJDdXJyZW50 IHNlcXVlbmNlICglcyk6ICV4XG4iLAorCQkgICByaW5nLT5uYW1lLCBpbnRlbF9yaW5nX2dldF9z ZXFubyhyaW5nKSk7CiAKIAlzcGluX2xvY2soJnJpbmctPmJyZWFkY3J1bWJzLmxvY2spOwogCWZv ciAocmIgPSByYl9maXJzdCgmcmluZy0+YnJlYWRjcnVtYnMucmVxdWVzdHMpOwpAQCAtMTM1NCw3 ICsxMzUyLDcgQEAgc3RhdGljIGludCBpOTE1X2hhbmdjaGVja19pbmZvKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqdW51c2VkKQogCiAJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkg ewogCQlhY3RoZFtpXSA9IGludGVsX3JpbmdfZ2V0X2FjdGl2ZV9oZWFkKHJpbmcpOwotCQlzZXFu b1tpXSA9IHJpbmctPmdldF9zZXFubyhyaW5nKTsKKwkJc2Vxbm9baV0gPSBpbnRlbF9yaW5nX2dl dF9zZXFubyhyaW5nKTsKIAl9CiAKIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBkMDk5ZTk2MGY5YjguLjM3ZjRlZjU5ZmI0YSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yOTgwLDEzICsyOTgwLDEzIEBAIGk5MTVfc2Vxbm9f cGFzc2VkKHVpbnQzMl90IHNlcTEsIHVpbnQzMl90IHNlcTIpCiAKIHN0YXRpYyBpbmxpbmUgYm9v bCBpOTE1X2dlbV9yZXF1ZXN0X3N0YXJ0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCiB7Ci0JcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHJlcS0+cmluZy0+Z2V0X3NlcW5vKHJl cS0+cmluZyksCisJcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKGludGVsX3JpbmdfZ2V0X3NlcW5v KHJlcS0+cmluZyksCiAJCQkJIHJlcS0+cHJldmlvdXNfc2Vxbm8pOwogfQogCiBzdGF0aWMgaW5s aW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEpCiB7Ci0JcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHJlcS0+cmluZy0+Z2V0 X3NlcW5vKHJlcS0+cmluZyksCisJcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKGludGVsX3Jpbmdf Z2V0X3NlcW5vKHJlcS0+cmluZyksCiAJCQkJIHJlcS0+c2Vxbm8pOwogfQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCAwMWQwMjA2Y2E0ZGQuLjNlMTM3ZmM3MDFjZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC05MDMsNyArOTAzLDcgQEAg c3RhdGljIHZvaWQgaTkxNV9yZWNvcmRfcmluZ19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCWVyaW5nLT53YWl0aW5nID0gaW50ZWxfZW5naW5lX2hhc193YWl0ZXIocmluZyk7CiAJZXJp bmctPmluc3RwbSA9IEk5MTVfUkVBRChSSU5HX0lOU1RQTShyaW5nLT5tbWlvX2Jhc2UpKTsKIAll cmluZy0+YWN0aGQgPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChyaW5nKTsKLQllcmluZy0+ c2Vxbm8gPSByaW5nLT5nZXRfc2Vxbm8ocmluZyk7CisJZXJpbmctPnNlcW5vID0gaW50ZWxfcmlu Z19nZXRfc2Vxbm8ocmluZyk7CiAJZXJpbmctPnN0YXJ0ID0gSTkxNV9SRUFEX1NUQVJUKHJpbmcp OwogCWVyaW5nLT5oZWFkID0gSTkxNV9SRUFEX0hFQUQocmluZyk7CiAJZXJpbmctPnRhaWwgPSBJ OTE1X1JFQURfVEFJTChyaW5nKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IGRhM2M4YWFh NTBhMy4uNjQ1MDJjMGQyYTgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTI4NzUsNyAr Mjg3NSw3IEBAIHN0YXRpYyBpbnQgc2VtYXBob3JlX3Bhc3NlZChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQogCWlmIChzaWduYWxsZXItPmhhbmdjaGVjay5kZWFkbG9jayA+PSBJOTE1X05V TV9SSU5HUykKIAkJcmV0dXJuIC0xOwogCi0JaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHNpZ25hbGxl ci0+Z2V0X3NlcW5vKHNpZ25hbGxlciksIHNlcW5vKSkKKwlpZiAoaTkxNV9zZXFub19wYXNzZWQo aW50ZWxfcmluZ19nZXRfc2Vxbm8oc2lnbmFsbGVyKSwgc2Vxbm8pKQogCQlyZXR1cm4gMTsKIAog CS8qIGN1cnNvcnkgY2hlY2sgZm9yIGFuIHVua2lja2FibGUgZGVhZGxvY2sgKi8KQEAgLTI5Nzks NyArMjk3OSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2NoZWNrX2VsYXBzZWQoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogCQlzZW1hcGhvcmVfY2xlYXJfZGVhZGxvY2tzKGRldl9wcml2KTsK IAogCQlhY3RoZCA9IGludGVsX3JpbmdfZ2V0X2FjdGl2ZV9oZWFkKHJpbmcpOwotCQlzZXFubyA9 IHJpbmctPmdldF9zZXFubyhyaW5nKTsKKwkJc2Vxbm8gPSBpbnRlbF9yaW5nX2dldF9zZXFubyhy aW5nKTsKIAogCQlpZiAocmluZy0+aGFuZ2NoZWNrLnNlcW5vID09IHNlcW5vKSB7CiAJCQlpZiAo cmluZ19pZGxlKHJpbmcsIHNlcW5vKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCmluZGV4 IGNmYjVmNzhhNmU4NC4uZWZjYTc1YmNhY2UzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3RyYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5o CkBAIC01NzMsNyArNTczLDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9nZW1fcmVxdWVzdF9ub3RpZnks CiAJICAgIFRQX2Zhc3RfYXNzaWduKAogCQkJICAgX19lbnRyeS0+ZGV2ID0gcmluZy0+ZGV2LT5w cmltYXJ5LT5pbmRleDsKIAkJCSAgIF9fZW50cnktPnJpbmcgPSByaW5nLT5pZDsKLQkJCSAgIF9f ZW50cnktPnNlcW5vID0gcmluZy0+Z2V0X3NlcW5vKHJpbmcpOworCQkJICAgX19lbnRyeS0+c2Vx bm8gPSBpbnRlbF9yaW5nX2dldF9zZXFubyhyaW5nKTsKIAkJCSAgICksCiAKIAkgICAgVFBfcHJp bnRrKCJkZXY9JXUsIHJpbmc9JXUsIHNlcW5vPSV1IiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9icmVhZGNydW1icy5jCmluZGV4IDc0MGYxMGZhNjMzMS4uNjliOTY2YjRmNzFiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKQEAgLTExMiw3ICsxMTIsNyBAQCBi b29sIGludGVsX2VuZ2luZV9hZGRfYnJlYWRjcnVtYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsCiAJCQkJIHN0cnVjdCBpbnRlbF9icmVhZGNydW1iICp3YWl0KQogewogCXN0cnVjdCBp bnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwotCXUzMiBzZXFubyA9 IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7CisJdTMyIHNlcW5vID0gaW50ZWxfcmluZ19nZXRf c2Vxbm8oZW5naW5lKTsKIAlzdHJ1Y3QgcmJfbm9kZSAqKnAsICpwYXJlbnQsICpjb21wbGV0ZWQ7 CiAJYm9vbCBmaXJzdDsKIApAQCAtMjIyLDcgKzIyMiw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX3Jl bW92ZV9icmVhZGNydW1iKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCSAqIHRo ZSBvdmVyYWxsIGxhdGVuY3kgaW4gd2FraW5nIGFsbCB0aGUgY29tcGxldGVkCiAJCQkgKiBjbGll bnRzLgogCQkJICovCi0JCQl1MzIgc2Vxbm8gPSBlbmdpbmUtPmdldF9zZXFubyhlbmdpbmUpOwor CQkJdTMyIHNlcW5vID0gaW50ZWxfcmluZ19nZXRfc2Vxbm8oZW5naW5lKTsKIAkJCXdoaWxlIChp OTE1X3NlcW5vX3Bhc3NlZChzZXFubywKIAkJCQkJCSB0b19jcnVtYihuZXh0KS0+c2Vxbm8pKSB7 CiAJCQkJc3RydWN0IHJiX25vZGUgKm4gPSByYl9uZXh0KG5leHQpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwppbmRleCA0ZTI4ZjBiMjhmODEuLjkxZTVlZDY4NjdlNSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKQEAgLTE3NDUsMTYgKzE3NDUsNiBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9m bHVzaF9yZW5kZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgdTMyIGdlbjhfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcpCi17Ci0JcmV0dXJuIGludGVsX3JlYWRfc3RhdHVzX3BhZ2UocmluZywgSTkxNV9H RU1fSFdTX0lOREVYKTsKLX0KLQotc3RhdGljIHZvaWQgZ2VuOF9zZXRfc2Vxbm8oc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywgdTMyIHNlcW5vKQotewotCWludGVsX3dyaXRlX3N0YXR1c19w YWdlKHJpbmcsIEk5MTVfR0VNX0hXU19JTkRFWCwgc2Vxbm8pOwotfQotCiBzdGF0aWMgdm9pZCBi eHRfc2Vxbm9fYmFycmllcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewogCS8qCkBA IC0xNzcwLDE0ICsxNzYwLDYgQEAgc3RhdGljIHZvaWQgYnh0X3NlcW5vX2JhcnJpZXIoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAlpbnRlbF9mbHVzaF9zdGF0dXNfcGFnZShyaW5nLCBJ OTE1X0dFTV9IV1NfSU5ERVgpOwogfQogCi1zdGF0aWMgdm9pZCBieHRfYV9zZXRfc2Vxbm8oc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgdTMyIHNlcW5vKQotewotCWludGVsX3dyaXRlX3N0 YXR1c19wYWdlKHJpbmcsIEk5MTVfR0VNX0hXU19JTkRFWCwgc2Vxbm8pOwotCi0JLyogU2VlIGJ4 dF9hX2dldF9zZXFubygpIGV4cGxhaW5pbmcgdGhlIHJlYXNvbiBmb3IgdGhlIGNsZmx1c2guICov Ci0JaW50ZWxfZmx1c2hfc3RhdHVzX3BhZ2UocmluZywgSTkxNV9HRU1fSFdTX0lOREVYKTsKLX0K LQogc3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcXVlc3QpCiB7CiAJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXF1 ZXN0LT5yaW5nYnVmOwpAQCAtMTgwMiw3ICsxNzg0LDcgQEAgc3RhdGljIGludCBnZW44X2VtaXRf cmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJCQkJKHJpbmct PnN0YXR1c19wYWdlLmdmeF9hZGRyICsKIAkJCQkoSTkxNV9HRU1fSFdTX0lOREVYIDw8IE1JX1NU T1JFX0RXT1JEX0lOREVYX1NISUZUKSkpOwogCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdi dWYsIDApOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIGk5MTVfZ2VtX3JlcXVl c3RfZ2V0X3NlcW5vKHJlcXVlc3QpKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVm LCByZXF1ZXN0LT5zZXFubyk7CiAJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlf VVNFUl9JTlRFUlJVUFQpOwogCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX05P T1ApOwogCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQocmVxdWVzdCk7CkBA IC0xOTcyLDEyICsxOTU0LDggQEAgc3RhdGljIGludCBsb2dpY2FsX3JlbmRlcl9yaW5nX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmluZy0+aW5pdF9odyA9IGdlbjhfaW5pdF9yZW5k ZXJfcmluZzsKIAlyaW5nLT5pbml0X2NvbnRleHQgPSBnZW44X2luaXRfcmNzX2NvbnRleHQ7CiAJ cmluZy0+Y2xlYW51cCA9IGludGVsX2ZpbmlfcGlwZV9jb250cm9sOwotCXJpbmctPmdldF9zZXFu byA9IGdlbjhfZ2V0X3NlcW5vOwotCXJpbmctPnNldF9zZXFubyA9IGdlbjhfc2V0X3NlcW5vOwot CWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVWSURfQTEpKSB7CisJaWYgKElTX0JYVF9S RVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkpCiAJCXJpbmctPnNlcW5vX2JhcnJpZXIgPSBieHRf c2Vxbm9fYmFycmllcjsKLQkJcmluZy0+c2V0X3NlcW5vID0gYnh0X2Ffc2V0X3NlcW5vOwotCX0K IAlyaW5nLT5lbWl0X3JlcXVlc3QgPSBnZW44X2VtaXRfcmVxdWVzdDsKIAlyaW5nLT5lbWl0X2Zs dXNoID0gZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcjsKIAlyaW5nLT5pcnFfZ2V0ID0gZ2VuOF9sb2dp Y2FsX3JpbmdfZ2V0X2lycTsKQEAgLTIwMjMsMTIgKzIwMDEsOCBAQCBzdGF0aWMgaW50IGxvZ2lj YWxfYnNkX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlHVF9DT05URVhUX1NX SVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVDsKIAogCXJpbmctPmluaXRfaHcg PSBnZW44X2luaXRfY29tbW9uX3Jpbmc7Ci0JcmluZy0+Z2V0X3NlcW5vID0gZ2VuOF9nZXRfc2Vx bm87Ci0JcmluZy0+c2V0X3NlcW5vID0gZ2VuOF9zZXRfc2Vxbm87Ci0JaWYgKElTX0JYVF9SRVZJ RChkZXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsKKwlpZiAoSVNfQlhUX1JFVklEKGRldiwgMCwgQlhU X1JFVklEX0ExKSkKIAkJcmluZy0+c2Vxbm9fYmFycmllciA9IGJ4dF9zZXFub19iYXJyaWVyOwot CQlyaW5nLT5zZXRfc2Vxbm8gPSBieHRfYV9zZXRfc2Vxbm87Ci0JfQogCXJpbmctPmVtaXRfcmVx dWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0OwogCXJpbmctPmVtaXRfZmx1c2ggPSBnZW44X2VtaXRf Zmx1c2g7CiAJcmluZy0+aXJxX2dldCA9IGdlbjhfbG9naWNhbF9yaW5nX2dldF9pcnE7CkBAIC0y MDUyLDggKzIwMjYsNiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfYnNkMl9yaW5nX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhf VkNTMl9JUlFfU0hJRlQ7CiAKIAlyaW5nLT5pbml0X2h3ID0gZ2VuOF9pbml0X2NvbW1vbl9yaW5n OwotCXJpbmctPmdldF9zZXFubyA9IGdlbjhfZ2V0X3NlcW5vOwotCXJpbmctPnNldF9zZXFubyA9 IGdlbjhfc2V0X3NlcW5vOwogCXJpbmctPmVtaXRfcmVxdWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0 OwogCXJpbmctPmVtaXRfZmx1c2ggPSBnZW44X2VtaXRfZmx1c2g7CiAJcmluZy0+aXJxX2dldCA9 IGdlbjhfbG9naWNhbF9yaW5nX2dldF9pcnE7CkBAIC0yMDc3LDEyICsyMDQ5LDggQEAgc3RhdGlj IGludCBsb2dpY2FsX2JsdF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJR1Rf Q09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVDsKIAogCXJpbmct PmluaXRfaHcgPSBnZW44X2luaXRfY29tbW9uX3Jpbmc7Ci0JcmluZy0+Z2V0X3NlcW5vID0gZ2Vu OF9nZXRfc2Vxbm87Ci0JcmluZy0+c2V0X3NlcW5vID0gZ2VuOF9zZXRfc2Vxbm87Ci0JaWYgKElT X0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsKKwlpZiAoSVNfQlhUX1JFVklEKGRl diwgMCwgQlhUX1JFVklEX0ExKSkKIAkJcmluZy0+c2Vxbm9fYmFycmllciA9IGJ4dF9zZXFub19i YXJyaWVyOwotCQlyaW5nLT5zZXRfc2Vxbm8gPSBieHRfYV9zZXRfc2Vxbm87Ci0JfQogCXJpbmct PmVtaXRfcmVxdWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0OwogCXJpbmctPmVtaXRfZmx1c2ggPSBn ZW44X2VtaXRfZmx1c2g7CiAJcmluZy0+aXJxX2dldCA9IGdlbjhfbG9naWNhbF9yaW5nX2dldF9p cnE7CkBAIC0yMTA2LDEyICsyMDc0LDggQEAgc3RhdGljIGludCBsb2dpY2FsX3ZlYm94X3Jpbmdf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJV UFQgPDwgR0VOOF9WRUNTX0lSUV9TSElGVDsKIAogCXJpbmctPmluaXRfaHcgPSBnZW44X2luaXRf Y29tbW9uX3Jpbmc7Ci0JcmluZy0+Z2V0X3NlcW5vID0gZ2VuOF9nZXRfc2Vxbm87Ci0JcmluZy0+ c2V0X3NlcW5vID0gZ2VuOF9zZXRfc2Vxbm87Ci0JaWYgKElTX0JYVF9SRVZJRChkZXYsIDAsIEJY VF9SRVZJRF9BMSkpIHsKKwlpZiAoSVNfQlhUX1JFVklEKGRldiwgMCwgQlhUX1JFVklEX0ExKSkK IAkJcmluZy0+c2Vxbm9fYmFycmllciA9IGJ4dF9zZXFub19iYXJyaWVyOwotCQlyaW5nLT5zZXRf c2Vxbm8gPSBieHRfYV9zZXRfc2Vxbm87Ci0JfQogCXJpbmctPmVtaXRfcmVxdWVzdCA9IGdlbjhf ZW1pdF9yZXF1ZXN0OwogCXJpbmctPmVtaXRfZmx1c2ggPSBnZW44X2VtaXRfZmx1c2g7CiAJcmlu Zy0+aXJxX2dldCA9IGdlbjhfbG9naWNhbF9yaW5nX2dldF9pcnE7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggM2NkNTg2ZWIyNGJhLi4xNGNkMzI2ZWE5OWUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTEyMTYsMTkgKzEyMTYs MTcgQEAgc3RhdGljIGludCBnZW44X3Jjc19zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpzaWduYWxsZXJfcmVxLAogCQlyZXR1cm4gcmV0OwogCiAJZm9yX2VhY2hfcmluZyh3YWl0 ZXIsIGRldl9wcml2LCBpKSB7Ci0JCXUzMiBzZXFubzsKIAkJdTY0IGd0dF9vZmZzZXQgPSBzaWdu YWxsZXItPnNlbWFwaG9yZS5zaWduYWxfZ2d0dFtpXTsKIAkJaWYgKGd0dF9vZmZzZXQgPT0gTUlf U0VNQVBIT1JFX1NZTkNfSU5WQUxJRCkKIAkJCWNvbnRpbnVlOwogCi0JCXNlcW5vID0gaTkxNV9n ZW1fcmVxdWVzdF9nZXRfc2Vxbm8oc2lnbmFsbGVyX3JlcSk7CiAJCWludGVsX3JpbmdfZW1pdChz aWduYWxsZXIsIEdGWF9PUF9QSVBFX0NPTlRST0woNikpOwogCQlpbnRlbF9yaW5nX2VtaXQoc2ln bmFsbGVyLCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkIgfAogCQkJCQkgICBQSVBFX0NPTlRS T0xfUVdfV1JJVEUgfAogCQkJCQkgICBQSVBFX0NPTlRST0xfRkxVU0hfRU5BQkxFKTsKIAkJaW50 ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgbG93ZXJfMzJfYml0cyhndHRfb2Zmc2V0KSk7CiAJCWlu dGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHVwcGVyXzMyX2JpdHMoZ3R0X29mZnNldCkpOwotCQlp bnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBzZXFubyk7CisJCWludGVsX3JpbmdfZW1pdChzaWdu YWxsZXIsIHNpZ25hbGxlcl9yZXEtPnNlcW5vKTsKIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxl ciwgMCk7CiAJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIE1JX1NFTUFQSE9SRV9TSUdOQUwg fAogCQkJCQkgICBNSV9TRU1BUEhPUkVfVEFSR0VUKHdhaXRlci0+aWQpKTsKQEAgLTEyNTcsMTgg KzEyNTUsMTYgQEAgc3RhdGljIGludCBnZW44X3hjc19zaWduYWwoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAogCQlyZXR1cm4gcmV0OwogCiAJZm9yX2VhY2hfcmlu Zyh3YWl0ZXIsIGRldl9wcml2LCBpKSB7Ci0JCXUzMiBzZXFubzsKIAkJdTY0IGd0dF9vZmZzZXQg PSBzaWduYWxsZXItPnNlbWFwaG9yZS5zaWduYWxfZ2d0dFtpXTsKIAkJaWYgKGd0dF9vZmZzZXQg PT0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRCkKIAkJCWNvbnRpbnVlOwogCi0JCXNlcW5vID0g aTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8oc2lnbmFsbGVyX3JlcSk7CiAJCWludGVsX3Jpbmdf ZW1pdChzaWduYWxsZXIsIChNSV9GTFVTSF9EVyArIDEpIHwKIAkJCQkJICAgTUlfRkxVU0hfRFdf T1BfU1RPUkVEVyk7CiAJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIGxvd2VyXzMyX2JpdHMo Z3R0X29mZnNldCkgfAogCQkJCQkgICBNSV9GTFVTSF9EV19VU0VfR1RUKTsKIAkJaW50ZWxfcmlu Z19lbWl0KHNpZ25hbGxlciwgdXBwZXJfMzJfYml0cyhndHRfb2Zmc2V0KSk7Ci0JCWludGVsX3Jp bmdfZW1pdChzaWduYWxsZXIsIHNlcW5vKTsKKwkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwg c2lnbmFsbGVyX3JlcS0+c2Vxbm8pOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBNSV9T RU1BUEhPUkVfU0lHTkFMIHwKIAkJCQkJICAgTUlfU0VNQVBIT1JFX1RBUkdFVCh3YWl0ZXItPmlk KSk7CiAJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIDApOwpAQCAtMTI5OSwxMSArMTI5NSw5 IEBAIHN0YXRpYyBpbnQgZ2VuNl9zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpz aWduYWxsZXJfcmVxLAogCQlpOTE1X3JlZ190IG1ib3hfcmVnID0gc2lnbmFsbGVyLT5zZW1hcGhv cmUubWJveC5zaWduYWxbaV07CiAKIAkJaWYgKGk5MTVfbW1pb19yZWdfdmFsaWQobWJveF9yZWcp KSB7Ci0JCQl1MzIgc2Vxbm8gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhzaWduYWxsZXJf cmVxKTsKLQogCQkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgTUlfTE9BRF9SRUdJU1RFUl9J TU0oMSkpOwogCQkJaW50ZWxfcmluZ19lbWl0X3JlZyhzaWduYWxsZXIsIG1ib3hfcmVnKTsKLQkJ CWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHNlcW5vKTsKKwkJCWludGVsX3JpbmdfZW1pdChz aWduYWxsZXIsIHNpZ25hbGxlcl9yZXEtPnNlcW5vKTsKIAkJfQogCX0KIApAQCAtMTMzOCw3ICsx MzMyLDcgQEAgZ2VuNl9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSkKIAogCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9TVE9SRV9EV09SRF9JTkRFWCk7CiAJaW50 ZWxfcmluZ19lbWl0KHJpbmcsIEk5MTVfR0VNX0hXU19JTkRFWCA8PCBNSV9TVE9SRV9EV09SRF9J TkRFWF9TSElGVCk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0 X3NlcW5vKHJlcSkpOworCWludGVsX3JpbmdfZW1pdChyaW5nLCByZXEtPnNlcW5vKTsKIAlpbnRl bF9yaW5nX2VtaXQocmluZywgTUlfVVNFUl9JTlRFUlJVUFQpOwogCV9faW50ZWxfcmluZ19hZHZh bmNlKHJpbmcpOwogCkBAIC0xNDQwLDcgKzE0MzQsOSBAQCBzdGF0aWMgaW50CiBwY19yZW5kZXJf YWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKLQl1MzIgc2NyYXRjaF9hZGRyID0g cmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKKwl1MzIgYWRk ciA9IHJlcS0+cmluZy0+c3RhdHVzX3BhZ2UuZ2Z4X2FkZHIgKworCQkoSTkxNV9HRU1fSFdTX0lO REVYIDw8IE1JX1NUT1JFX0RXT1JEX0lOREVYX1NISUZUKTsKKwl1MzIgc2NyYXRjaF9hZGRyID0g YWRkcjsKIAlpbnQgcmV0OwogCiAJLyogRm9yIElyb25sYWtlLCBNSV9VU0VSX0lOVEVSUlVQVCB3 YXMgZGVwcmVjYXRlZCBhbmQgYXBwYXJlbnRseQpAQCAtMTQ1NSwxMSArMTQ1MSwxMiBAQCBwY19y ZW5kZXJfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJaWYg KHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWludGVsX3JpbmdfZW1pdChyaW5nLCBHRlhfT1BfUElQ RV9DT05UUk9MKDQpIHwgUElQRV9DT05UUk9MX1FXX1dSSVRFIHwKLQkJCVBJUEVfQ09OVFJPTF9X UklURV9GTFVTSCB8Ci0JCQlQSVBFX0NPTlRST0xfVEVYVFVSRV9DQUNIRV9JTlZBTElEQVRFKTsK LQlpbnRlbF9yaW5nX2VtaXQocmluZywgcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0IHwgUElQRV9D T05UUk9MX0dMT0JBTF9HVFQpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBpOTE1X2dlbV9yZXF1 ZXN0X2dldF9zZXFubyhyZXEpKTsKKwlpbnRlbF9yaW5nX2VtaXQocmluZywKKwkJCUdGWF9PUF9Q SVBFX0NPTlRST0woNCkgfAorCQkJUElQRV9DT05UUk9MX1FXX1dSSVRFIHwKKwkJCVBJUEVfQ09O VFJPTF9XUklURV9GTFVTSCk7CisJaW50ZWxfcmluZ19lbWl0KHJpbmcsIGFkZHIgfCBQSVBFX0NP TlRST0xfR0xPQkFMX0dUVCk7CisJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHJlcS0+c2Vxbm8pOwog CWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKIAlQSVBFX0NPTlRST0xfRkxVU0gocmluZywgc2Ny YXRjaF9hZGRyKTsKIAlzY3JhdGNoX2FkZHIgKz0gMiAqIENBQ0hFTElORV9CWVRFUzsgLyogd3Jp dGUgdG8gc2VwYXJhdGUgY2FjaGVsaW5lcyAqLwpAQCAtMTQ3MywxMiArMTQ3MCwxMiBAQCBwY19y ZW5kZXJfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJc2Ny YXRjaF9hZGRyICs9IDIgKiBDQUNIRUxJTkVfQllURVM7CiAJUElQRV9DT05UUk9MX0ZMVVNIKHJp bmcsIHNjcmF0Y2hfYWRkcik7CiAKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgR0ZYX09QX1BJUEVf Q09OVFJPTCg0KSB8IFBJUEVfQ09OVFJPTF9RV19XUklURSB8CisJaW50ZWxfcmluZ19lbWl0KHJp bmcsIEdGWF9PUF9QSVBFX0NPTlRST0woNCkgfAorCQkJUElQRV9DT05UUk9MX1FXX1dSSVRFIHwK IAkJCVBJUEVfQ09OVFJPTF9XUklURV9GTFVTSCB8Ci0JCQlQSVBFX0NPTlRST0xfVEVYVFVSRV9D QUNIRV9JTlZBTElEQVRFIHwKIAkJCVBJUEVfQ09OVFJPTF9OT1RJRlkpOwotCWludGVsX3Jpbmdf ZW1pdChyaW5nLCByaW5nLT5zY3JhdGNoLmd0dF9vZmZzZXQgfCBQSVBFX0NPTlRST0xfR0xPQkFM X0dUVCk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5v KHJlcSkpOworCWludGVsX3JpbmdfZW1pdChyaW5nLCBhZGRyIHwgUElQRV9DT05UUk9MX0dMT0JB TF9HVFQpOworCWludGVsX3JpbmdfZW1pdChyaW5nLCByZXEtPnNlcW5vKTsKIAlpbnRlbF9yaW5n X2VtaXQocmluZywgMCk7CiAJX19pbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAKQEAgLTE1MDYs MzAgKzE1MDMsNiBAQCBnZW42X3NlcW5vX2JhcnJpZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZykKIAlpbnRlbF9mbHVzaF9zdGF0dXNfcGFnZShyaW5nLCBJOTE1X0dFTV9IV1NfSU5ERVgp OwogfQogCi1zdGF0aWMgdTMyCi1yaW5nX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nKQotewotCXJldHVybiBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfR0VN X0hXU19JTkRFWCk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1yaW5nX3NldF9zZXFubyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2Vxbm8pCi17Ci0JaW50ZWxfd3JpdGVfc3RhdHVzX3Bh Z2UocmluZywgSTkxNV9HRU1fSFdTX0lOREVYLCBzZXFubyk7Ci19Ci0KLXN0YXRpYyB1MzIKLXBj X3JlbmRlcl9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKLXsKLQlyZXR1 cm4gcmluZy0+c2NyYXRjaC5jcHVfcGFnZVswXTsKLX0KLQotc3RhdGljIHZvaWQKLXBjX3JlbmRl cl9zZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgdTMyIHNlcW5vKQotewot CXJpbmctPnNjcmF0Y2guY3B1X3BhZ2VbMF0gPSBzZXFubzsKLX0KLQogc3RhdGljIGJvb2wKIGdl bjVfcmluZ19nZXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiB7CkBAIC0xNjY1 LDcgKzE2MzgsNyBAQCBpOXh4X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQogCiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX1NUT1JFX0RXT1JEX0lOREVYKTsK IAlpbnRlbF9yaW5nX2VtaXQocmluZywgSTkxNV9HRU1fSFdTX0lOREVYIDw8IE1JX1NUT1JFX0RX T1JEX0lOREVYX1NISUZUKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgaTkxNV9nZW1fcmVxdWVz dF9nZXRfc2Vxbm8ocmVxKSk7CisJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHJlcS0+c2Vxbm8pOwog CWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9VU0VSX0lOVEVSUlVQVCk7CiAJX19pbnRlbF9yaW5n X2FkdmFuY2UocmluZyk7CiAKQEAgLTI0NTcsNyArMjQzMCwxMCBAQCB2b2lkIGludGVsX3Jpbmdf aW5pdF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2Vxbm8pCiAJCQlJ OTE1X1dSSVRFKFJJTkdfU1lOQ18yKHJpbmctPm1taW9fYmFzZSksIDApOwogCX0KIAotCXJpbmct PnNldF9zZXFubyhyaW5nLCBzZXFubyk7CisJaW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2UocmluZywg STkxNV9HRU1fSFdTX0lOREVYLCBzZXFubyk7CisJaWYgKHJpbmctPnNlcW5vX2JhcnJpZXIpCisJ CXJpbmctPnNlcW5vX2JhcnJpZXIocmluZyk7CisKIAlyaW5nLT5oYW5nY2hlY2suc2Vxbm8gPSBz ZXFubzsKIH0KIApAQCAtMjY5NSw4ICsyNjcxLDYgQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3Jp bmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJpbmctPmlycV9wdXQgPSBnZW44 X3JpbmdfcHV0X2lycTsKIAkJcmluZy0+aXJxX2VuYWJsZV9tYXNrID0gR1RfUkVOREVSX1VTRVJf SU5URVJSVVBUOwogCQlyaW5nLT5zZXFub19iYXJyaWVyID0gZ2VuNl9zZXFub19iYXJyaWVyOwot CQlyaW5nLT5nZXRfc2Vxbm8gPSByaW5nX2dldF9zZXFubzsKLQkJcmluZy0+c2V0X3NlcW5vID0g cmluZ19zZXRfc2Vxbm87CiAJCWlmIChpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGRldikpIHsK IAkJCVdBUk5fT04oIWRldl9wcml2LT5zZW1hcGhvcmVfb2JqKTsKIAkJCXJpbmctPnNlbWFwaG9y ZS5zeW5jX3RvID0gZ2VuOF9yaW5nX3N5bmM7CkBAIC0yNzEzLDggKzI2ODcsNiBAQCBpbnQgaW50 ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmlu Zy0+aXJxX3B1dCA9IGdlbjZfcmluZ19wdXRfaXJxOwogCQlyaW5nLT5pcnFfZW5hYmxlX21hc2sg PSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7CiAJCXJpbmctPnNlcW5vX2JhcnJpZXIgPSBnZW42 X3NlcW5vX2JhcnJpZXI7Ci0JCXJpbmctPmdldF9zZXFubyA9IHJpbmdfZ2V0X3NlcW5vOwotCQly aW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKIAkJaWYgKGk5MTVfc2VtYXBob3JlX2lz X2VuYWJsZWQoZGV2KSkgewogCQkJcmluZy0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW42X3Jpbmdf c3luYzsKIAkJCXJpbmctPnNlbWFwaG9yZS5zaWduYWwgPSBnZW42X3NpZ25hbDsKQEAgLTI3Mzks OCArMjcxMSw2IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCX0gZWxzZSBpZiAoSVNfR0VONShkZXYpKSB7CiAJCXJpbmctPmFkZF9y ZXF1ZXN0ID0gcGNfcmVuZGVyX2FkZF9yZXF1ZXN0OwogCQlyaW5nLT5mbHVzaCA9IGdlbjRfcmVu ZGVyX3JpbmdfZmx1c2g7Ci0JCXJpbmctPmdldF9zZXFubyA9IHBjX3JlbmRlcl9nZXRfc2Vxbm87 Ci0JCXJpbmctPnNldF9zZXFubyA9IHBjX3JlbmRlcl9zZXRfc2Vxbm87CiAJCXJpbmctPmlycV9n ZXQgPSBnZW41X3JpbmdfZ2V0X2lycTsKIAkJcmluZy0+aXJxX3B1dCA9IGdlbjVfcmluZ19wdXRf aXJxOwogCQlyaW5nLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQg fApAQCAtMjc1MSw4ICsyNzIxLDYgQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVy KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQlyaW5nLT5mbHVzaCA9IGdlbjJfcmVuZGVyX3Jp bmdfZmx1c2g7CiAJCWVsc2UKIAkJCXJpbmctPmZsdXNoID0gZ2VuNF9yZW5kZXJfcmluZ19mbHVz aDsKLQkJcmluZy0+Z2V0X3NlcW5vID0gcmluZ19nZXRfc2Vxbm87Ci0JCXJpbmctPnNldF9zZXFu byA9IHJpbmdfc2V0X3NlcW5vOwogCQlpZiAoSVNfR0VOMihkZXYpKSB7CiAJCQlyaW5nLT5pcnFf Z2V0ID0gaTh4eF9yaW5nX2dldF9pcnE7CiAJCQlyaW5nLT5pcnFfcHV0ID0gaTh4eF9yaW5nX3B1 dF9pcnE7CkBAIC0yODI4LDggKzI3OTYsNiBAQCBpbnQgaW50ZWxfaW5pdF9ic2RfcmluZ19idWZm ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmluZy0+Zmx1c2ggPSBnZW42X2JzZF9yaW5n X2ZsdXNoOwogCQlyaW5nLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7CiAJCXJpbmct PnNlcW5vX2JhcnJpZXIgPSBnZW42X3NlcW5vX2JhcnJpZXI7Ci0JCXJpbmctPmdldF9zZXFubyA9 IHJpbmdfZ2V0X3NlcW5vOwotCQlyaW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKIAkJ aWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKIAkJCXJpbmctPmlycV9lbmFibGVfbWFz ayA9CiAJCQkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQ7 CkBAIC0yODY3LDggKzI4MzMsNiBAQCBpbnQgaW50ZWxfaW5pdF9ic2RfcmluZ19idWZmZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmluZy0+bW1pb19iYXNlID0gQlNEX1JJTkdfQkFTRTsK IAkJcmluZy0+Zmx1c2ggPSBic2RfcmluZ19mbHVzaDsKIAkJcmluZy0+YWRkX3JlcXVlc3QgPSBp OXh4X2FkZF9yZXF1ZXN0OwotCQlyaW5nLT5nZXRfc2Vxbm8gPSByaW5nX2dldF9zZXFubzsKLQkJ cmluZy0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CiAJCWlmIChJU19HRU41KGRldikpIHsK IAkJCXJpbmctPmlycV9lbmFibGVfbWFzayA9IElMS19CU0RfVVNFUl9JTlRFUlJVUFQ7CiAJCQly aW5nLT5pcnFfZ2V0ID0gZ2VuNV9yaW5nX2dldF9pcnE7CkBAIC0yOTAxLDggKzI4NjUsNiBAQCBp bnQgaW50ZWxfaW5pdF9ic2QyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ cmluZy0+Zmx1c2ggPSBnZW42X2JzZF9yaW5nX2ZsdXNoOwogCXJpbmctPmFkZF9yZXF1ZXN0ID0g Z2VuNl9hZGRfcmVxdWVzdDsKIAlyaW5nLT5zZXFub19iYXJyaWVyID0gZ2VuNl9zZXFub19iYXJy aWVyOwotCXJpbmctPmdldF9zZXFubyA9IHJpbmdfZ2V0X3NlcW5vOwotCXJpbmctPnNldF9zZXFu byA9IHJpbmdfc2V0X3NlcW5vOwogCXJpbmctPmlycV9lbmFibGVfbWFzayA9CiAJCQlHVF9SRU5E RVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElGVDsKIAlyaW5nLT5pcnFfZ2V0 ID0gZ2VuOF9yaW5nX2dldF9pcnE7CkBAIC0yOTMyLDggKzI4OTQsNiBAQCBpbnQgaW50ZWxfaW5p dF9ibHRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyaW5nLT5mbHVzaCA9 IGdlbjZfcmluZ19mbHVzaDsKIAlyaW5nLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7 CiAJcmluZy0+c2Vxbm9fYmFycmllciA9IGdlbjZfc2Vxbm9fYmFycmllcjsKLQlyaW5nLT5nZXRf c2Vxbm8gPSByaW5nX2dldF9zZXFubzsKLQlyaW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFu bzsKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkgewogCQlyaW5nLT5pcnFfZW5hYmxl X21hc2sgPQogCQkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElG VDsKQEAgLTI5OTAsOCArMjk1MCw2IEBAIGludCBpbnRlbF9pbml0X3ZlYm94X3JpbmdfYnVmZmVy KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmluZy0+Zmx1c2ggPSBnZW42X3JpbmdfZmx1c2g7 CiAJcmluZy0+YWRkX3JlcXVlc3QgPSBnZW42X2FkZF9yZXF1ZXN0OwogCXJpbmctPnNlcW5vX2Jh cnJpZXIgPSBnZW42X3NlcW5vX2JhcnJpZXI7Ci0JcmluZy0+Z2V0X3NlcW5vID0gcmluZ19nZXRf c2Vxbm87Ci0JcmluZy0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CiAKIAlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gOCkgewogCQlyaW5nLT5pcnFfZW5hYmxlX21hc2sgPQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDJjMjQ1NGNjZGQ5Ni4uN2FkMDZj YmVmNmJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC0yMTks OSArMjE5LDYgQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVfY3MgewogCSAqIG1vbm90b25pYywgZXZl biBpZiBub3QgY29oZXJlbnQuCiAJICovCiAJdm9pZAkJKCpzZXFub19iYXJyaWVyKShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nKTsKLQl1MzIJCSgqZ2V0X3NlcW5vKShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nKTsKLQl2b2lkCQkoKnNldF9zZXFubykoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywKLQkJCQkgICAgIHUzMiBzZXFubyk7CiAJaW50CQkoKmRpc3BhdGNoX2V4ZWNi dWZmZXIpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCQkgICAgICAgdTY0 IG9mZnNldCwgdTMyIGxlbmd0aCwKIAkJCQkJICAgICAgIHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdz KTsKQEAgLTUwMSw2ICs0OTgsMTAgQEAgaW50IGludGVsX2luaXRfYmx0X3JpbmdfYnVmZmVyKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IGludGVsX2luaXRfdmVib3hfcmluZ19idWZmZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKIHU2NCBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVh ZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKK3N0YXRpYyBpbmxpbmUgdTMyIGludGVs X3JpbmdfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCit7CisJcmV0dXJu IGludGVsX3JlYWRfc3RhdHVzX3BhZ2UocmluZywgSTkxNV9HRU1fSFdTX0lOREVYKTsKK30KIAog aW50IGluaXRfd29ya2Fyb3VuZHNfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsK IAotLSAKMi42LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==