From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 06/10] drm/msm/gpu: Capture the GPU state on a GPU hang Date: Thu, 5 Apr 2018 16:00:52 -0600 Message-ID: <20180405220056.29423-7-jcrouse@codeaurora.org> References: <20180405220056.29423-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180405220056.29423-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Q2FwdHVyZSB0aGUgR1BVIHN0YXRlIG9uIGEgR1BVIGhhbmcgYW5kIHN0b3JlIGl0IGZvciBsYXRl ciBwbGF5YmFjawp2aWEgdGhlIGRldmNvcmVkdW1wIGZhY2lsaXR5LiBPbmx5IG9uZSBjcmFzaCBz dGF0ZSBpcyBzdG9yZWQgYXQgYQp0aW1lIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGZpcnN0 IGhhbmcgaXMgdXN1YWxseSB0aGUgbW9zdAppbnRlcmVzdGluZy4gVGhlIGV4aXN0aW5nIGNyYXNo IHN0YXRlIGNhbiBiZSBjbGVhcmVkIGFmdGVyIGNhcHR1cmluZwppdCBhbmQgdGhlbiBhIG5ldyBv bmUgd2lsbCBiZSBjYXB0dXJlZCBvbiB0aGUgbmV4dCBoYW5nLgoKU2lnbmVkLW9mZi1ieTogSm9y ZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v bXNtL0tjb25maWcgICAgICAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVu by9hM3h4X2dwdS5jICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9n cHUuYyAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMgICB8 ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgfCAzNiArKysr KysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oIHwgIDQg Ky0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2RlYnVnZnMuYyAgICAgICB8ICA3ICsrLQogZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMgICAgICAgICAgIHwgODMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaCAgICAgICAg ICAgfCAzOCArKysrKysrKysrKysrKy0KIDkgZmlsZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMo KyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vS2Nv bmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vS2NvbmZpZwppbmRleCAzOGNiZGU5NzFiNDguLjg0 M2E5ZDQwYzA1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9LY29uZmlnCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vS2NvbmZpZwpAQCAtMTIsNiArMTIsNyBAQCBjb25maWcgRFJN X01TTQogCXNlbGVjdCBTSE1FTQogCXNlbGVjdCBUTVBGUwogCXNlbGVjdCBRQ09NX1NDTQorCXNl bGVjdCBXQU5UX0RFVl9DT1JFRFVNUAogCXNlbGVjdCBTTkRfU09DX0hETUlfQ09ERUMgaWYgU05E X1NPQwogCXNlbGVjdCBTWU5DX0ZJTEUKIAlzZWxlY3QgUE1fT1BQCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9h ZHJlbm8vYTN4eF9ncHUuYwppbmRleCA0Y2ZmZWMyYjZhZGMuLmZjNTAyZTQxMjEzMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTN4eF9ncHUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jCkBAIC00NTQsNyArNDU0LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBhZHJlbm9fZ3B1X2Z1bmNzIGZ1bmNzID0gewogCQkuYWN0aXZlX3Jpbmcg PSBhZHJlbm9fYWN0aXZlX3JpbmcsCiAJCS5pcnEgPSBhM3h4X2lycSwKIAkJLmRlc3Ryb3kgPSBh M3h4X2Rlc3Ryb3ksCi0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCisjaWYgZGVmaW5lZChDT05GSUdf REVCVUdfRlMpIHx8IGRlZmluZWQoQ09ORklHX0RFVl9DT1JFRFVNUCkKIAkJLnNob3cgPSBhZHJl bm9fc2hvdywKICNlbmRpZgogCQkuZ3B1X3N0YXRlX2dldCA9IGEzeHhfZ3B1X3N0YXRlX2dldCwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4X2dwdS5jCmluZGV4IDk1ZjA4YzIyZThkNy4uODEy OWNmMDM3ZGIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4X2dw dS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMKQEAgLTU0MCw3 ICs1NDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFkcmVub19ncHVfZnVuY3MgZnVuY3MgPSB7 CiAJCS5hY3RpdmVfcmluZyA9IGFkcmVub19hY3RpdmVfcmluZywKIAkJLmlycSA9IGE0eHhfaXJx LAogCQkuZGVzdHJveSA9IGE0eHhfZGVzdHJveSwKLSNpZmRlZiBDT05GSUdfREVCVUdfRlMKKyNp ZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykgfHwgZGVmaW5lZChDT05GSUdfREVWX0NPUkVEVU1Q KQogCQkuc2hvdyA9IGFkcmVub19zaG93LAogI2VuZGlmCiAJCS5ncHVfc3RhdGVfZ2V0ID0gYTR4 eF9ncHVfc3RhdGVfZ2V0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8v YTV4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMKaW5kZXgg YjA5MTBiYmU1MTkwLi44MzZhMWRmMWYyNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t c20vYWRyZW5vL2E1eHhfZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4 eF9ncHUuYwpAQCAtMTI0Myw4ICsxMjQzLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRyZW5v X2dwdV9mdW5jcyBmdW5jcyA9IHsKIAkJLmFjdGl2ZV9yaW5nID0gYTV4eF9hY3RpdmVfcmluZywK IAkJLmlycSA9IGE1eHhfaXJxLAogCQkuZGVzdHJveSA9IGE1eHhfZGVzdHJveSwKLSNpZmRlZiBD T05GSUdfREVCVUdfRlMKKyNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykgfHwgZGVmaW5lZChD T05GSUdfREVWX0NPUkVEVU1QKQogCQkuc2hvdyA9IGFkcmVub19zaG93LAorI2VuZGlmCisjaWYg ZGVmaW5lZChDT05GSUdfREVCVUdfRlMpCiAJCS5kZWJ1Z2ZzX2luaXQgPSBhNXh4X2RlYnVnZnNf aW5pdCwKICNlbmRpZgogCQkuZ3B1X2J1c3kgPSBhNXh4X2dwdV9idXN5LApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCmluZGV4IDUyMmQ0N2FjMzZlMS4uZDQ2YWUyZWRlNjE2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCkBAIC0zNzgsNiArMzc4 LDggQEAgc3RydWN0IG1zbV9ncHVfc3RhdGUgKmFkcmVub19ncHVfc3RhdGVfZ2V0KHN0cnVjdCBt c21fZ3B1ICpncHUpCiAJaWYgKCFzdGF0ZSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAK KwlrcmVmX2luaXQoJnN0YXRlLT5yZWYpOworCiAJZG9fZ2V0dGltZW9mZGF5KCZzdGF0ZS0+dGlt ZSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZ3B1LT5ucl9yaW5nczsgaSsrKSB7CkBAIC00MTMsMTgg KzQxNSwyOCBAQCBzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqYWRyZW5vX2dwdV9zdGF0ZV9nZXQoc3Ry dWN0IG1zbV9ncHUgKmdwdSkKIAlyZXR1cm4gc3RhdGU7CiB9CiAKLXZvaWQgYWRyZW5vX2dwdV9z dGF0ZV9wdXQoc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlKQorc3RhdGljIHZvaWQgYWRyZW5v X2dwdV9zdGF0ZV9kZXN0cm95KHN0cnVjdCBrcmVmICprcmVmKQogewotCWlmIChJU19FUlJfT1Jf TlVMTChzdGF0ZSkpCi0JCXJldHVybjsKKwlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUgPSBj b250YWluZXJfb2Yoa3JlZiwKKwkJc3RydWN0IG1zbV9ncHVfc3RhdGUsIHJlZik7CiAKKwlrZnJl ZShzdGF0ZS0+Y29tbSk7CisJa2ZyZWUoc3RhdGUtPmNtZCk7CiAJa2ZyZWUoc3RhdGUtPnJlZ2lz dGVycyk7CiAJa2ZyZWUoc3RhdGUpOwogfQogCi0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCitpbnQg YWRyZW5vX2dwdV9zdGF0ZV9wdXQoc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlKQoreworCWlm IChJU19FUlJfT1JfTlVMTChzdGF0ZSkpCisJCXJldHVybiAxOworCisJcmV0dXJuIGtyZWZfcHV0 KCZzdGF0ZS0+cmVmLCBhZHJlbm9fZ3B1X3N0YXRlX2Rlc3Ryb3kpOworfQorCisjaWYgZGVmaW5l ZChDT05GSUdfREVCVUdfRlMpIHx8IGRlZmluZWQoQ09ORklHX0RFVl9DT1JFRFVNUCkKIHZvaWQg YWRyZW5vX3Nob3coc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0 YXRlLAotCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCisJCXN0cnVjdCBkcm1fcHJpbnRlciAqcCkKIHsK IAlzdHJ1Y3QgYWRyZW5vX2dwdSAqYWRyZW5vX2dwdSA9IHRvX2FkcmVub19ncHUoZ3B1KTsKIAlp bnQgaTsKQEAgLTQzMiwyMyArNDQ0LDIzIEBAIHZvaWQgYWRyZW5vX3Nob3coc3RydWN0IG1zbV9n cHUgKmdwdSwgc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlLAogCWlmIChJU19FUlJfT1JfTlVM TChzdGF0ZSkpCiAJCXJldHVybjsKIAotCXNlcV9wcmludGYobSwgInN0YXR1czogICAlMDh4XG4i LCBzdGF0ZS0+cmJibV9zdGF0dXMpOwotCXNlcV9wcmludGYobSwgInJldmlzaW9uOiAlZCAoJWQu JWQuJWQuJWQpXG4iLAorCWRybV9wcmludGYocCwgInN0YXR1czogICAlMDh4XG4iLCBzdGF0ZS0+ cmJibV9zdGF0dXMpOworCWRybV9wcmludGYocCwgInJldmlzaW9uOiAlZCAoJWQuJWQuJWQuJWQp XG4iLAogCQkJYWRyZW5vX2dwdS0+aW5mby0+cmV2biwgYWRyZW5vX2dwdS0+cmV2LmNvcmUsCiAJ CQlhZHJlbm9fZ3B1LT5yZXYubWFqb3IsIGFkcmVub19ncHUtPnJldi5taW5vciwKIAkJCWFkcmVu b19ncHUtPnJldi5wYXRjaGlkKTsKIAogCWZvciAoaSA9IDA7IGkgPCBncHUtPm5yX3JpbmdzOyBp KyspIHsKLQkJc2VxX3ByaW50ZihtLCAicmIgJWQ6IGZlbmNlOiAgICAlZC8lZFxuIiwgaSwKKwkJ ZHJtX3ByaW50ZihwLCAicmIgJWQ6IGZlbmNlOiAgICAlZC8lZFxuIiwgaSwKIAkJCXN0YXRlLT5y aW5nW2ldLmZlbmNlLCBzdGF0ZS0+cmluZ1tpXS5zZXFubyk7CiAKLQkJc2VxX3ByaW50ZihtLCAi ICAgICAgcnB0cjogICAgICVkXG4iLCBzdGF0ZS0+cmluZ1tpXS5ycHRyKTsKLQkJc2VxX3ByaW50 ZihtLCAicmIgd3B0cjogICVkXG4iLCBzdGF0ZS0+cmluZ1tpXS53cHRyKTsKKwkJZHJtX3ByaW50 ZihwLCAiICAgICAgcnB0cjogICAgICVkXG4iLCBzdGF0ZS0+cmluZ1tpXS5ycHRyKTsKKwkJZHJt X3ByaW50ZihwLCAicmIgd3B0cjogICVkXG4iLCBzdGF0ZS0+cmluZ1tpXS53cHRyKTsKIAl9CiAK LQlzZXFfcHJpbnRmKG0sICJJTzpyZWdpb24gJXMgMDAwMDAwMDAgMDAwMjAwMDBcbiIsIGdwdS0+ bmFtZSk7CisJZHJtX3ByaW50ZihwLCAiSU86cmVnaW9uICVzIDAwMDAwMDAwIDAwMDIwMDAwXG4i LCBncHUtPm5hbWUpOwogCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnJfcmVnaXN0ZXJzOyBpKysp IHsKLQkJc2VxX3ByaW50ZihtLCAiSU86UiAlMDh4ICUwOHhcbiIsCisJCWRybV9wcmludGYocCwg IklPOlIgJTA4eCAlMDh4XG4iLAogCQkJc3RhdGUtPnJlZ2lzdGVyc1tpICogMl0gPDwgMiwKIAkJ CXN0YXRlLT5yZWdpc3RlcnNbKGkgKiAyKSArIDFdKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Fk cmVuby9hZHJlbm9fZ3B1LmgKaW5kZXggODE1YWU5OGM3ZmQxLi4wNzdiZjExNDljMGIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmgKQEAgLTIxNiw3ICsyMTYsNyBAQCB2 b2lkIGFkcmVub19mbHVzaChzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX3JpbmdidWZm ZXIgKnJpbmcpOwogYm9vbCBhZHJlbm9faWRsZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3Qg bXNtX3JpbmdidWZmZXIgKnJpbmcpOwogI2lmZGVmIENPTkZJR19ERUJVR19GUwogdm9pZCBhZHJl bm9fc2hvdyhzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUs Ci0JCXN0cnVjdCBzZXFfZmlsZSAqbSk7CisJCXN0cnVjdCBkcm1fcHJpbnRlciAqcCk7CiAjZW5k aWYKIHZvaWQgYWRyZW5vX2R1bXBfaW5mbyhzdHJ1Y3QgbXNtX2dwdSAqZ3B1KTsKIHZvaWQgYWRy ZW5vX2R1bXAoc3RydWN0IG1zbV9ncHUgKmdwdSk7CkBAIC0yMjksNyArMjI5LDcgQEAgaW50IGFk cmVub19ncHVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2LAogdm9pZCBhZHJlbm9fZ3B1X2NsZWFudXAoc3RydWN0IGFkcmVub19ncHUgKmdw dSk7CiAKIHN0cnVjdCBtc21fZ3B1X3N0YXRlICphZHJlbm9fZ3B1X3N0YXRlX2dldChzdHJ1Y3Qg bXNtX2dwdSAqZ3B1KTsKLXZvaWQgYWRyZW5vX2dwdV9zdGF0ZV9wdXQoc3RydWN0IG1zbV9ncHVf c3RhdGUgKnN0YXRlKTsKK2ludCBhZHJlbm9fZ3B1X3N0YXRlX3B1dChzdHJ1Y3QgbXNtX2dwdV9z dGF0ZSAqc3RhdGUpOwogCiAvKiByaW5nYnVmZmVyIGhlbHBlcnMgKHRoZSBwYXJ0cyB0aGF0IGFy ZSBhZHJlbm8gc3BlY2lmaWMpICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2RlYnVnZnMuYwppbmRleCBm ZDUzNWRhYjNkNWIuLjE2NWQ5NGI3MDlmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2RlYnVnZnMuYwpA QCAtMTYsNiArMTYsOCBAQAogICovCiAKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKKworI2luY2x1 ZGUgPGxpbnV4L2RlYnVnZnMuaD4KICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNt X2dwdS5oIgogI2luY2x1ZGUgIm1zbV9rbXMuaCIKQEAgLTI2LDYgKzI4LDcgQEAgc3RhdGljIGlu dCBtc21fZ3B1X3Nob3coc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IHNlcV9maWxlICpt KQogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0 cnVjdCBtc21fZ3B1ICpncHUgPSBwcml2LT5ncHU7CiAJc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0 YXRlOworCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7CiAK IAlpZiAoIWdwdSkKIAkJcmV0dXJuIDA7CkBAIC0zNyw4ICs0MCw4IEBAIHN0YXRpYyBpbnQgbXNt X2dwdV9zaG93KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBzZXFfZmlsZSAqbSkKIAlp ZiAoSVNfRVJSKHN0YXRlKSkKIAkJcmV0dXJuIFBUUl9FUlIoc3RhdGUpOwogCi0Jc2VxX3ByaW50 ZihtLCAiJXMgU3RhdHVzOlxuIiwgZ3B1LT5uYW1lKTsKLQlncHUtPmZ1bmNzLT5zaG93KGdwdSwg c3RhdGUsIG0pOworCWRybV9wcmludGYoJnAsICIlcyBTdGF0dXM6XG4iLCBncHUtPm5hbWUpOwor CWdwdS0+ZnVuY3MtPnNob3coZ3B1LCBzdGF0ZSwgJnApOwogCiAJZ3B1LT5mdW5jcy0+Z3B1X3N0 YXRlX3B1dChzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dw dS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMKaW5kZXggMmNhMzU0MDQ3MjUwLi5m MzZiNDE1ZTEyM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCkBAIC0yMCwxMCArMjAsMTEgQEAKICNp bmNsdWRlICJtc21fbW11LmgiCiAjaW5jbHVkZSAibXNtX2ZlbmNlLmgiCiAKKyNpbmNsdWRlIDxn ZW5lcmF0ZWQvdXRzcmVsZWFzZS5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZ19oZWxwZXJzLmg+ CiAjaW5jbHVkZSA8bGludXgvcG1fb3BwLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2ZnJlcS5oPgot CisjaW5jbHVkZSA8bGludXgvZGV2Y29yZWR1bXAuaD4KIAogLyoKICAqIFBvd2VyIE1hbmFnZW1l bnQ6CkBAIC0yNzMsNiArMjc0LDgzIEBAIGludCBtc21fZ3B1X2h3X2luaXQoc3RydWN0IG1zbV9n cHUgKmdwdSkKIAlyZXR1cm4gcmV0OwogfQogCisjaWZkZWYgQ09ORklHX0RFVl9DT1JFRFVNUAor c3RhdGljIHNzaXplX3QgbXNtX2dwdV9kZXZjb3JlZHVtcF9yZWFkKGNoYXIgKmJ1ZmZlciwgbG9m Zl90IG9mZnNldCwKKwkJc2l6ZV90IGNvdW50LCB2b2lkICpkYXRhLCBzaXplX3QgZGF0YWxlbikK K3sKKwlzdHJ1Y3QgbXNtX2dwdSAqZ3B1ID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX3ByaW50X2l0ZXJh dG9yIGl0ZXI7CisJc3RydWN0IGRybV9wcmludGVyIHA7CisJc3RydWN0IG1zbV9ncHVfc3RhdGUg KnN0YXRlOworCisJc3RhdGUgPSBtc21fZ3B1X2NyYXNoc3RhdGVfZ2V0KGdwdSk7CisJaWYgKCFz dGF0ZSkKKwkJcmV0dXJuIDA7CisKKwlpdGVyLmRhdGEgPSBidWZmZXI7CisJaXRlci5vZmZzZXQg PSAwOworCWl0ZXIuc3RhcnQgPSBvZmZzZXQ7CisJaXRlci5yZW1haW4gPSBjb3VudDsKKworCXAg PSBkcm1fY29yZWR1bXBfcHJpbnRlcigmaXRlcik7CisKKwlkcm1fcHJpbnRmKCZwLCAiLS0tXG4i KTsKKwlkcm1fcHJpbnRmKCZwLCAia2VybmVsOiAiIFVUU19SRUxFQVNFICJcbiIpOworCWRybV9w cmludGYoJnAsICJtb2R1bGU6ICIgS0JVSUxEX01PRE5BTUUgIlxuIik7CisJZHJtX3ByaW50Zigm cCwgInRpbWU6ICVsZC4lbGRcbiIsCisJCXN0YXRlLT50aW1lLnR2X3NlYywgc3RhdGUtPnRpbWUu dHZfdXNlYyk7CisJaWYgKHN0YXRlLT5jb21tKQorCQlkcm1fcHJpbnRmKCZwLCAiY29tbTogJXNc biIsIHN0YXRlLT5jb21tKTsKKwlpZiAoc3RhdGUtPmNtZCkKKwkJZHJtX3ByaW50ZigmcCwgImNt ZGxpbmU6ICVzXG4iLCBzdGF0ZS0+Y21kKTsKKworCWdwdS0+ZnVuY3MtPnNob3coZ3B1LCBzdGF0 ZSwgJnApOworCisJbXNtX2dwdV9jcmFzaHN0YXRlX3B1dChncHUpOworCisJcmV0dXJuIGNvdW50 IC0gaXRlci5yZW1haW47Cit9CisKK3N0YXRpYyB2b2lkIG1zbV9ncHVfZGV2Y29yZWR1bXBfZnJl ZSh2b2lkICpkYXRhKQoreworCXN0cnVjdCBtc21fZ3B1ICpncHUgPSBkYXRhOworCisJbXNtX2dw dV9jcmFzaHN0YXRlX3B1dChncHUpOworfQorCitzdGF0aWMgdm9pZCBtc21fZ3B1X2NyYXNoc3Rh dGVfY2FwdHVyZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBjaGFyICpjb21tLAorCQljaGFyICpjbWQp Cit7CisJc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlOworCisJLyogT25seSBzYXZlIG9uZSBj cmFzaCBzdGF0ZSBhdCBhIGEgdGltZSAqLworCWlmIChncHUtPmNyYXNoc3RhdGUpCisJCXJldHVy bjsKKworCXN0YXRlID0gZ3B1LT5mdW5jcy0+Z3B1X3N0YXRlX2dldChncHUpOworCWlmIChJU19F UlJfT1JfTlVMTChzdGF0ZSkpCisJCXJldHVybjsKKworCS8qIEZpbGwgaW4gdGhlIGFkZGl0aW9u YWwgY3Jhc2ggc3RhdGUgaW5mb3JtYXRpb24gKi8KKwlzdGF0ZS0+Y29tbSA9IGtzdHJkdXAoY29t bSwgR0ZQX0tFUk5FTCk7CisJc3RhdGUtPmNtZCA9IGtzdHJkdXAoY21kLCBHRlBfS0VSTkVMKTsK KworCWtyZWZfaW5pdCgmc3RhdGUtPnJlZik7CisKKwkvKiBTZXQgdGhlIGFjdGl2ZSBjcmFzaCBz dGF0ZSB0byBiZSBkdW1wZWQgb24gZmFpbHVyZSAqLworCWdwdS0+Y3Jhc2hzdGF0ZSA9IHN0YXRl OworCisJLyogRklYTUU6IFJlbGVhc2UgdGhlIGNyYXNoc3RhdGUgaWYgdGhpcyBlcnJvcnMgb3V0 PyAqLworCWRldl9jb3JlZHVtcG0oZ3B1LT5kZXYtPmRldiwgVEhJU19NT0RVTEUsIGdwdSwgMCwg R0ZQX0tFUk5FTCwKKwkJbXNtX2dwdV9kZXZjb3JlZHVtcF9yZWFkLCBtc21fZ3B1X2RldmNvcmVk dW1wX2ZyZWUpOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkIG1zbV9ncHVfY3Jhc2hzdGF0ZV9jYXB0 dXJlKHN0cnVjdCBtc21fZ3B1ICpncHUsIGNoYXIgKmNvbW0sCisJCWNoYXIgKmNtZCkKK3sKK30K KyNlbmRpZgorCiAvKgogICogSGFuZ2NoZWNrIGRldGVjdGlvbiBmb3IgbG9ja2VkIGdwdToKICAq LwpAQCAtMzU2LDYgKzQzNCw5IEBAIHN0YXRpYyB2b2lkIHJlY292ZXJfd29ya2VyKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKIAkJCW1zbV9yZF9kdW1wX3N1Ym1pdChwcml2LT5oYW5ncmQsIHN1 Ym1pdCwgTlVMTCk7CiAJfQogCisJLyogUmVjb3JkIHRoZSBjcmFzaCBzdGF0ZSAqLworCW1zbV9n cHVfY3Jhc2hzdGF0ZV9jYXB0dXJlKGdwdSwgY29tbSwgY21kKTsKKwogCWtmcmVlKGNtZCk7CiAJ a2ZyZWUoY29tbSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5o IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKaW5kZXggNDcwZjNiYjVmODM0Li5lNjVm NTA3OTU0YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oCkBAIC02NiwxMyArNjYsMTMgQEAgc3RydWN0 IG1zbV9ncHVfZnVuY3MgewogI2lmZGVmIENPTkZJR19ERUJVR19GUwogCS8qIHNob3cgR1BVIHN0 YXR1cyBpbiBkZWJ1Z2ZzOiAqLwogCXZvaWQgKCpzaG93KShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBz dHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUsCi0JCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOworCQkJ c3RydWN0IGRybV9wcmludGVyICpwKTsKIAkvKiBmb3IgZ2VuZXJhdGlvbiBzcGVjaWZpYyBkZWJ1 Z2ZzOiAqLwogCWludCAoKmRlYnVnZnNfaW5pdCkoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0 IGRybV9taW5vciAqbWlub3IpOwogI2VuZGlmCiAJaW50ICgqZ3B1X2J1c3kpKHN0cnVjdCBtc21f Z3B1ICpncHUsIHVpbnQ2NF90ICp2YWx1ZSk7CiAJc3RydWN0IG1zbV9ncHVfc3RhdGUgKigqZ3B1 X3N0YXRlX2dldCkoc3RydWN0IG1zbV9ncHUgKmdwdSk7Ci0Jdm9pZCAoKmdwdV9zdGF0ZV9wdXQp KHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSk7CisJaW50ICgqZ3B1X3N0YXRlX3B1dCkoc3Ry dWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlKTsKIH07CiAKIHN0cnVjdCBtc21fZ3B1IHsKQEAgLTEz Myw2ICsxMzMsOCBAQCBzdHJ1Y3QgbXNtX2dwdSB7CiAJCXU2NCBidXN5X2N5Y2xlczsKIAkJa3Rp bWVfdCB0aW1lOwogCX0gZGV2ZnJlcTsKKworCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpjcmFzaHN0 YXRlOwogfTsKIAogLyogSXQgdHVybnMgb3V0IHRoYXQgYWxsIHRhcmdldHMgdXNlIHRoZSBzYW1l IHJpbmdidWZmZXIgc2l6ZSAqLwpAQCAtMTgwLDYgKzE4Miw3IEBAIHN0cnVjdCBtc21fZ3B1X3N1 Ym1pdHF1ZXVlIHsKIH07CiAKIHN0cnVjdCBtc21fZ3B1X3N0YXRlIHsKKwlzdHJ1Y3Qga3JlZiBy ZWY7CiAJc3RydWN0IHRpbWV2YWwgdGltZTsKIAogCXN0cnVjdCB7CkBAIC0xOTMsNiArMTk2LDkg QEAgc3RydWN0IG1zbV9ncHVfc3RhdGUgewogCXUzMiAqcmVnaXN0ZXJzOwogCiAJdTMyIHJiYm1f c3RhdHVzOworCisJY2hhciAqY29tbTsKKwljaGFyICpjbWQ7CiB9OwogCiBzdGF0aWMgaW5saW5l IHZvaWQgZ3B1X3dyaXRlKHN0cnVjdCBtc21fZ3B1ICpncHUsIHUzMiByZWcsIHUzMiBkYXRhKQpA QCAtMjc0LDQgKzI4MCwzMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbXNtX3N1Ym1pdHF1ZXVlX3B1 dChzdHJ1Y3QgbXNtX2dwdV9zdWJtaXRxdWV1ZSAqcXVldWUpCiAJCWtyZWZfcHV0KCZxdWV1ZS0+ cmVmLCBtc21fc3VibWl0cXVldWVfZGVzdHJveSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0 IG1zbV9ncHVfc3RhdGUgKm1zbV9ncHVfY3Jhc2hzdGF0ZV9nZXQoc3RydWN0IG1zbV9ncHUgKmdw dSkKK3sKKwlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUgPSBOVUxMOworCisJbXV0ZXhfbG9j aygmZ3B1LT5kZXYtPnN0cnVjdF9tdXRleCk7CisKKwlpZiAoZ3B1LT5jcmFzaHN0YXRlKSB7CisJ CWtyZWZfZ2V0KCZncHUtPmNyYXNoc3RhdGUtPnJlZik7CisJCXN0YXRlID0gZ3B1LT5jcmFzaHN0 YXRlOworCX0KKworCW11dGV4X3VubG9jaygmZ3B1LT5kZXYtPnN0cnVjdF9tdXRleCk7CisKKwly ZXR1cm4gc3RhdGU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBtc21fZ3B1X2NyYXNoc3RhdGVf cHV0KHN0cnVjdCBtc21fZ3B1ICpncHUpCit7CisJbXV0ZXhfbG9jaygmZ3B1LT5kZXYtPnN0cnVj dF9tdXRleCk7CisKKwlpZiAoZ3B1LT5jcmFzaHN0YXRlKSB7CisJCWlmIChncHUtPmZ1bmNzLT5n cHVfc3RhdGVfcHV0KGdwdS0+Y3Jhc2hzdGF0ZSkpCisJCQlncHUtPmNyYXNoc3RhdGUgPSBOVUxM OworCX0KKworCW11dGV4X3VubG9jaygmZ3B1LT5kZXYtPnN0cnVjdF9tdXRleCk7Cit9CisKICNl bmRpZiAvKiBfX01TTV9HUFVfSF9fICovCi0tIAoyLjE2LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRy ZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=