From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH v5 29/35] drm/i915: Added scheduler statistic reporting to debugfs Date: Thu, 18 Feb 2016 14:27:17 +0000 Message-ID: <1455805644-6450-30-git-send-email-John.C.Harrison@Intel.com> References: <1455805644-6450-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id A365A6EC05 for ; Thu, 18 Feb 2016 14:28:04 +0000 (UTC) In-Reply-To: <1455805644-6450-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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KCkl0IGlzIHVz ZWZ1bCBmb3Iga25vdyB3aGF0IHRoZSBzY2hlZHVsZXIgaXMgZG9pbmcgZm9yIGJvdGggZGVidWdn aW5nCmFuZCBwZXJmb3JtYW5jZSBhbmFseXNpcyBwdXJwb3Nlcy4gVGhpcyBjaGFuZ2UgYWRkcyBh IGJ1bmNoIG9mCmNvdW50ZXJzIGFuZCBzdWNoIHRoYXQga2VlcCB0cmFjayBvZiB2YXJpb3VzIHNj aGVkdWxlciBvcGVyYXRpb25zCihiYXRjaGVzIHN1Ym1pdHRlZCwgY29tcGxldGVkLCBmbHVzaCBy ZXF1ZXN0cywgZXRjLikuIFRoZSBkYXRhIGNhbgp0aGVuIGJlIHJlYWQgaW4gdXNlcmxhbmQgdmlh IHRoZSBkZWJ1Z2ZzIG1lY2hhbmlzbS4KCnYyOiBVcGRhdGVkIHRvIG1hdGNoIGNoYW5nZXMgdG8g c2NoZWR1bGVyIGltcGxlbWVudGF0aW9uLgoKdjM6IFVwZGF0ZWQgZm9yIGNoYW5nZXMgdG8ga2ls bCBjb2RlIGFuZCBmbHVzaCBjb2RlLgoKdjQ6IFJlbW92ZWQgdGhlIGZlbmNlL3N5bmMgY29kZSBh cyB0aGF0IHdpbGwgYmUgcGFydCBvZiBhIHNlcGFyYXRlCnBhdGNoIHNlcmllcy4gV3JhcHBlZCBh IGxvbmcgbGluZSB0byBrZWVwIHRoZSBzdHlsZSBjaGVja2VyIGhhcHB5LgoKdjU6IFVwZGF0ZWQg dG8gcmVtb3ZlIGZvcndhcmQgZGVjbGFyYXRpb25zIGFuZCB3aGl0ZSBzcGFjZS4gQWRkZWQKZG9j dW1lbnRhdGlvbi4gW0pvb25hcyBMYWh0aW5lbl0KClVzZWQgbGlnaHRlciB3ZWlnaHQgc3Bpbmxv Y2tzLgoKRm9yOiBWSVotMTU4NwpTaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMu SGFycmlzb25ASW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5A bGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j ICAgICAgICB8IDczICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAzICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3NjaGVkdWxlci5jICAgICAgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmggICAgICB8IDMxICsrKysr KysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxODAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDdkMDFjMDcuLjJjOGIwMGYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0zNTk1LDYgKzM1OTUsNzggQEAg c3RhdGljIGludCBpOTE1X2RycnNfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51 c2VkKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX2luZm8oc3Ry dWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCit7CisJc3RydWN0IGRybV9pbmZvX25vZGUg Km5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKikgbS0+cHJpdmF0ZTsKKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpOTE1X3NjaGVkdWxlciAg ICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOworCXN0cnVjdCBpOTE1X3NjaGVkdWxl cl9zdGF0cyAqc3RhdHMgPSBzY2hlZHVsZXItPnN0YXRzOworCXN0cnVjdCBpOTE1X3NjaGVkdWxl cl9zdGF0c19ub2RlcyBub2RlX3N0YXRzW0k5MTVfTlVNX1JJTkdTXTsKKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nOworCWNoYXIgICBzdHJbNTAgKiAoSTkxNV9OVU1fUklOR1MgKyAxKV0s IG5hbWVbNTBdLCAqcHRyOworCWludCByZXQsIGksIHI7CisKKwlyZXQgPSBtdXRleF9sb2NrX2lu dGVycnVwdGlibGUoJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOworCWlmIChyZXQpCisJCXJldHVy biByZXQ7CisKKyNkZWZpbmUgUFJJTlRfVkFSKG5hbWUsIGZtdCwgdmFyKQkJCQkJXAorCWRvIHsJ CQkJCQkJCVwKKwkJc3ByaW50ZihzdHIsICIlLTIycyIsIG5hbWUpOwkJCQlcCisJCXB0ciA9IHN0 ciArIHN0cmxlbihzdHIpOwkJCQlcCisJCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIHIp IHsJCQlcCisJCQlzcHJpbnRmKHB0ciwgIiAlMTAiIGZtdCwgdmFyKTsJCQlcCisJCQlwdHIgKz0g c3RybGVuKHB0cik7CQkJCVwKKwkJfQkJCQkJCQlcCisJCXNlcV9wcmludGYobSwgIiVzXG4iLCBz dHIpOwkJCQlcCisJfSB3aGlsZSAoMCkKKworCVBSSU5UX1ZBUigiUmluZyBuYW1lOiIsICAgICAg ICAgICAgICJzIiwgZGV2X3ByaXYtPnJpbmdbcl0ubmFtZSk7CisJUFJJTlRfVkFSKCIgIFJpbmcg c2Vxbm8iLCAgICAgICAgICAgImQiLCByaW5nLT5nZXRfc2Vxbm8ocmluZywgZmFsc2UpKTsKKwlz ZXFfcHV0YyhtLCAnXG4nKTsKKworCXNlcV9wdXRzKG0sICJCYXRjaCBzdWJtaXNzaW9uczpcbiIp OworCVBSSU5UX1ZBUigiICBRdWV1ZWQiLCAgICAgICAgICAgICAgICJ1Iiwgc3RhdHNbcl0ucXVl dWVkKTsKKwlQUklOVF9WQVIoIiAgU3VibWl0dGVkIiwgICAgICAgICAgICAidSIsIHN0YXRzW3Jd LnN1Ym1pdHRlZCk7CisJUFJJTlRfVkFSKCIgIENvbXBsZXRlZCIsICAgICAgICAgICAgInUiLCBz dGF0c1tyXS5jb21wbGV0ZWQpOworCVBSSU5UX1ZBUigiICBFeHBpcmVkIiwgICAgICAgICAgICAg ICJ1Iiwgc3RhdHNbcl0uZXhwaXJlZCk7CisJc2VxX3B1dGMobSwgJ1xuJyk7CisKKwlzZXFfcHV0 cyhtLCAiRmx1c2ggY291bnRzOlxuIik7CisJUFJJTlRfVkFSKCIgIEJ5IG9iamVjdCIsICAgICAg ICAgICAgInUiLCBzdGF0c1tyXS5mbHVzaF9vYmopOworCVBSSU5UX1ZBUigiICBCeSByZXF1ZXN0 IiwgICAgICAgICAgICJ1Iiwgc3RhdHNbcl0uZmx1c2hfcmVxKTsKKwlQUklOVF9WQVIoIiAgQnkg c3RhbXAiLCAgICAgICAgICAgICAidSIsIHN0YXRzW3JdLmZsdXNoX3N0YW1wKTsKKwlQUklOVF9W QVIoIiAgQmxhbmtldCIsICAgICAgICAgICAgICAidSIsIHN0YXRzW3JdLmZsdXNoX2FsbCk7CisJ UFJJTlRfVkFSKCIgIEVudHJpZXMgYnVtcGVkIiwgICAgICAgInUiLCBzdGF0c1tyXS5mbHVzaF9i dW1wKTsKKwlQUklOVF9WQVIoIiAgRW50cmllcyBzdWJtaXR0ZWQiLCAgICAidSIsIHN0YXRzW3Jd LmZsdXNoX3N1Ym1pdCk7CisJc2VxX3B1dGMobSwgJ1xuJyk7CisKKwlzZXFfcHV0cyhtLCAiTWlz Y2VsbGFuZW91czpcbiIpOworCVBSSU5UX1ZBUigiICBFeGVjRWFybHkgcmV0cnkiLCAgICAgICJ1 Iiwgc3RhdHNbcl0uZXhlY19lYXJseSk7CisJUFJJTlRfVkFSKCIgIEV4ZWNGaW5hbCByZXF1ZXVl IiwgICAgInUiLCBzdGF0c1tyXS5leGVjX2FnYWluKTsKKwlQUklOVF9WQVIoIiAgRXhlY0ZpbmFs IGtpbGxlZCIsICAgICAidSIsIHN0YXRzW3JdLmV4ZWNfZGVhZCk7CisJUFJJTlRfVkFSKCIgIEh1 bmcgZmx5aW5nIiwgICAgICAgICAgInUiLCBzdGF0c1tyXS5raWxsX2ZseWluZyk7CisJUFJJTlRf VkFSKCIgIEh1bmcgcXVldWVkIiwgICAgICAgICAgInUiLCBzdGF0c1tyXS5raWxsX3F1ZXVlZCk7 CisJc2VxX3B1dGMobSwgJ1xuJyk7CisKKwlzZXFfcHV0cyhtLCAiUXVldWUgY29udGVudHM6XG4i KTsKKwlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKQorCQlpOTE1X3NjaGVkdWxlcl9x dWVyeV9zdGF0cyhyaW5nLCBub2RlX3N0YXRzICsgcmluZy0+aWQpOworCisJZm9yIChpID0gMDsg aSA8IChpOTE1X3Nxc19NQVggKyAxKTsgaSsrKSB7CisJCXNwcmludGYobmFtZSwgIiAgJXMiLCBp OTE1X3NjaGVkdWxlcl9xdWV1ZV9zdGF0dXNfc3RyKGkpKTsKKwkJUFJJTlRfVkFSKG5hbWUsICJk Iiwgbm9kZV9zdGF0c1tyXS5jb3VudHNbaV0pOworCX0KKwlzZXFfcHV0YyhtLCAnXG4nKTsKKwor I3VuZGVmIFBSSU5UX1ZBUgorCisJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4 KTsKKworCXJldHVybiAwOworfQorCiBzdHJ1Y3QgcGlwZV9jcmNfaW5mbyB7CiAJY29uc3QgY2hh ciAqbmFtZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwpAQCAtNTU2NSw2ICs1NjM3LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW5mb19saXN0IGk5MTVfZGVidWdmc19saXN0W10gPSB7 CiAJeyJpOTE1X3NlbWFwaG9yZV9zdGF0dXMiLCBpOTE1X3NlbWFwaG9yZV9zdGF0dXMsIDB9LAog CXsiaTkxNV9zaGFyZWRfZHBsbHNfaW5mbyIsIGk5MTVfc2hhcmVkX2RwbGxzX2luZm8sIDB9LAog CXsiaTkxNV9kcF9tc3RfaW5mbyIsIGk5MTVfZHBfbXN0X2luZm8sIDB9LAorCXsiaTkxNV9zY2hl ZHVsZXJfaW5mbyIsIGk5MTVfc2NoZWR1bGVyX2luZm8sIDB9LAogCXsiaTkxNV93YV9yZWdpc3Rl cnMiLCBpOTE1X3dhX3JlZ2lzdGVycywgMH0sCiAJeyJpOTE1X2RkYl9pbmZvIiwgaTkxNV9kZGJf aW5mbywgMH0sCiAJeyJpOTE1X3NzZXVfc3RhdHVzIiwgaTkxNV9zc2V1X3N0YXR1cywgMH0sCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggODNjZTk0ZC4u YTQyYTEzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1 ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpA QCAtMTc4OSw2ICsxNzg5LDkgQEAgcHJlX211dGV4X2VycjoKIAkvKiBpbnRlbF9ncHVfYnVzeSBz aG91bGQgYWxzbyBnZXQgYSByZWYsIHNvIGl0IHdpbGwgZnJlZSB3aGVuIHRoZSBkZXZpY2UKIAkg KiBpcyByZWFsbHkgaWRsZS4gKi8KIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CisK KwlkZXZfcHJpdi0+c2NoZWR1bGVyLT5zdGF0c1tyaW5nLT5pZF0uZXhlY19lYXJseSsrOworCiAJ cmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9z Y2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKaW5kZXgg ZDBlZWQ1Mi4uMDA2OGQwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9z Y2hlZHVsZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCkBA IC0xMDUsNiArMTA1LDkgQEAgY29uc3QgY2hhciAqaTkxNV9zY2hlZHVsZXJfcXVldWVfc3RhdHVz X3N0cigKIAljYXNlIGk5MTVfc3FzX2RlYWQ6CiAJcmV0dXJuICJEZWFkIjsKIAorCWNhc2UgaTkx NV9zcXNfTUFYOgorCXJldHVybiAiSW52YWxpZCI7CisKIAlkZWZhdWx0OgogCWJyZWFrOwogCX0K QEAgLTIwOCwxMyArMjExLDE3IEBAIHN0YXRpYyB2b2lkIGk5MTVfc2NoZWR1bGVyX25vZGVfcmVx dWV1ZShzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgKm5vZGUpCiAgKiBHaXZlIHVw IG9uIGEgbm9kZSBjb21wbGV0ZWx5LiBGb3IgZXhhbXBsZSwgYmVjYXVzZSBpdCBpcyBjYXVzaW5n IHRoZQogICogcmluZyB0byBoYW5nIG9yIGlzIHVzaW5nIHNvbWUgcmVzb3VyY2UgdGhhdCBubyBs b25nZXIgZXhpc3RzLgogICovCi1zdGF0aWMgdm9pZCBpOTE1X3NjaGVkdWxlcl9ub2RlX2tpbGwo c3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpub2RlKQorc3RhdGljIHZvaWQgaTkx NV9zY2hlZHVsZXJfbm9kZV9raWxsKHN0cnVjdCBpOTE1X3NjaGVkdWxlciAqc2NoZWR1bGVyLAor CQkJCSAgICAgc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpub2RlKQogewogCVdB Uk5fT04oIW5vZGUpOwogCVdBUk5fT04oSTkxNV9TUVNfSVNfQ09NUExFVEUobm9kZSkpOwogCi0J aWYgKEk5MTVfU1FTX0lTX0ZMWUlORyhub2RlKSkKKwlpZiAoSTkxNV9TUVNfSVNfRkxZSU5HKG5v ZGUpKSB7CiAJCXRyYWNlX2k5MTVfc2NoZWR1bGVyX3VuZmx5KG5vZGUtPnBhcmFtcy5yaW5nLCBu b2RlKTsKKwkJc2NoZWR1bGVyLT5zdGF0c1tub2RlLT5wYXJhbXMucmluZy0+aWRdLmtpbGxfZmx5 aW5nKys7CisJfSBlbHNlCisJCXNjaGVkdWxlci0+c3RhdHNbbm9kZS0+cGFyYW1zLnJpbmctPmlk XS5raWxsX3F1ZXVlZCsrOwogCiAJbm9kZS0+c3RhdHVzID0gaTkxNV9zcXNfZGVhZDsKIAl0cmFj ZV9pOTE1X3NjaGVkdWxlcl9ub2RlX3N0YXRlX2NoYW5nZShub2RlLT5wYXJhbXMucmluZywgbm9k ZSk7CkBAIC00NjksNiArNDc2LDggQEAgc3RhdGljIGludCBpOTE1X3NjaGVkdWxlcl9zdWJtaXQo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAkJICovCiAJCWk5MTVfc2NoZWR1bGVyX25v ZGVfZmx5KG5vZGUpOwogCisJCXNjaGVkdWxlci0+c3RhdHNbcmluZy0+aWRdLnN1Ym1pdHRlZCsr OworCiAJCXNwaW5fdW5sb2NrX2lycSgmc2NoZWR1bGVyLT5sb2NrKTsKIAkJcmV0ID0gZGV2X3By aXYtPmd0LmV4ZWNidWZfZmluYWwoJm5vZGUtPnBhcmFtcyk7CiAJCXNwaW5fbG9ja19pcnEoJnNj aGVkdWxlci0+bG9jayk7CkBAIC00OTIsNyArNTAxLDggQEAgc3RhdGljIGludCBpOTE1X3NjaGVk dWxlcl9zdWJtaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAkJCWNhc2UgRU5PRU5U OgogCQkJCS8qIEZhdGFsIGVycm9ycy4gS2lsbCB0aGUgbm9kZS4gKi8KIAkJCQlyZXF1ZXVlID0g ZmFsc2U7Ci0JCQkJaTkxNV9zY2hlZHVsZXJfbm9kZV9raWxsKG5vZGUpOworCQkJCXNjaGVkdWxl ci0+c3RhdHNbcmluZy0+aWRdLmV4ZWNfZGVhZCsrOworCQkJCWk5MTVfc2NoZWR1bGVyX25vZGVf a2lsbChzY2hlZHVsZXIsIG5vZGUpOwogCQkJYnJlYWs7CiAKIAkJCWNhc2UgRUFHQUlOOgpAQCAt NTAyLDYgKzUxMiw3IEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfc3VibWl0KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJCQljYXNlIEVSRVNUQVJUU1lTOgogCQkJY2FzZSBFSU5U UjoKIAkJCQkvKiBTdXBwb3NlZGx5IHJlY292ZXJhYmxlIGVycm9ycy4gKi8KKwkJCQlzY2hlZHVs ZXItPnN0YXRzW3JpbmctPmlkXS5leGVjX2FnYWluKys7CiAJCQlicmVhazsKIAogCQkJZGVmYXVs dDoKQEAgLTUxMCw2ICs1MjEsNyBAQCBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3N1Ym1pdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCQkJCSAqIGZvciB0aGUgYmVzdC4KIAkJCQkg Ki8KIAkJCQlNSVNTSU5HX0NBU0UoLXJldCk7CisJCQkJc2NoZWR1bGVyLT5zdGF0c1tyaW5nLT5p ZF0uZXhlY19hZ2FpbisrOwogCQkJYnJlYWs7CiAJCQl9CiAKQEAgLTY2OSwxMiArNjgxLDE1IEBA IHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfcXVldWVfZXhlY2J1ZmZlcl9ieXBhc3Moc3RydWN0 IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VuCiAJc3RydWN0IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVs ZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOwogCWludCByZXQ7CiAKKwlzY2hlZHVsZXItPnN0YXRz W3FlLT5wYXJhbXMucmluZy0+aWRdLnF1ZXVlZCsrOworCiAJdHJhY2VfaTkxNV9zY2hlZHVsZXJf cXVldWUocWUtPnBhcmFtcy5yaW5nLCBxZSk7CiAKIAlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNl X2NhbmNlbChxZS0+cGFyYW1zLnJlcXVlc3QtPnJpbmdidWYpOwogCiAJc2NoZWR1bGVyLT5mbGFn c1txZS0+cGFyYW1zLnJpbmctPmlkXSB8PSBpOTE1X3NmX3N1Ym1pdHRpbmc7CiAJcmV0ID0gZGV2 X3ByaXYtPmd0LmV4ZWNidWZfZmluYWwoJnFlLT5wYXJhbXMpOworCXNjaGVkdWxlci0+c3RhdHNb cWUtPnBhcmFtcy5yaW5nLT5pZF0uc3VibWl0dGVkKys7CiAJc2NoZWR1bGVyLT5mbGFnc1txZS0+ cGFyYW1zLnJpbmctPmlkXSAmPSB+aTkxNV9zZl9zdWJtaXR0aW5nOwogCiAJLyoKQEAgLTY4Nyw2 ICs3MDIsOCBAQCBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2V4ZWNidWZmZXJfYnlw YXNzKHN0cnVjdCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9lbgogCS8qIE5lZWQgdG8gcmVsZWFzZSBh bnkgcmVzb3VyY2VzIGhlbGQgYnkgdGhlIG5vZGU6ICovCiAJaTkxNV9zY2hlZHVsZXJfY2xlYW5f bm9kZShxZSk7CiAKKwlzY2hlZHVsZXItPnN0YXRzW3FlLT5wYXJhbXMucmluZy0+aWRdLmV4cGly ZWQrKzsKKwogCXJldHVybiAwOwogfQogCkBAIC03OTUsNiArODEyLDggQEAgaW50IGk5MTVfc2No ZWR1bGVyX3F1ZXVlX2V4ZWNidWZmZXIoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5 ICpxZSkKIAlub3RfZmx5aW5nID0gaTkxNV9zY2hlZHVsZXJfY291bnRfZmx5aW5nKHNjaGVkdWxl ciwgcmluZykgPAogCQkJCQkJIHNjaGVkdWxlci0+bWluX2ZseWluZzsKIAorCXNjaGVkdWxlci0+ c3RhdHNbcmluZy0+aWRdLnF1ZXVlZCsrOworCiAJdHJhY2VfaTkxNV9zY2hlZHVsZXJfcXVldWUo cmluZywgbm9kZSk7CiAJdHJhY2VfaTkxNV9zY2hlZHVsZXJfbm9kZV9zdGF0ZV9jaGFuZ2Uocmlu Zywgbm9kZSk7CiAKQEAgLTgzNywxMCArODU2LDEzIEBAIGJvb2wgaTkxNV9zY2hlZHVsZXJfbm90 aWZ5X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJV0FSTl9PTigh STkxNV9TUVNfSVNfRkxZSU5HKG5vZGUpKTsKIAogCS8qIE5vZGUgd2FzIGluIGZsaWdodCBzbyBt YXJrIGl0IGFzIGNvbXBsZXRlLiAqLwotCWlmIChyZXEtPmNhbmNlbGxlZCkKKwlpZiAocmVxLT5j YW5jZWxsZWQpIHsKIAkJbm9kZS0+c3RhdHVzID0gaTkxNV9zcXNfZGVhZDsKLQllbHNlCisJCXNj aGVkdWxlci0+c3RhdHNbcmVxLT5yaW5nLT5pZF0ua2lsbF9mbHlpbmcrKzsKKwl9IGVsc2Ugewog CQlub2RlLT5zdGF0dXMgPSBpOTE1X3Nxc19jb21wbGV0ZTsKKwkJc2NoZWR1bGVyLT5zdGF0c1ty ZXEtPnJpbmctPmlkXS5jb21wbGV0ZWQrKzsKKwl9CiAKIAl0cmFjZV9pOTE1X3NjaGVkdWxlcl9u b2RlX3N0YXRlX2NoYW5nZShyZXEtPnJpbmcsIG5vZGUpOwogCkBAIC0xMDMxLDYgKzEwNTMsNyBA QCBzdGF0aWMgYm9vbCBpOTE1X3NjaGVkdWxlcl9yZW1vdmUoc3RydWN0IGk5MTVfc2NoZWR1bGVy ICpzY2hlZHVsZXIsCiAKIAkJbGlzdF9kZWwoJm5vZGUtPmxpbmspOwogCQlsaXN0X2FkZCgmbm9k ZS0+bGluaywgcmVtb3ZlKTsKKwkJc2NoZWR1bGVyLT5zdGF0c1tyaW5nLT5pZF0uZXhwaXJlZCsr OwogCiAJCS8qIFN0cmlwIHRoZSBkZXBlbmRlbmN5IGluZm8gd2hpbGUgdGhlIG11dGV4IGlzIHN0 aWxsIGxvY2tlZCAqLwogCQlpOTE1X3NjaGVkdWxlcl9yZW1vdmVfZGVwZW5kZW50KHNjaGVkdWxl ciwgbm9kZSk7CkBAIC0xMzIyLDYgKzEzNDUsNDQgQEAgaW50IGk5MTVfc2NoZWR1bGVyX2R1bXBf YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm1zZykKIAlyZXR1cm4gcmV0 OwogfQogCisvKioKKyAqIGk5MTVfc2NoZWR1bGVyX3F1ZXJ5X3N0YXRzIC0gcmV0dXJuIHZhcmlv dXMgc2NoZWR1bGVyIHN0YXRpc3RpY3MKKyAqIEByaW5nOiBSaW5nIHRvIHJlcG9ydCBvbgorICog QHN0YXRzOiBTdGF0cyBzdHJ1Y3R1cmUgdG8gYmUgZmlsbGVkIGluCisgKiBGb3IgdmFyaW91cyBy ZWFzb25zIChkZWJ1Z2dpbmcsIHBlcmZvcm1hbmNlIGFuYWx5c2lzLCBjdXJpb3NpdHkpIGl0IGlz CisgKiB1c2VmdWwgdG8gc2VlIHN0YXRpc3RpY3MgYWJvdXQgd2hhdCB0aGUgc2NoZWR1bGVyIGlz IGRvaW5nLiBUaGlzIGZ1bmN0aW9uCisgKiByZXR1cm5zIHRoZSBzdGF0cyB0aGF0IGhhdmUgYmVl biBnYXRoZXJlZCBpbiBhIGRhdGEgc3RydWN0dXJlLiBUaGUKKyAqIGV4cGVjdGF0aW9uIGlzIHRo YXQgdGhpcyB3aWxsIGJlIHJldHVybmVkIHRvIHRoZSB1c2VyIHZpYSBkZWJ1Z2ZzLgorICovCitp bnQgaTkxNV9zY2hlZHVsZXJfcXVlcnlfc3RhdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKKwkJCSAgICAgICBzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfc3RhdHNfbm9kZXMgKnN0YXRzKQor eworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3By aXZhdGU7CisJc3RydWN0IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2No ZWR1bGVyOworCXN0cnVjdCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9lbnRyeSAqbm9kZTsKKworCW1l bXNldChzdGF0cywgMHgwMCwgc2l6ZW9mKCpzdGF0cykpOworCisJc3Bpbl9sb2NrX2lycSgmc2No ZWR1bGVyLT5sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkobm9kZSwgJnNjaGVkdWxlci0+ bm9kZV9xdWV1ZVtyaW5nLT5pZF0sIGxpbmspIHsKKwkJaWYgKG5vZGUtPnN0YXR1cyA+PSBpOTE1 X3Nxc19NQVgpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIkludmFsaWQgbm9kZSBzdGF0ZTogJWQh IFt1bmlxID0gJWQsIHNlcW5vID0gJWRdXG4iLAorCQkJCQkgbm9kZS0+c3RhdHVzLCBub2RlLT5w YXJhbXMucmVxdWVzdC0+dW5pcSwKKwkJCQkJIG5vZGUtPnBhcmFtcy5yZXF1ZXN0LT5zZXFubyk7 CisKKwkJCXN0YXRzLT5jb3VudHNbaTkxNV9zcXNfTUFYXSsrOworCQkJY29udGludWU7CisJCX0K KworCQlzdGF0cy0+Y291bnRzW25vZGUtPnN0YXR1c10rKzsKKwl9CisKKwlzcGluX3VubG9ja19p cnEoJnNjaGVkdWxlci0+bG9jayk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBpOTE1 X3NjaGVkdWxlcl9zdWJtaXRfbWF4X3ByaW9yaXR5KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcsCiAJCQkJCSAgICAgIGJvb2wgaXNfbG9ja2VkKQogewpAQCAtMTQwMiw2ICsxNDYzLDcgQEAg aW50IGk5MTVfc2NoZWR1bGVyX2ZsdXNoX3N0YW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcsCiAJfQogCiAJc3Bpbl9sb2NrX2lycSgmc2NoZWR1bGVyLT5sb2NrKTsKKwlzY2hlZHVsZXIt PnN0YXRzW3JpbmctPmlkXS5mbHVzaF9zdGFtcCsrOwogCWk5MTVfc2NoZWR1bGVyX3ByaW9yaXR5 X2J1bXBfY2xlYXIoc2NoZWR1bGVyKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5vZGUsICZzY2hl ZHVsZXItPm5vZGVfcXVldWVbcmluZy0+aWRdLCBsaW5rKSB7CiAJCWlmICghSTkxNV9TUVNfSVNf UVVFVUVEKG5vZGUpKQpAQCAtMTQxMiwxMiArMTQ3NCwxNSBAQCBpbnQgaTkxNV9zY2hlZHVsZXJf Zmx1c2hfc3RhbXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAogCQlmbHVzaF9jb3Vu dCA9IGk5MTVfc2NoZWR1bGVyX3ByaW9yaXR5X2J1bXAoc2NoZWR1bGVyLAogCQkJCQlub2RlLCBz Y2hlZHVsZXItPnByaW9yaXR5X2xldmVsX21heCk7CisJCXNjaGVkdWxlci0+c3RhdHNbcmluZy0+ aWRdLmZsdXNoX2J1bXAgKz0gZmx1c2hfY291bnQ7CiAJfQogCXNwaW5fdW5sb2NrX2lycSgmc2No ZWR1bGVyLT5sb2NrKTsKIAogCWlmIChmbHVzaF9jb3VudCkgewogCQlEUk1fREVCVUdfRFJJVkVS KCI8JXM+IEJ1bXBlZCAlZCBlbnRyaWVzXG4iLCByaW5nLT5uYW1lLCBmbHVzaF9jb3VudCk7CiAJ CWZsdXNoX2NvdW50ID0gaTkxNV9zY2hlZHVsZXJfc3VibWl0X21heF9wcmlvcml0eShyaW5nLCBp c19sb2NrZWQpOworCQlpZiAoZmx1c2hfY291bnQgPiAwKQorCQkJc2NoZWR1bGVyLT5zdGF0c1ty aW5nLT5pZF0uZmx1c2hfc3VibWl0ICs9IGZsdXNoX2NvdW50OwogCX0KIAogCXJldHVybiBmbHVz aF9jb3VudDsKQEAgLTE0NTMsNiArMTUxOCw4IEBAIGludCBpOTE1X3NjaGVkdWxlcl9mbHVzaChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIGlzX2xvY2tlZCkKIAogCVdBUk5fT04o aXNfbG9ja2VkICYmIChzY2hlZHVsZXItPmZsYWdzW3JpbmctPmlkXSAmIGk5MTVfc2Zfc3VibWl0 dGluZykpOwogCisJc2NoZWR1bGVyLT5zdGF0c1tyaW5nLT5pZF0uZmx1c2hfYWxsKys7CisKIAlk byB7CiAJCWZvdW5kID0gZmFsc2U7CiAJCXNwaW5fbG9ja19pcnEoJnNjaGVkdWxlci0+bG9jayk7 CkBAIC0xNDcwLDYgKzE1MzcsNyBAQCBpbnQgaTkxNV9zY2hlZHVsZXJfZmx1c2goc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBpc19sb2NrZWQpCiAJCQkJcmV0ID0gaTkxNV9zY2hl ZHVsZXJfc3VibWl0KHJpbmcpOwogCQkJZWxzZQogCQkJCXJldCA9IGk5MTVfc2NoZWR1bGVyX3N1 Ym1pdF91bmxvY2tlZChyaW5nKTsKKwkJCXNjaGVkdWxlci0+c3RhdHNbcmluZy0+aWRdLmZsdXNo X3N1Ym1pdCsrOwogCQkJaWYgKHJldCA8IDApCiAJCQkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKaW5kZXggYTA3MWViYi4uMDY1ZjJhMyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oCkBAIC03MCw2ICs3MCwzMiBAQCBzdHJ1Y3QgaTkx NV9zY2hlZHVsZXJfcXVldWVfZW50cnkgewogfTsKIGNvbnN0IGNoYXIgKmk5MTVfcWVfc3RhdGVf c3RyKHN0cnVjdCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9lbnRyeSAqbm9kZSk7CiAKK3N0cnVjdCBp OTE1X3NjaGVkdWxlcl9zdGF0c19ub2RlcyB7CisJdWludDMyX3QJY291bnRzW2k5MTVfc3FzX01B WCArIDFdOworfTsKKworc3RydWN0IGk5MTVfc2NoZWR1bGVyX3N0YXRzIHsKKwkvKiBCYXRjaCBi dWZmZXIgY291bnRzOiAqLworCXVpbnQzMl90ICAgICAgICAgICAgcXVldWVkOworCXVpbnQzMl90 ICAgICAgICAgICAgc3VibWl0dGVkOworCXVpbnQzMl90ICAgICAgICAgICAgY29tcGxldGVkOwor CXVpbnQzMl90ICAgICAgICAgICAgZXhwaXJlZDsKKworCS8qIE90aGVyIHN0dWZmOiAqLworCXVp bnQzMl90ICAgICAgICAgICAgZmx1c2hfb2JqOworCXVpbnQzMl90ICAgICAgICAgICAgZmx1c2hf cmVxOworCXVpbnQzMl90ICAgICAgICAgICAgZmx1c2hfc3RhbXA7CisJdWludDMyX3QgICAgICAg ICAgICBmbHVzaF9hbGw7CisJdWludDMyX3QgICAgICAgICAgICBmbHVzaF9idW1wOworCXVpbnQz Ml90ICAgICAgICAgICAgZmx1c2hfc3VibWl0OworCisJdWludDMyX3QgICAgICAgICAgICBleGVj X2Vhcmx5OworCXVpbnQzMl90ICAgICAgICAgICAgZXhlY19hZ2FpbjsKKwl1aW50MzJfdCAgICAg ICAgICAgIGV4ZWNfZGVhZDsKKwl1aW50MzJfdCAgICAgICAgICAgIGtpbGxfZmx5aW5nOworCXVp bnQzMl90ICAgICAgICAgICAga2lsbF9xdWV1ZWQ7Cit9OworCiBzdHJ1Y3QgaTkxNV9zY2hlZHVs ZXIgewogCXN0cnVjdCBsaXN0X2hlYWQgICAgbm9kZV9xdWV1ZVtJOTE1X05VTV9SSU5HU107CiAJ dWludDMyX3QgICAgICAgICAgICBmbGFnc1tJOTE1X05VTV9SSU5HU107CkBAIC04Miw2ICsxMDgs OSBAQCBzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIgewogCWludDMyX3QgICAgICAgICAgICAgcHJpb3Jp dHlfbGV2ZWxfcHJlZW1wdDsKIAl1aW50MzJfdCAgICAgICAgICAgIG1pbl9mbHlpbmc7CiAJdWlu dDMyX3QgICAgICAgICAgICBmaWxlX3F1ZXVlX21heDsKKworCS8qIFN0YXRpc3RpY3M6ICovCisJ c3RydWN0IGk5MTVfc2NoZWR1bGVyX3N0YXRzICAgICBzdGF0c1tJOTE1X05VTV9SSU5HU107CiB9 OwogCiAvKiBGbGFnIGJpdHMgZm9yIGk5MTVfc2NoZWR1bGVyOjpmbGFncyAqLwpAQCAtMTE2LDYg KzE0NSw4IEBAIGludCBpOTE1X3NjaGVkdWxlcl9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCiBpbnQgaTkxNV9zY2hlZHVsZXJfZHVtcF9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgY29uc3QgY2hhciAqbXNnKTsKIGJvb2wgaTkxNV9zY2hlZHVsZXJfaXNfcmVxdWVzdF90cmFj a2VkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCSAgICAgICBib29sICpj b21wbGV0ZWQsIGJvb2wgKmJ1c3kpOworaW50IGk5MTVfc2NoZWR1bGVyX3F1ZXJ5X3N0YXRzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCisJCQkgICAgICAgc3RydWN0IGk5MTVfc2NoZWR1 bGVyX3N0YXRzX25vZGVzICpzdGF0cyk7CiBib29sIGk5MTVfc2NoZWR1bGVyX2ZpbGVfcXVldWVf aXNfZnVsbChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwogCiAjZW5kaWYgIC8qIF9JOTE1X1NDSEVE VUxFUl9IXyAqLwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=