From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 06/17] drm/i915: Move aliasing_ppgtt underneath its i915_ggtt Date: Tue, 30 Jul 2019 14:30:24 +0100 Message-ID: <20190730133035.1977-7-chris@chris-wilson.co.uk> References: <20190730133035.1977-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 6FB746E50C for ; Tue, 30 Jul 2019 13:32:34 +0000 (UTC) In-Reply-To: <20190730133035.1977-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 VGhlIGFsaWFzaW5nX3BwZ3R0IHByb3ZpZGVzIGEgUElOX1VTRVIgYWxpYXMgZm9yIHRoZSBnbG9i YWwgZ3R0LCBzbyBtb3ZlCml0IHVuZGVyIHRoZSBpOTE1X2dndHQgdG8gc2ltcGxpZnkgbGF0ZXIg dHJhbnNmb3JtYXRpb25zIHRvIGVuYWJsZQppbnRlbF9jb250ZXh0LnZtLgoKU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyAgIHwgIDcgKy0KIC4uLi9kcm0vaTkx NS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgICAgfCA2OSArKysrKysrKysrKystLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgMyAtCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAgICAgfCAzNiArKysrKy0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCAgICAgICAgICAgfCAgMyAr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICAgICAgfCAgMiArLQog NyBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCBmZmI1OWQ5NmQ0 ZDguLjBmNmIwNjc4ZjU0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f Y29udGV4dC5jCkBAIC00NTksOCArNDU5LDcgQEAgX19jcmVhdGVfY29udGV4dChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpOTE1X2dlbV9jb250ZXh0X3NldF9yZWNvdmVyYWJsZShj dHgpOwogCiAJY3R4LT5yaW5nX3NpemUgPSA0ICogUEFHRV9TSVpFOwotCWN0eC0+ZGVzY190ZW1w bGF0ZSA9Ci0JCWRlZmF1bHRfZGVzY190ZW1wbGF0ZShpOTE1LCAmaTkxNS0+bW0uYWxpYXNpbmdf cHBndHQtPnZtKTsKKwljdHgtPmRlc2NfdGVtcGxhdGUgPSBkZWZhdWx0X2Rlc2NfdGVtcGxhdGUo aTkxNSwgTlVMTCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdHgtPmhhbmdfdGlt ZXN0YW1wKTsgaSsrKQogCQljdHgtPmhhbmdfdGltZXN0YW1wW2ldID0gamlmZmllcyAtIENPTlRF WFRfRkFTVF9IQU5HX0pJRkZJRVM7CkBAIC0yMjU4LDggKzIyNTcsOCBAQCBpbnQgaTkxNV9nZW1f Y29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAogCQlhcmdzLT5zaXplID0gMDsKIAkJaWYgKGN0eC0+dm0pCiAJCQlhcmdzLT52YWx1ZSA9IGN0 eC0+dm0tPnRvdGFsOwotCQllbHNlIGlmICh0b19pOTE1KGRldiktPm1tLmFsaWFzaW5nX3BwZ3R0 KQotCQkJYXJncy0+dmFsdWUgPSB0b19pOTE1KGRldiktPm1tLmFsaWFzaW5nX3BwZ3R0LT52bS50 b3RhbDsKKwkJZWxzZSBpZiAodG9faTkxNShkZXYpLT5nZ3R0LmFsaWFzKQorCQkJYXJncy0+dmFs dWUgPSB0b19pOTE1KGRldiktPmdndHQuYWxpYXMtPnZtLnRvdGFsOwogCQllbHNlCiAJCQlhcmdz LT52YWx1ZSA9IHRvX2k5MTUoZGV2KS0+Z2d0dC52bS50b3RhbDsKIAkJYnJlYWs7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5j CmluZGV4IGRiNzg1NmYwZjMxZS4uYmJkMTdkNGI4ZmZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtMTE5MCw3 ICsxMTkwLDcgQEAgc3RhdGljIGludCBpZ3RfY3R4X3JlYWRvbmx5KHZvaWQgKmFyZykKIAkJZ290 byBvdXRfdW5sb2NrOwogCX0KIAotCXZtID0gY3R4LT52bSA/OiAmaTkxNS0+bW0uYWxpYXNpbmdf cHBndHQtPnZtOworCXZtID0gY3R4LT52bSA/OiAmaTkxNS0+Z2d0dC5hbGlhcy0+dm07CiAJaWYg KCF2bSB8fCAhdm0tPmhhc19yZWFkX29ubHkpIHsKIAkJZXJyID0gMDsKIAkJZ290byBvdXRfdW5s b2NrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ2J1ZmZl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDVj N2YyZmRjNWVjMy4uMTFhZmU2NGNjMjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfcmluZ2J1ZmZlci5jCkBAIC0xMzc2LDMwICsxMzc2LDQxIEBAIHN0YXRpYyB2b2lkIHJpbmdf Y29udGV4dF9kZXN0cm95KHN0cnVjdCBrcmVmICpyZWYpCiAJaW50ZWxfY29udGV4dF9mcmVlKGNl KTsKIH0KIAotc3RhdGljIGludCBfX2NvbnRleHRfcGluX3BwZ3R0KHN0cnVjdCBpOTE1X2dlbV9j b250ZXh0ICpjdHgpCitzdGF0aWMgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm1fYWxpYXMo c3RydWN0IGludGVsX2NvbnRleHQgKmNlKQoreworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KnZtOworCisJdm0gPSBjZS0+Z2VtX2NvbnRleHQtPnZtOworCWlmICghdm0pCisJCXZtID0gJmNl LT5lbmdpbmUtPmd0LT5nZ3R0LT5hbGlhcy0+dm07CisKKwlyZXR1cm4gdm07Cit9CisKK3N0YXRp YyBpbnQgX19jb250ZXh0X3Bpbl9wcGd0dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CiAJ c3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07CiAJaW50IGVyciA9IDA7CiAKLQl2bSA9IGN0 eC0+dm0gPzogJmN0eC0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtOworCXZtID0gdm1fYWxp YXMoY2UpOwogCWlmICh2bSkKIAkJZXJyID0gZ2VuNl9wcGd0dF9waW4oaTkxNV92bV90b19wcGd0 dCgodm0pKSk7CiAKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBfX2NvbnRleHRfdW5w aW5fcHBndHQoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKK3N0YXRpYyB2b2lkIF9fY29u dGV4dF91bnBpbl9wcGd0dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CiAJc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm07CiAKLQl2bSA9IGN0eC0+dm0gPzogJmN0eC0+aTkxNS0+bW0u YWxpYXNpbmdfcHBndHQtPnZtOworCXZtID0gdm1fYWxpYXMoY2UpOwogCWlmICh2bSkKIAkJZ2Vu Nl9wcGd0dF91bnBpbihpOTE1X3ZtX3RvX3BwZ3R0KHZtKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJp bmdfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7Ci0JX19jb250ZXh0 X3VucGluX3BwZ3R0KGNlLT5nZW1fY29udGV4dCk7CisJX19jb250ZXh0X3VucGluX3BwZ3R0KGNl KTsKIH0KIAogc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqCkBAIC0xNDkzLDcgKzE1MDQsNyBAQCBz dGF0aWMgaW50IHJpbmdfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogCWlm IChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQllcnIgPSBfX2NvbnRleHRfcGluX3BwZ3R0KGNlLT5n ZW1fY29udGV4dCk7CisJZXJyID0gX19jb250ZXh0X3Bpbl9wcGd0dChjZSk7CiAJaWYgKGVycikK IAkJZ290byBlcnJfYWN0aXZlOwogCkBAIC0xNjg1LDcgKzE2OTYsNyBAQCBzdGF0aWMgaW5saW5l IGludCBtaV9zZXRfY29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIGZsYWdzKQog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHJlbWFwX2wzKHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxLCBpbnQgc2xpY2UpCitzdGF0aWMgaW50IHJlbWFwX2wzX3NsaWNlKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxLCBpbnQgc2xpY2UpCiB7CiAJdTMyICpjcywgKnJlbWFwX2luZm8gPSBycS0+aTkx NS0+bDNfcGFyaXR5LnJlbWFwX2luZm9bc2xpY2VdOwogCWludCBpOwpAQCAtMTcxMywxNSArMTcy NCwzNCBAQCBzdGF0aWMgaW50IHJlbWFwX2wzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBpbnQg c2xpY2UpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgcmVtYXBfbDMoc3RydWN0IGk5MTVf cmVxdWVzdCAqcnEpCit7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IHJxLT5nZW1f Y29udGV4dDsKKwlpbnQgaSwgZXJyOworCisJaWYgKCFjdHgtPnJlbWFwX3NsaWNlKQorCQlyZXR1 cm4gMDsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfTDNfU0xJQ0VTOyBpKyspIHsKKwkJaWYgKCEo Y3R4LT5yZW1hcF9zbGljZSAmIEJJVChpKSkpCisJCQljb250aW51ZTsKKworCQllcnIgPSByZW1h cF9sM19zbGljZShycSwgaSk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gZXJyOworCX0KKworCWN0 eC0+cmVtYXBfc2xpY2UgPSAwOworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHN3aXRjaF9j b250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSA9IHJxLT5lbmdpbmU7Ci0Jc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9 IHJxLT5nZW1fY29udGV4dDsKLQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9Ci0JCWN0 eC0+dm0gPzogJnJxLT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm07CisJc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0gPSB2bV9hbGlhcyhycS0+aHdfY29udGV4dCk7CiAJdW5zaWduZWQg aW50IHVud2luZF9tbSA9IDA7CiAJdTMyIGh3X2ZsYWdzID0gMDsKLQlpbnQgcmV0LCBpOworCWlu dCByZXQ7CiAKIAlHRU1fQlVHX09OKEhBU19FWEVDTElTVFMocnEtPmk5MTUpKTsKIApAQCAtMTc2 NSw3ICsxNzk1LDcgQEAgc3RhdGljIGludCBzd2l0Y2hfY29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpycSkKIAkJICogYXMgbm90aGluZyBhY3R1YWxseSBleGVjdXRlcyB1c2luZyB0aGUga2Vy bmVsIGNvbnRleHQ7IGl0CiAJCSAqIGlzIHB1cmVseSB1c2VkIGZvciBmbHVzaGluZyB1c2VyIGNv bnRleHRzLgogCQkgKi8KLQkJaWYgKGk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVsKGN0eCkpCisJ CWlmIChpOTE1X2dlbV9jb250ZXh0X2lzX2tlcm5lbChycS0+Z2VtX2NvbnRleHQpKQogCQkJaHdf ZmxhZ3MgPSBNSV9SRVNUT1JFX0lOSElCSVQ7CiAKIAkJcmV0ID0gbWlfc2V0X2NvbnRleHQocnEs IGh3X2ZsYWdzKTsKQEAgLTE3OTksMTggKzE4MjksOSBAQCBzdGF0aWMgaW50IHN3aXRjaF9jb250 ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogCQkJZ290byBlcnJfbW07CiAJfQogCi0JaWYg KGN0eC0+cmVtYXBfc2xpY2UpIHsKLQkJZm9yIChpID0gMDsgaSA8IE1BWF9MM19TTElDRVM7IGkr KykgewotCQkJaWYgKCEoY3R4LT5yZW1hcF9zbGljZSAmIEJJVChpKSkpCi0JCQkJY29udGludWU7 Ci0KLQkJCXJldCA9IHJlbWFwX2wzKHJxLCBpKTsKLQkJCWlmIChyZXQpCi0JCQkJZ290byBlcnJf bW07Ci0JCX0KLQotCQljdHgtPnJlbWFwX3NsaWNlID0gMDsKLQl9CisJcmV0ID0gcmVtYXBfbDMo cnEpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX21tOwogCiAJcmV0dXJuIDA7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCmluZGV4IGI1MTZlNmEwMmI2MS4uM2RkZWJhNWM3YjhkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKQEAgLTc4NCw5ICs3ODQsNiBAQCBzdHJ1Y3QgaTkxNV9nZW1fbW0gewog CSAqLwogCXN0cnVjdCB2ZnNtb3VudCAqZ2VtZnM7CiAKLQkvKiogUFBHVFQgdXNlZCBmb3IgYWxp YXNpbmcgdGhlIFBQR1RUIHdpdGggdGhlIEdUVCAqLwotCXN0cnVjdCBpOTE1X3BwZ3R0ICphbGlh c2luZ19wcGd0dDsKLQogCXN0cnVjdCBub3RpZmllcl9ibG9jayBvb21fbm90aWZpZXI7CiAJc3Ry dWN0IG5vdGlmaWVyX2Jsb2NrIHZtYXBfbm90aWZpZXI7CiAJc3RydWN0IHNocmlua2VyIHNocmlu a2VyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCA0MjNjODkwZDAzYmYuLmMz MDI4NzIyZDRlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTI0NDYsMTgg KzI0NDYsMTggQEAgc3RhdGljIGludCBhbGlhc2luZ19ndHRfYmluZF92bWEoc3RydWN0IGk5MTVf dm1hICp2bWEsCiAJCXB0ZV9mbGFncyB8PSBQVEVfUkVBRF9PTkxZOwogCiAJaWYgKGZsYWdzICYg STkxNV9WTUFfTE9DQUxfQklORCkgewotCQlzdHJ1Y3QgaTkxNV9wcGd0dCAqYXBwZ3R0ID0gaTkx NS0+bW0uYWxpYXNpbmdfcHBndHQ7CisJCXN0cnVjdCBpOTE1X3BwZ3R0ICphbGlhcyA9IGk5MTVf dm1fdG9fZ2d0dCh2bWEtPnZtKS0+YWxpYXM7CiAKIAkJaWYgKCEodm1hLT5mbGFncyAmIEk5MTVf Vk1BX0xPQ0FMX0JJTkQpKSB7Ci0JCQlyZXQgPSBhcHBndHQtPnZtLmFsbG9jYXRlX3ZhX3Jhbmdl KCZhcHBndHQtPnZtLAotCQkJCQkJCSAgIHZtYS0+bm9kZS5zdGFydCwKLQkJCQkJCQkgICB2bWEt PnNpemUpOworCQkJcmV0ID0gYWxpYXMtPnZtLmFsbG9jYXRlX3ZhX3JhbmdlKCZhbGlhcy0+dm0s CisJCQkJCQkJICB2bWEtPm5vZGUuc3RhcnQsCisJCQkJCQkJICB2bWEtPnNpemUpOwogCQkJaWYg KHJldCkKIAkJCQlyZXR1cm4gcmV0OwogCQl9CiAKLQkJYXBwZ3R0LT52bS5pbnNlcnRfZW50cmll cygmYXBwZ3R0LT52bSwgdm1hLCBjYWNoZV9sZXZlbCwKLQkJCQkJICBwdGVfZmxhZ3MpOworCQlh bGlhcy0+dm0uaW5zZXJ0X2VudHJpZXMoJmFsaWFzLT52bSwgdm1hLAorCQkJCQkgY2FjaGVfbGV2 ZWwsIHB0ZV9mbGFncyk7CiAJfQogCiAJaWYgKGZsYWdzICYgSTkxNV9WTUFfR0xPQkFMX0JJTkQp IHsKQEAgLTI0ODUsNyArMjQ4NSw4IEBAIHN0YXRpYyB2b2lkIGFsaWFzaW5nX2d0dF91bmJpbmRf dm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCX0KIAogCWlmICh2bWEtPmZsYWdzICYgSTkxNV9W TUFfTE9DQUxfQklORCkgewotCQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9ICZpOTE1 LT5tbS5hbGlhc2luZ19wcGd0dC0+dm07CisJCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt ID0KKwkJCSZpOTE1X3ZtX3RvX2dndHQodm1hLT52bSktPmFsaWFzLT52bTsKIAogCQl2bS0+Y2xl YXJfcmFuZ2Uodm0sIHZtYS0+bm9kZS5zdGFydCwgdm1hLT5zaXplKTsKIAl9CkBAIC0yNTQyLDEz ICsyNTQzLDEyIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3R0X2NvbG9yX2FkanVzdChjb25zdCBzdHJ1 Y3QgZHJtX21tX25vZGUgKm5vZGUsCiAJCSplbmQgLT0gSTkxNV9HVFRfUEFHRV9TSVpFOwogfQog Ci1zdGF0aWMgaW50IGluaXRfYWxpYXNpbmdfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCitzdGF0aWMgaW50IGluaXRfYWxpYXNpbmdfcHBndHQoc3RydWN0IGk5MTVfZ2d0dCAq Z2d0dCkKIHsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmk5MTUtPmdndHQ7CiAJc3RydWN0 IGk5MTVfcHBndHQgKnBwZ3R0OwogCWludCBlcnI7CiAKLQlwcGd0dCA9IGk5MTVfcHBndHRfY3Jl YXRlKGk5MTUpOworCXBwZ3R0ID0gaTkxNV9wcGd0dF9jcmVhdGUoZ2d0dC0+dm0uaTkxNSk7CiAJ aWYgKElTX0VSUihwcGd0dCkpCiAJCXJldHVybiBQVFJfRVJSKHBwZ3R0KTsKIApAQCAtMjU2Nyw3 ICsyNTY3LDcgQEAgc3RhdGljIGludCBpbml0X2FsaWFzaW5nX3BwZ3R0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQogCWlmIChlcnIpCiAJCWdvdG8gZXJyX3BwZ3R0OwogCi0JaTkxNS0+ bW0uYWxpYXNpbmdfcHBndHQgPSBwcGd0dDsKKwlnZ3R0LT5hbGlhcyA9IHBwZ3R0OwogCiAJR0VN X0JVR19PTihnZ3R0LT52bS52bWFfb3BzLmJpbmRfdm1hICE9IGdndHRfYmluZF92bWEpOwogCWdn dHQtPnZtLnZtYV9vcHMuYmluZF92bWEgPSBhbGlhc2luZ19ndHRfYmluZF92bWE7CkBAIC0yNTgy LDE0ICsyNTgyLDE0IEBAIHN0YXRpYyBpbnQgaW5pdF9hbGlhc2luZ19wcGd0dChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBmaW5p X2FsaWFzaW5nX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorc3RhdGljIHZv aWQgZmluaV9hbGlhc2luZ19wcGd0dChzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogewotCXN0cnVj dCBpOTE1X2dndHQgKmdndHQgPSAmaTkxNS0+Z2d0dDsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSA9IGdndHQtPnZtLmk5MTU7CiAJc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0OwogCiAJ bXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQlwcGd0dCA9IGZldGNoX2Fu ZF96ZXJvKCZpOTE1LT5tbS5hbGlhc2luZ19wcGd0dCk7CisJcHBndHQgPSBmZXRjaF9hbmRfemVy bygmZ2d0dC0+YWxpYXMpOwogCWlmICghcHBndHQpCiAJCWdvdG8gb3V0OwogCkBAIC0yNzA2LDcg KzI3MDYsNyBAQCBpbnQgaTkxNV9pbml0X2dndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCiAJCXJldHVybiByZXQ7CiAKIAlpZiAoSU5URUxfUFBHVFQoaTkxNSkgPT0gSU5URUxfUFBH VFRfQUxJQVNJTkcpIHsKLQkJcmV0ID0gaW5pdF9hbGlhc2luZ19wcGd0dChpOTE1KTsKKwkJcmV0 ID0gaW5pdF9hbGlhc2luZ19wcGd0dCgmaTkxNS0+Z2d0dCk7CiAJCWlmIChyZXQpCiAJCQljbGVh bnVwX2luaXRfZ2d0dCgmaTkxNS0+Z2d0dCk7CiAJfQpAQCAtMjc1NSw3ICsyNzU1LDcgQEAgdm9p ZCBpOTE1X2dndHRfZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp CiB7CiAJc3RydWN0IHBhZ2V2ZWMgKnB2ZWM7CiAKLQlmaW5pX2FsaWFzaW5nX3BwZ3R0KGk5MTUp OworCWZpbmlfYWxpYXNpbmdfcHBndHQoJmk5MTUtPmdndHQpOwogCiAJZ2d0dF9jbGVhbnVwX2h3 KCZpOTE1LT5nZ3R0KTsKIApAQCAtMzU4OCw3ICszNTg4LDcgQEAgaW50IGk5MTVfZ2VtX2d0dF9y ZXNlcnZlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCUdFTV9CVUdfT04oIUlTX0FM SUdORUQoc2l6ZSwgSTkxNV9HVFRfUEFHRV9TSVpFKSk7CiAJR0VNX0JVR19PTighSVNfQUxJR05F RChvZmZzZXQsIEk5MTVfR1RUX01JTl9BTElHTk1FTlQpKTsKIAlHRU1fQlVHX09OKHJhbmdlX292 ZXJmbG93cyhvZmZzZXQsIHNpemUsIHZtLT50b3RhbCkpOwotCUdFTV9CVUdfT04odm0gPT0gJnZt LT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm0pOworCUdFTV9CVUdfT04odm0gPT0gJnZtLT5p OTE1LT5nZ3R0LmFsaWFzLT52bSk7CiAJR0VNX0JVR19PTihkcm1fbW1fbm9kZV9hbGxvY2F0ZWQo bm9kZSkpOwogCiAJbm9kZS0+c2l6ZSA9IHNpemU7CkBAIC0zNjg1LDcgKzM2ODUsNyBAQCBpbnQg aTkxNV9nZW1fZ3R0X2luc2VydChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlHRU1f QlVHX09OKHN0YXJ0ID49IGVuZCk7CiAJR0VNX0JVR19PTihzdGFydCA+IDAgICYmICFJU19BTElH TkVEKHN0YXJ0LCBJOTE1X0dUVF9QQUdFX1NJWkUpKTsKIAlHRU1fQlVHX09OKGVuZCA8IFU2NF9N QVggJiYgIUlTX0FMSUdORUQoZW5kLCBJOTE1X0dUVF9QQUdFX1NJWkUpKTsKLQlHRU1fQlVHX09O KHZtID09ICZ2bS0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtKTsKKwlHRU1fQlVHX09OKHZt ID09ICZ2bS0+aTkxNS0+Z2d0dC5hbGlhcy0+dm0pOwogCUdFTV9CVUdfT04oZHJtX21tX25vZGVf YWxsb2NhdGVkKG5vZGUpKTsKIAogCWlmICh1bmxpa2VseShyYW5nZV9vdmVyZmxvd3Moc3RhcnQs IHNpemUsIGVuZCkpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAppbmRleCBjZWE1OWVm MWEzNjUuLjUxMjc0NDgzNTAyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKQEAg LTM5NCw2ICszOTQsOSBAQCBzdHJ1Y3QgaTkxNV9nZ3R0IHsKIAl2b2lkIF9faW9tZW0gKmdzbTsK IAl2b2lkICgqaW52YWxpZGF0ZSkoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCk7CiAKKwkvKiogUFBH VFQgdXNlZCBmb3IgYWxpYXNpbmcgdGhlIFBQR1RUIHdpdGggdGhlIEdUVCAqLworCXN0cnVjdCBp OTE1X3BwZ3R0ICphbGlhczsKKwogCWJvb2wgZG9faWRsZV9tYXBzOwogCiAJaW50IG10cnI7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV92bWEuYwppbmRleCBlZTczYmFmMjk0MTUuLmViMTZhMWE5M2JiYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZtYS5jCkBAIC0xMDQsNyArMTA0LDcgQEAgdm1hX2NyZWF0ZShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCXN0cnVjdCByYl9ub2RlICpyYiwgKipwOwog CiAJLyogVGhlIGFsaWFzaW5nX3BwZ3R0IHNob3VsZCBuZXZlciBiZSB1c2VkIGRpcmVjdGx5ISAq LwotCUdFTV9CVUdfT04odm0gPT0gJnZtLT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm0pOwor CUdFTV9CVUdfT04odm0gPT0gJnZtLT5pOTE1LT5nZ3R0LmFsaWFzLT52bSk7CiAKIAl2bWEgPSBp OTE1X3ZtYV9hbGxvYygpOwogCWlmICh2bWEgPT0gTlVMTCkKLS0gCjIuMjIuMAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4