From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC 5/5] drm/i915: Per batch buffer VCS balancing Date: Mon, 13 Nov 2017 13:09:09 +0000 Message-ID: <20171113130909.31345-6-tvrtko.ursulin@linux.intel.com> References: <20171113130909.31345-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id B522C6E5D2 for ; Mon, 13 Nov 2017 13:09:24 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id g141so15021947wmg.2 for ; Mon, 13 Nov 2017 05:09:24 -0800 (PST) In-Reply-To: <20171113130909.31345-1-tvrtko.ursulin@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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkJ1aWxkaW5n IG9uIHRvcCBvZiB0aGUgdGhyZWUgcHJldmlvdXNseSBpbnRyb2R1Y2VkIG5ldyBwaWVjZXMgb2Yg dUFQSSwKY2xhc3MvaW5zdGFuY2UgYmFzZWQgZW5naW5lIHNlbGVjdGlvbiwgZW5naW5lIGNhcGFi aWxpdGllcyBhbmQgY29uY3VycmVudApjb250ZXh0cywgd2UgY2FuIGV4dGVuZCB0aGUgZXhlY2J1 ZjIgdUFQSSB0byBhbGxvdyBwZXIgYmF0Y2ggYnVmZmVyIGxvYWQKYmFsYW5jaW5nIG9uIHRoZSBW Q1MgZW5naW5lcy4KCkxlZ2FjeSBleGVjYnVmLCB3aXRoIGNvbnRleHRzIG1hcmsgYXMgY29uY3Vy cmVudCwgY2FuIG5vdyBsb2FkIGJhbGFuY2UKYmV0d2VlbiBpbmRpdmlkdWFsIGJhdGNoZXMsIGlu c3RlYWQgb2Ygb25seSBzdGF0aWNhbGx5IHBlciBjbGllbnQuCgpUaGlzIGFsc28gbWVhbnMgdHdv IGJhdGNoZXMgc3VibWl0dGVkIG9uZSBhZnRlciBhbm90aGVyLCBidXQgYm90aCB0bwpJOTE1X0VY RUNfQlNELCBjYW4gcG90ZW50aWFsbHkgYmUgcnVubmluZyBpbiBwYXJhbGxlbCBvbiBWQ1MwIGFu ZCBWQ1MxCnJlc3BlY3RpdmVseS4KCkZvciBsZWdhY3kgKG5vbi1jb25jdXJyZW50KSBjb250ZXh0 cywgYmVoYXZpb3VyIGlzIHVuY2hhbmdlZC4gVkNTIGVuZ2luZQppcyBhc3NpZ25lZCB0byBlYWNo IGNvbnRleHQgYXQgdGhlIHRpbWUgb2YgZmlyc3Qgc3VibWlzc2lvbiBhbmQgaXQKcGVyc2lzdHMg Zm9yIHRoZSBjb250ZXh0IGxpZmV0aW1lLgoKSW4gYm90aCBjYXNlcyB0cml2aWFsIHJvdW5kLXJv YmluIGFwcHJvYWNoIGlzIHVzZWQgdG8gbG9hZCBiYWxhbmNlLgoKSWYgZXhlY2J1ZiByZXF1aXJl cyBhICBhIHBhcnRpY3VsYXIgZW5naW5lIGZlYXR1cmUsIGxpa2UgZm9yIGV4YW1wbGUgSEVWQwp3 aGljaCBpcyBvbmx5IGF2YWlsYWJsZSBvbiB2Y3MwLCBpdCBuZWVkcyB0byBtYXJrIGl0J3MgZXhl Y2J1ZiBjYWxscwphcHByb3ByaWF0ZWx5IHVzaW5nIHRoZSBlbmdpbmUgY2FwYWJpbGl0aWVzIHVB UEkuCgpGb3IgdGhlIGNsYXNzL2luc3RhbmNlIGJhc2VkIGV4ZWNidWYgd2UgYWRkIEk5MTVfRVhF Q19JTlNUQU5DRV9BTlkgdG8KYWNjb21wbGlzaCB0aGUgc2FtZSBiZWhhdmlvdXIuIFRoaXMgaXMg b25seSBhbGxvd2VkIHRvIGJlIHVzZWQgb24KY29uY3VycmVudCBjb250ZXh0cyBvciBhbiBlcnJv ciB3aWxsIGJlIHJldHVybmVkLgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRr by51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgICAgICAgfCAgNyArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMg ICAgfCAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggICAgfCAg MiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCA4MCArKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAg ICAgICAgICAgICAgICB8ICA2ICsrKwogNiBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCsp LCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBiZjcyMTY3NDI0 NTIuLjkxMzcxMjdmYWQyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xNTYyLDkgKzE1 NjIsNiBAQCBzdHJ1Y3QgaTkxNV9nZW1fbW0gewogCiAJdTY0IHVub3JkZXJlZF90aW1lbGluZTsK IAotCS8qIHRoZSBpbmRpY2F0b3IgZm9yIGRpc3BhdGNoIHZpZGVvIGNvbW1hbmRzIG9uIHR3byBC U0QgcmluZ3MgKi8KLQlhdG9taWNfdCBic2RfZW5naW5lX2Rpc3BhdGNoX2luZGV4OwotCiAJLyoq IEJpdCA2IHN3aXp6bGluZyByZXF1aXJlZCBmb3IgWCB0aWxpbmcgKi8KIAl1aW50MzJfdCBiaXRf Nl9zd2l6emxlX3g7CiAJLyoqIEJpdCA2IHN3aXp6bGluZyByZXF1aXJlZCBmb3IgWSB0aWxpbmcg Ki8KQEAgLTIyOTIsNiArMjI4OSwxMCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgKnByZWVtcHRfY29udGV4dDsKIAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmVfY2xhc3NbTUFYX0VOR0lORV9DTEFTUyArIDFdCiAJCQkJCSAgICBbTUFY X0VOR0lORV9JTlNUQU5DRSArIDFdOworCisJLyogdGhlIGluZGljYXRvciBmb3IgZGlzcGF0Y2gg dmlkZW8gY29tbWFuZHMgb24gdHdvIEJTRCByaW5ncyAqLworCWF0b21pY190IHZjc19kaXNwYXRj aF9pbmRleDsKKwogCXN0cnVjdCBpOTE1X3ZtYSAqc2VtYXBob3JlOwogCiAJc3RydWN0IGRybV9k bWFfaGFuZGxlICpzdGF0dXNfcGFnZV9kbWFoOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXgg YzVkZGFlMmNjNGVmLi5mMzk4ODFiYmQ0ZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAt NTMwMCw3ICs1MzAwLDcgQEAgaTkxNV9nZW1fbG9hZF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXZfcHJpdi0+Z3B1X2Vycm9y LndhaXRfcXVldWUpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldl9wcml2LT5ncHVfZXJyb3Iu cmVzZXRfcXVldWUpOwogCi0JYXRvbWljX3NldCgmZGV2X3ByaXYtPm1tLmJzZF9lbmdpbmVfZGlz cGF0Y2hfaW5kZXgsIDApOworCWF0b21pY19zZXQoJmRldl9wcml2LT52Y3NfZGlzcGF0Y2hfaW5k ZXgsIDApOwogCiAJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDNlYTEyNTE5MjRl YS4uZmI3MDIxZWUzNWQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j CkBAIC0yNzUsNiArMjc1LDggQEAgX19jcmVhdGVfaHdfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJbGlzdF9hZGRfdGFpbCgmY3R4LT5saW5rLCAmZGV2X3ByaXYt PmNvbnRleHRzLmxpc3QpOwogCWN0eC0+aTkxNSA9IGRldl9wcml2OwogCWN0eC0+cHJpb3JpdHkg PSBJOTE1X1BSSU9SSVRZX05PUk1BTDsKKwlhdG9taWNfc2V0KCZjdHgtPnZjc19kaXNwYXRjaF9p bmRleCwKKwkJICAgYXRvbWljX2ZldGNoX3hvcigxLCAmZGV2X3ByaXYtPnZjc19kaXNwYXRjaF9p bmRleCkpOwogCiAJSU5JVF9SQURJWF9UUkVFKCZjdHgtPmhhbmRsZXNfdm1hLCBHRlBfS0VSTkVM KTsKIAlJTklUX0xJU1RfSEVBRCgmY3R4LT5oYW5kbGVzX2xpc3QpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5oCmluZGV4IDA1MzFjNWVlZGIyYS4uNjM4YzcxNmFmYmVmIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oCkBAIC0xOTIsNiArMTkyLDgg QEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewogCSAqIGNvbnRleHQgY2xvc2UuCiAJICovCiAJ c3RydWN0IGxpc3RfaGVhZCBoYW5kbGVzX2xpc3Q7CisKKwlhdG9taWNfdCB2Y3NfZGlzcGF0Y2hf aW5kZXg7CiB9OwogCiBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fY29udGV4dF9pc19jbG9z ZWQoY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCBlY2I2MjkwYWI2ZWUuLmE3YmY0ZmVkYmRi YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtMjM1 LDYgKzIzNSw3IEBAIHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgewogCiAJdTY0IGludmFsaWRfZmxh Z3M7IC8qKiBTZXQgb2YgZXhlY29iai5mbGFncyB0aGF0IGFyZSBpbnZhbGlkICovCiAJdTMyIGNv bnRleHRfZmxhZ3M7IC8qKiBTZXQgb2YgZXhlY29iai5mbGFncyB0byBpbnNlcnQgZnJvbSB0aGUg Y3R4ICovCisJYm9vbCBjdHhfY29uY3VycmVudDsKIAogCXUzMiBiYXRjaF9zdGFydF9vZmZzZXQ7 IC8qKiBMb2NhdGlvbiB3aXRoaW4gb2JqZWN0IG9mIGJhdGNoICovCiAJdTMyIGJhdGNoX2xlbjsg LyoqIExlbmd0aCBvZiBiYXRjaCB3aXRoaW4gb2JqZWN0ICovCkBAIC02NzUsNiArNjc2LDggQEAg c3RhdGljIGludCBlYl9zZWxlY3RfY29udGV4dChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYikK IAllYi0+Y3R4ID0gY3R4OwogCWViLT52bSA9IGN0eC0+cHBndHQgPyAmY3R4LT5wcGd0dC0+YmFz ZSA6ICZlYi0+aTkxNS0+Z2d0dC5iYXNlOwogCisJZWItPmN0eF9jb25jdXJyZW50ID0gaTkxNV9n ZW1fY29udGV4dF9pc19jb25jdXJyZW50KGN0eCk7CisKIAllYi0+Y29udGV4dF9mbGFncyA9IDA7 CiAJaWYgKGN0eC0+ZmxhZ3MgJiBDT05URVhUX05PX1pFUk9NQVApCiAJCWViLT5jb250ZXh0X2Zs YWdzIHw9IF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUzsKQEAgLTE5ODcsMjYgKzE5OTAsNjMgQEAg c3RhdGljIGludCBlYl9zdWJtaXQoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIpCiAJcmV0dXJu IDA7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgc2VsZWN0X3Zjc19lbmdpbmUoc3RydWN0IGk5 MTVfZXhlY2J1ZmZlciAqZWIsIHU2NCBlYl9mbGFncykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9IGViLT5pOTE1OworCXU4IGViX2NhcHMgPSAoZWJfZmxhZ3MgJiBJOTE1X0VY RUNfRU5HSU5FX0NBUF9NQVNLKSA+PgorCQkgICAgIEk5MTVfRVhFQ19FTkdJTkVfQ0FQX1NISUZU OworCXVuc2lnbmVkIGludCBpbnN0YW5jZTsKKworCWlmICghSEFTX0JTRDIoaTkxNSkpCisJCXJl dHVybiAwOworCisJaW5zdGFuY2UgPSBhdG9taWNfZmV0Y2hfeG9yKDEsICZlYi0+Y3R4LT52Y3Nf ZGlzcGF0Y2hfaW5kZXgpOworCisJaWYgKGluc3RhbmNlID09IDEgJiYKKwkgICAgKGViX2NhcHMg JiBpOTE1LT5lbmdpbmVbX1ZDUyhpbnN0YW5jZSldLT5jYXBzKSAhPSBlYl9jYXBzKQorCQlpbnN0 YW5jZSA9IDA7CisKKwlyZXR1cm4gaW5zdGFuY2U7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQK K2NsaWVudF9zdGF0aWNfdmNzX2Nob2ljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK KwkJCSBzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYpCit7CisJLyoKKwkg KiBDaGVjayB3aGV0aGVyIHRoZSBmaWxlX3ByaXYgaGFzIGFscmVhZHkgc2VsZWN0ZWQgb25lIGVu Z2luZQorCSAqIGFuZCBpZiBub3Qgc2VsZWN0IG9uZS4KKwkgKi8KKwlpZiAoKGludClmaWxlX3By aXYtPmJzZF9lbmdpbmUgPCAwKQorCQlmaWxlX3ByaXYtPmJzZF9lbmdpbmUgPQorCQkJCWF0b21p Y19mZXRjaF94b3IoMSwgJmk5MTUtPnZjc19kaXNwYXRjaF9pbmRleCk7CisKKwlyZXR1cm4gZmls ZV9wcml2LT5ic2RfZW5naW5lOworfQorCiAvKioKICAqIEZpbmQgb25lIEJTRCByaW5nIHRvIGRp c3BhdGNoIHRoZSBjb3JyZXNwb25kaW5nIEJTRCBjb21tYW5kLgogICogVGhlIGVuZ2luZSBpbmRl eCBpcyByZXR1cm5lZC4KICAqLwogc3RhdGljIHVuc2lnbmVkIGludAotZ2VuOF9kaXNwYXRjaF9i c2RfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUpCitlYl9zZWxlY3RfdmNzX2VuZ2luZShzdHJ1Y3QgaTkxNV9leGVjYnVm ZmVyICplYiwKKwkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYs CisJCSAgICAgdTY0IGViX2ZsYWdzKQogewotCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUg KmZpbGVfcHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2OwotCi0JLyogQ2hlY2sgd2hldGhlciB0aGUg ZmlsZV9wcml2IGhhcyBhbHJlYWR5IHNlbGVjdGVkIG9uZSByaW5nLiAqLwotCWlmICgoaW50KWZp bGVfcHJpdi0+YnNkX2VuZ2luZSA8IDApCi0JCWZpbGVfcHJpdi0+YnNkX2VuZ2luZSA9IGF0b21p Y19mZXRjaF94b3IoMSwKLQkJCSAmZGV2X3ByaXYtPm1tLmJzZF9lbmdpbmVfZGlzcGF0Y2hfaW5k ZXgpOwotCi0JcmV0dXJuIGZpbGVfcHJpdi0+YnNkX2VuZ2luZTsKKwkvKgorCSAqIEZvciBjb25j dXJyZW50IGNvbnRleHRzIGRvIGEgcm91bmQtcm9iaW4gZW5naW5lIGFzc2lnbm1lbnQKKwkgKiBm b3IgZWFjaCBiYXRjaCBidWZmZXIuCisJICovCisJaWYgKGViLT5jdHhfY29uY3VycmVudCkKKwkJ cmV0dXJuIHNlbGVjdF92Y3NfZW5naW5lKGViLCBlYl9mbGFncyk7CisJZWxzZQorCQlyZXR1cm4g Y2xpZW50X3N0YXRpY192Y3NfY2hvaWNlKGViLT5pOTE1LCBmaWxlX3ByaXYpOwogfQogCiBzdGF0 aWMgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqCi1lYl9zZWxlY3RfZW5naW5lX2NsYXNzX2luc3Rh bmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1NjQgZWJfZmxhZ3MpCitlYl9zZWxl Y3RfZW5naW5lX2NsYXNzX2luc3RhbmNlKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAorCQkJ CXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiwKKwkJCQl1NjQgZWJfZmxh Z3MpCiB7CiAJdTggY2xhc3MgPSBlYl9mbGFncyAmIEk5MTVfRVhFQ19SSU5HX01BU0s7CiAJdTgg aW5zdGFuY2UgPSAoZWJfZmxhZ3MgJiBJOTE1X0VYRUNfSU5TVEFOQ0VfTUFTSykgPj4KQEAgLTIw MTUsNyArMjA1NSwxMCBAQCBlYl9zZWxlY3RfZW5naW5lX2NsYXNzX2luc3RhbmNlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LCB1NjQgZWJfZmxhZ3MpCiAJCSAgSTkxNV9FWEVDX0VOR0lO RV9DQVBfU0hJRlQ7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCi0JZW5naW5l ID0gaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKGk5MTUsIGNsYXNzLCBpbnN0YW5jZSk7CisJaWYg KGluc3RhbmNlID09IEk5MTVfRVhFQ19JTlNUQU5DRV9BTlkpCisJCWluc3RhbmNlID0gZWJfc2Vs ZWN0X3Zjc19lbmdpbmUoZWIsIGZpbGVfcHJpdiwgZWJfZmxhZ3MpOworCisJZW5naW5lID0gaW50 ZWxfZW5naW5lX2xvb2t1cF91c2VyKGViLT5pOTE1LCBjbGFzcywgaW5zdGFuY2UpOwogCiAJaWYg KGVuZ2luZSAmJiAoKGNhcHMgJiBlbmdpbmUtPmNhcHMpICE9IGNhcHMpKQogCQlyZXR1cm4gTlVM TDsKQEAgLTIwMzQsMTUgKzIwNzcsMTcgQEAgc3RhdGljIGNvbnN0IGVudW0gaW50ZWxfZW5naW5l X2lkIHVzZXJfcmluZ19tYXBbSTkxNV9VU0VSX1JJTkdTICsgMV0gPSB7CiB9OwogCiBzdGF0aWMg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqCi1lYl9zZWxlY3RfZW5naW5lKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKK2ViX3NlbGVjdF9lbmdpbmUoc3RydWN0IGk5MTVfZXhlY2J1 ZmZlciAqZWIsCiAJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJCSBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX2V4ZWNidWZmZXIyICphcmdzKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGViLT5pOTE1OwogCXVuc2lnbmVkIGludCB1c2VyX3JpbmdfaWQgPSBhcmdzLT5mbGFn cyAmIEk5MTVfRVhFQ19SSU5HX01BU0s7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l OwogCiAJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NMQVNTX0lOU1RBTkNFKQotCQlyZXR1 cm4gZWJfc2VsZWN0X2VuZ2luZV9jbGFzc19pbnN0YW5jZShkZXZfcHJpdiwgYXJncy0+ZmxhZ3Mp OworCQlyZXR1cm4gZWJfc2VsZWN0X2VuZ2luZV9jbGFzc19pbnN0YW5jZShlYiwgZmlsZS0+ZHJp dmVyX3ByaXYsCisJCQkJCQkgICAgICAgYXJncy0+ZmxhZ3MpOwogCiAJaWYgKHVzZXJfcmluZ19p ZCA+IEk5MTVfVVNFUl9SSU5HUykgewogCQlEUk1fREVCVUcoImV4ZWNidWYgd2l0aCB1bmtub3du IHJpbmc6ICV1XG4iLCB1c2VyX3JpbmdfaWQpOwpAQCAtMjA2MCw3ICsyMTA1LDggQEAgZWJfc2Vs ZWN0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXVuc2lnbmVk IGludCBic2RfaWR4ID0gYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfQlNEX01BU0s7CiAKIAkJaWYg KGJzZF9pZHggPT0gSTkxNV9FWEVDX0JTRF9ERUZBVUxUKSB7Ci0JCQlic2RfaWR4ID0gZ2VuOF9k aXNwYXRjaF9ic2RfZW5naW5lKGRldl9wcml2LCBmaWxlKTsKKwkJCWJzZF9pZHggPSBlYl9zZWxl Y3RfdmNzX2VuZ2luZShlYiwgZmlsZS0+ZHJpdmVyX3ByaXYsCisJCQkJCQkgICAgICAgYXJncy0+ ZmxhZ3MpOwogCQl9IGVsc2UgaWYgKGJzZF9pZHggPj0gSTkxNV9FWEVDX0JTRF9SSU5HMSAmJgog CQkJICAgYnNkX2lkeCA8PSBJOTE1X0VYRUNfQlNEX1JJTkcyKSB7CiAJCQlic2RfaWR4ID4+PSBJ OTE1X0VYRUNfQlNEX1NISUZUOwpAQCAtMjI4Myw4ICsyMzI5LDggQEAgaTkxNV9nZW1fZG9fZXhl Y2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlnb3RvIGVycl9kZXN0cm95OwogCiAJ ZXJyID0gLUVJTlZBTDsKLQllYi5lbmdpbmUgPSBlYl9zZWxlY3RfZW5naW5lKGViLmk5MTUsIGZp bGUsIGFyZ3MpOwotCWlmICghZWIuZW5naW5lKQorCWViLmVuZ2luZSA9IGViX3NlbGVjdF9lbmdp bmUoJmViLCBmaWxlLCBhcmdzKTsKKwlpZiAodW5saWtlbHkoIWViLmVuZ2luZSkpCiAJCWdvdG8g ZXJyX2VuZ2luZTsKIAogCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19SRVNPVVJDRV9TVFJF QU1FUikgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oCmluZGV4IGJlZjM3N2M0YjRmYy4uMzUyNTVkNzgwMmRiIDEw MDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oCkBAIC0xMDU2LDYgKzEwNTYsMTIgQEAgc3RydWN0IGRybV9pOTE1X2dl bV9leGVjYnVmZmVyMiB7CiAjZGVmaW5lIEk5MTVfRVhFQ19JTlNUQU5DRV9TSElGVAkoMjEpCiAj ZGVmaW5lIEk5MTVfRVhFQ19JTlNUQU5DRV9NQVNLCQkoMHhmZiA8PCBJOTE1X0VYRUNfSU5TVEFO Q0VfU0hJRlQpCiAKKy8qCisgKiBCYXRjaGVzIHNlbnQgd2l0aCBpbnN0YW5jZSBzZXQgdG8gYW55 IGNhbiBiZSBsb2FkIGJhbGFuY2VkIGJ5IHRoZSBkcml2ZXIKKyAqIGlzIGNvbmN1cnJlbnQgY29u dGV4dCBmbGFnIGlzIGFsc28gZW5hYmxlZC4KKyAqLworI2RlZmluZSBJOTE1X0VYRUNfSU5TVEFO Q0VfQU5ZCQkoMHhmZikKKwogLyoKICAqIEluZm9ybSB0aGUga2VybmVsIG9mIHdoYXQgZW5naW5l IGNhcGFiaWxpdGllcyB0aGlzIGJhdGNoIGJ1ZmZlcgogICogcmVxdWlyZXMuIEZvciBleGFtcGxl IG9ubHkgdGhlIGZpcnN0IFZDUyBlbmdpbmUgaGFzIHRoZSBIRVZDIGJsb2NrLgotLSAKMi4xNC4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK