From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 1/8] drm/i915: Disable preemption and sleeping while using the punit sideband Date: Fri, 26 Apr 2019 09:17:18 +0100 Message-ID: <20190426081725.31217-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 86F418922A for ; Fri, 26 Apr 2019 08:17:29 +0000 (UTC) Received: from haswell.alporthouse.com (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP id 16366650-1500050 for ; Fri, 26 Apr 2019 09:17:27 +0100 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 V2hpbGUgd2UgdGFsayB0byB0aGUgcHVuaXQgb3ZlciBpdHMgc2lkZWJhbmQsIHdlIG5lZWQgdG8g cHJldmVudCB0aGUgY3B1CmZyb20gc2xlZXBpbmcgaW4gb3JkZXIgdG8gcHJldmVudCBhIHBvdGVu dGlhbCBtYWNoaW5lIGhhbmcuCgpOb3RlIHRoYXQgYnkgaXRzZWxmLCBpdCBhcHBlYXJzIHRoYXQg cG1fcW9zX3VwZGF0ZV9yZXF1ZXN0ICh2aWEKaW50ZWxfaWRsZSkgZG9lc24ndCBwcm92aWRlIGEg c3VmZmljaWVudCBiYXJyaWVyIHRvIGVuc3VyZSB0aGF0IGFsbCBjb3JlCmFyZSBpbmRlZWQgYXdh a2UgKG91dCBvZiBDc3RhdGUpIGFuZCB0aGF0IHRoZSBwYWNrYWdlIGlzIGF3YWtlLiBUbyBkbyBz bywKd2UgbmVlZCB0byBzdXBwbGVtZW50IHRoZSBwbV9xb3Mgd2l0aCBhIG1hbnVhbCBwaW5nIG9u X2VhY2hfY3B1LgoKdjI6IFJlc3RyaWN0IHRoZSBoZWF2eS13ZWlnaHQgd2FrZXVwIHRvIGp1c3Qg dGhlIElTT0ZfUE9SVF9QVU5JVCwgdGhlcmUKaXMgaW5zdWZmaWNpZW50IGV2aWRlbmNlIHRvIGlt cGxpY2F0ZSBhIHdpZGVyIHByb2JsZW0gYXRtLiBTaW1pbGFybHksCnJlc3RyaWN0IHRoZSB3L2Eg dG8gVmFsbGV5dmlldywgYXMgQ2hlcnJ5dmlldyBkb2Vzbid0IGhhdmUgYW4gYW5ncnkgY2FkcmUK b2YgdXNlcnMuCgpUaGUgd29ya2luZyB0aGVvcnksIGNvdXJ0ZXN5IG9mIFZpbGxlIGFuZCBIYW5z LCBpcyB0aGUgaXNzdWUgbGllcyB3aXRoaW4KdGhlIHBvd2VyIGRlbGl2ZXJ5IGFuZCBzbyBpcyBs aWtlbHkgdG8gYmUgdW5pdCBhbmQgYm9hcmQgc3BlY2lmaWMgYW5kCm9jY3VycyB3aGVuIGJvdGgg dGhlIHVuaXQvZncgcmVxdWlyZSBleHRyYSBwb3dlciBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZQpj cHUgcGFja2FnZSBpcyBjaGFuZ2luZyBpdHMgb3duIHBvd2VyIHN0YXRlLgoKUmVmZXJlbmNlczog aHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNTEKUmVmZXJl bmNlczogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNjU3 ClJlZmVyZW5jZXM6IGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 MTk1MjU1ClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgpDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+CkNj OiBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgpDYzogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYyAgICAgICB8ICAgNiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5k LmMgfCAyMDMgKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTM5 IGluc2VydGlvbnMoKyksIDcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmlu ZGV4IDgyNDQwOWZmZDAzZi4uYWFjYzhkZDZlY2ZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK QEAgLTg4Niw2ICs4ODYsOSBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfZWFybHkoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCW11dGV4X2luaXQoJmRldl9wcml2LT5i YWNrbGlnaHRfbG9jayk7CiAKIAltdXRleF9pbml0KCZkZXZfcHJpdi0+c2JfbG9jayk7CisJcG1f cW9zX2FkZF9yZXF1ZXN0KCZkZXZfcHJpdi0+c2JfcW9zLAorCQkJICAgUE1fUU9TX0NQVV9ETUFf TEFURU5DWSwgUE1fUU9TX0RFRkFVTFRfVkFMVUUpOworCiAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYt PmF2X211dGV4KTsKIAltdXRleF9pbml0KCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwogCW11dGV4 X2luaXQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwpAQCAtOTQ1LDYgKzk0OCw5IEBAIHN0YXRpYyB2 b2lkIGk5MTVfZHJpdmVyX2NsZWFudXBfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCWk5MTVfZ2VtX2NsZWFudXBfZWFybHkoZGV2X3ByaXYpOwogCWk5MTVfd29ya3F1 ZXVlc19jbGVhbnVwKGRldl9wcml2KTsKIAlpOTE1X2VuZ2luZXNfY2xlYW51cChkZXZfcHJpdik7 CisKKwlwbV9xb3NfcmVtb3ZlX3JlcXVlc3QoJmRldl9wcml2LT5zYl9xb3MpOworCW11dGV4X2Rl c3Ryb3koJmRldl9wcml2LT5zYl9sb2NrKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAppbmRleCA1Yzc3YmY1YjczNWIuLjY2MmRiZDJlMzI0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCkBAIC0xNTYxLDYgKzE1NjEsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAkv KiBTaWRlYmFuZCBtYWlsYm94IHByb3RlY3Rpb24gKi8KIAlzdHJ1Y3QgbXV0ZXggc2JfbG9jazsK KwlzdHJ1Y3QgcG1fcW9zX3JlcXVlc3Qgc2JfcW9zOwogCiAJLyoqIENhY2hlZCB2YWx1ZSBvZiBJ TVIgdG8gYXZvaWQgcmVhZHMgaW4gdXBkYXRpbmcgdGhlIGJpdGZpZWxkICovCiAJdW5pb24gewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2lkZWJhbmQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5kLmMKaW5kZXggNTdkZTQxYjFmOTg5Li5mYzg5 MTM0NjE2MjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5k LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2lkZWJhbmQuYwpAQCAtMjIsNiAr MjIsOCBAQAogICoKICAqLwogCisjaW5jbHVkZSA8YXNtL2lvc2ZfbWJpLmg+CisKICNpbmNsdWRl ICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2Rydi5oIgogCkBAIC0zOSwxOSArNDEsNTAg QEAKIC8qIFByaXZhdGUgcmVnaXN0ZXIgd3JpdGUsIGRvdWJsZS13b3JkIGFkZHJlc3NpbmcsIG5v bi1wb3N0ZWQgKi8KICNkZWZpbmUgU0JfQ1JXUkRBX05QCTB4MDcKIAotc3RhdGljIGludCB2bHZf c2lkZWJhbmRfcncoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgZGV2Zm4s Ci0JCQkgICB1MzIgcG9ydCwgdTMyIG9wY29kZSwgdTMyIGFkZHIsIHUzMiAqdmFsKQorc3RhdGlj IHZvaWQgcGluZyh2b2lkICppbmZvKQogewotCXUzMiBjbWQsIGJlID0gMHhmLCBiYXIgPSAwOwot CWJvb2wgaXNfcmVhZCA9IChvcGNvZGUgPT0gU0JfTVJEX05QIHx8IG9wY29kZSA9PSBTQl9DUlJE REFfTlApOworfQogCi0JY21kID0gKGRldmZuIDw8IElPU0ZfREVWRk5fU0hJRlQpIHwgKG9wY29k ZSA8PCBJT1NGX09QQ09ERV9TSElGVCkgfAotCQkocG9ydCA8PCBJT1NGX1BPUlRfU0hJRlQpIHwg KGJlIDw8IElPU0ZfQllURV9FTkFCTEVTX1NISUZUKSB8Ci0JCShiYXIgPDwgSU9TRl9CQVJfU0hJ RlQpOworc3RhdGljIHZvaWQgX192bHZfcHVuaXRfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQoreworCWlvc2ZfbWJpX3B1bml0X2FjcXVpcmUoKTsKIAotCVdBUk5fT04oIW11dGV4 X2lzX2xvY2tlZCgmZGV2X3ByaXYtPnNiX2xvY2spKTsKKwkvKgorCSAqIFByZXZlbnQgdGhlIGNw dSBmcm9tIHNsZWVwaW5nIHdoaWxlIHdlIHVzZSB0aGlzIHNpZGViYW5kLCBvdGhlcndpc2UKKwkg KiB0aGUgcHVuaXQgbWF5IGNhdXNlIGEgbWFjaGluZSBoYW5nLiBUaGUgaXNzdWUgYXBwZWFycyB0 byBiZSBpc29sYXRlZAorCSAqIHdpdGggY2hhbmdpbmcgdGhlIHBvd2VyIHN0YXRlIG9mIHRoZSBD UFUgcGFja2FnZSB3aGlsZSBjaGFuZ2luZworCSAqIHRoZSBwb3dlciBzdGF0ZSB2aWEgdGhlIHB1 bml0LCBhbmQgd2UgaGF2ZSBvbmx5IG9ic2VydmVkIGl0CisJICogcmVsaWFibHkgb24gNC1jb3Jl IEJheXRhaWwgc3lzdGVtcyBzdWdnZXN0aW5nIHRoZSBpc3N1ZSBpcyBpbiB0aGUKKwkgKiBwb3dl ciBkZWxpdmVyeSBtZWNoYW5pc20gYW5kIGxpa2VseSB0byBiZSBiZSBib2FyZC9mdW5jdGlvbgor CSAqIHNwZWNpZmljLiBIZW5jZSB3ZSBwcmVzdW1lIHRoZSB3b3JrYXJvdW5kIG5lZWRzIG9ubHkg YmUgYXBwbGllZAorCSAqIHRvIHRoZSBWYWxsZXl2aWV3IFAtdW5pdCBhbmQgbm90IGFsbCBzaWRl YmFuZCBjb21tdW5pY2F0aW9ucy4KKwkgKi8KKwlpZiAoSVNfVkFMTEVZVklFVyhpOTE1KSkgewor CQlwbV9xb3NfdXBkYXRlX3JlcXVlc3QoJmk5MTUtPnNiX3FvcywgMCk7CisJCW9uX2VhY2hfY3B1 KHBpbmcsIE5VTEwsIDEpOworCX0KK30KIAotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3Rlcigm ZGV2X3ByaXYtPnVuY29yZSwKK3N0YXRpYyB2b2lkIF9fdmx2X3B1bml0X3B1dChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlpZiAoSVNfVkFMTEVZVklFVyhpOTE1KSkKKwkJcG1f cW9zX3VwZGF0ZV9yZXF1ZXN0KCZpOTE1LT5zYl9xb3MsIFBNX1FPU19ERUZBVUxUX1ZBTFVFKTsK KworCWlvc2ZfbWJpX3B1bml0X3JlbGVhc2UoKTsKK30KKworc3RhdGljIGludCB2bHZfc2lkZWJh bmRfcncoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgICB1MzIgZGV2Zm4sIHUz MiBwb3J0LCB1MzIgb3Bjb2RlLAorCQkJICAgdTMyIGFkZHIsIHUzMiAqdmFsKQoreworCXN0cnVj dCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZpOTE1LT51bmNvcmU7CisJY29uc3QgYm9vbCBpc19y ZWFkID0gKG9wY29kZSA9PSBTQl9NUkRfTlAgfHwgb3Bjb2RlID09IFNCX0NSUkREQV9OUCk7CisJ aW50IGVycjsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPnNiX2xvY2spOworCisJLyog Rmx1c2ggdGhlIHByZXZpb3VzIGNvbW1zLCBqdXN0IGluIGNhc2UgaXQgZmFpbGVkIGxhc3QgdGlt ZS4gKi8KKwlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIodW5jb3JlLAogCQkJCSAgICBWTFZf SU9TRl9ET09SQkVMTF9SRVEsIElPU0ZfU0JfQlVTWSwgMCwKIAkJCQkgICAgNSkpIHsKIAkJRFJN X0RFQlVHX0RSSVZFUigiSU9TRiBzaWRlYmFuZCBpZGxlIHdhaXQgKCVzKSB0aW1lZCBvdXRcbiIs CkBAIC01OSwxMzEgKzkyLDE1NiBAQCBzdGF0aWMgaW50IHZsdl9zaWRlYmFuZF9ydyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBkZXZmbiwKIAkJcmV0dXJuIC1FQUdBSU47 CiAJfQogCi0JSTkxNV9XUklURShWTFZfSU9TRl9BRERSLCBhZGRyKTsKLQlJOTE1X1dSSVRFKFZM Vl9JT1NGX0RBVEEsIGlzX3JlYWQgPyAwIDogKnZhbCk7Ci0JSTkxNV9XUklURShWTFZfSU9TRl9E T09SQkVMTF9SRVEsIGNtZCk7Ci0KLQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9w cml2LT51bmNvcmUsCi0JCQkJICAgIFZMVl9JT1NGX0RPT1JCRUxMX1JFUSwgSU9TRl9TQl9CVVNZ LCAwLAotCQkJCSAgICA1KSkgeworCXByZWVtcHRfZGlzYWJsZSgpOworCisJaW50ZWxfdW5jb3Jl X3dyaXRlX2Z3KHVuY29yZSwgVkxWX0lPU0ZfQUREUiwgYWRkcik7CisJaW50ZWxfdW5jb3JlX3dy aXRlX2Z3KHVuY29yZSwgVkxWX0lPU0ZfREFUQSwgaXNfcmVhZCA/IDAgOiAqdmFsKTsKKwlpbnRl bF91bmNvcmVfd3JpdGVfZncodW5jb3JlLCBWTFZfSU9TRl9ET09SQkVMTF9SRVEsCisJCQkgICAg ICAoZGV2Zm4gPDwgSU9TRl9ERVZGTl9TSElGVCkgfAorCQkJICAgICAgKG9wY29kZSA8PCBJT1NG X09QQ09ERV9TSElGVCkgfAorCQkJICAgICAgKHBvcnQgPDwgSU9TRl9QT1JUX1NISUZUKSB8CisJ CQkgICAgICAoMHhmIDw8IElPU0ZfQllURV9FTkFCTEVTX1NISUZUKSB8CisJCQkgICAgICAoMCA8 PCBJT1NGX0JBUl9TSElGVCkgfAorCQkJICAgICAgSU9TRl9TQl9CVVNZKTsKKworCWlmIChfX2lu dGVsX3dhaXRfZm9yX3JlZ2lzdGVyX2Z3KHVuY29yZSwKKwkJCQkJIFZMVl9JT1NGX0RPT1JCRUxM X1JFUSwgSU9TRl9TQl9CVVNZLCAwLAorCQkJCQkgMTAwMDAsIDAsIE5VTEwpID09IDApIHsKKwkJ aWYgKGlzX3JlYWQpCisJCQkqdmFsID0gaW50ZWxfdW5jb3JlX3JlYWRfZncodW5jb3JlLCBWTFZf SU9TRl9EQVRBKTsKKwkJZXJyID0gMDsKKwl9IGVsc2UgewogCQlEUk1fREVCVUdfRFJJVkVSKCJJ T1NGIHNpZGViYW5kIGZpbmlzaCB3YWl0ICglcykgdGltZWQgb3V0XG4iLAogCQkJCSBpc19yZWFk ID8gInJlYWQiIDogIndyaXRlIik7Ci0JCXJldHVybiAtRVRJTUVET1VUOworCQllcnIgPSAtRVRJ TUVET1VUOwogCX0KIAotCWlmIChpc19yZWFkKQotCQkqdmFsID0gSTkxNV9SRUFEKFZMVl9JT1NG X0RBVEEpOworCXByZWVtcHRfZW5hYmxlKCk7CiAKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZXJyOwog fQogCi11MzIgdmx2X3B1bml0X3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCB1MzIgYWRkcikKK3UzMiB2bHZfcHVuaXRfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwgdTMyIGFkZHIpCiB7CiAJdTMyIHZhbCA9IDA7CiAKLQlXQVJOX09OKCFtdXRleF9pc19s b2NrZWQoJmRldl9wcml2LT5wY3VfbG9jaykpOworCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgm aTkxNS0+cGN1X2xvY2spKTsKKworCW11dGV4X2xvY2soJmk5MTUtPnNiX2xvY2spOworCV9fdmx2 X3B1bml0X2dldChpOTE1KTsKIAotCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKLQl2 bHZfc2lkZWJhbmRfcncoZGV2X3ByaXYsIFBDSV9ERVZGTigwLCAwKSwgSU9TRl9QT1JUX1BVTklU LAorCXZsdl9zaWRlYmFuZF9ydyhpOTE1LCBQQ0lfREVWRk4oMCwgMCksIElPU0ZfUE9SVF9QVU5J VCwKIAkJCVNCX0NSUkREQV9OUCwgYWRkciwgJnZhbCk7Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+c2JfbG9jayk7CisKKwlfX3Zsdl9wdW5pdF9wdXQoaTkxNSk7CisJbXV0ZXhfdW5sb2NrKCZp OTE1LT5zYl9sb2NrKTsKIAogCXJldHVybiB2YWw7CiB9CiAKLWludCB2bHZfcHVuaXRfd3JpdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkciwgdTMyIHZhbCkKK2lu dCB2bHZfcHVuaXRfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHUzMiBhZGRy LCB1MzIgdmFsKQogewogCWludCBlcnI7CiAKLQlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRl dl9wcml2LT5wY3VfbG9jaykpOworCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmaTkxNS0+cGN1 X2xvY2spKTsKIAotCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKLQllcnIgPSB2bHZf c2lkZWJhbmRfcncoZGV2X3ByaXYsIFBDSV9ERVZGTigwLCAwKSwgSU9TRl9QT1JUX1BVTklULAor CW11dGV4X2xvY2soJmk5MTUtPnNiX2xvY2spOworCV9fdmx2X3B1bml0X2dldChpOTE1KTsKKwor CWVyciA9IHZsdl9zaWRlYmFuZF9ydyhpOTE1LCBQQ0lfREVWRk4oMCwgMCksIElPU0ZfUE9SVF9Q VU5JVCwKIAkJCSAgICAgIFNCX0NSV1JEQV9OUCwgYWRkciwgJnZhbCk7Ci0JbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+c2JfbG9jayk7CisKKwlfX3Zsdl9wdW5pdF9wdXQoaTkxNSk7CisJbXV0ZXhf dW5sb2NrKCZpOTE1LT5zYl9sb2NrKTsKIAogCXJldHVybiBlcnI7CiB9CiAKLXUzMiB2bHZfYnVu aXRfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcpCit1MzIg dmx2X2J1bml0X3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHUzMiByZWcpCiB7 CiAJdTMyIHZhbCA9IDA7CiAKLQl2bHZfc2lkZWJhbmRfcncoZGV2X3ByaXYsIFBDSV9ERVZGTigw LCAwKSwgSU9TRl9QT1JUX0JVTklULAorCXZsdl9zaWRlYmFuZF9ydyhpOTE1LCBQQ0lfREVWRk4o MCwgMCksIElPU0ZfUE9SVF9CVU5JVCwKIAkJCVNCX0NSUkREQV9OUCwgcmVnLCAmdmFsKTsKIAog CXJldHVybiB2YWw7CiB9CiAKLXZvaWQgdmx2X2J1bml0X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZywgdTMyIHZhbCkKK3ZvaWQgdmx2X2J1bml0X3dyaXRl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1MzIgcmVnLCB1MzIgdmFsKQogewotCXZs dl9zaWRlYmFuZF9ydyhkZXZfcHJpdiwgUENJX0RFVkZOKDAsIDApLCBJT1NGX1BPUlRfQlVOSVQs CisJdmx2X3NpZGViYW5kX3J3KGk5MTUsIFBDSV9ERVZGTigwLCAwKSwgSU9TRl9QT1JUX0JVTklU LAogCQkJU0JfQ1JXUkRBX05QLCByZWcsICZ2YWwpOwogfQogCi11MzIgdmx2X25jX3JlYWQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCBhZGRyKQordTMyIHZsdl9uY19yZWFk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1OCBhZGRyKQogewogCXUzMiB2YWwgPSAw OwogCi0JV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+cGN1X2xvY2spKTsKKwlX QVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmk5MTUtPnBjdV9sb2NrKSk7CiAKLQltdXRleF9sb2Nr KCZkZXZfcHJpdi0+c2JfbG9jayk7Ci0Jdmx2X3NpZGViYW5kX3J3KGRldl9wcml2LCBQQ0lfREVW Rk4oMCwgMCksIElPU0ZfUE9SVF9OQywKKwltdXRleF9sb2NrKCZpOTE1LT5zYl9sb2NrKTsKKwl2 bHZfc2lkZWJhbmRfcncoaTkxNSwgUENJX0RFVkZOKDAsIDApLCBJT1NGX1BPUlRfTkMsCiAJCQlT Ql9DUlJEREFfTlAsIGFkZHIsICZ2YWwpOwotCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xv Y2spOworCW11dGV4X3VubG9jaygmaTkxNS0+c2JfbG9jayk7CiAKIAlyZXR1cm4gdmFsOwogfQog Ci11MzIgdmx2X2lvc2Zfc2JfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IHU4IHBvcnQsIHUzMiByZWcpCit1MzIgdmx2X2lvc2Zfc2JfcmVhZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwgdTggcG9ydCwgdTMyIHJlZykKIHsKIAl1MzIgdmFsID0gMDsKLQl2bHZf c2lkZWJhbmRfcncoZGV2X3ByaXYsIFBDSV9ERVZGTigwLCAwKSwgcG9ydCwKKworCXZsdl9zaWRl YmFuZF9ydyhpOTE1LCBQQ0lfREVWRk4oMCwgMCksIHBvcnQsCiAJCQlTQl9DUlJEREFfTlAsIHJl ZywgJnZhbCk7CisKIAlyZXR1cm4gdmFsOwogfQogCi12b2lkIHZsdl9pb3NmX3NiX3dyaXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKK3ZvaWQgdmx2X2lvc2Zfc2Jfd3JpdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCSAgICAgICB1OCBwb3J0LCB1MzIgcmVn LCB1MzIgdmFsKQogewotCXZsdl9zaWRlYmFuZF9ydyhkZXZfcHJpdiwgUENJX0RFVkZOKDAsIDAp LCBwb3J0LAorCXZsdl9zaWRlYmFuZF9ydyhpOTE1LCBQQ0lfREVWRk4oMCwgMCksIHBvcnQsCiAJ CQlTQl9DUldSREFfTlAsIHJlZywgJnZhbCk7CiB9CiAKLXUzMiB2bHZfY2NrX3JlYWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVnKQordTMyIHZsdl9jY2tfcmVhZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTMyIHJlZykKIHsKIAl1MzIgdmFsID0gMDsK LQl2bHZfc2lkZWJhbmRfcncoZGV2X3ByaXYsIFBDSV9ERVZGTigwLCAwKSwgSU9TRl9QT1JUX0ND SywKKworCXZsdl9zaWRlYmFuZF9ydyhpOTE1LCBQQ0lfREVWRk4oMCwgMCksIElPU0ZfUE9SVF9D Q0ssCiAJCQlTQl9DUlJEREFfTlAsIHJlZywgJnZhbCk7CisKIAlyZXR1cm4gdmFsOwogfQogCi12 b2lkIHZsdl9jY2tfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIg cmVnLCB1MzIgdmFsKQordm9pZCB2bHZfY2NrX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LCB1MzIgcmVnLCB1MzIgdmFsKQogewotCXZsdl9zaWRlYmFuZF9ydyhkZXZfcHJpdiwg UENJX0RFVkZOKDAsIDApLCBJT1NGX1BPUlRfQ0NLLAorCXZsdl9zaWRlYmFuZF9ydyhpOTE1LCBQ Q0lfREVWRk4oMCwgMCksIElPU0ZfUE9SVF9DQ0ssCiAJCQlTQl9DUldSREFfTlAsIHJlZywgJnZh bCk7CiB9CiAKLXUzMiB2bHZfY2N1X3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1MzIgcmVnKQordTMyIHZsdl9jY3VfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwgdTMyIHJlZykKIHsKIAl1MzIgdmFsID0gMDsKLQl2bHZfc2lkZWJhbmRfcncoZGV2X3By aXYsIFBDSV9ERVZGTigwLCAwKSwgSU9TRl9QT1JUX0NDVSwKKworCXZsdl9zaWRlYmFuZF9ydyhp OTE1LCBQQ0lfREVWRk4oMCwgMCksIElPU0ZfUE9SVF9DQ1UsCiAJCQlTQl9DUlJEREFfTlAsIHJl ZywgJnZhbCk7CisKIAlyZXR1cm4gdmFsOwogfQogCi12b2lkIHZsdl9jY3Vfd3JpdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVnLCB1MzIgdmFsKQordm9pZCB2bHZf Y2N1X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1MzIgcmVnLCB1MzIgdmFs KQogewotCXZsdl9zaWRlYmFuZF9ydyhkZXZfcHJpdiwgUENJX0RFVkZOKDAsIDApLCBJT1NGX1BP UlRfQ0NVLAorCXZsdl9zaWRlYmFuZF9ydyhpOTE1LCBQQ0lfREVWRk4oMCwgMCksIElPU0ZfUE9S VF9DQ1UsCiAJCQlTQl9DUldSREFfTlAsIHJlZywgJnZhbCk7CiB9CiAKLXUzMiB2bHZfZHBpb19y ZWFkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUsIGlu dCByZWcpCit1MzIgdmx2X2RwaW9fcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwg ZW51bSBwaXBlIHBpcGUsIGludCByZWcpCiB7CisJaW50IHBvcnQgPSBpOTE1LT5kcGlvX3BoeV9p b3NmX3BvcnRbRFBJT19QSFkocGlwZSldOwogCXUzMiB2YWwgPSAwOwogCi0Jdmx2X3NpZGViYW5k X3J3KGRldl9wcml2LCBEUElPX0RFVkZOLCBEUElPX1BIWV9JT1NGX1BPUlQoRFBJT19QSFkocGlw ZSkpLAotCQkJU0JfTVJEX05QLCByZWcsICZ2YWwpOworCXZsdl9zaWRlYmFuZF9ydyhpOTE1LCBE UElPX0RFVkZOLCBwb3J0LCBTQl9NUkRfTlAsIHJlZywgJnZhbCk7CiAKIAkvKgogCSAqIEZJWE1F OiBUaGVyZSBtaWdodCBiZSBzb21lIHJlZ2lzdGVycyB3aGVyZSBhbGwgMSdzIGlzIGEgdmFsaWQg dmFsdWUsCkBAIC0xOTUsMTAgKzI1MywyNyBAQCB1MzIgdmx2X2RwaW9fcmVhZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcmVnKQogCXJldHVy biB2YWw7CiB9CiAKLXZvaWQgdmx2X2RwaW9fd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHJlZywgdTMyIHZhbCkKK3ZvaWQgdmx2X2Rw aW9fd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCSAgICBlbnVtIHBpcGUg cGlwZSwgaW50IHJlZywgdTMyIHZhbCkKK3sKKwlpbnQgcG9ydCA9IGk5MTUtPmRwaW9fcGh5X2lv c2ZfcG9ydFtEUElPX1BIWShwaXBlKV07CisKKwl2bHZfc2lkZWJhbmRfcncoaTkxNSwgRFBJT19E RVZGTiwgcG9ydCwgU0JfTVdSX05QLCByZWcsICZ2YWwpOworfQorCit1MzIgdmx2X2ZsaXNkc2lf cmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTMyIHJlZykKIHsKLQl2bHZfc2lk ZWJhbmRfcncoZGV2X3ByaXYsIERQSU9fREVWRk4sIERQSU9fUEhZX0lPU0ZfUE9SVChEUElPX1BI WShwaXBlKSksCi0JCQlTQl9NV1JfTlAsIHJlZywgJnZhbCk7CisJdTMyIHZhbCA9IDA7CisKKwl2 bHZfc2lkZWJhbmRfcncoaTkxNSwgRFBJT19ERVZGTiwgSU9TRl9QT1JUX0ZMSVNEU0ksIFNCX0NS UkREQV9OUCwKKwkJCXJlZywgJnZhbCk7CisJcmV0dXJuIHZhbDsKK30KKwordm9pZCB2bHZfZmxp c2RzaV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTMyIHJlZywgdTMyIHZh bCkKK3sKKwl2bHZfc2lkZWJhbmRfcncoaTkxNSwgRFBJT19ERVZGTiwgSU9TRl9QT1JUX0ZMSVNE U0ksIFNCX0NSV1JEQV9OUCwKKwkJCXJlZywgJnZhbCk7CiB9CiAKIC8qIFNCSSBhY2Nlc3MgKi8K QEAgLTI3OSwxNyArMzU0LDMgQEAgdm9pZCBpbnRlbF9zYmlfd3JpdGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCB1MTYgcmVnLCB1MzIgdmFsdWUsCiAJCXJldHVybjsKIAl9CiB9 Ci0KLXUzMiB2bHZfZmxpc2RzaV9yZWFkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgdTMyIHJlZykKLXsKLQl1MzIgdmFsID0gMDsKLQl2bHZfc2lkZWJhbmRfcncoZGV2X3ByaXYs IERQSU9fREVWRk4sIElPU0ZfUE9SVF9GTElTRFNJLCBTQl9DUlJEREFfTlAsCi0JCQlyZWcsICZ2 YWwpOwotCXJldHVybiB2YWw7Ci19Ci0KLXZvaWQgdmx2X2ZsaXNkc2lfd3JpdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVnLCB1MzIgdmFsKQotewotCXZsdl9zaWRl YmFuZF9ydyhkZXZfcHJpdiwgRFBJT19ERVZGTiwgSU9TRl9QT1JUX0ZMSVNEU0ksIFNCX0NSV1JE QV9OUCwKLQkJCXJlZywgJnZhbCk7Ci19Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==