From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 9/9] drm/i915: Make all plane disables use 'update_plane' Date: Mon, 24 Nov 2014 11:53:06 -0800 Message-ID: <1416858786-25376-10-git-send-email-matthew.d.roper@intel.com> References: <1416858786-25376-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 95D266E958 for ; Mon, 24 Nov 2014 11:54:33 -0800 (PST) In-Reply-To: <1416858786-25376-1-git-send-email-matthew.d.roper@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 SWYgd2UgZXh0ZW5kIHRoZSBjb21taXRfcGxhbmUgaGFuZGxlcnMgZm9yIGVhY2ggcGxhbmUgdHlw ZSB0byBiZSBhYmxlIHRvCmhhbmRsZSBmYj0wLCB0aGVuIHdlIGNhbiBlYXNpbHkgaW1wbGVtZW50 IHBsYW5lIGRpc2FibGUgdmlhIHRoZQp1cGRhdGVfcGxhbmUgaGFuZGxlci4gIFRoZSBjdXJzb3Ig cGxhbmUgYWxyZWFkeSB3b3JrcyB0aGlzIHdheSwgYW5kIHRoaXMKaXMgdGhlIGRpcmVjdGlvbiB3 ZSBuZWVkIHRvIGdvIHRvIGludGVncmF0ZSB3aXRoIHRoZSBhdG9taWMgcGxhbmUKaGFuZGxlci4g IFdlIGNhbiBub3cga2lsbCBvZmYgdGhlIHR5cGUtc3BlY2lmaWMgZGlzYWJsZSBmdW5jdGlvbnMs IGFzCndlbGwgYXMgdGhlIHJlZHVuZGFudCBpbnRlbF9wbGFuZV9kaXNhYmxlKCkgKG5vdCB0byBi ZSBjb25mdXNlZCB3aXRoCmludGVsX2Rpc2FibGVfcGxhbmUoKSkuCgpOb3RlIHRoYXQgcHJlcGFy ZV9wbGFuZV9mYigpIG9ubHkgZ2V0cyBjYWxsZWQgYXMgcGFydCBvZiB1cGRhdGVfcGxhbmUKd2hl biBmYiE9TlVMTCAoYnkgZGVzaWduLCB0byBtYXRjaCB0aGUgc2VtYW50aWNzIG9mIHRoZSBhdG9t aWMgcGxhbmUKaGVscGVycyk7IHRoaXMgbWVhbnMgdGhhdCBvdXIgY29tbWl0X3BsYW5lIGhhbmRs ZXJzIG5lZWQgdG8gaGFuZGxlIHRoZQpmcm9udGJ1ZmZlciB0cmFja2luZyBmb3IgdGhlIGRpc2Fi bGUgY2FzZSwgZXZlbiB0aG91Z2ggdGhleSBkb24ndCBoYW5kbGUKaXQgZm9yIG5vcm1hbCB1cGRh dGVzLgoKU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMDkgKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMg IHwgIDcxICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDY3IGluc2Vy dGlvbnMoKyksIDExNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKaW5kZXggZGQxMGRjNi4uZmQxZWFmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwpAQCAtMzk5Niw3ICszOTk2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9wbGFu ZXMoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWRybV9mb3JfZWFjaF9sZWdhY3lfcGxhbmUocGxh bmUsICZkZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QpIHsKIAkJaW50ZWxfcGxhbmUgPSB0b19p bnRlbF9wbGFuZShwbGFuZSk7CiAJCWlmIChpbnRlbF9wbGFuZS0+cGlwZSA9PSBwaXBlKQotCQkJ aW50ZWxfcGxhbmVfZGlzYWJsZSgmaW50ZWxfcGxhbmUtPmJhc2UpOworCQkJcGxhbmUtPmZ1bmNz LT5kaXNhYmxlX3BsYW5lKHBsYW5lKTsKIAl9CiB9CiAKQEAgLTExNTM1LDQ1ICsxMTUzNSw2IEBA IHN0YXRpYyB2b2lkIGludGVsX3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAlCVUdfT04oZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbCA+IEk5MTVfTlVNX1BMTFMpOwog fQogCi1zdGF0aWMgaW50Ci1pbnRlbF9wcmltYXJ5X3BsYW5lX2Rpc2FibGUoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Ci0J c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7Ci0KLQlpZiAoIXBsYW5lLT5mYikKLQkJcmV0 dXJuIDA7Ci0KLQlCVUdfT04oIXBsYW5lLT5jcnRjKTsKLQotCWludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKHBsYW5lLT5jcnRjKTsKLQotCS8qCi0JICogRXZlbiB0aG91Z2ggd2UgY2hlY2tlZCBw bGFuZS0+ZmIgYWJvdmUsIGl0J3Mgc3RpbGwgcG9zc2libGUgdGhhdAotCSAqIHRoZSBwcmltYXJ5 IHBsYW5lIGhhcyBiZWVuIGltcGxpY2l0bHkgZGlzYWJsZWQgYmVjYXVzZSB0aGUgY3J0YwotCSAq IGNvb3JkaW5hdGVzIGdpdmVuIHdlcmVuJ3QgdmlzaWJsZSwgb3IgYmVjYXVzZSB3ZSBkZXRlY3Rl ZAotCSAqIHRoYXQgaXQgd2FzIDEwMCUgY292ZXJlZCBieSBhIHNwcml0ZSBwbGFuZS4gIE9yLCB0 aGUgQ1JUQyBtYXkgYmUKLQkgKiBvZmYgYW5kIHdlJ3ZlIHNldCBhIGZiLCBidXQgaGF2ZW4ndCBh Y3R1YWxseSB0dXJuZWQgb24gdGhlIENSVEMgeWV0LgotCSAqIEluIGVpdGhlciBjYXNlLCB3ZSBu ZWVkIHRvIHVucGluIHRoZSBGQiBhbmQgbGV0IHRoZSBmYiBwb2ludGVyIGdldAotCSAqIHVwZGF0 ZWQsIGJ1dCBvdGhlcndpc2Ugd2UgZG9uJ3QgbmVlZCB0byB0b3VjaCB0aGUgaGFyZHdhcmUuCi0J ICovCi0JaWYgKCFpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpCi0JCWdvdG8gZGlzYWJsZV91 bnBpbjsKLQotCWludGVsX2NydGNfd2FpdF9mb3JfcGVuZGluZ19mbGlwcyhwbGFuZS0+Y3J0Yyk7 Ci0JaW50ZWxfZGlzYWJsZV9wcmltYXJ5X2h3X3BsYW5lKHBsYW5lLCBwbGFuZS0+Y3J0Yyk7Ci0K LWRpc2FibGVfdW5waW46Ci0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCWk5MTVf Z2VtX3RyYWNrX2ZiKGludGVsX2ZiX29iaihwbGFuZS0+ZmIpLCBOVUxMLAotCQkJICBJTlRFTF9G Uk9OVEJVRkZFUl9QUklNQVJZKGludGVsX2NydGMtPnBpcGUpKTsKLQlpbnRlbF91bnBpbl9mYl9v YmooaW50ZWxfZmJfb2JqKHBsYW5lLT5mYikpOwotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOwotCXBsYW5lLT5mYiA9IE5VTEw7Ci0KLQlyZXR1cm4gMDsKLX0KLQogLyoqCiAgKiBp bnRlbF9wcmVwYXJlX3BsYW5lX2ZiIC0gUHJlcGFyZSBmYiBmb3IgdXNhZ2Ugb24gcGxhbmUKICAq IEBwbGFuZTogZHJtIHBsYW5lIHRvIHByZXBhcmUgZm9yCkBAIC0xMTY3OCwxMCArMTE2MzksMTIg QEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlp ZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaW50ZWxfY3J0Y193YWl0X2Zvcl9wZW5kaW5nX2Zs aXBzKGNydGMpOwotCWlmIChpbnRlbF9jcnRjX2hhc19wZW5kaW5nX2ZsaXAoY3J0YykpIHsKLQkJ RFJNX0VSUk9SKCJwaXBlIGlzIHN0aWxsIGJ1c3kgd2l0aCBhbiBvbGQgcGFnZWZsaXBcbiIpOwot CQlyZXR1cm4gLUVCVVNZOworCWlmIChwbGFuZS0+Y3J0YykgeworCQlpbnRlbF9jcnRjX3dhaXRf Zm9yX3BlbmRpbmdfZmxpcHMocGxhbmUtPmNydGMpOworCQlpZiAoaW50ZWxfY3J0Y19oYXNfcGVu ZGluZ19mbGlwKHBsYW5lLT5jcnRjKSkgeworCQkJRFJNX0VSUk9SKCJwaXBlIGlzIHN0aWxsIGJ1 c3kgd2l0aCBhbiBvbGQgcGFnZWZsaXBcbiIpOworCQkJcmV0dXJuIC1FQlVTWTsKKwkJfQogCX0K IAogCXJldHVybiAwOwpAQCAtMTE2OTYsMTIgKzExNjU5LDMwIEBAIGludGVsX2NvbW1pdF9wcmlt YXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBwbGFuZS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOwotCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwogCXN0cnVj dCBkcm1fcmVjdCAqc3JjID0gJnN0YXRlLT5zcmM7CisJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9w bGFuZS0+cGlwZTsKIAotCWNydGMtPnByaW1hcnktPmZiID0gZmI7CisJaWYgKCFmYikgeworCQkv KgorCQkgKiAncHJlcGFyZScgaXMgbmV2ZXIgY2FsbGVkIHdoZW4gcGxhbmUgaXMgYmVpbmcgZGlz YWJsZWQsIHNvCisJCSAqIHdlIG5lZWQgdG8gaGFuZGxlIGZyb250YnVmZmVyIHRyYWNraW5nIGhl cmUKKwkJICovCisJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwkJaTkxNV9nZW1f dHJhY2tfZmIoaW50ZWxfZmJfb2JqKHBsYW5lLT5mYiksIE5VTEwsCisJCQkJICBJTlRFTF9GUk9O VEJVRkZFUl9QUklNQVJZKHBpcGUpKTsKKwkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7CisKKwkJLyoKKwkJICogY3J0YyBtYXkgYmUgcGFzc2VkIGFzIE5VTEwgd2hlbiBkaXNhYmxp bmcsIHNvIHNldCBpdCB0bworCQkgKiB0aGUgcHJvcGVyIHZhbHVlIG5vdworCQkgKi8KKwkJY3J0 YyA9IHBsYW5lLT5jcnRjOworCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwl9 CisKKwlwbGFuZS0+ZmIgPSBmYjsKIAljcnRjLT54ID0gc3JjLT54MSA+PiAxNjsKIAljcnRjLT55 ID0gc3JjLT55MSA+PiAxNjsKIApAQCAtMTE3NTksNyArMTE3NDAsNyBAQCBpbnRlbF9jb21taXRf cHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAqIGV4cGxpY2l0bHkg ZGlzYWJsZXMgdGhlIHBsYW5lIGJ5IHBhc3NpbmcgZmI9MAogCQkJICogYmVjYXVzZSBwbGFuZS0+ ZmIgc3RpbGwgZ2V0cyBzZXQgYW5kIHBpbm5lZC4KIAkJCSAqLwotCQkJaW50ZWxfZGlzYWJsZV9w cmltYXJ5X2h3X3BsYW5lKHBsYW5lLCBjcnRjKTsKKwkJCWludGVsX2Rpc2FibGVfcHJpbWFyeV9o d19wbGFuZShwbGFuZSwgcGxhbmUtPmNydGMpOwogCQl9CiAKIAkJaW50ZWxfZnJvbnRidWZmZXJf ZmxpcChkZXYsIElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSkpOwpAQCAtMTE4MzEsNiAr MTE4MTIsMjQgQEAgaW50ZWxfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJcmV0dXJuIDA7CiB9CiAKKy8qKgorICogaW50ZWxfZGlz YWJsZV9wbGFuZSAtIGRpc2FibGUgYSBwbGFuZQorICogQHBsYW5lOiBwbGFuZSB0byBkaXNhYmxl CisgKgorICogR2VuZXJhbCBkaXNhYmxlIGhhbmRsZXIgZm9yIGFsbCBwbGFuZSB0eXBlcy4KKyAq LworaW50CitpbnRlbF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQorewor CWlmICghcGxhbmUtPmZiKQorCQlyZXR1cm4gMDsKKworCUJVR19PTighcGxhbmUtPmNydGMpOwor CisJcmV0dXJuIHBsYW5lLT5mdW5jcy0+dXBkYXRlX3BsYW5lKHBsYW5lLCBwbGFuZS0+Y3J0Yywg TlVMTCwKKwkJCQkJICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKK30KKwogLyogQ29tbW9uIGRl c3RydWN0aW9uIGZ1bmN0aW9uIGZvciBib3RoIHByaW1hcnkgYW5kIGN1cnNvciBwbGFuZXMgKi8K IHN0YXRpYyB2b2lkIGludGVsX3BsYW5lX2Rlc3Ryb3koc3RydWN0IGRybV9wbGFuZSAqcGxhbmUp CiB7CkBAIC0xMTg0MSw3ICsxMTg0MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3BsYW5lX2Rlc3Ry b3koc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Bs YW5lX2Z1bmNzIGludGVsX3ByaW1hcnlfcGxhbmVfZnVuY3MgPSB7CiAJLnVwZGF0ZV9wbGFuZSA9 IGludGVsX3VwZGF0ZV9wbGFuZSwKLQkuZGlzYWJsZV9wbGFuZSA9IGludGVsX3ByaW1hcnlfcGxh bmVfZGlzYWJsZSwKKwkuZGlzYWJsZV9wbGFuZSA9IGludGVsX2Rpc2FibGVfcGxhbmUsCiAJLmRl c3Ryb3kgPSBpbnRlbF9wbGFuZV9kZXN0cm95LAogCS5zZXRfcHJvcGVydHkgPSBpbnRlbF9wbGFu ZV9zZXRfcHJvcGVydHkKIH07CkBAIC0xMTg5NiwxOCArMTE4OTUsNiBAQCBzdGF0aWMgc3RydWN0 IGRybV9wbGFuZSAqaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIH0KIAogc3RhdGljIGludAotaW50ZWxfY3Vyc29yX3BsYW5lX2Rpc2FibGUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpCi17Ci0JaWYgKCFwbGFuZS0+ZmIpCi0JCXJldHVybiAwOwotCi0J QlVHX09OKCFwbGFuZS0+Y3J0Yyk7Ci0KLQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT51cGRhdGVfcGxh bmUocGxhbmUsIHBsYW5lLT5jcnRjLCBOVUxMLAotCQkJCQkgIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDApOwotfQotCi1zdGF0aWMgaW50CiBpbnRlbF9jaGVja19jdXJzb3JfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCiAJCQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKIHsK QEAgLTEyMDMwLDcgKzEyMDE3LDcgQEAgdXBkYXRlOgogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9wbGFuZV9mdW5jcyBpbnRlbF9jdXJzb3JfcGxhbmVfZnVuY3MgPSB7CiAJLnVwZGF0ZV9wbGFu ZSA9IGludGVsX3VwZGF0ZV9wbGFuZSwKLQkuZGlzYWJsZV9wbGFuZSA9IGludGVsX2N1cnNvcl9w bGFuZV9kaXNhYmxlLAorCS5kaXNhYmxlX3BsYW5lID0gaW50ZWxfZGlzYWJsZV9wbGFuZSwKIAku ZGVzdHJveSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ksCiAJLnNldF9wcm9wZXJ0eSA9IGludGVsX3Bs YW5lX3NldF9wcm9wZXJ0eSwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDVmN2Ew NzEuLmRhNGRhMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMDIxLDYgKzEwMjEs NyBAQCBpbnQgaW50ZWxfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCSAgICAgICB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25l ZCBpbnQgY3J0Y19oLAogCQkgICAgICAgdWludDMyX3Qgc3JjX3gsIHVpbnQzMl90IHNyY195LAog CQkgICAgICAgdWludDMyX3Qgc3JjX3csIHVpbnQzMl90IHNyY19oKTsKK2ludCBpbnRlbF9kaXNh YmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKIAogLyogaW50ZWxfZHBfbXN0LmMg Ki8KIGludCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0LCBpbnQgY29ubl9pZCk7CkBAIC0xMjAxLDcgKzEyMDIsNiBAQCBp bnQgaW50ZWxfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJ ICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wLAogCQkJICAgICB1aW50NjRfdCB2YWwpOwog aW50IGludGVsX3BsYW5lX3Jlc3RvcmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwotdm9pZCBp bnRlbF9wbGFuZV9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKIGludCBpbnRlbF9z cHJpdGVfc2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ CQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiBpbnQgaW50ZWxfc3ByaXRlX2dl dF9jb2xvcmtleShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zcHJpdGUuYwppbmRleCBiZmQ1MjcwLi5iYzU4MzRiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAtMTEwOSw3ICsxMTA5LDEyIEBAIGludGVsX2NoZWNrX3Nw cml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAljb25zdCBzdHJ1Y3QgZHJtX3Jl Y3QgKmNsaXAgPSAmc3RhdGUtPmNsaXA7CiAJaW50IGhzY2FsZSwgdnNjYWxlOwogCWludCBtYXhf c2NhbGUsIG1pbl9zY2FsZTsKLQlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3Bw KGZiLT5waXhlbF9mb3JtYXQsIDApOworCWludCBwaXhlbF9zaXplOworCisJaWYgKCFmYikgewor CQlzdGF0ZS0+dmlzaWJsZSA9IGZhbHNlOworCQlyZXR1cm4gMDsKKwl9CiAKIAkvKiBEb24ndCBt b2RpZnkgYW5vdGhlciBwaXBlJ3MgcGxhbmUgKi8KIAlpZiAoaW50ZWxfcGxhbmUtPnBpcGUgIT0g aW50ZWxfY3J0Yy0+cGlwZSkgewpAQCAtMTIzMiw2ICsxMjM3LDcgQEAgaW50ZWxfY2hlY2tfc3By aXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlpZiAoc3JjX3cgPCAzIHx8IHNy Y19oIDwgMykKIAkJCXN0YXRlLT52aXNpYmxlID0gZmFsc2U7CiAKKwkJcGl4ZWxfc2l6ZSA9IGRy bV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwogCQl3aWR0aF9ieXRlcyA9 ICgoc3JjX3ggKiBwaXhlbF9zaXplKSAmIDYzKSArCiAJCQkJCXNyY193ICogcGl4ZWxfc2l6ZTsK IApAQCAtMTI3Niw2ICsxMjgyLDE3IEBAIGludGVsX2NvbW1pdF9zcHJpdGVfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJYm9vbCBwcmltYXJ5X2VuYWJsZWQ7CiAKIAkvKgorCSAqICdw cmVwYXJlJyBpcyBuZXZlciBjYWxsZWQgd2hlbiBwbGFuZSBpcyBiZWluZyBkaXNhYmxlZCwgc28g d2UgbmVlZAorCSAqIHRvIGhhbmRsZSBmcm9udGJ1ZmZlciB0cmFja2luZyBoZXJlCisJICovCisJ aWYgKCFmYikgeworCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJCWk5MTVfZ2Vt X3RyYWNrX2ZiKGludGVsX2ZiX29iaihwbGFuZS0+ZmIpLCBOVUxMLAorCQkJCSAgSU5URUxfRlJP TlRCVUZGRVJfU1BSSVRFKHBpcGUpKTsKKwkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7CisJfQorCisJLyoKIAkgKiBJZiB0aGUgc3ByaXRlIGlzIGNvbXBsZXRlbHkgY292ZXJpbmcg dGhlIHByaW1hcnkgcGxhbmUsCiAJICogd2UgY2FuIGRpc2FibGUgdGhlIHByaW1hcnkgYW5kIHNh dmUgcG93ZXIuCiAJICovCkBAIC0xMzI3LDUwICsxMzQ0LDYgQEAgaW50ZWxfY29tbWl0X3Nwcml0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl9CiB9CiAKLXN0YXRpYyBpbnQKLWlu dGVsX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCi17Ci0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Ci0Jc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9w bGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YzsKLQllbnVtIHBpcGUgcGlwZTsKLQotCWlmICghcGxhbmUtPmZiKQotCQlyZXR1cm4gMDsK LQotCWlmIChXQVJOX09OKCFwbGFuZS0+Y3J0YykpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGxhbmUtPmNydGMpOwotCXBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOwotCi0JaWYgKGludGVsX2NydGMtPmFjdGl2ZSkgewotCQlib29sIHByaW1hcnlfd2Fz X2VuYWJsZWQgPSBpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQ7Ci0KLQkJaW50ZWxfY3J0Yy0+ cHJpbWFyeV9lbmFibGVkID0gdHJ1ZTsKLQotCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFuZShw bGFuZSwgcGxhbmUtPmNydGMpOwotCi0JCWlmICghcHJpbWFyeV93YXNfZW5hYmxlZCAmJiBpbnRl bF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpCi0JCQlpbnRlbF9wb3N0X2VuYWJsZV9wcmltYXJ5KHBs YW5lLT5jcnRjKTsKLQl9Ci0KLQlpZiAoaW50ZWxfcGxhbmUtPm9iaikgewotCQlpZiAoaW50ZWxf Y3J0Yy0+YWN0aXZlKQotCQkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgaW50ZWxfcGxhbmUt PnBpcGUpOwotCi0JCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJaW50ZWxfdW5w aW5fZmJfb2JqKGludGVsX3BsYW5lLT5vYmopOwotCQlpOTE1X2dlbV90cmFja19mYihpbnRlbF9w bGFuZS0+b2JqLCBOVUxMLAotCQkJCSAgSU5URUxfRlJPTlRCVUZGRVJfU1BSSVRFKHBpcGUpKTsK LQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0KLQkJaW50ZWxfcGxhbmUtPm9i aiA9IE5VTEw7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVsX2Rlc3Ry b3lfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5l ICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKQEAgLTE0NzgsMTQgKzE0NTEs NiBAQCBpbnQgaW50ZWxfcGxhbmVfcmVzdG9yZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAkJ CQkgIGludGVsX3BsYW5lLT5zcmNfdywgaW50ZWxfcGxhbmUtPnNyY19oKTsKIH0KIAotdm9pZCBp bnRlbF9wbGFuZV9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQotewotCWlmICghcGxh bmUtPmNydGMgfHwgIXBsYW5lLT5mYikKLQkJcmV0dXJuOwotCi0JaW50ZWxfZGlzYWJsZV9wbGFu ZShwbGFuZSk7Ci19Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVs X3BsYW5lX2Z1bmNzID0gewogCS51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRhdGVfcGxhbmUsCiAJ LmRpc2FibGVfcGxhbmUgPSBpbnRlbF9kaXNhYmxlX3BsYW5lLAotLSAKMS44LjUuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK