From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v5 3/6] drm/i915/skl: Update plane watermarks atomically during plane updates Date: Tue, 2 Aug 2016 14:52:51 -0400 Message-ID: <1470163975-30467-4-git-send-email-cpaul@redhat.com> References: <1470163975-30467-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: <1470163975-30467-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 YW5lIHdhdGVybWFya3MKCkZpeGVzOiAyZDQxYzBiNTlhZmMgKCJkcm0vaTkxNS9za2w6IFNLTCBX YXRlcm1hcmsgQ29tcHV0YXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBMeXVkZSA8Y3BhdWxAcmVkaGF0 LmNvbT4KQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGludGVsLmNvbT4KQ2M6IFJhZGhha3Jpc2huYSBTcmlwYWRhIDxyYWRoYWtyaXNobmEuc3Jp cGFkYUBpbnRlbC5jb20+CkNjOiBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgpD YzogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgOCArKysrKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggICAgIHwgIDUgKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyAgICAgIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgNiArKysrCiA0IGZpbGVzIGNoYW5n ZWQsIDYxIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwppbmRleCA3NmJhNzlmLi43OWQxNDZjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCkBAIC0yOTgwLDYgKzI5ODAsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtl X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7 CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CisJ c3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsKIAlp bnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwg c3RyaWRlOwogCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBwbGFuZV9zaXplOwpAQCAt MzAzMSw2ICszMDMyLDkgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlpbnRlbF9jcnRjLT5hZGp1c3RlZF94ID0geF9v ZmZzZXQ7CiAJaW50ZWxfY3J0Yy0+YWRqdXN0ZWRfeSA9IHlfb2Zmc2V0OwogCisJaWYgKHdtLT5k aXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soJmludGVsX2NydGMtPmJhc2UpKQorCSAgICBza2xf d3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0Yywgd20sIDApOworCiAJSTkxNV9XUklURShQTEFORV9D VEwocGlwZSwgMCksIHBsYW5lX2N0bCk7CiAJSTkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwg MCksIHBsYW5lX29mZnNldCk7CiAJSTkxNV9XUklURShQTEFORV9TSVpFKHBpcGUsIDApLCBwbGFu ZV9zaXplKTsKQEAgLTEwMjQzLDkgKzEwMjQ3LDEzIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRl X2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUzMiBiYXNlLAogCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndt LnNrbF9yZXN1bHRzOwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAl1aW50MzJfdCBj bnRsID0gMDsKIAorCWlmIChJU19HRU45KGRldl9wcml2KSAmJiB3bS0+ZGlydHlfcGlwZXMgJiBk cm1fY3J0Y19tYXNrKGNydGMpKQorCQlza2xfd3JpdGVfY3Vyc29yX3dtKGludGVsX2NydGMsIHdt KTsKKwogCWlmIChwbGFuZV9zdGF0ZSAmJiBwbGFuZV9zdGF0ZS0+dmlzaWJsZSkgewogCQljbnRs ID0gTUNVUlNPUl9HQU1NQV9FTkFCTEU7CiAJCXN3aXRjaCAocGxhbmVfc3RhdGUtPmJhc2UuY3J0 Y193KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDZiMDUzMmEuLjFiNDQ0ZDMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xNzExLDYgKzE3MTEsMTEgQEAgdm9pZCBza2xf ZGRiX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkg IHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pOwogaW50IHNrbF9lbmFi bGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IHNrbF9kaXNh YmxlX3NhZ3Yoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgc2tsX3dy aXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKKwkJCSBjb25zdCBz dHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20pOwordm9pZCBza2xfd3JpdGVfcGxhbmVfd20oc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMsCisJCQljb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAq d20sCisJCQlpbnQgcGxhbmUpOwogdWludDMyX3QgaWxrX3BpcGVfcGl4ZWxfcmF0ZShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwogYm9vbCBpbGtfZGlzYWJsZV9s cF93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGludCBzYW5pdGl6ZV9yYzZfb3B0aW9uKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGVuYWJsZV9yYzYpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKaW5kZXggN2ZkMjk5ZS4uNTNhZGNiZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCkBAIC0zNzk4LDYgKzM3OTgsNDcgQEAgc3RhdGljIHZvaWQgc2tsX2RkYl9lbnRyeV93 cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCUk5MTVfV1JJVEUocmVn LCAwKTsKIH0KIAordm9pZCBza2xfd3JpdGVfcGxhbmVfd20oc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMsCisJCQljb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20sCisJCQlpbnQgcGxh bmUpCit7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJmludGVsX2NydGMtPmJhc2U7CisJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtf d21fbWF4X2xldmVsKGRldik7CisJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwor CisJaWYgKCEod20tPmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFzayhjcnRjKSkpCisJCXJldHVy bjsKKworCUk5MTVfV1JJVEUoUElQRV9XTV9MSU5FVElNRShwaXBlKSwgd20tPndtX2xpbmV0aW1l W3BpcGVdKTsKKworCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKysp IHsKKwkJSTkxNV9XUklURShQTEFORV9XTShwaXBlLCBwbGFuZSwgbGV2ZWwpLAorCQkJICAgd20t PnBsYW5lW3BpcGVdW3BsYW5lXVtsZXZlbF0pOworCX0KKwlJOTE1X1dSSVRFKFBMQU5FX1dNX1RS QU5TKHBpcGUsIHBsYW5lKSwgd20tPnBsYW5lX3RyYW5zW3BpcGVdW3BsYW5lXSk7Cit9CisKK3Zv aWQgc2tsX3dyaXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKKwkJ CSBjb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20pCit7CisJc3RydWN0IGRybV9jcnRjICpj cnRjID0gJmludGVsX2NydGMtPmJhc2U7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMt PmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 CisJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldik7CisJZW51bSBw aXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCisJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9 IG1heF9sZXZlbDsgbGV2ZWwrKykgeworCQlJOTE1X1dSSVRFKENVUl9XTShwaXBlLCBsZXZlbCks CisJCQkgICB3bS0+cGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXVtsZXZlbF0pOworCX0KKwlJOTE1 X1dSSVRFKENVUl9XTV9UUkFOUyhwaXBlKSwgd20tPnBsYW5lX3RyYW5zW3BpcGVdW1BMQU5FX0NV UlNPUl0pOworCisJc2tsX2RkYl9lbnRyeV93cml0ZShkZXZfcHJpdiwgQ1VSX0JVRl9DRkcocGlw ZSksCisJCQkgICAgJndtLT5kZGIucGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXSk7Cit9CisKIHN0 YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCQkJCWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICpuZXcpCiB7CkBAIC0zODA1 LDcgKzM4NDYsNyBAQCBzdGF0aWMgdm9pZCBza2xfd3JpdGVfd21fdmFsdWVzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAogCWZv cl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKSB7Ci0JCWludCBpLCBsZXZlbCwgbWF4X2xldmVs ID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCQlpbnQgaTsKIAkJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwogCiAJCWlmICgobmV3LT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soJmNy dGMtPmJhc2UpKSA9PSAwKQpAQCAtMzgxMywyMSArMzg1NCw2IEBAIHN0YXRpYyB2b2lkIHNrbF93 cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlpZiAo IWNydGMtPmFjdGl2ZSkKIAkJCWNvbnRpbnVlOwogCi0JCUk5MTVfV1JJVEUoUElQRV9XTV9MSU5F VElNRShwaXBlKSwgbmV3LT53bV9saW5ldGltZVtwaXBlXSk7Ci0KLQkJZm9yIChsZXZlbCA9IDA7 IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykgewotCQkJZm9yIChpID0gMDsgaSA8IGludGVs X251bV9wbGFuZXMoY3J0Yyk7IGkrKykKLQkJCQlJOTE1X1dSSVRFKFBMQU5FX1dNKHBpcGUsIGks IGxldmVsKSwKLQkJCQkJICAgbmV3LT5wbGFuZVtwaXBlXVtpXVtsZXZlbF0pOwotCQkJSTkxNV9X UklURShDVVJfV00ocGlwZSwgbGV2ZWwpLAotCQkJCSAgIG5ldy0+cGxhbmVbcGlwZV1bUExBTkVf Q1VSU09SXVtsZXZlbF0pOwotCQl9Ci0JCWZvciAoaSA9IDA7IGkgPCBpbnRlbF9udW1fcGxhbmVz KGNydGMpOyBpKyspCi0JCQlJOTE1X1dSSVRFKFBMQU5FX1dNX1RSQU5TKHBpcGUsIGkpLAotCQkJ CSAgIG5ldy0+cGxhbmVfdHJhbnNbcGlwZV1baV0pOwotCQlJOTE1X1dSSVRFKENVUl9XTV9UUkFO UyhwaXBlKSwKLQkJCSAgIG5ldy0+cGxhbmVfdHJhbnNbcGlwZV1bUExBTkVfQ1VSU09SXSk7Ci0K IAkJZm9yIChpID0gMDsgaSA8IGludGVsX251bV9wbGFuZXMoY3J0Yyk7IGkrKykgewogCQkJc2ts X2RkYl9lbnRyeV93cml0ZShkZXZfcHJpdiwKIAkJCQkJICAgIFBMQU5FX0JVRl9DRkcocGlwZSwg aSksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCmluZGV4IDBkZTkzNWEuLjU1ZDE3M2Yg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCkBAIC0yMDMsNiArMjAzLDkgQEAgc2ts X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCiAJc3RydWN0IGludGVs X3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKGRybV9wbGFuZSk7CiAJc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKKwlzdHJ1Y3Qgc2tsX3dt X3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzOworCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IGNydGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJY29uc3QgaW50IHBpcGUgPSBpbnRlbF9w bGFuZS0+cGlwZTsKIAljb25zdCBpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmUgKyAxOwog CXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXYsIHN0cmlkZTsKQEAgLTIzOCw2ICsyNDEsOSBAQCBz a2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKIAljcnRjX3ctLTsK IAljcnRjX2gtLTsKIAorCWlmICh3bS0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKGNydGMp KQorCSAgICBza2xfd3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0Yywgd20sIHBsYW5lKTsKKwogCWlm IChrZXktPmZsYWdzKSB7CiAJCUk5MTVfV1JJVEUoUExBTkVfS0VZVkFMKHBpcGUsIHBsYW5lKSwg a2V5LT5taW5fdmFsdWUpOwogCQlJOTE1X1dSSVRFKFBMQU5FX0tFWU1BWChwaXBlLCBwbGFuZSks IGtleS0+bWF4X3ZhbHVlKTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK