From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Daniel Subject: =?utf-8?q?=5BPATCH_27/43=5D_drm/i915/bdw=3A_Render_st?= =?utf-8?q?ate_init_for_Execlists?= Date: Thu, 24 Jul 2014 17:04:35 +0100 Message-ID: <1406217891-8912-28-git-send-email-thomas.daniel@intel.com> References: <1406217891-8912-1-git-send-email-thomas.daniel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id EFE466E72A for ; Thu, 24 Jul 2014 09:05:20 -0700 (PDT) In-Reply-To: <1406217891-8912-1-git-send-email-thomas.daniel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KClRoZSBiYXRjaGJ1ZmZl ciB0aGF0IHNldHMgdGhlIHJlbmRlciBjb250ZXh0IHN0YXRlIGlzIHN1Ym1pdHRlZAppbiBhIGRp ZmZlcmVudCB3YXksIGFuZCBmcm9tIGRpZmZlcmVudCBwbGFjZXMuCgpXZSBuZWVkZWQgdG8gbWFr ZSBib3RoIHRoZSByZW5kZXIgc3RhdGUgcHJlcGFyYXRpb24gYW5kIGZyZWUgZnVuY3Rpb25zCm91 dHNpZGUgYWNjZXNpYmxlLCBhbmQgbmFtZXNwYWNlIGFjY29yZGluZ2x5LiBUaGlzIG1lc3MgaXMg c28gdGhhdCBhbGwKTFIsIExSQyBhbmQgRXhlY2xpc3RzIGZ1bmN0aW9uYWxpdHkgY2FuIGdvIHRv Z2V0aGVyIGluIGludGVsX2xyYy5jOiB3ZQpjYW4gZml4IGFsbCBvZiB0aGlzIGxhdGVyIG9uLCBv bmNlIHRoZSBpbnRlcmZhY2VzIGFyZSBjbGVhci4KCnYyOiBDcmVhdGUgYSBzZXBhcmF0ZSBjdHgt PnJjc19pbml0aWFsaXplZCBmb3IgdGhlIEV4ZWNsaXN0cyBjYXNlLCBhcwpzdWdnZXN0ZWQgYnkg Q2hyaXMgV2lsc29uLgoKU2lnbmVkLW9mZi1ieTogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAg ICB8ICAgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAg ICB8ICAgMTcgKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVy X3N0YXRlLmMgfCAgIDQwICsrKysrKysrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5oIHwgICA0NyArKysrKysrKysrKysrKysrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgICAgfCAgIDQ2 ICsrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5oICAgICAgICAgICAgIHwgICAgMiArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVu ZGVyc3RhdGUuaCAgICAgfCAgICA4ICstLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRp b25zKCspLCAyNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IDQzMDNlMmMuLmI3Y2YwZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMzcsNiAr MzcsNyBAQAogI2luY2x1ZGUgImludGVsX3JpbmdidWZmZXIuaCIKICNpbmNsdWRlICJpbnRlbF9s cmMuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9ndHQuaCIKKyNpbmNsdWRlICJpOTE1X2dlbV9yZW5k ZXJfc3RhdGUuaCIKICNpbmNsdWRlIDxsaW51eC9pby1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGlu dXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLWFsZ28tYml0Lmg+CkBAIC02MjMsNiArNjI0 LDcgQEAgc3RydWN0IGludGVsX2NvbnRleHQgewogCX0gbGVnYWN5X2h3X2N0eDsKIAogCS8qIEV4 ZWNsaXN0cyAqLworCWJvb2wgcmNzX2luaXRpYWxpemVkOwogCXN0cnVjdCB7CiAJCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpzdGF0ZTsKIAkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWY7CkBAIC0yNTUzLDggKzI1NTUsNiBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9jcmVhdGVf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIGludCBpOTE1X2dlbV9j b250ZXh0X2Rlc3Ryb3lfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK IAkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwogCi0vKiBpOTE1X2dlbV9yZW5kZXJfc3Rh dGUuYyAqLwotaW50IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9pbml0KHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcpOwogLyogaTkxNV9nZW1fZXZpY3QuYyAqLwogaW50IF9fbXVzdF9jaGVjayBp OTE1X2dlbV9ldmljdF9zb21ldGhpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJICBz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuYwppbmRleCA5MDg1ZmYxLi4wZGM2OTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fY29udGV4dC5jCkBAIC01MTMsOCArNTEzLDIzIEBAIGludCBpOTE1X2dlbV9jb250 ZXh0X2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXBwZ3R0LT5l bmFibGUocHBndHQpOwogCX0KIAotCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpCisJaWYgKGk5 MTUuZW5hYmxlX2V4ZWNsaXN0cykgeworCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqZGN0eDsKKwor CQlyaW5nID0gJmRldl9wcml2LT5yaW5nW1JDU107CisJCWRjdHggPSByaW5nLT5kZWZhdWx0X2Nv bnRleHQ7CisKKwkJaWYgKCFkY3R4LT5yY3NfaW5pdGlhbGl6ZWQpIHsKKwkJCXJldCA9IGludGVs X2xyX2NvbnRleHRfcmVuZGVyX3N0YXRlX2luaXQocmluZywgZGN0eCk7CisJCQlpZiAocmV0KSB7 CisJCQkJRFJNX0VSUk9SKCJJbml0IHJlbmRlciBzdGF0ZSBmYWlsZWQ6ICVkXG4iLCByZXQpOwor CQkJCXJldHVybiByZXQ7CisJCQl9CisJCQlkY3R4LT5yY3NfaW5pdGlhbGl6ZWQgPSB0cnVlOwor CQl9CisKIAkJcmV0dXJuIDA7CisJfQogCiAJLyogRklYTUU6IFdlIHNob3VsZCBtYWtlIHRoaXMg d29yaywgZXZlbiBpbiByZXNldCAqLwogCWlmIChpOTE1X3Jlc2V0X2luX3Byb2dyZXNzKCZkZXZf cHJpdi0+Z3B1X2Vycm9yKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlbmRlcl9zdGF0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVy X3N0YXRlLmMKaW5kZXggZTYwYmUzZi4uYTlhNjJkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKQEAgLTI4LDEzICsyOCw2IEBACiAjaW5jbHVkZSAi aTkxNV9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF9yZW5kZXJzdGF0ZS5oIgogCi1zdHJ1Y3QgcmVu ZGVyX3N0YXRlIHsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhICpyb2Rh dGE7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQl1NjQgZ2d0dF9vZmZzZXQ7 Ci0JaW50IGdlbjsKLX07Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVf cm9kYXRhICoKIHJlbmRlcl9zdGF0ZV9nZXRfcm9kYXRhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGNvbnN0IGludCBnZW4pCiB7CkBAIC0xMjcsMzAgKzEyMCw0NyBAQCBzdGF0aWMgaW50IHJlbmRl cl9zdGF0ZV9zZXR1cChzdHJ1Y3QgcmVuZGVyX3N0YXRlICpzbykKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIHZvaWQgcmVuZGVyX3N0YXRlX2Zpbmkoc3RydWN0IHJlbmRlcl9zdGF0ZSAqc28pCit2 b2lkIGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9maW5pKHN0cnVjdCByZW5kZXJfc3RhdGUgKnNvKQog ewogCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKHNvLT5vYmopOwogCWRybV9nZW1fb2JqZWN0 X3VucmVmZXJlbmNlKCZzby0+b2JqLT5iYXNlKTsKIH0KIAotaW50IGk5MTVfZ2VtX3JlbmRlcl9z dGF0ZV9pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCitpbnQgaTkxNV9nZW1fcmVu ZGVyX3N0YXRlX3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKKwkJCQkgIHN0 cnVjdCByZW5kZXJfc3RhdGUgKnNvKQogewotCXN0cnVjdCByZW5kZXJfc3RhdGUgc287CiAJaW50 IHJldDsKIAogCWlmIChXQVJOX09OKHJpbmctPmlkICE9IFJDUykpCiAJCXJldHVybiAtRU5PRU5U OwogCi0JcmV0ID0gcmVuZGVyX3N0YXRlX2luaXQoJnNvLCByaW5nLT5kZXYpOworCXJldCA9IHJl bmRlcl9zdGF0ZV9pbml0KHNvLCByaW5nLT5kZXYpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7 CiAKLQlpZiAoc28ucm9kYXRhID09IE5VTEwpCisJaWYgKHNvLT5yb2RhdGEgPT0gTlVMTCkKIAkJ cmV0dXJuIDA7CiAKLQlyZXQgPSByZW5kZXJfc3RhdGVfc2V0dXAoJnNvKTsKKwlyZXQgPSByZW5k ZXJfc3RhdGVfc2V0dXAoc28pOworCWlmIChyZXQpIHsKKwkJaTkxNV9nZW1fcmVuZGVyX3N0YXRl X2Zpbmkoc28pOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitpbnQgaTkx NV9nZW1fcmVuZGVyX3N0YXRlX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKK3sK KwlzdHJ1Y3QgcmVuZGVyX3N0YXRlIHNvOworCWludCByZXQ7CisKKwlyZXQgPSBpOTE1X2dlbV9y ZW5kZXJfc3RhdGVfcHJlcGFyZShyaW5nLCAmc28pOwogCWlmIChyZXQpCi0JCWdvdG8gb3V0Owor CQlyZXR1cm4gcmV0OworCisJaWYgKHNvLnJvZGF0YSA9PSBOVUxMKQorCQlyZXR1cm4gMDsKIAog CXJldCA9IHJpbmctPmRpc3BhdGNoX2V4ZWNidWZmZXIocmluZywKIAkJCQkJc28uZ2d0dF9vZmZz ZXQsCkBAIC0xNjQsNiArMTc0LDYgQEAgaW50IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9pbml0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJcmV0ID0gX19pOTE1X2FkZF9yZXF1ZXN0KHJp bmcsIE5VTEwsIHNvLm9iaiwgTlVMTCk7CiAJLyogX19pOTE1X2FkZF9yZXF1ZXN0IG1vdmVzIG9i amVjdCB0byBpbmFjdGl2ZSBpZiBpdCBmYWlscyAqLwogb3V0OgotCXJlbmRlcl9zdGF0ZV9maW5p KCZzbyk7CisJaTkxNV9nZW1fcmVuZGVyX3N0YXRlX2ZpbmkoJnNvKTsKIAlyZXR1cm4gcmV0Owog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRl LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDQ5NjFlCi0tLSAvZGV2L251bGwKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmgKQEAgLTAsMCArMSw0 NyBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCisgKgorICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9u CisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAq CisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj ZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGlu IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4K KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZF TlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP UiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX0k5 MTVfR0VNX1JFTkRFUl9TVEFURV9IXworI2RlZmluZSBfSTkxNV9HRU1fUkVOREVSX1NUQVRFX0hf CisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVf cm9kYXRhIHsKKwljb25zdCB1MzIgKnJlbG9jOworCWNvbnN0IHUzMiAqYmF0Y2g7CisJY29uc3Qg dTMyIGJhdGNoX2l0ZW1zOworfTsKKworc3RydWN0IHJlbmRlcl9zdGF0ZSB7CisJY29uc3Qgc3Ry dWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqcm9kYXRhOworCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmo7CisJdTY0IGdndHRfb2Zmc2V0OworCWludCBnZW47Cit9OworCitpbnQg aTkxNV9nZW1fcmVuZGVyX3N0YXRlX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7 Cit2b2lkIGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9maW5pKHN0cnVjdCByZW5kZXJfc3RhdGUgKnNv KTsKK2ludCBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLAorCQkJCSAgc3RydWN0IHJlbmRlcl9zdGF0ZSAqc28pOworCisjZW5kaWYgLyog X0k5MTVfR0VNX1JFTkRFUl9TVEFURV9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRl eCAwYTA0YzAzLi40NTQ5ZWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtOTI1LDYg KzkyNSwzNyBAQCBjbGVhbnVwX3JlbmRlcl9yaW5nOgogCXJldHVybiByZXQ7CiB9CiAKK2ludCBp bnRlbF9scl9jb250ZXh0X3JlbmRlcl9zdGF0ZV9pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCisJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCit7CisJc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1 ZjsKKwlzdHJ1Y3QgcmVuZGVyX3N0YXRlIHNvOworCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZh dGUgKmZpbGVfcHJpdiA9IGN0eC0+ZmlsZV9wcml2OworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZSA9 IGZpbGVfcHJpdj8gZmlsZV9wcml2LT5maWxlIDogTlVMTDsKKwlpbnQgcmV0OworCisJcmV0ID0g aTkxNV9nZW1fcmVuZGVyX3N0YXRlX3ByZXBhcmUocmluZywgJnNvKTsKKwlpZiAocmV0KQorCQly ZXR1cm4gcmV0OworCisJaWYgKHNvLnJvZGF0YSA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKworCXJl dCA9IHJpbmctPmVtaXRfYmJfc3RhcnQocmluZ2J1ZiwKKwkJCXNvLmdndHRfb2Zmc2V0LAorCQkJ STkxNV9ESVNQQVRDSF9TRUNVUkUpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJaTkxNV92 bWFfbW92ZV90b19hY3RpdmUoaTkxNV9nZW1fb2JqX3RvX2dndHQoc28ub2JqKSwgcmluZyk7CisK KwlyZXQgPSBfX2k5MTVfYWRkX3JlcXVlc3QocmluZywgZmlsZSwgc28ub2JqLCBOVUxMKTsKKwkv KiBpbnRlbF9sb2dpY2FsX3JpbmdfYWRkX3JlcXVlc3QgbW92ZXMgb2JqZWN0IHRvIGluYWN0aXZl IGlmIGl0IGZhaWxzICovCitvdXQ6CisJaTkxNV9nZW1fcmVuZGVyX3N0YXRlX2ZpbmkoJnNvKTsK KwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50CiBwb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjdHgsIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2Jq LAogCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYpCkBAIC0xMTQyLDYgKzExNzMsMjEgQEAgaW50IGludGVsX2xyX2NvbnRl eHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJY3R4LT5lbmdp bmVbcmluZy0+aWRdLnJpbmdidWYgPSByaW5nYnVmOwogCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5z dGF0ZSA9IGN0eF9vYmo7CiAKKwkvKiBUaGUgZGVmYXVsdCBjb250ZXh0IHdpbGwgaGF2ZSB0byB3 YWl0LCBiZWNhdXNlIHdlIGFyZSBub3QgeWV0CisJICogcmVhZHkgdG8gc2VuZCBhIGJhdGNoYnVm ZmVyIGF0IHRoaXMgcG9pbnQgKi8KKwlpZiAocmluZy0+aWQgPT0gUkNTICYmICFjdHgtPnJjc19p bml0aWFsaXplZCAmJgorCQkJY3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4dCkgeworCQlyZXQg PSBpbnRlbF9scl9jb250ZXh0X3JlbmRlcl9zdGF0ZV9pbml0KHJpbmcsIGN0eCk7CisJCWlmIChy ZXQpIHsKKwkJCURSTV9FUlJPUigiSW5pdCByZW5kZXIgc3RhdGUgZmFpbGVkOiAlZFxuIiwgcmV0 KTsKKwkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmID0gTlVMTDsKKwkJCWN0eC0+ZW5n aW5lW3JpbmctPmlkXS5zdGF0ZSA9IE5VTEw7CisJCQlpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJf b2JqKHJpbmdidWYpOworCQkJZ290byBlcnJvcjsKKwkJfQorCQljdHgtPnJjc19pbml0aWFsaXpl ZCA9IHRydWU7CisJfQorCiAJcmV0dXJuIDA7CiAKIGVycm9yOgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuaAppbmRleCA2OTZlMDllLi5mMjBjM2QyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApA QCAtNDMsNiArNDMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2Vt aXQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsIHUzMgogaW50IGludGVsX2xvZ2lj YWxfcmluZ19iZWdpbihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50IG51bV9k d29yZHMpOwogCiAvKiBMb2dpY2FsIFJpbmcgQ29udGV4dHMgKi8KK2ludCBpbnRlbF9scl9jb250 ZXh0X3JlbmRlcl9zdGF0ZV9pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCisJCQkJ ICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwogdm9pZCBpbnRlbF9scl9jb250ZXh0 X2ZyZWUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCk7CiBpbnQgaW50ZWxfbHJfY29udGV4dF9k ZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAkJCQkgICAgIHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmVuZGVyc3RhdGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRl cnN0YXRlLmgKaW5kZXggZmQ0ZjY2Mi4uNmM3OTJkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yZW5kZXJzdGF0ZS5oCkBAIC0yNCwxMyArMjQsNyBAQAogI2lmbmRlZiBfSU5URUxfUkVO REVSU1RBVEVfSAogI2RlZmluZSBfSU5URUxfUkVOREVSU1RBVEVfSAogCi0jaW5jbHVkZSA8bGlu dXgvdHlwZXMuaD4KLQotc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSB7Ci0JY29uc3Qg dTMyICpyZWxvYzsKLQljb25zdCB1MzIgKmJhdGNoOwotCWNvbnN0IHUzMiBiYXRjaF9pdGVtczsK LX07CisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbnRlbF9y ZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuNl9udWxsX3N0YXRlOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBp bnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuN19udWxsX3N0YXRlOwotLSAKMS43LjkuNQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK