From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 2/6] drm/i915: Store encoder power domain in struct intel_encoder Date: Thu, 16 Feb 2017 11:50:48 +0200 Message-ID: <20170216095048.GB18432@ideak-desk.fi.intel.com> References: <20170210132959.16594-1-ander.conselvan.de.oliveira@intel.com> <20170210132959.16594-3-ander.conselvan.de.oliveira@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2CF6D6EA7B for ; Thu, 16 Feb 2017 09:50:51 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170210132959.16594-3-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan de Oliveira Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBGZWIgMTAsIDIwMTcgYXQgMDM6Mjk6NTVQTSArMDIwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IFRoZSBlbmNvZGVyIHBvd2VyIGRvbWFpbiBpcyBvYnZpb3Vz bHkgdGllZCB0byB0aGUgZW5jb2Rlciwgc28gc3RvcmUgaXQKPiBpbiBzdHJ1Y3QgaW50ZWxfZW5j b2Rlci4gVGhpcyBhdm9pZHMgc29tZSBpbmRpcmVjdGlvbi4KPiAKPiB2MjogUmViYXNlCj4gU2ln bmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4u ZGUub2xpdmVpcmFAaW50ZWwuY29tPgoKUmV2aWV3ZWQtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFr QGludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jICAg ICB8IDIxICsrKysrKysrKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYyAgICAgfCAxNSArKysrKysrLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgMzEgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAgOCArKysrLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICA0ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpLmMgICAgIHwgIDkgKysrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2R2by5jICAgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j ICAgIHwgIDggKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jICAg IHwgIDggKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jICAgIHwg IDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jICAgICAgfCAgMSArCj4gIDEy IGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NydC5jCj4gaW5kZXggMmJmNWFjYS4uOGM4MjYwNyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NydC5jCj4gQEAgLTY5LDEyICs2OSwxMSBAQCBzdGF0aWMgYm9vbCBp bnRlbF9jcnRfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJc3RydWN0IGludGVs X2NydCAqY3J0ID0gaW50ZWxfZW5jb2Rlcl90b19jcnQoZW5jb2Rlcik7Cj4gLQllbnVtIGludGVs X2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiAgCXUzMiB0bXA7Cj4gIAlib29s IHJldDsKPiAgCj4gLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9t YWluKGVuY29kZXIpOwo+IC0JaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVk KGRldl9wcml2LCBwb3dlcl9kb21haW4pKQo+ICsJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2dl dF9pZl9lbmFibGVkKGRldl9wcml2LAo+ICsJCQkJCQllbmNvZGVyLT5wb3dlcl9kb21haW4pKQo+ ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gIAlyZXQgPSBmYWxzZTsKPiBAQCAtOTEsNyArOTAsNyBA QCBzdGF0aWMgYm9vbCBpbnRlbF9jcnRfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAKPiAgCXJldCA9IHRydWU7Cj4gIG91dDoKPiAtCWludGVsX2Rpc3BsYXlf cG93ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ICsJaW50ZWxfZGlzcGxheV9wb3dl cl9wdXQoZGV2X3ByaXYsIGVuY29kZXItPnBvd2VyX2RvbWFpbik7Cj4gIAo+ICAJcmV0dXJuIHJl dDsKPiAgfQo+IEBAIC02NzYsNyArNjc1LDYgQEAgaW50ZWxfY3J0X2RldGVjdChzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmRldik7Cj4gIAlzdHJ1Y3QgaW50 ZWxfY3J0ICpjcnQgPSBpbnRlbF9hdHRhY2hlZF9jcnQoY29ubmVjdG9yKTsKPiAgCXN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmNydC0+YmFzZTsKPiAtCWVudW0gaW50ZWxf ZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+ICAJZW51bSBkcm1fY29ubmVjdG9y X3N0YXR1cyBzdGF0dXM7Cj4gIAlzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSB0bXA7Cj4g IAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4Owo+IEBAIC02ODksOCArNjg3LDcg QEAgaW50ZWxfY3J0X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29s IGZvcmNlKQo+ICAJaWYgKGRtaV9jaGVja19zeXN0ZW0oaW50ZWxfc3B1cmlvdXNfY3J0X2RldGVj dCkpCj4gIAkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwo+ICAKPiAtCXBv d2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rl cik7Cj4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsK PiArCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBpbnRlbF9lbmNvZGVyLT5wb3dl cl9kb21haW4pOwo+ICAKPiAgCWlmIChJOTE1X0hBU19IT1RQTFVHKGRldl9wcml2KSkgewo+ICAJ CS8qIFdlIGNhbiBub3QgcmVseSBvbiB0aGUgSFBEIHBpbiBhbHdheXMgYmVpbmcgY29ycmVjdGx5 IHdpcmVkCj4gQEAgLTc0NSw3ICs3NDIsNyBAQCBpbnRlbF9jcnRfZGV0ZWN0KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gIAlkcm1fbW9kZXNldF9hY3F1aXJl X2ZpbmkoJmN0eCk7Cj4gIAo+ICBvdXQ6Cj4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZf cHJpdiwgcG93ZXJfZG9tYWluKTsKPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2 LCBpbnRlbF9lbmNvZGVyLT5wb3dlcl9kb21haW4pOwo+ICAJcmV0dXJuIHN0YXR1czsKPiAgfQo+ ICAKPiBAQCAtNzYxLDEyICs3NTgsMTAgQEAgc3RhdGljIGludCBpbnRlbF9jcnRfZ2V0X21vZGVz KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0ICpjcnQg PSBpbnRlbF9hdHRhY2hlZF9jcnQoY29ubmVjdG9yKTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyID0gJmNydC0+YmFzZTsKPiAtCWVudW0gaW50ZWxfZGlzcGxheV9wb3dl cl9kb21haW4gcG93ZXJfZG9tYWluOwo+ICAJaW50IHJldDsKPiAgCXN0cnVjdCBpMmNfYWRhcHRl ciAqaTJjOwo+ICAKPiAtCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9k b21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJp diwgcG93ZXJfZG9tYWluKTsKPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBp bnRlbF9lbmNvZGVyLT5wb3dlcl9kb21haW4pOwo+ICAKPiAgCWkyYyA9IGludGVsX2dtYnVzX2dl dF9hZGFwdGVyKGRldl9wcml2LCBkZXZfcHJpdi0+dmJ0LmNydF9kZGNfcGluKTsKPiAgCXJldCA9 IGludGVsX2NydF9kZGNfZ2V0X21vZGVzKGNvbm5lY3RvciwgaTJjKTsKPiBAQCAtNzc4LDcgKzc3 Myw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICAJcmV0ID0gaW50ZWxfY3J0X2RkY19nZXRfbW9kZXMoY29ubmVjdG9y LCBpMmMpOwo+ICAKPiAgb3V0Ogo+IC0JaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYs IHBvd2VyX2RvbWFpbik7Cj4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgaW50 ZWxfZW5jb2Rlci0+cG93ZXJfZG9tYWluKTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gQEAg LTkwNCw2ICs4OTksOCBAQCB2b2lkIGludGVsX2NydF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgCj4gIAljcnQtPmFkcGFfcmVnID0gYWRwYV9yZWc7Cj4gIAo+ICsJ Y3J0LT5iYXNlLnBvd2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9QT1JUX0NSVDsKPiArCj4gIAlj cnQtPmJhc2UuY29tcHV0ZV9jb25maWcgPSBpbnRlbF9jcnRfY29tcHV0ZV9jb25maWc7Cj4gIAlp ZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsKPiAgCQljcnQtPmJhc2UuZGlzYWJsZSA9IHBj aF9kaXNhYmxlX2NydDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IGNkNmZlZGQu LmIwYzRkMjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0xMzE2LDEyICsx MzE2LDExIEBAIGJvb2wgaW50ZWxfZGRpX2Nvbm5lY3Rvcl9nZXRfaHdfc3RhdGUoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRl bF9kZGlfZ2V0X2VuY29kZXJfcG9ydChpbnRlbF9lbmNvZGVyKTsKPiAgCWVudW0gcGlwZSBwaXBl ID0gMDsKPiAgCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlcjsKPiAtCWVudW0gaW50ZWxf ZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+ICAJdWludDMyX3QgdG1wOwo+ICAJ Ym9vbCByZXQ7Cj4gIAo+IC0JcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2Vy X2RvbWFpbihpbnRlbF9lbmNvZGVyKTsKPiAtCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRf aWZfZW5hYmxlZChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKSkKPiArCWlmICghaW50ZWxfZGlzcGxh eV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZfcHJpdiwKPiArCQkJCQkJaW50ZWxfZW5jb2Rlci0+ cG93ZXJfZG9tYWluKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJaWYgKCFpbnRlbF9lbmNv ZGVyLT5nZXRfaHdfc3RhdGUoaW50ZWxfZW5jb2RlciwgJnBpcGUpKSB7Cj4gQEAgLTEzNjMsNyAr MTM2Miw3IEBAIGJvb2wgaW50ZWxfZGRpX2Nvbm5lY3Rvcl9nZXRfaHdfc3RhdGUoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ICAJfQo+ICAKPiAgb3V0Ogo+IC0JaW50 ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gKwlpbnRlbF9k aXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgaW50ZWxfZW5jb2Rlci0+cG93ZXJfZG9tYWluKTsK PiAgCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gQEAgLTEzNzQsMTMgKzEzNzMsMTIgQEAgYm9vbCBp bnRlbF9kZGlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJZW51bSBwb3J0IHBv cnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChlbmNvZGVyKTsKPiAtCWVudW0gaW50ZWxf ZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+ICAJdTMyIHRtcDsKPiAgCWludCBp Owo+ICAJYm9vbCByZXQ7Cj4gIAo+IC0JcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0 X3Bvd2VyX2RvbWFpbihlbmNvZGVyKTsKPiAtCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRf aWZfZW5hYmxlZChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKSkKPiArCWlmICghaW50ZWxfZGlzcGxh eV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZfcHJpdiwKPiArCQkJCQkJZW5jb2Rlci0+cG93ZXJf ZG9tYWluKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJcmV0ID0gZmFsc2U7Cj4gQEAgLTE0 MzcsNyArMTQzNSw3IEBAIGJvb2wgaW50ZWxfZGRpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCSAgIihQSFlfQ1RMICUwOHgpXG4iLCBwb3J0X25hbWUo cG9ydCksIHRtcCk7Cj4gIAl9Cj4gIAo+IC0JaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3By aXYsIHBvd2VyX2RvbWFpbik7Cj4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwg ZW5jb2Rlci0+cG93ZXJfZG9tYWluKTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gQEAgLTIy MTYsNiArMjIxNCw3IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiAgCWludGVsX2RpZ19wb3J0LT5tYXhfbGFu ZXMgPSBtYXhfbGFuZXM7Cj4gIAo+ICAJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBV VF9VTktOT1dOOwo+ICsJaW50ZWxfZW5jb2Rlci0+cG93ZXJfZG9tYWluID0gaW50ZWxfcG9ydF90 b19wb3dlcl9kb21haW4ocG9ydCk7Cj4gIAlpbnRlbF9lbmNvZGVyLT5wb3J0ID0gcG9ydDsKPiAg CWludGVsX2VuY29kZXItPmNydGNfbWFzayA9ICgxIDw8IDApIHwgKDEgPDwgMSkgfCAoMSA8PCAy KTsKPiAgCWludGVsX2VuY29kZXItPmNsb25lYWJsZSA9IDA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+IGluZGV4IDFlNzA3NzYuLjU4NWQxNDkgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTU1NzAsNyArNTU3MCw3IEBAIHN0YXRpYyB2b2lk IGk5eHhfcGZpdF9lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAlJOTE1X1dSSVRF KEJDTFJQQVQoY3J0Yy0+cGlwZSksIDApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgZW51bSBpbnRlbF9k aXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3J0X3RvX3Bvd2VyX2RvbWFpbihlbnVtIHBvcnQgcG9ydCkK PiArZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBpbnRlbF9wb3J0X3RvX3Bvd2VyX2Rv bWFpbihlbnVtIHBvcnQgcG9ydCkKPiAgewo+ICAJc3dpdGNoIChwb3J0KSB7Cj4gIAljYXNlIFBP UlRfQToKPiBAQCAtNTU4OSwzMyArNTU4OSw2IEBAIHN0YXRpYyBlbnVtIGludGVsX2Rpc3BsYXlf cG93ZXJfZG9tYWluIHBvcnRfdG9fcG93ZXJfZG9tYWluKGVudW0gcG9ydCBwb3J0KQo+ICAJfQo+ ICB9Cj4gIAo+IC1lbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCj4gLWludGVsX2Rpc3Bs YXlfcG9ydF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIp Cj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50 ZWxfZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQ7Cj4gLQo+IC0Jc3dpdGNoIChpbnRlbF9lbmNvZGVyLT50eXBlKSB7Cj4gLQlj YXNlIElOVEVMX09VVFBVVF9VTktOT1dOOgo+IC0JCS8qIE9ubHkgRERJIHBsYXRmb3JtcyBzaG91 bGQgZXZlciB1c2UgdGhpcyBvdXRwdXQgdHlwZSAqLwo+IC0JCVdBUk5fT05fT05DRSghSEFTX0RE SShkZXZfcHJpdikpOwo+IC0JY2FzZSBJTlRFTF9PVVRQVVRfRFA6Cj4gLQljYXNlIElOVEVMX09V VFBVVF9IRE1JOgo+IC0JY2FzZSBJTlRFTF9PVVRQVVRfRURQOgo+IC0JCWludGVsX2RpZ19wb3J0 ID0gZW5jX3RvX2RpZ19wb3J0KCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsKPiAtCQlyZXR1cm4gcG9y dF90b19wb3dlcl9kb21haW4oaW50ZWxfZGlnX3BvcnQtPnBvcnQpOwo+IC0JY2FzZSBJTlRFTF9P VVRQVVRfRFBfTVNUOgo+IC0JCWludGVsX2RpZ19wb3J0ID0gZW5jX3RvX21zdCgmaW50ZWxfZW5j b2Rlci0+YmFzZSktPnByaW1hcnk7Cj4gLQkJcmV0dXJuIHBvcnRfdG9fcG93ZXJfZG9tYWluKGlu dGVsX2RpZ19wb3J0LT5wb3J0KTsKPiAtCWNhc2UgSU5URUxfT1VUUFVUX0FOQUxPRzoKPiAtCQly ZXR1cm4gUE9XRVJfRE9NQUlOX1BPUlRfQ1JUOwo+IC0JY2FzZSBJTlRFTF9PVVRQVVRfRFNJOgo+ IC0JCXJldHVybiBQT1dFUl9ET01BSU5fUE9SVF9EU0k7Cj4gLQlkZWZhdWx0Ogo+IC0JCXJldHVy biBQT1dFUl9ET01BSU5fUE9SVF9PVEhFUjsKPiAtCX0KPiAtfQo+IC0KPiAgc3RhdGljIHU2NCBn ZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCSAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiBAQCAtNTYzOSw3ICs1NjEy LDcgQEAgc3RhdGljIHU2NCBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiAgCWRybV9mb3JfZWFjaF9lbmNvZGVyX21hc2soZW5jb2RlciwgZGV2LCBjcnRjX3N0 YXRlLT5iYXNlLmVuY29kZXJfbWFzaykgewo+ICAJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyID0gdG9faW50ZWxfZW5jb2RlcihlbmNvZGVyKTsKPiAgCj4gLQkJbWFzayB8PSBC SVRfVUxMKGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2RlcikpOwo+ ICsJCW1hc2sgfD0gQklUX1VMTChpbnRlbF9lbmNvZGVyLT5wb3dlcl9kb21haW4pOwo+ICAJfQo+ ICAKPiAgCWlmIChIQVNfRERJKGRldl9wcml2KSAmJiBjcnRjX3N0YXRlLT5oYXNfYXVkaW8pCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggZTJlNDc2Ni4uMmU2MDVhZCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0yNDk2LDEyICsyNDk2LDExIEBAIHN0YXRpYyBib29s IGludGVsX2RwX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAg CWVudW0gcG9ydCBwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5wb3J0Owo+ICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0JZW51bSBpbnRlbF9kaXNw bGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47Cj4gIAl1MzIgdG1wOwo+ICAJYm9vbCByZXQ7 Cj4gIAo+IC0JcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihl bmNvZGVyKTsKPiAtCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZf cHJpdiwgcG93ZXJfZG9tYWluKSkKPiArCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZf ZW5hYmxlZChkZXZfcHJpdiwKPiArCQkJCQkJZW5jb2Rlci0+cG93ZXJfZG9tYWluKSkKPiAgCQly ZXR1cm4gZmFsc2U7Cj4gIAo+ICAJcmV0ID0gZmFsc2U7Cj4gQEAgLTI1MzcsNyArMjUzNiw3IEBA IHN0YXRpYyBib29sIGludGVsX2RwX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAgCXJldCA9IHRydWU7Cj4gIAo+ICBvdXQ6Cj4gLQlpbnRlbF9kaXNwbGF5X3Bv d2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKPiArCWludGVsX2Rpc3BsYXlfcG93ZXJf cHV0KGRldl9wcml2LCBlbmNvZGVyLT5wb3dlcl9kb21haW4pOwo+ICAKPiAgCXJldHVybiByZXQ7 Cj4gIH0KPiBAQCAtNjA4Niw2ICs2MDg1LDcgQEAgYm9vbCBpbnRlbF9kcF9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMg PSA0Owo+ICAKPiAgCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRFA7Cj4gKwlp bnRlbF9lbmNvZGVyLT5wb3dlcl9kb21haW4gPSBpbnRlbF9wb3J0X3RvX3Bvd2VyX2RvbWFpbihw b3J0KTsKPiAgCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCWlmIChwb3J0ID09 IFBPUlRfRCkKPiAgCQkJaW50ZWxfZW5jb2Rlci0+Y3J0Y19tYXNrID0gMSA8PCAyOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gaW5kZXggNmE4NWQzOC4uZDk0ZmQ0YiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gQEAgLTU0OCw2ICs1NDgsNyBAQCBpbnRl bF9kcF9jcmVhdGVfZmFrZV9tc3RfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCwgZW51bQo+ICAJCQkgRFJNX01PREVfRU5DT0RFUl9EUE1TVCwgIkRQLU1T VCAlYyIsIHBpcGVfbmFtZShwaXBlKSk7Cj4gIAo+ICAJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElO VEVMX09VVFBVVF9EUF9NU1Q7Cj4gKwlpbnRlbF9lbmNvZGVyLT5wb3dlcl9kb21haW4gPSBpbnRl bF9kaWdfcG9ydC0+YmFzZS5wb3dlcl9kb21haW47Cj4gIAlpbnRlbF9lbmNvZGVyLT5wb3J0ID0g aW50ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4gIAlpbnRlbF9lbmNvZGVyLT5jcnRjX21hc2sgPSAweDc7 Cj4gIAlpbnRlbF9lbmNvZGVyLT5jbG9uZWFibGUgPSAwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gaW5kZXggM2RkZWFhNi4uYzg4NzNjMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gQEAgLTI0OSw2ICsyNDksNyBAQCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciB7Cj4gIAl2b2lk ICgqc3VzcGVuZCkoc3RydWN0IGludGVsX2VuY29kZXIgKik7Cj4gIAlpbnQgY3J0Y19tYXNrOwo+ ICAJZW51bSBocGRfcGluIGhwZF9waW47Cj4gKwllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9t YWluIHBvd2VyX2RvbWFpbjsKPiAgCS8qIGZvciBjb21tdW5pY2F0aW9uIHdpdGggYXVkaW8gY29t cG9uZW50OyBwcm90ZWN0ZWQgYnkgYXZfbXV0ZXggKi8KPiAgCWNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yICphdWRpb19jb25uZWN0b3I7Cj4gIH07Cj4gQEAgLTE0MjAsOCArMTQyMSw3IEBAIGlu dCBjaHZfY2FsY19kcGxsX3BhcmFtcyhpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqcGxsX2Nsb2Nr KTsKPiAgYm9vbCBpbnRlbF9jcnRjX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4g IHZvaWQgaHN3X2VuYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ICB2b2lkIGhz d19kaXNhYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gLWVudW0gaW50ZWxfZGlz cGxheV9wb3dlcl9kb21haW4KPiAtaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rlcik7Cj4gK2VudW0gaW50ZWxfZGlzcGxheV9w b3dlcl9kb21haW4gaW50ZWxfcG9ydF90b19wb3dlcl9kb21haW4oZW51bSBwb3J0IHBvcnQpOwo+ ICB2b2lkIGludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSwKPiAgCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IGluZGV4IGM5ODIzNGUuLjUxN2E5NDMgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IEBAIC03NjgsMTQgKzc2OCwxMyBAQCBzdGF0 aWMgYm9vbCBpbnRlbF9kc2lfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVu Y190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+IC0JZW51bSBpbnRlbF9kaXNwbGF5X3Bv d2VyX2RvbWFpbiBwb3dlcl9kb21haW47Cj4gIAllbnVtIHBvcnQgcG9ydDsKPiAgCWJvb2wgYWN0 aXZlID0gZmFsc2U7Cj4gIAo+ICAJRFJNX0RFQlVHX0tNUygiXG4iKTsKPiAgCj4gLQlwb3dlcl9k b21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKGVuY29kZXIpOwo+IC0JaWYg KCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRldl9wcml2LCBwb3dlcl9kb21h aW4pKQo+ICsJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRldl9wcml2 LAo+ICsJCQkJCQllbmNvZGVyLT5wb3dlcl9kb21haW4pKQo+ICAJCXJldHVybiBmYWxzZTsKPiAg Cj4gIAkvKgo+IEBAIC04MzEsNyArODMwLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2dldF9o d19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCX0KPiAgCj4gIG91dF9w dXRfcG93ZXI6Cj4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9t YWluKTsKPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBlbmNvZGVyLT5wb3dl cl9kb21haW4pOwo+ICAKPiAgCXJldHVybiBhY3RpdmU7Cj4gIH0KPiBAQCAtMTUwOSw2ICsxNTA4 LDcgQEAgdm9pZCBpbnRlbF9kc2lfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gIAlpbnRlbF9jb25uZWN0b3ItPmdldF9od19zdGF0ZSA9IGludGVsX2Nvbm5lY3Rvcl9n ZXRfaHdfc3RhdGU7Cj4gIAo+ICAJaW50ZWxfZW5jb2Rlci0+cG9ydCA9IHBvcnQ7Cj4gKwo+ICAJ LyoKPiAgCSAqIE9uIEJZVC9DSFYsIHBpcGUgQSBtYXBzIHRvIE1JUEkgRFNJIHBvcnQgQSwgcGlw ZSBCIG1hcHMgdG8gTUlQSSBEU0kKPiAgCSAqIHBvcnQgQy4gQlhUIGlzbid0IGxpbWl0ZWQgbGlr ZSB0aGlzLgo+IEBAIC0xNTk1LDYgKzE1OTUsNyBAQCB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCX0KPiAgCj4gIAlpbnRlbF9lbmNvZGVy LT50eXBlID0gSU5URUxfT1VUUFVUX0RTSTsKPiArCWludGVsX2VuY29kZXItPnBvd2VyX2RvbWFp biA9IFBPV0VSX0RPTUFJTl9QT1JUX0RTSTsKPiAgCWludGVsX2VuY29kZXItPmNsb25lYWJsZSA9 IDA7Cj4gIAlkcm1fY29ubmVjdG9yX2luaXQoZGV2LCBjb25uZWN0b3IsICZpbnRlbF9kc2lfY29u bmVjdG9yX2Z1bmNzLAo+ICAJCQkgICBEUk1fTU9ERV9DT05ORUNUT1JfRFNJKTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kdm8uYwo+IGluZGV4IDUwZGE4OWQuLjYwMjU4MzkgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kdm8uYwo+IEBAIC01MTUsNiArNTE1LDcgQEAgdm9pZCBpbnRlbF9kdm9faW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkJCQkgIkRWTyAlYyIsIHBv cnRfbmFtZShwb3J0KSk7Cj4gIAo+ICAJCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQ VVRfRFZPOwo+ICsJCWludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9Q T1JUX09USEVSOwo+ICAJCWludGVsX2VuY29kZXItPnBvcnQgPSBwb3J0Owo+ICAJCWludGVsX2Vu Y29kZXItPmNydGNfbWFzayA9ICgxIDw8IDApIHwgKDEgPDwgMSk7Cj4gIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oZG1pLmMKPiBpbmRleCBhNTgwZGU4Li5jMjE4NGY3IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYwo+IEBAIC05MDIsMTIgKzkwMiwxMSBAQCBzdGF0aWMgYm9vbCBpbnRl bF9oZG1pX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9o ZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwo+IC0J ZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47Cj4gIAl1MzIgdG1w Owo+ICAJYm9vbCByZXQ7Cj4gIAo+IC0JcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0 X3Bvd2VyX2RvbWFpbihlbmNvZGVyKTsKPiAtCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRf aWZfZW5hYmxlZChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKSkKPiArCWlmICghaW50ZWxfZGlzcGxh eV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZfcHJpdiwKPiArCQkJCQkJZW5jb2Rlci0+cG93ZXJf ZG9tYWluKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJcmV0ID0gZmFsc2U7Cj4gQEAgLTky Nyw3ICs5MjYsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9oZG1pX2dldF9od19zdGF0ZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXJldCA9IHRydWU7Cj4gIAo+ICBvdXQ6Cj4gLQlp bnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKPiArCWludGVs X2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBlbmNvZGVyLT5wb3dlcl9kb21haW4pOwo+ICAK PiAgCXJldHVybiByZXQ7Cj4gIH0KPiBAQCAtMTk4MSw2ICsxOTgwLDcgQEAgdm9pZCBpbnRlbF9o ZG1pX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJfQo+ICAKPiAg CWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfSERNSTsKPiArCWludGVsX2VuY29k ZXItPnBvd2VyX2RvbWFpbiA9IGludGVsX3BvcnRfdG9fcG93ZXJfZG9tYWluKHBvcnQpOwo+ICAJ aW50ZWxfZW5jb2Rlci0+cG9ydCA9IHBvcnQ7Cj4gIAlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikpIHsKPiAgCQlpZiAocG9ydCA9PSBQT1JUX0QpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMu Ywo+IGluZGV4IDljYTRkYzQuLjhiOTQyZWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHZkcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZk cy5jCj4gQEAgLTkxLDEyICs5MSwxMSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9sdmRzX2dldF9od19z dGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9sdmRzX2VuY29kZXIgKmx2 ZHNfZW5jb2RlciA9IHRvX2x2ZHNfZW5jb2RlcigmZW5jb2Rlci0+YmFzZSk7Cj4gLQllbnVtIGlu dGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiAgCXUzMiB0bXA7Cj4gIAli b29sIHJldDsKPiAgCj4gLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJf ZG9tYWluKGVuY29kZXIpOwo+IC0JaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFi bGVkKGRldl9wcml2LCBwb3dlcl9kb21haW4pKQo+ICsJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2Vy X2dldF9pZl9lbmFibGVkKGRldl9wcml2LAo+ICsJCQkJCQllbmNvZGVyLT5wb3dlcl9kb21haW4p KQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gIAlyZXQgPSBmYWxzZTsKPiBAQCAtMTE0LDcgKzEx Myw3IEBAIHN0YXRpYyBib29sIGludGVsX2x2ZHNfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAJcmV0ID0gdHJ1ZTsKPiAgCj4gIG91dDoKPiAtCWludGVsX2Rp c3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ICsJaW50ZWxfZGlzcGxh eV9wb3dlcl9wdXQoZGV2X3ByaXYsIGVuY29kZXItPnBvd2VyX2RvbWFpbik7Cj4gIAo+ICAJcmV0 dXJuIHJldDsKPiAgfQo+IEBAIC0xMDY2LDYgKzEwNjUsNyBAQCB2b2lkIGludGVsX2x2ZHNfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpbnRlbF9jb25uZWN0b3Jf YXR0YWNoX2VuY29kZXIoaW50ZWxfY29ubmVjdG9yLCBpbnRlbF9lbmNvZGVyKTsKPiAgCj4gIAlp bnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0xWRFM7Cj4gKwlpbnRlbF9lbmNvZGVy LT5wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fUE9SVF9PVEhFUjsKPiAgCWludGVsX2VuY29k ZXItPnBvcnQgPSBQT1JUX05PTkU7Cj4gIAlpbnRlbF9lbmNvZGVyLT5jbG9uZWFibGUgPSAwOwo+ ICAJaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZv LmMKPiBpbmRleCAyYWQxMzkwLi44MTZhNmY1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nkdm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nk dm8uYwo+IEBAIC0yOTgxLDYgKzI5ODEsNyBAQCBib29sIGludGVsX3Nkdm9faW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkvKiBlbmNvZGVyIHR5cGUgd2lsbCBiZSBk ZWNpZGVkIGxhdGVyICovCj4gIAlpbnRlbF9lbmNvZGVyID0gJmludGVsX3Nkdm8tPmJhc2U7Cj4g IAlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX1NEVk87Cj4gKwlpbnRlbF9lbmNv ZGVyLT5wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fUE9SVF9PVEhFUjsKPiAgCWludGVsX2Vu Y29kZXItPnBvcnQgPSBwb3J0Owo+ICAJZHJtX2VuY29kZXJfaW5pdCgmZGV2X3ByaXYtPmRybSwg JmludGVsX2VuY29kZXItPmJhc2UsCj4gIAkJCSAmaW50ZWxfc2R2b19lbmNfZnVuY3MsIDAsCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF90di5jCj4gaW5kZXggZWI2OTJlNC4uNmVkMWEzYyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdHYuYwo+IEBAIC0xNjIxLDYgKzE2MjEsNyBAQCBpbnRlbF90dl9pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWludGVsX2Nvbm5lY3Rvcl9h dHRhY2hfZW5jb2RlcihpbnRlbF9jb25uZWN0b3IsIGludGVsX2VuY29kZXIpOwo+ICAKPiAgCWlu dGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfVFZPVVQ7Cj4gKwlpbnRlbF9lbmNvZGVy LT5wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fUE9SVF9PVEhFUjsKPiAgCWludGVsX2VuY29k ZXItPnBvcnQgPSBQT1JUX05PTkU7Cj4gIAlpbnRlbF9lbmNvZGVyLT5jcnRjX21hc2sgPSAoMSA8 PCAwKSB8ICgxIDw8IDEpOwo+ICAJaW50ZWxfZW5jb2Rlci0+Y2xvbmVhYmxlID0gMDsKPiAtLSAK PiAyLjkuMwo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK