From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 7/8] drm/i915: Show RING registers through debugfs Date: Tue, 04 Oct 2016 15:35:20 +0300 Message-ID: <87a8ek47hz.fsf@gaia.fi.intel.com> References: <20161003125246.17686-1-chris@chris-wilson.co.uk> <20161003125246.17686-7-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7315A6E633 for ; Tue, 4 Oct 2016 12:36:10 +0000 (UTC) In-Reply-To: <20161003125246.17686-7-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: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gS25vd2lu ZyB3aGVyZSB0aGUgUklOR3MgYXJlIHBvaW50aW5nIGlzIGV4dHJlbWVseSB1c2VmdWwgaW4gZGlh Z25vc2luZwo+IGlmIHRoZSBlbmdpbmVzIGFyZSBleGVjdXRpbmcgdGhlIHJpbmdidWZmZXJzIHlv dSBleHBlY3QgLSBhbmQgaWd0IG1heSBiZQo+IHN1cHByZXNzaW5nIHRoZSB1c3VhbCBtZXRob2Qg b2YgbG9va2luZyBpbiB0aGUgR1BVIGVycm9yIHN0YXRlLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IE1pa2EgS3VvcHBhbGEg PG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYyAgICAgfCAyMzAgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgIHwgIDMwICsrKysrCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAxNiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgICAyICsKPiAgNCBmaWxlcyBj aGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwgMTA4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCA0ZmI5ZDgyOTg4NGUuLjljOTVjZTczZjJhYSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTYzNSw2ICs2MzUsMjMg QEAgc3RhdGljIGludCBpOTE1X2dlbV9iYXRjaF9wb29sX2luZm8oc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICpkYXRhKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIHByaW50 X3JlcXVlc3Qoc3RydWN0IHNlcV9maWxlICptLAo+ICsJCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcnEsCj4gKwkJCSAgY29uc3QgY2hhciAqcHJlZml4KQo+ICt7Cj4gKwlzdHJ1Y3Qg cGlkICpwaWQgPSBycS0+Y3R4LT5waWQ7Cj4gKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7Cj4g Kwo+ICsJcmN1X3JlYWRfbG9jaygpOwo+ICsJdGFzayA9IHBpZCA/IHBpZF90YXNrKHBpZCwgUElE VFlQRV9QSUQpIDogTlVMTDsKPiArCXNlcV9wcmludGYobSwgIiVzJXggWyV4OiV4XSBAICVkOiAl cyBbJWRdXG4iLCBwcmVmaXgsCj4gKwkJICAgcnEtPmZlbmNlLnNlcW5vLCBycS0+Y3R4LT5od19p ZCwgcnEtPmZlbmNlLnNlcW5vLAo+ICsJCSAgIGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtIHJx LT5lbWl0dGVkX2ppZmZpZXMpLAo+ICsJCSAgIHRhc2sgPyB0YXNrLT5jb21tIDogIjx1bmtub3du PiIsCj4gKwkJICAgdGFzayA/IHRhc2stPnBpZCA6IC0xKTsKPiArCXJjdV9yZWFkX3VubG9jaygp Owo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGk5MTVfZ2VtX3JlcXVlc3RfaW5mbyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKPiBAQCAtNjU4LDE5ICs2NzUsOCBA QCBzdGF0aWMgaW50IGk5MTVfZ2VtX3JlcXVlc3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKmRhdGEpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlzZXFfcHJpbnRmKG0sICIlcyByZXF1 ZXN0czogJWRcbiIsIGVuZ2luZS0+bmFtZSwgY291bnQpOwo+IC0JCWxpc3RfZm9yX2VhY2hfZW50 cnkocmVxLCAmZW5naW5lLT5yZXF1ZXN0X2xpc3QsIGxpbmspIHsKPiAtCQkJc3RydWN0IHBpZCAq cGlkID0gcmVxLT5jdHgtPnBpZDsKPiAtCQkJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwo+IC0K PiAtCQkJcmN1X3JlYWRfbG9jaygpOwo+IC0JCQl0YXNrID0gcGlkID8gcGlkX3Rhc2socGlkLCBQ SURUWVBFX1BJRCkgOiBOVUxMOwo+IC0JCQlzZXFfcHJpbnRmKG0sICIgICAgJXggQCAlZDogJXMg WyVkXVxuIiwKPiAtCQkJCSAgIHJlcS0+ZmVuY2Uuc2Vxbm8sCj4gLQkJCQkgICAoaW50KSAoamlm ZmllcyAtIHJlcS0+ZW1pdHRlZF9qaWZmaWVzKSwKPiAtCQkJCSAgIHRhc2sgPyB0YXNrLT5jb21t IDogIjx1bmtub3duPiIsCj4gLQkJCQkgICB0YXNrID8gdGFzay0+cGlkIDogLTEpOwo+IC0JCQly Y3VfcmVhZF91bmxvY2soKTsKPiAtCQl9Cj4gKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXEsICZl bmdpbmUtPnJlcXVlc3RfbGlzdCwgbGluaykKPiArCQkJcHJpbnRfcmVxdWVzdChtLCByZXEsICIg ICAgIik7Cj4gIAo+ICAJCWFueSsrOwo+ICAJfQo+IEBAIC0yMDM2LDg0ICsyMDQyLDYgQEAgc3Rh dGljIGludCBpOTE1X2R1bXBfbHJjKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaTkxNV9leGVjbGlzdHMoc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Cj4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmU7Cj4gLQl1MzIgc3RhdHVzX3BvaW50ZXI7Cj4gLQl1OCByZWFkX3BvaW50ZXI7Cj4gLQl1 OCB3cml0ZV9wb2ludGVyOwo+IC0JdTMyIHN0YXR1czsKPiAtCXUzMiBjdHhfaWQ7Cj4gLQlzdHJ1 Y3QgbGlzdF9oZWFkICpjdXJzb3I7Cj4gLQlpbnQgaSwgcmV0Owo+IC0KPiAtCWlmICghaTkxNS5l bmFibGVfZXhlY2xpc3RzKSB7Cj4gLQkJc2VxX3B1dHMobSwgIkxvZ2ljYWwgUmluZyBDb250ZXh0 cyBhcmUgZGlzYWJsZWRcbiIpOwo+IC0JCXJldHVybiAwOwo+IC0JfQo+IC0KPiAtCXJldCA9IG11 dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IC0JaWYgKHJldCkK PiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsK PiAtCj4gLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewo+IC0JCXN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqaGVhZF9yZXEgPSBOVUxMOwo+IC0JCWludCBjb3VudCA9IDA7 Cj4gLQo+IC0JCXNlcV9wcmludGYobSwgIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwo+IC0KPiAtCQlz dGF0dXMgPSBJOTE1X1JFQUQoUklOR19FWEVDTElTVF9TVEFUVVNfTE8oZW5naW5lKSk7Cj4gLQkJ Y3R4X2lkID0gSTkxNV9SRUFEKFJJTkdfRVhFQ0xJU1RfU1RBVFVTX0hJKGVuZ2luZSkpOwo+IC0J CXNlcV9wcmludGYobSwgIlx0RXhlY2xpc3Qgc3RhdHVzOiAweCUwOFgsIGNvbnRleHQ6ICV1XG4i LAo+IC0JCQkgICBzdGF0dXMsIGN0eF9pZCk7Cj4gLQo+IC0JCXN0YXR1c19wb2ludGVyID0gSTkx NV9SRUFEKFJJTkdfQ09OVEVYVF9TVEFUVVNfUFRSKGVuZ2luZSkpOwo+IC0JCXNlcV9wcmludGYo bSwgIlx0U3RhdHVzIHBvaW50ZXI6IDB4JTA4WFxuIiwgc3RhdHVzX3BvaW50ZXIpOwo+IC0KPiAt CQlyZWFkX3BvaW50ZXIgPSBHRU44X0NTQl9SRUFEX1BUUihzdGF0dXNfcG9pbnRlcik7Cj4gLQkJ d3JpdGVfcG9pbnRlciA9IEdFTjhfQ1NCX1dSSVRFX1BUUihzdGF0dXNfcG9pbnRlcik7Cj4gLQkJ aWYgKHJlYWRfcG9pbnRlciA+IHdyaXRlX3BvaW50ZXIpCj4gLQkJCXdyaXRlX3BvaW50ZXIgKz0g R0VOOF9DU0JfRU5UUklFUzsKPiAtCQlzZXFfcHJpbnRmKG0sICJcdFJlYWQgcG9pbnRlcjogMHgl MDhYLCB3cml0ZSBwb2ludGVyIDB4JTA4WFxuIiwKPiAtCQkJICAgcmVhZF9wb2ludGVyLCB3cml0 ZV9wb2ludGVyKTsKPiAtCj4gLQkJZm9yIChpID0gMDsgaSA8IEdFTjhfQ1NCX0VOVFJJRVM7IGkr Kykgewo+IC0JCQlzdGF0dXMgPSBJOTE1X1JFQUQoUklOR19DT05URVhUX1NUQVRVU19CVUZfTE8o ZW5naW5lLCBpKSk7Cj4gLQkJCWN0eF9pZCA9IEk5MTVfUkVBRChSSU5HX0NPTlRFWFRfU1RBVFVT X0JVRl9ISShlbmdpbmUsIGkpKTsKPiAtCj4gLQkJCXNlcV9wcmludGYobSwgIlx0U3RhdHVzIGJ1 ZmZlciAlZDogMHglMDhYLCBjb250ZXh0OiAldVxuIiwKPiAtCQkJCSAgIGksIHN0YXR1cywgY3R4 X2lkKTsKPiAtCQl9Cj4gLQo+IC0JCXNwaW5fbG9ja19iaCgmZW5naW5lLT5leGVjbGlzdF9sb2Nr KTsKPiAtCQlsaXN0X2Zvcl9lYWNoKGN1cnNvciwgJmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUpCj4g LQkJCWNvdW50Kys7Cj4gLQkJaGVhZF9yZXEgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmVu Z2luZS0+ZXhlY2xpc3RfcXVldWUsCj4gLQkJCQkJCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QsCj4gLQkJCQkJCSAgICBleGVjbGlzdF9saW5rKTsKPiAtCQlzcGluX3VubG9ja19iaCgm ZW5naW5lLT5leGVjbGlzdF9sb2NrKTsKPiAtCj4gLQkJc2VxX3ByaW50ZihtLCAiXHQlZCByZXF1 ZXN0cyBpbiBxdWV1ZVxuIiwgY291bnQpOwo+IC0JCWlmIChoZWFkX3JlcSkgewo+IC0JCQlzZXFf cHJpbnRmKG0sICJcdEhlYWQgcmVxdWVzdCBjb250ZXh0OiAldVxuIiwKPiAtCQkJCSAgIGhlYWRf cmVxLT5jdHgtPmh3X2lkKTsKPiAtCQkJc2VxX3ByaW50ZihtLCAiXHRIZWFkIHJlcXVlc3QgdGFp bDogJXVcbiIsCj4gLQkJCQkgICBoZWFkX3JlcS0+dGFpbCk7Cj4gLQkJfQo+IC0KPiAtCQlzZXFf cHV0YyhtLCAnXG4nKTsKPiAtCX0KPiAtCj4gLQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJp dik7Cj4gLQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAtCj4gLQlyZXR1cm4g MDsKPiAtfQo+IC0KPiAgc3RhdGljIGNvbnN0IGNoYXIgKnN3aXp6bGVfc3RyaW5nKHVuc2lnbmVk IHN3aXp6bGUpCj4gIHsKPiAgCXN3aXRjaCAoc3dpenpsZSkgewo+IEBAIC0zMTM1LDYgKzMwNjMs MTI0IEBAIHN0YXRpYyBpbnQgaTkxNV9kaXNwbGF5X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICp1bnVzZWQpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiArc3RhdGljIGludCBpOTE1X2Vu Z2luZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gKwo+ICsJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIg PSAmZW5naW5lLT5icmVhZGNydW1iczsKPiArCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJxOwo+ICsJCXN0cnVjdCByYl9ub2RlICpyYjsKPiArCQl1NjQgYWRkcjsKPiArCQlpbnQgY291 bnQ7Cj4gKwo+ICsJCXNlcV9wcmludGYobSwgIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwo+ICsJCXNl cV9wcmludGYobSwgIlx0Y3VycmVudCBzZXFubyAleCwgbGFzdCAleCwgaGFuZ2NoZWNrICV4IFtz Y29yZSAlZF1cbiIsCj4gKwkJCSAgIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKSwKPiAr CQkJICAgZW5naW5lLT5sYXN0X3N1Ym1pdHRlZF9zZXFubywKPiArCQkJICAgZW5naW5lLT5oYW5n Y2hlY2suc2Vxbm8sCj4gKwkJCSAgIGVuZ2luZS0+aGFuZ2NoZWNrLnNjb3JlKTsKPiArCj4gKwkJ cmN1X3JlYWRfbG9jaygpOwo+ICsKPiArCQljb3VudCA9IDA7Cj4gKwkJbGlzdF9mb3JfZWFjaF9l bnRyeShycSwgJmVuZ2luZS0+cmVxdWVzdF9saXN0LCBsaW5rKQo+ICsJCQljb3VudCsrOwo+ICsJ CXNlcV9wcmludGYobSwgIlx0JWQgc3VibWl0dGVkIHJlcXVlc3RzXG4iLCBjb3VudCk7Cj4gKwo+ ICsJCWlmIChjb3VudCA+IDApIHsKPiArCQkJcnEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZlbmdpbmUt PnJlcXVlc3RfbGlzdCwKPiArCQkJCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qs IGxpbmspOwo+ICsJCQlwcmludF9yZXF1ZXN0KG0sIHJxLCAiXHRcdGZpcnN0ICAiKTsKPiArCj4g KwkJCXJxID0gbGlzdF9sYXN0X2VudHJ5KCZlbmdpbmUtPnJlcXVlc3RfbGlzdCwKPiArCQkJCQkg ICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCwgbGluayk7Cj4gKwkJCXByaW50X3JlcXVl c3QobSwgcnEsICJcdFx0bGFzdCAgICIpOwo+ICsJCX0KPiArCj4gKwkJcnEgPSBpOTE1X2dlbV9m aW5kX2FjdGl2ZV9yZXF1ZXN0KGVuZ2luZSk7Cj4gKwkJaWYgKHJxKSB7Cj4gKwkJCXByaW50X3Jl cXVlc3QobSwgcnEsICJcdFx0YWN0aXZlICIpOwo+ICsJCQlzZXFfcHJpbnRmKG0sCj4gKwkJCQkg ICAiXHRcdFtoZWFkICUwNHgsIHBvc3RmaXggJTA0eCwgdGFpbCAlMDR4XG4sIGJhdGNoIDB4JTA4 eF8lMDh4XSIsCj4gKwkJCQkgICBycS0+aGVhZCwgcnEtPnBvc3RmaXgsIHJxLT50YWlsLAo+ICsJ CQkJICAgcnEtPmJhdGNoID8gdXBwZXJfMzJfYml0cyhycS0+YmF0Y2gtPm5vZGUuc3RhcnQpIDog fjB1LAo+ICsJCQkJICAgcnEtPmJhdGNoID8gbG93ZXJfMzJfYml0cyhycS0+YmF0Y2gtPm5vZGUu c3RhcnQpIDogfjB1KTsKPiArCQl9Cj4gKwo+ICsJCXNlcV9wcmludGYobSwgIlx0UklOR19TVEFS VDogMHglMDh4IFsweCUwOHhdXG4iLAo+ICsJCQkgICBJOTE1X1JFQUQoUklOR19TVEFSVChlbmdp bmUtPm1taW9fYmFzZSkpLAo+ICsJCQkgICBycSA/IGk5MTVfZ2d0dF9vZmZzZXQocnEtPnJpbmct PnZtYSkgOiAwKTsKPiArCQlzZXFfcHJpbnRmKG0sICJcdFJJTkdfSEVBRDogIDB4JTA0eCBbMHgl MDR4XVxuIiwKPiArCQkJICAgSTkxNV9SRUFEKFJJTkdfSEVBRChlbmdpbmUtPm1taW9fYmFzZSkp ICYgSEVBRF9BRERSLAo+ICsJCQkgICBycSA/IHJxLT5yaW5nLT5oZWFkIDogMCk7Cj4gKwkJc2Vx X3ByaW50ZihtLCAiXHRSSU5HX1RBSUw6ICAweCUwNHggWzB4JTA0eF1cbiIsCj4gKwkJCSAgIEk5 MTVfUkVBRChSSU5HX1RBSUwoZW5naW5lLT5tbWlvX2Jhc2UpKSAmIFRBSUxfQUREUiwKPiArCQkJ ICAgcnEgPyBycS0+cmluZy0+dGFpbCA6IDApOwo+ICsJCXNlcV9wcmludGYobSwgIlx0UklOR19D VEw6ICAgMHglMDh4IFslc11cbiIsCj4gKwkJCSAgIEk5MTVfUkVBRChSSU5HX0NUTChlbmdpbmUt Pm1taW9fYmFzZSkpLAo+ICsJCQkgICBJOTE1X1JFQUQoUklOR19DVEwoZW5naW5lLT5tbWlvX2Jh c2UpKSAmIChSSU5HX1dBSVQgfCBSSU5HX1dBSVRfU0VNQVBIT1JFKSA/ICJ3YWl0aW5nIiA6ICIi KTsKPiArCj4gKwkJcmN1X3JlYWRfdW5sb2NrKCk7Cj4gKwo+ICsJCWFkZHIgPSBpbnRlbF9lbmdp bmVfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7Cj4gKwkJc2VxX3ByaW50ZihtLCAiXHRBQ1RIRDog IDB4JTA4eF8lMDh4XG4iLAo+ICsJCQkgICB1cHBlcl8zMl9iaXRzKGFkZHIpLCBsb3dlcl8zMl9i aXRzKGFkZHIpKTsKPiArCQlhZGRyID0gaW50ZWxfZW5naW5lX2dldF9sYXN0X2JhdGNoX2hlYWQo ZW5naW5lKTsKPiArCQlzZXFfcHJpbnRmKG0sICJcdEJCQUREUjogMHglMDh4XyUwOHhcbiIsCj4g KwkJCSAgIHVwcGVyXzMyX2JpdHMoYWRkciksIGxvd2VyXzMyX2JpdHMoYWRkcikpOwo+ICsKPiAr CQlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7Cj4gKwkJCXUzMiBwdHIsIHJlYWQsIHdyaXRl Owo+CgpPaywgaW4gaGVyZSBJIGFtIHRoaW5raW5nIHRoYXQgdGhlIHJlcXVlc3RzIGluIHBvcnRz IHdvdWxkIGJlIGludHJlc3RpbmcKYWxzby4gQnV0IGl0IHNlZW1zIGltcG9zc2libGUgdG8gc2Ft cGxlIHRoZSBwb3J0cyB3aXRob3V0IHRha2luZwpsb2Nrcy4gQW5kIHdlIGRvbid0IHdhbnQgdG8g Z28gdGhlcmUuCgpPbmUgb3B0aW9uIHdvdWxkIGJlIHRvIHN0b3JlIG9ubHkgdGhlIHJlcS0+c2Vx bm8gb2YgZWFjaCBwb3J0IGF3YXkgZHVyaW5nCmVsc3Agd3JpdGUuIFBlcmhhcHMgd2l0aCB0aGUg cmVzZXQgY291bnQgbnVtYmVyLiBUaGF0IHdvdWxkIGFsbG93CnVzIHRvIHNlZSB3aGF0IHdhcyB0 aGUgbGFzdCBodyBraWNrIGFuZCBpdCdzIHRpbWVsaW5lIHdydCB0byByZXNldAphbmQgdGhlIHJl cXVlc3QgbGlzdC4gVGhhdCB3b3VsZCBoYXZlIGEgc21hbGwgcGVyZiBpbXBhY3QgdGhvLgoKUmV2 aWV3ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgoKPiArCQkJ c2VxX3ByaW50ZihtLCAiXHRFeGVjbGlzdCBzdGF0dXM6IDB4JTA4eCAlMDh4XG4iLAo+ICsJCQkJ ICAgSTkxNV9SRUFEKFJJTkdfRVhFQ0xJU1RfU1RBVFVTX0xPKGVuZ2luZSkpLAo+ICsJCQkJICAg STkxNV9SRUFEKFJJTkdfRVhFQ0xJU1RfU1RBVFVTX0hJKGVuZ2luZSkpKTsKPiArCj4gKwkJCXB0 ciA9IEk5MTVfUkVBRChSSU5HX0NPTlRFWFRfU1RBVFVTX1BUUihlbmdpbmUpKTsKPiArCQkJcmVh ZCA9IEdFTjhfQ1NCX1JFQURfUFRSKHB0cik7Cj4gKwkJCXdyaXRlID0gR0VOOF9DU0JfV1JJVEVf UFRSKHB0cik7Cj4gKwkJCXNlcV9wcmludGYobSwgIlx0RXhlY2xpc3QgQ1NCIHJlYWQgJWQsIHdy aXRlICVkXG4iLAo+ICsJCQkJICAgcmVhZCwgd3JpdGUpOwo+ICsJCQlpZiAocmVhZCA+PSBHRU44 X0NTQl9FTlRSSUVTKQo+ICsJCQkJcmVhZCA9IDA7Cj4gKwkJCWlmICh3cml0ZSA+PSBHRU44X0NT Ql9FTlRSSUVTKQo+ICsJCQkJd3JpdGUgPSAwOwo+ICsJCQlpZiAocmVhZCA+IHdyaXRlKQo+ICsJ CQkJd3JpdGUgKz0gR0VOOF9DU0JfRU5UUklFUzsKPiArCQkJd2hpbGUgKHJlYWQgPCB3cml0ZSkg ewo+ICsJCQkJdW5zaWduZWQgaW50IGlkeCA9ICsrcmVhZCAlIEdFTjhfQ1NCX0VOVFJJRVM7Cj4g Kwo+ICsJCQkJc2VxX3ByaW50ZihtLCAiXHRFeGVjbGlzdCBDU0JbJWRdOiAweCUwOHgsIGNvbnRl eHQ6ICVkXG4iLAo+ICsJCQkJCSAgIGlkeCwKPiArCQkJCQkgICBJOTE1X1JFQUQoUklOR19DT05U RVhUX1NUQVRVU19CVUZfTE8oZW5naW5lLCBpZHgpKSwKPiArCQkJCQkgICBJOTE1X1JFQUQoUklO R19DT05URVhUX1NUQVRVU19CVUZfSEkoZW5naW5lLCBpZHgpKSk7Cj4gKwkJCX0KPiArCQl9IGVs c2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPiA2KSB7Cj4gKwkJCXNlcV9wcmludGYobSwgIlx0 UFBfRElSX0JBU0U6IDB4JTA4eFxuIiwKPiArCQkJCSAgIEk5MTVfUkVBRChSSU5HX1BQX0RJUl9C QVNFKGVuZ2luZSkpKTsKPiArCQkJc2VxX3ByaW50ZihtLCAiXHRQUF9ESVJfQkFTRV9SRUFEOiAw eCUwOHhcbiIsCj4gKwkJCQkgICBJOTE1X1JFQUQoUklOR19QUF9ESVJfQkFTRV9SRUFEKGVuZ2lu ZSkpKTsKPiArCQkJc2VxX3ByaW50ZihtLCAiXHRQUF9ESVJfRENMVjogMHglMDh4XG4iLAo+ICsJ CQkJICAgSTkxNV9SRUFEKFJJTkdfUFBfRElSX0RDTFYoZW5naW5lKSkpOwo+ICsJCX0KPiArCj4g KwkJc3Bpbl9sb2NrKCZiLT5sb2NrKTsKPiArCQlmb3IgKHJiID0gcmJfZmlyc3QoJmItPndhaXRl cnMpOyByYjsgcmIgPSByYl9uZXh0KHJiKSkgewo+ICsJCQlzdHJ1Y3QgaW50ZWxfd2FpdCAqdyA9 IGNvbnRhaW5lcl9vZihyYiwgdHlwZW9mKCp3KSwgbm9kZSk7Cj4gKwo+ICsJCQlzZXFfcHJpbnRm KG0sICJcdCVzIFslZF0gd2FpdGluZyBmb3IgJXhcbiIsCj4gKwkJCQkgICB3LT50c2stPmNvbW0s IHctPnRzay0+cGlkLCB3LT5zZXFubyk7Cj4gKwkJfQo+ICsJCXNwaW5fdW5sb2NrKCZiLT5sb2Nr KTsKPiArCj4gKwkJc2VxX3B1dHMobSwgIlxuIik7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g K30KPiArCj4gIHN0YXRpYyBpbnQgaTkxNV9zZW1hcGhvcmVfc3RhdHVzKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqdW51c2VkKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Cj4gQEAgLTQ0NDEsNyArNDQ4Nyw2IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBpOTE1X2RlYnVnZnNfbGlzdFtdID0g ewo+ICAJeyJpOTE1X2dlbV9mcmFtZWJ1ZmZlciIsIGk5MTVfZ2VtX2ZyYW1lYnVmZmVyX2luZm8s IDB9LAo+ICAJeyJpOTE1X2NvbnRleHRfc3RhdHVzIiwgaTkxNV9jb250ZXh0X3N0YXR1cywgMH0s Cj4gIAl7Imk5MTVfZHVtcF9scmMiLCBpOTE1X2R1bXBfbHJjLCAwfSwKPiAtCXsiaTkxNV9leGVj bGlzdHMiLCBpOTE1X2V4ZWNsaXN0cywgMH0sCj4gIAl7Imk5MTVfZm9yY2V3YWtlX2RvbWFpbnMi LCBpOTE1X2ZvcmNld2FrZV9kb21haW5zLCAwfSwKPiAgCXsiaTkxNV9zd2l6emxlX2luZm8iLCBp OTE1X3N3aXp6bGVfaW5mbywgMH0sCj4gIAl7Imk5MTVfcHBndHRfaW5mbyIsIGk5MTVfcHBndHRf aW5mbywgMH0sCj4gQEAgLTQ0NTMsNiArNDQ5OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2luZm9fbGlzdCBpOTE1X2RlYnVnZnNfbGlzdFtdID0gewo+ICAJeyJpOTE1X3Bvd2VyX2RvbWFp bl9pbmZvIiwgaTkxNV9wb3dlcl9kb21haW5faW5mbywgMH0sCj4gIAl7Imk5MTVfZG1jX2luZm8i LCBpOTE1X2RtY19pbmZvLCAwfSwKPiAgCXsiaTkxNV9kaXNwbGF5X2luZm8iLCBpOTE1X2Rpc3Bs YXlfaW5mbywgMH0sCj4gKwl7Imk5MTVfZW5naW5lX2luZm8iLCBpOTE1X2VuZ2luZV9pbmZvLCAw fSwKPiAgCXsiaTkxNV9zZW1hcGhvcmVfc3RhdHVzIiwgaTkxNV9zZW1hcGhvcmVfc3RhdHVzLCAw fSwKPiAgCXsiaTkxNV9zaGFyZWRfZHBsbHNfaW5mbyIsIGk5MTVfc2hhcmVkX2RwbGxzX2luZm8s IDB9LAo+ICAJeyJpOTE1X2RwX21zdF9pbmZvIiwgaTkxNV9kcF9tc3RfaW5mbywgMH0sCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCBlNDA1ZjEwODAyOTYuLmQw MGVjODA1ZjkzZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdp bmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4g QEAgLTMzNCwzICszMzQsMzMgQEAgdm9pZCBpbnRlbF9lbmdpbmVfY2xlYW51cF9jb21tb24oc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJaW50ZWxfZW5naW5lX2NsZWFudXBfY21k X3BhcnNlcihlbmdpbmUpOwo+ICAJaTkxNV9nZW1fYmF0Y2hfcG9vbF9maW5pKCZlbmdpbmUtPmJh dGNoX3Bvb2wpOwo+ICB9Cj4gKwo+ICt1NjQgaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPiArCXU2NCBhY3RoZDsKPiArCj4gKwlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQo+ICsJCWFjdGhkID0gSTkxNV9SRUFENjRfMngz MihSSU5HX0FDVEhEKGVuZ2luZS0+bW1pb19iYXNlKSwKPiArCQkJCQkgUklOR19BQ1RIRF9VRFco ZW5naW5lLT5tbWlvX2Jhc2UpKTsKPiArCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g NCkKPiArCQlhY3RoZCA9IEk5MTVfUkVBRChSSU5HX0FDVEhEKGVuZ2luZS0+bW1pb19iYXNlKSk7 Cj4gKwllbHNlCj4gKwkJYWN0aGQgPSBJOTE1X1JFQUQoQUNUSEQpOwo+ICsKPiArCXJldHVybiBh Y3RoZDsKPiArfQo+ICsKPiArdTY0IGludGVsX2VuZ2luZV9nZXRfbGFzdF9iYXRjaF9oZWFkKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owo+ICsJdTY0IGJiYWRkcjsKPiArCj4gKwlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQo+ICsJCWJiYWRkciA9IEk5MTVfUkVBRDY0XzJ4 MzIoUklOR19CQkFERFIoZW5naW5lLT5tbWlvX2Jhc2UpLAo+ICsJCQkJCSAgUklOR19CQkFERFJf VURXKGVuZ2luZS0+bW1pb19iYXNlKSk7Cj4gKwllbHNlCj4gKwkJYmJhZGRyID0gSTkxNV9SRUFE KFJJTkdfQkJBRERSKGVuZ2luZS0+bW1pb19iYXNlKSk7Cj4gKwo+ICsJcmV0dXJuIGJiYWRkcjsK PiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCAyNmFh NGM1ZTI2OGYuLjg3ZjRhMjY2NmM0ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMKPiBAQCAtNDA1LDIyICs0MDUsNiBAQCBnZW44X3JlbmRlcl9yaW5nX2ZsdXNo KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCB1MzIgbW9kZSkKPiAgCXJldHVybiBn ZW44X2VtaXRfcGlwZV9jb250cm9sKHJlcSwgZmxhZ3MsIHNjcmF0Y2hfYWRkcik7Cj4gIH0KPiAg Cj4gLXU2NCBpbnRlbF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZW5naW5lLT5pOTE1Owo+IC0JdTY0IGFjdGhkOwo+IC0KPiAtCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDgpCj4gLQkJYWN0aGQgPSBJOTE1X1JFQUQ2NF8yeDMyKFJJTkdfQUNUSEQoZW5naW5l LT5tbWlvX2Jhc2UpLAo+IC0JCQkJCSBSSU5HX0FDVEhEX1VEVyhlbmdpbmUtPm1taW9fYmFzZSkp Owo+IC0JZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0KQo+IC0JCWFjdGhkID0gSTkx NV9SRUFEKFJJTkdfQUNUSEQoZW5naW5lLT5tbWlvX2Jhc2UpKTsKPiAtCWVsc2UKPiAtCQlhY3Ro ZCA9IEk5MTVfUkVBRChBQ1RIRCk7Cj4gLQo+IC0JcmV0dXJuIGFjdGhkOwo+IC19Cj4gLQo+ICBz dGF0aWMgdm9pZCByaW5nX3NldHVwX3BoeXNfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBlbmdpbmUtPmk5MTU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ IGluZGV4IDY2NTUzYmRiMGE0Ny4uNDk4OTMxZjBiMWYxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC01NDEsNiArNTQxLDggQEAgaW50IGludGVsX2lu aXRfYmx0X3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gIGlu dCBpbnRlbF9pbml0X3ZlYm94X3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSk7Cj4gIAo+ICB1NjQgaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+ICt1NjQgaW50ZWxfZW5naW5lX2dldF9sYXN0X2JhdGNo X2hlYWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiArCj4gIHN0YXRpYyBpbmxp bmUgdTMyIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICB7Cj4gIAlyZXR1cm4gaW50ZWxfcmVhZF9zdGF0dXNfcGFnZShlbmdpbmUsIEk5MTVf R0VNX0hXU19JTkRFWCk7Cj4gLS0gCj4gMi45LjMKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==