From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rex Zhu Subject: [PATCH] drm/amdgpu: Remove wrapper layer of cgs irq handling Date: Tue, 20 Mar 2018 19:25:59 +0800 Message-ID: <1521545159-17550-1-git-send-email-Rex.Zhu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Rex Zhu MS4gcmVtb3ZlIHN0cnVjdCBjZ3Nfb3Nfb3BzCjIuIGRlbGV0ZSBjZ3NfbGludXguaAozLiByZWZp bmUgdGhlIGlycSBjb2RlIGZvciB2ZWdhMTAKCkNoYW5nZS1JZDogSTFiMWI1NmMzODU5NmU2MzJm ZTYyN2M0MzZhNTA3MmFlNWIzNTliOGMKU2lnbmVkLW9mZi1ieTogUmV4IFpodSA8UmV4LlpodUBh bWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL2luY2x1ZGUvYWNwX2dmeF9pZi5o ICAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jZ3MuYyAg ICAgICAgICAgIHwgMTExIC0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9vc190eXBlcy5oICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2luY2x1ZGUvY2dzX2NvbW1vbi5oICAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9k cm0vYW1kL2luY2x1ZGUvY2dzX2xpbnV4LmggICAgICAgICAgICB8IDExOSAtLS0tLS0tLS0tLS0t LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdyLmMgICAg ICAgIHwgIDQ2ICstLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9z bXVfaGVscGVyLmMgICB8ICAyOCArKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkv aHdtZ3Ivc211X2hlbHBlci5oICAgfCAgIDUgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBs YXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMgfCAgMzYgKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmggICAgICAgICAgfCAgIDUgLQogMTAgZmlsZXMgY2hhbmdl ZCwgNTYgaW5zZXJ0aW9ucygrKSwgMjk4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jZ3NfbGludXguaAoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYWNwL2luY2x1ZGUvYWNwX2dmeF9pZi5oIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hY3AvaW5jbHVkZS9hY3BfZ2Z4X2lmLmgKaW5kZXggYTcyZGRiMmYuLmZlYWI4ZWIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL2luY2x1ZGUvYWNwX2dmeF9pZi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL2luY2x1ZGUvYWNwX2dmeF9pZi5oCkBAIC0y NSw3ICsyNSw2IEBACiAjZGVmaW5lIF9BQ1BfR0ZYX0lGX0gKIAogI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+Ci0jaW5jbHVkZSAiY2dzX2xpbnV4LmgiCiAjaW5jbHVkZSAiY2dzX2NvbW1vbi5oIgog CiBpbnQgYW1kX2FjcF9od19pbml0KHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nncy5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nncy5jCmluZGV4IDViMzdjMWEuLjBmMmIzNzYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jZ3MuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY2dzLmMKQEAgLTI4LDcgKzI4LDYg QEAKICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgogI2luY2x1ZGUgPGRybS9hbWRncHVfZHJt Lmg+CiAjaW5jbHVkZSAiYW1kZ3B1LmgiCi0jaW5jbHVkZSAiY2dzX2xpbnV4LmgiCiAjaW5jbHVk ZSAiYXRvbS5oIgogI2luY2x1ZGUgImFtZGdwdV91Y29kZS5oIgogCkBAIC0xODIsMTA5ICsxODEs NiBAQCBzdGF0aWMgaW50IGFtZGdwdV9jZ3NfYXRvbV9leGVjX2NtZF90YWJsZShzdHJ1Y3QgY2dz X2RldmljZSAqY2dzX2RldmljZSwgdW5zaWduZQogCQlhZGV2LT5tb2RlX2luZm8uYXRvbV9jb250 ZXh0LCB0YWJsZSwgYXJncyk7CiB9CiAKLXN0cnVjdCBjZ3NfaXJxX3BhcmFtcyB7Ci0JdW5zaWdu ZWQgc3JjX2lkOwotCWNnc19pcnFfc291cmNlX3NldF9mdW5jX3Qgc2V0OwotCWNnc19pcnFfaGFu ZGxlcl9mdW5jX3QgaGFuZGxlcjsKLQl2b2lkICpwcml2YXRlX2RhdGE7Ci19OwotCi1zdGF0aWMg aW50IGNnc19zZXRfaXJxX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJICAg ICBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMgKnNyYywKLQkJCSAgICAgdW5zaWduZWQgdHlwZSwKLQkJ CSAgICAgZW51bSBhbWRncHVfaW50ZXJydXB0X3N0YXRlIHN0YXRlKQotewotCXN0cnVjdCBjZ3Nf aXJxX3BhcmFtcyAqaXJxX3BhcmFtcyA9Ci0JCShzdHJ1Y3QgY2dzX2lycV9wYXJhbXMgKilzcmMt PmRhdGE7Ci0JaWYgKCFpcnFfcGFyYW1zKQotCQlyZXR1cm4gLUVJTlZBTDsKLQlpZiAoIWlycV9w YXJhbXMtPnNldCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JcmV0dXJuIGlycV9wYXJhbXMtPnNldChp cnFfcGFyYW1zLT5wcml2YXRlX2RhdGEsCi0JCQkgICAgICAgaXJxX3BhcmFtcy0+c3JjX2lkLAot CQkJICAgICAgIHR5cGUsCi0JCQkgICAgICAgKGludClzdGF0ZSk7Ci19Ci0KLXN0YXRpYyBpbnQg Y2dzX3Byb2Nlc3NfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJICAgc3RydWN0 IGFtZGdwdV9pcnFfc3JjICpzb3VyY2UsCi0JCQkgICBzdHJ1Y3QgYW1kZ3B1X2l2X2VudHJ5ICpl bnRyeSkKLXsKLQlzdHJ1Y3QgY2dzX2lycV9wYXJhbXMgKmlycV9wYXJhbXMgPQotCQkoc3RydWN0 IGNnc19pcnFfcGFyYW1zICopc291cmNlLT5kYXRhOwotCWlmICghaXJxX3BhcmFtcykKLQkJcmV0 dXJuIC1FSU5WQUw7Ci0JaWYgKCFpcnFfcGFyYW1zLT5oYW5kbGVyKQotCQlyZXR1cm4gLUVJTlZB TDsKLQlyZXR1cm4gaXJxX3BhcmFtcy0+aGFuZGxlcihpcnFfcGFyYW1zLT5wcml2YXRlX2RhdGEs Ci0JCQkJICAgaXJxX3BhcmFtcy0+c3JjX2lkLAotCQkJCSAgIGVudHJ5LT5pdl9lbnRyeSk7Ci19 Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MgY2dzX2lycV9mdW5j cyA9IHsKLQkuc2V0ID0gY2dzX3NldF9pcnFfc3RhdGUsCi0JLnByb2Nlc3MgPSBjZ3NfcHJvY2Vz c19pcnEsCi19OwotCi1zdGF0aWMgaW50IGFtZGdwdV9jZ3NfYWRkX2lycV9zb3VyY2Uodm9pZCAq Y2dzX2RldmljZSwKLQkJCQkgICAgIHVuc2lnbmVkIGNsaWVudF9pZCwKLQkJCQkgICAgIHVuc2ln bmVkIHNyY19pZCwKLQkJCQkgICAgIHVuc2lnbmVkIG51bV90eXBlcywKLQkJCQkgICAgIGNnc19p cnFfc291cmNlX3NldF9mdW5jX3Qgc2V0LAotCQkJCSAgICAgY2dzX2lycV9oYW5kbGVyX2Z1bmNf dCBoYW5kbGVyLAotCQkJCSAgICAgdm9pZCAqcHJpdmF0ZV9kYXRhKQotewotCUNHU19GVU5DX0FE RVY7Ci0JaW50IHJldCA9IDA7Ci0Jc3RydWN0IGNnc19pcnFfcGFyYW1zICppcnFfcGFyYW1zOwot CXN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlID0KLQkJa3phbGxvYyhzaXplb2Yoc3RydWN0 IGFtZGdwdV9pcnFfc3JjKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzb3VyY2UpCi0JCXJldHVybiAt RU5PTUVNOwotCWlycV9wYXJhbXMgPQotCQlremFsbG9jKHNpemVvZihzdHJ1Y3QgY2dzX2lycV9w YXJhbXMpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWlycV9wYXJhbXMpIHsKLQkJa2ZyZWUoc291cmNl KTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQotCXNvdXJjZS0+bnVtX3R5cGVzID0gbnVtX3R5cGVz OwotCXNvdXJjZS0+ZnVuY3MgPSAmY2dzX2lycV9mdW5jczsKLQlpcnFfcGFyYW1zLT5zcmNfaWQg PSBzcmNfaWQ7Ci0JaXJxX3BhcmFtcy0+c2V0ID0gc2V0OwotCWlycV9wYXJhbXMtPmhhbmRsZXIg PSBoYW5kbGVyOwotCWlycV9wYXJhbXMtPnByaXZhdGVfZGF0YSA9IHByaXZhdGVfZGF0YTsKLQlz b3VyY2UtPmRhdGEgPSAodm9pZCAqKWlycV9wYXJhbXM7Ci0JcmV0ID0gYW1kZ3B1X2lycV9hZGRf aWQoYWRldiwgY2xpZW50X2lkLCBzcmNfaWQsIHNvdXJjZSk7Ci0JaWYgKHJldCkgewotCQlrZnJl ZShpcnFfcGFyYW1zKTsKLQkJa2ZyZWUoc291cmNlKTsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQot Ci1zdGF0aWMgaW50IGFtZGdwdV9jZ3NfaXJxX2dldCh2b2lkICpjZ3NfZGV2aWNlLCB1bnNpZ25l ZCBjbGllbnRfaWQsCi0JCQkgICAgICB1bnNpZ25lZCBzcmNfaWQsIHVuc2lnbmVkIHR5cGUpCi17 Ci0JQ0dTX0ZVTkNfQURFVjsKLQotCWlmICghYWRldi0+aXJxLmNsaWVudFtjbGllbnRfaWRdLnNv dXJjZXMpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JcmV0dXJuIGFtZGdwdV9pcnFfZ2V0KGFkZXYs IGFkZXYtPmlycS5jbGllbnRbY2xpZW50X2lkXS5zb3VyY2VzW3NyY19pZF0sIHR5cGUpOwotfQot Ci1zdGF0aWMgaW50IGFtZGdwdV9jZ3NfaXJxX3B1dCh2b2lkICpjZ3NfZGV2aWNlLCB1bnNpZ25l ZCBjbGllbnRfaWQsCi0JCQkgICAgICB1bnNpZ25lZCBzcmNfaWQsIHVuc2lnbmVkIHR5cGUpCi17 Ci0JQ0dTX0ZVTkNfQURFVjsKLQotCWlmICghYWRldi0+aXJxLmNsaWVudFtjbGllbnRfaWRdLnNv dXJjZXMpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JcmV0dXJuIGFtZGdwdV9pcnFfcHV0KGFkZXYs IGFkZXYtPmlycS5jbGllbnRbY2xpZW50X2lkXS5zb3VyY2VzW3NyY19pZF0sIHR5cGUpOwotfQot CiBzdGF0aWMgaW50IGFtZGdwdV9jZ3Nfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBjZ3Nf ZGV2aWNlICpjZ3NfZGV2aWNlLAogCQkJCSAgZW51bSBhbWRfaXBfYmxvY2tfdHlwZSBibG9ja190 eXBlLAogCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCkBAIC03OTIsMTIg KzY4OCw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nnc19ub3RpZnlfZHBtX2VuYWJsZWQoc3RydWN0 IGNnc19kZXZpY2UgKmNnc19kZXZpY2UsIGJvb2wgZW5hCiAJLmxvY2tfZ3JibV9pZHggPSBhbWRn cHVfY2dzX2xvY2tfZ3JibV9pZHgsCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNnc19vc19v cHMgYW1kZ3B1X2Nnc19vc19vcHMgPSB7Ci0JLmFkZF9pcnFfc291cmNlID0gYW1kZ3B1X2Nnc19h ZGRfaXJxX3NvdXJjZSwKLQkuaXJxX2dldCA9IGFtZGdwdV9jZ3NfaXJxX2dldCwKLQkuaXJxX3B1 dCA9IGFtZGdwdV9jZ3NfaXJxX3B1dAotfTsKLQogc3RydWN0IGNnc19kZXZpY2UgKmFtZGdwdV9j Z3NfY3JlYXRlX2RldmljZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlzdHJ1Y3Qg YW1kZ3B1X2Nnc19kZXZpY2UgKmNnc19kZXZpY2UgPQpAQCAtODA5LDcgKzY5OSw2IEBAIHN0cnVj dCBjZ3NfZGV2aWNlICphbWRncHVfY2dzX2NyZWF0ZV9kZXZpY2Uoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCiAJfQogCiAJY2dzX2RldmljZS0+YmFzZS5vcHMgPSAmYW1kZ3B1X2Nnc19vcHM7 Ci0JY2dzX2RldmljZS0+YmFzZS5vc19vcHMgPSAmYW1kZ3B1X2Nnc19vc19vcHM7CiAJY2dzX2Rl dmljZS0+YWRldiA9IGFkZXY7CiAKIAlyZXR1cm4gKHN0cnVjdCBjZ3NfZGV2aWNlICopY2dzX2Rl dmljZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9vc190eXBl cy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL29zX3R5cGVzLmgKaW5kZXggMWZj YmM5OS4uYTQwNzg5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L29zX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL29zX3R5cGVz LmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KIAotI2luY2x1 ZGUgImNnc19saW51eC5oIgorI2luY2x1ZGUgImNnc19jb21tb24uaCIKIAogI2lmIGRlZmluZWQo X19CSUdfRU5ESUFOKSAmJiAhZGVmaW5lZChCSUdFTkRJQU5fQ1BVKQogI2RlZmluZSBCSUdFTkRJ QU5fQ1BVCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvY2dzX2NvbW1v bi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19jb21tb24uaAppbmRleCA2ZmY4 ZjM1Li5mMjgxNGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvY2dz X2NvbW1vbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jZ3NfY29tbW9uLmgK QEAgLTI5MCw3ICsyOTAsNiBAQCBzdHJ1Y3QgY2dzX29wcyB7CiBzdHJ1Y3QgY2dzX2RldmljZQog ewogCWNvbnN0IHN0cnVjdCBjZ3Nfb3BzICpvcHM7Ci0JY29uc3Qgc3RydWN0IGNnc19vc19vcHMg Km9zX29wczsKIAkvKiB0byBiZSBlbWJlZGRlZCBhdCB0aGUgc3RhcnQgb2YgZHJpdmVyIHByaXZh dGUgc3RydWN0dXJlICovCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2lu Y2x1ZGUvY2dzX2xpbnV4LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvY2dzX2xpbnV4 LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjNzQ0NmMuLjAwMDAwMDAKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19saW51eC5oCisrKyAvZGV2L251bGwKQEAg LTEsMTE5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgMjAxNSBBZHZhbmNlZCBNaWNybyBEZXZp Y2VzLCBJbmMuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0g KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQot ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotICogYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUg Q09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s IERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCi0gKiBPVEhFUiBE RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICoKLSAqLwotI2lmbmRlZiBfQ0dTX0xJTlVY X0gKLSNkZWZpbmUgX0NHU19MSU5VWF9ICi0KLSNpbmNsdWRlICJjZ3NfY29tbW9uLmgiCi0KLS8q KgotICogY2dzX2lycV9zb3VyY2Vfc2V0X2Z1bmMoKSAtIENhbGxiYWNrIGZvciBlbmFibGluZy9k aXNhYmxpbmcgaW50ZXJydXB0IHNvdXJjZXMKLSAqIEBwcml2YXRlX2RhdGE6ICBwcml2YXRlIGRh dGEgcHJvdmlkZWQgdG8gY2dzX2FkZF9pcnFfc291cmNlCi0gKiBAc3JjX2lkOiAgICAgICAgaW50 ZXJydXB0IHNvdXJjZSBJRAotICogQHR5cGU6ICAgICAgICAgIGludGVycnVwdCB0eXBlCi0gKiBA ZW5hYmxlZDogICAgICAgMCA9IGRpc2FibGUgc291cmNlLCBub24tMCA9IGVuYWJsZSBzb3VyY2UK LSAqCi0gKiBSZXR1cm46ICAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UKLSAqLwotdHlw ZWRlZiBpbnQgKCpjZ3NfaXJxX3NvdXJjZV9zZXRfZnVuY190KSh2b2lkICpwcml2YXRlX2RhdGEs Ci0JCQkJCSB1bnNpZ25lZCBzcmNfaWQsIHVuc2lnbmVkIHR5cGUsCi0JCQkJCSBpbnQgZW5hYmxl ZCk7Ci0KLS8qKgotICogY2dzX2lycV9oYW5kbGVyX2Z1bmMoKSAtIEludGVycnVwdCBoYW5kbGVy IGNhbGxiYWNrCi0gKiBAcHJpdmF0ZV9kYXRhOiAgcHJpdmF0ZSBkYXRhIHByb3ZpZGVkIHRvIGNn c19hZGRfaXJxX3NvdXJjZQotICogQHNyY19pZDogICAgICAgIGludGVycnVwdCBzb3VyY2UgSUQK LSAqIEBpdl9lbnRyeTogICAgICBwb2ludGVyIHRvIHJhdyBpaCByaW5nIGVudHJ5Ci0gKgotICog VGhpcyBjYWxsYmFjayBydW5zIGluIGludGVycnVwdCBjb250ZXh0LgotICoKLSAqIFJldHVybjog IDAgb24gc3VjY2VzcywgLWVycm5vIG90aGVyd2lzZQotICovCi10eXBlZGVmIGludCAoKmNnc19p cnFfaGFuZGxlcl9mdW5jX3QpKHZvaWQgKnByaXZhdGVfZGF0YSwKLQkJCQkgICAgICB1bnNpZ25l ZCBzcmNfaWQsIGNvbnN0IHVpbnQzMl90ICppdl9lbnRyeSk7Ci0KLS8qKgotICogY2dzX2FkZF9p cnFfc291cmNlKCkgLSBBZGQgYW4gSVJRIHNvdXJjZQotICogQGNnc19kZXZpY2U6ICAgIG9wYXF1 ZSBkZXZpY2UgaGFuZGxlCi0gKiBAc3JjX2lkOiAgICAgICAgaW50ZXJydXB0IHNvdXJjZSBJRAot ICogQG51bV90eXBlczogICAgIG51bWJlciBvZiBpbnRlcnJ1cHQgdHlwZXMgdGhhdCBjYW4gYmUg aW5kZXBlbmRlbnRseSBlbmFibGVkCi0gKiBAc2V0OiAgICAgICAgICAgY2FsbGJhY2sgZnVuY3Rp b24gdG8gZW5hYmxlL2Rpc2FibGUgYW4gaW50ZXJydXB0IHR5cGUKLSAqIEBoYW5kbGVyOiAgICAg ICBpbnRlcnJ1cHQgaGFuZGxlciBjYWxsYmFjawotICogQHByaXZhdGVfZGF0YTogIHByaXZhdGUg ZGF0YSB0byBwYXNzIHRvIGNhbGxiYWNrIGZ1bmN0aW9ucwotICoKLSAqIFRoZSBzYW1lIElSUSBz b3VyY2UgY2FuIGJlIGFkZGVkIG9ubHkgb25jZS4gQWRkaW5nIGFuIElSUSBzb3VyY2UKLSAqIGlu ZGljYXRlcyBvd25lcnNoaXAgb2YgdGhhdCBJUlEgc291cmNlIGFuZCBhbGwgaXRzIElSUSB0eXBl cy4KLSAqCi0gKiBSZXR1cm46ICAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UKLSAqLwot dHlwZWRlZiBpbnQgKCpjZ3NfYWRkX2lycV9zb3VyY2VfdCkodm9pZCAqY2dzX2RldmljZSwgdW5z aWduZWQgY2xpZW50X2lkLAotCQkJCSAgICB1bnNpZ25lZCBzcmNfaWQsCi0JCQkJICAgIHVuc2ln bmVkIG51bV90eXBlcywKLQkJCQkgICAgY2dzX2lycV9zb3VyY2Vfc2V0X2Z1bmNfdCBzZXQsCi0J CQkJICAgIGNnc19pcnFfaGFuZGxlcl9mdW5jX3QgaGFuZGxlciwKLQkJCQkgICAgdm9pZCAqcHJp dmF0ZV9kYXRhKTsKLQotLyoqCi0gKiBjZ3NfaXJxX2dldCgpIC0gUmVxdWVzdCBlbmFibGluZyBh biBJUlEgc291cmNlIGFuZCB0eXBlCi0gKiBAY2dzX2RldmljZTogIG9wYXF1ZSBkZXZpY2UgaGFu ZGxlCi0gKiBAc3JjX2lkOiAgICAgIGludGVycnVwdCBzb3VyY2UgSUQKLSAqIEB0eXBlOiAgICAg ICAgaW50ZXJydXB0IHR5cGUKLSAqCi0gKiBjZ3NfaXJxX2dldCBhbmQgY2dzX2lycV9wdXQgY2Fs bHMgbXVzdCBiZSBiYWxhbmNlZC4gVGhleSBjb3VudAotICogInJlZmVyZW5jZXMiIHRvIElSUSBz b3VyY2VzLgotICoKLSAqIFJldHVybjogIDAgb24gc3VjY2VzcywgLWVycm5vIG90aGVyd2lzZQot ICovCi10eXBlZGVmIGludCAoKmNnc19pcnFfZ2V0X3QpKHZvaWQgKmNnc19kZXZpY2UsIHVuc2ln bmVkIGNsaWVudF9pZCwgdW5zaWduZWQgc3JjX2lkLCB1bnNpZ25lZCB0eXBlKTsKLQotLyoqCi0g KiBjZ3NfaXJxX3B1dCgpIC0gSW5kaWNhdGUgSVJRIHNvdXJjZSBpcyBubyBsb25nZXIgbmVlZGVk Ci0gKiBAY2dzX2RldmljZTogIG9wYXF1ZSBkZXZpY2UgaGFuZGxlCi0gKiBAc3JjX2lkOiAgICAg IGludGVycnVwdCBzb3VyY2UgSUQKLSAqIEB0eXBlOiAgICAgICAgaW50ZXJydXB0IHR5cGUKLSAq Ci0gKiBjZ3NfaXJxX2dldCBhbmQgY2dzX2lycV9wdXQgY2FsbHMgbXVzdCBiZSBiYWxhbmNlZC4g VGhleSBjb3VudAotICogInJlZmVyZW5jZXMiIHRvIElSUSBzb3VyY2VzLiBFdmVuIGFmdGVyIGNn c19pcnFfcHV0IGlzIGNhbGxlZCwgdGhlCi0gKiBJUlEgaGFuZGxlciBtYXkgc3RpbGwgYmUgY2Fs bGVkIGlmIHRoZXJlIGFyZSBtb3JlIHJlZmVjZW5jZXMgdG8KLSAqIHRoZSBJUlEgc291cmNlLgot ICoKLSAqIFJldHVybjogIDAgb24gc3VjY2VzcywgLWVycm5vIG90aGVyd2lzZQotICovCi10eXBl ZGVmIGludCAoKmNnc19pcnFfcHV0X3QpKHZvaWQgKmNnc19kZXZpY2UsIHVuc2lnbmVkIGNsaWVu dF9pZCwgdW5zaWduZWQgc3JjX2lkLCB1bnNpZ25lZCB0eXBlKTsKLQotc3RydWN0IGNnc19vc19v cHMgewotCS8qIElSUSBoYW5kbGluZyAqLwotCWNnc19hZGRfaXJxX3NvdXJjZV90IGFkZF9pcnFf c291cmNlOwotCWNnc19pcnFfZ2V0X3QgaXJxX2dldDsKLQljZ3NfaXJxX3B1dF90IGlycV9wdXQ7 Ci19OwotCi0jZGVmaW5lIGNnc19hZGRfaXJxX3NvdXJjZShkZXYsY2xpZW50X2lkLHNyY19pZCxu dW1fdHlwZXMsc2V0LGhhbmRsZXIscHJpdmF0ZV9kYXRhKSBcCi0JQ0dTX09TX0NBTEwoYWRkX2ly cV9zb3VyY2UsZGV2LGNsaWVudF9pZCxzcmNfaWQsbnVtX3R5cGVzLHNldCxoYW5kbGVyLCBcCi0J CSAgICBwcml2YXRlX2RhdGEpCi0jZGVmaW5lIGNnc19pcnFfZ2V0KGRldixjbGllbnRfaWQsc3Jj X2lkLHR5cGUpCVwKLQlDR1NfT1NfQ0FMTChpcnFfZ2V0LGRldixjbGllbnRfaWQsc3JjX2lkLHR5 cGUpCi0jZGVmaW5lIGNnc19pcnFfcHV0KGRldixjbGllbnRfaWQsc3JjX2lkLHR5cGUpCVwKLQlD R1NfT1NfQ0FMTChpcnFfcHV0LGRldixjbGllbnRfaWQsc3JjX2lkLHR5cGUpCi0KLSNlbmRpZiAv KiBfQ0dTX0xJTlVYX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L2h3bWdyL2h3bWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9o d21nci5jCmluZGV4IDIyOTAzMDAuLmZiY2RkYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9w b3dlcnBsYXkvaHdtZ3IvaHdtZ3IuYwpAQCAtNTYsNTAgKzU2LDYgQEAKIHN0YXRpYyBpbnQgdG9w YXpfc2V0X2FzaWNfc3BlY2lhbF9jYXBzKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpOwogc3RhdGlj IGludCBjaV9zZXRfYXNpY19zcGVjaWFsX2NhcHMoc3RydWN0IHBwX2h3bWdyICpod21ncik7CiAK LXN0YXRpYyBpbnQgcGhtX3RoZXJtYWxfbDJoX2lycSh2b2lkICpwcml2YXRlX2RhdGEsCi0JCSB1 bnNpZ25lZCBzcmNfaWQsIGNvbnN0IHVpbnQzMl90ICppdl9lbnRyeSkKLXsKLQlzdHJ1Y3QgcHBf aHdtZ3IgKmh3bWdyID0gKHN0cnVjdCBwcF9od21nciAqKXByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IGh3bWdyLT5hZGV2OwotCi0JcHJfd2FybigiR1BVIG92ZXIg dGVtcGVyYXR1cmUgcmFuZ2UgZGV0ZWN0ZWQgb24gUENJZSAlZDolZC4lZCFcbiIsCi0JCQlQQ0lf QlVTX05VTShhZGV2LT5wZGV2LT5kZXZmbiksCi0JCQlQQ0lfU0xPVChhZGV2LT5wZGV2LT5kZXZm biksCi0JCQlQQ0lfRlVOQyhhZGV2LT5wZGV2LT5kZXZmbikpOwotCXJldHVybiAwOwotfQotCi1z dGF0aWMgaW50IHBobV90aGVybWFsX2gybF9pcnEodm9pZCAqcHJpdmF0ZV9kYXRhLAotCQkgdW5z aWduZWQgc3JjX2lkLCBjb25zdCB1aW50MzJfdCAqaXZfZW50cnkpCi17Ci0Jc3RydWN0IHBwX2h3 bWdyICpod21nciA9IChzdHJ1Y3QgcHBfaHdtZ3IgKilwcml2YXRlX2RhdGE7Ci0Jc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSBod21nci0+YWRldjsKLQotCXByX3dhcm4oIkdQVSB1bmRlciB0 ZW1wZXJhdHVyZSByYW5nZSBkZXRlY3RlZCBvbiBQQ0llICVkOiVkLiVkIVxuIiwKLQkJCVBDSV9C VVNfTlVNKGFkZXYtPnBkZXYtPmRldmZuKSwKLQkJCVBDSV9TTE9UKGFkZXYtPnBkZXYtPmRldmZu KSwKLQkJCVBDSV9GVU5DKGFkZXYtPnBkZXYtPmRldmZuKSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0 YXRpYyBpbnQgcGhtX2N0Zl9pcnEodm9pZCAqcHJpdmF0ZV9kYXRhLAotCQkgdW5zaWduZWQgc3Jj X2lkLCBjb25zdCB1aW50MzJfdCAqaXZfZW50cnkpCi17Ci0Jc3RydWN0IHBwX2h3bWdyICpod21n ciA9IChzdHJ1Y3QgcHBfaHdtZ3IgKilwcml2YXRlX2RhdGE7Ci0Jc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYgPSBod21nci0+YWRldjsKLQotCXByX3dhcm4oIkdQVSBDcml0aWNhbCBUZW1wZXJh dHVyZSBGYXVsdCBkZXRlY3RlZCBvbiBQQ0llICVkOiVkLiVkIVxuIiwKLQkJCVBDSV9CVVNfTlVN KGFkZXYtPnBkZXYtPmRldmZuKSwKLQkJCVBDSV9TTE9UKGFkZXYtPnBkZXYtPmRldmZuKSwKLQkJ CVBDSV9GVU5DKGFkZXYtPnBkZXYtPmRldmZuKSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBj b25zdCBzdHJ1Y3QgY2dzX2lycV9zcmNfZnVuY3MgdGhlcm1hbF9pcnFfc3JjWzNdID0gewotCXsg LmhhbmRsZXIgPSBwaG1fdGhlcm1hbF9sMmhfaXJxIH0sCi0JeyAuaGFuZGxlciA9IHBobV90aGVy bWFsX2gybF9pcnEgfSwKLQl7IC5oYW5kbGVyID0gcGhtX2N0Zl9pcnEgfQotfTsKIAogc3RhdGlj IHZvaWQgaHdtZ3JfaW5pdF93b3JrbG9hZF9wcm9yaXR5KHN0cnVjdCBwcF9od21nciAqaHdtZ3Ip CiB7CkBAIC0yNDQsNyArMjAwLDcgQEAgaW50IGh3bWdyX2h3X2luaXQoc3RydWN0IHBwX2h3bWdy ICpod21ncikKIAlpZiAocmV0KQogCQlnb3RvIGVycjI7CiAKLQlyZXQgPSBwaG1fcmVnaXN0ZXJf dGhlcm1hbF9pbnRlcnJ1cHQoaHdtZ3IsICZ0aGVybWFsX2lycV9zcmMpOworCXJldCA9IHBobV9y ZWdpc3Rlcl90aGVybWFsX2ludGVycnVwdChod21nciwgTlVMTCk7CiAJaWYgKHJldCkKIAkJZ290 byBlcnIyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21n ci9zbXVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXVf aGVscGVyLmMKaW5kZXggZTExZGFmNS4uZGMxZmUzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211X2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdV9oZWxwZXIuYwpAQCAtNTM0LDMgKzUzNCwzMSBAQCBp bnQgcGhtX2dldF92b2x0YWdlX2V2dl9vbl9zY2xrKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIHVp bnQ4X3Qgdm9sdGFnZV90eXBlLAogfQogCiAKK2V4dGVybiBpbnQgcGhtX2lycV9wcm9jZXNzKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJICAgc3RydWN0IGFtZGdwdV9pcnFfc3JjICpz b3VyY2UsCisJCQkgICBzdHJ1Y3QgYW1kZ3B1X2l2X2VudHJ5ICplbnRyeSkKK3sKKwl1aW50MzJf dCBjbGllbnRfaWQgPSBlbnRyeS0+Y2xpZW50X2lkOworCXVpbnQzMl90IHNyY19pZCA9IGVudHJ5 LT5zcmNfaWQ7CisKKwlpZiAoY2xpZW50X2lkID09IFNPQzE1X0lIX0NMSUVOVElEX1RITSkgewor CQlpZiAoc3JjX2lkID09IDApCisJCQlwcl93YXJuKCJHUFUgb3ZlciB0ZW1wZXJhdHVyZSByYW5n ZSBkZXRlY3RlZCBvbiBQQ0llICVkOiVkLiVkIVxuIiwKKwkJCQkJCVBDSV9CVVNfTlVNKGFkZXYt PnBkZXYtPmRldmZuKSwKKwkJCQkJCVBDSV9TTE9UKGFkZXYtPnBkZXYtPmRldmZuKSwKKwkJCQkJ CVBDSV9GVU5DKGFkZXYtPnBkZXYtPmRldmZuKSk7CisJCWVsc2UKKwkJCXByX3dhcm4oIkdQVSB1 bmRlciB0ZW1wZXJhdHVyZSByYW5nZSBkZXRlY3RlZCBvbiBQQ0llICVkOiVkLiVkIVxuIiwKKwkJ CQkJUENJX0JVU19OVU0oYWRldi0+cGRldi0+ZGV2Zm4pLAorCQkJCQlQQ0lfU0xPVChhZGV2LT5w ZGV2LT5kZXZmbiksCisJCQkJCVBDSV9GVU5DKGFkZXYtPnBkZXYtPmRldmZuKSk7CisJfQorCisJ aWYgKGNsaWVudF9pZCA9PSBTT0MxNV9JSF9DTElFTlRJRF9ST01fU01VSU8pCisJCXByX3dhcm4o IkdQVSBDcml0aWNhbCBUZW1wZXJhdHVyZSBGYXVsdCBkZXRlY3RlZCBvbiBQQ0llICVkOiVkLiVk IVxuIiwKKwkJCQlQQ0lfQlVTX05VTShhZGV2LT5wZGV2LT5kZXZmbiksCisJCQkJUENJX1NMT1Qo YWRldi0+cGRldi0+ZGV2Zm4pLAorCQkJCVBDSV9GVU5DKGFkZXYtPnBkZXYtPmRldmZuKSk7CisK KwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5 L2h3bWdyL3NtdV9oZWxwZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdy L3NtdV9oZWxwZXIuaAppbmRleCBhMWE0OTEzLi44ZTg0NzYwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXVfaGVscGVyLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211X2hlbHBlci5oCkBAIC03Myw2ICs3MywxMSBA QCBleHRlcm4gaW50IHBobV93YWl0X29uX2luZGlyZWN0X3JlZ2lzdGVyKHN0cnVjdCBwcF9od21n ciAqaHdtZ3IsCiAJCQkJdWludDMyX3QgdmFsdWUsCiAJCQkJdWludDMyX3QgbWFzayk7CiAKK2V4 dGVybiBpbnQgcGhtX2lycV9wcm9jZXNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJ ICAgc3RydWN0IGFtZGdwdV9pcnFfc3JjICpzb3VyY2UsCisJCQkgICBzdHJ1Y3QgYW1kZ3B1X2l2 X2VudHJ5ICplbnRyeSk7CisKKwogI2RlZmluZSBQSE1fRklFTERfU0hJRlQocmVnLCBmaWVsZCkg cmVnIyNfXyMjZmllbGQjI19fU0hJRlQKICNkZWZpbmUgUEhNX0ZJRUxEX01BU0socmVnLCBmaWVs ZCkgcmVnIyNfXyMjZmllbGQjI19NQVNLCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9w b3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMKaW5kZXggNTUyMTEzNy4uZjljOWY0MiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdy LmMKQEAgLTQ0LDcgKzQ0LDYgQEAKICNpbmNsdWRlICJ2ZWdhMTBfdGhlcm1hbC5oIgogI2luY2x1 ZGUgInBwX2RlYnVnLmgiCiAjaW5jbHVkZSAiYW1kX3BjaWVfaGVscGVycy5oIgotI2luY2x1ZGUg ImNnc19saW51eC5oIgogI2luY2x1ZGUgInBwaW50ZXJydXB0LmgiCiAjaW5jbHVkZSAicHBfb3Zl cmRyaXZlci5oIgogI2luY2x1ZGUgInBwX3RoZXJtYWwuaCIKQEAgLTQ4MTYsMzQgKzQ4MTUsNDEg QEAgc3RhdGljIGludCB2ZWdhMTBfZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2Uoc3RydWN0 IHBwX2h3bWdyICpod21nciwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBh bWRncHVfaXJxX3NyY19mdW5jcyBzbXU5X2lycV9mdW5jcyA9IHsKKwkucHJvY2VzcyA9IHBobV9p cnFfcHJvY2VzcywKK307CisKIHN0YXRpYyBpbnQgdmVnYTEwX3JlZ2lzdGVyX3RoZXJtYWxfaW50 ZXJydXB0KHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJCWNvbnN0IHZvaWQgKmluZm8pCiB7Ci0J c3RydWN0IGNnc19pcnFfc3JjX2Z1bmNzICppcnFfc3JjID0KLQkJCShzdHJ1Y3QgY2dzX2lycV9z cmNfZnVuY3MgKilpbmZvOworCXN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlID0KKwkJa3ph bGxvYyhzaXplb2Yoc3RydWN0IGFtZGdwdV9pcnFfc3JjKSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAo IXNvdXJjZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzb3VyY2UtPmZ1bmNzID0gJnNtdTlfaXJx X2Z1bmNzOwogCiAJaWYgKGh3bWdyLT50aGVybWFsX2NvbnRyb2xsZXIudWNUeXBlID09CiAJCQlB VE9NX1ZFR0ExMF9QUF9USEVSTUFMQ09OVFJPTExFUl9WRUdBMTAgfHwKIAkJaHdtZ3ItPnRoZXJt YWxfY29udHJvbGxlci51Y1R5cGUgPT0KIAkJCUFUT01fVkVHQTEwX1BQX1RIRVJNQUxDT05UUk9M TEVSX0VNQzIxMDNfV0lUSF9JTlRFUk5BTCkgewotCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCFjZ3Nf YWRkX2lycV9zb3VyY2UoaHdtZ3ItPmRldmljZSwKKworCQlhbWRncHVfaXJxX2FkZF9pZCgoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKikoaHdtZ3ItPmFkZXYpLAogCQkJCVNPQzE1X0lIX0NMSUVOVElE X1RITSwKLQkJCQkwLCAwLCBpcnFfc3JjWzBdLnNldCwgaXJxX3NyY1swXS5oYW5kbGVyLCBod21n ciksCi0JCQkJIkZhaWxlZCB0byByZWdpc3RlciBoaWdoIHRoZXJtYWwgaW50ZXJydXB0ISIsCi0J CQkJcmV0dXJuIC1FSU5WQUwpOwotCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCFjZ3NfYWRkX2lycV9z b3VyY2UoaHdtZ3ItPmRldmljZSwKKwkJCQkwLAorCQkJCXNvdXJjZSk7CisJCWFtZGdwdV9pcnFf YWRkX2lkKChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKShod21nci0+YWRldiksCiAJCQkJU09DMTVf SUhfQ0xJRU5USURfVEhNLAotCQkJCTEsIDAsIGlycV9zcmNbMV0uc2V0LCBpcnFfc3JjWzFdLmhh bmRsZXIsIGh3bWdyKSwKLQkJCQkiRmFpbGVkIHRvIHJlZ2lzdGVyIGxvdyB0aGVybWFsIGludGVy cnVwdCEiLAotCQkJCXJldHVybiAtRUlOVkFMKTsKKwkJCQkxLAorCQkJCXNvdXJjZSk7CiAJfQog CiAJLyogUmVnaXN0ZXIgQ1RGKEdQSU9fMTkpIGludGVycnVwdCAqLwotCVBQX0FTU0VSVF9XSVRI X0NPREUoIWNnc19hZGRfaXJxX3NvdXJjZShod21nci0+ZGV2aWNlLAorCWFtZGdwdV9pcnFfYWRk X2lkKChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKShod21nci0+YWRldiksCiAJCQlTT0MxNV9JSF9D TElFTlRJRF9ST01fU01VSU8sCi0JCQk4MywgMCwgaXJxX3NyY1syXS5zZXQsIGlycV9zcmNbMl0u aGFuZGxlciwgaHdtZ3IpLAotCQkJIkZhaWxlZCB0byByZWdpc3RlciBDVEYgdGhlcm1hbCBpbnRl cnJ1cHQhIiwKLQkJCXJldHVybiAtRUlOVkFMKTsKKwkJCTgzLAorCQkJc291cmNlKTsKIAogCXJl dHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5j L2h3bWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvaHdtZ3IuaAppbmRl eCA4NWI0NmFkLi4yNjY3Nzc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2Vy cGxheS9pbmMvaHdtZ3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMv aHdtZ3IuaApAQCAtNzY0LDExICs3NjQsNiBAQCBzdHJ1Y3QgcHBfaHdtZ3IgewogCXVpbnQzMl90 IHdvcmtsb2FkX3NldHRpbmdbV29ya2xvYWRfUG9saWN5X01heF07CiB9OwogCi1zdHJ1Y3QgY2dz X2lycV9zcmNfZnVuY3MgewotCWNnc19pcnFfc291cmNlX3NldF9mdW5jX3Qgc2V0OwotCWNnc19p cnFfaGFuZGxlcl9mdW5jX3QgaGFuZGxlcjsKLX07Ci0KIGV4dGVybiBpbnQgaHdtZ3JfZWFybHlf aW5pdChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKTsKIGV4dGVybiBpbnQgaHdtZ3JfaHdfaW5pdChz dHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKTsKIGV4dGVybiBpbnQgaHdtZ3JfaHdfZmluaShzdHJ1Y3Qg cHBfaHdtZ3IgKmh3bWdyKTsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2FtZC1nZngK