From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH 22/26] drm/amdgpu: Iterate through DRM connectors correctly Date: Wed, 17 Jul 2019 21:42:45 -0400 Message-ID: <20190718014329.8107-23-lyude@redhat.com> References: <20190718014329.8107-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190718014329.8107-1-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: David Airlie , Huang Rui , Laurent Pinchart , Sam Ravnborg , Markus Elfring , Yu Zhao , Oleksandr Andrushchenko , Bhawanpreet Lakha , David Francis , amd-gfx@lists.freedesktop.org, Jani Nikula , Mauro Rossi , Juston Li , Leo Li , Emily Deng , Russell King , Rodrigo Vivi , Evan Quan , Harry Wentland , Felix Kuehling , xinhui pan , =?UTF-8?q?Michel=20D=C3=A4nzer?= , linux-kernel@vger.kernel.or List-Id: dri-devel@lists.freedesktop.org Q3VycmVudGx5LCBldmVyeSBzaW5nbGUgcGllY2Ugb2YgY29kZSBpbiBhbWRncHUgdGhhdCBsb29w cyB0aHJvdWdoCmNvbm5lY3RvcnMgZG9lcyBpdCBpbmNvcnJlY3RseSBhbmQgZG9lc24ndCB1c2Ug dGhlIHByb3BlciBsaXN0IGl0ZXJhdGlvbgpoZWxwZXJzLCBkcm1fY29ubmVjdG9yX2xpc3RfaXRl cl9iZWdpbigpIGFuZApkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoKS4gWWVlc2guCgpTbywg ZG8gdGhhdC4KCkNjOiBKdXN0b24gTGkgPGp1c3Rvbi5saUBpbnRlbC5jb20+CkNjOiBJbXJlIERl YWsgPGltcmUuZGVha0BpbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgpDYzogSGFycnkgV2VudGxhbmQgPGh3ZW50bGFuQGFtZC5jb20+ ClNpZ25lZC1vZmYtYnk6IEx5dWRlIFBhdWwgPGx5dWRlQHJlZGhhdC5jb20+Ci0tLQogLi4uL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5jICAgIHwgMTMgKysrKystCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgICAgfCAyMCArKysrKysrLS0t CiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jICAgfCAgNSArKy0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9lbmNvZGVycy5jICB8IDQwICsrKysr KysrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuYyAg ICAgICB8ICA1ICsrLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMgICAg ICAgIHwgMzQgKysrKysrKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNl X3YxMV8wLmMgICAgICAgIHwgMzQgKysrKysrKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZGNlX3Y2XzAuYyAgICAgICAgIHwgNDAgKysrKysrKysrKysrKystLS0tLQogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYyAgICAgICAgIHwgMzQgKysrKysrKysr KysrLS0tLQogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIHwg MzMgKysrKysrKystLS0tLS0tCiAuLi4vZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVf ZG1faXJxLmMgfCAxMCArKysrLQogMTEgZmlsZXMgY2hhbmdlZCwgMTk1IGluc2VydGlvbnMoKyks IDczIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9jb25uZWN0b3JzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf Y29ubmVjdG9ycy5jCmluZGV4IDczYjJlZGU3NzNkMy4uMmNhYmFhZWNmMjhhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jb25uZWN0b3JzLmMKQEAgLTEwMjIsOCAr MTAyMiwxMiBAQCBhbWRncHVfY29ubmVjdG9yX2R2aV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKIAkJCSAqLwogCQkJaWYgKGFtZGdwdV9jb25uZWN0 b3ItPnNoYXJlZF9kZGMgJiYgKHJldCA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkpIHsK IAkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqbGlzdF9jb25uZWN0b3I7CisJCQkJc3RydWN0IGRy bV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJCQkJc3RydWN0IGFtZGdwdV9jb25uZWN0b3Ig Kmxpc3RfYW1kZ3B1X2Nvbm5lY3RvcjsKLQkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGxpc3RfY29u bmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgeworCisJCQkJ ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJCQkJZHJtX2Zvcl9l YWNoX2Nvbm5lY3Rvcl9pdGVyKGxpc3RfY29ubmVjdG9yLAorCQkJCQkJCSAgICAmaXRlcikgewog CQkJCQlpZiAoY29ubmVjdG9yID09IGxpc3RfY29ubmVjdG9yKQogCQkJCQkJY29udGludWU7CiAJ CQkJCWxpc3RfYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25uZWN0b3IobGlzdF9jb25u ZWN0b3IpOwpAQCAtMTA0MCw2ICsxMDQ0LDcgQEAgYW1kZ3B1X2Nvbm5lY3Rvcl9kdmlfZGV0ZWN0 KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCiAJCQkJCQl9CiAJ CQkJCX0KIAkJCQl9CisJCQkJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAkJ CX0KIAkJfQogCX0KQEAgLTE1MDEsNiArMTUwNiw3IEBAIGFtZGdwdV9jb25uZWN0b3JfYWRkKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBh ZGV2LT5kZGV2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRy bV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFt ZGdwdV9jb25uZWN0b3I7CiAJc3RydWN0IGFtZGdwdV9jb25uZWN0b3JfYXRvbV9kaWcgKmFtZGdw dV9kaWdfY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKQEAgLTE1MTQs MTAgKzE1MjAsMTIgQEAgYW1kZ3B1X2Nvbm5lY3Rvcl9hZGQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCiAJCXJldHVybjsKIAogCS8qIHNlZSBpZiB3ZSBhbHJlYWR5IGFkZGVkIGl0ICovCi0J bGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rv cl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRl cik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJ YW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25uZWN0b3IoY29ubmVjdG9yKTsKIAkJaWYg KGFtZGdwdV9jb25uZWN0b3ItPmNvbm5lY3Rvcl9pZCA9PSBjb25uZWN0b3JfaWQpIHsKIAkJCWFt ZGdwdV9jb25uZWN0b3ItPmRldmljZXMgfD0gc3VwcG9ydGVkX2RldmljZTsKKwkJCWRybV9jb25u ZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiAJCQlyZXR1cm47CiAJCX0KIAkJaWYgKGFtZGdw dV9jb25uZWN0b3ItPmRkY19idXMgJiYgaTJjX2J1cy0+dmFsaWQpIHsKQEAgLTE1MzIsNiArMTU0 MCw3IEBAIGFtZGdwdV9jb25uZWN0b3JfYWRkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAog CQkJfQogCQl9CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiAKIAkv KiBjaGVjayBpZiBpdCdzIGEgZHAgYnJpZGdlICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNv ZGVyLCAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQpIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwppbmRleCA3NDAxYmM5NWMxNWIuLmY4ZDQz M2IwMTNlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rl dmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwpA QCAtMjkwOSw2ICsyOTA5LDcgQEAgaW50IGFtZGdwdV9kZXZpY2Vfc3VzcGVuZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBib29sIHN1c3BlbmQsIGJvb2wgZmJjb24pCiAJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXY7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJ aW50IHI7CiAKIAlpZiAoZGV2ID09IE5VTEwgfHwgZGV2LT5kZXZfcHJpdmF0ZSA9PSBOVUxMKSB7 CkBAIC0yOTMxLDkgKzI5MzIsMTEgQEAgaW50IGFtZGdwdV9kZXZpY2Vfc3VzcGVuZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBib29sIHN1c3BlbmQsIGJvb2wgZmJjb24pCiAJaWYgKCFhbWRncHVf ZGV2aWNlX2hhc19kY19zdXBwb3J0KGFkZXYpKSB7CiAJCS8qIHR1cm4gb2ZmIGRpc3BsYXkgaHcg Ki8KIAkJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShj b25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7Ci0JCQlk cm1faGVscGVyX2Nvbm5lY3Rvcl9kcG1zKGNvbm5lY3RvciwgRFJNX01PREVfRFBNU19PRkYpOwot CQl9CisJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCQlkcm1f Zm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikKKwkJCWRybV9oZWxwZXJf Y29ubmVjdG9yX2RwbXMoY29ubmVjdG9yLAorCQkJCQkJICBEUk1fTU9ERV9EUE1TX09GRik7CisJ CWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiAJCWRybV9tb2Rlc2V0X3VubG9j a19hbGwoZGV2KTsKIAkJCS8qIHVucGluIHRoZSBmcm9udCBidWZmZXJzIGFuZCBjdXJzb3JzICov CiAJCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0 LCBoZWFkKSB7CkBAIC0zMDEyLDYgKzMwMTUsNyBAQCBpbnQgYW1kZ3B1X2RldmljZV9zdXNwZW5k KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgc3VzcGVuZCwgYm9vbCBmYmNvbikKIGludCBh bWRncHVfZGV2aWNlX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHJlc3VtZSwg Ym9vbCBmYmNvbikKIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVj dCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJaW50IHIg PSAwOwpAQCAtMzA4Miw5ICszMDg2LDEzIEBAIGludCBhbWRncHVfZGV2aWNlX3Jlc3VtZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHJlc3VtZSwgYm9vbCBmYmNvbikKIAogCQkJLyogdHVy biBvbiBkaXNwbGF5IGh3ICovCiAJCQlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwotCQkJbGlz dF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9s aXN0LCBoZWFkKSB7Ci0JCQkJZHJtX2hlbHBlcl9jb25uZWN0b3JfZHBtcyhjb25uZWN0b3IsIERS TV9NT0RFX0RQTVNfT04pOwotCQkJfQorCisJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdp bihkZXYsICZpdGVyKTsKKwkJCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3Is ICZpdGVyKQorCQkJCWRybV9oZWxwZXJfY29ubmVjdG9yX2RwbXMoY29ubmVjdG9yLAorCQkJCQkJ CSAgRFJNX01PREVfRFBNU19PTik7CisJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0 ZXIpOworCiAJCQlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7CiAJCX0KIAkJYW1kZ3B1X2Zi ZGV2X3NldF9zdXNwZW5kKGFkZXYsIDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kaXNwbGF5LmMKaW5kZXggNTM1NjUwOTY3YjFhLi5kMzQyNDcxYWQzYmIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYwpAQCAtMzY5LDExICszNjks MTMgQEAgdm9pZCBhbWRncHVfZGlzcGxheV9wcmludF9kaXNwbGF5X3NldHVwKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9jb25uZWN0b3I7 CiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAq YW1kZ3B1X2VuY29kZXI7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJ dWludDMyX3QgZGV2aWNlczsKIAlpbnQgaSA9IDA7CiAKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRl cl9iZWdpbihkZXYsICZpdGVyKTsKIAlEUk1fSU5GTygiQU1ER1BVIERpc3BsYXkgQ29ubmVjdG9y c1xuIik7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmln LmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNv bm5lY3RvciwgJml0ZXIpIHsKIAkJYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25uZWN0 b3IoY29ubmVjdG9yKTsKIAkJRFJNX0lORk8oIkNvbm5lY3RvciAlZDpcbiIsIGkpOwogCQlEUk1f SU5GTygiICAlc1xuIiwgY29ubmVjdG9yLT5uYW1lKTsKQEAgLTQzNyw2ICs0MzksNyBAQCB2b2lk IGFtZGdwdV9kaXNwbGF5X3ByaW50X2Rpc3BsYXlfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAkJfQogCQlpKys7CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7 CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2VuY29kZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZW5jb2RlcnMu YwppbmRleCA1NzFhNmRmYjQ3M2UuLjYxZmNmMjQ3YTYzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2VuY29kZXJzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2VuY29kZXJzLmMKQEAgLTM3LDEyICszNywxNCBAQCBhbWRncHVf bGlua19lbmNvZGVyX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVy OwogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yOwogCXN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNv ZGVyOwogCisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CiAJLyog d2FsayB0aGUgbGlzdCBhbmQgbGluayBlbmNvZGVycyB0byBjb25uZWN0b3JzICovCi0JbGlzdF9m b3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0 LCBoZWFkKSB7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIp IHsKIAkJYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25uZWN0b3IoY29ubmVjdG9yKTsK IAkJbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVyLCAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVy X2xpc3QsIGhlYWQpIHsKIAkJCWFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5j b2Rlcik7CkBAIC01NSw2ICs1Nyw3IEBAIGFtZGdwdV9saW5rX2VuY29kZXJfY29ubmVjdG9yKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQl9CiAJCX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXJfZW5kKCZpdGVyKTsKIH0KIAogdm9pZCBhbWRncHVfZW5jb2Rlcl9zZXRfYWN0aXZlX2Rl dmljZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCkBAIC02Miw4ICs2NSwxMCBAQCB2b2lk IGFtZGdwdV9lbmNvZGVyX3NldF9hY3RpdmVfZGV2aWNlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlcikKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OwogCXN0cnVjdCBh bWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2RlcihlbmNvZGVy KTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVj dG9yX2xpc3RfaXRlciBpdGVyOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZk ZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVy KGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVy KSB7CiAJCQlzdHJ1Y3QgYW1kZ3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2Ft ZGdwdV9jb25uZWN0b3IoY29ubmVjdG9yKTsKIAkJCWFtZGdwdV9lbmNvZGVyLT5hY3RpdmVfZGV2 aWNlID0gYW1kZ3B1X2VuY29kZXItPmRldmljZXMgJiBhbWRncHVfY29ubmVjdG9yLT5kZXZpY2Vz OwpAQCAtNzIsNiArNzcsNyBAQCB2b2lkIGFtZGdwdV9lbmNvZGVyX3NldF9hY3RpdmVfZGV2aWNl KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAkJCQkgIGFtZGdwdV9jb25uZWN0b3ItPmRl dmljZXMsIGVuY29kZXItPmVuY29kZXJfdHlwZSk7CiAJCX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXJfZW5kKCZpdGVyKTsKIH0KIAogc3RydWN0IGRybV9jb25uZWN0b3IgKgpAQCAtNzks MTUgKzg1LDIwIEBAIGFtZGdwdV9nZXRfY29ubmVjdG9yX2Zvcl9lbmNvZGVyKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ ZGV2OwogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVf ZW5jb2RlcihlbmNvZGVyKTsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsICpmb3VuZCA9IE5VTEw7CisJc3RydWN0IGRy bV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFt ZGdwdV9jb25uZWN0b3I7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+ bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3Rf aXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29u bmVjdG9yLCAmaXRlcikgewogCQlhbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rv cihjb25uZWN0b3IpOwotCQlpZiAoYW1kZ3B1X2VuY29kZXItPmFjdGl2ZV9kZXZpY2UgJiBhbWRn cHVfY29ubmVjdG9yLT5kZXZpY2VzKQotCQkJcmV0dXJuIGNvbm5lY3RvcjsKKwkJaWYgKGFtZGdw dV9lbmNvZGVyLT5hY3RpdmVfZGV2aWNlICYgYW1kZ3B1X2Nvbm5lY3Rvci0+ZGV2aWNlcykgewor CQkJZm91bmQgPSBjb25uZWN0b3I7CisJCQlicmVhazsKKwkJfQogCX0KLQlyZXR1cm4gTlVMTDsK Kwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOworCXJldHVybiBmb3VuZDsKIH0K IAogc3RydWN0IGRybV9jb25uZWN0b3IgKgpAQCAtOTUsMTUgKzEwNiwyMCBAQCBhbWRncHVfZ2V0 X2Nvbm5lY3Rvcl9mb3JfZW5jb2Rlcl9pbml0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikK IHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OwogCXN0cnVjdCBhbWRn cHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2RlcihlbmNvZGVyKTsK LQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsICpmb3VuZCA9IE5VTEw7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9p dGVyIGl0ZXI7CiAJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9jb25uZWN0b3I7CiAK LQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVj dG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZp dGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewog CQlhbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwotCQlp ZiAoYW1kZ3B1X2VuY29kZXItPmRldmljZXMgJiBhbWRncHVfY29ubmVjdG9yLT5kZXZpY2VzKQot CQkJcmV0dXJuIGNvbm5lY3RvcjsKKwkJaWYgKGFtZGdwdV9lbmNvZGVyLT5kZXZpY2VzICYgYW1k Z3B1X2Nvbm5lY3Rvci0+ZGV2aWNlcykgeworCQkJZm91bmQgPSBjb25uZWN0b3I7CisJCQlicmVh azsKKwkJfQogCX0KLQlyZXR1cm4gTlVMTDsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQo Jml0ZXIpOworCXJldHVybiBmb3VuZDsKIH0KIAogc3RydWN0IGRybV9lbmNvZGVyICphbWRncHVf Z2V0X2V4dGVybmFsX2VuY29kZXIoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jCmluZGV4IDJhM2Y1ZWMyOThkYi4uOTc3ZTEy MTIwNGU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJx LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jCkBAIC04Nywx MCArODcsMTMgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2hvdHBsdWdfd29ya19mdW5jKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYWRldi0+ZGRldjsK IAlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICptb2RlX2NvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmln OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0 b3JfbGlzdF9pdGVyIGl0ZXI7CiAKIAltdXRleF9sb2NrKCZtb2RlX2NvbmZpZy0+bXV0ZXgpOwot CWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmbW9kZV9jb25maWctPmNvbm5lY3Rvcl9s aXN0LCBoZWFkKQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOwor CWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKQogCQlhbWRncHVf Y29ubmVjdG9yX2hvdHBsdWcoY29ubmVjdG9yKTsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9l bmQoJml0ZXIpOwogCW11dGV4X3VubG9jaygmbW9kZV9jb25maWctPm11dGV4KTsKIAkvKiBKdXN0 IGZpcmUgb2ZmIGEgdWV2ZW50IGFuZCBsZXQgdXNlcnNwYWNlIHRlbGwgdXMgd2hhdCB0byBkbyAq LwogCWRybV9oZWxwZXJfaHBkX2lycV9ldmVudChkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdjEwXzAuYwppbmRleCAxZmZkMTk2M2U3NjUuLjk1NzMzNWQ0MWM1NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKQEAgLTMyNiw5ICszMjYsMTEgQEAgc3RhdGlj IHZvaWQgZGNlX3YxMF8wX2hwZF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBhZGV2LT5kZGV2OwogCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJ dTMyIHRtcDsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2Nv bmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2Jl Z2luKGRldiwgJml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3Is ICZpdGVyKSB7CiAJCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0g dG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCiAJCWlmIChhbWRncHVfY29ubmVjdG9y LT5ocGQuaHBkID49IGFkZXYtPm1vZGVfaW5mby5udW1faHBkKQpAQCAtMzY0LDYgKzM2Niw3IEBA IHN0YXRpYyB2b2lkIGRjZV92MTBfMF9ocGRfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIAkJYW1kZ3B1X2lycV9nZXQoYWRldiwgJmFkZXYtPmhwZF9pcnEsCiAJCQkgICAgICAgYW1k Z3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCk7CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2Vu ZCgmaXRlcik7CiB9CiAKIC8qKgpAQCAtMzc4LDkgKzM4MSwxMSBAQCBzdGF0aWMgdm9pZCBkY2Vf djEwXzBfaHBkX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGFkZXYtPmRkZXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAl1MzIgdG1wOwog Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5l Y3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAm aXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsK IAkJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRncHVf Y29ubmVjdG9yKGNvbm5lY3Rvcik7CiAKIAkJaWYgKGFtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGQg Pj0gYWRldi0+bW9kZV9pbmZvLm51bV9ocGQpCkBAIC0zOTMsNiArMzk4LDcgQEAgc3RhdGljIHZv aWQgZGNlX3YxMF8wX2hwZF9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlhbWRn cHVfaXJxX3B1dChhZGV2LCAmYWRldi0+aHBkX2lycSwKIAkJCSAgICAgICBhbWRncHVfY29ubmVj dG9yLT5ocGQuaHBkKTsKIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsK IH0KIAogc3RhdGljIHUzMiBkY2VfdjEwXzBfaHBkX2dldF9ncGlvX3JlZyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKQEAgLTEyMTUsMTAgKzEyMjEsMTIgQEAgc3RhdGljIHZvaWQgZGNlX3Yx MF8wX2FmbXRfYXVkaW9fc2VsZWN0X3BpbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiBz dGF0aWMgdm9pZCBkY2VfdjEwXzBfYXVkaW9fd3JpdGVfbGF0ZW5jeV9maWVsZHMoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUp CiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2 YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CisJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBhbWRncHVfZW5j b2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2RlcihlbmNvZGVyKTsKIAlzdHJ1 Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9kaWcgKmRpZyA9IGFtZGdwdV9lbmNvZGVyLT5lbmNfcHJp djsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVj dG9yX2xpc3RfaXRlciBpdGVyOwogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29u bmVjdG9yID0gTlVMTDsKIAl1MzIgdG1wOwogCWludCBpbnRlcmxhY2UgPSAwOwpAQCAtMTIyNiwx MiArMTIzNCwxNCBAQCBzdGF0aWMgdm9pZCBkY2VfdjEwXzBfYXVkaW9fd3JpdGVfbGF0ZW5jeV9m aWVsZHMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCWlmICghZGlnIHx8ICFkaWctPmFm bXQgfHwgIWRpZy0+YWZtdC0+cGluKQogCQlyZXR1cm47CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5 KGNvbm5lY3RvciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhl YWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1f Zm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlpZiAoY29ubmVj dG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKIAkJCWFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRn cHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCQlicmVhazsKIAkJfQogCX0KKwlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogCiAJaWYgKCFhbWRncHVfY29ubmVjdG9yKSB7CiAJ CURSTV9FUlJPUigiQ291bGRuJ3QgZmluZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKQEAgLTEy NTcsMTAgKzEyNjcsMTIgQEAgc3RhdGljIHZvaWQgZGNlX3YxMF8wX2F1ZGlvX3dyaXRlX2xhdGVu Y3lfZmllbGRzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAogc3RhdGljIHZvaWQgZGNl X3YxMF8wX2F1ZGlvX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpCiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBlbmNvZGVyLT5kZXYt PmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CisJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBh bWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2RlcihlbmNvZGVy KTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9kaWcgKmRpZyA9IGFtZGdwdV9lbmNvZGVy LT5lbmNfcHJpdjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBk cm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICph bWRncHVfY29ubmVjdG9yID0gTlVMTDsKIAl1MzIgdG1wOwogCXU4ICpzYWRiID0gTlVMTDsKQEAg LTEyNjksMTIgKzEyODEsMTQgQEAgc3RhdGljIHZvaWQgZGNlX3YxMF8wX2F1ZGlvX3dyaXRlX3Nw ZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIKIAlpZiAoIWRpZyB8 fCAhZGlnLT5hZm10IHx8ICFkaWctPmFmbXQtPnBpbikKIAkJcmV0dXJuOwogCi0JbGlzdF9mb3Jf ZWFjaF9lbnRyeShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rv cl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRl cik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJ aWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7CiAJCQlhbWRncHVfY29ubmVjdG9y ID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQkJYnJlYWs7CiAJCX0KIAl9CisJ ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCWlmICghYW1kZ3B1X2Nvbm5l Y3RvcikgewogCQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3Rvclxu Iik7CkBAIC0xMzA5LDEwICsxMzIzLDEyIEBAIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9hdWRpb193 cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyCiAKIHN0 YXRpYyB2b2lkIGRjZV92MTBfMF9hdWRpb193cml0ZV9zYWRfcmVncyhzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBlbmNvZGVyLT5k ZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7 CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVj dCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2RlcihlbmNv ZGVyKTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9kaWcgKmRpZyA9IGFtZGdwdV9lbmNv ZGVyLT5lbmNfcHJpdjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVj dCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9y ICphbWRncHVfY29ubmVjdG9yID0gTlVMTDsKIAlzdHJ1Y3QgY2VhX3NhZCAqc2FkczsKIAlpbnQg aSwgc2FkX2NvdW50OwpAQCAtMTMzNSwxMiArMTM1MSwxNCBAQCBzdGF0aWMgdm9pZCBkY2VfdjEw XzBfYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCWlm ICghZGlnIHx8ICFkaWctPmFmbXQgfHwgIWRpZy0+YWZtdC0+cGluKQogCQlyZXR1cm47CiAKLQls aXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25maWcu Y29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihk ZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRl cikgewogCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKIAkJCWFtZGdwdV9j b25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCQlicmVhazsKIAkJ fQogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogCiAJaWYgKCFhbWRn cHVfY29ubmVjdG9yKSB7CiAJCURSTV9FUlJPUigiQ291bGRuJ3QgZmluZCBlbmNvZGVyJ3MgY29u bmVjdG9yXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92 MTFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMKaW5kZXggOWUw NzgyYjU0MDY2Li5mZDdiMjlmMDM2MzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2RjZV92MTFfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92 MTFfMC5jCkBAIC0zNDQsOSArMzQ0LDExIEBAIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9ocGRfaW5p dChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gYWRldi0+ZGRldjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVj dCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXUzMiB0bXA7CiAKLQlsaXN0X2Zvcl9l YWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhl YWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1f Zm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlzdHJ1Y3QgYW1k Z3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25uZWN0b3IoY29u bmVjdG9yKTsKIAogCQlpZiAoYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCA+PSBhZGV2LT5tb2Rl X2luZm8ubnVtX2hwZCkKQEAgLTM4MSw2ICszODMsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBf aHBkX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWRjZV92MTFfMF9ocGRfc2V0 X3BvbGFyaXR5KGFkZXYsIGFtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGQpOwogCQlhbWRncHVfaXJx X2dldChhZGV2LCAmYWRldi0+aHBkX2lycSwgYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCk7CiAJ fQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiB9CiAKIC8qKgpAQCAtMzk1 LDkgKzM5OCwxMSBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfaHBkX2Zpbmkoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGFkZXYtPmRkZXY7 CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9saXN0X2l0ZXIgaXRlcjsKIAl1MzIgdG1wOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25u ZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nv bm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5l Y3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJc3RydWN0IGFtZGdwdV9jb25uZWN0b3Ig KmFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAKIAkJ aWYgKGFtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGQgPj0gYWRldi0+bW9kZV9pbmZvLm51bV9ocGQp CkBAIC00MDksNiArNDE0LDcgQEAgc3RhdGljIHZvaWQgZGNlX3YxMV8wX2hwZF9maW5pKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJCWFtZGdwdV9pcnFfcHV0KGFkZXYsICZhZGV2LT5o cGRfaXJxLCBhbWRncHVfY29ubmVjdG9yLT5ocGQuaHBkKTsKIAl9CisJZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXJfZW5kKCZpdGVyKTsKIH0KIAogc3RhdGljIHUzMiBkY2VfdjExXzBfaHBkX2dldF9n cGlvX3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKQEAgLTEyNDEsMTAgKzEyNDcsMTIg QEAgc3RhdGljIHZvaWQgZGNlX3YxMV8wX2FmbXRfYXVkaW9fc2VsZWN0X3BpbihzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCiBzdGF0aWMgdm9pZCBkY2VfdjExXzBfYXVkaW9fd3JpdGVfbGF0 ZW5jeV9maWVsZHMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUpCiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBl bmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNv ZGVyLT5kZXY7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRl OwogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5j b2RlcihlbmNvZGVyKTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9kaWcgKmRpZyA9IGFt ZGdwdV9lbmNvZGVyLT5lbmNfcHJpdjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y OworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0cnVjdCBhbWRncHVf Y29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gTlVMTDsKIAl1MzIgdG1wOwogCWludCBpbnRl cmxhY2UgPSAwOwpAQCAtMTI1MiwxMiArMTI2MCwxNCBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBf YXVkaW9fd3JpdGVfbGF0ZW5jeV9maWVsZHMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAog CWlmICghZGlnIHx8ICFkaWctPmFmbXQgfHwgIWRpZy0+YWZtdC0+cGluKQogCQlyZXR1cm47CiAK LQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25m aWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdp bihkZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAm aXRlcikgewogCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKIAkJCWFtZGdw dV9jb25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCQlicmVhazsK IAkJfQogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogCiAJaWYgKCFh bWRncHVfY29ubmVjdG9yKSB7CiAJCURSTV9FUlJPUigiQ291bGRuJ3QgZmluZCBlbmNvZGVyJ3Mg Y29ubmVjdG9yXG4iKTsKQEAgLTEyODMsMTAgKzEyOTMsMTIgQEAgc3RhdGljIHZvaWQgZGNlX3Yx MV8wX2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmllbGRzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwKIAogc3RhdGljIHZvaWQgZGNlX3YxMV8wX2F1ZGlvX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlv bihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5kZXY7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRl dl9wcml2YXRlOwogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19h bWRncHVfZW5jb2RlcihlbmNvZGVyKTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9kaWcg KmRpZyA9IGFtZGdwdV9lbmNvZGVyLT5lbmNfcHJpdjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0cnVj dCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gTlVMTDsKIAl1MzIgdG1wOwog CXU4ICpzYWRiID0gTlVMTDsKQEAgLTEyOTUsMTIgKzEzMDcsMTQgQEAgc3RhdGljIHZvaWQgZGNl X3YxMV8wX2F1ZGlvX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIKIAlpZiAoIWRpZyB8fCAhZGlnLT5hZm10IHx8ICFkaWctPmFmbXQtPnBpbikKIAkJ cmV0dXJuOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYt Pm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNv bm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7 CiAJCQlhbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwog CQkJYnJlYWs7CiAJCX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsK IAogCWlmICghYW1kZ3B1X2Nvbm5lY3RvcikgewogCQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQg ZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CkBAIC0xMzM1LDEwICsxMzQ5LDEyIEBAIHN0YXRpYyB2 b2lkIGRjZV92MTFfMF9hdWRpb193cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyCiAKIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9hdWRpb193cml0ZV9zYWRf cmVncyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBlbmNvZGVyLT5kZXY7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYt PmRldl9wcml2YXRlOwogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0 b19hbWRncHVfZW5jb2RlcihlbmNvZGVyKTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9k aWcgKmRpZyA9IGFtZGdwdV9lbmNvZGVyLT5lbmNfcHJpdjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0 cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gTlVMTDsKIAlzdHJ1Y3Qg Y2VhX3NhZCAqc2FkczsKIAlpbnQgaSwgc2FkX2NvdW50OwpAQCAtMTM2MSwxMiArMTM3NywxNCBA QCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQogCWlmICghZGlnIHx8ICFkaWctPmFmbXQgfHwgIWRpZy0+YWZtdC0+ cGluKQogCQlyZXR1cm47CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmVuY29k ZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9y X2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVu Y29kZXIpIHsKIAkJCWFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5l Y3Rvcik7CiAJCQlicmVhazsKIAkJfQogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQo Jml0ZXIpOwogCiAJaWYgKCFhbWRncHVfY29ubmVjdG9yKSB7CiAJCURSTV9FUlJPUigiQ291bGRu J3QgZmluZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9k Y2VfdjZfMC5jCmluZGV4IDRiZjQ1M2UwN2RjYS4uZjEzN2FjMWNmNTRlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMKQEAgLTI3Nyw5ICsyNzcsMTEgQEAgc3RhdGljIHZvaWQg ZGNlX3Y2XzBfaHBkX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGFkZXYtPmRkZXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAl1MzIgdG1w OwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNv bm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2 LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIp IHsKIAkJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRn cHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAKIAkJaWYgKGFtZGdwdV9jb25uZWN0b3ItPmhwZC5o cGQgPj0gYWRldi0+bW9kZV9pbmZvLm51bV9ocGQpCkBAIC0zMDUsNyArMzA3LDcgQEAgc3RhdGlj IHZvaWQgZGNlX3Y2XzBfaHBkX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWRj ZV92Nl8wX2hwZF9zZXRfcG9sYXJpdHkoYWRldiwgYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCk7 CiAJCWFtZGdwdV9pcnFfZ2V0KGFkZXYsICZhZGV2LT5ocGRfaXJxLCBhbWRncHVfY29ubmVjdG9y LT5ocGQuaHBkKTsKIAl9Ci0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwog fQogCiAvKioKQEAgLTMyMCw5ICszMjIsMTEgQEAgc3RhdGljIHZvaWQgZGNlX3Y2XzBfaHBkX2Zp bmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGFkZXYtPmRkZXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAl1MzIgdG1wOwogCi0JbGlzdF9mb3Jf ZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBo ZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJt X2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJc3RydWN0IGFt ZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNv bm5lY3Rvcik7CiAKIAkJaWYgKGFtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGQgPj0gYWRldi0+bW9k ZV9pbmZvLm51bV9ocGQpCkBAIC0zMzQsNiArMzM4LDcgQEAgc3RhdGljIHZvaWQgZGNlX3Y2XzBf aHBkX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIAkJYW1kZ3B1X2lycV9wdXQo YWRldiwgJmFkZXYtPmhwZF9pcnEsIGFtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGQpOwogCX0KKwlk cm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogfQogCiBzdGF0aWMgdTMyIGRjZV92 Nl8wX2hwZF9nZXRfZ3Bpb19yZWcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCkBAIC0xMTIw LDIwICsxMTI1LDI0IEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2F1ZGlvX3NlbGVjdF9waW4oc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogc3RhdGljIHZvaWQgZGNlX3Y2XzBfYXVkaW9fd3Jp dGVfbGF0ZW5jeV9maWVsZHMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBlbmNvZGVyLT5kZXY7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9w cml2YXRlOwogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRn cHVfZW5jb2RlcihlbmNvZGVyKTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9kaWcgKmRp ZyA9IGFtZGdwdV9lbmNvZGVyLT5lbmNfcHJpdjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0cnVjdCBh bWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gTlVMTDsKIAlpbnQgaW50ZXJsYWNl ID0gMDsKIAl1MzIgdG1wOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZlbmNv ZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rv cl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBl bmNvZGVyKSB7CiAJCQlhbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25u ZWN0b3IpOwogCQkJYnJlYWs7CiAJCX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5k KCZpdGVyKTsKIAogCWlmICghYW1kZ3B1X2Nvbm5lY3RvcikgewogCQlEUk1fRVJST1IoIkNvdWxk bid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CkBAIC0xMTYwLDIxICsxMTY5LDI1IEBA IHN0YXRpYyB2b2lkIGRjZV92Nl8wX2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmllbGRzKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciwKIAogc3RhdGljIHZvaWQgZGNlX3Y2XzBfYXVkaW9fd3JpdGVf c3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGVuY29kZXItPmRldi0+ZGV2X3ByaXZhdGU7CisJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKKwlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyICphbWRn cHVfZW5jb2RlciA9IHRvX2FtZGdwdV9lbmNvZGVyKGVuY29kZXIpOwogCXN0cnVjdCBhbWRncHVf ZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gYW1kZ3B1X2VuY29kZXItPmVuY19wcml2OwogCXN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9p dGVyIGl0ZXI7CiAJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9jb25uZWN0b3IgPSBO VUxMOwogCXU4ICpzYWRiID0gTlVMTDsKIAlpbnQgc2FkX2NvdW50OwogCXUzMiB0bXA7CiAKLQls aXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25maWcu Y29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihk ZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRl cikgewogCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKIAkJCWFtZGdwdV9j b25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCQlicmVhazsKIAkJ fQogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogCiAJaWYgKCFhbWRn cHVfY29ubmVjdG9yKSB7CiAJCURSTV9FUlJPUigiQ291bGRuJ3QgZmluZCBlbmNvZGVyJ3MgY29u bmVjdG9yXG4iKTsKQEAgLTEyMTcsMTAgKzEyMzAsMTIgQEAgc3RhdGljIHZvaWQgZGNlX3Y2XzBf YXVkaW9fd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKIAogc3RhdGljIHZvaWQgZGNlX3Y2XzBfYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZW5j b2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rl ci0+ZGV2OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29k ZXIoZW5jb2Rlcik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRn cHVfZW5jb2Rlci0+ZW5jX3ByaXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsK KwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nv bm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IE5VTEw7CiAJc3RydWN0IGNlYV9zYWQgKnNhZHM7 CiAJaW50IGksIHNhZF9jb3VudDsKQEAgLTEyNDAsMTIgKzEyNTUsMTQgQEAgc3RhdGljIHZvaWQg ZGNlX3Y2XzBfYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy KQogCQl7IGl4QVpBTElBX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMywg SERNSV9BVURJT19DT0RJTkdfVFlQRV9XTUFfUFJPIH0sCiAJfTsKIAotCWxpc3RfZm9yX2VhY2hf ZW50cnkoY29ubmVjdG9yLCAmZW5jb2Rlci0+ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlz dCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOwor CWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7CiAJCWlmIChj b25uZWN0b3ItPmVuY29kZXIgPT0gZW5jb2RlcikgewogCQkJYW1kZ3B1X2Nvbm5lY3RvciA9IHRv X2FtZGdwdV9jb25uZWN0b3IoY29ubmVjdG9yKTsKIAkJCWJyZWFrOwogCQl9CiAJfQorCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiAKIAlpZiAoIWFtZGdwdV9jb25uZWN0b3Ip IHsKIAkJRFJNX0VSUk9SKCJDb3VsZG4ndCBmaW5kIGVuY29kZXIncyBjb25uZWN0b3JcbiIpOwpA QCAtMTYyOCw2ICsxNjQ1LDcgQEAgc3RhdGljIHZvaWQgZGNlX3Y2XzBfYWZtdF9zZXRtb2RlKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdw dV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7CiAJc3RydWN0IGFtZGdwdV9l bmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7CiAJc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0 ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IE5V TEw7CiAJaW50IGVtID0gYW1kZ3B1X2F0b21iaW9zX2VuY29kZXJfZ2V0X2VuY29kZXJfbW9kZShl bmNvZGVyKTsKIAlpbnQgYnBjID0gODsKQEAgLTE2MzUsMTIgKzE2NTMsMTQgQEAgc3RhdGljIHZv aWQgZGNlX3Y2XzBfYWZtdF9zZXRtb2RlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAlp ZiAoIWRpZyB8fCAhZGlnLT5hZm10KQogCQlyZXR1cm47CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5 KGNvbm5lY3RvciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhl YWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1f Zm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlpZiAoY29ubmVj dG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKIAkJCWFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRn cHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCQlicmVhazsKIAkJfQogCX0KKwlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogCiAJaWYgKCFhbWRncHVfY29ubmVjdG9yKSB7CiAJ CURSTV9FUlJPUigiQ291bGRuJ3QgZmluZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCmluZGV4IGIyMzQxOGNhOGY2YS4uYzk3NTU4ZTAz MzkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKQEAgLTI3MSw5ICsyNzEs MTEgQEAgc3RhdGljIHZvaWQgZGNlX3Y4XzBfaHBkX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGFkZXYtPmRkZXY7CiAJc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0 ZXIgaXRlcjsKIAl1MzIgdG1wOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZk ZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVy KGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9j b25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAKIAkJaWYgKGFtZGdw dV9jb25uZWN0b3ItPmhwZC5ocGQgPj0gYWRldi0+bW9kZV9pbmZvLm51bV9ocGQpCkBAIC0yOTks NiArMzAxLDcgQEAgc3RhdGljIHZvaWQgZGNlX3Y4XzBfaHBkX2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJCWRjZV92OF8wX2hwZF9zZXRfcG9sYXJpdHkoYWRldiwgYW1kZ3B1X2Nv bm5lY3Rvci0+aHBkLmhwZCk7CiAJCWFtZGdwdV9pcnFfZ2V0KGFkZXYsICZhZGV2LT5ocGRfaXJx LCBhbWRncHVfY29ubmVjdG9yLT5ocGQuaHBkKTsKIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0 ZXJfZW5kKCZpdGVyKTsKIH0KIAogLyoqCkBAIC0zMTMsOSArMzE2LDExIEBAIHN0YXRpYyB2b2lk IGRjZV92OF8wX2hwZF9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBhZGV2LT5kZGV2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJdTMyIHRt cDsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5j b25uZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRl diwgJml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVy KSB7CiAJCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gdG9fYW1k Z3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCiAJCWlmIChhbWRncHVfY29ubmVjdG9yLT5ocGQu aHBkID49IGFkZXYtPm1vZGVfaW5mby5udW1faHBkKQpAQCAtMzI3LDYgKzMzMiw3IEBAIHN0YXRp YyB2b2lkIGRjZV92OF8wX2hwZF9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJ CWFtZGdwdV9pcnFfcHV0KGFkZXYsICZhZGV2LT5ocGRfaXJxLCBhbWRncHVfY29ubmVjdG9yLT5o cGQuaHBkKTsKIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIH0KIAog c3RhdGljIHUzMiBkY2VfdjhfMF9ocGRfZ2V0X2dwaW9fcmVnKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQpAQCAtMTE1MywxMCArMTE1OSwxMiBAQCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9hZm10 X2F1ZGlvX3NlbGVjdF9waW4oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogc3RhdGljIHZv aWQgZGNlX3Y4XzBfYXVkaW9fd3JpdGVfbGF0ZW5jeV9maWVsZHMoc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyLAogCQkJCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCiB7Ci0Jc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOworCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CisJc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1k Z3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2RlcihlbmNvZGVyKTsKIAlzdHJ1Y3QgYW1kZ3B1 X2VuY29kZXJfYXRvbV9kaWcgKmRpZyA9IGFtZGdwdV9lbmNvZGVyLT5lbmNfcHJpdjsKIAlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3Rf aXRlciBpdGVyOwogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0g TlVMTDsKIAl1MzIgdG1wID0gMCwgb2Zmc2V0OwogCkBAIC0xMTY1LDEyICsxMTczLDE0IEBAIHN0 YXRpYyB2b2lkIGRjZV92OF8wX2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmllbGRzKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKIAogCW9mZnNldCA9IGRpZy0+YWZtdC0+cGluLT5vZmZzZXQ7CiAK LQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25m aWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdp bihkZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAm aXRlcikgewogCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKIAkJCWFtZGdw dV9jb25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCQlicmVhazsK IAkJfQogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogCiAJaWYgKCFh bWRncHVfY29ubmVjdG9yKSB7CiAJCURSTV9FUlJPUigiQ291bGRuJ3QgZmluZCBlbmNvZGVyJ3Mg Y29ubmVjdG9yXG4iKTsKQEAgLTEyMTAsMTAgKzEyMjAsMTIgQEAgc3RhdGljIHZvaWQgZGNlX3Y4 XzBfYXVkaW9fd3JpdGVfbGF0ZW5jeV9maWVsZHMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAogCiBzdGF0aWMgdm9pZCBkY2VfdjhfMF9hdWRpb193cml0ZV9zcGVha2VyX2FsbG9jYXRpb24o c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZW5jb2Rlci0+ZGV2OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1k Z3B1X2VuY29kZXIoZW5jb2Rlcik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnICpk aWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3Qg YW1kZ3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IE5VTEw7CiAJdTMyIG9mZnNldCwg dG1wOwogCXU4ICpzYWRiID0gTlVMTDsKQEAgLTEyMjQsMTIgKzEyMzYsMTQgQEAgc3RhdGljIHZv aWQgZGNlX3Y4XzBfYXVkaW9fd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcikKIAogCW9mZnNldCA9IGRpZy0+YWZtdC0+cGluLT5vZmZzZXQ7CiAKLQls aXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25maWcu Y29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihk ZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRl cikgewogCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKIAkJCWFtZGdwdV9j b25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCQlicmVhazsKIAkJ fQogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogCiAJaWYgKCFhbWRn cHVfY29ubmVjdG9yKSB7CiAJCURSTV9FUlJPUigiQ291bGRuJ3QgZmluZCBlbmNvZGVyJ3MgY29u bmVjdG9yXG4iKTsKQEAgLTEyNTksMTEgKzEyNzMsMTMgQEAgc3RhdGljIHZvaWQgZGNlX3Y4XzBf YXVkaW9fd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKIAogc3RhdGljIHZvaWQgZGNlX3Y4XzBfYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZW5j b2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rl ci0+ZGV2OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29k ZXIoZW5jb2Rlcik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRn cHVfZW5jb2Rlci0+ZW5jX3ByaXY7CiAJdTMyIG9mZnNldDsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0 cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gTlVMTDsKIAlzdHJ1Y3Qg Y2VhX3NhZCAqc2FkczsKIAlpbnQgaSwgc2FkX2NvdW50OwpAQCAtMTI4OCwxMiArMTMwNCwxNCBA QCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9hdWRpb193cml0ZV9zYWRfcmVncyhzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCiAKIAlvZmZzZXQgPSBkaWctPmFmbXQtPnBpbi0+b2Zmc2V0OwogCi0J bGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29uZmln LmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4o ZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0 ZXIpIHsKIAkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7CiAJCQlhbWRncHVf Y29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQkJYnJlYWs7CiAJ CX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCWlmICghYW1k Z3B1X2Nvbm5lY3RvcikgewogCQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNv bm5lY3RvclxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1k Z3B1X2RtL2FtZGdwdV9kbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9k bS9hbWRncHVfZG0uYwppbmRleCAwMjQyZDY5M2Y0ZjYuLjBlZjQ5ZGIwZjA4ZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCkBAIC03 NTIsMjcgKzc1MiwyOSBAQCBzdGF0aWMgaW50IGRldGVjdF9tc3RfbGlua19mb3JfYWxsX2Nvbm5l Y3RvcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5l Y3RvciAqYWNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0 cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCWludCByZXQgPSAwOwogCi0JZHJt X21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsK LQotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25u ZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwg Jml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7 CiAJCWFjb25uZWN0b3IgPSB0b19hbWRncHVfZG1fY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCWlm IChhY29ubmVjdG9yLT5kY19saW5rLT50eXBlID09IGRjX2Nvbm5lY3Rpb25fbXN0X2JyYW5jaCAm JgogCQkgICAgYWNvbm5lY3Rvci0+bXN0X21nci5hdXgpIHsKIAkJCURSTV9ERUJVR19EUklWRVIo IkRNX01TVDogc3RhcnRpbmcgVE0gb24gYWNvbm5lY3RvcjogJXAgW2lkOiAlZF1cbiIsCi0JCQkJ CWFjb25uZWN0b3IsIGFjb25uZWN0b3ItPmJhc2UuYmFzZS5pZCk7CisJCQkJCSBhY29ubmVjdG9y LAorCQkJCQkgYWNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkKTsKIAogCQkJcmV0ID0gZHJtX2RwX21z dF90b3BvbG9neV9tZ3Jfc2V0X21zdCgmYWNvbm5lY3Rvci0+bXN0X21nciwgdHJ1ZSk7CiAJCQlp ZiAocmV0IDwgMCkgewogCQkJCURSTV9FUlJPUigiRE1fTVNUOiBGYWlsZWQgdG8gc3RhcnQgTVNU XG4iKTsKLQkJCQkoKHN0cnVjdCBkY19saW5rICopYWNvbm5lY3Rvci0+ZGNfbGluayktPnR5cGUg PSBkY19jb25uZWN0aW9uX3NpbmdsZTsKLQkJCQlyZXR1cm4gcmV0OwotCQkJCX0KKwkJCQlhY29u bmVjdG9yLT5kY19saW5rLT50eXBlID0KKwkJCQkJZGNfY29ubmVjdGlvbl9zaW5nbGU7CisJCQkJ YnJlYWs7CiAJCQl9CisJCX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVy KTsKIAotCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211 dGV4KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC04MTAsMTQgKzgxMiwxMyBAQCBzdGF0aWMgdm9p ZCBzM19oYW5kbGVfbXN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgc3VzcGVuZCkKIHsK IAlzdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5lY3RvciAqYWNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVy OwogCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyOwogCWludCByZXQ7CiAJYm9v bCBuZWVkX2hvdHBsdWcgPSBmYWxzZTsKIAotCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9j b25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNv bm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsCi0JCQkgICAgaGVhZCkg eworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCWRybV9mb3Jf ZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7CiAJCWFjb25uZWN0b3IgPSB0 b19hbWRncHVfZG1fY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCWlmIChhY29ubmVjdG9yLT5kY19s aW5rLT50eXBlICE9IGRjX2Nvbm5lY3Rpb25fbXN0X2JyYW5jaCB8fAogCQkgICAgYWNvbm5lY3Rv ci0+bXN0X3BvcnQpCkBAIC04MzUsOCArODM2LDcgQEAgc3RhdGljIHZvaWQgczNfaGFuZGxlX21z dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHN1c3BlbmQpCiAJCQl9CiAJCX0KIAl9Ci0K LQlkcm1fbW9kZXNldF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCk7 CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCWlmIChuZWVkX2hvdHBs dWcpCiAJCWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoZGV2KTsKQEAgLTEwMTgsNiArMTAx OCw3IEBAIHN0YXRpYyBpbnQgZG1fcmVzdW1lKHZvaWQgKmhhbmRsZSkKIAlzdHJ1Y3QgYW1kZ3B1 X2Rpc3BsYXlfbWFuYWdlciAqZG0gPSAmYWRldi0+ZG07CiAJc3RydWN0IGFtZGdwdV9kbV9jb25u ZWN0b3IgKmFjb25uZWN0b3I7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNy dGM7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKIAlzdHJ1Y3QgZG1f Y3J0Y19zdGF0ZSAqZG1fbmV3X2NydGNfc3RhdGU7CkBAIC0xMDUwLDcgKzEwNTEsOCBAQCBzdGF0 aWMgaW50IGRtX3Jlc3VtZSh2b2lkICpoYW5kbGUpCiAJYW1kZ3B1X2RtX2lycV9yZXN1bWVfZWFy bHkoYWRldik7CiAKIAkvKiBEbyBkZXRlY3Rpb24qLwotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29u bmVjdG9yLCAmZGRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1f Y29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nv bm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJYWNvbm5lY3RvciA9IHRvX2FtZGdw dV9kbV9jb25uZWN0b3IoY29ubmVjdG9yKTsKIAogCQkvKgpAQCAtMTA3OCw2ICsxMDgwLDcgQEAg c3RhdGljIGludCBkbV9yZXN1bWUodm9pZCAqaGFuZGxlKQogCQlhbWRncHVfZG1fdXBkYXRlX2Nv bm5lY3Rvcl9hZnRlcl9kZXRlY3QoYWNvbm5lY3Rvcik7CiAJCW11dGV4X3VubG9jaygmYWNvbm5l Y3Rvci0+aHBkX2xvY2spOwogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIp OwogCiAJLyogRm9yY2UgbW9kZSBzZXQgaW4gYXRvbWljIGNvbW1pdCAqLwogCWZvcl9lYWNoX25l d19jcnRjX2luX3N0YXRlKGRtLT5jYWNoZWRfc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBp KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRn cHVfZG1faXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdw dV9kbV9pcnEuYwppbmRleCBmYTVkNTAzZDM3OWMuLjY0NDQ1YzRjYzRjMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1faXJxLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1faXJxLmMK QEAgLTczMiw4ICs3MzIsMTAgQEAgdm9pZCBhbWRncHVfZG1faHBkX2luaXQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGFkZXYtPmRkZXY7 CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9saXN0X2l0ZXIgaXRlcjsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2 LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlz dF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihj b25uZWN0b3IsICZpdGVyKSB7CiAJCXN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphbWRncHVf ZG1fY29ubmVjdG9yID0KIAkJCQl0b19hbWRncHVfZG1fY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAK QEAgLTc1MSw2ICs3NTMsNyBAQCB2b2lkIGFtZGdwdV9kbV9ocGRfaW5pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAkJCQkJdHJ1ZSk7CiAJCX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXJfZW5kKCZpdGVyKTsKIH0KIAogLyoqCkBAIC03NjUsOCArNzY4LDEwIEBAIHZvaWQgYW1k Z3B1X2RtX2hwZF9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBhZGV2LT5kZGV2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAKLQlsaXN0X2Zv cl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3Qs IGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlk cm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlzdHJ1Y3Qg YW1kZ3B1X2RtX2Nvbm5lY3RvciAqYW1kZ3B1X2RtX2Nvbm5lY3RvciA9CiAJCQkJdG9fYW1kZ3B1 X2RtX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQljb25zdCBzdHJ1Y3QgZGNfbGluayAqZGNfbGlu ayA9IGFtZGdwdV9kbV9jb25uZWN0b3ItPmRjX2xpbms7CkBAIC03NzksNCArNzg0LDUgQEAgdm9p ZCBhbWRncHVfZG1faHBkX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQkJCWZh bHNlKTsKIAkJfQogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogfQot LSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=