From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 31/37] drm/i915/preempt: scheduler logic for landing preemptive requests Date: Mon, 23 Nov 2015 11:42:06 +0000 Message-ID: <1448278932-31551-32-git-send-email-John.C.Harrison@Intel.com> References: <1448278932-31551-1-git-send-email-John.C.Harrison@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 [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 2D5F56E554 for ; Mon, 23 Nov 2015 03:42:50 -0800 (PST) In-Reply-To: <1448278932-31551-1-git-send-email-John.C.Harrison@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 RnJvbTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KClRoaXMgcGF0Y2gg YWRkcyB0aGUgR0VNICYgc2NoZWR1bGVyIGxvZ2ljIGZvciBkZXRlY3Rpb24gYW5kIGZpcnN0LXN0 YWdlCnByb2Nlc3Npbmcgb2YgY29tcGxldGVkIHByZWVtcHRpb24gcmVxdWVzdHMuIFNpbWlsYXIg dG8gcmVndWxhciBiYXRjaGVzLAp0aGV5IGRlcG9zaXQgdGhlaXIgc2VxdWVuY2UgbnVtYmVyIGlu IHRoZSBoYXJkd2FyZSBzdGF0dXMgcGFnZSB3aGVuCnN0YXJ0aW5nIGFuZCBhZ2FpbiB3aGVuIGZp bmlzaGVkLCBidXQgdXNpbmcgZGlmZmVyZW50IGxvY2F0aW9ucyBzbyB0aGF0CmluZm9ybWF0aW9u IHBlcnRhaW5pbmcgdG8gYSBwcmVlbXB0ZWQgYmF0Y2ggaXMgbm90IG92ZXJ3cml0dGVuLiBBbHNv LAp0aGUgaW4tcHJvZ3Jlc3MgZmxhZyBpcyBub3QgYnkgdGhlIEdQVSBjbGVhcmVkIGF0IHRoZSBl bmQgb2YgdGhlIGJhdGNoOwppbnN0ZWFkIGRyaXZlciBzb2Z0d2FyZSBpcyByZXNwb25zaWJsZSBm b3IgY2xlYXJpbmcgdGhpcyBvbmNlIHRoZQpyZXF1ZXN0IGNvbXBsZXRpb24gaGFzIGJlZW4gbm90 aWNlZC4KCkFjdHVhbGx5LXByZWVtcHRpdmUgcmVxdWVzdHMgYXJlIHN0aWxsIGRpc2FibGVkIHZp YSBhIG1vZHVsZSBwYXJhbWV0ZXIKYXQgdGhpcyBlYXJseSBzdGFnZSwgYXMgdGhlIHJlc3Qgb2Yg dGhlIGxvZ2ljIHRvIGRlYWwgd2l0aCB0aGUKY29uc2VxdWVuY2VzIG9mIHByZWVtcHRpb24gaXNu J3QgaW4gcGxhY2UgeWV0LgoKRm9yOiBWSVotMjAyMQpTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRv biA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgICAgICAgfCA2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jIHwgNzAgKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVy LmggfCAgMyArLQogMyBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggNTUzMTdiMWNhLi40OGE1N2MwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTI0OTMsNiArMjQ5MywxNCBAQCBpOTE1X2dlbV9p bml0X3NlcW5vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzZXFubykKIAkJcmluZy0+bGFz dF9pcnFfc2Vxbm8gPSAwOwogCX0KIAorCS8qIEFsc28gcmVzZXQgc3cgYmF0Y2ggdHJhY2tpbmcg c3RhdGUgKi8KKwlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7CisJCWludGVsX3dy aXRlX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfQkFUQ0hfRE9ORV9TRVFOTywgMCk7CisJCWludGVs X3dyaXRlX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfQkFUQ0hfQUNUSVZFX1NFUU5PLCAwKTsKKwkJ aW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2UocmluZywgSTkxNV9QUkVFTVBUSVZFX0RPTkVfU0VRTk8s IDApOworCQlpbnRlbF93cml0ZV9zdGF0dXNfcGFnZShyaW5nLCBJOTE1X1BSRUVNUFRJVkVfQUNU SVZFX1NFUU5PLCAwKTsKKwl9CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjgyOSw2ICsyODM3LDcg QEAgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLCBib29sIGZlbmNlX2xvY2tlZCkKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSwgKnJlcV9uZXh0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJYm9vbCB3YWtlX3NjaGVkID0g ZmFsc2U7CisJdTMyIHByZWVtcHQ7CiAJdTMyIHNlcW5vOwogCiAJaWYgKGxpc3RfZW1wdHkoJnJp bmctPmZlbmNlX3NpZ25hbF9saXN0KSkgewpAQCAtMjgzNiw5ICsyODQ1LDIzIEBAIHZvaWQgaTkx NV9nZW1fcmVxdWVzdF9ub3RpZnkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBm ZW5jZV9sb2NrZWQpCiAJCXJldHVybjsKIAl9CiAKLQlzZXFubyA9IHJpbmctPmdldF9zZXFubyhy aW5nLCBmYWxzZSk7CisJc2Vxbm8gICA9IHJpbmctPmdldF9zZXFubyhyaW5nLCBmYWxzZSk7CisJ cHJlZW1wdCA9IGk5MTVfc2NoZWR1bGVyX2lzX3JpbmdfcHJlZW1wdGluZyhyaW5nKSA/CisJCSAg aW50ZWxfcmVhZF9zdGF0dXNfcGFnZShyaW5nLCBJOTE1X1BSRUVNUFRJVkVfQUNUSVZFX1NFUU5P KSA6IDA7CiAJdHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9ub3RpZnkocmluZywgc2Vxbm8pOwotCWlm IChzZXFubyA9PSByaW5nLT5sYXN0X2lycV9zZXFubykKKworCWlmIChwcmVlbXB0KSB7CisJCXUz MiBwcmVlbXB0X2RvbmU7CisKKwkJcHJlZW1wdF9kb25lID0gaW50ZWxfcmVhZF9zdGF0dXNfcGFn ZShyaW5nLCBJOTE1X1BSRUVNUFRJVkVfRE9ORV9TRVFOTyk7CisKKwkJLyogQSBtaXNtYXRjaCBp bmRpY2F0ZXMgYW4gaW4tcHJvZ3Jlc3Mgb3BlcmF0aW9uIHNvIGlnbm9yZSBpdCBmb3Igbm93ICov CisJCWlmIChwcmVlbXB0X2RvbmUgIT0gcHJlZW1wdCkKKwkJCXByZWVtcHQgPSAwOworCX0KKwor CS8qIElzIHRoZXJlIGFueXRoaW5nIG5ldyB0byBwcm9jZXNzPyAqLworCWlmICgoc2Vxbm8gPT0g cmluZy0+bGFzdF9pcnFfc2Vxbm8pICYmICFwcmVlbXB0KQogCQlyZXR1cm47CiAJcmluZy0+bGFz dF9pcnFfc2Vxbm8gPSBzZXFubzsKIApAQCAtMjg2Niw3ICsyODg5LDcgQEAgdm9pZCBpOTE1X2dl bV9yZXF1ZXN0X25vdGlmeShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIGZlbmNl X2xvY2tlZCkKIAkJICogYW5kIGNhbGwgc2NoZWR1bGVyX2NsZWFuKCkgd2hpbGUgdGhlIHNjaGVk dWxlcgogCQkgKiB0aGlua3MgaXQgaXMgc3RpbGwgYWN0aXZlLgogCQkgKi8KLQkJd2FrZV9zY2hl ZCB8PSBpOTE1X3NjaGVkdWxlcl9ub3RpZnlfcmVxdWVzdChyZXEpOworCQl3YWtlX3NjaGVkIHw9 IGk5MTVfc2NoZWR1bGVyX25vdGlmeV9yZXF1ZXN0KHJlcSwgZmFsc2UpOwogCiAJCWlmICghcmVx LT5jYW5jZWxsZWQpIHsKIAkJCWZlbmNlX3NpZ25hbF9sb2NrZWQoJnJlcS0+ZmVuY2UpOwpAQCAt Mjg4Miw2ICsyOTA1LDQ1IEBAIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9ub3RpZnkoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBmZW5jZV9sb2NrZWQpCiAJCWxpc3RfYWRkX3RhaWwo JnJlcS0+dW5zaWduYWxfbGluaywgJnJpbmctPmZlbmNlX3Vuc2lnbmFsX2xpc3QpOwogCX0KIAor CS8qCisJICogTm90ZSB0aGF0IGRvaW5nIHRoZSBwcmUtZW1wdGlvbiBzZXFubyBjaGVjayBiZWZv cmUgYWNxdWlyaW5nIHRoZQorCSAqIHNwaW5sb2NrIG1lYW5zIHRoYXQgdGhlcmUgY291bGQgYmUg bXVsdGlwbGUgcmVxdWVzdF9ub3RpZnkoKSBjYWxscworCSAqIGF0dGVtcHRpbmcgdG8gcHJvY2Vz cyBwcmVlbXB0aW9uIGNvbmN1cnJlbnRseS4gVGhlIGFkdmFudGFnZSBpcworCSAqIG5vdCBuZWVk aW5nIHRvIGdyYWIgdGhlIHNwaW5sb2NrIHdoZW4gdGhlcmUgaXMgbm90aGluZyB0byBkby4KKwkg KiBUaGUgZGlzYWR2YW50YWdlIGlzIG5lZWRlZCB0byByZS1jaGVjayB0byBzZWUgaWYgdGhlIHBy ZWVtcHRpb24KKwkgKiBldmVudCBoYXMgYWxyZWFkeSBiZWVuIHByb2Nlc3NlZC4KKwkgKi8KKwlp ZiAocHJlZW1wdCkgeworCQl1MzIgcHJlZW1wdF9kb25lOworCisJCXByZWVtcHQgPSBpbnRlbF9y ZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfUFJFRU1QVElWRV9BQ1RJVkVfU0VRTk8pOworCQlw cmVlbXB0X2RvbmUgPSBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfUFJFRU1QVElW RV9ET05FX1NFUU5PKTsKKworCQkvKiBBIG1pc21hdGNoIGluZGljYXRlcyBhbiBpbi1wcm9ncmVz cyBvcGVyYXRpb24gc28gaWdub3JlIGl0IGZvciBub3cgKi8KKwkJaWYgKHByZWVtcHRfZG9uZSAh PSBwcmVlbXB0KQorCQkJcHJlZW1wdCA9IDA7CisJfQorCisJLyogSWYgYSAoY29tcGxldGVkKSBw cmVlbXB0aW9uIGhhcyBvY2N1cnJlZCB0aGVuIHByb2Nlc3MgaXQgbm93LiAqLworCWlmIChwcmVl bXB0KSB7CisJCWJvb2wgc2NoZWRfYWNrID0gZmFsc2U7CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKHJlcSwgcmVxX25leHQsICZyaW5nLT5mZW5jZV9zaWduYWxfbGlzdCwgc2lnbmFsX2xp bmspIHsKKwkJCWlmIChyZXEtPnNlcW5vID09IHByZWVtcHQpIHsKKwkJCQkvKiBEZS1saXN0IGFu ZCBub3RpZnkgdGhlIHNjaGVkdWxlciwgYnV0IGRvbid0IHNpZ25hbCB5ZXQgKi8KKwkJCQlsaXN0 X2RlbF9pbml0KCZyZXEtPnNpZ25hbF9saW5rKTsKKwkJCQlzY2hlZF9hY2sgPSBpOTE1X3NjaGVk dWxlcl9ub3RpZnlfcmVxdWVzdChyZXEsIHRydWUpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisK KwkJV0FSTl9PTighc2NoZWRfYWNrKTsKKwkJd2FrZV9zY2hlZCA9IHRydWU7CisKKwkJLyogQWNr bm93bGVkZ2UvY2xlYXIgcHJlZW1wdGlvbi1hY3RpdmUgZmxhZyAqLworCQlpbnRlbF93cml0ZV9z dGF0dXNfcGFnZShyZXEtPnJpbmcsIEk5MTVfUFJFRU1QVElWRV9BQ1RJVkVfU0VRTk8sIDApOwor CX0KKwogCWlmICghZmVuY2VfbG9ja2VkKQogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyaW5n LT5mZW5jZV9sb2NrLCBmbGFncyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfc2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5j CmluZGV4IGEwMzdiYTIuLjBjMjM0NGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfc2NoZWR1bGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVs ZXIuYwpAQCAtNTU4LDQwICs1NTgsNzEgQEAgc3RhdGljIHZvaWQgaTkxNV9zY2hlZHVsZXJfbm9k ZV9raWxsKHN0cnVjdCBpOTE1X3NjaGVkdWxlciAqc2NoZWR1bGVyLAogICogdGhlbiBpOTE1X3Nj aGVkdWxlcl93YWtldXAoKSBpcyBjYWxsZWQgc28gdGhlIHNjaGVkdWxlciBjYW4gZG8gZnVydGhl cgogICogcHJvY2Vzc2luZyAoc3VibWl0IG1vcmUgd29yaykgYXQgdGhlIGVuZC4KICAqLwotYm9v bCBpOTE1X3NjaGVkdWxlcl9ub3RpZnlfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSkKK2Jvb2wgaTkxNV9zY2hlZHVsZXJfbm90aWZ5X3JlcXVlc3Qoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCisJCQkJICAgYm9vbCBwcmVlbXB0KQogewotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiAgPSB0b19pOTE1KHJlcS0+cmluZy0+ZGV2KTsKLQlz dHJ1Y3QgaTkxNV9zY2hlZHVsZXIgICAqc2NoZWR1bGVyID0gZGV2X3ByaXYtPnNjaGVkdWxlcjsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgID0gcmVxLT5pOTE1OworCXN0cnVj dCBpOTE1X3NjaGVkdWxlciAqc2NoZWR1bGVyID0gZGV2X3ByaXYtPnNjaGVkdWxlcjsKIAlzdHJ1 Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgKm5vZGUgPSByZXEtPnNjaGVkdWxlcl9xZTsK LQl1bnNpZ25lZCBsb25nICAgICAgIGZsYWdzOworCXVpbnQzMl90IHJpbmdfaWQgPSByZXEtPnJp bmctPmlkOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJYm9vbCByZXN1bHQ7CiAKIAl0cmFjZV9p OTE1X3NjaGVkdWxlcl9sYW5kaW5nKHJlcSk7CiAKLQlpZiAoIW5vZGUpCi0JCXJldHVybiBmYWxz ZTsKLQogCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZHVsZXItPmxvY2ssIGZsYWdzKTsKIAotCVdB Uk5fT04oIUk5MTVfU1FTX0lTX0ZMWUlORyhub2RlKSk7Ci0KLQkvKiBOb2RlIHdhcyBpbiBmbGln aHQgc28gbWFyayBpdCBhcyBjb21wbGV0ZS4gKi8KLQlpZiAocmVxLT5jYW5jZWxsZWQpIHsKKwlp ZiAoIW5vZGUpIHsKKwkJLyogVW50cmFja2VkIHJlcXVlc3QsIHByZXN1bWFibHkgcmluZyBpbml0 ICovCisJCVdBUk5fT04ocHJlZW1wdCk7CisJCVdBUk5fT04oIShyZXEtPnNjaGVkdWxlcl9mbGFn cyAmIGk5MTVfcmVxX3NmX3VudHJhY2tlZCkpOworCQlzY2hlZHVsZXItPnN0YXRzW3JpbmdfaWRd Lm5vbl9iYXRjaF9kb25lKys7CisJCXJlc3VsdCA9IGZhbHNlOworCX0gZWxzZSBpZiAoV0FSTigh STkxNV9TUVNfSVNfRkxZSU5HKG5vZGUpLCAiTm9kZSBub3QgZmx5aW5nOiAlZDolZCAtPiAlcyEg W3ByZWVtcHQgPSAlZF1cbiIsCisJCQlyZXEtPnVuaXEsIHJlcS0+c2Vxbm8sCisJCQlpOTE1X3Nj aGVkdWxlcl9xdWV1ZV9zdGF0dXNfc3RyKG5vZGUtPnN0YXR1cyksIHByZWVtcHQpKSB7CisJCS8q IFRoaXMgc2hvdWxkbid0IGhhcHBlbiAqLworCQlyZXN1bHQgPSBmYWxzZTsKKwl9IGVsc2UgaWYg KHJlcS0+Y2FuY2VsbGVkKSB7CiAJCS8qIElmIGEgcHJlZW1wdGlvbiB3YXMgaW4gcHJvZ3Jlc3Ms IGl0IHdvbid0IGNvbXBsZXRlIG5vdy4gKi8KKwkJLy8gTmVlZCB0byBjbGVhciBJOTE1X1BSRUVN UFRJVkVfQUNUSVZFX1NFUU5PPz8/CiAJCWlmIChub2RlLT5zdGF0dXMgPT0gaTkxNV9zcXNfb3Zl cnRha2luZykKIAkJCXNjaGVkdWxlci0+ZmxhZ3NbcmVxLT5yaW5nLT5pZF0gJj0gfihpOTE1X3Nm X3ByZWVtcHRpbmd8aTkxNV9zZl9wcmVlbXB0ZWQpOwogCiAJCW5vZGUtPnN0YXR1cyA9IGk5MTVf c3FzX2RlYWQ7CiAJCXNjaGVkdWxlci0+c3RhdHNbcmVxLT5yaW5nLT5pZF0ua2lsbF9mbHlpbmcr KzsKLQl9IGVsc2UgeworCQlyZXN1bHQgPSB0cnVlOworCX0gZWxzZSBpZiAobm9kZS0+c3RhdHVz ID09IGk5MTVfc3FzX2ZseWluZykgeworCQlXQVJOKHByZWVtcHQsICJHb3QgZmx5aW5nIG5vZGUg d2l0aCBwcmVlbXB0aW9uIVxuIik7CisKKwkJLyogTm9kZSB3YXMgaW4gZmxpZ2h0IHNvIG1hcmsg aXQgYXMgY29tcGxldGUuICovCiAJCW5vZGUtPnN0YXR1cyA9IGk5MTVfc3FzX2NvbXBsZXRlOwot CQlzY2hlZHVsZXItPnN0YXRzW3JlcS0+cmluZy0+aWRdLmNvbXBsZXRlZCsrOworCQlzY2hlZHVs ZXItPnN0YXRzW3JpbmdfaWRdLmNvbXBsZXRlZCsrOworCQlyZXN1bHQgPSB0cnVlOworCX0gZWxz ZSBpZiAobm9kZS0+c3RhdHVzID09IGk5MTVfc3FzX292ZXJ0YWtpbmcpIHsKKwkJV0FSTighcHJl ZW1wdCwgIkdvdCBvdmVydGFraW5nIG5vZGUgd2l0aG91dCBwcmVlbXB0aW9uIVxuIik7CisKKwkJ LyogUHJlZW1wdGluZyByZXF1ZXN0IGhhcyBjb21wbGV0ZWQgJiBiZWNvbWVzIHByZWVtcHRlZCAq LworCQlub2RlLT5zdGF0dXMgPSBpOTE1X3Nxc19wcmVlbXB0ZWQ7CisJCXRyYWNlX2k5MTVfc2No ZWR1bGVyX3VuZmx5KG5vZGUtPnBhcmFtcy5yaW5nLCBub2RlKTsKKworCQkvKiBTY2hlZHVsZXIg aXMgbm93IGluIHBvc3QtcHJlZW1wdGlvbiBzdGF0ZSAqLworCQlzY2hlZHVsZXItPmZsYWdzW3Jp bmdfaWRdIHw9IGk5MTVfc2ZfcHJlZW1wdGVkOworCQlzY2hlZHVsZXItPnN0YXRzW3JpbmdfaWRd LnByZWVtcHRzX2NvbXBsZXRlZCsrOworCQlyZXN1bHQgPSB0cnVlOworCX0gZWxzZSB7CisJCVdB Uk4odHJ1ZSwgIlVua25vd24gbm9kZSBzdGF0ZTogJXMgWyVzXSFcbiIsCisJCSAgICAgaTkxNV9z Y2hlZHVsZXJfcXVldWVfc3RhdHVzX3N0cihub2RlLT5zdGF0dXMpLAorCQkgICAgIHByZWVtcHQg PyAicHJlZW1wdGluZyIgOiAicmVndWxhciIpOworCQlyZXN1bHQgPSBmYWxzZTsKIAl9CiAKLQl0 cmFjZV9pOTE1X3NjaGVkdWxlcl9ub2RlX3N0YXRlX2NoYW5nZShyZXEtPnJpbmcsIG5vZGUpOwor CWlmIChyZXN1bHQpCisJCXRyYWNlX2k5MTVfc2NoZWR1bGVyX25vZGVfc3RhdGVfY2hhbmdlKHJl cS0+cmluZywgbm9kZSk7CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZHVsZXItPmxv Y2ssIGZsYWdzKTsKIAotCXJldHVybiB0cnVlOworCXJldHVybiByZXN1bHQ7CiB9CiAKIC8qCkBA IC04OTQsMTEgKzkyNSwxNiBAQCBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX2R1bXBfbG9ja2Vk KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGNvbnN0IGNoYXIgKgogCX0KIAogCWlmIChz Y2hlZHVsZXItPmZsYWdzW3JpbmctPmlkXSAmIGk5MTVfc2ZfZHVtcF9zZXFubykgewotCQl1aW50 MzJfdCAgICBzZXFubzsKKwkJdWludDMyX3QgICAgc2Vxbm8sIGJfYWN0aXZlLCBiX2RvbmUsIHBf YWN0aXZlLCBwX2RvbmU7CiAKIAkJc2Vxbm8gICAgPSByaW5nLT5nZXRfc2Vxbm8ocmluZywgdHJ1 ZSk7CisJCXBfZG9uZSAgID0gaW50ZWxfcmVhZF9zdGF0dXNfcGFnZShyaW5nLCBJOTE1X1BSRUVN UFRJVkVfRE9ORV9TRVFOTyk7CisJCXBfYWN0aXZlID0gaW50ZWxfcmVhZF9zdGF0dXNfcGFnZShy aW5nLCBJOTE1X1BSRUVNUFRJVkVfQUNUSVZFX1NFUU5PKTsKKwkJYl9kb25lICAgPSBpbnRlbF9y ZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfQkFUQ0hfRE9ORV9TRVFOTyk7CisJCWJfYWN0aXZl ID0gaW50ZWxfcmVhZF9zdGF0dXNfcGFnZShyaW5nLCBJOTE1X0JBVENIX0FDVElWRV9TRVFOTyk7 CiAKLQkJRFJNX0RFQlVHX0RSSVZFUigiPCVzPiBTZXFubyA9ICVkXG4iLCByaW5nLT5uYW1lLCBz ZXFubyk7CisJCURSTV9ERUJVR19EUklWRVIoIjwlcz4gU2Vxbm8gPSAlMDh4LCBCRCA9ICUwOHgs IEJBID0gJTA4eCwgUEQgPSAlMDh4LCBQQSA9ICUwOHhcbiIsCisJCQkJIHJpbmctPm5hbWUsIHNl cW5vLCBiX2RvbmUsIGJfYWN0aXZlLCBwX2RvbmUsIHBfYWN0aXZlKTsKIAl9CiAKIAlpZiAoc2No ZWR1bGVyLT5mbGFnc1tyaW5nLT5pZF0gJiBpOTE1X3NmX2R1bXBfZGV0YWlscykgewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKaW5kZXggZDVmNGFmMy4uMmNhNTQzMyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oCkBAIC0xOTEsNyArMTkxLDggQEAgaW50ICAg ICAgICAgaTkxNV9zY2hlZHVsZXJfY2xvc2VmaWxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwogdm9pZCAgICAgICAgaTkxNV9nZW1fc2No ZWR1bGVyX2NsZWFuX25vZGUoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpub2Rl KTsKIGludCAgICAgICAgIGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2V4ZWNidWZmZXIoc3RydWN0IGk5 MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpxZSk7Ci1ib29sICAgICAgICBpOTE1X3NjaGVkdWxl cl9ub3RpZnlfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Citib29s ICAgICAgICBpOTE1X3NjaGVkdWxlcl9ub3RpZnlfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKKwkJCQkJICBib29sIHByZWVtcHQpOwogdm9pZCAgICAgICAgaTkxNV9z Y2hlZHVsZXJfd2FrZXVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogYm9vbCAgICAgICAgaTkx NV9zY2hlZHVsZXJfaXNfcmluZ19mbHlpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7 CiBib29sICAgICAgICBpOTE1X3NjaGVkdWxlcl9pc19yaW5nX3ByZWVtcHRpbmcoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyk7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK