From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 34/39] drm/i915: Added scheduler statistic reporting to debugfs Date: Fri, 17 Jul 2015 15:33:43 +0100 Message-ID: <1437143628-6329-35-git-send-email-John.C.Harrison@Intel.com> References: <1437143628-6329-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 1C4476ED74 for ; Fri, 17 Jul 2015 07:34:31 -0700 (PDT) In-Reply-To: <1437143628-6329-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 aW5nIGFuZApwZXJmb3JtYW5jZSBhbmFseXNpcyBwdXJwb3Nlcy4gVGhpcyBjaGFuZ2UgYWRkcyBh IGJ1bmNoIG9mIGNvdW50ZXJzIGFuZCBzdWNoCnRoYXQga2VlcCB0cmFjayBvZiB2YXJpb3VzIHNj aGVkdWxlciBvcGVyYXRpb25zIChiYXRjaGVzIHN1Ym1pdHRlZCwgY29tcGxldGVkLApmbHVzaCBy ZXF1ZXN0cywgZXRjLikuIFRoZSBkYXRhIGNhbiB0aGVuIGJlIHJlYWQgaW4gdXNlcmxhbmQgdmlh IHRoZSBkZWJ1Z2ZzCm1lY2hhbmlzbS4KCkNoYW5nZS1JZDogSTMyNjZjNjMxY2Q3MGM5ZWViMmMy MzVmODhmNDkzZTYwNDYyZjg1ZDcKRm9yOiBWSVotMTU4NwpTaWduZWQtb2ZmLWJ5OiBKb2huIEhh cnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jICAgICAgICB8IDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgMTEgKysr Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgICAgICB8IDcxICsrKysr KysrKysrKysrKysrKysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1 bGVyLmggICAgICB8IDM1ICsrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE4OSBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK aW5kZXggMDI4ZmE4Zi4uM2M1Yzc1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK QEAgLTMyNTgsNiArMzI1OCw4MSBAQCBzdGF0aWMgaW50IGk5MTVfZHJyc19zdGF0dXMoc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQg aTkxNV9zY2hlZHVsZXJfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKK3sK KwlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9kZSA9IChzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqKSBt LT5wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2Owor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJ c3RydWN0IGk5MTVfc2NoZWR1bGVyICAgKnNjaGVkdWxlciA9IGRldl9wcml2LT5zY2hlZHVsZXI7 CisJc3RydWN0IGk5MTVfc2NoZWR1bGVyX3N0YXRzICpzdGF0cyA9IHNjaGVkdWxlci0+c3RhdHM7 CisJc3RydWN0IGk5MTVfc2NoZWR1bGVyX3N0YXRzX25vZGVzIG5vZGVfc3RhdHNbSTkxNV9OVU1f UklOR1NdOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJY2hhciAgIHN0cls1MCAq IChJOTE1X05VTV9SSU5HUyArIDEpXSwgbmFtZVs1MF0sICpwdHI7CisJaW50IHJldCwgaSwgcjsK KworCXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZGV2LT5tb2RlX2NvbmZpZy5tdXRl eCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworI2RlZmluZSBQUklOVF9WQVIobmFtZSwg Zm10LCB2YXIpCQkJCQlcCisJZG8gewkJCQkJCQkJXAorCQlzcHJpbnRmKHN0ciwgIiUtMjJzIiwg bmFtZSk7CQkJCVwKKwkJcHRyID0gc3RyICsgc3RybGVuKHN0cik7CQkJCVwKKwkJZm9yX2VhY2hf cmluZyhyaW5nLCBkZXZfcHJpdiwgcikgewkJCVwKKwkJCXNwcmludGYocHRyLCAiICUxMCIgZm10 LCB2YXIpOwkJCVwKKwkJCXB0ciArPSBzdHJsZW4ocHRyKTsJCQkJXAorCQl9CQkJCQkJCVwKKwkJ c2VxX3ByaW50ZihtLCAiJXNcbiIsIHN0cik7CQkJCVwKKwl9IHdoaWxlICgwKQorCisJUFJJTlRf VkFSKCJSaW5nIG5hbWU6IiwgICAgICAgICAgICAgInMiLCBkZXZfcHJpdi0+cmluZ1tyXS5uYW1l KTsKKwlQUklOVF9WQVIoIiAgUmluZyBzZXFubyIsICAgICAgICAgICAiZCIsIHJpbmctPmdldF9z ZXFubyhyaW5nLCBmYWxzZSkpOworCXNlcV9wdXRjKG0sICdcbicpOworCisJc2VxX3B1dHMobSwg IkJhdGNoIHN1Ym1pc3Npb25zOlxuIik7CisJUFJJTlRfVkFSKCIgIFF1ZXVlZCIsICAgICAgICAg ICAgICAgInUiLCBzdGF0c1tyXS5xdWV1ZWQpOworCVBSSU5UX1ZBUigiICBTdWJtaXR0ZWQiLCAg ICAgICAgICAgICJ1Iiwgc3RhdHNbcl0uc3VibWl0dGVkKTsKKwlQUklOVF9WQVIoIiAgQ29tcGxl dGVkIiwgICAgICAgICAgICAidSIsIHN0YXRzW3JdLmNvbXBsZXRlZCk7CisJUFJJTlRfVkFSKCIg IEV4cGlyZWQiLCAgICAgICAgICAgICAgInUiLCBzdGF0c1tyXS5leHBpcmVkKTsKKwlzZXFfcHV0 YyhtLCAnXG4nKTsKKworCXNlcV9wdXRzKG0sICJGbHVzaCBjb3VudHM6XG4iKTsKKwlQUklOVF9W QVIoIiAgQnkgb2JqZWN0IiwgICAgICAgICAgICAidSIsIHN0YXRzW3JdLmZsdXNoX29iaik7CisJ UFJJTlRfVkFSKCIgIEJ5IHJlcXVlc3QiLCAgICAgICAgICAgInUiLCBzdGF0c1tyXS5mbHVzaF9y ZXEpOworCVBSSU5UX1ZBUigiICBCbGFua2V0IiwgICAgICAgICAgICAgICJ1Iiwgc3RhdHNbcl0u Zmx1c2hfYWxsKTsKKwlQUklOVF9WQVIoIiAgRW50cmllcyBidW1wZWQiLCAgICAgICAidSIsIHN0 YXRzW3JdLmZsdXNoX2J1bXApOworCVBSSU5UX1ZBUigiICBFbnRyaWVzIHN1Ym1pdHRlZCIsICAg ICJ1Iiwgc3RhdHNbcl0uZmx1c2hfc3VibWl0KTsKKwlzZXFfcHV0YyhtLCAnXG4nKTsKKworCXNl cV9wdXRzKG0sICJNaXNjZWxsYW5lb3VzOlxuIik7CisJUFJJTlRfVkFSKCIgIEV4ZWNFYXJseSBy ZXRyeSIsICAgICAgInUiLCBzdGF0c1tyXS5leGVjX2Vhcmx5KTsKKwlQUklOVF9WQVIoIiAgRXhl Y0ZpbmFsIHJlcXVldWUiLCAgICAidSIsIHN0YXRzW3JdLmV4ZWNfYWdhaW4pOworCVBSSU5UX1ZB UigiICBFeGVjRmluYWwga2lsbGVkIiwgICAgICJ1Iiwgc3RhdHNbcl0uZXhlY19kZWFkKTsKKwlQ UklOVF9WQVIoIiAgRmVuY2Ugd2FpdCIsICAgICAgICAgICAidSIsIHN0YXRzW3JdLmZlbmNlX3dh aXQpOworCVBSSU5UX1ZBUigiICBGZW5jZSB3YWl0IGFnYWluIiwgICAgICJ1Iiwgc3RhdHNbcl0u ZmVuY2VfYWdhaW4pOworCVBSSU5UX1ZBUigiICBGZW5jZSB3YWl0IGlnbm9yZSIsICAgICJ1Iiwg c3RhdHNbcl0uZmVuY2VfaWdub3JlKTsKKwlQUklOVF9WQVIoIiAgRmVuY2Ugc3VwcGxpZWQiLCAg ICAgICAidSIsIHN0YXRzW3JdLmZlbmNlX2dvdCk7CisJUFJJTlRfVkFSKCIgIEh1bmcgZmx5aW5n IiwgICAgICAgICAgInUiLCBzdGF0c1tyXS5raWxsX2ZseWluZyk7CisJUFJJTlRfVkFSKCIgIEh1 bmcgcXVldWVkIiwgICAgICAgICAgInUiLCBzdGF0c1tyXS5raWxsX3F1ZXVlZCk7CisJc2VxX3B1 dGMobSwgJ1xuJyk7CisKKwlzZXFfcHV0cyhtLCAiUXVldWUgY29udGVudHM6XG4iKTsKKwlmb3Jf ZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKQorCQlpOTE1X3NjaGVkdWxlcl9xdWVyeV9zdGF0 cyhyaW5nLCBub2RlX3N0YXRzICsgcmluZy0+aWQpOworCisJZm9yIChpID0gMDsgaSA8IChpOTE1 X3Nxc19NQVggKyAxKTsgaSsrKSB7CisJCXNwcmludGYobmFtZSwgIiAgJXMiLCBpOTE1X3NjaGVk dWxlcl9xdWV1ZV9zdGF0dXNfc3RyKGkpKTsKKwkJUFJJTlRfVkFSKG5hbWUsICJkIiwgbm9kZV9z dGF0c1tyXS5jb3VudHNbaV0pOworCX0KKwlzZXFfcHV0YyhtLCAnXG4nKTsKKworI3VuZGVmIFBS SU5UX1ZBUgorCisJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKKworCXJl dHVybiAwOworfQorCiBzdHJ1Y3QgcGlwZV9jcmNfaW5mbyB7CiAJY29uc3QgY2hhciAqbmFtZTsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwpAQCAtNTI1MCw2ICs1MzI1LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1faW5mb19saXN0IGk5MTVfZGVidWdmc19saXN0W10gPSB7CiAJeyJpOTE1 X3NlbWFwaG9yZV9zdGF0dXMiLCBpOTE1X3NlbWFwaG9yZV9zdGF0dXMsIDB9LAogCXsiaTkxNV9z aGFyZWRfZHBsbHNfaW5mbyIsIGk5MTVfc2hhcmVkX2RwbGxzX2luZm8sIDB9LAogCXsiaTkxNV9k cF9tc3RfaW5mbyIsIGk5MTVfZHBfbXN0X2luZm8sIDB9LAorCXsiaTkxNV9zY2hlZHVsZXJfaW5m byIsIGk5MTVfc2NoZWR1bGVyX2luZm8sIDB9LAogCXsiaTkxNV93YV9yZWdpc3RlcnMiLCBpOTE1 X3dhX3JlZ2lzdGVycywgMH0sCiAJeyJpOTE1X2RkYl9pbmZvIiwgaTkxNV9kZGJfaW5mbywgMH0s CiAJeyJpOTE1X3NzZXVfc3RhdHVzIiwgaTkxNV9zc2V1X3N0YXR1cywgMH0sCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggYjcwMTgzOC4uNWZkMDdhZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtMTUwNyw4 ICsxNTA3LDE1IEBAIHN0YXRpYyBpbnQgaTkxNV9lYXJseV9mZW5jZV93YWl0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcsIGludCBmZW5jZV9mZCkKIAl9CiAKIAlpZiAoYXRvbWljX3JlYWQo JmZlbmNlLT5zdGF0dXMpID09IDApIHsKLQkJaWYgKCFpOTE1X3NhZmVfdG9faWdub3JlX2ZlbmNl KHJpbmcsIGZlbmNlKSkKKwkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmlu Zy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwkJc3RydWN0IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVsZXIg PSBkZXZfcHJpdi0+c2NoZWR1bGVyOworCisJCWlmIChpOTE1X3NhZmVfdG9faWdub3JlX2ZlbmNl KHJpbmcsIGZlbmNlKSkKKwkJCXNjaGVkdWxlci0+c3RhdHNbcmluZy0+aWRdLmZlbmNlX2lnbm9y ZSsrOworCQllbHNlIHsKKwkJCXNjaGVkdWxlci0+c3RhdHNbcmluZy0+aWRdLmZlbmNlX3dhaXQr KzsKIAkJCXJldCA9IHN5bmNfZmVuY2Vfd2FpdChmZW5jZSwgMTAwMCk7CisJCX0KIAl9CiAKIAlz eW5jX2ZlbmNlX3B1dChmZW5jZSk7CkBAIC0xOTIyLDYgKzE5MjksOCBAQCBwcmVfbXV0ZXhfZXJy OgogCQlhcmdzLT5yc3ZkMiA9IChfX3U2NCkgLTE7CiAJfQogCisJZGV2X3ByaXYtPnNjaGVkdWxl ci0+c3RhdHNbcmluZy0+aWRdLmV4ZWNfZWFybHkrKzsKKwogCXJldHVybiByZXQ7CiB9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCmluZGV4IGUyMmY2YjguLjE1NDdiNjQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwpAQCAtMTIwLDYgKzEyMCw5IEBAIGNv bnN0IGNoYXIgKmk5MTVfc2NoZWR1bGVyX3F1ZXVlX3N0YXR1c19zdHIoCiAJY2FzZSBpOTE1X3Nx c19kZWFkOgogCXJldHVybiAiRGVhZCI7CiAKKwljYXNlIGk5MTVfc3FzX01BWDoKKwlyZXR1cm4g IkludmFsaWQiOworCiAJZGVmYXVsdDoKIAlicmVhazsKIAl9CkBAIC0yMTEsMTAgKzIxNCwxNCBA QCBpbnQgaTkxNV9zY2hlZHVsZXJfcXVldWVfZXhlY2J1ZmZlcihzdHJ1Y3QgaTkxNV9zY2hlZHVs ZXJfcXVldWVfZW50cnkgKnFlKQogCiAJQlVHX09OKCFzY2hlZHVsZXIpOwogCisJaWYgKHFlLT5w YXJhbXMuZmVuY2Vfd2FpdCkKKwkJc2NoZWR1bGVyLT5zdGF0c1tyaW5nLT5pZF0uZmVuY2VfZ290 Kys7CisKIAlpZiAoaTkxNS5zY2hlZHVsZXJfb3ZlcnJpZGUgJiBpOTE1X3NvX2RpcmVjdF9zdWJt aXQpIHsKIAkJaW50IHJldDsKIAogCQlxZS0+c2NoZWR1bGVyX2luZGV4ID0gc2NoZWR1bGVyLT5p bmRleCsrOworCQlzY2hlZHVsZXItPnN0YXRzW3FlLT5wYXJhbXMucmluZy0+aWRdLnF1ZXVlZCsr OwogCiAJCXRyYWNlX2k5MTVfc2NoZWR1bGVyX3F1ZXVlKHFlLT5wYXJhbXMucmluZywgcWUpOwog CkBAIC0yMjUsNiArMjMyLDcgQEAgaW50IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2V4ZWNidWZmZXIo c3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpxZSkKIAogCQlzY2hlZHVsZXItPmZs YWdzW3FlLT5wYXJhbXMucmluZy0+aWRdIHw9IGk5MTVfc2Zfc3VibWl0dGluZzsKIAkJcmV0ID0g ZGV2X3ByaXYtPmd0LmV4ZWNidWZfZmluYWwoJnFlLT5wYXJhbXMpOworCQlzY2hlZHVsZXItPnN0 YXRzW3FlLT5wYXJhbXMucmluZy0+aWRdLnN1Ym1pdHRlZCsrOwogCQlzY2hlZHVsZXItPmZsYWdz W3FlLT5wYXJhbXMucmluZy0+aWRdICY9IH5pOTE1X3NmX3N1Ym1pdHRpbmc7CiAKIAkJLyoKQEAg LTI2MCw2ICsyNjgsOCBAQCBpbnQgaTkxNV9zY2hlZHVsZXJfcXVldWVfZXhlY2J1ZmZlcihzdHJ1 Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgKnFlKQogCQkJc3luY19mZW5jZV9wdXQocWUt PnBhcmFtcy5mZW5jZV93YWl0KTsKICNlbmRpZgogCisJCXNjaGVkdWxlci0+c3RhdHNbcWUtPnBh cmFtcy5yaW5nLT5pZF0uZXhwaXJlZCsrOworCiAJCXJldHVybiAwOwogCX0KIApAQCAtMzcyLDYg KzM4Miw4IEBAIGludCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9leGVjYnVmZmVyKHN0cnVjdCBpOTE1 X3NjaGVkdWxlcl9xdWV1ZV9lbnRyeSAqcWUpCiAJCW5vdF9mbHlpbmcgPSBpOTE1X3NjaGVkdWxl cl9jb3VudF9mbHlpbmcoc2NoZWR1bGVyLCByaW5nKSA8CiAJCQkJCQkJIHNjaGVkdWxlci0+bWlu X2ZseWluZzsKIAorCXNjaGVkdWxlci0+c3RhdHNbcmluZy0+aWRdLnF1ZXVlZCsrOworCiAJdHJh Y2VfaTkxNV9zY2hlZHVsZXJfcXVldWUocmluZywgbm9kZSk7CiAJdHJhY2VfaTkxNV9zY2hlZHVs ZXJfbm9kZV9zdGF0ZV9jaGFuZ2UocmluZywgbm9kZSk7CiAKQEAgLTUxNiwxMCArNTI4LDEyIEBA IHZvaWQgaTkxNV9zY2hlZHVsZXJfa2lsbF9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAog CQkJY2FzZSBJOTE1X1NRU19DQVNFX0ZMWUlORzoKIAkJCQlpOTE1X3NjaGVkdWxlcl9ub2RlX2tp bGwobm9kZSk7CisJCQkJc2NoZWR1bGVyLT5zdGF0c1tyXS5raWxsX2ZseWluZysrOwogCQkJYnJl YWs7CiAKIAkJCWNhc2UgSTkxNV9TUVNfQ0FTRV9RVUVVRUQ6CiAJCQkJaTkxNV9zY2hlZHVsZXJf bm9kZV9raWxsX3F1ZXVlZChub2RlKTsKKwkJCQlzY2hlZHVsZXItPnN0YXRzW3JdLmtpbGxfcXVl dWVkKys7CiAJCQlicmVhazsKIAogCQkJZGVmYXVsdDoKQEAgLTU5NCw2ICs2MDgsNyBAQCBzdGF0 aWMgdm9pZCBpOTE1X3NjaGVkdWxlcl9zZXFub19jb21wbGV0ZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLCB1aW50MzJfdAogCQkvKiBOb2RlIHdhcyBpbiBmbGlnaHQgc28gbWFyayBpdCBh cyBjb21wbGV0ZS4gKi8KIAkJbm9kZS0+c3RhdHVzID0gaTkxNV9zcXNfY29tcGxldGU7CiAJCXRy YWNlX2k5MTVfc2NoZWR1bGVyX25vZGVfc3RhdGVfY2hhbmdlKHJpbmcsIG5vZGUpOworCQlzY2hl ZHVsZXItPnN0YXRzW3JpbmctPmlkXS5jb21wbGV0ZWQrKzsKIAkJZ290X2NoYW5nZXMgPSB0cnVl OwogCX0KIApAQCAtNzQzLDYgKzc1OCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfcmVt b3ZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAKIAkJbGlzdF9kZWwoJm5vZGUtPmxp bmspOwogCQlsaXN0X2FkZCgmbm9kZS0+bGluaywgJnJlbW92ZSk7CisJCXNjaGVkdWxlci0+c3Rh dHNbcmluZy0+aWRdLmV4cGlyZWQrKzsKIAogCQkvKiBTdHJpcCB0aGUgZGVwZW5kZW5jeSBpbmZv IHdoaWxlIHRoZSBtdXRleCBpcyBzdGlsbCBsb2NrZWQgKi8KIAkJaTkxNV9zY2hlZHVsZXJfcmVt b3ZlX2RlcGVuZGVudChzY2hlZHVsZXIsIG5vZGUpOwpAQCAtOTg1LDYgKzEwMDEsMzUgQEAgc3Rh dGljIGludCBpOTE1X3NjaGVkdWxlcl9kdW1wX2xvY2tlZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nLCBjb25zdCBjaGFyICoKIAlyZXR1cm4gMDsKIH0KIAoraW50IGk5MTVfc2NoZWR1bGVy X3F1ZXJ5X3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCisJCQkgICAgICAgc3Ry dWN0IGk5MTVfc2NoZWR1bGVyX3N0YXRzX25vZGVzICpzdGF0cykKK3sKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBp OTE1X3NjaGVkdWxlciAgICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOworCXN0cnVj dCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9lbnRyeSAgKm5vZGU7CisJdW5zaWduZWQgbG9uZyAgIGZs YWdzOworCisJbWVtc2V0KHN0YXRzLCAweDAwLCBzaXplb2YoKnN0YXRzKSk7CisKKwlzcGluX2xv Y2tfaXJxc2F2ZSgmc2NoZWR1bGVyLT5sb2NrLCBmbGFncyk7CisKKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KG5vZGUsICZzY2hlZHVsZXItPm5vZGVfcXVldWVbcmluZy0+aWRdLCBsaW5rKSB7CisJCWlm IChub2RlLT5zdGF0dXMgPj0gaTkxNV9zcXNfTUFYKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJJ bnZhbGlkIG5vZGUgc3RhdGU6ICVkISBbdW5pcSA9ICVkLCBzZXFubyA9ICVkXVxuIiwKKwkJCQkJ IG5vZGUtPnN0YXR1cywgbm9kZS0+cGFyYW1zLnJlcXVlc3QtPnVuaXEsIG5vZGUtPnBhcmFtcy5y ZXF1ZXN0LT5zZXFubyk7CisKKwkJCXN0YXRzLT5jb3VudHNbaTkxNV9zcXNfTUFYXSsrOworCQkJ Y29udGludWU7CisJCX0KKworCQlzdGF0cy0+Y291bnRzW25vZGUtPnN0YXR1c10rKzsKKwl9CisK KwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZHVsZXItPmxvY2ssIGZsYWdzKTsKKworCXJl dHVybiAwOworfQorCiBpbnQgaTkxNV9zY2hlZHVsZXJfZmx1c2hfcmVxdWVzdChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgYm9vbCBpc19sb2NrZWQpCiB7CkBAIC0xMDIx LDE2ICsxMDY2LDIxIEBAIGludCBpOTE1X3NjaGVkdWxlcl9mbHVzaF9yZXF1ZXN0KHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkdWxl ci0+bG9jaywgZmxhZ3MpOwogCisJc2NoZWR1bGVyLT5zdGF0c1tyaW5nX2lkXS5mbHVzaF9yZXEr KzsKKwogCWk5MTVfc2NoZWR1bGVyX3ByaW9yaXR5X2J1bXBfY2xlYXIoc2NoZWR1bGVyKTsKIAog CWZsdXNoX2NvdW50ID0gaTkxNV9zY2hlZHVsZXJfcHJpb3JpdHlfYnVtcChzY2hlZHVsZXIsCiAJ CQkgICAgcmVxLT5zY2hlZHVsZXJfcWUsIHNjaGVkdWxlci0+cHJpb3JpdHlfbGV2ZWxfbWF4KTsK KwlzY2hlZHVsZXItPnN0YXRzW3JpbmdfaWRdLmZsdXNoX2J1bXAgKz0gZmx1c2hfY291bnQ7CiAK IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZHVsZXItPmxvY2ssIGZsYWdzKTsKIAogCWlm IChmbHVzaF9jb3VudCkgewogCQlEUk1fREVCVUdfRFJJVkVSKCI8JXM+IEJ1bXBlZCAlZCBlbnRy aWVzXG4iLCByZXEtPnJpbmctPm5hbWUsIGZsdXNoX2NvdW50KTsKIAkJZmx1c2hfY291bnQgPSBp OTE1X3NjaGVkdWxlcl9zdWJtaXRfbWF4X3ByaW9yaXR5KHJlcS0+cmluZywgaXNfbG9ja2VkKTsK KwkJaWYgKGZsdXNoX2NvdW50ID4gMCkKKwkJCXNjaGVkdWxlci0+c3RhdHNbcmluZ19pZF0uZmx1 c2hfc3VibWl0ICs9IGZsdXNoX2NvdW50OwogCX0KIAogCXJldHVybiBmbHVzaF9jb3VudDsKQEAg LTEwNTcsNiArMTEwNyw4IEBAIGludCBpOTE1X3NjaGVkdWxlcl9mbHVzaChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLCBib29sIGlzX2xvY2tlZCkKIAogCUJVR19PTihpc19sb2NrZWQgJiYg KHNjaGVkdWxlci0+ZmxhZ3NbcmluZy0+aWRdICYgaTkxNV9zZl9zdWJtaXR0aW5nKSk7CiAKKwlz Y2hlZHVsZXItPnN0YXRzW3JpbmctPmlkXS5mbHVzaF9hbGwrKzsKKwogCWRvIHsKIAkJZm91bmQg PSBmYWxzZTsKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkdWxlci0+bG9jaywgZmxhZ3MpOwpA QCAtMTA3MSw2ICsxMTIzLDcgQEAgaW50IGk5MTVfc2NoZWR1bGVyX2ZsdXNoKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcsIGJvb2wgaXNfbG9ja2VkKQogCiAJCWlmIChmb3VuZCkgewogCQkJ cmV0ID0gaTkxNV9zY2hlZHVsZXJfc3VibWl0KHJpbmcsIGlzX2xvY2tlZCk7CisJCQlzY2hlZHVs ZXItPnN0YXRzW3JpbmctPmlkXS5mbHVzaF9zdWJtaXQrKzsKIAkJCWlmIChyZXQgPCAwKQogCQkJ CXJldHVybiByZXQ7CiAKQEAgLTEyMTMsMTUgKzEyNjYsMjAgQEAgc3RhdGljIHZvaWQgaTkxNV9z Y2hlZHVsZXJfd2FpdF9mZW5jZV9zaWduYWxlZChzdHJ1Y3Qgc3luY19mZW5jZSAqZmVuY2UsCiBz dGF0aWMgYm9vbCBpOTE1X3NjaGVkdWxlcl9hc3luY19mZW5jZV93YWl0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJCQkJCSAgICBzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgKm5v ZGUpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgICAgICAgICAqZGV2X3ByaXYgPSBub2Rl LT5wYXJhbXMucmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIg ICAgICAgICAgICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOwogCXN0cnVjdCBpOTE1 X3N5bmNfZmVuY2Vfd2FpdGVyCSpmZW5jZV93YWl0ZXI7CiAJc3RydWN0IHN5bmNfZmVuY2UJCSpm ZW5jZSA9IG5vZGUtPnBhcmFtcy5mZW5jZV93YWl0OwogCWludAkJCQlzaWduYWxlZDsKIAlib29s CQkJCXN1Y2Nlc3MgPSB0cnVlOwogCi0JaWYgKChub2RlLT5mbGFncyAmIGk5MTVfcWVmX2ZlbmNl X3dhaXRpbmcpID09IDApCisJaWYgKChub2RlLT5mbGFncyAmIGk5MTVfcWVmX2ZlbmNlX3dhaXRp bmcpID09IDApIHsKIAkJbm9kZS0+ZmxhZ3MgfD0gaTkxNV9xZWZfZmVuY2Vfd2FpdGluZzsKLQll bHNlCisJCXNjaGVkdWxlci0+c3RhdHNbbm9kZS0+cGFyYW1zLnJpbmctPmlkXS5mZW5jZV93YWl0 Kys7CisJfSBlbHNlIHsKKwkJc2NoZWR1bGVyLT5zdGF0c1tub2RlLT5wYXJhbXMucmluZy0+aWRd LmZlbmNlX2FnYWluKys7CiAJCXJldHVybiB0cnVlOworCX0KIAogCWlmIChmZW5jZSA9PSBOVUxM KQogCQlyZXR1cm4gZmFsc2U7CkBAIC0xMjkxLDggKzEzNDksMTAgQEAgc3RhdGljIGludCBpOTE1 X3NjaGVkdWxlcl9wb3BfZnJvbV9xdWV1ZV9sb2NrZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKIAkJZWxzZQogCQkJc2lnbmFsbGVkID0gdHJ1ZTsKIAotCQlpZiAoIXNpZ25hbGxlZCkK KwkJaWYgKCFzaWduYWxsZWQpIHsKIAkJCXNpZ25hbGxlZCA9IGk5MTVfc2FmZV90b19pZ25vcmVf ZmVuY2UocmluZywgbm9kZS0+cGFyYW1zLmZlbmNlX3dhaXQpOworCQkJc2NoZWR1bGVyLT5zdGF0 c1tub2RlLT5wYXJhbXMucmluZy0+aWRdLmZlbmNlX2lnbm9yZSsrOworCQl9CiAjZW5kaWYJLy8g Q09ORklHX1NZTkMKIAogCQloYXNfbG9jYWwgID0gZmFsc2U7CkBAIC0xNDM0LDYgKzE0OTQsOCBA QCBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3N1Ym1pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nLCBib29sIHdhc19sb2NrZWQpCiAJCSAqIGxpc3QuIFNvIGFkZCBpdCBiYWNrIGluIGFu ZCBtYXJrIGl0IGFzIGluIGZsaWdodC4gKi8KIAkJaTkxNV9zY2hlZHVsZXJfZmx5X25vZGUobm9k ZSk7CiAKKwkJc2NoZWR1bGVyLT5zdGF0c1tyaW5nLT5pZF0uc3VibWl0dGVkKys7CisKIAkJc2No ZWR1bGVyLT5mbGFnc1tyaW5nLT5pZF0gfD0gaTkxNV9zZl9zdWJtaXR0aW5nOwogCQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZzY2hlZHVsZXItPmxvY2ssIGZsYWdzKTsKIAkJcmV0ID0gZGV2X3By aXYtPmd0LmV4ZWNidWZfZmluYWwoJm5vZGUtPnBhcmFtcyk7CkBAIC0xNDUyLDYgKzE1MTQsNyBA QCBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3N1Ym1pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nLCBib29sIHdhc19sb2NrZWQpCiAJCQljYXNlIEVOT0VOVDoKIAkJCQkvKiBGYXRhbCBl cnJvcnMuIEtpbGwgdGhlIG5vZGUuICovCiAJCQkJcmVxdWV1ZSA9IC0xOworCQkJCXNjaGVkdWxl ci0+c3RhdHNbcmluZy0+aWRdLmV4ZWNfZGVhZCsrOwogCQkJYnJlYWs7CiAKIAkJCWNhc2UgRUFH QUlOOgpAQCAtMTQ2MSwxMiArMTUyNCwxNCBAQCBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3N1 Ym1pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIHdhc19sb2NrZWQpCiAJCQlj YXNlIEVSRVNUQVJUU1lTOgogCQkJY2FzZSBFSU5UUjoKIAkJCQkvKiBTdXBwb3NlZGx5IHJlY292 ZXJhYmxlIGVycm9ycy4gKi8KKwkJCQlzY2hlZHVsZXItPnN0YXRzW3JpbmctPmlkXS5leGVjX2Fn YWluKys7CiAJCQlicmVhazsKIAogCQkJZGVmYXVsdDoKIAkJCQlEUk1fREVCVUdfRFJJVkVSKCI8 JXM+IEdvdCB1bmV4cGVjdGVkIGVycm9yIGZyb20gZXhlY2ZpbmFsKCk6ICVkIVxuIiwKIAkJCQkJ CSByaW5nLT5uYW1lLCByZXQpOwogCQkJCS8qIEFzc3VtZSBpdCBpcyByZWNvdmVyYWJsZSBhbmQg aG9wZSBmb3IgdGhlIGJlc3QuICovCisJCQkJc2NoZWR1bGVyLT5zdGF0c1tyaW5nLT5pZF0uZXhl Y19hZ2FpbisrOwogCQkJYnJlYWs7CiAJCQl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NoZWR1bGVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVk dWxlci5oCmluZGV4IDNlNjgxOWQuLmRkMDUxMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9z Y2hlZHVsZXIuaApAQCAtODAsNiArODAsMzYgQEAgc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVl X2VudHJ5IHsKIH07CiBjb25zdCBjaGFyICppOTE1X3FlX3N0YXRlX3N0cihzdHJ1Y3QgaTkxNV9z Y2hlZHVsZXJfcXVldWVfZW50cnkgKm5vZGUpOwogCitzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfc3Rh dHNfbm9kZXMgeworCXVpbnQzMl90CWNvdW50c1tpOTE1X3Nxc19NQVggKyAxXTsKK307CisKK3N0 cnVjdCBpOTE1X3NjaGVkdWxlcl9zdGF0cyB7CisJLyogQmF0Y2ggYnVmZmVyIGNvdW50czogKi8K Kwl1aW50MzJfdCAgICAgICAgICAgIHF1ZXVlZDsKKwl1aW50MzJfdCAgICAgICAgICAgIHN1Ym1p dHRlZDsKKwl1aW50MzJfdCAgICAgICAgICAgIGNvbXBsZXRlZDsKKwl1aW50MzJfdCAgICAgICAg ICAgIGV4cGlyZWQ7CisKKwkvKiBPdGhlciBzdHVmZjogKi8KKwl1aW50MzJfdCAgICAgICAgICAg IGZsdXNoX29iajsKKwl1aW50MzJfdCAgICAgICAgICAgIGZsdXNoX3JlcTsKKwl1aW50MzJfdCAg ICAgICAgICAgIGZsdXNoX2FsbDsKKwl1aW50MzJfdCAgICAgICAgICAgIGZsdXNoX2J1bXA7CisJ dWludDMyX3QgICAgICAgICAgICBmbHVzaF9zdWJtaXQ7CisKKwl1aW50MzJfdCAgICAgICAgICAg IGV4ZWNfZWFybHk7CisJdWludDMyX3QgICAgICAgICAgICBleGVjX2FnYWluOworCXVpbnQzMl90 ICAgICAgICAgICAgZXhlY19kZWFkOworCXVpbnQzMl90ICAgICAgICAgICAga2lsbF9mbHlpbmc7 CisJdWludDMyX3QgICAgICAgICAgICBraWxsX3F1ZXVlZDsKKworCXVpbnQzMl90ICAgICAgICAg ICAgZmVuY2Vfd2FpdDsKKwl1aW50MzJfdCAgICAgICAgICAgIGZlbmNlX2FnYWluOworCXVpbnQz Ml90ICAgICAgICAgICAgZmVuY2VfaWdub3JlOworCXVpbnQzMl90ICAgICAgICAgICAgZmVuY2Vf Z290OworfTsKKwogc3RydWN0IGk5MTVfc2NoZWR1bGVyIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkICAg IG5vZGVfcXVldWVbSTkxNV9OVU1fUklOR1NdOwogCXVpbnQzMl90ICAgICAgICAgICAgZmxhZ3Nb STkxNV9OVU1fUklOR1NdOwpAQCAtOTIsNiArMTIyLDkgQEAgc3RydWN0IGk5MTVfc2NoZWR1bGVy IHsKIAl1aW50MzJfdCAgICAgICAgICAgIHByaW9yaXR5X2xldmVsX3ByZWVtcHQ7CiAJdWludDMy X3QgICAgICAgICAgICBtaW5fZmx5aW5nOwogCXVpbnQzMl90ICAgICAgICAgICAgZmlsZV9xdWV1 ZV9tYXg7CisKKwkvKiBTdGF0aXN0aWNzOiAqLworCXN0cnVjdCBpOTE1X3NjaGVkdWxlcl9zdGF0 cyAgICAgc3RhdHNbSTkxNV9OVU1fUklOR1NdOwogfTsKIAogLyogRmxhZyBiaXRzIGZvciBpOTE1 X3NjaGVkdWxlcjo6ZmxhZ3MgKi8KQEAgLTEzNSw2ICsxNjgsOCBAQCBpbnQgICAgICAgICBpOTE1 X3NjaGVkdWxlcl9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiBpbnQgICAgICAg ICBpOTE1X3NjaGVkdWxlcl9kdW1wX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBjb25zdCBj aGFyICptc2cpOwogYm9vbCAgICAgICAgaTkxNV9zY2hlZHVsZXJfaXNfcmVxdWVzdF90cmFja2Vk KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCQkgICAgICBib29sICpjb21w bGV0ZWQsIGJvb2wgKmJ1c3kpOworaW50ICAgICAgICAgaTkxNV9zY2hlZHVsZXJfcXVlcnlfc3Rh dHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKKwkJCQkgICAgICAgc3RydWN0IGk5MTVf c2NoZWR1bGVyX3N0YXRzX25vZGVzICpzdGF0cyk7CiBib29sICAgICAgICBpOTE1X3NjaGVkdWxl cl9maWxlX3F1ZXVlX2lzX2Z1bGwoc3RydWN0IGRybV9maWxlICpmaWxlKTsKIAogI2VuZGlmICAv KiBfSTkxNV9TQ0hFRFVMRVJfSF8gKi8KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=