From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v6 3/6] drm/i915/skl: Update plane watermarks atomically during plane updates Date: Tue, 2 Aug 2016 18:37:34 -0400 Message-ID: <1470177458-31984-4-git-send-email-cpaul@redhat.com> References: <1470177458-31984-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470177458-31984-1-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Maarten Lankhorst , Matt Roper Cc: Radhakrishna Sripada , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Hans de Goede , stable@vger.kernel.org, Daniel Vetter , Lyude List-Id: intel-gfx@lists.freedesktop.org VGhhbmtzIHRvIFZpbGxlIGZvciBzdWdnZXN0aW5nIHRoaXMgYXMgYSBwb3RlbnRpYWwgc29sdXRp b24gdG8gcGlwZQp1bmRlcnJ1bnMgb24gU2t5bGFrZS4KCk9uIFNreWxha2UgYWxsIG9mIHRoZSBy ZWdpc3RlcnMgZm9yIGNvbmZpZ3VyaW5nIHBsYW5lcywgaW5jbHVkaW5nIHRoZQpyZWdpc3RlcnMg Zm9yIGNvbmZpZ3VyaW5nIHRoZWlyIHdhdGVybWFya3MsIGFyZSBkb3VibGUgYnVmZmVyZWQuIE5l dwp2YWx1ZXMgd3JpdHRlbiB0byB0aGVtIHdvbid0IHRha2UgZWZmZWN0IHVudGlsIHNhaWQgcmVn aXN0ZXJzIGFyZQoiYXJtZWQiLCB3aGljaCBpcyBkb25lIGJ5IHdyaXRpbmcgdG8gdGhlIFBMQU5F X1NVUkYgKG9yIGluIHRoZSBjYXNlIG9mCmN1cnNvciBwbGFuZXMsIHRoZSBDVVJCQVNFIHJlZ2lz dGVyKSByZWdpc3Rlci4KCldpdGggdGhpcyBpbiBtaW5kLCB1cCB1bnRpbCBub3cgd2UndmUgYmVl biB1cGRhdGluZyB3YXRlcm1hcmtzIG9uIHNrbApsaWtlIHRoaXM6CgogIG5vbi1tb2Rlc2V0IHsK ICAgLSBjYWxjdWxhdGUgKGR1cmluZyBhdG9taWMgY2hlY2sgcGhhc2UpCiAgIC0gZmluaXNoX2F0 b21pY19jb21taXQ6CiAgICAgLSBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlOgogICAgICAgIC0gaW50 ZWxfdXBkYXRlX3dhdGVybWFya3MoKQogICAgIC0ge3ZibGFuayBoYXBwZW5zOyBuZXcgd2F0ZXJt YXJrcyArIG9sZCBwbGFuZSB2YWx1ZXMgPT4gdW5kZXJydW4gfQogICAgIC0gZHJtX2F0b21pY19o ZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRjOgogICAgICAgIC0gc3RhcnQgdmJsYW5rIGV2YXNp b24KICAgICAgICAtIHdyaXRlIG5ldyBwbGFuZSByZWdpc3RlcnMKICAgICAgICAtIGVuZCB2Ymxh bmsgZXZhc2lvbgogIH0KCiAgb3IKCiAgbW9kZXNldCB7CiAgIC0gY2FsY3VsYXRlIChkdXJpbmcg YXRvbWljIGNoZWNrIHBoYXNlKQogICAtIGZpbmlzaF9hdG9taWNfY29tbWl0OgogICAgIC0gY3J0 Y19lbmFibGU6CiAgICAgICAgLSBpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygpCiAgICAgLSB7dmJs YW5rIGhhcHBlbnM7IG5ldyB3YXRlcm1hcmtzICsgb2xkIHBsYW5lIHZhbHVlcyA9PiB1bmRlcnJ1 biB9CiAgICAgLSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzX29uX2NydGM6CiAgICAg ICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgogICAgICAgIC0gd3JpdGUgbmV3IHBsYW5lIHJlZ2lz dGVycwogICAgICAgIC0gZW5kIHZibGFuayBldmFzaW9uCiAgfQoKTm93IHdlIHVwZGF0ZSB3YXRl cm1hcmtzIGF0b21pY2FsbHkgbGlrZSB0aGlzOgoKICBub24tbW9kZXNldCB7CiAgIC0gY2FsY3Vs YXRlIChkdXJpbmcgYXRvbWljIGNoZWNrIHBoYXNlKQogICAtIGZpbmlzaF9hdG9taWNfY29tbWl0 OgogICAgIC0gaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZToKICAgICAgICAtIGludGVsX3VwZGF0ZV93 YXRlcm1hcmtzKCkgKHdtIHZhbHVlcyBhcmVuJ3Qgd3JpdHRlbiB5ZXQpCiAgICAgLSBkcm1fYXRv bWljX2hlbHBlcl9jb21taXRfcGxhbmVzX29uX2NydGM6CiAgICAgICAgLSBzdGFydCB2Ymxhbmsg ZXZhc2lvbgogICAgICAgIC0gd3JpdGUgbmV3IHBsYW5lIHJlZ2lzdGVycwogICAgICAgIC0gd3Jp dGUgbmV3IHdtIHZhbHVlcwogICAgICAgIC0gZW5kIHZibGFuayBldmFzaW9uCiAgfQoKICBtb2Rl c2V0IHsKICAgLSBjYWxjdWxhdGUgKGR1cmluZyBhdG9taWMgY2hlY2sgcGhhc2UpCiAgIC0gZmlu aXNoX2F0b21pY19jb21taXQ6CiAgICAgLSBjcnRjX2VuYWJsZToKICAgICAgICAtIGludGVsX3Vw ZGF0ZV93YXRlcm1hcmtzKCkgKGFjdHVhbCB3bSB2YWx1ZXMgYXJlbid0IHdyaXR0ZW4KICAgICAg ICAgIHlldCkKICAgICAtIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0YzoK ICAgICAgICAtIHN0YXJ0IHZibGFuayBldmFzaW9uCiAgICAgICAgLSB3cml0ZSBuZXcgcGxhbmUg cmVnaXN0ZXJzCgktIHdyaXRlIG5ldyB3bSB2YWx1ZXMKICAgICAgICAtIGVuZCB2YmxhbmsgZXZh c2lvbgogIH0KClNvIHRoaXMgcGF0Y2ggbW92ZXMgYWxsIG9mIHRoZSB3YXRlcm1hcmsgd3JpdGVz IGludG8gdGhlIHJpZ2h0IHBsYWNlOwppbnNpZGUgb2YgdGhlIHZibGFuayBldmFzaW9uIHdoZXJl IHdlIHVwZGF0ZSBhbGwgb2YgdGhlIHJlZ2lzdGVycyBmb3IKZWFjaCBwbGFuZS4gV2hpbGUgdGhp cyBwYXRjaCBkb2Vzbid0IGZpeCBldmVyeXRoaW5nLCBpdCBkb2VzIGFsbG93IHVzIHRvCnVwZGF0 ZSB0aGUgd2F0ZXJtYXJrIHZhbHVlcyBpbiB0aGUgd2F5IHRoZSBoYXJkd2FyZSBleHBlY3RzIHVz IHRvLgoKQ2hhbmdlcyBzaW5jZSBvcmlnaW5hbCBwYXRjaCBzZXJpZXM6CiAtIFJlbW92ZSBtdXRl eF9sb2NrL211dGV4X3VubG9jayBzaW5jZSB0aGV5IGRvbid0IGRvIGFueXRoaW5nIGFuZCB3ZSdy ZQogICBub3QgdG91Y2hpbmcgZ2xvYmFsIHN0YXRlCiAtIE1vdmUgc2tsX3dyaXRlX2N1cnNvcl93 bS9za2xfd3JpdGVfcGxhbmVfd20gZnVuY3Rpb25zIGludG8KICAgaW50ZWxfcG0uYywgbWFrZSBl eHRlcm5hbGx5IHZpc2libGUKIC0gQWRkIHNrbF93cml0ZV9wbGFuZV93bSBjYWxscyB0byBza2xf dXBkYXRlX3BsYW5lCiAtIEZpeCBjb25kaXRpb25hbCBmb3IgZm9yIGxvb3AgaW4gc2tsX3dyaXRl X3BsYW5lX3dtIChsZXZlbCA8IG1heF9sZXZlbAogICBzaG91bGQgYmUgbGV2ZWwgPD0gbWF4X2xl dmVsKQogLSBNYWtlIGRpYWdyYW0gaW4gY29tbWl0IG1vcmUgYWNjdXJhdGUgdG8gd2hhdCdzIGFj dHVhbGx5IGhhcHBlbmluZwogLSBBZGQgRml4ZXM6CgpDaGFuZ2VzIHNpbmNlIHYxOgogLSBVc2Ug SVNfR0VOOSgpIGluc3RlYWQgb2YgSVNfU0tZTEFLRSgpIHNpbmNlIHRoZXNlIGZpeGVzIGFwcGx5 IHRvIG1vcmUKICAgdGhlbiBqdXN0IFNreWxha2UKIC0gVXBkYXRlIGRlc2NyaXB0aW9uIHRvIG1h a2UgaXQgY2xlYXIgdGhpcyBwYXRjaCBkb2Vzbid0IGZpeCBldmVyeXRoaW5nCiAtIENoZWNrIGlm IHBpcGVzIHdlcmUgYWN0dWFsbHkgY2hhbmdlZCBiZWZvcmUgd3JpdGluZyB3YXRlcm1hcmtzCgpD aGFuZ2VzIHNpbmNlIHYyOgogLSBXcml0ZSBQSVBFX1dNX0xJTkVUSU1FIGR1cmluZyB2Ymxhbmsg ZXZhc2lvbgoKQ2hhbmdlcyBzaW5jZSB2MzoKIC0gUmViYXNlIGFnYWluc3QgbmV3IFNBR1YgcGF0 Y2ggY2hhbmdlcwoKQ2hhbmdlcyBzaW5jZSB2NDoKIC0gQWRkIGEgcGFyYW1ldGVyIHRvIGNob29z ZSB3aGF0IHNrbF93bV92YWx1ZXMgc3RydWN0IHRvIHVzZSB3aGVuCiAgIHdyaXRpbmcgbmV3IHBs YW5lIHdhdGVybWFya3MKCkNoYW5nZXMgc2luY2UgdjU6CiAtIFJlbW92ZSBjdXJzb3IgZGRiIGVu dHJ5IHdyaXRlIGluIHNrbF93cml0ZV9jdXJzb3Jfd20oKSwgZGVmZXIgdW50aWwKICAgcGF0Y2gg NgogLSBXcml0ZSBXTV9MSU5FVElNRSBpbiBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdCgpCgpGaXhl czogMmQ0MWMwYjU5YWZjICgiZHJtL2k5MTUvc2tsOiBTS0wgV2F0ZXJtYXJrIENvbXB1dGF0aW9u IikKU2lnbmVkLW9mZi1ieTogTHl1ZGUgPGNwYXVsQHJlZGhhdC5jb20+CkNjOiBzdGFibGVAdmdl ci5rZXJuZWwub3JnCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+CkNjOiBS YWRoYWtyaXNobmEgU3JpcGFkYSA8cmFkaGFrcmlzaG5hLnNyaXBhZGFAaW50ZWwuY29tPgpDYzog SGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KQ2M6IE1hdHQgUm9wZXIgPG1hdHRo ZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgMTYgKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o ICAgICB8ICA1ICsrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICB8IDUz ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMgIHwgIDYgKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRp b25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK aW5kZXggMDAxYzg4NS4uNzZlZmU1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YwpAQCAtMjk4MCw2ICsyOTgwLDcgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJpbWFy eV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwogCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOworCXN0cnVjdCBza2xfd21f dmFsdWVzICp3bSA9ICZkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHM7CiAJaW50IHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwogCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXYsIHN0cmlkZTsKIAl1MzIg dGlsZV9oZWlnaHQsIHBsYW5lX29mZnNldCwgcGxhbmVfc2l6ZTsKQEAgLTMwMzEsNiArMzAzMiw5 IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCiAJaW50ZWxfY3J0Yy0+YWRqdXN0ZWRfeCA9IHhfb2Zmc2V0OwogCWludGVs X2NydGMtPmFkanVzdGVkX3kgPSB5X29mZnNldDsKIAorCWlmICh3bS0+ZGlydHlfcGlwZXMgJiBk cm1fY3J0Y19tYXNrKCZpbnRlbF9jcnRjLT5iYXNlKSkKKwkgICAgc2tsX3dyaXRlX3BsYW5lX3dt KGludGVsX2NydGMsIHdtLCAwKTsKKwogCUk5MTVfV1JJVEUoUExBTkVfQ1RMKHBpcGUsIDApLCBw bGFuZV9jdGwpOwogCUk5MTVfV1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIDApLCBwbGFuZV9vZmZz ZXQpOwogCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCAwKSwgcGxhbmVfc2l6ZSk7CkBAIC0x MDIzMSw5ICsxMDIzNSwxMyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9jdXJzb3Ioc3RydWN0 IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 CisJc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsK IAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJdWludDMyX3QgY250bCA9IDA7CiAKKwlp ZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgd20tPmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFzayhj cnRjKSkKKwkJc2tsX3dyaXRlX2N1cnNvcl93bShpbnRlbF9jcnRjLCB3bSk7CisKIAlpZiAocGxh bmVfc3RhdGUgJiYgcGxhbmVfc3RhdGUtPnZpc2libGUpIHsKIAkJY250bCA9IE1DVVJTT1JfR0FN TUFfRU5BQkxFOwogCQlzd2l0Y2ggKHBsYW5lX3N0YXRlLT5iYXNlLmNydGNfdykgewpAQCAtMTQx NTYsMTAgKzE0MTY0LDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm9sZF9pbnRlbF9zdGF0ZSA9CiAJCXRvX2ludGVsX2NydGNfc3RhdGUo b2xkX2NydGNfc3RhdGUpOwogCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQoY3J0Yy0+c3Rh dGUpOworCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAogCS8qIFBlcmZvcm0g dmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRpb24gKi8KIAlpbnRlbF9waXBlX3Vw ZGF0ZV9zdGFydChpbnRlbF9jcnRjKTsKQEAgLTE0MTc0LDggKzE0MTg0LDEyIEBAIHN0YXRpYyB2 b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCWlm ICh0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKS0+dXBkYXRlX3BpcGUpCiAJCWludGVs X3VwZGF0ZV9waXBlX2NvbmZpZyhpbnRlbF9jcnRjLCBvbGRfaW50ZWxfc3RhdGUpOwotCWVsc2Ug aWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCisJZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYp LT5nZW4gPj0gOSkgewogCQlza2xfZGV0YWNoX3NjYWxlcnMoaW50ZWxfY3J0Yyk7CisKKwkJSTkx NV9XUklURShQSVBFX1dNX0xJTkVUSU1FKHBpcGUpLAorCQkJICAgZGV2X3ByaXYtPndtLnNrbF9o dy53bV9saW5ldGltZVtwaXBlXSk7CisJfQogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9maW5pc2hf Y3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAppbmRleCA2YjA1MzJhLi4xYjQ0NGQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAt MTcxMSw2ICsxNzExLDExIEBAIHZvaWQgc2tsX2RkYl9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpk ZGIgLyogb3V0ICovKTsKIGludCBza2xfZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIGludCBza2xfZGlzYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Cit2b2lkIHNrbF93cml0ZV9jdXJzb3Jfd20oc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMsCisJCQkgY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtKTsKK3Zv aWQgc2tsX3dyaXRlX3BsYW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAorCQkJ Y29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtLAorCQkJaW50IHBsYW5lKTsKIHVpbnQzMl90 IGlsa19waXBlX3BpeGVsX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKTsKIGJvb2wgaWxrX2Rpc2FibGVfbHBfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldik7 CiBpbnQgc2FuaXRpemVfcmM2X29wdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGludCBlbmFibGVfcmM2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDdmZDI5OWUu LjJjMTJiNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMzc5OCw2ICszNzk4LDQyIEBA IHN0YXRpYyB2b2lkIHNrbF9kZGJfZW50cnlfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQlJOTE1X1dSSVRFKHJlZywgMCk7CiB9CiAKK3ZvaWQgc2tsX3dyaXRlX3Bs YW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAorCQkJY29uc3Qgc3RydWN0IHNr bF93bV92YWx1ZXMgKndtLAorCQkJaW50IHBsYW5lKQoreworCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9ICZpbnRlbF9jcnRjLT5iYXNlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5k ZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwor CWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCWVudW0gcGlw ZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKKworCWlmICghKHdtLT5kaXJ0eV9waXBlcyAmIGRy bV9jcnRjX21hc2soY3J0YykpKQorCQlyZXR1cm47CisKKwlmb3IgKGxldmVsID0gMDsgbGV2ZWwg PD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7CisJCUk5MTVfV1JJVEUoUExBTkVfV00ocGlwZSwgcGxh bmUsIGxldmVsKSwKKwkJCSAgIHdtLT5wbGFuZVtwaXBlXVtwbGFuZV1bbGV2ZWxdKTsKKwl9CisJ STkxNV9XUklURShQTEFORV9XTV9UUkFOUyhwaXBlLCBwbGFuZSksIHdtLT5wbGFuZV90cmFuc1tw aXBlXVtwbGFuZV0pOworfQorCit2b2lkIHNrbF93cml0ZV9jdXJzb3Jfd20oc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMsCisJCQkgY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtKQor eworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOworCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOworCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21h eF9sZXZlbChkZXYpOworCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKKworCWZv ciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKKwkJSTkxNV9XUklU RShDVVJfV00ocGlwZSwgbGV2ZWwpLAorCQkJICAgd20tPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNP Ul1bbGV2ZWxdKTsKKwl9CisJSTkxNV9XUklURShDVVJfV01fVFJBTlMocGlwZSksIHdtLT5wbGFu ZV90cmFuc1twaXBlXVtQTEFORV9DVVJTT1JdKTsKK30KKwogc3RhdGljIHZvaWQgc2tsX3dyaXRl X3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJY29uc3Qg c3RydWN0IHNrbF93bV92YWx1ZXMgKm5ldykKIHsKQEAgLTM4MDUsNyArMzg0MSw3IEBAIHN0YXRp YyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCiAJZm9yX2VhY2hfaW50ZWxfY3J0Yyhk ZXYsIGNydGMpIHsKLQkJaW50IGksIGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVs KGRldik7CisJCWludCBpOwogCQllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKIAkJaWYg KChuZXctPmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFzaygmY3J0Yy0+YmFzZSkpID09IDApCkBA IC0zODEzLDIxICszODQ5LDYgQEAgc3RhdGljIHZvaWQgc2tsX3dyaXRlX3dtX3ZhbHVlcyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWlmICghY3J0Yy0+YWN0aXZlKQogCQkJ Y29udGludWU7CiAKLQkJSTkxNV9XUklURShQSVBFX1dNX0xJTkVUSU1FKHBpcGUpLCBuZXctPndt X2xpbmV0aW1lW3BpcGVdKTsKLQotCQlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVs OyBsZXZlbCsrKSB7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsg aSsrKQotCQkJCUk5MTVfV1JJVEUoUExBTkVfV00ocGlwZSwgaSwgbGV2ZWwpLAotCQkJCQkgICBu ZXctPnBsYW5lW3BpcGVdW2ldW2xldmVsXSk7Ci0JCQlJOTE1X1dSSVRFKENVUl9XTShwaXBlLCBs ZXZlbCksCi0JCQkJICAgbmV3LT5wbGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdW2xldmVsXSk7Ci0J CX0KLQkJZm9yIChpID0gMDsgaSA8IGludGVsX251bV9wbGFuZXMoY3J0Yyk7IGkrKykKLQkJCUk5 MTVfV1JJVEUoUExBTkVfV01fVFJBTlMocGlwZSwgaSksCi0JCQkJICAgbmV3LT5wbGFuZV90cmFu c1twaXBlXVtpXSk7Ci0JCUk5MTVfV1JJVEUoQ1VSX1dNX1RSQU5TKHBpcGUpLAotCQkJICAgbmV3 LT5wbGFuZV90cmFuc1twaXBlXVtQTEFORV9DVVJTT1JdKTsKLQogCQlmb3IgKGkgPSAwOyBpIDwg aW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsgaSsrKSB7CiAJCQlza2xfZGRiX2VudHJ5X3dyaXRlKGRl dl9wcml2LAogCQkJCQkgICAgUExBTkVfQlVGX0NGRyhwaXBlLCBpKSwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMKaW5kZXggMGRlOTM1YS4uNTVkMTczZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMKQEAgLTIwMyw2ICsyMDMsOSBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5l ID0gdG9faW50ZWxfcGxhbmUoZHJtX3BsYW5lKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmogPSBpbnRlbF9mYl9vYmooZmIpOworCXN0cnVjdCBza2xfd21fdmFsdWVzICp3bSA9ICZkZXZf cHJpdi0+d20uc2tsX3Jlc3VsdHM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjKTsKIAljb25zdCBpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwogCWNvbnN0 IGludCBwbGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZSArIDE7CiAJdTMyIHBsYW5lX2N0bCwgc3Ry aWRlX2Rpdiwgc3RyaWRlOwpAQCAtMjM4LDYgKzI0MSw5IEBAIHNrbF91cGRhdGVfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAogCWNydGNfdy0tOwogCWNydGNfaC0tOwogCisJaWYg KHdtLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soY3J0YykpCisJICAgIHNrbF93cml0ZV9w bGFuZV93bShpbnRlbF9jcnRjLCB3bSwgcGxhbmUpOworCiAJaWYgKGtleS0+ZmxhZ3MpIHsKIAkJ STkxNV9XUklURShQTEFORV9LRVlWQUwocGlwZSwgcGxhbmUpLCBrZXktPm1pbl92YWx1ZSk7CiAJ CUk5MTVfV1JJVEUoUExBTkVfS0VZTUFYKHBpcGUsIHBsYW5lKSwga2V5LT5tYXhfdmFsdWUpOwot LSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=