From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 11/18] drm/i915: Move skl plane fb related checks into a better place Date: Mon, 27 Aug 2018 14:48:49 +0300 Message-ID: <20180827114849.GO5565@intel.com> References: <20180719182214.4323-1-ville.syrjala@linux.intel.com> <20180719182214.4323-12-ville.syrjala@linux.intel.com> <90e47d8e433e42c26976ddefef912270061b2687.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64F1D6E192 for ; Mon, 27 Aug 2018 11:49:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <90e47d8e433e42c26976ddefef912270061b2687.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBdWcgMjQsIDIwMTggYXQgMDc6NTY6MzRQTSArMDAwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gVGh1LCAyMDE4LTA3LTE5IGF0IDIxOjIyICswMzAwLCBWaWxsZSBTeXJqYWxhIHdy b3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiA+IAo+ID4gTW92ZSB0aGUgc2tsKyBzcGVjaWZpYyBmcmFtZWJ1ZmZlciByZWxhdGVk IGNoZWNrcyBmcm9tCj4gPiBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZSgpIGlu dG8gYSBuZXcgZnVuY3Rpb24KPiA+IChza2xfcGxhbmVfY2hlY2tfZmIoKSkgd2hpY2ggd2UnbGwg c2ltcGx5IGNhbGwgZnJvbSB0aGUgc2tsCj4gPiBwbGFuZS0+Y2hlY2soKSBob29rLgo+ID4gCj4g PiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3Bs YW5lLmMgfCA0MiAtLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgICAgIHwgMTIgLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMgICAgICAgfCA2Ngo+ID4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRp b25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9h dG9taWNfcGxhbmUuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxh bmUuYwo+ID4gaW5kZXggZWRkY2RkNmU0YjNiLi43YzA4NzMwNjA5MzQgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiA+IEBAIC0xMTYsNDAgKzEx NiwxMSBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUoY29uc3QKPiA+ IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y18KPiA+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+ZGV2KTsKPiA+ICAJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSAmaW50ZWxfc3RhdGUtPmJhc2U7Cj4gPiAgCXN0cnVjdCBp bnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gPiAtCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPiA+IC0JCSZjcnRj X3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiAgCWlm ICghaW50ZWxfc3RhdGUtPmJhc2UuY3J0YyAmJiAhb2xkX3BsYW5lX3N0YXRlLT5iYXNlLmNydGMp Cj4gPiAgCQlyZXR1cm4gMDsKPiA+ICAKPiA+IC0JaWYgKHN0YXRlLT5mYiAmJiBkcm1fcm90YXRp b25fOTBfb3JfMjcwKHN0YXRlLT5yb3RhdGlvbikpIHsKPiA+IC0JCXN0cnVjdCBkcm1fZm9ybWF0 X25hbWVfYnVmIGZvcm1hdF9uYW1lOwo+ID4gLQo+ID4gLQkJaWYgKHN0YXRlLT5mYi0+bW9kaWZp ZXIgIT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgJiYKPiA+IC0JCSAgICBzdGF0ZS0+ZmItPm1v ZGlmaWVyICE9IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkgewo+ID4gLQkJCURSTV9ERUJVR19L TVMoIlkvWWYgdGlsaW5nIHJlcXVpcmVkIGZvcgo+ID4gOTAvMjcwIVxuIik7Cj4gPiAtCQkJcmV0 dXJuIC1FSU5WQUw7Cj4gPiAtCQl9Cj4gPiAtCj4gPiAtCQkvKgo+ID4gLQkJICogOTAvMjcwIGlz IG5vdCBhbGxvd2VkIHdpdGggUkdCNjQgMTY6MTY6MTY6MTYsCj4gPiAtCQkgKiBSR0IgMTYtYml0 IDU6Njo1LCBhbmQgSW5kZXhlZCA4LWJpdC4KPiA+IC0JCSAqIFRCRDogQWRkIFJHQjY0IGNhc2Ug b25jZSBpdHMgYWRkZWQgaW4gc3VwcG9ydGVkCj4gPiBmb3JtYXQgbGlzdC4KPiA+IC0JCSAqLwo+ ID4gLQkJc3dpdGNoIChzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0KSB7Cj4gPiAtCQljYXNlIERS TV9GT1JNQVRfQzg6Cj4gPiAtCQljYXNlIERSTV9GT1JNQVRfUkdCNTY1Ogo+ID4gLQkJCURSTV9E RUJVR19LTVMoIlVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdCAlcyBmb3IKPiA+IDkwLzI3MCFcbiIs Cj4gPiAtCQkJICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0KPiA+ ID5mb3JtYXQtPmZvcm1hdCwKPiA+IC0JCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmZvcm1hdF9uYW1lKQo+ID4gKTsKPiA+IC0JCQlyZXR1cm4gLUVJTlZBTDsKPiA+IC0KPiA+ IC0JCWRlZmF1bHQ6Cj4gPiAtCQkJYnJlYWs7Cj4gPiAtCQl9Cj4gPiAtCX0KPiA+IC0KPiA+ICAJ LyogQ0hWIGlnbm9yZXMgdGhlIG1pcnJvciBiaXQgd2hlbiB0aGUgcm90YXRlIGJpdCBpcyBzZXQg OiggKi8KPiA+ICAJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmCj4gPiAgCSAgICBzdGF0 ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfMTgwICYmCj4gPiBAQCAtMTYzLDE5ICsxMzQs NiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUoY29uc3QKPiA+IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y18KPiA+ICAJaWYgKHJldCkKPiA+ICAJCXJl dHVybiByZXQ7Cj4gPiAgCj4gPiAtCS8qCj4gPiAtCSAqIFktdGlsaW5nIGlzIG5vdCBzdXBwb3J0 ZWQgaW4gSUYtSUQgSW50ZXJsYWNlIG1vZGUgaW4KPiA+IC0JICogR0VOOSBhbmQgYWJvdmUuCj4g PiAtCSAqLwo+ID4gLQlpZiAoc3RhdGUtPmZiICYmIElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSAm JiBjcnRjX3N0YXRlLQo+ID4gPmJhc2UuZW5hYmxlICYmCj4gPiAtCSAgICBhZGp1c3RlZF9tb2Rl LT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKSB7Cj4gPiAtCQlpZiAoc3RhdGUtPmZi LT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAo+ID4gLQkJICAgIHN0YXRl LT5mYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKSB7Cj4gPiAtCQkJRFJN X0RFQlVHX0tNUygiWS9ZZiB0aWxpbmcgbm90IHN1cHBvcnRlZCBpbiBJRi0KPiA+IElEIG1vZGVc biIpOwo+ID4gLQkJCXJldHVybiAtRUlOVkFMOwo+ID4gLQkJfQo+ID4gLQl9Cj4gPiAtCj4gPiAg CS8qIEZJWE1FIHByZS1nNHggZG9uJ3Qgd29yayBsaWtlIHRoaXMgKi8KPiA+ICAJaWYgKHN0YXRl LT52aXNpYmxlKQo+ID4gIAkJY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyB8PSBCSVQoaW50ZWxf cGxhbmUtPmlkKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBp bmRleCA5YjllYWVkYTE1ZGQuLjIzODFiNzYyZDEwOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtMzE1MSwxMiArMzE1MSw2IEBAIHN0YXRpYyBpbnQg c2tsX2NoZWNrX2Njc19hdXhfc3VyZmFjZShzdHJ1Y3QKPiA+IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKPiA+ICAJaW50IHkgPSBzcmNfeSAvIHZzdWI7Cj4gPiAgCXUzMiBvZmZzZXQ7 Cj4gPiAgCj4gPiAtCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiAmIH4oRFJNX01PREVf Uk9UQVRFXzAgfAo+ID4gRFJNX01PREVfUk9UQVRFXzE4MCkpIHsKPiA+IC0JCURSTV9ERUJVR19L TVMoIlJDIHN1cHBvcnQgb25seSB3aXRoIDAvMTgwIGRlZ3JlZQo+ID4gcm90YXRpb24gJXhcbiIs Cj4gPiAtCQkJICAgICAgcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24pOwo+ID4gLQkJcmV0dXJu IC1FSU5WQUw7Cj4gPiAtCX0KPiA+IC0KPiA+ICAJaW50ZWxfYWRkX2ZiX29mZnNldHMoJngsICZ5 LCBwbGFuZV9zdGF0ZSwgMSk7Cj4gPiAgCW9mZnNldCA9IGludGVsX3BsYW5lX2NvbXB1dGVfYWxp Z25lZF9vZmZzZXQoJngsICZ5LAo+ID4gcGxhbmVfc3RhdGUsIDEpOwo+ID4gIAo+ID4gQEAgLTMx NzgsMTIgKzMxNzIsNiBAQCBpbnQgc2tsX2NoZWNrX3BsYW5lX3N1cmZhY2UoY29uc3Qgc3RydWN0 Cj4gPiBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gIAlwbGFuZV9zdGF0ZS0+Y29s b3JfcGxhbmVbMF0uc3RyaWRlID0gaW50ZWxfZmJfcGl0Y2goZmIsIDAsCj4gPiByb3RhdGlvbik7 Cj4gPiAgCXBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVsxXS5zdHJpZGUgPSBpbnRlbF9mYl9waXRj aChmYiwgMSwKPiA+IHJvdGF0aW9uKTsKPiA+ICAKPiA+IC0JaWYgKHJvdGF0aW9uICYgRFJNX01P REVfUkVGTEVDVF9YICYmCj4gPiAtCSAgICBmYi0+bW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0Rf TElORUFSKSB7Cj4gPiAtCQlEUk1fREVCVUdfS01TKCJob3Jpem9udGFsIGZsaXAgaXMgbm90IHN1 cHBvcnRlZCB3aXRoCj4gPiBsaW5lYXIgc3VyZmFjZSBmb3JtYXRzXG4iKTsKPiA+IC0JCXJldHVy biAtRUlOVkFMOwo+ID4gLQl9Cj4gPiAtCj4gPiAgCWlmICghcGxhbmVfc3RhdGUtPmJhc2Uudmlz aWJsZSkKPiA+ICAJCXJldHVybiAwOwo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jCj4gPiBpbmRleCAzNmUxNTA4ODU4OTcuLjA0MWI4OTIxZjRmZSAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gQEAgLTExNTYsNiArMTE1Niw2OCBA QCB2bHZfc3ByaXRlX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiAqY3J0Y19zdGF0 ZSwKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBpbnQgc2tsX3BsYW5l X2NoZWNrX2ZiKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiAqY3J0Y19zdGF0ZSwK PiA+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUKPiA+ICpwbGFuZV9z dGF0ZSkKPiA+ICt7Cj4gPiArCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmJhc2UuZmI7Cj4gPiArCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0 YXRlLT5iYXNlLnJvdGF0aW9uOwo+ID4gKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3Jt YXRfbmFtZTsKPiA+ICsKPiA+ICsJaWYgKCFmYikKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4g KwlpZiAocm90YXRpb24gJiB+KERSTV9NT0RFX1JPVEFURV8wIHwgRFJNX01PREVfUk9UQVRFXzE4 MCkgJiYKPiA+ICsJICAgIChmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURf Q0NTICYmCj4gPiArCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxF RF9DQ1MpKSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJSQyBzdXBwb3J0IG9ubHkgd2l0aCAwLzE4 MCBkZWdyZWUKPiA+IHJvdGF0aW9uICgleClcbiIsCj4gPiArCQkJICAgICAgcm90YXRpb24pOwo+ ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKHJvdGF0aW9uICYg RFJNX01PREVfUkVGTEVDVF9YICYmCj4gPiArCSAgICBmYi0+bW9kaWZpZXIgPT0gRFJNX0ZPUk1B VF9NT0RfTElORUFSKSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJob3Jpem9udGFsIGZsaXAgaXMg bm90IHN1cHBvcnRlZCB3aXRoCj4gPiBsaW5lYXIgc3VyZmFjZSBmb3JtYXRzXG4iKTsKPiA+ICsJ CXJldHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCWlmIChkcm1fcm90YXRpb25fOTBf b3JfMjcwKHJvdGF0aW9uKSkgewo+ID4gKwkJaWYgKGZiLT5tb2RpZmllciAhPSBJOTE1X0ZPUk1B VF9NT0RfWV9USUxFRCAmJgo+ID4gKwkJICAgIGZiLT5tb2RpZmllciAhPSBJOTE1X0ZPUk1BVF9N T0RfWWZfVElMRUQpIHsKPiA+ICsJCQlEUk1fREVCVUdfS01TKCJZL1lmIHRpbGluZyByZXF1aXJl ZCBmb3IKPiA+IDkwLzI3MCFcbiIpOwo+ID4gKwkJCXJldHVybiAtRUlOVkFMOwo+ID4gKwkJfQo+ ID4gKwo+ID4gKwkJLyoKPiA+ICsJCSAqIDkwLzI3MCBpcyBub3QgYWxsb3dlZCB3aXRoIFJHQjY0 IDE2OjE2OjE2OjE2LAo+ID4gKwkJICogUkdCIDE2LWJpdCA1OjY6NSwgYW5kIEluZGV4ZWQgOC1i aXQuCj4gPiArCQkgKiBUQkQ6IEFkZCBSR0I2NCBjYXNlIG9uY2UgaXRzIGFkZGVkIGluIHN1cHBv cnRlZAo+ID4gZm9ybWF0IGxpc3QuCj4gPiArCQkgKi8KPiA+ICsJCXN3aXRjaCAoZmItPmZvcm1h dC0+Zm9ybWF0KSB7Cj4gPiArCQljYXNlIERSTV9GT1JNQVRfQzg6Cj4gPiArCQljYXNlIERSTV9G T1JNQVRfUkdCNTY1Ogo+ID4gKwkJCURSTV9ERUJVR19LTVMoIlVuc3VwcG9ydGVkIHBpeGVsIGZv cm1hdCAlcyBmb3IKPiA+IDkwLzI3MCFcbiIsCj4gPiArCQkJCSAgICAgIGRybV9nZXRfZm9ybWF0 X25hbWUoZmItPmZvcm1hdC0KPiA+ID5mb3JtYXQsCj4gPiArCQkJCQkJCSAgJmZvcm1hdF9uYW1l KQo+ID4gKTsKPiA+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJCWRlZmF1bHQ6Cj4gPiArCQkJ YnJlYWs7Cj4gPiArCQl9Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyogWS10aWxpbmcgaXMgbm90IHN1 cHBvcnRlZCBpbiBJRi1JRCBJbnRlcmxhY2UgbW9kZSAqLwo+ID4gKwlpZiAoY3J0Y19zdGF0ZS0+ YmFzZS5lbmFibGUgJiYKPiA+ICsJICAgIGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5m bGFncyAmCj4gPiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSAmJgo+ID4gKwkgICAgKGZiLT5tb2Rp ZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAo+ID4gKwkgICAgIGZiLT5tb2RpZmll ciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQgfHwKPiAKPiBJIGd1ZXNzIHRoaXMgMiBjaGVj a3MgYmVsbG93IGFyZSBuZXc/IEl0IHdhcyBub3QgYmVpbmcgaGFuZGxlZCBpbgo+IHNrbF9jaGVj a19jY3NfYXV4X3N1cmZhY2UoKSBvciBlbHNlIHdoZXJlLgoKUmlnaHQuIFRoZSBvbGQgY29kZSBt aXNzZWQgdGhlIGNvbXByZXNzZWQgWSB0aWxlZCBjYXNlcy4gU2hvdWxkIGhhdmUKcmVhbGx5IHNw bGl0IHRoYXQgY2hhbmdlIGludG8gYSBzZXBhcmF0ZSBwYXRjaC4KCj4gCj4gT3RoZXIgdGhhbiB0 aGlzIGV2ZXJ5dGhpbmcgZWxzZSBsb29rcyBnb29kLgo+IAo+IFJldmlld2VkLWJ5OiBKb3PDqSBS b2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiAKPiA+ICsJICAgICBmYi0+ bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTIHx8Cj4gPiArCSAgICAgZmIt Pm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRF9DQ1MpKSB7Cj4gPiArCQlEUk1f REVCVUdfS01TKCJZL1lmIHRpbGluZyBub3Qgc3VwcG9ydGVkIGluIElGLUlECj4gPiBtb2RlXG4i KTsKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiAwOwo+ ID4gK30KPiA+ICsKPiA+ICBpbnQgc2tsX3BsYW5lX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+ID4gIAkJICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUpCj4gPiAgewo+ID4gQEAgLTExNjQsNiArMTIyNiwxMCBAQCBpbnQgc2tsX3BsYW5l X2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiAqY3J0Y19zdGF0ZSwKPiA+ICAJaW50 IG1heF9zY2FsZSwgbWluX3NjYWxlOwo+ID4gIAlpbnQgcmV0Owo+ID4gIAo+ID4gKwlyZXQgPSBz a2xfcGxhbmVfY2hlY2tfZmIoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+ID4gKwlpZiAocmV0 KQo+ID4gKwkJcmV0dXJuIHJldDsKPiA+ICsKPiA+ICAJLyogdXNlIHNjYWxlciB3aGVuIGNvbG9y a2V5IGlzIG5vdCByZXF1aXJlZCAqLwo+ID4gIAlpZiAoIXBsYW5lX3N0YXRlLT5ja2V5LmZsYWdz KSB7Cj4gPiAgCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRl LQo+ID4gPmJhc2UuZmI7CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=