From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 15/19] drm/i915: atomic plane updates in a nutshell Date: Mon, 15 Jun 2015 12:33:52 +0200 Message-ID: <1434364436-6366-16-git-send-email-maarten.lankhorst@linux.intel.com> References: <1434364436-6366-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 C8AD46E734 for ; Mon, 15 Jun 2015 03:34:14 -0700 (PDT) In-Reply-To: <1434364436-6366-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 CgpUaGlzIGlzIG5lZWRlZCBmb3IgcHJvcGVyIGF0b21pYyBzdXNwZW5kL3Jlc3VtZSBzdXBwb3J0 LgoKQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lk PTkwODY4ClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3Jz dEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMTAzICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgIDQgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjMg aW5zZXJ0aW9ucygrKSwgODQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCmluZGV4IGNjNGNhNDk3MDcxNi4uYmViNjkyODFmNDVjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0yMjE3LDI4ICsyMjE3LDYgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZGlzYWJsZV9waXBlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCQlpbnRlbF93YWl0X2Zv cl9waXBlX29mZihjcnRjKTsKIH0KIAotLyoqCi0gKiBpbnRlbF9lbmFibGVfcHJpbWFyeV9od19w bGFuZSAtIGVuYWJsZSB0aGUgcHJpbWFyeSBwbGFuZSBvbiBhIGdpdmVuIHBpcGUKLSAqIEBwbGFu ZTogIHBsYW5lIHRvIGJlIGVuYWJsZWQKLSAqIEBjcnRjOiBjcnRjIGZvciB0aGUgcGxhbmUKLSAq Ci0gKiBFbmFibGUgQHBsYW5lIG9uIEBjcnRjLCBtYWtpbmcgc3VyZSB0aGF0IHRoZSBwaXBlIGlz IHJ1bm5pbmcgZmlyc3QuCi0gKi8KLXN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9wcmltYXJ5X2h3 X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQkJCQkgIHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQotCS8qIElmIHRo ZSBwaXBlIGlzbid0IGVuYWJsZWQsIHdlIGNhbid0IHB1bXAgcGl4ZWxzIGFuZCBtYXkgaGFuZyAq LwotCWFzc2VydF9waXBlX2VuYWJsZWQoZGV2X3ByaXYsIGludGVsX2NydGMtPnBpcGUpOwotCXRv X2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSktPnZpc2libGUgPSB0cnVlOwotCi0JZGV2 X3ByaXYtPmRpc3BsYXkudXBkYXRlX3ByaW1hcnlfcGxhbmUoY3J0YywgcGxhbmUtPmZiLAotCQkJ CQkgICAgICAgY3J0Yy0+eCwgY3J0Yy0+eSk7Ci19Ci0KIHN0YXRpYyBib29sIG5lZWRfdnRkX3dh KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAjaWZkZWYgQ09ORklHX0lOVEVMX0lPTU1VCkBA IC00NTA4LDIwICs0NDg2LDYgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9lbmFibGUoc3Ry dWN0IGludGVsX2NydGMgKmNydGMpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVf c3ByaXRlX3BsYW5lcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCi17Ci0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmRldjsKLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0 YyktPnBpcGU7Ci0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Ci0Jc3RydWN0IGludGVsX3BsYW5l ICppbnRlbF9wbGFuZTsKLQotCWRybV9mb3JfZWFjaF9sZWdhY3lfcGxhbmUocGxhbmUsICZkZXYt Pm1vZGVfY29uZmlnLnBsYW5lX2xpc3QpIHsKLQkJaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFu ZShwbGFuZSk7Ci0JCWlmIChpbnRlbF9wbGFuZS0+cGlwZSA9PSBwaXBlKQotCQkJaW50ZWxfcGxh bmVfcmVzdG9yZSgmaW50ZWxfcGxhbmUtPmJhc2UpOwotCX0KLX0KLQogdm9pZCBoc3dfZW5hYmxl X2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+YmFzZS5kZXY7CkBAIC00ODE3LDI3ICs0NzgxLDYgQEAgc3RhdGljIHZvaWQgaW50 ZWxfcHJlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkJaW50ZWxfcHJl X2Rpc2FibGVfcHJpbWFyeSgmY3J0Yy0+YmFzZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2Ny dGNfZW5hYmxlX3BsYW5lcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCi17Ci0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0JaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCi0J aW50ZWxfZW5hYmxlX3ByaW1hcnlfaHdfcGxhbmUoY3J0Yy0+cHJpbWFyeSwgY3J0Yyk7Ci0JaW50 ZWxfZW5hYmxlX3Nwcml0ZV9wbGFuZXMoY3J0Yyk7Ci0JaWYgKHRvX2ludGVsX3BsYW5lX3N0YXRl KGNydGMtPmN1cnNvci0+c3RhdGUpLT52aXNpYmxlKQotCQlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJz b3IoY3J0YywgdHJ1ZSk7Ci0KLQlpbnRlbF9wb3N0X2VuYWJsZV9wcmltYXJ5KGNydGMpOwotCi0J LyoKLQkgKiBGSVhNRTogT25jZSB3ZSBncm93IHByb3BlciBudWNsZWFyIGZsaXAgc3VwcG9ydCBv dXQgb2YgdGhpcyB3ZSBuZWVkCi0JICogdG8gY29tcHV0ZSB0aGUgbWFzayBvZiBmbGlwIHBsYW5l cyBwcmVjaXNlbHkuIEZvciB0aGUgdGltZSBiZWluZwotCSAqIGNvbnNpZGVyIHRoaXMgYSBmbGlw IHRvIGEgTlVMTCBwbGFuZS4KLQkgKi8KLQlpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKGRldiwgSU5U RUxfRlJPTlRCVUZGRVJfQUxMX01BU0socGlwZSkpOwotfQotCiBzdGF0aWMgdm9pZCBpbnRlbF9j cnRjX2Rpc2FibGVfcGxhbmVzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgcGxhbmVf bWFzaykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwpAQCAtNDg0NSwx MCArNDc4OCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoc3RydWN0 IGRybV9jcnRjICpjcnRjLCB1bnNpZ25lZCBwbGFuZV9tYXNrCiAJc3RydWN0IGRybV9wbGFuZSAq cDsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAKLQlpbnRlbF9jcnRjX3dhaXRfZm9y X3BlbmRpbmdfZmxpcHMoY3J0Yyk7Ci0KLQlpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KGNydGMp OwotCiAJaW50ZWxfY3J0Y19kcG1zX292ZXJsYXlfZGlzYWJsZShpbnRlbF9jcnRjKTsKIAogCWRy bV9mb3JfZWFjaF9wbGFuZV9tYXNrKHAsIGRldiwgcGxhbmVfbWFzaykKQEAgLTYyNzAsNiArNjIw OSwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMoc3RydWN0IGRy bV9jcnRjICpjcnRjKQogCWlmICghaW50ZWxfY3J0Yy0+YWN0aXZlKQogCQlyZXR1cm47CiAKKwlp ZiAodG9faW50ZWxfcGxhbmVfc3RhdGUoY3J0Yy0+cHJpbWFyeS0+c3RhdGUpLT52aXNpYmxlKSB7 CisJCWludGVsX2NydGNfd2FpdF9mb3JfcGVuZGluZ19mbGlwcyhjcnRjKTsKKwkJaW50ZWxfcHJl X2Rpc2FibGVfcHJpbWFyeShjcnRjKTsKKwl9CisKIAlpbnRlbF9jcnRjX2Rpc2FibGVfcGxhbmVz KGNydGMsIGNydGMtPnN0YXRlLT5wbGFuZV9tYXNrKTsKIAlkZXZfcHJpdi0+ZGlzcGxheS5jcnRj X2Rpc2FibGUoY3J0Yyk7CiAKQEAgLTExNzgzLDEwICsxMTcyNyw2IEBAIGludCBpbnRlbF9wbGFu ZV9hdG9taWNfY2FsY19jaGFuZ2VzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IAlpZiAob2xkX3BsYW5lX3N0YXRlLT5iYXNlLmZiICYmICFmYikKIAkJaW50ZWxfY3J0Yy0+YXRv bWljLmRpc2FibGVkX3BsYW5lcyB8PSAxIDw8IGk7CiAKLQkvKiBkb24ndCBydW4gcmVzdCBkdXJp bmcgbW9kZXNldCB5ZXQgKi8KLQlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSB8fCBtb2RlX2NoYW5n ZWQpCi0JCXJldHVybiAwOwotCiAJd2FzX3Zpc2libGUgPSBvbGRfcGxhbmVfc3RhdGUtPnZpc2li bGU7CiAJdmlzaWJsZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKS0+dmlzaWJs ZTsKIApAQCAtMTMyNTUsMTUgKzEzMTk1LDE4IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9k ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJZHJtX2F0b21pY19oZWxwZXJfc3dh cF9zdGF0ZShkZXYsIHN0YXRlKTsKIAogCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNy dGMsIGNydGNfc3RhdGUsIGkpIHsKKwkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOworCiAJCWlmICghbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkp CiAJCQljb250aW51ZTsKIAogCQlhbnlfbXMgPSB0cnVlOwotCQlpZiAoIWNydGNfc3RhdGUtPmFj dGl2ZSkKLQkJCWNvbnRpbnVlOworCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKGludGVsX2NydGMp OwogCi0JCWludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoY3J0YywgY3J0Y19zdGF0ZS0+cGxhbmVf bWFzayk7Ci0JCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZGlzYWJsZShjcnRjKTsKKwkJaWYgKGNy dGNfc3RhdGUtPmFjdGl2ZSkgeworCQkJaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhjcnRjLCBj cnRjX3N0YXRlLT5wbGFuZV9tYXNrKTsKKwkJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZGlzYWJs ZShjcnRjKTsKKwkJfQogCX0KIAogCS8qIE9ubHkgYWZ0ZXIgZGlzYWJsaW5nIGFsbCBvdXRwdXQg cGlwZWxpbmVzIHRoYXQgd2lsbCBiZSBjaGFuZ2VkIGNhbiB3ZQpAQCAtMTMyNzcsMTUgKzEzMjIw LDEyIEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAKIAkvKiBOb3cgZW5hYmxlIHRoZSBjbG9ja3MsIHBsYW5lLCBwaXBlLCBhbmQg Y29ubmVjdG9ycyB0aGF0IHdlIHNldCB1cC4gKi8KIAlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0 YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Ci0JCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9w bGFuZXNfb25fY3J0YyhjcnRjX3N0YXRlKTsKLQotCQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+ c3RhdGUpIHx8ICFjcnRjLT5zdGF0ZS0+YWN0aXZlKQotCQkJY29udGludWU7Ci0KLQkJdXBkYXRl X3NjYW5saW5lX29mZnNldCh0b19pbnRlbF9jcnRjKGNydGMpKTsKKwkJaWYgKG5lZWRzX21vZGVz ZXQoY3J0Yy0+c3RhdGUpICYmIGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKKwkJCXVwZGF0ZV9zY2Fu bGluZV9vZmZzZXQodG9faW50ZWxfY3J0YyhjcnRjKSk7CisJCQlkZXZfcHJpdi0+ZGlzcGxheS5j cnRjX2VuYWJsZShjcnRjKTsKKwkJfQogCi0JCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZW5hYmxl KGNydGMpOwotCQlpbnRlbF9jcnRjX2VuYWJsZV9wbGFuZXMoY3J0Yyk7CisJCWRybV9hdG9taWNf aGVscGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0YyhjcnRjX3N0YXRlKTsKIAl9CiAKIAkvKiBGSVhN RTogYWRkIHN1YnBpeGVsIG9yZGVyICovCkBAIC0xMzg1OCw3ICsxMzc5OCw3IEBAIGludGVsX2Nv bW1pdF9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWNydGMtPnggPSBz cmMtPngxID4+IDE2OwogCWNydGMtPnkgPSBzcmMtPnkxID4+IDE2OwogCi0JaWYgKCFpbnRlbF9j cnRjLT5hY3RpdmUpCisJaWYgKCFjcnRjLT5zdGF0ZS0+YWN0aXZlKQogCQlyZXR1cm47CiAKIAlp ZiAoc3RhdGUtPnZpc2libGUpCkBAIC0xMzg4NSw3ICsxMzgyNSw4IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAotCWludGVsX3ByZV9w bGFuZV91cGRhdGUoaW50ZWxfY3J0Yyk7CisJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRl KSkKKwkJaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShpbnRlbF9jcnRjKTsKIAogCWlmIChpbnRlbF9j cnRjLT5hdG9taWMudXBkYXRlX3dtKQogCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsK QEAgLTEzODkzLDcgKzEzODM0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21t aXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2 KTsKIAogCS8qIFBlcmZvcm0gdmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRpb24g Ki8KLQlpZiAoY3J0Yy0+c3RhdGUtPmFjdGl2ZSAmJiAhbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0 ZSkpCisJaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCWludGVsX2NydGMtPmF0b21pYy5ldmFk ZSA9CiAJCQlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChpbnRlbF9jcnRjLAogCQkJCQkJJmludGVs X2NydGMtPmF0b21pYy5zdGFydF92YmxfY291bnQpOwpAQCAtMTQxMDIsNyArMTQwNDMsNyBAQCBp bnRlbF9jb21taXRfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWludGVs X2NydGMtPmN1cnNvcl9ibyA9IG9iajsKIAogdXBkYXRlOgotCWlmIChpbnRlbF9jcnRjLT5hY3Rp dmUpCisJaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCWludGVsX2NydGNfdXBkYXRlX2N1cnNv cihjcnRjLCBzdGF0ZS0+dmlzaWJsZSk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMKaW5kZXggZjdlYjNiZDBhN2M3Li4xNjhmOTBmMzQ2YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jCkBAIC05MjEsMTYgKzkyMSwxNCBAQCBpbnRlbF9jb21taXRfc3ByaXRlX3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7CiAJc3RydWN0IGludGVsX3BsYW5lICpp bnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwogCiAJY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUt PmNydGM7Ci0JaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAKIAlwbGFuZS0+ZmIg PSBmYjsKIAotCWlmICghaW50ZWxfY3J0Yy0+YWN0aXZlKQorCWlmICghY3J0Yy0+c3RhdGUtPmFj dGl2ZSkKIAkJcmV0dXJuOwogCiAJaWYgKHN0YXRlLT52aXNpYmxlKSB7Ci0tIAoyLjEuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK