From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: Re: [RFC 5/8] drm/i915: split out uncore_mmio_debug Date: Thu, 6 Jun 2019 14:58:22 -0700 Message-ID: References: <20190606215218.34486-1-daniele.ceraolospurio@intel.com> <20190606215218.34486-6-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 9BFEE89842 for ; Thu, 6 Jun 2019 21:58:36 +0000 (UTC) In-Reply-To: <20190606215218.34486-6-daniele.ceraolospurio@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org CgpPbiA2LzYvMTkgMjo1MiBQTSwgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyB3cm90ZToKPiBNdWx0 aXBsZSB1bmNvcmUgc3RydWN0dXJlcyB3aWxsIHNoYXJlIHRoZSBkZWJ1ZyBpbmZyYXN0cnVjdHVy ZSwgc28KPiBtb3ZlIGl0IHRvIGEgY29tbW9uIHBsYWNlIGFuZCBhZGQgZXh0cmEgbG9ja2luZyBh cm91bmQgaXQuCj4gCj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFu aWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMgICAgIHwgIDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCAgICAgfCAgMSArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyB8 IDY2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF91bmNvcmUuaCB8IDEwICsrKystCj4gICA0IGZpbGVzIGNoYW5nZWQsIDU4IGluc2Vy dGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IGlu ZGV4IDkwOTQ3MzZhZjVkYS4uOGZkZDY2OGViN2M3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCj4gQEAgLTg5Nyw2ICs4OTcsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfZWFy bHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCj4gICAJc3Bpbl9sb2Nr X2luaXQoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gICAJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2 LT5ncHVfZXJyb3IubG9jayk7Cj4gKwlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPm1taW9fZGVi dWcubG9jayk7CgpUaGlzIHNob3VsZCBiZSBpbnRlbF91bmNvcmVfbW1pb19kZWJ1Z19pbml0X2Vh cmx5KCkgYW5kIGRvbmUgYmVmb3JlIAppbnRlbF91bmNvcmVfaW5pdF9lYXJseSwgSSBmb3Jnb3Qg dG8gc3F1YXNoIHRoZSBmaXggaW4uCgpEYW5pZWxlCgoKPiAgIAltdXRleF9pbml0KCZkZXZfcHJp di0+YmFja2xpZ2h0X2xvY2spOwo+ICAgCj4gICAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPnNiX2xv Y2spOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGEwNTM5YjgzN2RmNS4uNTUyMjEz MmEyYWQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTEzOTgsNiArMTM5OCw3 IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiAgIAlyZXNvdXJjZV9zaXplX3Qgc3RvbGVu X3VzYWJsZV9zaXplOwkvKiBUb3RhbCBzaXplIG1pbnVzIHJlc2VydmVkIHJhbmdlcyAqLwo+ICAg Cj4gICAJc3RydWN0IGludGVsX3VuY29yZSB1bmNvcmU7Cj4gKwlzdHJ1Y3QgaW50ZWxfdW5jb3Jl X21taW9fZGVidWcgbW1pb19kZWJ1ZzsKPiAgIAo+ICAgCXN0cnVjdCBpOTE1X3ZpcnR1YWxfZ3B1 IHZncHU7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5j b3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+IGluZGV4IDdlYmVh MDAyMDdhNi4uOGU0MjQ3NmVhNGE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3VuY29yZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3Jl LmMKPiBAQCAtMzQsNiArMzQsMTMgQEAKPiAgIAo+ICAgI2RlZmluZSBfX3Jhd19wb3N0aW5nX3Jl YWQoLi4uKSAoKHZvaWQpX19yYXdfdW5jb3JlX3JlYWQzMihfX1ZBX0FSR1NfXykpCj4gICAKPiAr dm9pZAo+ICtpbnRlbF91bmNvcmVfbW1pb19kZWJ1Z19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91 bmNvcmVfbW1pb19kZWJ1ZyAqbW1pb19kZWJ1ZykKPiArewo+ICsJc3Bpbl9sb2NrX2luaXQoJm1t aW9fZGVidWctPmxvY2spOwo+ICsJbW1pb19kZWJ1Zy0+dW5jbGFpbWVkX21taW9fY2hlY2sgPSAx Owo+ICt9Cj4gKwo+ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBmb3JjZXdha2VfZG9tYWlu X25hbWVzW10gPSB7Cj4gICAJInJlbmRlciIsCj4gICAJImJsaXR0ZXIiLAo+IEBAIC00NzMsNiAr NDgwLDggQEAgY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVu Y29yZSkKPiAgIHsKPiAgIAlib29sIHJldCA9IGZhbHNlOwo+ICAgCj4gKwlsb2NrZGVwX2Fzc2Vy dF9oZWxkKCZ1bmNvcmUtPmRlYnVnLT5sb2NrKTsKPiArCj4gICAJaWYgKGludGVsX3VuY29yZV9o YXNfZnBnYV9kYmdfdW5jbGFpbWVkKHVuY29yZSkpCj4gICAJCXJldCB8PSBmcGdhX2NoZWNrX2Zv cl91bmNsYWltZWRfbW1pbyh1bmNvcmUpOwo+ICAgCj4gQEAgLTQ4OSw3ICs0OTgsNyBAQCBzdGF0 aWMgdm9pZCBfX2ludGVsX3VuY29yZV9lYXJseV9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfdW5jb3Jl ICp1bmNvcmUsCj4gICAJCQkJCSAgdW5zaWduZWQgaW50IHJlc3RvcmVfZm9yY2V3YWtlKQo+ICAg ewo+ICAgCS8qIGNsZWFyIG91dCB1bmNsYWltZWQgcmVnIGRldGVjdGlvbiBiaXQgKi8KPiAtCWlm IChjaGVja19mb3JfdW5jbGFpbWVkX21taW8odW5jb3JlKSkKPiArCWlmIChpbnRlbF91bmNvcmVf dW5jbGFpbWVkX21taW8odW5jb3JlKSkKPiAgIAkJRFJNX0RFQlVHKCJ1bmNsYWltZWQgbW1pbyBk ZXRlY3RlZCBvbiB1bmNvcmUgaW5pdCwgY2xlYXJpbmdcbiIpOwo+ICAgCj4gICAJLyogV2FEaXNh YmxlU2hhZG93UmVnRm9yQ3BkOmNodiAqLwo+IEBAIC01OTUsMTggKzYwNCwyMCBAQCB2b2lkIGlu dGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKPiAg IHZvaWQgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV91c2VyX2dldChzdHJ1Y3QgaW50ZWxfdW5jb3Jl ICp1bmNvcmUpCj4gICB7Cj4gICAJc3Bpbl9sb2NrX2lycSgmdW5jb3JlLT5sb2NrKTsKPiArCXNw aW5fbG9ja19pcnEoJnVuY29yZS0+ZGVidWctPmxvY2spOwo+ICAgCWlmICghdW5jb3JlLT51c2Vy X2ZvcmNld2FrZS5jb3VudCsrKSB7Cj4gICAJCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0X19s b2NrZWQodW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKPiAgIAo+ICAgCQkvKiBTYXZlIGFuZCBkaXNh YmxlIG1taW8gZGVidWdnaW5nIGZvciB0aGUgdXNlciBieXBhc3MgKi8KPiAgIAkJdW5jb3JlLT51 c2VyX2ZvcmNld2FrZS5zYXZlZF9tbWlvX2NoZWNrID0KPiAtCQkJdW5jb3JlLT51bmNsYWltZWRf bW1pb19jaGVjazsKPiArCQkJdW5jb3JlLT5kZWJ1Zy0+dW5jbGFpbWVkX21taW9fY2hlY2s7Cj4g ICAJCXVuY29yZS0+dXNlcl9mb3JjZXdha2Uuc2F2ZWRfbW1pb19kZWJ1ZyA9Cj4gICAJCQlpOTE1 X21vZHBhcmFtcy5tbWlvX2RlYnVnOwo+ICAgCj4gLQkJdW5jb3JlLT51bmNsYWltZWRfbW1pb19j aGVjayA9IDA7Cj4gKwkJdW5jb3JlLT5kZWJ1Zy0+dW5jbGFpbWVkX21taW9fY2hlY2sgPSAwOwo+ ICAgCQlpOTE1X21vZHBhcmFtcy5tbWlvX2RlYnVnID0gMDsKPiAgIAl9Cj4gKwlzcGluX3VubG9j a19pcnEoJnVuY29yZS0+ZGVidWctPmxvY2spOwo+ICAgCXNwaW5fdW5sb2NrX2lycSgmdW5jb3Jl LT5sb2NrKTsKPiAgIH0KPiAgIAo+IEBAIC02MjAsMTggKzYzMSwyMCBAQCB2b2lkIGludGVsX3Vu Y29yZV9mb3JjZXdha2VfdXNlcl9nZXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ICAg dm9pZCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3VzZXJfcHV0KHN0cnVjdCBpbnRlbF91bmNvcmUg KnVuY29yZSkKPiAgIHsKPiAgIAlzcGluX2xvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwo+ICsJc3Bp bl9sb2NrX2lycSgmdW5jb3JlLT5kZWJ1Zy0+bG9jayk7Cj4gICAJaWYgKCEtLXVuY29yZS0+dXNl cl9mb3JjZXdha2UuY291bnQpIHsKPiAtCQlpZiAoaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlv KHVuY29yZSkpCj4gKwkJaWYgKGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyh1bmNvcmUpKQo+ICAg CQkJZGV2X2luZm8odW5jb3JlX3RvX2k5MTUodW5jb3JlKS0+ZHJtLmRldiwKPiAgIAkJCQkgIklu dmFsaWQgbW1pbyBkZXRlY3RlZCBkdXJpbmcgdXNlciBhY2Nlc3NcbiIpOwo+ICAgCj4gLQkJdW5j b3JlLT51bmNsYWltZWRfbW1pb19jaGVjayA9Cj4gKwkJdW5jb3JlLT5kZWJ1Zy0+dW5jbGFpbWVk X21taW9fY2hlY2sgPQo+ICAgCQkJdW5jb3JlLT51c2VyX2ZvcmNld2FrZS5zYXZlZF9tbWlvX2No ZWNrOwo+ICAgCQlpOTE1X21vZHBhcmFtcy5tbWlvX2RlYnVnID0KPiAgIAkJCXVuY29yZS0+dXNl cl9mb3JjZXdha2Uuc2F2ZWRfbW1pb19kZWJ1ZzsKPiAgIAo+ICAgCQlpbnRlbF91bmNvcmVfZm9y Y2V3YWtlX3B1dF9fbG9ja2VkKHVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7Cj4gICAJfQo+ICsJc3Bp bl91bmxvY2tfaXJxKCZ1bmNvcmUtPmRlYnVnLT5sb2NrKTsKPiAgIAlzcGluX3VubG9ja19pcnEo JnVuY29yZS0+bG9jayk7Cj4gICB9Cj4gICAKPiBAQCAtMTA0NCwxMiArMTA1NywxOSBAQCBzdGF0 aWMgaW5saW5lIHZvaWQKPiAgIHVuY2xhaW1lZF9yZWdfZGVidWcoc3RydWN0IGludGVsX3VuY29y ZSAqdW5jb3JlLAo+ICAgCQkgICAgY29uc3QgaTkxNV9yZWdfdCByZWcsCj4gICAJCSAgICBjb25z dCBib29sIHJlYWQsCj4gLQkJICAgIGNvbnN0IGJvb2wgYmVmb3JlKQo+ICsJCSAgICBjb25zdCBi b29sIGJlZm9yZSwKPiArCQkgICAgdW5zaWduZWQgbG9uZyAqaXJxZmxhZ3MpCj4gICB7Cj4gICAJ aWYgKGxpa2VseSghaTkxNV9tb2RwYXJhbXMubW1pb19kZWJ1ZykpCj4gICAJCXJldHVybjsKPiAg IAo+ICsJaWYgKGJlZm9yZSkKPiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmdW5jb3JlLT5kZWJ1Zy0+ bG9jaywgKmlycWZsYWdzKTsKPiArCj4gICAJX191bmNsYWltZWRfcmVnX2RlYnVnKHVuY29yZSwg cmVnLCByZWFkLCBiZWZvcmUpOwo+ICsKPiArCWlmICghYmVmb3JlKQo+ICsJCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnVuY29yZS0+ZGVidWctPmxvY2ssICppcnFmbGFncyk7Cj4gICB9Cj4gICAK PiAgICNkZWZpbmUgR0VOMl9SRUFEX0hFQURFUih4KSBcCj4gQEAgLTEwOTUsMTMgKzExMTUsMTQg QEAgX19nZW4yX3JlYWQoNjQpCj4gICAjZGVmaW5lIEdFTjZfUkVBRF9IRUFERVIoeCkgXAo+ICAg CXUzMiBvZmZzZXQgPSBpOTE1X21taW9fcmVnX29mZnNldChyZWcpOyBcCj4gICAJdW5zaWduZWQg bG9uZyBpcnFmbGFnczsgXAo+ICsJdW5zaWduZWQgbG9uZyBkZWJ1Z19pcnFmbGFnczsgXAo+ICAg CXUjI3ggdmFsID0gMDsgXAo+ICAgCV9fYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHVuY29yZS0+ cnBtKTsgXAo+ICAgCXNwaW5fbG9ja19pcnFzYXZlKCZ1bmNvcmUtPmxvY2ssIGlycWZsYWdzKTsg XAo+IC0JdW5jbGFpbWVkX3JlZ19kZWJ1Zyh1bmNvcmUsIHJlZywgdHJ1ZSwgdHJ1ZSkKPiArCXVu Y2xhaW1lZF9yZWdfZGVidWcodW5jb3JlLCByZWcsIHRydWUsIHRydWUsICZkZWJ1Z19pcnFmbGFn cykKPiAgIAo+ICAgI2RlZmluZSBHRU42X1JFQURfRk9PVEVSIFwKPiAtCXVuY2xhaW1lZF9yZWdf ZGVidWcodW5jb3JlLCByZWcsIHRydWUsIGZhbHNlKTsgXAo+ICsJdW5jbGFpbWVkX3JlZ19kZWJ1 Zyh1bmNvcmUsIHJlZywgdHJ1ZSwgZmFsc2UsICZkZWJ1Z19pcnFmbGFncyk7IFwKPiAgIAlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZ1bmNvcmUtPmxvY2ssIGlycWZsYWdzKTsgXAo+ICAgCXRyYWNl X2k5MTVfcmVnX3J3KGZhbHNlLCByZWcsIHZhbCwgc2l6ZW9mKHZhbCksIHRyYWNlKTsgXAo+ICAg CXJldHVybiB2YWwKPiBAQCAtMTIwNCwxMyArMTIyNSwxNCBAQCBfX2dlbjJfd3JpdGUoMzIpCj4g ICAjZGVmaW5lIEdFTjZfV1JJVEVfSEVBREVSIFwKPiAgIAl1MzIgb2Zmc2V0ID0gaTkxNV9tbWlv X3JlZ19vZmZzZXQocmVnKTsgXAo+ICAgCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7IFwKPiArCXVu c2lnbmVkIGxvbmcgZGVidWdfaXJxZmxhZ3M7IFwKPiAgIAl0cmFjZV9pOTE1X3JlZ19ydyh0cnVl LCByZWcsIHZhbCwgc2l6ZW9mKHZhbCksIHRyYWNlKTsgXAo+ICAgCV9fYXNzZXJ0X3JwbV93YWtl bG9ja19oZWxkKHVuY29yZS0+cnBtKTsgXAo+ICAgCXNwaW5fbG9ja19pcnFzYXZlKCZ1bmNvcmUt PmxvY2ssIGlycWZsYWdzKTsgXAo+IC0JdW5jbGFpbWVkX3JlZ19kZWJ1Zyh1bmNvcmUsIHJlZywg ZmFsc2UsIHRydWUpCj4gKwl1bmNsYWltZWRfcmVnX2RlYnVnKHVuY29yZSwgcmVnLCBmYWxzZSwg dHJ1ZSwgJmRlYnVnX2lycWZsYWdzKQo+ICAgCj4gICAjZGVmaW5lIEdFTjZfV1JJVEVfRk9PVEVS IFwKPiAtCXVuY2xhaW1lZF9yZWdfZGVidWcodW5jb3JlLCByZWcsIGZhbHNlLCBmYWxzZSk7IFwK PiArCXVuY2xhaW1lZF9yZWdfZGVidWcodW5jb3JlLCByZWcsIGZhbHNlLCBmYWxzZSwgJmRlYnVn X2lycWZsYWdzKTsgXAo+ICAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnVuY29yZS0+bG9jaywg aXJxZmxhZ3MpCj4gICAKPiAgICNkZWZpbmUgX19nZW42X3dyaXRlKHgpIFwKPiBAQCAtMTU3NCw2 ICsxNTk2LDkgQEAgaW50IGludGVsX3VuY29yZV9pbml0X21taW8oc3RydWN0IGludGVsX3VuY29y ZSAqdW5jb3JlKQo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdW5jb3JlX3Rv X2k5MTUodW5jb3JlKTsKPiAgIAlpbnQgcmV0Owo+ICAgCj4gKwl1bmNvcmUtPnJwbSA9ICZpOTE1 LT5ydW50aW1lX3BtOwo+ICsJdW5jb3JlLT5kZWJ1ZyA9ICZpOTE1LT5tbWlvX2RlYnVnOwo+ICsK PiAgIAlyZXQgPSB1bmNvcmVfbW1pb19zZXR1cCh1bmNvcmUpOwo+ICAgCWlmIChyZXQpCj4gICAJ CXJldHVybiByZXQ7Cj4gQEAgLTE1OTEsMTIgKzE2MTYsOSBAQCBpbnQgaW50ZWxfdW5jb3JlX2lu aXRfbW1pbyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCj4gICAKPiAgIAlfX2ludGVsX3Vu Y29yZV9lYXJseV9zYW5pdGl6ZSh1bmNvcmUsIDApOwo+ICAgCj4gLQl1bmNvcmUtPnVuY2xhaW1l ZF9tbWlvX2NoZWNrID0gMTsKPiAgIAl1bmNvcmUtPnBtaWNfYnVzX2FjY2Vzc19uYi5ub3RpZmll cl9jYWxsID0KPiAgIAkJaTkxNV9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXI7Cj4gICAKPiAtCXVu Y29yZS0+cnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07Cj4gLQo+ICAgCWlmICghaW50ZWxfdW5jb3Jl X2hhc19mb3JjZXdha2UodW5jb3JlKSkgewo+ICAgCQlpZiAoSVNfR0VOKGk5MTUsIDUpKSB7Cj4g ICAJCQlBU1NJR05fV1JJVEVfTU1JT19WRlVOQ1NfTk9fRlcodW5jb3JlLCBnZW41KTsKPiBAQCAt MTg1OCw3ICsxODgwLDEzIEBAIGludCBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKHN0cnVjdCBp bnRlbF91bmNvcmUgKnVuY29yZSwKPiAgIAo+ICAgYm9vbCBpbnRlbF91bmNvcmVfdW5jbGFpbWVk X21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ICAgewo+IC0JcmV0dXJuIGNoZWNr X2Zvcl91bmNsYWltZWRfbW1pbyh1bmNvcmUpOwo+ICsJYm9vbCByZXQ7Cj4gKwo+ICsJc3Bpbl9s b2NrX2lycSgmdW5jb3JlLT5kZWJ1Zy0+bG9jayk7Cj4gKwlyZXQgPSBjaGVja19mb3JfdW5jbGFp bWVkX21taW8odW5jb3JlKTsKPiArCXNwaW5fdW5sb2NrX2lycSgmdW5jb3JlLT5kZWJ1Zy0+bG9j ayk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+ICAgYm9vbAo+IEBAIC0xODY2LDI0 ICsxODk0LDI0IEBAIGludGVsX3VuY29yZV9hcm1fdW5jbGFpbWVkX21taW9fZGV0ZWN0aW9uKHN0 cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiAgIHsKPiAgIAlib29sIHJldCA9IGZhbHNlOwo+ ICAgCj4gLQlzcGluX2xvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwo+ICsJc3Bpbl9sb2NrX2lycSgm dW5jb3JlLT5kZWJ1Zy0+bG9jayk7Cj4gICAKPiAtCWlmICh1bmxpa2VseSh1bmNvcmUtPnVuY2xh aW1lZF9tbWlvX2NoZWNrIDw9IDApKQo+ICsJaWYgKHVubGlrZWx5KHVuY29yZS0+ZGVidWctPnVu Y2xhaW1lZF9tbWlvX2NoZWNrIDw9IDApKQo+ICAgCQlnb3RvIG91dDsKPiAgIAo+IC0JaWYgKHVu bGlrZWx5KGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyh1bmNvcmUpKSkgewo+ICsJaWYgKHVu bGlrZWx5KGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyh1bmNvcmUpKSkgewo+ICAgCQlpZiAoIWk5 MTVfbW9kcGFyYW1zLm1taW9fZGVidWcpIHsKPiAgIAkJCURSTV9ERUJVRygiVW5jbGFpbWVkIHJl Z2lzdGVyIGRldGVjdGVkLCAiCj4gICAJCQkJICAiZW5hYmxpbmcgb25lc2hvdCB1bmNsYWltZWQg cmVnaXN0ZXIgcmVwb3J0aW5nLiAiCj4gICAJCQkJICAiUGxlYXNlIHVzZSBpOTE1Lm1taW9fZGVi dWc9TiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIpOwo+ICAgCQkJaTkxNV9tb2RwYXJhbXMubW1p b19kZWJ1ZysrOwo+ICAgCQl9Cj4gLQkJdW5jb3JlLT51bmNsYWltZWRfbW1pb19jaGVjay0tOwo+ ICsJCXVuY29yZS0+ZGVidWctPnVuY2xhaW1lZF9tbWlvX2NoZWNrLS07Cj4gICAJCXJldCA9IHRy dWU7Cj4gICAJfQo+ICAgCj4gICBvdXQ6Cj4gLQlzcGluX3VubG9ja19pcnEoJnVuY29yZS0+bG9j ayk7Cj4gKwlzcGluX3VubG9ja19pcnEoJnVuY29yZS0+ZGVidWctPmxvY2spOwo+ICAgCj4gICAJ cmV0dXJuIHJldDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdW5jb3JlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuaAo+IGluZGV4 IGIyZGU0N2RhMDUzZi4uNTNjMWEzMzRlMmFlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3VuY29yZS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf dW5jb3JlLmgKPiBAQCAtMzYsNiArMzYsMTEgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Cj4g ICBzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtOwo+ICAgc3RydWN0IGludGVsX3VuY29yZTsKPiAgIAo+ ICtzdHJ1Y3QgaW50ZWxfdW5jb3JlX21taW9fZGVidWcgewo+ICsJc3BpbmxvY2tfdCBsb2NrOyAv KiogbG9jayBpcyBhbHNvIHRha2VuIGluIGlycSBjb250ZXh0cy4gKi8KPiArCWludCB1bmNsYWlt ZWRfbW1pb19jaGVjazsKPiArfTsKPiArCj4gICBlbnVtIGZvcmNld2FrZV9kb21haW5faWQgewo+ ICAgCUZXX0RPTUFJTl9JRF9SRU5ERVIgPSAwLAo+ICAgCUZXX0RPTUFJTl9JRF9CTElUVEVSLAo+ IEBAIC0xNDIsNyArMTQ3LDcgQEAgc3RydWN0IGludGVsX3VuY29yZSB7Cj4gICAJCWludCBzYXZl ZF9tbWlvX2RlYnVnOwo+ICAgCX0gdXNlcl9mb3JjZXdha2U7Cj4gICAKPiAtCWludCB1bmNsYWlt ZWRfbW1pb19jaGVjazsKPiArCXN0cnVjdCBpbnRlbF91bmNvcmVfbW1pb19kZWJ1ZyAqZGVidWc7 Cj4gICB9Owo+ICAgCj4gICAvKiBJdGVyYXRlIG92ZXIgaW5pdGlhbGlzZWQgZncgZG9tYWlucyAq Lwo+IEBAIC0xNzcsNiArMTgyLDkgQEAgaW50ZWxfdW5jb3JlX2hhc19maWZvKGNvbnN0IHN0cnVj dCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiAgIAlyZXR1cm4gdW5jb3JlLT5mbGFncyAmIFVOQ09S RV9IQVNfRklGTzsKPiAgIH0KPiAgIAo+ICt2b2lkCj4gK2ludGVsX3VuY29yZV9tbWlvX2RlYnVn X2luaXRfZWFybHkoc3RydWN0IGludGVsX3VuY29yZV9tbWlvX2RlYnVnICptbWlvX2RlYnVnKTsK PiArCj4gICB2b2lkIGludGVsX3VuY29yZV9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91bmNvcmUg KnVuY29yZSk7Cj4gICBpbnQgaW50ZWxfdW5jb3JlX2luaXRfbW1pbyhzdHJ1Y3QgaW50ZWxfdW5j b3JlICp1bmNvcmUpOwo+ICAgdm9pZCBpbnRlbF91bmNvcmVfZndfZG9tYWluX3BydW5lKHN0cnVj dCBpbnRlbF91bmNvcmUgKnVuY29yZSwKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4