From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH v5 11/14] drm/amdgpu: Iterate through DRM connectors correctly Date: Mon, 21 Oct 2019 22:36:06 -0400 Message-ID: <20191022023641.8026-12-lyude@redhat.com> References: <20191022023641.8026-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0DF286E388 for ; Tue, 22 Oct 2019 02:41:26 +0000 (UTC) In-Reply-To: <20191022023641.8026-1-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: Neil Armstrong , David Airlie , Daniel Vetter , Tao Zhou , Huang Rui , Laurent Pinchart , Sam Ravnborg , Markus Elfring , "David (ChunMing) Zhou" , Yu Zhao , David Francis , Jani Nikula , Thierry Reding , Harry Wentland , Andrey Grodzovsky , Leo Li , Emily Deng , Russell King , Harry Wentland , Monk Liu , Xiaojie Yuan , Felix Kuehling , xinhui pan , =?UTF-8?q?Mi List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5LCBldmVyeSBzaW5nbGUgcGllY2Ugb2YgY29kZSBpbiBhbWRncHUgdGhhdCBsb29w cyB0aHJvdWdoCmNvbm5lY3RvcnMgZG9lcyBpdCBpbmNvcnJlY3RseSBhbmQgZG9lc24ndCB1c2Ug dGhlIHByb3BlciBsaXN0IGl0ZXJhdGlvbgpoZWxwZXJzLCBkcm1fY29ubmVjdG9yX2xpc3RfaXRl cl9iZWdpbigpIGFuZApkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoKS4gWWVlc2guCgpTbywg ZG8gdGhhdC4KCkNjOiBKdXN0b24gTGkgPGp1c3Rvbi5saUBpbnRlbC5jb20+CkNjOiBJbXJlIERl YWsgPGltcmUuZGVha0BpbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgpDYzogSGFycnkgV2VudGxhbmQgPGh3ZW50bGFuQGFtZC5jb20+ CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpTaWduZWQtb2ZmLWJ5 OiBMeXVkZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogQWxleCBEZXVjaGVy IDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgotLS0KIC4uLi9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2Nvbm5lY3RvcnMuYyAgICB8IDEzICsrKysrLQogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2RldmljZS5jICAgIHwgMjAgKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYyAgIHwgIDUgKystCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZW5jb2RlcnMuYyAgfCA0MCArKysrKysrKysrKysrLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmMgICAgICAgfCAgNSArKy0KIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jICAgICAgICB8IDM0ICsrKysrKysr KysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jICAgICAgICB8 IDM0ICsrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8w LmMgICAgICAgICB8IDQwICsrKysrKysrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2RjZV92OF8wLmMgICAgICAgICB8IDM0ICsrKysrKysrKysrKy0tLS0KIC4uLi9ncHUv ZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyB8IDMzICsrKysrKysrLS0tLS0t LQogLi4uL2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX2lycS5jIHwgMTAgKysr Ky0KIDExIGZpbGVzIGNoYW5nZWQsIDE5NSBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9y cy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYwppbmRl eCBkODcyOTI4NWY3MzEuLmE2MmNiYzgxOTlkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5jCkBAIC0xMDE5LDggKzEwMTksMTIgQEAgYW1kZ3B1 X2Nvbm5lY3Rvcl9kdmlfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJv b2wgZm9yY2UpCiAJCQkgKi8KIAkJCWlmIChhbWRncHVfY29ubmVjdG9yLT5zaGFyZWRfZGRjICYm IChyZXQgPT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQpKSB7CiAJCQkJc3RydWN0IGRybV9j b25uZWN0b3IgKmxpc3RfY29ubmVjdG9yOworCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3Rf aXRlciBpdGVyOwogCQkJCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICpsaXN0X2FtZGdwdV9jb25u ZWN0b3I7Ci0JCQkJbGlzdF9mb3JfZWFjaF9lbnRyeShsaXN0X2Nvbm5lY3RvciwgJmRldi0+bW9k ZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKworCQkJCWRybV9jb25uZWN0b3JfbGlz dF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCQkJCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRl cihsaXN0X2Nvbm5lY3RvciwKKwkJCQkJCQkgICAgJml0ZXIpIHsKIAkJCQkJaWYgKGNvbm5lY3Rv ciA9PSBsaXN0X2Nvbm5lY3RvcikKIAkJCQkJCWNvbnRpbnVlOwogCQkJCQlsaXN0X2FtZGdwdV9j b25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGxpc3RfY29ubmVjdG9yKTsKQEAgLTEwMzcs NiArMTA0MSw3IEBAIGFtZGdwdV9jb25uZWN0b3JfZHZpX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQogCQkJCQkJfQogCQkJCQl9CiAJCQkJfQorCQkJ CWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiAJCQl9CiAJCX0KIAl9CkBAIC0x NDk0LDYgKzE0OTksNyBAQCBhbWRncHVfY29ubmVjdG9yX2FkZChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYWRldi0+ZGRldjsKIAlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3Rf aXRlciBpdGVyOwogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yOwog CXN0cnVjdCBhbWRncHVfY29ubmVjdG9yX2F0b21fZGlnICphbWRncHVfZGlnX2Nvbm5lY3RvcjsK IAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CkBAIC0xNTA4LDEwICsxNTE0LDEyIEBAIGFt ZGdwdV9jb25uZWN0b3JfYWRkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlyZXR1cm47 CiAKIAkvKiBzZWUgaWYgd2UgYWxyZWFkeSBhZGRlZCBpdCAqLwotCWxpc3RfZm9yX2VhY2hfZW50 cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgewor CWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCWRybV9mb3JfZWFj aF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7CiAJCWFtZGdwdV9jb25uZWN0b3Ig PSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCWlmIChhbWRncHVfY29ubmVjdG9y LT5jb25uZWN0b3JfaWQgPT0gY29ubmVjdG9yX2lkKSB7CiAJCQlhbWRncHVfY29ubmVjdG9yLT5k ZXZpY2VzIHw9IHN1cHBvcnRlZF9kZXZpY2U7CisJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9l bmQoJml0ZXIpOwogCQkJcmV0dXJuOwogCQl9CiAJCWlmIChhbWRncHVfY29ubmVjdG9yLT5kZGNf YnVzICYmIGkyY19idXMtPnZhbGlkKSB7CkBAIC0xNTI2LDYgKzE1MzQsNyBAQCBhbWRncHVfY29u bmVjdG9yX2FkZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCX0KIAkJfQogCX0KKwlk cm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogCiAJLyogY2hlY2sgaWYgaXQncyBh IGRwIGJyaWRnZSAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5jb2RlciwgJmRldi0+bW9kZV9j b25maWcuZW5jb2Rlcl9saXN0LCBoZWFkKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZGV2aWNlLmMKaW5kZXggNWExOTM5ZGJkNGUzLi5jZmYxNmY1NTRmMmUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKQEAgLTMwMDcsNiArMzAwNyw3 IEBAIGludCBhbWRncHVfZGV2aWNlX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9v bCBzdXNwZW5kLCBib29sIGZiY29uKQogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2OwogCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwor CXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCWludCByOwogCiAJaWYgKGRl diA9PSBOVUxMIHx8IGRldi0+ZGV2X3ByaXZhdGUgPT0gTlVMTCkgewpAQCAtMzAyOSw5ICszMDMw LDExIEBAIGludCBhbWRncHVfZGV2aWNlX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg Ym9vbCBzdXNwZW5kLCBib29sIGZiY29uKQogCWlmICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3Vw cG9ydChhZGV2KSkgewogCQkvKiB0dXJuIG9mZiBkaXNwbGF5IGh3ICovCiAJCWRybV9tb2Rlc2V0 X2xvY2tfYWxsKGRldik7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5t b2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgewotCQkJZHJtX2hlbHBlcl9jb25uZWN0 b3JfZHBtcyhjb25uZWN0b3IsIERSTV9NT0RFX0RQTVNfT0ZGKTsKLQkJfQorCQlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwkJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rv cl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpCisJCQlkcm1faGVscGVyX2Nvbm5lY3Rvcl9kcG1zKGNv bm5lY3RvciwKKwkJCQkJCSAgRFJNX01PREVfRFBNU19PRkYpOworCQlkcm1fY29ubmVjdG9yX2xp c3RfaXRlcl9lbmQoJml0ZXIpOwogCQlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7CiAJCQkv KiB1bnBpbiB0aGUgZnJvbnQgYnVmZmVycyBhbmQgY3Vyc29ycyAqLwogCQlsaXN0X2Zvcl9lYWNo X2VudHJ5KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgewpAQCAtMzEx MCw2ICszMTEzLDcgQEAgaW50IGFtZGdwdV9kZXZpY2Vfc3VzcGVuZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBib29sIHN1c3BlbmQsIGJvb2wgZmJjb24pCiBpbnQgYW1kZ3B1X2RldmljZV9yZXN1 bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCByZXN1bWUsIGJvb2wgZmJjb24pCiB7CiAJ c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3By aXZhdGU7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCWludCByID0gMDsKQEAgLTMxODAsOSAr MzE4NCwxMyBAQCBpbnQgYW1kZ3B1X2RldmljZV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgYm9vbCByZXN1bWUsIGJvb2wgZmJjb24pCiAKIAkJCS8qIHR1cm4gb24gZGlzcGxheSBodyAq LwogCQkJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKLQkJCWxpc3RfZm9yX2VhY2hfZW50cnko Y29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgewotCQkJ CWRybV9oZWxwZXJfY29ubmVjdG9yX2RwbXMoY29ubmVjdG9yLCBEUk1fTU9ERV9EUE1TX09OKTsK LQkJCX0KKworCQkJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJ CQlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikKKwkJCQlkcm1f aGVscGVyX2Nvbm5lY3Rvcl9kcG1zKGNvbm5lY3RvciwKKwkJCQkJCQkgIERSTV9NT0RFX0RQTVNf T04pOworCQkJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKKwogCQkJZHJtX21v ZGVzZXRfdW5sb2NrX2FsbChkZXYpOwogCQl9CiAJCWFtZGdwdV9mYmRldl9zZXRfc3VzcGVuZChh ZGV2LCAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jCmlu ZGV4IDFkNGFhYTk1ODBmNC4uZDJkZDU5YTk1ZThhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKQEAgLTM3MCwxMSArMzcwLDEzIEBAIHZvaWQgYW1kZ3B1 X2Rpc3BsYXlfcHJpbnRfZGlzcGxheV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0 cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyOwor CXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXVpbnQzMl90IGRldmljZXM7 CiAJaW50IGkgPSAwOwogCisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRl cik7CiAJRFJNX0lORk8oIkFNREdQVSBEaXNwbGF5IENvbm5lY3RvcnNcbiIpOwotCWxpc3RfZm9y X2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwg aGVhZCkgeworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7 CiAJCWFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJ CURSTV9JTkZPKCJDb25uZWN0b3IgJWQ6XG4iLCBpKTsKIAkJRFJNX0lORk8oIiAgJXNcbiIsIGNv bm5lY3Rvci0+bmFtZSk7CkBAIC00MzgsNiArNDQwLDcgQEAgdm9pZCBhbWRncHVfZGlzcGxheV9w cmludF9kaXNwbGF5X3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCX0KIAkJaSsrOwog CX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogfQogCiAvKioKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9lbmNvZGVycy5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2VuY29kZXJzLmMKaW5kZXggNTcxYTZkZmI0 NzNlLi42MWZjZjI0N2E2MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9lbmNvZGVycy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9lbmNvZGVycy5jCkBAIC0zNywxMiArMzcsMTQgQEAgYW1kZ3B1X2xpbmtfZW5jb2Rlcl9jb25u ZWN0b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1 X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXI7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyICphbWRncHVfZW5jb2RlcjsKIAorCWRybV9jb25u ZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOwogCS8qIHdhbGsgdGhlIGxpc3QgYW5k IGxpbmsgZW5jb2RlcnMgdG8gY29ubmVjdG9ycyAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29u bmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9m b3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7CiAJCWFtZGdwdV9jb25u ZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJCWxpc3RfZm9yX2VhY2hf ZW50cnkoZW5jb2RlciwgJmRldi0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LCBoZWFkKSB7CiAJ CQlhbWRncHVfZW5jb2RlciA9IHRvX2FtZGdwdV9lbmNvZGVyKGVuY29kZXIpOwpAQCAtNTUsNiAr NTcsNyBAQCBhbWRncHVfbGlua19lbmNvZGVyX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCQkJfQogCQl9CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7 CiB9CiAKIHZvaWQgYW1kZ3B1X2VuY29kZXJfc2V0X2FjdGl2ZV9kZXZpY2Uoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQpAQCAtNjIsOCArNjUsMTAgQEAgdm9pZCBhbWRncHVfZW5jb2Rlcl9z ZXRfYWN0aXZlX2RldmljZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFt ZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7CiAJc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRl cjsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5j b25uZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRl diwgJml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVy KSB7CiAJCWlmIChjb25uZWN0b3ItPmVuY29kZXIgPT0gZW5jb2RlcikgewogCQkJc3RydWN0IGFt ZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNv bm5lY3Rvcik7CiAJCQlhbWRncHVfZW5jb2Rlci0+YWN0aXZlX2RldmljZSA9IGFtZGdwdV9lbmNv ZGVyLT5kZXZpY2VzICYgYW1kZ3B1X2Nvbm5lY3Rvci0+ZGV2aWNlczsKQEAgLTcyLDYgKzc3LDcg QEAgdm9pZCBhbWRncHVfZW5jb2Rlcl9zZXRfYWN0aXZlX2RldmljZShzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpCiAJCQkJICBhbWRncHVfY29ubmVjdG9yLT5kZXZpY2VzLCBlbmNvZGVyLT5l bmNvZGVyX3R5cGUpOwogCQl9CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRl cik7CiB9CiAKIHN0cnVjdCBkcm1fY29ubmVjdG9yICoKQEAgLTc5LDE1ICs4NSwyMCBAQCBhbWRn cHVfZ2V0X2Nvbm5lY3Rvcl9mb3JfZW5jb2RlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIp CiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKIAlzdHJ1Y3QgYW1k Z3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7 Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLCAqZm91bmQgPSBOVUxMOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3Rf aXRlciBpdGVyOwogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yOwog Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5l Y3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAm aXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsK IAkJYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25uZWN0b3IoY29ubmVjdG9yKTsKLQkJ aWYgKGFtZGdwdV9lbmNvZGVyLT5hY3RpdmVfZGV2aWNlICYgYW1kZ3B1X2Nvbm5lY3Rvci0+ZGV2 aWNlcykKLQkJCXJldHVybiBjb25uZWN0b3I7CisJCWlmIChhbWRncHVfZW5jb2Rlci0+YWN0aXZl X2RldmljZSAmIGFtZGdwdV9jb25uZWN0b3ItPmRldmljZXMpIHsKKwkJCWZvdW5kID0gY29ubmVj dG9yOworCQkJYnJlYWs7CisJCX0KIAl9Ci0JcmV0dXJuIE5VTEw7CisJZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXJfZW5kKCZpdGVyKTsKKwlyZXR1cm4gZm91bmQ7CiB9CiAKIHN0cnVjdCBkcm1fY29u bmVjdG9yICoKQEAgLTk1LDE1ICsxMDYsMjAgQEAgYW1kZ3B1X2dldF9jb25uZWN0b3JfZm9yX2Vu Y29kZXJfaW5pdChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdw dV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7Ci0Jc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCAqZm91 bmQgPSBOVUxMOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0cnVj dCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yOwogCi0JbGlzdF9mb3JfZWFjaF9l bnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7 CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9l YWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJYW1kZ3B1X2Nvbm5lY3Rv ciA9IHRvX2FtZGdwdV9jb25uZWN0b3IoY29ubmVjdG9yKTsKLQkJaWYgKGFtZGdwdV9lbmNvZGVy LT5kZXZpY2VzICYgYW1kZ3B1X2Nvbm5lY3Rvci0+ZGV2aWNlcykKLQkJCXJldHVybiBjb25uZWN0 b3I7CisJCWlmIChhbWRncHVfZW5jb2Rlci0+ZGV2aWNlcyAmIGFtZGdwdV9jb25uZWN0b3ItPmRl dmljZXMpIHsKKwkJCWZvdW5kID0gY29ubmVjdG9yOworCQkJYnJlYWs7CisJCX0KIAl9Ci0JcmV0 dXJuIE5VTEw7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKKwlyZXR1cm4g Zm91bmQ7CiB9CiAKIHN0cnVjdCBkcm1fZW5jb2RlciAqYW1kZ3B1X2dldF9leHRlcm5hbF9lbmNv ZGVyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9pcnEuYwppbmRleCAyYTNmNWVjMjk4ZGIuLjk3N2UxMjEyMDRlNiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuYwpAQCAtODcsMTAgKzg3LDEzIEBAIHN0YXRp YyB2b2lkIGFtZGdwdV9ob3RwbHVnX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmsp CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGFkZXYtPmRkZXY7CiAJc3RydWN0IGRybV9tb2Rl X2NvbmZpZyAqbW9kZV9jb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKIAlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVy OwogCiAJbXV0ZXhfbG9jaygmbW9kZV9jb25maWctPm11dGV4KTsKLQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGNvbm5lY3RvciwgJm1vZGVfY29uZmlnLT5jb25uZWN0b3JfbGlzdCwgaGVhZCkKKwlkcm1f Y29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29u bmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikKIAkJYW1kZ3B1X2Nvbm5lY3Rvcl9ob3RwbHVn KGNvbm5lY3Rvcik7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAltdXRl eF91bmxvY2soJm1vZGVfY29uZmlnLT5tdXRleCk7CiAJLyogSnVzdCBmaXJlIG9mZiBhIHVldmVu dCBhbmQgbGV0IHVzZXJzcGFjZSB0ZWxsIHVzIHdoYXQgdG8gZG8gKi8KIAlkcm1faGVscGVyX2hw ZF9pcnFfZXZlbnQoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2RjZV92MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKaW5k ZXggNjQ1NTUwZTdjYWY1Li5iZTgyODcxYWMzYmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2RjZV92MTBfMC5jCkBAIC0zMzAsOSArMzMwLDExIEBAIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9o cGRfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gYWRldi0+ZGRldjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwor CXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXUzMiB0bXA7CiAKLQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xp c3QsIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsK Kwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlzdHJ1 Y3QgYW1kZ3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25uZWN0 b3IoY29ubmVjdG9yKTsKIAogCQlpZiAoYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCA+PSBhZGV2 LT5tb2RlX2luZm8ubnVtX2hwZCkKQEAgLTM2OCw2ICszNzAsNyBAQCBzdGF0aWMgdm9pZCBkY2Vf djEwXzBfaHBkX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWFtZGdwdV9pcnFf Z2V0KGFkZXYsICZhZGV2LT5ocGRfaXJxLAogCQkJICAgICAgIGFtZGdwdV9jb25uZWN0b3ItPmhw ZC5ocGQpOwogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogfQogCiAv KioKQEAgLTM4Miw5ICszODUsMTEgQEAgc3RhdGljIHZvaWQgZGNlX3YxMF8wX2hwZF9maW5pKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBh ZGV2LT5kZGV2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRy bV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJdTMyIHRtcDsKIAotCWxpc3RfZm9yX2VhY2hf ZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkg eworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCWRybV9mb3Jf ZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7CiAJCXN0cnVjdCBhbWRncHVf Y29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0 b3IpOwogCiAJCWlmIChhbWRncHVfY29ubmVjdG9yLT5ocGQuaHBkID49IGFkZXYtPm1vZGVfaW5m by5udW1faHBkKQpAQCAtMzk3LDYgKzQwMiw3IEBAIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9ocGRf ZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJYW1kZ3B1X2lycV9wdXQoYWRldiwg JmFkZXYtPmhwZF9pcnEsCiAJCQkgICAgICAgYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCk7CiAJ fQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiB9CiAKIHN0YXRpYyB1MzIg ZGNlX3YxMF8wX2hwZF9nZXRfZ3Bpb19yZWcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCkBA IC0xMjE5LDEwICsxMjI1LDEyIEBAIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9hZm10X2F1ZGlvX3Nl bGVjdF9waW4oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogc3RhdGljIHZvaWQgZGNlX3Yx MF8wX2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmllbGRzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwKIAkJCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQogewotCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNv ZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVy X2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7CiAJc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRl cjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IE5VTEw7CiAJ dTMyIHRtcDsKIAlpbnQgaW50ZXJsYWNlID0gMDsKQEAgLTEyMzAsMTIgKzEyMzgsMTQgQEAgc3Rh dGljIHZvaWQgZGNlX3YxMF8wX2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmllbGRzKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKIAlpZiAoIWRpZyB8fCAhZGlnLT5hZm10IHx8ICFkaWctPmFmbXQt PnBpbikKIAkJcmV0dXJuOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZlbmNv ZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rv cl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBl bmNvZGVyKSB7CiAJCQlhbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25u ZWN0b3IpOwogCQkJYnJlYWs7CiAJCX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5k KCZpdGVyKTsKIAogCWlmICghYW1kZ3B1X2Nvbm5lY3RvcikgewogCQlEUk1fRVJST1IoIkNvdWxk bid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CkBAIC0xMjYxLDEwICsxMjcxLDEyIEBA IHN0YXRpYyB2b2lkIGRjZV92MTBfMF9hdWRpb193cml0ZV9sYXRlbmN5X2ZpZWxkcyhzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIsCiAKIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9hdWRpb193cml0 ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewotCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OworCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFt ZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7CiAJc3RydWN0IGFtZGdw dV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7CiAJc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9 IE5VTEw7CiAJdTMyIHRtcDsKIAl1OCAqc2FkYiA9IE5VTEw7CkBAIC0xMjczLDEyICsxMjg1LDE0 IEBAIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9hdWRpb193cml0ZV9zcGVha2VyX2FsbG9jYXRpb24o c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyCiAJaWYgKCFkaWcgfHwgIWRpZy0+YWZtdCB8fCAh ZGlnLT5hZm10LT5waW4pCiAJCXJldHVybjsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVj dG9yLCAmZW5jb2Rlci0+ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgewor CWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCWRybV9mb3JfZWFj aF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7CiAJCWlmIChjb25uZWN0b3ItPmVu Y29kZXIgPT0gZW5jb2RlcikgewogCQkJYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25u ZWN0b3IoY29ubmVjdG9yKTsKIAkJCWJyZWFrOwogCQl9CiAJfQorCWRybV9jb25uZWN0b3JfbGlz dF9pdGVyX2VuZCgmaXRlcik7CiAKIAlpZiAoIWFtZGdwdV9jb25uZWN0b3IpIHsKIAkJRFJNX0VS Uk9SKCJDb3VsZG4ndCBmaW5kIGVuY29kZXIncyBjb25uZWN0b3JcbiIpOwpAQCAtMTMxMywxMCAr MTMyNywxMiBAQCBzdGF0aWMgdm9pZCBkY2VfdjEwXzBfYXVkaW9fd3JpdGVfc3BlYWtlcl9hbGxv Y2F0aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcgogCiBzdGF0aWMgdm9pZCBkY2VfdjEw XzBfYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewot CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OworCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIg KmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7CiAJc3RydWN0IGFt ZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7CiAJ c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3Rv ciA9IE5VTEw7CiAJc3RydWN0IGNlYV9zYWQgKnNhZHM7CiAJaW50IGksIHNhZF9jb3VudDsKQEAg LTEzMzksMTIgKzEzNTUsMTQgQEAgc3RhdGljIHZvaWQgZGNlX3YxMF8wX2F1ZGlvX3dyaXRlX3Nh ZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAlpZiAoIWRpZyB8fCAhZGlnLT5h Zm10IHx8ICFkaWctPmFmbXQtPnBpbikKIAkJcmV0dXJuOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRy eShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBo ZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJt X2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNvbm5l Y3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7CiAJCQlhbWRncHVfY29ubmVjdG9yID0gdG9fYW1k Z3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQkJYnJlYWs7CiAJCX0KIAl9CisJZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCWlmICghYW1kZ3B1X2Nvbm5lY3Rvcikgewog CQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCmluZGV4IGQ5ZjQ3MDYzMmIyYy4uYmRlNDg3 NzVjZjFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwpAQCAtMzQ4LDkg KzM0OCwxMSBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfaHBkX2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGFkZXYtPmRkZXY7CiAJ c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXIgaXRlcjsKIAl1MzIgdG1wOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0 b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rv cl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFt ZGdwdV9jb25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAKIAkJaWYg KGFtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGQgPj0gYWRldi0+bW9kZV9pbmZvLm51bV9ocGQpCkBA IC0zODUsNiArMzg3LDcgQEAgc3RhdGljIHZvaWQgZGNlX3YxMV8wX2hwZF9pbml0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQogCQlkY2VfdjExXzBfaHBkX3NldF9wb2xhcml0eShhZGV2LCBh bWRncHVfY29ubmVjdG9yLT5ocGQuaHBkKTsKIAkJYW1kZ3B1X2lycV9nZXQoYWRldiwgJmFkZXYt PmhwZF9pcnEsIGFtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGQpOwogCX0KKwlkcm1fY29ubmVjdG9y X2xpc3RfaXRlcl9lbmQoJml0ZXIpOwogfQogCiAvKioKQEAgLTM5OSw5ICs0MDIsMTEgQEAgc3Rh dGljIHZvaWQgZGNlX3YxMV8wX2hwZF9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQog ewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBhZGV2LT5kZGV2OwogCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7 CiAJdTMyIHRtcDsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2Rl X2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVy X2JlZ2luKGRldiwgJml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0 b3IsICZpdGVyKSB7CiAJCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9y ID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCiAJCWlmIChhbWRncHVfY29ubmVj dG9yLT5ocGQuaHBkID49IGFkZXYtPm1vZGVfaW5mby5udW1faHBkKQpAQCAtNDEzLDYgKzQxOCw3 IEBAIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9ocGRfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIAogCQlhbWRncHVfaXJxX3B1dChhZGV2LCAmYWRldi0+aHBkX2lycSwgYW1kZ3B1X2Nv bm5lY3Rvci0+aHBkLmhwZCk7CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRl cik7CiB9CiAKIHN0YXRpYyB1MzIgZGNlX3YxMV8wX2hwZF9nZXRfZ3Bpb19yZWcoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCkBAIC0xMjQ1LDEwICsxMjUxLDEyIEBAIHN0YXRpYyB2b2lkIGRj ZV92MTFfMF9hZm10X2F1ZGlvX3NlbGVjdF9waW4oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy KQogc3RhdGljIHZvaWQgZGNlX3YxMV8wX2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmllbGRzKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlKQogewotCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZW5jb2Rlci0+ZGV2LT5kZXZf cHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgYW1kZ3B1 X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7CiAJ c3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5j X3ByaXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5lY3RvciAqYW1kZ3B1 X2Nvbm5lY3RvciA9IE5VTEw7CiAJdTMyIHRtcDsKIAlpbnQgaW50ZXJsYWNlID0gMDsKQEAgLTEy NTYsMTIgKzEyNjQsMTQgQEAgc3RhdGljIHZvaWQgZGNlX3YxMV8wX2F1ZGlvX3dyaXRlX2xhdGVu Y3lfZmllbGRzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAlpZiAoIWRpZyB8fCAhZGln LT5hZm10IHx8ICFkaWctPmFmbXQtPnBpbikKIAkJcmV0dXJuOwogCi0JbGlzdF9mb3JfZWFjaF9l bnRyeShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0 LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJ ZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNv bm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7CiAJCQlhbWRncHVfY29ubmVjdG9yID0gdG9f YW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQkJYnJlYWs7CiAJCX0KIAl9CisJZHJtX2Nv bm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCWlmICghYW1kZ3B1X2Nvbm5lY3Rvcikg ewogCQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CkBA IC0xMjg3LDEwICsxMjk3LDEyIEBAIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9hdWRpb193cml0ZV9s YXRlbmN5X2ZpZWxkcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAKIHN0YXRpYyB2b2lk IGRjZV92MTFfMF9hdWRpb193cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZW5jb2Rlci0+ ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2 OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1 Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5j b2Rlcik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5j b2Rlci0+ZW5jX3ByaXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5lY3Rv ciAqYW1kZ3B1X2Nvbm5lY3RvciA9IE5VTEw7CiAJdTMyIHRtcDsKIAl1OCAqc2FkYiA9IE5VTEw7 CkBAIC0xMjk5LDEyICsxMzExLDE0IEBAIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9hdWRpb193cml0 ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyCiAJaWYgKCFk aWcgfHwgIWRpZy0+YWZtdCB8fCAhZGlnLT5hZm10LT5waW4pCiAJCXJldHVybjsKIAotCWxpc3Rf Zm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZW5jb2Rlci0+ZGV2LT5tb2RlX2NvbmZpZy5jb25u ZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwg Jml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7 CiAJCWlmIChjb25uZWN0b3ItPmVuY29kZXIgPT0gZW5jb2RlcikgewogCQkJYW1kZ3B1X2Nvbm5l Y3RvciA9IHRvX2FtZGdwdV9jb25uZWN0b3IoY29ubmVjdG9yKTsKIAkJCWJyZWFrOwogCQl9CiAJ fQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiAKIAlpZiAoIWFtZGdwdV9j b25uZWN0b3IpIHsKIAkJRFJNX0VSUk9SKCJDb3VsZG4ndCBmaW5kIGVuY29kZXIncyBjb25uZWN0 b3JcbiIpOwpAQCAtMTMzOSwxMCArMTM1MywxMiBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfYXVk aW9fd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcgog CiBzdGF0aWMgdm9pZCBkY2VfdjExXzBfYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZW5jb2Rl ci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ ZGV2OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlz dHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIo ZW5jb2Rlcik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRncHVf ZW5jb2Rlci0+ZW5jX3ByaXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5l Y3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IE5VTEw7CiAJc3RydWN0IGNlYV9zYWQgKnNhZHM7CiAJ aW50IGksIHNhZF9jb3VudDsKQEAgLTEzNjUsMTIgKzEzODEsMTQgQEAgc3RhdGljIHZvaWQgZGNl X3YxMV8wX2F1ZGlvX3dyaXRlX3NhZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikK IAlpZiAoIWRpZyB8fCAhZGlnLT5hZm10IHx8ICFkaWctPmFmbXQtPnBpbikKIAkJcmV0dXJuOwog Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29u ZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVn aW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3Rvciwg Jml0ZXIpIHsKIAkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7CiAJCQlhbWRn cHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQkJYnJlYWs7 CiAJCX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCWlmICgh YW1kZ3B1X2Nvbm5lY3RvcikgewogCQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2Rlcidz IGNvbm5lY3RvclxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9k Y2VfdjZfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYwppbmRleCAz ZWIyZTc0MjkyNjkuLjY1ZjYxZGU5MzFkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZGNlX3Y2XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vf djZfMC5jCkBAIC0yODEsOSArMjgxLDExIEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2hwZF9pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBhZGV2LT5kZGV2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0 IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJdTMyIHRtcDsKIAotCWxpc3RfZm9yX2Vh Y2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVh ZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCWRybV9m b3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7CiAJCXN0cnVjdCBhbWRn cHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25u ZWN0b3IpOwogCiAJCWlmIChhbWRncHVfY29ubmVjdG9yLT5ocGQuaHBkID49IGFkZXYtPm1vZGVf aW5mby5udW1faHBkKQpAQCAtMzA5LDcgKzMxMSw3IEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2hw ZF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlkY2VfdjZfMF9ocGRfc2V0X3Bv bGFyaXR5KGFkZXYsIGFtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGQpOwogCQlhbWRncHVfaXJxX2dl dChhZGV2LCAmYWRldi0+aHBkX2lycSwgYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCk7CiAJfQot CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIH0KIAogLyoqCkBAIC0zMjQs OSArMzI2LDExIEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2hwZF9maW5pKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBhZGV2LT5kZGV2Owog CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3Jf bGlzdF9pdGVyIGl0ZXI7CiAJdTMyIHRtcDsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVj dG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25u ZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0 b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7CiAJCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICph bWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCiAJCWlm IChhbWRncHVfY29ubmVjdG9yLT5ocGQuaHBkID49IGFkZXYtPm1vZGVfaW5mby5udW1faHBkKQpA QCAtMzM4LDYgKzM0Miw3IEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2hwZF9maW5pKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQogCiAJCWFtZGdwdV9pcnFfcHV0KGFkZXYsICZhZGV2LT5ocGRf aXJxLCBhbWRncHVfY29ubmVjdG9yLT5ocGQuaHBkKTsKIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXJfZW5kKCZpdGVyKTsKIH0KIAogc3RhdGljIHUzMiBkY2VfdjZfMF9ocGRfZ2V0X2dwaW9f cmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQpAQCAtMTEyNCwyMCArMTEyOSwyNCBAQCBz dGF0aWMgdm9pZCBkY2VfdjZfMF9hdWRpb19zZWxlY3RfcGluKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmllbGRz KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICptb2RlKQogewotCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZW5jb2Rlci0+ZGV2 LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owor CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3Qg YW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rl cik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5jb2Rl ci0+ZW5jX3ByaXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5lY3RvciAq YW1kZ3B1X2Nvbm5lY3RvciA9IE5VTEw7CiAJaW50IGludGVybGFjZSA9IDA7CiAJdTMyIHRtcDsK IAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZW5jb2Rlci0+ZGV2LT5tb2RlX2Nv bmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2Jl Z2luKGRldiwgJml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3Is ICZpdGVyKSB7CiAJCWlmIChjb25uZWN0b3ItPmVuY29kZXIgPT0gZW5jb2RlcikgewogCQkJYW1k Z3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25uZWN0b3IoY29ubmVjdG9yKTsKIAkJCWJyZWFr OwogCQl9CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiAKIAlpZiAo IWFtZGdwdV9jb25uZWN0b3IpIHsKIAkJRFJNX0VSUk9SKCJDb3VsZG4ndCBmaW5kIGVuY29kZXIn cyBjb25uZWN0b3JcbiIpOwpAQCAtMTE2NCwyMSArMTE3MywyNSBAQCBzdGF0aWMgdm9pZCBkY2Vf djZfMF9hdWRpb193cml0ZV9sYXRlbmN5X2ZpZWxkcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIsCiAKIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2F1ZGlvX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlv bihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5kZXY7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRl dl9wcml2YXRlOwogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19h bWRncHVfZW5jb2RlcihlbmNvZGVyKTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9kaWcg KmRpZyA9IGFtZGdwdV9lbmNvZGVyLT5lbmNfcHJpdjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXN0cnVj dCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gTlVMTDsKIAl1OCAqc2FkYiA9 IE5VTEw7CiAJaW50IHNhZF9jb3VudDsKIAl1MzIgdG1wOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRy eShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBo ZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJt X2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNvbm5l Y3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7CiAJCQlhbWRncHVfY29ubmVjdG9yID0gdG9fYW1k Z3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQkJYnJlYWs7CiAJCX0KIAl9CisJZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCWlmICghYW1kZ3B1X2Nvbm5lY3Rvcikgewog CQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CkBAIC0x MjIxLDEwICsxMjM0LDEyIEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2F1ZGlvX3dyaXRlX3NwZWFr ZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAKIHN0YXRpYyB2b2lk IGRjZV92Nl8wX2F1ZGlvX3dyaXRlX3NhZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGVuY29kZXItPmRldi0+ZGV2X3By aXZhdGU7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGFtZGdwdV9l bmNvZGVyICphbWRncHVfZW5jb2RlciA9IHRvX2FtZGdwdV9lbmNvZGVyKGVuY29kZXIpOwogCXN0 cnVjdCBhbWRncHVfZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gYW1kZ3B1X2VuY29kZXItPmVuY19w cml2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25u ZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9j b25uZWN0b3IgPSBOVUxMOwogCXN0cnVjdCBjZWFfc2FkICpzYWRzOwogCWludCBpLCBzYWRfY291 bnQ7CkBAIC0xMjQ0LDEyICsxMjU5LDE0IEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2F1ZGlvX3dy aXRlX3NhZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAkJeyBpeEFaQUxJQV9G MF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTMsIEhETUlfQVVESU9fQ09ESU5H X1RZUEVfV01BX1BSTyB9LAogCX07CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3Rvciwg JmVuY29kZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1f Y29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29u bmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVy ID09IGVuY29kZXIpIHsKIAkJCWFtZGdwdV9jb25uZWN0b3IgPSB0b19hbWRncHVfY29ubmVjdG9y KGNvbm5lY3Rvcik7CiAJCQlicmVhazsKIAkJfQogCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRl cl9lbmQoJml0ZXIpOwogCiAJaWYgKCFhbWRncHVfY29ubmVjdG9yKSB7CiAJCURSTV9FUlJPUigi Q291bGRuJ3QgZmluZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKQEAgLTE2MzIsNiArMTY0OSw3 IEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2FmbXRfc2V0bW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsCiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyICphbWRncHVfZW5jb2RlciA9IHRvX2Ft ZGdwdV9lbmNvZGVyKGVuY29kZXIpOwogCXN0cnVjdCBhbWRncHVfZW5jb2Rlcl9hdG9tX2RpZyAq ZGlnID0gYW1kZ3B1X2VuY29kZXItPmVuY19wcml2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJc3RydWN0 IGFtZGdwdV9jb25uZWN0b3IgKmFtZGdwdV9jb25uZWN0b3IgPSBOVUxMOwogCWludCBlbSA9IGFt ZGdwdV9hdG9tYmlvc19lbmNvZGVyX2dldF9lbmNvZGVyX21vZGUoZW5jb2Rlcik7CiAJaW50IGJw YyA9IDg7CkBAIC0xNjM5LDEyICsxNjU3LDE0IEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2FmbXRf c2V0bW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKCFkaWcgfHwgIWRpZy0+ YWZtdCkKIAkJcmV0dXJuOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZlbmNv ZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rv cl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBl bmNvZGVyKSB7CiAJCQlhbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25u ZWN0b3IpOwogCQkJYnJlYWs7CiAJCX0KIAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5k KCZpdGVyKTsKIAogCWlmICghYW1kZ3B1X2Nvbm5lY3RvcikgewogCQlEUk1fRVJST1IoIkNvdWxk bid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv ZGNlX3Y4XzAuYwppbmRleCBhMTZjNWU5ZTYxMGUuLmU1ZjUwODgyYTUxZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCkBAIC0yNzUsOSArMjc1LDExIEBAIHN0YXRpYyB2b2lk IGRjZV92OF8wX2hwZF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBhZGV2LT5kZGV2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJdTMyIHRt cDsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2LT5tb2RlX2NvbmZpZy5j b25uZWN0b3JfbGlzdCwgaGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRl diwgJml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVy KSB7CiAJCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gdG9fYW1k Z3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCiAJCWlmIChhbWRncHVfY29ubmVjdG9yLT5ocGQu aHBkID49IGFkZXYtPm1vZGVfaW5mby5udW1faHBkKQpAQCAtMzAzLDYgKzMwNSw3IEBAIHN0YXRp YyB2b2lkIGRjZV92OF8wX2hwZF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlk Y2VfdjhfMF9ocGRfc2V0X3BvbGFyaXR5KGFkZXYsIGFtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGQp OwogCQlhbWRncHVfaXJxX2dldChhZGV2LCAmYWRldi0+aHBkX2lycSwgYW1kZ3B1X2Nvbm5lY3Rv ci0+aHBkLmhwZCk7CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiB9 CiAKIC8qKgpAQCAtMzE3LDkgKzMyMCwxMSBAQCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9ocGRfZmlu aShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gYWRldi0+ZGRldjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVj dCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCXUzMiB0bXA7CiAKLQlsaXN0X2Zvcl9l YWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhl YWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1f Zm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlzdHJ1Y3QgYW1k Z3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2FtZGdwdV9jb25uZWN0b3IoY29u bmVjdG9yKTsKIAogCQlpZiAoYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCA+PSBhZGV2LT5tb2Rl X2luZm8ubnVtX2hwZCkKQEAgLTMzMSw2ICszMzYsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9o cGRfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCQlhbWRncHVfaXJxX3B1dChh ZGV2LCAmYWRldi0+aHBkX2lycSwgYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCk7CiAJfQorCWRy bV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiB9CiAKIHN0YXRpYyB1MzIgZGNlX3Y4 XzBfaHBkX2dldF9ncGlvX3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKQEAgLTExNTcs MTAgKzExNjMsMTIgQEAgc3RhdGljIHZvaWQgZGNlX3Y4XzBfYWZtdF9hdWRpb19zZWxlY3RfcGlu KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHN0YXRpYyB2b2lkIGRjZV92OF8wX2F1ZGlv X3dyaXRlX2xhdGVuY3lfZmllbGRzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJ CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQogewotCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gZW5jb2Rlci0+ZGV2OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9f YW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGln ICpkaWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7CiAJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1 Y3QgYW1kZ3B1X2Nvbm5lY3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IE5VTEw7CiAJdTMyIHRtcCA9 IDAsIG9mZnNldDsKIApAQCAtMTE2OSwxMiArMTE3NywxNCBAQCBzdGF0aWMgdm9pZCBkY2Vfdjhf MF9hdWRpb193cml0ZV9sYXRlbmN5X2ZpZWxkcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs CiAKIAlvZmZzZXQgPSBkaWctPmFmbXQtPnBpbi0+b2Zmc2V0OwogCi0JbGlzdF9mb3JfZWFjaF9l bnRyeShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0 LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJ ZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNv bm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7CiAJCQlhbWRncHVfY29ubmVjdG9yID0gdG9f YW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQkJYnJlYWs7CiAJCX0KIAl9CisJZHJtX2Nv bm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCWlmICghYW1kZ3B1X2Nvbm5lY3Rvcikg ewogCQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CkBA IC0xMjE0LDEwICsxMjI0LDEyIEBAIHN0YXRpYyB2b2lkIGRjZV92OF8wX2F1ZGlvX3dyaXRlX2xh dGVuY3lfZmllbGRzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAogc3RhdGljIHZvaWQg ZGNlX3Y4XzBfYXVkaW9fd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGVuY29kZXItPmRl di0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsK KwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0 IGFtZGdwdV9lbmNvZGVyICphbWRncHVfZW5jb2RlciA9IHRvX2FtZGdwdV9lbmNvZGVyKGVuY29k ZXIpOwogCXN0cnVjdCBhbWRncHVfZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gYW1kZ3B1X2VuY29k ZXItPmVuY19wcml2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0 IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7CiAJc3RydWN0IGFtZGdwdV9jb25uZWN0b3Ig KmFtZGdwdV9jb25uZWN0b3IgPSBOVUxMOwogCXUzMiBvZmZzZXQsIHRtcDsKIAl1OCAqc2FkYiA9 IE5VTEw7CkBAIC0xMjI4LDEyICsxMjQwLDE0IEBAIHN0YXRpYyB2b2lkIGRjZV92OF8wX2F1ZGlv X3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAK IAlvZmZzZXQgPSBkaWctPmFmbXQtPnBpbi0+b2Zmc2V0OwogCi0JbGlzdF9mb3JfZWFjaF9lbnRy eShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBo ZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJt X2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJaWYgKGNvbm5l Y3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7CiAJCQlhbWRncHVfY29ubmVjdG9yID0gdG9fYW1k Z3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQkJYnJlYWs7CiAJCX0KIAl9CisJZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCWlmICghYW1kZ3B1X2Nvbm5lY3Rvcikgewog CQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CkBAIC0x MjYzLDExICsxMjc3LDEzIEBAIHN0YXRpYyB2b2lkIGRjZV92OF8wX2F1ZGlvX3dyaXRlX3NwZWFr ZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAKIHN0YXRpYyB2b2lk IGRjZV92OF8wX2F1ZGlvX3dyaXRlX3NhZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGVuY29kZXItPmRldi0+ZGV2X3By aXZhdGU7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGFtZGdwdV9l bmNvZGVyICphbWRncHVfZW5jb2RlciA9IHRvX2FtZGdwdV9lbmNvZGVyKGVuY29kZXIpOwogCXN0 cnVjdCBhbWRncHVfZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gYW1kZ3B1X2VuY29kZXItPmVuY19w cml2OwogCXUzMiBvZmZzZXQ7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgYW1kZ3B1X2Nvbm5l Y3RvciAqYW1kZ3B1X2Nvbm5lY3RvciA9IE5VTEw7CiAJc3RydWN0IGNlYV9zYWQgKnNhZHM7CiAJ aW50IGksIHNhZF9jb3VudDsKQEAgLTEyOTIsMTIgKzEzMDgsMTQgQEAgc3RhdGljIHZvaWQgZGNl X3Y4XzBfYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQog CiAJb2Zmc2V0ID0gZGlnLT5hZm10LT5waW4tPm9mZnNldDsKIAotCWxpc3RfZm9yX2VhY2hfZW50 cnkoY29ubmVjdG9yLCAmZW5jb2Rlci0+ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwg aGVhZCkgeworCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJml0ZXIpOworCWRy bV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZpdGVyKSB7CiAJCWlmIChjb25u ZWN0b3ItPmVuY29kZXIgPT0gZW5jb2RlcikgewogCQkJYW1kZ3B1X2Nvbm5lY3RvciA9IHRvX2Ft ZGdwdV9jb25uZWN0b3IoY29ubmVjdG9yKTsKIAkJCWJyZWFrOwogCQl9CiAJfQorCWRybV9jb25u ZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiAKIAlpZiAoIWFtZGdwdV9jb25uZWN0b3IpIHsK IAkJRFJNX0VSUk9SKCJDb3VsZG4ndCBmaW5kIGVuY29kZXIncyBjb25uZWN0b3JcbiIpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKaW5k ZXggYzY3ZDNjNDFkYjE5Li44ODdiYzFkNWQ5ZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwpAQCAtODk3LDI3ICs4OTcsMjkgQEAg c3RhdGljIGludCBkZXRlY3RfbXN0X2xpbmtfZm9yX2FsbF9jb25uZWN0b3JzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGFtZGdwdV9kbV9jb25uZWN0b3IgKmFjb25uZWN0b3I7 CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9saXN0X2l0ZXIgaXRlcjsKIAlpbnQgcmV0ID0gMDsKIAotCWRybV9tb2Rlc2V0X2xvY2soJmRl di0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7Ci0KLQlsaXN0X2Zvcl9lYWNo X2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQp IHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1fZm9y X2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlhY29ubmVjdG9yID0g dG9fYW1kZ3B1X2RtX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCQlpZiAoYWNvbm5lY3Rvci0+ZGNf bGluay0+dHlwZSA9PSBkY19jb25uZWN0aW9uX21zdF9icmFuY2ggJiYKIAkJICAgIGFjb25uZWN0 b3ItPm1zdF9tZ3IuYXV4KSB7CiAJCQlEUk1fREVCVUdfRFJJVkVSKCJETV9NU1Q6IHN0YXJ0aW5n IFRNIG9uIGFjb25uZWN0b3I6ICVwIFtpZDogJWRdXG4iLAotCQkJCQlhY29ubmVjdG9yLCBhY29u bmVjdG9yLT5iYXNlLmJhc2UuaWQpOworCQkJCQkgYWNvbm5lY3RvciwKKwkJCQkJIGFjb25uZWN0 b3ItPmJhc2UuYmFzZS5pZCk7CiAKIAkJCXJldCA9IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyX3Nl dF9tc3QoJmFjb25uZWN0b3ItPm1zdF9tZ3IsIHRydWUpOwogCQkJaWYgKHJldCA8IDApIHsKIAkJ CQlEUk1fRVJST1IoIkRNX01TVDogRmFpbGVkIHRvIHN0YXJ0IE1TVFxuIik7Ci0JCQkJKChzdHJ1 Y3QgZGNfbGluayAqKWFjb25uZWN0b3ItPmRjX2xpbmspLT50eXBlID0gZGNfY29ubmVjdGlvbl9z aW5nbGU7Ci0JCQkJcmV0dXJuIHJldDsKLQkJCQl9CisJCQkJYWNvbm5lY3Rvci0+ZGNfbGluay0+ dHlwZSA9CisJCQkJCWRjX2Nvbm5lY3Rpb25fc2luZ2xlOworCQkJCWJyZWFrOwogCQkJfQorCQl9 CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7CiAKLQlkcm1fbW9kZXNl dF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCk7CiAJcmV0dXJuIHJl dDsKIH0KIApAQCAtOTU1LDE0ICs5NTcsMTMgQEAgc3RhdGljIHZvaWQgczNfaGFuZGxlX21zdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHN1c3BlbmQpCiB7CiAJc3RydWN0IGFtZGdwdV9k bV9jb25uZWN0b3IgKmFjb25uZWN0b3I7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgaXRlcjsKIAlzdHJ1Y3QgZHJtX2Rw X21zdF90b3BvbG9neV9tZ3IgKm1ncjsKIAlpbnQgcmV0OwogCWJvb2wgbmVlZF9ob3RwbHVnID0g ZmFsc2U7CiAKLQlkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25f bXV0ZXgsIE5VTEwpOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1v ZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LAotCQkJICAgIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9y X2xpc3RfaXRlcl9iZWdpbihkZXYsICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0 ZXIoY29ubmVjdG9yLCAmaXRlcikgewogCQlhY29ubmVjdG9yID0gdG9fYW1kZ3B1X2RtX2Nvbm5l Y3Rvcihjb25uZWN0b3IpOwogCQlpZiAoYWNvbm5lY3Rvci0+ZGNfbGluay0+dHlwZSAhPSBkY19j b25uZWN0aW9uX21zdF9icmFuY2ggfHwKIAkJICAgIGFjb25uZWN0b3ItPm1zdF9wb3J0KQpAQCAt OTgwLDggKzk4MSw3IEBAIHN0YXRpYyB2b2lkIHMzX2hhbmRsZV9tc3Qoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgYm9vbCBzdXNwZW5kKQogCQkJfQogCQl9CiAJfQotCi0JZHJtX21vZGVzZXRfdW5s b2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOworCWRybV9jb25uZWN0b3Jf bGlzdF9pdGVyX2VuZCgmaXRlcik7CiAKIAlpZiAobmVlZF9ob3RwbHVnKQogCQlkcm1fa21zX2hl bHBlcl9ob3RwbHVnX2V2ZW50KGRldik7CkBAIC0xMTYzLDYgKzExNjMsNyBAQCBzdGF0aWMgaW50 IGRtX3Jlc3VtZSh2b2lkICpoYW5kbGUpCiAJc3RydWN0IGFtZGdwdV9kaXNwbGF5X21hbmFnZXIg KmRtID0gJmFkZXYtPmRtOwogCXN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphY29ubmVjdG9y OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0 b3JfbGlzdF9pdGVyIGl0ZXI7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CiAJc3RydWN0IGRtX2NydGNfc3RhdGUgKmRtX25l d19jcnRjX3N0YXRlOwpAQCAtMTE5NSw3ICsxMTk2LDggQEAgc3RhdGljIGludCBkbV9yZXN1bWUo dm9pZCAqaGFuZGxlKQogCWFtZGdwdV9kbV9pcnFfcmVzdW1lX2Vhcmx5KGFkZXYpOwogCiAJLyog RG8gZGV0ZWN0aW9uKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRkZXYtPm1v ZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0 ZXJfYmVnaW4oZGRldiwgJml0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25u ZWN0b3IsICZpdGVyKSB7CiAJCWFjb25uZWN0b3IgPSB0b19hbWRncHVfZG1fY29ubmVjdG9yKGNv bm5lY3Rvcik7CiAKIAkJLyoKQEAgLTEyMjMsNiArMTIyNSw3IEBAIHN0YXRpYyBpbnQgZG1fcmVz dW1lKHZvaWQgKmhhbmRsZSkKIAkJYW1kZ3B1X2RtX3VwZGF0ZV9jb25uZWN0b3JfYWZ0ZXJfZGV0 ZWN0KGFjb25uZWN0b3IpOwogCQltdXRleF91bmxvY2soJmFjb25uZWN0b3ItPmhwZF9sb2NrKTsK IAl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIAogCS8qIEZvcmNlIG1v ZGUgc2V0IGluIGF0b21pYyBjb21taXQgKi8KIAlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShk bS0+Y2FjaGVkX3N0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX2lycS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1faXJxLmMKaW5kZXgg ZmE1ZDUwM2QzNzljLi42NDQ0NWM0Y2M0YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX2lycS5jCkBAIC03MzIsOCArNzMyLDEw IEBAIHZvaWQgYW1kZ3B1X2RtX2hwZF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQog ewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBhZGV2LT5kZGV2OwogCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGl0ZXI7 CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29u bmVjdG9yX2xpc3QsIGhlYWQpIHsKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYs ICZpdGVyKTsKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmaXRlcikg ewogCQlzdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5lY3RvciAqYW1kZ3B1X2RtX2Nvbm5lY3RvciA9CiAJ CQkJdG9fYW1kZ3B1X2RtX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCkBAIC03NTEsNiArNzUzLDcg QEAgdm9pZCBhbWRncHVfZG1faHBkX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJ CQkJCXRydWUpOwogCQl9CiAJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmaXRlcik7 CiB9CiAKIC8qKgpAQCAtNzY1LDggKzc2OCwxMCBAQCB2b2lkIGFtZGdwdV9kbV9ocGRfZmluaShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g YWRldi0+ZGRldjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBk cm1fY29ubmVjdG9yX2xpc3RfaXRlciBpdGVyOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25u ZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7CisJZHJtX2Nv bm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmaXRlcik7CisJZHJtX2Zvcl9lYWNoX2Nvbm5l Y3Rvcl9pdGVyKGNvbm5lY3RvciwgJml0ZXIpIHsKIAkJc3RydWN0IGFtZGdwdV9kbV9jb25uZWN0 b3IgKmFtZGdwdV9kbV9jb25uZWN0b3IgPQogCQkJCXRvX2FtZGdwdV9kbV9jb25uZWN0b3IoY29u bmVjdG9yKTsKIAkJY29uc3Qgc3RydWN0IGRjX2xpbmsgKmRjX2xpbmsgPSBhbWRncHVfZG1fY29u bmVjdG9yLT5kY19saW5rOwpAQCAtNzc5LDQgKzc4NCw1IEBAIHZvaWQgYW1kZ3B1X2RtX2hwZF9m aW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJCQlmYWxzZSk7CiAJCX0KIAl9CisJ ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZpdGVyKTsKIH0KLS0gCjIuMjEuMAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4