From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 08/20] drm/i915: Use HWS for seqno tracking everywhere Date: Thu, 19 May 2016 12:32:44 +0100 Message-ID: <1463657576-32063-8-git-send-email-chris@chris-wilson.co.uk> References: <1463657576-32063-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 E48B36E975 for ; Thu, 19 May 2016 11:33:12 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id n129so20257252wmn.1 for ; Thu, 19 May 2016 04:33:12 -0700 (PDT) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id q76sm9429419wmd.6.2016.05.19.04.33.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 May 2016 04:33:10 -0700 (PDT) In-Reply-To: <1463657576-32063-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 cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCBhNDI4N2Q3MjlmZDkuLmQyZGJkYTJkNjI5OCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTYzMSw3ICs2MzEsNyBAQCBzdGF0 aWMgaW50IGk5MTVfZ2VtX3BhZ2VmbGlwX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpk YXRhKQogCQkJCQkgICBlbmdpbmUtPm5hbWUsCiAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0 X3NlcW5vKHdvcmstPmZsaXBfcXVldWVkX3JlcSksCiAJCQkJCSAgIGRldl9wcml2LT5uZXh0X3Nl cW5vLAotCQkJCQkgICBlbmdpbmUtPmdldF9zZXFubyhlbmdpbmUpLAorCQkJCQkgICBpbnRlbF9l bmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSksCiAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxl dGVkKHdvcmstPmZsaXBfcXVldWVkX3JlcSkpOwogCQkJfSBlbHNlCiAJCQkJc2VxX3ByaW50Ziht LCAiRmxpcCBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSByaW5nXG4iKTsKQEAgLTc2NSw3ICs3NjUs NyBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jpbmdfc2Vxbm9faW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s CiAJc3RydWN0IHJiX25vZGUgKnJiOwogCiAJc2VxX3ByaW50ZihtLCAiQ3VycmVudCBzZXF1ZW5j ZSAoJXMpOiAleFxuIiwKLQkJICAgZW5naW5lLT5uYW1lLCBlbmdpbmUtPmdldF9zZXFubyhlbmdp bmUpKTsKKwkJICAgZW5naW5lLT5uYW1lLCBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSkp OwogCXNlcV9wcmludGYobSwgIkN1cnJlbnQgdXNlciBpbnRlcnJ1cHRzICglcyk6ICV4XG4iLAog CQkgICBlbmdpbmUtPm5hbWUsIFJFQURfT05DRShlbmdpbmUtPnVzZXJfaW50ZXJydXB0cykpOwog CkBAIC0xMzkxLDcgKzEzOTEsNyBAQCBzdGF0aWMgaW50IGk5MTVfaGFuZ2NoZWNrX2luZm8oc3Ry dWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAKIAlmb3JfZWFjaF9lbmdpbmVfaWQoZW5n aW5lLCBkZXZfcHJpdiwgaWQpIHsKIAkJYWN0aGRbaWRdID0gaW50ZWxfcmluZ19nZXRfYWN0aXZl X2hlYWQoZW5naW5lKTsKLQkJc2Vxbm9baWRdID0gZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5lKTsK KwkJc2Vxbm9baWRdID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwogCX0KIAogCWk5 MTVfZ2V0X2V4dHJhX2luc3Rkb25lKGRldl9wcml2LCBpbnN0ZG9uZSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCA2ZTI0YjQwNDU0MmQuLjhjNWZkZTRiZTRhNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCkBAIC0zMTQ0LDEzICszMTQ0LDEzIEBAIGk5MTVfc2Vxbm9fcGFzc2VkKHVpbnQz Ml90IHNlcTEsIHVpbnQzMl90IHNlcTIpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9y ZXF1ZXN0X3N0YXJ0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0JcmV0 dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHJlcS0+ZW5naW5lLT5nZXRfc2Vxbm8ocmVxLT5lbmdpbmUp LAorCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKHJlcS0+ ZW5naW5lKSwKIAkJCQkgcmVxLT5wcmV2aW91c19zZXFubyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg Ym9vbCBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSkKIHsKLQlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQocmVxLT5lbmdpbmUtPmdldF9z ZXFubyhyZXEtPmVuZ2luZSksCisJcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKGludGVsX2VuZ2lu ZV9nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpLAogCQkJCSByZXEtPnNlcW5vKTsKIH0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggODkyNDFmZmNjNjc2Li44MTM0MWZjNGU2 MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtOTgzLDcgKzk4Myw3 IEBAIHN0YXRpYyB2b2lkIGk5MTVfcmVjb3JkX3Jpbmdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCWVyaW5nLT53YWl0aW5nID0gaW50ZWxfZW5naW5lX2hhc193YWl0 ZXIoZW5naW5lKTsKIAllcmluZy0+aW5zdHBtID0gSTkxNV9SRUFEKFJJTkdfSU5TVFBNKGVuZ2lu ZS0+bW1pb19iYXNlKSk7CiAJZXJpbmctPmFjdGhkID0gaW50ZWxfcmluZ19nZXRfYWN0aXZlX2hl YWQoZW5naW5lKTsKLQllcmluZy0+c2Vxbm8gPSBlbmdpbmUtPmdldF9zZXFubyhlbmdpbmUpOwor CWVyaW5nLT5zZXFubyA9IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKIAllcmluZy0+ bGFzdF9zZXFubyA9IGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm87CiAJZXJpbmctPnN0YXJ0 ID0gSTkxNV9SRUFEX1NUQVJUKGVuZ2luZSk7CiAJZXJpbmctPmhlYWQgPSBJOTE1X1JFQURfSEVB RChlbmdpbmUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggYzQ5YjgzNTZhODBkLi40NjQ2 MmM1YzY2YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMjk3Myw3ICsyOTczLDcgQEAg c3RhdGljIGludCBzZW1hcGhvcmVfcGFzc2VkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKIAlpZiAoc2lnbmFsbGVyLT5oYW5nY2hlY2suZGVhZGxvY2sgPj0gSTkxNV9OVU1fRU5HSU5F UykKIAkJcmV0dXJuIC0xOwogCi0JaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHNpZ25hbGxlci0+Z2V0 X3NlcW5vKHNpZ25hbGxlciksIHNlcW5vKSkKKwlpZiAoaTkxNV9zZXFub19wYXNzZWQoaW50ZWxf ZW5naW5lX2dldF9zZXFubyhlbmdpbmUpLCBzZXFubykpCiAJCXJldHVybiAxOwogCiAJLyogY3Vy c29yeSBjaGVjayBmb3IgYW4gdW5raWNrYWJsZSBkZWFkbG9jayAqLwpAQCAtMzE2MSw3ICszMTYx LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiAJCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKGVuZ2luZSk7CiAKIAkJYWN0 aGQgPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwotCQlzZXFubyA9IGVuZ2lu ZS0+Z2V0X3NlcW5vKGVuZ2luZSk7CisJCXNlcW5vID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhl bmdpbmUpOwogCiAJCS8qIFJlc2V0IHN0dWNrIGludGVycnVwdHMgYmV0d2VlbiBiYXRjaCBhZHZh bmNlcyAqLwogCQl1c2VyX2ludGVycnVwdHMgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5o CmluZGV4IDIwYjJlNDAzOTc5Mi4uMDliYmI3MWU5ZWM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90 cmFjZS5oCkBAIC01NTgsNyArNTU4LDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9nZW1fcmVxdWVzdF9u b3RpZnksCiAJICAgIFRQX2Zhc3RfYXNzaWduKAogCQkJICAgX19lbnRyeS0+ZGV2ID0gZW5naW5l LT5pOTE1LT5kZXYtPnByaW1hcnktPmluZGV4OwogCQkJICAgX19lbnRyeS0+cmluZyA9IGVuZ2lu ZS0+aWQ7Ci0JCQkgICBfX2VudHJ5LT5zZXFubyA9IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7 CisJCQkgICBfX2VudHJ5LT5zZXFubyA9IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsK IAkJCSAgICksCiAKIAkgICAgVFBfcHJpbnRrKCJkZXY9JXUsIHJpbmc9JXUsIHNlcW5vPSV1IiwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCmluZGV4IGM4MmVjYmY3NDcw YS4uMzdmOGZlMTlmMTIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9i cmVhZGNydW1icy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJz LmMKQEAgLTE0OCw3ICsxNDgsNyBAQCBib29sIGludGVsX2VuZ2luZV9hZGRfd2FpdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJZmlyc3QgPSB0cnVlOwogCXBhcmVudCA9IE5VTEw7 CiAJY29tcGxldGVkID0gTlVMTDsKLQlzZXFubyA9IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7 CisJc2Vxbm8gPSBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSk7CiAKIAlwID0gJmItPndh aXRlcnMucmJfbm9kZTsKIAl3aGlsZSAoKnApIHsKQEAgLTI2NCw3ICsyNjQsNyBAQCB2b2lkIGlu dGVsX2VuZ2luZV9yZW1vdmVfd2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJ CQkgKiB0aGUgZmlyc3Rfd2FpdGVyLiBUaGlzIGlzIHVuZGVzaXJhYmxlIGlmIHRoYXQKIAkJCSAq IHdhaXRlciBpcyBhIGhpZ2ggcHJpb3JpdHkgdGFzay4KIAkJCSAqLwotCQkJdTMyIHNlcW5vID0g ZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5lKTsKKwkJCXUzMiBzZXFubyA9IGludGVsX2VuZ2luZV9n ZXRfc2Vxbm8oZW5naW5lKTsKIAkJCXdoaWxlIChpOTE1X3NlcW5vX3Bhc3NlZChzZXFubywgdG9f d2FpdChuZXh0KS0+c2Vxbm8pKSB7CiAJCQkJc3RydWN0IHJiX25vZGUgKm4gPSByYl9uZXh0KG5l eHQpOwogCQkJCV9faW50ZWxfYnJlYWRjcnVtYnNfZmluaXNoKGIsIHRvX3dhaXQobmV4dCkpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCAzNGM2YzNmZDYyOTYuLjQ3ZjczMGE4OTAwMiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTE3MTYsMTYgKzE3MTYsNiBAQCBzdGF0aWMg aW50IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdTMyIGdlbjhfZ2V0X3NlcW5vKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlyZXR1cm4gaW50ZWxfcmVhZF9zdGF0dXNf cGFnZShlbmdpbmUsIEk5MTVfR0VNX0hXU19JTkRFWCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGdlbjhf c2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIHNlcW5vKQotewot CWludGVsX3dyaXRlX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX0lOREVYLCBzZXFu byk7Ci19Ci0KIHN0YXRpYyB2b2lkIGJ4dF9hX3NlcW5vX2JhcnJpZXIoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogewogCS8qCkBAIC0xNzQxLDE0ICsxNzMxLDYgQEAgc3RhdGljIHZv aWQgYnh0X2Ffc2Vxbm9fYmFycmllcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ aW50ZWxfZmx1c2hfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwogfQog Ci1zdGF0aWMgdm9pZCBieHRfYV9zZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLCB1MzIgc2Vxbm8pCi17Ci0JaW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1 X0dFTV9IV1NfSU5ERVgsIHNlcW5vKTsKLQotCS8qIFNlZSBieHRfYV9nZXRfc2Vxbm8oKSBleHBs YWluaW5nIHRoZSByZWFzb24gZm9yIHRoZSBjbGZsdXNoLiAqLwotCWludGVsX2ZsdXNoX3N0YXR1 c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX0lOREVYKTsKLX0KLQogLyoKICAqIFJlc2VydmUg c3BhY2UgZm9yIDIgTk9PUHMgYXQgdGhlIGVuZCBvZiBlYWNoIHJlcXVlc3QgdG8gYmUKICAqIHVz ZWQgYXMgYSB3b3JrYXJvdW5kIGZvciBub3QgYmVpbmcgYWxsb3dlZCB0byBkbyBsaXRlCkBAIC0x Nzc0LDcgKzE3NTYsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAkJCQlpbnRlbF9od3Nfc2Vxbm9fYWRkcmVzcyhy ZXF1ZXN0LT5lbmdpbmUpIHwKIAkJCQlNSV9GTFVTSF9EV19VU0VfR1RUKTsKIAlpbnRlbF9sb2dp Y2FsX3JpbmdfZW1pdChyaW5nYnVmLCAwKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5n YnVmLCBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhyZXF1ZXN0KSk7CisJaW50ZWxfbG9naWNh bF9yaW5nX2VtaXQocmluZ2J1ZiwgcmVxdWVzdC0+c2Vxbm8pOwogCWludGVsX2xvZ2ljYWxfcmlu Z19lbWl0KHJpbmdidWYsIE1JX1VTRVJfSU5URVJSVVBUKTsKIAlpbnRlbF9sb2dpY2FsX3Jpbmdf ZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKIAlyZXR1cm4gaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFu Y2VfYW5kX3N1Ym1pdChyZXF1ZXN0KTsKQEAgLTE5MjAsMTIgKzE5MDIsOCBAQCBsb2dpY2FsX3Jp bmdfZGVmYXVsdF92ZnVuY3Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWVuZ2lu ZS0+aXJxX2dldCA9IGdlbjhfbG9naWNhbF9yaW5nX2dldF9pcnE7CiAJZW5naW5lLT5pcnFfcHV0 ID0gZ2VuOF9sb2dpY2FsX3JpbmdfcHV0X2lycTsKIAllbmdpbmUtPmVtaXRfYmJfc3RhcnQgPSBn ZW44X2VtaXRfYmJfc3RhcnQ7Ci0JZW5naW5lLT5nZXRfc2Vxbm8gPSBnZW44X2dldF9zZXFubzsK LQllbmdpbmUtPnNldF9zZXFubyA9IGdlbjhfc2V0X3NlcW5vOwotCWlmIChJU19CWFRfUkVWSUQo ZW5naW5lLT5pOTE1LCAwLCBCWFRfUkVWSURfQTEpKSB7CisJaWYgKElTX0JYVF9SRVZJRChlbmdp bmUtPmk5MTUsIDAsIEJYVF9SRVZJRF9BMSkpCiAJCWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIg PSBieHRfYV9zZXFub19iYXJyaWVyOwotCQllbmdpbmUtPnNldF9zZXFubyA9IGJ4dF9hX3NldF9z ZXFubzsKLQl9CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDliZDNkZDc1NmQzZC4uYjNmYzUwMDU1NzdkIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0xMjgxLDE5ICsxMjgxLDE3IEBA IHN0YXRpYyBpbnQgZ2VuOF9yY3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq c2lnbmFsbGVyX3JlcSwKIAkJcmV0dXJuIHJldDsKIAogCWZvcl9lYWNoX2VuZ2luZV9pZCh3YWl0 ZXIsIGRldl9wcml2LCBpZCkgewotCQl1MzIgc2Vxbm87CiAJCXU2NCBndHRfb2Zmc2V0ID0gc2ln bmFsbGVyLT5zZW1hcGhvcmUuc2lnbmFsX2dndHRbaWRdOwogCQlpZiAoZ3R0X29mZnNldCA9PSBN SV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEKQogCQkJY29udGludWU7CiAKLQkJc2Vxbm8gPSBpOTE1 X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhzaWduYWxsZXJfcmVxKTsKIAkJaW50ZWxfcmluZ19lbWl0 KHNpZ25hbGxlciwgR0ZYX09QX1BJUEVfQ09OVFJPTCg2KSk7CiAJCWludGVsX3JpbmdfZW1pdChz aWduYWxsZXIsIFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUX0lWQiB8CiAJCQkJCSAgIFBJUEVfQ09O VFJPTF9RV19XUklURSB8CiAJCQkJCSAgIFBJUEVfQ09OVFJPTF9DU19TVEFMTCk7CiAJCWludGVs X3JpbmdfZW1pdChzaWduYWxsZXIsIGxvd2VyXzMyX2JpdHMoZ3R0X29mZnNldCkpOwogCQlpbnRl bF9yaW5nX2VtaXQoc2lnbmFsbGVyLCB1cHBlcl8zMl9iaXRzKGd0dF9vZmZzZXQpKTsKLQkJaW50 ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgc2Vxbm8pOworCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFs bGVyLCBzaWduYWxsZXJfcmVxLT5zZXFubyk7CiAJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIs IDApOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBNSV9TRU1BUEhPUkVfU0lHTkFMIHwK IAkJCQkJICAgTUlfU0VNQVBIT1JFX1RBUkdFVCh3YWl0ZXItPmh3X2lkKSk7CkBAIC0xMzIyLDE4 ICsxMzIwLDE2IEBAIHN0YXRpYyBpbnQgZ2VuOF94Y3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKIAkJcmV0dXJuIHJldDsKIAogCWZvcl9lYWNoX2Vu Z2luZV9pZCh3YWl0ZXIsIGRldl9wcml2LCBpZCkgewotCQl1MzIgc2Vxbm87CiAJCXU2NCBndHRf b2Zmc2V0ID0gc2lnbmFsbGVyLT5zZW1hcGhvcmUuc2lnbmFsX2dndHRbaWRdOwogCQlpZiAoZ3R0 X29mZnNldCA9PSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEKQogCQkJY29udGludWU7CiAKLQkJ c2Vxbm8gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhzaWduYWxsZXJfcmVxKTsKIAkJaW50 ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgKE1JX0ZMVVNIX0RXICsgMSkgfAogCQkJCQkgICBNSV9G TFVTSF9EV19PUF9TVE9SRURXKTsKIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgbG93ZXJf MzJfYml0cyhndHRfb2Zmc2V0KSB8CiAJCQkJCSAgIE1JX0ZMVVNIX0RXX1VTRV9HVFQpOwogCQlp bnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCB1cHBlcl8zMl9iaXRzKGd0dF9vZmZzZXQpKTsKLQkJ aW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgc2Vxbm8pOworCQlpbnRlbF9yaW5nX2VtaXQoc2ln bmFsbGVyLCBzaWduYWxsZXJfcmVxLT5zZXFubyk7CiAJCWludGVsX3JpbmdfZW1pdChzaWduYWxs ZXIsIE1JX1NFTUFQSE9SRV9TSUdOQUwgfAogCQkJCQkgICBNSV9TRU1BUEhPUkVfVEFSR0VUKHdh aXRlci0+aHdfaWQpKTsKIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgMCk7CkBAIC0xMzY0 LDExICsxMzYwLDkgQEAgc3RhdGljIGludCBnZW42X3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnNpZ25hbGxlcl9yZXEsCiAJCWk5MTVfcmVnX3QgbWJveF9yZWcgPSBzaWduYWxs ZXItPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtpZF07CiAKIAkJaWYgKGk5MTVfbW1pb19yZWdfdmFs aWQobWJveF9yZWcpKSB7Ci0JCQl1MzIgc2Vxbm8gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFu byhzaWduYWxsZXJfcmVxKTsKLQogCQkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgTUlfTE9B RF9SRUdJU1RFUl9JTU0oMSkpOwogCQkJaW50ZWxfcmluZ19lbWl0X3JlZyhzaWduYWxsZXIsIG1i b3hfcmVnKTsKLQkJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHNlcW5vKTsKKwkJCWludGVs X3JpbmdfZW1pdChzaWduYWxsZXIsIHNpZ25hbGxlcl9yZXEtPnNlcW5vKTsKIAkJfQogCX0KIApA QCAtMTQwNCw3ICsxMzk4LDcgQEAgZ2VuNl9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSkKIAlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9TVE9SRV9EV09SRF9J TkRFWCk7CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwKIAkJCUk5MTVfR0VNX0hXU19JTkRFWCA8 PCBNSV9TVE9SRV9EV09SRF9JTkRFWF9TSElGVCk7Ci0JaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwg aTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmVxKSk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2lu ZSwgcmVxLT5zZXFubyk7CiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfVVNFUl9JTlRFUlJV UFQpOwogCV9faW50ZWxfcmluZ19hZHZhbmNlKGVuZ2luZSk7CiAKQEAgLTE1NDMsNyArMTUzNyw5 IEBAIHN0YXRpYyBpbnQKIHBjX3JlbmRlcl9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEt PmVuZ2luZTsKLQl1MzIgc2NyYXRjaF9hZGRyID0gZW5naW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQg KyAyICogQ0FDSEVMSU5FX0JZVEVTOworCXUzMiBhZGRyID0gZW5naW5lLT5zdGF0dXNfcGFnZS5n ZnhfYWRkciArCisJCShJOTE1X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhf U0hJRlQpOworCXUzMiBzY3JhdGNoX2FkZHIgPSBhZGRyOwogCWludCByZXQ7CiAKIAkvKiBGb3Ig SXJvbmxha2UsIE1JX1VTRVJfSU5URVJSVVBUIHdhcyBkZXByZWNhdGVkIGFuZCBhcHBhcmVudGx5 CkBAIC0xNTU5LDEyICsxNTU1LDEyIEBAIHBjX3JlbmRlcl9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAkJcmV0dXJuIHJldDsKIAogCWludGVsX3JpbmdfZW1p dChlbmdpbmUsCi0JCQlHRlhfT1BfUElQRV9DT05UUk9MKDQpIHwgUElQRV9DT05UUk9MX1FXX1dS SVRFIHwKKwkJCUdGWF9PUF9QSVBFX0NPTlRST0woNCkgfAorCQkJUElQRV9DT05UUk9MX1FXX1dS SVRFIHwKIAkJCVBJUEVfQ09OVFJPTF9XUklURV9GTFVTSCB8CiAJCQlQSVBFX0NPTlRST0xfVEVY VFVSRV9DQUNIRV9JTlZBTElEQVRFKTsKLQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLAotCQkJZW5n aW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQgfCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVCk7Ci0JaW50 ZWxfcmluZ19lbWl0KGVuZ2luZSwgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmVxKSk7CisJ aW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgYWRkciB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUKTsK KwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCByZXEtPnNlcW5vKTsKIAlpbnRlbF9yaW5nX2VtaXQo ZW5naW5lLCAwKTsKIAlQSVBFX0NPTlRST0xfRkxVU0goZW5naW5lLCBzY3JhdGNoX2FkZHIpOwog CXNjcmF0Y2hfYWRkciArPSAyICogQ0FDSEVMSU5FX0JZVEVTOyAvKiB3cml0ZSB0byBzZXBhcmF0 ZSBjYWNoZWxpbmVzICovCkBAIC0xNTc5LDEzICsxNTc1LDEyIEBAIHBjX3JlbmRlcl9hZGRfcmVx dWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAlQSVBFX0NPTlRST0xfRkxV U0goZW5naW5lLCBzY3JhdGNoX2FkZHIpOwogCiAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwKLQkJ CUdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRST0xfUVdfV1JJVEUgfAorCQkgICAg ICAgCUdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRST0xfUVdfV1JJVEUgfAogCQkJ UElQRV9DT05UUk9MX1dSSVRFX0ZMVVNIIHwKIAkJCVBJUEVfQ09OVFJPTF9URVhUVVJFX0NBQ0hF X0lOVkFMSURBVEUgfAogCQkJUElQRV9DT05UUk9MX05PVElGWSk7Ci0JaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwKLQkJCWVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0IHwgUElQRV9DT05UUk9MX0dM T0JBTF9HVFQpOwotCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0 X3NlcW5vKHJlcSkpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGFkZHIgfCBQSVBFX0NPTlRS T0xfR0xPQkFMX0dUVCk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgcmVxLT5zZXFubyk7CiAJ aW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7CiAJX19pbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5l KTsKIApAQCAtMTYxNywzMCArMTYxMiw2IEBAIGdlbjZfc2Vxbm9fYmFycmllcihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+dW5jb3Jl LmxvY2spOwogfQogCi1zdGF0aWMgdTMyCi1yaW5nX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCi17Ci0JcmV0dXJuIGludGVsX3JlYWRfc3RhdHVzX3BhZ2UoZW5naW5l LCBJOTE1X0dFTV9IV1NfSU5ERVgpOwotfQotCi1zdGF0aWMgdm9pZAotcmluZ19zZXRfc2Vxbm8o c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgc2Vxbm8pCi17Ci0JaW50ZWxfd3Jp dGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgsIHNlcW5vKTsKLX0KLQot c3RhdGljIHUzMgotcGNfcmVuZGVyX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCi17Ci0JcmV0dXJuIGVuZ2luZS0+c2NyYXRjaC5jcHVfcGFnZVswXTsKLX0KLQotc3Rh dGljIHZvaWQKLXBjX3JlbmRlcl9zZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLCB1MzIgc2Vxbm8pCi17Ci0JZW5naW5lLT5zY3JhdGNoLmNwdV9wYWdlWzBdID0gc2Vxbm87 Ci19Ci0KIHN0YXRpYyBib29sCiBnZW41X3JpbmdfZ2V0X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiB7CkBAIC0xNzcwLDggKzE3NDEsOCBAQCBpOXh4X2FkZF9yZXF1ZXN0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCiAJaW50ZWxfcmluZ19lbWl0KGVuZ2lu ZSwgTUlfU1RPUkVfRFdPUkRfSU5ERVgpOwogCWludGVsX3JpbmdfZW1pdChlbmdpbmUsCi0JCQlJ OTE1X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJRlQpOwotCWludGVs X3JpbmdfZW1pdChlbmdpbmUsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcSkpOworCQkg ICAgICAgCUk5MTVfR0VNX0hXU19JTkRFWCA8PCBNSV9TVE9SRV9EV09SRF9JTkRFWF9TSElGVCk7 CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgcmVxLT5zZXFubyk7CiAJaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwgTUlfVVNFUl9JTlRFUlJVUFQpOwogCV9faW50ZWxfcmluZ19hZHZhbmNlKGVuZ2lu ZSk7CiAKQEAgLTI1MjMsNyArMjQ5NCw5IEBAIHZvaWQgaW50ZWxfcmluZ19pbml0X3NlcW5vKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIHNlcW5vKQogCW1lbXNldChlbmdpbmUt PnNlbWFwaG9yZS5zeW5jX3NlcW5vLCAwLAogCSAgICAgICBzaXplb2YoZW5naW5lLT5zZW1hcGhv cmUuc3luY19zZXFubykpOwogCi0JZW5naW5lLT5zZXRfc2Vxbm8oZW5naW5lLCBzZXFubyk7CisJ aW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgsIHNlcW5v KTsKKwlpZiAoZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcikKKwkJZW5naW5lLT5pcnFfc2Vxbm9f YmFycmllcihlbmdpbmUpOwogCWVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm8gPSBzZXFubzsK IAogCWVuZ2luZS0+aGFuZ2NoZWNrLnNlcW5vID0gc2Vxbm87CkBAIC0yNzY1LDggKzI3MzgsNiBA QCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAkJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuOF9yaW5nX2dldF9pcnE7CiAJCWVuZ2luZS0+aXJx X3B1dCA9IGdlbjhfcmluZ19wdXRfaXJxOwogCQllbmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEdU X1JFTkRFUl9VU0VSX0lOVEVSUlVQVDsKLQkJZW5naW5lLT5nZXRfc2Vxbm8gPSByaW5nX2dldF9z ZXFubzsKLQkJZW5naW5lLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKIAkJaWYgKGk5MTVf c2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2X3ByaXYpKSB7CiAJCQlXQVJOX09OKCFkZXZfcHJpdi0+ c2VtYXBob3JlX29iaik7CiAJCQllbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuOF9yaW5n X3N5bmM7CkBAIC0yNzgzLDggKzI3NTQsNiBAQCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19i dWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJZW5naW5lLT5pcnFfcHV0ID0gZ2VuNl9y aW5nX3B1dF9pcnE7CiAJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gR1RfUkVOREVSX1VTRVJf SU5URVJSVVBUOwogCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyID0gZ2VuNl9zZXFub19iYXJy aWVyOwotCQllbmdpbmUtPmdldF9zZXFubyA9IHJpbmdfZ2V0X3NlcW5vOwotCQllbmdpbmUtPnNl dF9zZXFubyA9IHJpbmdfc2V0X3NlcW5vOwogCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxl ZChkZXZfcHJpdikpIHsKIAkJCWVuZ2luZS0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW42X3Jpbmdf c3luYzsKIAkJCWVuZ2luZS0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjZfc2lnbmFsOwpAQCAtMjgw OSw4ICsyNzc4LDYgQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJfSBlbHNlIGlmIChJU19HRU41KGRldl9wcml2KSkgewogCQllbmdp bmUtPmFkZF9yZXF1ZXN0ID0gcGNfcmVuZGVyX2FkZF9yZXF1ZXN0OwogCQllbmdpbmUtPmZsdXNo ID0gZ2VuNF9yZW5kZXJfcmluZ19mbHVzaDsKLQkJZW5naW5lLT5nZXRfc2Vxbm8gPSBwY19yZW5k ZXJfZ2V0X3NlcW5vOwotCQllbmdpbmUtPnNldF9zZXFubyA9IHBjX3JlbmRlcl9zZXRfc2Vxbm87 CiAJCWVuZ2luZS0+aXJxX2dldCA9IGdlbjVfcmluZ19nZXRfaXJxOwogCQllbmdpbmUtPmlycV9w dXQgPSBnZW41X3JpbmdfcHV0X2lycTsKIAkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9S RU5ERVJfVVNFUl9JTlRFUlJVUFQgfApAQCAtMjgyMSw4ICsyNzg4LDYgQEAgaW50IGludGVsX2lu aXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQllbmdpbmUt PmZsdXNoID0gZ2VuMl9yZW5kZXJfcmluZ19mbHVzaDsKIAkJZWxzZQogCQkJZW5naW5lLT5mbHVz aCA9IGdlbjRfcmVuZGVyX3JpbmdfZmx1c2g7Ci0JCWVuZ2luZS0+Z2V0X3NlcW5vID0gcmluZ19n ZXRfc2Vxbm87Ci0JCWVuZ2luZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CiAJCWlmIChJ U19HRU4yKGRldl9wcml2KSkgewogCQkJZW5naW5lLT5pcnFfZ2V0ID0gaTh4eF9yaW5nX2dldF9p cnE7CiAJCQllbmdpbmUtPmlycV9wdXQgPSBpOHh4X3JpbmdfcHV0X2lycTsKQEAgLTI5MDAsOCAr Mjg2NSw2IEBAIGludCBpbnRlbF9pbml0X2JzZF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCQllbmdpbmUtPmZsdXNoID0gZ2VuNl9ic2RfcmluZ19mbHVzaDsKIAkJZW5naW5l LT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7CiAJCWVuZ2luZS0+aXJxX3NlcW5vX2Jh cnJpZXIgPSBnZW42X3NlcW5vX2JhcnJpZXI7Ci0JCWVuZ2luZS0+Z2V0X3NlcW5vID0gcmluZ19n ZXRfc2Vxbm87Ci0JCWVuZ2luZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CiAJCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0K IAkJCQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVDsKQEAg LTI5MzksOCArMjkwMiw2IEBAIGludCBpbnRlbF9pbml0X2JzZF9yaW5nX2J1ZmZlcihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCQllbmdpbmUtPm1taW9fYmFzZSA9IEJTRF9SSU5HX0JBU0U7CiAJ CWVuZ2luZS0+Zmx1c2ggPSBic2RfcmluZ19mbHVzaDsKIAkJZW5naW5lLT5hZGRfcmVxdWVzdCA9 IGk5eHhfYWRkX3JlcXVlc3Q7Ci0JCWVuZ2luZS0+Z2V0X3NlcW5vID0gcmluZ19nZXRfc2Vxbm87 Ci0JCWVuZ2luZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CiAJCWlmIChJU19HRU41KGRl dl9wcml2KSkgewogCQkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBJTEtfQlNEX1VTRVJfSU5U RVJSVVBUOwogCQkJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuNV9yaW5nX2dldF9pcnE7CkBAIC0yOTc1 LDggKzI5MzYsNiBAQCBpbnQgaW50ZWxfaW5pdF9ic2QyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJZW5naW5lLT5mbHVzaCA9IGdlbjZfYnNkX3JpbmdfZmx1c2g7CiAJZW5n aW5lLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7CiAJZW5naW5lLT5pcnFfc2Vxbm9f YmFycmllciA9IGdlbjZfc2Vxbm9fYmFycmllcjsKLQllbmdpbmUtPmdldF9zZXFubyA9IHJpbmdf Z2V0X3NlcW5vOwotCWVuZ2luZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CiAJZW5naW5l LT5pcnFfZW5hYmxlX21hc2sgPQogCQkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhf VkNTMl9JUlFfU0hJRlQ7CiAJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuOF9yaW5nX2dldF9pcnE7CkBA IC0zMDA4LDggKzI5NjcsNiBAQCBpbnQgaW50ZWxfaW5pdF9ibHRfcmluZ19idWZmZXIoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAllbmdpbmUtPmZsdXNoID0gZ2VuNl9yaW5nX2ZsdXNoOwogCWVu Z2luZS0+YWRkX3JlcXVlc3QgPSBnZW42X2FkZF9yZXF1ZXN0OwogCWVuZ2luZS0+aXJxX3NlcW5v X2JhcnJpZXIgPSBnZW42X3NlcW5vX2JhcnJpZXI7Ci0JZW5naW5lLT5nZXRfc2Vxbm8gPSByaW5n X2dldF9zZXFubzsKLQllbmdpbmUtPnNldF9zZXFubyA9IHJpbmdfc2V0X3NlcW5vOwogCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPQog CQkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVDsKQEAgLTMw NjgsOCArMzAyNSw2IEBAIGludCBpbnRlbF9pbml0X3ZlYm94X3JpbmdfYnVmZmVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJZW5naW5lLT5mbHVzaCA9IGdlbjZfcmluZ19mbHVzaDsKIAllbmdp bmUtPmFkZF9yZXF1ZXN0ID0gZ2VuNl9hZGRfcmVxdWVzdDsKIAllbmdpbmUtPmlycV9zZXFub19i YXJyaWVyID0gZ2VuNl9zZXFub19iYXJyaWVyOwotCWVuZ2luZS0+Z2V0X3NlcW5vID0gcmluZ19n ZXRfc2Vxbm87Ci0JZW5naW5lLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKIAogCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDI4NTk3ZWE4ZmJmOS4u NTU5YmUwNGI1NDU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBA IC0yMTgsOSArMjE4LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJICogbW9ub3Rvbmlj LCBldmVuIGlmIG5vdCBjb2hlcmVudC4KIAkgKi8KIAl2b2lkCQkoKmlycV9zZXFub19iYXJyaWVy KShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKLQl1MzIJCSgqZ2V0X3NlcW5vKShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKLQl2b2lkCQkoKnNldF9zZXFubykoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywKLQkJCQkgICAgIHUzMiBzZXFubyk7CiAJaW50CQkoKmRpc3Bh dGNoX2V4ZWNidWZmZXIpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCQkg ICAgICAgdTY0IG9mZnNldCwgdTMyIGxlbmd0aCwKIAkJCQkJICAgICAgIHVuc2lnbmVkIGRpc3Bh dGNoX2ZsYWdzKTsKQEAgLTQ5Niw2ICs0OTMsMTAgQEAgaW50IGludGVsX2luaXRfYmx0X3Jpbmdf YnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IGludGVsX2luaXRfdmVib3hfcmlu Z19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKIHU2NCBpbnRlbF9yaW5nX2dldF9h Y3RpdmVfaGVhZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOworc3RhdGljIGlubGlu ZSB1MzIgaW50ZWxfZW5naW5lX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCit7CisJcmV0dXJuIGludGVsX3JlYWRfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9I V1NfSU5ERVgpOworfQogCiBpbnQgaW5pdF93b3JrYXJvdW5kc19yaW5nKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSk7CiAKLS0gCjIuOC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK