From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [DPU PATCH 02/11] drm/msm: Don't duplicate modeset_enables atomic helper Date: Wed, 28 Feb 2018 14:18:57 -0500 Message-ID: <20180228191906.185417-3-seanpaul@chromium.org> References: <20180228191906.185417-1-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180228191906.185417-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Sean Paul , hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: dri-devel@lists.freedesktop.org SW5zdGVhZCwgc2h1ZmZsZSB0aGluZ3MgYXJvdW5kIHNvIHdlIGtpY2tvZmYgY3J0YyBhZnRlciBl bmFibGluZyBlbmNvZGVyCmR1cmluZyBtb2Rlc2V0cy4gQWxzbyBtb3ZlcyB0aGUgdmJsYW5rIHdh aXQgdG8gYWZ0ZXIgdGhlIGZyYW1lLgoKQ2hhbmdlLUlkOiBJMTZjN2I3ZjkzOTBkMDRmNjA1MGFh MjBlMTdhNTMzNWZiZjQ5ZWJhMwpTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNo cm9taXVtLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5j ICAgIHwgICA5ICsrCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5j IHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMgICAgIHwg IDMxICsrKystCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmggICAgIHwg ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jICAgICAgICAgICAgfCAxMzIg Ky0tLS0tLS0tLS0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwg MTMxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5j CmluZGV4IGEzYWI2ZWQyYmYxZC4uOTRmYWIyZGNjYTViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jcnRjLmMKQEAgLTM1MjUsNiArMzUyNSwxMiBAQCBzdGF0aWMgdm9pZCBk cHVfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCURQVV9FVlQzMl9WRVJCT1NF KERSTUlEKGNydGMpKTsKIAlkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwogCisJaWYgKG1z bV9pc19tb2RlX3NlYW1sZXNzKCZjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZSkgfHwKKwkgICAg bXNtX2lzX21vZGVfc2VhbWxlc3NfdnJyKCZjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZSkpIHsK KwkJRFBVX0RFQlVHKCJTa2lwcGluZyBjcnRjIGVuYWJsZSwgc2VhbWxlc3MgbW9kZVxuIik7CisJ CXJldHVybjsKKwl9CisKIAlwbV9ydW50aW1lX2dldF9zeW5jKGNydGMtPmRldi0+ZGV2KTsKIAog CWRybV9mb3JfZWFjaF9lbmNvZGVyKGVuY29kZXIsIGNydGMtPmRldikgewpAQCAtMzU3Miw2ICsz NTc4LDkgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAkJRFBVX1BPV0VSX0VWRU5UX1BPU1RfRU5BQkxFIHwgRFBVX1BPV0VSX0VWRU5UX1BPU1Rf RElTQUJMRSB8CiAJCURQVV9QT1dFUl9FVkVOVF9QUkVfRElTQUJMRSwKIAkJZHB1X2NydGNfaGFu ZGxlX3Bvd2VyX2V2ZW50LCBjcnRjLCBkcHVfY3J0Yy0+bmFtZSk7CisKKwlpZiAobXNtX25lZWRz X3ZibGFua19wcmVfbW9kZXNldCgmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGUpKQorCQlkcm1f Y3J0Y193YWl0X29uZV92YmxhbmsoY3J0Yyk7CiB9CiAKIHN0cnVjdCBwbGFuZV9zdGF0ZSB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwppbmRleCAyOGNlYjU4 OWVlNDAuLjRkMWUzNjUyZGJmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfZW5jb2Rlci5jCkBAIC0zNjkzLDggKzM2OTMsMTEgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29k ZXJfZnJhbWVfZG9uZV90aW1lb3V0KHN0cnVjdCB0aW1lcl9saXN0ICp0KQogc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgZHB1X2VuY29kZXJfaGVscGVyX2Z1bmNz ID0gewogCS5tb2RlX3NldCA9IGRwdV9lbmNvZGVyX3ZpcnRfbW9kZV9zZXQsCiAJLmRpc2FibGUg PSBkcHVfZW5jb2Rlcl92aXJ0X2Rpc2FibGUsCi0JLmVuYWJsZSA9IGRwdV9lbmNvZGVyX3ZpcnRf ZW5hYmxlLAorCS5lbmFibGUgPSBkcHVfa21zX2VuY29kZXJfZW5hYmxlLAogCS5hdG9taWNfY2hl Y2sgPSBkcHVfZW5jb2Rlcl92aXJ0X2F0b21pY19jaGVjaywKKworCS8qIFRoaXMgaXMgY2FsbGVk IGJ5IGRwdV9rbXNfZW5jb2Rlcl9lbmFibGUgKi8KKwkuY29tbWl0ID0gZHB1X2VuY29kZXJfdmly dF9lbmFibGUsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGRw dV9lbmNvZGVyX2Z1bmNzID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5j CmluZGV4IDgxZmQzYTQyOWU5Zi4uM2Q4MzAzN2U4MzA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2ttcy5jCkBAIC00MjUsMTQgKzQyNSwzNyBAQCBzdGF0aWMgdm9pZCBkcHVf a21zX3ByZXBhcmVfY29tbWl0KHN0cnVjdCBtc21fa21zICprbXMsCiAJCQlkcHVfZW5jb2Rlcl9w cmVwYXJlX2NvbW1pdChlbmNvZGVyKTsKIH0KIAotc3RhdGljIHZvaWQgZHB1X2ttc19jb21taXQo c3RydWN0IG1zbV9rbXMgKmttcywKLQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0 ZSkKKy8qCisgKiBPdmVycmlkZSB0aGUgZW5jb2RlciBlbmFibGUgc2luY2Ugd2UgbmVlZCB0byBz ZXR1cCB0aGUgaW5saW5lIHJvdGF0b3IgYW5kIGRvCisgKiBzb21lIGNydGMgbWFnaWMgYmVmb3Jl IGVuYWJsaW5nIGFueSBicmlkZ2UgdGhhdCBtaWdodCBiZSBwcmVzZW50LgorICovCit2b2lkIGRw dV9rbXNfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQoreworCWNv bnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgKmZ1bmNzID0gZW5jb2Rlci0+aGVs cGVyX3ByaXZhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+Y3J0YzsKKwor CS8qIEZvcndhcmQgdGhpcyBlbmFibGUgY2FsbCB0byB0aGUgY29tbWl0IGhvb2sgKi8KKwlpZiAo ZnVuY3MgJiYgZnVuY3MtPmNvbW1pdCkKKwkJZnVuY3MtPmNvbW1pdChlbmNvZGVyKTsKKworCWlm IChjcnRjICYmIGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKKwkJRFBVX0VWVDMyKERSTUlEKGNydGMp KTsKKwkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0Yyk7CisJfQorfQorCitzdGF0aWMgdm9p ZCBkcHVfa21zX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwotCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlOworCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0YXRlOwogCWludCBpOwogCi0JZm9yX2Vh Y2hfb2xkX2NydGNfaW5fc3RhdGUob2xkX3N0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgaSkg eworCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBp KSB7CisJCS8qIElmIG1vZGVzZXQgaXMgcmVxdWlyZWQsIGtpY2tvZmYgaXMgcnVuIGluIGVuY29k ZXJfZW5hYmxlICovCisJCWlmIChkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChjcnRjX3N0 YXRlKSkKKwkJCWNvbnRpbnVlOworCiAJCWlmIChjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7CiAJCQlE UFVfRVZUMzIoRFJNSUQoY3J0YykpOwogCQkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0Yyk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmggYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKaW5kZXggOGNhZGQyOWE0OGIx Li40MmM4MDllZDk0NjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9rbXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgK QEAgLTUyOSw0ICs1MjksNiBAQCBpbnQgZHB1X2ttc19mYm9fcmVmZXJlbmNlKHN0cnVjdCBkcHVf a21zX2ZibyAqZmJvKTsKICAqLwogdm9pZCBkcHVfa21zX2Zib191bnJlZmVyZW5jZShzdHJ1Y3Qg ZHB1X2ttc19mYm8gKmZibyk7CiAKK3ZvaWQgZHB1X2ttc19lbmNvZGVyX2VuYWJsZShzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIpOworCiAjZW5kaWYgLyogX19kcHVfa21zX0hfXyAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9hdG9taWMuYwppbmRleCA1Y2ZiODAzNDUwNTIuLmY1Nzk0ZGNlMjVkZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fYXRvbWljLmMKQEAgLTg0LDEzMSArODQsNiBAQCBzdGF0aWMgdm9pZCBt c21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25lKAogCX0KIH0KIAotLyoqCi0gKiBtc21fYXRv bWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzIC0gbW9kZXNldCBjb21taXQgdG8gZW5h YmxlIG91dHB1dHMKLSAqIEBkZXY6IERSTSBkZXZpY2UKLSAqIEBvbGRfc3RhdGU6IGF0b21pYyBz dGF0ZSBvYmplY3Qgd2l0aCBvbGQgc3RhdGUgc3RydWN0dXJlcwotICoKLSAqIFRoaXMgZnVuY3Rp b24gZW5hYmxlcyBhbGwgdGhlIG91dHB1dHMgd2l0aCB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gd2hp Y2ggaGFkIHRvCi0gKiBiZSB0dXJuZWQgb2ZmIGZvciB0aGUgdXBkYXRlLgotICoKLSAqIEZvciBj b21wYXRpYmlsaXR5IHdpdGggbGVnYWN5IGNydGMgaGVscGVycyB0aGlzIHNob3VsZCBiZSBjYWxs ZWQgYWZ0ZXIKLSAqIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoKSwgd2hpY2ggaXMg d2hhdCB0aGUgZGVmYXVsdCBjb21taXQgZnVuY3Rpb24KLSAqIGRvZXMuIEJ1dCBkcml2ZXJzIHdp dGggZGlmZmVyZW50IG5lZWRzIGNhbiBncm91cCB0aGUgbW9kZXNldCBjb21taXRzIHRvZ2V0aGVy Ci0gKiBhbmQgZG8gdGhlIHBsYW5lIGNvbW1pdHMgYXQgdGhlIGVuZC4gVGhpcyBpcyB1c2VmdWwg Zm9yIGRyaXZlcnMgZG9pbmcgcnVudGltZQotICogUE0gc2luY2UgcGxhbmVzIHVwZGF0ZXMgdGhl biBvbmx5IGhhcHBlbiB3aGVuIHRoZSBDUlRDIGlzIGFjdHVhbGx5IGVuYWJsZWQuCi0gKi8KLXN0 YXRpYyB2b2lkIG1zbV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKLQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkK LXsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOwotCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKm5ld19jb25uX3N0YXRlOwotCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYt PmRldl9wcml2YXRlOwotCXN0cnVjdCBtc21fa21zICprbXMgPSBwcml2LT5rbXM7Ci0JaW50IGJy aWRnZV9lbmFibGVfY291bnQgPSAwOwotCWludCBpOwotCi0JZm9yX2VhY2hfb2xkbmV3X2NydGNf aW5fc3RhdGUob2xkX3N0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKLQkJCW5ld19jcnRjX3N0 YXRlLCBpKSB7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgKmZ1bmNzOwot Ci0JCS8qIE5lZWQgdG8gZmlsdGVyIG91dCBDUlRDcyB3aGVyZSBvbmx5IHBsYW5lcyBjaGFuZ2Uu ICovCi0JCWlmICghZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUp KQotCQkJY29udGludWU7Ci0KLQkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQotCQkJY29u dGludWU7Ci0KLQkJaWYgKG1zbV9pc19tb2RlX3NlYW1sZXNzKCZuZXdfY3J0Y19zdGF0ZS0+bW9k ZSkgfHwKLQkJCQltc21faXNfbW9kZV9zZWFtbGVzc192cnIoCi0JCQkJJm5ld19jcnRjX3N0YXRl LT5hZGp1c3RlZF9tb2RlKSkKLQkJCWNvbnRpbnVlOwotCi0JCWZ1bmNzID0gY3J0Yy0+aGVscGVy X3ByaXZhdGU7Ci0KLQkJaWYgKGNydGMtPnN0YXRlLT5lbmFibGUpIHsKLQkJCURSTV9ERUJVR19B VE9NSUMoImVuYWJsaW5nIFtDUlRDOiVkXVxuIiwKLQkJCQkJIGNydGMtPmJhc2UuaWQpOwotCi0J CQlpZiAoZnVuY3MtPmF0b21pY19lbmFibGUpCi0JCQkJZnVuY3MtPmF0b21pY19lbmFibGUoY3J0 Yywgb2xkX2NydGNfc3RhdGUpOwotCQkJZWxzZQotCQkJCWZ1bmNzLT5jb21taXQoY3J0Yyk7Ci0J CX0KLQotCQlpZiAobXNtX25lZWRzX3ZibGFua19wcmVfbW9kZXNldCgKLQkJCQkJJm5ld19jcnRj X3N0YXRlLT5hZGp1c3RlZF9tb2RlKSkKLQkJCWRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRj KTsKLQl9Ci0KLQkvKiBlbnN1cmUgYnJpZGdlL2VuY29kZXIgdXBkYXRlcyBoYXBwZW4gb24gc2Ft ZSB2YmxhbmsgKi8KLQltc21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25lKGRldiwgb2xkX3N0 YXRlKTsKLQotCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25u ZWN0b3IsCi0JCQluZXdfY29ubl9zdGF0ZSwgaSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2VuY29k ZXJfaGVscGVyX2Z1bmNzICpmdW5jczsKLQkJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwot Ci0JCWlmICghbmV3X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcikKLQkJCWNvbnRpbnVlOwotCi0J CWlmICghbmV3X2Nvbm5fc3RhdGUtPmNydGMtPnN0YXRlLT5hY3RpdmUgfHwKLQkJICAgICFkcm1f YXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgKLQkJCSAgICBuZXdfY29ubl9zdGF0ZS0+Y3J0Yy0+ c3RhdGUpKQotCQkJY29udGludWU7Ci0KLQkJZW5jb2RlciA9IG5ld19jb25uX3N0YXRlLT5iZXN0 X2VuY29kZXI7Ci0JCWZ1bmNzID0gZW5jb2Rlci0+aGVscGVyX3ByaXZhdGU7Ci0KLQkJRFJNX0RF QlVHX0FUT01JQygiZW5hYmxpbmcgW0VOQ09ERVI6JWQ6JXNdXG4iLAotCQkJCSBlbmNvZGVyLT5i YXNlLmlkLCBlbmNvZGVyLT5uYW1lKTsKLQotCQkvKgotCQkgKiBFYWNoIGVuY29kZXIgaGFzIGF0 IG1vc3Qgb25lIGNvbm5lY3RvciAoc2luY2Ugd2UgYWx3YXlzIHN0ZWFsCi0JCSAqIGl0IGF3YXkp LCBzbyB3ZSB3b24ndCBjYWxsIGVuYWJsZSBob29rcyB0d2ljZS4KLQkJICovCi0JCWRybV9icmlk Z2VfcHJlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UpOwotCQkrK2JyaWRnZV9lbmFibGVfY291bnQ7 Ci0KLQkJaWYgKGZ1bmNzLT5lbmFibGUpCi0JCQlmdW5jcy0+ZW5hYmxlKGVuY29kZXIpOwotCQll bHNlCi0JCQlmdW5jcy0+Y29tbWl0KGVuY29kZXIpOwotCX0KLQotCWlmIChrbXMtPmZ1bmNzLT5j b21taXQpIHsKLQkJRFJNX0RFQlVHX0FUT01JQygidHJpZ2dlcmluZyBjb21taXRcbiIpOwotCQlr bXMtPmZ1bmNzLT5jb21taXQoa21zLCBvbGRfc3RhdGUpOwotCX0KLQotCS8qIElmIG5vIGJyaWRn ZXMgd2VyZSBwcmVfZW5hYmxlZCwgc2tpcCBpdGVyYXRpbmcgb3ZlciB0aGVtIGFnYWluICovCi0J aWYgKGJyaWRnZV9lbmFibGVfY291bnQgPT0gMCkKLQkJcmV0dXJuOwotCi0JZm9yX2VhY2hfbmV3 X2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNvbm5lY3RvciwKLQkJCW5ld19jb25uX3N0 YXRlLCBpKSB7Ci0JCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKLQotCQlpZiAoIW5ld19j b25uX3N0YXRlLT5iZXN0X2VuY29kZXIpCi0JCQljb250aW51ZTsKLQotCQlpZiAoIW5ld19jb25u X3N0YXRlLT5jcnRjLT5zdGF0ZS0+YWN0aXZlIHx8Ci0JCSAgICAhZHJtX2F0b21pY19jcnRjX25l ZWRzX21vZGVzZXQoCi0JCQkJICAgIG5ld19jb25uX3N0YXRlLT5jcnRjLT5zdGF0ZSkpCi0JCQlj b250aW51ZTsKLQotCQllbmNvZGVyID0gbmV3X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcjsKLQot CQlEUk1fREVCVUdfQVRPTUlDKCJicmlkZ2UgZW5hYmxlIGVuYWJsaW5nIFtFTkNPREVSOiVkOiVz XVxuIiwKLQkJCQkgZW5jb2Rlci0+YmFzZS5pZCwgZW5jb2Rlci0+bmFtZSk7Ci0KLQkJZHJtX2Jy aWRnZV9lbmFibGUoZW5jb2Rlci0+YnJpZGdlKTsKLQl9Ci19Ci0KIC8qIFRoZSAocG90ZW50aWFs bHkpIGFzeW5jaHJvbm91cyBwYXJ0IG9mIHRoZSBjb21taXQuICBBdCB0aGlzIHBvaW50CiAgKiBu b3RoaW5nIGNhbiBmYWlsIHNob3J0IG9mIGFybWFnZWRkb24uCiAgKi8KQEAgLTIyNyw3ICsxMDIs MTIgQEAgc3RhdGljIHZvaWQgY29tcGxldGVfY29tbWl0KHN0cnVjdCBtc21fY29tbWl0ICpjKQog CiAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lcyhkZXYsIHN0YXRlLCAwKTsKIAotCW1z bV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoZGV2LCBzdGF0ZSk7CisJZHJt X2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhkZXYsIHN0YXRlKTsKKworCWlm IChrbXMtPmZ1bmNzLT5jb21taXQpIHsKKwkJRFJNX0RFQlVHX0FUT01JQygidHJpZ2dlcmluZyBj b21taXRcbiIpOworCQlrbXMtPmZ1bmNzLT5jb21taXQoa21zLCBzdGF0ZSk7CisJfQogCiAJLyog Tk9URTogX3dhaXRfZm9yX3ZibGFua3MoKSBvbmx5IHdhaXRzIGZvciB2Ymxhbmsgb24KIAkgKiBl bmFibGVkIENSVENzLiAgU28gd2UgZW5kIHVwIGZhdWx0aW5nIHdoZW4gZGlzYWJsaW5nCi0tIApT ZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxp bmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==