From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: [RFC 09/10] drm/i915: add uncore flags Date: Wed, 13 Mar 2019 16:13:18 -0700 Message-ID: <20190313231319.711-10-daniele.ceraolospurio@intel.com> References: <20190313231319.711-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id AFD4E6E11D for ; Wed, 13 Mar 2019 23:13:42 +0000 (UTC) In-Reply-To: <20190313231319.711-1-daniele.ceraolospurio@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 Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org U2F2ZSBzb21lIHVuY29yZSBwcm9wZXJ0aWVzIHRvIGF2b2lkIGhhdmluZyB0byBqdW1wIGJhY2sg dG8KZGV2X3ByaXYgZXZlcnkgdGltZQoKQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlA aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxl LmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgICAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFu Z2NoZWNrLmMgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29y ZS5jICAgICAgICAgICB8IDgyICsrKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3VuY29yZS5oICAgICAgICAgICB8IDEwICsrLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2ludGVsX3VuY29yZS5jIHwgMTUgKystLQogNiBmaWxlcyBjaGFuZ2VkLCA2 NSBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpp bmRleCAyNDcwYzFlZjQ5NTEuLjFlZjgxMWZkMzlkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CkBAIC0yODg4LDcgKzI4ODgsNyBAQCBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfc3VzcGVuZChz dHJ1Y3QgZGV2aWNlICprZGV2KQogCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2 KTsKIAlpbnRlbF9ydW50aW1lX3BtX2NsZWFudXAoZGV2X3ByaXYpOwogCi0JaWYgKGludGVsX3Vu Y29yZV9hcm1fdW5jbGFpbWVkX21taW9fZGV0ZWN0aW9uKGRldl9wcml2KSkKKwlpZiAoaW50ZWxf dW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRlY3Rpb24oJmRldl9wcml2LT51bmNvcmUpKQog CQlEUk1fRVJST1IoIlVuY2xhaW1lZCBhY2Nlc3MgZGV0ZWN0ZWQgcHJpb3IgdG8gc3VzcGVuZGlu Z1xuIik7CiAKIAlkZXZfcHJpdi0+cnVudGltZV9wbS5zdXNwZW5kZWQgPSB0cnVlOwpAQCAtMjk0 Miw3ICsyOTQyLDcgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2 aWNlICprZGV2KQogCiAJaW50ZWxfb3ByZWdpb25fbm90aWZ5X2FkYXB0ZXIoZGV2X3ByaXYsIFBD SV9EMCk7CiAJZGV2X3ByaXYtPnJ1bnRpbWVfcG0uc3VzcGVuZGVkID0gZmFsc2U7Ci0JaWYgKGlu dGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyhkZXZfcHJpdikpCisJaWYgKGludGVsX3VuY29yZV91 bmNsYWltZWRfbW1pbygmZGV2X3ByaXYtPnVuY29yZSkpCiAJCURSTV9ERUJVR19EUklWRVIoIlVu Y2xhaW1lZCBhY2Nlc3MgZHVyaW5nIHN1c3BlbmQsIGJpb3M/XG4iKTsKIAogCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDExKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5k ZXggNDkwOWUwY2NjNzA5Li4wZDc2YWM0MjViZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKQEAgLTEzNTA5LDcgKzEzNTA5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWlj X2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJICogc28gZW5h YmxlIGRlYnVnZ2luZyBmb3IgdGhlIG5leHQgbW9kZXNldCAtIGFuZCBob3BlIHdlIGNhdGNoCiAJ CSAqIHRoZSBjdWxwcml0LgogCQkgKi8KLQkJaW50ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1p b19kZXRlY3Rpb24oZGV2X3ByaXYpOworCQlpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlv X2RldGVjdGlvbigmZGV2X3ByaXYtPnVuY29yZSk7CiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0 KGRldl9wcml2LCBQT1dFUl9ET01BSU5fTU9ERVNFVCwgd2FrZXJlZik7CiAJfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jCmluZGV4IDU3ZWQ0OWRjMTljNC4uMTI1NjYyYzY0 OTM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYwpAQCAtMjcwLDcgKzI3 MCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2NoZWNrX2VsYXBzZWQoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQogCSAqIHBlcmlvZGljYWxseSBhcm0gdGhlIG1taW8gY2hlY2tlciB0byBzZWUg aWYgd2UgYXJlIHRyaWdnZXJpbmcKIAkgKiBhbnkgaW52YWxpZCBhY2Nlc3MuCiAJICovCi0JaW50 ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRlY3Rpb24oZGV2X3ByaXYpOworCWludGVs X3VuY29yZV9hcm1fdW5jbGFpbWVkX21taW9fZGV0ZWN0aW9uKCZkZXZfcHJpdi0+dW5jb3JlKTsK IAogCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewogCQlzdHJ1Y3QgaGFu Z2NoZWNrIGhjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3Jl LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwppbmRleCA0YzIwYjJmYzMz ZmUuLjc4YTIxMmRlYjZlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf dW5jb3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKQEAgLTUw NywxOCArNTA3LDE3IEBAIGdlbjZfY2hlY2tfZm9yX2ZpZm9fZGVidWcoc3RydWN0IGludGVsX3Vu Y29yZSAqdW5jb3JlKQogfQogCiBzdGF0aWMgYm9vbAotY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlv KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK2NoZWNrX2Zvcl91bmNsYWltZWRf bW1pbyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB7Ci0Jc3RydWN0IGludGVsX3VuY29y ZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7CiAJYm9vbCByZXQgPSBmYWxzZTsKIAotCWlm IChIQVNfRlBHQV9EQkdfVU5DTEFJTUVEKGRldl9wcml2KSkKKwlpZiAodW5jb3JlLT5mbGFncyAm IFVOQ09SRV9IQVNfRlBHQV9EQkdfVU5DTEFJTUVEKQogCQlyZXQgfD0gZnBnYV9jaGVja19mb3Jf dW5jbGFpbWVkX21taW8odW5jb3JlKTsKIAotCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8 fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKKwlpZiAodW5jb3JlLT5mbGFncyAmIFVOQ09SRV9I QVNfREJHX1VOQ0xBSU1FRCkKIAkJcmV0IHw9IHZsdl9jaGVja19mb3JfdW5jbGFpbWVkX21taW8o dW5jb3JlKTsKIAotCWlmIChJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDYsIDcpKQorCWlmICh1bmNv cmUtPmZsYWdzICYgVU5DT1JFX0hBU19GSUZPKQogCQlyZXQgfD0gZ2VuNl9jaGVja19mb3JfZmlm b19kZWJ1Zyh1bmNvcmUpOwogCiAJcmV0dXJuIHJldDsKQEAgLTUyNywxNCArNTI2LDEyIEBAIGNo ZWNrX2Zvcl91bmNsYWltZWRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiBzdGF0aWMgdm9pZCBfX2ludGVsX3VuY29yZV9lYXJseV9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxf dW5jb3JlICp1bmNvcmUsCiAJCQkJCSAgdW5zaWduZWQgaW50IHJlc3RvcmVfZm9yY2V3YWtlKQog ewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdW5jb3JlX3RvX2k5MTUodW5jb3Jl KTsKLQogCS8qIGNsZWFyIG91dCB1bmNsYWltZWQgcmVnIGRldGVjdGlvbiBiaXQgKi8KLQlpZiAo Y2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKGk5MTUpKQorCWlmIChjaGVja19mb3JfdW5jbGFpbWVk X21taW8odW5jb3JlKSkKIAkJRFJNX0RFQlVHKCJ1bmNsYWltZWQgbW1pbyBkZXRlY3RlZCBvbiB1 bmNvcmUgaW5pdCwgY2xlYXJpbmdcbiIpOwogCiAJLyogV2FEaXNhYmxlU2hhZG93UmVnRm9yQ3Bk OmNodiAqLwotCWlmIChJU19DSEVSUllWSUVXKGk5MTUpKSB7CisJaWYgKElTX0NIRVJSWVZJRVco dW5jb3JlX3RvX2k5MTUodW5jb3JlKSkpIHsKIAkJX19yYXdfaTkxNV93cml0ZTMyKHVuY29yZSwg R1RGSUZPQ1RMLAogCQkJCSAgIF9fcmF3X2k5MTVfcmVhZDMyKHVuY29yZSwgR1RGSUZPQ1RMKSB8 CiAJCQkJICAgR1RfRklGT19DVExfQkxPQ0tfQUxMX1BPTElDWV9TVEFMTCB8CkBAIC01NDcsNyAr NTQ0LDcgQEAgc3RhdGljIHZvaWQgX19pbnRlbF91bmNvcmVfZWFybHlfc2FuaXRpemUoc3RydWN0 IGludGVsX3VuY29yZSAqdW5jb3JlLAogCQlzcGluX2xvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwog CQl1bmNvcmUtPmZ1bmNzLmZvcmNlX3dha2VfZ2V0KHVuY29yZSwgcmVzdG9yZV9mb3JjZXdha2Up OwogCi0JCWlmIChJU19HRU5fUkFOR0UoaTkxNSwgNiwgNykpCisJCWlmICh1bmNvcmUtPmZsYWdz ICYgVU5DT1JFX0hBU19GSUZPKQogCQkJdW5jb3JlLT5maWZvX2NvdW50ID0gZmlmb19mcmVlX2Vu dHJpZXModW5jb3JlKTsKIAkJc3Bpbl91bmxvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwogCX0KQEAg LTY2NiwxMiArNjYzLDEwIEBAIHZvaWQgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV91c2VyX2dldChz dHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiAgKi8KIHZvaWQgaW50ZWxfdW5jb3JlX2ZvcmNl d2FrZV91c2VyX3B1dChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB1bmNvcmVfdG9faTkxNSh1bmNvcmUpOwotCiAJc3Bpbl9s b2NrX2lycSgmdW5jb3JlLT5sb2NrKTsKIAlpZiAoIS0tdW5jb3JlLT51c2VyX2ZvcmNld2FrZS5j b3VudCkgewotCQlpZiAoaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKGk5MTUpKQotCQkJZGV2 X2luZm8oaTkxNS0+ZHJtLmRldiwKKwkJaWYgKGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyh1 bmNvcmUpKQorCQkJZGV2X2luZm8odW5jb3JlX3RvX2k5MTUodW5jb3JlKS0+ZHJtLmRldiwKIAkJ CQkgIkludmFsaWQgbW1pbyBkZXRlY3RlZCBkdXJpbmcgdXNlciBhY2Nlc3NcbiIpOwogCiAJCXVu Y29yZS0+dW5jbGFpbWVkX21taW9fY2hlY2sgPQpAQCAtMTA3MCwxMiArMTA2NSwxMiBAQCBpbGtf ZHVtbXlfd3JpdGUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogfQogCiBzdGF0aWMgdm9p ZAotX191bmNsYWltZWRfcmVnX2RlYnVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKK19fdW5jbGFpbWVkX3JlZ19kZWJ1ZyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAJ CSAgICAgIGNvbnN0IGk5MTVfcmVnX3QgcmVnLAogCQkgICAgICBjb25zdCBib29sIHJlYWQsCiAJ CSAgICAgIGNvbnN0IGJvb2wgYmVmb3JlKQogewotCWlmIChXQVJOKGNoZWNrX2Zvcl91bmNsYWlt ZWRfbW1pbyhkZXZfcHJpdikgJiYgIWJlZm9yZSwKKwlpZiAoV0FSTihjaGVja19mb3JfdW5jbGFp bWVkX21taW8odW5jb3JlKSAmJiAhYmVmb3JlLAogCQkgIlVuY2xhaW1lZCAlcyByZWdpc3RlciAw eCV4XG4iLAogCQkgcmVhZCA/ICJyZWFkIGZyb20iIDogIndyaXRlIHRvIiwKIAkJIGk5MTVfbW1p b19yZWdfb2Zmc2V0KHJlZykpKQpAQCAtMTA4NCw3ICsxMDc5LDcgQEAgX191bmNsYWltZWRfcmVn X2RlYnVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIH0KIAogc3RhdGljIGlu bGluZSB2b2lkCi11bmNsYWltZWRfcmVnX2RlYnVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKK3VuY2xhaW1lZF9yZWdfZGVidWcoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl LAogCQkgICAgY29uc3QgaTkxNV9yZWdfdCByZWcsCiAJCSAgICBjb25zdCBib29sIHJlYWQsCiAJ CSAgICBjb25zdCBib29sIGJlZm9yZSkKQEAgLTEwOTIsNyArMTA4Nyw3IEBAIHVuY2xhaW1lZF9y ZWdfZGVidWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChsaWtlbHko IWk5MTVfbW9kcGFyYW1zLm1taW9fZGVidWcpKQogCQlyZXR1cm47CiAKLQlfX3VuY2xhaW1lZF9y ZWdfZGVidWcoZGV2X3ByaXYsIHJlZywgcmVhZCwgYmVmb3JlKTsKKwlfX3VuY2xhaW1lZF9yZWdf ZGVidWcodW5jb3JlLCByZWcsIHJlYWQsIGJlZm9yZSk7CiB9CiAKICNkZWZpbmUgR0VOMl9SRUFE X0hFQURFUih4KSBcCkBAIC0xMTQzLDEwICsxMTM4LDEwIEBAIF9fZ2VuMl9yZWFkKDY0KQogCXUj I3ggdmFsID0gMDsgXAogCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChkZXZfcHJpdik7IFwKIAlz cGluX2xvY2tfaXJxc2F2ZSgmdW5jb3JlLT5sb2NrLCBpcnFmbGFncyk7IFwKLQl1bmNsYWltZWRf cmVnX2RlYnVnKGRldl9wcml2LCByZWcsIHRydWUsIHRydWUpCisJdW5jbGFpbWVkX3JlZ19kZWJ1 Zyh1bmNvcmUsIHJlZywgdHJ1ZSwgdHJ1ZSkKIAogI2RlZmluZSBHRU42X1JFQURfRk9PVEVSIFwK LQl1bmNsYWltZWRfcmVnX2RlYnVnKGRldl9wcml2LCByZWcsIHRydWUsIGZhbHNlKTsgXAorCXVu Y2xhaW1lZF9yZWdfZGVidWcodW5jb3JlLCByZWcsIHRydWUsIGZhbHNlKTsgXAogCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJnVuY29yZS0+bG9jaywgaXJxZmxhZ3MpOyBcCiAJdHJhY2VfaTkxNV9y ZWdfcncoZmFsc2UsIHJlZywgdmFsLCBzaXplb2YodmFsKSwgdHJhY2UpOyBcCiAJcmV0dXJuIHZh bApAQCAtMTI1NywxMCArMTI1MiwxMCBAQCBfX2dlbjJfd3JpdGUoMzIpCiAJdHJhY2VfaTkxNV9y ZWdfcncodHJ1ZSwgcmVnLCB2YWwsIHNpemVvZih2YWwpLCB0cmFjZSk7IFwKIAlhc3NlcnRfcnBt X3dha2Vsb2NrX2hlbGQoZGV2X3ByaXYpOyBcCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnVuY29yZS0+ bG9jaywgaXJxZmxhZ3MpOyBcCi0JdW5jbGFpbWVkX3JlZ19kZWJ1ZyhkZXZfcHJpdiwgcmVnLCBm YWxzZSwgdHJ1ZSkKKwl1bmNsYWltZWRfcmVnX2RlYnVnKHVuY29yZSwgcmVnLCBmYWxzZSwgdHJ1 ZSkKIAogI2RlZmluZSBHRU42X1dSSVRFX0ZPT1RFUiBcCi0JdW5jbGFpbWVkX3JlZ19kZWJ1Zyhk ZXZfcHJpdiwgcmVnLCBmYWxzZSwgZmFsc2UpOyBcCisJdW5jbGFpbWVkX3JlZ19kZWJ1Zyh1bmNv cmUsIHJlZywgZmFsc2UsIGZhbHNlKTsgXAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnVuY29y ZS0+bG9jaywgaXJxZmxhZ3MpCiAKICNkZWZpbmUgX19nZW42X3dyaXRlKHgpIFwKQEAgLTEzODks NyArMTM4NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3VuY29yZV9md19kb21haW5zX2luaXQoc3Ry dWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1ID0gdW5jb3JlX3RvX2k5MTUodW5jb3JlKTsKIAotCWlmIChJTlRFTF9HRU4oaTkxNSkgPD0g NSB8fCBpbnRlbF92Z3B1X2FjdGl2ZShpOTE1KSkKKwlpZiAoISh1bmNvcmUtPmZsYWdzICYgVU5D T1JFX0hBU19GT1JDRVdBS0UpKQogCQlyZXR1cm47CiAKIAlpZiAoSVNfR0VOKGk5MTUsIDYpKSB7 CkBAIC0xNTU1LDYgKzE1NTAsOSBAQCB2b2lkIGludGVsX3VuY29yZV9pbml0KHN0cnVjdCBpbnRl bF91bmNvcmUgKnVuY29yZSkKIAogCWk5MTVfY2hlY2tfdmdwdShpOTE1KTsKIAorCWlmIChJTlRF TF9HRU4oaTkxNSkgPiA1ICYmICFpbnRlbF92Z3B1X2FjdGl2ZShpOTE1KSkKKwkJdW5jb3JlLT5m bGFncyB8PSBVTkNPUkVfSEFTX0ZPUkNFV0FLRTsKKwogCWludGVsX3VuY29yZV9lZHJhbV9kZXRl Y3QoaTkxNSk7CiAJaW50ZWxfdW5jb3JlX2Z3X2RvbWFpbnNfaW5pdCh1bmNvcmUpOwogCV9faW50 ZWxfdW5jb3JlX2Vhcmx5X3Nhbml0aXplKHVuY29yZSwgMCk7CkBAIC0xNTYzLDEyICsxNTYxLDE0 IEBAIHZvaWQgaW50ZWxfdW5jb3JlX2luaXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQog CXVuY29yZS0+cG1pY19idXNfYWNjZXNzX25iLm5vdGlmaWVyX2NhbGwgPQogCQlpOTE1X3BtaWNf YnVzX2FjY2Vzc19ub3RpZmllcjsKIAotCWlmIChJU19HRU5fUkFOR0UoaTkxNSwgMiwgNCkgfHwg aW50ZWxfdmdwdV9hY3RpdmUoaTkxNSkpIHsKLQkJQVNTSUdOX1dSSVRFX01NSU9fVkZVTkNTKHVu Y29yZSwgZ2VuMik7Ci0JCUFTU0lHTl9SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgZ2VuMik7Ci0J fSBlbHNlIGlmIChJU19HRU4oaTkxNSwgNSkpIHsKLQkJQVNTSUdOX1dSSVRFX01NSU9fVkZVTkNT KHVuY29yZSwgZ2VuNSk7Ci0JCUFTU0lHTl9SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgZ2VuNSk7 CisJaWYgKCEodW5jb3JlLT5mbGFncyAmIFVOQ09SRV9IQVNfRk9SQ0VXQUtFKSkgeworCQlpZiAo SVNfR0VOKGk5MTUsIDUpKSB7CisJCQlBU1NJR05fV1JJVEVfTU1JT19WRlVOQ1ModW5jb3JlLCBn ZW41KTsKKwkJCUFTU0lHTl9SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgZ2VuNSk7CisJCX0gZWxz ZSB7CisJCQlBU1NJR05fV1JJVEVfTU1JT19WRlVOQ1ModW5jb3JlLCBnZW4yKTsKKwkJCUFTU0lH Tl9SRUFEX01NSU9fVkZVTkNTKHVuY29yZSwgZ2VuMik7CisJCX0KIAl9IGVsc2UgaWYgKElTX0dF Tl9SQU5HRShpOTE1LCA2LCA3KSkgewogCQlBU1NJR05fV1JJVEVfTU1JT19WRlVOQ1ModW5jb3Jl LCBnZW42KTsKIApAQCAtMTU5OCw2ICsxNTk4LDE1IEBAIHZvaWQgaW50ZWxfdW5jb3JlX2luaXQo c3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQogCQlBU1NJR05fUkVBRF9NTUlPX1ZGVU5DUyh1 bmNvcmUsIGdlbjExX2Z3dGFibGUpOwogCX0KIAorCWlmIChIQVNfRlBHQV9EQkdfVU5DTEFJTUVE KGk5MTUpKQorCQl1bmNvcmUtPmZsYWdzIHw9IFVOQ09SRV9IQVNfRlBHQV9EQkdfVU5DTEFJTUVE OworCisJaWYgKElTX1ZBTExFWVZJRVcoaTkxNSkgfHwgSVNfQ0hFUlJZVklFVyhpOTE1KSkKKwkJ dW5jb3JlLT5mbGFncyB8PSBVTkNPUkVfSEFTX0RCR19VTkNMQUlNRUQ7CisKKwlpZiAoSVNfR0VO X1JBTkdFKGk5MTUsIDYsIDcpKQorCQl1bmNvcmUtPmZsYWdzIHw9IFVOQ09SRV9IQVNfRklGTzsK KwogCWlvc2ZfbWJpX3JlZ2lzdGVyX3BtaWNfYnVzX2FjY2Vzc19ub3RpZmllcigmdW5jb3JlLT5w bWljX2J1c19hY2Nlc3NfbmIpOwogfQogCkBAIC0xODI2LDE1ICsxODM1LDE0IEBAIGludCBfX2lu dGVsX3dhaXRfZm9yX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAlyZXR1cm4gcmV0OwogfQogCi1ib29sIGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitib29sIGludGVsX3VuY29yZV91bmNsYWlt ZWRfbW1pbyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiB7Ci0JcmV0dXJuIGNoZWNrX2Zv cl91bmNsYWltZWRfbW1pbyhkZXZfcHJpdik7CisJcmV0dXJuIGNoZWNrX2Zvcl91bmNsYWltZWRf bW1pbyh1bmNvcmUpOwogfQogCiBib29sCi1pbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlv X2RldGVjdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitpbnRlbF91bmNv cmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlvbihzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNv cmUpCiB7Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7 CiAJYm9vbCByZXQgPSBmYWxzZTsKIAogCXNwaW5fbG9ja19pcnEoJnVuY29yZS0+bG9jayk7CkBA IC0xODQyLDcgKzE4NTAsNyBAQCBpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVj dGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKHVubGlrZWx5KHVu Y29yZS0+dW5jbGFpbWVkX21taW9fY2hlY2sgPD0gMCkpCiAJCWdvdG8gb3V0OwogCi0JaWYgKHVu bGlrZWx5KGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyhkZXZfcHJpdikpKSB7CisJaWYgKHVu bGlrZWx5KGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyh1bmNvcmUpKSkgewogCQlpZiAoIWk5 MTVfbW9kcGFyYW1zLm1taW9fZGVidWcpIHsKIAkJCURSTV9ERUJVRygiVW5jbGFpbWVkIHJlZ2lz dGVyIGRldGVjdGVkLCAiCiAJCQkJICAiZW5hYmxpbmcgb25lc2hvdCB1bmNsYWltZWQgcmVnaXN0 ZXIgcmVwb3J0aW5nLiAiCkBAIC0xODc0LDcgKzE4ODIsNyBAQCBpbnRlbF91bmNvcmVfZm9yY2V3 YWtlX2Zvcl9yZWFkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl9IGVsc2Ug aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewogCQlmd19kb21haW5zID0gX19nZW42X3Jl Z19yZWFkX2Z3X2RvbWFpbnModW5jb3JlLCBvZmZzZXQpOwogCX0gZWxzZSB7Ci0JCVdBUk5fT04o IUlTX0dFTl9SQU5HRShkZXZfcHJpdiwgMiwgNSkpOworCQlXQVJOX09OKCEodW5jb3JlLT5mbGFn cyAmIFVOQ09SRV9IQVNfRk9SQ0VXQUtFKSk7CiAJCWZ3X2RvbWFpbnMgPSAwOwogCX0KIApAQCAt MTkwMCw3ICsxOTA4LDcgQEAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9mb3Jfd3JpdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCX0gZWxzZSBpZiAoSVNfR0VOX1JBTkdFKGRl dl9wcml2LCA2LCA3KSkgewogCQlmd19kb21haW5zID0gRk9SQ0VXQUtFX1JFTkRFUjsKIAl9IGVs c2UgewotCQlXQVJOX09OKCFJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDIsIDUpKTsKKwkJV0FSTl9P TighKHVuY29yZS0+ZmxhZ3MgJiBVTkNPUkVfSEFTX0ZPUkNFV0FLRSkpOwogCQlmd19kb21haW5z ID0gMDsKIAl9CiAKQEAgLTE5MzEsNyArMTkzOSw3IEBAIGludGVsX3VuY29yZV9mb3JjZXdha2Vf Zm9yX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlXQVJOX09OKCFv cCk7CiAKLQlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoZGV2X3ByaXYpKQorCWlmICghKGRldl9wcml2 LT51bmNvcmUuZmxhZ3MgJiBVTkNPUkVfSEFTX0ZPUkNFV0FLRSkpCiAJCXJldHVybiAwOwogCiAJ aWYgKG9wICYgRldfUkVHX1JFQUQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF91bmNvcmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5oCmluZGV4 IDljMzI3MTRmYTFhYi4uMjYwYTBkZDkyZDg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF91bmNvcmUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNv cmUuaApAQCAtMTMxLDYgKzEzMSwxMiBAQCBzdHJ1Y3QgaW50ZWxfdW5jb3JlIHsKIAl9IHVzZXJf Zm9yY2V3YWtlOwogCiAJaW50IHVuY2xhaW1lZF9tbWlvX2NoZWNrOworCisJdTMyIGZsYWdzOwor I2RlZmluZSBVTkNPUkVfSEFTX0ZPUkNFV0FLRQkJQklUKDApCisjZGVmaW5lIFVOQ09SRV9IQVNf RlBHQV9EQkdfVU5DTEFJTUVECUJJVCgxKQorI2RlZmluZSBVTkNPUkVfSEFTX0RCR19VTkNMQUlN RUQJQklUKDIpCisjZGVmaW5lIFVOQ09SRV9IQVNfRklGTwkJCUJJVCgzKQogfTsKIAogLyogSXRl cmF0ZSBvdmVyIGluaXRpYWxpc2VkIGZ3IGRvbWFpbnMgKi8KQEAgLTE1MCw4ICsxNTYsOCBAQCBm b3JjZXdha2VfZG9tYWluX3RvX3VuY29yZShjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNl d2FrZV9kb21haW4gKmQpCiB2b2lkIGludGVsX3VuY29yZV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF91bmNvcmVfaW5pdChzdHJ1Y3QgaW50 ZWxfdW5jb3JlICp1bmNvcmUpOwogdm9pZCBpbnRlbF91bmNvcmVfcHJ1bmUoc3RydWN0IGludGVs X3VuY29yZSAqdW5jb3JlKTsKLWJvb2wgaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1ib29sIGludGVsX3VuY29yZV9hcm1fdW5j bGFpbWVkX21taW9fZGV0ZWN0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Citib29sIGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1 bmNvcmUpOworYm9vbCBpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlvbihz dHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpOwogdm9pZCBpbnRlbF91bmNvcmVfZmluaShzdHJ1 Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpOwogdm9pZCBpbnRlbF91bmNvcmVfc3VzcGVuZChzdHJ1 Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpOwogdm9pZCBpbnRlbF91bmNvcmVfcmVzdW1lX2Vhcmx5 KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaW50ZWxfdW5jb3JlLmMKaW5kZXggNjlhYTI2MGI0NzlkLi5kMmM2YTAzZmIyOWMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF91bmNvcmUu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfdW5jb3JlLmMKQEAg LTEyMiw2ICsxMjIsNyBAQCBpbnQgaW50ZWxfdW5jb3JlX21vY2tfc2VsZnRlc3RzKHZvaWQpCiBz dGF0aWMgaW50IGludGVsX3VuY29yZV9jaGVja19mb3JjZXdha2VfZG9tYWlucyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAjZGVmaW5lIEZXX1JBTkdFIDB4NDAwMDAKKwlz dHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKIAl1bnNpZ25l ZCBsb25nICp2YWxpZDsKIAl1MzIgb2Zmc2V0OwogCWludCBlcnI7CkBAIC0xNDIsMzEgKzE0Mywz MSBAQCBzdGF0aWMgaW50IGludGVsX3VuY29yZV9jaGVja19mb3JjZXdha2VfZG9tYWlucyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaQogCWlmICghdmFsaWQpCiAJCXJldHVybiAtRU5P TUVNOwogCi0JaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoJmRldl9wcml2LT51bmNvcmUsIEZP UkNFV0FLRV9BTEwpOworCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KHVuY29yZSwgRk9SQ0VX QUtFX0FMTCk7CiAKLQljaGVja19mb3JfdW5jbGFpbWVkX21taW8oZGV2X3ByaXYpOworCWNoZWNr X2Zvcl91bmNsYWltZWRfbW1pbyh1bmNvcmUpOwogCWZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwg RldfUkFOR0U7IG9mZnNldCArPSA0KSB7CiAJCWk5MTVfcmVnX3QgcmVnID0geyBvZmZzZXQgfTsK IAogCQkodm9pZClJOTE1X1JFQURfRlcocmVnKTsKLQkJaWYgKCFjaGVja19mb3JfdW5jbGFpbWVk X21taW8oZGV2X3ByaXYpKQorCQlpZiAoIWNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyh1bmNvcmUp KQogCQkJc2V0X2JpdChvZmZzZXQsIHZhbGlkKTsKIAl9CiAKLQlpbnRlbF91bmNvcmVfZm9yY2V3 YWtlX3B1dCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CisJaW50ZWxfdW5jb3Jl X2ZvcmNld2FrZV9wdXQodW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKIAogCWVyciA9IDA7CiAJZm9y X2VhY2hfc2V0X2JpdChvZmZzZXQsIHZhbGlkLCBGV19SQU5HRSkgewogCQlpOTE1X3JlZ190IHJl ZyA9IHsgb2Zmc2V0IH07CiAKIAkJaW9zZl9tYmlfcHVuaXRfYWNxdWlyZSgpOwotCQlpbnRlbF91 bmNvcmVfZm9yY2V3YWtlX3Jlc2V0KCZkZXZfcHJpdi0+dW5jb3JlKTsKKwkJaW50ZWxfdW5jb3Jl X2ZvcmNld2FrZV9yZXNldCh1bmNvcmUpOwogCQlpb3NmX21iaV9wdW5pdF9yZWxlYXNlKCk7CiAK LQkJY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKGRldl9wcml2KTsKKwkJY2hlY2tfZm9yX3VuY2xh aW1lZF9tbWlvKHVuY29yZSk7CiAKIAkJKHZvaWQpSTkxNV9SRUFEKHJlZyk7Ci0JCWlmIChjaGVj a19mb3JfdW5jbGFpbWVkX21taW8oZGV2X3ByaXYpKSB7CisJCWlmIChjaGVja19mb3JfdW5jbGFp bWVkX21taW8odW5jb3JlKSkgewogCQkJcHJfZXJyKCJVbmNsYWltZWQgbW1pbyByZWFkIHRvIHJl Z2lzdGVyIDB4JTA0eFxuIiwKIAkJCSAgICAgICBvZmZzZXQpOwogCQkJZXJyID0gLUVJTlZBTDsK LS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4