From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [RFC 3/8] drm/i915: Add mechanism for forwarding CS based OA counter snapshots through perf Date: Wed, 15 Jul 2015 14:16:58 +0530 Message-ID: <1436950023-13940-4-git-send-email-sourab.gupta@intel.com> References: <1436950023-13940-1-git-send-email-sourab.gupta@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 8CFC66EAB6 for ; Wed, 15 Jul 2015 01:45:00 -0700 (PDT) In-Reply-To: <1436950023-13940-1-git-send-email-sourab.gupta@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 Cc: Insoo Woo , Peter Zijlstra , Jabin Wu , Sourab Gupta List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKVGhpcyBwYXRjaCBh ZGRzIHRoZSBtZWNoYW5pc20gZm9yIGZvcndhcmRpbmcgdGhlIENTIGJhc2VkIE9BIHNuYXBzaG90 cwp0aHJvdWdoIHRoZSBwZXJmIGV2ZW50IGludGVyZmFjZS4KClRoZSBPQSBzbmFwc2hvdHMgd2ls bCBiZSBjYXB0dXJlZCBpbiBhIGdlbSBidWZmZXIgb2JqZWN0LiBUaGUgbWV0YWRhdGEKaW5mb3Jt YXRpb24gKGN0eF9pZCByaWdodCBub3cpIHBlcnRhaW5pbmcgdG8gc25hcHNob3QgaXMgbWFpbnRh aW5lZCBpbiBhCmxpc3QsIHdoaWNoIGhhcyBvZmZzZXRzIGludG8gdGhlIGdlbSBidWZmZXIgb2Jq ZWN0IGZvciBlYWNoIHNuYXBzaG90CmNhcHR1cmVkLgoKRWFjaCBzbmFwc2hvdCBjb2xsZWN0ZWQg aXMgZm9yd2FyZGVkIGFzIGEgc2VwYXJhdGUgcGVyZiBzYW1wbGUuIFRoZSBwZXJmCnNhbXBsZSB3 aWxsIGhhdmUgcmF3IE9BIHJlcG9ydCBmb2xsb3dlZCBieSBtZXRhZGF0YSBpbmZvcm1hdGlvbiBw ZXJ0YWluaW5nCnRvIHRoYXQgc2FtcGxlLiBUaGUgc2l6ZSBvZiB0aGUgT0EgcmVwb3J0IGlzIHRo ZSBvbmUgc3BlY2lmaWVkIGR1cmluZwpldmVudCBpbml0LgoKSW4gb3JkZXIgdG8gdHJhY2sgd2hl dGhlciB0aGUgZ3B1IGhhcyBjb21wbGV0ZWQgcHJvY2Vzc2luZyB0aGUgbm9kZSwgYQpmaWVsZCBw ZXJ0YWluaW5nIHRvIGNvcnJlc3BvbmRpbmcgZ2VtIHJlcXVlc3QgaXMgYWRkZWQuIFRoZSByZXF1 ZXN0IGlzCmV4cGVjdGVkIHRvIGJlIHJlZmVyZW5jZWQgd2hlbmV2ZXIgdGhlIGdwdSBjb21tYW5k IGlzIHN1Ym1pdHRlZC4KCldoaWxlIGZvcndhcmRpbmcgdGhlIHNhbXBsZXMsIHdlIGNoZWNrIHdo ZXRoZXIgdGhlIGdlbSByZXF1ZXN0IGlzIGNvbXBsZXRlZAphbmQgZGVyZWZlcmVuY2UgdGhlIGNv cnJlc3BvbmRpbmcgcmVxdWVzdC4gVGhlIG5lZWQgdG8gZGVyZWZlcmVuY2UgdGhlCnJlcXVlc3Qg bmVjZXNzaXRhdGVzIGEgd29ya2VyIGhlcmUsIHdoaWNoIHdpbGwgYmUgc2NoZWR1bGVkIHdoZW4g dGhlCmhydGltZXIgdHJpZ2dlcnMuCgpXaGlsZSBmbHVzaGluZyB0aGUgc2FtcGxlcywgd2UgaGF2 ZSB0byB3YWl0IGZvciB0aGUgcmVxdWVzdHMgYWxyZWFkeQpzY2hlZHVsZWQsIGJlZm9yZSBmb3J3 YXJkaW5nIHRoZSBzYW1wbGVzLiBUaGlzIHdhaXQgaXMgaW4gYSBsb2NrbGVzcwpmYXNoaW9uLgoK U2lnbmVkLW9mZi1ieTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgIDExICsrKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jIHwgMTI4ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgfCAgIDUg KysKIDMgZmlsZXMgY2hhbmdlZCwgMTQzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA3NDAxNDhkLi5lYjcyZjk1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKQEAgLTE2NTMsNiArMTY1MywxMyBAQCBzdHJ1Y3QgaTkxNV9vYV9yZWcgewog CXUzMiB2YWx1ZTsKIH07CiAKK3N0cnVjdCBpOTE1X29hX3Jjc19ub2RlIHsKKwlzdHJ1Y3QgbGlz dF9oZWFkIGhlYWQ7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisJdTMyIG9m ZnNldDsKKwl1MzIgY3R4X2lkOworfTsKKwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpOTE1X29hX3Jl ZyBpOTE1X29hXzNkX211eF9jb25maWdfaHN3W107CiBleHRlcm4gY29uc3QgaW50IGk5MTVfb2Ff M2RfbXV4X2NvbmZpZ19oc3dfbGVuOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBp OTE1X29hXzNkX2JfY291bnRlcl9jb25maWdfaHN3W107CkBAIC0xOTUyLDcgKzE5NTksMTEgQEAg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQkJdTggKmFkZHI7CiAJCQlpbnQgZm9ybWF0Owog CQkJaW50IGZvcm1hdF9zaXplOworCQkJdTMyIG5vZGVfc2l6ZTsKKwkJCXUzMiBub2RlX2NvdW50 OwogCQl9IG9hX3Jjc19idWZmZXI7CisJCXN0cnVjdCBsaXN0X2hlYWQgbm9kZV9saXN0OworCQlz dHJ1Y3Qgd29ya19zdHJ1Y3Qgd29ya190aW1lcjsKIAl9IG9hX3BtdTsKICNlbmRpZgogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCmluZGV4IGI3OTU4MmIuLmE0ZmRjYTMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCkBAIC01OCw2ICs1OCwxNCBAQCBzdGF0aWMgdTMyIGZv cndhcmRfb2Ffc25hcHNob3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl1 OCAqc25hcHNob3Q7CiAJdTMyIHRha2VuOwogCisJLyoKKwkgKiBTY2hlZHVsZSBhIHdvcmtlciB0 byBmb3J3YXJkIHRoZSBSQ1MgYmFzZWQgT0EgcmVwb3J0cyBjb2xsZWN0ZWQuCisJICogQSB3b3Jr ZXIgaXMgbmVlZGVkIHNpbmNlIGl0IHJlcXVpcmVzIGRldmljZSBtdXRleCB0byBiZSB0YWtlbgor CSAqIHdoaWNoIGNhbid0IGJlIGRvbmUgaGVyZSBiZWNhdXNlIG9mIGF0b21pYyBjb250ZXh0CisJ ICovCisJaWYgKGRldl9wcml2LT5vYV9wbXUubXVsdGlwbGVfY3R4X21vZGUpCisJCXNjaGVkdWxl X3dvcmsoJmRldl9wcml2LT5vYV9wbXUud29ya190aW1lcik7CisKIAloZWFkIC09IGRldl9wcml2 LT5vYV9wbXUub2FfYnVmZmVyLmd0dF9vZmZzZXQ7CiAJdGFpbCAtPSBkZXZfcHJpdi0+b2FfcG11 Lm9hX2J1ZmZlci5ndHRfb2Zmc2V0OwogCkBAIC0xNjUsNiArMTczLDEwMyBAQCBzdGF0aWMgdm9p ZCBmbHVzaF9vYV9zbmFwc2hvdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLmZsdXNo X2xvY2ssIGZsYWdzKTsKIH0KIAoraW50IGk5MTVfb2FfcmNzX3dhaXRfZ3B1KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaTkxNV9vYV9yY3Nfbm9kZSAqbGFz dF9lbnRyeTsKKwl1bnNpZ25lZCBsb25nIGxvY2tfZmxhZ3M7CisJaW50IHJldDsKKworCS8qCisJ ICogV2FpdCBmb3IgdGhlIGxhc3Qgc2NoZWR1bGVkIHJlcXVlc3QgdG8gY29tcGxldGUuIFRoaXMg d291bGQKKwkgKiBpbXBsaWNpdGx5IHdhaXQgZm9yIHRoZSBwcmlvciBzdWJtaXR0ZWQgcmVxdWVz dHMuIFRoZSByZWZjb3VudAorCSAqIG9mIHRoZSByZXF1ZXN0cyBpcyBub3QgZGVjcmVtZW50ZWQg aGVyZS4KKwkgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPm9hX3BtdS5sb2NrLCBs b2NrX2ZsYWdzKTsKKworCWlmIChsaXN0X2VtcHR5KCZkZXZfcHJpdi0+b2FfcG11Lm5vZGVfbGlz dCkpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPm9hX3BtdS5sb2NrLCBs b2NrX2ZsYWdzKTsKKwkJcmV0dXJuIDA7CisJfQorCWxhc3RfZW50cnkgPSBsaXN0X2xhc3RfZW50 cnkoJmRldl9wcml2LT5vYV9wbXUubm9kZV9saXN0LAorCQkJc3RydWN0IGk5MTVfb2FfcmNzX25v ZGUsIGhlYWQpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5vYV9wbXUubG9j aywgbG9ja19mbGFncyk7CisKKwlpZiAobGFzdF9lbnRyeSAmJiBsYXN0X2VudHJ5LT5yZXEpIHsK KwkJcmV0ID0gX19pOTE1X3dhaXRfcmVxdWVzdChsYXN0X2VudHJ5LT5yZXEsIGF0b21pY19yZWFk KAorCQkJCSZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAorCQkJCWRldl9wcml2 LT5tbS5pbnRlcnJ1cHRpYmxlLCBOVUxMLCBOVUxMKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0VS Uk9SKCJmYWlsZWQgdG8gd2FpdFxuIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCXJldHVy biAwOworfQorCitzdGF0aWMgdm9pZCBmb3J3YXJkX29uZV9vYV9yY3Nfc2FtcGxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQlzdHJ1Y3QgaTkxNV9vYV9yY3Nfbm9kZSAq bm9kZSkKK3sKKwlzdHJ1Y3QgcGVyZl9zYW1wbGVfZGF0YSBkYXRhOworCXN0cnVjdCBwZXJmX2V2 ZW50ICpldmVudCA9IGRldl9wcml2LT5vYV9wbXUuZXhjbHVzaXZlX2V2ZW50OworCWludCBmb3Jt YXRfc2l6ZSwgc25hcHNob3Rfc2l6ZTsKKwl1OCAqc25hcHNob3Q7CisJc3RydWN0IGRybV9pOTE1 X29hX25vZGVfY3R4X2lkICpjdHhfaW5mbzsKKwlzdHJ1Y3QgcGVyZl9yYXdfcmVjb3JkIHJhdzsK KworCWZvcm1hdF9zaXplID0gZGV2X3ByaXYtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLmZvcm1hdF9z aXplOworCXNuYXBzaG90X3NpemUgPSBmb3JtYXRfc2l6ZSArIHNpemVvZigqY3R4X2luZm8pOwor CXNuYXBzaG90ID0gZGV2X3ByaXYtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLmFkZHIgKyBub2RlLT5v ZmZzZXQ7CisKKwljdHhfaW5mbyA9IChzdHJ1Y3QgZHJtX2k5MTVfb2Ffbm9kZV9jdHhfaWQgKiko c25hcHNob3QgKyBmb3JtYXRfc2l6ZSk7CisJY3R4X2luZm8tPmN0eF9pZCA9IG5vZGUtPmN0eF9p ZDsKKworCXBlcmZfc2FtcGxlX2RhdGFfaW5pdCgmZGF0YSwgMCwgZXZlbnQtPmh3Lmxhc3RfcGVy aW9kKTsKKworCS8qIE5vdGU6IHRoZSBjb21iaW5lZCB1MzIgcmF3LT5zaXplIG1lbWJlciArIHJh dyBkYXRhIGl0c2VsZiBtdXN0IGJlIDgKKwkgKiBieXRlIGFsaWduZWQuIChTZWUgbm90ZSBpbiBp bml0X29hX2J1ZmZlciBmb3IgbW9yZSBkZXRhaWxzKSAqLworCXJhdy5zaXplID0gc25hcHNob3Rf c2l6ZSArIDQ7CisJcmF3LmRhdGEgPSBzbmFwc2hvdDsKKworCWRhdGEucmF3ID0gJnJhdzsKKwor CXBlcmZfZXZlbnRfb3ZlcmZsb3coZXZlbnQsICZkYXRhLCAmZGV2X3ByaXYtPm9hX3BtdS5kdW1t eV9yZWdzKTsKK30KKwordm9pZCBmb3J3YXJkX29hX3Jjc19zbmFwc2hvdHNfd29yayhzdHJ1Y3Qg d29ya19zdHJ1Y3QgKl9fd29yaykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPQorCQljb250YWluZXJfb2YoX193b3JrLCB0eXBlb2YoKmRldl9wcml2KSwgb2FfcG11Lndv cmtfdGltZXIpOworCXN0cnVjdCBpOTE1X29hX3Jjc19ub2RlICplbnRyeSwgKm5leHQ7CisJc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisJdW5zaWduZWQgbG9uZyBsb2NrX2ZsYWdz OworCWludCByZXQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUKKwkJKGVudHJ5LCBuZXh0 LCAmZGV2X3ByaXYtPm9hX3BtdS5ub2RlX2xpc3QsIGhlYWQpIHsKKwkJcmVxID0gZW50cnktPnJl cTsKKwkJaWYgKHJlcSAmJiBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEsIHRydWUpKSB7 CisJCQlmb3J3YXJkX29uZV9vYV9yY3Nfc2FtcGxlKGRldl9wcml2LCBlbnRyeSk7CisJCQlyZXQg PSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXZfcHJpdi0+ZGV2KTsKKwkJCWlmIChy ZXQpCisJCQkJYnJlYWs7CisJCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmZW50cnktPnJlcSwg TlVMTCk7CisJCQltdXRleF91bmxvY2soJmRldl9wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7CisJ CX0gZWxzZQorCQkJYnJlYWs7CisKKwkJLyoKKwkJICogRG8gd2UgaW5zdGVhZCBuZWVkIHRvIHBy b3RlY3Qgd2hvbGUgbG9vcD8gSWYgc28sIHdlIHdvdWxkCisJCSAqIG5lZWQgdG8gKmxpc3RfbW92 ZV90YWlsKiB0byBhIGRlZmVycmVkIGxpc3QsIGZyb20gd2hlcmUKKwkJICogaTkxNSBkZXZpY2Ug bXV0ZXggY291bGQgYmUgdGFrZW4gdG8gZGVmZXJlbmNlIHRoZSByZXF1ZXN0cywKKwkJICogYW5k IGZyZWUgdGhlIG5vZGUuCisJCSAqLworCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPm9h X3BtdS5sb2NrLCBsb2NrX2ZsYWdzKTsKKwkJbGlzdF9kZWwoJmVudHJ5LT5oZWFkKTsKKwkJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPm9hX3BtdS5sb2NrLCBsb2NrX2ZsYWdzKTsK KwkJa2ZyZWUoZW50cnkpOworCX0KK30KKwogc3RhdGljIHZvaWQKIG9hX3Jjc19idWZmZXJfZGVz dHJveShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKQEAgLTM2NCw3ICs0NjksNyBA QCBzdGF0aWMgaW50IGluaXRfb2FfcmNzX2J1ZmZlcihzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQp CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJY29udGFpbmVyX29mKGV2 ZW50LT5wbXUsIHR5cGVvZigqZGV2X3ByaXYpLCBvYV9wbXUucG11KTsKIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqYm87Ci0JaW50IHJldDsKKwlpbnQgcmV0LCBub2RlX3NpemU7CiAKIAlC VUdfT04oZGV2X3ByaXYtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLm9iaik7CiAKQEAgLTM3NSw2ICs0 ODAsMTYgQEAgc3RhdGljIGludCBpbml0X29hX3Jjc19idWZmZXIoc3RydWN0IHBlcmZfZXZlbnQg KmV2ZW50KQogCWRldl9wcml2LT5vYV9wbXUub2FfcmNzX2J1ZmZlci5vYmogPSBibzsKIAogCWRl dl9wcml2LT5vYV9wbXUub2FfcmNzX2J1ZmZlci5hZGRyID0gdm1hcF9vYV9idWZmZXIoYm8pOwor CUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+b2FfcG11Lm5vZGVfbGlzdCk7CisKKwlub2RlX3Np emUgPSBkZXZfcHJpdi0+b2FfcG11Lm9hX3Jjc19idWZmZXIuZm9ybWF0X3NpemUgKworCQkJc2l6 ZW9mKHN0cnVjdCBkcm1faTkxNV9vYV9ub2RlX2N0eF9pZCk7CisKKwkvKiBub2RlIHNpemUgaGFz IHRvIGJlIGFsaWduZWQgdG8gNjQgYnl0ZXMsIHNpbmNlIG9ubHkgNjQgYnl0ZSBhbGlnbmVkCisJ ICogYWRkcmVzc2VzIGNhbiBiZSBnaXZlbiB0byBPQSB1bml0IGZvciBkdW1waW5nIE9BIHJlcG9y dHMgKi8KKwlub2RlX3NpemUgPSBBTElHTihub2RlX3NpemUsIDY0KTsKKwlkZXZfcHJpdi0+b2Ff cG11Lm9hX3Jjc19idWZmZXIubm9kZV9zaXplID0gbm9kZV9zaXplOworCWRldl9wcml2LT5vYV9w bXUub2FfcmNzX2J1ZmZlci5ub2RlX2NvdW50ID0gYm8tPmJhc2Uuc2l6ZSAvIG5vZGVfc2l6ZTsK IAogCURSTV9ERUJVR19EUklWRVIoIk9BIFJDUyBCdWZmZXIgaW5pdGlhbGl6ZWQsIHZhZGRyID0g JXAiLAogCQkJIGRldl9wcml2LT5vYV9wbXUub2FfcmNzX2J1ZmZlci5hZGRyKTsKQEAgLTg0OSw3 ICs5NjQsMTMgQEAgc3RhdGljIGludCBpOTE1X29hX2V2ZW50X2ZsdXNoKHN0cnVjdCBwZXJmX2V2 ZW50ICpldmVudCkKIAlpZiAoZXZlbnQtPmF0dHIuc2FtcGxlX3BlcmlvZCkgewogCQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCQljb250YWluZXJfb2YoZXZlbnQtPnBtdSwgdHlw ZW9mKCppOTE1KSwgb2FfcG11LnBtdSk7CisJCWludCByZXQ7CiAKKwkJaWYgKGk5MTUtPm9hX3Bt dS5tdWx0aXBsZV9jdHhfbW9kZSkgeworCQkJcmV0ID0gaTkxNV9vYV9yY3Nfd2FpdF9ncHUoaTkx NSk7CisJCQlpZiAocmV0KQorCQkJCXJldHVybiByZXQ7CisJCX0KIAkJZmx1c2hfb2Ffc25hcHNo b3RzKGk5MTUsIHRydWUpOwogCX0KIApAQCAtOTQ1LDYgKzEwNjYsOCBAQCB2b2lkIGk5MTVfb2Ff cG11X3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaHJ0aW1lcl9pbml0KCZpOTE1 LT5vYV9wbXUudGltZXIsIENMT0NLX01PTk9UT05JQywgSFJUSU1FUl9NT0RFX1JFTCk7CiAJaTkx NS0+b2FfcG11LnRpbWVyLmZ1bmN0aW9uID0gaHJ0aW1lcl9zYW1wbGU7CiAKKwlJTklUX1dPUkso Jmk5MTUtPm9hX3BtdS53b3JrX3RpbWVyLCBmb3J3YXJkX29hX3Jjc19zbmFwc2hvdHNfd29yayk7 CisKIAlzcGluX2xvY2tfaW5pdCgmaTkxNS0+b2FfcG11LmxvY2spOwogCiAJaTkxNS0+b2FfcG11 LnBtdS5jYXBhYmlsaXRpZXMgID0gUEVSRl9QTVVfQ0FQX0lTX0RFVklDRTsKQEAgLTk3NCw2ICsx MDk3LDkgQEAgdm9pZCBpOTE1X29hX3BtdV91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJaWYgKGk5MTUtPm9hX3BtdS5wbXUuZXZlbnRfaW5pdCA9PSBOVUxMKQogCQlyZXR1cm47 CiAKKwlpZiAoaTkxNS0+b2FfcG11Lm11bHRpcGxlX2N0eF9tb2RlKQorCQljYW5jZWxfd29ya19z eW5jKCZpOTE1LT5vYV9wbXUud29ya190aW1lcik7CisKIAl1bnJlZ2lzdGVyX3N5c2N0bF90YWJs ZShpOTE1LT5vYV9wbXUuc3lzY3RsX2hlYWRlcik7CiAKIAlwZXJmX3BtdV91bnJlZ2lzdGVyKCZp OTE1LT5vYV9wbXUucG11KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0u aCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAppbmRleCBkY2Y3Yzg3Li5lOTdiMmZkIDEw MDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oCkBAIC0xMjMsNiArMTIzLDExIEBAIGVudW0gZHJtX2k5MTVfb2FfZXZl bnRfdHlwZSB7CiAJSTkxNV9PQV9SRUNPUkRfTUFYLAkJCS8qIG5vbi1BQkkgKi8KIH07CiAKK3N0 cnVjdCBkcm1faTkxNV9vYV9ub2RlX2N0eF9pZCB7CisJX191MzIgY3R4X2lkOworCV9fdTMyIHBh ZDsKK307CisKIC8qIEVhY2ggcmVnaW9uIGlzIGEgbWluaW11bSBvZiAxNmssIGFuZCB0aGVyZSBh cmUgYXQgbW9zdCAyNTUgb2YgdGhlbS4KICAqLwogI2RlZmluZSBJOTE1X05SX1RFWF9SRUdJT05T IDI1NQkvKiB0YWJsZSBzaXplIDJrIC0gbWF4aW11bSBkdWUgdG8gdXNlCi0tIAoxLjguNS4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=