ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWQtY29yZS5jIGIvZHJpdmVycy9sZWRzL2xlZC1jb3JlLmMKaW5kZXggNWQxY2ExMC4uMDE2ZDE5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9sZWRzL2xlZC1jb3JlLmMKKysrIGIvZHJpdmVycy9sZWRzL2xlZC1jb3JlLmMKQEAgLTE5LDcgKzE5LDcgQEAKICNpbmNsdWRlICJsZWRzLmgiCiAKIERFQ0xBUkVfUldTRU0obGVkc19saXN0X2xvY2spOwotTElTVF9IRUFEKGxlZHNfbGlzdCk7Ci0KLUVYUE9SVF9TWU1CT0xfR1BMKGxlZHNfbGlzdCk7CiBFWFBPUlRfU1lNQk9MX0dQTChsZWRzX2xpc3RfbG9jayk7CisKK0xJU1RfSEVBRChsZWRzX2xpc3QpOworRVhQT1JUX1NZTUJPTF9HUEwobGVkc19saXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWQtdHJpZ2dlcnMuYyBiL2RyaXZlcnMvbGVkcy9sZWQtdHJpZ2dlcnMuYwppbmRleCAyMWRkOTY5Li4wZjI0MmIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2xlZHMvbGVkLXRyaWdnZXJzLmMKKysrIGIvZHJpdmVycy9sZWRzL2xlZC10cmlnZ2Vycy5jCkBAIC0yOSw2ICsyOSw4IEBACiBzdGF0aWMgREVDTEFSRV9SV1NFTSh0cmlnZ2Vyc19saXN0X2xvY2spOwogc3RhdGljIExJU1RfSEVBRCh0cmlnZ2VyX2xpc3QpOwogCisgLyogVXNlZCBieSBMRUQgQ2xhc3MgKi8KKwogc3NpemVfdCBsZWRfdHJpZ2dlcl9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKQEAgLTY0LDcgKzY2LDcgQEAKIAogCXJldHVybiAtRUlOVkFMOwogfQotCitFWFBPUlRfU1lNQk9MX0dQTChsZWRfdHJpZ2dlcl9zdG9yZSk7CiAKIHNzaXplX3QgbGVkX3RyaWdnZXJfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQljaGFyICpidWYpCkBAIC05NCwyNCArOTYsNyBAQAogCWxlbiArPSBzcHJpbnRmKGxlbitidWYsICJcbiIpOwogCXJldHVybiBsZW47CiB9Ci0KLXZvaWQgbGVkX3RyaWdnZXJfZXZlbnQoc3RydWN0IGxlZF90cmlnZ2VyICp0cmlnZ2VyLAotCQkJZW51bSBsZWRfYnJpZ2h0bmVzcyBicmlnaHRuZXNzKQotewotCXN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5OwotCi0JaWYgKCF0cmlnZ2VyKQotCQlyZXR1cm47Ci0KLQlyZWFkX2xvY2soJnRyaWdnZXItPmxlZGRldl9saXN0X2xvY2spOwotCWxpc3RfZm9yX2VhY2goZW50cnksICZ0cmlnZ2VyLT5sZWRfY2RldnMpIHsKLQkJc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXY7Ci0KLQkJbGVkX2NkZXYgPSBsaXN0X2VudHJ5KGVudHJ5LCBzdHJ1Y3QgbGVkX2NsYXNzZGV2LCB0cmlnX2xpc3QpOwotCQlsZWRfc2V0X2JyaWdodG5lc3MobGVkX2NkZXYsIGJyaWdodG5lc3MpOwotCX0KLQlyZWFkX3VubG9jaygmdHJpZ2dlci0+bGVkZGV2X2xpc3RfbG9jayk7Ci19CitFWFBPUlRfU1lNQk9MX0dQTChsZWRfdHJpZ2dlcl9zaG93KTsKIAogLyogQ2FsbGVyIG11c3QgZW5zdXJlIGxlZF9jZGV2LT50cmlnZ2VyX2xvY2sgaGVsZCAqLwogdm9pZCBsZWRfdHJpZ2dlcl9zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsIHN0cnVjdCBsZWRfdHJpZ2dlciAqdHJpZ2dlcikKQEAgLTEyMiw3ICsxMDcsOCBAQAogCWlmIChsZWRfY2Rldi0+dHJpZ2dlcikgewogCQl3cml0ZV9sb2NrX2lycXNhdmUoJmxlZF9jZGV2LT50cmlnZ2VyLT5sZWRkZXZfbGlzdF9sb2NrLCBmbGFncyk7CiAJCWxpc3RfZGVsKCZsZWRfY2Rldi0+dHJpZ19saXN0KTsKLQkJd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJmxlZF9jZGV2LT50cmlnZ2VyLT5sZWRkZXZfbGlzdF9sb2NrLCBmbGFncyk7CisJCXdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZsZWRfY2Rldi0+dHJpZ2dlci0+bGVkZGV2X2xpc3RfbG9jaywKKwkJCWZsYWdzKTsKIAkJaWYgKGxlZF9jZGV2LT50cmlnZ2VyLT5kZWFjdGl2YXRlKQogCQkJbGVkX2NkZXYtPnRyaWdnZXItPmRlYWN0aXZhdGUobGVkX2NkZXYpOwogCQlsZWRfc2V0X2JyaWdodG5lc3MobGVkX2NkZXYsIExFRF9PRkYpOwpAQCAtMTM2LDYgKzEyMiw3IEBACiAJfQogCWxlZF9jZGV2LT50cmlnZ2VyID0gdHJpZ2dlcjsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGxlZF90cmlnZ2VyX3NldCk7CiAKIHZvaWQgbGVkX3RyaWdnZXJfcmVtb3ZlKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2KQogewpAQCAtMTQzLDYgKzEzMCw3IEBACiAJbGVkX3RyaWdnZXJfc2V0KGxlZF9jZGV2LCBOVUxMKTsKIAl1cF93cml0ZSgmbGVkX2NkZXYtPnRyaWdnZXJfbG9jayk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChsZWRfdHJpZ2dlcl9yZW1vdmUpOwogCiB2b2lkIGxlZF90cmlnZ2VyX3NldF9kZWZhdWx0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2KQogewpAQCAtMTYwLDYgKzE0OCw5IEBACiAJdXBfd3JpdGUoJmxlZF9jZGV2LT50cmlnZ2VyX2xvY2spOwogCXVwX3JlYWQoJnRyaWdnZXJzX2xpc3RfbG9jayk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChsZWRfdHJpZ2dlcl9zZXRfZGVmYXVsdCk7CisKKy8qIExFRCBUcmlnZ2VyIEludGVyZmFjZSAqLwogCiBpbnQgbGVkX3RyaWdnZXJfcmVnaXN0ZXIoc3RydWN0IGxlZF90cmlnZ2VyICp0cmlnZ2VyKQogewpAQCAtMTg2LDI2ICsxNzcsNyBAQAogCiAJcmV0dXJuIDA7CiB9Ci0KLXZvaWQgbGVkX3RyaWdnZXJfcmVnaXN0ZXJfc2ltcGxlKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsZWRfdHJpZ2dlciAqKnRwKQotewotCXN0cnVjdCBsZWRfdHJpZ2dlciAqdHJpZ2dlcjsKLQlpbnQgZXJyOwotCi0JdHJpZ2dlciA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBsZWRfdHJpZ2dlciksIEdGUF9LRVJORUwpOwotCi0JaWYgKHRyaWdnZXIpIHsKLQkJdHJpZ2dlci0+bmFtZSA9IG5hbWU7Ci0JCWVyciA9IGxlZF90cmlnZ2VyX3JlZ2lzdGVyKHRyaWdnZXIpOwotCQlpZiAoZXJyIDwgMCkKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIkxFRCB0cmlnZ2VyICVzIGZhaWxlZCB0byByZWdpc3RlciIKLQkJCQkiICglZClcbiIsIG5hbWUsIGVycik7Ci0JfSBlbHNlCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkxFRCB0cmlnZ2VyICVzIGZhaWxlZCB0byByZWdpc3RlciIKLQkJCSIgKG5vIG1lbW9yeSlcbiIsIG5hbWUpOwotCi0JKnRwID0gdHJpZ2dlcjsKLX0KK0VYUE9SVF9TWU1CT0xfR1BMKGxlZF90cmlnZ2VyX3JlZ2lzdGVyKTsKIAogdm9pZCBsZWRfdHJpZ2dlcl91bnJlZ2lzdGVyKHN0cnVjdCBsZWRfdHJpZ2dlciAqdHJpZ2dlcikKIHsKQEAgLTIyNiw2ICsxOTgsNDkgQEAKIAl9CiAJdXBfcmVhZCgmbGVkc19saXN0X2xvY2spOwogfQorRVhQT1JUX1NZTUJPTF9HUEwobGVkX3RyaWdnZXJfdW5yZWdpc3Rlcik7CisKKy8qIFNpbXBsZSBMRUQgVGlnZ2VyIEludGVyZmFjZSAqLworCit2b2lkIGxlZF90cmlnZ2VyX2V2ZW50KHN0cnVjdCBsZWRfdHJpZ2dlciAqdHJpZ2dlciwKKwkJCWVudW0gbGVkX2JyaWdodG5lc3MgYnJpZ2h0bmVzcykKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeTsKKworCWlmICghdHJpZ2dlcikKKwkJcmV0dXJuOworCisJcmVhZF9sb2NrKCZ0cmlnZ2VyLT5sZWRkZXZfbGlzdF9sb2NrKTsKKwlsaXN0X2Zvcl9lYWNoKGVudHJ5LCAmdHJpZ2dlci0+bGVkX2NkZXZzKSB7CisJCXN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2OworCisJCWxlZF9jZGV2ID0gbGlzdF9lbnRyeShlbnRyeSwgc3RydWN0IGxlZF9jbGFzc2RldiwgdHJpZ19saXN0KTsKKwkJbGVkX3NldF9icmlnaHRuZXNzKGxlZF9jZGV2LCBicmlnaHRuZXNzKTsKKwl9CisJcmVhZF91bmxvY2soJnRyaWdnZXItPmxlZGRldl9saXN0X2xvY2spOworfQorRVhQT1JUX1NZTUJPTF9HUEwobGVkX3RyaWdnZXJfZXZlbnQpOworCit2b2lkIGxlZF90cmlnZ2VyX3JlZ2lzdGVyX3NpbXBsZShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGVkX3RyaWdnZXIgKip0cCkKK3sKKwlzdHJ1Y3QgbGVkX3RyaWdnZXIgKnRyaWdnZXI7CisJaW50IGVycjsKKworCXRyaWdnZXIgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbGVkX3RyaWdnZXIpLCBHRlBfS0VSTkVMKTsKKworCWlmICh0cmlnZ2VyKSB7CisJCXRyaWdnZXItPm5hbWUgPSBuYW1lOworCQllcnIgPSBsZWRfdHJpZ2dlcl9yZWdpc3Rlcih0cmlnZ2VyKTsKKwkJaWYgKGVyciA8IDApCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJMRUQgdHJpZ2dlciAlcyBmYWlsZWQgdG8gcmVnaXN0ZXIiCisJCQkJIiAoJWQpXG4iLCBuYW1lLCBlcnIpOworCX0gZWxzZQorCQlwcmludGsoS0VSTl9XQVJOSU5HICJMRUQgdHJpZ2dlciAlcyBmYWlsZWQgdG8gcmVnaXN0ZXIiCisJCQkiIChubyBtZW1vcnkpXG4iLCBuYW1lKTsKKworCSp0cCA9IHRyaWdnZXI7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChsZWRfdHJpZ2dlcl9yZWdpc3Rlcl9zaW1wbGUpOwogCiB2b2lkIGxlZF90cmlnZ2VyX3VucmVnaXN0ZXJfc2ltcGxlKHN0cnVjdCBsZWRfdHJpZ2dlciAqdHJpZ2dlcikKIHsKQEAgLTIzMywyMiArMjQ4LDcgQEAKIAkJbGVkX3RyaWdnZXJfdW5yZWdpc3Rlcih0cmlnZ2VyKTsKIAlrZnJlZSh0cmlnZ2VyKTsKIH0KLQotLyogVXNlZCBieSBMRUQgQ2xhc3MgKi8KLUVYUE9SVF9TWU1CT0xfR1BMKGxlZF90cmlnZ2VyX3NldCk7Ci1FWFBPUlRfU1lNQk9MX0dQTChsZWRfdHJpZ2dlcl9yZW1vdmUpOwotRVhQT1JUX1NZTUJPTF9HUEwobGVkX3RyaWdnZXJfc2V0X2RlZmF1bHQpOwotRVhQT1JUX1NZTUJPTF9HUEwobGVkX3RyaWdnZXJfc2hvdyk7Ci1FWFBPUlRfU1lNQk9MX0dQTChsZWRfdHJpZ2dlcl9zdG9yZSk7Ci0KLS8qIExFRCBUcmlnZ2VyIEludGVyZmFjZSAqLwotRVhQT1JUX1NZTUJPTF9HUEwobGVkX3RyaWdnZXJfcmVnaXN0ZXIpOwotRVhQT1JUX1NZTUJPTF9HUEwobGVkX3RyaWdnZXJfdW5yZWdpc3Rlcik7Ci0KLS8qIFNpbXBsZSBMRUQgVGlnZ2VyIEludGVyZmFjZSAqLwotRVhQT1JUX1NZTUJPTF9HUEwobGVkX3RyaWdnZXJfcmVnaXN0ZXJfc2ltcGxlKTsKIEVYUE9SVF9TWU1CT0xfR1BMKGxlZF90cmlnZ2VyX3VucmVnaXN0ZXJfc2ltcGxlKTsKLUVYUE9SVF9TWU1CT0xfR1BMKGxlZF90cmlnZ2VyX2V2ZW50KTsKIAogTU9EVUxFX0FVVEhPUigiUmljaGFyZCBQdXJkaWUiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWRzLWNsZXZvLW1haWwuYyBiL2RyaXZlcnMvbGVkcy9sZWRzLWNsZXZvLW1haWwuYwppbmRleCBkNzhmZTZjLi5lYjM0MTVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2xlZHMvbGVkcy1jbGV2by1tYWlsLmMKKysrIGIvZHJpdmVycy9sZWRzL2xlZHMtY2xldm8tbWFpbC5jCkBAIC0xNCw3ICsxNCw3IEBACiAjZGVmaW5lIENMRVZPX01BSUxfTEVEX0JMSU5LXzFIWgkweDAwOEEKICNkZWZpbmUgQ0xFVk9fTUFJTF9MRURfQkxJTktfMF81SFoJMHgwMDgzCiAKLU1PRFVMRV9BVVRIT1IoIk3hcnRvbiBO6W1ldGggPG5tMTI3QGZyZWVtYWlsLmh1PiIpOworTU9EVUxFX0FVVEhPUigiTcOhcnRvbiBOw6ltZXRoIDxubTEyN0BmcmVlbWFpbC5odT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQ2xldm8gbWFpbCBMRUQgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiAKQEAgLTEwMyw4ICsxMDMsOCBAQAogfQogCiBzdGF0aWMgaW50IGNsZXZvX21haWxfbGVkX2JsaW5rKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LAotCQkJCXVuc2lnbmVkIGxvbmcqIGRlbGF5X29uLAotCQkJCXVuc2lnbmVkIGxvbmcqIGRlbGF5X29mZikKKwkJCQl1bnNpZ25lZCBsb25nICpkZWxheV9vbiwKKwkJCQl1bnNpZ25lZCBsb25nICpkZWxheV9vZmYpCiB7CiAJaW50IHN0YXR1cyA9IC1FSU5WQUw7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWRzLWNvYmFsdC1xdWJlLmMgYi9kcml2ZXJzL2xlZHMvbGVkcy1jb2JhbHQtcXViZS5jCmluZGV4IDA5Njg4MWEuLjA1OWFhMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGVkcy9sZWRzLWNvYmFsdC1xdWJlLmMKKysrIGIvZHJpdmVycy9sZWRzL2xlZHMtY29iYWx0LXF1YmUuYwpAQCAtMTgsNyArMTgsNyBAQAogc3RhdGljIHU4IGxlZF92YWx1ZTsKIAogc3RhdGljIHZvaWQgcXViZV9mcm9udF9sZWRfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gbGVkX2JyaWdodG5lc3MgYnJpZ2h0bmVzcykKKwkJCSAgICAgICBlbnVtIGxlZF9icmlnaHRuZXNzIGJyaWdodG5lc3MpCiB7CiAJaWYgKGJyaWdodG5lc3MpCiAJCWxlZF92YWx1ZSA9IExFRF9GUk9OVF9MRUZUIHwgTEVEX0ZST05UX1JJR0hUOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZWRzL2xlZHMtY29iYWx0LXJhcS5jIGIvZHJpdmVycy9sZWRzL2xlZHMtY29iYWx0LXJhcS5jCmluZGV4IDZlYmZmZjMuLmZmMGU4YzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGVkcy9sZWRzLWNvYmFsdC1yYXEuYworKysgYi9kcml2ZXJzL2xlZHMvbGVkcy1jb2JhbHQtcmFxLmMKQEAgLTE1LDcgKzE1LDcgQEAKICAqCiAgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKICAqLwogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgpAQCAtMzMsNyArMzMsNyBAQAogc3RhdGljIERFRklORV9TUElOTE9DSyhsZWRfdmFsdWVfbG9jayk7CiAKIHN0YXRpYyB2b2lkIHJhcV93ZWJfbGVkX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGxlZF9icmlnaHRuZXNzIGJyaWdodG5lc3MpCisJCQkgICAgZW51bSBsZWRfYnJpZ2h0bmVzcyBicmlnaHRuZXNzKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTU0LDcgKzU0LDcgQEAKIH07CiAKIHN0YXRpYyB2b2lkIHJhcV9wb3dlcl9vZmZfbGVkX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGxlZF9icmlnaHRuZXNzIGJyaWdodG5lc3MpCisJCQkJICBlbnVtIGxlZF9icmlnaHRuZXNzIGJyaWdodG5lc3MpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZWRzL2xlZHMtY29yZ2kuYyBiL2RyaXZlcnMvbGVkcy9sZWRzLWNvcmdpLmMKaW5kZXggMjllOTMxZi4uYTcwOTcwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9sZWRzL2xlZHMtY29yZ2kuYworKysgYi9kcml2ZXJzL2xlZHMvbGVkcy1jb3JnaS5jCkBAIC0yMSw3ICsyMSw4IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUvc2Nvb3AuaD4KIAotc3RhdGljIHZvaWQgY29yZ2lsZWRfYW1iZXJfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LCBlbnVtIGxlZF9icmlnaHRuZXNzIHZhbHVlKQorc3RhdGljIHZvaWQgY29yZ2lsZWRfYW1iZXJfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LAorCQkJICAgICAgIGVudW0gbGVkX2JyaWdodG5lc3MgdmFsdWUpCiB7CiAJaWYgKHZhbHVlKQogCQlHUFNSMCA9IEdQSU9fYml0KENPUkdJX0dQSU9fTEVEX09SQU5HRSk7CkBAIC0yOSw3ICszMCw4IEBACiAJCUdQQ1IwID0gR1BJT19iaXQoQ09SR0lfR1BJT19MRURfT1JBTkdFKTsKIH0KIAotc3RhdGljIHZvaWQgY29yZ2lsZWRfZ3JlZW5fc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LCBlbnVtIGxlZF9icmlnaHRuZXNzIHZhbHVlKQorc3RhdGljIHZvaWQgY29yZ2lsZWRfZ3JlZW5fc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LAorCQkJICAgICAgIGVudW0gbGVkX2JyaWdodG5lc3MgdmFsdWUpCiB7CiAJaWYgKHZhbHVlKQogCQlzZXRfc2Nvb3BfZ3BpbygmY29yZ2lzY29vcF9kZXZpY2UuZGV2LCBDT1JHSV9TQ1BfTEVEX0dSRUVOKTsKQEAgLTUzLDcgKzU1LDggQEAKIHN0YXRpYyBpbnQgY29yZ2lsZWRfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKICNpZmRlZiBDT05GSUdfTEVEU19UUklHR0VSUwotCWlmIChjb3JnaV9hbWJlcl9sZWQudHJpZ2dlciAmJiBzdHJjbXAoY29yZ2lfYW1iZXJfbGVkLnRyaWdnZXItPm5hbWUsICJzaGFycHNsLWNoYXJnZSIpKQorCWlmIChjb3JnaV9hbWJlcl9sZWQudHJpZ2dlciAmJgorCSAgICBzdHJjbXAoY29yZ2lfYW1iZXJfbGVkLnRyaWdnZXItPm5hbWUsICJzaGFycHNsLWNoYXJnZSIpKQogI2VuZGlmCiAJCWxlZF9jbGFzc2Rldl9zdXNwZW5kKCZjb3JnaV9hbWJlcl9sZWQpOwogCWxlZF9jbGFzc2Rldl9zdXNwZW5kKCZjb3JnaV9ncmVlbl9sZWQpOwpAQCAtMTEwLDcgKzExMyw3IEBACiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBjb3JnaWxlZF9leGl0KHZvaWQpCiB7Ci0gCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZjb3JnaWxlZF9kcml2ZXIpOworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZjb3JnaWxlZF9kcml2ZXIpOwogfQogCiBtb2R1bGVfaW5pdChjb3JnaWxlZF9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWRzLWgxOTQwLmMgYi9kcml2ZXJzL2xlZHMvbGVkcy1oMTk0MC5jCmluZGV4IDZlNTFjOWIuLmJjZWM0MjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGVkcy9sZWRzLWgxOTQwLmMKKysrIGIvZHJpdmVycy9sZWRzL2xlZHMtaDE5NDAuYwpAQCAtMjYsMjAgKzI2LDIwIEBACiB2b2lkIGgxOTQwX2dyZWVubGVkX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfZGV2LCBlbnVtIGxlZF9icmlnaHRuZXNzIHZhbHVlKQogewogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSBMRURfSEFMRjoKLQkJCWgxOTQwX2xhdGNoX2NvbnRyb2woMCxIMTk0MF9MQVRDSF9MRURfRkxBU0gpOwotCQkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQTcsMSk7Ci0JCQlicmVhazsKLQkJY2FzZSBMRURfRlVMTDoKLQkJCWgxOTQwX2xhdGNoX2NvbnRyb2woMCxIMTk0MF9MQVRDSF9MRURfR1JFRU4pOwotCQkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQTcsMSk7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJY2FzZSBMRURfT0ZGOgotCQkJaDE5NDBfbGF0Y2hfY29udHJvbChIMTk0MF9MQVRDSF9MRURfRkxBU0gsMCk7Ci0JCQloMTk0MF9sYXRjaF9jb250cm9sKEgxOTQwX0xBVENIX0xFRF9HUkVFTiwwKTsKLQkJCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEE3LDApOwotCQkJYnJlYWs7CisJY2FzZSBMRURfSEFMRjoKKwkJaDE5NDBfbGF0Y2hfY29udHJvbCgwLCBIMTk0MF9MQVRDSF9MRURfRkxBU0gpOworCQlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BBNywgMSk7CisJCWJyZWFrOworCWNhc2UgTEVEX0ZVTEw6CisJCWgxOTQwX2xhdGNoX2NvbnRyb2woMCwgSDE5NDBfTEFUQ0hfTEVEX0dSRUVOKTsKKwkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQTcsIDEpOworCQlicmVhazsKKwlkZWZhdWx0OgorCWNhc2UgTEVEX09GRjoKKwkJaDE5NDBfbGF0Y2hfY29udHJvbChIMTk0MF9MQVRDSF9MRURfRkxBU0gsIDApOworCQloMTk0MF9sYXRjaF9jb250cm9sKEgxOTQwX0xBVENIX0xFRF9HUkVFTiwgMCk7CisJCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEE3LCAwKTsKKwkJYnJlYWs7CiAJfQogfQogCkBAIC01NSwyMCArNTUsMjAgQEAKIHZvaWQgaDE5NDBfcmVkbGVkX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfZGV2LCBlbnVtIGxlZF9icmlnaHRuZXNzIHZhbHVlKQogewogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSBMRURfSEFMRjoKLQkJCWgxOTQwX2xhdGNoX2NvbnRyb2woMCxIMTk0MF9MQVRDSF9MRURfRkxBU0gpOwotCQkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQTEsMSk7Ci0JCQlicmVhazsKLQkJY2FzZSBMRURfRlVMTDoKLQkJCWgxOTQwX2xhdGNoX2NvbnRyb2woMCxIMTk0MF9MQVRDSF9MRURfUkVEKTsKLQkJCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEExLDEpOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCWNhc2UgTEVEX09GRjoKLQkJCWgxOTQwX2xhdGNoX2NvbnRyb2woSDE5NDBfTEFUQ0hfTEVEX0ZMQVNILDApOwotCQkJaDE5NDBfbGF0Y2hfY29udHJvbChIMTk0MF9MQVRDSF9MRURfUkVELDApOwotCQkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQTEsMCk7Ci0JCQlicmVhazsKKwljYXNlIExFRF9IQUxGOgorCQloMTk0MF9sYXRjaF9jb250cm9sKDAsIEgxOTQwX0xBVENIX0xFRF9GTEFTSCk7CisJCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEExLCAxKTsKKwkJYnJlYWs7CisJY2FzZSBMRURfRlVMTDoKKwkJaDE5NDBfbGF0Y2hfY29udHJvbCgwLCBIMTk0MF9MQVRDSF9MRURfUkVEKTsKKwkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQTEsIDEpOworCQlicmVhazsKKwlkZWZhdWx0OgorCWNhc2UgTEVEX09GRjoKKwkJaDE5NDBfbGF0Y2hfY29udHJvbChIMTk0MF9MQVRDSF9MRURfRkxBU0gsIDApOworCQloMTk0MF9sYXRjaF9jb250cm9sKEgxOTQwX0xBVENIX0xFRF9SRUQsIDApOworCQlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BBMSwgMCk7CisJCWJyZWFrOwogCX0KIH0KIApAQCAtODYsMTEgKzg2LDExIEBACiB7CiAJaWYgKHZhbHVlKSB7CiAJCS8qIGZsYXNoaW5nIEJsdWUgKi8KLQkJaDE5NDBfbGF0Y2hfY29udHJvbCgwLEgxOTQwX0xBVENIX0xFRF9GTEFTSCk7Ci0JCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEEzLDEpOworCQloMTk0MF9sYXRjaF9jb250cm9sKDAsIEgxOTQwX0xBVENIX0xFRF9GTEFTSCk7CisJCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEEzLCAxKTsKIAl9IGVsc2UgewotCQloMTk0MF9sYXRjaF9jb250cm9sKEgxOTQwX0xBVENIX0xFRF9GTEFTSCwwKTsKLQkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQTMsMCk7CisJCWgxOTQwX2xhdGNoX2NvbnRyb2woSDE5NDBfTEFUQ0hfTEVEX0ZMQVNILCAwKTsKKwkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQTMsIDApOwogCX0KIAogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZWRzL2xlZHMtaHA2eHguYyBiL2RyaXZlcnMvbGVkcy9sZWRzLWhwNnh4LmMKaW5kZXggODcwZjVhMy4uODQ0ZDU5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9sZWRzL2xlZHMtaHA2eHguYworKysgYi9kcml2ZXJzL2xlZHMvbGVkcy1ocDZ4eC5jCkBAIC0xNyw3ICsxNyw4IEBACiAjaW5jbHVkZSA8YXNtL2hkNjQ0NjEuaD4KICNpbmNsdWRlIDxhc20vaHA2eHguaD4KIAotc3RhdGljIHZvaWQgaHA2eHhsZWRfZ3JlZW5fc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LCBlbnVtIGxlZF9icmlnaHRuZXNzIHZhbHVlKQorc3RhdGljIHZvaWQgaHA2eHhsZWRfZ3JlZW5fc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LAorCQkJICAgICAgIGVudW0gbGVkX2JyaWdodG5lc3MgdmFsdWUpCiB7CiAJdTggdjg7CiAKQEAgLTI4LDcgKzI5LDggQEAKIAkJb3V0Yih2OCB8IFBLRFJfTEVEX0dSRUVOLCBQS0RSKTsKIH0KIAotc3RhdGljIHZvaWQgaHA2eHhsZWRfcmVkX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldiwgZW51bSBsZWRfYnJpZ2h0bmVzcyB2YWx1ZSkKK3N0YXRpYyB2b2lkIGhwNnh4bGVkX3JlZF9zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsCisJCQkgICAgIGVudW0gbGVkX2JyaWdodG5lc3MgdmFsdWUpCiB7CiAJdTE2IHYxNjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZWRzL2xlZHMtczNjMjR4eC5jIGIvZHJpdmVycy9sZWRzL2xlZHMtczNjMjR4eC5jCmluZGV4IDBkMTBlMTEuLmQ0ZjUwMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGVkcy9sZWRzLXMzYzI0eHguYworKysgYi9kcml2ZXJzL2xlZHMvbGVkcy1zM2MyNHh4LmMKQEAgLTUxLDcgKzUxLDcgQEAKIAogCWlmIChwZC0+ZmxhZ3MgJiBTM0MyNFhYX0xFREZfVFJJU1RBVEUpCiAJCXMzYzI0MTBfZ3Bpb19jZmdwaW4ocGQtPmdwaW8sCi0JCQkJICAgIHZhbHVlID8gUzNDMjQxMF9HUElPX09VVFBVVCA6IFMzQzI0MTBfR1BJT19JTlBVVCk7CisJCQl2YWx1ZSA/IFMzQzI0MTBfR1BJT19PVVRQVVQgOiBTM0MyNDEwX0dQSU9fSU5QVVQpOwogCiB9CiAKQEAgLTE1MSw3ICsxNTEsNyBAQAogCiBzdGF0aWMgdm9pZCBfX2V4aXQgczNjMjR4eF9sZWRfZXhpdCh2b2lkKQogewotIAlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjR4eF9sZWRfZHJpdmVyKTsKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjR4eF9sZWRfZHJpdmVyKTsKIH0KIAogbW9kdWxlX2luaXQoczNjMjR4eF9sZWRfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2xlZHMvbGVkcy1zcGl0ei5jIGIvZHJpdmVycy9sZWRzL2xlZHMtc3BpdHouYwppbmRleCA4NzAwN2NjLi5lNzVlODU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2xlZHMvbGVkcy1zcGl0ei5jCisrKyBiL2RyaXZlcnMvbGVkcy9sZWRzLXNwaXR6LmMKQEAgLTIxLDcgKzIxLDggQEAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3NwaXR6Lmg+CiAKLXN0YXRpYyB2b2lkIHNwaXR6bGVkX2FtYmVyX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldiwgZW51bSBsZWRfYnJpZ2h0bmVzcyB2YWx1ZSkKK3N0YXRpYyB2b2lkIHNwaXR6bGVkX2FtYmVyX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldiwKKwkJCSAgICAgICBlbnVtIGxlZF9icmlnaHRuZXNzIHZhbHVlKQogewogCWlmICh2YWx1ZSkKIAkJc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX0xFRF9PUkFOR0UpOwpAQCAtMjksNyArMzAsOCBAQAogCQlyZXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9MRURfT1JBTkdFKTsKIH0KIAotc3RhdGljIHZvaWQgc3BpdHpsZWRfZ3JlZW5fc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LCBlbnVtIGxlZF9icmlnaHRuZXNzIHZhbHVlKQorc3RhdGljIHZvaWQgc3BpdHpsZWRfZ3JlZW5fc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LAorCQkJICAgICAgIGVudW0gbGVkX2JyaWdodG5lc3MgdmFsdWUpCiB7CiAJaWYgKHZhbHVlKQogCQlzZXRfc2Nvb3BfZ3Bpbygmc3BpdHpzY29vcF9kZXZpY2UuZGV2LCBTUElUWl9TQ1BfTEVEX0dSRUVOKTsKQEAgLTUzLDcgKzU1LDggQEAKIHN0YXRpYyBpbnQgc3BpdHpsZWRfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKICNpZmRlZiBDT05GSUdfTEVEU19UUklHR0VSUwotCWlmIChzcGl0el9hbWJlcl9sZWQudHJpZ2dlciAmJiBzdHJjbXAoc3BpdHpfYW1iZXJfbGVkLnRyaWdnZXItPm5hbWUsICJzaGFycHNsLWNoYXJnZSIpKQorCWlmIChzcGl0el9hbWJlcl9sZWQudHJpZ2dlciAmJgorCSAgICBzdHJjbXAoc3BpdHpfYW1iZXJfbGVkLnRyaWdnZXItPm5hbWUsICJzaGFycHNsLWNoYXJnZSIpKQogI2VuZGlmCiAJCWxlZF9jbGFzc2Rldl9zdXNwZW5kKCZzcGl0el9hbWJlcl9sZWQpOwogCWxlZF9jbGFzc2Rldl9zdXNwZW5kKCZzcGl0el9ncmVlbl9sZWQpOwpAQCAtMTE2LDcgKzExOSw3IEBACiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBzcGl0emxlZF9leGl0KHZvaWQpCiB7Ci0gCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzcGl0emxlZF9kcml2ZXIpOworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzcGl0emxlZF9kcml2ZXIpOwogfQogCiBtb2R1bGVfaW5pdChzcGl0emxlZF9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWRzLmggYi9kcml2ZXJzL2xlZHMvbGVkcy5oCmluZGV4IDAyMTQ3OTkuLjVlZGJmNTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGVkcy9sZWRzLmgKKysrIGIvZHJpdmVycy9sZWRzL2xlZHMuaApAQCAtNDEsOSArNDEsOSBAQAogCQkJc3RydWN0IGxlZF90cmlnZ2VyICp0cmlnZ2VyKTsKIHZvaWQgbGVkX3RyaWdnZXJfcmVtb3ZlKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2KTsKICNlbHNlCi0jZGVmaW5lIGxlZF90cmlnZ2VyX3NldF9kZWZhdWx0KHgpIGRvIHt9IHdoaWxlKDApCi0jZGVmaW5lIGxlZF90cmlnZ2VyX3NldCh4LCB5KSBkbyB7fSB3aGlsZSgwKQotI2RlZmluZSBsZWRfdHJpZ2dlcl9yZW1vdmUoeCkgZG8ge30gd2hpbGUoMCkKKyNkZWZpbmUgbGVkX3RyaWdnZXJfc2V0X2RlZmF1bHQoeCkgZG8ge30gd2hpbGUgKDApCisjZGVmaW5lIGxlZF90cmlnZ2VyX3NldCh4LCB5KSBkbyB7fSB3aGlsZSAoMCkKKyNkZWZpbmUgbGVkX3RyaWdnZXJfcmVtb3ZlKHgpIGRvIHt9IHdoaWxlICgwKQogI2VuZGlmCiAKIHNzaXplX3QgbGVkX3RyaWdnZXJfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWR0cmlnLWlkZS1kaXNrLmMgYi9kcml2ZXJzL2xlZHMvbGVkdHJpZy1pZGUtZGlzay5jCmluZGV4IDU0YjE1NWMuLjg4M2E1NzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGVkcy9sZWR0cmlnLWlkZS1kaXNrLmMKKysrIGIvZHJpdmVycy9sZWRzL2xlZHRyaWctaWRlLWRpc2suYwpAQCAtMzgsNyArMzgsNyBAQAogCWlmIChpZGVfbGFzdGFjdGl2aXR5ICE9IGlkZV9hY3Rpdml0eSkgewogCQlpZGVfbGFzdGFjdGl2aXR5ID0gaWRlX2FjdGl2aXR5OwogCQlsZWRfdHJpZ2dlcl9ldmVudChsZWR0cmlnX2lkZSwgTEVEX0ZVTEwpOwotCSAgICAJbW9kX3RpbWVyKCZsZWR0cmlnX2lkZV90aW1lciwgamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTApKTsKKwkJbW9kX3RpbWVyKCZsZWR0cmlnX2lkZV90aW1lciwgamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTApKTsKIAl9IGVsc2UgewogCQlsZWRfdHJpZ2dlcl9ldmVudChsZWR0cmlnX2lkZSwgTEVEX09GRik7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZWRzL2xlZHRyaWctdGltZXIuYyBiL2RyaXZlcnMvbGVkcy9sZWR0cmlnLXRpbWVyLmMKaW5kZXggNzA2Mjk3Ny4uNWM5OWY0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9sZWRzL2xlZHRyaWctdGltZXIuYworKysgYi9kcml2ZXJzL2xlZHMvbGVkdHJpZy10aW1lci5jCkBAIC02NCw3ICs2NCw3IEBACiAJbW9kX3RpbWVyKCZ0aW1lcl9kYXRhLT50aW1lciwgamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoZGVsYXkpKTsKIH0KIAotc3RhdGljIHNzaXplX3QgbGVkX2RlbGF5X29uX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCAKK3N0YXRpYyBzc2l6ZV90IGxlZF9kZWxheV9vbl9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKIAlzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwpAQCAtNzUsNyArNzUsNyBAQAogCXJldHVybiBzdHJsZW4oYnVmKSArIDE7CiB9CiAKLXN0YXRpYyBzc2l6ZV90IGxlZF9kZWxheV9vbl9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIAorc3RhdGljIHNzaXplX3QgbGVkX2RlbGF5X29uX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKQEAgLTk5LDcgKzk5LDcgQEAKIAkJCS8qIHRyeSB0byBhY3RpdmF0ZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24sIGlmIGFueSAqLwogCQkJaWYgKCFsZWRfY2Rldi0+Ymxpbmtfc2V0IHx8CiAJCQkgICAgbGVkX2NkZXYtPmJsaW5rX3NldChsZWRfY2RldiwKLQkJCQkmdGltZXJfZGF0YS0+ZGVsYXlfb24sICZ0aW1lcl9kYXRhLT5kZWxheV9vZmYpKSB7CisJCQkgICAgICAmdGltZXJfZGF0YS0+ZGVsYXlfb24sICZ0aW1lcl9kYXRhLT5kZWxheV9vZmYpKSB7CiAJCQkJLyogbm8gaGFyZHdhcmUgYWNjZWxlcmF0aW9uLCBibGluayB2aWEgdGltZXIgKi8KIAkJCQltb2RfdGltZXIoJnRpbWVyX2RhdGEtPnRpbWVyLCBqaWZmaWVzICsgMSk7CiAJCQl9CkBAIC0xMTAsNyArMTEwLDcgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgc3NpemVfdCBsZWRfZGVsYXlfb2ZmX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCAKK3N0YXRpYyBzc2l6ZV90IGxlZF9kZWxheV9vZmZfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7CiAJc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKQEAgLTEyMSw3ICsxMjEsNyBAQAogCXJldHVybiBzdHJsZW4oYnVmKSArIDE7CiB9CiAKLXN0YXRpYyBzc2l6ZV90IGxlZF9kZWxheV9vZmZfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCAKK3N0YXRpYyBzc2l6ZV90IGxlZF9kZWxheV9vZmZfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKIAlzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwpAQCAtMTQ1LDcgKzE0NSw3IEBACiAJCQkvKiB0cnkgdG8gYWN0aXZhdGUgaGFyZHdhcmUgYWNjZWxlcmF0aW9uLCBpZiBhbnkgKi8KIAkJCWlmICghbGVkX2NkZXYtPmJsaW5rX3NldCB8fAogCQkJICAgIGxlZF9jZGV2LT5ibGlua19zZXQobGVkX2NkZXYsCi0JCQkJJnRpbWVyX2RhdGEtPmRlbGF5X29uLCAmdGltZXJfZGF0YS0+ZGVsYXlfb2ZmKSkgeworCQkJICAgICAgJnRpbWVyX2RhdGEtPmRlbGF5X29uLCAmdGltZXJfZGF0YS0+ZGVsYXlfb2ZmKSkgewogCQkJCS8qIG5vIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiwgYmxpbmsgdmlhIHRpbWVyICovCiAJCQkJbW9kX3RpbWVyKCZ0aW1lcl9kYXRhLT50aW1lciwgamlmZmllcyArIDEpOwogCQkJfQo=