From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 3/3] drm/i915: Pass atomic state to backlight enable/disable/set callbacks. Date: Mon, 12 Jun 2017 12:21:15 +0200 Message-ID: <20170612102115.23665-4-maarten.lankhorst@linux.intel.com> References: <20170612102115.23665-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id B3C7F89CB9 for ; Mon, 12 Jun 2017 10:21:27 +0000 (UTC) In-Reply-To: <20170612102115.23665-1-maarten.lankhorst@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 List-Id: intel-gfx@lists.freedesktop.org UGFzcyBjcnRjX3N0YXRlIHRvIHRoZSBlbmFibGUgY2FsbGJhY2ssIGFuZCBjb25uZWN0b3Jfc3Rh dGUgdG8gYWxsIGNhbGxiYWNrcy4KVGhpcyB3aWxsIGVsaW1pbmF0ZSB0aGUgbmVlZCB0byBndWVz cyBmb3IgdGhlIGNvcnJlY3QgcGlwZSBpbiB0aGVzZQpjYWxsYmFja3MuCgpUaGUgY3J0YyBzdGF0 ZSBpcyByZXF1aXJlZCBmb3IgcGNoX2VuYWJsZV9iYWNrbGlnaHQgdG8gb2J0YWluIHRoZSBjb3Jy ZWN0CmNwdV90cmFuc2NvZGVyLgoKaW50ZWxfZHBfYXV4X2JhY2tsaWdodCdzIHNldHVwIGZ1bmN0 aW9uIGlzIGNhbGxlZCBiZWZvcmUgaHcgcmVhZG91dCwgc28KY3J0Y19zdGF0ZSBhbmQgY29ubmVj dG9yX3N0YXRlLT5iZXN0X2VuY29kZXIgYXJlIE5VTEwgaW4gdGhlIGVuYWJsZSgpCmFuZCBzZXQo KSBjYWxsYmFja3MuCgpUaGlzIGZpeGVzIHRoZSBmb2xsb3dpbmcgc2VyaWVzIG9mIHdhcm5zIGZy b20gaW50ZWxfZ2V0X3BpcGVfZnJvbV9jb25uZWN0b3I6ClsgIDIxOS45Njg0MjhdIC0tLS0tLS0t LS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQpbICAyMTkuOTY4NDgxXSBXQVJOSU5HOiBDUFU6 IDMgUElEOiAyNDU3IGF0CmRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYzoxMzg4 MQppbnRlbF9nZXRfcGlwZV9mcm9tX2Nvbm5lY3RvcisweDYyLzB4OTAgW2k5MTVdClsgIDIxOS45 Njg0ODNdCldBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmZGV2LT5tb2RlX2NvbmZpZy5j b25uZWN0aW9uX211dGV4KSkKWyAgMjE5Ljk2ODQ4NV0gTW9kdWxlcyBsaW5rZWQgaW46IG5sc19p c284ODU5XzEgc25kX2hkYV9jb2RlY19oZG1pCnNuZF9oZGFfY29kZWNfcmVhbHRlayBzbmRfaGRh X2NvZGVjX2dlbmVyaWMgc25kX2hkYV9pbnRlbCBzbmRfaGRhX2NvZGVjCnNuZF9oZGFfY29yZSBz bmRfaHdkZXAgc25kX3BjbSBpbnRlbF9yYXBsIHg4Nl9wa2dfdGVtcF90aGVybWFsIGNvcmV0ZW1w Cmt2bV9pbnRlbCBzbmRfc2VxX21pZGkgc25kX3NlcV9taWRpX2V2ZW50IGt2bSBzbmRfcmF3bWlk aSBpcnFieXBhc3MKY3JjdDEwZGlmX3BjbG11bCBjcmMzMl9wY2xtdWwgZ2hhc2hfY2xtdWxuaV9p bnRlbCBwY2JjIHNuZF9zZXEKc25kX3NlcV9kZXZpY2Ugc2VyaW9fcmF3IHNuZF90aW1lciBhZXNu aV9pbnRlbCBhZXNfeDg2XzY0IGNyeXB0b19zaW1kCmdsdWVfaGVscGVyIGNyeXB0ZCBscGNfaWNo IHNuZCBtZWlfbWUgc2hwY2hwIHNvdW5kY29yZSBtZWkgcmZraWxsX2dwaW8KbWFjX2hpZCBpbnRl bF9wbWNfaXBjIHBhcnBvcnRfcGMgcHBkZXYgbHAgcGFycG9ydCBpcF90YWJsZXMgeF90YWJsZXMK YXV0b2ZzNCBoaWRfZ2VuZXJpYyB1c2JoaWQgaWdiIGFoY2kgaTkxNSB4aGNpX3BjaSBkY2EgeGhj aV9oY2QgcHRwCnNkaGNpX3BjaSBzZGhjaSBsaWJhaGNpIHBwc19jb3JlIGkyY19oaWQgaGlkIHZp ZGVvClsgIDIxOS45Njg1NzNdIENQVTogMyBQSUQ6IDI0NTcgQ29tbToga3dvcmtlci91ODozIFRh aW50ZWQ6IEcgICAgICAgIFcKNC4xMC4wLXRpcC0yMDE3MDMwMTAxNTkrICMyClsgIDIxOS45Njg1 NzVdIEhhcmR3YXJlIG5hbWU6IEludGVsIENvcnAuIEJyb3h0b24gUC9OT1RFQk9PSywgQklPUwpB UExLUlZQQS5YNjQuMDE0NC5CMTAuMTYwNjI3MDAwNiAwNi8yNy8yMDE2ClsgIDIxOS45Njg2Mjdd IFdvcmtxdWV1ZTogZXZlbnRzX3VuYm91bmQgaW50ZWxfYXRvbWljX2NvbW1pdF93b3JrIFtpOTE1 XQpbICAyMTkuOTY4NjI5XSBDYWxsIFRyYWNlOgpbICAyMTkuOTY4NjQwXSAgZHVtcF9zdGFjaysw eDYzLzB4ODcKWyAgMjE5Ljk2ODY0Nl0gIF9fd2FybisweGQxLzB4ZjAKWyAgMjE5Ljk2ODY1MV0g IHdhcm5fc2xvd3BhdGhfZm10KzB4NGYvMHg2MApbICAyMTkuOTY4NjU3XSAgPyBkcm1fcHJpbnRr KzB4OTcvMHhhMApbICAyMTkuOTY4NzA4XSAgaW50ZWxfZ2V0X3BpcGVfZnJvbV9jb25uZWN0b3Ir MHg2Mi8weDkwIFtpOTE1XQpbICAyMTkuOTY4NzU2XSAgaW50ZWxfcGFuZWxfZW5hYmxlX2JhY2ts aWdodCsweDE5LzB4ZjAgW2k5MTVdClsgIDIxOS45Njg4MDRdICBpbnRlbF9lZHBfYmFja2xpZ2h0 X29uLnBhcnQuMjIrMHgzMy8weDQwIFtpOTE1XQpbICAyMTkuOTY4ODUyXSAgaW50ZWxfZWRwX2Jh Y2tsaWdodF9vbisweDE4LzB4MjAgW2k5MTVdClsgIDIxOS45Njg5MDBdICBpbnRlbF9lbmFibGVf ZGRpKzB4OTQvMHhjMCBbaTkxNV0KWyAgMjE5Ljk2ODk1MF0gIGludGVsX2VuY29kZXJzX2VuYWJs ZS5pc3JhLjkzKzB4NzcvMHg5MCBbaTkxNV0KWyAgMjE5Ljk2OTAwMF0gIGhhc3dlbGxfY3J0Y19l bmFibGUrMHgzMTAvMHg3ZjAgW2k5MTVdClsgIDIxOS45NjkwNTFdICBpbnRlbF91cGRhdGVfY3J0 YysweDU4LzB4MTAwIFtpOTE1XQpbICAyMTkuOTY5MTAxXSAgc2tsX3VwZGF0ZV9jcnRjcysweDIx OC8weDI0MCBbaTkxNV0KWyAgMjE5Ljk2OTE1M10gIGludGVsX2F0b21pY19jb21taXRfdGFpbCsw eDM1MC8weDEwMDAgW2k5MTVdClsgIDIxOS45NjkxNTldICA/IHZ0aW1lX2FjY291bnRfaWRsZSsw eGUvMHg1MApbICAyMTkuOTY5MTY0XSAgPyBmaW5pc2hfdGFza19zd2l0Y2grMHgxMDcvMHgyNTAK WyAgMjE5Ljk2OTIxNF0gIGludGVsX2F0b21pY19jb21taXRfd29yaysweDEyLzB4MjAgW2k5MTVd ClsgIDIxOS45NjkyMTldICBwcm9jZXNzX29uZV93b3JrKzB4MTUzLzB4M2YwClsgIDIxOS45Njky MjNdICB3b3JrZXJfdGhyZWFkKzB4MTJiLzB4NGIwClsgIDIxOS45NjkyMjddICBrdGhyZWFkKzB4 MTAxLzB4MTQwClsgIDIxOS45NjkyMzBdICA/IHJlc2N1ZXJfdGhyZWFkKzB4MzQwLzB4MzQwClsg IDIxOS45NjkyMzNdICA/IGt0aHJlYWRfcGFyaysweDkwLzB4OTAKWyAgMjE5Ljk2OTIzN10gID8g ZG9fc3lzY2FsbF82NCsweDZlLzB4MTgwClsgIDIxOS45NjkyNDNdICByZXRfZnJvbV9mb3JrKzB4 MmMvMHg0MApbICAyMTkuOTY5MjQ2XSAtLS1bIGVuZCB0cmFjZSAwYThmYTE5Mzg3YjlhZDZkIF0t LS0KCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9p ZD0xMDAwMjIKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hv cnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9h dXhfYmFja2xpZ2h0LmMgIHwgIDI1ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oICAgICAgICAgICAgICAgfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aV9kY3NfYmFja2xpZ2h0LmMgfCAgMjIgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cGFuZWwuYyAgICAgICAgICAgICB8IDE1NyArKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiA0IGZp bGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspLCA5NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMKaW5kZXggYTA5OTVjMDBm Yzg0Li42Y2M2Mjk4MGQwZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwX2F1eF9iYWNrbGlnaHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9h dXhfYmFja2xpZ2h0LmMKQEAgLTc4LDggKzc4LDEzIEBAIHN0YXRpYyB1aW50MzJfdCBpbnRlbF9k cF9hdXhfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAg KiA4LWJpdCBvciAxNiBiaXQgdmFsdWUgKE1TQiBhbmQgTFNCKQogICovCiBzdGF0aWMgdm9pZAot aW50ZWxfZHBfYXV4X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yLCB1MzIgbGV2ZWwpCitpbnRlbF9kcF9hdXhfc2V0X2JhY2tsaWdodChjb25zdCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwgdTMyIGxldmVsKQogeworCS8qCisJICog Y29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyIGlzIGxpa2VseSBOVUxMIHdoZW4gY2FsbGVkIGZyb20K KwkgKiBpbnRlbF9kcF9hdXhfc2V0dXBfYmFja2xpZ2h0KCkKKwkgKi8KKwlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29u bmVjdG9yKTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZj b25uZWN0b3ItPmVuY29kZXItPmJhc2UpOwogCXVpbnQ4X3QgdmFsc1syXSA9IHsgMHgwIH07CiAK QEAgLTk3LDggKzEwMiwxNCBAQCBpbnRlbF9kcF9hdXhfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKIAl9CiB9CiAKLXN0YXRpYyB2b2lk IGludGVsX2RwX2F1eF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikKK3N0YXRpYyB2b2lkIGludGVsX2RwX2F1eF9lbmFibGVfYmFja2xpZ2h0KGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJCQkgIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogeworCXN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0 b3IpOworCS8qCisJICogY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyIChhbmQgY3J0Y19zdGF0ZSkg YXJlIE5VTEwgd2hlbiBjYWxsZWQgZnJvbQorCSAqIGludGVsX2RwX2F1eF9zZXR1cF9iYWNrbGln aHQoKQorCSAqLwogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAo JmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7CiAJdWludDhfdCBkcGNkX2J1ZiA9IDA7CiAJdWlu dDhfdCBlZHBfYmFja2xpZ2h0X21vZGUgPSAwOwpAQCAtMTMxLDEyICsxNDIsMTIgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogCX0KIAogCXNldF9hdXhfYmFja2xpZ2h0X2VuYWJsZShpbnRlbF9kcCwg dHJ1ZSk7Ci0JaW50ZWxfZHBfYXV4X3NldF9iYWNrbGlnaHQoY29ubmVjdG9yLCBjb25uZWN0b3It PnBhbmVsLmJhY2tsaWdodC5sZXZlbCk7CisJaW50ZWxfZHBfYXV4X3NldF9iYWNrbGlnaHQoY29u bl9zdGF0ZSwgY29ubmVjdG9yLT5wYW5lbC5iYWNrbGlnaHQubGV2ZWwpOwogfQogCi1zdGF0aWMg dm9pZCBpbnRlbF9kcF9hdXhfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQorc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2Rpc2FibGVfYmFja2xpZ2h0 KGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKIHsKLQlz ZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoZW5jX3RvX2ludGVsX2RwKCZjb25uZWN0b3ItPmVuY29k ZXItPmJhc2UpLCBmYWxzZSk7CisJc2V0X2F1eF9iYWNrbGlnaHRfZW5hYmxlKGVuY190b19pbnRl bF9kcChvbGRfY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKSwgZmFsc2UpOwogfQogCiBzdGF0aWMg aW50IGludGVsX2RwX2F1eF9zZXR1cF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yLApAQCAtMTQ1LDcgKzE1Niw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfYXV4X3Nl dHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCiAJc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmY29ubmVjdG9yLT5lbmNvZGVy LT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7 CiAKLQlpbnRlbF9kcF9hdXhfZW5hYmxlX2JhY2tsaWdodChjb25uZWN0b3IpOworCWludGVsX2Rw X2F1eF9lbmFibGVfYmFja2xpZ2h0KE5VTEwsIGNvbm5lY3Rvci0+YmFzZS5zdGF0ZSk7CiAKIAlp ZiAoaW50ZWxfZHAtPmVkcF9kcGNkWzJdICYgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX0JZ VEVfQ09VTlQpCiAJCXBhbmVsLT5iYWNrbGlnaHQubWF4ID0gMHhGRkZGOwpAQCAtMTY1LDcgKzE3 Niw3IEBAIGludGVsX2RwX2F1eF9kaXNwbGF5X2NvbnRyb2xfY2FwYWJsZShzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVu Y190b19pbnRlbF9kcCgmY29ubmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsKIAotCS8qIENoZWNrIHRo ZSAgZURQIERpc3BsYXkgY29udHJvbCBjYXBhYmlsaXRpZXMgcmVnaXN0ZXJzIHRvIGRldGVybWlu ZSBpZgorCS8qIENoZWNrIHRoZSBlRFAgRGlzcGxheSBjb250cm9sIGNhcGFiaWxpdGllcyByZWdp c3RlcnMgdG8gZGV0ZXJtaW5lIGlmCiAJICogdGhlIHBhbmVsIGNhbiBzdXBwb3J0IGJhY2tsaWdo dCBjb250cm9sIG92ZXIgdGhlIGF1eCBjaGFubmVsCiAJICovCiAJaWYgKGludGVsX2RwLT5lZHBf ZHBjZFsxXSAmIERQX0VEUF9UQ09OX0JBQ0tMSUdIVF9BREpVU1RNRU5UX0NBUCAmJgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAppbmRleCBkYjIwNDJhNzVkNDIuLjE4NTI4YTQ3N2NmNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTI4OCw5ICsyODgsMTAgQEAgc3RydWN0IGludGVsX3Bh bmVsIHsKIAkJLyogQ29ubmVjdG9yIGFuZCBwbGF0Zm9ybSBzcGVjaWZpYyBiYWNrbGlnaHQgZnVu Y3Rpb25zICovCiAJCWludCAoKnNldHVwKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IsIGVudW0gcGlwZSBwaXBlKTsKIAkJdWludDMyX3QgKCpnZXQpKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3Rvcik7Ci0JCXZvaWQgKCpzZXQpKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvciwgdWludDMyX3QgbGV2ZWwpOwotCQl2b2lkICgqZGlzYWJsZSkoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKLQkJdm9pZCAoKmVuYWJsZSkoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKKwkJdm9pZCAoKnNldCkoY29uc3Qgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsIHVpbnQzMl90IGxldmVsKTsKKwkJdm9pZCAoKmRp c2FibGUpKGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKKwkJ dm9pZCAoKmVuYWJsZSkoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CisJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp OwogCQl1aW50MzJfdCAoKmh6X3RvX3B3bSkoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yLAogCQkJCSAgICAgIHVpbnQzMl90IGh6KTsKIAkJdm9pZCAoKnBvd2VyKShzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICosIGJvb2wgZW5hYmxlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RzaV9kY3NfYmFja2xpZ2h0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2lfZGNzX2JhY2tsaWdodC5jCmluZGV4IGFjN2M2MDIwYzQ0My4uNmUwOWNlYjcxNTAw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfZGNzX2JhY2tsaWdo dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9kY3NfYmFja2xpZ2h0LmMK QEAgLTYwLDEwICs2MCw5IEBAIHN0YXRpYyB1MzIgZGNzX2dldF9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiBkYXRhOwogfQogCi1zdGF0aWMgdm9p ZCBkY3Nfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUz MiBsZXZlbCkKK3N0YXRpYyB2b2lkIGRjc19zZXRfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLCB1MzIgbGV2ZWwpCiB7Ci0Jc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Ci0Jc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CisJc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShjb25uX3N0YXRlLT5iZXN0 X2VuY29kZXIpOwogCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7CiAJdTggZGF0 YSA9IGxldmVsOwogCWVudW0gcG9ydCBwb3J0OwpAQCAtNzYsMTQgKzc1LDEzIEBAIHN0YXRpYyB2 b2lkIGRjc19zZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvciwg dTMyIGxldmVsKQogCX0KIH0KIAotc3RhdGljIHZvaWQgZGNzX2Rpc2FibGVfYmFja2xpZ2h0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyB2b2lkIGRjc19kaXNhYmxl X2JhY2tsaWdodChjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK IHsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsK LQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVy LT5iYXNlKTsKKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNp KGNvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7CiAJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNp X2RldmljZTsKIAllbnVtIHBvcnQgcG9ydDsKIAotCWRjc19zZXRfYmFja2xpZ2h0KGNvbm5lY3Rv ciwgMCk7CisJZGNzX3NldF9iYWNrbGlnaHQoY29ubl9zdGF0ZSwgMCk7CiAKIAlmb3JfZWFjaF9k c2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPmRjc19jYWJjX3BvcnRzKSB7CiAJCXU4IGNhYmMgPSBQ T1dFUl9TQVZFX09GRjsKQEAgLTExMCwxMSArMTA4LDExIEBAIHN0YXRpYyB2b2lkIGRjc19kaXNh YmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJfQogfQog Ci1zdGF0aWMgdm9pZCBkY3NfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCitzdGF0aWMgdm9pZCBkY3NfZW5hYmxlX2JhY2tsaWdodChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkgY29uc3Qgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Ci0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp ID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Ci0Jc3RydWN0IGludGVsX3BhbmVs ICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOworCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2Rz aSA9IGVuY190b19pbnRlbF9kc2koY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKTsKKwlzdHJ1Y3Qg aW50ZWxfcGFuZWwgKnBhbmVsID0gJnRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25u ZWN0b3IpLT5wYW5lbDsKIAlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOwogCWVu dW0gcG9ydCBwb3J0OwogCkBAIC0xNDIsNyArMTQwLDcgQEAgc3RhdGljIHZvaWQgZGNzX2VuYWJs ZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkJCSAgICZj YWJjLCBzaXplb2YoY2FiYykpOwogCX0KIAotCWRjc19zZXRfYmFja2xpZ2h0KGNvbm5lY3Rvciwg cGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7CisJZGNzX3NldF9iYWNrbGlnaHQoY29ubl9zdGF0ZSwg cGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7CiB9CiAKIHN0YXRpYyBpbnQgZGNzX3NldHVwX2JhY2ts aWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcGFuZWwuYwppbmRleCA4Y2I1NzMxNjY0MjEuLjk2YzJjYmQ4MTg2OSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wYW5lbC5jCkBAIC01NjEsMTUgKzU2MSwxOCBAQCBzdGF0aWMgdTMyIGludGVs X3BhbmVsX2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQog CXJldHVybiB2YWw7CiB9CiAKLXN0YXRpYyB2b2lkIGxwdF9zZXRfYmFja2xpZ2h0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIGxldmVsKQorc3RhdGljIHZvaWQgbHB0X3Nl dF9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUs IHUzMiBsZXZlbCkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19p bnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCiAJdTMy IHZhbCA9IEk5MTVfUkVBRChCTENfUFdNX1BDSF9DVEwyKSAmIH5CQUNLTElHSFRfRFVUWV9DWUNM RV9NQVNLOwogCUk5MTVfV1JJVEUoQkxDX1BXTV9QQ0hfQ1RMMiwgdmFsIHwgbGV2ZWwpOwogfQog Ci1zdGF0aWMgdm9pZCBwY2hfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IsIHUzMiBsZXZlbCkKK3N0YXRpYyB2b2lkIHBjaF9zZXRfYmFja2xpZ2h0KGNvbnN0 IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLCB1MzIgbGV2ZWwpCiB7CisJ c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNv bm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAl1MzIgdG1wOwogCkBAIC01NzcsOCAr NTgwLDkgQEAgc3RhdGljIHZvaWQgcGNoX3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCiAJSTkxNV9XUklURShCTENfUFdNX0NQVV9DVEws IHRtcCB8IGxldmVsKTsKIH0KIAotc3RhdGljIHZvaWQgaTl4eF9zZXRfYmFja2xpZ2h0KHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIGxldmVsKQorc3RhdGljIHZvaWQgaTl4 eF9zZXRfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlLCB1MzIgbGV2ZWwpCiB7CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0g dG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7CiAJdTMyIHRtcCwg bWFzazsKQEAgLTYwNCw1MCArNjA4LDUxIEBAIHN0YXRpYyB2b2lkIGk5eHhfc2V0X2JhY2tsaWdo dChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKIAlJOTE1X1dS SVRFKEJMQ19QV01fQ1RMLCB0bXAgfCBsZXZlbCk7CiB9CiAKLXN0YXRpYyB2b2lkIHZsdl9zZXRf YmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIGxldmVsKQor c3RhdGljIHZvaWQgdmx2X3NldF9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5fc3RhdGUsIHUzMiBsZXZlbCkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+ YmFzZS5kZXYpOwotCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfZ2V0X3BpcGVfZnJvbV9jb25uZWN0 b3IoY29ubmVjdG9yKTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY29ubl9zdGF0 ZS0+Y3J0YyktPnBpcGU7CiAJdTMyIHRtcDsKIAotCWlmIChXQVJOX09OKHBpcGUgIT0gUElQRV9B ICYmIHBpcGUgIT0gUElQRV9CKSkKLQkJcmV0dXJuOwotCiAJdG1wID0gSTkxNV9SRUFEKFZMVl9C TENfUFdNX0NUTChwaXBlKSkgJiB+QkFDS0xJR0hUX0RVVFlfQ1lDTEVfTUFTSzsKIAlJOTE1X1dS SVRFKFZMVl9CTENfUFdNX0NUTChwaXBlKSwgdG1wIHwgbGV2ZWwpOwogfQogCi1zdGF0aWMgdm9p ZCBieHRfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUz MiBsZXZlbCkKK3N0YXRpYyB2b2lkIGJ4dF9zZXRfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLCB1MzIgbGV2ZWwpCiB7CisJc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNv bm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj b25uZWN0b3ItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5l Y3Rvci0+cGFuZWw7CiAKIAlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0RVVFkocGFuZWwtPmJhY2ts aWdodC5jb250cm9sbGVyKSwgbGV2ZWwpOwogfQogCi1zdGF0aWMgdm9pZCBwd21fc2V0X2JhY2ts aWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKK3N0YXRp YyB2b2lkIHB3bV9zZXRfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlLCB1MzIgbGV2ZWwpCiB7Ci0Jc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9 ICZjb25uZWN0b3ItPnBhbmVsOworCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmdG9faW50 ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3RvciktPnBhbmVsOwogCWludCBkdXR5X25z ID0gRElWX1JPVU5EX1VQKGxldmVsICogQ1JDX1BNSUNfUFdNX1BFUklPRF9OUywgMTAwKTsKIAog CXB3bV9jb25maWcocGFuZWwtPmJhY2tsaWdodC5wd20sIGR1dHlfbnMsIENSQ19QTUlDX1BXTV9Q RVJJT0RfTlMpOwogfQogCiBzdGF0aWMgdm9pZAotaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2Jh Y2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKK2lu dGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUsIHUzMiBsZXZlbCkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9y KTsKIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7CiAKIAlE Uk1fREVCVUdfRFJJVkVSKCJzZXQgYmFja2xpZ2h0IFBXTSA9ICVkXG4iLCBsZXZlbCk7CiAKIAls ZXZlbCA9IGludGVsX3BhbmVsX2NvbXB1dGVfYnJpZ2h0bmVzcyhjb25uZWN0b3IsIGxldmVsKTsK LQlwYW5lbC0+YmFja2xpZ2h0LnNldChjb25uZWN0b3IsIGxldmVsKTsKKwlwYW5lbC0+YmFja2xp Z2h0LnNldChjb25uX3N0YXRlLCBsZXZlbCk7CiB9CiAKIC8qIHNldCBiYWNrbGlnaHQgYnJpZ2h0 bmVzcyB0byBsZXZlbCBpbiByYW5nZSBbMC4ubWF4XSwgc2NhbGluZyB3cnQgaHcgbWluICovCi1z dGF0aWMgdm9pZCBpbnRlbF9wYW5lbF9zZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvciwKK3N0YXRpYyB2b2lkIGludGVsX3BhbmVsX3NldF9iYWNrbGlnaHQoY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsCiAJCQkJICAgICAgdTMy IHVzZXJfbGV2ZWwsIHUzMiB1c2VyX21heCkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFz ZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsK IAl1MzIgaHdfbGV2ZWw7CkBAIC02NjMsNyArNjY4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcGFu ZWxfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCiAJcGFu ZWwtPmJhY2tsaWdodC5sZXZlbCA9IGh3X2xldmVsOwogCiAJaWYgKHBhbmVsLT5iYWNrbGlnaHQu ZW5hYmxlZCkKLQkJaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uZWN0b3Is IGh3X2xldmVsKTsKKwkJaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uX3N0 YXRlLCBod19sZXZlbCk7CiAKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5iYWNrbGlnaHRfbG9j ayk7CiB9CkBAIC03MDIsMTcgKzcwNywxOCBAQCB2b2lkIGludGVsX3BhbmVsX3NldF9iYWNrbGln aHRfYWNwaShjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZQogCQkJ CQkgcGFuZWwtPmJhY2tsaWdodC5kZXZpY2UtPnByb3BzLm1heF9icmlnaHRuZXNzKTsKIAogCWlm IChwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQpCi0JCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9i YWNrbGlnaHQoY29ubmVjdG9yLCBod19sZXZlbCk7CisJCWludGVsX3BhbmVsX2FjdHVhbGx5X3Nl dF9iYWNrbGlnaHQoY29ubl9zdGF0ZSwgaHdfbGV2ZWwpOwogCiAJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+YmFja2xpZ2h0X2xvY2spOwogfQogCi1zdGF0aWMgdm9pZCBscHRfZGlzYWJsZV9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQorc3RhdGljIHZvaWQgbHB0 X2Rpc2FibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRf Y29ubl9zdGF0ZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19p bnRlbF9jb25uZWN0b3Iob2xkX2Nvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAl1 MzIgdG1wOwogCi0JaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uZWN0b3Is IDApOworCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQob2xkX2Nvbm5fc3RhdGUs IDApOwogCiAJLyoKIAkgKiBBbHRob3VnaCB3ZSBkb24ndCBzdXBwb3J0IG9yIGVuYWJsZSBDUFUg UFdNIHdpdGggTFBUL1NQVCBiYXNlZApAQCAtNzMyLDEyICs3MzgsMTMgQEAgc3RhdGljIHZvaWQg bHB0X2Rpc2FibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK IAlJOTE1X1dSSVRFKEJMQ19QV01fUENIX0NUTDEsIHRtcCAmIH5CTE1fUENIX1BXTV9FTkFCTEUp OwogfQogCi1zdGF0aWMgdm9pZCBwY2hfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQorc3RhdGljIHZvaWQgcGNoX2Rpc2FibGVfYmFja2xpZ2h0KGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKIHsKKwlzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3Iob2xkX2Nv bm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAl1MzIgdG1wOwogCi0JaW50ZWxfcGFu ZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsIDApOworCWludGVsX3BhbmVsX2Fj dHVhbGx5X3NldF9iYWNrbGlnaHQob2xkX2Nvbm5fc3RhdGUsIDApOwogCiAJdG1wID0gSTkxNV9S RUFEKEJMQ19QV01fQ1BVX0NUTDIpOwogCUk5MTVfV1JJVEUoQkxDX1BXTV9DUFVfQ1RMMiwgdG1w ICYgfkJMTV9QV01fRU5BQkxFKTsKQEAgLTc0Niw0NCArNzUzLDQzIEBAIHN0YXRpYyB2b2lkIHBj aF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJ STkxNV9XUklURShCTENfUFdNX1BDSF9DVEwxLCB0bXAgJiB+QkxNX1BDSF9QV01fRU5BQkxFKTsK IH0KIAotc3RhdGljIHZvaWQgaTl4eF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCitzdGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVfYmFja2xpZ2h0KGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKIHsKLQlpbnRl bF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgMCk7CisJaW50ZWxfcGFu ZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChvbGRfY29ubl9zdGF0ZSwgMCk7CiB9CiAKLXN0YXRp YyB2b2lkIGk5NjVfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQorc3RhdGljIHZvaWQgaTk2NV9kaXNhYmxlX2JhY2tsaWdodChjb25zdCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9sZF9jb25uX3N0YXRlLT5j b25uZWN0b3ItPmRldik7CiAJdTMyIHRtcDsKIAotCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9i YWNrbGlnaHQoY29ubmVjdG9yLCAwKTsKKwlpbnRlbF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xp Z2h0KG9sZF9jb25uX3N0YXRlLCAwKTsKIAogCXRtcCA9IEk5MTVfUkVBRChCTENfUFdNX0NUTDIp OwogCUk5MTVfV1JJVEUoQkxDX1BXTV9DVEwyLCB0bXAgJiB+QkxNX1BXTV9FTkFCTEUpOwogfQog Ci1zdGF0aWMgdm9pZCB2bHZfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQorc3RhdGljIHZvaWQgdmx2X2Rpc2FibGVfYmFja2xpZ2h0KGNvbnN0IHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKIHsKKwlzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3Iob2xkX2Nvbm5fc3Rh dGUtPmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKLQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2dldF9w aXBlX2Zyb21fY29ubmVjdG9yKGNvbm5lY3Rvcik7CisJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRl bF9jcnRjKG9sZF9jb25uX3N0YXRlLT5jcnRjKS0+cGlwZTsKIAl1MzIgdG1wOwogCi0JaWYgKFdB Uk5fT04ocGlwZSAhPSBQSVBFX0EgJiYgcGlwZSAhPSBQSVBFX0IpKQotCQlyZXR1cm47Ci0KLQlp bnRlbF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgMCk7CisJaW50ZWxf cGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChvbGRfY29ubl9zdGF0ZSwgMCk7CiAKIAl0bXAg PSBJOTE1X1JFQUQoVkxWX0JMQ19QV01fQ1RMMihwaXBlKSk7CiAJSTkxNV9XUklURShWTFZfQkxD X1BXTV9DVEwyKHBpcGUpLCB0bXAgJiB+QkxNX1BXTV9FTkFCTEUpOwogfQogCi1zdGF0aWMgdm9p ZCBieHRfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQorc3RhdGljIHZvaWQgYnh0X2Rpc2FibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3Iob2xkX2Nvbm5fc3RhdGUtPmNvbm5lY3Rv cik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0 b3ItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+ cGFuZWw7CiAJdTMyIHRtcCwgdmFsOwogCi0JaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2ts aWdodChjb25uZWN0b3IsIDApOworCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQo b2xkX2Nvbm5fc3RhdGUsIDApOwogCiAJdG1wID0gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0NUTChw YW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsKIAlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NU TChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLApAQCAtNzk2LDIxICs4MDIsMjMgQEAgc3Rh dGljIHZvaWQgYnh0X2Rpc2FibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGNucF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCitzdGF0aWMgdm9pZCBjbnBfZGlzYWJsZV9i YWNrbGlnaHQoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRl KQogeworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5l Y3RvcihvbGRfY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRl bF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKIAl1MzIgdG1wOwogCi0JaW50ZWxf cGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsIDApOworCWludGVsX3BhbmVs X2FjdHVhbGx5X3NldF9iYWNrbGlnaHQob2xkX2Nvbm5fc3RhdGUsIDApOwogCiAJdG1wID0gSTkx NV9SRUFEKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsKIAlJ OTE1X1dSSVRFKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLAog CQkgICB0bXAgJiB+QlhUX0JMQ19QV01fRU5BQkxFKTsKIH0KIAotc3RhdGljIHZvaWQgcHdtX2Rp c2FibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRp YyB2b2lkIHB3bV9kaXNhYmxlX2JhY2tsaWdodChjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCiB7CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yID0gdG9faW50ZWxfY29ubmVjdG9yKG9sZF9jb25uX3N0YXRlLT5jb25uZWN0b3IpOwogCXN0 cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKIAogCS8qIERpc2Fi bGUgdGhlIGJhY2tsaWdodCAqLwpAQCAtODQ0LDEzICs4NTIsMTUgQEAgdm9pZCBpbnRlbF9wYW5l bF9kaXNhYmxlX2JhY2tsaWdodChjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xk X2Nvbm5fc3QKIAlpZiAocGFuZWwtPmJhY2tsaWdodC5kZXZpY2UpCiAJCXBhbmVsLT5iYWNrbGln aHQuZGV2aWNlLT5wcm9wcy5wb3dlciA9IEZCX0JMQU5LX1BPV0VSRE9XTjsKIAlwYW5lbC0+YmFj a2xpZ2h0LmVuYWJsZWQgPSBmYWxzZTsKLQlwYW5lbC0+YmFja2xpZ2h0LmRpc2FibGUoY29ubmVj dG9yKTsKKwlwYW5lbC0+YmFja2xpZ2h0LmRpc2FibGUob2xkX2Nvbm5fc3RhdGUpOwogCiAJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YmFja2xpZ2h0X2xvY2spOwogfQogCi1zdGF0aWMgdm9pZCBs cHRfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCitz dGF0aWMgdm9pZCBscHRfZW5hYmxlX2JhY2tsaWdodChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGUpCiB7CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gdG9f aW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7CiAJdTMyIHBjaF9jdGwx LCBwY2hfY3RsMiwgc2NoaWNrZW47CkBAIC04OTQsMjIgKzkwNCwxOCBAQCBzdGF0aWMgdm9pZCBs cHRfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJ STkxNV9XUklURShCTENfUFdNX1BDSF9DVEwxLCBwY2hfY3RsMSB8IEJMTV9QQ0hfUFdNX0VOQUJM RSk7CiAKIAkvKiBUaGlzIHdvbid0IHN0aWNrIHVudGlsIHRoZSBhYm92ZSBlbmFibGUuICovCi0J aW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsIHBhbmVsLT5iYWNr bGlnaHQubGV2ZWwpOworCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQoY29ubl9z dGF0ZSwgcGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7CiB9CiAKLXN0YXRpYyB2b2lkIHBjaF9lbmFi bGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyB2 b2lkIHBjaF9lbmFibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAorCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9j b25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRl bF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKLQllbnVtIHBpcGUgcGlwZSA9IGlu dGVsX2dldF9waXBlX2Zyb21fY29ubmVjdG9yKGNvbm5lY3Rvcik7Ci0JZW51bSB0cmFuc2NvZGVy IGNwdV90cmFuc2NvZGVyOworCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNf c3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCXUzMiBjcHVfY3RsMiwgcGNoX2N0bDEsIHBjaF9jdGwy OwogCi0JaWYgKCFXQVJOX09OX09OQ0UocGlwZSA9PSBJTlZBTElEX1BJUEUpKQotCQljcHVfdHJh bnNjb2RlciA9IGludGVsX3BpcGVfdG9fY3B1X3RyYW5zY29kZXIoZGV2X3ByaXYsIHBpcGUpOwot CWVsc2UKLQkJY3B1X3RyYW5zY29kZXIgPSBUUkFOU0NPREVSX0VEUDsKLQogCWNwdV9jdGwyID0g STkxNV9SRUFEKEJMQ19QV01fQ1BVX0NUTDIpOwogCWlmIChjcHVfY3RsMiAmIEJMTV9QV01fRU5B QkxFKSB7CiAJCURSTV9ERUJVR19LTVMoImNwdSBiYWNrbGlnaHQgYWxyZWFkeSBlbmFibGVkXG4i KTsKQEAgLTkzMyw3ICs5MzksNyBAQCBzdGF0aWMgdm9pZCBwY2hfZW5hYmxlX2JhY2tsaWdodChz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJSTkxNV9XUklURShCTENfUFdNX0NQ VV9DVEwyLCBjcHVfY3RsMiB8IEJMTV9QV01fRU5BQkxFKTsKIAogCS8qIFRoaXMgd29uJ3Qgc3Rp Y2sgdW50aWwgdGhlIGFib3ZlIGVuYWJsZS4gKi8KLQlpbnRlbF9wYW5lbF9hY3R1YWxseV9zZXRf YmFja2xpZ2h0KGNvbm5lY3RvciwgcGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7CisJaW50ZWxfcGFu ZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uX3N0YXRlLCBwYW5lbC0+YmFja2xpZ2h0Lmxl dmVsKTsKIAogCXBjaF9jdGwyID0gcGFuZWwtPmJhY2tsaWdodC5tYXggPDwgMTY7CiAJSTkxNV9X UklURShCTENfUFdNX1BDSF9DVEwyLCBwY2hfY3RsMik7CkBAIC05NDcsOCArOTUzLDEwIEBAIHN0 YXRpYyB2b2lkIHBjaF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikKIAlJOTE1X1dSSVRFKEJMQ19QV01fUENIX0NUTDEsIHBjaF9jdGwxIHwgQkxNX1BD SF9QV01fRU5BQkxFKTsKIH0KIAotc3RhdGljIHZvaWQgaTl4eF9lbmFibGVfYmFja2xpZ2h0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyB2b2lkIGk5eHhfZW5hYmxl X2JhY2tsaWdodChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJ CQkgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogeworCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25u X3N0YXRlLT5jb25uZWN0b3IpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3BhbmVsICpwYW5l bCA9ICZjb25uZWN0b3ItPnBhbmVsOwogCXUzMiBjdGwsIGZyZXE7CkBAIC05NzMsNyArOTgxLDcg QEAgc3RhdGljIHZvaWQgaTl4eF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKIAlQT1NUSU5HX1JFQUQoQkxDX1BXTV9DVEwpOwogCiAJLyogWFhYOiBj b21iaW5lIHRoaXMgaW50byBhYm92ZSB3cml0ZT8gKi8KLQlpbnRlbF9wYW5lbF9hY3R1YWxseV9z ZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgcGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7CisJaW50ZWxf cGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uX3N0YXRlLCBwYW5lbC0+YmFja2xpZ2h0 LmxldmVsKTsKIAogCS8qCiAJICogTmVlZGVkIHRvIGVuYWJsZSBiYWNrbGlnaHQgb24gc29tZSA4 NTVnbSBtb2RlbHMuIEJMQ19ISVNUX0NUTCBpcwpAQCAtOTg0LDE2ICs5OTIsMTUgQEAgc3RhdGlj IHZvaWQgaTl4eF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIAkJSTkxNV9XUklURShCTENfSElTVF9DVEwsIEJMTV9ISVNUT0dSQU1fRU5BQkxFKTsK IH0KIAotc3RhdGljIHZvaWQgaTk2NV9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyB2b2lkIGk5NjVfZW5hYmxlX2JhY2tsaWdodChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkgIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogeworCXN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0 b3IpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVj dG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3It PnBhbmVsOwotCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfZ2V0X3BpcGVfZnJvbV9jb25uZWN0b3Io Y29ubmVjdG9yKTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY29ubl9zdGF0ZS0+ Y3J0YyktPnBpcGU7CiAJdTMyIGN0bCwgY3RsMiwgZnJlcTsKIAotCWlmIChXQVJOX09OX09OQ0Uo cGlwZSA9PSBJTlZBTElEX1BJUEUpKQotCQlwaXBlID0gUElQRV9BOwotCiAJY3RsMiA9IEk5MTVf UkVBRChCTENfUFdNX0NUTDIpOwogCWlmIChjdGwyICYgQkxNX1BXTV9FTkFCTEUpIHsKIAkJRFJN X0RFQlVHX0tNUygiYmFja2xpZ2h0IGFscmVhZHkgZW5hYmxlZFxuIik7CkBAIC0xMDE3LDE5ICsx MDI0LDE4IEBAIHN0YXRpYyB2b2lkIGk5NjVfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCiAJUE9TVElOR19SRUFEKEJMQ19QV01fQ1RMMik7CiAJSTkx NV9XUklURShCTENfUFdNX0NUTDIsIGN0bDIgfCBCTE1fUFdNX0VOQUJMRSk7CiAKLQlpbnRlbF9w YW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgcGFuZWwtPmJhY2tsaWdodC5s ZXZlbCk7CisJaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uX3N0YXRlLCBw YW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKIH0KIAotc3RhdGljIHZvaWQgdmx2X2VuYWJsZV9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQorc3RhdGljIHZvaWQgdmx2 X2VuYWJsZV9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCisJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQog eworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rv cihjb25uX3N0YXRlLT5jb25uZWN0b3IpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3BhbmVs ICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwotCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfZ2V0 X3BpcGVfZnJvbV9jb25uZWN0b3IoY29ubmVjdG9yKTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKIAl1MzIgY3RsLCBjdGwyOwog Ci0JaWYgKFdBUk5fT04ocGlwZSAhPSBQSVBFX0EgJiYgcGlwZSAhPSBQSVBFX0IpKQotCQlyZXR1 cm47Ci0KIAljdGwyID0gSTkxNV9SRUFEKFZMVl9CTENfUFdNX0NUTDIocGlwZSkpOwogCWlmIChj dGwyICYgQkxNX1BXTV9FTkFCTEUpIHsKIAkJRFJNX0RFQlVHX0tNUygiYmFja2xpZ2h0IGFscmVh ZHkgZW5hYmxlZFxuIik7CkBAIC0xMDQxLDcgKzEwNDcsNyBAQCBzdGF0aWMgdm9pZCB2bHZfZW5h YmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJSTkxNV9X UklURShWTFZfQkxDX1BXTV9DVEwocGlwZSksIGN0bCk7CiAKIAkvKiBYWFg6IGNvbWJpbmUgdGhp cyBpbnRvIGFib3ZlIHdyaXRlPyAqLwotCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGln aHQoY29ubmVjdG9yLCBwYW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKKwlpbnRlbF9wYW5lbF9hY3R1 YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5fc3RhdGUsIHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwpOwog CiAJY3RsMiA9IDA7CiAJaWYgKHBhbmVsLT5iYWNrbGlnaHQuYWN0aXZlX2xvd19wd20pCkBAIC0x MDUxLDE2ICsxMDU3LDE1IEBAIHN0YXRpYyB2b2lkIHZsdl9lbmFibGVfYmFja2xpZ2h0KHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlJOTE1X1dSSVRFKFZMVl9CTENfUFdNX0NU TDIocGlwZSksIGN0bDIgfCBCTE1fUFdNX0VOQUJMRSk7CiB9CiAKLXN0YXRpYyB2b2lkIGJ4dF9l bmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRp YyB2b2lkIGJ4dF9lbmFibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAorCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bl9zdGF0ZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRl bF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBp bnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKLQllbnVtIHBpcGUgcGlwZSA9 IGludGVsX2dldF9waXBlX2Zyb21fY29ubmVjdG9yKGNvbm5lY3Rvcik7CisJZW51bSBwaXBlIHBp cGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7CiAJdTMyIHB3 bV9jdGwsIHZhbDsKIAotCWlmIChXQVJOX09OX09OQ0UocGlwZSA9PSBJTlZBTElEX1BJUEUpKQot CQlwaXBlID0gUElQRV9BOwotCiAJLyogQ29udHJvbGxlciAxIHVzZXMgdGhlIHV0aWxpdHkgcGlu LiAqLwogCWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIgPT0gMSkgewogCQl2YWwgPSBJ OTE1X1JFQUQoVVRJTF9QSU5fQ1RMKTsKQEAgLTEwODgsNyArMTA5Myw3IEBAIHN0YXRpYyB2b2lk IGJ4dF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK IAlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0ZSRVEocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVy KSwKIAkJCXBhbmVsLT5iYWNrbGlnaHQubWF4KTsKIAotCWludGVsX3BhbmVsX2FjdHVhbGx5X3Nl dF9iYWNrbGlnaHQoY29ubmVjdG9yLCBwYW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKKwlpbnRlbF9w YW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5fc3RhdGUsIHBhbmVsLT5iYWNrbGlnaHQu bGV2ZWwpOwogCiAJcHdtX2N0bCA9IDA7CiAJaWYgKHBhbmVsLT5iYWNrbGlnaHQuYWN0aXZlX2xv d19wd20pCkBAIC0xMTAwLDggKzExMDUsMTAgQEAgc3RhdGljIHZvaWQgYnh0X2VuYWJsZV9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkJcHdtX2N0bCB8IEJY VF9CTENfUFdNX0VOQUJMRSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNucF9lbmFibGVfYmFja2xpZ2h0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyB2b2lkIGNucF9lbmFi bGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAor CQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKKwlz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29u bl9zdGF0ZS0+Y29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFu ZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKIAl1MzIgcHdtX2N0bDsKQEAgLTExMTcsNyArMTEyNCw3 IEBAIHN0YXRpYyB2b2lkIGNucF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKIAlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0ZSRVEocGFuZWwtPmJhY2ts aWdodC5jb250cm9sbGVyKSwKIAkJICAgcGFuZWwtPmJhY2tsaWdodC5tYXgpOwogCi0JaW50ZWxf cGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsIHBhbmVsLT5iYWNrbGlnaHQu bGV2ZWwpOworCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQoY29ubl9zdGF0ZSwg cGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7CiAKIAlwd21fY3RsID0gMDsKIAlpZiAocGFuZWwtPmJh Y2tsaWdodC5hY3RpdmVfbG93X3B3bSkKQEAgLTExMjksMTIgKzExMzYsMTQgQEAgc3RhdGljIHZv aWQgY25wX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogCQkgICBwd21fY3RsIHwgQlhUX0JMQ19QV01fRU5BQkxFKTsKIH0KIAotc3RhdGljIHZvaWQg cHdtX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQor c3RhdGljIHZvaWQgcHdtX2VuYWJsZV9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCisJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlKQogeworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRv X2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3IpOwogCXN0cnVjdCBpbnRlbF9w YW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKIAogCXB3bV9lbmFibGUocGFuZWwtPmJh Y2tsaWdodC5wd20pOwotCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQoY29ubmVj dG9yLCBwYW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKKwlpbnRlbF9wYW5lbF9hY3R1YWxseV9zZXRf YmFja2xpZ2h0KGNvbm5fc3RhdGUsIHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwpOwogfQogCiB2b2lk IGludGVsX3BhbmVsX2VuYWJsZV9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCkBAIC0xMTYzLDcgKzExNzIsNyBAQCB2b2lkIGludGVsX3BhbmVsX2Vu YWJsZV9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiAJCQkJCQkgcGFuZWwtPmJhY2tsaWdodC5kZXZpY2UtPnByb3BzLm1heF9icmlnaHRuZXNzKTsK IAl9CiAKLQlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZShjb25uZWN0b3IpOworCXBhbmVsLT5iYWNr bGlnaHQuZW5hYmxlKGNydGNfc3RhdGUsIGNvbm5fc3RhdGUpOwogCXBhbmVsLT5iYWNrbGlnaHQu ZW5hYmxlZCA9IHRydWU7CiAJaWYgKHBhbmVsLT5iYWNrbGlnaHQuZGV2aWNlKQogCQlwYW5lbC0+ YmFja2xpZ2h0LmRldmljZS0+cHJvcHMucG93ZXIgPSBGQl9CTEFOS19VTkJMQU5LOwpAQCAtMTE4 MSw3ICsxMTkwLDcgQEAgc3RhdGljIGludCBpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3VwZGF0ZV9z dGF0dXMoc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJkKQogCWRybV9tb2Rlc2V0X2xvY2soJmRl di0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7CiAJRFJNX0RFQlVHX0tNUygi dXBkYXRpbmcgaW50ZWxfYmFja2xpZ2h0LCBicmlnaHRuZXNzPSVkLyVkXG4iLAogCQkgICAgICBi ZC0+cHJvcHMuYnJpZ2h0bmVzcywgYmQtPnByb3BzLm1heF9icmlnaHRuZXNzKTsKLQlpbnRlbF9w YW5lbF9zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgYmQtPnByb3BzLmJyaWdodG5lc3MsCisJaW50 ZWxfcGFuZWxfc2V0X2JhY2tsaWdodChjb25uZWN0b3ItPmJhc2Uuc3RhdGUsIGJkLT5wcm9wcy5i cmlnaHRuZXNzLAogCQkJCSAgYmQtPnByb3BzLm1heF9icmlnaHRuZXNzKTsKIAogCS8qCi0tIAoy LjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=