From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 5/7] drm/i915: Move register white-listing to the common workaround framework Date: Mon, 3 Dec 2018 12:50:12 +0000 Message-ID: <20181203125014.3219-6-tvrtko.ursulin@linux.intel.com> References: <20181203125014.3219-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id A2C4289CC4 for ; Mon, 3 Dec 2018 12:50:26 +0000 (UTC) In-Reply-To: <20181203125014.3219-1-tvrtko.ursulin@linux.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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkluc3RlYWQg b2YgaGF2aW5nIGEgc2VwYXJhdGUgbGlzdCBvZiB3aGl0ZS1saXN0ZWQgcmVnaXN0ZXJzIHdlIGNh bgp0cml2aWFsbHkgbW92ZSB0aGlzIHRvIHRoZSBjb21tb24gd29ya2Fyb3VuZHMgZnJhbWV3b3Jr LgoKVGhpcyBicmluZ3MgdXMgb25lIHN0ZXAgY2xvc2VyIHRvIHRoZSBnb2FsIG9mIGRyaXZpbmcg YWxsIHdvcmthcm91bmQKY2xhc3NlcyB1c2luZyB0aGUgc2FtZSBjb2RlLgoKdjI6CiAqIFVzZSBH RU1fREVCVUdfV0FSTl9PTiBmb3IgdGhlIHNhbml0eSBjaGVjay4gKENocmlzIFdpbHNvbikKCnYz OgogKiBBUEkgcmVuYW1lLiAoQ2hyaXMgV2lsc29uKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVy c3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2VuZ2luZV9jcy5jICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jICAgICAgICAgICAgICB8ICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmggICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3Jr YXJvdW5kcy5jICAgICAgfCA4MyArKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF93b3JrYXJvdW5kcy5oICAgICAgfCAgMyArLQogLi4uL2RybS9pOTE1L3NlbGZ0 ZXN0cy9pbnRlbF93b3JrYXJvdW5kcy5jICAgIHwgNDAgKysrKy0tLS0tCiA2IGZpbGVzIGNoYW5n ZWQsIDYwIGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZW5naW5lX2NzLmMKaW5kZXggZWY1ZDIwMmU5ZDQ1Li40OTY0NjJkNzdlYmMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC03MjUsNiArNzI1LDcgQEAgdm9p ZCBpbnRlbF9lbmdpbmVfY2xlYW51cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogCWk5MTVfdGltZWxpbmVfZmluaSgmZW5naW5lLT50aW1lbGluZSk7CiAKIAlpbnRlbF93 YV9saXN0X2ZyZWUoJmVuZ2luZS0+d2FfbGlzdCk7CisJaW50ZWxfd2FfbGlzdF9mcmVlKCZlbmdp bmUtPndoaXRlbGlzdCk7CiB9CiAKIHU2NCBpbnRlbF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGNv bnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKaW5kZXggN2E3Nzg3Y2JhZmVlLi5hZjYxYTNjZjljYjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBzdGF0aWMgaW50IGdlbjhfaW5pdF9yZW5kZXJf cmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaWYgKHJldCkKIAkJcmV0dXJu IHJldDsKIAotCWludGVsX3doaXRlbGlzdF93b3JrYXJvdW5kc19hcHBseShlbmdpbmUpOworCWlu dGVsX2VuZ2luZV9hcHBseV93aGl0ZWxpc3QoZW5naW5lKTsKIAogCS8qIFdlIG5lZWQgdG8gZGlz YWJsZSB0aGUgQXN5bmNGbGlwIHBlcmZvcm1hbmNlIG9wdGltaXNhdGlvbnMgaW4gb3JkZXIKIAkg KiB0byB1c2UgTUlfV0FJVF9GT1JfRVZFTlQgd2l0aGluIHRoZSBDUy4gSXQgc2hvdWxkIGFscmVh ZHkgYmUKQEAgLTE2NjYsNyArMTY2Niw3IEBAIHN0YXRpYyBpbnQgZ2VuOV9pbml0X3JlbmRlcl9y aW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwogCi0JaW50ZWxfd2hpdGVsaXN0X3dvcmthcm91bmRzX2FwcGx5KGVuZ2luZSk7CisJaW50 ZWxfZW5naW5lX2FwcGx5X3doaXRlbGlzdChlbmdpbmUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0y MzE2LDYgKzIzMTYsNyBAQCBpbnQgbG9naWNhbF9yZW5kZXJfcmluZ19pbml0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCSAgcmV0KTsKIAl9CiAKKwlpbnRlbF9lbmdpbmVfaW5p dF93aGl0ZWxpc3QoZW5naW5lKTsKIAlpbnRlbF9lbmdpbmVfaW5pdF93b3JrYXJvdW5kcyhlbmdp bmUpOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgK aW5kZXggYzVmZjNkMzFjYWI3Li45MWE3NTBlOTBkYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKQEAgLTQ1Myw2ICs0NTMsNyBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzIHsKIAlzdHJ1Y3QgaW50ZWxfaHdfc3RhdHVzX3BhZ2Ugc3RhdHVzX3BhZ2U7CiAJc3RydWN0 IGk5MTVfY3R4X3dvcmthcm91bmRzIHdhX2N0eDsKIAlzdHJ1Y3QgaTkxNV93YV9saXN0IHdhX2xp c3Q7CisJc3RydWN0IGk5MTVfd2FfbGlzdCB3aGl0ZWxpc3Q7CiAJc3RydWN0IGk5MTVfdm1hICpz Y3JhdGNoOwogCiAJdTMyICAgICAgICAgICAgIGlycV9rZWVwX21hc2s7IC8qIGFsd2F5cyBrZWVw IHRoZXNlIGludGVycnVwdHMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3dvcmthcm91bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5k cy5jCmluZGV4IGJiNDlhNTUwNGM5YS4uNTY5MDczMTEzNDllIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3dvcmthcm91bmRzLmMKQEAgLTEwMTIsMjkgKzEwMTIsMjAgQEAgYm9vbCBpbnRl bF9ndF92ZXJpZnlfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCXJldHVybiB3YV9saXN0X3ZlcmlmeShkZXZfcHJpdiwgJmRldl9wcml2LT5ndF93YV9saXN0 LCBmcm9tKTsKIH0KIAotc3RydWN0IHdoaXRlbGlzdCB7Ci0JaTkxNV9yZWdfdCByZWdbUklOR19N QVhfTk9OUFJJVl9TTE9UU107Ci0JdW5zaWduZWQgaW50IGNvdW50OwotCXUzMiBub3BpZDsKLX07 Ci0KLXN0YXRpYyB2b2lkIHdoaXRlbGlzdF9yZWcoc3RydWN0IHdoaXRlbGlzdCAqdywgaTkxNV9y ZWdfdCByZWcpCitzdGF0aWMgdm9pZAord2hpdGVsaXN0X3JlZyhzdHJ1Y3QgaTkxNV93YV9saXN0 ICp3YWwsIGk5MTVfcmVnX3QgcmVnKQogewotCWlmIChHRU1fREVCVUdfV0FSTl9PTih3LT5jb3Vu dCA+PSBSSU5HX01BWF9OT05QUklWX1NMT1RTKSkKLQkJcmV0dXJuOwotCi0Jdy0+cmVnW3ctPmNv dW50KytdID0gcmVnOwotfQorCXN0cnVjdCBpOTE1X3dhIHdhID0geworCQkucmVnID0gcmVnCisJ fTsKIAotc3RhdGljIHZvaWQgYmR3X3doaXRlbGlzdF9idWlsZChzdHJ1Y3Qgd2hpdGVsaXN0ICp3 KQotewotfQorCWlmIChHRU1fREVCVUdfV0FSTl9PTih3YWwtPmNvdW50ID49IFJJTkdfTUFYX05P TlBSSVZfU0xPVFMpKQorCQlyZXR1cm47CiAKLXN0YXRpYyB2b2lkIGNodl93aGl0ZWxpc3RfYnVp bGQoc3RydWN0IHdoaXRlbGlzdCAqdykKLXsKKwl3YWxfYWRkKHdhbCwgJndhKTsKIH0KIAotc3Rh dGljIHZvaWQgZ2VuOV93aGl0ZWxpc3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykKK3N0YXRp YyB2b2lkIGdlbjlfd2hpdGVsaXN0X2J1aWxkKHN0cnVjdCBpOTE1X3dhX2xpc3QgKncpCiB7CiAJ LyogV2FWRkVTdGF0ZUFmdGVyUGlwZUNvbnRyb2x3aXRoTWVkaWFTdGF0ZUNsZWFyOnNrbCxieHQs Z2xrLGNmbCAqLwogCXdoaXRlbGlzdF9yZWcodywgR0VOOV9DVFhfUFJFRU1QVF9SRUcpOwpAQCAt MTA0Niw3ICsxMDM3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOV93aGl0ZWxpc3RfYnVpbGQoc3RydWN0 IHdoaXRlbGlzdCAqdykKIAl3aGl0ZWxpc3RfcmVnKHcsIEdFTjhfSERDX0NISUNLRU4xKTsKIH0K IAotc3RhdGljIHZvaWQgc2tsX3doaXRlbGlzdF9idWlsZChzdHJ1Y3Qgd2hpdGVsaXN0ICp3KQor c3RhdGljIHZvaWQgc2tsX3doaXRlbGlzdF9idWlsZChzdHJ1Y3QgaTkxNV93YV9saXN0ICp3KQog ewogCWdlbjlfd2hpdGVsaXN0X2J1aWxkKHcpOwogCkBAIC0xMDU0LDEyICsxMDQ1LDEyIEBAIHN0 YXRpYyB2b2lkIHNrbF93aGl0ZWxpc3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykKIAl3aGl0 ZWxpc3RfcmVnKHcsIEdFTjhfTDNTUUNSRUc0KTsKIH0KIAotc3RhdGljIHZvaWQgYnh0X3doaXRl bGlzdF9idWlsZChzdHJ1Y3Qgd2hpdGVsaXN0ICp3KQorc3RhdGljIHZvaWQgYnh0X3doaXRlbGlz dF9idWlsZChzdHJ1Y3QgaTkxNV93YV9saXN0ICp3KQogewogCWdlbjlfd2hpdGVsaXN0X2J1aWxk KHcpOwogfQogCi1zdGF0aWMgdm9pZCBrYmxfd2hpdGVsaXN0X2J1aWxkKHN0cnVjdCB3aGl0ZWxp c3QgKncpCitzdGF0aWMgdm9pZCBrYmxfd2hpdGVsaXN0X2J1aWxkKHN0cnVjdCBpOTE1X3dhX2xp c3QgKncpCiB7CiAJZ2VuOV93aGl0ZWxpc3RfYnVpbGQodyk7CiAKQEAgLTEwNjcsNyArMTA1OCw3 IEBAIHN0YXRpYyB2b2lkIGtibF93aGl0ZWxpc3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykK IAl3aGl0ZWxpc3RfcmVnKHcsIEdFTjhfTDNTUUNSRUc0KTsKIH0KIAotc3RhdGljIHZvaWQgZ2xr X3doaXRlbGlzdF9idWlsZChzdHJ1Y3Qgd2hpdGVsaXN0ICp3KQorc3RhdGljIHZvaWQgZ2xrX3do aXRlbGlzdF9idWlsZChzdHJ1Y3QgaTkxNV93YV9saXN0ICp3KQogewogCWdlbjlfd2hpdGVsaXN0 X2J1aWxkKHcpOwogCkBAIC0xMDc1LDE4ICsxMDY2LDE4IEBAIHN0YXRpYyB2b2lkIGdsa193aGl0 ZWxpc3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykKIAl3aGl0ZWxpc3RfcmVnKHcsIEdFTjlf U0xJQ0VfQ09NTU9OX0VDT19DSElDS0VOMSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNmbF93aGl0ZWxp c3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykKK3N0YXRpYyB2b2lkIGNmbF93aGl0ZWxpc3Rf YnVpbGQoc3RydWN0IGk5MTVfd2FfbGlzdCAqdykKIHsKIAlnZW45X3doaXRlbGlzdF9idWlsZCh3 KTsKIH0KIAotc3RhdGljIHZvaWQgY25sX3doaXRlbGlzdF9idWlsZChzdHJ1Y3Qgd2hpdGVsaXN0 ICp3KQorc3RhdGljIHZvaWQgY25sX3doaXRlbGlzdF9idWlsZChzdHJ1Y3QgaTkxNV93YV9saXN0 ICp3KQogewogCS8qIFdhRW5hYmxlUHJlZW1wdGlvbkdyYW51bGFyaXR5Q29udHJvbEJ5VU1EOmNu bCAqLwogCXdoaXRlbGlzdF9yZWcodywgR0VOOF9DU19DSElDS0VOMSk7CiB9CiAKLXN0YXRpYyB2 b2lkIGljbF93aGl0ZWxpc3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykKK3N0YXRpYyB2b2lk IGljbF93aGl0ZWxpc3RfYnVpbGQoc3RydWN0IGk5MTVfd2FfbGlzdCAqdykKIHsKIAkvKiBXYUFs bG93VU1EVG9Nb2RpZnlIYWxmU2xpY2VDaGlja2VuNzppY2wgKi8KIAl3aGl0ZWxpc3RfcmVnKHcs IEdFTjlfSEFMRl9TTElDRV9DSElDS0VONyk7CkBAIC0xMDk1LDIyICsxMDg2LDIxIEBAIHN0YXRp YyB2b2lkIGljbF93aGl0ZWxpc3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykKIAl3aGl0ZWxp c3RfcmVnKHcsIEdFTjEwX1NBTVBMRVJfTU9ERSk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgd2hpdGVs aXN0ICp3aGl0ZWxpc3RfYnVpbGQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAotCQkJ CQkgc3RydWN0IHdoaXRlbGlzdCAqdykKK3ZvaWQgaW50ZWxfZW5naW5lX2luaXRfd2hpdGVsaXN0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKKwlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3ID0gJmVu Z2luZS0+d2hpdGVsaXN0OwogCiAJR0VNX0JVR19PTihlbmdpbmUtPmlkICE9IFJDUyk7CiAKLQl3 LT5jb3VudCA9IDA7Ci0Jdy0+bm9waWQgPSBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX05PUElE KGVuZ2luZS0+bW1pb19iYXNlKSk7CisJd2FfaW5pdF9zdGFydCh3LCAid2hpdGVsaXN0Iik7CiAK IAlpZiAoSU5URUxfR0VOKGk5MTUpIDwgOCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybjsKIAll bHNlIGlmIChJU19CUk9BRFdFTEwoaTkxNSkpCi0JCWJkd193aGl0ZWxpc3RfYnVpbGQodyk7CisJ CXJldHVybjsKIAllbHNlIGlmIChJU19DSEVSUllWSUVXKGk5MTUpKQotCQljaHZfd2hpdGVsaXN0 X2J1aWxkKHcpOworCQlyZXR1cm47CiAJZWxzZSBpZiAoSVNfU0tZTEFLRShpOTE1KSkKIAkJc2ts X3doaXRlbGlzdF9idWlsZCh3KTsKIAllbHNlIGlmIChJU19CUk9YVE9OKGk5MTUpKQpAQCAtMTEy OCwzNyArMTExOCwzMCBAQCBzdGF0aWMgc3RydWN0IHdoaXRlbGlzdCAqd2hpdGVsaXN0X2J1aWxk KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAllbHNlCiAJCU1JU1NJTkdfQ0FTRShJ TlRFTF9HRU4oaTkxNSkpOwogCi0JcmV0dXJuIHc7CisJd2FfaW5pdF9maW5pc2godyk7CiB9CiAK LXN0YXRpYyB2b2lkIHdoaXRlbGlzdF9hcHBseShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCi0JCQkgICAgY29uc3Qgc3RydWN0IHdoaXRlbGlzdCAqdykKK3ZvaWQgaW50ZWxfZW5naW5l X2FwcGx5X3doaXRlbGlzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OworCWNvbnN0IHN0 cnVjdCBpOTE1X3dhX2xpc3QgKndhbCA9ICZlbmdpbmUtPndoaXRlbGlzdDsKIAljb25zdCB1MzIg YmFzZSA9IGVuZ2luZS0+bW1pb19iYXNlOworCXN0cnVjdCBpOTE1X3dhICp3YTsKIAl1bnNpZ25l ZCBpbnQgaTsKIAotCWlmICghdykKKwlpZiAoIXdhbC0+Y291bnQpCiAJCXJldHVybjsKIAotCWlu dGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGVuZ2luZS0+aTkxNSwgRk9SQ0VXQUtFX0FMTCk7Ci0K LQlmb3IgKGkgPSAwOyBpIDwgdy0+Y291bnQ7IGkrKykKLQkJSTkxNV9XUklURV9GVyhSSU5HX0ZP UkNFX1RPX05PTlBSSVYoYmFzZSwgaSksCi0JCQkgICAgICBpOTE1X21taW9fcmVnX29mZnNldCh3 LT5yZWdbaV0pKTsKKwlmb3IgKGkgPSAwLCB3YSA9IHdhbC0+bGlzdDsgaSA8IHdhbC0+Y291bnQ7 IGkrKywgd2ErKykKKwkJSTkxNV9XUklURShSSU5HX0ZPUkNFX1RPX05PTlBSSVYoYmFzZSwgaSks CisJCQkgICBpOTE1X21taW9fcmVnX29mZnNldCh3YS0+cmVnKSk7CiAKIAkvKiBBbmQgY2xlYXIg dGhlIHJlc3QganVzdCBpbiBjYXNlIG9mIGdhcmJhZ2UgKi8KIAlmb3IgKDsgaSA8IFJJTkdfTUFY X05PTlBSSVZfU0xPVFM7IGkrKykKLQkJSTkxNV9XUklURV9GVyhSSU5HX0ZPUkNFX1RPX05PTlBS SVYoYmFzZSwgaSksIHctPm5vcGlkKTsKLQotCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGVu Z2luZS0+aTkxNSwgRk9SQ0VXQUtFX0FMTCk7Ci19CisJCUk5MTVfV1JJVEUoUklOR19GT1JDRV9U T19OT05QUklWKGJhc2UsIGkpLAorCQkJICAgaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19OT1BJ RChiYXNlKSkpOwogCi12b2lkIGludGVsX3doaXRlbGlzdF93b3JrYXJvdW5kc19hcHBseShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0Jc3RydWN0IHdoaXRlbGlzdCB3OwotCi0J d2hpdGVsaXN0X2FwcGx5KGVuZ2luZSwgd2hpdGVsaXN0X2J1aWxkKGVuZ2luZSwgJncpKTsKKwlE Uk1fREVCVUdfRFJJVkVSKCJBcHBsaWVkICV1ICVzIHdvcmthcm91bmRzXG4iLCB3YWwtPmNvdW50 LCB3YWwtPm5hbWUpOwogfQogCiBzdGF0aWMgdm9pZCByY3NfZW5naW5lX3dhX2luaXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfd29ya2Fyb3VuZHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmth cm91bmRzLmgKaW5kZXggODgyMmU2MDM1ZjhkLi4zZjk5YmZjYjRhMDMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3VuZHMuaApAQCAtMzUsNyArMzUsOCBAQCB2b2lkIGludGVs X2d0X2FwcGx5X3dvcmthcm91bmRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 CiBib29sIGludGVsX2d0X3ZlcmlmeV93b3JrYXJvdW5kcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJCQkJIGNvbnN0IGNoYXIgKmZyb20pOwogCi12b2lkIGludGVsX3doaXRl bGlzdF93b3JrYXJvdW5kc19hcHBseShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwor dm9pZCBpbnRlbF9lbmdpbmVfaW5pdF93aGl0ZWxpc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKTsKK3ZvaWQgaW50ZWxfZW5naW5lX2FwcGx5X3doaXRlbGlzdChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpOwogCiB2b2lkIGludGVsX2VuZ2luZV9pbml0X3dvcmthcm91bmRz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiB2b2lkIGludGVsX2VuZ2luZV9hcHBs eV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3VuZHMuYwppbmRleCBk NzZhMDQ4YzM5NTQuLjY3MDE3ZDUxNzViOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMKQEAgLTk0LDE3ICs5NCwyMyBAQCByZWFk X25vbnByaXZzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsIHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKIAlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCi1zdGF0aWMgdTMyIGdl dF93aGl0ZWxpc3RfcmVnKGNvbnN0IHN0cnVjdCB3aGl0ZWxpc3QgKncsIHVuc2lnbmVkIGludCBp KQorc3RhdGljIHUzMgorZ2V0X3doaXRlbGlzdF9yZWcoY29uc3Qgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLCB1bnNpZ25lZCBpbnQgaSkKIHsKLQlyZXR1cm4gaSA8IHctPmNvdW50ID8g aTkxNV9tbWlvX3JlZ19vZmZzZXQody0+cmVnW2ldKSA6IHctPm5vcGlkOworCWk5MTVfcmVnX3Qg cmVnID0gaSA8IGVuZ2luZS0+d2hpdGVsaXN0LmNvdW50ID8KKwkJCSBlbmdpbmUtPndoaXRlbGlz dC5saXN0W2ldLnJlZyA6CisJCQkgUklOR19OT1BJRChlbmdpbmUtPm1taW9fYmFzZSk7CisKKwly ZXR1cm4gaTkxNV9tbWlvX3JlZ19vZmZzZXQocmVnKTsKIH0KIAotc3RhdGljIHZvaWQgcHJpbnRf cmVzdWx0cyhjb25zdCBzdHJ1Y3Qgd2hpdGVsaXN0ICp3LCBjb25zdCB1MzIgKnJlc3VsdHMpCitz dGF0aWMgdm9pZAorcHJpbnRfcmVzdWx0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsIGNvbnN0IHUzMiAqcmVzdWx0cykKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIAogCWZvciAo aSA9IDA7IGkgPCBSSU5HX01BWF9OT05QUklWX1NMT1RTOyBpKyspIHsKLQkJdTMyIGV4cGVjdGVk ID0gZ2V0X3doaXRlbGlzdF9yZWcodywgaSk7CisJCXUzMiBleHBlY3RlZCA9IGdldF93aGl0ZWxp c3RfcmVnKGVuZ2luZSwgaSk7CiAJCXUzMiBhY3R1YWwgPSByZXN1bHRzW2ldOwogCiAJCXByX2lu Zm8oIlJJTkdfTk9OUFJJVlslZF06IGV4cGVjdGVkIDB4JTA4eCwgZm91bmQgMHglMDh4XG4iLApA QCAtMTEyLDggKzExOCw3IEBAIHN0YXRpYyB2b2lkIHByaW50X3Jlc3VsdHMoY29uc3Qgc3RydWN0 IHdoaXRlbGlzdCAqdywgY29uc3QgdTMyICpyZXN1bHRzKQogCX0KIH0KIAotc3RhdGljIGludCBj aGVja193aGl0ZWxpc3QoY29uc3Qgc3RydWN0IHdoaXRlbGlzdCAqdywKLQkJCSAgIHN0cnVjdCBp OTE1X2dlbV9jb250ZXh0ICpjdHgsCitzdGF0aWMgaW50IGNoZWNrX3doaXRlbGlzdChzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpyZXN1bHRzOwpAQCAtMTQxLDEx ICsxNDYsMTEgQEAgc3RhdGljIGludCBjaGVja193aGl0ZWxpc3QoY29uc3Qgc3RydWN0IHdoaXRl bGlzdCAqdywKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgUklOR19NQVhfTk9OUFJJVl9TTE9UUzsg aSsrKSB7Ci0JCXUzMiBleHBlY3RlZCA9IGdldF93aGl0ZWxpc3RfcmVnKHcsIGkpOworCQl1MzIg ZXhwZWN0ZWQgPSBnZXRfd2hpdGVsaXN0X3JlZyhlbmdpbmUsIGkpOwogCQl1MzIgYWN0dWFsID0g dmFkZHJbaV07CiAKIAkJaWYgKGV4cGVjdGVkICE9IGFjdHVhbCkgewotCQkJcHJpbnRfcmVzdWx0 cyh3LCB2YWRkcik7CisJCQlwcmludF9yZXN1bHRzKGVuZ2luZSwgdmFkZHIpOwogCQkJcHJfZXJy KCJJbnZhbGlkIFJJTkdfTk9OUFJJVlslZF0sIGV4cGVjdGVkIDB4JTA4eCwgZm91bmQgMHglMDh4 XG4iLAogCQkJICAgICAgIGksIGV4cGVjdGVkLCBhY3R1YWwpOwogCkBAIC0yMTcsNyArMjIyLDYg QEAgc3dpdGNoX3RvX3NjcmF0Y2hfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCiAKIHN0YXRpYyBpbnQgY2hlY2tfd2hpdGVsaXN0X2Fjcm9zc19yZXNldChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkJCWludCAoKnJlc2V0KShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICopLAotCQkJCQljb25zdCBzdHJ1Y3Qgd2hpdGVsaXN0ICp3LAogCQkJCQljb25zdCBj aGFyICpuYW1lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5p OTE1OwpAQCAtMjI3LDcgKzIzMSw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfd2hpdGVsaXN0X2Fjcm9z c19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJaW50IGVycjsKIAogCXBy X2luZm8oIkNoZWNraW5nICVkIHdoaXRlbGlzdGVkIHJlZ2lzdGVycyAoUklOR19OT05QUklWKSBb JXNdXG4iLAotCQl3LT5jb3VudCwgbmFtZSk7CisJCWVuZ2luZS0+d2hpdGVsaXN0LmNvdW50LCBu YW1lKTsKIAogCWlmICh3YW50X3NwaW4pIHsKIAkJZXJyID0gaWd0X3NwaW5uZXJfaW5pdCgmc3Bp biwgaTkxNSk7CkBAIC0yMzksNyArMjQzLDcgQEAgc3RhdGljIGludCBjaGVja193aGl0ZWxpc3Rf YWNyb3NzX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpZiAoSVNfRVJS KGN0eCkpCiAJCXJldHVybiBQVFJfRVJSKGN0eCk7CiAKLQllcnIgPSBjaGVja193aGl0ZWxpc3Qo dywgY3R4LCBlbmdpbmUpOworCWVyciA9IGNoZWNrX3doaXRlbGlzdChjdHgsIGVuZ2luZSk7CiAJ aWYgKGVycikgewogCQlwcl9lcnIoIkludmFsaWQgd2hpdGVsaXN0ICpiZWZvcmUqICVzIHJlc2V0 IVxuIiwgbmFtZSk7CiAJCWdvdG8gb3V0OwpAQCAtMjYzLDcgKzI2Nyw3IEBAIHN0YXRpYyBpbnQg Y2hlY2tfd2hpdGVsaXN0X2Fjcm9zc19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCiAJCWdvdG8gb3V0OwogCX0KIAotCWVyciA9IGNoZWNrX3doaXRlbGlzdCh3LCBjdHgsIGVu Z2luZSk7CisJZXJyID0gY2hlY2tfd2hpdGVsaXN0KGN0eCwgZW5naW5lKTsKIAlpZiAoZXJyKSB7 CiAJCXByX2VycigiV2hpdGVsaXN0IG5vdCBwcmVzZXJ2ZWQgaW4gY29udGV4dCBhY3Jvc3MgJXMg cmVzZXQhXG4iLAogCQkgICAgICAgbmFtZSk7CkBAIC0yNzYsNyArMjgwLDcgQEAgc3RhdGljIGlu dCBjaGVja193aGl0ZWxpc3RfYWNyb3NzX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwKIAlpZiAoSVNfRVJSKGN0eCkpCiAJCXJldHVybiBQVFJfRVJSKGN0eCk7CiAKLQllcnIg PSBjaGVja193aGl0ZWxpc3QodywgY3R4LCBlbmdpbmUpOworCWVyciA9IGNoZWNrX3doaXRlbGlz dChjdHgsIGVuZ2luZSk7CiAJaWYgKGVycikgewogCQlwcl9lcnIoIkludmFsaWQgd2hpdGVsaXN0 ICphZnRlciogJXMgcmVzZXQgaW4gZnJlc2ggY29udGV4dCFcbiIsCiAJCSAgICAgICBuYW1lKTsK QEAgLTI5MiwyMiArMjk2LDE4IEBAIHN0YXRpYyBpbnQgbGl2ZV9yZXNldF93aGl0ZWxpc3Qodm9p ZCAqYXJnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwogCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGk5MTUtPmVuZ2luZVtSQ1NdOwotCXN0cnVjdCB3 aGl0ZWxpc3QgdzsKIAlpbnQgZXJyID0gMDsKIAogCS8qIElmIHdlIHJlc2V0IHRoZSBncHUsIHdl IHNob3VsZCBub3QgbG9zZSB0aGUgUklOR19OT05QUklWICovCiAKLQlpZiAoIWVuZ2luZSkKLQkJ cmV0dXJuIDA7Ci0KLQlpZiAoIXdoaXRlbGlzdF9idWlsZChlbmdpbmUsICZ3KSkKKwlpZiAoIWVu Z2luZSB8fCBlbmdpbmUtPndoaXRlbGlzdC5jb3VudCA9PSAwKQogCQlyZXR1cm4gMDsKIAogCWln dF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKIAogCWlmIChpbnRlbF9oYXNfcmVzZXRfZW5naW5l KGk5MTUpKSB7CiAJCWVyciA9IGNoZWNrX3doaXRlbGlzdF9hY3Jvc3NfcmVzZXQoZW5naW5lLAot CQkJCQkJICAgZG9fZW5naW5lX3Jlc2V0LCAmdywKKwkJCQkJCSAgIGRvX2VuZ2luZV9yZXNldCwK IAkJCQkJCSAgICJlbmdpbmUiKTsKIAkJaWYgKGVycikKIAkJCWdvdG8gb3V0OwpAQCAtMzE1LDcg KzMxNSw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9yZXNldF93aGl0ZWxpc3Qodm9pZCAqYXJnKQogCiAJ aWYgKGludGVsX2hhc19ncHVfcmVzZXQoaTkxNSkpIHsKIAkJZXJyID0gY2hlY2tfd2hpdGVsaXN0 X2Fjcm9zc19yZXNldChlbmdpbmUsCi0JCQkJCQkgICBkb19kZXZpY2VfcmVzZXQsICZ3LAorCQkJ CQkJICAgZG9fZGV2aWNlX3Jlc2V0LAogCQkJCQkJICAgImRldmljZSIpOwogCQlpZiAoZXJyKQog CQkJZ290byBvdXQ7Ci0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=