From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Hoath Subject: [PATCH v10] drm/i915: Extend LRC pinning to cover GPU context writeback Date: Wed, 13 Jan 2016 16:19:45 +0000 Message-ID: <1452701985-19706-1-git-send-email-nicholas.hoath@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 4EC206E7CE for ; Wed, 13 Jan 2016 08:19:56 -0800 (PST) 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: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org VXNlIHRoZSBmaXJzdCByZXRpcmVkIHJlcXVlc3Qgb24gYSBuZXcgY29udGV4dCB0byB1bnBpbgp0 aGUgb2xkIGNvbnRleHQuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBodyBjb250ZXh0IHJlbWFpbnMK Ym91bmQgdW50aWwgaXQgaGFzIGJlZW4gd3JpdHRlbiBiYWNrIHRvIGJ5IHRoZSBHUFUuCk5vdyB0 aGF0IHRoZSBjb250ZXh0IGlzIHBpbm5lZCB1bnRpbCBsYXRlciBpbiB0aGUgcmVxdWVzdC9jb250 ZXh0CmxpZmVjeWNsZSwgaXQgbm8gbG9uZ2VyIG5lZWRzIHRvIGJlIHBpbm5lZCBmcm9tIGNvbnRl eHRfcXVldWUgdG8KcmV0aXJlX3JlcXVlc3RzLgpUaGlzIGZpeGVzIGFuIGlzc3VlIHdpdGggR3VD IHN1Ym1pc3Npb24gd2hlcmUgdGhlIEdQVSBtaWdodCBub3QKaGF2ZSBmaW5pc2hlZCB3cml0aW5n IGJhY2sgdGhlIGNvbnRleHQgYmVmb3JlIGl0IGlzIHVucGlubmVkLiBUaGlzCnJlc3VsdHMgaW4g YSBHUFUgaGFuZy4KCnYyOiBNb3ZlZCB0aGUgbmV3IHBpbiB0byBjb3ZlciBHdUMgc3VibWlzc2lv biAoQWxleCBEYWkpCiAgICBNb3ZlZCB0aGUgbmV3IHVucGluIHRvIHJlcXVlc3RfcmV0aXJlIHRv IGZpeCBjb3ZlcmFnZSBsZWFrCnYzOiBBZGRlZCBzd2l0Y2ggdG8gZGVmYXVsdCBjb250ZXh0IGlm IGZyZWVpbmcgYSBzdGlsbCBwaW5uZWQKICAgIGNvbnRleHQganVzdCBpbiBjYXNlIHRoZSBodyB3 YXMgYWN0dWFsbHkgc3RpbGwgdXNpbmcgaXQKdjQ6IFVud3JhcHBlZCBjb250ZXh0IHVucGluIHRv IGFsbG93IGNhbGxpbmcgd2l0aG91dCBhIHJlcXVlc3QKdjU6IE9ubHkgY3JlYXRlIGEgc3dpdGNo IHRvIGlkbGUgY29udGV4dCBpZiB0aGUgcmluZyBkb2Vzbid0CiAgICBhbHJlYWR5IGhhdmUgYSBy ZXF1ZXN0IHBlbmRpbmcgb24gaXQgKEFsZXggRGFpKQogICAgUmVuYW1lIHVuc2F2ZWQgdG8gZGly dHkgdG8gYXZvaWQgZG91YmxlIG5lZ2F0aXZlcyAoRGF2ZSBHb3Jkb24pCiAgICBDaGFuZ2VkIF9u b19yZXEgcG9zdGZpeCB0byBfXyBwcmVmaXggZm9yIGNvbnNpc3RlbmN5IChEYXZlIEdvcmRvbikK ICAgIFNwbGl0IG91dCBwZXIgZW5naW5lIGNsZWFudXAgZnJvbSBjb250ZXh0X2ZyZWUgYXMgaXQK ICAgIHdhcyBnZXR0aW5nIHVud2llbGR5CiAgICBDb3JyZWN0ZWQgbG9ja2luZyAoRGF2ZSBHb3Jk b24pCnY2OiBSZW1vdmVkIHNvbWUgYmlrZXNoZWRkaW5nIChNaWthIEt1b3BwYWxhKQogICAgQWRk ZWQgZXhwbGFuYXRpb24gb2YgdGhlIEd1QyBoYW5nIHRoYXQgdGhpcyBmaXhlcyAoRGFuaWVsIFZl dHRlcikKdjc6IFJlbW92ZWQgZXh0cmEgcGVyIHJlcXVlc3QgcGlubmluZyBmcm9tIHJpbmcgcmVz ZXQgY29kZSAoQWxleCBEYWkpCiAgICBBZGRlZCBmb3JjZWQgcmluZyB1bnBpbi9jbGVhbiBpbiBl cnJvciBjYXNlIGluIGNvbnRleHQgZnJlZSAoQWxleCBEYWkpCnY4OiBSZW5hbWVkIGxyYyBzcGVj aWZpYyBsYXN0X2NvbnRleHQgdG8gbHJjX2xhc3RfY29udGV4dCBhcyB0aGVyZQogICAgd2VyZSBz b21lIHJlc2V0IGNhc2VzIHdoZXJlIHRoZSBjb2RlcGF0aHMgbGVha2VkIChNaWthIEt1b3BwYWxh KQogICAgTlVMTCdkIGxhc3RfY29udGV4dCBpbiByZXNldCBjYXNlIC0gdGhlcmUgd2FzIGEgcG9p bnRlciBsZWFrCiAgICBpZiBzb21lb25lIGRpZCByZXNldC0+Y2xvc2UgY29udGV4dC4Kdjk6IFJl YmFzZSBvdmVyICJGaXggY29udGV4dC9lbmdpbmUgY2xlYW51cCBvcmRlciIKdjEwOiBSZWJhc2Ug b3ZlciBuaWdodGx5LCByZW1vdmUgV0FSTl9PTiB3aGljaCBjYXVzZWQgdGhlCiAgICBkZXBlbmRl bmN5IG9uIGRldi4KClNpZ25lZC1vZmYtYnk6IE5pY2sgSG9hdGggPG5pY2hvbGFzLmhvYXRoQGlu dGVsLmNvbT4KSXNzdWU6IFZJWi00Mjc3CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVy QGZmd2xsLmNoPgpDYzogRGF2aWQgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+CkNj OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IEFsZXggRGFpIDx5 dS5kYWlAaW50ZWwuY29tPgpDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5p bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwg ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8ICAgMyArCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAxMzggKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAg ICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAg IDEgKwogNSBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMTA0YmQxOC4uZDI4ZTEwYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC04ODIsNiArODgyLDcgQEAgc3RydWN0IGludGVsX2NvbnRleHQg ewogCXN0cnVjdCB7CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpzdGF0ZTsKIAkJc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7CisJCWJvb2wgZGlydHk7CiAJCWludCBwaW5f Y291bnQ7CiAJfSBlbmdpbmVbSTkxNV9OVU1fUklOR1NdOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YwppbmRleCBkZGMyMWQ0Li43Yjc5NDA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTE0 MTMsNiArMTQxMyw5IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIHsKIAl0cmFjZV9pOTE1X2dlbV9yZXF1 ZXN0X3JldGlyZShyZXF1ZXN0KTsKIAorCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpCisJCWlu dGVsX2xyX2NvbnRleHRfY29tcGxldGVfY2hlY2socmVxdWVzdCk7CisKIAkvKiBXZSBrbm93IHRo ZSBHUFUgbXVzdCBoYXZlIHJlYWQgdGhlIHJlcXVlc3QgdG8gaGF2ZQogCSAqIHNlbnQgdXMgdGhl IHNlcW5vICsgaW50ZXJydXB0LCBzbyB1c2UgdGhlIHBvc2l0aW9uCiAJICogb2YgdGFpbCBvZiB0 aGUgcmVxdWVzdCB0byB1cGRhdGUgdGhlIGxhc3Qga25vd24gcG9zaXRpb24KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKaW5kZXggNTAyNzY5OS4uYjY2MTA1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKQEAgLTU4NSw5ICs1ODUsNiBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1 ZXVlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKmN1cnNvcjsKIAlpbnQgbnVtX2VsZW1lbnRzID0gMDsKIAotCWlmIChy ZXF1ZXN0LT5jdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KQotCQlpbnRlbF9scl9jb250ZXh0 X3BpbihyZXF1ZXN0KTsKLQogCWk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOwog CiAJc3Bpbl9sb2NrX2lycSgmcmluZy0+ZXhlY2xpc3RfbG9jayk7CkBAIC03NjMsNiArNzYwLDEz IEBAIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCWlmIChpbnRlbF9yaW5nX3N0b3BwZWQocmluZykpCiAJ CXJldHVybjsKIAorCWlmIChyZXF1ZXN0LT5jdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7 CisJCWlmICghcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5KSB7CisJCQlpbnRl bF9scl9jb250ZXh0X3BpbihyZXF1ZXN0KTsKKwkJCXJlcXVlc3QtPmN0eC0+ZW5naW5lW3Jpbmct PmlkXS5kaXJ0eSA9IHRydWU7CisJCX0KKwl9CisKIAlpZiAoZGV2X3ByaXYtPmd1Yy5leGVjYnVm X2NsaWVudCkKIAkJaTkxNV9ndWNfc3VibWl0KGRldl9wcml2LT5ndWMuZXhlY2J1Zl9jbGllbnQs IHJlcXVlc3QpOwogCWVsc2UKQEAgLTk4OSwxMiArOTkzLDYgQEAgdm9pZCBpbnRlbF9leGVjbGlz dHNfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJc3Bpbl91 bmxvY2tfaXJxKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZShyZXEsIHRtcCwgJnJldGlyZWRfbGlzdCwgZXhlY2xpc3RfbGluaykgewotCQlzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY3R4ID0gcmVxLT5jdHg7Ci0JCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpjdHhfb2JqID0KLQkJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Ci0KLQkJaWYg KGN0eF9vYmogJiYgKGN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpKQotCQkJaW50ZWxfbHJf Y29udGV4dF91bnBpbihyZXEpOwogCQlsaXN0X2RlbCgmcmVxLT5leGVjbGlzdF9saW5rKTsKIAkJ aTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwogCX0KQEAgLTEwODksMjEgKzEwODcs MzkgQEAgcmVzZXRfcGluX2NvdW50OgogCXJldHVybiByZXQ7CiB9CiAKLXZvaWQgaW50ZWxfbHJf Y29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQorc3RhdGljIHZv aWQgX19pbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs CisJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZyA9IHJxLT5yaW5nOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2Jq ID0gcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZiA9IHJxLT5yaW5nYnVmOwotCisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7CisJc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKIAlp ZiAoY3R4X29iaikgewogCQlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3Ry dWN0X211dGV4KSk7Ci0JCWlmICgtLXJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50 ID09IDApIHsKKwkJaWYgKC0tY3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCA9PSAwKSB7 CiAJCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKIAkJCWk5MTVfZ2VtX29i amVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwogCQl9CiAJfQogfQogCit2b2lkIGludGVsX2xyX2Nv bnRleHRfdW5waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKK3sKKwlfX2ludGVs X2xyX2NvbnRleHRfdW5waW4ocnEtPnJpbmcsIHJxLT5jdHgpOworfQorCit2b2lkIGludGVsX2xy X2NvbnRleHRfY29tcGxldGVfY2hlY2soc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEp Cit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKworCWlmIChy aW5nLT5scmNfbGFzdF9jb250ZXh0ICYmIHJpbmctPmxyY19sYXN0X2NvbnRleHQgIT0gcmVxLT5j dHggJiYKKwkJCXJpbmctPmxyY19sYXN0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkp IHsKKwkJX19pbnRlbF9scl9jb250ZXh0X3VucGluKAorCQkJCXJpbmcsCisJCQkJcmluZy0+bHJj X2xhc3RfY29udGV4dCk7CisJCXJpbmctPmxyY19sYXN0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5p ZF0uZGlydHkgPSBmYWxzZTsKKwl9CisJcmluZy0+bHJjX2xhc3RfY29udGV4dCA9IHJlcS0+Y3R4 OworfQorCiBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewogCWludCByZXQsIGk7CkBAIC0yMzQ3 LDYgKzIzNjMsNzQgQEAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y3R4LCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X28KIH0KIAogLyoqCisgKiBpbnRl bF9scl9jb250ZXh0X2NsZWFuX3JpbmcoKSAtIGNsZWFuIHRoZSByaW5nIHNwZWNpZmljIHBhcnRz IG9mIGFuIExSQworICogQGN0eDogdGhlIExSIGNvbnRleHQgYmVpbmcgZnJlZWQuCisgKiBAcmlu ZzogdGhlIGVuZ2luZSBiZWluZyBjbGVhbmVkCisgKiBAY3R4X29iajogdGhlIGh3IGNvbnRleHQg YmVpbmcgdW5yZWZlcmVuY2VkCisgKiBAcmluZ2J1ZjogdGhlIHJpbmdidWYgYmVpbmcgZnJlZWQK KyAqCisgKiBUYWtlIGNhcmUgb2YgY2xlYW5pbmcgdXAgdGhlIHBlci1lbmdpbmUgYmFja2luZwor ICogb2JqZWN0cyBhbmQgdGhlIGxvZ2ljYWwgcmluZ2J1ZmZlci4KKyAqLworc3RhdGljIHZvaWQK K2ludGVsX2xyX2NvbnRleHRfY2xlYW5fcmluZyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAor CQkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCisJCQkgICAgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKmN0eF9vYmosCisJCQkgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYpCit7CisJaW50IHJldDsKKworCWlmIChjdHggPT0gcmluZy0+ZGVmYXVsdF9jb250 ZXh0KSB7CisJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOworCQlpOTE1X2dl bV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKKwl9CisKKwlpZiAoY3R4LT5lbmdpbmVbcmlu Zy0+aWRdLmRpcnR5KSB7CisJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gTlVM TDsKKworCQkvKioKKwkJICogSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHJlcXVlc3QgcGVuZGluZyBv bgorCQkgKiB0aGlzIHJpbmcsIHdhaXQgZm9yIHRoYXQgdG8gY29tcGxldGUsCisJCSAqIG90aGVy d2lzZSBjcmVhdGUgYSBzd2l0Y2ggdG8gaWRsZSByZXF1ZXN0CisJCSAqLworCQlpZiAobGlzdF9l bXB0eSgmcmluZy0+cmVxdWVzdF9saXN0KSkgeworCQkJaW50IHJldDsKKworCQkJcmV0ID0gaTkx NV9nZW1fcmVxdWVzdF9hbGxvYygKKwkJCQkJcmluZywKKwkJCQkJcmluZy0+ZGVmYXVsdF9jb250 ZXh0LAorCQkJCQkmcmVxKTsKKwkJCWlmICghcmV0KQorCQkJCWk5MTVfYWRkX3JlcXVlc3QocmVx KTsKKwkJCWVsc2UKKwkJCQlEUk1fREVCVUcoIkZhaWxlZCB0byBlbnN1cmUgY29udGV4dCBzYXZl ZCIpOworCQl9IGVsc2UgeworCQkJcmVxID0gbGlzdF9maXJzdF9lbnRyeSgKKwkJCQkJJnJpbmct PnJlcXVlc3RfbGlzdCwKKwkJCQkJdHlwZW9mKCpyZXEpLCBsaXN0KTsKKwkJfQorCQlpZiAocmVx KSB7CisJCQlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChyZXEpOworCQkJaWYgKHJldCAhPSAwKSB7 CisJCQkJLyoqCisJCQkJICogSWYgd2UgZ2V0IGhlcmUsIHRoZXJlJ3MgcHJvYmFibHkgYmVlbiBh IHJpbmcKKwkJCQkgKiByZXNldCwgc28gd2UganVzdCBjbGVhbiB1cCB0aGUgZGlydHkgZmxhZy4m CisJCQkJICogcGluIGNvdW50LgorCQkJCSAqLworCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5k aXJ0eSA9IGZhbHNlOworCQkJCV9faW50ZWxfbHJfY29udGV4dF91bnBpbigKKwkJCQkJcmluZywK KwkJCQkJY3R4KTsKKwkJCX0KKwkJfQorCX0KKworCVdBUk5fT04oY3R4LT5lbmdpbmVbcmluZy0+ aWRdLnBpbl9jb3VudCk7CisJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmdidWYpOworCWRybV9n ZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKK30KKworLyoqCiAgKiBpbnRl bF9scl9jb250ZXh0X2ZyZWUoKSAtIGZyZWUgdGhlIExSQyBzcGVjaWZpYyBiaXRzIG9mIGEgY29u dGV4dAogICogQGN0eDogdGhlIExSIGNvbnRleHQgdG8gZnJlZS4KICAqCkBAIC0yMzU4LDcgKzI0 NDQsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y3R4KQogewogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX1JJTkdTOyBpKysp IHsKKwlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7ICsraSkgewogCQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW2ldLnN0YXRlOwogCiAJCWlm IChjdHhfb2JqKSB7CkBAIC0yMzY2LDEzICsyNDUyLDEwIEBAIHZvaWQgaW50ZWxfbHJfY29udGV4 dF9mcmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCiAJCQkJCWN0eC0+ZW5naW5lW2ldLnJp bmdidWY7CiAJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmluZ2J1Zi0+cmluZzsK IAotCQkJaWYgKGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKLQkJCQlpbnRlbF91bnBp bl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKLQkJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bihjdHhfb2JqKTsKLQkJCX0KLQkJCVdBUk5fT04oY3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9j b3VudCk7Ci0JCQlpbnRlbF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1Zik7Ci0JCQlkcm1fZ2VtX29i amVjdF91bnJlZmVyZW5jZSgmY3R4X29iai0+YmFzZSk7CisJCQlpbnRlbF9scl9jb250ZXh0X2Ns ZWFuX3JpbmcoY3R4LAorCQkJCQkJICAgIHJpbmcsCisJCQkJCQkgICAgY3R4X29iaiwKKwkJCQkJ CSAgICByaW5nYnVmKTsKIAkJfQogCX0KIH0KQEAgLTI1NDgsNSArMjYzMSwxNCBAQCB2b2lkIGlu dGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCQlyaW5nYnVm LT5oZWFkID0gMDsKIAkJcmluZ2J1Zi0+dGFpbCA9IDA7CisKKwkJaWYgKGN0eC0+ZW5naW5lW3Jp bmctPmlkXS5kaXJ0eSkgeworCQkJX19pbnRlbF9scl9jb250ZXh0X3VucGluKAorCQkJCQlyaW5n LAorCQkJCQljdHgpOworCQkJY3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5ID0gZmFsc2U7CisJ CQlpZiAocmluZy0+bHJjX2xhc3RfY29udGV4dCA9PSBjdHgpCisJCQkJcmluZy0+bHJjX2xhc3Rf Y29udGV4dCA9IE5VTEw7CisJCX0KIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4 IGRlNDFhZDYuLjQ4NjkwZjc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApAQCAtMTA2LDYg KzEwNiw3IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCk7CiB1aW50NjRfdCBpbnRlbF9scl9j b250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAkJCQkgICAgIHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwordm9pZCBpbnRlbF9scl9jb250ZXh0X2NvbXBs ZXRlX2NoZWNrKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKIAogLyogRXhlY2xp c3RzICovCiBpbnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBpbnQgZW5hYmxlX2V4ZWNsaXN0cyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKaW5kZXggNzM0OWQ5Mi4uZmIxZGY4MyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMjc2LDYgKzI3Niw3IEBAIHN0cnVjdCAgaW50ZWxf ZW5naW5lX2NzIHsKIAkJCQkgICAgICB1MzIgZmx1c2hfZG9tYWlucyk7CiAJaW50CQkoKmVtaXRf YmJfc3RhcnQpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCQkgdTY0IG9m ZnNldCwgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpOworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICps cmNfbGFzdF9jb250ZXh0OwogCiAJLyoqCiAJICogTGlzdCBvZiBvYmplY3RzIGN1cnJlbnRseSBp bnZvbHZlZCBpbiByZW5kZXJpbmcgZnJvbSB0aGUKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=