From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 31/38] drm/i915/preempt: scheduler logic for landing preemptive requests Date: Fri, 11 Dec 2015 14:48:55 +0000 Message-ID: <1449845335-14648-1-git-send-email-John.C.Harrison@Intel.com> References: <1448278932-31551-32-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 7153F6E033 for ; Fri, 11 Dec 2015 06:48:57 -0800 (PST) In-Reply-To: <1448278932-31551-32-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 J3QgaW4gcGxhY2UgeWV0LgoKdjI6IFJlLXdvcmtlZCB0byBzaW1wbGlmeSAncHJlLWVtcHRpb24g aW4gcHJvZ3Jlc3MnIGxvZ2ljLgoKRm9yOiBWSVotMjAyMQpTaWduZWQtb2ZmLWJ5OiBEYXZlIEdv cmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgICAgICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jICAgfCA3MCArKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgg ICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgMSAr CiA0IGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA2NmM5YTU4Li5lYTNkMjI0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKQEAgLTI0ODksNiArMjQ4OSwxNCBAQCBpOTE1X2dlbV9pbml0X3NlcW5vKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzZXFubykKIAkJcmluZy0+bGFzdF9pcnFfc2Vxbm8g PSAwOwogCX0KIAorCS8qIEFsc28gcmVzZXQgc3cgYmF0Y2ggdHJhY2tpbmcgc3RhdGUgKi8KKwlm b3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7CisJCWludGVsX3dyaXRlX3N0YXR1c19w YWdlKHJpbmcsIEk5MTVfQkFUQ0hfRE9ORV9TRVFOTywgMCk7CisJCWludGVsX3dyaXRlX3N0YXR1 c19wYWdlKHJpbmcsIEk5MTVfQkFUQ0hfQUNUSVZFX1NFUU5PLCAwKTsKKwkJaW50ZWxfd3JpdGVf c3RhdHVzX3BhZ2UocmluZywgSTkxNV9QUkVFTVBUSVZFX0RPTkVfU0VRTk8sIDApOworCQlpbnRl bF93cml0ZV9zdGF0dXNfcGFnZShyaW5nLCBJOTE1X1BSRUVNUFRJVkVfQUNUSVZFX1NFUU5PLCAw KTsKKwl9CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjgzMSwxNSArMjgzOSwxOCBAQCB2b2lkIGk5 MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGJvb2wg ZmVuY2VfbG9ja2VkKQogCQlyZXR1cm47CiAJfQogCi0Jc2Vxbm8gPSByaW5nLT5nZXRfc2Vxbm8o cmluZywgZmFsc2UpOworCXNlcW5vICAgPSByaW5nLT5nZXRfc2Vxbm8ocmluZywgZmFsc2UpOwog CXRyYWNlX2k5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KHJpbmcsIHNlcW5vKTsKLQlpZiAoc2Vxbm8g PT0gcmluZy0+bGFzdF9pcnFfc2Vxbm8pCisKKwkvKiBJcyB0aGVyZSBhbnl0aGluZyBuZXcgdG8g cHJvY2Vzcz8gKi8KKwlpZiAoKHNlcW5vID09IHJpbmctPmxhc3RfaXJxX3NlcW5vKSAmJiAhaTkx NV9zY2hlZHVsZXJfaXNfcmluZ19wcmVlbXB0aW5nKHJpbmcpKQogCQlyZXR1cm47Ci0JcmluZy0+ bGFzdF9pcnFfc2Vxbm8gPSBzZXFubzsKIAogCWlmICghZmVuY2VfbG9ja2VkKQogCQlzcGluX2xv Y2tfaXJxc2F2ZSgmcmluZy0+ZmVuY2VfbG9jaywgZmxhZ3MpOwogCisJcmluZy0+bGFzdF9pcnFf c2Vxbm8gPSBzZXFubzsKKwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXEsIHJlcV9uZXh0 LCAmcmluZy0+ZmVuY2Vfc2lnbmFsX2xpc3QsIHNpZ25hbF9saW5rKSB7CiAJCWlmICghcmVxLT5j YW5jZWxsZWQpIHsKIAkJCS8qIEhvdyBjYW4gdGhpcyBoYXBwZW4/ICovCkBAIC0yODYxLDcgKzI4 NzIsNyBAQCB2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsIGJvb2wgZmVuY2VfbG9ja2VkKQogCQkgKiBhbmQgY2FsbCBzY2hlZHVsZXJfY2xl YW4oKSB3aGlsZSB0aGUgc2NoZWR1bGVyCiAJCSAqIHRoaW5rcyBpdCBpcyBzdGlsbCBhY3RpdmUu CiAJCSAqLwotCQl3YWtlX3NjaGVkIHw9IGk5MTVfc2NoZWR1bGVyX25vdGlmeV9yZXF1ZXN0KHJl cSk7CisJCXdha2Vfc2NoZWQgfD0gaTkxNV9zY2hlZHVsZXJfbm90aWZ5X3JlcXVlc3QocmVxLCBm YWxzZSk7CiAKIAkJaWYgKCFyZXEtPmNhbmNlbGxlZCkgewogCQkJZmVuY2Vfc2lnbmFsX2xvY2tl ZCgmcmVxLT5mZW5jZSk7CkBAIC0yODc3LDYgKzI4ODgsNDIgQEAgdm9pZCBpOTE1X2dlbV9yZXF1 ZXN0X25vdGlmeShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIGZlbmNlX2xvY2tl ZCkKIAkJbGlzdF9hZGRfdGFpbCgmcmVxLT51bnNpZ25hbF9saW5rLCAmcmluZy0+ZmVuY2VfdW5z aWduYWxfbGlzdCk7CiAJfQogCisJaWYgKGk5MTVfc2NoZWR1bGVyX2lzX3JpbmdfcHJlZW1wdGlu ZyhyaW5nKSkgeworCQl1MzIgcHJlZW1wdF9zdGFydCwgcHJlZW1wdF9kb25lOworCisJCXByZWVt cHRfc3RhcnQgPSBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfUFJFRU1QVElWRV9B Q1RJVkVfU0VRTk8pOworCQlwcmVlbXB0X2RvbmUgPSBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKHJp bmcsIEk5MTVfUFJFRU1QVElWRV9ET05FX1NFUU5PKTsKKworCQkvKgorCQkgKiBBIHByZWVtcHRp b24gcmVxdWVzdCBsZWF2ZXMgYm90aCBBQ1RJVkUgYW5kIERPTkUgc2V0IHRvIHRoZSBzYW1lCisJ CSAqIHNlcW5vLiAgSWYgd2UgZmluZCBBQ1RJVkUgc2V0IGJ1dCBET05FIGlzIGRpZmZlcmVudCwg dGhlIHByZWVtcHRpb24KKwkJICogaGFzIHN0YXJ0ZWQgYnV0IG5vdCB5ZXQgY29tcGxldGVkLCBz byBsZWF2ZSBpdCB1bnRpbCBuZXh0IHRpbWUuCisJCSAqIEFmdGVyIHN1Y2Nlc3NmdWxseSBwcm9j ZXNzaW5nIGEgcHJlZW1wdGlvbiByZXF1ZXN0LCB3ZSBjbGVhciBBQ1RJVkUKKwkJICogYmVsb3cg dG8gZW5zdXJlIHdlIGRvbid0IHNlZSBpdCBhZ2Fpbi4KKwkJICovCisJCWlmIChwcmVlbXB0X3N0 YXJ0ICYmIHByZWVtcHRfZG9uZSA9PSBwcmVlbXB0X3N0YXJ0KSB7CisJCQlib29sIHNjaGVkX2Fj ayA9IGZhbHNlOworCisJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCByZXFfbmV4dCwg JnJpbmctPmZlbmNlX3NpZ25hbF9saXN0LCBzaWduYWxfbGluaykgeworCQkJCWlmIChyZXEtPnNl cW5vID09IHByZWVtcHRfZG9uZSkgeworCQkJCQkvKiBEZS1saXN0IGFuZCBub3RpZnkgdGhlIHNj aGVkdWxlciwgYnV0IGRvbid0IHNpZ25hbCB5ZXQgKi8KKwkJCQkJbGlzdF9kZWxfaW5pdCgmcmVx LT5zaWduYWxfbGluayk7CisJCQkJCXNjaGVkX2FjayA9IGk5MTVfc2NoZWR1bGVyX25vdGlmeV9y ZXF1ZXN0KHJlcSwgdHJ1ZSk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKworCQkJV0FSTl9P Tighc2NoZWRfYWNrKTsKKwkJCXdha2Vfc2NoZWQgPSB0cnVlOworCisJCQkvKiBDYXB0dXJlIEJB VENIIEFDVElWRSB0byBkZXRlcm1pbmUgd2hldGhlciBhIGJhdGNoIHdhcyBpbiBwcm9ncmVzcyB3 aGVuIHByZWVtcHRlZCAqLworCQkJcmluZy0+bGFzdF9iYXRjaF9zdGFydCA9IGludGVsX3JlYWRf c3RhdHVzX3BhZ2UocmluZywgSTkxNV9CQVRDSF9BQ1RJVkVfU0VRTk8pOworCisJCQkvKiBBY2tu b3dsZWRnZS9jbGVhciBwcmVlbXB0aW9uLWFjdGl2ZSBmbGFnICovCisJCQlpbnRlbF93cml0ZV9z dGF0dXNfcGFnZShyZXEtPnJpbmcsIEk5MTVfUFJFRU1QVElWRV9BQ1RJVkVfU0VRTk8sIDApOwor CQl9CisJfQorCiAJaWYgKCFmZW5jZV9sb2NrZWQpCiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JnJpbmctPmZlbmNlX2xvY2ssIGZsYWdzKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9zY2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1 bGVyLmMKaW5kZXggNTkwNzMxZC4uNTRiNmMzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9zY2hlZHVsZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Nj aGVkdWxlci5jCkBAIC01ODQsNDAgKzU4NCw3MSBAQCBzdGF0aWMgdm9pZCBpOTE1X3NjaGVkdWxl cl9ub2RlX2tpbGwoc3RydWN0IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVsZXIsCiAgKiB0aGVuIGk5 MTVfc2NoZWR1bGVyX3dha2V1cCgpIGlzIGNhbGxlZCBzbyB0aGUgc2NoZWR1bGVyIGNhbiBkbyBm dXJ0aGVyCiAgKiBwcm9jZXNzaW5nIChzdWJtaXQgbW9yZSB3b3JrKSBhdCB0aGUgZW5kLgogICov Ci1ib29sIGk5MTVfc2NoZWR1bGVyX25vdGlmeV9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKQorYm9vbCBpOTE1X3NjaGVkdWxlcl9ub3RpZnlfcmVxdWVzdChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKKwkJCQkgICBib29sIHByZWVtcHQpCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ICA9IHRvX2k5MTUocmVxLT5yaW5nLT5kZXYp OwotCXN0cnVjdCBpOTE1X3NjaGVkdWxlciAgICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1 bGVyOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiAgPSByZXEtPmk5MTU7CisJ c3RydWN0IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOwog CXN0cnVjdCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9lbnRyeSAqbm9kZSA9IHJlcS0+c2NoZWR1bGVy X3FlOwotCXVuc2lnbmVkIGxvbmcgICAgICAgZmxhZ3M7CisJdWludDMyX3QgcmluZ19pZCA9IHJl cS0+cmluZy0+aWQ7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlib29sIHJlc3VsdDsKIAogCXRy YWNlX2k5MTVfc2NoZWR1bGVyX2xhbmRpbmcocmVxKTsKIAotCWlmICghbm9kZSkKLQkJcmV0dXJu IGZhbHNlOwotCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkdWxlci0+bG9jaywgZmxhZ3MpOwog Ci0JV0FSTl9PTighSTkxNV9TUVNfSVNfRkxZSU5HKG5vZGUpKTsKLQotCS8qIE5vZGUgd2FzIGlu IGZsaWdodCBzbyBtYXJrIGl0IGFzIGNvbXBsZXRlLiAqLwotCWlmIChyZXEtPmNhbmNlbGxlZCkg eworCWlmICghbm9kZSkgeworCQkvKiBVbnRyYWNrZWQgcmVxdWVzdCwgcHJlc3VtYWJseSByaW5n IGluaXQgKi8KKwkJV0FSTl9PTihwcmVlbXB0KTsKKwkJV0FSTl9PTighKHJlcS0+c2NoZWR1bGVy X2ZsYWdzICYgaTkxNV9yZXFfc2ZfdW50cmFja2VkKSk7CisJCXNjaGVkdWxlci0+c3RhdHNbcmlu Z19pZF0ubm9uX2JhdGNoX2RvbmUrKzsKKwkJcmVzdWx0ID0gZmFsc2U7CisJfSBlbHNlIGlmIChX QVJOKCFJOTE1X1NRU19JU19GTFlJTkcobm9kZSksICJOb2RlIG5vdCBmbHlpbmc6ICVkOiVkIC0+ ICVzISBbcHJlZW1wdCA9ICVkXVxuIiwKKwkJCXJlcS0+dW5pcSwgcmVxLT5zZXFubywKKwkJCWk5 MTVfc2NoZWR1bGVyX3F1ZXVlX3N0YXR1c19zdHIobm9kZS0+c3RhdHVzKSwgcHJlZW1wdCkpIHsK KwkJLyogVGhpcyBzaG91bGRuJ3QgaGFwcGVuICovCisJCXJlc3VsdCA9IGZhbHNlOworCX0gZWxz ZSBpZiAocmVxLT5jYW5jZWxsZWQpIHsKIAkJLyogSWYgYSBwcmVlbXB0aW9uIHdhcyBpbiBwcm9n cmVzcywgaXQgd29uJ3QgY29tcGxldGUgbm93LiAqLworCQkvLyBOZWVkIHRvIGNsZWFyIEk5MTVf UFJFRU1QVElWRV9BQ1RJVkVfU0VRTk8/Pz8KIAkJaWYgKG5vZGUtPnN0YXR1cyA9PSBpOTE1X3Nx c19vdmVydGFraW5nKQogCQkJc2NoZWR1bGVyLT5mbGFnc1tyZXEtPnJpbmctPmlkXSAmPSB+KGk5 MTVfc2ZfcHJlZW1wdGluZ3xpOTE1X3NmX3ByZWVtcHRlZCk7CiAKIAkJbm9kZS0+c3RhdHVzID0g aTkxNV9zcXNfZGVhZDsKIAkJc2NoZWR1bGVyLT5zdGF0c1tyZXEtPnJpbmctPmlkXS5raWxsX2Zs eWluZysrOwotCX0gZWxzZSB7CisJCXJlc3VsdCA9IHRydWU7CisJfSBlbHNlIGlmIChub2RlLT5z dGF0dXMgPT0gaTkxNV9zcXNfZmx5aW5nKSB7CisJCVdBUk4ocHJlZW1wdCwgIkdvdCBmbHlpbmcg bm9kZSB3aXRoIHByZWVtcHRpb24hXG4iKTsKKworCQkvKiBOb2RlIHdhcyBpbiBmbGlnaHQgc28g bWFyayBpdCBhcyBjb21wbGV0ZS4gKi8KIAkJbm9kZS0+c3RhdHVzID0gaTkxNV9zcXNfY29tcGxl dGU7Ci0JCXNjaGVkdWxlci0+c3RhdHNbcmVxLT5yaW5nLT5pZF0uY29tcGxldGVkKys7CisJCXNj aGVkdWxlci0+c3RhdHNbcmluZ19pZF0uY29tcGxldGVkKys7CisJCXJlc3VsdCA9IHRydWU7CisJ fSBlbHNlIGlmIChub2RlLT5zdGF0dXMgPT0gaTkxNV9zcXNfb3ZlcnRha2luZykgeworCQlXQVJO KCFwcmVlbXB0LCAiR290IG92ZXJ0YWtpbmcgbm9kZSB3aXRob3V0IHByZWVtcHRpb24hXG4iKTsK KworCQkvKiBQcmVlbXB0aW5nIHJlcXVlc3QgaGFzIGNvbXBsZXRlZCAmIGJlY29tZXMgcHJlZW1w dGVkICovCisJCW5vZGUtPnN0YXR1cyA9IGk5MTVfc3FzX3ByZWVtcHRlZDsKKwkJdHJhY2VfaTkx NV9zY2hlZHVsZXJfdW5mbHkobm9kZS0+cGFyYW1zLnJpbmcsIG5vZGUpOworCisJCS8qIFNjaGVk dWxlciBpcyBub3cgaW4gcG9zdC1wcmVlbXB0aW9uIHN0YXRlICovCisJCXNjaGVkdWxlci0+Zmxh Z3NbcmluZ19pZF0gfD0gaTkxNV9zZl9wcmVlbXB0ZWQ7CisJCXNjaGVkdWxlci0+c3RhdHNbcmlu Z19pZF0ucHJlZW1wdHNfY29tcGxldGVkKys7CisJCXJlc3VsdCA9IHRydWU7CisJfSBlbHNlIHsK KwkJV0FSTih0cnVlLCAiVW5rbm93biBub2RlIHN0YXRlOiAlcyBbJXNdIVxuIiwKKwkJICAgICBp OTE1X3NjaGVkdWxlcl9xdWV1ZV9zdGF0dXNfc3RyKG5vZGUtPnN0YXR1cyksCisJCSAgICAgcHJl ZW1wdCA/ICJwcmVlbXB0aW5nIiA6ICJyZWd1bGFyIik7CisJCXJlc3VsdCA9IGZhbHNlOwogCX0K IAotCXRyYWNlX2k5MTVfc2NoZWR1bGVyX25vZGVfc3RhdGVfY2hhbmdlKHJlcS0+cmluZywgbm9k ZSk7CisJaWYgKHJlc3VsdCkKKwkJdHJhY2VfaTkxNV9zY2hlZHVsZXJfbm9kZV9zdGF0ZV9jaGFu Z2UocmVxLT5yaW5nLCBub2RlKTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkdWxl ci0+bG9jaywgZmxhZ3MpOwogCi0JcmV0dXJuIHRydWU7CisJcmV0dXJuIHJlc3VsdDsKIH0KIAog LyoKQEAgLTkyMywxMSArOTU0LDE2IEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfZHVtcF9s b2NrZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgY29uc3QgY2hhciAqCiAJfQogCiAJ aWYgKHNjaGVkdWxlci0+ZmxhZ3NbcmluZy0+aWRdICYgaTkxNV9zZl9kdW1wX3NlcW5vKSB7Ci0J CXVpbnQzMl90ICAgIHNlcW5vOworCQl1aW50MzJfdCAgICBzZXFubywgYl9hY3RpdmUsIGJfZG9u ZSwgcF9hY3RpdmUsIHBfZG9uZTsKIAogCQlzZXFubyAgICA9IHJpbmctPmdldF9zZXFubyhyaW5n LCB0cnVlKTsKKwkJcF9kb25lICAgPSBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVf UFJFRU1QVElWRV9ET05FX1NFUU5PKTsKKwkJcF9hY3RpdmUgPSBpbnRlbF9yZWFkX3N0YXR1c19w YWdlKHJpbmcsIEk5MTVfUFJFRU1QVElWRV9BQ1RJVkVfU0VRTk8pOworCQliX2RvbmUgICA9IGlu dGVsX3JlYWRfc3RhdHVzX3BhZ2UocmluZywgSTkxNV9CQVRDSF9ET05FX1NFUU5PKTsKKwkJYl9h Y3RpdmUgPSBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfQkFUQ0hfQUNUSVZFX1NF UU5PKTsKIAotCQlEUk1fREVCVUdfRFJJVkVSKCI8JXM+IFNlcW5vID0gJWRcbiIsIHJpbmctPm5h bWUsIHNlcW5vKTsKKwkJRFJNX0RFQlVHX0RSSVZFUigiPCVzPiBTZXFubyA9ICUwOHgsIEJEID0g JTA4eCwgQkEgPSAlMDh4LCBQRCA9ICUwOHgsIFBBID0gJTA4eFxuIiwKKwkJCQkgcmluZy0+bmFt ZSwgc2Vxbm8sIGJfZG9uZSwgYl9hY3RpdmUsIHBfZG9uZSwgcF9hY3RpdmUpOwogCX0KIAogCWlm IChzY2hlZHVsZXItPmZsYWdzW3JpbmctPmlkXSAmIGk5MTVfc2ZfZHVtcF9kZXRhaWxzKSB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaAppbmRleCA5NDBmMjVmLi41Yjg3MWIwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKQEAgLTE5Miw3ICsxOTIsOCBAQCBp bnQgICAgICAgICBpOTE1X3NjaGVkdWxlcl9jbG9zZWZpbGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAkJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiB2b2lkICAgICAgICBpOTE1X2dl bV9zY2hlZHVsZXJfY2xlYW5fbm9kZShzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkg Km5vZGUpOwogaW50ICAgICAgICAgaTkxNV9zY2hlZHVsZXJfcXVldWVfZXhlY2J1ZmZlcihzdHJ1 Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgKnFlKTsKLWJvb2wgICAgICAgIGk5MTVfc2No ZWR1bGVyX25vdGlmeV9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsK K2Jvb2wgICAgICAgIGk5MTVfc2NoZWR1bGVyX25vdGlmeV9yZXF1ZXN0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxLAorCQkJCQkgIGJvb2wgcHJlZW1wdCk7CiB2b2lkICAgICAgICBp OTE1X3NjaGVkdWxlcl93YWtldXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBib29sICAgICAg ICBpOTE1X3NjaGVkdWxlcl9pc19yaW5nX2ZseWluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKTsKIGJvb2wgICAgICAgIGk5MTVfc2NoZWR1bGVyX2lzX3JpbmdfcHJlZW1wdGluZyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAppbmRleCA2YmRjMWFkLi41NGI1ZWQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oCkBAIC0zNzcsNiArMzc3LDcgQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVf Y3MgewogCXN0cnVjdCBsaXN0X2hlYWQgZmVuY2Vfc2lnbmFsX2xpc3Q7CiAJc3RydWN0IGxpc3Rf aGVhZCBmZW5jZV91bnNpZ25hbF9saXN0OwogCXVpbnQzMl90IGxhc3RfaXJxX3NlcW5vOworCXVp bnQzMl90IGxhc3RfYmF0Y2hfc3RhcnQ7CiB9OwogCiBib29sIGludGVsX3JpbmdfaW5pdGlhbGl6 ZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Ci0tIAoxLjkuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK