From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH v5] drm/i915/execlists: Move WA_TAIL_DWORDS to callee Date: Wed, 24 Feb 2016 10:02:58 +0000 Message-ID: <1456308178-22299-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 9DFC2892BB for ; Wed, 24 Feb 2016 13:46:12 +0000 (UTC) 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 Cc: Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpDdXJyZW50bHkg ZW1pdC1yZXF1ZXN0IHN0YXJ0cyB3cml0aW5nIHRvIHRoZSByaW5nIGFuZCByZXNlcnZlcyBzcGFj ZQpmb3IgYSB3b3JrYXJvdW5kIHRvIGJlIGVtaXR0ZWQgbGF0ZXIgd2hpbHN0IHN1Ym1pdHRpbmcg dGhlIHJlcXVlc3QuIEl0CmlzIGVhc2llciB0byByZWFkIGlmIHRoZSBjYWxsZXIgb25seSBhbGxv Y2F0ZXMgc3VmZmljaWVudCBzcGFjZSBmb3IKaXRzIGFjY2VzcyAodGhlbiB0aGUgcmVhZGVyIGNh biBxdWlja2x5IHZlcmlmeSB0aGF0IHRoZSByaW5nIGJlZ2luCmFsbG9jYXRlcyB0aGUgZXhhY3Qg c3BhY2UgZm9yIHRoZSBudW1iZXIgb2YgZHdvcmRzIGVtaXR0ZWQpIGFuZCBjbG9zZXMKdGhlIGFj Y2VzcyB0byB0aGUgcmluZy4gRHVyaW5nIHN1Ym1pdCwgaWYgd2UgbmVlZCB0byBhZGQgdGhlIHdv cmthcm91bmQsCndlIGNhbiByZWFjcXVpcmUgcmluZyBhY2Nlc3MsIGluIHRoZSBhc3N1cmFuY2Ug dGhhdCB3ZSByZXNlcnZlZCBzcGFjZQpmb3Igb3Vyc2VsdmVzIHdoZW4gYmVnaW5uaW5nIHRoZSBy ZXF1ZXN0LgoKdjM6CiAgICBSZWluc3RhdGVkICNkZWZpbmUgZm9yIFdBX1RBSUxfRFdPUkRTIHNv IHdlIGNvdWxkIGFjY29tbW9kYXRlIEdQVXMKICAgIHRoYXQgcmVxdWlyZWQgZGlmZmVyZW50IGFt b3VudHMgb2YgcGFkZGluZywgZ2VuZXJhbGlzZWQgTk9PUCBmaWxsCiAgICBbUm9kcmlnbyBWaXZp XSwgYWRkZWQgVy9BIHNwYWNlIHRvIHJlc2VydmVkIGFtb3VudCBhbmQgdXBkYXRlZAogICAgY29k ZSBjb21tZW50cyBbRGF2ZSBHb3Jkb25dLAoKdjQ6CiAgICBNYWRlICNkZWZpbmUgZm9yIFdBX1JB SUxfRFdPUkRTIGEgZnVuY3Rpb24tdHlwZSBtYWNybyBpbiBjYXNlIHdlCiAgICB3YW50IGRpZmZl cmVudCB2YWx1ZXMgb24gZGlmZmVyZW50IHBsYXRmb3JtcyAob3IgZW5naW5lcyksIHRvCiAgICBh ZGRyZXNzIGNvbW1lbnQgYnkgW1JvZHJpZ28gVml2aV0uIEJ1dCB0aGUgY3VycmVudCB2YWx1ZSBp cyBzdGlsbAogICAgdGhlIGNvbnN0YW50ICgyKSBvbiBhbGwgcGxhdGZvcm1zLCBzbyB0aGlzIGRv ZXNuJ3QgYWRkIGFueSBvdmVyaGVhZC4KCnY1OgogICAgRWxpbWluYXRlZCBsb2NhbCB2YXJpYWJs ZSAmIG11bHRpcGxlIGluZGlyZWN0aW9ucy4gQWRkZWQgbG9uZyBlc3NheQogICAgY29tbWVudCBh Ym91dCBXYUlkbGVMaXRlUmVzdG9yZS4gW0RhdmUgR29yZG9uXQoKT3JpZ2luYWxseS1ieTogUm9k cmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAZ21haWwuY29tPgpSZXdyaXR0ZW4tYnk6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpGdXJ0aGVyLXR3ZWFrZWQtYnk6IERhdmUg R29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+CgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEdv cmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdv LnZpdmlAZ21haWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+CkNjOiBCZW4gV2lkYXdza3kgPGJlbmphbWluLndpZGF3c2t5QGludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyB8IDExMSArKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAz OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDNhMDM2NDYuLmFj NzFiMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0yMjUsNiArMjI1LDE3IEBAIGVu dW0gewogI2RlZmluZSBHRU44X0NUWF9JRF9TSElGVCAzMgogI2RlZmluZSBDVFhfUkNTX0lORElS RUNUX0NUWF9PRkZTRVRfREVGQVVMVCAgMHgxNwogCisvKgorICogUmVzZXJ2ZSBzcGFjZSBmb3Ig c29tZSBOT09QcyBhdCB0aGUgZW5kIG9mIGVhY2ggcmVxdWVzdCwgdG8gYmUgdXNlZCBieQorICog YSB3b3JrYXJvdW5kIGZvciBub3QgYmVpbmcgYWxsb3dlZCB0byBkbyBsaXRlIHJlc3RvcmUgd2l0 aCBIRUFEPT1UQUlMCisgKiAoV2FJZGxlTGl0ZVJlc3RvcmUpLgorICoKKyAqIFRoZSBudW1iZXIg b2YgTk9PUHMgaXMgdGhlIHNhbWUgY29uc3RhbnQgb24gYWxsIGN1cnJlbnQgcGxhdGZvcm1zIHRo YXQKKyAqIHJlcXVpcmUgdGhpcywgYnV0IGluIHRoZW9yeSBjb3VsZCBiZSBhIHBsYXRmb3JtLSBv ciBlbmdpbmUtIHNwZWNpZmljCisgKiB2YWx1ZSBiYXNlZCBvbiB0aGUgcmVxdWVzdC4KKyAqLwor I2RlZmluZSBXQV9UQUlMX0RXT1JEUyhyZXF1ZXN0KQkoMikKKwogc3RhdGljIGludCBpbnRlbF9s cl9jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCQkJCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSk7CiBzdGF0aWMgdm9pZCBscmNfc2V0dXBfaGFyZHdhcmVfc3Rh dHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKQEAgLTQ1NywyMSArNDY4LDMx IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250ZXh0X3VucXVldWUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZykKIAogCWlmIChJU19HRU44KHJpbmctPmRldikgfHwgSVNfR0VOOShyaW5n LT5kZXYpKSB7CiAJCS8qCi0JCSAqIFdhSWRsZUxpdGVSZXN0b3JlOiBtYWtlIHN1cmUgd2UgbmV2 ZXIgY2F1c2UgYSBsaXRlCi0JCSAqIHJlc3RvcmUgd2l0aCBIRUFEPT1UQUlMCisJCSAqIFdhSWRs ZUxpdGVSZXN0b3JlOiBsaXRlIHJlc3RvcmUgbXVzdCBub3QgaGF2ZSBIRUFEPT1UQUlMLgorCQkg KgorCQkgKiBJZiBhIHJlcXVlc3QgaGFzIHByZXZpb3VzbHkgYmVlbiBzdWJtaXR0ZWQgKGFzIHJl cTEpIGFuZAorCQkgKiBpcyBub3cgYmVpbmcgL3JlL3N1Ym1pdHRlZCAoYXMgcmVxMCksIGl0IG1h eSBhY3R1YWxseSBoYXZlIAorCQkgKiBjb21wbGV0ZWQgKHdpdGggSEVBRD09VEFJTCksIGJ1dCB3 ZSBkb24ndCBrbm93IHRoYXQgeWV0LgorCQkgKgorCQkgKiBVbmZvcnR1bmF0ZWx5IHRoZSBoYXJk d2FyZSByZXF1aXJlcyB0aGF0IHdlIG5vdCBzdWJtaXQKKwkJICogYSBjb250ZXh0IHRoYXQgaXMg YWxyZWFkeSBpZGxlIHdpdGggSEVBRD09VEFJTDsgYnV0IHdlCisJCSAqIGNhbm5vdCBzYWZlbHkg Y2hlY2sgdGhpcyBiZWNhdXNlIHRoZXJlIHdvdWxkIGFsd2F5cyBiZQorCQkgKiBhbiBvcHBvcnR1 bml0eSBmb3IgYSByYWNlLCB3aGVyZSB0aGUgY29udGV4dCAvYmVjb21lcy8KKwkJICogaWRsZSBh ZnRlciB3ZSBjaGVjayBhbmQgYmVmb3JlIHJlc3VibWlzc2lvbi4KKwkJICoKKwkJICogU28gaW5z dGVhZCB3ZSBpbmNyZW1lbnQgdGhlIHJlcXVlc3QgVEFJTCBoZXJlIHRvIGVuc3VyZQorCQkgKiB0 aGF0IGl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBsYXN0IHZhbHVlIHNlZW4gYnkgdGhlCisJCSAq IGhhcmR3YXJlLCBpbiBlZmZlY3QgYWx3YXlzIGFkZGluZyBleHRyYSB3b3JrIHRvIGJlIGRvbmUK KwkJICogZXZlbiBpZiB0aGUgY29udGV4dCBoYXMgYWxyZWFkeSBjb21wbGV0ZWQuIFRoYXQgd29y aworCQkgKiBjb25zaXN0cyBvZiBOT09QcyBhZGRlZCBieSBpbnRlbF9sb2dpY2FsX3Jpbmdfc3Vi bWl0KCkKKwkJICogYWZ0ZXIgdGhlIGVuZCBvZiBlYWNoIHJlcXVlc3QuIEFkdmFuY2luZyBUQUlM IHR1cm5zCisJCSAqIHRob3NlIE5PT1BzIGludG8gcGFydCBvZiB0aGUgY3VycmVudCByZXF1ZXN0 OyBpZiBub3Qgc28KKwkJICogY29uc3VtZWQsIHRoZXkgcmVtYWluIGluIHRoZSByaW5nYnVmZmVy IGFzIGEgaGFybWxlc3MKKwkJICogcHJlZml4IHRvIHRoZSBuZXh0IHJlcXVlc3QuCiAJCSAqLwog CQlpZiAocmVxMC0+ZWxzcF9zdWJtaXR0ZWQpIHsKLQkJCS8qCi0JCQkgKiBBcHBseSB0aGUgd2Eg Tk9PUFMgdG8gcHJldmVudCByaW5nOkhFQUQgPT0gcmVxOlRBSUwKLQkJCSAqIGFzIHdlIHJlc3Vi bWl0IHRoZSByZXF1ZXN0LiBTZWUgZ2VuOF9lbWl0X3JlcXVlc3QoKQotCQkJICogZm9yIHdoZXJl IHdlIHByZXBhcmUgdGhlIHBhZGRpbmcgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUKLQkJCSAqIHJlcXVl c3QuCi0JCQkgKi8KLQkJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOwotCi0JCQly aW5nYnVmID0gcmVxMC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWY7CiAJCQlyZXEwLT50 YWlsICs9IDg7Ci0JCQlyZXEwLT50YWlsICY9IHJpbmdidWYtPnNpemUgLSAxOworCQkJcmVxMC0+ dGFpbCAmPSByZXEwLT5yaW5nYnVmLT5zaXplIC0gMTsKIAkJfQogCX0KIApAQCAtNzUyLDMzICs3 NzMsNDcgQEAgc3RhdGljIGludCBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiB9CiAKIC8qCi0gKiBpbnRlbF9sb2dpY2FsX3Jpbmdf YWR2YW5jZV9hbmRfc3VibWl0KCkgLSBhZHZhbmNlIHRoZSB0YWlsIGFuZCBzdWJtaXQgdGhlIHdv cmtsb2FkCi0gKiBAcmVxdWVzdDogUmVxdWVzdCB0byBhZHZhbmNlIHRoZSBsb2dpY2FsIHJpbmdi dWZmZXIgb2YuCisgKiBpbnRlbF9sb2dpY2FsX3Jpbmdfc3VibWl0KCkgLSBzdWJtaXQgdGhlIHdv cmtsb2FkICh0byBHdUMgb3IgZXhlY2xpc3QgcXVldWUpCisgKiBAcmVxdWVzdDogUmVxdWVzdCB0 byBzdWJtaXQKICAqCi0gKiBUaGUgdGFpbCBpcyB1cGRhdGVkIGluIG91ciBsb2dpY2FsIHJpbmdi dWZmZXIgc3RydWN0LCBub3QgaW4gdGhlIGFjdHVhbCBjb250ZXh0LiBXaGF0Ci0gKiByZWFsbHkg aGFwcGVucyBkdXJpbmcgc3VibWlzc2lvbiBpcyB0aGF0IHRoZSBjb250ZXh0IGFuZCBjdXJyZW50 IHRhaWwgd2lsbCBiZSBwbGFjZWQKLSAqIG9uIGEgcXVldWUgd2FpdGluZyBmb3IgdGhlIEVMU1Ag dG8gYmUgcmVhZHkgdG8gYWNjZXB0IGEgbmV3IGNvbnRleHQgc3VibWlzc2lvbi4gQXQgdGhhdAot ICogcG9pbnQsIHRoZSB0YWlsICppbnNpZGUqIHRoZSBjb250ZXh0IGlzIHVwZGF0ZWQgYW5kIHRo ZSBFTFNQIHdyaXR0ZW4gdG8uCisgKiBUaGUgdGFpbCBpcyB1cGRhdGVkIGluIG91ciBsb2dpY2Fs IHJpbmdidWZmZXIgc3RydWN0LCBub3QgaW4gdGhlIGFjdHVhbAorICogY29udGV4dC4gV2hhdCBy ZWFsbHkgaGFwcGVucyBkdXJpbmcgc3VibWlzc2lvbiBpcyB0aGF0IHRoZSBjb250ZXh0IGFuZAor ICogY3VycmVudCB0YWlsIHdpbGwgYmUgcGxhY2VkIG9uIGEgcXVldWUgd2FpdGluZyBmb3IgdGhl IEVMU1AgdG8gYmUgcmVhZHkgCisgKiB0byBhY2NlcHQgYSBuZXcgY29udGV4dCBzdWJtaXNzaW9u LiBBdCB0aGF0IHBvaW50LCB0aGUgdGFpbCAqaW5zaWRlKiB0aGUKKyAqIGNvbnRleHQgaXMgdXBk YXRlZCBhbmQgdGhlIEVMU1Agd3JpdHRlbiB0byBieSB0aGUgc3VibWl0dGluZyBhZ2VudCBpLmUu CisgKiBlaXRoZXIgdGhlIGRyaXZlciAoaW4gZXhlY2xpc3QgbW9kZSksIG9yIHRoZSBHdUMgKGlu IEd1Qy1zdWJtaXNzaW9uIG1vZGUpLgogICovCiBzdGF0aWMgaW50Ci1pbnRlbF9sb2dpY2FsX3Jp bmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVz dCkKK2ludGVsX2xvZ2ljYWxfcmluZ19zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXF1ZXN0KQogewogCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmVxdWVz dC0+cmluZ2J1ZjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByZXF1ZXN0 LT5pOTE1OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPnJpbmc7 CisJaW50IHBhZGRpbmcgPSBXQV9UQUlMX0RXT1JEUyhyZXF1ZXN0KTsKIAotCWludGVsX2xvZ2lj YWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOwogCXJlcXVlc3QtPnRhaWwgPSByaW5nYnVmLT50YWls OwogCiAJLyoKLQkgKiBIZXJlIHdlIGFkZCB0d28gZXh0cmEgTk9PUHMgYXMgcGFkZGluZyB0byBh dm9pZAotCSAqIGxpdGUgcmVzdG9yZSBvZiBhIGNvbnRleHQgd2l0aCBIRUFEPT1UQUlMLgotCSAq Ci0JICogQ2FsbGVyIG11c3QgcmVzZXJ2ZSBXQV9UQUlMX0RXT1JEUyBmb3IgdXMhCisJICogRmls bCBpbiBhIGZldyBOT09QcyBhZnRlciB0aGUgZW5kIG9mIHRoZSByZXF1ZXN0IHByb3BlciwKKwkg KiBhcyBhIGJ1ZmZlciBiZXR3ZWVuIHJlcXVlc3RzIHRvIGJlIHVzZWQgYnkgYSB3b3JrYXJvdW5k CisJICogZm9yIG5vdCBiZWluZyBhbGxvd2VkIHRvIGRvIGxpdGUgcmVzdG9yZSB3aXRoIEhFQUQ9 PVRBSUwuCisJICogKFdhSWRsZUxpdGVSZXN0b3JlKS4gVGhlc2Ugd29yZHMgbWF5IGJlIGNvbnN1 bWVkIGJ5IHRoZQorCSAqIHN1Ym1pc3Npb24gbWVjaGFuaXNtIGlmIGEgY29udGV4dCBpcyAqcmUq c3VibWl0dGVkIHdoaWxlCisJICogKHBvdGVudGlhbGx5KSBzdGlsbCBhY3RpdmU7IG90aGVyd2lz ZSwgdGhleSB3aWxsIGJlIGxlZnQKKwkgKiBhcyBhIGhhcm1sZXNzIHByZWFtYmxlIHRvIHRoZSBu ZXh0IHJlcXVlc3QuCiAJICovCi0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlf Tk9PUCk7Ci0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7Ci0JaW50 ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisJaWYgKHBhZGRpbmcgPiAwKSB7CisJ CS8qIFNhZmUgYmVjYXVzZSB3ZSByZXNlcnZlZCB0aGUgc3BhY2UgZWFybGllciAqLworCQlpbnQg cmV0ID0gaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHJlcXVlc3QsIHBhZGRpbmcpOworCQlpZiAo V0FSTl9PTihyZXQgIT0gMCkpCisJCQlyZXR1cm4gcmV0OworCisJCWRvCisJCQlpbnRlbF9sb2dp Y2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKKwkJd2hpbGUgKC0tcGFkZGluZyk7CisK KwkJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisJfQogCiAJaWYgKGludGVs X3Jpbmdfc3RvcHBlZChlbmdpbmUpKQogCQlyZXR1cm4gMDsKQEAgLTkwNyw3ICs5NDIsOCBAQCBp bnQgaW50ZWxfbG9naWNhbF9yaW5nX3Jlc2VydmVfc3BhY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXF1ZXN0KQogCSAqIGFkZGluZyBhbnkgY29tbWFuZHMgdG8gaXQgdGhlbiB0aGVy ZSBtaWdodCBub3QgYWN0dWFsbHkgYmUKIAkgKiBzdWZmaWNpZW50IHJvb20gZm9yIHRoZSBzdWJt aXNzaW9uIGNvbW1hbmRzLgogCSAqLwotCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2 ZShyZXF1ZXN0LT5yaW5nYnVmLCBNSU5fU1BBQ0VfRk9SX0FERF9SRVFVRVNUKTsKKwlpbnRlbF9y aW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUocmVxdWVzdC0+cmluZ2J1ZiwKKwkJTUlOX1NQQUNF X0ZPUl9BRERfUkVRVUVTVCArIFdBX1RBSUxfRFdPUkRTKHJlcXVlc3QpKTsKIAogCXJldHVybiBp bnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4ocmVxdWVzdCwgMCk7CiB9CkBAIC0xODc1LDEzICsxOTEx LDYgQEAgc3RhdGljIHZvaWQgYnh0X2Ffc2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsIHUzMiBzZXFubykKIAlpbnRlbF9mbHVzaF9zdGF0dXNfcGFnZShyaW5nLCBJOTE1X0dF TV9IV1NfSU5ERVgpOwogfQogCi0vKgotICogUmVzZXJ2ZSBzcGFjZSBmb3IgMiBOT09QcyBhdCB0 aGUgZW5kIG9mIGVhY2ggcmVxdWVzdCB0byBiZQotICogdXNlZCBhcyBhIHdvcmthcm91bmQgZm9y IG5vdCBiZWluZyBhbGxvd2VkIHRvIGRvIGxpdGUKLSAqIHJlc3RvcmUgd2l0aCBIRUFEPT1UQUlM IChXYUlkbGVMaXRlUmVzdG9yZSkuCi0gKi8KLSNkZWZpbmUgV0FfVEFJTF9EV09SRFMgMgotCiBz dGF0aWMgaW5saW5lIHUzMiBod3Nfc2Vxbm9fYWRkcmVzcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiB7CiAJcmV0dXJuIGVuZ2luZS0+c3RhdHVzX3BhZ2UuZ2Z4X2FkZHIgKyBJOTE1 X0dFTV9IV1NfSU5ERVhfQUREUjsKQEAgLTE4OTIsNyArMTkyMSw3IEBAIHN0YXRpYyBpbnQgZ2Vu OF9lbWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKIAlpbnQg cmV0OwogCi0JcmV0ID0gaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHJlcXVlc3QsIDYgKyBXQV9U QUlMX0RXT1JEUyk7CisJcmV0ID0gaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHJlcXVlc3QsIDYp OwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTE5MDgsNyArMTkzNyw5IEBAIHN0YXRp YyBpbnQgZ2VuOF9lbWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0KQogCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIGk5MTVfZ2VtX3JlcXVlc3Rf Z2V0X3NlcW5vKHJlcXVlc3QpKTsKIAlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBN SV9VU0VSX0lOVEVSUlVQVCk7CiAJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlf Tk9PUCk7Ci0JcmV0dXJuIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQocmVx dWVzdCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisKKwlyZXR1cm4g aW50ZWxfbG9naWNhbF9yaW5nX3N1Ym1pdChyZXF1ZXN0KTsKIH0KIAogc3RhdGljIGludCBnZW44 X2VtaXRfcmVxdWVzdF9yZW5kZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0 KQpAQCAtMTkxNiw3ICsxOTQ3LDcgQEAgc3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVzdF9yZW5k ZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCXN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKIAlpbnQgcmV0OwogCi0JcmV0 ID0gaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHJlcXVlc3QsIDYgKyBXQV9UQUlMX0RXT1JEUyk7 CisJcmV0ID0gaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHJlcXVlc3QsIDYpOwogCWlmIChyZXQp CiAJCXJldHVybiByZXQ7CiAKQEAgLTE5MzMsNyArMTk2NCw5IEBAIHN0YXRpYyBpbnQgZ2VuOF9l bWl0X3JlcXVlc3RfcmVuZGVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkK IAlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCAwKTsKIAlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdChyaW5nYnVmLCBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhyZXF1ZXN0KSk7CiAJ aW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfVVNFUl9JTlRFUlJVUFQpOwotCXJl dHVybiBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHJlcXVlc3QpOworCWlu dGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOworCisJcmV0dXJuIGludGVsX2xvZ2lj YWxfcmluZ19zdWJtaXQocmVxdWVzdCk7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4 dF9yZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKLS0g CjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK