From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 2/4] drm/i915: Wrap engine->context_pin() and engine->context_unpin() Date: Fri, 27 Apr 2018 18:20:29 +0100 Message-ID: <20180427172031.21903-2-chris@chris-wilson.co.uk> References: <20180427172031.21903-1-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 [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id F292289395 for ; Fri, 27 Apr 2018 17:20:37 +0000 (UTC) Received: from haswell.alporthouse.com (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP id 11522224-1500050 for ; Fri, 27 Apr 2018 18:20:36 +0100 In-Reply-To: <20180427172031.21903-1-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 TWFrZSBsaWZlIGVhc2llciBpbiB1cGNvbWluZyBwYXRjaGVzIGJ5IG1vdmluZyB0aGUgY29udGV4 dF9waW4gYW5kCmNvbnRleHRfdW5waW4gdmZ1bmNzIGludG8gaW5saW5lIGhlbHBlcnMuCgpTaWdu ZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KUmV2aWV3 ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21taW9fY29udGV4dC5jICAgICAgfCAgMiArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jICAgICAgICAgfCAyMCArKysrKystLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICB8IDIwICsrKysr KystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgIHwg IDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgICB8ICA4 ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oICAgICAgfCAz MCArKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuYyAgICAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAg ICAgICAgICAgfCAgOSArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5j ICAgICAgICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2Nz LmMgICAgICAgfCAxMyArKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19h ZHMuYyAgICAgICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJt aXNzaW9uLmMgIHwgIDUgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAg ICAgICAgICAgfCAyOSArKysrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaCAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmMgICAgICB8IDE5ICsrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jIHwgIDIgKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDEw OCBpbnNlcnRpb25zKCspLCA2NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvbW1pb19jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv bW1pb19jb250ZXh0LmMKaW5kZXggYTViYWM4M2Q1M2E5Li4wZjk0OTU1NGQxMTggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tbWlvX2NvbnRleHQuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvbW1pb19jb250ZXh0LmMKQEAgLTQ0OCw3ICs0NDgsNyBAQCBzdGF0 aWMgdm9pZCBzd2l0Y2hfbW9jcyhzdHJ1Y3QgaW50ZWxfdmdwdSAqcHJlLCBzdHJ1Y3QgaW50ZWxf dmdwdSAqbmV4dCwKIAogYm9vbCBpc19pbmhpYml0X2NvbnRleHQoc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCwgaW50IHJpbmdfaWQpCiB7Ci0JdTMyICpyZWdfc3RhdGUgPSBjdHgtPmVuZ2lu ZVtyaW5nX2lkXS5scmNfcmVnX3N0YXRlOworCXUzMiAqcmVnX3N0YXRlID0gY3R4LT5fX2VuZ2lu ZVtyaW5nX2lkXS5scmNfcmVnX3N0YXRlOwogCXUzMiBpbmhpYml0X21hc2sgPQogCQlfTUFTS0VE X0JJVF9FTkFCTEUoQ1RYX0NUUkxfRU5HSU5FX0NUWF9SRVNUT1JFX0lOSElCSVQpOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMKaW5kZXggMzVmN2NmZDdhNmI0Li5mZmI0NWE5ZWUy MjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMKQEAgLTU4LDcgKzU4LDcgQEAg c3RhdGljIHZvaWQgdXBkYXRlX3NoYWRvd19wZHBzKHN0cnVjdCBpbnRlbF92Z3B1X3dvcmtsb2Fk ICp3b3JrbG9hZCkKIAlpbnQgcmluZ19pZCA9IHdvcmtsb2FkLT5yaW5nX2lkOwogCXN0cnVjdCBp OTE1X2dlbV9jb250ZXh0ICpzaGFkb3dfY3R4ID0gdmdwdS0+c3VibWlzc2lvbi5zaGFkb3dfY3R4 OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KLQkJc2hhZG93X2N0eC0+ ZW5naW5lW3JpbmdfaWRdLnN0YXRlLT5vYmo7CisJCXNoYWRvd19jdHgtPl9fZW5naW5lW3Jpbmdf aWRdLnN0YXRlLT5vYmo7CiAJc3RydWN0IGV4ZWNsaXN0X3JpbmdfY29udGV4dCAqc2hhZG93X3Jp bmdfY29udGV4dDsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKIApAQCAtMTMwLDcgKzEzMCw3IEBAIHN0 YXRpYyBpbnQgcG9wdWxhdGVfc2hhZG93X2NvbnRleHQoc3RydWN0IGludGVsX3ZncHVfd29ya2xv YWQgKndvcmtsb2FkKQogCWludCByaW5nX2lkID0gd29ya2xvYWQtPnJpbmdfaWQ7CiAJc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKnNoYWRvd19jdHggPSB2Z3B1LT5zdWJtaXNzaW9uLnNoYWRvd19j dHg7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPQotCQlzaGFkb3dfY3R4 LT5lbmdpbmVbcmluZ19pZF0uc3RhdGUtPm9iajsKKwkJc2hhZG93X2N0eC0+X19lbmdpbmVbcmlu Z19pZF0uc3RhdGUtPm9iajsKIAlzdHJ1Y3QgZXhlY2xpc3RfcmluZ19jb250ZXh0ICpzaGFkb3df cmluZ19jb250ZXh0OwogCXN0cnVjdCBwYWdlICpwYWdlOwogCXZvaWQgKmRzdDsKQEAgLTI4Myw3 ICsyODMsNyBAQCBzdGF0aWMgaW50IHNoYWRvd19jb250ZXh0X3N0YXR1c19jaGFuZ2Uoc3RydWN0 IG5vdGlmaWVyX2Jsb2NrICpuYiwKIHN0YXRpYyB2b2lkIHNoYWRvd19jb250ZXh0X2Rlc2NyaXB0 b3JfdXBkYXRlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSAmY3R4LT5l bmdpbmVbZW5naW5lLT5pZF07CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gdG9faW50ZWxf Y29udGV4dChjdHgsIGVuZ2luZSk7CiAJdTY0IGRlc2MgPSAwOwogCiAJZGVzYyA9IGNlLT5scmNf ZGVzYzsKQEAgLTM4OSw3ICszODksNyBAQCBpbnQgaW50ZWxfZ3Z0X3NjYW5fYW5kX3NoYWRvd193 b3JrbG9hZChzdHJ1Y3QgaW50ZWxfdmdwdV93b3JrbG9hZCAqd29ya2xvYWQpCiAJICogc2hhZG93 X2N0eCBwYWdlcyBpbnZhbGlkLiBTbyBndnQgbmVlZCB0byBwaW4gaXRzZWxmLiBBZnRlciB1cGRh dGUKIAkgKiB0aGUgZ3Vlc3QgY29udGV4dCwgZ3Z0IGNhbiB1bnBpbiB0aGUgc2hhZG93X2N0eCBz YWZlbHkuCiAJICovCi0JcmluZyA9IGVuZ2luZS0+Y29udGV4dF9waW4oZW5naW5lLCBzaGFkb3df Y3R4KTsKKwlyaW5nID0gaW50ZWxfY29udGV4dF9waW4oc2hhZG93X2N0eCwgZW5naW5lKTsKIAlp ZiAoSVNfRVJSKHJpbmcpKSB7CiAJCXJldCA9IFBUUl9FUlIocmluZyk7CiAJCWd2dF92Z3B1X2Vy cigiZmFpbCB0byBwaW4gc2hhZG93IGNvbnRleHRcbiIpOwpAQCAtNDAzLDcgKzQwMyw3IEBAIGlu dCBpbnRlbF9ndnRfc2Nhbl9hbmRfc2hhZG93X3dvcmtsb2FkKHN0cnVjdCBpbnRlbF92Z3B1X3dv cmtsb2FkICp3b3JrbG9hZCkKIAlyZXR1cm4gMDsKIAogZXJyX3VucGluOgotCWVuZ2luZS0+Y29u dGV4dF91bnBpbihlbmdpbmUsIHNoYWRvd19jdHgpOworCWludGVsX2NvbnRleHRfdW5waW4oc2hh ZG93X2N0eCwgZW5naW5lKTsKIGVycl9zaGFkb3c6CiAJcmVsZWFzZV9zaGFkb3dfd2FfY3R4KCZ3 b3JrbG9hZC0+d2FfY3R4KTsKIGVycl9zY2FuOgpAQCAtNDM3LDcgKzQzNyw3IEBAIHN0YXRpYyBp bnQgaW50ZWxfZ3Z0X2dlbmVyYXRlX3JlcXVlc3Qoc3RydWN0IGludGVsX3ZncHVfd29ya2xvYWQg Kndvcmtsb2FkKQogCXJldHVybiAwOwogCiBlcnJfdW5waW46Ci0JZW5naW5lLT5jb250ZXh0X3Vu cGluKGVuZ2luZSwgc2hhZG93X2N0eCk7CisJaW50ZWxfY29udGV4dF91bnBpbihzaGFkb3dfY3R4 LCBlbmdpbmUpOwogCXJlbGVhc2Vfc2hhZG93X3dhX2N0eCgmd29ya2xvYWQtPndhX2N0eCk7CiAJ cmV0dXJuIHJldDsKIH0KQEAgLTUyNiw3ICs1MjYsNyBAQCBzdGF0aWMgaW50IHVwZGF0ZV93YV9j dHhfMl9zaGFkb3dfY3R4KHN0cnVjdCBpbnRlbF9zaGFkb3dfd2FfY3R4ICp3YV9jdHgpCiAJc3Ry dWN0IGludGVsX3ZncHVfc3VibWlzc2lvbiAqcyA9ICZ3b3JrbG9hZC0+dmdwdS0+c3VibWlzc2lv bjsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqc2hhZG93X2N0eCA9IHMtPnNoYWRvd19jdHg7 CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPQotCQlzaGFkb3dfY3R4LT5l bmdpbmVbcmluZ19pZF0uc3RhdGUtPm9iajsKKwkJc2hhZG93X2N0eC0+X19lbmdpbmVbcmluZ19p ZF0uc3RhdGUtPm9iajsKIAlzdHJ1Y3QgZXhlY2xpc3RfcmluZ19jb250ZXh0ICpzaGFkb3dfcmlu Z19jb250ZXh0OwogCXN0cnVjdCBwYWdlICpwYWdlOwogCkBAIC02ODgsNyArNjg4LDcgQEAgc3Rh dGljIGludCBkaXNwYXRjaF93b3JrbG9hZChzdHJ1Y3QgaW50ZWxfdmdwdV93b3JrbG9hZCAqd29y a2xvYWQpCiAKIAlyZXQgPSBwcmVwYXJlX3dvcmtsb2FkKHdvcmtsb2FkKTsKIAlpZiAocmV0KSB7 Ci0JCWVuZ2luZS0+Y29udGV4dF91bnBpbihlbmdpbmUsIHNoYWRvd19jdHgpOworCQlpbnRlbF9j b250ZXh0X3VucGluKHNoYWRvd19jdHgsIGVuZ2luZSk7CiAJCWdvdG8gb3V0OwogCX0KIApAQCAt NzcxLDcgKzc3MSw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9ndWVzdF9jb250ZXh0KHN0cnVjdCBp bnRlbF92Z3B1X3dvcmtsb2FkICp3b3JrbG9hZCkKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq c2hhZG93X2N0eCA9IHMtPnNoYWRvd19jdHg7CiAJaW50IHJpbmdfaWQgPSB3b3JrbG9hZC0+cmlu Z19pZDsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9Ci0JCXNoYWRvd19j dHgtPmVuZ2luZVtyaW5nX2lkXS5zdGF0ZS0+b2JqOworCQlzaGFkb3dfY3R4LT5fX2VuZ2luZVty aW5nX2lkXS5zdGF0ZS0+b2JqOwogCXN0cnVjdCBleGVjbGlzdF9yaW5nX2NvbnRleHQgKnNoYWRv d19yaW5nX2NvbnRleHQ7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJdm9pZCAqc3JjOwpAQCAtODk4 LDcgKzg5OCw3IEBAIHN0YXRpYyB2b2lkIGNvbXBsZXRlX2N1cnJlbnRfd29ya2xvYWQoc3RydWN0 IGludGVsX2d2dCAqZ3Z0LCBpbnQgcmluZ19pZCkKIAkJfQogCQltdXRleF9sb2NrKCZkZXZfcHJp di0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJCS8qIHVucGluIHNoYWRvdyBjdHggYXMgdGhlIHNoYWRv d19jdHggdXBkYXRlIGlzIGRvbmUgKi8KLQkJZW5naW5lLT5jb250ZXh0X3VucGluKGVuZ2luZSwg cy0+c2hhZG93X2N0eCk7CisJCWludGVsX2NvbnRleHRfdW5waW4ocy0+c2hhZG93X2N0eCwgZW5n aW5lKTsKIAkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJfQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDc0N2RhZDI2NjZhYS4uODU5MTFi YzBiNzAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMzc3LDE2ICszNzcs MTkgQEAgc3RhdGljIHZvaWQgcHJpbnRfYmF0Y2hfcG9vbF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sCiAJcHJpbnRfZmlsZV9zdGF0cyhtLCAiW2tdYmF0Y2ggcG9vbCIsIHN0YXRzKTsKIH0KIAot c3RhdGljIGludCBwZXJfZmlsZV9jdHhfc3RhdHMoaW50IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRh dGEpCitzdGF0aWMgaW50IHBlcl9maWxlX2N0eF9zdGF0cyhpbnQgaWR4LCB2b2lkICpwdHIsIHZv aWQgKmRhdGEpCiB7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IHB0cjsKLQlpbnQg bjsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVf aWQgaWQ7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBjdHgtPmk5MTUsIGlkKSB7CisJCXN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IHRvX2ludGVsX2NvbnRleHQoY3R4LCBlbmdpbmUpOwog Ci0JZm9yIChuID0gMDsgbiA8IEFSUkFZX1NJWkUoY3R4LT5lbmdpbmUpOyBuKyspIHsKLQkJaWYg KGN0eC0+ZW5naW5lW25dLnN0YXRlKQotCQkJcGVyX2ZpbGVfc3RhdHMoMCwgY3R4LT5lbmdpbmVb bl0uc3RhdGUtPm9iaiwgZGF0YSk7Ci0JCWlmIChjdHgtPmVuZ2luZVtuXS5yaW5nKQotCQkJcGVy X2ZpbGVfc3RhdHMoMCwgY3R4LT5lbmdpbmVbbl0ucmluZy0+dm1hLT5vYmosIGRhdGEpOworCQlp ZiAoY2UtPnN0YXRlKQorCQkJcGVyX2ZpbGVfc3RhdHMoMCwgY2UtPnN0YXRlLT5vYmosIGRhdGEp OworCQlpZiAoY2UtPnJpbmcpCisJCQlwZXJfZmlsZV9zdGF0cygwLCBjZS0+cmluZy0+dm1hLT5v YmosIGRhdGEpOwogCX0KIAogCXJldHVybiAwOwpAQCAtMTk1OSw3ICsxOTYyLDggQEAgc3RhdGlj IGludCBpOTE1X2NvbnRleHRfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2Vk KQogCQlzZXFfcHV0YyhtLCAnXG4nKTsKIAogCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZf cHJpdiwgaWQpIHsKLQkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZjdHgtPmVuZ2luZVtl bmdpbmUtPmlkXTsKKwkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9CisJCQkJdG9faW50ZWxf Y29udGV4dChjdHgsIGVuZ2luZSk7CiAKIAkJCXNlcV9wcmludGYobSwgIiVzOiAiLCBlbmdpbmUt Pm5hbWUpOwogCQkJaWYgKGNlLT5zdGF0ZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDZi MGM2N2E0ZjIxNC4uNDA5MGJmZGRhMzQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTMy MzQsNyArMzIzNCw3IEBAIHZvaWQgaTkxNV9nZW1fcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCQkJCSAgICAgIHN0YWxsZWRfbWFzayAmIEVOR0lORV9NQVNLKGlkKSk7 CiAJCWN0eCA9IGZldGNoX2FuZF96ZXJvKCZlbmdpbmUtPmxhc3RfcmV0aXJlZF9jb250ZXh0KTsK IAkJaWYgKGN0eCkKLQkJCWVuZ2luZS0+Y29udGV4dF91bnBpbihlbmdpbmUsIGN0eCk7CisJCQlp bnRlbF9jb250ZXh0X3VucGluKGN0eCwgZW5naW5lKTsKIAogCQkvKgogCQkgKiBPc3RlbnNpYmls eSwgd2UgYWx3YXlzIHdhbnQgYSBjb250ZXh0IGxvYWRlZCBmb3IgcG93ZXJzYXZpbmcsCkBAIC01 MjkxLDcgKzUyOTEsNyBAQCBzdGF0aWMgaW50IF9faW50ZWxfZW5naW5lc19yZWNvcmRfZGVmYXVs dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgaTkxNSwgaWQpIHsKIAkJc3RydWN0IGk5MTVfdm1hICpzdGF0ZTsKIAotCQlzdGF0ZSA9IGN0 eC0+ZW5naW5lW2lkXS5zdGF0ZTsKKwkJc3RhdGUgPSB0b19pbnRlbF9jb250ZXh0KGN0eCwgZW5n aW5lKS0+c3RhdGU7CiAJCWlmICghc3RhdGUpCiAJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDc0NDM1YWZmZTIzZi4uNTlkNGJkNGE3Yjcz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC0xMTcsMTUgKzEx NywxNSBAQCBzdGF0aWMgdm9pZCBsdXRfY2xvc2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0 eCkKIAogc3RhdGljIHZvaWQgaTkxNV9nZW1fY29udGV4dF9mcmVlKHN0cnVjdCBpOTE1X2dlbV9j b250ZXh0ICpjdHgpCiB7Ci0JaW50IGk7CisJdW5zaWduZWQgaW50IG47CiAKIAlsb2NrZGVwX2Fz c2VydF9oZWxkKCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCUdFTV9CVUdfT04oIWk5 MTVfZ2VtX2NvbnRleHRfaXNfY2xvc2VkKGN0eCkpOwogCiAJaTkxNV9wcGd0dF9wdXQoY3R4LT5w cGd0dCk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKSB7Ci0JCXN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZjdHgtPmVuZ2luZVtpXTsKKwlmb3IgKG4gPSAwOyBu IDwgQVJSQVlfU0laRShjdHgtPl9fZW5naW5lKTsgbisrKSB7CisJCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZSA9ICZjdHgtPl9fZW5naW5lW25dOwogCiAJCWlmICghY2UtPnN0YXRlKQogCQkJY29u dGludWU7CkBAIC01MjEsNyArNTIxLDcgQEAgdm9pZCBpOTE1X2dlbV9jb250ZXh0c19sb3N0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaWYgKCFlbmdpbmUtPmxhc3RfcmV0 aXJlZF9jb250ZXh0KQogCQkJY29udGludWU7CiAKLQkJZW5naW5lLT5jb250ZXh0X3VucGluKGVu Z2luZSwgZW5naW5lLT5sYXN0X3JldGlyZWRfY29udGV4dCk7CisJCWludGVsX2NvbnRleHRfdW5w aW4oZW5naW5lLT5sYXN0X3JldGlyZWRfY29udGV4dCwgZW5naW5lKTsKIAkJZW5naW5lLT5sYXN0 X3JldGlyZWRfY29udGV4dCA9IE5VTEw7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5oCmluZGV4IGIxMmE4YThjNWFmOS4uYWNlM2IxMjljMTg5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oCkBAIC0xNDksNyArMTQ5LDcgQEAgc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgewogCQl1MzIgKmxyY19yZWdfc3RhdGU7CiAJCXU2NCBscmNfZGVz YzsKIAkJaW50IHBpbl9jb3VudDsKLQl9IGVuZ2luZVtJOTE1X05VTV9FTkdJTkVTXTsKKwl9IF9f ZW5naW5lW0k5MTVfTlVNX0VOR0lORVNdOwogCiAJLyoqIHJpbmdfc2l6ZTogc2l6ZSBmb3IgYWxs b2NhdGluZyB0aGUgcGVyLWVuZ2luZSByaW5nIGJ1ZmZlciAqLwogCXUzMiByaW5nX3NpemU7CkBA IC0yNTYsNiArMjU2LDM0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9jb250ZXh0X2lz X2tlcm5lbChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQogCXJldHVybiAhY3R4LT5maWxl X3ByaXY7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2NvbnRleHQgKgordG9faW50 ZWxfY29udGV4dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAorCQkgY29uc3Qgc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXJldHVybiAmY3R4LT5fX2VuZ2luZVtlbmdp bmUtPmlkXTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfcmluZyAqCitpbnRlbF9j b250ZXh0X3BpbihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCit7CisJcmV0dXJuIGVuZ2luZS0+Y29udGV4dF9waW4oZW5naW5lLCBj dHgpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgX19pbnRlbF9jb250ZXh0X3BpbihzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dCAqY3R4LAorCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gdG9faW50ZWxf Y29udGV4dChjdHgsIGVuZ2luZSk7CisKKwlHRU1fQlVHX09OKCFjZS0+cGluX2NvdW50KTsKKwlj ZS0+cGluX2NvdW50Kys7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9jb250ZXh0X3Vu cGluKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCisJCQkJICAgICAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwllbmdpbmUtPmNvbnRleHRfdW5waW4oZW5naW5lLCBj dHgpOworfQorCiAvKiBpOTE1X2dlbV9jb250ZXh0LmMgKi8KIGludCBfX211c3RfY2hlY2sgaTkx NV9nZW1fY29udGV4dHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwog dm9pZCBpOTE1X2dlbV9jb250ZXh0c19sb3N0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCA2NzFmZmEzNzYx NGUuLmMwMTI3OTY1YjU3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBA IC0xNDcyLDcgKzE0NzIsOCBAQCBzdGF0aWMgdm9pZCBnZW1fcmVjb3JkX3JpbmdzKHN0cnVjdCBp OTE1X2dwdV9zdGF0ZSAqZXJyb3IpCiAKIAkJCWVlLT5jdHggPQogCQkJCWk5MTVfZXJyb3Jfb2Jq ZWN0X2NyZWF0ZShpOTE1LAotCQkJCQkJCSByZXF1ZXN0LT5jdHgtPmVuZ2luZVtpXS5zdGF0ZSk7 CisJCQkJCQkJIHRvX2ludGVsX2NvbnRleHQocmVxdWVzdC0+Y3R4LAorCQkJCQkJCQkJICBlbmdp bmUpLT5zdGF0ZSk7CiAKIAkJCWVycm9yLT5zaW11bGF0ZWQgfD0KIAkJCQlpOTE1X2dlbV9jb250 ZXh0X25vX2Vycm9yX2NhcHR1cmUocmVxdWVzdC0+Y3R4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJm LmMKaW5kZXggYmZjOTA2Y2Q0ZTVlLi40YjFkYTAxMTY4YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGVyZi5jCkBAIC0xMjM0LDcgKzEyMzQsNyBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4 X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJCSAqCiAJCSAqIE5COiBpbXBs aWVkIFJDUyBlbmdpbmUuLi4KIAkJICovCi0JCXJpbmcgPSBlbmdpbmUtPmNvbnRleHRfcGluKGVu Z2luZSwgc3RyZWFtLT5jdHgpOworCQlyaW5nID0gaW50ZWxfY29udGV4dF9waW4oc3RyZWFtLT5j dHgsIGVuZ2luZSk7CiAJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgp OwogCQlpZiAoSVNfRVJSKHJpbmcpKQogCQkJcmV0dXJuIFBUUl9FUlIocmluZyk7CkBAIC0xMjQ2 LDcgKzEyNDYsNyBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4X2lkKHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJCSAqIHdpdGggZ2VuOCsgYW5kIGV4ZWNsaXN0cwogCQkg Ki8KIAkJZGV2X3ByaXYtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkID0KLQkJCWk5MTVfZ2d0dF9v ZmZzZXQoc3RyZWFtLT5jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZSk7CisJCQlpOTE1X2dn dHRfb2Zmc2V0KHRvX2ludGVsX2NvbnRleHQoc3RyZWFtLT5jdHgsIGVuZ2luZSktPnN0YXRlKTsK IAl9CiAKIAlyZXR1cm4gMDsKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHN0YXRpYyB2b2lkIG9hX3B1 dF9yZW5kZXJfY3R4X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJCW11dGV4 X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAogCQlkZXZfcHJpdi0+cGVyZi5v YS5zcGVjaWZpY19jdHhfaWQgPSBJTlZBTElEX0NUWF9JRDsKLQkJZW5naW5lLT5jb250ZXh0X3Vu cGluKGVuZ2luZSwgc3RyZWFtLT5jdHgpOworCQlpbnRlbF9jb250ZXh0X3VucGluKHN0cmVhbS0+ Y3R4LCBlbmdpbmUpOwogCiAJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0 ZXgpOwogCX0KQEAgLTE3NTksNiArMTc1OSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9zd2l0Y2hfdG9f dXBkYXRlZF9rZXJuZWxfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByCiBz dGF0aWMgaW50IGdlbjhfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpOTE1X29hX2NvbmZpZyAq b2FfY29uZmlnKQogeworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGRldl9wcml2 LT5lbmdpbmVbUkNTXTsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwogCWludCByZXQ7 CiAJdW5zaWduZWQgaW50IHdhaXRfZmxhZ3MgPSBJOTE1X1dBSVRfTE9DS0VEOwpAQCAtMTc4OSw3 ICsxNzkwLDcgQEAgc3RhdGljIGludCBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJLyogVXBkYXRlIGFsbCBjb250ZXh0cyBu b3cgdGhhdCB3ZSd2ZSBzdGFsbGVkIHRoZSBzdWJtaXNzaW9uLiAqLwogCWxpc3RfZm9yX2VhY2hf ZW50cnkoY3R4LCAmZGV2X3ByaXYtPmNvbnRleHRzLmxpc3QsIGxpbmspIHsKLQkJc3RydWN0IGlu dGVsX2NvbnRleHQgKmNlID0gJmN0eC0+ZW5naW5lW1JDU107CisJCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZSA9IHRvX2ludGVsX2NvbnRleHQoY3R4LCBlbmdpbmUpOwogCQl1MzIgKnJlZ3M7CiAK IAkJLyogT0Egc2V0dGluZ3Mgd2lsbCBiZSBzZXQgdXBvbiBmaXJzdCB1c2UgKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZXF1ZXN0LmMKaW5kZXggYjE5OTNkNGExYTUzLi45MzU4ZjJjZjBjMzIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCkBAIC00MDksNyArNDA5LDcgQEAgc3RhdGlj IHZvaWQgaTkxNV9yZXF1ZXN0X3JldGlyZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQog CSAqIHRoZSBzdWJzZXF1ZW50IHJlcXVlc3QuCiAJICovCiAJaWYgKGVuZ2luZS0+bGFzdF9yZXRp cmVkX2NvbnRleHQpCi0JCWVuZ2luZS0+Y29udGV4dF91bnBpbihlbmdpbmUsIGVuZ2luZS0+bGFz dF9yZXRpcmVkX2NvbnRleHQpOworCQlpbnRlbF9jb250ZXh0X3VucGluKGVuZ2luZS0+bGFzdF9y ZXRpcmVkX2NvbnRleHQsIGVuZ2luZSk7CiAJZW5naW5lLT5sYXN0X3JldGlyZWRfY29udGV4dCA9 IHJlcXVlc3QtPmN0eDsKIAogCXNwaW5fbG9ja19pcnEoJnJlcXVlc3QtPmxvY2spOwpAQCAtNjM4 LDcgKzYzOCw3IEBAIGk5MTVfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCiAJICogR0dUVCBzcGFjZSwgc28g ZG8gdGhpcyBmaXJzdCBiZWZvcmUgd2UgcmVzZXJ2ZSBhIHNlcW5vIGZvcgogCSAqIG91cnNlbHZl cy4KIAkgKi8KLQlyaW5nID0gZW5naW5lLT5jb250ZXh0X3BpbihlbmdpbmUsIGN0eCk7CisJcmlu ZyA9IGludGVsX2NvbnRleHRfcGluKGN0eCwgZW5naW5lKTsKIAlpZiAoSVNfRVJSKHJpbmcpKQog CQlyZXR1cm4gRVJSX0NBU1QocmluZyk7CiAJR0VNX0JVR19PTighcmluZyk7CkBAIC03ODcsNyAr Nzg3LDcgQEAgaTkxNV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIGVycl91bnJlc2VydmU6CiAJdW5yZXNl cnZlX2d0KGk5MTUpOwogZXJyX3VucGluOgotCWVuZ2luZS0+Y29udGV4dF91bnBpbihlbmdpbmUs IGN0eCk7CisJaW50ZWxfY29udGV4dF91bnBpbihjdHgsIGVuZ2luZSk7CiAJcmV0dXJuIEVSUl9Q VFIocmV0KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5n aW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwppbmRleCBl YmE4MWQ1NWRjM2EuLjIzOGM4ZDNkYTA0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5n aW5lX2NzLmMKQEAgLTY4NSw3ICs2ODUsNyBAQCBpbnQgaW50ZWxfZW5naW5lX2luaXRfY29tbW9u KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkgKiBiZSBhdmFpbGFibGUuIFRvIGF2 b2lkIHRoaXMgd2UgYWx3YXlzIHBpbiB0aGUgZGVmYXVsdAogCSAqIGNvbnRleHQuCiAJICovCi0J cmluZyA9IGVuZ2luZS0+Y29udGV4dF9waW4oZW5naW5lLCBlbmdpbmUtPmk5MTUtPmtlcm5lbF9j b250ZXh0KTsKKwlyaW5nID0gaW50ZWxfY29udGV4dF9waW4oZW5naW5lLT5pOTE1LT5rZXJuZWxf Y29udGV4dCwgZW5naW5lKTsKIAlpZiAoSVNfRVJSKHJpbmcpKQogCQlyZXR1cm4gUFRSX0VSUihy aW5nKTsKIApAQCAtNjk0LDggKzY5NCw3IEBAIGludCBpbnRlbF9lbmdpbmVfaW5pdF9jb21tb24o c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCSAqIHdlIGNhbiBpbnRlcnJ1cHQgdGhl IGVuZ2luZSBhdCBhbnkgdGltZS4KIAkgKi8KIAlpZiAoZW5naW5lLT5pOTE1LT5wcmVlbXB0X2Nv bnRleHQpIHsKLQkJcmluZyA9IGVuZ2luZS0+Y29udGV4dF9waW4oZW5naW5lLAotCQkJCQkgICBl bmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCk7CisJCXJpbmcgPSBpbnRlbF9jb250ZXh0X3Bp bihlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCwgZW5naW5lKTsKIAkJaWYgKElTX0VSUihy aW5nKSkgewogCQkJcmV0ID0gUFRSX0VSUihyaW5nKTsKIAkJCWdvdG8gZXJyX3VucGluX2tlcm5l bDsKQEAgLTcxOSw5ICs3MTgsOSBAQCBpbnQgaW50ZWxfZW5naW5lX2luaXRfY29tbW9uKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpbnRlbF9lbmdpbmVfZmluaV9icmVhZGNydW1i cyhlbmdpbmUpOwogZXJyX3VucGluX3ByZWVtcHQ6CiAJaWYgKGVuZ2luZS0+aTkxNS0+cHJlZW1w dF9jb250ZXh0KQotCQllbmdpbmUtPmNvbnRleHRfdW5waW4oZW5naW5lLCBlbmdpbmUtPmk5MTUt PnByZWVtcHRfY29udGV4dCk7CisJCWludGVsX2NvbnRleHRfdW5waW4oZW5naW5lLT5pOTE1LT5w cmVlbXB0X2NvbnRleHQsIGVuZ2luZSk7CiBlcnJfdW5waW5fa2VybmVsOgotCWVuZ2luZS0+Y29u dGV4dF91bnBpbihlbmdpbmUsIGVuZ2luZS0+aTkxNS0+a2VybmVsX2NvbnRleHQpOworCWludGVs X2NvbnRleHRfdW5waW4oZW5naW5lLT5pOTE1LT5rZXJuZWxfY29udGV4dCwgZW5naW5lKTsKIAly ZXR1cm4gcmV0OwogfQogCkBAIC03NDksOCArNzQ4LDggQEAgdm9pZCBpbnRlbF9lbmdpbmVfY2xl YW51cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlpOTE1X2dlbV9v YmplY3RfcHV0KGVuZ2luZS0+ZGVmYXVsdF9zdGF0ZSk7CiAKIAlpZiAoZW5naW5lLT5pOTE1LT5w cmVlbXB0X2NvbnRleHQpCi0JCWVuZ2luZS0+Y29udGV4dF91bnBpbihlbmdpbmUsIGVuZ2luZS0+ aTkxNS0+cHJlZW1wdF9jb250ZXh0KTsKLQllbmdpbmUtPmNvbnRleHRfdW5waW4oZW5naW5lLCBl bmdpbmUtPmk5MTUtPmtlcm5lbF9jb250ZXh0KTsKKwkJaW50ZWxfY29udGV4dF91bnBpbihlbmdp bmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCwgZW5naW5lKTsKKwlpbnRlbF9jb250ZXh0X3VucGlu KGVuZ2luZS0+aTkxNS0+a2VybmVsX2NvbnRleHQsIGVuZ2luZSk7CiB9CiAKIHU2NCBpbnRlbF9l bmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19hZHMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19hZHMuYwppbmRleCAzMzRjYjUyMDJlMWMuLmRj YWEzZmI3MTc2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Fk cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19hZHMuYwpAQCAtMTIxLDcg KzEyMSw4IEBAIGludCBpbnRlbF9ndWNfYWRzX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp CiAJICogdG8gZmluZCBpdC4gTm90ZSB0aGF0IHdlIGhhdmUgdG8gc2tpcCBvdXIgaGVhZGVyICgx IHBhZ2UpLAogCSAqIGJlY2F1c2Ugb3VyIEd1QyBzaGFyZWQgZGF0YSBpcyB0aGVyZS4KIAkgKi8K LQlrZXJuZWxfY3R4X3ZtYSA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dC0+ZW5naW5lW1JDU10u c3RhdGU7CisJa2VybmVsX2N0eF92bWEgPSB0b19pbnRlbF9jb250ZXh0KGRldl9wcml2LT5rZXJu ZWxfY29udGV4dCwKKwkJCQkJICBkZXZfcHJpdi0+ZW5naW5lW1JDU10pLT5zdGF0ZTsKIAlibG9i LT5hZHMuZ29sZGVuX2NvbnRleHRfbHJjYSA9CiAJCWludGVsX2d1Y19nZ3R0X29mZnNldChndWMs IGtlcm5lbF9jdHhfdm1hKSArIHNraXBwZWRfb2Zmc2V0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCAwMmRhMDU4NzVhYTcuLjZlNmVkMGY0NmJk MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCkBAIC0z NjIsNyArMzYyLDcgQEAgc3RhdGljIHZvaWQgZ3VjX3N0YWdlX2Rlc2NfaW5pdChzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMsCiAJZGVzYy0+ZGJfaWQgPSBjbGllbnQtPmRvb3JiZWxsX2lkOwogCiAJZm9y X2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGRldl9wcml2LCBjbGllbnQtPmVuZ2luZXMsIHRt cCkgewotCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSAmY3R4LT5lbmdpbmVbZW5naW5lLT5p ZF07CisJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IHRvX2ludGVsX2NvbnRleHQoY3R4LCBl bmdpbmUpOwogCQl1MzIgZ3VjX2VuZ2luZV9pZCA9IGVuZ2luZS0+Z3VjX2lkOwogCQlzdHJ1Y3Qg Z3VjX2V4ZWNsaXN0X2NvbnRleHQgKmxyYyA9ICZkZXNjLT5scmNbZ3VjX2VuZ2luZV9pZF07CiAK QEAgLTk5MCw3ICs5OTAsOCBAQCBzdGF0aWMgdm9pZCBndWNfZmlsbF9wcmVlbXB0X2NvbnRleHQo c3RydWN0IGludGVsX2d1YyAqZ3VjKQogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCiAJZm9y X2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7Ci0JCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZSA9ICZjbGllbnQtPm93bmVyLT5lbmdpbmVbaWRdOworCQlzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY2UgPQorCQkJdG9faW50ZWxfY29udGV4dChjbGllbnQtPm93bmVyLCBlbmdpbmUpOwog CQl1MzIgYWRkciA9IGludGVsX2h3c19wcmVlbXB0X2RvbmVfYWRkcmVzcyhlbmdpbmUpOwogCQl1 MzIgKmNzOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IGNlMjNkNTExNjQ4Mi4uNzlh Zjc3ODYyMWExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMjIzLDcgKzIyMyw3IEBA IHN0YXRpYyB2b2lkCiBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3JfdXBkYXRlKHN0cnVjdCBp OTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogewotCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZjdHgtPmVuZ2luZVtlbmdpbmUt PmlkXTsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSB0b19pbnRlbF9jb250ZXh0KGN0eCwg ZW5naW5lKTsKIAl1NjQgZGVzYzsKIAogCUJVSUxEX0JVR19PTihNQVhfQ09OVEVYVF9IV19JRCA+ IChCSVQoR0VOOF9DVFhfSURfV0lEVEgpKSk7CkBAIC00MTQsNyArNDE0LDcgQEAgZXhlY2xpc3Rz X3VwZGF0ZV9jb250ZXh0X3BkcHMoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCB1MzIgKnJl Z19zdGF0ZSkKIAogc3RhdGljIHU2NCBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEpCiB7Ci0Jc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gJnJxLT5jdHgt PmVuZ2luZVtycS0+ZW5naW5lLT5pZF07CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gdG9f aW50ZWxfY29udGV4dChycS0+Y3R4LCBycS0+ZW5naW5lKTsKIAlzdHJ1Y3QgaTkxNV9od19wcGd0 dCAqcHBndHQgPQogCQlycS0+Y3R4LT5wcGd0dCA/OiBycS0+aTkxNS0+bW0uYWxpYXNpbmdfcHBn dHQ7CiAJdTMyICpyZWdfc3RhdGUgPSBjZS0+bHJjX3JlZ19zdGF0ZTsKQEAgLTUyMyw3ICs1MjMs NyBAQCBzdGF0aWMgdm9pZCBpbmplY3RfcHJlZW1wdF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xp c3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9Ci0J CSZlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dC0+ZW5naW5lW2VuZ2luZS0+aWRdOworCQl0 b19pbnRlbF9jb250ZXh0KGVuZ2luZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0LCBlbmdpbmUpOwog CXVuc2lnbmVkIGludCBuOwogCiAJR0VNX0JVR19PTihleGVjbGlzdHMtPnByZWVtcHRfY29tcGxl dGVfc3RhdHVzICE9CkBAIC0xMzI4LDcgKzEzMjgsNyBAQCBzdGF0aWMgc3RydWN0IGludGVsX3Jp bmcgKgogZXhlY2xpc3RzX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKIAkJICAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIHsKLQlzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY2UgPSAmY3R4LT5lbmdpbmVbZW5naW5lLT5pZF07CisJc3RydWN0IGludGVs X2NvbnRleHQgKmNlID0gdG9faW50ZWxfY29udGV4dChjdHgsIGVuZ2luZSk7CiAJdm9pZCAqdmFk ZHI7CiAJaW50IHJldDsKIApAQCAtMTM4MSw3ICsxMzgxLDcgQEAgZXhlY2xpc3RzX2NvbnRleHRf cGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIHN0YXRpYyB2b2lkIGV4ZWNsaXN0 c19jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCQkgICAg c3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIHsKLQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y2UgPSAmY3R4LT5lbmdpbmVbZW5naW5lLT5pZF07CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNl ID0gdG9faW50ZWxfY29udGV4dChjdHgsIGVuZ2luZSk7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxk KCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCUdFTV9CVUdfT04oY2UtPnBpbl9jb3Vu dCA9PSAwKTsKQEAgLTE0MDAsOCArMTQwMCw4IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250 ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAogc3RhdGljIGludCBl eGVjbGlzdHNfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogewot CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKLQlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2UgPSAmcmVxdWVzdC0+Y3R4LT5lbmdpbmVbZW5naW5lLT5pZF07 CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0KKwkJdG9faW50ZWxfY29udGV4dChyZXF1ZXN0 LT5jdHgsIHJlcXVlc3QtPmVuZ2luZSk7CiAJaW50IHJldDsKIAogCUdFTV9CVUdfT04oIWNlLT5w aW5fY291bnQpOwpAQCAtMTg1NSw3ICsxODU1LDcgQEAgc3RhdGljIHZvaWQgcmVzZXRfY29tbW9u X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCSAqIGZ1dHVyZSByZXF1ZXN0 IHdpbGwgYmUgYWZ0ZXIgdXNlcnNwYWNlIGhhcyBoYWQgdGhlIG9wcG9ydHVuaXR5CiAJICogdG8g cmVjcmVhdGUgaXRzIG93biBzdGF0ZS4KIAkgKi8KLQljZSA9ICZyZXF1ZXN0LT5jdHgtPmVuZ2lu ZVtlbmdpbmUtPmlkXTsKKwljZSA9IHRvX2ludGVsX2NvbnRleHQocmVxdWVzdC0+Y3R4LCBlbmdp bmUpOwogCWV4ZWNsaXN0c19pbml0X3JlZ19zdGF0ZShjZS0+bHJjX3JlZ19zdGF0ZSwKIAkJCQkg cmVxdWVzdC0+Y3R4LCBlbmdpbmUsIGNlLT5yaW5nKTsKIApAQCAtMjI5Niw5ICsyMjk2LDEzIEBA IHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogCX0KIAogCWVuZ2luZS0+ZXhlY2xpc3RzLnByZWVtcHRfY29tcGxldGVfc3RhdHVzID0g fjB1OwotCWlmIChlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCkKKwlpZiAoZW5naW5lLT5p OTE1LT5wcmVlbXB0X2NvbnRleHQpIHsKKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0KKwkJ CXRvX2ludGVsX2NvbnRleHQoZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQsIGVuZ2luZSk7 CisKIAkJZW5naW5lLT5leGVjbGlzdHMucHJlZW1wdF9jb21wbGV0ZV9zdGF0dXMgPQotCQkJdXBw ZXJfMzJfYml0cyhlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dC0+ZW5naW5lW2VuZ2luZS0+ aWRdLmxyY19kZXNjKTsKKwkJCXVwcGVyXzMyX2JpdHMoY2UtPmxyY19kZXNjKTsKKwl9CiAKIAly ZXR1cm4gMDsKIApAQCAtMjU4MCw3ICsyNTg0LDcgQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29u dGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQkJCQkg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpjdHhfb2JqOwotCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZjdHgtPmVu Z2luZVtlbmdpbmUtPmlkXTsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSB0b19pbnRlbF9j b250ZXh0KGN0eCwgZW5naW5lKTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAl1aW50MzJfdCBj b250ZXh0X3NpemU7CiAJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7CkBAIC0yNjUxLDcgKzI2NTUs OCBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAkgKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0eCwgJmRldl9wcml2LT5j b250ZXh0cy5saXN0LCBsaW5rKSB7CiAJCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2 LCBpZCkgewotCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gJmN0eC0+ZW5naW5lW2VuZ2lu ZS0+aWRdOworCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0KKwkJCQl0b19pbnRlbF9jb250 ZXh0KGN0eCwgZW5naW5lKTsKIAkJCXUzMiAqcmVnOwogCiAJCQlpZiAoIWNlLT5zdGF0ZSkKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmgKaW5kZXggNTlkN2I4NjAxMmU5Li40ZWM3ZDhkZDEzYzggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RhdGljIGlubGlu ZSB1aW50NjRfdAogaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9yKHN0cnVjdCBpOTE1X2dlbV9j b250ZXh0ICpjdHgsCiAJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewot CXJldHVybiBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5scmNfZGVzYzsKKwlyZXR1cm4gdG9faW50 ZWxfY29udGV4dChjdHgsIGVuZ2luZSktPmxyY19kZXNjOwogfQogCiAjZW5kaWYgLyogX0lOVEVM X0xSQ19IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IGMw NmMyMmM5NTNiMy4uNjlmZmMwZGZlOTJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jCkBAIC01NTgsNyArNTU4LDggQEAgc3RhdGljIHZvaWQgcmVzZXRfcmluZ19jb21t b24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCSAqLwogCWlmIChyZXF1ZXN0KSB7 CiAJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJlcXVlc3QtPmk5MTU7Ci0J CXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZyZXF1ZXN0LT5jdHgtPmVuZ2luZVtlbmdpbmUt PmlkXTsKKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gdG9faW50ZWxfY29udGV4dChyZXF1 ZXN0LT5jdHgsCisJCQkJCQkJICAgIGVuZ2luZSk7CiAJCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpw cGd0dDsKIAogCQlpZiAoY2UtPnN0YXRlKSB7CkBAIC0xMTYzLDkgKzExNjQsOSBAQCBpbnRlbF9y aW5nX2ZyZWUoc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCiAJa2ZyZWUocmluZyk7CiB9CiAKLXN0 YXRpYyBpbnQgY29udGV4dF9waW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKK3N0YXRp YyBpbnQgY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogewotCXN0cnVjdCBp OTE1X3ZtYSAqdm1hID0gY3R4LT5lbmdpbmVbUkNTXS5zdGF0ZTsKKwlzdHJ1Y3QgaTkxNV92bWEg KnZtYSA9IGNlLT5zdGF0ZTsKIAlpbnQgcmV0OwogCiAJLyoKQEAgLTEyNTYsNyArMTI1Nyw3IEBA IHN0YXRpYyBzdHJ1Y3QgaW50ZWxfcmluZyAqCiBpbnRlbF9yaW5nX2NvbnRleHRfcGluKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJICAgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0ICpjdHgpCiB7Ci0Jc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gJmN0eC0+ZW5naW5lW2Vu Z2luZS0+aWRdOworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IHRvX2ludGVsX2NvbnRleHQo Y3R4LCBlbmdpbmUpOwogCWludCByZXQ7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5 MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpAQCAtMTI3OCw3ICsxMjc5LDcgQEAgaW50ZWxfcmluZ19j b250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJfQogCiAJaWYgKGNl LT5zdGF0ZSkgewotCQlyZXQgPSBjb250ZXh0X3BpbihjdHgpOworCQlyZXQgPSBjb250ZXh0X3Bp bihjZSk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycjsKIApAQCAtMTI5OSw3ICsxMzAwLDcgQEAg aW50ZWxfcmluZ19jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiBz dGF0aWMgdm9pZCBpbnRlbF9yaW5nX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAogCQkJCSAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIHsKLQlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSAmY3R4LT5lbmdpbmVbZW5naW5lLT5pZF07CisJc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlID0gdG9faW50ZWxfY29udGV4dChjdHgsIGVuZ2luZSk7CiAK IAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCUdF TV9CVUdfT04oY2UtPnBpbl9jb3VudCA9PSAwKTsKQEAgLTE0MjcsNyArMTQyOCw3IEBAIHN0YXRp YyBpbmxpbmUgaW50IG1pX3NldF9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIg ZmxhZ3MpCiAKIAkqY3MrKyA9IE1JX05PT1A7CiAJKmNzKysgPSBNSV9TRVRfQ09OVEVYVDsKLQkq Y3MrKyA9IGk5MTVfZ2d0dF9vZmZzZXQocnEtPmN0eC0+ZW5naW5lW1JDU10uc3RhdGUpIHwgZmxh Z3M7CisJKmNzKysgPSBpOTE1X2dndHRfb2Zmc2V0KHRvX2ludGVsX2NvbnRleHQocnEtPmN0eCwg ZW5naW5lKS0+c3RhdGUpIHwgZmxhZ3M7CiAJLyoKIAkgKiB3L2E6IE1JX1NFVF9DT05URVhUIG11 c3QgYWx3YXlzIGJlIGZvbGxvd2VkIGJ5IE1JX05PT1AKIAkgKiBXYU1pU2V0Q29udGV4dF9IYW5n OnNuYixpdmIsdmx2CkBAIC0xNTE4LDcgKzE1MTksNyBAQCBzdGF0aWMgaW50IHN3aXRjaF9jb250 ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogCQlod19mbGFncyA9IE1JX0ZPUkNFX1JFU1RP UkU7CiAJfQogCi0JaWYgKHRvX2N0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnN0YXRlICYmCisJaWYg KHRvX2ludGVsX2NvbnRleHQodG9fY3R4LCBlbmdpbmUpLT5zdGF0ZSAmJgogCSAgICAodG9fY3R4 ICE9IGZyb21fY3R4IHx8IGh3X2ZsYWdzICYgTUlfRk9SQ0VfUkVTVE9SRSkpIHsKIAkJR0VNX0JV R19PTihlbmdpbmUtPmlkICE9IFJDUyk7CiAKQEAgLTE1NjYsNyArMTU2Nyw3IEBAIHN0YXRpYyBp bnQgcmluZ19yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiB7CiAJ aW50IHJldDsKIAotCUdFTV9CVUdfT04oIXJlcXVlc3QtPmN0eC0+ZW5naW5lW3JlcXVlc3QtPmVu Z2luZS0+aWRdLnBpbl9jb3VudCk7CisJR0VNX0JVR19PTighdG9faW50ZWxfY29udGV4dChyZXF1 ZXN0LT5jdHgsIHJlcXVlc3QtPmVuZ2luZSktPnBpbl9jb3VudCk7CiAKIAkvKiBGbHVzaCBlbm91 Z2ggc3BhY2UgdG8gcmVkdWNlIHRoZSBsaWtlbGlob29kIG9mIHdhaXRpbmcgYWZ0ZXIKIAkgKiB3 ZSBzdGFydCBidWlsZGluZyB0aGUgcmVxdWVzdCAtIGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCBqdXN0 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jCmluZGV4IDc4 YTg5ZWZhMTExOS4uM2VkMDU1NzMxNmQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvbW9ja19lbmdpbmUuYwpAQCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgbW9ja19lbmdpbmVf ZnJlZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJR0VNX0JVR19PTih0aW1lcl9w ZW5kaW5nKCZtb2NrLT5od19kZWxheSkpOwogCiAJaWYgKGVuZ2luZS0+bGFzdF9yZXRpcmVkX2Nv bnRleHQpCi0JCWVuZ2luZS0+Y29udGV4dF91bnBpbihlbmdpbmUsIGVuZ2luZS0+bGFzdF9yZXRp cmVkX2NvbnRleHQpOworCQlpbnRlbF9jb250ZXh0X3VucGluKGVuZ2luZS0+bGFzdF9yZXRpcmVk X2NvbnRleHQsIGVuZ2luZSk7CiAKIAlpbnRlbF9lbmdpbmVfZmluaV9icmVhZGNydW1icyhlbmdp bmUpOwogCi0tIAoyLjE3LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=