From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 4/5] drm/i915: Make updating pipe without modeset atomic. Date: Thu, 27 Aug 2015 15:44:05 +0200 Message-ID: <1440683046-27110-5-git-send-email-maarten.lankhorst@linux.intel.com> References: <1440683046-27110-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 087476E80D for ; Thu, 27 Aug 2015 06:44:15 -0700 (PDT) In-Reply-To: <1440683046-27110-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 cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTEwICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDIgKwogMyBm aWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pYy5jCmluZGV4IDkzMzZlODAzMDk4MC4uODI4N2I4MTI4N2EwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwpAQCAtOTgsOCArOTgsOCBAQCBpbnRlbF9j cnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCXJldHVybiBOVUxM OwogCiAJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmY3J0 Y19zdGF0ZS0+YmFzZSk7Ci0KIAljcnRjX3N0YXRlLT5iYXNlLmNydGMgPSBjcnRjOworCWNydGNf c3RhdGUtPnVwZGF0ZV9waXBlID0gZmFsc2U7CiAKIAlyZXR1cm4gJmNydGNfc3RhdGUtPmJhc2U7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggN2I1ZGZlMmY3YjJkLi5k Mzg3NGE2OGNkYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEwOCw2 ICsxMDgsOSBAQCBzdGF0aWMgdm9pZCBza2xfaW5pdF9zY2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcgogCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKTsKIHN0YXRpYyBpbnQgaTl4eF9nZXRfcmVmY2xrKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgaW50IG51bV9jb25uZWN0b3Jz KTsKK3N0YXRpYyB2b2lkIHNreWxha2VfcGZpdF9lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNy dGMpOworc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLCBib29sIGZvcmNlKTsKK3N0YXRpYyB2b2lkIGlyb25sYWtlX3BmaXRfZW5hYmxlKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfc2V0dXBf aHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKIHR5cGVkZWYgc3RydWN0IHsKQEAg LTMzMDUsMTQgKzMzMDgsMjAgQEAgc3RhdGljIGJvb2wgaW50ZWxfY3J0Y19oYXNfcGVuZGluZ19m bGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlyZXR1cm4gcGVuZGluZzsKIH0KIAotc3RhdGlj IHZvaWQgaW50ZWxfdXBkYXRlX3BpcGVfc2l6ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3N0 YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKKwkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcgPQorCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUp OwogCi0JaWYgKCFpOTE1LmZhc3Rib290KQotCQlyZXR1cm47CisJLyogZHJtX2F0b21pY19oZWxw ZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlIG1pZ2h0IG5vdCBiZSBjYWxsZWQuICovCisJ Y3J0Yy0+YmFzZS5tb2RlID0gY3J0Yy0+YmFzZS5zdGF0ZS0+bW9kZTsKKworCURSTV9ERUJVR19L TVMoIlVwZGF0aW5nIHBpcGUgc2l6ZSAlaXglaSAtPiAlaXglaVxuIiwKKwkJICAgICAgb2xkX2Ny dGNfc3RhdGUtPnBpcGVfc3JjX3csIG9sZF9jcnRjX3N0YXRlLT5waXBlX3NyY19oLAorCQkgICAg ICBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdywgcGlwZV9jb25maWctPnBpcGVfc3JjX2gpOwogCiAJ aWYgKEhBU19EREkoZGV2KSkKIAkJaW50ZWxfc2V0X3BpcGVfY3NjKCZjcnRjLT5iYXNlKTsKQEAg LTMzMjQsMjcgKzMzMzMsMjYgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX3BpcGVfc2l6ZShz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkgKiBmYXN0Ym9vdCBjYXNlLCB3ZSdsbCBmbGlwLCBi dXQgaWYgd2UgZG9uJ3QgdXBkYXRlIHRoZSBwaXBlc3JjIGFuZAogCSAqIHBmaXQgc3RhdGUsIHdl J2xsIGVuZCB1cCB3aXRoIGEgYmlnIGZiIHNjYW5uZWQgb3V0IGludG8gdGhlIHdyb25nCiAJICog c2l6ZWQgc3VyZmFjZS4KLQkgKgotCSAqIFRvIGZpeCB0aGlzIHByb3Blcmx5LCB3ZSBuZWVkIHRv IGhvaXN0IHRoZSBjaGVja3MgdXAgaW50bwotCSAqIGNvbXB1dGVfbW9kZV9jaGFuZ2VzIChvciBh Ym92ZSksIGNoZWNrIHRoZSBhY3R1YWwgcGZpdCBzdGF0ZSBhbmQKLQkgKiB3aGV0aGVyIHRoZSBw bGF0Zm9ybSBhbGxvd3MgcGZpdCBkaXNhYmxlIHdpdGggcGlwZSBhY3RpdmUsIGFuZCBvbmx5Ci0J ICogdGhlbiB1cGRhdGUgdGhlIHBpcGVzcmMgYW5kIHBmaXQgc3RhdGUsIGV2ZW4gb24gdGhlIGZs aXAgcGF0aC4KIAkgKi8KIAotCWFkanVzdGVkX21vZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGU7Ci0KIAlJOTE1X1dSSVRFKFBJUEVTUkMoY3J0Yy0+cGlwZSksCi0JCSAgICgo YWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSAtIDEpIDw8IDE2KSB8Ci0JCSAgIChhZGp1c3Rl ZF9tb2RlLT5jcnRjX3ZkaXNwbGF5IC0gMSkpOwotCWlmICghY3J0Yy0+Y29uZmlnLT5wY2hfcGZp dC5lbmFibGVkICYmCi0JICAgIChpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09VVFBV VF9MVkRTKSB8fAotCSAgICAgaW50ZWxfcGlwZV9oYXNfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRf RURQKSkpIHsKLQkJSTkxNV9XUklURShQRl9DVEwoY3J0Yy0+cGlwZSksIDApOwotCQlJOTE1X1dS SVRFKFBGX1dJTl9QT1MoY3J0Yy0+cGlwZSksIDApOwotCQlJOTE1X1dSSVRFKFBGX1dJTl9TWihj cnRjLT5waXBlKSwgMCk7CisJCSAgICgocGlwZV9jb25maWctPnBpcGVfc3JjX3cgLSAxKSA8PCAx NikgfAorCQkgICAocGlwZV9jb25maWctPnBpcGVfc3JjX2ggLSAxKSk7CisKKwkvKiBvbiBza3ls YWtlIHRoaXMgaXMgZG9uZSBieSBkZXRhY2hpbmcgc2NhbGVycyAqLworCWlmIChJTlRFTF9JTkZP KGRldiktPmdlbiA9PSA5KSB7CisJCXNrbF9kZXRhY2hfc2NhbGVycyhjcnRjKTsKKworCQlpZiAo cGlwZV9jb25maWctPnBjaF9wZml0LmVuYWJsZWQpCisJCQlza3lsYWtlX3BmaXRfZW5hYmxlKGNy dGMpOworCX0KKwllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDkgJiYKKwkgICAgICAg ICBIQVNfUENIX1NQTElUKGRldikpIHsKKwkJaWYgKHBpcGVfY29uZmlnLT5wY2hfcGZpdC5lbmFi bGVkKQorCQkJaXJvbmxha2VfcGZpdF9lbmFibGUoY3J0Yyk7CisJCWVsc2UgaWYgKG9sZF9jcnRj X3N0YXRlLT5wY2hfcGZpdC5lbmFibGVkKQorCQkJaXJvbmxha2VfcGZpdF9kaXNhYmxlKGNydGMs IHRydWUpOwogCX0KLQljcnRjLT5jb25maWctPnBpcGVfc3JjX3cgPSBhZGp1c3RlZF9tb2RlLT5j cnRjX2hkaXNwbGF5OwotCWNydGMtPmNvbmZpZy0+cGlwZV9zcmNfaCA9IGFkanVzdGVkX21vZGUt PmNydGNfdmRpc3BsYXk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2ZkaV9ub3JtYWxfdHJhaW4o c3RydWN0IGRybV9jcnRjICpjcnRjKQpAQCAtNTAwMyw3ICs1MDExLDcgQEAgc3RhdGljIHZvaWQg aGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJfQogfQogCi1zdGF0 aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCitz dGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMs IGJvb2wgZm9yY2UpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2 OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 CkBAIC01MDExLDcgKzUwMTksNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUo c3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIAkvKiBUbyBhdm9pZCB1cHNldHRpbmcgdGhlIHBv d2VyIHdlbGwgb24gaGFzd2VsbCBvbmx5IGRpc2FibGUgdGhlIHBmaXQgaWYKIAkgKiBpdCdzIGlu IHVzZS4gVGhlIGh3IHN0YXRlIGNvZGUgd2lsbCBtYWtlIHN1cmUgd2UgZ2V0IHRoaXMgcmlnaHQu ICovCi0JaWYgKGNydGMtPmNvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkgeworCWlmIChmb3JjZSB8 fCBjcnRjLT5jb25maWctPnBjaF9wZml0LmVuYWJsZWQpIHsKIAkJSTkxNV9XUklURShQRl9DVEwo cGlwZSksIDApOwogCQlJOTE1X1dSSVRFKFBGX1dJTl9QT1MocGlwZSksIDApOwogCQlJOTE1X1dS SVRFKFBGX1dJTl9TWihwaXBlKSwgMCk7CkBAIC01MDM4LDcgKzUwNDYsNyBAQCBzdGF0aWMgdm9p ZCBpcm9ubGFrZV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJaW50ZWxf ZGlzYWJsZV9waXBlKGludGVsX2NydGMpOwogCi0JaXJvbmxha2VfcGZpdF9kaXNhYmxlKGludGVs X2NydGMpOworCWlyb25sYWtlX3BmaXRfZGlzYWJsZShpbnRlbF9jcnRjLCBmYWxzZSk7CiAKIAlp ZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpCiAJCWlyb25sYWtlX2ZkaV9k aXNhYmxlKGNydGMpOwpAQCAtNTEwMSw3ICs1MTA5LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9j cnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA9PSA5KQogCQlza3lsYWtlX3NjYWxlcl9kaXNhYmxlKGludGVsX2NydGMpOwogCWVsc2Ug aWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgOSkKLQkJaXJvbmxha2VfcGZpdF9kaXNhYmxlKGlu dGVsX2NydGMpOworCQlpcm9ubGFrZV9wZml0X2Rpc2FibGUoaW50ZWxfY3J0YywgZmFsc2UpOwog CWVsc2UKIAkJTUlTU0lOR19DQVNFKElOVEVMX0lORk8oZGV2KS0+Z2VuKTsKIApAQCAtMTIyNDYs NyArMTIyNTQsNiBAQCBzdGF0aWMgYm9vbCBpbnRlbF9mdXp6eV9jbG9ja19jaGVjayhpbnQgY2xv Y2sxLCBpbnQgY2xvY2syKQogCQkJICAgIGJhc2UuaGVhZCkgXAogCQlpZiAobWFzayAmICgxIDw8 KGludGVsX2NydGMpLT5waXBlKSkKIAotCiBzdGF0aWMgYm9vbAogaW50ZWxfY29tcGFyZV9tX24o dW5zaWduZWQgaW50IG0sIHVuc2lnbmVkIGludCBuLAogCQkgIHVuc2lnbmVkIGludCBtMiwgdW5z aWduZWQgaW50IG4yLApAQCAtMTI0NjcsOCArMTI0NzQsMTYgQEAgaW50ZWxfcGlwZV9jb25maWdf Y29tcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdf TlZTWU5DKTsKIAl9CiAKLQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX3NyY193KTsKLQlQSVBFX0NP TkZfQ0hFQ0tfSShwaXBlX3NyY19oKTsKKwlpZiAoIWFkanVzdCkgeworCQlQSVBFX0NPTkZfQ0hF Q0tfSShwaXBlX3NyY193KTsKKwkJUElQRV9DT05GX0NIRUNLX0kocGlwZV9zcmNfaCk7CisKKwkJ UElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQuZW5hYmxlZCk7CisJCWlmIChjdXJyZW50X2NvbmZp Zy0+cGNoX3BmaXQuZW5hYmxlZCkgeworCQkJUElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQucG9z KTsKKwkJCVBJUEVfQ09ORl9DSEVDS19JKHBjaF9wZml0LnNpemUpOworCQl9CisJfQogCiAJUElQ RV9DT05GX0NIRUNLX0koZ21jaF9wZml0LmNvbnRyb2wpOwogCS8qIHBmaXQgcmF0aW9zIGFyZSBh dXRvY29tcHV0ZWQgYnkgdGhlIGh3IG9uIGdlbjQrICovCkBAIC0xMjQ3NiwxMiArMTI0OTEsNiBA QCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCVBJ UEVfQ09ORl9DSEVDS19JKGdtY2hfcGZpdC5wZ21fcmF0aW9zKTsKIAlQSVBFX0NPTkZfQ0hFQ0tf SShnbWNoX3BmaXQubHZkc19ib3JkZXJfYml0cyk7CiAKLQlQSVBFX0NPTkZfQ0hFQ0tfSShwY2hf cGZpdC5lbmFibGVkKTsKLQlpZiAoY3VycmVudF9jb25maWctPnBjaF9wZml0LmVuYWJsZWQpIHsK LQkJUElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQucG9zKTsKLQkJUElQRV9DT05GX0NIRUNLX0ko cGNoX3BmaXQuc2l6ZSk7Ci0JfQotCiAJUElQRV9DT05GX0NIRUNLX0koc2NhbGVyX3N0YXRlLnNj YWxlcl9pZCk7CiAKIAkvKiBCRFcrIGRvbid0IGV4cG9zZSBhIHN5bmNocm9ub3VzIHdheSB0byBy ZWFkIHRoZSBzdGF0ZSAqLwpAQCAtMTI2NDQsNyArMTI2NTMsOCBAQCBjaGVja19jcnRjX3N0YXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3Rh dGUpCiAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywgKnN3X2NvbmZpZzsK IAkJYm9vbCBhY3RpdmU7CiAKLQkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSkKKwkJ aWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSAmJgorCQkgICAgIXRvX2ludGVsX2NydGNf c3RhdGUoY3J0Yy0+c3RhdGUpLT51cGRhdGVfcGlwZSkKIAkJCWNvbnRpbnVlOwogCiAJCV9fZHJt X2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKGNydGMsIG9sZF9jcnRjX3N0YXRlKTsK QEAgLTEyOTQwLDcgKzEyOTUwLDYgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2FsbF9waXBl cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIHJldDsKIH0KIAotCiBz dGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKQEAgLTEzMDMx LDYgKzEzMDQwLDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAkJCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSksCiAJCQkJ CXBpcGVfY29uZmlnLCB0cnVlKSkgewogCQkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gZmFs c2U7CisJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLT51cGRhdGVfcGlwZSA9IHRy dWU7CiAJCX0KIAogCQlpZiAobmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkgewpAQCAtMTMxMjgs MTYgKzEzMTM4LDMwIEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNf c3RhdGUsIGkpIHsKIAkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOwogCQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKTsK KwkJYm9vbCB1cGRhdGVfcGlwZSA9ICFtb2Rlc2V0ICYmCisJCQl0b19pbnRlbF9jcnRjX3N0YXRl KGNydGMtPnN0YXRlKS0+dXBkYXRlX3BpcGU7CisJCXVuc2lnbmVkIGxvbmcgcHV0X2RvbWFpbnMg PSAwOwogCiAJCWlmIChtb2Rlc2V0ICYmIGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKIAkJCXVwZGF0 ZV9zY2FubGluZV9vZmZzZXQodG9faW50ZWxfY3J0YyhjcnRjKSk7CiAJCQlkZXZfcHJpdi0+ZGlz cGxheS5jcnRjX2VuYWJsZShjcnRjKTsKIAkJfQogCisJCWlmICh1cGRhdGVfcGlwZSkgeworCQkJ cHV0X2RvbWFpbnMgPSBtb2Rlc2V0X2dldF9jcnRjX3Bvd2VyX2RvbWFpbnMoY3J0Yyk7CisKKwkJ CS8qIG1ha2Ugc3VyZSBpbnRlbF9tb2Rlc2V0X2NoZWNrX3N0YXRlIHJ1bnMgKi8KKwkJCWFueV9t cyA9IHRydWU7CisJCX0KKwogCQlpZiAoIW1vZGVzZXQpCiAJCQlpbnRlbF9wcmVfcGxhbmVfdXBk YXRlKGludGVsX2NydGMpOwogCiAJCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXNfb25f Y3J0YyhjcnRjX3N0YXRlKTsKKworCQlpZiAocHV0X2RvbWFpbnMpCisJCQltb2Rlc2V0X3B1dF9w b3dlcl9kb21haW5zKGRldl9wcml2LCBwdXRfZG9tYWlucyk7CisKIAkJaW50ZWxfcG9zdF9wbGFu ZV91cGRhdGUoaW50ZWxfY3J0Yyk7CiAJfQogCkBAIC0xMzQ1NCwxMCArMTM0NzgsNiBAQCBpbnRl bF9jb21taXRfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlpZiAoIWNy dGMtPnN0YXRlLT5hY3RpdmUpCiAJCXJldHVybjsKIAotCWlmIChzdGF0ZS0+dmlzaWJsZSkKLQkJ LyogRklYTUU6IGtpbGwgdGhpcyBmYXN0Ym9vdCBoYWNrICovCi0JCWludGVsX3VwZGF0ZV9waXBl X3NpemUoaW50ZWxfY3J0Yyk7Ci0KIAlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfcHJpbWFyeV9w bGFuZShjcnRjLCBmYiwgY3J0Yy0+eCwgY3J0Yy0+eSk7CiB9CiAKQEAgLTEzNDc2LDYgKzEzNDk2 LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfaW50ZWxfc3RhdGUgPQorCQl0b19pbnRlbF9jcnRjX3N0YXRl KG9sZF9jcnRjX3N0YXRlKTsKKwlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KGNydGMtPnN0 YXRlKTsKIAogCWlmIChpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX3dtX3ByZSkKIAkJaW50ZWxf dXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7CkBAIC0xMzQ4NCw3ICsxMzUwNywxMiBAQCBzdGF0aWMg dm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaWYg KGNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCWludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KGludGVsX2Ny dGMsICZpbnRlbF9jcnRjLT5zdGFydF92YmxfY291bnQpOwogCi0JaWYgKCFuZWVkc19tb2Rlc2V0 KGNydGMtPnN0YXRlKSAmJiBJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQorCWlmIChtb2Rlc2V0 KQorCQlyZXR1cm47CisKKwlpZiAodG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSktPnVw ZGF0ZV9waXBlKQorCQlpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoaW50ZWxfY3J0Yywgb2xkX2lu dGVsX3N0YXRlKTsKKwllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQogCQlza2xf ZGV0YWNoX3NjYWxlcnMoaW50ZWxfY3J0Yyk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK aW5kZXggMjJkYzhiNmI0MTk4Li43M2IyNTRiY2Q0NTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCkBAIC0zMzcsNiArMzM3LDggQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewogI2RlZmlu ZSBQSVBFX0NPTkZJR19RVUlSS19NT0RFX1NZTkNfRkxBR1MJKDE8PDApIC8qIHVucmVsaWFibGUg c3luYyBtb2RlLmZsYWdzICovCiAJdW5zaWduZWQgbG9uZyBxdWlya3M7CiAKKwlib29sIHVwZGF0 ZV9waXBlOworCiAJLyogUGlwZSBzb3VyY2Ugc2l6ZSAoaWUuIHBhbmVsIGZpdHRlciBpbnB1dCBz aXplKQogCSAqIEFsbCBwbGFuZXMgd2lsbCBiZSBwb3NpdGlvbmVkIGluc2lkZSB0aGlzIHNwYWNl LAogCSAqIGFuZCBnZXQgY2xpcHBlZCBhdCB0aGUgZWRnZXMuICovCi0tIAoyLjEuMAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK