From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 19/27] drm/i915: atomic plane updates in a nutshell Date: Thu, 4 Jun 2015 14:47:49 +0200 Message-ID: <1433422077-14907-20-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 C9F5D6EAF1 for ; Thu, 4 Jun 2015 05:48:12 -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 Tm93IHRoYXQgYWxsIHBsYW5lcyBhcmUgYWRkZWQgZHVyaW5nIGEgbW9kZXNldCB3ZSBjYW4gdXNl IHRoZQpjYWxjdWxhdGVkIGNoYW5nZXMgYmVmb3JlIGRpc2FibGluZyBhIHBsYW5lLCBhbmQgdGhl biBlaXRoZXIgY29tbWl0Cm9yIGZvcmNlIGRpc2FibGUgYSBwbGFuZSBiZWZvcmUgZGlzYWJsaW5n IHRoZSBjcnRjLgoKVGhlIGNvZGUgaXMgc2hhcmVkIHdpdGggYXRvbWljX2JlZ2luL2ZsdXNoLCBl eGNlcHQgd2F0ZXJtYXJrIHVwZGF0aW5nCmFuZCB2YmxhbmsgZXZhc2lvbiBhcmUgbm90IHVzZWQu CgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGlu dXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8 IDEyOCArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgICA0ICstCiAyIGZpbGVzIGNoYW5nZWQsIDI3IGluc2Vy dGlvbnMoKyksIDEwNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKaW5kZXggM2I1ZDIzNjkyOTM1Li5kNGRkY2FkN2VhZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKQEAgLTEwOSw4ICsxMDksNiBAQCBzdGF0aWMgdm9pZCBza2xfaW5pdF9z Y2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cgogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKIHN0YXRpYyBpbnQgaTl4 eF9nZXRfcmVmY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQkJICAgaW50IG51bV9jb25uZWN0b3JzKTsKLXN0YXRpYyB2b2lkIGludGVsX2NydGNfZW5hYmxl X3BsYW5lcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwotc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19k aXNhYmxlX3BsYW5lcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogCiBzdGF0aWMgc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2ZpbmRfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IsIGludCBwaXBlKQogewpAQCAtMjIxNSwyOCArMjIxMyw2IEBAIHN0YXRpYyB2b2lk IGludGVsX2Rpc2FibGVfcGlwZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkJaW50ZWxfd2Fp dF9mb3JfcGlwZV9vZmYoY3J0Yyk7CiB9CiAKLS8qKgotICogaW50ZWxfZW5hYmxlX3ByaW1hcnlf aHdfcGxhbmUgLSBlbmFibGUgdGhlIHByaW1hcnkgcGxhbmUgb24gYSBnaXZlbiBwaXBlCi0gKiBA cGxhbmU6ICBwbGFuZSB0byBiZSBlbmFibGVkCi0gKiBAY3J0YzogY3J0YyBmb3IgdGhlIHBsYW5l Ci0gKgotICogRW5hYmxlIEBwbGFuZSBvbiBAY3J0YywgbWFraW5nIHN1cmUgdGhhdCB0aGUgcGlw ZSBpcyBydW5uaW5nIGZpcnN0LgotICovCi1zdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfcHJpbWFy eV9od19wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCQkJICBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0KLQkvKiBJ ZiB0aGUgcGlwZSBpc24ndCBlbmFibGVkLCB3ZSBjYW4ndCBwdW1wIHBpeGVscyBhbmQgbWF5IGhh bmcgKi8KLQlhc3NlcnRfcGlwZV9lbmFibGVkKGRldl9wcml2LCBpbnRlbF9jcnRjLT5waXBlKTsK LQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpLT52aXNpYmxlID0gdHJ1ZTsKLQot CWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV9wcmltYXJ5X3BsYW5lKGNydGMsIHBsYW5lLT5mYiwK LQkJCQkJICAgICAgIGNydGMtPngsIGNydGMtPnkpOwotfQotCiBzdGF0aWMgYm9vbCBuZWVkX3Z0 ZF93YShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogI2lmZGVmIENPTkZJR19JTlRFTF9JT01N VQpAQCAtNDUwMSwyMCArNDQ3Nyw2IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BmaXRfZW5hYmxl KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCX0KIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZW5h YmxlX3Nwcml0ZV9wbGFuZXMoc3RydWN0IGRybV9jcnRjICpjcnRjKQotewotCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRj KGNydGMpLT5waXBlOwotCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwotCXN0cnVjdCBpbnRlbF9w bGFuZSAqaW50ZWxfcGxhbmU7Ci0KLQlkcm1fZm9yX2VhY2hfbGVnYWN5X3BsYW5lKHBsYW5lLCAm ZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0KSB7Ci0JCWludGVsX3BsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmUpOwotCQlpZiAoaW50ZWxfcGxhbmUtPnBpcGUgPT0gcGlwZSkKLQkJCWludGVs X3BsYW5lX3Jlc3RvcmUoJmludGVsX3BsYW5lLT5iYXNlKTsKLQl9Ci19Ci0KIHZvaWQgaHN3X2Vu YWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNydGMtPmJhc2UuZGV2OwpAQCAtNDgxMCwyNiArNDc3Miw2IEBAIHN0YXRpYyB2b2lk IGludGVsX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJCWludGVs X3ByZV9kaXNhYmxlX3ByaW1hcnkoJmNydGMtPmJhc2UpOwogfQogCi1zdGF0aWMgdm9pZCBpbnRl bF9jcnRjX2VuYWJsZV9wbGFuZXMoc3RydWN0IGRybV9jcnRjICpjcnRjKQotewotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsK LQotCWludGVsX2VuYWJsZV9wcmltYXJ5X2h3X3BsYW5lKGNydGMtPnByaW1hcnksIGNydGMpOwot CWludGVsX2VuYWJsZV9zcHJpdGVfcGxhbmVzKGNydGMpOwotCWludGVsX2NydGNfdXBkYXRlX2N1 cnNvcihjcnRjLCB0cnVlKTsKLQotCWludGVsX3Bvc3RfZW5hYmxlX3ByaW1hcnkoY3J0Yyk7Ci0K LQkvKgotCSAqIEZJWE1FOiBPbmNlIHdlIGdyb3cgcHJvcGVyIG51Y2xlYXIgZmxpcCBzdXBwb3J0 IG91dCBvZiB0aGlzIHdlIG5lZWQKLQkgKiB0byBjb21wdXRlIHRoZSBtYXNrIG9mIGZsaXAgcGxh bmVzIHByZWNpc2VseS4gRm9yIHRoZSB0aW1lIGJlaW5nCi0JICogY29uc2lkZXIgdGhpcyBhIGZs aXAgdG8gYSBOVUxMIHBsYW5lLgotCSAqLwotCWludGVsX2Zyb250YnVmZmVyX2ZsaXAoZGV2LCBJ TlRFTF9GUk9OVEJVRkZFUl9BTExfTUFTSyhwaXBlKSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVs X2Rpc2FibGVfcGxhbmVzX29uX2NydGMoc3RydWN0IGRybV9jcnRjICpjKQogewogCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjKTsKQEAgLTQ4NDAsMjcgKzQ3ODIsNiBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3BsYW5lc19vbl9jcnRjKHN0cnVjdCBkcm1fY3J0 YyAqYykKIAkJdG9faW50ZWxfcGxhbmUocGxhbmUpLT5kaXNhYmxlX3BsYW5lKHBsYW5lLCBjKTsK IH0KIAotc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0JaW50IHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCi0JaW50ZWxfY3J0Y193YWl0X2Zvcl9wZW5kaW5nX2Zs aXBzKGNydGMpOwotCi0JaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeShjcnRjKTsKLQotCWludGVs X2NydGNfZHBtc19vdmVybGF5X2Rpc2FibGUoaW50ZWxfY3J0Yyk7Ci0JaW50ZWxfZGlzYWJsZV9w bGFuZXNfb25fY3J0YyhjcnRjKTsKLQotCS8qCi0JICogRklYTUU6IE9uY2Ugd2UgZ3JvdyBwcm9w ZXIgbnVjbGVhciBmbGlwIHN1cHBvcnQgb3V0IG9mIHRoaXMgd2UgbmVlZAotCSAqIHRvIGNvbXB1 dGUgdGhlIG1hc2sgb2YgZmxpcCBwbGFuZXMgcHJlY2lzZWx5LiBGb3IgdGhlIHRpbWUgYmVpbmcK LQkgKiBjb25zaWRlciB0aGlzIGEgZmxpcCB0byBhIE5VTEwgcGxhbmUuCi0JICovCi0JaW50ZWxf ZnJvbnRidWZmZXJfZmxpcChkZXYsIElOVEVMX0ZST05UQlVGRkVSX0FMTF9NQVNLKHBpcGUpKTsK LX0KLQogc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpj cnRjKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CkBAIC0xMTU1Miwx MCArMTE0NzMsNiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaWYgKG9sZF9wbGFuZV9zdGF0ZS0+YmFzZS5m YiAmJiAhZmIpCiAJCWludGVsX2NydGMtPmF0b21pYy5kaXNhYmxlZF9wbGFuZXMgfD0gMSA8PCBp OwogCi0JLyogZG9uJ3QgcnVuIHJlc3QgZHVyaW5nIG1vZGVzZXQgeWV0ICovCi0JaWYgKCFpbnRl bF9jcnRjLT5hY3RpdmUgfHwgbW9kZV9jaGFuZ2VkKQotCQlyZXR1cm4gMDsKLQogCWlmICh0b19p bnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLT5xdWlya3MgJgogCSAgICBQSVBFX0NPTkZJR19R VUlSS19JTklUSUFMX1BMQU5FUykgewogCQlpZiAoIXBsYW5lX3N0YXRlLT5jcnRjKSB7CkBAIC0x Mjk1NiwxNSArMTI4NzMsMjMgQEAgc3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKGRl diwgc3RhdGUpOwogCiAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19z dGF0ZSwgaSkgeworCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Yyk7CisKIAkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSkKIAkJCWNvbnRp bnVlOwogCiAJCWFueV9tcyA9IHRydWU7Ci0JCWlmICghY3J0Y19zdGF0ZS0+YWN0aXZlKQotCQkJ Y29udGludWU7CisJCWludGVsX3ByZV9wbGFuZV91cGRhdGUoaW50ZWxfY3J0Yyk7CisKKwkJaWYg KGNydGNfc3RhdGUtPmFjdGl2ZSkgeworCQkJaW50ZWxfY3J0Y19kcG1zX292ZXJsYXlfZGlzYWJs ZShpbnRlbF9jcnRjKTsKKwkJCWludGVsX2Rpc2FibGVfcGxhbmVzX29uX2NydGMoY3J0Yyk7CisK KwkJCS8qIFhYWDogQ2FsY3VsYXRlIG1hc2sgaGVyZT8gKi8KKwkJCWludGVsX2Zyb250YnVmZmVy X2ZsaXAoZGV2LCBJTlRFTF9GUk9OVEJVRkZFUl9BTExfTUFTSyhpbnRlbF9jcnRjLT5waXBlKSk7 CiAKLQkJaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhjcnRjKTsKLQkJZGV2X3ByaXYtPmRpc3Bs YXkuY3J0Y19kaXNhYmxlKGNydGMpOworCQkJZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19kaXNhYmxl KGNydGMpOworCQl9CiAJfQogCiAJLyogT25seSBhZnRlciBkaXNhYmxpbmcgYWxsIG91dHB1dCBw aXBlbGluZXMgdGhhdCB3aWxsIGJlIGNoYW5nZWQgY2FuIHdlCkBAIC0xMjk3OCwxNSArMTI5MDMs MTIgQEAgc3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKIAogCS8qIE5vdyBlbmFibGUgdGhlIGNsb2NrcywgcGxhbmUsIHBpcGUsIGFuZCBj b25uZWN0b3JzIHRoYXQgd2Ugc2V0IHVwLiAqLwogCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3Rh dGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3Bs YW5lc19vbl9jcnRjKGNydGNfc3RhdGUpOwotCi0JCWlmICghbmVlZHNfbW9kZXNldChjcnRjLT5z dGF0ZSkgfHwgIWNydGMtPnN0YXRlLT5hY3RpdmUpCi0JCQljb250aW51ZTsKLQotCQl1cGRhdGVf c2NhbmxpbmVfb2Zmc2V0KHRvX2ludGVsX2NydGMoY3J0YykpOworCQlpZiAobmVlZHNfbW9kZXNl dChjcnRjLT5zdGF0ZSkgJiYgY3J0Yy0+c3RhdGUtPmFjdGl2ZSkgeworCQkJdXBkYXRlX3NjYW5s aW5lX29mZnNldCh0b19pbnRlbF9jcnRjKGNydGMpKTsKKwkJCWRldl9wcml2LT5kaXNwbGF5LmNy dGNfZW5hYmxlKGNydGMpOworCQl9CiAKLQkJZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19lbmFibGUo Y3J0Yyk7Ci0JCWludGVsX2NydGNfZW5hYmxlX3BsYW5lcyhjcnRjKTsKKwkJZHJtX2F0b21pY19o ZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRjKGNydGNfc3RhdGUpOwogCX0KIAogCS8qIEZJWE1F OiBhZGQgc3VicGl4ZWwgb3JkZXIgKi8KQEAgLTEzNTI0LDcgKzEzNDQ2LDcgQEAgaW50ZWxfY29t bWl0X3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJY3J0Yy0+eCA9IHNy Yy0+eDEgPj4gMTY7CiAJY3J0Yy0+eSA9IHNyYy0+eTEgPj4gMTY7CiAKLQlpZiAoIWludGVsX2Ny dGMtPmFjdGl2ZSkKKwlpZiAoIWNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCXJldHVybjsKIAogCWlm IChzdGF0ZS0+dmlzaWJsZSkKQEAgLTEzNTUwLDcgKzEzNDcyLDggQEAgc3RhdGljIHZvaWQgaW50 ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCi0JaW50ZWxfcHJlX3Bs YW5lX3VwZGF0ZShpbnRlbF9jcnRjKTsKKwlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUp KQorCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKGludGVsX2NydGMpOwogCiAJaWYgKGludGVsX2Ny dGMtPmF0b21pYy51cGRhdGVfd20pCiAJCWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKGNydGMpOwpA QCAtMTM1NTgsMTcgKzEzNDgxLDE4IEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29t bWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJp dik7CiAKIAkvKiBQZXJmb3JtIHZibGFuayBldmFzaW9uIGFyb3VuZCBjb21taXQgb3BlcmF0aW9u ICovCi0JaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUgJiYgIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3Rh dGUpKSB7CisJaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCWludGVsX2NydGMtPmF0b21pYy5l dmFkZSA9CiAJCQlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChpbnRlbF9jcnRjLAogCQkJCQkJJmlu dGVsX2NydGMtPmF0b21pYy5zdGFydF92YmxfY291bnQpOwogCisJaWYgKCFuZWVkc19tb2Rlc2V0 KGNydGMtPnN0YXRlKSkgeworCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKKwkJCXNr bF9kZXRhY2hfc2NhbGVycyhpbnRlbF9jcnRjKTsKKwogCQlpZiAoaW50ZWxfY3J0Yy0+YXRvbWlj LmZvcmNlX2Rpc2FibGVkX3BsYW5lcykKIAkJCWludGVsX2Rpc2FibGVfcGxhbmVzX29uX2NydGMo Y3J0Yyk7CiAJfQotCi0JaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSAmJiBJTlRFTF9J TkZPKGRldiktPmdlbiA+PSA5KQotICAgICAgICAgICAgICAgIHNrbF9kZXRhY2hfc2NhbGVycyhp bnRlbF9jcnRjKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfZmluaXNoX2NydGNfY29tbWl0KHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKQEAgLTEzNzcwLDcgKzEzNjk0LDcgQEAgaW50ZWxfY29tbWl0 X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlpbnRlbF9jcnRjLT5jdXJz b3JfYm8gPSBvYmo7CiAKIHVwZGF0ZToKLQlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKQorCWlmIChj cnRjLT5zdGF0ZS0+YWN0aXZlKQogCQlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0Yywgc3Rh dGUtPnZpc2libGUpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCmluZGV4IDJh NmNmYWMyMTBjYi4uNDlkODY3YThiMDczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUu YwpAQCAtOTE5LDE2ICs5MTksMTQgQEAgaW50ZWxfY29tbWl0X3Nwcml0ZV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkK IHsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+YmFzZS5jcnRjOwotCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUg PSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBz dGF0ZS0+YmFzZS5mYjsKIAogCWNydGMgPSBjcnRjID8gY3J0YyA6IHBsYW5lLT5jcnRjOwotCWlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCiAJcGxhbmUtPmZiID0gZmI7CiAKLQlp ZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKKwlpZiAoIWNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCXJl dHVybjsKIAogCWlmIChzdGF0ZS0+dmlzaWJsZSkgewotLSAKMi4xLjAKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==