From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 2/4] drm/amdgpu: separate page table allocation from mapping Date: Mon, 13 Mar 2017 10:13:37 +0100 Message-ID: <1489396419-7564-2-git-send-email-deathsimple@vodafone.de> References: <1489396419-7564-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1489396419-7564-1-git-send-email-deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKVGhpcyBt YWtlcyBpdCBlYXNpZXIgdG8gaW1wbGVtZW50IGEgcmVwbGFjZSBvcGVyYXRpb24uCgpTaWduZWQt b2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jICB8ICAgNiArLQogZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYyB8ICAgOSArKwogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgICB8IDEzNiArKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCAgIHwgICAz ICsKIDQgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCmluZGV4IGJhOTA3N2IuLmYzYmY4 NjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKQEAgLTYzMyw4ICs2 MzMsMTIgQEAgaW50IGFtZGdwdV9nZW1fdmFfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKIAogCXN3aXRjaCAoYXJncy0+b3BlcmF0aW9uKSB7CiAJY2FzZSBBTURHUFVf VkFfT1BfTUFQOgotCQl2YV9mbGFncyA9IGFtZGdwdV92bV9nZXRfcHRlX2ZsYWdzKGFkZXYsIGFy Z3MtPmZsYWdzKTsKKwkJciA9IGFtZGdwdV92bV9hbGxvY19wdHMoYWRldiwgYm9fdmEtPnZtLCBh cmdzLT52YV9hZGRyZXNzLAorCQkJCQlhcmdzLT5tYXBfc2l6ZSk7CisJCWlmIChyKQorCQkJZ290 byBlcnJvcl9iYWNrb2ZmOwogCisJCXZhX2ZsYWdzID0gYW1kZ3B1X3ZtX2dldF9wdGVfZmxhZ3Mo YWRldiwgYXJncy0+ZmxhZ3MpOwogCQlyID0gYW1kZ3B1X3ZtX2JvX21hcChhZGV2LCBib192YSwg YXJncy0+dmFfYWRkcmVzcywKIAkJCQkgICAgIGFyZ3MtPm9mZnNldF9pbl9ibywgYXJncy0+bWFw X3NpemUsCiAJCQkJICAgICB2YV9mbGFncyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdmlydC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZpcnQuYwppbmRleCAyMGI0ZmE2Li4zMWIzMGU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92aXJ0LmMKQEAgLTc1LDYgKzc1LDE1IEBAIGludCBhbWRncHVfbWFwX3N0 YXRpY19jc2Eoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZt KQogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKKwlyID0gYW1kZ3B1X3ZtX2FsbG9jX3B0cyhhZGV2 LCBib192YS0+dm0sIEFNREdQVV9DU0FfVkFERFIsCisJCQkJICAgQU1ER1BVX0NTQV9TSVpFKTsK KwlpZiAocikgeworCQlEUk1fRVJST1IoImZhaWxlZCB0byBhbGxvY2F0ZSBwdHMgZm9yIHN0YXRp YyBDU0EsIGVycj0lZFxuIiwgcik7CisJCWFtZGdwdV92bV9ib19ybXYoYWRldiwgYm9fdmEpOwor CQl0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbigmdGlja2V0LCAmbGlzdCk7CisJCXJldHVybiBy OworCX0KKwogCXIgPSBhbWRncHVfdm1fYm9fbWFwKGFkZXYsIGJvX3ZhLCBBTURHUFVfQ1NBX1ZB RERSLCAwLEFNREdQVV9DU0FfU0laRSwKIAkJCQkJCUFNREdQVV9QVEVfUkVBREFCTEUgfCBBTURH UFVfUFRFX1dSSVRFQUJMRSB8CiAJCQkJCQlBTURHUFVfUFRFX0VYRUNVVEFCTEUpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwppbmRleCAwZDcwMGZjLi43NjM4MjcxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwpAQCAtMTg3LDYgKzE4Nyw3OCBAQCB2 b2lkIGFtZGdwdV92bV9tb3ZlX3B0X2Jvc19pbl9scnUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCiAJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKIH0KIAorLyoqCisgKiBhbWRncHVf dm1fYWxsb2NfcHRzIC0gQWxsb2NhdGUgcGFnZSB0YWJsZXMuCisgKgorICogQGFkZXY6IGFtZGdw dV9kZXZpY2UgcG9pbnRlcgorICogQHZtOiBWTSB0byBhbGxvY2F0ZSBwYWdlIHRhYmxlcyBmb3IK KyAqIEBzYWRkcjogU3RhcnQgYWRkcmVzcyB3aGljaCBuZWVkcyB0byBiZSBhbGxvY2F0ZWQKKyAq IEBzaXplOiBTaXplIGZyb20gc3RhcnQgYWRkcmVzcyB3ZSBuZWVkLgorICoKKyAqIE1ha2Ugc3Vy ZSB0aGUgcGFnZSB0YWJsZXMgYXJlIGFsbG9jYXRlZC4KKyAqLworaW50IGFtZGdwdV92bV9hbGxv Y19wdHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQlzdHJ1Y3QgYW1kZ3B1X3ZtICp2 bSwKKwkJCXVpbnQ2NF90IHNhZGRyLCB1aW50NjRfdCBzaXplKQoreworCXVuc2lnbmVkIGxhc3Rf cGZuLCBwdF9pZHg7CisJdWludDY0X3QgZWFkZHI7CisJaW50IHI7CisKKwkvKiB2YWxpZGF0ZSB0 aGUgcGFyYW1ldGVycyAqLworCWlmIChzYWRkciAmIEFNREdQVV9HUFVfUEFHRV9NQVNLIHx8IHNp emUgJiBBTURHUFVfR1BVX1BBR0VfTUFTSykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwllYWRkciA9 IHNhZGRyICsgc2l6ZSAtIDE7CisJbGFzdF9wZm4gPSBlYWRkciAvIEFNREdQVV9HUFVfUEFHRV9T SVpFOworCWlmIChsYXN0X3BmbiA+PSBhZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4pIHsKKwkJZGV2 X2VycihhZGV2LT5kZXYsICJ2YSBhYm92ZSBsaW1pdCAoMHglMDhYID49IDB4JTA4WClcbiIsCisJ CQlsYXN0X3BmbiwgYWRldi0+dm1fbWFuYWdlci5tYXhfcGZuKTsKKwkJcmV0dXJuIC1FSU5WQUw7 CisJfQorCisJc2FkZHIgLz0gQU1ER1BVX0dQVV9QQUdFX1NJWkU7CisJZWFkZHIgLz0gQU1ER1BV X0dQVV9QQUdFX1NJWkU7CisKKwlzYWRkciA+Pj0gYW1kZ3B1X3ZtX2Jsb2NrX3NpemU7CisJZWFk ZHIgPj49IGFtZGdwdV92bV9ibG9ja19zaXplOworCisJQlVHX09OKGVhZGRyID49IGFtZGdwdV92 bV9udW1fcGRlcyhhZGV2KSk7CisKKwlpZiAoZWFkZHIgPiB2bS0+bWF4X3BkZV91c2VkKQorCQl2 bS0+bWF4X3BkZV91c2VkID0gZWFkZHI7CisKKwkvKiB3YWxrIG92ZXIgdGhlIGFkZHJlc3Mgc3Bh Y2UgYW5kIGFsbG9jYXRlIHRoZSBwYWdlIHRhYmxlcyAqLworCWZvciAocHRfaWR4ID0gc2FkZHI7 IHB0X2lkeCA8PSBlYWRkcjsgKytwdF9pZHgpIHsKKwkJc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqcmVzdiA9IHZtLT5wYWdlX2RpcmVjdG9yeS0+dGJvLnJlc3Y7CisJCXN0cnVjdCBhbWRncHVf Ym8gKnB0OworCisJCWlmICh2bS0+cGFnZV90YWJsZXNbcHRfaWR4XS5ibykKKwkJCWNvbnRpbnVl OworCisJCXIgPSBhbWRncHVfYm9fY3JlYXRlKGFkZXYsIEFNREdQVV9WTV9QVEVfQ09VTlQgKiA4 LAorCQkJCSAgICAgQU1ER1BVX0dQVV9QQUdFX1NJWkUsIHRydWUsCisJCQkJICAgICBBTURHUFVf R0VNX0RPTUFJTl9WUkFNLAorCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfTk9fQ1BVX0FDQ0VT UyB8CisJCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9TSEFET1cgfAorCQkJCSAgICAgQU1ER1BV X0dFTV9DUkVBVEVfVlJBTV9DT05USUdVT1VTIHwKKwkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRF X1ZSQU1fQ0xFQVJFRCwKKwkJCQkgICAgIE5VTEwsIHJlc3YsICZwdCk7CisJCWlmIChyKQorCQkJ cmV0dXJuIHI7CisKKwkJLyogS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgcGFnZSB0YWJsZSB0byBh dm9pZCBmcmVlaW5nCisJCSAqIHRoZW0gdXAgaW4gdGhlIHdyb25nIG9yZGVyLgorCQkgKi8KKwkJ cHQtPnBhcmVudCA9IGFtZGdwdV9ib19yZWYodm0tPnBhZ2VfZGlyZWN0b3J5KTsKKworCQl2bS0+ cGFnZV90YWJsZXNbcHRfaWR4XS5ibyA9IHB0OworCQl2bS0+cGFnZV90YWJsZXNbcHRfaWR4XS5h ZGRyID0gMDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGJvb2wgYW1kZ3B1X3ZtX2lz X2dwdV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCSAgICAgIHN0cnVjdCBh bWRncHVfdm1faWQgKmlkKQogewpAQCAtMTQ0Miw5ICsxNTE0LDcgQEAgaW50IGFtZGdwdV92bV9i b19tYXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJc3RydWN0IGFtZGdwdV9ib192YV9t YXBwaW5nICptYXBwaW5nOwogCXN0cnVjdCBhbWRncHVfdm0gKnZtID0gYm9fdmEtPnZtOwogCXN0 cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgKml0OwotCXVuc2lnbmVkIGxhc3RfcGZuLCBwdF9pZHg7 CiAJdWludDY0X3QgZWFkZHI7Ci0JaW50IHI7CiAKIAkvKiB2YWxpZGF0ZSB0aGUgcGFyYW1ldGVy cyAqLwogCWlmIChzYWRkciAmIEFNREdQVV9HUFVfUEFHRV9NQVNLIHx8IG9mZnNldCAmIEFNREdQ VV9HUFVfUEFHRV9NQVNLIHx8CkBAIC0xNDU3LDEzICsxNTI3LDYgQEAgaW50IGFtZGdwdV92bV9i b19tYXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJICAgIChib192YS0+Ym8gJiYgb2Zm c2V0ICsgc2l6ZSA+IGFtZGdwdV9ib19zaXplKGJvX3ZhLT5ibykpKQogCQlyZXR1cm4gLUVJTlZB TDsKIAotCWxhc3RfcGZuID0gZWFkZHIgLyBBTURHUFVfR1BVX1BBR0VfU0laRTsKLQlpZiAobGFz dF9wZm4gPj0gYWRldi0+dm1fbWFuYWdlci5tYXhfcGZuKSB7Ci0JCWRldl9lcnIoYWRldi0+ZGV2 LCAidmEgYWJvdmUgbGltaXQgKDB4JTA4WCA+PSAweCUwOFgpXG4iLAotCQkJbGFzdF9wZm4sIGFk ZXYtPnZtX21hbmFnZXIubWF4X3Bmbik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCXNhZGRy IC89IEFNREdQVV9HUFVfUEFHRV9TSVpFOwogCWVhZGRyIC89IEFNREdQVV9HUFVfUEFHRV9TSVpF OwogCkBAIC0xNDc1LDE1ICsxNTM4LDEyIEBAIGludCBhbWRncHVfdm1fYm9fbWFwKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAogCQlkZXZfZXJyKGFkZXYtPmRldiwgImJvICVwIHZhIDB4JTAx MEx4LTB4JTAxMEx4IGNvbmZsaWN0IHdpdGggIgogCQkJIjB4JTAxMGx4LTB4JTAxMGx4XG4iLCBi b192YS0+Ym8sIHNhZGRyLCBlYWRkciwKIAkJCXRtcC0+aXQuc3RhcnQsIHRtcC0+aXQubGFzdCAr IDEpOwotCQlyID0gLUVJTlZBTDsKLQkJZ290byBlcnJvcjsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJ fQogCiAJbWFwcGluZyA9IGttYWxsb2Moc2l6ZW9mKCptYXBwaW5nKSwgR0ZQX0tFUk5FTCk7Ci0J aWYgKCFtYXBwaW5nKSB7Ci0JCXIgPSAtRU5PTUVNOwotCQlnb3RvIGVycm9yOwotCX0KKwlpZiAo IW1hcHBpbmcpCisJCXJldHVybiAtRU5PTUVNOwogCiAJSU5JVF9MSVNUX0hFQUQoJm1hcHBpbmct Pmxpc3QpOwogCW1hcHBpbmctPml0LnN0YXJ0ID0gc2FkZHI7CkBAIC0xNDk0LDU2ICsxNTU0LDEw IEBAIGludCBhbWRncHVfdm1fYm9fbWFwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWxp c3RfYWRkKCZtYXBwaW5nLT5saXN0LCAmYm9fdmEtPmludmFsaWRzKTsKIAlpbnRlcnZhbF90cmVl X2luc2VydCgmbWFwcGluZy0+aXQsICZ2bS0+dmEpOwogCi0JLyogTWFrZSBzdXJlIHRoZSBwYWdl IHRhYmxlcyBhcmUgYWxsb2NhdGVkICovCi0Jc2FkZHIgPj49IGFtZGdwdV92bV9ibG9ja19zaXpl OwotCWVhZGRyID4+PSBhbWRncHVfdm1fYmxvY2tfc2l6ZTsKLQotCUJVR19PTihlYWRkciA+PSBh bWRncHVfdm1fbnVtX3BkZXMoYWRldikpOwotCi0JaWYgKGVhZGRyID4gdm0tPm1heF9wZGVfdXNl ZCkKLQkJdm0tPm1heF9wZGVfdXNlZCA9IGVhZGRyOwotCi0JLyogd2FsayBvdmVyIHRoZSBhZGRy ZXNzIHNwYWNlIGFuZCBhbGxvY2F0ZSB0aGUgcGFnZSB0YWJsZXMgKi8KLQlmb3IgKHB0X2lkeCA9 IHNhZGRyOyBwdF9pZHggPD0gZWFkZHI7ICsrcHRfaWR4KSB7Ci0JCXN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKnJlc3YgPSB2bS0+cGFnZV9kaXJlY3RvcnktPnRiby5yZXN2OwotCQlzdHJ1Y3Qg YW1kZ3B1X2JvICpwdDsKLQotCQlpZiAodm0tPnBhZ2VfdGFibGVzW3B0X2lkeF0uYm8pCi0JCQlj b250aW51ZTsKLQotCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LCBBTURHUFVfVk1fUFRFX0NP VU5UICogOCwKLQkJCQkgICAgIEFNREdQVV9HUFVfUEFHRV9TSVpFLCB0cnVlLAotCQkJCSAgICAg QU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKLQkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX05PX0NQ VV9BQ0NFU1MgfAotCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfU0hBRE9XIHwKLQkJCQkgICAg IEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09OVElHVU9VUyB8Ci0JCQkJICAgICBBTURHUFVfR0VN X0NSRUFURV9WUkFNX0NMRUFSRUQsCi0JCQkJICAgICBOVUxMLCByZXN2LCAmcHQpOwotCQlpZiAo cikKLQkJCWdvdG8gZXJyb3JfZnJlZTsKLQotCQkvKiBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBw YWdlIHRhYmxlIHRvIGF2b2lkIGZyZWVpbmcKLQkJICogdGhlbSB1cCBpbiB0aGUgd3Jvbmcgb3Jk ZXIuCi0JCSAqLwotCQlwdC0+cGFyZW50ID0gYW1kZ3B1X2JvX3JlZih2bS0+cGFnZV9kaXJlY3Rv cnkpOwotCi0JCXZtLT5wYWdlX3RhYmxlc1twdF9pZHhdLmJvID0gcHQ7Ci0JCXZtLT5wYWdlX3Rh Ymxlc1twdF9pZHhdLmFkZHIgPSAwOwotCX0KLQogCWlmIChmbGFncyAmIEFNREdQVV9QVEVfUFJU KQogCQlhbWRncHVfdm1fcHJ0X2dldChhZGV2KTsKIAogCXJldHVybiAwOwotCi1lcnJvcl9mcmVl OgotCWxpc3RfZGVsKCZtYXBwaW5nLT5saXN0KTsKLQlpbnRlcnZhbF90cmVlX3JlbW92ZSgmbWFw cGluZy0+aXQsICZ2bS0+dmEpOwotCXRyYWNlX2FtZGdwdV92bV9ib191bm1hcChib192YSwgbWFw cGluZyk7Ci0JYW1kZ3B1X3ZtX2ZyZWVfbWFwcGluZyhhZGV2LCB2bSwgbWFwcGluZywgTlVMTCk7 Ci0KLWVycm9yOgotCXJldHVybiByOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmgKaW5kZXggOGU1YWJkMi4uMzZjYTNiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZtLmgKQEAgLTE3OSw2ICsxNzksOSBAQCBpbnQgYW1kZ3B1X3ZtX3ZhbGlk YXRlX3B0X2JvcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAq dm0sCiAJCQkgICAgICB2b2lkICpwYXJhbSk7CiB2b2lkIGFtZGdwdV92bV9tb3ZlX3B0X2Jvc19p bl9scnUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJICBzdHJ1Y3QgYW1kZ3B1X3Zt ICp2bSk7CitpbnQgYW1kZ3B1X3ZtX2FsbG9jX3B0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKKwkJCXN0cnVjdCBhbWRncHVfdm0gKnZtLAorCQkJdWludDY0X3Qgc2FkZHIsIHVpbnQ2NF90 IHNpemUpOwogaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJCSAgICAgIHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywg c3RydWN0IGZlbmNlICpmZW5jZSwKIAkJICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYik7Ci0t IAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K YW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==