From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 09/15] drm/i915/gen11: Link nv12 Y and UV planes in the atomic state, v2. Date: Wed, 19 Sep 2018 15:56:38 +0200 Message-ID: <20180919135644.14182-10-maarten.lankhorst@linux.intel.com> References: <20180919135644.14182-1-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 ESMTPS id CF4546E505 for ; Wed, 19 Sep 2018 13:56:53 +0000 (UTC) In-Reply-To: <20180919135644.14182-1-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 VG8gbWFrZSBOVjEyIHdvcmtpbmcgb24gaWNsLCB3ZSBuZWVkIHRvIHVwZGF0ZSAyIHBsYW5lcyBz aW11bHRhbmVvdXNseS4KSSd2ZSBjaG9zZW4gdG8gZG8gdGhpcyBpbiB0aGUgQ1JUQyBzdGVwIGFm dGVyIHBsYW5lIHZhbGlkYXRpb24gaXMgZG9uZSwKc28gd2Uga25vdyB3aGF0IHBsYW5lcyBhcmUg KGluKXZpc2libGUuIFRoZSBsaW5rZWQgWSBwbGFuZSB3aWxsIGdldAp1cGRhdGVkIGluIGludGVs X3BsYW5lX3VwZGF0ZV9wbGFuZXNfb25fY3J0YygpLCBieSB0aGUgY2FsbCB0bwp1cGRhdGVfc2xh dmUsIHdoaWNoIGdldHMgdGhlIG1hc3RlcidzIHBsYW5lX3N0YXRlIGFzIGFyZ3VtZW50LgoKVGhl IGxpbmsgcmVxdWlyZXMgYm90aCBwbGFuZXMgZm9yIGF0b21pY191cGRhdGUgdG8gd29yaywKc28g bWFrZSBzdXJlIHNrbF9kZGJfYWRkX2FmZmVjdGVkX3BsYW5lcygpIGFkZHMgYm90aCBzdGF0ZXMu CgpDaGFuZ2VzIHNpbmNlIHYxOgotIEludHJvZHVjZSBpY2xfaXNfbnYxMl95X3BsYW5lKCksIGlu c3RlYWQgb2YgaGFyZGNvZGluZyBzcHJpdGUgbnVtYmVycy4KLSBQdXQgYWxsIHRoZSBzdGF0ZSB1 cGRhdGluZyBsb2dpbiBpbiBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZSgpLgot IENsZWFuIHVwIGNoYW5nZXMgaW4gaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKCkuCgpTaWduZWQt b2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIHwgMTA3 ICsrKysrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyAgICAgIHwgIDU3ICsrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggICAgICAgICAgfCAgNTMgKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgICAgICAgICAgIHwgIDEyICsrLQogNCBmaWxlcyBjaGFuZ2VkLCAyMTAgaW5zZXJ0 aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWNfcGxhbmUuYwppbmRleCBkNzU0YThiYTlmZmIuLjRmMjI0ZjcxZDUwZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAgLTExNyw3ICsxMTcsMTIgQEAgaW50 IGludGVsX3BsYW5lX2F0b21pY19jaGVja193aXRoX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpvbGRfY3J0Y18KIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0g dG9faW50ZWxfcGxhbmUocGxhbmUpOwogCWludCByZXQ7CiAKKwljcnRjX3N0YXRlLT5hY3RpdmVf cGxhbmVzICY9IH5CSVQoaW50ZWxfcGxhbmUtPmlkKTsKIAlpbnRlbF9zdGF0ZS0+YmFzZS52aXNp YmxlID0gZmFsc2U7CisJaW50ZWxfc3RhdGUtPmxpbmtlZF9wbGFuZSA9IE5VTEw7CisJaW50ZWxf c3RhdGUtPnNsYXZlID0gZmFsc2U7CisKKwkvKiBJZiB0aGlzIGlzIGEgY3Vyc29yIG9yIFkgcGxh bmUsIG5vIGZ1cnRoZXIgY2hlY2tzIGFyZSBuZWVkZWQuICovCiAJaWYgKCFpbnRlbF9zdGF0ZS0+ YmFzZS5jcnRjICYmICFvbGRfcGxhbmVfc3RhdGUtPmJhc2UuY3J0YykKIAkJcmV0dXJuIDA7CiAK QEAgLTEyOCw4ICsxMzMsNiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3Rh dGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjXwogCS8qIEZJWE1FIHBy ZS1nNHggZG9uJ3Qgd29yayBsaWtlIHRoaXMgKi8KIAlpZiAoc3RhdGUtPnZpc2libGUpCiAJCWNy dGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgfD0gQklUKGludGVsX3BsYW5lLT5pZCk7Ci0JZWxzZQot CQljcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzICY9IH5CSVQoaW50ZWxfcGxhbmUtPmlkKTsKIAog CWlmIChzdGF0ZS0+dmlzaWJsZSAmJiBzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9G T1JNQVRfTlYxMikKIAkJY3J0Y19zdGF0ZS0+bnYxMl9wbGFuZXMgfD0gQklUKGludGVsX3BsYW5l LT5pZCk7CkBAIC0xNDIsMjcgKzE0NSw3NiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNr X3dpdGhfc3RhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjXwogCQkJ CQkgICAgICAgc3RhdGUpOwogfQogCi1zdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVj ayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqbmV3X3BsYW5lX3N0YXRlKQorc3RhdGljIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2so c3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAorCQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpuZXdfZHJtX3BsYW5lX3N0YXRlKQogewotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IG5ld19wbGFuZV9zdGF0ZS0+c3RhdGU7Ci0JY29uc3Qgc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqb2xkX3BsYW5lX3N0YXRlID0KLQkJZHJtX2F0b21pY19nZXRfb2xkX3BsYW5lX3N0YXRl KHN0YXRlLCBwbGFuZSk7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gbmV3X3BsYW5lX3N0YXRl LT5jcnRjID86IG9sZF9wbGFuZV9zdGF0ZS0+Y3J0YzsKLQljb25zdCBzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNf c3RhdGU7Ci0KLQluZXdfcGxhbmVfc3RhdGUtPnZpc2libGUgPSBmYWxzZTsKKwlzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfZHJt X3BsYW5lX3N0YXRlLT5zdGF0ZSk7CisJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2lu dGVsX3BsYW5lKGRybV9wbGFuZSk7CisJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpv bGRfcGxhbmVfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShzdGF0 ZSwgcGxhbmUpOworCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlID0K KwkJdG9faW50ZWxfcGxhbmVfc3RhdGUobmV3X2RybV9wbGFuZV9zdGF0ZSk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKAorCQluZXdfcGxhbmVfc3RhdGUtPmJhc2Uu Y3J0YyA/OgorCQlvbGRfcGxhbmVfc3RhdGUtPmJhc2UuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpuZXdfY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmxpbmtlZCA9IG9sZF9wbGFu ZV9zdGF0ZS0+bGlua2VkX3BsYW5lOworCWludCByZXQ7CisJY29uc3Qgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpvbGRfbGlua2VkX3N0YXRlOworCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAq bmV3X2xpbmtlZF9zdGF0ZSA9IE5VTEw7CisKKwlpZiAobGlua2VkKSB7CisJCS8qCisJCSogTWFr ZSBzdXJlIGEgcHJldmlvdXNseSBsaW5rZWQgcGxhbmUgKGFuZCBpbXBsaWNpdGx5LCB0aGUgQ1JU QykKKwkJKiBpcyBwYXJ0IG9mIHRoZSBhdG9taWMgY29tbWl0LgorCQkqLworCQlpZiAoIWludGVs X2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKHN0YXRlLCBsaW5rZWQpKSB7CisJCQluZXdfbGlu a2VkX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgbGlua2VkKTsK KwkJCWlmIChJU19FUlIobmV3X2xpbmtlZF9zdGF0ZSkpCisJCQkJcmV0dXJuIFBUUl9FUlIobmV3 X2xpbmtlZF9zdGF0ZSk7CisJCX0KKworCQlvbGRfbGlua2VkX3N0YXRlID0KKwkJCWludGVsX2F0 b21pY19nZXRfb2xkX3BsYW5lX3N0YXRlKHN0YXRlLCBsaW5rZWQpOworCisJCS8qCisJCSAqIFRo aXMgd2lsbCBoYXBwZW4gd2hlbiB3ZSdyZSB0aGUgWSBwbGFuZS4gSW4gd2hpY2ggY2FzZQorCQkg KiBvbGQvbmV3X3N0YXRlLT5jcnRjIGFyZSBib3RoIE5VTEwuIFdlIHN0aWxsIG5lZWQgdG8gcGVy Zm9ybQorCQkgKiB1cGRhdGVzIG9uIHRoZSBsaW5rZWQgcGxhbmUuCisJCSAqLworCQlpZiAoIWNy dGMpCisJCQljcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfbGlua2VkX3N0YXRlLT5iYXNlLmNydGMp OworCisJCVdBUk5fT04oIWNydGMpOworCX0KKworCW5ld19wbGFuZV9zdGF0ZS0+YmFzZS52aXNp YmxlID0gZmFsc2U7CiAJaWYgKCFjcnRjKQogCQlyZXR1cm4gMDsKIAotCW9sZF9jcnRjX3N0YXRl ID0gZHJtX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwotCW5ld19jcnRj X3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCW9s ZF9jcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0 Yyk7CisJbmV3X2NydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0 YXRlLCBjcnRjKTsKKworCWlmIChuZXdfbGlua2VkX3N0YXRlICYmCisJICAgIGRybV9wbGFuZV9p bmRleCgmbGlua2VkLT5iYXNlKSA8IGRybV9wbGFuZV9pbmRleCgmcGxhbmUtPmJhc2UpKSB7CisJ CS8qCisJCSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gZHJtX2F0b21pY19oZWxwZXJf Y2hlY2tfcGxhbmVzKCksIHdoaWNoCisJCSAqIHdpbGwgbm9ybWFsbHkgY2hlY2sgdGhlIG5ld2x5 IGFkZGVkIHBsYW5lIGZvciB1cywgYnV0IHNpbmNlIHdlJ3JlCisJCSAqIGFscmVhZHkgaW4gdGhh dCBmdW5jdGlvbiwgaXQgd29uJ3QgY2hlY2sgdGhlIHBsYW5lIGlmIG91ciBpbmRleAorCQkgKiBp cyBiaWdnZXIgdGhhbiB0aGUgbGlua2VkIGluZGV4IGJlY2F1c2Ugb2YgdGhlCisJCSAqIGZvcl9l YWNoX29sZG5ld19wbGFuZV9pbl9zdGF0ZSgpIGNhbGwuCisJCSAqLworCQluZXdfY3J0Y19zdGF0 ZS0+YmFzZS5wbGFuZXNfY2hhbmdlZCA9IHRydWU7CisJCXJldCA9IGludGVsX3BsYW5lX2F0b21p Y19jaGVja193aXRoX3N0YXRlKG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwKKwkJCQkJ CQkgIG9sZF9saW5rZWRfc3RhdGUsIG5ld19saW5rZWRfc3RhdGUpOworCQlpZiAocmV0KQorCQkJ cmV0dXJuIHJldDsKKwl9CiAKLQlyZXR1cm4gaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhf c3RhdGUodG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSksCi0JCQkJCQkgICB0b19p bnRlbF9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKSwKLQkJCQkJCSAgIHRvX2ludGVsX3BsYW5l X3N0YXRlKG9sZF9wbGFuZV9zdGF0ZSksCi0JCQkJCQkgICB0b19pbnRlbF9wbGFuZV9zdGF0ZShu ZXdfcGxhbmVfc3RhdGUpKTsKKwlyZXR1cm4gaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhf c3RhdGUob2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLAorCQkJCQkJICAgb2xkX3BsYW5l X3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUpOwogfQogCiB2b2lkIGludGVsX3VwZGF0ZV9wbGFuZXNf b25fY3J0YyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpvbGRfc3RhdGUsCkBAIC0xODcsNiAr MjM5LDI1IEBAIHZvaWQgaW50ZWxfdXBkYXRlX3BsYW5lc19vbl9jcnRjKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKm9sZF9zdGF0ZSwKIAkJCXRyYWNlX2ludGVsX3VwZGF0ZV9wbGFuZSgmcGxh bmUtPmJhc2UsIGNydGMpOwogCiAJCQlwbGFuZS0+dXBkYXRlX3BsYW5lKHBsYW5lLCBuZXdfY3J0 Y19zdGF0ZSwgbmV3X3BsYW5lX3N0YXRlKTsKKwkJfSBlbHNlIGlmIChuZXdfcGxhbmVfc3RhdGUt PnNsYXZlKSB7CisJCQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKm1hc3RlciA9CisJCQkJbmV3X3BsYW5l X3N0YXRlLT5saW5rZWRfcGxhbmU7CisKKwkJCS8qCisJCQkgKiBXZSB1cGRhdGUgdGhlIHNsYXZl IHBsYW5lIGZyb20gdGhpcyBmdW5jdGlvbiBiZWNhdXNlCisJCQkgKiBwcm9ncmFtbWluZyBpdCBm cm9tIHRoZSBtYXN0ZXIgcGxhbmUncyB1cGRhdGVfcGxhbmUKKwkJCSAqIGNhbGxiYWNrIHJ1bnMg aW50byBpc3N1ZXMgd2hlbiB0aGUgWSBwbGFuZSBpcworCQkJICogcmVhc3NpZ25lZCwgZGlzYWJs ZWQgb3IgdXNlZCBieSBhIGRpZmZlcmVudCBwbGFuZS4KKwkJCSAqCisJCQkgKiBUaGUgc2xhdmUg cGxhbmUgaXMgdXBkYXRlZCB3aXRoIHRoZSBtYXN0ZXIgcGxhbmUncworCQkJICogcGxhbmVfc3Rh dGUuCisJCQkgKi8KKwkJCW5ld19wbGFuZV9zdGF0ZSA9CisJCQkJaW50ZWxfYXRvbWljX2dldF9u ZXdfcGxhbmVfc3RhdGUob2xkX3N0YXRlLCBtYXN0ZXIpOworCisJCQl0cmFjZV9pbnRlbF91cGRh dGVfcGxhbmUoJnBsYW5lLT5iYXNlLCBjcnRjKTsKKworCQkJcGxhbmUtPnVwZGF0ZV9zbGF2ZShw bGFuZSwgbmV3X2NydGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSk7CiAJCX0gZWxzZSB7CiAJCQl0 cmFjZV9pbnRlbF9kaXNhYmxlX3BsYW5lKCZwbGFuZS0+YmFzZSwgY3J0Yyk7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAxMjJmM2Y0Y2ZjNTMuLmE1Mzk1M2RmNmM5ZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTA3MzYsNiArMTA3MzYsNjAg QEAgc3RhdGljIGJvb2wgY2hlY2tfc2luZ2xlX2VuY29kZXJfY2xvbmluZyhzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUsCiAJcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBpbnQgaWNsX2No ZWNrX252MTJfcGxhbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkg c3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQoreworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50 ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUsICphdXg7CisKKwlpZiAoIWNydGNfc3RhdGUtPm52MTJfcGxhbmVzKQorCQly ZXR1cm4gMDsKKworCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoJmRldl9wcml2LT5kcm0s IGNydGMsIHBsYW5lKSB7CisJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUs ICphdXhfc3RhdGU7CisJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmRybV9hdXhfc3RhdGUgPSBO VUxMOworCisJCWlmICghKGNydGNfc3RhdGUtPm52MTJfcGxhbmVzICYgQklUKHBsYW5lLT5pZCkp KQorCQkJY29udGludWU7CisKKwkJcGxhbmVfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X25ld19w bGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOworCQlpZiAoIXBsYW5lX3N0YXRlKQorCQkJY29udGlu dWU7CisKKwkJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YygmZGV2X3ByaXYtPmRybSwgY3J0 YywgYXV4KSB7CisJCQlpZiAoIWljbF9pc19udjEyX3lfcGxhbmUoYXV4LT5pZCkpCisJCQkJY29u dGludWU7CisKKwkJCWlmIChjcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzICYgQklUKGF1eC0+aWQp KQorCQkJCWNvbnRpbnVlOworCisJCQlkcm1fYXV4X3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxh bmVfc3RhdGUoJnN0YXRlLT5iYXNlLCAmYXV4LT5iYXNlKTsKKwkJCWlmIChJU19FUlIoZHJtX2F1 eF9zdGF0ZSkpCisJCQkJcmV0dXJuIFBUUl9FUlIoZHJtX2F1eF9zdGF0ZSk7CisKKwkJCWJyZWFr OworCQl9CisKKwkJaWYgKCFkcm1fYXV4X3N0YXRlKSB7CisJCQlEUk1fREVCVUdfS01TKCJOZWVk ICVkIGZyZWUgWSBwbGFuZXMgZm9yIE5WMTJcbiIsCisJCQkJICAgICAgaHdlaWdodDgoY3J0Y19z dGF0ZS0+bnYxMl9wbGFuZXMpKTsKKworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlwbGFu ZV9zdGF0ZS0+bGlua2VkX3BsYW5lID0gYXV4OworCisJCWF1eF9zdGF0ZSA9IHRvX2ludGVsX3Bs YW5lX3N0YXRlKGRybV9hdXhfc3RhdGUpOworCQlhdXhfc3RhdGUtPnNsYXZlID0gdHJ1ZTsKKwkJ YXV4X3N0YXRlLT5saW5rZWRfcGxhbmUgPSBwbGFuZTsKKwkJY3J0Y19zdGF0ZS0+YWN0aXZlX3Bs YW5lcyB8PSBCSVQoYXV4LT5pZCk7CisJCURSTV9ERUJVR19LTVMoIlVzaW5nICVzIGFzIFkgcGxh bmUgZm9yICVzXG4iLCBhdXgtPmJhc2UubmFtZSwgcGxhbmUtPmJhc2UubmFtZSk7CisJfQorCisJ cmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0 IGRybV9jcnRjICpjcnRjLAogCQkJCSAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIHsKQEAgLTEwODA3LDYgKzEwODYxLDkgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2F0b21p Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWlmIChtb2RlX2NoYW5nZWQpCiAJCQly ZXQgPSBza2xfdXBkYXRlX3NjYWxlcl9jcnRjKHBpcGVfY29uZmlnKTsKIAorCQlpZiAoIXJldCkK KwkJCXJldCA9IGljbF9jaGVja19udjEyX3BsYW5lcyhkZXZfcHJpdiwgaW50ZWxfY3J0YywKKwkJ CQkJCSAgICBwaXBlX2NvbmZpZyk7CiAJCWlmICghcmV0KQogCQkJcmV0ID0gc2tsX2NoZWNrX3Bp cGVfbWF4X3BpeGVsX3JhdGUoaW50ZWxfY3J0YywKIAkJCQkJCQkgICAgcGlwZV9jb25maWcpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA4MDczYTg1ZDcxNzguLmRkOTYwMDA2NWVmZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTUzOSw2ICs1MzksMjYgQEAgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlIHsKIAkgKi8KIAlpbnQgc2NhbGVyX2lkOwogCisJLyoKKwkgKiBsaW5r ZWRfcGxhbmU6CisJICoKKwkgKiBJQ0wgcGxhbmFyIGZvcm1hdHMgcmVxdWlyZSAyIHBsYW5lcyB0 aGF0IGFyZSB1cGRhdGVkIGFzIHBhaXJzLgorCSAqIFRoaXMgbWVtYmVyIGlzIHVzZWQgdG8gbWFr ZSBzdXJlIHRoZSBvdGhlciBwbGFuZSBpcyBhbHNvIHVwZGF0ZWQKKwkgKiB3aGVuIHJlcXVpcmVk LCBhbmQgZm9yIHVwZGF0ZV9zbGF2ZSgpIHRvIGZpbmQgdGhlIGNvcnJlY3QKKwkgKiBwbGFuZV9z dGF0ZSB0byBwYXNzIGFzIGFyZ3VtZW50LgorCSAqLworCXN0cnVjdCBpbnRlbF9wbGFuZSAqbGlu a2VkX3BsYW5lOworCisJLyoKKwkgKiBzbGF2ZToKKwkgKiBJZiBzZXQgZG9uJ3QgdXBkYXRlIHVz ZSB0aGUgbGlua2VkIHBsYW5lJ3Mgc3RhdGUgZm9yIHVwZGF0aW5nCisJICogdGhpcyBwbGFuZSBk dXJpbmcgYXRvbWljIGNvbW1pdCB3aXRoIHRoZSB1cGRhdGVfc2xhdmUoKSBjYWxsYmFjay4KKwkg KgorCSAqIEl0J3MgYWxzbyB1c2VkIGJ5IHRoZSB3YXRlcm1hcmsgY29kZSB0byBpZ25vcmUgd20g Y2FsY3VsYXRpb25zIG9uCisJICogdGhpcyBwbGFuZS4gVGhleSdyZSBjYWxjdWxhdGVkIGJ5IHRo ZSBsaW5rZWQgcGxhbmUncyB3bSBjb2RlLgorCSAqLworCWJvb2wgc2xhdmU7CisKIAlzdHJ1Y3Qg ZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSBja2V5OwogfTsKIApAQCAtOTczLDYgKzk5Myw5IEBA IHN0cnVjdCBpbnRlbF9wbGFuZSB7CiAJdm9pZCAoKnVwZGF0ZV9wbGFuZSkoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSwKIAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpOworCXZvaWQgKCp1cGRhdGVfc2xhdmUpKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUs CisJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJ ICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKIAl2b2lk ICgqZGlzYWJsZV9wbGFuZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJCSAgICAgIHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKIAlib29sICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lLCBlbnVtIHBpcGUgKnBpcGUpOwpAQCAtMTMzMCw2ICsxMzUzLDI3IEBA IGhkbWlfdG9fZGlnX3BvcnQoc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkpCiAJcmV0dXJu IGNvbnRhaW5lcl9vZihpbnRlbF9oZG1pLCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0LCBoZG1p KTsKIH0KIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKgoraW50ZWxf YXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwK KwkJCQkgc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKK3sKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpyZXQgPQorCQlkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZSgmc3RhdGUtPmJhc2UsICZw bGFuZS0+YmFzZSk7CisKKwlpZiAoSVNfRVJSKHJldCkpCisJCXJldHVybiBFUlJfQ0FTVChyZXQp OworCisJcmV0dXJuIHRvX2ludGVsX3BsYW5lX3N0YXRlKHJldCk7Cit9CisKK3N0YXRpYyBpbmxp bmUgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICoKK2ludGVsX2F0b21pY19nZXRfb2xkX3BsYW5l X3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSBzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lKQoreworCXJldHVybiB0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fYXRv bWljX2dldF9uZXdfcGxhbmVfc3RhdGUoJnN0YXRlLT5iYXNlLAorCQkJCQkJCQkgICAmcGxhbmUt PmJhc2UpKTsKK30KKwogc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKgog aW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUsCiAJCQkJIHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCkBAIC0yMTQzLDYgKzIx ODcsMTUgQEAgaW50IHNrbF9wbGFuZV9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIGludCBpbnRlbF9wbGFuZV9jaGVja19zcmNfY29vcmRpbmF0ZXMoc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CiBpbnQgY2h2X3BsYW5lX2NoZWNrX3JvdGF0 aW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwogCitzdGF0 aWMgaW5saW5lIGJvb2wgaWNsX2lzX252MTJfeV9wbGFuZShlbnVtIHBsYW5lX2lkIGlkKQorewor CS8qIERvbid0IG5lZWQgdG8gZG8gYSBnZW4gY2hlY2ssIHRoZXNlIHBsYW5lcyBhcmUgb25seSBh dmFpbGFibGUgb24gZ2VuMTEgKi8KKwlpZiAoaWQgPT0gUExBTkVfU1BSSVRFNCB8fCBpZCA9PSBQ TEFORV9TUFJJVEU1KQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKwogLyog aW50ZWxfdHYuYyAqLwogdm9pZCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDFkYjliODMyODI3NS4u ZDc2ZDkzNDUyMTM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTUxMzcsMTEgKzUxMzcs MTIgQEAgc2tsX2RkYl9hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjc3RhdGUpCiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19p bnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwogCXN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKm5l d19kZGIgPSAmaW50ZWxfc3RhdGUtPndtX3Jlc3VsdHMuZGRiOwogCXN0cnVjdCBza2xfZGRiX2Fs bG9jYXRpb24gKmN1cl9kZGIgPSAmZGV2X3ByaXYtPndtLnNrbF9ody5kZGI7Ci0Jc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJ ZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJZHJtX2Zvcl9lYWNoX3BsYW5l X21hc2socGxhbmUsIGRldiwgY3N0YXRlLT5iYXNlLnBsYW5lX21hc2spIHsKKwkJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CisJCXN0cnVjdCBpbnRlbF9wbGFuZSAqbGlua2Vk OwogCQllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gdG9faW50ZWxfcGxhbmUocGxhbmUpLT5pZDsK IAogCQlpZiAoc2tsX2RkYl9lbnRyeV9lcXVhbCgmY3VyX2RkYi0+cGxhbmVbcGlwZV1bcGxhbmVf aWRdLApAQCAtNTE1Myw2ICs1MTU0LDE1IEBAIHNrbF9kZGJfYWRkX2FmZmVjdGVkX3BsYW5lcyhz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9t aWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7CiAJCWlmIChJU19FUlIocGxhbmVfc3Rh dGUpKQogCQkJcmV0dXJuIFBUUl9FUlIocGxhbmVfc3RhdGUpOworCisJCS8qIE1ha2Ugc3VyZSBs aW5rZWQgcGxhbmUgaXMgdXBkYXRlZCB0b28gKi8KKwkJbGlua2VkID0gdG9faW50ZWxfcGxhbmVf c3RhdGUocGxhbmVfc3RhdGUpLT5saW5rZWRfcGxhbmU7CisJCWlmICghbGlua2VkKQorCQkJY29u dGludWU7CisKKwkJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0 ZSwgJmxpbmtlZC0+YmFzZSk7CisJCWlmIChJU19FUlIocGxhbmVfc3RhdGUpKQorCQkJcmV0dXJu IFBUUl9FUlIocGxhbmVfc3RhdGUpOwogCX0KIAogCXJldHVybiAwOwotLSAKMi4xOC4wCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK