From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH v2 01/16] drm/dp_mst: Rename drm_dp_mst_get_validated_(port|mstb)_ref and friends Date: Wed, 19 Dec 2018 19:19:45 -0500 Message-ID: <20181220001959.12486-2-lyude@redhat.com> References: <20181220001959.12486-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181220001959.12486-1-lyude@redhat.com> 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, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, amd-gfx@lists.freedesktop.org Cc: Jerry Zuo , David Airlie , Juston Li List-Id: intel-gfx@lists.freedesktop.org cy9kcm1fZHBfZ2V0X3ZhbGlkYXRlZF9wb3J0X3JlZi9kcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9w b3J0X3ZhbGlkYXRlZC8Kcy9kcm1fZHBfcHV0X3BvcnQvZHJtX2RwX21zdF90b3BvbG9neV9wdXRf cG9ydC8Kcy9kcm1fZHBfZ2V0X3ZhbGlkYXRlZF9tc3RiX3JlZi9kcm1fZHBfbXN0X3RvcG9sb2d5 X2dldF9tc3RiX3ZhbGlkYXRlZC8Kcy9kcm1fZHBfcHV0X21zdF9icmFuY2hfZGV2aWNlL2RybV9k cF9tc3RfdG9wb2xvZ3lfcHV0X21zdGIvCgpUaGlzIGlzIGEgbXVjaCBtb3JlIGNvbnNpc3RlbnQg bmFtaW5nIHNjaGVtZSwgYW5kIHdpbGwgbWFrZSBldmVuIG1vcmUKc2Vuc2Ugb25jZSB3ZSByZWRl c2lnbiBob3cgdGhlIGN1cnJlbnQgcmVmY291bnRpbmcgc2NoZW1lIGhlcmUgd29ya3MuCgpTaWdu ZWQtb2ZmLWJ5OiBMeXVkZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgpDYzogRGFuaWVsIFZldHRl ciA8ZGFuaWVsQGZmd2xsLmNoPgpDYzogRGF2aWQgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+ CkNjOiBKZXJyeSBadW8gPEplcnJ5Llp1b0BhbWQuY29tPgpDYzogSGFycnkgV2VudGxhbmQgPGhh cnJ5LndlbnRsYW5kQGFtZC5jb20+CkNjOiBKdXN0b24gTGkgPGp1c3Rvbi5saUBpbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyB8IDExNCArKysrKysr KysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDUy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3Rv cG9sb2d5LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCmluZGV4IDJh YjE2YzllNjI0My4uNmY5YjIxMTA2OWE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2RwX21zdF90b3BvbG9neS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9s b2d5LmMKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIGJvb2wgZHVtcF9kcF9wYXlsb2FkX3RhYmxl KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCQkJCSAgY2hhciAqYnVmKTsK IHN0YXRpYyBpbnQgdGVzdF9jYWxjX3Bibl9tb2RlKHZvaWQpOwogCi1zdGF0aWMgdm9pZCBkcm1f ZHBfcHV0X3BvcnQoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCk7CitzdGF0aWMgdm9pZCBk cm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9wb3J0KHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQp OwogCiBzdGF0aWMgaW50IGRybV9kcF9kcGNkX3dyaXRlX3BheWxvYWQoc3RydWN0IGRybV9kcF9t c3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJICAgICBpbnQgaWQsCkBAIC04ODgsNyArODg4LDcg QEAgc3RhdGljIHZvaWQgZHJtX2RwX2Rlc3Ryb3lfbXN0X2JyYW5jaF9kZXZpY2Uoc3RydWN0IGty ZWYgKmtyZWYpCiAJICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBvcnQsIHRtcCwgJm1z dGItPnBvcnRzLCBuZXh0KSB7CiAJCWxpc3RfZGVsKCZwb3J0LT5uZXh0KTsKLQkJZHJtX2RwX3B1 dF9wb3J0KHBvcnQpOworCQlkcm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9wb3J0KHBvcnQpOwogCX0K IAogCS8qIGRyb3AgYW55IHR4IHNsb3RzIG1zZyAqLwpAQCAtOTExLDcgKzkxMSw3IEBAIHN0YXRp YyB2b2lkIGRybV9kcF9kZXN0cm95X21zdF9icmFuY2hfZGV2aWNlKHN0cnVjdCBrcmVmICprcmVm KQogCWtyZWZfcHV0KGtyZWYsIGRybV9kcF9mcmVlX21zdF9icmFuY2hfZGV2aWNlKTsKIH0KIAot c3RhdGljIHZvaWQgZHJtX2RwX3B1dF9tc3RfYnJhbmNoX2RldmljZShzdHJ1Y3QgZHJtX2RwX21z dF9icmFuY2ggKm1zdGIpCitzdGF0aWMgdm9pZCBkcm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9tc3Ri KHN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YikKIHsKIAlrcmVmX3B1dCgmbXN0Yi0+a3Jl ZiwgZHJtX2RwX2Rlc3Ryb3lfbXN0X2JyYW5jaF9kZXZpY2UpOwogfQpAQCAtOTMwLDcgKzkzMCw3 IEBAIHN0YXRpYyB2b2lkIGRybV9kcF9wb3J0X3RlYXJkb3duX3BkdChzdHJ1Y3QgZHJtX2RwX21z dF9wb3J0ICpwb3J0LCBpbnQgb2xkX3BkdCkKIAljYXNlIERQX1BFRVJfREVWSUNFX01TVF9CUkFO Q0hJTkc6CiAJCW1zdGIgPSBwb3J0LT5tc3RiOwogCQlwb3J0LT5tc3RiID0gTlVMTDsKLQkJZHJt X2RwX3B1dF9tc3RfYnJhbmNoX2RldmljZShtc3RiKTsKKwkJZHJtX2RwX21zdF90b3BvbG9neV9w dXRfbXN0Yihtc3RiKTsKIAkJYnJlYWs7CiAJfQogfQpAQCAtOTcwLDEyICs5NzAsMTQgQEAgc3Rh dGljIHZvaWQgZHJtX2RwX2Rlc3Ryb3lfcG9ydChzdHJ1Y3Qga3JlZiAqa3JlZikKIAlrZnJlZShw b3J0KTsKIH0KIAotc3RhdGljIHZvaWQgZHJtX2RwX3B1dF9wb3J0KHN0cnVjdCBkcm1fZHBfbXN0 X3BvcnQgKnBvcnQpCitzdGF0aWMgdm9pZCBkcm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9wb3J0KHN0 cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpCiB7CiAJa3JlZl9wdXQoJnBvcnQtPmtyZWYsIGRy bV9kcF9kZXN0cm95X3BvcnQpOwogfQogCi1zdGF0aWMgc3RydWN0IGRybV9kcF9tc3RfYnJhbmNo ICpkcm1fZHBfbXN0X2dldF92YWxpZGF0ZWRfbXN0Yl9yZWZfbG9ja2VkKHN0cnVjdCBkcm1fZHBf bXN0X2JyYW5jaCAqbXN0Yiwgc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICp0b19maW5kKQorc3Rh dGljIHN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqCitkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9t c3RiX3ZhbGlkYXRlZF9sb2NrZWQoc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiLAorCQkJ CQkgICAgICBzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2ggKnRvX2ZpbmQpCiB7CiAJc3RydWN0IGRy bV9kcF9tc3RfcG9ydCAqcG9ydDsKIAlzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2ggKnJtc3RiOwpA QCAtOTg1LDcgKzk4Nyw4IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2ggKmRybV9k cF9tc3RfZ2V0X3ZhbGlkYXRlZF9tc3RiX3JlZl9sb2NrZWQoc3RydWN0CiAJfQogCWxpc3RfZm9y X2VhY2hfZW50cnkocG9ydCwgJm1zdGItPnBvcnRzLCBuZXh0KSB7CiAJCWlmIChwb3J0LT5tc3Ri KSB7Ci0JCQlybXN0YiA9IGRybV9kcF9tc3RfZ2V0X3ZhbGlkYXRlZF9tc3RiX3JlZl9sb2NrZWQo cG9ydC0+bXN0YiwgdG9fZmluZCk7CisJCQlybXN0YiA9IGRybV9kcF9tc3RfdG9wb2xvZ3lfZ2V0 X21zdGJfdmFsaWRhdGVkX2xvY2tlZCgKKwkJCSAgICBwb3J0LT5tc3RiLCB0b19maW5kKTsKIAkJ CWlmIChybXN0YikKIAkJCQlyZXR1cm4gcm1zdGI7CiAJCX0KQEAgLTk5MywxMiArOTk2LDE1IEBA IHN0YXRpYyBzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2ggKmRybV9kcF9tc3RfZ2V0X3ZhbGlkYXRl ZF9tc3RiX3JlZl9sb2NrZWQoc3RydWN0CiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyBzdHJ1 Y3QgZHJtX2RwX21zdF9icmFuY2ggKmRybV9kcF9nZXRfdmFsaWRhdGVkX21zdGJfcmVmKHN0cnVj dCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLCBzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2gg Km1zdGIpCitzdGF0aWMgc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICoKK2RybV9kcF9tc3RfdG9w b2xvZ3lfZ2V0X21zdGJfdmFsaWRhdGVkKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAq bWdyLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2ggKm1zdGIpCiB7CiAJc3Ry dWN0IGRybV9kcF9tc3RfYnJhbmNoICpybXN0YiA9IE5VTEw7CiAJbXV0ZXhfbG9jaygmbWdyLT5s b2NrKTsKIAlpZiAobWdyLT5tc3RfcHJpbWFyeSkKLQkJcm1zdGIgPSBkcm1fZHBfbXN0X2dldF92 YWxpZGF0ZWRfbXN0Yl9yZWZfbG9ja2VkKG1nci0+bXN0X3ByaW1hcnksIG1zdGIpOworCQlybXN0 YiA9IGRybV9kcF9tc3RfdG9wb2xvZ3lfZ2V0X21zdGJfdmFsaWRhdGVkX2xvY2tlZCgKKwkJICAg IG1nci0+bXN0X3ByaW1hcnksIG1zdGIpOwogCW11dGV4X3VubG9jaygmbWdyLT5sb2NrKTsKIAly ZXR1cm4gcm1zdGI7CiB9CkBAIC0xMDIxLDcgKzEwMjcsOSBAQCBzdGF0aWMgc3RydWN0IGRybV9k cF9tc3RfcG9ydCAqZHJtX2RwX21zdF9nZXRfcG9ydF9yZWZfbG9ja2VkKHN0cnVjdCBkcm1fZHBf bXN0XwogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAq ZHJtX2RwX2dldF92YWxpZGF0ZWRfcG9ydF9yZWYoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lf bWdyICptZ3IsIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpCitzdGF0aWMgc3RydWN0IGRy bV9kcF9tc3RfcG9ydCAqCitkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9wb3J0X3ZhbGlkYXRlZChz dHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKKwkJCQkgICAgICAgc3RydWN0IGRy bV9kcF9tc3RfcG9ydCAqcG9ydCkKIHsKIAlzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpycG9ydCA9 IE5VTEw7CiAJbXV0ZXhfbG9jaygmbWdyLT5sb2NrKTsKQEAgLTEyMTAsNyArMTIxOCw3IEBAIHN0 YXRpYyB2b2lkIGRybV9kcF9hZGRfcG9ydChzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2ggKm1zdGIs CiAJCQlsaXN0X2RlbCgmcG9ydC0+bmV4dCk7CiAJCQltdXRleF91bmxvY2soJm1zdGItPm1nci0+ bG9jayk7CiAJCQkvKiBkcm9wIHBvcnQgbGlzdCByZWZlcmVuY2UgKi8KLQkJCWRybV9kcF9wdXRf cG9ydChwb3J0KTsKKwkJCWRybV9kcF9tc3RfdG9wb2xvZ3lfcHV0X3BvcnQocG9ydCk7CiAJCQln b3RvIG91dDsKIAkJfQogCQlpZiAoKHBvcnQtPnBkdCA9PSBEUF9QRUVSX0RFVklDRV9EUF9MRUdB Q1lfQ09OViB8fApAQCAtMTIyNCw3ICsxMjMyLDcgQEAgc3RhdGljIHZvaWQgZHJtX2RwX2FkZF9w b3J0KHN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YiwKIAogb3V0OgogCS8qIHB1dCByZWZl cmVuY2UgdG8gdGhpcyBwb3J0ICovCi0JZHJtX2RwX3B1dF9wb3J0KHBvcnQpOworCWRybV9kcF9t c3RfdG9wb2xvZ3lfcHV0X3BvcnQocG9ydCk7CiB9CiAKIHN0YXRpYyB2b2lkIGRybV9kcF91cGRh dGVfcG9ydChzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2ggKm1zdGIsCkBAIC0xMjU5LDcgKzEyNjcs NyBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfdXBkYXRlX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfYnJh bmNoICptc3RiLAogCQkJZG93b3JrID0gdHJ1ZTsKIAl9CiAKLQlkcm1fZHBfcHV0X3BvcnQocG9y dCk7CisJZHJtX2RwX21zdF90b3BvbG9neV9wdXRfcG9ydChwb3J0KTsKIAlpZiAoZG93b3JrKQog CQlxdWV1ZV93b3JrKHN5c3RlbV9sb25nX3dxLCAmbXN0Yi0+bWdyLT53b3JrKTsKIApAQCAtMTM2 MiwxMCArMTM3MCwxMSBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfY2hlY2tfYW5kX3NlbmRfbGlua19h ZGRyZXNzKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbQogCQkJZHJtX2RwX3NlbmRf ZW51bV9wYXRoX3Jlc291cmNlcyhtZ3IsIG1zdGIsIHBvcnQpOwogCiAJCWlmIChwb3J0LT5tc3Ri KSB7Ci0JCQltc3RiX2NoaWxkID0gZHJtX2RwX2dldF92YWxpZGF0ZWRfbXN0Yl9yZWYobWdyLCBw b3J0LT5tc3RiKTsKKwkJCW1zdGJfY2hpbGQgPSBkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9tc3Ri X3ZhbGlkYXRlZCgKKwkJCSAgICBtZ3IsIHBvcnQtPm1zdGIpOwogCQkJaWYgKG1zdGJfY2hpbGQp IHsKIAkJCQlkcm1fZHBfY2hlY2tfYW5kX3NlbmRfbGlua19hZGRyZXNzKG1nciwgbXN0Yl9jaGls ZCk7Ci0JCQkJZHJtX2RwX3B1dF9tc3RfYnJhbmNoX2RldmljZShtc3RiX2NoaWxkKTsKKwkJCQlk cm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9tc3RiKG1zdGJfY2hpbGQpOwogCQkJfQogCQl9CiAJfQpA QCAtMTM4NCw3ICsxMzkzLDcgQEAgc3RhdGljIHZvaWQgZHJtX2RwX21zdF9saW5rX3Byb2JlX3dv cmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCW11dGV4X3VubG9jaygmbWdyLT5sb2NrKTsK IAlpZiAobXN0YikgewogCQlkcm1fZHBfY2hlY2tfYW5kX3NlbmRfbGlua19hZGRyZXNzKG1nciwg bXN0Yik7Ci0JCWRybV9kcF9wdXRfbXN0X2JyYW5jaF9kZXZpY2UobXN0Yik7CisJCWRybV9kcF9t c3RfdG9wb2xvZ3lfcHV0X21zdGIobXN0Yik7CiAJfQogfQogCkBAIC0xNzI2LDE3ICsxNzM1LDE3 IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3BheWxvYWRfc2VuZF9tc2coc3RydWN0IGRybV9kcF9tc3Rf dG9wb2xvZ3lfbWdyICptZ3IsCiAJdTggc2lua3NbRFJNX0RQX01BWF9TRFBfU1RSRUFNU107CiAJ aW50IGk7CiAKLQlwb3J0ID0gZHJtX2RwX2dldF92YWxpZGF0ZWRfcG9ydF9yZWYobWdyLCBwb3J0 KTsKKwlwb3J0ID0gZHJtX2RwX21zdF90b3BvbG9neV9nZXRfcG9ydF92YWxpZGF0ZWQobWdyLCBw b3J0KTsKIAlpZiAoIXBvcnQpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJcG9ydF9udW0gPSBwb3J0 LT5wb3J0X251bTsKLQltc3RiID0gZHJtX2RwX2dldF92YWxpZGF0ZWRfbXN0Yl9yZWYobWdyLCBw b3J0LT5wYXJlbnQpOworCW1zdGIgPSBkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9tc3RiX3ZhbGlk YXRlZChtZ3IsIHBvcnQtPnBhcmVudCk7CiAJaWYgKCFtc3RiKSB7CiAJCW1zdGIgPSBkcm1fZHBf Z2V0X2xhc3RfY29ubmVjdGVkX3BvcnRfYW5kX21zdGIobWdyLCBwb3J0LT5wYXJlbnQsICZwb3J0 X251bSk7CiAKIAkJaWYgKCFtc3RiKSB7Ci0JCQlkcm1fZHBfcHV0X3BvcnQocG9ydCk7CisJCQlk cm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9wb3J0KHBvcnQpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJ CX0KIAl9CkBAIC0xNzY2LDggKzE3NzUsOCBAQCBzdGF0aWMgaW50IGRybV9kcF9wYXlsb2FkX3Nl bmRfbXNnKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCX0KIAlrZnJlZSh0 eG1zZyk7CiBmYWlsX3B1dDoKLQlkcm1fZHBfcHV0X21zdF9icmFuY2hfZGV2aWNlKG1zdGIpOwot CWRybV9kcF9wdXRfcG9ydChwb3J0KTsKKwlkcm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9tc3RiKG1z dGIpOworCWRybV9kcF9tc3RfdG9wb2xvZ3lfcHV0X3BvcnQocG9ydCk7CiAJcmV0dXJuIHJldDsK IH0KIApAQCAtMTc3NywxMyArMTc4NiwxMyBAQCBpbnQgZHJtX2RwX3NlbmRfcG93ZXJfdXBkb3du X3BoeShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAlzdHJ1Y3QgZHJtX2Rw X3NpZGViYW5kX21zZ190eCAqdHhtc2c7CiAJaW50IGxlbiwgcmV0OwogCi0JcG9ydCA9IGRybV9k cF9nZXRfdmFsaWRhdGVkX3BvcnRfcmVmKG1nciwgcG9ydCk7CisJcG9ydCA9IGRybV9kcF9tc3Rf dG9wb2xvZ3lfZ2V0X3BvcnRfdmFsaWRhdGVkKG1nciwgcG9ydCk7CiAJaWYgKCFwb3J0KQogCQly ZXR1cm4gLUVJTlZBTDsKIAogCXR4bXNnID0ga3phbGxvYyhzaXplb2YoKnR4bXNnKSwgR0ZQX0tF Uk5FTCk7CiAJaWYgKCF0eG1zZykgewotCQlkcm1fZHBfcHV0X3BvcnQocG9ydCk7CisJCWRybV9k cF9tc3RfdG9wb2xvZ3lfcHV0X3BvcnQocG9ydCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIApA QCAtMTc5OSw3ICsxODA4LDcgQEAgaW50IGRybV9kcF9zZW5kX3Bvd2VyX3VwZG93bl9waHkoc3Ry dWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQlyZXQgPSAwOwogCX0KIAlrZnJl ZSh0eG1zZyk7Ci0JZHJtX2RwX3B1dF9wb3J0KHBvcnQpOworCWRybV9kcF9tc3RfdG9wb2xvZ3lf cHV0X3BvcnQocG9ydCk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTg4OCw3ICsxODk3LDggQEAg aW50IGRybV9kcF91cGRhdGVfcGF5bG9hZF9wYXJ0MShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3IgKm1ncikKIAkJaWYgKHZjcGkpIHsKIAkJCXBvcnQgPSBjb250YWluZXJfb2YodmNwaSwg c3RydWN0IGRybV9kcF9tc3RfcG9ydCwKIAkJCQkJICAgIHZjcGkpOwotCQkJcG9ydCA9IGRybV9k cF9nZXRfdmFsaWRhdGVkX3BvcnRfcmVmKG1nciwgcG9ydCk7CisJCQlwb3J0ID0gZHJtX2RwX21z dF90b3BvbG9neV9nZXRfcG9ydF92YWxpZGF0ZWQobWdyLAorCQkJCQkJCQkgICAgICBwb3J0KTsK IAkJCWlmICghcG9ydCkgewogCQkJCW11dGV4X3VubG9jaygmbWdyLT5wYXlsb2FkX2xvY2spOwog CQkJCXJldHVybiAtRUlOVkFMOwpAQCAtMTkyNSw3ICsxOTM1LDcgQEAgaW50IGRybV9kcF91cGRh dGVfcGF5bG9hZF9wYXJ0MShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1ncikKIAkJ Y3VyX3Nsb3RzICs9IHJlcV9wYXlsb2FkLm51bV9zbG90czsKIAogCQlpZiAocG9ydCkKLQkJCWRy bV9kcF9wdXRfcG9ydChwb3J0KTsKKwkJCWRybV9kcF9tc3RfdG9wb2xvZ3lfcHV0X3BvcnQocG9y dCk7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IG1nci0+bWF4X3BheWxvYWRzOyBpKyspIHsKQEAg LTIwMjQsNyArMjAzNCw3IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3NlbmRfZHBjZF93cml0ZShzdHJ1 Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAlzdHJ1Y3QgZHJtX2RwX3NpZGViYW5k X21zZ190eCAqdHhtc2c7CiAJc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiOwogCi0JbXN0 YiA9IGRybV9kcF9nZXRfdmFsaWRhdGVkX21zdGJfcmVmKG1nciwgcG9ydC0+cGFyZW50KTsKKwlt c3RiID0gZHJtX2RwX21zdF90b3BvbG9neV9nZXRfbXN0Yl92YWxpZGF0ZWQobWdyLCBwb3J0LT5w YXJlbnQpOwogCWlmICghbXN0YikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTIwNDgsNyArMjA1 OCw3IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3NlbmRfZHBjZF93cml0ZShzdHJ1Y3QgZHJtX2RwX21z dF90b3BvbG9neV9tZ3IgKm1nciwKIAl9CiAJa2ZyZWUodHhtc2cpOwogZmFpbF9wdXQ6Ci0JZHJt X2RwX3B1dF9tc3RfYnJhbmNoX2RldmljZShtc3RiKTsKKwlkcm1fZHBfbXN0X3RvcG9sb2d5X3B1 dF9tc3RiKG1zdGIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTIxOTIsNyArMjIwMiw3IEBAIGlu dCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9zZXRfbXN0KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9s b2d5X21nciAqbWdyLCBib29sIG1zCiBvdXRfdW5sb2NrOgogCW11dGV4X3VubG9jaygmbWdyLT5s b2NrKTsKIAlpZiAobXN0YikKLQkJZHJtX2RwX3B1dF9tc3RfYnJhbmNoX2RldmljZShtc3RiKTsK KwkJZHJtX2RwX21zdF90b3BvbG9neV9wdXRfbXN0Yihtc3RiKTsKIAlyZXR1cm4gcmV0OwogCiB9 CkBAIC0yMzU3LDcgKzIzNjcsNyBAQCBzdGF0aWMgaW50IGRybV9kcF9tc3RfaGFuZGxlX2Rvd25f cmVwKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKQogCQkJICAgICAgIG1nci0+ ZG93bl9yZXBfcmVjdi5pbml0aWFsX2hkci5sY3QsCiAJCQkJICAgICAgbWdyLT5kb3duX3JlcF9y ZWN2LmluaXRpYWxfaGRyLnJhZFswXSwKIAkJCQkgICAgICBtZ3ItPmRvd25fcmVwX3JlY3YubXNn WzBdKTsKLQkJCWRybV9kcF9wdXRfbXN0X2JyYW5jaF9kZXZpY2UobXN0Yik7CisJCQlkcm1fZHBf bXN0X3RvcG9sb2d5X3B1dF9tc3RiKG1zdGIpOwogCQkJbWVtc2V0KCZtZ3ItPmRvd25fcmVwX3Jl Y3YsIDAsIHNpemVvZihzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yeCkpOwogCQkJcmV0dXJu IDA7CiAJCX0KQEAgLTIzNjgsNyArMjM3OCw3IEBAIHN0YXRpYyBpbnQgZHJtX2RwX21zdF9oYW5k bGVfZG93bl9yZXAoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpCiAJCX0KIAog CQltZW1zZXQoJm1nci0+ZG93bl9yZXBfcmVjdiwgMCwgc2l6ZW9mKHN0cnVjdCBkcm1fZHBfc2lk ZWJhbmRfbXNnX3J4KSk7Ci0JCWRybV9kcF9wdXRfbXN0X2JyYW5jaF9kZXZpY2UobXN0Yik7CisJ CWRybV9kcF9tc3RfdG9wb2xvZ3lfcHV0X21zdGIobXN0Yik7CiAKIAkJbXV0ZXhfbG9jaygmbWdy LT5xbG9jayk7CiAJCXR4bXNnLT5zdGF0ZSA9IERSTV9EUF9TSURFQkFORF9UWF9SWDsKQEAgLTI0 NDEsNyArMjQ1MSw3IEBAIHN0YXRpYyBpbnQgZHJtX2RwX21zdF9oYW5kbGVfdXBfcmVxKHN0cnVj dCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKQogCQl9CiAKIAkJaWYgKG1zdGIpCi0JCQlk cm1fZHBfcHV0X21zdF9icmFuY2hfZGV2aWNlKG1zdGIpOworCQkJZHJtX2RwX21zdF90b3BvbG9n eV9wdXRfbXN0Yihtc3RiKTsKIAogCQltZW1zZXQoJm1nci0+dXBfcmVxX3JlY3YsIDAsIHNpemVv ZihzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yeCkpOwogCX0KQEAgLTI1MDEsNyArMjUxMSw3 IEBAIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgZHJtX2RwX21zdF9kZXRlY3RfcG9ydChzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yCiAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBz dGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKIAogCS8qIHdlIG5lZWQgdG8g c2VhcmNoIGZvciB0aGUgcG9ydCBpbiB0aGUgbWdyIGluIGNhc2UgaXRzIGdvbmUgKi8KLQlwb3J0 ID0gZHJtX2RwX2dldF92YWxpZGF0ZWRfcG9ydF9yZWYobWdyLCBwb3J0KTsKKwlwb3J0ID0gZHJt X2RwX21zdF90b3BvbG9neV9nZXRfcG9ydF92YWxpZGF0ZWQobWdyLCBwb3J0KTsKIAlpZiAoIXBv cnQpCiAJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKIApAQCAtMjUyNiw3 ICsyNTM2LDcgQEAgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBkcm1fZHBfbXN0X2RldGVjdF9w b3J0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IKIAkJYnJlYWs7CiAJfQogb3V0Ogot CWRybV9kcF9wdXRfcG9ydChwb3J0KTsKKwlkcm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9wb3J0KHBv cnQpOwogCXJldHVybiBzdGF0dXM7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9tc3RfZGV0ZWN0 X3BvcnQpOwpAQCAtMjU0MywxMSArMjU1MywxMSBAQCBib29sIGRybV9kcF9tc3RfcG9ydF9oYXNf YXVkaW8oc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiB7CiAJYm9vbCByZXQg PSBmYWxzZTsKIAotCXBvcnQgPSBkcm1fZHBfZ2V0X3ZhbGlkYXRlZF9wb3J0X3JlZihtZ3IsIHBv cnQpOworCXBvcnQgPSBkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9wb3J0X3ZhbGlkYXRlZChtZ3Is IHBvcnQpOwogCWlmICghcG9ydCkKIAkJcmV0dXJuIHJldDsKIAlyZXQgPSBwb3J0LT5oYXNfYXVk aW87Ci0JZHJtX2RwX3B1dF9wb3J0KHBvcnQpOworCWRybV9kcF9tc3RfdG9wb2xvZ3lfcHV0X3Bv cnQocG9ydCk7CiAJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX21zdF9wb3J0 X2hhc19hdWRpbyk7CkBAIC0yNTY3LDcgKzI1NzcsNyBAQCBzdHJ1Y3QgZWRpZCAqZHJtX2RwX21z dF9nZXRfZWRpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBzdHJ1Y3QgZHJtX2Rw XwogCXN0cnVjdCBlZGlkICplZGlkID0gTlVMTDsKIAogCS8qIHdlIG5lZWQgdG8gc2VhcmNoIGZv ciB0aGUgcG9ydCBpbiB0aGUgbWdyIGluIGNhc2UgaXRzIGdvbmUgKi8KLQlwb3J0ID0gZHJtX2Rw X2dldF92YWxpZGF0ZWRfcG9ydF9yZWYobWdyLCBwb3J0KTsKKwlwb3J0ID0gZHJtX2RwX21zdF90 b3BvbG9neV9nZXRfcG9ydF92YWxpZGF0ZWQobWdyLCBwb3J0KTsKIAlpZiAoIXBvcnQpCiAJCXJl dHVybiBOVUxMOwogCkBAIC0yNTc4LDcgKzI1ODgsNyBAQCBzdHJ1Y3QgZWRpZCAqZHJtX2RwX21z dF9nZXRfZWRpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBzdHJ1Y3QgZHJtX2Rw XwogCQlkcm1fY29ubmVjdG9yX3NldF90aWxlX3Byb3BlcnR5KGNvbm5lY3Rvcik7CiAJfQogCXBv cnQtPmhhc19hdWRpbyA9IGRybV9kZXRlY3RfbW9uaXRvcl9hdWRpbyhlZGlkKTsKLQlkcm1fZHBf cHV0X3BvcnQocG9ydCk7CisJZHJtX2RwX21zdF90b3BvbG9neV9wdXRfcG9ydChwb3J0KTsKIAly ZXR1cm4gZWRpZDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX21zdF9nZXRfZWRpZCk7CkBAIC0y NjQ5LDcgKzI2NTksNyBAQCBpbnQgZHJtX2RwX2F0b21pY19maW5kX3ZjcGlfc2xvdHMoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWlmIChJU19FUlIodG9wb2xvZ3lfc3RhdGUpKQog CQlyZXR1cm4gUFRSX0VSUih0b3BvbG9neV9zdGF0ZSk7CiAKLQlwb3J0ID0gZHJtX2RwX2dldF92 YWxpZGF0ZWRfcG9ydF9yZWYobWdyLCBwb3J0KTsKKwlwb3J0ID0gZHJtX2RwX21zdF90b3BvbG9n eV9nZXRfcG9ydF92YWxpZGF0ZWQobWdyLCBwb3J0KTsKIAlpZiAocG9ydCA9PSBOVUxMKQogCQly ZXR1cm4gLUVJTlZBTDsKIAlyZXFfc2xvdHMgPSBESVZfUk9VTkRfVVAocGJuLCBtZ3ItPnBibl9k aXYpOwpAQCAtMjY1NywxNCArMjY2NywxNCBAQCBpbnQgZHJtX2RwX2F0b21pY19maW5kX3ZjcGlf c2xvdHMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJcmVxX3Nsb3RzLCB0b3Bv bG9neV9zdGF0ZS0+YXZhaWxfc2xvdHMpOwogCiAJaWYgKHJlcV9zbG90cyA+IHRvcG9sb2d5X3N0 YXRlLT5hdmFpbF9zbG90cykgewotCQlkcm1fZHBfcHV0X3BvcnQocG9ydCk7CisJCWRybV9kcF9t c3RfdG9wb2xvZ3lfcHV0X3BvcnQocG9ydCk7CiAJCXJldHVybiAtRU5PU1BDOwogCX0KIAogCXRv cG9sb2d5X3N0YXRlLT5hdmFpbF9zbG90cyAtPSByZXFfc2xvdHM7CiAJRFJNX0RFQlVHX0tNUygi dmNwaSBzbG90cyBhdmFpbD0lZCIsIHRvcG9sb2d5X3N0YXRlLT5hdmFpbF9zbG90cyk7CiAKLQlk cm1fZHBfcHV0X3BvcnQocG9ydCk7CisJZHJtX2RwX21zdF90b3BvbG9neV9wdXRfcG9ydChwb3J0 KTsKIAlyZXR1cm4gcmVxX3Nsb3RzOwogfQogRVhQT1JUX1NZTUJPTChkcm1fZHBfYXRvbWljX2Zp bmRfdmNwaV9zbG90cyk7CkBAIC0yNzE1LDcgKzI3MjUsNyBAQCBib29sIGRybV9kcF9tc3RfYWxs b2NhdGVfdmNwaShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIHsKIAlpbnQg cmV0OwogCi0JcG9ydCA9IGRybV9kcF9nZXRfdmFsaWRhdGVkX3BvcnRfcmVmKG1nciwgcG9ydCk7 CisJcG9ydCA9IGRybV9kcF9tc3RfdG9wb2xvZ3lfZ2V0X3BvcnRfdmFsaWRhdGVkKG1nciwgcG9y dCk7CiAJaWYgKCFwb3J0KQogCQlyZXR1cm4gZmFsc2U7CiAKQEAgLTI3MjUsNyArMjczNSw3IEBA IGJvb2wgZHJtX2RwX21zdF9hbGxvY2F0ZV92Y3BpKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5 X21nciAqbWdyLAogCWlmIChwb3J0LT52Y3BpLnZjcGkgPiAwKSB7CiAJCURSTV9ERUJVR19LTVMo InBheWxvYWQ6IHZjcGkgJWQgYWxyZWFkeSBhbGxvY2F0ZWQgZm9yIHBibiAlZCAtIHJlcXVlc3Rl ZCBwYm4gJWRcbiIsIHBvcnQtPnZjcGkudmNwaSwgcG9ydC0+dmNwaS5wYm4sIHBibik7CiAJCWlm IChwYm4gPT0gcG9ydC0+dmNwaS5wYm4pIHsKLQkJCWRybV9kcF9wdXRfcG9ydChwb3J0KTsKKwkJ CWRybV9kcF9tc3RfdG9wb2xvZ3lfcHV0X3BvcnQocG9ydCk7CiAJCQlyZXR1cm4gdHJ1ZTsKIAkJ fQogCX0KQEAgLTI3MzksNyArMjc0OSw3IEBAIGJvb2wgZHJtX2RwX21zdF9hbGxvY2F0ZV92Y3Bp KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCURSTV9ERUJVR19LTVMoImlu aXRpbmcgdmNwaSBmb3IgcGJuPSVkIHNsb3RzPSVkXG4iLAogCQkJcGJuLCBwb3J0LT52Y3BpLm51 bV9zbG90cyk7CiAKLQlkcm1fZHBfcHV0X3BvcnQocG9ydCk7CisJZHJtX2RwX21zdF90b3BvbG9n eV9wdXRfcG9ydChwb3J0KTsKIAlyZXR1cm4gdHJ1ZTsKIG91dDoKIAlyZXR1cm4gZmFsc2U7CkBA IC0yNzQ5LDEyICsyNzU5LDEyIEBAIEVYUE9SVF9TWU1CT0woZHJtX2RwX21zdF9hbGxvY2F0ZV92 Y3BpKTsKIGludCBkcm1fZHBfbXN0X2dldF92Y3BpX3Nsb3RzKHN0cnVjdCBkcm1fZHBfbXN0X3Rv cG9sb2d5X21nciAqbWdyLCBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0KQogewogCWludCBz bG90cyA9IDA7Ci0JcG9ydCA9IGRybV9kcF9nZXRfdmFsaWRhdGVkX3BvcnRfcmVmKG1nciwgcG9y dCk7CisJcG9ydCA9IGRybV9kcF9tc3RfdG9wb2xvZ3lfZ2V0X3BvcnRfdmFsaWRhdGVkKG1nciwg cG9ydCk7CiAJaWYgKCFwb3J0KQogCQlyZXR1cm4gc2xvdHM7CiAKIAlzbG90cyA9IHBvcnQtPnZj cGkubnVtX3Nsb3RzOwotCWRybV9kcF9wdXRfcG9ydChwb3J0KTsKKwlkcm1fZHBfbXN0X3RvcG9s b2d5X3B1dF9wb3J0KHBvcnQpOwogCXJldHVybiBzbG90czsKIH0KIEVYUE9SVF9TWU1CT0woZHJt X2RwX21zdF9nZXRfdmNwaV9zbG90cyk7CkBAIC0yNzY4LDExICsyNzc4LDExIEBAIEVYUE9SVF9T WU1CT0woZHJtX2RwX21zdF9nZXRfdmNwaV9zbG90cyk7CiAgKi8KIHZvaWQgZHJtX2RwX21zdF9y ZXNldF92Y3BpX3Nsb3RzKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLCBzdHJ1 Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0KQogewotCXBvcnQgPSBkcm1fZHBfZ2V0X3ZhbGlkYXRl ZF9wb3J0X3JlZihtZ3IsIHBvcnQpOworCXBvcnQgPSBkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9w b3J0X3ZhbGlkYXRlZChtZ3IsIHBvcnQpOwogCWlmICghcG9ydCkKIAkJcmV0dXJuOwogCXBvcnQt PnZjcGkubnVtX3Nsb3RzID0gMDsKLQlkcm1fZHBfcHV0X3BvcnQocG9ydCk7CisJZHJtX2RwX21z dF90b3BvbG9neV9wdXRfcG9ydChwb3J0KTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX21zdF9y ZXNldF92Y3BpX3Nsb3RzKTsKIApAQCAtMjc4Myw3ICsyNzkzLDcgQEAgRVhQT1JUX1NZTUJPTChk cm1fZHBfbXN0X3Jlc2V0X3ZjcGlfc2xvdHMpOwogICovCiB2b2lkIGRybV9kcF9tc3RfZGVhbGxv Y2F0ZV92Y3BpKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLCBzdHJ1Y3QgZHJt X2RwX21zdF9wb3J0ICpwb3J0KQogewotCXBvcnQgPSBkcm1fZHBfZ2V0X3ZhbGlkYXRlZF9wb3J0 X3JlZihtZ3IsIHBvcnQpOworCXBvcnQgPSBkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9wb3J0X3Zh bGlkYXRlZChtZ3IsIHBvcnQpOwogCWlmICghcG9ydCkKIAkJcmV0dXJuOwogCkBAIC0yNzkyLDcg KzI4MDIsNyBAQCB2b2lkIGRybV9kcF9tc3RfZGVhbGxvY2F0ZV92Y3BpKHN0cnVjdCBkcm1fZHBf bXN0X3RvcG9sb2d5X21nciAqbWdyLCBzdHJ1Y3QgZHJtXwogCXBvcnQtPnZjcGkucGJuID0gMDsK IAlwb3J0LT52Y3BpLmFsaWduZWRfcGJuID0gMDsKIAlwb3J0LT52Y3BpLnZjcGkgPSAwOwotCWRy bV9kcF9wdXRfcG9ydChwb3J0KTsKKwlkcm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9wb3J0KHBvcnQp OwogfQogRVhQT1JUX1NZTUJPTChkcm1fZHBfbXN0X2RlYWxsb2NhdGVfdmNwaSk7CiAKQEAgLTMy OTIsNyArMzMwMiw3IEBAIHN0YXRpYyBpbnQgZHJtX2RwX21zdF9pMmNfeGZlcihzdHJ1Y3QgaTJj X2FkYXB0ZXIgKmFkYXB0ZXIsIHN0cnVjdCBpMmNfbXNnICptc2dzCiAJc3RydWN0IGRybV9kcF9z aWRlYmFuZF9tc2dfdHggKnR4bXNnID0gTlVMTDsKIAlpbnQgcmV0OwogCi0JbXN0YiA9IGRybV9k cF9nZXRfdmFsaWRhdGVkX21zdGJfcmVmKG1nciwgcG9ydC0+cGFyZW50KTsKKwltc3RiID0gZHJt X2RwX21zdF90b3BvbG9neV9nZXRfbXN0Yl92YWxpZGF0ZWQobWdyLCBwb3J0LT5wYXJlbnQpOwog CWlmICghbXN0YikKIAkJcmV0dXJuIC1FUkVNT1RFSU87CiAKQEAgLTMzNDIsNyArMzM1Miw3IEBA IHN0YXRpYyBpbnQgZHJtX2RwX21zdF9pMmNfeGZlcihzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0 ZXIsIHN0cnVjdCBpMmNfbXNnICptc2dzCiAJfQogb3V0OgogCWtmcmVlKHR4bXNnKTsKLQlkcm1f ZHBfcHV0X21zdF9icmFuY2hfZGV2aWNlKG1zdGIpOworCWRybV9kcF9tc3RfdG9wb2xvZ3lfcHV0 X21zdGIobXN0Yik7CiAJcmV0dXJuIHJldDsKIH0KIAotLSAKMi4xOS4yCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK