From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 10/21] drm/i915: Mark up all locked waiters Date: Mon, 5 Sep 2016 14:04:27 +0100 Message-ID: <20160905130438.31046-11-chris@chris-wilson.co.uk> References: <20160905130438.31046-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 mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8C3716E3B9 for ; Mon, 5 Sep 2016 13:04:57 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id w207so13314588wmw.0 for ; Mon, 05 Sep 2016 06:04:57 -0700 (PDT) In-Reply-To: <20160905130438.31046-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 Cc: mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org SW4gdGhlIG5leHQgcGF0Y2ggd2Ugd2FudCB0byBoYW5kbGUgcmVzZXQgZGlyZWN0bHkgYnkgYSBs b2NrZWQgd2FpdGVyIGluCm9yZGVyIHRvIGF2b2lkIGlzc3VlcyB3aXRoIHJldHVybmluZyBiZWZv cmUgdGhlIHJlc2V0IGlzIGhhbmRsZWQuIFRvCmhhbmRsZSB0aGUgcmVzZXQsIHdlIG11c3QgZmly c3Qga25vdyB3aGV0aGVyIHdlIGhvbGQgdGhlIHN0cnVjdF9tdXRleC4KSWYgd2UgZG8gbm90IGhv bGQgdGhlIHN0cnVjdF9tdHVleCB3ZSBjYW4gbm90IHBlcmZvcm0gdGhlIHJlc2V0LCBidXQgd2Ug ZG8Kbm90IGJsb2NrIHRoZSByZXNldCB3b3JrZXIgZWl0aGVyIChhbmQgc28gd2UgY2FuIGp1c3Qg Y29udGludWUgdG8gd2FpdCBmb3IKcmVxdWVzdCBjb21wbGV0aW9uKSAtIG90aGVyd2lzZSB3ZSBt dXN0IHJlbGlucXVpc2ggdGhlIG11dGV4LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgICAgICB8ICA0ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg ICAgICAgICAgfCAgNyArKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmlj dC5jICAgIHwgIDggKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j ICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jICB8 IDE1ICsrKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVz dC5oICB8IDExICsrKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJp bmtlci5jIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAg fCAgMyArKy0KIDggZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCBmNjFkN2Q1ODRmM2YuLjhl YTY0YWEwYTI4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTQ4MDMsNyAr NDgwMyw5IEBAIGk5MTVfZHJvcF9jYWNoZXNfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCiAJCXJl dHVybiByZXQ7CiAKIAlpZiAodmFsICYgRFJPUF9BQ1RJVkUpIHsKLQkJcmV0ID0gaTkxNV9nZW1f d2FpdF9mb3JfaWRsZShkZXZfcHJpdiwgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUpOworCQlyZXQg PSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9wcml2LAorCQkJCQkgICAgIEk5MTVfV0FJVF9J TlRFUlJVUFRJQkxFIHwKKwkJCQkJICAgICBJOTE1X1dBSVRfTE9DS0VEKTsKIAkJaWYgKHJldCkK IAkJCWdvdG8gdW5sb2NrOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDQ2MTcyNTBj MzAwMC4uMjMwNjlhMmQyODUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTI4MDIsNyAr MjgwMiw4IEBAIF9faTkxNV9nZW1fb2JqZWN0X3N5bmMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICp0bywKIAogCWlmICghaTkxNS5zZW1hcGhvcmVzKSB7CiAJCXJldCA9IGk5MTVfd2FpdF9y ZXF1ZXN0KGZyb20sCi0JCQkJCWZyb20tPmk5MTUtPm1tLmludGVycnVwdGlibGUsCisJCQkJCWZy b20tPmk5MTUtPm1tLmludGVycnVwdGlibGUgfAorCQkJCQlJOTE1X1dBSVRfTE9DS0VELAogCQkJ CQlOVUxMLAogCQkJCQlOT19XQUlUQk9PU1QpOwogCQlpZiAocmV0KQpAQCAtNDMwNCw3ICs0MzA1 LDkgQEAgaW50IGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAo cmV0KQogCQlnb3RvIGVycjsKIAotCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2X3By aXYsIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFKTsKKwlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9p ZGxlKGRldl9wcml2LAorCQkJCSAgICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUgfAorCQkJCSAg ICAgSTkxNV9XQUlUX0xPQ0tFRCk7CiAJaWYgKHJldCkKIAkJZ290byBlcnI7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCmluZGV4IDEwMzA4NTI0Njk3NS4uNWI2ZjgxYzFkYmNh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKQEAgLTE3MCw3ICsxNzAsOSBA QCBzZWFyY2hfYWdhaW46CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IGk5MTVf Z2VtX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYsIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFKTsKKwly ZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9wcml2LAorCQkJCSAgICAgSTkxNV9XQUlU X0lOVEVSUlVQVElCTEUgfAorCQkJCSAgICAgSTkxNV9XQUlUX0xPQ0tFRCk7CiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKIApAQCAtMjc1LDcgKzI3Nyw5IEBAIGludCBpOTE1X2dlbV9ldmljdF92 bShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgYm9vbCBkb19pZGxlKQogCQkJCXJldHVy biByZXQ7CiAJCX0KIAotCQlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9wcml2LCBJ OTE1X1dBSVRfSU5URVJSVVBUSUJMRSk7CisJCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUo ZGV2X3ByaXYsCisJCQkJCSAgICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUgfAorCQkJCQkgICAg IEk5MTVfV0FJVF9MT0NLRUQpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCA1NzZhMTE0NTRkMTguLjkwNGM1ZTNmMTk3NCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTI2ODAsNyArMjY4MCw3IEBAIHZv aWQgaTkxNV9nZW1fZ3R0X2ZpbmlzaF9vYmplY3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaikKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwogCiAJaWYg KHVubGlrZWx5KGdndHQtPmRvX2lkbGVfbWFwcykpIHsKLQkJaWYgKGk5MTVfZ2VtX3dhaXRfZm9y X2lkbGUoZGV2X3ByaXYsIDApKSB7CisJCWlmIChpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9w cml2LCBJOTE1X1dBSVRfTE9DS0VEKSkgewogCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gd2FpdCBm b3IgaWRsZTsgVlQnZCBtYXkgaGFuZy5cbiIpOwogCQkJLyogV2FpdCBhIGJpdCwgaW4gaG9wZXMg aXQgYXZvaWRzIHRoZSBoYW5nICovCiAJCQl1ZGVsYXkoMTApOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fcmVxdWVzdC5jCmluZGV4IGY0YzE1ZjMxOWQwOC4uZjg1ODllZmVjMzEwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCkBAIC0yNjAsNyArMjYwLDkgQEAg c3RhdGljIGludCBpOTE1X2dlbV9pbml0X3NlcW5vKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgdTMyIHNlcW5vKQogCiAJLyogQ2FyZWZ1bGx5IHJldGlyZSBhbGwgcmVxdWVzdHMg d2l0aG91dCB3cml0aW5nIHRvIHRoZSByaW5ncyAqLwogCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGRldl9wcml2KSB7Ci0JCXJldCA9IGludGVsX2VuZ2luZV9pZGxlKGVuZ2luZSwgSTkxNV9XQUlU X0lOVEVSUlVQVElCTEUpOworCQlyZXQgPSBpbnRlbF9lbmdpbmVfaWRsZShlbmdpbmUsCisJCQkJ CUk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFIHwKKwkJCQkJSTkxNV9XQUlUX0xPQ0tFRCk7CiAJCWlm IChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KQEAgLTYyNSw2ICs2MjcsMTAgQEAgaW50IGk5MTVf d2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCWludCByZXQg PSAwOwogCiAJbWlnaHRfc2xlZXAoKTsKKyNpZiBJU19FTkFCTEVEKENPTkZJR19MT0NLREVQKQor CUdFTV9CVUdfT04oISFsb2NrZGVwX2lzX2hlbGQoJnJlcS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRl eCkgIT0KKwkJICAgISEoZmxhZ3MgJiBJOTE1X1dBSVRfTE9DS0VEKSk7CisjZW5kaWYKIAogCWlm IChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEpKQogCQlyZXR1cm4gMDsKQEAgLTY2Nyw3 ICs2NzMsOCBAQCBpbnQgaTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCiAJCWdvdG8gY29tcGxldGU7CiAKIAlzZXRfY3VycmVudF9zdGF0ZShzdGF0ZSk7 Ci0JYWRkX3dhaXRfcXVldWUoJnJlcS0+aTkxNS0+Z3B1X2Vycm9yLndhaXRfcXVldWUsICZyZXNl dCk7CisJaWYgKGZsYWdzICYgSTkxNV9XQUlUX0xPQ0tFRCkKKwkJYWRkX3dhaXRfcXVldWUoJnJl cS0+aTkxNS0+Z3B1X2Vycm9yLndhaXRfcXVldWUsICZyZXNldCk7CiAKIAlpbnRlbF93YWl0X2lu aXQoJndhaXQsIHJlcS0+ZmVuY2Uuc2Vxbm8pOwogCWlmIChpbnRlbF9lbmdpbmVfYWRkX3dhaXQo cmVxLT5lbmdpbmUsICZ3YWl0KSkKQEAgLTcwNyw3ICs3MTQsOSBAQCB3YWtldXA6CiAJCWlmIChp OTE1X3NwaW5fcmVxdWVzdChyZXEsIHN0YXRlLCAyKSkKIAkJCWJyZWFrOwogCX0KLQlyZW1vdmVf d2FpdF9xdWV1ZSgmcmVxLT5pOTE1LT5ncHVfZXJyb3Iud2FpdF9xdWV1ZSwgJnJlc2V0KTsKKwor CWlmIChmbGFncyAmIEk5MTVfV0FJVF9MT0NLRUQpCisJCXJlbW92ZV93YWl0X3F1ZXVlKCZyZXEt Pmk5MTUtPmdwdV9lcnJvci53YWl0X3F1ZXVlLCAmcmVzZXQpOwogCiAJaW50ZWxfZW5naW5lX3Jl bW92ZV93YWl0KHJlcS0+ZW5naW5lLCAmd2FpdCk7CiAJX19zZXRfY3VycmVudF9zdGF0ZShUQVNL X1JVTk5JTkcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVx dWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCmluZGV4IDQ3 OTg5NmVmNzkxZS4uZGVmMzU3MjFlOWVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9yZXF1ZXN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f cmVxdWVzdC5oCkBAIC0yMjIsNyArMjIyLDggQEAgaW50IGk5MTVfd2FpdF9yZXF1ZXN0KHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkgICAgICBzNjQgKnRpbWVvdXQsCiAJCSAg ICAgIHN0cnVjdCBpbnRlbF9ycHNfY2xpZW50ICpycHMpCiAJX19hdHRyaWJ1dGVfXygobm9ubnVs bCgxKSkpOwotI2RlZmluZSBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSBCSVQoMCkKKyNkZWZpbmUg STkxNV9XQUlUX0lOVEVSUlVQVElCTEUJQklUKDApCisjZGVmaW5lIEk5MTVfV0FJVF9MT0NLRUQJ QklUKDEpIC8qIHN0cnVjdF9tdXRleCBoZWxkLCBoYW5kbGUgR1BVIHJlc2V0ICovCiAKIHN0YXRp YyBpbmxpbmUgdTMyIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKTsKIApAQCAtNTc2LDcgKzU3Nyw5IEBAIGk5MTVfZ2VtX2FjdGl2ZV93YWl0KGNv bnN0IHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSwgc3RydWN0IG11dGV4ICptdXRleCkK IAlpZiAoIXJlcXVlc3QpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIGk5MTVfd2FpdF9yZXF1ZXN0 KHJlcXVlc3QsIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFLCBOVUxMLCBOVUxMKTsKKwlyZXR1cm4g aTkxNV93YWl0X3JlcXVlc3QocmVxdWVzdCwKKwkJCQkgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUg fCBJOTE1X1dBSVRfTE9DS0VELAorCQkJCSBOVUxMLCBOVUxMKTsKIH0KIAogLyoqCkBAIC02Mzks NyArNjQyLDkgQEAgaTkxNV9nZW1fYWN0aXZlX3JldGlyZShzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZl ICphY3RpdmUsCiAJaWYgKCFyZXF1ZXN0KQogCQlyZXR1cm4gMDsKIAotCXJldCA9IGk5MTVfd2Fp dF9yZXF1ZXN0KHJlcXVlc3QsIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFLCBOVUxMLCBOVUxMKTsK KwlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0LAorCQkJCUk5MTVfV0FJVF9JTlRFUlJV UFRJQkxFIHwgSTkxNV9XQUlUX0xPQ0tFRCwKKwkJCQlOVUxMLCBOVUxMKTsKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zaHJpbmtlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwpp bmRleCAzNWEwNWY0YzUxYzEuLjFjMjM3ZDAyZjMwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9zaHJpbmtlci5jCkBAIC00MTQsNyArNDE0LDcgQEAgaTkxNV9nZW1fc2hyaW5rZXJf dm1hcChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lk ICpwdHIKIAkJcmV0dXJuIE5PVElGWV9ET05FOwogCiAJLyogRm9yY2UgZXZlcnl0aGluZyBvbnRv IHRoZSBpbmFjdGl2ZSBsaXN0cyAqLwotCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2 X3ByaXYsIDApOworCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYsIEk5MTVf V0FJVF9MT0NLRUQpOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggOWQ3NmJmOWNjNzhhLi5lYWUyNjFlNjJiOGIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIyMjMsNyArMjIyMyw4 IEBAIHN0YXRpYyBpbnQgd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsIGludCBieXRlcykKIAlpZiAoV0FSTl9PTigmdGFyZ2V0LT5yaW5nX2xpbmsgPT0gJnJp bmctPnJlcXVlc3RfbGlzdCkpCiAJCXJldHVybiAtRU5PU1BDOwogCi0JcmV0ID0gaTkxNV93YWl0 X3JlcXVlc3QodGFyZ2V0LCBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSwKKwlyZXQgPSBpOTE1X3dh aXRfcmVxdWVzdCh0YXJnZXQsCisJCQkJSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUgfCBJOTE1X1dB SVRfTE9DS0VELAogCQkJCU5VTEwsIE5PX1dBSVRCT09TVCk7CiAJaWYgKHJldCkKIAkJcmV0dXJu IHJldDsKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK