From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v12 4/7] drm/i915/skl: Update plane watermarks atomically during plane updates Date: Wed, 17 Aug 2016 15:55:56 -0400 Message-ID: <1471463761-26796-5-git-send-email-cpaul@redhat.com> References: <1471463761-26796-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: <1471463761-26796-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: dri-devel@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 NgogLSBXcml0ZSBXTV9MSU5FVElNRSBpbiBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdCgpCgpDaGFu Z2VzIHNpbmNlIHY2OgogLSBSZW1vdmUgcmVkdW5kYW50IGRpcnR5X3BpcGVzIGNoZWNrIGluIHNr bF93cml0ZV9wbGFuZV93bSAod2UgY2hlY2sKICAgdGhpcyBpbiBhbGwgcGxhY2VzIHdoZXJlIHdl IGNhbGwgdGhpcyBmdW5jdGlvbiwgYW5kIGl0IHdhcyBzdXBwb3NlZAogICB0byBoYXZlIGJlZW4g cmVtb3ZlZCBlYXJsaWVyIGFueXdheSkKIC0gSW4gaTl4eF91cGRhdGVfY3Vyc29yKCksIHVzZSBk ZXZfcHJpdi0+aW5mby5nZW4gPj0gOSBpbnN0ZWFkIG9mCiAgIElTX0dFTjkoZGV2X3ByaXYpLiBX ZSBkbyB0aGlzIGV2ZXJ5d2hlcmUgZWxzZSBhbmQgSSdkIGltYWdpbmUgdGhpcwogICBuZWVkcyB0 byBiZSBkb25lIGZvciBnZW4xMCBhcyB3ZWxsCgpDaGFuZ2VzIHNpbmNlIHY3OgogLSBGaXggcmVi YXNlIGZhaWwgKHVudXNlZCB2YXJpYWJsZSBvYmopCiAtIE1ha2Ugc3RydWN0IHNrbF93bV92YWx1 ZXMgKndtIGNvbnN0CiAtIEZpeCBpbmRlbnRpbmcKIC0gVXNlIElOVEVMX0dFTigpIGluc3RlYWQg b2YgZGV2X3ByaXYtPmluZm8uZ2VuCgpGaXhlczogMmQ0MWMwYjU5YWZjICgiZHJtL2k5MTUvc2ts OiBTS0wgV2F0ZXJtYXJrIENvbXB1dGF0aW9uIikKU2lnbmVkLW9mZi1ieTogTHl1ZGUgPGNwYXVs QHJlZGhhdC5jb20+ClJldmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50 ZWwuY29tPgpDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwpDYzogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52 ZXR0ZXJAaW50ZWwuY29tPgpDYzogUmFkaGFrcmlzaG5hIFNyaXBhZGEgPHJhZGhha3Jpc2huYS5z cmlwYWRhQGludGVsLmNvbT4KQ2M6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTYgKysrKysrKysr KystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgNSArKysrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCA1MCArKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8 ICA2ICsrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBjYTRiODNmLi5jYTQy OWI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0zMzkwLDYgKzMzOTAs NyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBs YW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSA9ICZk ZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHM7CiAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwog CXUzMiBwbGFuZV9jdGw7CiAJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJh c2Uucm90YXRpb247CkBAIC0zNDIzLDYgKzM0MjQsOSBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3Vw ZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWludGVsX2NydGMt PmFkanVzdGVkX3ggPSBzcmNfeDsKIAlpbnRlbF9jcnRjLT5hZGp1c3RlZF95ID0gc3JjX3k7CiAK KwlpZiAod20tPmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFzaygmaW50ZWxfY3J0Yy0+YmFzZSkp CisJCXNrbF93cml0ZV9wbGFuZV93bShpbnRlbF9jcnRjLCB3bSwgMCk7CisKIAlJOTE1X1dSSVRF KFBMQU5FX0NUTChwaXBlLCAwKSwgcGxhbmVfY3RsKTsKIAlJOTE1X1dSSVRFKFBMQU5FX09GRlNF VChwaXBlLCAwKSwgKHNyY195IDw8IDE2KSB8IHNyY194KTsKIAlJOTE1X1dSSVRFKFBMQU5FX1NU UklERShwaXBlLCAwKSwgc3RyaWRlKTsKQEAgLTEwNzA1LDkgKzEwNzA5LDEzIEBAIHN0YXRpYyB2 b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUzMiBiYXNlLAog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwljb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVl cyAqd20gPSAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzOwogCWludCBwaXBlID0gaW50ZWxfY3J0 Yy0+cGlwZTsKIAl1aW50MzJfdCBjbnRsID0gMDsKIAorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkgJiYgd20tPmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFzayhjcnRjKSkKKwkJc2tsX3dy aXRlX2N1cnNvcl93bShpbnRlbF9jcnRjLCB3bSk7CisKIAlpZiAocGxhbmVfc3RhdGUgJiYgcGxh bmVfc3RhdGUtPmJhc2UudmlzaWJsZSkgewogCQljbnRsID0gTUNVUlNPUl9HQU1NQV9FTkFCTEU7 CiAJCXN3aXRjaCAocGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193KSB7CkBAIC0xNDYyNywxMCArMTQ2 MzUsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9j cnRjICpjcnRjLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqb2xkX2ludGVsX3N0YXRlID0KIAkJdG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19z dGF0ZSk7CiAJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSk7CisJZW51 bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJLyogUGVyZm9ybSB2YmxhbmsgZXZh c2lvbiBhcm91bmQgY29tbWl0IG9wZXJhdGlvbiAqLwogCWludGVsX3BpcGVfdXBkYXRlX3N0YXJ0 KGludGVsX2NydGMpOwpAQCAtMTQ2NDUsOCArMTQ2NTUsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxf YmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJaWYgKHRvX2ludGVs X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT51cGRhdGVfcGlwZSkKIAkJaW50ZWxfdXBkYXRlX3Bp cGVfY29uZmlnKGludGVsX2NydGMsIG9sZF9pbnRlbF9zdGF0ZSk7Ci0JZWxzZSBpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gOSkKKwllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5 KSB7CiAJCXNrbF9kZXRhY2hfc2NhbGVycyhpbnRlbF9jcnRjKTsKKworCQlJOTE1X1dSSVRFKFBJ UEVfV01fTElORVRJTUUocGlwZSksCisJCQkgICBkZXZfcHJpdi0+d20uc2tsX2h3LndtX2xpbmV0 aW1lW3BpcGVdKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1p dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGQy MDNjNzcuLjFkMzFjY2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xNzI1LDYgKzE3 MjUsMTEgQEAgdm9pZCBza2xfZGRiX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiBib29sIHNrbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKTsKIGludCBza2xfZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIGludCBza2xfZGlzYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Cit2b2lkIHNrbF93cml0ZV9jdXJzb3Jfd20oc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMsCisJCQkgY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtKTsKK3Zv aWQgc2tsX3dyaXRlX3BsYW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAorCQkJ Y29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtLAorCQkJaW50IHBsYW5lKTsKIHVpbnQzMl90 IGlsa19waXBlX3BpeGVsX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKTsKIGJvb2wgaWxrX2Rpc2FibGVfbHBfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldik7 CiBpbnQgc2FuaXRpemVfcmM2X29wdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGludCBlbmFibGVfcmM2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDVjOWNmNjgu Ljg0OWYwMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMzgzOCw2ICszODM4LDM5IEBA IHN0YXRpYyB2b2lkIHNrbF9kZGJfZW50cnlfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQlJOTE1X1dSSVRFKHJlZywgMCk7CiB9CiAKK3ZvaWQgc2tsX3dyaXRlX3Bs YW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAorCQkJY29uc3Qgc3RydWN0IHNr bF93bV92YWx1ZXMgKndtLAorCQkJaW50IHBsYW5lKQoreworCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9ICZpbnRlbF9jcnRjLT5iYXNlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5k ZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwor CWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCWVudW0gcGlw ZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKKworCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBt YXhfbGV2ZWw7IGxldmVsKyspIHsKKwkJSTkxNV9XUklURShQTEFORV9XTShwaXBlLCBwbGFuZSwg bGV2ZWwpLAorCQkJICAgd20tPnBsYW5lW3BpcGVdW3BsYW5lXVtsZXZlbF0pOworCX0KKwlJOTE1 X1dSSVRFKFBMQU5FX1dNX1RSQU5TKHBpcGUsIHBsYW5lKSwgd20tPnBsYW5lX3RyYW5zW3BpcGVd W3BsYW5lXSk7Cit9CisKK3ZvaWQgc2tsX3dyaXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YywKKwkJCSBjb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20pCit7CisJ c3RydWN0IGRybV9jcnRjICpjcnRjID0gJmludGVsX2NydGMtPmJhc2U7CisJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CisJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xl dmVsKGRldik7CisJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCisJZm9yIChs ZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykgeworCQlJOTE1X1dSSVRFKENV Ul9XTShwaXBlLCBsZXZlbCksCisJCQkgICB3bS0+cGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXVts ZXZlbF0pOworCX0KKwlJOTE1X1dSSVRFKENVUl9XTV9UUkFOUyhwaXBlKSwgd20tPnBsYW5lX3Ry YW5zW3BpcGVdW1BMQU5FX0NVUlNPUl0pOworfQorCiBzdGF0aWMgdm9pZCBza2xfd3JpdGVfd21f dmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQljb25zdCBzdHJ1 Y3Qgc2tsX3dtX3ZhbHVlcyAqbmV3KQogewpAQCAtMzg0NSw3ICszODc4LDcgQEAgc3RhdGljIHZv aWQgc2tsX3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJc3RydWN0IGludGVsX2NydGMgKmNydGM7CiAKIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwg Y3J0YykgewotCQlpbnQgaSwgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2 KTsKKwkJaW50IGk7CiAJCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAogCQlpZiAoKG5l dy0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKCZjcnRjLT5iYXNlKSkgPT0gMCkKQEAgLTM4 NTMsMjEgKzM4ODYsNiBAQCBzdGF0aWMgdm9pZCBza2xfd3JpdGVfd21fdmFsdWVzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJaWYgKCFjcnRjLT5hY3RpdmUpCiAJCQljb250 aW51ZTsKIAotCQlJOTE1X1dSSVRFKFBJUEVfV01fTElORVRJTUUocGlwZSksIG5ldy0+d21fbGlu ZXRpbWVbcGlwZV0pOwotCi0JCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxl dmVsKyspIHsKLQkJCWZvciAoaSA9IDA7IGkgPCBpbnRlbF9udW1fcGxhbmVzKGNydGMpOyBpKysp Ci0JCQkJSTkxNV9XUklURShQTEFORV9XTShwaXBlLCBpLCBsZXZlbCksCi0JCQkJCSAgIG5ldy0+ cGxhbmVbcGlwZV1baV1bbGV2ZWxdKTsKLQkJCUk5MTVfV1JJVEUoQ1VSX1dNKHBpcGUsIGxldmVs KSwKLQkJCQkgICBuZXctPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl1bbGV2ZWxdKTsKLQkJfQot CQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsgaSsrKQotCQkJSTkxNV9X UklURShQTEFORV9XTV9UUkFOUyhwaXBlLCBpKSwKLQkJCQkgICBuZXctPnBsYW5lX3RyYW5zW3Bp cGVdW2ldKTsKLQkJSTkxNV9XUklURShDVVJfV01fVFJBTlMocGlwZSksCi0JCQkgICBuZXctPnBs YW5lX3RyYW5zW3BpcGVdW1BMQU5FX0NVUlNPUl0pOwotCiAJCWZvciAoaSA9IDA7IGkgPCBpbnRl bF9udW1fcGxhbmVzKGNydGMpOyBpKyspIHsKIAkJCXNrbF9kZGJfZW50cnlfd3JpdGUoZGV2X3By aXYsCiAJCQkJCSAgICBQTEFORV9CVUZfQ0ZHKHBpcGUsIGkpLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYwppbmRleCAzNjY5MDBkLi4wMTZlMTBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYwpAQCAtMjAzLDYgKzIwMyw5IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqZHJtX3BsYW5lLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50 ZWxfcGxhbmUoZHJtX3BsYW5lKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSA9ICZkZXZf cHJpdi0+d20uc2tsX3Jlc3VsdHM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjKTsKIAljb25zdCBpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwogCWNvbnN0 IGludCBwbGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZSArIDE7CiAJdTMyIHBsYW5lX2N0bDsKQEAg LTIyOCw2ICsyMzEsOSBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9w bGFuZSwKIAogCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX3JvdGF0aW9uKHJvdGF0aW9uKTsK IAorCWlmICh3bS0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKGNydGMpKQorCQlza2xfd3Jp dGVfcGxhbmVfd20oaW50ZWxfY3J0Yywgd20sIHBsYW5lKTsKKwogCWlmIChrZXktPmZsYWdzKSB7 CiAJCUk5MTVfV1JJVEUoUExBTkVfS0VZVkFMKHBpcGUsIHBsYW5lKSwga2V5LT5taW5fdmFsdWUp OwogCQlJOTE1X1dSSVRFKFBMQU5FX0tFWU1BWChwaXBlLCBwbGFuZSksIGtleS0+bWF4X3ZhbHVl KTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK