From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 08/21] drm/i915: Use HWS for seqno tracking everywhere Date: Fri, 3 Jun 2016 17:08:40 +0100 Message-ID: <1464970133-29859-9-git-send-email-chris@chris-wilson.co.uk> References: <1464970133-29859-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 C03196EE0A for ; Fri, 3 Jun 2016 16:09:10 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id a136so459539wme.0 for ; Fri, 03 Jun 2016 09:09:10 -0700 (PDT) In-Reply-To: <1464970133-29859-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 ICAgIHwgIDYgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwg IDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgfCAgMiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICB8ICA0ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmggICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMgICAgICAgICB8IDI2ICstLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYyAgfCA4MyArKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8ICA3ICstLQogOSBm aWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCAwYzI4N2JmMGQyMzAuLjcyZGFlNmZiMGFhMiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTY2Miw3ICs2NjIsNyBAQCBzdGF0 aWMgaW50IGk5MTVfZ2VtX3BhZ2VmbGlwX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpk YXRhKQogCQkJCQkgICBlbmdpbmUtPm5hbWUsCiAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0 X3NlcW5vKHdvcmstPmZsaXBfcXVldWVkX3JlcSksCiAJCQkJCSAgIGRldl9wcml2LT5uZXh0X3Nl cW5vLAotCQkJCQkgICBlbmdpbmUtPmdldF9zZXFubyhlbmdpbmUpLAorCQkJCQkgICBpbnRlbF9l bmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSksCiAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxl dGVkKHdvcmstPmZsaXBfcXVldWVkX3JlcSkpOwogCQkJfSBlbHNlCiAJCQkJc2VxX3ByaW50Ziht LCAiRmxpcCBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSByaW5nXG4iKTsKQEAgLTc5Miw3ICs3OTIs NyBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jpbmdfc2Vxbm9faW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s CiAJc3RydWN0IHJiX25vZGUgKnJiOwogCiAJc2VxX3ByaW50ZihtLCAiQ3VycmVudCBzZXF1ZW5j ZSAoJXMpOiAleFxuIiwKLQkJICAgZW5naW5lLT5uYW1lLCBlbmdpbmUtPmdldF9zZXFubyhlbmdp bmUpKTsKKwkJICAgZW5naW5lLT5uYW1lLCBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSkp OwogCXNlcV9wcmludGYobSwgIkN1cnJlbnQgdXNlciBpbnRlcnJ1cHRzICglcyk6ICV4XG4iLAog CQkgICBlbmdpbmUtPm5hbWUsIFJFQURfT05DRShlbmdpbmUtPnVzZXJfaW50ZXJydXB0cykpOwog CkBAIC0xNDE3LDcgKzE0MTcsNyBAQCBzdGF0aWMgaW50IGk5MTVfaGFuZ2NoZWNrX2luZm8oc3Ry dWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAKIAlmb3JfZWFjaF9lbmdpbmVfaWQoZW5n aW5lLCBkZXZfcHJpdiwgaWQpIHsKIAkJYWN0aGRbaWRdID0gaW50ZWxfcmluZ19nZXRfYWN0aXZl X2hlYWQoZW5naW5lKTsKLQkJc2Vxbm9baWRdID0gZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5lKTsK KwkJc2Vxbm9baWRdID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwogCX0KIAogCWk5 MTVfZ2V0X2V4dHJhX2luc3Rkb25lKGRldl9wcml2LCBpbnN0ZG9uZSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCBiMDQ2MGVkYTIxMTMuLjRhNzFmNGU5YTk3YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCkBAIC0zMjIxLDEzICszMjIxLDEzIEBAIGk5MTVfc2Vxbm9fcGFzc2VkKHVpbnQz Ml90IHNlcTEsIHVpbnQzMl90IHNlcTIpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9y ZXF1ZXN0X3N0YXJ0ZWQoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7 Ci0JcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHJlcS0+ZW5naW5lLT5nZXRfc2Vxbm8ocmVxLT5l bmdpbmUpLAorCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChpbnRlbF9lbmdpbmVfZ2V0X3NlcW5v KHJlcS0+ZW5naW5lKSwKIAkJCQkgcmVxLT5wcmV2aW91c19zZXFubyk7CiB9CiAKIHN0YXRpYyBp bmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChjb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQocmVxLT5l bmdpbmUtPmdldF9zZXFubyhyZXEtPmVuZ2luZSksCisJcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2Vk KGludGVsX2VuZ2luZV9nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpLAogCQkJCSByZXEtPnNlcW5vKTsK IH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggODkyNDFmZmNjNjc2 Li44MTM0MWZjNGU2MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1 X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAt OTgzLDcgKzk4Myw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfcmVjb3JkX3Jpbmdfc3RhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWVyaW5nLT53YWl0aW5nID0gaW50ZWxfZW5n aW5lX2hhc193YWl0ZXIoZW5naW5lKTsKIAllcmluZy0+aW5zdHBtID0gSTkxNV9SRUFEKFJJTkdf SU5TVFBNKGVuZ2luZS0+bW1pb19iYXNlKSk7CiAJZXJpbmctPmFjdGhkID0gaW50ZWxfcmluZ19n ZXRfYWN0aXZlX2hlYWQoZW5naW5lKTsKLQllcmluZy0+c2Vxbm8gPSBlbmdpbmUtPmdldF9zZXFu byhlbmdpbmUpOworCWVyaW5nLT5zZXFubyA9IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5l KTsKIAllcmluZy0+bGFzdF9zZXFubyA9IGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm87CiAJ ZXJpbmctPnN0YXJ0ID0gSTkxNV9SRUFEX1NUQVJUKGVuZ2luZSk7CiAJZXJpbmctPmhlYWQgPSBJ OTE1X1JFQURfSEVBRChlbmdpbmUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggMmE3MzZm NGEwZmU1Li40MDEzYWQ5MmNkYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMjk1MSw3 ICsyOTUxLDcgQEAgc3RhdGljIGludCBzZW1hcGhvcmVfcGFzc2VkKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKIAlpZiAoc2lnbmFsbGVyLT5oYW5nY2hlY2suZGVhZGxvY2sgPj0gSTkx NV9OVU1fRU5HSU5FUykKIAkJcmV0dXJuIC0xOwogCi0JaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHNp Z25hbGxlci0+Z2V0X3NlcW5vKHNpZ25hbGxlciksIHNlcW5vKSkKKwlpZiAoaTkxNV9zZXFub19w YXNzZWQoaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpLCBzZXFubykpCiAJCXJldHVybiAx OwogCiAJLyogY3Vyc29yeSBjaGVjayBmb3IgYW4gdW5raWNrYWJsZSBkZWFkbG9jayAqLwpAQCAt MzEzOSw3ICszMTM5LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKGVuZ2lu ZSk7CiAKIAkJYWN0aGQgPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwotCQlz ZXFubyA9IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7CisJCXNlcW5vID0gaW50ZWxfZW5naW5l X2dldF9zZXFubyhlbmdpbmUpOwogCiAJCS8qIFJlc2V0IHN0dWNrIGludGVycnVwdHMgYmV0d2Vl biBiYXRjaCBhZHZhbmNlcyAqLwogCQl1c2VyX2ludGVycnVwdHMgPSAwOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV90cmFjZS5oCmluZGV4IDY3NjhkYjAzMmY4NC4uM2QxM2ZkZTk1ZmRmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV90cmFjZS5oCkBAIC01NTgsNyArNTU4LDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9n ZW1fcmVxdWVzdF9ub3RpZnksCiAJICAgIFRQX2Zhc3RfYXNzaWduKAogCQkJICAgX19lbnRyeS0+ ZGV2ID0gZW5naW5lLT5pOTE1LT5kZXYtPnByaW1hcnktPmluZGV4OwogCQkJICAgX19lbnRyeS0+ cmluZyA9IGVuZ2luZS0+aWQ7Ci0JCQkgICBfX2VudHJ5LT5zZXFubyA9IGVuZ2luZS0+Z2V0X3Nl cW5vKGVuZ2luZSk7CisJCQkgICBfX2VudHJ5LT5zZXFubyA9IGludGVsX2VuZ2luZV9nZXRfc2Vx bm8oZW5naW5lKTsKIAkJCSAgICksCiAKIAkgICAgVFBfcHJpbnRrKCJkZXY9JXUsIHJpbmc9JXUs IHNlcW5vPSV1IiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFk Y3J1bWJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCmluZGV4 IGUwMTIxZjcyNzkzOC4uNDQzNDZkZTM5Nzk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9icmVhZGNydW1icy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2JyZWFkY3J1bWJzLmMKQEAgLTE0OCw3ICsxNDgsNyBAQCBib29sIGludGVsX2VuZ2luZV9hZGRf d2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJZmlyc3QgPSB0cnVlOwogCXBh cmVudCA9IE5VTEw7CiAJY29tcGxldGVkID0gTlVMTDsKLQlzZXFubyA9IGVuZ2luZS0+Z2V0X3Nl cW5vKGVuZ2luZSk7CisJc2Vxbm8gPSBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSk7CiAK IAlwID0gJmItPndhaXRlcnMucmJfbm9kZTsKIAl3aGlsZSAoKnApIHsKQEAgLTI3NSw3ICsyNzUs NyBAQCB2b2lkIGludGVsX2VuZ2luZV9yZW1vdmVfd2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCiAJCQkgKiB0aGUgZmlyc3Rfd2FpdGVyLiBUaGlzIGlzIHVuZGVzaXJhYmxlIGlm IHRoYXQKIAkJCSAqIHdhaXRlciBpcyBhIGhpZ2ggcHJpb3JpdHkgdGFzay4KIAkJCSAqLwotCQkJ dTMyIHNlcW5vID0gZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5lKTsKKwkJCXUzMiBzZXFubyA9IGlu dGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKIAkJCXdoaWxlIChpOTE1X3NlcW5vX3Bhc3Nl ZChzZXFubywgdG9fd2FpdChuZXh0KS0+c2Vxbm8pKSB7CiAJCQkJc3RydWN0IHJiX25vZGUgKm4g PSByYl9uZXh0KG5leHQpOwogCQkJCV9faW50ZWxfYnJlYWRjcnVtYnNfZmluaXNoKGIsIHRvX3dh aXQobmV4dCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCAyNzA0MDllOWFjN2EuLmU0 ODY4NzgzN2E5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTE3MTIsMTYgKzE3MTIs NiBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXIoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXF1ZXN0LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdTMyIGdlbjhfZ2V0 X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlyZXR1cm4gaW50ZWxf cmVhZF9zdGF0dXNfcGFnZShlbmdpbmUsIEk5MTVfR0VNX0hXU19JTkRFWCk7Ci19Ci0KLXN0YXRp YyB2b2lkIGdlbjhfc2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMy IHNlcW5vKQotewotCWludGVsX3dyaXRlX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdT X0lOREVYLCBzZXFubyk7Ci19Ci0KIHN0YXRpYyB2b2lkIGJ4dF9hX3NlcW5vX2JhcnJpZXIoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCS8qCkBAIC0xNzM3LDE0ICsxNzI3LDYg QEAgc3RhdGljIHZvaWQgYnh0X2Ffc2Vxbm9fYmFycmllcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiAJaW50ZWxfZmx1c2hfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1Nf SU5ERVgpOwogfQogCi1zdGF0aWMgdm9pZCBieHRfYV9zZXRfc2Vxbm8oc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLCB1MzIgc2Vxbm8pCi17Ci0JaW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2Uo ZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgsIHNlcW5vKTsKLQotCS8qIFNlZSBieHRfYV9nZXRf c2Vxbm8oKSBleHBsYWluaW5nIHRoZSByZWFzb24gZm9yIHRoZSBjbGZsdXNoLiAqLwotCWludGVs X2ZsdXNoX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX0lOREVYKTsKLX0KLQogLyoK ICAqIFJlc2VydmUgc3BhY2UgZm9yIDIgTk9PUHMgYXQgdGhlIGVuZCBvZiBlYWNoIHJlcXVlc3Qg dG8gYmUKICAqIHVzZWQgYXMgYSB3b3JrYXJvdW5kIGZvciBub3QgYmVpbmcgYWxsb3dlZCB0byBk byBsaXRlCkBAIC0xNzcwLDcgKzE3NTIsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0 KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAkJCQlpbnRlbF9od3Nfc2Vx bm9fYWRkcmVzcyhyZXF1ZXN0LT5lbmdpbmUpIHwKIAkJCQlNSV9GTFVTSF9EV19VU0VfR1RUKTsK IAlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCAwKTsKLQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdChyaW5nYnVmLCBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhyZXF1ZXN0KSk7CisJ aW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgcmVxdWVzdC0+c2Vxbm8pOwogCWludGVs X2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX1VTRVJfSU5URVJSVVBUKTsKIAlpbnRlbF9s b2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKIAlyZXR1cm4gaW50ZWxfbG9naWNh bF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChyZXF1ZXN0KTsKQEAgLTE5MTYsMTIgKzE4OTgsOCBA QCBsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogCWVuZ2luZS0+aXJxX2dldCA9IGdlbjhfbG9naWNhbF9yaW5nX2dldF9pcnE7CiAJZW5n aW5lLT5pcnFfcHV0ID0gZ2VuOF9sb2dpY2FsX3JpbmdfcHV0X2lycTsKIAllbmdpbmUtPmVtaXRf YmJfc3RhcnQgPSBnZW44X2VtaXRfYmJfc3RhcnQ7Ci0JZW5naW5lLT5nZXRfc2Vxbm8gPSBnZW44 X2dldF9zZXFubzsKLQllbmdpbmUtPnNldF9zZXFubyA9IGdlbjhfc2V0X3NlcW5vOwotCWlmIChJ U19CWFRfUkVWSUQoZW5naW5lLT5pOTE1LCAwLCBCWFRfUkVWSURfQTEpKSB7CisJaWYgKElTX0JY VF9SRVZJRChlbmdpbmUtPmk5MTUsIDAsIEJYVF9SRVZJRF9BMSkpCiAJCWVuZ2luZS0+aXJxX3Nl cW5vX2JhcnJpZXIgPSBieHRfYV9zZXFub19iYXJyaWVyOwotCQllbmdpbmUtPnNldF9zZXFubyA9 IGJ4dF9hX3NldF9zZXFubzsKLQl9CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDk1ZjA0MzQ1ZDNlYy4uYmFjNDk2OTAy YzZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0xMjgxLDE5 ICsxMjgxLDE3IEBAIHN0YXRpYyBpbnQgZ2VuOF9yY3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKIAkJcmV0dXJuIHJldDsKIAogCWZvcl9lYWNoX2Vu Z2luZV9pZCh3YWl0ZXIsIGRldl9wcml2LCBpZCkgewotCQl1MzIgc2Vxbm87CiAJCXU2NCBndHRf b2Zmc2V0ID0gc2lnbmFsbGVyLT5zZW1hcGhvcmUuc2lnbmFsX2dndHRbaWRdOwogCQlpZiAoZ3R0 X29mZnNldCA9PSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEKQogCQkJY29udGludWU7CiAKLQkJ c2Vxbm8gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhzaWduYWxsZXJfcmVxKTsKIAkJaW50 ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgR0ZYX09QX1BJUEVfQ09OVFJPTCg2KSk7CiAJCWludGVs X3JpbmdfZW1pdChzaWduYWxsZXIsIFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUX0lWQiB8CiAJCQkJ CSAgIFBJUEVfQ09OVFJPTF9RV19XUklURSB8CiAJCQkJCSAgIFBJUEVfQ09OVFJPTF9DU19TVEFM TCk7CiAJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIGxvd2VyXzMyX2JpdHMoZ3R0X29mZnNl dCkpOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCB1cHBlcl8zMl9iaXRzKGd0dF9vZmZz ZXQpKTsKLQkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgc2Vxbm8pOworCQlpbnRlbF9yaW5n X2VtaXQoc2lnbmFsbGVyLCBzaWduYWxsZXJfcmVxLT5zZXFubyk7CiAJCWludGVsX3JpbmdfZW1p dChzaWduYWxsZXIsIDApOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBNSV9TRU1BUEhP UkVfU0lHTkFMIHwKIAkJCQkJICAgTUlfU0VNQVBIT1JFX1RBUkdFVCh3YWl0ZXItPmh3X2lkKSk7 CkBAIC0xMzIyLDE4ICsxMzIwLDE2IEBAIHN0YXRpYyBpbnQgZ2VuOF94Y3Nfc2lnbmFsKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKIAkJcmV0dXJuIHJldDsKIAog CWZvcl9lYWNoX2VuZ2luZV9pZCh3YWl0ZXIsIGRldl9wcml2LCBpZCkgewotCQl1MzIgc2Vxbm87 CiAJCXU2NCBndHRfb2Zmc2V0ID0gc2lnbmFsbGVyLT5zZW1hcGhvcmUuc2lnbmFsX2dndHRbaWRd OwogCQlpZiAoZ3R0X29mZnNldCA9PSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEKQogCQkJY29u dGludWU7CiAKLQkJc2Vxbm8gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhzaWduYWxsZXJf cmVxKTsKIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgKE1JX0ZMVVNIX0RXICsgMSkgfAog CQkJCQkgICBNSV9GTFVTSF9EV19PUF9TVE9SRURXKTsKIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25h bGxlciwgbG93ZXJfMzJfYml0cyhndHRfb2Zmc2V0KSB8CiAJCQkJCSAgIE1JX0ZMVVNIX0RXX1VT RV9HVFQpOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCB1cHBlcl8zMl9iaXRzKGd0dF9v ZmZzZXQpKTsKLQkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgc2Vxbm8pOworCQlpbnRlbF9y aW5nX2VtaXQoc2lnbmFsbGVyLCBzaWduYWxsZXJfcmVxLT5zZXFubyk7CiAJCWludGVsX3Jpbmdf ZW1pdChzaWduYWxsZXIsIE1JX1NFTUFQSE9SRV9TSUdOQUwgfAogCQkJCQkgICBNSV9TRU1BUEhP UkVfVEFSR0VUKHdhaXRlci0+aHdfaWQpKTsKIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwg MCk7CkBAIC0xMzY0LDExICsxMzYwLDkgQEAgc3RhdGljIGludCBnZW42X3NpZ25hbChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9yZXEsCiAJCWk5MTVfcmVnX3QgbWJveF9y ZWcgPSBzaWduYWxsZXItPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtpZF07CiAKIAkJaWYgKGk5MTVf bW1pb19yZWdfdmFsaWQobWJveF9yZWcpKSB7Ci0JCQl1MzIgc2Vxbm8gPSBpOTE1X2dlbV9yZXF1 ZXN0X2dldF9zZXFubyhzaWduYWxsZXJfcmVxKTsKLQogCQkJaW50ZWxfcmluZ19lbWl0KHNpZ25h bGxlciwgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwogCQkJaW50ZWxfcmluZ19lbWl0X3JlZyhz aWduYWxsZXIsIG1ib3hfcmVnKTsKLQkJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHNlcW5v KTsKKwkJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHNpZ25hbGxlcl9yZXEtPnNlcW5vKTsK IAkJfQogCX0KIApAQCAtMTQwNCw3ICsxMzk4LDcgQEAgZ2VuNl9hZGRfcmVxdWVzdChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9T VE9SRV9EV09SRF9JTkRFWCk7CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwKIAkJCUk5MTVfR0VN X0hXU19JTkRFWCA8PCBNSV9TVE9SRV9EV09SRF9JTkRFWF9TSElGVCk7Ci0JaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmVxKSk7CisJaW50ZWxfcmlu Z19lbWl0KGVuZ2luZSwgcmVxLT5zZXFubyk7CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlf VVNFUl9JTlRFUlJVUFQpOwogCV9faW50ZWxfcmluZ19hZHZhbmNlKGVuZ2luZSk7CiAKQEAgLTE1 NDMsNyArMTUzNyw5IEBAIHN0YXRpYyBpbnQKIHBjX3JlbmRlcl9hZGRfcmVxdWVzdChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUgPSByZXEtPmVuZ2luZTsKLQl1MzIgc2NyYXRjaF9hZGRyID0gZW5naW5lLT5zY3JhdGNo Lmd0dF9vZmZzZXQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOworCXUzMiBhZGRyID0gZW5naW5lLT5z dGF0dXNfcGFnZS5nZnhfYWRkciArCisJCShJOTE1X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVf RFdPUkRfSU5ERVhfU0hJRlQpOworCXUzMiBzY3JhdGNoX2FkZHIgPSBhZGRyOwogCWludCByZXQ7 CiAKIAkvKiBGb3IgSXJvbmxha2UsIE1JX1VTRVJfSU5URVJSVVBUIHdhcyBkZXByZWNhdGVkIGFu ZCBhcHBhcmVudGx5CkBAIC0xNTU5LDEyICsxNTU1LDEyIEBAIHBjX3JlbmRlcl9hZGRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAkJcmV0dXJuIHJldDsKIAogCWlu dGVsX3JpbmdfZW1pdChlbmdpbmUsCi0JCQlHRlhfT1BfUElQRV9DT05UUk9MKDQpIHwgUElQRV9D T05UUk9MX1FXX1dSSVRFIHwKKwkJCUdGWF9PUF9QSVBFX0NPTlRST0woNCkgfAorCQkJUElQRV9D T05UUk9MX1FXX1dSSVRFIHwKIAkJCVBJUEVfQ09OVFJPTF9XUklURV9GTFVTSCB8CiAJCQlQSVBF X0NPTlRST0xfVEVYVFVSRV9DQUNIRV9JTlZBTElEQVRFKTsKLQlpbnRlbF9yaW5nX2VtaXQoZW5n aW5lLAotCQkJZW5naW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQgfCBQSVBFX0NPTlRST0xfR0xPQkFM X0dUVCk7Ci0JaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vx bm8ocmVxKSk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgYWRkciB8IFBJUEVfQ09OVFJPTF9H TE9CQUxfR1RUKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCByZXEtPnNlcW5vKTsKIAlpbnRl bF9yaW5nX2VtaXQoZW5naW5lLCAwKTsKIAlQSVBFX0NPTlRST0xfRkxVU0goZW5naW5lLCBzY3Jh dGNoX2FkZHIpOwogCXNjcmF0Y2hfYWRkciArPSAyICogQ0FDSEVMSU5FX0JZVEVTOyAvKiB3cml0 ZSB0byBzZXBhcmF0ZSBjYWNoZWxpbmVzICovCkBAIC0xNTc5LDEzICsxNTc1LDEyIEBAIHBjX3Jl bmRlcl9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAlQSVBF X0NPTlRST0xfRkxVU0goZW5naW5lLCBzY3JhdGNoX2FkZHIpOwogCiAJaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwKLQkJCUdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRST0xfUVdfV1JJ VEUgfAorCQkgICAgICAgCUdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRST0xfUVdf V1JJVEUgfAogCQkJUElQRV9DT05UUk9MX1dSSVRFX0ZMVVNIIHwKIAkJCVBJUEVfQ09OVFJPTF9U RVhUVVJFX0NBQ0hFX0lOVkFMSURBVEUgfAogCQkJUElQRV9DT05UUk9MX05PVElGWSk7Ci0JaW50 ZWxfcmluZ19lbWl0KGVuZ2luZSwKLQkJCWVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0IHwgUElQ RV9DT05UUk9MX0dMT0JBTF9HVFQpOwotCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGk5MTVfZ2Vt X3JlcXVlc3RfZ2V0X3NlcW5vKHJlcSkpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGFkZHIg fCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVCk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgcmVx LT5zZXFubyk7CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7CiAJX19pbnRlbF9yaW5nX2Fk dmFuY2UoZW5naW5lKTsKIApAQCAtMTYxNywzMCArMTYxMiw2IEBAIGdlbjZfc2Vxbm9fYmFycmll cihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJc3Bpbl91bmxvY2tfaXJxKCZkZXZf cHJpdi0+dW5jb3JlLmxvY2spOwogfQogCi1zdGF0aWMgdTMyCi1yaW5nX2dldF9zZXFubyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0JcmV0dXJuIGludGVsX3JlYWRfc3RhdHVz X3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwotfQotCi1zdGF0aWMgdm9pZAotcmlu Z19zZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgc2Vxbm8pCi17 Ci0JaW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgsIHNl cW5vKTsKLX0KLQotc3RhdGljIHUzMgotcGNfcmVuZGVyX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCi17Ci0JcmV0dXJuIGVuZ2luZS0+c2NyYXRjaC5jcHVfcGFnZVsw XTsKLX0KLQotc3RhdGljIHZvaWQKLXBjX3JlbmRlcl9zZXRfc2Vxbm8oc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLCB1MzIgc2Vxbm8pCi17Ci0JZW5naW5lLT5zY3JhdGNoLmNwdV9wYWdl WzBdID0gc2Vxbm87Ci19Ci0KIHN0YXRpYyBib29sCiBnZW41X3JpbmdfZ2V0X2lycShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CkBAIC0xNzcwLDggKzE3NDEsOCBAQCBpOXh4X2Fk ZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCiAJaW50ZWxfcmlu Z19lbWl0KGVuZ2luZSwgTUlfU1RPUkVfRFdPUkRfSU5ERVgpOwogCWludGVsX3JpbmdfZW1pdChl bmdpbmUsCi0JCQlJOTE1X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJ RlQpOwotCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5v KHJlcSkpOworCQkgICAgICAgCUk5MTVfR0VNX0hXU19JTkRFWCA8PCBNSV9TVE9SRV9EV09SRF9J TkRFWF9TSElGVCk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgcmVxLT5zZXFubyk7CiAJaW50 ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfVVNFUl9JTlRFUlJVUFQpOwogCV9faW50ZWxfcmluZ19h ZHZhbmNlKGVuZ2luZSk7CiAKQEAgLTI1ODgsNyArMjU1OSw5IEBAIHZvaWQgaW50ZWxfcmluZ19p bml0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIHNlcW5vKQogCW1l bXNldChlbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3NlcW5vLCAwLAogCSAgICAgICBzaXplb2YoZW5n aW5lLT5zZW1hcGhvcmUuc3luY19zZXFubykpOwogCi0JZW5naW5lLT5zZXRfc2Vxbm8oZW5naW5l LCBzZXFubyk7CisJaW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1Nf SU5ERVgsIHNlcW5vKTsKKwlpZiAoZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcikKKwkJZW5naW5l LT5pcnFfc2Vxbm9fYmFycmllcihlbmdpbmUpOwogCWVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vx bm8gPSBzZXFubzsKIAogCWVuZ2luZS0+aGFuZ2NoZWNrLnNlcW5vID0gc2Vxbm87CkBAIC0yODMw LDggKzI4MDMsNiBAQCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZmZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAkJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuOF9yaW5nX2dldF9pcnE7CiAJ CWVuZ2luZS0+aXJxX3B1dCA9IGdlbjhfcmluZ19wdXRfaXJxOwogCQllbmdpbmUtPmlycV9lbmFi bGVfbWFzayA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVDsKLQkJZW5naW5lLT5nZXRfc2Vxbm8g PSByaW5nX2dldF9zZXFubzsKLQkJZW5naW5lLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsK IAkJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2X3ByaXYpKSB7CiAJCQlXQVJOX09O KCFkZXZfcHJpdi0+c2VtYXBob3JlX29iaik7CiAJCQllbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3Rv ID0gZ2VuOF9yaW5nX3N5bmM7CkBAIC0yODQ4LDggKzI4MTksNiBAQCBpbnQgaW50ZWxfaW5pdF9y ZW5kZXJfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJZW5naW5lLT5pcnFf cHV0ID0gZ2VuNl9yaW5nX3B1dF9pcnE7CiAJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gR1Rf UkVOREVSX1VTRVJfSU5URVJSVVBUOwogCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyID0gZ2Vu Nl9zZXFub19iYXJyaWVyOwotCQllbmdpbmUtPmdldF9zZXFubyA9IHJpbmdfZ2V0X3NlcW5vOwot CQllbmdpbmUtPnNldF9zZXFubyA9IHJpbmdfc2V0X3NlcW5vOwogCQlpZiAoaTkxNV9zZW1hcGhv cmVfaXNfZW5hYmxlZChkZXZfcHJpdikpIHsKIAkJCWVuZ2luZS0+c2VtYXBob3JlLnN5bmNfdG8g PSBnZW42X3Jpbmdfc3luYzsKIAkJCWVuZ2luZS0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjZfc2ln bmFsOwpAQCAtMjg3NCw4ICsyODQzLDYgQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVm ZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfSBlbHNlIGlmIChJU19HRU41KGRldl9wcml2 KSkgewogCQllbmdpbmUtPmFkZF9yZXF1ZXN0ID0gcGNfcmVuZGVyX2FkZF9yZXF1ZXN0OwogCQll bmdpbmUtPmZsdXNoID0gZ2VuNF9yZW5kZXJfcmluZ19mbHVzaDsKLQkJZW5naW5lLT5nZXRfc2Vx bm8gPSBwY19yZW5kZXJfZ2V0X3NlcW5vOwotCQllbmdpbmUtPnNldF9zZXFubyA9IHBjX3JlbmRl cl9zZXRfc2Vxbm87CiAJCWVuZ2luZS0+aXJxX2dldCA9IGdlbjVfcmluZ19nZXRfaXJxOwogCQll bmdpbmUtPmlycV9wdXQgPSBnZW41X3JpbmdfcHV0X2lycTsKIAkJZW5naW5lLT5pcnFfZW5hYmxl X21hc2sgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgfApAQCAtMjg4Niw4ICsyODUzLDYgQEAg aW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJCQllbmdpbmUtPmZsdXNoID0gZ2VuMl9yZW5kZXJfcmluZ19mbHVzaDsKIAkJZWxzZQogCQkJ ZW5naW5lLT5mbHVzaCA9IGdlbjRfcmVuZGVyX3JpbmdfZmx1c2g7Ci0JCWVuZ2luZS0+Z2V0X3Nl cW5vID0gcmluZ19nZXRfc2Vxbm87Ci0JCWVuZ2luZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vx bm87CiAJCWlmIChJU19HRU4yKGRldl9wcml2KSkgewogCQkJZW5naW5lLT5pcnFfZ2V0ID0gaTh4 eF9yaW5nX2dldF9pcnE7CiAJCQllbmdpbmUtPmlycV9wdXQgPSBpOHh4X3JpbmdfcHV0X2lycTsK QEAgLTI5NjUsOCArMjkzMCw2IEBAIGludCBpbnRlbF9pbml0X2JzZF9yaW5nX2J1ZmZlcihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCQllbmdpbmUtPmZsdXNoID0gZ2VuNl9ic2RfcmluZ19mbHVz aDsKIAkJZW5naW5lLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7CiAJCWVuZ2luZS0+ aXJxX3NlcW5vX2JhcnJpZXIgPSBnZW42X3NlcW5vX2JhcnJpZXI7Ci0JCWVuZ2luZS0+Z2V0X3Nl cW5vID0gcmluZ19nZXRfc2Vxbm87Ci0JCWVuZ2luZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vx bm87CiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJCWVuZ2luZS0+aXJxX2Vu YWJsZV9tYXNrID0KIAkJCQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lS UV9TSElGVDsKQEAgLTMwMDQsOCArMjk2Nyw2IEBAIGludCBpbnRlbF9pbml0X2JzZF9yaW5nX2J1 ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQllbmdpbmUtPm1taW9fYmFzZSA9IEJTRF9S SU5HX0JBU0U7CiAJCWVuZ2luZS0+Zmx1c2ggPSBic2RfcmluZ19mbHVzaDsKIAkJZW5naW5lLT5h ZGRfcmVxdWVzdCA9IGk5eHhfYWRkX3JlcXVlc3Q7Ci0JCWVuZ2luZS0+Z2V0X3NlcW5vID0gcmlu Z19nZXRfc2Vxbm87Ci0JCWVuZ2luZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CiAJCWlm IChJU19HRU41KGRldl9wcml2KSkgewogCQkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBJTEtf QlNEX1VTRVJfSU5URVJSVVBUOwogCQkJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuNV9yaW5nX2dldF9p cnE7CkBAIC0zMDQwLDggKzMwMDEsNiBAQCBpbnQgaW50ZWxfaW5pdF9ic2QyX3JpbmdfYnVmZmVy KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZW5naW5lLT5mbHVzaCA9IGdlbjZfYnNkX3Jpbmdf Zmx1c2g7CiAJZW5naW5lLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7CiAJZW5naW5l LT5pcnFfc2Vxbm9fYmFycmllciA9IGdlbjZfc2Vxbm9fYmFycmllcjsKLQllbmdpbmUtPmdldF9z ZXFubyA9IHJpbmdfZ2V0X3NlcW5vOwotCWVuZ2luZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vx bm87CiAJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPQogCQkJR1RfUkVOREVSX1VTRVJfSU5URVJS VVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQ7CiAJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuOF9yaW5n X2dldF9pcnE7CkBAIC0zMDczLDggKzMwMzIsNiBAQCBpbnQgaW50ZWxfaW5pdF9ibHRfcmluZ19i dWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAllbmdpbmUtPmZsdXNoID0gZ2VuNl9yaW5n X2ZsdXNoOwogCWVuZ2luZS0+YWRkX3JlcXVlc3QgPSBnZW42X2FkZF9yZXF1ZXN0OwogCWVuZ2lu ZS0+aXJxX3NlcW5vX2JhcnJpZXIgPSBnZW42X3NlcW5vX2JhcnJpZXI7Ci0JZW5naW5lLT5nZXRf c2Vxbm8gPSByaW5nX2dldF9zZXFubzsKLQllbmdpbmUtPnNldF9zZXFubyA9IHJpbmdfc2V0X3Nl cW5vOwogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJZW5naW5lLT5pcnFfZW5h YmxlX21hc2sgPQogCQkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9T SElGVDsKQEAgLTMxMzMsOCArMzA5MCw2IEBAIGludCBpbnRlbF9pbml0X3ZlYm94X3JpbmdfYnVm ZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZW5naW5lLT5mbHVzaCA9IGdlbjZfcmluZ19m bHVzaDsKIAllbmdpbmUtPmFkZF9yZXF1ZXN0ID0gZ2VuNl9hZGRfcmVxdWVzdDsKIAllbmdpbmUt PmlycV9zZXFub19iYXJyaWVyID0gZ2VuNl9zZXFub19iYXJyaWVyOwotCWVuZ2luZS0+Z2V0X3Nl cW5vID0gcmluZ19nZXRfc2Vxbm87Ci0JZW5naW5lLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFu bzsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJZW5naW5lLT5pcnFfZW5h YmxlX21hc2sgPQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDA2 MTA4ODM2MGI4MC4uNzg1YzllNTMxMmZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCkBAIC0yMTksOSArMjE5LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJ ICogbW9ub3RvbmljLCBldmVuIGlmIG5vdCBjb2hlcmVudC4KIAkgKi8KIAl2b2lkCQkoKmlycV9z ZXFub19iYXJyaWVyKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKLQl1MzIJCSgqZ2V0 X3NlcW5vKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKLQl2b2lkCQkoKnNldF9zZXFu bykoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKLQkJCQkgICAgIHUzMiBzZXFubyk7CiAJ aW50CQkoKmRpc3BhdGNoX2V4ZWNidWZmZXIpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAogCQkJCQkgICAgICAgdTY0IG9mZnNldCwgdTMyIGxlbmd0aCwKIAkJCQkJICAgICAgIHVu c2lnbmVkIGRpc3BhdGNoX2ZsYWdzKTsKQEAgLTQ5Nyw2ICs0OTQsMTAgQEAgaW50IGludGVsX2lu aXRfYmx0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IGludGVsX2lu aXRfdmVib3hfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKIHU2NCBpbnRl bF9yaW5nX2dldF9hY3RpdmVfaGVhZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwor c3RhdGljIGlubGluZSB1MzIgaW50ZWxfZW5naW5lX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCit7CisJcmV0dXJuIGludGVsX3JlYWRfc3RhdHVzX3BhZ2UoZW5naW5l LCBJOTE1X0dFTV9IV1NfSU5ERVgpOworfQogCiBpbnQgaW5pdF93b3JrYXJvdW5kc19yaW5nKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKLS0gCjIuOC4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK