From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 13/71] drm/i915/execlists: Flush pending preemption events during reset Date: Thu, 3 May 2018 07:36:59 +0100 Message-ID: <20180503063757.22238-13-chris@chris-wilson.co.uk> References: <20180503063757.22238-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 1AA866E6AB for ; Thu, 3 May 2018 06:38:30 +0000 (UTC) In-Reply-To: <20180503063757.22238-1-chris@chris-wilson.co.uk> 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 Q2F0Y2ggdXAgd2l0aCB0aGUgaW5mbGlnaHQgQ1NCIGV2ZW50cywgYWZ0ZXIgZGlzYWJsaW5nIHRo ZSB0YXNrbGV0CmJlZm9yZSBkZWNpZGluZyB3aGljaCByZXF1ZXN0IHdhcyB0cnVseSBndWlsdHkg b2YgaGFuZ2luZyB0aGUgR1BVLgoKdjI6IFJlc3RvcmUgY2hlY2tpbmcgb2YgdXNlX2NzYl9tbWlv IG9uIGV2ZXJ5IGxvb3AsIGRvbid0IGZvcmdldCBvbGQKdmdwdS4KClNpZ25lZC1vZmYtYnk6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogTWljaGHFgiBXaW5pYXJz a2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgpDQzogTWljaGVsIFRoaWVycnkgPG1pY2hl bC50aGllcnJ5QGludGVsLmNvbT4KQ2M6IEplZmYgTWNHZWUgPGplZmYubWNnZWVAaW50ZWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIHwgMTI3ICsrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA0 MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDVjMjk5OTFjODE4 My4uMGM3NzMzZDZlYjAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtOTQ1LDM0ICs5 NDUsMTQgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogfQogCi0v KgotICogQ2hlY2sgdGhlIHVucmVhZCBDb250ZXh0IFN0YXR1cyBCdWZmZXJzIGFuZCBtYW5hZ2Ug dGhlIHN1Ym1pc3Npb24gb2YgbmV3Ci0gKiBjb250ZXh0cyB0byB0aGUgRUxTUCBhY2NvcmRpbmds eS4KLSAqLwotc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25l ZCBsb25nIGRhdGEpCitzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSA9 IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4 ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKIAlzdHJ1Y3Qg ZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0cy0+cG9ydDsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7CiAJYm9vbCBmdyA9IGZhbHNlOwogCi0JLyoKLQkgKiBX ZSBjYW4gc2tpcCBhY3F1aXJpbmcgaW50ZWxfcnVudGltZV9wbV9nZXQoKSBoZXJlIGFzIGl0IHdh cyB0YWtlbgotCSAqIG9uIG91ciBiZWhhbGYgYnkgdGhlIHJlcXVlc3QgKHNlZSBpOTE1X2dlbV9t YXJrX2J1c3koKSkgYW5kIGl0IHdpbGwKLQkgKiBub3QgYmUgcmVsaW5xdWlzaGVkIHVudGlsIHRo ZSBkZXZpY2UgaXMgaWRsZSAoc2VlCi0JICogaTkxNV9nZW1faWRsZV93b3JrX2hhbmRsZXIoKSku IEFzIGEgcHJlY2F1dGlvbiwgd2UgbWFrZSBzdXJlCi0JICogdGhhdCBhbGwgRUxTUCBhcmUgZHJh aW5lZCBpLmUuIHdlIGhhdmUgcHJvY2Vzc2VkIHRoZSBDU0IsCi0JICogYmVmb3JlIGFsbG93aW5n IG91cnNlbHZlcyB0byBpZGxlIGFuZCBjYWxsaW5nIGludGVsX3J1bnRpbWVfcG1fcHV0KCkuCi0J ICovCi0JR0VNX0JVR19PTighZGV2X3ByaXYtPmd0LmF3YWtlKTsKLQotCS8qCi0JICogUHJlZmVy IGRvaW5nIHRlc3RfYW5kX2NsZWFyX2JpdCgpIGFzIGEgdHdvIHN0YWdlIG9wZXJhdGlvbiB0byBh dm9pZAotCSAqIGltcG9zaW5nIHRoZSBjb3N0IG9mIGEgbG9ja2VkIGF0b21pYyB0cmFuc2FjdGlv biB3aGVuIHN1Ym1pdHRpbmcgYQotCSAqIG5ldyByZXF1ZXN0IChvdXRzaWRlIG9mIHRoZSBjb250 ZXh0LXN3aXRjaCBpbnRlcnJ1cHQpLgotCSAqLwotCXdoaWxlICh0ZXN0X2JpdChFTkdJTkVfSVJR X0VYRUNMSVNULCAmZW5naW5lLT5pcnFfcG9zdGVkKSkgeworCWRvIHsKIAkJLyogVGhlIEhXU1Ag Y29udGFpbnMgYSAoY2FjaGVhYmxlKSBtaXJyb3Igb2YgdGhlIENTQiAqLwogCQljb25zdCB1MzIg KmJ1ZiA9CiAJCQkmZW5naW5lLT5zdGF0dXNfcGFnZS5wYWdlX2FkZHJbSTkxNV9IV1NfQ1NCX0JV RjBfSU5ERVhdOwpAQCAtOTgwLDI4ICs5NjAsMjcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1 Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAKIAkJaWYgKHVubGlrZWx5KGV4 ZWNsaXN0cy0+Y3NiX3VzZV9tbWlvKSkgewogCQkJYnVmID0gKHUzMiAqIF9fZm9yY2UpCi0JCQkJ KGRldl9wcml2LT5yZWdzICsgaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19DT05URVhUX1NUQVRV U19CVUZfTE8oZW5naW5lLCAwKSkpOwotCQkJZXhlY2xpc3RzLT5jc2JfaGVhZCA9IC0xOyAvKiBm b3JjZSBtbWlvIHJlYWQgb2YgQ1NCIHB0cnMgKi8KKwkJCQkoaTkxNS0+cmVncyArIGk5MTVfbW1p b19yZWdfb2Zmc2V0KFJJTkdfQ09OVEVYVF9TVEFUVVNfQlVGX0xPKGVuZ2luZSwgMCkpKTsKKwkJ CWV4ZWNsaXN0cy0+Y3NiX2hlYWQgPSAtMTsgLyogZm9yY2UgbW1pbyByZWFkIG9mIENTQiAqLwog CQl9CiAKIAkJLyogQ2xlYXIgYmVmb3JlIHJlYWRpbmcgdG8gY2F0Y2ggbmV3IGludGVycnVwdHMg Ki8KIAkJY2xlYXJfYml0KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQp OwogCQlzbXBfbWJfX2FmdGVyX2F0b21pYygpOwogCi0JCWlmICh1bmxpa2VseShleGVjbGlzdHMt PmNzYl9oZWFkID09IC0xKSkgeyAvKiBmb2xsb3dpbmcgYSByZXNldCAqLworCQlpZiAodW5saWtl bHkoZXhlY2xpc3RzLT5jc2JfaGVhZCA9PSAtMSkpIHsgLyogYWZ0ZXIgYSByZXNldCAqLwogCQkJ aWYgKCFmdykgewotCQkJCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LAotCQkJ CQkJCSAgIGV4ZWNsaXN0cy0+ZndfZG9tYWlucyk7CisJCQkJaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9nZXQoaTkxNSwgZXhlY2xpc3RzLT5md19kb21haW5zKTsKIAkJCQlmdyA9IHRydWU7CiAJCQl9 CiAKLQkJCWhlYWQgPSByZWFkbChkZXZfcHJpdi0+cmVncyArIGk5MTVfbW1pb19yZWdfb2Zmc2V0 KFJJTkdfQ09OVEVYVF9TVEFUVVNfUFRSKGVuZ2luZSkpKTsKKwkJCWhlYWQgPSByZWFkbChpOTE1 LT5yZWdzICsgaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19DT05URVhUX1NUQVRVU19QVFIoZW5n aW5lKSkpOwogCQkJdGFpbCA9IEdFTjhfQ1NCX1dSSVRFX1BUUihoZWFkKTsKIAkJCWhlYWQgPSBH RU44X0NTQl9SRUFEX1BUUihoZWFkKTsKIAkJCWV4ZWNsaXN0cy0+Y3NiX2hlYWQgPSBoZWFkOwog CQl9IGVsc2UgewogCQkJY29uc3QgaW50IHdyaXRlX2lkeCA9Ci0JCQkJaW50ZWxfaHdzX2NzYl93 cml0ZV9pbmRleChkZXZfcHJpdikgLQorCQkJCWludGVsX2h3c19jc2Jfd3JpdGVfaW5kZXgoaTkx NSkgLQogCQkJCUk5MTVfSFdTX0NTQl9CVUYwX0lOREVYOwogCiAJCQloZWFkID0gZXhlY2xpc3Rz LT5jc2JfaGVhZDsKQEAgLTEwMDksOCArOTg4LDggQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1 Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJCX0KIAkJR0VNX1RSQUNFKCIl cyBjcy1pcnEgaGVhZD0lZCBbJWQlc10sIHRhaWw9JWQgWyVkJXNdXG4iLAogCQkJICBlbmdpbmUt Pm5hbWUsCi0JCQkgIGhlYWQsIEdFTjhfQ1NCX1JFQURfUFRSKHJlYWRsKGRldl9wcml2LT5yZWdz ICsgaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19DT05URVhUX1NUQVRVU19QVFIoZW5naW5lKSkp KSwgZncgPyAiIiA6ICI/IiwKLQkJCSAgdGFpbCwgR0VOOF9DU0JfV1JJVEVfUFRSKHJlYWRsKGRl dl9wcml2LT5yZWdzICsgaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19DT05URVhUX1NUQVRVU19Q VFIoZW5naW5lKSkpKSwgZncgPyAiIiA6ICI/Iik7CisJCQkgIGhlYWQsIEdFTjhfQ1NCX1JFQURf UFRSKHJlYWRsKGk5MTUtPnJlZ3MgKyBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX0NPTlRFWFRf U1RBVFVTX1BUUihlbmdpbmUpKSkpLCBmdyA/ICIiIDogIj8iLAorCQkJICB0YWlsLCBHRU44X0NT Ql9XUklURV9QVFIocmVhZGwoaTkxNS0+cmVncyArIGk5MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdf Q09OVEVYVF9TVEFUVVNfUFRSKGVuZ2luZSkpKSksIGZ3ID8gIiIgOiAiPyIpOwogCiAJCXdoaWxl IChoZWFkICE9IHRhaWwpIHsKIAkJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwpAQCAtMTAyMCw3 ICs5OTksOCBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2ln bmVkIGxvbmcgZGF0YSkKIAkJCWlmICgrK2hlYWQgPT0gR0VOOF9DU0JfRU5UUklFUykKIAkJCQlo ZWFkID0gMDsKIAotCQkJLyogV2UgYXJlIGZseWluZyBuZWFyIGRyYWdvbnMgYWdhaW4uCisJCQkv KgorCQkJICogV2UgYXJlIGZseWluZyBuZWFyIGRyYWdvbnMgYWdhaW4uCiAJCQkgKgogCQkJICog V2UgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgcmVxdWVzdCBpbiBleGVjbGlzdF9wb3J0W10KIAkJ CSAqIGJ1dCBubyBtb3JlIHRoYW4gdGhhdC4gV2UgYXJlIG9wZXJhdGluZyBpbiBzb2Z0aXJxCkBA IC0xMTI5LDE1ICsxMTA5LDQ4IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rh c2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQogCQlpZiAoaGVhZCAhPSBleGVjbGlzdHMtPmNzYl9o ZWFkKSB7CiAJCQlleGVjbGlzdHMtPmNzYl9oZWFkID0gaGVhZDsKIAkJCXdyaXRlbChfTUFTS0VE X0ZJRUxEKEdFTjhfQ1NCX1JFQURfUFRSX01BU0ssIGhlYWQgPDwgOCksCi0JCQkgICAgICAgZGV2 X3ByaXYtPnJlZ3MgKyBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX0NPTlRFWFRfU1RBVFVTX1BU UihlbmdpbmUpKSk7CisJCQkgICAgICAgaTkxNS0+cmVncyArIGk5MTVfbW1pb19yZWdfb2Zmc2V0 KFJJTkdfQ09OVEVYVF9TVEFUVVNfUFRSKGVuZ2luZSkpKTsKIAkJfQotCX0KKwl9IHdoaWxlICh0 ZXN0X2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5lLT5pcnFfcG9zdGVkKSk7CiAKLQlp ZiAoIWV4ZWNsaXN0c19pc19hY3RpdmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1BSRUVN UFQpKQotCQlleGVjbGlzdHNfZGVxdWV1ZShlbmdpbmUpOworCWlmICh1bmxpa2VseShmdykpCisJ CWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGk5MTUsIGV4ZWNsaXN0cy0+ZndfZG9tYWlucyk7 Cit9CisKKy8qCisgKiBDaGVjayB0aGUgdW5yZWFkIENvbnRleHQgU3RhdHVzIEJ1ZmZlcnMgYW5k IG1hbmFnZSB0aGUgc3VibWlzc2lvbiBvZiBuZXcKKyAqIGNvbnRleHRzIHRvIHRoZSBFTFNQIGFj Y29yZGluZ2x5LgorICovCitzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0 KHVuc2lnbmVkIGxvbmcgZGF0YSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3Qg ZW5naW5lID0gKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKilkYXRhOwogCi0JaWYgKGZ3KQotCQlp bnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dChkZXZfcHJpdiwgZXhlY2xpc3RzLT5md19kb21haW5z KTsKKwlHRU1fVFJBQ0UoIiVzIGF3YWtlPz0lZCwgYWN0aXZlPSV4LCBpcnEtcG9zdGVkPz0lZFxu IiwKKwkJICBlbmdpbmUtPm5hbWUsCisJCSAgZW5naW5lLT5pOTE1LT5ndC5hd2FrZSwKKwkJICBl bmdpbmUtPmV4ZWNsaXN0cy5hY3RpdmUsCisJCSAgdGVzdF9iaXQoRU5HSU5FX0lSUV9FWEVDTElT VCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCkpOworCisJLyoKKwkgKiBXZSBjYW4gc2tpcCBhY3F1aXJp bmcgaW50ZWxfcnVudGltZV9wbV9nZXQoKSBoZXJlIGFzIGl0IHdhcyB0YWtlbgorCSAqIG9uIG91 ciBiZWhhbGYgYnkgdGhlIHJlcXVlc3QgKHNlZSBpOTE1X2dlbV9tYXJrX2J1c3koKSkgYW5kIGl0 IHdpbGwKKwkgKiBub3QgYmUgcmVsaW5xdWlzaGVkIHVudGlsIHRoZSBkZXZpY2UgaXMgaWRsZSAo c2VlCisJICogaTkxNV9nZW1faWRsZV93b3JrX2hhbmRsZXIoKSkuIEFzIGEgcHJlY2F1dGlvbiwg d2UgbWFrZSBzdXJlCisJICogdGhhdCBhbGwgRUxTUCBhcmUgZHJhaW5lZCBpLmUuIHdlIGhhdmUg cHJvY2Vzc2VkIHRoZSBDU0IsCisJICogYmVmb3JlIGFsbG93aW5nIG91cnNlbHZlcyB0byBpZGxl IGFuZCBjYWxsaW5nIGludGVsX3J1bnRpbWVfcG1fcHV0KCkuCisJICovCisJR0VNX0JVR19PTigh ZW5naW5lLT5pOTE1LT5ndC5hd2FrZSk7CisKKwkvKgorCSAqIFByZWZlciBkb2luZyB0ZXN0X2Fu ZF9jbGVhcl9iaXQoKSBhcyBhIHR3byBzdGFnZSBvcGVyYXRpb24gdG8gYXZvaWQKKwkgKiBpbXBv c2luZyB0aGUgY29zdCBvZiBhIGxvY2tlZCBhdG9taWMgdHJhbnNhY3Rpb24gd2hlbiBzdWJtaXR0 aW5nIGEKKwkgKiBuZXcgcmVxdWVzdCAob3V0c2lkZSBvZiB0aGUgY29udGV4dC1zd2l0Y2ggaW50 ZXJydXB0KS4KKwkgKi8KKwlpZiAodGVzdF9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwgJmVuZ2lu ZS0+aXJxX3Bvc3RlZCkpCisJCXByb2Nlc3NfY3NiKGVuZ2luZSk7CisKKwlpZiAoIWV4ZWNsaXN0 c19pc19hY3RpdmUoJmVuZ2luZS0+ZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQp KQorCQlleGVjbGlzdHNfZGVxdWV1ZShlbmdpbmUpOwogCiAJLyogSWYgdGhlIGVuZ2luZSBpcyBu b3cgaWRsZSwgc28gc2hvdWxkIGJlIHRoZSBmbGFnOyBhbmQgdmljZSB2ZXJzYS4gKi8KIAlHRU1f QlVHX09OKGV4ZWNsaXN0c19pc19hY3RpdmUoJmVuZ2luZS0+ZXhlY2xpc3RzLApAQCAtMTgzMyw2 ICsxODQ2LDcgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgogZXhlY2xpc3RzX3Jlc2V0 X3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBpbnRl bF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3Rz OworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsICphY3RpdmU7CiAKIAlHRU1fVFJBQ0Uo IiVzXG4iLCBlbmdpbmUtPm5hbWUpOwogCkBAIC0xODU2LDcgKzE4NzAsNDAgQEAgZXhlY2xpc3Rz X3Jlc2V0X3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQl0YXNrbGV0 X2tpbGwoJmV4ZWNsaXN0cy0+dGFza2xldCk7CiAJdGFza2xldF9kaXNhYmxlKCZleGVjbGlzdHMt PnRhc2tsZXQpOwogCi0JcmV0dXJuIGk5MTVfZ2VtX2ZpbmRfYWN0aXZlX3JlcXVlc3QoZW5naW5l KTsKKwkvKgorCSAqIFdlIHdhbnQgdG8gZmx1c2ggdGhlIHBlbmRpbmcgY29udGV4dCBzd2l0Y2hl cywgaGF2aW5nIGRpc2FibGVkCisJICogdGhlIHRhc2tsZXQgYWJvdmUsIHdlIGNhbiBhc3N1bWUg ZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgZXhlY2xpc3RzLgorCSAqIEZvciB0aGlzIGFsbG93cyB1 cyB0byBjYXRjaCB1cCB3aXRoIGFuIGluZmxpZ2h0IHByZWVtcHRpb24gZXZlbnQsCisJICogYW5k IGF2b2lkIGJsYW1pbmcgYW4gaW5ub2NlbnQgcmVxdWVzdCBpZiB0aGUgc3RhbGwgd2FzIGR1ZSB0 byB0aGUKKwkgKiBwcmVlbXB0aW9uIGl0c2VsZi4KKwkgKi8KKwlpZiAodGVzdF9iaXQoRU5HSU5F X0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCkpCisJCXByb2Nlc3NfY3NiKGVuZ2lu ZSk7CisKKwkvKgorCSAqIFRoZSBsYXN0IGFjdGl2ZSByZXF1ZXN0IGNhbiB0aGVuIGJlIG5vIGxh dGVyIHRoYW4gdGhlIGxhc3QgcmVxdWVzdAorCSAqIG5vdyBpbiBFTFNQWzBdLiBTbyBzZWFyY2gg YmFja3dhcmRzIGZyb20gdGhlcmUsIHNvIHRoYXQgaWYgdGhlIEdQVQorCSAqIGhhcyBhZHZhbmNl ZCBiZXlvbmQgdGhlIGxhc3QgQ1NCIHVwZGF0ZSwgaXQgd2lsbCBiZSBwYXJkb25lZC4KKwkgKi8K KwlhY3RpdmUgPSBOVUxMOworCXJlcXVlc3QgPSBwb3J0X3JlcXVlc3QoZXhlY2xpc3RzLT5wb3J0 KTsKKwlpZiAocmVxdWVzdCkgeworCQl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJCXNwaW5fbG9j a19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwkJbGlzdF9mb3JfZWFj aF9lbnRyeV9mcm9tX3JldmVyc2UocmVxdWVzdCwKKwkJCQkJCSAmZW5naW5lLT50aW1lbGluZS5y ZXF1ZXN0cywKKwkJCQkJCSBsaW5rKSB7CisJCQlpZiAoX19pOTE1X3JlcXVlc3RfY29tcGxldGVk KHJlcXVlc3QsCisJCQkJCQkgICAgIHJlcXVlc3QtPmdsb2JhbF9zZXFubykpCisJCQkJYnJlYWs7 CisKKwkJCWFjdGl2ZSA9IHJlcXVlc3Q7CisJCX0KKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJfQorCisJcmV0dXJuIGFjdGl2ZTsKIH0K IAogc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwKLS0gCjIuMTcuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==