From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 4/9] drm/i915: Replace engine->timeline with a plain list Date: Tue, 28 May 2019 14:37:45 +0100 Message-ID: <20190528133750.12775-4-chris@chris-wilson.co.uk> References: <20190528133750.12775-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 DB7D089CDD for ; Tue, 28 May 2019 13:38:18 +0000 (UTC) In-Reply-To: <20190528133750.12775-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 VG8gY29udGludWUgdGhlIG9uc2xhdWdodCBvZiByZW1vdmluZyB0aGUgYXNzdW1wdGlvbiBvZiBh IGdsb2JhbApleGVjdXRpb24gb3JkZXJpbmcsIGFub3RoZXIgY2FzdWFsdHkgaXMgdGhlIGVuZ2lu ZS0+dGltZWxpbmUuIFdpdGhvdXQgYW4KYWN0dWFsIHRpbWVsaW5lIHRvIHRyYWNrLCBpdCBpcyBv dmVya2lsbCBhbmQgd2UgY2FuIHJlcGxhY2UgaXQgd2l0aCBhCm11Y2ggbGVzcyBncmFuZCBwbGFp biBsaXN0LiBXZSBzdGlsbCBuZWVkIGEgbGlzdCBvZiByZXF1ZXN0cyBpbmZsaWdodCwKZm9yIHRo ZSBzaW1wbGUgcHVycG9zZSBvZiBmaW5kaW5nIGluZmxpZ2h0IHJlcXVlc3RzIChmb3IgcmV0aXJp bmcsCnJlc2V0dGluZywgcHJlZW1wdGlvbiBldGMpLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZW5naW5lLmggICAgICAgIHwgIDYgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2VuZ2luZV9jcy5jICAgICB8IDYyICsrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggIHwgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2xyYy5jICAgICAgICAgICB8IDk1ICsrKysrKysrKystLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMgICAgICAgICB8IDEwICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgICAgfCAxNSArKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMgICAgICAgICB8IDE4ICsrLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgICAgICB8ICA1ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgICAgICAgfCA0MyArKystLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oICAgICAgICAgICB8ICAyICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jICAgICAgICAgfCAzOCArKysrLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5jICAgICAgICAgIHwgIDEgLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5oICAgICAgICAgIHwgMTkgLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZV90eXBlcy5oICAgIHwgIDQgLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyAgIHwgMTYgKystLQogLi4uL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja190aW1lbGluZS5jICAgIHwgIDEgLQogMTYgZmlsZXMg Y2hhbmdlZCwgMTUzIGluc2VydGlvbnMoKyksIDE4OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oCmluZGV4IGZlOTQ1NGZhYWM3MC4uNjgxNWRmMzBmNGQy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaApAQCAtNTQ2LDQgKzU0Niwx MCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaW5qZWN0X3ByZWVtcHRfaGFuZyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQogCiAjZW5kaWYKIAordm9pZCBpbnRlbF9lbmdp bmVfaW5pdF9hY3RpdmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJICAgICAg dW5zaWduZWQgaW50IHN1YmNsYXNzKTsKKyNkZWZpbmUgRU5HSU5FX1BIWVNJQ0FMCTAKKyNkZWZp bmUgRU5HSU5FX01PQ0sJMQorI2RlZmluZSBFTkdJTkVfVklSVFVBTAkyCisKICNlbmRpZiAvKiBf SU5URUxfUklOR0JVRkZFUl9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdp bmVfY3MuYwppbmRleCA5OGIyMTc2MjE0NzUuLjAyODdjM2IwOTRhMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKQEAgLTYxNywxNCArNjE3LDcgQEAgc3RhdGlj IGludCBpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JZXJyID0gaTkxNV90aW1lbGluZV9p bml0KGVuZ2luZS0+aTkxNSwKLQkJCQkgJmVuZ2luZS0+dGltZWxpbmUsCi0JCQkJIGVuZ2luZS0+ c3RhdHVzX3BhZ2Uudm1hKTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9od3NwOwotCi0JaTkxNV90 aW1lbGluZV9zZXRfc3ViY2xhc3MoJmVuZ2luZS0+dGltZWxpbmUsIFRJTUVMSU5FX0VOR0lORSk7 Ci0KKwlpbnRlbF9lbmdpbmVfaW5pdF9hY3RpdmUoZW5naW5lLCBFTkdJTkVfUEhZU0lDQUwpOwog CWludGVsX2VuZ2luZV9pbml0X2JyZWFkY3J1bWJzKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX2lu aXRfZXhlY2xpc3RzKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKGVuZ2lu ZSk7CkBAIC02MzcsMTAgKzYzMCw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZW5naW5lX3NldHVwX2Nv bW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWludGVsX3NzZXVfZnJvbV9k ZXZpY2VfaW5mbygmUlVOVElNRV9JTkZPKGVuZ2luZS0+aTkxNSktPnNzZXUpOwogCiAJcmV0dXJu IDA7Ci0KLWVycl9od3NwOgotCWNsZWFudXBfc3RhdHVzX3BhZ2UoZW5naW5lKTsKLQlyZXR1cm4g ZXJyOwogfQogCiAvKioKQEAgLTc5Nyw2ICs3ODYsMjcgQEAgc3RhdGljIGludCBwaW5fY29udGV4 dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCXJldHVybiAwOwogfQogCit2b2lkCitp bnRlbF9lbmdpbmVfaW5pdF9hY3RpdmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1 bnNpZ25lZCBpbnQgc3ViY2xhc3MpCit7CisJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+YWN0aXZl LnJlcXVlc3RzKTsKKworCXNwaW5fbG9ja19pbml0KCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKKwls b2NrZGVwX3NldF9zdWJjbGFzcygmZW5naW5lLT5hY3RpdmUubG9jaywgc3ViY2xhc3MpOworCisJ LyoKKwkgKiBEdWUgdG8gYW4gaW50ZXJlc3RpbmcgcXVpcmsgaW4gbG9ja2RlcCdzIGludGVybmFs IGRlYnVnIHRyYWNraW5nLAorCSAqIGFmdGVyIHNldHRpbmcgYSBzdWJjbGFzcyB3ZSBtdXN0IGVu c3VyZSB0aGUgbG9jayBpcyB1c2VkLiBPdGhlcndpc2UsCisJICogbnJfdW51c2VkX2xvY2tzIGlz IGluY3JlbWVudGVkIG9uY2UgdG9vIG9mdGVuLgorCSAqLworI2lmZGVmIENPTkZJR19ERUJVR19M T0NLX0FMTE9DCisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlsb2NrX21hcF9hY3F1aXJlKCZlbmdp bmUtPmFjdGl2ZS5sb2NrLmRlcF9tYXApOworCWxvY2tfbWFwX3JlbGVhc2UoJmVuZ2luZS0+YWN0 aXZlLmxvY2suZGVwX21hcCk7CisJbG9jYWxfaXJxX2VuYWJsZSgpOworI2VuZGlmCit9CisKIC8q KgogICogaW50ZWxfZW5naW5lc19pbml0X2NvbW1vbiAtIGluaXRpYWxpemUgY2VuZ2luZSBzdGF0 ZSB3aGljaCBtaWdodCByZXF1aXJlIGh3IGFjY2VzcwogICogQGVuZ2luZTogRW5naW5lIHRvIGlu aXRpYWxpemUuCkBAIC04NjAsNiArODcwLDggQEAgaW50IGludGVsX2VuZ2luZV9pbml0X2NvbW1v bihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAgKi8KIHZvaWQgaW50ZWxfZW5naW5l X2NsZWFudXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKKwlHRU1f QlVHX09OKCFsaXN0X2VtcHR5KCZlbmdpbmUtPmFjdGl2ZS5yZXF1ZXN0cykpOworCiAJY2xlYW51 cF9zdGF0dXNfcGFnZShlbmdpbmUpOwogCiAJaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMo ZW5naW5lKTsKQEAgLTg3NCw4ICs4ODYsNiBAQCB2b2lkIGludGVsX2VuZ2luZV9jbGVhbnVwX2Nv bW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaW50ZWxfY29udGV4dF91bnBp bihlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKIAlHRU1fQlVHX09OKCFsbGlzdF9lbXB0eSgmZW5n aW5lLT5iYXJyaWVyX3Rhc2tzKSk7CiAKLQlpOTE1X3RpbWVsaW5lX2ZpbmkoJmVuZ2luZS0+dGlt ZWxpbmUpOwotCiAJaW50ZWxfd2FfbGlzdF9mcmVlKCZlbmdpbmUtPmN0eF93YV9saXN0KTsKIAlp bnRlbF93YV9saXN0X2ZyZWUoJmVuZ2luZS0+d2FfbGlzdCk7CiAJaW50ZWxfd2FfbGlzdF9mcmVl KCZlbmdpbmUtPndoaXRlbGlzdCk7CkBAIC0xNDgxLDE2ICsxNDkxLDYgQEAgdm9pZCBpbnRlbF9l bmdpbmVfZHVtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAKIAlkcm1fcHJpbnRm KG0sICJcdFJlcXVlc3RzOlxuIik7CiAKLQlycSA9IGxpc3RfZmlyc3RfZW50cnkoJmVuZ2luZS0+ dGltZWxpbmUucmVxdWVzdHMsCi0JCQkgICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0LCBsaW5rKTsK LQlpZiAoJnJxLT5saW5rICE9ICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzKQotCQlwcmludF9y ZXF1ZXN0KG0sIHJxLCAiXHRcdGZpcnN0ICAiKTsKLQotCXJxID0gbGlzdF9sYXN0X2VudHJ5KCZl bmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzLAotCQkJICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0LCBs aW5rKTsKLQlpZiAoJnJxLT5saW5rICE9ICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzKQotCQlw cmludF9yZXF1ZXN0KG0sIHJxLCAiXHRcdGxhc3QgICAiKTsKLQogCXJxID0gaW50ZWxfZW5naW5l X2ZpbmRfYWN0aXZlX3JlcXVlc3QoZW5naW5lKTsKIAlpZiAocnEpIHsKIAkJcHJpbnRfcmVxdWVz dChtLCBycSwgIlx0XHRhY3RpdmUgIik7CkBAIC0xNTcxLDcgKzE1NzEsNyBAQCBpbnQgaW50ZWxf ZW5hYmxlX2VuZ2luZV9zdGF0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaWYg KCFpbnRlbF9lbmdpbmVfc3VwcG9ydHNfc3RhdHMoZW5naW5lKSkKIAkJcmV0dXJuIC1FTk9ERVY7 CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJ c3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAl3cml0ZV9z ZXFsb2NrKCZlbmdpbmUtPnN0YXRzLmxvY2spOwogCiAJaWYgKHVubGlrZWx5KGVuZ2luZS0+c3Rh dHMuZW5hYmxlZCA9PSB+MCkpIHsKQEAgLTE1OTcsNyArMTU5Nyw3IEBAIGludCBpbnRlbF9lbmFi bGVfZW5naW5lX3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogdW5sb2Nr OgogCXdyaXRlX3NlcXVubG9jaygmZW5naW5lLT5zdGF0cy5sb2NrKTsKLQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gZXJyOwog fQpAQCAtMTY4MiwyMiArMTY4MiwyMiBAQCBpbnRlbF9lbmdpbmVfZmluZF9hY3RpdmVfcmVxdWVz dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICogQXQgYWxsIG90aGVyIHRpbWVz LCB3ZSBtdXN0IGFzc3VtZSB0aGUgR1BVIGlzIHN0aWxsIHJ1bm5pbmcsIGJ1dAogCSAqIHdlIG9u bHkgY2FyZSBhYm91dCB0aGUgc25hcHNob3Qgb2YgdGhpcyBtb21lbnQuCiAJICovCi0Jc3Bpbl9s b2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwotCWxpc3RfZm9yX2Vh Y2hfZW50cnkocmVxdWVzdCwgJmVuZ2luZS0+dGltZWxpbmUucmVxdWVzdHMsIGxpbmspIHsKKwlz cGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOworCWxpc3RfZm9y X2VhY2hfZW50cnkocmVxdWVzdCwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5r KSB7CiAJCWlmIChpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJlcXVlc3QpKQogCQkJY29udGludWU7 CiAKIAkJaWYgKCFpOTE1X3JlcXVlc3Rfc3RhcnRlZChyZXF1ZXN0KSkKLQkJCWJyZWFrOworCQkJ Y29udGludWU7CiAKIAkJLyogTW9yZSB0aGFuIG9uZSBwcmVlbXB0aWJsZSByZXF1ZXN0IG1heSBt YXRjaCEgKi8KIAkJaWYgKCFtYXRjaF9yaW5nKHJlcXVlc3QpKQotCQkJYnJlYWs7CisJCQljb250 aW51ZTsKIAogCQlhY3RpdmUgPSByZXF1ZXN0OwogCQlicmVhazsKIAl9Ci0Jc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogCiAJcmV0dXJuIGFjdGl2 ZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90 eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKaW5k ZXggMzNhMzFhYTJkMmFlLi5iMmZhY2E4ZTVkZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCkBAIC0yODgsNyArMjg4LDExIEBAIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgewogCiAJc3RydWN0IGludGVsX3JpbmcgKmJ1ZmZlcjsKIAotCXN0cnVjdCBp OTE1X3RpbWVsaW5lIHRpbWVsaW5lOworCXN0cnVjdCB7CisJCXNwaW5sb2NrX3QgbG9jazsKKwkJ c3RydWN0IGxpc3RfaGVhZCByZXF1ZXN0czsKKwl9IGFjdGl2ZTsKKwogCXN0cnVjdCBsbGlzdF9o ZWFkIGJhcnJpZXJfdGFza3M7CiAKIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqa2VybmVsX2NvbnRl eHQ7IC8qIHBpbm5lZCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwppbmRleCAzMzFh NjQwNjBjMzIuLmVjYTk5N2U4N2ZlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMK QEAgLTI5OCw4ICsyOTgsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbmVlZF9wcmVlbXB0KGNvbnN0 IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkgKiBDaGVjayBhZ2FpbnN0IHRoZSBm aXJzdCByZXF1ZXN0IGluIEVMU1BbMV0sIGl0IHdpbGwsIHRoYW5rcyB0byB0aGUKIAkgKiBwb3dl ciBvZiBQSSwgYmUgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgb2YgdGhhdCBjb250ZXh0LgogCSAqLwot CWlmICghbGlzdF9pc19sYXN0KCZycS0+bGluaywgJmVuZ2luZS0+dGltZWxpbmUucmVxdWVzdHMp ICYmCi0JICAgIHJxX3ByaW8obGlzdF9uZXh0X2VudHJ5KHJxLCBsaW5rKSkgPiBsYXN0X3ByaW8p CisJaWYgKCFsaXN0X2lzX2xhc3QoJnJxLT5zY2hlZC5saW5rLCAmZW5naW5lLT5hY3RpdmUucmVx dWVzdHMpICYmCisJICAgIHJxX3ByaW8obGlzdF9uZXh0X2VudHJ5KHJxLCBzY2hlZC5saW5rKSkg PiBsYXN0X3ByaW8pCiAJCXJldHVybiB0cnVlOwogCiAJaWYgKHJiKSB7CkBAIC00MzQsMTEgKzQz NCwxMSBAQCBfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIAlzdHJ1Y3QgbGlzdF9oZWFkICp1bmluaXRpYWxpemVkX3ZhcihwbCk7CiAJ aW50IHByaW8gPSBJOTE1X1BSSU9SSVRZX0lOVkFMSUQ7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxk KCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+ YWN0aXZlLmxvY2spOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlX3JldmVyc2UocnEsIHJu LAotCQkJCQkgJmVuZ2luZS0+dGltZWxpbmUucmVxdWVzdHMsCi0JCQkJCSBsaW5rKSB7CisJCQkJ CSAmZW5naW5lLT5hY3RpdmUucmVxdWVzdHMsCisJCQkJCSBzY2hlZC5saW5rKSB7CiAJCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKm93bmVyOwogCiAJCWlmIChpOTE1X3JlcXVlc3RfY29tcGxldGVk KHJxKSkKQEAgLTQ2NSw3ICs0NjUsNyBAQCBfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCX0KIAkJCUdFTV9CVUdfT04oUkJfRU1Q VFlfUk9PVCgmZW5naW5lLT5leGVjbGlzdHMucXVldWUucmJfcm9vdCkpOwogCi0JCQlsaXN0X2Fk ZCgmcnEtPnNjaGVkLmxpbmssIHBsKTsKKwkJCWxpc3RfbW92ZSgmcnEtPnNjaGVkLmxpbmssIHBs KTsKIAkJCWFjdGl2ZSA9IHJxOwogCQl9IGVsc2UgewogCQkJcnEtPmVuZ2luZSA9IG93bmVyOwpA QCAtOTMzLDExICs5MzMsMTEgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJcmJfZW50cnkocmIsIHR5cGVvZigqdmUpLCBu b2Rlc1tlbmdpbmUtPmlkXS5yYik7CiAJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCi0JCXNw aW5fbG9jaygmdmUtPmJhc2UudGltZWxpbmUubG9jayk7CisJCXNwaW5fbG9jaygmdmUtPmJhc2Uu YWN0aXZlLmxvY2spOwogCiAJCXJxID0gdmUtPnJlcXVlc3Q7CiAJCWlmICh1bmxpa2VseSghcnEp KSB7IC8qIGxvc3QgdGhlIHJhY2UgdG8gYSBzaWJsaW5nICovCi0JCQlzcGluX3VubG9jaygmdmUt PmJhc2UudGltZWxpbmUubG9jayk7CisJCQlzcGluX3VubG9jaygmdmUtPmJhc2UuYWN0aXZlLmxv Y2spOwogCQkJcmJfZXJhc2VfY2FjaGVkKHJiLCAmZXhlY2xpc3RzLT52aXJ0dWFsKTsKIAkJCVJC X0NMRUFSX05PREUocmIpOwogCQkJcmIgPSByYl9maXJzdF9jYWNoZWQoJmV4ZWNsaXN0cy0+dmly dHVhbCk7CkBAIC05NTAsMTMgKzk1MCwxMyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1 ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAkJaWYgKHJxX3ByaW8ocnEpID49 IHF1ZXVlX3ByaW8oZXhlY2xpc3RzKSkgewogCQkJaWYgKCF2aXJ0dWFsX21hdGNoZXModmUsIHJx LCBlbmdpbmUpKSB7Ci0JCQkJc3Bpbl91bmxvY2soJnZlLT5iYXNlLnRpbWVsaW5lLmxvY2spOwor CQkJCXNwaW5fdW5sb2NrKCZ2ZS0+YmFzZS5hY3RpdmUubG9jayk7CiAJCQkJcmIgPSByYl9uZXh0 KHJiKTsKIAkJCQljb250aW51ZTsKIAkJCX0KIAogCQkJaWYgKGxhc3QgJiYgIWNhbl9tZXJnZV9y cShsYXN0LCBycSkpIHsKLQkJCQlzcGluX3VubG9jaygmdmUtPmJhc2UudGltZWxpbmUubG9jayk7 CisJCQkJc3Bpbl91bmxvY2soJnZlLT5iYXNlLmFjdGl2ZS5sb2NrKTsKIAkJCQlyZXR1cm47IC8q IGxlYXZlIHRoaXMgcnEgZm9yIGFub3RoZXIgZW5naW5lICovCiAJCQl9CiAKQEAgLTEwMTEsNyAr MTAxMSw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKIAkJCWxhc3QgPSBycTsKIAkJfQogCi0JCXNwaW5fdW5sb2NrKCZ2ZS0+ YmFzZS50aW1lbGluZS5sb2NrKTsKKwkJc3Bpbl91bmxvY2soJnZlLT5iYXNlLmFjdGl2ZS5sb2Nr KTsKIAkJYnJlYWs7CiAJfQogCkBAIC0xMDY4LDggKzEwNjgsNiBAQCBzdGF0aWMgdm9pZCBleGVj bGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCQkJR0VNX0JV R19PTihwb3J0X2lzc2V0KHBvcnQpKTsKIAkJCX0KIAotCQkJbGlzdF9kZWxfaW5pdCgmcnEtPnNj aGVkLmxpbmspOwotCiAJCQlfX2k5MTVfcmVxdWVzdF9zdWJtaXQocnEpOwogCQkJdHJhY2VfaTkx NV9yZXF1ZXN0X2luKHJxLCBwb3J0X2luZGV4KHBvcnQsIGV4ZWNsaXN0cykpOwogCkBAIC0xMTcw LDcgKzExNjgsNyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiAJY29uc3QgdTggbnVtX2VudHJpZXMgPSBleGVjbGlzdHMtPmNzYl9zaXpl OwogCXU4IGhlYWQsIHRhaWw7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPnRpbWVs aW5lLmxvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+YWN0aXZlLmxvY2spOwog CiAJLyoKIAkgKiBOb3RlIHRoYXQgY3NiX3dyaXRlLCBjc2Jfc3RhdHVzIG1heSBiZSBlaXRoZXIg aW4gSFdTUCBvciBtbWlvLgpAQCAtMTMzMCw3ICsxMzI4LDcgQEAgc3RhdGljIHZvaWQgcHJvY2Vz c19jc2Ioc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiBzdGF0aWMgdm9pZCBfX2V4 ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqY29uc3Qg ZW5naW5lKQogewotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7 CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT5hY3RpdmUubG9jayk7CiAKIAlwcm9jZXNz X2NzYihlbmdpbmUpOwogCWlmICghZXhlY2xpc3RzX2lzX2FjdGl2ZSgmZW5naW5lLT5leGVjbGlz dHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkpCkBAIC0xMzUxLDE1ICsxMzQ5LDE2IEBAIHN0 YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRh KQogCQkgICEhaW50ZWxfd2FrZXJlZl9hY3RpdmUoJmVuZ2luZS0+d2FrZXJlZiksCiAJCSAgZW5n aW5lLT5leGVjbGlzdHMuYWN0aXZlKTsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRp bWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUu bG9jaywgZmxhZ3MpOwogCV9fZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldChlbmdpbmUpOwot CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwor CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIH0K IAogc3RhdGljIHZvaWQgcXVldWVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCiAJCQkgIHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUsCiAJCQkgIGludCBwcmlvKQog eworCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJm5vZGUtPmxpbmspKTsKIAlsaXN0X2FkZF90YWls KCZub2RlLT5saW5rLCBpOTE1X3NjaGVkX2xvb2t1cF9wcmlvbGlzdChlbmdpbmUsIHByaW8pKTsK IH0KIApAQCAtMTM5MCw3ICsxMzg5LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9y ZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiAJdW5zaWduZWQgbG9uZyBmbGFn czsKIAogCS8qIFdpbGwgYmUgY2FsbGVkIGZyb20gaXJxLWNvbnRleHQgd2hlbiB1c2luZyBmb3Jl aWduIGZlbmNlcy4gKi8KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2Nr LCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdz KTsKIAogCXF1ZXVlX3JlcXVlc3QoZW5naW5lLCAmcmVxdWVzdC0+c2NoZWQsIHJxX3ByaW8ocmVx dWVzdCkpOwogCkBAIC0xMzk5LDcgKzEzOTgsNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3Vi bWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAogCXN1Ym1pdF9xdWV1 ZShlbmdpbmUsIHJxX3ByaW8ocmVxdWVzdCkpOwogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgdm9pZCBfX2V4ZWNsaXN0 c19jb250ZXh0X2Zpbmkoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQpAQCAtMjA1MCw4ICsyMDQ5 LDggQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Jlc2V0X3ByZXBhcmUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogCWludGVsX2VuZ2luZV9zdG9wX2NzKGVuZ2luZSk7CiAKIAkvKiBB bmQgZmx1c2ggYW55IGN1cnJlbnQgZGlyZWN0IHN1Ym1pc3Npb24uICovCi0Jc3Bpbl9sb2NrX2ly cXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwotCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZl KCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgYm9vbCBscmNfcmVnc19v ayhjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKQEAgLTIwOTQsMTEgKzIwOTMsMTEgQEAg c3RhdGljIHZvaWQgcmVzZXRfY3NiX3BvaW50ZXJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xp c3RzICpleGVjbGlzdHMpCiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICphY3RpdmVfcmVx dWVzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKLQljb25zdCBzdHJ1Y3QgbGlzdF9oZWFk ICogY29uc3QgbGlzdCA9ICZycS0+ZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0czsKKwljb25zdCBz dHJ1Y3QgbGlzdF9oZWFkICogY29uc3QgbGlzdCA9ICZycS0+ZW5naW5lLT5hY3RpdmUucmVxdWVz dHM7CiAJY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHQgKiBjb25zdCBjb250ZXh0ID0gcnEtPmh3 X2NvbnRleHQ7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqYWN0aXZlID0gTlVMTDsKIAotCWxpc3Rf Zm9yX2VhY2hfZW50cnlfZnJvbV9yZXZlcnNlKHJxLCBsaXN0LCBsaW5rKSB7CisJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9mcm9tX3JldmVyc2UocnEsIGxpc3QsIHNjaGVkLmxpbmspIHsKIAkJaWYgKGk5 MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKQogCQkJYnJlYWs7CiAKQEAgLTIyMTUsMTEgKzIyMTQs MTEgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwgYm9vbCBzdGFsbGVkKQogCiAJR0VNX1RSQUNFKCIlc1xuIiwgZW5naW5lLT5uYW1l KTsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsK KwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogCiAJX19l eGVjbGlzdHNfcmVzZXQoZW5naW5lLCBzdGFsbGVkKTsKIAotCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIH0KIAogc3RhdGljIHZvaWQgbm9wX3N1 Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCkBAIC0yMjUwLDEyICsyMjQ5LDEy IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogCSAqIHN1Ym1pc3Npb24ncyBpcnEgc3RhdGUsIHdlIGFsc28gd2lz aCB0byByZW1pbmQgb3Vyc2VsdmVzIHRoYXQKIAkgKiBpdCBpcyBpcnEgc3RhdGUuKQogCSAqLwot CXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGlu X2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogCiAJX19leGVjbGlz dHNfcmVzZXQoZW5naW5lLCB0cnVlKTsKIAogCS8qIE1hcmsgYWxsIGV4ZWN1dGluZyByZXF1ZXN0 cyBhcyBza2lwcGVkLiAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkocnEsICZlbmdpbmUtPnRpbWVs aW5lLnJlcXVlc3RzLCBsaW5rKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShycSwgJmVuZ2luZS0+ YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5rKSB7CiAJCWlmICghaTkxNV9yZXF1ZXN0X3NpZ25h bGVkKHJxKSkKIAkJCWRtYV9mZW5jZV9zZXRfZXJyb3IoJnJxLT5mZW5jZSwgLUVJTyk7CiAKQEAg LTIyODYsNyArMjI4NSw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jYW5jZWxfcmVxdWVzdHMo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlyYl9lcmFzZV9jYWNoZWQocmIsICZl eGVjbGlzdHMtPnZpcnR1YWwpOwogCQlSQl9DTEVBUl9OT0RFKHJiKTsKIAotCQlzcGluX2xvY2so JnZlLT5iYXNlLnRpbWVsaW5lLmxvY2spOworCQlzcGluX2xvY2soJnZlLT5iYXNlLmFjdGl2ZS5s b2NrKTsKIAkJaWYgKHZlLT5yZXF1ZXN0KSB7CiAJCQl2ZS0+cmVxdWVzdC0+ZW5naW5lID0gZW5n aW5lOwogCQkJX19pOTE1X3JlcXVlc3Rfc3VibWl0KHZlLT5yZXF1ZXN0KTsKQEAgLTIyOTUsNyAr MjI5NCw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJdmUtPmJhc2UuZXhlY2xpc3RzLnF1ZXVlX3ByaW9y aXR5X2hpbnQgPSBJTlRfTUlOOwogCQkJdmUtPnJlcXVlc3QgPSBOVUxMOwogCQl9Ci0JCXNwaW5f dW5sb2NrKCZ2ZS0+YmFzZS50aW1lbGluZS5sb2NrKTsKKwkJc3Bpbl91bmxvY2soJnZlLT5iYXNl LmFjdGl2ZS5sb2NrKTsKIAl9CiAKIAkvKiBSZW1haW5pbmcgX3VucmVhZHlfIHJlcXVlc3RzIHdp bGwgYmUgbm9wJ2VkIHdoZW4gc3VibWl0dGVkICovCkBAIC0yMzA3LDcgKzIzMDYsNyBAQCBzdGF0 aWMgdm9pZCBleGVjbGlzdHNfY2FuY2VsX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAlHRU1fQlVHX09OKF9fdGFza2xldF9pc19lbmFibGVkKCZleGVjbGlzdHMtPnRh c2tsZXQpKTsKIAlleGVjbGlzdHMtPnRhc2tsZXQuZnVuYyA9IG5vcF9zdWJtaXNzaW9uX3Rhc2ts ZXQ7CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZs YWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFn cyk7CiB9CiAKIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19yZXNldF9maW5pc2goc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQpAQCAtMzAwOSwxMiArMzAwOCwxOCBAQCBzdGF0aWMgaW50IGV4 ZWNsaXN0c19jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwK IAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgc3RydWN0IGxpc3RfaGVhZCAqdmlydHVhbF9xdWV1 ZShzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKnZlKQoreworCXJldHVybiAmdmUtPmJhc2UuZXhlY2xp c3RzLmRlZmF1bHRfcHJpb2xpc3QucmVxdWVzdHNbMF07Cit9CisKIHN0YXRpYyB2b2lkIHZpcnR1 YWxfY29udGV4dF9kZXN0cm95KHN0cnVjdCBrcmVmICprcmVmKQogewogCXN0cnVjdCB2aXJ0dWFs X2VuZ2luZSAqdmUgPQogCQljb250YWluZXJfb2Yoa3JlZiwgdHlwZW9mKCp2ZSksIGNvbnRleHQu cmVmKTsKIAl1bnNpZ25lZCBpbnQgbjsKIAorCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkodmlydHVh bF9xdWV1ZSh2ZSkpKTsKIAlHRU1fQlVHX09OKHZlLT5yZXF1ZXN0KTsKIAlHRU1fQlVHX09OKHZl LT5jb250ZXh0LmluZmxpZ2h0KTsKIApAQCAtMzAyNSwxMyArMzAzMCwxMyBAQCBzdGF0aWMgdm9p ZCB2aXJ0dWFsX2NvbnRleHRfZGVzdHJveShzdHJ1Y3Qga3JlZiAqa3JlZikKIAkJaWYgKFJCX0VN UFRZX05PREUobm9kZSkpCiAJCQljb250aW51ZTsKIAotCQlzcGluX2xvY2tfaXJxKCZzaWJsaW5n LT50aW1lbGluZS5sb2NrKTsKKwkJc3Bpbl9sb2NrX2lycSgmc2libGluZy0+YWN0aXZlLmxvY2sp OwogCiAJCS8qIERldGFjaG1lbnQgaXMgbGF6aWx5IHBlcmZvcm1lZCBpbiB0aGUgZXhlY2xpc3Rz IHRhc2tsZXQgKi8KIAkJaWYgKCFSQl9FTVBUWV9OT0RFKG5vZGUpKQogCQkJcmJfZXJhc2VfY2Fj aGVkKG5vZGUsICZzaWJsaW5nLT5leGVjbGlzdHMudmlydHVhbCk7CiAKLQkJc3Bpbl91bmxvY2tf aXJxKCZzaWJsaW5nLT50aW1lbGluZS5sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZzaWJsaW5n LT5hY3RpdmUubG9jayk7CiAJfQogCUdFTV9CVUdfT04oX190YXNrbGV0X2lzX3NjaGVkdWxlZCgm dmUtPmJhc2UuZXhlY2xpc3RzLnRhc2tsZXQpKTsKIApAQCAtMzAzOSw4ICszMDQ0LDYgQEAgc3Rh dGljIHZvaWQgdmlydHVhbF9jb250ZXh0X2Rlc3Ryb3koc3RydWN0IGtyZWYgKmtyZWYpCiAJCV9f ZXhlY2xpc3RzX2NvbnRleHRfZmluaSgmdmUtPmNvbnRleHQpOwogCiAJa2ZyZWUodmUtPmJvbmRz KTsKLQotCWk5MTVfdGltZWxpbmVfZmluaSgmdmUtPmJhc2UudGltZWxpbmUpOwogCWtmcmVlKHZl KTsKIH0KIApAQCAtMzE2MCwxNiArMzE2MywxNiBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFsX3N1Ym1p c3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAKIAkJaWYgKHVubGlrZWx5KCEobWFz ayAmIHNpYmxpbmctPm1hc2spKSkgewogCQkJaWYgKCFSQl9FTVBUWV9OT0RFKCZub2RlLT5yYikp IHsKLQkJCQlzcGluX2xvY2soJnNpYmxpbmctPnRpbWVsaW5lLmxvY2spOworCQkJCXNwaW5fbG9j aygmc2libGluZy0+YWN0aXZlLmxvY2spOwogCQkJCXJiX2VyYXNlX2NhY2hlZCgmbm9kZS0+cmIs CiAJCQkJCQkmc2libGluZy0+ZXhlY2xpc3RzLnZpcnR1YWwpOwogCQkJCVJCX0NMRUFSX05PREUo Jm5vZGUtPnJiKTsKLQkJCQlzcGluX3VubG9jaygmc2libGluZy0+dGltZWxpbmUubG9jayk7CisJ CQkJc3Bpbl91bmxvY2soJnNpYmxpbmctPmFjdGl2ZS5sb2NrKTsKIAkJCX0KIAkJCWNvbnRpbnVl OwogCQl9CiAKLQkJc3Bpbl9sb2NrKCZzaWJsaW5nLT50aW1lbGluZS5sb2NrKTsKKwkJc3Bpbl9s b2NrKCZzaWJsaW5nLT5hY3RpdmUubG9jayk7CiAKIAkJaWYgKCFSQl9FTVBUWV9OT0RFKCZub2Rl LT5yYikpIHsKIAkJCS8qCkBAIC0zMjEzLDcgKzMyMTYsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFs X3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJCQl0YXNrbGV0X2hpX3Nj aGVkdWxlKCZzaWJsaW5nLT5leGVjbGlzdHMudGFza2xldCk7CiAJCX0KIAotCQlzcGluX3VubG9j aygmc2libGluZy0+dGltZWxpbmUubG9jayk7CisJCXNwaW5fdW5sb2NrKCZzaWJsaW5nLT5hY3Rp dmUubG9jayk7CiAJfQogCWxvY2FsX2lycV9lbmFibGUoKTsKIH0KQEAgLTMyMzAsOSArMzIzMywx MyBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFsX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVl c3QgKnJxKQogCUdFTV9CVUdfT04odmUtPmJhc2Uuc3VibWl0X3JlcXVlc3QgIT0gdmlydHVhbF9z dWJtaXRfcmVxdWVzdCk7CiAKIAlHRU1fQlVHX09OKHZlLT5yZXF1ZXN0KTsKKwlHRU1fQlVHX09O KCFsaXN0X2VtcHR5KHZpcnR1YWxfcXVldWUodmUpKSk7CisKIAl2ZS0+YmFzZS5leGVjbGlzdHMu cXVldWVfcHJpb3JpdHlfaGludCA9IHJxX3ByaW8ocnEpOwogCVdSSVRFX09OQ0UodmUtPnJlcXVl c3QsIHJxKTsKIAorCWxpc3RfbW92ZV90YWlsKCZycS0+c2NoZWQubGluaywgdmlydHVhbF9xdWV1 ZSh2ZSkpOworCiAJdGFza2xldF9zY2hlZHVsZSgmdmUtPmJhc2UuZXhlY2xpc3RzLnRhc2tsZXQp OwogfQogCkBAIC0zMjk2LDEwICszMzAzLDcgQEAgaW50ZWxfZXhlY2xpc3RzX2NyZWF0ZV92aXJ0 dWFsKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAKIAlzbnByaW50Zih2ZS0+YmFzZS5u YW1lLCBzaXplb2YodmUtPmJhc2UubmFtZSksICJ2aXJ0dWFsIik7CiAKLQllcnIgPSBpOTE1X3Rp bWVsaW5lX2luaXQoY3R4LT5pOTE1LCAmdmUtPmJhc2UudGltZWxpbmUsIE5VTEwpOwotCWlmIChl cnIpCi0JCWdvdG8gZXJyX3B1dDsKLQlpOTE1X3RpbWVsaW5lX3NldF9zdWJjbGFzcygmdmUtPmJh c2UudGltZWxpbmUsIFRJTUVMSU5FX1ZJUlRVQUwpOworCWludGVsX2VuZ2luZV9pbml0X2FjdGl2 ZSgmdmUtPmJhc2UsIEVOR0lORV9WSVJUVUFMKTsKIAogCWludGVsX2VuZ2luZV9pbml0X2V4ZWNs aXN0cygmdmUtPmJhc2UpOwogCkBAIC0zMzEwLDYgKzMzMTQsNyBAQCBpbnRlbF9leGVjbGlzdHNf Y3JlYXRlX3ZpcnR1YWwoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAl2ZS0+YmFzZS5z dWJtaXRfcmVxdWVzdCA9IHZpcnR1YWxfc3VibWl0X3JlcXVlc3Q7CiAJdmUtPmJhc2UuYm9uZF9l eGVjdXRlID0gdmlydHVhbF9ib25kX2V4ZWN1dGU7CiAKKwlJTklUX0xJU1RfSEVBRCh2aXJ0dWFs X3F1ZXVlKHZlKSk7CiAJdmUtPmJhc2UuZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5X2hpbnQgPSBJ TlRfTUlOOwogCXRhc2tsZXRfaW5pdCgmdmUtPmJhc2UuZXhlY2xpc3RzLnRhc2tsZXQsCiAJCSAg ICAgdmlydHVhbF9zdWJtaXNzaW9uX3Rhc2tsZXQsCkBAIC0zNDY0LDExICszNDY5LDExIEBAIHZv aWQgaW50ZWxfZXhlY2xpc3RzX3Nob3dfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAogCXVuc2lnbmVkIGludCBjb3VudDsKIAlzdHJ1Y3QgcmJfbm9kZSAqcmI7CiAKLQlz cGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl9s b2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAogCWxhc3QgPSBOVUxM OwogCWNvdW50ID0gMDsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJxLCAmZW5naW5lLT50aW1lbGlu ZS5yZXF1ZXN0cywgbGluaykgeworCWxpc3RfZm9yX2VhY2hfZW50cnkocnEsICZlbmdpbmUtPmFj dGl2ZS5yZXF1ZXN0cywgc2NoZWQubGluaykgewogCQlpZiAoY291bnQrKyA8IG1heCAtIDEpCiAJ CQlzaG93X3JlcXVlc3QobSwgcnEsICJcdFx0RSAiKTsKIAkJZWxzZQpAQCAtMzUzMSw3ICszNTM2 LDcgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfc2hvd19yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCiAJCXNob3dfcmVxdWVzdChtLCBsYXN0LCAiXHRcdFYgIik7CiAJfQog Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7 CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwog fQogCiB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKaW5kZXggMzc3YmM1NDZh NjhmLi44NDdlMzJjOGQ3ZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX3Jlc2V0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwpA QCAtNDksMTIgKzQ5LDEyIEBAIHN0YXRpYyB2b2lkIGVuZ2luZV9za2lwX2NvbnRleHQoc3RydWN0 IGk5MTVfcmVxdWVzdCAqcnEpCiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcnEt PmVuZ2luZTsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqaHVuZ19jdHggPSBycS0+Z2VtX2Nv bnRleHQ7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOwor CWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+YWN0aXZlLmxvY2spOwogCiAJaWYgKCFpOTE1 X3JlcXVlc3RfaXNfYWN0aXZlKHJxKSkKIAkJcmV0dXJuOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRy eV9jb250aW51ZShycSwgJmVuZ2luZS0+dGltZWxpbmUucmVxdWVzdHMsIGxpbmspCisJbGlzdF9m b3JfZWFjaF9lbnRyeV9jb250aW51ZShycSwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hl ZC5saW5rKQogCQlpZiAocnEtPmdlbV9jb250ZXh0ID09IGh1bmdfY3R4KQogCQkJaTkxNV9yZXF1 ZXN0X3NraXAocnEsIC1FSU8pOwogfQpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgaTkxNV9yZXNl dF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBib29sIGd1aWx0eSkKIAkJICBycS0+ ZmVuY2Uuc2Vxbm8sCiAJCSAgeWVzbm8oZ3VpbHR5KSk7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxk KCZycS0+ZW5naW5lLT50aW1lbGluZS5sb2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZycS0+ ZW5naW5lLT5hY3RpdmUubG9jayk7CiAJR0VNX0JVR19PTihpOTE1X3JlcXVlc3RfY29tcGxldGVk KHJxKSk7CiAKIAlpZiAoZ3VpbHR5KSB7CkBAIC03ODUsMTAgKzc4NSwxMCBAQCBzdGF0aWMgdm9p ZCBub3Bfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAkJICBl bmdpbmUtPm5hbWUsIHJlcXVlc3QtPmZlbmNlLmNvbnRleHQsIHJlcXVlc3QtPmZlbmNlLnNlcW5v KTsKIAlkbWFfZmVuY2Vfc2V0X2Vycm9yKCZyZXF1ZXN0LT5mZW5jZSwgLUVJTyk7CiAKLQlzcGlu X2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2Nr X2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAlfX2k5MTVfcmVxdWVzdF9z dWJtaXQocmVxdWVzdCk7CiAJaTkxNV9yZXF1ZXN0X21hcmtfY29tcGxldGUocmVxdWVzdCk7Ci0J c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogCiAJ aW50ZWxfZW5naW5lX3F1ZXVlX2JyZWFkY3J1bWJzKGVuZ2luZSk7CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggZmM1OTZhZGM2MzdhLi45M2IwODkz YzczNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZm ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKQEAg LTczMCwxNCArNzMwLDEzIEBAIHN0YXRpYyB2b2lkIHJlc2V0X3ByZXBhcmUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCiBzdGF0aWMgdm9pZCByZXNldF9yaW5nKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwgYm9vbCBzdGFsbGVkKQogewotCXN0cnVjdCBpOTE1X3RpbWVs aW5lICp0bCA9ICZlbmdpbmUtPnRpbWVsaW5lOwogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnBvcywg KnJxOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdTMyIGhlYWQ7CiAKIAlycSA9IE5VTEw7Ci0J c3Bpbl9sb2NrX2lycXNhdmUoJnRsLT5sb2NrLCBmbGFncyk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRy eShwb3MsICZ0bC0+cmVxdWVzdHMsIGxpbmspIHsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5l LT5hY3RpdmUubG9jaywgZmxhZ3MpOworCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCAmZW5naW5l LT5hY3RpdmUucmVxdWVzdHMsIHNjaGVkLmxpbmspIHsKIAkJaWYgKCFpOTE1X3JlcXVlc3RfY29t cGxldGVkKHBvcykpIHsKIAkJCXJxID0gcG9zOwogCQkJYnJlYWs7CkBAIC03OTEsNyArNzkwLDcg QEAgc3RhdGljIHZvaWQgcmVzZXRfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs IGJvb2wgc3RhbGxlZCkKIAl9CiAJZW5naW5lLT5idWZmZXItPmhlYWQgPSBpbnRlbF9yaW5nX3dy YXAoZW5naW5lLT5idWZmZXIsIGhlYWQpOwogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGwt PmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5s b2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlc2V0X2ZpbmlzaChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCkBAIC04NzcsMTAgKzg3NiwxMCBAQCBzdGF0aWMgdm9pZCBjYW5j ZWxfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJlcXVlc3Q7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXNwaW5fbG9ja19p cnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2 ZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogCiAJLyogTWFyayBhbGwgc3VibWl0dGVk IHJlcXVlc3RzIGFzIHNraXBwZWQuICovCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAm ZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0cywgbGluaykgeworCWxpc3RfZm9yX2VhY2hfZW50cnko cmVxdWVzdCwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5rKSB7CiAJCWlmICgh aTkxNV9yZXF1ZXN0X3NpZ25hbGVkKHJlcXVlc3QpKQogCQkJZG1hX2ZlbmNlX3NldF9lcnJvcigm cmVxdWVzdC0+ZmVuY2UsIC1FSU8pOwogCkBAIC04ODksNyArODg4LDcgQEAgc3RhdGljIHZvaWQg Y2FuY2VsX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCS8qIFJl bWFpbmluZyBfdW5yZWFkeV8gcmVxdWVzdHMgd2lsbCBiZSBub3AnZWQgd2hlbiBzdWJtaXR0ZWQg Ki8KIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxh Z3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdz KTsKIH0KIAogc3RhdGljIHZvaWQgaTl4eF9zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpyZXF1ZXN0KQpAQCAtMTI2Nyw4ICsxMjY2LDYgQEAgaW50ZWxfZW5naW5lX2NyZWF0ZV9y aW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAogCUdFTV9CVUdfT04oIWlzX3Bv d2VyX29mXzIoc2l6ZSkpOwogCUdFTV9CVUdfT04oUklOR19DVExfU0laRShzaXplKSAmIH5SSU5H X05SX1BBR0VTKTsKLQlHRU1fQlVHX09OKHRpbWVsaW5lID09ICZlbmdpbmUtPnRpbWVsaW5lKTsK LQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwog CiAJcmluZyA9IGt6YWxsb2Moc2l6ZW9mKCpyaW5nKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFyaW5n KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19lbmdpbmUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMKaW5kZXggYjc2NzVlZjE4NTIzLi4w MGM2NjZkM2U2NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5n aW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19lbmdpbmUuYwpAQCAtMjI5 LDE3ICsyMjksMTcgQEAgc3RhdGljIHZvaWQgbW9ja19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3Q7CiAJ dW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVs aW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9j aywgZmxhZ3MpOwogCiAJLyogTWFyayBhbGwgc3VibWl0dGVkIHJlcXVlc3RzIGFzIHNraXBwZWQu ICovCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAmZW5naW5lLT50aW1lbGluZS5yZXF1 ZXN0cywgc2NoZWQubGluaykgeworCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxdWVzdCwgJmVuZ2lu ZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5rKSB7CiAJCWlmICghaTkxNV9yZXF1ZXN0X3Np Z25hbGVkKHJlcXVlc3QpKQogCQkJZG1hX2ZlbmNlX3NldF9lcnJvcigmcmVxdWVzdC0+ZmVuY2Us IC1FSU8pOwogCiAJCWk5MTVfcmVxdWVzdF9tYXJrX2NvbXBsZXRlKHJlcXVlc3QpOwogCX0KIAot CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwor CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIH0K IAogc3RydWN0IGludGVsX2VuZ2luZV9jcyAqbW9ja19lbmdpbmUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCkBAIC0yODUsMjggKzI4NSwyMyBAQCBpbnQgbW9ja19lbmdpbmVfaW5pdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUgPSBlbmdpbmUtPmk5MTU7CiAJaW50IGVycjsKIAorCWludGVsX2VuZ2luZV9pbml0X2Fj dGl2ZShlbmdpbmUsIEVOR0lORV9NT0NLKTsKIAlpbnRlbF9lbmdpbmVfaW5pdF9icmVhZGNydW1i cyhlbmdpbmUpOwogCWludGVsX2VuZ2luZV9pbml0X2V4ZWNsaXN0cyhlbmdpbmUpOwogCWludGVs X2VuZ2luZV9pbml0X19wbShlbmdpbmUpOwogCi0JaWYgKGk5MTVfdGltZWxpbmVfaW5pdChpOTE1 LCAmZW5naW5lLT50aW1lbGluZSwgTlVMTCkpCi0JCWdvdG8gZXJyX2JyZWFkY3J1bWJzOwotCWk5 MTVfdGltZWxpbmVfc2V0X3N1YmNsYXNzKCZlbmdpbmUtPnRpbWVsaW5lLCBUSU1FTElORV9FTkdJ TkUpOwotCiAJZW5naW5lLT5rZXJuZWxfY29udGV4dCA9CiAJCWk5MTVfZ2VtX2NvbnRleHRfZ2V0 X2VuZ2luZShpOTE1LT5rZXJuZWxfY29udGV4dCwgZW5naW5lLT5pZCk7CiAJaWYgKElTX0VSUihl bmdpbmUtPmtlcm5lbF9jb250ZXh0KSkKLQkJZ290byBlcnJfdGltZWxpbmU7CisJCWdvdG8gZXJy X2JyZWFkY3J1bWJzOwogCiAJZXJyID0gaW50ZWxfY29udGV4dF9waW4oZW5naW5lLT5rZXJuZWxf Y29udGV4dCk7CiAJaW50ZWxfY29udGV4dF9wdXQoZW5naW5lLT5rZXJuZWxfY29udGV4dCk7CiAJ aWYgKGVycikKLQkJZ290byBlcnJfdGltZWxpbmU7CisJCWdvdG8gZXJyX2JyZWFkY3J1bWJzOwog CiAJcmV0dXJuIDA7CiAKLWVycl90aW1lbGluZToKLQlpOTE1X3RpbWVsaW5lX2ZpbmkoJmVuZ2lu ZS0+dGltZWxpbmUpOwogZXJyX2JyZWFkY3J1bWJzOgogCWludGVsX2VuZ2luZV9maW5pX2JyZWFk Y3J1bWJzKGVuZ2luZSk7CiAJcmV0dXJuIC1FTk9NRU07CkBAIC0zNDAsNyArMzM1LDYgQEAgdm9p ZCBtb2NrX2VuZ2luZV9mcmVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpbnRl bF9jb250ZXh0X3VucGluKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwogCiAJaW50ZWxfZW5naW5l X2ZpbmlfYnJlYWRjcnVtYnMoZW5naW5lKTsKLQlpOTE1X3RpbWVsaW5lX2ZpbmkoJmVuZ2luZS0+ dGltZWxpbmUpOwogCiAJa2ZyZWUoZW5naW5lKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dw dV9lcnJvci5jCmluZGV4IDcwNzgxMTI1NjUwMS4uNGNjOTAwZTQzMmUyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTEyNjksNyArMTI2OSw3IEBAIHN0YXRpYyB2b2lk IGVuZ2luZV9yZWNvcmRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAog CiAJY291bnQgPSAwOwogCXJlcXVlc3QgPSBmaXJzdDsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zy b20ocmVxdWVzdCwgJmVuZ2luZS0+dGltZWxpbmUucmVxdWVzdHMsIGxpbmspCisJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9mcm9tKHJlcXVlc3QsICZlbmdpbmUtPmFjdGl2ZS5yZXF1ZXN0cywgc2NoZWQu bGluaykKIAkJY291bnQrKzsKIAlpZiAoIWNvdW50KQogCQlyZXR1cm47CkBAIC0xMjgyLDcgKzEy ODIsOCBAQCBzdGF0aWMgdm9pZCBlbmdpbmVfcmVjb3JkX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwKIAogCWNvdW50ID0gMDsKIAlyZXF1ZXN0ID0gZmlyc3Q7Ci0JbGlz dF9mb3JfZWFjaF9lbnRyeV9mcm9tKHJlcXVlc3QsICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3Rz LCBsaW5rKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9mcm9tKHJlcXVlc3QsCisJCQkJICZlbmdp bmUtPmFjdGl2ZS5yZXF1ZXN0cywgc2NoZWQubGluaykgewogCQlpZiAoY291bnQgPj0gZWUtPm51 bV9yZXF1ZXN0cykgewogCQkJLyoKIAkJCSAqIElmIHRoZSByaW5nIHJlcXVlc3QgbGlzdCB3YXMg Y2hhbmdlZCBpbgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwppbmRleCAxOTU5NTZhNzk2 YTEuLmE5OGU3ODFjYjE3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZXF1ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKQEAgLTIz Miw5ICsyMzIsOSBAQCBzdGF0aWMgYm9vbCBpOTE1X3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxKQogCiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIAotCXNwaW5fbG9jaygmcnEt PmVuZ2luZS0+dGltZWxpbmUubG9jayk7Ci0JbGlzdF9kZWwoJnJxLT5saW5rKTsKLQlzcGluX3Vu bG9jaygmcnEtPmVuZ2luZS0+dGltZWxpbmUubG9jayk7CisJc3Bpbl9sb2NrKCZycS0+ZW5naW5l LT5hY3RpdmUubG9jayk7CisJbGlzdF9kZWwoJnJxLT5zY2hlZC5saW5rKTsKKwlzcGluX3VubG9j aygmcnEtPmVuZ2luZS0+YWN0aXZlLmxvY2spOwogCiAJc3Bpbl9sb2NrKCZycS0+bG9jayk7CiAJ aTkxNV9yZXF1ZXN0X21hcmtfY29tcGxldGUocnEpOwpAQCAtMjU0LDYgKzI1NCw3IEBAIHN0YXRp YyBib29sIGk5MTVfcmVxdWVzdF9yZXRpcmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJaW50 ZWxfY29udGV4dF91bnBpbihycS0+aHdfY29udGV4dCk7CiAKIAlpOTE1X3JlcXVlc3RfcmVtb3Zl X2Zyb21fY2xpZW50KHJxKTsKKwlsaXN0X2RlbCgmcnEtPmxpbmspOwogCiAJZnJlZV9jYXB0dXJl X2xpc3QocnEpOwogCWk5MTVfc2NoZWRfbm9kZV9maW5pKCZycS0+c2NoZWQpOwpAQCAtMzczLDI4 ICszNzQsMTcgQEAgX19pOTE1X3JlcXVlc3RfYXdhaXRfZXhlY3V0aW9uKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBtb3ZlX3RvX3RpbWVsaW5l KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsCi0JCQkgICAgIHN0cnVjdCBpOTE1X3RpbWVs aW5lICp0aW1lbGluZSkKLXsKLQlHRU1fQlVHX09OKHJlcXVlc3QtPnRpbWVsaW5lID09ICZyZXF1 ZXN0LT5lbmdpbmUtPnRpbWVsaW5lKTsKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZyZXF1ZXN0LT5l bmdpbmUtPnRpbWVsaW5lLmxvY2spOwotCi0Jc3Bpbl9sb2NrKCZyZXF1ZXN0LT50aW1lbGluZS0+ bG9jayk7Ci0JbGlzdF9tb3ZlX3RhaWwoJnJlcXVlc3QtPmxpbmssICZ0aW1lbGluZS0+cmVxdWVz dHMpOwotCXNwaW5fdW5sb2NrKCZyZXF1ZXN0LT50aW1lbGluZS0+bG9jayk7Ci19Ci0KIHZvaWQg X19pOTE1X3JlcXVlc3Rfc3VibWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiB7CiAJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOwogCi0JR0VN X1RSQUNFKCIlcyBmZW5jZSAlbGx4OiVsbGQgLT4gY3VycmVudCAlZFxuIiwKKwlHRU1fVFJBQ0Uo IiVzIGZlbmNlICVsbHg6JWxsZCwgY3VycmVudCAlZFxuIiwKIAkJICBlbmdpbmUtPm5hbWUsCiAJ CSAgcmVxdWVzdC0+ZmVuY2UuY29udGV4dCwgcmVxdWVzdC0+ZmVuY2Uuc2Vxbm8sCiAJCSAgaHdz cF9zZXFubyhyZXF1ZXN0KSk7CiAKIAlHRU1fQlVHX09OKCFpcnFzX2Rpc2FibGVkKCkpOwotCWxv Y2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7CisJbG9ja2RlcF9hc3Nl cnRfaGVsZCgmZW5naW5lLT5hY3RpdmUubG9jayk7CiAKIAlpZiAoaTkxNV9nZW1fY29udGV4dF9p c19iYW5uZWQocmVxdWVzdC0+Z2VtX2NvbnRleHQpKQogCQlpOTE1X3JlcXVlc3Rfc2tpcChyZXF1 ZXN0LCAtRUlPKTsKQEAgLTQyMiw2ICs0MTIsOCBAQCB2b2lkIF9faTkxNV9yZXF1ZXN0X3N1Ym1p dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogCS8qIFdlIG1heSBiZSByZWN1cnNpbmcg ZnJvbSB0aGUgc2lnbmFsIGNhbGxiYWNrIG9mIGFub3RoZXIgaTkxNSBmZW5jZSAqLwogCXNwaW5f bG9ja19uZXN0ZWQoJnJlcXVlc3QtPmxvY2ssIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKIAorCWxp c3RfbW92ZV90YWlsKCZyZXF1ZXN0LT5zY2hlZC5saW5rLCAmZW5naW5lLT5hY3RpdmUucmVxdWVz dHMpOworCiAJR0VNX0JVR19PTih0ZXN0X2JpdChJOTE1X0ZFTkNFX0ZMQUdfQUNUSVZFLCAmcmVx dWVzdC0+ZmVuY2UuZmxhZ3MpKTsKIAlzZXRfYml0KEk5MTVfRkVOQ0VfRkxBR19BQ1RJVkUsICZy ZXF1ZXN0LT5mZW5jZS5mbGFncyk7CiAKQEAgLTQzNyw5ICs0MjksNiBAQCB2b2lkIF9faTkxNV9y ZXF1ZXN0X3N1Ym1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogCWVuZ2luZS0+ZW1p dF9maW5pX2JyZWFkY3J1bWIocmVxdWVzdCwKIAkJCQkgICAgIHJlcXVlc3QtPnJpbmctPnZhZGRy ICsgcmVxdWVzdC0+cG9zdGZpeCk7CiAKLQkvKiBUcmFuc2ZlciBmcm9tIHBlci1jb250ZXh0IG9u dG8gdGhlIGdsb2JhbCBwZXItZW5naW5lIHRpbWVsaW5lICovCi0JbW92ZV90b190aW1lbGluZShy ZXF1ZXN0LCAmZW5naW5lLT50aW1lbGluZSk7Ci0KIAllbmdpbmUtPnNlcmlhbCsrOwogCiAJdHJh Y2VfaTkxNV9yZXF1ZXN0X2V4ZWN1dGUocmVxdWVzdCk7CkBAIC00NTEsMTEgKzQ0MCwxMSBAQCB2 b2lkIGk5MTVfcmVxdWVzdF9zdWJtaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAl1 bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJLyogV2lsbCBiZSBjYWxsZWQgZnJvbSBpcnEtY29udGV4 dCB3aGVuIHVzaW5nIGZvcmVpZ24gZmVuY2VzLiAqLwotCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdp bmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5h Y3RpdmUubG9jaywgZmxhZ3MpOwogCiAJX19pOTE1X3JlcXVlc3Rfc3VibWl0KHJlcXVlc3QpOwog Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7 CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwog fQogCiB2b2lkIF9faTkxNV9yZXF1ZXN0X3Vuc3VibWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJl cXVlc3QpCkBAIC00NjgsNyArNDU3LDcgQEAgdm9pZCBfX2k5MTVfcmVxdWVzdF91bnN1Ym1pdChz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogCQkgIGh3c3Bfc2Vxbm8ocmVxdWVzdCkpOwog CiAJR0VNX0JVR19PTighaXJxc19kaXNhYmxlZCgpKTsKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZl bmdpbmUtPnRpbWVsaW5lLmxvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+YWN0 aXZlLmxvY2spOwogCiAJLyoKIAkgKiBPbmx5IHVud2luZCBpbiByZXZlcnNlIG9yZGVyLCByZXF1 aXJlZCBzbyB0aGF0IHRoZSBwZXItY29udGV4dCBsaXN0CkBAIC00ODYsOSArNDc1LDYgQEAgdm9p ZCBfX2k5MTVfcmVxdWVzdF91bnN1Ym1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQog CiAJc3Bpbl91bmxvY2soJnJlcXVlc3QtPmxvY2spOwogCi0JLyogVHJhbnNmZXIgYmFjayBmcm9t IHRoZSBnbG9iYWwgcGVyLWVuZ2luZSB0aW1lbGluZSB0byBwZXItY29udGV4dCAqLwotCW1vdmVf dG9fdGltZWxpbmUocmVxdWVzdCwgcmVxdWVzdC0+dGltZWxpbmUpOwotCiAJLyogV2UndmUgYWxy ZWFkeSBzcHVuLCBkb24ndCBjaGFyZ2Ugb24gcmVzdWJtaXR0aW5nLiAqLwogCWlmIChyZXF1ZXN0 LT5zY2hlZC5zZW1hcGhvcmVzICYmIGk5MTVfcmVxdWVzdF9zdGFydGVkKHJlcXVlc3QpKSB7CiAJ CXJlcXVlc3QtPnNjaGVkLmF0dHIucHJpb3JpdHkgfD0gSTkxNV9QUklPUklUWV9OT1NFTUFQSE9S RTsKQEAgLTUxMCwxMSArNDk2LDExIEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3Vuc3VibWl0KHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCS8qIFdp bGwgYmUgY2FsbGVkIGZyb20gaXJxLWNvbnRleHQgd2hlbiB1c2luZyBmb3JlaWduIGZlbmNlcy4g Ki8KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJ c3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAogCV9faTkx NV9yZXF1ZXN0X3Vuc3VibWl0KHJlcXVlc3QpOwogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgaW50IF9faTkxNV9zd19m ZW5jZV9jYWxsCkBAIC02NjksNyArNjU1LDYgQEAgX19pOTE1X3JlcXVlc3RfY3JlYXRlKHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSwgZ2ZwX3QgZ2ZwKQogCXJxLT5lbmdpbmUgPSBjZS0+ZW5naW5l OwogCXJxLT5yaW5nID0gY2UtPnJpbmc7CiAJcnEtPnRpbWVsaW5lID0gdGw7Ci0JR0VNX0JVR19P TihycS0+dGltZWxpbmUgPT0gJmNlLT5lbmdpbmUtPnRpbWVsaW5lKTsKIAlycS0+aHdzcF9zZXFu byA9IHRsLT5od3NwX3NlcW5vOwogCXJxLT5od3NwX2NhY2hlbGluZSA9IHRsLT5od3NwX2NhY2hl bGluZTsKIAlycS0+cmN1c3RhdGUgPSBnZXRfc3RhdGVfc3luY2hyb25pemVfcmN1KCk7IC8qIGFj dHMgYXMgc21wX21iKCkgKi8KQEAgLTExMzQsOSArMTExOSw3IEBAIF9faTkxNV9yZXF1ZXN0X2Fk ZF90b190aW1lbGluZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAkJCQkJCQkgMCk7CiAJfQog Ci0Jc3Bpbl9sb2NrX2lycSgmdGltZWxpbmUtPmxvY2spOwogCWxpc3RfYWRkX3RhaWwoJnJxLT5s aW5rLCAmdGltZWxpbmUtPnJlcXVlc3RzKTsKLQlzcGluX3VubG9ja19pcnEoJnRpbWVsaW5lLT5s b2NrKTsKIAogCS8qCiAJICogTWFrZSBzdXJlIHRoYXQgbm8gcmVxdWVzdCBnYXp1bXBlZCB1cyAt IGlmIGl0IHdhcyBhbGxvY2F0ZWQgYWZ0ZXIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgK aW5kZXggYzlmN2QwNzk5MWM4Li5lZGJiZGZlYzI0YWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVxdWVzdC5oCkBAIC0yMTcsNyArMjE3LDcgQEAgc3RydWN0IGk5MTVfcmVxdWVzdCB7CiAKIAli b29sIHdhaXRib29zdDsKIAotCS8qKiBlbmdpbmUtPnJlcXVlc3RfbGlzdCBlbnRyeSBmb3IgdGhp cyByZXF1ZXN0ICovCisJLyoqIHRpbWVsaW5lLT5yZXF1ZXN0IGVudHJ5IGZvciB0aGlzIHJlcXVl c3QgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7CiAKIAkvKiogcmluZy0+cmVxdWVzdF9saXN0 IGVudHJ5IGZvciB0aGlzIHJlcXVlc3QgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfc2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxl ci5jCmluZGV4IDc4Y2ViNTZkNzgwMS4uMmU5YjM4YmRjMzNjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfc2NoZWR1bGVyLmMKQEAgLTc3LDcgKzc3LDcgQEAgaTkxNV9zY2hlZF9sb29rdXBfcHJp b2xpc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgcHJpbykKIAlib29sIGZp cnN0ID0gdHJ1ZTsKIAlpbnQgaWR4LCBpOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5l LT50aW1lbGluZS5sb2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmFjdGl2ZS5s b2NrKTsKIAlhc3NlcnRfcHJpb2xpc3RzKGV4ZWNsaXN0cyk7CiAKIAkvKiBidWNrZXRzIHNvcnRl ZCBmcm9tIGhpZ2hlc3QgW2luIHNsb3QgMF0gdG8gbG93ZXN0IHByaW9yaXR5ICovCkBAIC0xNjIs OSArMTYyLDkgQEAgc2NoZWRfbG9ja19lbmdpbmUoY29uc3Qgc3RydWN0IGk5MTVfc2NoZWRfbm9k ZSAqbm9kZSwKIAkgKiBjaGVjayB0aGF0IHRoZSBycSBzdGlsbCBiZWxvbmdzIHRvIHRoZSBuZXds eSBsb2NrZWQgZW5naW5lLgogCSAqLwogCXdoaWxlIChsb2NrZWQgIT0gKGVuZ2luZSA9IFJFQURf T05DRShycS0+ZW5naW5lKSkpIHsKLQkJc3Bpbl91bmxvY2soJmxvY2tlZC0+dGltZWxpbmUubG9j ayk7CisJCXNwaW5fdW5sb2NrKCZsb2NrZWQtPmFjdGl2ZS5sb2NrKTsKIAkJbWVtc2V0KGNhY2hl LCAwLCBzaXplb2YoKmNhY2hlKSk7Ci0JCXNwaW5fbG9jaygmZW5naW5lLT50aW1lbGluZS5sb2Nr KTsKKwkJc3Bpbl9sb2NrKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKIAkJbG9ja2VkID0gZW5naW5l OwogCX0KIApAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyB2b2lkIGtpY2tfc3VibWlzc2lvbihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBwcmlvKQogCSAqIHRhc2tsZXQsIGku ZS4gd2UgaGF2ZSBub3QgY2hhbmdlIHRoZSBwcmlvcml0eSBxdWV1ZQogCSAqIHN1ZmZpY2llbnRs eSB0byBvdXN0IHRoZSBydW5uaW5nIGNvbnRleHQuCiAJICovCi0JaWYgKGluZmxpZ2h0ICYmICFp OTE1X3NjaGVkdWxlcl9uZWVkX3ByZWVtcHQocHJpbywgcnFfcHJpbyhpbmZsaWdodCkpKQorCWlm ICghaW5mbGlnaHQgfHwgIWk5MTVfc2NoZWR1bGVyX25lZWRfcHJlZW1wdChwcmlvLCBycV9wcmlv KGluZmxpZ2h0KSkpCiAJCXJldHVybjsKIAogCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ ZXhlY2xpc3RzLnRhc2tsZXQpOwpAQCAtMjc4LDcgKzI3OCw3IEBAIHN0YXRpYyB2b2lkIF9faTkx NV9zY2hlZHVsZShzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICpub2RlLAogCiAJbWVtc2V0KCZjYWNo ZSwgMCwgc2l6ZW9mKGNhY2hlKSk7CiAJZW5naW5lID0gbm9kZV90b19yZXF1ZXN0KG5vZGUpLT5l bmdpbmU7Ci0Jc3Bpbl9sb2NrKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOworCXNwaW5fbG9jaygm ZW5naW5lLT5hY3RpdmUubG9jayk7CiAKIAkvKiBGaWZvIGFuZCBkZXB0aC1maXJzdCByZXBsYWNl bWVudCBlbnN1cmUgb3VyIGRlcHMgZXhlY3V0ZSBiZWZvcmUgdXMgKi8KIAllbmdpbmUgPSBzY2hl ZF9sb2NrX2VuZ2luZShub2RlLCBlbmdpbmUsICZjYWNoZSk7CkBAIC0yODcsNyArMjg3LDcgQEAg c3RhdGljIHZvaWQgX19pOTE1X3NjaGVkdWxlKHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUs CiAKIAkJbm9kZSA9IGRlcC0+c2lnbmFsZXI7CiAJCWVuZ2luZSA9IHNjaGVkX2xvY2tfZW5naW5l KG5vZGUsIGVuZ2luZSwgJmNhY2hlKTsKLQkJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT50 aW1lbGluZS5sb2NrKTsKKwkJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT5hY3RpdmUubG9j ayk7CiAKIAkJLyogUmVjaGVjayBhZnRlciBhY3F1aXJpbmcgdGhlIGVuZ2luZS0+dGltZWxpbmUu bG9jayAqLwogCQlpZiAocHJpbyA8PSBub2RlLT5hdHRyLnByaW9yaXR5IHx8IG5vZGVfc2lnbmFs ZWQobm9kZSkpCkBAIC0yOTYsMTQgKzI5Niw4IEBAIHN0YXRpYyB2b2lkIF9faTkxNV9zY2hlZHVs ZShzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICpub2RlLAogCQlHRU1fQlVHX09OKG5vZGVfdG9fcmVx dWVzdChub2RlKS0+ZW5naW5lICE9IGVuZ2luZSk7CiAKIAkJbm9kZS0+YXR0ci5wcmlvcml0eSA9 IHByaW87Ci0JCWlmICghbGlzdF9lbXB0eSgmbm9kZS0+bGluaykpIHsKLQkJCUdFTV9CVUdfT04o aW50ZWxfZW5naW5lX2lzX3ZpcnR1YWwoZW5naW5lKSk7Ci0JCQlpZiAoIWNhY2hlLnByaW9saXN0 KQotCQkJCWNhY2hlLnByaW9saXN0ID0KLQkJCQkJaTkxNV9zY2hlZF9sb29rdXBfcHJpb2xpc3Qo ZW5naW5lLAotCQkJCQkJCQkgICBwcmlvKTsKLQkJCWxpc3RfbW92ZV90YWlsKCZub2RlLT5saW5r LCBjYWNoZS5wcmlvbGlzdCk7Ci0JCX0gZWxzZSB7CisKKwkJaWYgKGxpc3RfZW1wdHkoJm5vZGUt PmxpbmspKSB7CiAJCQkvKgogCQkJICogSWYgdGhlIHJlcXVlc3QgaXMgbm90IGluIHRoZSBwcmlv bGlzdCBxdWV1ZSBiZWNhdXNlCiAJCQkgKiBpdCBpcyBub3QgeWV0IHJ1bm5hYmxlLCB0aGVuIGl0 IGRvZXNuJ3QgY29udHJpYnV0ZQpAQCAtMzEyLDggKzMwNiwxNiBAQCBzdGF0aWMgdm9pZCBfX2k5 MTVfc2NoZWR1bGUoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwKIAkJCSAqIHF1ZXVlOyBi dXQgaW4gdGhhdCBjYXNlIHdlIG1heSBzdGlsbCBuZWVkIHRvIHJlb3JkZXIKIAkJCSAqIHRoZSBp bmZsaWdodCByZXF1ZXN0cy4KIAkJCSAqLwotCQkJaWYgKCFpOTE1X3N3X2ZlbmNlX2RvbmUoJm5v ZGVfdG9fcmVxdWVzdChub2RlKS0+c3VibWl0KSkKLQkJCQljb250aW51ZTsKKwkJCWNvbnRpbnVl OworCQl9CisKKwkJaWYgKCFpbnRlbF9lbmdpbmVfaXNfdmlydHVhbChlbmdpbmUpICYmCisJCSAg ICAhaTkxNV9yZXF1ZXN0X2lzX2FjdGl2ZShub2RlX3RvX3JlcXVlc3Qobm9kZSkpKSB7CisJCQlp ZiAoIWNhY2hlLnByaW9saXN0KQorCQkJCWNhY2hlLnByaW9saXN0ID0KKwkJCQkJaTkxNV9zY2hl ZF9sb29rdXBfcHJpb2xpc3QoZW5naW5lLAorCQkJCQkJCQkgICBwcmlvKTsKKwkJCWxpc3RfbW92 ZV90YWlsKCZub2RlLT5saW5rLCBjYWNoZS5wcmlvbGlzdCk7CiAJCX0KIAogCQlpZiAocHJpbyA8 PSBlbmdpbmUtPmV4ZWNsaXN0cy5xdWV1ZV9wcmlvcml0eV9oaW50KQpAQCAtMzI1LDcgKzMyNyw3 IEBAIHN0YXRpYyB2b2lkIF9faTkxNV9zY2hlZHVsZShzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICpu b2RlLAogCQlraWNrX3N1Ym1pc3Npb24oZW5naW5lLCBwcmlvKTsKIAl9CiAKLQlzcGluX3VubG9j aygmZW5naW5lLT50aW1lbGluZS5sb2NrKTsKKwlzcGluX3VubG9jaygmZW5naW5lLT5hY3RpdmUu bG9jayk7CiB9CiAKIHZvaWQgaTkxNV9zY2hlZHVsZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwg Y29uc3Qgc3RydWN0IGk5MTVfc2NoZWRfYXR0ciAqYXR0cikKQEAgLTQzOSw4ICs0NDEsNiBAQCB2 b2lkIGk5MTVfc2NoZWRfbm9kZV9maW5pKHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUpCiB7 CiAJc3RydWN0IGk5MTVfZGVwZW5kZW5jeSAqZGVwLCAqdG1wOwogCi0JR0VNX0JVR19PTighbGlz dF9lbXB0eSgmbm9kZS0+bGluaykpOwotCiAJc3Bpbl9sb2NrX2lycSgmc2NoZWR1bGVfbG9jayk7 CiAKIAkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5jCmluZGV4IDAwMGUxYTliNjc1 MC4uYzMxMWNlOWM2ZjlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Rp bWVsaW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5jCkBAIC0y NTEsNyArMjUxLDYgQEAgaW50IGk5MTVfdGltZWxpbmVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKIAogCXRpbWVsaW5lLT5mZW5jZV9jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRl eHRfYWxsb2MoMSk7CiAKLQlzcGluX2xvY2tfaW5pdCgmdGltZWxpbmUtPmxvY2spOwogCW11dGV4 X2luaXQoJnRpbWVsaW5lLT5tdXRleCk7CiAKIAlJTklUX0FDVElWRV9SRVFVRVNUKCZ0aW1lbGlu ZS0+bGFzdF9yZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dGltZWxpbmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdGltZWxpbmUuaAppbmRleCAy NzY2OGExYTY5YTMuLjM2ZTVlNWE2NTE1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV90aW1lbGluZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdGltZWxp bmUuaApAQCAtMzYsMjUgKzM2LDYgQEAgaW50IGk5MTVfdGltZWxpbmVfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqaHdzcCk7CiB2 b2lkIGk5MTVfdGltZWxpbmVfZmluaShzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwpOwogCi1zdGF0 aWMgaW5saW5lIHZvaWQKLWk5MTVfdGltZWxpbmVfc2V0X3N1YmNsYXNzKHN0cnVjdCBpOTE1X3Rp bWVsaW5lICp0aW1lbGluZSwKLQkJCSAgIHVuc2lnbmVkIGludCBzdWJjbGFzcykKLXsKLQlsb2Nr ZGVwX3NldF9zdWJjbGFzcygmdGltZWxpbmUtPmxvY2ssIHN1YmNsYXNzKTsKLQotCS8qCi0JICog RHVlIHRvIGFuIGludGVyZXN0aW5nIHF1aXJrIGluIGxvY2tkZXAncyBpbnRlcm5hbCBkZWJ1ZyB0 cmFja2luZywKLQkgKiBhZnRlciBzZXR0aW5nIGEgc3ViY2xhc3Mgd2UgbXVzdCBlbnN1cmUgdGhl IGxvY2sgaXMgdXNlZC4gT3RoZXJ3aXNlLAotCSAqIG5yX3VudXNlZF9sb2NrcyBpcyBpbmNyZW1l bnRlZCBvbmNlIHRvbyBvZnRlbi4KLQkgKi8KLSNpZmRlZiBDT05GSUdfREVCVUdfTE9DS19BTExP QwotCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0JbG9ja19tYXBfYWNxdWlyZSgmdGltZWxpbmUtPmxv Y2suZGVwX21hcCk7Ci0JbG9ja19tYXBfcmVsZWFzZSgmdGltZWxpbmUtPmxvY2suZGVwX21hcCk7 Ci0JbG9jYWxfaXJxX2VuYWJsZSgpOwotI2VuZGlmCi19Ci0KIHN0cnVjdCBpOTE1X3RpbWVsaW5l ICoKIGk5MTVfdGltZWxpbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CQkgICAgIHN0cnVjdCBpOTE1X3ZtYSAqZ2xvYmFsX2h3c3ApOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV90aW1lbGluZV90eXBlcy5oCmluZGV4IDE2ODg3MDVmNGEyYi4uZmNlNWNiNGYxMDkw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lX3R5cGVzLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZV90eXBlcy5oCkBAIC0yMywx MCArMjMsNiBAQCBzdHJ1Y3QgaTkxNV90aW1lbGluZSB7CiAJdTY0IGZlbmNlX2NvbnRleHQ7CiAJ dTMyIHNlcW5vOwogCi0Jc3BpbmxvY2tfdCBsb2NrOwotI2RlZmluZSBUSU1FTElORV9DTElFTlQg MCAvKiBkZWZhdWx0IHN1YmNsYXNzICovCi0jZGVmaW5lIFRJTUVMSU5FX0VOR0lORSAxCi0jZGVm aW5lIFRJTUVMSU5FX1ZJUlRVQUwgMgogCXN0cnVjdCBtdXRleCBtdXRleDsgLyogcHJvdGVjdHMg dGhlIGZsb3cgb2YgcmVxdWVzdHMgKi8KIAogCXVuc2lnbmVkIGludCBwaW5fY291bnQ7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCBhNGY5OGNjZWYw ZmUuLjQ0N2FjYzA2ZjM0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3Vi bWlzc2lvbi5jCkBAIC03NDAsNyArNzQwLDcgQEAgc3RhdGljIGJvb2wgX19ndWNfZGVxdWV1ZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJYm9vbCBzdWJtaXQgPSBmYWxzZTsKIAlz dHJ1Y3QgcmJfbm9kZSAqcmI7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPnRpbWVs aW5lLmxvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+YWN0aXZlLmxvY2spOwog CiAJaWYgKHBvcnRfaXNzZXQocG9ydCkpIHsKIAkJaWYgKGludGVsX2VuZ2luZV9oYXNfcHJlZW1w dGlvbihlbmdpbmUpKSB7CkBAIC04MjIsNyArODIyLDcgQEAgc3RhdGljIHZvaWQgZ3VjX3N1Ym1p c3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJc3RydWN0IGk5MTVfcmVxdWVzdCAq cnE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUt PnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3Rp dmUubG9jaywgZmxhZ3MpOwogCiAJcnEgPSBwb3J0X3JlcXVlc3QocG9ydCk7CiAJd2hpbGUgKHJx ICYmIGk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKSB7CkBAIC04NDcsNyArODQ3LDcgQEAgc3Rh dGljIHZvaWQgZ3VjX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJaWYg KCFleGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBU KSkKIAkJZ3VjX2RlcXVldWUoZW5naW5lKTsKIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVu Z2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVu Z2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIH0KIAogc3RhdGljIHZvaWQgZ3VjX3Jlc2V0X3By ZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpAQCAtODg0LDcgKzg4NCw3IEBA IHN0YXRpYyB2b2lkIGd1Y19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGJv b2wgc3RhbGxlZCkKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKIAl1bnNpZ25lZCBsb25nIGZs YWdzOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3Mp OworCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAKIAll eGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsKIApAQCAtOTAwLDcgKzkw MCw3IEBAIHN0YXRpYyB2b2lkIGd1Y19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsIGJvb2wgc3RhbGxlZCkKIAlpbnRlbF9scl9jb250ZXh0X3Jlc2V0KGVuZ2luZSwgcnEtPmh3 X2NvbnRleHQsIHJxLT5oZWFkLCBzdGFsbGVkKTsKIAogb3V0X3VubG9jazoKLQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyB2 b2lkIGd1Y19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpA QCAtOTI2LDEzICs5MjYsMTMgQEAgc3RhdGljIHZvaWQgZ3VjX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICogc3VibWlzc2lvbidzIGlycSBzdGF0ZSwg d2UgYWxzbyB3aXNoIHRvIHJlbWluZCBvdXJzZWx2ZXMgdGhhdAogCSAqIGl0IGlzIGlycSBzdGF0 ZS4pCiAJICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxh Z3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAK IAkvKiBDYW5jZWwgdGhlIHJlcXVlc3RzIG9uIHRoZSBIVyBhbmQgY2xlYXIgdGhlIEVMU1AgdHJh Y2tlci4gKi8KIAlleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsKIAog CS8qIE1hcmsgYWxsIGV4ZWN1dGluZyByZXF1ZXN0cyBhcyBza2lwcGVkLiAqLwotCWxpc3RfZm9y X2VhY2hfZW50cnkocnEsICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzLCBsaW5rKSB7CisJbGlz dF9mb3JfZWFjaF9lbnRyeShycSwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5r KSB7CiAJCWlmICghaTkxNV9yZXF1ZXN0X3NpZ25hbGVkKHJxKSkKIAkJCWRtYV9mZW5jZV9zZXRf ZXJyb3IoJnJxLT5mZW5jZSwgLUVJTyk7CiAKQEAgLTk2MSw3ICs5NjEsNyBAQCBzdGF0aWMgdm9p ZCBndWNfY2FuY2VsX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAll eGVjbGlzdHMtPnF1ZXVlID0gUkJfUk9PVF9DQUNIRUQ7CiAJR0VNX0JVR19PTihwb3J0X2lzc2V0 KGV4ZWNsaXN0cy0+cG9ydCkpOwogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50 aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5h Y3RpdmUubG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgdm9pZCBndWNfcmVzZXRfZmluaXNoKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvbW9ja190aW1lbGluZS5jCmluZGV4IGUwODQ0NzY0NjllZi4uNjViNTJiZTIzZDQy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja190aW1lbGlu ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMK QEAgLTEzLDcgKzEzLDYgQEAgdm9pZCBtb2NrX3RpbWVsaW5lX2luaXQoc3RydWN0IGk5MTVfdGlt ZWxpbmUgKnRpbWVsaW5lLCB1NjQgY29udGV4dCkKIAl0aW1lbGluZS0+aTkxNSA9IE5VTEw7CiAJ dGltZWxpbmUtPmZlbmNlX2NvbnRleHQgPSBjb250ZXh0OwogCi0Jc3Bpbl9sb2NrX2luaXQoJnRp bWVsaW5lLT5sb2NrKTsKIAltdXRleF9pbml0KCZ0aW1lbGluZS0+bXV0ZXgpOwogCiAJSU5JVF9B Q1RJVkVfUkVRVUVTVCgmdGltZWxpbmUtPmxhc3RfcmVxdWVzdCk7Ci0tIAoyLjIwLjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==