From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrey Grodzovsky Subject: [PATCH v5 6/6] drm/amdgpu: Avoid HW reset if guilty job already signaled. Date: Thu, 18 Apr 2019 11:00:24 -0400 Message-ID: <1555599624-12285-6-git-send-email-andrey.grodzovsky@amd.com> References: <1555599624-12285-1-git-send-email-andrey.grodzovsky@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1555599624-12285-1-git-send-email-andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org, etnaviv-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: Andrey Grodzovsky , Nicholas.Kazlauskas-5C7GfCeVMHo@public.gmane.org List-Id: dri-devel@lists.freedesktop.org QWxzbyByZWplY3QgVERScyBpZiBhbm90aGVyIG9uZSBhbHJlYWR5IHJ1bm5pbmcuCgp2MjoKU3Rv cCBhbGwgc2NoZWR1bGVycyBhY3Jvc3MgZGV2aWNlIGFuZCBlbnRpcmUgWEdNSSBoaXZlIGJlZm9y ZQpmb3JjZSBzaWduYWxpbmcgSFcgZmVuY2VzLgpBdm9pZCBwYXNzaW5nIGpvYl9zaWduYWxlZCB0 byBoZWxwZXIgZm5jdGlvbnMgdG8ga2VlcCBhbGwgdGhlIGRlY2lzaW9uCm1ha2luZyBhYm91dCBz a2lwcGluZyBIVyByZXNldCBpbiBvbmUgcGxhY2UuCgp2MzoKRml4IFNXIHNjaGVkLiBoYW5nIGFm dGVyIG5vbiBIVyByZXNldC4gc2NoZWQuaHdfcnFfY291bnQgaGFzIHRvIGJlIGJhbGFuY2VkCmFn YWluc3QgaXQncyBkZWNyZW1lbnQgaW4gZHJtX3NjaGVkX3N0b3AgaW4gbm9uIEhXIHJlc2V0IGNh c2UuCnY0OiByZWJhc2UKdjU6IFJldmVydCB2MyBhcyB3ZSBkbyBpdCBub3cgaW4gc2NlZHVsZXIg Y29kZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJleSBHcm9kem92c2t5IDxhbmRyZXkuZ3JvZHpvdnNr eUBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2Uu YyB8IDE0MyArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDk1 IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9kZXZpY2UuYwppbmRleCBhMGUxNjVjLi44NWY4NzkyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCkBAIC0zMzM0LDggKzMzMzQsNiBAQCBz dGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAJCWlmICghcmluZyB8fCAhcmluZy0+c2NoZWQudGhyZWFkKQogCQkJY29udGlu dWU7CiAKLQkJZHJtX3NjaGVkX3N0b3AoJnJpbmctPnNjaGVkLCAmam9iLT5iYXNlKTsKLQogCQkv KiBhZnRlciBhbGwgaHcgam9icyBhcmUgcmVzZXQsIGh3IGZlbmNlIGlzIG1lYW5pbmdsZXNzLCBz byBmb3JjZV9jb21wbGV0aW9uICovCiAJCWFtZGdwdV9mZW5jZV9kcml2ZXJfZm9yY2VfY29tcGxl dGlvbihyaW5nKTsKIAl9CkBAIC0zMzQzLDYgKzMzNDEsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9k ZXZpY2VfcHJlX2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJaWYoam9i KQogCQlkcm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoJmpvYi0+YmFzZSk7CiAKKwkvKiBEb24ndCBz dXNwZW5kIG9uIGJhcmUgbWV0YWwgaWYgd2UgYXJlIG5vdCBnb2luZyB0byBIVyByZXNldCB0aGUg QVNJQyAqLwogCWlmICghYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CiAKIAkJaWYgKCFuZWVkX2Z1 bGxfcmVzZXQpCkBAIC0zNDgwLDM3ICszNDc5LDIxIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RvX2Fz aWNfcmVzZXQoc3RydWN0IGFtZGdwdV9oaXZlX2luZm8gKmhpdmUsCiAJcmV0dXJuIHI7CiB9CiAK LXN0YXRpYyB2b2lkIGFtZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQorc3RhdGljIGJvb2wgYW1kZ3B1X2RldmljZV9sb2NrX2FkZXYoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdHJ5bG9jaykKIHsKLQlpbnQgaTsKLQotCWZvciAo aSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpIHsKLQkJc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nID0gYWRldi0+cmluZ3NbaV07Ci0KLQkJaWYgKCFyaW5nIHx8ICFyaW5nLT5zY2hlZC50 aHJlYWQpCi0JCQljb250aW51ZTsKLQotCQlpZiAoIWFkZXYtPmFzaWNfcmVzZXRfcmVzKQotCQkJ ZHJtX3NjaGVkX3Jlc3VibWl0X2pvYnMoJnJpbmctPnNjaGVkKTsKKwlpZiAodHJ5bG9jaykgewor CQlpZiAoIW11dGV4X3RyeWxvY2soJmFkZXYtPmxvY2tfcmVzZXQpKQorCQkJcmV0dXJuIGZhbHNl OworCX0gZWxzZQorCQltdXRleF9sb2NrKCZhZGV2LT5sb2NrX3Jlc2V0KTsKIAotCQlkcm1fc2No ZWRfc3RhcnQoJnJpbmctPnNjaGVkLCAhYWRldi0+YXNpY19yZXNldF9yZXMpOwotCX0KLQotCWlm ICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydChhZGV2KSkgewotCQlkcm1faGVscGVyX3Jl c3VtZV9mb3JjZV9tb2RlKGFkZXYtPmRkZXYpOwotCX0KLQotCWFkZXYtPmFzaWNfcmVzZXRfcmVz ID0gMDsKLX0KLQotc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV9sb2NrX2FkZXYoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCi17Ci0JbXV0ZXhfbG9jaygmYWRldi0+bG9ja19yZXNldCk7CiAJ YXRvbWljX2luYygmYWRldi0+Z3B1X3Jlc2V0X2NvdW50ZXIpOwogCWFkZXYtPmluX2dwdV9yZXNl dCA9IDE7CiAJLyogQmxvY2sga2ZkOiBTUklPViB3b3VsZCBkbyBpdCBzZXBhcmF0ZWx5ICovCiAJ aWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpCiAgICAgICAgICAgICAgICAgYW1kZ3B1X2FtZGtm ZF9wcmVfcmVzZXQoYWRldik7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgYW1k Z3B1X2RldmljZV91bmxvY2tfYWRldihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKQEAgLTM1 MzgsNDAgKzM1MjEsNDIgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV91bmxvY2tfYWRldihz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIGludCBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVy KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJICAgICAgc3RydWN0IGFtZGdwdV9qb2Ig KmpvYikKIHsKLQlpbnQgcjsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGRldmljZV9saXN0LCAqZGV2aWNl X2xpc3RfaGFuZGxlID0gIE5VTEw7CisJYm9vbCBuZWVkX2Z1bGxfcmVzZXQsIGpvYl9zaWduYWxl ZDsKIAlzdHJ1Y3QgYW1kZ3B1X2hpdmVfaW5mbyAqaGl2ZSA9IE5VTEw7Ci0JYm9vbCBuZWVkX2Z1 bGxfcmVzZXQgPSBmYWxzZTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqdG1wX2FkZXYgPSBOVUxM OwotCXN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3QsICpkZXZpY2VfbGlzdF9oYW5kbGUgPSAg TlVMTDsKKwlpbnQgaSwgciA9IDA7CiAKKwluZWVkX2Z1bGxfcmVzZXQgPSBqb2Jfc2lnbmFsZWQg PSBmYWxzZTsKIAlJTklUX0xJU1RfSEVBRCgmZGV2aWNlX2xpc3QpOwogCiAJZGV2X2luZm8oYWRl di0+ZGV2LCAiR1BVIHJlc2V0IGJlZ2luIVxuIik7CiAKKwloaXZlID0gYW1kZ3B1X2dldF94Z21p X2hpdmUoYWRldiwgZmFsc2UpOworCiAJLyoKLQkgKiBJbiBjYXNlIG9mIFhHTUkgaGl2ZSBkaXNh bGxvdyBjb25jdXJyZW50IHJlc2V0cyB0byBiZSB0cmlnZ2VyZWQKLQkgKiBieSBkaWZmZXJlbnQg bm9kZXMuIE5vIHBvaW50IGFsc28gc2luY2UgdGhlIG9uZSBub2RlIGFscmVhZHkgZXhlY3V0aW5n Ci0JICogcmVzZXQgd2lsbCBhbHNvIHJlc2V0IGFsbCB0aGUgb3RoZXIgbm9kZXMgaW4gdGhlIGhp dmUuCisJICogSGVyZSB3ZSB0cnlsb2NrIHRvIGF2b2lkIGNoYWluIG9mIHJlc2V0cyBleGVjdXRp bmcgZnJvbQorCSAqIGVpdGhlciB0cmlnZ2VyIGJ5IGpvYnMgb24gZGlmZmVyZW50IGFkZXZzIGlu IFhHTUkgaGl2ZSBvciBqb2JzIG9uCisJICogZGlmZmVyZW50IHNjaGVkdWxlcnMgZm9yIHNhbWUg ZGV2aWNlIHdoaWxlIHRoaXMgVE8gaGFuZGxlciBpcyBydW5uaW5nLgorCSAqIFdlIGFsd2F5cyBy ZXNldCBhbGwgc2NoZWR1bGVycyBmb3IgZGV2aWNlIGFuZCBhbGwgZGV2aWNlcyBmb3IgWEdNSQor CSAqIGhpdmUgc28gdGhhdCBzaG91bGQgdGFrZSBjYXJlIG9mIHRoZW0gdG9vLgogCSAqLwotCWhp dmUgPSBhbWRncHVfZ2V0X3hnbWlfaGl2ZShhZGV2LCAwKTsKLQlpZiAoaGl2ZSAmJiBhZGV2LT5n bWMueGdtaS5udW1fcGh5c2ljYWxfbm9kZXMgPiAxICYmCi0JICAgICFtdXRleF90cnlsb2NrKCZo aXZlLT5yZXNldF9sb2NrKSkKKworCWlmIChoaXZlICYmICFtdXRleF90cnlsb2NrKCZoaXZlLT5y ZXNldF9sb2NrKSkgeworCQlEUk1fSU5GTygiQmFpbGluZyBvbiBURFIgZm9yIHNfam9iOiVsbHgs IGhpdmU6ICVsbHggYXMgYW5vdGhlciBhbHJlYWR5IGluIHByb2dyZXNzIiwKKwkJCSBqb2ItPmJh c2UuaWQsIGhpdmUtPmhpdmVfaWQpOwogCQlyZXR1cm4gMDsKKwl9CiAKIAkvKiBTdGFydCB3aXRo IGFkZXYgcHJlIGFzaWMgcmVzZXQgZmlyc3QgZm9yIHNvZnQgcmVzZXQgY2hlY2suKi8KLQlhbWRn cHVfZGV2aWNlX2xvY2tfYWRldihhZGV2KTsKLQlyID0gYW1kZ3B1X2RldmljZV9wcmVfYXNpY19y ZXNldChhZGV2LAotCQkJCQkgam9iLAotCQkJCQkgJm5lZWRfZnVsbF9yZXNldCk7Ci0JaWYgKHIp IHsKLQkJLypUT0RPIFNob3VsZCB3ZSBzdG9wID8qLwotCQlEUk1fRVJST1IoIkdQVSBwcmUgYXNp YyByZXNldCBmYWlsZWQgd2l0aCBlcnIsICVkIGZvciBkcm0gZGV2LCAlcyAiLAotCQkJICByLCBh ZGV2LT5kZGV2LT51bmlxdWUpOwotCQlhZGV2LT5hc2ljX3Jlc2V0X3JlcyA9IHI7CisJaWYgKCFh bWRncHVfZGV2aWNlX2xvY2tfYWRldihhZGV2LCAhaGl2ZSkpIHsKKwkJRFJNX0lORk8oIkJhaWxp bmcgb24gVERSIGZvciBzX2pvYjolbGx4LCBhcyBhbm90aGVyIGFscmVhZHkgaW4gcHJvZ3Jlc3Mi LAorCQkJCQkgam9iLT5iYXNlLmlkKTsKKwkJcmV0dXJuIDA7CiAJfQogCiAJLyogQnVpbGQgbGlz dCBvZiBkZXZpY2VzIHRvIHJlc2V0ICovCi0JaWYgIChuZWVkX2Z1bGxfcmVzZXQgJiYgYWRldi0+ Z21jLnhnbWkubnVtX3BoeXNpY2FsX25vZGVzID4gMSkgeworCWlmICAoYWRldi0+Z21jLnhnbWku bnVtX3BoeXNpY2FsX25vZGVzID4gMSkgewogCQlpZiAoIWhpdmUpIHsKIAkJCWFtZGdwdV9kZXZp Y2VfdW5sb2NrX2FkZXYoYWRldik7CiAJCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTM1ODgsMTMgKzM1 NzMsNTYgQEAgaW50IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAJCWRldmljZV9saXN0X2hhbmRsZSA9ICZkZXZpY2VfbGlzdDsKIAl9CiAKKwkv KiBibG9jayBhbGwgc2NoZWR1bGVycyBhbmQgcmVzZXQgZ2l2ZW4gam9iJ3MgcmluZyAqLworCWxp c3RfZm9yX2VhY2hfZW50cnkodG1wX2FkZXYsIGRldmljZV9saXN0X2hhbmRsZSwgZ21jLnhnbWku aGVhZCkgeworCQlmb3IgKGkgPSAwOyBpIDwgQU1ER1BVX01BWF9SSU5HUzsgKytpKSB7CisJCQlz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSB0bXBfYWRldi0+cmluZ3NbaV07CisKKwkJCWlmICgh cmluZyB8fCAhcmluZy0+c2NoZWQudGhyZWFkKQorCQkJCWNvbnRpbnVlOworCisJCQlkcm1fc2No ZWRfc3RvcCgmcmluZy0+c2NoZWQsICZqb2ItPmJhc2UpOworCQl9CisJfQorCisKKwkvKgorCSAq IE11c3QgY2hlY2sgZ3VpbHR5IHNpZ25hbCBoZXJlIHNpbmNlIGFmdGVyIHRoaXMgcG9pbnQgYWxs IG9sZAorCSAqIEhXIGZlbmNlcyBhcmUgZm9yY2Ugc2lnbmFsZWQuCisJICoKKwkgKiBqb2ItPmJh c2UgaG9sZHMgYSByZWZlcmVuY2UgdG8gcGFyZW50IGZlbmNlCisJICovCisJaWYgKGpvYiAmJiBq b2ItPmJhc2Uuc19mZW5jZS0+cGFyZW50ICYmCisJICAgIGRtYV9mZW5jZV9pc19zaWduYWxlZChq b2ItPmJhc2Uuc19mZW5jZS0+cGFyZW50KSkKKwkJam9iX3NpZ25hbGVkID0gdHJ1ZTsKKworCWlm ICghYW1kZ3B1X2RldmljZV9pcF9uZWVkX2Z1bGxfcmVzZXQoYWRldikpCisJCWRldmljZV9saXN0 X2hhbmRsZSA9ICZkZXZpY2VfbGlzdDsKKworCWlmIChqb2Jfc2lnbmFsZWQpIHsKKwkJZGV2X2lu Zm8oYWRldi0+ZGV2LCAiR3VpbHR5IGpvYiBhbHJlYWR5IHNpZ25hbGVkLCBza2lwcGluZyBIVyBy ZXNldCIpOworCQlnb3RvIHNraXBfaHdfcmVzZXQ7CisJfQorCisKKwkvKiBHdWlsdHkgam9iIHdp bGwgYmUgZnJlZWQgYWZ0ZXIgdGhpcyovCisJciA9IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVz ZXQoYWRldiwKKwkJCQkJIGpvYiwKKwkJCQkJICZuZWVkX2Z1bGxfcmVzZXQpOworCWlmIChyKSB7 CisJCS8qVE9ETyBTaG91bGQgd2Ugc3RvcCA/Ki8KKwkJRFJNX0VSUk9SKCJHUFUgcHJlIGFzaWMg cmVzZXQgZmFpbGVkIHdpdGggZXJyLCAlZCBmb3IgZHJtIGRldiwgJXMgIiwKKwkJCSAgciwgYWRl di0+ZGRldi0+dW5pcXVlKTsKKwkJYWRldi0+YXNpY19yZXNldF9yZXMgPSByOworCX0KKwogcmV0 cnk6CS8qIFJlc3Qgb2YgYWRldnMgcHJlIGFzaWMgcmVzZXQgZnJvbSBYR01JIGhpdmUuICovCiAJ bGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgZGV2aWNlX2xpc3RfaGFuZGxlLCBnbWMueGdt aS5oZWFkKSB7CiAKIAkJaWYgKHRtcF9hZGV2ID09IGFkZXYpCiAJCQljb250aW51ZTsKIAotCQlh bWRncHVfZGV2aWNlX2xvY2tfYWRldih0bXBfYWRldik7CisJCWFtZGdwdV9kZXZpY2VfbG9ja19h ZGV2KHRtcF9hZGV2LCBmYWxzZSk7CiAJCXIgPSBhbWRncHVfZGV2aWNlX3ByZV9hc2ljX3Jlc2V0 KHRtcF9hZGV2LAogCQkJCQkJIE5VTEwsCiAJCQkJCQkgJm5lZWRfZnVsbF9yZXNldCk7CkBAIC0z NjE4LDkgKzM2NDYsMjggQEAgaW50IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQlnb3RvIHJldHJ5OwogCX0KIAorc2tpcF9od19yZXNldDoK KwogCS8qIFBvc3QgQVNJQyByZXNldCBmb3IgYWxsIGRldnMgLiovCiAJbGlzdF9mb3JfZWFjaF9l bnRyeSh0bXBfYWRldiwgZGV2aWNlX2xpc3RfaGFuZGxlLCBnbWMueGdtaS5oZWFkKSB7Ci0JCWFt ZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHRtcF9hZGV2KTsKKwkJZm9yIChpID0gMDsgaSA8 IEFNREdQVV9NQVhfUklOR1M7ICsraSkgeworCQkJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0g dG1wX2FkZXYtPnJpbmdzW2ldOworCisJCQlpZiAoIXJpbmcgfHwgIXJpbmctPnNjaGVkLnRocmVh ZCkKKwkJCQljb250aW51ZTsKKworCQkJLyogTm8gcG9pbnQgdG8gcmVzdWJtaXQgam9icyBpZiB3 ZSBkaWRuJ3QgSFcgcmVzZXQqLworCQkJaWYgKCF0bXBfYWRldi0+YXNpY19yZXNldF9yZXMgJiYg IWpvYl9zaWduYWxlZCkKKwkJCQlkcm1fc2NoZWRfcmVzdWJtaXRfam9icygmcmluZy0+c2NoZWQp OworCisJCQlkcm1fc2NoZWRfc3RhcnQoJnJpbmctPnNjaGVkLCAhdG1wX2FkZXYtPmFzaWNfcmVz ZXRfcmVzKTsKKwkJfQorCisJCWlmICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydCh0bXBf YWRldikgJiYgIWpvYl9zaWduYWxlZCkgeworCQkJZHJtX2hlbHBlcl9yZXN1bWVfZm9yY2VfbW9k ZSh0bXBfYWRldi0+ZGRldik7CisJCX0KKworCQl0bXBfYWRldi0+YXNpY19yZXNldF9yZXMgPSAw OwogCiAJCWlmIChyKSB7CiAJCQkvKiBiYWQgbmV3cywgaG93IHRvIHRlbGwgaXQgdG8gdXNlcnNw YWNlID8gKi8KQEAgLTM2MzMsNyArMzY4MCw3IEBAIGludCBhbWRncHVfZGV2aWNlX2dwdV9yZWNv dmVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlhbWRncHVfZGV2aWNlX3VubG9ja19h ZGV2KHRtcF9hZGV2KTsKIAl9CiAKLQlpZiAoaGl2ZSAmJiBhZGV2LT5nbWMueGdtaS5udW1fcGh5 c2ljYWxfbm9kZXMgPiAxKQorCWlmIChoaXZlKQogCQltdXRleF91bmxvY2soJmhpdmUtPnJlc2V0 X2xvY2spOwogCiAJaWYgKHIpCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9hbWQtZ2Z4