From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 6/7] drm/i915: add frontbuffer tracking to FBC Date: Fri, 13 Feb 2015 17:23:46 -0200 Message-ID: <1423855427-2098-7-git-send-email-przanoni@gmail.com> References: <1423855427-2098-1-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qa0-f54.google.com (mail-qa0-f54.google.com [209.85.216.54]) by gabe.freedesktop.org (Postfix) with ESMTP id 8652C720DF for ; Fri, 13 Feb 2015 11:24:50 -0800 (PST) Received: by mail-qa0-f54.google.com with SMTP id x12so13944715qac.13 for ; Fri, 13 Feb 2015 11:24:49 -0800 (PST) In-Reply-To: <1423855427-2098-1-git-send-email-przanoni@gmail.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: Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpLaWxsIHRoZSBi bHQvcmVuZGVyIHRyYWNraW5nIHdlIGN1cnJlbnRseSBoYXZlIGFuZCB1c2UgdGhlIGZyb250YnVm ZmVyCnRyYWNraW5nIGluZnJhc3RydWN0dXJlLgoKRG9uJ3QgZW5hYmxlIHRoaW5ncyBieSBkZWZh dWx0IHlldC4KCnYyOiAoUm9kcmlnbykgRml4IHNtYWxsIGNvbmZsaWN0IG9uIHJlYmFzZSBhbmQg dHlwbyBhdCBzdWJqZWN0Lgp2MzogKFBhdWxvKSBSZWJhc2Ugb24gUkVOREVSX0NTIGNoYW5nZS4K djQ6IChQYXVsbykgUmViYXNlLgp2NTogKFBhdWxvKSBTaW1wbGlmeTogZmx1c2hlcyBkb24ndCBo YXZlIG9yaWdpbiAoRGFuaWVsKS4KICAgICAgICAgICAgQWxzbyByZWJhc2UgZHVlIHRvIHBhdGNo IG9yZGVyIGNoYW5nZXMuCgpTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2 aUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlA aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAg fCAxMCArLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgIHwgIDYg KystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAgICAgIHwgOTEgKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zy b250YnVmZmVyLmMgfCAxNCArLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jICB8IDQxICstLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmggIHwgIDEgLQogNiBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCA5 OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAzMGFhYThlLi43Njgw Y2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTc4Myw2ICs3ODMsOCBAQCBzdHJ1Y3Qg aTkxNV9mYmMgewogCXVuc2lnbmVkIGxvbmcgdW5jb21wcmVzc2VkX3NpemU7CiAJdW5zaWduZWQg dGhyZXNob2xkOwogCXVuc2lnbmVkIGludCBmYl9pZDsKKwl1bnNpZ25lZCBpbnQgcG9zc2libGVf ZnJhbWVidWZmZXJfYml0czsKKwl1bnNpZ25lZCBpbnQgYnVzeV9iaXRzOwogCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjOwogCWludCB5OwogCkBAIC03OTUsMTQgKzc5Nyw2IEBAIHN0cnVjdCBpOTE1 X2ZiYyB7CiAJICogcG9zc2libGUuICovCiAJYm9vbCBlbmFibGVkOwogCi0JLyogT24gZ2VuOCBz b21lIHJpbmdzIGNhbm5vbnQgcGVyZm9ybSBmYmMgY2xlYW4gb3BlcmF0aW9uIHNvIGZvciBub3cK LQkgKiB3ZSBhcmUgZG9pbmcgdGhpcyBvbiBTVyB3aXRoIG1taW8uCi0JICogVGhpcyB2YXJpYWJs ZSB3b3JrcyBpbiB0aGUgb3Bwb3NpdGUgaW5mb3JtYXRpb24gZGlyZWN0aW9uCi0JICogb2Ygcmlu Zy0+ZmJjX2RpcnR5IHRlbGxpbmcgc29mdHdhcmUgb24gZnJvbnRidWZmZXIgdHJhY2tpbmcKLQkg KiB0byBwZXJmb3JtIHRoZSBjYWNoZSBjbGVhbiBvbiBzdyBzaWRlLgotCSAqLwotCWJvb2wgbmVl ZF9zd19jYWNoZV9jbGVhbjsKLQogCXN0cnVjdCBpbnRlbF9mYmNfd29yayB7CiAJCXN0cnVjdCBk ZWxheWVkX3dvcmsgd29yazsKIAkJc3RydWN0IGRybV9jcnRjICpjcnRjOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAppbmRleCAwNWQwYTQzZi4uNTcxMTc0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKQEAgLTEwOTEsNyArMTA5MSwxMSBAQCBib29sIGludGVsX2ZiY19lbmFibGVkKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpbnRlbF9mYmNfdXBkYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwogdm9pZCBpbnRlbF9mYmNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9mYmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKLXZvaWQgYmR3X2ZiY19zd19mbHVzaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgdmFs dWUpOwordm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCisJCQkgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLAorCQkJICBlbnVt IGZiX29wX29yaWdpbiBvcmlnaW4pOwordm9pZCBpbnRlbF9mYmNfZmx1c2goc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9i aXRzKTsKIAogLyogaW50ZWxfaGRtaS5jICovCiB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgaGRtaV9yZWcsIGVudW0gcG9ydCBwb3J0KTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmJjLmMKaW5kZXggNjE4ZjdiZC4uOWZjZjQ0NiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZmJjLmMKQEAgLTE3NCwyOSArMTc0LDEwIEBAIHN0YXRpYyBib29sIGc0eF9mYmNfZW5hYmxl ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiBJOTE1X1JFQUQoRFBGQ19DT05UUk9M KSAmIERQRkNfQ1RMX0VOOwogfQogCi1zdGF0aWMgdm9pZCBzbmJfZmJjX2JsaXRfdXBkYXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBpbnRlbF9mYmNfbnVrZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1MzIgYmx0X2Vjb3NrcGQ7Ci0KLQkvKiBN YWtlIHN1cmUgYmxpdHRlciBub3RpZmllcyBGQkMgb2Ygd3JpdGVzICovCi0KLQkvKiBCbGl0dGVy IGlzIHBhcnQgb2YgTWVkaWEgcG93ZXJ3ZWxsIG9uIFZMVi4gTm8gaW1wYWN0IG9mCi0JICogaGlz IHBhcmFtIGluIG90aGVyIHBsYXRmb3JtcyBmb3Igbm93ICovCi0JaW50ZWxfdW5jb3JlX2ZvcmNl d2FrZV9nZXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9NRURJQSk7Ci0KLQlibHRfZWNvc2twZCA9IEk5 MTVfUkVBRChHRU42X0JMSVRURVJfRUNPU0tQRCk7Ci0JYmx0X2Vjb3NrcGQgfD0gR0VONl9CTElU VEVSX0ZCQ19OT1RJRlkgPDwKLQkJR0VONl9CTElUVEVSX0xPQ0tfU0hJRlQ7Ci0JSTkxNV9XUklU RShHRU42X0JMSVRURVJfRUNPU0tQRCwgYmx0X2Vjb3NrcGQpOwotCWJsdF9lY29za3BkIHw9IEdF TjZfQkxJVFRFUl9GQkNfTk9USUZZOwotCUk5MTVfV1JJVEUoR0VONl9CTElUVEVSX0VDT1NLUEQs IGJsdF9lY29za3BkKTsKLQlibHRfZWNvc2twZCAmPSB+KEdFTjZfQkxJVFRFUl9GQkNfTk9USUZZ IDw8Ci0JCQkgR0VONl9CTElUVEVSX0xPQ0tfU0hJRlQpOwotCUk5MTVfV1JJVEUoR0VONl9CTElU VEVSX0VDT1NLUEQsIGJsdF9lY29za3BkKTsKLQlQT1NUSU5HX1JFQUQoR0VONl9CTElUVEVSX0VD T1NLUEQpOwotCi0JaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FL RV9NRURJQSk7CisJSTkxNV9XUklURShNU0dfRkJDX1JFTkRfU1RBVEUsIEZCQ19SRU5EX05VS0Up OworCVBPU1RJTkdfUkVBRChNU0dfRkJDX1JFTkRfU1RBVEUpOwogfQogCiBzdGF0aWMgdm9pZCBp bGtfZmJjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCkBAIC0yMzksOSArMjIwLDEwIEBA IHN0YXRpYyB2b2lkIGlsa19mYmNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJSTkx NV9XUklURShTTkJfRFBGQ19DVExfU0EsCiAJCQkgICBTTkJfQ1BVX0ZFTkNFX0VOQUJMRSB8IG9i ai0+ZmVuY2VfcmVnKTsKIAkJSTkxNV9XUklURShEUEZDX0NQVV9GRU5DRV9PRkZTRVQsIGNydGMt PnkpOwotCQlzbmJfZmJjX2JsaXRfdXBkYXRlKGRldik7CiAJfQogCisJaW50ZWxfZmJjX251a2Uo ZGV2X3ByaXYpOworCiAJRFJNX0RFQlVHX0tNUygiZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIs IHBsYW5lX25hbWUoaW50ZWxfY3J0Yy0+cGxhbmUpKTsKIH0KIApAQCAtMzIwLDcgKzMwMiw3IEBA IHN0YXRpYyB2b2lkIGdlbjdfZmJjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCSAg IFNOQl9DUFVfRkVOQ0VfRU5BQkxFIHwgb2JqLT5mZW5jZV9yZWcpOwogCUk5MTVfV1JJVEUoRFBG Q19DUFVfRkVOQ0VfT0ZGU0VULCBjcnRjLT55KTsKIAotCXNuYl9mYmNfYmxpdF91cGRhdGUoZGV2 KTsKKwlpbnRlbF9mYmNfbnVrZShkZXZfcHJpdik7CiAKIAlEUk1fREVCVUdfS01TKCJlbmFibGVk IGZiYyBvbiBwbGFuZSAlY1xuIiwgcGxhbmVfbmFtZShpbnRlbF9jcnRjLT5wbGFuZSkpOwogfQpA QCAtMzQwLDE5ICszMjIsNiBAQCBib29sIGludGVsX2ZiY19lbmFibGVkKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJcmV0dXJuIGRldl9wcml2LT5mYmMuZW5hYmxlZDsKIH0KIAotdm9pZCBiZHdf ZmJjX3N3X2ZsdXNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiB2YWx1ZSkKLXsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JaWYg KCFJU19HRU44KGRldikpCi0JCXJldHVybjsKLQotCWlmICghaW50ZWxfZmJjX2VuYWJsZWQoZGV2 KSkKLQkJcmV0dXJuOwotCi0JSTkxNV9XUklURShNU0dfRkJDX1JFTkRfU1RBVEUsIHZhbHVlKTsK LX0KLQogc3RhdGljIHZvaWQgaW50ZWxfZmJjX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICpf X3dvcmspCiB7CiAJc3RydWN0IGludGVsX2ZiY193b3JrICp3b3JrID0KQEAgLTY4NSw2ICs2NTQs NDQgQEAgb3V0X2Rpc2FibGU6CiAJaTkxNV9nZW1fc3RvbGVuX2NsZWFudXBfY29tcHJlc3Npb24o ZGV2KTsKIH0KIAordm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCisJCQkgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLAorCQkJ ICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGRldl9wcml2LT5kZXY7CisJdW5zaWduZWQgaW50IGZiY19iaXRzOworCisJaWYgKG9yaWdpbiA9 PSBPUklHSU5fR1RUKQorCQlyZXR1cm47CisKKwlpZiAoZGV2X3ByaXYtPmZiYy5lbmFibGVkKQor CQlmYmNfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkoZGV2X3ByaXYtPmZiYy5jcnRj LT5waXBlKTsKKwllbHNlIGlmIChkZXZfcHJpdi0+ZmJjLmZiY193b3JrKQorCQlmYmNfYml0cyA9 IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkoCisJCQl0b19pbnRlbF9jcnRjKGRldl9wcml2LT5m YmMuZmJjX3dvcmstPmNydGMpLT5waXBlKTsKKwllbHNlCisJCWZiY19iaXRzID0gZGV2X3ByaXYt PmZiYy5wb3NzaWJsZV9mcmFtZWJ1ZmZlcl9iaXRzOworCisJZGV2X3ByaXYtPmZiYy5idXN5X2Jp dHMgfD0gKGZiY19iaXRzICYgZnJvbnRidWZmZXJfYml0cyk7CisKKwlpZiAoZGV2X3ByaXYtPmZi Yy5idXN5X2JpdHMpCisJCWludGVsX2ZiY19kaXNhYmxlKGRldik7Cit9CisKK3ZvaWQgaW50ZWxf ZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgICB1bnNp Z25lZCBpbnQgZnJvbnRidWZmZXJfYml0cykKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZGV2X3ByaXYtPmRldjsKKworCWlmICghZGV2X3ByaXYtPmZiYy5idXN5X2JpdHMpCisJCXJldHVy bjsKKworCWRldl9wcml2LT5mYmMuYnVzeV9iaXRzICY9IH5mcm9udGJ1ZmZlcl9iaXRzOworCisJ aWYgKCFkZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cykKKwkJaW50ZWxfZmJjX3VwZGF0ZShkZXYpOwor fQorCiAvKioKICAqIGludGVsX2ZiY19pbml0IC0gSW5pdGlhbGl6ZSBGQkMKICAqIEBkZXZfcHJp djogdGhlIGk5MTUgZGV2aWNlCkBAIC02OTMsMTIgKzcwMCwyMiBAQCBvdXRfZGlzYWJsZToKICAq Lwogdm9pZCBpbnRlbF9mYmNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7CisJZW51bSBwaXBlIHBpcGU7CisKIAlpZiAoIUhBU19GQkMoZGV2X3ByaXYpKSB7CiAJCWRl dl9wcml2LT5mYmMuZW5hYmxlZCA9IGZhbHNlOwogCQlkZXZfcHJpdi0+ZmJjLm5vX2ZiY19yZWFz b24gPSBGQkNfVU5TVVBQT1JURUQ7CiAJCXJldHVybjsKIAl9CiAKKwlmb3JfZWFjaF9waXBlKGRl dl9wcml2LCBwaXBlKSB7CisJCWRldl9wcml2LT5mYmMucG9zc2libGVfZnJhbWVidWZmZXJfYml0 cyB8PQorCQkJCUlOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSk7CisKKwkJaWYgKElTX0hB U1dFTEwoZGV2X3ByaXYpIHx8IElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gOCkKKwkJCWJy ZWFrOworCX0KKwogCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDcpIHsKIAkJZGV2 X3ByaXYtPmRpc3BsYXkuZmJjX2VuYWJsZWQgPSBpbGtfZmJjX2VuYWJsZWQ7CiAJCWRldl9wcml2 LT5kaXNwbGF5LmVuYWJsZV9mYmMgPSBnZW43X2ZiY19lbmFibGU7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZnJvbnRidWZmZXIuYwppbmRleCA1ZGE3M2YwLi4wYTFiYWM4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMKQEAgLTExOCw4ICsxMTgsNiBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9tYXJrX2ZiX2J1c3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCWNv bnRpbnVlOwogCiAJCWludGVsX2luY3JlYXNlX3BsbGNsb2NrKGRldiwgcGlwZSk7Ci0JCWlmIChy aW5nICYmIGludGVsX2ZiY19lbmFibGVkKGRldikpCi0JCQlyaW5nLT5mYmNfZGlydHkgPSB0cnVl OwogCX0KIH0KIApAQCAtMTYwLDYgKzE1OCw3IEBAIHZvaWQgaW50ZWxfZmJfb2JqX2ludmFsaWRh dGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogCWludGVsX3Bzcl9pbnZhbGlk YXRlKGRldiwgb2JqLT5mcm9udGJ1ZmZlcl9iaXRzKTsKIAlpbnRlbF9lZHBfZHJyc19pbnZhbGlk YXRlKGRldiwgb2JqLT5mcm9udGJ1ZmZlcl9iaXRzKTsKKwlpbnRlbF9mYmNfaW52YWxpZGF0ZShk ZXZfcHJpdiwgb2JqLT5mcm9udGJ1ZmZlcl9iaXRzLCBvcmlnaW4pOwogfQogCiAvKioKQEAgLTE4 NywxNiArMTg2LDcgQEAgdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCiAJaW50ZWxfZWRwX2RycnNfZmx1c2goZGV2LCBmcm9udGJ1ZmZlcl9iaXRz KTsKIAlpbnRlbF9wc3JfZmx1c2goZGV2LCBmcm9udGJ1ZmZlcl9iaXRzKTsKLQotCS8qCi0JICog RklYTUU6IFVuY29uZGl0aW9uYWwgZmJjIGZsdXNoaW5nIGhlcmUgaXMgYSByYXRoZXIgZ3Jvc3Mg aGFjayBhbmQKLQkgKiBuZWVkcyB0byBiZSByZXdvcmtlZCBpbnRvIGEgcHJvcGVyIGZyb250YnVm ZmVyIHRyYWNraW5nIHNjaGVtZSBsaWtlCi0JICogcHNyIGVtcGxveXMuCi0JICovCi0JaWYgKGRl dl9wcml2LT5mYmMubmVlZF9zd19jYWNoZV9jbGVhbikgewotCQlkZXZfcHJpdi0+ZmJjLm5lZWRf c3dfY2FjaGVfY2xlYW4gPSBmYWxzZTsKLQkJYmR3X2ZiY19zd19mbHVzaChkZXYsIEZCQ19SRU5E X0NBQ0hFX0NMRUFOKTsKLQl9CisJaW50ZWxfZmJjX2ZsdXNoKGRldl9wcml2LCBmcm9udGJ1ZmZl cl9iaXRzKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMK aW5kZXggZDE3ZTc2ZC4uZmVkNjI4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYwpAQCAtMzE3LDI5ICszMTcsNiBAQCBnZW43X3JlbmRlcl9yaW5nX2NzX3N0YWxsX3dh KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgZ2VuN19yaW5nX2ZiY19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIg dmFsdWUpCi17Ci0JaW50IHJldDsKLQotCWlmICghcmluZy0+ZmJjX2RpcnR5KQotCQlyZXR1cm4g MDsKLQotCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNik7Ci0JaWYgKHJldCkKLQkJcmV0 dXJuIHJldDsKLQkvKiBXYUZiY051a2VPbjNEQmx0Oml2Yi9oc3cgKi8KLQlpbnRlbF9yaW5nX2Vt aXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwotCWludGVsX3JpbmdfZW1pdChyaW5n LCBNU0dfRkJDX1JFTkRfU1RBVEUpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCB2YWx1ZSk7Ci0J aW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX1NUT1JFX1JFR0lTVEVSX01FTSgxKSB8IE1JX1NSTV9M Uk1fR0xPQkFMX0dUVCk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1TR19GQkNfUkVORF9TVEFU RSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIHJpbmctPnNjcmF0Y2guZ3R0X29mZnNldCArIDI1 Nik7Ci0JaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwotCi0JcmluZy0+ZmJjX2RpcnR5ID0gZmFs c2U7Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQKIGdlbjdfcmVuZGVyX3JpbmdfZmx1c2go c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJICAgICAgIHUzMiBpbnZhbGlkYXRlX2Rv bWFpbnMsIHUzMiBmbHVzaF9kb21haW5zKQpAQCAtMzk4LDkgKzM3NSw2IEBAIGdlbjdfcmVuZGVy X3JpbmdfZmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAlpbnRlbF9yaW5nX2Vt aXQocmluZywgMCk7CiAJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwogCi0JaWYgKCFpbnZhbGlk YXRlX2RvbWFpbnMgJiYgZmx1c2hfZG9tYWlucykKLQkJcmV0dXJuIGdlbjdfcmluZ19mYmNfZmx1 c2gocmluZywgRkJDX1JFTkRfTlVLRSk7Ci0KIAlyZXR1cm4gMDsKIH0KIApAQCAtNDYyLDkgKzQz Niw2IEBAIGdlbjhfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaWYgKCFpbnZhbGlkYXRlX2RvbWFpbnMg JiYgZmx1c2hfZG9tYWlucykKLQkJcmV0dXJuIGdlbjdfcmluZ19mYmNfZmx1c2gocmluZywgRkJD X1JFTkRfTlVLRSk7Ci0KIAlyZXR1cm4gMDsKIH0KIApAQCAtMjQyMCw3ICsyMzkxLDYgQEAgc3Rh dGljIGludCBnZW42X3JpbmdfZmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJ CSAgIHUzMiBpbnZhbGlkYXRlLCB1MzIgZmx1c2gpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHJpbmctPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwogCXVpbnQzMl90IGNtZDsKIAlpbnQgcmV0OwogCkBAIC0yNDI5LDcgKzIz OTksNyBAQCBzdGF0aWMgaW50IGdlbjZfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nLAogCQlyZXR1cm4gcmV0OwogCiAJY21kID0gTUlfRkxVU0hfRFc7Ci0JaWYgKElOVEVM X0lORk8ocmluZy0+ZGV2KS0+Z2VuID49IDgpCisJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49 IDgpCiAJCWNtZCArPSAxOwogCiAJLyogV2UgYWx3YXlzIHJlcXVpcmUgYSBjb21tYW5kIGJhcnJp ZXIgc28gdGhhdCBzdWJzZXF1ZW50CkBAIC0yNDQ5LDcgKzI0MTksNyBAQCBzdGF0aWMgaW50IGdl bjZfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQljbWQgfD0gTUlf SU5WQUxJREFURV9UTEI7CiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIGNtZCk7CiAJaW50ZWxfcmlu Z19lbWl0KHJpbmcsIEk5MTVfR0VNX0hXU19TQ1JBVENIX0FERFIgfCBNSV9GTFVTSF9EV19VU0Vf R1RUKTsKLQlpZiAoSU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4gPj0gOCkgeworCWlmIChJTlRF TF9JTkZPKGRldiktPmdlbiA+PSA4KSB7CiAJCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsgLyog dXBwZXIgYWRkciAqLwogCQlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7IC8qIHZhbHVlICovCiAJ fSBlbHNlICB7CkBAIC0yNDU4LDEzICsyNDI4LDYgQEAgc3RhdGljIGludCBnZW42X3JpbmdfZmx1 c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAl9CiAJaW50ZWxfcmluZ19hZHZhbmNl KHJpbmcpOwogCi0JaWYgKCFpbnZhbGlkYXRlICYmIGZsdXNoKSB7Ci0JCWlmIChJU19HRU43KGRl dikpCi0JCQlyZXR1cm4gZ2VuN19yaW5nX2ZiY19mbHVzaChyaW5nLCBGQkNfUkVORF9DQUNIRV9D TEVBTik7Ci0JCWVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpKQotCQkJZGV2X3ByaXYtPmZiYy5u ZWVkX3N3X2NhY2hlX2NsZWFuID0gdHJ1ZTsKLQl9Ci0KIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IGI2YzQ4NGYuLjJhYzJkZTIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTI2Nyw3ICsyNjcsNiBA QCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7CiAJICovCiAJc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpvdXRzdGFuZGluZ19sYXp5X3JlcXVlc3Q7CiAJYm9vbCBncHVfY2FjaGVzX2RpcnR5 OwotCWJvb2wgZmJjX2RpcnR5OwogCiAJd2FpdF9xdWV1ZV9oZWFkX3QgaXJxX3F1ZXVlOwogCi0t IAoyLjEuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK