From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH v3] drm/i915/glk: Reuse broxton code for geminilake Date: Tue, 29 Nov 2016 17:47:12 +0200 Message-ID: <1480434432-28066-1-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1478872351-7946-1-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9BF9E6E76E for ; Tue, 29 Nov 2016 15:47:25 +0000 (UTC) In-Reply-To: <1478872351-7946-1-git-send-email-ander.conselvan.de.oliveira@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: Ander Conselvan de Oliveira , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org R2VtaW5pbGFrZSBpcyBtb3N0bHkgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBicm94dG9uLCBz byBjaGFuZ2UgbW9zdApvZiB0aGUgSVNfQlJPWFRPTigpIGNoZWNrcyB0byBJU19HRU45X0xQKCku IERpZmZlcmVuY2VzIGJldHdlZW4gdGhlCnBsYXRmb3JtcyB3aWxsIGJlIGltcGxlbWVudGVkIGlu IGZvbGxvdy11cCBwYXRjaGVzLgoKdjI6IERvbid0IHJldXNlIGJyb3h0b24ncyBwYXRoIGluIGlu dGVsX3VwZGF0ZV9tYXhfY2RjbGsoKS4KICAgIERvbid0IHNldCBwbGFuZSBjb3VudCBhcyBpbiBi cm94dG9uLgoKdjM6IFJlYmFzZQoKdjQ6IEluY2x1ZGUgdGhlIGNoZWNrIGludGVsX2Jpb3NfaXNf cG9ydF9ocGRfaW52ZXJ0ZWQoKS4KICAgIENvbW1pdCBtZXNzYWdlLgoKdjU6IExlYXZlIGk5MTVf ZG1jX2luZm8oKSBvdXQ7IGdsaydzIGNzciB2ZXJzaW9uICE9IGJ4dCdzLiAoUm9kcmlnbykKCnY2 OiBSZWJhc2UuCgp2NzogQ29udmVydCBhIGZldyBtb2RlIElTX0JST1hUT04oKSBvY2N1cmFuY2Vz IGluIHBwcywgZGRpLCBkc2kgYW5kIHBsbAogICAgY29kZS4gKFJvZHJpZ28pCgpDYzogUm9kcmln byBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRlciBDb25z ZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgIHwgMTAgKysrKyst LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgIHwgIDggKysrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8IDEwICsrKysrLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICB8ICA0ICsrLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAgfCAxOCArKysrKysrKystLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8IDEyICsrKysrKy0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICAgIHwgMjQgKysrKysrKysrKysr LS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jICAgfCAg MSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jICAgfCAgMiArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgICAgIHwgMzAgKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMgICAg fCAxMiArKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICAg ICB8ICA2ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMgICAgICAgIHwg IDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAgICB8ICAyICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgfCAgNiArKystLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8ICA2ICsrKy0tLQogMTggZmlsZXMgY2hhbmdl ZCwgNzkgaW5zZXJ0aW9ucygrKSwgODAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwppbmRleCA4ZWI4YzI5Li42YzE3ZDM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwpAQCAtMTEwOCw3ICsxMTA4LDcgQEAgc3RhdGljIGludCBpOTE1X2ZyZXF1ZW5j eV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQlpbnQgbWF4X2ZyZXE7 CiAKIAkJcnBfc3RhdGVfbGltaXRzID0gSTkxNV9SRUFEKEdFTjZfUlBfU1RBVEVfTElNSVRTKTsK LQkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CisJCWlmIChJU19HRU45X0xQKGRldl9wcml2 KSkgewogCQkJcnBfc3RhdGVfY2FwID0gSTkxNV9SRUFEKEJYVF9SUF9TVEFURV9DQVApOwogCQkJ Z3RfcGVyZl9zdGF0dXMgPSBJOTE1X1JFQUQoQlhUX0dUX1BFUkZfU1RBVFVTKTsKIAkJfSBlbHNl IHsKQEAgLTEyMDQsNyArMTIwNCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9mcmVxdWVuY3lfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAkJc2VxX3ByaW50ZihtLCAiRG93biB0 aHJlc2hvbGQ6ICVkJSVcbiIsCiAJCQkgICBkZXZfcHJpdi0+cnBzLmRvd25fdGhyZXNob2xkKTsK IAotCQltYXhfZnJlcSA9IChJU19CUk9YVE9OKGRldl9wcml2KSA/IHJwX3N0YXRlX2NhcCA+PiAw IDoKKwkJbWF4X2ZyZXEgPSAoSVNfR0VOOV9MUChkZXZfcHJpdikgPyBycF9zdGF0ZV9jYXAgPj4g MCA6CiAJCQkgICAgcnBfc3RhdGVfY2FwID4+IDE2KSAmIDB4ZmY7CiAJCW1heF9mcmVxICo9IChJ U19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikgPwogCQkJICAgICBH RU45X0ZSRVFfU0NBTEVSIDogMSk7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgaW50IGk5 MTVfZnJlcXVlbmN5X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCXNl cV9wcmludGYobSwgIk5vbWluYWwgKFJQMSkgZnJlcXVlbmN5OiAlZE1IelxuIiwKIAkJCSAgIGlu dGVsX2dwdV9mcmVxKGRldl9wcml2LCBtYXhfZnJlcSkpOwogCi0JCW1heF9mcmVxID0gKElTX0JS T1hUT04oZGV2X3ByaXYpID8gcnBfc3RhdGVfY2FwID4+IDE2IDoKKwkJbWF4X2ZyZXEgPSAoSVNf R0VOOV9MUChkZXZfcHJpdikgPyBycF9zdGF0ZV9jYXAgPj4gMTYgOgogCQkJICAgIHJwX3N0YXRl X2NhcCA+PiAwKSAmIDB4ZmY7CiAJCW1heF9mcmVxICo9IChJU19TS1lMQUtFKGRldl9wcml2KSB8 fCBJU19LQUJZTEFLRShkZXZfcHJpdikgPwogCQkJICAgICBHRU45X0ZSRVFfU0NBTEVSIDogMSk7 CkBAIC01MTY5LDcgKzUxNjksNyBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfZGV2aWNlX3N0YXR1 cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdTMyIHNfcmVnW3NfbWF4XSwg ZXVfcmVnWzIqc19tYXhdLCBldV9tYXNrWzJdOwogCiAJLyogQlhUIGhhcyBhIHNpbmdsZSBzbGlj ZSBhbmQgYXQgbW9zdCAzIHN1YnNsaWNlcy4gKi8KLQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikp IHsKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKIAkJc19tYXggPSAxOwogCQlzc19tYXgg PSAzOwogCX0KQEAgLTUyMDMsNyArNTIwMyw3IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3NldV9kZXZp Y2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJZm9yIChzcyA9 IDA7IHNzIDwgc3NfbWF4OyBzcysrKSB7CiAJCQl1bnNpZ25lZCBpbnQgZXVfY250OwogCi0JCQlp ZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwkJCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkg ewogCQkJCWlmICghKHNfcmVnW3NdICYgKEdFTjlfUEdDVExfU1NfQUNLKHNzKSkpKQogCQkJCQkv KiBza2lwIGRpc2FibGVkIHN1YnNsaWNlICovCiAJCQkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwppbmRleCA2Y2VlNzA3Li5lNzIxYTZmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwpAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRpYyB2b2lkIGt1bm1hcF9w YWdlX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHZvaWQgKnZhZGRyKQog CS8qIFRoZXJlIGFyZSBvbmx5IGZldyBleGNlcHRpb25zIGZvciBnZW4gPj02LiBjaHYgYW5kIGJ4 dC4KIAkgKiBBbmQgd2UgYXJlIG5vdCBzdXJlIGFib3V0IHRoZSBsYXR0ZXIgc28gcGxheSBzYWZl IGZvciBub3cuCiAJICovCi0JaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpIHx8IElTX0JST1hU T04oZGV2X3ByaXYpKQorCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSB8fCBJU19HRU45X0xQ KGRldl9wcml2KSkKIAkJZHJtX2NsZmx1c2hfdmlydF9yYW5nZSh2YWRkciwgUEFHRV9TSVpFKTsK IAogCWt1bm1hcF9hdG9taWModmFkZHIpOwpAQCAtMjk0MCw3ICsyOTQwLDcgQEAgc3RhdGljIGlu dCBnZ3R0X3Byb2JlX2NvbW1vbihzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0LCB1NjQgc2l6ZSkKIAkg KiByZXNvcnQgdG8gYW4gdW5jYWNoZWQgbWFwcGluZy4gVGhlIFdDIGlzc3VlIGlzIGVhc2lseSBj YXVnaHQgYnkgdGhlCiAJICogcmVhZGJhY2sgY2hlY2sgd2hlbiB3cml0aW5nIEdUVCBQVEUgZW50 cmllcy4KIAkgKi8KLQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJaWYgKElTX0dFTjlfTFAo ZGV2X3ByaXYpKQogCQlnZ3R0LT5nc20gPSBpb3JlbWFwX25vY2FjaGUocGh5c19hZGRyLCBzaXpl KTsKIAllbHNlCiAJCWdndHQtPmdzbSA9IGlvcmVtYXBfd2MocGh5c19hZGRyLCBzaXplKTsKQEAg LTMwNzAsNyArMzA3MCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1 X2dndHQgKmdndHQpCiAKIAlnZ3R0LT5iYXNlLnRvdGFsID0gKHNpemUgLyBzaXplb2YoZ2VuOF9w dGVfdCkpIDw8IFBBR0VfU0hJRlQ7CiAKLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgfHwg SVNfQlJPWFRPTihkZXZfcHJpdikpCisJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpIHx8IElT X0dFTjlfTFAoZGV2X3ByaXYpKQogCQljaHZfc2V0dXBfcHJpdmF0ZV9wcGF0KGRldl9wcml2KTsK IAllbHNlCiAJCWJkd19zZXR1cF9wcml2YXRlX3BwYXQoZGV2X3ByaXYpOwpAQCAtMzMxMCw3ICsz MzEwLDcgQEAgdm9pZCBpOTE1X2dlbV9yZXN0b3JlX2d0dF9tYXBwaW5ncyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZ2d0dC0+YmFzZS5jbG9zZWQgPSBmYWxzZTsKIAogCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3By aXYpIHx8IElTX0JST1hUT04oZGV2X3ByaXYpKQorCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikgfHwgSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCQljaHZfc2V0dXBfcHJpdmF0ZV9wcGF0KGRl dl9wcml2KTsKIAkJZWxzZQogCQkJYmR3X3NldHVwX3ByaXZhdGVfcHBhdChkZXZfcHJpdik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCAwYjExOWI5Li5hMGU3MGY1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMKQEAgLTI0MzUsNyArMjQzNSw3IEBAIGdlbjhfZGVfaXJxX2hhbmRsZXIoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzdGVyX2N0bCkKIAkJCQlmb3Vu ZCA9IHRydWU7CiAJCQl9CiAKLQkJCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgeworCQkJaWYg KElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCQkJdG1wX21hc2sgPSBpaXIgJiBCWFRfREVfUE9S VF9IT1RQTFVHX01BU0s7CiAJCQkJaWYgKHRtcF9tYXNrKSB7CiAJCQkJCWJ4dF9ocGRfaXJxX2hh bmRsZXIoZGV2X3ByaXYsIHRtcF9tYXNrLApAQCAtMjQ1MSw3ICsyNDUxLDcgQEAgZ2VuOF9kZV9p cnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYXN0ZXJf Y3RsKQogCQkJCX0KIAkJCX0KIAotCQkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpICYmIChpaXIg JiBCWFRfREVfUE9SVF9HTUJVUykpIHsKKwkJCWlmIChJU19HRU45X0xQKGRldl9wcml2KSAmJiAo aWlyICYgQlhUX0RFX1BPUlRfR01CVVMpKSB7CiAJCQkJZ21idXNfaXJxX2hhbmRsZXIoZGV2X3By aXYpOwogCQkJCWZvdW5kID0gdHJ1ZTsKIAkJCX0KQEAgLTMzNzUsNyArMzM3NSw3IEBAIHN0YXRp YyB2b2lkIGdlbjhfZGVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIAkJCQkgIEdFTjlfREVfUElQRV9JUlFfRkFVTFRfRVJST1JTOwogCQlkZV9wb3J0 X21hc2tlZCB8PSBHRU45X0FVWF9DSEFOTkVMX0IgfCBHRU45X0FVWF9DSEFOTkVMX0MgfAogCQkJ CSAgR0VOOV9BVVhfQ0hBTk5FTF9EOwotCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJCWlm IChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJCWRlX3BvcnRfbWFza2VkIHw9IEJYVF9ERV9QT1JU X0dNQlVTOwogCX0gZWxzZSB7CiAJCWRlX3BpcGVfbWFza2VkIHw9IEdFTjhfUElQRV9QUklNQVJZ X0ZMSVBfRE9ORSB8CkBAIC0zMzg2LDcgKzMzODYsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2RlX2ly cV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQkJCSAg IEdFTjhfUElQRV9GSUZPX1VOREVSUlVOOwogCiAJZGVfcG9ydF9lbmFibGVzID0gZGVfcG9ydF9t YXNrZWQ7Ci0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWlmIChJU19HRU45X0xQKGRldl9w cml2KSkKIAkJZGVfcG9ydF9lbmFibGVzIHw9IEJYVF9ERV9QT1JUX0hPVFBMVUdfTUFTSzsKIAll bHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQogCQlkZV9wb3J0X2VuYWJsZXMgfD0gR0VO OF9QT1JUX0RQX0FfSE9UUExVRzsKQEAgLTQyMTEsNyArNDIxMSw3IEBAIHZvaWQgaW50ZWxfaXJx X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlkZXYtPmRyaXZlci0+ aXJxX3VuaW5zdGFsbCA9IGdlbjhfaXJxX3VuaW5zdGFsbDsKIAkJZGV2LT5kcml2ZXItPmVuYWJs ZV92YmxhbmsgPSBnZW44X2VuYWJsZV92Ymxhbms7CiAJCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3Zi bGFuayA9IGdlbjhfZGlzYWJsZV92Ymxhbms7Ci0JCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkK KwkJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2ly cV9zZXR1cCA9IGJ4dF9ocGRfaXJxX3NldHVwOwogCQllbHNlIGlmIChIQVNfUENIX1NQVChkZXZf cHJpdikgfHwgSEFTX1BDSF9LQlAoZGV2X3ByaXYpKQogCQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBk X2lycV9zZXR1cCA9IHNwdF9ocGRfaXJxX3NldHVwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5k ZXggNjc0N2Q2OC4uMWRlYzIwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC0zMjU2LDcg KzMyNTYsNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUgSU5URVJWQUxf MV8zM19VUyh1cykJKCgodXMpICogMykgICA+PiAyKQogI2RlZmluZSBJTlRFUlZBTF8wXzgzM19V Uyh1cykJKCgodXMpICogNikgLyA1KQogI2RlZmluZSBHVF9JTlRFUlZBTF9GUk9NX1VTKGRldl9w cml2LCB1cykgKElTX0dFTjkoZGV2X3ByaXYpID8gXAotCQkJCShJU19CUk9YVE9OKGRldl9wcml2 KSA/IFwKKwkJCQkoSVNfR0VOOV9MUChkZXZfcHJpdikgPyBcCiAJCQkJSU5URVJWQUxfMF84MzNf VVModXMpIDogXAogCQkJCUlOVEVSVkFMXzFfMzNfVVModXMpKSA6IFwKIAkJCQlJTlRFUlZBTF8x XzI4X1VTKHVzKSkKQEAgLTMyNjUsNyArMzI2NSw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2Vs bHMgewogI2RlZmluZSBJTlRFUlZBTF8xXzMzX1RPX1VTKGludGVydmFsKSAgKCgoaW50ZXJ2YWwp IDw8IDIpIC8gMykKICNkZWZpbmUgSU5URVJWQUxfMF84MzNfVE9fVVMoaW50ZXJ2YWwpICgoKGlu dGVydmFsKSAqIDUpICAvIDYpCiAjZGVmaW5lIEdUX1BNX0lOVEVSVkFMX1RPX1VTKGRldl9wcml2 LCBpbnRlcnZhbCkgKElTX0dFTjkoZGV2X3ByaXYpID8gXAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgKElTX0JST1hUT04oZGV2X3ByaXYpID8gXAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgKElTX0dFTjlfTFAoZGV2X3ByaXYpID8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg SU5URVJWQUxfMF84MzNfVE9fVVMoaW50ZXJ2YWwpIDogXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSU5URVJWQUxfMV8zM19UT19VUyhpbnRlcnZhbCkpIDogXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU5URVJWQUxfMV8yOF9UT19VUyhpbnRlcnZhbCkpCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9iaW9zLmMKaW5kZXggN2ZmYWIxYS4uZWFhZGUyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Jpb3MuYwpAQCAtMTc3OSw3ICsxNzc5LDcgQEAgaW50ZWxfYmlvc19pc19wb3J0X2hwZF9pbnZl cnRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJaW50IGk7CiAKLQlp ZiAoV0FSTl9PTl9PTkNFKCFJU19CUk9YVE9OKGRldl9wcml2KSkpCisJaWYgKFdBUk5fT05fT05D RSghSVNfR0VOOV9MUChkZXZfcHJpdikpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlmb3IgKGkgPSAw OyBpIDwgZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtOyBpKyspIHsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMKaW5kZXggZjhlOTM5ZC4uMzEzM2U1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKQEAgLTQ0Miw3ICs0NDIsNyBAQCBzdGF0aWMgaW50IGludGVsX2RkaV9oZG1pX2xldmVsKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcgogCiAJaGRtaV9s ZXZlbCA9IGRldl9wcml2LT52YnQuZGRpX3BvcnRfaW5mb1twb3J0XS5oZG1pX2xldmVsX3NoaWZ0 OwogCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWlmIChJU19HRU45X0xQKGRldl9wcml2 KSkKIAkJcmV0dXJuIGhkbWlfbGV2ZWw7CiAKIAlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwg SVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7CkBAIC00ODQsNyArNDg0LDcgQEAgdm9pZCBpbnRlbF9w cmVwYXJlX2RwX2RkaV9idWZmZXJzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCWNv bnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25zX2VkcDsKIAljb25zdCBz dHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uczsKIAotCWlmIChJU19CUk9YVE9O KGRldl9wcml2KSkKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCXJldHVybjsKIAogCWlm IChJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKQEAgLTU2Nyw3ICs1NjcsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9wcmVwYXJlX2hkbWlfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpCiAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChlbmNv ZGVyKTsKIAljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uc19oZG1p OwogCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWlmIChJU19HRU45X0xQKGRldl9wcml2 KSkKIAkJcmV0dXJuOwogCiAJaGRtaV9sZXZlbCA9IGludGVsX2RkaV9oZG1pX2xldmVsKGRldl9w cml2LCBwb3J0KTsKQEAgLTEwOTEsNyArMTA5MSw3IEBAIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dl dChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJaHN3X2RkaV9jbG9ja19nZXQoZW5j b2RlciwgcGlwZV9jb25maWcpOwogCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElT X0tBQllMQUtFKGRldl9wcml2KSkKIAkJc2tsX2RkaV9jbG9ja19nZXQoZW5jb2RlciwgcGlwZV9j b25maWcpOwotCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWVsc2UgaWYgKElTX0dF TjlfTFAoZGV2X3ByaXYpKQogCQlieHRfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZp Zyk7CiB9CiAKQEAgLTExNTMsNyArMTE1Myw3IEBAIGJvb2wgaW50ZWxfZGRpX3BsbF9zZWxlY3Qo c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYp IHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKIAkJcmV0dXJuIHNrbF9kZGlfcGxsX3NlbGVjdChp bnRlbF9jcnRjLCBjcnRjX3N0YXRlLAogCQkJCQkgIGludGVsX2VuY29kZXIpOwotCWVsc2UgaWYg KElTX0JST1hUT04oZGV2X3ByaXYpKQorCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQog CQlyZXR1cm4gYnh0X2RkaV9wbGxfc2VsZWN0KGludGVsX2NydGMsIGNydGNfc3RhdGUsCiAJCQkJ CSAgaW50ZWxfZW5jb2Rlcik7CiAJZWxzZQpAQCAtMTY0Myw3ICsxNjQzLDcgQEAgdWludDMyX3Qg ZGRpX3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAogCWlmIChJU19T S1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCiAJCXNrbF9kZGlfc2V0 X2lib29zdChlbmNvZGVyLCBsZXZlbCk7Ci0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikp CisJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCWJ4dF9kZGlfdnN3aW5nX3NlcXVl bmNlKGRldl9wcml2LCBsZXZlbCwgcG9ydCwgZW5jb2Rlci0+dHlwZSk7CiAKIAlyZXR1cm4gRERJ X0JVRl9UUkFOU19TRUxFQ1QobGV2ZWwpOwpAQCAtMTcxNiw3ICsxNzE2LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAlpbnRlbF9wcmVwYXJlX2hkbWlfZGRpX2J1ZmZlcnMoZW5jb2Rlcik7CiAJaWYgKElTX1NL WUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKIAkJc2tsX2RkaV9zZXRf aWJvb3N0KGVuY29kZXIsIGxldmVsKTsKLQllbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkK KwllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJYnh0X2RkaV92c3dpbmdfc2VxdWVu Y2UoZGV2X3ByaXYsIGxldmVsLCBwb3J0LAogCQkJCQlJTlRFTF9PVVRQVVRfSERNSSk7CiAKQEAg LTIxMjcsNyArMjEyNyw3IEBAIGludGVsX2RkaV9nZXRfbGlua19kcGxsKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsIGludCBjbG9jaykKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmln IHRtcF9wbGxfY29uZmlnOwogCWVudW0gaW50ZWxfZHBsbF9pZCBkcGxsX2lkOwogCi0JaWYgKElT X0JST1hUT04oZGV2X3ByaXYpKSB7CisJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCWRw bGxfaWQgPSAgKGVudW0gaW50ZWxfZHBsbF9pZClkaWdfcG9ydC0+cG9ydDsKIAkJLyoKIAkJICog U2VsZWN0IHRoZSByZXF1aXJlZCBQTEwuIFRoaXMgd29ya3MgZm9yIHBsYXRmb3JtcyB3aGVyZQpA QCAtMjI0NCw3ICsyMjQ0LDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogCSAqIGNvbmZpZ3VyYXRpb24gc28g dGhhdCB3ZSB1c2UgdGhlIHByb3BlciBsYW5lIGNvdW50IGZvciBvdXIKIAkgKiBjYWxjdWxhdGlv bnMuCiAJICovCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7 CisJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7CiAJCWlmICgh KGludGVsX2RpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgJiBERElfQV80X0xBTkVTKSkgewogCQkJ RFJNX0RFQlVHX0tNUygiQlhUIEJJT1MgZm9yZ290IHRvIHNldCBERElfQV80X0xBTkVTIGZvciBw b3J0IEE7IGZpeGluZ1xuIik7CiAJCQlpbnRlbF9kaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzIHw9 IERESV9BXzRfTEFORVM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggMTVm NDhhMC4uNDE4OTQxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNjE0 LDEyICs2MTQsMTIgQEAgc3RhdGljIGJvb2wgaW50ZWxfUExMX2lzX3ZhbGlkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJSU5URUxQbGxJbnZhbGlkKCJtMSBvdXQgb2YgcmFu Z2VcbiIpOwogCiAJaWYgKCFJU19QSU5FVklFVyhkZXZfcHJpdikgJiYgIUlTX1ZBTExFWVZJRVco ZGV2X3ByaXYpICYmCi0JICAgICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJiAhSVNfQlJPWFRP TihkZXZfcHJpdikpCisJICAgICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJiAhSVNfR0VOOV9M UChkZXZfcHJpdikpCiAJCWlmIChjbG9jay0+bTEgPD0gY2xvY2stPm0yKQogCQkJSU5URUxQbGxJ bnZhbGlkKCJtMSA8PSBtMlxuIik7CiAKIAlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYm ICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJgotCSAgICAhSVNfQlJPWFRPTihkZXZfcHJpdikp IHsKKwkgICAgIUlTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCWlmIChjbG9jay0+cCA8IGxpbWl0 LT5wLm1pbiB8fCBsaW1pdC0+cC5tYXggPCBjbG9jay0+cCkKIAkJCUlOVEVMUGxsSW52YWxpZCgi cCBvdXQgb2YgcmFuZ2VcbiIpOwogCQlpZiAoY2xvY2stPm0gPCBsaW1pdC0+bS5taW4gfHwgbGlt aXQtPm0ubWF4IDwgY2xvY2stPm0pCkBAIC0xMDY0MSw3ICsxMDY0MSw3IEBAIHN0YXRpYyB2b2lk IGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJ aWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKIAkJc2t5 bGFrZV9nZXRfZGRpX3BsbChkZXZfcHJpdiwgcG9ydCwgcGlwZV9jb25maWcpOwotCWVsc2UgaWYg KElTX0JST1hUT04oZGV2X3ByaXYpKQorCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQog CQlieHRfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVfY29uZmlnKTsKIAllbHNlCiAJ CWhhc3dlbGxfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVfY29uZmlnKTsKQEAgLTEw Njg2LDcgKzEwNjg2LDcgQEAgc3RhdGljIGJvb2wgaGFzd2VsbF9nZXRfcGlwZV9jb25maWcoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCiAKIAlhY3RpdmUgPSBoc3dfZ2V0X3RyYW5zY29kZXJfc3Rh dGUoY3J0YywgcGlwZV9jb25maWcsICZwb3dlcl9kb21haW5fbWFzayk7CiAKLQlpZiAoSVNfQlJP WFRPTihkZXZfcHJpdikgJiYKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikgJiYKIAkgICAgYnh0 X2dldF9kc2lfdHJhbnNjb2Rlcl9zdGF0ZShjcnRjLCBwaXBlX2NvbmZpZywgJnBvd2VyX2RvbWFp bl9tYXNrKSkgewogCQlXQVJOX09OKGFjdGl2ZSk7CiAJCWFjdGl2ZSA9IHRydWU7CkBAIC0xMjc4 NCw3ICsxMjc4NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAJRFJNX0RFQlVHX0tNUygiaXBzOiAlaSwgZG91YmxlIHdpZGU6 ICVpXG4iLAogCQkgICAgICBwaXBlX2NvbmZpZy0+aXBzX2VuYWJsZWQsIHBpcGVfY29uZmlnLT5k b3VibGVfd2lkZSk7CiAKLQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwlpZiAoSVNfR0VO OV9MUChkZXZfcHJpdikpIHsKIAkJRFJNX0RFQlVHX0tNUygiZHBsbF9od19zdGF0ZTogZWJiMDog MHgleCwgZWJiNDogMHgleCwiCiAJCQkgICAgICAicGxsMDogMHgleCwgcGxsMTogMHgleCwgcGxs MjogMHgleCwgcGxsMzogMHgleCwgIgogCQkJICAgICAgInBsbDY6IDB4JXgsIHBsbDg6IDB4JXgs IHBsbDk6IDB4JXgsIHBsbDEwOiAweCV4LCBwY3NkdzEyOiAweCV4XG4iLApAQCAtMTU0NzgsNyAr MTU0NzgsNyBAQCB2b2lkIGludGVsX3Bwc191bmxvY2tfcmVnc193YShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyB2b2lkIGludGVsX3Bwc19pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJp dikgfHwgSVNfQlJPWFRPTihkZXZfcHJpdikpCisJaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYp IHx8IElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlkZXZfcHJpdi0+cHBzX21taW9fYmFzZSA9IFBD SF9QUFNfQkFTRTsKIAllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVS UllWSUVXKGRldl9wcml2KSkKIAkJZGV2X3ByaXYtPnBwc19tbWlvX2Jhc2UgPSBWTFZfUFBTX0JB U0U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCA5ZGZiZGU0Li4xZjI0MjBjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKQEAgLTIzMyw3ICsyMzMsNyBAQCBpbnRlbF9kcF9zb3VyY2VfcmF0 ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgY29uc3QgaW50ICoqc291cmNlX3JhdGVzKQog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJh c2UuYmFzZS5kZXYpOwogCWludCBzaXplOwogCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7 CisJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCSpzb3VyY2VfcmF0ZXMgPSBieHRfcmF0 ZXM7CiAJCXNpemUgPSBBUlJBWV9TSVpFKGJ4dF9yYXRlcyk7CiAJfSBlbHNlIGlmIChJU19TS1lM QUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKQEAgLTY0NSw3ICs2NDUs NyBAQCB2b2lkIGludGVsX3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7CiAKIAlpZiAo V0FSTl9PTighSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgJiYgIUlTX0NIRVJSWVZJRVcoZGV2X3By aXYpICYmCi0JCSAgICAhSVNfQlJPWFRPTihkZXZfcHJpdikpKQorCQkgICAgIUlTX0dFTjlfTFAo ZGV2X3ByaXYpKSkKIAkJcmV0dXJuOwogCiAJLyoKQEAgLTY2NSw3ICs2NjUsNyBAQCB2b2lkIGlu dGVsX3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAJCQljb250aW51ZTsKIAogCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rl ci0+YmFzZSk7Ci0JCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKKwkJaWYgKElTX0dFTjlfTFAo ZGV2X3ByaXYpKQogCQkJaW50ZWxfZHAtPnBwc19yZXNldCA9IHRydWU7CiAJCWVsc2UKIAkJCWlu dGVsX2RwLT5wcHNfcGlwZSA9IElOVkFMSURfUElQRTsKQEAgLTY4OCw3ICs2ODgsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9wcHNfZ2V0X3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAKIAltZW1zZXQocmVncywgMCwgc2l6ZW9mKCpyZWdzKSk7CiAKLQlpZiAoSVNf QlJPWFRPTihkZXZfcHJpdikpCisJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlwcHNfaWR4 ID0gYnh0X3Bvd2VyX3NlcXVlbmNlcl9pZHgoaW50ZWxfZHApOwogCWVsc2UgaWYgKElTX1ZBTExF WVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQlwcHNfaWR4ID0g dmx2X3Bvd2VyX3NlcXVlbmNlcl9waXBlKGludGVsX2RwKTsKQEAgLTY5Nyw3ICs2OTcsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9wcHNfZ2V0X3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJcmVncy0+cHBfc3RhdCA9IFBQX1NUQVRVUyhwcHNfaWR4KTsKIAlyZWdz LT5wcF9vbiA9IFBQX09OX0RFTEFZUyhwcHNfaWR4KTsKIAlyZWdzLT5wcF9vZmYgPSBQUF9PRkZf REVMQVlTKHBwc19pZHgpOwotCWlmICghSVNfQlJPWFRPTihkZXZfcHJpdikpCisJaWYgKCFJU19H RU45X0xQKGRldl9wcml2KSkKIAkJcmVncy0+cHBfZGl2ID0gUFBfRElWSVNPUihwcHNfaWR4KTsK IH0KIApAQCAtMjk4NCw3ICsyOTg0LDcgQEAgaW50ZWxfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwogCWVudW0gcG9ydCBwb3J0ID0gZHBf dG9fZGlnX3BvcnQoaW50ZWxfZHApLT5wb3J0OwogCi0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYp KQorCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0Vf U1dJTkdfTEVWRUxfMzsKIAllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKIAkJ aWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcgJiYgcG9ydCA9PSBQT1JUX0EpCkBAIC00 MzAwLDcgKzQzMDAsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuIGlieF9kaWdpdGFs X3BvcnRfY29ubmVjdGVkKGRldl9wcml2LCBwb3J0KTsKIAllbHNlIGlmIChIQVNfUENIX1NQTElU KGRldl9wcml2KSkKIAkJcmV0dXJuIGNwdF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRldl9wcml2 LCBwb3J0KTsKLQllbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKKwllbHNlIGlmIChJU19H RU45X0xQKGRldl9wcml2KSkKIAkJcmV0dXJuIGJ4dF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRl dl9wcml2LCBwb3J0KTsKIAllbHNlIGlmIChJU19HTTQ1KGRldl9wcml2KSkKIAkJcmV0dXJuIGdt NDVfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChkZXZfcHJpdiwgcG9ydCk7CkBAIC00OTI5LDcgKzQ5 MjksNyBAQCBpbnRlbF9wcHNfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAKIAlwcF9vbiA9IEk5MTVfUkVBRChyZWdzLnBwX29uKTsKIAlwcF9vZmYg PSBJOTE1X1JFQUQocmVncy5wcF9vZmYpOwotCWlmICghSVNfQlJPWFRPTihkZXZfcHJpdikpIHsK KwlpZiAoIUlTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCUk5MTVfV1JJVEUocmVncy5wcF9jdHJs LCBwcF9jdGwpOwogCQlwcF9kaXYgPSBJOTE1X1JFQUQocmVncy5wcF9kaXYpOwogCX0KQEAgLTQ5 NDcsNyArNDk0Nyw3IEBAIGludGVsX3Bwc19yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAlzZXEtPnQxMCA9IChwcF9vZmYgJiBQQU5FTF9QT1dFUl9E T1dOX0RFTEFZX01BU0spID4+CiAJCSAgIFBBTkVMX1BPV0VSX0RPV05fREVMQVlfU0hJRlQ7CiAK LQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikp IHsKIAkJdTE2IHRtcCA9IChwcF9jdGwgJiBCWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFTSykgPj4K IAkJCUJYVF9QT1dFUl9DWUNMRV9ERUxBWV9TSElGVDsKIAkJaWYgKHRtcCA+IDApCkBAIC01MDc4 LDcgKzUwNzgsNyBAQCBpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3Rl cnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJIChzZXEtPnQxMCA8PCBQQU5FTF9QT1dFUl9E T1dOX0RFTEFZX1NISUZUKTsKIAkvKiBDb21wdXRlIHRoZSBkaXZpc29yIGZvciB0aGUgcHAgY2xv Y2ssIHNpbXBseSBtYXRjaCB0aGUgQnNwZWMKIAkgKiBmb3JtdWxhLiAqLwotCWlmIChJU19CUk9Y VE9OKGRldl9wcml2KSkgeworCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewogCQlwcF9kaXYg PSBJOTE1X1JFQUQocmVncy5wcF9jdHJsKTsKIAkJcHBfZGl2ICY9IH5CWFRfUE9XRVJfQ1lDTEVf REVMQVlfTUFTSzsKIAkJcHBfZGl2IHw9IChESVZfUk9VTkRfVVAoKHNlcS0+dDExX3QxMiArIDEp LCAxMDAwKQpAQCAtNTEwNCw3ICs1MTA0LDcgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9z ZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlJOTE1X1dSSVRF KHJlZ3MucHBfb24sIHBwX29uKTsKIAlJOTE1X1dSSVRFKHJlZ3MucHBfb2ZmLCBwcF9vZmYpOwot CWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJ CUk5MTVfV1JJVEUocmVncy5wcF9jdHJsLCBwcF9kaXYpOwogCWVsc2UKIAkJSTkxNV9XUklURShy ZWdzLnBwX2RpdiwgcHBfZGl2KTsKQEAgLTUxMTIsNyArNTExMiw3IEBAIGludGVsX2RwX2luaXRf cGFuZWxfcG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CURSTV9ERUJVR19LTVMoInBhbmVsIHBvd2VyIHNlcXVlbmNlciByZWdpc3RlciBzZXR0aW5nczog UFBfT04gJSN4LCBQUF9PRkYgJSN4LCBQUF9ESVYgJSN4XG4iLAogCQkgICAgICBJOTE1X1JFQUQo cmVncy5wcF9vbiksCiAJCSAgICAgIEk5MTVfUkVBRChyZWdzLnBwX29mZiksCi0JCSAgICAgIElT X0JST1hUT04oZGV2X3ByaXYpID8KKwkJICAgICAgSVNfR0VOOV9MUChkZXZfcHJpdikgPwogCQkg ICAgICAoSTkxNV9SRUFEKHJlZ3MucHBfY3RybCkgJiBCWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFT SykgOgogCQkgICAgICBJOTE1X1JFQUQocmVncy5wcF9kaXYpKTsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcGlvX3BoeS5jCmluZGV4IDdhOGU4MmQuLjhjNjJkZWEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHBpb19waHkuYwpAQCAtMzE3LDcgKzMxNyw2IEBAIHN0YXRpYyB2b2lkIF9i eHRfZGRpX3BoeV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJaWYg KGJ4dF9kZGlfcGh5X3ZlcmlmeV9zdGF0ZShkZXZfcHJpdiwgcGh5KSkgewogCQkJRFJNX0RFQlVH X0RSSVZFUigiRERJIFBIWSAlZCBhbHJlYWR5IGVuYWJsZWQsICIKIAkJCQkJICJ3b24ndCByZXBy b2dyYW0gaXRcbiIsIHBoeSk7Ci0KIAkJCXJldHVybjsKIAkJfQogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBsbF9tZ3IuYwppbmRleCA1OGE3NTZmLi45NzZkMzkwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwbGxfbWdyLmMKQEAgLTE4NjAsNyArMTg2MCw3IEBAIHZvaWQgaW50ZWxfc2hh cmVkX2RwbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJaWYgKElTX1NLWUxBS0Uo ZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKIAkJZHBsbF9tZ3IgPSAmc2tsX3Bs bF9tZ3I7Ci0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJZWxzZSBpZiAoSVNfR0VO OV9MUChkZXZfcHJpdikpCiAJCWRwbGxfbWdyID0gJmJ4dF9wbGxfbWdyOwogCWVsc2UgaWYgKEhB U19EREkoZGV2X3ByaXYpKQogCQlkcGxsX21nciA9ICZoc3dfcGxsX21ncjsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpLmMKaW5kZXggM2JjNjIxMy4uMDY2OGJiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpLmMKQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kc2lfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJLyogRFNJIHVzZXMgc2hvcnQg cGFja2V0cyBmb3Igc3luYyBldmVudHMsIHNvIGNsZWFyIG1vZGUgZmxhZ3MgZm9yIERTSSAqLwog CWFkanVzdGVkX21vZGUtPmZsYWdzID0gMDsKIAotCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkg eworCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewogCQkvKiBEdWFsIGxpbmsgZ29lcyB0byBE U0kgdHJhbnNjb2RlciBBLiAqLwogCQlpZiAoaW50ZWxfZHNpLT5wb3J0cyA9PSBCSVQoUE9SVF9D KSkKIAkJCXBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciA9IFRSQU5TQ09ERVJfRFNJX0M7CkBA IC00NDEsNyArNDQxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2RldmljZV9yZWFkeShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2 KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJdmx2X2RzaV9kZXZpY2VfcmVhZHkoZW5j b2Rlcik7Ci0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJZWxzZSBpZiAoSVNfR0VO OV9MUChkZXZfcHJpdikpCiAJCWJ4dF9kc2lfZGV2aWNlX3JlYWR5KGVuY29kZXIpOwogfQogCkBA IC00NjQsNyArNDY0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3BvcnRfZW5hYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCX0KIAogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQs IGludGVsX2RzaS0+cG9ydHMpIHsKLQkJaTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJU19CUk9YVE9O KGRldl9wcml2KSA/CisJCWk5MTVfcmVnX3QgcG9ydF9jdHJsID0gSVNfR0VOOV9MUChkZXZfcHJp dikgPwogCQkJQlhUX01JUElfUE9SVF9DVFJMKHBvcnQpIDogTUlQSV9QT1JUX0NUUkwocG9ydCk7 CiAJCXUzMiB0ZW1wOwogCkBAIC00OTcsNyArNDk3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNp X3BvcnRfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAllbnVtIHBvcnQg cG9ydDsKIAogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKLQkJ aTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJU19CUk9YVE9OKGRldl9wcml2KSA/CisJCWk5MTVfcmVn X3QgcG9ydF9jdHJsID0gSVNfR0VOOV9MUChkZXZfcHJpdikgPwogCQkJQlhUX01JUElfUE9SVF9D VFJMKHBvcnQpIDogTUlQSV9QT1JUX0NUUkwocG9ydCk7CiAJCXUzMiB0ZW1wOwogCkBAIC02NjYs NyArNjY2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2NsZWFyX2RldmljZV9yZWFkeShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAlEUk1fREVCVUdfS01TKCJcbiIpOwogCWZvcl9l YWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKIAkJLyogQ29tbW9uIGJpdCBm b3IgYm90aCBNSVBJIFBvcnQgQSAmIE1JUEkgUG9ydCBDIG9uIFZMVi9DSFYgKi8KLQkJaTkxNV9y ZWdfdCBwb3J0X2N0cmwgPSBJU19CUk9YVE9OKGRldl9wcml2KSA/CisJCWk5MTVfcmVnX3QgcG9y dF9jdHJsID0gSVNfR0VOOV9MUChkZXZfcHJpdikgPwogCQkJQlhUX01JUElfUE9SVF9DVFJMKHBv cnQpIDogTUlQSV9QT1JUX0NUUkwoUE9SVF9BKTsKIAkJdTMyIHZhbDsKIApAQCAtNzU4LDEyICs3 NTgsMTIgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAkgKiBjb25maWd1cmF0aW9uLCBvdGhlcndpc2UgYWNjZXNzaW5n IERTSSByZWdpc3RlcnMgd2lsbCBoYW5nIHRoZQogCSAqIG1hY2hpbmUuIFNlZSBCU3BlYyBOb3J0 aCBEaXNwbGF5IEVuZ2luZSByZWdpc3RlcnMvTUlQSVtCWFRdLgogCSAqLwotCWlmIChJU19CUk9Y VE9OKGRldl9wcml2KSAmJiAhaW50ZWxfZHNpX3BsbF9pc19lbmFibGVkKGRldl9wcml2KSkKKwlp ZiAoSVNfR0VOOV9MUChkZXZfcHJpdikgJiYgIWludGVsX2RzaV9wbGxfaXNfZW5hYmxlZChkZXZf cHJpdikpCiAJCWdvdG8gb3V0X3B1dF9wb3dlcjsKIAogCS8qIFhYWDogdGhpcyBvbmx5IHdvcmtz IGZvciBvbmUgRFNJIG91dHB1dCAqLwogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2Rz aS0+cG9ydHMpIHsKLQkJaTkxNV9yZWdfdCBjdHJsX3JlZyA9IElTX0JST1hUT04oZGV2X3ByaXYp ID8KKwkJaTkxNV9yZWdfdCBjdHJsX3JlZyA9IElTX0dFTjlfTFAoZGV2X3ByaXYpID8KIAkJCUJY VF9NSVBJX1BPUlRfQ1RSTChwb3J0KSA6IE1JUElfUE9SVF9DVFJMKHBvcnQpOwogCQlib29sIGVu YWJsZWQgPSBJOTE1X1JFQUQoY3RybF9yZWcpICYgRFBJX0VOQUJMRTsKIApAQCAtNzg4LDcgKzc4 OCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RzaV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJCWlmICghKEk5MTVfUkVBRChNSVBJX0RFVklDRV9SRUFEWShwb3J0 KSkgJiBERVZJQ0VfUkVBRFkpKQogCQkJY29udGludWU7CiAKLQkJaWYgKElTX0JST1hUT04oZGV2 X3ByaXYpKSB7CisJCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewogCQkJdTMyIHRtcCA9IEk5 MTVfUkVBRChNSVBJX0NUUkwocG9ydCkpOwogCQkJdG1wICY9IEJYVF9QSVBFX1NFTEVDVF9NQVNL OwogCQkJdG1wID4+PSBCWFRfUElQRV9TRUxFQ1RfU0hJRlQ7CkBAIC05NzYsNyArOTc2LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHNpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJdTMyIHBjbGs7CiAJRFJNX0RFQlVHX0tNUygiXG4iKTsKIAotCWlmIChJU19CUk9Y VE9OKGRldl9wcml2KSkKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCWJ4dF9kc2lfZ2V0 X3BpcGVfY29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKIAogCXBjbGsgPSBpbnRlbF9kc2lf Z2V0X3BjbGsoZW5jb2RlciwgcGlwZV9jb25maWctPnBpcGVfYnBwLApAQCAtMTA2OCw3ICsxMDY4 LDcgQEAgc3RhdGljIHZvaWQgc2V0X2RzaV90aW1pbmdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKIAloYnAgPSB0eGJ5dGVjbGtocyhoYnAsIGJwcCwgbGFuZV9jb3VudCwgaW50ZWxfZHNp LT5idXJzdF9tb2RlX3JhdGlvKTsKIAogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2Rz aS0+cG9ydHMpIHsKLQkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CisJCWlmIChJU19HRU45 X0xQKGRldl9wcml2KSkgewogCQkJLyoKIAkJCSAqIFByb2dyYW0gaGRpc3BsYXkgYW5kIHZkaXNw bGF5IG9uIE1JUEkgdHJhbnNjb2Rlci4KIAkJCSAqIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gY2Fs Y3VsYXRlZCBoYWN0aXZlIGFuZApAQCAtMTE1NSw3ICsxMTU1LDcgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZHNpX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCiAJCQl0 bXAgJj0gflJFQURfUkVRVUVTVF9QUklPUklUWV9NQVNLOwogCQkJSTkxNV9XUklURShNSVBJX0NU UkwocG9ydCksIHRtcCB8CiAJCQkJCVJFQURfUkVRVUVTVF9QUklPUklUWV9ISUdIKTsKLQkJfSBl bHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgeworCQl9IGVsc2UgaWYgKElTX0dFTjlfTFAo ZGV2X3ByaXYpKSB7CiAJCQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAKIAkJ CXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocG9ydCkpOwpAQCAtMTE5Myw3ICsxMTkzLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIsCiAJaWYgKGludGVsX2RzaS0+Y2xvY2tfc3RvcCkKIAkJdG1wIHw9IENMT0NLU1RP UDsKIAotCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgeworCWlmIChJU19HRU45X0xQKGRldl9w cml2KSkgewogCQl0bXAgfD0gQlhUX0RQSFlfREVGRUFUVVJFX0VOOwogCQlpZiAoIWlzX2NtZF9t b2RlKGludGVsX2RzaSkpCiAJCQl0bXAgfD0gQlhUX0RFRkVBVFVSRV9EUElfRklGT19DVFI7CkBA IC0xMjQ0LDcgKzEyNDQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlcGFyZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKIAkJSTkxNV9XUklURShNSVBJX0lOSVRfQ09V TlQocG9ydCksCiAJCQkJdHhjbGtlc2MoaW50ZWxfZHNpLT5lc2NhcGVfY2xrX2RpdiwgMTAwKSk7 CiAKLQkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpICYmICghaW50ZWxfZHNpLT5kdWFsX2xpbmsp KSB7CisJCWlmIChJU19HRU45X0xQKGRldl9wcml2KSAmJiAoIWludGVsX2RzaS0+ZHVhbF9saW5r KSkgewogCQkJLyoKIAkJCSAqIEJYVCBzcGVjIHNheXMgd3JpdGUgTUlQSV9JTklUX0NPVU5UIGZv cgogCQkJICogYm90aCB0aGUgcG9ydHMsIGV2ZW4gaWYgb25seSBvbmUgaXMKQEAgLTE0NTQsNyAr MTQ1NCw3IEBAIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5taXBpX21taW9fYmFzZSA9IFZMVl9NSVBJX0JBU0U7 Ci0JfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgeworCX0gZWxzZSBpZiAoSVNfR0VO OV9MUChkZXZfcHJpdikpIHsKIAkJZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlID0gQlhUX01JUElf QkFTRTsKIAl9IGVsc2UgewogCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIE1pcGkgZGV2aWNlIHRv IHJlZyBiYXNlIik7CkBAIC0xNDk1LDcgKzE0OTUsNyBAQCB2b2lkIGludGVsX2RzaV9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBPbiBCWVQvQ0hWLCBwaXBlIEEg bWFwcyB0byBNSVBJIERTSSBwb3J0IEEsIHBpcGUgQiBtYXBzIHRvIE1JUEkgRFNJCiAJICogcG9y dCBDLiBCWFQgaXNuJ3QgbGltaXRlZCBsaWtlIHRoaXMuCiAJICovCi0JaWYgKElTX0JST1hUT04o ZGV2X3ByaXYpKQorCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJaW50ZWxfZW5jb2Rlci0+ Y3J0Y19tYXNrID0gQklUKFBJUEVfQSkgfCBCSVQoUElQRV9CKSB8IEJJVChQSVBFX0MpOwogCWVs c2UgaWYgKHBvcnQgPT0gUE9SVF9BKQogCQlpbnRlbF9lbmNvZGVyLT5jcnRjX21hc2sgPSBCSVQo UElQRV9BKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wbGwu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wbGwuYwppbmRleCA1NmVmZjYwLi5j ZjhjMWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jCkBAIC0zNTEsNyArMzUx LDcgQEAgc3RhdGljIHUzMiBieHRfZHNpX2dldF9wY2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLCBpbnQgcGlwZV9icHAsCiB1MzIgaW50ZWxfZHNpX2dldF9wY2xrKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLCBpbnQgcGlwZV9icHAsCiAJCSAgICAgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY29uZmlnKQogewotCWlmIChJU19CUk9YVE9OKHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpKSkKKwlpZiAoSVNfR0VOOV9MUCh0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KSkp CiAJCXJldHVybiBieHRfZHNpX2dldF9wY2xrKGVuY29kZXIsIHBpcGVfYnBwLCBjb25maWcpOwog CWVsc2UKIAkJcmV0dXJuIHZsdl9kc2lfZ2V0X3BjbGsoZW5jb2RlciwgcGlwZV9icHAsIGNvbmZp Zyk7CkBAIC01MDQsNyArNTA0LDcgQEAgc3RhdGljIHZvaWQgYnh0X2VuYWJsZV9kc2lfcGxsKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiBib29sIGludGVsX2RzaV9wbGxfaXNfZW5h YmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JaWYgKElTX0JST1hU T04oZGV2X3ByaXYpKQorCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJcmV0dXJuIGJ4dF9k c2lfcGxsX2lzX2VuYWJsZWQoZGV2X3ByaXYpOwogCiAJTUlTU0lOR19DQVNFKElOVEVMX0RFVklE KGRldl9wcml2KSk7CkBAIC01MTksNyArNTE5LDcgQEAgaW50IGludGVsX2NvbXB1dGVfZHNpX3Bs bChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCWlmIChJU19WQUxMRVlWSUVXKGRl dl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJcmV0dXJuIHZsdl9jb21wdXRl X2RzaV9wbGwoZW5jb2RlciwgY29uZmlnKTsKLQllbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2 KSkKKwllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJcmV0dXJuIGJ4dF9jb21wdXRl X2RzaV9wbGwoZW5jb2RlciwgY29uZmlnKTsKIAogCXJldHVybiAtRU5PREVWOwpAQCAtNTMyLDcg KzUzMiw3IEBAIHZvaWQgaW50ZWxfZW5hYmxlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAKIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklF VyhkZXZfcHJpdikpCiAJCXZsdl9lbmFibGVfZHNpX3BsbChlbmNvZGVyLCBjb25maWcpOwotCWVs c2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3By aXYpKQogCQlieHRfZW5hYmxlX2RzaV9wbGwoZW5jb2RlciwgY29uZmlnKTsKIH0KIApAQCAtNTQy LDcgKzU0Miw3IEBAIHZvaWQgaW50ZWxfZGlzYWJsZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQogCiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKQogCQl2bHZfZGlzYWJsZV9kc2lfcGxsKGVuY29kZXIpOwotCWVsc2Ug aWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYp KQogCQlieHRfZGlzYWJsZV9kc2lfcGxsKGVuY29kZXIpOwogfQogCkBAIC01NjYsNyArNTY2LDcg QEAgdm9pZCBpbnRlbF9kc2lfcmVzZXRfY2xvY2tzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLCBlbnVtIHBvcnQgcG9ydCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAotCWlmIChJU19CUk9YVE9OKGRldl9w cml2KSkKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCWJ4dF9kc2lfcmVzZXRfY2xvY2tz KGVuY29kZXIsIHBvcnQpOwogCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQl2bHZfZHNpX3Jlc2V0X2Nsb2NrcyhlbmNvZGVyLCBw b3J0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwppbmRleCAzNzRlMzhhLi4wYmNmZWFkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCkBAIC0xMjUxLDcgKzEyNTEsNyBAQCBoZG1pX3Bv 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 X3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCmluZGV4IDA4YWI2 ZDcuLjM1NzhiNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVs LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwpAQCAtMTc1Niw3ICsx NzU2LDcgQEAgaW50ZWxfcGFuZWxfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX3Bh bmVsICpwYW5lbCkKIAkgICAgaW50ZWxfZHNpX2Rjc19pbml0X2JhY2tsaWdodF9mdW5jcyhjb25u ZWN0b3IpID09IDApCiAJCXJldHVybjsKIAotCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewor CWlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewogCQlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0g Ynh0X3NldHVwX2JhY2tsaWdodDsKIAkJcGFuZWwtPmJhY2tsaWdodC5lbmFibGUgPSBieHRfZW5h YmxlX2JhY2tsaWdodDsKIAkJcGFuZWwtPmJhY2tsaWdodC5kaXNhYmxlID0gYnh0X2Rpc2FibGVf YmFja2xpZ2h0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggMjliNjY1My4uMGIxN2E0ZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC01MjA4LDcgKzUyMDgsNyBAQCBpbnQgc2FuaXRp emVfcmM2X29wdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBlbmFi bGVfcmM2KQogCWlmICghZW5hYmxlX3JjNikKIAkJcmV0dXJuIDA7CiAKLQlpZiAoSVNfQlJPWFRP TihkZXZfcHJpdikgJiYgIWJ4dF9jaGVja19iaW9zX3JjNl9zZXR1cChkZXZfcHJpdikpIHsKKwlp ZiAoSVNfR0VOOV9MUChkZXZfcHJpdikgJiYgIWJ4dF9jaGVja19iaW9zX3JjNl9zZXR1cChkZXZf cHJpdikpIHsKIAkJRFJNX0lORk8oIlJDNiBkaXNhYmxlZCBieSBCSU9TXG4iKTsKIAkJcmV0dXJu IDA7CiAJfQpAQCAtNTI0Miw3ICs1MjQyLDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9pbml0X3Jwc19m cmVxdWVuY2llcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJLyogQWxsIG9m IHRoZXNlIHZhbHVlcyBhcmUgaW4gdW5pdHMgb2YgNTBNSHogKi8KIAogCS8qIHN0YXRpYyB2YWx1 ZXMgZnJvbSBIVzogUlAwID4gUlAxID4gUlBuIChtaW5fZnJlcSkgKi8KLQlpZiAoSVNfQlJPWFRP TihkZXZfcHJpdikpIHsKKwlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKIAkJdTMyIHJwX3N0 YXRlX2NhcCA9IEk5MTVfUkVBRChCWFRfUlBfU1RBVEVfQ0FQKTsKIAkJZGV2X3ByaXYtPnJwcy5y cDBfZnJlcSA9IChycF9zdGF0ZV9jYXAgPj4gMTYpICYgMHhmZjsKIAkJZGV2X3ByaXYtPnJwcy5y cDFfZnJlcSA9IChycF9zdGF0ZV9jYXAgPj4gIDgpICYgMHhmZjsKQEAgLTc2MjIsNyArNzYyMiw3 IEBAIHZvaWQgaW50ZWxfaW5pdF9jbG9ja19nYXRpbmdfaG9va3Moc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2NrX2dhdGluZyA9 IHNreWxha2VfaW5pdF9jbG9ja19nYXRpbmc7CiAJZWxzZSBpZiAoSVNfS0FCWUxBS0UoZGV2X3By aXYpKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2NrX2dhdGluZyA9IGthYnlsYWtlX2lu aXRfY2xvY2tfZ2F0aW5nOwotCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWVsc2Ug aWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2Nr X2dhdGluZyA9IGJ4dF9pbml0X2Nsb2NrX2dhdGluZzsKIAllbHNlIGlmIChJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2NrX2dhdGluZyA9IGJyb2Fk d2VsbF9pbml0X2Nsb2NrX2dhdGluZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVf cG0uYwppbmRleCAzNTZjNjYyLi42NmFiMWM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cnVudGltZV9wbS5jCkBAIC01MzAsNyArNTMwLDcgQEAgc3RhdGljIHUzMiBnZW45X2RjX21hc2so c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXUzMiBtYXNrOwogCiAJbWFzayA9 IERDX1NUQVRFX0VOX1VQVE9fREM1OwotCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKKwlpZiAo SVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCW1hc2sgfD0gRENfU1RBVEVfRU5fREM5OwogCWVsc2UK IAkJbWFzayB8PSBEQ19TVEFURV9FTl9VUFRPX0RDNjsKQEAgLTkxMSw3ICs5MTEsNyBAQCBzdGF0 aWMgdm9pZCBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAKIAlnZW45X2Fzc2VydF9kYnVmX2VuYWJsZWQoZGV2X3ByaXYpOwog Ci0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQorCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkK IAkJYnh0X3ZlcmlmeV9kZGlfcGh5X3Bvd2VyX3dlbGxzKGRldl9wcml2KTsKIH0KIApAQCAtMjE3 MCw3ICsyMTcwLDcgQEAgc3RhdGljIHVpbnQzMl90IGdldF9hbGxvd2VkX2RjX21hc2soY29uc3Qg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChJU19TS1lMQUtFKGRldl9w cml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKIAkJbWF4X2RjID0gMjsKIAkJbWFzayA9 IDA7Ci0JfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgeworCX0gZWxzZSBpZiAoSVNf R0VOOV9MUChkZXZfcHJpdikpIHsKIAkJbWF4X2RjID0gMTsKIAkJLyoKIAkJICogREM5IGhhcyBh IHNlcGFyYXRlIEhXIGZsb3cgZnJvbSB0aGUgcmVzdCBvZiB0aGUgREMgc3RhdGVzLAotLSAKMi41 LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=