From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 29/34] drm/i915: Drop fake breadcrumb irq Date: Mon, 21 Jan 2019 22:21:12 +0000 Message-ID: <20190121222117.23305-30-chris@chris-wilson.co.uk> References: <20190121222117.23305-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 7B82E6E23A for ; Mon, 21 Jan 2019 22:21:48 +0000 (UTC) In-Reply-To: <20190121222117.23305-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 TWlzc2VkIGJyZWFkY3J1bWIgZGV0ZWN0aW9uIGlzIGRlZnVuY3QgZHVlIHRvIHRoZSB0aWdodCBj b3VwbGluZyB3aXRoCmRtYV9mZW5jZSBzaWduYWxpbmcgYW5kIHRoZSBteXJpYWQgd2F5cyB3ZSBt YXkgc2lnbmFsIGZlbmNlcyBmcm9tCmV2ZXJ5d2hlcmUgYnV0IGZyb20gYW4gaW50ZXJydXB0LCBp LmUuIHdlIGZyZXF1ZW50bHkgc2lnbmFsIGEgZmVuY2UKYmVmb3JlIHdlIGV2ZW4gc2VlIGl0cyBp bnRlcnJ1cHQuIFRoaXMgbWVhbnMgdGhhdCBldmVuIGlmIHdlIG1pc3MgYW4KaW50ZXJydXB0IGZv ciBhIGZlbmNlLCBpdCBzdGlsbCBpcyBzaWduYWxlZCBiZWZvcmUgb3VyIGJyZWFkY3J1bWIKaGFu Z2NoZWNrIGZpcmVzLCBzbyBzaW1wbGlmeSB0aGUgYnJlYWRjcnVtYiBoYW5nY2hlY2tpbmcgYnkg bW92aW5nIGl0CmludG8gdGhlIEdQVSBoYW5nY2hlY2sgYW5kIGZvcmdvIGZha2UgaW50ZXJydXB0 cy4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICAgICB8ICA5 MyAtLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAg ICAgIHwgICAyIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmggICAgICAg ICB8ICAgNSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jICAgICAg fCAxNDcgKy0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5n Y2hlY2suYyAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oICAgICAgIHwgICA1IC0KIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9saXZl X3Rlc3QuYyAgICB8ICAgNyAtCiA3IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMjU2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggZDc3NjRl NjJlOWI0Li5jMmFhZjAxMGMzZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBA IC0xMzIxLDkgKzEzMjEsNiBAQCBzdGF0aWMgaW50IGk5MTVfaGFuZ2NoZWNrX2luZm8oc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCQkgICBpbnRlbF9lbmdpbmVfbGFzdF9zdWJt aXQoZW5naW5lKSwKIAkJCSAgIGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtCiAJCQkJCSAgICBl bmdpbmUtPmhhbmdjaGVjay5hY3Rpb25fdGltZXN0YW1wKSk7Ci0JCXNlcV9wcmludGYobSwgIlx0 ZmFrZSBpcnEgYWN0aXZlPyAlc1xuIiwKLQkJCSAgIHllc25vKHRlc3RfYml0KGVuZ2luZS0+aWQs Ci0JCQkJCSAgJmRldl9wcml2LT5ncHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncykpKTsKIAogCQlz ZXFfcHJpbnRmKG0sICJcdEFDVEhEID0gMHglMDhsbHggW2N1cnJlbnQgMHglMDhsbHhdXG4iLAog CQkJICAgKGxvbmcgbG9uZyllbmdpbmUtPmhhbmdjaGVjay5hY3RoZCwKQEAgLTM4NzQsOTQgKzM4 NzEsNiBAQCBERUZJTkVfU0lNUExFX0FUVFJJQlVURShpOTE1X3dlZGdlZF9mb3BzLAogCQkJaTkx NV93ZWRnZWRfZ2V0LCBpOTE1X3dlZGdlZF9zZXQsCiAJCQkiJWxsdVxuIik7CiAKLXN0YXRpYyBp bnQKLWZhdWx0X2lycV9zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JICAgICAg dW5zaWduZWQgbG9uZyAqaXJxLAotCSAgICAgIHVuc2lnbmVkIGxvbmcgdmFsKQotewotCWludCBl cnI7Ci0KLQllcnIgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmk5MTUtPmRybS5zdHJ1Y3Rf bXV0ZXgpOwotCWlmIChlcnIpCi0JCXJldHVybiBlcnI7Ci0KLQllcnIgPSBpOTE1X2dlbV93YWl0 X2Zvcl9pZGxlKGk5MTUsCi0JCQkJICAgICBJOTE1X1dBSVRfTE9DS0VEIHwKLQkJCQkgICAgIEk5 MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAotCQkJCSAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwot CWlmIChlcnIpCi0JCWdvdG8gZXJyX3VubG9jazsKLQotCSppcnEgPSB2YWw7Ci0JbXV0ZXhfdW5s b2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQotCS8qIEZsdXNoIGlkbGUgd29ya2VyIHRv IGRpc2FybSBpcnEgKi8KLQlkcmFpbl9kZWxheWVkX3dvcmsoJmk5MTUtPmd0LmlkbGVfd29yayk7 Ci0KLQlyZXR1cm4gMDsKLQotZXJyX3VubG9jazoKLQltdXRleF91bmxvY2soJmk5MTUtPmRybS5z dHJ1Y3RfbXV0ZXgpOwotCXJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyBpbnQKLWk5MTVfcmluZ19t aXNzZWRfaXJxX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbCkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRhOwotCi0JKnZhbCA9IGRldl9wcml2LT5ncHVfZXJyb3Iu bWlzc2VkX2lycV9yaW5nczsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotaTkxNV9yaW5n X21pc3NlZF9pcnFfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCi17Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSBkYXRhOwotCi0JcmV0dXJuIGZhdWx0X2lycV9zZXQoaTkxNSwgJmk5 MTUtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzLCB2YWwpOwotfQotCi1ERUZJTkVfU0lNUExF X0FUVFJJQlVURShpOTE1X3JpbmdfbWlzc2VkX2lycV9mb3BzLAotCQkJaTkxNV9yaW5nX21pc3Nl ZF9pcnFfZ2V0LCBpOTE1X3JpbmdfbWlzc2VkX2lycV9zZXQsCi0JCQkiMHglMDhsbHhcbiIpOwot Ci1zdGF0aWMgaW50Ci1pOTE1X3JpbmdfdGVzdF9pcnFfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFs KQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRhdGE7Ci0KLQkqdmFs ID0gZGV2X3ByaXYtPmdwdV9lcnJvci50ZXN0X2lycV9yaW5nczsKLQotCXJldHVybiAwOwotfQot Ci1zdGF0aWMgaW50Ci1pOTE1X3JpbmdfdGVzdF9pcnFfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwp Ci17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBkYXRhOwotCi0JLyogR3VDIGtl ZXBzIHRoZSB1c2VyIGludGVycnVwdCBwZXJtYW5lbnRseSBlbmFibGVkIGZvciBzdWJtaXNzaW9u ICovCi0JaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oaTkxNSkpCi0JCXJldHVybiAtRU5PREVWOwot Ci0JLyoKLQkgKiBGcm9tIGljbCwgd2UgY2FuIG5vIGxvbmdlciBpbmRpdmlkdWFsbHkgbWFzayBp bnRlcnJ1cHQgZ2VuZXJhdGlvbgotCSAqIGZyb20gZWFjaCBlbmdpbmUuCi0JICovCi0JaWYgKElO VEVMX0dFTihpOTE1KSA+PSAxMSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQl2YWwgJj0gSU5URUxf SU5GTyhpOTE1KS0+cmluZ19tYXNrOwotCURSTV9ERUJVR19EUklWRVIoIk1hc2tpbmcgaW50ZXJy dXB0cyBvbiByaW5ncyAweCUwOGxseFxuIiwgdmFsKTsKLQotCXJldHVybiBmYXVsdF9pcnFfc2V0 KGk5MTUsICZpOTE1LT5ncHVfZXJyb3IudGVzdF9pcnFfcmluZ3MsIHZhbCk7Ci19Ci0KLURFRklO RV9TSU1QTEVfQVRUUklCVVRFKGk5MTVfcmluZ190ZXN0X2lycV9mb3BzLAotCQkJaTkxNV9yaW5n X3Rlc3RfaXJxX2dldCwgaTkxNV9yaW5nX3Rlc3RfaXJxX3NldCwKLQkJCSIweCUwOGxseFxuIik7 Ci0KICNkZWZpbmUgRFJPUF9VTkJPVU5ECUJJVCgwKQogI2RlZmluZSBEUk9QX0JPVU5ECUJJVCgx KQogI2RlZmluZSBEUk9QX1JFVElSRQlCSVQoMikKQEAgLTQ3MjQsOCArNDYzMyw2IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9kZWJ1Z2ZzX2ZpbGVzIHsKIH0gaTkxNV9kZWJ1Z2ZzX2ZpbGVz W10gPSB7CiAJeyJpOTE1X3dlZGdlZCIsICZpOTE1X3dlZGdlZF9mb3BzfSwKIAl7Imk5MTVfY2Fj aGVfc2hhcmluZyIsICZpOTE1X2NhY2hlX3NoYXJpbmdfZm9wc30sCi0JeyJpOTE1X3JpbmdfbWlz c2VkX2lycSIsICZpOTE1X3JpbmdfbWlzc2VkX2lycV9mb3BzfSwKLQl7Imk5MTVfcmluZ190ZXN0 X2lycSIsICZpOTE1X3JpbmdfdGVzdF9pcnFfZm9wc30sCiAJeyJpOTE1X2dlbV9kcm9wX2NhY2hl cyIsICZpOTE1X2Ryb3BfY2FjaGVzX2ZvcHN9LAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9J OTE1X0NBUFRVUkVfRVJST1IpCiAJeyJpOTE1X2Vycm9yX3N0YXRlIiwgJmk5MTVfZXJyb3Jfc3Rh dGVfZm9wc30sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCA4MjU1NzIx MjcwMjkuLjA1ODRjOGRmYTZhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j CkBAIC03MTgsOCArNzE4LDYgQEAgc3RhdGljIHZvaWQgX19lcnJfcHJpbnRfdG9fc2dsKHN0cnVj dCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJZXJyX3ByaW50ZihtLCAiRk9SQ0VXQUtF OiAweCUwOHhcbiIsIGVycm9yLT5mb3JjZXdha2UpOwogCWVycl9wcmludGYobSwgIkRFUlJNUjog MHglMDh4XG4iLCBlcnJvci0+ZGVycm1yKTsKIAllcnJfcHJpbnRmKG0sICJDQ0lEOiAweCUwOHhc biIsIGVycm9yLT5jY2lkKTsKLQllcnJfcHJpbnRmKG0sICJNaXNzZWQgaW50ZXJydXB0czogMHgl MDhseFxuIiwKLQkJICAgbS0+aTkxNS0+Z3B1X2Vycm9yLm1pc3NlZF9pcnFfcmluZ3MpOwogCiAJ Zm9yIChpID0gMDsgaSA8IGVycm9yLT5uZmVuY2U7IGkrKykKIAkJZXJyX3ByaW50ZihtLCAiICBm ZW5jZVslZF0gPSAlMDhsbHhcbiIsIGksIGVycm9yLT5mZW5jZVtpXSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuaAppbmRleCAwZTE4NDcxMmNiY2MuLjk5YTUzYzBjZDZkYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oCkBAIC0yMDMsOCArMjAzLDYgQEAgc3Ry dWN0IGk5MTVfZ3B1X2Vycm9yIHsKIAogCWF0b21pY190IHBlbmRpbmdfZmJfcGluOwogCi0JdW5z aWduZWQgbG9uZyBtaXNzZWRfaXJxX3JpbmdzOwotCiAJLyoqCiAJICogU3RhdGUgdmFyaWFibGUg Y29udHJvbGxpbmcgdGhlIHJlc2V0IGZsb3cgYW5kIGNvdW50CiAJICoKQEAgLTI3Myw5ICsyNzEs NiBAQCBzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgewogCSAqLwogCXdhaXRfcXVldWVfaGVhZF90IHJl c2V0X3F1ZXVlOwogCi0JLyogRm9yIG1pc3NlZCBpcnEvc2Vxbm8gc2ltdWxhdGlvbi4gKi8KLQl1 bnNpZ25lZCBsb25nIHRlc3RfaXJxX3JpbmdzOwotCiAJc3RydWN0IGk5MTVfZ3B1X3Jlc3RhcnQg KnJlc3RhcnQ7CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9i cmVhZGNydW1icy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwpp bmRleCBmYWViMDA4M2I1NjEuLjNiZGZhNjNlYTRhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9icmVhZGNydW1icy5jCkBAIC05MSw3ICs5MSw2IEBAIGJvb2wgaW50ZWxfZW5naW5lX2Jy ZWFkY3J1bWJzX2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAlzcGluX2xv Y2soJmItPmlycV9sb2NrKTsKIAotCWItPmlycV9maXJlZCA9IHRydWU7CiAJaWYgKGItPmlycV9h cm1lZCAmJiBsaXN0X2VtcHR5KCZiLT5zaWduYWxlcnMpKQogCQlfX2ludGVsX2JyZWFkY3J1bWJz X2Rpc2FybV9pcnEoYik7CiAKQEAgLTE1NSw4NiArMTU0LDYgQEAgc3RhdGljIHZvaWQgc2lnbmFs X2lycV93b3JrKHN0cnVjdCBpcnFfd29yayAqd29yaykKIAlpbnRlbF9lbmdpbmVfYnJlYWRjcnVt YnNfaXJxKGVuZ2luZSk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIHdhaXRfdGltZW91dCh2 b2lkKQotewotCXJldHVybiByb3VuZF9qaWZmaWVzX3VwKGppZmZpZXMgKyBEUk1fSTkxNV9IQU5H Q0hFQ0tfSklGRklFUyk7Ci19Ci0KLXN0YXRpYyBub2lubGluZSB2b2lkIG1pc3NlZF9icmVhZGNy dW1iKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlpZiAoR0VNX1NIT1dfREVC VUcoKSkgewotCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9kZWJ1Z19wcmludGVyKF9fZnVu Y19fKTsKLQotCQlpbnRlbF9lbmdpbmVfZHVtcChlbmdpbmUsICZwLAotCQkJCSAgIiVzIG1pc3Nl ZCBicmVhZGNydW1iIGF0ICVwU1xuIiwKLQkJCQkgIGVuZ2luZS0+bmFtZSwgX19idWlsdGluX3Jl dHVybl9hZGRyZXNzKDApKTsKLQl9Ci0KLQlzZXRfYml0KGVuZ2luZS0+aWQsICZlbmdpbmUtPmk5 MTUtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzKTsKLX0KLQotc3RhdGljIHZvaWQgaW50ZWxf YnJlYWRjcnVtYnNfaGFuZ2NoZWNrKHN0cnVjdCB0aW1lcl9saXN0ICp0KQotewotCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9Ci0JCWZyb21fdGltZXIoZW5naW5lLCB0LCBicmVhZGNy dW1icy5oYW5nY2hlY2spOwotCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUt PmJyZWFkY3J1bWJzOwotCi0JaWYgKCFiLT5pcnFfYXJtZWQpCi0JCXJldHVybjsKLQotCWlmIChi LT5pcnFfZmlyZWQpCi0JCWdvdG8gcmVhcm07Ci0KLQkvKgotCSAqIFdlIGtlZXAgdGhlIGhhbmdj aGVjayB0aW1lciBhbGl2ZSB1bnRpbCB3ZSBkaXNhcm0gdGhlIGlycSwgZXZlbgotCSAqIGlmIHRo ZXJlIGFyZSBubyB3YWl0ZXJzIGF0IHByZXNlbnQuCi0JICoKLQkgKiBJZiB0aGUgd2FpdGVyIHdh cyBjdXJyZW50bHkgcnVubmluZywgYXNzdW1lIGl0IGhhc24ndCBoYWQgYSBjaGFuY2UKLQkgKiB0 byBwcm9jZXNzIHRoZSBwZW5kaW5nIGludGVycnVwdCAoZS5nLCBsb3cgcHJpb3JpdHkgdGFzayBv biBhIGxvYWRlZAotCSAqIHN5c3RlbSkgYW5kIHdhaXQgdW50aWwgaXQgc2xlZXBzIGJlZm9yZSBk ZWNsYXJpbmcgYSBtaXNzZWQgaW50ZXJydXB0LgotCSAqCi0JICogSWYgdGhlIHdhaXRlciB3YXMg YXNsZWVwIChhbmQgbm90IGV2ZW4gcGVuZGluZyBhIHdha2V1cCksIHRoZW4gd2UKLQkgKiBtdXN0 IGhhdmUgbWlzc2VkIGFuIGludGVycnVwdCBhcyB0aGUgR1BVIGhhcyBzdG9wcGVkIGFkdmFuY2lu ZwotCSAqIGJ1dCB3ZSBzdGlsbCBoYXZlIGEgd2FpdGVyLiBBc3N1bWluZyBhbGwgYmF0Y2hlcyBj b21wbGV0ZSB3aXRoaW4KLQkgKiBEUk1fSTkxNV9IQU5HQ0hFQ0tfSklGRklFUyBbMS41c10hCi0J ICovCi0Jc3luY2hyb25pemVfaGFyZGlycShlbmdpbmUtPmk5MTUtPmRybS5pcnEpOwotCWlmIChp bnRlbF9lbmdpbmVfc2lnbmFsX2JyZWFkY3J1bWJzKGVuZ2luZSkpIHsKLQkJbWlzc2VkX2JyZWFk Y3J1bWIoZW5naW5lKTsKLQkJbW9kX3RpbWVyKCZiLT5mYWtlX2lycSwgamlmZmllcyArIDEpOwot CX0gZWxzZSB7Ci1yZWFybToKLQkJYi0+aXJxX2ZpcmVkID0gZmFsc2U7Ci0JCW1vZF90aW1lcigm Yi0+aGFuZ2NoZWNrLCB3YWl0X3RpbWVvdXQoKSk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBpbnRl bF9icmVhZGNydW1ic19mYWtlX2lycShzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKLXsKLQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQotCQlmcm9tX3RpbWVyKGVuZ2luZSwgdCwgYnJlYWRj cnVtYnMuZmFrZV9pcnEpOwotCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUt PmJyZWFkY3J1bWJzOwotCi0JLyoKLQkgKiBUaGUgdGltZXIgcGVyc2lzdHMgaW4gY2FzZSB3ZSBj YW5ub3QgZW5hYmxlIGludGVycnVwdHMsCi0JICogb3IgaWYgd2UgaGF2ZSBwcmV2aW91c2x5IHNl ZW4gc2Vxbm8vaW50ZXJydXB0IGluY29oZXJlbmN5Ci0JICogKCJtaXNzZWQgaW50ZXJydXB0IiBz eW5kcm9tZSwgYmV0dGVyIGtub3duIGFzIGEgIm1pc3NlZCBicmVhZGNydW1iIikuCi0JICogSGVy ZSB0aGUgd29ya2VyIHdpbGwgd2FrZSB1cCBldmVyeSBqaWZmaWUgaW4gb3JkZXIgdG8ga2ljayB0 aGUKLQkgKiBvbGRlc3Qgd2FpdGVyIHRvIGRvIHRoZSBjb2hlcmVudCBzZXFubyBjaGVjay4KLQkg Ki8KLQotCWlmICghaW50ZWxfZW5naW5lX3NpZ25hbF9icmVhZGNydW1icyhlbmdpbmUpICYmICFi LT5pcnFfYXJtZWQpCi0JCXJldHVybjsKLQotCS8qIElmIHRoZSB1c2VyIGhhcyBkaXNhYmxlZCB0 aGUgZmFrZS1pcnEsIHJlc3RvcmUgdGhlIGhhbmdjaGVja2luZyAqLwotCWlmICghdGVzdF9iaXQo ZW5naW5lLT5pZCwgJmVuZ2luZS0+aTkxNS0+Z3B1X2Vycm9yLm1pc3NlZF9pcnFfcmluZ3MpKSB7 Ci0JCW1vZF90aW1lcigmYi0+aGFuZ2NoZWNrLCB3YWl0X3RpbWVvdXQoKSk7Ci0JCXJldHVybjsK LQl9Ci0KLQltb2RfdGltZXIoJmItPmZha2VfaXJxLCBqaWZmaWVzICsgMSk7Ci19Ci0KIHZvaWQg aW50ZWxfZW5naW5lX3Bpbl9icmVhZGNydW1ic19pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogewogCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFk Y3J1bWJzOwpAQCAtMjU3LDQzICsxNzYsMTQgQEAgdm9pZCBpbnRlbF9lbmdpbmVfdW5waW5fYnJl YWRjcnVtYnNfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzcGluX3VubG9j a19pcnEoJmItPmlycV9sb2NrKTsKIH0KIAotc3RhdGljIGJvb2wgdXNlX2Zha2VfaXJxKGNvbnN0 IHN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKLXsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPQotCQljb250YWluZXJfb2YoYiwgc3RydWN0IGludGVsX2VuZ2luZV9j cywgYnJlYWRjcnVtYnMpOwotCi0JaWYgKCF0ZXN0X2JpdChlbmdpbmUtPmlkLCAmZW5naW5lLT5p OTE1LT5ncHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncykpCi0JCXJldHVybiBmYWxzZTsKLQotCS8q Ci0JICogT25seSBzdGFydCB3aXRoIHRoZSBoZWF2eSB3ZWlnaHQgZmFrZSBpcnEgdGltZXIgaWYg d2UgaGF2ZSBub3QKLQkgKiBzZWVuIGFueSBpbnRlcnJ1cHRzIHNpbmNlIGVuYWJsaW5nIGl0IHRo ZSBmaXJzdCB0aW1lLiBJZiB0aGUKLQkgKiBpbnRlcnJ1cHRzIGFyZSBzdGlsbCBhcnJpdmluZywg aXQgbWVhbnMgd2UgbWFkZSBhIG1pc3Rha2UgaW4gb3VyCi0JICogZW5naW5lLT5zZXFub19iYXJy aWVyKCksIGEgdGltaW5nIGVycm9yIHRoYXQgc2hvdWxkIGJlIHRyYW5zaWVudAotCSAqIGFuZCB1 bmxpa2VseSB0byByZW9jY3VyLgotCSAqLwotCXJldHVybiAhYi0+aXJxX2ZpcmVkOwotfQotCi1z dGF0aWMgdm9pZCBlbmFibGVfZmFrZV9pcnEoc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiKQot ewotCS8qIEVuc3VyZSB3ZSBuZXZlciBzbGVlcCBpbmRlZmluaXRlbHkgKi8KLQlpZiAoIWItPmly cV9lbmFibGVkIHx8IHVzZV9mYWtlX2lycShiKSkKLQkJbW9kX3RpbWVyKCZiLT5mYWtlX2lycSwg amlmZmllcyArIDEpOwotCWVsc2UKLQkJbW9kX3RpbWVyKCZiLT5oYW5nY2hlY2ssIHdhaXRfdGlt ZW91dCgpKTsKLX0KLQotc3RhdGljIGJvb2wgX19pbnRlbF9icmVhZGNydW1ic19hcm1faXJxKHN0 cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKK3N0YXRpYyB2b2lkIF9faW50ZWxfYnJlYWRjcnVt YnNfYXJtX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCiB7CiAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lID0KIAkJY29udGFpbmVyX29mKGIsIHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MsIGJyZWFkY3J1bWJzKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVu Z2luZS0+aTkxNTsKLQlib29sIGVuYWJsZWQ7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZiLT5p cnFfbG9jayk7CiAJaWYgKGItPmlycV9hcm1lZCkKLQkJcmV0dXJuIGZhbHNlOworCQlyZXR1cm47 CiAKIAkvKgogCSAqIFRoZSBicmVhZGNydW1iIGlycSB3aWxsIGJlIGRpc2FybWVkIG9uIHRoZSBp bnRlcnJ1cHQgYWZ0ZXIgdGhlCkBAIC0zMTEsMTYgKzIwMSw4IEBAIHN0YXRpYyBib29sIF9faW50 ZWxfYnJlYWRjcnVtYnNfYXJtX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCiAJICog dGhlIGRyaXZlciBpcyBpZGxlKSB3ZSBkaXNhcm0gdGhlIGJyZWFkY3J1bWJzLgogCSAqLwogCi0J LyogTm8gaW50ZXJydXB0cz8gS2ljayB0aGUgd2FpdGVyIGV2ZXJ5IGppZmZpZSEgKi8KLQllbmFi bGVkID0gZmFsc2U7Ci0JaWYgKCFiLT5pcnFfZW5hYmxlZCsrICYmCi0JICAgICF0ZXN0X2JpdChl bmdpbmUtPmlkLCAmaTkxNS0+Z3B1X2Vycm9yLnRlc3RfaXJxX3JpbmdzKSkgeworCWlmICghYi0+ aXJxX2VuYWJsZWQrKykKIAkJaXJxX2VuYWJsZShlbmdpbmUpOwotCQllbmFibGVkID0gdHJ1ZTsK LQl9Ci0KLQllbmFibGVfZmFrZV9pcnEoYik7Ci0JcmV0dXJuIGVuYWJsZWQ7CiB9CiAKIHZvaWQg aW50ZWxfZW5naW5lX2luaXRfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQpAQCAtMzMxLDE4ICsyMTMsNiBAQCB2b2lkIGludGVsX2VuZ2luZV9pbml0X2JyZWFkY3J1 bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlJTklUX0xJU1RfSEVBRCgmYi0+ c2lnbmFsZXJzKTsKIAogCWluaXRfaXJxX3dvcmsoJmItPmlycV93b3JrLCBzaWduYWxfaXJxX3dv cmspOwotCi0JdGltZXJfc2V0dXAoJmItPmZha2VfaXJxLCBpbnRlbF9icmVhZGNydW1ic19mYWtl X2lycSwgMCk7Ci0JdGltZXJfc2V0dXAoJmItPmhhbmdjaGVjaywgaW50ZWxfYnJlYWRjcnVtYnNf aGFuZ2NoZWNrLCAwKTsKLX0KLQotc3RhdGljIHZvaWQgY2FuY2VsX2Zha2VfaXJxKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIg PSAmZW5naW5lLT5icmVhZGNydW1iczsKLQotCWRlbF90aW1lcl9zeW5jKCZiLT5mYWtlX2lycSk7 IC8qIG1heSBxdWV1ZSBiLT5oYW5nY2hlY2sgKi8KLQlkZWxfdGltZXJfc3luYygmYi0+aGFuZ2No ZWNrKTsKLQljbGVhcl9iaXQoZW5naW5lLT5pZCwgJmVuZ2luZS0+aTkxNS0+Z3B1X2Vycm9yLm1p c3NlZF9pcnFfcmluZ3MpOwogfQogCiB2b2lkIGludGVsX2VuZ2luZV9yZXNldF9icmVhZGNydW1i cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCkBAIC0zNTIsMTMgKzIyMiw2IEBAIHZv aWQgaW50ZWxfZW5naW5lX3Jlc2V0X2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZiLT5pcnFfbG9jaywgZmxhZ3MpOwogCi0J LyoKLQkgKiBMZWF2ZSB0aGUgZmFrZV9pcnEgdGltZXIgZW5hYmxlZCAoaWYgaXQgaXMgcnVubmlu ZyksIGJ1dCBjbGVhciB0aGUKLQkgKiBiaXQgc28gdGhhdCBpdCB0dXJucyBpdHNlbGYgb2ZmIG9u IGl0cyBuZXh0IHdha2UgdXAgYW5kIGdvZXMgYmFjawotCSAqIHRvIHRoZSBsb25nIGhhbmdjaGVj ayBpbnRlcnZhbCBpZiBzdGlsbCByZXF1aXJlZC4KLQkgKi8KLQljbGVhcl9iaXQoZW5naW5lLT5p ZCwgJmVuZ2luZS0+aTkxNS0+Z3B1X2Vycm9yLm1pc3NlZF9pcnFfcmluZ3MpOwotCiAJaWYgKGIt PmlycV9lbmFibGVkKQogCQlpcnFfZW5hYmxlKGVuZ2luZSk7CiAJZWxzZQpAQCAtMzY5LDcgKzIz Miw2IEBAIHZvaWQgaW50ZWxfZW5naW5lX3Jlc2V0X2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIAogdm9pZCBpbnRlbF9lbmdpbmVfZmluaV9icmVhZGNydW1icyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0JY2FuY2VsX2Zha2VfaXJxKGVuZ2lu ZSk7CiB9CiAKIGJvb2wgaW50ZWxfZW5naW5lX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGk5MTVf cmVxdWVzdCAqcnEpCkBAIC00NTEsNyArMzEzLDQgQEAgdm9pZCBpbnRlbF9lbmdpbmVfcHJpbnRf YnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQl9CiAJfQogCXNw aW5fdW5sb2NrX2lycSgmYi0+aXJxX2xvY2spOwotCi0JaWYgKHRlc3RfYml0KGVuZ2luZS0+aWQs ICZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzKSkKLQkJZHJtX3ByaW50 ZihwLCAiRmFrZSBpcnEgYWN0aXZlXG4iKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFu Z2NoZWNrLmMKaW5kZXggNTY2MmQ2ZmVkNTIzLi5hMjE5Yzc5NmU1NmQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hhbmdjaGVjay5jCkBAIC0yNzUsNiArMjc1LDggQEAgc3RhdGljIHZvaWQg aTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7CiAJCXN0cnVjdCBoYW5nY2hlY2sgaGM7 CiAKKwkJaW50ZWxfZW5naW5lX3NpZ25hbF9icmVhZGNydW1icyhlbmdpbmUpOworCiAJCWhhbmdj aGVja19sb2FkX3NhbXBsZShlbmdpbmUsICZoYyk7CiAJCWhhbmdjaGVja19hY2N1bXVsYXRlX3Nh bXBsZShlbmdpbmUsICZoYyk7CiAJCWhhbmdjaGVja19zdG9yZV9zYW1wbGUoZW5naW5lLCAmaGMp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IGI3OGNiOWJkNGJj Mi4uN2VlYzk2Y2YyYTBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5o CkBAIC0zODIsMTQgKzM4Miw5IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCiAJCXN0cnVj dCBpcnFfd29yayBpcnFfd29yazsKIAotCQlzdHJ1Y3QgdGltZXJfbGlzdCBmYWtlX2lycTsgLyog dXNlZCBhZnRlciBhIG1pc3NlZCBpbnRlcnJ1cHQgKi8KLQkJc3RydWN0IHRpbWVyX2xpc3QgaGFu Z2NoZWNrOyAvKiBkZXRlY3QgbWlzc2VkIGludGVycnVwdHMgKi8KLQotCQl1bnNpZ25lZCBpbnQg aGFuZ2NoZWNrX2ludGVycnVwdHM7CiAJCXVuc2lnbmVkIGludCBpcnFfZW5hYmxlZDsKIAogCQli b29sIGlycV9hcm1lZDsKLQkJYm9vbCBpcnFfZmlyZWQ7CiAJfSBicmVhZGNydW1iczsKIAogCXN0 cnVjdCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2xp dmVfdGVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9saXZlX3Rlc3Qu YwppbmRleCA1ZGViNDg1ZmI5NDIuLjNlOTAyNzYxY2QxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9saXZlX3Rlc3QuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaWd0X2xpdmVfdGVzdC5jCkBAIC0zNSw3ICszNSw2IEBAIGludCBp Z3RfbGl2ZV90ZXN0X2JlZ2luKHN0cnVjdCBpZ3RfbGl2ZV90ZXN0ICp0LAogCQlyZXR1cm4gZXJy OwogCX0KIAotCWk5MTUtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzID0gMDsKIAl0LT5yZXNl dF9nbG9iYWwgPSBpOTE1X3Jlc2V0X2NvdW50KCZpOTE1LT5ncHVfZXJyb3IpOwogCiAJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCkBAIC03NSwxMSArNzQsNSBAQCBpbnQgaWd0X2xp dmVfdGVzdF9lbmQoc3RydWN0IGlndF9saXZlX3Rlc3QgKnQpCiAJCXJldHVybiAtRUlPOwogCX0K IAotCWlmIChpOTE1LT5ncHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncykgewotCQlwcl9lcnIoIiVz KCVzKTogTWlzc2VkIGludGVycnVwdHMgb24gZW5naW5lcyAlbHhcbiIsCi0JCSAgICAgICB0LT5m dW5jLCB0LT5uYW1lLCBpOTE1LT5ncHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncyk7Ci0JCXJldHVy biAtRUlPOwotCX0KLQogCXJldHVybiAwOwogfQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK