From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 09/13] drm/msm/gpu: Capture the GPU state on a GPU hang Date: Thu, 12 Jul 2018 12:59:26 -0600 Message-ID: <20180712185930.2492-10-jcrouse@codeaurora.org> References: <20180712185930.2492-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180712185930.2492-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 KysrLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oIHwgIDYgKy0K IGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2RlYnVnZnMuYyAgICAgICB8ICA1ICstCiBkcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9ncHUuYyAgICAgICAgICAgfCA4MyArKysrKysrKysrKysrKysrKysr KysrKystCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaCAgICAgICAgICAgfCAzOCArKysr KysrKysrLQogOSBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9LY29uZmlnIGIvZHJpdmVycy9n cHUvZHJtL21zbS9LY29uZmlnCmluZGV4IDM4Y2JkZTk3MWI0OC4uODQzYTlkNDBjMDVlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9LY29uZmlnCkBAIC0xMiw2ICsxMiw3IEBAIGNvbmZpZyBEUk1fTVNNCiAJc2VsZWN0IFNI TUVNCiAJc2VsZWN0IFRNUEZTCiAJc2VsZWN0IFFDT01fU0NNCisJc2VsZWN0IFdBTlRfREVWX0NP UkVEVU1QCiAJc2VsZWN0IFNORF9TT0NfSERNSV9DT0RFQyBpZiBTTkRfU09DCiAJc2VsZWN0IFNZ TkNfRklMRQogCXNlbGVjdCBQTV9PUFAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2EzeHhfZ3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5j CmluZGV4IDRjZmZlYzJiNmFkYy4uZmM1MDJlNDEyMTMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRy ZW5vL2EzeHhfZ3B1LmMKQEAgLTQ1NCw3ICs0NTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFk cmVub19ncHVfZnVuY3MgZnVuY3MgPSB7CiAJCS5hY3RpdmVfcmluZyA9IGFkcmVub19hY3RpdmVf cmluZywKIAkJLmlycSA9IGEzeHhfaXJxLAogCQkuZGVzdHJveSA9IGEzeHhfZGVzdHJveSwKLSNp ZmRlZiBDT05GSUdfREVCVUdfRlMKKyNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykgfHwgZGVm aW5lZChDT05GSUdfREVWX0NPUkVEVU1QKQogCQkuc2hvdyA9IGFkcmVub19zaG93LAogI2VuZGlm CiAJCS5ncHVfc3RhdGVfZ2V0ID0gYTN4eF9ncHVfc3RhdGVfZ2V0LApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2E0eHhfZ3B1LmMKaW5kZXggOTVmMDhjMjJlOGQ3Li44MTI5Y2YwMzdkYjEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYwpAQCAtNTQwLDcgKzU0MCw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgYWRyZW5vX2dwdV9mdW5jcyBmdW5jcyA9IHsKIAkJLmFjdGl2ZV9yaW5n ID0gYWRyZW5vX2FjdGl2ZV9yaW5nLAogCQkuaXJxID0gYTR4eF9pcnEsCiAJCS5kZXN0cm95ID0g YTR4eF9kZXN0cm95LAotI2lmZGVmIENPTkZJR19ERUJVR19GUworI2lmIGRlZmluZWQoQ09ORklH X0RFQlVHX0ZTKSB8fCBkZWZpbmVkKENPTkZJR19ERVZfQ09SRURVTVApCiAJCS5zaG93ID0gYWRy ZW5vX3Nob3csCiAjZW5kaWYKIAkJLmdwdV9zdGF0ZV9nZXQgPSBhNHh4X2dwdV9zdGF0ZV9nZXQs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jIGIvZHJp dmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYwppbmRleCA1ZjFhYWIzYzFjYjEuLjE2 MDc0ZmE2YmYxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9n cHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jCkBAIC0xMjQz LDggKzEyNDMsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZHJlbm9fZ3B1X2Z1bmNzIGZ1bmNz ID0gewogCQkuYWN0aXZlX3JpbmcgPSBhNXh4X2FjdGl2ZV9yaW5nLAogCQkuaXJxID0gYTV4eF9p cnEsCiAJCS5kZXN0cm95ID0gYTV4eF9kZXN0cm95LAotI2lmZGVmIENPTkZJR19ERUJVR19GUwor I2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKSB8fCBkZWZpbmVkKENPTkZJR19ERVZfQ09SRURV TVApCiAJCS5zaG93ID0gYWRyZW5vX3Nob3csCisjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19E RUJVR19GUykKIAkJLmRlYnVnZnNfaW5pdCA9IGE1eHhfZGVidWdmc19pbml0LAogI2VuZGlmCiAJ CS5ncHVfYnVzeSA9IGE1eHhfZ3B1X2J1c3ksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJl bm9fZ3B1LmMKaW5kZXggMGU5MzdlZWRjZWM1Li4xNjM1NDI0ODdlMmMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKQEAgLTM3OCw2ICszNzgsOCBAQCBzdHJ1Y3QgbXNt X2dwdV9zdGF0ZSAqYWRyZW5vX2dwdV9zdGF0ZV9nZXQoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAlp ZiAoIXN0YXRlKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAorCWtyZWZfaW5pdCgmc3Rh dGUtPnJlZik7CisKIAlkb19nZXR0aW1lb2ZkYXkoJnN0YXRlLT50aW1lKTsKIAogCWZvciAoaSA9 IDA7IGkgPCBncHUtPm5yX3JpbmdzOyBpKyspIHsKQEAgLTQxMywxOCArNDE1LDI4IEBAIHN0cnVj dCBtc21fZ3B1X3N0YXRlICphZHJlbm9fZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAqZ3B1 KQogCXJldHVybiBzdGF0ZTsKIH0KIAotdm9pZCBhZHJlbm9fZ3B1X3N0YXRlX3B1dChzdHJ1Y3Qg bXNtX2dwdV9zdGF0ZSAqc3RhdGUpCitzdGF0aWMgdm9pZCBhZHJlbm9fZ3B1X3N0YXRlX2Rlc3Ry b3koc3RydWN0IGtyZWYgKmtyZWYpCiB7Ci0JaWYgKElTX0VSUl9PUl9OVUxMKHN0YXRlKSkKLQkJ cmV0dXJuOworCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSA9IGNvbnRhaW5lcl9vZihrcmVm LAorCQlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSwgcmVmKTsKIAorCWtmcmVlKHN0YXRlLT5jb21tKTsK KwlrZnJlZShzdGF0ZS0+Y21kKTsKIAlrZnJlZShzdGF0ZS0+cmVnaXN0ZXJzKTsKIAlrZnJlZShz dGF0ZSk7CiB9CiAKLSNpZmRlZiBDT05GSUdfREVCVUdfRlMKK2ludCBhZHJlbm9fZ3B1X3N0YXRl X3B1dChzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUpCit7CisJaWYgKElTX0VSUl9PUl9OVUxM KHN0YXRlKSkKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4ga3JlZl9wdXQoJnN0YXRlLT5yZWYsIGFk cmVub19ncHVfc3RhdGVfZGVzdHJveSk7Cit9CisKKyNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19G UykgfHwgZGVmaW5lZChDT05GSUdfREVWX0NPUkVEVU1QKQogdm9pZCBhZHJlbm9fc2hvdyhzdHJ1 Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUsCi0JCXN0cnVjdCBz ZXFfZmlsZSAqbSkKKwkJc3RydWN0IGRybV9wcmludGVyICpwKQogewogCXN0cnVjdCBhZHJlbm9f Z3B1ICphZHJlbm9fZ3B1ID0gdG9fYWRyZW5vX2dwdShncHUpOwogCWludCBpOwpAQCAtNDMyLDIz ICs0NDQsMjMgQEAgdm9pZCBhZHJlbm9fc2hvdyhzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3Qg bXNtX2dwdV9zdGF0ZSAqc3RhdGUsCiAJaWYgKElTX0VSUl9PUl9OVUxMKHN0YXRlKSkKIAkJcmV0 dXJuOwogCi0Jc2VxX3ByaW50ZihtLCAic3RhdHVzOiAgICUwOHhcbiIsIHN0YXRlLT5yYmJtX3N0 YXR1cyk7Ci0Jc2VxX3ByaW50ZihtLCAicmV2aXNpb246ICVkICglZC4lZC4lZC4lZClcbiIsCisJ ZHJtX3ByaW50ZihwLCAic3RhdHVzOiAgICUwOHhcbiIsIHN0YXRlLT5yYmJtX3N0YXR1cyk7CisJ ZHJtX3ByaW50ZihwLCAicmV2aXNpb246ICVkICglZC4lZC4lZC4lZClcbiIsCiAJCQlhZHJlbm9f Z3B1LT5pbmZvLT5yZXZuLCBhZHJlbm9fZ3B1LT5yZXYuY29yZSwKIAkJCWFkcmVub19ncHUtPnJl di5tYWpvciwgYWRyZW5vX2dwdS0+cmV2Lm1pbm9yLAogCQkJYWRyZW5vX2dwdS0+cmV2LnBhdGNo aWQpOwogCiAJZm9yIChpID0gMDsgaSA8IGdwdS0+bnJfcmluZ3M7IGkrKykgewotCQlzZXFfcHJp bnRmKG0sICJyYiAlZDogZmVuY2U6ICAgICVkLyVkXG4iLCBpLAorCQlkcm1fcHJpbnRmKHAsICJy YiAlZDogZmVuY2U6ICAgICVkLyVkXG4iLCBpLAogCQkJc3RhdGUtPnJpbmdbaV0uZmVuY2UsIHN0 YXRlLT5yaW5nW2ldLnNlcW5vKTsKIAotCQlzZXFfcHJpbnRmKG0sICIgICAgICBycHRyOiAgICAg JWRcbiIsIHN0YXRlLT5yaW5nW2ldLnJwdHIpOwotCQlzZXFfcHJpbnRmKG0sICJyYiB3cHRyOiAg JWRcbiIsIHN0YXRlLT5yaW5nW2ldLndwdHIpOworCQlkcm1fcHJpbnRmKHAsICIgICAgICBycHRy OiAgICAgJWRcbiIsIHN0YXRlLT5yaW5nW2ldLnJwdHIpOworCQlkcm1fcHJpbnRmKHAsICJyYiB3 cHRyOiAgJWRcbiIsIHN0YXRlLT5yaW5nW2ldLndwdHIpOwogCX0KIAotCXNlcV9wcmludGYobSwg IklPOnJlZ2lvbiAlcyAwMDAwMDAwMCAwMDAyMDAwMFxuIiwgZ3B1LT5uYW1lKTsKKwlkcm1fcHJp bnRmKHAsICJJTzpyZWdpb24gJXMgMDAwMDAwMDAgMDAwMjAwMDBcbiIsIGdwdS0+bmFtZSk7CiAJ Zm9yIChpID0gMDsgaSA8IHN0YXRlLT5ucl9yZWdpc3RlcnM7IGkrKykgewotCQlzZXFfcHJpbnRm KG0sICJJTzpSICUwOHggJTA4eFxuIiwKKwkJZHJtX3ByaW50ZihwLCAiSU86UiAlMDh4ICUwOHhc biIsCiAJCQlzdGF0ZS0+cmVnaXN0ZXJzW2kgKiAyXSA8PCAyLAogCQkJc3RhdGUtPnJlZ2lzdGVy c1soaSAqIDIpICsgMV0pOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRy ZW5vL2FkcmVub19ncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUu aAppbmRleCA5MGI2YjU5MjUyYWYuLjRhODY4YWFmMWE3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2FkcmVub19ncHUuaApAQCAtMjE1LDkgKzIxNSw5IEBAIHZvaWQgYWRyZW5vX3N1Ym1p dChzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQgKnN1Ym1pdCwKIAkJ c3RydWN0IG1zbV9maWxlX3ByaXZhdGUgKmN0eCk7CiB2b2lkIGFkcmVub19mbHVzaChzdHJ1Y3Qg bXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX3JpbmdidWZmZXIgKnJpbmcpOwogYm9vbCBhZHJlbm9f aWRsZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX3JpbmdidWZmZXIgKnJpbmcpOwot I2lmZGVmIENPTkZJR19ERUJVR19GUworI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKSB8fCBk ZWZpbmVkKENPTkZJR19ERVZfQ09SRURVTVApCiB2b2lkIGFkcmVub19zaG93KHN0cnVjdCBtc21f Z3B1ICpncHUsIHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSwKLQkJc3RydWN0IHNlcV9maWxl ICptKTsKKwkJc3RydWN0IGRybV9wcmludGVyICpwKTsKICNlbmRpZgogdm9pZCBhZHJlbm9fZHVt cF9pbmZvKHN0cnVjdCBtc21fZ3B1ICpncHUpOwogdm9pZCBhZHJlbm9fZHVtcChzdHJ1Y3QgbXNt X2dwdSAqZ3B1KTsKQEAgLTIzMSw3ICsyMzEsNyBAQCB2b2lkIGFkcmVub19ncHVfY2xlYW51cChz dHJ1Y3QgYWRyZW5vX2dwdSAqZ3B1KTsKIAogCiBzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqYWRyZW5v X2dwdV9zdGF0ZV9nZXQoc3RydWN0IG1zbV9ncHUgKmdwdSk7Ci12b2lkIGFkcmVub19ncHVfc3Rh dGVfcHV0KHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSk7CitpbnQgYWRyZW5vX2dwdV9zdGF0 ZV9wdXQoc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlKTsKIAogLyogcmluZ2J1ZmZlciBoZWxw ZXJzICh0aGUgcGFydHMgdGhhdCBhcmUgYWRyZW5vIHNwZWNpZmljKSAqLwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9kZWJ1Z2ZzLmMKaW5kZXggYzNkYTEyMTc5ODg4Li5mMGRhMGQzYzhhODAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9kZWJ1Z2ZzLmMKQEAgLTI5LDYgKzI5LDcgQEAgc3RydWN0IG1zbV9ncHVfc2hv d19wcml2IHsKIAogc3RhdGljIGludCBtc21fZ3B1X3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICphcmcpCiB7CisJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRl cihtKTsKIAlzdHJ1Y3QgbXNtX2dwdV9zaG93X3ByaXYgKnNob3dfcHJpdiA9IG0tPnByaXZhdGU7 CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IHNob3dfcHJpdi0+ZGV2LT5kZXZfcHJp dmF0ZTsKIAlzdHJ1Y3QgbXNtX2dwdSAqZ3B1ID0gcHJpdi0+Z3B1OwpAQCAtMzgsOCArMzksOCBA QCBzdGF0aWMgaW50IG1zbV9ncHVfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmFyZykK IAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0Jc2VxX3ByaW50ZihtLCAiJXMgU3RhdHVzOlxu IiwgZ3B1LT5uYW1lKTsKLQlncHUtPmZ1bmNzLT5zaG93KGdwdSwgc2hvd19wcml2LT5zdGF0ZSwg bSk7CisJZHJtX3ByaW50ZigmcCwgIiVzIFN0YXR1czpcbiIsIGdwdS0+bmFtZSk7CisJZ3B1LT5m dW5jcy0+c2hvdyhncHUsIHNob3dfcHJpdi0+c3RhdGUsICZwKTsKIAogCW11dGV4X3VubG9jaygm c2hvd19wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMKaW5kZXgg MmNhMzU0MDQ3MjUwLi4xOTQ1NzM2ZmM0NDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCkBAIC0yMCwx MCArMjAsMTEgQEAKICNpbmNsdWRlICJtc21fbW11LmgiCiAjaW5jbHVkZSAibXNtX2ZlbmNlLmgi CiAKKyNpbmNsdWRlIDxnZW5lcmF0ZWQvdXRzcmVsZWFzZS5oPgogI2luY2x1ZGUgPGxpbnV4L3N0 cmluZ19oZWxwZXJzLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fb3BwLmg+CiAjaW5jbHVkZSA8bGlu dXgvZGV2ZnJlcS5oPgotCisjaW5jbHVkZSA8bGludXgvZGV2Y29yZWR1bXAuaD4KIAogLyoKICAq IFBvd2VyIE1hbmFnZW1lbnQ6CkBAIC0yNzMsNiArMjc0LDgxIEBAIGludCBtc21fZ3B1X2h3X2lu aXQoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAlyZXR1cm4gcmV0OwogfQogCisjaWZkZWYgQ09ORklH X0RFVl9DT1JFRFVNUAorc3RhdGljIHNzaXplX3QgbXNtX2dwdV9kZXZjb3JlZHVtcF9yZWFkKGNo YXIgKmJ1ZmZlciwgbG9mZl90IG9mZnNldCwKKwkJc2l6ZV90IGNvdW50LCB2b2lkICpkYXRhLCBz aXplX3QgZGF0YWxlbikKK3sKKwlzdHJ1Y3QgbXNtX2dwdSAqZ3B1ID0gZGF0YTsKKwlzdHJ1Y3Qg ZHJtX3ByaW50X2l0ZXJhdG9yIGl0ZXI7CisJc3RydWN0IGRybV9wcmludGVyIHA7CisJc3RydWN0 IG1zbV9ncHVfc3RhdGUgKnN0YXRlOworCisJc3RhdGUgPSBtc21fZ3B1X2NyYXNoc3RhdGVfZ2V0 KGdwdSk7CisJaWYgKCFzdGF0ZSkKKwkJcmV0dXJuIDA7CisKKwlpdGVyLmRhdGEgPSBidWZmZXI7 CisJaXRlci5vZmZzZXQgPSAwOworCWl0ZXIuc3RhcnQgPSBvZmZzZXQ7CisJaXRlci5yZW1haW4g PSBjb3VudDsKKworCXAgPSBkcm1fY29yZWR1bXBfcHJpbnRlcigmaXRlcik7CisKKwlkcm1fcHJp bnRmKCZwLCAiLS0tXG4iKTsKKwlkcm1fcHJpbnRmKCZwLCAia2VybmVsOiAiIFVUU19SRUxFQVNF ICJcbiIpOworCWRybV9wcmludGYoJnAsICJtb2R1bGU6ICIgS0JVSUxEX01PRE5BTUUgIlxuIik7 CisJZHJtX3ByaW50ZigmcCwgInRpbWU6ICVsZC4lbGRcbiIsCisJCXN0YXRlLT50aW1lLnR2X3Nl Yywgc3RhdGUtPnRpbWUudHZfdXNlYyk7CisJaWYgKHN0YXRlLT5jb21tKQorCQlkcm1fcHJpbnRm KCZwLCAiY29tbTogJXNcbiIsIHN0YXRlLT5jb21tKTsKKwlpZiAoc3RhdGUtPmNtZCkKKwkJZHJt X3ByaW50ZigmcCwgImNtZGxpbmU6ICVzXG4iLCBzdGF0ZS0+Y21kKTsKKworCWdwdS0+ZnVuY3Mt PnNob3coZ3B1LCBzdGF0ZSwgJnApOworCisJbXNtX2dwdV9jcmFzaHN0YXRlX3B1dChncHUpOwor CisJcmV0dXJuIGNvdW50IC0gaXRlci5yZW1haW47Cit9CisKK3N0YXRpYyB2b2lkIG1zbV9ncHVf ZGV2Y29yZWR1bXBfZnJlZSh2b2lkICpkYXRhKQoreworCXN0cnVjdCBtc21fZ3B1ICpncHUgPSBk YXRhOworCisJbXNtX2dwdV9jcmFzaHN0YXRlX3B1dChncHUpOworfQorCitzdGF0aWMgdm9pZCBt c21fZ3B1X2NyYXNoc3RhdGVfY2FwdHVyZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBjaGFyICpjb21t LAorCQljaGFyICpjbWQpCit7CisJc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlOworCisJLyog T25seSBzYXZlIG9uZSBjcmFzaCBzdGF0ZSBhdCBhIHRpbWUgKi8KKwlpZiAoZ3B1LT5jcmFzaHN0 YXRlKQorCQlyZXR1cm47CisKKwlzdGF0ZSA9IGdwdS0+ZnVuY3MtPmdwdV9zdGF0ZV9nZXQoZ3B1 KTsKKwlpZiAoSVNfRVJSX09SX05VTEwoc3RhdGUpKQorCQlyZXR1cm47CisKKwkvKiBGaWxsIGlu IHRoZSBhZGRpdGlvbmFsIGNyYXNoIHN0YXRlIGluZm9ybWF0aW9uICovCisJc3RhdGUtPmNvbW0g PSBrc3RyZHVwKGNvbW0sIEdGUF9LRVJORUwpOworCXN0YXRlLT5jbWQgPSBrc3RyZHVwKGNtZCwg R0ZQX0tFUk5FTCk7CisKKwkvKiBTZXQgdGhlIGFjdGl2ZSBjcmFzaCBzdGF0ZSB0byBiZSBkdW1w ZWQgb24gZmFpbHVyZSAqLworCWdwdS0+Y3Jhc2hzdGF0ZSA9IHN0YXRlOworCisJLyogRklYTUU6 IFJlbGVhc2UgdGhlIGNyYXNoc3RhdGUgaWYgdGhpcyBlcnJvcnMgb3V0PyAqLworCWRldl9jb3Jl ZHVtcG0oZ3B1LT5kZXYtPmRldiwgVEhJU19NT0RVTEUsIGdwdSwgMCwgR0ZQX0tFUk5FTCwKKwkJ bXNtX2dwdV9kZXZjb3JlZHVtcF9yZWFkLCBtc21fZ3B1X2RldmNvcmVkdW1wX2ZyZWUpOworfQor I2Vsc2UKK3N0YXRpYyB2b2lkIG1zbV9ncHVfY3Jhc2hzdGF0ZV9jYXB0dXJlKHN0cnVjdCBtc21f Z3B1ICpncHUsIGNoYXIgKmNvbW0sCisJCWNoYXIgKmNtZCkKK3sKK30KKyNlbmRpZgorCiAvKgog ICogSGFuZ2NoZWNrIGRldGVjdGlvbiBmb3IgbG9ja2VkIGdwdToKICAqLwpAQCAtMzU2LDYgKzQz MiwxMSBAQCBzdGF0aWMgdm9pZCByZWNvdmVyX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCiAJCQltc21fcmRfZHVtcF9zdWJtaXQocHJpdi0+aGFuZ3JkLCBzdWJtaXQsIE5VTEwpOwog CX0KIAorCS8qIFJlY29yZCB0aGUgY3Jhc2ggc3RhdGUgKi8KKwlwbV9ydW50aW1lX2dldF9zeW5j KCZncHUtPnBkZXYtPmRldik7CisJbXNtX2dwdV9jcmFzaHN0YXRlX2NhcHR1cmUoZ3B1LCBjb21t LCBjbWQpOworCXBtX3J1bnRpbWVfcHV0X3N5bmMoJmdwdS0+cGRldi0+ZGV2KTsKKwogCWtmcmVl KGNtZCk7CiAJa2ZyZWUoY29tbSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2dwdS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKaW5kZXggNDcwZjNiYjVm ODM0Li5lNjVmNTA3OTU0YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dw dS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oCkBAIC02NiwxMyArNjYsMTMg QEAgc3RydWN0IG1zbV9ncHVfZnVuY3MgewogI2lmZGVmIENPTkZJR19ERUJVR19GUwogCS8qIHNo b3cgR1BVIHN0YXR1cyBpbiBkZWJ1Z2ZzOiAqLwogCXZvaWQgKCpzaG93KShzdHJ1Y3QgbXNtX2dw dSAqZ3B1LCBzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUsCi0JCQlzdHJ1Y3Qgc2VxX2ZpbGUg Km0pOworCQkJc3RydWN0IGRybV9wcmludGVyICpwKTsKIAkvKiBmb3IgZ2VuZXJhdGlvbiBzcGVj aWZpYyBkZWJ1Z2ZzOiAqLwogCWludCAoKmRlYnVnZnNfaW5pdCkoc3RydWN0IG1zbV9ncHUgKmdw dSwgc3RydWN0IGRybV9taW5vciAqbWlub3IpOwogI2VuZGlmCiAJaW50ICgqZ3B1X2J1c3kpKHN0 cnVjdCBtc21fZ3B1ICpncHUsIHVpbnQ2NF90ICp2YWx1ZSk7CiAJc3RydWN0IG1zbV9ncHVfc3Rh dGUgKigqZ3B1X3N0YXRlX2dldCkoc3RydWN0IG1zbV9ncHUgKmdwdSk7Ci0Jdm9pZCAoKmdwdV9z dGF0ZV9wdXQpKHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSk7CisJaW50ICgqZ3B1X3N0YXRl X3B1dCkoc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlKTsKIH07CiAKIHN0cnVjdCBtc21fZ3B1 IHsKQEAgLTEzMyw2ICsxMzMsOCBAQCBzdHJ1Y3QgbXNtX2dwdSB7CiAJCXU2NCBidXN5X2N5Y2xl czsKIAkJa3RpbWVfdCB0aW1lOwogCX0gZGV2ZnJlcTsKKworCXN0cnVjdCBtc21fZ3B1X3N0YXRl ICpjcmFzaHN0YXRlOwogfTsKIAogLyogSXQgdHVybnMgb3V0IHRoYXQgYWxsIHRhcmdldHMgdXNl IHRoZSBzYW1lIHJpbmdidWZmZXIgc2l6ZSAqLwpAQCAtMTgwLDYgKzE4Miw3IEBAIHN0cnVjdCBt c21fZ3B1X3N1Ym1pdHF1ZXVlIHsKIH07CiAKIHN0cnVjdCBtc21fZ3B1X3N0YXRlIHsKKwlzdHJ1 Y3Qga3JlZiByZWY7CiAJc3RydWN0IHRpbWV2YWwgdGltZTsKIAogCXN0cnVjdCB7CkBAIC0xOTMs NiArMTk2LDkgQEAgc3RydWN0IG1zbV9ncHVfc3RhdGUgewogCXUzMiAqcmVnaXN0ZXJzOwogCiAJ dTMyIHJiYm1fc3RhdHVzOworCisJY2hhciAqY29tbTsKKwljaGFyICpjbWQ7CiB9OwogCiBzdGF0 aWMgaW5saW5lIHZvaWQgZ3B1X3dyaXRlKHN0cnVjdCBtc21fZ3B1ICpncHUsIHUzMiByZWcsIHUz MiBkYXRhKQpAQCAtMjc0LDQgKzI4MCwzMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbXNtX3N1Ym1p dHF1ZXVlX3B1dChzdHJ1Y3QgbXNtX2dwdV9zdWJtaXRxdWV1ZSAqcXVldWUpCiAJCWtyZWZfcHV0 KCZxdWV1ZS0+cmVmLCBtc21fc3VibWl0cXVldWVfZGVzdHJveSk7CiB9CiAKK3N0YXRpYyBpbmxp bmUgc3RydWN0IG1zbV9ncHVfc3RhdGUgKm1zbV9ncHVfY3Jhc2hzdGF0ZV9nZXQoc3RydWN0IG1z bV9ncHUgKmdwdSkKK3sKKwlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUgPSBOVUxMOworCisJ bXV0ZXhfbG9jaygmZ3B1LT5kZXYtPnN0cnVjdF9tdXRleCk7CisKKwlpZiAoZ3B1LT5jcmFzaHN0 YXRlKSB7CisJCWtyZWZfZ2V0KCZncHUtPmNyYXNoc3RhdGUtPnJlZik7CisJCXN0YXRlID0gZ3B1 LT5jcmFzaHN0YXRlOworCX0KKworCW11dGV4X3VubG9jaygmZ3B1LT5kZXYtPnN0cnVjdF9tdXRl eCk7CisKKwlyZXR1cm4gc3RhdGU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBtc21fZ3B1X2Ny YXNoc3RhdGVfcHV0KHN0cnVjdCBtc21fZ3B1ICpncHUpCit7CisJbXV0ZXhfbG9jaygmZ3B1LT5k ZXYtPnN0cnVjdF9tdXRleCk7CisKKwlpZiAoZ3B1LT5jcmFzaHN0YXRlKSB7CisJCWlmIChncHUt PmZ1bmNzLT5ncHVfc3RhdGVfcHV0KGdwdS0+Y3Jhc2hzdGF0ZSkpCisJCQlncHUtPmNyYXNoc3Rh dGUgPSBOVUxMOworCX0KKworCW11dGV4X3VubG9jaygmZ3B1LT5kZXYtPnN0cnVjdF9tdXRleCk7 Cit9CisKICNlbmRpZiAvKiBfX01TTV9HUFVfSF9fICovCi0tIAoyLjE3LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxp c3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=