From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH] drm/atomic: Acquire connection_mutex lock in drm_helper_probe_single_connector_modes. Date: Wed, 29 Mar 2017 12:16:50 +0200 Message-ID: <1490782610-5481-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Manasi Navare , intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org bW9kZV92YWxpZCgpIGFuZCBnZXRfbW9kZXMoKSBjYWxsZWQKZnJvbSBkcm1faGVscGVyX3Byb2Jl X3NpbmdsZV9jb25uZWN0b3JfbW9kZXMoKQptYXkgbmVlZCB0byBsb29rIGF0IGNvbm5lY3Rvci0+ c3RhdGUgYmVjYXVzZSB3aGF0IGEgdmFsaWQgbW9kZSBpcyBtYXkKZGVwZW5kIG9uIGNvbm5lY3Rv ciBwcm9wZXJ0aWVzIGJlaW5nIHNldC4gRm9yIGV4YW1wbGUgc29tZSBIRE1JIG1vZGVzCm1pZ2h0 IGJlIHJlamVjdGVkIHdoZW4gYSBjb25uZWN0b3IgcHJvcGVydHkgZm9yY2VzIHRoZSBjb25uZWN0 b3IKaW50byBEVkkgbW9kZS4KClNvbWUgaW1wbGVtZW50YXRpb25zIG9mIGRldGVjdCgpIGFscmVh ZHkgbG9jayBhbGwgc3RhdGUsCnNvIHdlIGhhdmUgdG8gcGFzcyBhbiBhY3F1aXJlX2N0eCB0byB0 aGVtIHRvIHByZXZlbnQgYSBkZWFkbG9jay4KClRoaXMgbWVhbnMgY2hhbmdpbmcgdGhlIGZ1bmN0 aW9uIHNpZ25hdHVyZSBvZiBkZXRlY3QoKSBzbGlnaHRseSwKYW5kIHBhc3NpbmcgdGhlIGFjcXVp cmVfY3R4IGZvciBsb2NraW5nIG11bHRpcGxlIGNydGMncy4KSXQgbWlnaHQgYmUgTlVMTCwgaW4g d2hpY2ggY2FzZSBleHBlbnNpdmUgb3BlcmF0aW9ucyBzaG91bGQgYmUgYXZvaWRlZC4KCmludGVs X2RwLmMgaG93ZXZlciBpZ25vcmVzIHRoZSBmb3JjZSBmbGFnLCBzbyBzdGlsbCBsb2NrCmNvbm5l Y3Rpb25fbXV0ZXggdGhlcmUgaWYgbmVlZGVkLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5r aG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IEJvcmlzIEJyZXpp bGxvbiA8Ym9yaXMuYnJlemlsbG9uQGZyZWUtZWxlY3Ryb25zLmNvbT4KQ2M6IE1hbmFzaSBOYXZh cmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9w cm9iZV9oZWxwZXIuYyAgIHwgNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyAgICAgfCAyOSArKysrKysrKysrKysr LS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyNSAr KysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAg ICAgfCAyMiArKysrKysrKysrKystLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgfCAgOCArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVn LmMgfCAgNiArKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMgICAgICB8IDI0 ICsrKysrKysrKystLS0tLS0tLS0tLQogaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAg ICAgIHwgIDUgKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDU5IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jCmluZGV4IDg1MDA1ZDU3YmRl Ni4uYTQ4Y2ZmOTYzODcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hl bHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKQEAgLTE2OSwx MSArMTY5LDE1IEBAIHZvaWQgZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIEVYUE9SVF9TWU1CT0woZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGUpOwog CiBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwotZHJtX2Nvbm5lY3Rvcl9kZXRlY3Qo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKK2RybV9jb25uZWN0 b3JfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCSAgICAgc3RydWN0 IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCiB7Ci0JcmV0dXJuIGNvbm5lY3Rvci0+ZnVu Y3MtPmRldGVjdCA/Ci0JCWNvbm5lY3Rvci0+ZnVuY3MtPmRldGVjdChjb25uZWN0b3IsIGZvcmNl KSA6Ci0JCWNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOworCWlmIChjb25uZWN0b3ItPmZ1bmNz LT5kZXRlY3RfY3R4KQorCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0X2N0eChjb25u ZWN0b3IsIGN0eCk7CisJZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0KQorCQlyZXR1 cm4gY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0KGNvbm5lY3RvciwgISFjdHgpOworCWVsc2UKKwkJ cmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwogfQogCiAvKioKQEAgLTIzOSwxNSAr MjQzLDI3IEBAIGludCBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgKmNvbm5lY3Rv cl9mdW5jcyA9CiAJCWNvbm5lY3Rvci0+aGVscGVyX3ByaXZhdGU7Ci0JaW50IGNvdW50ID0gMDsK KwlpbnQgY291bnQgPSAwLCByZXQ7CiAJaW50IG1vZGVfZmxhZ3MgPSAwOwogCWJvb2wgdmVyYm9z ZV9wcnVuZSA9IHRydWU7CiAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBvbGRfc3RhdHVzOwor CXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7CiAKIAlXQVJOX09OKCFtdXRleF9p c19sb2NrZWQoJmRldi0+bW9kZV9jb25maWcubXV0ZXgpKTsKIAorCWRybV9tb2Rlc2V0X2FjcXVp cmVfaW5pdCgmY3R4LCAwKTsKKwogCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4i LCBjb25uZWN0b3ItPmJhc2UuaWQsCiAJCQljb25uZWN0b3ItPm5hbWUpOworCityZXRyeToKKwly ZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgs ICZjdHgpOworCWlmIChyZXQgPT0gLUVERUFETEspIHsKKwkJZHJtX21vZGVzZXRfYmFja29mZigm Y3R4KTsKKwkJZ290byByZXRyeTsKKwl9IGVsc2UKKwkJV0FSTl9PTihyZXQgPCAwKTsKKwogCS8q IHNldCBhbGwgb2xkIG1vZGVzIHRvIHRoZSBzdGFsZSBzdGF0ZSAqLwogCWxpc3RfZm9yX2VhY2hf ZW50cnkobW9kZSwgJmNvbm5lY3Rvci0+bW9kZXMsIGhlYWQpCiAJCW1vZGUtPnN0YXR1cyA9IE1P REVfU1RBTEU7CkBAIC0yNjMsNyArMjc5LDE1IEBAIGludCBkcm1faGVscGVyX3Byb2JlX3Npbmds ZV9jb25uZWN0b3JfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJaWYg KGNvbm5lY3Rvci0+ZnVuY3MtPmZvcmNlKQogCQkJY29ubmVjdG9yLT5mdW5jcy0+Zm9yY2UoY29u bmVjdG9yKTsKIAl9IGVsc2UgewotCQljb25uZWN0b3ItPnN0YXR1cyA9IGRybV9jb25uZWN0b3Jf ZGV0ZWN0KGNvbm5lY3RvciwgdHJ1ZSk7CisJCXJldCA9IGRybV9jb25uZWN0b3JfZGV0ZWN0KGNv bm5lY3RvciwgJmN0eCk7CisKKwkJaWYgKHJldCA9PSAtRURFQURMSykgeworCQkJZHJtX21vZGVz ZXRfYmFja29mZigmY3R4KTsKKwkJCWdvdG8gcmV0cnk7CisJCX0gZWxzZSBpZiAoV0FSTihyZXQg PCAwLCAiSW52YWxpZCByZXR1cm4gdmFsdWUgJWkgZm9yIGNvbm5lY3RvciBkZXRlY3Rpb25cbiIs IHJldCkpCisJCQlyZXQgPSBjb25uZWN0b3Jfc3RhdHVzX3Vua25vd247CisKKwkJY29ubmVjdG9y LT5zdGF0dXMgPSByZXQ7CiAJfQogCiAJLyoKQEAgLTM1NSw2ICszNzksOSBAQCBpbnQgZHJtX2hl bHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsCiBwcnVuZToKIAlkcm1fbW9kZV9wcnVuZV9pbnZhbGlkKGRldiwgJmNvbm5lY3Rv ci0+bW9kZXMsIHZlcmJvc2VfcHJ1bmUpOwogCisJZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4 KTsKKwlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7CisKIAlpZiAobGlzdF9lbXB0eSgm Y29ubmVjdG9yLT5tb2RlcykpCiAJCXJldHVybiAwOwogCkBAIC00NDAsNyArNDY3LDcgQEAgc3Rh dGljIHZvaWQgb3V0cHV0X3BvbGxfZXhlY3V0ZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAK IAkJcmVwb2xsID0gdHJ1ZTsKIAotCQljb25uZWN0b3ItPnN0YXR1cyA9IGRybV9jb25uZWN0b3Jf ZGV0ZWN0KGNvbm5lY3RvciwgZmFsc2UpOworCQljb25uZWN0b3ItPnN0YXR1cyA9IGRybV9jb25u ZWN0b3JfZGV0ZWN0KGNvbm5lY3RvciwgTlVMTCk7CiAJCWlmIChvbGRfc3RhdHVzICE9IGNvbm5l Y3Rvci0+c3RhdHVzKSB7CiAJCQljb25zdCBjaGFyICpvbGQsICpuZXc7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfY3J0LmMKaW5kZXggOGM4MjYwNzI5NGM2Li4xMTg2YzNmNWZlYTAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2NydC5jCkBAIC02NjksMTkgKzY2OSwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGRtaV9zeXN0ZW1faWQgaW50ZWxfc3B1cmlvdXNfY3J0X2RldGVjdFtdID0gewogCXsgfQogfTsK IAotc3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKLWludGVsX2NydF9kZXRlY3Qoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKK3N0YXRpYyBpbnQKK2lu dGVsX2NydF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJIHN0cnVj dCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9j cnQgKmNydCA9IGludGVsX2F0dGFjaGVkX2NydChjb25uZWN0b3IpOwogCXN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmNydC0+YmFzZTsKLQllbnVtIGRybV9jb25uZWN0b3Jf c3RhdHVzIHN0YXR1czsKKwlpbnQgc3RhdHVzLCByZXQ7CiAJc3RydWN0IGludGVsX2xvYWRfZGV0 ZWN0X3BpcGUgdG1wOwotCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7CiAKIAlE Uk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXSBmb3JjZT0lZFxuIiwKIAkJICAgICAgY29u bmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUsCi0JCSAgICAgIGZvcmNlKTsKKwkJICAg ICAgISFjdHgpOwogCiAJLyogU2tpcCBtYWNoaW5lcyB3aXRob3V0IFZHQSB0aGF0IGZhbHNlbHkg cmVwb3J0IGhvdHBsdWcgZXZlbnRzICovCiAJaWYgKGRtaV9jaGVja19zeXN0ZW0oaW50ZWxfc3B1 cmlvdXNfY3J0X2RldGVjdCkpCkBAIC03MTYsMTUgKzcxNiwxOSBAQCBpbnRlbF9jcnRfZGV0ZWN0 KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCiAJCWdvdG8gb3V0 OwogCX0KIAotCWlmICghZm9yY2UpIHsKKwlpZiAoIWN0eCkgewogCQlzdGF0dXMgPSBjb25uZWN0 b3ItPnN0YXR1czsKIAkJZ290byBvdXQ7CiAJfQogCi0JZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0 KCZjdHgsIDApOwotCiAJLyogZm9yIHByZS05NDVnIHBsYXRmb3JtcyB1c2UgbG9hZCBkZXRlY3Qg Ki8KLQlpZiAoaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoY29ubmVjdG9yLCBOVUxMLCAmdG1w LCAmY3R4KSkgeworCXJldCA9IGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKGNvbm5lY3Rvciwg TlVMTCwgJnRtcCwgY3R4KTsKKwlpZiAocmV0IDwgMCkgeworCQlzdGF0dXMgPSByZXQ7CisJCWdv dG8gb3V0OworCX0KKworCWlmIChyZXQgPiAwKSB7CiAJCWlmIChpbnRlbF9jcnRfZGV0ZWN0X2Rk Yyhjb25uZWN0b3IpKQogCQkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7CiAJ CWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA0KQpAQCAtNzM0LDEzICs3MzgsMTAgQEAg aW50ZWxfY3J0X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZv cmNlKQogCQkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7CiAJCWVsc2UK IAkJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfdW5rbm93bjsKLQkJaW50ZWxfcmVsZWFzZV9s b2FkX2RldGVjdF9waXBlKGNvbm5lY3RvciwgJnRtcCwgJmN0eCk7CisJCWludGVsX3JlbGVhc2Vf bG9hZF9kZXRlY3RfcGlwZShjb25uZWN0b3IsICZ0bXAsIGN0eCk7CiAJfSBlbHNlCiAJCXN0YXR1 cyA9IGNvbm5lY3Rvcl9zdGF0dXNfdW5rbm93bjsKIAotCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3Mo JmN0eCk7Ci0JZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwotCiBvdXQ6CiAJaW50ZWxf ZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIGludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbik7 CiAJcmV0dXJuIHN0YXR1czsKQEAgLTgxMSw3ICs4MTIsNyBAQCB2b2lkIGludGVsX2NydF9yZXNl dChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9mdW5jcyBpbnRlbF9jcnRfY29ubmVjdG9yX2Z1bmNzID0gewogCS5kcG1zID0g ZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2RwbXMsCi0JLmRldGVjdCA9IGludGVsX2NydF9k ZXRlY3QsCisJLmRldGVjdF9jdHggPSBpbnRlbF9jcnRfZGV0ZWN0LAogCS5maWxsX21vZGVzID0g ZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAogCS5sYXRlX3JlZ2lzdGVy ID0gaW50ZWxfY29ubmVjdG9yX3JlZ2lzdGVyLAogCS5lYXJseV91bnJlZ2lzdGVyID0gaW50ZWxf Y29ubmVjdG9yX3VucmVnaXN0ZXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5k ZXggYTc5MDYzZmFjOTUxLi5iYWE4ZDgzNmM4ZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKQEAgLTk1MDMsMTAgKzk1MDMsMTAgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0 X3NldHVwX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlyZXR1 cm4gMDsKIH0KIAotYm9vbCBpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAotCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAot CQkJCXN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlICpvbGQsCi0JCQkJc3RydWN0IGRybV9t b2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCitpbnQgaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSwKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlw ZSAqb2xkLAorCQkJICAgICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQog ewogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwogCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyID0KQEAgLTk1MjksMTAgKzk1MjksNyBAQCBib29sIGludGVsX2dldF9s b2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAKIAlvbGQt PnJlc3RvcmVfc3RhdGUgPSBOVUxMOwogCi1yZXRyeToKLQlyZXQgPSBkcm1fbW9kZXNldF9sb2Nr KCZjb25maWctPmNvbm5lY3Rpb25fbXV0ZXgsIGN0eCk7Ci0JaWYgKHJldCkKLQkJZ290byBmYWls OworCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmY29uZmlnLT5jb25uZWN0aW9uX211 dGV4KSk7CiAKIAkvKgogCSAqIEFsZ29yaXRobSBnZXRzIGEgbGl0dGxlIG1lc3N5OgpAQCAtOTY4 MiwxMCArOTY3OSw4IEBAIGJvb2wgaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJcmVzdG9yZV9zdGF0ZSA9IE5VTEw7CiAJfQogCi0J aWYgKHJldCA9PSAtRURFQURMSykgewotCQlkcm1fbW9kZXNldF9iYWNrb2ZmKGN0eCk7Ci0JCWdv dG8gcmV0cnk7Ci0JfQorCWlmIChyZXQgPT0gLUVERUFETEspCisJCXJldHVybiByZXQ7CiAKIAly ZXR1cm4gZmFsc2U7CiB9CkBAIC0xNTExMiw2ICsxNTEwNyw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2VuYWJsZV9waXBlX2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY3J0ID0gTlVMTDsKIAlzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSBsb2FkX2Rl dGVjdF90ZW1wOwogCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4ID0gZGV2LT5t b2RlX2NvbmZpZy5hY3F1aXJlX2N0eDsKKwlpbnQgcmV0OwogCiAJLyogV2UgY2FuJ3QganVzdCBz d2l0Y2ggb24gdGhlIHBpcGUgQSwgd2UgbmVlZCB0byBzZXQgdGhpbmdzIHVwIHdpdGggYQogCSAq IHByb3BlciBtb2RlIGFuZCBvdXRwdXQgY29uZmlndXJhdGlvbi4gQXMgYSBncm9zcyBoYWNrLCBl bmFibGUgcGlwZSBBCkBAIC0xNTEyOCw3ICsxNTEyNCwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9l bmFibGVfcGlwZV9hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKCFjcnQpCiAJCXJldHVy bjsKIAotCWlmIChpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShjcnQsIE5VTEwsICZsb2FkX2Rl dGVjdF90ZW1wLCBjdHgpKQorCXJldCA9IGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKGNydCwg TlVMTCwgJmxvYWRfZGV0ZWN0X3RlbXAsIGN0eCk7CisJV0FSTihyZXQgPCAwLCAiQWxsIG1vZGVz ZXQgbXV0ZXhlcyBhcmUgbG9ja2VkLCBidXQgaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUgZmFp bGVkXG4iKTsKKworCWlmIChyZXQgPiAwKQogCQlpbnRlbF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3Bp cGUoY3J0LCAmbG9hZF9kZXRlY3RfdGVtcCwgY3R4KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKaW5kZXggZmQ5NmE2Y2Y3MzI2Li4xMGIzNzI3YjczODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwpAQCAtNDU2Nyw3ICs0NTY3LDggQEAgaW50ZWxfZHBfdW5zZXRfZWRpZChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQogfQogCiBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwot aW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0 b3IpCitpbnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nv bm5lY3RvciwKKwkJICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQogewog CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50ZWxfY29ubmVjdG9yLT5iYXNl OwogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBpbnRlbF9hdHRhY2hlZF9kcChjb25uZWN0 b3IpOwpAQCAtNDY0MCw5ICs0NjQxLDEzIEBAIGludGVsX2RwX2xvbmdfcHVsc2Uoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQogCQkgKiBjaGVjayBsaW5rcyBzdGF0dXMs IHRoZXJlIGhhcyBiZWVuIGtub3duIGlzc3VlcyBvZgogCQkgKiBsaW5rIGxvc3MgdHJpZ2dlcnJp bmcgbG9uZyBwdWxzZSEhISEKIAkJICovCi0JCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9j b25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7CisJCWlmICghY3R4KQorCQkJZHJtX21vZGVz ZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKKwogCQlp bnRlbF9kcF9jaGVja19saW5rX3N0YXR1cyhpbnRlbF9kcCk7Ci0JCWRybV9tb2Rlc2V0X3VubG9j aygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KTsKKworCQlpZiAoIWN0eCkKKwkJ CWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KTsK IAkJZ290byBvdXQ7CiAJfQogCkBAIC00NjgyLDE4ICs0Njg3LDE5IEBAIGludGVsX2RwX2xvbmdf cHVsc2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQogCXJldHVybiBz dGF0dXM7CiB9CiAKLXN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCi1pbnRlbF9kcF9k ZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKK3N0YXRp YyBpbnQKK2ludGVsX2RwX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAor CQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKIHsKIAlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gaW50ZWxfYXR0YWNoZWRfZHAoY29ubmVjdG9yKTsKLQllbnVtIGRybV9j b25uZWN0b3Jfc3RhdHVzIHN0YXR1cyA9IGNvbm5lY3Rvci0+c3RhdHVzOworCWludCBzdGF0dXMg PSBjb25uZWN0b3ItPnN0YXR1czsKIAogCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNd XG4iLAogCQkgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7CiAKIAkv KiBJZiBmdWxsIGRldGVjdCBpcyBub3QgcGVyZm9ybWVkIHlldCwgZG8gYSBmdWxsIGRldGVjdCAq LwogCWlmICghaW50ZWxfZHAtPmRldGVjdF9kb25lKQotCQlzdGF0dXMgPSBpbnRlbF9kcF9sb25n X3B1bHNlKGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3IpOworCQlzdGF0dXMgPSBpbnRlbF9k cF9sb25nX3B1bHNlKGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3IsIGN0eCk7CiAKIAlpbnRl bF9kcC0+ZGV0ZWN0X2RvbmUgPSBmYWxzZTsKIApAQCAtNTAxNCw3ICs1MDIwLDcgQEAgdm9pZCBp bnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAogc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGludGVsX2RwX2Nvbm5lY3Rvcl9m dW5jcyA9IHsKIAkuZHBtcyA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAotCS5k ZXRlY3QgPSBpbnRlbF9kcF9kZXRlY3QsCisJLmRldGVjdF9jdHggPSBpbnRlbF9kcF9kZXRlY3Qs CiAJLmZvcmNlID0gaW50ZWxfZHBfZm9yY2UsCiAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3By b2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCiAJLnNldF9wcm9wZXJ0eSA9IGludGVsX2RwX3Nl dF9wcm9wZXJ0eSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggZTI0NjQxYjU1OWUyLi42 ZWE4YjljZDY4YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMzYyLDEwICsxMzYy LDEwIEBAIGludCBpcm9ubGFrZV9nZXRfbGFuZXNfcmVxdWlyZWQoaW50IHRhcmdldF9jbG9jaywg aW50IGxpbmtfYncsIGludCBicHApOwogdm9pZCB2bHZfd2FpdF9wb3J0X3JlYWR5KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICpkcG9ydCwKIAkJCSB1bnNpZ25lZCBpbnQgZXhwZWN0ZWRfbWFzayk7Ci1ib29sIGludGVsX2dl dF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCi0JCQkJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCi0JCQkJc3RydWN0IGludGVsX2xvYWRfZGV0 ZWN0X3BpcGUgKm9sZCwKLQkJCQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7 CitpbnQgaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCSAg ICAgICBzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSAqb2xkLAorCQkJICAgICAgIHN0cnVj dCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKIHZvaWQgaW50ZWxfcmVsZWFzZV9sb2Fk X2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJICAgIHN0 cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlICpvbGQsCiAJCQkJICAgIHN0cnVjdCBkcm1fbW9k ZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hvdHBsdWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYwpp bmRleCA3ZDIxMDA5N2VlZmEuLmQyZDJhZjdlZjMwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hvdHBsdWcuYwpAQCAtMjQzLDcgKzI0MywxMSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9ocGRfaXJx X2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2Vk KCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KSk7CiAJb2xkX3N0YXR1cyA9IGNvbm5lY3Rvci0+c3Rh dHVzOwogCi0JY29ubmVjdG9yLT5zdGF0dXMgPSBjb25uZWN0b3ItPmZ1bmNzLT5kZXRlY3QoY29u bmVjdG9yLCBmYWxzZSk7CisJaWYgKGNvbm5lY3Rvci0+ZnVuY3MtPmRldGVjdF9jdHgpCisJCWNv bm5lY3Rvci0+c3RhdHVzID0gY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0X2N0eChjb25uZWN0b3Is IE5VTEwpOworCWVsc2UKKwkJY29ubmVjdG9yLT5zdGF0dXMgPSBjb25uZWN0b3ItPmZ1bmNzLT5k ZXRlY3QoY29ubmVjdG9yLCBmYWxzZSk7CisKIAlpZiAob2xkX3N0YXR1cyA9PSBjb25uZWN0b3It PnN0YXR1cykKIAkJcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF90di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwppbmRleCA2 ZWQxYTNjZTQ3YjcuLmQyYzAxMjAwNDhiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfdHYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCkBAIC0x MzE1LDggKzEzMTUsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9maW5kX2JldHRlcl9mb3JtYXQo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKICAqIEN1cnJlbnRseSB0aGlzIGFsd2F5 cyByZXR1cm5zIENPTk5FQ1RPUl9TVEFUVVNfVU5LTk9XTiwgYXMgd2UgbmVlZCB0byBiZSBzdXJl CiAgKiB3ZSBoYXZlIGEgcGlwZSBwcm9ncmFtbWVkIGluIG9yZGVyIHRvIHByb2JlIHRoZSBUVi4K ICAqLwotc3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKLWludGVsX3R2X2RldGVjdChz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQorc3RhdGljIGludAor aW50ZWxfdHZfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCXN0cnVj dCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlIG1vZGU7CiAJc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVkX3R2 KGNvbm5lY3Rvcik7CkBAIC0xMzI1LDI3ICsxMzI2LDI2IEBAIGludGVsX3R2X2RldGVjdChzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQogCiAJRFJNX0RFQlVHX0tN UygiW0NPTk5FQ1RPUjolZDolc10gZm9yY2U9JWRcbiIsCiAJCSAgICAgIGNvbm5lY3Rvci0+YmFz ZS5pZCwgY29ubmVjdG9yLT5uYW1lLAotCQkgICAgICBmb3JjZSk7CisJCSAgICAgICEhY3R4KTsK IAogCW1vZGUgPSByZXBvcnRlZF9tb2Rlc1swXTsKIAotCWlmIChmb3JjZSkgeworCWlmIChjdHgp IHsKIAkJc3RydWN0IGludGVsX2xvYWRfZGV0ZWN0X3BpcGUgdG1wOwotCQlzdHJ1Y3QgZHJtX21v ZGVzZXRfYWNxdWlyZV9jdHggY3R4OworCQlpbnQgcmV0OwogCi0JCWRybV9tb2Rlc2V0X2FjcXVp cmVfaW5pdCgmY3R4LCAwKTsKKwkJcmV0ID0gaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoY29u bmVjdG9yLCAmbW9kZSwgJnRtcCwgY3R4KTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0 OwogCi0JCWlmIChpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShjb25uZWN0b3IsICZtb2RlLCAm dG1wLCAmY3R4KSkgeworCQlpZiAocmV0ID4gMCkgewogCQkJdHlwZSA9IGludGVsX3R2X2RldGVj dF90eXBlKGludGVsX3R2LCBjb25uZWN0b3IpOwotCQkJaW50ZWxfcmVsZWFzZV9sb2FkX2RldGVj dF9waXBlKGNvbm5lY3RvciwgJnRtcCwgJmN0eCk7CisJCQlpbnRlbF9yZWxlYXNlX2xvYWRfZGV0 ZWN0X3BpcGUoY29ubmVjdG9yLCAmdG1wLCBjdHgpOwogCQkJc3RhdHVzID0gdHlwZSA8IDAgPwog CQkJCWNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkIDoKIAkJCQljb25uZWN0b3Jfc3RhdHVz X2Nvbm5lY3RlZDsKIAkJfSBlbHNlCiAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX3Vua25v d247Ci0KLQkJZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKLQkJZHJtX21vZGVzZXRfYWNx dWlyZV9maW5pKCZjdHgpOwogCX0gZWxzZQogCQlyZXR1cm4gY29ubmVjdG9yLT5zdGF0dXM7CiAK QEAgLTE1MTYsNyArMTUxNiw3IEBAIGludGVsX3R2X3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLCBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wCiAKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfZnVuY3Mg PSB7CiAJLmRwbXMgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHBtcywKLQkuZGV0ZWN0 ID0gaW50ZWxfdHZfZGV0ZWN0LAorCS5kZXRlY3RfY3R4ID0gaW50ZWxfdHZfZGV0ZWN0LAogCS5s YXRlX3JlZ2lzdGVyID0gaW50ZWxfY29ubmVjdG9yX3JlZ2lzdGVyLAogCS5lYXJseV91bnJlZ2lz dGVyID0gaW50ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIsCiAJLmRlc3Ryb3kgPSBpbnRlbF90dl9k ZXN0cm95LApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVk ZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCmluZGV4IDk0MWY1N2YzMTFhYS4uODM0ZDFiYTcwOWVhIDEw MDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKKysrIGIvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oCkBAIC0zMiw2ICszMiw3IEBACiBzdHJ1Y3QgZHJtX2RldmljZTsKIAog c3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzOworc3RydWN0IGRybV9tb2Rlc2V0X2Fj cXVpcmVfY3R4Owogc3RydWN0IGRybV9kZXZpY2U7CiBzdHJ1Y3QgZHJtX2NydGM7CiBzdHJ1Y3Qg ZHJtX2VuY29kZXI7CkBAIC0zODUsNiArMzg2LDEwIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1 bmNzIHsKIAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzICgqZGV0ZWN0KShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAogCQkJCQkgICAgYm9vbCBmb3JjZSk7CiAKKwkvKiBjdHggPSBO VUxMIDw+IGRldGVjdChmb3JjZSA9IGZhbHNlKSwgYnV0IG1heSBhbHNvIHJldHVybiAtRURFQURM Sy4gKi8KKwlpbnQgKCpkZXRlY3RfY3R4KShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAorCQkJICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7CisKIAkvKioKIAkg KiBAZm9yY2U6CiAJICoKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK