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, 29 Sep 2017 17:10:18 +0100 Message-ID: <20170929161032.24394-8-matthew.auld@intel.com> References: <20170929161032.24394-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4419F6EBFF for ; Fri, 29 Sep 2017 16:10:47 +0000 (UTC) In-Reply-To: <20170929161032.24394-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 bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5jICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggICAgICAgfCAgMiArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICB8IDI3ICsrKysrKystLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMgfCAxMSArKy0tLQogNCBm aWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDRjODJjZWI4ZDMxOC4uYzUzNGI3NGVlZTMyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMjA1LDggKzIwNSw2IEBAIHN0YXRp YyBpbnQgcHBndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQlyZXR1cm4gcmV0 OwogCX0KIAotCXZtYS0+cGFnZXMgPSB2bWEtPm9iai0+bW0ucGFnZXM7Ci0KIAkvKiBDdXJyZW50 bHkgYXBwbGljYWJsZSBvbmx5IHRvIFZMViAqLwogCXB0ZV9mbGFncyA9IDA7CiAJaWYgKHZtYS0+ b2JqLT5ndF9ybykKQEAgLTIyMiw2ICsyMjAsMjYgQEAgc3RhdGljIHZvaWQgcHBndHRfdW5iaW5k X3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAl2bWEtPnZtLT5jbGVhcl9yYW5nZSh2bWEtPnZt LCB2bWEtPm5vZGUuc3RhcnQsIHZtYS0+c2l6ZSk7CiB9CiAKK3N0YXRpYyBpbnQgcHBndHRfc2V0 X3BhZ2VzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQoreworCUdFTV9CVUdfT04odm1hLT5wYWdlcyk7 CisKKwl2bWEtPnBhZ2VzID0gdm1hLT5vYmotPm1tLnBhZ2VzOworCisJcmV0dXJuIDA7Cit9CisK K3N0YXRpYyB2b2lkIGNsZWFyX3BhZ2VzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQoreworCUdFTV9C VUdfT04oIXZtYS0+cGFnZXMpOworCisJaWYgKHZtYS0+cGFnZXMgIT0gdm1hLT5vYmotPm1tLnBh Z2VzKSB7CisJCXNnX2ZyZWVfdGFibGUodm1hLT5wYWdlcyk7CisJCWtmcmVlKHZtYS0+cGFnZXMp OworCX0KKwl2bWEtPnBhZ2VzID0gTlVMTDsKK30KKwogc3RhdGljIGdlbjhfcHRlX3QgZ2VuOF9w dGVfZW5jb2RlKGRtYV9hZGRyX3QgYWRkciwKIAkJCQkgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBs ZXZlbCkKIHsKQEAgLTE0NTIsNiArMTQ3MCw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9pbml0 KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKIAlwcGd0dC0+YmFzZS5jbGVhbnVwID0gZ2Vu OF9wcGd0dF9jbGVhbnVwOwogCXBwZ3R0LT5iYXNlLnVuYmluZF92bWEgPSBwcGd0dF91bmJpbmRf dm1hOwogCXBwZ3R0LT5iYXNlLmJpbmRfdm1hID0gcHBndHRfYmluZF92bWE7CisJcHBndHQtPmJh c2Uuc2V0X3BhZ2VzID0gcHBndHRfc2V0X3BhZ2VzOworCXBwZ3R0LT5iYXNlLmNsZWFyX3BhZ2Vz ID0gY2xlYXJfcGFnZXM7CiAJcHBndHQtPmRlYnVnX2R1bXAgPSBnZW44X2R1bXBfcHBndHQ7CiAK IAlyZXR1cm4gMDsKQEAgLTE4OTQsNiArMTkxNCw4IEBAIHN0YXRpYyBpbnQgZ2VuNl9wcGd0dF9p bml0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKIAlwcGd0dC0+YmFzZS5pbnNlcnRfZW50 cmllcyA9IGdlbjZfcHBndHRfaW5zZXJ0X2VudHJpZXM7CiAJcHBndHQtPmJhc2UudW5iaW5kX3Zt YSA9IHBwZ3R0X3VuYmluZF92bWE7CiAJcHBndHQtPmJhc2UuYmluZF92bWEgPSBwcGd0dF9iaW5k X3ZtYTsKKwlwcGd0dC0+YmFzZS5zZXRfcGFnZXMgPSBwcGd0dF9zZXRfcGFnZXM7CisJcHBndHQt PmJhc2UuY2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKIAlwcGd0dC0+YmFzZS5jbGVhbnVwID0g Z2VuNl9wcGd0dF9jbGVhbnVwOwogCXBwZ3R0LT5kZWJ1Z19kdW1wID0gZ2VuNl9kdW1wX3BwZ3R0 OwogCkBAIC0yNDA1LDEyICsyNDI3LDYgQEAgc3RhdGljIGludCBnZ3R0X2JpbmRfdm1hKHN0cnVj dCBpOTE1X3ZtYSAqdm1hLAogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB2bWEt Pm9iajsKIAl1MzIgcHRlX2ZsYWdzOwogCi0JaWYgKHVubGlrZWx5KCF2bWEtPnBhZ2VzKSkgewot CQlpbnQgcmV0ID0gaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXModm1hKTsKLQkJaWYgKHJldCkKLQkJ CXJldHVybiByZXQ7Ci0JfQotCiAJLyogQ3VycmVudGx5IGFwcGxpY2FibGUgb25seSB0byBWTFYg Ki8KIAlwdGVfZmxhZ3MgPSAwOwogCWlmIChvYmotPmd0X3JvKQpAQCAtMjQ0NywxMiArMjQ2Myw2 IEBAIHN0YXRpYyBpbnQgYWxpYXNpbmdfZ3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1h LAogCXUzMiBwdGVfZmxhZ3M7CiAJaW50IHJldDsKIAotCWlmICh1bmxpa2VseSghdm1hLT5wYWdl cykpIHsKLQkJcmV0ID0gaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXModm1hKTsKLQkJaWYgKHJldCkK LQkJCXJldHVybiByZXQ7Ci0JfQotCiAJLyogQ3VycmVudGx5IGFwcGxpY2FibGUgb25seSB0byBW TFYgKi8KIAlwdGVfZmxhZ3MgPSAwOwogCWlmICh2bWEtPm9iai0+Z3Rfcm8pCkBAIC0yNDY3LDcg KzI0NzcsNyBAQCBzdGF0aWMgaW50IGFsaWFzaW5nX2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92 bWEgKnZtYSwKIAkJCQkJCQkgICAgIHZtYS0+bm9kZS5zdGFydCwKIAkJCQkJCQkgICAgIHZtYS0+ c2l6ZSk7CiAJCQlpZiAocmV0KQotCQkJCWdvdG8gZXJyX3BhZ2VzOworCQkJCXJldHVybiByZXQ7 CiAJCX0KIAogCQlhcHBndHQtPmJhc2UuaW5zZXJ0X2VudHJpZXMoJmFwcGd0dC0+YmFzZSwgdm1h LCBjYWNoZV9sZXZlbCwKQEAgLTI0ODEsMTcgKzI0OTEsNiBAQCBzdGF0aWMgaW50IGFsaWFzaW5n X2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAl9CiAKIAlyZXR1cm4gMDsKLQot ZXJyX3BhZ2VzOgotCWlmICghKHZtYS0+ZmxhZ3MgJiAoSTkxNV9WTUFfR0xPQkFMX0JJTkQgfCBJ OTE1X1ZNQV9MT0NBTF9CSU5EKSkpIHsKLQkJaWYgKHZtYS0+cGFnZXMgIT0gdm1hLT5vYmotPm1t LnBhZ2VzKSB7Ci0JCQlHRU1fQlVHX09OKCF2bWEtPnBhZ2VzKTsKLQkJCXNnX2ZyZWVfdGFibGUo dm1hLT5wYWdlcyk7Ci0JCQlrZnJlZSh2bWEtPnBhZ2VzKTsKLQkJfQotCQl2bWEtPnBhZ2VzID0g TlVMTDsKLQl9Ci0JcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgYWxpYXNpbmdfZ3R0X3Vu YmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEpCkBAIC0yNTI5LDYgKzI1MjgsMTkgQEAgdm9p ZCBpOTE1X2dlbV9ndHRfZmluaXNoX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCiAJZG1hX3VubWFwX3NnKGtkZXYsIHBhZ2VzLT5zZ2wsIHBhZ2VzLT5uZW50cywgUENJX0RN QV9CSURJUkVDVElPTkFMKTsKIH0KIAorc3RhdGljIGludCBnZ3R0X3NldF9wYWdlcyhzdHJ1Y3Qg aTkxNV92bWEgKnZtYSkKK3sKKwlpbnQgcmV0OworCisJR0VNX0JVR19PTih2bWEtPnBhZ2VzKTsK KworCXJldCA9IGk5MTVfZ2V0X2dndHRfdm1hX3BhZ2VzKHZtYSk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBpOTE1X2d0dF9jb2xvcl9h ZGp1c3QoY29uc3Qgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLAogCQkJCSAgdW5zaWduZWQgbG9u ZyBjb2xvciwKIAkJCQkgIHU2NCAqc3RhcnQsCkBAIC0zMTUxLDYgKzMxNjMsOCBAQCBzdGF0aWMg aW50IGdlbjhfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCWdndHQtPmJhc2Uu Y2xlYW51cCA9IGdlbjZfZ21jaF9yZW1vdmU7CiAJZ2d0dC0+YmFzZS5iaW5kX3ZtYSA9IGdndHRf YmluZF92bWE7CiAJZ2d0dC0+YmFzZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRfdm1hOworCWdn dHQtPmJhc2Uuc2V0X3BhZ2VzID0gZ2d0dF9zZXRfcGFnZXM7CisJZ2d0dC0+YmFzZS5jbGVhcl9w YWdlcyA9IGNsZWFyX3BhZ2VzOwogCWdndHQtPmJhc2UuaW5zZXJ0X3BhZ2UgPSBnZW44X2dndHRf aW5zZXJ0X3BhZ2U7CiAJZ2d0dC0+YmFzZS5jbGVhcl9yYW5nZSA9IG5vcF9jbGVhcl9yYW5nZTsK IAlpZiAoIVVTRVNfRlVMTF9QUEdUVChkZXZfcHJpdikgfHwgaW50ZWxfc2Nhbm91dF9uZWVkc192 dGRfd2EoZGV2X3ByaXYpKQpAQCAtMzIwOSw2ICszMjIzLDggQEAgc3RhdGljIGludCBnZW42X2dt Y2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIAlnZ3R0LT5iYXNlLmluc2VydF9lbnRy aWVzID0gZ2VuNl9nZ3R0X2luc2VydF9lbnRyaWVzOwogCWdndHQtPmJhc2UuYmluZF92bWEgPSBn Z3R0X2JpbmRfdm1hOwogCWdndHQtPmJhc2UudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsK KwlnZ3R0LT5iYXNlLnNldF9wYWdlcyA9IGdndHRfc2V0X3BhZ2VzOworCWdndHQtPmJhc2UuY2xl YXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKIAlnZ3R0LT5iYXNlLmNsZWFudXAgPSBnZW42X2dtY2hf cmVtb3ZlOwogCiAJZ2d0dC0+aW52YWxpZGF0ZSA9IGdlbjZfZ2d0dF9pbnZhbGlkYXRlOwpAQCAt MzI1NCw2ICszMjcwLDggQEAgc3RhdGljIGludCBpOTE1X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVf Z2d0dCAqZ2d0dCkKIAlnZ3R0LT5iYXNlLmNsZWFyX3JhbmdlID0gaTkxNV9nZ3R0X2NsZWFyX3Jh bmdlOwogCWdndHQtPmJhc2UuYmluZF92bWEgPSBnZ3R0X2JpbmRfdm1hOwogCWdndHQtPmJhc2Uu dW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsKKwlnZ3R0LT5iYXNlLnNldF9wYWdlcyA9IGdn dHRfc2V0X3BhZ2VzOworCWdndHQtPmJhc2UuY2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKIAln Z3R0LT5iYXNlLmNsZWFudXAgPSBpOTE1X2dtY2hfcmVtb3ZlOwogCiAJZ2d0dC0+aW52YWxpZGF0 ZSA9IGdtY2hfZ2d0dF9pbnZhbGlkYXRlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaApp bmRleCA4OGU5NzI0ZDVmYzcuLjg3ZjNjZWFjYTVhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmgKQEAgLTMzNCw2ICszMzQsOCBAQCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlIHsK IAlpbnQgKCpiaW5kX3ZtYSkoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQllbnVtIGk5MTVfY2Fj aGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCiAJCQl1MzIgZmxhZ3MpOworCWludCAoKnNldF9wYWdlcyko c3RydWN0IGk5MTVfdm1hICp2bWEpOworCXZvaWQgKCpjbGVhcl9wYWdlcykoc3RydWN0IGk5MTVf dm1hICp2bWEpOwogCiAJSTkxNV9TRUxGVEVTVF9ERUNMQVJFKHN0cnVjdCBmYXVsdF9hdHRyIGZh dWx0X2F0dHIpOwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1h LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCmluZGV4IDAyZDFhNWVhY2IwMC4u NDliZjQ5NTcxZTQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKQEAgLTI2Niw2ICsyNjYsOCBA QCBpbnQgaTkxNV92bWFfYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgZW51bSBpOTE1X2NhY2hl X2xldmVsIGNhY2hlX2xldmVsLAogCWlmIChiaW5kX2ZsYWdzID09IDApCiAJCXJldHVybiAwOwog CisJR0VNX0JVR19PTighdm1hLT5wYWdlcyk7CisKIAl0cmFjZV9pOTE1X3ZtYV9iaW5kKHZtYSwg YmluZF9mbGFncyk7CiAJcmV0ID0gdm1hLT52bS0+YmluZF92bWEodm1hLCBjYWNoZV9sZXZlbCwg YmluZF9mbGFncyk7CiAJaWYgKHJldCkKQEAgLTQ3MSwyNSArNDczLDMxIEBAIGk5MTVfdm1hX2lu c2VydChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdTY0IHNpemUsIHU2NCBhbGlnbm1lbnQsIHU2NCBm bGFncykKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCisJR0VNX0JVR19PTih2bWEtPnBhZ2Vz KTsKKworCXJldCA9IHZtYS0+dm0tPnNldF9wYWdlcyh2bWEpOworCWlmIChyZXQpCisJCWdvdG8g ZXJyX3VucGluOworCiAJaWYgKGZsYWdzICYgUElOX09GRlNFVF9GSVhFRCkgewogCQl1NjQgb2Zm c2V0ID0gZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0s7CiAJCWlmICghSVNfQUxJR05FRChvZmZzZXQs IGFsaWdubWVudCkgfHwKIAkJICAgIHJhbmdlX292ZXJmbG93cyhvZmZzZXQsIHNpemUsIGVuZCkp IHsKIAkJCXJldCA9IC1FSU5WQUw7Ci0JCQlnb3RvIGVycl91bnBpbjsKKwkJCWdvdG8gZXJyX2Ns ZWFyOwogCQl9CiAKIAkJcmV0ID0gaTkxNV9nZW1fZ3R0X3Jlc2VydmUodm1hLT52bSwgJnZtYS0+ bm9kZSwKIAkJCQkJICAgc2l6ZSwgb2Zmc2V0LCBvYmotPmNhY2hlX2xldmVsLAogCQkJCQkgICBm bGFncyk7CiAJCWlmIChyZXQpCi0JCQlnb3RvIGVycl91bnBpbjsKKwkJCWdvdG8gZXJyX2NsZWFy OwogCX0gZWxzZSB7CiAJCXJldCA9IGk5MTVfZ2VtX2d0dF9pbnNlcnQodm1hLT52bSwgJnZtYS0+ bm9kZSwKIAkJCQkJICBzaXplLCBhbGlnbm1lbnQsIG9iai0+Y2FjaGVfbGV2ZWwsCiAJCQkJCSAg c3RhcnQsIGVuZCwgZmxhZ3MpOwogCQlpZiAocmV0KQotCQkJZ290byBlcnJfdW5waW47CisJCQln b3RvIGVycl9jbGVhcjsKIAogCQlHRU1fQlVHX09OKHZtYS0+bm9kZS5zdGFydCA8IHN0YXJ0KTsK IAkJR0VNX0JVR19PTih2bWEtPm5vZGUuc3RhcnQgKyB2bWEtPm5vZGUuc2l6ZSA+IGVuZCk7CkBA IC01MDQsNiArNTEyLDggQEAgaTkxNV92bWFfaW5zZXJ0KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1 NjQgc2l6ZSwgdTY0IGFsaWdubWVudCwgdTY0IGZsYWdzKQogCiAJcmV0dXJuIDA7CiAKK2Vycl9j bGVhcjoKKwl2bWEtPnZtLT5jbGVhcl9wYWdlcyh2bWEpOwogZXJyX3VucGluOgogCWk5MTVfZ2Vt X29iamVjdF91bnBpbl9wYWdlcyhvYmopOwogCXJldHVybiByZXQ7CkBAIC01MTcsNiArNTI3LDgg QEAgaTkxNV92bWFfcmVtb3ZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCUdFTV9CVUdfT04oIWRy bV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSk7CiAJR0VNX0JVR19PTih2bWEtPmZsYWdz ICYgKEk5MTVfVk1BX0dMT0JBTF9CSU5EIHwgSTkxNV9WTUFfTE9DQUxfQklORCkpOwogCisJdm1h LT52bS0+Y2xlYXJfcGFnZXModm1hKTsKKwogCWRybV9tbV9yZW1vdmVfbm9kZSgmdm1hLT5ub2Rl KTsKIAlsaXN0X21vdmVfdGFpbCgmdm1hLT52bV9saW5rLCAmdm1hLT52bS0+dW5ib3VuZF9saXN0 KTsKIApAQCAtNTY5LDggKzU4MSw4IEBAIGludCBfX2k5MTVfdm1hX2RvX3BpbihzdHJ1Y3QgaTkx NV92bWEgKnZtYSwKIAogZXJyX3JlbW92ZToKIAlpZiAoKGJvdW5kICYgSTkxNV9WTUFfQklORF9N QVNLKSA9PSAwKSB7Ci0JCUdFTV9CVUdfT04odm1hLT5wYWdlcyk7CiAJCWk5MTVfdm1hX3JlbW92 ZSh2bWEpOworCQlHRU1fQlVHX09OKHZtYS0+cGFnZXMpOwogCX0KIGVycl91bnBpbjoKIAlfX2k5 MTVfdm1hX3VucGluKHZtYSk7CkBAIC02OTUsMTMgKzcwNyw2IEBAIGludCBpOTE1X3ZtYV91bmJp bmQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJfQogCXZtYS0+ZmxhZ3MgJj0gfihJOTE1X1ZNQV9H TE9CQUxfQklORCB8IEk5MTVfVk1BX0xPQ0FMX0JJTkQpOwogCi0JaWYgKHZtYS0+cGFnZXMgIT0g b2JqLT5tbS5wYWdlcykgewotCQlHRU1fQlVHX09OKCF2bWEtPnBhZ2VzKTsKLQkJc2dfZnJlZV90 YWJsZSh2bWEtPnBhZ2VzKTsKLQkJa2ZyZWUodm1hLT5wYWdlcyk7Ci0JfQotCXZtYS0+cGFnZXMg PSBOVUxMOwotCiAJaTkxNV92bWFfcmVtb3ZlKHZtYSk7CiAKIGRlc3Ryb3k6CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19ndHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2d0dC5jCmluZGV4IGYyMTE4Y2Y1MzVhMC4uMzM2ZTFh ZmIyNTBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19n dHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19ndHQuYwpAQCAt NDMsNyArNDMsNiBAQCBzdGF0aWMgaW50IG1vY2tfYmluZF9wcGd0dChzdHJ1Y3QgaTkxNV92bWEg KnZtYSwKIAkJCSAgIHUzMiBmbGFncykKIHsKIAlHRU1fQlVHX09OKGZsYWdzICYgSTkxNV9WTUFf R0xPQkFMX0JJTkQpOwotCXZtYS0+cGFnZXMgPSB2bWEtPm9iai0+bW0ucGFnZXM7CiAJdm1hLT5m bGFncyB8PSBJOTE1X1ZNQV9MT0NBTF9CSU5EOwogCXJldHVybiAwOwogfQpAQCAtODQsNiArODMs OCBAQCBtb2NrX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXBwZ3R0LT5i YXNlLmluc2VydF9lbnRyaWVzID0gbW9ja19pbnNlcnRfZW50cmllczsKIAlwcGd0dC0+YmFzZS5i aW5kX3ZtYSA9IG1vY2tfYmluZF9wcGd0dDsKIAlwcGd0dC0+YmFzZS51bmJpbmRfdm1hID0gbW9j a191bmJpbmRfcHBndHQ7CisJcHBndHQtPmJhc2Uuc2V0X3BhZ2VzID0gcHBndHRfc2V0X3BhZ2Vz OworCXBwZ3R0LT5iYXNlLmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7CiAJcHBndHQtPmJhc2Uu Y2xlYW51cCA9IG1vY2tfY2xlYW51cDsKIAogCXJldHVybiBwcGd0dDsKQEAgLTkzLDEyICs5NCw2 IEBAIHN0YXRpYyBpbnQgbW9ja19iaW5kX2dndHQoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQkg IGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKIAkJCSAgdTMyIGZsYWdzKQogewot CWludCBlcnI7Ci0KLQllcnIgPSBpOTE1X2dldF9nZ3R0X3ZtYV9wYWdlcyh2bWEpOwotCWlmIChl cnIpCi0JCXJldHVybiBlcnI7Ci0KIAl2bWEtPmZsYWdzIHw9IEk5MTVfVk1BX0dMT0JBTF9CSU5E IHwgSTkxNV9WTUFfTE9DQUxfQklORDsKIAlyZXR1cm4gMDsKIH0KQEAgLTEyNCw2ICsxMTksOCBA QCB2b2lkIG1vY2tfaW5pdF9nZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWdn dHQtPmJhc2UuaW5zZXJ0X2VudHJpZXMgPSBtb2NrX2luc2VydF9lbnRyaWVzOwogCWdndHQtPmJh c2UuYmluZF92bWEgPSBtb2NrX2JpbmRfZ2d0dDsKIAlnZ3R0LT5iYXNlLnVuYmluZF92bWEgPSBt b2NrX3VuYmluZF9nZ3R0OworCWdndHQtPmJhc2Uuc2V0X3BhZ2VzID0gZ2d0dF9zZXRfcGFnZXM7 CisJZ2d0dC0+YmFzZS5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwogCWdndHQtPmJhc2UuY2xl YW51cCA9IG1vY2tfY2xlYW51cDsKIAogCWk5MTVfYWRkcmVzc19zcGFjZV9pbml0KCZnZ3R0LT5i YXNlLCBpOTE1LCAiZ2xvYmFsIik7Ci0tIAoyLjEzLjUKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=