From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 5/6] drm/i915: Make updating pipe without modeset atomic. Date: Tue, 21 Jul 2015 13:29:01 +0200 Message-ID: <1437478142-416-6-git-send-email-maarten.lankhorst@linux.intel.com> References: <1437478142-416-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 ESMTPS id BDAF56E6FF for ; Tue, 21 Jul 2015 04:29:20 -0700 (PDT) In-Reply-To: <1437478142-416-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 SW5zdGVhZCBvZiBkb2luZyBhIGhhY2sgZHVyaW5nIHByaW1hcnkgcGxhbmUgY29tbWl0IHRoZSBz dGF0ZQppcyB1cGRhdGVkIGR1cmluZyBhdG9taWMgZXZhc2lvbi4gSXQgaGFuZGxlcyBkaWZmZXJl bmNlcyBpbgpwaXBlIHNpemUgYW5kIHRoZSBwYW5lbCBmaXR0ZXIuCgpUaGlzIGlzIGNvbnRpbnVp bmcgb24gdG9wIG9mIERhbmllbCdzIHdvcmsgdG8gbWFrZSBmYXN0ZXIKbW9kZXNldHMgYXRvbWlj LCBhbmQgbm90IHlldCBlbmFibGVkIGJ5IGRlZmF1bHQuCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA5MyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAyICsKIDMgZmls ZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdG9taWMuYwppbmRleCAwOWEwYWQ2MTEwMDIuLjU4ZDYyZmJlOTYxYiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKQEAgLTk4LDggKzk4LDggQEAgaW50ZWxfY3J0 Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlyZXR1cm4gTlVMTDsK IAogCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoY3J0YywgJmNydGNf c3RhdGUtPmJhc2UpOwotCiAJY3J0Y19zdGF0ZS0+YmFzZS5jcnRjID0gY3J0YzsKKwljcnRjX3N0 YXRlLT51cGRhdGVfcGlwZSA9IGZhbHNlOwogCiAJcmV0dXJuICZjcnRjX3N0YXRlLT5iYXNlOwog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDQ0MzMyODAzMzk4MS4uNDgw YjIzMzZjN2JhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMDgsNiAr MTA4LDkgQEAgc3RhdGljIHZvaWQgc2tsX2luaXRfc2NhbGVycyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3IKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSk7CiBzdGF0aWMgaW50IGk5eHhfZ2V0X3JlZmNsayhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgIGludCBudW1fY29ubmVjdG9ycyk7 CitzdGF0aWMgdm9pZCBza3lsYWtlX3BmaXRfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj KTsKK3N0YXRpYyB2b2lkIGlyb25sYWtlX3BmaXRfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywgYm9vbCBmb3JjZSk7CitzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2VuYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7CiBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3 X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCiB0eXBlZGVmIHN0cnVjdCB7CkBAIC0z MjY4LDE0ICszMjcxLDE3IEBAIHN0YXRpYyBib29sIGludGVsX2NydGNfaGFzX3BlbmRpbmdfZmxp cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJcmV0dXJuIHBlbmRpbmc7CiB9CiAKLXN0YXRpYyB2 b2lkIGludGVsX3VwZGF0ZV9waXBlX3NpemUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCitzdGF0 aWMgdm9pZCBpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMs CisJCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiB7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnID0KKwkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKTsK IAotCWlmICghaTkxNS5mYXN0Ym9vdCkKLQkJcmV0dXJuOworCURSTV9ERUJVR19LTVMoIlVwZGF0 aW5nIHBpcGUgc2l6ZSAlaXglaSAtPiAlaXglaVxuIiwKKwkJICAgICAgb2xkX2NydGNfc3RhdGUt PnBpcGVfc3JjX3csIG9sZF9jcnRjX3N0YXRlLT5waXBlX3NyY19oLAorCQkgICAgICBwaXBlX2Nv bmZpZy0+cGlwZV9zcmNfdywgcGlwZV9jb25maWctPnBpcGVfc3JjX2gpOwogCiAJaWYgKEhBU19E REkoZGV2KSkKIAkJaW50ZWxfc2V0X3BpcGVfY3NjKCZjcnRjLT5iYXNlKTsKQEAgLTMyODcsMjcg KzMyOTMsMjYgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX3BpcGVfc2l6ZShzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YykKIAkgKiBmYXN0Ym9vdCBjYXNlLCB3ZSdsbCBmbGlwLCBidXQgaWYgd2Ug ZG9uJ3QgdXBkYXRlIHRoZSBwaXBlc3JjIGFuZAogCSAqIHBmaXQgc3RhdGUsIHdlJ2xsIGVuZCB1 cCB3aXRoIGEgYmlnIGZiIHNjYW5uZWQgb3V0IGludG8gdGhlIHdyb25nCiAJICogc2l6ZWQgc3Vy ZmFjZS4KLQkgKgotCSAqIFRvIGZpeCB0aGlzIHByb3Blcmx5LCB3ZSBuZWVkIHRvIGhvaXN0IHRo ZSBjaGVja3MgdXAgaW50bwotCSAqIGNvbXB1dGVfbW9kZV9jaGFuZ2VzIChvciBhYm92ZSksIGNo ZWNrIHRoZSBhY3R1YWwgcGZpdCBzdGF0ZSBhbmQKLQkgKiB3aGV0aGVyIHRoZSBwbGF0Zm9ybSBh bGxvd3MgcGZpdCBkaXNhYmxlIHdpdGggcGlwZSBhY3RpdmUsIGFuZCBvbmx5Ci0JICogdGhlbiB1 cGRhdGUgdGhlIHBpcGVzcmMgYW5kIHBmaXQgc3RhdGUsIGV2ZW4gb24gdGhlIGZsaXAgcGF0aC4K IAkgKi8KIAotCWFkanVzdGVkX21vZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGU7Ci0KIAlJOTE1X1dSSVRFKFBJUEVTUkMoY3J0Yy0+cGlwZSksCi0JCSAgICgoYWRqdXN0ZWRf bW9kZS0+Y3J0Y19oZGlzcGxheSAtIDEpIDw8IDE2KSB8Ci0JCSAgIChhZGp1c3RlZF9tb2RlLT5j cnRjX3ZkaXNwbGF5IC0gMSkpOwotCWlmICghY3J0Yy0+Y29uZmlnLT5wY2hfcGZpdC5lbmFibGVk ICYmCi0JICAgIChpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSB8 fAotCSAgICAgaW50ZWxfcGlwZV9oYXNfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfRURQKSkpIHsK LQkJSTkxNV9XUklURShQRl9DVEwoY3J0Yy0+cGlwZSksIDApOwotCQlJOTE1X1dSSVRFKFBGX1dJ Tl9QT1MoY3J0Yy0+cGlwZSksIDApOwotCQlJOTE1X1dSSVRFKFBGX1dJTl9TWihjcnRjLT5waXBl KSwgMCk7CisJCSAgICgocGlwZV9jb25maWctPnBpcGVfc3JjX3cgLSAxKSA8PCAxNikgfAorCQkg ICAocGlwZV9jb25maWctPnBpcGVfc3JjX2ggLSAxKSk7CisKKwkvKiBvbiBza3lsYWtlIHRoaXMg aXMgZG9uZSBieSBkZXRhY2hpbmcgc2NhbGVycyAqLworCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA9PSA5KSB7CisJCXNrbF9kZXRhY2hfc2NhbGVycyhjcnRjKTsKKworCQlpZiAocGlwZV9jb25m aWctPnBjaF9wZml0LmVuYWJsZWQpCisJCQlza3lsYWtlX3BmaXRfZW5hYmxlKGNydGMpOworCX0K KwllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDkgJiYKKwkgICAgICAgICBIQVNfUENI X1NQTElUKGRldikpIHsKKwkJaWYgKHBpcGVfY29uZmlnLT5wY2hfcGZpdC5lbmFibGVkKQorCQkJ aXJvbmxha2VfcGZpdF9lbmFibGUoY3J0Yyk7CisJCWVsc2UgaWYgKG9sZF9jcnRjX3N0YXRlLT5w Y2hfcGZpdC5lbmFibGVkKQorCQkJaXJvbmxha2VfcGZpdF9kaXNhYmxlKGNydGMsIHRydWUpOwog CX0KLQljcnRjLT5jb25maWctPnBpcGVfc3JjX3cgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNw bGF5OwotCWNydGMtPmNvbmZpZy0+cGlwZV9zcmNfaCA9IGFkanVzdGVkX21vZGUtPmNydGNfdmRp c3BsYXk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2ZkaV9ub3JtYWxfdHJhaW4oc3RydWN0IGRy bV9jcnRjICpjcnRjKQpAQCAtNDk1Niw3ICs0OTYxLDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9j cnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBp cm9ubGFrZV9wZml0X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCitzdGF0aWMgdm9p ZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsIGJvb2wgZm9y Y2UpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CkBAIC00OTY0 LDcgKzQ5NjksNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCiAKIAkvKiBUbyBhdm9pZCB1cHNldHRpbmcgdGhlIHBvd2VyIHdlbGwg b24gaGFzd2VsbCBvbmx5IGRpc2FibGUgdGhlIHBmaXQgaWYKIAkgKiBpdCdzIGluIHVzZS4gVGhl IGh3IHN0YXRlIGNvZGUgd2lsbCBtYWtlIHN1cmUgd2UgZ2V0IHRoaXMgcmlnaHQuICovCi0JaWYg KGNydGMtPmNvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkgeworCWlmIChmb3JjZSB8fCBjcnRjLT5j b25maWctPnBjaF9wZml0LmVuYWJsZWQpIHsKIAkJSTkxNV9XUklURShQRl9DVEwocGlwZSksIDAp OwogCQlJOTE1X1dSSVRFKFBGX1dJTl9QT1MocGlwZSksIDApOwogCQlJOTE1X1dSSVRFKFBGX1dJ Tl9TWihwaXBlKSwgMCk7CkBAIC00OTkxLDcgKzQ5OTYsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFr ZV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJaW50ZWxfZGlzYWJsZV9w aXBlKGludGVsX2NydGMpOwogCi0JaXJvbmxha2VfcGZpdF9kaXNhYmxlKGludGVsX2NydGMpOwor CWlyb25sYWtlX3BmaXRfZGlzYWJsZShpbnRlbF9jcnRjLCBmYWxzZSk7CiAKIAlpZiAoaW50ZWxf Y3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpCiAJCWlyb25sYWtlX2ZkaV9kaXNhYmxlKGNy dGMpOwpAQCAtNTA1NCw3ICs1MDU5LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2Fi bGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA9PSA5 KQogCQlza3lsYWtlX3NjYWxlcl9kaXNhYmxlKGludGVsX2NydGMpOwogCWVsc2UgaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuIDwgOSkKLQkJaXJvbmxha2VfcGZpdF9kaXNhYmxlKGludGVsX2NydGMp OworCQlpcm9ubGFrZV9wZml0X2Rpc2FibGUoaW50ZWxfY3J0YywgZmFsc2UpOwogCWVsc2UKIAkJ TUlTU0lOR19DQVNFKElOVEVMX0lORk8oZGV2KS0+Z2VuKTsKIApAQCAtNTIwOCw3ICs1MjEzLDgg QEAgc3RhdGljIHZvaWQgbW9kZXNldF91cGRhdGVfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlpbnQgaTsKIAogCWZvcl9lYWNoX2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJaWYgKG5lZWRzX21vZGVzZXQoY3J0 Yy0+c3RhdGUpKQorCQlpZiAobmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkgfHwKKwkJICAgIHRv X2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT51cGRhdGVfcGlwZSkKIAkJCXB1dF9kb21h aW5zW3RvX2ludGVsX2NydGMoY3J0YyktPnBpcGVdID0KIAkJCQltb2Rlc2V0X2dldF9jcnRjX3Bv d2VyX2RvbWFpbnMoY3J0Yyk7CiAJfQpAQCAtMTIxODAsNyArMTIxODYsNiBAQCBzdGF0aWMgYm9v bCBpbnRlbF9mdXp6eV9jbG9ja19jaGVjayhpbnQgY2xvY2sxLCBpbnQgY2xvY2syKQogCQkJICAg IGJhc2UuaGVhZCkgXAogCQlpZiAobWFzayAmICgxIDw8KGludGVsX2NydGMpLT5waXBlKSkKIAot CiBzdGF0aWMgYm9vbAogaW50ZWxfY29tcGFyZV9tX24odW5zaWduZWQgaW50IG0sIHVuc2lnbmVk IGludCBuLAogCQkgIHVuc2lnbmVkIGludCBtMiwgdW5zaWduZWQgaW50IG4yLApAQCAtMTI0MDAs OCArMTI0MDUsMTYgQEAgaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfTlZTWU5DKTsKIAl9CiAKLQlQSVBFX0NP TkZfQ0hFQ0tfSShwaXBlX3NyY193KTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX3NyY19oKTsK KwlpZiAoIWFkanVzdCkgeworCQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX3NyY193KTsKKwkJUElQ RV9DT05GX0NIRUNLX0kocGlwZV9zcmNfaCk7CisKKwkJUElQRV9DT05GX0NIRUNLX0kocGNoX3Bm aXQuZW5hYmxlZCk7CisJCWlmIChjdXJyZW50X2NvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkgewor CQkJUElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQucG9zKTsKKwkJCVBJUEVfQ09ORl9DSEVDS19J KHBjaF9wZml0LnNpemUpOworCQl9CisJfQogCiAJUElQRV9DT05GX0NIRUNLX0koZ21jaF9wZml0 LmNvbnRyb2wpOwogCS8qIHBmaXQgcmF0aW9zIGFyZSBhdXRvY29tcHV0ZWQgYnkgdGhlIGh3IG9u IGdlbjQrICovCkBAIC0xMjQwOSwxMiArMTI0MjIsNiBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21w YXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCVBJUEVfQ09ORl9DSEVDS19JKGdtY2hfcGZp dC5wZ21fcmF0aW9zKTsKIAlQSVBFX0NPTkZfQ0hFQ0tfSShnbWNoX3BmaXQubHZkc19ib3JkZXJf Yml0cyk7CiAKLQlQSVBFX0NPTkZfQ0hFQ0tfSShwY2hfcGZpdC5lbmFibGVkKTsKLQlpZiAoY3Vy cmVudF9jb25maWctPnBjaF9wZml0LmVuYWJsZWQpIHsKLQkJUElQRV9DT05GX0NIRUNLX0kocGNo X3BmaXQucG9zKTsKLQkJUElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQuc2l6ZSk7Ci0JfQotCiAJ UElQRV9DT05GX0NIRUNLX0koc2NhbGVyX3N0YXRlLnNjYWxlcl9pZCk7CiAKIAkvKiBCRFcrIGRv bid0IGV4cG9zZSBhIHN5bmNocm9ub3VzIHdheSB0byByZWFkIHRoZSBzdGF0ZSAqLwpAQCAtMTI4 NzcsNyArMTI4ODQsNiBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlyZXR1cm4gcmV0OwogfQogCi0KIHN0YXRpYyBp bnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQog ewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2OwpAQCAtMTI5NjgsNiArMTI5 NzQsNyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKSwKIAkJCQkJcGlwZV9j b25maWcsIHRydWUpKSB7CiAJCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSBmYWxzZTsKKwkJ CXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSktPnVwZGF0ZV9waXBlID0gdHJ1ZTsKIAkJ fQogCiAJCWlmIChuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKSB7CkBAIC0xMzQyNiwxMCArMTM0 MzMsNiBAQCBpbnRlbF9jb21taXRfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAlpZiAoIWNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCXJldHVybjsKIAotCWlmIChzdGF0ZS0+ dmlzaWJsZSkKLQkJLyogRklYTUU6IGtpbGwgdGhpcyBmYXN0Ym9vdCBoYWNrICovCi0JCWludGVs X3VwZGF0ZV9waXBlX3NpemUoaW50ZWxfY3J0Yyk7Ci0KIAlkZXZfcHJpdi0+ZGlzcGxheS51cGRh dGVfcHJpbWFyeV9wbGFuZShjcnRjLCBmYiwgY3J0Yy0+eCwgY3J0Yy0+eSk7CiB9CiAKQEAgLTEz NDQ4LDYgKzEzNDUxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5k ZXY7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfaW50ZWxfc3RhdGUgPQorCQl0b19pbnRl bF9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKTsKKwlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rl c2V0KGNydGMtPnN0YXRlKTsKIAogCWlmIChpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX3dtX3By ZSkKIAkJaW50ZWxfdXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7CkBAIC0xMzQ1Niw3ICsxMzQ2Miwx MiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCWludGVsX3BpcGVfdXBkYXRlX3N0 YXJ0KGludGVsX2NydGMsICZpbnRlbF9jcnRjLT5zdGFydF92YmxfY291bnQpOwogCi0JaWYgKCFu ZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSAmJiBJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQor CWlmIChtb2Rlc2V0KQorCQlyZXR1cm47CisKKwlpZiAodG9faW50ZWxfY3J0Y19zdGF0ZShjcnRj LT5zdGF0ZSktPnVwZGF0ZV9waXBlKQorCQlpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoaW50ZWxf Y3J0Yywgb2xkX2ludGVsX3N0YXRlKTsKKwllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+ PSA5KQogCQlza2xfZGV0YWNoX3NjYWxlcnMoaW50ZWxfY3J0Yyk7CiB9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKaW5kZXggY2JlMjAyNTBjOTAxLi4xYWY1NzE3ZTJlOGEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCkBAIC0zMzMsNiArMzMzLDggQEAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgewogI2RlZmluZSBQSVBFX0NPTkZJR19RVUlSS19NT0RFX1NZTkNfRkxBR1MJKDE8PDApIC8q IHVucmVsaWFibGUgc3luYyBtb2RlLmZsYWdzICovCiAJdW5zaWduZWQgbG9uZyBxdWlya3M7CiAK Kwlib29sIHVwZGF0ZV9waXBlOworCiAJLyogUGlwZSBzb3VyY2Ugc2l6ZSAoaWUuIHBhbmVsIGZp dHRlciBpbnB1dCBzaXplKQogCSAqIEFsbCBwbGFuZXMgd2lsbCBiZSBwb3NpdGlvbmVkIGluc2lk ZSB0aGlzIHNwYWNlLAogCSAqIGFuZCBnZXQgY2xpcHBlZCBhdCB0aGUgZWRnZXMuICovCi0tIAoy LjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK