From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 3/3] drm/atomic: Use explicit old/new state in drm_atomic_plane_check() Date: Mon, 5 Nov 2018 16:37:18 +0200 Message-ID: <20181105143718.GL9144@intel.com> References: <20181101184646.14753-1-ville.syrjala@linux.intel.com> <20181101184646.14753-3-ville.syrjala@linux.intel.com> <20181105093347.GH21967@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181105093347.GH21967@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBOb3YgMDUsIDIwMTggYXQgMTA6MzM6NDdBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIE5vdiAwMSwgMjAxOCBhdCAwODo0Njo0NlBNICswMjAwLCBWaWxsZSBT eXJqYWxhIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+IAo+ID4gQ29udmVydCBkcm1fYXRvbWljX3BsYW5lX2NoZWNrKCkg b3ZlciB0byB1c2luZyBleHBsaWNpdCBvbGQgdnMuIG5ldwo+ID4gcGxhbmUgc3RhdGVzLiBBdm9p ZHMgdGhlIGNvbmZ1c2lvbiBvZiAid2hhdCBkb2VzIHBsYW5lLT5zdGF0ZSBtZWFuCj4gPiBhZ2Fp bj8iLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYyB8IDkwICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gIDEgZmls ZSBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jCj4gPiBpbmRleCBkZGU2OTYxODFlZmUuLjQ2ZjhkNzk4ZWZhZiAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMKPiA+IEBAIC00OTIsMTA4ICs0OTIsMTA5IEBAIGRybV9hdG9t aWNfZ2V0X3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+ICBF WFBPUlRfU1lNQk9MKGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKTsKPiA+ICAKPiA+ICBzdGF0 aWMgYm9vbAo+ID4gLXBsYW5lX3N3aXRjaGluZ19jcnRjKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSwKPiA+IC0JCSAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAtCQkgICAg IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ID4gK3BsYW5lX3N3aXRjaGlu Z19jcnRjKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSwKPiA+ ICsJCSAgICAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlKQo+ ID4gIHsKPiA+IC0JaWYgKCFwbGFuZS0+c3RhdGUtPmNydGMgfHwgIXBsYW5lX3N0YXRlLT5jcnRj KQo+ID4gLQkJcmV0dXJuIGZhbHNlOwo+ID4gLQo+ID4gLQlpZiAocGxhbmUtPnN0YXRlLT5jcnRj ID09IHBsYW5lX3N0YXRlLT5jcnRjKQo+ID4gLQkJcmV0dXJuIGZhbHNlOwo+ID4gLQo+ID4gIAkv KiBUaGlzIGNvdWxkIGJlIHJlZmluZWQsIGJ1dCBjdXJyZW50bHkgdGhlcmUncyBubyBoZWxwZXIg b3IgZHJpdmVyIGNvZGUKPiA+ICAJICogdG8gaW1wbGVtZW50IGRpcmVjdCBzd2l0Y2hpbmcgb2Yg YWN0aXZlIHBsYW5lcyBub3IgdXNlcnNwYWNlIHRvIHRha2UKPiA+ICAJICogYWR2YW50YWdlIG9m IG1vcmUgZGlyZWN0IHBsYW5lIHN3aXRjaGluZyB3aXRob3V0IHRoZSBpbnRlcm1lZGlhdGUKPiA+ ICAJICogZnVsbCBPRkYgc3RhdGUuCj4gPiAgCSAqLwo+ID4gLQlyZXR1cm4gdHJ1ZTsKPiA+ICsJ cmV0dXJuIG9sZF9wbGFuZV9zdGF0ZS0+Y3J0YyAmJiBuZXdfcGxhbmVfc3RhdGUtPmNydGMgJiYK PiA+ICsJCW9sZF9wbGFuZV9zdGF0ZS0+Y3J0YyAhPSBuZXdfcGxhbmVfc3RhdGUtPmNydGM7Cj4g Cj4gSSB0aGluayB0aGUgb2xkIGxheW91dCB3YXMgY2xlYXJlciwgaW5zdGVhZCBvZiBhbiBvYnNj dXJlIG1vbnN0ZXIKPiBjb25kaXRpb24uCgpJIGd1ZXNzIGl0J3MgYSBtYXR0ZXIgb2YgdGFzdGUu IEkgdGhpbmsgbXkgbmV3IHN0eWxlIGlzIG11Y2ggbW9yZQpzdWNjaW5jdCBhbmQgcmVhZHMgbW9y ZSBuYXR1cmFsOgoKImlmIG9sZCBleGlzdHMgYW5kIG5ldyBleGlzdHMgYW5kIG9sZCBpcyBub3Qg bmV3IHdlJ3JlIHN3aXRoaW5nIGNydGNzIgoKdnMuIAoKImlmIG9sZCBkb2Vzbid0IGV4aXN0IG9y IG5ldyBkb2Vzbid0IGV4aXN0IHdlJ3JlIG5vdCBzd2l0Y2hpbmcKY3J0Y3MsIG90aGVyd2lzZSBp ZiBvbGQgaXMgbmV3IHdlJ3JlIG5vdCBzd2l0Y2hpbmcgY3J0Y3MsIG90aGVyd2lzZQp3ZSdyZSBz d2l0Y2hpbmcgY3J0Y3MiLgoKQnV0IG1laC4gU28gSSdsbCBjaGFuZ2UgaXQgYmFjay4KCj4gCj4g V2l0aCB0aGUgb2xkIGxheW91dCBoZXJlIHRoaXMgaXM6Cj4gCj4gUmV2aWV3ZWQtYnk6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gPiAgfQo+ID4gIAo+ID4gIC8qKgo+ ID4gICAqIGRybV9hdG9taWNfcGxhbmVfY2hlY2sgLSBjaGVjayBwbGFuZSBzdGF0ZQo+ID4gLSAq IEBwbGFuZTogcGxhbmUgdG8gY2hlY2sKPiA+IC0gKiBAc3RhdGU6IHBsYW5lIHN0YXRlIHRvIGNo ZWNrCj4gPiArICogQG9sZF9wbGFuZV9zdGF0ZTogb2xkIHBsYW5lIHN0YXRlIHRvIGNoZWNrCj4g PiArICogQG5ld19wbGFuZV9zdGF0ZTogbmV3IHBsYW5lIHN0YXRlIHRvIGNoZWNrCj4gPiAgICoK PiA+ICAgKiBQcm92aWRlcyBjb3JlIHNhbml0eSBjaGVja3MgZm9yIHBsYW5lIHN0YXRlLgo+ID4g ICAqCj4gPiAgICogUkVUVVJOUzoKPiA+ICAgKiBaZXJvIG9uIHN1Y2Nlc3MsIGVycm9yIGNvZGUg b24gZmFpbHVyZQo+ID4gICAqLwo+ID4gLXN0YXRpYyBpbnQgZHJtX2F0b21pY19wbGFuZV9jaGVj ayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+IC0JCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg KnN0YXRlKQo+ID4gK3N0YXRpYyBpbnQgZHJtX2F0b21pY19wbGFuZV9jaGVjayhjb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsCj4gPiArCQkJCSAgY29uc3Qgc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlKQo+ID4gIHsKPiA+ICsJc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUgPSBuZXdfcGxhbmVfc3RhdGUtPnBsYW5lOwo+ID4gKwlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBuZXdfcGxhbmVfc3RhdGUtPmNydGM7Cj4gPiArCWNvbnN0IHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gbmV3X3BsYW5lX3N0YXRlLT5mYjsKPiA+ICAJdW5zaWdu ZWQgaW50IGZiX3dpZHRoLCBmYl9oZWlnaHQ7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiAgCS8q IGVpdGhlciAqYm90aCogQ1JUQyBhbmQgRkIgbXVzdCBiZSBzZXQsIG9yIG5laXRoZXIgKi8KPiA+ IC0JaWYgKHN0YXRlLT5jcnRjICYmICFzdGF0ZS0+ZmIpIHsKPiA+ICsJaWYgKGNydGMgJiYgIWZi KSB7Cj4gPiAgCQlEUk1fREVCVUdfQVRPTUlDKCJbUExBTkU6JWQ6JXNdIENSVEMgc2V0IGJ1dCBu byBGQlxuIiwKPiA+ICAJCQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFtZSk7Cj4gPiAgCQly ZXR1cm4gLUVJTlZBTDsKPiA+IC0JfSBlbHNlIGlmIChzdGF0ZS0+ZmIgJiYgIXN0YXRlLT5jcnRj KSB7Cj4gPiArCX0gZWxzZSBpZiAoZmIgJiYgIWNydGMpIHsKPiA+ICAJCURSTV9ERUJVR19BVE9N SUMoIltQTEFORTolZDolc10gRkIgc2V0IGJ1dCBubyBDUlRDXG4iLAo+ID4gIAkJCQkgcGxhbmUt PmJhc2UuaWQsIHBsYW5lLT5uYW1lKTsKPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gIAl9Cj4g PiAgCj4gPiAgCS8qIGlmIGRpc2FibGVkLCB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSByZXN0IG9m IHRoZSBzdGF0ZTogKi8KPiA+IC0JaWYgKCFzdGF0ZS0+Y3J0YykKPiA+ICsJaWYgKCFjcnRjKQo+ ID4gIAkJcmV0dXJuIDA7Cj4gPiAgCj4gPiAgCS8qIENoZWNrIHdoZXRoZXIgdGhpcyBwbGFuZSBp cyB1c2FibGUgb24gdGhpcyBDUlRDICovCj4gPiAtCWlmICghKHBsYW5lLT5wb3NzaWJsZV9jcnRj cyAmIGRybV9jcnRjX21hc2soc3RhdGUtPmNydGMpKSkgewo+ID4gKwlpZiAoIShwbGFuZS0+cG9z c2libGVfY3J0Y3MgJiBkcm1fY3J0Y19tYXNrKGNydGMpKSkgewo+ID4gIAkJRFJNX0RFQlVHX0FU T01JQygiSW52YWxpZCBbQ1JUQzolZDolc10gZm9yIFtQTEFORTolZDolc11cbiIsCj4gPiAtCQkJ CSBzdGF0ZS0+Y3J0Yy0+YmFzZS5pZCwgc3RhdGUtPmNydGMtPm5hbWUsCj4gPiArCQkJCSBjcnRj LT5iYXNlLmlkLCBjcnRjLT5uYW1lLAo+ID4gIAkJCQkgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5u YW1lKTsKPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gIAl9Cj4gPiAgCj4gPiAgCS8qIENoZWNr IHdoZXRoZXIgdGhpcyBwbGFuZSBzdXBwb3J0cyB0aGUgZmIgcGl4ZWwgZm9ybWF0LiAqLwo+ID4g LQlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KHBsYW5lLCBzdGF0ZS0+ZmItPmZv cm1hdC0+Zm9ybWF0LAo+ID4gLQkJCQkJICAgc3RhdGUtPmZiLT5tb2RpZmllcik7Cj4gPiArCXJl dCA9IGRybV9wbGFuZV9jaGVja19waXhlbF9mb3JtYXQocGxhbmUsIGZiLT5mb3JtYXQtPmZvcm1h dCwKPiA+ICsJCQkJCSAgIGZiLT5tb2RpZmllcik7Cj4gPiAgCWlmIChyZXQpIHsKPiA+ICAJCXN0 cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwo+ID4gIAkJRFJNX0RFQlVHX0FU T01JQygiW1BMQU5FOiVkOiVzXSBpbnZhbGlkIHBpeGVsIGZvcm1hdCAlcywgbW9kaWZpZXIgMHgl bGx4XG4iLAo+ID4gIAkJCQkgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1lLAo+ID4gLQkJCQkg ZHJtX2dldF9mb3JtYXRfbmFtZShzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0LAo+ID4gKwkJCQkg ZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+Zm9ybWF0LT5mb3JtYXQsCj4gPiAgCQkJCQkJICAgICAm Zm9ybWF0X25hbWUpLAo+ID4gLQkJCQkgc3RhdGUtPmZiLT5tb2RpZmllcik7Cj4gPiArCQkJCSBm Yi0+bW9kaWZpZXIpOwo+ID4gIAkJcmV0dXJuIHJldDsKPiA+ICAJfQo+ID4gIAo+ID4gIAkvKiBH aXZlIGRyaXZlcnMgc29tZSBoZWxwIGFnYWluc3QgaW50ZWdlciBvdmVyZmxvd3MgKi8KPiA+IC0J aWYgKHN0YXRlLT5jcnRjX3cgPiBJTlRfTUFYIHx8Cj4gPiAtCSAgICBzdGF0ZS0+Y3J0Y194ID4g SU5UX01BWCAtIChpbnQzMl90KSBzdGF0ZS0+Y3J0Y193IHx8Cj4gPiAtCSAgICBzdGF0ZS0+Y3J0 Y19oID4gSU5UX01BWCB8fAo+ID4gLQkgICAgc3RhdGUtPmNydGNfeSA+IElOVF9NQVggLSAoaW50 MzJfdCkgc3RhdGUtPmNydGNfaCkgewo+ID4gKwlpZiAobmV3X3BsYW5lX3N0YXRlLT5jcnRjX3cg PiBJTlRfTUFYIHx8Cj4gPiArCSAgICBuZXdfcGxhbmVfc3RhdGUtPmNydGNfeCA+IElOVF9NQVgg LSAoaW50MzJfdCkgbmV3X3BsYW5lX3N0YXRlLT5jcnRjX3cgfHwKPiA+ICsJICAgIG5ld19wbGFu ZV9zdGF0ZS0+Y3J0Y19oID4gSU5UX01BWCB8fAo+ID4gKwkgICAgbmV3X3BsYW5lX3N0YXRlLT5j cnRjX3kgPiBJTlRfTUFYIC0gKGludDMyX3QpIG5ld19wbGFuZV9zdGF0ZS0+Y3J0Y19oKSB7Cj4g PiAgCQlEUk1fREVCVUdfQVRPTUlDKCJbUExBTkU6JWQ6JXNdIGludmFsaWQgQ1JUQyBjb29yZGlu YXRlcyAldXgldSslZCslZFxuIiwKPiA+ICAJCQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFt ZSwKPiA+IC0JCQkJIHN0YXRlLT5jcnRjX3csIHN0YXRlLT5jcnRjX2gsCj4gPiAtCQkJCSBzdGF0 ZS0+Y3J0Y194LCBzdGF0ZS0+Y3J0Y195KTsKPiA+ICsJCQkJIG5ld19wbGFuZV9zdGF0ZS0+Y3J0 Y193LCBuZXdfcGxhbmVfc3RhdGUtPmNydGNfaCwKPiA+ICsJCQkJIG5ld19wbGFuZV9zdGF0ZS0+ Y3J0Y194LCBuZXdfcGxhbmVfc3RhdGUtPmNydGNfeSk7Cj4gPiAgCQlyZXR1cm4gLUVSQU5HRTsK PiA+ICAJfQo+ID4gIAo+ID4gLQlmYl93aWR0aCA9IHN0YXRlLT5mYi0+d2lkdGggPDwgMTY7Cj4g PiAtCWZiX2hlaWdodCA9IHN0YXRlLT5mYi0+aGVpZ2h0IDw8IDE2Owo+ID4gKwlmYl93aWR0aCA9 IGZiLT53aWR0aCA8PCAxNjsKPiA+ICsJZmJfaGVpZ2h0ID0gZmItPmhlaWdodCA8PCAxNjsKPiA+ ICAKPiA+ICAJLyogTWFrZSBzdXJlIHNvdXJjZSBjb29yZGluYXRlcyBhcmUgaW5zaWRlIHRoZSBm Yi4gKi8KPiA+IC0JaWYgKHN0YXRlLT5zcmNfdyA+IGZiX3dpZHRoIHx8Cj4gPiAtCSAgICBzdGF0 ZS0+c3JjX3ggPiBmYl93aWR0aCAtIHN0YXRlLT5zcmNfdyB8fAo+ID4gLQkgICAgc3RhdGUtPnNy Y19oID4gZmJfaGVpZ2h0IHx8Cj4gPiAtCSAgICBzdGF0ZS0+c3JjX3kgPiBmYl9oZWlnaHQgLSBz dGF0ZS0+c3JjX2gpIHsKPiA+ICsJaWYgKG5ld19wbGFuZV9zdGF0ZS0+c3JjX3cgPiBmYl93aWR0 aCB8fAo+ID4gKwkgICAgbmV3X3BsYW5lX3N0YXRlLT5zcmNfeCA+IGZiX3dpZHRoIC0gbmV3X3Bs YW5lX3N0YXRlLT5zcmNfdyB8fAo+ID4gKwkgICAgbmV3X3BsYW5lX3N0YXRlLT5zcmNfaCA+IGZi X2hlaWdodCB8fAo+ID4gKwkgICAgbmV3X3BsYW5lX3N0YXRlLT5zcmNfeSA+IGZiX2hlaWdodCAt IG5ld19wbGFuZV9zdGF0ZS0+c3JjX2gpIHsKPiA+ICAJCURSTV9ERUJVR19BVE9NSUMoIltQTEFO RTolZDolc10gaW52YWxpZCBzb3VyY2UgY29vcmRpbmF0ZXMgIgo+ID4gIAkJCQkgIiV1LiUwNnV4 JXUuJTA2dSsldS4lMDZ1KyV1LiUwNnUgKGZiICV1eCV1KVxuIiwKPiA+ICAJCQkJIHBsYW5lLT5i YXNlLmlkLCBwbGFuZS0+bmFtZSwKPiA+IC0JCQkJIHN0YXRlLT5zcmNfdyA+PiAxNiwgKChzdGF0 ZS0+c3JjX3cgJiAweGZmZmYpICogMTU2MjUpID4+IDEwLAo+ID4gLQkJCQkgc3RhdGUtPnNyY19o ID4+IDE2LCAoKHN0YXRlLT5zcmNfaCAmIDB4ZmZmZikgKiAxNTYyNSkgPj4gMTAsCj4gPiAtCQkJ CSBzdGF0ZS0+c3JjX3ggPj4gMTYsICgoc3RhdGUtPnNyY194ICYgMHhmZmZmKSAqIDE1NjI1KSA+ PiAxMCwKPiA+IC0JCQkJIHN0YXRlLT5zcmNfeSA+PiAxNiwgKChzdGF0ZS0+c3JjX3kgJiAweGZm ZmYpICogMTU2MjUpID4+IDEwLAo+ID4gLQkJCQkgc3RhdGUtPmZiLT53aWR0aCwgc3RhdGUtPmZi LT5oZWlnaHQpOwo+ID4gKwkJCQkgbmV3X3BsYW5lX3N0YXRlLT5zcmNfdyA+PiAxNiwKPiA+ICsJ CQkJICgobmV3X3BsYW5lX3N0YXRlLT5zcmNfdyAmIDB4ZmZmZikgKiAxNTYyNSkgPj4gMTAsCj4g PiArCQkJCSBuZXdfcGxhbmVfc3RhdGUtPnNyY19oID4+IDE2LAo+ID4gKwkJCQkgKChuZXdfcGxh bmVfc3RhdGUtPnNyY19oICYgMHhmZmZmKSAqIDE1NjI1KSA+PiAxMCwKPiA+ICsJCQkJIG5ld19w bGFuZV9zdGF0ZS0+c3JjX3ggPj4gMTYsCj4gPiArCQkJCSAoKG5ld19wbGFuZV9zdGF0ZS0+c3Jj X3ggJiAweGZmZmYpICogMTU2MjUpID4+IDEwLAo+ID4gKwkJCQkgbmV3X3BsYW5lX3N0YXRlLT5z cmNfeSA+PiAxNiwKPiA+ICsJCQkJICgobmV3X3BsYW5lX3N0YXRlLT5zcmNfeSAmIDB4ZmZmZikg KiAxNTYyNSkgPj4gMTAsCj4gPiArCQkJCSBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOwo+ID4gIAkJ cmV0dXJuIC1FTk9TUEM7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JaWYgKHBsYW5lX3N3aXRjaGluZ19j cnRjKHN0YXRlLT5zdGF0ZSwgcGxhbmUsIHN0YXRlKSkgewo+ID4gKwlpZiAocGxhbmVfc3dpdGNo aW5nX2NydGMob2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUpKSB7Cj4gPiAgCQlEUk1f REVCVUdfQVRPTUlDKCJbUExBTkU6JWQ6JXNdIHN3aXRjaGluZyBDUlRDIGRpcmVjdGx5XG4iLAo+ ID4gIAkJCQkgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1lKTsKPiA+ICAJCXJldHVybiAtRUlO VkFMOwo+ID4gQEAgLTk2Niw3ICs5NjcsOCBAQCBpbnQgZHJtX2F0b21pY19jaGVja19vbmx5KHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHN0YXRlLT5kZXY7Cj4gPiAgCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZk ZXYtPm1vZGVfY29uZmlnOwo+ID4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+IC0Jc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gPiArCXN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKm9sZF9wbGFuZV9zdGF0ZTsKPiA+ICsJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3 X3BsYW5lX3N0YXRlOwo+ID4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPiAgCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7Cj4gPiAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqbmV3X2NydGNfc3RhdGU7Cj4gPiBAQCAtOTc2LDggKzk3OCw4IEBAIGludCBkcm1fYXRvbWlj X2NoZWNrX29ubHkoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIAo+ID4gIAlE Uk1fREVCVUdfQVRPTUlDKCJjaGVja2luZyAlcFxuIiwgc3RhdGUpOwo+ID4gIAo+ID4gLQlmb3Jf ZWFjaF9uZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+ ID4gLQkJcmV0ID0gZHJtX2F0b21pY19wbGFuZV9jaGVjayhwbGFuZSwgcGxhbmVfc3RhdGUpOwo+ ID4gKwlmb3JfZWFjaF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxh bmVfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSwgaSkgewo+ID4gKwkJcmV0ID0gZHJtX2F0b21pY19w bGFuZV9jaGVjayhvbGRfcGxhbmVfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSk7Cj4gPiAgCQlpZiAo cmV0KSB7Cj4gPiAgCQkJRFJNX0RFQlVHX0FUT01JQygiW1BMQU5FOiVkOiVzXSBhdG9taWMgY29y ZSBjaGVjayBmYWlsZWRcbiIsCj4gPiAgCQkJCQkgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1l KTsKPiA+IC0tIAo+ID4gMi4xOC4xCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIK PiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZnds bC5jaAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK