From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 18/27] drm/i915: Handle disabling planes better. Date: Thu, 4 Jun 2015 14:47:48 +0200 Message-ID: <1433422077-14907-19-git-send-email-maarten.lankhorst@linux.intel.com> References: <1433422077-14907-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: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTP id 200986EB2F for ; Thu, 4 Jun 2015 05:48:13 -0700 (PDT) In-Reply-To: <1433422077-14907-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmVhZCBvdXQgdGhlIGluaXRpYWwgc3RhdGUsIGFuZCBhZGQgYSBxdWlyayB0byBmb3JjZSBkaXNh YmxlIGFsbCBwbGFuZQp0aGF0IHdlcmUgaW5pdGlhbGx5IGFjdGl2ZS4gVXNlIHRoaXMgdG8gZGlz YWJsZSBwbGFuZXMgZHVyaW5nIG1vZGVzZXQKdG9vLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBM YW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyAgfCAgIDcgKysKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEzOSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICA3ICsrCiAzIGZp bGVzIGNoYW5nZWQsIDExNCBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pYy5jCmluZGV4IDg0NDdhMWZlZjMzMi4uNTYyN2RmMjgwN2IwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwpAQCAtOTYsNiArOTYsMTMgQEAgaW50IGlu dGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlyZXR1cm4gLUVJTlZB TDsKIAl9CiAKKwlpZiAoY3J0Y19zdGF0ZSAmJgorCSAgICBjcnRjX3N0YXRlLT5xdWlya3MgJiBQ SVBFX0NPTkZJR19RVUlSS19JTkhFUklURURfTU9ERSkgeworCQlyZXQgPSBkcm1fYXRvbWljX2Fk ZF9hZmZlY3RlZF9wbGFuZXMoc3RhdGUsICZudWNsZWFyX2NydGMtPmJhc2UpOworCQlpZiAocmV0 KQorCQkJcmV0dXJuIHJldDsKKwl9CisKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19w bGFuZXMoZGV2LCBzdGF0ZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBiNzI3MjQxMjFmNTcuLjNiNWQyMzY5MjkzNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDgzMCwxMSArNDgzMCwyMCBAQCBz dGF0aWMgdm9pZCBpbnRlbF9jcnRjX2VuYWJsZV9wbGFuZXMoc3RydWN0IGRybV9jcnRjICpjcnRj KQogCWludGVsX2Zyb250YnVmZmVyX2ZsaXAoZGV2LCBJTlRFTF9GUk9OVEJVRkZFUl9BTExfTUFT SyhwaXBlKSk7CiB9CiAKK3N0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfcGxhbmVzX29uX2NydGMo c3RydWN0IGRybV9jcnRjICpjKQoreworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjKTsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKKworCWRybV9mb3JfZWFjaF9w bGFuZV9tYXNrKHBsYW5lLCBjcnRjLT5iYXNlLmRldiwKKwkJCQljcnRjLT5hdG9taWMuZm9yY2Vf ZGlzYWJsZWRfcGxhbmVzKQorCQl0b19pbnRlbF9wbGFuZShwbGFuZSktPmRpc2FibGVfcGxhbmUo cGxhbmUsIGMpOworfQorCiBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfcGxhbmVzKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2OwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lOwogCWludCBwaXBlID0gaW50ZWxf Y3J0Yy0+cGlwZTsKIAogCWludGVsX2NydGNfd2FpdF9mb3JfcGVuZGluZ19mbGlwcyhjcnRjKTsK QEAgLTQ4NDIsMTQgKzQ4NTEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfcGxh bmVzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KGNy dGMpOwogCiAJaW50ZWxfY3J0Y19kcG1zX292ZXJsYXlfZGlzYWJsZShpbnRlbF9jcnRjKTsKLQlm b3JfZWFjaF9pbnRlbF9wbGFuZShkZXYsIGludGVsX3BsYW5lKSB7Ci0JCWlmIChpbnRlbF9wbGFu ZS0+cGlwZSA9PSBwaXBlKSB7Ci0JCQlzdHJ1Y3QgZHJtX2NydGMgKmZyb20gPSBpbnRlbF9wbGFu ZS0+YmFzZS5jcnRjOwotCi0JCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFuZSgmaW50ZWxfcGxh bmUtPmJhc2UsCi0JCQkJCQkgICBmcm9tID86IGNydGMpOwotCQl9Ci0JfQorCWludGVsX2Rpc2Fi bGVfcGxhbmVzX29uX2NydGMoY3J0Yyk7CiAKIAkvKgogCSAqIEZJWE1FOiBPbmNlIHdlIGdyb3cg cHJvcGVyIG51Y2xlYXIgZmxpcCBzdXBwb3J0IG91dCBvZiB0aGlzIHdlIG5lZWQKQEAgLTExNTU0 LDYgKzExNTU2LDIxIEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKHN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSB8 fCBtb2RlX2NoYW5nZWQpCiAJCXJldHVybiAwOwogCisJaWYgKHRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Y19zdGF0ZSktPnF1aXJrcyAmCisJICAgIFBJUEVfQ09ORklHX1FVSVJLX0lOSVRJQUxfUExB TkVTKSB7CisJCWlmICghcGxhbmVfc3RhdGUtPmNydGMpIHsKKwkJCWludGVsX2NydGMtPmF0b21p Yy5mb3JjZV9kaXNhYmxlZF9wbGFuZXMgfD0KKwkJCQkxIDw8IGRybV9wbGFuZV9pbmRleChwbGFu ZSk7CisJCQljcnRjX3N0YXRlLT5wbGFuZV9tYXNrICY9CisJCQkJfigxIDw8IGRybV9wbGFuZV9p bmRleChwbGFuZSkpOworCQl9CisKKwkJLyogSW5pdGlhbCBzdGF0ZSBmb3Igc3ByaXRlIHBsYW5l cyBpcyB1bmtub3duLAorCQkgKiBubyBuZWVkIHRvIHVwZGF0ZSBzcHJpdGUgd2F0ZXJtYXJrcyAq LworCQlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSkKKwkJCW1vZGVf Y2hhbmdlZCA9IHRydWU7CisJfQorCiAJd2FzX3Zpc2libGUgPSBvbGRfcGxhbmVfc3RhdGUtPnZp c2libGU7CiAJdmlzaWJsZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKS0+dmlz aWJsZTsKIApAQCAtMTE2MzMsNyArMTE2NTAsNyBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2Nh bGNfY2hhbmdlcyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQlpbnRlbF9j cnRjLT5hdG9taWMuZmJfYml0cyB8PQogCQkJICAgIElOVEVMX0ZST05UQlVGRkVSX1NQUklURShp bnRlbF9jcnRjLT5waXBlKTsKIAotCQlpZiAodHVybl9vZmYgJiYgaXNfY3J0Y19lbmFibGVkKSB7 CisJCWlmICh0dXJuX29mZiAmJiAhbW9kZV9jaGFuZ2VkKSB7CiAJCQlpbnRlbF9jcnRjLT5hdG9t aWMud2FpdF92YmxhbmsgPSB0cnVlOwogCQkJaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV9zcHJp dGVfd2F0ZXJtYXJrcyB8PQogCQkJCTEgPDwgaTsKQEAgLTExNzE0LDYgKzExNzMxLDExIEBAIHN0 YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAog CQkiW0NSVEM6JWldIG1pc21hdGNoIGJldHdlZW4gc3RhdGUtPmFjdGl2ZSglaSkgYW5kIGNydGMt PmFjdGl2ZSglaSlcbiIsCiAJCWlkeCwgY3J0Yy0+c3RhdGUtPmFjdGl2ZSwgaW50ZWxfY3J0Yy0+ YWN0aXZlKTsKIAorCS8qIHBsYW5lIG1hc2sgaXMgZml4ZWQgdXAgYWZ0ZXIgYWxsIGluaXRpYWwg cGxhbmVzIGFyZSBjYWxjdWxhdGVkICovCisJcGlwZV9jb25maWctPnF1aXJrcyAmPSB+UElQRV9D T05GSUdfUVVJUktfSU5JVElBTF9QTEFORVM7CisJaWYgKG1vZGVfY2hhbmdlZCkKKwkJaW50ZWxf Y3J0Yy0+YXRvbWljLmZvcmNlX2Rpc2FibGVkX3BsYW5lcyA9IGNydGMtPnN0YXRlLT5wbGFuZV9t YXNrOworCiAJaWYgKG1vZGVfY2hhbmdlZCAmJiBjcnRjX3N0YXRlLT5lbmFibGUgJiYKIAkgICAg ZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19jb21wdXRlX2Nsb2NrICYmCiAJICAgICFXQVJOX09OKHBp cGVfY29uZmlnLT5zaGFyZWRfZHBsbCAhPSBEUExMX0lEX1BSSVZBVEUpKSB7CkBAIC0xMjg4Myw2 ICsxMjkwNSwxMyBAQCBpbnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSkKIAkJcmV0dXJuIHJldDsKIAogCWZvcl9lYWNoX2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKKwkJaWYgKHRvX2ludGVsX2NydGNfc3Rh dGUoY3J0Y19zdGF0ZSktPnF1aXJrcyAmCisJCSAgICBQSVBFX0NPTkZJR19RVUlSS19JTklUSUFM X1BMQU5FUykgeworCQkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0YXRl LCBjcnRjKTsKKwkJCWlmIChyZXQpCisJCQkJcmV0dXJuIHJldDsKKwkJfQorCiAJCWlmICghbmVl ZHNfbW9kZXNldChjcnRjX3N0YXRlKSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMzUyOSwxMyArMTM1 NTgsMTcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9j cnRjICpjcnRjKQogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKIAogCS8qIFBlcmZv cm0gdmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRpb24gKi8KLQlpZiAoY3J0Yy0+ c3RhdGUtPmFjdGl2ZSAmJiAhbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkpCisJaWYgKGNydGMt PnN0YXRlLT5hY3RpdmUgJiYgIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKSB7CiAJCWludGVs X2NydGMtPmF0b21pYy5ldmFkZSA9CiAJCQlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChpbnRlbF9j cnRjLAogCQkJCQkJJmludGVsX2NydGMtPmF0b21pYy5zdGFydF92YmxfY291bnQpOwogCisJCWlm IChpbnRlbF9jcnRjLT5hdG9taWMuZm9yY2VfZGlzYWJsZWRfcGxhbmVzKQorCQkJaW50ZWxfZGlz YWJsZV9wbGFuZXNfb25fY3J0YyhjcnRjKTsKKwl9CisKIAlpZiAoIW5lZWRzX21vZGVzZXQoY3J0 Yy0+c3RhdGUpICYmIElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCi0JCXNrbF9kZXRhY2hfc2Nh bGVycyhpbnRlbF9jcnRjKTsKKyAgICAgICAgICAgICAgICBza2xfZGV0YWNoX3NjYWxlcnMoaW50 ZWxfY3J0Yyk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCkBAIC0xNTA0MCwxNCArMTUwNzMsNjMgQEAgdm9pZCBpOTE1X3Jl ZGlzYWJsZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpOTE1X3JlZGlzYWJsZV92Z2Ff cG93ZXJfb24oZGV2KTsKIH0KIAotc3RhdGljIGJvb2wgcHJpbWFyeV9nZXRfaHdfc3RhdGUoc3Ry dWN0IGludGVsX2NydGMgKmNydGMpCitzdGF0aWMgYm9vbCBpbnRlbF9yZWFkX2h3X3BsYW5lX3N0 YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfcGxhbmUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g Y3J0Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwogCi0JaWYgKCFjcnRjLT5iYXNlLmVuYWJsZWQpCi0JCXJldHVybiBmYWxz ZTsKKwlzd2l0Y2ggKGludGVsX3BsYW5lLT5iYXNlLnR5cGUpIHsKKwljYXNlIERSTV9QTEFORV9U WVBFX1BSSU1BUlk6CisJCXJldHVybiBJOTE1X1JFQUQoRFNQQ05UUihjcnRjLT5wbGFuZSkpICYg RElTUExBWV9QTEFORV9FTkFCTEU7CisKKwljYXNlIERSTV9QTEFORV9UWVBFX0NVUlNPUjoKKwkJ aWYgKElTXzg0NUcoZGV2KSB8fCBJU19JODY1RyhkZXYpKQorCQkJcmV0dXJuIEk5MTVfUkVBRChf Q1VSQUNOVFIpICYgQ1VSU09SX0VOQUJMRTsKKwkJZWxzZQorCQkJcmV0dXJuIEk5MTVfUkVBRChD VVJDTlRSKGNydGMtPnBsYW5lKSkgJiBDVVJTT1JfTU9ERTsKKworCWRlZmF1bHQ6CisJCXJldHVy biB0cnVlOworCX0KK30KKworc3RhdGljIGludCByZWFkb3V0X3BsYW5lX3N0YXRlKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlz dHJ1Y3QgaW50ZWxfcGxhbmUgKnA7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX3BsYW5l X3N0YXRlOworCWJvb2wgYWN0aXZlID0gY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7CisKKwlpZiAo YWN0aXZlKSB7CisJCWNydGNfc3RhdGUtPnF1aXJrcyB8PSBQSVBFX0NPTkZJR19RVUlSS19JTklU SUFMX1BMQU5FUzsKIAotCXJldHVybiBJOTE1X1JFQUQoRFNQQ05UUihjcnRjLT5wbGFuZSkpICYg RElTUExBWV9QTEFORV9FTkFCTEU7CisJCS8qIGFwcGx5IHRvIHByZXZpb3VzIHN3IHN0YXRlIHRv byAqLworCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpLT5xdWlya3MgfD0K KwkJCVBJUEVfQ09ORklHX1FVSVJLX0lOSVRJQUxfUExBTkVTOworCX0KKworCWZvcl9lYWNoX2lu dGVsX3BsYW5lKHN0YXRlLT5kZXYsIHApIHsKKwkJaWYgKGNydGMtPnBsYW5lICE9IHAtPnBsYW5l KQorCQkJY29udGludWU7CisKKwkJZHJtX3BsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxh bmVfc3RhdGUoc3RhdGUsICZwLT5iYXNlKTsKKwkJaWYgKElTX0VSUihkcm1fcGxhbmVfc3RhdGUp KQorCQkJcmV0dXJuIFBUUl9FUlIoZHJtX3BsYW5lX3N0YXRlKTsKKworCQlpZiAoYWN0aXZlICYm IGludGVsX3JlYWRfaHdfcGxhbmVfc3RhdGUoY3J0YywgcCkpIHsKKwkJCXRvX2ludGVsX3BsYW5l X3N0YXRlKGRybV9wbGFuZV9zdGF0ZSktPnZpc2libGUgPSB0cnVlOworCQkJY3J0Y19zdGF0ZS0+ YmFzZS5wbGFuZV9tYXNrIHw9IDEgPDwgZHJtX3BsYW5lX2luZGV4KCZwLT5iYXNlKTsKKwkJCXAt PmJhc2UuY3J0YyA9ICZjcnRjLT5iYXNlOworCQl9IGVsc2UgeworCQkJdG9faW50ZWxfcGxhbmVf c3RhdGUoZHJtX3BsYW5lX3N0YXRlKS0+dmlzaWJsZSA9IGZhbHNlOworCQkJY3J0Y19zdGF0ZS0+ YmFzZS5wbGFuZV9tYXNrICY9IH4oMSA8PCBkcm1fcGxhbmVfaW5kZXgoJnAtPmJhc2UpKTsKKwkJ CXAtPmJhc2UuY3J0YyA9IGRybV9wbGFuZV9zdGF0ZS0+Y3J0YzsKKwkJfQorCX0KKworCXJldHVy biAwOwogfQogCiBzdGF0aWMgaW50IHJlYWRvdXRfaHdfY3J0Y19zdGF0ZShzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUsCkBAIC0xNTA1NSwxOSArMTUxMzcsMTEgQEAgc3RhdGljIGludCBy ZWFkb3V0X2h3X2NydGNfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7 CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Ci0Jc3RydWN0IGRybV9wbGFu ZSAqcHJpbWFyeSA9IGNydGMtPmJhc2UucHJpbWFyeTsKLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpkcm1fcGxhbmVfc3RhdGU7Ci0Jc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZTsKLQlpbnQgcmV0OwogCiAJY3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0 ZShzdGF0ZSwgY3J0Yyk7CiAJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKIAkJcmV0dXJuIFBUUl9F UlIoY3J0Y19zdGF0ZSk7CiAKLQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9wbGFuZXMo c3RhdGUsICZjcnRjLT5iYXNlKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCiAJbWVtc2V0 KGNydGNfc3RhdGUsIDAsIHNpemVvZigqY3J0Y19zdGF0ZSkpOwogCWNydGNfc3RhdGUtPmJhc2Uu Y3J0YyA9ICZjcnRjLT5iYXNlOwogCWNydGNfc3RhdGUtPmJhc2Uuc3RhdGUgPSBzdGF0ZTsKQEAg LTE1MDgxLDI0ICsxNTE1NSwxMSBAQCBzdGF0aWMgaW50IHJlYWRvdXRfaHdfY3J0Y19zdGF0ZShz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJY3J0Yy0+YWN0aXZlID0gY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmU7CiAJY3J0Yy0+Y29uZmlnID0gY3J0Y19zdGF0ZTsKIAotCWRybV9wbGFu ZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwcmltYXJ5KTsKLQlp ZiAoSVNfRVJSKGRybV9wbGFuZV9zdGF0ZSkpCi0JCXJldHVybiBQVFJfRVJSKGRybV9wbGFuZV9z dGF0ZSk7Ci0KLQlwbGFuZV9zdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wbGFuZV9z dGF0ZSk7Ci0JcGxhbmVfc3RhdGUtPnZpc2libGUgPSBwcmltYXJ5X2dldF9od19zdGF0ZShjcnRj KTsKLQotCWlmIChwbGFuZV9zdGF0ZS0+dmlzaWJsZSkgewotCQlwcmltYXJ5LT5jcnRjID0gJmNy dGMtPmJhc2U7Ci0JCWNydGNfc3RhdGUtPmJhc2UucGxhbmVfbWFzayB8PSAxIDw8IGRybV9wbGFu ZV9pbmRleChwcmltYXJ5KTsKLQl9IGVsc2UKLQkJY3J0Y19zdGF0ZS0+YmFzZS5wbGFuZV9tYXNr ICY9IH4oMSA8PCBkcm1fcGxhbmVfaW5kZXgocHJpbWFyeSkpOwotCiAJRFJNX0RFQlVHX0tNUygi W0NSVEM6JWRdIGh3IHN0YXRlIHJlYWRvdXQ6ICVzXG4iLAogCQkgICAgICBjcnRjLT5iYXNlLmJh c2UuaWQsCiAJCSAgICAgIGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlID8gImVuYWJsZWQiIDogImRp c2FibGVkIik7CiAKLQlyZXR1cm4gMDsKKwlyZXR1cm4gcmVhZG91dF9wbGFuZV9zdGF0ZShzdGF0 ZSwgY3J0YywgY3J0Y19zdGF0ZSk7CiB9CiAKIHN0YXRpYyBpbnQgcmVhZG91dF9od19wbGxfc3Rh dGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAppbmRleCBkOTZjOWEyNGI5NGIuLjdiMWExM2Y2Mzg3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKQEAgLTMyNyw2ICszMjcsNyBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7CiAJICov CiAjZGVmaW5lIFBJUEVfQ09ORklHX1FVSVJLX01PREVfU1lOQ19GTEFHUwkoMTw8MCkgLyogdW5y ZWxpYWJsZSBzeW5jIG1vZGUuZmxhZ3MgKi8KICNkZWZpbmUgUElQRV9DT05GSUdfUVVJUktfSU5I RVJJVEVEX01PREUJKDE8PDEpIC8qIG1vZGUgaW5oZXJpdGVkIGZyb20gZmlybXdhcmUgKi8KKyNk ZWZpbmUgUElQRV9DT05GSUdfUVVJUktfSU5JVElBTF9QTEFORVMJKDE8PDIpIC8qIHBsYW5lcyBh cmUgaW4gdW5rbm93biBzdGF0ZSAqLwogCXVuc2lnbmVkIGxvbmcgcXVpcmtzOwogCiAJLyogUGlw ZSBzb3VyY2Ugc2l6ZSAoaWUuIHBhbmVsIGZpdHRlciBpbnB1dCBzaXplKQpAQCAtNDg1LDggKzQ4 NiwxNCBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19hdG9taWNfY29tbWl0IHsKIAlib29sIGRpc2FibGVf ZmJjOwogCWJvb2wgcHJlX2Rpc2FibGVfcHJpbWFyeTsKIAlib29sIHVwZGF0ZV93bTsKKworCS8q IHBsYW5lcyB0aGF0IHdpbGwgYmUgZGlzYWJsZWQgaW4gYSBub3JtYWwgd2F5ICovCiAJdW5zaWdu ZWQgZGlzYWJsZWRfcGxhbmVzOwogCisJLyogcGxhbmVzIHRoYXQgd2lsbCBiZSBkaXNhYmxlZCBk dXJpbmcgbW9kZXNldCwKKwkgKiBvciBpbml0aWFsbHkgZW5hYmxlZCBwbGFuZXMgKi8KKwl1bnNp Z25lZCBmb3JjZV9kaXNhYmxlZF9wbGFuZXM7CisKIAkvKiBTbGVlcGFibGUgb3BlcmF0aW9ucyB0 byBwZXJmb3JtIGFmdGVyIGNvbW1pdCAqLwogCXVuc2lnbmVkIGZiX2JpdHM7CiAJYm9vbCB3YWl0 X3ZibGFuazsKLS0gCjIuMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=