From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sharat Masetty Subject: Re: [PATCH 06/10] drm/msm/gpu: Capture the GPU state on a GPU hang Date: Wed, 23 May 2018 16:50:15 +0530 Message-ID: <389bc572-8445-dd6e-9c16-2a27600b0243@codeaurora.org> References: <20180417224441.32355-1-jcrouse@codeaurora.org> <20180417224441.32355-7-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180417224441.32355-7-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Jordan Crouse , 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 CgpPbiA0LzE4LzIwMTggNDoxNCBBTSwgSm9yZGFuIENyb3VzZSB3cm90ZToKPiBDYXB0dXJlIHRo ZSBHUFUgc3RhdGUgb24gYSBHUFUgaGFuZyBhbmQgc3RvcmUgaXQgZm9yIGxhdGVyIHBsYXliYWNr Cj4gdmlhIHRoZSBkZXZjb3JlZHVtcCBmYWNpbGl0eS4gT25seSBvbmUgY3Jhc2ggc3RhdGUgaXMg c3RvcmVkIGF0IGEKPiB0aW1lIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGZpcnN0IGhhbmcg aXMgdXN1YWxseSB0aGUgbW9zdAo+IGludGVyZXN0aW5nLiBUaGUgZXhpc3RpbmcgY3Jhc2ggc3Rh dGUgY2FuIGJlIGNsZWFyZWQgYWZ0ZXIgY2FwdHVyaW5nCj4gaXQgYW5kIHRoZW4gYSBuZXcgb25l IHdpbGwgYmUgY2FwdHVyZWQgb24gdGhlIG5leHQgaGFuZy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBK b3JkYW4gQ3JvdXNlIDxqY3JvdXNlQGNvZGVhdXJvcmEub3JnPgo+IC0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL21zbS9LY29uZmlnICAgICAgICAgICAgIHwgIDEgKwo+ICAgZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYTN4eF9ncHUuYyAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2E0eHhfZ3B1LmMgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVu by9hNXh4X2dwdS5jICAgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRy ZW5vX2dwdS5jIHwgMzYgKysrKysrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5v L2FkcmVub19ncHUuaCB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kZWJ1Z2Zz LmMgICAgICAgfCAgNSArLQo+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMgICAgICAg ICAgIHwgODMgKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZ3B1LmggICAgICAgICAgIHwgMzggKysrKysrKysrKy0KPiAgIDkgZmlsZXMgY2hhbmdl ZCwgMTUzIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWcK PiBpbmRleCAzOGNiZGU5NzFiNDguLjg0M2E5ZDQwYzA1ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL0tjb25maWcKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWcK PiBAQCAtMTIsNiArMTIsNyBAQCBjb25maWcgRFJNX01TTQo+ICAgCXNlbGVjdCBTSE1FTQo+ICAg CXNlbGVjdCBUTVBGUwo+ICAgCXNlbGVjdCBRQ09NX1NDTQo+ICsJc2VsZWN0IFdBTlRfREVWX0NP UkVEVU1QCj4gICAJc2VsZWN0IFNORF9TT0NfSERNSV9DT0RFQyBpZiBTTkRfU09DCj4gICAJc2Vs ZWN0IFNZTkNfRklMRQo+ICAgCXNlbGVjdCBQTV9PUFAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9hZHJlbm8vYTN4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5v L2EzeHhfZ3B1LmMKPiBpbmRleCA0Y2ZmZWMyYjZhZGMuLmZjNTAyZTQxMjEzMiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9hZHJlbm8vYTN4eF9ncHUuYwo+IEBAIC00NTQsNyArNDU0LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBhZHJlbm9fZ3B1X2Z1bmNzIGZ1bmNzID0gewo+ICAgCQkuYWN0aXZl X3JpbmcgPSBhZHJlbm9fYWN0aXZlX3JpbmcsCj4gICAJCS5pcnEgPSBhM3h4X2lycSwKPiAgIAkJ LmRlc3Ryb3kgPSBhM3h4X2Rlc3Ryb3ksCj4gLSNpZmRlZiBDT05GSUdfREVCVUdfRlMKPiArI2lm IGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKSB8fCBkZWZpbmVkKENPTkZJR19ERVZfQ09SRURVTVAp Cj4gICAJCS5zaG93ID0gYWRyZW5vX3Nob3csCj4gICAjZW5kaWYKPiAgIAkJLmdwdV9zdGF0ZV9n ZXQgPSBhM3h4X2dwdV9zdGF0ZV9nZXQsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vYWRyZW5vL2E0eHhfZ3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4X2dw dS5jCj4gaW5kZXggOTVmMDhjMjJlOGQ3Li44MTI5Y2YwMzdkYjEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMKPiBAQCAtNTQwLDcgKzU0MCw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgYWRyZW5vX2dwdV9mdW5jcyBmdW5jcyA9IHsKPiAgIAkJLmFjdGl2ZV9yaW5nID0g YWRyZW5vX2FjdGl2ZV9yaW5nLAo+ICAgCQkuaXJxID0gYTR4eF9pcnEsCj4gICAJCS5kZXN0cm95 ID0gYTR4eF9kZXN0cm95LAo+IC0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4gKyNpZiBkZWZpbmVk KENPTkZJR19ERUJVR19GUykgfHwgZGVmaW5lZChDT05GSUdfREVWX0NPUkVEVU1QKQo+ICAgCQku c2hvdyA9IGFkcmVub19zaG93LAo+ICAgI2VuZGlmCj4gICAJCS5ncHVfc3RhdGVfZ2V0ID0gYTR4 eF9ncHVfc3RhdGVfZ2V0LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVu by9hNXh4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYwo+IGlu ZGV4IGIwOTEwYmJlNTE5MC4uODM2YTFkZjFmMjU3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Fk cmVuby9hNXh4X2dwdS5jCj4gQEAgLTEyNDMsOCArMTI0MywxMCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGFkcmVub19ncHVfZnVuY3MgZnVuY3MgPSB7Cj4gICAJCS5hY3RpdmVfcmluZyA9IGE1eHhf YWN0aXZlX3JpbmcsCj4gICAJCS5pcnEgPSBhNXh4X2lycSwKPiAgIAkJLmRlc3Ryb3kgPSBhNXh4 X2Rlc3Ryb3ksCj4gLSNpZmRlZiBDT05GSUdfREVCVUdfRlMKPiArI2lmIGRlZmluZWQoQ09ORklH X0RFQlVHX0ZTKSB8fCBkZWZpbmVkKENPTkZJR19ERVZfQ09SRURVTVApCj4gICAJCS5zaG93ID0g YWRyZW5vX3Nob3csCj4gKyNlbmRpZgo+ICsjaWYgZGVmaW5lZChDT05GSUdfREVCVUdfRlMpCj4g ICAJCS5kZWJ1Z2ZzX2luaXQgPSBhNXh4X2RlYnVnZnNfaW5pdCwKPiAgICNlbmRpZgo+ICAgCQku Z3B1X2J1c3kgPSBhNXh4X2dwdV9idXN5LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJl bm9fZ3B1LmMKPiBpbmRleCA1MjJkNDdhYzM2ZTEuLmQ0NmFlMmVkZTYxNiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKPiBAQCAtMzc4LDYgKzM3OCw4IEBAIHN0 cnVjdCBtc21fZ3B1X3N0YXRlICphZHJlbm9fZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAq Z3B1KQo+ICAgCWlmICghc3RhdGUpCj4gICAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAg Cj4gKwlrcmVmX2luaXQoJnN0YXRlLT5yZWYpOwo+ICsKPiAgIAlkb19nZXR0aW1lb2ZkYXkoJnN0 YXRlLT50aW1lKTsKPiAgIAo+ICAgCWZvciAoaSA9IDA7IGkgPCBncHUtPm5yX3JpbmdzOyBpKysp IHsKPiBAQCAtNDEzLDE4ICs0MTUsMjggQEAgc3RydWN0IG1zbV9ncHVfc3RhdGUgKmFkcmVub19n cHVfc3RhdGVfZ2V0KHN0cnVjdCBtc21fZ3B1ICpncHUpCj4gICAJcmV0dXJuIHN0YXRlOwo+ICAg fQo+ICAgCj4gLXZvaWQgYWRyZW5vX2dwdV9zdGF0ZV9wdXQoc3RydWN0IG1zbV9ncHVfc3RhdGUg KnN0YXRlKQo+ICtzdGF0aWMgdm9pZCBhZHJlbm9fZ3B1X3N0YXRlX2Rlc3Ryb3koc3RydWN0IGty ZWYgKmtyZWYpCj4gICB7Cj4gLQlpZiAoSVNfRVJSX09SX05VTEwoc3RhdGUpKQo+IC0JCXJldHVy bjsKPiArCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSA9IGNvbnRhaW5lcl9vZihrcmVmLAo+ ICsJCXN0cnVjdCBtc21fZ3B1X3N0YXRlLCByZWYpOwo+ICAgCj4gKwlrZnJlZShzdGF0ZS0+Y29t bSk7Cj4gKwlrZnJlZShzdGF0ZS0+Y21kKTsKPiAgIAlrZnJlZShzdGF0ZS0+cmVnaXN0ZXJzKTsK PiAgIAlrZnJlZShzdGF0ZSk7Cj4gICB9Cj4gICAKPiAtI2lmZGVmIENPTkZJR19ERUJVR19GUwo+ ICtpbnQgYWRyZW5vX2dwdV9zdGF0ZV9wdXQoc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlKQo+ ICt7Cj4gKwlpZiAoSVNfRVJSX09SX05VTEwoc3RhdGUpKQo+ICsJCXJldHVybiAxOwo+ICsKPiAr CXJldHVybiBrcmVmX3B1dCgmc3RhdGUtPnJlZiwgYWRyZW5vX2dwdV9zdGF0ZV9kZXN0cm95KTsK PiArfQo+ICsKPiArI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKSB8fCBkZWZpbmVkKENPTkZJ R19ERVZfQ09SRURVTVApCj4gICB2b2lkIGFkcmVub19zaG93KHN0cnVjdCBtc21fZ3B1ICpncHUs IHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSwKPiAtCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4g KwkJc3RydWN0IGRybV9wcmludGVyICpwKQo+ICAgewo+ICAgCXN0cnVjdCBhZHJlbm9fZ3B1ICph ZHJlbm9fZ3B1ID0gdG9fYWRyZW5vX2dwdShncHUpOwo+ICAgCWludCBpOwo+IEBAIC00MzIsMjMg KzQ0NCwyMyBAQCB2b2lkIGFkcmVub19zaG93KHN0cnVjdCBtc21fZ3B1ICpncHUsIHN0cnVjdCBt c21fZ3B1X3N0YXRlICpzdGF0ZSwKPiAgIAlpZiAoSVNfRVJSX09SX05VTEwoc3RhdGUpKQo+ICAg CQlyZXR1cm47Cj4gICAKPiAtCXNlcV9wcmludGYobSwgInN0YXR1czogICAlMDh4XG4iLCBzdGF0 ZS0+cmJibV9zdGF0dXMpOwo+IC0Jc2VxX3ByaW50ZihtLCAicmV2aXNpb246ICVkICglZC4lZC4l ZC4lZClcbiIsCj4gKwlkcm1fcHJpbnRmKHAsICJzdGF0dXM6ICAgJTA4eFxuIiwgc3RhdGUtPnJi Ym1fc3RhdHVzKTsKPiArCWRybV9wcmludGYocCwgInJldmlzaW9uOiAlZCAoJWQuJWQuJWQuJWQp XG4iLAo+ICAgCQkJYWRyZW5vX2dwdS0+aW5mby0+cmV2biwgYWRyZW5vX2dwdS0+cmV2LmNvcmUs Cj4gICAJCQlhZHJlbm9fZ3B1LT5yZXYubWFqb3IsIGFkcmVub19ncHUtPnJldi5taW5vciwKPiAg IAkJCWFkcmVub19ncHUtPnJldi5wYXRjaGlkKTsKPiAgIAo+ICAgCWZvciAoaSA9IDA7IGkgPCBn cHUtPm5yX3JpbmdzOyBpKyspIHsKPiAtCQlzZXFfcHJpbnRmKG0sICJyYiAlZDogZmVuY2U6ICAg ICVkLyVkXG4iLCBpLAo+ICsJCWRybV9wcmludGYocCwgInJiICVkOiBmZW5jZTogICAgJWQvJWRc biIsIGksCj4gICAJCQlzdGF0ZS0+cmluZ1tpXS5mZW5jZSwgc3RhdGUtPnJpbmdbaV0uc2Vxbm8p Owo+ICAgCj4gLQkJc2VxX3ByaW50ZihtLCAiICAgICAgcnB0cjogICAgICVkXG4iLCBzdGF0ZS0+ cmluZ1tpXS5ycHRyKTsKPiAtCQlzZXFfcHJpbnRmKG0sICJyYiB3cHRyOiAgJWRcbiIsIHN0YXRl LT5yaW5nW2ldLndwdHIpOwo+ICsJCWRybV9wcmludGYocCwgIiAgICAgIHJwdHI6ICAgICAlZFxu Iiwgc3RhdGUtPnJpbmdbaV0ucnB0cik7Cj4gKwkJZHJtX3ByaW50ZihwLCAicmIgd3B0cjogICVk XG4iLCBzdGF0ZS0+cmluZ1tpXS53cHRyKTsKPiAgIAl9Cj4gICAKPiAtCXNlcV9wcmludGYobSwg IklPOnJlZ2lvbiAlcyAwMDAwMDAwMCAwMDAyMDAwMFxuIiwgZ3B1LT5uYW1lKTsKPiArCWRybV9w cmludGYocCwgIklPOnJlZ2lvbiAlcyAwMDAwMDAwMCAwMDAyMDAwMFxuIiwgZ3B1LT5uYW1lKTsK PiAgIAlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPm5yX3JlZ2lzdGVyczsgaSsrKSB7Cj4gLQkJc2Vx X3ByaW50ZihtLCAiSU86UiAlMDh4ICUwOHhcbiIsCj4gKwkJZHJtX3ByaW50ZihwLCAiSU86UiAl MDh4ICUwOHhcbiIsCj4gICAJCQlzdGF0ZS0+cmVnaXN0ZXJzW2kgKiAyXSA8PCAyLAo+ICAgCQkJ c3RhdGUtPnJlZ2lzdGVyc1soaSAqIDIpICsgMV0pOwo+ICAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oIGIvZHJpdmVycy9ncHUvZHJtL21z bS9hZHJlbm8vYWRyZW5vX2dwdS5oCj4gaW5kZXggODE1YWU5OGM3ZmQxLi4wNzdiZjExNDljMGIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oCj4gQEAgLTIxNiw3 ICsyMTYsNyBAQCB2b2lkIGFkcmVub19mbHVzaChzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3Qg bXNtX3JpbmdidWZmZXIgKnJpbmcpOwo+ICAgYm9vbCBhZHJlbm9faWRsZShzdHJ1Y3QgbXNtX2dw dSAqZ3B1LCBzdHJ1Y3QgbXNtX3JpbmdidWZmZXIgKnJpbmcpOwo+ICAgI2lmZGVmIENPTkZJR19E RUJVR19GUwo+ICAgdm9pZCBhZHJlbm9fc2hvdyhzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3Qg bXNtX2dwdV9zdGF0ZSAqc3RhdGUsCj4gLQkJc3RydWN0IHNlcV9maWxlICptKTsKPiArCQlzdHJ1 Y3QgZHJtX3ByaW50ZXIgKnApOwo+ICAgI2VuZGlmCj4gICB2b2lkIGFkcmVub19kdW1wX2luZm8o c3RydWN0IG1zbV9ncHUgKmdwdSk7Cj4gICB2b2lkIGFkcmVub19kdW1wKHN0cnVjdCBtc21fZ3B1 ICpncHUpOwo+IEBAIC0yMjksNyArMjI5LDcgQEAgaW50IGFkcmVub19ncHVfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAgdm9pZCBh ZHJlbm9fZ3B1X2NsZWFudXAoc3RydWN0IGFkcmVub19ncHUgKmdwdSk7Cj4gICAKPiAgIHN0cnVj dCBtc21fZ3B1X3N0YXRlICphZHJlbm9fZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAqZ3B1 KTsKPiAtdm9pZCBhZHJlbm9fZ3B1X3N0YXRlX3B1dChzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3Rh dGUpOwo+ICtpbnQgYWRyZW5vX2dwdV9zdGF0ZV9wdXQoc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0 YXRlKTsKPiAgIAo+ICAgLyogcmluZ2J1ZmZlciBoZWxwZXJzICh0aGUgcGFydHMgdGhhdCBhcmUg YWRyZW5vIHNwZWNpZmljKSAqLwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2RlYnVnZnMuYwo+IGlu ZGV4IGVhMjBlYjBhZDc0Ny4uOWFlOWUwYTEyYjNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rl YnVnZnMuYwo+IEBAIC0yOSw2ICsyOSw3IEBAIHN0cnVjdCBtc21fZ3B1X3Nob3dfcHJpdiB7Cj4g ICAKPiAgIHN0YXRpYyBpbnQgbXNtX2dwdV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAq YXJnKQo+ICAgewo+ICsJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRl cihtKTsKPiAgIAlzdHJ1Y3QgbXNtX2dwdV9zaG93X3ByaXYgKnNob3dfcHJpdiA9IG0tPnByaXZh dGU7Cj4gICAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IHNob3dfcHJpdi0+ZGV2LT5k ZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgbXNtX2dwdSAqZ3B1ID0gcHJpdi0+Z3B1Owo+IEBAIC0z OCw4ICszOSw4IEBAIHN0YXRpYyBpbnQgbXNtX2dwdV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwg dm9pZCAqYXJnKQo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4gICAKPiAtCXNlcV9w cmludGYobSwgIiVzIFN0YXR1czpcbiIsIGdwdS0+bmFtZSk7Cj4gLQlncHUtPmZ1bmNzLT5zaG93 KGdwdSwgc2hvd19wcml2LT5zdGF0ZSwgbSk7Cj4gKwlkcm1fcHJpbnRmKCZwLCAiJXMgU3RhdHVz OlxuIiwgZ3B1LT5uYW1lKTsKPiArCWdwdS0+ZnVuY3MtPnNob3coZ3B1LCBzaG93X3ByaXYtPnN0 YXRlLCAmcCk7Cj4gICAKPiAgIAltdXRleF91bmxvY2soJnNob3dfcHJpdi0+ZGV2LT5zdHJ1Y3Rf bXV0ZXgpOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMKPiBpbmRleCAyY2EzNTQwNDcyNTAuLmYz NmI0MTVlMTIzYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCj4gQEAgLTIwLDEwICsyMCwxMSBA QAo+ICAgI2luY2x1ZGUgIm1zbV9tbXUuaCIKPiAgICNpbmNsdWRlICJtc21fZmVuY2UuaCIKPiAg IAo+ICsjaW5jbHVkZSA8Z2VuZXJhdGVkL3V0c3JlbGVhc2UuaD4KPiAgICNpbmNsdWRlIDxsaW51 eC9zdHJpbmdfaGVscGVycy5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L3BtX29wcC5oPgo+ICAgI2lu Y2x1ZGUgPGxpbnV4L2RldmZyZXEuaD4KPiAtCj4gKyNpbmNsdWRlIDxsaW51eC9kZXZjb3JlZHVt cC5oPgo+ICAgCj4gICAvKgo+ICAgICogUG93ZXIgTWFuYWdlbWVudDoKPiBAQCAtMjczLDYgKzI3 NCw4MyBAQCBpbnQgbXNtX2dwdV9od19pbml0KHN0cnVjdCBtc21fZ3B1ICpncHUpCj4gICAJcmV0 dXJuIHJldDsKPiAgIH0KPiAgIAo+ICsjaWZkZWYgQ09ORklHX0RFVl9DT1JFRFVNUAo+ICtzdGF0 aWMgc3NpemVfdCBtc21fZ3B1X2RldmNvcmVkdW1wX3JlYWQoY2hhciAqYnVmZmVyLCBsb2ZmX3Qg b2Zmc2V0LAo+ICsJCXNpemVfdCBjb3VudCwgdm9pZCAqZGF0YSwgc2l6ZV90IGRhdGFsZW4pCj4g K3sKPiArCXN0cnVjdCBtc21fZ3B1ICpncHUgPSBkYXRhOwo+ICsJc3RydWN0IGRybV9wcmludF9p dGVyYXRvciBpdGVyOwo+ICsJc3RydWN0IGRybV9wcmludGVyIHA7Cj4gKwlzdHJ1Y3QgbXNtX2dw dV9zdGF0ZSAqc3RhdGU7Cj4gKwo+ICsJc3RhdGUgPSBtc21fZ3B1X2NyYXNoc3RhdGVfZ2V0KGdw dSk7Cj4gKwlpZiAoIXN0YXRlKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWl0ZXIuZGF0YSA9IGJ1 ZmZlcjsKPiArCWl0ZXIub2Zmc2V0ID0gMDsKPiArCWl0ZXIuc3RhcnQgPSBvZmZzZXQ7Cj4gKwlp dGVyLnJlbWFpbiA9IGNvdW50OwoKSSB0aGluayBJIHVuZGVyc3Rvb2QgaG93IHRoaXMgd29ya3Mu IFNvIHRoaXMgcmVhZCBjb3VsZCBnZXQgY2FsbGVkIG1hbnkgCnRpbWVzIGJlZm9yZSB3ZSBhcmUg ZG9uZSByZWFkaW5nIGFuZCBldmVyeSB0aW1lIHdlIHN0YXJ0IGZyb20gc2NyYXRjaC4KV2h5IGRv bid0IHdlIGNvcHkgZXZlcnl0aGluZyB0byBhIGJ1ZmZlciBiZWZvcmUgaGFuZChyaWdodCB3aGVu IHdlIApjYXB0dXJlIHRoZSBjcmFzaCBzdGF0ZSkgYW5kIHRoZW4gdXNlIHRoZSBidWZmZXIgaGVy ZSBmb3IgY29weWluZyB0byB0aGUgCnVzZXI/IFdlIGRvIGdldCB0aGUgb2Zmc2V0IHRvIHRoZSBi dWZmZXIgYXMgaW5wdXQuIFRoaXMgd2lsbCBwcm9iYWJseSAKc2F2ZSB1cyBmcm9tIHN0YXJ0aW5n IGZyb20gdGhlIGZpcnN0IHByaW50IGV2ZXJ5IHRpbWU/Cj4gKwo+ICsJcCA9IGRybV9jb3JlZHVt cF9wcmludGVyKCZpdGVyKTsKPiArCj4gKwlkcm1fcHJpbnRmKCZwLCAiLS0tXG4iKTsKPiArCWRy bV9wcmludGYoJnAsICJrZXJuZWw6ICIgVVRTX1JFTEVBU0UgIlxuIik7Cj4gKwlkcm1fcHJpbnRm KCZwLCAibW9kdWxlOiAiIEtCVUlMRF9NT0ROQU1FICJcbiIpOwo+ICsJZHJtX3ByaW50ZigmcCwg InRpbWU6ICVsZC4lbGRcbiIsCj4gKwkJc3RhdGUtPnRpbWUudHZfc2VjLCBzdGF0ZS0+dGltZS50 dl91c2VjKTsKPiArCWlmIChzdGF0ZS0+Y29tbSkKPiArCQlkcm1fcHJpbnRmKCZwLCAiY29tbTog JXNcbiIsIHN0YXRlLT5jb21tKTsKPiArCWlmIChzdGF0ZS0+Y21kKQo+ICsJCWRybV9wcmludGYo JnAsICJjbWRsaW5lOiAlc1xuIiwgc3RhdGUtPmNtZCk7Cj4gKwo+ICsJZ3B1LT5mdW5jcy0+c2hv dyhncHUsIHN0YXRlLCAmcCk7Cj4gKwo+ICsJbXNtX2dwdV9jcmFzaHN0YXRlX3B1dChncHUpOwo+ ICsKPiArCXJldHVybiBjb3VudCAtIGl0ZXIucmVtYWluOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBtc21fZ3B1X2RldmNvcmVkdW1wX2ZyZWUodm9pZCAqZGF0YSkKPiArewo+ICsJc3RydWN0IG1z bV9ncHUgKmdwdSA9IGRhdGE7Cj4gKwo+ICsJbXNtX2dwdV9jcmFzaHN0YXRlX3B1dChncHUpOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBtc21fZ3B1X2NyYXNoc3RhdGVfY2FwdHVyZShzdHJ1Y3Qg bXNtX2dwdSAqZ3B1LCBjaGFyICpjb21tLAo+ICsJCWNoYXIgKmNtZCkKPiArewo+ICsJc3RydWN0 IG1zbV9ncHVfc3RhdGUgKnN0YXRlOwo+ICsKPiArCS8qIE9ubHkgc2F2ZSBvbmUgY3Jhc2ggc3Rh dGUgYXQgYSBhIHRpbWUgKi8KcmVtb3ZlIGV4dHJhICdhJwo+ICsJaWYgKGdwdS0+Y3Jhc2hzdGF0 ZSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJc3RhdGUgPSBncHUtPmZ1bmNzLT5ncHVfc3RhdGVfZ2V0 KGdwdSk7CkdQVSBtaWdodCBlbnRlciBzbHVtYmVyIGJ5IHRoaXMgdGltZSwgc28gd2UgbWF5IGhh dmUgdG8gZ2V0L3B1dCBzeW5jIHJ1biAKdGltZSBwbSBvcHMgaGVyZT8KPiArCWlmIChJU19FUlJf T1JfTlVMTChzdGF0ZSkpCj4gKwkJcmV0dXJuOwo+ICsKPiArCS8qIEZpbGwgaW4gdGhlIGFkZGl0 aW9uYWwgY3Jhc2ggc3RhdGUgaW5mb3JtYXRpb24gKi8KPiArCXN0YXRlLT5jb21tID0ga3N0cmR1 cChjb21tLCBHRlBfS0VSTkVMKTsKPiArCXN0YXRlLT5jbWQgPSBrc3RyZHVwKGNtZCwgR0ZQX0tF Uk5FTCk7Cj4gKwo+ICsJa3JlZl9pbml0KCZzdGF0ZS0+cmVmKTsKVGhpcyBpcyBub3QgbmVlZGVk LCBhZHJlbm9fZ3B1X3N0YXRlX2dldCgpIHRha2VzIGNhcmUgb2YgdGhpcwo+ICsKPiArCS8qIFNl dCB0aGUgYWN0aXZlIGNyYXNoIHN0YXRlIHRvIGJlIGR1bXBlZCBvbiBmYWlsdXJlICovCj4gKwln cHUtPmNyYXNoc3RhdGUgPSBzdGF0ZTsKPiArCj4gKwkvKiBGSVhNRTogUmVsZWFzZSB0aGUgY3Jh c2hzdGF0ZSBpZiB0aGlzIGVycm9ycyBvdXQ/ICovCj4gKwlkZXZfY29yZWR1bXBtKGdwdS0+ZGV2 LT5kZXYsIFRISVNfTU9EVUxFLCBncHUsIDAsIEdGUF9LRVJORUwsCj4gKwkJbXNtX2dwdV9kZXZj b3JlZHVtcF9yZWFkLCBtc21fZ3B1X2RldmNvcmVkdW1wX2ZyZWUpOwo+ICt9Cj4gKyNlbHNlCj4g K3N0YXRpYyB2b2lkIG1zbV9ncHVfY3Jhc2hzdGF0ZV9jYXB0dXJlKHN0cnVjdCBtc21fZ3B1ICpn cHUsIGNoYXIgKmNvbW0sCj4gKwkJY2hhciAqY21kKQo+ICt7Cj4gK30KPiArI2VuZGlmCj4gKwo+ ICAgLyoKPiAgICAqIEhhbmdjaGVjayBkZXRlY3Rpb24gZm9yIGxvY2tlZCBncHU6Cj4gICAgKi8K PiBAQCAtMzU2LDYgKzQzNCw5IEBAIHN0YXRpYyB2b2lkIHJlY292ZXJfd29ya2VyKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKPiAgIAkJCW1zbV9yZF9kdW1wX3N1Ym1pdChwcml2LT5oYW5ncmQs IHN1Ym1pdCwgTlVMTCk7Cj4gICAJfQo+ICAgCj4gKwkvKiBSZWNvcmQgdGhlIGNyYXNoIHN0YXRl ICovCj4gKwltc21fZ3B1X2NyYXNoc3RhdGVfY2FwdHVyZShncHUsIGNvbW0sIGNtZCk7Cj4gKwo+ ICAgCWtmcmVlKGNtZCk7Cj4gICAJa2ZyZWUoY29tbSk7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUu aAo+IGluZGV4IDQ3MGYzYmI1ZjgzNC4uZTY1ZjUwNzk1NGMwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f Z3B1LmgKPiBAQCAtNjYsMTMgKzY2LDEzIEBAIHN0cnVjdCBtc21fZ3B1X2Z1bmNzIHsKPiAgICNp ZmRlZiBDT05GSUdfREVCVUdfRlMKPiAgIAkvKiBzaG93IEdQVSBzdGF0dXMgaW4gZGVidWdmczog Ki8KPiAgIAl2b2lkICgqc2hvdykoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9ncHVf c3RhdGUgKnN0YXRlLAo+IC0JCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwo+ICsJCQlzdHJ1Y3QgZHJt X3ByaW50ZXIgKnApOwo+ICAgCS8qIGZvciBnZW5lcmF0aW9uIHNwZWNpZmljIGRlYnVnZnM6ICov Cj4gICAJaW50ICgqZGVidWdmc19pbml0KShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgZHJt X21pbm9yICptaW5vcik7Cj4gICAjZW5kaWYKPiAgIAlpbnQgKCpncHVfYnVzeSkoc3RydWN0IG1z bV9ncHUgKmdwdSwgdWludDY0X3QgKnZhbHVlKTsKPiAgIAlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAq KCpncHVfc3RhdGVfZ2V0KShzdHJ1Y3QgbXNtX2dwdSAqZ3B1KTsKPiAtCXZvaWQgKCpncHVfc3Rh dGVfcHV0KShzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUpOwo+ICsJaW50ICgqZ3B1X3N0YXRl X3B1dCkoc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlKTsKPiAgIH07Cj4gICAKPiAgIHN0cnVj dCBtc21fZ3B1IHsKPiBAQCAtMTMzLDYgKzEzMyw4IEBAIHN0cnVjdCBtc21fZ3B1IHsKPiAgIAkJ dTY0IGJ1c3lfY3ljbGVzOwo+ICAgCQlrdGltZV90IHRpbWU7Cj4gICAJfSBkZXZmcmVxOwo+ICsK PiArCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpjcmFzaHN0YXRlOwo+ICAgfTsKPiAgIAo+ICAgLyog SXQgdHVybnMgb3V0IHRoYXQgYWxsIHRhcmdldHMgdXNlIHRoZSBzYW1lIHJpbmdidWZmZXIgc2l6 ZSAqLwo+IEBAIC0xODAsNiArMTgyLDcgQEAgc3RydWN0IG1zbV9ncHVfc3VibWl0cXVldWUgewo+ ICAgfTsKPiAgIAo+ICAgc3RydWN0IG1zbV9ncHVfc3RhdGUgewo+ICsJc3RydWN0IGtyZWYgcmVm Owo+ICAgCXN0cnVjdCB0aW1ldmFsIHRpbWU7Cj4gICAKPiAgIAlzdHJ1Y3Qgewo+IEBAIC0xOTMs NiArMTk2LDkgQEAgc3RydWN0IG1zbV9ncHVfc3RhdGUgewo+ICAgCXUzMiAqcmVnaXN0ZXJzOwo+ ICAgCj4gICAJdTMyIHJiYm1fc3RhdHVzOwo+ICsKPiArCWNoYXIgKmNvbW07Cj4gKwljaGFyICpj bWQ7Cj4gICB9Owo+ICAgCj4gICBzdGF0aWMgaW5saW5lIHZvaWQgZ3B1X3dyaXRlKHN0cnVjdCBt c21fZ3B1ICpncHUsIHUzMiByZWcsIHUzMiBkYXRhKQo+IEBAIC0yNzQsNCArMjgwLDMyIEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBtc21fc3VibWl0cXVldWVfcHV0KHN0cnVjdCBtc21fZ3B1X3N1Ym1p dHF1ZXVlICpxdWV1ZSkKPiAgIAkJa3JlZl9wdXQoJnF1ZXVlLT5yZWYsIG1zbV9zdWJtaXRxdWV1 ZV9kZXN0cm95KTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBtc21fZ3B1X3N0 YXRlICptc21fZ3B1X2NyYXNoc3RhdGVfZ2V0KHN0cnVjdCBtc21fZ3B1ICpncHUpCj4gK3sKPiAr CXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSA9IE5VTEw7Cj4gKwo+ICsJbXV0ZXhfbG9jaygm Z3B1LT5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwo+ICsJaWYgKGdwdS0+Y3Jhc2hzdGF0ZSkgewo+ ICsJCWtyZWZfZ2V0KCZncHUtPmNyYXNoc3RhdGUtPnJlZik7Cj4gKwkJc3RhdGUgPSBncHUtPmNy YXNoc3RhdGU7Cj4gKwl9Cj4gKwo+ICsJbXV0ZXhfdW5sb2NrKCZncHUtPmRldi0+c3RydWN0X211 dGV4KTsKPiArCj4gKwlyZXR1cm4gc3RhdGU7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9p ZCBtc21fZ3B1X2NyYXNoc3RhdGVfcHV0KHN0cnVjdCBtc21fZ3B1ICpncHUpCj4gK3sKPiArCW11 dGV4X2xvY2soJmdwdS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsKPiArCWlmIChncHUtPmNyYXNo c3RhdGUpIHsKPiArCQlpZiAoZ3B1LT5mdW5jcy0+Z3B1X3N0YXRlX3B1dChncHUtPmNyYXNoc3Rh dGUpKQo+ICsJCQlncHUtPmNyYXNoc3RhdGUgPSBOVUxMOwo+ICsJfQo+ICsKPiArCW11dGV4X3Vu bG9jaygmZ3B1LT5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gK30KPiArCj4gICAjZW5kaWYgLyogX19N U01fR1BVX0hfXyAqLwo+IAoKLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5j LiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCkxpbnV4IEZvdW5kYXRpb24g Q29sbGFib3JhdGl2ZSBQcm9qZWN0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ZyZWVkcmVubwo=