From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH 3/9] drm/i915: add uncore flags for unclaimed mmio Date: Mon, 25 Mar 2019 17:19:46 -0700 Message-ID: <3671bc968a95a853373e93b2a8a9f5a56f1f197d.camel@intel.com> References: <20190325214940.23632-1-daniele.ceraolospurio@intel.com> <20190325214940.23632-4-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8D7F26E715 for ; Tue, 26 Mar 2019 00:19:47 +0000 (UTC) In-Reply-To: <20190325214940.23632-4-daniele.ceraolospurio@intel.com> 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 List-Id: intel-gfx@lists.freedesktop.org RW0gc2VnLCAyMDE5LTAzLTI1IMOgcyAxNDo0OSAtMDcwMCwgRGFuaWVsZSBDZXJhb2xvIFNwdXJp byBlc2NyZXZldToKPiBTYXZlIHRoZSBIVyBjYXBhYmlsaXRpZXMgdG8gYXZvaWQgaGF2aW5nIHRv IGp1bXAgYmFjayB0byBkZXZfcHJpdgo+IGV2ZXJ5IHRpbWUuCj4gCgpSZXZpZXdlZC1ieTogUGF1 bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cgo+IFNpZ25lZC1vZmYtYnk6IERh bmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj4g Q2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+IENjOiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwgIDQgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdW5jb3JlLmMgICAgICAgICAgIHwgNTcgKysrKysrKysrKy0tLS0tLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuaCAgICAgICAgICAgfCAgNyArKy0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3VuY29yZS5jIHwgMTUgKyst LS0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCA1NDY1Yjk5YjQzOTIuLjg1ZTgwNzAx YTRjNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0yODU0LDcgKzI4NTQsNyBA QCBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICprZGV2KQo+ ICAJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOwo+ICAJaW50ZWxfcnVudGlt ZV9wbV9jbGVhbnVwKGRldl9wcml2KTsKPiAgCj4gLQlpZiAoaW50ZWxfdW5jb3JlX2FybV91bmNs YWltZWRfbW1pb19kZXRlY3Rpb24oZGV2X3ByaXYpKQo+ICsJaWYgKGludGVsX3VuY29yZV9hcm1f dW5jbGFpbWVkX21taW9fZGV0ZWN0aW9uKCZkZXZfcHJpdi0+dW5jb3JlKSkKPiAgCQlEUk1fRVJS T1IoIlVuY2xhaW1lZCBhY2Nlc3MgZGV0ZWN0ZWQgcHJpb3IgdG8gc3VzcGVuZGluZ1xuIik7Cj4g IAo+ICAJZGV2X3ByaXYtPnJ1bnRpbWVfcG0uc3VzcGVuZGVkID0gdHJ1ZTsKPiBAQCAtMjkwOCw3 ICsyOTA4LDcgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNl ICprZGV2KQo+ICAKPiAgCWludGVsX29wcmVnaW9uX25vdGlmeV9hZGFwdGVyKGRldl9wcml2LCBQ Q0lfRDApOwo+ICAJZGV2X3ByaXYtPnJ1bnRpbWVfcG0uc3VzcGVuZGVkID0gZmFsc2U7Cj4gLQlp ZiAoaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKGRldl9wcml2KSkKPiArCWlmIChpbnRlbF91 bmNvcmVfdW5jbGFpbWVkX21taW8oJmRldl9wcml2LT51bmNvcmUpKQo+ICAJCURSTV9ERUJVR19E UklWRVIoIlVuY2xhaW1lZCBhY2Nlc3MgZHVyaW5nIHN1c3BlbmQsIGJpb3M/XG4iKTsKPiAgCj4g IAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiBpbmRleCAwMDg1NjBlZjRkYjAuLjlhOWI3OGMxMjBiMSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTM1MzMsNyArMTM1MzMsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQo+ICAJCSAqIHNvIGVuYWJsZSBkZWJ1Z2dpbmcgZm9yIHRoZSBuZXh0IG1vZGVz ZXQgLSBhbmQgaG9wZSB3ZSBjYXRjaAo+ICAJCSAqIHRoZSBjdWxwcml0Lgo+ICAJCSAqLwo+IC0J CWludGVsX3VuY29yZV9hcm1fdW5jbGFpbWVkX21taW9fZGV0ZWN0aW9uKGRldl9wcml2KTsKPiAr CQlpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlvbigmZGV2X3ByaXYtPnVu Y29yZSk7Cj4gIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJ Tl9NT0RFU0VULCB3YWtlcmVmKTsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aGFuZ2NoZWNrLmMKPiBpbmRleCA1N2VkNDlkYzE5YzQuLjEyNTY2MmM2NDkzNCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jCj4gQEAgLTI3MCw3ICsyNzAsNyBAQCBz dGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKPiAgCSAqIHBlcmlvZGljYWxseSBhcm0gdGhlIG1taW8gY2hlY2tlciB0byBzZWUgaWYgd2Ug YXJlIHRyaWdnZXJpbmcKPiAgCSAqIGFueSBpbnZhbGlkIGFjY2Vzcy4KPiAgCSAqLwo+IC0JaW50 ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRlY3Rpb24oZGV2X3ByaXYpOwo+ICsJaW50 ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRlY3Rpb24oJmRldl9wcml2LT51bmNvcmUp Owo+ICAKPiAgCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewo+ICAJCXN0 cnVjdCBoYW5nY2hlY2sgaGM7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiBpbmRl eCAwMjU5YTYxYTc0NWYuLjFhMzI3ODI4ZjIyMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VuY29yZS5jCj4gQEAgLTUwOSwxOCArNTA5LDE3IEBAIGdlbjZfY2hlY2tfZm9yX2ZpZm9fZGVi dWcoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbAo+ IC1jaGVja19mb3JfdW5jbGFpbWVkX21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICtjaGVja19mb3JfdW5jbGFpbWVkX21taW8oc3RydWN0IGludGVsX3VuY29yZSAqdW5j b3JlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVu Y29yZTsKPiAgCWJvb2wgcmV0ID0gZmFsc2U7Cj4gIAo+IC0JaWYgKEhBU19GUEdBX0RCR19VTkNM QUlNRUQoZGV2X3ByaXYpKQo+ICsJaWYgKHVuY29yZS0+ZmxhZ3MgJiBVTkNPUkVfSEFTX0ZQR0Ff REJHX1VOQ0xBSU1FRCkKPiAgCQlyZXQgfD0gZnBnYV9jaGVja19mb3JfdW5jbGFpbWVkX21taW8o dW5jb3JlKTsKPiAgCj4gLQlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZ VklFVyhkZXZfcHJpdikpCj4gKwlpZiAodW5jb3JlLT5mbGFncyAmIFVOQ09SRV9IQVNfREJHX1VO Q0xBSU1FRCkKPiAgCQlyZXQgfD0gdmx2X2NoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyh1bmNvcmUp Owo+ICAKPiAtCWlmIChJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDYsIDcpKQo+ICsJaWYgKHVuY29y ZS0+ZmxhZ3MgJiBVTkNPUkVfSEFTX0ZJRk8pCj4gIAkJcmV0IHw9IGdlbjZfY2hlY2tfZm9yX2Zp Zm9fZGVidWcodW5jb3JlKTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+IEBAIC01MjksMTQgKzUyOCwx MiBAQCBjaGVja19mb3JfdW5jbGFpbWVkX21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICBzdGF0aWMgdm9pZCBfX2ludGVsX3VuY29yZV9lYXJseV9zYW5pdGl6ZShzdHJ1 Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCj4gIAkJCQkJICB1bnNpZ25lZCBpbnQgcmVzdG9yZV9m b3JjZXdha2UpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdW5jb3Jl X3RvX2k5MTUodW5jb3JlKTsKPiAtCj4gIAkvKiBjbGVhciBvdXQgdW5jbGFpbWVkIHJlZyBkZXRl Y3Rpb24gYml0ICovCj4gLQlpZiAoY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKGk5MTUpKQo+ICsJ aWYgKGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyh1bmNvcmUpKQo+ICAJCURSTV9ERUJVRygidW5j bGFpbWVkIG1taW8gZGV0ZWN0ZWQgb24gdW5jb3JlIGluaXQsIGNsZWFyaW5nXG4iKTsKPiAgCj4g IAkvKiBXYURpc2FibGVTaGFkb3dSZWdGb3JDcGQ6Y2h2ICovCj4gLQlpZiAoSVNfQ0hFUlJZVklF VyhpOTE1KSkgewo+ICsJaWYgKElTX0NIRVJSWVZJRVcodW5jb3JlX3RvX2k5MTUodW5jb3JlKSkp IHsKPiAgCQlfX3Jhd191bmNvcmVfd3JpdGUzMih1bmNvcmUsIEdURklGT0NUTCwKPiAgCQkJCSAg ICAgX19yYXdfdW5jb3JlX3JlYWQzMih1bmNvcmUsIEdURklGT0NUTCkgfAo+ICAJCQkJICAgICBH VF9GSUZPX0NUTF9CTE9DS19BTExfUE9MSUNZX1NUQUxMIHwKPiBAQCAtNTQ5LDcgKzU0Niw3IEBA IHN0YXRpYyB2b2lkIF9faW50ZWxfdW5jb3JlX2Vhcmx5X3Nhbml0aXplKHN0cnVjdCBpbnRlbF91 bmNvcmUgKnVuY29yZSwKPiAgCQlzcGluX2xvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwo+ICAJCXVu Y29yZS0+ZnVuY3MuZm9yY2Vfd2FrZV9nZXQodW5jb3JlLCByZXN0b3JlX2ZvcmNld2FrZSk7Cj4g IAo+IC0JCWlmIChJU19HRU5fUkFOR0UoaTkxNSwgNiwgNykpCj4gKwkJaWYgKHVuY29yZS0+Zmxh Z3MgJiBVTkNPUkVfSEFTX0ZJRk8pCj4gIAkJCXVuY29yZS0+Zmlmb19jb3VudCA9IGZpZm9fZnJl ZV9lbnRyaWVzKHVuY29yZSk7Cj4gIAkJc3Bpbl91bmxvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwo+ ICAJfQo+IEBAIC02NjgsMTIgKzY2NSwxMCBAQCB2b2lkIGludGVsX3VuY29yZV9mb3JjZXdha2Vf dXNlcl9nZXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ICAgKi8KPiAgdm9pZCBpbnRl bF91bmNvcmVfZm9yY2V3YWtlX3VzZXJfcHV0KHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkK PiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB1bmNvcmVfdG9faTkxNSh1 bmNvcmUpOwo+IC0KPiAgCXNwaW5fbG9ja19pcnEoJnVuY29yZS0+bG9jayk7Cj4gIAlpZiAoIS0t dW5jb3JlLT51c2VyX2ZvcmNld2FrZS5jb3VudCkgewo+IC0JCWlmIChpbnRlbF91bmNvcmVfdW5j bGFpbWVkX21taW8oaTkxNSkpCj4gLQkJCWRldl9pbmZvKGk5MTUtPmRybS5kZXYsCj4gKwkJaWYg KGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyh1bmNvcmUpKQo+ICsJCQlkZXZfaW5mbyh1bmNv cmVfdG9faTkxNSh1bmNvcmUpLT5kcm0uZGV2LAo+ICAJCQkJICJJbnZhbGlkIG1taW8gZGV0ZWN0 ZWQgZHVyaW5nIHVzZXIgYWNjZXNzXG4iKTsKPiAgCj4gIAkJdW5jb3JlLT51bmNsYWltZWRfbW1p b19jaGVjayA9Cj4gQEAgLTEwNzIsMTIgKzEwNjcsMTIgQEAgaWxrX2R1bW15X3dyaXRlKHN0cnVj dCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiAtX191bmNs YWltZWRfcmVnX2RlYnVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArX191 bmNsYWltZWRfcmVnX2RlYnVnKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKPiAgCQkgICAg ICBjb25zdCBpOTE1X3JlZ190IHJlZywKPiAgCQkgICAgICBjb25zdCBib29sIHJlYWQsCj4gIAkJ ICAgICAgY29uc3QgYm9vbCBiZWZvcmUpCj4gIHsKPiAtCWlmIChXQVJOKGNoZWNrX2Zvcl91bmNs YWltZWRfbW1pbyhkZXZfcHJpdikgJiYgIWJlZm9yZSwKPiArCWlmIChXQVJOKGNoZWNrX2Zvcl91 bmNsYWltZWRfbW1pbyh1bmNvcmUpICYmICFiZWZvcmUsCj4gIAkJICJVbmNsYWltZWQgJXMgcmVn aXN0ZXIgMHgleFxuIiwKPiAgCQkgcmVhZCA/ICJyZWFkIGZyb20iIDogIndyaXRlIHRvIiwKPiAg CQkgaTkxNV9tbWlvX3JlZ19vZmZzZXQocmVnKSkpCj4gQEAgLTEwODYsNyArMTA4MSw3IEBAIF9f dW5jbGFpbWVkX3JlZ19kZWJ1ZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IH0KPiAgCj4gIHN0YXRpYyBpbmxpbmUgdm9pZAo+IC11bmNsYWltZWRfcmVnX2RlYnVnKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArdW5jbGFpbWVkX3JlZ19kZWJ1ZyhzdHJ1 Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCj4gIAkJICAgIGNvbnN0IGk5MTVfcmVnX3QgcmVnLAo+ ICAJCSAgICBjb25zdCBib29sIHJlYWQsCj4gIAkJICAgIGNvbnN0IGJvb2wgYmVmb3JlKQo+IEBA IC0xMDk0LDcgKzEwODksNyBAQCB1bmNsYWltZWRfcmVnX2RlYnVnKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiAgCWlmIChsaWtlbHkoIWk5MTVfbW9kcGFyYW1zLm1taW9fZGVi dWcpKQo+ICAJCXJldHVybjsKPiAgCj4gLQlfX3VuY2xhaW1lZF9yZWdfZGVidWcoZGV2X3ByaXYs IHJlZywgcmVhZCwgYmVmb3JlKTsKPiArCV9fdW5jbGFpbWVkX3JlZ19kZWJ1Zyh1bmNvcmUsIHJl ZywgcmVhZCwgYmVmb3JlKTsKPiAgfQo+ICAKPiAgI2RlZmluZSBHRU4yX1JFQURfSEVBREVSKHgp IFwKPiBAQCAtMTE0NSwxMCArMTE0MCwxMCBAQCBfX2dlbjJfcmVhZCg2NCkKPiAgCXUjI3ggdmFs ID0gMDsgXAo+ICAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsgXAo+ICAJc3Bp bl9sb2NrX2lycXNhdmUoJnVuY29yZS0+bG9jaywgaXJxZmxhZ3MpOyBcCj4gLQl1bmNsYWltZWRf cmVnX2RlYnVnKGRldl9wcml2LCByZWcsIHRydWUsIHRydWUpCj4gKwl1bmNsYWltZWRfcmVnX2Rl YnVnKHVuY29yZSwgcmVnLCB0cnVlLCB0cnVlKQo+ICAKPiAgI2RlZmluZSBHRU42X1JFQURfRk9P VEVSIFwKPiAtCXVuY2xhaW1lZF9yZWdfZGVidWcoZGV2X3ByaXYsIHJlZywgdHJ1ZSwgZmFsc2Up OyBcCj4gKwl1bmNsYWltZWRfcmVnX2RlYnVnKHVuY29yZSwgcmVnLCB0cnVlLCBmYWxzZSk7IFwK PiAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnVuY29yZS0+bG9jaywgaXJxZmxhZ3MpOyBcCj4g IAl0cmFjZV9pOTE1X3JlZ19ydyhmYWxzZSwgcmVnLCB2YWwsIHNpemVvZih2YWwpLCB0cmFjZSk7 IFwKPiAgCXJldHVybiB2YWwKPiBAQCAtMTI1OSwxMCArMTI1NCwxMCBAQCBfX2dlbjJfd3JpdGUo MzIpCj4gIAl0cmFjZV9pOTE1X3JlZ19ydyh0cnVlLCByZWcsIHZhbCwgc2l6ZW9mKHZhbCksIHRy YWNlKTsgXAo+ICAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsgXAo+ICAJc3Bp bl9sb2NrX2lycXNhdmUoJnVuY29yZS0+bG9jaywgaXJxZmxhZ3MpOyBcCj4gLQl1bmNsYWltZWRf cmVnX2RlYnVnKGRldl9wcml2LCByZWcsIGZhbHNlLCB0cnVlKQo+ICsJdW5jbGFpbWVkX3JlZ19k ZWJ1Zyh1bmNvcmUsIHJlZywgZmFsc2UsIHRydWUpCj4gIAo+ICAjZGVmaW5lIEdFTjZfV1JJVEVf Rk9PVEVSIFwKPiAtCXVuY2xhaW1lZF9yZWdfZGVidWcoZGV2X3ByaXYsIHJlZywgZmFsc2UsIGZh bHNlKTsgXAo+ICsJdW5jbGFpbWVkX3JlZ19kZWJ1Zyh1bmNvcmUsIHJlZywgZmFsc2UsIGZhbHNl KTsgXAo+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdW5jb3JlLT5sb2NrLCBpcnFmbGFncykK PiAgCj4gICNkZWZpbmUgX19nZW42X3dyaXRlKHgpIFwKPiBAQCAtMTYzOCw2ICsxNjMzLDE1IEBA IGludCBpbnRlbF91bmNvcmVfaW5pdChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCj4gIAkJ QVNTSUdOX1JFQURfTU1JT19WRlVOQ1ModW5jb3JlLCBnZW4xMV9md3RhYmxlKTsKPiAgCX0KPiAg Cj4gKwlpZiAoSEFTX0ZQR0FfREJHX1VOQ0xBSU1FRChpOTE1KSkKPiArCQl1bmNvcmUtPmZsYWdz IHw9IFVOQ09SRV9IQVNfRlBHQV9EQkdfVU5DTEFJTUVEOwo+ICsKPiArCWlmIChJU19WQUxMRVlW SUVXKGk5MTUpIHx8IElTX0NIRVJSWVZJRVcoaTkxNSkpCj4gKwkJdW5jb3JlLT5mbGFncyB8PSBV TkNPUkVfSEFTX0RCR19VTkNMQUlNRUQ7Cj4gKwo+ICsJaWYgKElTX0dFTl9SQU5HRShpOTE1LCA2 LCA3KSkKPiArCQl1bmNvcmUtPmZsYWdzIHw9IFVOQ09SRV9IQVNfRklGTzsKPiArCj4gIAlpb3Nm X21iaV9yZWdpc3Rlcl9wbWljX2J1c19hY2Nlc3Nfbm90aWZpZXIoJnVuY29yZS0+cG1pY19idXNf YWNjZXNzX25iKTsKPiAgCj4gIAlyZXR1cm4gMDsKPiBAQCAtMTg2OSwxNSArMTg3MywxNCBAQCBp bnQgX19pbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC1ib29sIGludGVsX3VuY29yZV91bmNs YWltZWRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK2Jvb2wgaW50 ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiAg ewo+IC0JcmV0dXJuIGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyhkZXZfcHJpdik7Cj4gKwlyZXR1 cm4gY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKHVuY29yZSk7Cj4gIH0KPiAgCj4gIGJvb2wKPiAt aW50ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRlY3Rpb24oc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICtpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2Rl dGVjdGlvbihzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCj4gIHsKPiAtCXN0cnVjdCBpbnRl bF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwo+ICAJYm9vbCByZXQgPSBmYWxz ZTsKPiAgCj4gIAlzcGluX2xvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwo+IEBAIC0xODg1LDcgKzE4 ODgsNyBAQCBpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlvbihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpZiAodW5saWtlbHkodW5jb3JlLT51bmNs YWltZWRfbW1pb19jaGVjayA8PSAwKSkKPiAgCQlnb3RvIG91dDsKPiAgCj4gLQlpZiAodW5saWtl bHkoaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKGRldl9wcml2KSkpIHsKPiArCWlmICh1bmxp a2VseShpbnRlbF91bmNvcmVfdW5jbGFpbWVkX21taW8odW5jb3JlKSkpIHsKPiAgCQlpZiAoIWk5 MTVfbW9kcGFyYW1zLm1taW9fZGVidWcpIHsKPiAgCQkJRFJNX0RFQlVHKCJVbmNsYWltZWQgcmVn aXN0ZXIgZGV0ZWN0ZWQsICIKPiAgCQkJCSAgImVuYWJsaW5nIG9uZXNob3QgdW5jbGFpbWVkIHJl Z2lzdGVyIHJlcG9ydGluZy4gIgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF91bmNvcmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5oCj4gaW5k ZXggNDk0NzU0MmM2ZWE3Li45YTJjNGYzYjg3ZjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF91bmNvcmUuaAo+IEBAIC0xMzAsNiArMTMwLDkgQEAgc3RydWN0IGludGVsX3VuY29yZSB7Cj4g IAo+ICAJdTMyIGZsYWdzOwo+ICAjZGVmaW5lIFVOQ09SRV9IQVNfRk9SQ0VXQUtFCQlCSVQoMCkK PiArI2RlZmluZSBVTkNPUkVfSEFTX0ZQR0FfREJHX1VOQ0xBSU1FRAlCSVQoMSkKPiArI2RlZmlu ZSBVTkNPUkVfSEFTX0RCR19VTkNMQUlNRUQJQklUKDIpCj4gKyNkZWZpbmUgVU5DT1JFX0hBU19G SUZPCQkJQklUKDMpCj4gIH07Cj4gIAo+ICAvKiBJdGVyYXRlIG92ZXIgaW5pdGlhbGlzZWQgZncg ZG9tYWlucyAqLwo+IEBAIC0xNDksOCArMTUyLDggQEAgZm9yY2V3YWtlX2RvbWFpbl90b191bmNv cmUoY29uc3Qgc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkKQo+ICB2b2lk IGludGVsX3VuY29yZV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Owo+ICBpbnQgaW50ZWxfdW5jb3JlX2luaXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKTsK PiAgdm9pZCBpbnRlbF91bmNvcmVfcHJ1bmUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKTsK PiAtYm9vbCBpbnRlbF91bmNvcmVfdW5jbGFpbWVkX21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiAtYm9vbCBpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2Rl dGVjdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICtib29sIGludGVs X3VuY29yZV91bmNsYWltZWRfbW1pbyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpOwo+ICti b29sIGludGVsX3VuY29yZV9hcm1fdW5jbGFpbWVkX21taW9fZGV0ZWN0aW9uKHN0cnVjdCBpbnRl bF91bmNvcmUgKnVuY29yZSk7Cj4gIHZvaWQgaW50ZWxfdW5jb3JlX2Zpbmkoc3RydWN0IGludGVs X3VuY29yZSAqdW5jb3JlKTsKPiAgdm9pZCBpbnRlbF91bmNvcmVfc3VzcGVuZChzdHJ1Y3QgaW50 ZWxfdW5jb3JlICp1bmNvcmUpOwo+ICB2b2lkIGludGVsX3VuY29yZV9yZXN1bWVfZWFybHkoc3Ry dWN0IGludGVsX3VuY29yZSAqdW5jb3JlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2ludGVsX3VuY29yZS5jCj4gaW5kZXggYzY5YTFiYWQ4OTMzLi43OTlhZWVkYWM5MWIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3VuY29y ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3VuY29yZS5j Cj4gQEAgLTI0NCw2ICsyNDQsNyBAQCBzdGF0aWMgaW50IGxpdmVfZm9yY2V3YWtlX2RvbWFpbnMo dm9pZCAqYXJnKQo+ICB7Cj4gICNkZWZpbmUgRldfUkFOR0UgMHg0MDAwMAo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gYXJnOwo+ICsJc3RydWN0IGludGVsX3VuY29yZSAq dW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Cj4gIAl1bnNpZ25lZCBsb25nICp2YWxpZDsKPiAg CXUzMiBvZmZzZXQ7Cj4gIAlpbnQgZXJyOwo+IEBAIC0yNjMsMzEgKzI2NCwzMSBAQCBzdGF0aWMg aW50IGxpdmVfZm9yY2V3YWtlX2RvbWFpbnModm9pZCAqYXJnKQo+ICAJaWYgKCF2YWxpZCkKPiAg CQlyZXR1cm4gLUVOT01FTTsKPiAgCj4gLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCgmZGV2 X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7Cj4gKwlpbnRlbF91bmNvcmVfZm9yY2V3YWtl X2dldCh1bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwo+ICAKPiAtCWNoZWNrX2Zvcl91bmNsYWltZWRf bW1pbyhkZXZfcHJpdik7Cj4gKwljaGVja19mb3JfdW5jbGFpbWVkX21taW8odW5jb3JlKTsKPiAg CWZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgRldfUkFOR0U7IG9mZnNldCArPSA0KSB7Cj4gIAkJ aTkxNV9yZWdfdCByZWcgPSB7IG9mZnNldCB9Owo+ICAKPiAgCQkodm9pZClJOTE1X1JFQURfRlco cmVnKTsKPiAtCQlpZiAoIWNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyhkZXZfcHJpdikpCj4gKwkJ aWYgKCFjaGVja19mb3JfdW5jbGFpbWVkX21taW8odW5jb3JlKSkKPiAgCQkJc2V0X2JpdChvZmZz ZXQsIHZhbGlkKTsKPiAgCX0KPiAgCj4gLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCgmZGV2 X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7Cj4gKwlpbnRlbF91bmNvcmVfZm9yY2V3YWtl X3B1dCh1bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwo+ICAKPiAgCWVyciA9IDA7Cj4gIAlmb3JfZWFj aF9zZXRfYml0KG9mZnNldCwgdmFsaWQsIEZXX1JBTkdFKSB7Cj4gIAkJaTkxNV9yZWdfdCByZWcg PSB7IG9mZnNldCB9Owo+ICAKPiAgCQlpb3NmX21iaV9wdW5pdF9hY3F1aXJlKCk7Cj4gLQkJaW50 ZWxfdW5jb3JlX2ZvcmNld2FrZV9yZXNldCgmZGV2X3ByaXYtPnVuY29yZSk7Cj4gKwkJaW50ZWxf dW5jb3JlX2ZvcmNld2FrZV9yZXNldCh1bmNvcmUpOwo+ICAJCWlvc2ZfbWJpX3B1bml0X3JlbGVh c2UoKTsKPiAgCj4gLQkJY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKGRldl9wcml2KTsKPiArCQlj aGVja19mb3JfdW5jbGFpbWVkX21taW8odW5jb3JlKTsKPiAgCj4gIAkJKHZvaWQpSTkxNV9SRUFE KHJlZyk7Cj4gLQkJaWYgKGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyhkZXZfcHJpdikpIHsKPiAr CQlpZiAoY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKHVuY29yZSkpIHsKPiAgCQkJcHJfZXJyKCJV bmNsYWltZWQgbW1pbyByZWFkIHRvIHJlZ2lzdGVyIDB4JTA0eFxuIiwKPiAgCQkJICAgICAgIG9m ZnNldCk7Cj4gIAkJCWVyciA9IC1FSU5WQUw7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=