From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0678C433DF for ; Thu, 21 May 2020 22:20:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8AEF120814 for ; Thu, 21 May 2020 22:20:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730542AbgEUWUJ (ORCPT ); Thu, 21 May 2020 18:20:09 -0400 Received: from imap2.colo.codethink.co.uk ([78.40.148.184]:54620 "EHLO imap2.colo.codethink.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728701AbgEUWUI (ORCPT ); Thu, 21 May 2020 18:20:08 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126] helo=xylophone) by imap2.colo.codethink.co.uk with esmtpsa (Exim 4.92 #3 (Debian)) id 1jbtXn-0003ii-Dk; Thu, 21 May 2020 23:20:03 +0100 Message-ID: Subject: [4.4] Security fixes From: Ben Hutchings To: Greg Kroah-Hartman , Sasha Levin Cc: stable Date: Thu, 21 May 2020 23:20:01 +0100 Organization: Codethink Ltd. Content-Type: multipart/mixed; boundary="=-6E38KBl++2Qvisqe9Jy4" User-Agent: Evolution 3.30.5-1.1 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org --=-6E38KBl++2Qvisqe9Jy4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit I've backported fixes for I²C and media controller devices, dealing with the lifetime of related cdev and struct device instances and some similar race conditions. Fixing the lifetime issue for watchdog devices looks impractical for 4.4, as it depends on a big refactoring in 4.5. All but one of these are already included in or queued for the later stable branches. You dropped the I²C lifetime fix for 4.9, but I hope my previous replies persuaded you that it is valid. Ben. -- Ben Hutchings, Software Developer Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom --=-6E38KBl++2Qvisqe9Jy4 Content-Type: application/mbox; name="4.4-security.mboxz" Content-Disposition: attachment; filename="4.4-security.mboxz" Content-Transfer-Encoding: base64 RnJvbSBmOWFkZmU0YzBiMzA1ZWEwMGQ5MDRmYzViYWM4NTM5OTYzNDE4OTMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHVhaCBLaGFuIDxzaHVhaGtoQG9zZy5zYW1zdW5nLmNvbT4K RGF0ZTogV2VkLCAyNyBKYW4gMjAxNiAyMTo0OTozMyAtMDIwMApTdWJqZWN0OiBbbWVkaWFdIG1l ZGlhOiBGaXggbWVkaWFfb3BlbigpIHRvIGNsZWFyIGZpbHAtPnByaXZhdGVfZGF0YSBpbiBlcnJv cgogbGVnCgpjb21taXQgZDQwZWM2ZmRiMGIwM2I3YmU0Yzc5MjNhM2RhMGU0NmJmOTQzNzQwYSB1 cHN0cmVhbS4KCkZpeCBtZWRpYV9vcGVuKCkgdG8gY2xlYXIgZmlscC0+cHJpdmF0ZV9kYXRhIHdo ZW4gZmlsZSBvcGVuCmZhaWxzLgoKU2lnbmVkLW9mZi1ieTogU2h1YWggS2hhbiA8c2h1YWhraEBv c2cuc2Ftc3VuZy5jb20+CkFja2VkLWJ5OiBTYWthcmkgQWlsdXMgPHNha2FyaS5haWx1c0BsaW51 eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8bWNoZWhh YkBvc2cuc2Ftc3VuZy5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRj aGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMvbWVkaWEvbWVkaWEtZGV2bm9kZS5j IHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYyBiL2RyaXZlcnMvbWVkaWEvbWVkaWEtZGV2bm9kZS5j CmluZGV4IGViZjk2MjZlNWFlNS4uYThjYjUyZGM4YzRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21l ZGlhL21lZGlhLWRldm5vZGUuYworKysgYi9kcml2ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYwpA QCAtMTgxLDYgKzE4MSw3IEBAIHN0YXRpYyBpbnQgbWVkaWFfb3BlbihzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIAkJcmV0ID0gbWRldi0+Zm9wcy0+b3BlbihmaWxwKTsK IAkJaWYgKHJldCkgewogCQkJcHV0X2RldmljZSgmbWRldi0+ZGV2KTsKKwkJCWZpbHAtPnByaXZh dGVfZGF0YSA9IE5VTEw7CiAJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQoKRnJvbSBhMjUzOTEyZTBl MDcxZWU4YTcyOGExMThjNmJjMGU3YzM4NGNjZWI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBNYXggS2VsbGVybWFubiA8bWF4QGR1ZW1wZWwub3JnPgpEYXRlOiBNb24sIDIxIE1hciAy MDE2IDEwOjMwOjI4IC0wMzAwClN1YmplY3Q6IFttZWRpYV0gZHJpdmVycy9tZWRpYS9tZWRpYS1k ZXZub2RlOiBjbGVhciBwcml2YXRlX2RhdGEgYmVmb3JlCiBwdXRfZGV2aWNlKCkKCmNvbW1pdCBi ZjI0NGY2NjVkNzZkMjAzMTJjODA1MjQ2ODliMzJhNzUyODg4ODM4IHVwc3RyZWFtLgoKQ2FsbGJh Y2tzIGludm9rZWQgZnJvbSBwdXRfZGV2aWNlKCkgbWF5IGZyZWUgdGhlIHN0cnVjdCBtZWRpYV9k ZXZub2RlCnBvaW50ZXIsIHNvIGFueSBjbGVhbnVwIG5lZWRzIHRvIGJlIGRvbmUgYmVmb3JlIHB1 dF9kZXZpY2UoKS4KClNpZ25lZC1vZmYtYnk6IE1heCBLZWxsZXJtYW5uIDxtYXhAZHVlbXBlbC5v cmc+ClNpZ25lZC1vZmYtYnk6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8bWNoZWhhYkBvc2cuc2Ft c3VuZy5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29k ZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMvbWVkaWEvbWVkaWEtZGV2bm9kZS5jIHwgMyArKy0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYyBiL2RyaXZlcnMvbWVkaWEvbWVkaWEt ZGV2bm9kZS5jCmluZGV4IGE4Y2I1MmRjOGM0Zi4uNmM1NmFlYmQ4ZGIwIDEwMDY0NAotLS0gYS9k cml2ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYworKysgYi9kcml2ZXJzL21lZGlhL21lZGlhLWRl dm5vZGUuYwpAQCAtMTk3LDEwICsxOTcsMTEgQEAgc3RhdGljIGludCBtZWRpYV9yZWxlYXNlKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCWlmIChtZGV2LT5mb3BzLT5y ZWxlYXNlKQogCQltZGV2LT5mb3BzLT5yZWxlYXNlKGZpbHApOwogCisJZmlscC0+cHJpdmF0ZV9k YXRhID0gTlVMTDsKKwogCS8qIGRlY3JlYXNlIHRoZSByZWZjb3VudCB1bmNvbmRpdGlvbmFsbHkg c2luY2UgdGhlIHJlbGVhc2UoKQogCSAgIHJldHVybiB2YWx1ZSBpcyBpZ25vcmVkLiAqLwogCXB1 dF9kZXZpY2UoJm1kZXYtPmRldik7Ci0JZmlscC0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKIAlyZXR1 cm4gMDsKIH0KIAoKRnJvbSBhOThjODkxMjU4Yzg5NGU0OGNkN2JiZDg1ZmI2MWZlYjBjZjE1MWU3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXggS2VsbGVybWFubiA8bWF4QGR1ZW1w ZWwub3JnPgpEYXRlOiBNb24sIDIxIE1hciAyMDE2IDA0OjMzOjEyIC0wNzAwClN1YmplY3Q6IFtt ZWRpYV0gbWVkaWEtZGV2bm9kZTogYWRkIG1pc3NpbmcgbXV0ZXggbG9jayBpbiBlcnJvciBoYW5k bGVyCgpjb21taXQgODgzMzZlMTc0NjQ1OTQ4ZGEyNjllMTgxMmYxMzhmNzI3Y2QyODk2YiB1cHN0 cmVhbS4KCldlIHNob3VsZCBwcm90ZWN0IHRoZSBkZXZpY2UgdW5yZWdpc3RlciBwYXRjaCB0b28s IGF0IHRoZSBlcnJvcgpjb25kaXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBNYXggS2VsbGVybWFubiA8 bWF4QGR1ZW1wZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBNYXVybyBDYXJ2YWxobyBDaGVoYWIgPG1j aGVoYWJAb3NnLnNhbXN1bmcuY29tPgpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4u aHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBkcml2ZXJzL21lZGlhL21lZGlhLWRldm5v ZGUuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZub2RlLmMgYi9kcml2ZXJzL21lZGlhL21lZGlhLWRl dm5vZGUuYwppbmRleCA2YzU2YWViZDhkYjAuLjg2YzdjMzczMmM4NCAxMDA2NDQKLS0tIGEvZHJp dmVycy9tZWRpYS9tZWRpYS1kZXZub2RlLmMKKysrIGIvZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZu b2RlLmMKQEAgLTI4Miw4ICsyODIsMTEgQEAgaW50IF9fbXVzdF9jaGVjayBtZWRpYV9kZXZub2Rl X3JlZ2lzdGVyKHN0cnVjdCBtZWRpYV9kZXZub2RlICptZGV2LAogCXJldHVybiAwOwogCiBlcnJv cjoKKwltdXRleF9sb2NrKCZtZWRpYV9kZXZub2RlX2xvY2spOwogCWNkZXZfZGVsKCZtZGV2LT5j ZGV2KTsKIAljbGVhcl9iaXQobWRldi0+bWlub3IsIG1lZGlhX2Rldm5vZGVfbnVtcyk7CisJbXV0 ZXhfdW5sb2NrKCZtZWRpYV9kZXZub2RlX2xvY2spOworCiAJcmV0dXJuIHJldDsKIH0KIAoKRnJv bSAwNmZjZGU5Yjk4OGExNDY1M2E5M2IzMWQxMzZiNjhlNDIwOWY4YThhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBNYXVybyBDYXJ2YWxobyBDaGVoYWIgPG1jaGVoYWJAb3NnLnNhbXN1 bmcuY29tPgpEYXRlOiBXZWQsIDIzIE1hciAyMDE2IDExOjIyOjU3IC0wMzAwClN1YmplY3Q6IFtt ZWRpYV0gbWVkaWEtZGV2bm9kZTogZml4IG5hbWVzcGFjZSBtZXNzCgpjb21taXQgMTYzZjFlOTNl OTk1MDQ4Yjg5NGM1ZmM4NmE2MDM0ZDE2YmVlZDc0MCB1cHN0cmVhbS4KCkFsb25nIGFsbCBtZWRp YSBjb250cm9sbGVyIGNvZGUsICJtZGV2IiBpcyB1c2VkIHRvIHJlcHJlc2VudAphIHBvaW50ZXIg dG8gc3RydWN0IG1lZGlhX2RldmljZSwgYW5kICJkZXZub2RlIiBmb3IgYSBwb2ludGVyCnRvIHN0 cnVjdCBtZWRpYV9kZXZub2RlLgoKSG93ZXZlciwgaW5zaWRlIG1lZGlhLWRldm5vZGUuW2NoXSwg Im1kZXYiIGlzIHVzZWQgdG8gcmVwcmVzZW50CmEgcG9pbnRlciB0byBzdHJ1Y3QgbWVkaWFfZGV2 bm9kZS4KClRoaXMgaXMgdmVyeSBjb25mdXNpbmcgYW5kIG1heSBsZWFkIHRvIGRldmVsb3BtZW50 IGVycm9ycy4KClNvLCBsZXQncyBjaGFuZ2UgYWxsIG9jY3VycmVuY2VzIGF0IG1lZGlhLWRldm5v ZGUuW2NoXSB0bwphbHNvIHVzZSAiZGV2bm9kZSIgZm9yIHN1Y2ggcG9pbnRlcnMuCgpUaGlzIHBh dGNoIGRvZXNuJ3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzLgoKU2lnbmVkLW9mZi1ieTog TWF1cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiQG9zZy5zYW1zdW5nLmNvbT4KU2lnbmVkLW9m Zi1ieTogTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiQHMtb3BlbnNvdXJjZS5jb20+Clti d2g6IEJhY2twb3J0ZWQgdG8gNC40OiBhZGp1c3QgZmlsZW5hbWUsIGNvbnRleHRdClNpZ25lZC1v ZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0K IGRyaXZlcnMvbWVkaWEvbWVkaWEtZGV2bm9kZS5jIHwgMTE0ICsrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvbWVkaWEvbWVkaWEtZGV2bm9kZS5oIHwgIDEwICstLQog MiBmaWxlcyBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYyBiL2RyaXZlcnMvbWVkaWEvbWVk aWEtZGV2bm9kZS5jCmluZGV4IDg2YzdjMzczMmM4NC4uOTgyMTFjNTcwZTExIDEwMDY0NAotLS0g YS9kcml2ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYworKysgYi9kcml2ZXJzL21lZGlhL21lZGlh LWRldm5vZGUuYwpAQCAtNTksMjEgKzU5LDIxIEBAIHN0YXRpYyBERUNMQVJFX0JJVE1BUChtZWRp YV9kZXZub2RlX251bXMsIE1FRElBX05VTV9ERVZJQ0VTKTsKIC8qIENhbGxlZCB3aGVuIHRoZSBs YXN0IHVzZXIgb2YgdGhlIG1lZGlhIGRldmljZSBleGl0cy4gKi8KIHN0YXRpYyB2b2lkIG1lZGlh X2Rldm5vZGVfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpjZCkKIHsKLQlzdHJ1Y3QgbWVkaWFfZGV2 bm9kZSAqbWRldiA9IHRvX21lZGlhX2Rldm5vZGUoY2QpOworCXN0cnVjdCBtZWRpYV9kZXZub2Rl ICpkZXZub2RlID0gdG9fbWVkaWFfZGV2bm9kZShjZCk7CiAKIAltdXRleF9sb2NrKCZtZWRpYV9k ZXZub2RlX2xvY2spOwogCiAJLyogRGVsZXRlIHRoZSBjZGV2IG9uIHRoaXMgbWlub3IgYXMgd2Vs bCAqLwotCWNkZXZfZGVsKCZtZGV2LT5jZGV2KTsKKwljZGV2X2RlbCgmZGV2bm9kZS0+Y2Rldik7 CiAKIAkvKiBNYXJrIGRldmljZSBub2RlIG51bWJlciBhcyBmcmVlICovCi0JY2xlYXJfYml0KG1k ZXYtPm1pbm9yLCBtZWRpYV9kZXZub2RlX251bXMpOworCWNsZWFyX2JpdChkZXZub2RlLT5taW5v ciwgbWVkaWFfZGV2bm9kZV9udW1zKTsKIAogCW11dGV4X3VubG9jaygmbWVkaWFfZGV2bm9kZV9s b2NrKTsKIAogCS8qIFJlbGVhc2UgbWVkaWFfZGV2bm9kZSBhbmQgcGVyZm9ybSBvdGhlciBjbGVh bnVwcyBhcyBuZWVkZWQuICovCi0JaWYgKG1kZXYtPnJlbGVhc2UpCi0JCW1kZXYtPnJlbGVhc2Uo bWRldik7CisJaWYgKGRldm5vZGUtPnJlbGVhc2UpCisJCWRldm5vZGUtPnJlbGVhc2UoZGV2bm9k ZSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYnVzX3R5cGUgbWVkaWFfYnVzX3R5cGUgPSB7CkBAIC04 MywzNyArODMsMzcgQEAgc3RhdGljIHN0cnVjdCBidXNfdHlwZSBtZWRpYV9idXNfdHlwZSA9IHsK IHN0YXRpYyBzc2l6ZV90IG1lZGlhX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2Vy ICpidWYsCiAJCXNpemVfdCBzeiwgbG9mZl90ICpvZmYpCiB7Ci0Jc3RydWN0IG1lZGlhX2Rldm5v ZGUgKm1kZXYgPSBtZWRpYV9kZXZub2RlX2RhdGEoZmlscCk7CisJc3RydWN0IG1lZGlhX2Rldm5v ZGUgKmRldm5vZGUgPSBtZWRpYV9kZXZub2RlX2RhdGEoZmlscCk7CiAKLQlpZiAoIW1kZXYtPmZv cHMtPnJlYWQpCisJaWYgKCFkZXZub2RlLT5mb3BzLT5yZWFkKQogCQlyZXR1cm4gLUVJTlZBTDsK LQlpZiAoIW1lZGlhX2Rldm5vZGVfaXNfcmVnaXN0ZXJlZChtZGV2KSkKKwlpZiAoIW1lZGlhX2Rl dm5vZGVfaXNfcmVnaXN0ZXJlZChkZXZub2RlKSkKIAkJcmV0dXJuIC1FSU87Ci0JcmV0dXJuIG1k ZXYtPmZvcHMtPnJlYWQoZmlscCwgYnVmLCBzeiwgb2ZmKTsKKwlyZXR1cm4gZGV2bm9kZS0+Zm9w cy0+cmVhZChmaWxwLCBidWYsIHN6LCBvZmYpOwogfQogCiBzdGF0aWMgc3NpemVfdCBtZWRpYV93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJc2l6ZV90 IHN6LCBsb2ZmX3QgKm9mZikKIHsKLQlzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqbWRldiA9IG1lZGlh X2Rldm5vZGVfZGF0YShmaWxwKTsKKwlzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqZGV2bm9kZSA9IG1l ZGlhX2Rldm5vZGVfZGF0YShmaWxwKTsKIAotCWlmICghbWRldi0+Zm9wcy0+d3JpdGUpCisJaWYg KCFkZXZub2RlLT5mb3BzLT53cml0ZSkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JaWYgKCFtZWRpYV9k ZXZub2RlX2lzX3JlZ2lzdGVyZWQobWRldikpCisJaWYgKCFtZWRpYV9kZXZub2RlX2lzX3JlZ2lz dGVyZWQoZGV2bm9kZSkpCiAJCXJldHVybiAtRUlPOwotCXJldHVybiBtZGV2LT5mb3BzLT53cml0 ZShmaWxwLCBidWYsIHN6LCBvZmYpOworCXJldHVybiBkZXZub2RlLT5mb3BzLT53cml0ZShmaWxw LCBidWYsIHN6LCBvZmYpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50IG1lZGlhX3BvbGwoc3Ry dWN0IGZpbGUgKmZpbHAsCiAJCQkgICAgICAgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICpwb2xs KQogewotCXN0cnVjdCBtZWRpYV9kZXZub2RlICptZGV2ID0gbWVkaWFfZGV2bm9kZV9kYXRhKGZp bHApOworCXN0cnVjdCBtZWRpYV9kZXZub2RlICpkZXZub2RlID0gbWVkaWFfZGV2bm9kZV9kYXRh KGZpbHApOwogCi0JaWYgKCFtZWRpYV9kZXZub2RlX2lzX3JlZ2lzdGVyZWQobWRldikpCisJaWYg KCFtZWRpYV9kZXZub2RlX2lzX3JlZ2lzdGVyZWQoZGV2bm9kZSkpCiAJCXJldHVybiBQT0xMRVJS IHwgUE9MTEhVUDsKLQlpZiAoIW1kZXYtPmZvcHMtPnBvbGwpCisJaWYgKCFkZXZub2RlLT5mb3Bz LT5wb2xsKQogCQlyZXR1cm4gREVGQVVMVF9QT0xMTUFTSzsKLQlyZXR1cm4gbWRldi0+Zm9wcy0+ cG9sbChmaWxwLCBwb2xsKTsKKwlyZXR1cm4gZGV2bm9kZS0+Zm9wcy0+cG9sbChmaWxwLCBwb2xs KTsKIH0KIAogc3RhdGljIGxvbmcKQEAgLTEyMSwxMiArMTIxLDEyIEBAIF9fbWVkaWFfaW9jdGwo c3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnLAog CSAgICAgIGxvbmcgKCppb2N0bF9mdW5jKShzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50 IGNtZCwKIAkJCQkgdW5zaWduZWQgbG9uZyBhcmcpKQogewotCXN0cnVjdCBtZWRpYV9kZXZub2Rl ICptZGV2ID0gbWVkaWFfZGV2bm9kZV9kYXRhKGZpbHApOworCXN0cnVjdCBtZWRpYV9kZXZub2Rl ICpkZXZub2RlID0gbWVkaWFfZGV2bm9kZV9kYXRhKGZpbHApOwogCiAJaWYgKCFpb2N0bF9mdW5j KQogCQlyZXR1cm4gLUVOT1RUWTsKIAotCWlmICghbWVkaWFfZGV2bm9kZV9pc19yZWdpc3RlcmVk KG1kZXYpKQorCWlmICghbWVkaWFfZGV2bm9kZV9pc19yZWdpc3RlcmVkKGRldm5vZGUpKQogCQly ZXR1cm4gLUVJTzsKIAogCXJldHVybiBpb2N0bF9mdW5jKGZpbHAsIGNtZCwgYXJnKTsKQEAgLTEz NCw5ICsxMzQsOSBAQCBfX21lZGlhX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBp bnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZywKIAogc3RhdGljIGxvbmcgbWVkaWFfaW9jdGwoc3Ry dWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogewot CXN0cnVjdCBtZWRpYV9kZXZub2RlICptZGV2ID0gbWVkaWFfZGV2bm9kZV9kYXRhKGZpbHApOwor CXN0cnVjdCBtZWRpYV9kZXZub2RlICpkZXZub2RlID0gbWVkaWFfZGV2bm9kZV9kYXRhKGZpbHAp OwogCi0JcmV0dXJuIF9fbWVkaWFfaW9jdGwoZmlscCwgY21kLCBhcmcsIG1kZXYtPmZvcHMtPmlv Y3RsKTsKKwlyZXR1cm4gX19tZWRpYV9pb2N0bChmaWxwLCBjbWQsIGFyZywgZGV2bm9kZS0+Zm9w cy0+aW9jdGwpOwogfQogCiAjaWZkZWYgQ09ORklHX0NPTVBBVApAQCAtMTQ0LDkgKzE0NCw5IEBA IHN0YXRpYyBsb25nIG1lZGlhX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQg Y21kLCB1bnNpZ25lZCBsb25nIGFyZykKIHN0YXRpYyBsb25nIG1lZGlhX2NvbXBhdF9pb2N0bChz dHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKIAkJCSAgICAgICB1bnNpZ25lZCBs b25nIGFyZykKIHsKLQlzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqbWRldiA9IG1lZGlhX2Rldm5vZGVf ZGF0YShmaWxwKTsKKwlzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqZGV2bm9kZSA9IG1lZGlhX2Rldm5v ZGVfZGF0YShmaWxwKTsKIAotCXJldHVybiBfX21lZGlhX2lvY3RsKGZpbHAsIGNtZCwgYXJnLCBt ZGV2LT5mb3BzLT5jb21wYXRfaW9jdGwpOworCXJldHVybiBfX21lZGlhX2lvY3RsKGZpbHAsIGNt ZCwgYXJnLCBkZXZub2RlLT5mb3BzLT5jb21wYXRfaW9jdGwpOwogfQogCiAjZW5kaWYgLyogQ09O RklHX0NPTVBBVCAqLwpAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBsb25nIG1lZGlhX2NvbXBh dF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKIC8qIE92ZXJyaWRl IGZvciB0aGUgb3BlbiBmdW5jdGlvbiAqLwogc3RhdGljIGludCBtZWRpYV9vcGVuKHN0cnVjdCBp bm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewotCXN0cnVjdCBtZWRpYV9kZXZub2Rl ICptZGV2OworCXN0cnVjdCBtZWRpYV9kZXZub2RlICpkZXZub2RlOwogCWludCByZXQ7CiAKIAkv KiBDaGVjayBpZiB0aGUgbWVkaWEgZGV2aWNlIGlzIGF2YWlsYWJsZS4gVGhpcyBuZWVkcyB0byBi ZSBkb25lIHdpdGgKQEAgLTE2NCwyMyArMTY0LDIzIEBAIHN0YXRpYyBpbnQgbWVkaWFfb3Blbihz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIAkgKiBhIGNyYXNoLgogCSAq LwogCW11dGV4X2xvY2soJm1lZGlhX2Rldm5vZGVfbG9jayk7Ci0JbWRldiA9IGNvbnRhaW5lcl9v Zihpbm9kZS0+aV9jZGV2LCBzdHJ1Y3QgbWVkaWFfZGV2bm9kZSwgY2Rldik7CisJZGV2bm9kZSA9 IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LCBzdHJ1Y3QgbWVkaWFfZGV2bm9kZSwgY2Rldik7 CiAJLyogcmV0dXJuIEVOWElPIGlmIHRoZSBtZWRpYSBkZXZpY2UgaGFzIGJlZW4gcmVtb3ZlZAog CSAgIGFscmVhZHkgb3IgaWYgaXQgaXMgbm90IHJlZ2lzdGVyZWQgYW55bW9yZS4gKi8KLQlpZiAo IW1lZGlhX2Rldm5vZGVfaXNfcmVnaXN0ZXJlZChtZGV2KSkgeworCWlmICghbWVkaWFfZGV2bm9k ZV9pc19yZWdpc3RlcmVkKGRldm5vZGUpKSB7CiAJCW11dGV4X3VubG9jaygmbWVkaWFfZGV2bm9k ZV9sb2NrKTsKIAkJcmV0dXJuIC1FTlhJTzsKIAl9CiAJLyogYW5kIGluY3JlYXNlIHRoZSBkZXZp Y2UgcmVmY291bnQgKi8KLQlnZXRfZGV2aWNlKCZtZGV2LT5kZXYpOworCWdldF9kZXZpY2UoJmRl dm5vZGUtPmRldik7CiAJbXV0ZXhfdW5sb2NrKCZtZWRpYV9kZXZub2RlX2xvY2spOwogCi0JZmls cC0+cHJpdmF0ZV9kYXRhID0gbWRldjsKKwlmaWxwLT5wcml2YXRlX2RhdGEgPSBkZXZub2RlOwog Ci0JaWYgKG1kZXYtPmZvcHMtPm9wZW4pIHsKLQkJcmV0ID0gbWRldi0+Zm9wcy0+b3BlbihmaWxw KTsKKwlpZiAoZGV2bm9kZS0+Zm9wcy0+b3BlbikgeworCQlyZXQgPSBkZXZub2RlLT5mb3BzLT5v cGVuKGZpbHApOwogCQlpZiAocmV0KSB7Ci0JCQlwdXRfZGV2aWNlKCZtZGV2LT5kZXYpOworCQkJ cHV0X2RldmljZSgmZGV2bm9kZS0+ZGV2KTsKIAkJCWZpbHAtPnByaXZhdGVfZGF0YSA9IE5VTEw7 CiAJCQlyZXR1cm4gcmV0OwogCQl9CkBAIC0xOTIsMTYgKzE5MiwxNiBAQCBzdGF0aWMgaW50IG1l ZGlhX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiAvKiBPdmVy cmlkZSBmb3IgdGhlIHJlbGVhc2UgZnVuY3Rpb24gKi8KIHN0YXRpYyBpbnQgbWVkaWFfcmVsZWFz ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKLQlzdHJ1Y3QgbWVk aWFfZGV2bm9kZSAqbWRldiA9IG1lZGlhX2Rldm5vZGVfZGF0YShmaWxwKTsKKwlzdHJ1Y3QgbWVk aWFfZGV2bm9kZSAqZGV2bm9kZSA9IG1lZGlhX2Rldm5vZGVfZGF0YShmaWxwKTsKIAotCWlmICht ZGV2LT5mb3BzLT5yZWxlYXNlKQotCQltZGV2LT5mb3BzLT5yZWxlYXNlKGZpbHApOworCWlmIChk ZXZub2RlLT5mb3BzLT5yZWxlYXNlKQorCQlkZXZub2RlLT5mb3BzLT5yZWxlYXNlKGZpbHApOwog CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKIAogCS8qIGRlY3JlYXNlIHRoZSByZWZjb3Vu dCB1bmNvbmRpdGlvbmFsbHkgc2luY2UgdGhlIHJlbGVhc2UoKQogCSAgIHJldHVybiB2YWx1ZSBp cyBpZ25vcmVkLiAqLwotCXB1dF9kZXZpY2UoJm1kZXYtPmRldik7CisJcHV0X2RldmljZSgmZGV2 bm9kZS0+ZGV2KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjIxLDcgKzIyMSw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG1lZGlhX2Rldm5vZGVfZm9wcyA9IHsKIAogLyoq CiAgKiBtZWRpYV9kZXZub2RlX3JlZ2lzdGVyIC0gcmVnaXN0ZXIgYSBtZWRpYSBkZXZpY2Ugbm9k ZQotICogQG1kZXY6IG1lZGlhIGRldmljZSBub2RlIHN0cnVjdHVyZSB3ZSB3YW50IHRvIHJlZ2lz dGVyCisgKiBAZGV2bm9kZTogbWVkaWEgZGV2aWNlIG5vZGUgc3RydWN0dXJlIHdlIHdhbnQgdG8g cmVnaXN0ZXIKICAqCiAgKiBUaGUgcmVnaXN0cmF0aW9uIGNvZGUgYXNzaWducyBtaW5vciBudW1i ZXJzIGFuZCByZWdpc3RlcnMgdGhlIG5ldyBkZXZpY2Ugbm9kZQogICogd2l0aCB0aGUga2VybmVs LiBBbiBlcnJvciBpcyByZXR1cm5lZCBpZiBubyBmcmVlIG1pbm9yIG51bWJlciBjYW4gYmUgZm91 bmQsCkBAIC0yMzMsNyArMjMzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlv bnMgbWVkaWFfZGV2bm9kZV9mb3BzID0gewogICogdGhlIG1lZGlhX2Rldm5vZGUgc3RydWN0dXJl IGlzICpub3QqIGNhbGxlZCwgc28gdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKICAqIGZy ZWVpbmcgYW55IGRhdGEuCiAgKi8KLWludCBfX211c3RfY2hlY2sgbWVkaWFfZGV2bm9kZV9yZWdp c3RlcihzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqbWRldiwKK2ludCBfX211c3RfY2hlY2sgbWVkaWFf ZGV2bm9kZV9yZWdpc3RlcihzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqZGV2bm9kZSwKIAkJCQkJc3Ry dWN0IG1vZHVsZSAqb3duZXIpCiB7CiAJaW50IG1pbm9yOwpAQCAtMjUxLDQwICsyNTEsNDAgQEAg aW50IF9fbXVzdF9jaGVjayBtZWRpYV9kZXZub2RlX3JlZ2lzdGVyKHN0cnVjdCBtZWRpYV9kZXZu b2RlICptZGV2LAogCXNldF9iaXQobWlub3IsIG1lZGlhX2Rldm5vZGVfbnVtcyk7CiAJbXV0ZXhf dW5sb2NrKCZtZWRpYV9kZXZub2RlX2xvY2spOwogCi0JbWRldi0+bWlub3IgPSBtaW5vcjsKKwlk ZXZub2RlLT5taW5vciA9IG1pbm9yOwogCiAJLyogUGFydCAyOiBJbml0aWFsaXplIGFuZCByZWdp c3RlciB0aGUgY2hhcmFjdGVyIGRldmljZSAqLwotCWNkZXZfaW5pdCgmbWRldi0+Y2RldiwgJm1l ZGlhX2Rldm5vZGVfZm9wcyk7Ci0JbWRldi0+Y2Rldi5vd25lciA9IG93bmVyOworCWNkZXZfaW5p dCgmZGV2bm9kZS0+Y2RldiwgJm1lZGlhX2Rldm5vZGVfZm9wcyk7CisJZGV2bm9kZS0+Y2Rldi5v d25lciA9IG93bmVyOwogCi0JcmV0ID0gY2Rldl9hZGQoJm1kZXYtPmNkZXYsIE1LREVWKE1BSk9S KG1lZGlhX2Rldl90KSwgbWRldi0+bWlub3IpLCAxKTsKKwlyZXQgPSBjZGV2X2FkZCgmZGV2bm9k ZS0+Y2RldiwgTUtERVYoTUFKT1IobWVkaWFfZGV2X3QpLCBkZXZub2RlLT5taW5vciksIDEpOwog CWlmIChyZXQgPCAwKSB7CiAJCXByX2VycigiJXM6IGNkZXZfYWRkIGZhaWxlZFxuIiwgX19mdW5j X18pOwogCQlnb3RvIGVycm9yOwogCX0KIAogCS8qIFBhcnQgMzogUmVnaXN0ZXIgdGhlIG1lZGlh IGRldmljZSAqLwotCW1kZXYtPmRldi5idXMgPSAmbWVkaWFfYnVzX3R5cGU7Ci0JbWRldi0+ZGV2 LmRldnQgPSBNS0RFVihNQUpPUihtZWRpYV9kZXZfdCksIG1kZXYtPm1pbm9yKTsKLQltZGV2LT5k ZXYucmVsZWFzZSA9IG1lZGlhX2Rldm5vZGVfcmVsZWFzZTsKLQlpZiAobWRldi0+cGFyZW50KQot CQltZGV2LT5kZXYucGFyZW50ID0gbWRldi0+cGFyZW50OwotCWRldl9zZXRfbmFtZSgmbWRldi0+ ZGV2LCAibWVkaWElZCIsIG1kZXYtPm1pbm9yKTsKLQlyZXQgPSBkZXZpY2VfcmVnaXN0ZXIoJm1k ZXYtPmRldik7CisJZGV2bm9kZS0+ZGV2LmJ1cyA9ICZtZWRpYV9idXNfdHlwZTsKKwlkZXZub2Rl LT5kZXYuZGV2dCA9IE1LREVWKE1BSk9SKG1lZGlhX2Rldl90KSwgZGV2bm9kZS0+bWlub3IpOwor CWRldm5vZGUtPmRldi5yZWxlYXNlID0gbWVkaWFfZGV2bm9kZV9yZWxlYXNlOworCWlmIChkZXZu b2RlLT5wYXJlbnQpCisJCWRldm5vZGUtPmRldi5wYXJlbnQgPSBkZXZub2RlLT5wYXJlbnQ7CisJ ZGV2X3NldF9uYW1lKCZkZXZub2RlLT5kZXYsICJtZWRpYSVkIiwgZGV2bm9kZS0+bWlub3IpOwor CXJldCA9IGRldmljZV9yZWdpc3RlcigmZGV2bm9kZS0+ZGV2KTsKIAlpZiAocmV0IDwgMCkgewog CQlwcl9lcnIoIiVzOiBkZXZpY2VfcmVnaXN0ZXIgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7CiAJCWdv dG8gZXJyb3I7CiAJfQogCiAJLyogUGFydCA0OiBBY3RpdmF0ZSB0aGlzIG1pbm9yLiBUaGUgY2hh ciBkZXZpY2UgY2FuIG5vdyBiZSB1c2VkLiAqLwotCXNldF9iaXQoTUVESUFfRkxBR19SRUdJU1RF UkVELCAmbWRldi0+ZmxhZ3MpOworCXNldF9iaXQoTUVESUFfRkxBR19SRUdJU1RFUkVELCAmZGV2 bm9kZS0+ZmxhZ3MpOwogCiAJcmV0dXJuIDA7CiAKIGVycm9yOgogCW11dGV4X2xvY2soJm1lZGlh X2Rldm5vZGVfbG9jayk7Ci0JY2Rldl9kZWwoJm1kZXYtPmNkZXYpOwotCWNsZWFyX2JpdChtZGV2 LT5taW5vciwgbWVkaWFfZGV2bm9kZV9udW1zKTsKKwljZGV2X2RlbCgmZGV2bm9kZS0+Y2Rldik7 CisJY2xlYXJfYml0KGRldm5vZGUtPm1pbm9yLCBtZWRpYV9kZXZub2RlX251bXMpOwogCW11dGV4 X3VubG9jaygmbWVkaWFfZGV2bm9kZV9sb2NrKTsKIAogCXJldHVybiByZXQ7CkBAIC0yOTIsNyAr MjkyLDcgQEAgZXJyb3I6CiAKIC8qKgogICogbWVkaWFfZGV2bm9kZV91bnJlZ2lzdGVyIC0gdW5y ZWdpc3RlciBhIG1lZGlhIGRldmljZSBub2RlCi0gKiBAbWRldjogdGhlIGRldmljZSBub2RlIHRv IHVucmVnaXN0ZXIKKyAqIEBkZXZub2RlOiB0aGUgZGV2aWNlIG5vZGUgdG8gdW5yZWdpc3Rlcgog ICoKICAqIFRoaXMgdW5yZWdpc3RlcnMgdGhlIHBhc3NlZCBkZXZpY2UuIEZ1dHVyZSBvcGVuIGNh bGxzIHdpbGwgYmUgbWV0IHdpdGgKICAqIGVycm9ycy4KQEAgLTMwMCwxNiArMzAwLDE2IEBAIGVy cm9yOgogICogVGhpcyBmdW5jdGlvbiBjYW4gc2FmZWx5IGJlIGNhbGxlZCBpZiB0aGUgZGV2aWNl IG5vZGUgaGFzIG5ldmVyIGJlZW4KICAqIHJlZ2lzdGVyZWQgb3IgaGFzIGFscmVhZHkgYmVlbiB1 bnJlZ2lzdGVyZWQuCiAgKi8KLXZvaWQgbWVkaWFfZGV2bm9kZV91bnJlZ2lzdGVyKHN0cnVjdCBt ZWRpYV9kZXZub2RlICptZGV2KQordm9pZCBtZWRpYV9kZXZub2RlX3VucmVnaXN0ZXIoc3RydWN0 IG1lZGlhX2Rldm5vZGUgKmRldm5vZGUpCiB7Ci0JLyogQ2hlY2sgaWYgbWRldiB3YXMgZXZlciBy ZWdpc3RlcmVkIGF0IGFsbCAqLwotCWlmICghbWVkaWFfZGV2bm9kZV9pc19yZWdpc3RlcmVkKG1k ZXYpKQorCS8qIENoZWNrIGlmIGRldm5vZGUgd2FzIGV2ZXIgcmVnaXN0ZXJlZCBhdCBhbGwgKi8K KwlpZiAoIW1lZGlhX2Rldm5vZGVfaXNfcmVnaXN0ZXJlZChkZXZub2RlKSkKIAkJcmV0dXJuOwog CiAJbXV0ZXhfbG9jaygmbWVkaWFfZGV2bm9kZV9sb2NrKTsKLQljbGVhcl9iaXQoTUVESUFfRkxB R19SRUdJU1RFUkVELCAmbWRldi0+ZmxhZ3MpOworCWNsZWFyX2JpdChNRURJQV9GTEFHX1JFR0lT VEVSRUQsICZkZXZub2RlLT5mbGFncyk7CiAJbXV0ZXhfdW5sb2NrKCZtZWRpYV9kZXZub2RlX2xv Y2spOwotCWRldmljZV91bnJlZ2lzdGVyKCZtZGV2LT5kZXYpOworCWRldmljZV91bnJlZ2lzdGVy KCZkZXZub2RlLT5kZXYpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS9tZWRp YS1kZXZub2RlLmggYi9pbmNsdWRlL21lZGlhL21lZGlhLWRldm5vZGUuaAppbmRleCAxN2RkYWUz MjA2MGQuLjc5ZjcwMmQyNmQxZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tZWRpYS9tZWRpYS1kZXZu b2RlLmgKKysrIGIvaW5jbHVkZS9tZWRpYS9tZWRpYS1kZXZub2RlLmgKQEAgLTgwLDI0ICs4MCwy NCBAQCBzdHJ1Y3QgbWVkaWFfZGV2bm9kZSB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsJCS8qIFVz ZSBiaXRvcHMgdG8gYWNjZXNzIGZsYWdzICovCiAKIAkvKiBjYWxsYmFja3MgKi8KLQl2b2lkICgq cmVsZWFzZSkoc3RydWN0IG1lZGlhX2Rldm5vZGUgKm1kZXYpOworCXZvaWQgKCpyZWxlYXNlKShz dHJ1Y3QgbWVkaWFfZGV2bm9kZSAqZGV2bm9kZSk7CiB9OwogCiAvKiBkZXYgdG8gbWVkaWFfZGV2 bm9kZSAqLwogI2RlZmluZSB0b19tZWRpYV9kZXZub2RlKGNkKSBjb250YWluZXJfb2YoY2QsIHN0 cnVjdCBtZWRpYV9kZXZub2RlLCBkZXYpCiAKLWludCBfX211c3RfY2hlY2sgbWVkaWFfZGV2bm9k ZV9yZWdpc3RlcihzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqbWRldiwKK2ludCBfX211c3RfY2hlY2sg bWVkaWFfZGV2bm9kZV9yZWdpc3RlcihzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqZGV2bm9kZSwKIAkJ CQkJc3RydWN0IG1vZHVsZSAqb3duZXIpOwotdm9pZCBtZWRpYV9kZXZub2RlX3VucmVnaXN0ZXIo c3RydWN0IG1lZGlhX2Rldm5vZGUgKm1kZXYpOwordm9pZCBtZWRpYV9kZXZub2RlX3VucmVnaXN0 ZXIoc3RydWN0IG1lZGlhX2Rldm5vZGUgKmRldm5vZGUpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVj dCBtZWRpYV9kZXZub2RlICptZWRpYV9kZXZub2RlX2RhdGEoc3RydWN0IGZpbGUgKmZpbHApCiB7 CiAJcmV0dXJuIGZpbHAtPnByaXZhdGVfZGF0YTsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgbWVk aWFfZGV2bm9kZV9pc19yZWdpc3RlcmVkKHN0cnVjdCBtZWRpYV9kZXZub2RlICptZGV2KQorc3Rh dGljIGlubGluZSBpbnQgbWVkaWFfZGV2bm9kZV9pc19yZWdpc3RlcmVkKHN0cnVjdCBtZWRpYV9k ZXZub2RlICpkZXZub2RlKQogewotCXJldHVybiB0ZXN0X2JpdChNRURJQV9GTEFHX1JFR0lTVEVS RUQsICZtZGV2LT5mbGFncyk7CisJcmV0dXJuIHRlc3RfYml0KE1FRElBX0ZMQUdfUkVHSVNURVJF RCwgJmRldm5vZGUtPmZsYWdzKTsKIH0KIAogI2VuZGlmIC8qIF9NRURJQV9ERVZOT0RFX0ggKi8K CkZyb20gMGFmYzcyMjU3YzIzZDE3YmQ2YmNiZWFiYmI0OTgyOTc5Zjc5NDUwMCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiQG9zZy5z YW1zdW5nLmNvbT4KRGF0ZTogV2VkLCAyNyBBcHIgMjAxNiAxOToyODoyNiAtMDMwMApTdWJqZWN0 OiBbbWVkaWFdIG1lZGlhLWRldmljZTogZHluYW1pY2FsbHkgYWxsb2NhdGUgc3RydWN0IG1lZGlh X2Rldm5vZGUKCmNvbW1pdCBhMDg3Y2U3MDRiODAyYmVjYmI0YjBmMmEyMGYyY2IzZjY5MTE4MDJl IHVwc3RyZWFtLgoKc3RydWN0IG1lZGlhX2Rldm5vZGUgaXMgY3VycmVudGx5IGVtYmVkZGVkIGF0 IHN0cnVjdCBtZWRpYV9kZXZpY2UuCgpXaGlsZSB0aGlzIHdvcmtzIGZpbmUgZHVyaW5nIG5vcm1h bCB1c2FnZSwgaXQgbGVhZHMgdG8gYSByYWNlCmNvbmRpdGlvbiBkdXJpbmcgZGV2bm9kZSB1bnJl Z2lzdGVyLiB0aGUgcHJvYmxlbSBpcyB0aGF0IGRyaXZlcnMKYXNzdW1lIHRoYXQsIGFmdGVyIGNh bGxpbmcgbWVkaWFfZGV2aWNlX3VucmVnaXN0ZXIoKSwgdGhlIHN0cnVjdAp0aGF0IGNvbnRhaW5z IG1lZGlhX2RldmljZSBjYW4gYmUgZnJlZWQuIFRoaXMgaXMgbm90IHRydWUsIGFzIGl0CmNhbid0 IGJlIGZyZWVkIHVudGlsIHVzZXJzcGFjZSBjbG9zZXMgYWxsIG9wZW5lZCAvZGV2L21lZGlhIGRl dm5vZGVzLgoKSW4gb3RoZXIgd29yZHMsIGlmIHRoZSBtZWRpYSBkZXZub2RlIGlzIHN0aWxsIG9w ZW4sIGFuZCBtZWRpYV9kZXZpY2UKZ2V0cyBmcmVlZCwgYW55IGNhbGwgdG8gYW4gaW9jdGwgd2ls bCBtYWtlIHRoZSBjb3JlIHRvIHRyeSB0byBhY2Nlc3MKc3RydWN0IG1lZGlhX2RldmljZSwgd2l0 aCB3aWxsIGNhdXNlIGFuIHVzZS1hZnRlci1mcmVlIGFuZCBldmVuIEdQRi4KCkZpeCB0aGlzIGJ5 IGR5bmFtaWNhbGx5IGFsbG9jYXRpbmcgdGhlIHN0cnVjdCBtZWRpYV9kZXZub2RlIGFuZCBvbmx5 CmZyZWVpbmcgaXQgd2hlbiBpdCBpcyBzYWZlLgoKU2lnbmVkLW9mZi1ieTogTWF1cm8gQ2FydmFs aG8gQ2hlaGFiIDxtY2hlaGFiQG9zZy5zYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF1cm8g Q2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiQHMtb3BlbnNvdXJjZS5jb20+Cltid2g6IEJhY2twb3J0 ZWQgdG8gNC40OgogLSBEcm9wIGNoYW5nZSBpbiBhdTA4MjgKIC0gSW5jbHVkZSA8bGludXgvc2xh Yi5oPiBpbiBtZWRpYS1kZXZpY2UuYwogLSBBZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTog QmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZHJpdmVy cy9tZWRpYS9tZWRpYS1kZXZpY2UuYyAgICAgICB8IDQwICsrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLQogZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZub2RlLmMgICAgICB8ICA4ICsrKysrLQog ZHJpdmVycy9tZWRpYS91c2IvdXZjL3V2Y19kcml2ZXIuYyB8ICAyICstCiBpbmNsdWRlL21lZGlh L21lZGlhLWRldmljZS5oICAgICAgIHwgIDUgKy0tLQogaW5jbHVkZS9tZWRpYS9tZWRpYS1kZXZu b2RlLmggICAgICB8IDEwICsrKysrKystCiA1IGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMo KyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvbWVkaWEtZGV2 aWNlLmMgYi9kcml2ZXJzL21lZGlhL21lZGlhLWRldmljZS5jCmluZGV4IDdiMzk0NDAxOTJkNi4u ZmIwMThmZTFhOGY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL21lZGlhLWRldmljZS5jCisr KyBiL2RyaXZlcnMvbWVkaWEvbWVkaWEtZGV2aWNlLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNs dWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgogI2luY2x1ZGUg PGxpbnV4L21lZGlhLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4 L3R5cGVzLmg+CiAKICNpbmNsdWRlIDxtZWRpYS9tZWRpYS1kZXZpY2UuaD4KQEAgLTIzNCw3ICsy MzUsNyBAQCBzdGF0aWMgbG9uZyBtZWRpYV9kZXZpY2VfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAs IHVuc2lnbmVkIGludCBjbWQsCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBhcmcpCiB7CiAJc3Ry dWN0IG1lZGlhX2Rldm5vZGUgKmRldm5vZGUgPSBtZWRpYV9kZXZub2RlX2RhdGEoZmlscCk7Ci0J c3RydWN0IG1lZGlhX2RldmljZSAqZGV2ID0gdG9fbWVkaWFfZGV2aWNlKGRldm5vZGUpOworCXN0 cnVjdCBtZWRpYV9kZXZpY2UgKmRldiA9IGRldm5vZGUtPm1lZGlhX2RldjsKIAlsb25nIHJldDsK IAogCXN3aXRjaCAoY21kKSB7CkBAIC0zMDMsNyArMzA0LDcgQEAgc3RhdGljIGxvbmcgbWVkaWFf ZGV2aWNlX2NvbXBhdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwK IAkJCQkgICAgICB1bnNpZ25lZCBsb25nIGFyZykKIHsKIAlzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAq ZGV2bm9kZSA9IG1lZGlhX2Rldm5vZGVfZGF0YShmaWxwKTsKLQlzdHJ1Y3QgbWVkaWFfZGV2aWNl ICpkZXYgPSB0b19tZWRpYV9kZXZpY2UoZGV2bm9kZSk7CisJc3RydWN0IG1lZGlhX2RldmljZSAq ZGV2ID0gZGV2bm9kZS0+bWVkaWFfZGV2OwogCWxvbmcgcmV0OwogCiAJc3dpdGNoIChjbWQpIHsK QEAgLTM0NCw3ICszNDUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhX2ZpbGVfb3BlcmF0 aW9ucyBtZWRpYV9kZXZpY2VfZm9wcyA9IHsKIHN0YXRpYyBzc2l6ZV90IHNob3dfbW9kZWwoc3Ry dWN0IGRldmljZSAqY2QsCiAJCQkgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFy ICpidWYpCiB7Ci0Jc3RydWN0IG1lZGlhX2RldmljZSAqbWRldiA9IHRvX21lZGlhX2RldmljZSh0 b19tZWRpYV9kZXZub2RlKGNkKSk7CisJc3RydWN0IG1lZGlhX2Rldm5vZGUgKmRldm5vZGUgPSB0 b19tZWRpYV9kZXZub2RlKGNkKTsKKwlzdHJ1Y3QgbWVkaWFfZGV2aWNlICptZGV2ID0gZGV2bm9k ZS0+bWVkaWFfZGV2OwogCiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJS4qc1xuIiwgKGludClzaXpl b2YobWRldi0+bW9kZWwpLCBtZGV2LT5tb2RlbCk7CiB9CkBAIC0zNzIsNiArMzc0LDcgQEAgc3Rh dGljIHZvaWQgbWVkaWFfZGV2aWNlX3JlbGVhc2Uoc3RydWN0IG1lZGlhX2Rldm5vZGUgKm1kZXYp CiBpbnQgX19tdXN0X2NoZWNrIF9fbWVkaWFfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZWRpYV9k ZXZpY2UgKm1kZXYsCiAJCQkJCSBzdHJ1Y3QgbW9kdWxlICpvd25lcikKIHsKKwlzdHJ1Y3QgbWVk aWFfZGV2bm9kZSAqZGV2bm9kZTsKIAlpbnQgcmV0OwogCiAJaWYgKFdBUk5fT04obWRldi0+ZGV2 ID09IE5VTEwgfHwgbWRldi0+bW9kZWxbMF0gPT0gMCkpCkBAIC0zODIsMTcgKzM4NSwyNyBAQCBp bnQgX19tdXN0X2NoZWNrIF9fbWVkaWFfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZWRpYV9kZXZp Y2UgKm1kZXYsCiAJc3Bpbl9sb2NrX2luaXQoJm1kZXYtPmxvY2spOwogCW11dGV4X2luaXQoJm1k ZXYtPmdyYXBoX211dGV4KTsKIAorCWRldm5vZGUgPSBremFsbG9jKHNpemVvZigqZGV2bm9kZSks IEdGUF9LRVJORUwpOworCWlmICghZGV2bm9kZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKIAkvKiBS ZWdpc3RlciB0aGUgZGV2aWNlIG5vZGUuICovCi0JbWRldi0+ZGV2bm9kZS5mb3BzID0gJm1lZGlh X2RldmljZV9mb3BzOwotCW1kZXYtPmRldm5vZGUucGFyZW50ID0gbWRldi0+ZGV2OwotCW1kZXYt PmRldm5vZGUucmVsZWFzZSA9IG1lZGlhX2RldmljZV9yZWxlYXNlOwotCXJldCA9IG1lZGlhX2Rl dm5vZGVfcmVnaXN0ZXIoJm1kZXYtPmRldm5vZGUsIG93bmVyKTsKLQlpZiAocmV0IDwgMCkKKwlt ZGV2LT5kZXZub2RlID0gZGV2bm9kZTsKKwlkZXZub2RlLT5mb3BzID0gJm1lZGlhX2RldmljZV9m b3BzOworCWRldm5vZGUtPnBhcmVudCA9IG1kZXYtPmRldjsKKwlkZXZub2RlLT5yZWxlYXNlID0g bWVkaWFfZGV2aWNlX3JlbGVhc2U7CisJcmV0ID0gbWVkaWFfZGV2bm9kZV9yZWdpc3RlcihtZGV2 LCBkZXZub2RlLCBvd25lcik7CisJaWYgKHJldCA8IDApIHsKKwkJbWRldi0+ZGV2bm9kZSA9IE5V TEw7CisJCWtmcmVlKGRldm5vZGUpOwogCQlyZXR1cm4gcmV0OworCX0KIAotCXJldCA9IGRldmlj ZV9jcmVhdGVfZmlsZSgmbWRldi0+ZGV2bm9kZS5kZXYsICZkZXZfYXR0cl9tb2RlbCk7CisJcmV0 ID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZkZXZub2RlLT5kZXYsICZkZXZfYXR0cl9tb2RlbCk7CiAJ aWYgKHJldCA8IDApIHsKLQkJbWVkaWFfZGV2bm9kZV91bnJlZ2lzdGVyKCZtZGV2LT5kZXZub2Rl KTsKKwkJbWRldi0+ZGV2bm9kZSA9IE5VTEw7CisJCW1lZGlhX2Rldm5vZGVfdW5yZWdpc3Rlcihk ZXZub2RlKTsKKwkJa2ZyZWUoZGV2bm9kZSk7CiAJCXJldHVybiByZXQ7CiAJfQogCkBAIC00MTMs OCArNDI2LDExIEBAIHZvaWQgbWVkaWFfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IG1lZGlhX2Rl dmljZSAqbWRldikKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50aXR5LCBuZXh0LCAmbWRl di0+ZW50aXRpZXMsIGxpc3QpCiAJCW1lZGlhX2RldmljZV91bnJlZ2lzdGVyX2VudGl0eShlbnRp dHkpOwogCi0JZGV2aWNlX3JlbW92ZV9maWxlKCZtZGV2LT5kZXZub2RlLmRldiwgJmRldl9hdHRy X21vZGVsKTsKLQltZWRpYV9kZXZub2RlX3VucmVnaXN0ZXIoJm1kZXYtPmRldm5vZGUpOworCS8q IENoZWNrIGlmIG1kZXYgZGV2bm9kZSB3YXMgcmVnaXN0ZXJlZCAqLworCWlmIChtZWRpYV9kZXZu b2RlX2lzX3JlZ2lzdGVyZWQobWRldi0+ZGV2bm9kZSkpIHsKKwkJZGV2aWNlX3JlbW92ZV9maWxl KCZtZGV2LT5kZXZub2RlLT5kZXYsICZkZXZfYXR0cl9tb2RlbCk7CisJCW1lZGlhX2Rldm5vZGVf dW5yZWdpc3RlcihtZGV2LT5kZXZub2RlKTsKKwl9CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChtZWRp YV9kZXZpY2VfdW5yZWdpc3Rlcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvbWVkaWEt ZGV2bm9kZS5jIGIvZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZub2RlLmMKaW5kZXggOTgyMTFjNTcw ZTExLi4wMDBlZmIxN2I5NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvbWVkaWEtZGV2bm9k ZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvbWVkaWEtZGV2bm9kZS5jCkBAIC00NCw2ICs0NCw3IEBA CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogCiAjaW5jbHVkZSA8bWVkaWEvbWVkaWEtZGV2 bm9kZS5oPgorI2luY2x1ZGUgPG1lZGlhL21lZGlhLWRldmljZS5oPgogCiAjZGVmaW5lIE1FRElB X05VTV9ERVZJQ0VTCTI1NgogI2RlZmluZSBNRURJQV9OQU1FCQkibWVkaWEiCkBAIC03NCw2ICs3 NSw4IEBAIHN0YXRpYyB2b2lkIG1lZGlhX2Rldm5vZGVfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpj ZCkKIAkvKiBSZWxlYXNlIG1lZGlhX2Rldm5vZGUgYW5kIHBlcmZvcm0gb3RoZXIgY2xlYW51cHMg YXMgbmVlZGVkLiAqLwogCWlmIChkZXZub2RlLT5yZWxlYXNlKQogCQlkZXZub2RlLT5yZWxlYXNl KGRldm5vZGUpOworCisJa2ZyZWUoZGV2bm9kZSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYnVzX3R5 cGUgbWVkaWFfYnVzX3R5cGUgPSB7CkBAIC0yMjEsNiArMjI0LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBmaWxlX29wZXJhdGlvbnMgbWVkaWFfZGV2bm9kZV9mb3BzID0gewogCiAvKioKICAqIG1l ZGlhX2Rldm5vZGVfcmVnaXN0ZXIgLSByZWdpc3RlciBhIG1lZGlhIGRldmljZSBub2RlCisgKiBA bWVkaWFfZGV2OiBzdHJ1Y3QgbWVkaWFfZGV2aWNlIHdlIHdhbnQgdG8gcmVnaXN0ZXIgYSBkZXZp Y2Ugbm9kZQogICogQGRldm5vZGU6IG1lZGlhIGRldmljZSBub2RlIHN0cnVjdHVyZSB3ZSB3YW50 IHRvIHJlZ2lzdGVyCiAgKgogICogVGhlIHJlZ2lzdHJhdGlvbiBjb2RlIGFzc2lnbnMgbWlub3Ig bnVtYmVycyBhbmQgcmVnaXN0ZXJzIHRoZSBuZXcgZGV2aWNlIG5vZGUKQEAgLTIzMyw3ICsyMzcs OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtZWRpYV9kZXZub2RlX2Zv cHMgPSB7CiAgKiB0aGUgbWVkaWFfZGV2bm9kZSBzdHJ1Y3R1cmUgaXMgKm5vdCogY2FsbGVkLCBz byB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvcgogICogZnJlZWluZyBhbnkgZGF0YS4KICAq LwotaW50IF9fbXVzdF9jaGVjayBtZWRpYV9kZXZub2RlX3JlZ2lzdGVyKHN0cnVjdCBtZWRpYV9k ZXZub2RlICpkZXZub2RlLAoraW50IF9fbXVzdF9jaGVjayBtZWRpYV9kZXZub2RlX3JlZ2lzdGVy KHN0cnVjdCBtZWRpYV9kZXZpY2UgKm1kZXYsCisJCQkJCXN0cnVjdCBtZWRpYV9kZXZub2RlICpk ZXZub2RlLAogCQkJCQlzdHJ1Y3QgbW9kdWxlICpvd25lcikKIHsKIAlpbnQgbWlub3I7CkBAIC0y NTIsNiArMjU3LDcgQEAgaW50IF9fbXVzdF9jaGVjayBtZWRpYV9kZXZub2RlX3JlZ2lzdGVyKHN0 cnVjdCBtZWRpYV9kZXZub2RlICpkZXZub2RlLAogCW11dGV4X3VubG9jaygmbWVkaWFfZGV2bm9k ZV9sb2NrKTsKIAogCWRldm5vZGUtPm1pbm9yID0gbWlub3I7CisJZGV2bm9kZS0+bWVkaWFfZGV2 ID0gbWRldjsKIAogCS8qIFBhcnQgMjogSW5pdGlhbGl6ZSBhbmQgcmVnaXN0ZXIgdGhlIGNoYXJh Y3RlciBkZXZpY2UgKi8KIAljZGV2X2luaXQoJmRldm5vZGUtPmNkZXYsICZtZWRpYV9kZXZub2Rl X2ZvcHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS91c2IvdXZjL3V2Y19kcml2ZXIuYyBi L2RyaXZlcnMvbWVkaWEvdXNiL3V2Yy91dmNfZHJpdmVyLmMKaW5kZXggOWNkMDI2OGIyNzY3Li5m MzUzYWI1NjliOGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdXNiL3V2Yy91dmNfZHJpdmVy LmMKKysrIGIvZHJpdmVycy9tZWRpYS91c2IvdXZjL3V2Y19kcml2ZXIuYwpAQCAtMTgwMCw3ICsx ODAwLDcgQEAgc3RhdGljIHZvaWQgdXZjX2RlbGV0ZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQog CWlmIChkZXYtPnZkZXYuZGV2KQogCQl2NGwyX2RldmljZV91bnJlZ2lzdGVyKCZkZXYtPnZkZXYp OwogI2lmZGVmIENPTkZJR19NRURJQV9DT05UUk9MTEVSCi0JaWYgKG1lZGlhX2Rldm5vZGVfaXNf cmVnaXN0ZXJlZCgmZGV2LT5tZGV2LmRldm5vZGUpKQorCWlmIChtZWRpYV9kZXZub2RlX2lzX3Jl Z2lzdGVyZWQoZGV2LT5tZGV2LmRldm5vZGUpKQogCQltZWRpYV9kZXZpY2VfdW5yZWdpc3Rlcigm ZGV2LT5tZGV2KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL21lZGlhLWRl dmljZS5oIGIvaW5jbHVkZS9tZWRpYS9tZWRpYS1kZXZpY2UuaAppbmRleCA2ZTZkYjc4ZjFlZTIu LjAwYmJkNjc5ODY0YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tZWRpYS9tZWRpYS1kZXZpY2UuaAor KysgYi9pbmNsdWRlL21lZGlhL21lZGlhLWRldmljZS5oCkBAIC02MCw3ICs2MCw3IEBAIHN0cnVj dCBkZXZpY2U7CiBzdHJ1Y3QgbWVkaWFfZGV2aWNlIHsKIAkvKiBkZXYtPmRyaXZlcl9kYXRhIHBv aW50cyB0byB0aGlzIHN0cnVjdC4gKi8KIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Ci0Jc3RydWN0IG1l ZGlhX2Rldm5vZGUgZGV2bm9kZTsKKwlzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqZGV2bm9kZTsKIAog CWNoYXIgbW9kZWxbMzJdOwogCWNoYXIgc2VyaWFsWzQwXTsKQEAgLTg0LDkgKzg0LDYgQEAgc3Ry dWN0IG1lZGlhX2RldmljZSB7CiAjZGVmaW5lIE1FRElBX0RFVl9OT1RJRllfUFJFX0xJTktfQ0gJ MAogI2RlZmluZSBNRURJQV9ERVZfTk9USUZZX1BPU1RfTElOS19DSAkxCiAKLS8qIG1lZGlhX2Rl dm5vZGUgdG8gbWVkaWFfZGV2aWNlICovCi0jZGVmaW5lIHRvX21lZGlhX2RldmljZShub2RlKSBj b250YWluZXJfb2Yobm9kZSwgc3RydWN0IG1lZGlhX2RldmljZSwgZGV2bm9kZSkKLQogaW50IF9f bXVzdF9jaGVjayBfX21lZGlhX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgbWVkaWFfZGV2aWNlICpt ZGV2LAogCQkJCQkgc3RydWN0IG1vZHVsZSAqb3duZXIpOwogI2RlZmluZSBtZWRpYV9kZXZpY2Vf cmVnaXN0ZXIobWRldikgX19tZWRpYV9kZXZpY2VfcmVnaXN0ZXIobWRldiwgVEhJU19NT0RVTEUp CmRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL21lZGlhLWRldm5vZGUuaCBiL2luY2x1ZGUvbWVk aWEvbWVkaWEtZGV2bm9kZS5oCmluZGV4IDc5ZjcwMmQyNmQxZi4uOGI4NTRjMDQ0MDMyIDEwMDY0 NAotLS0gYS9pbmNsdWRlL21lZGlhL21lZGlhLWRldm5vZGUuaAorKysgYi9pbmNsdWRlL21lZGlh L21lZGlhLWRldm5vZGUuaApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgPGxpbnV4L2Rldmlj ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KIAorc3RydWN0IG1lZGlhX2RldmljZTsKKwog LyoKICAqIEZsYWcgdG8gbWFyayB0aGUgbWVkaWFfZGV2bm9kZSBzdHJ1Y3QgYXMgcmVnaXN0ZXJl ZC4gRHJpdmVycyBtdXN0IG5vdCB0b3VjaAogICogdGhpcyBmbGFnIGRpcmVjdGx5LCBpdCB3aWxs IGJlIHNldCBhbmQgY2xlYXJlZCBieSBtZWRpYV9kZXZub2RlX3JlZ2lzdGVyIGFuZApAQCAtNjcs NiArNjksOCBAQCBzdHJ1Y3QgbWVkaWFfZmlsZV9vcGVyYXRpb25zIHsKICAqIGJlZm9yZSByZWdp c3RlcmluZyB0aGUgbm9kZS4KICAqLwogc3RydWN0IG1lZGlhX2Rldm5vZGUgeworCXN0cnVjdCBt ZWRpYV9kZXZpY2UgKm1lZGlhX2RldjsKKwogCS8qIGRldmljZSBvcHMgKi8KIAljb25zdCBzdHJ1 Y3QgbWVkaWFfZmlsZV9vcGVyYXRpb25zICpmb3BzOwogCkBAIC04Niw3ICs5MCw4IEBAIHN0cnVj dCBtZWRpYV9kZXZub2RlIHsKIC8qIGRldiB0byBtZWRpYV9kZXZub2RlICovCiAjZGVmaW5lIHRv X21lZGlhX2Rldm5vZGUoY2QpIGNvbnRhaW5lcl9vZihjZCwgc3RydWN0IG1lZGlhX2Rldm5vZGUs IGRldikKIAotaW50IF9fbXVzdF9jaGVjayBtZWRpYV9kZXZub2RlX3JlZ2lzdGVyKHN0cnVjdCBt ZWRpYV9kZXZub2RlICpkZXZub2RlLAoraW50IF9fbXVzdF9jaGVjayBtZWRpYV9kZXZub2RlX3Jl Z2lzdGVyKHN0cnVjdCBtZWRpYV9kZXZpY2UgKm1kZXYsCisJCQkJCXN0cnVjdCBtZWRpYV9kZXZu b2RlICpkZXZub2RlLAogCQkJCQlzdHJ1Y3QgbW9kdWxlICpvd25lcik7CiB2b2lkIG1lZGlhX2Rl dm5vZGVfdW5yZWdpc3RlcihzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqZGV2bm9kZSk7CiAKQEAgLTk3 LDYgKzEwMiw5IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IG1lZGlhX2Rldm5vZGUgKm1lZGlhX2Rl dm5vZGVfZGF0YShzdHJ1Y3QgZmlsZSAqZmlscCkKIAogc3RhdGljIGlubGluZSBpbnQgbWVkaWFf ZGV2bm9kZV9pc19yZWdpc3RlcmVkKHN0cnVjdCBtZWRpYV9kZXZub2RlICpkZXZub2RlKQogewor CWlmICghZGV2bm9kZSkKKwkJcmV0dXJuIGZhbHNlOworCiAJcmV0dXJuIHRlc3RfYml0KE1FRElB X0ZMQUdfUkVHSVNURVJFRCwgJmRldm5vZGUtPmZsYWdzKTsKIH0KIAoKRnJvbSBkZmExYWNiZTI0 MzU3NDAwMjQ1NTUzOTZiY2FmMjliMDU2MjI4YmM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTaHVhaCBLaGFuIDxzaHVhaGtoQG9zZy5zYW1zdW5nLmNvbT4KRGF0ZTogV2VkLCA0IE1h eSAyMDE2IDE2OjQ4OjI4IC0wMzAwClN1YmplY3Q6IFttZWRpYV0gbWVkaWE6IGZpeCB1c2UtYWZ0 ZXItZnJlZSBpbiBjZGV2X3B1dCgpIHdoZW4gYXBwIGV4aXRzIGFmdGVyCiBkcml2ZXIgdW5iaW5k Cgpjb21taXQgNWIyOGRkZTUxZDBjY2M1NGNlZTcwNzU2ZTE4MDBkNzBiZWQ3MTE0YSB1cHN0cmVh bS4KCldoZW4gZHJpdmVyIHVuYmluZHMgd2hpbGUgbWVkaWFfaW9jdGwgaXMgaW4gcHJvZ3Jlc3Ms IGNkZXZfcHV0KCkgZmFpbHMgd2l0aAp3aGVuIGFwcCBleGl0cyBhZnRlciBkcml2ZXIgdW5iaW5k cy4KCkFkZCBkZXZub2RlIHN0cnVjdCBkZXZpY2Uga29iaiBhcyB0aGUgY2RldiBwYXJlbnQga29i amVjdC4gY2Rldl9hZGQoKSBnZXRzCmEgcmVmZXJlbmNlIHRvIGl0IGFuZCByZWxlYXNlcyBpdCBp biBjZGV2X2RlbCgpIGVuc3VyaW5nIHRoYXQgdGhlIGRldm5vZGUKaXMgbm90IGRlYWxsb2NhdGVk IGFzIGxvbmcgYXMgdGhlIGFwcGxpY2F0aW9uIGhhcyB0aGUgZGV2aWNlIGZpbGUgb3Blbi4KCm1l ZGlhX2Rldm5vZGVfcmVnaXN0ZXIoKSBpbml0aWFsaXplcyB0aGUgc3RydWN0IGRldmljZSBrb2Jq IGJlZm9yZSBjYWxsaW5nCmNkZXZfYWRkKCkuIG1lZGlhX2Rldm5vZGVfdW5yZWdpc3RlcigpIGRv ZXMgY2Rldl9kZWwoKSBhbmQgdGhlbiBkZWxldGVzIHRoZQpkZXZpY2UuIGRldm5vZGUgaXMgcmVs ZWFzZWQgd2hlbiB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhlIHN0cnVjdCBkZXZpY2UgaXMKZ29u ZS4KClRoaXMgcHJvYmxlbSBpcyBmb3VuZCBvbiB1dmN2aWRlbywgZW0yOHh4LCBhbmQgYXUwODI4 IGRyaXZlcnMgYW5kIGZpeCBoYXMKYmVlbiB0ZXN0ZWQgb24gYWxsIHRocmVlLgoKa2VybmVsOiBb ICAxOTMuNTk5NzM2XSBCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBjZGV2X3B1dCsweDRl LzB4NTAKa2VybmVsOiBbICAxOTMuNTk5NzQ1XSBSZWFkIG9mIHNpemUgOCBieSB0YXNrIG1lZGlh X2RldmljZV90ZS8xODUxCmtlcm5lbDogWyAgMTkzLjU5OTc5Ml0gSU5GTzogQWxsb2NhdGVkIGlu IF9fbWVkaWFfZGV2aWNlX3JlZ2lzdGVyKzB4NTQKa2VybmVsOiBbICAxOTMuNTk5OTUxXSBJTkZP OiBGcmVlZCBpbiBtZWRpYV9kZXZub2RlX3JlbGVhc2UrMHhhNC8weGMwCgprZXJuZWw6IFsgIDE5 My42MDEwODNdIENhbGwgVHJhY2U6Cmtlcm5lbDogWyAgMTkzLjYwMTA5M10gIFs8ZmZmZmZmZmY4 MWFlY2FjMz5dIGR1bXBfc3RhY2srMHg2Ny8weDk0Cmtlcm5lbDogWyAgMTkzLjYwMTEwMl0gIFs8 ZmZmZmZmZmY4MTUzNTliMj5dIHByaW50X3RyYWlsZXIrMHgxMTIvMHgxYTAKa2VybmVsOiBbICAx OTMuNjAxMTExXSAgWzxmZmZmZmZmZjgxNTNiNWU0Pl0gb2JqZWN0X2VycisweDM0LzB4NDAKa2Vy bmVsOiBbICAxOTMuNjAxMTE5XSAgWzxmZmZmZmZmZjgxNTNkOWQ0Pl0ga2FzYW5fcmVwb3J0X2Vy cm9yKzB4MjI0LzB4NTMwCmtlcm5lbDogWyAgMTkzLjYwMTEyOF0gIFs8ZmZmZmZmZmY4MTRhMmMz ZD5dID8ga3pmcmVlKzB4MmQvMHg0MAprZXJuZWw6IFsgIDE5My42MDExMzddICBbPGZmZmZmZmZm ODE1MzlkNzI+XSA/IGtmcmVlKzB4MWQyLzB4MWYwCmtlcm5lbDogWyAgMTkzLjYwMTE1NF0gIFs8 ZmZmZmZmZmY4MTU3Y2E3ZT5dID8gY2Rldl9wdXQrMHg0ZS8weDUwCmtlcm5lbDogWyAgMTkzLjYw MTE2Ml0gIFs8ZmZmZmZmZmY4MTU3Y2E3ZT5dIGNkZXZfcHV0KzB4NGUvMHg1MAprZXJuZWw6IFsg IDE5My42MDExNzBdICBbPGZmZmZmZmZmODE1NzY3ZWI+XSBfX2ZwdXQrMHg1MmIvMHg2YzAKa2Vy bmVsOiBbICAxOTMuNjAxMTc5XSAgWzxmZmZmZmZmZjgxMTc3NDNhPl0gPyBzd2l0Y2hfdGFza19u YW1lc3BhY2VzKzB4MmEKa2VybmVsOiBbICAxOTMuNjAxMTg4XSAgWzxmZmZmZmZmZjgxNTc2OWVl Pl0gX19fX2ZwdXQrMHhlLzB4MTAKa2VybmVsOiBbICAxOTMuNjAxMTk2XSAgWzxmZmZmZmZmZjgx MTcwMDIzPl0gdGFza193b3JrX3J1bisweDEzMy8weDFmMAprZXJuZWw6IFsgIDE5My42MDEyMDRd ICBbPGZmZmZmZmZmODExNzc0NmU+XSA/IHN3aXRjaF90YXNrX25hbWVzcGFjZXMrMHg1ZQprZXJu ZWw6IFsgIDE5My42MDEyMTNdICBbPGZmZmZmZmZmODExMWI1MGM+XSBkb19leGl0KzB4NzJjLzB4 MmMyMAprZXJuZWw6IFsgIDE5My42MDEyMjRdICBbPGZmZmZmZmZmODExMWFkZTA+XSA/IHJlbGVh c2VfdGFzaysweDEyNTAvMHgxMjUwCi0KLQotCmtlcm5lbDogWyAgMTkzLjYwMTM2MF0gIFs8ZmZm ZmZmZmY4MTAwMzU4Nz5dID8gZXhpdF90b191c2VybW9kZV9sb29wKzB4ZTcKa2VybmVsOiBbICAx OTMuNjAxMzY4XSAgWzxmZmZmZmZmZjgxMDAzNWMwPl0gZXhpdF90b191c2VybW9kZV9sb29wKzB4 MTIwCmtlcm5lbDogWyAgMTkzLjYwMTM3Nl0gIFs8ZmZmZmZmZmY4MTAwNjFkYT5dIHN5c2NhbGxf cmV0dXJuX3Nsb3dwYXRoKzB4MTZhCmtlcm5lbDogWyAgMTkzLjYwMTM4Nl0gIFs8ZmZmZmZmZmY4 Mjg0OGIzMz5dIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHhhNgoKU2lnbmVkLW9mZi1ieTog U2h1YWggS2hhbiA8c2h1YWhraEBvc2cuc2Ftc3VuZy5jb20+ClRlc3RlZC1ieTogTWF1cm8gQ2Fy dmFsaG8gQ2hlaGFiIDxtY2hlaGFiQG9zZy5zYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF1 cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiQHMtb3BlbnNvdXJjZS5jb20+ClNpZ25lZC1vZmYt Ynk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGRy aXZlcnMvbWVkaWEvbWVkaWEtZGV2aWNlLmMgIHwgIDYgKysrLS0KIGRyaXZlcnMvbWVkaWEvbWVk aWEtZGV2bm9kZS5jIHwgNDggKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDIg ZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZpY2UuYyBiL2RyaXZlcnMvbWVkaWEvbWVkaWEt ZGV2aWNlLmMKaW5kZXggZmIwMThmZTFhOGY3Li41ZDc5Y2Q0ODE3MzAgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbWVkaWEvbWVkaWEtZGV2aWNlLmMKKysrIGIvZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZp Y2UuYwpAQCAtMzk2LDE2ICszOTYsMTYgQEAgaW50IF9fbXVzdF9jaGVjayBfX21lZGlhX2Rldmlj ZV9yZWdpc3RlcihzdHJ1Y3QgbWVkaWFfZGV2aWNlICptZGV2LAogCWRldm5vZGUtPnJlbGVhc2Ug PSBtZWRpYV9kZXZpY2VfcmVsZWFzZTsKIAlyZXQgPSBtZWRpYV9kZXZub2RlX3JlZ2lzdGVyKG1k ZXYsIGRldm5vZGUsIG93bmVyKTsKIAlpZiAocmV0IDwgMCkgeworCQkvKiBkZXZub2RlIGZyZWUg aXMgaGFuZGxlZCBpbiBtZWRpYV9kZXZub2RlXyooKSAqLwogCQltZGV2LT5kZXZub2RlID0gTlVM TDsKLQkJa2ZyZWUoZGV2bm9kZSk7CiAJCXJldHVybiByZXQ7CiAJfQogCiAJcmV0ID0gZGV2aWNl X2NyZWF0ZV9maWxlKCZkZXZub2RlLT5kZXYsICZkZXZfYXR0cl9tb2RlbCk7CiAJaWYgKHJldCA8 IDApIHsKKwkJLyogZGV2bm9kZSBmcmVlIGlzIGhhbmRsZWQgaW4gbWVkaWFfZGV2bm9kZV8qKCkg Ki8KIAkJbWRldi0+ZGV2bm9kZSA9IE5VTEw7CiAJCW1lZGlhX2Rldm5vZGVfdW5yZWdpc3Rlcihk ZXZub2RlKTsKLQkJa2ZyZWUoZGV2bm9kZSk7CiAJCXJldHVybiByZXQ7CiAJfQogCkBAIC00MzAs NiArNDMwLDggQEAgdm9pZCBtZWRpYV9kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgbWVkaWFfZGV2 aWNlICptZGV2KQogCWlmIChtZWRpYV9kZXZub2RlX2lzX3JlZ2lzdGVyZWQobWRldi0+ZGV2bm9k ZSkpIHsKIAkJZGV2aWNlX3JlbW92ZV9maWxlKCZtZGV2LT5kZXZub2RlLT5kZXYsICZkZXZfYXR0 cl9tb2RlbCk7CiAJCW1lZGlhX2Rldm5vZGVfdW5yZWdpc3RlcihtZGV2LT5kZXZub2RlKTsKKwkJ LyogZGV2bm9kZSBmcmVlIGlzIGhhbmRsZWQgaW4gbWVkaWFfZGV2bm9kZV8qKCkgKi8KKwkJbWRl di0+ZGV2bm9kZSA9IE5VTEw7CiAJfQogfQogRVhQT1JUX1NZTUJPTF9HUEwobWVkaWFfZGV2aWNl X3VucmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZub2RlLmMg Yi9kcml2ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYwppbmRleCAwMDBlZmIxN2I5NWIuLjQ1YmI3 MGQyNzIyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZub2RlLmMKKysrIGIv ZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZub2RlLmMKQEAgLTYzLDEzICs2Myw4IEBAIHN0YXRpYyB2 b2lkIG1lZGlhX2Rldm5vZGVfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpjZCkKIAlzdHJ1Y3QgbWVk aWFfZGV2bm9kZSAqZGV2bm9kZSA9IHRvX21lZGlhX2Rldm5vZGUoY2QpOwogCiAJbXV0ZXhfbG9j aygmbWVkaWFfZGV2bm9kZV9sb2NrKTsKLQotCS8qIERlbGV0ZSB0aGUgY2RldiBvbiB0aGlzIG1p bm9yIGFzIHdlbGwgKi8KLQljZGV2X2RlbCgmZGV2bm9kZS0+Y2Rldik7Ci0KIAkvKiBNYXJrIGRl dmljZSBub2RlIG51bWJlciBhcyBmcmVlICovCiAJY2xlYXJfYml0KGRldm5vZGUtPm1pbm9yLCBt ZWRpYV9kZXZub2RlX251bXMpOwotCiAJbXV0ZXhfdW5sb2NrKCZtZWRpYV9kZXZub2RlX2xvY2sp OwogCiAJLyogUmVsZWFzZSBtZWRpYV9kZXZub2RlIGFuZCBwZXJmb3JtIG90aGVyIGNsZWFudXBz IGFzIG5lZWRlZC4gKi8KQEAgLTc3LDYgKzcyLDcgQEAgc3RhdGljIHZvaWQgbWVkaWFfZGV2bm9k ZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmNkKQogCQlkZXZub2RlLT5yZWxlYXNlKGRldm5vZGUp OwogCiAJa2ZyZWUoZGV2bm9kZSk7CisJcHJfZGVidWcoIiVzOiBNZWRpYSBEZXZub2RlIERlYWxs b2NhdGVkXG4iLCBfX2Z1bmNfXyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYnVzX3R5cGUgbWVkaWFf YnVzX3R5cGUgPSB7CkBAIC0yMDUsNiArMjAxLDggQEAgc3RhdGljIGludCBtZWRpYV9yZWxlYXNl KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCS8qIGRlY3JlYXNlIHRo ZSByZWZjb3VudCB1bmNvbmRpdGlvbmFsbHkgc2luY2UgdGhlIHJlbGVhc2UoKQogCSAgIHJldHVy biB2YWx1ZSBpcyBpZ25vcmVkLiAqLwogCXB1dF9kZXZpY2UoJmRldm5vZGUtPmRldik7CisKKwlw cl9kZWJ1ZygiJXM6IE1lZGlhIFJlbGVhc2VcbiIsIF9fZnVuY19fKTsKIAlyZXR1cm4gMDsKIH0K IApAQCAtMjUwLDYgKzI0OCw3IEBAIGludCBfX211c3RfY2hlY2sgbWVkaWFfZGV2bm9kZV9yZWdp c3RlcihzdHJ1Y3QgbWVkaWFfZGV2aWNlICptZGV2LAogCWlmIChtaW5vciA9PSBNRURJQV9OVU1f REVWSUNFUykgewogCQltdXRleF91bmxvY2soJm1lZGlhX2Rldm5vZGVfbG9jayk7CiAJCXByX2Vy cigiY291bGQgbm90IGdldCBhIGZyZWUgbWlub3JcbiIpOworCQlrZnJlZShkZXZub2RlKTsKIAkJ cmV0dXJuIC1FTkZJTEU7CiAJfQogCkBAIC0yNTksMjcgKzI1OCwzMSBAQCBpbnQgX19tdXN0X2No ZWNrIG1lZGlhX2Rldm5vZGVfcmVnaXN0ZXIoc3RydWN0IG1lZGlhX2RldmljZSAqbWRldiwKIAlk ZXZub2RlLT5taW5vciA9IG1pbm9yOwogCWRldm5vZGUtPm1lZGlhX2RldiA9IG1kZXY7CiAKKwkv KiBQYXJ0IDE6IEluaXRpYWxpemUgZGV2IG5vdyB0byB1c2UgZGV2LmtvYmogZm9yIGNkZXYua29i ai5wYXJlbnQgKi8KKwlkZXZub2RlLT5kZXYuYnVzID0gJm1lZGlhX2J1c190eXBlOworCWRldm5v ZGUtPmRldi5kZXZ0ID0gTUtERVYoTUFKT1IobWVkaWFfZGV2X3QpLCBkZXZub2RlLT5taW5vcik7 CisJZGV2bm9kZS0+ZGV2LnJlbGVhc2UgPSBtZWRpYV9kZXZub2RlX3JlbGVhc2U7CisJaWYgKGRl dm5vZGUtPnBhcmVudCkKKwkJZGV2bm9kZS0+ZGV2LnBhcmVudCA9IGRldm5vZGUtPnBhcmVudDsK KwlkZXZfc2V0X25hbWUoJmRldm5vZGUtPmRldiwgIm1lZGlhJWQiLCBkZXZub2RlLT5taW5vcik7 CisJZGV2aWNlX2luaXRpYWxpemUoJmRldm5vZGUtPmRldik7CisKIAkvKiBQYXJ0IDI6IEluaXRp YWxpemUgYW5kIHJlZ2lzdGVyIHRoZSBjaGFyYWN0ZXIgZGV2aWNlICovCiAJY2Rldl9pbml0KCZk ZXZub2RlLT5jZGV2LCAmbWVkaWFfZGV2bm9kZV9mb3BzKTsKIAlkZXZub2RlLT5jZGV2Lm93bmVy ID0gb3duZXI7CisJZGV2bm9kZS0+Y2Rldi5rb2JqLnBhcmVudCA9ICZkZXZub2RlLT5kZXYua29i ajsKIAogCXJldCA9IGNkZXZfYWRkKCZkZXZub2RlLT5jZGV2LCBNS0RFVihNQUpPUihtZWRpYV9k ZXZfdCksIGRldm5vZGUtPm1pbm9yKSwgMSk7CiAJaWYgKHJldCA8IDApIHsKIAkJcHJfZXJyKCIl czogY2Rldl9hZGQgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7Ci0JCWdvdG8gZXJyb3I7CisJCWdvdG8g Y2Rldl9hZGRfZXJyb3I7CiAJfQogCi0JLyogUGFydCAzOiBSZWdpc3RlciB0aGUgbWVkaWEgZGV2 aWNlICovCi0JZGV2bm9kZS0+ZGV2LmJ1cyA9ICZtZWRpYV9idXNfdHlwZTsKLQlkZXZub2RlLT5k ZXYuZGV2dCA9IE1LREVWKE1BSk9SKG1lZGlhX2Rldl90KSwgZGV2bm9kZS0+bWlub3IpOwotCWRl dm5vZGUtPmRldi5yZWxlYXNlID0gbWVkaWFfZGV2bm9kZV9yZWxlYXNlOwotCWlmIChkZXZub2Rl LT5wYXJlbnQpCi0JCWRldm5vZGUtPmRldi5wYXJlbnQgPSBkZXZub2RlLT5wYXJlbnQ7Ci0JZGV2 X3NldF9uYW1lKCZkZXZub2RlLT5kZXYsICJtZWRpYSVkIiwgZGV2bm9kZS0+bWlub3IpOwotCXJl dCA9IGRldmljZV9yZWdpc3RlcigmZGV2bm9kZS0+ZGV2KTsKKwkvKiBQYXJ0IDM6IEFkZCB0aGUg bWVkaWEgZGV2aWNlICovCisJcmV0ID0gZGV2aWNlX2FkZCgmZGV2bm9kZS0+ZGV2KTsKIAlpZiAo cmV0IDwgMCkgewotCQlwcl9lcnIoIiVzOiBkZXZpY2VfcmVnaXN0ZXIgZmFpbGVkXG4iLCBfX2Z1 bmNfXyk7Ci0JCWdvdG8gZXJyb3I7CisJCXByX2VycigiJXM6IGRldmljZV9hZGQgZmFpbGVkXG4i LCBfX2Z1bmNfXyk7CisJCWdvdG8gZGV2aWNlX2FkZF9lcnJvcjsKIAl9CiAKIAkvKiBQYXJ0IDQ6 IEFjdGl2YXRlIHRoaXMgbWlub3IuIFRoZSBjaGFyIGRldmljZSBjYW4gbm93IGJlIHVzZWQuICov CkBAIC0yODcsMTIgKzI5MCwxNSBAQCBpbnQgX19tdXN0X2NoZWNrIG1lZGlhX2Rldm5vZGVfcmVn aXN0ZXIoc3RydWN0IG1lZGlhX2RldmljZSAqbWRldiwKIAogCXJldHVybiAwOwogCi1lcnJvcjoK LQltdXRleF9sb2NrKCZtZWRpYV9kZXZub2RlX2xvY2spOworZGV2aWNlX2FkZF9lcnJvcjoKIAlj ZGV2X2RlbCgmZGV2bm9kZS0+Y2Rldik7CitjZGV2X2FkZF9lcnJvcjoKKwltdXRleF9sb2NrKCZt ZWRpYV9kZXZub2RlX2xvY2spOwogCWNsZWFyX2JpdChkZXZub2RlLT5taW5vciwgbWVkaWFfZGV2 bm9kZV9udW1zKTsKKwlkZXZub2RlLT5tZWRpYV9kZXYgPSBOVUxMOwogCW11dGV4X3VubG9jaygm bWVkaWFfZGV2bm9kZV9sb2NrKTsKIAorCXB1dF9kZXZpY2UoJmRldm5vZGUtPmRldik7CiAJcmV0 dXJuIHJldDsKIH0KIApAQCAtMzE0LDggKzMyMCwxMiBAQCB2b2lkIG1lZGlhX2Rldm5vZGVfdW5y ZWdpc3RlcihzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqZGV2bm9kZSkKIAogCW11dGV4X2xvY2soJm1l ZGlhX2Rldm5vZGVfbG9jayk7CiAJY2xlYXJfYml0KE1FRElBX0ZMQUdfUkVHSVNURVJFRCwgJmRl dm5vZGUtPmZsYWdzKTsKKwkvKiBEZWxldGUgdGhlIGNkZXYgb24gdGhpcyBtaW5vciBhcyB3ZWxs ICovCisJY2Rldl9kZWwoJmRldm5vZGUtPmNkZXYpOwogCW11dGV4X3VubG9jaygmbWVkaWFfZGV2 bm9kZV9sb2NrKTsKLQlkZXZpY2VfdW5yZWdpc3RlcigmZGV2bm9kZS0+ZGV2KTsKKwlkZXZpY2Vf ZGVsKCZkZXZub2RlLT5kZXYpOworCWRldm5vZGUtPm1lZGlhX2RldiA9IE5VTEw7CisJcHV0X2Rl dmljZSgmZGV2bm9kZS0+ZGV2KTsKIH0KIAogLyoKCkZyb20gOGFiMzk0NTczMzY5YzM5NWE1Y2Zi MDAwMWFhMGFjN2JlYTA4ODY5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2h1YWgg S2hhbiA8c2h1YWhraEBvc2cuc2Ftc3VuZy5jb20+CkRhdGU6IEZyaSwgMTAgSnVuIDIwMTYgMTQ6 Mzc6MjMgLTAzMDAKU3ViamVjdDogW21lZGlhXSBtZWRpYTogZml4IG1lZGlhIGRldm5vZGUgaW9j dGwvc3lzY2FsbCBhbmQgdW5yZWdpc3RlciByYWNlCgpjb21taXQgNmYwZGQyNGEwODRhMTdmOTk4 NGRkNDlkZmZiZjcwNTViZjEyMzk5MyB1cHN0cmVhbS4KCk1lZGlhIGRldm5vZGUgb3Blbi9pb2N0 bCBjb3VsZCBiZSBpbiBwcm9ncmVzcyB3aGVuIG1lZGlhIGRldmljZSB1bnJlZ2lzdGVyCmlzIGlu aXRpYXRlZC4gU3lzdGVtIGNhbGxzIGFuZCBpb2N0bHMgY2hlY2sgbWVkaWEgZGV2aWNlIHJlZ2lz dGVyZWQgc3RhdHVzCmF0IHRoZSBiZWdpbm5pbmcsIGhvd2V2ZXIsIHRoZXJlIGlzIGEgd2luZG93 IHdoZXJlIHVucmVnaXN0ZXIgY291bGQgYmUgaW4KcHJvZ3Jlc3Mgd2l0aG91dCBjaGFuZ2luZyB0 aGUgbWVkaWEgZGV2bm9kZSBzdGF0dXMgdG8gdW5yZWdpc3RlcmVkLgoKcHJvY2VzcyAxCQkJCXBy b2Nlc3MgMgpmZCA9IG9wZW4oL2Rldi9tZWRpYTApCm1lZGlhX2Rldm5vZGVfaXNfcmVnaXN0ZXJl ZCgpCgkocmV0dXJucyB0cnVlIGhlcmUpCgoJCQkJCW1lZGlhX2RldmljZV91bnJlZ2lzdGVyKCkK CQkJCQkJKHVucmVnaXN0ZXIgaXMgaW4gcHJvZ3Jlc3MKCQkJCQkJYW5kIGRldm5vZGUgaXNuJ3QK CQkJCQkJdW5yZWdpc3RlcmVkIHlldCkKCQkJCQkuLi4KaW9jdGwoZmQsIC4uLikKX19tZWRpYV9p b2N0bCgpCm1lZGlhX2Rldm5vZGVfaXNfcmVnaXN0ZXJlZCgpCgkocmV0dXJucyB0cnVlIGhlcmUp CgkJCQkJLi4uCgkJCQkJbWVkaWFfZGV2bm9kZV91bnJlZ2lzdGVyKCkKCQkJCQkuLi4KCQkJCQko ZHJpdmVyIHJlbGVhc2VzIHRoZSBtZWRpYSBkZXZpY2UKCQkJCQltZW1vcnkpCgptZWRpYV9kZXZp Y2VfaW9jdGwoKQoJKEJ5IHRoaXMgcG9pbnQKCWRldm5vZGUtPm1lZGlhX2RldiBkb2VzIG5vdAoJ cG9pbnQgdG8gYWxsb2NhdGVkIG1lbW9yeS4KCXVzZS1hZnRlciBmcmVlIGluIGluIG11dGV4X2xv Y2tfbmVzdGVkKQoKQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZyZWUgaW4gbXV0ZXhfbG9ja19uZXN0 ZWQrMHg3OWMvMHg4MDAgYXQgYWRkcgpmZmZmODgwMWViZTkxNGYwCgpGaXggaXQgYnkgY2xlYXJp bmcgcmVnaXN0ZXIgYml0IHdoZW4gdW5yZWdpc3RlciBzdGFydHMgdG8gYXZvaWQgdGhlIHJhY2Uu Cgpwcm9jZXNzIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2VzcyAyCmZkID0g b3BlbigvZGV2L21lZGlhMCkKbWVkaWFfZGV2bm9kZV9pc19yZWdpc3RlcmVkKCkKICAgICAgICAo Y291bGQgcmV0dXJuIHRydWUgaGVyZSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtZWRpYV9kZXZpY2VfdW5yZWdpc3RlcigpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjbGVhciB0aGUgcmVnaXN0ZXIgYml0LAoJCQkJCQkg dGhlbiBzdGFydCB1bnJlZ2lzdGVyLikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC4uLgppb2N0bChmZCwgLi4uKQpfX21lZGlhX2lvY3RsKCkKbWVkaWFfZGV2bm9kZV9p c19yZWdpc3RlcmVkKCkKICAgICAgICAocmV0dXJuIGZhbHNlIGhlcmUsIGlvY3RsCgkgcmV0dXJu cyBJL08gZXJyb3IsIGFuZAoJIHdpbGwgbm90IGFjY2VzcyBtZWRpYQoJIGRldmljZSBtZW1vcnkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhX2Rldm5vZGVfdW5yZWdpc3RlcigpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChkcml2ZXIgcmVsZWFzZXMgdGhlIG1lZGlhIGRldmlj ZQoJCQkJCSBtZW1vcnkpCgpTaWduZWQtb2ZmLWJ5OiBTaHVhaCBLaGFuIDxzaHVhaGtoQG9zZy5z YW1zdW5nLmNvbT4KU3VnZ2VzdGVkLWJ5OiBTYWthcmkgQWlsdXMgPHNha2FyaS5haWx1c0BsaW51 eC5pbnRlbC5jb20+ClJlcG9ydGVkLWJ5OiBNYXVybyBDYXJ2YWxobyBDaGVoYWIgPG1jaGVoYWJA b3NnLnNhbXN1bmcuY29tPgpUZXN0ZWQtYnk6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8bWNoZWhh YkBvc2cuc2Ftc3VuZy5jb20+ClNpZ25lZC1vZmYtYnk6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8 bWNoZWhhYkBzLW9wZW5zb3VyY2UuY29tPgpbYndoOiBCYWNrcG9ydGVkIHRvIDQuNDogYWRqdXQg ZmlsZW5hbWUsIGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRj aGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMvbWVkaWEvbWVkaWEtZGV2aWNlLmMg IHwgMTUgKysrKysrKystLS0tLS0tCiBkcml2ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYyB8IDE5 ICsrKysrKysrKysrKy0tLS0tLS0KIGluY2x1ZGUvbWVkaWEvbWVkaWEtZGV2bm9kZS5oIHwgMTQg KysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMTQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9tZWRpYS1kZXZpY2UuYyBiL2Ry aXZlcnMvbWVkaWEvbWVkaWEtZGV2aWNlLmMKaW5kZXggNWQ3OWNkNDgxNzMwLi4wY2E5NTA2ZjQ2 NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvbWVkaWEtZGV2aWNlLmMKKysrIGIvZHJpdmVy cy9tZWRpYS9tZWRpYS1kZXZpY2UuYwpAQCAtNDA1LDYgKzQwNSw3IEBAIGludCBfX211c3RfY2hl Y2sgX19tZWRpYV9kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IG1lZGlhX2RldmljZSAqbWRldiwKIAlp ZiAocmV0IDwgMCkgewogCQkvKiBkZXZub2RlIGZyZWUgaXMgaGFuZGxlZCBpbiBtZWRpYV9kZXZu b2RlXyooKSAqLwogCQltZGV2LT5kZXZub2RlID0gTlVMTDsKKwkJbWVkaWFfZGV2bm9kZV91bnJl Z2lzdGVyX3ByZXBhcmUoZGV2bm9kZSk7CiAJCW1lZGlhX2Rldm5vZGVfdW5yZWdpc3RlcihkZXZu b2RlKTsKIAkJcmV0dXJuIHJldDsKIAl9CkBAIC00MjMsMTYgKzQyNCwxNiBAQCB2b2lkIG1lZGlh X2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBtZWRpYV9kZXZpY2UgKm1kZXYpCiAJc3RydWN0IG1l ZGlhX2VudGl0eSAqZW50aXR5OwogCXN0cnVjdCBtZWRpYV9lbnRpdHkgKm5leHQ7CiAKKwkvKiBD bGVhciB0aGUgZGV2bm9kZSByZWdpc3RlciBiaXQgdG8gYXZvaWQgcmFjZXMgd2l0aCBtZWRpYSBk ZXYgb3BlbiAqLworCW1lZGlhX2Rldm5vZGVfdW5yZWdpc3Rlcl9wcmVwYXJlKG1kZXYtPmRldm5v ZGUpOworCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGVudGl0eSwgbmV4dCwgJm1kZXYtPmVu dGl0aWVzLCBsaXN0KQogCQltZWRpYV9kZXZpY2VfdW5yZWdpc3Rlcl9lbnRpdHkoZW50aXR5KTsK IAotCS8qIENoZWNrIGlmIG1kZXYgZGV2bm9kZSB3YXMgcmVnaXN0ZXJlZCAqLwotCWlmIChtZWRp YV9kZXZub2RlX2lzX3JlZ2lzdGVyZWQobWRldi0+ZGV2bm9kZSkpIHsKLQkJZGV2aWNlX3JlbW92 ZV9maWxlKCZtZGV2LT5kZXZub2RlLT5kZXYsICZkZXZfYXR0cl9tb2RlbCk7Ci0JCW1lZGlhX2Rl dm5vZGVfdW5yZWdpc3RlcihtZGV2LT5kZXZub2RlKTsKLQkJLyogZGV2bm9kZSBmcmVlIGlzIGhh bmRsZWQgaW4gbWVkaWFfZGV2bm9kZV8qKCkgKi8KLQkJbWRldi0+ZGV2bm9kZSA9IE5VTEw7Ci0J fQorCWRldmljZV9yZW1vdmVfZmlsZSgmbWRldi0+ZGV2bm9kZS0+ZGV2LCAmZGV2X2F0dHJfbW9k ZWwpOworCW1lZGlhX2Rldm5vZGVfdW5yZWdpc3RlcihtZGV2LT5kZXZub2RlKTsKKwkvKiBkZXZu b2RlIGZyZWUgaXMgaGFuZGxlZCBpbiBtZWRpYV9kZXZub2RlXyooKSAqLworCW1kZXYtPmRldm5v ZGUgPSBOVUxMOwogfQogRVhQT1JUX1NZTUJPTF9HUEwobWVkaWFfZGV2aWNlX3VucmVnaXN0ZXIp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYyBiL2RyaXZlcnMv bWVkaWEvbWVkaWEtZGV2bm9kZS5jCmluZGV4IDQ1YmI3MGQyNzIyNC4uZTg4NzEyMGQxOWFhIDEw MDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL21lZGlhLWRldm5vZGUuYworKysgYi9kcml2ZXJzL21l ZGlhL21lZGlhLWRldm5vZGUuYwpAQCAtMzAyLDYgKzMwMiwxNyBAQCBjZGV2X2FkZF9lcnJvcjoK IAlyZXR1cm4gcmV0OwogfQogCit2b2lkIG1lZGlhX2Rldm5vZGVfdW5yZWdpc3Rlcl9wcmVwYXJl KHN0cnVjdCBtZWRpYV9kZXZub2RlICpkZXZub2RlKQoreworCS8qIENoZWNrIGlmIGRldm5vZGUg d2FzIGV2ZXIgcmVnaXN0ZXJlZCBhdCBhbGwgKi8KKwlpZiAoIW1lZGlhX2Rldm5vZGVfaXNfcmVn aXN0ZXJlZChkZXZub2RlKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmbWVkaWFfZGV2bm9k ZV9sb2NrKTsKKwljbGVhcl9iaXQoTUVESUFfRkxBR19SRUdJU1RFUkVELCAmZGV2bm9kZS0+Zmxh Z3MpOworCW11dGV4X3VubG9jaygmbWVkaWFfZGV2bm9kZV9sb2NrKTsKK30KKwogLyoqCiAgKiBt ZWRpYV9kZXZub2RlX3VucmVnaXN0ZXIgLSB1bnJlZ2lzdGVyIGEgbWVkaWEgZGV2aWNlIG5vZGUK ICAqIEBkZXZub2RlOiB0aGUgZGV2aWNlIG5vZGUgdG8gdW5yZWdpc3RlcgpAQCAtMzA5LDE3ICsz MjAsMTEgQEAgY2Rldl9hZGRfZXJyb3I6CiAgKiBUaGlzIHVucmVnaXN0ZXJzIHRoZSBwYXNzZWQg ZGV2aWNlLiBGdXR1cmUgb3BlbiBjYWxscyB3aWxsIGJlIG1ldCB3aXRoCiAgKiBlcnJvcnMuCiAg KgotICogVGhpcyBmdW5jdGlvbiBjYW4gc2FmZWx5IGJlIGNhbGxlZCBpZiB0aGUgZGV2aWNlIG5v ZGUgaGFzIG5ldmVyIGJlZW4KLSAqIHJlZ2lzdGVyZWQgb3IgaGFzIGFscmVhZHkgYmVlbiB1bnJl Z2lzdGVyZWQuCisgKiBTaG91bGQgYmUgY2FsbGVkIGFmdGVyIG1lZGlhX2Rldm5vZGVfdW5yZWdp c3Rlcl9wcmVwYXJlKCkKICAqLwogdm9pZCBtZWRpYV9kZXZub2RlX3VucmVnaXN0ZXIoc3RydWN0 IG1lZGlhX2Rldm5vZGUgKmRldm5vZGUpCiB7Ci0JLyogQ2hlY2sgaWYgZGV2bm9kZSB3YXMgZXZl ciByZWdpc3RlcmVkIGF0IGFsbCAqLwotCWlmICghbWVkaWFfZGV2bm9kZV9pc19yZWdpc3RlcmVk KGRldm5vZGUpKQotCQlyZXR1cm47Ci0KIAltdXRleF9sb2NrKCZtZWRpYV9kZXZub2RlX2xvY2sp OwotCWNsZWFyX2JpdChNRURJQV9GTEFHX1JFR0lTVEVSRUQsICZkZXZub2RlLT5mbGFncyk7CiAJ LyogRGVsZXRlIHRoZSBjZGV2IG9uIHRoaXMgbWlub3IgYXMgd2VsbCAqLwogCWNkZXZfZGVsKCZk ZXZub2RlLT5jZGV2KTsKIAltdXRleF91bmxvY2soJm1lZGlhX2Rldm5vZGVfbG9jayk7CmRpZmYg LS1naXQgYS9pbmNsdWRlL21lZGlhL21lZGlhLWRldm5vZGUuaCBiL2luY2x1ZGUvbWVkaWEvbWVk aWEtZGV2bm9kZS5oCmluZGV4IDhiODU0YzA0NDAzMi4uZDVmZjk1YmYyZDRiIDEwMDY0NAotLS0g YS9pbmNsdWRlL21lZGlhL21lZGlhLWRldm5vZGUuaAorKysgYi9pbmNsdWRlL21lZGlhL21lZGlh LWRldm5vZGUuaApAQCAtOTMsNiArOTMsMjAgQEAgc3RydWN0IG1lZGlhX2Rldm5vZGUgewogaW50 IF9fbXVzdF9jaGVjayBtZWRpYV9kZXZub2RlX3JlZ2lzdGVyKHN0cnVjdCBtZWRpYV9kZXZpY2Ug Km1kZXYsCiAJCQkJCXN0cnVjdCBtZWRpYV9kZXZub2RlICpkZXZub2RlLAogCQkJCQlzdHJ1Y3Qg bW9kdWxlICpvd25lcik7CisKKy8qKgorICogbWVkaWFfZGV2bm9kZV91bnJlZ2lzdGVyX3ByZXBh cmUgLSBjbGVhciB0aGUgbWVkaWEgZGV2aWNlIG5vZGUgcmVnaXN0ZXIgYml0CisgKiBAZGV2bm9k ZTogdGhlIGRldmljZSBub2RlIHRvIHByZXBhcmUgZm9yIHVucmVnaXN0ZXIKKyAqCisgKiBUaGlz IGNsZWFycyB0aGUgcGFzc2VkIGRldmljZSByZWdpc3RlciBiaXQuIEZ1dHVyZSBvcGVuIGNhbGxz IHdpbGwgYmUgbWV0CisgKiB3aXRoIGVycm9ycy4gU2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgbWVk aWFfZGV2bm9kZV91bnJlZ2lzdGVyKCkgdG8gYXZvaWQKKyAqIHJhY2VzIHdpdGggdW5yZWdpc3Rl ciBhbmQgZGV2aWNlIGZpbGUgb3BlbiBjYWxscy4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNhbiBz YWZlbHkgYmUgY2FsbGVkIGlmIHRoZSBkZXZpY2Ugbm9kZSBoYXMgbmV2ZXIgYmVlbgorICogcmVn aXN0ZXJlZCBvciBoYXMgYWxyZWFkeSBiZWVuIHVucmVnaXN0ZXJlZC4KKyAqLwordm9pZCBtZWRp YV9kZXZub2RlX3VucmVnaXN0ZXJfcHJlcGFyZShzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqZGV2bm9k ZSk7CisKIHZvaWQgbWVkaWFfZGV2bm9kZV91bnJlZ2lzdGVyKHN0cnVjdCBtZWRpYV9kZXZub2Rl ICpkZXZub2RlKTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgbWVkaWFfZGV2bm9kZSAqbWVkaWFf ZGV2bm9kZV9kYXRhKHN0cnVjdCBmaWxlICpmaWxwKQoKRnJvbSAwZDE5OGI1YmNkYTVhZjI3ODZl NTEwNTE5OTI3MmI5MDZiZDI5NmQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmlj byBOdW5lcyA8ZXJpY28ubnVuZXNAZGF0YWNvbS5pbmQuYnI+CkRhdGU6IFR1ZSwgMyBNYXkgMjAx NiAxNTo0NTo0MyAtMDMwMApTdWJqZWN0OiBpMmM6IGRldjogc3dpdGNoIGZyb20gcmVnaXN0ZXJf Y2hyZGV2IHRvIGNkZXYgQVBJCgpjb21taXQgZDY3NjBiMTRkNGExMjQzZjkxOGQ5ODNiYmExZTM1 YzVhNWNkNWE2ZCB1cHN0cmVhbS4KCmkyYy1kZXYgaGFkIG5ldmVyIG1vdmVkIGF3YXkgZnJvbSB0 aGUgb2xkZXIgcmVnaXN0ZXJfY2hyZGV2IGludGVyZmFjZSB0bwppbXBsZW1lbnQgaXRzIGNoYXIg ZGV2aWNlIHJlZ2lzdHJhdGlvbi4gVGhlIHJlZ2lzdGVyX2NocmRldiBBUEkgaGFzIHRoZQpsaW1p dGF0aW9uIG9mIGVuYWJsaW5nIG9ubHkgdXAgdG8gMjU2IGkyYy1kZXYgYnVzc2VzIHRvIGV4aXN0 LgoKTGFyZ2UgcGxhdGZvcm1zIHdpdGggbG90cyBvZiBpMmMgZGV2aWNlcyAoaS5lLiBwbHVnZ2Fi bGUgdHJhbnNjZWl2ZXJzKQp3aXRoIGRlZGljYXRlZCBidXNzZXMgbWF5IGhhdmUgdG8gZXhjZWVk IHRoYXQgbGltaXQuCkluIHBhcnRpY3VsYXIsIHRoZXJlIGFyZSBhbHNvIHBsYXRmb3JtcyBtYWtp bmcgdXNlIG9mIHRoZSBpMmMgYnVzCm11bHRpcGxleGluZyBBUEksIHdoaWNoIGluc3RhbnRpYXRl cyBhIHZpcnR1YWwgYnVzIGZvciBlYWNoIHBvc3NpYmxlCm11bHRpcGxleGVkIHNlbGVjdGlvbi4K ClRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgcmVnaXN0ZXJfY2hyZGV2IHVzYWdlIGFuZCByZXBsYWNl cyBpdCB3aXRoIHRoZQpsZXNzIG9sZCBjZGV2IEFQSSwgd2hpY2ggdGFrZXMgYXdheSB0aGUgMjU2 IGkyYy1kZXYgYnVzIGxpbWl0YXRpb24uCkl0IHNob3VsZCBub3QgaGF2ZSBhbnkgb3RoZXIgaW1w YWN0IGZvciBpMmMgYnVzIGRyaXZlcnMgb3IgdXNlciBzcGFjZS4KClRoaXMgcGF0Y2ggaGFzIGJl ZW4gdGVzdGVkIG9uIHFlbXUgeDg2IGFuZCBxZW11IHBvd2VycGMgcGxhdGZvcm1zIHdpdGgKdGhl IGFpZCBvZiBhIG1vZHVsZSB3aGljaCBhZGRzIGFuZCByZW1vdmVzIDUwMDAgdmlydHVhbCBpMmMg YnVzc2VzLCBhcwp3ZWxsIGFzIHZhbGlkYXRlZCBvbiBhbiBleGlzdGluZyBwb3dlcnBjIGhhcmR3 YXJlIHBsYXRmb3JtIHdoaWNoIG1ha2VzCnVzZSBvZiB0aGUgaTJjIGJ1cyBtdWx0aXBsZXhpbmcg QVBJLgppMmMtZGV2IGJ1c3NlcyB3aXRoIGRldmljZSBtaW5vciBudW1iZXJzIGxhcmdlciB0aGFu IDI1NiBoYXZlIGFsc28gYmVlbgp2YWxpZGF0ZWQgdG8gd29yayB3aXRoIHRoZSBleGlzdGluZyBp MmMtdG9vbHMuCgpTaWduZWQtb2ZmLWJ5OiBFcmljbyBOdW5lcyA8ZXJpY28ubnVuZXNAZGF0YWNv bS5pbmQuYnI+Clt3c2E6IGtlcHQgaW5jbHVkZXMgc29ydGVkXQpTaWduZWQtb2ZmLWJ5OiBXb2xm cmFtIFNhbmcgPHdzYUB0aGUtZHJlYW1zLmRlPgpbYndoOiBCYWNrcG9ydGVkIHRvIDQuNDogYWRq dXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NA Y29kZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMvaTJjL2kyYy1kZXYuYyB8IDE5ICsrKysrKysr KysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2kyYy1kZXYuYyBiL2RyaXZlcnMvaTJjL2ky Yy1kZXYuYwppbmRleCBlNTZiNzc0ZTdjZjkuLjVmZWNjMWQ5ZTBhMSAxMDA2NDQKLS0tIGEvZHJp dmVycy9pMmMvaTJjLWRldi5jCisrKyBiL2RyaXZlcnMvaTJjL2kyYy1kZXYuYwpAQCAtMjIsNiAr MjIsNyBAQAogCiAvKiBUaGUgSTJDX1JEV1IgaW9jdGwgY29kZSBpcyB3cml0dGVuIGJ5IEtvbGph IFdhc2NoayA8d2FzY2hrQHRlbG9zLmRlPiAqLwogCisjaW5jbHVkZSA8bGludXgvY2Rldi5oPgog I2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2lu Y2x1ZGUgPGxpbnV4L2RldmljZS5oPgpAQCAtNDcsOSArNDgsMTAgQEAgc3RydWN0IGkyY19kZXYg ewogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIAlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXA7CiAJ c3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCBjZGV2IGNkZXY7CiB9OwogCi0jZGVmaW5lIEky Q19NSU5PUlMJMjU2CisjZGVmaW5lIEkyQ19NSU5PUlMJTUlOT1JNQVNLCiBzdGF0aWMgTElTVF9I RUFEKGkyY19kZXZfbGlzdCk7CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGkyY19kZXZfbGlzdF9s b2NrKTsKIApAQCAtNTU5LDYgKzU2MSwxMiBAQCBzdGF0aWMgaW50IGkyY2Rldl9hdHRhY2hfYWRh cHRlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmR1bW15KQogCWlmIChJU19FUlIoaTJjX2Rl dikpCiAJCXJldHVybiBQVFJfRVJSKGkyY19kZXYpOwogCisJY2Rldl9pbml0KCZpMmNfZGV2LT5j ZGV2LCAmaTJjZGV2X2ZvcHMpOworCWkyY19kZXYtPmNkZXYub3duZXIgPSBUSElTX01PRFVMRTsK KwlyZXMgPSBjZGV2X2FkZCgmaTJjX2Rldi0+Y2RldiwgTUtERVYoSTJDX01BSk9SLCBhZGFwLT5u ciksIDEpOworCWlmIChyZXMpCisJCWdvdG8gZXJyb3JfY2RldjsKKwogCS8qIHJlZ2lzdGVyIHRo aXMgaTJjIGRldmljZSB3aXRoIHRoZSBkcml2ZXIgY29yZSAqLwogCWkyY19kZXYtPmRldiA9IGRl dmljZV9jcmVhdGUoaTJjX2Rldl9jbGFzcywgJmFkYXAtPmRldiwKIAkJCQkgICAgIE1LREVWKEky Q19NQUpPUiwgYWRhcC0+bnIpLCBOVUxMLApAQCAtNTcyLDYgKzU4MCw4IEBAIHN0YXRpYyBpbnQg aTJjZGV2X2F0dGFjaF9hZGFwdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZHVtbXkpCiAJ CSBhZGFwLT5uYW1lLCBhZGFwLT5ucik7CiAJcmV0dXJuIDA7CiBlcnJvcjoKKwljZGV2X2RlbCgm aTJjX2Rldi0+Y2Rldik7CitlcnJvcl9jZGV2OgogCXJldHVybl9pMmNfZGV2KGkyY19kZXYpOwog CXJldHVybiByZXM7CiB9CkBAIC01OTEsNiArNjAxLDcgQEAgc3RhdGljIGludCBpMmNkZXZfZGV0 YWNoX2FkYXB0ZXIoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkdW1teSkKIAogCXJldHVybl9p MmNfZGV2KGkyY19kZXYpOwogCWRldmljZV9kZXN0cm95KGkyY19kZXZfY2xhc3MsIE1LREVWKEky Q19NQUpPUiwgYWRhcC0+bnIpKTsKKwljZGV2X2RlbCgmaTJjX2Rldi0+Y2Rldik7CiAKIAlwcl9k ZWJ1ZygiaTJjLWRldjogYWRhcHRlciBbJXNdIHVucmVnaXN0ZXJlZFxuIiwgYWRhcC0+bmFtZSk7 CiAJcmV0dXJuIDA7CkBAIC02MjcsNyArNjM4LDcgQEAgc3RhdGljIGludCBfX2luaXQgaTJjX2Rl dl9pbml0KHZvaWQpCiAKIAlwcmludGsoS0VSTl9JTkZPICJpMmMgL2RldiBlbnRyaWVzIGRyaXZl clxuIik7CiAKLQlyZXMgPSByZWdpc3Rlcl9jaHJkZXYoSTJDX01BSk9SLCAiaTJjIiwgJmkyY2Rl dl9mb3BzKTsKKwlyZXMgPSByZWdpc3Rlcl9jaHJkZXZfcmVnaW9uKE1LREVWKEkyQ19NQUpPUiwg MCksIEkyQ19NSU5PUlMsICJpMmMiKTsKIAlpZiAocmVzKQogCQlnb3RvIG91dDsKIApAQCAtNjUx LDcgKzY2Miw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGkyY19kZXZfaW5pdCh2b2lkKQogb3V0X3Vu cmVnX2NsYXNzOgogCWNsYXNzX2Rlc3Ryb3koaTJjX2Rldl9jbGFzcyk7CiBvdXRfdW5yZWdfY2hy ZGV2OgotCXVucmVnaXN0ZXJfY2hyZGV2KEkyQ19NQUpPUiwgImkyYyIpOworCXVucmVnaXN0ZXJf Y2hyZGV2X3JlZ2lvbihNS0RFVihJMkNfTUFKT1IsIDApLCBJMkNfTUlOT1JTKTsKIG91dDoKIAlw cmludGsoS0VSTl9FUlIgIiVzOiBEcml2ZXIgSW5pdGlhbGlzYXRpb24gZmFpbGVkXG4iLCBfX0ZJ TEVfXyk7CiAJcmV0dXJuIHJlczsKQEAgLTY2Miw3ICs2NzMsNyBAQCBzdGF0aWMgdm9pZCBfX2V4 aXQgaTJjX2Rldl9leGl0KHZvaWQpCiAJYnVzX3VucmVnaXN0ZXJfbm90aWZpZXIoJmkyY19idXNf dHlwZSwgJmkyY2Rldl9ub3RpZmllcik7CiAJaTJjX2Zvcl9lYWNoX2RldihOVUxMLCBpMmNkZXZf ZGV0YWNoX2FkYXB0ZXIpOwogCWNsYXNzX2Rlc3Ryb3koaTJjX2Rldl9jbGFzcyk7Ci0JdW5yZWdp c3Rlcl9jaHJkZXYoSTJDX01BSk9SLCAiaTJjIik7CisJdW5yZWdpc3Rlcl9jaHJkZXZfcmVnaW9u KE1LREVWKEkyQ19NQUpPUiwgMCksIEkyQ19NSU5PUlMpOwogfQogCiBNT0RVTEVfQVVUSE9SKCJG cm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+IGFuZCAiCgpGcm9tIGIxZmMzYWZhYTg0MDI5 ZjI4NjhhMDczOTVlNmM0OTllYzdiODQ5MzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFdvbGZyYW0gU2FuZyA8d3NhQHRoZS1kcmVhbXMuZGU+CkRhdGU6IEZyaSwgMjcgTWF5IDIwMTYg MTM6MTM6MDEgKzAyMDAKU3ViamVjdDogaTJjOiBkZXY6IGRvbid0IHN0YXJ0IGZ1bmN0aW9uIG5h bWUgd2l0aCAncmV0dXJuJwoKY29tbWl0IDcyYTcxZjg2OWM5NWRjMTFiNzNmMDlmZTE4YzU5M2Q0 YTA2MThjM2YgdXBzdHJlYW0uCgpJIHN0dW1ibGVkIG11bHRpcGxlIHRpbWVzIG92ZXIgJ3JldHVy bl9pMmNfZGV2JywgZXNwZWNpYWxseSBiZWZvcmUgdGhlCmFjdHVhbCAncmV0dXJuIHJlcycuIEl0 IG1ha2VzIHRoZSBjb2RlIGhhcmQgdG8gcmVhZCwgc28gcmVhbm1lIHRoZQpmdW5jdGlvbiB0byAn cHV0X2kyY19kZXYnIHdoaWNoIGFsc28gYmV0dGVyIG1hdGNoZXMgJ2dldF9mcmVlX2kyY19kZXYn LgoKU2lnbmVkLW9mZi1ieTogV29sZnJhbSBTYW5nIDx3c2FAdGhlLWRyZWFtcy5kZT4KU2lnbmVk LW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0t LQogZHJpdmVycy9pMmMvaTJjLWRldi5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvaTJj LWRldi5jIGIvZHJpdmVycy9pMmMvaTJjLWRldi5jCmluZGV4IDVmZWNjMWQ5ZTBhMS4uMzgyYzY2 ZDVhNDcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9pMmMtZGV2LmMKKysrIGIvZHJpdmVycy9p MmMvaTJjLWRldi5jCkBAIC05MSw3ICs5MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RldiAqZ2V0 X2ZyZWVfaTJjX2RldihzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCiAJcmV0dXJuIGkyY19kZXY7 CiB9CiAKLXN0YXRpYyB2b2lkIHJldHVybl9pMmNfZGV2KHN0cnVjdCBpMmNfZGV2ICppMmNfZGV2 KQorc3RhdGljIHZvaWQgcHV0X2kyY19kZXYoc3RydWN0IGkyY19kZXYgKmkyY19kZXYpCiB7CiAJ c3Bpbl9sb2NrKCZpMmNfZGV2X2xpc3RfbG9jayk7CiAJbGlzdF9kZWwoJmkyY19kZXYtPmxpc3Qp OwpAQCAtNTgyLDcgKzU4Miw3IEBAIHN0YXRpYyBpbnQgaTJjZGV2X2F0dGFjaF9hZGFwdGVyKHN0 cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZHVtbXkpCiBlcnJvcjoKIAljZGV2X2RlbCgmaTJjX2Rl di0+Y2Rldik7CiBlcnJvcl9jZGV2OgotCXJldHVybl9pMmNfZGV2KGkyY19kZXYpOworCXB1dF9p MmNfZGV2KGkyY19kZXYpOwogCXJldHVybiByZXM7CiB9CiAKQEAgLTU5OSw3ICs1OTksNyBAQCBz dGF0aWMgaW50IGkyY2Rldl9kZXRhY2hfYWRhcHRlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQg KmR1bW15KQogCWlmICghaTJjX2RldikgLyogYXR0YWNoX2FkYXB0ZXIgbXVzdCBoYXZlIGZhaWxl ZCAqLwogCQlyZXR1cm4gMDsKIAotCXJldHVybl9pMmNfZGV2KGkyY19kZXYpOworCXB1dF9pMmNf ZGV2KGkyY19kZXYpOwogCWRldmljZV9kZXN0cm95KGkyY19kZXZfY2xhc3MsIE1LREVWKEkyQ19N QUpPUiwgYWRhcC0+bnIpKTsKIAljZGV2X2RlbCgmaTJjX2Rldi0+Y2Rldik7CiAKCkZyb20gYjY0 NmZjY2VkNTc1OTkxODI4MTZkOWU1YmFlMzE1ODZhNDQ0MTk3YiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpEYXRl OiBTYXQsIDI4IE1heSAyMDE2IDA4OjAxOjQ2ICswMzAwClN1YmplY3Q6IGkyYzogZGV2OiB1c2Ug YWZ0ZXIgZnJlZSBpbiBkZXRhY2gKCmNvbW1pdCBlNmJlMThmNmQ2MmMxZDNiMzMxYWUwMjBiNzZh MjljMmNjZjZiMGJmIHVwc3RyZWFtLgoKVGhlIGNhbGwgdG8gcHV0X2kyY19kZXYoKSBmcmVlcyAi aTJjX2RldiIgc28gdGhlcmUgaXMgYSB1c2UgYWZ0ZXIKZnJlZSB3aGVuIHdlIGNhbGwgY2Rldl9k ZWwoJmkyY19kZXYtPmNkZXYpLgoKRml4ZXM6IGQ2NzYwYjE0ZDRhMSAoJ2kyYzogZGV2OiBzd2l0 Y2ggZnJvbSByZWdpc3Rlcl9jaHJkZXYgdG8gY2RldiBBUEknKQpTaWduZWQtb2ZmLWJ5OiBEYW4g Q2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFdvbGZy YW0gU2FuZyA8d3NhQHRoZS1kcmVhbXMuZGU+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3Mg PGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMvaTJjL2kyYy1kZXYu YyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2kyYy1kZXYuYyBiL2RyaXZlcnMvaTJjL2kyYy1kZXYu YwppbmRleCAzODJjNjZkNWE0NzAuLmU1Y2QzMDdlYmZjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9p MmMvaTJjLWRldi5jCisrKyBiL2RyaXZlcnMvaTJjL2kyYy1kZXYuYwpAQCAtNTk5LDkgKzU5OSw5 IEBAIHN0YXRpYyBpbnQgaTJjZGV2X2RldGFjaF9hZGFwdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwg dm9pZCAqZHVtbXkpCiAJaWYgKCFpMmNfZGV2KSAvKiBhdHRhY2hfYWRhcHRlciBtdXN0IGhhdmUg ZmFpbGVkICovCiAJCXJldHVybiAwOwogCisJY2Rldl9kZWwoJmkyY19kZXYtPmNkZXYpOwogCXB1 dF9pMmNfZGV2KGkyY19kZXYpOwogCWRldmljZV9kZXN0cm95KGkyY19kZXZfY2xhc3MsIE1LREVW KEkyQ19NQUpPUiwgYWRhcC0+bnIpKTsKLQljZGV2X2RlbCgmaTJjX2Rldi0+Y2Rldik7CiAKIAlw cl9kZWJ1ZygiaTJjLWRldjogYWRhcHRlciBbJXNdIHVucmVnaXN0ZXJlZFxuIiwgYWRhcC0+bmFt ZSk7CiAJcmV0dXJuIDA7CgpGcm9tIDVhNDNlYzk2OTczMmFjMWRmM2RkNTc4MjdlMWMzZmFlYWIy NTkzZTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHZpcmVzaCBrdW1hciA8dmlyZXNo Lmt1bWFyQGxpbmFyby5vcmc+CkRhdGU6IFR1ZSwgNSBKdWwgMjAxNiAxOTo1NzowNiAtMDcwMApT dWJqZWN0OiBpMmMtZGV2OiBkb24ndCBnZXQgaTJjIGFkYXB0ZXIgdmlhIGkyY19kZXYKCmNvbW1p dCA1MTM2ZWQ0ZmNiMDVjZDQ5ODFjYzYwMzRhMTFlNjYzNzBlZDg0Nzg5IHVwc3RyZWFtLgoKVGhl cmUgaXMgbm8gY29kZSBwcm90ZWN0aW5nIGkyY19kZXYgdG8gYmUgZnJlZWQgYWZ0ZXIgaXQgaXMg cmV0dXJuZWQKZnJvbSBpMmNfZGV2X2dldF9ieV9taW5vcigpIGFuZCB1c2luZyBpdCB0byBhY2Nl c3MgdGhlIHZhbHVlIHdoaWNoIHdlCmFscmVhZHkgaGF2ZSAobWlub3IpIGlzbid0IHNhZmUgcmVh bGx5LgoKQXZvaWQgdXNpbmcgaXQgYW5kIGdldCB0aGUgYWRhcHRlciBkaXJlY3RseSBmcm9tICdt aW5vcicuCgpTaWduZWQtb2ZmLWJ5OiBWaXJlc2ggS3VtYXIgPHZpcmVzaC5rdW1hckBsaW5hcm8u b3JnPgpSZXZpZXdlZC1ieTogSmVhbiBEZWx2YXJlIDxqZGVsdmFyZUBzdXNlLmRlPgpUZXN0ZWQt Ynk6IEplYW4gRGVsdmFyZSA8amRlbHZhcmVAc3VzZS5kZT4KU2lnbmVkLW9mZi1ieTogV29sZnJh bSBTYW5nIDx3c2FAdGhlLWRyZWFtcy5kZT4KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8 YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZHJpdmVycy9pMmMvaTJjLWRldi5j IHwgNyArLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvaTJjLWRldi5jIGIvZHJpdmVycy9pMmMvaTJj LWRldi5jCmluZGV4IGU1Y2QzMDdlYmZjOS4uNTU0M2I0OWUyZTA1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2kyYy9pMmMtZGV2LmMKKysrIGIvZHJpdmVycy9pMmMvaTJjLWRldi5jCkBAIC00OTIsMTMg KzQ5Miw4IEBAIHN0YXRpYyBpbnQgaTJjZGV2X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3Ry dWN0IGZpbGUgKmZpbGUpCiAJdW5zaWduZWQgaW50IG1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlz dHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50OwogCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcDsKLQlz dHJ1Y3QgaTJjX2RldiAqaTJjX2RldjsKLQotCWkyY19kZXYgPSBpMmNfZGV2X2dldF9ieV9taW5v cihtaW5vcik7Ci0JaWYgKCFpMmNfZGV2KQotCQlyZXR1cm4gLUVOT0RFVjsKIAotCWFkYXAgPSBp MmNfZ2V0X2FkYXB0ZXIoaTJjX2Rldi0+YWRhcC0+bnIpOworCWFkYXAgPSBpMmNfZ2V0X2FkYXB0 ZXIobWlub3IpOwogCWlmICghYWRhcCkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKCkZyb20gZjQ4Yjli N2FjMmRjZWRkYTc4Yjk2MzEzZWUwZWMzODRmOTg5YTA3OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogS2V2aW4gSGFvIDxoYW9rZXhpbkBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTEgT2N0 IDIwMTkgMjM6MDA6MTQgKzA4MDAKU3ViamVjdDogaTJjOiBkZXY6IEZpeCB0aGUgcmFjZSBiZXR3 ZWVuIHRoZSByZWxlYXNlIG9mIGkyY19kZXYgYW5kIGNkZXYKCmNvbW1pdCAxNDEzZWY2MzhhYmFl NGFiNTYyMTkwMWNmNGQ4ZWYwOGE0YTQ4YmE2IHVwc3RyZWFtLgoKVGhlIHN0cnVjdCBjZGV2IGlz IGVtYmVkZGVkIGluIHRoZSBzdHJ1Y3QgaTJjX2Rldi4gSW4gdGhlIGN1cnJlbnQgY29kZSwKd2Ug d291bGQgZnJlZSB0aGUgaTJjX2RldiBzdHJ1Y3QgZGlyZWN0bHkgaW4gcHV0X2kyY19kZXYoKSwg YnV0IHRoZQpjZGV2IGlzIG1hbmdlZCBieSBhIGtvYmplY3QsIGFuZCB0aGUgcmVsZWFzZSBvZiBp dCBpcyBub3QgcHJlZGljdGFibGUuClNvIGl0IGlzIHZlcnkgcG9zc2libGUgdGhhdCB0aGUgaTJj X2RldiBpcyBmcmVlZCBiZWZvcmUgdGhlIGNkZXYgaXMKZW50aXJlbHkgcmVsZWFzZWQuIFdlIGNh biBlYXNpbHkgZ2V0IHRoZSBmb2xsb3dpbmcgY2FsbCB0cmFjZSB3aXRoCkNPTkZJR19ERUJVR19L T0JKRUNUX1JFTEVBU0UgYW5kIENPTkZJR19ERUJVR19PQkpFQ1RTX1RJTUVSUyBlbmFibGVkLgog IE9ERUJVRzogZnJlZSBhY3RpdmUgKGFjdGl2ZSBzdGF0ZSAwKSBvYmplY3QgdHlwZTogdGltZXJf bGlzdCBoaW50OiBkZWxheWVkX3dvcmtfdGltZXJfZm4rMHgwLzB4MzgKICBXQVJOSU5HOiBDUFU6 IDE5IFBJRDogMSBhdCBsaWIvZGVidWdvYmplY3RzLmM6MzI1IGRlYnVnX3ByaW50X29iamVjdCsw eGIwLzB4ZjAKICBNb2R1bGVzIGxpbmtlZCBpbjoKICBDUFU6IDE5IFBJRDogMSBDb21tOiBzd2Fw cGVyLzAgVGFpbnRlZDogRyAgICAgICAgVyAgICAgICAgIDUuMi4yMC15b2N0by1zdGFuZGFyZCsg IzEyMAogIEhhcmR3YXJlIG5hbWU6IE1hcnZlbGwgT2N0ZW9uVFggQ045NlhYIGJvYXJkIChEVCkK ICBwc3RhdGU6IDgwYzAwMDg5IChOemN2IGRhSWYgK1BBTiArVUFPKQogIHBjIDogZGVidWdfcHJp bnRfb2JqZWN0KzB4YjAvMHhmMAogIGxyIDogZGVidWdfcHJpbnRfb2JqZWN0KzB4YjAvMHhmMAog IHNwIDogZmZmZjAwMDAxMjkyZjdkMAogIHgyOTogZmZmZjAwMDAxMjkyZjdkMCB4Mjg6IGZmZmY4 MDBiODIxNTE3ODgKICB4Mjc6IDAwMDAwMDAwMDAwMDAwMDEgeDI2OiBmZmZmODAwYjg5MmMwMDAw CiAgeDI1OiBmZmZmMDAwMDEyNGEyNTU4IHgyNDogMDAwMDAwMDAwMDAwMDAwMAogIHgyMzogZmZm ZjAwMDAxMTA3YTFkOCB4MjI6IGZmZmYwMDAwMTE2YjUwODgKICB4MjE6IGZmZmY4MDBiZGM2YWZj YTggeDIwOiBmZmZmMDAwMDEyNDcxYWU4CiAgeDE5OiBmZmZmMDAwMDExNjhmMmM4IHgxODogMDAw MDAwMDAwMDAwMDAxMAogIHgxNzogMDAwMDAwMDBmZDZmMzA0YiB4MTY6IDAwMDAwMDAwZWU3OWRl NDMKICB4MTU6IGZmZmY4MDBiYzBlODA1NjggeDE0OiA3OTYxNmM2NTY0MjAzYTc0CiAgeDEzOiA2 ZTY5NjgyMDc0NzM2OTZjIHgxMjogNWY3MjY1NmQ2OTc0MjAzYQogIHgxMTogZmZmZjAwMDAxMTNm MDAxOCB4MTA6IDAwMDAwMDAwMDAwMDAwMDAKICB4OSA6IDAwMDAwMDAwMDAwMDAwMWYgeDggOiAw MDAwMDAwMDAwMDAwMDAwCiAgeDcgOiBmZmZmMDAwMDEwMTI5NGNjIHg2IDogMDAwMDAwMDAwMDAw MDAwMAogIHg1IDogMDAwMDAwMDAwMDAwMDAwMCB4NCA6IDAwMDAwMDAwMDAwMDAwMDEKICB4MyA6 IDAwMDAwMDAwZmZmZmZmZmYgeDIgOiAwMDAwMDAwMDAwMDAwMDAwCiAgeDEgOiAzODdmYzE1Yzhl YzBmMjAwIHgwIDogMDAwMDAwMDAwMDAwMDAwMAogIENhbGwgdHJhY2U6CiAgIGRlYnVnX3ByaW50 X29iamVjdCsweGIwLzB4ZjAKICAgX19kZWJ1Z19jaGVja19ub19vYmpfZnJlZWQrMHgxOWMvMHgy MjgKICAgZGVidWdfY2hlY2tfbm9fb2JqX2ZyZWVkKzB4MWMvMHgyOAogICBrZnJlZSsweDI1MC8w eDQ0MAogICBwdXRfaTJjX2RldisweDY4LzB4NzgKICAgaTJjZGV2X2RldGFjaF9hZGFwdGVyKzB4 NjAvMHhjOAogICBpMmNkZXZfbm90aWZpZXJfY2FsbCsweDNjLzB4NzAKICAgbm90aWZpZXJfY2Fs bF9jaGFpbisweDhjLzB4ZTgKICAgYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbisweDY0LzB4 ODgKICAgZGV2aWNlX2RlbCsweDc0LzB4MzgwCiAgIGRldmljZV91bnJlZ2lzdGVyKzB4NTQvMHg3 OAogICBpMmNfZGVsX2FkYXB0ZXIrMHgyNzgvMHgyZDAKICAgdW5pdHRlc3RfaTJjX2J1c19yZW1v dmUrMHgzYy8weDgwCiAgIHBsYXRmb3JtX2Rydl9yZW1vdmUrMHgzMC8weDUwCiAgIGRldmljZV9y ZWxlYXNlX2RyaXZlcl9pbnRlcm5hbCsweGY0LzB4MWMwCiAgIGRyaXZlcl9kZXRhY2grMHg1OC8w eGEwCiAgIGJ1c19yZW1vdmVfZHJpdmVyKzB4ODQvMHhkOAogICBkcml2ZXJfdW5yZWdpc3Rlcisw eDM0LzB4NjAKICAgcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIrMHgyMC8weDMwCiAgIG9mX3Vu aXR0ZXN0X292ZXJsYXkrMHg4ZDQvMHhiZTAKICAgb2ZfdW5pdHRlc3QrMHhhZTgvMHhiM2MKICAg ZG9fb25lX2luaXRjYWxsKzB4YWMvMHg0NTAKICAgZG9faW5pdGNhbGxfbGV2ZWwrMHgyMDgvMHgy MjQKICAga2VybmVsX2luaXRfZnJlZWFibGUrMHgyZDgvMHgzNmMKICAga2VybmVsX2luaXQrMHgx OC8weDEwOAogICByZXRfZnJvbV9mb3JrKzB4MTAvMHgxYwogIGlycSBldmVudCBzdGFtcDogMzkz NDY2MQogIGhhcmRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDM5MzQ2NjEpOiBbPGZmZmYwMDAwMTAw OWZhMDQ+XSBkZWJ1Z19leGNlcHRpb25fZXhpdCsweDRjLzB4NTgKICBoYXJkaXJxcyBsYXN0IGRp c2FibGVkIGF0ICgzOTM0NjYwKTogWzxmZmZmMDAwMDEwMDlmYjE0Pl0gZGVidWdfZXhjZXB0aW9u X2VudGVyKzB4YTQvMHhlMAogIHNvZnRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDM5MzQ2NTQpOiBb PGZmZmYwMDAwMTAwODFkOTQ+XSBfX2RvX3NvZnRpcnErMHg0NmMvMHg2MjgKICBzb2Z0aXJxcyBs YXN0IGRpc2FibGVkIGF0ICgzOTM0NjQ5KTogWzxmZmZmMDAwMDEwMGI0YTFjPl0gaXJxX2V4aXQr MHgxMDQvMHgxMTgKClRoaXMgaXMgYSBjb21tb24gaXNzdWUgd2hlbiB1c2luZyBjZGV2IGVtYmVk ZGVkIGluIGEgc3RydWN0LgpGb3J0dW5hdGVseSwgd2UgYWxyZWFkeSBoYXZlIGEgbWVjaGFuaXNt IHRvIHNvbHZlIHRoaXMga2luZCBvZiBpc3N1ZS4KUGxlYXNlIHNlZSBjb21taXQgMjMzZWQwOWQ3 ZmRhICgiY2hhcmRldjogYWRkIGhlbHBlciBmdW5jdGlvbiB0bwpyZWdpc3RlciBjaGFyIGRldnMg d2l0aCBhIHN0cnVjdCBkZXZpY2UiKSBmb3IgbW9yZSBkZXRhaWwuCgpJbiB0aGlzIHBhdGNoLCB3 ZSBjaG9vc2UgdG8gZW1iZWQgdGhlIHN0cnVjdCBkZXZpY2UgaW50byB0aGUgaTJjX2RldiwKYW5k IHVzZSB0aGUgQVBJIHByb3ZpZGVkIGJ5IHRoZSBjb21taXQgMjMzZWQwOWQ3ZmRhIHRvIG1ha2Ug c3VyZSB0aGF0CnRoZSByZWxlYXNlIG9mIGkyY19kZXYgYW5kIGNkZXYgYXJlIGluIHNlcXVlbmNl LgoKU2lnbmVkLW9mZi1ieTogS2V2aW4gSGFvIDxoYW9rZXhpbkBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IFdvbGZyYW0gU2FuZyA8d3NhQHRoZS1kcmVhbXMuZGU+ClNpZ25lZC1vZmYtYnk6IEJl biBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMv aTJjL2kyYy1kZXYuYyB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9pMmMtZGV2LmMgYi9kcml2ZXJzL2kyYy9pMmMtZGV2 LmMKaW5kZXggNTU0M2I0OWUyZTA1Li43NTg0ZjI5MmUyZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv aTJjL2kyYy1kZXYuYworKysgYi9kcml2ZXJzL2kyYy9pMmMtZGV2LmMKQEAgLTQ3LDcgKzQ3LDcg QEAKIHN0cnVjdCBpMmNfZGV2IHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiAJc3RydWN0IGky Y19hZGFwdGVyICphZGFwOwotCXN0cnVjdCBkZXZpY2UgKmRldjsKKwlzdHJ1Y3QgZGV2aWNlIGRl djsKIAlzdHJ1Y3QgY2RldiBjZGV2OwogfTsKIApAQCAtOTEsMTIgKzkxLDE0IEBAIHN0YXRpYyBz dHJ1Y3QgaTJjX2RldiAqZ2V0X2ZyZWVfaTJjX2RldihzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAp CiAJcmV0dXJuIGkyY19kZXY7CiB9CiAKLXN0YXRpYyB2b2lkIHB1dF9pMmNfZGV2KHN0cnVjdCBp MmNfZGV2ICppMmNfZGV2KQorc3RhdGljIHZvaWQgcHV0X2kyY19kZXYoc3RydWN0IGkyY19kZXYg KmkyY19kZXYsIGJvb2wgZGVsX2NkZXYpCiB7CiAJc3Bpbl9sb2NrKCZpMmNfZGV2X2xpc3RfbG9j ayk7CiAJbGlzdF9kZWwoJmkyY19kZXYtPmxpc3QpOwogCXNwaW5fdW5sb2NrKCZpMmNfZGV2X2xp c3RfbG9jayk7Ci0Ja2ZyZWUoaTJjX2Rldik7CisJaWYgKGRlbF9jZGV2KQorCQljZGV2X2Rldmlj ZV9kZWwoJmkyY19kZXYtPmNkZXYsICZpMmNfZGV2LT5kZXYpOworCXB1dF9kZXZpY2UoJmkyY19k ZXYtPmRldik7CiB9CiAKIHN0YXRpYyBzc2l6ZV90IG5hbWVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpk ZXYsCkBAIC01NDIsNiArNTQ0LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRp b25zIGkyY2Rldl9mb3BzID0gewogCiBzdGF0aWMgc3RydWN0IGNsYXNzICppMmNfZGV2X2NsYXNz OwogCitzdGF0aWMgdm9pZCBpMmNkZXZfZGV2X3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2KQor eworCXN0cnVjdCBpMmNfZGV2ICppMmNfZGV2OworCisJaTJjX2RldiA9IGNvbnRhaW5lcl9vZihk ZXYsIHN0cnVjdCBpMmNfZGV2LCBkZXYpOworCWtmcmVlKGkyY19kZXYpOworfQorCiBzdGF0aWMg aW50IGkyY2Rldl9hdHRhY2hfYWRhcHRlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmR1bW15 KQogewogCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcDsKQEAgLTU1OCwyNyArNTY4LDIzIEBAIHN0 YXRpYyBpbnQgaTJjZGV2X2F0dGFjaF9hZGFwdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAq ZHVtbXkpCiAKIAljZGV2X2luaXQoJmkyY19kZXYtPmNkZXYsICZpMmNkZXZfZm9wcyk7CiAJaTJj X2Rldi0+Y2Rldi5vd25lciA9IFRISVNfTU9EVUxFOwotCXJlcyA9IGNkZXZfYWRkKCZpMmNfZGV2 LT5jZGV2LCBNS0RFVihJMkNfTUFKT1IsIGFkYXAtPm5yKSwgMSk7Ci0JaWYgKHJlcykKLQkJZ290 byBlcnJvcl9jZGV2OwotCi0JLyogcmVnaXN0ZXIgdGhpcyBpMmMgZGV2aWNlIHdpdGggdGhlIGRy aXZlciBjb3JlICovCi0JaTJjX2Rldi0+ZGV2ID0gZGV2aWNlX2NyZWF0ZShpMmNfZGV2X2NsYXNz LCAmYWRhcC0+ZGV2LAotCQkJCSAgICAgTUtERVYoSTJDX01BSk9SLCBhZGFwLT5uciksIE5VTEws Ci0JCQkJICAgICAiaTJjLSVkIiwgYWRhcC0+bnIpOwotCWlmIChJU19FUlIoaTJjX2Rldi0+ZGV2 KSkgewotCQlyZXMgPSBQVFJfRVJSKGkyY19kZXYtPmRldik7Ci0JCWdvdG8gZXJyb3I7CisKKwlk ZXZpY2VfaW5pdGlhbGl6ZSgmaTJjX2Rldi0+ZGV2KTsKKwlpMmNfZGV2LT5kZXYuZGV2dCA9IE1L REVWKEkyQ19NQUpPUiwgYWRhcC0+bnIpOworCWkyY19kZXYtPmRldi5jbGFzcyA9IGkyY19kZXZf Y2xhc3M7CisJaTJjX2Rldi0+ZGV2LnBhcmVudCA9ICZhZGFwLT5kZXY7CisJaTJjX2Rldi0+ZGV2 LnJlbGVhc2UgPSBpMmNkZXZfZGV2X3JlbGVhc2U7CisJZGV2X3NldF9uYW1lKCZpMmNfZGV2LT5k ZXYsICJpMmMtJWQiLCBhZGFwLT5ucik7CisKKwlyZXMgPSBjZGV2X2RldmljZV9hZGQoJmkyY19k ZXYtPmNkZXYsICZpMmNfZGV2LT5kZXYpOworCWlmIChyZXMpIHsKKwkJcHV0X2kyY19kZXYoaTJj X2RldiwgZmFsc2UpOworCQlyZXR1cm4gcmVzOwogCX0KIAogCXByX2RlYnVnKCJpMmMtZGV2OiBh ZGFwdGVyIFslc10gcmVnaXN0ZXJlZCBhcyBtaW5vciAlZFxuIiwKIAkJIGFkYXAtPm5hbWUsIGFk YXAtPm5yKTsKIAlyZXR1cm4gMDsKLWVycm9yOgotCWNkZXZfZGVsKCZpMmNfZGV2LT5jZGV2KTsK LWVycm9yX2NkZXY6Ci0JcHV0X2kyY19kZXYoaTJjX2Rldik7Ci0JcmV0dXJuIHJlczsKIH0KIAog c3RhdGljIGludCBpMmNkZXZfZGV0YWNoX2FkYXB0ZXIoc3RydWN0IGRldmljZSAqZGV2LCB2b2lk ICpkdW1teSkKQEAgLTU5NCw5ICs2MDAsNyBAQCBzdGF0aWMgaW50IGkyY2Rldl9kZXRhY2hfYWRh cHRlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmR1bW15KQogCWlmICghaTJjX2RldikgLyog YXR0YWNoX2FkYXB0ZXIgbXVzdCBoYXZlIGZhaWxlZCAqLwogCQlyZXR1cm4gMDsKIAotCWNkZXZf ZGVsKCZpMmNfZGV2LT5jZGV2KTsKLQlwdXRfaTJjX2RldihpMmNfZGV2KTsKLQlkZXZpY2VfZGVz dHJveShpMmNfZGV2X2NsYXNzLCBNS0RFVihJMkNfTUFKT1IsIGFkYXAtPm5yKSk7CisJcHV0X2ky Y19kZXYoaTJjX2RldiwgdHJ1ZSk7CiAKIAlwcl9kZWJ1ZygiaTJjLWRldjogYWRhcHRlciBbJXNd IHVucmVnaXN0ZXJlZFxuIiwgYWRhcC0+bmFtZSk7CiAJcmV0dXJuIDA7Cg== --=-6E38KBl++2Qvisqe9Jy4--