From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 11/14] drm/i915: Calculate ILK-style watermarks during atomic check (v3) Date: Mon, 14 Sep 2015 19:19:27 -0700 Message-ID: <1442283570-26824-12-git-send-email-matthew.d.roper@intel.com> References: <1442283570-26824-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 20DEA6E97C for ; Mon, 14 Sep 2015 19:20:07 -0700 (PDT) In-Reply-To: <1442283570-26824-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 Q2FsY3VsYXRlIHBpcGUgd2F0ZXJtYXJrcyBkdXJpbmcgYXRvbWljIGNhbGN1bGF0aW9uIHBoYXNl LCBiYXNlZCBvbiB0aGUKY29udGVudHMgb2YgdGhlIGF0b21pYyB0cmFuc2FjdGlvbidzIHN0YXRl IHN0cnVjdHVyZS4gIFdlIHN0aWxsIHByb2dyYW0KdGhlIHdhdGVybWFya3MgYXQgdGhlIHNhbWUg dGltZSB3ZSBkaWQgYmVmb3JlLCBidXQgdGhlIGNvbXB1dGF0aW9uIG5vdwpoYXBwZW5zIG11Y2gg ZWFybGllci4KCldoaWxlIHRoaXMgcGF0Y2ggaXNuJ3QgdG9vIGV4Y2l0aW5nIGJ5IGl0c2VsZiwg aXQgcGF2ZXMgdGhlIHdheSBmb3IKZnV0dXJlIHBhdGNoZXMuICBUaGUgZXZlbnR1YWwgZ29hbCAo d2hpY2ggd2lsbCBiZSByZWFsaXplZCBpbiBmdXR1cmUKcGF0Y2hlcyBpbiB0aGlzIHNlcmllcykg aXMgdG8gY2FsY3VsYXRlIG11bHRpcGxlIHNldHMgdXAgd2F0ZXJtYXJrCnZhbHVlcyB1cCBmcm9u dCwgYW5kIHRoZW4gcHJvZ3JhbSB0aGVtIGF0IGRpZmZlcmVudCB0aW1lcyAocHJlLSB2cwpwb3N0 LXZibGFuaykgb24gdGhlIHBsYXRmb3JtcyB0aGF0IG5lZWQgYSB0d28tc3RlcCB3YXRlcm1hcmsg dXBkYXRlLgoKV2hpbGUgd2UncmUgYXQgaXQsIHMvaW50ZWxfY29tcHV0ZV9waXBlX3dtL2lsa19j b21wdXRlX3BpcGVfd20vIHNpbmNlCnRoaXMgZnVuY3Rpb24gb25seSBhcHBsaWVzIHRvIElMSy1z dHlsZSB3YXRlcm1hcmtzIGFuZCB3ZSBoYXZlIGEKY29tcGxldGVseSBkaWZmZXJlbnQgZnVuY3Rp b24gZm9yIFNLTC1zdHlsZSB3YXRlcm1hcmtzLgoKTm90ZSB0aGF0IHRoZSBvcmlnaW5hbCBjb2Rl IGhhZCBhIG1lbWNtcCgpIGluIGlsa191cGRhdGVfd20oKSB0byBhdm9pZApjYWxsaW5nIGlsa19w cm9ncmFtX3dhdGVybWFya3MoKSBpZiB0aGUgd2F0ZXJtYXJrcyBoYWRuJ3QgY2hhbmdlZC4gIFRo aXMKbWVtY21wIHZhbmlzaGVzIGhlcmUsIHdoaWNoIG1lYW5zIHdlIG1heSBkbyBzb21lIHVubmVj ZXNzYXJ5IHJlc3VsdApnZW5lcmF0aW9uIGFuZCBtZXJnaW5nIGluIGNhc2VzIHdoZXJlIHdhdGVy bWFya3MgZGlkbid0IGNoYW5nZSwgYnV0IHRoZQpsb3dlci1sZXZlbCBmdW5jdGlvbiBpbGtfd3Jp dGVfd21fdmFsdWVzIGFscmVhZHkgbWFrZXMgc3VyZSB0aGF0IHdlCmRvbid0IGFjdHVhbGx5IHRy eSB0byBwcm9ncmFtIHRoZSB3YXRlcm1hcmsgcmVnaXN0ZXJzIGFnYWluLgoKdjI6IFNxdWFzaCBh IGZldyBjb21taXRzIGZyb20gdGhlIG9yaWdpbmFsIHNlcmllcyB0b2dldGhlcjsgbm8gbG9uZ2Vy CiAgICBsZWF2ZSBwcmUtY2FsY3VsYXRlZCB3bSdzIGluIGEgc2VwYXJhdGUgdGVtcG9yYXJ5IHN0 cnVjdHVyZSBzaW5jZQogICAgaXQncyBlYXNpZXIgdG8gZm9sbG93IHRoZSBsb2dpYyBpZiB3ZSBq dXN0IGN1dCBvdmVyIHRvIHVzaW5nIHRoZQogICAgcHJlLWNhbGN1bGF0ZWQgdmFsdWVzIGRpcmVj dGx5LgoKdjM6CiAtIFBhc3MgaW50ZWxfY3J0YyBpbnN0ZWFkIG9mIGRybV9jcnRjIHRvIC5jb21w dXRlX3BpcGVfd20oKSBlbnRyeXBvaW50CiAgIGFuZCB1c2UgaW50ZWxfYXRvbWljX2dldF9jcnRj X3N0YXRlKCkgdG8gYXZvaWQgbmVlZCBmb3IgZXh0cmEKICAgY2FzdGluZy4gIChBbmRlcikKIC0g RHJvcCB1bnVzZWQgaW50ZWxfY2hlY2tfY3J0YygpIGZ1bmN0aW9uIHByb3RvdHlwZS4gIChBbmRl cikKClNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDIgKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDYgKysrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jICAgICAgfCA4OCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggYjE5N2Q0MS4uMjY5NjUyMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC02MjcsNiArNjI3LDggQEAgc3RydWN0IGRybV9pOTE1X2Rpc3Bs YXlfZnVuY3MgewogCQkJICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLAogCQkJICBzdHJ1Y3QgZHBs bCAqbWF0Y2hfY2xvY2ssCiAJCQkgIHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKTsKKwlpbnQgKCpj b21wdXRlX3BpcGVfd20pKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJICAgICAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiAJdm9pZCAoKnVwZGF0ZV93bSkoc3RydWN0IGRy bV9jcnRjICpjcnRjKTsKIAlpbnQgKCptb2Rlc2V0X2NhbGNfY2RjbGspKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSk7CiAJdm9pZCAoKm1vZGVzZXRfY29tbWl0X2NkY2xrKShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CmluZGV4IDk2Y2VlZDcuLjBmNTEzZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKQEAgLTExNzY4LDYgKzExNzY4LDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNf Y2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAogCX0KIAogCXJldCA9IDA7CisJaWYgKGRldl9w cml2LT5kaXNwbGF5LmNvbXB1dGVfcGlwZV93bSkgeworCQlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxh eS5jb21wdXRlX3BpcGVfd20oaW50ZWxfY3J0Yywgc3RhdGUpOworCQlpZiAocmV0KQorCQkJcmV0 dXJuIHJldDsKKwl9CisKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewogCQlpZiAo bW9kZV9jaGFuZ2VkKQogCQkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhwaXBlX2NvbmZp Zyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCBiNzRlMmE2Li4zYzY3YjVmIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKQEAgLTIwNTEsOSArMjA1MSwxMSBAQCBzdGF0aWMgdm9pZCBpbGtf Y29tcHV0ZV93bV9sZXZlbChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCQkJCSBpbnQgbGV2 ZWwsCiAJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCisJCQkJIHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcHJpc3RhdGUsCisJCQkJIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqc3Byc3RhdGUsCisJCQkJIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqY3Vyc3RhdGUsCiAJ CQkJIHN0cnVjdCBpbnRlbF93bV9sZXZlbCAqcmVzdWx0KQogewotCXN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfcGxhbmU7CiAJdWludDE2X3QgcHJpX2xhdGVuY3kgPSBkZXZfcHJpdi0+d20ucHJp X2xhdGVuY3lbbGV2ZWxdOwogCXVpbnQxNl90IHNwcl9sYXRlbmN5ID0gZGV2X3ByaXYtPndtLnNw cl9sYXRlbmN5W2xldmVsXTsKIAl1aW50MTZfdCBjdXJfbGF0ZW5jeSA9IGRldl9wcml2LT53bS5j dXJfbGF0ZW5jeVtsZXZlbF07CkBAIC0yMDY1LDI5ICsyMDY3LDExIEBAIHN0YXRpYyB2b2lkIGls a19jb21wdXRlX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJY3VyX2xhdGVuY3kgKj0gNTsKIAl9CiAKLQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9j cnRjKGRldl9wcml2LT5kZXYsIGludGVsX2NydGMsIGludGVsX3BsYW5lKSB7Ci0JCXN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcHN0YXRlID0KLQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGludGVs X3BsYW5lLT5iYXNlLnN0YXRlKTsKLQotCQlzd2l0Y2ggKGludGVsX3BsYW5lLT5iYXNlLnR5cGUp IHsKLQkJY2FzZSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOgotCQkJcmVzdWx0LT5wcmlfdmFsID0g aWxrX2NvbXB1dGVfcHJpX3dtKGNzdGF0ZSwgcHN0YXRlLAotCQkJCQkJCSAgICAgcHJpX2xhdGVu Y3ksCi0JCQkJCQkJICAgICBsZXZlbCk7Ci0JCQlyZXN1bHQtPmZiY192YWwgPSBpbGtfY29tcHV0 ZV9mYmNfd20oY3N0YXRlLCBwc3RhdGUsCi0JCQkJCQkJICAgICByZXN1bHQtPnByaV92YWwpOwot CQkJYnJlYWs7Ci0JCWNhc2UgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWToKLQkJCXJlc3VsdC0+c3By X3ZhbCA9IGlsa19jb21wdXRlX3Nwcl93bShjc3RhdGUsIHBzdGF0ZSwKLQkJCQkJCQkgICAgIHNw cl9sYXRlbmN5KTsKLQkJCWJyZWFrOwotCQljYXNlIERSTV9QTEFORV9UWVBFX0NVUlNPUjoKLQkJ CXJlc3VsdC0+Y3VyX3ZhbCA9IGlsa19jb21wdXRlX2N1cl93bShjc3RhdGUsIHBzdGF0ZSwKLQkJ CQkJCQkgICAgIGN1cl9sYXRlbmN5KTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCisJcmVzdWx0LT5w cmlfdmFsID0gaWxrX2NvbXB1dGVfcHJpX3dtKGNzdGF0ZSwgcHJpc3RhdGUsCisJCQkJCSAgICAg cHJpX2xhdGVuY3ksIGxldmVsKTsKKwlyZXN1bHQtPnNwcl92YWwgPSBpbGtfY29tcHV0ZV9zcHJf d20oY3N0YXRlLCBzcHJzdGF0ZSwgc3ByX2xhdGVuY3kpOworCXJlc3VsdC0+Y3VyX3ZhbCA9IGls a19jb21wdXRlX2N1cl93bShjc3RhdGUsIGN1cnN0YXRlLCBjdXJfbGF0ZW5jeSk7CisJcmVzdWx0 LT5mYmNfdmFsID0gaWxrX2NvbXB1dGVfZmJjX3dtKGNzdGF0ZSwgcHJpc3RhdGUsIHJlc3VsdC0+ cHJpX3ZhbCk7CiAJcmVzdWx0LT5lbmFibGUgPSB0cnVlOwogfQogCkBAIC0yMzY1LDE1ICsyMzQ5 LDE4IEBAIHN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogfQogCiAvKiBDb21wdXRlIG5ldyB3YXRlcm1hcmtzIGZvciB0aGUgcGlwZSAqLwot c3RhdGljIGJvb2wgaW50ZWxfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjc3RhdGUsCi0JCQkJICBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqcGlwZV93bSkKK3N0YXRpYyBp bnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKKwkJ CSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9j cnRjICpjcnRjID0gY3N0YXRlLT5iYXNlLmNydGM7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmRldjsKKwlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqcGlwZV93bTsKKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5kZXY7CiAJY29uc3Qgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNzdGF0ZSA9IE5VTEw7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFu ZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwczsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnByaXN0YXRlID0gTlVMTDsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnNwcnN0YXRl ID0gTlVMTDsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmN1cnN0YXRlID0gTlVMTDsKIAlp bnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2KTsKIAkvKiBMUDAgd2F0 ZXJtYXJrIG1heGltdW1zIGRlcGVuZCBvbiB0aGlzIHBpcGUgYWxvbmUgKi8KIAlzdHJ1Y3QgaW50 ZWxfd21fY29uZmlnIGNvbmZpZyA9IHsKQEAgLTIzODEsMTEgKzIzNjgsMjQgQEAgc3RhdGljIGJv b2wgaW50ZWxfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUs CiAJfTsKIAlzdHJ1Y3QgaWxrX3dtX21heGltdW1zIG1heDsKIAorCWNzdGF0ZSA9IGludGVsX2F0 b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0Yyk7CisJaWYgKElTX0VSUihjc3Rh dGUpKQorCQlyZXR1cm4gUFRSX0VSUihjc3RhdGUpOworCisJcGlwZV93bSA9ICZjc3RhdGUtPndt Lm9wdGltYWwuaWxrOworCiAJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYsIGludGVs X2NydGMsIGludGVsX3BsYW5lKSB7Ci0JCWlmIChpbnRlbF9wbGFuZS0+YmFzZS50eXBlID09IERS TV9QTEFORV9UWVBFX09WRVJMQVkpIHsKLQkJCXNwcnN0YXRlID0gdG9faW50ZWxfcGxhbmVfc3Rh dGUoaW50ZWxfcGxhbmUtPmJhc2Uuc3RhdGUpOwotCQkJYnJlYWs7Ci0JCX0KKwkJcHMgPSBkcm1f YXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwKKwkJCQkJCSZpbnRlbF9wbGFuZS0+YmFzZSk7 CisJCWlmIChJU19FUlIocHMpKQorCQkJcmV0dXJuIFBUUl9FUlIocHMpOworCisJCWlmIChpbnRl bF9wbGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpCisJCQlwcmlzdGF0 ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHBzKTsKKwkJZWxzZSBpZiAoaW50ZWxfcGxhbmUtPmJh c2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKQorCQkJc3Byc3RhdGUgPSB0b19pbnRl bF9wbGFuZV9zdGF0ZShwcyk7CisJCWVsc2UgaWYgKGludGVsX3BsYW5lLT5iYXNlLnR5cGUgPT0g RFJNX1BMQU5FX1RZUEVfQ1VSU09SKQorCQkJY3Vyc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0 ZShwcyk7CiAJfQogCiAJY29uZmlnLnNwcml0ZXNfZW5hYmxlZCA9IHNwcnN0YXRlLT52aXNpYmxl OwpAQCAtMjM5NCw3ICsyMzk0LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfY29tcHV0ZV9waXBlX3dt KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAJCWRybV9yZWN0X2hlaWdodCgmc3By c3RhdGUtPmRzdCkgIT0gZHJtX3JlY3RfaGVpZ2h0KCZzcHJzdGF0ZS0+c3JjKSA+PiAxNik7CiAK IAlwaXBlX3dtLT5waXBlX2VuYWJsZWQgPSBjc3RhdGUtPmJhc2UuYWN0aXZlOwotCXBpcGVfd20t PnNwcml0ZXNfZW5hYmxlZCA9IHNwcnN0YXRlLT52aXNpYmxlOworCXBpcGVfd20tPnNwcml0ZXNf ZW5hYmxlZCA9IGNvbmZpZy5zcHJpdGVzX2VuYWJsZWQ7CiAJcGlwZV93bS0+c3ByaXRlc19zY2Fs ZWQgPSBjb25maWcuc3ByaXRlc19zY2FsZWQ7CiAKIAkvKiBJTEsvU05COiBMUDIrIHdhdGVybWFy a3Mgb25seSB3L28gc3ByaXRlcyAqLwpAQCAtMjQwNSwyNCArMjQwNSwyNyBAQCBzdGF0aWMgYm9v bCBpbnRlbF9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwK IAlpZiAoY29uZmlnLnNwcml0ZXNfc2NhbGVkKQogCQltYXhfbGV2ZWwgPSAwOwogCi0JaWxrX2Nv bXB1dGVfd21fbGV2ZWwoZGV2X3ByaXYsIGludGVsX2NydGMsIDAsIGNzdGF0ZSwgJnBpcGVfd20t PndtWzBdKTsKKwlpbGtfY29tcHV0ZV93bV9sZXZlbChkZXZfcHJpdiwgaW50ZWxfY3J0YywgMCwg Y3N0YXRlLAorCQkJICAgICBwcmlzdGF0ZSwgc3Byc3RhdGUsIGN1cnN0YXRlLCAmcGlwZV93bS0+ d21bMF0pOwogCiAJaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKLQkJ cGlwZV93bS0+bGluZXRpbWUgPSBoc3dfY29tcHV0ZV9saW5ldGltZV93bShkZXYsIGNydGMpOwor CQlwaXBlX3dtLT5saW5ldGltZSA9IGhzd19jb21wdXRlX2xpbmV0aW1lX3dtKGRldiwKKwkJCQkJ CQkgICAgJmludGVsX2NydGMtPmJhc2UpOwogCiAJLyogTFAwIHdhdGVybWFya3MgYWx3YXlzIHVz ZSAxLzIgRERCIHBhcnRpdGlvbmluZyAqLwogCWlsa19jb21wdXRlX3dtX21heGltdW1zKGRldiwg MCwgJmNvbmZpZywgSU5URUxfRERCX1BBUlRfMV8yLCAmbWF4KTsKIAogCS8qIEF0IGxlYXN0IExQ MCBtdXN0IGJlIHZhbGlkICovCiAJaWYgKCFpbGtfdmFsaWRhdGVfd21fbGV2ZWwoMCwgJm1heCwg JnBpcGVfd20tPndtWzBdKSkKLQkJcmV0dXJuIGZhbHNlOworCQlyZXR1cm4gLUVJTlZBTDsKIAog CWlsa19jb21wdXRlX3dtX3JlZ19tYXhpbXVtcyhkZXYsIDEsICZtYXgpOwogCiAJZm9yIChsZXZl bCA9IDE7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykgewogCQlzdHJ1Y3QgaW50ZWxfd21f bGV2ZWwgd20gPSB7fTsKIAotCQlpbGtfY29tcHV0ZV93bV9sZXZlbChkZXZfcHJpdiwgaW50ZWxf Y3J0YywgbGV2ZWwsIGNzdGF0ZSwgJndtKTsKKwkJaWxrX2NvbXB1dGVfd21fbGV2ZWwoZGV2X3By aXYsIGludGVsX2NydGMsIGxldmVsLCBjc3RhdGUsCisJCQkJICAgICBwcmlzdGF0ZSwgc3Byc3Rh dGUsIGN1cnN0YXRlLCAmd20pOwogCiAJCS8qCiAJCSAqIERpc2FibGUgYW55IHdhdGVybWFyayBs ZXZlbCB0aGF0IGV4Y2VlZHMgdGhlCkBAIC0yNDM1LDcgKzI0MzgsNyBAQCBzdGF0aWMgYm9vbCBp bnRlbF9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAkJ cGlwZV93bS0+d21bbGV2ZWxdID0gd207CiAJfQogCi0JcmV0dXJuIHRydWU7CisJcmV0dXJuIDA7 CiB9CiAKIC8qCkBAIC0zNzI4LDEyICszNzMxLDYgQEAgc3RhdGljIHZvaWQgaWxrX3VwZGF0ZV93 bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCWludGVsX3dhaXRfZm9yX3ZibGFuayhjcnRjLT5k ZXYsIGludGVsX2NydGMtPnBpcGUpOwogCX0KIAotCWludGVsX2NvbXB1dGVfcGlwZV93bShjc3Rh dGUsICZjc3RhdGUtPndtLm9wdGltYWwuaWxrKTsKLQotCWlmICghbWVtY21wKCZpbnRlbF9jcnRj LT53bS5hY3RpdmUuaWxrLAotCQkgICAgJmNzdGF0ZS0+d20ub3B0aW1hbC5pbGssCi0JCSAgICBz aXplb2YoY3N0YXRlLT53bS5vcHRpbWFsLmlsaykpKTsKLQogCWludGVsX2NydGMtPndtLmFjdGl2 ZS5pbGsgPSBjc3RhdGUtPndtLm9wdGltYWwuaWxrOwogCiAJaWxrX3Byb2dyYW1fd2F0ZXJtYXJr cyhkZXZfcHJpdik7CkBAIC03MDM5LDYgKzcwMzYsNyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAkJICAgICghSVNfR0VONShkZXYpICYmIGRldl9wcml2LT53 bS5wcmlfbGF0ZW5jeVswXSAmJgogCQkgICAgIGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeVswXSAm JiBkZXZfcHJpdi0+d20uY3VyX2xhdGVuY3lbMF0pKSB7CiAJCQlkZXZfcHJpdi0+ZGlzcGxheS51 cGRhdGVfd20gPSBpbGtfdXBkYXRlX3dtOworCQkJZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9w aXBlX3dtID0gaWxrX2NvbXB1dGVfcGlwZV93bTsKIAkJfSBlbHNlIHsKIAkJCURSTV9ERUJVR19L TVMoIkZhaWxlZCB0byByZWFkIGRpc3BsYXkgcGxhbmUgbGF0ZW5jeS4gIgogCQkJCSAgICAgICJE aXNhYmxlIEN4U1JcbiIpOwotLSAKMi4xLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==