From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Hoath Subject: [PATCH v9] drm/i915: Extend LRC pinning to cover GPU context writeback Date: Fri, 18 Dec 2015 14:41:57 +0000 Message-ID: <1450449717-33485-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id E68776EA95 for ; Fri, 18 Dec 2015 06:42:00 -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 YmFzZSBvdmVyICJGaXggY29udGV4dC9lbmdpbmUgY2xlYW51cCBvcmRlciIKClNpZ25lZC1vZmYt Ynk6IE5pY2sgSG9hdGggPG5pY2hvbGFzLmhvYXRoQGludGVsLmNvbT4KSXNzdWU6IFZJWi00Mjc3 CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogRGF2aWQgR29y ZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KQ2M6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgpDYzogTWlr YSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgICAgICAgICB8ICAgNyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgICAgICAgIHwgMTQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICAgICAgfCAgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgICAxICsKIDUgZmlsZXMgY2hhbmdlZCwg MTI0IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CmluZGV4IDI3YmI0MDEuLjJmNmY0MTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtODg3 LDYgKzg4Nyw3IEBAIHN0cnVjdCBpbnRlbF9jb250ZXh0IHsKIAlzdHJ1Y3QgewogCQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqc3RhdGU7CiAJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nYnVmOworCQlib29sIGRpcnR5OwogCQlpbnQgcGluX2NvdW50OwogCX0gZW5naW5lW0k5MTVf TlVNX1JJTkdTXTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggNTE3Njc2YS4uNjllOTA0 ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xMzYyLDYgKzEzNjIsOSBAQCBzdGF0aWMg dm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QpCiB7CiAJdHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUocmVxdWVzdCk7CiAK KwlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQorCQlpbnRlbF9scl9jb250ZXh0X2NvbXBsZXRl X2NoZWNrKHJlcXVlc3QpOworCiAJLyogV2Uga25vdyB0aGUgR1BVIG11c3QgaGF2ZSByZWFkIHRo ZSByZXF1ZXN0IHRvIGhhdmUKIAkgKiBzZW50IHVzIHRoZSBzZXFubyArIGludGVycnVwdCwgc28g dXNlIHRoZSBwb3NpdGlvbgogCSAqIG9mIHRhaWwgb2YgdGhlIHJlcXVlc3QgdG8gdXBkYXRlIHRo ZSBsYXN0IGtub3duIHBvc2l0aW9uCkBAIC0yNzcyLDEwICsyNzc1LDYgQEAgc3RhdGljIHZvaWQg aTkxNV9nZW1fcmVzZXRfcmluZ19jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJCQkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0LAogCQkJCQlleGVjbGlzdF9s aW5rKTsKIAkJCWxpc3RfZGVsKCZzdWJtaXRfcmVxLT5leGVjbGlzdF9saW5rKTsKLQotCQkJaWYg KHN1Ym1pdF9yZXEtPmN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpCi0JCQkJaW50ZWxfbHJf Y29udGV4dF91bnBpbihzdWJtaXRfcmVxKTsKLQogCQkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVy ZW5jZShzdWJtaXRfcmVxKTsKIAkJfQogCQlzcGluX3VubG9ja19pcnEoJnJpbmctPmV4ZWNsaXN0 X2xvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBkNTQyYThkLi4wMTA2M2Y3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtNTcwLDkgKzU3MCw2IEBAIHN0YXRpYyBpbnQg ZXhlY2xpc3RzX2NvbnRleHRfcXVldWUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0KQogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqY3Vyc29yOwogCWludCBudW1fZWxl bWVudHMgPSAwOwogCi0JaWYgKHJlcXVlc3QtPmN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQp Ci0JCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QpOwotCiAJaTkxNV9nZW1fcmVxdWVzdF9y ZWZlcmVuY2UocmVxdWVzdCk7CiAKIAlzcGluX2xvY2tfaXJxKCZyaW5nLT5leGVjbGlzdF9sb2Nr KTsKQEAgLTczNiw2ICs3MzMsMTMgQEAgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1 Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJaWYgKGludGVsX3Jp bmdfc3RvcHBlZChyaW5nKSkKIAkJcmV0dXJuOwogCisJaWYgKHJlcXVlc3QtPmN0eCAhPSByaW5n LT5kZWZhdWx0X2NvbnRleHQpIHsKKwkJaWYgKCFyZXF1ZXN0LT5jdHgtPmVuZ2luZVtyaW5nLT5p ZF0uZGlydHkpIHsKKwkJCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QpOworCQkJcmVxdWVz dC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5ID0gdHJ1ZTsKKwkJfQorCX0KKwogCWlmIChk ZXZfcHJpdi0+Z3VjLmV4ZWNidWZfY2xpZW50KQogCQlpOTE1X2d1Y19zdWJtaXQoZGV2X3ByaXYt Pmd1Yy5leGVjYnVmX2NsaWVudCwgcmVxdWVzdCk7CiAJZWxzZQpAQCAtOTYyLDEyICs5NjYsNiBA QCB2b2lkIGludGVsX2V4ZWNsaXN0c19yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZykKIAlzcGluX3VubG9ja19pcnEoJnJpbmctPmV4ZWNsaXN0X2xvY2spOwogCiAJ bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJlcSwgdG1wLCAmcmV0aXJlZF9saXN0LCBleGVjbGlz dF9saW5rKSB7Ci0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSByZXEtPmN0eDsKLQkJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPQotCQkJCWN0eC0+ZW5naW5lW3Jpbmct PmlkXS5zdGF0ZTsKLQotCQlpZiAoY3R4X29iaiAmJiAoY3R4ICE9IHJpbmctPmRlZmF1bHRfY29u dGV4dCkpCi0JCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJlcSk7CiAJCWxpc3RfZGVsKCZyZXEt PmV4ZWNsaXN0X2xpbmspOwogCQlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKHJlcSk7CiAJ fQpAQCAtMTA2MiwyMSArMTA2MCwzOSBAQCByZXNldF9waW5fY291bnQ6CiAJcmV0dXJuIHJldDsK IH0KIAotdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcnEpCitzdGF0aWMgdm9pZCBfX2ludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywKKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKIHsKLQlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcnEtPnJpbmc7Ci0Jc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKmN0eF9vYmogPSBycS0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwot CXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcnEtPnJpbmdidWY7Ci0KKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5z dGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW3Jp bmctPmlkXS5yaW5nYnVmOwogCWlmIChjdHhfb2JqKSB7CiAJCVdBUk5fT04oIW11dGV4X2lzX2xv Y2tlZCgmcmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKLQkJaWYgKC0tcnEtPmN0eC0+ZW5naW5l W3JpbmctPmlkXS5waW5fY291bnQgPT0gMCkgeworCQlpZiAoLS1jdHgtPmVuZ2luZVtyaW5nLT5p ZF0ucGluX2NvdW50ID09IDApIHsKIAkJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdi dWYpOwogCQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7CiAJCX0KIAl9CiB9 CiAKK3ZvaWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJxKQoreworCV9faW50ZWxfbHJfY29udGV4dF91bnBpbihycS0+cmluZywgcnEtPmN0eCk7 Cit9CisKK3ZvaWQgaW50ZWxfbHJfY29udGV4dF9jb21wbGV0ZV9jaGVjayhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0g cmVxLT5yaW5nOworCisJaWYgKHJpbmctPmxyY19sYXN0X2NvbnRleHQgJiYgcmluZy0+bHJjX2xh c3RfY29udGV4dCAhPSByZXEtPmN0eCAmJgorCQkJcmluZy0+bHJjX2xhc3RfY29udGV4dC0+ZW5n aW5lW3JpbmctPmlkXS5kaXJ0eSkgeworCQlfX2ludGVsX2xyX2NvbnRleHRfdW5waW4oCisJCQkJ cmluZywKKwkJCQlyaW5nLT5scmNfbGFzdF9jb250ZXh0KTsKKwkJcmluZy0+bHJjX2xhc3RfY29u dGV4dC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IGZhbHNlOworCX0KKwlyaW5nLT5scmNfbGFz dF9jb250ZXh0ID0gcmVxLT5jdHg7Cit9CisKIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5n X3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJ aW50IHJldCwgaTsKQEAgLTIzNTAsNiArMjM2Niw4MSBAQCBwb3B1bGF0ZV9scl9jb250ZXh0KHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhf bwogfQogCiAvKioKKyAqIGludGVsX2xyX2NvbnRleHRfY2xlYW5fcmluZygpIC0gY2xlYW4gdGhl IHJpbmcgc3BlY2lmaWMgcGFydHMgb2YgYW4gTFJDCisgKiBAY3R4OiB0aGUgTFIgY29udGV4dCBi ZWluZyBmcmVlZC4KKyAqIEByaW5nOiB0aGUgZW5naW5lIGJlaW5nIGNsZWFuZWQKKyAqIEBjdHhf b2JqOiB0aGUgaHcgY29udGV4dCBiZWluZyB1bnJlZmVyZW5jZWQKKyAqIEByaW5nYnVmOiB0aGUg cmluZ2J1ZiBiZWluZyBmcmVlZAorICoKKyAqIFRha2UgY2FyZSBvZiBjbGVhbmluZyB1cCB0aGUg cGVyLWVuZ2luZSBiYWNraW5nCisgKiBvYmplY3RzIGFuZCB0aGUgbG9naWNhbCByaW5nYnVmZmVy LgorICovCitzdGF0aWMgdm9pZAoraW50ZWxfbHJfY29udGV4dF9jbGVhbl9yaW5nKHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjdHgsCisJCQkgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0 eF9vYmosCisJCQkgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCit7CisJaW50 IHJldDsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmluZ2J1Zi0+cmluZzsKKwor CVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKKwor CWlmIChjdHgtPmlzX2dsb2JhbF9kZWZhdWx0KSB7CisJCS8qCisJCSAqIFRoZSBIV1NQIGlzIHBh cnQgb2YgdGhlIGRlZmF1bHQgY29udGV4dAorCQkgKiBvYmplY3QgaW4gTFJDIG1vZGUuCisJCSAq LworCQlscmNfdGVhcmRvd25faGFyZHdhcmVfc3RhdHVzX3BhZ2UocmluZyk7CisJCWludGVsX3Vu cGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOworCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bihjdHhfb2JqKTsKKwl9CisKKwlpZiAoY3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5KSB7CisJ CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gTlVMTDsKKworCQkvKioKKwkJICog SWYgdGhlcmUgaXMgYWxyZWFkeSBhIHJlcXVlc3QgcGVuZGluZyBvbgorCQkgKiB0aGlzIHJpbmcs IHdhaXQgZm9yIHRoYXQgdG8gY29tcGxldGUsCisJCSAqIG90aGVyd2lzZSBjcmVhdGUgYSBzd2l0 Y2ggdG8gaWRsZSByZXF1ZXN0CisJCSAqLworCQlpZiAobGlzdF9lbXB0eSgmcmluZy0+cmVxdWVz dF9saXN0KSkgeworCQkJaW50IHJldDsKKworCQkJcmV0ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxv YygKKwkJCQkJcmluZywKKwkJCQkJcmluZy0+ZGVmYXVsdF9jb250ZXh0LAorCQkJCQkmcmVxKTsK KwkJCWlmICghcmV0KQorCQkJCWk5MTVfYWRkX3JlcXVlc3QocmVxKTsKKwkJCWVsc2UKKwkJCQlE Uk1fREVCVUcoIkZhaWxlZCB0byBlbnN1cmUgY29udGV4dCBzYXZlZCIpOworCQl9IGVsc2Ugewor CQkJcmVxID0gbGlzdF9maXJzdF9lbnRyeSgKKwkJCQkJJnJpbmctPnJlcXVlc3RfbGlzdCwKKwkJ CQkJdHlwZW9mKCpyZXEpLCBsaXN0KTsKKwkJfQorCQlpZiAocmVxKSB7CisJCQlyZXQgPSBpOTE1 X3dhaXRfcmVxdWVzdChyZXEpOworCQkJaWYgKHJldCAhPSAwKSB7CisJCQkJLyoqCisJCQkJICog SWYgd2UgZ2V0IGhlcmUsIHRoZXJlJ3MgcHJvYmFibHkgYmVlbiBhIHJpbmcKKwkJCQkgKiByZXNl dCwgc28gd2UganVzdCBjbGVhbiB1cCB0aGUgZGlydHkgZmxhZy4mCisJCQkJICogcGluIGNvdW50 LgorCQkJCSAqLworCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IGZhbHNlOworCQkJ CV9faW50ZWxfbHJfY29udGV4dF91bnBpbigKKwkJCQkJcmluZywKKwkJCQkJY3R4KTsKKwkJCX0K KwkJfQorCX0KKworCVdBUk5fT04oY3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCk7CisJ aW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmdidWYpOworCWRybV9nZW1fb2JqZWN0X3VucmVmZXJl bmNlKCZjdHhfb2JqLT5iYXNlKTsKK30KKworLyoqCiAgKiBpbnRlbF9scl9jb250ZXh0X2ZyZWUo KSAtIGZyZWUgdGhlIExSQyBzcGVjaWZpYyBiaXRzIG9mIGEgY29udGV4dAogICogQGN0eDogdGhl IExSIGNvbnRleHQgdG8gZnJlZS4KICAqCkBAIC0yMzY4LDE5ICsyNDU5LDkgQEAgdm9pZCBpbnRl bF9scl9jb250ZXh0X2ZyZWUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKIAkJaWYgKCFjdHhf b2JqKQogCQkJY29udGludWU7CiAKLQkJaWYgKGN0eC0+aXNfZ2xvYmFsX2RlZmF1bHQpIHsKLQkJ CS8qCi0JCQkgKiBUaGUgSFdTUCBpcyBwYXJ0IG9mIHRoZSBkZWZhdWx0IGNvbnRleHQKLQkJCSAq IG9iamVjdCBpbiBMUkMgbW9kZS4KLQkJCSAqLwotCQkJbHJjX3RlYXJkb3duX2hhcmR3YXJlX3N0 YXR1c19wYWdlKHJpbmdidWYtPnJpbmcpOwotCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoo cmluZ2J1Zik7Ci0JCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKLQkJfQot Ci0JCVdBUk5fT04oY3R4LT5lbmdpbmVbaV0ucGluX2NvdW50KTsKLQkJaW50ZWxfcmluZ2J1ZmZl cl9mcmVlKHJpbmdidWYpOwotCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4X29iai0+ YmFzZSk7CisJCWludGVsX2xyX2NvbnRleHRfY2xlYW5fcmluZyhjdHgsCisJCQkJCSAgICBjdHhf b2JqLAorCQkJCQkgICAgcmluZ2J1Zik7CiAJfQogfQogCkBAIC0yNTYyLDUgKzI2NDMsMTQgQEAg dm9pZCBpbnRlbF9scl9jb250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAkJ cmluZ2J1Zi0+aGVhZCA9IDA7CiAJCXJpbmdidWYtPnRhaWwgPSAwOworCisJCWlmIChjdHgtPmVu Z2luZVtyaW5nLT5pZF0uZGlydHkpIHsKKwkJCV9faW50ZWxfbHJfY29udGV4dF91bnBpbigKKwkJ CQkJcmluZywKKwkJCQkJY3R4KTsKKwkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IGZh bHNlOworCQkJaWYgKHJpbmctPmxyY19sYXN0X2NvbnRleHQgPT0gY3R4KQorCQkJCXJpbmctPmxy Y19sYXN0X2NvbnRleHQgPSBOVUxMOworCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu aAppbmRleCAwYjgyMWI5Li5mZDFiNmI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApAQCAt OTEsNiArOTEsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwogdWludDY0X3QgaW50ZWxf bHJfY29udGV4dF9kZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJCQkJICAg ICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKK3ZvaWQgaW50ZWxfbHJfY29udGV4dF9j b21wbGV0ZV9jaGVjayhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7CiAKIC8qIEV4 ZWNsaXN0cyAqLwogaW50IGludGVsX3Nhbml0aXplX2VuYWJsZV9leGVjbGlzdHMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IGVuYWJsZV9leGVjbGlzdHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDQ5NTc0ZmYuLjliZDk4ZGIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTI3NSw2ICsyNzUsNyBAQCBzdHJ1Y3QgIGlu dGVsX2VuZ2luZV9jcyB7CiAJCQkJICAgICAgdTMyIGZsdXNoX2RvbWFpbnMpOwogCWludAkJKCpl bWl0X2JiX3N0YXJ0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkJIHU2 NCBvZmZzZXQsIHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdzKTsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqbHJjX2xhc3RfY29udGV4dDsKIAogCS8qKgogCSAqIExpc3Qgb2Ygb2JqZWN0cyBjdXJyZW50 bHkgaW52b2x2ZWQgaW4gcmVuZGVyaW5nIGZyb20gdGhlCi0tIAoxLjkuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK