From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 5/5] drm/i915: Wait for object idle without locks in atomic_commit. Date: Wed, 23 Sep 2015 13:27:12 +0200 Message-ID: <1443007632-5573-6-git-send-email-maarten.lankhorst@linux.intel.com> References: <1443007632-5573-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 908E66ED3F for ; Wed, 23 Sep 2015 04:27:19 -0700 (PDT) In-Reply-To: <1443007632-5573-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 TWFrZSBwaW5uaW5nIGFuZCB3YWl0aW5nIGEgc2VwYXJhdGUgc3RlcCwgYW5kIHdhaXQgZm9yIG9i amVjdCBpZGxlCndpdGhvdXQgc3RydWN0X211dGV4IGhlbGQuCgpTaWduZWQtb2ZmLWJ5OiBNYWFy dGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgIHwgIDIgLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgfCAgNiAtLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIHwgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jICAgICAgfCA4NiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICB8ICA3ICstLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyAgICAgICAgfCAgMiArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jICAgICAgfCAgNiArKy0KIDcgZmlsZXMgY2hhbmdl ZCwgODQgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKaW5kZXggM2JmOGE5Yjc3MWQwLi5lYzcyZmQ0NTc0OTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaApAQCAtMjk4Miw4ICsyOTgyLDYgQEAgaTkxNV9nZW1fb2JqZWN0X3NldF90b19jcHVfZG9t YWluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGJvb2wgd3JpdGUpOwogaW50IF9f bXVzdF9jaGVjawogaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJICAgICB1MzIgYWxpZ25tZW50LAotCQkJCSAg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcGlwZWxpbmVkLAotCQkJCSAgICAgc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICoqcGlwZWxpbmVkX3JlcXVlc3QsCiAJCQkJICAgICBjb25zdCBz dHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwogdm9pZCBpOTE1X2dlbV9vYmplY3RfdW5waW5f ZnJvbV9kaXNwbGF5X3BsYW5lKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJ CSAgICAgIGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldyk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwppbmRleCA0NmYwZTgzZWU2ZWUuLmFiMDIxODJjNDdhNSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCkBAIC0zNzgyLDE3ICszNzgyLDExIEBAIHVubG9jazoKIGludAogaTkxNV9nZW1f b2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCiAJCQkJICAgICB1MzIgYWxpZ25tZW50LAotCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcGlwZWxpbmVkLAotCQkJCSAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoq cGlwZWxpbmVkX3JlcXVlc3QsCiAJCQkJICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcg KnZpZXcpCiB7CiAJdTMyIG9sZF9yZWFkX2RvbWFpbnMsIG9sZF93cml0ZV9kb21haW47CiAJaW50 IHJldDsKIAotCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zeW5jKG9iaiwgcGlwZWxpbmVkLCBwaXBl bGluZWRfcmVxdWVzdCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCS8qIE1hcmsgdGhl IHBpbl9kaXNwbGF5IGVhcmx5IHNvIHRoYXQgd2UgYWNjb3VudCBmb3IgdGhlCiAJICogZGlzcGxh eSBjb2hlcmVuY3kgd2hpbHN0IHNldHRpbmcgdXAgdGhlIGNhY2hlIGRvbWFpbnMuCiAJICovCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCmluZGV4IGExMTk4MDY5NjU5 NS4uYzZiYjBmYzFlZGZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9h dG9taWNfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxh bmUuYwpAQCAtODQsNiArODQsNyBAQCBpbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpCiAJc3RhdGUgPSAmaW50ZWxfc3RhdGUtPmJhc2U7CiAKIAlfX2Ry bV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShwbGFuZSwgc3RhdGUpOworCWlu dGVsX3N0YXRlLT53YWl0X3JlcSA9IE5VTEw7CiAKIAlyZXR1cm4gc3RhdGU7CiB9CkBAIC0xMDAs NiArMTAxLDcgQEAgdm9pZAogaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7CisJV0FS Tl9PTihzdGF0ZSAmJiB0b19pbnRlbF9wbGFuZV9zdGF0ZShzdGF0ZSktPndhaXRfcmVxKTsKIAlk cm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHBsYW5lLCBzdGF0ZSk7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAyZjA0NjEzNGNjOWEuLmQ4MTdj NDRlZTQyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjI5MSw5ICsy MjkxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9saW5lYXJfYWxpZ25tZW50KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIGludAogaW50ZWxfcGluX2FuZF9mZW5jZV9m Yl9vYmooc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiwKLQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl LAotCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcGlwZWxpbmVkLAotCQkJICAgc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcGlwZWxpbmVkX3JlcXVlc3QpCisJCQkgICBjb25zdCBz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gZmItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwpAQCAtMjM0OSw4ICsyMzQ3LDggQEAgaW50ZWxfcGluX2FuZF9mZW5j ZV9mYl9vYmooc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJICovCiAJaW50ZWxfcnVudGltZV9w bV9nZXQoZGV2X3ByaXYpOwogCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5 X3BsYW5lKG9iaiwgYWxpZ25tZW50LCBwaXBlbGluZWQsCi0JCQkJCQkgICBwaXBlbGluZWRfcmVx dWVzdCwgJnZpZXcpOworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFu ZShvYmosIGFsaWdubWVudCwKKwkJCQkJCSAgICZ2aWV3KTsKIAlpZiAocmV0KQogCQlnb3RvIGVy cl9wbTsKIApAQCAtMTEzNTcsOSArMTEzNTUsMTQgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3Bh Z2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJICogc3luY2hyb25pc2F0aW9uLCBzbyBh bGwgd2Ugd2FudCBoZXJlIGlzIHRvIHBpbiB0aGUgZnJhbWVidWZmZXIKIAkgKiBpbnRvIHRoZSBk aXNwbGF5IHBsYW5lIGFuZCBza2lwIGFueSB3YWl0cy4KIAkgKi8KKwlpZiAoIW1taW9fZmxpcCkg eworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc3luYyhvYmosIHJpbmcsICZyZXF1ZXN0KTsKKwkJ aWYgKHJldCkKKwkJCWdvdG8gY2xlYW51cF9wZW5kaW5nOworCX0KKwogCXJldCA9IGludGVsX3Bp bl9hbmRfZmVuY2VfZmJfb2JqKGNydGMtPnByaW1hcnksIGZiLAotCQkJCQkgY3J0Yy0+cHJpbWFy eS0+c3RhdGUsCi0JCQkJCSBtbWlvX2ZsaXAgPyBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKG9i ai0+bGFzdF93cml0ZV9yZXEpIDogcmluZywgJnJlcXVlc3QpOworCQkJCQkgY3J0Yy0+cHJpbWFy eS0+c3RhdGUpOwogCWlmIChyZXQpCiAJCWdvdG8gY2xlYW51cF9wZW5kaW5nOwogCkBAIC0xMjk5 Myw3ICsxMjk5NiwxMCBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19wcmVwYXJlX2NvbW1pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUsCiAJCQkJICAgICAgIGJvb2wgYXN5bmMpCiB7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpwbGFuZV9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisJ c3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCWludCBp LCByZXQ7CiAKQEAgLTEzMDA2LDYgKzEzMDEyLDkgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNf cHJlcGFyZV9jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJcmV0ID0gaW50ZWxfY3J0 Y193YWl0X2Zvcl9wZW5kaW5nX2ZsaXBzKGNydGMpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJl dDsKKworCQlpZiAoYXRvbWljX3JlYWQoJnRvX2ludGVsX2NydGMoY3J0YyktPnVucGluX3dvcmtf Y291bnQpID49IDIpCisJCQlmbHVzaF93b3JrcXVldWUoZGV2X3ByaXYtPndxKTsKIAl9CiAKIAly ZXQgPSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXYpOwpAQCAtMTMwMTMsNiArMTMw MjIsMzcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfcHJlcGFyZV9jb21taXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJcmV0dXJuIHJldDsKIAogCXJldCA9IGRybV9hdG9taWNfaGVscGVy X3ByZXBhcmVfcGxhbmVzKGRldiwgc3RhdGUpOworCWlmICghcmV0ICYmICFhc3luYykgeworCQl1 MzIgcmVzZXRfY291bnRlcjsKKworCQlyZXNldF9jb3VudGVyID0gYXRvbWljX3JlYWQoJmRldl9w cml2LT5ncHVfZXJyb3IucmVzZXRfY291bnRlcik7CisJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOworCisJCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxh bmVfc3RhdGUsIGkpIHsKKwkJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfcGxhbmVf c3RhdGUgPQorCQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKTsKKworCQkJaWYg KCFpbnRlbF9wbGFuZV9zdGF0ZS0+d2FpdF9yZXEpCisJCQkJY29udGludWU7CisKKwkJCXJldCA9 IF9faTkxNV93YWl0X3JlcXVlc3QoaW50ZWxfcGxhbmVfc3RhdGUtPndhaXRfcmVxLAorCQkJCQkJ ICByZXNldF9jb3VudGVyLCB0cnVlLAorCQkJCQkJICBOVUxMLCBOVUxMKTsKKworCQkJLyogU3dh bGxvdyAtRUlPIGVycm9ycyB0byBhbGxvdyB1cGRhdGVzIGR1cmluZyBodyBsb2NrdXAuICovCisJ CQlpZiAocmV0ID09IC1FSU8pCisJCQkJcmV0ID0gMDsKKworCQkJaWYgKHJldCkKKwkJCQlicmVh azsKKwkJfQorCisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisKKwkJbXV0ZXhfbG9jaygmZGV2 LT5zdHJ1Y3RfbXV0ZXgpOworCQlkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYs IHN0YXRlKTsKKwl9CiAKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlyZXR1 cm4gcmV0OwpAQCAtMTMwMzksMTUgKzEzMDc5LDE3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWlj X2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJICAgICAgIGJvb2wgYXN5bmMpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK LQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlpbnQgcmV0ID0gMDsKIAlpbnQgaTsKIAli b29sIGFueV9tcyA9IGZhbHNlOwogCiAJcmV0ID0gaW50ZWxfYXRvbWljX3ByZXBhcmVfY29tbWl0 KGRldiwgc3RhdGUsIGFzeW5jKTsKLQlpZiAocmV0KQorCWlmIChyZXQpIHsKKwkJRFJNX0RFQlVH X0FUT01JQygiUHJlcGFyaW5nIHN0YXRlIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOwogCQlyZXR1 cm4gcmV0OworCX0KIAogCWRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUoZGV2LCBzdGF0ZSk7 CiAKQEAgLTEzMzE4LDcgKzEzMzYwLDggQEAgaW50ZWxfcHJlcGFyZV9wbGFuZV9mYihzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAkJICogVGhpcyBzaG91bGQgb25seSBmYWlsIHVwb24gYSBodW5n IEdQVSwgaW4gd2hpY2ggY2FzZSB3ZQogCQkgKiBjYW4gc2FmZWx5IGNvbnRpbnVlLgogCQkgKi8K LQkJaWYgKG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCisJCWlmIChuZWVkc19tb2Rlc2V0KGNy dGNfc3RhdGUpICYmCisJCSAgICB0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpLT52 aXNpYmxlKQogCQkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3dhaXRfcmVuZGVyaW5nKG9sZF9vYmos IHRydWUpOwogCiAJCS8qIFN3YWxsb3cgLUVJTyBlcnJvcnMgdG8gYWxsb3cgdXBkYXRlcyBkdXJp bmcgaHcgbG9ja3VwLiAqLwpAQCAtMTMzMzUsMTEgKzEzMzc4LDIxIEBAIGludGVsX3ByZXBhcmVf cGxhbmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWlmIChyZXQpCiAJCQlEUk1fREVC VUdfS01TKCJmYWlsZWQgdG8gYXR0YWNoIHBoeXMgb2JqZWN0XG4iKTsKIAl9IGVsc2UgewotCQly ZXQgPSBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihwbGFuZSwgZmIsIG5ld19zdGF0ZSwgTlVM TCwgTlVMTCk7CisJCXJldCA9IGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKHBsYW5lLCBmYiwg bmV3X3N0YXRlKTsKIAl9CiAKLQlpZiAocmV0ID09IDApCisJaWYgKHJldCA9PSAwKSB7CisJCWlm IChvYmogJiYgb2JqLT5sYXN0X3dyaXRlX3JlcSAmJgorCQkgICAgIWk5MTVfZ2VtX3JlcXVlc3Rf Y29tcGxldGVkKG9iai0+bGFzdF93cml0ZV9yZXEsIHRydWUpKSB7CisJCQlzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KKwkJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShuZXdf c3RhdGUpOworCisJCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmcGxhbmVfc3RhdGUtPndhaXRf cmVxLAorCQkJCQkJb2JqLT5sYXN0X3dyaXRlX3JlcSk7CisJCX0KKwogCQlpOTE1X2dlbV90cmFj a19mYihvbGRfb2JqLCBvYmosIGludGVsX3BsYW5lLT5mcm9udGJ1ZmZlcl9iaXQpOworCX0KIAog CXJldHVybiByZXQ7CiB9CkBAIC0xMzM1Nyw5ICsxMzQxMCwxMiBAQCBpbnRlbF9jbGVhbnVwX3Bs YW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBwbGFuZS0+ZGV2OwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19p bnRlbF9wbGFuZShwbGFuZSk7CisJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfaW50ZWxf c3RhdGU7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9v Ymoob2xkX3N0YXRlLT5mYik7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGlu dGVsX2ZiX29iaihwbGFuZS0+c3RhdGUtPmZiKTsKIAorCW9sZF9pbnRlbF9zdGF0ZSA9IHRvX2lu dGVsX3BsYW5lX3N0YXRlKG9sZF9zdGF0ZSk7CisKIAlpZiAoIW9iaiAmJiAhb2xkX29iaikKIAkJ cmV0dXJuOwogCkBAIC0xMzM3MSw2ICsxMzQyNyw5IEBAIGludGVsX2NsZWFudXBfcGxhbmVfZmIo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJaWYgKChvbGRfb2JqICYmIChvbGRfb2JqLT5mcm9u dGJ1ZmZlcl9iaXRzICYgaW50ZWxfcGxhbmUtPmZyb250YnVmZmVyX2JpdCkpIHx8CiAJICAgIChv YmogJiYgIShvYmotPmZyb250YnVmZmVyX2JpdHMgJiBpbnRlbF9wbGFuZS0+ZnJvbnRidWZmZXJf Yml0KSkpCiAJCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIG9iaiwgaW50ZWxfcGxhbmUtPmZy b250YnVmZmVyX2JpdCk7CisKKwlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2xkX2ludGVsX3N0 YXRlLT53YWl0X3JlcSwgTlVMTCk7CisKIH0KIAogaW50CkBAIC0xNTM0OCw4ICsxNTQwNyw3IEBA IHZvaWQgaW50ZWxfbW9kZXNldF9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlt dXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJCXJldCA9IGludGVsX3Bpbl9hbmRfZmVu Y2VfZmJfb2JqKGMtPnByaW1hcnksCiAJCQkJCQkgYy0+cHJpbWFyeS0+ZmIsCi0JCQkJCQkgYy0+ cHJpbWFyeS0+c3RhdGUsCi0JCQkJCQkgTlVMTCwgTlVMTCk7CisJCQkJCQkgYy0+cHJpbWFyeS0+ c3RhdGUpOwogCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAkJaWYgKHJldCkg ewogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcGluIGJvb3QgZmIgb24gcGlwZSAlZFxuIiwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggY2ZkYjBmMjcxNGNkLi44NTJhMGQxOTJmODIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0yNzAsNiArMjcwLDkgQEAgc3RydWN0IGludGVs X3BsYW5lX3N0YXRlIHsKIAlpbnQgc2NhbGVyX2lkOwogCiAJc3RydWN0IGRybV9pbnRlbF9zcHJp dGVfY29sb3JrZXkgY2tleTsKKworCS8qIGFzeW5jIGZsaXAgcmVsYXRlZCBzdHJ1Y3R1cmVzICov CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICp3YWl0X3JlcTsKIH07CiAKIHN0cnVjdCBp bnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyB7CkBAIC0xMDU1LDkgKzEwNTgsNyBAQCB2b2lkIGlu dGVsX3JlbGVhc2VfbG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAogCQkJCSAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7CiBpbnQg aW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkg ICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCQkgICAgICAgY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCi0JCQkgICAgICAgc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcGlwZWxpbmVkLAotCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqKnBpcGVsaW5lZF9yZXF1ZXN0KTsKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpwbGFuZV9zdGF0ZSk7CiBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoKIF9faW50ZWxf ZnJhbWVidWZmZXJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICBzdHJ1Y3Qg ZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpp bmRleCA2NTMyOTEyN2YwYjkuLjUxYWZlZTYxYmE3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmRldi5jCkBAIC0xNTUsNyArMTU1LDcgQEAgc3RhdGljIGludCBpbnRlbGZiX2FsbG9jKHN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJfQogCiAJLyogRmx1c2ggZXZlcnl0aGluZyBvdXQs IHdlJ2xsIGJlIGRvaW5nIEdUVCBvbmx5IGZyb20gbm93IG9uICovCi0JcmV0ID0gaW50ZWxfcGlu X2FuZF9mZW5jZV9mYl9vYmooTlVMTCwgZmIsIE5VTEwsIE5VTEwsIE5VTEwpOworCXJldCA9IGlu dGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKE5VTEwsIGZiLCBOVUxMKTsKIAlpZiAocmV0KSB7CiAJ CURSTV9FUlJPUigiZmFpbGVkIHRvIHBpbiBvYmo6ICVkXG4iLCByZXQpOwogCQlnb3RvIG91dF9m YjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwppbmRleCA0NDQ1NDI2OTZhMmMuLjFi MThjYzZiZGJkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3Zlcmxh eS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwpAQCAtNzQ5LDcg Kzc0OSwxMSBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfZG9fcHV0X2ltYWdlKHN0cnVjdCBp bnRlbF9vdmVybGF5ICpvdmVybGF5LAogCWlmIChyZXQgIT0gMCkKIAkJcmV0dXJuIHJldDsKIAot CXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShuZXdfYm8sIDAsIE5V TEwsIE5VTEwsCisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3dhaXRfcmVuZGVyaW5nKG5ld19ibywg dHJ1ZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGk5MTVfZ2VtX29iamVj dF9waW5fdG9fZGlzcGxheV9wbGFuZShuZXdfYm8sIDAsCiAJCQkJCQkgICAmaTkxNV9nZ3R0X3Zp ZXdfbm9ybWFsKTsKIAlpZiAocmV0ICE9IDApCiAJCXJldHVybiByZXQ7Ci0tIAoyLjEuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK