From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC 7/8] drm/i915: introduce display_uncore Date: Fri, 7 Jun 2019 09:58:37 +0100 Message-ID: References: <20190606215218.34486-1-daniele.ceraolospurio@intel.com> <20190606215218.34486-8-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 92E15899F3 for ; Fri, 7 Jun 2019 08:58:40 +0000 (UTC) In-Reply-To: <20190606215218.34486-8-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: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org Cc: "Nikula, Jani" List-Id: intel-gfx@lists.freedesktop.org CisgSmFuaSAmIFZpbGxlCgpPbiAwNi8wNi8yMDE5IDIyOjUyLCBEYW5pZWxlIENlcmFvbG8gU3B1 cmlvIHdyb3RlOgo+IEEgZm9yY2V3YWtlLWxlc3MgdW5jb3JlIHRvIGJlIHVzZWQgdG8gZGVjb3Vw bGUgR1QgYWNjZXNzZXMgZnJvbSBkaXNwbGF5Cj4gb25lcyB0byBhdm9pZCBzZXJpYWxpemluZyB0 aGVtIHdoZW4gdGhlcmUgaXMgbm8gbmVlZC4KPiAKPiBBbGwgdGhlIHVuY29yZSBzdXNwZW5kL3Jl c3VtZSBmdW5jdGlvbnMgYXJlIGZvcmNld2FrZS1yZWxhdGVkLCBzbyBubwo+IG5lZWQgdG8gY2Fs bCB0aGVtIGZvciBkaXNwbGF5X3VuY29yZS4KCkxvb2tzIGxpa2UgYSBwcm9taXNpbmcgY29uY2Vw dC4gRGlzcGxheSBleHBlcnRzIGNhbiBnaXZlIGEgZmluYWwgdmVyZGljdC4KCldvdWxkIGl0IGJl IHBvc3NpYmxlIHRvIGFkZCBzb21ldGhpbmcgbGlrZSBWaWxsZSBkaWQgdG8gdmVyaWZ5IApub24t ZGlzcGxheSByZWdpc3RlcnMgYXJlIG5vdCB1c2VkIHdpdGggd3JvbmcgdW5jb3JlIGFuZCB2aWNl LXZlcnNhIAooaHR0cHM6Ly9naXRodWIuY29tL3ZzeXJqYWxhL2xpbnV4L2NvbW1pdC9kZGQwMWFk MDgzNmYyYWFkM2JiNzhkNmUyN2E1NzJkMmFlNDM5NjBlKT8gCkFub3RoZXIgdmZ1bmMgcGVyIHVu Y29yZSB0byB2ZXJpZnkgcmVnaXN0ZXIgcmFuZ2Ugb3Igc29tZXRoaW5nLgoKUmVnYXJkcywKClR2 cnRrbwoKPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNl cmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyAgICAgfCAxNCArKysrKysrKysrKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgfCAgNiArKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VuY29yZS5jIHwgMjMgKysrKysrKysrKysrKysrKystLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3VuY29yZS5oIHwgIDkgKysrKysrKystCj4gICA0IGZpbGVzIGNoYW5nZWQs IDQxIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwo+IGluZGV4IDAyNGYyNzBmNmYwMC4uNjM1MDI0Y2FkMDA1IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCj4gQEAgLTg5Myw3ICs4OTMsOCBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVy X2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCj4gICAJ aW50ZWxfZGV2aWNlX2luZm9fc3VicGxhdGZvcm1faW5pdChkZXZfcHJpdik7Cj4gICAKPiAtCWlu dGVsX3VuY29yZV9pbml0X2Vhcmx5KCZkZXZfcHJpdi0+dW5jb3JlKTsKPiArCWludGVsX3VuY29y ZV9pbml0X2Vhcmx5KCZkZXZfcHJpdi0+dW5jb3JlLCAwKTsKPiArCWludGVsX3VuY29yZV9pbml0 X2Vhcmx5KCZkZXZfcHJpdi0+ZGVfdW5jb3JlLCBVTkNPUkVfSVNfRElTUExBWSk7Cj4gICAKPiAg IAlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAgIAlzcGluX2xvY2tfaW5p dCgmZGV2X3ByaXYtPmdwdV9lcnJvci5sb2NrKTsKPiBAQCAtOTkxLDYgKzk5MiwxMCBAQCBzdGF0 aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gICAJaWYgKHJldCA8IDApCj4gICAJCWdvdG8gZXJyX2JyaWRnZTsKPiAgIAo+ICsJ cmV0ID0gaW50ZWxfdW5jb3JlX2luaXRfbW1pbygmZGV2X3ByaXYtPmRlX3VuY29yZSk7Cj4gKwlp ZiAocmV0IDwgMCkKPiArCQlnb3RvIGVycl91bmNvcmU7Cj4gKwo+ICAgCS8qIFRyeSB0byBtYWtl IHN1cmUgTUNIQkFSIGlzIGVuYWJsZWQgYmVmb3JlIHBva2luZyBhdCBpdCAqLwo+ICAgCWludGVs X3NldHVwX21jaGJhcihkZXZfcHJpdik7Cj4gICAKPiBAQCAtMTAwMCwxNCArMTAwNSwxNiBAQCBz dGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gICAKPiAgIAlyZXQgPSBpbnRlbF9lbmdpbmVzX2luaXRfbW1pbyhkZXZfcHJp dik7Cj4gICAJaWYgKHJldCkKPiAtCQlnb3RvIGVycl91bmNvcmU7Cj4gKwkJZ290byBlcnJfbWNo YmFyOwo+ICAgCj4gICAJaTkxNV9nZW1faW5pdF9tbWlvKGRldl9wcml2KTsKPiAgIAo+ICAgCXJl dHVybiAwOwo+ICAgCj4gLWVycl91bmNvcmU6Cj4gK2Vycl9tY2hiYXI6Cj4gICAJaW50ZWxfdGVh cmRvd25fbWNoYmFyKGRldl9wcml2KTsKPiArCWludGVsX3VuY29yZV9maW5pX21taW8oJmRldl9w cml2LT5kZV91bmNvcmUpOwo+ICtlcnJfdW5jb3JlOgo+ICAgCWludGVsX3VuY29yZV9maW5pX21t aW8oJmRldl9wcml2LT51bmNvcmUpOwo+ICAgZXJyX2JyaWRnZToKPiAgIAlwY2lfZGV2X3B1dChk ZXZfcHJpdi0+YnJpZGdlX2Rldik7Cj4gQEAgLTEwMjIsNiArMTAyOSw3IEBAIHN0YXRpYyBpbnQg aTkxNV9kcml2ZXJfaW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX2NsZWFudXBfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7Cj4gICAJaW50ZWxfdGVhcmRvd25fbWNoYmFyKGRldl9w cml2KTsKPiArCWludGVsX3VuY29yZV9maW5pX21taW8oJmRldl9wcml2LT5kZV91bmNvcmUpOwo+ ICAgCWludGVsX3VuY29yZV9maW5pX21taW8oJmRldl9wcml2LT51bmNvcmUpOwo+ICAgCXBjaV9k ZXZfcHV0KGRldl9wcml2LT5icmlkZ2VfZGV2KTsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBpbmRleCBkYzZiM2U0YWY1NzUuLjg3ZGNjN2FkZGM1MyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+IEBAIC0xMzk4LDYgKzEzOTgsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSB7Cj4gICAJcmVzb3VyY2Vfc2l6ZV90IHN0b2xlbl91c2FibGVfc2l6ZTsJLyogVG90YWwgc2l6 ZSBtaW51cyByZXNlcnZlZCByYW5nZXMgKi8KPiAgIAo+ICAgCXN0cnVjdCBpbnRlbF91bmNvcmUg dW5jb3JlOwo+ICsJc3RydWN0IGludGVsX3VuY29yZSBkZV91bmNvcmU7Cj4gICAJc3RydWN0IGlu dGVsX3VuY29yZV9tbWlvX2RlYnVnIG1taW9fZGVidWc7Cj4gICAJYXRvbWljX3QgdXNlcl9mb3Jj ZXdha2VfY291bnQ7Cj4gICAKPiBAQCAtMjAxMyw3ICsyMDE0LDEwIEBAIHN0YXRpYyBpbmxpbmUg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmh1Y190b19pOTE1KHN0cnVjdCBpbnRlbF9odWMgKmh1 YykKPiAgIAo+ICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqdW5jb3Jl X3RvX2k5MTUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ICAgewo+IC0JcmV0dXJuIGNv bnRhaW5lcl9vZih1bmNvcmUsIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCB1bmNvcmUpOwo+ICsJ aWYgKGludGVsX3VuY29yZV9pc19kaXNwbGF5KHVuY29yZSkpCj4gKwkJcmV0dXJuIGNvbnRhaW5l cl9vZih1bmNvcmUsIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCBkZV91bmNvcmUpOwo+ICsJZWxz ZQo+ICsJCXJldHVybiBjb250YWluZXJfb2YodW5jb3JlLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSwgdW5jb3JlKTsKPiAgIH0KPiAgIAo+ICAgLyogU2ltcGxlIGl0ZXJhdG9yIG92ZXIgYWxsIGlu aXRpYWxpc2VkIGVuZ2luZXMgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+IGlu ZGV4IGM0NjA0MjZiMDU2Mi4uNjQ0NzlhNzQ2ZjU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdW5jb3JlLmMKPiBAQCAtNTQ5LDYgKzU0OSw5IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfdW5j b3JlX2Vhcmx5X3Nhbml0aXplKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKPiAgIAo+ICAg dm9pZCBpbnRlbF91bmNvcmVfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCj4g ICB7Cj4gKwlpZiAoIWludGVsX3VuY29yZV9pc19kaXNwbGF5KHVuY29yZSkpCj4gKwkJcmV0dXJu Owo+ICsKPiAgIAlpb3NmX21iaV9wdW5pdF9hY3F1aXJlKCk7Cj4gICAJaW9zZl9tYmlfdW5yZWdp c3Rlcl9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXJfdW5sb2NrZWQoCj4gICAJCSZ1bmNvcmUtPnBt aWNfYnVzX2FjY2Vzc19uYik7Cj4gQEAgLTU2MCw2ICs1NjMsOSBAQCB2b2lkIGludGVsX3VuY29y ZV9yZXN1bWVfZWFybHkoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ICAgewo+ICAgCXVu c2lnbmVkIGludCByZXN0b3JlX2ZvcmNld2FrZTsKPiAgIAo+ICsJaWYgKCFpbnRlbF91bmNvcmVf aXNfZGlzcGxheSh1bmNvcmUpKQo+ICsJCXJldHVybjsKPiArCj4gICAJcmVzdG9yZV9mb3JjZXdh a2UgPSBmZXRjaF9hbmRfemVybygmdW5jb3JlLT5md19kb21haW5zX3NhdmVkKTsKPiAgIAlfX2lu dGVsX3VuY29yZV9lYXJseV9zYW5pdGl6ZSh1bmNvcmUsIHJlc3RvcmVfZm9yY2V3YWtlKTsKPiAg IAo+IEBAIC01NjgsNiArNTc0LDkgQEAgdm9pZCBpbnRlbF91bmNvcmVfcmVzdW1lX2Vhcmx5KHN0 cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiAgIAo+ICAgdm9pZCBpbnRlbF91bmNvcmVfcnVu dGltZV9yZXN1bWUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ICAgewo+ICsJaWYgKCFp bnRlbF91bmNvcmVfaXNfZGlzcGxheSh1bmNvcmUpKQo+ICsJCXJldHVybjsKPiArCj4gICAJaW9z Zl9tYmlfcmVnaXN0ZXJfcG1pY19idXNfYWNjZXNzX25vdGlmaWVyKCZ1bmNvcmUtPnBtaWNfYnVz X2FjY2Vzc19uYik7Cj4gICB9Cj4gICAKPiBAQCAtMTU1Niw5ICsxNTY1LDEwIEBAIHN0YXRpYyB2 b2lkIHVuY29yZV9tbWlvX2NsZWFudXAoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ICAg CXBjaV9pb3VubWFwKHBkZXYsIHVuY29yZS0+cmVncyk7Cj4gICB9Cj4gICAKPiAtdm9pZCBpbnRl bF91bmNvcmVfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCj4gK3ZvaWQg aW50ZWxfdW5jb3JlX2luaXRfZWFybHkoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCB1MzIg ZmxhZ3MpCj4gICB7Cj4gICAJc3Bpbl9sb2NrX2luaXQoJnVuY29yZS0+bG9jayk7Cj4gKwl1bmNv cmUtPmZsYWdzID0gZmxhZ3M7Cj4gICB9Cj4gICAKPiAgIGludCBpbnRlbF91bmNvcmVfaW5pdF9t bWlvKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiBAQCAtMTU3NSw3ICsxNTg1LDggQEAg aW50IGludGVsX3VuY29yZV9pbml0X21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ ICAgCj4gICAJaTkxNV9jaGVja192Z3B1KGk5MTUpOwo+ICAgCj4gLQlpZiAoSU5URUxfR0VOKGk5 MTUpID4gNSAmJiAhaW50ZWxfdmdwdV9hY3RpdmUoaTkxNSkpCj4gKwlpZiAoSU5URUxfR0VOKGk5 MTUpID4gNSAmJiAhaW50ZWxfdmdwdV9hY3RpdmUoaTkxNSkgJiYKPiArCSAgICAhaW50ZWxfdW5j b3JlX2lzX2Rpc3BsYXkodW5jb3JlKSkKPiAgIAkJdW5jb3JlLT5mbGFncyB8PSBVTkNPUkVfSEFT X0ZPUkNFV0FLRTsKPiAgIAo+ICAgCXJldCA9IGludGVsX3VuY29yZV9md19kb21haW5zX2luaXQo dW5jb3JlKTsKPiBAQCAtMTU4Niw5ICsxNTk3LDYgQEAgaW50IGludGVsX3VuY29yZV9pbml0X21t aW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ICAgCj4gICAJX19pbnRlbF91bmNvcmVf ZWFybHlfc2FuaXRpemUodW5jb3JlLCAwKTsKPiAgIAo+IC0JdW5jb3JlLT5wbWljX2J1c19hY2Nl c3NfbmIubm90aWZpZXJfY2FsbCA9Cj4gLQkJaTkxNV9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXI7 Cj4gLQo+ICAgCWlmICghaW50ZWxfdW5jb3JlX2hhc19mb3JjZXdha2UodW5jb3JlKSkgewo+ICAg CQlpZiAoSVNfR0VOKGk5MTUsIDUpKSB7Cj4gICAJCQlBU1NJR05fV1JJVEVfTU1JT19WRlVOQ1Nf Tk9fRlcodW5jb3JlLCBnZW41KTsKPiBAQCAtMTY0MSw3ICsxNjQ5LDEwIEBAIGludCBpbnRlbF91 bmNvcmVfaW5pdF9tbWlvKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiAgIAlpZiAoSVNf R0VOX1JBTkdFKGk5MTUsIDYsIDcpKQo+ICAgCQl1bmNvcmUtPmZsYWdzIHw9IFVOQ09SRV9IQVNf RklGTzsKPiAgIAo+IC0JaW9zZl9tYmlfcmVnaXN0ZXJfcG1pY19idXNfYWNjZXNzX25vdGlmaWVy KCZ1bmNvcmUtPnBtaWNfYnVzX2FjY2Vzc19uYik7Cj4gKwlpZiAoaW50ZWxfdW5jb3JlX2hhc19m b3JjZXdha2UodW5jb3JlKSkgewo+ICsJCXVuY29yZS0+cG1pY19idXNfYWNjZXNzX25iLm5vdGlm aWVyX2NhbGwgPSBpOTE1X3BtaWNfYnVzX2FjY2Vzc19ub3RpZmllcjsKPiArCQlpb3NmX21iaV9y ZWdpc3Rlcl9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXIoJnVuY29yZS0+cG1pY19idXNfYWNjZXNz X25iKTsKPiArCX0KPiAgIAo+ICAgCXJldHVybiAwOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3VuY29yZS5oCj4gaW5kZXggMWRlMWU4NTA1MTI0Li4wN2U3OWNiNmM3NTYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuaAo+IEBAIC0xMTgsNiArMTE4LDcgQEAgc3RydWN0 IGludGVsX3VuY29yZSB7Cj4gICAjZGVmaW5lIFVOQ09SRV9IQVNfRlBHQV9EQkdfVU5DTEFJTUVE CUJJVCgxKQo+ICAgI2RlZmluZSBVTkNPUkVfSEFTX0RCR19VTkNMQUlNRUQJQklUKDIpCj4gICAj ZGVmaW5lIFVOQ09SRV9IQVNfRklGTwkJCUJJVCgzKQo+ICsjZGVmaW5lIFVOQ09SRV9JU19ESVNQ TEFZCQlCSVQoNCkKPiAgIAo+ICAgCWNvbnN0IHN0cnVjdCBpbnRlbF9mb3JjZXdha2VfcmFuZ2Ug KmZ3X2RvbWFpbnNfdGFibGU7Cj4gICAJdW5zaWduZWQgaW50IGZ3X2RvbWFpbnNfdGFibGVfZW50 cmllczsKPiBAQCAtMTc3LDEyICsxNzgsMTggQEAgaW50ZWxfdW5jb3JlX2hhc19maWZvKGNvbnN0 IHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiAgIAlyZXR1cm4gdW5jb3JlLT5mbGFncyAm IFVOQ09SRV9IQVNfRklGTzsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW5saW5lIGJvb2wKPiAraW50 ZWxfdW5jb3JlX2lzX2Rpc3BsYXkoY29uc3Qgc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ ICt7Cj4gKwlyZXR1cm4gdW5jb3JlLT5mbGFncyAmIFVOQ09SRV9JU19ESVNQTEFZOwo+ICt9Cj4g Kwo+ICAgdm9pZAo+ICAgaW50ZWxfdW5jb3JlX21taW9fZGVidWdfaW5pdF9lYXJseShzdHJ1Y3Qg aW50ZWxfdW5jb3JlX21taW9fZGVidWcgKm1taW9fZGVidWcpOwo+ICAgdm9pZCBpbnRlbF91bmNv cmVfbW1pb19kZWJ1Z19zdXNwZW5kKHN0cnVjdCBpbnRlbF91bmNvcmVfbW1pb19kZWJ1ZyAqbW1p b19kZWJ1Zyk7Cj4gICB2b2lkIGludGVsX3VuY29yZV9tbWlvX2RlYnVnX3Jlc3VtZShzdHJ1Y3Qg aW50ZWxfdW5jb3JlX21taW9fZGVidWcgKm1taW9fZGVidWcpOwo+ICAgCj4gLXZvaWQgaW50ZWxf dW5jb3JlX2luaXRfZWFybHkoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKTsKPiArdm9pZCBp bnRlbF91bmNvcmVfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsIHUzMiBm bGFncyk7Cj4gICBpbnQgaW50ZWxfdW5jb3JlX2luaXRfbW1pbyhzdHJ1Y3QgaW50ZWxfdW5jb3Jl ICp1bmNvcmUpOwo+ICAgdm9pZCBpbnRlbF91bmNvcmVfZndfZG9tYWluX3BydW5lKHN0cnVjdCBp bnRlbF91bmNvcmUgKnVuY29yZSwKPiAgIAkJCQkgIGVudW0gZm9yY2V3YWtlX2RvbWFpbl9pZCBk b21haW5faWQpOwo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=