From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH 18/26] drm/dp_mst: Handle UP requests asynchronously Date: Wed, 17 Jul 2019 21:42:41 -0400 Message-ID: <20190718014329.8107-19-lyude@redhat.com> References: <20190718014329.8107-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3085E6E2DA for ; Thu, 18 Jul 2019 01:44:51 +0000 (UTC) In-Reply-To: <20190718014329.8107-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 Cc: Maxime Ripard , Sean Paul , linux-kernel@vger.kernel.org, David Airlie , Juston Li , Harry Wentland List-Id: dri-devel@lists.freedesktop.org T25jZSB1cG9uIGEgdGltZSwgaG90cGx1Z2dpbmcgZGV2aWNlcyBvbiBNU1QgYnJhbmNoZXMgYWN0 dWFsbHkgd29ya2VkIGluCkRSTS4gTm93LCBpdCBvbmx5IHdvcmtzIGluIGFtZGdwdSAobGlrZWx5 IGJlY2F1c2Ugb2YgaG93IGl0J3MgaG90cGx1ZwpoYW5kbGVycyBhcmUgaW1wbGVtZW50ZWQpLiBP biBib3RoIGk5MTUgYW5kIG5vdXZlYXUsIGhvdHBsdWcKbm90aWZpY2F0aW9ucyBmcm9tIE1TVCBi cmFuY2hlcyBhcmUgbm90aWNlZCAtIGJ1dCB0cnlpbmcgdG8gcmVzcG9uZCB0bwp0aGVtIGNhdXNl cyBtZXNzYWdpbmcgdGltZW91dHMgYW5kIGNhdXNlcyB0aGUgd2hvbGUgdG9wb2xvZ3kgc3RhdGUg dG8gZ28Kb3V0IG9mIHN5bmMgd2l0aCByZWFsaXR5LCB1c3VhbGx5IHJlc3VsdGluZyBpbiB0aGUg dXNlciBuZWVkaW5nIHRvCnJlcGx1ZyB0aGUgZW50aXJlIHRvcG9sb2d5IGluIGhvcGVzIHRoYXQg aXQgYWN0dWFsbHkgZml4ZXMgdGhpbmdzLgoKVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyBiZWNhdXNl IHRoZSB3YXkgd2UgY3VycmVudGx5IGhhbmRsZSBVUCByZXF1ZXN0cwppbiBNU1QgaXMgY29tcGxl dGVseSBib2d1cy4gZHJtX2RwX21zdF9oYW5kbGVfdXBfcmVxKCkgaXMgY2FsbGVkIGZyb20KZHJt X2RwX21zdF9ocGRfaXJxKCksIHdoaWNoIGlzIHVzdWFsbHkgY2FsbGVkIGZyb20gdGhlIGRyaXZl cidzIGhvdHBsdWcKaGFuZGxlci4gQmVjYXVzZSB3ZSBoYW5kbGUgc2VuZGluZyB0aGUgaG90cGx1 ZyBldmVudCBmcm9tIHRoaXMgZnVuY3Rpb24sCndlIGFjdHVhbGx5IGNhdXNlIHRoZSBkcml2ZXIn cyBob3RwbHVnIGhhbmRsZXIgKGFuZCBpbiB0dXJuLCBhbGwKc2lkZWJhbmQgdHJhbnNhY3Rpb25z KSB0byBibG9jayBvbgpkcm1fZGV2aWNlLT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LiBU aGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8Kc2VuZCBhbnkgc2lkZWJhbmQgbWVzc2FnZXMgZnJv bSB0aGUgZHJpdmVyJ3MgY29ubmVjdG9yIHByb2JpbmcKZnVuY3Rpb25zLCByZXN1bHRpbmcgaW4g dGhlIGFmb3JlbWVudGlvbmVkIHNpZGViYW5kIG1lc3NhZ2UgdGltZW91dC4KClRoZXJlJ3MgZXZl biBtb3JlIHByb2JsZW1zIHdpdGggdGhpcyBiZXlvbmQgYnJlYWtpbmcgaG90cGx1Z2dpbmcgb24g TVNUCmJyYW5jaCBkZXZpY2VzLiBJdCBhbHNvIG1ha2VzIGl0IGFsbW9zdCBpbXBvc3NpYmxlIHRv IHByb3RlY3QKZHJtX2RwX21zdF9wb3J0IHN0cnVjdCBtZW1iZXJzIHVuZGVyIGEgbG9jayBiZWNh dXNlIHdlIHRoZW4gaGF2ZSB0bwp3b3JyeSBhYm91dCBkZWFsaW5nIHdpdGggYWxsIG9mIHRoZSBs b2NrIGRlcGVuZGVuY3kgaXNzdWVzIHRoYXQgZW5zdWUuCgpTbywgbGV0J3MgZmluYWxseSBhY3R1 YWxseSBmaXggdGhpcyBpc3N1ZSBieSBoYW5kbGluZyB0aGUgcHJvY2Vzc2luZyBvZgp1cCByZXF1 ZXN0cyBhc3luY3Jvbm91c2x5LiBUaGlzIHdheSB3ZSBjYW4gc2VuZCBzaWRlYmFuZCBtZXNzYWdl cyBmcm9tCm1vc3QgY29udGV4dHMgd2l0aG91dCBoYXZpbmcgdG8gZGVhbCB3aXRoIGdldHRpbmcg YmxvY2tlZCBpZiB3ZSBob2xkCmNvbm5lY3Rpb25fbXV0ZXguIFRoaXMgYWxzbyBmaXhlcyBNU1Qg YnJhbmNoIGRldmljZSBob3RwbHVnZ2luZyBvbiBpOTE1LApmaW5hbGx5IQoKQ2M6IEp1c3RvbiBM aSA8anVzdG9uLmxpQGludGVsLmNvbT4KQ2M6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNv bT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNj OiBIYXJyeSBXZW50bGFuZCA8aHdlbnRsYW5AYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogTHl1ZGUg UGF1bCA8bHl1ZGVAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90 b3BvbG9neS5jIHwgMTQ4ICsrKysrKysrKysrKysrKysrKystLS0tLS0tCiBpbmNsdWRlL2RybS9k cm1fZHBfbXN0X2hlbHBlci5oICAgICAgIHwgIDE2ICsrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMjMg aW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3Rv cG9sb2d5LmMKaW5kZXggMzVjZWQ4NTE0ZTE4Li5lZTI4YjM3MmFmYTQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9kcF9tc3RfdG9wb2xvZ3kuYwpAQCAtNDUsNiArNDUsMTIgQEAKICAqIHByb3RvY29sLiBU aGUgaGVscGVycyBjb250YWluIGEgdG9wb2xvZ3kgbWFuYWdlciBhbmQgYmFuZHdpZHRoIG1hbmFn ZXIuCiAgKiBUaGUgaGVscGVycyBlbmNhcHN1bGF0ZSB0aGUgc2VuZGluZyBhbmQgcmVjZWl2ZWQg b2Ygc2lkZWJhbmQgbXNncy4KICAqLworc3RydWN0IGRybV9kcF9wZW5kaW5nX3VwX3JlcSB7CisJ c3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfaGRyIGhkcjsKKwlzdHJ1Y3QgZHJtX2RwX3NpZGVi YW5kX21zZ19yZXFfYm9keSBtc2c7CisJc3RydWN0IGxpc3RfaGVhZCBuZXh0OworfTsKKwogc3Rh dGljIGJvb2wgZHVtcF9kcF9wYXlsb2FkX3RhYmxlKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5 X21nciAqbWdyLAogCQkJCSAgY2hhciAqYnVmKTsKIApAQCAtMTE3OCw3ICsxMTg0LDcgQEAgc3Rh dGljIGludCBkcm1fZHBfbXN0X3dhaXRfdHhfcmVwbHkoc3RydWN0IGRybV9kcF9tc3RfYnJhbmNo ICptc3RiLAogCQl9CiAJfQogb3V0OgotCWlmICh1bmxpa2VseShyZXQgPT0gLUVJTyAmJiBkcm1f ZGVidWcgJiAoRFJNX1VUX0RQIHwgRFJNX1VUX0tNUykpKSB7CisJaWYgKHJldCA9PSAtRUlPICYm IHVubGlrZWx5KGRybV9kZWJ1ZyAmIChEUk1fVVRfRFAgfCBEUk1fVVRfS01TKSkpIHsKIAkJc3Ry dWN0IGRybV9wcmludGVyIHAgPSBkcm1fZGVidWdfcHJpbnRlcihEQkdfUFJFRklYKTsKIAogCQlk cm1fZHBfbXN0X2R1bXBfc2lkZWJhbmRfbXNnX3R4KCZwLCB0eG1zZyk7CkBAIC0yOTkwLDYgKzI5 OTYsNyBAQCB2b2lkIGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyX3N1c3BlbmQoc3RydWN0IGRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpCiAJZHJtX2RwX2RwY2Rfd3JpdGViKG1nci0+YXV4LCBE UF9NU1RNX0NUUkwsCiAJCQkgICBEUF9NU1RfRU4gfCBEUF9VUFNUUkVBTV9JU19TUkMpOwogCW11 dGV4X3VubG9jaygmbWdyLT5sb2NrKTsKKwlmbHVzaF93b3JrKCZtZ3ItPnVwX3JlcV93b3JrKTsK IAlmbHVzaF93b3JrKCZtZ3ItPndvcmspOwogCWZsdXNoX3dvcmsoJm1nci0+ZGVzdHJveV9jb25u ZWN0b3Jfd29yayk7CiB9CkBAIC0zMTYyLDEyICszMTY5LDcwIEBAIHN0YXRpYyBpbnQgZHJtX2Rw X21zdF9oYW5kbGVfZG93bl9yZXAoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3Ip CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZAorZHJtX2RwX21zdF9wcm9jZXNz X3VwX3JlcShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKKwkJCSAgc3RydWN0 IGRybV9kcF9wZW5kaW5nX3VwX3JlcSAqdXBfcmVxKQoreworCXN0cnVjdCBkcm1fZHBfbXN0X2Jy YW5jaCAqbXN0YiA9IE5VTEw7CisJc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfcmVxX2JvZHkg Km1zZyA9ICZ1cF9yZXEtPm1zZzsKKwlzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19oZHIgKmhk ciA9ICZ1cF9yZXEtPmhkcjsKKworCWlmIChoZHItPmJyb2FkY2FzdCkgeworCQljb25zdCB1OCAq Z3VpZCA9IE5VTEw7CisKKwkJaWYgKG1zZy0+cmVxX3R5cGUgPT0gRFBfQ09OTkVDVElPTl9TVEFU VVNfTk9USUZZKQorCQkJZ3VpZCA9IG1zZy0+dS5jb25uX3N0YXQuZ3VpZDsKKwkJZWxzZSBpZiAo bXNnLT5yZXFfdHlwZSA9PSBEUF9SRVNPVVJDRV9TVEFUVVNfTk9USUZZKQorCQkJZ3VpZCA9IG1z Zy0+dS5yZXNvdXJjZV9zdGF0Lmd1aWQ7CisKKwkJbXN0YiA9IGRybV9kcF9nZXRfbXN0X2JyYW5j aF9kZXZpY2VfYnlfZ3VpZChtZ3IsIGd1aWQpOworCX0gZWxzZSB7CisJCW1zdGIgPSBkcm1fZHBf Z2V0X21zdF9icmFuY2hfZGV2aWNlKG1nciwgaGRyLT5sY3QsIGhkci0+cmFkKTsKKwl9CisKKwlp ZiAoIW1zdGIpIHsKKwkJRFJNX0RFQlVHX0tNUygiR290IE1TVCByZXBseSBmcm9tIHVua25vd24g ZGV2aWNlICVkXG4iLAorCQkJICAgICAgaGRyLT5sY3QpOworCQlyZXR1cm47CisJfQorCisJLyog VE9ETzogQWRkIG1pc3NpbmcgaGFuZGxlciBmb3IgRFBfUkVTT1VSQ0VfU1RBVFVTX05PVElGWSBl dmVudHMgKi8KKwlpZiAobXNnLT5yZXFfdHlwZSA9PSBEUF9DT05ORUNUSU9OX1NUQVRVU19OT1RJ RlkpIHsKKwkJZHJtX2RwX21zdF9oYW5kbGVfY29ubl9zdGF0KG1zdGIsICZtc2ctPnUuY29ubl9z dGF0KTsKKwkJZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChtZ3ItPmRldik7CisJfQorCisJ ZHJtX2RwX21zdF90b3BvbG9neV9wdXRfbXN0Yihtc3RiKTsKK30KKworc3RhdGljIHZvaWQgZHJt X2RwX21zdF91cF9yZXFfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0 IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IgPQorCQljb250YWluZXJfb2Yod29yaywgc3Ry dWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyLAorCQkJICAgICB1cF9yZXFfd29yayk7CisJc3Ry dWN0IGRybV9kcF9wZW5kaW5nX3VwX3JlcSAqdXBfcmVxOworCisJd2hpbGUgKHRydWUpIHsKKwkJ bXV0ZXhfbG9jaygmbWdyLT51cF9yZXFfbG9jayk7CisJCXVwX3JlcSA9IGxpc3RfZmlyc3RfZW50 cnlfb3JfbnVsbCgmbWdyLT51cF9yZXFfbGlzdCwKKwkJCQkJCSAgc3RydWN0IGRybV9kcF9wZW5k aW5nX3VwX3JlcSwKKwkJCQkJCSAgbmV4dCk7CisJCWlmICh1cF9yZXEpCisJCQlsaXN0X2RlbCgm dXBfcmVxLT5uZXh0KTsKKwkJbXV0ZXhfdW5sb2NrKCZtZ3ItPnVwX3JlcV9sb2NrKTsKKworCQlp ZiAoIXVwX3JlcSkKKwkJCWJyZWFrOworCisJCWRybV9kcF9tc3RfcHJvY2Vzc191cF9yZXEobWdy LCB1cF9yZXEpOworCQlrZnJlZSh1cF9yZXEpOworCX0KK30KKwogc3RhdGljIGludCBkcm1fZHBf bXN0X2hhbmRsZV91cF9yZXEoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpCiB7 Ci0Jc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfcmVxX2JvZHkgbXNnOwogCXN0cnVjdCBkcm1f ZHBfc2lkZWJhbmRfbXNnX2hkciAqaGRyID0gJm1nci0+dXBfcmVxX3JlY3YuaW5pdGlhbF9oZHI7 Ci0Jc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiID0gTlVMTDsKLQljb25zdCB1OCAqZ3Vp ZDsKKwlzdHJ1Y3QgZHJtX2RwX3BlbmRpbmdfdXBfcmVxICp1cF9yZXE7CiAJYm9vbCBzZXFubzsK IAogCWlmICghZHJtX2RwX2dldF9vbmVfc2JfbXNnKG1nciwgdHJ1ZSkpCkBAIC0zMTc2LDU2ICsz MjQxLDUzIEBAIHN0YXRpYyBpbnQgZHJtX2RwX21zdF9oYW5kbGVfdXBfcmVxKHN0cnVjdCBkcm1f ZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKQogCWlmICghbWdyLT51cF9yZXFfcmVjdi5oYXZlX2Vv bXQpCiAJCXJldHVybiAwOwogCi0JaWYgKCFoZHItPmJyb2FkY2FzdCkgewotCQltc3RiID0gZHJt X2RwX2dldF9tc3RfYnJhbmNoX2RldmljZShtZ3IsIGhkci0+bGN0LCBoZHItPnJhZCk7Ci0JCWlm ICghbXN0YikgewotCQkJRFJNX0RFQlVHX0tNUygiR290IE1TVCByZXBseSBmcm9tIHVua25vd24g ZGV2aWNlICVkXG4iLAotCQkJCSAgICAgIGhkci0+bGN0KTsKLQkJCWdvdG8gb3V0OwotCQl9CisJ dXBfcmVxID0ga3phbGxvYyhzaXplb2YoKnVwX3JlcSksIEdGUF9LRVJORUwpOworCWlmICghdXBf cmVxKSB7CisJCURSTV9FUlJPUigiTm90IGVub3VnaCBtZW1vcnkgdG8gcHJvY2VzcyBNU1QgdXAg cmVxXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CiAJfQorCUlOSVRfTElTVF9IRUFEKCZ1cF9yZXEt Pm5leHQpOwogCiAJc2Vxbm8gPSBoZHItPnNlcW5vOwotCWRybV9kcF9zaWRlYmFuZF9wYXJzZV9y ZXEoJm1nci0+dXBfcmVxX3JlY3YsICZtc2cpOworCWRybV9kcF9zaWRlYmFuZF9wYXJzZV9yZXEo Jm1nci0+dXBfcmVxX3JlY3YsICZ1cF9yZXEtPm1zZyk7CiAKLQlpZiAobXNnLnJlcV90eXBlID09 IERQX0NPTk5FQ1RJT05fU1RBVFVTX05PVElGWSkKLQkJZ3VpZCA9IG1zZy51LmNvbm5fc3RhdC5n dWlkOwotCWVsc2UgaWYgKG1zZy5yZXFfdHlwZSA9PSBEUF9SRVNPVVJDRV9TVEFUVVNfTk9USUZZ KQotCQlndWlkID0gbXNnLnUucmVzb3VyY2Vfc3RhdC5ndWlkOwotCWVsc2UKKwlpZiAodXBfcmVx LT5tc2cucmVxX3R5cGUgIT0gRFBfQ09OTkVDVElPTl9TVEFUVVNfTk9USUZZICYmCisJICAgIHVw X3JlcS0+bXNnLnJlcV90eXBlICE9IERQX1JFU09VUkNFX1NUQVRVU19OT1RJRlkpIHsKKwkJRFJN X0RFQlVHX0tNUygiUmVjZWl2ZWQgdW5rbm93biB1cCByZXEgdHlwZSwgaWdub3Jpbmc6ICV4XG4i LAorCQkJICAgICAgdXBfcmVxLT5tc2cucmVxX3R5cGUpOworCQlrZnJlZSh1cF9yZXEpOwogCQln b3RvIG91dDsKLQotCWRybV9kcF9zZW5kX3VwX2Fja19yZXBseShtZ3IsIG1nci0+bXN0X3ByaW1h cnksIG1zZy5yZXFfdHlwZSwgc2Vxbm8sCi0JCQkJIGZhbHNlKTsKLQotCWlmICghbXN0Yikgewot CQltc3RiID0gZHJtX2RwX2dldF9tc3RfYnJhbmNoX2RldmljZV9ieV9ndWlkKG1nciwgZ3VpZCk7 Ci0JCWlmICghbXN0YikgewotCQkJRFJNX0RFQlVHX0tNUygiR290IE1TVCByZXBseSBmcm9tIHVu a25vd24gZGV2aWNlICVkXG4iLAotCQkJCSAgICAgIGhkci0+bGN0KTsKLQkJCWdvdG8gb3V0Owot CQl9CiAJfQogCi0JaWYgKG1zZy5yZXFfdHlwZSA9PSBEUF9DT05ORUNUSU9OX1NUQVRVU19OT1RJ RlkpIHsKLQkJZHJtX2RwX21zdF9oYW5kbGVfY29ubl9zdGF0KG1zdGIsICZtc2cudS5jb25uX3N0 YXQpOworCWRybV9kcF9zZW5kX3VwX2Fja19yZXBseShtZ3IsIG1nci0+bXN0X3ByaW1hcnksIHVw X3JlcS0+bXNnLnJlcV90eXBlLAorCQkJCSBzZXFubywgZmFsc2UpOworCisJaWYgKHVwX3JlcS0+ bXNnLnJlcV90eXBlID09IERQX0NPTk5FQ1RJT05fU1RBVFVTX05PVElGWSkgeworCQljb25zdCBz dHJ1Y3QgZHJtX2RwX2Nvbm5lY3Rpb25fc3RhdHVzX25vdGlmeSAqY29ubl9zdGF0ID0KKwkJCSZ1 cF9yZXEtPm1zZy51LmNvbm5fc3RhdDsKIAogCQlEUk1fREVCVUdfS01TKCJHb3QgQ1NOOiBwbjog JWQgbGRwczolZCBkZHBzOiAlZCBtY3M6ICVkIGlwOiAlZCBwZHQ6ICVkXG4iLAotCQkJICAgICAg bXNnLnUuY29ubl9zdGF0LnBvcnRfbnVtYmVyLAotCQkJICAgICAgbXNnLnUuY29ubl9zdGF0Lmxl Z2FjeV9kZXZpY2VfcGx1Z19zdGF0dXMsCi0JCQkgICAgICBtc2cudS5jb25uX3N0YXQuZGlzcGxh eXBvcnRfZGV2aWNlX3BsdWdfc3RhdHVzLAotCQkJICAgICAgbXNnLnUuY29ubl9zdGF0Lm1lc3Nh Z2VfY2FwYWJpbGl0eV9zdGF0dXMsCi0JCQkgICAgICBtc2cudS5jb25uX3N0YXQuaW5wdXRfcG9y dCwKLQkJCSAgICAgIG1zZy51LmNvbm5fc3RhdC5wZWVyX2RldmljZV90eXBlKTsKKwkJCSAgICAg IGNvbm5fc3RhdC0+cG9ydF9udW1iZXIsCisJCQkgICAgICBjb25uX3N0YXQtPmxlZ2FjeV9kZXZp Y2VfcGx1Z19zdGF0dXMsCisJCQkgICAgICBjb25uX3N0YXQtPmRpc3BsYXlwb3J0X2RldmljZV9w bHVnX3N0YXR1cywKKwkJCSAgICAgIGNvbm5fc3RhdC0+bWVzc2FnZV9jYXBhYmlsaXR5X3N0YXR1 cywKKwkJCSAgICAgIGNvbm5fc3RhdC0+aW5wdXRfcG9ydCwKKwkJCSAgICAgIGNvbm5fc3RhdC0+ cGVlcl9kZXZpY2VfdHlwZSk7CisJfSBlbHNlIGlmICh1cF9yZXEtPm1zZy5yZXFfdHlwZSA9PSBE UF9SRVNPVVJDRV9TVEFUVVNfTk9USUZZKSB7CisJCWNvbnN0IHN0cnVjdCBkcm1fZHBfcmVzb3Vy Y2Vfc3RhdHVzX25vdGlmeSAqcmVzX3N0YXQgPQorCQkJJnVwX3JlcS0+bXNnLnUucmVzb3VyY2Vf c3RhdDsKIAotCQlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KG1nci0+ZGV2KTsKLQl9IGVs c2UgaWYgKG1zZy5yZXFfdHlwZSA9PSBEUF9SRVNPVVJDRV9TVEFUVVNfTk9USUZZKSB7CiAJCURS TV9ERUJVR19LTVMoIkdvdCBSU046IHBuOiAlZCBhdmFpbF9wYm4gJWRcbiIsCi0JCQkgICAgICBt c2cudS5yZXNvdXJjZV9zdGF0LnBvcnRfbnVtYmVyLAotCQkJICAgICAgbXNnLnUucmVzb3VyY2Vf c3RhdC5hdmFpbGFibGVfcGJuKTsKKwkJCSAgICAgIHJlc19zdGF0LT5wb3J0X251bWJlciwKKwkJ CSAgICAgIHJlc19zdGF0LT5hdmFpbGFibGVfcGJuKTsKIAl9CiAKLQlkcm1fZHBfbXN0X3RvcG9s b2d5X3B1dF9tc3RiKG1zdGIpOworCXVwX3JlcS0+aGRyID0gKmhkcjsKKwltdXRleF9sb2NrKCZt Z3ItPnVwX3JlcV9sb2NrKTsKKwlsaXN0X2FkZF90YWlsKCZ1cF9yZXEtPm5leHQsICZtZ3ItPnVw X3JlcV9saXN0KTsKKwltdXRleF91bmxvY2soJm1nci0+dXBfcmVxX2xvY2spOworCXF1ZXVlX3dv cmsoc3lzdGVtX2xvbmdfd3EsICZtZ3ItPnVwX3JlcV93b3JrKTsKKwogb3V0OgogCW1lbXNldCgm bWdyLT51cF9yZXFfcmVjdiwgMCwgc2l6ZW9mKHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3J4 KSk7CiAJcmV0dXJuIDA7CkBAIC00MTg2LDEyICs0MjQ4LDE1IEBAIGludCBkcm1fZHBfbXN0X3Rv cG9sb2d5X21ncl9pbml0KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCW11 dGV4X2luaXQoJm1nci0+cWxvY2spOwogCW11dGV4X2luaXQoJm1nci0+cGF5bG9hZF9sb2NrKTsK IAltdXRleF9pbml0KCZtZ3ItPmRlc3Ryb3lfY29ubmVjdG9yX2xvY2spOworCW11dGV4X2luaXQo Jm1nci0+dXBfcmVxX2xvY2spOwogCUlOSVRfTElTVF9IRUFEKCZtZ3ItPnR4X21zZ19kb3ducSk7 CiAJSU5JVF9MSVNUX0hFQUQoJm1nci0+ZGVzdHJveV9jb25uZWN0b3JfbGlzdCk7CiAJSU5JVF9M SVNUX0hFQUQoJm1nci0+ZGVzdHJveV9icmFuY2hfZGV2aWNlX2xpc3QpOworCUlOSVRfTElTVF9I RUFEKCZtZ3ItPnVwX3JlcV9saXN0KTsKIAlJTklUX1dPUksoJm1nci0+d29yaywgZHJtX2RwX21z dF9saW5rX3Byb2JlX3dvcmspOwogCUlOSVRfV09SSygmbWdyLT50eF93b3JrLCBkcm1fZHBfdHhf d29yayk7CiAJSU5JVF9XT1JLKCZtZ3ItPmRlc3Ryb3lfY29ubmVjdG9yX3dvcmssIGRybV9kcF9k ZXN0cm95X2Nvbm5lY3Rvcl93b3JrKTsKKwlJTklUX1dPUksoJm1nci0+dXBfcmVxX3dvcmssIGRy bV9kcF9tc3RfdXBfcmVxX3dvcmspOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJm1nci0+dHhfd2Fp dHEpOwogCW1nci0+ZGV2ID0gZGV2OwogCW1nci0+YXV4ID0gYXV4OwpAQCAtNDI0OCw2ICs0MzEz LDcgQEAgdm9pZCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9kZXN0cm95KHN0cnVjdCBkcm1fZHBf bXN0X3RvcG9sb2d5X21nciAqbWdyKQogCW11dGV4X2Rlc3Ryb3koJm1nci0+cGF5bG9hZF9sb2Nr KTsKIAltdXRleF9kZXN0cm95KCZtZ3ItPnFsb2NrKTsKIAltdXRleF9kZXN0cm95KCZtZ3ItPmxv Y2spOworCW11dGV4X2Rlc3Ryb3koJm1nci0+dXBfcmVxX2xvY2spOwogfQogRVhQT1JUX1NZTUJP TChkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9kZXN0cm95KTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVy LmgKaW5kZXggOGUwNGExYmQyZTlkLi5hYzFhNjg1NzRhMWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv ZHJtL2RybV9kcF9tc3RfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxw ZXIuaApAQCAtNTk1LDYgKzU5NSwyMiBAQCBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3Ig ewogCSAqIGF2b2lkIGxvY2tpbmcgaW52ZXJzaW9uLgogCSAqLwogCXN0cnVjdCB3b3JrX3N0cnVj dCBkZXN0cm95X2Nvbm5lY3Rvcl93b3JrOworCisJLyoqCisJICogQHVwX3JlcV9saXN0OiBMaXN0 IG9mIHBlbmRpbmcgdXAgcmVxdWVzdHMgZnJvbSB0aGUgdG9wb2xvZ3kgdGhhdAorCSAqIG5lZWQg dG8gYmUgcHJvY2Vzc2VkLCBpbiBjaHJvbm9sb2dpY2FsIG9yZGVyLgorCSAqLworCXN0cnVjdCBs aXN0X2hlYWQgdXBfcmVxX2xpc3Q7CisJLyoqCisJICogQHVwX3JlcV9sb2NrOiBQcm90ZWN0cyBA dXBfcmVxX2xpc3QKKwkgKi8KKwlzdHJ1Y3QgbXV0ZXggdXBfcmVxX2xvY2s7CisJLyoqCisJICog QHVwX3JlcV93b3JrOiBXb3JrIGl0ZW0gdG8gcHJvY2VzcyB1cCByZXF1ZXN0cyByZWNlaXZlZCBm cm9tIHRoZQorCSAqIHRvcG9sb2d5LiBOZWVkZWQgdG8gYXZvaWQgYmxvY2tpbmcgaG90cGx1ZyBo YW5kbGluZyBhbmQgc2lkZWJhbmQKKwkgKiB0cmFuc21pc3Npb25zLgorCSAqLworCXN0cnVjdCB3 b3JrX3N0cnVjdCB1cF9yZXFfd29yazsKIH07CiAKIGludCBkcm1fZHBfbXN0X3RvcG9sb2d5X21n cl9pbml0KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAotLSAKMi4yMS4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=