From mboxrd@z Thu Jan 1 00:00:00 1970 From: jeff.mcgee@intel.com Subject: [RFC 2/8] drm/i915: Add control flags to i915_handle_error() Date: Wed, 21 Mar 2018 10:26:19 -0700 Message-ID: <20180321172625.6415-3-jeff.mcgee@intel.com> References: <20180321172625.6415-1-jeff.mcgee@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 938136E111 for ; Wed, 21 Mar 2018 17:41:19 +0000 (UTC) In-Reply-To: <20180321172625.6415-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, Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpOb3QgYWxsIGNh bGxlcnMgd2FudCB0aGUgR1BVIGVycm9yIHRvIGhhbmRsZWQgaW4gdGhlIHNhbWUgd2F5LCBzbyBl eHBvc2UKYSBjb250cm9sIHBhcmFtZXRlci4gSW4gdGhlIGZpcnN0IGluc3RhbmNlLCBzb21lIGNh bGxlcnMgZG8gbm90IHdhbnQgdGhlCmhlYXZ5d2VpZ2h0IGVycm9yIGNhcHR1cmUgc28gYWRkIGEg Yml0IHRvIHJlcXVlc3QgdGhlIHN0YXRlIHRvIGJlCmNhcHR1cmVkIGFuZCBzYXZlZC4KCnYyOiBQ YXNzIG1zZyBkb3duIHRvIGk5MTVfcmVzZXQvaTkxNV9yZXNldF9lbmdpbmUgc28gdGhhdCB3ZSBp bmNsdWRlIHRoZQpyZWFzb24gZm9yIHRoZSByZXNldCBpbiB0aGUgZGV2X25vdGljZSgpLCBzdXBl cnNlZGluZyB0aGUgZWFybGllciBvcHRpb24KdG8gbm90IHByaW50IHRoYXQgbm90aWNlLgp2Mzog U3Rhc2ggdGhlIHJlYXNvbiBpbnNpZGUgdGhlIGk5MTUtPmdwdV9lcnJvciB0byBoYW5kb3ZlciB0 byB0aGUgZGlyZWN0CnJlc2V0IGZyb20gdGhlIGJsb2NraW5nIHdhaXRlci4KClNpZ25lZC1vZmYt Ynk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogSmVmZiBNY0dl ZSA8amVmZi5tY2dlZUBpbnRlbC5jb20+CkNjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxh QGludGVsLmNvbT4KQ2M6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgICAgIHwg IDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICAgICAgICAgICB8 IDE3ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAg ICAgICAgfCAxMCArKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaCAg ICAgICAgICAgIHwgIDMgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAg ICAgICAgICAgICB8IDU1ICsrKysrKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hhbmdjaGVjay5jICAgICAgICAgICB8ICA4ICsrLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYyB8IDEzICsrKy0tLQogOCBmaWxl cyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDk2NGVhMWExMjM1Ny4uNzgxNmNkNTMxMDBhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtNDAxMSw4ICs0MDExLDggQEAgaTkxNV93 ZWRnZWRfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCiAJCWVuZ2luZS0+aGFuZ2NoZWNrLnN0YWxs ZWQgPSB0cnVlOwogCX0KIAotCWk5MTVfaGFuZGxlX2Vycm9yKGk5MTUsIHZhbCwgIk1hbnVhbGx5 IHNldCB3ZWRnZWQgZW5naW5lIG1hc2sgPSAlbGx4IiwKLQkJCSAgdmFsKTsKKwlpOTE1X2hhbmRs ZV9lcnJvcihpOTE1LCB2YWwsIEk5MTVfRVJST1JfQ0FQVFVSRSwKKwkJCSAgIk1hbnVhbGx5IHNl dCB3ZWRnZWQgZW5naW5lIG1hc2sgPSAlbGx4IiwgdmFsKTsKIAogCXdhaXRfb25fYml0KCZpOTE1 LT5ncHVfZXJyb3IuZmxhZ3MsCiAJCSAgICBJOTE1X1JFU0VUX0hBTkRPRkYsCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwppbmRleCAxMDIxYmY0MGUyMzYuLjZiMDRjYzNiZTUxMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCkBAIC0xODY5LDcgKzE4NjksNiBAQCBzdGF0aWMgaW50IGk5MTVfcmVzdW1l X3N3aXRjaGVyb28oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIC8qKgogICogaTkxNV9yZXNldCAt IHJlc2V0IGNoaXAgYWZ0ZXIgYSBoYW5nCiAgKiBAaTkxNTogI2RybV9pOTE1X3ByaXZhdGUgdG8g cmVzZXQKLSAqIEBmbGFnczogSW5zdHJ1Y3Rpb25zCiAgKgogICogUmVzZXQgdGhlIGNoaXAuICBV c2VmdWwgaWYgYSBoYW5nIGlzIGRldGVjdGVkLiBNYXJrcyB0aGUgZGV2aWNlIGFzIHdlZGdlZAog ICogb24gZmFpbHVyZS4KQEAgLTE4ODQsNyArMTg4Myw3IEBAIHN0YXRpYyBpbnQgaTkxNV9yZXN1 bWVfc3dpdGNoZXJvbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogICogICAtIHJlLWluaXQgaW50 ZXJydXB0IHN0YXRlCiAgKiAgIC0gcmUtaW5pdCBkaXNwbGF5CiAgKi8KLXZvaWQgaTkxNV9yZXNl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQordm9p ZCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCXN0cnVjdCBp OTE1X2dwdV9lcnJvciAqZXJyb3IgPSAmaTkxNS0+Z3B1X2Vycm9yOwogCWludCByZXQ7CkBAIC0x OTAxLDggKzE5MDAsOSBAQCB2b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsIHVuc2lnbmVkIGludCBmbGFncykKIAlpZiAoIWk5MTVfZ2VtX3Vuc2V0X3dlZGdlZChp OTE1KSkKIAkJZ290byB3YWtldXA7CiAKLQlpZiAoIShmbGFncyAmIEk5MTVfUkVTRVRfUVVJRVQp KQotCQlkZXZfbm90aWNlKGk5MTUtPmRybS5kZXYsICJSZXNldHRpbmcgY2hpcCBhZnRlciBncHUg aGFuZ1xuIik7CisJaWYgKGVycm9yLT5yZWFzb24pCisJCWRldl9ub3RpY2UoaTkxNS0+ZHJtLmRl diwKKwkJCSAgICJSZXNldHRpbmcgY2hpcCBmb3IgJXNcbiIsIGVycm9yLT5yZWFzb24pOwogCWVy cm9yLT5yZXNldF9jb3VudCsrOwogCiAJZGlzYWJsZV9pcnEoaTkxNS0+ZHJtLmlycSk7CkBAIC0y MDAzLDcgKzIwMDMsNyBAQCBzdGF0aWMgaW5saW5lIGludCBpbnRlbF9ndF9yZXNldF9lbmdpbmUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogLyoqCiAgKiBpOTE1X3Jlc2V0X2Vu Z2luZSAtIHJlc2V0IEdQVSBlbmdpbmUgdG8gcmVjb3ZlciBmcm9tIGEgaGFuZwogICogQGVuZ2lu ZTogZW5naW5lIHRvIHJlc2V0Ci0gKiBAZmxhZ3M6IG9wdGlvbnMKKyAqIEBtc2c6IHJlYXNvbiBm b3IgR1BVIHJlc2V0OyBvciBOVUxMIGZvciBubyBkZXZfbm90aWNlKCkKICAqCiAgKiBSZXNldCBh IHNwZWNpZmljIEdQVSBlbmdpbmUuIFVzZWZ1bCBpZiBhIGhhbmcgaXMgZGV0ZWN0ZWQuCiAgKiBS ZXR1cm5zIHplcm8gb24gc3VjY2Vzc2Z1bCByZXNldCBvciBvdGhlcndpc2UgYW4gZXJyb3IgY29k ZS4KQEAgLTIwMTMsNyArMjAxMyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGludGVsX2d0X3Jlc2V0 X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKiAgLSByZXNldCBl bmdpbmUgKHdoaWNoIHdpbGwgZm9yY2UgdGhlIGVuZ2luZSB0byBpZGxlKQogICogIC0gcmUtaW5p dC9jb25maWd1cmUgZW5naW5lCiAgKi8KLWludCBpOTE1X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsIHVuc2lnbmVkIGludCBmbGFncykKK2ludCBpOTE1X3Jlc2V0 X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGNvbnN0IGNoYXIgKm1zZykK IHsKIAlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yID0gJmVuZ2luZS0+aTkxNS0+Z3B1X2Vy cm9yOwogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKmFjdGl2ZV9yZXF1ZXN0OwpAQCAtMjAyOCwxMCAr MjAyOCw5IEBAIGludCBpOTE1X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsIHVuc2lnbmVkIGludCBmbGFncykKIAkJZ290byBvdXQ7CiAJfQogCi0JaWYgKCEoZmxh Z3MgJiBJOTE1X1JFU0VUX1FVSUVUKSkgeworCWlmIChtc2cpCiAJCWRldl9ub3RpY2UoZW5naW5l LT5pOTE1LT5kcm0uZGV2LAotCQkJICAgIlJlc2V0dGluZyAlcyBhZnRlciBncHUgaGFuZ1xuIiwg ZW5naW5lLT5uYW1lKTsKLQl9CisJCQkgICAiUmVzZXR0aW5nICVzIGZvciAlc1xuIiwgZW5naW5l LT5uYW1lLCBtc2cpOwogCWVycm9yLT5yZXNldF9lbmdpbmVfY291bnRbZW5naW5lLT5pZF0rKzsK IAogCWlmICghZW5naW5lLT5pOTE1LT5ndWMuZXhlY2J1Zl9jbGllbnQpCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCBlMjdiYThmYjY0ZTYuLmM5YzNiMmJhNmE4NiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCkBAIC0yNzAwLDEwICsyNzAwLDggQEAgZXh0ZXJuIHZvaWQgaTkxNV9kcml2ZXJf dW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogZXh0ZXJuIGludCBpbnRlbF9ncHVfcmVz ZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgZW5naW5lX21hc2spOwog ZXh0ZXJuIGJvb2wgaW50ZWxfaGFzX2dwdV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwogCi0jZGVmaW5lIEk5MTVfUkVTRVRfUVVJRVQgQklUKDApCi1leHRlcm4gdm9p ZCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1bnNpZ25lZCBpbnQg ZmxhZ3MpOwotZXh0ZXJuIGludCBpOTE1X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsCi0JCQkgICAgIHVuc2lnbmVkIGludCBmbGFncyk7CitleHRlcm4gdm9pZCBp OTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK2V4dGVybiBpbnQgaTkx NV9yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBjb25zdCBjaGFy ICptc2cpOwogCiBleHRlcm4gYm9vbCBpbnRlbF9oYXNfcmVzZXRfZW5naW5lKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBleHRlcm4gaW50IGludGVsX3Jlc2V0X2d1YyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpAQCAtMjc1MSwxMCArMjc0OSwxMiBAQCBz dGF0aWMgaW5saW5lIHZvaWQgaTkxNV9xdWV1ZV9oYW5nY2hlY2soc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCQkJICAgJmRldl9wcml2LT5ncHVfZXJyb3IuaGFuZ2NoZWNrX3dv cmssIGRlbGF5KTsKIH0KIAotX19wcmludGYoMywgNCkKK19fcHJpbnRmKDQsIDUpCiB2b2lkIGk5 MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJICAg ICAgIHUzMiBlbmdpbmVfbWFzaywKKwkJICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJCSAg ICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CisjZGVmaW5lIEk5MTVfRVJST1JfQ0FQVFVSRSBC SVQoMCkKIAogZXh0ZXJuIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIGV4dGVybiB2b2lkIGludGVsX2lycV9maW5pKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dwdV9lcnJvci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaApp bmRleCBlYmJkZjM3ZTI4NzkuLmFjNTc2MDY3M2NjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dwdV9lcnJvci5oCkBAIC0yNjksNiArMjY5LDkgQEAgc3RydWN0IGk5MTVfZ3B1X2Vycm9yIHsK IAkvKiogTnVtYmVyIG9mIHRpbWVzIGFuIGVuZ2luZSBoYXMgYmVlbiByZXNldCAqLwogCXUzMiBy ZXNldF9lbmdpbmVfY291bnRbSTkxNV9OVU1fRU5HSU5FU107CiAKKwkvKiogUmVhc29uIGZvciB0 aGUgY3VycmVudCAqZ2xvYmFsKiByZXNldCAqLworCWNvbnN0IGNoYXIgKnJlYXNvbjsKKwogCS8q KgogCSAqIFdhaXRxdWV1ZSB0byBzaWduYWwgd2hlbiBhIGhhbmcgaXMgZGV0ZWN0ZWQuIFVzZWQg dG8gZm9yIHdhaXRlcnMKIAkgKiB0byByZWxlYXNlIHRoZSBzdHJ1Y3RfbXV0ZXggZm9yIHRoZSBy ZXNldCB0byBwcm9jZWRlLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggNDRlZWYzNTVlMTJj Li5mYTczMTA3NjYyMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMjg3NywxNSArMjg3 NywxMCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuMTFfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9p ZCAqYXJnKQogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIAotLyoqCi0gKiBpOTE1X3Jlc2V0X2Rl dmljZSAtIGRvIHByb2Nlc3MgY29udGV4dCBlcnJvciBoYW5kbGluZyB3b3JrCi0gKiBAZGV2X3By aXY6IGk5MTUgZGV2aWNlIHByaXZhdGUKLSAqCi0gKiBGaXJlIGFuIGVycm9yIHVldmVudCBzbyB1 c2Vyc3BhY2UgY2FuIHNlZSB0aGF0IGEgaGFuZyBvciBlcnJvcgotICogd2FzIGRldGVjdGVkLgot ICovCi1zdGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2RldmljZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgICBjb25zdCBjaGFyICptc2cpCiB7CisJc3Ry dWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZkZXZfcHJpdi0+Z3B1X2Vycm9yOwogCXN0cnVj dCBrb2JqZWN0ICprb2JqID0gJmRldl9wcml2LT5kcm0ucHJpbWFyeS0+a2Rldi0+a29iajsKIAlj aGFyICplcnJvcl9ldmVudFtdID0geyBJOTE1X0VSUk9SX1VFVkVOVCAiPTEiLCBOVUxMIH07CiAJ Y2hhciAqcmVzZXRfZXZlbnRbXSA9IHsgSTkxNV9SRVNFVF9VRVZFTlQgIj0xIiwgTlVMTCB9OwpA QCAtMjkwMSwyOSArMjg5NiwzMiBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2RldmljZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaTkxNV93ZWRnZV9vbl90aW1lb3V0KCZ3 LCBkZXZfcHJpdiwgNSpIWikgewogCQlpbnRlbF9wcmVwYXJlX3Jlc2V0KGRldl9wcml2KTsKIAor CQllcnJvci0+cmVhc29uID0gbXNnOworCiAJCS8qIFNpZ25hbCB0aGF0IGxvY2tlZCB3YWl0ZXJz IHNob3VsZCByZXNldCB0aGUgR1BVICovCi0JCXNldF9iaXQoSTkxNV9SRVNFVF9IQU5ET0ZGLCAm ZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncyk7Ci0JCXdha2VfdXBfYWxsKCZkZXZfcHJpdi0+Z3B1 X2Vycm9yLndhaXRfcXVldWUpOworCQlzZXRfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwgJmVycm9y LT5mbGFncyk7CisJCXdha2VfdXBfYWxsKCZlcnJvci0+d2FpdF9xdWV1ZSk7CiAKIAkJLyogV2Fp dCBmb3IgYW55b25lIGhvbGRpbmcgdGhlIGxvY2sgdG8gd2FrZXVwLCB3aXRob3V0CiAJCSAqIGJs b2NraW5nIGluZGVmaW5pdGVseSBvbiBzdHJ1Y3RfbXV0ZXguCiAJCSAqLwogCQlkbyB7CiAJCQlp ZiAobXV0ZXhfdHJ5bG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpKSB7Ci0JCQkJaTkx NV9yZXNldChkZXZfcHJpdiwgMCk7CisJCQkJaTkxNV9yZXNldChkZXZfcHJpdik7CiAJCQkJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJCQl9Ci0JCX0gd2hpbGUg KHdhaXRfb25fYml0X3RpbWVvdXQoJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MsCisJCX0gd2hp bGUgKHdhaXRfb25fYml0X3RpbWVvdXQoJmVycm9yLT5mbGFncywKIAkJCQkJICAgICBJOTE1X1JF U0VUX0hBTkRPRkYsCiAJCQkJCSAgICAgVEFTS19VTklOVEVSUlVQVElCTEUsCiAJCQkJCSAgICAg MSkpOwogCisJCWVycm9yLT5yZWFzb24gPSBOVUxMOworCiAJCWludGVsX2ZpbmlzaF9yZXNldChk ZXZfcHJpdik7CiAJfQogCi0JaWYgKCF0ZXN0X2JpdChJOTE1X1dFREdFRCwgJmRldl9wcml2LT5n cHVfZXJyb3IuZmxhZ3MpKQotCQlrb2JqZWN0X3VldmVudF9lbnYoa29iaiwKLQkJCQkgICBLT0JK X0NIQU5HRSwgcmVzZXRfZG9uZV9ldmVudCk7CisJaWYgKCF0ZXN0X2JpdChJOTE1X1dFREdFRCwg JmVycm9yLT5mbGFncykpCisJCWtvYmplY3RfdWV2ZW50X2Vudihrb2JqLCBLT0JKX0NIQU5HRSwg cmVzZXRfZG9uZV9ldmVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVfY2xlYXJfZXJyb3JfcmVn aXN0ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTI5NTUsNiArMjk1 Myw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfY2xlYXJfZXJyb3JfcmVnaXN0ZXJzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqIGk5MTVfaGFuZGxlX2Vycm9yIC0gaGFuZGxlIGEg Z3B1IGVycm9yCiAgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIHByaXZhdGUKICAqIEBlbmdpbmVf bWFzazogbWFzayByZXByZXNlbnRpbmcgZW5naW5lcyB0aGF0IGFyZSBodW5nCisgKiBAZmxhZ3M6 IGNvbnRyb2wgZmxhZ3MKICAqIEBmbXQ6IEVycm9yIG1lc3NhZ2UgZm9ybWF0IHN0cmluZwogICoK ICAqIERvIHNvbWUgYmFzaWMgY2hlY2tpbmcgb2YgcmVnaXN0ZXIgc3RhdGUgYXQgZXJyb3IgdGlt ZSBhbmQKQEAgLTI5NjUsMTYgKzI5NjQsMjMgQEAgc3RhdGljIHZvaWQgaTkxNV9jbGVhcl9lcnJv cl9yZWdpc3RlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2b2lk IGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJ ICAgICAgIHUzMiBlbmdpbmVfbWFzaywKKwkJICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJ CSAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmU7CiAJdW5zaWduZWQgaW50IHRtcDsKLQl2YV9saXN0IGFyZ3M7CiAJY2hhciBlcnJv cl9tc2dbODBdOworCWNoYXIgKm1zZyA9IE5VTEw7CiAKLQl2YV9zdGFydChhcmdzLCBmbXQpOwot CXZzY25wcmludGYoZXJyb3JfbXNnLCBzaXplb2YoZXJyb3JfbXNnKSwgZm10LCBhcmdzKTsKLQl2 YV9lbmQoYXJncyk7CisJaWYgKGZtdCkgeworCQl2YV9saXN0IGFyZ3M7CisKKwkJdmFfc3RhcnQo YXJncywgZm10KTsKKwkJdnNjbnByaW50ZihlcnJvcl9tc2csIHNpemVvZihlcnJvcl9tc2cpLCBm bXQsIGFyZ3MpOworCQl2YV9lbmQoYXJncyk7CisKKwkJbXNnID0gZXJyb3JfbXNnOworCX0KIAog CS8qCiAJICogSW4gbW9zdCBjYXNlcyBpdCdzIGd1YXJhbnRlZWQgdGhhdCB3ZSBnZXQgaGVyZSB3 aXRoIGFuIFJQTQpAQCAtMjk4Niw4ICsyOTkyLDExIEBAIHZvaWQgaTkxNV9oYW5kbGVfZXJyb3Io c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWludGVsX3J1bnRpbWVfcG1fZ2V0 KGRldl9wcml2KTsKIAogCWVuZ2luZV9tYXNrICY9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5yaW5n X21hc2s7Ci0JaTkxNV9jYXB0dXJlX2Vycm9yX3N0YXRlKGRldl9wcml2LCBlbmdpbmVfbWFzaywg ZXJyb3JfbXNnKTsKLQlpOTE1X2NsZWFyX2Vycm9yX3JlZ2lzdGVycyhkZXZfcHJpdik7CisKKwlp ZiAoZmxhZ3MgJiBJOTE1X0VSUk9SX0NBUFRVUkUpIHsKKwkJaTkxNV9jYXB0dXJlX2Vycm9yX3N0 YXRlKGRldl9wcml2LCBlbmdpbmVfbWFzaywgbXNnKTsKKwkJaTkxNV9jbGVhcl9lcnJvcl9yZWdp c3RlcnMoZGV2X3ByaXYpOworCX0KIAogCS8qCiAJICogVHJ5IGVuZ2luZSByZXNldCB3aGVuIGF2 YWlsYWJsZS4gV2UgZmFsbCBiYWNrIHRvIGZ1bGwgcmVzZXQgaWYKQEAgLTMwMDAsNyArMzAwOSw3 IEBAIHZvaWQgaTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQkJCQkgICAgICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKSkKIAkJCQljb250aW51 ZTsKIAotCQkJaWYgKGk5MTVfcmVzZXRfZW5naW5lKGVuZ2luZSwgMCkgPT0gMCkKKwkJCWlmIChp OTE1X3Jlc2V0X2VuZ2luZShlbmdpbmUsIG1zZykgPT0gMCkKIAkJCQllbmdpbmVfbWFzayAmPSB+ aW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKTsKIAogCQkJY2xlYXJfYml0KEk5MTVfUkVTRVRfRU5H SU5FICsgZW5naW5lLT5pZCwKQEAgLTMwMzAsNyArMzAzOSw3IEBAIHZvaWQgaTkxNV9oYW5kbGVf ZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgICBUQVNLX1VO SU5URVJSVVBUSUJMRSk7CiAJfQogCi0JaTkxNV9yZXNldF9kZXZpY2UoZGV2X3ByaXYpOworCWk5 MTVfcmVzZXRfZGV2aWNlKGRldl9wcml2LCBtc2cpOwogCiAJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZGV2X3ByaXYsIHRtcCkgewogCQljbGVhcl9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdp bmUtPmlkLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwppbmRleCA0M2M3MTM0YTliOTMu LjIzMjU4ODZkMWQ1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1 ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKQEAgLTEyMjks NyArMTIyOSw3IEBAIHN0YXRpYyBib29sIF9faTkxNV93YWl0X3JlcXVlc3RfY2hlY2tfYW5kX3Jl c2V0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiAJCXJldHVybiBmYWxzZTsKIAogCV9f c2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKLQlpOTE1X3Jlc2V0KHJlcXVlc3QtPmk5 MTUsIDApOworCWk5MTVfcmVzZXQocmVxdWVzdC0+aTkxNSk7CiAJcmV0dXJuIHRydWU7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKaW5kZXggNDJlNDVhZTg3MzkzLi5l Nzc3NmZiZDllYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdj aGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jCkBAIC0y NDYsNyArMjQ2LDcgQEAgZW5naW5lX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwgdTY0IGFjdGhkKQogCSAqLwogCXRtcCA9IEk5MTVfUkVBRF9DVEwoZW5naW5lKTsKIAlpZiAo dG1wICYgUklOR19XQUlUKSB7Ci0JCWk5MTVfaGFuZGxlX2Vycm9yKGRldl9wcml2LCAwLAorCQlp OTE1X2hhbmRsZV9lcnJvcihkZXZfcHJpdiwgMCwgMCwKIAkJCQkgICJLaWNraW5nIHN0dWNrIHdh aXQgb24gJXMiLAogCQkJCSAgZW5naW5lLT5uYW1lKTsKIAkJSTkxNV9XUklURV9DVEwoZW5naW5l LCB0bXApOwpAQCAtMjU4LDcgKzI1OCw3IEBAIGVuZ2luZV9zdHVjayhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsIHU2NCBhY3RoZCkKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBFTkdJTkVf REVBRDsKIAkJY2FzZSAxOgotCQkJaTkxNV9oYW5kbGVfZXJyb3IoZGV2X3ByaXYsIDAsCisJCQlp OTE1X2hhbmRsZV9lcnJvcihkZXZfcHJpdiwgMCwgMCwKIAkJCQkJICAiS2lja2luZyBzdHVjayBz ZW1hcGhvcmUgb24gJXMiLAogCQkJCQkgIGVuZ2luZS0+bmFtZSk7CiAJCQlJOTE1X1dSSVRFX0NU TChlbmdpbmUsIHRtcCk7CkBAIC0zODYsMTMgKzM4NiwxMyBAQCBzdGF0aWMgdm9pZCBoYW5nY2hl Y2tfZGVjbGFyZV9oYW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWlmIChzdHVj ayAhPSBodW5nKQogCQlodW5nICY9IH5zdHVjazsKIAlsZW4gPSBzY25wcmludGYobXNnLCBzaXpl b2YobXNnKSwKLQkJCSIlcyBvbiAiLCBzdHVjayA9PSBodW5nID8gIk5vIHByb2dyZXNzIiA6ICJI YW5nIik7CisJCQkiJXMgb24gIiwgc3R1Y2sgPT0gaHVuZyA/ICJubyBwcm9ncmVzcyIgOiAiaGFu ZyIpOwogCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBpOTE1LCBodW5nLCB0bXApCiAJ CWxlbiArPSBzY25wcmludGYobXNnICsgbGVuLCBzaXplb2YobXNnKSAtIGxlbiwKIAkJCQkgIiVz LCAiLCBlbmdpbmUtPm5hbWUpOwogCW1zZ1tsZW4tMl0gPSAnXDAnOwogCi0JcmV0dXJuIGk5MTVf aGFuZGxlX2Vycm9yKGk5MTUsIGh1bmcsICIlcyIsIG1zZyk7CisJcmV0dXJuIGk5MTVfaGFuZGxl X2Vycm9yKGk5MTUsIGh1bmcsIEk5MTVfRVJST1JfQ0FQVFVSRSwgIiVzIiwgbXNnKTsKIH0KIAog LyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5n Y2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2su YwppbmRleCBkZjc4OThjOGVkY2IuLjQzNzI4MjY5OThhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYwpAQCAtNDMzLDcgKzQzMyw3IEBA IHN0YXRpYyBpbnQgaWd0X2dsb2JhbF9yZXNldCh2b2lkICphcmcpCiAJbXV0ZXhfbG9jaygmaTkx NS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJcmVzZXRfY291bnQgPSBpOTE1X3Jlc2V0X2NvdW50KCZp OTE1LT5ncHVfZXJyb3IpOwogCi0JaTkxNV9yZXNldChpOTE1LCBJOTE1X1JFU0VUX1FVSUVUKTsK KwlpOTE1X3Jlc2V0KGk5MTUpOwogCiAJaWYgKGk5MTVfcmVzZXRfY291bnQoJmk5MTUtPmdwdV9l cnJvcikgPT0gcmVzZXRfY291bnQpIHsKIAkJcHJfZXJyKCJObyBHUFUgcmVzZXQgcmVjb3JkZWQh XG4iKTsKQEAgLTUxOCw3ICs1MTgsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgYm9vbCBhY3RpdmUpCiAJCQllbmdpbmUtPmhh bmdjaGVjay5zZXFubyA9CiAJCQkJaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwogCi0J CQllcnIgPSBpOTE1X3Jlc2V0X2VuZ2luZShlbmdpbmUsIEk5MTVfUkVTRVRfUVVJRVQpOworCQkJ ZXJyID0gaTkxNV9yZXNldF9lbmdpbmUoZW5naW5lLCBOVUxMKTsKIAkJCWlmIChlcnIpIHsKIAkJ CQlwcl9lcnIoImk5MTVfcmVzZXRfZW5naW5lIGZhaWxlZFxuIik7CiAJCQkJYnJlYWs7CkBAIC03 MjUsNyArNzI1LDcgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmVfb3RoZXJzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJZW5naW5lLT5oYW5nY2hlY2suc2Vxbm8gPQog CQkJCWludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKIAotCQkJZXJyID0gaTkxNV9yZXNl dF9lbmdpbmUoZW5naW5lLCBJOTE1X1JFU0VUX1FVSUVUKTsKKwkJCWVyciA9IGk5MTVfcmVzZXRf ZW5naW5lKGVuZ2luZSwgTlVMTCk7CiAJCQlpZiAoZXJyKSB7CiAJCQkJcHJfZXJyKCJpOTE1X3Jl c2V0X2VuZ2luZSglczolcykgZmFpbGVkLCBlcnI9JWRcbiIsCiAJCQkJICAgICAgIGVuZ2luZS0+ bmFtZSwgYWN0aXZlID8gImFjdGl2ZSIgOiAiaWRsZSIsIGVycik7CkBAIC04NjUsNyArODY1LDYg QEAgc3RhdGljIGludCBpZ3Rfd2FpdF9yZXNldCh2b2lkICphcmcpCiAJCSAgICAgICBfX2Z1bmNf XywgcnEtPmZlbmNlLnNlcW5vLCBod3Nfc2Vxbm8oJmgsIHJxKSk7CiAJCWludGVsX2VuZ2luZV9k dW1wKHJxLT5lbmdpbmUsICZwLCAiJXNcbiIsIHJxLT5lbmdpbmUtPm5hbWUpOwogCi0JCWk5MTVf cmVzZXQoaTkxNSwgMCk7CiAJCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7CiAKIAkJZXJyID0g LUVJTzsKQEAgLTk2Miw3ICs5NjEsNiBAQCBzdGF0aWMgaW50IGlndF9yZXNldF9xdWV1ZSh2b2lk ICphcmcpCiAJCQkJaTkxNV9yZXF1ZXN0X3B1dChycSk7CiAJCQkJaTkxNV9yZXF1ZXN0X3B1dChw cmV2KTsKIAotCQkJCWk5MTVfcmVzZXQoaTkxNSwgMCk7CiAJCQkJaTkxNV9nZW1fc2V0X3dlZGdl ZChpOTE1KTsKIAogCQkJCWVyciA9IC1FSU87CkBAIC05NzEsNyArOTY5LDcgQEAgc3RhdGljIGlu dCBpZ3RfcmVzZXRfcXVldWUodm9pZCAqYXJnKQogCiAJCQlyZXNldF9jb3VudCA9IGZha2VfaGFu Z2NoZWNrKHByZXYpOwogCi0JCQlpOTE1X3Jlc2V0KGk5MTUsIEk5MTVfUkVTRVRfUVVJRVQpOwor CQkJaTkxNV9yZXNldChpOTE1KTsKIAogCQkJR0VNX0JVR19PTih0ZXN0X2JpdChJOTE1X1JFU0VU X0hBTkRPRkYsCiAJCQkJCSAgICAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKSk7CkBAIC0xMDY5LDcg KzEwNjcsNiBAQCBzdGF0aWMgaW50IGlndF9oYW5kbGVfZXJyb3Iodm9pZCAqYXJnKQogCQkgICAg ICAgX19mdW5jX18sIHJxLT5mZW5jZS5zZXFubywgaHdzX3NlcW5vKCZoLCBycSkpOwogCQlpbnRl bF9lbmdpbmVfZHVtcChycS0+ZW5naW5lLCAmcCwgIiVzXG4iLCBycS0+ZW5naW5lLT5uYW1lKTsK IAotCQlpOTE1X3Jlc2V0KGk5MTUsIDApOwogCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOwog CiAJCWVyciA9IC1FSU87CkBAIC0xMDg0LDcgKzEwODEsNyBAQCBzdGF0aWMgaW50IGlndF9oYW5k bGVfZXJyb3Iodm9pZCAqYXJnKQogCWVuZ2luZS0+aGFuZ2NoZWNrLnN0YWxsZWQgPSB0cnVlOwog CWVuZ2luZS0+aGFuZ2NoZWNrLnNlcW5vID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUp OwogCi0JaTkxNV9oYW5kbGVfZXJyb3IoaTkxNSwgaW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKSwg IiVzIiwgX19mdW5jX18pOworCWk5MTVfaGFuZGxlX2Vycm9yKGk5MTUsIGludGVsX2VuZ2luZV9m bGFnKGVuZ2luZSksIDAsIE5VTEwpOwogCiAJeGNoZygmaTkxNS0+Z3B1X2Vycm9yLmZpcnN0X2Vy cm9yLCBlcnJvcik7CiAKLS0gCjIuMTYuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==