From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: [PATCH 2/4] drm/amd/powerplay: update printk to cgs debug prints for smumgr Date: Thu, 8 Dec 2016 13:23:09 +0800 Message-ID: <1481174591-2187-3-git-send-email-ray.huang@amd.com> References: <1481174591-2187-1-git-send-email-ray.huang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1481174591-2187-1-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= Cc: Arindam Nath , Huang Rui TW9zdCBvZiBwcmludGsgYXJlIHJlcGxhY2VkIGJ5IGNncyBwcmludHMsIGJ1dCBzb21lIGZ1bmN0 aW9ucyBkb2Vzbid0CmhhdmUgZGV2aWNlIG9iaiBmb3Igc29tZSBvZiB0aGVtLiBTbyB1c2UgcHJf KiBpbnN0ZWFkIGF0IHRoYXQgY2FzZXMuCgpTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJheS5o dWFuZ0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9j el9zbXVtZ3IuYyAgIHwgMjggKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvc211bWdyL2Zpamlfc21jLmMgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvZmlqaV9zbXVtZ3IuYyB8ICA4ICsrKy0tLS0KIGRy aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9pY2VsYW5kX3NtYy5jIHwgMTYgKysr KysrLS0tLS0tLQogLi4uL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvaWNlbGFuZF9zbXVt Z3IuYyAgfCAgMiArLQogLi4uL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvcG9sYXJpczEw X3NtYy5jICAgfCAgNCArKy0tCiAuLi4vZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3BvbGFyaXMx MF9zbXVtZ3IuYyAgICB8ICA4ICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5 L3NtdW1nci9zbXU3X3NtdW1nci5jIHwgMTYgKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvc211bWdyL3RvbmdhX3NtYy5jICAgfCAxNCArKysrKy0tLS0tLQogLi4u L2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdG9uZ2Ffc211bWdyLmMgICAgfCAgMiArLQog MTAgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL2N6X3NtdW1nci5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL2N6X3NtdW1nci5jCmluZGV4 IDVhNDQ0ODUuLjliNzI5N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L3NtdW1nci9jel9zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxh eS9zbXVtZ3IvY3pfc211bWdyLmMKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIGludCBjel9zZW5k X21zZ190b19zbWNfYXN5bmMoc3RydWN0IHBwX3NtdW1nciAqc211bWdyLAogCXJlc3VsdCA9IFNN VU1fV0FJVF9GSUVMRF9VTkVRVUFMKHNtdW1nciwKIAkJCQkJU01VX01QMV9TUkJNMlBfUkVTUF8w LCBDT05URU5ULCAwKTsKIAlpZiAocmVzdWx0ICE9IDApIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJb IHBvd2VycGxheSBdIGN6X3NlbmRfbXNnX3RvX3NtY19hc3luYyBmYWlsZWRcbiIpOworCQljZ3Nf ZXJyKHNtdW1nci0+ZGV2aWNlLCAiY3pfc2VuZF9tc2dfdG9fc21jX2FzeW5jIGZhaWxlZFxuIik7 CiAJCXJldHVybiByZXN1bHQ7CiAJfQogCkBAIC0xMDAsMTIgKzEwMCwxMiBAQCBzdGF0aWMgaW50 IGN6X3NldF9zbWNfc3JhbV9hZGRyZXNzKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1nciwKIAkJcmV0 dXJuIC1FSU5WQUw7CiAKIAlpZiAoMCAhPSAoMyAmIHNtY19hZGRyZXNzKSkgewotCQlwcmludGso S0VSTl9FUlIgIlsgcG93ZXJwbGF5IF0gU01DIGFkZHJlc3MgbXVzdCBiZSA0IGJ5dGUgYWxpZ25l ZFxuIik7CisJCWNnc19lcnIoc211bWdyLT5kZXZpY2UsICJTTUMgYWRkcmVzcyBtdXN0IGJlIDQg Ynl0ZSBhbGlnbmVkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJaWYgKGxpbWl0IDw9 IChzbWNfYWRkcmVzcyArIDMpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiWyBwb3dlcnBsYXkgXSBT TUMgYWRkcmVzcyBiZXlvbmQgdGhlIFNNQyBSQU0gYXJlYVxuIik7CisJCWNnc19lcnIoc211bWdy LT5kZXZpY2UsICJTTUMgYWRkcmVzcyBiZXlvbmQgdGhlIFNNQyBSQU0gYXJlYVxuIik7CiAJCXJl dHVybiAtRUlOVkFMOwogCX0KIApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyBpbnQgY3pfcmVx dWVzdF9zbXVfbG9hZF9mdyhzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IpCiAJdWludDMyX3Qgc21j X2FkZHJlc3M7CiAKIAlpZiAoIXNtdW1nci0+cmVsb2FkX2Z3KSB7Ci0JCXByaW50ayhLRVJOX0lO Rk8gIlsgcG93ZXJwbGF5IF0gc2tpcCByZWxvYWRpbmcuLi5cbiIpOworCQljZ3NfaW5mbyhzbXVt Z3ItPmRldmljZSwgInNraXAgcmVsb2FkaW5nLi4uXG4iKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBA IC0xOTgsNyArMTk4LDcgQEAgc3RhdGljIGludCBjel9jaGVja19md19sb2FkX2ZpbmlzaChzdHJ1 Y3QgcHBfc211bWdyICpzbXVtZ3IsCiAJfQogCiAJaWYgKGkgPj0gc211bWdyLT51c2VjX3RpbWVv dXQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJbIHBvd2VycGxheSBdIFNNVSBjaGVjayBsb2FkZWQg ZmlybXdhcmUgZmFpbGVkLlxuIik7CisJCWNnc19lcnIoc211bWdyLT5kZXZpY2UsICJTTVUgY2hl Y2sgbG9hZGVkIGZpcm13YXJlIGZhaWxlZC5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAK QEAgLTI2NywxMyArMjY3LDEzIEBAIHN0YXRpYyBpbnQgY3pfc3RhcnRfc211KHN0cnVjdCBwcF9z bXVtZ3IgKnNtdW1ncikKIAogCXJldCA9IGN6X3JlcXVlc3Rfc211X2xvYWRfZncoc211bWdyKTsK IAlpZiAocmV0KQotCQlwcmludGsoS0VSTl9FUlIgIlsgcG93ZXJwbGF5XSBTTVUgZmlybXdhcmUg bG9hZCBmYWlsZWRcbiIpOworCQljZ3NfZXJyKHNtdW1nci0+ZGV2aWNlLCAiU01VIGZpcm13YXJl IGxvYWQgZmFpbGVkXG4iKTsKIAogCWN6X2NoZWNrX2Z3X2xvYWRfZmluaXNoKHNtdW1nciwgZndf dG9fY2hlY2spOwogCiAJcmV0ID0gY3pfbG9hZF9tZWNfZmlybXdhcmUoc211bWdyKTsKIAlpZiAo cmV0KQotCQlwcmludGsoS0VSTl9FUlIgIlsgcG93ZXJwbGF5IF0gTWVjIEZpcm13YXJlIGxvYWQg ZmFpbGVkXG4iKTsKKwkJY2dzX2VycihzbXVtZ3ItPmRldmljZSwgIk1lYyBGaXJtd2FyZSBsb2Fk IGZhaWxlZFxuIik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNDA2LDcgKzQwNiw3IEBAIHN0YXRp YyBpbnQgY3pfc211X3BvcHVsYXRlX3NpbmdsZV9zY3JhdGNoX3Rhc2soCiAJCQlicmVhazsKIAog CWlmIChpID49IGN6X3NtdS0+c2NyYXRjaF9idWZmZXJfbGVuZ3RoKSB7Ci0JCXByaW50ayhLRVJO X0VSUiAiWyBwb3dlcnBsYXkgXSBJbnZhbGlkIEZpcm13YXJlIFR5cGVcbiIpOworCQljZ3NfZXJy KHNtdW1nci0+ZGV2aWNlLCAiSW52YWxpZCBGaXJtd2FyZSBUeXBlXG4iKTsKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCkBAIC00NDMsNyArNDQzLDcgQEAgc3RhdGljIGludCBjel9zbXVfcG9wdWxh dGVfc2luZ2xlX3Vjb2RlX2xvYWRfdGFzaygKIAkJCWJyZWFrOwogCiAJaWYgKGkgPj0gY3pfc211 LT5kcml2ZXJfYnVmZmVyX2xlbmd0aCkgewotCQlwcmludGsoS0VSTl9FUlIgIlsgcG93ZXJwbGF5 IF0gSW52YWxpZCBGaXJtd2FyZSBUeXBlXG4iKTsKKwkJY2dzX2VycihzbXVtZ3ItPmRldmljZSwg IkludmFsaWQgRmlybXdhcmUgVHlwZVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAt Nzc0LDcgKzc3NCw3IEBAIHN0YXRpYyBpbnQgY3pfc211X2luaXQoc3RydWN0IHBwX3NtdW1nciAq c211bWdyKQogCQlDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX1JMQ19TQ1JBVENILAogCQlVQ09E RV9JRF9STENfU0NSQVRDSF9TSVpFX0JZVEUsCiAJCSZjel9zbXUtPnNjcmF0Y2hfYnVmZmVyW2N6 X3NtdS0+c2NyYXRjaF9idWZmZXJfbGVuZ3RoKytdKSkgewotCQlwcmludGsoS0VSTl9FUlIgIlsg cG93ZXJwbGF5IF0gRXJyb3Igd2hlbiBQb3B1bGF0ZSBGaXJtd2FyZSBFbnRyeS5cbiIpOworCQlj Z3NfZXJyKHNtdW1nci0+ZGV2aWNlLCAiRXJyb3Igd2hlbiBQb3B1bGF0ZSBGaXJtd2FyZSBFbnRy eS5cbiIpOwogCQlyZXR1cm4gLTE7CiAJfQogCkBAIC03ODIsMTQgKzc4MiwxNCBAQCBzdGF0aWMg aW50IGN6X3NtdV9pbml0KHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKIAkJQ1pfU0NSQVRDSF9F TlRSWV9VQ09ERV9JRF9STENfU1JNX0FSQU0sCiAJCVVDT0RFX0lEX1JMQ19TUk1fQVJBTV9TSVpF X0JZVEUsCiAJCSZjel9zbXUtPnNjcmF0Y2hfYnVmZmVyW2N6X3NtdS0+c2NyYXRjaF9idWZmZXJf bGVuZ3RoKytdKSkgewotCQlwcmludGsoS0VSTl9FUlIgIlsgcG93ZXJwbGF5IF0gRXJyb3Igd2hl biBQb3B1bGF0ZSBGaXJtd2FyZSBFbnRyeS5cbiIpOworCQljZ3NfZXJyKHNtdW1nci0+ZGV2aWNl LCAiRXJyb3Igd2hlbiBQb3B1bGF0ZSBGaXJtd2FyZSBFbnRyeS5cbiIpOwogCQlyZXR1cm4gLTE7 CiAJfQogCWlmICgwICE9IGN6X3NtdV9wb3B1bGF0ZV9zaW5nbGVfc2NyYXRjaF9lbnRyeShzbXVt Z3IsCiAJCUNaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfUkxDX1NSTV9EUkFNLAogCQlVQ09ERV9J RF9STENfU1JNX0RSQU1fU0laRV9CWVRFLAogCQkmY3pfc211LT5zY3JhdGNoX2J1ZmZlcltjel9z bXUtPnNjcmF0Y2hfYnVmZmVyX2xlbmd0aCsrXSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJbIHBv d2VycGxheSBdIEVycm9yIHdoZW4gUG9wdWxhdGUgRmlybXdhcmUgRW50cnkuXG4iKTsKKwkJY2dz X2VycihzbXVtZ3ItPmRldmljZSwgIkVycm9yIHdoZW4gUG9wdWxhdGUgRmlybXdhcmUgRW50cnku XG4iKTsKIAkJcmV0dXJuIC0xOwogCX0KIApAQCAtNzk3LDcgKzc5Nyw3IEBAIHN0YXRpYyBpbnQg Y3pfc211X2luaXQoc3RydWN0IHBwX3NtdW1nciAqc211bWdyKQogCQlDWl9TQ1JBVENIX0VOVFJZ X1VDT0RFX0lEX1BPV0VSX1BST0ZJTElORywKIAkJc2l6ZW9mKHN0cnVjdCBTTVU4X011bHRpbWVk aWFQb3dlckxvZ0RhdGEpLAogCQkmY3pfc211LT5zY3JhdGNoX2J1ZmZlcltjel9zbXUtPnNjcmF0 Y2hfYnVmZmVyX2xlbmd0aCsrXSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJbIHBvd2VycGxheSBd IEVycm9yIHdoZW4gUG9wdWxhdGUgRmlybXdhcmUgRW50cnkuXG4iKTsKKwkJY2dzX2VycihzbXVt Z3ItPmRldmljZSwgIkVycm9yIHdoZW4gUG9wdWxhdGUgRmlybXdhcmUgRW50cnkuXG4iKTsKIAkJ cmV0dXJuIC0xOwogCX0KIApAQCAtODA1LDcgKzgwNSw3IEBAIHN0YXRpYyBpbnQgY3pfc211X2lu aXQoc3RydWN0IHBwX3NtdW1nciAqc211bWdyKQogCQlDWl9TQ1JBVENIX0VOVFJZX1NNVThfRlVT SU9OX0NMS1RBQkxFLAogCQlzaXplb2Yoc3RydWN0IFNNVThfRnVzaW9uX0Nsa1RhYmxlKSwKIAkJ JmN6X3NtdS0+c2NyYXRjaF9idWZmZXJbY3pfc211LT5zY3JhdGNoX2J1ZmZlcl9sZW5ndGgrK10p KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiWyBwb3dlcnBsYXkgXSBFcnJvciB3aGVuIFBvcHVsYXRl IEZpcm13YXJlIEVudHJ5LlxuIik7CisJCWNnc19lcnIoc211bWdyLT5kZXZpY2UsICJFcnJvciB3 aGVuIFBvcHVsYXRlIEZpcm13YXJlIEVudHJ5LlxuIik7CiAJCXJldHVybiAtMTsKIAl9CiAJY3pf c211X2NvbnN0cnVjdF90b2Moc211bWdyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L3NtdW1nci9maWppX3NtYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvc211bWdyL2Zpamlfc21jLmMKaW5kZXggNmFlYjFkMi4uMjUyZTJiOSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL2Zpamlfc21jLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL2Zpamlfc21jLmMKQEAgLTIxMzEs NyArMjEzMSw3IEBAIHVpbnQzMl90IGZpamlfZ2V0X29mZnNldG9mKHVpbnQzMl90IHR5cGUsIHVp bnQzMl90IG1lbWJlcikKIAkJCXJldHVybiBvZmZzZXRvZihTTVU3M19EaXNjcmV0ZV9EcG1UYWJs ZSwgTG93U2Nsa0ludGVycnVwdFRocmVzaG9sZCk7CiAJCX0KIAl9Ci0JcHJpbnRrKEtFUk5fV0FS TklORyAiY2FuJ3QgZ2V0IHRoZSBvZmZzZXQgb2YgdHlwZSAleCBtZW1iZXIgJXhcbiIsIHR5cGUs IG1lbWJlcik7CisJcHJfd2FybmluZygiY2FuJ3QgZ2V0IHRoZSBvZmZzZXQgb2YgdHlwZSAleCBt ZW1iZXIgJXhcbiIsIHR5cGUsIG1lbWJlcik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTIxNTYsNyAr MjE1Niw3IEBAIHVpbnQzMl90IGZpamlfZ2V0X21hY19kZWZpbml0aW9uKHVpbnQzMl90IHZhbHVl KQogCQlyZXR1cm4gU01VNzNfTUFYX0xFVkVMU19NVkREOwogCX0KIAotCXByaW50ayhLRVJOX1dB Uk5JTkcgImNhbid0IGdldCB0aGUgbWFjIG9mICV4XG4iLCB2YWx1ZSk7CisJcHJfd2FybmluZygi Y2FuJ3QgZ2V0IHRoZSBtYWMgb2YgJXhcbiIsIHZhbHVlKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL2Zpamlfc211bWdy LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvZmlqaV9zbXVtZ3IuYwpp bmRleCAyNmVmZjU2Li45OTM5MTQ2IDEwMDc1NQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9zbXVtZ3IvZmlqaV9zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9zbXVtZ3IvZmlqaV9zbXVtZ3IuYwpAQCAtMTc5LDcgKzE3OSw3IEBAIHN0YXRpYyBp bnQgZmlqaV9zZXR1cF9wd3JfdmlydXMoc3RydWN0IHBwX3NtdW1nciAqc211bWdyKQogCQkJcmVz dWx0ID0gMDsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJcHJpbnRrKEtFUk5fRVJSICJUYWJs ZSBFeGl0IHdpdGggSW52YWxpZCBDb21tYW5kISIpOworCQkJY2dzX2VycihzbXVtZ3ItPmRldmlj ZSwgICJUYWJsZSBFeGl0IHdpdGggSW52YWxpZCBDb21tYW5kISIpOwogCQkJcHJpdi0+YXZmcy5B dmZzQnRjU3RhdHVzID0gQVZGU19CVENfVklSVVNfRkFJTDsKIAkJCXJlc3VsdCA9IC0xOwogCQkJ YnJlYWs7CkBAIC0yMDIsMTMgKzIwMiwxMyBAQCBzdGF0aWMgaW50IGZpamlfc3RhcnRfYXZmc19i dGMoc3RydWN0IHBwX3NtdW1nciAqc211bWdyKQogCQkJCXByaXYtPmF2ZnMuQXZmc0J0Y1N0YXR1 cyA9IEFWRlNfQlRDX0NPTVBMRVRFRF9VTlNBVkVEOwogCQkJCXJlc3VsdCA9IDA7CiAJCQl9IGVs c2UgewotCQkJCXByaW50ayhLRVJOX0VSUiAiW0FWRlNdW2Zpamlfc3RhcnRfYXZmc19idGNdIEF0 dGVtcHQiCisJCQkJY2dzX2VycihzbXVtZ3ItPmRldmljZSwgICJbQVZGU11bZmlqaV9zdGFydF9h dmZzX2J0Y10gQXR0ZW1wdCIKIAkJCQkJCSIgdG8gRW5hYmxlIEFWRlMgRmFpbGVkISIpOwogCQkJ CXNtdW1fc2VuZF9tc2dfdG9fc21jKHNtdW1nciwgUFBTTUNfTVNHX0Rpc2FibGVBdmZzKTsKIAkJ CQlyZXN1bHQgPSAtMTsKIAkJCX0KIAkJfSBlbHNlIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiW0FW RlNdW2Zpamlfc3RhcnRfYXZmc19idGNdICIKKwkJCWNnc19lcnIoc211bWdyLT5kZXZpY2UsICAi W0FWRlNdW2Zpamlfc3RhcnRfYXZmc19idGNdICIKIAkJCQkJIlBlcmZvcm1CVEMgU01VIG1zZyBm YWlsZWQiKTsKIAkJCXJlc3VsdCA9IC0xOwogCQl9CkBAIC0zODQsNyArMzg0LDcgQEAgc3RhdGlj IGludCBmaWppX2F2ZnNfZXZlbnRfbWdyKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1nciwgYm9vbCBz bXVfc3RhcnRlZCkKIAljYXNlIEFWRlNfQlRDX05PVFNVUFBPUlRFRDogLyogRG8gbm90aGluZyAq LwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9FUlIgIltBVkZTXSBTb21ldGhp bmcgaXMgYnJva2VuLiBTZWUgbG9nISIpOworCQljZ3NfZXJyKHNtdW1nci0+ZGV2aWNlLCAgIltB VkZTXSBTb21ldGhpbmcgaXMgYnJva2VuLiBTZWUgbG9nISIpOwogCQlicmVhazsKIAl9CiAJcmV0 dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Iv aWNlbGFuZF9zbWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9pY2Vs YW5kX3NtYy5jCmluZGV4IGEyNDk3MWEuLmNlZjgzMzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9pY2VsYW5kX3NtYy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9pY2VsYW5kX3NtYy5jCkBAIC0zNzgsNyArMzc4LDcg QEAgc3RhdGljIGludCBpY2VsYW5kX2dldF9zdGRfdm9sdGFnZV92YWx1ZV9zaWRkKHN0cnVjdCBw cF9od21nciAqaHdtZ3IsCiAJCQlyZXR1cm4gLUVJTlZBTCk7CiAKIAlpZiAoTlVMTCA9PSBod21n ci0+ZHluX3N0YXRlLmNhY19sZWFrYWdlX3RhYmxlKSB7Ci0JCXByX3dhcm5pbmcoIkNBQyBMZWFr YWdlIFRhYmxlIGRvZXMgbm90IGV4aXN0LCB1c2luZyB2ZGRjLlxuIik7CisJCWNnc193YXJuKGh3 bWdyLT5kZXZpY2UsICJDQUMgTGVha2FnZSBUYWJsZSBkb2VzIG5vdCBleGlzdCwgdXNpbmcgdmRk Yy5cbiIpOwogCQlyZXR1cm4gMDsKIAl9CiAKQEAgLTM5NCw3ICszOTQsNyBAQCBzdGF0aWMgaW50 IGljZWxhbmRfZ2V0X3N0ZF92b2x0YWdlX3ZhbHVlX3NpZGQoc3RydWN0IHBwX2h3bWdyICpod21n ciwKIAkJCQkqbG8gPSBod21nci0+ZHluX3N0YXRlLmNhY19sZWFrYWdlX3RhYmxlLT5lbnRyaWVz W3ZfaW5kZXhdLlZkZGMgKiBWT0xUQUdFX1NDQUxFOwogCQkJCSpoaSA9ICh1aW50MTZfdCkoaHdt Z3ItPmR5bl9zdGF0ZS5jYWNfbGVha2FnZV90YWJsZS0+ZW50cmllc1t2X2luZGV4XS5MZWFrYWdl ICogVk9MVEFHRV9TQ0FMRSk7CiAJCQl9IGVsc2UgewotCQkJCXByX3dhcm5pbmcoIkluZGV4IGZy b20gU0NMSy9WRERDIERlcGVuZGVuY3kgVGFibGUgZXhjZWVkcyB0aGUgQ0FDIExlYWthZ2UgVGFi bGUgaW5kZXgsIHVzaW5nIG1heGltdW0gaW5kZXggZnJvbSBDQUMgdGFibGUuXG4iKTsKKwkJCQlj Z3Nfd2Fybihod21nci0+ZGV2aWNlLCAiSW5kZXggZnJvbSBTQ0xLL1ZEREMgRGVwZW5kZW5jeSBU YWJsZSBleGNlZWRzIHRoZSBDQUMgTGVha2FnZSBUYWJsZSBpbmRleCwgdXNpbmcgbWF4aW11bSBp bmRleCBmcm9tIENBQyB0YWJsZS5cbiIpOwogCQkJCSpsbyA9IGh3bWdyLT5keW5fc3RhdGUuY2Fj X2xlYWthZ2VfdGFibGUtPmVudHJpZXNbaHdtZ3ItPmR5bl9zdGF0ZS5jYWNfbGVha2FnZV90YWJs ZS0+Y291bnQgLSAxXS5WZGRjICogVk9MVEFHRV9TQ0FMRTsKIAkJCQkqaGkgPSAodWludDE2X3Qp KGh3bWdyLT5keW5fc3RhdGUuY2FjX2xlYWthZ2VfdGFibGUtPmVudHJpZXNbaHdtZ3ItPmR5bl9z dGF0ZS5jYWNfbGVha2FnZV90YWJsZS0+Y291bnQgLSAxXS5MZWFrYWdlICogVk9MVEFHRV9TQ0FM RSk7CiAJCQl9CkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGljIGludCBpY2VsYW5kX2dldF9zdGRf dm9sdGFnZV92YWx1ZV9zaWRkKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJCQkJCSpsbyA9IGh3 bWdyLT5keW5fc3RhdGUuY2FjX2xlYWthZ2VfdGFibGUtPmVudHJpZXNbdl9pbmRleF0uVmRkYyAq IFZPTFRBR0VfU0NBTEU7CiAJCQkJCSpoaSA9ICh1aW50MTZfdCkoaHdtZ3ItPmR5bl9zdGF0ZS5j YWNfbGVha2FnZV90YWJsZS0+ZW50cmllc1t2X2luZGV4XS5MZWFrYWdlKSAqIFZPTFRBR0VfU0NB TEU7CiAJCQkJfSBlbHNlIHsKLQkJCQkJcHJfd2FybmluZygiSW5kZXggZnJvbSBTQ0xLL1ZEREMg RGVwZW5kZW5jeSBUYWJsZSBleGNlZWRzIHRoZSBDQUMgTGVha2FnZSBUYWJsZSBpbmRleCBpbiBz ZWNvbmQgbG9vayB1cCwgdXNpbmcgbWF4aW11bSBpbmRleCBmcm9tIENBQyB0YWJsZS4iKTsKKwkJ CQkJY2dzX3dhcm4oaHdtZ3ItPmRldmljZSwgIkluZGV4IGZyb20gU0NMSy9WRERDIERlcGVuZGVu Y3kgVGFibGUgZXhjZWVkcyB0aGUgQ0FDIExlYWthZ2UgVGFibGUgaW5kZXggaW4gc2Vjb25kIGxv b2sgdXAsIHVzaW5nIG1heGltdW0gaW5kZXggZnJvbSBDQUMgdGFibGUuIik7CiAJCQkJCSpsbyA9 IGh3bWdyLT5keW5fc3RhdGUuY2FjX2xlYWthZ2VfdGFibGUtPmVudHJpZXNbaHdtZ3ItPmR5bl9z dGF0ZS5jYWNfbGVha2FnZV90YWJsZS0+Y291bnQgLSAxXS5WZGRjICogVk9MVEFHRV9TQ0FMRTsK IAkJCQkJKmhpID0gKHVpbnQxNl90KShod21nci0+ZHluX3N0YXRlLmNhY19sZWFrYWdlX3RhYmxl LT5lbnRyaWVzW2h3bWdyLT5keW5fc3RhdGUuY2FjX2xlYWthZ2VfdGFibGUtPmNvdW50IC0gMV0u TGVha2FnZSAqIFZPTFRBR0VfU0NBTEUpOwogCQkJCX0KQEAgLTQyMyw3ICs0MjMsNyBAQCBzdGF0 aWMgaW50IGljZWxhbmRfZ2V0X3N0ZF92b2x0YWdlX3ZhbHVlX3NpZGQoc3RydWN0IHBwX2h3bWdy ICpod21nciwKIAkJfQogCiAJCWlmICghdm9sX2ZvdW5kKQotCQkJcHJfd2FybmluZygiVW5hYmxl IHRvIGdldCBzdGRfdmRkYyBmcm9tIFNDTEsvVkREQyBEZXBlbmRlbmN5IFRhYmxlLCB1c2luZyB2 ZGRjLlxuIik7CisJCQljZ3Nfd2Fybihod21nci0+ZGV2aWNlLCAiVW5hYmxlIHRvIGdldCBzdGRf dmRkYyBmcm9tIFNDTEsvVkREQyBEZXBlbmRlbmN5IFRhYmxlLCB1c2luZyB2ZGRjLlxuIik7CiAJ fQogCiAJcmV0dXJuIDA7CkBAIC0xNTQ1LDcgKzE1NDUsNyBAQCBzdGF0aWMgaW50IGljZWxhbmRf cG9wdWxhdGVfc21jX2Jvb3RfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21nciwKIAogCWlmICgw ICE9IHJlc3VsdCkgewogCQlzbXVfZGF0YS0+c21jX3N0YXRlX3RhYmxlLkdyYXBoaWNzQm9vdExl dmVsID0gMDsKLQkJcHJpbnRrKEtFUk5fRVJSICJbIHBvd2VycGxheSBdIFZCSU9TIGRpZCBub3Qg ZmluZCBib290IGVuZ2luZSBjbG9jayB2YWx1ZSBcCisJCWNnc19lcnIoaHdtZ3ItPmRldmljZSwg IlsgcG93ZXJwbGF5IF0gVkJJT1MgZGlkIG5vdCBmaW5kIGJvb3QgZW5naW5lIGNsb2NrIHZhbHVl IFwKIAkJCWluIGRlcGVuZGVuY3kgdGFibGUuIFVzaW5nIEdyYXBoaWNzIERQTSBsZXZlbCAwISIp OwogCQlyZXN1bHQgPSAwOwogCX0KQEAgLTE1NTYsNyArMTU1Niw3IEBAIHN0YXRpYyBpbnQgaWNl bGFuZF9wb3B1bGF0ZV9zbWNfYm9vdF9sZXZlbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCiAJ aWYgKDAgIT0gcmVzdWx0KSB7CiAJCXNtdV9kYXRhLT5zbWNfc3RhdGVfdGFibGUuTWVtb3J5Qm9v dExldmVsID0gMDsKLQkJcHJpbnRrKEtFUk5fRVJSICJbIHBvd2VycGxheSBdIFZCSU9TIGRpZCBu b3QgZmluZCBib290IGVuZ2luZSBjbG9jayB2YWx1ZSBcCisJCWNnc19lcnIoaHdtZ3ItPmRldmlj ZSwgIlsgcG93ZXJwbGF5IF0gVkJJT1MgZGlkIG5vdCBmaW5kIGJvb3QgZW5naW5lIGNsb2NrIHZh bHVlIFwKIAkJCWluIGRlcGVuZGVuY3kgdGFibGUuIFVzaW5nIE1lbW9yeSBEUE0gbGV2ZWwgMCEi KTsKIAkJcmVzdWx0ID0gMDsKIAl9CkBAIC0yMTQ2LDcgKzIxNDYsNyBAQCB1aW50MzJfdCBpY2Vs YW5kX2dldF9vZmZzZXRvZih1aW50MzJfdCB0eXBlLCB1aW50MzJfdCBtZW1iZXIpCiAJCQlyZXR1 cm4gb2Zmc2V0b2YoU01VNzFfRGlzY3JldGVfRHBtVGFibGUsIExvd1NjbGtJbnRlcnJ1cHRUaHJl c2hvbGQpOwogCQl9CiAJfQotCXByaW50ayhLRVJOX1dBUk5JTkcgImNhbid0IGdldCB0aGUgb2Zm c2V0IG9mIHR5cGUgJXggbWVtYmVyICV4XG4iLCB0eXBlLCBtZW1iZXIpOworCXByX3dhcm5pbmco ImNhbid0IGdldCB0aGUgb2Zmc2V0IG9mIHR5cGUgJXggbWVtYmVyICV4XG4iLCB0eXBlLCBtZW1i ZXIpOwogCXJldHVybiAwOwogfQogCkBAIC0yMTY5LDcgKzIxNjksNyBAQCB1aW50MzJfdCBpY2Vs YW5kX2dldF9tYWNfZGVmaW5pdGlvbih1aW50MzJfdCB2YWx1ZSkKIAkJcmV0dXJuIFNNVTcxX01B WF9MRVZFTFNfTVZERDsKIAl9CiAKLQlwcmludGsoS0VSTl9XQVJOSU5HICJjYW4ndCBnZXQgdGhl IG1hYyBvZiAleFxuIiwgdmFsdWUpOworCXByX3dhcm5pbmcoImNhbid0IGdldCB0aGUgbWFjIG9m ICV4XG4iLCB2YWx1ZSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9pY2VsYW5kX3NtdW1nci5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL2ljZWxhbmRfc211bWdyLmMKaW5kZXggZWVhZmVmYy4u M2Y3NzgxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdy L2ljZWxhbmRfc211bWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211 bWdyL2ljZWxhbmRfc211bWdyLmMKQEAgLTE3Niw3ICsxNzYsNyBAQCBzdGF0aWMgaW50IGljZWxh bmRfc3RhcnRfc211KHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKIAkJcmV0dXJuIHJlc3VsdDsK IAogCWlmICghc211N19pc19zbWNfcmFtX3J1bm5pbmcoc211bWdyKSkgewotCQlwcmludGsoInNt dSBub3QgcnVubmluZywgdXBsb2FkIGZpcm13YXJlIGFnYWluIFxuIik7CisJCWNnc19pbmZvKHNt dW1nci0+ZGV2aWNlLCAic211IG5vdCBydW5uaW5nLCB1cGxvYWQgZmlybXdhcmUgYWdhaW4gXG4i KTsKIAkJcmVzdWx0ID0gaWNlbGFuZF9zbXVfdXBsb2FkX2Zpcm13YXJlX2ltYWdlKHNtdW1ncik7 CiAJCWlmIChyZXN1bHQpCiAJCQlyZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3BvbGFyaXMxMF9zbWMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9wb2xhcmlzMTBfc21jLmMKaW5kZXggNTE5MGU4Mi4u NTg4ODFlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdy L3BvbGFyaXMxMF9zbWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVt Z3IvcG9sYXJpczEwX3NtYy5jCkBAIC0yMTgwLDcgKzIxODAsNyBAQCB1aW50MzJfdCBwb2xhcmlz MTBfZ2V0X29mZnNldG9mKHVpbnQzMl90IHR5cGUsIHVpbnQzMl90IG1lbWJlcikKIAkJCXJldHVy biBvZmZzZXRvZihTTVU3NF9EaXNjcmV0ZV9EcG1UYWJsZSwgTG93U2Nsa0ludGVycnVwdFRocmVz aG9sZCk7CiAJCX0KIAl9Ci0JcHJpbnRrKEtFUk5fV0FSTklORyAiY2FuJ3QgZ2V0IHRoZSBvZmZz ZXQgb2YgdHlwZSAleCBtZW1iZXIgJXhcbiIsIHR5cGUsIG1lbWJlcik7CisJcHJfd2FybmluZygi Y2FuJ3QgZ2V0IHRoZSBvZmZzZXQgb2YgdHlwZSAleCBtZW1iZXIgJXhcbiIsIHR5cGUsIG1lbWJl cik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTIyMDcsNyArMjIwNyw3IEBAIHVpbnQzMl90IHBvbGFy aXMxMF9nZXRfbWFjX2RlZmluaXRpb24odWludDMyX3QgdmFsdWUpCiAJCXJldHVybiBTTVU3X1VW RF9NQ0xLX0hBTkRTSEFLRV9ESVNBQkxFOwogCX0KIAotCXByaW50ayhLRVJOX1dBUk5JTkcgImNh bid0IGdldCB0aGUgbWFjIG9mICV4XG4iLCB2YWx1ZSk7CisJcHJfd2FybmluZygiY2FuJ3QgZ2V0 IHRoZSBtYWMgb2YgJXhcbiIsIHZhbHVlKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3BvbGFyaXMxMF9zbXVtZ3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9wb2xhcmlzMTBfc211bWdyLmMK aW5kZXggZjM4YTY4Ny4uYTYyZDFjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9w b3dlcnBsYXkvc211bWdyL3BvbGFyaXMxMF9zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9zbXVtZ3IvcG9sYXJpczEwX3NtdW1nci5jCkBAIC04NCw3ICs4NCw3IEBA IHN0YXRpYyBpbnQgcG9sYXJpczEwX3NldHVwX3B3cl92aXJ1cyhzdHJ1Y3QgcHBfc211bWdyICpz bXVtZ3IpCiAJCQlicmVhazsKIAogCQlkZWZhdWx0OgotCQkJcHJpbnRrKCJUYWJsZSBFeGl0IHdp dGggSW52YWxpZCBDb21tYW5kISIpOworCQkJY2dzX2luZm8oc211bWdyLT5kZXZpY2UsICJUYWJs ZSBFeGl0IHdpdGggSW52YWxpZCBDb21tYW5kISIpOwogCQkJc211X2RhdGEtPmF2ZnMuYXZmc19i dGNfc3RhdHVzID0gQVZGU19CVENfVklSVVNfRkFJTDsKIAkJCXJlc3VsdCA9IC0xOwogCQkJYnJl YWs7CkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIGludCBwb2xhcmlzMTBfcGVyZm9ybV9idGMo c3RydWN0IHBwX3NtdW1nciAqc211bWdyKQogCiAJaWYgKDAgIT0gc211X2RhdGEtPmF2ZnMuYXZm c19idGNfcGFyYW0pIHsKIAkJaWYgKDAgIT0gc211N19zZW5kX21zZ190b19zbWNfd2l0aF9wYXJh bWV0ZXIoc211bWdyLCBQUFNNQ19NU0dfUGVyZm9ybUJ0Yywgc211X2RhdGEtPmF2ZnMuYXZmc19i dGNfcGFyYW0pKSB7Ci0JCQlwcmludGsoIltBVkZTXVtTbXVQb2xhcmlzMTBfUGVyZm9ybUJ0Y10g UGVyZm9ybUJUQyBTTVUgbXNnIGZhaWxlZCIpOworCQkJY2dzX2luZm8oc211bWdyLT5kZXZpY2Us ICJbQVZGU11bU211UG9sYXJpczEwX1BlcmZvcm1CdGNdIFBlcmZvcm1CVEMgU01VIG1zZyBmYWls ZWQiKTsKIAkJCXJlc3VsdCA9IC0xOwogCQl9CiAJfQpAQCAtMTg5LDcgKzE4OSw3IEBAIHBvbGFy aXMxMF9hdmZzX2V2ZW50X21ncihzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IsIGJvb2wgU01VX1ZG VF9JTlRBQ1QpCiAJCXJldHVybiAtMSk7CiAKIAkJaWYgKHNtdV9kYXRhLT5hdmZzLmF2ZnNfYnRj X3BhcmFtID4gMSkgewotCQkJcHJpbnRrKCJbQVZGU11bUG9sYXJpczEwX0FWRlNFdmVudE1ncl0g QUMgQlRDIGhhcyBub3QgYmVlbiBzdWNjZXNzZnVsbHkgdmVyaWZpZWQgb24gRmlqaS4gVGhlcmUg bWF5IGJlIGluIHRoaXMgc2V0dGluZy4iKTsKKwkJCWNnc19pbmZvKHNtdW1nci0+ZGV2aWNlLCAi W0FWRlNdW1BvbGFyaXMxMF9BVkZTRXZlbnRNZ3JdIEFDIEJUQyBoYXMgbm90IGJlZW4gc3VjY2Vz c2Z1bGx5IHZlcmlmaWVkIG9uIEZpamkuIFRoZXJlIG1heSBiZSBpbiB0aGlzIHNldHRpbmcuIik7 CiAJCQlzbXVfZGF0YS0+YXZmcy5hdmZzX2J0Y19zdGF0dXMgPSBBVkZTX0JUQ19WSVJVU19GQUlM OwogCQkJUFBfQVNTRVJUX1dJVEhfQ09ERSgtMSA9PSBwb2xhcmlzMTBfc2V0dXBfcHdyX3ZpcnVz KHNtdW1nciksCiAJCQkiW0FWRlNdW1BvbGFyaXMxMF9BVkZTRXZlbnRNZ3JdIENvdWxkIG5vdCBz ZXR1cCBQd3IgVmlydXMgZm9yIEFWRlMgIiwKQEAgLTIwOCw3ICsyMDgsNyBAQCBwb2xhcmlzMTBf YXZmc19ldmVudF9tZ3Ioc3RydWN0IHBwX3NtdW1nciAqc211bWdyLCBib29sIFNNVV9WRlRfSU5U QUNUKQogCQlicmVhazsKIAogCWRlZmF1bHQ6Ci0JCXByaW50aygiW0FWRlNdIFNvbWV0aGluZyBp cyBicm9rZW4uIFNlZSBsb2chIik7CisJCWNnc19pbmZvKHNtdW1nci0+ZGV2aWNlLCAiW0FWRlNd IFNvbWV0aGluZyBpcyBicm9rZW4uIFNlZSBsb2chIik7CiAJCWJyZWFrOwogCX0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3NtdTdfc211bWdyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Ivc211N19zbXVtZ3IuYwppbmRl eCBmNDliNTQ4Li5mMzEwMWExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2Vy cGxheS9zbXVtZ3Ivc211N19zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2Vy cGxheS9zbXVtZ3Ivc211N19zbXVtZ3IuYwpAQCAtMTc1LDcgKzE3NSw3IEBAIGludCBzbXU3X3Nl bmRfbXNnX3RvX3NtYyhzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IsIHVpbnQxNl90IG1zZykKIAly ZXQgPSBTTVVNX1JFQURfRklFTEQoc211bWdyLT5kZXZpY2UsIFNNQ19SRVNQXzAsIFNNQ19SRVNQ KTsKIAogCWlmIChyZXQgIT0gMSkKLQkJcHJpbnRrKCJcbiBmYWlsZWQgdG8gc2VuZCBwcmUgbWVz c2FnZSAleCByZXQgaXMgJWQgXG4iLCAgbXNnLCByZXQpOworCQljZ3Nfd2FybihzbXVtZ3ItPmRl dmljZSwgIlxuIGZhaWxlZCB0byBzZW5kIHByZSBtZXNzYWdlICV4IHJldCBpcyAlZCBcbiIsICBt c2csIHJldCk7CiAKIAljZ3Nfd3JpdGVfcmVnaXN0ZXIoc211bWdyLT5kZXZpY2UsIG1tU01DX01F U1NBR0VfMCwgbXNnKTsKIApAQCAtMTg0LDcgKzE4NCw3IEBAIGludCBzbXU3X3NlbmRfbXNnX3Rv X3NtYyhzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IsIHVpbnQxNl90IG1zZykKIAlyZXQgPSBTTVVN X1JFQURfRklFTEQoc211bWdyLT5kZXZpY2UsIFNNQ19SRVNQXzAsIFNNQ19SRVNQKTsKIAogCWlm IChyZXQgIT0gMSkKLQkJcHJpbnRrKCJcbiBmYWlsZWQgdG8gc2VuZCBtZXNzYWdlICV4IHJldCBp cyAlZCBcbiIsICBtc2csIHJldCk7CisJCWNnc193YXJuKHNtdW1nci0+ZGV2aWNlLCAiXG4gZmFp bGVkIHRvIHNlbmQgbWVzc2FnZSAleCByZXQgaXMgJWQgXG4iLCAgbXNnLCByZXQpOwogCiAJcmV0 dXJuIDA7CiB9CkBAIC0yMjUsNyArMjI1LDcgQEAgaW50IHNtdTdfc2VuZF9tc2dfdG9fc21jX29m ZnNldChzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IpCiAJU01VTV9XQUlUX0ZJRUxEX1VORVFVQUwo c211bWdyLCBTTUNfUkVTUF8wLCBTTUNfUkVTUCwgMCk7CiAKIAlpZiAoMSAhPSBTTVVNX1JFQURf RklFTEQoc211bWdyLT5kZXZpY2UsIFNNQ19SRVNQXzAsIFNNQ19SRVNQKSkKLQkJcHJpbnRrKCJG YWlsZWQgdG8gc2VuZCBNZXNzYWdlLlxuIik7CisJCWNnc193YXJuKHNtdW1nci0+ZGV2aWNlLCAi RmFpbGVkIHRvIHNlbmQgTWVzc2FnZS5cbiIpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zMTgsNyAr MzE4LDcgQEAgaW50IHNtdTdfd3JpdGVfc21jX3NyYW1fZHdvcmQoc3RydWN0IHBwX3NtdW1nciAq c211bWdyLCB1aW50MzJfdCBzbWNfYWRkciwgdWludDMKIAogLyogQ29udmVydCB0aGUgZmlybXdh cmUgdHlwZSB0byBTTVUgdHlwZSBtYXNrLiBGb3IgTUVDLCB3ZSBuZWVkIHRvIGNoZWNrIGFsbCBN RUMgcmVsYXRlZCB0eXBlICovCiAKLXN0YXRpYyB1aW50MzJfdCBzbXU3X2dldF9tYXNrX2Zvcl9m aXJtd2FyZV90eXBlKHVpbnQzMl90IGZ3X3R5cGUpCitzdGF0aWMgdWludDMyX3Qgc211N19nZXRf bWFza19mb3JfZmlybXdhcmVfdHlwZShzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IsIHVpbnQzMl90 IGZ3X3R5cGUpCiB7CiAJdWludDMyX3QgcmVzdWx0ID0gMDsKIApAQCAtMzQ3LDcgKzM0Nyw3IEBA IHN0YXRpYyB1aW50MzJfdCBzbXU3X2dldF9tYXNrX2Zvcl9maXJtd2FyZV90eXBlKHVpbnQzMl90 IGZ3X3R5cGUpCiAJCXJlc3VsdCA9IFVDT0RFX0lEX1JMQ19HX01BU0s7CiAJCWJyZWFrOwogCWRl ZmF1bHQ6Ci0JCXByaW50aygiVUNvZGUgdHlwZSBpcyBvdXQgb2YgcmFuZ2UhIFxuIik7CisJCWNn c193YXJuKHNtdW1nci0+ZGV2aWNlLCJVQ29kZSB0eXBlIGlzIG91dCBvZiByYW5nZSEgXG4iKTsK IAkJcmVzdWx0ID0gMDsKIAl9CiAKQEAgLTM5Niw3ICszOTYsNyBAQCBpbnQgc211N19yZXF1ZXN0 X3NtdV9sb2FkX2Z3KHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKIAlzdHJ1Y3QgU01VX0RSQU1E YXRhX1RPQyAqdG9jOwogCiAJaWYgKCFzbXVtZ3ItPnJlbG9hZF9mdykgewotCQlwcmludGsoS0VS Tl9JTkZPICJbIHBvd2VycGxheSBdIHNraXAgcmVsb2FkaW5nLi4uXG4iKTsKKwkJY2dzX2luZm8o c211bWdyLT5kZXZpY2UsICJza2lwIHJlbG9hZGluZy4uLlxuIik7CiAJCXJldHVybiAwOwogCX0K IApAQCAtNDc0LDcgKzQ3NCw3IEBAIGludCBzbXU3X3JlcXVlc3Rfc211X2xvYWRfZncoc3RydWN0 IHBwX3NtdW1nciAqc211bWdyKQogCXNtdTdfc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVy KHNtdW1nciwgUFBTTUNfTVNHX0RSVl9EUkFNX0FERFJfTE8sIHNtdV9kYXRhLT5oZWFkZXJfYnVm ZmVyLm1jX2FkZHJfbG93KTsKIAogCWlmIChzbXU3X3NlbmRfbXNnX3RvX3NtY193aXRoX3BhcmFt ZXRlcihzbXVtZ3IsIFBQU01DX01TR19Mb2FkVWNvZGVzLCBmd190b19sb2FkKSkKLQkJcHJpbnRr KEtFUk5fRVJSICJGYWlsIHRvIFJlcXVlc3QgU01VIExvYWQgdUNvZGUiKTsKKwkJY2dzX2Vycihz bXVtZ3ItPmRldmljZSwgIkZhaWwgdG8gUmVxdWVzdCBTTVUgTG9hZCB1Q29kZSIpOwogCiAJcmV0 dXJuIHJlc3VsdDsKIH0KQEAgLTQ4Myw3ICs0ODMsNyBAQCBpbnQgc211N19yZXF1ZXN0X3NtdV9s b2FkX2Z3KHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKIGludCBzbXU3X2NoZWNrX2Z3X2xvYWRf ZmluaXNoKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1nciwgdWludDMyX3QgZndfdHlwZSkKIHsKIAlz dHJ1Y3Qgc211N19zbXVtZ3IgKnNtdV9kYXRhID0gKHN0cnVjdCBzbXU3X3NtdW1nciAqKShzbXVt Z3ItPmJhY2tlbmQpOwotCXVpbnQzMl90IGZ3X21hc2sgPSBzbXU3X2dldF9tYXNrX2Zvcl9maXJt d2FyZV90eXBlKGZ3X3R5cGUpOworCXVpbnQzMl90IGZ3X21hc2sgPSBzbXU3X2dldF9tYXNrX2Zv cl9maXJtd2FyZV90eXBlKHNtdW1nciwgZndfdHlwZSk7CiAJdWludDMyX3QgcmV0OwogCiAJcmV0 ID0gc211bV93YWl0X29uX2luZGlyZWN0X3JlZ2lzdGVyKHNtdW1nciwgbW1TTUNfSU5EX0lOREVY XzExLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3Rv bmdhX3NtYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3RvbmdhX3Nt Yy5jCmluZGV4IDJlMTQ5M2MuLmMzYzhkN2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L3NtdW1nci90b25nYV9zbWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9zbXVtZ3IvdG9uZ2Ffc21jLmMKQEAgLTY1Niw3ICs2NTYsNyBAQCBpbnQgdG9u Z2FfcG9wdWxhdGVfYWxsX2dyYXBoaWNfbGV2ZWxzKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCiAJ CX0KIAl9IGVsc2UgewogCQlpZiAoMCA9PSBkYXRhLT5kcG1fbGV2ZWxfZW5hYmxlX21hc2sucGNp ZV9kcG1fZW5hYmxlX21hc2spCi0JCQlwcmludGsoS0VSTl9FUlIgIlsgcG93ZXJwbGF5IF0gUGNp ZSBEcG0gRW5hYmxlbWFzayBpcyAwICEiKTsKKwkJCWNnc19lcnIoaHdtZ3ItPmRldmljZSwgIlBj aWUgRHBtIEVuYWJsZW1hc2sgaXMgMCAhIik7CiAKIAkJd2hpbGUgKGRhdGEtPmRwbV9sZXZlbF9l bmFibGVfbWFzay5wY2llX2RwbV9lbmFibGVfbWFzayAmJgogCQkJCSgoZGF0YS0+ZHBtX2xldmVs X2VuYWJsZV9tYXNrLnBjaWVfZHBtX2VuYWJsZV9tYXNrICYKQEAgLTE1MDMsNyArMTUwMyw3IEBA IHN0YXRpYyBpbnQgdG9uZ2FfcG9wdWxhdGVfc21jX2Jvb3RfbGV2ZWwoc3RydWN0IHBwX2h3bWdy ICpod21nciwKIAogCWlmIChyZXN1bHQgIT0gMCkgewogCQlzbXVfZGF0YS0+c21jX3N0YXRlX3Rh YmxlLkdyYXBoaWNzQm9vdExldmVsID0gMDsKLQkJcHJpbnRrKEtFUk5fRVJSICJbcG93ZXJwbGF5 XSBWQklPUyBkaWQgbm90IGZpbmQgYm9vdCBlbmdpbmUgIgorCQljZ3NfZXJyKGh3bWdyLT5kZXZp Y2UsICAiVkJJT1MgZGlkIG5vdCBmaW5kIGJvb3QgZW5naW5lICIKIAkJCQkiY2xvY2sgdmFsdWUg aW4gZGVwZW5kZW5jeSB0YWJsZS4gIgogCQkJCSJVc2luZyBHcmFwaGljcyBEUE0gbGV2ZWwgMCAh Iik7CiAJCXJlc3VsdCA9IDA7CkBAIC0xNTE1LDcgKzE1MTUsNyBAQCBzdGF0aWMgaW50IHRvbmdh X3BvcHVsYXRlX3NtY19ib290X2xldmVsKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAKIAlpZiAo cmVzdWx0ICE9IDApIHsKIAkJc211X2RhdGEtPnNtY19zdGF0ZV90YWJsZS5NZW1vcnlCb290TGV2 ZWwgPSAwOwotCQlwcmludGsoS0VSTl9FUlIgIltwb3dlcnBsYXldIFZCSU9TIGRpZCBub3QgZmlu ZCBib290ICIKKwkJY2dzX2Vycihod21nci0+ZGV2aWNlLCAgIlZCSU9TIGRpZCBub3QgZmluZCBi b290ICIKIAkJCQkiZW5naW5lIGNsb2NrIHZhbHVlIGluIGRlcGVuZGVuY3kgdGFibGUuIgogCQkJ CSJVc2luZyBNZW1vcnkgRFBNIGxldmVsIDAgISIpOwogCQlyZXN1bHQgPSAwOwpAQCAtMTczOSw3 ICsxNzM5LDcgQEAgc3RhdGljIGludCB0b25nYV9wb3B1bGF0ZV92cl9jb25maWcoc3RydWN0IHBw X2h3bWdyICpod21nciwKIAkJCWNvbmZpZyA9IFZSX1NWSTJfUExBTkVfMjsKIAkJCXRhYmxlLT5W UkNvbmZpZyB8PSBjb25maWc7CiAJCX0gZWxzZSB7Ci0JCQlwcmludGsoS0VSTl9FUlIgIlsgcG93 ZXJwbGF5IF0gVkREQyBhbmQgVkRER0ZYIHNob3VsZCAiCisJCQljZ3NfZXJyKGh3bWdyLT5kZXZp Y2UsICJWRERDIGFuZCBWRERHRlggc2hvdWxkICIKIAkJCQkiYmUgYm90aCBvbiBTVkkyIGNvbnRy b2wgaW4gc3BsaXR0ZWQgbW9kZSAhXG4iKTsKIAkJfQogCX0gZWxzZSB7CkBAIC0xNzUyLDcgKzE3 NTIsNyBAQCBzdGF0aWMgaW50IHRvbmdhX3BvcHVsYXRlX3ZyX2NvbmZpZyhzdHJ1Y3QgcHBfaHdt Z3IgKmh3bWdyLAogCQkJY29uZmlnID0gVlJfU1ZJMl9QTEFORV8xOwogCQkJdGFibGUtPlZSQ29u ZmlnIHw9IGNvbmZpZzsKIAkJfSBlbHNlIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiWyBwb3dlcnBs YXkgXSBWRERDIHNob3VsZCBiZSBvbiAiCisJCQljZ3NfZXJyKGh3bWdyLT5kZXZpY2UsICJWRERD IHNob3VsZCBiZSBvbiAiCiAJCQkJCSJTVkkyIGNvbnRyb2wgaW4gbWVyZ2VkIG1vZGUgIVxuIik7 CiAJCX0KIAl9CkBAIC0yNjU3LDcgKzI2NTcsNyBAQCB1aW50MzJfdCB0b25nYV9nZXRfb2Zmc2V0 b2YodWludDMyX3QgdHlwZSwgdWludDMyX3QgbWVtYmVyKQogCQkJcmV0dXJuIG9mZnNldG9mKFNN VTcyX0Rpc2NyZXRlX0RwbVRhYmxlLCBMb3dTY2xrSW50ZXJydXB0VGhyZXNob2xkKTsKIAkJfQog CX0KLQlwcmludGsoS0VSTl9XQVJOSU5HICJjYW4ndCBnZXQgdGhlIG9mZnNldCBvZiB0eXBlICV4 IG1lbWJlciAleFxuIiwgdHlwZSwgbWVtYmVyKTsKKwlwcl93YXJuaW5nKCJjYW4ndCBnZXQgdGhl IG9mZnNldCBvZiB0eXBlICV4IG1lbWJlciAleFxuIiwgdHlwZSwgbWVtYmVyKTsKIAlyZXR1cm4g MDsKIH0KIApAQCAtMjY4MSw3ICsyNjgxLDcgQEAgdWludDMyX3QgdG9uZ2FfZ2V0X21hY19kZWZp bml0aW9uKHVpbnQzMl90IHZhbHVlKQogCWNhc2UgU01VX01BWF9MRVZFTFNfTVZERDoKIAkJcmV0 dXJuIFNNVTcyX01BWF9MRVZFTFNfTVZERDsKIAl9Ci0JcHJpbnRrKEtFUk5fV0FSTklORyAiY2Fu J3QgZ2V0IHRoZSBtYWMgdmFsdWUgJXhcbiIsIHZhbHVlKTsKKwlwcl93YXJuaW5nKCJjYW4ndCBn ZXQgdGhlIG1hYyB2YWx1ZSAleFxuIiwgdmFsdWUpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdG9uZ2Ffc211bWdyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdG9uZ2Ffc211bWdyLmMKaW5k ZXggZWZmOWEyMzIuLjcwNDZhYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93 ZXJwbGF5L3NtdW1nci90b25nYV9zbXVtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9zbXVtZ3IvdG9uZ2Ffc211bWdyLmMKQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIGlu dCB0b25nYV9zdGFydF9pbl9wcm90ZWN0aW9uX21vZGUoc3RydWN0IHBwX3NtdW1nciAqc211bWdy KQogCS8qIENoZWNrIHBhc3MvZmFpbGVkIGluZGljYXRvciAqLwogCWlmICgxICE9IFNNVU1fUkVB RF9WRlBGX0lORElSRUNUX0ZJRUxEKHNtdW1nci0+ZGV2aWNlLAogCQkJCUNHU19JTkRfUkVHX19T TUMsIFNNVV9TVEFUVVMsIFNNVV9QQVNTKSkgewotCQlwcmludGsoS0VSTl9FUlIgIlsgcG93ZXJw bGF5IF0gU01VIEZpcm13YXJlIHN0YXJ0IGZhaWxlZFxuIik7CisJCWNnc19lcnIoc211bWdyLT5k ZXZpY2UsICJTTVUgRmlybXdhcmUgc3RhcnQgZmFpbGVkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7 CiAJfQogCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4 Cg==