From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: [PATCH v3 3/3] drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) Date: Fri, 1 Apr 2016 10:46:43 +0300 Message-ID: <1459496803-18092-3-git-send-email-joonas.lahtinen@linux.intel.com> References: <1459496803-18092-1-git-send-email-joonas.lahtinen@linux.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 ESMTP id B3E7B6EC11 for ; Fri, 1 Apr 2016 07:46:10 +0000 (UTC) In-Reply-To: <1459496803-18092-1-git-send-email-joonas.lahtinen@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 graphics driver community testing & development List-Id: intel-gfx@lists.freedesktop.org ZGV2X3ByaXYgaXMgd2hhdCB0aGUgbWFjcm8gd29ya3MgaGFyZCB0byBleHRyYWN0LCBwYXNzIGl0 IGRpcmVjdGx5LgoKdjI6Ci0gSW5jbHVkZSBhbGwgd3JhcHBlciBtYWNyb3MgdG9vIChDaHJpcykK CnYzOgotIEluY2x1ZGUgc2VkIGNtZGxpbmUgKENocmlzKQoKQ2M6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpd2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KU2lnbmVkLW9mZi1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMu bGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jICAgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyAgICAgICAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu YyAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMg ICAgICB8ICA2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAg ICAgfCAgOCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgICAgICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgfCA0 MCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwbGxfbWdyLmMgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m aWZvX3VuZGVycnVuLmMgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku YyAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYyAgICAg ICAgICAgfCAgNiArKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAg ICAgIHwgMTQgKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMg ICAgfCAxMiArKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jICAg ICAgICB8ICA0ICstLQogMTUgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgNTcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCA3NGYyMjc0Li43 OWE0ZmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMjQwOCw3ICsyNDA4 LDcgQEAgc3RhdGljIGludCBpOTE1X2d1Y19sb2FkX3N0YXR1c19pbmZvKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqZGF0YSkKIAlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3By aXYtPmd1Yy5ndWNfZnc7CiAJdTMyIHRtcCwgaTsKIAotCWlmICghSEFTX0dVQ19VQ09ERShkZXZf cHJpdi0+ZGV2KSkKKwlpZiAoIUhBU19HVUNfVUNPREUoZGV2X3ByaXYpKQogCQlyZXR1cm4gMDsK IAogCXNlcV9wcmludGYobSwgIkd1QyBmaXJtd2FyZSBzdGF0dXM6XG4iKTsKQEAgLTI0ODIsNyAr MjQ4Miw3IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKmRhdGEpCiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXU2NCB0b3RhbCA9 IDA7CiAKLQlpZiAoIUhBU19HVUNfU0NIRUQoZGV2X3ByaXYtPmRldikpCisJaWYgKCFIQVNfR1VD X1NDSEVEKGRldl9wcml2KSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAobXV0ZXhfbG9ja19pbnRlcnJ1 cHRpYmxlKCZkZXYtPnN0cnVjdF9tdXRleCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCAw MjBhMzFjLi4yOWI0ZTc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTE0MDAsNyArMTQw MCw3IEBAIHN0YXRpYyBpbnQgdmx2X3N1c3BlbmRfY29tcGxldGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCWlmIChlcnIpCiAJCWdvdG8gZXJyMjsKIAotCWlmICghSVNfQ0hF UlJZVklFVyhkZXZfcHJpdi0+ZGV2KSkKKwlpZiAoIUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQog CQl2bHZfc2F2ZV9ndW5pdF9zMGl4X3N0YXRlKGRldl9wcml2KTsKIAogCWVyciA9IHZsdl9mb3Jj ZV9nZnhfY2xvY2soZGV2X3ByaXYsIGZhbHNlKTsKQEAgLTE0MzIsNyArMTQzMiw3IEBAIHN0YXRp YyBpbnQgdmx2X3Jlc3VtZV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkgKi8KIAlyZXQgPSB2bHZfZm9yY2VfZ2Z4X2Nsb2NrKGRldl9wcml2LCB0cnVlKTsKIAot CWlmICghSVNfQ0hFUlJZVklFVyhkZXZfcHJpdi0+ZGV2KSkKKwlpZiAoIUlTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKQogCQl2bHZfcmVzdG9yZV9ndW5pdF9zMGl4X3N0YXRlKGRldl9wcml2KTsKIAog CWVyciA9IHZsdl9hbGxvd19ndF93YWtlKGRldl9wcml2LCB0cnVlKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKaW5kZXggMWVkYTVmZS4uZGE2ZTNhNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKQEAgLTIzMDYsNyArMjMwNiw3IEBAIHZvaWQgaTkxNV9jaGVja19hbmRf Y2xlYXJfZmF1bHRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIHN0YXRpYyB2b2lkIGk5MTVf Z2d0dF9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JaWYgKElO VEVMX0lORk8oZGV2X3ByaXYtPmRldiktPmdlbiA8IDYpIHsKKwlpZiAoSU5URUxfSU5GTyhkZXZf cHJpdiktPmdlbiA8IDYpIHsKIAkJaW50ZWxfZ3R0X2NoaXBzZXRfZmx1c2goKTsKIAl9IGVsc2Ug ewogCQlJOTE1X1dSSVRFKEdGWF9GTFNIX0NOVExfR0VONiwgR0ZYX0ZMU0hfQ05UTF9FTik7CkBA IC0yOTc3LDcgKzI5NzcsNyBAQCBzdGF0aWMgdm9pZCBiZHdfc2V0dXBfcHJpdmF0ZV9wcGF0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgICAgICBHRU44X1BQQVQoNiwgR0VO OF9QUEFUX1dCIHwgR0VOOF9QUEFUX0xMQ0VMTEMgfCBHRU44X1BQQVRfQUdFKDIpKSB8CiAJICAg ICAgR0VOOF9QUEFUKDcsIEdFTjhfUFBBVF9XQiB8IEdFTjhfUFBBVF9MTENFTExDIHwgR0VOOF9Q UEFUX0FHRSgzKSk7CiAKLQlpZiAoIVVTRVNfUFBHVFQoZGV2X3ByaXYtPmRldikpCisJaWYgKCFV U0VTX1BQR1RUKGRldl9wcml2KSkKIAkJLyogU3BlYzogIkZvciBHR1RULCB0aGVyZSBpcyBOTyBw YXRfc2VsWzI6MF0gZnJvbSB0aGUgZW50cnksCiAJCSAqIHNvIFJUTCB3aWxsIGFsd2F5cyB1c2Ug dGhlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8KIAkJICogcGF0X3NlbCA9IDAwMCIuCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCA5YjU1NDA5Li5kNTlhNGYyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTY2OSw3ICs2NjksNyBAQCBpOTE1X2Vy cm9yX29iamVjdF9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCX0K IAogCS8qIENhbm5vdCBhY2Nlc3Mgc25vb3BlZCBwYWdlcyB0aHJvdWdoIHRoZSBhcGVydHVyZSAq LwotCWlmICh1c2VfZ2d0dCAmJiBzcmMtPmNhY2hlX2xldmVsICE9IEk5MTVfQ0FDSEVfTk9ORSAm JiAhSEFTX0xMQyhkZXZfcHJpdi0+ZGV2KSkKKwlpZiAodXNlX2dndHQgJiYgc3JjLT5jYWNoZV9s ZXZlbCAhPSBJOTE1X0NBQ0hFX05PTkUgJiYgIUhBU19MTEMoZGV2X3ByaXYpKQogCQlnb3RvIHVu d2luZDsKIAogCWRzdC0+cGFnZV9jb3VudCA9IG51bV9wYWdlczsKQEAgLTg4NCw3ICs4ODQsNyBA QCBzdGF0aWMgdm9pZCBnZW42X3JlY29yZF9zZW1hcGhvcmVfc3RhdGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCWVyaW5nLT5zZW1hcGhvcmVfc2Vxbm9bMF0gPSBlbmdpbmUt PnNlbWFwaG9yZS5zeW5jX3NlcW5vWzBdOwogCWVyaW5nLT5zZW1hcGhvcmVfc2Vxbm9bMV0gPSBl bmdpbmUtPnNlbWFwaG9yZS5zeW5jX3NlcW5vWzFdOwogCi0JaWYgKEhBU19WRUJPWChkZXZfcHJp di0+ZGV2KSkgeworCWlmIChIQVNfVkVCT1goZGV2X3ByaXYpKSB7CiAJCWVyaW5nLT5zZW1hcGhv cmVfbWJveGVzWzJdID0KIAkJCUk5MTVfUkVBRChSSU5HX1NZTkNfMihlbmdpbmUtPm1taW9fYmFz ZSkpOwogCQllcmluZy0+c2VtYXBob3JlX3NlcW5vWzJdID0gZW5naW5lLT5zZW1hcGhvcmUuc3lu Y19zZXFub1syXTsKQEAgLTEwNTEsNyArMTA1MSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jl Y29yZF9yaW5ncyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkJCSByZXF1ZXN0LT5iYXRj aF9vYmosCiAJCQkJCQkJIHZtKTsKIAotCQkJaWYgKEhBU19CUk9LRU5fQ1NfVExCKGRldl9wcml2 LT5kZXYpKQorCQkJaWYgKEhBU19CUk9LRU5fQ1NfVExCKGRldl9wcml2KSkKIAkJCQllcnJvci0+ cmluZ1tpXS53YV9iYXRjaGJ1ZmZlciA9CiAJCQkJCWk5MTVfZXJyb3JfZ2d0dF9vYmplY3RfY3Jl YXRlKGRldl9wcml2LAogCQkJCQkJCSAgICAgZW5naW5lLT5zY3JhdGNoLm9iaik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYwppbmRleCBhOWMxODEzLi4xNDcxNWM0IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMKQEAgLTEyMTgsNyArMTIxOCw3IEBAIHN0YXRpYyB2b2lkIGl2eWJyaWRnZV9wYXJpdHlf d29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCWk5MTVfcmVnX3QgcmVnOwogCiAJCXNs aWNlLS07Ci0JCWlmIChXQVJOX09OX09OQ0Uoc2xpY2UgPj0gTlVNX0wzX1NMSUNFUyhkZXZfcHJp di0+ZGV2KSkpCisJCWlmIChXQVJOX09OX09OQ0Uoc2xpY2UgPj0gTlVNX0wzX1NMSUNFUyhkZXZf cHJpdikpKQogCQkJYnJlYWs7CiAKIAkJZGV2X3ByaXYtPmwzX3Bhcml0eS53aGljaF9zbGljZSAm PSB+KDE8PHNsaWNlKTsKQEAgLTEyNTcsNyArMTI1Nyw3IEBAIHN0YXRpYyB2b2lkIGl2eWJyaWRn ZV9wYXJpdHlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiBvdXQ6CiAJV0FSTl9PTihk ZXZfcHJpdi0+bDNfcGFyaXR5LndoaWNoX3NsaWNlKTsKIAlzcGluX2xvY2tfaXJxKCZkZXZfcHJp di0+aXJxX2xvY2spOwotCWdlbjVfZW5hYmxlX2d0X2lycShkZXZfcHJpdiwgR1RfUEFSSVRZX0VS Uk9SKGRldl9wcml2LT5kZXYpKTsKKwlnZW41X2VuYWJsZV9ndF9pcnEoZGV2X3ByaXYsIEdUX1BB UklUWV9FUlJPUihkZXZfcHJpdikpOwogCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9s b2NrKTsKIAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKQEAg LTE2MjYsNyArMTYyNiw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfcnBzX2lycV9oYW5kbGVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBtX2lpcikKIAlpZiAoSU5URUxfSU5G TyhkZXZfcHJpdiktPmdlbiA+PSA4KQogCQlyZXR1cm47CiAKLQlpZiAoSEFTX1ZFQk9YKGRldl9w cml2LT5kZXYpKSB7CisJaWYgKEhBU19WRUJPWChkZXZfcHJpdikpIHsKIAkJaWYgKHBtX2lpciAm IFBNX1ZFQk9YX1VTRVJfSU5URVJSVVBUKQogCQkJbm90aWZ5X3JpbmcoJmRldl9wcml2LT5lbmdp bmVbVkVDU10pOwogCkBAIC0yODI4LDcgKzI4MjgsNyBAQCBzZW1hcGhvcmVfd2FpdF90b19zaWdu YWxsZXJfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBpcGVociwKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmRldi0+ZGV2X3ByaXZh dGU7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2lnbmFsbGVyOwogCi0JaWYgKElOVEVMX0lO Rk8oZGV2X3ByaXYtPmRldiktPmdlbiA+PSA4KSB7CisJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYp LT5nZW4gPj0gOCkgewogCQlmb3JfZWFjaF9lbmdpbmUoc2lnbmFsbGVyLCBkZXZfcHJpdikgewog CQkJaWYgKGVuZ2luZSA9PSBzaWduYWxsZXIpCiAJCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXVkaW8uYwppbmRleCBmZGM4YjJhLi41NmJhODc2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F1ZGlvLmMKQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0aWMgdm9pZCBpbGtfYXVkaW9fY29k ZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAlpZiAoV0FSTl9PTihw b3J0ID09IFBPUlRfQSkpCiAJCXJldHVybjsKIAotCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdi0+ ZGV2KSkgeworCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikpIHsKIAkJYXVkX2NvbmZpZyA9IElC WF9BVURfQ0ZHKHBpcGUpOwogCQlhdWRfY250cmxfc3QyID0gSUJYX0FVRF9DTlRMX1NUMjsKIAl9 IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3By aXYpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZTZiNWVlNS4uOTEy Yjc1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTE2MCw3ICsxMTYw LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2ZkaV90eChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gaW50ZWxfcGlwZV90 b19jcHVfdHJhbnNjb2RlcihkZXZfcHJpdiwKIAkJCQkJCQkJICAgICAgcGlwZSk7CiAKLQlpZiAo SEFTX0RESShkZXZfcHJpdi0+ZGV2KSkgeworCWlmIChIQVNfRERJKGRldl9wcml2KSkgewogCQkv KiBEREkgZG9lcyBub3QgaGF2ZSBhIHNwZWNpZmljIEZESV9UWCByZWdpc3RlciAqLwogCQl1MzIg dmFsID0gSTkxNV9SRUFEKFRSQU5TX0RESV9GVU5DX0NUTChjcHVfdHJhbnNjb2RlcikpOwogCQlj dXJfc3RhdGUgPSAhISh2YWwgJiBUUkFOU19ERElfRlVOQ19FTkFCTEUpOwpAQCAtMTE5NiwxMSAr MTE5NiwxMSBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfZmRpX3R4X3BsbF9lbmFibGVkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl1MzIgdmFsOwogCiAJLyogSUxLIEZESSBQTEwg aXMgYWx3YXlzIGVuYWJsZWQgKi8KLQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdi0+ZGV2KS0+Z2Vu ID09IDUpCisJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPT0gNSkKIAkJcmV0dXJuOwog CiAJLyogT24gSGFzd2VsbCwgRERJIHBvcnRzIGFyZSByZXNwb25zaWJsZSBmb3IgdGhlIEZESSBQ TEwgc2V0dXAgKi8KLQlpZiAoSEFTX0RESShkZXZfcHJpdi0+ZGV2KSkKKwlpZiAoSEFTX0RESShk ZXZfcHJpdikpCiAJCXJldHVybjsKIAogCXZhbCA9IEk5MTVfUkVBRChGRElfVFhfQ1RMKHBpcGUp KTsKQEAgLTE0MDgsMTEgKzE0MDgsMTEgQEAgc3RhdGljIGJvb2wgZHBfcGlwZV9lbmFibGVkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoKHZhbCAmIERQX1BPUlRfRU4p ID09IDApCiAJCXJldHVybiBmYWxzZTsKIAotCWlmIChIQVNfUENIX0NQVChkZXZfcHJpdi0+ZGV2 KSkgeworCWlmIChIQVNfUENIX0NQVChkZXZfcHJpdikpIHsKIAkJdTMyIHRyYW5zX2RwX2N0bCA9 IEk5MTVfUkVBRChUUkFOU19EUF9DVEwocGlwZSkpOwogCQlpZiAoKHRyYW5zX2RwX2N0bCAmIFRS QU5TX0RQX1BPUlRfU0VMX01BU0spICE9IHBvcnRfc2VsKQogCQkJcmV0dXJuIGZhbHNlOwotCX0g ZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdi0+ZGV2KSkgeworCX0gZWxzZSBpZiAoSVNf Q0hFUlJZVklFVyhkZXZfcHJpdikpIHsKIAkJaWYgKCh2YWwgJiBEUF9QSVBFX01BU0tfQ0hWKSAh PSBEUF9QSVBFX1NFTEVDVF9DSFYocGlwZSkpCiAJCQlyZXR1cm4gZmFsc2U7CiAJfSBlbHNlIHsK QEAgLTE0MjgsMTAgKzE0MjgsMTAgQEAgc3RhdGljIGJvb2wgaGRtaV9waXBlX2VuYWJsZWQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmICgodmFsICYgU0RWT19FTkFCTEUp ID09IDApCiAJCXJldHVybiBmYWxzZTsKIAotCWlmIChIQVNfUENIX0NQVChkZXZfcHJpdi0+ZGV2 KSkgeworCWlmIChIQVNfUENIX0NQVChkZXZfcHJpdikpIHsKIAkJaWYgKCh2YWwgJiBTRFZPX1BJ UEVfU0VMX01BU0tfQ1BUKSAhPSBTRFZPX1BJUEVfU0VMX0NQVChwaXBlKSkKIAkJCXJldHVybiBm YWxzZTsKLQl9IGVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYtPmRldikpIHsKKwl9IGVs c2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCWlmICgodmFsICYgU0RWT19QSVBF X1NFTF9NQVNLX0NIVikgIT0gU0RWT19QSVBFX1NFTF9DSFYocGlwZSkpCiAJCQlyZXR1cm4gZmFs c2U7CiAJfSBlbHNlIHsKQEAgLTE0NDcsNyArMTQ0Nyw3IEBAIHN0YXRpYyBib29sIGx2ZHNfcGlw ZV9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoKHZhbCAm IExWRFNfUE9SVF9FTikgPT0gMCkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKEhBU19QQ0hfQ1BU KGRldl9wcml2LT5kZXYpKSB7CisJaWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSkgewogCQlpZiAo KHZhbCAmIFBPUlRfVFJBTlNfU0VMX01BU0spICE9IFBPUlRfVFJBTlNfU0VMX0NQVChwaXBlKSkK IAkJCXJldHVybiBmYWxzZTsKIAl9IGVsc2UgewpAQCAtMTQ2Miw3ICsxNDYyLDcgQEAgc3RhdGlj IGJvb2wgYWRwYV9waXBlX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogewogCWlmICgodmFsICYgQURQQV9EQUNfRU5BQkxFKSA9PSAwKQogCQlyZXR1cm4gZmFsc2U7 Ci0JaWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2LT5kZXYpKSB7CisJaWYgKEhBU19QQ0hfQ1BUKGRl dl9wcml2KSkgewogCQlpZiAoKHZhbCAmIFBPUlRfVFJBTlNfU0VMX01BU0spICE9IFBPUlRfVFJB TlNfU0VMX0NQVChwaXBlKSkKIAkJCXJldHVybiBmYWxzZTsKIAl9IGVsc2UgewpAQCAtMTQ4MSw3 ICsxNDgxLDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3BjaF9kcF9kaXNhYmxlZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICAgICAiUENIIERQICgweCUwOHgpIGVuYWJsZWQg b24gdHJhbnNjb2RlciAlYywgc2hvdWxkIGJlIGRpc2FibGVkXG4iLAogCSAgICAgaTkxNV9tbWlv X3JlZ19vZmZzZXQocmVnKSwgcGlwZV9uYW1lKHBpcGUpKTsKIAotCUk5MTVfU1RBVEVfV0FSTihI QVNfUENIX0lCWChkZXZfcHJpdi0+ZGV2KSAmJiAodmFsICYgRFBfUE9SVF9FTikgPT0gMAorCUk5 MTVfU1RBVEVfV0FSTihIQVNfUENIX0lCWChkZXZfcHJpdikgJiYgKHZhbCAmIERQX1BPUlRfRU4p ID09IDAKIAkgICAgICYmICh2YWwgJiBEUF9QSVBFQl9TRUxFQ1QpLAogCSAgICAgIklCWCBQQ0gg ZHAgcG9ydCBzdGlsbCB1c2luZyB0cmFuc2NvZGVyIEJcbiIpOwogfQpAQCAtMTQ5NCw3ICsxNDk0 LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3BjaF9oZG1pX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkgICAgICJQQ0ggSERNSSAoMHglMDh4KSBlbmFibGVkIG9u IHRyYW5zY29kZXIgJWMsIHNob3VsZCBiZSBkaXNhYmxlZFxuIiwKIAkgICAgIGk5MTVfbW1pb19y ZWdfb2Zmc2V0KHJlZyksIHBpcGVfbmFtZShwaXBlKSk7CiAKLQlJOTE1X1NUQVRFX1dBUk4oSEFT X1BDSF9JQlgoZGV2X3ByaXYtPmRldikgJiYgKHZhbCAmIFNEVk9fRU5BQkxFKSA9PSAwCisJSTkx NV9TVEFURV9XQVJOKEhBU19QQ0hfSUJYKGRldl9wcml2KSAmJiAodmFsICYgU0RWT19FTkFCTEUp ID09IDAKIAkgICAgICYmICh2YWwgJiBTRFZPX1BJUEVfQl9TRUxFQ1QpLAogCSAgICAgIklCWCBQ Q0ggaGRtaSBwb3J0IHN0aWxsIHVzaW5nIHRyYW5zY29kZXIgQlxuIik7CiB9CkBAIC0xNTM0LDcg KzE1MzQsNyBAQCBzdGF0aWMgdm9pZCB2bHZfZW5hYmxlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKIAlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CiAKIAkv KiBQTEwgaXMgcHJvdGVjdGVkIGJ5IHBhbmVsLCBtYWtlIHN1cmUgd2UgY2FuIHdyaXRlIGl0ICov Ci0JaWYgKElTX01PQklMRShkZXZfcHJpdi0+ZGV2KSkKKwlpZiAoSVNfTU9CSUxFKGRldl9wcml2 KSkKIAkJYXNzZXJ0X3BhbmVsX3VubG9ja2VkKGRldl9wcml2LCBjcnRjLT5waXBlKTsKIAogCUk5 MTVfV1JJVEUocmVnLCBkcGxsKTsKQEAgLTE4MTgsNyArMTgxOCw3IEBAIHN0YXRpYyB2b2lkIGly b25sYWtlX2VuYWJsZV9wY2hfdHJhbnNjb2RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAJcGlwZWNvbmZfdmFsID0gSTkxNV9SRUFE KFBJUEVDT05GKHBpcGUpKTsKIAotCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdi0+ZGV2KSkgewor CWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikpIHsKIAkJLyoKIAkJICogTWFrZSB0aGUgQlBDIGlu IHRyYW5zY29kZXIgYmUgY29uc2lzdGVudCB3aXRoCiAJCSAqIHRoYXQgaW4gcGlwZWNvbmYgcmVn LiBGb3IgSERNSSB3ZSBtdXN0IHVzZSA4YnBjCkBAIC0xODMzLDcgKzE4MzMsNyBAQCBzdGF0aWMg dm9pZCBpcm9ubGFrZV9lbmFibGVfcGNoX3RyYW5zY29kZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCiAJdmFsICY9IH5UUkFOU19JTlRFUkxBQ0VfTUFTSzsKIAlpZiAoKHBp cGVjb25mX3ZhbCAmIFBJUEVDT05GX0lOVEVSTEFDRV9NQVNLKSA9PSBQSVBFQ09ORl9JTlRFUkxB Q0VEX0lMSykKLQkJaWYgKEhBU19QQ0hfSUJYKGRldl9wcml2LT5kZXYpICYmCisJCWlmIChIQVNf UENIX0lCWChkZXZfcHJpdikgJiYKIAkJICAgIGludGVsX3BpcGVfaGFzX3R5cGUoaW50ZWxfY3J0 YywgSU5URUxfT1VUUFVUX1NEVk8pKQogCQkJdmFsIHw9IFRSQU5TX0xFR0FDWV9JTlRFUkxBQ0VE X0lMSzsKIAkJZWxzZQpAQCAtMTg1Miw3ICsxODUyLDcgQEAgc3RhdGljIHZvaWQgbHB0X2VuYWJs ZV9wY2hfdHJhbnNjb2RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdTMy IHZhbCwgcGlwZWNvbmZfdmFsOwogCiAJLyogUENIIG9ubHkgYXZhaWxhYmxlIG9uIElMSysgKi8K LQlCVUdfT04oIUhBU19QQ0hfU1BMSVQoZGV2X3ByaXYtPmRldikpOworCUJVR19PTighSEFTX1BD SF9TUExJVChkZXZfcHJpdikpOwogCiAJLyogRkRJIG11c3QgYmUgZmVlZGluZyB1cyBiaXRzIGZv ciBQQ0ggcG9ydHMgKi8KIAlhc3NlcnRfZmRpX3R4X2VuYWJsZWQoZGV2X3ByaXYsIChlbnVtIHBp cGUpIGNwdV90cmFuc2NvZGVyKTsKQEAgLTE5NDgsNyArMTk0OCw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2VuYWJsZV9waXBlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCWFzc2VydF9jdXJzb3Jf ZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUpOwogCWFzc2VydF9zcHJpdGVzX2Rpc2FibGVkKGRldl9w cml2LCBwaXBlKTsKIAotCWlmIChIQVNfUENIX0xQVChkZXZfcHJpdi0+ZGV2KSkKKwlpZiAoSEFT X1BDSF9MUFQoZGV2X3ByaXYpKQogCQlwY2hfdHJhbnNjb2RlciA9IFRSQU5TQ09ERVJfQTsKIAll bHNlCiAJCXBjaF90cmFuc2NvZGVyID0gcGlwZTsKQEAgLTE5NTgsNyArMTk1OCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2VuYWJsZV9waXBlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCSAqIGEg cGxhbmUuICBPbiBJTEsrIHRoZSBwaXBlIFBMTHMgYXJlIGludGVncmF0ZWQsIHNvIHdlIGRvbid0 CiAJICogbmVlZCB0aGUgY2hlY2suCiAJICovCi0JaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3By aXYtPmRldikpCisJaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQogCQlpZiAoY3J0Yy0+ Y29uZmlnLT5oYXNfZHNpX2VuY29kZXIpCiAJCQlhc3NlcnRfZHNpX3BsbF9lbmFibGVkKGRldl9w cml2KTsKIAkJZWxzZQpAQCAtNjQ5NCw3ICs2NDk0LDcgQEAgc3RhdGljIGJvb2wgcGlwZV9jb25m aWdfc3VwcG9ydHNfaXBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJcmV0 dXJuIGZhbHNlOwogCiAJLyogSFNXIGNhbiBoYW5kbGUgcGl4ZWwgcmF0ZSB1cCB0byBjZGNsaz8g Ki8KLQlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdi0+ZGV2KSkKKwlpZiAoSVNfSEFTV0VMTChkZXZf cHJpdikpCiAJCXJldHVybiB0cnVlOwogCiAJLyoKQEAgLTkyNjQsNyArOTI2NCw3IEBAIHN0YXRp YyBib29sIGlyb25sYWtlX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK IAogCQlpcm9ubGFrZV9nZXRfZmRpX21fbl9jb25maWcoY3J0YywgcGlwZV9jb25maWcpOwogCi0J CWlmIChIQVNfUENIX0lCWChkZXZfcHJpdi0+ZGV2KSkgeworCQlpZiAoSEFTX1BDSF9JQlgoZGV2 X3ByaXYpKSB7CiAJCQlwbGxfaWQgPSAoZW51bSBpbnRlbF9kcGxsX2lkKSBjcnRjLT5waXBlOwog CQl9IGVsc2UgewogCQkJdG1wID0gSTkxNV9SRUFEKFBDSF9EUExMX1NFTCk7CkBAIC0xNjE1OSw3 ICsxNjE1OSw3IEBAIGludGVsX2Rpc3BsYXlfY2FwdHVyZV9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCiAJLyogTm90ZTogdGhpcyBkb2VzIG5vdCBpbmNsdWRlIERTSSB0cmFu c2NvZGVycy4gKi8KIAllcnJvci0+bnVtX3RyYW5zY29kZXJzID0gSU5URUxfSU5GTyhkZXYpLT5u dW1fcGlwZXM7Ci0JaWYgKEhBU19EREkoZGV2X3ByaXYtPmRldikpCisJaWYgKEhBU19EREkoZGV2 X3ByaXYpKQogCQllcnJvci0+bnVtX3RyYW5zY29kZXJzKys7IC8qIEFjY291bnQgZm9yIGVEUC4g Ki8KIAogCWZvciAoaSA9IDA7IGkgPCBlcnJvci0+bnVtX3RyYW5zY29kZXJzOyBpKyspIHsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCmluZGV4IDExNzVlZWIuLmFhMTFhZWYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwpAQCAtMjk4LDcgKzI5OCw3IEBAIHN0 YXRpYyB2b2lkIGlieF9hc3NlcnRfcGNoX3JlZmNsa19lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAl1MzIgdmFsOwogCWJvb2wgZW5hYmxlZDsKIAotCUk5MTVfU1RB VEVfV0FSTl9PTighKEhBU19QQ0hfSUJYKGRldl9wcml2LT5kZXYpIHx8IEhBU19QQ0hfQ1BUKGRl dl9wcml2LT5kZXYpKSk7CisJSTkxNV9TVEFURV9XQVJOX09OKCEoSEFTX1BDSF9JQlgoZGV2X3By aXYtPmRldikgfHwgSEFTX1BDSF9DUFQoZGV2X3ByaXYpKSk7CiAKIAl2YWwgPSBJOTE1X1JFQUQo UENIX0RSRUZfQ09OVFJPTCk7CiAJZW5hYmxlZCA9ICEhKHZhbCAmIChEUkVGX1NTQ19TT1VSQ0Vf TUFTSyB8IERSRUZfTk9OU1BSRUFEX1NPVVJDRV9NQVNLIHwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZpZm9fdW5kZXJydW4uYwppbmRleCAxOWU1MGZkLi45YmU4MzlhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jCkBAIC0zMzMsNyArMzMzLDcgQEAg Ym9vbCBpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAlvbGQgPSAhaW50ZWxfY3J0Yy0+cGNoX2ZpZm9fdW5kZXJy dW5fZGlzYWJsZWQ7CiAJaW50ZWxfY3J0Yy0+cGNoX2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQgPSAh ZW5hYmxlOwogCi0JaWYgKEhBU19QQ0hfSUJYKGRldl9wcml2LT5kZXYpKQorCWlmIChIQVNfUENI X0lCWChkZXZfcHJpdikpCiAJCWlieF9zZXRfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3By aXYtPmRldiwgcGNoX3RyYW5zY29kZXIsCiAJCQkJCQllbmFibGUpOwogCWVsc2UKQEAgLTM2Myw3 ICszNjMsNyBAQCB2b2lkIGludGVsX2NwdV9maWZvX3VuZGVycnVuX2lycV9oYW5kbGVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuOwogCiAJLyogR01DSCBjYW4n dCBkaXNhYmxlIGZpZm8gdW5kZXJydW5zLCBmaWx0ZXIgdGhlbS4gKi8KLQlpZiAoSEFTX0dNQ0hf RElTUExBWShkZXZfcHJpdi0+ZGV2KSAmJgorCWlmIChIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2 KSAmJgogCSAgICB0b19pbnRlbF9jcnRjKGNydGMpLT5jcHVfZmlmb191bmRlcnJ1bl9kaXNhYmxl ZCkKIAkJcmV0dXJuOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggZTJkYWI0OC4u YjE5OWVkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtNjM4LDcgKzYzOCw3IEBA IHN0YXRpYyBib29sIGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQogCQlyZWcgPSBIU1dfVFZJREVPX0RJUF9HQ1AoY3J0Yy0+Y29uZmlnLT5j cHVfdHJhbnNjb2Rlcik7CiAJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNf Q0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCXJlZyA9IFZMVl9UVklERU9fRElQX0dDUChjcnRjLT5w aXBlKTsKLQllbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2LT5kZXYpKQorCWVsc2UgaWYg KEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKQogCQlyZWcgPSBUVklERU9fRElQX0dDUChjcnRjLT5w aXBlKTsKIAllbHNlCiAJCXJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2kyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKaW5k ZXggNTJmYmU1My4uNmRiZTczZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaTJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKQEAgLTEyNCw3 ICsxMjQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9pMmNfcXVpcmtfc2V0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCBlbmFibGUpCiAJdTMyIHZhbDsKIAogCS8qIFdoZW4g dXNpbmcgYml0IGJhc2hpbmcgZm9yIEkyQywgdGhpcyBiaXQgbmVlZHMgdG8gYmUgc2V0IHRvIDEg Ki8KLQlpZiAoIUlTX1BJTkVWSUVXKGRldl9wcml2LT5kZXYpKQorCWlmICghSVNfUElORVZJRVco ZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKIAl2YWwgPSBJOTE1X1JFQUQoRFNQQ0xLX0dBVEVfRCk7 CkBAIC0yNjQsNyArMjY0LDcgQEAgZ21idXNfd2FpdF9od19zdGF0dXMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCXUzMiBnbWJ1czIgPSAwOwogCURFRklORV9XQUlUKHdhaXQp OwogCi0JaWYgKCFIQVNfR01CVVNfSVJRKGRldl9wcml2LT5kZXYpKQorCWlmICghSEFTX0dNQlVT X0lSUShkZXZfcHJpdikpCiAJCWdtYnVzNF9pcnFfZW4gPSAwOwogCiAJLyogSW1wb3J0YW50OiBU aGUgaHcgaGFuZGxlcyBvbmx5IHRoZSBmaXJzdCBiaXQsIHNvIHNldCBvbmx5IG9uZSEgU2luY2UK QEAgLTMwMCw3ICszMDAsNyBAQCBnbWJ1c193YWl0X2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCiAjZGVmaW5lIEMgKChJOTE1X1JFQURfTk9UUkFDRShHTUJVUzIpICYg R01CVVNfQUNUSVZFKSA9PSAwKQogCi0JaWYgKCFIQVNfR01CVVNfSVJRKGRldl9wcml2LT5kZXYp KQorCWlmICghSEFTX0dNQlVTX0lSUShkZXZfcHJpdikpCiAJCXJldHVybiB3YWl0X2ZvcihDLCAx MCk7CiAKIAkvKiBJbXBvcnRhbnQ6IFRoZSBodyBoYW5kbGVzIG9ubHkgdGhlIGZpcnN0IGJpdCwg c28gc2V0IG9ubHkgb25lISAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggOWJjOWMyNS4u OWVlZjk3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC00Mjg4LDcgKzQyODgsNyBAQCBz dGF0aWMgdTMyIGludGVsX3Jwc19saW1pdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1OCB2YWwpCiAJICogdGhlIGh3IHJ1bnMgYXQgdGhlIG1pbmltYWwgY2xvY2sgYmVmb3Jl IHNlbGVjdGluZyB0aGUgZGVzaXJlZAogCSAqIGZyZXF1ZW5jeSwgaWYgdGhlIGRvd24gdGhyZXNo b2xkIGV4cGlyZXMgaW4gdGhhdCB3aW5kb3cgd2Ugd2lsbCBub3QKIAkgKiByZWNlaXZlIGEgZG93 biBpbnRlcnJ1cHQuICovCi0JaWYgKElTX0dFTjkoZGV2X3ByaXYtPmRldikpIHsKKwlpZiAoSVNf R0VOOShkZXZfcHJpdikpIHsKIAkJbGltaXRzID0gKGRldl9wcml2LT5ycHMubWF4X2ZyZXFfc29m dGxpbWl0KSA8PCAyMzsKIAkJaWYgKHZhbCA8PSBkZXZfcHJpdi0+cnBzLm1pbl9mcmVxX3NvZnRs aW1pdCkKIAkJCWxpbWl0cyB8PSAoZGV2X3ByaXYtPnJwcy5taW5fZnJlcV9zb2Z0bGltaXQpIDw8 IDE0OwpAQCAtNzM0NiwxMiArNzM0NiwxMiBAQCBzdGF0aWMgaW50IGNodl9mcmVxX29wY29kZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpCiAKIGludCBpbnRlbF9n cHVfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpCiB7Ci0J aWYgKElTX0dFTjkoZGV2X3ByaXYtPmRldikpCisJaWYgKElTX0dFTjkoZGV2X3ByaXYpKQogCQly ZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QodmFsICogR1RfRlJFUVVFTkNZX01VTFRJUExJRVIsCiAJ CQkJCSBHRU45X0ZSRVFfU0NBTEVSKTsKLQllbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2 LT5kZXYpKQorCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQlyZXR1cm4gY2h2 X2dwdV9mcmVxKGRldl9wcml2LCB2YWwpOwotCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3By aXYtPmRldikpCisJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCiAJCXJldHVybiBi eXRfZ3B1X2ZyZXEoZGV2X3ByaXYsIHZhbCk7CiAJZWxzZQogCQlyZXR1cm4gdmFsICogR1RfRlJF UVVFTkNZX01VTFRJUExJRVI7CkBAIC03MzU5LDEyICs3MzU5LDEyIEBAIGludCBpbnRlbF9ncHVf ZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpCiAKIGludCBp bnRlbF9mcmVxX29wY29kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2 YWwpCiB7Ci0JaWYgKElTX0dFTjkoZGV2X3ByaXYtPmRldikpCisJaWYgKElTX0dFTjkoZGV2X3By aXYpKQogCQlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QodmFsICogR0VOOV9GUkVRX1NDQUxFUiwK IAkJCQkJIEdUX0ZSRVFVRU5DWV9NVUxUSVBMSUVSKTsKLQllbHNlIGlmIChJU19DSEVSUllWSUVX KGRldl9wcml2LT5kZXYpKQorCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQly ZXR1cm4gY2h2X2ZyZXFfb3Bjb2RlKGRldl9wcml2LCB2YWwpOwotCWVsc2UgaWYgKElTX1ZBTExF WVZJRVcoZGV2X3ByaXYtPmRldikpCisJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikp CiAJCXJldHVybiBieXRfZnJlcV9vcGNvZGUoZGV2X3ByaXYsIHZhbCk7CiAJZWxzZQogCQlyZXR1 cm4gRElWX1JPVU5EX0NMT1NFU1QodmFsLCBHVF9GUkVRVUVOQ1lfTVVMVElQTElFUik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Bzci5jCmluZGV4IDM4ZTk1MTguLmMzYWJhZTQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Bzci5jCkBAIC01NjMsNyArNTYzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX3dv cmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCSAqIFBTUiBtaWdodCB0YWtlIHNvbWUgdGlt ZSB0byBnZXQgZnVsbHkgZGlzYWJsZWQKIAkgKiBhbmQgYmUgcmVhZHkgZm9yIHJlLWVuYWJsZS4K IAkgKi8KLQlpZiAoSEFTX0RESShkZXZfcHJpdi0+ZGV2KSkgeworCWlmIChIQVNfRERJKGRldl9w cml2KSkgewogCQlpZiAod2FpdF9mb3IoKEk5MTVfUkVBRChFRFBfUFNSX1NUQVRVU19DVEwpICYK IAkJCSAgICAgIEVEUF9QU1JfU1RBVFVTX1NUQVRFX01BU0spID09IDAsIDUwKSkgewogCQkJRFJN X0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgUFNSIElkbGUgZm9yIHJlLWVuYWJsZVxuIik7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggZDE4OWEwMC4uNmMw YWYyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtMjAzOSwx NyArMjAzOSwxNyBAQCBpbnQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBUaGUgZW5hYmxpbmcgb3JkZXIgd2lsbCBiZSBmcm9t IGxvd2VyIHRvIGhpZ2hlciBpbmRleGVkIHdlbGxzLAogCSAqIHRoZSBkaXNhYmxpbmcgb3JkZXIg aXMgcmV2ZXJzZWQuCiAJICovCi0JaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYtPmRldikpIHsKKwlp ZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKIAkJc2V0X3Bvd2VyX3dlbGxzKHBvd2VyX2RvbWFp bnMsIGhzd19wb3dlcl93ZWxscyk7Ci0JfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYt PmRldikpIHsKKwl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKIAkJc2V0X3Bv d2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMsIGJkd19wb3dlcl93ZWxscyk7Ci0JfSBlbHNlIGlmIChJ U19TS1lMQUtFKGRldl9wcml2LT5kZXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2LT5kZXYpKSB7 CisJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2LT5kZXYpIHx8IElTX0tBQllMQUtFKGRl dl9wcml2KSkgewogCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgc2tsX3Bvd2VyX3dl bGxzKTsKLQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYtPmRldikpIHsKKwl9IGVsc2Ug aWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCXNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21h aW5zLCBieHRfcG93ZXJfd2VsbHMpOwotCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJp di0+ZGV2KSkgeworCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKIAkJc2V0 X3Bvd2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMsIGNodl9wb3dlcl93ZWxscyk7Ci0JfSBlbHNlIGlm IChJU19WQUxMRVlWSUVXKGRldl9wcml2LT5kZXYpKSB7CisJfSBlbHNlIGlmIChJU19WQUxMRVlW SUVXKGRldl9wcml2KSkgewogCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgdmx2X3Bv d2VyX3dlbGxzKTsKIAl9IGVsc2UgewogCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywg aTl4eF9hbHdheXNfb25fcG93ZXJfd2VsbCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF91bmNvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5j CmluZGV4IGFjMWM1NDUuLjdkM2RlNWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3VuY29yZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5j CkBAIC0yMDQsNyArMjA0LDcgQEAgc3RhdGljIGludCBfX2dlbjZfZ3Rfd2FpdF9mb3JfZmlmbyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAkvKiBPbiBWTFYsIEZJRk8gd2ls bCBiZSBzaGFyZWQgYnkgYm90aCBTVyBhbmQgSFcuCiAJICogU28sIHdlIG5lZWQgdG8gcmVhZCB0 aGUgRlJFRV9FTlRSSUVTIGV2ZXJ5dGltZSAqLwotCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2 LT5kZXYpKQorCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkKIAkJZGV2X3ByaXYtPnVuY29y ZS5maWZvX2NvdW50ID0gZmlmb19mcmVlX2VudHJpZXMoZGV2X3ByaXYpOwogCiAJaWYgKGRldl9w cml2LT51bmNvcmUuZmlmb19jb3VudCA8IEdUX0ZJRk9fTlVNX1JFU0VSVkVEX0VOVFJJRVMpIHsK QEAgLTExNjEsNyArMTE2MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3VuY29yZV9md19kb21haW5z X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCi0JaWYgKElOVEVMX0lORk8oZGV2X3By aXYtPmRldiktPmdlbiA8PSA1KQorCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuIDw9IDUp CiAJCXJldHVybjsKIAogCWlmIChJU19HRU45KGRldikpIHsKLS0gCjIuNS41CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK