From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 8/8] drm/i915: Move atomic crtc update checking to the check crtc function. Date: Thu, 16 Apr 2015 12:28:04 +0200 Message-ID: <552F8EB4.2030901@linux.intel.com> References: <1429108486-22008-1-git-send-email-maarten.lankhorst@linux.intel.com> <1429108486-22008-8-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 894056EA05 for ; Thu, 16 Apr 2015 03:28:21 -0700 (PDT) In-Reply-To: <1429108486-22008-8-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 Cc: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4 LmludGVsLmNvbT4KLS0tCkNoYW5nZXMgc2luY2UgdjE6CiAtIENsZWFyIGludGVsX2NydGMtPmF0 b21pYyBhdCB0aGUgc3RhcnQgb2YgdGhlIGNoZWNrIGZ1bmN0aW9uIChwYXJhbm9pYSkuCiAKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIHwgIDE4ICstLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgfCAxOTYgKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgICAg ICB8ICAyNSArLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCAxMDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwppbmRl eCBhMjdlZThjYmI2MjcuLjRiNjM5YjU0NTgzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXRvbWljX3BsYW5lLmMKQEAgLTEyMyw4ICsxMjMsMTAgQEAgc3RhdGljIGludCBpbnRlbF9w bGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJICogYW55dGhpbmcg ZHJpdmVyLXNwZWNpZmljIHdlIG5lZWQgdG8gdGVzdCBpbiB0aGF0IGNhc2UsIHNvCiAJICoganVz dCByZXR1cm4gc3VjY2Vzcy4KIAkgKi8KLQlpZiAoIWNydGMpCisJaWYgKCFjcnRjIHx8ICFpbnRl bF9jcnRjLT5hY3RpdmUgfHwgIXN0YXRlLT5mYikgeworCQlpbnRlbF9zdGF0ZS0+dmlzaWJsZSA9 IDA7CiAJCXJldHVybiAwOworCX0KIAogCS8qCiAJICogVGhlIG9yaWdpbmFsIHNyYy9kZXN0IGNv b3JkaW5hdGVzIGFyZSBzdG9yZWQgaW4gc3RhdGUtPmJhc2UsIGJ1dApAQCAtMTQ4LDIwICsxNTAs NiBAQCBzdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAlpbnRlbF9zdGF0ZS0+Y2xpcC55MiA9CiAJCWludGVsX2NydGMtPmFjdGl2ZSA/ IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfaCA6IDA7CiAKLQkvKgotCSAqIERpc2FibGlu ZyBhIHBsYW5lIGlzIGFsd2F5cyBva2F5OyB3ZSBqdXN0IG5lZWQgdG8gdXBkYXRlCi0JICogZmIg dHJhY2tpbmcgaW4gYSBzcGVjaWFsIHdheSBzaW5jZSBjbGVhbnVwX2ZiKCkgd29uJ3QKLQkgKiBn ZXQgY2FsbGVkIGJ5IHRoZSBwbGFuZSBoZWxwZXJzLgotCSAqLwotCWlmIChzdGF0ZS0+ZmIgPT0g TlVMTCAmJiBwbGFuZS0+c3RhdGUtPmZiICE9IE5VTEwpIHsKLQkJLyoKLQkJICogJ3ByZXBhcmUn IGlzIG5ldmVyIGNhbGxlZCB3aGVuIHBsYW5lIGlzIGJlaW5nIGRpc2FibGVkLCBzbwotCQkgKiB3 ZSBuZWVkIHRvIGhhbmRsZSBmcm9udGJ1ZmZlciB0cmFja2luZyBhcyBhIHNwZWNpYWwgY2FzZQot CQkgKi8KLQkJaW50ZWxfY3J0Yy0+YXRvbWljLmRpc2FibGVkX3BsYW5lcyB8PQotCQkJKDEgPDwg ZHJtX3BsYW5lX2luZGV4KHBsYW5lKSk7Ci0JfQotCiAJaWYgKHN0YXRlLT5mYiAmJiBpbnRlbF9y b3RhdGlvbl85MF9vcl8yNzAoc3RhdGUtPnJvdGF0aW9uKSkgewogCQlpZiAoIShzdGF0ZS0+ZmIt Pm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8CiAJCQlzdGF0ZS0+ZmIt Pm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkpIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA2MWEyOWYxNDJjNzAuLjQ5NjU3NDMwNTNiMSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTAxLDYgKzEwMSw4IEBAIHN0YXRp YyB2b2lkIHZsdl9wcmVwYXJlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCSAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwogc3RhdGljIHZvaWQg Y2h2X3ByZXBhcmVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7CitzdGF0aWMgaW50IGludGVsX2F0 b21pY19jaGVja19jcnRjKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgICBzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwogc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19j b21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIHN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9j cnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogc3RhdGljIHZvaWQgc2tsX2luaXRf c2NhbGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YywKQEAgLTEwNjU2LDYgKzEwNjU4LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19oZWxw ZXJfZnVuY3MgaW50ZWxfaGVscGVyX2Z1bmNzID0gewogCS5sb2FkX2x1dCA9IGludGVsX2NydGNf bG9hZF9sdXQsCiAJLmF0b21pY19iZWdpbiA9IGludGVsX2JlZ2luX2NydGNfY29tbWl0LAogCS5h dG9taWNfZmx1c2ggPSBpbnRlbF9maW5pc2hfY3J0Y19jb21taXQsCisJLmF0b21pY19jaGVjayA9 IGludGVsX2F0b21pY19jaGVja19jcnRjLAogfTsKIAogLyoqCkBAIC0xMjc4Myw2ICsxMjc4Niw5 IEBAIGJvb2wgaW50ZWxfd21fbmVlZF91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ ICAgIHBsYW5lLT5zdGF0ZS0+cm90YXRpb24gIT0gc3RhdGUtPnJvdGF0aW9uKQogCQlyZXR1cm4g dHJ1ZTsKIAorCWlmIChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCisJCXJl dHVybiBwbGFuZS0+c3RhdGUtPmNydGNfdyAhPSBzdGF0ZS0+Y3J0Y193OworCiAJcmV0dXJuIGZh bHNlOwogfQogCkBAIC0xMjg3Nyw3ICsxMjg4Myw2IEBAIGludGVsX2NoZWNrX3ByaW1hcnlfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+YmFzZS5jcnRjOwogCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2Uu ZmI7CkBAIC0xMjg4NSw3ICsxMjg5MCw2IEBAIGludGVsX2NoZWNrX3ByaW1hcnlfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJc3RydWN0IGRybV9yZWN0ICpzcmMgPSAmc3RhdGUtPnNy YzsKIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAgPSAmc3RhdGUtPmNsaXA7CiAJYm9vbCBj YW5fcG9zaXRpb24gPSBmYWxzZTsKLQlpbnQgcmV0OwogCiAJY3J0YyA9IGNydGMgPyBjcnRjIDog cGxhbmUtPmNydGM7CiAJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC0xMjg5 Myw1OCArMTI4OTcsMTIgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKIAkJY2FuX3Bvc2l0 aW9uID0gdHJ1ZTsKIAotCXJldCA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKHBsYW5l LCBjcnRjLCBmYiwKLQkJCQkJICAgIHNyYywgZGVzdCwgY2xpcCwKLQkJCQkJICAgIERSTV9QTEFO RV9IRUxQRVJfTk9fU0NBTElORywKLQkJCQkJICAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElO RywKLQkJCQkJICAgIGNhbl9wb3NpdGlvbiwgdHJ1ZSwKLQkJCQkJICAgICZzdGF0ZS0+dmlzaWJs ZSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUp IHsKLQkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUgPQotCQkJdG9faW50ZWxf cGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsKLQotCQlpbnRlbF9jcnRjLT5hdG9taWMud2FpdF9m b3JfZmxpcHMgPSB0cnVlOwotCi0JCS8qCi0JCSAqIEZCQyBkb2VzIG5vdCB3b3JrIG9uIHNvbWUg cGxhdGZvcm1zIGZvciByb3RhdGVkCi0JCSAqIHBsYW5lcywgc28gZGlzYWJsZSBpdCB3aGVuIHJv dGF0aW9uIGlzIG5vdCAwIGFuZAotCQkgKiB1cGRhdGUgaXQgd2hlbiByb3RhdGlvbiBpcyBzZXQg YmFjayB0byAwLgotCQkgKgotCQkgKiBGSVhNRTogVGhpcyBpcyByZWR1bmRhbnQgd2l0aCB0aGUg ZmJjIHVwZGF0ZSBkb25lIGluCi0JCSAqIHRoZSBwcmltYXJ5IHBsYW5lIGVuYWJsZSBmdW5jdGlv biBleGNlcHQgdGhhdCB0aGF0Ci0JCSAqIG9uZSBpcyBkb25lIHRvbyBsYXRlLiBXZSBldmVudHVh bGx5IG5lZWQgdG8gdW5pZnkKLQkJICogdGhpcy4KLQkJICovCi0JCWlmIChzdGF0ZS0+dmlzaWJs ZSAmJgotCQkgICAgSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikgJiYK LQkJICAgIGRldl9wcml2LT5mYmMuY3J0YyA9PSBpbnRlbF9jcnRjICYmCi0JCSAgICBzdGF0ZS0+ YmFzZS5yb3RhdGlvbiAhPSBCSVQoRFJNX1JPVEFURV8wKSkgewotCQkJaW50ZWxfY3J0Yy0+YXRv bWljLmRpc2FibGVfZmJjID0gdHJ1ZTsKLQkJfQotCi0JCWlmIChzdGF0ZS0+dmlzaWJsZSAmJiAh b2xkX3N0YXRlLT52aXNpYmxlKSB7Ci0JCQkvKgotCQkJICogQkRXIHNpZ25hbHMgZmxpcCBkb25l IGltbWVkaWF0ZWx5IGlmIHRoZSBwbGFuZQotCQkJICogaXMgZGlzYWJsZWQsIGV2ZW4gaWYgdGhl IHBsYW5lIGVuYWJsZSBpcyBhbHJlYWR5Ci0JCQkgKiBhcm1lZCB0byBvY2N1ciBhdCB0aGUgbmV4 dCB2YmxhbmsgOigKLQkJCSAqLwotCQkJaWYgKElTX0JST0FEV0VMTChkZXYpKQotCQkJCWludGVs X2NydGMtPmF0b21pYy53YWl0X3ZibGFuayA9IHRydWU7Ci0JCX0KLQotCQlpbnRlbF9jcnRjLT5h dG9taWMuZmJfYml0cyB8PQotCQkJSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShpbnRlbF9jcnRj LT5waXBlKTsKLQotCQlpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX2ZiYyA9IHRydWU7Ci0KLQkJ aWYgKGludGVsX3dtX25lZWRfdXBkYXRlKHBsYW5lLCAmc3RhdGUtPmJhc2UpKQotCQkJaW50ZWxf Y3J0Yy0+YXRvbWljLnVwZGF0ZV93bSA9IHRydWU7Ci0JfQotCi0JcmV0dXJuIDA7CisJcmV0dXJu IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKHBsYW5lLCBjcnRjLCBmYiwKKwkJCQkJICAg ICBzcmMsIGRlc3QsIGNsaXAsCisJCQkJCSAgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5H LAorCQkJCQkgICAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJICAgICBjYW5f cG9zaXRpb24sIHRydWUsCisJCQkJCSAgICAgJnN0YXRlLT52aXNpYmxlKTsKIH0KIAogc3RhdGlj IHZvaWQKQEAgLTEyOTg2LDYgKzEyOTQ0LDEyMSBAQCBpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3By aW1hcnlfcGxhbmUoY3J0YywgTlVMTCwgMCwgMCk7CiB9CiAKKy8qIFRyYW5zaXRpb25hbCBjaGVj a2luZyBoZXJlLCBtb3N0bHkgZm9yIHBsYW5lIHVwZGF0ZXMgKi8KK3N0YXRpYyBpbnQgaW50ZWxf YXRvbWljX2NoZWNrX2NydGMoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgIHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOworCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY3J0Yy0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgcGxhbmVfbWFzazsKKwlpbnQgaSwgbnBs YW5lcyA9IGRldi0+bW9kZV9jb25maWcubnVtX3RvdGFsX3BsYW5lOworCWJvb2wgbW9kZV9jaGFu Z2VkID0gY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkOworCisJaWYgKCFjcnRjX3N0YXRlLT5wbGFu ZXNfY2hhbmdlZCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKKwkJ cmV0dXJuIDA7CisKKwltZW1zZXQoJmludGVsX2NydGMtPmF0b21pYywgMCwgc2l6ZW9mKGludGVs X2NydGMtPmF0b21pYykpOworCWludGVsX2NydGMtPmF0b21pYy51cGRhdGVfd20gPSBtb2RlX2No YW5nZWQ7CisKKwlEUk1fREVCVUdfQVRPTUlDKCJDcnRjICVpIHdhcyBlbmFibGVkICVpIG5vdyBl bmFibGVkOiAlaVxuIiwgZHJtX2NydGNfaW5kZXgoY3J0YyksIGNydGMtPnN0YXRlLT5lbmFibGUs IGNydGNfc3RhdGUtPmVuYWJsZSk7CisKKwlwbGFuZV9tYXNrID0gY3J0Y19zdGF0ZS0+cGxhbmVf bWFzayB8IGNydGMtPnN0YXRlLT5wbGFuZV9tYXNrOworCWZvciAoaSA9IDA7IGkgPCBucGxhbmVz OyBpKyspIHsKKwkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwgKm9sZF9w bGFuZV9zdGF0ZTsKKwkJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5l KHN0YXRlLT5wbGFuZXNbaV0pOworCQlib29sIHR1cm5fb2ZmLCB0dXJuX29uLCB2aXNpYmxlLCB3 YXNfdmlzaWJsZTsKKworCQlpZiAoIXBsYW5lKQorCQkJY29udGludWU7CisKKwkJcGxhbmVfc3Rh dGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShzdGF0ZS0+cGxhbmVfc3RhdGVzW2ldKTsKKwkJb2xk X3BsYW5lX3N0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uuc3RhdGUpOwor CisJCXdhc192aXNpYmxlID0gb2xkX3BsYW5lX3N0YXRlLT52aXNpYmxlICYmIGNydGMtPnN0YXRl LT5lbmFibGU7CisJCXZpc2libGUgPSBwbGFuZV9zdGF0ZS0+dmlzaWJsZSAmJiBjcnRjX3N0YXRl LT5lbmFibGU7CisKKwkJdHVybl9vZmYgPSB3YXNfdmlzaWJsZSAmJiAoIXZpc2libGUgfHwgbW9k ZV9jaGFuZ2VkKTsKKwkJdHVybl9vbiA9IHZpc2libGUgJiYgKCF3YXNfdmlzaWJsZSB8fCBtb2Rl X2NoYW5nZWQpOworCisJCURSTV9ERUJVR19BVE9NSUMoIlBsYW5lICVpIHdpdGggZmIgJXAgYW5k IGNydGMgJXAsIHdhc192aXNpYmxlICVpLCB2aXNpYmxlICVpLCB0dXJuX29mZiAlaSwgdHVybl9v biAlaSwgbW9kZXNldDogJWlcbiIsCisJCQkJIGksIHBsYW5lX3N0YXRlLT5iYXNlLmZiLCBwbGFu ZV9zdGF0ZS0+YmFzZS5jcnRjLCB3YXNfdmlzaWJsZSwgdmlzaWJsZSwgdHVybl9vZmYsIHR1cm5f b24sIG1vZGVfY2hhbmdlZCk7CisKKwkJLyogcGxhbmUgYmVpbmcgdHVybmVkIG9mZiBhcyBwYXJ0 IG9mIG1vZGVzZXQgb3IgY2hhbmdlcz8gKi8KKwkJaWYgKGludGVsX3dtX25lZWRfdXBkYXRlKCZw bGFuZS0+YmFzZSwgJnBsYW5lX3N0YXRlLT5iYXNlKSkKKwkJCWludGVsX2NydGMtPmF0b21pYy51 cGRhdGVfd20gPSB0cnVlOworCisJCWlmIChvbGRfcGxhbmVfc3RhdGUtPmJhc2UuZmIgJiYgIXBs YW5lX3N0YXRlLT5iYXNlLmZiKQorCQkvKgorCQkgKiAncHJlcGFyZScgaXMgbmV2ZXIgY2FsbGVk IHdoZW4gcGxhbmUgaXMgYmVpbmcgZGlzYWJsZWQsIHNvCisJCSAqIHdlIG5lZWQgdG8gaGFuZGxl IGZyb250YnVmZmVyIHRyYWNraW5nIGFzIGEgc3BlY2lhbCBjYXNlCisJCSAqLworCQkJaW50ZWxf Y3J0Yy0+YXRvbWljLmRpc2FibGVkX3BsYW5lcyB8PQorCQkJCSgxIDw8IGRybV9wbGFuZV9pbmRl eCgmcGxhbmUtPmJhc2UpKTsKKworCQlzd2l0Y2ggKHBsYW5lLT5iYXNlLnR5cGUpIHsKKwkJY2Fz ZSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOgorCQkJaW50ZWxfY3J0Yy0+YXRvbWljLmZiX2JpdHMg fD0KKwkJCQlJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKGludGVsX2NydGMtPnBpcGUpOworCisJ CQlpbnRlbF9jcnRjLT5hdG9taWMud2FpdF9mb3JfZmxpcHMgPSB0cnVlOworCQkJaW50ZWxfY3J0 Yy0+YXRvbWljLnByZV9kaXNhYmxlX3ByaW1hcnkgPSB0dXJuX29mZjsKKwkJCWludGVsX2NydGMt PmF0b21pYy5wb3N0X2VuYWJsZV9wcmltYXJ5ID0gdHVybl9vbjsKKworCQkJaWYgKHR1cm5fb2Zm KQorCQkJCWludGVsX2NydGMtPmF0b21pYy5kaXNhYmxlX2ZiYyA9IHRydWU7CisKKwkJCS8qCisJ CQkgKiBGQkMgZG9lcyBub3Qgd29yayBvbiBzb21lIHBsYXRmb3JtcyBmb3Igcm90YXRlZAorCQkJ ICogcGxhbmVzLCBzbyBkaXNhYmxlIGl0IHdoZW4gcm90YXRpb24gaXMgbm90IDAgYW5kCisJCQkg KiB1cGRhdGUgaXQgd2hlbiByb3RhdGlvbiBpcyBzZXQgYmFjayB0byAwLgorCQkJICoKKwkJCSAq IEZJWE1FOiBUaGlzIGlzIHJlZHVuZGFudCB3aXRoIHRoZSBmYmMgdXBkYXRlIGRvbmUgaW4KKwkJ CSAqIHRoZSBwcmltYXJ5IHBsYW5lIGVuYWJsZSBmdW5jdGlvbiBleGNlcHQgdGhhdCB0aGF0CisJ CQkgKiBvbmUgaXMgZG9uZSB0b28gbGF0ZS4gV2UgZXZlbnR1YWxseSBuZWVkIHRvIHVuaWZ5CisJ CQkgKiB0aGlzLgorCQkJICovCisKKwkJCWlmICh2aXNpYmxlICYmCisJCQkgICAgSU5URUxfSU5G TyhkZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikgJiYKKwkJCSAgICBkZXZfcHJpdi0+ZmJj LmNydGMgPT0gaW50ZWxfY3J0YyAmJgorCQkJICAgIHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9u ICE9IEJJVChEUk1fUk9UQVRFXzApKQorCQkJCWludGVsX2NydGMtPmF0b21pYy5kaXNhYmxlX2Zi YyA9IHRydWU7CisKKwkJCS8qCisJCQkgKiBCRFcgc2lnbmFscyBmbGlwIGRvbmUgaW1tZWRpYXRl bHkgaWYgdGhlIHBsYW5lCisJCQkgKiBpcyBkaXNhYmxlZCwgZXZlbiBpZiB0aGUgcGxhbmUgZW5h YmxlIGlzIGFscmVhZHkKKwkJCSAqIGFybWVkIHRvIG9jY3VyIGF0IHRoZSBuZXh0IHZibGFuayA6 KAorCQkJICovCisJCQlpZiAodHVybl9vbiAmJiBJU19CUk9BRFdFTEwoZGV2KSkKKwkJCQlpbnRl bF9jcnRjLT5hdG9taWMud2FpdF92YmxhbmsgPSB0cnVlOworCisJCQlpbnRlbF9jcnRjLT5hdG9t aWMudXBkYXRlX2ZiYyA9IHRydWU7CisJCQlicmVhazsKKwkJY2FzZSBEUk1fUExBTkVfVFlQRV9D VVJTT1I6CisJCQlpbnRlbF9jcnRjLT5hdG9taWMuZmJfYml0cyB8PQorCQkJCUlOVEVMX0ZST05U QlVGRkVSX0NVUlNPUihpbnRlbF9jcnRjLT5waXBlKTsKKwkJCWJyZWFrOworCQljYXNlIERSTV9Q TEFORV9UWVBFX09WRVJMQVk6CisJCQlpbnRlbF9jcnRjLT5hdG9taWMuZmJfYml0cyB8PQorCQkJ CUlOVEVMX0ZST05UQlVGRkVSX1NQUklURShpbnRlbF9jcnRjLT5waXBlKTsKKworCQkJaWYgKHR1 cm5fb2ZmKSB7CisJCQkJaW50ZWxfY3J0Yy0+YXRvbWljLndhaXRfdmJsYW5rID0gdHJ1ZTsKKwkJ CQlpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX3Nwcml0ZV93YXRlcm1hcmtzIHw9CisJCQkJCSgx IDw8IGRybV9wbGFuZV9pbmRleCgmcGxhbmUtPmJhc2UpKTsKKwkJCX0KKwkJCWJyZWFrOworCQl9 CisJfQorCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1p dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmRldjsKQEAgLTEzMjAwLDcgKzEzMjczLDcgQEAgaW50ZWxfY2hlY2tfY3Vyc29yX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCiAJLyogaWYgd2Ugd2FudCB0byB0dXJuIG9mZiB0 aGUgY3Vyc29yIGlnbm9yZSB3aWR0aCBhbmQgaGVpZ2h0ICovCiAJaWYgKCFvYmopCi0JCWdvdG8g ZmluaXNoOworCQlyZXR1cm4gMDsKIAogCS8qIENoZWNrIGZvciB3aGljaCBjdXJzb3IgdHlwZXMg d2Ugc3VwcG9ydCAqLwogCWlmICghY3Vyc29yX3NpemVfb2soZGV2LCBzdGF0ZS0+YmFzZS5jcnRj X3csIHN0YXRlLT5iYXNlLmNydGNfaCkpIHsKQEAgLTEzMjE3LDE5ICsxMzI5MCwxMCBAQCBpbnRl bF9jaGVja19jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAKIAlpZiAoZmIt Pm1vZGlmaWVyWzBdICE9IERSTV9GT1JNQVRfTU9EX05PTkUpIHsKIAkJRFJNX0RFQlVHX0tNUygi Y3Vyc29yIGNhbm5vdCBiZSB0aWxlZFxuIik7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JfQotCi1maW5p c2g6Ci0JaWYgKGludGVsX2NydGMtPmFjdGl2ZSkgewotCQlpZiAocGxhbmUtPnN0YXRlLT5jcnRj X3cgIT0gc3RhdGUtPmJhc2UuY3J0Y193KQotCQkJaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV93 bSA9IHRydWU7Ci0KLQkJaW50ZWxfY3J0Yy0+YXRvbWljLmZiX2JpdHMgfD0KLQkJCUlOVEVMX0ZS T05UQlVGRkVSX0NVUlNPUihpbnRlbF9jcnRjLT5waXBlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJ fQogCi0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggNzQxOWUwNGIxMTNmLi45Y2YzNWMzM2JjNjEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCkBAIC04MTUsNyArODE1LDcgQEAgaW50ZWxf Y2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCiAJaWYgKCFmYikg ewogCQlzdGF0ZS0+dmlzaWJsZSA9IGZhbHNlOwotCQlnb3RvIGZpbmlzaDsKKwkJcmV0dXJuIDA7 CiAJfQogCiAJLyogRG9uJ3QgbW9kaWZ5IGFub3RoZXIgcGlwZSdzIHBsYW5lICovCkBAIC05NTIs MjkgKzk1Miw2IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKIAlkc3QtPnkxID0gY3J0Y195OwogCWRzdC0+eTIgPSBjcnRjX3kgKyBjcnRjX2g7CiAK LWZpbmlzaDoKLQkvKgotCSAqIElmIHRoZSBzcHJpdGUgaXMgY29tcGxldGVseSBjb3ZlcmluZyB0 aGUgcHJpbWFyeSBwbGFuZSwKLQkgKiB3ZSBjYW4gZGlzYWJsZSB0aGUgcHJpbWFyeSBhbmQgc2F2 ZSBwb3dlci4KLQkgKi8KLQlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKSB7Ci0JCWludGVsX2NydGMt PmF0b21pYy5mYl9iaXRzIHw9Ci0JCQlJTlRFTF9GUk9OVEJVRkZFUl9TUFJJVEUoaW50ZWxfY3J0 Yy0+cGlwZSk7Ci0KLQkJaWYgKGludGVsX3dtX25lZWRfdXBkYXRlKHBsYW5lLCAmc3RhdGUtPmJh c2UpKQotCQkJaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV93bSA9IHRydWU7Ci0KLQkJaWYgKCFz dGF0ZS0+dmlzaWJsZSkgewotCQkJLyoKLQkJCSAqIEF2b2lkIHVuZGVycnVucyB3aGVuIGRpc2Fi bGluZyB0aGUgc3ByaXRlLgotCQkJICogRklYTUUgcmVtb3ZlIG9uY2Ugd2F0ZXJtYXJrIHVwZGF0 ZXMgYXJlIGRvbmUgcHJvcGVybHkuCi0JCQkgKi8KLQkJCWludGVsX2NydGMtPmF0b21pYy53YWl0 X3ZibGFuayA9IHRydWU7Ci0JCQlpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX3Nwcml0ZV93YXRl cm1hcmtzIHw9Ci0JCQkJKDEgPDwgZHJtX3BsYW5lX2luZGV4KHBsYW5lKSk7Ci0JCX0KLQl9Ci0K IAlyZXR1cm4gMDsKIH0KIAotLSAKMi4xLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=