From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [PATCH 08/12] drm/i915: INTEL_GEN() fixes, part 5 Date: Mon, 29 Aug 2016 13:31:48 +0300 Message-ID: <20160829103152.31282-9-david.weinehall@linux.intel.com> References: <20160829103152.31282-1-david.weinehall@linux.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 3B63A6E50F for ; Mon, 29 Aug 2016 10:32:14 +0000 (UTC) In-Reply-To: <20160829103152.31282-1-david.weinehall@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 Cc: --dry-run@freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q29udmVydCBhbGwgcmVtYWluaW5nIGluc3RhbmNlcyBvZiBJTlRFTF9JTkZPKGRldiktPmdlbiBp biAqLmMKdG8gSU5URUxfR0VOKGRldl9wcml2KS4KClNpZ25lZC1vZmYtYnk6IERhdmlkIFdlaW5l aGFsbCA8ZGF2aWQud2VpbmVoYWxsQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgfCAxOSArKysrKysrLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgIHwgMTYgKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyAgICAgfCAgNyArKy0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMgICAgIHwgIDcgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgICB8IDE0ICsrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgICB8IDI2ICsrKysrKysrKy0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5kLmMgICAgICAgIHwgMTggKysrKysrLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyAgICAgICAgIHwgIDUgKystLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMgICAgICAgICAgIHwgIDkgKysrLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgICAgICAgIHwgMjAgKysrKysrKy0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICB8ICA2ICsr LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgICAgICAgfCA0MiArKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw bGxfbWdyLmMgICAgICB8ICA1ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o ICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgICAg ICAgICAgfCAxMCArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jICAg ICAgICAgfCAxMCArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyAgICAg ICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyAgICAgICAg ICB8ICA4ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgICAgICAg IHwgMTQgKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYyAgICAgICAg ICAgIHwgIDIgKy0KIDIzIGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAxMzEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggYTdlMWRmZDNmNGMwLi5lZWUy ZmRiYTJlMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMjgzLDcgKzI4Myw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAogCQl2YWx1ZSA9IDE7CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19DT05T VEFOVFM6Ci0JCXZhbHVlID0gSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNDsKKwkJdmFsdWUgPSBJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDQ7CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9QQVJBTV9IQVNf UkVMQVhFRF9ERUxUQToKIAkJdmFsdWUgPSAxOwpAQCAtMzg3LDE1ICszODcsMTQgQEAgc3RhdGlj IGludCBpOTE1X2dldF9icmlkZ2VfZGV2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIC8qIEFs bG9jYXRlIHNwYWNlIGZvciB0aGUgTUNIIHJlZ3MgaWYgbmVlZGVkLCByZXR1cm4gbm9uemVybyBv biBlcnJvciAqLwogc3RhdGljIGludAotaW50ZWxfYWxsb2NfbWNoYmFyX3Jlc291cmNlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCitpbnRlbF9hbGxvY19tY2hiYXJfcmVzb3VyY2Uoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlpbnQgcmVnID0gSU5URUxfSU5GTyhkZXYpLT5nZW4g Pj0gNCA/IE1DSEJBUl9JOTY1IDogTUNIQkFSX0k5MTU7CisJaW50IHJlZyA9IElOVEVMX0dFTihk ZXZfcHJpdikgPj0gNCA/IE1DSEJBUl9JOTY1IDogTUNIQkFSX0k5MTU7CiAJdTMyIHRlbXBfbG8s IHRlbXBfaGkgPSAwOwogCXU2NCBtY2hiYXJfYWRkcjsKIAlpbnQgcmV0OwogCi0JaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuID49IDQpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkKIAkJ cGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldl9wcml2LT5icmlkZ2VfZGV2LCByZWcgKyA0LCAmdGVt cF9oaSk7CiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldl9wcml2LT5icmlkZ2VfZGV2LCByZWcs ICZ0ZW1wX2xvKTsKIAltY2hiYXJfYWRkciA9ICgodTY0KXRlbXBfaGkgPDwgMzIpIHwgdGVtcF9s bzsKQEAgLTQyMiw3ICs0MjEsNyBAQCBpbnRlbF9hbGxvY19tY2hiYXJfcmVzb3VyY2Uoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPj0gNCkKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0KQogCQlwY2lfd3Jp dGVfY29uZmlnX2R3b3JkKGRldl9wcml2LT5icmlkZ2VfZGV2LCByZWcgKyA0LAogCQkJCSAgICAg ICB1cHBlcl8zMl9iaXRzKGRldl9wcml2LT5tY2hfcmVzLnN0YXJ0KSk7CiAKQEAgLTQzNiw3ICs0 MzUsNyBAQCBzdGF0aWMgdm9pZAogaW50ZWxfc2V0dXBfbWNoYmFyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShk ZXYpOwotCWludCBtY2hiYXJfcmVnID0gSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCA/IE1DSEJB Ul9JOTY1IDogTUNIQkFSX0k5MTU7CisJaW50IG1jaGJhcl9yZWcgPSBJTlRFTF9HRU4oZGV2X3By aXYpID49IDQgPyBNQ0hCQVJfSTk2NSA6IE1DSEJBUl9JOTE1OwogCXUzMiB0ZW1wOwogCWJvb2wg ZW5hYmxlZDsKIApAQCAtNDU3LDcgKzQ1Niw3IEBAIGludGVsX3NldHVwX21jaGJhcihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCWlmIChlbmFibGVkKQogCQlyZXR1cm47CiAKLQlpZiAoaW50ZWxf YWxsb2NfbWNoYmFyX3Jlc291cmNlKGRldikpCisJaWYgKGludGVsX2FsbG9jX21jaGJhcl9yZXNv dXJjZShkZXZfcHJpdikpCiAJCXJldHVybjsKIAogCWRldl9wcml2LT5tY2hiYXJfbmVlZF9kaXNh YmxlID0gdHJ1ZTsKQEAgLTQ3Niw3ICs0NzUsNyBAQCBzdGF0aWMgdm9pZAogaW50ZWxfdGVhcmRv d25fbWNoYmFyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCWludCBtY2hiYXJfcmVnID0gSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gNCA/IE1DSEJBUl9JOTY1IDogTUNIQkFSX0k5MTU7CisJaW50IG1j aGJhcl9yZWcgPSBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQgPyBNQ0hCQVJfSTk2NSA6IE1DSEJB Ul9JOTE1OwogCiAJaWYgKGRldl9wcml2LT5tY2hiYXJfbmVlZF9kaXNhYmxlKSB7CiAJCWlmIChJ U19JOTE1RyhkZXYpIHx8IElTX0k5MTVHTShkZXYpKSB7CkBAIC05MDMsNyArOTAyLDcgQEAgc3Rh dGljIGludCBpOTE1X21taW9fc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkgKiB0aGUg cmVnaXN0ZXIgQkFSIHJlbWFpbnMgdGhlIHNhbWUgc2l6ZSBmb3IgYWxsIHRoZSBlYXJsaWVyCiAJ ICogZ2VuZXJhdGlvbnMgdXAgdG8gSXJvbmxha2UuCiAJICovCi0JaWYgKElOVEVMX0lORk8oZGV2 KS0+Z2VuIDwgNSkKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDUpCiAJCW1taW9fc2l6ZSA9 IDUxMiAqIDEwMjQ7CiAJZWxzZQogCQltbWlvX3NpemUgPSAyICogMTAyNCAqIDEwMjQ7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwppbmRleCAyZWI4YWZkODVkYTEuLjU2MDBmNGM1ZjFlMyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCkBAIC00MzQzLDcgKzQzNDMsNyBAQCB2b2lkIGk5MTVfZ2VtX2lu aXRfc3dpenpsaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCi0JaWYgKElOVEVMX0lORk8oZGV2 KS0+Z2VuIDwgNSB8fAorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNSB8fAogCSAgICBkZXZf cHJpdi0+bW0uYml0XzZfc3dpenpsZV94ID09IEk5MTVfQklUXzZfU1dJWlpMRV9OT05FKQogCQly ZXR1cm47CiAKQEAgLTQ0MTMsNyArNDQxMyw3IEBAIGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAkJCXUzMiB0ZW1wID0gSTkxNV9SRUFEKEdFTjdfTVNHX0NUTCk7CiAJ CQl0ZW1wICY9IH4oV0FJVF9GT1JfUENIX0ZMUl9BQ0sgfCBXQUlUX0ZPUl9QQ0hfUkVTRVRfQUNL KTsKIAkJCUk5MTVfV1JJVEUoR0VON19NU0dfQ1RMLCB0ZW1wKTsKLQkJfSBlbHNlIGlmIChJTlRF TF9JTkZPKGRldiktPmdlbiA+PSA3KSB7CisJCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA3KSB7CiAJCQl1MzIgdGVtcCA9IEk5MTVfUkVBRChIU1dfTkRFX1JTVFdSTl9PUFQpOwog CQkJdGVtcCAmPSB+UkVTRVRfUENIX0hBTkRTSEFLRV9FTkFCTEU7CiAJCQlJOTE1X1dSSVRFKEhT V19OREVfUlNUV1JOX09QVCwgdGVtcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMKaW5kZXggOGNiZTBhODA3YTM1Li42YTk0ZDg3MjM3NzAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTE4NjcsNiArMTg2Nyw3IEBA IGludAogaTkxNV9nZW1fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlKQogeworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4 ZWNidWZmZXIgKmFyZ3MgPSBkYXRhOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIg ZXhlYzI7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdCAqZXhlY19saXN0ID0gTlVM TDsKQEAgLTE5MDUsNyArMTkwNiw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXIoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZXhlYzJfbGlzdFtpXS5yZWxvY3NfcHRyID0gZXhl Y19saXN0W2ldLnJlbG9jc19wdHI7CiAJCWV4ZWMyX2xpc3RbaV0uYWxpZ25tZW50ID0gZXhlY19s aXN0W2ldLmFsaWdubWVudDsKIAkJZXhlYzJfbGlzdFtpXS5vZmZzZXQgPSBleGVjX2xpc3RbaV0u b2Zmc2V0OwotCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0KQorCQlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA8IDQpCiAJCQlleGVjMl9saXN0W2ldLmZsYWdzID0gRVhFQ19PQkpFQ1RfTkVF RFNfRkVOQ0U7CiAJCWVsc2UKIAkJCWV4ZWMyX2xpc3RbaV0uZmxhZ3MgPSAwOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMKaW5kZXggNzkzODczNTBmNjA1Li5mNjViMzJjMjMzNDEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYwpAQCAtNDQ4LDcgKzQ0OCw3IEBA IGk5MTVfZ2VtX2RldGVjdF9iaXRfNl9zd2l6emxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ dWludDMyX3Qgc3dpenpsZV94ID0gSTkxNV9CSVRfNl9TV0laWkxFX1VOS05PV047CiAJdWludDMy X3Qgc3dpenpsZV95ID0gSTkxNV9CSVRfNl9TV0laWkxFX1VOS05PV047CiAKLQlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gOCB8fCBJU19WQUxMRVlWSUVXKGRldikpIHsKKwlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA+PSA4IHx8IElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKSB7CiAJCS8qCiAJ CSAqIE9uIEJEVyssIHN3aXp6bGluZyBpcyBub3QgdXNlZC4gV2UgbGVhdmUgdGhlIENQVSBtZW1v cnkKIAkJICogY29udHJvbGxlciBpbiBjaGFyZ2Ugb2Ygb3B0aW1pemluZyBtZW1vcnkgYWNjZXNz ZXMgd2l0aG91dApAQCAtNDU4LDcgKzQ1OCw3IEBAIGk5MTVfZ2VtX2RldGVjdF9iaXRfNl9zd2l6 emxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAqLwogCQlzd2l6emxlX3ggPSBJOTE1X0JJ VF82X1NXSVpaTEVfTk9ORTsKIAkJc3dpenpsZV95ID0gSTkxNV9CSVRfNl9TV0laWkxFX05PTkU7 Ci0JfSBlbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KSB7CisJfSBlbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDYpIHsKIAkJaWYgKGRldl9wcml2LT5wcmVzZXJ2ZV9iaW9z X3N3aXp6bGUpIHsKIAkJCWlmIChJOTE1X1JFQUQoRElTUF9BUkJfQ1RMKSAmCiAJCQkgICAgRElT UF9USUxFX1NVUkZBQ0VfU1dJWlpMSU5HKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j CmluZGV4IDU5ZjNlOGE5OGE5OC4uNTBkODZjN2E1MDA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYwpAQCAtNDI3LDkgKzQyNyw5IEBAIHN0YXRpYyB2b2lkIGNsZWFudXBfc2NyYXRj aF9wYWdlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wYWdl X3RhYmxlICphbGxvY19wdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogeworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaTkxNV9wYWdl X3RhYmxlICpwdDsKLQljb25zdCBzaXplX3QgY291bnQgPSBJTlRFTF9JTkZPKGRldiktPmdlbiA+ PSA4ID8KLQkJR0VOOF9QVEVTIDogR0VONl9QVEVTOworCWNvbnN0IHNpemVfdCBjb3VudCA9IElO VEVMX0dFTihkZXZfcHJpdikgPj0gOCA/IEdFTjhfUFRFUyA6IEdFTjZfUFRFUzsKIAlpbnQgcmV0 ID0gLUVOT01FTTsKIAogCXB0ID0ga3phbGxvYyhzaXplb2YoKnB0KSwgR0ZQX0tFUk5FTCk7CkBA IC0yMTU0LDYgKzIxNTQsOCBAQCBzdGF0aWMgaW50IGk5MTVfcHBndHRfaW5pdChzdHJ1Y3QgaTkx NV9od19wcGd0dCAqcHBndHQsCiAKIGludCBpOTE1X3BwZ3R0X2luaXRfaHcoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CisKIAlndHRfd3JpdGVfd29ya2Fyb3VuZHMoZGV2KTsKIAogCS8qIEluIHRoZSBj YXNlIG9mIGV4ZWNsaXN0cywgUFBHVFQgaXMgZW5hYmxlZCBieSB0aGUgY29udGV4dCBkZXNjcmlw dG9yCkBAIC0yMTY5LDEwICsyMTcxLDEwIEBAIGludCBpOTE1X3BwZ3R0X2luaXRfaHcoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJZ2VuNl9wcGd0dF9lbmFibGUoZGV2KTsKIAllbHNlIGlmIChJ U19HRU43KGRldikpCiAJCWdlbjdfcHBndHRfZW5hYmxlKGRldik7Ci0JZWxzZSBpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gOCkKKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgp CiAJCWdlbjhfcHBndHRfZW5hYmxlKGRldik7CiAJZWxzZQotCQlNSVNTSU5HX0NBU0UoSU5URUxf SU5GTyhkZXYpLT5nZW4pOworCQlNSVNTSU5HX0NBU0UoSU5URUxfR0VOKGRldl9wcml2KSk7CiAK IAlyZXR1cm4gMDsKIH0KQEAgLTIyNzgsNyArMjI4MCw3IEBAIHZvaWQgaTkxNV9nZW1fc3VzcGVu ZF9ndHRfbWFwcGluZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkvKiBEb24ndCBib3RoZXIg bWVzc2luZyB3aXRoIGZhdWx0cyBwcmUgR0VONiBhcyB3ZSBoYXZlIGxpdHRsZQogCSAqIGRvY3Vt ZW50YXRpb24gc3VwcG9ydGluZyB0aGF0IGl0J3MgYSBnb29kIGlkZWEuCiAJICovCi0JaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuIDwgNikKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDYpCiAJ CXJldHVybjsKIAogCWk5MTVfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhkZXZfcHJpdik7CkBAIC0z MjU3LDggKzMyNTksOCBAQCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJCQlXQVJOX09OKGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0 X2RvbWFpbihvYmosIGZhbHNlKSk7CiAJfQogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49 IDgpIHsKLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpCisJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkgeworCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikgfHwgSVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCQljaHZfc2V0dXBfcHJpdmF0ZV9wcGF0KGRl dl9wcml2KTsKIAkJZWxzZQogCQkJYmR3X3NldHVwX3ByaXZhdGVfcHBhdChkZXZfcHJpdik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCmluZGV4IGMyMzRlY2Y2NGQ4OC4uNjc5 OGZlNzkzZGFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9s ZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwpAQCAtMTA5 LDcgKzEwOSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGk5MTVfc3RvbGVuX3RvX3BoeXNpY2Fs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJICoKIAkgKi8KIAliYXNlID0gMDsKLQlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gMykgeworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDMp IHsKIAkJdTMyIGJzbTsKIAogCQlwY2lfcmVhZF9jb25maWdfZHdvcmQocGRldiwgSU5URUxfQlNN LCAmYnNtKTsKQEAgLTIwNCw3ICsyMDQsOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0 b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4gMDsKIAog CS8qIG1ha2Ugc3VyZSB3ZSBkb24ndCBjbG9iYmVyIHRoZSBHVFQgaWYgaXQncyB3aXRoaW4gc3Rv bGVuIG1lbW9yeSAqLwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA0ICYmICFJU19HMzMo ZGV2KSAmJiAhSVNfRzRYKGRldikpIHsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8PSA0ICYm CisJICAgICFJU19HMzMoZGV2X3ByaXYpICYmICFJU19HNFgoZGV2X3ByaXYpKSB7CiAJCXN0cnVj dCB7CiAJCQl1MzIgc3RhcnQsIGVuZDsKIAkJfSBzdG9sZW5bMl0gPSB7CkBAIC00MTcsNyArNDE4 LDcgQEAgaW50IGk5MTVfZ2VtX2luaXRfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ bXV0ZXhfaW5pdCgmZGV2X3ByaXYtPm1tLnN0b2xlbl9sb2NrKTsKIAogI2lmZGVmIENPTkZJR19J TlRFTF9JT01NVQotCWlmIChpbnRlbF9pb21tdV9nZnhfbWFwcGVkICYmIElOVEVMX0lORk8oZGV2 KS0+Z2VuIDwgOCkgeworCWlmIChpbnRlbF9pb21tdV9nZnhfbWFwcGVkICYmIElOVEVMX0dFTihk ZXZfcHJpdikgPCA4KSB7CiAJCURSTV9JTkZPKCJETUFSIGFjdGl2ZSwgZGlzYWJsaW5nIHVzZSBv ZiBzdG9sZW4gbWVtb3J5XG4iKTsKIAkJcmV0dXJuIDA7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV90aWxpbmcuYwppbmRleCBhMTRiMWUzZDRjNzguLjczNzA1ZDM1YjRmMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMKQEAgLTYyLDYgKzYyLDcgQEAKIHN0YXRp YyBib29sCiBpOTE1X3RpbGluZ19vayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc3RyaWRl LCBpbnQgc2l6ZSwgaW50IHRpbGluZ19tb2RlKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlpbnQgdGlsZV93aWR0aDsKIAogCS8qIExpbmVh ciBpcyBhbHdheXMgZmluZSAqLwpAQCAtODAsMTAgKzgxLDEwIEBAIGk5MTVfdGlsaW5nX29rKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBzdHJpZGUsIGludCBzaXplLCBpbnQgdGlsaW5nX21v ZGUpCiAJLyogY2hlY2sgbWF4aW11bSBzdHJpZGUgJiBvYmplY3Qgc2l6ZSAqLwogCS8qIGk5NjUr IHN0b3JlcyB0aGUgZW5kIGFkZHJlc3Mgb2YgdGhlIGd0dCBtYXBwaW5nIGluIHRoZSBmZW5jZQog CSAqIHJlZywgc28gZG9udCBib3RoZXIgdG8gY2hlY2sgdGhlIHNpemUgKi8KLQlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gNykgeworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDcpIHsK IAkJaWYgKHN0cmlkZSAvIDEyOCA+IEdFTjdfRkVOQ0VfTUFYX1BJVENIX1ZBTCkKIAkJCXJldHVy biBmYWxzZTsKLQl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDQpIHsKKwl9IGVs c2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkgewogCQlpZiAoc3RyaWRlIC8gMTI4ID4g STk2NV9GRU5DRV9NQVhfUElUQ0hfVkFMKQogCQkJcmV0dXJuIGZhbHNlOwogCX0gZWxzZSB7CkBA IC0xMDMsNyArMTA0LDcgQEAgaTkxNV90aWxpbmdfb2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwg aW50IHN0cmlkZSwgaW50IHNpemUsIGludCB0aWxpbmdfbW9kZSkKIAkJcmV0dXJuIGZhbHNlOwog CiAJLyogOTY1KyBqdXN0IG5lZWRzIG11bHRpcGxlcyBvZiB0aWxlIHdpZHRoICovCi0JaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuID49IDQpIHsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0 KSB7CiAJCWlmIChzdHJpZGUgJiAodGlsZV93aWR0aCAtIDEpKQogCQkJcmV0dXJuIGZhbHNlOwog CQlyZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1 X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCmluZGV4IGFl ZDU1ZTRmMTAwZi4uM2M4YThkNjI0OGM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vy cm9yLmMKQEAgLTM4Nyw3ICszODcsNyBAQCBpbnQgaTkxNV9lcnJvcl9zdGF0ZV90b19zdHIoc3Ry dWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAogCWVycl9wcmludGYobSwgIkVJUjog MHglMDh4XG4iLCBlcnJvci0+ZWlyKTsKIAllcnJfcHJpbnRmKG0sICJJRVI6IDB4JTA4eFxuIiwg ZXJyb3ItPmllcik7Ci0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSA4KSB7CiAJCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspCiAJCQll cnJfcHJpbnRmKG0sICJHVElFUiBndCAlZDogMHglMDh4XG4iLCBpLAogCQkJCSAgIGVycm9yLT5n dGllcltpXSk7CkBAIC00MDYsMTAgKzQwNiwxMCBAQCBpbnQgaTkxNV9lcnJvcl9zdGF0ZV90b19z dHIoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAkJZXJyX3ByaW50ZihtLCAi ICBJTlNURE9ORV8lZDogMHglMDh4XG4iLCBpLAogCQkJICAgZXJyb3ItPmV4dHJhX2luc3Rkb25l W2ldKTsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KSB7CisJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gNikgewogCQllcnJfcHJpbnRmKG0sICJFUlJPUjogMHglMDh4XG4iLCBl cnJvci0+ZXJyb3IpOwogCi0JCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KQorCQlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQogCQkJZXJyX3ByaW50ZihtLCAiRkFVTFRfVExCX0RB VEE6IDB4JTA4eCAweCUwOHhcbiIsCiAJCQkJICAgZXJyb3ItPmZhdWx0X2RhdGExLCBlcnJvci0+ ZmF1bHRfZGF0YTApOwogCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2Nh cHR1cmVfcmVnX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAo SVNfR0VONyhkZXYpKQogCQllcnJvci0+ZXJyX2ludCA9IEk5MTVfUkVBRChHRU43X0VSUl9JTlQp OwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA4KSB7CiAJCWVycm9yLT5mYXVsdF9kYXRhMCA9IEk5MTVfUkVBRChHRU44X0ZB VUxUX1RMQl9EQVRBMCk7CiAJCWVycm9yLT5mYXVsdF9kYXRhMSA9IEk5MTVfUkVBRChHRU44X0ZB VUxUX1RMQl9EQVRBMSk7CiAJfQpAQCAtMTMyNCwxMCArMTMyNCwxMCBAQCBzdGF0aWMgdm9pZCBp OTE1X2NhcHR1cmVfcmVnX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAl9CiAKIAkvKiAyOiBSZWdpc3RlcnMgd2hpY2ggYmVsb25nIHRvIG11bHRpcGxlIGdlbmVyYXRp b25zICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcpCisJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gNykKIAkJZXJyb3ItPmZvcmNld2FrZSA9IEk5MTVfUkVBRF9GVyhGT1JDRVdB S0VfTVQpOwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDYpIHsKKwlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA+PSA2KSB7CiAJCWVycm9yLT5kZXJybXIgPSBJOTE1X1JFQUQoREVSUk1S KTsKIAkJZXJyb3ItPmVycm9yID0gSTkxNV9SRUFEKEVSUk9SX0dFTjYpOwogCQllcnJvci0+ZG9u ZV9yZWcgPSBJOTE1X1JFQUQoRE9ORV9SRUcpOwpAQCAtMTM0Myw3ICsxMzQzLDcgQEAgc3RhdGlj IHZvaWQgaTkxNV9jYXB0dXJlX3JlZ19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJaWYgKEhBU19IV19DT05URVhUUyhkZXYpKQogCQllcnJvci0+Y2NpZCA9IEk5MTVf UkVBRChDQ0lEKTsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7CisJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOCkgewogCQllcnJvci0+aWVyID0gSTkxNV9SRUFEKEdFTjhf REVfTUlTQ19JRVIpOwogCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQogCQkJZXJyb3ItPmd0aWVy W2ldID0gSTkxNV9SRUFEKEdFTjhfR1RfSUVSKGkpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmlu ZGV4IGJiMDU4MWU0MzI2Zi4uMWI1NmI1ZTQ4NjMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMK QEAgLTI2OTgsNyArMjY5OCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9lbmFibGVfdmJsYW5rKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCXVuc2lnbmVkIGxvbmcgaXJx ZmxhZ3M7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFn cyk7Ci0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDQpCisJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gNCkKIAkJaTkxNV9lbmFibGVfcGlwZXN0YXQoZGV2X3ByaXYsIHBpcGUsCiAJCQkJ ICAgICBQSVBFX1NUQVJUX1ZCTEFOS19JTlRFUlJVUFRfU1RBVFVTKTsKIAllbHNlCkBAIC0yNzEz LDggKzI3MTMsOCBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7 Ci0JdWludDMyX3QgYml0ID0gKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcpID8gREVfUElQRV9W QkxBTktfSVZCKHBpcGUpIDoKLQkJCQkJCSAgICAgREVfUElQRV9WQkxBTksocGlwZSk7CisJdWlu dDMyX3QgYml0ID0gKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykgPyBERV9QSVBFX1ZCTEFOS19J VkIocGlwZSkgOgorCQkJCQkJICAgIERFX1BJUEVfVkJMQU5LKHBpcGUpOwogCiAJc3Bpbl9sb2Nr X2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwogCWlsa19lbmFibGVfZGlz cGxheV9pcnEoZGV2X3ByaXYsIGJpdCk7CkBAIC0yNzY3LDggKzI3NjcsOCBAQCBzdGF0aWMgdm9p ZCBpcm9ubGFrZV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25l ZCBpbnQgcGlwZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CiAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKLQl1aW50MzJfdCBiaXQgPSAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gNykgPyBERV9QSVBFX1ZCTEFOS19JVkIocGlwZSkgOgotCQkJ CQkJICAgICBERV9QSVBFX1ZCTEFOSyhwaXBlKTsKKwl1aW50MzJfdCBiaXQgPSAoSU5URUxfR0VO KGRldl9wcml2KSA+PSA3KSA/IERFX1BJUEVfVkJMQU5LX0lWQihwaXBlKSA6CisJCQkJCQkgICAg REVfUElQRV9WQkxBTksocGlwZSk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmly cV9sb2NrLCBpcnFmbGFncyk7CiAJaWxrX2Rpc2FibGVfZGlzcGxheV9pcnEoZGV2X3ByaXYsIGJp dCk7CkBAIC0zMjI1LDEyICszMjI1LDEwIEBAIHN0YXRpYyB2b2lkIGlieF9pcnFfcHJlX3Bvc3Rp bnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJUE9TVElOR19SRUFEKFNERUlFUik7CiB9 CiAKLXN0YXRpYyB2b2lkIGdlbjVfZ3RfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CitzdGF0aWMgdm9pZCBnZW41X2d0X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwotCiAJR0VONV9JUlFfUkVTRVQoR1QpOwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA2KQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpCiAJCUdFTjVfSVJRX1JFU0VU KEdFTjZfUE0pOwogfQogCkBAIC0zMjk1LDcgKzMyOTMsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFr ZV9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoSVNfR0VONyhkZXYpKQog CQlJOTE1X1dSSVRFKEdFTjdfRVJSX0lOVCwgMHhmZmZmZmZmZik7CiAKLQlnZW41X2d0X2lycV9y ZXNldChkZXYpOworCWdlbjVfZ3RfaXJxX3Jlc2V0KGRldl9wcml2KTsKIAogCWlieF9pcnFfcmVz ZXQoZGV2KTsKIH0KQEAgLTMzMDcsNyArMzMwNSw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdf aXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlJOTE1X1dSSVRFKFZMVl9N QVNURVJfSUVSLCAwKTsKIAlQT1NUSU5HX1JFQUQoVkxWX01BU1RFUl9JRVIpOwogCi0JZ2VuNV9n dF9pcnFfcmVzZXQoZGV2KTsKKwlnZW41X2d0X2lycV9yZXNldChkZXZfcHJpdik7CiAKIAlzcGlu X2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCWlmIChkZXZfcHJpdi0+ZGlzcGxheV9p cnFzX2VuYWJsZWQpCkBAIC0zNTY2LDcgKzM1NjQsNyBAQCBzdGF0aWMgdm9pZCBnZW41X2d0X2ly cV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJR0VONV9JUlFfSU5JVChH VCwgZGV2X3ByaXYtPmd0X2lycV9tYXNrLCBndF9pcnFzKTsKIAotCWlmIChJTlRFTF9JTkZPKGRl diktPmdlbiA+PSA2KSB7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewogCQkvKgog CQkgKiBSUFMgaW50ZXJydXB0cyB3aWxsIGdldCBlbmFibGVkL2Rpc2FibGVkIG9uIGRlbWFuZCB3 aGVuIFJQUwogCQkgKiBpdHNlbGYgaXMgZW5hYmxlZC9kaXNhYmxlZC4KQEAgLTM1ODQsNyArMzU4 Miw3IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShk ZXYpOwogCXUzMiBkaXNwbGF5X21hc2ssIGV4dHJhX21hc2s7CiAKLQlpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPj0gNykgeworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDcpIHsKIAkJZGlz cGxheV9tYXNrID0gKERFX01BU1RFUl9JUlFfQ09OVFJPTCB8IERFX0dTRV9JVkIgfAogCQkJCURF X1BDSF9FVkVOVF9JVkIgfCBERV9QTEFORUNfRkxJUF9ET05FX0lWQiB8CiAJCQkJREVfUExBTkVC X0ZMSVBfRE9ORV9JVkIgfApAQCAtMzgwNyw3ICszODA1LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5 dmlld19pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJSTkxNV9XUklURShW TFZfTUFTVEVSX0lFUiwgMCk7CiAJUE9TVElOR19SRUFEKFZMVl9NQVNURVJfSUVSKTsKIAotCWdl bjVfZ3RfaXJxX3Jlc2V0KGRldik7CisJZ2VuNV9ndF9pcnFfcmVzZXQoZGV2X3ByaXYpOwogCiAJ STkxNV9XUklURShIV1NUQU0sIDB4ZmZmZmZmZmYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3N1c3BlbmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3Vz cGVuZC5jCmluZGV4IGEwYWYxNzAwNjJiMS4uYTVhZjNlMjM2YjMzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N1c3BlbmQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3N1c3BlbmQuYwpAQCAtMjksMTYgKzI5LDE0IEBACiAjaW5jbHVkZSAiaW50ZWxfZHJ2 LmgiCiAjaW5jbHVkZSAiaTkxNV9yZWcuaCIKIAotc3RhdGljIHZvaWQgaTkxNV9zYXZlX2Rpc3Bs YXkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIGk5MTVfc2F2ZV9kaXNwbGF5 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0KIAkvKiBEaXNwbGF5IGFyYml0cmF0 aW9uIGNvbnRyb2wgKi8KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCkKKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8PSA0KQogCQlkZXZfcHJpdi0+cmVnZmlsZS5zYXZlRFNQQVJCID0g STkxNV9SRUFEKERTUEFSQik7CiAKIAkvKiBzYXZlIEZCQyBpbnRlcnZhbCAqLwotCWlmIChIQVNf RkJDKGRldikgJiYgSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikpCisJ aWYgKEhBU19GQkMoZGV2X3ByaXYpICYmIElOVEVMX0dFTihkZXZfcHJpdikgPD0gNCAmJiAhSVNf RzRYKGRldl9wcml2KSkKIAkJZGV2X3ByaXYtPnJlZ2ZpbGUuc2F2ZUZCQ19DT05UUk9MID0gSTkx NV9SRUFEKEZCQ19DT05UUk9MKTsKIH0KIApAQCAtNDcsMTQgKzQ1LDE0IEBAIHN0YXRpYyB2b2lk IGk5MTVfcmVzdG9yZV9kaXNwbGF5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCiAJLyogRGlzcGxheSBh cmJpdHJhdGlvbiAqLwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA0KQorCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpIDw9IDQpCiAJCUk5MTVfV1JJVEUoRFNQQVJCLCBkZXZfcHJpdi0+cmVn ZmlsZS5zYXZlRFNQQVJCKTsKIAogCS8qIG9ubHkgcmVzdG9yZSBGQkMgaW5mbyBvbiB0aGUgcGxh dGZvcm0gdGhhdCBzdXBwb3J0cyBGQkMqLwogCWludGVsX2ZiY19nbG9iYWxfZGlzYWJsZShkZXZf cHJpdik7CiAKIAkvKiByZXN0b3JlIEZCQyBpbnRlcnZhbCAqLwotCWlmIChIQVNfRkJDKGRldikg JiYgSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikpCisJaWYgKEhBU19G QkMoZGV2X3ByaXYpICYmIElOVEVMX0dFTihkZXZfcHJpdikgPD0gNCAmJiAhSVNfRzRYKGRldl9w cml2KSkKIAkJSTkxNV9XUklURShGQkNfQ09OVFJPTCwgZGV2X3ByaXYtPnJlZ2ZpbGUuc2F2ZUZC Q19DT05UUk9MKTsKIAogCWk5MTVfcmVkaXNhYmxlX3ZnYShkZXYpOwpAQCAtNjgsMTQgKzY2LDE0 IEBAIGludCBpOTE1X3NhdmVfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCW11dGV4 X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAotCWk5MTVfc2F2ZV9kaXNwbGF5KGRldik7CisJ aTkxNV9zYXZlX2Rpc3BsYXkoZGV2X3ByaXYpOwogCiAJaWYgKElTX0dFTjQoZGV2KSkKIAkJcGNp X3JlYWRfY29uZmlnX3dvcmQocGRldiwgR0NER01CVVMsCiAJCQkJICAgICAmZGV2X3ByaXYtPnJl Z2ZpbGUuc2F2ZUdDREdNQlVTKTsKIAogCS8qIENhY2hlIG1vZGUgc3RhdGUgKi8KLQlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPCA3KQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNykKIAkJ ZGV2X3ByaXYtPnJlZ2ZpbGUuc2F2ZUNBQ0hFX01PREVfMCA9IEk5MTVfUkVBRChDQUNIRV9NT0RF XzApOwogCiAJLyogTWVtb3J5IEFyYml0cmF0aW9uIHN0YXRlICovCkBAIC0xMjIsNyArMTIwLDcg QEAgaW50IGk5MTVfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWk5MTVf cmVzdG9yZV9kaXNwbGF5KGRldik7CiAKIAkvKiBDYWNoZSBtb2RlIHN0YXRlICovCi0JaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuIDwgNykKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDcpCiAJ CUk5MTVfV1JJVEUoQ0FDSEVfTU9ERV8wLCBkZXZfcHJpdi0+cmVnZmlsZS5zYXZlQ0FDSEVfTU9E RV8wIHwKIAkJCSAgIDB4ZmZmZjAwMDApOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwpp bmRleCA5NWE3Mjc3MWVlYTYuLjliZjA3MmY1NjE1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY29sb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j b2xvci5jCkBAIC05NSw4ICs5NSw3IEBAIHN0YXRpYyB2b2lkIGN0bV9tdWx0X2J5X2xpbWl0ZWQo dWludDY0X3QgKnJlc3VsdCwgaW50NjRfdCAqaW5wdXQpCiBzdGF0aWMgdm9pZCBpOXh4X2xvYWRf Y3NjX21hdHJpeChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0 IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+Y3J0YzsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOwogCWludCBpLCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAl1aW50MTZfdCBj b2VmZnNbOV0gPSB7IDAsIH07CkBAIC0xODAsNyArMTc5LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9s b2FkX2NzY19tYXRyaXgoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCUk5MTVf V1JJVEUoUElQRV9DU0NfUFJFT0ZGX01FKHBpcGUpLCAwKTsKIAlJOTE1X1dSSVRFKFBJUEVfQ1ND X1BSRU9GRl9MTyhwaXBlKSwgMCk7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPiA2KSB7 CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPiA2KSB7CiAJCXVpbnQxNl90IHBvc3RvZmYgPSAw OwogCiAJCWlmIChpbnRlbF9jcnRjX3N0YXRlLT5saW1pdGVkX2NvbG9yX3JhbmdlKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jcnQuYwppbmRleCBkZmJjZjE2YjQxZGYuLjMwMDZlNmVhYzkyYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY3J0LmMKQEAgLTE1NCw3ICsxNTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9jcnRfc2V0X2RwbXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+YmFzZS5h ZGp1c3RlZF9tb2RlOwogCXUzMiBhZHBhOwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49 IDUpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSkKIAkJYWRwYSA9IEFEUEFfSE9UUExV R19CSVRTOwogCWVsc2UKIAkJYWRwYSA9IDA7CkBAIC03MDAsNyArNzAwLDcgQEAgaW50ZWxfY3J0 X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQogCWlm IChpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShjb25uZWN0b3IsIE5VTEwsICZ0bXAsICZjdHgp KSB7CiAJCWlmIChpbnRlbF9jcnRfZGV0ZWN0X2RkYyhjb25uZWN0b3IpKQogCQkJc3RhdHVzID0g Y29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Ci0JCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuIDwgNCkKKwkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDQpCiAJCQlzdGF0dXMg PSBpbnRlbF9jcnRfbG9hZF9kZXRlY3QoY3J0LAogCQkJCXRvX2ludGVsX2NydGMoY29ubmVjdG9y LT5zdGF0ZS0+Y3J0YyktPnBpcGUpOwogCQllbHNlIGlmIChpOTE1LmxvYWRfZGV0ZWN0X3Rlc3Qp CkBAIC03NjIsMTEgKzc2MiwxMCBAQCBzdGF0aWMgaW50IGludGVsX2NydF9zZXRfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAogdm9pZCBpbnRlbF9jcnRfcmVzZXQo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBlbmNvZGVyLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0ICpjcnQgPSBpbnRlbF9lbmNvZGVyX3Rv X2NydCh0b19pbnRlbF9lbmNvZGVyKGVuY29kZXIpKTsKIAotCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA+PSA1KSB7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSkgewogCQl1MzIgYWRw YTsKIAogCQlhZHBhID0gSTkxNV9SRUFEKGNydC0+YWRwYV9yZWcpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwppbmRleCA1NmM2YjVlNTRjYWQuLjNlZDVmZmEwMjRiYSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGRpLmMKQEAgLTk5OCwxMyArOTk4LDEzIEBAIHN0YXRpYyB2b2lkIGJ4dF9kZGlfY2xv Y2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogdm9pZCBpbnRlbF9kZGlfY2xv Y2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5j b2Rlci0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0g OCkKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8PSA4KQogCQloc3dfZGRpX2Nsb2NrX2dldChl bmNvZGVyLCBwaXBlX2NvbmZpZyk7Ci0JZWxzZSBpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tB QllMQUtFKGRldikpCisJZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxB S0UoZGV2X3ByaXYpKQogCQlza2xfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7 Ci0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQorCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3By aXYpKQogCQlieHRfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7CiB9CiAKQEAg LTE2NzAsOCArMTY3MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wb3N0X2Rpc2FibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCiAJCQkJICAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBl bmNvZGVyLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+ZGV2KTsKIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0 KGludGVsX2VuY29kZXIpOwogCWludCB0eXBlID0gaW50ZWxfZW5jb2Rlci0+dHlwZTsKIAl1aW50 MzJfdCB2YWw7CkBAIC0xNzAxLDEwICsxNzAwLDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9w b3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCiAJCWludGVs X2VkcF9wYW5lbF9vZmYoaW50ZWxfZHApOwogCX0KIAotCWlmIChJU19TS1lMQUtFKGRldikgfHwg SVNfS0FCWUxBS0UoZGV2KSkKKwlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxB S0UoZGV2X3ByaXYpKQogCQlJOTE1X1dSSVRFKERQTExfQ1RSTDIsIChJOTE1X1JFQUQoRFBMTF9D VFJMMikgfAogCQkJCQlEUExMX0NUUkwyX0RESV9DTEtfT0ZGKHBvcnQpKSk7Ci0JZWxzZSBpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPCA5KQorCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikg PCA5KQogCQlJOTE1X1dSSVRFKFBPUlRfQ0xLX1NFTChwb3J0KSwgUE9SVF9DTEtfU0VMX05PTkUp OwogCiAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpIHsKQEAgLTE3NTQsOCArMTc1Myw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmlu dGVsX2VuY29kZXIsCiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2VuY29k ZXItPmJhc2U7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+Y3J0YzsKIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5kZXYpOwogCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxf ZGRpX2dldF9lbmNvZGVyX3BvcnQoaW50ZWxfZW5jb2Rlcik7CiAJaW50IHR5cGUgPSBpbnRlbF9l bmNvZGVyLT50eXBlOwogCkBAIC0xNzczLDcgKzE3NzEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9l bmFibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAogCX0gZWxzZSBp ZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7CiAJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7CiAKLQkJaWYgKHBvcnQgPT0gUE9SVF9BICYm IElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgOSkKKwkJaWYgKHBvcnQgPT0gUE9SVF9BICYmIElOVEVM X0dFTihkZXZfcHJpdikgPCA5KQogCQkJaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2Rw KTsKIAogCQlpbnRlbF9lZHBfYmFja2xpZ2h0X29uKGludGVsX2RwKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwppbmRleCBlNWU2MjdiMDRlNTEuLjY5MDMzNDIwYmUwYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTU0MzUsNyArMTU0MzUsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9zZXR1cF9vdXRwdXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAl9 IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgewogCQlpbnQgZm91bmQ7Ci0JCWRwZF9pc19l ZHAgPSBpbnRlbF9kcF9pc19lZHAoZGV2LCBQT1JUX0QpOworCQlkcGRfaXNfZWRwID0gaW50ZWxf ZHBfaXNfZWRwKGRldl9wcml2LCBQT1JUX0QpOwogCiAJCWlmIChoYXNfZWRwX2EoZGV2KSkKIAkJ CWludGVsX2RwX2luaXQoZGV2LCBEUF9BLCBQT1JUX0EpOwpAQCAtMTU0NzgsMTQgKzE1NDc4LDE0 IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldHVwX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAkJICogdHJ1c3QgdGhlIHBvcnQgdHlwZSB0aGUgVkJUIGRlY2xhcmVzIGFzIHdlJ3ZlIHNl ZW4gYXQgbGVhc3QKIAkJICogSERNSSBwb3J0cyB0aGF0IHRoZSBWQlQgY2xhaW0gYXJlIERQIG9y IGVEUC4KIAkJICovCi0JCWhhc19lZHAgPSBpbnRlbF9kcF9pc19lZHAoZGV2LCBQT1JUX0IpOwor CQloYXNfZWRwID0gaW50ZWxfZHBfaXNfZWRwKGRldl9wcml2LCBQT1JUX0IpOwogCQloYXNfcG9y dCA9IGludGVsX2Jpb3NfaXNfcG9ydF9wcmVzZW50KGRldl9wcml2LCBQT1JUX0IpOwogCQlpZiAo STkxNV9SRUFEKFZMVl9EUF9CKSAmIERQX0RFVEVDVEVEIHx8IGhhc19wb3J0KQogCQkJaGFzX2Vk cCAmPSBpbnRlbF9kcF9pbml0KGRldiwgVkxWX0RQX0IsIFBPUlRfQik7CiAJCWlmICgoSTkxNV9S RUFEKFZMVl9IRE1JQikgJiBTRFZPX0RFVEVDVEVEIHx8IGhhc19wb3J0KSAmJiAhaGFzX2VkcCkK IAkJCWludGVsX2hkbWlfaW5pdChkZXYsIFZMVl9IRE1JQiwgUE9SVF9CKTsKIAotCQloYXNfZWRw ID0gaW50ZWxfZHBfaXNfZWRwKGRldiwgUE9SVF9DKTsKKwkJaGFzX2VkcCA9IGludGVsX2RwX2lz X2VkcChkZXZfcHJpdiwgUE9SVF9DKTsKIAkJaGFzX3BvcnQgPSBpbnRlbF9iaW9zX2lzX3BvcnRf cHJlc2VudChkZXZfcHJpdiwgUE9SVF9DKTsKIAkJaWYgKEk5MTVfUkVBRChWTFZfRFBfQykgJiBE UF9ERVRFQ1RFRCB8fCBoYXNfcG9ydCkKIAkJCWhhc19lZHAgJj0gaW50ZWxfZHBfaW5pdChkZXYs IFZMVl9EUF9DLCBQT1JUX0MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggNjg2N2I3NGZi NzI3Li4yNWNlNzIxZTIwMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtMTI3MiwxNCAr MTI3MiwxNCBAQCBpbnRlbF9kcF9zaW5rX3JhdGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs IGNvbnN0IGludCAqKnNpbmtfcmF0ZXMpCiBib29sIGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19o YnIyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiB7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Ci0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwogCiAJ LyogV2FEaXNhYmxlSEJSMjpza2wgKi8KLQlpZiAoSVNfU0tMX1JFVklEKGRldiwgMCwgU0tMX1JF VklEX0IwKSkKKwlpZiAoSVNfU0tMX1JFVklEKGRldl9wcml2LCAwLCBTS0xfUkVWSURfQjApKQog CQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoKElTX0hBU1dFTEwoZGV2KSAmJiAhSVNfSFNXX1VMWChk ZXYpKSB8fCBJU19CUk9BRFdFTEwoZGV2KSB8fAotCSAgICAoSU5URUxfSU5GTyhkZXYpLT5nZW4g Pj0gOSkpCisJaWYgKChJU19IQVNXRUxMKGRldl9wcml2KSAmJiAhSVNfSFNXX1VMWChkZXZfcHJp dikpIHx8CisJICAgIElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gOSkpCiAJCXJldHVybiB0cnVlOwogCWVsc2UKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMTUw Miw3ICsxNTAyLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJCWludGVsX2ZpeGVkX3BhbmVsX21vZGUoaW50ZWxfY29ubmVjdG9yLT5w YW5lbC5maXhlZF9tb2RlLAogCQkJCSAgICAgICBhZGp1c3RlZF9tb2RlKTsKIAotCQlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgeworCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5 KSB7CiAJCQlpbnQgcmV0OwogCQkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhwaXBlX2Nv bmZpZyk7CiAJCQlpZiAocmV0KQpAQCAtMjg5OCwyMSArMjg5OCwyMCBAQCBpbnRlbF9kcF9nZXRf bGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDhfdCBsaW5rX3N0YXR1 c1tEUF9MSU5LXwogdWludDhfdAogaW50ZWxfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2 KGludGVsX2RwKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRl bF9kcF90b19kZXYoaW50ZWxfZHApKTsKIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKS0+cG9ydDsKIAotCWlmIChJU19CUk9YVE9OKGRldikpCisJaWYgKElTX0JST1hU T04oZGV2X3ByaXYpKQogCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwot CWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKKwllbHNlIGlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDkpIHsKIAkJaWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcg JiYgcG9ydCA9PSBQT1JUX0EpCiAJCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZF TF8zOwogCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOwotCX0gZWxzZSBp ZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKKwl9IGVsc2UgaWYg KElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQly ZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwotCWVsc2UgaWYgKElTX0dFTjco ZGV2KSAmJiBwb3J0ID09IFBPUlRfQSkKKwllbHNlIGlmIChJU19HRU43KGRldl9wcml2KSAmJiBw b3J0ID09IFBPUlRfQSkKIAkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjsK LQllbHNlIGlmIChIQVNfUENIX0NQVChkZXYpICYmIHBvcnQgIT0gUE9SVF9BKQorCWVsc2UgaWYg KEhBU19QQ0hfQ1BUKGRldl9wcml2KSAmJiBwb3J0ICE9IFBPUlRfQSkKIAkJcmV0dXJuIERQX1RS QUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzsKIAllbHNlCiAJCXJldHVybiBEUF9UUkFJTl9WT0xU QUdFX1NXSU5HX0xFVkVMXzI7CkBAIC0yOTIxLDEwICsyOTIwLDExIEBAIGludGVsX2RwX3ZvbHRh Z2VfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiB1aW50OF90CiBpbnRlbF9kcF9wcmVf ZW1waGFzaXNfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQ4X3Qgdm9sdGFnZV9z d2luZykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGlu dGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRl bF9kcF90b19kZXYoaW50ZWxfZHApOwogCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApLT5wb3J0OwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKKwlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7CiAJCXN3aXRjaCAodm9sdGFnZV9zd2luZyAm IERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewogCQljYXNlIERQX1RSQUlOX1ZPTFRBR0Vf U1dJTkdfTEVWRUxfMDoKIAkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8zOwpAQCAt NDc4OSwxNSArNDc4OSwxMyBAQCBwdXRfcG93ZXI6CiB9CiAKIC8qIGNoZWNrIHRoZSBWQlQgdG8g c2VlIHdoZXRoZXIgdGhlIGVEUCBpcyBvbiBhbm90aGVyIHBvcnQgKi8KLWJvb2wgaW50ZWxfZHBf aXNfZWRwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0KQorYm9vbCBpbnRl bF9kcF9pc19lZHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQg cG9ydCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7Ci0KIAkvKgogCSAqIGVEUCBub3Qgc3VwcG9ydGVkIG9uIGc0eC4gc28gYmFpbCBvdXQgZWFy bHkganVzdAogCSAqIGZvciBhIGJpdCBleHRyYSBzYWZldHkgaW4gY2FzZSB0aGUgVkJUIGlzIGJv bmtlcnMuCiAJICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNSkKKwlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA8IDUpCiAJCXJldHVybiBmYWxzZTsKIAogCWlmIChwb3J0ID09IFBPUlRf QSkKQEAgLTUzOTQsNyArNTM5Miw3IEBAIGludGVsX2RwX2RycnNfaW5pdChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IsCiAJSU5JVF9ERUxBWUVEX1dPUksoJmRldl9wcml2 LT5kcnJzLndvcmssIGludGVsX2VkcF9kcnJzX2Rvd25jbG9ja193b3JrKTsKIAltdXRleF9pbml0 KCZkZXZfcHJpdi0+ZHJycy5tdXRleCk7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0g NikgeworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDw9IDYpIHsKIAkJRFJNX0RFQlVHX0tNUygi RFJSUyBzdXBwb3J0ZWQgZm9yIEdlbjcgYW5kIGFib3ZlXG4iKTsKIAkJcmV0dXJuIE5VTEw7CiAJ fQpAQCAtNTU2OCw3ICs1NTY2LDcgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJaW50ZWxfZHAtPnBwc19waXBlID0g SU5WQUxJRF9QSVBFOwogCiAJLyogaW50ZWxfZHAgdmZ1bmNzICovCi0JaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID49IDkpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKIAkJaW50ZWxf ZHAtPmdldF9hdXhfY2xvY2tfZGl2aWRlciA9IHNrbF9nZXRfYXV4X2Nsb2NrX2RpdmlkZXI7CiAJ ZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKQogCQlpbnRlbF9k cC0+Z2V0X2F1eF9jbG9ja19kaXZpZGVyID0gaHN3X2dldF9hdXhfY2xvY2tfZGl2aWRlcjsKQEAg LTU1NzcsNyArNTU3NSw3IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCWVsc2UKIAkJaW50ZWxfZHAtPmdldF9hdXhf Y2xvY2tfZGl2aWRlciA9IGc0eF9nZXRfYXV4X2Nsb2NrX2RpdmlkZXI7CiAKLQlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gOSkKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQogCQlp bnRlbF9kcC0+Z2V0X2F1eF9zZW5kX2N0bCA9IHNrbF9nZXRfYXV4X3NlbmRfY3RsOwogCWVsc2UK IAkJaW50ZWxfZHAtPmdldF9hdXhfc2VuZF9jdGwgPSBnNHhfZ2V0X2F1eF9zZW5kX2N0bDsKQEAg LTU1ODksNyArNTU4Nyw3IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCWludGVsX2RwLT5EUCA9IEk5MTVfUkVBRChp bnRlbF9kcC0+b3V0cHV0X3JlZyk7CiAJaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3RvciA9IGlu dGVsX2Nvbm5lY3RvcjsKIAotCWlmIChpbnRlbF9kcF9pc19lZHAoZGV2LCBwb3J0KSkKKwlpZiAo aW50ZWxfZHBfaXNfZWRwKGRldl9wcml2LCBwb3J0KSkKIAkJdHlwZSA9IERSTV9NT0RFX0NPTk5F Q1RPUl9lRFA7CiAJZWxzZQogCQl0eXBlID0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0 OwpAQCAtNTcyNyw3ICs1NzI1LDcgQEAgYm9vbCBpbnRlbF9kcF9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJfSBlbHNlIHsKIAkJaW50ZWxfZW5jb2Rlci0+cHJlX2VuYWJsZSA9IGc0eF9w cmVfZW5hYmxlX2RwOwogCQlpbnRlbF9lbmNvZGVyLT5lbmFibGUgPSBnNHhfZW5hYmxlX2RwOwot CQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSkKKwkJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gNSkKIAkJCWludGVsX2VuY29kZXItPnBvc3RfZGlzYWJsZSA9IGlsa19wb3N0X2Rpc2Fi bGVfZHA7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxs X21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwppbmRleCA2NTVh NWIzODJjZjkuLmU4NDU0ZmJkYjQ4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBsbF9tZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21n ci5jCkBAIC0xNTAsMTMgKzE1MCwxMiBAQCBvdXQ6CiAKIHZvaWQgaW50ZWxfZGlzYWJsZV9zaGFy ZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0g Y3J0Yy0+Y29uZmlnLT5zaGFyZWRfZHBsbDsKIAl1bnNpZ25lZCBjcnRjX21hc2sgPSAxIDw8IGRy bV9jcnRjX2luZGV4KCZjcnRjLT5iYXNlKTsKIAogCS8qIFBDSCBvbmx5IGF2YWlsYWJsZSBvbiBJ TEsrICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNSkKKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA8IDUpCiAJCXJldHVybjsKIAogCWlmIChwbGwgPT0gTlVMTCkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKaW5kZXggNTcwYTdjYTc5ODNmLi41M2MyYzM4MmU3MDAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCkBAIC0xMzk0LDcgKzEzOTQsNyBAQCBpbnQgaW50ZWxfZHBfc2lua19j cmMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdTggKmNyYyk7CiBib29sIGludGVsX2RwX2Nv bXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgIHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKLWJvb2wgaW50ZWxfZHBfaXNfZWRwKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0KTsKK2Jvb2wgaW50ZWxfZHBfaXNfZWRwKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpOwogZW51bSBp cnFyZXR1cm4gaW50ZWxfZHBfaHBkX3B1bHNlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmlu dGVsX2RpZ19wb3J0LAogCQkJCSAgYm9vbCBsb25nX2hwZCk7CiB2b2lkIGludGVsX2VkcF9iYWNr bGlnaHRfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s dmRzLmMKaW5kZXggYzllZTAwYjUwNzg1Li40Y2JlM2E3NjNjZjAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9sdmRzLmMKQEAgLTEyMiw4ICsxMjIsNyBAQCBvdXQ6CiBzdGF0aWMgdm9pZCBpbnRlbF9s dmRzX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVy ICpsdmRzX2VuY29kZXIgPSB0b19sdmRzX2VuY29kZXIoJmVuY29kZXItPmJhc2UpOwogCXUzMiB0 bXAsIGZsYWdzID0gMDsKIApAQCAtMTM5LDEyICsxMzgsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxf bHZkc19nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKIAotCWlmIChJTlRFTF9J TkZPKGRldiktPmdlbiA8IDUpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA1KQogCQlwaXBl X2NvbmZpZy0+Z21jaF9wZml0Lmx2ZHNfYm9yZGVyX2JpdHMgPQogCQkJdG1wICYgTFZEU19CT1JE RVJfRU5BQkxFOwogCiAJLyogZ2VuMi8zIHN0b3JlIGRpdGhlciBzdGF0ZSBpbiBwZml0IGNvbnRy b2wsIG5lZWRzIHRvIG1hdGNoICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkgewor CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCkgewogCQl0bXAgPSBJOTE1X1JFQUQoUEZJVF9D T05UUk9MKTsKIAogCQlwaXBlX2NvbmZpZy0+Z21jaF9wZml0LmNvbnRyb2wgfD0gdG1wICYgUEFO RUxfOFRPNl9ESVRIRVJfRU5BQkxFOwpAQCAtMzk2LDYgKzM5NSw3IEBAIHN0YXRpYyBib29sIGlu dGVsX2x2ZHNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIsCiAJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJ CSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogeworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZW5jb2Rlci0+YmFz ZS5kZXYpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5iYXNlLmRl djsKIAlzdHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIgPQogCQl0b19sdmRz X2VuY29kZXIoJmludGVsX2VuY29kZXItPmJhc2UpOwpAQCAtNDA2LDcgKzQwNiw3IEBAIHN0YXRp YyBib29sIGludGVsX2x2ZHNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmlu dGVsX2VuY29kZXIsCiAJdW5zaWduZWQgaW50IGx2ZHNfYnBwOwogCiAJLyogU2hvdWxkIG5ldmVy IGhhcHBlbiEhICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCAmJiBpbnRlbF9jcnRj LT5waXBlID09IDApIHsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDQgJiYgaW50ZWxfY3J0 Yy0+cGlwZSA9PSAwKSB7CiAJCURSTV9FUlJPUigiQ2FuJ3Qgc3VwcG9ydCBMVkRTIG9uIHBpcGUg QVxuIik7CiAJCXJldHVybiBmYWxzZTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwpp bmRleCA3NjBlZmIyZWM1ZWYuLmUzM2QyODUzMDEyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w YW5lbC5jCkBAIC0zMDQsNyArMzA0LDcgQEAgdm9pZCBpbnRlbF9nbWNoX3BhbmVsX2ZpdHRpbmco c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgICBpbnQgZml0dGluZ19tb2RlKQogewotCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsK IAl1MzIgcGZpdF9jb250cm9sID0gMCwgcGZpdF9wZ21fcmF0aW9zID0gMCwgYm9yZGVyID0gMDsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlOwogCkBAIC0zMjUsNyArMzI1LDcgQEAgdm9pZCBpbnRlbF9nbWNo X3BhbmVsX2ZpdHRpbmcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCWJyZWFrOwog CWNhc2UgRFJNX01PREVfU0NBTEVfQVNQRUNUOgogCQkvKiBTY2FsZSBidXQgcHJlc2VydmUgdGhl IGFzcGVjdCByYXRpbyAqLwotCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkKKwkJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkKIAkJCWk5NjVfc2NhbGVfYXNwZWN0KHBpcGVfY29u ZmlnLCAmcGZpdF9jb250cm9sKTsKIAkJZWxzZQogCQkJaTl4eF9zY2FsZV9hc3BlY3QocGlwZV9j b25maWcsICZwZml0X2NvbnRyb2wsCkBAIC0zMzksNyArMzM5LDcgQEAgdm9pZCBpbnRlbF9nbWNo X3BhbmVsX2ZpdHRpbmcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCWlmIChwaXBl X2NvbmZpZy0+cGlwZV9zcmNfaCAhPSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5IHx8CiAJ CSAgICBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAhPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNw bGF5KSB7CiAJCQlwZml0X2NvbnRyb2wgfD0gUEZJVF9FTkFCTEU7Ci0JCQlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPj0gNCkKKwkJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpCiAJCQkJ cGZpdF9jb250cm9sIHw9IFBGSVRfU0NBTElOR19BVVRPOwogCQkJZWxzZQogCQkJCXBmaXRfY29u dHJvbCB8PSAoVkVSVF9BVVRPX1NDQUxFIHwKQEAgLTM1NSw3ICszNTUsNyBAQCB2b2lkIGludGVs X2dtY2hfcGFuZWxfZml0dGluZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAogCS8q IDk2NSsgd2FudHMgZnV6enkgZml0dGluZyAqLwogCS8qIEZJWE1FOiBoYW5kbGUgbXVsdGlwbGUg cGFuZWxzIGJ5IGZhaWxpbmcgZ3JhY2VmdWxseSAqLwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA0KQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpCiAJCXBmaXRfY29udHJvbCB8 PSAoKGludGVsX2NydGMtPnBpcGUgPDwgUEZJVF9QSVBFX1NISUZUKSB8CiAJCQkJIFBGSVRfRklM VEVSX0ZVWlpZKTsKIApAQCAtMzY2LDcgKzM2Niw3IEBAIG91dDoKIAl9CiAKIAkvKiBNYWtlIHN1 cmUgcHJlLTk2NSBzZXQgZGl0aGVyIGNvcnJlY3RseSBmb3IgMThicHAgcGFuZWxzLiAqLwotCWlm IChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDQgJiYgcGlwZV9jb25maWctPnBpcGVfYnBwID09IDE4 KQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCAmJiBwaXBlX2NvbmZpZy0+cGlwZV9icHAg PT0gMTgpCiAJCXBmaXRfY29udHJvbCB8PSBQQU5FTF84VE82X0RJVEhFUl9FTkFCTEU7CiAKIAlw aXBlX2NvbmZpZy0+Z21jaF9wZml0LmNvbnRyb2wgPSBwZml0X2NvbnRyb2w7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Bzci5jCmluZGV4IDZiYjBkODkzMmMzMS4uZGMxMDJiZjc2OTc4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wc3IuYwpAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgaW50ZWxfcHNyX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCQkvKiBFbmFibGUgUFNSIG9uIHRoZSBwYW5l bCAqLwogCQloc3dfcHNyX2VuYWJsZV9zaW5rKGludGVsX2RwKTsKIAotCQlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPj0gOSkKKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKIAkJCWlu dGVsX3Bzcl9hY3RpdmF0ZShpbnRlbF9kcCk7CiAJfSBlbHNlIHsKIAkJdmx2X3Bzcl9zZXR1cF92 c2MoaW50ZWxfZHApOwpAQCAtNDk4LDcgKzQ5OCw3IEBAIHZvaWQgaW50ZWxfcHNyX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCSAqICAgICAtIE9uIEhTVy9CRFcgd2UgZ2V0IGEg cmVjb3ZlcmFibGUgZnJvemVuIHNjcmVlbiB1bnRpbCBuZXh0CiAJICogICAgICAgZXhpdC1hY3Rp dmF0ZSBzZXF1ZW5jZS4KIAkgKi8KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA5KQorCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkKIAkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXZf cHJpdi0+cHNyLndvcmssCiAJCQkJICAgICAgbXNlY3NfdG9famlmZmllcyhpbnRlbF9kcC0+cGFu ZWxfcG93ZXJfY3ljbGVfZGVsYXkgKiA1KSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwpp bmRleCA3NTc3ZGQyMDU0NGUuLmY2NWU0NzExM2EzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nk dm8uYwpAQCAtMTI2OSwxMyArMTI2OSwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX3ByZV9l bmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCiAJCXJldHVybjsKIAog CS8qIFNldCB0aGUgU0RWTyBjb250cm9sIHJlZ3MuICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuID49IDQpIHsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0KSB7CiAJCS8qIFRoZSBy ZWFsIG1vZGUgcG9sYXJpdHkgaXMgc2V0IGJ5IHRoZSBTRFZPIGNvbW1hbmRzLCB1c2luZwogCQkg KiBzdHJ1Y3QgaW50ZWxfc2R2b19kdGQuICovCiAJCXNkdm94ID0gU0RWT19WU1lOQ19BQ1RJVkVf SElHSCB8IFNEVk9fSFNZTkNfQUNUSVZFX0hJR0g7CiAJCWlmICghSEFTX1BDSF9TUExJVChkZXYp ICYmIGNydGNfc3RhdGUtPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCiAJCQlzZHZveCB8PSBIRE1JX0NP TE9SX1JBTkdFXzE2XzIzNTsKLQkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNSkKKwkJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPCA1KQogCQkJc2R2b3ggfD0gU0RWT19CT1JERVJfRU5BQkxF OwogCX0gZWxzZSB7CiAJCXNkdm94ID0gSTkxNV9SRUFEKGludGVsX3Nkdm8tPnNkdm9fcmVnKTsK QEAgLTEyOTQsNyArMTI5NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fcHJlX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKIAlpZiAoaW50ZWxfc2R2by0+aGFz X2hkbWlfYXVkaW8pCiAJCXNkdm94IHw9IFNEVk9fQVVESU9fRU5BQkxFOwogCi0JaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuID49IDQpIHsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0KSB7 CiAJCS8qIGRvbmUgaW4gY3J0Y19tb2RlX3NldCBhcyB0aGUgZHBsbF9tZCByZWcgbXVzdCBiZSB3 cml0dGVuIGVhcmx5ICovCiAJfSBlbHNlIGlmIChJU19JOTQ1RyhkZXYpIHx8IElTX0k5NDVHTShk ZXYpIHx8IElTX0czMyhkZXYpKSB7CiAJCS8qIGRvbmUgaW4gY3J0Y19tb2RlX3NldCBhcyBpdCBs aXZlcyBpbnNpZGUgdGhlIGRwbGwgcmVnaXN0ZXIgKi8KQEAgLTEzMDQsNyArMTMwNCw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX3Nkdm9fcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50 ZWxfZW5jb2RlciwKIAl9CiAKIAlpZiAoaW5wdXRfZHRkLnBhcnQyLnNkdm9fZmxhZ3MgJiBTRFZP X05FRURfVE9fU1RBTEwgJiYKLQkgICAgSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA1KQorCSAgICBJ TlRFTF9HRU4oZGV2X3ByaXYpIDwgNSkKIAkJc2R2b3ggfD0gU0RWT19TVEFMTF9TRUxFQ1Q7CiAJ aW50ZWxfc2R2b193cml0ZV9zZHZveChpbnRlbF9zZHZvLCBzZHZveCk7CiB9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Nwcml0ZS5jCmluZGV4IDhkODFhNGM4ZTcxZC4uNDc1ZTkyYjRmYWM5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAtNzQ5LDcgKzc0OSw2IEBAIGludGVsX2No ZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSBzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUocGxhbmUtPmRldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBs YW5lLT5kZXY7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0YzsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJc3Ry dWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKQEAg LTc5Myw3ICs3OTIsNyBAQCBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAJfQogCiAJLyogc2V0dXAgY2FuX3NjYWxlLCBtaW5fc2NhbGUsIG1heF9zY2Fs ZSAqLwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7CisJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gOSkgewogCQkvKiB1c2Ugc2NhbGVyIHdoZW4gY29sb3JrZXkgaXMgbm90IHJl cXVpcmVkICovCiAJCWlmIChzdGF0ZS0+Y2tleS5mbGFncyA9PSBJOTE1X1NFVF9DT0xPUktFWV9O T05FKSB7CiAJCQljYW5fc2NhbGUgPSAxOwpAQCAtOTA5LDcgKzkwOCw3IEBAIGludGVsX2NoZWNr X3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAogCQl3aWR0aF9ieXRlcyA9 ICgoc3JjX3ggKiBjcHApICYgNjMpICsgc3JjX3cgKiBjcHA7CiAKLQkJaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuIDwgOSAmJiAoc3JjX3cgPiAyMDQ4IHx8IHNyY19oID4gMjA0OCB8fAorCQlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA8IDkgJiYgKHNyY193ID4gMjA0OCB8fCBzcmNfaCA+IDIwNDgg fHwKIAkJICAgIHdpZHRoX2J5dGVzID4gNDA5NiB8fCBmYi0+cGl0Y2hlc1swXSA+IDQwOTYpKSB7 CiAJCQlEUk1fREVCVUdfS01TKCJTb3VyY2UgZGltZW5zaW9ucyBleGNlZWQgaGFyZHdhcmUgbGlt aXRzXG4iKTsKIAkJCXJldHVybiAtRUlOVkFMOwpAQCAtMTAzOCw2ICsxMDM3LDcgQEAgc3RhdGlj IHVpbnQzMl90IHNrbF9wbGFuZV9mb3JtYXRzW10gPSB7CiBpbnQKIGludGVsX3BsYW5lX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKIHsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0 IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IE5VTEw7CiAJc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpzdGF0ZSA9IE5VTEw7CiAJdW5zaWduZWQgbG9uZyBwb3NzaWJsZV9jcnRjczsKQEAgLTEw NDUsNyArMTA0NSw3IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg ZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKIAlpbnQgbnVtX3BsYW5lX2Zvcm1hdHM7CiAJaW50 IHJldDsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDUpCisJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPCA1KQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCWludGVsX3BsYW5lID0ga3phbGxv YyhzaXplb2YoKmludGVsX3BsYW5lKSwgR0ZQX0tFUk5FTCk7CkBAIC0xMDYxLDcgKzEwNjEsNyBA QCBpbnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBl LCBpbnQgcGxhbmUpCiAJfQogCWludGVsX3BsYW5lLT5iYXNlLnN0YXRlID0gJnN0YXRlLT5iYXNl OwogCi0Jc3dpdGNoIChJTlRFTF9JTkZPKGRldiktPmdlbikgeworCXN3aXRjaCAoSU5URUxfR0VO KGRldl9wcml2KSkgewogCWNhc2UgNToKIAljYXNlIDY6CiAJCWludGVsX3BsYW5lLT5jYW5fc2Nh bGUgPSB0cnVlOwpAQCAtMTExMiw3ICsxMTEyLDcgQEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQogCQludW1fcGxhbmVf Zm9ybWF0cyA9IEFSUkFZX1NJWkUoc2tsX3BsYW5lX2Zvcm1hdHMpOwogCQlicmVhazsKIAlkZWZh dWx0OgotCQlNSVNTSU5HX0NBU0UoSU5URUxfSU5GTyhkZXYpLT5nZW4pOworCQlNSVNTSU5HX0NB U0UoSU5URUxfR0VOKGRldl9wcml2KSk7CiAJCXJldCA9IC1FTk9ERVY7CiAJCWdvdG8gZmFpbDsK IAl9CkBAIC0xMTI0LDcgKzExMjQsNyBAQCBpbnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUpCiAKIAlwb3NzaWJsZV9jcnRjcyA9 ICgxIDw8IHBpcGUpOwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCisJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOSkKIAkJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0 KGRldiwgJmludGVsX3BsYW5lLT5iYXNlLCBwb3NzaWJsZV9jcnRjcywKIAkJCQkJICAgICAgICZp bnRlbF9wbGFuZV9mdW5jcywKIAkJCQkJICAgICAgIHBsYW5lX2Zvcm1hdHMsIG51bV9wbGFuZV9m b3JtYXRzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKaW5kZXggZDk2MGU0ODY2NTk1Li4yOTU4ODBi NDAxZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwpAQCAtMTEwNiw3ICsxMTA2LDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfdHZfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAogCXNldF9jb2xvcl9jb252ZXJzaW9uKGRldl9wcml2LCBjb2xvcl9jb252ZXJzaW9uKTsK IAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA0KQorCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDQpCiAJCUk5MTVfV1JJVEUoVFZfQ0xSX0tOT0JTLCAweDAwNDA0MDAwKTsKIAllbHNl CiAJCUk5MTVfV1JJVEUoVFZfQ0xSX0tOT0JTLCAweDAwNjA2MDAwKTsKLS0gCjIuOS4zCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK