From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 18/46] drm/i915: Replace global_seqno with a hangcheck heartbeat seqno Date: Wed, 6 Feb 2019 13:03:28 +0000 Message-ID: <20190206130356.18771-19-chris@chris-wilson.co.uk> References: <20190206130356.18771-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 4D9A76E937 for ; Wed, 6 Feb 2019 13:04:23 +0000 (UTC) In-Reply-To: <20190206130356.18771-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 VG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW4gZW5naW5lIGhhcyAnc3R1Y2snLCB3ZSBzaW1wbHkgY2hl Y2sgd2hldGhlciBvcgpub3QgaXMgc3RpbGwgb24gdGhlIHNhbWUgc2Vxbm8gZm9yIHNldmVyYWwg c2Vjb25kcy4gVG8ga2VlcCB0aGlzIHNpbXBsZQptZWNoYW5pc20gaW50YWN0IG92ZXIgdGhlIGxv c3Mgb2YgYSBnbG9iYWwgc2Vxbm8sIHdlIGNhbiBzaW1wbHkgYWRkIGEKbmV3IGdsb2JhbCBoZWFy dGJlYXQgc2Vxbm8gaW5zdGVhZC4gQXMgd2UgY2Fubm90IGtub3cgdGhlIHNlcXVlbmNlIGluCndo aWNoIHJlcXVlc3RzIHdpbGwgdGhlbiBiZSBjb21wbGV0ZWQsIHdlIHVzZSBhIHByaW1pdGl2ZSBy YW5kb20gbnVtYmVyCmdlbmVyYXRvciBpbnN0ZWFkICh3aXRoIGEgY3ljbGUgbG9uZyBlbm91Z2gg dG8gbm90IG1hdHRlciBvdmVyIGFuCmludGVydmFsIG9mIGEgZmV3IHRob3VzYW5kIHJlcXVlc3Rz IGJldHdlZW4gaGFuZ2NoZWNrIHNhbXBsZXMpLgoKVGhlIGFsdGVybmF0aXZlIHRvIHVzaW5nIGEg ZGVkaWNhdGVkIHNlcW5vIG9uIGV2ZXJ5IHJlcXVlc3QgaXMgdG8gaXNzdWUKYSBoZWFydGJlYXQg cmVxdWVzdCBhbmQgcXVlcnkgaXRzIHByb2dyZXNzIHRocm91Z2ggdGhlIHN5c3RlbS4gU2FkbHkK dGhpcyByZXF1aXJlcyB1cyB0byByZWR1Y2Ugc3RydWN0X211dGV4IHNvIHRoYXQgd2UgY2FuIGlz c3VlIHJlcXVlc3RzCndpdGhvdXQgcmVxdWlyaW5nIHRoYXQgYmtsLgoKU2lnbmVkLW9mZi1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgIHwgIDcgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV9jcy5jICB8ICA1ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hhbmdjaGVjay5jICB8ICA2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyAgICAgICAgfCAxNSArKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgMTkgKysrKysrKysrKysrLQogNiBmaWxlcyBj aGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCmluZGV4IGFmNTNhMmQwN2Y2Yi4uODQ2YmQwZGUzY2ZhIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMTI5NSw3ICsxMjk1LDcgQEAgc3RhdGljIGlu dCBpOTE1X2hhbmdjaGVja19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQog CXdpdGhfaW50ZWxfcnVudGltZV9wbShkZXZfcHJpdiwgd2FrZXJlZikgewogCQlmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKIAkJCWFjdGhkW2lkXSA9IGludGVsX2VuZ2lu ZV9nZXRfYWN0aXZlX2hlYWQoZW5naW5lKTsKLQkJCXNlcW5vW2lkXSA9IGludGVsX2VuZ2luZV9n ZXRfc2Vxbm8oZW5naW5lKTsKKwkJCXNlcW5vW2lkXSA9IGludGVsX2VuZ2luZV9nZXRfaGFuZ2No ZWNrX3NlcW5vKGVuZ2luZSk7CiAJCX0KIAogCQlpbnRlbF9lbmdpbmVfZ2V0X2luc3Rkb25lKGRl dl9wcml2LT5lbmdpbmVbUkNTXSwgJmluc3Rkb25lKTsKQEAgLTEzMTUsOCArMTMxNSw5IEBAIHN0 YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVu dXNlZCkKIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKIAkJc2VxX3By aW50ZihtLCAiJXM6XG4iLCBlbmdpbmUtPm5hbWUpOwogCQlzZXFfcHJpbnRmKG0sICJcdHNlcW5v ID0gJXggW2N1cnJlbnQgJXgsIGxhc3QgJXhdLCAlZG1zIGFnb1xuIiwKLQkJCSAgIGVuZ2luZS0+ aGFuZ2NoZWNrLnNlcW5vLCBzZXFub1tpZF0sCi0JCQkgICBpbnRlbF9lbmdpbmVfbGFzdF9zdWJt aXQoZW5naW5lKSwKKwkJCSAgIGVuZ2luZS0+aGFuZ2NoZWNrLmxhc3Rfc2Vxbm8sCisJCQkgICBz ZXFub1tpZF0sCisJCQkgICBlbmdpbmUtPmhhbmdjaGVjay5uZXh0X3NlcW5vLAogCQkJICAgamlm Zmllc190b19tc2VjcyhqaWZmaWVzIC0KIAkJCQkJICAgIGVuZ2luZS0+aGFuZ2NoZWNrLmFjdGlv bl90aW1lc3RhbXApKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwppbmRl eCA1N2NmYzRjNTUxYzkuLmUxZTU0Yjc0NDhiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmMKQEAgLTE1MzgsMTAgKzE1MzgsMTEgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZHVt cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJaWYgKGk5MTVfdGVybWluYWxseV93 ZWRnZWQoJmVuZ2luZS0+aTkxNS0+Z3B1X2Vycm9yKSkKIAkJZHJtX3ByaW50ZihtLCAiKioqIFdF REdFRCAqKipcbiIpOwogCi0JZHJtX3ByaW50ZihtLCAiXHRjdXJyZW50IHNlcW5vICV4LCBsYXN0 ICV4LCBoYW5nY2hlY2sgJXggWyVkIG1zXVxuIiwKKwlkcm1fcHJpbnRmKG0sICJcdGN1cnJlbnQg c2Vxbm8gJXgsIGxhc3QgJXgsIGhhbmdjaGVjayAleC8leCBbJWQgbXNdXG4iLAogCQkgICBpbnRl bF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSksCiAJCSAgIGludGVsX2VuZ2luZV9sYXN0X3N1Ym1p dChlbmdpbmUpLAotCQkgICBlbmdpbmUtPmhhbmdjaGVjay5zZXFubywKKwkJICAgZW5naW5lLT5o YW5nY2hlY2subGFzdF9zZXFubywKKwkJICAgZW5naW5lLT5oYW5nY2hlY2submV4dF9zZXFubywK IAkJICAgamlmZmllc190b19tc2VjcyhqaWZmaWVzIC0gZW5naW5lLT5oYW5nY2hlY2suYWN0aW9u X3RpbWVzdGFtcCkpOwogCWRybV9wcmludGYobSwgIlx0UmVzZXQgY291bnQ6ICVkIChnbG9iYWwg JWQpXG4iLAogCQkgICBpOTE1X3Jlc2V0X2VuZ2luZV9jb3VudChlcnJvciwgZW5naW5lKSwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKaW5kZXggYTIxOWM3OTZlNTZkLi5lMDRi MjU2MDM2OWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVj ay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jCkBAIC0xMzMs MjEgKzEzMywyMSBAQCBzdGF0aWMgdm9pZCBoYW5nY2hlY2tfbG9hZF9zYW1wbGUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJCSAgc3RydWN0IGhhbmdjaGVjayAqaGMpCiB7CiAJ aGMtPmFjdGhkID0gaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwotCWhjLT5z ZXFubyA9IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKKwloYy0+c2Vxbm8gPSBpbnRl bF9lbmdpbmVfZ2V0X2hhbmdjaGVja19zZXFubyhlbmdpbmUpOwogfQogCiBzdGF0aWMgdm9pZCBo YW5nY2hlY2tfc3RvcmVfc2FtcGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJ CQkgICBjb25zdCBzdHJ1Y3QgaGFuZ2NoZWNrICpoYykKIHsKIAllbmdpbmUtPmhhbmdjaGVjay5h Y3RoZCA9IGhjLT5hY3RoZDsKLQllbmdpbmUtPmhhbmdjaGVjay5zZXFubyA9IGhjLT5zZXFubzsK KwllbmdpbmUtPmhhbmdjaGVjay5sYXN0X3NlcW5vID0gaGMtPnNlcW5vOwogfQogCiBzdGF0aWMg ZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlvbgogaGFuZ2NoZWNrX2dldF9hY3Rpb24o c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkgICAgIGNvbnN0IHN0cnVjdCBoYW5n Y2hlY2sgKmhjKQogewotCWlmIChlbmdpbmUtPmhhbmdjaGVjay5zZXFubyAhPSBoYy0+c2Vxbm8p CisJaWYgKGVuZ2luZS0+aGFuZ2NoZWNrLmxhc3Rfc2Vxbm8gIT0gaGMtPnNlcW5vKQogCQlyZXR1 cm4gRU5HSU5FX0FDVElWRV9TRVFOTzsKIAogCWlmIChpbnRlbF9lbmdpbmVfaXNfaWRsZShlbmdp bmUpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBkMTA1MTg3MDcwZDQuLjM0MmQzYTkx YmUwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTE4MCw2ICsxODAsMTIgQEAgc3Rh dGljIGlubGluZSB1MzIgaW50ZWxfaHdzX3NlcW5vX2FkZHJlc3Moc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogCQlJOTE1X0dFTV9IV1NfSU5ERVhfQUREUik7CiB9CiAKK3N0YXRpYyBp bmxpbmUgdTMyIGludGVsX2h3c19oYW5nY2hlY2tfYWRkcmVzcyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCit7CisJcmV0dXJuIChpOTE1X2dndHRfb2Zmc2V0KGVuZ2luZS0+c3RhdHVz X3BhZ2Uudm1hKSArCisJCUk5MTVfR0VNX0hXU19IQU5HQ0hFQ0tfQUREUik7Cit9CisKIHN0YXRp YyBpbmxpbmUgc3RydWN0IGk5MTVfcHJpb2xpc3QgKnRvX3ByaW9saXN0KHN0cnVjdCByYl9ub2Rl ICpyYikKIHsKIAlyZXR1cm4gcmJfZW50cnkocmIsIHN0cnVjdCBpOTE1X3ByaW9saXN0LCBub2Rl KTsKQEAgLTIyMzUsNiArMjI0MSwxMCBAQCBzdGF0aWMgdTMyICpnZW44X2VtaXRfZmluaV9icmVh ZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCiAJCQkJICByZXF1 ZXN0LT5mZW5jZS5zZXFubywKIAkJCQkgIHJlcXVlc3QtPnRpbWVsaW5lLT5od3NwX29mZnNldCk7 CiAKKwljcyA9IGdlbjhfZW1pdF9nZ3R0X3dyaXRlKGNzLAorCQkJCSAgaW50ZWxfZW5naW5lX25l eHRfaGFuZ2NoZWNrX3NlcW5vKHJlcXVlc3QtPmVuZ2luZSksCisJCQkJICBpbnRlbF9od3NfaGFu Z2NoZWNrX2FkZHJlc3MocmVxdWVzdC0+ZW5naW5lKSk7CisKIAljcyA9IGdlbjhfZW1pdF9nZ3R0 X3dyaXRlKGNzLAogCQkJCSAgcmVxdWVzdC0+Z2xvYmFsX3NlcW5vLAogCQkJCSAgaW50ZWxfaHdz X3NlcW5vX2FkZHJlc3MocmVxdWVzdC0+ZW5naW5lKSk7CkBAIC0yMjU5LDYgKzIyNjksMTEgQEAg c3RhdGljIHUzMiAqZ2VuOF9lbWl0X2ZpbmlfYnJlYWRjcnVtYl9yY3Moc3RydWN0IGk5MTVfcmVx dWVzdCAqcmVxdWVzdCwgdTMyICpjcykKIAkJCQkgICAgICBQSVBFX0NPTlRST0xfRkxVU0hfRU5B QkxFIHwKIAkJCQkgICAgICBQSVBFX0NPTlRST0xfQ1NfU1RBTEwpOwogCisJY3MgPSBnZW44X2Vt aXRfZ2d0dF93cml0ZV9yY3MoY3MsCisJCQkJICAgICAgaW50ZWxfZW5naW5lX25leHRfaGFuZ2No ZWNrX3NlcW5vKHJlcXVlc3QtPmVuZ2luZSksCisJCQkJICAgICAgaW50ZWxfaHdzX2hhbmdjaGVj a19hZGRyZXNzKHJlcXVlc3QtPmVuZ2luZSksCisJCQkJICAgICAgUElQRV9DT05UUk9MX0NTX1NU QUxMKTsKKwogCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGVfcmNzKGNzLAogCQkJCSAgICAgIHJl cXVlc3QtPmdsb2JhbF9zZXFubywKIAkJCQkgICAgICBpbnRlbF9od3Nfc2Vxbm9fYWRkcmVzcyhy ZXF1ZXN0LT5lbmdpbmUpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmlu ZGV4IDdmODQxZGJhODdiMy4uODcwMTg0YmJkMTY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jCkBAIC00Myw2ICs0MywxMiBAQAogICovCiAjZGVmaW5lIExFR0FDWV9S RVFVRVNUX1NJWkUgMjAwCiAKK3N0YXRpYyBpbmxpbmUgdTMyIGh3c19oYW5nY2hlY2tfYWRkcmVz cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJcmV0dXJuIChpOTE1X2dndHRf b2Zmc2V0KGVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKSArCisJCUk5MTVfR0VNX0hXU19IQU5HQ0hF Q0tfQUREUik7Cit9CisKIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX2h3c19zZXFub19hZGRyZXNz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlyZXR1cm4gKGk5MTVfZ2d0dF9v ZmZzZXQoZW5naW5lLT5zdGF0dXNfcGFnZS52bWEpICsKQEAgLTMxNiw2ICszMjIsMTEgQEAgc3Rh dGljIHUzMiAqZ2VuNl9yY3NfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx LCB1MzIgKmNzKQogCSpjcysrID0gcnEtPnRpbWVsaW5lLT5od3NwX29mZnNldCB8IFBJUEVfQ09O VFJPTF9HTE9CQUxfR1RUOwogCSpjcysrID0gcnEtPmZlbmNlLnNlcW5vOwogCisJKmNzKysgPSBH RlhfT1BfUElQRV9DT05UUk9MKDQpOworCSpjcysrID0gUElQRV9DT05UUk9MX1FXX1dSSVRFOwor CSpjcysrID0gaHdzX2hhbmdjaGVja19hZGRyZXNzKHJxLT5lbmdpbmUpIHwgUElQRV9DT05UUk9M X0dMT0JBTF9HVFQ7CisJKmNzKysgPSBpbnRlbF9lbmdpbmVfbmV4dF9oYW5nY2hlY2tfc2Vxbm8o cnEtPmVuZ2luZSk7CisKIAkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCk7CiAJKmNzKysg PSBQSVBFX0NPTlRST0xfUVdfV1JJVEUgfCBQSVBFX0NPTlRST0xfQ1NfU1RBTEw7CiAJKmNzKysg PSBpbnRlbF9od3Nfc2Vxbm9fYWRkcmVzcyhycS0+ZW5naW5lKSB8IFBJUEVfQ09OVFJPTF9HTE9C QUxfR1RUOwpAQCAtNDIyLDYgKzQzMywxMSBAQCBzdGF0aWMgdTMyICpnZW43X3Jjc19lbWl0X2Jy ZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCiAJKmNzKysgPSBycS0+ dGltZWxpbmUtPmh3c3Bfb2Zmc2V0OwogCSpjcysrID0gcnEtPmZlbmNlLnNlcW5vOwogCisJKmNz KysgPSBHRlhfT1BfUElQRV9DT05UUk9MKDQpOworCSpjcysrID0gUElQRV9DT05UUk9MX1FXX1dS SVRFIHwgUElQRV9DT05UUk9MX0dMT0JBTF9HVFRfSVZCOworCSpjcysrID0gaHdzX2hhbmdjaGVj a19hZGRyZXNzKHJxLT5lbmdpbmUpOworCSpjcysrID0gaW50ZWxfZW5naW5lX25leHRfaGFuZ2No ZWNrX3NlcW5vKHJxLT5lbmdpbmUpOworCiAJKmNzKysgPSBHRlhfT1BfUElQRV9DT05UUk9MKDQp OwogCSpjcysrID0gKFBJUEVfQ09OVFJPTF9RV19XUklURSB8CiAJCSBQSVBFX0NPTlRST0xfR0xP QkFMX0dUVF9JVkIgfApAQCAtNDQ3LDEyICs0NjMsMTUgQEAgc3RhdGljIHUzMiAqZ2VuNl94Y3Nf ZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgKmNzKQogCSpjcysr ID0gSTkxNV9HRU1fSFdTX1NFUU5PX0FERFIgfCBNSV9GTFVTSF9EV19VU0VfR1RUOwogCSpjcysr ID0gcnEtPmZlbmNlLnNlcW5vOwogCisJKmNzKysgPSBNSV9GTFVTSF9EVyB8IE1JX0ZMVVNIX0RX X09QX1NUT1JFRFcgfCBNSV9GTFVTSF9EV19TVE9SRV9JTkRFWDsKKwkqY3MrKyA9IEk5MTVfR0VN X0hXU19IQU5HQ0hFQ0tfQUREUiB8IE1JX0ZMVVNIX0RXX1VTRV9HVFQ7CisJKmNzKysgPSBpbnRl bF9lbmdpbmVfbmV4dF9oYW5nY2hlY2tfc2Vxbm8ocnEtPmVuZ2luZSk7CisKIAkqY3MrKyA9IE1J X0ZMVVNIX0RXIHwgTUlfRkxVU0hfRFdfT1BfU1RPUkVEVyB8IE1JX0ZMVVNIX0RXX1NUT1JFX0lO REVYOwogCSpjcysrID0gSTkxNV9HRU1fSFdTX0lOREVYX0FERFIgfCBNSV9GTFVTSF9EV19VU0Vf R1RUOwogCSpjcysrID0gcnEtPmdsb2JhbF9zZXFubzsKIAogCSpjcysrID0gTUlfVVNFUl9JTlRF UlJVUFQ7Ci0JKmNzKysgPSBNSV9OT09QOwogCiAJcnEtPnRhaWwgPSBpbnRlbF9yaW5nX29mZnNl dChycSwgY3MpOwogCWFzc2VydF9yaW5nX3RhaWxfdmFsaWQocnEtPnJpbmcsIHJxLT50YWlsKTsK QEAgLTQ3Miw2ICs0OTEsMTAgQEAgc3RhdGljIHUzMiAqZ2VuN194Y3NfZW1pdF9icmVhZGNydW1i KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgKmNzKQogCSpjcysrID0gSTkxNV9HRU1fSFdT X1NFUU5PX0FERFIgfCBNSV9GTFVTSF9EV19VU0VfR1RUOwogCSpjcysrID0gcnEtPmZlbmNlLnNl cW5vOwogCisJKmNzKysgPSBNSV9GTFVTSF9EVyB8IE1JX0ZMVVNIX0RXX09QX1NUT1JFRFcgfCBN SV9GTFVTSF9EV19TVE9SRV9JTkRFWDsKKwkqY3MrKyA9IEk5MTVfR0VNX0hXU19IQU5HQ0hFQ0tf QUREUiB8IE1JX0ZMVVNIX0RXX1VTRV9HVFQ7CisJKmNzKysgPSBpbnRlbF9lbmdpbmVfbmV4dF9o YW5nY2hlY2tfc2Vxbm8ocnEtPmVuZ2luZSk7CisKIAkqY3MrKyA9IE1JX0ZMVVNIX0RXIHwgTUlf RkxVU0hfRFdfT1BfU1RPUkVEVyB8IE1JX0ZMVVNIX0RXX1NUT1JFX0lOREVYOwogCSpjcysrID0g STkxNV9HRU1fSFdTX0lOREVYX0FERFIgfCBNSV9GTFVTSF9EV19VU0VfR1RUOwogCSpjcysrID0g cnEtPmdsb2JhbF9zZXFubzsKQEAgLTQ4Nyw2ICs1MTAsNyBAQCBzdGF0aWMgdTMyICpnZW43X3hj c19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCiAJKmNz KysgPSAwOwogCiAJKmNzKysgPSBNSV9VU0VSX0lOVEVSUlVQVDsKKwkqY3MrKyA9IE1JX05PT1A7 CiAKIAlycS0+dGFpbCA9IGludGVsX3Jpbmdfb2Zmc2V0KHJxLCBjcyk7CiAJYXNzZXJ0X3Jpbmdf dGFpbF92YWxpZChycS0+cmluZywgcnEtPnRhaWwpOwpAQCAtOTMwLDExICs5NTQsMTYgQEAgc3Rh dGljIHUzMiAqaTl4eF9lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUz MiAqY3MpCiAJKmNzKysgPSBJOTE1X0dFTV9IV1NfU0VRTk9fQUREUjsKIAkqY3MrKyA9IHJxLT5m ZW5jZS5zZXFubzsKIAorCSpjcysrID0gTUlfU1RPUkVfRFdPUkRfSU5ERVg7CisJKmNzKysgPSBJ OTE1X0dFTV9IV1NfSEFOR0NIRUNLX0FERFI7CisJKmNzKysgPSBpbnRlbF9lbmdpbmVfbmV4dF9o YW5nY2hlY2tfc2Vxbm8ocnEtPmVuZ2luZSk7CisKIAkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lO REVYOwogCSpjcysrID0gSTkxNV9HRU1fSFdTX0lOREVYX0FERFI7CiAJKmNzKysgPSBycS0+Z2xv YmFsX3NlcW5vOwogCiAJKmNzKysgPSBNSV9VU0VSX0lOVEVSUlVQVDsKKwkqY3MrKyA9IE1JX05P T1A7CiAKIAlycS0+dGFpbCA9IGludGVsX3Jpbmdfb2Zmc2V0KHJxLCBjcyk7CiAJYXNzZXJ0X3Jp bmdfdGFpbF92YWxpZChycS0+cmluZywgcnEtPnRhaWwpOwpAQCAtOTU2LDYgKzk4NSwxMCBAQCBz dGF0aWMgdTMyICpnZW41X2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwg dTMyICpjcykKIAkqY3MrKyA9IEk5MTVfR0VNX0hXU19TRVFOT19BRERSOwogCSpjcysrID0gcnEt PmZlbmNlLnNlcW5vOwogCisJKmNzKysgPSBNSV9TVE9SRV9EV09SRF9JTkRFWDsKKwkqY3MrKyA9 IEk5MTVfR0VNX0hXU19IQU5HQ0hFQ0tfQUREUjsKKwkqY3MrKyA9IGludGVsX2VuZ2luZV9uZXh0 X2hhbmdjaGVja19zZXFubyhycS0+ZW5naW5lKTsKKwogCUJVSUxEX0JVR19PTihHRU41X1dBX1NU T1JFUyA8IDEpOwogCWZvciAoaSA9IDA7IGkgPCBHRU41X1dBX1NUT1JFUzsgaSsrKSB7CiAJCSpj cysrID0gTUlfU1RPUkVfRFdPUkRfSU5ERVg7CkBAIC05NjQsNyArOTk3LDYgQEAgc3RhdGljIHUz MiAqZ2VuNV9lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3Mp CiAJfQogCiAJKmNzKysgPSBNSV9VU0VSX0lOVEVSUlVQVDsKLQkqY3MrKyA9IE1JX05PT1A7CiAK IAlycS0+dGFpbCA9IGludGVsX3Jpbmdfb2Zmc2V0KHJxLCBjcyk7CiAJYXNzZXJ0X3JpbmdfdGFp bF92YWxpZChycS0+cmluZywgcnEtPnRhaWwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCmluZGV4IDQ5M2E3MmVkMDFhZi4uYjMwYzM3YWM1NWEzIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC02LDYgKzYsNyBAQAogCiAjaW5jbHVkZSA8 bGludXgvaGFzaHRhYmxlLmg+CiAjaW5jbHVkZSA8bGludXgvaXJxX3dvcmsuaD4KKyNpbmNsdWRl IDxsaW51eC9yYW5kb20uaD4KICNpbmNsdWRlIDxsaW51eC9zZXFsb2NrLmg+CiAKICNpbmNsdWRl ICJpOTE1X2dlbV9iYXRjaF9wb29sLmgiCkBAIC0xMTksNyArMTIwLDggQEAgc3RydWN0IGludGVs X2luc3Rkb25lIHsKIAogc3RydWN0IGludGVsX2VuZ2luZV9oYW5nY2hlY2sgewogCXU2NCBhY3Ro ZDsKLQl1MzIgc2Vxbm87CisJdTMyIGxhc3Rfc2Vxbm87CisJdTMyIG5leHRfc2Vxbm87CiAJdW5z aWduZWQgbG9uZyBhY3Rpb25fdGltZXN0YW1wOwogCXN0cnVjdCBpbnRlbF9pbnN0ZG9uZSBpbnN0 ZG9uZTsKIH07CkBAIC03MTgsNiArNzIwLDggQEAgaW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2Uoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgcmVnLCB1MzIgdmFsdWUpCiAjZGVmaW5l IEk5MTVfR0VNX0hXU19JTkRFWF9BRERSCQkoSTkxNV9HRU1fSFdTX0lOREVYICogc2l6ZW9mKHUz MikpCiAjZGVmaW5lIEk5MTVfR0VNX0hXU19QUkVFTVBUCQkweDMyCiAjZGVmaW5lIEk5MTVfR0VN X0hXU19QUkVFTVBUX0FERFIJKEk5MTVfR0VNX0hXU19QUkVFTVBUICogc2l6ZW9mKHUzMikpCisj ZGVmaW5lIEk5MTVfR0VNX0hXU19IQU5HQ0hFQ0sJCTB4MzQKKyNkZWZpbmUgSTkxNV9HRU1fSFdT X0hBTkdDSEVDS19BRERSCShJOTE1X0dFTV9IV1NfSEFOR0NIRUNLICogc2l6ZW9mKHUzMikpCiAj ZGVmaW5lIEk5MTVfR0VNX0hXU19TRVFOTwkJMHg0MAogI2RlZmluZSBJOTE1X0dFTV9IV1NfU0VR Tk9fQUREUgkJKEk5MTVfR0VNX0hXU19TRVFOTyAqIHNpemVvZih1MzIpKQogI2RlZmluZSBJOTE1 X0dFTV9IV1NfU0NSQVRDSAkJMHg4MApAQCAtMTA3OCw0ICsxMDgyLDE3IEBAIHN0YXRpYyBpbmxp bmUgYm9vbCBpbmplY3RfcHJlZW1wdF9oYW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3Rz ICpleGVjbGlzdHMpCiAKICNlbmRpZgogCitzdGF0aWMgaW5saW5lIHUzMgoraW50ZWxfZW5naW5l X25leHRfaGFuZ2NoZWNrX3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sK KwlyZXR1cm4gZW5naW5lLT5oYW5nY2hlY2submV4dF9zZXFubyA9CisJCW5leHRfcHNldWRvX3Jh bmRvbTMyKGVuZ2luZS0+aGFuZ2NoZWNrLm5leHRfc2Vxbm8pOworfQorCitzdGF0aWMgaW5saW5l IHUzMgoraW50ZWxfZW5naW5lX2dldF9oYW5nY2hlY2tfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQoreworCXJldHVybiBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKGVuZ2luZSwg STkxNV9HRU1fSFdTX0hBTkdDSEVDSyk7Cit9CisKICNlbmRpZiAvKiBfSU5URUxfUklOR0JVRkZF Ul9IXyAqLwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK