From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 04/11] drm/i915: Add for_each_connector_in_state helper macro Date: Fri, 10 Apr 2015 13:50:19 +0300 Message-ID: <1428663019.3588.32.camel@gmail.com> 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> <20150410094235.GF6092@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pd0-f171.google.com (mail-pd0-f171.google.com [209.85.192.171]) by gabe.freedesktop.org (Postfix) with ESMTP id E48456E925 for ; Fri, 10 Apr 2015 03:50:22 -0700 (PDT) Received: by pdbqa5 with SMTP id qa5so19124809pdb.1 for ; Fri, 10 Apr 2015 03:50:22 -0700 (PDT) In-Reply-To: <20150410094235.GF6092@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE1LTA0LTEwIGF0IDExOjQyICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ IE9uIEZyaSwgQXByIDEwLCAyMDE1IGF0IDExOjM4OjMzQU0gKzAzMDAsIEFuZGVyIENvbnNlbHZh biBkZSBPbGl2ZWlyYSB3cm90ZToKPiA+IFRoaXMgc2F2ZXMgc29tZSB0eXBpbmcgd2hlbmV2ZXIg YSBpdGVyYXRpb24gb3ZlciBhbGwgdGhlIGNvbm5lY3Rvcgo+ID4gc3RhdGVzIGluIHRoZSBhdG9t aWMgc3RhdGUgaXMgd3JpdHRlbiwgd2hpY2ggaGFwcGVucyBxdWl0ZSBvZnRlbi4KPiA+IAo+ID4g U2lnbmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2 YW4uZGUub2xpdmVpcmFAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgIHwgIDggKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYyAgICAgfCAgOSArKy0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyB8IDY1ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICB8IDEyICsrKy0tLS0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgfCAgNyArKy0tCj4gPiAgNSBmaWxl cyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBpbmRleCA3OGYzMWNiLi5lMTJiYzVhIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gQEAgLTI2NCw2ICsyNjQsMTQgQEAgZW51bSBocGRf cGluIHsKPiA+ICAJZm9yICgoZG9tYWluKSA9IDA7IChkb21haW4pIDwgUE9XRVJfRE9NQUlOX05V TTsgKGRvbWFpbikrKykJXAo+ID4gIAkJaWYgKCgxIDw8IChkb21haW4pKSAmIChtYXNrKSkKPiA+ ICAKPiA+ICsjZGVmaW5lIGZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVj dG9yLCBjb25uZWN0b3Jfc3RhdGUsIF9faSkgXAo+IAo+IEltbyB0aGlzIHNob3VsZCBiZSBhIGRy bV9hdG9taWMuaCB0aGluZy4gQXQgbGVhc3QgdGhlcmUncyBhIGxvdCBvZiBsb29wcwo+IHdpdGgg ZXhhY3RseSB0aGlzIHBhdHRlcm4gaW4gZHJtX2F0b21pY19oZWxwZXIuYyBhbmQgZHJtX2F0b21p Yy5jCj4gCj4gTWF5YmUgZXZlbiBkbyBoZWxwZXJzIGZvciBwbGFuZS9jcnRjIGxvb3BpbmcgdG9v LgoKV2UgY291bGQgZG8gdGhlbSwgYnV0IHVzdWFsbHkgd2UgYXJlIGludGVyZXN0ZWQgaW4gaW50 ZWxfY3J0Y19zdGF0ZSBvcgppbnRlbF9wbGFuZV9zdGF0ZSwgYW5kIHdlIGNhbid0IGhpZGUgdGhl IGNhc3RpbmcgaW4gdGhlIG1hY3JvIGlmIGl0IGlzCmRybV9hdG9taWMuaCBhcyBJIGRpZCBpbiBw YXRjaCA3LgoKQW5kZXIKCj4gLURhbmllbAo+IAo+IAo+ID4gKwlmb3IgKChfX2kpID0gMDsJCQkJ CQkJXAo+ID4gKwkgICAgIChjb25uZWN0b3IpID0gdG9faW50ZWxfY29ubmVjdG9yKChzdGF0ZSkt PmNvbm5lY3RvcnNbX19pXSksIFwKPiA+ICsJICAgICAoY29ubmVjdG9yX3N0YXRlKSA9IChzdGF0 ZSktPmNvbm5lY3Rvcl9zdGF0ZXNbX19pXSwJXAo+ID4gKwkgICAgIChfX2kpIDwgKHN0YXRlKS0+ bnVtX2Nvbm5lY3RvcjsJCQkJXAo+ID4gKwkgICAgIChfX2kpKyspCQkJCQkJCVwKPiA+ICsJCWlm IChjb25uZWN0b3IpCj4gPiArCj4gPiAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Cj4gPiAgc3Ry dWN0IGk5MTVfbW1fc3RydWN0Owo+ID4gIHN0cnVjdCBpOTE1X21tdV9vYmplY3Q7Cj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gaW5kZXggNDg2ZjZmYS4uMmUwMDVlMyAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gQEAgLTQ5NiwxOCArNDk2LDE5IEBAIGludGVs X2RkaV9nZXRfY3J0Y19uZXdfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqcmV0 ID0gTlVMTDsKPiA+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4gIAlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4gPiAgCWludCBudW1fZW5jb2RlcnMgPSAwOwo+ID4g IAlpbnQgaTsKPiA+ICAKPiA+ICAJc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+ID4g IAo+ID4gLQlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPm51bV9jb25uZWN0b3I7IGkrKykgewo+ID4g LQkJaWYgKCFzdGF0ZS0+Y29ubmVjdG9yc1tpXSB8fAo+ID4gLQkJICAgIHN0YXRlLT5jb25uZWN0 b3Jfc3RhdGVzW2ldLT5jcnRjICE9IGNydGNfc3RhdGUtPmJhc2UuY3J0YykKPiA+ICsJZm9yX2Vh Y2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwg aSkgewo+ID4gKwkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyAhPSBjcnRjX3N0YXRlLT5iYXNl LmNydGMpCj4gPiAgCQkJY29udGludWU7Cj4gPiAgCj4gPiAtCQlyZXQgPSB0b19pbnRlbF9lbmNv ZGVyKHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldLT5iZXN0X2VuY29kZXIpOwo+ID4gKwkJcmV0 ID0gdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2Rlcik7Cj4gPiAg CQludW1fZW5jb2RlcnMrKzsKPiA+ICAJfQo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+ID4gaW5kZXggODk0Nzg4ZC4uMzAzNWEzZCAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtNDM3LDEzICs0MzcsMTAgQEAgc3RhdGlj IGJvb2wgaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0g Y3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKPiA+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5lY3Rvcl9zdGF0ZTsKPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4g PiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ICAJaW50IGksIG51bV9j b25uZWN0b3JzID0gMDsKPiA+ICAKPiA+IC0JZm9yIChpID0gMDsgaSA8IHN0YXRlLT5udW1fY29u bmVjdG9yOyBpKyspIHsKPiA+IC0JCWlmICghc3RhdGUtPmNvbm5lY3RvcnNbaV0pCj4gPiAtCQkJ Y29udGludWU7Cj4gPiAtCj4gPiAtCQljb25uZWN0b3Jfc3RhdGUgPSBzdGF0ZS0+Y29ubmVjdG9y X3N0YXRlc1tpXTsKPiA+ICsJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25u ZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewo+ID4gIAkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+ Y3J0YyAhPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMpCj4gPiAgCQkJY29udGludWU7Cj4gPiAgCj4g PiBAQCAtNjkxOSwxNiArNjkxNiwxMyBAQCBzdGF0aWMgaW50IGk5eHhfY3J0Y19jb21wdXRlX2Ns b2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gIAlib29sIG9rLCBoYXNfcmVkdWNlZF9j bG9jayA9IGZhbHNlOwo+ID4gIAlib29sIGlzX2x2ZHMgPSBmYWxzZSwgaXNfZHNpID0gZmFsc2U7 Cj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ID4gKwlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiAgCWNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0Owo+ ID4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0 YXRlOwo+ID4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ ID4gIAlpbnQgaTsKPiA+ICAKPiA+IC0JZm9yIChpID0gMDsgaSA8IHN0YXRlLT5udW1fY29ubmVj dG9yOyBpKyspIHsKPiA+IC0JCWlmICghc3RhdGUtPmNvbm5lY3RvcnNbaV0pCj4gPiAtCQkJY29u dGludWU7Cj4gPiAtCj4gPiAtCQljb25uZWN0b3Jfc3RhdGUgPSBzdGF0ZS0+Y29ubmVjdG9yX3N0 YXRlc1tpXTsKPiA+ICsJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0 b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewo+ID4gIAkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+Y3J0 YyAhPSAmY3J0Yy0+YmFzZSkKPiA+ICAJCQljb250aW51ZTsKPiA+ICAKPiA+IEBAIC03NjE0LDE0 ICs3NjA4LDExIEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfZ2V0X3JlZmNsayhzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKPiA+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXI7Cj4gPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ICAJaW50IG51 bV9jb25uZWN0b3JzID0gMCwgaTsKPiA+ICAJYm9vbCBpc19sdmRzID0gZmFsc2U7Cj4gPiAgCj4g PiAtCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7Cj4gPiAtCQlp ZiAoIXN0YXRlLT5jb25uZWN0b3JzW2ldKQo+ID4gLQkJCWNvbnRpbnVlOwo+ID4gLQo+ID4gLQkJ Y29ubmVjdG9yX3N0YXRlID0gc3RhdGUtPmNvbm5lY3Rvcl9zdGF0ZXNbaV07Cj4gPiArCWZvcl9l YWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUs IGkpIHsKPiA+ICAJCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKQo+ID4gIAkJCWNvbnRpbnVlOwo+ID4gIAo+ID4gQEAgLTc4NzcsMTUgKzc4NjgsMTIg QEAgc3RhdGljIHVpbnQzMl90IGlyb25sYWtlX2NvbXB1dGVfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YywKPiA+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0 Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKPiA+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5lY3Rvcl9zdGF0ZTsKPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gPiAr CXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ICAJdWludDMyX3QgZHBsbDsK PiA+ICAJaW50IGZhY3RvciwgbnVtX2Nvbm5lY3RvcnMgPSAwLCBpOwo+ID4gIAlib29sIGlzX2x2 ZHMgPSBmYWxzZSwgaXNfc2R2byA9IGZhbHNlOwo+ID4gIAo+ID4gLQlmb3IgKGkgPSAwOyBpIDwg c3RhdGUtPm51bV9jb25uZWN0b3I7IGkrKykgewo+ID4gLQkJaWYgKCFzdGF0ZS0+Y29ubmVjdG9y c1tpXSkKPiA+IC0JCQljb250aW51ZTsKPiA+IC0KPiA+IC0JCWNvbm5lY3Rvcl9zdGF0ZSA9IHN0 YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldOwo+ID4gKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3Rh dGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gPiAgCQlpZiAoY29u bmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPmJhc2UuY3J0YykKPiA+ICAJCQljb250 aW51ZTsKPiA+ICAKPiA+IEBAIC0xMDUyMiw2ICsxMDUxMCw3IEBAIGNvbXB1dGVfYmFzZWxpbmVf cGlwZV9icHAoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gPiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZTsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9z dGF0ZTsKPiA+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4gIAlpbnQg YnBwLCBpOwo+ID4gIAo+ID4gQEAgLTEwNTY2LDEyICsxMDU1NSw4IEBAIGNvbXB1dGVfYmFzZWxp bmVfcGlwZV9icHAoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPiAgCXN0YXRlID0gcGlwZV9j b25maWctPmJhc2Uuc3RhdGU7Cj4gPiAgCj4gPiAgCS8qIENsYW1wIGRpc3BsYXkgYnBwIHRvIEVE SUQgdmFsdWUgKi8KPiA+IC0JZm9yIChpID0gMDsgaSA8IHN0YXRlLT5udW1fY29ubmVjdG9yOyBp KyspIHsKPiA+IC0JCWlmICghc3RhdGUtPmNvbm5lY3RvcnNbaV0pCj4gPiAtCQkJY29udGludWU7 Cj4gPiAtCj4gPiAtCQljb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3Ioc3RhdGUtPmNvbm5l Y3RvcnNbaV0pOwo+ID4gLQkJaWYgKHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldLT5jcnRjICE9 ICZjcnRjLT5iYXNlKQo+ID4gKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNv bm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gPiArCQlpZiAoY29ubmVjdG9yX3N0YXRl LT5jcnRjICE9ICZjcnRjLT5iYXNlKQo+ID4gIAkJCWNvbnRpbnVlOwo+ID4gIAo+ID4gIAkJY29u bmVjdGVkX3NpbmtfY29tcHV0ZV9icHAoY29ubmVjdG9yLCBwaXBlX2NvbmZpZyk7Cj4gPiBAQCAt MTA2NTgsMTQgKzEwNjQzLDExIEBAIHN0YXRpYyBib29sIGNoZWNrX3NpbmdsZV9lbmNvZGVyX2Ns b25pbmcoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gIAkJCQkJIHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gIHsKPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIg KnNvdXJjZV9lbmNvZGVyOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7 Cj4gPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4gPiAg CWludCBpOwo+ID4gIAo+ID4gLQlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPm51bV9jb25uZWN0b3I7 IGkrKykgewo+ID4gLQkJaWYgKCFzdGF0ZS0+Y29ubmVjdG9yc1tpXSkKPiA+IC0JCQljb250aW51 ZTsKPiA+IC0KPiA+IC0JCWNvbm5lY3Rvcl9zdGF0ZSA9IHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVz W2ldOwo+ID4gKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3Rvciwg Y29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gPiAgCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRjICE9 ICZjcnRjLT5iYXNlKQo+ID4gIAkJCWNvbnRpbnVlOwo+ID4gIAo+ID4gQEAgLTEwNjgyLDE0ICsx MDY2NCwxMSBAQCBzdGF0aWMgYm9vbCBjaGVja19lbmNvZGVyX2Nsb25pbmcoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gIAkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ ID4gIHsKPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gPiArCXN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiA+ICAJaW50IGk7Cj4gPiAgCj4gPiAtCWZvciAoaSA9IDA7 IGkgPCBzdGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7Cj4gPiAtCQlpZiAoIXN0YXRlLT5jb25u ZWN0b3JzW2ldKQo+ID4gLQkJCWNvbnRpbnVlOwo+ID4gLQo+ID4gLQkJY29ubmVjdG9yX3N0YXRl ID0gc3RhdGUtPmNvbm5lY3Rvcl9zdGF0ZXNbaV07Cj4gPiArCWZvcl9lYWNoX2Nvbm5lY3Rvcl9p bl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkpIHsKPiA+ICAJCWlm IChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCj4gPiAgCQkJY29udGludWU7 Cj4gPiAgCj4gPiBAQCAtMTA3MDUsNiArMTA2ODQsNyBAQCBzdGF0aWMgYm9vbCBjaGVja19kaWdp dGFsX3BvcnRfY29uZmxpY3RzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+ID4gIAlzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPiA+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yOwo+ID4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRl Owo+ID4gIAl1bnNpZ25lZCBpbnQgdXNlZF9wb3J0cyA9IDA7Cj4gPiAgCWludCBpOwo+ID4gQEAg LTEwNzE0LDExICsxMDY5NCw3IEBAIHN0YXRpYyBib29sIGNoZWNrX2RpZ2l0YWxfcG9ydF9jb25m bGljdHMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIAkgKiBsaXN0IHRvIGRl dGVjdCB0aGUgcHJvYmxlbSBvbiBkZGkgcGxhdGZvcm1zCj4gPiAgCSAqIHdoZXJlIHRoZXJlJ3Mg anVzdCBvbmUgZW5jb2RlciBwZXIgZGlnaXRhbCBwb3J0Lgo+ID4gIAkgKi8KPiA+IC0JZm9yIChp ID0gMDsgaSA8IHN0YXRlLT5udW1fY29ubmVjdG9yOyBpKyspIHsKPiA+IC0JCWlmICghc3RhdGUt PmNvbm5lY3RvcnNbaV0pCj4gPiAtCQkJY29udGludWU7Cj4gPiAtCj4gPiAtCQljb25uZWN0b3Jf c3RhdGUgPSBzdGF0ZS0+Y29ubmVjdG9yX3N0YXRlc1tpXTsKPiA+ICsJZm9yX2VhY2hfY29ubmVj dG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewo+ID4g IAkJaWYgKCFjb25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2RlcikKPiA+ICAJCQljb250aW51ZTsK PiA+ICAKPiA+IEBAIC0xMDg0NSwxMiArMTA4MjEsNyBAQCBlbmNvZGVyX3JldHJ5Ogo+ID4gIAkg KiBhZGp1c3QgaXQgYWNjb3JkaW5nIHRvIGxpbWl0YXRpb25zIG9yIGNvbm5lY3RvciBwcm9wZXJ0 aWVzLCBhbmQgYWxzbwo+ID4gIAkgKiBhIGNoYW5jZSB0byByZWplY3QgdGhlIG1vZGUgZW50aXJl bHkuCj4gPiAgCSAqLwo+ID4gLQlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPm51bV9jb25uZWN0b3I7 IGkrKykgewo+ID4gLQkJY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKHN0YXRlLT5jb25u ZWN0b3JzW2ldKTsKPiA+IC0JCWlmICghY29ubmVjdG9yKQo+ID4gLQkJCWNvbnRpbnVlOwo+ID4g LQo+ID4gLQkJY29ubmVjdG9yX3N0YXRlID0gc3RhdGUtPmNvbm5lY3Rvcl9zdGF0ZXNbaV07Cj4g PiArCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0 b3Jfc3RhdGUsIGkpIHsKPiA+ICAJCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0YykK PiA+ICAJCQljb250aW51ZTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5j Cj4gPiBpbmRleCA3MzM1MDg5Li41NTYxZWNhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwX21zdC5jCj4gPiBAQCAtNDAsNyArNDAsOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9t c3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCWlu dCBicHAsIGk7Cj4gPiAgCWludCBsYW5lX2NvdW50LCBzbG90cywgcmF0ZTsKPiA+ICAJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZTsKPiA+IC0Jc3RydWN0IGludGVsX2Nvbm5lY3RvciAqZm91bmQgPSBOVUxMOwo+ ID4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsICpmb3VuZCA9IE5VTEw7Cj4g PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4gPiAgCWlu dCBtc3RfcGJuOwo+ID4gIAo+ID4gIAlwaXBlX2NvbmZpZy0+ZHBfZW5jb2Rlcl9pc19tc3QgPSB0 cnVlOwo+ID4gQEAgLTcwLDEyICs3MSw5IEBAIHN0YXRpYyBib29sIGludGVsX2RwX21zdF9jb21w dXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAKPiA+ICAJc3Rh dGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZTsKPiA+ICAKPiA+IC0JZm9yIChpID0gMDsgaSA8 IHN0YXRlLT5udW1fY29ubmVjdG9yOyBpKyspIHsKPiA+IC0JCWlmICghc3RhdGUtPmNvbm5lY3Rv cnNbaV0pCj4gPiAtCQkJY29udGludWU7Cj4gPiAtCj4gPiAtCQlpZiAoc3RhdGUtPmNvbm5lY3Rv cl9zdGF0ZXNbaV0tPmJlc3RfZW5jb2RlciA9PSAmZW5jb2Rlci0+YmFzZSkgewo+ID4gLQkJCWZv dW5kID0gdG9faW50ZWxfY29ubmVjdG9yKHN0YXRlLT5jb25uZWN0b3JzW2ldKTsKPiA+ICsJZm9y X2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0 ZSwgaSkgewo+ID4gKwkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+YmVzdF9lbmNvZGVyID09ICZlbmNv ZGVyLT5iYXNlKSB7Cj4gPiArCQkJZm91bmQgPSBjb25uZWN0b3I7Cj4gPiAgCQkJYnJlYWs7Cj4g PiAgCQl9Cj4gPiAgCX0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+IGluZGV4IDAy MjUyZDkuLjlkMDI3NDYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4g QEAgLTk1Niw2ICs5NTYsNyBAQCBzdGF0aWMgYm9vbCBoZG1pXzEyYnBjX3Bvc3NpYmxlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXY7Cj4gPiAgCXN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZTsKPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gPiAr CXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ICAJc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiA+ICAJaW50IGNvdW50ID0gMCwgY291bnRf aGRtaSA9IDA7Cj4gPiAgCWludCBpOwo+ID4gQEAgLTk2NSwxMSArOTY2LDcgQEAgc3RhdGljIGJv b2wgaGRtaV8xMmJwY19wb3NzaWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPiA+ICAKPiA+ICAJc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+ID4gIAo+ID4g LQlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPm51bV9jb25uZWN0b3I7IGkrKykgewo+ID4gLQkJaWYg KCFzdGF0ZS0+Y29ubmVjdG9yc1tpXSkKPiA+IC0JCQljb250aW51ZTsKPiA+IC0KPiA+IC0JCWNv bm5lY3Rvcl9zdGF0ZSA9IHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldOwo+ID4gKwlmb3JfZWFj aF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBp KSB7Cj4gPiAgCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPmJhc2Uu Y3J0YykKPiA+ICAJCQljb250aW51ZTsKPiA+ICAKPiA+IC0tIAo+ID4gMi4xLjAKPiA+IAo+ID4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IEludGVs LWdmeCBtYWlsaW5nIGxpc3QKPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK PiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=