From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 17/20] drm/i915: Convert intel_pipe_will_have_type() to using atomic state Date: Fri, 27 Mar 2015 10:29:31 +0100 Message-ID: <20150327092931.GQ23521@phenom.ffwll.local> References: <1426861099-28445-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1426861099-28445-18-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-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 63DD16E369 for ; Fri, 27 Mar 2015 02:27:45 -0700 (PDT) Received: by wibg7 with SMTP id g7so34989298wib.1 for ; Fri, 27 Mar 2015 02:27:44 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1426861099-28445-18-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 T24gRnJpLCBNYXIgMjAsIDIwMTUgYXQgMDQ6MTg6MTdQTSArMDIwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IFBhc3MgYSBjcnRjX3N0YXRlIHRvIGl0IGFuZCBmaW5kIHdo ZXRoZXIgdGhlIHBpcGUgaGFzIGFuIGVuY29kZXIgb2YgYQo+IGdpdmVuIHR5cGUgYnkgbG9va2lu ZyBhdCB0aGUgZHJtX2F0b21pY19zdGF0ZSB0aGUgY3J0Y19zdGF0ZSBwb2ludHMgdG8uCj4gCj4g VW50aWwgcmVjZW50bHkgaTl4eF9nZXRfcmVmY2xrKCkgdXNlZCB0byBiZSBjYWxsZWQgaW5kaXJl Y3RseSBmcm9tCj4gdmx2X2ZvcmNlX3BsbF9vbigpIHdpdGggYSBkdW1teSBjcnRjX3N0YXRlLiBU aGF0IGR1bW15IGNydGMgc3RhdGUgaXMgbm90Cj4gY29udmVydGVkIHRvIGJlIHBhcnQgb2YgYSBm dWxsIGRybSBhdG9taWMgc3RhdGUsIHNvIGFkZCBhIFdBUk4gaW4gY2FzZQo+IHNvbWVvbmUgZGVj aWRlcyB0byBjYWxsIHRoYXQgYWdhaW4gd2l0aCBhIHN1Y2ggZHVtbXkgc3RhdGUuCj4gCj4gdjI6 IFdhcm4gaWYgdGhlcmUgaXMgbm8gY29ubmVjdG9ycyBmb3IgYSBnaXZlbiBjcnRjLiAoRGFuaWVs KQo+ICAgICBSZXBsYWNlIGNvbW1lbnQgaTl4eF9nZXRfcmVmY2xrKCkgd2l0aCBhIFdBUk5fT04o KS4gKEFuZGVyKQoKSW50ZXJlc3Rpbmcgc3RvcnkuIEkndmUgZHVnIG91dCB0aGUgcmVsZXZhbnQg Y29tbWl0cyBhbmQgYWRkZWQgYSBub3RlCndoaWxlIG1lcmdpbmcuCi1EYW5pZWwKCj4gCj4gU2ln bmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4u ZGUub2xpdmVpcmFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oICAgICAgfCAgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMTMzICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gIDIgZmlsZXMg Y2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gaW5kZXggN2M4YjBhZC4uYjcxZGVjMyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+IEBAIC01NDQsNyArNTQ0LDcgQEAgc3RydWN0IGRybV9pOTE1X2Rpc3BsYXlf ZnVuY3Mgewo+ICAJICogUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIG9uIGZhaWx1cmUu Cj4gIAkgKi8KPiAgCWJvb2wgKCpmaW5kX2RwbGwpKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAq bGltaXQsCj4gLQkJCSAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJCSAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCSAgaW50IHRhcmdldCwgaW50IHJlZmNs aywKPiAgCQkJICBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ssCj4gIAkJCSAgc3RydWN0IGRwbGwg KmJlc3RfY2xvY2spOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBh YmZiN2E5Li4yNmY0ZDMwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ IEBAIC00MzEsMjUgKzQzMSw0MSBAQCBib29sIGludGVsX3BpcGVfaGFzX3R5cGUoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsIGVudW0gaW50ZWxfb3V0cHV0X3R5cGUgdHlwZSkKPiAgICogaW50ZWxf cGlwZV9oYXNfdHlwZSgpIGJ1dCBsb29raW5nIGF0IGVuY29kZXItPm5ld19jcnRjIGluc3RlYWQg b2YKPiAgICogZW5jb2Rlci0+Y3J0Yy4KPiAgICovCj4gLXN0YXRpYyBib29sIGludGVsX3BpcGVf d2lsbF9oYXZlX3R5cGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsIGludCB0eXBlKQo+ICtzdGF0 aWMgYm9vbCBpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkJICAgICAgaW50IHR5cGUpCj4gIHsKPiAtCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ICAJc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXI7Cj4gKwlpbnQgaSwgbnVtX2Nvbm5lY3RvcnMgPSAwOwo+ICsKPiArCWZvciAoaSA9 IDA7IGkgPCBzdGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7Cj4gKwkJaWYgKCFzdGF0ZS0+Y29u bmVjdG9yc1tpXSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWNvbm5lY3Rvcl9zdGF0ZSA9IHN0 YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldOwo+ICsJCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMg IT0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJbnVtX2Nv bm5lY3RvcnMrKzsKPiAgCj4gLQlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRldiwgZW5jb2RlcikK PiAtCQlpZiAoZW5jb2Rlci0+bmV3X2NydGMgPT0gY3J0YyAmJiBlbmNvZGVyLT50eXBlID09IHR5 cGUpCj4gKwkJZW5jb2RlciA9IHRvX2ludGVsX2VuY29kZXIoY29ubmVjdG9yX3N0YXRlLT5iZXN0 X2VuY29kZXIpOwo+ICsJCWlmIChlbmNvZGVyLT50eXBlID09IHR5cGUpCj4gIAkJCXJldHVybiB0 cnVlOwo+ICsJfQo+ICsKPiArCVdBUk5fT04obnVtX2Nvbm5lY3RvcnMgPT0gMCk7Cj4gIAo+ICAJ cmV0dXJuIGZhbHNlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3QgaW50ZWxfbGltaXRfdCAqaW50 ZWxfaXJvbmxha2VfbGltaXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gLQkJCQkJCWludCBy ZWZjbGspCj4gK3N0YXRpYyBjb25zdCBpbnRlbF9saW1pdF90ICoKPiAraW50ZWxfaXJvbmxha2Vf bGltaXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGludCByZWZjbGspCj4g IHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKPiAgCWNvbnN0 IGludGVsX2xpbWl0X3QgKmxpbWl0Owo+ICAKPiAtCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90 eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSkgewo+ICsJaWYgKGludGVsX3BpcGVfd2lsbF9o YXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKSB7Cj4gIAkJaWYgKGludGVs X2lzX2R1YWxfbGlua19sdmRzKGRldikpIHsKPiAgCQkJaWYgKHJlZmNsayA9PSAxMDAwMDApCj4g IAkJCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfaXJvbmxha2VfZHVhbF9sdmRzXzEwMG07Cj4gQEAg LTQ2NywyMCArNDgzLDIxIEBAIHN0YXRpYyBjb25zdCBpbnRlbF9saW1pdF90ICppbnRlbF9pcm9u bGFrZV9saW1pdChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCXJldHVybiBsaW1pdDsKPiAg fQo+ICAKPiAtc3RhdGljIGNvbnN0IGludGVsX2xpbWl0X3QgKmludGVsX2c0eF9saW1pdChzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiArc3RhdGljIGNvbnN0IGludGVsX2xpbWl0X3QgKgo+ICtp bnRlbF9nNHhfbGltaXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsK PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiArCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKPiAgCWNvbnN0IGlu dGVsX2xpbWl0X3QgKmxpbWl0Owo+ICAKPiAtCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBl KGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSkgewo+ICsJaWYgKGludGVsX3BpcGVfd2lsbF9oYXZl X3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKSB7Cj4gIAkJaWYgKGludGVsX2lz X2R1YWxfbGlua19sdmRzKGRldikpCj4gIAkJCWxpbWl0ID0gJmludGVsX2xpbWl0c19nNHhfZHVh bF9jaGFubmVsX2x2ZHM7Cj4gIAkJZWxzZQo+ICAJCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfZzR4 X3NpbmdsZV9jaGFubmVsX2x2ZHM7Cj4gLQl9IGVsc2UgaWYgKGludGVsX3BpcGVfd2lsbF9oYXZl X3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0hETUkpIHx8Cj4gLQkJICAgaW50ZWxfcGlwZV93aWxs X2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfQU5BTE9HKSkgewo+ICsJfSBlbHNlIGlmIChp bnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSB8 fAo+ICsJCSAgIGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VU UFVUX0FOQUxPRykpIHsKPiAgCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfZzR4X2hkbWk7Cj4gLQl9 IGVsc2UgaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX1NE Vk8pKSB7Cj4gKwl9IGVsc2UgaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0 ZSwgSU5URUxfT1VUUFVUX1NEVk8pKSB7Cj4gIAkJbGltaXQgPSAmaW50ZWxfbGltaXRzX2c0eF9z ZHZvOwo+ICAJfSBlbHNlIC8qIFRoZSBvcHRpb24gaXMgZm9yIG90aGVyIG91dHB1dHMgKi8KPiAg CQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfaTl4eF9zZHZvOwo+IEBAIC00ODgsMTcgKzUwNSwxOCBA QCBzdGF0aWMgY29uc3QgaW50ZWxfbGltaXRfdCAqaW50ZWxfZzR4X2xpbWl0KHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjKQo+ICAJcmV0dXJuIGxpbWl0Owo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3Qg aW50ZWxfbGltaXRfdCAqaW50ZWxfbGltaXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsIGludCBy ZWZjbGspCj4gK3N0YXRpYyBjb25zdCBpbnRlbF9saW1pdF90ICoKPiAraW50ZWxfbGltaXQoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGludCByZWZjbGspCj4gIHsKPiAtCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKPiAgCWNvbnN0IGludGVsX2xp bWl0X3QgKmxpbWl0Owo+ICAKPiAgCWlmIChIQVNfUENIX1NQTElUKGRldikpCj4gLQkJbGltaXQg PSBpbnRlbF9pcm9ubGFrZV9saW1pdChjcnRjLCByZWZjbGspOwo+ICsJCWxpbWl0ID0gaW50ZWxf aXJvbmxha2VfbGltaXQoY3J0Y19zdGF0ZSwgcmVmY2xrKTsKPiAgCWVsc2UgaWYgKElTX0c0WChk ZXYpKSB7Cj4gLQkJbGltaXQgPSBpbnRlbF9nNHhfbGltaXQoY3J0Yyk7Cj4gKwkJbGltaXQgPSBp bnRlbF9nNHhfbGltaXQoY3J0Y19zdGF0ZSk7Cj4gIAl9IGVsc2UgaWYgKElTX1BJTkVWSUVXKGRl dikpIHsKPiAtCQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQ VVRfTFZEUykpCj4gKwkJaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwg SU5URUxfT1VUUFVUX0xWRFMpKQo+ICAJCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfcGluZXZpZXdf bHZkczsKPiAgCQllbHNlCj4gIAkJCWxpbWl0ID0gJmludGVsX2xpbWl0c19waW5ldmlld19zZHZv Owo+IEBAIC01MDcsMTQgKzUyNSwxNCBAQCBzdGF0aWMgY29uc3QgaW50ZWxfbGltaXRfdCAqaW50 ZWxfbGltaXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsIGludCByZWZjbGspCj4gIAl9IGVsc2Ug aWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+ICAJCWxpbWl0ID0gJmludGVsX2xpbWl0c192bHY7 Cj4gIAl9IGVsc2UgaWYgKCFJU19HRU4yKGRldikpIHsKPiAtCQlpZiAoaW50ZWxfcGlwZV93aWxs X2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykpCj4gKwkJaWYgKGludGVsX3BpcGVf d2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKQo+ICAJCQlsaW1p dCA9ICZpbnRlbF9saW1pdHNfaTl4eF9sdmRzOwo+ICAJCWVsc2UKPiAgCQkJbGltaXQgPSAmaW50 ZWxfbGltaXRzX2k5eHhfc2R2bzsKPiAgCX0gZWxzZSB7Cj4gLQkJaWYgKGludGVsX3BpcGVfd2ls bF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpKQo+ICsJCWlmIChpbnRlbF9waXBl X3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSkKPiAgCQkJbGlt aXQgPSAmaW50ZWxfbGltaXRzX2k4eHhfbHZkczsKPiAtCQllbHNlIGlmIChpbnRlbF9waXBlX3dp bGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9EVk8pKQo+ICsJCWVsc2UgaWYgKGludGVs X3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RWTykpCj4gIAkJ CWxpbWl0ID0gJmludGVsX2xpbWl0c19pOHh4X2R2bzsKPiAgCQllbHNlCj4gIAkJCWxpbWl0ID0g JmludGVsX2xpbWl0c19pOHh4X2RhYzsKPiBAQCAtNjAxLDE1ICs2MTksMTcgQEAgc3RhdGljIGJv b2wgaW50ZWxfUExMX2lzX3ZhbGlkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIH0KPiAgCj4g IHN0YXRpYyBib29sCj4gLWk5eHhfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAq bGltaXQsIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICtpOXh4X2ZpbmRfYmVzdF9kcGxsKGNv bnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LAo+ICsJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywgaW50ZWxfY2xv Y2tfdCAqbWF0Y2hfY2xvY2ssCj4gIAkJICAgIGludGVsX2Nsb2NrX3QgKmJlc3RfY2xvY2spCj4g IHsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2 Owo+ICAJaW50ZWxfY2xvY2tfdCBjbG9jazsKPiAgCWludCBlcnIgPSB0YXJnZXQ7Cj4gIAo+IC0J aWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpKSB7 Cj4gKwlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQ VVRfTFZEUykpIHsKPiAgCQkvKgo+ICAJCSAqIEZvciBMVkRTIGp1c3QgcmVseSBvbiBpdHMgY3Vy cmVudCBzZXR0aW5ncyBmb3IgZHVhbC1jaGFubmVsLgo+ICAJCSAqIFdlIGhhdmVuJ3QgZmlndXJl ZCBvdXQgaG93IHRvIHJlbGlhYmx5IHNldCB1cCBkaWZmZXJlbnQKPiBAQCAtNjYyLDE1ICs2ODIs MTcgQEAgaTl4eF9maW5kX2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwgc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCj4gIH0KPiAgCj4gIHN0YXRpYyBib29sCj4gLXBudl9maW5k X2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwgc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4gK3Budl9maW5kX2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwK PiArCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgICBpbnQg dGFyZ2V0LCBpbnQgcmVmY2xrLCBpbnRlbF9jbG9ja190ICptYXRjaF9jbG9jaywKPiAgCQkgICBp bnRlbF9jbG9ja190ICpiZXN0X2Nsb2NrKQo+ICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAgCWludGVsX2Nsb2NrX3QgY2xvY2s7Cj4g IAlpbnQgZXJyID0gdGFyZ2V0Owo+ICAKPiAtCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBl KGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSkgewo+ICsJaWYgKGludGVsX3BpcGVfd2lsbF9oYXZl X3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKSB7Cj4gIAkJLyoKPiAgCQkgKiBG b3IgTFZEUyBqdXN0IHJlbHkgb24gaXRzIGN1cnJlbnQgc2V0dGluZ3MgZm9yIGR1YWwtY2hhbm5l bC4KPiAgCQkgKiBXZSBoYXZlbid0IGZpZ3VyZWQgb3V0IGhvdyB0byByZWxpYWJseSBzZXQgdXAg ZGlmZmVyZW50Cj4gQEAgLTcyMSwxMCArNzQzLDEyIEBAIHBudl9maW5kX2Jlc3RfZHBsbChjb25z dCBpbnRlbF9saW1pdF90ICpsaW1pdCwgc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIH0KPiAg Cj4gIHN0YXRpYyBib29sCj4gLWc0eF9maW5kX2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90 ICpsaW1pdCwgc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gK2c0eF9maW5kX2Jlc3RfZHBsbChj b25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwKPiArCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLCBpbnRlbF9jbG9j a190ICptYXRjaF9jbG9jaywKPiAgCQkgICBpbnRlbF9jbG9ja190ICpiZXN0X2Nsb2NrKQo+ICB7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsK PiAgCWludGVsX2Nsb2NrX3QgY2xvY2s7Cj4gIAlpbnQgbWF4X247Cj4gQEAgLTczMyw3ICs3NTcs NyBAQCBnNHhfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsIHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJaW50IGVycl9tb3N0ID0gKHRhcmdldCA+PiA4KSArICh0 YXJnZXQgPj4gOSk7Cj4gIAlmb3VuZCA9IGZhbHNlOwo+ICAKPiAtCWlmIChpbnRlbF9waXBlX3dp bGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSkgewo+ICsJaWYgKGludGVsX3Bp cGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKSB7Cj4gIAkJ aWYgKGludGVsX2lzX2R1YWxfbGlua19sdmRzKGRldikpCj4gIAkJCWNsb2NrLnAyID0gbGltaXQt PnAyLnAyX2Zhc3Q7Cj4gIAkJZWxzZQo+IEBAIC03NzgsMTAgKzgwMiwxMiBAQCBnNHhfZmluZF9i ZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsIHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAo+ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbAo+IC12bHZfZmluZF9iZXN0X2RwbGwoY29uc3Qg aW50ZWxfbGltaXRfdCAqbGltaXQsIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICt2bHZfZmlu ZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsCj4gKwkJICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJICAgaW50IHRhcmdldCwgaW50IHJlZmNs aywgaW50ZWxfY2xvY2tfdCAqbWF0Y2hfY2xvY2ssCj4gIAkJICAgaW50ZWxfY2xvY2tfdCAqYmVz dF9jbG9jaykKPiAgewo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+YmFzZS5kZXY7Cj4gIAlpbnRlbF9jbG9ja190IGNsb2NrOwo+ICAJdW5zaWduZWQgaW50IGJl c3RwcG0gPSAxMDAwMDAwOwo+IEBAIC04MzUsMTAgKzg2MSwxMiBAQCB2bHZfZmluZF9iZXN0X2Rw bGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbAo+IC1jaHZfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxf bGltaXRfdCAqbGltaXQsIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICtjaHZfZmluZF9iZXN0 X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsCj4gKwkJICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywgaW50 ZWxfY2xvY2tfdCAqbWF0Y2hfY2xvY2ssCj4gIAkJICAgaW50ZWxfY2xvY2tfdCAqYmVzdF9jbG9j aykKPiAgewo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFz ZS5kZXY7Cj4gIAlpbnRlbF9jbG9ja190IGNsb2NrOwo+ICAJdWludDY0X3QgbTI7Cj4gQEAgLTU3 MjUsNyArNTc1Myw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCSAqIC0gTFZEUyBkdWFsIGNoYW5uZWwgbW9kZQo+ICAJ ICogLSBEb3VibGUgd2lkZSBwaXBlCj4gIAkgKi8KPiAtCWlmICgoaW50ZWxfcGlwZV93aWxsX2hh dmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykgJiYKPiArCWlmICgoaW50ZWxfcGlwZV93 aWxsX2hhdmVfdHlwZShwaXBlX2NvbmZpZywgSU5URUxfT1VUUFVUX0xWRFMpICYmCj4gIAkgICAg IGludGVsX2lzX2R1YWxfbGlua19sdmRzKGRldikpIHx8IHBpcGVfY29uZmlnLT5kb3VibGVfd2lk ZSkKPiAgCQlwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAmPSB+MTsKPiAgCj4gQEAgLTU5MDQsMTUg KzU5MzIsMTggQEAgc3RhdGljIGlubGluZSBib29sIGludGVsX3BhbmVsX3VzZV9zc2Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCSYmICEoZGV2X3ByaXYtPnF1aXJrcyAm IFFVSVJLX0xWRFNfU1NDX0RJU0FCTEUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGk5eHhfZ2V0 X3JlZmNsayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywgaW50IG51bV9jb25uZWN0b3JzKQo+ICtz dGF0aWMgaW50IGk5eHhfZ2V0X3JlZmNsayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKPiArCQkJICAgaW50IG51bV9jb25uZWN0b3JzKQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJaW50IHJlZmNsazsKPiAgCj4g KwlXQVJOX09OKCFjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKPiArCj4gIAlpZiAoSVNfVkFMTEVZ VklFVyhkZXYpKSB7Cj4gIAkJcmVmY2xrID0gMTAwMDAwOwo+IC0JfSBlbHNlIGlmIChpbnRlbF9w aXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSAmJgo+ICsJfSBlbHNl IGlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9M VkRTKSAmJgo+ICAJICAgIGludGVsX3BhbmVsX3VzZV9zc2MoZGV2X3ByaXYpICYmIG51bV9jb25u ZWN0b3JzIDwgMikgewo+ICAJCXJlZmNsayA9IGRldl9wcml2LT52YnQubHZkc19zc2NfZnJlcTsK PiAgCQlEUk1fREVCVUdfS01TKCJ1c2luZyBTU0MgcmVmZXJlbmNlIGNsb2NrIG9mICVkIGtIelxu IiwgcmVmY2xrKTsKPiBAQCAtNTk1NSw3ICs1OTg2LDcgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRh dGVfcGxsX2RpdmlkZXJzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJY3J0Y19zdGF0ZS0+ ZHBsbF9od19zdGF0ZS5mcDAgPSBmcDsKPiAgCj4gIAljcnRjLT5sb3dmcmVxX2F2YWlsID0gZmFs c2U7Cj4gLQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRf TFZEUykgJiYKPiArCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElO VEVMX09VVFBVVF9MVkRTKSAmJgo+ICAJICAgIHJlZHVjZWRfY2xvY2sgJiYgaTkxNS5wb3dlcnNh dmUpIHsKPiAgCQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLmZwMSA9IGZwMjsKPiAgCQljcnRj LT5sb3dmcmVxX2F2YWlsID0gdHJ1ZTsKPiBAQCAtNjMxMyw2ICs2MzQ0LDcgQEAgdm9pZCB2bHZf Zm9yY2VfcGxsX29uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLAo+ICAJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPQo+ICAJCXRvX2ludGVsX2NydGMoaW50ZWxfZ2V0X2Ny dGNfZm9yX3BpcGUoZGV2LCBwaXBlKSk7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSBwaXBl X2NvbmZpZyA9IHsKPiArCQkuYmFzZS5jcnRjID0gJmNydGMtPmJhc2UsCj4gIAkJLnBpeGVsX211 bHRpcGxpZXIgPSAxLAo+ICAJCS5kcGxsID0gKmRwbGwsCj4gIAl9Owo+IEBAIC02MzU3LDEyICs2 Mzg5LDEyIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPiAgCj4gIAlpOXh4X3VwZGF0ZV9wbGxfZGl2aWRlcnMoY3J0YywgY3J0Y19zdGF0ZSwg cmVkdWNlZF9jbG9jayk7Cj4gIAo+IC0JaXNfc2R2byA9IGludGVsX3BpcGVfd2lsbF9oYXZlX3R5 cGUoY3J0YywgSU5URUxfT1VUUFVUX1NEVk8pIHx8Cj4gLQkJaW50ZWxfcGlwZV93aWxsX2hhdmVf dHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfSERNSSk7Cj4gKwlpc19zZHZvID0gaW50ZWxfcGlwZV93 aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfU0RWTykgfHwKPiArCQlpbnRl bF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKTsKPiAg Cj4gIAlkcGxsID0gRFBMTF9WR0FfTU9ERV9ESVM7Cj4gIAo+IC0JaWYgKGludGVsX3BpcGVfd2ls bF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpKQo+ICsJaWYgKGludGVsX3BpcGVf d2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKQo+ICAJCWRwbGwg fD0gRFBMTEJfTU9ERV9MVkRTOwo+ICAJZWxzZQo+ICAJCWRwbGwgfD0gRFBMTEJfTU9ERV9EQUNf U0VSSUFMOwo+IEBAIC02NDA1LDcgKzY0MzcsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9w bGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAo+ICAJaWYgKGNydGNfc3RhdGUtPnNkdm9f dHZfY2xvY2spCj4gIAkJZHBsbCB8PSBQTExfUkVGX0lOUFVUX1RWQ0xLSU5CQzsKPiAtCWVsc2Ug aWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpICYm Cj4gKwllbHNlIGlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVM X09VVFBVVF9MVkRTKSAmJgo+ICAJCSBpbnRlbF9wYW5lbF91c2Vfc3NjKGRldl9wcml2KSAmJiBu dW1fY29ubmVjdG9ycyA8IDIpCj4gIAkJZHBsbCB8PSBQTExCX1JFRl9JTlBVVF9TUFJFQURTUEVD VFJVTUlOOwo+ICAJZWxzZQo+IEBAIC02NDM1LDcgKzY0NjcsNyBAQCBzdGF0aWMgdm9pZCBpOHh4 X3VwZGF0ZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAo+ICAJZHBsbCA9IERQTExf VkdBX01PREVfRElTOwo+ICAKPiAtCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGMs IElOVEVMX09VVFBVVF9MVkRTKSkgewo+ICsJaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUo Y3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKSB7Cj4gIAkJZHBsbCB8PSAoMSA8PCAoY2xv Y2stPnAxIC0gMSkpIDw8IERQTExfRlBBMDFfUDFfUE9TVF9ESVZfU0hJRlQ7Cj4gIAl9IGVsc2Ug ewo+ICAJCWlmIChjbG9jay0+cDEgPT0gMikKPiBAQCAtNjQ0NiwxMCArNjQ3OCwxMCBAQCBzdGF0 aWMgdm9pZCBpOHh4X3VwZGF0ZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkJCWRw bGwgfD0gUExMX1AyX0RJVklERV9CWV80Owo+ICAJfQo+ICAKPiAtCWlmICghSVNfSTgzMChkZXYp ICYmIGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0RWTykpCj4g KwlpZiAoIUlTX0k4MzAoZGV2KSAmJiBpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3Rh dGUsIElOVEVMX09VVFBVVF9EVk8pKQo+ICAJCWRwbGwgfD0gRFBMTF9EVk9fMlhfTU9ERTsKPiAg Cj4gLQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZE UykgJiYKPiArCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVM X09VVFBVVF9MVkRTKSAmJgo+ICAJCSBpbnRlbF9wYW5lbF91c2Vfc3NjKGRldl9wcml2KSAmJiBu dW1fY29ubmVjdG9ycyA8IDIpCj4gIAkJZHBsbCB8PSBQTExCX1JFRl9JTlBVVF9TUFJFQURTUEVD VFJVTUlOOwo+ICAJZWxzZQo+IEBAIC02Njg2LDcgKzY3MTgsNyBAQCBzdGF0aWMgaW50IGk5eHhf Y3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCXJldHVybiAw Owo+ICAKPiAgCWlmICghY3J0Y19zdGF0ZS0+Y2xvY2tfc2V0KSB7Cj4gLQkJcmVmY2xrID0gaTl4 eF9nZXRfcmVmY2xrKGNydGMsIG51bV9jb25uZWN0b3JzKTsKPiArCQlyZWZjbGsgPSBpOXh4X2dl dF9yZWZjbGsoY3J0Y19zdGF0ZSwgbnVtX2Nvbm5lY3RvcnMpOwo+ICAKPiAgCQkvKgo+ICAJCSAq IFJldHVybnMgYSBzZXQgb2YgZGl2aXNvcnMgZm9yIHRoZSBkZXNpcmVkIHRhcmdldCBjbG9jayB3 aXRoCj4gQEAgLTY2OTQsOCArNjcyNiw4IEBAIHN0YXRpYyBpbnQgaTl4eF9jcnRjX2NvbXB1dGVf Y2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkJICogdGhlIGNsb2NrIGVxdWF0aW9u OiByZWZsY2sgKiAoNSAqIChtMSArIDIpICsgKG0yICsgMikpIC8gKG4gKwo+ICAJCSAqIDIpIC8g cDEgLyBwMi4KPiAgCQkgKi8KPiAtCQlsaW1pdCA9IGludGVsX2xpbWl0KGNydGMsIHJlZmNsayk7 Cj4gLQkJb2sgPSBkZXZfcHJpdi0+ZGlzcGxheS5maW5kX2RwbGwobGltaXQsIGNydGMsCj4gKwkJ bGltaXQgPSBpbnRlbF9saW1pdChjcnRjX3N0YXRlLCByZWZjbGspOwo+ICsJCW9rID0gZGV2X3By aXYtPmRpc3BsYXkuZmluZF9kcGxsKGxpbWl0LCBjcnRjX3N0YXRlLAo+ICAJCQkJCQkgY3J0Y19z dGF0ZS0+cG9ydF9jbG9jaywKPiAgCQkJCQkJIHJlZmNsaywgTlVMTCwgJmNsb2NrKTsKPiAgCQlp ZiAoIW9rKSB7Cj4gQEAgLTY3MTEsNyArNjc0Myw3IEBAIHN0YXRpYyBpbnQgaTl4eF9jcnRjX2Nv bXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkJCSAqIHdlIHdpbGwgZGlz YWJsZSB0aGUgTFZEUyBkb3duY2xvY2sgZmVhdHVyZS4KPiAgCQkJICovCj4gIAkJCWhhc19yZWR1 Y2VkX2Nsb2NrID0KPiAtCQkJCWRldl9wcml2LT5kaXNwbGF5LmZpbmRfZHBsbChsaW1pdCwgY3J0 YywKPiArCQkJCWRldl9wcml2LT5kaXNwbGF5LmZpbmRfZHBsbChsaW1pdCwgY3J0Y19zdGF0ZSwK PiAgCQkJCQkJCSAgICBkZXZfcHJpdi0+bHZkc19kb3duY2xvY2ssCj4gIAkJCQkJCQkgICAgcmVm Y2xrLCAmY2xvY2ssCj4gIAkJCQkJCQkgICAgJnJlZHVjZWRfY2xvY2spOwo+IEBAIC03NTM5LDEy ICs3NTcxLDExIEBAIHN0YXRpYyBib29sIGlyb25sYWtlX2NvbXB1dGVfY2xvY2tzKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRl djsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7Cj4gIAlpbnQgcmVmY2xrOwo+ICAJY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQ7Cj4gIAli b29sIHJldCwgaXNfbHZkcyA9IGZhbHNlOwo+ICAKPiAtCWlzX2x2ZHMgPSBpbnRlbF9waXBlX3dp bGxfaGF2ZV90eXBlKGludGVsX2NydGMsIElOVEVMX09VVFBVVF9MVkRTKTsKPiArCWlzX2x2ZHMg PSBpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRT KTsKPiAgCj4gIAlyZWZjbGsgPSBpcm9ubGFrZV9nZXRfcmVmY2xrKGNydGMpOwo+ICAKPiBAQCAt NzU1Myw4ICs3NTg0LDggQEAgc3RhdGljIGJvb2wgaXJvbmxha2VfY29tcHV0ZV9jbG9ja3Moc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ICAJICogcmVmY2xrLCBvciBGQUxTRS4gIFRoZSByZXR1cm5l ZCB2YWx1ZXMgcmVwcmVzZW50IHRoZSBjbG9jayBlcXVhdGlvbjoKPiAgCSAqIHJlZmxjayAqICg1 ICogKG0xICsgMikgKyAobTIgKyAyKSkgLyAobiArIDIpIC8gcDEgLyBwMi4KPiAgCSAqLwo+IC0J bGltaXQgPSBpbnRlbF9saW1pdChpbnRlbF9jcnRjLCByZWZjbGspOwo+IC0JcmV0ID0gZGV2X3By aXYtPmRpc3BsYXkuZmluZF9kcGxsKGxpbWl0LCBpbnRlbF9jcnRjLAo+ICsJbGltaXQgPSBpbnRl bF9saW1pdChjcnRjX3N0YXRlLCByZWZjbGspOwo+ICsJcmV0ID0gZGV2X3ByaXYtPmRpc3BsYXku ZmluZF9kcGxsKGxpbWl0LCBjcnRjX3N0YXRlLAo+ICAJCQkJCSAgY3J0Y19zdGF0ZS0+cG9ydF9j bG9jaywKPiAgCQkJCQkgIHJlZmNsaywgTlVMTCwgY2xvY2spOwo+ICAJaWYgKCFyZXQpCj4gQEAg LTc1NjgsNyArNzU5OSw3IEBAIHN0YXRpYyBib29sIGlyb25sYWtlX2NvbXB1dGVfY2xvY2tzKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkgKiBkb3duY2xvY2sgZmVhdHVyZS4KPiAgCQkqLwo+ ICAJCSpoYXNfcmVkdWNlZF9jbG9jayA9Cj4gLQkJCWRldl9wcml2LT5kaXNwbGF5LmZpbmRfZHBs bChsaW1pdCwgaW50ZWxfY3J0YywKPiArCQkJZGV2X3ByaXYtPmRpc3BsYXkuZmluZF9kcGxsKGxp bWl0LCBjcnRjX3N0YXRlLAo+ICAJCQkJCQkgICAgZGV2X3ByaXYtPmx2ZHNfZG93bmNsb2NrLAo+ ICAJCQkJCQkgICAgcmVmY2xrLCBjbG9jaywKPiAgCQkJCQkJICAgIHJlZHVjZWRfY2xvY2spOwo+ IC0tIAo+IDIuMS4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngKCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwg Q29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK