From mboxrd@z Thu Jan 1 00:00:00 1970 From: jeff.mcgee@intel.com Subject: [RFC 8/8] drm/i915: Force preemption to complete via engine reset Date: Fri, 16 Mar 2018 11:31:05 -0700 Message-ID: <20180316183105.16027-9-jeff.mcgee@intel.com> References: <20180316183105.16027-1-jeff.mcgee@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id E6ED36EBDD for ; Fri, 16 Mar 2018 18:45:41 +0000 (UTC) In-Reply-To: <20180316183105.16027-1-jeff.mcgee@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 Cc: ben@bwidawsk.net, kalyan.kondapally@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogSmVmZiBNY0dlZSA8amVmZi5tY2dlZUBpbnRlbC5jb20+CgpUaGUgaGFyZHdhcmUgY2Fu IGNvbXBsZXRlIHRoZSByZXF1ZXN0ZWQgcHJlZW1wdGlvbiBhdCBvbmx5IGNlcnRhaW4gcG9pbnRz CmluIGV4ZWN1dGlvbi4gVGh1cyBhbiB1bmNvb3BlcmF0aXZlIHJlcXVlc3QgdGhhdCBhdm9pZHMg dGhvc2UgcG9pbnRzIGNhbgpibG9jayBhIHByZWVtcHRpb24gaW5kZWZpbml0ZWx5LiBPdXIgb25s eSBvcHRpb24gdG8gYm91bmQgdGhlIHByZWVtcHRpb24KbGF0ZW5jeSBpcyB0byB0cmlnZ2VyIHJl c2V0IGFuZCByZWNvdmVyeSBqdXN0IGFzIHdlIHdvdWxkIGlmIGEgcmVxdWVzdCBoYWQKaHVuZyB0 aGUgaGFyZHdhcmUuIFRoaXMgaXMgc28tY2FsbGVkIGZvcmNlZCBwcmVlbXB0aW9uLiBUaGlzIGNo YW5nZSBhZGRzCnRoYXQgY2FwYWJpbGl0eSBhcyBhbiBvcHRpb24gZm9yIHN5c3RlbXMgd2l0aCBl eHRyZW1lbHkgc3RyaWN0IHNjaGVkdWxpbmcKbGF0ZW5jeSByZXF1aXJlbWVudHMgZm9yIGl0cyBo aWdoIHByaW9yaXR5IHJlcXVlc3RzLiBUaGlzIG9wdGlvbiBtdXN0IGJlCnVzZWQgd2l0aCBncmVh dCBjYXJlLiBUaGUgZm9yY2UtcHJlZW1wdGVkIHJlcXVlc3RzIHdpbGwgYmUgZGlzY2FyZGVkIGF0 CnRoZSBwb2ludCBvZiByZXNldCwgcmVzdWx0aW5nIGluIHZhcmlvdXMgZGVncmVlcyBvZiBkaXNy dXB0aW9uIHRvIHRoZQpvd25pbmcgYXBwbGljYXRpb24gdXAgdG8gYW5kIGluY2x1ZGluZyBjcmFz aC4KClRoZSBvcHRpb24gaXMgZW5hYmxlZCBieSBzcGVjaWZ5aW5nIGEgbm9uLXplcm8gdmFsdWUg Zm9yIG5ldyBpOTE1IG1vZHVsZQpwYXJhbWV0ZXIgZnByZWVtcHRfdGltZW91dC4gVGhpcyB2YWx1 ZSBiZWNvbWVzIHRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcwphZnRlciBpbml0aWF0aW9uIG9mIHBy ZWVtcHRpb24gYXQgd2hpY2ggdGhlIHJlc2V0IGlzIHRyaWdnZXJlZCBpZiB0aGUKcHJlZW1wdGlv biBoYXMgbm90IGNvbXBsZXRlZCBub3JtYWxseS4KClRlc3Q6IFJ1biBJR1QgZ2VtX2V4ZWNfZnBy ZWVtcHQuCkNoYW5nZS1JZDogSWFmZDM2MDkwMTI2MjFjNTdmYTllNDkwZGZlZWFjNDZhZTU0MWI1 YzIKU2lnbmVkLW9mZi1ieTogSmVmZiBNY0dlZSA8amVmZi5tY2dlZUBpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgIHwgMTQgKysrKysrKystCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMiArKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgMzcgKysrKysrKysrKysrKysrKysrKysr LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMgICAgICB8ICAzICsrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgfCA1MyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8IDI0ICsr KysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwg IDYgKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAxMzYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBiNjI3MzcwZDVhOWMuLjNmMjM5NGQ2MWVh MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC04MTEsOCArODExLDE2IEBAIHN0YXRpYyBp bnQgaTkxNV93b3JrcXVldWVzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCWlmIChkZXZfcHJpdi0+aG90cGx1Zy5kcF93cSA9PSBOVUxMKQogCQlnb3RvIG91dF9mcmVl X3dxOwogCisJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5oYXNfbG9naWNhbF9yaW5nX3ByZWVt cHRpb24pIHsKKwkJZGV2X3ByaXYtPmZwcmVlbXB0X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVl dWUoImk5MTUtZnByZWVtcHQiLAorCQkJCQkJCQlXUV9ISUdIUFJJKTsKKwkJaWYgKGRldl9wcml2 LT5mcHJlZW1wdF93cSA9PSBOVUxMKQorCQkJZ290byBvdXRfZnJlZV9kcF93cTsKKwl9CiAJcmV0 dXJuIDA7CiAKK291dF9mcmVlX2RwX3dxOgorCWRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT5o b3RwbHVnLmRwX3dxKTsKIG91dF9mcmVlX3dxOgogCWRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2 LT53cSk7CiBvdXRfZXJyOgpAQCAtODMyLDYgKzg0MCw4IEBAIHN0YXRpYyB2b2lkIGk5MTVfZW5n aW5lc19jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiBzdGF0aWMgdm9p ZCBpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiB7CisJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5oYXNfbG9naWNhbF9yaW5nX3ByZWVt cHRpb24pCisJCWRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT5mcHJlZW1wdF93cSk7CiAJZGVz dHJveV93b3JrcXVldWUoZGV2X3ByaXYtPmhvdHBsdWcuZHBfd3EpOwogCWRlc3Ryb3lfd29ya3F1 ZXVlKGRldl9wcml2LT53cSk7CiB9CkBAIC0yMDA3LDcgKzIwMTcsOSBAQCBpbnQgaTkxNV9yZXNl dF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1bnNpZ25lZCBpbnQgZmxh Z3MpCiAKIAlpZiAoIShmbGFncyAmIEk5MTVfUkVTRVRfUVVJRVQpKSB7CiAJCWRldl9ub3RpY2Uo ZW5naW5lLT5pOTE1LT5kcm0uZGV2LAotCQkJICAgIlJlc2V0dGluZyAlcyBhZnRlciBncHUgaGFu Z1xuIiwgZW5naW5lLT5uYW1lKTsKKwkJCSAgICJSZXNldHRpbmcgJXMgJXNcbiIsIGVuZ2luZS0+ bmFtZSwKKwkJCSAgIGVuZ2luZS0+ZnByZWVtcHRfYWN0aXZlID8KKwkJCSAgICJmb3IgZm9yY2Ug cHJlZW1wdGlvbiIgOiAiYWZ0ZXIgZ3B1IGhhbmciKTsKIAl9CiAJZXJyb3ItPnJlc2V0X2VuZ2lu ZV9jb3VudFtlbmdpbmUtPmlkXSsrOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBhZGUw OWY5N2JlNWMuLjUxNGU2NDBkODQwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMjkw LDYgKzIyOTAsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJICovCiAJc3RydWN0IHdv cmtxdWV1ZV9zdHJ1Y3QgKndxOwogCisJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmZwcmVlbXB0 X3dxOworCiAJLyogRGlzcGxheSBmdW5jdGlvbnMgKi8KIAlzdHJ1Y3QgZHJtX2k5MTVfZGlzcGxh eV9mdW5jcyBkaXNwbGF5OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA5NzgwZDkwMjZj ZTYuLmQ1NTY3NDNjNTc4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yODExLDkgKzI4 MTEsMjEgQEAgaTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiAJcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLXN0YXRpYyBib29sIGVuZ2luZV9z dGFsbGVkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyBib29sIGVuZ2lu ZV9zdGFsbGVkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCSAgIHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIHsKIAlpZiAoIWludGVsX3ZncHVfYWN0aXZl KGVuZ2luZS0+aTkxNSkpIHsKKwkJaWYgKGVuZ2luZS0+ZnByZWVtcHRfYWN0aXZlKSB7CisJCQkv KiBQYXJkb24gdGhlIHJlcXVlc3QgaWYgaXQgbWFuYWdlZCB0byBjb21wbGV0ZSBvcgorCQkJICog cHJlZW1wdCBwcmlvciB0byB0aGUgcmVzZXQuCisJCQkgKi8KKwkJCWlmIChpOTE1X2dlbV9yZXF1 ZXN0X2NvbXBsZXRlZChyZXF1ZXN0KSB8fAorCQkJICAgIGludGVsX2VuZ2luZV9wcmVlbXB0X2Zp bmlzaGVkKGVuZ2luZSkpCisJCQkJcmV0dXJuIGZhbHNlOworCisJCQlyZXR1cm4gdHJ1ZTsKKwkJ fQorCiAJCWlmICghZW5naW5lLT5oYW5nY2hlY2suc3RhbGxlZCkKIAkJCXJldHVybiBmYWxzZTsK IApAQCAtMjg1OCw2ICsyODcwLDEzIEBAIGk5MTVfZ2VtX3Jlc2V0X3ByZXBhcmVfZW5naW5lKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl0YXNrbGV0X2tpbGwoJmVuZ2luZS0+ZXhl Y2xpc3RzLmlycV90YXNrbGV0KTsKIAl0YXNrbGV0X2Rpc2FibGUoJmVuZ2luZS0+ZXhlY2xpc3Rz LmlycV90YXNrbGV0KTsKIAorCS8qIFRoZXJlIG1heSBiZSBhIGZvcmNlIHByZWVtcHRpb24gdGlt ZXIgYWN0aXZlIG9uIHRoaXMgZW5naW5lIGJ1dAorCSAqIG5vdCB5ZXQgZXhwaXJlZCwgaS5lLiBu b3QgdGhlIHJlYXNvbiB3ZSBhcmUgYWJvdXQgdG8gcmVzZXQgdGhpcworCSAqIGVuZ2luZS4gQ2Fu Y2VsIGl0LiBJZiBmb3JjZSBwcmVlbXB0aW9uIHRpbWVvdXQgaXMgdGhlIHJlYXNvbiB3ZQorCSAq IGFyZSByZXNldHRpbmcgdGhlIGVuZ2luZSwgdGhpcyBjYWxsIHdpbGwgaGF2ZSBubyBlZmZmZWN0 LgorCSAqLworCWludGVsX2VuZ2luZV9jYW5jZWxfZnByZWVtcHQoZW5naW5lKTsKKwogCWlmIChl bmdpbmUtPmlycV9zZXFub19iYXJyaWVyKQogCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKGVu Z2luZSk7CiAKQEAgLTI5NTgsNyArMjk3Nyw3IEBAIGk5MTVfZ2VtX3Jlc2V0X3JlcXVlc3Qoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCSAqIHN1YnNlcXVlbnQgaGFuZ3MuCiAJICov CiAKLQlpZiAoZW5naW5lX3N0YWxsZWQoZW5naW5lKSkgeworCWlmIChlbmdpbmVfc3RhbGxlZChl bmdpbmUsIHJlcXVlc3QpKSB7CiAJCWk5MTVfZ2VtX2NvbnRleHRfbWFya19ndWlsdHkocmVxdWVz dC0+Y3R4KTsKIAkJc2tpcF9yZXF1ZXN0KHJlcXVlc3QpOwogCkBAIC0yOTY2LDYgKzI5ODUsMTMg QEAgaTkxNV9nZW1fcmVzZXRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs CiAJCWlmIChpOTE1X2dlbV9jb250ZXh0X2lzX2Jhbm5lZChyZXF1ZXN0LT5jdHgpKQogCQkJZW5n aW5lX3NraXBfY29udGV4dChyZXF1ZXN0KTsKIAl9IGVsc2UgeworCQkvKiBJZiB0aGUgcmVxdWVz dCB0aGF0IHdlIGp1c3QgcGFyZG9uZWQgd2FzIHRoZSB0YXJnZXQgb2YgYQorCQkgKiBmb3JjZSBw cmVlbXB0aW9uIHRoZXJlIGlzIG5vIHBvc3NpYmlsaXR5IG9mIHRoZSBuZXh0CisJCSAqIHJlcXVl c3QgaW4gbGluZSBoYXZpbmcgc3RhcnRlZC4KKwkJICovCisJCWlmIChlbmdpbmUtPmZwcmVlbXB0 X2FjdGl2ZSkKKwkJCXJldHVybiBOVUxMOworCiAJCS8qCiAJCSAqIFNpbmNlIHRoaXMgaXMgbm90 IHRoZSBodW5nIGVuZ2luZSwgaXQgbWF5IGhhdmUgYWR2YW5jZWQKIAkJICogc2luY2UgdGhlIGhh bmcgZGVjbGFyYXRpb24uIERvdWJsZSBjaGVjayBieSByZWZpbmRpbmcKQEAgLTMwMzUsNiArMzA2 MSwxMyBAQCB2b2lkIGk5MTVfZ2VtX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAogdm9pZCBpOTE1X2dlbV9yZXNldF9maW5pc2hfZW5naW5lKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIHsKKwkvKiBNYXJrIGFueSBhY3RpdmUgZm9yY2UgcHJlZW1wdGlv biBhcyBjb21wbGV0ZSB0aGVuIGtpY2sKKwkgKiB0aGUgdGFza2xldC4KKwkgKi8KKwllbmdpbmUt PmZwcmVlbXB0X2FjdGl2ZSA9IGZhbHNlOworCWlmIChlbmdpbmUtPmV4ZWNsaXN0cy5maXJzdCkK KwkJdGFza2xldF9zY2hlZHVsZSgmZW5naW5lLT5leGVjbGlzdHMuaXJxX3Rhc2tsZXQpOworCiAJ dGFza2xldF9lbmFibGUoJmVuZ2luZS0+ZXhlY2xpc3RzLmlycV90YXNrbGV0KTsKIAlrdGhyZWFk X3VucGFyayhlbmdpbmUtPmJyZWFkY3J1bWJzLnNpZ25hbGVyKTsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BhcmFtcy5jCmluZGV4IDYzNzUxYTFkZTc0YS4uOWEwZGViNmUzOTIwIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGFyYW1zLmMKQEAgLTI0NywzICsyNDcsNiBAQCBNT0RVTEVfUEFSTV9ERVND KGVuYWJsZV9jb25mb3JtYW5jZV9jaGVjaywgIlRvIHRvZ2dsZSB0aGUgR1ZUIGd1ZXN0IGNvbmZv cm1hbmNlCiAKIG1vZHVsZV9wYXJhbV9uYW1lZChkaXNhYmxlX2d2dF9md19sb2FkaW5nLCBpOTE1 X21vZHBhcmFtcy5kaXNhYmxlX2d2dF9md19sb2FkaW5nLCBib29sLCAwNDAwKTsKIE1PRFVMRV9Q QVJNX0RFU0MoZGlzYWJsZV9ndnRfZndfbG9hZGluZywgIkRpc2FibGUgR1ZULWcgZncgbG9hZGlu Zy4iKTsKKworaTkxNV9wYXJhbV9uYW1lZChmcHJlZW1wdF90aW1lb3V0LCB1aW50LCAwNjAwLAor CSJXYWl0IHRpbWUgaW4gbXNlY3MgYmVmb3JlIGZvcmNpbmcgYSBwcmVlbXB0aW9uIHdpdGggcmVz ZXQgKDA6bmV2ZXIgZm9yY2UgW2RlZmF1bHRdKSIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1z LmgKaW5kZXggZThjMmJhNGNiMWU2Li42NWZiZmZhNjMzM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wYXJhbXMuaApAQCAtNTQsNiArNTQsNyBAQAogCWZ1bmMoaW50LCBlZHBfdnN3aW5nKTsgXAog CWZ1bmMoaW50LCByZXNldCk7IFwKIAlmdW5jKHVuc2lnbmVkIGludCwgaW5qZWN0X2xvYWRfZmFp bHVyZSk7IFwKKwlmdW5jKHVuc2lnbmVkIGludCwgZnByZWVtcHRfdGltZW91dCk7IFwKIAkvKiBs ZWF2ZSBib29scyBhdCB0aGUgZW5kIHRvIG5vdCBjcmVhdGUgaG9sZXMgKi8gXAogCWZ1bmMoYm9v bCwgYWxwaGFfc3VwcG9ydCk7IFwKIAlmdW5jKGJvb2wsIGVuYWJsZV9jbWRfcGFyc2VyKTsgXApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwppbmRleCBjOWJmMjM0N2Y3YTQuLmFm NmNjMmQwZjdlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5l X2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKQEAgLTQx MSw2ICs0MTEsNTggQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfZXhlY2xpc3Qoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWV4ZWNsaXN0cy0+Zmlyc3QgPSBOVUxMOwog fQogCit2b2lkIGludGVsX2VuZ2luZV9xdWV1ZV9mcHJlZW1wdChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCit7CisJdW5zaWduZWQgaW50IHRpbWVvdXQgPSBpOTE1X21vZHBhcmFtcy5m cHJlZW1wdF90aW1lb3V0OworCisJaWYgKCF0aW1lb3V0KQorCQlyZXR1cm47CisKKwlHRU1fQlVH X09OKGVuZ2luZS0+ZnByZWVtcHRfYWN0aXZlKTsKKwlocnRpbWVyX3N0YXJ0KCZlbmdpbmUtPmZw cmVlbXB0X3RpbWVyLAorCQkgICAgICBtc190b19rdGltZSh0aW1lb3V0KSwgSFJUSU1FUl9NT0RF X1JFTCk7Cit9CisKK2Jvb2wgaW50ZWxfZW5naW5lX2NhbmNlbF9mcHJlZW1wdChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJaHJ0aW1lcl9jYW5jZWwoJmVuZ2luZS0+ZnByZWVt cHRfdGltZXIpOworCisJcmV0dXJuICFlbmdpbmUtPmZwcmVlbXB0X2FjdGl2ZTsKK30KKworc3Rh dGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0CitpbnRlbF9lbmdpbmVfZnByZWVtcHRfdGltZXIoc3Ry dWN0IGhydGltZXIgKmhydGltZXIpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l ID0KKwkJY29udGFpbmVyX29mKGhydGltZXIsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MsCisJCQkg ICAgIGZwcmVlbXB0X3RpbWVyKTsKKworCWVuZ2luZS0+ZnByZWVtcHRfYWN0aXZlID0gdHJ1ZTsK KwlxdWV1ZV93b3JrKGVuZ2luZS0+aTkxNS0+ZnByZWVtcHRfd3EsICZlbmdpbmUtPmZwcmVlbXB0 X3dvcmspOworCisJcmV0dXJuIEhSVElNRVJfTk9SRVNUQVJUOworfQorCitzdGF0aWMgdm9pZCBp bnRlbF9lbmdpbmVfZnByZWVtcHRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MsCisJCQkgICAgIGZwcmVlbXB0X3dvcmspOworCisJaTkxNV9o YW5kbGVfcmVzZXQoZW5naW5lLT5pOTE1LCBpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpKTsKK30K Kworc3RhdGljIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfZnByZWVtcHQoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQoreworCWlmICghSU5URUxfSU5GTyhlbmdpbmUtPmk5MTUpLT5oYXNf bG9naWNhbF9yaW5nX3ByZWVtcHRpb24pCisJCXJldHVybjsKKworCWhydGltZXJfaW5pdCgmZW5n aW5lLT5mcHJlZW1wdF90aW1lciwKKwkJICAgICBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9E RV9SRUwpOworCWVuZ2luZS0+ZnByZWVtcHRfdGltZXIuZnVuY3Rpb24gPSBpbnRlbF9lbmdpbmVf ZnByZWVtcHRfdGltZXI7CisJSU5JVF9XT1JLKCZlbmdpbmUtPmZwcmVlbXB0X3dvcmssIGludGVs X2VuZ2luZV9mcHJlZW1wdF93b3JrKTsKK30KKwogLyoqCiAgKiBpbnRlbF9lbmdpbmVzX3NldHVw X2NvbW1vbiAtIHNldHVwIGVuZ2luZSBzdGF0ZSBub3QgcmVxdWlyaW5nIGh3IGFjY2VzcwogICog QGVuZ2luZTogRW5naW5lIHRvIHNldHVwLgpAQCAtNDI2LDYgKzQ3OCw3IEBAIHZvaWQgaW50ZWxf ZW5naW5lX3NldHVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAlp bnRlbF9lbmdpbmVfaW5pdF90aW1lbGluZShlbmdpbmUpOwogCWludGVsX2VuZ2luZV9pbml0X2hh bmdjaGVjayhlbmdpbmUpOworCWludGVsX2VuZ2luZV9pbml0X2ZwcmVlbXB0KGVuZ2luZSk7CiAJ aTkxNV9nZW1fYmF0Y2hfcG9vbF9pbml0KGVuZ2luZSwgJmVuZ2luZS0+YmF0Y2hfcG9vbCk7CiAK IAlpbnRlbF9lbmdpbmVfaW5pdF9jbWRfcGFyc2VyKGVuZ2luZSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCmluZGV4IDU4MTQ4Mzg4NjE1My4uMTc0ODdmOGU4YjRjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwpAQCAtNjI4LDYgKzYyOCw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1 ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCWluamVjdF9wcmVlbXB0X2Nv bnRleHQoZW5naW5lKTsKIAkJCWV4ZWNsaXN0c19zZXRfYWN0aXZlKGV4ZWNsaXN0cywKIAkJCQkJ ICAgICBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpOworCQkJaW50ZWxfZW5naW5lX3F1ZXVlX2Zw cmVlbXB0KGVuZ2luZSk7CiAJCQlnb3RvIHVubG9jazsKIAkJfSBlbHNlIHsKIAkJCS8qCkBAIC04 NDYsNiArODQ3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbHJjX2lycV9oYW5kbGVyKHVuc2lnbmVk IGxvbmcgZGF0YSkKIAkJY29uc3QgdTMyICpidWYgPQogCQkJJmVuZ2luZS0+c3RhdHVzX3BhZ2Uu cGFnZV9hZGRyW0k5MTVfSFdTX0NTQl9CVUYwX0lOREVYXTsKIAkJdW5zaWduZWQgaW50IGhlYWQs IHRhaWw7CisJCWJvb2wgZGVmZXIgPSBmYWxzZTsKIAogCQkvKiBIb3dldmVyIEdWVCBlbXVsYXRp b24gZGVwZW5kcyB1cG9uIGludGVyY2VwdGluZyBDU0IgbW1pbyAqLwogCQlpZiAodW5saWtlbHko ZXhlY2xpc3RzLT5jc2JfdXNlX21taW8pKSB7CkBAIC05MTksNiArOTIxLDIxIEBAIHN0YXRpYyB2 b2lkIGludGVsX2xyY19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCiAKIAkJCWlmIChz dGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQUNUSVZFX0lETEUgJiYKIAkJCSAgICBidWZbMipoZWFk ICsgMV0gPT0gUFJFRU1QVF9JRCkgeworCQkJCS8qIFRyeSB0byBjYW5jZWwgYW55IHBlbmRpbmcg Zm9yY2UgcHJlZW1wdGlvbi4KKwkJCQkgKiBJZiB3ZSBhcmUgdG9vIGxhdGUsIGhvbGQgb2ZmIG9u IHByb2Nlc3NpbmcKKwkJCQkgKiB0aGUgY29tcGxldGVkIHByZWVtcHRpb24gdW50aWwgcmVzZXQg aGFzCisJCQkJICogcnVuIGl0cyBjb3Vyc2UuIEl0IHNob3VsZCByZWNvZ25pemUgdGhhdAorCQkJ CSAqIHRoZSBlbmdpbmUgaGFzIHByZWVtcHRlZCB0byBpZGxlIHRoZW4gYWJvcnQKKwkJCQkgKiB0 aGUgcmVzZXQuIFRoZW4gd2UgY2FuIHJlc3VtZSBwcm9jZXNzaW5nCisJCQkJICogYXQgdGhpcyBD U0IgaGVhZC4KKwkJCQkgKi8KKwkJCQlpZiAoIWludGVsX2VuZ2luZV9jYW5jZWxfZnByZWVtcHQo ZW5naW5lKSkgeworCQkJCQlpZiAoIWhlYWQtLSkKKwkJCQkJCWhlYWQgPSBHRU44X0NTQl9FTlRS SUVTIC0gMTsKKwkJCQkJZGVmZXIgPSB0cnVlOworCQkJCQlicmVhazsKKwkJCQl9CisKIAkJCQll eGVjbGlzdF9jYW5jZWxfcG9ydF9yZXF1ZXN0cyhleGVjbGlzdHMpOwogCiAJCQkJc3Bpbl9sb2Nr X2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7CkBAIC05NzMsMTEgKzk5MCwxNiBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIodW5zaWduZWQgbG9uZyBkYXRhKQogCQkJd3Jp dGVsKF9NQVNLRURfRklFTEQoR0VOOF9DU0JfUkVBRF9QVFJfTUFTSywgaGVhZCA8PCA4KSwKIAkJ CSAgICAgICBkZXZfcHJpdi0+cmVncyArIGk5MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfQ09OVEVY VF9TVEFUVVNfUFRSKGVuZ2luZSkpKTsKIAkJfQorCisJCWlmIChkZWZlcikgeworCQkJX19zZXRf Yml0KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpOworCQkJZ290byBv dXQ7CisJCX0KIAl9CiAKIAlpZiAoIWV4ZWNsaXN0c19pc19hY3RpdmUoZXhlY2xpc3RzLCBFWEVD TElTVFNfQUNUSVZFX1BSRUVNUFQpKQogCQlleGVjbGlzdHNfZGVxdWV1ZShlbmdpbmUpOwotCitv dXQ6CiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIGV4ZWNsaXN0cy0+Zndf ZG9tYWlucyk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRl eCAyNWViMjNiYzA2ZWIuLmUyNTlmOTU0Y2RlYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaApAQCAtNTA2LDYgKzUwNiwxMCBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz IHsKIAogCXN0cnVjdCBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrIGhhbmdjaGVjazsKIAorCXN0cnVj dCBocnRpbWVyIGZwcmVlbXB0X3RpbWVyOworCXN0cnVjdCB3b3JrX3N0cnVjdCBmcHJlZW1wdF93 b3JrOworCWJvb2wgZnByZWVtcHRfYWN0aXZlOworCiAJYm9vbCBuZWVkc19jbWRfcGFyc2VyOwog CiAJLyoKQEAgLTkzMiw0ICs5MzYsNiBAQCB2b2lkIGludGVsX2VuZ2luZXNfcmVzZXRfZGVmYXVs dF9zdWJtaXNzaW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIAogYm9vbCBpbnRl bF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7 CiAKK3ZvaWQgaW50ZWxfZW5naW5lX3F1ZXVlX2ZwcmVlbXB0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSk7Citib29sIGludGVsX2VuZ2luZV9jYW5jZWxfZnByZWVtcHQoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKICNlbmRpZiAvKiBfSU5URUxfUklOR0JVRkZFUl9IXyAq LwotLSAKMi4xNi4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK