From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 17/42] drm/i915: Remove use of crtc->config from intel_pm.c Date: Tue, 12 May 2015 10:54:45 +0200 Message-ID: <20150512085445.GF15256@phenom.ffwll.local> References: <1431354318-11995-1-git-send-email-maarten.lankhorst@linux.intel.com> <1431354318-11995-18-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 252C56E5AB for ; Tue, 12 May 2015 01:52:25 -0700 (PDT) Received: by widdi4 with SMTP id di4so142248563wid.0 for ; Tue, 12 May 2015 01:52:24 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1431354318-11995-18-git-send-email-maarten.lankhorst@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: Ander Conselvan de Oliveira , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMTEsIDIwMTUgYXQgMDQ6MjQ6NTNQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6CgpBIGNvbW1lbnQgaGVyZSBzdGF0aW5nIHRoYXQgdGhlIHdtIGNvZGUgZG9lc24n dCBjaGVjay9wcmVjb21wdXRlIGFueXRoaW5nCnlldCwgaGVuY2Ugd2UgYWx3YXlzIG5lZWQgdG8g bG9vayBhdCB0aGUgY3VycmVudCBjb25maWcgd291bGQgYmUgZ29vZC4KCi9tZSBvbiBhIGNydXNh ZGUgYWdhaW5zdCB0ZXJzZSBjb21taXQgbWVzc2FnZXMKCkNoZWVycywgRGFuaWVsCgo+IFNpZ25l ZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRl bC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCA5NiArKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwg NDYgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCj4gaW5kZXggYTcwYjJkMWZjODQ0Li44NjliNTg3ZjQ2M2QgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKPiBAQCAtNjc4LDcgKzY3OCw3IEBAIHN0YXRpYyB2b2lkIHBpbmV2aWV3X3Vw ZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ICAJCWludCBwaXhlbF9zaXpl ID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gIAkJaW50 IGNsb2NrOwo+ICAKPiAtCQlhZGp1c3RlZF9tb2RlID0gJnRvX2ludGVsX2NydGMoY3J0YyktPmNv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICsJCWFkanVzdGVkX21vZGUgPSAmY3J0Yy0+c3Rh dGUtPmFkanVzdGVkX21vZGU7Cj4gIAkJY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2Nr Owo+ICAKPiAgCQkvKiBEaXNwbGF5IFNSICovCj4gQEAgLTc0NywxMCArNzQ3LDEwIEBAIHN0YXRp YyBib29sIGc0eF9jb21wdXRlX3dtMChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCXJldHVy biBmYWxzZTsKPiAgCX0KPiAgCj4gLQlhZGp1c3RlZF9tb2RlID0gJnRvX2ludGVsX2NydGMoY3J0 YyktPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICsJYWRqdXN0ZWRfbW9kZSA9ICZjcnRj LT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKPiAgCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jazsKPiAgCWh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsOwo+IC0JaGRpc3Bs YXkgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPnBpcGVfc3JjX3c7Cj4gKwloZGlzcGxh eSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT5waXBlX3NyY193Owo+ICAJcGl4 ZWxfc2l6ZSA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ ICAKPiAgCS8qIFVzZSB0aGUgc21hbGwgYnVmZmVyIG1ldGhvZCB0byBjYWxjdWxhdGUgcGxhbmUg d2F0ZXJtYXJrICovCj4gQEAgLTgzNCwxMCArODM0LDEwIEBAIHN0YXRpYyBib29sIGc0eF9jb21w dXRlX3Nyd20oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCX0KPiAgCj4gIAljcnRjID0gaW50 ZWxfZ2V0X2NydGNfZm9yX3BsYW5lKGRldiwgcGxhbmUpOwo+IC0JYWRqdXN0ZWRfbW9kZSA9ICZ0 b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiArCWFkanVz dGVkX21vZGUgPSAmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGU7Cj4gIAljbG9jayA9IGFkanVz dGVkX21vZGUtPmNydGNfY2xvY2s7Cj4gIAlodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0 b3RhbDsKPiAtCWhkaXNwbGF5ID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLT5waXBlX3Ny Y193Owo+ICsJaGRpc3BsYXkgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKS0+cGlw ZV9zcmNfdzsKPiAgCXBpeGVsX3NpemUgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNf cGVyX3BpeGVsIC8gODsKPiAgCj4gIAlsaW5lX3RpbWVfdXMgPSBtYXgoaHRvdGFsICogMTAwMCAv IGNsb2NrLCAxKTsKPiBAQCAtOTM0LDE2ICs5MzQsMTEgQEAgc3RhdGljIHVpbnQ4X3Qgdmx2X2Nv bXB1dGVfZHJhaW5fbGF0ZW5jeShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCQkJIHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+ZGV2Owo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGMpOwo+ICAJaW50IGVudHJpZXMsIHByZWNfbXVsdCwgZHJhaW5fbGF0ZW5jeSwgcGl4ZWxf c2l6ZTsKPiAtCWludCBjbG9jayA9IGludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlLmNydGNfY2xvY2s7Cj4gKwlpbnQgY2xvY2sgPSBjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9k ZS5jcnRjX2Nsb2NrOwo+ICAJY29uc3QgaW50IGhpZ2hfcHJlY2lzaW9uID0gSVNfQ0hFUlJZVklF VyhkZXYpID8gMTYgOiA2NDsKPiAgCj4gLQkvKgo+IC0JICogRklYTUUgdGhlIHBsYW5lIG1pZ2h0 IGhhdmUgYW4gZmIKPiAtCSAqIGJ1dCBiZSBpbnZpc2libGUgKGVnLiBkdWUgdG8gY2xpcHBpbmcp Cj4gLQkgKi8KPiAtCWlmICghaW50ZWxfY3J0Yy0+YWN0aXZlIHx8ICFwbGFuZS0+c3RhdGUtPmZi KQo+ICsJaWYgKCFjcnRjLT5zdGF0ZS0+YWN0aXZlIHx8ICF0b19pbnRlbF9wbGFuZV9zdGF0ZShw bGFuZS0+c3RhdGUpLT52aXNpYmxlKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCWlmIChXQVJOKGNs b2NrID09IDAsICJQaXhlbCBjbG9jayBpcyB6ZXJvIVxuIikpCj4gQEAgLTk4MSwxMSArOTc2LDEx IEBAIHN0YXRpYyBpbnQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4g IAkgKiBGSVhNRSB0aGUgcGxhbmUgbWlnaHQgaGF2ZSBhbiBmYgo+ICAJICogYnV0IGJlIGludmlz aWJsZSAoZWcuIGR1ZSB0byBjbGlwcGluZykKPiAgCSAqLwo+IC0JaWYgKCFjcnRjLT5hY3RpdmUg fHwgIXBsYW5lLT5iYXNlLnN0YXRlLT5mYikKPiArCWlmICghY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0 aXZlIHx8ICFwbGFuZS0+YmFzZS5zdGF0ZS0+ZmIpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJcGl4 ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKHBsYW5lLT5iYXNlLnN0YXRlLT5mYi0+cGl4 ZWxfZm9ybWF0LCAwKTsKPiAtCWNsb2NrID0gY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGUuY3J0Y19jbG9jazsKPiArCWNsb2NrID0gY3J0Yy0+YmFzZS5zdGF0ZS0+YWRqdXN0ZWRfbW9k ZS5jcnRjX2Nsb2NrOwo+ICAKPiAgCWVudHJpZXMgPSBESVZfUk9VTkRfVVAoY2xvY2ssIDEwMDAp ICogcGl4ZWxfc2l6ZTsKPiAgCj4gQEAgLTEyMTcsMTAgKzEyMTIsMTAgQEAgc3RhdGljIHZvaWQg aTk2NV91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKPiAgCQkvKiBzZWxm LXJlZnJlc2ggaGFzIG11Y2ggaGlnaGVyIGxhdGVuY3kgKi8KPiAgCQlzdGF0aWMgY29uc3QgaW50 IHNyX2xhdGVuY3lfbnMgPSAxMjAwMDsKPiAgCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gLQkJCSZ0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZTsKPiArCQkJJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+ICAJ CWludCBjbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7Cj4gIAkJaW50IGh0b3RhbCA9 IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsOwo+IC0JCWludCBoZGlzcGxheSA9IHRvX2ludGVs X2NydGMoY3J0YyktPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiArCQlpbnQgaGRpc3BsYXkgPSB0b19p bnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKS0+cGlwZV9zcmNfdzsKPiAgCQlpbnQgcGl4ZWxf c2l6ZSA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICAJ CXVuc2lnbmVkIGxvbmcgbGluZV90aW1lX3VzOwo+ICAJCWludCBlbnRyaWVzOwo+IEBAIC0xMzA0 LDcgKzEyOTksNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMg KnVudXNlZF9jcnRjKQo+ICAJCWlmIChJU19HRU4yKGRldikpCj4gIAkJCWNwcCA9IDQ7Cj4gIAo+ IC0JCWFkanVzdGVkX21vZGUgPSAmdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGU7Cj4gKwkJYWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRf bW9kZTsKPiAgCQlwbGFuZWFfd20gPSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19jbG9jaywKPiAgCQkJCQkgICAgICAgd21faW5mbywgZmlmb19zaXplLCBjcHAsCj4gIAkJ CQkJICAgICAgIHBlc3NpbWFsX2xhdGVuY3lfbnMpOwo+IEBAIC0xMzI2LDcgKzEzMjEsNyBAQCBz dGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ ICAJCWlmIChJU19HRU4yKGRldikpCj4gIAkJCWNwcCA9IDQ7Cj4gIAo+IC0JCWFkanVzdGVkX21v ZGUgPSAmdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4g KwkJYWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKPiAgCQlwbGFu ZWJfd20gPSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiAg CQkJCQkgICAgICAgd21faW5mbywgZmlmb19zaXplLCBjcHAsCj4gIAkJCQkJICAgICAgIHBlc3Np bWFsX2xhdGVuY3lfbnMpOwo+IEBAIC0xMzY1LDEwICsxMzYwLDEwIEBAIHN0YXRpYyB2b2lkIGk5 eHhfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqdW51c2VkX2NydGMpCj4gIAkJLyogc2VsZi1y ZWZyZXNoIGhhcyBtdWNoIGhpZ2hlciBsYXRlbmN5ICovCj4gIAkJc3RhdGljIGNvbnN0IGludCBz cl9sYXRlbmN5X25zID0gNjAwMDsKPiAgCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9Cj4gLQkJCSZ0b19pbnRlbF9jcnRjKGVuYWJsZWQpLT5jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZTsKPiArCQkJJmVuYWJsZWQtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+ ICAJCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7Cj4gIAkJaW50IGh0b3Rh bCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsOwo+IC0JCWludCBoZGlzcGxheSA9IHRvX2lu dGVsX2NydGMoZW5hYmxlZCktPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiArCQlpbnQgaGRpc3BsYXkg PSB0b19pbnRlbF9jcnRjX3N0YXRlKGVuYWJsZWQtPnN0YXRlKS0+cGlwZV9zcmNfdzsKPiAgCQlp bnQgcGl4ZWxfc2l6ZSA9IGVuYWJsZWQtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4 ZWwgLyA4Owo+ICAJCXVuc2lnbmVkIGxvbmcgbGluZV90aW1lX3VzOwo+ICAJCWludCBlbnRyaWVz Owo+IEBAIC0xNDIxLDcgKzE0MTYsNyBAQCBzdGF0aWMgdm9pZCBpODQ1X3VwZGF0ZV93bShzdHJ1 Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ICAJaWYgKGNydGMgPT0gTlVMTCkKPiAgCQlyZXR1 cm47Cj4gIAo+IC0JYWRqdXN0ZWRfbW9kZSA9ICZ0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiArCWFkanVzdGVkX21vZGUgPSAmY3J0Yy0+c3RhdGUtPmFk anVzdGVkX21vZGU7Cj4gIAlwbGFuZWFfd20gPSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRf bW9kZS0+Y3J0Y19jbG9jaywKPiAgCQkJCSAgICAgICAmaTg0NV93bV9pbmZvLAo+ICAJCQkJICAg ICAgIGRldl9wcml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUoZGV2LCAwKSwKPiBAQCAtMTQzNywy MCArMTQzMiwyMCBAQCBzdGF0aWMgdm9pZCBpODQ1X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMg KnVudXNlZF9jcnRjKQo+ICBzdGF0aWMgdWludDMyX3QgaWxrX3BpcGVfcGl4ZWxfcmF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAg ewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMp Owo+IC0JdWludDMyX3QgcGl4ZWxfcmF0ZTsKPiAtCj4gLQlwaXhlbF9yYXRlID0gaW50ZWxfY3J0 Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKPiArCXVpbnQzMl90IHBp eGVsX3JhdGUgPQo+ICsJCWNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7Cj4g KwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ICsJCXRvX2ludGVsX2Ny dGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ICAKPiAgCS8qIFdlIG9ubHkgdXNlIElGLUlEIGludGVy bGFjaW5nLiBJZiB3ZSBldmVyIHVzZSBQRi1JRCB3ZSdsbCBuZWVkIHRvCj4gIAkgKiBhZGp1c3Qg dGhlIHBpeGVsX3JhdGUgaGVyZS4gKi8KPiAgCj4gLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5w Y2hfcGZpdC5lbmFibGVkKSB7Cj4gKwlpZiAocGlwZV9jb25maWctPnBjaF9wZml0LmVuYWJsZWQp IHsKPiAgCQl1aW50NjRfdCBwaXBlX3csIHBpcGVfaCwgcGZpdF93LCBwZml0X2g7Cj4gLQkJdWlu dDMyX3QgcGZpdF9zaXplID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5wY2hfcGZpdC5zaXplOwo+ICsJ CXVpbnQzMl90IHBmaXRfc2l6ZSA9IHBpcGVfY29uZmlnLT5wY2hfcGZpdC5zaXplOwo+ICAKPiAt CQlwaXBlX3cgPSBpbnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX3c7Cj4gLQkJcGlwZV9oID0g aW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oOwo+ICsJCXBpcGVfdyA9IHBpcGVfY29uZmln LT5waXBlX3NyY193Owo+ICsJCXBpcGVfaCA9IHBpcGVfY29uZmlnLT5waXBlX3NyY19oOwo+ICAJ CXBmaXRfdyA9IChwZml0X3NpemUgPj4gMTYpICYgMHhGRkZGOwo+ICAJCXBmaXRfaCA9IHBmaXRf c2l6ZSAmIDB4RkZGRjsKPiAgCQlpZiAocGlwZV93IDwgcGZpdF93KQo+IEBAIC0xODAyLDExICsx Nzk3LDEwIEBAIHN0YXRpYyB1aW50MzJfdAo+ICBoc3dfY29tcHV0ZV9saW5ldGltZV93bShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gLQlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZpbnRlbF9jcnRjLT5jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZTsKPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGMtPnN0 YXRlLT5hZGp1c3RlZF9tb2RlOwo+ICAJdTMyIGxpbmV0aW1lLCBpcHNfbGluZXRpbWU7Cj4gIAo+ IC0JaWYgKCFpbnRlbF9jcnRjLT5hY3RpdmUpCj4gKwlpZiAoIWNydGMtPnN0YXRlLT5hY3RpdmUp Cj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJLyogVGhlIFdNIGFyZSBjb21wdXRlZCB3aXRoIGJhc2Ug b24gaG93IGxvbmcgaXQgdGFrZXMgdG8gZmlsbCBhIHNpbmdsZQo+IEBAIC0yMDYxLDExICsyMDU1 LDExIEBAIHN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX3BhcmFtZXRlcnMoc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAJc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gIAo+IC0JaWYgKCFpbnRlbF9jcnRjLT5hY3RpdmUpCj4g KwlpZiAoIWNydGMtPnN0YXRlLT5hY3RpdmUpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCXAtPmFjdGl2 ZSA9IHRydWU7Cj4gLQlwLT5waXBlX2h0b3RhbCA9IGludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsOwo+ICsJcC0+cGlwZV9odG90YWwgPSBjcnRjLT5zdGF0 ZS0+YWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKPiAgCXAtPnBpeGVsX3JhdGUgPSBpbGtfcGlw ZV9waXhlbF9yYXRlKGRldiwgY3J0Yyk7Cj4gIAo+ICAJaWYgKGNydGMtPnByaW1hcnktPnN0YXRl LT5mYikgewo+IEBAIC0yMDg0LDggKzIwNzgsOCBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93 bV9wYXJhbWV0ZXJzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQlwLT5jdXIuZW5hYmxlZCA9 IGZhbHNlOwo+ICAJCXAtPmN1ci5ieXRlc19wZXJfcGl4ZWwgPSAwOwo+ICAJfQo+IC0JcC0+cHJp Lmhvcml6X3BpeGVscyA9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiAtCXAtPmN1 ci5ob3Jpel9waXhlbHMgPSBpbnRlbF9jcnRjLT5iYXNlLmN1cnNvci0+c3RhdGUtPmNydGNfdzsK PiArCXAtPnByaS5ob3Jpel9waXhlbHMgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRl KS0+cGlwZV9zcmNfdzsKPiArCXAtPmN1ci5ob3Jpel9waXhlbHMgPSBjcnRjLT5jdXJzb3ItPnN0 YXRlLT5jcnRjX3c7Cj4gIAo+ICAJZHJtX2Zvcl9lYWNoX2xlZ2FjeV9wbGFuZShwbGFuZSwgJmRl di0+bW9kZV9jb25maWcucGxhbmVfbGlzdCkgewo+ICAJCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50 ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gQEAgLTI1ODksNyArMjU4Myw3IEBA IHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiAgCj4gIAludGhfYWN0aXZlX3BpcGUgPSAwOwo+ICAJZm9yX2VhY2hfY3J0YyhkZXYsIGNy dGMpIHsKPiAtCQlpZiAoIXRvX2ludGVsX2NydGMoY3J0YyktPmFjdGl2ZSkKPiArCQlpZiAoIWNy dGMtPnN0YXRlLT5hY3RpdmUpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlpZiAoY3J0YyA9PSBm b3JfY3J0YykKPiBAQCAtMjg2Miw3ICsyODU2LDcgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVf d21fZ2xvYmFsX3BhcmFtZXRlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lOwo+ICAKPiAgCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+ bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKQo+IC0JCWNvbmZpZy0+bnVtX3BpcGVzX2FjdGl2 ZSArPSB0b19pbnRlbF9jcnRjKGNydGMpLT5hY3RpdmU7Cj4gKwkJY29uZmlnLT5udW1fcGlwZXNf YWN0aXZlICs9IGNydGMtPnN0YXRlLT5hY3RpdmU7Cj4gIAo+ICAJLyogRklYTUU6IEkgZG9uJ3Qg dGhpbmsgd2UgbmVlZCB0aG9zZSB0d28gZ2xvYmFsIHBhcmFtZXRlcnMgb24gU0tMICovCj4gIAls aXN0X2Zvcl9lYWNoX2VudHJ5KHBsYW5lLCAmZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0LCBo ZWFkKSB7Cj4gQEAgLTI4ODEsMTIgKzI4NzUsMTQgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVf d21fcGlwZV9wYXJhbWV0ZXJzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCWVudW0gcGlwZSBw aXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICAJ c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWc7Cj4gIAlpbnQgaSA9IDE7IC8qIEluZGV4IGZvciBzcHJpdGUgcGxhbmVzIHN0 YXJ0ICovCj4gIAo+IC0JcC0+YWN0aXZlID0gaW50ZWxfY3J0Yy0+YWN0aXZlOwo+ICsJcGlwZV9j b25maWcgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiArCXAtPmFjdGl2ZSA9 IGNydGMtPnN0YXRlLT5hY3RpdmU7Cj4gIAlpZiAocC0+YWN0aXZlKSB7Cj4gLQkJcC0+cGlwZV9o dG90YWwgPSBpbnRlbF9jcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3Rh bDsKPiAtCQlwLT5waXhlbF9yYXRlID0gc2tsX3BpcGVfcGl4ZWxfcmF0ZShpbnRlbF9jcnRjLT5j b25maWcpOwo+ICsJCXAtPnBpcGVfaHRvdGFsID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZS5jcnRjX2h0b3RhbDsKPiArCQlwLT5waXhlbF9yYXRlID0gc2tsX3BpcGVfcGl4ZWxfcmF0 ZShwaXBlX2NvbmZpZyk7Cj4gIAo+ICAJCWZiID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiOwo+ ICAJCS8qIEZvciBwbGFuYXI6IEJwcCBpcyBmb3IgdXYgcGxhbmUsIHlfQnBwIGlzIGZvciB5IHBs YW5lICovCj4gQEAgLTI5MDMsOCArMjg5OSw4IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3dt X3BpcGVfcGFyYW1ldGVycyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCXAtPnBsYW5lWzBd LnlfYnl0ZXNfcGVyX3BpeGVsID0gMDsKPiAgCQkJcC0+cGxhbmVbMF0udGlsaW5nID0gRFJNX0ZP Uk1BVF9NT0RfTk9ORTsKPiAgCQl9Cj4gLQkJcC0+cGxhbmVbMF0uaG9yaXpfcGl4ZWxzID0gaW50 ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193Owo+IC0JCXAtPnBsYW5lWzBdLnZlcnRfcGl4ZWxz ID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oOwo+ICsJCXAtPnBsYW5lWzBdLmhvcml6 X3BpeGVscyA9IHBpcGVfY29uZmlnLT5waXBlX3NyY193Owo+ICsJCXAtPnBsYW5lWzBdLnZlcnRf cGl4ZWxzID0gcGlwZV9jb25maWctPnBpcGVfc3JjX2g7Cj4gIAkJcC0+cGxhbmVbMF0ucm90YXRp b24gPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+cm90YXRpb247Cj4gIAo+ICAJCWZiID0gY3J0Yy0+ Y3Vyc29yLT5zdGF0ZS0+ZmI7Cj4gQEAgLTMwNDIsNyArMzAzOCw3IEBAIHN0YXRpYyB2b2lkIHNr bF9jb21wdXRlX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiAgc3RhdGljIHVpbnQzMl90Cj4gIHNrbF9jb21wdXRlX2xpbmV0aW1lX3dtKHN0cnVjdCBk cm1fY3J0YyAqY3J0Yywgc3RydWN0IHNrbF9waXBlX3dtX3BhcmFtZXRlcnMgKnApCj4gIHsKPiAt CWlmICghdG9faW50ZWxfY3J0YyhjcnRjKS0+YWN0aXZlKQo+ICsJaWYgKCFjcnRjLT5zdGF0ZS0+ YWN0aXZlKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCXJldHVybiBESVZfUk9VTkRfVVAoOCAqIHAt PnBpcGVfaHRvdGFsICogMTAwMCwgcC0+cGl4ZWxfcmF0ZSk7Cj4gQEAgLTMyNjYsNyArMzI2Miw3 IEBAIHN0YXRpYyB2b2lkIHNrbF9mbHVzaF93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJICogcmUtYWxsb2NhdGUgdGhlIGZyZWVkIHNwYWNlIHdpdGhvdXQg dGhpcyBwaXBlIGZldGNoaW5nIGZyb20gaXQuCj4gIAkgKi8KPiAgCWZvcl9lYWNoX2ludGVsX2Ny dGMoZGV2LCBjcnRjKSB7Cj4gLQkJaWYgKCFjcnRjLT5hY3RpdmUpCj4gKwkJaWYgKCFjcnRjLT5i YXNlLnN0YXRlLT5hY3RpdmUpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlwaXBlID0gY3J0Yy0+ cGlwZTsKPiBAQCAtMzI4OSw3ICszMjg1LDcgQEAgc3RhdGljIHZvaWQgc2tsX2ZsdXNoX3dtX3Zh bHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkgKiBzcGFjZSBpcyBu b3QgdXNlZCBhbnltb3JlLgo+ICAJICovCj4gIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0 Yykgewo+IC0JCWlmICghY3J0Yy0+YWN0aXZlKQo+ICsJCWlmICghY3J0Yy0+YmFzZS5zdGF0ZS0+ YWN0aXZlKQo+ICAJCQljb250aW51ZTsKPiAgCj4gIAkJcGlwZSA9IGNydGMtPnBpcGU7Cj4gQEAg LTMzMTIsNyArMzMwOCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9mbHVzaF93bV92YWx1ZXMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJICogd2lsbCBqdXN0IGdldCBtb3JlIERE QiBzcGFjZSB3aXRoIHRoZSBjb3JyZWN0IFdNIHZhbHVlcy4KPiAgCSAqLwo+ICAJZm9yX2VhY2hf aW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKPiAtCQlpZiAoIWNydGMtPmFjdGl2ZSkKPiArCQlpZiAo IWNydGMtPmJhc2Uuc3RhdGUtPmFjdGl2ZSkKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCXBpcGUg PSBjcnRjLT5waXBlOwo+IEBAIC0zMzc4LDcgKzMzNzQsNyBAQCBzdGF0aWMgdm9pZCBza2xfdXBk YXRlX290aGVyX3BpcGVfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQlpZiAodGhpc19j cnRjLT5waXBlID09IGludGVsX2NydGMtPnBpcGUpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAtCQlp ZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKPiArCQlpZiAoIWludGVsX2NydGMtPmJhc2Uuc3RhdGUt PmFjdGl2ZSkKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCXdtX2NoYW5nZWQgPSBza2xfdXBkYXRl X3BpcGVfd20oJmludGVsX2NydGMtPmJhc2UsCj4gQEAgLTM2MDMsNyArMzU5OSw3IEBAIHN0YXRp YyB2b2lkIHNrbF9waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g IAkJaHctPnBsYW5lX3RyYW5zW3BpcGVdW2ldID0gSTkxNV9SRUFEKFBMQU5FX1dNX1RSQU5TKHBp cGUsIGkpKTsKPiAgCWh3LT5jdXJzb3JfdHJhbnNbcGlwZV0gPSBJOTE1X1JFQUQoQ1VSX1dNX1RS QU5TKHBpcGUpKTsKPiAgCj4gLQlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKPiArCWlmICghY3J0 Yy0+c3RhdGUtPmFjdGl2ZSkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJaHctPmRpcnR5W3BpcGVdID0g dHJ1ZTsKPiBAQCAtMzY1OCw3ICszNjU0LDcgQEAgc3RhdGljIHZvaWQgaWxrX3BpcGVfd21fZ2V0 X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCWlmIChJU19IQVNXRUxMKGRldikg fHwgSVNfQlJPQURXRUxMKGRldikpCj4gIAkJaHctPndtX2xpbmV0aW1lW3BpcGVdID0gSTkxNV9S RUFEKFBJUEVfV01fTElORVRJTUUocGlwZSkpOwo+ICAKPiAtCWFjdGl2ZS0+cGlwZV9lbmFibGVk ID0gaW50ZWxfY3J0Yy0+YWN0aXZlOwo+ICsJYWN0aXZlLT5waXBlX2VuYWJsZWQgPSBjcnRjLT5z dGF0ZS0+YWN0aXZlOwo+ICAKPiAgCWlmIChhY3RpdmUtPnBpcGVfZW5hYmxlZCkgewo+ICAJCXUz MiB0bXAgPSBody0+d21fcGlwZVtwaXBlXTsKPiAtLSAKPiAyLjEuMAo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRl cgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwu Y2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK