From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Daniel Subject: =?utf-8?q?=5BPATCH=5D_drm/i915/bdw=3A_Render_state_in?= =?utf-8?q?it_for_Execlists?= Date: Thu, 21 Aug 2014 11:40:54 +0100 Message-ID: <1408617654-2608-1-git-send-email-thomas.daniel@intel.com> References: <1406217891-8912-28-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id D76686E327 for ; Thu, 21 Aug 2014 03:41:37 -0700 (PDT) In-Reply-To: <1406217891-8912-28-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 dGVsLmNvbT4KCnYzOiBTZXR1cCByaW5nIHN0YXR1cyBwYWdlIGluIGxyX2NvbnRleHRfZGVmZXJy ZWRfY3JlYXRlIHdoZW4gdGhlCmRlZmF1bHQgY29udGV4dCBpcyBiZWluZyBjcmVhdGVkLiBUaGlz IG1lYW5zIHRoYXQgdGhlIHJlbmRlciBzdGF0ZQppbml0IGZvciB0aGUgZGVmYXVsdCBjb250ZXh0 IGlzIG5vIGxvbmdlciBhIHNwZWNpYWwgY2FzZS4gIEV4ZWN1dGUKZGVmZXJyZWQgY3JlYXRpb24g b2YgdGhlIGRlZmF1bHQgY29udGV4dCBhdCB0aGUgZW5kIG9mCmxvZ2ljYWxfcmluZ19pbml0IHRv IGFsbG93IHRoZSByZW5kZXIgc3RhdGUgY29tbWFuZHMgdG8gYmUgc3VibWl0dGVkLgpGaXggc3R5 bGUgZXJyb3JzIHJlcG9ydGVkIGJ5IGNoZWNrcGF0Y2guIFJlYmFzZWQuCgpTaWduZWQtb2ZmLWJ5 OiBUaG9tYXMgRGFuaWVsIDx0aG9tYXMuZGFuaWVsQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICB8ICAgIDQgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jIHwgICA0MCArKysrKysrKy0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmggfCAgIDQ3ICsrKysr KysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAg ICB8ICAgNzMgKysrKysrKysrKysrKysrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5oICAgICAgICAgICAgIHwgICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yZW5kZXJzdGF0ZS5oICAgICB8ICAgIDggKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDEzNSBp bnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuaAoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCmluZGV4IGU0NDlmODEuLmY0MTZlMzQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAg LTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJpbnRlbF9yaW5nYnVmZmVyLmgiCiAjaW5jbHVkZSAi aW50ZWxfbHJjLmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fZ3R0LmgiCisjaW5jbHVkZSAiaTkxNV9n ZW1fcmVuZGVyX3N0YXRlLmgiCiAjaW5jbHVkZSA8bGludXgvaW8tbWFwcGluZy5oPgogI2luY2x1 ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy1hbGdvLWJpdC5oPgpAQCAtNjM1 LDYgKzYzNiw3IEBAIHN0cnVjdCBpbnRlbF9jb250ZXh0IHsKIAl9IGxlZ2FjeV9od19jdHg7CiAK IAkvKiBFeGVjbGlzdHMgKi8KKwlib29sIHJjc19pbml0aWFsaXplZDsKIAlzdHJ1Y3QgewogCQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc3RhdGU7CiAJCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nYnVmOwpAQCAtMjU5Niw4ICsyNTk4LDYgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRf Y3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiBpbnQgaTkx NV9nZW1fY29udGV4dF9kZXN0cm95X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCiAJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlKTsKIAotLyogaTkxNV9nZW1fcmVu ZGVyX3N0YXRlLmMgKi8KLWludCBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nKTsKIC8qIGk5MTVfZ2VtX2V2aWN0LmMgKi8KIGludCBfX211c3Rf Y2hlY2sgaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJCSAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCmluZGV4IGU2MGJlM2YuLmE5YTYyZDcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCkBAIC0yOCwxMyAr MjgsNiBAQAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfcmVuZGVyc3Rh dGUuaCIKIAotc3RydWN0IHJlbmRlcl9zdGF0ZSB7Ci0JY29uc3Qgc3RydWN0IGludGVsX3JlbmRl cnN0YXRlX3JvZGF0YSAqcm9kYXRhOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7 Ci0JdTY0IGdndHRfb2Zmc2V0OwotCWludCBnZW47Ci19OwotCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqCiByZW5kZXJfc3RhdGVfZ2V0X3JvZGF0YShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBjb25zdCBpbnQgZ2VuKQogewpAQCAtMTI3LDMwICsxMjAsNDcg QEAgc3RhdGljIGludCByZW5kZXJfc3RhdGVfc2V0dXAoc3RydWN0IHJlbmRlcl9zdGF0ZSAqc28p CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbmRlcl9zdGF0ZV9maW5pKHN0cnVjdCBy ZW5kZXJfc3RhdGUgKnNvKQordm9pZCBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfZmluaShzdHJ1Y3Qg cmVuZGVyX3N0YXRlICpzbykKIHsKIAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihzby0+b2Jq KTsKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmc28tPm9iai0+YmFzZSk7CiB9CiAKLWlu dCBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KQoraW50IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCisJCQkJICBzdHJ1Y3QgcmVuZGVyX3N0YXRlICpzbykKIHsKLQlzdHJ1Y3QgcmVu ZGVyX3N0YXRlIHNvOwogCWludCByZXQ7CiAKIAlpZiAoV0FSTl9PTihyaW5nLT5pZCAhPSBSQ1Mp KQogCQlyZXR1cm4gLUVOT0VOVDsKIAotCXJldCA9IHJlbmRlcl9zdGF0ZV9pbml0KCZzbywgcmlu Zy0+ZGV2KTsKKwlyZXQgPSByZW5kZXJfc3RhdGVfaW5pdChzbywgcmluZy0+ZGV2KTsKIAlpZiAo cmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaWYgKHNvLnJvZGF0YSA9PSBOVUxMKQorCWlmIChzby0+ cm9kYXRhID09IE5VTEwpCiAJCXJldHVybiAwOwogCi0JcmV0ID0gcmVuZGVyX3N0YXRlX3NldHVw KCZzbyk7CisJcmV0ID0gcmVuZGVyX3N0YXRlX3NldHVwKHNvKTsKKwlpZiAocmV0KSB7CisJCWk5 MTVfZ2VtX3JlbmRlcl9zdGF0ZV9maW5pKHNvKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1 cm4gMDsKK30KKworaW50IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9pbml0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpCit7CisJc3RydWN0IHJlbmRlcl9zdGF0ZSBzbzsKKwlpbnQgcmV0Owor CisJcmV0ID0gaTkxNV9nZW1fcmVuZGVyX3N0YXRlX3ByZXBhcmUocmluZywgJnNvKTsKIAlpZiAo cmV0KQotCQlnb3RvIG91dDsKKwkJcmV0dXJuIHJldDsKKworCWlmIChzby5yb2RhdGEgPT0gTlVM TCkKKwkJcmV0dXJuIDA7CiAKIAlyZXQgPSByaW5nLT5kaXNwYXRjaF9leGVjYnVmZmVyKHJpbmcs CiAJCQkJCXNvLmdndHRfb2Zmc2V0LApAQCAtMTY0LDYgKzE3NCw2IEBAIGludCBpOTE1X2dlbV9y ZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCXJldCA9IF9f aTkxNV9hZGRfcmVxdWVzdChyaW5nLCBOVUxMLCBzby5vYmosIE5VTEwpOwogCS8qIF9faTkxNV9h ZGRfcmVxdWVzdCBtb3ZlcyBvYmplY3QgdG8gaW5hY3RpdmUgaWYgaXQgZmFpbHMgKi8KIG91dDoK LQlyZW5kZXJfc3RhdGVfZmluaSgmc28pOworCWk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9maW5pKCZz byk7CiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3JlbmRlcl9zdGF0ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVu ZGVyX3N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ0OTYxZQot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9z dGF0ZS5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBD b3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAor ICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n IHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUK KyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBz aGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m IHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElB QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K KyAqLworCisjaWZuZGVmIF9JOTE1X0dFTV9SRU5ERVJfU1RBVEVfSF8KKyNkZWZpbmUgX0k5MTVf R0VNX1JFTkRFUl9TVEFURV9IXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworc3RydWN0 IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSB7CisJY29uc3QgdTMyICpyZWxvYzsKKwljb25zdCB1 MzIgKmJhdGNoOworCWNvbnN0IHUzMiBiYXRjaF9pdGVtczsKK307CisKK3N0cnVjdCByZW5kZXJf c3RhdGUgeworCWNvbnN0IHN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgKnJvZGF0YTsK KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXU2NCBnZ3R0X29mZnNldDsKKwlp bnQgZ2VuOworfTsKKworaW50IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9pbml0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpOwordm9pZCBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfZmluaShzdHJ1 Y3QgcmVuZGVyX3N0YXRlICpzbyk7CitpbnQgaTkxNV9nZW1fcmVuZGVyX3N0YXRlX3ByZXBhcmUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKKwkJCQkgIHN0cnVjdCByZW5kZXJfc3RhdGUg KnNvKTsKKworI2VuZGlmIC8qIF9JOTE1X0dFTV9SRU5ERVJfU1RBVEVfSF8gKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKaW5kZXggYzA5NmI5Yi4uOGU1MWZkMCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKQEAgLTEyMTcsOCArMTIxNyw2IEBAIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2Ns ZWFudXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHN0YXRpYyBpbnQgbG9naWNhbF9y aW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZykKIHsKIAlpbnQgcmV0OwotCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpkY3R4ID0gcmluZy0+ ZGVmYXVsdF9jb250ZXh0OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpkY3R4X29iajsK IAogCS8qIEludGVudGlvbmFsbHkgbGVmdCBibGFuay4gKi8KIAlyaW5nLT5idWZmZXIgPSBOVUxM OwpAQCAtMTIzMiwxOCArMTIzMCw2IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluCiAJc3Bpbl9s b2NrX2luaXQoJnJpbmctPmV4ZWNsaXN0X2xvY2spOwogCXJpbmctPm5leHRfY29udGV4dF9zdGF0 dXNfYnVmZmVyID0gMDsKIAotCXJldCA9IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRl KGRjdHgsIHJpbmcpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQkvKiBUaGUgc3RhdHVz IHBhZ2UgaXMgb2Zmc2V0IDAgZnJvbSB0aGUgY29udGV4dCBvYmplY3QgaW4gTFJDcy4gKi8KLQlk Y3R4X29iaiA9IGRjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Ci0JcmluZy0+c3RhdHVzX3Bh Z2UuZ2Z4X2FkZHIgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZGN0eF9vYmopOwotCXJpbmct PnN0YXR1c19wYWdlLnBhZ2VfYWRkciA9IGttYXAoc2dfcGFnZShkY3R4X29iai0+cGFnZXMtPnNn bCkpOwotCWlmIChyaW5nLT5zdGF0dXNfcGFnZS5wYWdlX2FkZHIgPT0gTlVMTCkKLQkJcmV0dXJu IC1FTk9NRU07Ci0JcmluZy0+c3RhdHVzX3BhZ2Uub2JqID0gZGN0eF9vYmo7Ci0KIAlyZXQgPSBp OTE1X2NtZF9wYXJzZXJfaW5pdF9yaW5nKHJpbmcpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7 CkBAIC0xMjU0LDcgKzEyNDAsOSBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbgogCQkJcmV0dXJu IHJldDsKIAl9CiAKLQlyZXR1cm4gMDsKKwlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVk X2NyZWF0ZShyaW5nLT5kZWZhdWx0X2NvbnRleHQsIHJpbmcpOworCisJcmV0dXJuIHJldDsKIH0K IAogc3RhdGljIGludCBsb2dpY2FsX3JlbmRlcl9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKQEAgLTE0NDgsNiArMTQzNiwzOCBAQCBjbGVhbnVwX3JlbmRlcl9yaW5nOgogCXJldHVy biByZXQ7CiB9CiAKK2ludCBpbnRlbF9scl9jb250ZXh0X3JlbmRlcl9zdGF0ZV9pbml0KHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCisJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHgpCit7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2lu ZVtyaW5nLT5pZF0ucmluZ2J1ZjsKKwlzdHJ1Y3QgcmVuZGVyX3N0YXRlIHNvOworCXN0cnVjdCBk cm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiA9IGN0eC0+ZmlsZV9wcml2OworCXN0cnVj dCBkcm1fZmlsZSAqZmlsZSA9IGZpbGVfcHJpdiA/IGZpbGVfcHJpdi0+ZmlsZSA6IE5VTEw7CisJ aW50IHJldDsKKworCXJldCA9IGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZV9wcmVwYXJlKHJpbmcsICZz byk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWlmIChzby5yb2RhdGEgPT0gTlVMTCkK KwkJcmV0dXJuIDA7CisKKwlyZXQgPSByaW5nLT5lbWl0X2JiX3N0YXJ0KHJpbmdidWYsCisJCQlz by5nZ3R0X29mZnNldCwKKwkJCUk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKKwlpZiAocmV0KQorCQln b3RvIG91dDsKKworCWk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKGk5MTVfZ2VtX29ial90b19nZ3R0 KHNvLm9iaiksIHJpbmcpOworCisJcmV0ID0gX19pOTE1X2FkZF9yZXF1ZXN0KHJpbmcsIGZpbGUs IHNvLm9iaiwgTlVMTCk7CisJLyogaW50ZWxfbG9naWNhbF9yaW5nX2FkZF9yZXF1ZXN0IG1vdmVz IG9iamVjdCB0byBpbmFjdGl2ZSBpZiBpdAorCSAqIGZhaWxzICovCitvdXQ6CisJaTkxNV9nZW1f cmVuZGVyX3N0YXRlX2ZpbmkoJnNvKTsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50CiBw b3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsIHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqLAogCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCkBAIC0xNjg3LDYgKzE3MDcs MjkgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjdHgsCiAJY3R4LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWYgPSByaW5nYnVmOwog CWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZSA9IGN0eF9vYmo7CiAKKwlpZiAoY3R4ID09IHJp bmctPmRlZmF1bHRfY29udGV4dCkgeworCQkvKiBUaGUgc3RhdHVzIHBhZ2UgaXMgb2Zmc2V0IDAg ZnJvbSB0aGUgZGVmYXVsdCBjb250ZXh0IG9iamVjdAorCQkgKiBpbiBMUkMgbW9kZS4gKi8KKwkJ cmluZy0+c3RhdHVzX3BhZ2UuZ2Z4X2FkZHIgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoY3R4 X29iaik7CisJCXJpbmctPnN0YXR1c19wYWdlLnBhZ2VfYWRkciA9CisJCQkJa21hcChzZ19wYWdl KGN0eF9vYmotPnBhZ2VzLT5zZ2wpKTsKKwkJaWYgKHJpbmctPnN0YXR1c19wYWdlLnBhZ2VfYWRk ciA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisJCXJpbmctPnN0YXR1c19wYWdlLm9iaiA9 IGN0eF9vYmo7CisJfQorCisJaWYgKHJpbmctPmlkID09IFJDUyAmJiAhY3R4LT5yY3NfaW5pdGlh bGl6ZWQpIHsKKwkJcmV0ID0gaW50ZWxfbHJfY29udGV4dF9yZW5kZXJfc3RhdGVfaW5pdChyaW5n LCBjdHgpOworCQlpZiAocmV0KSB7CisJCQlEUk1fRVJST1IoIkluaXQgcmVuZGVyIHN0YXRlIGZh aWxlZDogJWRcbiIsIHJldCk7CisJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZiA9IE5V TEw7CisJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGUgPSBOVUxMOworCQkJaW50ZWxfZGVz dHJveV9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKKwkJCWdvdG8gZXJyb3I7CisJCX0KKwkJY3R4 LT5yY3NfaW5pdGlhbGl6ZWQgPSB0cnVlOworCX0KKwogCXJldHVybiAwOwogCiBlcnJvcjoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmgKaW5kZXggOTkxZDQ0OS4uMzNjM2I0YiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmgKQEAgLTYyLDYgKzYyLDggQEAgc3RhdGljIGlubGluZSB2b2lkIGludGVs X2xvZ2ljYWxfcmluZ19lbWl0KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAogaW50 IGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiwgaW50IG51bV9kd29yZHMpOwogCiAvKiBMb2dpY2FsIFJpbmcgQ29udGV4dHMgKi8KK2ludCBp bnRlbF9scl9jb250ZXh0X3JlbmRlcl9zdGF0ZV9pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCisJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwogdm9pZCBpbnRl bF9scl9jb250ZXh0X2ZyZWUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCk7CiBpbnQgaW50ZWxf bHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAkJ CQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JlbmRlcnN0YXRlLmgKaW5kZXggZmQ0ZjY2Mi4uNmM3OTJkMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGUuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZS5oCkBAIC0yNCwxMyArMjQsNyBAQAogI2lmbmRl ZiBfSU5URUxfUkVOREVSU1RBVEVfSAogI2RlZmluZSBfSU5URUxfUkVOREVSU1RBVEVfSAogCi0j aW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLQotc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0 YSB7Ci0JY29uc3QgdTMyICpyZWxvYzsKLQljb25zdCB1MzIgKmJhdGNoOwotCWNvbnN0IHUzMiBi YXRjaF9pdGVtczsKLX07CisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAogZXh0ZXJuIGNvbnN0IHN0 cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuNl9udWxsX3N0YXRlOwogZXh0ZXJuIGNv bnN0IHN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuN19udWxsX3N0YXRlOwotLSAK MS43LjkuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK