From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH v2] drm/i915/glk: Reuse broxton code for geminilake Date: Fri, 11 Nov 2016 15:52:31 +0200 Message-ID: <1478872351-7946-1-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <20161110170843.GC20940@rdvivi-vienna> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id F40666E900 for ; Fri, 11 Nov 2016 13:52:39 +0000 (UTC) In-Reply-To: <20161110170843.GC20940@rdvivi-vienna> 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, rodrigo.vivi@gmail.com Cc: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org R2VtaW5pbGFrZSBpcyBtb3N0bHkgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBicm94dG9uLCBz byBjaGFuZ2UgbW9zdApvZiB0aGUgSVNfQlJPWFRPTigpIGNoZWNrcyB0byBJU19HRU45X0xQKCku IERpZmZlcmVuY2VzIGJldHdlZW4gdGhlCnBsYXRmb3JtcyB3aWxsIGJlIGltcGxlbWVudGVkIGlu IGZvbGxvdy11cCBwYXRjaGVzLgoKdjI6IERvbid0IHJldXNlIGJyb3h0b24ncyBwYXRoIGluIGlu dGVsX3VwZGF0ZV9tYXhfY2RjbGsoKS4KICAgIERvbid0IHNldCBwbGFuZSBjb3VudCBhcyBpbiBi cm94dG9uLgoKdjM6IFJlYmFzZQoKdjQ6IEluY2x1ZGUgdGhlIGNoZWNrIGludGVsX2Jpb3NfaXNf cG9ydF9ocGRfaW52ZXJ0ZWQoKS4KICAgIENvbW1pdCBtZXNzYWdlLgoKdjU6IExlYXZlIGk5MTVf ZG1jX2luZm8oKSBvdXQ7IGdsaydzIGNzciB2ZXJzaW9uICE9IGJ4dCdzLiAoUm9kcmlnbykKClNp Z25lZC1vZmYtYnk6IEFuZGVyIENvbnNlbHZhbiBkZSBPbGl2ZWlyYSA8YW5kZXIuY29uc2VsdmFu LmRlLm9saXZlaXJhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYyAgICAgfCAxMCArKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYyAgICAgfCAgOCArKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu YyAgICAgICAgIHwgMTAgKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICAgICB8IDEw ICsrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8ICA4 ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgICAgfCAyMCAr KysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3Iu YyAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAgICAgICB8IDI4 ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RzaV9wbGwuYyAgICB8IDEyICsrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRtaS5jICAgICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9p MmMuYyAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMg ICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyAgICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICB8ICA2ICsrKy0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgIDYgKysrLS0tCiAx NyBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGI2ODFkNDIuLjVkMzQ5ZDYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xMTI4LDcgKzExMjgsNyBAQCBzdGF0aWMgaW50 IGk5MTVfZnJlcXVlbmN5X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJ CWludCBtYXhfZnJlcTsKIAogCQlycF9zdGF0ZV9saW1pdHMgPSBJOTE1X1JFQUQoR0VONl9SUF9T VEFURV9MSU1JVFMpOwotCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwkJaWYgKElTX0dF TjlfTFAoZGV2X3ByaXYpKSB7CiAJCQlycF9zdGF0ZV9jYXAgPSBJOTE1X1JFQUQoQlhUX1JQX1NU QVRFX0NBUCk7CiAJCQlndF9wZXJmX3N0YXR1cyA9IEk5MTVfUkVBRChCWFRfR1RfUEVSRl9TVEFU VVMpOwogCQl9IGVsc2UgewpAQCAtMTIyNCw3ICsxMjI0LDcgQEAgc3RhdGljIGludCBpOTE1X2Zy ZXF1ZW5jeV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQlzZXFfcHJp bnRmKG0sICJEb3duIHRocmVzaG9sZDogJWQlJVxuIiwKIAkJCSAgIGRldl9wcml2LT5ycHMuZG93 bl90aHJlc2hvbGQpOwogCi0JCW1heF9mcmVxID0gKElTX0JST1hUT04oZGV2X3ByaXYpID8gcnBf c3RhdGVfY2FwID4+IDAgOgorCQltYXhfZnJlcSA9IChJU19HRU45X0xQKGRldl9wcml2KSA/IHJw X3N0YXRlX2NhcCA+PiAwIDoKIAkJCSAgICBycF9zdGF0ZV9jYXAgPj4gMTYpICYgMHhmZjsKIAkJ bWF4X2ZyZXEgKj0gKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2 KSA/CiAJCQkgICAgIEdFTjlfRlJFUV9TQ0FMRVIgOiAxKTsKQEAgLTEyMzcsNyArMTIzNyw3IEBA IHN0YXRpYyBpbnQgaTkxNV9mcmVxdWVuY3lfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KnVudXNlZCkKIAkJc2VxX3ByaW50ZihtLCAiTm9taW5hbCAoUlAxKSBmcmVxdWVuY3k6ICVkTUh6 XG4iLAogCQkJICAgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIG1heF9mcmVxKSk7CiAKLQkJbWF4 X2ZyZXEgPSAoSVNfQlJPWFRPTihkZXZfcHJpdikgPyBycF9zdGF0ZV9jYXAgPj4gMTYgOgorCQlt YXhfZnJlcSA9IChJU19HRU45X0xQKGRldl9wcml2KSA/IHJwX3N0YXRlX2NhcCA+PiAxNiA6CiAJ CQkgICAgcnBfc3RhdGVfY2FwID4+IDApICYgMHhmZjsKIAkJbWF4X2ZyZXEgKj0gKElTX1NLWUxB S0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSA/CiAJCQkgICAgIEdFTjlfRlJF UV9TQ0FMRVIgOiAxKTsKQEAgLTUxODUsNyArNTE4NSw3IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3Nl dV9kZXZpY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl1MzIg c19yZWdbc19tYXhdLCBldV9yZWdbMipzX21heF0sIGV1X21hc2tbMl07CiAKIAkvKiBCWFQgaGFz IGEgc2luZ2xlIHNsaWNlIGFuZCBhdCBtb3N0IDMgc3Vic2xpY2VzLiAqLwotCWlmIChJU19CUk9Y VE9OKGRldl9wcml2KSkgeworCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewogCQlzX21heCA9 IDE7CiAJCXNzX21heCA9IDM7CiAJfQpAQCAtNTIxOSw3ICs1MjE5LDcgQEAgc3RhdGljIHZvaWQg Z2VuOV9zc2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQlmb3IgKHNzID0gMDsgc3MgPCBzc19tYXg7IHNzKyspIHsKIAkJCXVuc2lnbmVkIGludCBl dV9jbnQ7CiAKLQkJCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgeworCQkJaWYgKElTX0dFTjlf TFAoZGV2X3ByaXYpKSB7CiAJCQkJaWYgKCEoc19yZWdbc10gJiAoR0VOOV9QR0NUTF9TU19BQ0so c3MpKSkpCiAJCQkJCS8qIHNraXAgZGlzYWJsZWQgc3Vic2xpY2UgKi8KIAkJCQkJY29udGludWU7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGE1ZmFmYTMuLjM2NDgzYTIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0zNzcsNyArMzc3LDcgQEAgc3RhdGlj IHZvaWQga3VubWFwX3BhZ2VfZG1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg dm9pZCAqdmFkZHIpCiAJLyogVGhlcmUgYXJlIG9ubHkgZmV3IGV4Y2VwdGlvbnMgZm9yIGdlbiA+ PTYuIGNodiBhbmQgYnh0LgogCSAqIEFuZCB3ZSBhcmUgbm90IHN1cmUgYWJvdXQgdGhlIGxhdHRl ciBzbyBwbGF5IHNhZmUgZm9yIG5vdy4KIAkgKi8KLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikgfHwgSVNfQlJPWFRPTihkZXZfcHJpdikpCisJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYp IHx8IElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlkcm1fY2xmbHVzaF92aXJ0X3JhbmdlKHZhZGRy LCBQQUdFX1NJWkUpOwogCiAJa3VubWFwX2F0b21pYyh2YWRkcik7CkBAIC0yOTQ2LDcgKzI5NDYs NyBAQCBzdGF0aWMgaW50IGdndHRfcHJvYmVfY29tbW9uKHN0cnVjdCBpOTE1X2dndHQgKmdndHQs IHU2NCBzaXplKQogCSAqIHJlc29ydCB0byBhbiB1bmNhY2hlZCBtYXBwaW5nLiBUaGUgV0MgaXNz dWUgaXMgZWFzaWx5IGNhdWdodCBieSB0aGUKIAkgKiByZWFkYmFjayBjaGVjayB3aGVuIHdyaXRp bmcgR1RUIFBURSBlbnRyaWVzLgogCSAqLwotCWlmIChJU19CUk9YVE9OKHRvX2k5MTUoZ2d0dC0+ YmFzZS5kZXYpKSkKKwlpZiAoSVNfR0VOOV9MUCh0b19pOTE1KGdndHQtPmJhc2UuZGV2KSkpCiAJ CWdndHQtPmdzbSA9IGlvcmVtYXBfbm9jYWNoZShwaHlzX2FkZHIsIHNpemUpOwogCWVsc2UKIAkJ Z2d0dC0+Z3NtID0gaW9yZW1hcF93YyhwaHlzX2FkZHIsIHNpemUpOwpAQCAtMzA3OCw3ICszMDc4 LDcgQEAgc3RhdGljIGludCBnZW44X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkK IAogCWdndHQtPmJhc2UudG90YWwgPSAoc2l6ZSAvIHNpemVvZihnZW44X3B0ZV90KSkgPDwgUEFH RV9TSElGVDsKIAotCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSB8fCBJU19CUk9YVE9OKGRl dl9wcml2KSkKKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgfHwgSVNfR0VOOV9MUChkZXZf cHJpdikpCiAJCWNodl9zZXR1cF9wcml2YXRlX3BwYXQoZGV2X3ByaXYpOwogCWVsc2UKIAkJYmR3 X3NldHVwX3ByaXZhdGVfcHBhdChkZXZfcHJpdik7CkBAIC0zMzE5LDcgKzMzMTksNyBAQCB2b2lk IGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ Z2d0dC0+YmFzZS5jbG9zZWQgPSBmYWxzZTsKIAogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+ PSA4KSB7Ci0JCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSB8fCBJU19CUk9YVE9OKGRldl9w cml2KSkKKwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpIHx8IElTX0dFTjlfTFAoZGV2X3By aXYpKQogCQkJY2h2X3NldHVwX3ByaXZhdGVfcHBhdChkZXZfcHJpdik7CiAJCWVsc2UKIAkJCWJk d19zZXR1cF9wcml2YXRlX3BwYXQoZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5k ZXggNmQ3NTA1Yi4uMDgxYjNiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0yNDM1LDcg KzI0MzUsNyBAQCBnZW44X2RlX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgdTMyIG1hc3Rlcl9jdGwpCiAJCQkJZm91bmQgPSB0cnVlOwogCQkJfQogCi0JCQlp ZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwkJCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkg ewogCQkJCXRtcF9tYXNrID0gaWlyICYgQlhUX0RFX1BPUlRfSE9UUExVR19NQVNLOwogCQkJCWlm ICh0bXBfbWFzaykgewogCQkJCQlieHRfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCB0bXBfbWFz aywKQEAgLTI0NTEsNyArMjQ1MSw3IEBAIGdlbjhfZGVfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzdGVyX2N0bCkKIAkJCQl9CiAJCQl9CiAKLQkJ CWlmIChJU19CUk9YVE9OKGRldl9wcml2KSAmJiAoaWlyICYgQlhUX0RFX1BPUlRfR01CVVMpKSB7 CisJCQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikgJiYgKGlpciAmIEJYVF9ERV9QT1JUX0dNQlVT KSkgewogCQkJCWdtYnVzX2lycV9oYW5kbGVyKGRldl9wcml2KTsKIAkJCQlmb3VuZCA9IHRydWU7 CiAJCQl9CkBAIC0zMzc5LDcgKzMzNzksNyBAQCBzdGF0aWMgdm9pZCBnZW44X2RlX2lycV9wb3N0 aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQkJICBHRU45X0RF X1BJUEVfSVJRX0ZBVUxUX0VSUk9SUzsKIAkJZGVfcG9ydF9tYXNrZWQgfD0gR0VOOV9BVVhfQ0hB Tk5FTF9CIHwgR0VOOV9BVVhfQ0hBTk5FTF9DIHwKIAkJCQkgIEdFTjlfQVVYX0NIQU5ORUxfRDsK LQkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikp CiAJCQlkZV9wb3J0X21hc2tlZCB8PSBCWFRfREVfUE9SVF9HTUJVUzsKIAl9IGVsc2UgewogCQlk ZV9waXBlX21hc2tlZCB8PSBHRU44X1BJUEVfUFJJTUFSWV9GTElQX0RPTkUgfApAQCAtMzM5MCw3 ICszMzkwLDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9kZV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJCQkgICBHRU44X1BJUEVfRklGT19VTkRFUlJV TjsKIAogCWRlX3BvcnRfZW5hYmxlcyA9IGRlX3BvcnRfbWFza2VkOwotCWlmIChJU19CUk9YVE9O KGRldl9wcml2KSkKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCWRlX3BvcnRfZW5hYmxl cyB8PSBCWFRfREVfUE9SVF9IT1RQTFVHX01BU0s7CiAJZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRl dl9wcml2KSkKIAkJZGVfcG9ydF9lbmFibGVzIHw9IEdFTjhfUE9SVF9EUF9BX0hPVFBMVUc7CkBA IC00MjE1LDcgKzQyMTUsNyBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAkJZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSBnZW44X2ly cV91bmluc3RhbGw7CiAJCWRldi0+ZHJpdmVyLT5lbmFibGVfdmJsYW5rID0gZ2VuOF9lbmFibGVf dmJsYW5rOwogCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBnZW44X2Rpc2FibGVfdmJs YW5rOwotCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJCWlmIChJU19HRU45X0xQKGRldl9w cml2KSkKIAkJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBieHRfaHBkX2lycV9z ZXR1cDsKIAkJZWxzZSBpZiAoSEFTX1BDSF9TUFQoZGV2X3ByaXYpIHx8IEhBU19QQ0hfS0JQKGRl dl9wcml2KSkKIAkJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBzcHRfaHBkX2ly cV9zZXR1cDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDMzNjFkN2YuLjFiZTJhN2QgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtMjkyMCw3ICsyOTIwLDcgQEAgZW51bSBza2xfZGlz cF9wb3dlcl93ZWxscyB7CiAjZGVmaW5lIElOVEVSVkFMXzFfMzNfVVModXMpCSgoKHVzKSAqIDMp ICAgPj4gMikKICNkZWZpbmUgSU5URVJWQUxfMF84MzNfVVModXMpCSgoKHVzKSAqIDYpIC8gNSkK ICNkZWZpbmUgR1RfSU5URVJWQUxfRlJPTV9VUyhkZXZfcHJpdiwgdXMpIChJU19HRU45KGRldl9w cml2KSA/IFwKLQkJCQkoSVNfQlJPWFRPTihkZXZfcHJpdikgPyBcCisJCQkJKElTX0dFTjlfTFAo ZGV2X3ByaXYpID8gXAogCQkJCUlOVEVSVkFMXzBfODMzX1VTKHVzKSA6IFwKIAkJCQlJTlRFUlZB TF8xXzMzX1VTKHVzKSkgOiBcCiAJCQkJSU5URVJWQUxfMV8yOF9VUyh1cykpCkBAIC0yOTI5LDcg KzI5MjksNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUgSU5URVJWQUxf MV8zM19UT19VUyhpbnRlcnZhbCkgICgoKGludGVydmFsKSA8PCAyKSAvIDMpCiAjZGVmaW5lIElO VEVSVkFMXzBfODMzX1RPX1VTKGludGVydmFsKSAoKChpbnRlcnZhbCkgKiA1KSAgLyA2KQogI2Rl ZmluZSBHVF9QTV9JTlRFUlZBTF9UT19VUyhkZXZfcHJpdiwgaW50ZXJ2YWwpIChJU19HRU45KGRl dl9wcml2KSA/IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChJU19CUk9YVE9OKGRldl9w cml2KSA/IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChJU19HRU45X0xQKGRldl9wcml2 KSA/IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVEVSVkFMXzBfODMzX1RPX1VTKGlu dGVydmFsKSA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVEVSVkFMXzFfMzNfVE9f VVMoaW50ZXJ2YWwpKSA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVEVSVkFMXzFf MjhfVE9fVVMoaW50ZXJ2YWwpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jCmluZGV4IDVhYjY0 NmUuLmJkNzA1ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3Mu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKQEAgLTE3NjUsNyArMTc2 NSw3IEBAIGludGVsX2Jpb3NfaXNfcG9ydF9ocGRfaW52ZXJ0ZWQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogewogCWludCBpOwogCi0JaWYgKFdBUk5fT05fT05DRSghSVNfQlJP WFRPTihkZXZfcHJpdikpKQorCWlmIChXQVJOX09OX09OQ0UoIUlTX0dFTjlfTFAoZGV2X3ByaXYp KSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT52YnQuY2hp bGRfZGV2X251bTsgaSsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IDBhZDRlMTYu LmExMjlmZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC00NDIsNyArNDQyLDcgQEAg c3RhdGljIGludCBpbnRlbF9kZGlfaGRtaV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGVudW0gcG9ydCBwb3IKIAogCWhkbWlfbGV2ZWwgPSBkZXZfcHJpdi0+dmJ0LmRk aV9wb3J0X2luZm9bcG9ydF0uaGRtaV9sZXZlbF9zaGlmdDsKIAotCWlmIChJU19CUk9YVE9OKGRl dl9wcml2KSkKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCXJldHVybiBoZG1pX2xldmVs OwogCiAJaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkg ewpAQCAtMTA5MSw3ICsxMDkxLDcgQEAgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQloc3dfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBl X2NvbmZpZyk7CiAJZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0Uo ZGV2X3ByaXYpKQogCQlza2xfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Ci0J ZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZf cHJpdikpCiAJCWJ4dF9kZGlfY2xvY2tfZ2V0KGVuY29kZXIsIHBpcGVfY29uZmlnKTsKIH0KIApA QCAtMTE1Myw3ICsxMTUzLDcgQEAgYm9vbCBpbnRlbF9kZGlfcGxsX3NlbGVjdChzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FC WUxBS0UoZGV2X3ByaXYpKQogCQlyZXR1cm4gc2tsX2RkaV9wbGxfc2VsZWN0KGludGVsX2NydGMs IGNydGNfc3RhdGUsCiAJCQkJCSAgaW50ZWxfZW5jb2Rlcik7Ci0JZWxzZSBpZiAoSVNfQlJPWFRP TihkZXZfcHJpdikpCisJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCXJldHVybiBi eHRfZGRpX3BsbF9zZWxlY3QoaW50ZWxfY3J0YywgY3J0Y19zdGF0ZSwKIAkJCQkJICBpbnRlbF9l bmNvZGVyKTsKIAllbHNlCkBAIC0xNjQzLDcgKzE2NDMsNyBAQCB1aW50MzJfdCBkZGlfc2lnbmFs X2xldmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCiAJaWYgKElTX1NLWUxBS0UoZGV2 X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKIAkJc2tsX2RkaV9zZXRfaWJvb3N0KGVu Y29kZXIsIGxldmVsKTsKLQllbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKKwllbHNlIGlm IChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJYnh0X2RkaV92c3dpbmdfc2VxdWVuY2UoZGV2X3By aXYsIGxldmVsLCBwb3J0LCBlbmNvZGVyLT50eXBlKTsKIAogCXJldHVybiBERElfQlVGX1RSQU5T X1NFTEVDVChsZXZlbCk7CkBAIC0yMjQ2LDcgKzIyNDYsNyBAQCB2b2lkIGludGVsX2RkaV9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0KQogCSAqIGNvbmZpZ3VyYXRp b24gc28gdGhhdCB3ZSB1c2UgdGhlIHByb3BlciBsYW5lIGNvdW50IGZvciBvdXIKIAkgKiBjYWxj dWxhdGlvbnMuCiAJICovCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpICYmIHBvcnQgPT0gUE9S VF9BKSB7CisJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7CiAJ CWlmICghKGludGVsX2RpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgJiBERElfQV80X0xBTkVTKSkg ewogCQkJRFJNX0RFQlVHX0tNUygiQlhUIEJJT1MgZm9yZ290IHRvIHNldCBERElfQV80X0xBTkVT IGZvciBwb3J0IEE7IGZpeGluZ1xuIik7CiAJCQlpbnRlbF9kaWdfcG9ydC0+c2F2ZWRfcG9ydF9i aXRzIHw9IERESV9BXzRfTEFORVM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5k ZXggMDFkYmYxYi4uNzIzZmY5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpA QCAtNjE0LDEyICs2MTQsMTIgQEAgc3RhdGljIGJvb2wgaW50ZWxfUExMX2lzX3ZhbGlkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJSU5URUxQbGxJbnZhbGlkKCJtMSBvdXQg b2YgcmFuZ2VcbiIpOwogCiAJaWYgKCFJU19QSU5FVklFVyhkZXZfcHJpdikgJiYgIUlTX1ZBTExF WVZJRVcoZGV2X3ByaXYpICYmCi0JICAgICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJiAhSVNf QlJPWFRPTihkZXZfcHJpdikpCisJICAgICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJiAhSVNf R0VOOV9MUChkZXZfcHJpdikpCiAJCWlmIChjbG9jay0+bTEgPD0gY2xvY2stPm0yKQogCQkJSU5U RUxQbGxJbnZhbGlkKCJtMSA8PSBtMlxuIik7CiAKIAlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2X3By aXYpICYmICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJgotCSAgICAhSVNfQlJPWFRPTihkZXZf cHJpdikpIHsKKwkgICAgIUlTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCWlmIChjbG9jay0+cCA8 IGxpbWl0LT5wLm1pbiB8fCBsaW1pdC0+cC5tYXggPCBjbG9jay0+cCkKIAkJCUlOVEVMUGxsSW52 YWxpZCgicCBvdXQgb2YgcmFuZ2VcbiIpOwogCQlpZiAoY2xvY2stPm0gPCBsaW1pdC0+bS5taW4g fHwgbGltaXQtPm0ubWF4IDwgY2xvY2stPm0pCkBAIC0xMDY3NSw3ICsxMDY3NSw3IEBAIHN0YXRp YyB2b2lkIGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAogCiAJaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkK IAkJc2t5bGFrZV9nZXRfZGRpX3BsbChkZXZfcHJpdiwgcG9ydCwgcGlwZV9jb25maWcpOwotCWVs c2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3By aXYpKQogCQlieHRfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVfY29uZmlnKTsKIAll bHNlCiAJCWhhc3dlbGxfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVfY29uZmlnKTsK QEAgLTEwNzIxLDcgKzEwNzIxLDcgQEAgc3RhdGljIGJvb2wgaGFzd2VsbF9nZXRfcGlwZV9jb25m aWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIAlhY3RpdmUgPSBoc3dfZ2V0X3RyYW5zY29k ZXJfc3RhdGUoY3J0YywgcGlwZV9jb25maWcsICZwb3dlcl9kb21haW5fbWFzayk7CiAKLQlpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikgJiYKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikgJiYKIAkg ICAgYnh0X2dldF9kc2lfdHJhbnNjb2Rlcl9zdGF0ZShjcnRjLCBwaXBlX2NvbmZpZywgJnBvd2Vy X2RvbWFpbl9tYXNrKSkgewogCQlXQVJOX09OKGFjdGl2ZSk7CiAJCWFjdGl2ZSA9IHRydWU7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCAxMTdhNzE0Li42NzVlMTAzIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKQEAgLTIzMyw3ICsyMzMsNyBAQCBpbnRlbF9kcF9zb3VyY2VfcmF0ZXMoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwgY29uc3QgaW50ICoqc291cmNlX3JhdGVzKQogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFz ZS5kZXYpOwogCWludCBzaXplOwogCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CisJaWYg KElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCSpzb3VyY2VfcmF0ZXMgPSBieHRfcmF0ZXM7CiAJ CXNpemUgPSBBUlJBWV9TSVpFKGJ4dF9yYXRlcyk7CiAJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRl dl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKQEAgLTY4OCw3ICs2ODgsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9wcHNfZ2V0X3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAKIAltZW1zZXQocmVncywgMCwgc2l6ZW9mKCpyZWdzKSk7CiAKLQlpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikpCisJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlwcHNf aWR4ID0gYnh0X3Bvd2VyX3NlcXVlbmNlcl9pZHgoaW50ZWxfZHApOwogCWVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQlwcHNfaWR4 ID0gdmx2X3Bvd2VyX3NlcXVlbmNlcl9waXBlKGludGVsX2RwKTsKQEAgLTY5Nyw3ICs2OTcsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9wcHNfZ2V0X3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJcmVncy0+cHBfc3RhdCA9IFBQX1NUQVRVUyhwcHNfaWR4KTsKIAly ZWdzLT5wcF9vbiA9IFBQX09OX0RFTEFZUyhwcHNfaWR4KTsKIAlyZWdzLT5wcF9vZmYgPSBQUF9P RkZfREVMQVlTKHBwc19pZHgpOwotCWlmICghSVNfQlJPWFRPTihkZXZfcHJpdikpCisJaWYgKCFJ U19HRU45X0xQKGRldl9wcml2KSkKIAkJcmVncy0+cHBfZGl2ID0gUFBfRElWSVNPUihwcHNfaWR4 KTsKIH0KIApAQCAtMjk4NCw3ICsyOTg0LDcgQEAgaW50ZWxfZHBfdm9sdGFnZV9tYXgoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7CiAJZW51bSBwb3J0IHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9k cCktPnBvcnQ7CiAKLQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJaWYgKElTX0dFTjlfTFAo ZGV2X3ByaXYpKQogCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwogCWVs c2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKIAkJaWYgKGRldl9wcml2LT52YnQu ZWRwLmxvd192c3dpbmcgJiYgcG9ydCA9PSBQT1JUX0EpCkBAIC00MzAwLDcgKzQzMDAsNyBAQCBz dGF0aWMgYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuIGlieF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRl dl9wcml2LCBwb3J0KTsKIAllbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkKIAkJcmV0 dXJuIGNwdF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRldl9wcml2LCBwb3J0KTsKLQllbHNlIGlm IChJU19CUk9YVE9OKGRldl9wcml2KSkKKwllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkK IAkJcmV0dXJuIGJ4dF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRldl9wcml2LCBwb3J0KTsKIAll bHNlIGlmIChJU19HTTQ1KGRldl9wcml2KSkKIAkJcmV0dXJuIGdtNDVfZGlnaXRhbF9wb3J0X2Nv bm5lY3RlZChkZXZfcHJpdiwgcG9ydCk7CkBAIC00OTMyLDcgKzQ5MzIsNyBAQCBpbnRlbF9wcHNf cmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlw cF9vbiA9IEk5MTVfUkVBRChyZWdzLnBwX29uKTsKIAlwcF9vZmYgPSBJOTE1X1JFQUQocmVncy5w cF9vZmYpOwotCWlmICghSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwlpZiAoIUlTX0dFTjlfTFAo ZGV2X3ByaXYpKSB7CiAJCUk5MTVfV1JJVEUocmVncy5wcF9jdHJsLCBwcF9jdGwpOwogCQlwcF9k aXYgPSBJOTE1X1JFQUQocmVncy5wcF9kaXYpOwogCX0KQEAgLTQ5NTAsNyArNDk1MCw3IEBAIGlu dGVsX3Bwc19yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlzZXEtPnQxMCA9IChwcF9vZmYgJiBQQU5FTF9QT1dFUl9ET1dOX0RFTEFZX01BU0spID4+ CiAJCSAgIFBBTkVMX1BPV0VSX0RPV05fREVMQVlfU0hJRlQ7CiAKLQlpZiAoSVNfQlJPWFRPTihk ZXZfcHJpdikpIHsKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKIAkJdTE2IHRtcCA9IChw cF9jdGwgJiBCWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFTSykgPj4KIAkJCUJYVF9QT1dFUl9DWUNM RV9ERUxBWV9TSElGVDsKIAkJaWYgKHRtcCA+IDApCkBAIC01MDgxLDcgKzUwODEsNyBAQCBpbnRl bF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJIChzZXEtPnQxMCA8PCBQQU5FTF9QT1dFUl9ET1dOX0RFTEFZX1NISUZUKTsK IAkvKiBDb21wdXRlIHRoZSBkaXZpc29yIGZvciB0aGUgcHAgY2xvY2ssIHNpbXBseSBtYXRjaCB0 aGUgQnNwZWMKIAkgKiBmb3JtdWxhLiAqLwotCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewor CWlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewogCQlwcF9kaXYgPSBJOTE1X1JFQUQocmVncy5w cF9jdHJsKTsKIAkJcHBfZGl2ICY9IH5CWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFTSzsKIAkJcHBf ZGl2IHw9IChESVZfUk9VTkRfVVAoKHNlcS0+dDExX3QxMiArIDEpLCAxMDAwKQpAQCAtNTEwNyw3 ICs1MTA3LDcgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlJOTE1X1dSSVRFKHJlZ3MucHBfb24sIHBwX29u KTsKIAlJOTE1X1dSSVRFKHJlZ3MucHBfb2ZmLCBwcF9vZmYpOwotCWlmIChJU19CUk9YVE9OKGRl dl9wcml2KSkKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCUk5MTVfV1JJVEUocmVncy5w cF9jdHJsLCBwcF9kaXYpOwogCWVsc2UKIAkJSTkxNV9XUklURShyZWdzLnBwX2RpdiwgcHBfZGl2 KTsKQEAgLTUxMTUsNyArNTExNSw3IEBAIGludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVu Y2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCURSTV9ERUJVR19LTVMoInBh bmVsIHBvd2VyIHNlcXVlbmNlciByZWdpc3RlciBzZXR0aW5nczogUFBfT04gJSN4LCBQUF9PRkYg JSN4LCBQUF9ESVYgJSN4XG4iLAogCQkgICAgICBJOTE1X1JFQUQocmVncy5wcF9vbiksCiAJCSAg ICAgIEk5MTVfUkVBRChyZWdzLnBwX29mZiksCi0JCSAgICAgIElTX0JST1hUT04oZGV2X3ByaXYp ID8KKwkJICAgICAgSVNfR0VOOV9MUChkZXZfcHJpdikgPwogCQkgICAgICAoSTkxNV9SRUFEKHJl Z3MucHBfY3RybCkgJiBCWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFTSykgOgogCQkgICAgICBJOTE1 X1JFQUQocmVncy5wcF9kaXYpKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5j CmluZGV4IDIxODUzYTEuLjgyMDVjMWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwbGxfbWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYwpAQCAtMTg2MSw3ICsxODYxLDcgQEAgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNf S0FCWUxBS0UoZGV2X3ByaXYpKQogCQlkcGxsX21nciA9ICZza2xfcGxsX21ncjsKLQllbHNlIGlm IChJU19CUk9YVE9OKGRldl9wcml2KSkKKwllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkK IAkJZHBsbF9tZ3IgPSAmYnh0X3BsbF9tZ3I7CiAJZWxzZSBpZiAoSEFTX0RESShkZXZfcHJpdikp CiAJCWRwbGxfbWdyID0gJmhzd19wbGxfbWdyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwppbmRl eCA0ZTBkMDI1Li40ZTE5ZmJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwpAQCAtMzQwLDcg KzM0MCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RzaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkvKiBEU0kgdXNlcyBzaG9ydCBwYWNrZXRzIGZvciBzeW5j IGV2ZW50cywgc28gY2xlYXIgbW9kZSBmbGFncyBmb3IgRFNJICovCiAJYWRqdXN0ZWRfbW9kZS0+ ZmxhZ3MgPSAwOwogCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CisJaWYgKElTX0dFTjlf TFAoZGV2X3ByaXYpKSB7CiAJCS8qIER1YWwgbGluayBnb2VzIHRvIERTSSB0cmFuc2NvZGVyIEEu ICovCiAJCWlmIChpbnRlbF9kc2ktPnBvcnRzID09IEJJVChQT1JUX0MpKQogCQkJcGlwZV9jb25m aWctPmNwdV90cmFuc2NvZGVyID0gVFJBTlNDT0RFUl9EU0lfQzsKQEAgLTQ0MSw3ICs0NDEsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQogCiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKQogCQl2bHZfZHNpX2RldmljZV9yZWFkeShlbmNvZGVyKTsKLQllbHNlIGlm IChJU19CUk9YVE9OKGRldl9wcml2KSkKKwllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkK IAkJYnh0X2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7CiB9CiAKQEAgLTQ2NCw3ICs0NjQsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcG9ydF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpCiAJfQogCiAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0 cykgewotCQlpOTE1X3JlZ190IHBvcnRfY3RybCA9IElTX0JST1hUT04oZGV2X3ByaXYpID8KKwkJ aTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJU19HRU45X0xQKGRldl9wcml2KSA/CiAJCQlCWFRfTUlQ SV9QT1JUX0NUUkwocG9ydCkgOiBNSVBJX1BPUlRfQ1RSTChwb3J0KTsKIAkJdTMyIHRlbXA7CiAK QEAgLTQ5NCw3ICs0OTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcG9ydF9kaXNhYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCWVudW0gcG9ydCBwb3J0OwogCiAJZm9yX2Vh Y2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQlpOTE1X3JlZ190IHBvcnRf Y3RybCA9IElTX0JST1hUT04oZGV2X3ByaXYpID8KKwkJaTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJ U19HRU45X0xQKGRldl9wcml2KSA/CiAJCQlCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCkgOiBNSVBJ X1BPUlRfQ1RSTChwb3J0KTsKIAkJdTMyIHRlbXA7CiAKQEAgLTY2Myw3ICs2NjMsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kc2lfY2xlYXJfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQogCURSTV9ERUJVR19LTVMoIlxuIik7CiAJZm9yX2VhY2hfZHNpX3BvcnQocG9y dCwgaW50ZWxfZHNpLT5wb3J0cykgewogCQkvKiBDb21tb24gYml0IGZvciBib3RoIE1JUEkgUG9y dCBBICYgTUlQSSBQb3J0IEMgb24gVkxWL0NIViAqLwotCQlpOTE1X3JlZ190IHBvcnRfY3RybCA9 IElTX0JST1hUT04oZGV2X3ByaXYpID8KKwkJaTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJU19HRU45 X0xQKGRldl9wcml2KSA/CiAJCQlCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCkgOiBNSVBJX1BPUlRf Q1RSTChQT1JUX0EpOwogCQl1MzIgdmFsOwogCkBAIC03NTUsMTIgKzc1NSwxMiBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9kc2lfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCSAqIGNvbmZpZ3VyYXRpb24sIG90aGVyd2lzZSBhY2Nlc3NpbmcgRFNJIHJlZ2lzdGVycyB3 aWxsIGhhbmcgdGhlCiAJICogbWFjaGluZS4gU2VlIEJTcGVjIE5vcnRoIERpc3BsYXkgRW5naW5l IHJlZ2lzdGVycy9NSVBJW0JYVF0uCiAJICovCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpICYm ICFpbnRlbF9kc2lfcGxsX2lzX2VuYWJsZWQoZGV2X3ByaXYpKQorCWlmIChJU19HRU45X0xQKGRl dl9wcml2KSAmJiAhaW50ZWxfZHNpX3BsbF9pc19lbmFibGVkKGRldl9wcml2KSkKIAkJZ290byBv dXRfcHV0X3Bvd2VyOwogCiAJLyogWFhYOiB0aGlzIG9ubHkgd29ya3MgZm9yIG9uZSBEU0kgb3V0 cHV0ICovCiAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQlp OTE1X3JlZ190IGN0cmxfcmVnID0gSVNfQlJPWFRPTihkZXZfcHJpdikgPworCQlpOTE1X3JlZ190 IGN0cmxfcmVnID0gSVNfR0VOOV9MUChkZXZfcHJpdikgPwogCQkJQlhUX01JUElfUE9SVF9DVFJM KHBvcnQpIDogTUlQSV9QT1JUX0NUUkwocG9ydCk7CiAJCWJvb2wgZW5hYmxlZCA9IEk5MTVfUkVB RChjdHJsX3JlZykgJiBEUElfRU5BQkxFOwogCkBAIC03ODUsNyArNzg1LDcgQEAgc3RhdGljIGJv b2wgaW50ZWxfZHNpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJaWYgKCEoSTkxNV9SRUFEKE1JUElfREVWSUNFX1JFQURZKHBvcnQpKSAmIERFVklDRV9SRUFE WSkpCiAJCQljb250aW51ZTsKIAotCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwkJaWYg KElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCQl1MzIgdG1wID0gSTkxNV9SRUFEKE1JUElfQ1RS TChwb3J0KSk7CiAJCQl0bXAgJj0gQlhUX1BJUEVfU0VMRUNUX01BU0s7CiAJCQl0bXAgPj49IEJY VF9QSVBFX1NFTEVDVF9TSElGVDsKQEAgLTk3Myw3ICs5NzMsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kc2lfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl1MzIgcGNs azsKIAlEUk1fREVCVUdfS01TKCJcbiIpOwogCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQor CWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJYnh0X2RzaV9nZXRfcGlwZV9jb25maWcoZW5j b2RlciwgcGlwZV9jb25maWcpOwogCiAJcGNsayA9IGludGVsX2RzaV9nZXRfcGNsayhlbmNvZGVy LCBwaXBlX2NvbmZpZy0+cGlwZV9icHAsCkBAIC0xMDY1LDcgKzEwNjUsNyBAQCBzdGF0aWMgdm9p ZCBzZXRfZHNpX3RpbWluZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCWhicCA9IHR4 Ynl0ZWNsa2hzKGhicCwgYnBwLCBsYW5lX2NvdW50LCBpbnRlbF9kc2ktPmJ1cnN0X21vZGVfcmF0 aW8pOwogCiAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQlp ZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwkJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7 CiAJCQkvKgogCQkJICogUHJvZ3JhbSBoZGlzcGxheSBhbmQgdmRpc3BsYXkgb24gTUlQSSB0cmFu c2NvZGVyLgogCQkJICogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBjYWxjdWxhdGVkIGhhY3RpdmUg YW5kCkBAIC0xMTUyLDcgKzExNTIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlcGFyZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKIAkJCXRtcCAmPSB+UkVBRF9SRVFV RVNUX1BSSU9SSVRZX01BU0s7CiAJCQlJOTE1X1dSSVRFKE1JUElfQ1RSTChwb3J0KSwgdG1wIHwK IAkJCQkJUkVBRF9SRVFVRVNUX1BSSU9SSVRZX0hJR0gpOwotCQl9IGVsc2UgaWYgKElTX0JST1hU T04oZGV2X3ByaXYpKSB7CisJCX0gZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKIAkJ CWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAogCQkJdG1wID0gSTkxNV9SRUFE KE1JUElfQ1RSTChwb3J0KSk7CkBAIC0xMjQxLDcgKzEyNDEsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kc2lfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKIAkJSTkx NV9XUklURShNSVBJX0lOSVRfQ09VTlQocG9ydCksCiAJCQkJdHhjbGtlc2MoaW50ZWxfZHNpLT5l c2NhcGVfY2xrX2RpdiwgMTAwKSk7CiAKLQkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpICYmICgh aW50ZWxfZHNpLT5kdWFsX2xpbmspKSB7CisJCWlmIChJU19HRU45X0xQKGRldl9wcml2KSAmJiAo IWludGVsX2RzaS0+ZHVhbF9saW5rKSkgewogCQkJLyoKIAkJCSAqIEJYVCBzcGVjIHNheXMgd3Jp dGUgTUlQSV9JTklUX0NPVU5UIGZvcgogCQkJICogYm90aCB0aGUgcG9ydHMsIGV2ZW4gaWYgb25s eSBvbmUgaXMKQEAgLTE0NTEsNyArMTQ1MSw3IEBAIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAogCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19D SEVSUllWSUVXKGRldl9wcml2KSkgewogCQlkZXZfcHJpdi0+bWlwaV9tbWlvX2Jhc2UgPSBWTFZf TUlQSV9CQVNFOwotCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwl9IGVsc2Ug aWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5taXBpX21taW9fYmFzZSA9 IEJYVF9NSVBJX0JBU0U7CiAJfSBlbHNlIHsKIAkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBNaXBp IGRldmljZSB0byByZWcgYmFzZSIpOwpAQCAtMTQ5Miw3ICsxNDkyLDcgQEAgdm9pZCBpbnRlbF9k c2lfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIE9uIEJZVC9DSFYsIHBpcGUgQSBt YXBzIHRvIE1JUEkgRFNJIHBvcnQgQSwgcGlwZSBCIG1hcHMgdG8gTUlQSSBEU0kKIAkgKiBwb3J0 IEMuIEJYVCBpc24ndCBsaW1pdGVkIGxpa2UgdGhpcy4KIAkgKi8KLQlpZiAoSVNfQlJPWFRPTihk ZXZfcHJpdikpCisJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlpbnRlbF9lbmNvZGVyLT5j cnRjX21hc2sgPSBCSVQoUElQRV9BKSB8IEJJVChQSVBFX0IpIHwgQklUKFBJUEVfQyk7CiAJZWxz ZSBpZiAocG9ydCA9PSBQT1JUX0EpCiAJCWludGVsX2VuY29kZXItPmNydGNfbWFzayA9IEJJVChQ SVBFX0EpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jCmluZGV4IDU2ZWZmNjAuLmNm OGMxYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wbGwuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMKQEAgLTM1MSw3ICszNTEs NyBAQCBzdGF0aWMgdTMyIGJ4dF9kc2lfZ2V0X3BjbGsoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsIGludCBwaXBlX2JwcCwKIHUzMiBpbnRlbF9kc2lfZ2V0X3BjbGsoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsIGludCBwaXBlX2JwcCwKIAkJICAgICAgIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjb25maWcpCiB7Ci0JaWYgKElTX0JST1hUT04odG9faTkxNShlbmNvZGVyLT5i YXNlLmRldikpKQorCWlmIChJU19HRU45X0xQKHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpKSkK IAkJcmV0dXJuIGJ4dF9kc2lfZ2V0X3BjbGsoZW5jb2RlciwgcGlwZV9icHAsIGNvbmZpZyk7CiAJ ZWxzZQogCQlyZXR1cm4gdmx2X2RzaV9nZXRfcGNsayhlbmNvZGVyLCBwaXBlX2JwcCwgY29uZmln KTsKQEAgLTUwNCw3ICs1MDQsNyBAQCBzdGF0aWMgdm9pZCBieHRfZW5hYmxlX2RzaV9wbGwoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIGJvb2wgaW50ZWxfZHNpX3BsbF9pc19lbmFi bGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoSVNfQlJPWFRP TihkZXZfcHJpdikpCisJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlyZXR1cm4gYnh0X2Rz aV9wbGxfaXNfZW5hYmxlZChkZXZfcHJpdik7CiAKIAlNSVNTSU5HX0NBU0UoSU5URUxfREVWSUQo ZGV2X3ByaXYpKTsKQEAgLTUxOSw3ICs1MTksNyBAQCBpbnQgaW50ZWxfY29tcHV0ZV9kc2lfcGxs KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2 X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQlyZXR1cm4gdmx2X2NvbXB1dGVf ZHNpX3BsbChlbmNvZGVyLCBjb25maWcpOwotCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYp KQorCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlyZXR1cm4gYnh0X2NvbXB1dGVf ZHNpX3BsbChlbmNvZGVyLCBjb25maWcpOwogCiAJcmV0dXJuIC1FTk9ERVY7CkBAIC01MzIsNyAr NTMyLDcgQEAgdm9pZCBpbnRlbF9lbmFibGVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAogCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVX KGRldl9wcml2KSkKIAkJdmx2X2VuYWJsZV9kc2lfcGxsKGVuY29kZXIsIGNvbmZpZyk7Ci0JZWxz ZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJp dikpCiAJCWJ4dF9lbmFibGVfZHNpX3BsbChlbmNvZGVyLCBjb25maWcpOwogfQogCkBAIC01NDIs NyArNTQyLDcgQEAgdm9pZCBpbnRlbF9kaXNhYmxlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCiAKIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZ VklFVyhkZXZfcHJpdikpCiAJCXZsdl9kaXNhYmxlX2RzaV9wbGwoZW5jb2Rlcik7Ci0JZWxzZSBp ZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikp CiAJCWJ4dF9kaXNhYmxlX2RzaV9wbGwoZW5jb2Rlcik7CiB9CiAKQEAgLTU2Niw3ICs1NjYsNyBA QCB2b2lkIGludGVsX2RzaV9yZXNldF9jbG9ja3Moc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsIGVudW0gcG9ydCBwb3J0KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCi0JaWYgKElTX0JST1hUT04oZGV2X3By aXYpKQorCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJYnh0X2RzaV9yZXNldF9jbG9ja3Mo ZW5jb2RlciwgcG9ydCk7CiAJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNf Q0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCXZsdl9kc2lfcmVzZXRfY2xvY2tzKGVuY29kZXIsIHBv cnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCmluZGV4IGZiODhlMzIuLjAzNGVjMWEyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCkBAIC0xMjQ2LDcgKzEyNDYsNyBAQCBoZG1pX3Bv cnRfY2xvY2tfdmFsaWQoc3RydWN0IGludGVsX2hkbWkgKmhkbWksCiAJCXJldHVybiBNT0RFX0NM T0NLX0hJR0g7CiAKIAkvKiBCWFQgRFBMTCBjYW4ndCBnZW5lcmF0ZSAyMjMtMjQwIE1IeiAqLwot CWlmIChJU19CUk9YVE9OKGRldl9wcml2KSAmJiBjbG9jayA+IDIyMzMzMyAmJiBjbG9jayA8IDI0 MDAwMCkKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikgJiYgY2xvY2sgPiAyMjMzMzMgJiYgY2xv Y2sgPCAyNDAwMDApCiAJCXJldHVybiBNT0RFX0NMT0NLX1JBTkdFOwogCiAJLyogQ0hWIERQTEwg Y2FuJ3QgZ2VuZXJhdGUgMjE2LTI0MCBNSHogKi8KQEAgLTE4MDksMTMgKzE4MDksMTMgQEAgc3Rh dGljIHU4IGludGVsX2hkbWlfZGRjX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAKIAlzd2l0Y2ggKHBvcnQpIHsKIAljYXNlIFBPUlRfQjoKLQkJaWYgKElTX0JST1hUT04o ZGV2X3ByaXYpKQorCQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCQlkZGNfcGluID0gR01C VVNfUElOXzFfQlhUOwogCQllbHNlCiAJCQlkZGNfcGluID0gR01CVVNfUElOX0RQQjsKIAkJYnJl YWs7CiAJY2FzZSBQT1JUX0M6Ci0JCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKKwkJaWYgKElT X0dFTjlfTFAoZGV2X3ByaXYpKQogCQkJZGRjX3BpbiA9IEdNQlVTX1BJTl8yX0JYVDsKIAkJZWxz ZQogCQkJZGRjX3BpbiA9IEdNQlVTX1BJTl9EUEM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9pMmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCmlu ZGV4IDgzZjI2MGIuLjE2MDZlMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2kyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCkBAIC03Miw3 ICs3Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ21idXNfcGluIGdtYnVzX3BpbnNfYnh0W10g PSB7CiBzdGF0aWMgY29uc3Qgc3RydWN0IGdtYnVzX3BpbiAqZ2V0X2dtYnVzX3BpbihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCSAgICAgdW5zaWduZWQgaW50IHBpbikK IHsKLQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYp KQogCQlyZXR1cm4gJmdtYnVzX3BpbnNfYnh0W3Bpbl07CiAJZWxzZSBpZiAoSVNfU0tZTEFLRShk ZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQogCQlyZXR1cm4gJmdtYnVzX3BpbnNf c2tsW3Bpbl07CkBAIC04Nyw3ICs4Nyw3IEBAIGJvb2wgaW50ZWxfZ21idXNfaXNfdmFsaWRfcGlu KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHsKIAl1bnNpZ25lZCBpbnQgc2l6 ZTsKIAotCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJp dikpCiAJCXNpemUgPSBBUlJBWV9TSVpFKGdtYnVzX3BpbnNfYnh0KTsKIAllbHNlIGlmIChJU19T S1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCiAJCXNpemUgPSBBUlJB WV9TSVpFKGdtYnVzX3BpbnNfc2tsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX21vY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuYwppbmRleCA4 MGJiOTI0Li5lZWQwNzA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9t b2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jCkBAIC0xODIsNyAr MTgyLDcgQEAgc3RhdGljIGJvb2wgZ2V0X21vY3Nfc2V0dGluZ3Moc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCQl0YWJsZS0+c2l6ZSAgPSBBUlJBWV9TSVpFKHNreWxha2VfbW9j c190YWJsZSk7CiAJCXRhYmxlLT50YWJsZSA9IHNreWxha2VfbW9jc190YWJsZTsKIAkJcmVzdWx0 ID0gdHJ1ZTsKLQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CisJfSBlbHNlIGlm IChJU19HRU45X0xQKGRldl9wcml2KSkgewogCQl0YWJsZS0+c2l6ZSAgPSBBUlJBWV9TSVpFKGJy b3h0b25fbW9jc190YWJsZSk7CiAJCXRhYmxlLT50YWJsZSA9IGJyb3h0b25fbW9jc190YWJsZTsK IAkJcmVzdWx0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCmluZGV4IGJlNGI0 ZDUuLmJmMjg5OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVs LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwpAQCAtMTc1Niw3ICsx NzU2LDcgQEAgaW50ZWxfcGFuZWxfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX3Bh bmVsICpwYW5lbCkKIAkgICAgaW50ZWxfZHNpX2Rjc19pbml0X2JhY2tsaWdodF9mdW5jcyhjb25u ZWN0b3IpID09IDApCiAJCXJldHVybjsKIAotCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewor CWlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewogCQlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0g Ynh0X3NldHVwX2JhY2tsaWdodDsKIAkJcGFuZWwtPmJhY2tsaWdodC5lbmFibGUgPSBieHRfZW5h YmxlX2JhY2tsaWdodDsKIAkJcGFuZWwtPmJhY2tsaWdodC5kaXNhYmxlID0gYnh0X2Rpc2FibGVf YmFja2xpZ2h0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggY2M5ZTBjMC4uZGNmNWNkNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC01MjI4LDcgKzUyMjgsNyBAQCBpbnQgc2FuaXRp emVfcmM2X29wdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBlbmFi bGVfcmM2KQogCWlmICghZW5hYmxlX3JjNikKIAkJcmV0dXJuIDA7CiAKLQlpZiAoSVNfQlJPWFRP TihkZXZfcHJpdikgJiYgIWJ4dF9jaGVja19iaW9zX3JjNl9zZXR1cChkZXZfcHJpdikpIHsKKwlp ZiAoSVNfR0VOOV9MUChkZXZfcHJpdikgJiYgIWJ4dF9jaGVja19iaW9zX3JjNl9zZXR1cChkZXZf cHJpdikpIHsKIAkJRFJNX0lORk8oIlJDNiBkaXNhYmxlZCBieSBCSU9TXG4iKTsKIAkJcmV0dXJu IDA7CiAJfQpAQCAtNTI2Miw3ICs1MjYyLDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9pbml0X3Jwc19m cmVxdWVuY2llcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJLyogQWxsIG9m IHRoZXNlIHZhbHVlcyBhcmUgaW4gdW5pdHMgb2YgNTBNSHogKi8KIAogCS8qIHN0YXRpYyB2YWx1 ZXMgZnJvbSBIVzogUlAwID4gUlAxID4gUlBuIChtaW5fZnJlcSkgKi8KLQlpZiAoSVNfQlJPWFRP TihkZXZfcHJpdikpIHsKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKIAkJdTMyIHJwX3N0 YXRlX2NhcCA9IEk5MTVfUkVBRChCWFRfUlBfU1RBVEVfQ0FQKTsKIAkJZGV2X3ByaXYtPnJwcy5y cDBfZnJlcSA9IChycF9zdGF0ZV9jYXAgPj4gMTYpICYgMHhmZjsKIAkJZGV2X3ByaXYtPnJwcy5y cDFfZnJlcSA9IChycF9zdGF0ZV9jYXAgPj4gIDgpICYgMHhmZjsKQEAgLTc2NDIsNyArNzY0Miw3 IEBAIHZvaWQgaW50ZWxfaW5pdF9jbG9ja19nYXRpbmdfaG9va3Moc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2NrX2dhdGluZyA9 IHNreWxha2VfaW5pdF9jbG9ja19nYXRpbmc7CiAJZWxzZSBpZiAoSVNfS0FCWUxBS0UoZGV2X3By aXYpKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2NrX2dhdGluZyA9IGthYnlsYWtlX2lu aXRfY2xvY2tfZ2F0aW5nOwotCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWVsc2Ug aWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2Nr X2dhdGluZyA9IGJ4dF9pbml0X2Nsb2NrX2dhdGluZzsKIAllbHNlIGlmIChJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2NrX2dhdGluZyA9IGJyb2Fk d2VsbF9pbml0X2Nsb2NrX2dhdGluZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVf cG0uYwppbmRleCAwNTk5NDA4Li42OTc1NzRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cnVudGltZV9wbS5jCkBAIC01MzAsNyArNTMwLDcgQEAgc3RhdGljIHUzMiBnZW45X2RjX21hc2so c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXUzMiBtYXNrOwogCiAJbWFzayA9 IERDX1NUQVRFX0VOX1VQVE9fREM1OwotCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKKwlpZiAo SVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCW1hc2sgfD0gRENfU1RBVEVfRU5fREM5OwogCWVsc2UK IAkJbWFzayB8PSBEQ19TVEFURV9FTl9VUFRPX0RDNjsKQEAgLTkxMSw3ICs5MTEsNyBAQCBzdGF0 aWMgdm9pZCBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAKIAlnZW45X2Fzc2VydF9kYnVmX2VuYWJsZWQoZGV2X3ByaXYpOwog Ci0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkK IAkJYnh0X3ZlcmlmeV9kZGlfcGh5X3Bvd2VyX3dlbGxzKGRldl9wcml2KTsKIH0KIApAQCAtMjE3 MCw3ICsyMTcwLDcgQEAgc3RhdGljIHVpbnQzMl90IGdldF9hbGxvd2VkX2RjX21hc2soY29uc3Qg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChJU19TS1lMQUtFKGRldl9w cml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKIAkJbWF4X2RjID0gMjsKIAkJbWFzayA9 IDA7Ci0JfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgeworCX0gZWxzZSBpZiAoSVNf R0VOOV9MUChkZXZfcHJpdikpIHsKIAkJbWF4X2RjID0gMTsKIAkJLyoKIAkJICogREM5IGhhcyBh IHNlcGFyYXRlIEhXIGZsb3cgZnJvbSB0aGUgcmVzdCBvZiB0aGUgREMgc3RhdGVzLAotLSAKMi41 LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=