From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 07/16] drm/i915/gen9: Allow skl_allocate_pipe_ddb() to operate on in-flight state Date: Tue, 5 Apr 2016 11:35:31 +0200 Message-ID: <570386E3.2070106@linux.intel.com> References: <1459475198-30094-1-git-send-email-matthew.d.roper@intel.com> <1459475198-30094-8-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 663846E71D for ; Tue, 5 Apr 2016 09:35:58 +0000 (UTC) In-Reply-To: <1459475198-30094-8-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMDEtMDQtMTYgb20gMDM6NDYgc2NocmVlZiBNYXR0IFJvcGVyOgo+IFdlIGV2ZW50dWFsbHkg d2FudCB0byBjYWxjdWxhdGUgd2F0ZXJtYXJrIHZhbHVlcyBhdCBhdG9taWMgJ2NoZWNrJyB0aW1l Cj4gaW5zdGVhZCBvZiBhdG9taWMgJ2NvbW1pdCcgdGltZSBzbyB0aGF0IGFueSByZXF1ZXN0ZWQg Y29uZmlndXJhdGlvbnMKPiB0aGF0IHJlc3VsdCBpbiBpbXBvc3NpYmxlIHdhdGVybWFyayByZXF1 aXJlbWVudHMgYXJlIHByb3Blcmx5IHJlamVjdGVkLgo+IFRoZSBmaXJzdCBzdGVwIGFsb25nIHRo aXMgcGF0aCBpcyB0byBhbGxvY2F0ZSB0aGUgRERCIGF0IGF0b21pYyAnY2hlY2snCj4gdGltZS4g IEFzIHdlIHBlcmZvcm0gdGhpcyB0cmFuc2l0aW9uLCBhbGxvdyB0aGUgbWFpbiBhbGxvY2F0aW9u IGZ1bmN0aW9uCj4gdG8gb3BlcmF0ZSBzdWNjZXNzZnVsbHkgb24gZWl0aGVyIGFuIGluLWZsaWdo dCBzdGF0ZSBvciBhbgo+IGFscmVhZHktY29tbWl0ZWQgc3RhdGUuICBPbmNlIHdlIGNvbXBsZXRl IHRoZSB0cmFuc2l0aW9uIGluIGEgZnV0dXJlCj4gcGF0Y2gsIHdlJ2xsIGNvbWUgYmFjayBhbmQg cmVtb3ZlIHRoZSB1bm5lY2Vzc2FyeSBsb2dpYyBmb3IgdGhlCj4gYWxyZWFkeS1jb21taXR0ZWQg Y2FzZS4KPgo+IE5vdGUgb25lIG90aGVyIG1pbm9yIGNoYW5nZSBoZXJlLi4ud2hlbiB3b3JraW5n IHdpdGggdGhlCj4gYWxyZWFkeS1jb21taXR0ZWQgc3RhdGUsIHdlIHB1bGwgdGhlIGFjdGl2ZSBD UlRDJ3MgZnJvbQo+IGh3ZWlnaHQoZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcykgaW5zdGVhZCBvZgo+ IGRldl9wcml2LT53bS5jb25maWcubnVtX3BpcGVzX2FjdGl2ZS4gIFRoZSB2YWx1ZXMgc2hvdWxk IGJlIGVxdWl2YWxlbnQsCj4gYnV0IGRldl9wcml2LT53bS5jb25maWcgaXMgcHJldHR5IG11Y2gg dW51c2VkIGF0IHRoaXMgcG9pbnQgYW5kIGl0IHdvdWxkCj4gYmUgbmljZSB0byBldmVudHVhbGx5 IHJlbW92ZSBpdCBlbnRpcmVseS4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCB8ICA2ICsrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwgOTkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KPiAgMiBmaWxlcyBjaGFuZ2Vk LCA3OCBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IGQzZWJiMmYuLjc5ZjE5NzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtMzE4LDYgKzMxOCwxMiBAQCBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKPiAgCQkJICAg ICZkZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QsCVwKPiAgCQkJICAgIGJhc2UuaGVhZCkKPiAg Cj4gKyNkZWZpbmUgZm9yX2VhY2hfaW50ZWxfcGxhbmVfbWFzayhkZXYsIGludGVsX3BsYW5lLCBw bGFuZV9tYXNrKQkJXAo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShpbnRlbF9wbGFuZSwgJmRldi0+ bW9kZV9jb25maWcucGxhbmVfbGlzdCwJXAo+ICsJCQkgICAgYmFzZS5oZWFkKQkJCQkJXAo+ICsJ CWZvcl9lYWNoX2lmICgocGxhbmVfbWFzaykgJgkJCQlcCj4gKwkJCSAgICAgKDEgPDwgZHJtX3Bs YW5lX2luZGV4KCZpbnRlbF9wbGFuZS0+YmFzZSkpKQo+ICsKPiAgI2RlZmluZSBmb3JfZWFjaF9p bnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgaW50ZWxfY3J0YywgaW50ZWxfcGxhbmUpCVwKPiAgCWxp c3RfZm9yX2VhY2hfZW50cnkoaW50ZWxfcGxhbmUsCQkJCVwKPiAgCQkJICAgICYoZGV2KS0+bW9k ZV9jb25maWcucGxhbmVfbGlzdCwJCVwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCBl OTI1MTNlLi5lMGNhMmI5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTI4NDks MTUgKzI4NDksMTUgQEAgc2tsX3dtX3BsYW5lX2lkKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUpCj4gIHN0YXRpYyB2b2lkCj4gIHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1p dHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUsCj4gLQkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfd21fY29uZmln ICpjb25maWcsCj4gKwkJCQkgICBjb25zdCB1bnNpZ25lZCBhY3RpdmVfY3J0Y3MsCj4gIAkJCQkg ICBzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqYWxsb2MgLyogb3V0ICovKQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHJtX2NydGMgKmZvcl9jcnRjID0gY3N0YXRlLT5iYXNlLmNydGM7Cj4gLQlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjc3RhdGUtPmJhc2UuY3J0YzsK PiAgCXVuc2lnbmVkIGludCBwaXBlX3NpemUsIGRkYl9zaXplOwo+ICsJdW5zaWduZWQgaW50IG51 bV9hY3RpdmUgPSBod2VpZ2h0MzIoYWN0aXZlX2NydGNzKTsKPiAgCWludCBudGhfYWN0aXZlX3Bp cGU7Cj4gIAo+IC0JaWYgKCFjc3RhdGUtPmJhc2UuYWN0aXZlKSB7Cj4gKwlpZiAoIWNzdGF0ZS0+ YmFzZS5hY3RpdmUgfHwgV0FSTl9PTihudW1fYWN0aXZlID09IDApKSB7Cj4gIAkJYWxsb2MtPnN0 YXJ0ID0gMDsKPiAgCQlhbGxvYy0+ZW5kID0gMDsKPiAgCQlyZXR1cm47Cj4gQEAgLTI4NzAsMjUg KzI4NzAsMTYgQEAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAKPiAgCWRkYl9zaXplIC09IDQ7IC8qIDQgYmxvY2tzIGZvciBieXBh c3MgcGF0aCBhbGxvY2F0aW9uICovCj4gIAo+IC0JbnRoX2FjdGl2ZV9waXBlID0gMDsKPiAtCWZv cl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7Cj4gLQkJaWYgKCF0b19pbnRlbF9jcnRjKGNydGMpLT5h Y3RpdmUpCj4gLQkJCWNvbnRpbnVlOwo+ICsJbnRoX2FjdGl2ZV9waXBlID0gaHdlaWdodDMyKGFj dGl2ZV9jcnRjcyAmIChkcm1fY3J0Y19tYXNrKGNydGMpIC0gMSkpOwo+ICAKPiAtCQlpZiAoY3J0 YyA9PSBmb3JfY3J0YykKPiAtCQkJYnJlYWs7Cj4gLQo+IC0JCW50aF9hY3RpdmVfcGlwZSsrOwo+ IC0JfQo+IC0KPiAtCXBpcGVfc2l6ZSA9IGRkYl9zaXplIC8gY29uZmlnLT5udW1fcGlwZXNfYWN0 aXZlOwo+IC0JYWxsb2MtPnN0YXJ0ID0gbnRoX2FjdGl2ZV9waXBlICogZGRiX3NpemUgLyBjb25m aWctPm51bV9waXBlc19hY3RpdmU7Cj4gKwlwaXBlX3NpemUgPSBkZGJfc2l6ZSAvIG51bV9hY3Rp dmU7Cj4gKwlhbGxvYy0+c3RhcnQgPSBudGhfYWN0aXZlX3BpcGUgKiBkZGJfc2l6ZSAvIG51bV9h Y3RpdmU7Cj4gIAlhbGxvYy0+ZW5kID0gYWxsb2MtPnN0YXJ0ICsgcGlwZV9zaXplOwo+ICB9Cj4g IAo+IC1zdGF0aWMgdW5zaWduZWQgaW50IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihjb25zdCBzdHJ1 Y3QgaW50ZWxfd21fY29uZmlnICpjb25maWcpCj4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgc2tsX2N1 cnNvcl9hbGxvY2F0aW9uKGNvbnN0IHVuc2lnbmVkIGFjdGl2ZV9jcnRjcykKPiAgewo+IC0JaWYg KGNvbmZpZy0+bnVtX3BpcGVzX2FjdGl2ZSA9PSAxKQo+ICsJaWYgKGh3ZWlnaHQzMihhY3RpdmVf Y3J0Y3MpID09IDEpCj4gIAkJcmV0dXJuIDMyOwo+ICAKPiAgCXJldHVybiA4Owo+IEBAIC0zMDE4 LDE0ICszMDA5LDEzIEBAIHNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gIAlyZXR1cm4gdG90YWxfZGF0YV9yYXRl Owo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZAo+ICtzdGF0aWMgaW50Cj4gIHNrbF9hbGxvY2F0ZV9w aXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJCSAgICAgIHN0cnVj dCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pCj4gIHsKPiAgCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YyA9IGNzdGF0ZS0+YmFzZS5jcnRjOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF93bV9jb25maWcgKmNvbmZpZyA9ICZkZXZfcHJp di0+d20uY29uZmlnOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKPiAgCWVu dW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiBAQCAtMzAzNCwxNyArMzAyNCw0MyBA QCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwK PiAgCXVpbnQxNl90IG1pbmltdW1bSTkxNV9NQVhfUExBTkVTXTsKPiAgCXVpbnQxNl90IHlfbWlu aW11bVtJOTE1X01BWF9QTEFORVNdOwo+ICAJdW5zaWduZWQgaW50IHRvdGFsX2RhdGFfcmF0ZTsK PiArCXVuc2lnbmVkIGFjdGl2ZV9jcnRjcyA9IDA7Cj4gIAo+IC0Jc2tsX2RkYl9nZXRfcGlwZV9h bGxvY2F0aW9uX2xpbWl0cyhkZXYsIGNzdGF0ZSwgY29uZmlnLCBhbGxvYyk7Cj4gKwlpZiAoIWNz dGF0ZS0+YmFzZS5hY3RpdmUpIHsKPiArCQlkZGItPnBpcGVbcGlwZV0uc3RhcnQgPSBkZGItPnBp cGVbcGlwZV0uZW5kID0gMDsKPiArCQltZW1zZXQoZGRiLT5wbGFuZVtwaXBlXSwgMCwKPiArCQkg ICAgICAgSTkxNV9NQVhfUExBTkVTICogc2l6ZW9mKHN0cnVjdCBza2xfZGRiX2VudHJ5KSk7Cj4g KwkJbWVtc2V0KGRkYi0+eV9wbGFuZVtwaXBlXSwgMCwKPiArCQkgICAgICAgSTkxNV9NQVhfUExB TkVTICogc2l6ZW9mKHN0cnVjdCBza2xfZGRiX2VudHJ5KSk7Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9 Cj4gKwo+ICsJLyoKPiArCSAqIFRPRE86ICBBdCB0aGUgbW9tZW50IHdlIG1pZ2h0IGNhbGwgdGhp cyBvbiBlaXRoZXIgYW4gaW4tZmxpZ2h0IENSVEMKPiArCSAqIHN0YXRlIG9yIGFuIGFscmVhZHkt Y29tbWl0dGVkIHN0YXRlLCBzbyBsb29rIHVwIHRoZSBudW1iZXIgb2YKPiArCSAqIGFjdGl2ZSBD UlRDJ3MgYWNjb3JkaW5nbHkuICBFdmVudHVhbGx5IHRoaXMgd2lsbCBvbmx5IGJlIGNhbGxlZAo+ ICsJICogb24gaW4tZmxpZ2h0IHN0YXRlcyBhbmQgd2UnbGwgYmUgYWJsZSB0byBkcm9wIHNvbWUg b2YgdGhpcyBleHRyYQo+ICsJICogbG9naWMuCj4gKwkgKi8KPiArCWlmIChjc3RhdGUtPmJhc2Uu c3RhdGUpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9Cj4g KwkJCXRvX2ludGVsX2F0b21pY19zdGF0ZShjc3RhdGUtPmJhc2Uuc3RhdGUpOwo+ICsKPiArCQlh Y3RpdmVfY3J0Y3MgPSBpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzOwo+ICsJfSBlbHNlIHsKPiAr CQlhY3RpdmVfY3J0Y3MgPSBkZXZfcHJpdi0+YWN0aXZlX2NydGNzOwo+ICsJfQo+ICsKPiArCXNr bF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoZGV2LCBjc3RhdGUsIGFjdGl2ZV9jcnRj cywgYWxsb2MpOwo+ICAJYWxsb2Nfc2l6ZSA9IHNrbF9kZGJfZW50cnlfc2l6ZShhbGxvYyk7Cj4g IAlpZiAoYWxsb2Nfc2l6ZSA9PSAwKSB7Cj4gIAkJbWVtc2V0KGRkYi0+cGxhbmVbcGlwZV0sIDAs IHNpemVvZihkZGItPnBsYW5lW3BpcGVdKSk7Cj4gIAkJbWVtc2V0KCZkZGItPnBsYW5lW3BpcGVd W1BMQU5FX0NVUlNPUl0sIDAsCj4gIAkJICAgICAgIHNpemVvZihkZGItPnBsYW5lW3BpcGVdW1BM QU5FX0NVUlNPUl0pKTsKPiAtCQlyZXR1cm47Cj4gKwkJcmV0dXJuIDA7Cj4gIAl9Cj4gIAo+IC0J Y3Vyc29yX2Jsb2NrcyA9IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihjb25maWcpOwo+ICsJY3Vyc29y X2Jsb2NrcyA9IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihhY3RpdmVfY3J0Y3MpOwo+ICAJZGRiLT5w bGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdLnN0YXJ0ID0gYWxsb2MtPmVuZCAtIGN1cnNvcl9ibG9j a3M7Cj4gIAlkZGItPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0uZW5kID0gYWxsb2MtPmVuZDsK PiAgCj4gQEAgLTMwNTQsMTUgKzMwNzAsMzAgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gIAkvKiAxLiBBbGxvY2F0ZSB0aGUgbWluaW51 bSByZXF1aXJlZCBibG9ja3MgZm9yIGVhY2ggYWN0aXZlIHBsYW5lICovCj4gIAlmb3JfZWFjaF9p bnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgaW50ZWxfY3J0YywgaW50ZWxfcGxhbmUpIHsKPiAgCQlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9ICZpbnRlbF9wbGFuZS0+YmFzZTsKPiArCQlzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpwc3RhdGU7Cj4gIAkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBwbGFuZS0+c3RhdGUtPmZiOwo+ICAJCWludCBpZCA9IHNrbF93bV9wbGFuZV9pZChpbnRlbF9w bGFuZSk7Cj4gIAo+IC0JCWlmICghdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKS0+ dmlzaWJsZSkKPiArCQkvKgo+ICsJCSAqIFRPRE86IFJlbW92ZSBzdXBwb3J0IGZvciBhbHJlYWR5 LWNvbW1pdHRlZCBzdGF0ZSBvbmNlIHdlCj4gKwkJICogb25seSBhbGxvY2F0ZSBEREIgb24gaW4t ZmxpZ2h0IHN0YXRlcy4KPiArCQkgKi8KPiArCQlpZiAoY3N0YXRlLT5iYXNlLnN0YXRlKSB7Cj4g KwkJCXBzdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKGNzdGF0ZS0+YmFzZS5zdGF0 ZSwKPiArCQkJCQkJCSAgICBwbGFuZSk7Cj4gKwkJCWlmIChJU19FUlIocHN0YXRlKSkKPiArCQkJ CXJldHVybiBQVFJfRVJSKHBzdGF0ZSk7Cj4gKwkJfSBlbHNlIHsKPiArCQkJcHN0YXRlID0gcGxh bmUtPnN0YXRlOwo+ICsJCX0KPiArCj4gKwkJaWYgKCF0b19pbnRlbF9wbGFuZV9zdGF0ZShwc3Rh dGUpLT52aXNpYmxlKQo+ICAJCQljb250aW51ZTsKPiAgCj4gIAkJaWYgKHBsYW5lLT50eXBlID09 IERSTV9QTEFORV9UWVBFX0NVUlNPUikKPiAgCQkJY29udGludWU7Cj4gIAo+ICsJCWZiID0gcHN0 YXRlLT5mYjsKPiAgCQltaW5pbXVtW2lkXSA9IDg7Cj4gIAkJYWxsb2Nfc2l6ZSAtPSBtaW5pbXVt W2lkXTsKPiAgCQl5X21pbmltdW1baWRdID0gKGZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1B VF9OVjEyKSA/IDggOiAwOwo+IEBAIC0zMDc4LDEzICszMTA5LDI2IEBAIHNrbF9hbGxvY2F0ZV9w aXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJdG90YWxfZGF0YV9y YXRlID0gc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoY3N0YXRlKTsKPiAgCj4gIAlz dGFydCA9IGFsbG9jLT5zdGFydDsKPiAtCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2 LCBpbnRlbF9jcnRjLCBpbnRlbF9wbGFuZSkgewo+ICsJZm9yX2VhY2hfaW50ZWxfcGxhbmVfbWFz ayhkZXYsIGludGVsX3BsYW5lLCBjc3RhdGUtPmJhc2UucGxhbmVfbWFzaykgewo+ICAJCXN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lID0gJmludGVsX3BsYW5lLT5iYXNlOwo+IC0JCXN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnBzdGF0ZSA9IGludGVsX3BsYW5lLT5iYXNlLnN0YXRlOwo+ICsJCXN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZTsKPiAgCQl1bnNpZ25lZCBpbnQgZGF0YV9yYXRlLCB5 X2RhdGFfcmF0ZTsKPiAgCQl1aW50MTZfdCBwbGFuZV9ibG9ja3MsIHlfcGxhbmVfYmxvY2tzID0g MDsKPiAgCQlpbnQgaWQgPSBza2xfd21fcGxhbmVfaWQoaW50ZWxfcGxhbmUpOwo+ICAKPiArCQkv Kgo+ICsJCSAqIFRPRE86IFJlbW92ZSBzdXBwb3J0IGZvciBhbHJlYWR5LWNvbW1pdHRlZCBzdGF0 ZSBvbmNlIHdlCj4gKwkJICogb25seSBhbGxvY2F0ZSBEREIgb24gaW4tZmxpZ2h0IHN0YXRlcy4K PiArCQkgKi8KPiArCQlpZiAoY3N0YXRlLT5iYXNlLnN0YXRlKSB7Cj4gKwkJCXBzdGF0ZSA9IGRy bV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKGNzdGF0ZS0+YmFzZS5zdGF0ZSwKPiArCQkJCQkJCSAg ICBwbGFuZSk7Cj4KWXVjayBhZ2Fpbj8gOiggTm8gd2F5IGFyb3VuZCB0aGlzIGJ5IHN0b3Jpbmcg ZGF0YSByYXRlcyBmb3IgZXhhbXBsZT8KCk9oIHdlbGwsIGF0IGxlYXN0IHNldCBjc3RhdGUtPmJh c2UucGxhbmVzX2NoYW5nZWQgcGxlYXNlLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK