From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 04/11] drm/i915: Add for_each_connector_in_state helper macro Date: Fri, 10 Apr 2015 11:42:35 +0200 Message-ID: <20150410094235.GF6092@phenom.ffwll.local> References: <1428655120-22494-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1428655120-22494-5-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f169.google.com (mail-wi0-f169.google.com [209.85.212.169]) by gabe.freedesktop.org (Postfix) with ESMTP id 65A896E90E for ; Fri, 10 Apr 2015 02:40:36 -0700 (PDT) Received: by wiun10 with SMTP id n10so19739339wiu.1 for ; Fri, 10 Apr 2015 02:40:35 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1428655120-22494-5-git-send-email-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 T24gRnJpLCBBcHIgMTAsIDIwMTUgYXQgMTE6Mzg6MzNBTSArMDMwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IFRoaXMgc2F2ZXMgc29tZSB0eXBpbmcgd2hlbmV2ZXIgYSBp dGVyYXRpb24gb3ZlciBhbGwgdGhlIGNvbm5lY3Rvcgo+IHN0YXRlcyBpbiB0aGUgYXRvbWljIHN0 YXRlIGlzIHdyaXR0ZW4sIHdoaWNoIGhhcHBlbnMgcXVpdGUgb2Z0ZW4uCj4gCj4gU2lnbmVkLW9m Zi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xp dmVpcmFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgfCAgOCArKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAg fCAgOSArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA2NSAr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBfbXN0LmMgIHwgMTIgKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMgICAgfCAgNyArKy0tCj4gIDUgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9u cygrKSwgNjMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXgg NzhmMzFjYi4uZTEyYmM1YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yNjQs NiArMjY0LDE0IEBAIGVudW0gaHBkX3BpbiB7Cj4gIAlmb3IgKChkb21haW4pID0gMDsgKGRvbWFp bikgPCBQT1dFUl9ET01BSU5fTlVNOyAoZG9tYWluKSsrKQlcCj4gIAkJaWYgKCgxIDw8IChkb21h aW4pKSAmIChtYXNrKSkKPiAgCj4gKyNkZWZpbmUgZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRl KHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgX19pKSBcCgpJbW8gdGhpcyBzaG91 bGQgYmUgYSBkcm1fYXRvbWljLmggdGhpbmcuIEF0IGxlYXN0IHRoZXJlJ3MgYSBsb3Qgb2YgbG9v cHMKd2l0aCBleGFjdGx5IHRoaXMgcGF0dGVybiBpbiBkcm1fYXRvbWljX2hlbHBlci5jIGFuZCBk cm1fYXRvbWljLmMKCk1heWJlIGV2ZW4gZG8gaGVscGVycyBmb3IgcGxhbmUvY3J0YyBsb29waW5n IHRvby4KLURhbmllbAoKCj4gKwlmb3IgKChfX2kpID0gMDsJCQkJCQkJXAo+ICsJICAgICAoY29u bmVjdG9yKSA9IHRvX2ludGVsX2Nvbm5lY3Rvcigoc3RhdGUpLT5jb25uZWN0b3JzW19faV0pLCBc Cj4gKwkgICAgIChjb25uZWN0b3Jfc3RhdGUpID0gKHN0YXRlKS0+Y29ubmVjdG9yX3N0YXRlc1tf X2ldLAlcCj4gKwkgICAgIChfX2kpIDwgKHN0YXRlKS0+bnVtX2Nvbm5lY3RvcjsJCQkJXAo+ICsJ ICAgICAoX19pKSsrKQkJCQkJCQlcCj4gKwkJaWYgKGNvbm5lY3RvcikKPiArCj4gIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlOwo+ICBzdHJ1Y3QgaTkxNV9tbV9zdHJ1Y3Q7Cj4gIHN0cnVjdCBpOTE1 X21tdV9vYmplY3Q7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCA0ODZmNmZhLi4y ZTAwNWUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtNDk2LDE4ICs0OTYs MTkgQEAgaW50ZWxfZGRpX2dldF9jcnRjX25ld19lbmNvZGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICpyZXQgPSBOVUxMOwo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJ c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiAgCWludCBudW1fZW5jb2RlcnMgPSAwOwo+ICAJaW50 IGk7Cj4gIAo+ICAJc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+ICAKPiAtCWZvciAo aSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7Cj4gLQkJaWYgKCFzdGF0ZS0+ Y29ubmVjdG9yc1tpXSB8fAo+IC0JCSAgICBzdGF0ZS0+Y29ubmVjdG9yX3N0YXRlc1tpXS0+Y3J0 YyAhPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMpCj4gKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3Rh dGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gKwkJaWYgKGNvbm5l Y3Rvcl9zdGF0ZS0+Y3J0YyAhPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMpCj4gIAkJCWNvbnRpbnVl Owo+ICAKPiAtCQlyZXQgPSB0b19pbnRlbF9lbmNvZGVyKHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVz W2ldLT5iZXN0X2VuY29kZXIpOwo+ICsJCXJldCA9IHRvX2ludGVsX2VuY29kZXIoY29ubmVjdG9y X3N0YXRlLT5iZXN0X2VuY29kZXIpOwo+ICAJCW51bV9lbmNvZGVycysrOwo+ICAJfQo+ICAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggODk0Nzg4ZC4uMzAzNWEzZCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDM3LDEzICs0Mzcs MTAgQEAgc3RhdGljIGJvb2wgaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXI7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gIAlpbnQgaSwgbnVt X2Nvbm5lY3RvcnMgPSAwOwo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2Nvbm5l Y3RvcjsgaSsrKSB7Cj4gLQkJaWYgKCFzdGF0ZS0+Y29ubmVjdG9yc1tpXSkKPiAtCQkJY29udGlu dWU7Cj4gLQo+IC0JCWNvbm5lY3Rvcl9zdGF0ZSA9IHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ld Owo+ICsJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5l Y3Rvcl9zdGF0ZSwgaSkgewo+ICAJCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKQo+ICAJCQljb250aW51ZTsKPiAgCj4gQEAgLTY5MTksMTYgKzY5MTYs MTMgQEAgc3RhdGljIGludCBpOXh4X2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKPiAgCWJvb2wgb2ssIGhhc19yZWR1Y2VkX2Nsb2NrID0gZmFsc2U7Cj4gIAlib29s IGlzX2x2ZHMgPSBmYWxzZSwgaXNfZHNpID0gZmFsc2U7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcjsKPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiAgCWNv bnN0IGludGVsX2xpbWl0X3QgKmxpbWl0Owo+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4gIAlpbnQgaTsKPiAgCj4gLQlmb3IgKGkgPSAwOyBpIDwg c3RhdGUtPm51bV9jb25uZWN0b3I7IGkrKykgewo+IC0JCWlmICghc3RhdGUtPmNvbm5lY3RvcnNb aV0pCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQljb25uZWN0b3Jfc3RhdGUgPSBzdGF0ZS0+Y29u bmVjdG9yX3N0YXRlc1tpXTsKPiArCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwg Y29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkpIHsKPiAgCQlpZiAoY29ubmVjdG9yX3N0YXRl LT5jcnRjICE9ICZjcnRjLT5iYXNlKQo+ICAJCQljb250aW51ZTsKPiAgCj4gQEAgLTc2MTQsMTQg Kzc2MDgsMTEgQEAgc3RhdGljIGludCBpcm9ubGFrZV9nZXRfcmVmY2xrKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl ID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uZWN0b3Jfc3RhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPiAr CXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiAgCWludCBudW1fY29ubmVjdG9y cyA9IDAsIGk7Cj4gIAlib29sIGlzX2x2ZHMgPSBmYWxzZTsKPiAgCj4gLQlmb3IgKGkgPSAwOyBp IDwgc3RhdGUtPm51bV9jb25uZWN0b3I7IGkrKykgewo+IC0JCWlmICghc3RhdGUtPmNvbm5lY3Rv cnNbaV0pCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQljb25uZWN0b3Jfc3RhdGUgPSBzdGF0ZS0+ Y29ubmVjdG9yX3N0YXRlc1tpXTsKPiArCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0 ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkpIHsKPiAgCQlpZiAoY29ubmVjdG9yX3N0 YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPmJhc2UuY3J0YykKPiAgCQkJY29udGludWU7Cj4gIAo+ IEBAIC03ODc3LDE1ICs3ODY4LDEyIEBAIHN0YXRpYyB1aW50MzJfdCBpcm9ubGFrZV9jb21wdXRl X2RwbGwoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+ICAJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyOwo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJdWlu dDMyX3QgZHBsbDsKPiAgCWludCBmYWN0b3IsIG51bV9jb25uZWN0b3JzID0gMCwgaTsKPiAgCWJv b2wgaXNfbHZkcyA9IGZhbHNlLCBpc19zZHZvID0gZmFsc2U7Cj4gIAo+IC0JZm9yIChpID0gMDsg aSA8IHN0YXRlLT5udW1fY29ubmVjdG9yOyBpKyspIHsKPiAtCQlpZiAoIXN0YXRlLT5jb25uZWN0 b3JzW2ldKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJY29ubmVjdG9yX3N0YXRlID0gc3RhdGUt PmNvbm5lY3Rvcl9zdGF0ZXNbaV07Cj4gKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3Rh dGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gIAkJaWYgKGNvbm5lY3Rvcl9z dGF0ZS0+Y3J0YyAhPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMpCj4gIAkJCWNvbnRpbnVlOwo+ICAK PiBAQCAtMTA1MjIsNiArMTA1MTAsNyBAQCBjb21wdXRlX2Jhc2VsaW5lX3BpcGVfYnBwKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gKwlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ICAJc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJaW50IGJwcCwgaTsKPiAgCj4gQEAgLTEwNTY2LDEy ICsxMDU1NSw4IEBAIGNvbXB1dGVfYmFzZWxpbmVfcGlwZV9icHAoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4gIAlzdGF0ZSA9IHBpcGVfY29uZmlnLT5iYXNlLnN0YXRlOwo+ICAKPiAgCS8qIENs YW1wIGRpc3BsYXkgYnBwIHRvIEVESUQgdmFsdWUgKi8KPiAtCWZvciAoaSA9IDA7IGkgPCBzdGF0 ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7Cj4gLQkJaWYgKCFzdGF0ZS0+Y29ubmVjdG9yc1tpXSkK PiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihz dGF0ZS0+Y29ubmVjdG9yc1tpXSk7Cj4gLQkJaWYgKHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ld LT5jcnRjICE9ICZjcnRjLT5iYXNlKQo+ICsJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0 YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewo+ICsJCWlmIChjb25uZWN0b3Jf c3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQljb25u ZWN0ZWRfc2lua19jb21wdXRlX2JwcChjb25uZWN0b3IsIHBpcGVfY29uZmlnKTsKPiBAQCAtMTA2 NTgsMTQgKzEwNjQzLDExIEBAIHN0YXRpYyBib29sIGNoZWNrX3NpbmdsZV9lbmNvZGVyX2Nsb25p bmcoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCQkJCSBzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKPiAgewo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKnNvdXJjZV9l bmNvZGVyOwo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiAgCWludCBpOwo+ICAKPiAt CWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7Cj4gLQkJaWYgKCFz dGF0ZS0+Y29ubmVjdG9yc1tpXSkKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWNvbm5lY3Rvcl9z dGF0ZSA9IHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldOwo+ICsJZm9yX2VhY2hfY29ubmVjdG9y X2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewo+ICAJCWlm IChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCj4gIAkJCWNvbnRpbnVlOwo+ ICAKPiBAQCAtMTA2ODIsMTQgKzEwNjY0LDExIEBAIHN0YXRpYyBib29sIGNoZWNrX2VuY29kZXJf Y2xvbmluZyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCQkgIHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsK PiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiAgCXN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4gIAlpbnQgaTsKPiAgCj4gLQlmb3IgKGkg PSAwOyBpIDwgc3RhdGUtPm51bV9jb25uZWN0b3I7IGkrKykgewo+IC0JCWlmICghc3RhdGUtPmNv bm5lY3RvcnNbaV0pCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQljb25uZWN0b3Jfc3RhdGUgPSBz dGF0ZS0+Y29ubmVjdG9yX3N0YXRlc1tpXTsKPiArCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0 ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkpIHsKPiAgCQlpZiAoY29ubmVj dG9yX3N0YXRlLT5jcnRjICE9ICZjcnRjLT5iYXNlKQo+ICAJCQljb250aW51ZTsKPiAgCj4gQEAg LTEwNzA1LDYgKzEwNjg0LDcgQEAgc3RhdGljIGJvb2wgY2hlY2tfZGlnaXRhbF9wb3J0X2NvbmZs aWN0cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXI7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gIAlzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ICAJdW5zaWduZWQgaW50IHVzZWRf cG9ydHMgPSAwOwo+ICAJaW50IGk7Cj4gQEAgLTEwNzE0LDExICsxMDY5NCw3IEBAIHN0YXRpYyBi b29sIGNoZWNrX2RpZ2l0YWxfcG9ydF9jb25mbGljdHMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKQo+ICAJICogbGlzdCB0byBkZXRlY3QgdGhlIHByb2JsZW0gb24gZGRpIHBsYXRmb3Jt cwo+ICAJICogd2hlcmUgdGhlcmUncyBqdXN0IG9uZSBlbmNvZGVyIHBlciBkaWdpdGFsIHBvcnQu Cj4gIAkgKi8KPiAtCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7 Cj4gLQkJaWYgKCFzdGF0ZS0+Y29ubmVjdG9yc1tpXSkKPiAtCQkJY29udGludWU7Cj4gLQo+IC0J CWNvbm5lY3Rvcl9zdGF0ZSA9IHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldOwo+ICsJZm9yX2Vh Y2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwg aSkgewo+ICAJCWlmICghY29ubmVjdG9yX3N0YXRlLT5iZXN0X2VuY29kZXIpCj4gIAkJCWNvbnRp bnVlOwo+ICAKPiBAQCAtMTA4NDUsMTIgKzEwODIxLDcgQEAgZW5jb2Rlcl9yZXRyeToKPiAgCSAq IGFkanVzdCBpdCBhY2NvcmRpbmcgdG8gbGltaXRhdGlvbnMgb3IgY29ubmVjdG9yIHByb3BlcnRp ZXMsIGFuZCBhbHNvCj4gIAkgKiBhIGNoYW5jZSB0byByZWplY3QgdGhlIG1vZGUgZW50aXJlbHku Cj4gIAkgKi8KPiAtCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7 Cj4gLQkJY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKHN0YXRlLT5jb25uZWN0b3JzW2ld KTsKPiAtCQlpZiAoIWNvbm5lY3RvcikKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWNvbm5lY3Rv cl9zdGF0ZSA9IHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldOwo+ICsJZm9yX2VhY2hfY29ubmVj dG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewo+ICAJ CWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0YykKPiAgCQkJY29udGludWU7Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gaW5kZXggNzMzNTA4OS4uNTU2MWVjYSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gQEAgLTQwLDcgKzQwLDggQEAg c3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICAJaW50IGJwcCwgaTsKPiAgCWludCBsYW5lX2NvdW50LCBzbG90cywg cmF0ZTsKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpm b3VuZCA9IE5VTEw7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsICpmb3Vu ZCA9IE5VTEw7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRl Owo+ICAJaW50IG1zdF9wYm47Cj4gIAo+ICAJcGlwZV9jb25maWctPmRwX2VuY29kZXJfaXNfbXN0 ID0gdHJ1ZTsKPiBAQCAtNzAsMTIgKzcxLDkgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2Nv bXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCXN0YXRl ID0gcGlwZV9jb25maWctPmJhc2Uuc3RhdGU7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IHN0YXRl LT5udW1fY29ubmVjdG9yOyBpKyspIHsKPiAtCQlpZiAoIXN0YXRlLT5jb25uZWN0b3JzW2ldKQo+ IC0JCQljb250aW51ZTsKPiAtCj4gLQkJaWYgKHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldLT5i ZXN0X2VuY29kZXIgPT0gJmVuY29kZXItPmJhc2UpIHsKPiAtCQkJZm91bmQgPSB0b19pbnRlbF9j b25uZWN0b3Ioc3RhdGUtPmNvbm5lY3RvcnNbaV0pOwo+ICsJZm9yX2VhY2hfY29ubmVjdG9yX2lu X3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewo+ICsJCWlmIChj b25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2RlciA9PSAmZW5jb2Rlci0+YmFzZSkgewo+ICsJCQlm b3VuZCA9IGNvbm5lY3RvcjsKPiAgCQkJYnJlYWs7Cj4gIAkJfQo+ICAJfQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oZG1pLmMKPiBpbmRleCAwMjI1MmQ5Li45ZDAyNzQ2IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYwo+IEBAIC05NTYsNiArOTU2LDcgQEAgc3RhdGljIGJvb2wgaGRtaV8x MmJwY19wb3NzaWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKPiAgCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyOwo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiAgCWludCBjb3VudCA9IDAs IGNvdW50X2hkbWkgPSAwOwo+ICAJaW50IGk7Cj4gQEAgLTk2NSwxMSArOTY2LDcgQEAgc3RhdGlj IGJvb2wgaGRtaV8xMmJwY19wb3NzaWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiAgCj4gIAlzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4gIAo+IC0JZm9y IChpID0gMDsgaSA8IHN0YXRlLT5udW1fY29ubmVjdG9yOyBpKyspIHsKPiAtCQlpZiAoIXN0YXRl LT5jb25uZWN0b3JzW2ldKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJY29ubmVjdG9yX3N0YXRl ID0gc3RhdGUtPmNvbm5lY3Rvcl9zdGF0ZXNbaV07Cj4gKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5f c3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gIAkJaWYgKGNv bm5lY3Rvcl9zdGF0ZS0+Y3J0YyAhPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMpCj4gIAkJCWNvbnRp bnVlOwo+ICAKPiAtLSAKPiAyLjEuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK