From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH 1/3] drm/i915: prefer INTEL_GEN(dev_priv) to INTEL_INFO(dev)->gen Date: Mon, 12 Sep 2016 20:20:01 +0100 Message-ID: <1473708003-17327-2-git-send-email-david.s.gordon@intel.com> References: <1473708003-17327-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id E07786E56D for ; Mon, 12 Sep 2016 19:20:12 +0000 (UTC) In-Reply-To: <1473708003-17327-1-git-send-email-david.s.gordon@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 TW9yZSBDb2NjaW5lbGxlcnkgLi4uCgpXaGVyZXZlciB3ZSBmaW5kICJJTlRFTF9JTkZPKGRldikt PmdlbiIsIGFuZCBoYXZlIGEgc3VpdGFibGUKImRldl9wcml2IiBpbiBzY29wZSwgcmVwbGFjZSBp dCB3aXRoICJJTlRFTF9HRU4oZGV2X3ByaXYpIiwKd2hpY2ggaXMgdGhlIHByZWZlcnJlZCB3YXN5 IHRvIGFjY2VzcyB0aGlzIGRldmljZSBwcm9wZXJ0eS4KClRoaXMgcGF0Y2ggY292ZXJzIGFsbCB0 aGUgZmlsZXMgdGhhdCBjb250YWluZWQgb25seSByZWxhdGl2ZWx5CmZldyBpbnN0YW5jZXMsIGFu ZCB3aGVyZSBubyBtYW51YWwgZml4dXAgd2FzIHJlcXVpcmVkLiBBIGZldwptb3JlIGNvbXBsZXgg aW5zdGFuY2VzIG1heSBiZSB1cGRhdGVkIGluIGEgbGF0ZXIgcGF0Y2guCgpAZGV2X3ByaXZfcGFy YW1ACmZ1bmN0aW9uIEZVTkM7CmlkZXhwcmVzc2lvbiBzdHJ1Y3QgZHJtX2RldmljZSAqREVWOwpp ZGVudGlmaWVyIERFVl9QUklWOwpAQApGVU5DKC4uLiwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KkRFVl9QUklWLCAuLi4pCnsKICAgIDwuLi4KLSAgIElOVEVMX0lORk8oREVWKS0+Z2VuCisgICBJ TlRFTF9HRU4oREVWX1BSSVYpCiAgICAuLi4+Cn0KCkBkZXZfcHJpdl9sb2NhbEAKaWRleHByZXNz aW9uIHN0cnVjdCBkcm1fZGV2aWNlICpERVY7CmlkZW50aWZpZXIgREVWX1BSSVY7CmV4cHJlc3Np b24gRTsKQEAKewogICAgLi4uCigKICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpERVZfUFJJ VjsKfAogICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKkRFVl9QUklWID0gRTsKKQogICAgPC4u LgotICAgSU5URUxfSU5GTyhERVYpLT5nZW4KKyAgIElOVEVMX0dFTihERVZfUFJJVikKICAgIC4u Lj4KfQoKU2lnbmVkLW9mZi1ieTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICA0ICsrLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICA2ICsrKy0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgIHwgIDQgKystLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAgIHwgMTQgKysrKysrKy0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgICB8IDEyICsrKysr Ky0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyAgICAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jICAgICAgICAgICB8ICA2ICsrKy0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgICAgICAgIHwgIDQgKystLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICAgICAgIHwgMTQgKysrKysrKy0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgICAgICB8ICAyICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgICAgICAgICAgfCAgNCArKy0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgICAgfCAxOCArKysrKysrKyst LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jICAgICAgICAgICB8ICA0 ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyAgICAgICAgICB8ICA4ICsr KystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jICAgICAgICAgICAgfCAgMiAr LQogMTUgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggYzhiZDAyMi4uYTQwNTUyYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCkBAIC00Mjg4LDcgKzQyODgsNyBAQCB2b2lkIGk5MTVfZ2VtX2luaXRfc3dp enpsaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2Vu IDwgNSB8fAorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNSB8fAogCSAgICBkZXZfcHJpdi0+ bW0uYml0XzZfc3dpenpsZV94ID09IEk5MTVfQklUXzZfU1dJWlpMRV9OT05FKQogCQlyZXR1cm47 CiAKQEAgLTQzNTgsNyArNDM1OCw3IEBAIHN0YXRpYyB2b2lkIGluaXRfdW51c2VkX3JpbmdzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQl1MzIgdGVtcCA9IEk5MTVfUkVBRChHRU43X01TR19D VEwpOwogCQkJdGVtcCAmPSB+KFdBSVRfRk9SX1BDSF9GTFJfQUNLIHwgV0FJVF9GT1JfUENIX1JF U0VUX0FDSyk7CiAJCQlJOTE1X1dSSVRFKEdFTjdfTVNHX0NUTCwgdGVtcCk7Ci0JCX0gZWxzZSBp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNykgeworCQl9IGVsc2UgaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gNykgewogCQkJdTMyIHRlbXAgPSBJOTE1X1JFQUQoSFNXX05ERV9SU1RXUk5f T1BUKTsKIAkJCXRlbXAgJj0gflJFU0VUX1BDSF9IQU5EU0hBS0VfRU5BQkxFOwogCQkJSTkxNV9X UklURShIU1dfTkRFX1JTVFdSTl9PUFQsIHRlbXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IDMzYzg1MjIuLjMzZWIwM2QgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTE0NzIsMTkgKzE0NzIsMTkgQEAg c3RhdGljIHZvaWQgZWJfZXhwb3J0X2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCiAJCX0KIAogCQlpZiAoaW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3Rh bnRzX21vZGUpIHsKLQkJCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuIDwgNCkgeworCQkJ aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA0KSB7CiAJCQkJRFJNX0RFQlVHKCJubyByZWwgY29u c3RhbnRzIG9uIHByZS1nZW40XG4iKTsKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0KIAotCQkJ aWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPiA1ICYmCisJCQlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+IDUgJiYKIAkJCSAgICBpbnN0cF9tb2RlID09IEk5MTVfRVhFQ19DT05TVEFOVFNf UkVMX1NVUkZBQ0UpIHsKIAkJCQlEUk1fREVCVUcoInJlbCBzdXJmYWNlIGNvbnN0YW50cyBtb2Rl IGludmFsaWQgb24gZ2VuNStcbiIpOwogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJfQogCiAJCQkv KiBUaGUgSFcgY2hhbmdlZCB0aGUgbWVhbmluZyBvbiB0aGlzIGJpdCBvbiBnZW42ICovCi0JCQlp ZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA2KQorCQkJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gNikKIAkJCQlpbnN0cF9tYXNrICY9IH5JOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9T VVJGQUNFOwogCQl9CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRl eCAwYmI0MjMyLi4yODMwZjk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAt MjI4MSw3ICsyMjgxLDcgQEAgdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2d0dF9tYXBwaW5ncyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCS8qIERvbid0IGJvdGhlciBtZXNzaW5nIHdpdGggZmF1bHRz IHByZSBHRU42IGFzIHdlIGhhdmUgbGl0dGxlCiAJICogZG9jdW1lbnRhdGlvbiBzdXBwb3J0aW5n IHRoYXQgaXQncyBhIGdvb2QgaWRlYS4KIAkgKi8KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4g PCA2KQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNikKIAkJcmV0dXJuOwogCiAJaTkxNV9j aGVja19hbmRfY2xlYXJfZmF1bHRzKGRldl9wcml2KTsKQEAgLTMyNjYsNyArMzI2Niw3IEBAIHZv aWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRfbWFwcGluZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAogCWdndHQtPmJhc2UuY2xvc2VkID0gZmFsc2U7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPj0gOCkgeworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJaWYgKElTX0NI RVJSWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpCiAJCQljaHZfc2V0dXBfcHJpdmF0ZV9w cGF0KGRldl9wcml2KTsKIAkJZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMK aW5kZXggMzM0ZjE1ZC4uOWEwZmMyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jCkBAIC0zODcsNyArMzg3LDcgQEAgaW50IGk5MTVfZXJyb3Jfc3RhdGVfdG9fc3RyKHN0cnVj dCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAKIAllcnJfcHJpbnRmKG0sICJFSVI6IDB4 JTA4eFxuIiwgZXJyb3ItPmVpcik7CiAJZXJyX3ByaW50ZihtLCAiSUVSOiAweCUwOHhcbiIsIGVy cm9yLT5pZXIpOwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7CisJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gOCkgewogCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQogCQkJZXJy X3ByaW50ZihtLCAiR1RJRVIgZ3QgJWQ6IDB4JTA4eFxuIiwgaSwKIAkJCQkgICBlcnJvci0+Z3Rp ZXJbaV0pOwpAQCAtNDA2LDEwICs0MDYsMTAgQEAgaW50IGk5MTVfZXJyb3Jfc3RhdGVfdG9fc3Ry KHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJCWVycl9wcmludGYobSwgIiAg SU5TVERPTkVfJWQ6IDB4JTA4eFxuIiwgaSwKIAkJCSAgIGVycm9yLT5leHRyYV9pbnN0ZG9uZVtp XSk7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNikgeworCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDYpIHsKIAkJZXJyX3ByaW50ZihtLCAiRVJST1I6IDB4JTA4eFxuIiwgZXJy b3ItPmVycm9yKTsKIAotCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkKKwkJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOCkKIAkJCWVycl9wcmludGYobSwgIkZBVUxUX1RMQl9EQVRB OiAweCUwOHggMHglMDh4XG4iLAogCQkJCSAgIGVycm9yLT5mYXVsdF9kYXRhMSwgZXJyb3ItPmZh dWx0X2RhdGEwKTsKIApAQCAtMTMyNyw3ICsxMzI3LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9jYXB0 dXJlX3JlZ19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKElT X0dFTjcoZGV2KSkKIAkJZXJyb3ItPmVycl9pbnQgPSBJOTE1X1JFQUQoR0VON19FUlJfSU5UKTsK IAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7CisJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gOCkgewogCQllcnJvci0+ZmF1bHRfZGF0YTAgPSBJOTE1X1JFQUQoR0VOOF9GQVVM VF9UTEJfREFUQTApOwogCQllcnJvci0+ZmF1bHRfZGF0YTEgPSBJOTE1X1JFQUQoR0VOOF9GQVVM VF9UTEJfREFUQTEpOwogCX0KQEAgLTEzMzksMTAgKzEzMzksMTAgQEAgc3RhdGljIHZvaWQgaTkx NV9jYXB0dXJlX3JlZ19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ fQogCiAJLyogMjogUmVnaXN0ZXJzIHdoaWNoIGJlbG9uZyB0byBtdWx0aXBsZSBnZW5lcmF0aW9u cyAqLwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA3KQorCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDcpCiAJCWVycm9yLT5mb3JjZXdha2UgPSBJOTE1X1JFQURfRlcoRk9SQ0VXQUtF X01UKTsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KSB7CisJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gNikgewogCQllcnJvci0+ZGVycm1yID0gSTkxNV9SRUFEKERFUlJNUik7 CiAJCWVycm9yLT5lcnJvciA9IEk5MTVfUkVBRChFUlJPUl9HRU42KTsKIAkJZXJyb3ItPmRvbmVf cmVnID0gSTkxNV9SRUFEKERPTkVfUkVHKTsKQEAgLTEzNTgsNyArMTM1OCw3IEBAIHN0YXRpYyB2 b2lkIGk5MTVfY2FwdHVyZV9yZWdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCWlmIChIQVNfSFdfQ09OVEVYVFMoZGV2KSkKIAkJZXJyb3ItPmNjaWQgPSBJOTE1X1JF QUQoQ0NJRCk7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkgeworCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJZXJyb3ItPmllciA9IEk5MTVfUkVBRChHRU44X0RF X01JU0NfSUVSKTsKIAkJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKIAkJCWVycm9yLT5ndGllcltp XSA9IEk5MTVfUkVBRChHRU44X0dUX0lFUihpKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRl eCA4NDYyODE3Li5jOTQ4MDU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTI2OTQsNyAr MjY5NCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CiAKIAlz cGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7Ci0JaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuID49IDQpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkK IAkJaTkxNV9lbmFibGVfcGlwZXN0YXQoZGV2X3ByaXYsIHBpcGUsCiAJCQkJICAgICBQSVBFX1NU QVJUX1ZCTEFOS19JTlRFUlJVUFRfU1RBVFVTKTsKIAllbHNlCkBAIC0yNzA5LDcgKzI3MDksNyBA QCBzdGF0aWMgaW50IGlyb25sYWtlX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdW5zaWduZWQgaW50IHBpcGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOwogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Ci0JdWludDMyX3Qg Yml0ID0gKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcpID8gREVfUElQRV9WQkxBTktfSVZCKHBp cGUpIDoKKwl1aW50MzJfdCBiaXQgPSAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA3KSA/IERFX1BJ UEVfVkJMQU5LX0lWQihwaXBlKSA6CiAJCQkJCQkgICAgIERFX1BJUEVfVkJMQU5LKHBpcGUpOwog CiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwpAQCAt Mjc2Myw3ICsyNzYzLDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfZGlzYWJsZV92Ymxhbmsoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXVuc2lnbmVkIGxvbmcgaXJx ZmxhZ3M7Ci0JdWludDMyX3QgYml0ID0gKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcpID8gREVf UElQRV9WQkxBTktfSVZCKHBpcGUpIDoKKwl1aW50MzJfdCBiaXQgPSAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA3KSA/IERFX1BJUEVfVkJMQU5LX0lWQihwaXBlKSA6CiAJCQkJCQkgICAgIERFX1BJ UEVfVkJMQU5LKHBpcGUpOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9j aywgaXJxZmxhZ3MpOwpAQCAtMzIyNSw3ICszMjI1LDcgQEAgc3RhdGljIHZvaWQgZ2VuNV9ndF9p cnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAKIAlHRU41X0lSUV9SRVNFVChHVCk7Ci0JaWYg KElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDYpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g NikKIAkJR0VONV9JUlFfUkVTRVQoR0VONl9QTSk7CiB9CiAKQEAgLTM1NjEsNyArMzU2MSw3IEBA IHN0YXRpYyB2b2lkIGdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAKIAlHRU41X0lSUV9JTklUKEdULCBkZXZfcHJpdi0+Z3RfaXJxX21hc2ssIGd0X2lycXMp OwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDYpIHsKKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA2KSB7CiAJCS8qCiAJCSAqIFJQUyBpbnRlcnJ1cHRzIHdpbGwgZ2V0IGVuYWJs ZWQvZGlzYWJsZWQgb24gZGVtYW5kIHdoZW4gUlBTCiAJCSAqIGl0c2VsZiBpcyBlbmFibGVkL2Rp c2FibGVkLgpAQCAtMzU3OSw3ICszNTc5LDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9pcnFfcG9z dGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJdTMyIGRpc3BsYXlfbWFzaywgZXh0cmFfbWFz azsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA3KSB7CisJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gNykgewogCQlkaXNwbGF5X21hc2sgPSAoREVfTUFTVEVSX0lSUV9DT05UUk9M IHwgREVfR1NFX0lWQiB8CiAJCQkJREVfUENIX0VWRU5UX0lWQiB8IERFX1BMQU5FQ19GTElQX0RP TkVfSVZCIHwKIAkJCQlERV9QTEFORUJfRkxJUF9ET05FX0lWQiB8CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfY29sb3IuYwppbmRleCA5NWE3Mjc3Li43MzIyYzg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NvbG9yLmMKQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2xvYWRfY3NjX21h dHJpeChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJSTkxNV9XUklURShQSVBF X0NTQ19QUkVPRkZfTUUocGlwZSksIDApOwogCUk5MTVfV1JJVEUoUElQRV9DU0NfUFJFT0ZGX0xP KHBpcGUpLCAwKTsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+IDYpIHsKKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+IDYpIHsKIAkJdWludDE2X3QgcG9zdG9mZiA9IDA7CiAKIAkJaWYg KGludGVsX2NydGNfc3RhdGUtPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NydC5jCmluZGV4IGRmYmNmMTYuLjFjNTQ0NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2NydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5j CkBAIC0xNTQsNyArMTU0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0X3NldF9kcG1zKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAl1MzIg YWRwYTsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA1KQorCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDUpCiAJCWFkcGEgPSBBRFBBX0hPVFBMVUdfQklUUzsKIAllbHNlCiAJCWFk cGEgPSAwOwpAQCAtNzAwLDcgKzcwMCw3IEBAIHN0YXRpYyBib29sIGludGVsX2NydF9kZXRlY3Rf ZGRjKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAJaWYgKGludGVsX2dldF9sb2Fk X2RldGVjdF9waXBlKGNvbm5lY3RvciwgTlVMTCwgJnRtcCwgJmN0eCkpIHsKIAkJaWYgKGludGVs X2NydF9kZXRlY3RfZGRjKGNvbm5lY3RvcikpCiAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVz X2Nvbm5lY3RlZDsKLQkJZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0KQorCQllbHNl IGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCkKIAkJCXN0YXR1cyA9IGludGVsX2NydF9sb2Fk X2RldGVjdChjcnQsCiAJCQkJdG9faW50ZWxfY3J0Yyhjb25uZWN0b3ItPnN0YXRlLT5jcnRjKS0+ cGlwZSk7CiAJCWVsc2UgaWYgKGk5MTUubG9hZF9kZXRlY3RfdGVzdCkKQEAgLTc2Niw3ICs3NjYs NyBAQCB2b2lkIGludGVsX2NydF9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVj dCBpbnRlbF9jcnQgKmNydCA9IGludGVsX2VuY29kZXJfdG9fY3J0KHRvX2ludGVsX2VuY29kZXIo ZW5jb2RlcikpOwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDUpIHsKKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSA1KSB7CiAJCXUzMiBhZHBhOwogCiAJCWFkcGEgPSBJOTE1X1JF QUQoY3J0LT5hZHBhX3JlZyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IDgyODA1NDgu LmU4OGExN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0xNzQ4LDcgKzE3NDgsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyLAogCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2 KSkKIAkJSTkxNV9XUklURShEUExMX0NUUkwyLCAoSTkxNV9SRUFEKERQTExfQ1RSTDIpIHwKIAkJ CQkJRFBMTF9DVFJMMl9ERElfQ0xLX09GRihwb3J0KSkpOwotCWVsc2UgaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuIDwgOSkKKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkKIAkJSTkx NV9XUklURShQT1JUX0NMS19TRUwocG9ydCksIFBPUlRfQ0xLX1NFTF9OT05FKTsKIAogCWlmICh0 eXBlID09IElOVEVMX09VVFBVVF9IRE1JKSB7CkBAIC0xODE3LDcgKzE4MTcsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9lbmFibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy LAogCX0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7CiAJCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7CiAKLQkJaWYgKHBvcnQg PT0gUE9SVF9BICYmIElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgOSkKKwkJaWYgKHBvcnQgPT0gUE9S VF9BICYmIElOVEVMX0dFTihkZXZfcHJpdikgPCA5KQogCQkJaW50ZWxfZHBfc3RvcF9saW5rX3Ry YWluKGludGVsX2RwKTsKIAogCQlpbnRlbF9lZHBfYmFja2xpZ2h0X29uKGludGVsX2RwKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4IDc1YWM2MmYuLjY5MjA2NzggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwpAQCAtMTUwMiw3ICsxNTAyLDcgQEAgdm9pZCBpbnRlbF9kcF9jb21wdXRlX3Jh dGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IHBvcnRfY2xvY2ssCiAJCWludGVsX2Zp eGVkX3BhbmVsX21vZGUoaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlLAogCQkJCSAg ICAgICBhZGp1c3RlZF9tb2RlKTsKIAotCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkg eworCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7CiAJCQlpbnQgcmV0OwogCQkJcmV0 ID0gc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhwaXBlX2NvbmZpZyk7CiAJCQlpZiAocmV0KQpAQCAt MjkwOCw3ICsyOTA4LDcgQEAgc3RhdGljIHZvaWQgY2h2X2RwX3Bvc3RfcGxsX2Rpc2FibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlpZiAoSVNfQlJPWFRPTihkZXYpKQogCQly ZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwotCWVsc2UgaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID49IDkpIHsKKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkp IHsKIAkJaWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcgJiYgcG9ydCA9PSBQT1JUX0Ep CiAJCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwogCQlyZXR1cm4gRFBf VFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOwpAQCAtNDgwMSw3ICs0ODAxLDcgQEAgYm9vbCBp bnRlbF9kcF9pc19lZHAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0IHBvcnQpCiAJ ICogZURQIG5vdCBzdXBwb3J0ZWQgb24gZzR4LiBzbyBiYWlsIG91dCBlYXJseSBqdXN0CiAJICog Zm9yIGEgYml0IGV4dHJhIHNhZmV0eSBpbiBjYXNlIHRoZSBWQlQgaXMgYm9ua2Vycy4KIAkgKi8K LQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA1KQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgNSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJaWYgKHBvcnQgPT0gUE9SVF9BKQpAQCAtNTQwMSw3 ICs1NDAxLDcgQEAgdm9pZCBpbnRlbF9lZHBfZHJyc19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJSU5JVF9ERUxBWUVEX1dPUksoJmRldl9wcml2LT5kcnJzLndvcmss IGludGVsX2VkcF9kcnJzX2Rvd25jbG9ja193b3JrKTsKIAltdXRleF9pbml0KCZkZXZfcHJpdi0+ ZHJycy5tdXRleCk7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNikgeworCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpIDw9IDYpIHsKIAkJRFJNX0RFQlVHX0tNUygiRFJSUyBzdXBwb3J0 ZWQgZm9yIEdlbjcgYW5kIGFib3ZlXG4iKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtNTU3NSw3 ICs1NTc1LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsCiAJaW50ZWxfZHAtPnBwc19waXBlID0gSU5WQUxJRF9QSVBFOwog CiAJLyogaW50ZWxfZHAgdmZ1bmNzICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkp CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKIAkJaW50ZWxfZHAtPmdldF9hdXhfY2xv Y2tfZGl2aWRlciA9IHNrbF9nZXRfYXV4X2Nsb2NrX2RpdmlkZXI7CiAJZWxzZSBpZiAoSVNfSEFT V0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKQogCQlpbnRlbF9kcC0+Z2V0X2F1eF9jbG9j a19kaXZpZGVyID0gaHN3X2dldF9hdXhfY2xvY2tfZGl2aWRlcjsKQEAgLTU1ODQsNyArNTU4NCw3 IEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAogCWVsc2UKIAkJaW50ZWxfZHAtPmdldF9hdXhfY2xvY2tfZGl2aWRlciA9IGc0 eF9nZXRfYXV4X2Nsb2NrX2RpdmlkZXI7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g OSkKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQogCQlpbnRlbF9kcC0+Z2V0X2F1eF9z ZW5kX2N0bCA9IHNrbF9nZXRfYXV4X3NlbmRfY3RsOwogCWVsc2UKIAkJaW50ZWxfZHAtPmdldF9h dXhfc2VuZF9jdGwgPSBnNHhfZ2V0X2F1eF9zZW5kX2N0bDsKQEAgLTU3MzQsNyArNTczNCw3IEBA IGJvb2wgaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCX0gZWxzZSB7CiAJ CWludGVsX2VuY29kZXItPnByZV9lbmFibGUgPSBnNHhfcHJlX2VuYWJsZV9kcDsKIAkJaW50ZWxf ZW5jb2Rlci0+ZW5hYmxlID0gZzR4X2VuYWJsZV9kcDsKLQkJaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuID49IDUpCisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDUpCiAJCQlpbnRlbF9lbmNv ZGVyLT5wb3N0X2Rpc2FibGUgPSBpbGtfcG9zdF9kaXNhYmxlX2RwOwogCX0KIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggNGIwNjdhYy4uOGFlMmZlZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCBpbnRl bF9kaXNhYmxlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCXVuc2lnbmVk IGNydGNfbWFzayA9IDEgPDwgZHJtX2NydGNfaW5kZXgoJmNydGMtPmJhc2UpOwogCiAJLyogUENI IG9ubHkgYXZhaWxhYmxlIG9uIElMSysgKi8KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA1 KQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNSkKIAkJcmV0dXJuOwogCiAJaWYgKHBsbCA9 PSBOVUxMKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCmluZGV4IGUxZDQ3ZDUuLjIwYjc4MWYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKQEAgLTEzOSwxMiArMTM5LDEyIEBAIHN0YXRp YyB2b2lkIGludGVsX2x2ZHNfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAogCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAK LQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA1KQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgNSkKIAkJcGlwZV9jb25maWctPmdtY2hfcGZpdC5sdmRzX2JvcmRlcl9iaXRzID0KIAkJCXRt cCAmIExWRFNfQk9SREVSX0VOQUJMRTsKIAogCS8qIGdlbjIvMyBzdG9yZSBkaXRoZXIgc3RhdGUg aW4gcGZpdCBjb250cm9sLCBuZWVkcyB0byBtYXRjaCAqLwotCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA8IDQpIHsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDQpIHsKIAkJdG1wID0gSTkx NV9SRUFEKFBGSVRfQ09OVFJPTCk7CiAKIAkJcGlwZV9jb25maWctPmdtY2hfcGZpdC5jb250cm9s IHw9IHRtcCAmIFBBTkVMXzhUTzZfRElUSEVSX0VOQUJMRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CmluZGV4IDZhZjQzOGYuLjJiY2IxZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMjE2 MywxNCArMjE2MywxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9yZWFkX3dtX2xhdGVuY3koc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdWludDE2X3Qgd21bOF0pCiAJCXdtWzJdID0gKHNza3BkID4+IDEy KSAmIDB4RkY7CiAJCXdtWzNdID0gKHNza3BkID4+IDIwKSAmIDB4MUZGOwogCQl3bVs0XSA9IChz c2twZCA+PiAzMikgJiAweDFGRjsKLQl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49 IDYpIHsKKwl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewogCQl1aW50MzJf dCBzc2twZCA9IEk5MTVfUkVBRChNQ0hfU1NLUEQpOwogCiAJCXdtWzBdID0gKHNza3BkID4+IFNT S1BEX1dNMF9TSElGVCkgJiBTU0tQRF9XTV9NQVNLOwogCQl3bVsxXSA9IChzc2twZCA+PiBTU0tQ RF9XTTFfU0hJRlQpICYgU1NLUERfV01fTUFTSzsKIAkJd21bMl0gPSAoc3NrcGQgPj4gU1NLUERf V00yX1NISUZUKSAmIFNTS1BEX1dNX01BU0s7CiAJCXdtWzNdID0gKHNza3BkID4+IFNTS1BEX1dN M19TSElGVCkgJiBTU0tQRF9XTV9NQVNLOwotCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPj0gNSkgeworCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA1KSB7CiAJCXVp bnQzMl90IG1sdHIgPSBJOTE1X1JFQUQoTUxUUl9JTEspOwogCiAJCS8qIElMSyBwcmltYXJ5IExQ MCBsYXRlbmN5IGlzIDcwMCBucyAqLwpAQCAtMjM3NSw3ICsyMzc1LDcgQEAgc3RhdGljIGludCBp bGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCiAJdXNh YmxlX2xldmVsID0gbWF4X2xldmVsOwogCiAJLyogSUxLL1NOQjogTFAyKyB3YXRlcm1hcmtzIG9u bHkgdy9vIHNwcml0ZXMgKi8KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNiAmJiBwaXBl X3dtLT5zcHJpdGVzX2VuYWJsZWQpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPD0gNiAmJiBw aXBlX3dtLT5zcHJpdGVzX2VuYWJsZWQpCiAJCXVzYWJsZV9sZXZlbCA9IDE7CiAKIAkvKiBJTEsv U05CL0lWQjogTFAxKyB3YXRlcm1hcmtzIG9ubHkgdy9vIHNjYWxpbmcgKi8KQEAgLTI1MTgsMTIg KzI1MTgsMTIgQEAgc3RhdGljIHZvaWQgaWxrX3dtX21lcmdlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJaW50IGxhc3RfZW5hYmxlZF9sZXZlbCA9IG1heF9sZXZlbDsKIAogCS8qIElMSy9TTkIv SVZCOiBMUDErIHdhdGVybWFya3Mgb25seSB3LyBzaW5nbGUgcGlwZSAqLwotCWlmICgoSU5URUxf SU5GTyhkZXYpLT5nZW4gPD0gNiB8fCBJU19JVllCUklER0UoZGV2KSkgJiYKKwlpZiAoKElOVEVM X0dFTihkZXZfcHJpdikgPD0gNiB8fCBJU19JVllCUklER0UoZGV2KSkgJiYKIAkgICAgY29uZmln LT5udW1fcGlwZXNfYWN0aXZlID4gMSkKIAkJbGFzdF9lbmFibGVkX2xldmVsID0gMDsKIAogCS8q IElMSzogRkJDIFdNIG11c3QgYmUgZGlzYWJsZWQgYWx3YXlzICovCi0JbWVyZ2VkLT5mYmNfd21f ZW5hYmxlZCA9IElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDY7CisJbWVyZ2VkLT5mYmNfd21fZW5h YmxlZCA9IElOVEVMX0dFTihkZXZfcHJpdikgPj0gNjsKIAogCS8qIG1lcmdlIGVhY2ggV00xKyBs ZXZlbCAqLwogCWZvciAobGV2ZWwgPSAxOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsK QEAgLTI4MjksNyArMjgyOSw3IEBAIHN0YXRpYyB2b2lkIGlsa193cml0ZV93bV92YWx1ZXMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAgICBwcmV2aW91cy0+d21fbHBfc3By WzBdICE9IHJlc3VsdHMtPndtX2xwX3NwclswXSkKIAkJSTkxNV9XUklURShXTTFTX0xQX0lMSywg cmVzdWx0cy0+d21fbHBfc3ByWzBdKTsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA3 KSB7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykgewogCQlpZiAoZGlydHkgJiBXTV9E SVJUWV9MUCgyKSAmJiBwcmV2aW91cy0+d21fbHBfc3ByWzFdICE9IHJlc3VsdHMtPndtX2xwX3Nw clsxXSkKIAkJCUk5MTVfV1JJVEUoV00yU19MUF9JVkIsIHJlc3VsdHMtPndtX2xwX3NwclsxXSk7 CiAJCWlmIChkaXJ0eSAmIFdNX0RJUlRZX0xQKDMpICYmIHByZXZpb3VzLT53bV9scF9zcHJbMl0g IT0gcmVzdWx0cy0+d21fbHBfc3ByWzJdKQpAQCAtNDE3NSw3ICs0MTc1LDcgQEAgc3RhdGljIHZv aWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAJaWxrX3dtX21lcmdlKGRldiwgJmNvbmZpZywgJm1heCwgJmxwX3dtXzFfMik7CiAKIAkv KiA1LzYgc3BsaXQgb25seSBpbiBzaW5nbGUgcGlwZSBjb25maWcgb24gSVZCKyAqLwotCWlmIChJ TlRFTF9JTkZPKGRldiktPmdlbiA+PSA3ICYmCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g NyAmJgogCSAgICBjb25maWcubnVtX3BpcGVzX2FjdGl2ZSA9PSAxICYmIGNvbmZpZy5zcHJpdGVz X2VuYWJsZWQpIHsKIAkJaWxrX2NvbXB1dGVfd21fbWF4aW11bXMoZGV2LCAxLCAmY29uZmlnLCBJ TlRFTF9EREJfUEFSVF81XzYsICZtYXgpOwogCQlpbGtfd21fbWVyZ2UoZGV2LCAmY29uZmlnLCAm bWF4LCAmbHBfd21fNV82KTsKQEAgLTQ1NTQsNyArNDU1NCw3IEBAIHZvaWQgaWxrX3dtX2dldF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWh3LT53bV9scFsyXSA9IEk5MTVfUkVB RChXTTNfTFBfSUxLKTsKIAogCWh3LT53bV9scF9zcHJbMF0gPSBJOTE1X1JFQUQoV00xU19MUF9J TEspOwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA3KSB7CisJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gNykgewogCQlody0+d21fbHBfc3ByWzFdID0gSTkxNV9SRUFEKFdNMlNfTFBf SVZCKTsKIAkJaHctPndtX2xwX3NwclsyXSA9IEk5MTVfUkVBRChXTTNTX0xQX0lWQik7CiAJfQpA QCAtNzY3Niw3ICs3Njc2LDcgQEAgdm9pZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJCWk5MTVfaXJvbmxha2VfZ2V0X21lbV9mcmVxKGRldik7CiAKIAkvKiBGb3IgRklG TyB3YXRlcm1hcmsgdXBkYXRlcyAqLwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7 CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewogCQlza2xfc2V0dXBfd21fbGF0ZW5j eShkZXYpOwogCQlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfd20gPSBza2xfdXBkYXRlX3dtOwog CQlkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX2dsb2JhbF93YXRlcm1hcmtzID0gc2tsX2NvbXB1 dGVfd207CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCmluZGV4IDU5YTIxYzkuLjY3NDFjZWMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCkBAIC00NzIsNyArNDcyLDcgQEAgdm9pZCBpbnRlbF9w c3JfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCS8qIEVuYWJsZSBQU1Igb24g dGhlIHBhbmVsICovCiAJCWhzd19wc3JfZW5hYmxlX3NpbmsoaW50ZWxfZHApOwogCi0JCWlmIChJ TlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQorCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5 KQogCQkJaW50ZWxfcHNyX2FjdGl2YXRlKGludGVsX2RwKTsKIAl9IGVsc2UgewogCQl2bHZfcHNy X3NldHVwX3ZzYyhpbnRlbF9kcCk7CkBAIC00OTgsNyArNDk4LDcgQEAgdm9pZCBpbnRlbF9wc3Jf ZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJICogICAgIC0gT24gSFNXL0JEVyB3 ZSBnZXQgYSByZWNvdmVyYWJsZSBmcm96ZW4gc2NyZWVuIHVudGlsIG5leHQKIAkgKiAgICAgICBl eGl0LWFjdGl2YXRlIHNlcXVlbmNlLgogCSAqLwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8 IDkpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5KQogCQlzY2hlZHVsZV9kZWxheWVkX3dv cmsoJmRldl9wcml2LT5wc3Iud29yaywKIAkJCQkgICAgICBtc2Vjc190b19qaWZmaWVzKGludGVs X2RwLT5wYW5lbF9wb3dlcl9jeWNsZV9kZWxheSAqIDUpKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c2R2by5jCmluZGV4IGM1NTEwMjQuLjVjYTEwMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nkdm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZv LmMKQEAgLTEyNjksMTMgKzEyNjksMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19wcmVfZW5h YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAogCQlyZXR1cm47CiAKIAkv KiBTZXQgdGhlIFNEVk8gY29udHJvbCByZWdzLiAqLwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA0KSB7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkgewogCQkvKiBUaGUgcmVh bCBtb2RlIHBvbGFyaXR5IGlzIHNldCBieSB0aGUgU0RWTyBjb21tYW5kcywgdXNpbmcKIAkJICog c3RydWN0IGludGVsX3Nkdm9fZHRkLiAqLwogCQlzZHZveCA9IFNEVk9fVlNZTkNfQUNUSVZFX0hJ R0ggfCBTRFZPX0hTWU5DX0FDVElWRV9ISUdIOwogCQlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2KSAm JiBjcnRjX3N0YXRlLT5saW1pdGVkX2NvbG9yX3JhbmdlKQogCQkJc2R2b3ggfD0gSERNSV9DT0xP Ul9SQU5HRV8xNl8yMzU7Ci0JCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDUpCisJCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpIDwgNSkKIAkJCXNkdm94IHw9IFNEVk9fQk9SREVSX0VOQUJMRTsK IAl9IGVsc2UgewogCQlzZHZveCA9IEk5MTVfUkVBRChpbnRlbF9zZHZvLT5zZHZvX3JlZyk7CkBA IC0xMjk0LDcgKzEyOTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX3ByZV9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCiAJaWYgKGludGVsX3Nkdm8tPmhhc19o ZG1pX2F1ZGlvKQogCQlzZHZveCB8PSBTRFZPX0FVRElPX0VOQUJMRTsKIAotCWlmIChJTlRFTF9J TkZPKGRldiktPmdlbiA+PSA0KSB7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkgewog CQkvKiBkb25lIGluIGNydGNfbW9kZV9zZXQgYXMgdGhlIGRwbGxfbWQgcmVnIG11c3QgYmUgd3Jp dHRlbiBlYXJseSAqLwogCX0gZWxzZSBpZiAoSVNfSTk0NUcoZGV2KSB8fCBJU19JOTQ1R00oZGV2 KSB8fCBJU19HMzMoZGV2KSkgewogCQkvKiBkb25lIGluIGNydGNfbW9kZV9zZXQgYXMgaXQgbGl2 ZXMgaW5zaWRlIHRoZSBkcGxsIHJlZ2lzdGVyICovCkBAIC0xMzA0LDcgKzEzMDQsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9zZHZvX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIsCiAJfQogCiAJaWYgKGlucHV0X2R0ZC5wYXJ0Mi5zZHZvX2ZsYWdzICYgU0RWT19O RUVEX1RPX1NUQUxMICYmCi0JICAgIElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNSkKKwkgICAgSU5U RUxfR0VOKGRldl9wcml2KSA8IDUpCiAJCXNkdm94IHw9IFNEVk9fU1RBTExfU0VMRUNUOwogCWlu dGVsX3Nkdm9fd3JpdGVfc2R2b3goaW50ZWxfc2R2bywgc2R2b3gpOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3R2LmMKaW5kZXggZDk2MGU0OC4uMjk1ODgwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdHYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5j CkBAIC0xMTA2LDcgKzExMDYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9wcmVfZW5hYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJc2V0X2NvbG9yX2NvbnZlcnNpb24oZGV2 X3ByaXYsIGNvbG9yX2NvbnZlcnNpb24pOwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49 IDQpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkKIAkJSTkxNV9XUklURShUVl9DTFJf S05PQlMsIDB4MDA0MDQwMDApOwogCWVsc2UKIAkJSTkxNV9XUklURShUVl9DTFJfS05PQlMsIDB4 MDA2MDYwMDApOwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=