From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 03/10] drm/i915: Make various init functions take dev_priv Date: Thu, 1 Dec 2016 14:16:38 +0000 Message-ID: <1480601805-14391-4-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1480601805-14391-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wj0-x243.google.com (mail-wj0-x243.google.com [IPv6:2a00:1450:400c:c01::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id D05EB6E7DD for ; Thu, 1 Dec 2016 14:16:57 +0000 (UTC) Received: by mail-wj0-x243.google.com with SMTP id jb2so26538329wjb.3 for ; Thu, 01 Dec 2016 06:16:57 -0800 (PST) In-Reply-To: <1480601805-14391-1-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkxpa2UgR0VN IGluaXQsIEdVQyBpbml0LCBNT0NTIGluaXQgYW5kIGNvbnRleHQgY3JlYXRpb24uCgpFbmFibGVz IHRoZW0gdG8gbG9zZSBkZXZfcHJpdiBsb2NhbHMuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJz dWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYyAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgMTAgKysrKy0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCAyOCArKysr KysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMgICAgfCAzMSArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgfCAxMCArKysrLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgICB8ICA1ICsrLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgICAgfCAzMyArKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAgICAgICB8ICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMgICAgICAgICAgfCAgNSArKy0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5oICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmggICAgICAgICAgICB8IDEwICsrKystLS0tLQog MTEgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgOTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggODlhZjc4ZWI1YzMyLi5hN2Y4NWJkZjhkNjYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNjAzLDkgKzYwMyw5IEBAIHN0YXRpYyBpbnQgaTkxNV9s b2FkX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChyZXQpCiAJCWdv dG8gY2xlYW51cF9pcnE7CiAKLQlpbnRlbF9ndWNfaW5pdChkZXYpOworCWludGVsX2d1Y19pbml0 KGRldl9wcml2KTsKIAotCXJldCA9IGk5MTVfZ2VtX2luaXQoZGV2KTsKKwlyZXQgPSBpOTE1X2dl bV9pbml0KGRldl9wcml2KTsKIAlpZiAocmV0KQogCQlnb3RvIGNsZWFudXBfaXJxOwogCkBAIC02 MjYsMTEgKzYyNiwxMSBAQCBzdGF0aWMgaW50IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAlyZXR1cm4gMDsKIAogY2xlYW51cF9nZW06Ci0JaWYgKGk5MTVf Z2VtX3N1c3BlbmQoZGV2KSkKKwlpZiAoaTkxNV9nZW1fc3VzcGVuZChkZXZfcHJpdikpCiAJCURS TV9FUlJPUigiZmFpbGVkIHRvIGlkbGUgaGFyZHdhcmU7IGNvbnRpbnVpbmcgdG8gdW5sb2FkIVxu Iik7CiAJaTkxNV9nZW1fZmluaShkZXZfcHJpdik7CiBjbGVhbnVwX2lycToKLQlpbnRlbF9ndWNf ZmluaShkZXYpOworCWludGVsX2d1Y19maW5pKGRldl9wcml2KTsKIAlkcm1faXJxX3VuaW5zdGFs bChkZXYpOwogCWludGVsX3RlYXJkb3duX2dtYnVzKGRldik7CiBjbGVhbnVwX2NzcjoKQEAgLTEy ODMsNyArMTI4Myw3IEBAIHZvaWQgaTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAKIAlpbnRlbF9mYmRldl9maW5pKGRldik7CiAKLQlpZiAoaTkxNV9nZW1fc3VzcGVu ZChkZXYpKQorCWlmIChpOTE1X2dlbV9zdXNwZW5kKGRldl9wcml2KSkKIAkJRFJNX0VSUk9SKCJm YWlsZWQgdG8gaWRsZSBoYXJkd2FyZTsgY29udGludWluZyB0byB1bmxvYWQhXG4iKTsKIAogCWlu dGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fSU5JVCk7CkBAIC0x MzIwLDcgKzEzMjAsNyBAQCB2b2lkIGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCS8qIEZsdXNoIGFueSBvdXRzdGFuZGluZyB1bnBpbl93b3JrLiAqLwogCWRyYWlu X3dvcmtxdWV1ZShkZXZfcHJpdi0+d3EpOwogCi0JaW50ZWxfZ3VjX2ZpbmkoZGV2KTsKKwlpbnRl bF9ndWNfZmluaShkZXZfcHJpdik7CiAJaTkxNV9nZW1fZmluaShkZXZfcHJpdik7CiAJaW50ZWxf ZmJjX2NsZWFudXBfY2ZiKGRldl9wcml2KTsKIApAQCAtMTQyNSwxNCArMTQyNSwxNCBAQCBzdGF0 aWMgaW50IGk5MTVfZHJtX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCXBjaV9z YXZlX3N0YXRlKHBkZXYpOwogCi0JZXJyb3IgPSBpOTE1X2dlbV9zdXNwZW5kKGRldik7CisJZXJy b3IgPSBpOTE1X2dlbV9zdXNwZW5kKGRldl9wcml2KTsKIAlpZiAoZXJyb3IpIHsKIAkJZGV2X2Vy cigmcGRldi0+ZGV2LAogCQkJIkdFTSBpZGxlIGZhaWxlZCwgcmVzdW1lIG1pZ2h0IGZhaWxcbiIp OwogCQlnb3RvIG91dDsKIAl9CiAKLQlpbnRlbF9ndWNfc3VzcGVuZChkZXYpOworCWludGVsX2d1 Y19zdXNwZW5kKGRldl9wcml2KTsKIAogCWludGVsX2Rpc3BsYXlfc3VzcGVuZChkZXYpOwogCkBA IC0xNTY4LDcgKzE1NjgsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCiAJaW50ZWxfY3NyX3Vjb2RlX3Jlc3VtZShkZXZfcHJpdik7CiAKLQlp OTE1X2dlbV9yZXN1bWUoZGV2KTsKKwlpOTE1X2dlbV9yZXN1bWUoZGV2X3ByaXYpOwogCiAJaTkx NV9yZXN0b3JlX3N0YXRlKGRldik7CiAJaW50ZWxfcHBzX3VubG9ja19yZWdzX3dhKGRldl9wcml2 KTsKQEAgLTE1OTEsMTMgKzE1OTEsMTMgQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAlkcm1fbW9kZV9jb25maWdfcmVzZXQoZGV2KTsKIAogCW11 dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlpZiAoaTkxNV9nZW1faW5pdF9odyhkZXYp KSB7CisJaWYgKGk5MTVfZ2VtX2luaXRfaHcoZGV2X3ByaXYpKSB7CiAJCURSTV9FUlJPUigiZmFp bGVkIHRvIHJlLWluaXRpYWxpemUgR1BVLCBkZWNsYXJpbmcgd2VkZ2VkIVxuIik7CiAJCWk5MTVf Z2VtX3NldF93ZWRnZWQoZGV2X3ByaXYpOwogCX0KIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0 X211dGV4KTsKIAotCWludGVsX2d1Y19yZXN1bWUoZGV2KTsKKwlpbnRlbF9ndWNfcmVzdW1lKGRl dl9wcml2KTsKIAogCWludGVsX21vZGVzZXRfaW5pdF9odyhkZXYpOwogCkBAIC0xNzcwLDExICsx NzcwLDEwIEBAIHN0YXRpYyB2b2lkIGVuYWJsZV9lbmdpbmVzX2lycShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAgKi8KIHZvaWQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJp di0+ZHJtOwogCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IgPSAmZGV2X3ByaXYtPmdwdV9l cnJvcjsKIAlpbnQgcmV0OwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsK IAogCWlmICghdGVzdF9hbmRfY2xlYXJfYml0KEk5MTVfUkVTRVRfSU5fUFJPR1JFU1MsICZlcnJv ci0+ZmxhZ3MpKQogCQlyZXR1cm47CkBAIC0xODE0LDcgKzE4MTMsNyBAQCB2b2lkIGk5MTVfcmVz ZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIHdhcyBydW5uaW5nIGF0 IHRoZSB0aW1lIG9mIHRoZSByZXNldCAoaS5lLiB3ZSB3ZXJlbid0IFZUCiAJICogc3dpdGNoZWQg YXdheSkuCiAJICovCi0JcmV0ID0gaTkxNV9nZW1faW5pdF9odyhkZXYpOworCXJldCA9IGk5MTVf Z2VtX2luaXRfaHcoZGV2X3ByaXYpOwogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQg aHcgaW5pdCBvbiByZXNldCAlZFxuIiwgcmV0KTsKIAkJZ290byBlcnJvcjsKQEAgLTIzMjgsNyAr MjMyNyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2Ug KmtkZXYpCiAJICovCiAJaTkxNV9nZW1fcnVudGltZV9zdXNwZW5kKGRldl9wcml2KTsKIAotCWlu dGVsX2d1Y19zdXNwZW5kKGRldik7CisJaW50ZWxfZ3VjX3N1c3BlbmQoZGV2X3ByaXYpOwogCiAJ aW50ZWxfcnVudGltZV9wbV9kaXNhYmxlX2ludGVycnVwdHMoZGV2X3ByaXYpOwogCkBAIC0yNDEz LDcgKzI0MTIsNyBAQCBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZp Y2UgKmtkZXYpCiAJaWYgKGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyhkZXZfcHJpdikpCiAJ CURSTV9ERUJVR19EUklWRVIoIlVuY2xhaW1lZCBhY2Nlc3MgZHVyaW5nIHN1c3BlbmQsIGJpb3M/ XG4iKTsKIAotCWludGVsX2d1Y19yZXN1bWUoZGV2KTsKKwlpbnRlbF9ndWNfcmVzdW1lKGRldl9w cml2KTsKIAogCWlmIChJU19HRU42KGRldl9wcml2KSkKIAkJaW50ZWxfaW5pdF9wY2hfcmVmY2xr KGRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDhiNzI1ZDEzZDI0ZS4uYmJj NmQwZjJkOGJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTMxNzcsMTQgKzMxNzcsMTQg QEAgc3RhdGljIGlubGluZSB1MzIgaTkxNV9yZXNldF9jb3VudChzdHJ1Y3QgaTkxNV9ncHVfZXJy b3IgKmVycm9yKQogdm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwogdm9pZCBpOTE1X2dlbV9zZXRfd2VkZ2VkKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7CiB2b2lkIGk5MTVfZ2VtX2NsZmx1c2hfb2JqZWN0KHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosIGJvb2wgZm9yY2UpOwotaW50IF9fbXVzdF9jaGVjayBpOTE1 X2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotaW50IF9fbXVzdF9jaGVjayBpOTE1 X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworaW50IF9fbXVzdF9jaGVjayBp OTE1X2dlbV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CitpbnQgX19t dXN0X2NoZWNrIGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKIHZvaWQgaTkxNV9nZW1faW5pdF9zd2l6emxpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9lbmdpbmVzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJdW5zaWduZWQgaW50IGZsYWdz KTsKLWludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKLXZvaWQgaTkxNV9nZW1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworaW50 IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cit2b2lkIGk5MTVfZ2VtX3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwogaW50IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1h LCBzdHJ1Y3Qgdm1fZmF1bHQgKnZtZik7CiBpbnQgaTkxNV9nZW1fb2JqZWN0X3dhaXQoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MsCkBAIC0z MjY3LDcgKzMyNjcsNyBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF9zYXZlX2JpdF8xN19zd2l6emxl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJCSBzdHJ1Y3Qgc2dfdGFibGUg KnBhZ2VzKTsKIAogLyogaTkxNV9nZW1fY29udGV4dC5jICovCi1pbnQgX19tdXN0X2NoZWNrIGk5 MTVfZ2VtX2NvbnRleHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2ludCBfX211c3Rf Y2hlY2sgaTkxNV9nZW1fY29udGV4dF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7CiB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfbG9zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwogdm9pZCBpOTE1X2dlbV9jb250ZXh0X2Zpbmkoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7CiBpbnQgaTkxNV9nZW1fY29udGV4dF9vcGVuKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCAx MGMzYjUwNWY0OWEuLmIyYTJlNTg0M2RjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC00 MTk0LDkgKzQxOTQsOSBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfa2VybmVsX2NvbnRleHRfaXNfY3Vy cmVudChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCUdFTV9CVUdfT04oZW5n aW5lLT5sYXN0X2NvbnRleHQgIT0gZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0KTsKIH0KIAotaW50 IGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK2ludCBpOTE1X2dlbV9z dXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwogCWludCByZXQ7CiAKIAlpbnRlbF9zdXNwZW5kX2d0 X3Bvd2Vyc2F2ZShkZXZfcHJpdik7CkBAIC00MjcwLDkgKzQyNzAsOSBAQCBpbnQgaTkxNV9nZW1f c3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiByZXQ7CiB9CiAKLXZvaWQg aTkxNV9nZW1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit2b2lkIGk5MTVfZ2VtX3Jl c3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAogCVdBUk5fT04oZGV2X3ByaXYtPmd0LmF3YWtlKTsK IApAQCAtNDMzNyw5ICs0MzM3LDggQEAgc3RhdGljIHZvaWQgaW5pdF91bnVzZWRfcmluZ3Moc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogfQogCiBpbnQKLWk5MTVfZ2VtX2luaXRf aHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK2k5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJ ZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJaW50IHJldDsKQEAgLTQzOTMsMTAgKzQzOTIsMTAg QEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJZ290byBvdXQ7 CiAJfQogCi0JaW50ZWxfbW9jc19pbml0X2wzY2NfdGFibGUoZGV2KTsKKwlpbnRlbF9tb2NzX2lu aXRfbDNjY190YWJsZShkZXZfcHJpdik7CiAKIAkvKiBXZSBjYW4ndCBlbmFibGUgY29udGV4dHMg dW50aWwgYWxsIGZpcm13YXJlIGlzIGxvYWRlZCAqLwotCXJldCA9IGludGVsX2d1Y19zZXR1cChk ZXYpOworCXJldCA9IGludGVsX2d1Y19zZXR1cChkZXZfcHJpdik7CiAJaWYgKHJldCkKIAkJZ290 byBvdXQ7CiAKQEAgLTQ0MjYsMTIgKzQ0MjUsMTEgQEAgYm9vbCBpbnRlbF9zYW5pdGl6ZV9zZW1h cGhvcmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbHVlKQogCXJl dHVybiB0cnVlOwogfQogCi1pbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQoraW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlp bnQgcmV0OwogCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X2xvY2so JmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAogCWlmICghaTkxNS5lbmFibGVfZXhlY2xp c3RzKSB7CiAJCWRldl9wcml2LT5ndC5yZXN1bWUgPSBpbnRlbF9sZWdhY3lfc3VibWlzc2lvbl9y ZXN1bWU7CkBAIC00NDU1LDE1ICs0NDUzLDE1IEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJaWYgKHJldCkKIAkJZ290byBvdXRfdW5sb2NrOwogCi0JcmV0ID0g aTkxNV9nZW1fY29udGV4dF9pbml0KGRldik7CisJcmV0ID0gaTkxNV9nZW1fY29udGV4dF9pbml0 KGRldl9wcml2KTsKIAlpZiAocmV0KQogCQlnb3RvIG91dF91bmxvY2s7CiAKLQlyZXQgPSBpbnRl bF9lbmdpbmVzX2luaXQoZGV2KTsKKwlyZXQgPSBpbnRlbF9lbmdpbmVzX2luaXQoZGV2X3ByaXYp OwogCWlmIChyZXQpCiAJCWdvdG8gb3V0X3VubG9jazsKIAotCXJldCA9IGk5MTVfZ2VtX2luaXRf aHcoZGV2KTsKKwlyZXQgPSBpOTE1X2dlbV9pbml0X2h3KGRldl9wcml2KTsKIAlpZiAocmV0ID09 IC1FSU8pIHsKIAkJLyogQWxsb3cgZW5naW5lIGluaXRpYWxpc2F0aW9uIHRvIGZhaWwgYnkgbWFy a2luZyB0aGUgR1BVIGFzCiAJCSAqIHdlZGdlZC4gQnV0IHdlIG9ubHkgd2FudCB0byBkbyB0aGlz IHdoZXJlIHRoZSBHUFUgaXMgYW5ncnksCkBAIC00NDc2LDcgKzQ0NzQsNyBAQCBpbnQgaTkxNV9n ZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiBvdXRfdW5sb2NrOgogCWludGVsX3Vu Y29yZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKLQltdXRleF91bmxv Y2soJmRldi0+c3RydWN0X211dGV4KTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3Ry dWN0X211dGV4KTsKIAogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmMKaW5kZXggNTI0MWI1MWRkOTg2Li5lYTg0N2U4NjUxMzcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTE2NywxMyArMTY3LDEyIEBAIHZvaWQg aTkxNV9nZW1fY29udGV4dF9mcmVlKHN0cnVjdCBrcmVmICpjdHhfcmVmKQogfQogCiBzdGF0aWMg c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgotYWxsb2NfY29udGV4dF9vYmooc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdTY0IHNpemUpCithbGxvY19jb250ZXh0X29iaihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU2NCBzaXplKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOwogCWludCByZXQ7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXYtPnN0cnVjdF9t dXRleCk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgp OwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwgc2l6ZSk7CiAJaWYg KElTX0VSUihvYmopKQpAQCAtMjYwLDEwICsyNTksOSBAQCBzdGF0aWMgaW50IGFzc2lnbl9od19p ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHVuc2lnbmVkICpvdXQpCiB9CiAK IHN0YXRpYyBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqCi1fX2NyZWF0ZV9od19jb250ZXh0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCitfX2NyZWF0ZV9od19jb250ZXh0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJICAgIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUg KmZpbGVfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKIAlpbnQgcmV0OwogCkBA IC0yODcsNyArMjg1LDcgQEAgX19jcmVhdGVfaHdfY29udGV4dChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCQlzdHJ1Y3QgaTkxNV92 bWEgKnZtYTsKIAotCQlvYmogPSBhbGxvY19jb250ZXh0X29iaihkZXYsIGRldl9wcml2LT5od19j b250ZXh0X3NpemUpOworCQlvYmogPSBhbGxvY19jb250ZXh0X29iaihkZXZfcHJpdiwgZGV2X3By aXYtPmh3X2NvbnRleHRfc2l6ZSk7CiAJCWlmIChJU19FUlIob2JqKSkgewogCQkJcmV0ID0gUFRS X0VSUihvYmopOwogCQkJZ290byBlcnJfb3V0OwpAQCAtMzUzLDIxICszNTEsMjEgQEAgX19jcmVh dGVfaHdfY29udGV4dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogICogd2VsbCBhcyBhbiBpZGxl IGNhc2UuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqCi1pOTE1X2dlbV9j cmVhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAoraTkxNV9nZW1fY3JlYXRlX2Nv bnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJc3RydWN0IGRybV9p OTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2KQogewogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHg7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJbG9j a2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JY3R4ID0g X19jcmVhdGVfaHdfY29udGV4dChkZXYsIGZpbGVfcHJpdik7CisJY3R4ID0gX19jcmVhdGVfaHdf Y29udGV4dChkZXZfcHJpdiwgZmlsZV9wcml2KTsKIAlpZiAoSVNfRVJSKGN0eCkpCiAJCXJldHVy biBjdHg7CiAKLQlpZiAoVVNFU19GVUxMX1BQR1RUKGRldikpIHsKKwlpZiAoVVNFU19GVUxMX1BQ R1RUKGRldl9wcml2KSkgewogCQlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQ7CiAKLQkJcHBn dHQgPSBpOTE1X3BwZ3R0X2NyZWF0ZSh0b19pOTE1KGRldiksIGZpbGVfcHJpdiwgY3R4LT5uYW1l KTsKKwkJcHBndHQgPSBpOTE1X3BwZ3R0X2NyZWF0ZShkZXZfcHJpdiwgZmlsZV9wcml2LCBjdHgt Pm5hbWUpOwogCQlpZiAoSVNfRVJSKHBwZ3R0KSkgewogCQkJRFJNX0RFQlVHX0RSSVZFUigiUFBH VFQgc2V0dXAgZmFpbGVkICglbGQpXG4iLAogCQkJCQkgUFRSX0VSUihwcGd0dCkpOwpAQCAtNDA3 LDcgKzQwNSw3IEBAIGk5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2d2dChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCWlmIChyZXQpCiAJCXJldHVybiBFUlJfUFRSKHJldCk7CiAKLQljdHggPSBpOTE1 X2dlbV9jcmVhdGVfY29udGV4dChkZXYsIE5VTEwpOworCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9j b250ZXh0KHRvX2k5MTUoZGV2KSwgTlVMTCk7CiAJaWYgKElTX0VSUihjdHgpKQogCQlnb3RvIG91 dDsKIApAQCAtNDMzLDkgKzQzMSw4IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfdW5w aW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAl9CiB9CiAKLWludCBpOTE1X2dlbV9j b250ZXh0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK2ludCBpOTE1X2dlbV9jb250ZXh0 X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4OwogCiAJLyogSW5pdCBzaG91bGQgb25seSBiZSBjYWxsZWQgb25jZSBwZXIg bW9kdWxlIGxvYWQuIEV2ZW50dWFsbHkgdGhlCkBAIC00NjksNyArNDY2LDcgQEAgaW50IGk5MTVf Z2VtX2NvbnRleHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQl9CiAJfQogCi0JY3R4 ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoZGV2LCBOVUxMKTsKKwljdHggPSBpOTE1X2dlbV9j cmVhdGVfY29udGV4dChkZXZfcHJpdiwgTlVMTCk7CiAJaWYgKElTX0VSUihjdHgpKSB7CiAJCURS TV9FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBkZWZhdWx0IGdsb2JhbCBjb250ZXh0IChlcnJvciAl bGQpXG4iLAogCQkJICBQVFJfRVJSKGN0eCkpOwpAQCAtNTUxLDcgKzU0OCw3IEBAIGludCBpOTE1 X2dlbV9jb250ZXh0X29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxl ICpmaWxlKQogCWlkcl9pbml0KCZmaWxlX3ByaXYtPmNvbnRleHRfaWRyKTsKIAogCW11dGV4X2xv Y2soJmRldi0+c3RydWN0X211dGV4KTsKLQljdHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChk ZXYsIGZpbGVfcHJpdik7CisJY3R4ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQodG9faTkxNShk ZXYpLCBmaWxlX3ByaXYpOwogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCiAJ aWYgKElTX0VSUihjdHgpKSB7CkBAIC0xMDM0LDcgKzEwMzEsNyBAQCBpbnQgaTkxNV9nZW1fY29u dGV4dF9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlp ZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JY3R4ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQo ZGV2LCBmaWxlX3ByaXYpOworCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHRvX2k5MTUo ZGV2KSwgZmlsZV9wcml2KTsKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlp ZiAoSVNfRVJSKGN0eCkpCiAJCXJldHVybiBQVFJfRVJSKGN0eCk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggMTAwM2I0NDMxMTJjLi43ZmE0ZTc0YzFk ZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTE0 ODUsMTEgKzE0ODUsMTAgQEAgdm9pZCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAvKioKICAqIGludGVsX2d1Y19zdXNwZW5kKCkg LSBub3RpZnkgR3VDIGVudGVyaW5nIHN1c3BlbmQgc3RhdGUKLSAqIEBkZXY6CWRybSBkZXZpY2UK KyAqIEBkZXZfcHJpdjoJaTkxNSBkZXZpY2UgcHJpdmF0ZQogICovCi1pbnQgaW50ZWxfZ3VjX3N1 c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK2ludCBpbnRlbF9ndWNfc3VzcGVuZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZk ZXZfcHJpdi0+Z3VjOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJdTMyIGRhdGFb M107CkBAIC0xNTEzLDExICsxNTEyLDEwIEBAIGludCBpbnRlbF9ndWNfc3VzcGVuZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCiAvKioKICAqIGludGVsX2d1Y19yZXN1bWUoKSAtIG5vdGlmeSBH dUMgcmVzdW1pbmcgZnJvbSBzdXNwZW5kIHN0YXRlCi0gKiBAZGV2Oglkcm0gZGV2aWNlCisgKiBA ZGV2X3ByaXY6CWk5MTUgZGV2aWNlIHByaXZhdGUKICAqLwotaW50IGludGVsX2d1Y19yZXN1bWUo c3RydWN0IGRybV9kZXZpY2UgKmRldikKK2ludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2 LT5ndWM7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKIAl1MzIgZGF0YVszXTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggMzQ4ZmFlNjIwODExLi5lOGFm ZTExODU4MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0xMTEs MTMgKzExMSwxMiBAQCBpbnRlbF9lbmdpbmVfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCiAvKioKICAqIGludGVsX2VuZ2luZXNfaW5pdCgpIC0gYWxsb2NhdGUsIHBv cHVsYXRlIGFuZCBpbml0IHRoZSBFbmdpbmUgQ29tbWFuZCBTdHJlYW1lcnMKLSAqIEBkZXY6IERS TSBkZXZpY2UuCisgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIHByaXZhdGUKICAqCiAgKiBSZXR1 cm46IG5vbi16ZXJvIGlmIHRoZSBpbml0aWFsaXphdGlvbiBmYWlsZWQuCiAgKi8KLWludCBpbnRl bF9lbmdpbmVzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK2ludCBpbnRlbF9lbmdpbmVz X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZGV2 aWNlX2luZm8gKmRldmljZV9pbmZvID0gbWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdik7CiAJ dW5zaWduZWQgaW50IHJpbmdfbWFzayA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5yaW5nX21hc2s7 CiAJdW5zaWduZWQgaW50IG1hc2sgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xv YWRlci5jCmluZGV4IDk5MjY3NDdkMTYwZi4uMjYwZmZlNWU2OTNiIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCkBAIC00MzcsNyArNDM3LDcgQEAgc3RhdGljIGludCBn dWNfaHdfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAvKioKICAq IGludGVsX2d1Y19zZXR1cCgpIC0gZmluaXNoIHByZXBhcmluZyB0aGUgR3VDIGZvciBhY3Rpdml0 eQotICogQGRldjoJZHJtIGRldmljZQorICogQGRldl9wcml2OglpOTE1IGRldmljZSBwcml2YXRl CiAgKgogICogQ2FsbGVkIGZyb20gZ2VtX2luaXRfaHcoKSBkdXJpbmcgZHJpdmVyIGxvYWRpbmcg YW5kIGFsc28gYWZ0ZXIgYSBHUFUgcmVzZXQuCiAgKgpAQCAtNDQ4LDkgKzQ0OCw4IEBAIHN0YXRp YyBpbnQgZ3VjX2h3X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAq CiAgKiBSZXR1cm46CW5vbi16ZXJvIGNvZGUgb24gZXJyb3IKICAqLwotaW50IGludGVsX2d1Y19z ZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoraW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9 ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKIAljb25zdCBjaGFyICpmd19wYXRoID0gZ3VjX2Z3LT5n dWNfZndfcGF0aDsKIAlpbnQgcmV0cmllcywgcmV0LCBlcnI7CkBAIC01ODgsMTAgKzU4NywxMCBA QCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIHJl dDsKIH0KIAotc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKK3N0YXRpYyB2b2lkIGd1Y19md19mZXRjaChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgc3RydWN0IGludGVsX2d1Y19m dyAqZ3VjX2Z3KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldi0+cGRldjsKKwlzdHJ1Y3QgcGNp X2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqOwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgPSBOVUxMOwogCXN0cnVjdCBn dWNfY3NzX2hlYWRlciAqY3NzOwpAQCAtNjc2LDkgKzY3NSw5IEBAIHN0YXRpYyB2b2lkIGd1Y19m d19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNf ZncpCiAJCQlndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jf Zm91bmQsCiAJCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQsIGd1Y19mdy0+Z3VjX2Z3X21p bm9yX3dhbnRlZCk7CiAKLQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCW9iaiA9IGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfZnJvbV9kYXRhKGRldl9wcml2LCBmdy0+ZGF0YSwgZnctPnNpemUpOwotCW11dGV4 X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwogCWlmIChJU19FUlJfT1JfTlVMTChvYmopKSB7CiAJCWVyciA9IG9i aiA/IFBUUl9FUlIob2JqKSA6IC1FTk9NRU07CiAJCWdvdG8gZmFpbDsKQEAgLTcwMCwxMiArNjk5 LDEyIEBAIHN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCiAJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IGZl dGNoIHN0YXR1cyBGQUlMOyBlcnIgJWQsIGZ3ICVwLCBvYmogJXBcbiIsCiAJCWVyciwgZncsIGd1 Y19mdy0+Z3VjX2Z3X29iaik7CiAKLQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCW9iaiA9IGd1Y19mdy0+ Z3VjX2Z3X29iajsKIAlpZiAob2JqKQogCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiAJZ3Vj X2Z3LT5ndWNfZndfb2JqID0gTlVMTDsKLQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4 KTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAogCXJlbGVh c2VfZmlybXdhcmUoZncpOwkJLyogT0sgZXZlbiBpZiBmdyBpcyBOVUxMICovCiAJZ3VjX2Z3LT5n dWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX0ZBSUw7CkBAIC03MTMsMTYgKzcxMiwx NSBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogCiAvKioKICAqIGludGVsX2d1Y19pbml0KCkgLSBk ZWZpbmUgcGFyYW1ldGVycyBhbmQgZmV0Y2ggZmlybXdhcmUKLSAqIEBkZXY6CWRybSBkZXZpY2UK KyAqIEBkZXZfcHJpdjoJaTkxNSBkZXZpY2UgcHJpdmF0ZQogICoKICAqIENhbGxlZCBlYXJseSBk dXJpbmcgZHJpdmVyIGxvYWQsIGJ1dCBhZnRlciBHRU0gaXMgaW5pdGlhbGlzZWQuCiAgKgogICog VGhlIGZpcm13YXJlIHdpbGwgYmUgdHJhbnNmZXJyZWQgdG8gdGhlIEd1QydzIG1lbW9yeSBsYXRl ciwKICAqIHdoZW4gaW50ZWxfZ3VjX3NldHVwKCkgaXMgY2FsbGVkLgogICovCi12b2lkIGludGVs X2d1Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit2b2lkIGludGVsX2d1Y19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2d1Y19mdyAqZ3Vj X2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OwogCWNvbnN0IGNoYXIgKmZ3X3BhdGg7CiAKQEAg LTc2OSw3ICs3NjcsNyBAQCB2b2lkIGludGVsX2d1Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAKIAlndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfUEVORElO RzsKIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZmlybXdhcmUgcGVuZGluZywgcGF0aCAlc1xuIiwg ZndfcGF0aCk7Ci0JZ3VjX2Z3X2ZldGNoKGRldiwgZ3VjX2Z3KTsKKwlndWNfZndfZmV0Y2goZGV2 X3ByaXYsIGd1Y19mdyk7CiAJLyogc3RhdHVzIG11c3Qgbm93IGJlIEZBSUwgb3IgU1VDQ0VTUyAq LwogfQogCkBAIC03NzcsMTIgKzc3NSwxMSBAQCB2b2lkIGludGVsX2d1Y19pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAgKiBpbnRlbF9ndWNfZmluaSgpIC0gY2xlYW4gdXAgYWxsIGFsbG9j YXRlZCByZXNvdXJjZXMKICAqIEBkZXY6CWRybSBkZXZpY2UKICAqLwotdm9pZCBpbnRlbF9ndWNf ZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQordm9pZCBpbnRlbF9ndWNfZmluaShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9 ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKIAotCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4 KTsKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJZ3VjX2ludGVy cnVwdHNfcmVsZWFzZShkZXZfcHJpdik7CiAJaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKGRl dl9wcml2KTsKIAlpOTE1X2d1Y19zdWJtaXNzaW9uX2ZpbmkoZGV2X3ByaXYpOwpAQCAtNzkwLDcg Kzc4Nyw3IEBAIHZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlp ZiAoZ3VjX2Z3LT5ndWNfZndfb2JqKQogCQlpOTE1X2dlbV9vYmplY3RfcHV0KGd1Y19mdy0+Z3Vj X2Z3X29iaik7CiAJZ3VjX2Z3LT5ndWNfZndfb2JqID0gTlVMTDsKLQltdXRleF91bmxvY2soJmRl di0+c3RydWN0X211dGV4KTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211 dGV4KTsKIAogCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9OT05F OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAppbmRleCBjMWY1NDYxODBiYTIuLjdjNjQwMzI0 MzM5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBp bnRlbF9sb2dpY2FsX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp OwogaW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpOwogaW50IGxvZ2ljYWxfeGNzX3JpbmdfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpOwogCi1pbnQgaW50ZWxfZW5naW5lc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOworaW50IGludGVsX2VuZ2luZXNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwogCiAvKiBMb2dpY2FsIFJpbmcgQ29udGV4dHMgKi8KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbW9jcy5jCmluZGV4IDgwYmI5MjQ3Y2U2Ni4uNGY4ODI5YzA4NDVlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbW9jcy5jCkBAIC0zODAsNyArMzgwLDcgQEAgc3RhdGljIGludCBlbWl0X21vY3Nf bDNjY190YWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAogLyoqCiAgKiBp bnRlbF9tb2NzX2luaXRfbDNjY190YWJsZSgpIC0gcHJvZ3JhbSB0aGUgbW9jcyBjb250cm9sIHRh YmxlCi0gKiBAZGV2OiAgICAgIFRoZSB0aGUgZGV2aWNlIHRvIGJlIHByb2dyYW1tZWQuCisgKiBA ZGV2X3ByaXY6ICAgICAgaTkxNSBkZXZpY2UgcHJpdmF0ZQogICoKICAqIFRoaXMgZnVuY3Rpb24g c2ltcGx5IHByb2dyYW1zIHRoZSBtb2NzIHJlZ2lzdGVycyBmb3IgdGhlIGdpdmVuIHRhYmxlCiAg KiBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gYWRkcmVzcy4gVGhpcyByZWdpc3RlciBzZXQgaXMgIHBy b2dyYW1tZWQgaW4gcGFpcnMuCkBAIC0zOTIsOSArMzkyLDggQEAgc3RhdGljIGludCBlbWl0X21v Y3NfbDNjY190YWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKICAqCiAgKiBS ZXR1cm46IE5vdGhpbmcuCiAgKi8KLXZvaWQgaW50ZWxfbW9jc19pbml0X2wzY2NfdGFibGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKK3ZvaWQgaW50ZWxfbW9jc19pbml0X2wzY2NfdGFibGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJs ZSB0YWJsZTsKIAl1bnNpZ25lZCBpbnQgaTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbW9jcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5oCmlu ZGV4IGE4YmQ5ZjdiZmVjZS4uY2U0YTVkZmE1Zjk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9tb2NzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9j cy5oCkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAogaW50IGludGVs X3Jjc19jb250ZXh0X2luaXRfbW9jcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7 Ci12b2lkIGludGVsX21vY3NfaW5pdF9sM2NjX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owordm9pZCBpbnRlbF9tb2NzX2luaXRfbDNjY190YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwogaW50IGludGVsX21vY3NfaW5pdF9lbmdpbmUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF91Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaAppbmRleCA4 NTA3YThmMzViNzIuLjExZjU2MDgyYjM2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfdWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCkBAIC0x NzgsMTIgKzE3OCwxMiBAQCBpbnQgaW50ZWxfZ3VjX2xvZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpOwogaW50IGludGVsX2d1Y19sb2dfY29udHJvbChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMs IHUzMiBjb250cm9sX3ZhbCk7CiAKIC8qIGludGVsX2d1Y19sb2FkZXIuYyAqLwotZXh0ZXJuIHZv aWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IGlu dGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIGludGVs X2d1Y19maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgaW50ZWxfZ3Vj X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK2V4dGVybiBpbnQgaW50 ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CitleHRlcm4g dm9pZCBpbnRlbF9ndWNfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwog ZXh0ZXJuIGNvbnN0IGNoYXIgKmludGVsX2d1Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVsX2d1 Y19md19zdGF0dXMgc3RhdHVzKTsKLWV4dGVybiBpbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7CitleHRlcm4gaW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7CitleHRlcm4gaW50IGludGVsX2d1Y19yZXN1bWUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIAogLyogaTkxNV9ndWNfc3VibWlzc2lv bi5jICovCiBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==