From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 09/11] drm/i915/gtt: Recursive ppgtt clear for gen8 Date: Sun, 7 Jul 2019 22:00:22 +0100 Message-ID: <20190707210024.26192-10-chris@chris-wilson.co.uk> References: <20190707210024.26192-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A12C89A9A for ; Sun, 7 Jul 2019 21:02:10 +0000 (UTC) In-Reply-To: <20190707210024.26192-1-chris@chris-wilson.co.uk> 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 V2l0aCBhbiBleHBsaWNpdCBsZXZlbCwgd2UgY2FuIHJlZmFjdG9yIHRoZSBzZXBhcmF0ZSBjbGVh ciBmdW5jdGlvbnMKYXMgYSBzaW1wbGUgcmVjdXJzaXZlIGZ1bmN0aW9uLiBUaGUgYWRkaXRpb25h bCBrbm93bGVkZ2Ugb2YgdGhlIGxldmVsCmFsbG93cyB1cyB0byBzcG90IHdoZW4gd2UgY2FuIGZy ZWUgYW4gZW50aXJlIHN1YnRyZWUgYXQgb25jZS4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tj b25maWcuZGVidWcgIHwgIDE1ICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmMgfCAxNTQgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAx MDUgaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvS2NvbmZpZy5kZWJ1ZyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcu ZGVidWcKaW5kZXggOGQ5MjJiYjRkOTUzLi5lZDhjNzg3MDU4YTUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L0tjb25maWcuZGVidWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv S2NvbmZpZy5kZWJ1ZwpAQCAtOTQsNiArOTQsMjEgQEAgY29uZmlnIERSTV9JOTE1X1RSQUNFX0dF TQogCiAJICBJZiBpbiBkb3VidCwgc2F5ICJOIi4KIAorY29uZmlnIERSTV9JOTE1X1RSQUNFX0dU VAorCWJvb2wgIkluc2VydCBleHRyYSBmdHJhY2Ugb3V0cHV0IGZyb20gdGhlIEdUVCBpbnRlcm5h bHMiCisJZGVwZW5kcyBvbiBEUk1fSTkxNV9ERUJVR19HRU0KKwlzZWxlY3QgVFJBQ0lORworCWRl ZmF1bHQgbgorCWhlbHAKKwkgIEVuYWJsZSBhZGRpdGlvbmFsIGFuZCB2ZXJib3NlIGRlYnVnZ2lu ZyBvdXRwdXQgdGhhdCB3aWxsIHNwYW0KKwkgIG9yZGluYXJ5IHRlc3RzLCBidXQgbWF5IGJlIHZp dGFsIGZvciBwb3N0LW1vcnRlbSBkZWJ1Z2dpbmcgd2hlbgorCSAgdXNlZCB3aXRoIC9wcm9jL3N5 cy9rZXJuZWwvZnRyYWNlX2R1bXBfb25fb29wcworCisJICBSZWNvbW1lbmRlZCBmb3IgZHJpdmVy IGRldmVsb3BlcnMgb25seS4KKworCSAgSWYgaW4gZG91YnQsIHNheSAiTiIuCisKKwogY29uZmln IERSTV9JOTE1X1NXX0ZFTkNFX0RFQlVHX09CSkVDVFMKICAgICAgICAgYm9vbCAiRW5hYmxlIGFk ZGl0aW9uYWwgZHJpdmVyIGRlYnVnZ2luZyBmb3IgZmVuY2Ugb2JqZWN0cyIKICAgICAgICAgZGVw ZW5kcyBvbiBEUk1fSTkxNQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCAwNjI1 YjA3YTExMzIuLmUyZDYxNjlhOGE2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK QEAgLTQ2LDYgKzQ2LDEyIEBACiAKICNkZWZpbmUgSTkxNV9HRlBfQUxMT1dfRkFJTCAoR0ZQX0tF Uk5FTCB8IF9fR0ZQX1JFVFJZX01BWUZBSUwgfCBfX0dGUF9OT1dBUk4pCiAKKyNpZiBJU19FTkFC TEVEKENPTkZJR19EUk1fSTkxNV9UUkFDRV9HVFQpCisjZGVmaW5lIERCRyguLi4pIHRyYWNlX3By aW50ayhfX1ZBX0FSR1NfXykKKyNlbHNlCisjZGVmaW5lIERCRyguLi4pCisjZW5kaWYKKwogLyoq CiAgKiBET0M6IEdsb2JhbCBHVFQgdmlld3MKICAqCkBAIC03OTYsNiArODAyLDkgQEAgcmVsZWFz ZV9wZF9lbnRyeShzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBkLAogewogCWJv b2wgZnJlZSA9IGZhbHNlOwogCisJaWYgKGF0b21pY19hZGRfdW5sZXNzKCZwdC0+dXNlZCwgLTEs IDEpKQorCQlyZXR1cm4gZmFsc2U7CisKIAlzcGluX2xvY2soJnBkLT5sb2NrKTsKIAlpZiAoYXRv bWljX2RlY19hbmRfdGVzdCgmcHQtPnVzZWQpKSB7CiAJCWNsZWFyX3BkX2VudHJ5KHBkLCBpZHgs IHNjcmF0Y2gpOwpAQCAtOTI0LDg2ICs5MzMsMTAxIEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRf Y2xlYW51cChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIAlmcmVlX3NjcmF0Y2godm0p OwogfQogCi0vKiBSZW1vdmVzIGVudHJpZXMgZnJvbSBhIHNpbmdsZSBwYWdlIHRhYmxlLCByZWxl YXNpbmcgaXQgaWYgaXQncyBlbXB0eS4KLSAqIENhbGxlciBjYW4gdXNlIHRoZSByZXR1cm4gdmFs dWUgdG8gdXBkYXRlIGhpZ2hlci1sZXZlbCBlbnRyaWVzLgotICovCi1zdGF0aWMgdm9pZCBnZW44 X3BwZ3R0X2NsZWFyX3B0KGNvbnN0IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJ CXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0LAotCQkJCXU2NCBzdGFydCwgdTY0IGxlbmd0aCkK K3N0YXRpYyB1NjQgX19nZW44X3BwZ3R0X2NsZWFyKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KiBjb25zdCB2bSwKKwkJCSAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICogY29uc3Qg cGQsCisJCQkgICAgICB1NjQgc3RhcnQsIGNvbnN0IHU2NCBlbmQsIGludCBsdmwpCiB7Ci0JY29u c3QgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzID0gZ2VuOF9wdGVfY291bnQoc3RhcnQsIGxlbmd0 aCk7Ci0JZ2VuOF9wdGVfdCAqdmFkZHI7CisJY29uc3Qgc3RydWN0IGk5MTVfcGFnZV9zY3JhdGNo ICogY29uc3Qgc2NyYXRjaCA9ICZ2bS0+c2NyYXRjaFtsdmxdOworCXVuc2lnbmVkIGludCBpZHgs IGxlbjsKIAotCXZhZGRyID0ga21hcF9hdG9taWNfcHgocHQpOwotCW1lbXNldDY0KHZhZGRyICsg Z2VuOF9wdGVfaW5kZXgoc3RhcnQpLAotCQkgdm0tPnNjcmF0Y2hbMF0uZW5jb2RlLAotCQkgbnVt X2VudHJpZXMpOwotCWt1bm1hcF9hdG9taWModmFkZHIpOworCWxlbiA9IGdlbjhfcGRfcmFuZ2Uo c3RhcnQsIGVuZCwgbHZsLS0sICZpZHgpOworCURCRygiJXMoJXApOnsgbHZsOiVkLCBzdGFydDol bGx4LCBlbmQ6JWxseCwgaWR4OiVkLCBsZW46JWQsIHVzZWQ6JWR9XG4iLAorCSAgICBfX2Z1bmNf Xywgdm0sIGx2bCArIDEsIHN0YXJ0LCBlbmQsCisJICAgIGlkeCwgbGVuLCBhdG9taWNfcmVhZChw eF91c2VkKHBkKSkpOworCUdFTV9CVUdfT04oIWxlbiB8fCBsZW4gPj0gYXRvbWljX3JlYWQocHhf dXNlZChwZCkpKTsKIAotCUdFTV9CVUdfT04obnVtX2VudHJpZXMgPiBhdG9taWNfcmVhZCgmcHQt PnVzZWQpKTsKKwlkbyB7CisJCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0ID0gcGQtPmVudHJ5 W2lkeF07CisKKwkJaWYgKGF0b21pY19mZXRjaF9pbmMoJnB0LT51c2VkKSA+PiBnZW44X3BkX3No aWZ0KDEpICYmCisJCSAgICBnZW44X3BkX3N1YnN1bWVzKHN0YXJ0LCBlbmQsIGx2bCkpIHsKKwkJ CURCRygiJXMoJXApOnsgbHZsOiVkLCBpZHg6JWQsIHN0YXJ0OiVsbHgsIGVuZDolbGx4IH0gcmVt b3ZpbmcgcGRcbiIsCisJCQkgICAgX19mdW5jX18sIHZtLCBsdmwgKyAxLCBpZHgsIHN0YXJ0LCBl bmQpOworCQkJY2xlYXJfcGRfZW50cnkocGQsIGlkeCwgc2NyYXRjaCk7CisJCQlfX2dlbjhfcHBn dHRfY2xlYW51cCh2bSwgYXNfcGQocHQpLCBJOTE1X1BERVMsIGx2bCk7CisJCQlzdGFydCArPSAo dTY0KUk5MTVfUERFUyA8PCBnZW44X3BkX3NoaWZ0KGx2bCk7CisJCQljb250aW51ZTsKKwkJfQog Ci0JYXRvbWljX3N1YihudW1fZW50cmllcywgJnB0LT51c2VkKTsKLX0KKwkJaWYgKGx2bCkgewor CQkJc3RhcnQgPSBfX2dlbjhfcHBndHRfY2xlYXIodm0sIGFzX3BkKHB0KSwKKwkJCQkJCSAgIHN0 YXJ0LCBlbmQsIGx2bCk7CisJCX0gZWxzZSB7CisJCQl1bnNpZ25lZCBpbnQgY291bnQ7CisJCQl1 NjQgKnZhZGRyOwogCi1zdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyX3BkKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCwK LQkJCQl1NjQgc3RhcnQsIHU2NCBsZW5ndGgpCi17Ci0Jc3RydWN0IGk5MTVfcGFnZV90YWJsZSAq cHQ7Ci0JdTMyIHBkZTsKKwkJCWNvdW50ID0gZ2VuOF9wdF9jb3VudChzdGFydCwgZW5kKTsKKwkJ CURCRygiJXMoJXApOnsgbHZsOiVkLCBzdGFydDolbGx4LCBlbmQ6JWxseCwgaWR4OiVkLCBsZW46 JWQsIHVzZWQ6JWR9IHJlbW92aW5nIHB0ZVxuIiwKKwkJCSAgICBfX2Z1bmNfXywgdm0sIGx2bCwg c3RhcnQsIGVuZCwKKwkJCSAgICBnZW44X3BkX2luZGV4KHN0YXJ0LCAwKSwgY291bnQsCisJCQkg ICAgYXRvbWljX3JlYWQoJnB0LT51c2VkKSk7CisJCQlHRU1fQlVHX09OKCFjb3VudCB8fCBjb3Vu dCA+PSBhdG9taWNfcmVhZCgmcHQtPnVzZWQpKTsKIAotCWdlbjhfZm9yX2VhY2hfcGRlKHB0LCBw ZCwgc3RhcnQsIGxlbmd0aCwgcGRlKSB7Ci0JCWF0b21pY19pbmMoJnB0LT51c2VkKTsKLQkJZ2Vu OF9wcGd0dF9jbGVhcl9wdCh2bSwgcHQsIHN0YXJ0LCBsZW5ndGgpOwotCQlpZiAocmVsZWFzZV9w ZF9lbnRyeShwZCwgcGRlLCBwdCwgJnZtLT5zY3JhdGNoWzFdKSkKKwkJCXZhZGRyID0ga21hcF9h dG9taWNfcHgocHQpOworCQkJbWVtc2V0NjQodmFkZHIgKyBnZW44X3BkX2luZGV4KHN0YXJ0LCAw KSwKKwkJCQkgdm0tPnNjcmF0Y2hbMF0uZW5jb2RlLAorCQkJCSBjb3VudCk7CisJCQlrdW5tYXBf YXRvbWljKHZhZGRyKTsKKworCQkJYXRvbWljX3N1Yihjb3VudCwgJnB0LT51c2VkKTsKKwkJCXN0 YXJ0ICs9IGNvdW50OworCQl9CisKKwkJaWYgKHJlbGVhc2VfcGRfZW50cnkocGQsIGlkeCwgcHQs IHNjcmF0Y2gpKQogCQkJZnJlZV9weCh2bSwgcHQpOwotCX0KKwl9IHdoaWxlIChpZHgrKywgLS1s ZW4pOworCisJcmV0dXJuIHN0YXJ0OwogfQogCi0vKiBSZW1vdmVzIGVudHJpZXMgZnJvbSBhIHNp bmdsZSBwYWdlIGRpciBwb2ludGVyLCByZWxlYXNpbmcgaXQgaWYgaXQncyBlbXB0eS4KLSAqIENh bGxlciBjYW4gdXNlIHRoZSByZXR1cm4gdmFsdWUgdG8gdXBkYXRlIGhpZ2hlci1sZXZlbCBlbnRy aWVzCi0gKi8KLXN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYXJfcGRwKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtLAotCQkJCSBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNvbnN0 IHBkcCwKLQkJCQkgdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoKQorc3RhdGljIHZvaWQgZ2VuOF9wcGd0 dF9jbGVhcihzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKKwkJCSAgICAgdTY0IHN0YXJ0 LCB1NjQgbGVuZ3RoKQogewotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKLQl1bnNp Z25lZCBpbnQgcGRwZTsKKwlHRU1fQlVHX09OKCFJU19BTElHTkVEKHN0YXJ0LCBCSVRfVUxMKEdF TjhfUFRFX1NISUZUKSkpOworCUdFTV9CVUdfT04oIUlTX0FMSUdORUQobGVuZ3RoLCBCSVRfVUxM KEdFTjhfUFRFX1NISUZUKSkpOwogCi0JZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCBwZHAsIHN0YXJ0 LCBsZW5ndGgsIHBkcGUpIHsKLQkJYXRvbWljX2luYyhweF91c2VkKHBkKSk7Ci0JCWdlbjhfcHBn dHRfY2xlYXJfcGQodm0sIHBkLCBzdGFydCwgbGVuZ3RoKTsKLQkJaWYgKHJlbGVhc2VfcGRfZW50 cnkocGRwLCBwZHBlLCAmcGQtPnB0LCAmdm0tPnNjcmF0Y2hbMl0pKQotCQkJZnJlZV9weCh2bSwg cGQpOwotCX0KKwlzdGFydCA+Pj0gR0VOOF9QVEVfU0hJRlQ7CisJbGVuZ3RoID4+PSBHRU44X1BU RV9TSElGVDsKKwlHRU1fQlVHX09OKGxlbmd0aCA9PSAwKTsKKworCV9fZ2VuOF9wcGd0dF9jbGVh cih2bSwgaTkxNV92bV90b19wcGd0dCh2bSktPnBkLAorCQkJICAgc3RhcnQsIHN0YXJ0ICsgbGVu Z3RoLCB2bS0+dG9wKTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcl8zbHZsKHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJCSAgdTY0IHN0YXJ0LCB1NjQgbGVuZ3Ro KQorc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcl9wZChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlICp2bSwKKwkJCQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQsCisJCQkJdTY0IHN0 YXJ0LCB1NjQgbGVuZ3RoKQogewotCWdlbjhfcHBndHRfY2xlYXJfcGRwKHZtLCBpOTE1X3ZtX3Rv X3BwZ3R0KHZtKS0+cGQsIHN0YXJ0LCBsZW5ndGgpOworCUdFTV9CVUdfT04oIUlTX0FMSUdORUQo c3RhcnQsIEJJVF9VTEwoR0VOOF9QVEVfU0hJRlQpKSk7CisJR0VNX0JVR19PTighSVNfQUxJR05F RChsZW5ndGgsIEJJVF9VTEwoR0VOOF9QVEVfU0hJRlQpKSk7CisKKwlzdGFydCA+Pj0gR0VOOF9Q VEVfU0hJRlQ7CisJbGVuZ3RoID4+PSBHRU44X1BURV9TSElGVDsKKworCV9fZ2VuOF9wcGd0dF9j bGVhcih2bSwgcGQsIHN0YXJ0LCBzdGFydCArIGxlbmd0aCwgMSk7CiB9CiAKLS8qIFJlbW92ZXMg ZW50cmllcyBmcm9tIGEgc2luZ2xlIHBtbDQuCi0gKiBUaGlzIGlzIHRoZSB0b3AtbGV2ZWwgc3Ry dWN0dXJlIGluIDQtbGV2ZWwgcGFnZSB0YWJsZXMgdXNlZCBvbiBnZW44Ky4KLSAqIEVtcHR5IGVu dHJpZXMgYXJlIGFsd2F5cyBzY3JhdGNoIHBtbDRlLgotICovCi1zdGF0aWMgdm9pZCBnZW44X3Bw Z3R0X2NsZWFyXzRsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0JCQkJICB1NjQg c3RhcnQsIHU2NCBsZW5ndGgpCitzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyX3BkcChzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKKwkJCQkgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3Rv cnkgKiBjb25zdCBwZHAsCisJCQkJIHU2NCBzdGFydCwgdTY0IGxlbmd0aCkKIHsKLQlzdHJ1Y3Qg aTkxNV9wcGd0dCAqcHBndHQgPSBpOTE1X3ZtX3RvX3BwZ3R0KHZtKTsKLQlzdHJ1Y3QgaTkxNV9w YWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBtbDQgPSBwcGd0dC0+cGQ7Ci0Jc3RydWN0IGk5MTVfcGFn ZV9kaXJlY3RvcnkgKnBkcDsKLQl1bnNpZ25lZCBpbnQgcG1sNGU7CisJR0VNX0JVR19PTighSVNf QUxJR05FRChzdGFydCwgQklUX1VMTChHRU44X1BURV9TSElGVCkpKTsKKwlHRU1fQlVHX09OKCFJ U19BTElHTkVEKGxlbmd0aCwgQklUX1VMTChHRU44X1BURV9TSElGVCkpKTsKIAotCUdFTV9CVUdf T04oIWk5MTVfdm1faXNfNGx2bCh2bSkpOworCXN0YXJ0ID4+PSBHRU44X1BURV9TSElGVDsKKwls ZW5ndGggPj49IEdFTjhfUFRFX1NISUZUOwogCi0JZ2VuOF9mb3JfZWFjaF9wbWw0ZShwZHAsIHBt bDQsIHN0YXJ0LCBsZW5ndGgsIHBtbDRlKSB7Ci0JCWF0b21pY19pbmMocHhfdXNlZChwZHApKTsK LQkJZ2VuOF9wcGd0dF9jbGVhcl9wZHAodm0sIHBkcCwgc3RhcnQsIGxlbmd0aCk7Ci0JCWlmIChy ZWxlYXNlX3BkX2VudHJ5KHBtbDQsIHBtbDRlLCAmcGRwLT5wdCwgJnZtLT5zY3JhdGNoWzNdKSkK LQkJCWZyZWVfcHgodm0sIHBkcCk7Ci0JfQorCV9fZ2VuOF9wcGd0dF9jbGVhcih2bSwgcGRwLCBz dGFydCwgc3RhcnQgKyBsZW5ndGgsIDIpOwogfQogCiBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxs b2NfcGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCkBAIC0xMTY4LDcgKzExOTIsNyBA QCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfNGx2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlICp2bSwKIAlpZiAocmVsZWFzZV9wZF9lbnRyeShwbWw0LCBwbWw0ZSwgJnBkcC0+cHQsICZ2 bS0+c2NyYXRjaFszXSkpCiAJCWZyZWVfcHgodm0sIHBkcCk7CiB1bndpbmQ6Ci0JZ2VuOF9wcGd0 dF9jbGVhcl80bHZsKHZtLCBmcm9tLCBzdGFydCAtIGZyb20pOworCWdlbjhfcHBndHRfY2xlYXIo dm0sIGZyb20sIHN0YXJ0IC0gZnJvbSk7CiBvdXQ6CiAJaWYgKGFsbG9jKQogCQlmcmVlX3B4KHZt LCBhbGxvYyk7CkBAIC0xNDgxLDYgKzE1MDUsNyBAQCBzdGF0aWMgaW50IGdlbjhfcHJlYWxsb2Nh dGVfdG9wX2xldmVsX3BkcChzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQpCiAKIAkJZmlsbF9weChw ZCwgdm0tPnNjcmF0Y2hbMV0uZW5jb2RlKTsKIAkJc2V0X3BkX2VudHJ5KHBkcCwgcGRwZSwgcGQp OworCQlhdG9taWNfaW5jKHB4X3VzZWQocGQpKTsgLyoga2VlcCBwaW5uZWQgKi8KIAl9CiAKIAly ZXR1cm4gMDsKQEAgLTE1MjMsNiArMTU0OCw3IEBAIGdlbjhfYWxsb2NfdG9wX3BkKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogCX0KIAogCWZpbGxfcGFnZV9kbWEocHhfYmFzZShwZCks IHZtLT5zY3JhdGNoW3ZtLT50b3BdLmVuY29kZSwgY291bnQpOworCWF0b21pY19pbmMocHhfdXNl ZChwZCkpOyAvKiBtYXJrIGFzIHBpbm5lZCAqLwogCXJldHVybiBwZDsKIH0KIApAQCAtMTU3MSw3 ICsxNTk3LDYgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3BwZ3R0ICpnZW44X3BwZ3R0X2NyZWF0ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpZiAoaTkxNV92bV9pc180bHZsKCZwcGd0 dC0+dm0pKSB7CiAJCXBwZ3R0LT52bS5hbGxvY2F0ZV92YV9yYW5nZSA9IGdlbjhfcHBndHRfYWxs b2NfNGx2bDsKIAkJcHBndHQtPnZtLmluc2VydF9lbnRyaWVzID0gZ2VuOF9wcGd0dF9pbnNlcnRf NGx2bDsKLQkJcHBndHQtPnZtLmNsZWFyX3JhbmdlID0gZ2VuOF9wcGd0dF9jbGVhcl80bHZsOwog CX0gZWxzZSB7CiAJCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShpOTE1KSkgewogCQkJZXJyID0gZ2Vu OF9wcmVhbGxvY2F0ZV90b3BfbGV2ZWxfcGRwKHBwZ3R0KTsKQEAgLTE1ODEsOSArMTYwNiwxMCBA QCBzdGF0aWMgc3RydWN0IGk5MTVfcHBndHQgKmdlbjhfcHBndHRfY3JlYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQogCiAJCXBwZ3R0LT52bS5hbGxvY2F0ZV92YV9yYW5nZSA9IGdl bjhfcHBndHRfYWxsb2NfM2x2bDsKIAkJcHBndHQtPnZtLmluc2VydF9lbnRyaWVzID0gZ2VuOF9w cGd0dF9pbnNlcnRfM2x2bDsKLQkJcHBndHQtPnZtLmNsZWFyX3JhbmdlID0gZ2VuOF9wcGd0dF9j bGVhcl8zbHZsOwogCX0KIAorCXBwZ3R0LT52bS5jbGVhcl9yYW5nZSA9IGdlbjhfcHBndHRfY2xl YXI7CisKIAlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoaTkxNSkpCiAJCWdlbjhfcHBndHRfbm90aWZ5 X3ZndChwcGd0dCwgdHJ1ZSk7CiAKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4