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 17:45:54 +0100 Message-ID: <20190823164554.10664-1-chris@chris-wilson.co.uk> References: <20190823132700.25286-4-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 C0B4E6ECF1 for ; Fri, 23 Aug 2019 16:46:02 +0000 (UTC) In-Reply-To: <20190823132700.25286-4-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 L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgICB8IDkyICsrKysrKysrKystLS0tLS0tLS0KIC4uLi9k cm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyB8IDcwICsrKysrKysrLS0t LS0tCiAuLi4vZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmMgICAgfCAyNiAr KystLS0KIC4uLi9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuaCAgICB8IDEz ICsrLQogNCBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgOTIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3Bh Z2VzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYwpp bmRleCA4ZGU4M2M2ZDgxZjUuLjVkYzk3ZTNhNWE5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv 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 OwogCQlnb3RvIG91dF92bWFfdW5waW47CkBAIC05ODcsMTQgKzk4NCwxMyBAQCBzdGF0aWMgaW50 IF9faWd0X3dyaXRlX2h1Z2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIHN0YXRpYyBp bnQgaWd0X3dyaXRlX2h1Z2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJCSAgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0gPSBjdHgtPnZtID86ICZpOTE1LT5nZ3R0LnZtOwotCXN0YXRpYyBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmVzW0k5MTVfTlVNX0VOR0lORVNdOwotCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKKwlzdHJ1Y3QgaTkxNV9nZW1fZW5naW5lcyAqZW5naW5lczsKKwlz dHJ1Y3QgaTkxNV9nZW1fZW5naW5lc19pdGVyIGl0OworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZTsKIAlJOTE1X1JORF9TVEFURShwcm5nKTsKIAlJR1RfVElNRU9VVChlbmRfdGltZSk7CiAJdW5z aWduZWQgaW50IG1heF9wYWdlX3NpemU7Ci0JdW5zaWduZWQgaW50IGlkOworCXVuc2lnbmVkIGlu dCBjb3VudDsKIAl1NjQgbWF4OwogCXU2NCBudW07CiAJdTY0IHNpemU7CkBAIC0xMDA5LDE4ICsx MDA1LDE2IEBAIHN0YXRpYyBpbnQgaWd0X3dyaXRlX2h1Z2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCwKIAkJc2l6ZSA9IHJvdW5kX3VwKHNpemUsIEk5MTVfR1RUX1BBR0VfU0laRV8yTSk7 CiAKIAltYXhfcGFnZV9zaXplID0gcm91bmRkb3duX3Bvd19vZl90d28ob2JqLT5tbS5wYWdlX3Np emVzLnNnKTsKLQltYXggPSBkaXZfdTY0KCh2bS0+dG90YWwgLSBzaXplKSwgbWF4X3BhZ2Vfc2l6 ZSk7CisJbWF4ID0gZGl2X3U2NCgoY3R4LT52bS0+dG90YWwgLSBzaXplKSwgbWF4X3BhZ2Vfc2l6 ZSk7CiAKIAluID0gMDsKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewotCQlp ZiAoIWludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQoZW5naW5lKSkgewotCQkJcHJfaW5mbygi c3RvcmUtZHdvcmQtaW1tIG5vdCBzdXBwb3J0ZWQgb24gZW5naW5lPSV1XG4iLAotCQkJCWlkKTsK Kwlmb3JfZWFjaF9nZW1fZW5naW5lKGNlLCBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhj dHgpLCBpdCkgeworCQljb3VudCsrOworCQlpZiAoIWludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdv cmQoY2UtPmVuZ2luZSkpCiAJCQljb250aW51ZTsKLQkJfQotCQllbmdpbmVzW24rK10gPSBlbmdp bmU7CisJCW4rKzsKIAl9Ci0KKwlpOTE1X2dlbV9jb250ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7 CiAJaWYgKCFuKQogCQlyZXR1cm4gMDsKIApAQCAtMTAyOSw3ICsxMDIzLDcgQEAgc3RhdGljIGlu dCBpZ3Rfd3JpdGVfaHVnZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCSAqIHJhbmRv bWl6ZWQgb3JkZXIsIGxldHMgYWxzbyBtYWtlIGZlZWRpbmcgdG8gdGhlIHNhbWUgZW5naW5lIGEg ZmV3CiAJICogdGltZXMgaW4gc3VjY2Vzc2lvbiBhIHBvc3NpYmlsaXR5IGJ5IGVubGFyZ2luZyB0 aGUgcGVybXV0YXRpb24gYXJyYXkuCiAJICovCi0Jb3JkZXIgPSBpOTE1X3JhbmRvbV9vcmRlcihu ICogSTkxNV9OVU1fRU5HSU5FUywgJnBybmcpOworCW9yZGVyID0gaTkxNV9yYW5kb21fb3JkZXIo Y291bnQgKiBjb3VudCwgJnBybmcpOwogCWlmICghb3JkZXIpCiAJCXJldHVybiAtRU5PTUVNOwog CkBAIC0xMDM5LDEzICsxMDMzLDE3IEBAIHN0YXRpYyBpbnQgaWd0X3dyaXRlX2h1Z2Uoc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkgKiBvZmZzZXQgPSAwLgogCSAqLwogCWkgPSAwOwor CWVuZ2luZXMgPSBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhjdHgpOwogCWZvcl9lYWNo X3ByaW1lX251bWJlcl9mcm9tKG51bSwgMCwgbWF4KSB7CiAJCXU2NCBvZmZzZXRfbG93ID0gbnVt ICogbWF4X3BhZ2Vfc2l6ZTsKIAkJdTY0IG9mZnNldF9oaWdoID0gKG1heCAtIG51bSkgKiBtYXhf cGFnZV9zaXplOwogCQl1MzIgZHdvcmQgPSBvZmZzZXRfaW5fcGFnZShudW0pIC8gNDsKKwkJc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlOwogCi0JCWVuZ2luZSA9IGVuZ2luZXNbb3JkZXJbaV0gJSBu XTsKLQkJaSA9IChpICsgMSkgJSAobiAqIEk5MTVfTlVNX0VOR0lORVMpOworCQljZSA9IGVuZ2lu ZXMtPmVuZ2luZXNbb3JkZXJbaV0gJSBlbmdpbmVzLT5udW1fZW5naW5lc107CisJCWkgPSAoaSAr IDEpICUgKGNvdW50ICogY291bnQpOworCQlpZiAoIWNlIHx8ICFpbnRlbF9lbmdpbmVfY2FuX3N0 b3JlX2R3b3JkKGNlLT5lbmdpbmUpKQorCQkJY29udGludWU7CiAKIAkJLyoKIAkJICogSW4gb3Jk ZXIgdG8gdXRpbGl6ZSA2NEsgcGFnZXMgd2UgbmVlZCB0byBib3RoIHBhZCB0aGUgdm1hCkBAIC0x MDU3LDIyICsxMDU1LDIzIEBAIHN0YXRpYyBpbnQgaWd0X3dyaXRlX2h1Z2Uoc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKIAkJCW9mZnNldF9sb3cgPSByb3VuZF9kb3duKG9mZnNldF9sb3cs CiAJCQkJCQlJOTE1X0dUVF9QQUdFX1NJWkVfMk0pOwogCi0JCWVyciA9IF9faWd0X3dyaXRlX2h1 Z2UoY3R4LCBlbmdpbmUsIG9iaiwgc2l6ZSwgb2Zmc2V0X2xvdywKKwkJZXJyID0gX19pZ3Rfd3Jp dGVfaHVnZShjZSwgb2JqLCBzaXplLCBvZmZzZXRfbG93LAogCQkJCSAgICAgICBkd29yZCwgbnVt ICsgMSk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAotCQllcnIgPSBfX2lndF93cml0ZV9odWdl KGN0eCwgZW5naW5lLCBvYmosIHNpemUsIG9mZnNldF9oaWdoLAorCQllcnIgPSBfX2lndF93cml0 ZV9odWdlKGNlLCBvYmosIHNpemUsIG9mZnNldF9oaWdoLAogCQkJCSAgICAgICBkd29yZCwgbnVt ICsgMSk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAogCQlpZiAoaWd0X3RpbWVvdXQoZW5kX3Rp bWUsCi0JCQkJIiVzIHRpbWVkIG91dCBvbiBlbmdpbmU9JXUsIG9mZnNldF9sb3c9JWxseCBvZmZz ZXRfaGlnaD0lbGx4LCBtYXhfcGFnZV9zaXplPSV4XG4iLAotCQkJCV9fZnVuY19fLCBlbmdpbmUt PmlkLCBvZmZzZXRfbG93LCBvZmZzZXRfaGlnaCwKKwkJCQkiJXMgdGltZWQgb3V0IG9uICVzLCBv ZmZzZXRfbG93PSVsbHggb2Zmc2V0X2hpZ2g9JWxseCwgbWF4X3BhZ2Vfc2l6ZT0leFxuIiwKKwkJ CQlfX2Z1bmNfXywgY2UtPmVuZ2luZS0+bmFtZSwgb2Zmc2V0X2xvdywgb2Zmc2V0X2hpZ2gsCiAJ CQkJbWF4X3BhZ2Vfc2l6ZSkpCiAJCQlicmVhazsKIAl9CisJaTkxNV9nZW1fY29udGV4dF91bmxv Y2tfZW5naW5lcyhjdHgpOwogCiAJa2ZyZWUob3JkZXIpOwogCkBAIC0xMzE2LDEwICsxMzE1LDEx IEBAIHN0YXRpYyBpbnQgaWd0X3BwZ3R0X3Bpbl91cGRhdGUodm9pZCAqYXJnKQogCXVuc2lnbmVk IGxvbmcgc3VwcG9ydGVkID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPnBhZ2Vfc2l6ZXM7CiAJc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPSBjdHgtPnZtOwogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKKwlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJdW5zaWduZWQg aW50IGZsYWdzID0gUElOX1VTRVIgfCBQSU5fT0ZGU0VUX0ZJWEVEOwogCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAl1bnNpZ25lZCBp bnQgbjsKIAlpbnQgZmlyc3QsIGxhc3Q7CiAJaW50IGVycjsKQEAgLTE0MTksMTQgKzE0MTksMTgg QEAgc3RhdGljIGludCBpZ3RfcHBndHRfcGluX3VwZGF0ZSh2b2lkICphcmcpCiAJICovCiAKIAlu ID0gMDsKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKKwlmb3JfZWFj aF9nZW1fZW5naW5lKGNlLCBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhjdHgpLCBpdCkg ewogCQlpZiAoIWludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQoZW5naW5lKSkKIAkJCWNvbnRp bnVlOwogCi0JCWVyciA9IGdwdV93cml0ZSh2bWEsIGN0eCwgZW5naW5lLCBuKyssIDB4ZGVhZGJl YWYpOworCQllcnIgPSBncHVfd3JpdGUoY2UsIHZtYSwgbisrLCAweGRlYWRiZWFmKTsKIAkJaWYg KGVycikKLQkJCWdvdG8gb3V0X3VucGluOworCQkJYnJlYWs7CiAJfQorCWk5MTVfZ2VtX2NvbnRl eHRfdW5sb2NrX2VuZ2luZXMoY3R4KTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dF91bnBpbjsKKwog CXdoaWxlIChuLS0pIHsKIAkJZXJyID0gY3B1X2NoZWNrKG9iaiwgbiwgMHhkZWFkYmVhZik7CiAJ CWlmIChlcnIpCkBAIC0xNTA3LDggKzE1MTEsOCBAQCBzdGF0aWMgaW50IGlndF9zaHJpbmtfdGhw KHZvaWQgKmFyZykKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGN0eC0+aTkxNTsK IAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9IGN0eC0+dm0gPzogJmk5MTUtPmdndHQu dm07CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJc3RydWN0IGk5MTVf Z2VtX2VuZ2luZXNfaXRlciBpdDsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAJc3RydWN0 IGk5MTVfdm1hICp2bWE7CiAJdW5zaWduZWQgaW50IGZsYWdzID0gUElOX1VTRVI7CiAJdW5zaWdu ZWQgaW50IG47CkBAIC0xNTQ4LDE2ICsxNTUyLDE5IEBAIHN0YXRpYyBpbnQgaWd0X3Nocmlua190 aHAodm9pZCAqYXJnKQogCQlnb3RvIG91dF91bnBpbjsKIAogCW4gPSAwOwotCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGk5MTUsIGlkKSB7Ci0JCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9k d29yZChlbmdpbmUpKQorCisJZm9yX2VhY2hfZ2VtX2VuZ2luZShjZSwgaTkxNV9nZW1fY29udGV4 dF9sb2NrX2VuZ2luZXMoY3R4KSwgaXQpIHsKKwkJaWYgKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3Jl X2R3b3JkKGNlLT5lbmdpbmUpKQogCQkJY29udGludWU7CiAKLQkJZXJyID0gZ3B1X3dyaXRlKHZt YSwgY3R4LCBlbmdpbmUsIG4rKywgMHhkZWFkYmVhZik7CisJCWVyciA9IGdwdV93cml0ZShjZSwg dm1hLCBuKyssIDB4ZGVhZGJlYWYpOwogCQlpZiAoZXJyKQotCQkJZ290byBvdXRfdW5waW47CisJ CQlicmVhazsKIAl9Ci0KKwlpOTE1X2dlbV9jb250ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7CiAJ aTkxNV92bWFfdW5waW4odm1hKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dF9jbG9zZTsKIAogCS8q CiAJICogTm93IHRoYXQgdGhlIHBhZ2VzIGFyZSAqdW5waW5uZWQqIHNocmluay1hbGwgc2hvdWxk IGludm9rZQpAQCAtMTU4MywxMCArMTU5MCw5IEBAIHN0YXRpYyBpbnQgaWd0X3Nocmlua190aHAo dm9pZCAqYXJnKQogCXdoaWxlIChuLS0pIHsKIAkJZXJyID0gY3B1X2NoZWNrKG9iaiwgbiwgMHhk ZWFkYmVhZik7CiAJCWlmIChlcnIpCi0JCQlnb3RvIG91dF91bnBpbjsKKwkJCWJyZWFrOwogCX0K IAotCiBvdXRfdW5waW46CiAJaTkxNV92bWFfdW5waW4odm1hKTsKIG91dF9jbG9zZToKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0 LmMKaW5kZXggM2U2ZjRhNjVkMzU2Li4zYWRiNjBjMmZkMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCkBAIC0xNjYs MTkgKzE2NiwxNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBmYWtlX3BhZ2VfY291bnQoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlyZXR1cm4gaHVnZV9nZW1fb2JqZWN0X2RtYV9z aXplKG9iaikgPj4gUEFHRV9TSElGVDsKIH0KIAotc3RhdGljIGludCBncHVfZmlsbChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCwKLQkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKK3N0YXRpYyBpbnQg Z3B1X2ZpbGwoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAorCQkgICAgc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAkJICAgIHVuc2lnbmVkIGludCBkdykKIHsKLQlzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSA9IGN0eC0+dm0gPzogJmVuZ2luZS0+Z3QtPmdndHQtPnZtOwog CXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCWludCBlcnI7CiAKLQlHRU1fQlVHX09OKG9iai0+YmFz ZS5zaXplID4gdm0tPnRvdGFsKTsKLQlHRU1fQlVHX09OKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3Jl X2R3b3JkKGVuZ2luZSkpOworCUdFTV9CVUdfT04ob2JqLT5iYXNlLnNpemUgPiBjZS0+dm0tPnRv dGFsKTsKKwlHRU1fQlVHX09OKCFpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGNlLT5lbmdp bmUpKTsKIAotCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgdm0sIE5VTEwpOworCXZtYSA9 IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgY2UtPnZtLCBOVUxMKTsKIAlpZiAoSVNfRVJSKHZtYSkp CiAJCXJldHVybiBQVFJfRVJSKHZtYSk7CiAKQEAgLTIwMCw5ICsxOTgsNyBAQCBzdGF0aWMgaW50 IGdwdV9maWxsKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJICogd2hpbHN0IGNo ZWNraW5nIHRoYXQgZWFjaCBjb250ZXh0IHByb3ZpZGVzIGEgdW5pcXVlIHZpZXcKIAkgKiBpbnRv IHRoZSBvYmplY3QuCiAJICovCi0JZXJyID0gaWd0X2dwdV9maWxsX2R3KHZtYSwKLQkJCSAgICAg IGN0eCwKLQkJCSAgICAgIGVuZ2luZSwKKwllcnIgPSBpZ3RfZ3B1X2ZpbGxfZHcoY2UsIHZtYSwK IAkJCSAgICAgIChkdyAqIHJlYWxfcGFnZV9jb3VudChvYmopKSA8PCBQQUdFX1NISUZUIHwKIAkJ CSAgICAgIChkdyAqIHNpemVvZih1MzIpKSwKIAkJCSAgICAgIHJlYWxfcGFnZV9jb3VudChvYmop LApAQCAtMzA1LDIyICszMDEsMjEgQEAgc3RhdGljIGludCBmaWxlX2FkZF9vYmplY3Qoc3RydWN0 IGRybV9maWxlICpmaWxlLAogfQogCiBzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg KgotY3JlYXRlX3Rlc3Rfb2JqZWN0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCitjcmVh dGVfdGVzdF9vYmplY3Qoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCSAgIHN0cnVj dCBkcm1fZmlsZSAqZmlsZSwKIAkJICAgc3RydWN0IGxpc3RfaGVhZCAqb2JqZWN0cykKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtID0gY3R4LT52bSA/OiAmY3R4LT5pOTE1LT5nZ3R0LnZtOwogCXU2NCBzaXplOwogCWlu dCBlcnI7CiAKIAkvKiBLZWVwIGluIEdFTSdzIGdvb2QgZ3JhY2VzICovCi0JaTkxNV9yZXRpcmVf cmVxdWVzdHMoY3R4LT5pOTE1KTsKKwlpOTE1X3JldGlyZV9yZXF1ZXN0cyh2bS0+aTkxNSk7CiAK IAlzaXplID0gbWluKHZtLT50b3RhbCAvIDIsIDEwMjR1bGwgKiBEV19QRVJfUEFHRSAqIFBBR0Vf U0laRSk7CiAJc2l6ZSA9IHJvdW5kX2Rvd24oc2l6ZSwgRFdfUEVSX1BBR0UgKiBQQUdFX1NJWkUp OwogCi0Jb2JqID0gaHVnZV9nZW1fb2JqZWN0KGN0eC0+aTkxNSwgRFdfUEVSX1BBR0UgKiBQQUdF X1NJWkUsIHNpemUpOworCW9iaiA9IGh1Z2VfZ2VtX29iamVjdCh2bS0+aTkxNSwgRFdfUEVSX1BB R0UgKiBQQUdFX1NJWkUsIHNpemUpOwogCWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJuIG9iajsK IApAQCAtMzkzLDYgKzM4OCw3IEBAIHN0YXRpYyBpbnQgaWd0X2N0eF9leGVjKHZvaWQgKmFyZykK IAkJZHcgPSAwOwogCQl3aGlsZSAoIXRpbWVfYWZ0ZXIoamlmZmllcywgZW5kX3RpbWUpKSB7CiAJ CQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OworCQkJc3RydWN0IGludGVsX2NvbnRleHQg KmNlOwogCiAJCQljdHggPSBsaXZlX2NvbnRleHQoaTkxNSwgZmlsZSk7CiAJCQlpZiAoSVNfRVJS KGN0eCkpIHsKQEAgLTQwMCwxNSArMzk2LDIwIEBAIHN0YXRpYyBpbnQgaWd0X2N0eF9leGVjKHZv aWQgKmFyZykKIAkJCQlnb3RvIG91dF91bmxvY2s7CiAJCQl9CiAKKwkJCWNlID0gaTkxNV9nZW1f Y29udGV4dF9nZXRfZW5naW5lKGN0eCwgZW5naW5lLT5sZWdhY3lfaWR4KTsKKwogCQkJaWYgKCFv YmopIHsKLQkJCQlvYmogPSBjcmVhdGVfdGVzdF9vYmplY3QoY3R4LCBmaWxlLCAmb2JqZWN0cyk7 CisJCQkJb2JqID0gY3JlYXRlX3Rlc3Rfb2JqZWN0KGNlLT52bSwgZmlsZSwgJm9iamVjdHMpOwog CQkJCWlmIChJU19FUlIob2JqKSkgewogCQkJCQllcnIgPSBQVFJfRVJSKG9iaik7CisJCQkJCWlu dGVsX2NvbnRleHRfcHV0KGNlKTsKIAkJCQkJZ290byBvdXRfdW5sb2NrOwogCQkJCX0KIAkJCX0K IAotCQkJZXJyID0gZ3B1X2ZpbGwob2JqLCBjdHgsIGVuZ2luZSwgZHcpOworCQkJZXJyID0gZ3B1 X2ZpbGwoY2UsIG9iaiwgZHcpOworCQkJaW50ZWxfY29udGV4dF9wdXQoY2UpOworCiAJCQlpZiAo ZXJyKSB7CiAJCQkJcHJfZXJyKCJGYWlsZWQgdG8gZmlsbCBkd29yZCAlbHUgWyVsdS8lbHVdIHdp dGggZ3B1ICglcykgaW4gY3R4ICV1IFtmdWxsLXBwZ3R0PyAlc10sIGVycj0lZFxuIiwKIAkJCQkg ICAgICAgbmR3b3JkcywgZHcsIG1heF9kd29yZHMob2JqKSwKQEAgLTUwOSw2ICs1MTAsNyBAQCBz dGF0aWMgaW50IGlndF9zaGFyZWRfY3R4X2V4ZWModm9pZCAqYXJnKQogCQluY29udGV4dHMgPSAw OwogCQl3aGlsZSAoIXRpbWVfYWZ0ZXIoamlmZmllcywgZW5kX3RpbWUpKSB7CiAJCQlzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dCAqY3R4OworCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCiAJ CQljdHggPSBrZXJuZWxfY29udGV4dChpOTE1KTsKIAkJCWlmIChJU19FUlIoY3R4KSkgewpAQCAt NTE4LDIyICs1MjAsMjYgQEAgc3RhdGljIGludCBpZ3Rfc2hhcmVkX2N0eF9leGVjKHZvaWQgKmFy ZykKIAogCQkJX19hc3NpZ25fcHBndHQoY3R4LCBwYXJlbnQtPnZtKTsKIAorCQkJY2UgPSBpOTE1 X2dlbV9jb250ZXh0X2dldF9lbmdpbmUoY3R4LCBlbmdpbmUtPmxlZ2FjeV9pZHgpOwogCQkJaWYg KCFvYmopIHsKLQkJCQlvYmogPSBjcmVhdGVfdGVzdF9vYmplY3QocGFyZW50LCBmaWxlLCAmb2Jq ZWN0cyk7CisJCQkJb2JqID0gY3JlYXRlX3Rlc3Rfb2JqZWN0KHBhcmVudC0+dm0sIGZpbGUsICZv YmplY3RzKTsKIAkJCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCQkJZXJyID0gUFRSX0VSUihvYmop OworCQkJCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7CiAJCQkJCWtlcm5lbF9jb250ZXh0X2Nsb3Nl KGN0eCk7CiAJCQkJCWdvdG8gb3V0X3Rlc3Q7CiAJCQkJfQogCQkJfQogCi0JCQllcnIgPSBncHVf ZmlsbChvYmosIGN0eCwgZW5naW5lLCBkdyk7CisJCQllcnIgPSBncHVfZmlsbChjZSwgb2JqLCBk dyk7CisJCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7CisJCQlrZXJuZWxfY29udGV4dF9jbG9zZShj dHgpOworCiAJCQlpZiAoZXJyKSB7CiAJCQkJcHJfZXJyKCJGYWlsZWQgdG8gZmlsbCBkd29yZCAl bHUgWyVsdS8lbHVdIHdpdGggZ3B1ICglcykgaW4gY3R4ICV1IFtmdWxsLXBwZ3R0PyAlc10sIGVy cj0lZFxuIiwKIAkJCQkgICAgICAgbmR3b3JkcywgZHcsIG1heF9kd29yZHMob2JqKSwKIAkJCQkg ICAgICAgZW5naW5lLT5uYW1lLCBjdHgtPmh3X2lkLAogCQkJCSAgICAgICB5ZXNubyghIWN0eC0+ dm0pLCBlcnIpOwotCQkJCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7CiAJCQkJZ290byBvdXRf dGVzdDsKIAkJCX0KIApAQCAtNTQ0LDggKzU1MCw2IEBAIHN0YXRpYyBpbnQgaWd0X3NoYXJlZF9j dHhfZXhlYyh2b2lkICphcmcpCiAKIAkJCW5kd29yZHMrKzsKIAkJCW5jb250ZXh0cysrOwotCi0J CQlrZXJuZWxfY29udGV4dF9jbG9zZShjdHgpOwogCQl9CiAJCXByX2luZm8oIlN1Ym1pdHRlZCAl bHUgY29udGV4dHMgdG8gJXMsIGZpbGxpbmcgJWx1IGR3b3Jkc1xuIiwKIAkJCW5jb250ZXh0cywg ZW5naW5lLT5uYW1lLCBuZHdvcmRzKTsKQEAgLTYwNCw2ICs2MDgsOCBAQCBzdGF0aWMgc3RydWN0 IGk5MTVfdm1hICpycGNzX3F1ZXJ5X2JhdGNoKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCV9faTkx NV9nZW1fb2JqZWN0X2ZsdXNoX21hcChvYmosIDAsIDY0KTsKIAlpOTE1X2dlbV9vYmplY3RfdW5w aW5fbWFwKG9iaik7CiAKKwlpbnRlbF9ndF9jaGlwc2V0X2ZsdXNoKHZtYS0+dm0tPmd0KTsKKwog CXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgdm1hLT52bSwgTlVMTCk7CiAJaWYgKElTX0VS Uih2bWEpKSB7CiAJCWVyciA9IFBUUl9FUlIodm1hKTsKQEAgLTEwODIsMTcgKzEwODgsMTkgQEAg c3RhdGljIGludCBpZ3RfY3R4X3JlYWRvbmx5KHZvaWQgKmFyZykKIAluZHdvcmRzID0gMDsKIAlk dyA9IDA7CiAJd2hpbGUgKCF0aW1lX2FmdGVyKGppZmZpZXMsIGVuZF90aW1lKSkgewotCQlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JCXVuc2lnbmVkIGludCBpZDsKKwkJc3RydWN0 IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwog Ci0JCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7Ci0JCQlpZiAoIWludGVsX2Vu Z2luZV9jYW5fc3RvcmVfZHdvcmQoZW5naW5lKSkKKwkJZm9yX2VhY2hfZ2VtX2VuZ2luZShjZSwK KwkJCQkgICAgaTkxNV9nZW1fY29udGV4dF9sb2NrX2VuZ2luZXMoY3R4KSwgaXQpIHsKKwkJCWlm ICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChjZS0+ZW5naW5lKSkKIAkJCQljb250aW51 ZTsKIAogCQkJaWYgKCFvYmopIHsKLQkJCQlvYmogPSBjcmVhdGVfdGVzdF9vYmplY3QoY3R4LCBm aWxlLCAmb2JqZWN0cyk7CisJCQkJb2JqID0gY3JlYXRlX3Rlc3Rfb2JqZWN0KGNlLT52bSwgZmls ZSwgJm9iamVjdHMpOwogCQkJCWlmIChJU19FUlIob2JqKSkgewogCQkJCQllcnIgPSBQVFJfRVJS KG9iaik7CisJCQkJCWk5MTVfZ2VtX2NvbnRleHRfdW5sb2NrX2VuZ2luZXMoY3R4KTsKIAkJCQkJ Z290byBvdXRfdW5sb2NrOwogCQkJCX0KIApAQCAtMTEwMCwxMiArMTEwOCwxMyBAQCBzdGF0aWMg aW50IGlndF9jdHhfcmVhZG9ubHkodm9pZCAqYXJnKQogCQkJCQlpOTE1X2dlbV9vYmplY3Rfc2V0 X3JlYWRvbmx5KG9iaik7CiAJCQl9CiAKLQkJCWVyciA9IGdwdV9maWxsKG9iaiwgY3R4LCBlbmdp bmUsIGR3KTsKKwkJCWVyciA9IGdwdV9maWxsKGNlLCBvYmosIGR3KTsKIAkJCWlmIChlcnIpIHsK IAkJCQlwcl9lcnIoIkZhaWxlZCB0byBmaWxsIGR3b3JkICVsdSBbJWx1LyVsdV0gd2l0aCBncHUg KCVzKSBpbiBjdHggJXUgW2Z1bGwtcHBndHQ/ICVzXSwgZXJyPSVkXG4iLAogCQkJCSAgICAgICBu ZHdvcmRzLCBkdywgbWF4X2R3b3JkcyhvYmopLAotCQkJCSAgICAgICBlbmdpbmUtPm5hbWUsIGN0 eC0+aHdfaWQsCisJCQkJICAgICAgIGNlLT5lbmdpbmUtPm5hbWUsIGN0eC0+aHdfaWQsCiAJCQkJ ICAgICAgIHllc25vKCEhY3R4LT52bSksIGVycik7CisJCQkJaTkxNV9nZW1fY29udGV4dF91bmxv Y2tfZW5naW5lcyhjdHgpOwogCQkJCWdvdG8gb3V0X3VubG9jazsKIAkJCX0KIApAQCAtMTExNSw2 ICsxMTI0LDcgQEAgc3RhdGljIGludCBpZ3RfY3R4X3JlYWRvbmx5KHZvaWQgKmFyZykKIAkJCX0K IAkJCW5kd29yZHMrKzsKIAkJfQorCQlpOTE1X2dlbV9jb250ZXh0X3VubG9ja19lbmdpbmVzKGN0 eCk7CiAJfQogCXByX2luZm8oIlN1Ym1pdHRlZCAlbHUgZHdvcmRzIChhY3Jvc3MgJXUgZW5naW5l cylcbiIsCiAJCW5kd29yZHMsIFJVTlRJTUVfSU5GTyhpOTE1KS0+bnVtX2VuZ2luZXMpOwpAQCAt MTE5Nyw2ICsxMjA3LDggQEAgc3RhdGljIGludCB3cml0ZV90b19zY3JhdGNoKHN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICpjdHgsCiAJX19pOTE1X2dlbV9vYmplY3RfZmx1c2hfbWFwKG9iaiwgMCwg NjQpOwogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAob2JqKTsKIAorCWludGVsX2d0X2NoaXBz ZXRfZmx1c2goZW5naW5lLT5ndCk7CisKIAl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosIGN0 eC0+dm0sIE5VTEwpOwogCWlmIChJU19FUlIodm1hKSkgewogCQllcnIgPSBQVFJfRVJSKHZtYSk7 CkBAIC0xMjk2LDYgKzEzMDgsOCBAQCBzdGF0aWMgaW50IHJlYWRfZnJvbV9zY3JhdGNoKHN0cnVj dCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX21hcChvYmop OwogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAob2JqKTsKIAorCWludGVsX2d0X2NoaXBzZXRf Zmx1c2goZW5naW5lLT5ndCk7CisKIAl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosIGN0eC0+ dm0sIE5VTEwpOwogCWlmIChJU19FUlIodm1hKSkgewogCQllcnIgPSBQVFJfRVJSKHZtYSk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1fdXRp bHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5j CmluZGV4IDU3ZWNlNTNjMTA3NS4uZWU1ZGMxM2EzMGIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuYwpAQCAtOSw2ICs5LDcgQEAK ICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY29udGV4dC5oIgogI2luY2x1ZGUgImdlbS9pOTE1X2dl bV9wbS5oIgogI2luY2x1ZGUgImd0L2ludGVsX2NvbnRleHQuaCIKKyNpbmNsdWRlICJndC9pbnRl bF9ndC5oIgogI2luY2x1ZGUgImk5MTVfdm1hLmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIApA QCAtODQsNiArODUsOCBAQCBpZ3RfZW1pdF9zdG9yZV9kdyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSwK IAkqY21kID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFw KG9iaik7CiAKKwlpbnRlbF9ndF9jaGlwc2V0X2ZsdXNoKHZtYS0+dm0tPmd0KTsKKwogCXZtYSA9 IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgdm1hLT52bSwgTlVMTCk7CiAJaWYgKElTX0VSUih2bWEp KSB7CiAJCWVyciA9IFBUUl9FUlIodm1hKTsKQEAgLTEwMSw0MCArMTA0LDM1IEBAIGlndF9lbWl0 X3N0b3JlX2R3KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCXJldHVybiBFUlJfUFRSKGVycik7CiB9 CiAKLWludCBpZ3RfZ3B1X2ZpbGxfZHcoc3RydWN0IGk5MTVfdm1hICp2bWEsCi0JCSAgICBzdHJ1 Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAotCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAotCQkgICAgdTY0IG9mZnNldCwKLQkJICAgIHVuc2lnbmVkIGxvbmcgY291bnQsCi0J CSAgICB1MzIgdmFsKQoraW50IGlndF9ncHVfZmlsbF9kdyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y2UsCisJCSAgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdTY0IG9mZnNldCwKKwkJICAgIHVuc2ln bmVkIGxvbmcgY291bnQsIHUzMiB2YWwpCiB7Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0gPSBjdHgtPnZtID86ICZlbmdpbmUtPmd0LT5nZ3R0LT52bTsKIAlzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpycTsKIAlzdHJ1Y3QgaTkxNV92bWEgKmJhdGNoOwogCXVuc2lnbmVkIGludCBmbGFnczsK IAlpbnQgZXJyOwogCi0JR0VNX0JVR19PTih2bWEtPnNpemUgPiB2bS0+dG90YWwpOwotCUdFTV9C VUdfT04oIWludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQoZW5naW5lKSk7CisJR0VNX0JVR19P TighaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChjZS0+ZW5naW5lKSk7CiAJR0VNX0JVR19P TighaTkxNV92bWFfaXNfcGlubmVkKHZtYSkpOwogCiAJYmF0Y2ggPSBpZ3RfZW1pdF9zdG9yZV9k dyh2bWEsIG9mZnNldCwgY291bnQsIHZhbCk7CiAJaWYgKElTX0VSUihiYXRjaCkpCiAJCXJldHVy biBQVFJfRVJSKGJhdGNoKTsKIAotCXJxID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4LCBlbmdpbmUp OworCXJxID0gaW50ZWxfY29udGV4dF9jcmVhdGVfcmVxdWVzdChjZSk7CiAJaWYgKElTX0VSUihy cSkpIHsKIAkJZXJyID0gUFRSX0VSUihycSk7CiAJCWdvdG8gZXJyX2JhdGNoOwogCX0KIAogCWZs YWdzID0gMDsKLQlpZiAoSU5URUxfR0VOKHZtLT5pOTE1KSA8PSA1KQorCWlmIChJTlRFTF9HRU4o Y2UtPnZtLT5pOTE1KSA8PSA1KQogCQlmbGFncyB8PSBJOTE1X0RJU1BBVENIX1NFQ1VSRTsKIAot CWVyciA9IGVuZ2luZS0+ZW1pdF9iYl9zdGFydChycSwKLQkJCQkgICAgYmF0Y2gtPm5vZGUuc3Rh cnQsIGJhdGNoLT5ub2RlLnNpemUsCi0JCQkJICAgIGZsYWdzKTsKKwllcnIgPSBycS0+ZW5naW5l LT5lbWl0X2JiX3N0YXJ0KHJxLAorCQkJCQliYXRjaC0+bm9kZS5zdGFydCwgYmF0Y2gtPm5vZGUu c2l6ZSwKKwkJCQkJZmxhZ3MpOwogCWlmIChlcnIpCiAJCWdvdG8gZXJyX3JlcXVlc3Q7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGls cy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmgK aW5kZXggMzYxYTdlZjg2NmIwLi40MjIxY2Y4NGQxNzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oCkBAIC0xMSw5ICsxMSwxMSBA QAogCiBzdHJ1Y3QgaTkxNV9yZXF1ZXN0Owogc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQ7Ci1zdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzOwogc3RydWN0IGk5MTVfdm1hOwogCitzdHJ1Y3QgaW50ZWxfY29u dGV4dDsKK3N0cnVjdCBpbnRlbF9lbmdpbmVfY3M7CisKIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgog aWd0X3JlcXVlc3RfYWxsb2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIApAQCAtMjMsMTEgKzI1LDggQEAgaWd0X2VtaXRfc3Rv cmVfZHcoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCSAgdW5zaWduZWQgbG9uZyBjb3VudCwKIAkJ ICB1MzIgdmFsKTsKIAotaW50IGlndF9ncHVfZmlsbF9kdyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSwK LQkJICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCi0JCSAgICBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCi0JCSAgICB1NjQgb2Zmc2V0LAotCQkgICAgdW5zaWduZWQgbG9u ZyBjb3VudCwKLQkJICAgIHUzMiB2YWwpOworaW50IGlndF9ncHVfZmlsbF9kdyhzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY2UsCisJCSAgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdTY0IG9mZnNldCwK KwkJICAgIHVuc2lnbmVkIGxvbmcgY291bnQsIHUzMiB2YWwpOwogCiAjZW5kaWYgLyogX19JR1Rf R0VNX1VUSUxTX0hfXyAqLwotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=