From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anusha Srivatsa Subject: [PATCH 1/8] drm/i915/guc: Make the GuC fw loading helper functions general. Always initialize action_lock Date: Wed, 23 Nov 2016 14:27:36 -0800 Message-ID: <1479940063-2961-2-git-send-email-anusha.srivatsa@intel.com> References: <1479940063-2961-1-git-send-email-anusha.srivatsa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 93E796E8D4 for ; Wed, 23 Nov 2016 22:27:51 +0000 (UTC) In-Reply-To: <1479940063-2961-1-git-send-email-anusha.srivatsa@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 Cc: Alex Dai , Peter Antoine List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGV0ZXIgQW50b2luZSA8cGV0ZXIuYW50b2luZUBpbnRlbC5jb20+CgpSZW5hbWUgc29t ZSBvZiB0aGUgR3VDIGZ3IGxvYWRpbmcgY29kZSB0byBtYWtlIHRoZW0gbW9yZSBnZW5lcmFsLiBX ZQp3aWxsIHV0aWxpc2UgdGhlbSBmb3IgSHVDIGxvYWRpbmcgYXMgd2VsbC4KICAgICBzL2ludGVs X2d1Y19mdy9pbnRlbF91Y19mdy9nCiAgICAgcy9HVUNfRklSTVdBUkUvVUNfRklSTVdBUkUvZwoK U3RydWN0IGludGVsX2d1Y19mdyBpcyByZW5hbWVkIHRvIGludGVsX3VjX2Z3LiBQcmVmaXggb2Yg dHRzIG1lbWJlcnMsCnN1Y2ggYXMgJ2d1Yycgb3IgJ2d1Y19mdycgZWl0aGVyIGlzIHJlbmFtZWQg dG8gJ3VjJyBvciByZW1vdmVkIGZvcgpzYW1lIHB1cnBvc2UuCgpBY3Rpb24gbG9jayBpcyBub3Qg YmVpbmcgaW5pdGlhbGl6ZWQgaWYgdGhlIEd1QyBzdWJtaXNzaW9uIGlzIGRpc2FibGVkCihpLmUu IGk5MTUuZ3VjX3N1Ym1pc3Npb249MCkuCgpob3N0Mmd1Y19hY3Rpb24oKSwgd2hpY2ggdXNlcyB0 aGUgYWN0aW9uX2xvY2sgY2FuIGJlIHVzZWQgZm9yCm5vbi1zdWJtaXNzaW9uIHB1cnBvc2VzLCBl LmcuIHRyaWdnZXJpbmcgSHVDIGF1dGhlbnRpY2F0aW9uLgoKTW92aW5nIGFjdGlvbl9sb2NrIGlu aXRpYWxpemF0aW9uIGJlZm9yZSBlbmFibGVtZW50IGNoZWNrIHdpbGwgYWxsb3cgdXMKdG8gdXNl IHRoZSBob3N0Mmd1Y19hY3Rpb24gbm8gbWF0dGVyIHdoZXRoZXIgc3VibWlzc2lvbiBpcyBlbmFi bGVkIG9yCm5vdC4KCnYyOiByZWJhc2VkIG9uIHRvcCBvZiBuaWdodGx5LgogICAgcmVhcHBsaWVk IHRoZSBzZWFyY2gvcmVwbGFjZSBhcyB1cHN0cmVhbSBjb2RlIGFzIGNoYW5nZWQuCnYzOiByZWJh c2VkIGFnYWluIG9uIGRybS1uaWdodGx5Lgp2NDogcmVtb3ZlZCBHIGZyb20gbWVzc2FnZXMgaW4g c2hhcmVkIGZ3IGZldGNoIGZ1bmN0aW9uLgp2NTogcmViYXNlZC4Kdjc6IHJlYmFzZWQuCnY4OiBy ZWJhc2VkLgp2OTogcmViYXNlZC4KdjEwOiByZWJhc2VkLgp2MTE6IHJlYmFzZWQuIEFkZGVkIHRo ZSBhY3Rpb25fbG9jayBpbml0aWFsaXphdGlvbiBmaXggcHJvdmlkZWQKYnkgQXJpY2sgPGFya2Fk aXVzei5oaWxlckBpbnRlbC5jb20+CgpTaWduZWQtb2ZmLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFu dXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlA aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBBbnRvaW5lIDxwZXRlci5hbnRvaW5lQGlu dGVsLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5j b20+ClJldmlld2VkLWJ5OiBKZWZmIE1jR2VlIDxqZWZmLm1jZ2VlQGludGVsLmNvbT4KUmV2aWV3 ZWQtYnk6IENhcmxvcyBTYW50YSA8Y2FybG9zLnNhbnRhQGludGVsLmNvbT4KVGVzdGVkLWJ5OiBD YXJsb3MgU2FudGEgPGNhcmxvcy5zYW50YUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFya2Fk aXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgfCAgMTIgKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Yy5oICAgICAgICAgICB8ICAzOCArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWNfbG9hZGVyLmMgICAgfCAxNTUgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0KIDQgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKyksIDEwNCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDM3OTlhMTIuLjUzMzA1YTQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0yMzU4LDcgKzIzNTgsNyBAQCBzdGF0 aWMgaW50IGk5MTVfbGxjKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIHN0YXRpYyBp bnQgaTkxNV9ndWNfbG9hZF9zdGF0dXNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRh dGEpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1 KG0tPnByaXZhdGUpOwotCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+ Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3Vj Lmd1Y19mdzsKIAl1MzIgdG1wLCBpOwogCiAJaWYgKCFIQVNfR1VDX1VDT0RFKGRldl9wcml2KSkK QEAgLTIzNjYsMTUgKzIzNjYsMTUgQEAgc3RhdGljIGludCBpOTE1X2d1Y19sb2FkX3N0YXR1c19p bmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAogCXNlcV9wcmludGYobSwgIkd1 QyBmaXJtd2FyZSBzdGF0dXM6XG4iKTsKIAlzZXFfcHJpbnRmKG0sICJcdHBhdGg6ICVzXG4iLAot CQlndWNfZnctPmd1Y19md19wYXRoKTsKKwkJZ3VjX2Z3LT51Y19md19wYXRoKTsKIAlzZXFfcHJp bnRmKG0sICJcdGZldGNoOiAlc1xuIiwKLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19m dy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cykpOworCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNf ZnctPmZldGNoX3N0YXR1cykpOwogCXNlcV9wcmludGYobSwgIlx0bG9hZDogJXNcbiIsCi0JCWlu dGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cykpOworCQlp bnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmxvYWRfc3RhdHVzKSk7CiAJc2VxX3ByaW50 ZihtLCAiXHR2ZXJzaW9uIHdhbnRlZDogJWQuJWRcbiIsCi0JCWd1Y19mdy0+Z3VjX2Z3X21ham9y X3dhbnRlZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkKTsKKwkJZ3VjX2Z3LT5tYWpvcl92 ZXJfd2FudGVkLCBndWNfZnctPm1pbm9yX3Zlcl93YW50ZWQpOwogCXNlcV9wcmludGYobSwgIlx0 dmVyc2lvbiBmb3VuZDogJWQuJWRcbiIsCi0JCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kLCBn dWNfZnctPmd1Y19md19taW5vcl9mb3VuZCk7CisJCWd1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCBn dWNfZnctPm1pbm9yX3Zlcl9mb3VuZCk7CiAJc2VxX3ByaW50ZihtLCAiXHRoZWFkZXI6IG9mZnNl dCBpcyAlZDsgc2l6ZSA9ICVkXG4iLAogCQlndWNfZnctPmhlYWRlcl9vZmZzZXQsIGd1Y19mdy0+ aGVhZGVyX3NpemUpOwogCXNlcV9wcmludGYobSwgIlx0dUNvZGU6IG9mZnNldCBpcyAlZDsgc2l6 ZSA9ICVkXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3Vi bWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmlu ZGV4IDQ0NjIxMTIuLjk5NDdhNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19z dWJtaXNzaW9uLmMKQEAgLTE0ODQsNiArMTQ4NCw4IEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9u X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpbnRlbF9n dWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCisJbXV0 ZXhfaW5pdCgmZ3VjLT5hY3Rpb25fbG9jayk7CisKIAkvKiBXaXBlIGJpdG1hcCAmIGRlbGV0ZSBj bGllbnQgaW4gY2FzZSBvZiByZWluaXRpYWxpc2F0aW9uICovCiAJYml0bWFwX2NsZWFyKGd1Yy0+ ZG9vcmJlbGxfYml0bWFwLCAwLCBHVUNfTUFYX0RPT1JCRUxMUyk7CiAJaTkxNV9ndWNfc3VibWlz c2lvbl9kaXNhYmxlKGRldl9wcml2KTsKQEAgLTE1MDAsNyArMTUwMiw2IEBAIGludCBpOTE1X2d1 Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJ Z3VjLT5jdHhfcG9vbF92bWEgPSB2bWE7CiAJaWRhX2luaXQoJmd1Yy0+Y3R4X2lkcyk7Ci0JbXV0 ZXhfaW5pdCgmZ3VjLT5hY3Rpb25fbG9jayk7CiAJZ3VjX2xvZ19jcmVhdGUoZ3VjKTsKIAlndWNf YWRkb25fY3JlYXRlKGd1Yyk7CiAKQEAgLTE1ODMsNyArMTU4NCw3IEBAIGludCBpbnRlbF9ndWNf c3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHg7CiAJdTMyIGRhdGFbM107CiAKLQlpZiAoZ3VjLT5ndWNfZncuZ3VjX2Z3X2xvYWRfc3Rh dHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNTKQorCWlmIChndWMtPmd1Y19mdy5sb2FkX3N0YXR1 cyAhPSBVQ19GSVJNV0FSRV9TVUNDRVNTKQogCQlyZXR1cm4gMDsKIAogCWdlbjlfZGlzYWJsZV9n dWNfaW50ZXJydXB0cyhkZXZfcHJpdik7CkBAIC0xNjExLDcgKzE2MTIsNyBAQCBpbnQgaW50ZWxf Z3VjX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0ICpjdHg7CiAJdTMyIGRhdGFbM107CiAKLQlpZiAoZ3VjLT5ndWNfZncuZ3VjX2Z3X2xvYWRf c3RhdHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNTKQorCWlmIChndWMtPmd1Y19mdy5sb2FkX3N0 YXR1cyAhPSBVQ19GSVJNV0FSRV9TVUNDRVNTKQogCQlyZXR1cm4gMDsKIAogCWlmIChpOTE1Lmd1 Y19sb2dfbGV2ZWwgPj0gMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKaW5kZXggMDIzMzdhOC4u NmRjMzI4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKQEAgLTkxLDI4ICs5MSwyOSBAQCBz dHJ1Y3QgaTkxNV9ndWNfY2xpZW50IHsKIAl1aW50NjRfdCBzdWJtaXNzaW9uc1tJOTE1X05VTV9F TkdJTkVTXTsKIH07CiAKLWVudW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cyB7Ci0JR1VDX0ZJUk1XQVJF X0ZBSUwgPSAtMSwKLQlHVUNfRklSTVdBUkVfTk9ORSA9IDAsCi0JR1VDX0ZJUk1XQVJFX1BFTkRJ TkcsCi0JR1VDX0ZJUk1XQVJFX1NVQ0NFU1MKK2VudW0gaW50ZWxfdWNfZndfc3RhdHVzIHsKKwlV Q19GSVJNV0FSRV9GQUlMID0gLTEsCisJVUNfRklSTVdBUkVfTk9ORSA9IDAsCisJVUNfRklSTVdB UkVfUEVORElORywKKwlVQ19GSVJNV0FSRV9TVUNDRVNTCiB9OwogCiAvKgogICogVGhpcyBzdHJ1 Y3R1cmUgZW5jYXBzdWxhdGVzIGFsbCB0aGUgZGF0YSBuZWVkZWQgZHVyaW5nIHRoZSBwcm9jZXNz CiAgKiBvZiBmZXRjaGluZywgY2FjaGluZywgYW5kIGxvYWRpbmcgdGhlIGZpcm13YXJlIGltYWdl IGludG8gdGhlIEd1Qy4KICAqLwotc3RydWN0IGludGVsX2d1Y19mdyB7Ci0JY29uc3QgY2hhciAq CQkJZ3VjX2Z3X3BhdGg7Ci0Jc2l6ZV90CQkJCWd1Y19md19zaXplOwotCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICoJZ3VjX2Z3X29iajsKLQllbnVtIGludGVsX2d1Y19md19zdGF0dXMJZ3Vj X2Z3X2ZldGNoX3N0YXR1czsKLQllbnVtIGludGVsX2d1Y19md19zdGF0dXMJZ3VjX2Z3X2xvYWRf c3RhdHVzOwotCi0JdWludDE2X3QJCQlndWNfZndfbWFqb3Jfd2FudGVkOwotCXVpbnQxNl90CQkJ Z3VjX2Z3X21pbm9yX3dhbnRlZDsKLQl1aW50MTZfdAkJCWd1Y19md19tYWpvcl9mb3VuZDsKLQl1 aW50MTZfdAkJCWd1Y19md19taW5vcl9mb3VuZDsKK3N0cnVjdCBpbnRlbF91Y19mdyB7CisJc3Ry dWN0IGRybV9kZXZpY2UgKnVjX2RldjsKKwljb25zdCBjaGFyICp1Y19md19wYXRoOworCXNpemVf dCB1Y19md19zaXplOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICp1Y19md19vYmo7CisJ ZW51bSBpbnRlbF91Y19md19zdGF0dXMgZmV0Y2hfc3RhdHVzOworCWVudW0gaW50ZWxfdWNfZndf c3RhdHVzIGxvYWRfc3RhdHVzOworCisJdWludDE2X3QgbWFqb3JfdmVyX3dhbnRlZDsKKwl1aW50 MTZfdCBtaW5vcl92ZXJfd2FudGVkOworCXVpbnQxNl90IG1ham9yX3Zlcl9mb3VuZDsKKwl1aW50 MTZfdCBtaW5vcl92ZXJfZm91bmQ7CiAKIAl1aW50MzJfdCBoZWFkZXJfc2l6ZTsKIAl1aW50MzJf dCBoZWFkZXJfb2Zmc2V0OwpAQCAtMTM5LDcgKzE0MCw3IEBAIHN0cnVjdCBpbnRlbF9ndWNfbG9n IHsKIH07CiAKIHN0cnVjdCBpbnRlbF9ndWMgewotCXN0cnVjdCBpbnRlbF9ndWNfZncgZ3VjX2Z3 OworCXN0cnVjdCBpbnRlbF91Y19mdyBndWNfZnc7CiAJc3RydWN0IGludGVsX2d1Y19sb2cgbG9n OwogCiAJLyogR3VDMkhvc3QgaW50ZXJydXB0IHJlbGF0ZWQgc3RhdGUgKi8KQEAgLTE3Miw5ICsx NzMsMTAgQEAgc3RydWN0IGludGVsX2d1YyB7CiBleHRlcm4gdm9pZCBpbnRlbF9ndWNfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogZXh0ZXJuIHZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7Ci1leHRlcm4gY29uc3QgY2hhciAqaW50ZWxfZ3VjX2Z3X3N0YXR1c19y ZXByKGVudW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cyBzdGF0dXMpOworZXh0ZXJuIGNvbnN0IGNoYXIg KmludGVsX3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHN0YXR1cyk7 CiBleHRlcm4gaW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwog ZXh0ZXJuIGludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwordm9p ZCBpbnRlbF91Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxf dWNfZncgKnVjX2Z3KTsKIAogLyogaTkxNV9ndWNfc3VibWlzc2lvbi5jICovCiBpbnQgaTkxNV9n dWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKaW5kZXggZTJkMGJkYS4uYzFiNTNh NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwpAQCAtODEsMTYgKzgx LDE2IEBAIE1PRFVMRV9GSVJNV0FSRShJOTE1X0JYVF9HVUNfVUNPREUpOwogTU9EVUxFX0ZJUk1X QVJFKEk5MTVfS0JMX0dVQ19VQ09ERSk7CiAKIC8qIFVzZXItZnJpZW5kbHkgcmVwcmVzZW50YXRp b24gb2YgYW4gZW51bSAqLwotY29uc3QgY2hhciAqaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGVu dW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cyBzdGF0dXMpCitjb25zdCBjaGFyICppbnRlbF91Y19md19z dGF0dXNfcmVwcihlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpCiB7CiAJc3dpdGNoIChz dGF0dXMpIHsKLQljYXNlIEdVQ19GSVJNV0FSRV9GQUlMOgorCWNhc2UgVUNfRklSTVdBUkVfRkFJ TDoKIAkJcmV0dXJuICJGQUlMIjsKLQljYXNlIEdVQ19GSVJNV0FSRV9OT05FOgorCWNhc2UgVUNf RklSTVdBUkVfTk9ORToKIAkJcmV0dXJuICJOT05FIjsKLQljYXNlIEdVQ19GSVJNV0FSRV9QRU5E SU5HOgorCWNhc2UgVUNfRklSTVdBUkVfUEVORElORzoKIAkJcmV0dXJuICJQRU5ESU5HIjsKLQlj YXNlIEdVQ19GSVJNV0FSRV9TVUNDRVNTOgorCWNhc2UgVUNfRklSTVdBUkVfU1VDQ0VTUzoKIAkJ cmV0dXJuICJTVUNDRVNTIjsKIAlkZWZhdWx0OgogCQlyZXR1cm4gIlVOS05PV04hIjsKQEAgLTI3 OCw3ICsyNzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZ3VjX3Vjb2RlX3Jlc3BvbnNlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXJf ZG1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIHN0cnVjdCBp OTE1X3ZtYSAqdm1hKQogewotCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJp di0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+ Z3VjLmd1Y19mdzsKIAl1bnNpZ25lZCBsb25nIG9mZnNldDsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnNn ID0gdm1hLT5wYWdlczsKIAl1MzIgc3RhdHVzLCByc2FbVU9TX1JTQV9TQ1JBVENIX01BWF9DT1VO VF07CkBAIC0zNTAsMTcgKzM1MCwxNyBAQCBzdGF0aWMgdTMyIGd1Y193b3BjbV9zaXplKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqLwogc3RhdGljIGludCBndWNfdWNvZGVf eGZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGludGVs X2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OworCXN0cnVjdCBpbnRlbF91 Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OwogCXN0cnVjdCBpOTE1X3ZtYSAq dm1hOwogCWludCByZXQ7CiAKLQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21h aW4oZ3VjX2Z3LT5ndWNfZndfb2JqLCBmYWxzZSk7CisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3Nl dF90b19ndHRfZG9tYWluKGd1Y19mdy0+dWNfZndfb2JqLCBmYWxzZSk7CiAJaWYgKHJldCkgewog CQlEUk1fREVCVUdfRFJJVkVSKCJzZXQtZG9tYWluIGZhaWxlZCAlZFxuIiwgcmV0KTsKIAkJcmV0 dXJuIHJldDsKIAl9CiAKLQl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oZ3VjX2Z3LT5n dWNfZndfb2JqLCBOVUxMLCAwLCAwLCAwKTsKKwl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9w aW4oZ3VjX2Z3LT51Y19md19vYmosIE5VTEwsIDAsIDAsIDApOwogCWlmIChJU19FUlIodm1hKSkg ewogCQlEUk1fREVCVUdfRFJJVkVSKCJwaW4gZmFpbGVkICVkXG4iLCAoaW50KVBUUl9FUlIodm1h KSk7CiAJCXJldHVybiBQVFJfRVJSKHZtYSk7CkBAIC00NTEsMTQgKzQ1MSwxNCBAQCBzdGF0aWMg aW50IGd1Y19od19yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBpbnQg aW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpbnRlbF9ndWNf ZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKLQljb25zdCBjaGFyICpmd19wYXRo ID0gZ3VjX2Z3LT5ndWNfZndfcGF0aDsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZk ZXZfcHJpdi0+Z3VjLmd1Y19mdzsKKwljb25zdCBjaGFyICpmd19wYXRoID0gZ3VjX2Z3LT51Y19m d19wYXRoOwogCWludCByZXRyaWVzLCByZXQsIGVycjsKIAogCURSTV9ERUJVR19EUklWRVIoIkd1 QyBmdyBzdGF0dXM6IHBhdGggJXMsIGZldGNoICVzLCBsb2FkICVzXG4iLAogCQlmd19wYXRoLAot CQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwK LQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7 CisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJaW50 ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwogCiAJLyogTG9hZGlu ZyBmb3JiaWRkZW4sIG9yIG5vIGZpcm13YXJlIHRvIGxvYWQ/ICovCiAJaWYgKCFpOTE1LmVuYWJs ZV9ndWNfbG9hZGluZykgewpAQCAtNDc2LDEwICs0NzYsMTAgQEAgaW50IGludGVsX2d1Y19zZXR1 cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCX0KIAogCS8qIEZldGNoIGZhaWxlZCwgb3IgYWxy ZWFkeSBmZXRjaGVkIGJ1dCBmYWlsZWQgdG8gbG9hZD8gKi8KLQlpZiAoZ3VjX2Z3LT5ndWNfZndf ZmV0Y2hfc3RhdHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNTKSB7CisJaWYgKGd1Y19mdy0+ZmV0 Y2hfc3RhdHVzICE9IFVDX0ZJUk1XQVJFX1NVQ0NFU1MpIHsKIAkJZXJyID0gLUVJTzsKIAkJZ290 byBmYWlsOwotCX0gZWxzZSBpZiAoZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPT0gR1VDX0ZJ Uk1XQVJFX0ZBSUwpIHsKKwl9IGVsc2UgaWYgKGd1Y19mdy0+bG9hZF9zdGF0dXMgPT0gVUNfRklS TVdBUkVfRkFJTCkgewogCQllcnIgPSAtRU5PRVhFQzsKIAkJZ290byBmYWlsOwogCX0KQEAgLTQ4 NywxMSArNDg3LDExIEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAlndWNfaW50ZXJydXB0c19yZWxlYXNlKGRldl9wcml2KTsKIAlnZW45X3Jlc2V0X2d1Y19p bnRlcnJ1cHRzKGRldl9wcml2KTsKIAotCWd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID0gR1VD X0ZJUk1XQVJFX1BFTkRJTkc7CisJZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1BF TkRJTkc7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3RhdHVzOiBmZXRjaCAlcywgbG9h ZCAlc1xuIiwKLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNo X3N0YXR1cyksCi0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1Y19md19sb2Fk X3N0YXR1cykpOworCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmZldGNoX3N0YXR1 cyksCisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+bG9hZF9zdGF0dXMpKTsKIAog CWVyciA9IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChkZXZfcHJpdik7CiAJaWYgKGVycikKQEAg LTUyMywxMSArNTIzLDExIEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAkJCSAicmV0cnkgJWQgbW9yZSB0aW1lKHMpXG4iLCBlcnIsIHJldHJpZXMpOwogCX0K IAotCWd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1M7CisJ Z3VjX2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1NVQ0NFU1M7CiAKIAlEUk1fREVCVUdf RFJJVkVSKCJHdUMgZncgc3RhdHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKLQkJaW50ZWxfZ3Vj X2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyksCi0JCWludGVsX2d1 Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cykpOworCQlpbnRlbF91 Y19md19zdGF0dXNfcmVwcihndWNfZnctPmZldGNoX3N0YXR1cyksCisJCWludGVsX3VjX2Z3X3N0 YXR1c19yZXByKGd1Y19mdy0+bG9hZF9zdGF0dXMpKTsKIAogCWlmIChpOTE1LmVuYWJsZV9ndWNf c3VibWlzc2lvbikgewogCQlpZiAoaTkxNS5ndWNfbG9nX2xldmVsID49IDApCkBAIC01NDIsOCAr NTQyLDggQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJl dHVybiAwOwogCiBmYWlsOgotCWlmIChndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cyA9PSBHVUNf RklSTVdBUkVfUEVORElORykKLQkJZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPSBHVUNfRklS TVdBUkVfRkFJTDsKKwlpZiAoZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9PSBVQ19GSVJNV0FSRV9QRU5E SU5HKQorCQlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVfRkFJTDsKIAogCWd1Y19p bnRlcnJ1cHRzX3JlbGVhc2UoZGV2X3ByaXYpOwogCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZGlzYWJs ZShkZXZfcHJpdik7CkBAIC01ODgsNyArNTg4LDcgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGd1Y19m d19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNf ZncpCit2b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBpbnRlbF91Y19mdyAqdWNfZncpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXYtPnBk ZXY7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKQEAgLTU5NywxNyArNTk3LDE3 IEBAIHN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCiAJc2l6ZV90IHNpemU7CiAJaW50IGVycjsKIAotCURS TV9ERUJVR19EUklWRVIoImJlZm9yZSByZXF1ZXN0aW5nIGZpcm13YXJlOiBHdUMgZncgZmV0Y2gg c3RhdHVzICVzXG4iLAotCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndf ZmV0Y2hfc3RhdHVzKSk7CisJRFJNX0RFQlVHX0RSSVZFUigiYmVmb3JlIHJlcXVlc3RpbmcgZmly bXdhcmU6IHVDIGZ3IGZldGNoIHN0YXR1cyAlc1xuIiwKKwkJaW50ZWxfdWNfZndfc3RhdHVzX3Jl cHIodWNfZnctPmZldGNoX3N0YXR1cykpOwogCi0JZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmZncs IGd1Y19mdy0+Z3VjX2Z3X3BhdGgsICZwZGV2LT5kZXYpOworCWVyciA9IHJlcXVlc3RfZmlybXdh cmUoJmZ3LCB1Y19mdy0+dWNfZndfcGF0aCwgJnBkZXYtPmRldik7CiAJaWYgKGVycikKIAkJZ290 byBmYWlsOwogCWlmICghZncpCiAJCWdvdG8gZmFpbDsKIAotCURSTV9ERUJVR19EUklWRVIoImZl dGNoIEd1QyBmdyBmcm9tICVzIHN1Y2NlZWRlZCwgZncgJXBcbiIsCi0JCWd1Y19mdy0+Z3VjX2Z3 X3BhdGgsIGZ3KTsKKwlEUk1fREVCVUdfRFJJVkVSKCJmZXRjaCB1QyBmdyBmcm9tICVzIHN1Y2Nl ZWRlZCwgZncgJXBcbiIsCisJCXVjX2Z3LT51Y19md19wYXRoLCBmdyk7CiAKIAkvKiBDaGVjayB0 aGUgc2l6ZSBvZiB0aGUgYmxvYiBiZWZvcmUgZXhhbWluaW5nIGJ1ZmZlciBjb250ZW50cyAqLwog CWlmIChmdy0+c2l6ZSA8IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIpKSB7CkBAIC02MTgs MzYgKzYxOCwzNiBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogCWNzcyA9IChzdHJ1Y3QgZ3VjX2Nz c19oZWFkZXIgKilmdy0+ZGF0YTsKIAogCS8qIEZpcm13YXJlIGJpdHMgYWx3YXlzIHN0YXJ0IGZy b20gaGVhZGVyICovCi0JZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0ID0gMDsKLQlndWNfZnctPmhlYWRl cl9zaXplID0gKGNzcy0+aGVhZGVyX3NpemVfZHcgLSBjc3MtPm1vZHVsdXNfc2l6ZV9kdyAtCisJ dWNfZnctPmhlYWRlcl9vZmZzZXQgPSAwOworCXVjX2Z3LT5oZWFkZXJfc2l6ZSA9IChjc3MtPmhl YWRlcl9zaXplX2R3IC0gY3NzLT5tb2R1bHVzX3NpemVfZHcgLQogCQljc3MtPmtleV9zaXplX2R3 IC0gY3NzLT5leHBvbmVudF9zaXplX2R3KSAqIHNpemVvZih1MzIpOwogCi0JaWYgKGd1Y19mdy0+ aGVhZGVyX3NpemUgIT0gc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikpIHsKKwlpZiAodWNf ZnctPmhlYWRlcl9zaXplICE9IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIpKSB7CiAJCURS TV9OT1RFKCJDU1MgaGVhZGVyIGRlZmluaXRpb24gbWlzbWF0Y2hcbiIpOwogCQlnb3RvIGZhaWw7 CiAJfQogCiAJLyogdGhlbiwgdUNvZGUgKi8KLQlndWNfZnctPnVjb2RlX29mZnNldCA9IGd1Y19m dy0+aGVhZGVyX29mZnNldCArIGd1Y19mdy0+aGVhZGVyX3NpemU7Ci0JZ3VjX2Z3LT51Y29kZV9z aXplID0gKGNzcy0+c2l6ZV9kdyAtIGNzcy0+aGVhZGVyX3NpemVfZHcpICogc2l6ZW9mKHUzMik7 CisJdWNfZnctPnVjb2RlX29mZnNldCA9IHVjX2Z3LT5oZWFkZXJfb2Zmc2V0ICsgdWNfZnctPmhl YWRlcl9zaXplOworCXVjX2Z3LT51Y29kZV9zaXplID0gKGNzcy0+c2l6ZV9kdyAtIGNzcy0+aGVh ZGVyX3NpemVfZHcpICogc2l6ZW9mKHUzMik7CiAKIAkvKiBub3cgUlNBICovCiAJaWYgKGNzcy0+ a2V5X3NpemVfZHcgIT0gVU9TX1JTQV9TQ1JBVENIX01BWF9DT1VOVCkgewogCQlEUk1fTk9URSgi UlNBIGtleSBzaXplIGlzIGJhZFxuIik7CiAJCWdvdG8gZmFpbDsKIAl9Ci0JZ3VjX2Z3LT5yc2Ff b2Zmc2V0ID0gZ3VjX2Z3LT51Y29kZV9vZmZzZXQgKyBndWNfZnctPnVjb2RlX3NpemU7Ci0JZ3Vj X2Z3LT5yc2Ffc2l6ZSA9IGNzcy0+a2V5X3NpemVfZHcgKiBzaXplb2YodTMyKTsKKwl1Y19mdy0+ cnNhX29mZnNldCA9IHVjX2Z3LT51Y29kZV9vZmZzZXQgKyB1Y19mdy0+dWNvZGVfc2l6ZTsKKwl1 Y19mdy0+cnNhX3NpemUgPSBjc3MtPmtleV9zaXplX2R3ICogc2l6ZW9mKHUzMik7CiAKIAkvKiBB dCBsZWFzdCwgaXQgc2hvdWxkIGhhdmUgaGVhZGVyLCB1Q29kZSBhbmQgUlNBLiBTaXplIG9mIGFs bCB0aHJlZS4gKi8KLQlzaXplID0gZ3VjX2Z3LT5oZWFkZXJfc2l6ZSArIGd1Y19mdy0+dWNvZGVf c2l6ZSArIGd1Y19mdy0+cnNhX3NpemU7CisJc2l6ZSA9IHVjX2Z3LT5oZWFkZXJfc2l6ZSArIHVj X2Z3LT51Y29kZV9zaXplICsgdWNfZnctPnJzYV9zaXplOwogCWlmIChmdy0+c2l6ZSA8IHNpemUp IHsKIAkJRFJNX05PVEUoIk1pc3NpbmcgZmlybXdhcmUgY29tcG9uZW50c1xuIik7CiAJCWdvdG8g ZmFpbDsKIAl9CiAKIAkvKiBIZWFkZXIgYW5kIHVDb2RlIHdpbGwgYmUgbG9hZGVkIHRvIFdPUENN LiBTaXplIG9mIHRoZSB0d28uICovCi0Jc2l6ZSA9IGd1Y19mdy0+aGVhZGVyX3NpemUgKyBndWNf ZnctPnVjb2RlX3NpemU7CisJc2l6ZSA9IHVjX2Z3LT5oZWFkZXJfc2l6ZSArIHVjX2Z3LT51Y29k ZV9zaXplOwogCWlmIChzaXplID4gZ3VjX3dvcGNtX3NpemUodG9faTkxNShkZXYpKSkgewogCQlE Uk1fTk9URSgiRmlybXdhcmUgaXMgdG9vIGxhcmdlIHRvIGZpdCBpbiBXT1BDTVxuIik7CiAJCWdv dG8gZmFpbDsKQEAgLTY1OSwyMSArNjU5LDIxIEBAIHN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCiAJICog VFdPIGJ5dGVzIGVhY2ggKGkuZS4gdTE2KSwgYWx0aG91Z2ggYWxsIHBvaW50ZXJzIGFuZCBvZmZz ZXRzIGFyZSBkZWZpbmVkCiAJICogaW4gdGVybXMgb2YgYnl0ZXMgKHU4KS4KIAkgKi8KLQlndWNf ZnctPmd1Y19md19tYWpvcl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3ZlcnNpb24gPj4gMTY7Ci0JZ3Vj X2Z3LT5ndWNfZndfbWlub3JfZm91bmQgPSBjc3MtPmd1Y19zd192ZXJzaW9uICYgMHhGRkZGOwot Ci0JaWYgKGd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kICE9IGd1Y19mdy0+Z3VjX2Z3X21ham9y X3dhbnRlZCB8fAotCSAgICBndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA8IGd1Y19mdy0+Z3Vj X2Z3X21pbm9yX3dhbnRlZCkgewotCQlEUk1fTk9URSgiR3VDIGZpcm13YXJlIHZlcnNpb24gJWQu JWQsIHJlcXVpcmVkICVkLiVkXG4iLAotCQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQsIGd1 Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kLAotCQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVk LCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOworCXVjX2Z3LT5tYWpvcl92ZXJfZm91bmQg PSBjc3MtPmd1Y19zd192ZXJzaW9uID4+IDE2OworCXVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPSBj c3MtPmd1Y19zd192ZXJzaW9uICYgMHhGRkZGOworCisJaWYgKHVjX2Z3LT5tYWpvcl92ZXJfZm91 bmQgIT0gdWNfZnctPm1ham9yX3Zlcl93YW50ZWQgfHwKKwkgICAgdWNfZnctPm1pbm9yX3Zlcl9m b3VuZCA8IHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKSB7CisJCURSTV9OT1RFKCJ1QyBmaXJtd2Fy ZSB2ZXJzaW9uICVkLiVkLCByZXF1aXJlZCAlZC4lZFxuIiwKKwkJCXVjX2Z3LT5tYWpvcl92ZXJf Zm91bmQsIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQsCisJCQl1Y19mdy0+bWFqb3JfdmVyX3dhbnRl ZCwgdWNfZnctPm1pbm9yX3Zlcl93YW50ZWQpOwogCQllcnIgPSAtRU5PRVhFQzsKIAkJZ290byBm YWlsOwogCX0KIAogCURSTV9ERUJVR19EUklWRVIoImZpcm13YXJlIHZlcnNpb24gJWQuJWQgT0sg KG1pbmltdW0gJWQuJWQpXG4iLAotCQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQsIGd1Y19m dy0+Z3VjX2Z3X21pbm9yX2ZvdW5kLAotCQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkLCBn dWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOworCQkJdWNfZnctPm1ham9yX3Zlcl9mb3VuZCwg dWNfZnctPm1pbm9yX3Zlcl9mb3VuZCwKKwkJCXVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkLCB1Y19m dy0+bWlub3JfdmVyX3dhbnRlZCk7CiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 CiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9mcm9tX2RhdGEoZGV2LCBmdy0+ZGF0YSwg ZnctPnNpemUpOwpAQCAtNjgzLDMxICs2ODMsMzEgQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNo KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKIAkJ Z290byBmYWlsOwogCX0KIAotCWd1Y19mdy0+Z3VjX2Z3X29iaiA9IG9iajsKLQlndWNfZnctPmd1 Y19md19zaXplID0gZnctPnNpemU7CisJdWNfZnctPnVjX2Z3X29iaiA9IG9iajsKKwl1Y19mdy0+ dWNfZndfc2l6ZSA9IGZ3LT5zaXplOwogCi0JRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IGZldGNo IHN0YXR1cyBTVUNDRVNTLCBvYmogJXBcbiIsCi0JCQlndWNfZnctPmd1Y19md19vYmopOworCURS TV9ERUJVR19EUklWRVIoInVDIGZ3IGZldGNoIHN0YXR1cyBTVUNDRVNTLCBvYmogJXBcbiIsCisJ CQl1Y19mdy0+dWNfZndfb2JqKTsKIAogCXJlbGVhc2VfZmlybXdhcmUoZncpOwotCWd1Y19mdy0+ Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9TVUNDRVNTOworCXVjX2Z3LT5mZXRj aF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9TVUNDRVNTOwogCXJldHVybjsKIAogZmFpbDoKLQlEUk1f V0FSTigiRmFpbGVkIHRvIGZldGNoIHZhbGlkIEd1QyBmaXJtd2FyZSBmcm9tICVzIChlcnJvciAl ZClcbiIsCi0JCSBndWNfZnctPmd1Y19md19wYXRoLCBlcnIpOwotCURSTV9ERUJVR19EUklWRVIo Ikd1QyBmdyBmZXRjaCBzdGF0dXMgRkFJTDsgZXJyICVkLCBmdyAlcCwgb2JqICVwXG4iLAotCQll cnIsIGZ3LCBndWNfZnctPmd1Y19md19vYmopOworCURSTV9XQVJOKCJGYWlsZWQgdG8gZmV0Y2gg dmFsaWQgdUMgZmlybXdhcmUgZnJvbSAlcyAoZXJyb3IgJWQpXG4iLAorCQkgdWNfZnctPnVjX2Z3 X3BhdGgsIGVycik7CisJRFJNX0RFQlVHX0RSSVZFUigidUMgZncgZmV0Y2ggc3RhdHVzIEZBSUw7 IGVyciAlZCwgZncgJXAsIG9iaiAlcFxuIiwKKwkJZXJyLCBmdywgdWNfZnctPnVjX2Z3X29iaik7 CiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0Jb2JqID0gZ3VjX2Z3LT5ndWNf Zndfb2JqOworCW9iaiA9IHVjX2Z3LT51Y19md19vYmo7CiAJaWYgKG9iaikKIAkJaTkxNV9nZW1f b2JqZWN0X3B1dChvYmopOwotCWd1Y19mdy0+Z3VjX2Z3X29iaiA9IE5VTEw7CisJdWNfZnctPnVj X2Z3X29iaiA9IE5VTEw7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKIAly ZWxlYXNlX2Zpcm13YXJlKGZ3KTsJCS8qIE9LIGV2ZW4gaWYgZncgaXMgTlVMTCAqLwotCWd1Y19m dy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9GQUlMOworCXVjX2Z3LT5mZXRj aF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9GQUlMOwogfQogCiAvKioKQEAgLTcyMiw3ICs3MjIsNyBA QCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0 IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5n dWNfZnc7CisJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNf Znc7CiAJY29uc3QgY2hhciAqZndfcGF0aDsKIAogCWlmICghSEFTX0dVQyhkZXZfcHJpdikpIHsK QEAgLTc0MCwyMyArNzQwLDI0IEBAIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAkJZndfcGF0aCA9IE5VTEw7CiAJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldl9w cml2KSkgewogCQlmd19wYXRoID0gSTkxNV9TS0xfR1VDX1VDT0RFOwotCQlndWNfZnctPmd1Y19m d19tYWpvcl93YW50ZWQgPSBTS0xfRldfTUFKT1I7Ci0JCWd1Y19mdy0+Z3VjX2Z3X21pbm9yX3dh bnRlZCA9IFNLTF9GV19NSU5PUjsKKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gU0tMX0ZX X01BSk9SOworCQlndWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSBTS0xfRldfTUlOT1I7CiAJfSBl bHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewogCQlmd19wYXRoID0gSTkxNV9CWFRfR1VD X1VDT0RFOwotCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgPSBCWFRfRldfTUFKT1I7Ci0J CWd1Y19mdy0+Z3VjX2Z3X21pbm9yX3dhbnRlZCA9IEJYVF9GV19NSU5PUjsKKwkJZ3VjX2Z3LT5t YWpvcl92ZXJfd2FudGVkID0gQlhUX0ZXX01BSk9SOworCQlndWNfZnctPm1pbm9yX3Zlcl93YW50 ZWQgPSBCWFRfRldfTUlOT1I7CiAJfSBlbHNlIGlmIChJU19LQUJZTEFLRShkZXZfcHJpdikpIHsK IAkJZndfcGF0aCA9IEk5MTVfS0JMX0dVQ19VQ09ERTsKLQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jf d2FudGVkID0gS0JMX0ZXX01BSk9SOwotCQlndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQgPSBL QkxfRldfTUlOT1I7CisJCWd1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCA9IEtCTF9GV19NQUpPUjsK KwkJZ3VjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gS0JMX0ZXX01JTk9SOwogCX0gZWxzZSB7CiAJ CWZ3X3BhdGggPSAiIjsJLyogdW5rbm93biBkZXZpY2UgKi8KIAl9CiAKLQlndWNfZnctPmd1Y19m d19wYXRoID0gZndfcGF0aDsKLQlndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMgPSBHVUNfRklS TVdBUkVfTk9ORTsKLQlndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9O T05FOworCWd1Y19mdy0+dWNfZGV2ID0gZGV2OworCWd1Y19mdy0+dWNfZndfcGF0aCA9IGZ3X3Bh dGg7CisJZ3VjX2Z3LT5mZXRjaF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9OT05FOworCWd1Y19mdy0+ bG9hZF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9OT05FOwogCiAJLyogRWFybHkgKGFuZCBzaWxlbnQp IHJldHVybiBpZiBHdUMgbG9hZGluZyBpcyBkaXNhYmxlZCAqLwogCWlmICghaTkxNS5lbmFibGVf Z3VjX2xvYWRpbmcpCkBAIC03NjYsOSArNzY3LDkgQEAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmICgqZndfcGF0aCA9PSAnXDAnKQogCQlyZXR1cm47CiAK LQlndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfUEVORElORzsKKwln dWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1BFTkRJTkc7CiAJRFJNX0RFQlVHX0RS SVZFUigiR3VDIGZpcm13YXJlIHBlbmRpbmcsIHBhdGggJXNcbiIsIGZ3X3BhdGgpOwotCWd1Y19m d19mZXRjaChkZXYsIGd1Y19mdyk7CisJaW50ZWxfdWNfZndfZmV0Y2goZGV2LCBndWNfZncpOwog CS8qIHN0YXR1cyBtdXN0IG5vdyBiZSBGQUlMIG9yIFNVQ0NFU1MgKi8KIH0KIApAQCAtNzc5LDE3 ICs3ODAsMTcgQEAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog dm9pZCBpbnRlbF9ndWNfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxf Z3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7CisJc3RydWN0IGludGVsX3Vj X2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7CiAKIAltdXRleF9sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7CiAJZ3VjX2ludGVycnVwdHNfcmVsZWFzZShkZXZfcHJpdik7CiAJaTkx NV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKGRldl9wcml2KTsKIAlpOTE1X2d1Y19zdWJtaXNzaW9u X2ZpbmkoZGV2X3ByaXYpOwogCi0JaWYgKGd1Y19mdy0+Z3VjX2Z3X29iaikKLQkJaTkxNV9nZW1f b2JqZWN0X3B1dChndWNfZnctPmd1Y19md19vYmopOwotCWd1Y19mdy0+Z3VjX2Z3X29iaiA9IE5V TEw7CisJaWYgKGd1Y19mdy0+dWNfZndfb2JqKQorCQlpOTE1X2dlbV9vYmplY3RfcHV0KGd1Y19m dy0+dWNfZndfb2JqKTsKKwlndWNfZnctPnVjX2Z3X29iaiA9IE5VTEw7CiAJbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKLQlndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMgPSBH VUNfRklSTVdBUkVfTk9ORTsKKwlndWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX05P TkU7CiB9Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==