From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 87/88] drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) Date: Tue, 26 May 2015 23:20:26 -0400 Message-ID: <1432696827-3752-57-git-send-email-alexander.deucher@amd.com> References: <1432696827-3752-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f51.google.com (mail-qg0-f51.google.com [209.85.192.51]) by gabe.freedesktop.org (Postfix) with ESMTP id 6B4B06E02B for ; Tue, 26 May 2015 20:21:09 -0700 (PDT) Received: by qgg60 with SMTP id 60so21215877qgg.2 for ; Tue, 26 May 2015 20:21:09 -0700 (PDT) In-Reply-To: <1432696827-3752-1-git-send-email-alexander.deucher@amd.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: Alex Deucher , yanyang1 List-Id: dri-devel@lists.freedesktop.org RnJvbTogeWFueWFuZzEgPHlvdW5nLnlhbmdAYW1kLmNvbT4KClRoZSBzdHJ1Y3R1cmUgaXMgcmVu YW1lZCBhbmQgbW92ZWQgdG8gYW1kX3NoYXJlZC5oIHRvIG1ha2UKdGhlIGNvbXBvbmVudCBpbmRl cGVuZGVudC4gIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIGFkZApuZXcgY29tcG9uZW50cyBpbiB0 aGUgZnV0dXJlLgoKdjI6IGZpeCBpbmNsdWRlIHBhdGgKClJldmlld2VkLWJ5OiBKYW1teSBaaG91 IDxKYW1teS5aaG91QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IHlhbnlhbmcxIDx5b3VuZy55YW5n QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJA YW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZSAgICAgICAg fCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICAgICB8ICA3 NSArKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rl dmljZS5jIHwgIDUwICsrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfa21zLmMgICAgfCAgMjQgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdXZkLmMgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2NpX2RwbS5j ICAgICAgICB8ICA1NyArKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9j aWsuYyAgICAgICAgICAgfCAxMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npay5oICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvY2lrX2RwbS5oICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9jaWtfaWguYyAgICAgICAgfCAgNTQgKysrKysrKystLS0tCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfaWguaCAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMgICAgICB8ICA1MyArKysrKysrLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmggICAgICB8ICAgMiArLQogZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvY3pfZHBtLmMgICAgICAgIHwgIDUzICsrKysrKystLS0tLQogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY3pfaWguYyAgICAgICAgIHwgIDUzICsrKysrKysrLS0t LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY3pfaWguaCAgICAgICAgIHwgICAyICstCiBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYyAgICAgfCAgNTAgKysrKysrLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5oICAgICB8ICAgMiArLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMgICAgIHwgIDUwICsrKysrKy0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuaCAgICAgfCAgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMgICAgICB8ICA1MCArKysrKyst LS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuaCAgICAgIHwgICAyICst CiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jICAgICAgfCAgNTcgKysrKysr KystLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuaCAgICAgIHwgICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jICAgICAgfCAgNTEgKysr KysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmggICAgICB8ICAg MiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYyAgICAgIHwgIDUyICsr KysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuaCAgICAgIHwg ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jICAgICAgfCAgNTEg KysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmggICAgICB8 ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvaWNlbGFuZF9kcG0uYyAgIHwgIDM0 ICsrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9pY2VsYW5kX2loLmMgICAgfCAg NTUgKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9pY2VsYW5kX2loLmgg ICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2t2X2RwbS5jICAgICAgICB8 ICA4OSArKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2Rt YV92Ml80LmMgICAgIHwgIDUxICsrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9zZG1hX3YyXzQuaCAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjNfMC5jICAgICB8ICA1MiArKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L3NkbWFfdjNfMC5oICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv dG9uZ2FfZHBtLmMgICAgIHwgIDM1ICsrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS90b25nYV9paC5jICAgICAgfCAgNTEgKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3RvbmdhX2loLmggICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvdXZkX3Y0XzIuYyAgICAgIHwgIDUzICsrKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvdXZkX3Y0XzIuaCAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS91dmRfdjVfMC5jICAgICAgfCAgNTIgKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS91dmRfdjVfMC5oICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3V2ZF92Nl8wLmMgICAgICB8ICA1MiArKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3V2ZF92Nl8wLmggICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvdmNlX3YyXzAuYyAgICAgIHwgIDU0ICsrKysrKystLS0tLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvdmNlX3YyXzAuaCAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS92Y2VfdjNfMC5jICAgICAgfCAgNTIgKysrKysrKy0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS92Y2VfdjNfMC5oICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3ZpLmMgICAgICAgICAgICB8ICA5NiArKysrKysrKysrKy0tLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpLmggICAgICAgICAgICB8ICAgMiArLQogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmlfZHBtLmggICAgICAgIHwgICA2ICstCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2luY2x1ZGUvYW1kX3NoYXJlZC5oICAgfCAgODEgKysrKysrKysrKysrKysr KysrCiA1NSBmaWxlcyBjaGFuZ2VkLCAxMDY3IGluc2VydGlvbnMoKyksIDcwNyBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYW1kX3No YXJlZC5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQppbmRleCA5YTU3M2U4Li42MTZk ZmQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQpAQCAtMiw3ICsyLDggQEAKICMg TWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVz IHN1cHBvcnQgZm9yIHRoZQogIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkp IGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KIAotY2NmbGFncy15IDo9IC1JaW5jbHVkZS9k cm0gLUlkcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcKK2NjZmxhZ3MteSA6PSAt SWluY2x1ZGUvZHJtIC1JZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnIFwKKwkt SWRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZQogCiBhbWRncHUteSA6PSBhbWRncHVfZHJ2Lm8K IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAppbmRleCA0MTFjZmI5Li44MGYwYmVhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaApAQCAtNDQsNiArNDQsNyBAQAogCiAjaW5j bHVkZSA8ZHJtL2RybV9nZW0uaD4KIAorI2luY2x1ZGUgImFtZF9zaGFyZWQuaCIKICNpbmNsdWRl ICJhbWRncHVfZmFtaWx5LmgiCiAjaW5jbHVkZSAiYW1kZ3B1X21vZGUuaCIKICNpbmNsdWRlICJh bWRncHVfaWguaCIKQEAgLTIwNSw4NiArMjA2LDI4IEBAIGVudW0gYW1kZ3B1X3RoZXJtYWxfaXJx IHsKIAlBTURHUFVfVEhFUk1BTF9JUlFfTEFTVAogfTsKIAotLyoKLSAqIElQIGJsb2NrIGZ1bmN0 aW9ucwotICovCi1lbnVtIGFtZGdwdV9pcF9ibG9ja190eXBlIHsKLQlBTURHUFVfSVBfQkxPQ0tf VFlQRV9DT01NT04sCi0JQU1ER1BVX0lQX0JMT0NLX1RZUEVfR01DLAotCUFNREdQVV9JUF9CTE9D S19UWVBFX0lILAotCUFNREdQVV9JUF9CTE9DS19UWVBFX1NNQywKLQlBTURHUFVfSVBfQkxPQ0tf VFlQRV9EQ0UsCi0JQU1ER1BVX0lQX0JMT0NLX1RZUEVfR0ZYLAotCUFNREdQVV9JUF9CTE9DS19U WVBFX1NETUEsCi0JQU1ER1BVX0lQX0JMT0NLX1RZUEVfVVZELAotCUFNREdQVV9JUF9CTE9DS19U WVBFX1ZDRSwKLX07Ci0KLWVudW0gYW1kZ3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHsKLQlBTURHUFVf Q0dfU1RBVEVfR0FURSA9IDAsCi0JQU1ER1BVX0NHX1NUQVRFX1VOR0FURSwKLX07Ci0KLWVudW0g YW1kZ3B1X3Bvd2VyZ2F0aW5nX3N0YXRlIHsKLQlBTURHUFVfUEdfU1RBVEVfR0FURSA9IDAsCi0J QU1ER1BVX1BHX1NUQVRFX1VOR0FURSwKLX07Ci0KLXN0cnVjdCBhbWRncHVfaXBfZnVuY3Mgewot CS8qIHNldHMgdXAgZWFybHkgZHJpdmVyIHN0YXRlIChwcmUgc3dfaW5pdCksIGRvZXMgbm90IGNv bmZpZ3VyZSBodyAtIE9wdGlvbmFsICovCi0JaW50ICgqZWFybHlfaW5pdCkoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpOwotCS8qIHNldHMgdXAgbGF0ZSBkcml2ZXIvaHcgc3RhdGUgKHBvc3Qg aHdfaW5pdCkgLSBPcHRpb25hbCAqLwotCWludCAoKmxhdGVfaW5pdCkoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpOwotCS8qIHNldHMgdXAgZHJpdmVyIHN0YXRlLCBkb2VzIG5vdCBjb25maWd1 cmUgaHcgKi8KLQlpbnQgKCpzd19pbml0KShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Ci0J LyogdGVhcnMgZG93biBkcml2ZXIgc3RhdGUsIGRvZXMgbm90IGNvbmZpZ3VyZSBodyAqLwotCWlu dCAoKnN3X2ZpbmkpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKLQkvKiBzZXRzIHVwIHRo ZSBodyBzdGF0ZSAqLwotCWludCAoKmh3X2luaXQpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KTsKLQkvKiB0ZWFycyBkb3duIHRoZSBodyBzdGF0ZSAqLwotCWludCAoKmh3X2ZpbmkpKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KTsKLQkvKiBoYW5kbGVzIElQIHNwZWNpZmljIGh3L3N3IGNo YW5nZXMgZm9yIHN1c3BlbmQgKi8KLQlpbnQgKCpzdXNwZW5kKShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldik7Ci0JLyogaGFuZGxlcyBJUCBzcGVjaWZpYyBody9zdyBjaGFuZ2VzIGZvciByZXN1 bWUgKi8KLQlpbnQgKCpyZXN1bWUpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKLQkvKiBy ZXR1cm5zIGN1cnJlbnQgSVAgYmxvY2sgaWRsZSBzdGF0dXMgKi8KLQlib29sICgqaXNfaWRsZSko c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwotCS8qIHBvbGwgZm9yIGlkbGUgKi8KLQlpbnQg KCp3YWl0X2Zvcl9pZGxlKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Ci0JLyogc29mdCBy ZXNldCB0aGUgSVAgYmxvY2sgKi8KLQlpbnQgKCpzb2Z0X3Jlc2V0KShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldik7Ci0JLyogZHVtcCB0aGUgSVAgYmxvY2sgc3RhdHVzIHJlZ2lzdGVycyAqLwot CXZvaWQgKCpwcmludF9zdGF0dXMpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKLQkvKiBl bmFibGUvZGlzYWJsZSBjZyBmb3IgdGhlIElQIGJsb2NrICovCi0JaW50ICgqc2V0X2Nsb2NrZ2F0 aW5nX3N0YXRlKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkgICAgIGVudW0gYW1k Z3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKTsKLQkvKiBlbmFibGUvZGlzYWJsZSBwZyBmb3Ig dGhlIElQIGJsb2NrICovCi0JaW50ICgqc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKLQkJCQkgICAgIGVudW0gYW1kZ3B1X3Bvd2VyZ2F0aW5nX3N0YXRl IHN0YXRlKTsKLX07Ci0KIGludCBhbWRncHVfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAotCQkJCSAgZW51bSBhbWRncHVfaXBfYmxvY2tfdHlwZSBibG9j a190eXBlLAotCQkJCSAgZW51bSBhbWRncHVfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpOworCQkJ CSAgZW51bSBhbWRfaXBfYmxvY2tfdHlwZSBibG9ja190eXBlLAorCQkJCSAgZW51bSBhbWRfY2xv Y2tnYXRpbmdfc3RhdGUgc3RhdGUpOwogaW50IGFtZGdwdV9zZXRfcG93ZXJnYXRpbmdfc3RhdGUo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJICBlbnVtIGFtZGdwdV9pcF9ibG9ja190 eXBlIGJsb2NrX3R5cGUsCi0JCQkJICBlbnVtIGFtZGdwdV9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0 ZSk7CisJCQkJICBlbnVtIGFtZF9pcF9ibG9ja190eXBlIGJsb2NrX3R5cGUsCisJCQkJICBlbnVt IGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSk7CiAKIHN0cnVjdCBhbWRncHVfaXBfYmxvY2tf dmVyc2lvbiB7Ci0JZW51bSBhbWRncHVfaXBfYmxvY2tfdHlwZSB0eXBlOworCWVudW0gYW1kX2lw X2Jsb2NrX3R5cGUgdHlwZTsKIAl1MzIgbWFqb3I7CiAJdTMyIG1pbm9yOwogCXUzMiByZXY7Ci0J Y29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyAqZnVuY3M7CisJY29uc3Qgc3RydWN0IGFtZF9p cF9mdW5jcyAqZnVuY3M7CiB9OwogCiBpbnQgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb25fY21wKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCWVudW0gYW1kZ3B1X2lwX2Jsb2NrX3R5cGUg dHlwZSwKKwkJCQllbnVtIGFtZF9pcF9ibG9ja190eXBlIHR5cGUsCiAJCQkJdTMyIG1ham9yLCB1 MzIgbWlub3IpOwogCiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb24gKiBhbWRn cHVfZ2V0X2lwX2Jsb2NrKAogCQkJCQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJ ZW51bSBhbWRncHVfaXBfYmxvY2tfdHlwZSB0eXBlKTsKKwkJCQkJZW51bSBhbWRfaXBfYmxvY2tf dHlwZSB0eXBlKTsKIAogLyogcHJvdmlkZWQgYnkgaHcgYmxvY2tzIHRoYXQgY2FuIG1vdmUvY2xl YXIgZGF0YS4gIGUuZy4sIGdmeCBvciBzZG1hICovCiBzdHJ1Y3QgYW1kZ3B1X2J1ZmZlcl9mdW5j cyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNl LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKaW5kZXggMzQ0 OGQ5Zi4uZDlkMjZmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2RldmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZp Y2UuYwpAQCAtMTA4MSwxNCArMTA4MSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZnYV9zd2l0 Y2hlcm9vX2NsaWVudF9vcHMgYW1kZ3B1X3N3aXRjaGVyb29fb3BzID0gewogfTsKIAogaW50IGFt ZGdwdV9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0J CQkJICBlbnVtIGFtZGdwdV9pcF9ibG9ja190eXBlIGJsb2NrX3R5cGUsCi0JCQkJICBlbnVtIGFt ZGdwdV9jbG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSkKKwkJCQkgIGVudW0gYW1kX2lwX2Jsb2NrX3R5 cGUgYmxvY2tfdHlwZSwKKwkJCQkgIGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQog ewogCWludCBpLCByID0gMDsKIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5udW1faXBfYmxvY2tz OyBpKyspIHsKIAkJaWYgKGFkZXYtPmlwX2Jsb2Nrc1tpXS50eXBlID09IGJsb2NrX3R5cGUpIHsK LQkJCXIgPSBhZGV2LT5pcF9ibG9ja3NbaV0uZnVuY3MtPnNldF9jbG9ja2dhdGluZ19zdGF0ZShh ZGV2LAorCQkJciA9IGFkZXYtPmlwX2Jsb2Nrc1tpXS5mdW5jcy0+c2V0X2Nsb2NrZ2F0aW5nX3N0 YXRlKCh2b2lkICopYWRldiwKIAkJCQkJCQkJCSAgICBzdGF0ZSk7CiAJCQlpZiAocikKIAkJCQly ZXR1cm4gcjsKQEAgLTEwOTgsMTQgKzEwOTgsMTQgQEAgaW50IGFtZGdwdV9zZXRfY2xvY2tnYXRp bmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiB9CiAKIGludCBhbWRncHVfc2V0 X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCSAgZW51 bSBhbWRncHVfaXBfYmxvY2tfdHlwZSBibG9ja190eXBlLAotCQkJCSAgZW51bSBhbWRncHVfcG93 ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCisJCQkJICBlbnVtIGFtZF9pcF9ibG9ja190eXBlIGJsb2Nr X3R5cGUsCisJCQkJICBlbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKIHsKIAlpbnQg aSwgciA9IDA7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bnVtX2lwX2Jsb2NrczsgaSsrKSB7 CiAJCWlmIChhZGV2LT5pcF9ibG9ja3NbaV0udHlwZSA9PSBibG9ja190eXBlKSB7Ci0JCQlyID0g YWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5zZXRfcG93ZXJnYXRpbmdfc3RhdGUoYWRldiwKKwkJ CXIgPSBhZGV2LT5pcF9ibG9ja3NbaV0uZnVuY3MtPnNldF9wb3dlcmdhdGluZ19zdGF0ZSgodm9p ZCAqKWFkZXYsCiAJCQkJCQkJCQkgICAgc3RhdGUpOwogCQkJaWYgKHIpCiAJCQkJcmV0dXJuIHI7 CkBAIC0xMTE2LDcgKzExMTYsNyBAQCBpbnQgYW1kZ3B1X3NldF9wb3dlcmdhdGluZ19zdGF0ZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9j a192ZXJzaW9uICogYW1kZ3B1X2dldF9pcF9ibG9jaygKIAkJCQkJc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCi0JCQkJCWVudW0gYW1kZ3B1X2lwX2Jsb2NrX3R5cGUgdHlwZSkKKwkJCQkJZW51 bSBhbWRfaXBfYmxvY2tfdHlwZSB0eXBlKQogewogCWludCBpOwogCkBAIC0xMTMxLDcgKzExMzEs NyBAQCBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb24gKiBhbWRncHVfZ2V0X2lw X2Jsb2NrKAogICogYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb25fY21wCiAgKgogICogQGFkZXY6IGFt ZGdwdV9kZXZpY2UgcG9pbnRlcgotICogQHR5cGU6IGVudW0gYW1kZ3B1X2lwX2Jsb2NrX3R5cGUK KyAqIEB0eXBlOiBlbnVtIGFtZF9pcF9ibG9ja190eXBlCiAgKiBAbWFqb3I6IG1ham9yIHZlcnNp b24KICAqIEBtaW5vcjogbWlub3IgdmVyc2lvbgogICoKQEAgLTExMzksNyArMTEzOSw3IEBAIGNv bnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiAqIGFtZGdwdV9nZXRfaXBfYmxvY2so CiAgKiByZXR1cm4gMSBpZiBzbWFsbGVyIG9yIHRoZSBpcF9ibG9jayBkb2Vzbid0IGV4aXN0CiAg Ki8KIGludCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbl9jbXAoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCi0JCQkJZW51bSBhbWRncHVfaXBfYmxvY2tfdHlwZSB0eXBlLAorCQkJCWVudW0gYW1k X2lwX2Jsb2NrX3R5cGUgdHlwZSwKIAkJCQl1MzIgbWFqb3IsIHUzMiBtaW5vcikKIHsKIAljb25z dCBzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNpb24gKmlwX2Jsb2NrOwpAQCAtMTIwNCw3ICsx MjA0LDcgQEAgc3RhdGljIGludCBhbWRncHVfZWFybHlfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKIAkJCWFkZXYtPmlwX2Jsb2NrX2VuYWJsZWRbaV0gPSBmYWxzZTsKIAkJfSBlbHNl IHsKIAkJCWlmIChhZGV2LT5pcF9ibG9ja3NbaV0uZnVuY3MtPmVhcmx5X2luaXQpIHsKLQkJCQly ID0gYWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5lYXJseV9pbml0KGFkZXYpOworCQkJCXIgPSBh ZGV2LT5pcF9ibG9ja3NbaV0uZnVuY3MtPmVhcmx5X2luaXQoKHZvaWQgKilhZGV2KTsKIAkJCQlp ZiAocikKIAkJCQkJcmV0dXJuIHI7CiAJCQl9CkBAIC0xMjIyLDE1ICsxMjIyLDE1IEBAIHN0YXRp YyBpbnQgYW1kZ3B1X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJZm9yIChpID0g MDsgaSA8IGFkZXYtPm51bV9pcF9ibG9ja3M7IGkrKykgewogCQlpZiAoIWFkZXYtPmlwX2Jsb2Nr X2VuYWJsZWRbaV0pCiAJCQljb250aW51ZTsKLQkJciA9IGFkZXYtPmlwX2Jsb2Nrc1tpXS5mdW5j cy0+c3dfaW5pdChhZGV2KTsKKwkJciA9IGFkZXYtPmlwX2Jsb2Nrc1tpXS5mdW5jcy0+c3dfaW5p dCgodm9pZCAqKWFkZXYpOwogCQlpZiAocikKIAkJCXJldHVybiByOwogCQkvKiBuZWVkIHRvIGRv IGdtYyBodyBpbml0IGVhcmx5IHNvIHdlIGNhbiBhbGxvY2F0ZSBncHUgbWVtICovCi0JCWlmIChh ZGV2LT5pcF9ibG9ja3NbaV0udHlwZSA9PSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9HTUMpIHsKKwkJ aWYgKGFkZXYtPmlwX2Jsb2Nrc1tpXS50eXBlID09IEFNRF9JUF9CTE9DS19UWVBFX0dNQykgewog CQkJciA9IGFtZGdwdV92cmFtX3NjcmF0Y2hfaW5pdChhZGV2KTsKIAkJCWlmIChyKQogCQkJCXJl dHVybiByOwotCQkJciA9IGFkZXYtPmlwX2Jsb2Nrc1tpXS5mdW5jcy0+aHdfaW5pdChhZGV2KTsK KwkJCXIgPSBhZGV2LT5pcF9ibG9ja3NbaV0uZnVuY3MtPmh3X2luaXQoKHZvaWQgKilhZGV2KTsK IAkJCWlmIChyKQogCQkJCXJldHVybiByOwogCQkJciA9IGFtZGdwdV93Yl9pbml0KGFkZXYpOwpA QCAtMTI0Myw5ICsxMjQzLDkgQEAgc3RhdGljIGludCBhbWRncHVfaW5pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAkJaWYgKCFhZGV2LT5pcF9ibG9ja19lbmFibGVkW2ldKQogCQkJY29u dGludWU7CiAJCS8qIGdtYyBodyBpbml0IGlzIGRvbmUgZWFybHkgKi8KLQkJaWYgKGFkZXYtPmlw X2Jsb2Nrc1tpXS50eXBlID09IEFNREdQVV9JUF9CTE9DS19UWVBFX0dNQykKKwkJaWYgKGFkZXYt PmlwX2Jsb2Nrc1tpXS50eXBlID09IEFNRF9JUF9CTE9DS19UWVBFX0dNQykKIAkJCWNvbnRpbnVl OwotCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5od19pbml0KGFkZXYpOworCQlyID0g YWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5od19pbml0KCh2b2lkICopYWRldik7CiAJCWlmIChy KQogCQkJcmV0dXJuIHI7CiAJfQpAQCAtMTI2MSwxMiArMTI2MSwxMiBAQCBzdGF0aWMgaW50IGFt ZGdwdV9sYXRlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWlmICghYWRldi0+ aXBfYmxvY2tfZW5hYmxlZFtpXSkKIAkJCWNvbnRpbnVlOwogCQkvKiBlbmFibGUgY2xvY2tnYXRp bmcgdG8gc2F2ZSBwb3dlciAqLwotCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5zZXRf Y2xvY2tnYXRpbmdfc3RhdGUoYWRldiwKLQkJCQkJCQkJICAgIEFNREdQVV9DR19TVEFURV9HQVRF KTsKKwkJciA9IGFkZXYtPmlwX2Jsb2Nrc1tpXS5mdW5jcy0+c2V0X2Nsb2NrZ2F0aW5nX3N0YXRl KCh2b2lkICopYWRldiwKKwkJCQkJCQkJICAgIEFNRF9DR19TVEFURV9HQVRFKTsKIAkJaWYgKHIp CiAJCQlyZXR1cm4gcjsKIAkJaWYgKGFkZXYtPmlwX2Jsb2Nrc1tpXS5mdW5jcy0+bGF0ZV9pbml0 KSB7Ci0JCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5sYXRlX2luaXQoYWRldik7CisJ CQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5sYXRlX2luaXQoKHZvaWQgKilhZGV2KTsK IAkJCWlmIChyKQogCQkJCXJldHVybiByOwogCQl9CkBAIC0xMjgyLDIzICsxMjgyLDIzIEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJZm9yIChp ID0gYWRldi0+bnVtX2lwX2Jsb2NrcyAtIDE7IGkgPj0gMDsgaS0tKSB7CiAJCWlmICghYWRldi0+ aXBfYmxvY2tfZW5hYmxlZFtpXSkKIAkJCWNvbnRpbnVlOwotCQlpZiAoYWRldi0+aXBfYmxvY2tz W2ldLnR5cGUgPT0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfR01DKSB7CisJCWlmIChhZGV2LT5pcF9i bG9ja3NbaV0udHlwZSA9PSBBTURfSVBfQkxPQ0tfVFlQRV9HTUMpIHsKIAkJCWFtZGdwdV93Yl9m aW5pKGFkZXYpOwogCQkJYW1kZ3B1X3ZyYW1fc2NyYXRjaF9maW5pKGFkZXYpOwogCQl9CiAJCS8q IHVuZ2F0ZSBibG9ja3MgYmVmb3JlIGh3IGZpbmkgc28gdGhhdCB3ZSBjYW4gc2h1dGRvd24gdGhl IGJsb2NrcyBzYWZlbHkgKi8KLQkJciA9IGFkZXYtPmlwX2Jsb2Nrc1tpXS5mdW5jcy0+c2V0X2Ns b2NrZ2F0aW5nX3N0YXRlKGFkZXYsCi0JCQkJCQkJCSAgICBBTURHUFVfQ0dfU1RBVEVfVU5HQVRF KTsKKwkJciA9IGFkZXYtPmlwX2Jsb2Nrc1tpXS5mdW5jcy0+c2V0X2Nsb2NrZ2F0aW5nX3N0YXRl KCh2b2lkICopYWRldiwKKwkJCQkJCQkJICAgIEFNRF9DR19TVEFURV9VTkdBVEUpOwogCQlpZiAo cikKIAkJCXJldHVybiByOwotCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5od19maW5p KGFkZXYpOworCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5od19maW5pKCh2b2lkICop YWRldik7CiAJCS8qIFhYWCBoYW5kbGUgZXJyb3JzICovCiAJfQogCiAJZm9yIChpID0gYWRldi0+ bnVtX2lwX2Jsb2NrcyAtIDE7IGkgPj0gMDsgaS0tKSB7CiAJCWlmICghYWRldi0+aXBfYmxvY2tf ZW5hYmxlZFtpXSkKIAkJCWNvbnRpbnVlOwotCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNz LT5zd19maW5pKGFkZXYpOworCQlyID0gYWRldi0+aXBfYmxvY2tzW2ldLmZ1bmNzLT5zd19maW5p KCh2b2lkICopYWRldik7CiAJCS8qIFhYWCBoYW5kbGUgZXJyb3JzICovCiAJCWFkZXYtPmlwX2Js b2NrX2VuYWJsZWRbaV0gPSBmYWxzZTsKIAl9CkBAIC0xMzE0LDggKzEzMTQsOCBAQCBzdGF0aWMg aW50IGFtZGdwdV9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlpZiAoIWFk ZXYtPmlwX2Jsb2NrX2VuYWJsZWRbaV0pCiAJCQljb250aW51ZTsKIAkJLyogdW5nYXRlIGJsb2Nr cyBzbyB0aGF0IHN1c3BlbmQgY2FuIHByb3Blcmx5IHNodXQgdGhlbSBkb3duICovCi0JCXIgPSBh ZGV2LT5pcF9ibG9ja3NbaV0uZnVuY3MtPnNldF9jbG9ja2dhdGluZ19zdGF0ZShhZGV2LAotCQkJ CQkJCQkgICAgQU1ER1BVX0NHX1NUQVRFX1VOR0FURSk7CisJCXIgPSBhZGV2LT5pcF9ibG9ja3Nb aV0uZnVuY3MtPnNldF9jbG9ja2dhdGluZ19zdGF0ZSgodm9pZCAqKWFkZXYsCisJCQkJCQkJCSAg ICBBTURfQ0dfU1RBVEVfVU5HQVRFKTsKIAkJLyogWFhYIGhhbmRsZSBlcnJvcnMgKi8KIAkJciA9 IGFkZXYtPmlwX2Jsb2Nrc1tpXS5mdW5jcy0+c3VzcGVuZChhZGV2KTsKIAkJLyogWFhYIGhhbmRs ZSBlcnJvcnMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwppbmRleCAz NTE4NWQ2Li5iNmRkMzc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5j CkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIGludCBhbWRncHVfaW5mb19pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUKIAkJcmV0dXJuIGNv cHlfdG9fdXNlcihvdXQsICZ1aTMyLCBtaW4oc2l6ZSwgNHUpKSA/IC1FRkFVTFQgOiAwOwogCWNh c2UgQU1ER1BVX0lORk9fSFdfSVBfSU5GTzogewogCQlzdHJ1Y3QgZHJtX2FtZGdwdV9pbmZvX2h3 X2lwIGlwID0ge307Ci0JCWVudW0gYW1kZ3B1X2lwX2Jsb2NrX3R5cGUgdHlwZTsKKwkJZW51bSBh bWRfaXBfYmxvY2tfdHlwZSB0eXBlOwogCQl1aW50MzJfdCByaW5nX21hc2sgPSAwOwogCiAJCWlm IChpbmZvLT5xdWVyeV9od19pcC5pcF9pbnN0YW5jZSA+PSBBTURHUFVfSFdfSVBfSU5TVEFOQ0Vf TUFYX0NPVU5UKQpAQCAtMTk0LDI2ICsxOTQsMjYgQEAgc3RhdGljIGludCBhbWRncHVfaW5mb19p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUK IAogCQlzd2l0Y2ggKGluZm8tPnF1ZXJ5X2h3X2lwLnR5cGUpIHsKIAkJY2FzZSBBTURHUFVfSFdf SVBfR0ZYOgotCQkJdHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX0dGWDsKKwkJCXR5cGUgPSBB TURfSVBfQkxPQ0tfVFlQRV9HRlg7CiAJCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+Z2Z4Lm51bV9n ZnhfcmluZ3M7IGkrKykKIAkJCQlyaW5nX21hc2sgfD0gKChhZGV2LT5nZnguZ2Z4X3JpbmdbaV0u cmVhZHkgPyAxIDogMCkgPDwgaSk7CiAJCQlicmVhazsKIAkJY2FzZSBBTURHUFVfSFdfSVBfQ09N UFVURToKLQkJCXR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9HRlg7CisJCQl0eXBlID0gQU1E X0lQX0JMT0NLX1RZUEVfR0ZYOwogCQkJZm9yIChpID0gMDsgaSA8IGFkZXYtPmdmeC5udW1fY29t cHV0ZV9yaW5nczsgaSsrKQogCQkJCXJpbmdfbWFzayB8PSAoKGFkZXYtPmdmeC5jb21wdXRlX3Jp bmdbaV0ucmVhZHkgPyAxIDogMCkgPDwgaSk7CiAJCQlicmVhazsKIAkJY2FzZSBBTURHUFVfSFdf SVBfRE1BOgotCQkJdHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX1NETUE7CisJCQl0eXBlID0g QU1EX0lQX0JMT0NLX1RZUEVfU0RNQTsKIAkJCXJpbmdfbWFzayA9IGFkZXYtPnNkbWFbMF0ucmlu Zy5yZWFkeSA/IDEgOiAwOwogCQkJcmluZ19tYXNrIHw9ICgoYWRldi0+c2RtYVsxXS5yaW5nLnJl YWR5ID8gMSA6IDApIDw8IDEpOwogCQkJYnJlYWs7CiAJCWNhc2UgQU1ER1BVX0hXX0lQX1VWRDoK LQkJCXR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9VVkQ7CisJCQl0eXBlID0gQU1EX0lQX0JM T0NLX1RZUEVfVVZEOwogCQkJcmluZ19tYXNrID0gYWRldi0+dXZkLnJpbmcucmVhZHkgPyAxIDog MDsKIAkJCWJyZWFrOwogCQljYXNlIEFNREdQVV9IV19JUF9WQ0U6Ci0JCQl0eXBlID0gQU1ER1BV X0lQX0JMT0NLX1RZUEVfVkNFOworCQkJdHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX1ZDRTsKIAkJ CWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1ZDRV9SSU5HUzsgaSsrKQogCQkJCXJpbmdfbWFz ayB8PSAoKGFkZXYtPnZjZS5yaW5nW2ldLnJlYWR5ID8gMSA6IDApIDw8IGkpOwogCQkJYnJlYWs7 CkBAIC0yMzUsMjQgKzIzNSwyNCBAQCBzdGF0aWMgaW50IGFtZGdwdV9pbmZvX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZQogCQkJCSAgICBt aW4oKHNpemVfdClzaXplLCBzaXplb2YoaXApKSkgPyAtRUZBVUxUIDogMDsKIAl9CiAJY2FzZSBB TURHUFVfSU5GT19IV19JUF9DT1VOVDogewotCQllbnVtIGFtZGdwdV9pcF9ibG9ja190eXBlIHR5 cGU7CisJCWVudW0gYW1kX2lwX2Jsb2NrX3R5cGUgdHlwZTsKIAkJdWludDMyX3QgY291bnQgPSAw OwogCiAJCXN3aXRjaCAoaW5mby0+cXVlcnlfaHdfaXAudHlwZSkgewogCQljYXNlIEFNREdQVV9I V19JUF9HRlg6Ci0JCQl0eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfR0ZYOworCQkJdHlwZSA9 IEFNRF9JUF9CTE9DS19UWVBFX0dGWDsKIAkJCWJyZWFrOwogCQljYXNlIEFNREdQVV9IV19JUF9D T01QVVRFOgotCQkJdHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX0dGWDsKKwkJCXR5cGUgPSBB TURfSVBfQkxPQ0tfVFlQRV9HRlg7CiAJCQlicmVhazsKIAkJY2FzZSBBTURHUFVfSFdfSVBfRE1B OgotCQkJdHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX1NETUE7CisJCQl0eXBlID0gQU1EX0lQ X0JMT0NLX1RZUEVfU0RNQTsKIAkJCWJyZWFrOwogCQljYXNlIEFNREdQVV9IV19JUF9VVkQ6Ci0J CQl0eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfVVZEOworCQkJdHlwZSA9IEFNRF9JUF9CTE9D S19UWVBFX1VWRDsKIAkJCWJyZWFrOwogCQljYXNlIEFNREdQVV9IV19JUF9WQ0U6Ci0JCQl0eXBl ID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfVkNFOworCQkJdHlwZSA9IEFNRF9JUF9CTE9DS19UWVBF X1ZDRTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKaW5kZXggNGIwYmU5MC4uMzc1NzU5YyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwpAQCAtMTg1LDcgKzE4NSw3IEBA IGludCBhbWRncHVfdXZkX3N3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJfQog CiAJLyogZnJvbSB1dmQgdjUuMCBIVyBhZGRyZXNzaW5nIGNhcGFjaXR5IGluY3JlYXNlZCB0byA2 NCBiaXRzICovCi0JaWYgKCFhbWRncHVfaXBfYmxvY2tfdmVyc2lvbl9jbXAoYWRldiwgQU1ER1BV X0lQX0JMT0NLX1RZUEVfVVZELCA1LCAwKSkKKwlpZiAoIWFtZGdwdV9pcF9ibG9ja192ZXJzaW9u X2NtcChhZGV2LCBBTURfSVBfQkxPQ0tfVFlQRV9VVkQsIDUsIDApKQogCQlhZGV2LT51dmQuYWRk cmVzc182NF9iaXQgPSB0cnVlOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9jaV9kcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Np X2RwbS5jCmluZGV4IDVhOWRhZDguLjAzODA5ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2NpX2RwbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Np X2RwbS5jCkBAIC00MjI3LDggKzQyMjcsOCBAQCBzdGF0aWMgaW50IGNpX3VwZGF0ZV92Y2VfZHBt KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWlmIChhbWRncHVfY3VycmVudF9zdGF0ZS0+ ZXZjbGsgIT0gYW1kZ3B1X25ld19zdGF0ZS0+ZXZjbGspIHsKIAkJaWYgKGFtZGdwdV9uZXdfc3Rh dGUtPmV2Y2xrKSB7CiAJCQkvKiB0dXJuIHRoZSBjbG9ja3Mgb24gd2hlbiBlbmNvZGluZyAqLwot CQkJcmV0ID0gYW1kZ3B1X3NldF9jbG9ja2dhdGluZ19zdGF0ZShhZGV2LCBBTURHUFVfSVBfQkxP Q0tfVFlQRV9WQ0UsCi0JCQkJCQkJICAgIEFNREdQVV9DR19TVEFURV9VTkdBVEUpOworCQkJcmV0 ID0gYW1kZ3B1X3NldF9jbG9ja2dhdGluZ19zdGF0ZShhZGV2LCBBTURfSVBfQkxPQ0tfVFlQRV9W Q0UsCisJCQkJCQkJICAgIEFNRF9DR19TVEFURV9VTkdBVEUpOwogCQkJaWYgKHJldCkKIAkJCQly ZXR1cm4gcmV0OwogCkBAIC00MjQxLDggKzQyNDEsOCBAQCBzdGF0aWMgaW50IGNpX3VwZGF0ZV92 Y2VfZHBtKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJcmV0ID0gY2lfZW5hYmxlX3Zj ZV9kcG0oYWRldiwgdHJ1ZSk7CiAJCX0gZWxzZSB7CiAJCQkvKiB0dXJuIHRoZSBjbG9ja3Mgb2Zm IHdoZW4gbm90IGVuY29kaW5nICovCi0JCQlyZXQgPSBhbWRncHVfc2V0X2Nsb2NrZ2F0aW5nX3N0 YXRlKGFkZXYsIEFNREdQVV9JUF9CTE9DS19UWVBFX1ZDRSwKLQkJCQkJCQkgICAgQU1ER1BVX0NH X1NUQVRFX0dBVEUpOworCQkJcmV0ID0gYW1kZ3B1X3NldF9jbG9ja2dhdGluZ19zdGF0ZShhZGV2 LCBBTURfSVBfQkxPQ0tfVFlQRV9WQ0UsCisJCQkJCQkJICAgIEFNRF9DR19TVEFURV9HQVRFKTsK IAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIApAQCAtNjE3MSwxNyArNjE3MSwyMCBAQCBz dGF0aWMgaW50IGNpX3NldF90ZW1wZXJhdHVyZV9yYW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGNpX2RwbV9lYXJseV9pbml0KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjaV9kcG1fZWFybHlfaW5pdCh2 b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAljaV9kcG1fc2V0X2RwbV9mdW5jcyhhZGV2KTsKIAlj aV9kcG1fc2V0X2lycV9mdW5jcyhhZGV2KTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IGNpX2RwbV9sYXRlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50 IGNpX2RwbV9sYXRlX2luaXQodm9pZCAqaGFuZGxlKQogewogCWludCByZXQ7CisJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlp ZiAoIWFtZGdwdV9kcG0pCiAJCXJldHVybiAwOwpAQCAtNjE5NSw5ICs2MTk4LDEwIEBAIHN0YXRp YyBpbnQgY2lfZHBtX2xhdGVfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIGludCBjaV9kcG1fc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBpbnQgY2lfZHBtX3N3X2luaXQodm9pZCAqaGFuZGxlKQogewogCWlu dCByZXQ7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKiloYW5kbGU7CiAKIAlyZXQgPSBhbWRncHVfaXJxX2FkZF9pZChhZGV2LCAyMzAsICZhZGV2 LT5wbS5kcG0udGhlcm1hbC5pcnEpOwogCWlmIChyZXQpCkBAIC02MjQzLDggKzYyNDcsMTAgQEAg ZHBtX2ZhaWxlZDoKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGNpX2RwbV9zd19maW5p KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjaV9kcG1fc3dfZmluaSh2 b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAltdXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7CiAJ YW1kZ3B1X3BtX3N5c2ZzX2ZpbmkoYWRldik7CiAJY2lfZHBtX2ZpbmkoYWRldik7CkBAIC02MjUz LDEwICs2MjU5LDEyIEBAIHN0YXRpYyBpbnQgY2lfZHBtX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY2lfZHBtX2h3X2luaXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGNpX2RwbV9od19pbml0KHZv aWQgKmhhbmRsZSkKIHsKIAlpbnQgcmV0OwogCisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlpZiAoIWFtZGdwdV9kcG0pCiAJ CXJldHVybiAwOwogCkBAIC02MjcyLDggKzYyODAsMTAgQEAgc3RhdGljIGludCBjaV9kcG1faHdf aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0 aWMgaW50IGNpX2RwbV9od19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGlj IGludCBjaV9kcG1faHdfZmluaSh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlpZiAoYWRldi0+ cG0uZHBtX2VuYWJsZWQpIHsKIAkJbXV0ZXhfbG9jaygmYWRldi0+cG0ubXV0ZXgpOwogCQljaV9k cG1fZGlzYWJsZShhZGV2KTsKQEAgLTYyODMsOCArNjI5MywxMCBAQCBzdGF0aWMgaW50IGNpX2Rw bV9od19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IGNpX2RwbV9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3Rh dGljIGludCBjaV9kcG1fc3VzcGVuZCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlpZiAoYWRl di0+cG0uZHBtX2VuYWJsZWQpIHsKIAkJbXV0ZXhfbG9jaygmYWRldi0+cG0ubXV0ZXgpOwogCQkv KiBkaXNhYmxlIGRwbSAqLwpAQCAtNjI5Niw5ICs2MzA4LDEwIEBAIHN0YXRpYyBpbnQgY2lfZHBt X3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBpbnQgY2lfZHBtX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRp YyBpbnQgY2lfZHBtX3Jlc3VtZSh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHJldDsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAog CWlmIChhZGV2LT5wbS5kcG1fZW5hYmxlZCkgewogCQkvKiBhc2ljIGluaXQgd2lsbCByZXNldCB0 byB0aGUgYm9vdCBzdGF0ZSAqLwpAQCAtNjMxNiwyMCArNjMyOSwyMiBAQCBzdGF0aWMgaW50IGNp X2RwbV9yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBib29sIGNpX2RwbV9pc19pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQor c3RhdGljIGJvb2wgY2lfZHBtX2lzX2lkbGUodm9pZCAqaGFuZGxlKQogewogCS8qIFhYWCAqLwog CXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW50IGNpX2RwbV93YWl0X2Zvcl9pZGxlKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjaV9kcG1fd2FpdF9mb3JfaWRsZSh2 b2lkICpoYW5kbGUpCiB7CiAJLyogWFhYICovCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lk IGNpX2RwbV9wcmludF9zdGF0dXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMg dm9pZCBjaV9kcG1fcHJpbnRfc3RhdHVzKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWRldl9p bmZvKGFkZXYtPmRldiwgIkNJSyBEUE0gcmVnaXN0ZXJzXG4iKTsKIAlkZXZfaW5mbyhhZGV2LT5k ZXYsICIgIEJJT1NfU0NSQVRDSF80PTB4JTA4WFxuIiwKIAkJIFJSRUczMihtbUJJT1NfU0NSQVRD SF80KSk7CkBAIC02NTM1LDcgKzY1NTAsNyBAQCBzdGF0aWMgdm9pZCBjaV9kcG1fcHJpbnRfc3Rh dHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkgUlJFRzMyX1NNQyhpeFNNQ19QQ19D KSk7CiB9CiAKLXN0YXRpYyBpbnQgY2lfZHBtX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCitzdGF0aWMgaW50IGNpX2RwbV9zb2Z0X3Jlc2V0KHZvaWQgKmhhbmRsZSkKIHsK IAlyZXR1cm4gMDsKIH0KQEAgLTY2MTgsMTkgKzY2MzMsMTkgQEAgc3RhdGljIGludCBjaV9kcG1f cHJvY2Vzc19pbnRlcnJ1cHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyBpbnQgY2lfZHBtX3NldF9jbG9ja2dhdGluZ19zdGF0ZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9jbG9ja2dhdGluZ19zdGF0ZSBz dGF0ZSkKK3N0YXRpYyBpbnQgY2lfZHBtX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5k bGUsCisJCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgY2lfZHBtX3NldF9wb3dlcmdhdGluZ19zdGF0ZShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9wb3dlcmdhdGluZ19zdGF0 ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgY2lfZHBtX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpo YW5kbGUsCisJCQkJCSAgZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJcmV0 dXJuIDA7CiB9CiAKLWNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3MgY2lfZHBtX2lwX2Z1bmNz ID0geworY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyBjaV9kcG1faXBfZnVuY3MgPSB7CiAJLmVh cmx5X2luaXQgPSBjaV9kcG1fZWFybHlfaW5pdCwKIAkubGF0ZV9pbml0ID0gY2lfZHBtX2xhdGVf aW5pdCwKIAkuc3dfaW5pdCA9IGNpX2RwbV9zd19pbml0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvY2lrLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWsu YwppbmRleCA3NGNlMGJlLi41ZGFiNTc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9jaWsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWsuYwpAQCAt MTg5Miw2MyArMTg5Miw2MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192 ZXJzaW9uIGJvbmFpcmVfaXBfYmxvY2tzW10gPQogewogCS8qIE9SREVSIE1BVFRFUlMhICovCiAJ ewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX0NPTU1PTiwKKwkJLnR5cGUgPSBBTURf SVBfQkxPQ0tfVFlQRV9DT01NT04sCiAJCS5tYWpvciA9IDEsCiAJCS5taW5vciA9IDAsCiAJCS5y ZXYgPSAwLAogCQkuZnVuY3MgPSAmY2lrX2NvbW1vbl9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5 cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9HTUMsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZ UEVfR01DLAogCQkubWFqb3IgPSA3LAogCQkubWlub3IgPSAwLAogCQkucmV2ID0gMCwKIAkJLmZ1 bmNzID0gJmdtY192N18wX2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9C TE9DS19UWVBFX0lILAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX0lILAogCQkubWFqb3Ig PSAyLAogCQkubWlub3IgPSAwLAogCQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJmNpa19paF9pcF9m dW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9TTUMsCisJCS50 eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfU01DLAogCQkubWFqb3IgPSA3LAogCQkubWlub3IgPSAw LAogCQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJmNpX2RwbV9pcF9mdW5jcywKIAl9LAogCXsKLQkJ LnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9EQ0UsCisJCS50eXBlID0gQU1EX0lQX0JMT0NL X1RZUEVfRENFLAogCQkubWFqb3IgPSA4LAogCQkubWlub3IgPSAyLAogCQkucmV2ID0gMCwKIAkJ LmZ1bmNzID0gJmRjZV92OF8wX2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9J UF9CTE9DS19UWVBFX0dGWCwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9HRlgsCiAJCS5t YWpvciA9IDcsCiAJCS5taW5vciA9IDIsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmZ2Z4X3Y3 XzBfaXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfU0RN QSwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9TRE1BLAogCQkubWFqb3IgPSAyLAogCQku bWlub3IgPSAwLAogCQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJmNpa19zZG1hX2lwX2Z1bmNzLAog CX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX1VWRCwKKwkJLnR5cGUgPSBB TURfSVBfQkxPQ0tfVFlQRV9VVkQsCiAJCS5tYWpvciA9IDQsCiAJCS5taW5vciA9IDIsCiAJCS5y ZXYgPSAwLAogCQkuZnVuY3MgPSAmdXZkX3Y0XzJfaXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBl ID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfVkNFLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBF X1ZDRSwKIAkJLm1ham9yID0gMiwKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAsCkBAIC0xOTYw LDYzICsxOTYwLDYzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrX3ZlcnNp b24gaGF3YWlpX2lwX2Jsb2Nrc1tdID0KIHsKIAkvKiBPUkRFUiBNQVRURVJTISAqLwogCXsKLQkJ LnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9DT01NT04sCisJCS50eXBlID0gQU1EX0lQX0JM T0NLX1RZUEVfQ09NTU9OLAogCQkubWFqb3IgPSAxLAogCQkubWlub3IgPSAwLAogCQkucmV2ID0g MCwKIAkJLmZ1bmNzID0gJmNpa19jb21tb25faXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0g QU1ER1BVX0lQX0JMT0NLX1RZUEVfR01DLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX0dN QywKIAkJLm1ham9yID0gNywKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9 ICZnbWNfdjdfMF9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tf VFlQRV9JSCwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9JSCwKIAkJLm1ham9yID0gMiwK IAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZjaWtfaWhfaXBfZnVuY3Ms CiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfU01DLAorCQkudHlwZSA9 IEFNRF9JUF9CTE9DS19UWVBFX1NNQywKIAkJLm1ham9yID0gNywKIAkJLm1pbm9yID0gMCwKIAkJ LnJldiA9IDAsCiAJCS5mdW5jcyA9ICZjaV9kcG1faXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBl ID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfRENFLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBF X0RDRSwKIAkJLm1ham9yID0gOCwKIAkJLm1pbm9yID0gNSwKIAkJLnJldiA9IDAsCiAJCS5mdW5j cyA9ICZkY2VfdjhfMF9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxP Q0tfVFlQRV9HRlgsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfR0ZYLAogCQkubWFqb3Ig PSA3LAogCQkubWlub3IgPSAzLAogCQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJmdmeF92N18wX2lw X2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX1NETUEsCisJ CS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfU0RNQSwKIAkJLm1ham9yID0gMiwKIAkJLm1pbm9y ID0gMCwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZjaWtfc2RtYV9pcF9mdW5jcywKIAl9LAog CXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9VVkQsCisJCS50eXBlID0gQU1EX0lQ X0JMT0NLX1RZUEVfVVZELAogCQkubWFqb3IgPSA0LAogCQkubWlub3IgPSAyLAogCQkucmV2ID0g MCwKIAkJLmZ1bmNzID0gJnV2ZF92NF8yX2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFN REdQVV9JUF9CTE9DS19UWVBFX1ZDRSwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9WQ0Us CiAJCS5tYWpvciA9IDIsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLApAQCAtMjAyOCw2MyAr MjAyOCw2MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIGth YmluaV9pcF9ibG9ja3NbXSA9CiB7CiAJLyogT1JERVIgTUFUVEVSUyEgKi8KIAl7Ci0JCS50eXBl ID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfQ09NTU9OLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19U WVBFX0NPTU1PTiwKIAkJLm1ham9yID0gMSwKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAsCiAJ CS5mdW5jcyA9ICZjaWtfY29tbW9uX2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQ VV9JUF9CTE9DS19UWVBFX0dNQywKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9HTUMsCiAJ CS5tYWpvciA9IDcsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmZ21j X3Y3XzBfaXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVf SUgsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfSUgsCiAJCS5tYWpvciA9IDIsCiAJCS5t aW5vciA9IDAsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmY2lrX2loX2lwX2Z1bmNzLAogCX0s CiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX1NNQywKKwkJLnR5cGUgPSBBTURf SVBfQkxPQ0tfVFlQRV9TTUMsCiAJCS5tYWpvciA9IDcsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYg PSAwLAogCQkuZnVuY3MgPSAma3ZfZHBtX2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFN REdQVV9JUF9CTE9DS19UWVBFX0RDRSwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9EQ0Us CiAJCS5tYWpvciA9IDgsCiAJCS5taW5vciA9IDMsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAm ZGNlX3Y4XzBfaXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZ UEVfR0ZYLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX0dGWCwKIAkJLm1ham9yID0gNywK IAkJLm1pbm9yID0gMiwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZnZnhfdjdfMF9pcF9mdW5j cywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9TRE1BLAorCQkudHlw ZSA9IEFNRF9JUF9CTE9DS19UWVBFX1NETUEsCiAJCS5tYWpvciA9IDIsCiAJCS5taW5vciA9IDAs CiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmY2lrX3NkbWFfaXBfZnVuY3MsCiAJfSwKIAl7Ci0J CS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfVVZELAorCQkudHlwZSA9IEFNRF9JUF9CTE9D S19UWVBFX1VWRCwKIAkJLm1ham9yID0gNCwKIAkJLm1pbm9yID0gMiwKIAkJLnJldiA9IDAsCiAJ CS5mdW5jcyA9ICZ1dmRfdjRfMl9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVf SVBfQkxPQ0tfVFlQRV9WQ0UsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfVkNFLAogCQku bWFqb3IgPSAyLAogCQkubWlub3IgPSAwLAogCQkucmV2ID0gMCwKQEAgLTIwOTYsNjMgKzIwOTYs NjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiBtdWxsaW5z X2lwX2Jsb2Nrc1tdID0KIHsKIAkvKiBPUkRFUiBNQVRURVJTISAqLwogCXsKLQkJLnR5cGUgPSBB TURHUFVfSVBfQkxPQ0tfVFlQRV9DT01NT04sCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVf Q09NTU9OLAogCQkubWFqb3IgPSAxLAogCQkubWlub3IgPSAwLAogCQkucmV2ID0gMCwKIAkJLmZ1 bmNzID0gJmNpa19jb21tb25faXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQ X0JMT0NLX1RZUEVfR01DLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX0dNQywKIAkJLm1h am9yID0gNywKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZnbWNfdjdf MF9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9JSCwK KwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9JSCwKIAkJLm1ham9yID0gMiwKIAkJLm1pbm9y ID0gMCwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZjaWtfaWhfaXBfZnVuY3MsCiAJfSwKIAl7 Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfU01DLAorCQkudHlwZSA9IEFNRF9JUF9C TE9DS19UWVBFX1NNQywKIAkJLm1ham9yID0gNywKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAs CiAJCS5mdW5jcyA9ICZrdl9kcG1faXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BV X0lQX0JMT0NLX1RZUEVfRENFLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX0RDRSwKIAkJ Lm1ham9yID0gOCwKIAkJLm1pbm9yID0gMywKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZkY2Vf djhfMF9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9H RlgsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfR0ZYLAogCQkubWFqb3IgPSA3LAogCQku bWlub3IgPSAyLAogCQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJmdmeF92N18wX2lwX2Z1bmNzLAog CX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX1NETUEsCisJCS50eXBlID0g QU1EX0lQX0JMT0NLX1RZUEVfU0RNQSwKIAkJLm1ham9yID0gMiwKIAkJLm1pbm9yID0gMCwKIAkJ LnJldiA9IDAsCiAJCS5mdW5jcyA9ICZjaWtfc2RtYV9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5 cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9VVkQsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZ UEVfVVZELAogCQkubWFqb3IgPSA0LAogCQkubWlub3IgPSAyLAogCQkucmV2ID0gMCwKIAkJLmZ1 bmNzID0gJnV2ZF92NF8yX2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9C TE9DS19UWVBFX1ZDRSwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9WQ0UsCiAJCS5tYWpv ciA9IDIsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLApAQCAtMjE2NCw2MyArMjE2NCw2MyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIGthdmVyaV9pcF9i bG9ja3NbXSA9CiB7CiAJLyogT1JERVIgTUFUVEVSUyEgKi8KIAl7Ci0JCS50eXBlID0gQU1ER1BV X0lQX0JMT0NLX1RZUEVfQ09NTU9OLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX0NPTU1P TiwKIAkJLm1ham9yID0gMSwKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9 ICZjaWtfY29tbW9uX2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9D S19UWVBFX0dNQywKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9HTUMsCiAJCS5tYWpvciA9 IDcsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmZ21jX3Y3XzBfaXBf ZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfSUgsCisJCS50 eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfSUgsCiAJCS5tYWpvciA9IDIsCiAJCS5taW5vciA9IDAs CiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmY2lrX2loX2lwX2Z1bmNzLAogCX0sCiAJewotCQku dHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX1NNQywKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tf VFlQRV9TTUMsCiAJCS5tYWpvciA9IDcsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLAogCQku ZnVuY3MgPSAma3ZfZHBtX2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9C TE9DS19UWVBFX0RDRSwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9EQ0UsCiAJCS5tYWpv ciA9IDgsCiAJCS5taW5vciA9IDEsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmZGNlX3Y4XzBf aXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfR0ZYLAor CQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX0dGWCwKIAkJLm1ham9yID0gNywKIAkJLm1pbm9y ID0gMSwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZnZnhfdjdfMF9pcF9mdW5jcywKIAl9LAog CXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9TRE1BLAorCQkudHlwZSA9IEFNRF9J UF9CTE9DS19UWVBFX1NETUEsCiAJCS5tYWpvciA9IDIsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYg PSAwLAogCQkuZnVuY3MgPSAmY2lrX3NkbWFfaXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0g QU1ER1BVX0lQX0JMT0NLX1RZUEVfVVZELAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX1VW RCwKIAkJLm1ham9yID0gNCwKIAkJLm1pbm9yID0gMiwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9 ICZ1dmRfdjRfMl9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tf VFlQRV9WQ0UsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfVkNFLAogCQkubWFqb3IgPSAy LAogCQkubWlub3IgPSAwLAogCQkucmV2ID0gMCwKQEAgLTIyNzgsOCArMjI3OCwxMCBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9hc2ljX2Z1bmNzIGNpa19hc2ljX2Z1bmNzID0KIAkud2Fp dF9mb3JfbWNfaWRsZSA9ICZnbWNfdjdfMF9tY193YWl0X2Zvcl9pZGxlLAogfTsKIAotc3RhdGlj IGludCBjaWtfY29tbW9uX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitz dGF0aWMgaW50IGNpa19jb21tb25fZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisK IAlhZGV2LT5zbWNfcnJlZyA9ICZjaWtfc21jX3JyZWc7CiAJYWRldi0+c21jX3dyZWcgPSAmY2lr X3NtY193cmVnOwogCWFkZXYtPnBjaWVfcnJlZyA9ICZjaWtfcGNpZV9ycmVnOwpAQCAtMjQxNywx OCArMjQxOSwyMCBAQCBzdGF0aWMgaW50IGNpa19jb21tb25fZWFybHlfaW5pdChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBjaWtfY29tbW9u X3N3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGNpa19jb21t b25fc3dfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg Y2lrX2NvbW1vbl9zd19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGlu dCBjaWtfY29tbW9uX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IGNpa19jb21tb25faHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK K3N0YXRpYyBpbnQgY2lrX2NvbW1vbl9od19pbml0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwog CS8qIG1vdmUgdGhlIGdvbGRlbiByZWdzIHBlciBJUCBibG9jayAqLwogCWNpa19pbml0X2dvbGRl bl9yZWdpc3RlcnMoYWRldik7CiAJLyogZW5hYmxlIHBjaWUgZ2VuMi8zIGxpbmsgKi8KQEAgLTI0 MzksNTUgKzI0NDMsNTkgQEAgc3RhdGljIGludCBjaWtfY29tbW9uX2h3X2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY2lrX2NvbW1v bl9od19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjaWtfY29t bW9uX2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IGNpa19jb21tb25fc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBp bnQgY2lrX2NvbW1vbl9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXJldHVybiBj aWtfY29tbW9uX2h3X2ZpbmkoYWRldik7CiB9CiAKLXN0YXRpYyBpbnQgY2lrX2NvbW1vbl9yZXN1 bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGNpa19jb21tb25fcmVz dW1lKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXJldHVybiBjaWtfY29tbW9uX2h3X2luaXQo YWRldik7CiB9CiAKLXN0YXRpYyBib29sIGNpa19jb21tb25faXNfaWRsZShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKK3N0YXRpYyBib29sIGNpa19jb21tb25faXNfaWRsZSh2b2lkICpoYW5k bGUpCiB7CiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbnQgY2lrX2NvbW1vbl93YWl0X2Zv cl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjaWtfY29tbW9u X3dhaXRfZm9yX2lkbGUodm9pZCAqaGFuZGxlKQogewogCXJldHVybiAwOwogfQogCi1zdGF0aWMg dm9pZCBjaWtfY29tbW9uX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK K3N0YXRpYyB2b2lkIGNpa19jb21tb25fcHJpbnRfc3RhdHVzKHZvaWQgKmhhbmRsZSkKIHsKIAog fQogCi1zdGF0aWMgaW50IGNpa19jb21tb25fc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBpbnQgY2lrX2NvbW1vbl9zb2Z0X3Jlc2V0KHZvaWQgKmhhbmRsZSkK IHsKIAkvKiBYWFggaGFyZCByZXNldD8/ICovCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg Y2lrX2NvbW1vbl9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCi0JCQkJCSAgICBlbnVtIGFtZGdwdV9jbG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSkKK3N0YXRp YyBpbnQgY2lrX2NvbW1vbl9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJ CQkgICAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBpbnQgY2lrX2NvbW1vbl9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJCSAgICBlbnVtIGFtZGdwdV9wb3dlcmdhdGluZ19zdGF0 ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgY2lrX2NvbW1vbl9zZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9p ZCAqaGFuZGxlLAorCQkJCQkgICAgZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCiB7 CiAJcmV0dXJuIDA7CiB9CiAKLWNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3MgY2lrX2NvbW1v bl9pcF9mdW5jcyA9IHsKK2NvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgY2lrX2NvbW1vbl9pcF9m dW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9IGNpa19jb21tb25fZWFybHlfaW5pdCwKIAkubGF0ZV9p bml0ID0gTlVMTCwKIAkuc3dfaW5pdCA9IGNpa19jb21tb25fc3dfaW5pdCwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npay5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvY2lrLmgKaW5kZXggOTY3ZDYzMC4uNWViZDJkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvY2lrLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Y2lrLmgKQEAgLTI0LDcgKzI0LDcgQEAKICNpZm5kZWYgX19DSUtfSF9fCiAjZGVmaW5lIF9fQ0lL X0hfXwogCi1leHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyBjaWtfY29tbW9uX2lw X2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgY2lrX2NvbW1vbl9pcF9m dW5jczsKIAogdm9pZCBjaWtfc3JibV9zZWxlY3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs CiAJCSAgICAgdTMyIG1lLCB1MzIgcGlwZSwgdTMyIHF1ZXVlLCB1MzIgdm1pZCk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfZHBtLmggYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9jaWtfZHBtLmgKaW5kZXggMzVkOGVmZC4uYjFjOGU3YiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX2RwbS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2Npa19kcG0uaApAQCAtMjQsNyArMjQsNyBAQAogI2lmbmRlZiBfX0NJ S19EUE1fSF9fCiAjZGVmaW5lIF9fQ0lLX0RQTV9IX18KIAotZXh0ZXJuIGNvbnN0IHN0cnVjdCBh bWRncHVfaXBfZnVuY3MgY2lfZHBtX2lwX2Z1bmNzOwotZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRn cHVfaXBfZnVuY3Mga3ZfZHBtX2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBf ZnVuY3MgY2lfZHBtX2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3Mg a3ZfZHBtX2lwX2Z1bmNzOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2Npa19paC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX2loLmMK aW5kZXggODFlOGJiYWIuLjg5OTNjNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2Npa19paC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19paC5j CkBAIC0yNzEsMTYgKzI3MSwxOSBAQCBzdGF0aWMgdm9pZCBjaWtfaWhfc2V0X3JwdHIoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJV1JFRzMyKG1tSUhfUkJfUlBUUiwgYWRldi0+aXJxLmlo LnJwdHIpOwogfQogCi1zdGF0aWMgaW50IGNpa19paF9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjaWtfaWhfZWFybHlfaW5pdCh2b2lkICpoYW5kbGUp CiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KiloYW5kbGU7CisKIAljaWtfaWhfc2V0X2ludGVycnVwdF9mdW5jcyhhZGV2KTsKIAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IGNpa19paF9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQorc3RhdGljIGludCBjaWtfaWhfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50 IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KiloYW5kbGU7CiAKIAlyID0gYW1kZ3B1X2loX3JpbmdfaW5pdChhZGV2LCA2NCAqIDEwMjQsIGZh bHNlKTsKIAlpZiAocikKQEAgLTI5MSwxNyArMjk0LDIwIEBAIHN0YXRpYyBpbnQgY2lrX2loX3N3 X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9CiAKLXN0YXRp YyBpbnQgY2lrX2loX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMg aW50IGNpa19paF9zd19maW5pKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWFtZGdwdV9pcnFf ZmluaShhZGV2KTsKIAlhbWRncHVfaWhfcmluZ19maW5pKGFkZXYpOwogCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBpbnQgY2lrX2loX2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CitzdGF0aWMgaW50IGNpa19paF9od19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRs ZTsKIAogCXIgPSBjaWtfaWhfaXJxX2luaXQoYWRldik7CiAJaWYgKHIpCkBAIC0zMTAsMjUgKzMx NiwzMiBAQCBzdGF0aWMgaW50IGNpa19paF9od19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNpa19paF9od19maW5pKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjaWtfaWhfaHdfZmluaSh2b2lkICpoYW5k bGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKiloYW5kbGU7CisKIAljaWtfaWhfaXJxX2Rpc2FibGUoYWRldik7CiAKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIGludCBjaWtfaWhfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKK3N0YXRpYyBpbnQgY2lrX2loX3N1c3BlbmQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJ cmV0dXJuIGNpa19paF9od19maW5pKGFkZXYpOwogfQogCi1zdGF0aWMgaW50IGNpa19paF9yZXN1 bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGNpa19paF9yZXN1bWUo dm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJcmV0dXJuIGNpa19paF9od19pbml0KGFkZXYpOwog fQogCi1zdGF0aWMgYm9vbCBjaWtfaWhfaXNfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKK3N0YXRpYyBib29sIGNpa19paF9pc19pZGxlKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAl1 MzIgdG1wID0gUlJFRzMyKG1tU1JCTV9TVEFUVVMpOwogCiAJaWYgKHRtcCAmIFNSQk1fU1RBVFVT X19JSF9CVVNZX01BU0spCkBAIC0zMzcsMTAgKzM1MCwxMSBAQCBzdGF0aWMgYm9vbCBjaWtfaWhf aXNfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gdHJ1ZTsKIH0KIAot c3RhdGljIGludCBjaWtfaWhfd2FpdF9mb3JfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKK3N0YXRpYyBpbnQgY2lrX2loX3dhaXRfZm9yX2lkbGUodm9pZCAqaGFuZGxlKQogewogCXVu c2lnbmVkIGk7CiAJdTMyIHRtcDsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT51c2Vj X3RpbWVvdXQ7IGkrKykgewogCQkvKiByZWFkIE1DX1NUQVRVUyAqLwpAQCAtMzUyLDggKzM2Niwx MCBAQCBzdGF0aWMgaW50IGNpa19paF93YWl0X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCXJldHVybiAtRVRJTUVET1VUOwogfQogCi1zdGF0aWMgdm9pZCBjaWtfaWhfcHJp bnRfc3RhdHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIHZvaWQgY2lrX2lo X3ByaW50X3N0YXR1cyh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlkZXZfaW5mbyhhZGV2LT5k ZXYsICJDSUsgSUggcmVnaXN0ZXJzXG4iKTsKIAlkZXZfaW5mbyhhZGV2LT5kZXYsICIgIFNSQk1f U1RBVFVTPTB4JTA4WFxuIiwKIAkJUlJFRzMyKG1tU1JCTV9TVEFUVVMpKTsKQEAgLTM3OSw4ICsz OTUsMTAgQEAgc3RhdGljIHZvaWQgY2lrX2loX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKIAkJIFJSRUczMihtbUlIX1JCX1dQVFIpKTsKIH0KIAotc3RhdGljIGludCBj aWtfaWhfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQg Y2lrX2loX3NvZnRfcmVzZXQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJdTMyIHNyYm1fc29m dF9yZXNldCA9IDA7CiAJdTMyIHRtcCA9IFJSRUczMihtbVNSQk1fU1RBVFVTKTsKIApAQCAtMzg4 LDcgKzQwNiw3IEBAIHN0YXRpYyBpbnQgY2lrX2loX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJCXNyYm1fc29mdF9yZXNldCB8PSBTUkJNX1NPRlRfUkVTRVRfX1NPRlRf UkVTRVRfSUhfTUFTSzsKIAogCWlmIChzcmJtX3NvZnRfcmVzZXQpIHsKLQkJY2lrX2loX3ByaW50 X3N0YXR1cyhhZGV2KTsKKwkJY2lrX2loX3ByaW50X3N0YXR1cygodm9pZCAqKWFkZXYpOwogCiAJ CXRtcCA9IFJSRUczMihtbVNSQk1fU09GVF9SRVNFVCk7CiAJCXRtcCB8PSBzcmJtX3NvZnRfcmVz ZXQ7CkBAIC00MDUsMjUgKzQyMywyNSBAQCBzdGF0aWMgaW50IGNpa19paF9zb2Z0X3Jlc2V0KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkvKiBXYWl0IGEgbGl0dGxlIGZvciB0aGluZ3Mg dG8gc2V0dGxlIGRvd24gKi8KIAkJdWRlbGF5KDUwKTsKIAotCQljaWtfaWhfcHJpbnRfc3RhdHVz KGFkZXYpOworCQljaWtfaWhfcHJpbnRfc3RhdHVzKCh2b2lkICopYWRldik7CiAJfQogCiAJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY2lrX2loX3NldF9jbG9ja2dhdGluZ19zdGF0ZShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9jbG9ja2dhdGluZ19z dGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgY2lrX2loX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lk ICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY2lrX2loX3NldF9wb3dlcmdhdGluZ19zdGF0ZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9wb3dlcmdhdGlu Z19zdGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgY2lrX2loX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2 b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCiB7 CiAJcmV0dXJuIDA7CiB9CiAKLWNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3MgY2lrX2loX2lw X2Z1bmNzID0geworY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyBjaWtfaWhfaXBfZnVuY3MgPSB7 CiAJLmVhcmx5X2luaXQgPSBjaWtfaWhfZWFybHlfaW5pdCwKIAkubGF0ZV9pbml0ID0gTlVMTCwK IAkuc3dfaW5pdCA9IGNpa19paF9zd19pbml0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvY2lrX2loLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfaWgu aAppbmRleCBmNzAxNjI1Li42YjBmMzc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9jaWtfaWguaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfaWgu aApAQCAtMjQsNiArMjQsNiBAQAogI2lmbmRlZiBfX0NJS19JSF9IX18KICNkZWZpbmUgX19DSUtf SUhfSF9fCiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIGNpa19paF9pcF9m dW5jczsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIGNpa19paF9pcF9mdW5jczsK IAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2Rt YS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX3NkbWEuYwppbmRleCBkNTA1NWVh Li43YzgxNmI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2Rt YS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKQEAgLTkyNyw4 ICs5MjcsMTAgQEAgc3RhdGljIHZvaWQgY2lrX2VuYWJsZV9zZG1hX21nbHMoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCiAJfQogfQogCi1zdGF0aWMgaW50IGNpa19zZG1hX2Vhcmx5X2luaXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGNpa19zZG1hX2Vhcmx5X2lu aXQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVj dCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJY2lrX3NkbWFfc2V0X3JpbmdfZnVuY3MoYWRl dik7CiAJY2lrX3NkbWFfc2V0X2lycV9mdW5jcyhhZGV2KTsKIAljaWtfc2RtYV9zZXRfYnVmZmVy X2Z1bmNzKGFkZXYpOwpAQCAtOTM3LDkgKzkzOSwxMCBAQCBzdGF0aWMgaW50IGNpa19zZG1hX2Vh cmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBpbnQgY2lrX3NkbWFfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0 YXRpYyBpbnQgY2lrX3NkbWFfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRn cHVfZGV2aWNlICopaGFuZGxlOwogCWludCByOwogCiAJciA9IGNpa19zZG1hX2luaXRfbWljcm9j b2RlKGFkZXYpOwpAQCAtOTkwLDE3ICs5OTMsMjAgQEAgc3RhdGljIGludCBjaWtfc2RtYV9zd19p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiByOwogfQogCi1zdGF0aWMg aW50IGNpa19zZG1hX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMg aW50IGNpa19zZG1hX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJYW1kZ3B1X3Jp bmdfZmluaSgmYWRldi0+c2RtYVswXS5yaW5nKTsKIAlhbWRncHVfcmluZ19maW5pKCZhZGV2LT5z ZG1hWzFdLnJpbmcpOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY2lrX3NkbWFfaHdf aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgY2lrX3NkbWFfaHdf aW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlyID0gY2lrX3NkbWFfc3Rh cnQoYWRldik7CiAJaWYgKHIpCkBAIC0xMDA5LDI3ICsxMDE1LDMyIEBAIHN0YXRpYyBpbnQgY2lr X3NkbWFfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gcjsKIH0K IAotc3RhdGljIGludCBjaWtfc2RtYV9od19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQorc3RhdGljIGludCBjaWtfc2RtYV9od19maW5pKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwog CWNpa19zZG1hX2VuYWJsZShhZGV2LCBmYWxzZSk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBjaWtfc2RtYV9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGlj IGludCBjaWtfc2RtYV9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXJldHVybiBj aWtfc2RtYV9od19maW5pKGFkZXYpOwogfQogCi1zdGF0aWMgaW50IGNpa19zZG1hX3Jlc3VtZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgY2lrX3NkbWFfcmVzdW1lKHZv aWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXJldHVybiBjaWtfc2RtYV9od19pbml0KGFkZXYpOwog fQogCi1zdGF0aWMgYm9vbCBjaWtfc2RtYV9pc19pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQorc3RhdGljIGJvb2wgY2lrX3NkbWFfaXNfaWRsZSh2b2lkICpoYW5kbGUpCiB7CisJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7 CiAJdTMyIHRtcCA9IFJSRUczMihtbVNSQk1fU1RBVFVTMik7CiAKIAlpZiAodG1wICYgKFNSQk1f U1RBVFVTMl9fU0RNQV9CVVNZX01BU0sgfApAQCAtMTAzOSwxMCArMTA1MCwxMSBAQCBzdGF0aWMg Ym9vbCBjaWtfc2RtYV9pc19pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVy biB0cnVlOwogfQogCi1zdGF0aWMgaW50IGNpa19zZG1hX3dhaXRfZm9yX2lkbGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGNpa19zZG1hX3dhaXRfZm9yX2lkbGUodm9p ZCAqaGFuZGxlKQogewogCXVuc2lnbmVkIGk7CiAJdTMyIHRtcDsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWZvciAoaSA9 IDA7IGkgPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgewogCQl0bXAgPSBSUkVHMzIobW1TUkJN X1NUQVRVUzIpICYgKFNSQk1fU1RBVFVTMl9fU0RNQV9CVVNZX01BU0sgfApAQCAtMTA1NSw5ICsx MDY3LDEwIEBAIHN0YXRpYyBpbnQgY2lrX3NkbWFfd2FpdF9mb3JfaWRsZShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAlyZXR1cm4gLUVUSU1FRE9VVDsKIH0KIAotc3RhdGljIHZvaWQgY2lr X3NkbWFfcHJpbnRfc3RhdHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIHZv aWQgY2lrX3NkbWFfcHJpbnRfc3RhdHVzKHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgaSwgajsKKwlz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRs ZTsKIAogCWRldl9pbmZvKGFkZXYtPmRldiwgIkNJSyBTRE1BIHJlZ2lzdGVyc1xuIik7CiAJZGV2 X2luZm8oYWRldi0+ZGV2LCAiICBTUkJNX1NUQVRVUzI9MHglMDhYXG4iLApAQCAtMTEwMyw5ICsx MTE2LDEwIEBAIHN0YXRpYyB2b2lkIGNpa19zZG1hX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAl9CiB9CiAKLXN0YXRpYyBpbnQgY2lrX3NkbWFfc29mdF9yZXNldChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgY2lrX3NkbWFfc29mdF9yZXNl dCh2b2lkICpoYW5kbGUpCiB7CiAJdTMyIHNyYm1fc29mdF9yZXNldCA9IDA7CisJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAJdTMy IHRtcCA9IFJSRUczMihtbVNSQk1fU1RBVFVTMik7CiAKIAlpZiAodG1wICYgU1JCTV9TVEFUVVMy X19TRE1BX0JVU1lfTUFTSykgewpAQCAtMTEyNCw3ICsxMTM4LDcgQEAgc3RhdGljIGludCBjaWtf c2RtYV9zb2Z0X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCX0KIAogCWlmIChz cmJtX3NvZnRfcmVzZXQpIHsKLQkJY2lrX3NkbWFfcHJpbnRfc3RhdHVzKGFkZXYpOworCQljaWtf c2RtYV9wcmludF9zdGF0dXMoKHZvaWQgKilhZGV2KTsKIAogCQl0bXAgPSBSUkVHMzIobW1TUkJN X1NPRlRfUkVTRVQpOwogCQl0bXAgfD0gc3JibV9zb2Z0X3Jlc2V0OwpAQCAtMTE0MSw3ICsxMTU1 LDcgQEAgc3RhdGljIGludCBjaWtfc2RtYV9zb2Z0X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCQkvKiBXYWl0IGEgbGl0dGxlIGZvciB0aGluZ3MgdG8gc2V0dGxlIGRvd24gKi8K IAkJdWRlbGF5KDUwKTsKIAotCQljaWtfc2RtYV9wcmludF9zdGF0dXMoYWRldik7CisJCWNpa19z ZG1hX3ByaW50X3N0YXR1cygodm9pZCAqKWFkZXYpOwogCX0KIAogCXJldHVybiAwOwpAQCAtMTI0 MywxMiArMTI1NywxMyBAQCBzdGF0aWMgaW50IGNpa19zZG1hX3Byb2Nlc3NfaWxsZWdhbF9pbnN0 X2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBjaWtfc2RtYV9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0 aWMgaW50IGNpa19zZG1hX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJ CSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJYm9vbCBnYXRlID0gZmFs c2U7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KiloYW5kbGU7CiAKLQlpZiAoc3RhdGUgPT0gQU1ER1BVX0NHX1NUQVRFX0dBVEUpCisJaWYgKHN0 YXRlID09IEFNRF9DR19TVEFURV9HQVRFKQogCQlnYXRlID0gdHJ1ZTsKIAogCWNpa19lbmFibGVf c2RtYV9tZ2NnKGFkZXYsIGdhdGUpOwpAQCAtMTI1NywxMyArMTI3MiwxMyBAQCBzdGF0aWMgaW50 IGNpa19zZG1hX3NldF9jbG9ja2dhdGluZ19zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBjaWtfc2RtYV9zZXRfcG93ZXJnYXRpbmdf c3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfcG93 ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IGNpa19zZG1hX3NldF9wb3dlcmdhdGlu Z19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUg c3RhdGUpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLWNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3Mg Y2lrX3NkbWFfaXBfZnVuY3MgPSB7Citjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIGNpa19zZG1h X2lwX2Z1bmNzID0gewogCS5lYXJseV9pbml0ID0gY2lrX3NkbWFfZWFybHlfaW5pdCwKIAkubGF0 ZV9pbml0ID0gTlVMTCwKIAkuc3dfaW5pdCA9IGNpa19zZG1hX3N3X2luaXQsCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5oIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvY2lrX3NkbWEuaAppbmRleCA0MmI1OTk2Li4wMjc3MjdjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmgKQEAgLTI0LDYgKzI0LDYgQEAKICNpZm5kZWYgX19D SUtfU0RNQV9IX18KICNkZWZpbmUgX19DSUtfU0RNQV9IX18KIAotZXh0ZXJuIGNvbnN0IHN0cnVj dCBhbWRncHVfaXBfZnVuY3MgY2lrX3NkbWFfaXBfZnVuY3M7CitleHRlcm4gY29uc3Qgc3RydWN0 IGFtZF9pcF9mdW5jcyBjaWtfc2RtYV9pcF9mdW5jczsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jel9kcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2N6X2RwbS5jCmluZGV4IDI2NDliNTAuLmYyNzViNWQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2N6X2RwbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2N6X2RwbS5jCkBAIC01NDIsMjQgKzU0MiwyOSBAQCBzdGF0aWMgdm9pZCBjel9kcG1f cHJpbnRfcG93ZXJfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIHN0YXRpYyB2 b2lkIGN6X2RwbV9zZXRfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogCi1zdGF0 aWMgaW50IGN6X2RwbV9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3Rh dGljIGludCBjel9kcG1fZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAljel9k cG1fc2V0X2Z1bmNzKGFkZXYpOwogCiAJcmV0dXJuIDA7CiB9CiAKIAotc3RhdGljIGludCBjel9k cG1fbGF0ZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjel9k cG1fbGF0ZV9pbml0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCS8qIHBvd2VyZG93biB1bnVz ZWQgYmxvY2tzIGZvciBub3cgKi8KIAljel9kcG1fcG93ZXJnYXRlX3V2ZChhZGV2LCB0cnVlKTsK IAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGN6X2RwbV9zd19pbml0KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjel9kcG1fc3dfaW5pdCh2b2lkICpoYW5kbGUp CiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KiloYW5kbGU7CiAJaW50IHJldCA9IDA7CiAJLyogZml4IG1lIHRvIGFkZCB0aGVybWFsIHN1cHBv cnQgVE9ETyAqLwogCkBAIC02MDIsOCArNjA3LDEwIEBAIGRwbV9pbml0X2ZhaWxlZDoKIAlyZXR1 cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGN6X2RwbV9zd19maW5pKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQorc3RhdGljIGludCBjel9kcG1fc3dfZmluaSh2b2lkICpoYW5kbGUpCiB7CisJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5k bGU7CisKIAltdXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7CiAJYW1kZ3B1X3BtX3N5c2ZzX2Zp bmkoYWRldik7CiAJY3pfZHBtX2ZpbmkoYWRldik7CkBAIC0xMjE2LDggKzEyMjMsOSBAQCBzdGF0 aWMgaW50IGN6X2RwbV9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgY3pfZHBtX2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCitzdGF0aWMgaW50IGN6X2RwbV9od19pbml0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsK IAlpbnQgcmV0ID0gMDsKIAogCW11dGV4X2xvY2soJmFkZXYtPnBtLm11dGV4KTsKQEAgLTEyODIs OSArMTI5MCwxMCBAQCBzdGF0aWMgaW50IGN6X2RwbV9kaXNhYmxlKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGN6X2RwbV9od19maW5pKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjel9kcG1faHdfZmluaSh2b2lk ICpoYW5kbGUpCiB7CiAJaW50IHJldCA9IDA7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAltdXRleF9sb2NrKCZhZGV2LT5w bS5tdXRleCk7CiAKQEAgLTEzMDUsOSArMTMxNCwxMCBAQCBzdGF0aWMgaW50IGN6X2RwbV9od19m aW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRp YyBpbnQgY3pfZHBtX3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMg aW50IGN6X2RwbV9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcmV0ID0gMDsKKwlzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsK IAogCWlmIChhZGV2LT5wbS5kcG1fZW5hYmxlZCkgewogCQltdXRleF9sb2NrKCZhZGV2LT5wbS5t dXRleCk7CkBAIC0xMzI0LDkgKzEzMzQsMTAgQEAgc3RhdGljIGludCBjel9kcG1fc3VzcGVuZChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50 IGN6X2RwbV9yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGN6 X2RwbV9yZXN1bWUodm9pZCAqaGFuZGxlKQogewogCWludCByZXQgPSAwOworCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJbXV0 ZXhfbG9jaygmYWRldi0+cG0ubXV0ZXgpOwogCXJldCA9IGN6X3NtdV9pbml0KGFkZXYpOwpAQCAt MTM2OCwxNCArMTM3OSwxNCBAQCBzdGF0aWMgaW50IGN6X2RwbV9yZXN1bWUoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY3pfZHBtX3NldF9j bG9ja2dhdGluZ19zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJZW51bSBh bWRncHVfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IGN6X2RwbV9zZXRfY2xv Y2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQllbnVtIGFtZF9jbG9ja2dhdGluZ19z dGF0ZSBzdGF0ZSkKIHsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBjel9kcG1fc2V0X3Bv d2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQllbnVtIGFt ZGdwdV9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgY3pfZHBtX3NldF9wb3dl cmdhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCWVudW0gYW1kX3Bvd2VyZ2F0aW5nX3N0 YXRlIHN0YXRlKQogewogCXJldHVybiAwOwogfQpAQCAtMTczMywxMSArMTc0NCwxMSBAQCBzdGF0 aWMgdm9pZCBjel9kcG1fcG93ZXJnYXRlX3V2ZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg Ym9vbCBnYXRlKQogCWlmIChnYXRlKSB7CiAJCWlmIChwaS0+Y2Fwc191dmRfcGcpIHsKIAkJCS8q IGRpc2FibGUgY2xvY2tnYXRpbmcgc28gd2UgY2FuIHByb3Blcmx5IHNodXQgZG93biB0aGUgYmxv Y2sgKi8KLQkJCXJldCA9IGFtZGdwdV9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoYWRldiwgQU1ER1BV X0lQX0JMT0NLX1RZUEVfVVZELAotCQkJCQkJCSAgICBBTURHUFVfQ0dfU1RBVEVfVU5HQVRFKTsK KwkJCXJldCA9IGFtZGdwdV9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoYWRldiwgQU1EX0lQX0JMT0NL X1RZUEVfVVZELAorCQkJCQkJCSAgICBBTURfQ0dfU1RBVEVfVU5HQVRFKTsKIAkJCS8qIHNodXRk b3duIHRoZSBVVkQgYmxvY2sgKi8KLQkJCXJldCA9IGFtZGdwdV9zZXRfcG93ZXJnYXRpbmdfc3Rh dGUoYWRldiwgQU1ER1BVX0lQX0JMT0NLX1RZUEVfVVZELAotCQkJCQkJCSAgICBBTURHUFVfUEdf U1RBVEVfR0FURSk7CisJCQlyZXQgPSBhbWRncHVfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKGFkZXYs IEFNRF9JUF9CTE9DS19UWVBFX1VWRCwKKwkJCQkJCQkgICAgQU1EX1BHX1NUQVRFX0dBVEUpOwog CQkJLyogWFhYOiBjaGVjayBmb3IgZXJyb3JzICovCiAJCX0KIAkJY3pfdXBkYXRlX3V2ZF9kcG0o YWRldiwgZ2F0ZSk7CkBAIC0xNzUyLDE4ICsxNzYzLDE4IEBAIHN0YXRpYyB2b2lkIGN6X2RwbV9w b3dlcmdhdGVfdXZkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGdhdGUpCiAJCQll bHNlCiAJCQkJY3pfc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyKGFkZXYsIFBQU01DX01T R19VVkRQb3dlck9OLCAwKTsKIAkJCS8qIHJlLWluaXQgdGhlIFVWRCBibG9jayAqLwotCQkJcmV0 ID0gYW1kZ3B1X3NldF9wb3dlcmdhdGluZ19zdGF0ZShhZGV2LCBBTURHUFVfSVBfQkxPQ0tfVFlQ RV9VVkQsCi0JCQkJCQkJICAgIEFNREdQVV9QR19TVEFURV9VTkdBVEUpOworCQkJcmV0ID0gYW1k Z3B1X3NldF9wb3dlcmdhdGluZ19zdGF0ZShhZGV2LCBBTURfSVBfQkxPQ0tfVFlQRV9VVkQsCisJ CQkJCQkJICAgIEFNRF9QR19TVEFURV9VTkdBVEUpOwogCQkJLyogZW5hYmxlIGNsb2NrZ2F0aW5n LiBodyB3aWxsIGR5bmFtaWNhbGx5IGdhdGUvdW5nYXRlIGNsb2NrcyBvbiB0aGUgZmx5ICovCi0J CQlyZXQgPSBhbWRncHVfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKGFkZXYsIEFNREdQVV9JUF9CTE9D S19UWVBFX1VWRCwKLQkJCQkJCQkgICAgQU1ER1BVX0NHX1NUQVRFX0dBVEUpOworCQkJcmV0ID0g YW1kZ3B1X3NldF9jbG9ja2dhdGluZ19zdGF0ZShhZGV2LCBBTURfSVBfQkxPQ0tfVFlQRV9VVkQs CisJCQkJCQkJICAgIEFNRF9DR19TVEFURV9HQVRFKTsKIAkJCS8qIFhYWDogY2hlY2sgZm9yIGVy cm9ycyAqLwogCQl9CiAJCWN6X3VwZGF0ZV91dmRfZHBtKGFkZXYsIGdhdGUpOwogCX0KIH0KIAot Y29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyBjel9kcG1faXBfZnVuY3MgPSB7Citjb25zdCBz dHJ1Y3QgYW1kX2lwX2Z1bmNzIGN6X2RwbV9pcF9mdW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9IGN6 X2RwbV9lYXJseV9pbml0LAogCS5sYXRlX2luaXQgPSBjel9kcG1fbGF0ZV9pbml0LAogCS5zd19p bml0ID0gY3pfZHBtX3N3X2luaXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9jel9paC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY3pfaWguYwppbmRleCA4 MGQ1MDhlLi5iYzc1MWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9j el9paC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2N6X2loLmMKQEAgLTI1MCwx NSArMjUwLDE4IEBAIHN0YXRpYyB2b2lkIGN6X2loX3NldF9ycHRyKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQogCVdSRUczMihtbUlIX1JCX1JQVFIsIGFkZXYtPmlycS5paC5ycHRyKTsKIH0K IAotc3RhdGljIGludCBjel9paF9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQorc3RhdGljIGludCBjel9paF9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwog CWN6X2loX3NldF9pbnRlcnJ1cHRfZnVuY3MoYWRldik7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBpbnQgY3pfaWhfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBp bnQgY3pfaWhfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7CisJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlyID0g YW1kZ3B1X2loX3JpbmdfaW5pdChhZGV2LCA2NCAqIDEwMjQsIGZhbHNlKTsKIAlpZiAocikKQEAg LTI2OSwxNyArMjcyLDIwIEBAIHN0YXRpYyBpbnQgY3pfaWhfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAlyZXR1cm4gcjsKIH0KIAotc3RhdGljIGludCBjel9paF9zd19maW5p KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBjel9paF9zd19maW5pKHZv aWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWFtZGdwdV9pcnFfZmluaShhZGV2KTsKIAlhbWRncHVf aWhfcmluZ19maW5pKGFkZXYpOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY3pfaWhf aHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgY3pfaWhfaHdf aW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlyID0gY3pfaWhfaXJxX2lu aXQoYWRldik7CiAJaWYgKHIpCkBAIC0yODgsMjUgKzI5NCwzMiBAQCBzdGF0aWMgaW50IGN6X2lo X2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBpbnQgY3pfaWhfaHdfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRp YyBpbnQgY3pfaWhfaHdfZmluaSh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAljel9paF9pcnFf ZGlzYWJsZShhZGV2KTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGN6X2loX3N1c3Bl bmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGN6X2loX3N1c3BlbmQo dm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJcmV0dXJuIGN6X2loX2h3X2ZpbmkoYWRldik7CiB9 CiAKLXN0YXRpYyBpbnQgY3pfaWhfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQor c3RhdGljIGludCBjel9paF9yZXN1bWUodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJcmV0dXJu IGN6X2loX2h3X2luaXQoYWRldik7CiB9CiAKLXN0YXRpYyBib29sIGN6X2loX2lzX2lkbGUoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgYm9vbCBjel9paF9pc19pZGxlKHZvaWQg KmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqKWhhbmRsZTsKIAl1MzIgdG1wID0gUlJFRzMyKG1tU1JCTV9TVEFUVVMpOwogCiAJ aWYgKFJFR19HRVRfRklFTEQodG1wLCBTUkJNX1NUQVRVUywgSUhfQlVTWSkpCkBAIC0zMTUsMTAg KzMyOCwxMSBAQCBzdGF0aWMgYm9vbCBjel9paF9pc19pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW50IGN6X2loX3dhaXRfZm9yX2lk bGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGN6X2loX3dhaXRfZm9y X2lkbGUodm9pZCAqaGFuZGxlKQogewogCXVuc2lnbmVkIGk7CiAJdTMyIHRtcDsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAog CWZvciAoaSA9IDA7IGkgPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgewogCQkvKiByZWFkIE1D X1NUQVRVUyAqLwpAQCAtMzMwLDggKzM0NCwxMCBAQCBzdGF0aWMgaW50IGN6X2loX3dhaXRfZm9y X2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIC1FVElNRURPVVQ7CiB9 CiAKLXN0YXRpYyB2b2lkIGN6X2loX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKK3N0YXRpYyB2b2lkIGN6X2loX3ByaW50X3N0YXR1cyh2b2lkICpoYW5kbGUpCiB7CisJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5k bGU7CisKIAlkZXZfaW5mbyhhZGV2LT5kZXYsICJDWiBJSCByZWdpc3RlcnNcbiIpOwogCWRldl9p bmZvKGFkZXYtPmRldiwgIiAgU1JCTV9TVEFUVVM9MHglMDhYXG4iLAogCQlSUkVHMzIobW1TUkJN X1NUQVRVUykpOwpAQCAtMzU3LDkgKzM3MywxMCBAQCBzdGF0aWMgdm9pZCBjel9paF9wcmludF9z dGF0dXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCSBSUkVHMzIobW1JSF9SQl9XUFRS KSk7CiB9CiAKLXN0YXRpYyBpbnQgY3pfaWhfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBpbnQgY3pfaWhfc29mdF9yZXNldCh2b2lkICpoYW5kbGUpCiB7CiAJ dTMyIHNyYm1fc29mdF9yZXNldCA9IDA7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAo c3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAJdTMyIHRtcCA9IFJSRUczMihtbVNSQk1f U1RBVFVTKTsKIAogCWlmICh0bXAgJiBTUkJNX1NUQVRVU19fSUhfQlVTWV9NQVNLKQpAQCAtMzY3 LDcgKzM4NCw3IEBAIHN0YXRpYyBpbnQgY3pfaWhfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKIAkJCQkJCVNPRlRfUkVTRVRfSUgsIDEpOwogCiAJaWYgKHNyYm1fc29mdF9y ZXNldCkgewotCQljel9paF9wcmludF9zdGF0dXMoYWRldik7CisJCWN6X2loX3ByaW50X3N0YXR1 cygodm9pZCAqKWFkZXYpOwogCiAJCXRtcCA9IFJSRUczMihtbVNSQk1fU09GVF9SRVNFVCk7CiAJ CXRtcCB8PSBzcmJtX3NvZnRfcmVzZXQ7CkBAIC0zODQsMjcgKzQwMSwyNyBAQCBzdGF0aWMgaW50 IGN6X2loX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCS8qIFdhaXQg YSBsaXR0bGUgZm9yIHRoaW5ncyB0byBzZXR0bGUgZG93biAqLwogCQl1ZGVsYXkoNTApOwogCi0J CWN6X2loX3ByaW50X3N0YXR1cyhhZGV2KTsKKwkJY3pfaWhfcHJpbnRfc3RhdHVzKCh2b2lkICop YWRldik7CiAJfQogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY3pfaWhfc2V0X2Nsb2Nr Z2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVudW0gYW1k Z3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBjel9paF9zZXRfY2xvY2tn YXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkgIGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0 YXRlIHN0YXRlKQogewogCS8vIFRPRE8KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBjel9p aF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJ CSAgZW51bSBhbWRncHVfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IGN6X2lo X3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfcG93 ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJLy8gVE9ETwogCXJldHVybiAwOwogfQogCi1jb25z dCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIGN6X2loX2lwX2Z1bmNzID0geworY29uc3Qgc3RydWN0 IGFtZF9pcF9mdW5jcyBjel9paF9pcF9mdW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9IGN6X2loX2Vh cmx5X2luaXQsCiAJLmxhdGVfaW5pdCA9IE5VTEwsCiAJLnN3X2luaXQgPSBjel9paF9zd19pbml0 LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY3pfaWguaCBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2N6X2loLmgKaW5kZXggMWJjZTEzNi4uZmM0MDU3YSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY3pfaWguaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9jel9paC5oCkBAIC0yNCw2ICsyNCw2IEBACiAjaWZuZGVmIF9f Q1pfSUhfSF9fCiAjZGVmaW5lIF9fQ1pfSUhfSF9fCiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgYW1k Z3B1X2lwX2Z1bmNzIGN6X2loX2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBf ZnVuY3MgY3pfaWhfaXBfZnVuY3M7CiAKICNlbmRpZiAvKiBfX0NaX0lIX0hfXyAqLwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYwppbmRleCAzN2I5NjIzLi5kYTlhNGI5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYwpAQCAtMjg2NCw4ICsyODY0LDEwIEBA IHN0YXRpYyBpbnQgZGNlX3YxMF8wX2NydGNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwgaW50IGluZGV4KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRjZV92MTBfMF9lYXJs eV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjEwXzBf ZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlhZGV2LT5hdWRpb19lbmRwdF9y cmVnID0gJmRjZV92MTBfMF9hdWRpb19lbmRwdF9ycmVnOwogCWFkZXYtPmF1ZGlvX2VuZHB0X3dy ZWcgPSAmZGNlX3YxMF8wX2F1ZGlvX2VuZHB0X3dyZWc7CiAKQEAgLTI4ODYsOSArMjg4OCwxMCBA QCBzdGF0aWMgaW50IGRjZV92MTBfMF9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRjZV92MTBfMF9zd19pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjEwXzBfc3dfaW5pdCh2b2lk ICpoYW5kbGUpCiB7CiAJaW50IHIsIGk7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAo c3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+ bW9kZV9pbmZvLm51bV9jcnRjOyBpKyspIHsKIAkJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYs IGkgKyAxLCAmYWRldi0+Y3J0Y19pcnEpOwpAQCAtMjk1MCw4ICsyOTUzLDEwIEBAIHN0YXRpYyBp bnQgZGNlX3YxMF8wX3N3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJu IHI7CiB9CiAKLXN0YXRpYyBpbnQgZGNlX3YxMF8wX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCitzdGF0aWMgaW50IGRjZV92MTBfMF9zd19maW5pKHZvaWQgKmhhbmRsZSkKIHsK KwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhh bmRsZTsKKwogCWtmcmVlKGFkZXYtPm1vZGVfaW5mby5iaW9zX2hhcmRjb2RlZF9lZGlkKTsKIAog CWRybV9rbXNfaGVscGVyX3BvbGxfZmluaShhZGV2LT5kZGV2KTsKQEAgLTI5NjYsOSArMjk3MSwx MCBAQCBzdGF0aWMgaW50IGRjZV92MTBfMF9zd19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRjZV92MTBfMF9od19pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjEwXzBfaHdfaW5pdCh2b2lk ICpoYW5kbGUpCiB7CiAJaW50IGk7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlkY2VfdjEwXzBfaW5pdF9nb2xkZW5fcmVn aXN0ZXJzKGFkZXYpOwogCkBAIC0yOTg2LDkgKzI5OTIsMTAgQEAgc3RhdGljIGludCBkY2VfdjEw XzBfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBkY2VfdjEwXzBfaHdfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK K3N0YXRpYyBpbnQgZGNlX3YxMF8wX2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCWludCBpOwor CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFu ZGxlOwogCiAJZGNlX3YxMF8wX2hwZF9maW5pKGFkZXYpOwogCkBAIC0yOTk5LDkgKzMwMDYsMTAg QEAgc3RhdGljIGludCBkY2VfdjEwXzBfaHdfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkY2VfdjEwXzBfc3VzcGVuZChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZGNlX3YxMF8wX3N1c3BlbmQodm9pZCAq aGFuZGxlKQogewogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlk cm1fa21zX2hlbHBlcl9wb2xsX2Rpc2FibGUoYWRldi0+ZGRldik7CiAKQEAgLTMwMTcsOSArMzAy NSwxMCBAQCBzdGF0aWMgaW50IGRjZV92MTBfMF9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRjZV92MTBfMF9yZXN1bWUoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGRjZV92MTBfMF9yZXN1bWUodm9p ZCAqaGFuZGxlKQogewogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAK IAlkY2VfdjEwXzBfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKGFkZXYpOwogCkBAIC0zMDUxLDMzICsz MDYwLDM0IEBAIHN0YXRpYyBpbnQgZGNlX3YxMF8wX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGJvb2wgZGNlX3YxMF8wX2lzX2lkbGUo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgYm9vbCBkY2VfdjEwXzBfaXNfaWRs ZSh2b2lkICpoYW5kbGUpCiB7Ci0JLyogWFhYIHRvZG8gKi8KIAlyZXR1cm4gdHJ1ZTsKIH0KIAot c3RhdGljIGludCBkY2VfdjEwXzBfd2FpdF9mb3JfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKK3N0YXRpYyBpbnQgZGNlX3YxMF8wX3dhaXRfZm9yX2lkbGUodm9pZCAqaGFuZGxlKQog ewotCS8qIFhYWCB0b2RvICovCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGRjZV92MTBf MF9wcmludF9zdGF0dXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCBk Y2VfdjEwXzBfcHJpbnRfc3RhdHVzKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWRldl9pbmZv KGFkZXYtPmRldiwgIkRDRSAxMC54IHJlZ2lzdGVyc1xuIik7CiAJLyogWFhYIHRvZG8gKi8KIH0K IAotc3RhdGljIGludCBkY2VfdjEwXzBfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKK3N0YXRpYyBpbnQgZGNlX3YxMF8wX3NvZnRfcmVzZXQodm9pZCAqaGFuZGxlKQogewog CXUzMiBzcmJtX3NvZnRfcmVzZXQgPSAwLCB0bXA7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlpZiAoZGNlX3YxMF8wX2lz X2Rpc3BsYXlfaHVuZyhhZGV2KSkKIAkJc3JibV9zb2Z0X3Jlc2V0IHw9IFNSQk1fU09GVF9SRVNF VF9fU09GVF9SRVNFVF9EQ19NQVNLOwogCiAJaWYgKHNyYm1fc29mdF9yZXNldCkgewotCQlkY2Vf djEwXzBfcHJpbnRfc3RhdHVzKGFkZXYpOworCQlkY2VfdjEwXzBfcHJpbnRfc3RhdHVzKCh2b2lk ICopYWRldik7CiAKIAkJdG1wID0gUlJFRzMyKG1tU1JCTV9TT0ZUX1JFU0VUKTsKIAkJdG1wIHw9 IHNyYm1fc29mdF9yZXNldDsKQEAgLTMwOTMsNyArMzEwMyw3IEBAIHN0YXRpYyBpbnQgZGNlX3Yx MF8wX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIAkJLyogV2FpdCBh IGxpdHRsZSBmb3IgdGhpbmdzIHRvIHNldHRsZSBkb3duICovCiAJCXVkZWxheSg1MCk7Ci0JCWRj ZV92MTBfMF9wcmludF9zdGF0dXMoYWRldik7CisJCWRjZV92MTBfMF9wcmludF9zdGF0dXMoKHZv aWQgKilhZGV2KTsKIAl9CiAJcmV0dXJuIDA7CiB9CkBAIC0zNDQ5LDE5ICszNDU5LDE5IEBAIHN0 YXRpYyBpbnQgZGNlX3YxMF8wX2hwZF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZGNlX3YxMF8wX3NldF9jbG9ja2dhdGluZ19zdGF0 ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9jbG9ja2dh dGluZ19zdGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgZGNlX3YxMF8wX3NldF9jbG9ja2dhdGluZ19z dGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3Rh dGUpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZGNlX3YxMF8wX3NldF9wb3dlcmdh dGluZ19zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdw dV9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgZGNlX3YxMF8wX3NldF9wb3dl cmdhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfcG93ZXJnYXRpbmdf c3RhdGUgc3RhdGUpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLWNvbnN0IHN0cnVjdCBhbWRncHVfaXBf ZnVuY3MgZGNlX3YxMF8wX2lwX2Z1bmNzID0geworY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyBk Y2VfdjEwXzBfaXBfZnVuY3MgPSB7CiAJLmVhcmx5X2luaXQgPSBkY2VfdjEwXzBfZWFybHlfaW5p dCwKIAkubGF0ZV9pbml0ID0gTlVMTCwKIAkuc3dfaW5pdCA9IGRjZV92MTBfMF9zd19pbml0LApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuaAppbmRleCA3MmNhMjBkLi4xYmZhNDhk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuaApAQCAtMjQsNiArMjQsNiBA QAogI2lmbmRlZiBfX0RDRV9WMTBfMF9IX18KICNkZWZpbmUgX19EQ0VfVjEwXzBfSF9fCiAKLWV4 dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIGRjZV92MTBfMF9pcF9mdW5jczsKK2V4 dGVybiBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIGRjZV92MTBfMF9pcF9mdW5jczsKIAogI2Vu ZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCmluZGV4IDA0YTVkNGMuLmVk ZDlkMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCkBAIC0yODYzLDgg KzI4NjMsMTAgQEAgc3RhdGljIGludCBkY2VfdjExXzBfY3J0Y19pbml0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LCBpbnQgaW5kZXgpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZGNl X3YxMV8wX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50 IGRjZV92MTFfMF9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWFkZXYtPmF1 ZGlvX2VuZHB0X3JyZWcgPSAmZGNlX3YxMV8wX2F1ZGlvX2VuZHB0X3JyZWc7CiAJYWRldi0+YXVk aW9fZW5kcHRfd3JlZyA9ICZkY2VfdjExXzBfYXVkaW9fZW5kcHRfd3JlZzsKIApAQCAtMjg4NSw5 ICsyODg3LDEwIEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZGNlX3YxMV8wX3N3 X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGRjZV92MTFfMF9z d19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgciwgaTsKKwlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWZvciAoaSA9IDA7 IGkgPCBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGM7IGkrKykgewogCQlyID0gYW1kZ3B1X2lycV9h ZGRfaWQoYWRldiwgaSArIDEsICZhZGV2LT5jcnRjX2lycSk7CkBAIC0yOTQ5LDggKzI5NTIsMTAg QEAgc3RhdGljIGludCBkY2VfdjExXzBfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIAlyZXR1cm4gcjsKIH0KIAotc3RhdGljIGludCBkY2VfdjExXzBfc3dfZmluaShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZGNlX3YxMV8wX3N3X2Zpbmkodm9pZCAq aGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVf ZGV2aWNlICopaGFuZGxlOworCiAJa2ZyZWUoYWRldi0+bW9kZV9pbmZvLmJpb3NfaGFyZGNvZGVk X2VkaWQpOwogCiAJZHJtX2ttc19oZWxwZXJfcG9sbF9maW5pKGFkZXYtPmRkZXYpOwpAQCAtMjk2 NCw5ICsyOTY5LDEwIEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX3N3X2Zpbmkoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZGNlX3YxMV8wX2h3 X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGRjZV92MTFfMF9o d19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgaTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWRjZV92MTFfMF9pbml0 X2dvbGRlbl9yZWdpc3RlcnMoYWRldik7CiAKQEAgLTI5ODQsOSArMjk5MCwxMCBAQCBzdGF0aWMg aW50IGRjZV92MTFfMF9od19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IGRjZV92MTFfMF9od19maW5pKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjExXzBfaHdfZmluaSh2b2lkICpoYW5kbGUpCiB7 CiAJaW50IGk7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKiloYW5kbGU7CiAKIAlkY2VfdjExXzBfaHBkX2ZpbmkoYWRldik7CiAKQEAgLTI5OTcs OSArMzAwNCwxMCBAQCBzdGF0aWMgaW50IGRjZV92MTFfMF9od19maW5pKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRjZV92MTFfMF9zdXNw ZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjExXzBfc3Vz cGVuZCh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsK KwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhh bmRsZTsKIAogCWRybV9rbXNfaGVscGVyX3BvbGxfZGlzYWJsZShhZGV2LT5kZGV2KTsKIApAQCAt MzAxNSw5ICszMDIzLDEwIEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX3N1c3BlbmQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZGNlX3YxMV8w X3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZGNlX3YxMV8w X3Jlc3VtZSh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq KWhhbmRsZTsKIAogCWRjZV92MTFfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoYWRldik7CiAKQEAg LTMwNTAsMzMgKzMwNTksMzQgQEAgc3RhdGljIGludCBkY2VfdjExXzBfcmVzdW1lKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgYm9vbCBkY2VfdjEx XzBfaXNfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBib29sIGRjZV92 MTFfMF9pc19pZGxlKHZvaWQgKmhhbmRsZSkKIHsKLQkvKiBYWFggdG9kbyAqLwogCXJldHVybiB0 cnVlOwogfQogCi1zdGF0aWMgaW50IGRjZV92MTFfMF93YWl0X2Zvcl9pZGxlKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjExXzBfd2FpdF9mb3JfaWRsZSh2b2lk ICpoYW5kbGUpCiB7Ci0JLyogWFhYIHRvZG8gKi8KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZv aWQgZGNlX3YxMV8wX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0 YXRpYyB2b2lkIGRjZV92MTFfMF9wcmludF9zdGF0dXModm9pZCAqaGFuZGxlKQogeworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwor CiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiRENFIDEwLnggcmVnaXN0ZXJzXG4iKTsKIAkvKiBYWFgg dG9kbyAqLwogfQogCi1zdGF0aWMgaW50IGRjZV92MTFfMF9zb2Z0X3Jlc2V0KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjExXzBfc29mdF9yZXNldCh2b2lkICpo YW5kbGUpCiB7CiAJdTMyIHNyYm1fc29mdF9yZXNldCA9IDAsIHRtcDsKKwlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWlmIChk Y2VfdjExXzBfaXNfZGlzcGxheV9odW5nKGFkZXYpKQogCQlzcmJtX3NvZnRfcmVzZXQgfD0gU1JC TV9TT0ZUX1JFU0VUX19TT0ZUX1JFU0VUX0RDX01BU0s7CiAKIAlpZiAoc3JibV9zb2Z0X3Jlc2V0 KSB7Ci0JCWRjZV92MTFfMF9wcmludF9zdGF0dXMoYWRldik7CisJCWRjZV92MTFfMF9wcmludF9z dGF0dXMoKHZvaWQgKilhZGV2KTsKIAogCQl0bXAgPSBSUkVHMzIobW1TUkJNX1NPRlRfUkVTRVQp OwogCQl0bXAgfD0gc3JibV9zb2Z0X3Jlc2V0OwpAQCAtMzA5Miw3ICszMTAyLDcgQEAgc3RhdGlj IGludCBkY2VfdjExXzBfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAog CQkvKiBXYWl0IGEgbGl0dGxlIGZvciB0aGluZ3MgdG8gc2V0dGxlIGRvd24gKi8KIAkJdWRlbGF5 KDUwKTsKLQkJZGNlX3YxMV8wX3ByaW50X3N0YXR1cyhhZGV2KTsKKwkJZGNlX3YxMV8wX3ByaW50 X3N0YXR1cygodm9pZCAqKWFkZXYpOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTM0NDgsMTkgKzM0 NTgsMTkgQEAgc3RhdGljIGludCBkY2VfdjExXzBfaHBkX2lycShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkY2VfdjExXzBfc2V0X2Nsb2Nr Z2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVudW0gYW1k Z3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBkY2VfdjExXzBfc2V0X2Ns b2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJCQkJICBlbnVtIGFtZF9jbG9ja2dhdGlu Z19zdGF0ZSBzdGF0ZSkKIHsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkY2VfdjExXzBf c2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkg IGVudW0gYW1kZ3B1X3Bvd2VyZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBkY2VfdjEx XzBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJCQkJICBlbnVtIGFtZF9w b3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKIHsKIAlyZXR1cm4gMDsKIH0KIAotY29uc3Qgc3RydWN0 IGFtZGdwdV9pcF9mdW5jcyBkY2VfdjExXzBfaXBfZnVuY3MgPSB7Citjb25zdCBzdHJ1Y3QgYW1k X2lwX2Z1bmNzIGRjZV92MTFfMF9pcF9mdW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9IGRjZV92MTFf MF9lYXJseV9pbml0LAogCS5sYXRlX2luaXQgPSBOVUxMLAogCS5zd19pbml0ID0gZGNlX3YxMV8w X3N3X2luaXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEx XzAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5oCmluZGV4IGVlYjlh NTYuLjg0ZTQ2MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92 MTFfMC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5oCkBAIC0y NCw2ICsyNCw2IEBACiAjaWZuZGVmIF9fRENFX1YxMV8wX0hfXwogI2RlZmluZSBfX0RDRV9WMTFf MF9IX18KIAotZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3MgZGNlX3YxMV8wX2lw X2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgZGNlX3YxMV8wX2lwX2Z1 bmNzOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92OF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCmluZGV4IDlm MmZmOGQuLjFkMjkxZjFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9k Y2VfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKQEAg LTI3OTQsOCArMjc5NCwxMCBAQCBzdGF0aWMgaW50IGRjZV92OF8wX2NydGNfaW5pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGluZGV4KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMg aW50IGRjZV92OF8wX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0 aWMgaW50IGRjZV92OF8wX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJYWRl di0+YXVkaW9fZW5kcHRfcnJlZyA9ICZkY2VfdjhfMF9hdWRpb19lbmRwdF9ycmVnOwogCWFkZXYt PmF1ZGlvX2VuZHB0X3dyZWcgPSAmZGNlX3Y4XzBfYXVkaW9fZW5kcHRfd3JlZzsKIApAQCAtMjgy OCw5ICsyODMwLDEwIEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfZWFybHlfaW5pdChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkY2VfdjhfMF9z d19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjhfMF9z d19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgciwgaTsKKwlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWZvciAoaSA9IDA7 IGkgPCBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGM7IGkrKykgewogCQlyID0gYW1kZ3B1X2lycV9h ZGRfaWQoYWRldiwgaSArIDEsICZhZGV2LT5jcnRjX2lycSk7CkBAIC0yODkyLDggKzI4OTUsMTAg QEAgc3RhdGljIGludCBkY2VfdjhfMF9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCXJldHVybiByOwogfQogCi1zdGF0aWMgaW50IGRjZV92OF8wX3N3X2Zpbmkoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGRjZV92OF8wX3N3X2Zpbmkodm9pZCAqaGFu ZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2 aWNlICopaGFuZGxlOworCiAJa2ZyZWUoYWRldi0+bW9kZV9pbmZvLmJpb3NfaGFyZGNvZGVkX2Vk aWQpOwogCiAJZHJtX2ttc19oZWxwZXJfcG9sbF9maW5pKGFkZXYtPmRkZXYpOwpAQCAtMjkwOCw5 ICsyOTEzLDEwIEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfc3dfZmluaShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkY2VfdjhfMF9od19pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjhfMF9od19pbml0 KHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgaTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCS8qIGluaXQgZGlnIFBIWXMsIGRp c3AgZW5nIHBsbCAqLwogCWFtZGdwdV9hdG9tYmlvc19lbmNvZGVyX2luaXRfZGlnKGFkZXYpOwpA QCAtMjkyNiw5ICsyOTMyLDEwIEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfaHdfaW5pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkY2Vfdjhf MF9od19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2Vfdjhf MF9od19maW5pKHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgaTsKKwlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWRjZV92OF8wX2hw ZF9maW5pKGFkZXYpOwogCkBAIC0yOTM5LDkgKzI5NDYsMTAgQEAgc3RhdGljIGludCBkY2Vfdjhf MF9od19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IGRjZV92OF8wX3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitz dGF0aWMgaW50IGRjZV92OF8wX3N1c3BlbmQodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlkcm1fa21zX2hlbHBlcl9wb2xsX2Rpc2Fi bGUoYWRldi0+ZGRldik7CiAKQEAgLTI5NTcsOSArMjk2NSwxMCBAQCBzdGF0aWMgaW50IGRjZV92 OF8wX3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBpbnQgZGNlX3Y4XzBfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQor c3RhdGljIGludCBkY2VfdjhfMF9yZXN1bWUodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlhbWRncHVfYXRvbWJpb3Nfc2NyYXRjaF9y ZWdzX3Jlc3RvcmUoYWRldik7CiAKQEAgLTI5ODksMzMgKzI5OTgsMzQgQEAgc3RhdGljIGludCBk Y2VfdjhfMF9yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBib29sIGRjZV92OF8wX2lzX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCitzdGF0aWMgYm9vbCBkY2VfdjhfMF9pc19pZGxlKHZvaWQgKmhhbmRsZSkKIHsKLQkvKiBY WFggdG9kbyAqLwogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW50IGRjZV92OF8wX3dhaXRf Zm9yX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGRjZV92OF8w X3dhaXRfZm9yX2lkbGUodm9pZCAqaGFuZGxlKQogewotCS8qIFhYWCB0b2RvICovCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyB2b2lkIGRjZV92OF8wX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIGRjZV92OF8wX3ByaW50X3N0YXR1cyh2b2lkICpo YW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKiloYW5kbGU7CisKIAlkZXZfaW5mbyhhZGV2LT5kZXYsICJEQ0UgOC54IHJlZ2lzdGVy c1xuIik7CiAJLyogWFhYIHRvZG8gKi8KIH0KIAotc3RhdGljIGludCBkY2VfdjhfMF9zb2Z0X3Jl c2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBkY2VfdjhfMF9zb2Z0 X3Jlc2V0KHZvaWQgKmhhbmRsZSkKIHsKIAl1MzIgc3JibV9zb2Z0X3Jlc2V0ID0gMCwgdG1wOwor CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFu ZGxlOwogCiAJaWYgKGRjZV92OF8wX2lzX2Rpc3BsYXlfaHVuZyhhZGV2KSkKIAkJc3JibV9zb2Z0 X3Jlc2V0IHw9IFNSQk1fU09GVF9SRVNFVF9fU09GVF9SRVNFVF9EQ19NQVNLOwogCiAJaWYgKHNy Ym1fc29mdF9yZXNldCkgewotCQlkY2VfdjhfMF9wcmludF9zdGF0dXMoYWRldik7CisJCWRjZV92 OF8wX3ByaW50X3N0YXR1cygodm9pZCAqKWFkZXYpOwogCiAJCXRtcCA9IFJSRUczMihtbVNSQk1f U09GVF9SRVNFVCk7CiAJCXRtcCB8PSBzcmJtX3NvZnRfcmVzZXQ7CkBAIC0zMDMxLDcgKzMwNDEs NyBAQCBzdGF0aWMgaW50IGRjZV92OF8wX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCiAKIAkJLyogV2FpdCBhIGxpdHRsZSBmb3IgdGhpbmdzIHRvIHNldHRsZSBkb3duICov CiAJCXVkZWxheSg1MCk7Ci0JCWRjZV92OF8wX3ByaW50X3N0YXR1cyhhZGV2KTsKKwkJZGNlX3Y4 XzBfcHJpbnRfc3RhdHVzKCh2b2lkICopYWRldik7CiAJfQogCXJldHVybiAwOwogfQpAQCAtMzQw OSwxOSArMzQxOSwxOSBAQCBzdGF0aWMgaW50IGRjZV92OF8wX2hwZF9pcnEoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCiAKIH0KIAotc3RhdGljIGludCBkY2VfdjhfMF9zZXRfY2xvY2tnYXRp bmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVf Y2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IGRjZV92OF8wX3NldF9jbG9ja2dh dGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3Rh dGUgc3RhdGUpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZGNlX3Y4XzBfc2V0X3Bv d2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVudW0g YW1kZ3B1X3Bvd2VyZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBkY2VfdjhfMF9zZXRf cG93ZXJnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkgIGVudW0gYW1kX3Bvd2VyZ2F0 aW5nX3N0YXRlIHN0YXRlKQogewogCXJldHVybiAwOwogfQogCi1jb25zdCBzdHJ1Y3QgYW1kZ3B1 X2lwX2Z1bmNzIGRjZV92OF8wX2lwX2Z1bmNzID0geworY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5j cyBkY2VfdjhfMF9pcF9mdW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9IGRjZV92OF8wX2Vhcmx5X2lu aXQsCiAJLmxhdGVfaW5pdCA9IE5VTEwsCiAJLnN3X2luaXQgPSBkY2VfdjhfMF9zd19pbml0LApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuaCBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmgKaW5kZXggM2EwYTczYjQuLjc3MDE2ODUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuaApAQCAtMjQsNiArMjQsNiBAQAog I2lmbmRlZiBfX0RDRV9WOF8wX0hfXwogI2RlZmluZSBfX0RDRV9WOF8wX0hfXwogCi1leHRlcm4g Y29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyBkY2VfdjhfMF9pcF9mdW5jczsKK2V4dGVybiBj b25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIGRjZV92OF8wX2lwX2Z1bmNzOwogCiAjZW5kaWYKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jCmluZGV4IDUzMTVjMTMuLjAwNTc2OTkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwpAQCAtNDY4Miw4ICs0NjgyLDkgQEAg c3RhdGljIHZvaWQgZ2Z4X3Y3XzBfcmluZ19lbWl0X2dkc19zd2l0Y2goc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLAogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsICgxIDw8IChvYV9zaXplICsgb2Ff YmFzZSkpIC0gKDEgPDwgb2FfYmFzZSkpOwogfQogCi1zdGF0aWMgaW50IGdmeF92N18wX2Vhcmx5 X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGdmeF92N18wX2Vh cmx5X2luaXQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g KHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJYWRldi0+Z2Z4Lm51bV9nZnhfcmlu Z3MgPSBHRlg3X05VTV9HRlhfUklOR1M7CiAJYWRldi0+Z2Z4Lm51bV9jb21wdXRlX3JpbmdzID0g R0ZYN19OVU1fQ09NUFVURV9SSU5HUzsKQEAgLTQ2OTQsOSArNDY5NSwxMCBAQCBzdGF0aWMgaW50 IGdmeF92N18wX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgZ2Z4X3Y3XzBfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBpbnQgZ2Z4X3Y3XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJ c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g KHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCWludCBpLCByOwogCiAJLyogRU9QIEV2 ZW50ICovCkBAIC00ODA1LDkgKzQ4MDcsMTAgQEAgc3RhdGljIGludCBnZnhfdjdfMF9zd19pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiByOwogfQogCi1zdGF0aWMgaW50 IGdmeF92N18wX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50 IGdmeF92N18wX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCWludCBpOworCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJYW1k Z3B1X2JvX3VucmVmKCZhZGV2LT5nZHMub2FfZ2Z4X2JvKTsKIAlhbWRncHVfYm9fdW5yZWYoJmFk ZXYtPmdkcy5nd3NfZ2Z4X2JvKTsKQEAgLTQ4MjcsOSArNDgzMCwxMCBAQCBzdGF0aWMgaW50IGdm eF92N18wX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBpbnQgZ2Z4X3Y3XzBfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKK3N0YXRpYyBpbnQgZ2Z4X3Y3XzBfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7 CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilo YW5kbGU7CiAKIAlnZnhfdjdfMF9ncHVfaW5pdChhZGV2KTsKIApAQCAtNDg0NSw4ICs0ODQ5LDEw IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y3XzBfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIAlyZXR1cm4gcjsKIH0KIAotc3RhdGljIGludCBnZnhfdjdfMF9od19maW5pKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBnZnhfdjdfMF9od19maW5pKHZvaWQgKmhh bmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqKWhhbmRsZTsKKwogCWdmeF92N18wX2NwX2VuYWJsZShhZGV2LCBmYWxzZSk7CiAJZ2Z4 X3Y3XzBfcmxjX3N0b3AoYWRldik7CiAJZ2Z4X3Y3XzBfZmluaV9wZyhhZGV2KTsKQEAgLTQ4NTQs MjggKzQ4NjAsMzUgQEAgc3RhdGljIGludCBnZnhfdjdfMF9od19maW5pKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdmeF92N18wX3N1c3Bl bmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGdmeF92N18wX3N1c3Bl bmQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVj dCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJcmV0dXJuIGdmeF92N18wX2h3X2ZpbmkoYWRl dik7CiB9CiAKLXN0YXRpYyBpbnQgZ2Z4X3Y3XzBfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQorc3RhdGljIGludCBnZnhfdjdfMF9yZXN1bWUodm9pZCAqaGFuZGxlKQogeworCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxl OworCiAJcmV0dXJuIGdmeF92N18wX2h3X2luaXQoYWRldik7CiB9CiAKLXN0YXRpYyBib29sIGdm eF92N18wX2lzX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgYm9vbCBn ZnhfdjdfMF9pc19pZGxlKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWlmIChSUkVHMzIobW1H UkJNX1NUQVRVUykgJiBHUkJNX1NUQVRVU19fR1VJX0FDVElWRV9NQVNLKQogCQlyZXR1cm4gZmFs c2U7CiAJZWxzZQogCQlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGludCBnZnhfdjdfMF93YWl0 X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBnZnhfdjdf MF93YWl0X2Zvcl9pZGxlKHZvaWQgKmhhbmRsZSkKIHsKIAl1bnNpZ25lZCBpOwogCXUzMiB0bXA7 CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilo YW5kbGU7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKIAkJ LyogcmVhZCBNQ19TVEFUVVMgKi8KQEAgLTQ4ODgsOSArNDkwMSwxMCBAQCBzdGF0aWMgaW50IGdm eF92N18wX3dhaXRfZm9yX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJu IC1FVElNRURPVVQ7CiB9CiAKLXN0YXRpYyB2b2lkIGdmeF92N18wX3ByaW50X3N0YXR1cyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIGdmeF92N18wX3ByaW50X3N0YXR1 cyh2b2lkICpoYW5kbGUpCiB7CiAJaW50IGk7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlkZXZfaW5mbyhhZGV2LT5kZXYs ICJHRlggNy54IHJlZ2lzdGVyc1xuIik7CiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiICBHUkJNX1NU QVRVUz0weCUwOFhcbiIsCkBAIC01MTQ3LDEwICs1MTYxLDExIEBAIHN0YXRpYyB2b2lkIGdmeF92 N18wX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAltdXRleF91bmxv Y2soJmFkZXYtPnNyYm1fbXV0ZXgpOwogfQogCi1zdGF0aWMgaW50IGdmeF92N18wX3NvZnRfcmVz ZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGdmeF92N18wX3NvZnRf cmVzZXQodm9pZCAqaGFuZGxlKQogewogCXUzMiBncmJtX3NvZnRfcmVzZXQgPSAwLCBzcmJtX3Nv ZnRfcmVzZXQgPSAwOwogCXUzMiB0bXA7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAo c3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAkvKiBHUkJNX1NUQVRVUyAqLwogCXRt cCA9IFJSRUczMihtbUdSQk1fU1RBVFVTKTsKQEAgLTUxNzksNyArNTE5NCw3IEBAIHN0YXRpYyBp bnQgZ2Z4X3Y3XzBfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJc3Ji bV9zb2Z0X3Jlc2V0IHw9IFNSQk1fU09GVF9SRVNFVF9fU09GVF9SRVNFVF9HUkJNX01BU0s7CiAK IAlpZiAoZ3JibV9zb2Z0X3Jlc2V0IHx8IHNyYm1fc29mdF9yZXNldCkgewotCQlnZnhfdjdfMF9w cmludF9zdGF0dXMoYWRldik7CisJCWdmeF92N18wX3ByaW50X3N0YXR1cygodm9pZCAqKWFkZXYp OwogCQkvKiBkaXNhYmxlIENHL1BHICovCiAJCWdmeF92N18wX2ZpbmlfcGcoYWRldik7CiAJCWdm eF92N18wX3VwZGF0ZV9jZyhhZGV2LCBmYWxzZSk7CkBAIC01MjIyLDcgKzUyMzcsNyBAQCBzdGF0 aWMgaW50IGdmeF92N18wX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJ CX0KIAkJLyogV2FpdCBhIGxpdHRsZSBmb3IgdGhpbmdzIHRvIHNldHRsZSBkb3duICovCiAJCXVk ZWxheSg1MCk7Ci0JCWdmeF92N18wX3ByaW50X3N0YXR1cyhhZGV2KTsKKwkJZ2Z4X3Y3XzBfcHJp bnRfc3RhdHVzKCh2b2lkICopYWRldik7CiAJfQogCXJldHVybiAwOwogfQpAQCAtNTQyNSwxMiAr NTQ0MCwxMyBAQCBzdGF0aWMgaW50IGdmeF92N18wX3ByaXZfaW5zdF9pcnEoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZ2Z4X3Y3XzBfc2V0 X2Nsb2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVu dW0gYW1kZ3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBnZnhfdjdfMF9z ZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkgIGVudW0gYW1kX2Nsb2Nr Z2F0aW5nX3N0YXRlIHN0YXRlKQogewogCWJvb2wgZ2F0ZSA9IGZhbHNlOworCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCi0JaWYg KHN0YXRlID09IEFNREdQVV9DR19TVEFURV9HQVRFKQorCWlmIChzdGF0ZSA9PSBBTURfQ0dfU1RB VEVfR0FURSkKIAkJZ2F0ZSA9IHRydWU7CiAKIAlnZnhfdjdfMF9lbmFibGVfZ3VpX2lkbGVfaW50 ZXJydXB0KGFkZXYsIGZhbHNlKTsKQEAgLTU0NDcsMTIgKzU0NjMsMTMgQEAgc3RhdGljIGludCBn ZnhfdjdfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZ2Z4X3Y3XzBfc2V0X3Bvd2VyZ2F0aW5nX3N0 YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVudW0gYW1kZ3B1X3Bvd2Vy Z2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBnZnhfdjdfMF9zZXRfcG93ZXJnYXRpbmdf c3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkgIGVudW0gYW1kX3Bvd2VyZ2F0aW5nX3N0YXRlIHN0 YXRlKQogewogCWJvb2wgZ2F0ZSA9IGZhbHNlOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCi0JaWYgKHN0YXRlID09IEFNREdQ VV9QR19TVEFURV9HQVRFKQorCWlmIChzdGF0ZSA9PSBBTURfUEdfU1RBVEVfR0FURSkKIAkJZ2F0 ZSA9IHRydWU7CiAKIAlpZiAoYWRldi0+cGdfZmxhZ3MgJiAoQU1ER1BVX1BHX1NVUFBPUlRfR0ZY X1BHIHwKQEAgLTU0NzEsNyArNTQ4OCw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y3XzBfc2V0X3Bvd2Vy Z2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXJldHVybiAwOwogfQog Ci1jb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIGdmeF92N18wX2lwX2Z1bmNzID0geworY29u c3Qgc3RydWN0IGFtZF9pcF9mdW5jcyBnZnhfdjdfMF9pcF9mdW5jcyA9IHsKIAkuZWFybHlfaW5p dCA9IGdmeF92N18wX2Vhcmx5X2luaXQsCiAJLmxhdGVfaW5pdCA9IE5VTEwsCiAJLnN3X2luaXQg PSBnZnhfdjdfMF9zd19pbml0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ2Z4X3Y3XzAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmgKaW5k ZXggNjY4YjkxYS4uYzA0YmZiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ2Z4X3Y3XzAuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5o CkBAIC0yNCw3ICsyNCw3IEBACiAjaWZuZGVmIF9fR0ZYX1Y3XzBfSF9fCiAjZGVmaW5lIF9fR0ZY X1Y3XzBfSF9fCiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIGdmeF92N18w X2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgZ2Z4X3Y3XzBfaXBf ZnVuY3M7CiAKIC8qIFhYWCB0aGVzZSBzaG91bGRuJ3QgYmUgZXhwb3J0ZWQgKi8KIHZvaWQgZ2Z4 X3Y3XzBfZW50ZXJfcmxjX3NhZmVfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwppbmRleCA0NTk3MjU2Li5hN2Q2ODdkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKQEAgLTc4NCwxMCArNzg0LDExIEBA IHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfbWVjX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZ2Z4X3Y4XzBfc3dfaW5pdChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZ2Z4X3Y4XzBfc3dfaW5pdCh2b2lkICpoYW5k bGUpCiB7CiAJaW50IGksIHI7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOworCXN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJ LyogRU9QIEV2ZW50ICovCiAJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIDE4MSwgJmFkZXYt PmdmeC5lb3BfaXJxKTsKQEAgLTg5Nyw5ICs4OTgsMTAgQEAgc3RhdGljIGludCBnZnhfdjhfMF9z d19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgaW50IGdmeF92OF8wX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0 aWMgaW50IGdmeF92OF8wX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCWludCBpOworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwog CiAJYW1kZ3B1X2JvX3VucmVmKCZhZGV2LT5nZHMub2FfZ2Z4X2JvKTsKIAlhbWRncHVfYm9fdW5y ZWYoJmFkZXYtPmdkcy5nd3NfZ2Z4X2JvKTsKQEAgLTMxNDgsOSArMzE1MCwxMCBAQCBzdGF0aWMg dm9pZCBnZnhfdjhfMF9jcF9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wg ZW5hYmxlKQogCWdmeF92OF8wX2NwX2NvbXB1dGVfZW5hYmxlKGFkZXYsIGVuYWJsZSk7CiB9CiAK LXN0YXRpYyBpbnQgZ2Z4X3Y4XzBfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK K3N0YXRpYyBpbnQgZ2Z4X3Y4XzBfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7CisJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5k bGU7CiAKIAlnZnhfdjhfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoYWRldik7CiAKQEAgLTMxNjcs OCArMzE3MCwxMCBAQCBzdGF0aWMgaW50IGdmeF92OF8wX2h3X2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9CiAKLXN0YXRpYyBpbnQgZ2Z4X3Y4XzBfaHdfZmlu aShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZ2Z4X3Y4XzBfaHdfZmlu aSh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlnZnhfdjhfMF9jcF9lbmFibGUoYWRldiwgZmFs c2UpOwogCWdmeF92OF8wX3JsY19zdG9wKGFkZXYpOwogCWdmeF92OF8wX2NwX2NvbXB1dGVfZmlu aShhZGV2KTsKQEAgLTMxNzYsMjggKzMxODEsMzUgQEAgc3RhdGljIGludCBnZnhfdjhfMF9od19m aW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMg aW50IGdmeF92OF8wX3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMg aW50IGdmeF92OF8wX3N1c3BlbmQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJcmV0dXJuIGdm eF92OF8wX2h3X2ZpbmkoYWRldik7CiB9CiAKLXN0YXRpYyBpbnQgZ2Z4X3Y4XzBfcmVzdW1lKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBnZnhfdjhfMF9yZXN1bWUodm9p ZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRn cHVfZGV2aWNlICopaGFuZGxlOworCiAJcmV0dXJuIGdmeF92OF8wX2h3X2luaXQoYWRldik7CiB9 CiAKLXN0YXRpYyBib29sIGdmeF92OF8wX2lzX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCitzdGF0aWMgYm9vbCBnZnhfdjhfMF9pc19pZGxlKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsK KwogCWlmIChSRUdfR0VUX0ZJRUxEKFJSRUczMihtbUdSQk1fU1RBVFVTKSwgR1JCTV9TVEFUVVMs IEdVSV9BQ1RJVkUpKQogCQlyZXR1cm4gZmFsc2U7CiAJZWxzZQogCQlyZXR1cm4gdHJ1ZTsKIH0K IAotc3RhdGljIGludCBnZnhfdjhfMF93YWl0X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQorc3RhdGljIGludCBnZnhfdjhfMF93YWl0X2Zvcl9pZGxlKHZvaWQgKmhhbmRsZSkK IHsKIAl1bnNpZ25lZCBpOwogCXUzMiB0bXA7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRl di0+dXNlY190aW1lb3V0OyBpKyspIHsKIAkJLyogcmVhZCBNQ19TVEFUVVMgKi8KQEAgLTMyMTAs OSArMzIyMiwxMCBAQCBzdGF0aWMgaW50IGdmeF92OF8wX3dhaXRfZm9yX2lkbGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIC1FVElNRURPVVQ7CiB9CiAKLXN0YXRpYyB2b2lk IGdmeF92OF8wX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRp YyB2b2lkIGdmeF92OF8wX3ByaW50X3N0YXR1cyh2b2lkICpoYW5kbGUpCiB7CiAJaW50IGk7CisJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5k bGU7CiAKIAlkZXZfaW5mbyhhZGV2LT5kZXYsICJHRlggOC54IHJlZ2lzdGVyc1xuIik7CiAJZGV2 X2luZm8oYWRldi0+ZGV2LCAiICBHUkJNX1NUQVRVUz0weCUwOFhcbiIsCkBAIC0zMzk4LDEwICsz NDExLDExIEBAIHN0YXRpYyB2b2lkIGdmeF92OF8wX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAltdXRleF91bmxvY2soJmFkZXYtPnNyYm1fbXV0ZXgpOwogfQogCi1z dGF0aWMgaW50IGdmeF92OF8wX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CitzdGF0aWMgaW50IGdmeF92OF8wX3NvZnRfcmVzZXQodm9pZCAqaGFuZGxlKQogewogCXUzMiBn cmJtX3NvZnRfcmVzZXQgPSAwLCBzcmJtX3NvZnRfcmVzZXQgPSAwOwogCXUzMiB0bXA7CisJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7 CiAKIAkvKiBHUkJNX1NUQVRVUyAqLwogCXRtcCA9IFJSRUczMihtbUdSQk1fU1RBVFVTKTsKQEAg LTM0MzcsNyArMzQ1MSw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfc29mdF9yZXNldChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKIAkJCQkJCVNSQk1fU09GVF9SRVNFVCwgU09GVF9SRVNFVF9H UkJNLCAxKTsKIAogCWlmIChncmJtX3NvZnRfcmVzZXQgfHwgc3JibV9zb2Z0X3Jlc2V0KSB7Ci0J CWdmeF92OF8wX3ByaW50X3N0YXR1cyhhZGV2KTsKKwkJZ2Z4X3Y4XzBfcHJpbnRfc3RhdHVzKCh2 b2lkICopYWRldik7CiAJCS8qIHN0b3AgdGhlIHJsYyAqLwogCQlnZnhfdjhfMF9ybGNfc3RvcChh ZGV2KTsKIApAQCAtMzQ3Niw3ICszNDkwLDcgQEAgc3RhdGljIGludCBnZnhfdjhfMF9zb2Z0X3Jl c2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQl9CiAJCS8qIFdhaXQgYSBsaXR0bGUg Zm9yIHRoaW5ncyB0byBzZXR0bGUgZG93biAqLwogCQl1ZGVsYXkoNTApOwotCQlnZnhfdjhfMF9w cmludF9zdGF0dXMoYWRldik7CisJCWdmeF92OF8wX3ByaW50X3N0YXR1cygodm9pZCAqKWFkZXYp OwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTM1NDksOCArMzU2Myw5IEBAIHN0YXRpYyB2b2lkIGdm eF92OF8wX3JpbmdfZW1pdF9nZHNfc3dpdGNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAlh bWRncHVfcmluZ193cml0ZShyaW5nLCAoMSA8PCAob2Ffc2l6ZSArIG9hX2Jhc2UpKSAtICgxIDw8 IG9hX2Jhc2UpKTsKIH0KIAotc3RhdGljIGludCBnZnhfdjhfMF9lYXJseV9pbml0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBnZnhfdjhfMF9lYXJseV9pbml0KHZvaWQg KmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqKWhhbmRsZTsKIAogCWFkZXYtPmdmeC5udW1fZ2Z4X3JpbmdzID0gR0ZYOF9OVU1f R0ZYX1JJTkdTOwogCWFkZXYtPmdmeC5udW1fY29tcHV0ZV9yaW5ncyA9IEdGWDhfTlVNX0NPTVBV VEVfUklOR1M7CkBAIC0zNTYxLDE0ICszNTc2LDE0IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfZWFy bHlfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3Rh dGljIGludCBnZnhfdjhfMF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCitz dGF0aWMgaW50IGdmeF92OF8wX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJ CQkJCSAgZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBpbnQgZ2Z4X3Y4XzBfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVudW0gYW1kZ3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0 YXRlKQorc3RhdGljIGludCBnZnhfdjhfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFu ZGxlLAorCQkJCQkgIGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQogewogCXJldHVy biAwOwogfQpAQCAtNDExNiw3ICs0MTMxLDcgQEAgc3RhdGljIGludCBnZnhfdjhfMF9wcml2X2lu c3RfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXJldHVybiAwOwogfQogCi1jb25z dCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIGdmeF92OF8wX2lwX2Z1bmNzID0geworY29uc3Qgc3Ry dWN0IGFtZF9pcF9mdW5jcyBnZnhfdjhfMF9pcF9mdW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9IGdm eF92OF8wX2Vhcmx5X2luaXQsCiAJLmxhdGVfaW5pdCA9IE5VTEwsCiAJLnN3X2luaXQgPSBnZnhf djhfMF9zd19pbml0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4 X3Y4XzAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmgKaW5kZXggYmU4 YTVmOC4uMDIxZTA1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4 X3Y4XzAuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5oCkBAIC0y NCw3ICsyNCw3IEBACiAjaWZuZGVmIF9fR0ZYX1Y4XzBfSF9fCiAjZGVmaW5lIF9fR0ZYX1Y4XzBf SF9fCiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIGdmeF92OF8wX2lwX2Z1 bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgZ2Z4X3Y4XzBfaXBfZnVuY3M7 CiAKIHVpbnQ2NF90IGdmeF92OF8wX2dldF9ncHVfY2xvY2tfY291bnRlcihzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldik7CiB2b2lkIGdmeF92OF8wX3NlbGVjdF9zZV9zaChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgdTMyIHNlX251bSwgdTMyIHNoX251bSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y3XzAuYwppbmRleCBhYjA5NjcyLi4wMWNkNmIyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192N18wLmMKQEAgLTgxMiw4ICs4MTIsMTAgQEAgc3RhdGljIHZvaWQgZ21j X3Y3XzBfZW5hYmxlX2hkcF9scyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJV1JFRzMy KG1tSERQX01FTV9QT1dFUl9MUywgZGF0YSk7CiB9CiAKLXN0YXRpYyBpbnQgZ21jX3Y3XzBfZWFy bHlfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZ21jX3Y3XzBf ZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlnbWNfdjdfMF9zZXRfZ2FydF9m dW5jcyhhZGV2KTsKIAlnbWNfdjdfMF9zZXRfaXJxX2Z1bmNzKGFkZXYpOwogCkBAIC04MzIsMTAg KzgzNCwxMSBAQCBzdGF0aWMgaW50IGdtY192N18wX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZ21jX3Y3XzBfc3dfaW5p dChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZ21jX3Y3XzBfc3dfaW5p dCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7CiAJaW50IGRtYV9iaXRzOworCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJciA9 IGFtZGdwdV9nZW1faW5pdChhZGV2KTsKIAlpZiAocikKQEAgLTkxMSw5ICs5MTQsMTAgQEAgc3Rh dGljIGludCBnbWNfdjdfMF9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJl dHVybiByOwogfQogCi1zdGF0aWMgaW50IGdtY192N18wX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGdtY192N18wX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQog ewogCWludCBpOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVf ZGV2aWNlICopaGFuZGxlOwogCiAJaWYgKGFkZXYtPnZtX21hbmFnZXIuZW5hYmxlZCkgewogCQlm b3IgKGkgPSAwOyBpIDwgQU1ER1BVX05VTV9WTTsgKytpKQpAQCAtOTI4LDkgKzkzMiwxMCBAQCBz dGF0aWMgaW50IGdtY192N18wX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZ21jX3Y3XzBfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZ21jX3Y3XzBfaHdfaW5pdCh2b2lkICpoYW5kbGUp CiB7CiAJaW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdw dV9kZXZpY2UgKiloYW5kbGU7CiAKIAlnbWNfdjdfMF9tY19wcm9ncmFtKGFkZXYpOwogCkBAIC05 NDksMTYgKzk1NCwxOSBAQCBzdGF0aWMgaW50IGdtY192N18wX2h3X2luaXQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9CiAKLXN0YXRpYyBpbnQgZ21jX3Y3XzBfaHdf ZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZ21jX3Y3XzBfaHdf ZmluaSh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlnbWNfdjdfMF9nYXJ0X2Rpc2FibGUoYWRl dik7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBnbWNfdjdfMF9zdXNwZW5kKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBnbWNfdjdfMF9zdXNwZW5kKHZvaWQg KmhhbmRsZSkKIHsKIAlpbnQgaTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWlmIChhZGV2LT52bV9tYW5hZ2VyLmVuYWJs ZWQpIHsKIAkJZm9yIChpID0gMDsgaSA8IEFNREdQVV9OVU1fVk07ICsraSkKQEAgLTk3MSw5ICs5 NzksMTAgQEAgc3RhdGljIGludCBnbWNfdjdfMF9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdtY192N18wX3Jlc3VtZShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgZ21jX3Y3XzBfcmVzdW1lKHZvaWQg KmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXIgPSBnbWNfdjdfMF9od19pbml0KGFkZXYp OwogCWlmIChyKQpAQCAtOTkxLDggKzEwMDAsOSBAQCBzdGF0aWMgaW50IGdtY192N18wX3Jlc3Vt ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gcjsKIH0KIAotc3RhdGljIGJv b2wgZ21jX3Y3XzBfaXNfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBi b29sIGdtY192N18wX2lzX2lkbGUodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCXUzMiB0bXAgPSBS UkVHMzIobW1TUkJNX1NUQVRVUyk7CiAKIAlpZiAodG1wICYgKFNSQk1fU1RBVFVTX19NQ0JfQlVT WV9NQVNLIHwgU1JCTV9TVEFUVVNfX01DQl9OT05fRElTUExBWV9CVVNZX01BU0sgfApAQCAtMTAw MiwxMCArMTAxMiwxMSBAQCBzdGF0aWMgYm9vbCBnbWNfdjdfMF9pc19pZGxlKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW50IGdtY192N18w X3dhaXRfZm9yX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGdt Y192N18wX3dhaXRfZm9yX2lkbGUodm9pZCAqaGFuZGxlKQogewogCXVuc2lnbmVkIGk7CiAJdTMy IHRtcDsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqKWhhbmRsZTsKIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykg ewogCQkvKiByZWFkIE1DX1NUQVRVUyAqLwpAQCAtMTAyMiw5ICsxMDMzLDEwIEBAIHN0YXRpYyBp bnQgZ21jX3Y3XzBfd2FpdF9mb3JfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAog fQogCi1zdGF0aWMgdm9pZCBnbWNfdjdfMF9wcmludF9zdGF0dXMoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCitzdGF0aWMgdm9pZCBnbWNfdjdfMF9wcmludF9zdGF0dXModm9pZCAqaGFuZGxl KQogewogCWludCBpLCBqOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiR01DIDgueCBy ZWdpc3RlcnNcbiIpOwogCWRldl9pbmZvKGFkZXYtPmRldiwgIiAgU1JCTV9TVEFUVVM9MHglMDhY XG4iLApAQCAtMTEyOSw4ICsxMTQxLDkgQEAgc3RhdGljIHZvaWQgZ21jX3Y3XzBfcHJpbnRfc3Rh dHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkgUlJFRzMyKG1tQklGX0ZCX0VOKSk7 CiB9CiAKLXN0YXRpYyBpbnQgZ21jX3Y3XzBfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBpbnQgZ21jX3Y3XzBfc29mdF9yZXNldCh2b2lkICpoYW5kbGUpCiB7 CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilo YW5kbGU7CiAJc3RydWN0IGFtZGdwdV9tb2RlX21jX3NhdmUgc2F2ZTsKIAl1MzIgc3JibV9zb2Z0 X3Jlc2V0ID0gMDsKIAl1MzIgdG1wID0gUlJFRzMyKG1tU1JCTV9TVEFUVVMpOwpAQCAtMTE0Nyw3 ICsxMTYwLDcgQEAgc3RhdGljIGludCBnbWNfdjdfMF9zb2Z0X3Jlc2V0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCX0KIAogCWlmIChzcmJtX3NvZnRfcmVzZXQpIHsKLQkJZ21jX3Y3XzBf cHJpbnRfc3RhdHVzKGFkZXYpOworCQlnbWNfdjdfMF9wcmludF9zdGF0dXMoKHZvaWQgKilhZGV2 KTsKIAogCQlnbWNfdjdfMF9tY19zdG9wKGFkZXYsICZzYXZlKTsKIAkJaWYgKGdtY192N18wX3dh aXRfZm9yX2lkbGUoYWRldikpIHsKQEAgLTExNzMsNyArMTE4Niw3IEBAIHN0YXRpYyBpbnQgZ21j X3Y3XzBfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJZ21jX3Y3XzBf bWNfcmVzdW1lKGFkZXYsICZzYXZlKTsKIAkJdWRlbGF5KDUwKTsKIAotCQlnbWNfdjdfMF9wcmlu dF9zdGF0dXMoYWRldik7CisJCWdtY192N18wX3ByaW50X3N0YXR1cygodm9pZCAqKWFkZXYpOwog CX0KIAogCXJldHVybiAwOwpAQCAtMTI0MiwxMiArMTI1NSwxMyBAQCBzdGF0aWMgaW50IGdtY192 N18wX3Byb2Nlc3NfaW50ZXJydXB0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IGdtY192N18wX3NldF9jbG9ja2dhdGluZ19zdGF0ZShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9jbG9ja2dhdGluZ19z dGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgZ21jX3Y3XzBfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZv aWQgKmhhbmRsZSwKKwkJCQkJICBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSkKIHsK IAlib29sIGdhdGUgPSBmYWxzZTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAotCWlmIChzdGF0ZSA9PSBBTURHUFVfQ0dfU1RB VEVfR0FURSkKKwlpZiAoc3RhdGUgPT0gQU1EX0NHX1NUQVRFX0dBVEUpCiAJCWdhdGUgPSB0cnVl OwogCiAJaWYgKCEoYWRldi0+ZmxhZ3MgJiBBTURHUFVfSVNfQVBVKSkgewpAQCAtMTI2MSwxMyAr MTI3NSwxMyBAQCBzdGF0aWMgaW50IGdtY192N18wX3NldF9jbG9ja2dhdGluZ19zdGF0ZShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBnbWNf djdfMF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0J CQkJCSAgZW51bSBhbWRncHVfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IGdt Y192N18wX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBh bWRfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLWNvbnN0IHN0 cnVjdCBhbWRncHVfaXBfZnVuY3MgZ21jX3Y3XzBfaXBfZnVuY3MgPSB7Citjb25zdCBzdHJ1Y3Qg YW1kX2lwX2Z1bmNzIGdtY192N18wX2lwX2Z1bmNzID0gewogCS5lYXJseV9pbml0ID0gZ21jX3Y3 XzBfZWFybHlfaW5pdCwKIAkubGF0ZV9pbml0ID0gTlVMTCwKIAkuc3dfaW5pdCA9IGdtY192N18w X3N3X2luaXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdf MC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuaAppbmRleCBhYjFhMmZh Li4zNmZjYmJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdf MC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmgKQEAgLTI0LDcg KzI0LDcgQEAKICNpZm5kZWYgX19HTUNfVjdfMF9IX18KICNkZWZpbmUgX19HTUNfVjdfMF9IX18K IAotZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3MgZ21jX3Y3XzBfaXBfZnVuY3M7 CitleHRlcm4gY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyBnbWNfdjdfMF9pcF9mdW5jczsKIAog LyogWFhYIHRoZXNlIHNob3VsZG4ndCBiZSBleHBvcnRlZCAqLwogdm9pZCBnbWNfdjdfMF9tY19z dG9wKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dt Y192OF8wLmMKaW5kZXggZjgxNjE2NS4uNjc1NDgzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nbWNfdjhfMC5jCkBAIC03ODYsOCArNzg2LDEwIEBAIHN0YXRpYyB2b2lkIGdtY192OF8wX3Zt X2RlY29kZV9mYXVsdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkgICAgICAgIndyaXRl IiA6ICJyZWFkIiwgYmxvY2ssIG1jX2NsaWVudCwgbWNfaWQpOwogfQogCi1zdGF0aWMgaW50IGdt Y192OF8wX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50 IGdtY192OF8wX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJZ21jX3Y4XzBf c2V0X2dhcnRfZnVuY3MoYWRldik7CiAJZ21jX3Y4XzBfc2V0X2lycV9mdW5jcyhhZGV2KTsKIApA QCAtODA2LDEwICs4MDgsMTEgQEAgc3RhdGljIGludCBnbWNfdjhfMF9lYXJseV9pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdtY192 OF8wX3N3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGdtY192 OF8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQogewogCWludCByOwogCWludCBkbWFfYml0czsKKwlz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRs ZTsKIAogCXIgPSBhbWRncHVfZ2VtX2luaXQoYWRldik7CiAJaWYgKHIpCkBAIC04ODUsOSArODg4 LDEwIEBAIHN0YXRpYyBpbnQgZ21jX3Y4XzBfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIAlyZXR1cm4gcjsKIH0KIAotc3RhdGljIGludCBnbWNfdjhfMF9zd19maW5pKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBnbWNfdjhfMF9zd19maW5pKHZvaWQg KmhhbmRsZSkKIHsKIAlpbnQgaTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWlmIChhZGV2LT52bV9tYW5hZ2VyLmVuYWJs ZWQpIHsKIAkJZm9yIChpID0gMDsgaSA8IEFNREdQVV9OVU1fVk07ICsraSkKQEAgLTkwMiw5ICs5 MDYsMTAgQEAgc3RhdGljIGludCBnbWNfdjhfMF9zd19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdtY192OF8wX2h3X2luaXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGdtY192OF8wX2h3X2luaXQodm9p ZCAqaGFuZGxlKQogewogCWludCByOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0 cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJZ21jX3Y4XzBfaW5pdF9nb2xkZW5fcmVn aXN0ZXJzKGFkZXYpOwogCkBAIC05MjUsMTYgKzkzMCwxOSBAQCBzdGF0aWMgaW50IGdtY192OF8w X2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9CiAKLXN0 YXRpYyBpbnQgZ21jX3Y4XzBfaHdfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0 YXRpYyBpbnQgZ21jX3Y4XzBfaHdfZmluaSh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlnbWNf djhfMF9nYXJ0X2Rpc2FibGUoYWRldik7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBn bWNfdjhfMF9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBn bWNfdjhfMF9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgaTsKKwlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWlmIChh ZGV2LT52bV9tYW5hZ2VyLmVuYWJsZWQpIHsKIAkJZm9yIChpID0gMDsgaSA8IEFNREdQVV9OVU1f Vk07ICsraSkKQEAgLTk0Nyw5ICs5NTUsMTAgQEAgc3RhdGljIGludCBnbWNfdjhfMF9zdXNwZW5k KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IGdtY192OF8wX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQg Z21jX3Y4XzBfcmVzdW1lKHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXIgPSBn bWNfdjhfMF9od19pbml0KGFkZXYpOwogCWlmIChyKQpAQCAtOTY3LDggKzk3Niw5IEBAIHN0YXRp YyBpbnQgZ21jX3Y4XzBfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVy biByOwogfQogCi1zdGF0aWMgYm9vbCBnbWNfdjhfMF9pc19pZGxlKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQorc3RhdGljIGJvb2wgZ21jX3Y4XzBfaXNfaWRsZSh2b2lkICpoYW5kbGUpCiB7 CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilo YW5kbGU7CiAJdTMyIHRtcCA9IFJSRUczMihtbVNSQk1fU1RBVFVTKTsKIAogCWlmICh0bXAgJiAo U1JCTV9TVEFUVVNfX01DQl9CVVNZX01BU0sgfCBTUkJNX1NUQVRVU19fTUNCX05PTl9ESVNQTEFZ X0JVU1lfTUFTSyB8CkBAIC05NzgsMTAgKzk4OCwxMSBAQCBzdGF0aWMgYm9vbCBnbWNfdjhfMF9p c19pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiB0cnVlOwogfQogCi1z dGF0aWMgaW50IGdtY192OF8wX3dhaXRfZm9yX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCitzdGF0aWMgaW50IGdtY192OF8wX3dhaXRfZm9yX2lkbGUodm9pZCAqaGFuZGxlKQogewog CXVuc2lnbmVkIGk7CiAJdTMyIHRtcDsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT51 c2VjX3RpbWVvdXQ7IGkrKykgewogCQkvKiByZWFkIE1DX1NUQVRVUyAqLwpAQCAtOTk5LDkgKzEw MTAsMTAgQEAgc3RhdGljIGludCBnbWNfdjhfMF93YWl0X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCiB9CiAKLXN0YXRpYyB2b2lkIGdtY192OF8wX3ByaW50X3N0YXR1cyhz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIGdtY192OF8wX3ByaW50X3N0 YXR1cyh2b2lkICpoYW5kbGUpCiB7CiAJaW50IGksIGo7CisJc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlkZXZfaW5mbyhhZGV2 LT5kZXYsICJHTUMgOC54IHJlZ2lzdGVyc1xuIik7CiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiICBT UkJNX1NUQVRVUz0weCUwOFhcbiIsCkBAIC0xMTAzLDEwICsxMTE1LDExIEBAIHN0YXRpYyB2b2lk IGdtY192OF8wX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJIFJS RUczMihtbUJJRl9GQl9FTikpOwogfQogCi1zdGF0aWMgaW50IGdtY192OF8wX3NvZnRfcmVzZXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGdtY192OF8wX3NvZnRfcmVz ZXQodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBhbWRncHVfbW9kZV9tY19zYXZlIHNhdmU7CiAJ dTMyIHNyYm1fc29mdF9yZXNldCA9IDA7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAo c3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAJdTMyIHRtcCA9IFJSRUczMihtbVNSQk1f U1RBVFVTKTsKIAogCWlmICh0bXAgJiBTUkJNX1NUQVRVU19fVk1DX0JVU1lfTUFTSykKQEAgLTEx MjEsNyArMTEzNCw3IEBAIHN0YXRpYyBpbnQgZ21jX3Y4XzBfc29mdF9yZXNldChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAl9CiAKIAlpZiAoc3JibV9zb2Z0X3Jlc2V0KSB7Ci0JCWdtY192 OF8wX3ByaW50X3N0YXR1cyhhZGV2KTsKKwkJZ21jX3Y4XzBfcHJpbnRfc3RhdHVzKCh2b2lkICop YWRldik7CiAKIAkJZ21jX3Y4XzBfbWNfc3RvcChhZGV2LCAmc2F2ZSk7CiAJCWlmIChnbWNfdjhf MF93YWl0X2Zvcl9pZGxlKGFkZXYpKSB7CkBAIC0xMTQ3LDcgKzExNjAsNyBAQCBzdGF0aWMgaW50 IGdtY192OF8wX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWdtY192 OF8wX21jX3Jlc3VtZShhZGV2LCAmc2F2ZSk7CiAJCXVkZWxheSg1MCk7CiAKLQkJZ21jX3Y4XzBf cHJpbnRfc3RhdHVzKGFkZXYpOworCQlnbWNfdjhfMF9wcmludF9zdGF0dXMoKHZvaWQgKilhZGV2 KTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTEyMTcsMjEgKzEyMzAsMTkgQEAgc3RhdGljIGludCBn bWNfdjhfMF9wcm9jZXNzX2ludGVycnVwdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBnbWNfdjhfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfY2xvY2tnYXRp bmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IGdtY192OF8wX3NldF9jbG9ja2dhdGluZ19zdGF0 ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUp CiB7Ci0JLyogWFhYIGhhbmRsZWQgdmlhIHRoZSBzbWMgb24gVkkgKi8KLQogCXJldHVybiAwOwog fQogCi1zdGF0aWMgaW50IGdtY192OF8wX3NldF9wb3dlcmdhdGluZ19zdGF0ZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9wb3dlcmdhdGluZ19zdGF0ZSBz dGF0ZSkKK3N0YXRpYyBpbnQgZ21jX3Y4XzBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHZvaWQgKmhh bmRsZSwKKwkJCQkJICBlbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKIHsKIAlyZXR1 cm4gMDsKIH0KIAotY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyBnbWNfdjhfMF9pcF9mdW5j cyA9IHsKK2NvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgZ21jX3Y4XzBfaXBfZnVuY3MgPSB7CiAJ LmVhcmx5X2luaXQgPSBnbWNfdjhfMF9lYXJseV9pbml0LAogCS5sYXRlX2luaXQgPSBOVUxMLAog CS5zd19pbml0ID0gZ21jX3Y4XzBfc3dfaW5pdCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dtY192OF8wLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNf djhfMC5oCmluZGV4IDJkZDdmODAuLjk3MzQzNjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dtY192OF8wLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z21jX3Y4XzAuaApAQCAtMjQsNyArMjQsNyBAQAogI2lmbmRlZiBfX0dNQ19WOF8wX0hfXwogI2Rl ZmluZSBfX0dNQ19WOF8wX0hfXwogCi1leHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5j cyBnbWNfdjhfMF9pcF9mdW5jczsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIGdt Y192OF8wX2lwX2Z1bmNzOwogCiAvKiBYWFggdGhlc2Ugc2hvdWxkbid0IGJlIGV4cG9ydGVkICov CiB2b2lkIGdtY192OF8wX21jX3N0b3Aoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9pY2VsYW5kX2RwbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvaWNlbGFuZF9kcG0uYwppbmRleCAwNjg4Yjg4Li40Yjc3M2Yy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9pY2VsYW5kX2RwbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2ljZWxhbmRfZHBtLmMKQEAgLTMwLDggKzMw LDEwIEBAIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3RvcGF6X3NtYy5iaW4iKTsKIAogc3RhdGlj IHZvaWQgaWNlbGFuZF9kcG1fc2V0X2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsK IAotc3RhdGljIGludCBpY2VsYW5kX2RwbV9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQorc3RhdGljIGludCBpY2VsYW5kX2RwbV9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkK IHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq KWhhbmRsZTsKKwogCWljZWxhbmRfZHBtX3NldF9mdW5jcyhhZGV2KTsKIAogCXJldHVybiAwOwpA QCAtNTYsOSArNTgsMTAgQEAgb3V0OgogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBpbnQgaWNl bGFuZF9kcG1fc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQg aWNlbGFuZF9kcG1fc3dfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHJldDsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAog CXJldCA9IGljZWxhbmRfZHBtX2luaXRfbWljcm9jb2RlKGFkZXYpOwogCWlmIChyZXQpCkBAIC02 NywxNCArNzAsMTUgQEAgc3RhdGljIGludCBpY2VsYW5kX2RwbV9zd19pbml0KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGljZWxhbmRfZHBt X3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGljZWxhbmRf ZHBtX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IGljZWxhbmRfZHBtX2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMg aW50IGljZWxhbmRfZHBtX2h3X2luaXQodm9pZCAqaGFuZGxlKQogewogCWludCByZXQ7CisJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7 CiAKIAltdXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7CiAKQEAgLTk5LDQxICsxMDMsNDcgQEAg ZmFpbDoKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAotc3RhdGljIGludCBpY2VsYW5kX2RwbV9od19m aW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBpY2VsYW5kX2RwbV9o d19maW5pKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCW11dGV4X2xvY2soJmFkZXYtPnBtLm11 dGV4KTsKIAlpY2VsYW5kX3NtdV9maW5pKGFkZXYpOwogCW11dGV4X3VubG9jaygmYWRldi0+cG0u bXV0ZXgpOwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGljZWxhbmRfZHBtX3N1c3BlbmQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGljZWxhbmRfZHBtX3N1c3Bl bmQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVj dCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJaWNlbGFuZF9kcG1faHdfZmluaShhZGV2KTsK IAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGljZWxhbmRfZHBtX3Jlc3VtZShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgaWNlbGFuZF9kcG1fcmVzdW1lKHZvaWQg KmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqKWhhbmRsZTsKKwogCWljZWxhbmRfZHBtX2h3X2luaXQoYWRldik7CiAKIAlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIGludCBpY2VsYW5kX2RwbV9zZXRfY2xvY2tnYXRpbmdfc3RhdGUo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQllbnVtIGFtZGdwdV9jbG9ja2dhdGluZ19z dGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgaWNlbGFuZF9kcG1fc2V0X2Nsb2NrZ2F0aW5nX3N0YXRl KHZvaWQgKmhhbmRsZSwKKwkJCWVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQogewog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGljZWxhbmRfZHBtX3NldF9wb3dlcmdhdGluZ19z dGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCWVudW0gYW1kZ3B1X3Bvd2VyZ2F0 aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBpY2VsYW5kX2RwbV9zZXRfcG93ZXJnYXRpbmdf c3RhdGUodm9pZCAqaGFuZGxlLAorCQkJZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUp CiB7CiAJcmV0dXJuIDA7CiB9CiAKLWNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3MgaWNlbGFu ZF9kcG1faXBfZnVuY3MgPSB7Citjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIGljZWxhbmRfZHBt X2lwX2Z1bmNzID0gewogCS5lYXJseV9pbml0ID0gaWNlbGFuZF9kcG1fZWFybHlfaW5pdCwKIAku bGF0ZV9pbml0ID0gTlVMTCwKIAkuc3dfaW5pdCA9IGljZWxhbmRfZHBtX3N3X2luaXQsCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9pY2VsYW5kX2loLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9pY2VsYW5kX2loLmMKaW5kZXggMmRlOGFkZi4uNzc5NTMyZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvaWNlbGFuZF9paC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2ljZWxhbmRfaWguYwpAQCAtMjUwLDE1ICsyNTAs MTggQEAgc3RhdGljIHZvaWQgaWNlbGFuZF9paF9zZXRfcnB0cihzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKIAlXUkVHMzIobW1JSF9SQl9SUFRSLCBhZGV2LT5pcnEuaWgucnB0cik7CiB9CiAK LXN0YXRpYyBpbnQgaWNlbGFuZF9paF9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQorc3RhdGljIGludCBpY2VsYW5kX2loX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogewor CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFu ZGxlOworCiAJaWNlbGFuZF9paF9zZXRfaW50ZXJydXB0X2Z1bmNzKGFkZXYpOwogCXJldHVybiAw OwogfQogCi1zdGF0aWMgaW50IGljZWxhbmRfaWhfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBpbnQgaWNlbGFuZF9paF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIHsK IAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqKWhhbmRsZTsKIAogCXIgPSBhbWRncHVfaWhfcmluZ19pbml0KGFkZXYsIDY0ICogMTAy NCwgZmFsc2UpOwogCWlmIChyKQpAQCAtMjY5LDE3ICsyNzIsMjAgQEAgc3RhdGljIGludCBpY2Vs YW5kX2loX3N3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9 CiAKLXN0YXRpYyBpbnQgaWNlbGFuZF9paF9zd19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQorc3RhdGljIGludCBpY2VsYW5kX2loX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogeworCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxl OworCiAJYW1kZ3B1X2lycV9maW5pKGFkZXYpOwogCWFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldik7 CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpY2VsYW5kX2loX2h3X2luaXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGljZWxhbmRfaWhfaHdfaW5pdCh2b2lk ICpoYW5kbGUpCiB7CiAJaW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlyID0gaWNlbGFuZF9paF9pcnFfaW5pdChh ZGV2KTsKIAlpZiAocikKQEAgLTI4OCwyNSArMjk0LDMyIEBAIHN0YXRpYyBpbnQgaWNlbGFuZF9p aF9od19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IGljZWxhbmRfaWhfaHdfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK K3N0YXRpYyBpbnQgaWNlbGFuZF9paF9od19maW5pKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwog CWljZWxhbmRfaWhfaXJxX2Rpc2FibGUoYWRldik7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBpY2VsYW5kX2loX3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0 aWMgaW50IGljZWxhbmRfaWhfc3VzcGVuZCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlyZXR1 cm4gaWNlbGFuZF9paF9od19maW5pKGFkZXYpOwogfQogCi1zdGF0aWMgaW50IGljZWxhbmRfaWhf cmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBpY2VsYW5kX2lo X3Jlc3VtZSh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAo c3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlyZXR1cm4gaWNlbGFuZF9paF9od19p bml0KGFkZXYpOwogfQogCi1zdGF0aWMgYm9vbCBpY2VsYW5kX2loX2lzX2lkbGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgYm9vbCBpY2VsYW5kX2loX2lzX2lkbGUodm9pZCAq aGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVf ZGV2aWNlICopaGFuZGxlOwogCXUzMiB0bXAgPSBSUkVHMzIobW1TUkJNX1NUQVRVUyk7CiAKIAlp ZiAoUkVHX0dFVF9GSUVMRCh0bXAsIFNSQk1fU1RBVFVTLCBJSF9CVVNZKSkKQEAgLTMxNSwxMCAr MzI4LDExIEBAIHN0YXRpYyBib29sIGljZWxhbmRfaWhfaXNfaWRsZShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGludCBpY2VsYW5kX2loX3dh aXRfZm9yX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGljZWxh bmRfaWhfd2FpdF9mb3JfaWRsZSh2b2lkICpoYW5kbGUpCiB7CiAJdW5zaWduZWQgaTsKIAl1MzIg dG1wOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNl ICopaGFuZGxlOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7 CiAJCS8qIHJlYWQgTUNfU1RBVFVTICovCkBAIC0zMzAsOCArMzQ0LDEwIEBAIHN0YXRpYyBpbnQg aWNlbGFuZF9paF93YWl0X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJl dHVybiAtRVRJTUVET1VUOwogfQogCi1zdGF0aWMgdm9pZCBpY2VsYW5kX2loX3ByaW50X3N0YXR1 cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIGljZWxhbmRfaWhfcHJp bnRfc3RhdHVzKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWRldl9pbmZvKGFkZXYtPmRldiwg IklDRUxBTkQgSUggcmVnaXN0ZXJzXG4iKTsKIAlkZXZfaW5mbyhhZGV2LT5kZXYsICIgIFNSQk1f U1RBVFVTPTB4JTA4WFxuIiwKIAkJUlJFRzMyKG1tU1JCTV9TVEFUVVMpKTsKQEAgLTM1Nyw5ICsz NzMsMTAgQEAgc3RhdGljIHZvaWQgaWNlbGFuZF9paF9wcmludF9zdGF0dXMoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJCSBSUkVHMzIobW1JSF9SQl9XUFRSKSk7CiB9CiAKLXN0YXRpYyBp bnQgaWNlbGFuZF9paF9zb2Z0X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3Rh dGljIGludCBpY2VsYW5kX2loX3NvZnRfcmVzZXQodm9pZCAqaGFuZGxlKQogewogCXUzMiBzcmJt X3NvZnRfcmVzZXQgPSAwOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOwogCXUzMiB0bXAgPSBSUkVHMzIobW1TUkJNX1NUQVRVUyk7 CiAKIAlpZiAodG1wICYgU1JCTV9TVEFUVVNfX0lIX0JVU1lfTUFTSykKQEAgLTM2Nyw3ICszODQs NyBAQCBzdGF0aWMgaW50IGljZWxhbmRfaWhfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKIAkJCQkJCVNPRlRfUkVTRVRfSUgsIDEpOwogCiAJaWYgKHNyYm1fc29mdF9yZXNl dCkgewotCQlpY2VsYW5kX2loX3ByaW50X3N0YXR1cyhhZGV2KTsKKwkJaWNlbGFuZF9paF9wcmlu dF9zdGF0dXMoKHZvaWQgKilhZGV2KTsKIAogCQl0bXAgPSBSUkVHMzIobW1TUkJNX1NPRlRfUkVT RVQpOwogCQl0bXAgfD0gc3JibV9zb2Z0X3Jlc2V0OwpAQCAtMzg0LDI3ICs0MDEsMjUgQEAgc3Rh dGljIGludCBpY2VsYW5kX2loX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CiAJCS8qIFdhaXQgYSBsaXR0bGUgZm9yIHRoaW5ncyB0byBzZXR0bGUgZG93biAqLwogCQl1ZGVs YXkoNTApOwogCi0JCWljZWxhbmRfaWhfcHJpbnRfc3RhdHVzKGFkZXYpOworCQlpY2VsYW5kX2lo X3ByaW50X3N0YXR1cygodm9pZCAqKWFkZXYpOwogCX0KIAogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgaW50IGljZWxhbmRfaWhfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAotCQkJCQkgIGVudW0gYW1kZ3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQor c3RhdGljIGludCBpY2VsYW5kX2loX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUs CisJCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCiB7Ci0JLy8gVE9ETwog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGljZWxhbmRfaWhfc2V0X3Bvd2VyZ2F0aW5nX3N0 YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVudW0gYW1kZ3B1X3Bvd2Vy Z2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBpY2VsYW5kX2loX3NldF9wb3dlcmdhdGlu Z19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUg c3RhdGUpCiB7Ci0JLy8gVE9ETwogCXJldHVybiAwOwogfQogCi1jb25zdCBzdHJ1Y3QgYW1kZ3B1 X2lwX2Z1bmNzIGljZWxhbmRfaWhfaXBfZnVuY3MgPSB7Citjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1 bmNzIGljZWxhbmRfaWhfaXBfZnVuY3MgPSB7CiAJLmVhcmx5X2luaXQgPSBpY2VsYW5kX2loX2Vh cmx5X2luaXQsCiAJLmxhdGVfaW5pdCA9IE5VTEwsCiAJLnN3X2luaXQgPSBpY2VsYW5kX2loX3N3 X2luaXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9pY2VsYW5kX2lo LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9pY2VsYW5kX2loLmgKaW5kZXggZDAwMTg5 NS4uNTc1NThjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvaWNlbGFu ZF9paC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2ljZWxhbmRfaWguaApAQCAt MjQsNiArMjQsNiBAQAogI2lmbmRlZiBfX0lDRUxBTkRfSUhfSF9fCiAjZGVmaW5lIF9fSUNFTEFO RF9JSF9IX18KIAotZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3MgaWNlbGFuZF9p aF9pcF9mdW5jczsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIGljZWxhbmRfaWhf aXBfZnVuY3M7CiAKICNlbmRpZiAvKiBfX0lDRUxBTkRfSUhfSF9fICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9rdl9kcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2t2X2RwbS5jCmluZGV4IGNkOTAyNDEuLjk0ZWMwNGEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2t2X2RwbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2t2X2RwbS5jCkBAIC0xNTUyLDggKzE1NTIsOCBAQCBzdGF0aWMgaW50IGt2X3VwZGF0 ZV92Y2VfZHBtKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWlmIChhbWRncHVfbmV3X3N0 YXRlLT5ldmNsayA+IDAgJiYgYW1kZ3B1X2N1cnJlbnRfc3RhdGUtPmV2Y2xrID09IDApIHsKIAkJ a3ZfZHBtX3Bvd2VyZ2F0ZV92Y2UoYWRldiwgZmFsc2UpOwogCQkvKiB0dXJuIHRoZSBjbG9ja3Mg b24gd2hlbiBlbmNvZGluZyAqLwotCQlyZXQgPSBhbWRncHVfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRl KGFkZXYsIEFNREdQVV9JUF9CTE9DS19UWVBFX1ZDRSwKLQkJCQkJCSAgICBBTURHUFVfQ0dfU1RB VEVfVU5HQVRFKTsKKwkJcmV0ID0gYW1kZ3B1X3NldF9jbG9ja2dhdGluZ19zdGF0ZShhZGV2LCBB TURfSVBfQkxPQ0tfVFlQRV9WQ0UsCisJCQkJCQkgICAgQU1EX0NHX1NUQVRFX1VOR0FURSk7CiAJ CWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCQlpZiAocGktPmNhcHNfc3RhYmxlX3Bfc3RhdGUp CkBAIC0xNTc5LDggKzE1NzksOCBAQCBzdGF0aWMgaW50IGt2X3VwZGF0ZV92Y2VfZHBtKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAogCX0gZWxzZSBpZiAoYW1kZ3B1X25ld19zdGF0ZS0+ZXZj bGsgPT0gMCAmJiBhbWRncHVfY3VycmVudF9zdGF0ZS0+ZXZjbGsgPiAwKSB7CiAJCWt2X2VuYWJs ZV92Y2VfZHBtKGFkZXYsIGZhbHNlKTsKIAkJLyogdHVybiB0aGUgY2xvY2tzIG9mZiB3aGVuIG5v dCBlbmNvZGluZyAqLwotCQlyZXQgPSBhbWRncHVfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKGFkZXYs IEFNREdQVV9JUF9CTE9DS19UWVBFX1ZDRSwKLQkJCQkJCSAgICBBTURHUFVfQ0dfU1RBVEVfR0FU RSk7CisJCXJldCA9IGFtZGdwdV9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoYWRldiwgQU1EX0lQX0JM T0NLX1RZUEVfVkNFLAorCQkJCQkJICAgIEFNRF9DR19TVEFURV9HQVRFKTsKIAkJaWYgKHJldCkK IAkJCXJldHVybiByZXQ7CiAJCWt2X2RwbV9wb3dlcmdhdGVfdmNlKGFkZXYsIHRydWUpOwpAQCAt MTY5NywxMSArMTY5NywxMSBAQCBzdGF0aWMgdm9pZCBrdl9kcG1fcG93ZXJnYXRlX3V2ZChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCBnYXRlKQogCWlmIChnYXRlKSB7CiAJCWlmIChw aS0+Y2Fwc191dmRfcGcpIHsKIAkJCS8qIGRpc2FibGUgY2xvY2tnYXRpbmcgc28gd2UgY2FuIHBy b3Blcmx5IHNodXQgZG93biB0aGUgYmxvY2sgKi8KLQkJCXJldCA9IGFtZGdwdV9zZXRfY2xvY2tn YXRpbmdfc3RhdGUoYWRldiwgQU1ER1BVX0lQX0JMT0NLX1RZUEVfVVZELAotCQkJCQkJCSAgICBB TURHUFVfQ0dfU1RBVEVfVU5HQVRFKTsKKwkJCXJldCA9IGFtZGdwdV9zZXRfY2xvY2tnYXRpbmdf c3RhdGUoYWRldiwgQU1EX0lQX0JMT0NLX1RZUEVfVVZELAorCQkJCQkJCSAgICBBTURfQ0dfU1RB VEVfVU5HQVRFKTsKIAkJCS8qIHNodXRkb3duIHRoZSBVVkQgYmxvY2sgKi8KLQkJCXJldCA9IGFt ZGdwdV9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoYWRldiwgQU1ER1BVX0lQX0JMT0NLX1RZUEVfVVZE LAotCQkJCQkJCSAgICBBTURHUFVfUEdfU1RBVEVfR0FURSk7CisJCQlyZXQgPSBhbWRncHVfc2V0 X3Bvd2VyZ2F0aW5nX3N0YXRlKGFkZXYsIEFNRF9JUF9CTE9DS19UWVBFX1VWRCwKKwkJCQkJCQkg ICAgQU1EX1BHX1NUQVRFX0dBVEUpOwogCQkJLyogWFhYOiBjaGVjayBmb3IgZXJyb3JzICovCiAJ CX0KIAkJa3ZfdXBkYXRlX3V2ZF9kcG0oYWRldiwgZ2F0ZSk7CkBAIC0xNzEzLDExICsxNzEzLDEx IEBAIHN0YXRpYyB2b2lkIGt2X2RwbV9wb3dlcmdhdGVfdXZkKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LCBib29sIGdhdGUpCiAJCQkvKiBwb3dlciBvbiB0aGUgVVZEIGJsb2NrICovCiAJCQlh bWRncHVfa3Zfbm90aWZ5X21lc3NhZ2VfdG9fc211KGFkZXYsIFBQU01DX01TR19VVkRQb3dlck9O KTsKIAkJCS8qIHJlLWluaXQgdGhlIFVWRCBibG9jayAqLwotCQkJcmV0ID0gYW1kZ3B1X3NldF9w b3dlcmdhdGluZ19zdGF0ZShhZGV2LCBBTURHUFVfSVBfQkxPQ0tfVFlQRV9VVkQsCi0JCQkJCQkJ ICAgIEFNREdQVV9QR19TVEFURV9VTkdBVEUpOworCQkJcmV0ID0gYW1kZ3B1X3NldF9wb3dlcmdh dGluZ19zdGF0ZShhZGV2LCBBTURfSVBfQkxPQ0tfVFlQRV9VVkQsCisJCQkJCQkJICAgIEFNRF9Q R19TVEFURV9VTkdBVEUpOwogCQkJLyogZW5hYmxlIGNsb2NrZ2F0aW5nLiBodyB3aWxsIGR5bmFt aWNhbGx5IGdhdGUvdW5nYXRlIGNsb2NrcyBvbiB0aGUgZmx5ICovCi0JCQlyZXQgPSBhbWRncHVf c2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKGFkZXYsIEFNREdQVV9JUF9CTE9DS19UWVBFX1VWRCwKLQkJ CQkJCQkgICAgQU1ER1BVX0NHX1NUQVRFX0dBVEUpOworCQkJcmV0ID0gYW1kZ3B1X3NldF9jbG9j a2dhdGluZ19zdGF0ZShhZGV2LCBBTURfSVBfQkxPQ0tfVFlQRV9VVkQsCisJCQkJCQkJICAgIEFN RF9DR19TVEFURV9HQVRFKTsKIAkJCS8qIFhYWDogY2hlY2sgZm9yIGVycm9ycyAqLwogCQl9CiAJ CWt2X3VwZGF0ZV91dmRfZHBtKGFkZXYsIGdhdGUpOwpAQCAtMTczNyw4ICsxNzM3LDggQEAgc3Rh dGljIHZvaWQga3ZfZHBtX3Bvd2VyZ2F0ZV92Y2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs IGJvb2wgZ2F0ZSkKIAlpZiAoZ2F0ZSkgewogCQlpZiAocGktPmNhcHNfdmNlX3BnKSB7CiAJCQkv KiBzaHV0ZG93biB0aGUgVkNFIGJsb2NrICovCi0JCQlyZXQgPSBhbWRncHVfc2V0X3Bvd2VyZ2F0 aW5nX3N0YXRlKGFkZXYsIEFNREdQVV9JUF9CTE9DS19UWVBFX1ZDRSwKLQkJCQkJCQkgICAgQU1E R1BVX1BHX1NUQVRFX0dBVEUpOworCQkJcmV0ID0gYW1kZ3B1X3NldF9wb3dlcmdhdGluZ19zdGF0 ZShhZGV2LCBBTURfSVBfQkxPQ0tfVFlQRV9WQ0UsCisJCQkJCQkJICAgIEFNRF9QR19TVEFURV9H QVRFKTsKIAkJCS8qIFhYWDogY2hlY2sgZm9yIGVycm9ycyAqLwogCQkJLyogcG93ZXIgb2ZmIHRo ZSBWQ0UgYmxvY2sgKi8KIAkJCWFtZGdwdV9rdl9ub3RpZnlfbWVzc2FnZV90b19zbXUoYWRldiwg UFBTTUNfTVNHX1ZDRVBvd2VyT0ZGKTsKQEAgLTE3NDgsOCArMTc0OCw4IEBAIHN0YXRpYyB2b2lk IGt2X2RwbV9wb3dlcmdhdGVfdmNlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGdh dGUpCiAJCQkvKiBwb3dlciBvbiB0aGUgVkNFIGJsb2NrICovCiAJCQlhbWRncHVfa3Zfbm90aWZ5 X21lc3NhZ2VfdG9fc211KGFkZXYsIFBQU01DX01TR19WQ0VQb3dlck9OKTsKIAkJCS8qIHJlLWlu aXQgdGhlIFZDRSBibG9jayAqLwotCQkJcmV0ID0gYW1kZ3B1X3NldF9wb3dlcmdhdGluZ19zdGF0 ZShhZGV2LCBBTURHUFVfSVBfQkxPQ0tfVFlQRV9WQ0UsCi0JCQkJCQkJICAgIEFNREdQVV9QR19T VEFURV9VTkdBVEUpOworCQkJcmV0ID0gYW1kZ3B1X3NldF9wb3dlcmdhdGluZ19zdGF0ZShhZGV2 LCBBTURfSVBfQkxPQ0tfVFlQRV9WQ0UsCisJCQkJCQkJICAgIEFNRF9QR19TVEFURV9VTkdBVEUp OwogCQkJLyogWFhYOiBjaGVjayBmb3IgZXJyb3JzICovCiAJCX0KIAl9CkBAIC0yOTgxLDIwICsy OTgxLDIxIEBAIHN0YXRpYyBpbnQga3ZfZHBtX2dldF90ZW1wKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCXJldHVybiBhY3R1YWxfdGVtcDsKIH0KIAotc3RhdGljIGludCBrdl9kcG1fZWFy bHlfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQga3ZfZHBtX2Vh cmx5X2luaXQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g KHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJa3ZfZHBtX3NldF9kcG1fZnVuY3Mo YWRldik7CiAJa3ZfZHBtX3NldF9pcnFfZnVuY3MoYWRldik7CiAKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBrdl9kcG1fbGF0ZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQor c3RhdGljIGludCBrdl9kcG1fbGF0ZV9pbml0KHZvaWQgKmhhbmRsZSkKIHsKLQlpZiAoIWFtZGdw dV9kcG0pCi0JCXJldHVybiAwOwotCiAJLyogcG93ZXJkb3duIHVudXNlZCBibG9ja3MgZm9yIG5v dyAqLworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNl ICopaGFuZGxlOworCiAJa3ZfZHBtX3Bvd2VyZ2F0ZV9hY3AoYWRldiwgdHJ1ZSk7CiAJa3ZfZHBt X3Bvd2VyZ2F0ZV9zYW11KGFkZXYsIHRydWUpOwogCWt2X2RwbV9wb3dlcmdhdGVfdmNlKGFkZXYs IHRydWUpOwpAQCAtMzAwMyw5ICszMDA0LDEwIEBAIHN0YXRpYyBpbnQga3ZfZHBtX2xhdGVfaW5p dChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dCBrdl9kcG1fc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQg a3ZfZHBtX3N3X2luaXQodm9pZCAqaGFuZGxlKQogewogCWludCByZXQ7CisJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlyZXQg PSBhbWRncHVfaXJxX2FkZF9pZChhZGV2LCAyMzAsICZhZGV2LT5wbS5kcG0udGhlcm1hbC5pcnEp OwogCWlmIChyZXQpCkBAIC0zMDUxLDggKzMwNTMsMTAgQEAgZHBtX2ZhaWxlZDoKIAlyZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgaW50IGt2X2RwbV9zd19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQorc3RhdGljIGludCBrdl9kcG1fc3dfZmluaSh2b2lkICpoYW5kbGUpCiB7CisJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7 CisKIAltdXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7CiAJYW1kZ3B1X3BtX3N5c2ZzX2Zpbmko YWRldik7CiAJa3ZfZHBtX2ZpbmkoYWRldik7CkBAIC0zMDYxLDEyICszMDY1LDEwIEBAIHN0YXRp YyBpbnQga3ZfZHBtX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQga3ZfZHBtX2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCitzdGF0aWMgaW50IGt2X2RwbV9od19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQg cmV0OwotCi0JaWYgKCFhbWRncHVfZHBtKQotCQlyZXR1cm4gMDsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCW11dGV4X2xv Y2soJmFkZXYtPnBtLm11dGV4KTsKIAlrdl9kcG1fc2V0dXBfYXNpYyhhZGV2KTsKQEAgLTMwODAs OCArMzA4MiwxMCBAQCBzdGF0aWMgaW50IGt2X2RwbV9od19pbml0KHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQga3ZfZHBtX2h3X2Zpbmko c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGt2X2RwbV9od19maW5pKHZv aWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWlmIChhZGV2LT5wbS5kcG1fZW5hYmxlZCkgewogCQlt dXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7CiAJCWt2X2RwbV9kaXNhYmxlKGFkZXYpOwpAQCAt MzA5MSw4ICszMDk1LDEwIEBAIHN0YXRpYyBpbnQga3ZfZHBtX2h3X2Zpbmkoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQga3ZfZHBtX3N1c3Bl bmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IGt2X2RwbV9zdXNwZW5k KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWlmIChhZGV2LT5wbS5kcG1fZW5hYmxlZCkgewog CQltdXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7CiAJCS8qIGRpc2FibGUgZHBtICovCkBAIC0z MTA0LDkgKzMxMTAsMTAgQEAgc3RhdGljIGludCBrdl9kcG1fc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBrdl9kcG1fcmVzdW1l KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBrdl9kcG1fcmVzdW1lKHZv aWQgKmhhbmRsZSkKIHsKIAlpbnQgcmV0OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g KHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJaWYgKGFkZXYtPnBtLmRwbV9lbmFi bGVkKSB7CiAJCS8qIGFzaWMgaW5pdCB3aWxsIHJlc2V0IHRvIHRoZSBib290IHN0YXRlICovCkBA IC0zMTI0LDIwICszMTMxLDIwIEBAIHN0YXRpYyBpbnQga3ZfZHBtX3Jlc3VtZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGJvb2wga3ZfZHBtX2lz X2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgYm9vbCBrdl9kcG1faXNf aWRsZSh2b2lkICpoYW5kbGUpCiB7Ci0JLyogWFhYICovCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0 YXRpYyBpbnQga3ZfZHBtX3dhaXRfZm9yX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CitzdGF0aWMgaW50IGt2X2RwbV93YWl0X2Zvcl9pZGxlKHZvaWQgKmhhbmRsZSkKIHsKLQkvKiBY WFggKi8KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQga3ZfZHBtX3ByaW50X3N0YXR1cyhz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIGt2X2RwbV9wcmludF9zdGF0 dXModm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVj dCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiS1YvS0Ig RFBNIHJlZ2lzdGVyc1xuIik7CiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiICBESURUX1NRX0NUUkww PTB4JTA4WFxuIiwKIAkJIFJSRUczMl9ESURUKGl4RElEVF9TUV9DVFJMMCkpOwpAQCAtMzE5MSw3 ICszMTk4LDcgQEAgc3RhdGljIHZvaWQga3ZfZHBtX3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAkJIFJSRUczMihtbVNNQ19JTkRfQUNDRVNTX0NOVEwpKTsKIH0KIAot c3RhdGljIGludCBrdl9kcG1fc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK K3N0YXRpYyBpbnQga3ZfZHBtX3NvZnRfcmVzZXQodm9pZCAqaGFuZGxlKQogewogCXJldHVybiAw OwogfQpAQCAtMzI3NCwxOSArMzI4MSwxOSBAQCBzdGF0aWMgaW50IGt2X2RwbV9wcm9jZXNzX2lu dGVycnVwdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlyZXR1cm4gMDsKIH0KIAotc3Rh dGljIGludCBrdl9kcG1fc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LAotCQkJCQkgIGVudW0gYW1kZ3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3Rh dGljIGludCBrdl9kcG1fc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJCQkJ ICBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSkKIHsKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBrdl9kcG1fc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAotCQkJCQkgIGVudW0gYW1kZ3B1X3Bvd2VyZ2F0aW5nX3N0YXRlIHN0YXRlKQor c3RhdGljIGludCBrdl9kcG1fc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJ CQkJICBlbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKIHsKIAlyZXR1cm4gMDsKIH0K IAotY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyBrdl9kcG1faXBfZnVuY3MgPSB7Citjb25z dCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIGt2X2RwbV9pcF9mdW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9 IGt2X2RwbV9lYXJseV9pbml0LAogCS5sYXRlX2luaXQgPSBrdl9kcG1fbGF0ZV9pbml0LAogCS5z d19pbml0ID0ga3ZfZHBtX3N3X2luaXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9zZG1hX3YyXzQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJf NC5jCmluZGV4IDk5YjhiMzIuLjY0ZGU4ZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3NkbWFfdjJfNC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjJfNC5jCkBAIC05NTUsOCArOTU1LDEwIEBAIHN0YXRpYyB2b2lkIHNkbWFfdjJfNF9yaW5n X2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkJICBTRE1BX1BLVF9Q T0xMX1JFR01FTV9EVzVfSU5URVJWQUwoMTApKTsgLyogcmV0cnkgY291bnQsIHBvbGwgaW50ZXJ2 YWwgKi8KIH0KIAotc3RhdGljIGludCBzZG1hX3YyXzRfZWFybHlfaW5pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgc2RtYV92Ml80X2Vhcmx5X2luaXQodm9pZCAqaGFu ZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2 aWNlICopaGFuZGxlOworCiAJc2RtYV92Ml80X3NldF9yaW5nX2Z1bmNzKGFkZXYpOwogCXNkbWFf djJfNF9zZXRfYnVmZmVyX2Z1bmNzKGFkZXYpOwogCXNkbWFfdjJfNF9zZXRfdm1fcHRlX2Z1bmNz KGFkZXYpOwpAQCAtOTY1LDEwICs5NjcsMTEgQEAgc3RhdGljIGludCBzZG1hX3YyXzRfZWFybHlf aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBzZG1hX3YyXzRfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRp YyBpbnQgc2RtYV92Ml80X3N3X2luaXQodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBhbWRncHVf cmluZyAqcmluZzsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCS8qIFNETUEgdHJhcCBldmVudCAqLwogCXIg PSBhbWRncHVfaXJxX2FkZF9pZChhZGV2LCAyMjQsICZhZGV2LT5zZG1hX3RyYXBfaXJxKTsKQEAg LTEwMjAsMTcgKzEwMjMsMjAgQEAgc3RhdGljIGludCBzZG1hX3YyXzRfc3dfaW5pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gcjsKIH0KIAotc3RhdGljIGludCBzZG1hX3Yy XzRfc3dfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgc2RtYV92 Ml80X3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJYW1kZ3B1X3JpbmdfZmluaSgm YWRldi0+c2RtYVswXS5yaW5nKTsKIAlhbWRncHVfcmluZ19maW5pKCZhZGV2LT5zZG1hWzFdLnJp bmcpOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc2RtYV92Ml80X2h3X2luaXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHNkbWFfdjJfNF9od19pbml0KHZv aWQgKmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXNkbWFfdjJfNF9pbml0X2dvbGRlbl9y ZWdpc3RlcnMoYWRldik7CiAKQEAgLTEwNDEsMjcgKzEwNDcsMzIgQEAgc3RhdGljIGludCBzZG1h X3YyXzRfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gcjsKIH0K IAotc3RhdGljIGludCBzZG1hX3YyXzRfaHdfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKK3N0YXRpYyBpbnQgc2RtYV92Ml80X2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogeworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwor CiAJc2RtYV92Ml80X2VuYWJsZShhZGV2LCBmYWxzZSk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3Rh dGljIGludCBzZG1hX3YyXzRfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0 YXRpYyBpbnQgc2RtYV92Ml80X3N1c3BlbmQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJcmV0 dXJuIHNkbWFfdjJfNF9od19maW5pKGFkZXYpOwogfQogCi1zdGF0aWMgaW50IHNkbWFfdjJfNF9y ZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHNkbWFfdjJfNF9y ZXN1bWUodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0 cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJcmV0dXJuIHNkbWFfdjJfNF9od19pbml0 KGFkZXYpOwogfQogCi1zdGF0aWMgYm9vbCBzZG1hX3YyXzRfaXNfaWRsZShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKK3N0YXRpYyBib29sIHNkbWFfdjJfNF9pc19pZGxlKHZvaWQgKmhhbmRs ZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqKWhhbmRsZTsKIAl1MzIgdG1wID0gUlJFRzMyKG1tU1JCTV9TVEFUVVMyKTsKIAogCWlmICh0 bXAgJiAoU1JCTV9TVEFUVVMyX19TRE1BX0JVU1lfTUFTSyB8CkBAIC0xMDcxLDEwICsxMDgyLDEx IEBAIHN0YXRpYyBib29sIHNkbWFfdjJfNF9pc19pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW50IHNkbWFfdjJfNF93YWl0X2Zvcl9p ZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCBzZG1hX3YyXzRfd2Fp dF9mb3JfaWRsZSh2b2lkICpoYW5kbGUpCiB7CiAJdW5zaWduZWQgaTsKIAl1MzIgdG1wOworCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxl OwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CiAJCXRtcCA9 IFJSRUczMihtbVNSQk1fU1RBVFVTMikgJiAoU1JCTV9TVEFUVVMyX19TRE1BX0JVU1lfTUFTSyB8 CkBAIC0xMDg3LDkgKzEwOTksMTAgQEAgc3RhdGljIGludCBzZG1hX3YyXzRfd2FpdF9mb3JfaWRs ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gLUVUSU1FRE9VVDsKIH0KIAot c3RhdGljIHZvaWQgc2RtYV92Ml80X3ByaW50X3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKK3N0YXRpYyB2b2lkIHNkbWFfdjJfNF9wcmludF9zdGF0dXModm9pZCAqaGFuZGxlKQog ewogCWludCBpLCBqOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRn cHVfZGV2aWNlICopaGFuZGxlOwogCiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiVkkgU0RNQSByZWdp c3RlcnNcbiIpOwogCWRldl9pbmZvKGFkZXYtPmRldiwgIiAgU1JCTV9TVEFUVVMyPTB4JTA4WFxu IiwKQEAgLTExMzMsOSArMTE0NiwxMCBAQCBzdGF0aWMgdm9pZCBzZG1hX3YyXzRfcHJpbnRfc3Rh dHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCX0KIH0KIAotc3RhdGljIGludCBzZG1h X3YyXzRfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQg c2RtYV92Ml80X3NvZnRfcmVzZXQodm9pZCAqaGFuZGxlKQogewogCXUzMiBzcmJtX3NvZnRfcmVz ZXQgPSAwOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2 aWNlICopaGFuZGxlOwogCXUzMiB0bXAgPSBSUkVHMzIobW1TUkJNX1NUQVRVUzIpOwogCiAJaWYg KHRtcCAmIFNSQk1fU1RBVFVTMl9fU0RNQV9CVVNZX01BU0spIHsKQEAgLTExNTQsNyArMTE2OCw3 IEBAIHN0YXRpYyBpbnQgc2RtYV92Ml80X3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCiAJfQogCiAJaWYgKHNyYm1fc29mdF9yZXNldCkgewotCQlzZG1hX3YyXzRfcHJpbnRf c3RhdHVzKGFkZXYpOworCQlzZG1hX3YyXzRfcHJpbnRfc3RhdHVzKCh2b2lkICopYWRldik7CiAK IAkJdG1wID0gUlJFRzMyKG1tU1JCTV9TT0ZUX1JFU0VUKTsKIAkJdG1wIHw9IHNyYm1fc29mdF9y ZXNldDsKQEAgLTExNzEsNyArMTE4NSw3IEBAIHN0YXRpYyBpbnQgc2RtYV92Ml80X3NvZnRfcmVz ZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCS8qIFdhaXQgYSBsaXR0bGUgZm9yIHRo aW5ncyB0byBzZXR0bGUgZG93biAqLwogCQl1ZGVsYXkoNTApOwogCi0JCXNkbWFfdjJfNF9wcmlu dF9zdGF0dXMoYWRldik7CisJCXNkbWFfdjJfNF9wcmludF9zdGF0dXMoKHZvaWQgKilhZGV2KTsK IAl9CiAKIAlyZXR1cm4gMDsKQEAgLTEyNzIsMjEgKzEyODYsMjAgQEAgc3RhdGljIGludCBzZG1h X3YyXzRfcHJvY2Vzc19pbGxlZ2FsX2luc3RfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNkbWFfdjJfNF9zZXRfY2xvY2tnYXRpbmdf c3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfY2xv Y2tnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IHNkbWFfdjJfNF9zZXRfY2xvY2tnYXRp bmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkgIGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRl IHN0YXRlKQogewogCS8qIFhYWCBoYW5kbGVkIHZpYSB0aGUgc21jIG9uIFZJICovCi0KIAlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIGludCBzZG1hX3YyXzRfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVudW0gYW1kZ3B1X3Bvd2VyZ2F0aW5n X3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBzZG1hX3YyXzRfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRl KHZvaWQgKmhhbmRsZSwKKwkJCQkJICBlbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkK IHsKIAlyZXR1cm4gMDsKIH0KIAotY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyBzZG1hX3Yy XzRfaXBfZnVuY3MgPSB7Citjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIHNkbWFfdjJfNF9pcF9m dW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9IHNkbWFfdjJfNF9lYXJseV9pbml0LAogCS5sYXRlX2lu aXQgPSBOVUxMLAogCS5zd19pbml0ID0gc2RtYV92Ml80X3N3X2luaXQsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuaCBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3NkbWFfdjJfNC5oCmluZGV4IDZjZGY4OTQuLjA3MzQ5ZjUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5oCkBAIC0yNCw2ICsyNCw2IEBACiAjaWZuZGVmIF9f U0RNQV9WMl80X0hfXwogI2RlZmluZSBfX1NETUFfVjJfNF9IX18KIAotZXh0ZXJuIGNvbnN0IHN0 cnVjdCBhbWRncHVfaXBfZnVuY3Mgc2RtYV92Ml80X2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0 cnVjdCBhbWRfaXBfZnVuY3Mgc2RtYV92Ml80X2lwX2Z1bmNzOwogCiAjZW5kaWYKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMKaW5kZXggODZhNTI3OC4uYmYzY2VmYyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMKQEAgLTEwMTgsOCArMTAxOCwxMCBAQCBz dGF0aWMgdm9pZCBzZG1hX3YzXzBfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZywKIAkJCSAgU0RNQV9QS1RfUE9MTF9SRUdNRU1fRFc1X0lOVEVSVkFMKDEwKSk7IC8q IHJldHJ5IGNvdW50LCBwb2xsIGludGVydmFsICovCiB9CiAKLXN0YXRpYyBpbnQgc2RtYV92M18w X2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHNkbWFf djNfMF9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXNkbWFfdjNfMF9zZXRf cmluZ19mdW5jcyhhZGV2KTsKIAlzZG1hX3YzXzBfc2V0X2J1ZmZlcl9mdW5jcyhhZGV2KTsKIAlz ZG1hX3YzXzBfc2V0X3ZtX3B0ZV9mdW5jcyhhZGV2KTsKQEAgLTEwMjgsMTAgKzEwMzAsMTEgQEAg c3RhdGljIGludCBzZG1hX3YzXzBfZWFybHlfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzZG1hX3YzXzBfc3dfaW5pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgc2RtYV92M18wX3N3X2luaXQodm9pZCAq aGFuZGxlKQogewogCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZzsKIAlpbnQgcjsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAog CS8qIFNETUEgdHJhcCBldmVudCAqLwogCXIgPSBhbWRncHVfaXJxX2FkZF9pZChhZGV2LCAyMjQs ICZhZGV2LT5zZG1hX3RyYXBfaXJxKTsKQEAgLTEwODUsMTcgKzEwODgsMjAgQEAgc3RhdGljIGlu dCBzZG1hX3YzXzBfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4g cjsKIH0KIAotc3RhdGljIGludCBzZG1hX3YzXzBfc3dfZmluaShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBpbnQgc2RtYV92M18wX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogewor CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFu ZGxlOworCiAJYW1kZ3B1X3JpbmdfZmluaSgmYWRldi0+c2RtYVswXS5yaW5nKTsKIAlhbWRncHVf cmluZ19maW5pKCZhZGV2LT5zZG1hWzFdLnJpbmcpOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBpbnQgc2RtYV92M18wX2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0 aWMgaW50IHNkbWFfdjNfMF9od19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsK IAogCXNkbWFfdjNfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoYWRldik7CiAKQEAgLTExMDYsMjcg KzExMTIsMzIgQEAgc3RhdGljIGludCBzZG1hX3YzXzBfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKIAlyZXR1cm4gcjsKIH0KIAotc3RhdGljIGludCBzZG1hX3YzXzBfaHdfZmlu aShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgc2RtYV92M18wX2h3X2Zp bmkodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVj dCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJc2RtYV92M18wX2VuYWJsZShhZGV2LCBmYWxz ZSk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzZG1hX3YzXzBfc3VzcGVuZChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgc2RtYV92M18wX3N1c3BlbmQodm9p ZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRn cHVfZGV2aWNlICopaGFuZGxlOwogCiAJcmV0dXJuIHNkbWFfdjNfMF9od19maW5pKGFkZXYpOwog fQogCi1zdGF0aWMgaW50IHNkbWFfdjNfMF9yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCitzdGF0aWMgaW50IHNkbWFfdjNfMF9yZXN1bWUodm9pZCAqaGFuZGxlKQogeworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwog CiAJcmV0dXJuIHNkbWFfdjNfMF9od19pbml0KGFkZXYpOwogfQogCi1zdGF0aWMgYm9vbCBzZG1h X3YzXzBfaXNfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBib29sIHNk bWFfdjNfMF9pc19pZGxlKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAl1MzIgdG1wID0gUlJFRzMy KG1tU1JCTV9TVEFUVVMyKTsKIAogCWlmICh0bXAgJiAoU1JCTV9TVEFUVVMyX19TRE1BX0JVU1lf TUFTSyB8CkBAIC0xMTM2LDEwICsxMTQ3LDExIEBAIHN0YXRpYyBib29sIHNkbWFfdjNfMF9pc19p ZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0 aWMgaW50IHNkbWFfdjNfMF93YWl0X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQorc3RhdGljIGludCBzZG1hX3YzXzBfd2FpdF9mb3JfaWRsZSh2b2lkICpoYW5kbGUpCiB7CiAJ dW5zaWduZWQgaTsKIAl1MzIgdG1wOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0 cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVz ZWNfdGltZW91dDsgaSsrKSB7CiAJCXRtcCA9IFJSRUczMihtbVNSQk1fU1RBVFVTMikgJiAoU1JC TV9TVEFUVVMyX19TRE1BX0JVU1lfTUFTSyB8CkBAIC0xMTUyLDkgKzExNjQsMTAgQEAgc3RhdGlj IGludCBzZG1hX3YzXzBfd2FpdF9mb3JfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK IAlyZXR1cm4gLUVUSU1FRE9VVDsKIH0KIAotc3RhdGljIHZvaWQgc2RtYV92M18wX3ByaW50X3N0 YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIHNkbWFfdjNfMF9w cmludF9zdGF0dXModm9pZCAqaGFuZGxlKQogewogCWludCBpLCBqOworCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJZGV2X2lu Zm8oYWRldi0+ZGV2LCAiVkkgU0RNQSByZWdpc3RlcnNcbiIpOwogCWRldl9pbmZvKGFkZXYtPmRl diwgIiAgU1JCTV9TVEFUVVMyPTB4JTA4WFxuIiwKQEAgLTEyMDAsOSArMTIxMywxMCBAQCBzdGF0 aWMgdm9pZCBzZG1hX3YzXzBfcHJpbnRfc3RhdHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCX0KIH0KIAotc3RhdGljIGludCBzZG1hX3YzXzBfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgc2RtYV92M18wX3NvZnRfcmVzZXQodm9pZCAqaGFu ZGxlKQogewogCXUzMiBzcmJtX3NvZnRfcmVzZXQgPSAwOworCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCXUzMiB0bXAgPSBSUkVH MzIobW1TUkJNX1NUQVRVUzIpOwogCiAJaWYgKHRtcCAmIFNSQk1fU1RBVFVTMl9fU0RNQV9CVVNZ X01BU0spIHsKQEAgLTEyMjEsNyArMTIzNSw3IEBAIHN0YXRpYyBpbnQgc2RtYV92M18wX3NvZnRf cmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJfQogCiAJaWYgKHNyYm1fc29mdF9y ZXNldCkgewotCQlzZG1hX3YzXzBfcHJpbnRfc3RhdHVzKGFkZXYpOworCQlzZG1hX3YzXzBfcHJp bnRfc3RhdHVzKCh2b2lkICopYWRldik7CiAKIAkJdG1wID0gUlJFRzMyKG1tU1JCTV9TT0ZUX1JF U0VUKTsKIAkJdG1wIHw9IHNyYm1fc29mdF9yZXNldDsKQEAgLTEyMzgsNyArMTI1Miw3IEBAIHN0 YXRpYyBpbnQgc2RtYV92M18wX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CiAJCS8qIFdhaXQgYSBsaXR0bGUgZm9yIHRoaW5ncyB0byBzZXR0bGUgZG93biAqLwogCQl1ZGVs YXkoNTApOwogCi0JCXNkbWFfdjNfMF9wcmludF9zdGF0dXMoYWRldik7CisJCXNkbWFfdjNfMF9w cmludF9zdGF0dXMoKHZvaWQgKilhZGV2KTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTEzMzksMjEg KzEzNTMsMTkgQEAgc3RhdGljIGludCBzZG1hX3YzXzBfcHJvY2Vzc19pbGxlZ2FsX2luc3RfaXJx KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IHNkbWFfdjNfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMg aW50IHNkbWFfdjNfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkg IGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQogewotCS8qIFhYWCBoYW5kbGVkIHZp YSB0aGUgc21jIG9uIFZJICovCi0KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzZG1hX3Yz XzBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJ CQkgIGVudW0gYW1kZ3B1X3Bvd2VyZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCBzZG1h X3YzXzBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJCQkJICBlbnVtIGFt ZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKIHsKIAlyZXR1cm4gMDsKIH0KIAotY29uc3Qgc3Ry dWN0IGFtZGdwdV9pcF9mdW5jcyBzZG1hX3YzXzBfaXBfZnVuY3MgPSB7Citjb25zdCBzdHJ1Y3Qg YW1kX2lwX2Z1bmNzIHNkbWFfdjNfMF9pcF9mdW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9IHNkbWFf djNfMF9lYXJseV9pbml0LAogCS5sYXRlX2luaXQgPSBOVUxMLAogCS5zd19pbml0ID0gc2RtYV92 M18wX3N3X2luaXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1h X3YzXzAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5oCmluZGV4IDg1 YmYyYWMuLjBjYjk2OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjNfMC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5oCkBA IC0yNCw2ICsyNCw2IEBACiAjaWZuZGVmIF9fU0RNQV9WM18wX0hfXwogI2RlZmluZSBfX1NETUFf VjNfMF9IX18KIAotZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3Mgc2RtYV92M18w X2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3Mgc2RtYV92M18wX2lw X2Z1bmNzOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3RvbmdhX2RwbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdG9uZ2FfZHBtLmMKaW5k ZXggY2Y5N2Q0OS4uMmQ1YjFiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvdG9uZ2FfZHBtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdG9uZ2FfZHBt LmMKQEAgLTMwLDggKzMwLDEwIEBAIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3RvbmdhX3NtYy5i aW4iKTsKIAogc3RhdGljIHZvaWQgdG9uZ2FfZHBtX3NldF9mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldik7CiAKLXN0YXRpYyBpbnQgdG9uZ2FfZHBtX2Vhcmx5X2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHRvbmdhX2RwbV9lYXJseV9pbml0KHZvaWQg KmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqKWhhbmRsZTsKKwogCXRvbmdhX2RwbV9zZXRfZnVuY3MoYWRldik7CiAKIAlyZXR1 cm4gMDsKQEAgLTQxLDcgKzQzLDYgQEAgc3RhdGljIGludCB0b25nYV9kcG1faW5pdF9taWNyb2Nv ZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJY2hhciBmd19uYW1lWzMwXSA9ICJh bWRncHUvdG9uZ2Ffc21jLmJpbiI7CiAJaW50IGVycjsKLQogCWVyciA9IHJlcXVlc3RfZmlybXdh cmUoJmFkZXYtPnBtLmZ3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwogCWlmIChlcnIpCiAJCWdvdG8g b3V0OwpAQCAtNTYsOSArNTcsMTAgQEAgb3V0OgogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBp bnQgdG9uZ2FfZHBtX3N3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMg aW50IHRvbmdhX2RwbV9zd19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcmV0OworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwog CiAJcmV0ID0gdG9uZ2FfZHBtX2luaXRfbWljcm9jb2RlKGFkZXYpOwogCWlmIChyZXQpCkBAIC02 NywxNCArNjksMTUgQEAgc3RhdGljIGludCB0b25nYV9kcG1fc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB0b25nYV9kcG1fc3df ZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdG9uZ2FfZHBtX3N3 X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHRvbmdh X2RwbV9od19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB0b25n YV9kcG1faHdfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHJldDsKKwlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCW11dGV4 X2xvY2soJmFkZXYtPnBtLm11dGV4KTsKIApAQCAtOTksNDEgKzEwMiw0NyBAQCBmYWlsOgogCXJl dHVybiAtRUlOVkFMOwogfQogCi1zdGF0aWMgaW50IHRvbmdhX2RwbV9od19maW5pKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB0b25nYV9kcG1faHdfZmluaSh2b2lkICpo YW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKiloYW5kbGU7CisKIAltdXRleF9sb2NrKCZhZGV2LT5wbS5tdXRleCk7CiAJdG9uZ2Ff c211X2ZpbmkoYWRldik7CiAJbXV0ZXhfdW5sb2NrKCZhZGV2LT5wbS5tdXRleCk7CiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgdG9uZ2FfZHBtX3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCitzdGF0aWMgaW50IHRvbmdhX2RwbV9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKIHsK KwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhh bmRsZTsKKwogCXRvbmdhX2RwbV9od19maW5pKGFkZXYpOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBpbnQgdG9uZ2FfZHBtX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0 YXRpYyBpbnQgdG9uZ2FfZHBtX3Jlc3VtZSh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAl0b25n YV9kcG1faHdfaW5pdChhZGV2KTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHRvbmdh X2RwbV9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0J CQllbnVtIGFtZGdwdV9jbG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgdG9uZ2Ff ZHBtX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQllbnVtIGFtZF9jbG9j a2dhdGluZ19zdGF0ZSBzdGF0ZSkKIHsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB0b25n YV9kcG1fc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAot CQkJZW51bSBhbWRncHVfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IHRvbmdh X2RwbV9zZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJZW51bSBhbWRfcG93 ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLWNvbnN0IHN0cnVjdCBh bWRncHVfaXBfZnVuY3MgdG9uZ2FfZHBtX2lwX2Z1bmNzID0geworY29uc3Qgc3RydWN0IGFtZF9p cF9mdW5jcyB0b25nYV9kcG1faXBfZnVuY3MgPSB7CiAJLmVhcmx5X2luaXQgPSB0b25nYV9kcG1f ZWFybHlfaW5pdCwKIAkubGF0ZV9pbml0ID0gTlVMTCwKIAkuc3dfaW5pdCA9IHRvbmdhX2RwbV9z d19pbml0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdG9uZ2FfaWgu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3RvbmdhX2loLmMKaW5kZXggY2ZmMWI4Yi4u NzQzYzM3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdG9uZ2FfaWgu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS90b25nYV9paC5jCkBAIC0yNzAsMTUg KzI3MCwxOCBAQCBzdGF0aWMgdm9pZCB0b25nYV9paF9zZXRfcnB0cihzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKIAl9CiB9CiAKLXN0YXRpYyBpbnQgdG9uZ2FfaWhfZWFybHlfaW5pdChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdG9uZ2FfaWhfZWFybHlfaW5pdCh2 b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAl0b25nYV9paF9zZXRfaW50ZXJydXB0X2Z1bmNzKGFk ZXYpOwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHRvbmdhX2loX3N3X2luaXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHRvbmdhX2loX3N3X2luaXQodm9pZCAq aGFuZGxlKQogewogCWludCByOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVj dCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJciA9IGFtZGdwdV9paF9yaW5nX2luaXQoYWRl diwgNCAqIDEwMjQsIHRydWUpOwogCWlmIChyKQpAQCAtMjkyLDE3ICsyOTUsMjAgQEAgc3RhdGlj IGludCB0b25nYV9paF9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVy biByOwogfQogCi1zdGF0aWMgaW50IHRvbmdhX2loX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCitzdGF0aWMgaW50IHRvbmdhX2loX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogewor CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFu ZGxlOworCiAJYW1kZ3B1X2lycV9maW5pKGFkZXYpOwogCWFtZGdwdV9paF9yaW5nX2ZpbmkoYWRl dik7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB0b25nYV9paF9od19pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB0b25nYV9paF9od19pbml0KHZvaWQg KmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXIgPSB0b25nYV9paF9pcnFfaW5pdChhZGV2 KTsKIAlpZiAocikKQEAgLTMxMSwyNSArMzE3LDMyIEBAIHN0YXRpYyBpbnQgdG9uZ2FfaWhfaHdf aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCB0b25nYV9paF9od19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGlj IGludCB0b25nYV9paF9od19maW5pKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXRvbmdhX2lo X2lycV9kaXNhYmxlKGFkZXYpOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdG9uZ2Ff aWhfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdG9uZ2Ff aWhfc3VzcGVuZCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlyZXR1cm4gdG9uZ2FfaWhfaHdf ZmluaShhZGV2KTsKIH0KIAotc3RhdGljIGludCB0b25nYV9paF9yZXN1bWUoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHRvbmdhX2loX3Jlc3VtZSh2b2lkICpoYW5kbGUp CiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KiloYW5kbGU7CisKIAlyZXR1cm4gdG9uZ2FfaWhfaHdfaW5pdChhZGV2KTsKIH0KIAotc3RhdGlj IGJvb2wgdG9uZ2FfaWhfaXNfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRp YyBib29sIHRvbmdhX2loX2lzX2lkbGUodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCXUzMiB0bXAg PSBSUkVHMzIobW1TUkJNX1NUQVRVUyk7CiAKIAlpZiAoUkVHX0dFVF9GSUVMRCh0bXAsIFNSQk1f U1RBVFVTLCBJSF9CVVNZKSkKQEAgLTMzOCwxMCArMzUxLDExIEBAIHN0YXRpYyBib29sIHRvbmdh X2loX2lzX2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHRydWU7CiB9 CiAKLXN0YXRpYyBpbnQgdG9uZ2FfaWhfd2FpdF9mb3JfaWRsZShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBpbnQgdG9uZ2FfaWhfd2FpdF9mb3JfaWRsZSh2b2lkICpoYW5kbGUp CiB7CiAJdW5zaWduZWQgaTsKIAl1MzIgdG1wOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJZm9yIChpID0gMDsgaSA8IGFk ZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CiAJCS8qIHJlYWQgTUNfU1RBVFVTICovCkBAIC0zNTMs OCArMzY3LDEwIEBAIHN0YXRpYyBpbnQgdG9uZ2FfaWhfd2FpdF9mb3JfaWRsZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gLUVUSU1FRE9VVDsKIH0KIAotc3RhdGljIHZvaWQg dG9uZ2FfaWhfcHJpbnRfc3RhdHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGlj IHZvaWQgdG9uZ2FfaWhfcHJpbnRfc3RhdHVzKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCWRl dl9pbmZvKGFkZXYtPmRldiwgIlRPTkdBIElIIHJlZ2lzdGVyc1xuIik7CiAJZGV2X2luZm8oYWRl di0+ZGV2LCAiICBTUkJNX1NUQVRVUz0weCUwOFhcbiIsCiAJCVJSRUczMihtbVNSQk1fU1RBVFVT KSk7CkBAIC0zODAsOSArMzk2LDEwIEBAIHN0YXRpYyB2b2lkIHRvbmdhX2loX3ByaW50X3N0YXR1 cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJIFJSRUczMihtbUlIX1JCX1dQVFIpKTsK IH0KIAotc3RhdGljIGludCB0b25nYV9paF9zb2Z0X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQorc3RhdGljIGludCB0b25nYV9paF9zb2Z0X3Jlc2V0KHZvaWQgKmhhbmRsZSkKIHsK IAl1MzIgc3JibV9zb2Z0X3Jlc2V0ID0gMDsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAl1MzIgdG1wID0gUlJFRzMyKG1tU1JC TV9TVEFUVVMpOwogCiAJaWYgKHRtcCAmIFNSQk1fU1RBVFVTX19JSF9CVVNZX01BU0spCkBAIC00 MTMsMjEgKzQzMCwxOSBAQCBzdGF0aWMgaW50IHRvbmdhX2loX3NvZnRfcmVzZXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdG9uZ2FfaWhf c2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkg IGVudW0gYW1kZ3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCB0b25nYV9p aF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkgIGVudW0gYW1kX2Ns b2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQogewotCS8vIFRPRE8KIAlyZXR1cm4gMDsKIH0KIAotc3Rh dGljIGludCB0b25nYV9paF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCitz dGF0aWMgaW50IHRvbmdhX2loX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJ CQkJCSAgZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCiB7Ci0JLy8gVE9ETwogCXJl dHVybiAwOwogfQogCi1jb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIHRvbmdhX2loX2lwX2Z1 bmNzID0geworY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyB0b25nYV9paF9pcF9mdW5jcyA9IHsK IAkuZWFybHlfaW5pdCA9IHRvbmdhX2loX2Vhcmx5X2luaXQsCiAJLmxhdGVfaW5pdCA9IE5VTEws CiAJLnN3X2luaXQgPSB0b25nYV9paF9zd19pbml0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvdG9uZ2FfaWguaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Rv bmdhX2loLmgKaW5kZXggN2M5YmFlOC4uNzM5MmQ3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvdG9uZ2FfaWguaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS90b25nYV9paC5oCkBAIC0yNCw2ICsyNCw2IEBACiAjaWZuZGVmIF9fVE9OR0FfSUhfSF9fCiAj ZGVmaW5lIF9fVE9OR0FfSUhfSF9fCiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1 bmNzIHRvbmdhX2loX2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3Mg dG9uZ2FfaWhfaXBfZnVuY3M7CiAKICNlbmRpZiAvKiBfX0NaX0lIX0hfXyAqLwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y0XzIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMKaW5kZXggNmU0Y2I2MC4uMjkyOTMyYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y0XzIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS91dmRfdjRfMi5jCkBAIC04MywxNyArODMsMjAgQEAgc3RhdGljIHZv aWQgdXZkX3Y0XzJfcmluZ19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAJV1JF RzMyKG1tVVZEX1JCQ19SQl9XUFRSLCByaW5nLT53cHRyKTsKIH0KIAotc3RhdGljIGludCB1dmRf djRfMl9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB1 dmRfdjRfMl9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXV2ZF92NF8yX3Nl dF9yaW5nX2Z1bmNzKGFkZXYpOwogCXV2ZF92NF8yX3NldF9pcnFfZnVuY3MoYWRldik7CiAKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB1dmRfdjRfMl9zd19pbml0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQorc3RhdGljIGludCB1dmRfdjRfMl9zd19pbml0KHZvaWQgKmhhbmRsZSkK IHsKIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAJaW50IHI7CiAKIAkvKiBVVkQg VFJBUCAqLwpAQCAtMTE3LDkgKzEyMCwxMCBAQCBzdGF0aWMgaW50IHV2ZF92NF8yX3N3X2luaXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9CiAKLXN0YXRpYyBpbnQg dXZkX3Y0XzJfc3dfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQg dXZkX3Y0XzJfc3dfZmluaSh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7CisJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlyID0g YW1kZ3B1X3V2ZF9zdXNwZW5kKGFkZXYpOwogCWlmIChyKQpAQCAtMTM5LDggKzE0Myw5IEBAIHN0 YXRpYyBpbnQgdXZkX3Y0XzJfc3dfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKICAq CiAgKiBJbml0aWFsaXplIHRoZSBoYXJkd2FyZSwgYm9vdCB1cCB0aGUgVkNQVSBhbmQgZG8gc29t ZSB0ZXN0aW5nCiAgKi8KLXN0YXRpYyBpbnQgdXZkX3Y0XzJfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdXZkX3Y0XzJfaHdfaW5pdCh2b2lkICpoYW5kbGUp CiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KiloYW5kbGU7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPnV2ZC5yaW5nOwog CXVpbnQzMl90IHRtcDsKIAlpbnQgcjsKQEAgLTIwMyw4ICsyMDgsOSBAQCBkb25lOgogICoKICAq IFN0b3AgdGhlIFVWRCBibG9jaywgbWFyayByaW5nIGFzIG5vdCByZWFkeSBhbnkgbW9yZQogICov Ci1zdGF0aWMgaW50IHV2ZF92NF8yX2h3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CitzdGF0aWMgaW50IHV2ZF92NF8yX2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCXN0 cnVjdCBhbWRncHVfcmluZyAqcmluZyA9ICZhZGV2LT51dmQucmluZzsKIAogCXV2ZF92NF8yX3N0 b3AoYWRldik7CkBAIC0yMTMsOSArMjE5LDEwIEBAIHN0YXRpYyBpbnQgdXZkX3Y0XzJfaHdfZmlu aShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dCB1dmRfdjRfMl9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGlu dCB1dmRfdjRfMl9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXIg PSB1dmRfdjRfMl9od19maW5pKGFkZXYpOwogCWlmIChyKQpAQCAtMjI4LDkgKzIzNSwxMCBAQCBz dGF0aWMgaW50IHV2ZF92NF8yX3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJ cmV0dXJuIHI7CiB9CiAKLXN0YXRpYyBpbnQgdXZkX3Y0XzJfcmVzdW1lKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQorc3RhdGljIGludCB1dmRfdjRfMl9yZXN1bWUodm9pZCAqaGFuZGxlKQog ewogCWludCByOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVf ZGV2aWNlICopaGFuZGxlOwogCiAJciA9IGFtZGdwdV91dmRfcmVzdW1lKGFkZXYpOwogCWlmIChy KQpAQCAtNjYyLDE0ICs2NzAsMTcgQEAgc3RhdGljIHZvaWQgdXZkX3Y0XzJfaW5pdF9jZyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9CiB9CiAKLXN0YXRpYyBib29sIHV2ZF92NF8yX2lz X2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgYm9vbCB1dmRfdjRfMl9p c19pZGxlKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXJldHVybiAhKFJSRUczMihtbVNSQk1f U1RBVFVTKSAmIFNSQk1fU1RBVFVTX19VVkRfQlVTWV9NQVNLKTsKIH0KIAotc3RhdGljIGludCB1 dmRfdjRfMl93YWl0X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGlj IGludCB1dmRfdjRfMl93YWl0X2Zvcl9pZGxlKHZvaWQgKmhhbmRsZSkKIHsKIAl1bnNpZ25lZCBp OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICop aGFuZGxlOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CiAJ CWlmICghKFJSRUczMihtbVNSQk1fU1RBVFVTKSAmIFNSQk1fU1RBVFVTX19VVkRfQlVTWV9NQVNL KSkKQEAgLTY3OCw4ICs2ODksMTAgQEAgc3RhdGljIGludCB1dmRfdjRfMl93YWl0X2Zvcl9pZGxl KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAtRVRJTUVET1VUOwogfQogCi1z dGF0aWMgaW50IHV2ZF92NF8yX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CitzdGF0aWMgaW50IHV2ZF92NF8yX3NvZnRfcmVzZXQodm9pZCAqaGFuZGxlKQogeworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwor CiAJdXZkX3Y0XzJfc3RvcChhZGV2KTsKIAogCVdSRUczMl9QKG1tU1JCTV9TT0ZUX1JFU0VULCBT UkJNX1NPRlRfUkVTRVRfX1NPRlRfUkVTRVRfVVZEX01BU0ssCkBAIC02ODksOCArNzAyLDkgQEAg c3RhdGljIGludCB1dmRfdjRfMl9zb2Z0X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCXJldHVybiB1dmRfdjRfMl9zdGFydChhZGV2KTsKIH0KIAotc3RhdGljIHZvaWQgdXZkX3Y0 XzJfcHJpbnRfc3RhdHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIHZvaWQg dXZkX3Y0XzJfcHJpbnRfc3RhdHVzKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAlkZXZfaW5mbyhh ZGV2LT5kZXYsICJVVkQgNC4yIHJlZ2lzdGVyc1xuIik7CiAJZGV2X2luZm8oYWRldi0+ZGV2LCAi ICBVVkRfU0VNQV9BRERSX0xPVz0weCUwOFhcbiIsCiAJCSBSUkVHMzIobW1VVkRfU0VNQV9BRERS X0xPVykpOwpAQCAtODEwLDEyICs4MjQsMTMgQEAgc3RhdGljIGludCB1dmRfdjRfMl9wcm9jZXNz X2ludGVycnVwdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCB1dmRfdjRfMl9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUp CitzdGF0aWMgaW50IHV2ZF92NF8yX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUs CisJCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJYm9vbCBnYXRl ID0gZmFsc2U7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKiloYW5kbGU7CiAKLQlpZiAoc3RhdGUgPT0gQU1ER1BVX0NHX1NUQVRFX0dBVEUpCisJ aWYgKHN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFKQogCQlnYXRlID0gdHJ1ZTsKIAogCXV2ZF92 NF8yX2VuYWJsZV9tZ2NnKGFkZXYsIGdhdGUpOwpAQCAtODIzLDggKzgzOCw4IEBAIHN0YXRpYyBp bnQgdXZkX3Y0XzJfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHV2ZF92NF8yX3NldF9wb3dlcmdhdGlu Z19zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9w b3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgdXZkX3Y0XzJfc2V0X3Bvd2VyZ2F0 aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJCQkJICBlbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0 ZSBzdGF0ZSkKIHsKIAkvKiBUaGlzIGRvZXNuJ3QgYWN0dWFsbHkgcG93ZXJnYXRlIHRoZSBVVkQg YmxvY2suCiAJICogVGhhdCdzIGRvbmUgaW4gdGhlIGRwbSBjb2RlIHZpYSB0aGUgU01DLiAgVGhp cwpAQCAtODMzLDcgKzg0OCw5IEBAIHN0YXRpYyBpbnQgdXZkX3Y0XzJfc2V0X3Bvd2VyZ2F0aW5n X3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCSAqIHJldmlzaXQgdGhpcyB3aGVu IHRoZXJlIGlzIGEgY2xlYW5lciBsaW5lIGJldHdlZW4KIAkgKiB0aGUgc21jIGFuZCB0aGUgaHcg YmxvY2tzCiAJICovCi0JaWYgKHN0YXRlID09IEFNREdQVV9QR19TVEFURV9HQVRFKSB7CisJIHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxl OworCisJaWYgKHN0YXRlID09IEFNRF9QR19TVEFURV9HQVRFKSB7CiAJCXV2ZF92NF8yX3N0b3Ao YWRldik7CiAJCXJldHVybiAwOwogCX0gZWxzZSB7CkBAIC04NDEsNyArODU4LDcgQEAgc3RhdGlj IGludCB1dmRfdjRfMl9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCiAJfQogfQogCi1jb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIHV2ZF92NF8yX2lw X2Z1bmNzID0geworY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyB1dmRfdjRfMl9pcF9mdW5jcyA9 IHsKIAkuZWFybHlfaW5pdCA9IHV2ZF92NF8yX2Vhcmx5X2luaXQsCiAJLmxhdGVfaW5pdCA9IE5V TEwsCiAJLnN3X2luaXQgPSB1dmRfdjRfMl9zd19pbml0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y0XzIuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3V2ZF92NF8yLmgKaW5kZXggMzIzYTZkOC4uMGE2MTVkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y0XzIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS91dmRfdjRfMi5oCkBAIC0yNCw2ICsyNCw2IEBACiAjaWZuZGVmIF9fVVZEX1Y0XzJfSF9f CiAjZGVmaW5lIF9fVVZEX1Y0XzJfSF9fCiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lw X2Z1bmNzIHV2ZF92NF8yX2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVu Y3MgdXZkX3Y0XzJfaXBfZnVuY3M7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvdXZkX3Y1XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2 ZF92NV8wLmMKaW5kZXggZjNiMzAyNi4uMDA0YzU2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvdXZkX3Y1XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS91dmRfdjVfMC5jCkBAIC03OSwxNyArNzksMjAgQEAgc3RhdGljIHZvaWQgdXZkX3Y1XzBfcmlu Z19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAJV1JFRzMyKG1tVVZEX1JCQ19S Ql9XUFRSLCByaW5nLT53cHRyKTsKIH0KIAotc3RhdGljIGludCB1dmRfdjVfMF9lYXJseV9pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB1dmRfdjVfMF9lYXJseV9p bml0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXV2ZF92NV8wX3NldF9yaW5nX2Z1bmNzKGFk ZXYpOwogCXV2ZF92NV8wX3NldF9pcnFfZnVuY3MoYWRldik7CiAKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCB1dmRfdjVfMF9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQor c3RhdGljIGludCB1dmRfdjVfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmc7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAJaW50IHI7CiAKIAkvKiBVVkQgVFJBUCAqLwpAQCAtMTEz LDkgKzExNiwxMCBAQCBzdGF0aWMgaW50IHV2ZF92NV8wX3N3X2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9CiAKLXN0YXRpYyBpbnQgdXZkX3Y1XzBfc3dfZmlu aShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdXZkX3Y1XzBfc3dfZmlu aSh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlyID0gYW1kZ3B1X3V2ZF9zdXNw ZW5kKGFkZXYpOwogCWlmIChyKQpAQCAtMTM1LDggKzEzOSw5IEBAIHN0YXRpYyBpbnQgdXZkX3Y1 XzBfc3dfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKICAqCiAgKiBJbml0aWFsaXpl IHRoZSBoYXJkd2FyZSwgYm9vdCB1cCB0aGUgVkNQVSBhbmQgZG8gc29tZSB0ZXN0aW5nCiAgKi8K LXN0YXRpYyBpbnQgdXZkX3Y1XzBfaHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK K3N0YXRpYyBpbnQgdXZkX3Y1XzBfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAJc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPnV2ZC5yaW5nOwogCXVpbnQzMl90IHRtcDsK IAlpbnQgcjsKQEAgLTE5OSw4ICsyMDQsOSBAQCBkb25lOgogICoKICAqIFN0b3AgdGhlIFVWRCBi bG9jaywgbWFyayByaW5nIGFzIG5vdCByZWFkeSBhbnkgbW9yZQogICovCi1zdGF0aWMgaW50IHV2 ZF92NV8wX2h3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHV2 ZF92NV8wX2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCXN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZyA9ICZhZGV2LT51dmQucmluZzsKIAogCXV2ZF92NV8wX3N0b3AoYWRldik7CkBAIC0y MDksOSArMjE1LDEwIEBAIHN0YXRpYyBpbnQgdXZkX3Y1XzBfaHdfZmluaShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB1dmRfdjVfMF9zdXNw ZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB1dmRfdjVfMF9zdXNw ZW5kKHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXIgPSB1dmRfdjVfMF9od19m aW5pKGFkZXYpOwogCWlmIChyKQpAQCAtMjI0LDkgKzIzMSwxMCBAQCBzdGF0aWMgaW50IHV2ZF92 NV8wX3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9CiAK LXN0YXRpYyBpbnQgdXZkX3Y1XzBfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQor c3RhdGljIGludCB1dmRfdjVfMF9yZXN1bWUodm9pZCAqaGFuZGxlKQogewogCWludCByOworCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxl OwogCiAJciA9IGFtZGdwdV91dmRfcmVzdW1lKGFkZXYpOwogCWlmIChyKQpAQCAtNjA1LDE0ICs2 MTMsMTcgQEAgZXJyb3I6CiAJcmV0dXJuIHI7CiB9CiAKLXN0YXRpYyBib29sIHV2ZF92NV8wX2lz X2lkbGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgYm9vbCB1dmRfdjVfMF9p c19pZGxlKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXJldHVybiAhKFJSRUczMihtbVNSQk1f U1RBVFVTKSAmIFNSQk1fU1RBVFVTX19VVkRfQlVTWV9NQVNLKTsKIH0KIAotc3RhdGljIGludCB1 dmRfdjVfMF93YWl0X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGlj IGludCB1dmRfdjVfMF93YWl0X2Zvcl9pZGxlKHZvaWQgKmhhbmRsZSkKIHsKIAl1bnNpZ25lZCBp OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICop aGFuZGxlOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CiAJ CWlmICghKFJSRUczMihtbVNSQk1fU1RBVFVTKSAmIFNSQk1fU1RBVFVTX19VVkRfQlVTWV9NQVNL KSkKQEAgLTYyMSw4ICs2MzIsMTAgQEAgc3RhdGljIGludCB1dmRfdjVfMF93YWl0X2Zvcl9pZGxl KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiAtRVRJTUVET1VUOwogfQogCi1z dGF0aWMgaW50IHV2ZF92NV8wX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CitzdGF0aWMgaW50IHV2ZF92NV8wX3NvZnRfcmVzZXQodm9pZCAqaGFuZGxlKQogeworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwor CiAJdXZkX3Y1XzBfc3RvcChhZGV2KTsKIAogCVdSRUczMl9QKG1tU1JCTV9TT0ZUX1JFU0VULCBT UkJNX1NPRlRfUkVTRVRfX1NPRlRfUkVTRVRfVVZEX01BU0ssCkBAIC02MzIsOCArNjQ1LDkgQEAg c3RhdGljIGludCB1dmRfdjVfMF9zb2Z0X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCXJldHVybiB1dmRfdjVfMF9zdGFydChhZGV2KTsKIH0KIAotc3RhdGljIHZvaWQgdXZkX3Y1 XzBfcHJpbnRfc3RhdHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIHZvaWQg dXZkX3Y1XzBfcHJpbnRfc3RhdHVzKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAlkZXZfaW5mbyhh ZGV2LT5kZXYsICJVVkQgNS4wIHJlZ2lzdGVyc1xuIik7CiAJZGV2X2luZm8oYWRldi0+ZGV2LCAi ICBVVkRfU0VNQV9BRERSX0xPVz0weCUwOFhcbiIsCiAJCSBSUkVHMzIobW1VVkRfU0VNQV9BRERS X0xPVykpOwpAQCAtNzU3LDE2ICs3NzEsMTQgQEAgc3RhdGljIGludCB1dmRfdjVfMF9wcm9jZXNz X2ludGVycnVwdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCB1dmRfdjVfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUp CitzdGF0aWMgaW50IHV2ZF92NV8wX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUs CisJCQkJCSAgZW51bSBhbWRfY2xvY2tnYXRpbmdfc3RhdGUgc3RhdGUpCiB7Ci0JLy9UT0RPCi0K IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB1dmRfdjVfMF9zZXRfcG93ZXJnYXRpbmdfc3Rh dGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJCSAgZW51bSBhbWRncHVfcG93ZXJn YXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IHV2ZF92NV8wX3NldF9wb3dlcmdhdGluZ19z dGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRfcG93ZXJnYXRpbmdfc3RhdGUgc3Rh dGUpCiB7CiAJLyogVGhpcyBkb2Vzbid0IGFjdHVhbGx5IHBvd2VyZ2F0ZSB0aGUgVVZEIGJsb2Nr LgogCSAqIFRoYXQncyBkb25lIGluIHRoZSBkcG0gY29kZSB2aWEgdGhlIFNNQy4gIFRoaXMKQEAg LTc3NSw3ICs3ODcsOSBAQCBzdGF0aWMgaW50IHV2ZF92NV8wX3NldF9wb3dlcmdhdGluZ19zdGF0 ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkgKiByZXZpc2l0IHRoaXMgd2hlbiB0aGVy ZSBpcyBhIGNsZWFuZXIgbGluZSBiZXR3ZWVuCiAJICogdGhlIHNtYyBhbmQgdGhlIGh3IGJsb2Nr cwogCSAqLwotCWlmIChzdGF0ZSA9PSBBTURHUFVfUEdfU1RBVEVfR0FURSkgeworCXN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCisJ aWYgKHN0YXRlID09IEFNRF9QR19TVEFURV9HQVRFKSB7CiAJCXV2ZF92NV8wX3N0b3AoYWRldik7 CiAJCXJldHVybiAwOwogCX0gZWxzZSB7CkBAIC03ODMsNyArNzk3LDcgQEAgc3RhdGljIGludCB1 dmRfdjVfMF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs CiAJfQogfQogCi1jb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIHV2ZF92NV8wX2lwX2Z1bmNz ID0geworY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyB1dmRfdjVfMF9pcF9mdW5jcyA9IHsKIAku ZWFybHlfaW5pdCA9IHV2ZF92NV8wX2Vhcmx5X2luaXQsCiAJLmxhdGVfaW5pdCA9IE5VTEwsCiAJ LnN3X2luaXQgPSB1dmRfdjVfMF9zd19pbml0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvdXZkX3Y1XzAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92 NV8wLmgKaW5kZXggN2Q3YTE1Mi4uZTNiM2M0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvdXZkX3Y1XzAuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91 dmRfdjVfMC5oCkBAIC0yNCw2ICsyNCw2IEBACiAjaWZuZGVmIF9fVVZEX1Y1XzBfSF9fCiAjZGVm aW5lIF9fVVZEX1Y1XzBfSF9fCiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNz IHV2ZF92NV8wX2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgdXZk X3Y1XzBfaXBfZnVuY3M7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvdXZkX3Y2XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92Nl8w LmMKaW5kZXggZjU5OTQyZC4uOGM3OTBmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvdXZkX3Y2XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRf djZfMC5jCkBAIC03OSwxOCArNzksMjEgQEAgc3RhdGljIHZvaWQgdXZkX3Y2XzBfcmluZ19zZXRf d3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAJV1JFRzMyKG1tVVZEX1JCQ19SQl9XUFRS LCByaW5nLT53cHRyKTsKIH0KIAotc3RhdGljIGludCB1dmRfdjZfMF9lYXJseV9pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB1dmRfdjZfMF9lYXJseV9pbml0KHZv aWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXV2ZF92Nl8wX3NldF9yaW5nX2Z1bmNzKGFkZXYpOwog CXV2ZF92Nl8wX3NldF9pcnFfZnVuY3MoYWRldik7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCB1dmRfdjZfMF9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGlj IGludCB1dmRfdjZfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmc7CiAJaW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAkvKiBVVkQgVFJBUCAqLwogCXIgPSBhbWRncHVf aXJxX2FkZF9pZChhZGV2LCAxMjQsICZhZGV2LT51dmQuaXJxKTsKQEAgLTExMyw5ICsxMTYsMTAg QEAgc3RhdGljIGludCB1dmRfdjZfMF9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCXJldHVybiByOwogfQogCi1zdGF0aWMgaW50IHV2ZF92Nl8wX3N3X2Zpbmkoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHV2ZF92Nl8wX3N3X2Zpbmkodm9pZCAqaGFu ZGxlKQogewogCWludCByOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJciA9IGFtZGdwdV91dmRfc3VzcGVuZChhZGV2KTsK IAlpZiAocikKQEAgLTEzNSw4ICsxMzksOSBAQCBzdGF0aWMgaW50IHV2ZF92Nl8wX3N3X2Zpbmko c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAgKgogICogSW5pdGlhbGl6ZSB0aGUgaGFyZHdh cmUsIGJvb3QgdXAgdGhlIFZDUFUgYW5kIGRvIHNvbWUgdGVzdGluZwogICovCi1zdGF0aWMgaW50 IHV2ZF92Nl8wX2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50 IHV2ZF92Nl8wX2h3X2luaXQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCXN0cnVjdCBhbWRncHVf cmluZyAqcmluZyA9ICZhZGV2LT51dmQucmluZzsKIAl1aW50MzJfdCB0bXA7CiAJaW50IHI7CkBA IC0xOTMsOCArMTk4LDkgQEAgZG9uZToKICAqCiAgKiBTdG9wIHRoZSBVVkQgYmxvY2ssIG1hcmsg cmluZyBhcyBub3QgcmVhZHkgYW55IG1vcmUKICAqLwotc3RhdGljIGludCB1dmRfdjZfMF9od19m aW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB1dmRfdjZfMF9od19m aW5pKHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAm YWRldi0+dXZkLnJpbmc7CiAKIAl1dmRfdjZfMF9zdG9wKGFkZXYpOwpAQCAtMjAzLDkgKzIwOSwx MCBAQCBzdGF0aWMgaW50IHV2ZF92Nl8wX2h3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdXZkX3Y2XzBfc3VzcGVuZChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdXZkX3Y2XzBfc3VzcGVuZCh2b2lkICpo YW5kbGUpCiB7CiAJaW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlyID0gdXZkX3Y2XzBfaHdfZmluaShhZGV2KTsK IAlpZiAocikKQEAgLTIxOCw5ICsyMjUsMTAgQEAgc3RhdGljIGludCB1dmRfdjZfMF9zdXNwZW5k KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiByOwogfQogCi1zdGF0aWMgaW50 IHV2ZF92Nl8wX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQg dXZkX3Y2XzBfcmVzdW1lKHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXIgPSBh bWRncHVfdXZkX3Jlc3VtZShhZGV2KTsKIAlpZiAocikKQEAgLTU5MywxNCArNjAxLDE3IEBAIGVy cm9yOgogCXJldHVybiByOwogfQogCi1zdGF0aWMgYm9vbCB1dmRfdjZfMF9pc19pZGxlKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGJvb2wgdXZkX3Y2XzBfaXNfaWRsZSh2b2lk ICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdw dV9kZXZpY2UgKiloYW5kbGU7CisKIAlyZXR1cm4gIShSUkVHMzIobW1TUkJNX1NUQVRVUykgJiBT UkJNX1NUQVRVU19fVVZEX0JVU1lfTUFTSyk7CiB9CiAKLXN0YXRpYyBpbnQgdXZkX3Y2XzBfd2Fp dF9mb3JfaWRsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdXZkX3Y2 XzBfd2FpdF9mb3JfaWRsZSh2b2lkICpoYW5kbGUpCiB7CiAJdW5zaWduZWQgaTsKKwlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAog CWZvciAoaSA9IDA7IGkgPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgewogCQlpZiAoIShSUkVH MzIobW1TUkJNX1NUQVRVUykgJiBTUkJNX1NUQVRVU19fVVZEX0JVU1lfTUFTSykpCkBAIC02MDks OCArNjIwLDEwIEBAIHN0YXRpYyBpbnQgdXZkX3Y2XzBfd2FpdF9mb3JfaWRsZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gLUVUSU1FRE9VVDsKIH0KIAotc3RhdGljIGludCB1 dmRfdjZfMF9zb2Z0X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGlu dCB1dmRfdjZfMF9zb2Z0X3Jlc2V0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKwogCXV2ZF92Nl8w X3N0b3AoYWRldik7CiAKIAlXUkVHMzJfUChtbVNSQk1fU09GVF9SRVNFVCwgU1JCTV9TT0ZUX1JF U0VUX19TT0ZUX1JFU0VUX1VWRF9NQVNLLApAQCAtNjIwLDggKzYzMyw5IEBAIHN0YXRpYyBpbnQg dXZkX3Y2XzBfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4g dXZkX3Y2XzBfc3RhcnQoYWRldik7CiB9CiAKLXN0YXRpYyB2b2lkIHV2ZF92Nl8wX3ByaW50X3N0 YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIHV2ZF92Nl8wX3By aW50X3N0YXR1cyh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAJZGV2X2luZm8oYWRldi0+ZGV2LCAi VVZEIDYuMCByZWdpc3RlcnNcbiIpOwogCWRldl9pbmZvKGFkZXYtPmRldiwgIiAgVVZEX1NFTUFf QUREUl9MT1c9MHglMDhYXG4iLAogCQkgUlJFRzMyKG1tVVZEX1NFTUFfQUREUl9MT1cpKTsKQEAg LTczNywxNiArNzUxLDE0IEBAIHN0YXRpYyBpbnQgdXZkX3Y2XzBfcHJvY2Vzc19pbnRlcnJ1cHQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg dXZkX3Y2XzBfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAotCQkJCQkgIGVudW0gYW1kZ3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGlu dCB1dmRfdjZfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkgIGVu dW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQogewotCS8vVE9ETwotCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyBpbnQgdXZkX3Y2XzBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVudW0gYW1kZ3B1X3Bvd2VyZ2F0aW5nX3N0YXRl IHN0YXRlKQorc3RhdGljIGludCB1dmRfdjZfMF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9pZCAq aGFuZGxlLAorCQkJCQkgIGVudW0gYW1kX3Bvd2VyZ2F0aW5nX3N0YXRlIHN0YXRlKQogewogCS8q IFRoaXMgZG9lc24ndCBhY3R1YWxseSBwb3dlcmdhdGUgdGhlIFVWRCBibG9jay4KIAkgKiBUaGF0 J3MgZG9uZSBpbiB0aGUgZHBtIGNvZGUgdmlhIHRoZSBTTUMuICBUaGlzCkBAIC03NTUsNyArNzY3 LDkgQEAgc3RhdGljIGludCB1dmRfdjZfMF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCiAJICogcmV2aXNpdCB0aGlzIHdoZW4gdGhlcmUgaXMgYSBjbGVh bmVyIGxpbmUgYmV0d2VlbgogCSAqIHRoZSBzbWMgYW5kIHRoZSBodyBibG9ja3MKIAkgKi8KLQlp ZiAoc3RhdGUgPT0gQU1ER1BVX1BHX1NUQVRFX0dBVEUpIHsKKwlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKKworCWlmIChzdGF0ZSA9 PSBBTURfUEdfU1RBVEVfR0FURSkgewogCQl1dmRfdjZfMF9zdG9wKGFkZXYpOwogCQlyZXR1cm4g MDsKIAl9IGVsc2UgewpAQCAtNzYzLDcgKzc3Nyw3IEBAIHN0YXRpYyBpbnQgdXZkX3Y2XzBfc2V0 X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCX0KIH0KIAot Y29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyB1dmRfdjZfMF9pcF9mdW5jcyA9IHsKK2NvbnN0 IHN0cnVjdCBhbWRfaXBfZnVuY3MgdXZkX3Y2XzBfaXBfZnVuY3MgPSB7CiAJLmVhcmx5X2luaXQg PSB1dmRfdjZfMF9lYXJseV9pbml0LAogCS5sYXRlX2luaXQgPSBOVUxMLAogCS5zd19pbml0ID0g dXZkX3Y2XzBfc3dfaW5pdCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3V2ZF92Nl8wLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjZfMC5oCmluZGV4 IGJjMjFhZmMuLjZiOTJhMjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3V2ZF92Nl8wLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y2XzAuaApA QCAtMjQsNiArMjQsNiBAQAogI2lmbmRlZiBfX1VWRF9WNl8wX0hfXwogI2RlZmluZSBfX1VWRF9W Nl8wX0hfXwogCi1leHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyB1dmRfdjZfMF9p cF9mdW5jczsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIHV2ZF92Nl8wX2lwX2Z1 bmNzOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zj ZV92Ml8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjJfMC5jCmluZGV4IGYy MDBkZjMuLjMwM2Q5NjFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92 Y2VfdjJfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92Ml8wLmMKQEAg LTE2OSwxOCArMTY5LDIxIEBAIHN0YXRpYyBpbnQgdmNlX3YyXzBfc3RhcnQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmNlX3YyXzBfZWFy bHlfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdmNlX3YyXzBf ZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAl2Y2VfdjJfMF9zZXRfcmluZ19m dW5jcyhhZGV2KTsKIAl2Y2VfdjJfMF9zZXRfaXJxX2Z1bmNzKGFkZXYpOwogCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyBpbnQgdmNlX3YyXzBfc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKK3N0YXRpYyBpbnQgdmNlX3YyXzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nOwogCWludCByOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJLyogVkNFICovCiAJciA9 IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIDE2NywgJmFkZXYtPnZjZS5pcnEpOwpAQCAtMjEzLDkg KzIxNiwxMCBAQCBzdGF0aWMgaW50IHZjZV92Ml8wX3N3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCiAJcmV0dXJuIHI7CiB9CiAKLXN0YXRpYyBpbnQgdmNlX3YyXzBfc3dfZmluaShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdmNlX3YyXzBfc3dfZmluaSh2 b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAo c3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlyID0gYW1kZ3B1X3ZjZV9zdXNwZW5k KGFkZXYpOwogCWlmIChyKQpAQCAtMjI4LDEwICsyMzIsMTEgQEAgc3RhdGljIGludCB2Y2VfdjJf MF9zd19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiByOwogfQogCi1z dGF0aWMgaW50IHZjZV92Ml8wX2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitz dGF0aWMgaW50IHZjZV92Ml8wX2h3X2luaXQodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBhbWRn cHVfcmluZyAqcmluZzsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXIgPSB2Y2VfdjJfMF9zdGFydChhZGV2 KTsKIAlpZiAocikKQEAgLTI1OCwxNSArMjYzLDE1IEBAIHN0YXRpYyBpbnQgdmNlX3YyXzBfaHdf aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCB2Y2VfdjJfMF9od19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGlj IGludCB2Y2VfdjJfMF9od19maW5pKHZvaWQgKmhhbmRsZSkKIHsKLQkvLyBUT0RPCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgdmNlX3YyXzBfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBpbnQgdmNlX3YyXzBfc3VzcGVuZCh2b2lkICpoYW5kbGUpCiB7CiAJ aW50IHI7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKiloYW5kbGU7CiAKIAlyID0gdmNlX3YyXzBfaHdfZmluaShhZGV2KTsKIAlpZiAocikKQEAg LTI3OSw5ICsyODQsMTAgQEAgc3RhdGljIGludCB2Y2VfdjJfMF9zdXNwZW5kKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQogCXJldHVybiByOwogfQogCi1zdGF0aWMgaW50IHZjZV92Ml8wX3Jl c3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdmNlX3YyXzBfcmVz dW1lKHZvaWQgKmhhbmRsZSkKIHsKIAlpbnQgcjsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAogCXIgPSBhbWRncHVfdmNlX3Jl c3VtZShhZGV2KTsKIAlpZiAocikKQEAgLTQ0MiwxNCArNDQ4LDE3IEBAIHN0YXRpYyB2b2lkIHZj ZV92Ml8wX21jX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl2Y2VfdjJfMF9p bml0X2NnKGFkZXYpOwogfQogCi1zdGF0aWMgYm9vbCB2Y2VfdjJfMF9pc19pZGxlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGJvb2wgdmNlX3YyXzBfaXNfaWRsZSh2b2lkICpo YW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKiloYW5kbGU7CisKIAlyZXR1cm4gIShSUkVHMzIobW1TUkJNX1NUQVRVUzIpICYgU1JC TV9TVEFUVVMyX19WQ0VfQlVTWV9NQVNLKTsKIH0KIAotc3RhdGljIGludCB2Y2VfdjJfMF93YWl0 X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB2Y2VfdjJf MF93YWl0X2Zvcl9pZGxlKHZvaWQgKmhhbmRsZSkKIHsKIAl1bnNpZ25lZCBpOworCXN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJ Zm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CiAJCWlmICghKFJSRUcz MihtbVNSQk1fU1RBVFVTMikgJiBTUkJNX1NUQVRVUzJfX1ZDRV9CVVNZX01BU0spKQpAQCAtNDU4 LDggKzQ2NywxMCBAQCBzdGF0aWMgaW50IHZjZV92Ml8wX3dhaXRfZm9yX2lkbGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIC1FVElNRURPVVQ7CiB9CiAKLXN0YXRpYyBpbnQg dmNlX3YyXzBfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBp bnQgdmNlX3YyXzBfc29mdF9yZXNldCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlXUkVHMzJf UChtbVNSQk1fU09GVF9SRVNFVCwgU1JCTV9TT0ZUX1JFU0VUX19TT0ZUX1JFU0VUX1ZDRV9NQVNL LAogCQkJflNSQk1fU09GVF9SRVNFVF9fU09GVF9SRVNFVF9WQ0VfTUFTSyk7CiAJbWRlbGF5KDUp OwpAQCAtNDY3LDggKzQ3OCwxMCBAQCBzdGF0aWMgaW50IHZjZV92Ml8wX3NvZnRfcmVzZXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHZjZV92Ml8wX3N0YXJ0KGFkZXYpOwog fQogCi1zdGF0aWMgdm9pZCB2Y2VfdjJfMF9wcmludF9zdGF0dXMoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCitzdGF0aWMgdm9pZCB2Y2VfdjJfMF9wcmludF9zdGF0dXModm9pZCAqaGFuZGxl KQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNl ICopaGFuZGxlOworCiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiVkNFIDIuMCByZWdpc3RlcnNcbiIp OwogCWRldl9pbmZvKGFkZXYtPmRldiwgIiAgVkNFX1NUQVRVUz0weCUwOFhcbiIsCiAJCSBSUkVH MzIobW1WQ0VfU1RBVFVTKSk7CkBAIC01NjksMTIgKzU4MiwxMyBAQCBzdGF0aWMgaW50IHZjZV92 Ml8wX3Byb2Nlc3NfaW50ZXJydXB0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IHZjZV92Ml8wX3NldF9jbG9ja2dhdGluZ19zdGF0ZShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9jbG9ja2dhdGluZ19z dGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgdmNlX3YyXzBfc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZv aWQgKmhhbmRsZSwKKwkJCQkJICBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSkKIHsK IAlib29sIGdhdGUgPSBmYWxzZTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAotCWlmIChzdGF0ZSA9PSBBTURHUFVfQ0dfU1RB VEVfR0FURSkKKwlpZiAoc3RhdGUgPT0gQU1EX0NHX1NUQVRFX0dBVEUpCiAJCWdhdGUgPSB0cnVl OwogCiAJdmNlX3YyXzBfZW5hYmxlX21nY2coYWRldiwgZ2F0ZSk7CkBAIC01ODIsOCArNTk2LDgg QEAgc3RhdGljIGludCB2Y2VfdjJfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmNlX3YyXzBfc2V0 X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkgIGVu dW0gYW1kZ3B1X3Bvd2VyZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGludCB2Y2VfdjJfMF9z ZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAorCQkJCQkgIGVudW0gYW1kX3Bvd2Vy Z2F0aW5nX3N0YXRlIHN0YXRlKQogewogCS8qIFRoaXMgZG9lc24ndCBhY3R1YWxseSBwb3dlcmdh dGUgdGhlIFZDRSBibG9jay4KIAkgKiBUaGF0J3MgZG9uZSBpbiB0aGUgZHBtIGNvZGUgdmlhIHRo ZSBTTUMuICBUaGlzCkBAIC01OTIsMTQgKzYwNiwxNiBAQCBzdGF0aWMgaW50IHZjZV92Ml8wX3Nl dF9wb3dlcmdhdGluZ19zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkgKiByZXZp c2l0IHRoaXMgd2hlbiB0aGVyZSBpcyBhIGNsZWFuZXIgbGluZSBiZXR3ZWVuCiAJICogdGhlIHNt YyBhbmQgdGhlIGh3IGJsb2NrcwogCSAqLwotCWlmIChzdGF0ZSA9PSBBTURHUFVfUEdfU1RBVEVf R0FURSkKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqKWhhbmRsZTsKKworCWlmIChzdGF0ZSA9PSBBTURfUEdfU1RBVEVfR0FURSkKIAkJLyogWFhY IGRvIHdlIG5lZWQgYSB2Y2VfdjJfMF9zdG9wKCk/ICovCiAJCXJldHVybiAwOwogCWVsc2UKIAkJ cmV0dXJuIHZjZV92Ml8wX3N0YXJ0KGFkZXYpOwogfQogCi1jb25zdCBzdHJ1Y3QgYW1kZ3B1X2lw X2Z1bmNzIHZjZV92Ml8wX2lwX2Z1bmNzID0geworY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyB2 Y2VfdjJfMF9pcF9mdW5jcyA9IHsKIAkuZWFybHlfaW5pdCA9IHZjZV92Ml8wX2Vhcmx5X2luaXQs CiAJLmxhdGVfaW5pdCA9IE5VTEwsCiAJLnN3X2luaXQgPSB2Y2VfdjJfMF9zd19pbml0LApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNlX3YyXzAuaCBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92Ml8wLmgKaW5kZXggOGViMWNmMi4uMGQyYWU4YSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNlX3YyXzAuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjJfMC5oCkBAIC0yNCw2ICsyNCw2IEBACiAjaWZu ZGVmIF9fVkNFX1YyXzBfSF9fCiAjZGVmaW5lIF9fVkNFX1YyXzBfSF9fCiAKLWV4dGVybiBjb25z dCBzdHJ1Y3QgYW1kZ3B1X2lwX2Z1bmNzIHZjZV92Ml8wX2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0 IHN0cnVjdCBhbWRfaXBfZnVuY3MgdmNlX3YyXzBfaXBfZnVuY3M7CiAKICNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNlX3YzXzAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3ZjZV92M18wLmMKaW5kZXggNTdlMGUxNi4uZDYyYzQwMDIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92M18wLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvdmNlX3YzXzAuYwpAQCAtMTkwLDE2ICsxOTAsMTkgQEAgc3Rh dGljIGludCB2Y2VfdjNfMF9zdGFydChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIGludCB2Y2VfdjNfMF9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQorc3RhdGljIGludCB2Y2VfdjNfMF9lYXJseV9pbml0KHZvaWQgKmhhbmRs ZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqKWhhbmRsZTsKKwogCXZjZV92M18wX3NldF9yaW5nX2Z1bmNzKGFkZXYpOwogCXZjZV92M18w X3NldF9pcnFfZnVuY3MoYWRldik7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB2Y2Vf djNfMF9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB2Y2Vf djNfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKIHsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKIAlzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmc7CiAJaW50IHI7CiAKQEAgLTIzNCw5ICsyMzcsMTAgQEAgc3RhdGljIGludCB2Y2VfdjNf MF9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXJldHVybiByOwogfQogCi1z dGF0aWMgaW50IHZjZV92M18wX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitz dGF0aWMgaW50IHZjZV92M18wX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogewogCWludCByOworCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxl OwogCiAJciA9IGFtZGdwdV92Y2Vfc3VzcGVuZChhZGV2KTsKIAlpZiAocikKQEAgLTI0OSwxMCAr MjUzLDExIEBAIHN0YXRpYyBpbnQgdmNlX3YzXzBfc3dfZmluaShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKIAlyZXR1cm4gcjsKIH0KIAotc3RhdGljIGludCB2Y2VfdjNfMF9od19pbml0KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB2Y2VfdjNfMF9od19pbml0KHZv aWQgKmhhbmRsZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7CiAJaW50IHI7CisJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7 CiAKIAlyID0gdmNlX3YzXzBfc3RhcnQoYWRldik7CiAJaWYgKHIpCkBAIC0yNzksMTUgKzI4NCwx NSBAQCBzdGF0aWMgaW50IHZjZV92M18wX2h3X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmNlX3YzXzBfaHdfZmluaShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdmNlX3YzXzBfaHdfZmluaSh2b2lkICpo YW5kbGUpCiB7Ci0JLy8gVE9ETwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHZjZV92M18w X3N1c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHZjZV92M18w X3N1c3BlbmQodm9pZCAqaGFuZGxlKQogewogCWludCByOworCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJciA9IHZjZV92M18w X2h3X2ZpbmkoYWRldik7CiAJaWYgKHIpCkBAIC0zMDAsOSArMzA1LDEwIEBAIHN0YXRpYyBpbnQg dmNlX3YzXzBfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gcjsK IH0KIAotc3RhdGljIGludCB2Y2VfdjNfMF9yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCitzdGF0aWMgaW50IHZjZV92M18wX3Jlc3VtZSh2b2lkICpoYW5kbGUpCiB7CiAJaW50IHI7 CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilo YW5kbGU7CiAKIAlyID0gYW1kZ3B1X3ZjZV9yZXN1bWUoYWRldik7CiAJaWYgKHIpCkBAIC0zNjIs MTQgKzM2OCwxNyBAQCBzdGF0aWMgdm9pZCB2Y2VfdjNfMF9tY19yZXN1bWUoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIGludCBpZHgpCiAJCSB+VkNFX1NZU19JTlRfRU5fX1ZDRV9TWVNfSU5U X1RSQVBfSU5URVJSVVBUX0VOX01BU0spOwogfQogCi1zdGF0aWMgYm9vbCB2Y2VfdjNfMF9pc19p ZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGJvb2wgdmNlX3YzXzBfaXNf aWRsZSh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAlyZXR1cm4gIShSUkVHMzIobW1TUkJNX1NU QVRVUzIpICYgU1JCTV9TVEFUVVMyX19WQ0VfQlVTWV9NQVNLKTsKIH0KIAotc3RhdGljIGludCB2 Y2VfdjNfMF93YWl0X2Zvcl9pZGxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGlj IGludCB2Y2VfdjNfMF93YWl0X2Zvcl9pZGxlKHZvaWQgKmhhbmRsZSkKIHsKIAl1bnNpZ25lZCBp OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICop aGFuZGxlOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CiAJ CWlmICghKFJSRUczMihtbVNSQk1fU1RBVFVTMikgJiBTUkJNX1NUQVRVUzJfX1ZDRV9CVVNZX01B U0spKQpAQCAtMzc4LDggKzM4NywxMCBAQCBzdGF0aWMgaW50IHZjZV92M18wX3dhaXRfZm9yX2lk bGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIC1FVElNRURPVVQ7CiB9CiAK LXN0YXRpYyBpbnQgdmNlX3YzXzBfc29mdF9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKK3N0YXRpYyBpbnQgdmNlX3YzXzBfc29mdF9yZXNldCh2b2lkICpoYW5kbGUpCiB7CisJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7 CisKIAlXUkVHMzJfUChtbVNSQk1fU09GVF9SRVNFVCwgU1JCTV9TT0ZUX1JFU0VUX19TT0ZUX1JF U0VUX1ZDRV9NQVNLLAogCQkJflNSQk1fU09GVF9SRVNFVF9fU09GVF9SRVNFVF9WQ0VfTUFTSyk7 CiAJbWRlbGF5KDUpOwpAQCAtMzg3LDggKzM5OCwxMCBAQCBzdGF0aWMgaW50IHZjZV92M18wX3Nv ZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0dXJuIHZjZV92M18wX3N0 YXJ0KGFkZXYpOwogfQogCi1zdGF0aWMgdm9pZCB2Y2VfdjNfMF9wcmludF9zdGF0dXMoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCB2Y2VfdjNfMF9wcmludF9zdGF0dXMo dm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJZGV2X2luZm8oYWRldi0+ZGV2LCAiVkNFIDMuMCBy ZWdpc3RlcnNcbiIpOwogCWRldl9pbmZvKGFkZXYtPmRldiwgIiAgVkNFX1NUQVRVUz0weCUwOFhc biIsCiAJCSBSUkVHMzIobW1WQ0VfU1RBVFVTKSk7CkBAIC00ODcsMTUgKzUwMCwxNCBAQCBzdGF0 aWMgaW50IHZjZV92M18wX3Byb2Nlc3NfaW50ZXJydXB0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHZjZV92M18wX3NldF9jbG9ja2dhdGlu Z19zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBlbnVtIGFtZGdwdV9j bG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSkKK3N0YXRpYyBpbnQgdmNlX3YzXzBfc2V0X2Nsb2NrZ2F0 aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJCQkJICBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0 ZSBzdGF0ZSkKIHsKLQkvL1RPRE8KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB2Y2VfdjNf MF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJ CSAgZW51bSBhbWRncHVfcG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCitzdGF0aWMgaW50IHZjZV92 M18wX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCisJCQkJCSAgZW51bSBhbWRf cG93ZXJnYXRpbmdfc3RhdGUgc3RhdGUpCiB7CiAJLyogVGhpcyBkb2Vzbid0IGFjdHVhbGx5IHBv d2VyZ2F0ZSB0aGUgVkNFIGJsb2NrLgogCSAqIFRoYXQncyBkb25lIGluIHRoZSBkcG0gY29kZSB2 aWEgdGhlIFNNQy4gIFRoaXMKQEAgLTUwNCwxNCArNTE2LDE2IEBAIHN0YXRpYyBpbnQgdmNlX3Yz XzBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCSAq IHJldmlzaXQgdGhpcyB3aGVuIHRoZXJlIGlzIGEgY2xlYW5lciBsaW5lIGJldHdlZW4KIAkgKiB0 aGUgc21jIGFuZCB0aGUgaHcgYmxvY2tzCiAJICovCi0JaWYgKHN0YXRlID09IEFNREdQVV9QR19T VEFURV9HQVRFKQorCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVf ZGV2aWNlICopaGFuZGxlOworCisJaWYgKHN0YXRlID09IEFNRF9QR19TVEFURV9HQVRFKQogCQkv KiBYWFggZG8gd2UgbmVlZCBhIHZjZV92M18wX3N0b3AoKT8gKi8KIAkJcmV0dXJuIDA7CiAJZWxz ZQogCQlyZXR1cm4gdmNlX3YzXzBfc3RhcnQoYWRldik7CiB9CiAKLWNvbnN0IHN0cnVjdCBhbWRn cHVfaXBfZnVuY3MgdmNlX3YzXzBfaXBfZnVuY3MgPSB7Citjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1 bmNzIHZjZV92M18wX2lwX2Z1bmNzID0gewogCS5lYXJseV9pbml0ID0gdmNlX3YzXzBfZWFybHlf aW5pdCwKIAkubGF0ZV9pbml0ID0gTlVMTCwKIAkuc3dfaW5pdCA9IHZjZV92M18wX3N3X2luaXQs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjNfMC5oIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNlX3YzXzAuaAppbmRleCBmM2MyYmE5Li5iNDVhZjY1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjNfMC5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92M18wLmgKQEAgLTI0LDYgKzI0LDYgQEAK ICNpZm5kZWYgX19WQ0VfVjNfMF9IX18KICNkZWZpbmUgX19WQ0VfVjNfMF9IX18KIAotZXh0ZXJu IGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3MgdmNlX3YzXzBfaXBfZnVuY3M7CitleHRlcm4g Y29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyB2Y2VfdjNfMF9pcF9mdW5jczsKIAogI2VuZGlmCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92aS5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvdmkuYwppbmRleCA1OWEwNzNhLi5iZTdjMTc2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92aS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3ZpLmMKQEAgLTk5NCw0MiArOTk0LDQyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1k Z3B1X2lwX2Jsb2NrX3ZlcnNpb24gdG9wYXpfaXBfYmxvY2tzW10gPQogewogCS8qIE9SREVSIE1B VFRFUlMhICovCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX0NPTU1PTiwKKwkJ LnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9DT01NT04sCiAJCS5tYWpvciA9IDIsCiAJCS5taW5v ciA9IDAsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmdmlfY29tbW9uX2lwX2Z1bmNzLAogCX0s CiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX0dNQywKKwkJLnR5cGUgPSBBTURf SVBfQkxPQ0tfVFlQRV9HTUMsCiAJCS5tYWpvciA9IDgsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYg PSAwLAogCQkuZnVuY3MgPSAmZ21jX3Y4XzBfaXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0g QU1ER1BVX0lQX0JMT0NLX1RZUEVfSUgsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfSUgs CiAJCS5tYWpvciA9IDIsCiAJCS5taW5vciA9IDQsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAm aWNlbGFuZF9paF9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tf VFlQRV9TTUMsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfU01DLAogCQkubWFqb3IgPSA3 LAogCQkubWlub3IgPSAxLAogCQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJmljZWxhbmRfZHBtX2lw X2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX0dGWCwKKwkJ LnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9HRlgsCiAJCS5tYWpvciA9IDgsCiAJCS5taW5vciA9 IDAsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmZ2Z4X3Y4XzBfaXBfZnVuY3MsCiAJfSwKIAl7 Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfU0RNQSwKKwkJLnR5cGUgPSBBTURfSVBf QkxPQ0tfVFlQRV9TRE1BLAogCQkubWFqb3IgPSAyLAogCQkubWlub3IgPSA0LAogCQkucmV2ID0g MCwKQEAgLTEwNDEsNjMgKzEwNDEsNjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBf YmxvY2tfdmVyc2lvbiB0b25nYV9pcF9ibG9ja3NbXSA9CiB7CiAJLyogT1JERVIgTUFUVEVSUyEg Ki8KIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfQ09NTU9OLAorCQkudHlwZSA9 IEFNRF9JUF9CTE9DS19UWVBFX0NPTU1PTiwKIAkJLm1ham9yID0gMiwKIAkJLm1pbm9yID0gMCwK IAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZ2aV9jb21tb25faXBfZnVuY3MsCiAJfSwKIAl7Ci0J CS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfR01DLAorCQkudHlwZSA9IEFNRF9JUF9CTE9D S19UWVBFX0dNQywKIAkJLm1ham9yID0gOCwKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAsCiAJ CS5mdW5jcyA9ICZnbWNfdjhfMF9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVf SVBfQkxPQ0tfVFlQRV9JSCwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9JSCwKIAkJLm1h am9yID0gMywKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZ0b25nYV9p aF9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9TTUMs CisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfU01DLAogCQkubWFqb3IgPSA3LAogCQkubWlu b3IgPSAxLAogCQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJnRvbmdhX2RwbV9pcF9mdW5jcywKIAl9 LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9EQ0UsCisJCS50eXBlID0gQU1E X0lQX0JMT0NLX1RZUEVfRENFLAogCQkubWFqb3IgPSAxMCwKIAkJLm1pbm9yID0gMCwKIAkJLnJl diA9IDAsCiAJCS5mdW5jcyA9ICZkY2VfdjEwXzBfaXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBl ID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfR0ZYLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBF X0dGWCwKIAkJLm1ham9yID0gOCwKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9IDAsCiAJCS5mdW5j cyA9ICZnZnhfdjhfMF9pcF9mdW5jcywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxP Q0tfVFlQRV9TRE1BLAorCQkudHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX1NETUEsCiAJCS5tYWpv ciA9IDMsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmc2RtYV92M18w X2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX1VWRCwK KwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9VVkQsCiAJCS5tYWpvciA9IDUsCiAJCS5taW5v ciA9IDAsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmdXZkX3Y1XzBfaXBfZnVuY3MsCiAJfSwK IAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfVkNFLAorCQkudHlwZSA9IEFNRF9J UF9CTE9DS19UWVBFX1ZDRSwKIAkJLm1ham9yID0gMywKIAkJLm1pbm9yID0gMCwKIAkJLnJldiA9 IDAsCkBAIC0xMTA5LDYzICsxMTA5LDYzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lw X2Jsb2NrX3ZlcnNpb24gY3pfaXBfYmxvY2tzW10gPQogewogCS8qIE9SREVSIE1BVFRFUlMhICov CiAJewotCQkudHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX0NPTU1PTiwKKwkJLnR5cGUgPSBB TURfSVBfQkxPQ0tfVFlQRV9DT01NT04sCiAJCS5tYWpvciA9IDIsCiAJCS5taW5vciA9IDAsCiAJ CS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmdmlfY29tbW9uX2lwX2Z1bmNzLAogCX0sCiAJewotCQku dHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX0dNQywKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tf VFlQRV9HTUMsCiAJCS5tYWpvciA9IDgsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLAogCQku ZnVuY3MgPSAmZ21jX3Y4XzBfaXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQ X0JMT0NLX1RZUEVfSUgsCisJCS50eXBlID0gQU1EX0lQX0JMT0NLX1RZUEVfSUgsCiAJCS5tYWpv ciA9IDMsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmY3pfaWhfaXBf ZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfU01DLAorCQku dHlwZSA9IEFNRF9JUF9CTE9DS19UWVBFX1NNQywKIAkJLm1ham9yID0gOCwKIAkJLm1pbm9yID0g MCwKIAkJLnJldiA9IDAsCiAJCS5mdW5jcyA9ICZjel9kcG1faXBfZnVuY3MsCiAJfSwKIAl7Ci0J CS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVfRENFLAorCQkudHlwZSA9IEFNRF9JUF9CTE9D S19UWVBFX0RDRSwKIAkJLm1ham9yID0gMTEsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLAog CQkuZnVuY3MgPSAmZGNlX3YxMV8wX2lwX2Z1bmNzLAogCX0sCiAJewotCQkudHlwZSA9IEFNREdQ VV9JUF9CTE9DS19UWVBFX0dGWCwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9HRlgsCiAJ CS5tYWpvciA9IDgsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLAogCQkuZnVuY3MgPSAmZ2Z4 X3Y4XzBfaXBfZnVuY3MsCiAJfSwKIAl7Ci0JCS50eXBlID0gQU1ER1BVX0lQX0JMT0NLX1RZUEVf U0RNQSwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tfVFlQRV9TRE1BLAogCQkubWFqb3IgPSAzLAog CQkubWlub3IgPSAwLAogCQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJnNkbWFfdjNfMF9pcF9mdW5j cywKIAl9LAogCXsKLQkJLnR5cGUgPSBBTURHUFVfSVBfQkxPQ0tfVFlQRV9VVkQsCisJCS50eXBl ID0gQU1EX0lQX0JMT0NLX1RZUEVfVVZELAogCQkubWFqb3IgPSA2LAogCQkubWlub3IgPSAwLAog CQkucmV2ID0gMCwKIAkJLmZ1bmNzID0gJnV2ZF92Nl8wX2lwX2Z1bmNzLAogCX0sCiAJewotCQku dHlwZSA9IEFNREdQVV9JUF9CTE9DS19UWVBFX1ZDRSwKKwkJLnR5cGUgPSBBTURfSVBfQkxPQ0tf VFlQRV9WQ0UsCiAJCS5tYWpvciA9IDMsCiAJCS5taW5vciA9IDAsCiAJCS5yZXYgPSAwLApAQCAt MTIyNSw5ICsxMjI1LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2FzaWNfZnVuY3Mg dmlfYXNpY19mdW5jcyA9CiAJLndhaXRfZm9yX21jX2lkbGUgPSAmZ21jX3Y4XzBfbWNfd2FpdF9m b3JfaWRsZSwKIH07CiAKLXN0YXRpYyBpbnQgdmlfY29tbW9uX2Vhcmx5X2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHZpX2NvbW1vbl9lYXJseV9pbml0KHZvaWQg KmhhbmRsZSkKIHsKIAlib29sIHNtY19lbmFibGVkID0gZmFsc2U7CisJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKIAlhZGV2LT5z bWNfcnJlZyA9ICZ2aV9zbWNfcnJlZzsKIAlhZGV2LT5zbWNfd3JlZyA9ICZ2aV9zbWNfd3JlZzsK QEAgLTEyNDAsOCArMTI0MSw4IEBAIHN0YXRpYyBpbnQgdmlfY29tbW9uX2Vhcmx5X2luaXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIAlhZGV2LT5hc2ljX2Z1bmNzID0gJnZpX2FzaWNf ZnVuY3M7CiAKLQlpZiAoYW1kZ3B1X2dldF9pcF9ibG9jayhhZGV2LCBBTURHUFVfSVBfQkxPQ0tf VFlQRV9TTUMpICYmCi0JCShhbWRncHVfaXBfYmxvY2tfbWFzayAmICgxIDw8IEFNREdQVV9JUF9C TE9DS19UWVBFX1NNQykpKQorCWlmIChhbWRncHVfZ2V0X2lwX2Jsb2NrKGFkZXYsIEFNRF9JUF9C TE9DS19UWVBFX1NNQykgJiYKKwkJKGFtZGdwdV9pcF9ibG9ja19tYXNrICYgKDEgPDwgQU1EX0lQ X0JMT0NLX1RZUEVfU01DKSkpCiAJCXNtY19lbmFibGVkID0gdHJ1ZTsKIAogCWFkZXYtPnJldl9p ZCA9IHZpX2dldF9yZXZfaWQoYWRldik7CkBAIC0xMjc5LDE4ICsxMjgwLDIwIEBAIHN0YXRpYyBp bnQgdmlfY29tbW9uX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmlfY29tbW9uX3N3X2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHZpX2NvbW1vbl9zd19pbml0KHZvaWQgKmhhbmRsZSkK IHsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB2aV9jb21tb25fc3dfZmluaShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdmlfY29tbW9uX3N3X2Zpbmkodm9pZCAq aGFuZGxlKQogewogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHZpX2NvbW1vbl9od19pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIGludCB2aV9jb21tb25faHdfaW5p dCh2b2lkICpoYW5kbGUpCiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisKIAkvKiBtb3ZlIHRoZSBnb2xkZW4gcmVncyBwZXIg SVAgYmxvY2sgKi8KIAl2aV9pbml0X2dvbGRlbl9yZWdpc3RlcnMoYWRldik7CiAJLyogZW5hYmxl IHBjaWUgZ2VuMi8zIGxpbmsgKi8KQEAgLTEzMDMsNTggKzEzMDYsNjMgQEAgc3RhdGljIGludCB2 aV9jb21tb25faHdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIGludCB2aV9jb21tb25faHdfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKK3N0YXRpYyBpbnQgdmlfY29tbW9uX2h3X2Zpbmkodm9pZCAqaGFuZGxlKQogeworCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxl OworCiAJLyogZW5hYmxlIHRoZSBkb29yYmVsbCBhcGVydHVyZSAqLwogCXZpX2VuYWJsZV9kb29y YmVsbF9hcGVydHVyZShhZGV2LCBmYWxzZSk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dCB2aV9jb21tb25fc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBp bnQgdmlfY29tbW9uX3N1c3BlbmQodm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJcmV0dXJuIHZp X2NvbW1vbl9od19maW5pKGFkZXYpOwogfQogCi1zdGF0aWMgaW50IHZpX2NvbW1vbl9yZXN1bWUo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgaW50IHZpX2NvbW1vbl9yZXN1bWUo dm9pZCAqaGFuZGxlKQogeworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOworCiAJcmV0dXJuIHZpX2NvbW1vbl9od19pbml0KGFkZXYp OwogfQogCi1zdGF0aWMgYm9vbCB2aV9jb21tb25faXNfaWRsZShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKK3N0YXRpYyBib29sIHZpX2NvbW1vbl9pc19pZGxlKHZvaWQgKmhhbmRsZSkKIHsK IAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGludCB2aV9jb21tb25fd2FpdF9mb3JfaWRsZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyBpbnQgdmlfY29tbW9uX3dhaXRfZm9y X2lkbGUodm9pZCAqaGFuZGxlKQogewogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCB2aV9j b21tb25fcHJpbnRfc3RhdHVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQorc3RhdGljIHZv aWQgdmlfY29tbW9uX3ByaW50X3N0YXR1cyh2b2lkICpoYW5kbGUpCiB7Ci0KKwlyZXR1cm47CiB9 CiAKLXN0YXRpYyBpbnQgdmlfY29tbW9uX3NvZnRfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCitzdGF0aWMgaW50IHZpX2NvbW1vbl9zb2Z0X3Jlc2V0KHZvaWQgKmhhbmRsZSkKIHsK LQkvKiBYWFggaGFyZCByZXNldD8/ICovCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmlf Y29tbW9uX3NldF9jbG9ja2dhdGluZ19zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK LQkJCQkJICAgIGVudW0gYW1kZ3B1X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQorc3RhdGljIGlu dCB2aV9jb21tb25fc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKKwkJCQkJICAg IGVudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQogewogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IHZpX2NvbW1vbl9zZXRfcG93ZXJnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCi0JCQkJCSAgICBlbnVtIGFtZGdwdV9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0 ZSkKK3N0YXRpYyBpbnQgdmlfY29tbW9uX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpoYW5k bGUsCisJCQkJCSAgICBlbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSkKIHsKIAlyZXR1 cm4gMDsKIH0KIAotY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyB2aV9jb21tb25faXBfZnVu Y3MgPSB7Citjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIHZpX2NvbW1vbl9pcF9mdW5jcyA9IHsK IAkuZWFybHlfaW5pdCA9IHZpX2NvbW1vbl9lYXJseV9pbml0LAogCS5sYXRlX2luaXQgPSBOVUxM LAogCS5zd19pbml0ID0gdmlfY29tbW9uX3N3X2luaXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS92aS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmkuaApp bmRleCBkMTZhNWY3Li41MDIwOTQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS92aS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpLmgKQEAgLTI0LDcg KzI0LDcgQEAKICNpZm5kZWYgX19WSV9IX18KICNkZWZpbmUgX19WSV9IX18KIAotZXh0ZXJuIGNv bnN0IHN0cnVjdCBhbWRncHVfaXBfZnVuY3MgdmlfY29tbW9uX2lwX2Z1bmNzOworZXh0ZXJuIGNv bnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MgdmlfY29tbW9uX2lwX2Z1bmNzOwogCiB2b2lkIHZpX3Ny Ym1fc2VsZWN0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkgICAgdTMyIG1lLCB1MzIg cGlwZSwgdTMyIHF1ZXVlLCB1MzIgdm1pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS92aV9kcG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpX2RwbS5o CmluZGV4IDExY2IxZjcuLjNiNDUzMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3ZpX2RwbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpX2RwbS5o CkBAIC0yNCwxMyArMjQsMTMgQEAKICNpZm5kZWYgX19WSV9EUE1fSF9fCiAjZGVmaW5lIF9fVklf RFBNX0hfXwogCi1leHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9mdW5jcyBjel9kcG1faXBf ZnVuY3M7CitleHRlcm4gY29uc3Qgc3RydWN0IGFtZF9pcF9mdW5jcyBjel9kcG1faXBfZnVuY3M7 CiBpbnQgY3pfc211X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogaW50IGN6X3Nt dV9zdGFydChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQgY3pfc211X2Zpbmkoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogCi1leHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9p cF9mdW5jcyB0b25nYV9kcG1faXBfZnVuY3M7CitleHRlcm4gY29uc3Qgc3RydWN0IGFtZF9pcF9m dW5jcyB0b25nYV9kcG1faXBfZnVuY3M7CiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lw X2Z1bmNzIGljZWxhbmRfZHBtX2lwX2Z1bmNzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRfaXBf ZnVuY3MgaWNlbGFuZF9kcG1faXBfZnVuY3M7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FtZF9zaGFyZWQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv aW5jbHVkZS9hbWRfc2hhcmVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NWJkZjFiNAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9h bWRfc2hhcmVkLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE1IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICog YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisg KiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAq CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQg U0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIF9f QU1EX1NIQVJFRF9IX18KKyNkZWZpbmUgX19BTURfU0hBUkVEX0hfXworCitlbnVtIGFtZF9pcF9i bG9ja190eXBlIHsKKwlBTURfSVBfQkxPQ0tfVFlQRV9DT01NT04sCisJQU1EX0lQX0JMT0NLX1RZ UEVfR01DLAorCUFNRF9JUF9CTE9DS19UWVBFX0lILAorCUFNRF9JUF9CTE9DS19UWVBFX1NNQywK KwlBTURfSVBfQkxPQ0tfVFlQRV9EQ0UsCisJQU1EX0lQX0JMT0NLX1RZUEVfR0ZYLAorCUFNRF9J UF9CTE9DS19UWVBFX1NETUEsCisJQU1EX0lQX0JMT0NLX1RZUEVfVVZELAorCUFNRF9JUF9CTE9D S19UWVBFX1ZDRSwKK307CisKK2VudW0gYW1kX2Nsb2NrZ2F0aW5nX3N0YXRlIHsKKwlBTURfQ0df U1RBVEVfR0FURSA9IDAsCisJQU1EX0NHX1NUQVRFX1VOR0FURSwKK307CisKK2VudW0gYW1kX3Bv d2VyZ2F0aW5nX3N0YXRlIHsKKwlBTURfUEdfU1RBVEVfR0FURSA9IDAsCisJQU1EX1BHX1NUQVRF X1VOR0FURSwKK307CisKK3N0cnVjdCBhbWRfaXBfZnVuY3MgeworCS8qIHNldHMgdXAgZWFybHkg ZHJpdmVyIHN0YXRlIChwcmUgc3dfaW5pdCksIGRvZXMgbm90IGNvbmZpZ3VyZSBodyAtIE9wdGlv bmFsICovCisJaW50ICgqZWFybHlfaW5pdCkodm9pZCAqaGFuZGxlKTsKKwkvKiBzZXRzIHVwIGxh dGUgZHJpdmVyL2h3IHN0YXRlIChwb3N0IGh3X2luaXQpIC0gT3B0aW9uYWwgKi8KKwlpbnQgKCps YXRlX2luaXQpKHZvaWQgKmhhbmRsZSk7CisJLyogc2V0cyB1cCBkcml2ZXIgc3RhdGUsIGRvZXMg bm90IGNvbmZpZ3VyZSBodyAqLworCWludCAoKnN3X2luaXQpKHZvaWQgKmhhbmRsZSk7CisJLyog dGVhcnMgZG93biBkcml2ZXIgc3RhdGUsIGRvZXMgbm90IGNvbmZpZ3VyZSBodyAqLworCWludCAo KnN3X2ZpbmkpKHZvaWQgKmhhbmRsZSk7CisJLyogc2V0cyB1cCB0aGUgaHcgc3RhdGUgKi8KKwlp bnQgKCpod19pbml0KSh2b2lkICpoYW5kbGUpOworCS8qIHRlYXJzIGRvd24gdGhlIGh3IHN0YXRl ICovCisJaW50ICgqaHdfZmluaSkodm9pZCAqaGFuZGxlKTsKKwkvKiBoYW5kbGVzIElQIHNwZWNp ZmljIGh3L3N3IGNoYW5nZXMgZm9yIHN1c3BlbmQgKi8KKwlpbnQgKCpzdXNwZW5kKSh2b2lkICpo YW5kbGUpOworCS8qIGhhbmRsZXMgSVAgc3BlY2lmaWMgaHcvc3cgY2hhbmdlcyBmb3IgcmVzdW1l ICovCisJaW50ICgqcmVzdW1lKSh2b2lkICpoYW5kbGUpOworCS8qIHJldHVybnMgY3VycmVudCBJ UCBibG9jayBpZGxlIHN0YXR1cyAqLworCWJvb2wgKCppc19pZGxlKSh2b2lkICpoYW5kbGUpOwor CS8qIHBvbGwgZm9yIGlkbGUgKi8KKwlpbnQgKCp3YWl0X2Zvcl9pZGxlKSh2b2lkICpoYW5kbGUp OworCS8qIHNvZnQgcmVzZXQgdGhlIElQIGJsb2NrICovCisJaW50ICgqc29mdF9yZXNldCkodm9p ZCAqaGFuZGxlKTsKKwkvKiBkdW1wIHRoZSBJUCBibG9jayBzdGF0dXMgcmVnaXN0ZXJzICovCisJ dm9pZCAoKnByaW50X3N0YXR1cykodm9pZCAqaGFuZGxlKTsKKwkvKiBlbmFibGUvZGlzYWJsZSBj ZyBmb3IgdGhlIElQIGJsb2NrICovCisJaW50ICgqc2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKSh2b2lk ICpoYW5kbGUsCisJCQkJICAgICBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSk7CisJ LyogZW5hYmxlL2Rpc2FibGUgcGcgZm9yIHRoZSBJUCBibG9jayAqLworCWludCAoKnNldF9wb3dl cmdhdGluZ19zdGF0ZSkodm9pZCAqaGFuZGxlLAorCQkJCSAgICAgZW51bSBhbWRfcG93ZXJnYXRp bmdfc3RhdGUgc3RhdGUpOworfTsKKworI2VuZGlmIC8qIF9fQU1EX1NIQVJFRF9IX18gKi8KLS0g CjEuOC4zLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==