From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 1/2] drm/i915/ringbuffer: Fix context restore upon reset Date: Mon, 11 Jun 2018 12:08:44 +0100 Message-ID: <20180611110845.31890-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 632DB89C6A for ; Mon, 11 Jun 2018 11:09:01 +0000 (UTC) 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 VGhlIGRpc2NvdmVyeSB3aXRoIHRyeWluZyB0byBlbmFibGUgZnVsbC1wcGd0dCB3YXMgdGhhdCB3 ZSB3ZXJlCmNvbXBsZXRlbHkgZmFpbGluZyB0byB0aGUgbG9hZCBib3RoIHRoZSBtbSBhbmQgY29u dGV4dCBmb2xsb3dpbmcgdGhlCnJlc2V0LiBBbHRob3VnaCB3ZSB3ZXJlIHBlcmZvcm1pbmcgbW1p byB0byBzZXQgdGhlIFBQX0RJUiAocGVyLXByb2Nlc3MKR1RUKSBhbmQgQ0NJRCAoY29udGV4dCks IHRoZXNlIHdlcmUgdGFraW5nIG5vIGVmZmVjdCAodGhlIGFzc3VtcHRpb24gd2FzCnRoYXQgdGhp cyB3b3VsZCB0cmlnZ2VyIHJlbG9hZCBvZiB0aGUgY29udGV4dCBhbmQgcmVzdG9yZSB0aGUgcGFn ZQp0YWJsZXMpLiBJdCB3YXMgbm90IHVudGlsIHdlIHBlcmZvcm1lZCB0aGUgTFJJICsgTUlfU0VU X0NPTlRFWFQgaW4gYQpmb2xsb3dpbmcgY29udGV4dCBzd2l0Y2ggd291bGQgYW55dGhpbmcgb2Nj dXIuCgpTaW5jZSB3ZSBhcmUgdGhlbiByZXF1aXJlZCB0byByZXNldCB0aGUgY29udGV4dCBpbWFn ZSBhbmQgUFBfRElSIHVzaW5nCkNTIGNvbW1hbmRzLCB3ZSBwbGFjZSB0aG9zZSBjb21tYW5kcyBp bnRvIGV2ZXJ5IGJhdGNoLiBUaGUgaGFyZHdhcmUKc2hvdWxkIHJlY29nbmlzZSB0aGUgbm8tb3Bz IGFuZCBlbGltaW5hdGUgdGhlIGV4cGVuc2l2ZSBjb250ZXh0IGxvYWRzLApidXQgd2Ugc3RpbGwg aGF2ZSB0byBwYXkgdGhlIGNvc3Qgb2YgdXNpbmcgY3Jvc3MtcG93ZXJ3ZWxsIHJlZ2lzdGVyCndy aXRlcy4gSW4gcHJhY3RpY2UsIHRoaXMgaGFzIG5vIGVmZmVjdCBvbiBhY3R1YWwgY29udGV4dCBz d2l0Y2ggdGltZXMsCmFuZCBvbmx5IGFkZHMgYSBmZXcgaHVuZHJlZCBuYW5vc2Vjb25kcyB0byBu by1vcCBzd2l0Y2hlcy4gV2UgY2FuIGltcHJvdmUKdGhlIGxhdHRlciBieSBlbGltaW5hdGluZyB0 aGUgdy9hIGFyb3VuZCBrbm93biBuby1vcCBzd2l0Y2hlcywgYnV0IHRoZXJlCmlzIGFuIHVsdGVy aW9yIG1vdGl2ZSB0byBrZWVwaW5nIHRoZW0uCgpBbHdheXMgZW1pdHRpbmcgdGhlIGNvbnRleHQg c3dpdGNoIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJlcXVlc3QgKGFuZApyZWx5aW5nIG9uIEhX IHRvIHNraXAgdW5uZWVkZWQgc3dpdGNoZXMpIGRvZXMgaGF2ZSBvbmUga2V5IGFkdmFudGFnZS4K U2hvdWxkIHdlIGltcGxlbWVudCByZXF1ZXN0IHJlb3JkZXJpbmcgb24gSGFzd2VsbCwgd2Ugd2ls bCBub3Qga25vdyBpbgphZHZhbmNlIHdoYXQgdGhlIHByZXZpb3VzIGV4ZWN1dGluZyBjb250ZXh0 IHdhcyBvbiB0aGUgR1BVIGFuZCBzbyB3ZQp3b3VsZCBub3QgYmUgYWJsZSB0byBlbGlkZSB0aGUg TUlfU0VUX0NPTlRFWFQgY29tbWFuZHMgb3Vyc2VsdmVzIGFuZAphbHdheXMgaGF2ZSB0byBlbWl0 IHRoZW0uIEhhdmluZyBvdXIgaGFuZCBmb3JjZWQgbm93IGFjdHVhbGx5IHByZXBhcmVzCnVzIGZv ciBsYXRlci4KCk5vdyBzaW5jZSB0aGF0IGNvbnRleHQgYW5kIG1tIGZvbGxvdyB0aGUgcmVxdWVz dCwgd2Ugbm8gbG9uZ2VyIChhbmQgbm90CmZvciBhIGxvbmcgdGltZSBzaW5jZSByZXF1ZXN0cyB0 b29rIG92ZXIhKSByZXF1aXJlIGEgdHJhY2UgcG9pbnQgdG8gdGVsbAp3aGVuIHdlIHdyaXRlIHRo ZSBzd2l0Y2ggaW50byB0aGUgcmluZywgc2luY2UgaXQgaXMgYWx3YXlzLiAoVGhpcyBpcwpldmVu IG1vcmUgaW1wb3J0YW50IHdoZW4geW91IHJlbWVtYmVyIHRoYXQgc2ltcGx5IHdyaXRpbmcgaW50 byB0aGUgcmluZwpiZWFycyBubyByZWxhdGlvbiB0byB0aGUgY3VycmVudCBtbS4pCgp2MjogU2Fu ZHlicmlkZ2UgaGFzIHRvIGFncmVlIHRvIHVzZSBMUkkgYXMgd2VsbC4KClRlc3RjYXNlOiBpZ3Qv ZHJ2X3NlbGZ0ZXN0cy9saXZlX2hhbmdjaGVjawpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxh aHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFA bGludXguaW50ZWwuY29tPgpDYzogTWF0dGhldyBBdWxkIDxtYXR0aGV3LndpbGxpYW0uYXVsZEBn bWFpbC5jb20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpS ZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICB8ICA0NSAt LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oICAgICB8ICAgMiAt CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgfCAgIDIgKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdHJhY2UuaCAgICAgICB8ICAzMyAtLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgfCAgIDMgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jIHwgMTI1ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgICA5IC0tCiA4IGZpbGVzIGNoYW5nZWQs IDY2IGluc2VydGlvbnMoKyksIDE1NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5jCmluZGV4IDYzYmQ0MDY4OGZiYi4uOTk2Njg0NWE3ZjIyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMTcxMiw0NSArMTcxMiw2IEBAIHN0YXRpYyB2b2lkIGdl bjZfd3JpdGVfcGFnZV9yYW5nZShzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCiAJd21iKCk7 CiB9CiAKLXN0YXRpYyBpbmxpbmUgdTMyIGdldF9wZF9vZmZzZXQoc3RydWN0IGk5MTVfaHdfcHBn dHQgKnBwZ3R0KQotewotCUdFTV9CVUdfT04ocHBndHQtPnBkLmJhc2UuZ2d0dF9vZmZzZXQgJiAw eDNmKTsKLQlyZXR1cm4gcHBndHQtPnBkLmJhc2UuZ2d0dF9vZmZzZXQgPDwgMTA7Ci19Ci0KLXN0 YXRpYyBpbnQgZ2VuN19tbV9zd2l0Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAotCQkJ ICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUgPSBycS0+ZW5naW5lOwotCXUzMiAqY3M7Ci0KLQkvKiBOQjogVExCcyBtdXN0IGJlIGZs dXNoZWQgYW5kIGludmFsaWRhdGVkIGJlZm9yZSBhIHN3aXRjaCAqLwotCWNzID0gaW50ZWxfcmlu Z19iZWdpbihycSwgNik7Ci0JaWYgKElTX0VSUihjcykpCi0JCXJldHVybiBQVFJfRVJSKGNzKTsK LQotCSpjcysrID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0oMik7Ci0JKmNzKysgPSBpOTE1X21taW9f cmVnX29mZnNldChSSU5HX1BQX0RJUl9EQ0xWKGVuZ2luZSkpOwotCSpjcysrID0gUFBfRElSX0RD TFZfMkc7Ci0JKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX1BQX0RJUl9CQVNFKGVu Z2luZSkpOwotCSpjcysrID0gZ2V0X3BkX29mZnNldChwcGd0dCk7Ci0JKmNzKysgPSBNSV9OT09Q OwotCWludGVsX3JpbmdfYWR2YW5jZShycSwgY3MpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRp YyBpbnQgZ2VuNl9tbV9zd2l0Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAotCQkJICBz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSBycS0+ZW5naW5lOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJx LT5pOTE1OwotCi0JSTkxNV9XUklURShSSU5HX1BQX0RJUl9EQ0xWKGVuZ2luZSksIFBQX0RJUl9E Q0xWXzJHKTsKLQlJOTE1X1dSSVRFKFJJTkdfUFBfRElSX0JBU0UoZW5naW5lKSwgZ2V0X3BkX29m ZnNldChwcGd0dCkpOwotCXJldHVybiAwOwotfQotCiBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2Vu YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lOwpAQCAtMjAyNCwxMiArMTk4NSw2IEBAIHN0YXRpYyBzdHJ1Y3Qg aTkxNV9od19wcGd0dCAqZ2VuNl9wcGd0dF9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCiAJcHBndHQtPnZtLmRtYSA9ICZpOTE1LT5kcm0ucGRldi0+ZGV2OwogCiAJcHBndHQt PnZtLnB0ZV9lbmNvZGUgPSBnZ3R0LT52bS5wdGVfZW5jb2RlOwotCWlmIChJU19HRU42KGk5MTUp KQotCQlwcGd0dC0+c3dpdGNoX21tID0gZ2VuNl9tbV9zd2l0Y2g7Ci0JZWxzZSBpZiAoSVNfR0VO NyhpOTE1KSkKLQkJcHBndHQtPnN3aXRjaF9tbSA9IGdlbjdfbW1fc3dpdGNoOwotCWVsc2UKLQkJ QlVHKCk7CiAKIAllcnIgPSBnZW42X3BwZ3R0X2FsbG9jKHBwZ3R0KTsKIAlpZiAoZXJyKQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAppbmRleCAxNjMwN2JhN2UzMDMuLmU3MGY2YWJjZDBm MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKQEAgLTQwNiw4ICs0MDYsNiBAQCBz dHJ1Y3QgaTkxNV9od19wcGd0dCB7CiAKIAlnZW42X3B0ZV90IF9faW9tZW0gKnBkX2FkZHI7CiAK LQlpbnQgKCpzd2l0Y2hfbW0pKHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwKLQkJCSBzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSk7CiAJdm9pZCAoKmRlYnVnX2R1bXApKHN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCwgc3RydWN0IHNlcV9maWxlICptKTsKIH07CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZXF1ZXN0LmMKaW5kZXggZjE4NzI1MGU2MGM2Li45MDkyZjU0NjRjMjQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCkBAIC04MTcsNiArODE3LDggQEAgaTkxNV9yZXF1ZXN0 X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCkKIAkvKiBLZWVwIGEgc2Vjb25kIHBpbiBmb3IgdGhlIGR1YWwgcmV0aXJlbWVu dCBhbG9uZyBlbmdpbmUgYW5kIHJpbmcgKi8KIAlfX2ludGVsX2NvbnRleHRfcGluKGNlKTsKIAor CXJxLT5pbmZpeCA9IHJxLT5yaW5nLT5lbWl0OyAvKiBlbmQgb2YgaGVhZGVyOyBzdGFydCBvZiB1 c2VyIHBheWxvYWQgKi8KKwogCS8qIENoZWNrIHRoYXQgd2UgZGlkbid0IGludGVycnVwdCBvdXJz ZWx2ZXMgd2l0aCBhIG5ldyByZXF1ZXN0ICovCiAJR0VNX0JVR19PTihycS0+dGltZWxpbmUtPnNl cW5vICE9IHJxLT5mZW5jZS5zZXFubyk7CiAJcmV0dXJuIHJxOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlcXVlc3QuaAppbmRleCA0OTFmZjgxZDBmZWEuLjBlOWFiYTUzZDBlNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZXF1ZXN0LmgKQEAgLTEzNCw2ICsxMzQsOSBAQCBzdHJ1Y3QgaTkxNV9yZXF1 ZXN0IHsKIAkvKiogUG9zaXRpb24gaW4gdGhlIHJpbmcgb2YgdGhlIHN0YXJ0IG9mIHRoZSByZXF1 ZXN0ICovCiAJdTMyIGhlYWQ7CiAKKwkvKiogUG9zaXRpb24gaW4gdGhlIHJpbmcgb2YgdGhlIHN0 YXJ0IG9mIHRoZSB1c2VyIHBhY2tldHMgKi8KKwl1MzIgaW5maXg7CisKIAkvKioKIAkgKiBQb3Np dGlvbiBpbiB0aGUgcmluZyBvZiB0aGUgc3RhcnQgb2YgdGhlIHBvc3RmaXguCiAJICogVGhpcyBp cyByZXF1aXJlZCB0byBjYWxjdWxhdGUgdGhlIG1heGltdW0gYXZhaWxhYmxlIHJpbmcgc3BhY2UK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAppbmRleCAxNDcyZjQ4YWIyZTguLmI1MGM2YjgyOTcx NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaApAQCAtOTczLDM5ICs5NzMsNiBAQCBERUZJ TkVfRVZFTlQoaTkxNV9jb250ZXh0LCBpOTE1X2NvbnRleHRfZnJlZSwKIAlUUF9BUkdTKGN0eCkK ICk7CiAKLS8qKgotICogRE9DOiBzd2l0Y2hfbW0gdHJhY2Vwb2ludAotICoKLSAqIFRoaXMgdHJh Y2Vwb2ludCBhbGxvd3MgdHJhY2tpbmcgb2YgdGhlIG1tIHN3aXRjaCwgd2hpY2ggaXMgYW4gaW1w b3J0YW50IHBvaW50Ci0gKiBpbiB0aGUgbGlmZXRpbWUgb2YgdGhlIHZtIGluIHRoZSBsZWdhY3kg c3VibWlzc2lvbiBwYXRoLiBUaGlzIHRyYWNlcG9pbnQgaXMKLSAqIGNhbGxlZCBvbmx5IGlmIGZ1 bGwgcHBndHQgaXMgZW5hYmxlZC4KLSAqLwotVFJBQ0VfRVZFTlQoc3dpdGNoX21tLAotCVRQX1BS T1RPKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKnRvKSwKLQotCVRQX0FSR1MoZW5naW5lLCB0byksCi0KLQlUUF9TVFJVQ1RfX2VudHJ5KAot CQkJX19maWVsZCh1MTYsIGNsYXNzKQotCQkJX19maWVsZCh1MTYsIGluc3RhbmNlKQotCQkJX19m aWVsZChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqLCB0bykKLQkJCV9fZmllbGQoc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqLCB2bSkKLQkJCV9fZmllbGQodTMyLCBkZXYpCi0JKSwKLQotCVRQ X2Zhc3RfYXNzaWduKAotCQkJX19lbnRyeS0+Y2xhc3MgPSBlbmdpbmUtPnVhYmlfY2xhc3M7Ci0J CQlfX2VudHJ5LT5pbnN0YW5jZSA9IGVuZ2luZS0+aW5zdGFuY2U7Ci0JCQlfX2VudHJ5LT50byA9 IHRvOwotCQkJX19lbnRyeS0+dm0gPSB0by0+cHBndHQgPyAmdG8tPnBwZ3R0LT52bSA6IE5VTEw7 Ci0JCQlfX2VudHJ5LT5kZXYgPSBlbmdpbmUtPmk5MTUtPmRybS5wcmltYXJ5LT5pbmRleDsKLQkp LAotCi0JVFBfcHJpbnRrKCJkZXY9JXUsIGVuZ2luZT0ldToldSwgY3R4PSVwLCBjdHhfdm09JXAi LAotCQkgIF9fZW50cnktPmRldiwgX19lbnRyeS0+Y2xhc3MsIF9fZW50cnktPmluc3RhbmNlLCBf X2VudHJ5LT50bywKLQkJICBfX2VudHJ5LT52bSkKLSk7Ci0KICNlbmRpZiAvKiBfSTkxNV9UUkFD RV9IXyAqLwogCiAvKiBUaGlzIHBhcnQgbXVzdCBiZSBvdXRzaWRlIHByb3RlY3Rpb24gKi8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggMmVjMmU2MGRjNjcwLi5kMWNm OGI0OTI2YWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0xMTY4 LDkgKzExNjgsNiBAQCB2b2lkIGludGVsX2VuZ2luZV9sb3N0X2NvbnRleHQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT5pOTE1 LT5kcm0uc3RydWN0X211dGV4KTsKIAotCWVuZ2luZS0+bGVnYWN5X2FjdGl2ZV9jb250ZXh0ID0g TlVMTDsKLQllbmdpbmUtPmxlZ2FjeV9hY3RpdmVfcHBndHQgPSBOVUxMOwotCiAJY2UgPSBmZXRj aF9hbmRfemVybygmZW5naW5lLT5sYXN0X3JldGlyZWRfY29udGV4dCk7CiAJaWYgKGNlKQogCQlp bnRlbF9jb250ZXh0X3VucGluKGNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwppbmRleCAzOTEwOGQ4ZGNlYzUuLjNhZjZkYWE3NWY1MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtNTQxLDExICs1NDEsMjMgQEAgc3RhdGljIHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJlc2V0X3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogCXJldHVybiBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0KGVuZ2luZSk7CiB9CiAK LXN0YXRpYyB2b2lkIHJlc2V0X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAot CQkgICAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKK3N0YXRpYyB2b2lkIHNraXBf cmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKLQlHRU1fVFJBQ0UoIiVzIHNlcW5v PSV4XG4iLAotCQkgIGVuZ2luZS0+bmFtZSwgcmVxdWVzdCA/IHJlcXVlc3QtPmdsb2JhbF9zZXFu byA6IDApOworCXZvaWQgKnZhZGRyID0gcnEtPnJpbmctPnZhZGRyOworCXUzMiBoZWFkOworCisJ aGVhZCA9IHJxLT5pbmZpeDsKKwlpZiAocnEtPnBvc3RmaXggPCBoZWFkKSB7CisJCW1lbXNldDMy KHZhZGRyICsgaGVhZCwgTUlfTk9PUCwKKwkJCSAocnEtPnJpbmctPnNpemUgLSBoZWFkKSAvIHNp emVvZih1MzIpKTsKKwkJaGVhZCA9IDA7CisJfQorCW1lbXNldDMyKHZhZGRyICsgaGVhZCwgTUlf Tk9PUCwgKHJxLT5wb3N0Zml4IC0gaGVhZCkgLyBzaXplb2YodTMyKSk7Cit9CisKK3N0YXRpYyB2 b2lkIHJlc2V0X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpycSkKK3sKKwlHRU1fVFJBQ0UoIiVzIHNlcW5vPSV4XG4iLCBlbmdpbmUtPm5h bWUsIHJxID8gcnEtPmdsb2JhbF9zZXFubyA6IDApOwogCiAJLyoKIAkgKiBSQzYgbXVzdCBiZSBw cmV2ZW50ZWQgdW50aWwgdGhlIHJlc2V0IGlzIGNvbXBsZXRlIGFuZCB0aGUgZW5naW5lCkBAIC01 NjksNDMgKzU4MSwxMSBAQCBzdGF0aWMgdm9pZCByZXNldF9yaW5nKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwKIAkgKiBJZiB0aGUgcmVxdWVzdCB3YXMgaW5ub2NlbnQsIHdlIHRyeSB0 byByZXBsYXkgdGhlIHJlcXVlc3Qgd2l0aAogCSAqIHRoZSByZXN0b3JlZCBjb250ZXh0LgogCSAq LwotCWlmIChyZXF1ZXN0KSB7Ci0JCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHJlcXVlc3QtPmk5MTU7Ci0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IHJlcXVlc3QtPmh3 X2NvbnRleHQ7Ci0JCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dDsKLQotCQlpZiAoY2UtPnN0 YXRlKSB7Ci0JCQlJOTE1X1dSSVRFKENDSUQsCi0JCQkJICAgaTkxNV9nZ3R0X29mZnNldChjZS0+ c3RhdGUpIHwKLQkJCQkgICBCSVQoOCkgLyogbXVzdCBiZSBzZXQhICovIHwKLQkJCQkgICBDQ0lE X0VYVEVOREVEX1NUQVRFX1NBVkUgfAotCQkJCSAgIENDSURfRVhURU5ERURfU1RBVEVfUkVTVE9S RSB8Ci0JCQkJICAgQ0NJRF9FTik7Ci0JCX0KLQotCQlwcGd0dCA9IHJlcXVlc3QtPmdlbV9jb250 ZXh0LT5wcGd0dCA/OiBlbmdpbmUtPmk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0OwotCQlpZiAocHBn dHQpIHsKLQkJCXUzMiBwZF9vZmZzZXQgPSBwcGd0dC0+cGQuYmFzZS5nZ3R0X29mZnNldCA8PCAx MDsKLQotCQkJSTkxNV9XUklURShSSU5HX1BQX0RJUl9EQ0xWKGVuZ2luZSksIFBQX0RJUl9EQ0xW XzJHKTsKLQkJCUk5MTVfV1JJVEUoUklOR19QUF9ESVJfQkFTRShlbmdpbmUpLCBwZF9vZmZzZXQp OwotCi0JCQkvKiBXYWl0IGZvciB0aGUgUEQgcmVsb2FkIHRvIGNvbXBsZXRlICovCi0JCQlpZiAo aW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCi0JCQkJCQkgICAgUklOR19QUF9ESVJf QkFTRShlbmdpbmUpLAotCQkJCQkJICAgIEJJVCgwKSwgMCwKLQkJCQkJCSAgICAxMCkpCi0JCQkJ RFJNX0VSUk9SKCJXYWl0IGZvciByZWxvYWQgb2YgcHBndHQgcGFnZS1kaXJlY3RvcnkgdGltZWQg b3V0XG4iKTsKLQotCQkJcHBndHQtPnBkX2RpcnR5X3JpbmdzICY9IH5pbnRlbF9lbmdpbmVfZmxh ZyhlbmdpbmUpOwotCQl9Ci0KKwlpZiAocnEpIHsKIAkJLyogSWYgdGhlIHJxIGh1bmcsIGp1bXAg dG8gaXRzIGJyZWFkY3J1bWIgYW5kIHNraXAgdGhlIGJhdGNoICovCi0JCWlmIChyZXF1ZXN0LT5m ZW5jZS5lcnJvciA9PSAtRUlPKQotCQkJcmVxdWVzdC0+cmluZy0+aGVhZCA9IHJlcXVlc3QtPnBv c3RmaXg7Ci0JfSBlbHNlIHsKLQkJZW5naW5lLT5sZWdhY3lfYWN0aXZlX2NvbnRleHQgPSBOVUxM OwotCQllbmdpbmUtPmxlZ2FjeV9hY3RpdmVfcHBndHQgPSBOVUxMOworCQlycS0+cmluZy0+aGVh ZCA9IGludGVsX3Jpbmdfd3JhcChycS0+cmluZywgcnEtPmhlYWQpOworCQlpZiAocnEtPmZlbmNl LmVycm9yID09IC1FSU8pCisJCQlza2lwX3JlcXVlc3QocnEpOwogCX0KIH0KIApAQCAtMTQ0OCw2 ICsxNDI4LDI5IEBAIHZvaWQgaW50ZWxfbGVnYWN5X3N1Ym1pc3Npb25fcmVzdW1lKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaW50ZWxfcmluZ19yZXNldChlbmdpbmUtPmJ1 ZmZlciwgMCk7CiB9CiAKK3N0YXRpYyBpbnQgbG9hZF9wZF9kaXIoc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEsCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCit7CisJ Y29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSA9IHJxLT5lbmdpbmU7 CisJdTMyICpjczsKKworCWNzID0gaW50ZWxfcmluZ19iZWdpbihycSwgNik7CisJaWYgKElTX0VS UihjcykpCisJCXJldHVybiBQVFJfRVJSKGNzKTsKKworCSpjcysrID0gTUlfTE9BRF9SRUdJU1RF Ul9JTU0oMSk7CisJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX1BQX0RJUl9EQ0xW KGVuZ2luZSkpOworCSpjcysrID0gUFBfRElSX0RDTFZfMkc7CisKKwkqY3MrKyA9IE1JX0xPQURf UkVHSVNURVJfSU1NKDEpOworCSpjcysrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19QUF9E SVJfQkFTRShlbmdpbmUpKTsKKwkqY3MrKyA9IHBwZ3R0LT5wZC5iYXNlLmdndHRfb2Zmc2V0IDw8 IDEwOworCisJaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBjcyk7CisKKwlyZXR1cm4gMDsKK30KKwog c3RhdGljIGlubGluZSBpbnQgbWlfc2V0X2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs IHUzMiBmbGFncykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHJxLT5pOTE1 OwpAQCAtMTU5MiwzMSArMTU5NSwyOCBAQCBzdGF0aWMgaW50IHJlbWFwX2wzKHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxLCBpbnQgc2xpY2UpCiBzdGF0aWMgaW50IHN3aXRjaF9jb250ZXh0KHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9 IHJxLT5lbmdpbmU7Ci0Jc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKnRvX2N0eCA9IHJxLT5nZW1f Y29udGV4dDsKLQlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqdG9fbW0gPQotCQl0b19jdHgtPnBwZ3R0 ID86IHJxLT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dDsKLQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4 dCAqZnJvbV9jdHggPSBlbmdpbmUtPmxlZ2FjeV9hY3RpdmVfY29udGV4dDsKLQlzdHJ1Y3QgaTkx NV9od19wcGd0dCAqZnJvbV9tbSA9IGVuZ2luZS0+bGVnYWN5X2FjdGl2ZV9wcGd0dDsKKwlzdHJ1 Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0gcnEtPmdlbV9jb250ZXh0OworCXN0cnVjdCBpOTE1 X2h3X3BwZ3R0ICpwcGd0dCA9IGN0eC0+cHBndHQgPzogcnEtPmk5MTUtPm1tLmFsaWFzaW5nX3Bw Z3R0OworCXVuc2lnbmVkIGludCB1bndpbmRfbW0gPSAwOwogCXUzMiBod19mbGFncyA9IDA7CiAJ aW50IHJldCwgaTsKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnJxLT5pOTE1LT5kcm0uc3RydWN0 X211dGV4KTsKIAlHRU1fQlVHX09OKEhBU19FWEVDTElTVFMocnEtPmk5MTUpKTsKIAotCWlmICh0 b19tbSAhPSBmcm9tX21tIHx8Ci0JICAgICh0b19tbSAmJiBpbnRlbF9lbmdpbmVfZmxhZyhlbmdp bmUpICYgdG9fbW0tPnBkX2RpcnR5X3JpbmdzKSkgewotCQl0cmFjZV9zd2l0Y2hfbW0oZW5naW5l LCB0b19jdHgpOwotCQlyZXQgPSB0b19tbS0+c3dpdGNoX21tKHRvX21tLCBycSk7CisJaWYgKHBw Z3R0KSB7CisJCXJldCA9IGxvYWRfcGRfZGlyKHJxLCBwcGd0dCk7CiAJCWlmIChyZXQpCiAJCQln b3RvIGVycjsKIAotCQl0b19tbS0+cGRfZGlydHlfcmluZ3MgJj0gfmludGVsX2VuZ2luZV9mbGFn KGVuZ2luZSk7Ci0JCWVuZ2luZS0+bGVnYWN5X2FjdGl2ZV9wcGd0dCA9IHRvX21tOwotCQlod19m bGFncyA9IE1JX0ZPUkNFX1JFU1RPUkU7CisJCWlmIChpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUp ICYgcHBndHQtPnBkX2RpcnR5X3JpbmdzKSB7CisJCQl1bndpbmRfbW0gPSBpbnRlbF9lbmdpbmVf ZmxhZyhlbmdpbmUpOworCQkJcHBndHQtPnBkX2RpcnR5X3JpbmdzICY9IH51bndpbmRfbW07CisJ CQlod19mbGFncyA9IE1JX0ZPUkNFX1JFU1RPUkU7CisJCX0KIAl9CiAKLQlpZiAocnEtPmh3X2Nv bnRleHQtPnN0YXRlICYmCi0JICAgICh0b19jdHggIT0gZnJvbV9jdHggfHwgaHdfZmxhZ3MgJiBN SV9GT1JDRV9SRVNUT1JFKSkgeworCWlmIChycS0+aHdfY29udGV4dC0+c3RhdGUpIHsKIAkJR0VN X0JVR19PTihlbmdpbmUtPmlkICE9IFJDUyk7CiAKIAkJLyoKQEAgLTE2MjYsMzUgKzE2MjYsMzIg QEAgc3RhdGljIGludCBzd2l0Y2hfY29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAkJ ICogYXMgbm90aGluZyBhY3R1YWxseSBleGVjdXRlcyB1c2luZyB0aGUga2VybmVsIGNvbnRleHQ7 IGl0CiAJCSAqIGlzIHB1cmVseSB1c2VkIGZvciBmbHVzaGluZyB1c2VyIGNvbnRleHRzLgogCQkg Ki8KLQkJaWYgKGk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVsKHRvX2N0eCkpCisJCWlmIChpOTE1 X2dlbV9jb250ZXh0X2lzX2tlcm5lbChjdHgpKQogCQkJaHdfZmxhZ3MgPSBNSV9SRVNUT1JFX0lO SElCSVQ7CiAKIAkJcmV0ID0gbWlfc2V0X2NvbnRleHQocnEsIGh3X2ZsYWdzKTsKIAkJaWYgKHJl dCkKIAkJCWdvdG8gZXJyX21tOwotCi0JCWVuZ2luZS0+bGVnYWN5X2FjdGl2ZV9jb250ZXh0ID0g dG9fY3R4OwogCX0KIAotCWlmICh0b19jdHgtPnJlbWFwX3NsaWNlKSB7CisJaWYgKGN0eC0+cmVt YXBfc2xpY2UpIHsKIAkJZm9yIChpID0gMDsgaSA8IE1BWF9MM19TTElDRVM7IGkrKykgewotCQkJ aWYgKCEodG9fY3R4LT5yZW1hcF9zbGljZSAmIEJJVChpKSkpCisJCQlpZiAoIShjdHgtPnJlbWFw X3NsaWNlICYgQklUKGkpKSkKIAkJCQljb250aW51ZTsKIAogCQkJcmV0ID0gcmVtYXBfbDMocnEs IGkpOwogCQkJaWYgKHJldCkKLQkJCQlnb3RvIGVycl9jdHg7CisJCQkJZ290byBlcnJfbW07CiAJ CX0KIAotCQl0b19jdHgtPnJlbWFwX3NsaWNlID0gMDsKKwkJY3R4LT5yZW1hcF9zbGljZSA9IDA7 CiAJfQogCiAJcmV0dXJuIDA7CiAKLWVycl9jdHg6Ci0JZW5naW5lLT5sZWdhY3lfYWN0aXZlX2Nv bnRleHQgPSBmcm9tX2N0eDsKIGVycl9tbToKLQllbmdpbmUtPmxlZ2FjeV9hY3RpdmVfcHBndHQg PSBmcm9tX21tOworCWlmICh1bndpbmRfbW0pCisJCXBwZ3R0LT5wZF9kaXJ0eV9yaW5ncyB8PSB1 bndpbmRfbW07CiBlcnI6CiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaAppbmRleCBhY2VmMzg1YzRjODAuLmI0NGM2Nzg0OTc0OSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtNTU3LDE1ICs1NTcsNiBAQCBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzIHsKIAkgKi8KIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqbGFzdF9y ZXRpcmVkX2NvbnRleHQ7CiAKLQkvKiBXZSB0cmFjayB0aGUgY3VycmVudCBNSV9TRVRfQ09OVEVY VCBpbiBvcmRlciB0byBlbGltaW5hdGUKLQkgKiByZWR1ZGFudCBjb250ZXh0IHN3aXRjaGVzLiBU aGlzIHByZXN1bWVzIHRoYXQgcmVxdWVzdHMgYXJlIG5vdAotCSAqIHJlb3JkZXJlZCEgT3Igd2hl biB0aGV5IGFyZSB0aGUgdHJhY2tpbmcgaXMgdXBkYXRlZCBhbG9uZyB3aXRoCi0JICogdGhlIGVt aXNzaW9uIG9mIGluZGl2aWR1YWwgcmVxdWVzdHMgaW50byB0aGUgbGVnYWN5IGNvbW1hbmQKLQkg KiBzdHJlYW0gKHJpbmcpLgotCSAqLwotCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpsZWdhY3lf YWN0aXZlX2NvbnRleHQ7Ci0Jc3RydWN0IGk5MTVfaHdfcHBndHQgKmxlZ2FjeV9hY3RpdmVfcHBn dHQ7Ci0KIAkvKiBzdGF0dXNfbm90aWZpZXI6IGxpc3Qgb2YgY2FsbGJhY2tzIGZvciBjb250ZXh0 LXN3aXRjaCBjaGFuZ2VzICovCiAJc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkIGNvbnRleHRf c3RhdHVzX25vdGlmaWVyOwogCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=