From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/3] drm/i915: Convert intel_tv connector properties to atomic, v2. Date: Mon, 13 Mar 2017 18:22:18 +0200 Message-ID: <20170313162218.GK31595@intel.com> References: <1489064777-5460-1-git-send-email-maarten.lankhorst@linux.intel.com> <1489064777-5460-2-git-send-email-maarten.lankhorst@linux.intel.com> <20170309173602.GU31595@intel.com> <20170313092905.GZ31595@intel.com> <20170313105531.GH31595@intel.com> <55c80a55-c155-afa8-f244-20d1c4775231@linux.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 41E6D6E566 for ; Mon, 13 Mar 2017 16:22:22 +0000 (UTC) Content-Disposition: inline In-Reply-To: <55c80a55-c155-afa8-f244-20d1c4775231@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXIgMTMsIDIwMTcgYXQgMDU6MTA6MjhQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gQXMgYSBwcm9vZiBvZiBjb25jZXB0LCBmaXJzdCB0cnkgdG8gY29udmVydCBp bnRlbF90diwgd2hpY2ggaXMgYSByYXJlbHkKPiB1c2VkIGNvbm5lY3Rvci4gSXQgaGFzIDUgcHJv cGVydGllcywgdHYgZm9ybWF0IGFuZCA0IG1hcmdpbnMuCj4gCj4gSSdtIGxlc3MgY2VydGFpbiBh Ym91dCB0aGUgc3RhdGUgYmVoYXZpb3IgaXRzZWxmLCBzaG91bGQgd2UgcGFzcyBhIHNpemUKPiBw YXJhbWV0ZXIgdG8gaW50ZWxfY29ubmVjdG9yX2FsbG9jIGluc3RlYWQsIHNvIGR1cGxpY2F0ZV9z dGF0ZQo+IGNhbiBiZSBkb25lIGdsb2JhbGx5IGlmIGl0IGNhbiBiZSBibGluZGx5IGNvcGllZD8K PiAKPiBDYW4gd2UgYWxzbyBoYXZlIGEgYXRvbWljX2NoZWNrIGZ1bmN0aW9uIGZvciBjb25uZWN0 b3JzLCBzbyB0aGUKPiBjcnRjX3N0YXRlLT5jb25uZWN0b3JzX2NoYW5nZWQgY2FuIGJlIHNldCB0 aGVyZT8gSXQgd291bGQgYmUgY2xlYW5lcgo+IGFuZCBtb3JlIGF0b21pYy1saWtlLgo+IAo+IFRv IG1hdGNoIHRoZSBsZWdhY3kgYmVoYXZpb3IsIGZvcm1hdCBjYW4gYmUgY2hhbmdlZCBieSBwcm9i aW5nIGp1c3QgbGlrZQo+IGluIGxlZ2FjeSBtb2RlLgo+IAo+IENoYW5nZXMgc2luY2UgdjE6Cj4g LSBBZGQgaW50ZWxfZW5jb2Rlci0+c3dhcF9zdGF0ZSB0byBhbGxvdyB1cGRhdGluZyBjb25uZWN0 b3Igc3RhdGUuCj4gLSBBZGQgaW50ZWxfdHYtPmZvcm1hdCBmb3IgZGV0ZWN0X21vZGUgYW5kIG1v ZGVfdmFsaWQsIHVwZGF0ZWQgb24gYXRvbWljIGNvbW1pdC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBN YWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMTUgKysKPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICA0ICsKPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdHYuYyAgICAgIHwgMjU5ICsrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTc2IGluc2VydGlvbnMoKyksIDEwMiBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYWMy NWM5YmM4YjgxLi4xOGI3ZTc1NDZlZTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gQEAgLTEyOTU0LDYgKzEyOTU0LDIwIEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21p Y190cmFja19mYnMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJCQkJICB0b19p bnRlbF9wbGFuZShwbGFuZSktPmZyb250YnVmZmVyX2JpdCk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2 b2lkIHN3YXBfY29ubmVjdG9yX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiArewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZTsKPiArCWludCBpOwo+ICsKPiArCWZvcl9l YWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgbmV3X2Nvbm5fc3Rh dGUsIGkpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uID0gdG9faW50ZWxfY29u bmVjdG9yKGNvbm5lY3Rvcik7Cj4gKwo+ICsJCWlmIChjb25uLT5zd2FwX3N0YXRlKQo+ICsJCQlj b25uLT5zd2FwX3N0YXRlKGNvbm4sIG5ld19jb25uX3N0YXRlKTsKPiArCX0KPiArfQo+ICsKPiAg LyoqCj4gICAqIGludGVsX2F0b21pY19jb21taXQgLSBjb21taXQgdmFsaWRhdGVkIHN0YXRlIG9i amVjdAo+ICAgKiBAZGV2OiBEUk0gZGV2aWNlCj4gQEAgLTEzMDEyLDYgKzEzMDI2LDcgQEAgc3Rh dGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJ ZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWwgPSBpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbDsKPiAg CQlkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsID0gaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbDsKPiAg CX0KPiArCXN3YXBfY29ubmVjdG9yX3N0YXRlKHN0YXRlKTsKPiAgCj4gIAlkcm1fYXRvbWljX3N0 YXRlX2dldChzdGF0ZSk7Cj4gIAlJTklUX1dPUksoJnN0YXRlLT5jb21taXRfd29yaywKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDkzNzYyM2ZmNmQ3Yy4uYjdiOTM3OTlkMjg4IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMzA3LDYgKzMwNywxMCBAQCBzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yIHsKPiAgCSAqIGFuZCBhY3RpdmUgKGkuZS4gZHBtcyBPTiBzdGF0 ZSkuICovCj4gIAlib29sICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICop Owo+ICAKPiArCS8qIFVwZGF0ZSBkZXZpY2Ugc3RhdGUgd2l0aCB0aGUgbmV3IGF0b21pYyBzdGF0 ZS4gKi8KPiArCXZvaWQgKCpzd2FwX3N0YXRlKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICosCj4g KwkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Cj4gKwo+ICAJLyogUGFuZWwg aW5mbyBmb3IgZURQIGFuZCBMVkRTICovCj4gIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgcGFuZWw7Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+IGluZGV4IDZlZDFhM2NlNDdiNy4uYjg3ZDUxZTYx OTc1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCj4gQEAgLTQ4LDggKzQ4LDYgQEAgc3Ry dWN0IGludGVsX3R2IHsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyIGJhc2U7Cj4gIAo+ICAJaW50 IHR5cGU7Cj4gLQljb25zdCBjaGFyICp0dl9mb3JtYXQ7Cj4gLQlpbnQgbWFyZ2luWzRdOwo+ICAJ dTMyIHNhdmVfVFZfSF9DVExfMTsKPiAgCXUzMiBzYXZlX1RWX0hfQ1RMXzI7Cj4gIAl1MzIgc2F2 ZV9UVl9IX0NUTF8zOwo+IEBAIC04Myw4ICs4MSwyMCBAQCBzdHJ1Y3QgaW50ZWxfdHYgewo+ICAK PiAgCXUzMiBzYXZlX1RWX0RBQzsKPiAgCXUzMiBzYXZlX1RWX0NUTDsKPiArCj4gKwlpbnQgZm9y bWF0Owo+ICt9Owo+ICsKPiArc3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gKwlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBiYXNlOwo+ICsKPiArCWludCBmb3JtYXQ7Cj4gKwlp bnQgbWFyZ2luWzRdOwo+ICB9Owo+ICAKPiArI2RlZmluZSB0b19pbnRlbF90dl9jb25uZWN0b3Jf c3RhdGUoc3RhdGUpIFwKPiArCWNvbnRhaW5lcl9vZigoc3RhdGUpLCBzdHJ1Y3QgaW50ZWxfdHZf Y29ubmVjdG9yX3N0YXRlLCBiYXNlKQo+ICsKPiAgc3RydWN0IHZpZGVvX2xldmVscyB7Cj4gIAl1 MTYgYmxhbmssIGJsYWNrOwo+ICAJdTggYnVyc3Q7Cj4gQEAgLTg0OCw2ICs4NTgsMTcgQEAgaW50 ZWxfdHZfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBlbnVtIHBp cGUgKnBpcGUpCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gK2ludGVsX3R2X3N3YXBfc3RhdGUo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCSAgICBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiArewo+ICsJc3RydWN0IGludGVsX3R2ICppbnRl bF90diA9IGludGVsX2F0dGFjaGVkX3R2KCZjb25uZWN0b3ItPmJhc2UpOwo+ICsJc3RydWN0IGlu dGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqdHZfc3RhdGUgPQo+ICsJCXRvX2ludGVsX3R2X2Nvbm5l Y3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKPiArCj4gKwlpbnRlbF90di0+Zm9ybWF0ID0gdHZfc3Rh dGUtPmZvcm1hdDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQKPiAgaW50ZWxfZW5hYmxlX3R2KHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZywKPiAgCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0 ZSkKPiBAQCAtODczLDMyICs4OTQsMjUgQEAgaW50ZWxfZGlzYWJsZV90dihzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCUk5MTVfV1JJVEUoVFZfQ1RMLCBJOTE1X1JFQUQoVFZfQ1RM KSAmIH5UVl9FTkNfRU5BQkxFKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCB0dl9t b2RlICoKPiAtaW50ZWxfdHZfbW9kZV9sb29rdXAoY29uc3QgY2hhciAqdHZfZm9ybWF0KQo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IHR2X21vZGUgKmludGVsX3R2X21vZGVfZmluZChzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+IC0JaW50IGk7Cj4gLQo+IC0JZm9y IChpID0gMDsgaSA8IEFSUkFZX1NJWkUodHZfbW9kZXMpOyBpKyspIHsKPiAtCQljb25zdCBzdHJ1 Y3QgdHZfbW9kZSAqdHZfbW9kZSA9ICZ0dl9tb2Rlc1tpXTsKPiArCWludCBmb3JtYXQgPSB0b19p bnRlbF90dl9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSktPmZvcm1hdDsKPiAgCj4gLQkJaWYg KCFzdHJjbXAodHZfZm9ybWF0LCB0dl9tb2RlLT5uYW1lKSkKPiAtCQkJcmV0dXJuIHR2X21vZGU7 Cj4gLQl9Cj4gLQlyZXR1cm4gTlVMTDsKPiArCXJldHVybiAmdHZfbW9kZXNbZm9ybWF0XTsKPiAg fQo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCB0dl9tb2RlICoKPiAtaW50ZWxfdHZfbW9kZV9m aW5kKHN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYpCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHZf bW9kZSAqaW50ZWxfdHZfbW9kZV9maW5kX2NvbW1pdHRlZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQo+ICB7Cj4gLQlyZXR1cm4gaW50ZWxfdHZfbW9kZV9sb29rdXAoaW50ZWxfdHYt PnR2X2Zvcm1hdCk7Cj4gKwlpbnQgZm9ybWF0ID0gaW50ZWxfYXR0YWNoZWRfdHYoY29ubmVjdG9y KS0+Zm9ybWF0Owo+ICsKPiArCXJldHVybiAmdHZfbW9kZXNbZm9ybWF0XTsKPiAgfQo+ICAKPiAg c3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCj4gIGludGVsX3R2X21vZGVfdmFsaWQoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBpbnRlbF9hdHRh Y2hlZF90dihjb25uZWN0b3IpOwo+IC0JY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBp bnRlbF90dl9tb2RlX2ZpbmQoaW50ZWxfdHYpOwo+ICsJY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2 X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmRfY29tbWl0dGVkKGNvbm5lY3Rvcik7Cj4gIAlpbnQg bWF4X2RvdGNsayA9IHRvX2k5MTUoY29ubmVjdG9yLT5kZXYpLT5tYXhfZG90Y2xrX2ZyZXE7Cj4g IAo+ICAJaWYgKG1vZGUtPmNsb2NrID4gbWF4X2RvdGNsaykKPiBAQCAtOTI1LDggKzkzOSw3IEBA IGludGVsX3R2X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJCXN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfdHYg KmludGVsX3R2ID0gZW5jX3RvX3R2KGVuY29kZXIpOwo+IC0JY29uc3Qgc3RydWN0IHR2X21vZGUg KnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoaW50ZWxfdHYpOwo+ICsJY29uc3Qgc3RydWN0 IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoY29ubl9zdGF0ZSk7Cj4gIAo+ ICAJaWYgKCF0dl9tb2RlKQo+ICAJCXJldHVybiBmYWxzZTsKPiBAQCAtMTAzMiw3ICsxMDQ1LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfdHZfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfdHYgKmlu dGVsX3R2ID0gZW5jX3RvX3R2KGVuY29kZXIpOwo+IC0JY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2 X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoaW50ZWxfdHYpOwo+ICsJY29uc3Qgc3RydWN0IHR2 X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoY29ubl9zdGF0ZSk7Cj4gIAl1MzIg dHZfY3RsOwo+ICAJdTMyIHNjY3RsMSwgc2NjdGwyLCBzY2N0bDM7Cj4gIAlpbnQgaSwgajsKPiBA QCAtMTA0MSw2ICsxMDU0LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfdHZfcHJlX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCWJvb2wgYnVyc3RfZW5hOwo+ICAJaW50IHhw b3MgPSAweDAsIHlwb3MgPSAweDA7Cj4gIAl1bnNpZ25lZCBpbnQgeHNpemUsIHlzaXplOwo+ICsJ c3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqdHZfc3RhdGUgPQo+ICsJCXRvX2ludGVs X3R2X2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKPiAgCj4gIAlpZiAoIXR2X21vZGUpCj4g IAkJcmV0dXJuOwkvKiBjYW4ndCBoYXBwZW4gKG1vZGVfcHJlcGFyZSBwcmV2ZW50cyB0aGlzKSAq Lwo+IEBAIC0xMTM1LDEyICsxMTUwLDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX3R2X3ByZV9lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAllbHNlCj4gIAkJeXNpemUgPSAy KnR2X21vZGUtPm5icl9lbmQgKyAxOwo+ICAKPiAtCXhwb3MgKz0gaW50ZWxfdHYtPm1hcmdpbltU Vl9NQVJHSU5fTEVGVF07Cj4gLQl5cG9zICs9IGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1RP UF07Cj4gLQl4c2l6ZSAtPSAoaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fTEVGVF0gKwo+IC0J CSAgaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdKTsKPiAtCXlzaXplIC09IChpbnRl bF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdICsKPiAtCQkgIGludGVsX3R2LT5tYXJnaW5bVFZf TUFSR0lOX0JPVFRPTV0pOwo+ICsJeHBvcyArPSB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9M RUZUXTsKPiArCXlwb3MgKz0gdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fVE9QXTsKPiArCXhz aXplIC09ICh0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSArCj4gKwkJICB0dl9zdGF0 ZS0+bWFyZ2luW1RWX01BUkdJTl9SSUdIVF0pOwo+ICsJeXNpemUgLT0gKHR2X3N0YXRlLT5tYXJn aW5bVFZfTUFSR0lOX1RPUF0gKwo+ICsJCSAgdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fQk9U VE9NXSk7Cj4gIAlJOTE1X1dSSVRFKFRWX1dJTl9QT1MsICh4cG9zPDwxNil8eXBvcyk7Cj4gIAlJ OTE1X1dSSVRFKFRWX1dJTl9TSVpFLCAoeHNpemU8PDE2KXx5c2l6ZSk7Cj4gIAo+IEBAIC0xMjg4 LDcgKzEzMDMsNyBAQCBpbnRlbF90dl9kZXRlY3RfdHlwZShzdHJ1Y3QgaW50ZWxfdHYgKmludGVs X3R2LAo+ICBzdGF0aWMgdm9pZCBpbnRlbF90dl9maW5kX2JldHRlcl9mb3JtYXQoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGludGVsX3R2ICppbnRlbF90 diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Cj4gLQljb25zdCBzdHJ1Y3QgdHZfbW9k ZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChpbnRlbF90dik7Cj4gKwljb25zdCBzdHJ1 Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChjb25uZWN0b3ItPnN0YXRl KTsKCmludGVsX3R2X21vZGVfZmluZF9jb21taXR0ZWQoKSA/Cgo+ICAJaW50IGk7Cj4gIAo+ICAJ aWYgKChpbnRlbF90di0+dHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfQ29tcG9uZW50KSA9PQo+ IEBAIC0xMzA0LDkgKzEzMTksOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9maW5kX2JldHRlcl9m b3JtYXQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCQkJYnJlYWs7Cj4gIAl9 Cj4gIAo+IC0JaW50ZWxfdHYtPnR2X2Zvcm1hdCA9IHR2X21vZGUtPm5hbWU7Cj4gLQlkcm1fb2Jq ZWN0X3Byb3BlcnR5X3NldF92YWx1ZSgmY29ubmVjdG9yLT5iYXNlLAo+IC0JCWNvbm5lY3Rvci0+ ZGV2LT5tb2RlX2NvbmZpZy50dl9tb2RlX3Byb3BlcnR5LCBpKTsKPiArCXRvX2ludGVsX3R2X2Nv bm5lY3Rvcl9zdGF0ZShjb25uZWN0b3ItPnN0YXRlKS0+Zm9ybWF0ID0gaTsKCkkgd2FzIHRoaW5r aW5nIHdlJ2QgZG8gdGhpcyBpbiBkdXBsaWNhdGVfc3RhdGUuCgpXaXRoIHRoZXNlIHR3byBjaGFu Z2VzIHdlIHNob3VsZG4ndCBoYXZlIHRvIGFjY2VzcyAtPnN0YXRlIGluIGRldGVjdCgpCkFGQUlD Uy4KCj4gKwlpbnRlbF9hdHRhY2hlZF90dihjb25uZWN0b3IpLT5mb3JtYXQgPSBpOwo+ICB9Cj4g IAo+ICAvKioKPiBAQCAtMTM0NCwxOCArMTM1OCwxNyBAQCBpbnRlbF90dl9kZXRlY3Qoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgCQl9IGVsc2UKPiAgCQkJ c3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c191bmtub3duOwo+ICAKPiArCQlpZiAoc3RhdHVzID09 IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkKSB7Cj4gKwkJCWludGVsX3R2LT50eXBlID0gdHlw ZTsKPiArCQkJaW50ZWxfdHZfZmluZF9iZXR0ZXJfZm9ybWF0KGNvbm5lY3Rvcik7Cj4gKwkJfQo+ ICsKPiAgCQlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwo+ICAJCWRybV9tb2Rlc2V0X2Fj cXVpcmVfZmluaSgmY3R4KTsKPiAtCX0gZWxzZQo+IC0JCXJldHVybiBjb25uZWN0b3ItPnN0YXR1 czsKPiAgCj4gLQlpZiAoc3RhdHVzICE9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkKQo+ICAJ CXJldHVybiBzdGF0dXM7Cj4gLQo+IC0JaW50ZWxfdHYtPnR5cGUgPSB0eXBlOwo+IC0JaW50ZWxf dHZfZmluZF9iZXR0ZXJfZm9ybWF0KGNvbm5lY3Rvcik7Cj4gLQo+IC0JcmV0dXJuIGNvbm5lY3Rv cl9zdGF0dXNfY29ubmVjdGVkOwo+ICsJfSBlbHNlCj4gKwkJcmV0dXJuIGNvbm5lY3Rvci0+c3Rh dHVzOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGlucHV0X3JlcyB7Cj4gQEAgLTEz NzUsMTIgKzEzODgsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlucHV0X3JlcyB7Cj4gICAqIENo b3NlIHByZWZlcnJlZCBtb2RlICBhY2NvcmRpbmcgdG8gbGluZSBudW1iZXIgb2YgVFYgZm9ybWF0 Cj4gICAqLwo+ICBzdGF0aWMgdm9pZAo+IC1pbnRlbF90dl9jaG9zZV9wcmVmZXJyZWRfbW9kZXMo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAraW50ZWxfdHZfY2hvc2VfcHJlZmVy cmVkX21vZGVzKGNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlLAo+ICAJCQkgICAgICAgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGVfcHRyKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfdHYg KmludGVsX3R2ID0gaW50ZWxfYXR0YWNoZWRfdHYoY29ubmVjdG9yKTsKPiAtCWNvbnN0IHN0cnVj dCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGludGVsX3R2KTsKPiAtCj4g IAlpZiAodHZfbW9kZS0+bmJyX2VuZCA8IDQ4MCAmJiBtb2RlX3B0ci0+dmRpc3BsYXkgPT0gNDgw KQo+ICAJCW1vZGVfcHRyLT50eXBlIHw9IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwo+ICAJZWxz ZSBpZiAodHZfbW9kZS0+bmJyX2VuZCA+IDQ4MCkgewo+IEBAIC0xNDAzLDggKzE0MTMsNyBAQCBz dGF0aWMgaW50Cj4gIGludGVsX3R2X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZV9wdHI7Cj4gLQlz dHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0gaW50ZWxfYXR0YWNoZWRfdHYoY29ubmVjdG9yKTsK PiAtCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGlu dGVsX3R2KTsKPiArCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9k ZV9maW5kX2NvbW1pdHRlZChjb25uZWN0b3IpOwo+ICAJaW50IGosIGNvdW50ID0gMDsKPiAgCXU2 NCB0bXA7Cj4gIAo+IEBAIC0xNDQ3LDcgKzE0NTYsNyBAQCBpbnRlbF90dl9nZXRfbW9kZXMoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCQltb2RlX3B0ci0+Y2xvY2sgPSAoaW50 KSB0bXA7Cj4gIAo+ICAJCW1vZGVfcHRyLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVI7Cj4g LQkJaW50ZWxfdHZfY2hvc2VfcHJlZmVycmVkX21vZGVzKGNvbm5lY3RvciwgbW9kZV9wdHIpOwo+ ICsJCWludGVsX3R2X2Nob3NlX3ByZWZlcnJlZF9tb2Rlcyh0dl9tb2RlLCBtb2RlX3B0cik7CiAg ICAgICAgICAgICAgICAgICAgICAgICBeXl5eXgoKUHJlLWV4aXN0aW5nIHR5cG8gOikgTWlnaHQg d2FudCB0byBmaXggdGhhdCB1cCB0b28uCiAgICAgICAgICAgICAgICAgCgo+ICAJCWRybV9tb2Rl X3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlX3B0cik7Cj4gIAkJY291bnQrKzsKPiAgCX0KPiBA QCAtMTQ2Miw1NiArMTQ3MSw5NyBAQCBpbnRlbF90dl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpCj4gIAlrZnJlZShjb25uZWN0b3IpOwo+ICB9Cj4gIAo+IC0KPiAgc3Rh dGljIGludAo+IC1pbnRlbF90dl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3Rvciwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gLQkJICAgICAgdWludDY0 X3QgdmFsKQo+ICtpbnRlbF90dl9hdG9taWNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCj4gKwkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUsCj4gKwkJCSAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gKwkJ CSAgICAgdWludDY0X3QgdmFsKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29u bmVjdG9yLT5kZXY7Cj4gLQlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0gaW50ZWxfYXR0YWNo ZWRfdHYoY29ubmVjdG9yKTsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGludGVsX3R2LT5i YXNlLmJhc2UuY3J0YzsKPiAtCWludCByZXQgPSAwOwo+ICsKPiArCXN0cnVjdCBpbnRlbF90dl9j b25uZWN0b3Jfc3RhdGUgKnR2X3N0YXRlID0KPiArCQl0b19pbnRlbF90dl9jb25uZWN0b3Jfc3Rh dGUoY29ubl9zdGF0ZSk7Cj4gIAlib29sIGNoYW5nZWQgPSBmYWxzZTsKPiAgCj4gLQlyZXQgPSBk cm1fb2JqZWN0X3Byb3BlcnR5X3NldF92YWx1ZSgmY29ubmVjdG9yLT5iYXNlLCBwcm9wZXJ0eSwg dmFsKTsKPiAtCWlmIChyZXQgPCAwKQo+IC0JCWdvdG8gb3V0Owo+IC0KPiAtCWlmIChwcm9wZXJ0 eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X2xlZnRfbWFyZ2luX3Byb3BlcnR5ICYmCj4gLQkJaW50 ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fTEVGVF0gIT0gdmFsKSB7Cj4gLQkJaW50ZWxfdHYtPm1h cmdpbltUVl9NQVJHSU5fTEVGVF0gPSB2YWw7Cj4gLQkJY2hhbmdlZCA9IHRydWU7Cj4gLQl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3Byb3Bl cnR5ICYmCj4gLQkJaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdICE9IHZhbCkgewo+ IC0JCWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSA9IHZhbDsKPiAtCQljaGFuZ2Vk ID0gdHJ1ZTsKPiAtCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gZGV2LT5tb2RlX2NvbmZpZy50dl90 b3BfbWFyZ2luX3Byb3BlcnR5ICYmCj4gLQkJaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fVE9Q XSAhPSB2YWwpIHsKPiAtCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdID0gdmFsOwo+ IC0JCWNoYW5nZWQgPSB0cnVlOwo+IC0JfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBkZXYtPm1vZGVf Y29uZmlnLnR2X2JvdHRvbV9tYXJnaW5fcHJvcGVydHkgJiYKPiAtCQlpbnRlbF90di0+bWFyZ2lu W1RWX01BUkdJTl9CT1RUT01dICE9IHZhbCkgewo+IC0JCWludGVsX3R2LT5tYXJnaW5bVFZfTUFS R0lOX0JPVFRPTV0gPSB2YWw7Cj4gLQkJY2hhbmdlZCA9IHRydWU7Cj4gKwlpZiAocHJvcGVydHkg PT0gZGV2LT5tb2RlX2NvbmZpZy50dl9sZWZ0X21hcmdpbl9wcm9wZXJ0eSkgewo+ICsJCWNoYW5n ZWQgPSB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSAhPSB2YWw7Cj4gKwo+ICsJCXR2 X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdID0gdmFsOwo+ICsJfSBlbHNlIGlmIChwcm9w ZXJ0eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X3JpZ2h0X21hcmdpbl9wcm9wZXJ0eSkgewo+ICsJ CWNoYW5nZWQgPSB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9SSUdIVF0gIT0gdmFsOwo+ICsK PiArCQl0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9SSUdIVF0gPSB2YWw7Cj4gKwl9IGVsc2Ug aWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfdG9wX21hcmdpbl9wcm9wZXJ0eSkg ewo+ICsJCWNoYW5nZWQgPSB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9UT1BdICE9IHZhbDsK PiArCj4gKwkJdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSA9IHZhbDsKPiArCX0gZWxz ZSBpZiAocHJvcGVydHkgPT0gZGV2LT5tb2RlX2NvbmZpZy50dl9ib3R0b21fbWFyZ2luX3Byb3Bl cnR5KSB7Cj4gKwkJY2hhbmdlZCA9IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0JPVFRPTV0g IT0gdmFsOwo+ICsKPiArCQl0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9CT1RUT01dID0gdmFs Owo+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X21vZGVfcHJv cGVydHkpIHsKPiAgCQlpZiAodmFsID49IEFSUkFZX1NJWkUodHZfbW9kZXMpKSB7Cj4gLQkJCXJl dCA9IC1FSU5WQUw7Cj4gLQkJCWdvdG8gb3V0Owo+ICsJCQlEUk1fREVCVUdfQVRPTUlDKCJ2YWx1 ZSAlbGx1IG91dCBvZiB0dl9tb2RlcyBhcnJheSBib3VuZHNcbiIsIHZhbCk7Cj4gKwo+ICsJCQly ZXR1cm4gLUVJTlZBTDsKPiAgCQl9Cj4gLQkJaWYgKCFzdHJjbXAoaW50ZWxfdHYtPnR2X2Zvcm1h dCwgdHZfbW9kZXNbdmFsXS5uYW1lKSkKPiAtCQkJZ290byBvdXQ7Cj4gIAo+IC0JCWludGVsX3R2 LT50dl9mb3JtYXQgPSB0dl9tb2Rlc1t2YWxdLm5hbWU7Cj4gLQkJY2hhbmdlZCA9IHRydWU7Cj4g KwkJY2hhbmdlZCA9IHR2X3N0YXRlLT5mb3JtYXQgIT0gdmFsOwo+ICsJCXR2X3N0YXRlLT5mb3Jt YXQgPSB2YWw7Cj4gKwl9IGVsc2Ugewo+ICsJCURSTV9ERUJVR19BVE9NSUMoIlVua25vd24gYXRv bWljIHByb3BlcnR5ICVzXG4iLCBwcm9wZXJ0eS0+bmFtZSk7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7 Cj4gKwl9Cj4gKwo+ICsJLyogVHJpZ2dlciBhIG1vZGVzZXQgd2hlbiBjb25uZWN0b3IgcHJvcGVy dGllcyBhcmUgY2hhbmdlZC4gKi8KPiArCWlmIChjaGFuZ2VkICYmIGNvbm5fc3RhdGUtPmNydGMp IHsKPiArCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQo+ICsJCQlkcm1fYXRv bWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlKGNvbm5fc3RhdGUtPnN0YXRlLAo+ICsJCQkJCQkJ ICAgY29ubl9zdGF0ZS0+Y3J0Yyk7Cj4gKwo+ICsJCWNydGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hh bmdlZCA9IHRydWU7Cj4gKwl9Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludAo+ ICtpbnRlbF90dl9hdG9taWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCj4gKwkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRl LAo+ICsJCQkJICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAo+ICsJCQkJICAgIHVp bnQ2NF90ICp2YWwpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3It PmRldjsKPiArCXN0cnVjdCBpbnRlbF90dl9jb25uZWN0b3Jfc3RhdGUgKnR2X3N0YXRlID0KPiAr CQl0b19pbnRlbF90dl9jb25uZWN0b3Jfc3RhdGUoc3RhdGUpOwo+ICsKPiArCWlmIChwcm9wZXJ0 eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X2xlZnRfbWFyZ2luX3Byb3BlcnR5KQo+ICsJCSp2YWwg PSB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXTsKPiArCWVsc2UgaWYgKHByb3BlcnR5 ID09IGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3Byb3BlcnR5KQo+ICsJCSp2YWwg PSB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9SSUdIVF07Cj4gKwllbHNlIGlmIChwcm9wZXJ0 eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X3RvcF9tYXJnaW5fcHJvcGVydHkpCj4gKwkJKnZhbCA9 IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1RPUF07Cj4gKwllbHNlIGlmIChwcm9wZXJ0eSA9 PSBkZXYtPm1vZGVfY29uZmlnLnR2X2JvdHRvbV9tYXJnaW5fcHJvcGVydHkpCj4gKwkJKnZhbCA9 IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0JPVFRPTV07Cj4gKwllbHNlIGlmIChwcm9wZXJ0 eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X21vZGVfcHJvcGVydHkpIHsKPiArCQkqdmFsID0gdHZf c3RhdGUtPmZvcm1hdDsKPiAgCX0gZWxzZSB7Cj4gLQkJcmV0ID0gLUVJTlZBTDsKPiAtCQlnb3Rv IG91dDsKPiArCQlEUk1fREVCVUdfQVRPTUlDKCJVbmtub3duIGF0b21pYyBwcm9wZXJ0eSAlc1xu IiwgcHJvcGVydHktPm5hbWUpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAtCWlm IChjaGFuZ2VkICYmIGNydGMpCj4gLQkJaW50ZWxfY3J0Y19yZXN0b3JlX21vZGUoY3J0Yyk7Cj4g LW91dDoKPiAtCXJldHVybiByZXQ7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICoKPiAraW50ZWxfdHZfZHVwbGljYXRlX3N0YXRlKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF90dl9j b25uZWN0b3Jfc3RhdGUgKnN0YXRlOwo+ICsKPiArCXN0YXRlID0ga21lbWR1cCgmY29ubmVjdG9y LT5zdGF0ZSwgc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOwo+ICsJaWYgKHN0YXRlKQo+ICsJ CV9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZShjb25uZWN0b3Is ICZzdGF0ZS0+YmFzZSk7Cj4gKwo+ICsJcmV0dXJuICZzdGF0ZS0+YmFzZTsKPiAgfQo+ICAKPiAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGludGVsX3R2X2Nvbm5lY3Rv cl9mdW5jcyA9IHsKPiBAQCAtMTUyMCwxMSArMTU3MCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9jb25uZWN0b3JfZnVuY3MgaW50ZWxfdHZfY29ubmVjdG9yX2Z1bmNzID0gewo+ICAJLmxh dGVfcmVnaXN0ZXIgPSBpbnRlbF9jb25uZWN0b3JfcmVnaXN0ZXIsCj4gIAkuZWFybHlfdW5yZWdp c3RlciA9IGludGVsX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyLAo+ICAJLmRlc3Ryb3kgPSBpbnRlbF90 dl9kZXN0cm95LAo+IC0JLnNldF9wcm9wZXJ0eSA9IGludGVsX3R2X3NldF9wcm9wZXJ0eSwKPiAt CS5hdG9taWNfZ2V0X3Byb3BlcnR5ID0gaW50ZWxfY29ubmVjdG9yX2F0b21pY19nZXRfcHJvcGVy dHksCj4gKwkuc2V0X3Byb3BlcnR5ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3NldF9w cm9wZXJ0eSwKPiArCS5hdG9taWNfc2V0X3Byb3BlcnR5ID0gaW50ZWxfdHZfYXRvbWljX3NldF9w cm9wZXJ0eSwKPiArCS5hdG9taWNfZ2V0X3Byb3BlcnR5ID0gaW50ZWxfdHZfYXRvbWljX2dldF9w cm9wZXJ0eSwKPiAgCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVj dG9yX21vZGVzLAo+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJf Y29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4gLQkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRy bV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsCj4gKwkuYXRvbWljX2R1 cGxpY2F0ZV9zdGF0ZSA9IGludGVsX3R2X2R1cGxpY2F0ZV9zdGF0ZSwKPiAgfTsKPiAgCj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgaW50ZWxfdHZfY29u bmVjdG9yX2hlbHBlcl9mdW5jcyA9IHsKPiBAQCAtMTU0Nyw2ICsxNTk4LDcgQEAgaW50ZWxfdHZf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAl1MzIgdHZfZGFjX29u LCB0dl9kYWNfb2ZmLCBzYXZlX3R2X2RhYzsKPiAgCWNvbnN0IGNoYXIgKnR2X2Zvcm1hdF9uYW1l c1tBUlJBWV9TSVpFKHR2X21vZGVzKV07Cj4gIAlpbnQgaSwgaW5pdGlhbF9tb2RlID0gMDsKPiAr CXN0cnVjdCBpbnRlbF90dl9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlOwo+ICAKPiAgCWlmICgoSTkx NV9SRUFEKFRWX0NUTCkgJiBUVl9GVVNFX1NUQVRFX01BU0spID09IFRWX0ZVU0VfU1RBVEVfRElT QUJMRUQpCj4gIAkJcmV0dXJuOwo+IEBAIC0xNTgwLDE2ICsxNjMyLDE3IEBAIGludGVsX3R2X2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCXJldHVybjsKPiAgCj4g IAlpbnRlbF90diA9IGt6YWxsb2Moc2l6ZW9mKCppbnRlbF90diksIEdGUF9LRVJORUwpOwo+IC0J aWYgKCFpbnRlbF90dikgewo+IC0JCXJldHVybjsKPiAtCX0KPiAtCj4gLQlpbnRlbF9jb25uZWN0 b3IgPSBpbnRlbF9jb25uZWN0b3JfYWxsb2MoKTsKPiAtCWlmICghaW50ZWxfY29ubmVjdG9yKSB7 Cj4gKwlpbnRlbF9jb25uZWN0b3IgPSBremFsbG9jKHNpemVvZigqaW50ZWxfY29ubmVjdG9yKSwg R0ZQX0tFUk5FTCk7Cj4gKwlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJO RUwpOwo+ICsJaWYgKCFpbnRlbF90diB8fCAhaW50ZWxfY29ubmVjdG9yIHx8ICFzdGF0ZSkgewo+ ICsJCWtmcmVlKGludGVsX2Nvbm5lY3Rvcik7Cj4gKwkJa2ZyZWUoc3RhdGUpOwo+ICAJCWtmcmVl KGludGVsX3R2KTsKPiAgCQlyZXR1cm47Cj4gIAl9Cj4gIAo+ICsJX19kcm1fYXRvbWljX2hlbHBl cl9jb25uZWN0b3JfcmVzZXQoJmludGVsX2Nvbm5lY3Rvci0+YmFzZSwgJnN0YXRlLT5iYXNlKTsK PiArCj4gIAlpbnRlbF9lbmNvZGVyID0gJmludGVsX3R2LT5iYXNlOwo+ICAJY29ubmVjdG9yID0g JmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKPiAgCj4gQEAgLTE2MTcsNiArMTY3MCw3IEBAIGludGVs X3R2X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJaW50ZWxfZW5j b2Rlci0+ZGlzYWJsZSA9IGludGVsX2Rpc2FibGVfdHY7Cj4gIAlpbnRlbF9lbmNvZGVyLT5nZXRf aHdfc3RhdGUgPSBpbnRlbF90dl9nZXRfaHdfc3RhdGU7Cj4gIAlpbnRlbF9jb25uZWN0b3ItPmdl dF9od19zdGF0ZSA9IGludGVsX2Nvbm5lY3Rvcl9nZXRfaHdfc3RhdGU7Cj4gKwlpbnRlbF9jb25u ZWN0b3ItPnN3YXBfc3RhdGUgPSBpbnRlbF90dl9zd2FwX3N0YXRlOwo+ICAKPiAgCWludGVsX2Nv bm5lY3Rvcl9hdHRhY2hfZW5jb2RlcihpbnRlbF9jb25uZWN0b3IsIGludGVsX2VuY29kZXIpOwo+ ICAKPiBAQCAtMTYyOSwxMiArMTY4MywxMyBAQCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWludGVsX3R2LT50eXBlID0gRFJNX01PREVfQ09OTkVD VE9SX1Vua25vd247Cj4gIAo+ICAJLyogQklPUyBtYXJnaW4gdmFsdWVzICovCj4gLQlpbnRlbF90 di0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSA9IDU0Owo+IC0JaW50ZWxfdHYtPm1hcmdpbltUVl9N QVJHSU5fVE9QXSA9IDM2Owo+IC0JaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdID0g NDY7Cj4gLQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9CT1RUT01dID0gMzc7Cj4gKwlzdGF0 ZS0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSA9IDU0Owo+ICsJc3RhdGUtPm1hcmdpbltUVl9NQVJH SU5fVE9QXSA9IDM2Owo+ICsJc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdID0gNDY7Cj4g KwlzdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9CT1RUT01dID0gMzc7Cj4gIAo+IC0JaW50ZWxfdHYt PnR2X2Zvcm1hdCA9IHR2X21vZGVzW2luaXRpYWxfbW9kZV0ubmFtZTsKPiArCXN0YXRlLT5mb3Jt YXQgPSBpbml0aWFsX21vZGU7Cj4gKwlpbnRlbF90di0+Zm9ybWF0ID0gaW5pdGlhbF9tb2RlOwo+ ICAKPiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsICZpbnRlbF90dl9jb25u ZWN0b3JfaGVscGVyX2Z1bmNzKTsKPiAgCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBm YWxzZTsKPiBAQCAtMTY0OCwxNyArMTcwMywxNyBAQCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQkJCSAgICAgIHR2X2Zvcm1hdF9uYW1lcyk7Cj4g IAo+ICAJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwgZGV2LT5t b2RlX2NvbmZpZy50dl9tb2RlX3Byb3BlcnR5LAo+IC0JCQkJICAgaW5pdGlhbF9tb2RlKTsKPiAr CQkJCSAgIHN0YXRlLT5mb3JtYXQpOwo+ICAJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNv bm5lY3Rvci0+YmFzZSwKPiAgCQkJCSAgIGRldi0+bW9kZV9jb25maWcudHZfbGVmdF9tYXJnaW5f cHJvcGVydHksCj4gLQkJCQkgICBpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSk7Cj4g KwkJCQkgICBzdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSk7Cj4gIAlkcm1fb2JqZWN0X2F0 dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAo+ICAJCQkJICAgZGV2LT5tb2RlX2NvbmZp Zy50dl90b3BfbWFyZ2luX3Byb3BlcnR5LAo+IC0JCQkJICAgaW50ZWxfdHYtPm1hcmdpbltUVl9N QVJHSU5fVE9QXSk7Cj4gKwkJCQkgICBzdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9UT1BdKTsKPiAg CWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4gIAkJCQkgICBk ZXYtPm1vZGVfY29uZmlnLnR2X3JpZ2h0X21hcmdpbl9wcm9wZXJ0eSwKPiAtCQkJCSAgIGludGVs X3R2LT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSk7Cj4gKwkJCQkgICBzdGF0ZS0+bWFyZ2luW1RW X01BUkdJTl9SSUdIVF0pOwo+ICAJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rv ci0+YmFzZSwKPiAgCQkJCSAgIGRldi0+bW9kZV9jb25maWcudHZfYm90dG9tX21hcmdpbl9wcm9w ZXJ0eSwKPiAtCQkJCSAgIGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0JPVFRPTV0pOwo+ICsJ CQkJICAgc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXSk7Cj4gIH0KPiAtLSAKPiAyLjcu NAo+IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==