From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Gaignard Subject: [PATCH v1 4/7] drm: sti: make connectors use atomic_print_state instead of debugfs Date: Tue, 5 Jun 2018 15:54:04 +0200 Message-ID: <20180605135407.20214-5-benjamin.gaignard@linaro.org> References: <20180605135407.20214-1-benjamin.gaignard@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1E54F6EDCF for ; Tue, 5 Jun 2018 13:54:30 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id p126-v6so5153783wmb.2 for ; Tue, 05 Jun 2018 06:54:30 -0700 (PDT) In-Reply-To: <20180605135407.20214-1-benjamin.gaignard@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: gustavo@padovan.org, maarten.lankhorst@linux.intel.com, seanpaul@chromium.org, airlied@linux.ie, vincent.abriou@st.com Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Q29udmVydCBhbGwgc3RpIGNvbm5lY3RvcnMgdG8gYXRvbWljX3ByaW50X3N0YXRlIHVzYWdlIHJh dGhlciB0aGFuCnVzZSBhIGRlYnVnZnMgZW50cnkuCgpTaWduZWQtb2ZmLWJ5OiBCZW5qYW1pbiBH YWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAbGluYXJvLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vc3RpL3N0aV9kdm8uYyAgfCAgNjAgKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL3N0aS9zdGlfaGRhLmMgIHwgIDc1ICsrKysrKystLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMgfCAxMzIgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgMTc3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jIGIv ZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHZvLmMKaW5kZXggYTU5NzljZDI1Y2M3Li41NjYyNjEz YWU2ZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jCkBAIC02LDcgKzYsNiBAQAogCiAjaW5jbHVkZSA8 bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+Ci0jaW5jbHVkZSA8bGlu dXgvZGVidWdmcy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4 L29mX2dwaW8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KQEAgLTE1OCw1 MiArMTU3LDM3IEBAIHN0YXRpYyB2b2lkIGR2b19hd2dfY29uZmlndXJlKHN0cnVjdCBzdGlfZHZv ICpkdm8sIHUzMiAqYXdnX3JhbV9jb2RlLCBpbnQgbmIpCiAJd3JpdGVsKERWT19BV0dfQ1RSTF9F TiwgZHZvLT5yZWdzICsgRFZPX0FXR19ESUdTWU5DX0NUUkwpOwogfQogCi0jZGVmaW5lIERCR0ZT X0RVTVAocmVnKSBzZXFfcHJpbnRmKHMsICJcbiAgJS0yNXMgMHglMDhYIiwgI3JlZywgXAorI2Rl ZmluZSBEQkdGU19EVU1QKHJlZykgZHJtX3ByaW50ZihwLCAiXG5cdFx0JS0yNXMgMHglMDhYIiwg I3JlZywgXAogCQkJCSAgIHJlYWRsKGR2by0+cmVncyArIHJlZykpCiAKLXN0YXRpYyB2b2lkIGR2 b19kYmdfYXdnX21pY3JvY29kZShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgX19pb21lbSAqcmVn KQorc3RhdGljIHZvaWQgZHZvX2RiZ19hd2dfbWljcm9jb2RlKHN0cnVjdCBkcm1fcHJpbnRlciAq cCwgdm9pZCBfX2lvbWVtICpyZWcpCiB7CiAJdW5zaWduZWQgaW50IGk7CiAKLQlzZXFfcHV0cyhz LCAiXG5cbiIpOwotCXNlcV9wdXRzKHMsICIgIERWTyBBV0cgbWljcm9jb2RlOiIpOworCWRybV9w cmludGYocCwgIlxuXG4iKTsKKwlkcm1fcHJpbnRmKHAsICIgIERWTyBBV0cgbWljcm9jb2RlOiIp OwogCWZvciAoaSA9IDA7IGkgPCBBV0dfTUFYX0lOU1Q7IGkrKykgewogCQlpZiAoaSAlIDggPT0g MCkKLQkJCXNlcV9wcmludGYocywgIlxuICAlMDRYOiIsIGkpOwotCQlzZXFfcHJpbnRmKHMsICIg JTA0WCIsIHJlYWRsKHJlZyArIGkgKiA0KSk7CisJCQlkcm1fcHJpbnRmKHAsICJcbiAgJTA0WDoi LCBpKTsKKwkJZHJtX3ByaW50ZihwLCAiICUwNFgiLCByZWFkbChyZWcgKyBpICogNCkpOwogCX0K IH0KIAotc3RhdGljIGludCBkdm9fZGJnX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpk YXRhKQorc3RhdGljIHZvaWQgc3RpX2R2b19wcmludF9zdGF0ZShzdHJ1Y3QgZHJtX3ByaW50ZXIg KnAsCisJCQkJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlKQogewotCXN0 cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gcy0+cHJpdmF0ZTsKLQlzdHJ1Y3Qgc3RpX2R2byAq ZHZvID0gKHN0cnVjdCBzdGlfZHZvICopbm9kZS0+aW5mb19lbnQtPmRhdGE7CisJc3RydWN0IHN0 aV9kdm9fY29ubmVjdG9yICpkdm9fY29ubmVjdG9yCisJCT0gdG9fc3RpX2R2b19jb25uZWN0b3Io c3RhdGUtPmNvbm5lY3Rvcik7CisJc3RydWN0IHN0aV9kdm8gKmR2byA9IGR2b19jb25uZWN0b3It PmR2bzsKIAotCXNlcV9wcmludGYocywgIkRWTzogKHZhZGRyID0gMHglcCkiLCBkdm8tPnJlZ3Mp OworCWRybV9wcmludGYocCwgIkRWTzogKHZhZGRyID0gMHglcCkiLCBkdm8tPnJlZ3MpOwogCURC R0ZTX0RVTVAoRFZPX0FXR19ESUdTWU5DX0NUUkwpOwogCURCR0ZTX0RVTVAoRFZPX0RPRl9DRkcp OwogCURCR0ZTX0RVTVAoRFZPX0xVVF9QUk9HX0xPVyk7CiAJREJHRlNfRFVNUChEVk9fTFVUX1BS T0dfTUlEKTsKIAlEQkdGU19EVU1QKERWT19MVVRfUFJPR19ISUdIKTsKLQlkdm9fZGJnX2F3Z19t aWNyb2NvZGUocywgZHZvLT5yZWdzICsgRFZPX0RJR1NZTkNfSU5TVFJfSSk7Ci0Jc2VxX3B1dGMo cywgJ1xuJyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBk dm9fZGVidWdmc19maWxlc1tdID0gewotCXsgImR2byIsIGR2b19kYmdfc2hvdywgMCwgTlVMTCB9 LAotfTsKLQotc3RhdGljIGludCBkdm9fZGVidWdmc19pbml0KHN0cnVjdCBzdGlfZHZvICpkdm8s IHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQotewotCXVuc2lnbmVkIGludCBpOwotCi0JZm9yIChp ID0gMDsgaSA8IEFSUkFZX1NJWkUoZHZvX2RlYnVnZnNfZmlsZXMpOyBpKyspCi0JCWR2b19kZWJ1 Z2ZzX2ZpbGVzW2ldLmRhdGEgPSBkdm87Ci0KLQlyZXR1cm4gZHJtX2RlYnVnZnNfY3JlYXRlX2Zp bGVzKGR2b19kZWJ1Z2ZzX2ZpbGVzLAotCQkJCQlBUlJBWV9TSVpFKGR2b19kZWJ1Z2ZzX2ZpbGVz KSwKLQkJCQkJbWlub3ItPmRlYnVnZnNfcm9vdCwgbWlub3IpOworCWR2b19kYmdfYXdnX21pY3Jv Y29kZShwLCBkdm8tPnJlZ3MgKyBEVk9fRElHU1lOQ19JTlNUUl9JKTsKKwlkcm1fcHJpbnRmKHAs ICJcbiIpOwogfQogCiBzdGF0aWMgdm9pZCBzdGlfZHZvX2Rpc2FibGUoc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSkKQEAgLTM5NywyMCArMzgxLDYgQEAgc3RpX2R2b19jb25uZWN0b3JfZGV0ZWN0 KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCiAJcmV0dXJuIGNv bm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwogfQogCi1zdGF0aWMgaW50IHN0aV9kdm9fbGF0 ZV9yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQotewotCXN0cnVjdCBz dGlfZHZvX2Nvbm5lY3RvciAqZHZvX2Nvbm5lY3RvcgotCQk9IHRvX3N0aV9kdm9fY29ubmVjdG9y KGNvbm5lY3Rvcik7Ci0Jc3RydWN0IHN0aV9kdm8gKmR2byA9IGR2b19jb25uZWN0b3ItPmR2bzsK LQotCWlmIChkdm9fZGVidWdmc19pbml0KGR2bywgZHZvLT5kcm1fZGV2LT5wcmltYXJ5KSkgewot CQlEUk1fRVJST1IoIkRWTyBkZWJ1Z2ZzIHNldHVwIGZhaWxlZFxuIik7Ci0JCXJldHVybiAtRUlO VkFMOwotCX0KLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25u ZWN0b3JfZnVuY3Mgc3RpX2R2b19jb25uZWN0b3JfZnVuY3MgPSB7CiAJLmZpbGxfbW9kZXMgPSBk cm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCiAJLmRldGVjdCA9IHN0aV9k dm9fY29ubmVjdG9yX2RldGVjdCwKQEAgLTQxOCw3ICszODgsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9jb25uZWN0b3JfZnVuY3Mgc3RpX2R2b19jb25uZWN0b3JfZnVuY3MgPSB7CiAJLnJl c2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3Jlc2V0LAogCS5hdG9taWNfZHVwbGlj YXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwK IAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVz dHJveV9zdGF0ZSwKLQkubGF0ZV9yZWdpc3RlciA9IHN0aV9kdm9fbGF0ZV9yZWdpc3RlciwKKwku YXRvbWljX3ByaW50X3N0YXRlID0gc3RpX2R2b19wcmludF9zdGF0ZSwKIH07CiAKIHN0YXRpYyBz dHJ1Y3QgZHJtX2VuY29kZXIgKnN0aV9kdm9fZmluZF9lbmNvZGVyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZGEuYyBiL2RyaXZl cnMvZ3B1L2RybS9zdGkvc3RpX2hkYS5jCmluZGV4IDY3YmJkYjQ5ZmZmYy4uMDczNGYyNzUxNTA1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZGEuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vc3RpL3N0aV9oZGEuYwpAQCAtMzA3LDcxICszMDcsNTYgQEAgc3RhdGljIHZvaWQg aGRhX2VuYWJsZV9oZF9kYWNzKHN0cnVjdCBzdGlfaGRhICpoZGEsIGJvb2wgZW5hYmxlKQogCX0K IH0KIAotI2RlZmluZSBEQkdGU19EVU1QKHJlZykgc2VxX3ByaW50ZihzLCAiXG4gICUtMjVzIDB4 JTA4WCIsICNyZWcsIFwKKyNkZWZpbmUgREJHRlNfRFVNUChyZWcpIGRybV9wcmludGYocCwgIlxu XHRcdCUtMjVzIDB4JTA4WCIsICNyZWcsIFwKIAkJCQkgICByZWFkbChoZGEtPnJlZ3MgKyByZWcp KQogCi1zdGF0aWMgdm9pZCBoZGFfZGJnX2NmZyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIGludCB2YWwp CitzdGF0aWMgdm9pZCBoZGFfZGJnX2NmZyhzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIGludCB2YWwp CiB7Ci0Jc2VxX3B1dHMocywgIlx0QVdHICIpOwotCXNlcV9wdXRzKHMsIHZhbCAmIENGR19BV0df QVNZTkNfRU4gPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKTsKKwlkcm1fcHJpbnRmKHAsICJcdEFX RyAiKTsKKwlkcm1fcHJpbnRmKHAsIHZhbCAmIENGR19BV0dfQVNZTkNfRU4gPyAiZW5hYmxlZCIg OiAiZGlzYWJsZWQiKTsKIH0KIAotc3RhdGljIHZvaWQgaGRhX2RiZ19hd2dfbWljcm9jb2RlKHN0 cnVjdCBzZXFfZmlsZSAqcywgdm9pZCBfX2lvbWVtICpyZWcpCitzdGF0aWMgdm9pZCBoZGFfZGJn X2F3Z19taWNyb2NvZGUoc3RydWN0IGRybV9wcmludGVyICpwLCB2b2lkIF9faW9tZW0gKnJlZykK IHsKIAl1bnNpZ25lZCBpbnQgaTsKIAotCXNlcV9wdXRzKHMsICJcblxuICBIREEgQVdHIG1pY3Jv Y29kZToiKTsKKwlkcm1fcHJpbnRmKHAsICJcblxuICBIREEgQVdHIG1pY3JvY29kZToiKTsKIAlm b3IgKGkgPSAwOyBpIDwgQVdHX01BWF9JTlNUOyBpKyspIHsKIAkJaWYgKGkgJSA4ID09IDApCi0J CQlzZXFfcHJpbnRmKHMsICJcbiAgJTA0WDoiLCBpKTsKLQkJc2VxX3ByaW50ZihzLCAiICUwNFgi LCByZWFkbChyZWcgKyBpICogNCkpOworCQkJZHJtX3ByaW50ZihwLCAiXG4gICUwNFg6IiwgaSk7 CisJCWRybV9wcmludGYocCwgIiAlMDRYIiwgcmVhZGwocmVnICsgaSAqIDQpKTsKIAl9CiB9CiAK LXN0YXRpYyB2b2lkIGhkYV9kYmdfdmlkZW9fZGFjc19jdHJsKHN0cnVjdCBzZXFfZmlsZSAqcywg dm9pZCBfX2lvbWVtICpyZWcpCitzdGF0aWMgdm9pZCBoZGFfZGJnX3ZpZGVvX2RhY3NfY3RybChz dHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHZvaWQgX19pb21lbSAqcmVnKQogewogCXUzMiB2YWwgPSBy ZWFkbChyZWcpOwogCi0Jc2VxX3ByaW50ZihzLCAiXG5cbiAgJS0yNXMgMHglMDhYIiwgIlZJREVP X0RBQ1NfQ09OVFJPTCIsIHZhbCk7Ci0Jc2VxX3B1dHMocywgIlx0SEQgREFDcyAiKTsKLQlzZXFf cHV0cyhzLCB2YWwgJiBEQUNfQ0ZHX0hEX0haVVZXX09GRl9NQVNLID8gImRpc2FibGVkIiA6ICJl bmFibGVkIik7CisJZHJtX3ByaW50ZihwLCAiXG5cbiAgJS0yNXMgMHglMDhYIiwgIlZJREVPX0RB Q1NfQ09OVFJPTCIsIHZhbCk7CisJZHJtX3ByaW50ZihwLCAiXHRIRCBEQUNzICIpOworCWRybV9w cmludGYocCwgdmFsICYgREFDX0NGR19IRF9IWlVWV19PRkZfTUFTSyA/ICJkaXNhYmxlZCIgOiAi ZW5hYmxlZCIpOwogfQogCi1zdGF0aWMgaW50IGhkYV9kYmdfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUg KnMsIHZvaWQgKmRhdGEpCitzdGF0aWMgdm9pZCBzdGlfaGRhX3ByaW50X3N0YXRlKHN0cnVjdCBk cm1fcHJpbnRlciAqcCwKKwkJCQljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3Rh dGUpCiB7Ci0Jc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSBzLT5wcml2YXRlOwotCXN0cnVj dCBzdGlfaGRhICpoZGEgPSAoc3RydWN0IHN0aV9oZGEgKilub2RlLT5pbmZvX2VudC0+ZGF0YTsK KwlzdHJ1Y3Qgc3RpX2hkYV9jb25uZWN0b3IgKmhkYV9jb25uZWN0b3IKKwkJPSB0b19zdGlfaGRh X2Nvbm5lY3RvcihzdGF0ZS0+Y29ubmVjdG9yKTsKKwlzdHJ1Y3Qgc3RpX2hkYSAqaGRhID0gaGRh X2Nvbm5lY3Rvci0+aGRhOwogCi0Jc2VxX3ByaW50ZihzLCAiSEQgQW5hbG9nOiAodmFkZHIgPSAw eCVwKSIsIGhkYS0+cmVncyk7CisJZHJtX3ByaW50ZihwLCAiSEQgQW5hbG9nOiAodmFkZHIgPSAw eCVwSykiLCBoZGEtPnJlZ3MpOwogCURCR0ZTX0RVTVAoSERBX0FOQV9DRkcpOwotCWhkYV9kYmdf Y2ZnKHMsIHJlYWRsKGhkYS0+cmVncyArIEhEQV9BTkFfQ0ZHKSk7CisJaGRhX2RiZ19jZmcocCwg cmVhZGwoaGRhLT5yZWdzICsgSERBX0FOQV9DRkcpKTsKIAlEQkdGU19EVU1QKEhEQV9BTkFfU0NB TEVfQ1RSTF9ZKTsKIAlEQkdGU19EVU1QKEhEQV9BTkFfU0NBTEVfQ1RSTF9DQik7CiAJREJHRlNf RFVNUChIREFfQU5BX1NDQUxFX0NUUkxfQ1IpOwogCURCR0ZTX0RVTVAoSERBX0FOQV9BTkNfQ1RS TCk7CiAJREJHRlNfRFVNUChIREFfQU5BX1NSQ19ZX0NGRyk7CiAJREJHRlNfRFVNUChIREFfQU5B X1NSQ19DX0NGRyk7Ci0JaGRhX2RiZ19hd2dfbWljcm9jb2RlKHMsIGhkYS0+cmVncyArIEhEQV9T WU5DX0FXR0kpOworCWhkYV9kYmdfYXdnX21pY3JvY29kZShwLCBoZGEtPnJlZ3MgKyBIREFfU1lO Q19BV0dJKTsKIAlpZiAoaGRhLT52aWRlb19kYWNzX2N0cmwpCi0JCWhkYV9kYmdfdmlkZW9fZGFj c19jdHJsKHMsIGhkYS0+dmlkZW9fZGFjc19jdHJsKTsKLQlzZXFfcHV0YyhzLCAnXG4nKTsKLQly ZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBkcm1faW5mb19saXN0IGhkYV9kZWJ1Z2ZzX2Zp bGVzW10gPSB7Ci0JeyAiaGRhIiwgaGRhX2RiZ19zaG93LCAwLCBOVUxMIH0sCi19OwotCi1zdGF0 aWMgaW50IGhkYV9kZWJ1Z2ZzX2luaXQoc3RydWN0IHN0aV9oZGEgKmhkYSwgc3RydWN0IGRybV9t aW5vciAqbWlub3IpCi17Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShoZGFfZGVidWdmc19maWxlcyk7IGkrKykKLQkJaGRhX2RlYnVnZnNfZmlsZXNbaV0u ZGF0YSA9IGhkYTsKLQotCXJldHVybiBkcm1fZGVidWdmc19jcmVhdGVfZmlsZXMoaGRhX2RlYnVn ZnNfZmlsZXMsCi0JCQkJCUFSUkFZX1NJWkUoaGRhX2RlYnVnZnNfZmlsZXMpLAotCQkJCQltaW5v ci0+ZGVidWdmc19yb290LCBtaW5vcik7CisJCWhkYV9kYmdfdmlkZW9fZGFjc19jdHJsKHAsIGhk YS0+dmlkZW9fZGFjc19jdHJsKTsKKwlkcm1fcHJpbnRmKHAsICJcbiIpOwogfQogCiAvKioKQEAg LTYzMiwyNyArNjE3LDEzIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBzdGlf aGRhX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7CiAJLm1vZGVfdmFsaWQgPSBzdGlfaGRhX2Nv bm5lY3Rvcl9tb2RlX3ZhbGlkLAogfTsKIAotc3RhdGljIGludCBzdGlfaGRhX2xhdGVfcmVnaXN0 ZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlzdHJ1Y3Qgc3RpX2hkYV9j b25uZWN0b3IgKmhkYV9jb25uZWN0b3IKLQkJPSB0b19zdGlfaGRhX2Nvbm5lY3Rvcihjb25uZWN0 b3IpOwotCXN0cnVjdCBzdGlfaGRhICpoZGEgPSBoZGFfY29ubmVjdG9yLT5oZGE7Ci0KLQlpZiAo aGRhX2RlYnVnZnNfaW5pdChoZGEsIGhkYS0+ZHJtX2Rldi0+cHJpbWFyeSkpIHsKLQkJRFJNX0VS Uk9SKCJIREEgZGVidWdmcyBzZXR1cCBmYWlsZWRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9 Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1 bmNzIHN0aV9oZGFfY29ubmVjdG9yX2Z1bmNzID0gewogCS5maWxsX21vZGVzID0gZHJtX2hlbHBl cl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAogCS5kZXN0cm95ID0gZHJtX2Nvbm5lY3Rv cl9jbGVhbnVwLAogCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9yZXNldCwK IAkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9k dXBsaWNhdGVfc3RhdGUsCiAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxw ZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCi0JLmxhdGVfcmVnaXN0ZXIgPSBzdGlfaGRhX2xh dGVfcmVnaXN0ZXIsCisJLmF0b21pY19wcmludF9zdGF0ZSA9IHN0aV9oZGFfcHJpbnRfc3RhdGUs CiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICpzdGlfaGRhX2ZpbmRfZW5jb2Rlcihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9z dGlfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRtaS5jCmluZGV4IDU4ZjQzMTEw MjUxMi4uYjEzMTNiMzMyMWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9o ZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRtaS5jCkBAIC01ODQsNDkgKzU4 NCw0OSBAQCBzdGF0aWMgdm9pZCBoZG1pX3N3cmVzZXQoc3RydWN0IHN0aV9oZG1pICpoZG1pKQog CWNsa19kaXNhYmxlX3VucHJlcGFyZShoZG1pLT5jbGtfYXVkaW8pOwogfQogCi0jZGVmaW5lIERC R0ZTX1BSSU5UX1NUUihzdHIxLCBzdHIyKSBzZXFfcHJpbnRmKHMsICIlLTI0cyAlc1xuIiwgc3Ry MSwgc3RyMikKLSNkZWZpbmUgREJHRlNfUFJJTlRfSU5UKHN0cjEsIGludDIpIHNlcV9wcmludGYo cywgIiUtMjRzICVkXG4iLCBzdHIxLCBpbnQyKQotI2RlZmluZSBEQkdGU19EVU1QKHN0ciwgcmVn KSBzZXFfcHJpbnRmKHMsICIlcyAgJS0yNXMgMHglMDhYIiwgc3RyLCAjcmVnLCBcCisjZGVmaW5l IERCR0ZTX1BSSU5UX1NUUihzdHIxLCBzdHIyKSBkcm1fcHJpbnRmKHAsICIlLTI0cyAlc1xuIiwg c3RyMSwgc3RyMikKKyNkZWZpbmUgREJHRlNfUFJJTlRfSU5UKHN0cjEsIGludDIpIGRybV9wcmlu dGYocCwgIiUtMjRzICVkXG4iLCBzdHIxLCBpbnQyKQorI2RlZmluZSBEQkdGU19EVU1QKHN0ciwg cmVnKSBkcm1fcHJpbnRmKHAsICIlc1x0JS0yNXMgMHglMDhYIiwgc3RyLCAjcmVnLCBcCiAJCQkJ CWhkbWlfcmVhZChoZG1pLCByZWcpKQotI2RlZmluZSBEQkdGU19EVU1QX0RJKHJlZywgc2xvdCkg REJHRlNfRFVNUCgiXG4iLCByZWcoc2xvdCkpCisjZGVmaW5lIERCR0ZTX0RVTVBfREkocmVnLCBz bG90KSBEQkdGU19EVU1QKCJcblx0XHQiLCByZWcoc2xvdCkpCiAKLXN0YXRpYyB2b2lkIGhkbWlf ZGJnX2NmZyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIGludCB2YWwpCitzdGF0aWMgdm9pZCBoZG1pX2Ri Z19jZmcoc3RydWN0IGRybV9wcmludGVyICpwLCBpbnQgdmFsKQogewogCWludCB0bXA7CiAKLQlz ZXFfcHV0YyhzLCAnXHQnKTsKKwlkcm1fcHJpbnRmKHAsICJcdCIpOwogCXRtcCA9IHZhbCAmIEhE TUlfQ0ZHX0hETUlfTk9UX0RWSTsKIAlEQkdGU19QUklOVF9TVFIoIm1vZGU6IiwgdG1wID8gIkhE TUkiIDogIkRWSSIpOwotCXNlcV9wdXRzKHMsICJcdFx0XHRcdFx0Iik7CisJZHJtX3ByaW50Zihw LCAiXHRcdFx0XHRcdCIpOwogCXRtcCA9IHZhbCAmIEhETUlfQ0ZHX0hEQ1BfRU47CiAJREJHRlNf UFJJTlRfU1RSKCJIRENQOiIsIHRtcCA/ICJlbmFibGUiIDogImRpc2FibGUiKTsKLQlzZXFfcHV0 cyhzLCAiXHRcdFx0XHRcdCIpOworCWRybV9wcmludGYocCwgIlx0XHRcdFx0XHQiKTsKIAl0bXAg PSB2YWwgJiBIRE1JX0NGR19FU1NfTk9UX09FU1M7CiAJREJHRlNfUFJJTlRfU1RSKCJIRENQIG1v ZGU6IiwgdG1wID8gIkVTUyBlbmFibGUiIDogIk9FU1MgZW5hYmxlIik7Ci0Jc2VxX3B1dHMocywg Ilx0XHRcdFx0XHQiKTsKKwlkcm1fcHJpbnRmKHAsICJcdFx0XHRcdFx0Iik7CiAJdG1wID0gdmFs ICYgSERNSV9DRkdfSF9TWU5DX1BPTF9ORUc7CiAJREJHRlNfUFJJTlRfU1RSKCJIc3luYyBwb2xh cml0eToiLCB0bXAgPyAiaW52ZXJ0ZWQiIDogIm5vcm1hbCIpOwotCXNlcV9wdXRzKHMsICJcdFx0 XHRcdFx0Iik7CisJZHJtX3ByaW50ZihwLCAiXHRcdFx0XHRcdCIpOwogCXRtcCA9IHZhbCAmIEhE TUlfQ0ZHX1ZfU1lOQ19QT0xfTkVHOwogCURCR0ZTX1BSSU5UX1NUUigiVnN5bmMgcG9sYXJpdHk6 IiwgdG1wID8gImludmVydGVkIiA6ICJub3JtYWwiKTsKLQlzZXFfcHV0cyhzLCAiXHRcdFx0XHRc dCIpOworCWRybV9wcmludGYocCwgIlx0XHRcdFx0XHQiKTsKIAl0bXAgPSB2YWwgJiBIRE1JX0NG R180MjJfRU47CiAJREJHRlNfUFJJTlRfU1RSKCJZVVY0MjIgZm9ybWF0OiIsIHRtcCA/ICJlbmFi bGUiIDogImRpc2FibGUiKTsKIH0KIAotc3RhdGljIHZvaWQgaGRtaV9kYmdfc3RhKHN0cnVjdCBz ZXFfZmlsZSAqcywgaW50IHZhbCkKK3N0YXRpYyB2b2lkIGhkbWlfZGJnX3N0YShzdHJ1Y3QgZHJt X3ByaW50ZXIgKnAsIGludCB2YWwpCiB7CiAJaW50IHRtcDsKIAotCXNlcV9wdXRjKHMsICdcdCcp OworCWRybV9wcmludGYocCwgIlx0Iik7CiAJdG1wID0gKHZhbCAmIEhETUlfU1RBX0RMTF9MQ0sp OwogCURCR0ZTX1BSSU5UX1NUUigicGxsOiIsIHRtcCA/ICJsb2NrZWQiIDogIm5vdCBsb2NrZWQi KTsKLQlzZXFfcHV0cyhzLCAiXHRcdFx0XHRcdCIpOworCWRybV9wcmludGYocCwgIlx0XHRcdFx0 XHQiKTsKIAl0bXAgPSAodmFsICYgSERNSV9TVEFfSE9UX1BMVUcpOwogCURCR0ZTX1BSSU5UX1NU UigiaGRtaSBjYWJsZToiLCB0bXAgPyAiY29ubmVjdGVkIiA6ICJub3QgY29ubmVjdGVkIik7CiB9 CiAKLXN0YXRpYyB2b2lkIGhkbWlfZGJnX3N3X2RpX2NmZyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIGlu dCB2YWwpCitzdGF0aWMgdm9pZCBoZG1pX2RiZ19zd19kaV9jZmcoc3RydWN0IGRybV9wcmludGVy ICpwLCBpbnQgdmFsKQogewogCWludCB0bXA7CiAJY2hhciAqY29uc3QgZW5fZGlbXSA9IHsibm8g dHJhbnNtaXNzaW9uIiwKQEAgLTYzNCw1NyArNjM0LDU5IEBAIHN0YXRpYyB2b2lkIGhkbWlfZGJn X3N3X2RpX2NmZyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIGludCB2YWwpCiAJCQkgICAgICAgIm9uY2Ug ZXZlcnkgZmllbGQiLAogCQkJICAgICAgICJvbmNlIGV2ZXJ5IGZyYW1lIn07CiAKLQlzZXFfcHV0 YyhzLCAnXHQnKTsKKwlkcm1fcHJpbnRmKHAsICJcdCIpOwogCXRtcCA9ICh2YWwgJiBIRE1JX0lG UkFNRV9DRkdfRElfTihIRE1JX0lGUkFNRV9NQVNLLCAxKSk7CiAJREJHRlNfUFJJTlRfU1RSKCJE YXRhIGlzbGFuZCAxOiIsIGVuX2RpW3RtcF0pOwotCXNlcV9wdXRzKHMsICJcdFx0XHRcdFx0Iik7 CisJZHJtX3ByaW50ZihwLCAiXHRcdFx0XHRcdCIpOwogCXRtcCA9ICh2YWwgJiBIRE1JX0lGUkFN RV9DRkdfRElfTihIRE1JX0lGUkFNRV9NQVNLLCAyKSkgPj4gNDsKIAlEQkdGU19QUklOVF9TVFIo IkRhdGEgaXNsYW5kIDI6IiwgZW5fZGlbdG1wXSk7Ci0Jc2VxX3B1dHMocywgIlx0XHRcdFx0XHQi KTsKKwlkcm1fcHJpbnRmKHAsICJcdFx0XHRcdFx0Iik7CiAJdG1wID0gKHZhbCAmIEhETUlfSUZS QU1FX0NGR19ESV9OKEhETUlfSUZSQU1FX01BU0ssIDMpKSA+PiA4OwogCURCR0ZTX1BSSU5UX1NU UigiRGF0YSBpc2xhbmQgMzoiLCBlbl9kaVt0bXBdKTsKLQlzZXFfcHV0cyhzLCAiXHRcdFx0XHRc dCIpOworCWRybV9wcmludGYocCwgIlx0XHRcdFx0XHQiKTsKIAl0bXAgPSAodmFsICYgSERNSV9J RlJBTUVfQ0ZHX0RJX04oSERNSV9JRlJBTUVfTUFTSywgNCkpID4+IDEyOwogCURCR0ZTX1BSSU5U X1NUUigiRGF0YSBpc2xhbmQgNDoiLCBlbl9kaVt0bXBdKTsKLQlzZXFfcHV0cyhzLCAiXHRcdFx0 XHRcdCIpOworCWRybV9wcmludGYocCwgIlx0XHRcdFx0XHQiKTsKIAl0bXAgPSAodmFsICYgSERN SV9JRlJBTUVfQ0ZHX0RJX04oSERNSV9JRlJBTUVfTUFTSywgNSkpID4+IDE2OwogCURCR0ZTX1BS SU5UX1NUUigiRGF0YSBpc2xhbmQgNToiLCBlbl9kaVt0bXBdKTsKLQlzZXFfcHV0cyhzLCAiXHRc dFx0XHRcdCIpOworCWRybV9wcmludGYocCwgIlx0XHRcdFx0XHQiKTsKIAl0bXAgPSAodmFsICYg SERNSV9JRlJBTUVfQ0ZHX0RJX04oSERNSV9JRlJBTUVfTUFTSywgNikpID4+IDIwOwogCURCR0ZT X1BSSU5UX1NUUigiRGF0YSBpc2xhbmQgNjoiLCBlbl9kaVt0bXBdKTsKIH0KIAotc3RhdGljIGlu dCBoZG1pX2RiZ19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSkKK3N0YXRpYyB2 b2lkIHN0aV9oZG1pX3ByaW50X3N0YXRlKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwKKwkJCQkgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1faW5m b19ub2RlICpub2RlID0gcy0+cHJpdmF0ZTsKLQlzdHJ1Y3Qgc3RpX2hkbWkgKmhkbWkgPSAoc3Ry dWN0IHN0aV9oZG1pICopbm9kZS0+aW5mb19lbnQtPmRhdGE7Ci0KLQlzZXFfcHJpbnRmKHMsICJI RE1JOiAodmFkZHIgPSAweCVwKSIsIGhkbWktPnJlZ3MpOwotCURCR0ZTX0RVTVAoIlxuIiwgSERN SV9DRkcpOwotCWhkbWlfZGJnX2NmZyhzLCBoZG1pX3JlYWQoaGRtaSwgSERNSV9DRkcpKTsKLQlE QkdGU19EVU1QKCIiLCBIRE1JX0lOVF9FTik7Ci0JREJHRlNfRFVNUCgiXG4iLCBIRE1JX1NUQSk7 Ci0JaGRtaV9kYmdfc3RhKHMsIGhkbWlfcmVhZChoZG1pLCBIRE1JX1NUQSkpOwotCURCR0ZTX0RV TVAoIiIsIEhETUlfQUNUSVZFX1ZJRF9YTUlOKTsKLQlzZXFfcHV0YyhzLCAnXHQnKTsKKwlzdHJ1 Y3Qgc3RpX2hkbWlfY29ubmVjdG9yICpoZG1pX2Nvbm5lY3RvcgorCQk9IHRvX3N0aV9oZG1pX2Nv bm5lY3RvcihzdGF0ZS0+Y29ubmVjdG9yKTsKKwlzdHJ1Y3Qgc3RpX2hkbWkgKmhkbWkgPSBoZG1p X2Nvbm5lY3Rvci0+aGRtaTsKKworCWRybV9wcmludGYocCwgIlx0SERNSTogKHZhZGRyID0gMHgl cEspIiwgaGRtaS0+cmVncyk7CisJREJHRlNfRFVNUCgiXG5cdFx0IiwgSERNSV9DRkcpOworCWhk bWlfZGJnX2NmZyhwLCBoZG1pX3JlYWQoaGRtaSwgSERNSV9DRkcpKTsKKwlEQkdGU19EVU1QKCJc dFx0IiwgSERNSV9JTlRfRU4pOworCURCR0ZTX0RVTVAoIlxuXHRcdCIsIEhETUlfU1RBKTsKKwlo ZG1pX2RiZ19zdGEocCwgaGRtaV9yZWFkKGhkbWksIEhETUlfU1RBKSk7CisJREJHRlNfRFVNUCgi XHRcdCIsIEhETUlfQUNUSVZFX1ZJRF9YTUlOKTsKKwlkcm1fcHJpbnRmKHAsICJcdCIpOwogCURC R0ZTX1BSSU5UX0lOVCgiWG1pbjoiLCBoZG1pX3JlYWQoaGRtaSwgSERNSV9BQ1RJVkVfVklEX1hN SU4pKTsKLQlEQkdGU19EVU1QKCIiLCBIRE1JX0FDVElWRV9WSURfWE1BWCk7Ci0Jc2VxX3B1dGMo cywgJ1x0Jyk7CisJREJHRlNfRFVNUCgiXHRcdCIsIEhETUlfQUNUSVZFX1ZJRF9YTUFYKTsKKwlk cm1fcHJpbnRmKHAsICJcdCIpOwogCURCR0ZTX1BSSU5UX0lOVCgiWG1heDoiLCBoZG1pX3JlYWQo aGRtaSwgSERNSV9BQ1RJVkVfVklEX1hNQVgpKTsKLQlEQkdGU19EVU1QKCIiLCBIRE1JX0FDVElW RV9WSURfWU1JTik7Ci0Jc2VxX3B1dGMocywgJ1x0Jyk7CisJREJHRlNfRFVNUCgiXHRcdCIsIEhE TUlfQUNUSVZFX1ZJRF9ZTUlOKTsKKwlkcm1fcHJpbnRmKHAsICJcdCIpOwogCURCR0ZTX1BSSU5U X0lOVCgiWW1pbjoiLCBoZG1pX3JlYWQoaGRtaSwgSERNSV9BQ1RJVkVfVklEX1lNSU4pKTsKLQlE QkdGU19EVU1QKCIiLCBIRE1JX0FDVElWRV9WSURfWU1BWCk7Ci0Jc2VxX3B1dGMocywgJ1x0Jyk7 CisJREJHRlNfRFVNUCgiXHRcdCIsIEhETUlfQUNUSVZFX1ZJRF9ZTUFYKTsKKwlkcm1fcHJpbnRm KHAsICJcdCIpOwogCURCR0ZTX1BSSU5UX0lOVCgiWW1heDoiLCBoZG1pX3JlYWQoaGRtaSwgSERN SV9BQ1RJVkVfVklEX1lNQVgpKTsKLQlEQkdGU19EVU1QKCIiLCBIRE1JX1NXX0RJX0NGRyk7Ci0J aGRtaV9kYmdfc3dfZGlfY2ZnKHMsIGhkbWlfcmVhZChoZG1pLCBIRE1JX1NXX0RJX0NGRykpOwor CURCR0ZTX0RVTVAoIlx0XHQiLCBIRE1JX1NXX0RJX0NGRyk7CisJaGRtaV9kYmdfc3dfZGlfY2Zn KHAsIGhkbWlfcmVhZChoZG1pLCBIRE1JX1NXX0RJX0NGRykpOwogCi0JREJHRlNfRFVNUCgiXG4i LCBIRE1JX0FVRElPX0NGRyk7Ci0JREJHRlNfRFVNUCgiXG4iLCBIRE1JX1NQRElGX0ZJRk9fU1RB VFVTKTsKLQlEQkdGU19EVU1QKCJcbiIsIEhETUlfQVVETik7CisJREJHRlNfRFVNUCgiXG5cdFx0 IiwgSERNSV9BVURJT19DRkcpOworCURCR0ZTX0RVTVAoIlxuXHRcdCIsIEhETUlfU1BESUZfRklG T19TVEFUVVMpOworCURCR0ZTX0RVTVAoIlxuXHRcdCIsIEhETUlfQVVETik7CiAKLQlzZXFfcHJp bnRmKHMsICJcbiBBVkkgSW5mb2ZyYW1lIChEYXRhIElzbGFuZCBzbG90IE49JWQpOiIsCisJZHJt X3ByaW50ZihwLCAiXG5cdFx0QVZJIEluZm9mcmFtZSAoRGF0YSBJc2xhbmQgc2xvdCBOPSVkKToi LAogCQkgICBIRE1JX0lGUkFNRV9TTE9UX0FWSSk7CiAJREJHRlNfRFVNUF9ESShIRE1JX1NXX0RJ X05fSEVBRF9XT1JELCBIRE1JX0lGUkFNRV9TTE9UX0FWSSk7CiAJREJHRlNfRFVNUF9ESShIRE1J X1NXX0RJX05fUEtUX1dPUkQwLCBIRE1JX0lGUkFNRV9TTE9UX0FWSSk7CkBAIC02OTQsNyArNjk2 LDcgQEAgc3RhdGljIGludCBoZG1pX2RiZ19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAq ZGF0YSkKIAlEQkdGU19EVU1QX0RJKEhETUlfU1dfRElfTl9QS1RfV09SRDQsIEhETUlfSUZSQU1F X1NMT1RfQVZJKTsKIAlEQkdGU19EVU1QX0RJKEhETUlfU1dfRElfTl9QS1RfV09SRDUsIEhETUlf SUZSQU1FX1NMT1RfQVZJKTsKIAlEQkdGU19EVU1QX0RJKEhETUlfU1dfRElfTl9QS1RfV09SRDYs IEhETUlfSUZSQU1FX1NMT1RfQVZJKTsKLQlzZXFfcHJpbnRmKHMsICJcblxuIEFVRElPIEluZm9m cmFtZSAoRGF0YSBJc2xhbmQgc2xvdCBOPSVkKToiLAorCWRybV9wcmludGYocCwgIlxuXHRcdEFV RElPIEluZm9mcmFtZSAoRGF0YSBJc2xhbmQgc2xvdCBOPSVkKToiLAogCQkgICBIRE1JX0lGUkFN RV9TTE9UX0FVRElPKTsKIAlEQkdGU19EVU1QX0RJKEhETUlfU1dfRElfTl9IRUFEX1dPUkQsIEhE TUlfSUZSQU1FX1NMT1RfQVVESU8pOwogCURCR0ZTX0RVTVBfREkoSERNSV9TV19ESV9OX1BLVF9X T1JEMCwgSERNSV9JRlJBTUVfU0xPVF9BVURJTyk7CkBAIC03MDQsNyArNzA2LDggQEAgc3RhdGlj IGludCBoZG1pX2RiZ19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSkKIAlEQkdG U19EVU1QX0RJKEhETUlfU1dfRElfTl9QS1RfV09SRDQsIEhETUlfSUZSQU1FX1NMT1RfQVVESU8p OwogCURCR0ZTX0RVTVBfREkoSERNSV9TV19ESV9OX1BLVF9XT1JENSwgSERNSV9JRlJBTUVfU0xP VF9BVURJTyk7CiAJREJHRlNfRFVNUF9ESShIRE1JX1NXX0RJX05fUEtUX1dPUkQ2LCBIRE1JX0lG UkFNRV9TTE9UX0FVRElPKTsKLQlzZXFfcHJpbnRmKHMsICJcblxuIFZFTkRPUiBTUEVDSUZJQyBJ bmZvZnJhbWUgKERhdGEgSXNsYW5kIHNsb3QgTj0lZCk6IiwKKwlkcm1fcHJpbnRmKHAsCisJCSAg ICJcblx0XHRWRU5ET1IgU1BFQ0lGSUMgSW5mb2ZyYW1lIChEYXRhIElzbGFuZCBzbG90IE49JWQp OiIsCiAJCSAgIEhETUlfSUZSQU1FX1NMT1RfVkVORE9SKTsKIAlEQkdGU19EVU1QX0RJKEhETUlf U1dfRElfTl9IRUFEX1dPUkQsIEhETUlfSUZSQU1FX1NMT1RfVkVORE9SKTsKIAlEQkdGU19EVU1Q X0RJKEhETUlfU1dfRElfTl9QS1RfV09SRDAsIEhETUlfSUZSQU1FX1NMT1RfVkVORE9SKTsKQEAg LTcxNCwyNCArNzE3LDcgQEAgc3RhdGljIGludCBoZG1pX2RiZ19zaG93KHN0cnVjdCBzZXFfZmls ZSAqcywgdm9pZCAqZGF0YSkKIAlEQkdGU19EVU1QX0RJKEhETUlfU1dfRElfTl9QS1RfV09SRDQs IEhETUlfSUZSQU1FX1NMT1RfVkVORE9SKTsKIAlEQkdGU19EVU1QX0RJKEhETUlfU1dfRElfTl9Q S1RfV09SRDUsIEhETUlfSUZSQU1FX1NMT1RfVkVORE9SKTsKIAlEQkdGU19EVU1QX0RJKEhETUlf U1dfRElfTl9QS1RfV09SRDYsIEhETUlfSUZSQU1FX1NMT1RfVkVORE9SKTsKLQlzZXFfcHV0Yyhz LCAnXG4nKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBkcm1faW5mb19saXN0IGhk bWlfZGVidWdmc19maWxlc1tdID0gewotCXsgImhkbWkiLCBoZG1pX2RiZ19zaG93LCAwLCBOVUxM IH0sCi19OwotCi1zdGF0aWMgaW50IGhkbWlfZGVidWdmc19pbml0KHN0cnVjdCBzdGlfaGRtaSAq aGRtaSwgc3RydWN0IGRybV9taW5vciAqbWlub3IpCi17Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlm b3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShoZG1pX2RlYnVnZnNfZmlsZXMpOyBpKyspCi0JCWhk bWlfZGVidWdmc19maWxlc1tpXS5kYXRhID0gaGRtaTsKLQotCXJldHVybiBkcm1fZGVidWdmc19j cmVhdGVfZmlsZXMoaGRtaV9kZWJ1Z2ZzX2ZpbGVzLAotCQkJCQlBUlJBWV9TSVpFKGhkbWlfZGVi dWdmc19maWxlcyksCi0JCQkJCW1pbm9yLT5kZWJ1Z2ZzX3Jvb3QsIG1pbm9yKTsKKwlkcm1fcHJp bnRmKHAsICJcbiIpOwogfQogCiBzdGF0aWMgdm9pZCBzdGlfaGRtaV9kaXNhYmxlKHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UpCkBAIC0xMDk5LDIwICsxMDg1LDYgQEAgc3RpX2hkbWlfY29ubmVj dG9yX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCXJldHVy biAtRUlOVkFMOwogfQogCi1zdGF0aWMgaW50IHN0aV9oZG1pX2xhdGVfcmVnaXN0ZXIoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlzdHJ1Y3Qgc3RpX2hkbWlfY29ubmVjdG9y ICpoZG1pX2Nvbm5lY3RvcgotCQk9IHRvX3N0aV9oZG1pX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwot CXN0cnVjdCBzdGlfaGRtaSAqaGRtaSA9IGhkbWlfY29ubmVjdG9yLT5oZG1pOwotCi0JaWYgKGhk bWlfZGVidWdmc19pbml0KGhkbWksIGhkbWktPmRybV9kZXYtPnByaW1hcnkpKSB7Ci0JCURSTV9F UlJPUigiSERNSSBkZWJ1Z2ZzIHNldHVwIGZhaWxlZFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwot CX0KLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jf ZnVuY3Mgc3RpX2hkbWlfY29ubmVjdG9yX2Z1bmNzID0gewogCS5maWxsX21vZGVzID0gZHJtX2hl bHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAogCS5kZXRlY3QgPSBzdGlfaGRtaV9j b25uZWN0b3JfZGV0ZWN0LApAQCAtMTEyMiw3ICsxMDk0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX2Z1bmNzIHN0aV9oZG1pX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKIAkuYXRv bWljX2dldF9wcm9wZXJ0eSA9IHN0aV9oZG1pX2Nvbm5lY3Rvcl9nZXRfcHJvcGVydHksCiAJLmF0 b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGlj YXRlX3N0YXRlLAogCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9kZXN0cm95X3N0YXRlLAotCS5sYXRlX3JlZ2lzdGVyID0gc3RpX2hkbWlfbGF0ZV9y ZWdpc3RlciwKKwkuYXRvbWljX3ByaW50X3N0YXRlID0gc3RpX2hkbWlfcHJpbnRfc3RhdGUsCiB9 OwogCiBzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICpzdGlfaGRtaV9maW5kX2VuY29kZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKLS0gCjIuMTUuMAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==