From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915/selftests: Teach igt_gpu_fill_dw() to take intel_context Date: Fri, 23 Aug 2019 22:44:06 +0100 Message-ID: <20190823214406.26766-1-chris@chris-wilson.co.uk> References: <20190823110147.31082-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 2D8266ED4A for ; Fri, 23 Aug 2019 21:44:25 +0000 (UTC) In-Reply-To: <20190823110147.31082-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 Cc: Matthew Auld List-Id: intel-gfx@lists.freedesktop.org QXZvaWQgaGF2aW5nIHRvIHBhc3MgYXJvdW5kIChjdHgsIGVuZ2luZSkgZXZlcnl3aGVyZSBieSBw YXNzaW5nIHRoZQphY3R1YWwgaW50ZWxfY29udGV4dCB3ZSBpbnRlbmQgdG8gdXNlLiBUb2RheSB3 ZSBwcmVhY2ggdGhpcyBsZXNzb24gdG8KaWd0X2dwdV9maWxsX2R3IGFuZCBpdHMgY2FsbGVycycg Y2FsbGVycy4KClRoZSBpbW1lZGlhdGUgYmVuZWZpdCBmb3IgdGhlIEdFTSBzZWxmdGVzdHMgaXMg dGhhdCB3ZSBhaW0gdG8gdXNlIHRoZQpHRU0gY29udGV4dCBhcyB0aGUgY29udHJvbCwgdGhlIHNv dXJjZSBvZiB0aGUgZW5naW5lcyBvbiB3aGljaCB0byB0ZXN0CnRoZSBHRU0gY29udGV4dC4KClNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzog TWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogTWF0dGhl dyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgotLS0KIC4uLi9ncHUvZHJtL2k5MTUvZ2Vt L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgICB8IDEwMyArKysrKysrKysrLS0tLS0tLS0KIC4uLi9k cm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyB8ICA3MCArKysrKysrLS0t LS0KIC4uLi9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuYyAgICB8ICAyNiAr Ky0tLQogLi4uL2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oICAgIHwgIDEz ICstLQogNCBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgOTcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3Bh Z2VzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYwpp bmRleCA4ZGU4M2M2ZDgxZjUuLjhlZmRkZWY2MDlkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMKQEAgLTg3OSw5ICs4NzksOCBAQCBzdGF0 aWMgaW50IGlndF9tb2NrX3BwZ3R0XzY0Syh2b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAot c3RhdGljIGludCBncHVfd3JpdGUoc3RydWN0IGk5MTVfdm1hICp2bWEsCi0JCSAgICAgc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKLQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsCitzdGF0aWMgaW50IGdwdV93cml0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJ CSAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCSAgICAgdTMyIGR3LAogCQkgICAgIHUzMiB2 YWwpCiB7CkBAIC04OTMsNyArODkyLDcgQEAgc3RhdGljIGludCBncHVfd3JpdGUoc3RydWN0IGk5 MTVfdm1hICp2bWEsCiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCXJldHVybiBpZ3RfZ3B1 X2ZpbGxfZHcodm1hLCBjdHgsIGVuZ2luZSwgZHcgKiBzaXplb2YodTMyKSwKKwlyZXR1cm4gaWd0 X2dwdV9maWxsX2R3KGNlLCB2bWEsIGR3ICogc2l6ZW9mKHUzMiksCiAJCQkgICAgICAgdm1hLT5z aXplID4+IFBBR0VfU0hJRlQsIHZhbCk7CiB9CiAKQEAgLTkyOSwxOCArOTI4LDE2IEBAIHN0YXRp YyBpbnQgY3B1X2NoZWNrKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHUzMiBkd29y ZCwgdTMyIHZhbCkKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgaW50IF9faWd0X3dyaXRlX2h1 Z2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKLQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCitzdGF0aWMgaW50IF9faWd0X3dyaXRlX2h1Z2Uoc3RydWN0IGludGVs X2NvbnRleHQgKmNlLAogCQkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJ CQkgICAgdTY0IHNpemUsIHU2NCBvZmZzZXQsCiAJCQkgICAgdTMyIGR3b3JkLCB1MzIgdmFsKQog ewotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gY3R4LT52bSA/OiAmZW5naW5lLT5n dC0+Z2d0dC0+dm07CiAJdW5zaWduZWQgaW50IGZsYWdzID0gUElOX1VTRVIgfCBQSU5fT0ZGU0VU X0ZJWEVEOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCWludCBlcnI7CiAKLQl2bWEgPSBpOTE1 X3ZtYV9pbnN0YW5jZShvYmosIHZtLCBOVUxMKTsKKwl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShv YmosIGNlLT52bSwgTlVMTCk7CiAJaWYgKElTX0VSUih2bWEpKQogCQlyZXR1cm4gUFRSX0VSUih2 bWEpOwogCkBAIC05NTQsNyArOTUxLDcgQEAgc3RhdGljIGludCBfX2lndF93cml0ZV9odWdlKHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCSAqIFRoZSBnZ3R0IG1heSBoYXZlIHNvbWUg cGFnZXMgcmVzZXJ2ZWQgc28KIAkJICogcmVmcmFpbiBmcm9tIGVycm9yaW5nIG91dC4KIAkJICov Ci0JCWlmIChlcnIgPT0gLUVOT1NQQyAmJiBpOTE1X2lzX2dndHQodm0pKQorCQlpZiAoZXJyID09 IC1FTk9TUEMgJiYgaTkxNV9pc19nZ3R0KGNlLT52bSkpCiAJCQllcnIgPSAwOwogCiAJCWdvdG8g b3V0X3ZtYV9jbG9zZTsKQEAgLTk2NCw3ICs5NjEsNyBAQCBzdGF0aWMgaW50IF9faWd0X3dyaXRl X2h1Z2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAlpZiAoZXJyKQogCQlnb3RvIG91 dF92bWFfdW5waW47CiAKLQllcnIgPSBncHVfd3JpdGUodm1hLCBjdHgsIGVuZ2luZSwgZHdvcmQs IHZhbCk7CisJZXJyID0gZ3B1X3dyaXRlKGNlLCB2bWEsIGR3b3JkLCB2YWwpOwogCWlmIChlcnIp IHsKIAkJcHJfZXJyKCJncHUtd3JpdGUgZmFpbGVkIGF0IG9mZnNldD0lbGx4XG4iLCBvZmZzZXQp OwogCQlnb3RvIG91dF92bWFfdW5waW47CkBAIC05ODcsMTUgKzk4NCwxNCBAQCBzdGF0aWMgaW50 IF9faWd0X3dyaXRlX2h1Z2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIHN0YXRpYyBp bnQgaWd0X3dyaXRlX2h1Z2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJCSAgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0gPSBjdHgtPnZtID86ICZpOTE1LT5nZ3R0LnZtOwotCXN0YXRpYyBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmVzW0k5MTVfTlVNX0VOR0lORVNdOwotCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKKwlzdHJ1Y3QgaTkxNV9nZW1fZW5naW5lcyAqZW5naW5lczsKKwlz dHJ1Y3QgaTkxNV9nZW1fZW5naW5lc19pdGVyIGl0OworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZTsKIAlJOTE1X1JORF9TVEFURShwcm5nKTsKIAlJR1RfVElNRU9VVChlbmRfdGltZSk7CiAJdW5z aWduZWQgaW50IG1heF9wYWdlX3NpemU7Ci0JdW5zaWduZWQgaW50IGlkOwotCXU2NCBtYXg7CisJ dW5zaWduZWQgaW50IGNvdW50OworCXU2NCBtYXggPSAwOwogCXU2NCBudW07CiAJdTY0IHNpemU7 CiAJaW50ICpvcmRlcjsKQEAgLTEwMDgsMTkgKzEwMDQsMTYgQEAgc3RhdGljIGludCBpZ3Rfd3Jp dGVfaHVnZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCWlmIChvYmotPm1tLnBhZ2Vf c2l6ZXMuc2cgJiBJOTE1X0dUVF9QQUdFX1NJWkVfNjRLKQogCQlzaXplID0gcm91bmRfdXAoc2l6 ZSwgSTkxNV9HVFRfUEFHRV9TSVpFXzJNKTsKIAotCW1heF9wYWdlX3NpemUgPSByb3VuZGRvd25f cG93X29mX3R3byhvYmotPm1tLnBhZ2Vfc2l6ZXMuc2cpOwotCW1heCA9IGRpdl91NjQoKHZtLT50 b3RhbCAtIHNpemUpLCBtYXhfcGFnZV9zaXplKTsKLQogCW4gPSAwOwotCWZvcl9lYWNoX2VuZ2lu ZShlbmdpbmUsIGk5MTUsIGlkKSB7Ci0JCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29y ZChlbmdpbmUpKSB7Ci0JCQlwcl9pbmZvKCJzdG9yZS1kd29yZC1pbW0gbm90IHN1cHBvcnRlZCBv biBlbmdpbmU9JXVcbiIsCi0JCQkJaWQpOworCWZvcl9lYWNoX2dlbV9lbmdpbmUoY2UsIGk5MTVf Z2VtX2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCksIGl0KSB7CisJCWNvdW50Kys7CisJCWlmICgh aW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChjZS0+ZW5naW5lKSkKIAkJCWNvbnRpbnVlOwot CQl9Ci0JCWVuZ2luZXNbbisrXSA9IGVuZ2luZTsKLQl9CiAKKwkJbWF4ID0gbWF4KG1heCwgY2Ut PnZtLT50b3RhbCk7CisJCW4rKzsKKwl9CisJaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5l cyhjdHgpOwogCWlmICghbikKIAkJcmV0dXJuIDA7CiAKQEAgLTEwMjksMjMgKzEwMjIsMzAgQEAg c3RhdGljIGludCBpZ3Rfd3JpdGVfaHVnZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAog CSAqIHJhbmRvbWl6ZWQgb3JkZXIsIGxldHMgYWxzbyBtYWtlIGZlZWRpbmcgdG8gdGhlIHNhbWUg ZW5naW5lIGEgZmV3CiAJICogdGltZXMgaW4gc3VjY2Vzc2lvbiBhIHBvc3NpYmlsaXR5IGJ5IGVu bGFyZ2luZyB0aGUgcGVybXV0YXRpb24gYXJyYXkuCiAJICovCi0Jb3JkZXIgPSBpOTE1X3JhbmRv bV9vcmRlcihuICogSTkxNV9OVU1fRU5HSU5FUywgJnBybmcpOworCW9yZGVyID0gaTkxNV9yYW5k b21fb3JkZXIoY291bnQgKiBjb3VudCwgJnBybmcpOwogCWlmICghb3JkZXIpCiAJCXJldHVybiAt RU5PTUVNOwogCisJbWF4X3BhZ2Vfc2l6ZSA9IHJvdW5kZG93bl9wb3dfb2ZfdHdvKG9iai0+bW0u cGFnZV9zaXplcy5zZyk7CisJbWF4ID0gZGl2X3U2NChtYXgtIHNpemUsIG1heF9wYWdlX3NpemUp OworCiAJLyoKIAkgKiBUcnkgdmFyaW91cyBvZmZzZXRzIGluIGFuIGFzY2VuZGluZy9kZXNjZW5k aW5nIGZhc2hpb24gdW50aWwgd2UKIAkgKiB0aW1lb3V0IC0tIHdlIHdhbnQgdG8gYXZvaWQgaXNz dWVzIGhpZGRlbiBieSBlZmZlY3RpdmVseSBhbHdheXMgdXNpbmcKIAkgKiBvZmZzZXQgPSAwLgog CSAqLwogCWkgPSAwOworCWVuZ2luZXMgPSBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhj dHgpOwogCWZvcl9lYWNoX3ByaW1lX251bWJlcl9mcm9tKG51bSwgMCwgbWF4KSB7CiAJCXU2NCBv ZmZzZXRfbG93ID0gbnVtICogbWF4X3BhZ2Vfc2l6ZTsKIAkJdTY0IG9mZnNldF9oaWdoID0gKG1h eCAtIG51bSkgKiBtYXhfcGFnZV9zaXplOwogCQl1MzIgZHdvcmQgPSBvZmZzZXRfaW5fcGFnZShu dW0pIC8gNDsKKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCi0JCWVuZ2luZSA9IGVuZ2lu ZXNbb3JkZXJbaV0gJSBuXTsKLQkJaSA9IChpICsgMSkgJSAobiAqIEk5MTVfTlVNX0VOR0lORVMp OworCQljZSA9IGVuZ2luZXMtPmVuZ2luZXNbb3JkZXJbaV0gJSBlbmdpbmVzLT5udW1fZW5naW5l c107CisJCWkgPSAoaSArIDEpICUgKGNvdW50ICogY291bnQpOworCQlpZiAoIWNlIHx8ICFpbnRl bF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGNlLT5lbmdpbmUpKQorCQkJY29udGludWU7CiAKIAkJ LyoKIAkJICogSW4gb3JkZXIgdG8gdXRpbGl6ZSA2NEsgcGFnZXMgd2UgbmVlZCB0byBib3RoIHBh ZCB0aGUgdm1hCkBAIC0xMDU3LDIyICsxMDU3LDIzIEBAIHN0YXRpYyBpbnQgaWd0X3dyaXRlX2h1 Z2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJCW9mZnNldF9sb3cgPSByb3VuZF9k b3duKG9mZnNldF9sb3csCiAJCQkJCQlJOTE1X0dUVF9QQUdFX1NJWkVfMk0pOwogCi0JCWVyciA9 IF9faWd0X3dyaXRlX2h1Z2UoY3R4LCBlbmdpbmUsIG9iaiwgc2l6ZSwgb2Zmc2V0X2xvdywKKwkJ ZXJyID0gX19pZ3Rfd3JpdGVfaHVnZShjZSwgb2JqLCBzaXplLCBvZmZzZXRfbG93LAogCQkJCSAg ICAgICBkd29yZCwgbnVtICsgMSk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAotCQllcnIgPSBf X2lndF93cml0ZV9odWdlKGN0eCwgZW5naW5lLCBvYmosIHNpemUsIG9mZnNldF9oaWdoLAorCQll cnIgPSBfX2lndF93cml0ZV9odWdlKGNlLCBvYmosIHNpemUsIG9mZnNldF9oaWdoLAogCQkJCSAg ICAgICBkd29yZCwgbnVtICsgMSk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAogCQlpZiAoaWd0 X3RpbWVvdXQoZW5kX3RpbWUsCi0JCQkJIiVzIHRpbWVkIG91dCBvbiBlbmdpbmU9JXUsIG9mZnNl dF9sb3c9JWxseCBvZmZzZXRfaGlnaD0lbGx4LCBtYXhfcGFnZV9zaXplPSV4XG4iLAotCQkJCV9f ZnVuY19fLCBlbmdpbmUtPmlkLCBvZmZzZXRfbG93LCBvZmZzZXRfaGlnaCwKKwkJCQkiJXMgdGlt ZWQgb3V0IG9uICVzLCBvZmZzZXRfbG93PSVsbHggb2Zmc2V0X2hpZ2g9JWxseCwgbWF4X3BhZ2Vf c2l6ZT0leFxuIiwKKwkJCQlfX2Z1bmNfXywgY2UtPmVuZ2luZS0+bmFtZSwgb2Zmc2V0X2xvdywg b2Zmc2V0X2hpZ2gsCiAJCQkJbWF4X3BhZ2Vfc2l6ZSkpCiAJCQlicmVhazsKIAl9CisJaTkxNV9n ZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOwogCiAJa2ZyZWUob3JkZXIpOwogCkBAIC0x MzE2LDEwICsxMzE3LDEwIEBAIHN0YXRpYyBpbnQgaWd0X3BwZ3R0X3Bpbl91cGRhdGUodm9pZCAq YXJnKQogCXVuc2lnbmVkIGxvbmcgc3VwcG9ydGVkID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPnBh Z2Vfc2l6ZXM7CiAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPSBjdHgtPnZtOwogCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNf aXRlciBpdDsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAJc3RydWN0IGk5MTVfdm1hICp2 bWE7CiAJdW5zaWduZWQgaW50IGZsYWdzID0gUElOX1VTRVIgfCBQSU5fT0ZGU0VUX0ZJWEVEOwot CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBp ZDsKIAl1bnNpZ25lZCBpbnQgbjsKIAlpbnQgZmlyc3QsIGxhc3Q7CiAJaW50IGVycjsKQEAgLTE0 MTksMTQgKzE0MjAsMTggQEAgc3RhdGljIGludCBpZ3RfcHBndHRfcGluX3VwZGF0ZSh2b2lkICph cmcpCiAJICovCiAKIAluID0gMDsKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwg aWQpIHsKLQkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCisJZm9y X2VhY2hfZ2VtX2VuZ2luZShjZSwgaTkxNV9nZW1fY29udGV4dF9sb2NrX2VuZ2luZXMoY3R4KSwg aXQpIHsKKwkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGNlLT5lbmdpbmUpKQog CQkJY29udGludWU7CiAKLQkJZXJyID0gZ3B1X3dyaXRlKHZtYSwgY3R4LCBlbmdpbmUsIG4rKywg MHhkZWFkYmVhZik7CisJCWVyciA9IGdwdV93cml0ZShjZSwgdm1hLCBuKyssIDB4ZGVhZGJlYWYp OwogCQlpZiAoZXJyKQotCQkJZ290byBvdXRfdW5waW47CisJCQlicmVhazsKIAl9CisJaTkxNV9n ZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOworCWlmIChlcnIpCisJCWdvdG8gb3V0X3Vu cGluOworCiAJd2hpbGUgKG4tLSkgewogCQllcnIgPSBjcHVfY2hlY2sob2JqLCBuLCAweGRlYWRi ZWFmKTsKIAkJaWYgKGVycikKQEAgLTE1MDcsOCArMTUxMiw4IEBAIHN0YXRpYyBpbnQgaWd0X3No cmlua190aHAodm9pZCAqYXJnKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gY3R4 LT5pOTE1OwogCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gY3R4LT52bSA/OiAmaTkx NS0+Z2d0dC52bTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlzdHJ1 Y3QgaTkxNV9nZW1fZW5naW5lc19pdGVyIGl0OworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsK IAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBQSU5fVVNFUjsK IAl1bnNpZ25lZCBpbnQgbjsKQEAgLTE1NDgsMTYgKzE1NTMsMTkgQEAgc3RhdGljIGludCBpZ3Rf c2hyaW5rX3RocCh2b2lkICphcmcpCiAJCWdvdG8gb3V0X3VucGluOwogCiAJbiA9IDA7Ci0JZm9y X2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKLQkJaWYgKCFpbnRlbF9lbmdpbmVfY2Fu X3N0b3JlX2R3b3JkKGVuZ2luZSkpCisKKwlmb3JfZWFjaF9nZW1fZW5naW5lKGNlLCBpOTE1X2dl bV9jb250ZXh0X2xvY2tfZW5naW5lcyhjdHgpLCBpdCkgeworCQlpZiAoIWludGVsX2VuZ2luZV9j YW5fc3RvcmVfZHdvcmQoY2UtPmVuZ2luZSkpCiAJCQljb250aW51ZTsKIAotCQllcnIgPSBncHVf d3JpdGUodm1hLCBjdHgsIGVuZ2luZSwgbisrLCAweGRlYWRiZWFmKTsKKwkJZXJyID0gZ3B1X3dy aXRlKGNlLCB2bWEsIG4rKywgMHhkZWFkYmVhZik7CiAJCWlmIChlcnIpCi0JCQlnb3RvIG91dF91 bnBpbjsKKwkJCWJyZWFrOwogCX0KLQorCWk5MTVfZ2VtX2NvbnRleHRfdW5sb2NrX2VuZ2luZXMo Y3R4KTsKIAlpOTE1X3ZtYV91bnBpbih2bWEpOworCWlmIChlcnIpCisJCWdvdG8gb3V0X2Nsb3Nl OwogCiAJLyoKIAkgKiBOb3cgdGhhdCB0aGUgcGFnZXMgYXJlICp1bnBpbm5lZCogc2hyaW5rLWFs bCBzaG91bGQgaW52b2tlCkBAIC0xNTgzLDEwICsxNTkxLDkgQEAgc3RhdGljIGludCBpZ3Rfc2hy aW5rX3RocCh2b2lkICphcmcpCiAJd2hpbGUgKG4tLSkgewogCQllcnIgPSBjcHVfY2hlY2sob2Jq LCBuLCAweGRlYWRiZWFmKTsKIAkJaWYgKGVycikKLQkJCWdvdG8gb3V0X3VucGluOworCQkJYnJl YWs7CiAJfQogCi0KIG91dF91bnBpbjoKIAlpOTE1X3ZtYV91bnBpbih2bWEpOwogb3V0X2Nsb3Nl OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dl bV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2Vt X2NvbnRleHQuYwppbmRleCAzZTZmNGE2NWQzNTYuLjNhZGI2MGMyZmQxZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMK QEAgLTE2NiwxOSArMTY2LDE3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGZha2VfcGFnZV9jb3Vu dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXJldHVybiBodWdlX2dlbV9vYmpl Y3RfZG1hX3NpemUob2JqKSA+PiBQQUdFX1NISUZUOwogfQogCi1zdGF0aWMgaW50IGdwdV9maWxs KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCSAgICBzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4LAotCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorc3Rh dGljIGludCBncHVfZmlsbChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCSAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAgdW5zaWduZWQgaW50IGR3KQogewotCXN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gY3R4LT52bSA/OiAmZW5naW5lLT5ndC0+Z2d0 dC0+dm07CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJaW50IGVycjsKIAotCUdFTV9CVUdfT04o b2JqLT5iYXNlLnNpemUgPiB2bS0+dG90YWwpOwotCUdFTV9CVUdfT04oIWludGVsX2VuZ2luZV9j YW5fc3RvcmVfZHdvcmQoZW5naW5lKSk7CisJR0VNX0JVR19PTihvYmotPmJhc2Uuc2l6ZSA+IGNl LT52bS0+dG90YWwpOworCUdFTV9CVUdfT04oIWludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQo Y2UtPmVuZ2luZSkpOwogCi0Jdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCB2bSwgTlVMTCk7 CisJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCBjZS0+dm0sIE5VTEwpOwogCWlmIChJU19F UlIodm1hKSkKIAkJcmV0dXJuIFBUUl9FUlIodm1hKTsKIApAQCAtMjAwLDkgKzE5OCw3IEBAIHN0 YXRpYyBpbnQgZ3B1X2ZpbGwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkgKiB3 aGlsc3QgY2hlY2tpbmcgdGhhdCBlYWNoIGNvbnRleHQgcHJvdmlkZXMgYSB1bmlxdWUgdmlldwog CSAqIGludG8gdGhlIG9iamVjdC4KIAkgKi8KLQllcnIgPSBpZ3RfZ3B1X2ZpbGxfZHcodm1hLAot CQkJICAgICAgY3R4LAotCQkJICAgICAgZW5naW5lLAorCWVyciA9IGlndF9ncHVfZmlsbF9kdyhj ZSwgdm1hLAogCQkJICAgICAgKGR3ICogcmVhbF9wYWdlX2NvdW50KG9iaikpIDw8IFBBR0VfU0hJ RlQgfAogCQkJICAgICAgKGR3ICogc2l6ZW9mKHUzMikpLAogCQkJICAgICAgcmVhbF9wYWdlX2Nv dW50KG9iaiksCkBAIC0zMDUsMjIgKzMwMSwyMSBAQCBzdGF0aWMgaW50IGZpbGVfYWRkX29iamVj dChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqCi1jcmVhdGVfdGVzdF9vYmplY3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0 eCwKK2NyZWF0ZV90ZXN0X29iamVjdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJ ICAgc3RydWN0IGRybV9maWxlICpmaWxlLAogCQkgICBzdHJ1Y3QgbGlzdF9oZWFkICpvYmplY3Rz KQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0gPSBjdHgtPnZtID86ICZjdHgtPmk5MTUtPmdndHQudm07CiAJdTY0IHNp emU7CiAJaW50IGVycjsKIAogCS8qIEtlZXAgaW4gR0VNJ3MgZ29vZCBncmFjZXMgKi8KLQlpOTE1 X3JldGlyZV9yZXF1ZXN0cyhjdHgtPmk5MTUpOworCWk5MTVfcmV0aXJlX3JlcXVlc3RzKHZtLT5p OTE1KTsKIAogCXNpemUgPSBtaW4odm0tPnRvdGFsIC8gMiwgMTAyNHVsbCAqIERXX1BFUl9QQUdF ICogUEFHRV9TSVpFKTsKIAlzaXplID0gcm91bmRfZG93bihzaXplLCBEV19QRVJfUEFHRSAqIFBB R0VfU0laRSk7CiAKLQlvYmogPSBodWdlX2dlbV9vYmplY3QoY3R4LT5pOTE1LCBEV19QRVJfUEFH RSAqIFBBR0VfU0laRSwgc2l6ZSk7CisJb2JqID0gaHVnZV9nZW1fb2JqZWN0KHZtLT5pOTE1LCBE V19QRVJfUEFHRSAqIFBBR0VfU0laRSwgc2l6ZSk7CiAJaWYgKElTX0VSUihvYmopKQogCQlyZXR1 cm4gb2JqOwogCkBAIC0zOTMsNiArMzg4LDcgQEAgc3RhdGljIGludCBpZ3RfY3R4X2V4ZWModm9p ZCAqYXJnKQogCQlkdyA9IDA7CiAJCXdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmRfdGlt ZSkpIHsKIAkJCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CisJCQlzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqY2U7CiAKIAkJCWN0eCA9IGxpdmVfY29udGV4dChpOTE1LCBmaWxlKTsKIAkJCWlm IChJU19FUlIoY3R4KSkgewpAQCAtNDAwLDE1ICszOTYsMjAgQEAgc3RhdGljIGludCBpZ3RfY3R4 X2V4ZWModm9pZCAqYXJnKQogCQkJCWdvdG8gb3V0X3VubG9jazsKIAkJCX0KIAorCQkJY2UgPSBp OTE1X2dlbV9jb250ZXh0X2dldF9lbmdpbmUoY3R4LCBlbmdpbmUtPmxlZ2FjeV9pZHgpOworCiAJ CQlpZiAoIW9iaikgewotCQkJCW9iaiA9IGNyZWF0ZV90ZXN0X29iamVjdChjdHgsIGZpbGUsICZv YmplY3RzKTsKKwkJCQlvYmogPSBjcmVhdGVfdGVzdF9vYmplY3QoY2UtPnZtLCBmaWxlLCAmb2Jq ZWN0cyk7CiAJCQkJaWYgKElTX0VSUihvYmopKSB7CiAJCQkJCWVyciA9IFBUUl9FUlIob2JqKTsK KwkJCQkJaW50ZWxfY29udGV4dF9wdXQoY2UpOwogCQkJCQlnb3RvIG91dF91bmxvY2s7CiAJCQkJ fQogCQkJfQogCi0JCQllcnIgPSBncHVfZmlsbChvYmosIGN0eCwgZW5naW5lLCBkdyk7CisJCQll cnIgPSBncHVfZmlsbChjZSwgb2JqLCBkdyk7CisJCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7CisK IAkJCWlmIChlcnIpIHsKIAkJCQlwcl9lcnIoIkZhaWxlZCB0byBmaWxsIGR3b3JkICVsdSBbJWx1 LyVsdV0gd2l0aCBncHUgKCVzKSBpbiBjdHggJXUgW2Z1bGwtcHBndHQ/ICVzXSwgZXJyPSVkXG4i LAogCQkJCSAgICAgICBuZHdvcmRzLCBkdywgbWF4X2R3b3JkcyhvYmopLApAQCAtNTA5LDYgKzUx MCw3IEBAIHN0YXRpYyBpbnQgaWd0X3NoYXJlZF9jdHhfZXhlYyh2b2lkICphcmcpCiAJCW5jb250 ZXh0cyA9IDA7CiAJCXdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmRfdGltZSkpIHsKIAkJ CXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CisJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y2U7CiAKIAkJCWN0eCA9IGtlcm5lbF9jb250ZXh0KGk5MTUpOwogCQkJaWYgKElTX0VSUihjdHgp KSB7CkBAIC01MTgsMjIgKzUyMCwyNiBAQCBzdGF0aWMgaW50IGlndF9zaGFyZWRfY3R4X2V4ZWMo dm9pZCAqYXJnKQogCiAJCQlfX2Fzc2lnbl9wcGd0dChjdHgsIHBhcmVudC0+dm0pOwogCisJCQlj ZSA9IGk5MTVfZ2VtX2NvbnRleHRfZ2V0X2VuZ2luZShjdHgsIGVuZ2luZS0+bGVnYWN5X2lkeCk7 CiAJCQlpZiAoIW9iaikgewotCQkJCW9iaiA9IGNyZWF0ZV90ZXN0X29iamVjdChwYXJlbnQsIGZp bGUsICZvYmplY3RzKTsKKwkJCQlvYmogPSBjcmVhdGVfdGVzdF9vYmplY3QocGFyZW50LT52bSwg ZmlsZSwgJm9iamVjdHMpOwogCQkJCWlmIChJU19FUlIob2JqKSkgewogCQkJCQllcnIgPSBQVFJf RVJSKG9iaik7CisJCQkJCWludGVsX2NvbnRleHRfcHV0KGNlKTsKIAkJCQkJa2VybmVsX2NvbnRl eHRfY2xvc2UoY3R4KTsKIAkJCQkJZ290byBvdXRfdGVzdDsKIAkJCQl9CiAJCQl9CiAKLQkJCWVy ciA9IGdwdV9maWxsKG9iaiwgY3R4LCBlbmdpbmUsIGR3KTsKKwkJCWVyciA9IGdwdV9maWxsKGNl LCBvYmosIGR3KTsKKwkJCWludGVsX2NvbnRleHRfcHV0KGNlKTsKKwkJCWtlcm5lbF9jb250ZXh0 X2Nsb3NlKGN0eCk7CisKIAkJCWlmIChlcnIpIHsKIAkJCQlwcl9lcnIoIkZhaWxlZCB0byBmaWxs IGR3b3JkICVsdSBbJWx1LyVsdV0gd2l0aCBncHUgKCVzKSBpbiBjdHggJXUgW2Z1bGwtcHBndHQ/ ICVzXSwgZXJyPSVkXG4iLAogCQkJCSAgICAgICBuZHdvcmRzLCBkdywgbWF4X2R3b3JkcyhvYmop LAogCQkJCSAgICAgICBlbmdpbmUtPm5hbWUsIGN0eC0+aHdfaWQsCiAJCQkJICAgICAgIHllc25v KCEhY3R4LT52bSksIGVycik7Ci0JCQkJa2VybmVsX2NvbnRleHRfY2xvc2UoY3R4KTsKIAkJCQln b3RvIG91dF90ZXN0OwogCQkJfQogCkBAIC01NDQsOCArNTUwLDYgQEAgc3RhdGljIGludCBpZ3Rf c2hhcmVkX2N0eF9leGVjKHZvaWQgKmFyZykKIAogCQkJbmR3b3JkcysrOwogCQkJbmNvbnRleHRz Kys7Ci0KLQkJCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7CiAJCX0KIAkJcHJfaW5mbygiU3Vi bWl0dGVkICVsdSBjb250ZXh0cyB0byAlcywgZmlsbGluZyAlbHUgZHdvcmRzXG4iLAogCQkJbmNv bnRleHRzLCBlbmdpbmUtPm5hbWUsIG5kd29yZHMpOwpAQCAtNjA0LDYgKzYwOCw4IEBAIHN0YXRp YyBzdHJ1Y3QgaTkxNV92bWEgKnJwY3NfcXVlcnlfYmF0Y2goc3RydWN0IGk5MTVfdm1hICp2bWEp CiAJX19pOTE1X2dlbV9vYmplY3RfZmx1c2hfbWFwKG9iaiwgMCwgNjQpOwogCWk5MTVfZ2VtX29i amVjdF91bnBpbl9tYXAob2JqKTsKIAorCWludGVsX2d0X2NoaXBzZXRfZmx1c2godm1hLT52bS0+ Z3QpOworCiAJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCB2bWEtPnZtLCBOVUxMKTsKIAlp ZiAoSVNfRVJSKHZtYSkpIHsKIAkJZXJyID0gUFRSX0VSUih2bWEpOwpAQCAtMTA4MiwxNyArMTA4 OCwxOSBAQCBzdGF0aWMgaW50IGlndF9jdHhfcmVhZG9ubHkodm9pZCAqYXJnKQogCW5kd29yZHMg PSAwOwogCWR3ID0gMDsKIAl3aGlsZSAoIXRpbWVfYWZ0ZXIoamlmZmllcywgZW5kX3RpbWUpKSB7 Ci0JCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQkJdW5zaWduZWQgaW50IGlkOwor CQlzdHJ1Y3QgaTkxNV9nZW1fZW5naW5lc19pdGVyIGl0OworCQlzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqY2U7CiAKLQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKLQkJCWlmICgh aW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQorCQlmb3JfZWFjaF9nZW1fZW5n aW5lKGNlLAorCQkJCSAgICBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhjdHgpLCBpdCkg eworCQkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGNlLT5lbmdpbmUpKQogCQkJ CWNvbnRpbnVlOwogCiAJCQlpZiAoIW9iaikgewotCQkJCW9iaiA9IGNyZWF0ZV90ZXN0X29iamVj dChjdHgsIGZpbGUsICZvYmplY3RzKTsKKwkJCQlvYmogPSBjcmVhdGVfdGVzdF9vYmplY3QoY2Ut PnZtLCBmaWxlLCAmb2JqZWN0cyk7CiAJCQkJaWYgKElTX0VSUihvYmopKSB7CiAJCQkJCWVyciA9 IFBUUl9FUlIob2JqKTsKKwkJCQkJaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgp OwogCQkJCQlnb3RvIG91dF91bmxvY2s7CiAJCQkJfQogCkBAIC0xMTAwLDEyICsxMTA4LDEzIEBA IHN0YXRpYyBpbnQgaWd0X2N0eF9yZWFkb25seSh2b2lkICphcmcpCiAJCQkJCWk5MTVfZ2VtX29i amVjdF9zZXRfcmVhZG9ubHkob2JqKTsKIAkJCX0KIAotCQkJZXJyID0gZ3B1X2ZpbGwob2JqLCBj dHgsIGVuZ2luZSwgZHcpOworCQkJZXJyID0gZ3B1X2ZpbGwoY2UsIG9iaiwgZHcpOwogCQkJaWYg KGVycikgewogCQkJCXByX2VycigiRmFpbGVkIHRvIGZpbGwgZHdvcmQgJWx1IFslbHUvJWx1XSB3 aXRoIGdwdSAoJXMpIGluIGN0eCAldSBbZnVsbC1wcGd0dD8gJXNdLCBlcnI9JWRcbiIsCiAJCQkJ ICAgICAgIG5kd29yZHMsIGR3LCBtYXhfZHdvcmRzKG9iaiksCi0JCQkJICAgICAgIGVuZ2luZS0+ bmFtZSwgY3R4LT5od19pZCwKKwkJCQkgICAgICAgY2UtPmVuZ2luZS0+bmFtZSwgY3R4LT5od19p ZCwKIAkJCQkgICAgICAgeWVzbm8oISFjdHgtPnZtKSwgZXJyKTsKKwkJCQlpOTE1X2dlbV9jb250 ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7CiAJCQkJZ290byBvdXRfdW5sb2NrOwogCQkJfQogCkBA IC0xMTE1LDYgKzExMjQsNyBAQCBzdGF0aWMgaW50IGlndF9jdHhfcmVhZG9ubHkodm9pZCAqYXJn KQogCQkJfQogCQkJbmR3b3JkcysrOwogCQl9CisJCWk5MTVfZ2VtX2NvbnRleHRfdW5sb2NrX2Vu Z2luZXMoY3R4KTsKIAl9CiAJcHJfaW5mbygiU3VibWl0dGVkICVsdSBkd29yZHMgKGFjcm9zcyAl dSBlbmdpbmVzKVxuIiwKIAkJbmR3b3JkcywgUlVOVElNRV9JTkZPKGk5MTUpLT5udW1fZW5naW5l cyk7CkBAIC0xMTk3LDYgKzEyMDcsOCBAQCBzdGF0aWMgaW50IHdyaXRlX3RvX3NjcmF0Y2goc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAlfX2k5MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAo b2JqLCAwLCA2NCk7CiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChvYmopOwogCisJaW50ZWxf Z3RfY2hpcHNldF9mbHVzaChlbmdpbmUtPmd0KTsKKwogCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNl KG9iaiwgY3R4LT52bSwgTlVMTCk7CiAJaWYgKElTX0VSUih2bWEpKSB7CiAJCWVyciA9IFBUUl9F UlIodm1hKTsKQEAgLTEyOTYsNiArMTMwOCw4IEBAIHN0YXRpYyBpbnQgcmVhZF9mcm9tX3NjcmF0 Y2goc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAlpOTE1X2dlbV9vYmplY3RfZmx1c2hf bWFwKG9iaik7CiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChvYmopOwogCisJaW50ZWxfZ3Rf Y2hpcHNldF9mbHVzaChlbmdpbmUtPmd0KTsKKwogCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9i aiwgY3R4LT52bSwgTlVMTCk7CiAJaWYgKElTX0VSUih2bWEpKSB7CiAJCWVyciA9IFBUUl9FUlIo dm1hKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0 X2dlbV91dGlscy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pZ3RfZ2Vt X3V0aWxzLmMKaW5kZXggNTdlY2U1M2MxMDc1Li5lZTVkYzEzYTMwYjMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5jCkBAIC05LDYg KzksNyBAQAogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9jb250ZXh0LmgiCiAjaW5jbHVkZSAiZ2Vt L2k5MTVfZ2VtX3BtLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfY29udGV4dC5oIgorI2luY2x1ZGUg Imd0L2ludGVsX2d0LmgiCiAjaW5jbHVkZSAiaTkxNV92bWEuaCIKICNpbmNsdWRlICJpOTE1X2Ry di5oIgogCkBAIC04NCw2ICs4NSw4IEBAIGlndF9lbWl0X3N0b3JlX2R3KHN0cnVjdCBpOTE1X3Zt YSAqdm1hLAogCSpjbWQgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwogCWk5MTVfZ2VtX29iamVjdF91 bnBpbl9tYXAob2JqKTsKIAorCWludGVsX2d0X2NoaXBzZXRfZmx1c2godm1hLT52bS0+Z3QpOwor CiAJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCB2bWEtPnZtLCBOVUxMKTsKIAlpZiAoSVNf RVJSKHZtYSkpIHsKIAkJZXJyID0gUFRSX0VSUih2bWEpOwpAQCAtMTAxLDQwICsxMDQsMzUgQEAg aWd0X2VtaXRfc3RvcmVfZHcoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJcmV0dXJuIEVSUl9QVFIo ZXJyKTsKIH0KIAotaW50IGlndF9ncHVfZmlsbF9kdyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKLQkJ ICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCi0JCSAgICBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCi0JCSAgICB1NjQgb2Zmc2V0LAotCQkgICAgdW5zaWduZWQgbG9uZyBj b3VudCwKLQkJICAgIHUzMiB2YWwpCitpbnQgaWd0X2dwdV9maWxsX2R3KHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjZSwKKwkJICAgIHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1NjQgb2Zmc2V0LAorCQkg ICAgdW5zaWduZWQgbG9uZyBjb3VudCwgdTMyIHZhbCkKIHsKLQlzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bSA9IGN0eC0+dm0gPzogJmVuZ2luZS0+Z3QtPmdndHQtPnZtOwogCXN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxOwogCXN0cnVjdCBpOTE1X3ZtYSAqYmF0Y2g7CiAJdW5zaWduZWQgaW50 IGZsYWdzOwogCWludCBlcnI7CiAKLQlHRU1fQlVHX09OKHZtYS0+c2l6ZSA+IHZtLT50b3RhbCk7 Ci0JR0VNX0JVR19PTighaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKTsKKwlH RU1fQlVHX09OKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGNlLT5lbmdpbmUpKTsKIAlH RU1fQlVHX09OKCFpOTE1X3ZtYV9pc19waW5uZWQodm1hKSk7CiAKIAliYXRjaCA9IGlndF9lbWl0 X3N0b3JlX2R3KHZtYSwgb2Zmc2V0LCBjb3VudCwgdmFsKTsKIAlpZiAoSVNfRVJSKGJhdGNoKSkK IAkJcmV0dXJuIFBUUl9FUlIoYmF0Y2gpOwogCi0JcnEgPSBpZ3RfcmVxdWVzdF9hbGxvYyhjdHgs IGVuZ2luZSk7CisJcnEgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZV9yZXF1ZXN0KGNlKTsKIAlpZiAo SVNfRVJSKHJxKSkgewogCQllcnIgPSBQVFJfRVJSKHJxKTsKIAkJZ290byBlcnJfYmF0Y2g7CiAJ fQogCiAJZmxhZ3MgPSAwOwotCWlmIChJTlRFTF9HRU4odm0tPmk5MTUpIDw9IDUpCisJaWYgKElO VEVMX0dFTihjZS0+dm0tPmk5MTUpIDw9IDUpCiAJCWZsYWdzIHw9IEk5MTVfRElTUEFUQ0hfU0VD VVJFOwogCi0JZXJyID0gZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHJxLAotCQkJCSAgICBiYXRjaC0+ bm9kZS5zdGFydCwgYmF0Y2gtPm5vZGUuc2l6ZSwKLQkJCQkgICAgZmxhZ3MpOworCWVyciA9IHJx LT5lbmdpbmUtPmVtaXRfYmJfc3RhcnQocnEsCisJCQkJCWJhdGNoLT5ub2RlLnN0YXJ0LCBiYXRj aC0+bm9kZS5zaXplLAorCQkJCQlmbGFncyk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfcmVxdWVz dDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pZ3Rf Z2VtX3V0aWxzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1f dXRpbHMuaAppbmRleCAzNjFhN2VmODY2YjAuLjQyMjFjZjg0ZDE3NSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmgKQEAgLTExLDkg KzExLDExIEBACiAKIHN0cnVjdCBpOTE1X3JlcXVlc3Q7CiBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4 dDsKLXN0cnVjdCBpbnRlbF9lbmdpbmVfY3M7CiBzdHJ1Y3QgaTkxNV92bWE7CiAKK3N0cnVjdCBp bnRlbF9jb250ZXh0Oworc3RydWN0IGludGVsX2VuZ2luZV9jczsKKwogc3RydWN0IGk5MTVfcmVx dWVzdCAqCiBpZ3RfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCkBAIC0yMywxMSArMjUsOCBAQCBpZ3Rf ZW1pdF9zdG9yZV9kdyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAkJICB1bnNpZ25lZCBsb25nIGNv dW50LAogCQkgIHUzMiB2YWwpOwogCi1pbnQgaWd0X2dwdV9maWxsX2R3KHN0cnVjdCBpOTE1X3Zt YSAqdm1hLAotCQkgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKLQkJICAgIHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKLQkJICAgIHU2NCBvZmZzZXQsCi0JCSAgICB1bnNp Z25lZCBsb25nIGNvdW50LAotCQkgICAgdTMyIHZhbCk7CitpbnQgaWd0X2dwdV9maWxsX2R3KHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKKwkJICAgIHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1NjQg b2Zmc2V0LAorCQkgICAgdW5zaWduZWQgbG9uZyBjb3VudCwgdTMyIHZhbCk7CiAKICNlbmRpZiAv KiBfX0lHVF9HRU1fVVRJTFNfSF9fICovCi0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==