From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 06/21] drm/i915: introduce vm set_pages/clear_pages Date: Tue, 25 Jul 2017 20:21:18 +0100 Message-ID: <20170725192133.2012-7-matthew.auld@intel.com> References: <20170725192133.2012-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C2B4D6E3DF for ; Tue, 25 Jul 2017 19:22:04 +0000 (UTC) In-Reply-To: <20170725192133.2012-1-matthew.auld@intel.com> 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 TW92ZSB0aGUgc2V0dGluZy9jbGVhcmluZyBvZiB0aGUgdm1hLT5wYWdlcyB0byBhIHZtIG9wZXJh dGlvbi4gRG9pbmcgc28KbmVhdGVucyB0aGluZ3MgdXAgYSBsaXR0bGUsIGJ1dCBtb3JlIGltcG9y dGFudGx5IGdpdmVzIHVzIGEgc2FuZSBwbGFjZQp0byBhbHNvIHNldC9jbGVhciB0aGUgdm1hLT5w YWdlc19zaXplcywgd2hpY2ggd2UgaW50cm9kdWNlIGxhdGVyIGluCnByZXBhcmF0aW9uIGZvciBz dXBwb3J0aW5nIGh1Z2UtcGFnZXMuCgpTdWdnZXN0ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcu YXVsZEBpbnRlbC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51 eC5pbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICB8IDcwICsrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5oICAgICAgIHwgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyAgICAg ICAgICAgfCAyOSArKysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv bW9ja19ndHQuYyB8IDExICsrLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyks IDQ2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggMTBh YTc3NjJkOWE2Li4wZDBiNTI5Yzc3YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j CkBAIC0yMDAsOCArMjAwLDYgQEAgc3RhdGljIGludCBwcGd0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkx NV92bWEgKnZtYSwKIAkJCXJldHVybiByZXQ7CiAJfQogCi0Jdm1hLT5wYWdlcyA9IHZtYS0+b2Jq LT5tbS5wYWdlczsKLQogCS8qIEN1cnJlbnRseSBhcHBsaWNhYmxlIG9ubHkgdG8gVkxWICovCiAJ cHRlX2ZsYWdzID0gMDsKIAlpZiAodm1hLT5vYmotPmd0X3JvKQpAQCAtMjE3LDYgKzIxNSwyNiBA QCBzdGF0aWMgdm9pZCBwcGd0dF91bmJpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCXZt YS0+dm0tPmNsZWFyX3JhbmdlKHZtYS0+dm0sIHZtYS0+bm9kZS5zdGFydCwgdm1hLT5zaXplKTsK IH0KIAorc3RhdGljIGludCBwcGd0dF9zZXRfcGFnZXMoc3RydWN0IGk5MTVfdm1hICp2bWEpCit7 CisJR0VNX0JVR19PTih2bWEtPnBhZ2VzKTsKKworCXZtYS0+cGFnZXMgPSB2bWEtPm9iai0+bW0u cGFnZXM7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2xlYXJfcGFnZXMoc3RydWN0 IGk5MTVfdm1hICp2bWEpCit7CisJR0VNX0JVR19PTighdm1hLT5wYWdlcyk7CisKKwlpZiAodm1h LT5wYWdlcyAhPSB2bWEtPm9iai0+bW0ucGFnZXMpIHsKKwkJc2dfZnJlZV90YWJsZSh2bWEtPnBh Z2VzKTsKKwkJa2ZyZWUodm1hLT5wYWdlcyk7CisJfQorCXZtYS0+cGFnZXMgPSBOVUxMOworfQor CiBzdGF0aWMgZ2VuOF9wdGVfdCBnZW44X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAogCQkJ CSAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGxldmVsKQogewpAQCAtMTM4MCw2ICsxMzk4LDggQEAg c3RhdGljIGludCBnZW44X3BwZ3R0X2luaXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQog CXBwZ3R0LT5iYXNlLmNsZWFudXAgPSBnZW44X3BwZ3R0X2NsZWFudXA7CiAJcHBndHQtPmJhc2Uu dW5iaW5kX3ZtYSA9IHBwZ3R0X3VuYmluZF92bWE7CiAJcHBndHQtPmJhc2UuYmluZF92bWEgPSBw cGd0dF9iaW5kX3ZtYTsKKwlwcGd0dC0+YmFzZS5zZXRfcGFnZXMgPSBwcGd0dF9zZXRfcGFnZXM7 CisJcHBndHQtPmJhc2UuY2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKIAlwcGd0dC0+ZGVidWdf ZHVtcCA9IGdlbjhfZHVtcF9wcGd0dDsKIAogCXJldHVybiAwOwpAQCAtMTgyMiw2ICsxODQyLDgg QEAgc3RhdGljIGludCBnZW42X3BwZ3R0X2luaXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0 KQogCXBwZ3R0LT5iYXNlLmluc2VydF9lbnRyaWVzID0gZ2VuNl9wcGd0dF9pbnNlcnRfZW50cmll czsKIAlwcGd0dC0+YmFzZS51bmJpbmRfdm1hID0gcHBndHRfdW5iaW5kX3ZtYTsKIAlwcGd0dC0+ YmFzZS5iaW5kX3ZtYSA9IHBwZ3R0X2JpbmRfdm1hOworCXBwZ3R0LT5iYXNlLnNldF9wYWdlcyA9 IHBwZ3R0X3NldF9wYWdlczsKKwlwcGd0dC0+YmFzZS5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2Vz OwogCXBwZ3R0LT5iYXNlLmNsZWFudXAgPSBnZW42X3BwZ3R0X2NsZWFudXA7CiAJcHBndHQtPmRl YnVnX2R1bXAgPSBnZW42X2R1bXBfcHBndHQ7CiAKQEAgLTIzMzMsMTIgKzIzNTUsNiBAQCBzdGF0 aWMgaW50IGdndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwogCXUzMiBwdGVfZmxhZ3M7CiAKLQlpZiAo dW5saWtlbHkoIXZtYS0+cGFnZXMpKSB7Ci0JCWludCByZXQgPSBpOTE1X2dldF9nZ3R0X3ZtYV9w YWdlcyh2bWEpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KIAkvKiBDdXJyZW50 bHkgYXBwbGljYWJsZSBvbmx5IHRvIFZMViAqLwogCXB0ZV9mbGFncyA9IDA7CiAJaWYgKG9iai0+ Z3Rfcm8pCkBAIC0yMzc1LDEyICsyMzkxLDYgQEAgc3RhdGljIGludCBhbGlhc2luZ19ndHRfYmlu ZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJdTMyIHB0ZV9mbGFnczsKIAlpbnQgcmV0Owog Ci0JaWYgKHVubGlrZWx5KCF2bWEtPnBhZ2VzKSkgewotCQlyZXQgPSBpOTE1X2dldF9nZ3R0X3Zt YV9wYWdlcyh2bWEpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KIAkvKiBDdXJy ZW50bHkgYXBwbGljYWJsZSBvbmx5IHRvIFZMViAqLwogCXB0ZV9mbGFncyA9IDA7CiAJaWYgKHZt YS0+b2JqLT5ndF9ybykKQEAgLTIzOTUsNyArMjQwNSw3IEBAIHN0YXRpYyBpbnQgYWxpYXNpbmdf Z3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCQkJCQkJCSAgICAgdm1hLT5ub2Rl LnN0YXJ0LAogCQkJCQkJCSAgICAgdm1hLT5zaXplKTsKIAkJCWlmIChyZXQpCi0JCQkJZ290byBl cnJfcGFnZXM7CisJCQkJcmV0dXJuIHJldDsKIAkJfQogCiAJCWFwcGd0dC0+YmFzZS5pbnNlcnRf ZW50cmllcygmYXBwZ3R0LT5iYXNlLCB2bWEsIGNhY2hlX2xldmVsLApAQCAtMjQwOSwxNyArMjQx OSw2IEBAIHN0YXRpYyBpbnQgYWxpYXNpbmdfZ3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAq dm1hLAogCX0KIAogCXJldHVybiAwOwotCi1lcnJfcGFnZXM6Ci0JaWYgKCEodm1hLT5mbGFncyAm IChJOTE1X1ZNQV9HTE9CQUxfQklORCB8IEk5MTVfVk1BX0xPQ0FMX0JJTkQpKSkgewotCQlpZiAo dm1hLT5wYWdlcyAhPSB2bWEtPm9iai0+bW0ucGFnZXMpIHsKLQkJCUdFTV9CVUdfT04oIXZtYS0+ cGFnZXMpOwotCQkJc2dfZnJlZV90YWJsZSh2bWEtPnBhZ2VzKTsKLQkJCWtmcmVlKHZtYS0+cGFn ZXMpOwotCQl9Ci0JCXZtYS0+cGFnZXMgPSBOVUxMOwotCX0KLQlyZXR1cm4gcmV0OwogfQogCiBz dGF0aWMgdm9pZCBhbGlhc2luZ19ndHRfdW5iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkK QEAgLTI0NTcsNiArMjQ1NiwxOSBAQCB2b2lkIGk5MTVfZ2VtX2d0dF9maW5pc2hfcGFnZXMoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlkbWFfdW5tYXBfc2coa2RldiwgcGFnZXMt PnNnbCwgcGFnZXMtPm5lbnRzLCBQQ0lfRE1BX0JJRElSRUNUSU9OQUwpOwogfQogCitzdGF0aWMg aW50IGdndHRfc2V0X3BhZ2VzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQoreworCWludCByZXQ7CisK KwlHRU1fQlVHX09OKHZtYS0+cGFnZXMpOworCisJcmV0ID0gaTkxNV9nZXRfZ2d0dF92bWFfcGFn ZXModm1hKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7Cit9CisKIHN0 YXRpYyB2b2lkIGk5MTVfZ3R0X2NvbG9yX2FkanVzdChjb25zdCBzdHJ1Y3QgZHJtX21tX25vZGUg Km5vZGUsCiAJCQkJICB1bnNpZ25lZCBsb25nIGNvbG9yLAogCQkJCSAgdTY0ICpzdGFydCwKQEAg LTI4NTksNiArMjg3MSw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1 X2dndHQgKmdndHQpCiAJZ2d0dC0+YmFzZS5jbGVhbnVwID0gZ2VuNl9nbWNoX3JlbW92ZTsKIAln Z3R0LT5iYXNlLmJpbmRfdm1hID0gZ2d0dF9iaW5kX3ZtYTsKIAlnZ3R0LT5iYXNlLnVuYmluZF92 bWEgPSBnZ3R0X3VuYmluZF92bWE7CisJZ2d0dC0+YmFzZS5zZXRfcGFnZXMgPSBnZ3R0X3NldF9w YWdlczsKKwlnZ3R0LT5iYXNlLmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7CiAJZ2d0dC0+YmFz ZS5pbnNlcnRfcGFnZSA9IGdlbjhfZ2d0dF9pbnNlcnRfcGFnZTsKIAlnZ3R0LT5iYXNlLmNsZWFy X3JhbmdlID0gbm9wX2NsZWFyX3JhbmdlOwogCWlmICghVVNFU19GVUxMX1BQR1RUKGRldl9wcml2 KSB8fCBpbnRlbF9zY2Fub3V0X25lZWRzX3Z0ZF93YShkZXZfcHJpdikpCkBAIC0yOTE1LDYgKzI5 MjksOCBAQCBzdGF0aWMgaW50IGdlbjZfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0 KQogCWdndHQtPmJhc2UuaW5zZXJ0X2VudHJpZXMgPSBnZW42X2dndHRfaW5zZXJ0X2VudHJpZXM7 CiAJZ2d0dC0+YmFzZS5iaW5kX3ZtYSA9IGdndHRfYmluZF92bWE7CiAJZ2d0dC0+YmFzZS51bmJp bmRfdm1hID0gZ2d0dF91bmJpbmRfdm1hOworCWdndHQtPmJhc2Uuc2V0X3BhZ2VzID0gZ2d0dF9z ZXRfcGFnZXM7CisJZ2d0dC0+YmFzZS5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwogCWdndHQt PmJhc2UuY2xlYW51cCA9IGdlbjZfZ21jaF9yZW1vdmU7CiAKIAlnZ3R0LT5pbnZhbGlkYXRlID0g Z2VuNl9nZ3R0X2ludmFsaWRhdGU7CkBAIC0yOTYwLDYgKzI5NzYsOCBAQCBzdGF0aWMgaW50IGk5 MTVfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCWdndHQtPmJhc2UuY2xlYXJf cmFuZ2UgPSBpOTE1X2dndHRfY2xlYXJfcmFuZ2U7CiAJZ2d0dC0+YmFzZS5iaW5kX3ZtYSA9IGdn dHRfYmluZF92bWE7CiAJZ2d0dC0+YmFzZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRfdm1hOwor CWdndHQtPmJhc2Uuc2V0X3BhZ2VzID0gZ2d0dF9zZXRfcGFnZXM7CisJZ2d0dC0+YmFzZS5jbGVh cl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwogCWdndHQtPmJhc2UuY2xlYW51cCA9IGk5MTVfZ21jaF9y ZW1vdmU7CiAKIAlnZ3R0LT5pbnZhbGlkYXRlID0gZ21jaF9nZ3R0X2ludmFsaWRhdGU7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCmluZGV4IDRjMmY3ZDdjMWU3ZC4uNTc3MzhhNjFlYTZl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaApAQCAtMzMwLDYgKzMzMCw4IEBAIHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgewogCWludCAoKmJpbmRfdm1hKShzdHJ1Y3QgaTkxNV92 bWEgKnZtYSwKIAkJCWVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKIAkJCXUzMiBm bGFncyk7CisJaW50ICgqc2V0X3BhZ2VzKShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7CisJdm9pZCAo KmNsZWFyX3BhZ2VzKShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7CiAKIAlJOTE1X1NFTEZURVNUX0RF Q0xBUkUoc3RydWN0IGZhdWx0X2F0dHIgZmF1bHRfYXR0cik7CiB9OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dm1hLmMKaW5kZXggOTU4YmUwYTk1OTYwLi5jOGQxYjk4Y2MyNjAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV92bWEuYwpAQCAtMjY2LDYgKzI2Niw4IEBAIGludCBpOTE1X3ZtYV9iaW5kKHN0cnVjdCBpOTE1 X3ZtYSAqdm1hLCBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCiAJaWYgKGJpbmRf ZmxhZ3MgPT0gMCkKIAkJcmV0dXJuIDA7CiAKKwlHRU1fQlVHX09OKCF2bWEtPnBhZ2VzKTsKKwog CXRyYWNlX2k5MTVfdm1hX2JpbmQodm1hLCBiaW5kX2ZsYWdzKTsKIAlyZXQgPSB2bWEtPnZtLT5i aW5kX3ZtYSh2bWEsIGNhY2hlX2xldmVsLCBiaW5kX2ZsYWdzKTsKIAlpZiAocmV0KQpAQCAtNDcx LDI1ICs0NzMsMzEgQEAgaTkxNV92bWFfaW5zZXJ0KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1NjQg c2l6ZSwgdTY0IGFsaWdubWVudCwgdTY0IGZsYWdzKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7 CiAKKwlpZiAoIXZtYS0+cGFnZXMpIHsKKwkJcmV0ID0gdm1hLT52bS0+c2V0X3BhZ2VzKHZtYSk7 CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl91bnBpbjsKKwl9CisKIAlpZiAoZmxhZ3MgJiBQSU5f T0ZGU0VUX0ZJWEVEKSB7CiAJCXU2NCBvZmZzZXQgPSBmbGFncyAmIFBJTl9PRkZTRVRfTUFTSzsK IAkJaWYgKCFJU19BTElHTkVEKG9mZnNldCwgYWxpZ25tZW50KSB8fAogCQkgICAgcmFuZ2Vfb3Zl cmZsb3dzKG9mZnNldCwgc2l6ZSwgZW5kKSkgewogCQkJcmV0ID0gLUVJTlZBTDsKLQkJCWdvdG8g ZXJyX3VucGluOworCQkJZ290byBlcnJfY2xlYXI7CiAJCX0KIAogCQlyZXQgPSBpOTE1X2dlbV9n dHRfcmVzZXJ2ZSh2bWEtPnZtLCAmdm1hLT5ub2RlLAogCQkJCQkgICBzaXplLCBvZmZzZXQsIG9i ai0+Y2FjaGVfbGV2ZWwsCiAJCQkJCSAgIGZsYWdzKTsKIAkJaWYgKHJldCkKLQkJCWdvdG8gZXJy X3VucGluOworCQkJZ290byBlcnJfY2xlYXI7CiAJfSBlbHNlIHsKIAkJcmV0ID0gaTkxNV9nZW1f Z3R0X2luc2VydCh2bWEtPnZtLCAmdm1hLT5ub2RlLAogCQkJCQkgIHNpemUsIGFsaWdubWVudCwg b2JqLT5jYWNoZV9sZXZlbCwKIAkJCQkJICBzdGFydCwgZW5kLCBmbGFncyk7CiAJCWlmIChyZXQp Ci0JCQlnb3RvIGVycl91bnBpbjsKKwkJCWdvdG8gZXJyX2NsZWFyOwogCiAJCUdFTV9CVUdfT04o dm1hLT5ub2RlLnN0YXJ0IDwgc3RhcnQpOwogCQlHRU1fQlVHX09OKHZtYS0+bm9kZS5zdGFydCAr IHZtYS0+bm9kZS5zaXplID4gZW5kKTsKQEAgLTUwNCw2ICs1MTIsOCBAQCBpOTE1X3ZtYV9pbnNl cnQoc3RydWN0IGk5MTVfdm1hICp2bWEsIHU2NCBzaXplLCB1NjQgYWxpZ25tZW50LCB1NjQgZmxh Z3MpCiAKIAlyZXR1cm4gMDsKIAorZXJyX2NsZWFyOgorCXZtYS0+dm0tPmNsZWFyX3BhZ2VzKHZt YSk7CiBlcnJfdW5waW46CiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CiAJcmV0 dXJuIHJldDsKQEAgLTUxNyw2ICs1MjcsOCBAQCBpOTE1X3ZtYV9yZW1vdmUoc3RydWN0IGk5MTVf dm1hICp2bWEpCiAJR0VNX0JVR19PTighZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUp KTsKIAlHRU1fQlVHX09OKHZtYS0+ZmxhZ3MgJiAoSTkxNV9WTUFfR0xPQkFMX0JJTkQgfCBJOTE1 X1ZNQV9MT0NBTF9CSU5EKSk7CiAKKwl2bWEtPnZtLT5jbGVhcl9wYWdlcyh2bWEpOworCiAJZHJt X21tX3JlbW92ZV9ub2RlKCZ2bWEtPm5vZGUpOwogCWxpc3RfbW92ZV90YWlsKCZ2bWEtPnZtX2xp bmssICZ2bWEtPnZtLT51bmJvdW5kX2xpc3QpOwogCkBAIC01NjgsMTAgKzU4MCw4IEBAIGludCBf X2k5MTVfdm1hX2RvX3BpbihzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAlyZXR1cm4gMDsKIAogZXJy X3JlbW92ZToKLQlpZiAoKGJvdW5kICYgSTkxNV9WTUFfQklORF9NQVNLKSA9PSAwKSB7Ci0JCUdF TV9CVUdfT04odm1hLT5wYWdlcyk7CisJaWYgKChib3VuZCAmIEk5MTVfVk1BX0JJTkRfTUFTSykg PT0gMCkKIAkJaTkxNV92bWFfcmVtb3ZlKHZtYSk7Ci0JfQogZXJyX3VucGluOgogCV9faTkxNV92 bWFfdW5waW4odm1hKTsKIAlyZXR1cm4gcmV0OwpAQCAtNzE3LDEzICs3MjcsNiBAQCBpbnQgaTkx NV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCX0KIAl2bWEtPmZsYWdzICY9IH4o STkxNV9WTUFfR0xPQkFMX0JJTkQgfCBJOTE1X1ZNQV9MT0NBTF9CSU5EKTsKIAotCWlmICh2bWEt PnBhZ2VzICE9IG9iai0+bW0ucGFnZXMpIHsKLQkJR0VNX0JVR19PTighdm1hLT5wYWdlcyk7Ci0J CXNnX2ZyZWVfdGFibGUodm1hLT5wYWdlcyk7Ci0JCWtmcmVlKHZtYS0+cGFnZXMpOwotCX0KLQl2 bWEtPnBhZ2VzID0gTlVMTDsKLQogCWk5MTVfdm1hX3JlbW92ZSh2bWEpOwogCiBkZXN0cm95Ogpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19ndHQuYwppbmRleCBmMjExOGNmNTM1 YTAuLjMzNmUxYWZiMjUwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL21vY2tfZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tf Z3R0LmMKQEAgLTQzLDcgKzQzLDYgQEAgc3RhdGljIGludCBtb2NrX2JpbmRfcHBndHQoc3RydWN0 IGk5MTVfdm1hICp2bWEsCiAJCQkgICB1MzIgZmxhZ3MpCiB7CiAJR0VNX0JVR19PTihmbGFncyAm IEk5MTVfVk1BX0dMT0JBTF9CSU5EKTsKLQl2bWEtPnBhZ2VzID0gdm1hLT5vYmotPm1tLnBhZ2Vz OwogCXZtYS0+ZmxhZ3MgfD0gSTkxNV9WTUFfTE9DQUxfQklORDsKIAlyZXR1cm4gMDsKIH0KQEAg LTg0LDYgKzgzLDggQEAgbW9ja19wcGd0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK IAlwcGd0dC0+YmFzZS5pbnNlcnRfZW50cmllcyA9IG1vY2tfaW5zZXJ0X2VudHJpZXM7CiAJcHBn dHQtPmJhc2UuYmluZF92bWEgPSBtb2NrX2JpbmRfcHBndHQ7CiAJcHBndHQtPmJhc2UudW5iaW5k X3ZtYSA9IG1vY2tfdW5iaW5kX3BwZ3R0OworCXBwZ3R0LT5iYXNlLnNldF9wYWdlcyA9IHBwZ3R0 X3NldF9wYWdlczsKKwlwcGd0dC0+YmFzZS5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwogCXBw Z3R0LT5iYXNlLmNsZWFudXAgPSBtb2NrX2NsZWFudXA7CiAKIAlyZXR1cm4gcHBndHQ7CkBAIC05 MywxMiArOTQsNiBAQCBzdGF0aWMgaW50IG1vY2tfYmluZF9nZ3R0KHN0cnVjdCBpOTE1X3ZtYSAq dm1hLAogCQkJICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCiAJCQkgIHUzMiBm bGFncykKIHsKLQlpbnQgZXJyOwotCi0JZXJyID0gaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXModm1h KTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOwotCiAJdm1hLT5mbGFncyB8PSBJOTE1X1ZNQV9H TE9CQUxfQklORCB8IEk5MTVfVk1BX0xPQ0FMX0JJTkQ7CiAJcmV0dXJuIDA7CiB9CkBAIC0xMjQs NiArMTE5LDggQEAgdm9pZCBtb2NrX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKIAlnZ3R0LT5iYXNlLmluc2VydF9lbnRyaWVzID0gbW9ja19pbnNlcnRfZW50cmllczsK IAlnZ3R0LT5iYXNlLmJpbmRfdm1hID0gbW9ja19iaW5kX2dndHQ7CiAJZ2d0dC0+YmFzZS51bmJp bmRfdm1hID0gbW9ja191bmJpbmRfZ2d0dDsKKwlnZ3R0LT5iYXNlLnNldF9wYWdlcyA9IGdndHRf c2V0X3BhZ2VzOworCWdndHQtPmJhc2UuY2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKIAlnZ3R0 LT5iYXNlLmNsZWFudXAgPSBtb2NrX2NsZWFudXA7CiAKIAlpOTE1X2FkZHJlc3Nfc3BhY2VfaW5p dCgmZ2d0dC0+YmFzZSwgaTkxNSwgImdsb2JhbCIpOwotLSAKMi4xMy4zCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK