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, 22 Sep 2017 18:32:38 +0100 Message-ID: <20170922173252.10137-8-matthew.auld@intel.com> References: <20170922173252.10137-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 657546EA37 for ; Fri, 22 Sep 2017 17:33:19 +0000 (UTC) In-Reply-To: <20170922173252.10137-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 cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICB8IDcwICsrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oICAgICAgIHwgIDIgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyAgICAgICAgICAgfCAyNyArKysrKysrLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2d0dC5jIHwgMTEgKystLS0K IDQgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCA2NGQ3ODUyNjJkMTQuLjVlMGFjNGM1YTgx YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTIwNSw4ICsyMDUsNiBAQCBz dGF0aWMgaW50IHBwZ3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCQkJcmV0dXJu IHJldDsKIAl9CiAKLQl2bWEtPnBhZ2VzID0gdm1hLT5vYmotPm1tLnBhZ2VzOwotCiAJLyogQ3Vy cmVudGx5IGFwcGxpY2FibGUgb25seSB0byBWTFYgKi8KIAlwdGVfZmxhZ3MgPSAwOwogCWlmICh2 bWEtPm9iai0+Z3Rfcm8pCkBAIC0yMjIsNiArMjIwLDI2IEBAIHN0YXRpYyB2b2lkIHBwZ3R0X3Vu YmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJdm1hLT52bS0+Y2xlYXJfcmFuZ2Uodm1h LT52bSwgdm1hLT5ub2RlLnN0YXJ0LCB2bWEtPnNpemUpOwogfQogCitzdGF0aWMgaW50IHBwZ3R0 X3NldF9wYWdlcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sKKwlHRU1fQlVHX09OKHZtYS0+cGFn ZXMpOworCisJdm1hLT5wYWdlcyA9IHZtYS0+b2JqLT5tbS5wYWdlczsKKworCXJldHVybiAwOwor fQorCitzdGF0aWMgdm9pZCBjbGVhcl9wYWdlcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sKKwlH RU1fQlVHX09OKCF2bWEtPnBhZ2VzKTsKKworCWlmICh2bWEtPnBhZ2VzICE9IHZtYS0+b2JqLT5t bS5wYWdlcykgeworCQlzZ19mcmVlX3RhYmxlKHZtYS0+cGFnZXMpOworCQlrZnJlZSh2bWEtPnBh Z2VzKTsKKwl9CisJdm1hLT5wYWdlcyA9IE5VTEw7Cit9CisKIHN0YXRpYyBnZW44X3B0ZV90IGdl bjhfcHRlX2VuY29kZShkbWFfYWRkcl90IGFkZHIsCiAJCQkJICBlbnVtIGk5MTVfY2FjaGVfbGV2 ZWwgbGV2ZWwpCiB7CkBAIC0xNDU0LDYgKzE0NzIsOCBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRf aW5pdChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiAJcHBndHQtPmJhc2UuY2xlYW51cCA9 IGdlbjhfcHBndHRfY2xlYW51cDsKIAlwcGd0dC0+YmFzZS51bmJpbmRfdm1hID0gcHBndHRfdW5i aW5kX3ZtYTsKIAlwcGd0dC0+YmFzZS5iaW5kX3ZtYSA9IHBwZ3R0X2JpbmRfdm1hOworCXBwZ3R0 LT5iYXNlLnNldF9wYWdlcyA9IHBwZ3R0X3NldF9wYWdlczsKKwlwcGd0dC0+YmFzZS5jbGVhcl9w YWdlcyA9IGNsZWFyX3BhZ2VzOwogCXBwZ3R0LT5kZWJ1Z19kdW1wID0gZ2VuOF9kdW1wX3BwZ3R0 OwogCiAJcmV0dXJuIDA7CkBAIC0xODk2LDYgKzE5MTYsOCBAQCBzdGF0aWMgaW50IGdlbjZfcHBn dHRfaW5pdChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiAJcHBndHQtPmJhc2UuaW5zZXJ0 X2VudHJpZXMgPSBnZW42X3BwZ3R0X2luc2VydF9lbnRyaWVzOwogCXBwZ3R0LT5iYXNlLnVuYmlu ZF92bWEgPSBwcGd0dF91bmJpbmRfdm1hOwogCXBwZ3R0LT5iYXNlLmJpbmRfdm1hID0gcHBndHRf YmluZF92bWE7CisJcHBndHQtPmJhc2Uuc2V0X3BhZ2VzID0gcHBndHRfc2V0X3BhZ2VzOworCXBw Z3R0LT5iYXNlLmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7CiAJcHBndHQtPmJhc2UuY2xlYW51 cCA9IGdlbjZfcHBndHRfY2xlYW51cDsKIAlwcGd0dC0+ZGVidWdfZHVtcCA9IGdlbjZfZHVtcF9w cGd0dDsKIApAQCAtMjQwNywxMiArMjQyOSw2IEBAIHN0YXRpYyBpbnQgZ2d0dF9iaW5kX3ZtYShz dHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0g dm1hLT5vYmo7CiAJdTMyIHB0ZV9mbGFnczsKIAotCWlmICh1bmxpa2VseSghdm1hLT5wYWdlcykp IHsKLQkJaW50IHJldCA9IGk5MTVfZ2V0X2dndHRfdm1hX3BhZ2VzKHZtYSk7Ci0JCWlmIChyZXQp Ci0JCQlyZXR1cm4gcmV0OwotCX0KLQogCS8qIEN1cnJlbnRseSBhcHBsaWNhYmxlIG9ubHkgdG8g VkxWICovCiAJcHRlX2ZsYWdzID0gMDsKIAlpZiAob2JqLT5ndF9ybykKQEAgLTI0NDksMTIgKzI0 NjUsNiBAQCBzdGF0aWMgaW50IGFsaWFzaW5nX2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEg KnZtYSwKIAl1MzIgcHRlX2ZsYWdzOwogCWludCByZXQ7CiAKLQlpZiAodW5saWtlbHkoIXZtYS0+ cGFnZXMpKSB7Ci0JCXJldCA9IGk5MTVfZ2V0X2dndHRfdm1hX3BhZ2VzKHZtYSk7Ci0JCWlmIChy ZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0KLQogCS8qIEN1cnJlbnRseSBhcHBsaWNhYmxlIG9ubHkg dG8gVkxWICovCiAJcHRlX2ZsYWdzID0gMDsKIAlpZiAodm1hLT5vYmotPmd0X3JvKQpAQCAtMjQ2 OSw3ICsyNDc5LDcgQEAgc3RhdGljIGludCBhbGlhc2luZ19ndHRfYmluZF92bWEoc3RydWN0IGk5 MTVfdm1hICp2bWEsCiAJCQkJCQkJICAgICB2bWEtPm5vZGUuc3RhcnQsCiAJCQkJCQkJICAgICB2 bWEtPnNpemUpOwogCQkJaWYgKHJldCkKLQkJCQlnb3RvIGVycl9wYWdlczsKKwkJCQlyZXR1cm4g cmV0OwogCQl9CiAKIAkJYXBwZ3R0LT5iYXNlLmluc2VydF9lbnRyaWVzKCZhcHBndHQtPmJhc2Us IHZtYSwgY2FjaGVfbGV2ZWwsCkBAIC0yNDgzLDE3ICsyNDkzLDYgQEAgc3RhdGljIGludCBhbGlh c2luZ19ndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJfQogCiAJcmV0dXJuIDA7 Ci0KLWVycl9wYWdlczoKLQlpZiAoISh2bWEtPmZsYWdzICYgKEk5MTVfVk1BX0dMT0JBTF9CSU5E IHwgSTkxNV9WTUFfTE9DQUxfQklORCkpKSB7Ci0JCWlmICh2bWEtPnBhZ2VzICE9IHZtYS0+b2Jq LT5tbS5wYWdlcykgewotCQkJR0VNX0JVR19PTighdm1hLT5wYWdlcyk7Ci0JCQlzZ19mcmVlX3Rh YmxlKHZtYS0+cGFnZXMpOwotCQkJa2ZyZWUodm1hLT5wYWdlcyk7Ci0JCX0KLQkJdm1hLT5wYWdl cyA9IE5VTEw7Ci0JfQotCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIGFsaWFzaW5nX2d0 dF91bmJpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQpAQCAtMjUzMSw2ICsyNTMwLDE5IEBA IHZvaWQgaTkxNV9nZW1fZ3R0X2ZpbmlzaF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAogCWRtYV91bm1hcF9zZyhrZGV2LCBwYWdlcy0+c2dsLCBwYWdlcy0+bmVudHMsIFBD SV9ETUFfQklESVJFQ1RJT05BTCk7CiB9CiAKK3N0YXRpYyBpbnQgZ2d0dF9zZXRfcGFnZXMoc3Ry dWN0IGk5MTVfdm1hICp2bWEpCit7CisJaW50IHJldDsKKworCUdFTV9CVUdfT04odm1hLT5wYWdl cyk7CisKKwlyZXQgPSBpOTE1X2dldF9nZ3R0X3ZtYV9wYWdlcyh2bWEpOworCWlmIChyZXQpCisJ CXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQgaTkxNV9ndHRfY29s b3JfYWRqdXN0KGNvbnN0IHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKIAkJCQkgIHVuc2lnbmVk IGxvbmcgY29sb3IsCiAJCQkJICB1NjQgKnN0YXJ0LApAQCAtMzE1Myw2ICszMTY1LDggQEAgc3Rh dGljIGludCBnZW44X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIAlnZ3R0LT5i YXNlLmNsZWFudXAgPSBnZW42X2dtY2hfcmVtb3ZlOwogCWdndHQtPmJhc2UuYmluZF92bWEgPSBn Z3R0X2JpbmRfdm1hOwogCWdndHQtPmJhc2UudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsK KwlnZ3R0LT5iYXNlLnNldF9wYWdlcyA9IGdndHRfc2V0X3BhZ2VzOworCWdndHQtPmJhc2UuY2xl YXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKIAlnZ3R0LT5iYXNlLmluc2VydF9wYWdlID0gZ2VuOF9n Z3R0X2luc2VydF9wYWdlOwogCWdndHQtPmJhc2UuY2xlYXJfcmFuZ2UgPSBub3BfY2xlYXJfcmFu Z2U7CiAJaWYgKCFVU0VTX0ZVTExfUFBHVFQoZGV2X3ByaXYpIHx8IGludGVsX3NjYW5vdXRfbmVl ZHNfdnRkX3dhKGRldl9wcml2KSkKQEAgLTMyMTEsNiArMzIyNSw4IEBAIHN0YXRpYyBpbnQgZ2Vu Nl9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiAJZ2d0dC0+YmFzZS5pbnNlcnRf ZW50cmllcyA9IGdlbjZfZ2d0dF9pbnNlcnRfZW50cmllczsKIAlnZ3R0LT5iYXNlLmJpbmRfdm1h ID0gZ2d0dF9iaW5kX3ZtYTsKIAlnZ3R0LT5iYXNlLnVuYmluZF92bWEgPSBnZ3R0X3VuYmluZF92 bWE7CisJZ2d0dC0+YmFzZS5zZXRfcGFnZXMgPSBnZ3R0X3NldF9wYWdlczsKKwlnZ3R0LT5iYXNl LmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7CiAJZ2d0dC0+YmFzZS5jbGVhbnVwID0gZ2VuNl9n bWNoX3JlbW92ZTsKIAogCWdndHQtPmludmFsaWRhdGUgPSBnZW42X2dndHRfaW52YWxpZGF0ZTsK QEAgLTMyNTYsNiArMzI3Miw4IEBAIHN0YXRpYyBpbnQgaTkxNV9nbWNoX3Byb2JlKHN0cnVjdCBp OTE1X2dndHQgKmdndHQpCiAJZ2d0dC0+YmFzZS5jbGVhcl9yYW5nZSA9IGk5MTVfZ2d0dF9jbGVh cl9yYW5nZTsKIAlnZ3R0LT5iYXNlLmJpbmRfdm1hID0gZ2d0dF9iaW5kX3ZtYTsKIAlnZ3R0LT5i YXNlLnVuYmluZF92bWEgPSBnZ3R0X3VuYmluZF92bWE7CisJZ2d0dC0+YmFzZS5zZXRfcGFnZXMg PSBnZ3R0X3NldF9wYWdlczsKKwlnZ3R0LT5iYXNlLmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7 CiAJZ2d0dC0+YmFzZS5jbGVhbnVwID0gaTkxNV9nbWNoX3JlbW92ZTsKIAogCWdndHQtPmludmFs aWRhdGUgPSBnbWNoX2dndHRfaW52YWxpZGF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmgKaW5kZXggODhlOTcyNGQ1ZmM3Li44N2YzY2VhY2E1YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5oCkBAIC0zMzQsNiArMzM0LDggQEAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSB7CiAJaW50ICgqYmluZF92bWEpKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCQkJZW51bSBpOTE1 X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAogCQkJdTMyIGZsYWdzKTsKKwlpbnQgKCpzZXRfcGFn ZXMpKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKKwl2b2lkICgqY2xlYXJfcGFnZXMpKHN0cnVjdCBp OTE1X3ZtYSAqdm1hKTsKIAogCUk5MTVfU0VMRlRFU1RfREVDTEFSRShzdHJ1Y3QgZmF1bHRfYXR0 ciBmYXVsdF9hdHRyKTsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwppbmRleCAwMmQxYTVlYWNi MDAuLjQ5YmY0OTU3MWU0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCkBAIC0yNjYsNiArMjY2 LDggQEAgaW50IGk5MTVfdm1hX2JpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEsIGVudW0gaTkxNV9j YWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKIAlpZiAoYmluZF9mbGFncyA9PSAwKQogCQlyZXR1cm4g MDsKIAorCUdFTV9CVUdfT04oIXZtYS0+cGFnZXMpOworCiAJdHJhY2VfaTkxNV92bWFfYmluZCh2 bWEsIGJpbmRfZmxhZ3MpOwogCXJldCA9IHZtYS0+dm0tPmJpbmRfdm1hKHZtYSwgY2FjaGVfbGV2 ZWwsIGJpbmRfZmxhZ3MpOwogCWlmIChyZXQpCkBAIC00NzEsMjUgKzQ3MywzMSBAQCBpOTE1X3Zt YV9pbnNlcnQoc3RydWN0IGk5MTVfdm1hICp2bWEsIHU2NCBzaXplLCB1NjQgYWxpZ25tZW50LCB1 NjQgZmxhZ3MpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAorCUdFTV9CVUdfT04odm1hLT5w YWdlcyk7CisKKwlyZXQgPSB2bWEtPnZtLT5zZXRfcGFnZXModm1hKTsKKwlpZiAocmV0KQorCQln b3RvIGVycl91bnBpbjsKKwogCWlmIChmbGFncyAmIFBJTl9PRkZTRVRfRklYRUQpIHsKIAkJdTY0 IG9mZnNldCA9IGZsYWdzICYgUElOX09GRlNFVF9NQVNLOwogCQlpZiAoIUlTX0FMSUdORUQob2Zm c2V0LCBhbGlnbm1lbnQpIHx8CiAJCSAgICByYW5nZV9vdmVyZmxvd3Mob2Zmc2V0LCBzaXplLCBl bmQpKSB7CiAJCQlyZXQgPSAtRUlOVkFMOwotCQkJZ290byBlcnJfdW5waW47CisJCQlnb3RvIGVy cl9jbGVhcjsKIAkJfQogCiAJCXJldCA9IGk5MTVfZ2VtX2d0dF9yZXNlcnZlKHZtYS0+dm0sICZ2 bWEtPm5vZGUsCiAJCQkJCSAgIHNpemUsIG9mZnNldCwgb2JqLT5jYWNoZV9sZXZlbCwKIAkJCQkJ ICAgZmxhZ3MpOwogCQlpZiAocmV0KQotCQkJZ290byBlcnJfdW5waW47CisJCQlnb3RvIGVycl9j bGVhcjsKIAl9IGVsc2UgewogCQlyZXQgPSBpOTE1X2dlbV9ndHRfaW5zZXJ0KHZtYS0+dm0sICZ2 bWEtPm5vZGUsCiAJCQkJCSAgc2l6ZSwgYWxpZ25tZW50LCBvYmotPmNhY2hlX2xldmVsLAogCQkJ CQkgIHN0YXJ0LCBlbmQsIGZsYWdzKTsKIAkJaWYgKHJldCkKLQkJCWdvdG8gZXJyX3VucGluOwor CQkJZ290byBlcnJfY2xlYXI7CiAKIAkJR0VNX0JVR19PTih2bWEtPm5vZGUuc3RhcnQgPCBzdGFy dCk7CiAJCUdFTV9CVUdfT04odm1hLT5ub2RlLnN0YXJ0ICsgdm1hLT5ub2RlLnNpemUgPiBlbmQp OwpAQCAtNTA0LDYgKzUxMiw4IEBAIGk5MTVfdm1hX2luc2VydChzdHJ1Y3QgaTkxNV92bWEgKnZt YSwgdTY0IHNpemUsIHU2NCBhbGlnbm1lbnQsIHU2NCBmbGFncykKIAogCXJldHVybiAwOwogCitl cnJfY2xlYXI6CisJdm1hLT52bS0+Y2xlYXJfcGFnZXModm1hKTsKIGVycl91bnBpbjoKIAlpOTE1 X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKIAlyZXR1cm4gcmV0OwpAQCAtNTE3LDYgKzUy Nyw4IEBAIGk5MTVfdm1hX3JlbW92ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAlHRU1fQlVHX09O KCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOwogCUdFTV9CVUdfT04odm1hLT5m bGFncyAmIChJOTE1X1ZNQV9HTE9CQUxfQklORCB8IEk5MTVfVk1BX0xPQ0FMX0JJTkQpKTsKIAor CXZtYS0+dm0tPmNsZWFyX3BhZ2VzKHZtYSk7CisKIAlkcm1fbW1fcmVtb3ZlX25vZGUoJnZtYS0+ bm9kZSk7CiAJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZtYS0+dm0tPnVuYm91bmRf bGlzdCk7CiAKQEAgLTU2OSw4ICs1ODEsOCBAQCBpbnQgX19pOTE1X3ZtYV9kb19waW4oc3RydWN0 IGk5MTVfdm1hICp2bWEsCiAKIGVycl9yZW1vdmU6CiAJaWYgKChib3VuZCAmIEk5MTVfVk1BX0JJ TkRfTUFTSykgPT0gMCkgewotCQlHRU1fQlVHX09OKHZtYS0+cGFnZXMpOwogCQlpOTE1X3ZtYV9y ZW1vdmUodm1hKTsKKwkJR0VNX0JVR19PTih2bWEtPnBhZ2VzKTsKIAl9CiBlcnJfdW5waW46CiAJ X19pOTE1X3ZtYV91bnBpbih2bWEpOwpAQCAtNjk1LDEzICs3MDcsNiBAQCBpbnQgaTkxNV92bWFf dW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCX0KIAl2bWEtPmZsYWdzICY9IH4oSTkxNV9W TUFfR0xPQkFMX0JJTkQgfCBJOTE1X1ZNQV9MT0NBTF9CSU5EKTsKIAotCWlmICh2bWEtPnBhZ2Vz ICE9IG9iai0+bW0ucGFnZXMpIHsKLQkJR0VNX0JVR19PTighdm1hLT5wYWdlcyk7Ci0JCXNnX2Zy ZWVfdGFibGUodm1hLT5wYWdlcyk7Ci0JCWtmcmVlKHZtYS0+cGFnZXMpOwotCX0KLQl2bWEtPnBh Z2VzID0gTlVMTDsKLQogCWk5MTVfdm1hX3JlbW92ZSh2bWEpOwogCiBkZXN0cm95OgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19ndHQuYwppbmRleCBmMjExOGNmNTM1YTAuLjMz NmUxYWZiMjUwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21v Y2tfZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMK QEAgLTQzLDcgKzQzLDYgQEAgc3RhdGljIGludCBtb2NrX2JpbmRfcHBndHQoc3RydWN0IGk5MTVf dm1hICp2bWEsCiAJCQkgICB1MzIgZmxhZ3MpCiB7CiAJR0VNX0JVR19PTihmbGFncyAmIEk5MTVf Vk1BX0dMT0JBTF9CSU5EKTsKLQl2bWEtPnBhZ2VzID0gdm1hLT5vYmotPm1tLnBhZ2VzOwogCXZt YS0+ZmxhZ3MgfD0gSTkxNV9WTUFfTE9DQUxfQklORDsKIAlyZXR1cm4gMDsKIH0KQEAgLTg0LDYg KzgzLDggQEAgbW9ja19wcGd0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlwcGd0 dC0+YmFzZS5pbnNlcnRfZW50cmllcyA9IG1vY2tfaW5zZXJ0X2VudHJpZXM7CiAJcHBndHQtPmJh c2UuYmluZF92bWEgPSBtb2NrX2JpbmRfcHBndHQ7CiAJcHBndHQtPmJhc2UudW5iaW5kX3ZtYSA9 IG1vY2tfdW5iaW5kX3BwZ3R0OworCXBwZ3R0LT5iYXNlLnNldF9wYWdlcyA9IHBwZ3R0X3NldF9w YWdlczsKKwlwcGd0dC0+YmFzZS5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwogCXBwZ3R0LT5i YXNlLmNsZWFudXAgPSBtb2NrX2NsZWFudXA7CiAKIAlyZXR1cm4gcHBndHQ7CkBAIC05MywxMiAr OTQsNiBAQCBzdGF0aWMgaW50IG1vY2tfYmluZF9nZ3R0KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAog CQkJICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCiAJCQkgIHUzMiBmbGFncykK IHsKLQlpbnQgZXJyOwotCi0JZXJyID0gaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXModm1hKTsKLQlp ZiAoZXJyKQotCQlyZXR1cm4gZXJyOwotCiAJdm1hLT5mbGFncyB8PSBJOTE1X1ZNQV9HTE9CQUxf QklORCB8IEk5MTVfVk1BX0xPQ0FMX0JJTkQ7CiAJcmV0dXJuIDA7CiB9CkBAIC0xMjQsNiArMTE5 LDggQEAgdm9pZCBtb2NrX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK IAlnZ3R0LT5iYXNlLmluc2VydF9lbnRyaWVzID0gbW9ja19pbnNlcnRfZW50cmllczsKIAlnZ3R0 LT5iYXNlLmJpbmRfdm1hID0gbW9ja19iaW5kX2dndHQ7CiAJZ2d0dC0+YmFzZS51bmJpbmRfdm1h ID0gbW9ja191bmJpbmRfZ2d0dDsKKwlnZ3R0LT5iYXNlLnNldF9wYWdlcyA9IGdndHRfc2V0X3Bh Z2VzOworCWdndHQtPmJhc2UuY2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKIAlnZ3R0LT5iYXNl LmNsZWFudXAgPSBtb2NrX2NsZWFudXA7CiAKIAlpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdCgmZ2d0 dC0+YmFzZSwgaTkxNSwgImdsb2JhbCIpOwotLSAKMi4xMy41CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK