From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 07/21] drm/i915: introduce vm set_pages/clear_pages Date: Fri, 6 Oct 2017 15:50:27 +0100 Message-ID: <20171006145041.21673-8-matthew.auld@intel.com> References: <20171006145041.21673-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id AFC7A6FA55 for ; Fri, 6 Oct 2017 14:50:55 +0000 (UTC) In-Reply-To: <20171006145041.21673-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 dXBwb3J0aW5nIGh1Z2UtcGFnZXMuCgp2MjogcmVtb3ZlIHJlZHVuZGFudCB2bWEtPnBhZ2VzIGNo ZWNrCgp2MzogR0VNX0JVR19PTih2bWEtPnBhZ2VzKSBmb2xsb3dpbmcgaTkxNV92bWFfcmVtb3Zl CgpTdWdnZXN0ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpT aWduZWQtb2ZmLWJ5OiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+CkNjOiBK b29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KUmV2aWV3ZWQtYnk6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRp bmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggICAgICAgfCAgMiAr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICB8IDI3ICsrKysrKyst LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMgfCAxMSArKy0t LQogNCBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDRjODJjZWI4ZDMxOC4uYzUzNGI3NGVl ZTMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMjA1LDggKzIwNSw2IEBA IHN0YXRpYyBpbnQgcHBndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQlyZXR1 cm4gcmV0OwogCX0KIAotCXZtYS0+cGFnZXMgPSB2bWEtPm9iai0+bW0ucGFnZXM7Ci0KIAkvKiBD dXJyZW50bHkgYXBwbGljYWJsZSBvbmx5IHRvIFZMViAqLwogCXB0ZV9mbGFncyA9IDA7CiAJaWYg KHZtYS0+b2JqLT5ndF9ybykKQEAgLTIyMiw2ICsyMjAsMjYgQEAgc3RhdGljIHZvaWQgcHBndHRf dW5iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAl2bWEtPnZtLT5jbGVhcl9yYW5nZSh2 bWEtPnZtLCB2bWEtPm5vZGUuc3RhcnQsIHZtYS0+c2l6ZSk7CiB9CiAKK3N0YXRpYyBpbnQgcHBn dHRfc2V0X3BhZ2VzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQoreworCUdFTV9CVUdfT04odm1hLT5w YWdlcyk7CisKKwl2bWEtPnBhZ2VzID0gdm1hLT5vYmotPm1tLnBhZ2VzOworCisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFyX3BhZ2VzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQorewor CUdFTV9CVUdfT04oIXZtYS0+cGFnZXMpOworCisJaWYgKHZtYS0+cGFnZXMgIT0gdm1hLT5vYmot Pm1tLnBhZ2VzKSB7CisJCXNnX2ZyZWVfdGFibGUodm1hLT5wYWdlcyk7CisJCWtmcmVlKHZtYS0+ cGFnZXMpOworCX0KKwl2bWEtPnBhZ2VzID0gTlVMTDsKK30KKwogc3RhdGljIGdlbjhfcHRlX3Qg Z2VuOF9wdGVfZW5jb2RlKGRtYV9hZGRyX3QgYWRkciwKIAkJCQkgIGVudW0gaTkxNV9jYWNoZV9s ZXZlbCBsZXZlbCkKIHsKQEAgLTE0NTIsNiArMTQ3MCw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0 dF9pbml0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKIAlwcGd0dC0+YmFzZS5jbGVhbnVw ID0gZ2VuOF9wcGd0dF9jbGVhbnVwOwogCXBwZ3R0LT5iYXNlLnVuYmluZF92bWEgPSBwcGd0dF91 bmJpbmRfdm1hOwogCXBwZ3R0LT5iYXNlLmJpbmRfdm1hID0gcHBndHRfYmluZF92bWE7CisJcHBn dHQtPmJhc2Uuc2V0X3BhZ2VzID0gcHBndHRfc2V0X3BhZ2VzOworCXBwZ3R0LT5iYXNlLmNsZWFy X3BhZ2VzID0gY2xlYXJfcGFnZXM7CiAJcHBndHQtPmRlYnVnX2R1bXAgPSBnZW44X2R1bXBfcHBn dHQ7CiAKIAlyZXR1cm4gMDsKQEAgLTE4OTQsNiArMTkxNCw4IEBAIHN0YXRpYyBpbnQgZ2VuNl9w cGd0dF9pbml0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKIAlwcGd0dC0+YmFzZS5pbnNl cnRfZW50cmllcyA9IGdlbjZfcHBndHRfaW5zZXJ0X2VudHJpZXM7CiAJcHBndHQtPmJhc2UudW5i aW5kX3ZtYSA9IHBwZ3R0X3VuYmluZF92bWE7CiAJcHBndHQtPmJhc2UuYmluZF92bWEgPSBwcGd0 dF9iaW5kX3ZtYTsKKwlwcGd0dC0+YmFzZS5zZXRfcGFnZXMgPSBwcGd0dF9zZXRfcGFnZXM7CisJ cHBndHQtPmJhc2UuY2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKIAlwcGd0dC0+YmFzZS5jbGVh bnVwID0gZ2VuNl9wcGd0dF9jbGVhbnVwOwogCXBwZ3R0LT5kZWJ1Z19kdW1wID0gZ2VuNl9kdW1w X3BwZ3R0OwogCkBAIC0yNDA1LDEyICsyNDI3LDYgQEAgc3RhdGljIGludCBnZ3R0X2JpbmRfdm1h KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmog PSB2bWEtPm9iajsKIAl1MzIgcHRlX2ZsYWdzOwogCi0JaWYgKHVubGlrZWx5KCF2bWEtPnBhZ2Vz KSkgewotCQlpbnQgcmV0ID0gaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXModm1hKTsKLQkJaWYgKHJl dCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCiAJLyogQ3VycmVudGx5IGFwcGxpY2FibGUgb25seSB0 byBWTFYgKi8KIAlwdGVfZmxhZ3MgPSAwOwogCWlmIChvYmotPmd0X3JvKQpAQCAtMjQ0NywxMiAr MjQ2Myw2IEBAIHN0YXRpYyBpbnQgYWxpYXNpbmdfZ3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3Zt YSAqdm1hLAogCXUzMiBwdGVfZmxhZ3M7CiAJaW50IHJldDsKIAotCWlmICh1bmxpa2VseSghdm1h LT5wYWdlcykpIHsKLQkJcmV0ID0gaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXModm1hKTsKLQkJaWYg KHJldCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCiAJLyogQ3VycmVudGx5IGFwcGxpY2FibGUgb25s eSB0byBWTFYgKi8KIAlwdGVfZmxhZ3MgPSAwOwogCWlmICh2bWEtPm9iai0+Z3Rfcm8pCkBAIC0y NDY3LDcgKzI0NzcsNyBAQCBzdGF0aWMgaW50IGFsaWFzaW5nX2d0dF9iaW5kX3ZtYShzdHJ1Y3Qg aTkxNV92bWEgKnZtYSwKIAkJCQkJCQkgICAgIHZtYS0+bm9kZS5zdGFydCwKIAkJCQkJCQkgICAg IHZtYS0+c2l6ZSk7CiAJCQlpZiAocmV0KQotCQkJCWdvdG8gZXJyX3BhZ2VzOworCQkJCXJldHVy biByZXQ7CiAJCX0KIAogCQlhcHBndHQtPmJhc2UuaW5zZXJ0X2VudHJpZXMoJmFwcGd0dC0+YmFz ZSwgdm1hLCBjYWNoZV9sZXZlbCwKQEAgLTI0ODEsMTcgKzI0OTEsNiBAQCBzdGF0aWMgaW50IGFs aWFzaW5nX2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAl9CiAKIAlyZXR1cm4g MDsKLQotZXJyX3BhZ2VzOgotCWlmICghKHZtYS0+ZmxhZ3MgJiAoSTkxNV9WTUFfR0xPQkFMX0JJ TkQgfCBJOTE1X1ZNQV9MT0NBTF9CSU5EKSkpIHsKLQkJaWYgKHZtYS0+cGFnZXMgIT0gdm1hLT5v YmotPm1tLnBhZ2VzKSB7Ci0JCQlHRU1fQlVHX09OKCF2bWEtPnBhZ2VzKTsKLQkJCXNnX2ZyZWVf dGFibGUodm1hLT5wYWdlcyk7Ci0JCQlrZnJlZSh2bWEtPnBhZ2VzKTsKLQkJfQotCQl2bWEtPnBh Z2VzID0gTlVMTDsKLQl9Ci0JcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgYWxpYXNpbmdf Z3R0X3VuYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEpCkBAIC0yNTI5LDYgKzI1MjgsMTkg QEAgdm9pZCBpOTE1X2dlbV9ndHRfZmluaXNoX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCiAJZG1hX3VubWFwX3NnKGtkZXYsIHBhZ2VzLT5zZ2wsIHBhZ2VzLT5uZW50cywg UENJX0RNQV9CSURJUkVDVElPTkFMKTsKIH0KIAorc3RhdGljIGludCBnZ3R0X3NldF9wYWdlcyhz dHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sKKwlpbnQgcmV0OworCisJR0VNX0JVR19PTih2bWEtPnBh Z2VzKTsKKworCXJldCA9IGk5MTVfZ2V0X2dndHRfdm1hX3BhZ2VzKHZtYSk7CisJaWYgKHJldCkK KwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBpOTE1X2d0dF9j b2xvcl9hZGp1c3QoY29uc3Qgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLAogCQkJCSAgdW5zaWdu ZWQgbG9uZyBjb2xvciwKIAkJCQkgIHU2NCAqc3RhcnQsCkBAIC0zMTUxLDYgKzMxNjMsOCBAQCBz dGF0aWMgaW50IGdlbjhfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCWdndHQt PmJhc2UuY2xlYW51cCA9IGdlbjZfZ21jaF9yZW1vdmU7CiAJZ2d0dC0+YmFzZS5iaW5kX3ZtYSA9 IGdndHRfYmluZF92bWE7CiAJZ2d0dC0+YmFzZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRfdm1h OworCWdndHQtPmJhc2Uuc2V0X3BhZ2VzID0gZ2d0dF9zZXRfcGFnZXM7CisJZ2d0dC0+YmFzZS5j bGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwogCWdndHQtPmJhc2UuaW5zZXJ0X3BhZ2UgPSBnZW44 X2dndHRfaW5zZXJ0X3BhZ2U7CiAJZ2d0dC0+YmFzZS5jbGVhcl9yYW5nZSA9IG5vcF9jbGVhcl9y YW5nZTsKIAlpZiAoIVVTRVNfRlVMTF9QUEdUVChkZXZfcHJpdikgfHwgaW50ZWxfc2Nhbm91dF9u ZWVkc192dGRfd2EoZGV2X3ByaXYpKQpAQCAtMzIwOSw2ICszMjIzLDggQEAgc3RhdGljIGludCBn ZW42X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIAlnZ3R0LT5iYXNlLmluc2Vy dF9lbnRyaWVzID0gZ2VuNl9nZ3R0X2luc2VydF9lbnRyaWVzOwogCWdndHQtPmJhc2UuYmluZF92 bWEgPSBnZ3R0X2JpbmRfdm1hOwogCWdndHQtPmJhc2UudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5k X3ZtYTsKKwlnZ3R0LT5iYXNlLnNldF9wYWdlcyA9IGdndHRfc2V0X3BhZ2VzOworCWdndHQtPmJh c2UuY2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKIAlnZ3R0LT5iYXNlLmNsZWFudXAgPSBnZW42 X2dtY2hfcmVtb3ZlOwogCiAJZ2d0dC0+aW52YWxpZGF0ZSA9IGdlbjZfZ2d0dF9pbnZhbGlkYXRl OwpAQCAtMzI1NCw2ICszMjcwLDggQEAgc3RhdGljIGludCBpOTE1X2dtY2hfcHJvYmUoc3RydWN0 IGk5MTVfZ2d0dCAqZ2d0dCkKIAlnZ3R0LT5iYXNlLmNsZWFyX3JhbmdlID0gaTkxNV9nZ3R0X2Ns ZWFyX3JhbmdlOwogCWdndHQtPmJhc2UuYmluZF92bWEgPSBnZ3R0X2JpbmRfdm1hOwogCWdndHQt PmJhc2UudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsKKwlnZ3R0LT5iYXNlLnNldF9wYWdl cyA9IGdndHRfc2V0X3BhZ2VzOworCWdndHQtPmJhc2UuY2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdl czsKIAlnZ3R0LT5iYXNlLmNsZWFudXAgPSBpOTE1X2dtY2hfcmVtb3ZlOwogCiAJZ2d0dC0+aW52 YWxpZGF0ZSA9IGdtY2hfZ2d0dF9pbnZhbGlkYXRlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuaAppbmRleCA1MDIxOGMxNDFjMjEuLmYyMjQ5MWI0ZTZkYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmgKQEAgLTMzNSw2ICszMzUsOCBAQCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlIHsKIAlpbnQgKCpiaW5kX3ZtYSkoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQllbnVtIGk5 MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCiAJCQl1MzIgZmxhZ3MpOworCWludCAoKnNldF9w YWdlcykoc3RydWN0IGk5MTVfdm1hICp2bWEpOworCXZvaWQgKCpjbGVhcl9wYWdlcykoc3RydWN0 IGk5MTVfdm1hICp2bWEpOwogCiAJSTkxNV9TRUxGVEVTVF9ERUNMQVJFKHN0cnVjdCBmYXVsdF9h dHRyIGZhdWx0X2F0dHIpOwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCmluZGV4IDAyZDFhNWVh Y2IwMC4uNDliZjQ5NTcxZTQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKQEAgLTI2Niw2ICsy NjYsOCBAQCBpbnQgaTkxNV92bWFfYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgZW51bSBpOTE1 X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAogCWlmIChiaW5kX2ZsYWdzID09IDApCiAJCXJldHVy biAwOwogCisJR0VNX0JVR19PTighdm1hLT5wYWdlcyk7CisKIAl0cmFjZV9pOTE1X3ZtYV9iaW5k KHZtYSwgYmluZF9mbGFncyk7CiAJcmV0ID0gdm1hLT52bS0+YmluZF92bWEodm1hLCBjYWNoZV9s ZXZlbCwgYmluZF9mbGFncyk7CiAJaWYgKHJldCkKQEAgLTQ3MSwyNSArNDczLDMxIEBAIGk5MTVf dm1hX2luc2VydChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdTY0IHNpemUsIHU2NCBhbGlnbm1lbnQs IHU2NCBmbGFncykKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCisJR0VNX0JVR19PTih2bWEt PnBhZ2VzKTsKKworCXJldCA9IHZtYS0+dm0tPnNldF9wYWdlcyh2bWEpOworCWlmIChyZXQpCisJ CWdvdG8gZXJyX3VucGluOworCiAJaWYgKGZsYWdzICYgUElOX09GRlNFVF9GSVhFRCkgewogCQl1 NjQgb2Zmc2V0ID0gZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0s7CiAJCWlmICghSVNfQUxJR05FRChv ZmZzZXQsIGFsaWdubWVudCkgfHwKIAkJICAgIHJhbmdlX292ZXJmbG93cyhvZmZzZXQsIHNpemUs IGVuZCkpIHsKIAkJCXJldCA9IC1FSU5WQUw7Ci0JCQlnb3RvIGVycl91bnBpbjsKKwkJCWdvdG8g ZXJyX2NsZWFyOwogCQl9CiAKIAkJcmV0ID0gaTkxNV9nZW1fZ3R0X3Jlc2VydmUodm1hLT52bSwg JnZtYS0+bm9kZSwKIAkJCQkJICAgc2l6ZSwgb2Zmc2V0LCBvYmotPmNhY2hlX2xldmVsLAogCQkJ CQkgICBmbGFncyk7CiAJCWlmIChyZXQpCi0JCQlnb3RvIGVycl91bnBpbjsKKwkJCWdvdG8gZXJy X2NsZWFyOwogCX0gZWxzZSB7CiAJCXJldCA9IGk5MTVfZ2VtX2d0dF9pbnNlcnQodm1hLT52bSwg JnZtYS0+bm9kZSwKIAkJCQkJICBzaXplLCBhbGlnbm1lbnQsIG9iai0+Y2FjaGVfbGV2ZWwsCiAJ CQkJCSAgc3RhcnQsIGVuZCwgZmxhZ3MpOwogCQlpZiAocmV0KQotCQkJZ290byBlcnJfdW5waW47 CisJCQlnb3RvIGVycl9jbGVhcjsKIAogCQlHRU1fQlVHX09OKHZtYS0+bm9kZS5zdGFydCA8IHN0 YXJ0KTsKIAkJR0VNX0JVR19PTih2bWEtPm5vZGUuc3RhcnQgKyB2bWEtPm5vZGUuc2l6ZSA+IGVu ZCk7CkBAIC01MDQsNiArNTEyLDggQEAgaTkxNV92bWFfaW5zZXJ0KHN0cnVjdCBpOTE1X3ZtYSAq dm1hLCB1NjQgc2l6ZSwgdTY0IGFsaWdubWVudCwgdTY0IGZsYWdzKQogCiAJcmV0dXJuIDA7CiAK K2Vycl9jbGVhcjoKKwl2bWEtPnZtLT5jbGVhcl9wYWdlcyh2bWEpOwogZXJyX3VucGluOgogCWk5 MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwogCXJldHVybiByZXQ7CkBAIC01MTcsNiAr NTI3LDggQEAgaTkxNV92bWFfcmVtb3ZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCUdFTV9CVUdf T04oIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSk7CiAJR0VNX0JVR19PTih2bWEt PmZsYWdzICYgKEk5MTVfVk1BX0dMT0JBTF9CSU5EIHwgSTkxNV9WTUFfTE9DQUxfQklORCkpOwog CisJdm1hLT52bS0+Y2xlYXJfcGFnZXModm1hKTsKKwogCWRybV9tbV9yZW1vdmVfbm9kZSgmdm1h LT5ub2RlKTsKIAlsaXN0X21vdmVfdGFpbCgmdm1hLT52bV9saW5rLCAmdm1hLT52bS0+dW5ib3Vu ZF9saXN0KTsKIApAQCAtNTY5LDggKzU4MSw4IEBAIGludCBfX2k5MTVfdm1hX2RvX3BpbihzdHJ1 Y3QgaTkxNV92bWEgKnZtYSwKIAogZXJyX3JlbW92ZToKIAlpZiAoKGJvdW5kICYgSTkxNV9WTUFf QklORF9NQVNLKSA9PSAwKSB7Ci0JCUdFTV9CVUdfT04odm1hLT5wYWdlcyk7CiAJCWk5MTVfdm1h X3JlbW92ZSh2bWEpOworCQlHRU1fQlVHX09OKHZtYS0+cGFnZXMpOwogCX0KIGVycl91bnBpbjoK IAlfX2k5MTVfdm1hX3VucGluKHZtYSk7CkBAIC02OTUsMTMgKzcwNyw2IEBAIGludCBpOTE1X3Zt YV91bmJpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJfQogCXZtYS0+ZmxhZ3MgJj0gfihJOTE1 X1ZNQV9HTE9CQUxfQklORCB8IEk5MTVfVk1BX0xPQ0FMX0JJTkQpOwogCi0JaWYgKHZtYS0+cGFn ZXMgIT0gb2JqLT5tbS5wYWdlcykgewotCQlHRU1fQlVHX09OKCF2bWEtPnBhZ2VzKTsKLQkJc2df ZnJlZV90YWJsZSh2bWEtPnBhZ2VzKTsKLQkJa2ZyZWUodm1hLT5wYWdlcyk7Ci0JfQotCXZtYS0+ cGFnZXMgPSBOVUxMOwotCiAJaTkxNV92bWFfcmVtb3ZlKHZtYSk7CiAKIGRlc3Ryb3k6CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19ndHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2d0dC5jCmluZGV4IGYyMTE4Y2Y1MzVhMC4u MzM2ZTFhZmIyNTBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv bW9ja19ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19ndHQu YwpAQCAtNDMsNyArNDMsNiBAQCBzdGF0aWMgaW50IG1vY2tfYmluZF9wcGd0dChzdHJ1Y3QgaTkx NV92bWEgKnZtYSwKIAkJCSAgIHUzMiBmbGFncykKIHsKIAlHRU1fQlVHX09OKGZsYWdzICYgSTkx NV9WTUFfR0xPQkFMX0JJTkQpOwotCXZtYS0+cGFnZXMgPSB2bWEtPm9iai0+bW0ucGFnZXM7CiAJ dm1hLT5mbGFncyB8PSBJOTE1X1ZNQV9MT0NBTF9CSU5EOwogCXJldHVybiAwOwogfQpAQCAtODQs NiArODMsOCBAQCBtb2NrX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXBw Z3R0LT5iYXNlLmluc2VydF9lbnRyaWVzID0gbW9ja19pbnNlcnRfZW50cmllczsKIAlwcGd0dC0+ YmFzZS5iaW5kX3ZtYSA9IG1vY2tfYmluZF9wcGd0dDsKIAlwcGd0dC0+YmFzZS51bmJpbmRfdm1h ID0gbW9ja191bmJpbmRfcHBndHQ7CisJcHBndHQtPmJhc2Uuc2V0X3BhZ2VzID0gcHBndHRfc2V0 X3BhZ2VzOworCXBwZ3R0LT5iYXNlLmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7CiAJcHBndHQt PmJhc2UuY2xlYW51cCA9IG1vY2tfY2xlYW51cDsKIAogCXJldHVybiBwcGd0dDsKQEAgLTkzLDEy ICs5NCw2IEBAIHN0YXRpYyBpbnQgbW9ja19iaW5kX2dndHQoc3RydWN0IGk5MTVfdm1hICp2bWEs CiAJCQkgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKIAkJCSAgdTMyIGZsYWdz KQogewotCWludCBlcnI7Ci0KLQllcnIgPSBpOTE1X2dldF9nZ3R0X3ZtYV9wYWdlcyh2bWEpOwot CWlmIChlcnIpCi0JCXJldHVybiBlcnI7Ci0KIAl2bWEtPmZsYWdzIHw9IEk5MTVfVk1BX0dMT0JB TF9CSU5EIHwgSTkxNV9WTUFfTE9DQUxfQklORDsKIAlyZXR1cm4gMDsKIH0KQEAgLTEyNCw2ICsx MTksOCBAQCB2b2lkIG1vY2tfaW5pdF9nZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQogCWdndHQtPmJhc2UuaW5zZXJ0X2VudHJpZXMgPSBtb2NrX2luc2VydF9lbnRyaWVzOwogCWdn dHQtPmJhc2UuYmluZF92bWEgPSBtb2NrX2JpbmRfZ2d0dDsKIAlnZ3R0LT5iYXNlLnVuYmluZF92 bWEgPSBtb2NrX3VuYmluZF9nZ3R0OworCWdndHQtPmJhc2Uuc2V0X3BhZ2VzID0gZ2d0dF9zZXRf cGFnZXM7CisJZ2d0dC0+YmFzZS5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwogCWdndHQtPmJh c2UuY2xlYW51cCA9IG1vY2tfY2xlYW51cDsKIAogCWk5MTVfYWRkcmVzc19zcGFjZV9pbml0KCZn Z3R0LT5iYXNlLCBpOTE1LCAiZ2xvYmFsIik7Ci0tIAoyLjEzLjUKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=