From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [CI 07/10] drm/i915: Gate engine stats collection with a static key Date: Tue, 10 Oct 2017 16:19:04 +0100 Message-ID: <20171010151907.5594-7-tvrtko.ursulin@linux.intel.com> References: <20171010151907.5594-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 901886E53F for ; Tue, 10 Oct 2017 15:19:21 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id 131so19236481wmk.3 for ; Tue, 10 Oct 2017 08:19:21 -0700 (PDT) In-Reply-To: <20171010151907.5594-1-tvrtko.ursulin@linux.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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRoaXMgcmVk dWNlcyB0aGUgY29zdCBvZiB0aGUgc29mdHdhcmUgZW5naW5lIGJ1c3luZXNzIHRyYWNraW5nCnRv IGEgc2luZ2xlIG5vLW9wIGluc3RydWN0aW9uIHdoZW4gdGhlcmUgYXJlIG5vIGxpc3RlbmVycy4K CldlIGFkZCBhIG5ldyBpOTE1IG9yZGVyZWQgd29ya3F1ZXVlIHRvIGJlIHVzZWQgb25seSBmb3Ig dGFza3MKbm90IG5lZWRpbmcgc3RydWN0IG11dGV4LgoKdjI6IFJlYmFzZSBhbmQgc29tZSBjb21t ZW50cy4KdjM6IFJlYmFzZS4KdjQ6IENoZWNrcGF0Y2ggZml4ZXMuCnY1OiBSZWJhc2UuCnY2OiBV c2Ugc3lzdGVtX2xvbmdfd3EgdG8gYXZvaWQgYmVpbmcgYmxvY2tlZCBieSBzdHJ1Y3RfbXV0ZXgK ICAgIHVzZXJzLgp2NzogRml4IGJhZCBjb25mbGljdCByZXNvbHV0aW9uIGZyb20gbGFzdCByZWJh c2UuIChEbWl0cnkgUm9nb3poa2luKQp2ODogUmViYXNlLgp2OToKICogRml4IHJhY2UgYmV0d2Vl biB1bm9yZGVyZWQgZW5hYmxlIGZvbGxvd2VkIGJ5IGRpc2FibGUuCiAgIChDaHJpcyBXaWxzb24p CiAqIFByZXR0aWZ5IG9yZGVyIG9mIGxvY2FsIHZhcmlhYmxlIGRlY2xhcmF0aW9ucy4gKENocmlz IFdpbHNvbikKdjEwOgogQ2hyaXMgV2lsc29uOgogICogRml4IHdvcmtxdWV1ZSBhbGxvY2F0aW9u IGZhaWx1cmUgaGFuZGxpbmcuCiAgKiBFeHBhbmQgY29tbWVudCBhYm91dCBjcml0aWNhbCB3b3Jr cXVldWUgb3JkZXJpbmcuCiAgKiBBZGQgc29tZSBHRU1fQlVHX09OcyB0byBkb2N1bWVudCBpbXBv c3NpYmxlIGNvbmRpdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtv LnVyc3VsaW5AaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAg ICAgIHwgIDEzICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8 ICAgNSArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYyAgICAgICAgIHwgIDY1ICsr KysrKysrKysrKysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3Mu YyAgfCAgMTcgKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgg fCAxMDEgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwg MTU4IGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CmluZGV4IGQzNzNhODQwNTY2YS4uMzg1MzAzOGM2ZmRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKQEAgLTgwNCwxMiArODA0LDIyIEBAIHN0YXRpYyBpbnQgaTkxNV93b3JrcXVldWVzX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmIChkZXZfcHJpdi0+d3EgPT0g TlVMTCkKIAkJZ290byBvdXRfZXJyOwogCisJLyoKKwkgKiBPcmRlcmVkIHdvcmtxdWV1ZSBmb3Ig dGFza3Mgbm90IG5lZWRpbmcgdGhlIGdsb2JhbCBtdXRleCBidXQKKwkgKiB3aGljaCBzdGlsbCBu ZWVkIHRvIGJlIHNlcmlhbGl6ZWQuCisJICovCisJZGV2X3ByaXYtPndxX21pc2MgPSBhbGxvY19v cmRlcmVkX3dvcmtxdWV1ZSgiaTkxNS1taXNjIiwgMCk7CisJaWYgKGRldl9wcml2LT53cV9taXNj ID09IE5VTEwpCisJCWdvdG8gb3V0X2ZyZWVfd3E7CisKIAlkZXZfcHJpdi0+aG90cGx1Zy5kcF93 cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJpOTE1LWRwIiwgMCk7CiAJaWYgKGRldl9wcml2 LT5ob3RwbHVnLmRwX3dxID09IE5VTEwpCi0JCWdvdG8gb3V0X2ZyZWVfd3E7CisJCWdvdG8gb3V0 X2ZyZWVfd3FfbWlzYzsKIAogCXJldHVybiAwOwogCitvdXRfZnJlZV93cV9taXNjOgorCWRlc3Ry b3lfd29ya3F1ZXVlKGRldl9wcml2LT53cV9taXNjKTsKIG91dF9mcmVlX3dxOgogCWRlc3Ryb3lf d29ya3F1ZXVlKGRldl9wcml2LT53cSk7CiBvdXRfZXJyOgpAQCAtODMwLDYgKzg0MCw3IEBAIHN0 YXRpYyB2b2lkIGk5MTVfZW5naW5lc19jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQogc3RhdGljIHZvaWQgaTkxNV93b3JrcXVldWVzX2NsZWFudXAoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewogCWRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT5ob3Rw bHVnLmRwX3dxKTsKKwlkZXN0cm95X3dvcmtxdWV1ZShkZXZfcHJpdi0+d3FfbWlzYyk7CiAJZGVz dHJveV93b3JrcXVldWUoZGV2X3ByaXYtPndxKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggMjkwNGFjNGIyYWU1Li45OTk4OWNkNzc4YTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aApAQCAtMjM1Niw2ICsyMzU2LDExIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkgKi8K IAlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3E7CiAKKwkvKioKKwkgKiBAd3FfbWlzYzogV29y a3F1ZXVlIGZvciBzZXJpYWxpemVkIHRhc2tzIG5vdCBuZWVkaW5nIHN0cnVjdCBtdXRleC4KKwkg Ki8KKwlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3FfbWlzYzsKKwogCS8qIERpc3BsYXkgZnVu Y3Rpb25zICovCiAJc3RydWN0IGRybV9pOTE1X2Rpc3BsYXlfZnVuY3MgZGlzcGxheTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcG11LmMKaW5kZXggMjY3MWUzNjQwNjM5Li5kNTUyZTQxNWJlY2QgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcG11LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wbXUuYwpAQCAtNDU4LDExICs0NTgsMjAgQEAgc3RhdGljIHZvaWQgaTkx NV9wbXVfZW5hYmxlKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAkJR0VNX0JVR19PTihzYW1w bGUgPj0gSTkxNV9QTVVfU0FNUExFX0JJVFMpOwogCQlHRU1fQlVHX09OKGVuZ2luZS0+cG11LmVu YWJsZV9jb3VudFtzYW1wbGVdID09IH4wKTsKIAkJaWYgKGVuZ2luZS0+cG11LmVuYWJsZV9jb3Vu dFtzYW1wbGVdKysgPT0gMCkgeworCQkJLyoKKwkJCSAqIEVuYWJsZSBlbmdpbmUgYnVzeSBzdGF0 cyB0cmFja2luZyBpZiBuZWVkZWQgb3IKKwkJCSAqIGFsdGVybmF0aXZlbHkgY2FuY2VsIHRoZSBz Y2hlZHVsZWQgZGlzYWJsaW5nIG9mIHRoZQorCQkJICogc2FtZS4KKwkJCSAqCisJCQkgKiBJZiB0 aGUgZGVsYXllZCBkaXNhYmxlIHdhcyBwZW5kaW5nLCBjYW5jZWwgaXQgYW5kIGluCisJCQkgKiB0 aGlzIGNhc2Ugbm8gbmVlZCB0byBxdWV1ZSBhIG5ldyBlbmFibGUuCisJCQkgKi8KIAkJCWlmIChl bmdpbmVfbmVlZHNfYnVzeV9zdGF0cyhlbmdpbmUpICYmCiAJCQkgICAgIWVuZ2luZS0+cG11LmJ1 c3lfc3RhdHMpIHsKLQkJCQllbmdpbmUtPnBtdS5idXN5X3N0YXRzID0KLQkJCQkJaW50ZWxfZW5h YmxlX2VuZ2luZV9zdGF0cyhlbmdpbmUpID09IDA7Ci0JCQkJV0FSTl9PTl9PTkNFKCFlbmdpbmUt PnBtdS5idXN5X3N0YXRzKTsKKwkJCQllbmdpbmUtPnBtdS5idXN5X3N0YXRzID0gdHJ1ZTsKKwkJ CQlpZiAoIWNhbmNlbF9kZWxheWVkX3dvcmsoJmVuZ2luZS0+cG11LmRpc2FibGVfYnVzeV9zdGF0 cykpCisJCQkJCXF1ZXVlX3dvcmsoaTkxNS0+d3FfbWlzYywKKwkJCQkJCSAgICZlbmdpbmUtPnBt dS5lbmFibGVfYnVzeV9zdGF0cyk7CiAJCQl9CiAJCX0KIAl9CkBAIC01MDUsNyArNTE0LDIyIEBA IHN0YXRpYyB2b2lkIGk5MTVfcG11X2Rpc2FibGUoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQog CQkJaWYgKCFlbmdpbmVfbmVlZHNfYnVzeV9zdGF0cyhlbmdpbmUpICYmCiAJCQkgICAgZW5naW5l LT5wbXUuYnVzeV9zdGF0cykgewogCQkJCWVuZ2luZS0+cG11LmJ1c3lfc3RhdHMgPSBmYWxzZTsK LQkJCQlpbnRlbF9kaXNhYmxlX2VuZ2luZV9zdGF0cyhlbmdpbmUpOworCQkJCS8qCisJCQkJICog V2UgcmVxdWVzdCBhIGRlbGF5ZWQgZGlzYWJsZSB0byBoYW5kbGUgdGhlCisJCQkJICogcmFwaWQg b24vb2ZmIGN5Y2xlcyBvbiBldmVudHMsIHdoaWNoIGNhbgorCQkJCSAqIGhhcHBlbiB3aGVuIHRv b2xzIGxpa2UgcGVyZiBzdGF0IHN0YXJ0LCBpbiBhCisJCQkJICogbmljZXIgd2F5LgorCQkJCSAq CisJCQkJICogUE1VIGVuYWJsZSBhbmQgZGlzYWJsZSBjYWxsYmFja3MgYXJlCisJCQkJICogc2Vy aWFsaXplZCB3aXRoIHRoZSBzcGlubG9jaywgYW5kIHNpbmNlIHdlIGRvCisJCQkJICogdGhlbSBp biBkZWNvdXBsZWQgZmFzaGlvbiBmcm9tIHdvcmtlcnMsIGl0IGlzCisJCQkJICogY3JpdGljYWwg dG8gdXNlIGFuIG9yZGVyZWQgd29yayBxdWV1ZSB0bworCQkJCSAqIHByZXNlcnZlIHRoaXMgb3Jk ZXJpbmcgYmV0d2VlbiB0aGUgdHdvCisJCQkJICogZXZlbnRzLgorCQkJCSAqLworCQkJCXF1ZXVl X2RlbGF5ZWRfd29yayhpOTE1LT53cV9taXNjLAorCQkJCQkJICAgJmVuZ2luZS0+cG11LmRpc2Fi bGVfYnVzeV9zdGF0cywKKwkJCQkJCSAgIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUoSFopKTsK IAkJCX0KIAkJfQogCX0KQEAgLTY4OSw4ICs3MTMsMjYgQEAgc3RhdGljIGludCBpOTE1X3BtdV9j cHVfb2ZmbGluZSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZSkKIAly ZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgX19lbmFibGVfYnVzeV9zdGF0cyhzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0KKwkJ Y29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqZW5naW5lKSwgcG11LmVuYWJsZV9idXN5X3N0YXRz KTsKKworCVdBUk5fT05fT05DRShpbnRlbF9lbmFibGVfZW5naW5lX3N0YXRzKGVuZ2luZSkpOwor fQorCitzdGF0aWMgdm9pZCBfX2Rpc2FibGVfYnVzeV9zdGF0cyhzdHJ1Y3Qgd29ya19zdHJ1Y3Qg KndvcmspCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0KKwkgICAgICAgY29u dGFpbmVyX29mKHdvcmssIHR5cGVvZigqZW5naW5lKSwgcG11LmRpc2FibGVfYnVzeV9zdGF0cy53 b3JrKTsKKworCWludGVsX2Rpc2FibGVfZW5naW5lX3N0YXRzKGVuZ2luZSk7Cit9CisKIHZvaWQg aTkxNV9wbXVfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CisJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwog CWludCByZXQ7CiAKIAlpZiAoSU5URUxfR0VOKGk5MTUpIDw9IDIpIHsKQEAgLTcyNSw2ICs3Njcs MTIgQEAgdm9pZCBpOTE1X3BtdV9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKIAlpOTE1LT5wbXUudGltZXIuZnVuY3Rpb24gPSBpOTE1X3NhbXBsZTsKIAlpOTE1LT5wbXUu ZW5hYmxlID0gMDsKIAorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCUlO SVRfV09SSygmZW5naW5lLT5wbXUuZW5hYmxlX2J1c3lfc3RhdHMsIF9fZW5hYmxlX2J1c3lfc3Rh dHMpOworCQlJTklUX0RFTEFZRURfV09SSygmZW5naW5lLT5wbXUuZGlzYWJsZV9idXN5X3N0YXRz LAorCQkJCSAgX19kaXNhYmxlX2J1c3lfc3RhdHMpOworCX0KKwogCXJldCA9IHBlcmZfcG11X3Jl Z2lzdGVyKCZpOTE1LT5wbXUuYmFzZSwgImk5MTUiLCAtMSk7CiAJaWYgKHJldCA9PSAwKQogCQly ZXR1cm47CkBAIC03NDMsNiArNzkxLDkgQEAgdm9pZCBpOTE1X3BtdV9yZWdpc3RlcihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogdm9pZCBpOTE1X3BtdV91bnJlZ2lzdGVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogeworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwogCWlmICghaTkxNS0+cG11LmJhc2Uu ZXZlbnRfaW5pdCkKIAkJcmV0dXJuOwogCkBAIC03NTQsNiArODA1LDEyIEBAIHZvaWQgaTkxNV9w bXVfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCWhydGltZXJf Y2FuY2VsKCZpOTE1LT5wbXUudGltZXIpOwogCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkx NSwgaWQpIHsKKwkJR0VNX0JVR19PTihlbmdpbmUtPnBtdS5idXN5X3N0YXRzKTsKKwkJR0VNX0JV R19PTihmbHVzaF93b3JrKCZlbmdpbmUtPnBtdS5lbmFibGVfYnVzeV9zdGF0cykpOworCQlmbHVz aF9kZWxheWVkX3dvcmsoJmVuZ2luZS0+cG11LmRpc2FibGVfYnVzeV9zdGF0cyk7CisJfQorCiAJ cGVyZl9wbXVfdW5yZWdpc3RlcigmaTkxNS0+cG11LmJhc2UpOwogCWk5MTUtPnBtdS5iYXNlLmV2 ZW50X2luaXQgPSBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwpp bmRleCA1MTg4NTYyOWQzZGYuLjgwYTdiNTUxODRkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZW5naW5lX2NzLmMKQEAgLTIxLDYgKzIxLDcgQEAKICAqIElOIFRIRSBTT0ZUV0FSRS4KICAq CiAgKi8KKyNpbmNsdWRlIDxsaW51eC9zdGF0aWNfa2V5Lmg+CiAKICNpbmNsdWRlIDxkcm0vZHJt X3ByaW50Lmg+CiAKQEAgLTE4MTMsNiArMTgxNCwxMCBAQCBpbnRlbF9lbmdpbmVfbG9va3VwX3Vz ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHU4IGNsYXNzLCB1OCBpbnN0YW5jZSkK IAlyZXR1cm4gaTkxNS0+ZW5naW5lX2NsYXNzW2NsYXNzXVtpbnN0YW5jZV07CiB9CiAKK0RFRklO RV9TVEFUSUNfS0VZX0ZBTFNFKGk5MTVfZW5naW5lX3N0YXRzX2tleSk7CitzdGF0aWMgREVGSU5F X01VVEVYKGk5MTVfZW5naW5lX3N0YXRzX211dGV4KTsKK3N0YXRpYyBpbnQgaTkxNV9lbmdpbmVf c3RhdHNfcmVmOworCiAvKioKICAqIGludGVsX2VuYWJsZV9lbmdpbmVfc3RhdHMoKSAtIEVuYWJs ZSBlbmdpbmUgYnVzeSB0cmFja2luZyBvbiBlbmdpbmUKICAqIEBlbmdpbmU6IGVuZ2luZSB0byBl bmFibGUgc3RhdHMgY29sbGVjdGlvbgpAQCAtMTgyOCw2ICsxODMzLDggQEAgaW50IGludGVsX2Vu YWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWlmICgh aTkxNV9tb2RwYXJhbXMuZW5hYmxlX2V4ZWNsaXN0cykKIAkJcmV0dXJuIC1FTk9ERVY7CiAKKwlt dXRleF9sb2NrKCZpOTE1X2VuZ2luZV9zdGF0c19tdXRleCk7CisKIAlzcGluX2xvY2tfaXJxc2F2 ZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CiAJaWYgKGVuZ2luZS0+c3RhdHMuZW5hYmxl ZCA9PSB+MCkKIAkJZ290byBidXN5OwpAQCAtMTgzNSwxMCArMTg0MiwxNiBAQCBpbnQgaW50ZWxf ZW5hYmxlX2VuZ2luZV9zdGF0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWVu Z2luZS0+c3RhdHMuZW5hYmxlZF9hdCA9IGt0aW1lX2dldCgpOwogCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwogCisJaWYgKGk5MTVfZW5naW5lX3N0 YXRzX3JlZisrID09IDApCisJCXN0YXRpY19icmFuY2hfZW5hYmxlKCZpOTE1X2VuZ2luZV9zdGF0 c19rZXkpOworCisJbXV0ZXhfdW5sb2NrKCZpOTE1X2VuZ2luZV9zdGF0c19tdXRleCk7CisKIAly ZXR1cm4gMDsKIAogYnVzeToKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnN0YXRz LmxvY2ssIGZsYWdzKTsKKwltdXRleF91bmxvY2soJmk5MTVfZW5naW5lX3N0YXRzX211dGV4KTsK IAogCXJldHVybiAtRUJVU1k7CiB9CkBAIC0xODU2LDYgKzE4NjksNyBAQCB2b2lkIGludGVsX2Rp c2FibGVfZW5naW5lX3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpZiAo IWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9leGVjbGlzdHMpCiAJCXJldHVybjsKIAorCW11dGV4X2xv Y2soJmk5MTVfZW5naW5lX3N0YXRzX211dGV4KTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5l LT5zdGF0cy5sb2NrLCBmbGFncyk7CiAJV0FSTl9PTl9PTkNFKGVuZ2luZS0+c3RhdHMuZW5hYmxl ZCA9PSAwKTsKIAlpZiAoLS1lbmdpbmUtPnN0YXRzLmVuYWJsZWQgPT0gMCkgewpAQCAtMTg2NSw2 ICsxODc5LDkgQEAgdm9pZCBpbnRlbF9kaXNhYmxlX2VuZ2luZV9zdGF0cyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJCWVuZ2luZS0+c3RhdHMudG90YWwgPSAwOwogCX0KIAlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKKwlpZiAoLS1p OTE1X2VuZ2luZV9zdGF0c19yZWYgPT0gMCkKKwkJc3RhdGljX2JyYW5jaF9kaXNhYmxlKCZpOTE1 X2VuZ2luZV9zdGF0c19rZXkpOworCW11dGV4X3VubG9jaygmaTkxNV9lbmdpbmVfc3RhdHNfbXV0 ZXgpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRl eCBiN2YwY2Q0NDk4MjQuLjAyMDJiMWZhNDJmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaApAQCAtMzYzLDYgKzM2MywyMiBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz IHsKIAkJICogCQlyZXF1ZXN0ZWQuCiAJCSAqLwogCQlib29sIGJ1c3lfc3RhdHM7CisJCS8qKgor CQkgKiBAZW5hYmxlX2J1c3lfc3RhdHM6IFdvcmsgaXRlbSBmb3IgZW5naW5lIGJ1c3kgc3RhdHMg ZW5hYmxpbmcuCisJCSAqCisJCSAqIFNpbmNlIHRoZSBhY3Rpb24gY2FuIHNsZWVwIGl0IG5lZWRz IHRvIGJlIGRlY291cGxlZCBmcm9tIHRoZQorCQkgKiBwZXJmIEFQSSBjYWxsYmFjay4KKwkJICov CisJCXN0cnVjdCB3b3JrX3N0cnVjdCBlbmFibGVfYnVzeV9zdGF0czsKKwkJLyoqCisJCSAqIEBk aXNhYmxlX2J1c3lfc3RhdHM6IFdvcmsgaXRlbSBmb3IgYnVzeSBzdGF0cyBkaXNhYmxpbmcuCisJ CSAqCisJCSAqIFNhbWUgYXMgd2l0aCBAZW5hYmxlX2J1c3lfc3RhdHMgYWN0aW9uLCB3aXRoIHRo ZSBkaWZmZXJlbmNlCisJCSAqIHRoYXQgd2UgZGVsYXkgaXQgaW4gY2FzZSB0aGVyZSBhcmUgcmFw aWQgZW5hYmxlLWRpc2FibGUKKwkJICogYWN0aW9ucywgd2hpY2ggY2FuIGhhcHBlbiBkdXJpbmcg dG9vbCBzdGFydHVwIChsaWtlIHBlcmYKKwkJICogc3RhdCkuCisJCSAqLworCQlzdHJ1Y3QgZGVs YXllZF93b3JrIGRpc2FibGVfYnVzeV9zdGF0czsKIAl9IHBtdTsKIAogCS8qCkBAIC05MDYsNTkg KzkyMiw2OCBAQCB2b2lkIGludGVsX2VuZ2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwgc3RydWN0IGRybV9wcmludGVyICpwKTsKIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KgogaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LCB1OCBjbGFzcywgdTggaW5zdGFuY2UpOwogCitERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UoaTkx NV9lbmdpbmVfc3RhdHNfa2V5KTsKKwogc3RhdGljIGlubGluZSB2b2lkIGludGVsX2VuZ2luZV9j b250ZXh0X2luKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAl1bnNpZ25lZCBs b25nIGZsYWdzOwogCi0JaWYgKFJFQURfT05DRShlbmdpbmUtPnN0YXRzLmVuYWJsZWQpID09IDAp Ci0JCXJldHVybjsKKwlpZiAoc3RhdGljX2JyYW5jaF91bmxpa2VseSgmaTkxNV9lbmdpbmVfc3Rh dHNfa2V5KSkgeworCQlpZiAoUkVBRF9PTkNFKGVuZ2luZS0+c3RhdHMuZW5hYmxlZCkgPT0gMCkK KwkJCXJldHVybjsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZs YWdzKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwog Ci0JaWYgKGVuZ2luZS0+c3RhdHMuZW5hYmxlZCA+IDApIHsKLQkJaWYgKGVuZ2luZS0+c3RhdHMu YWN0aXZlKysgPT0gMCkKLQkJCWVuZ2luZS0+c3RhdHMuc3RhcnQgPSBrdGltZV9nZXQoKTsKLQkJ R0VNX0JVR19PTihlbmdpbmUtPnN0YXRzLmFjdGl2ZSA9PSAwKTsKLQl9CisJCQlpZiAoZW5naW5l LT5zdGF0cy5lbmFibGVkID4gMCkgeworCQkJCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSsrID09 IDApCisJCQkJCWVuZ2luZS0+c3RhdHMuc3RhcnQgPSBrdGltZV9nZXQoKTsKKwkJCQlHRU1fQlVH X09OKGVuZ2luZS0+c3RhdHMuYWN0aXZlID09IDApOworCQkJfQogCi0Jc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CisJCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOworCX0KIH0KIAogc3RhdGljIGlubGlu ZSB2b2lkIGludGVsX2VuZ2luZV9jb250ZXh0X291dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCWlmIChSRUFEX09OQ0UoZW5naW5l LT5zdGF0cy5lbmFibGVkKSA9PSAwKQotCQlyZXR1cm47Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgm ZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7Ci0KLQlpZiAoZW5naW5lLT5zdGF0cy5lbmFibGVk ID4gMCkgewotCQlrdGltZV90IGxhc3QsIG5vdyA9IGt0aW1lX2dldCgpOwotCi0JCWlmIChlbmdp bmUtPnN0YXRzLmFjdGl2ZSAmJiAtLWVuZ2luZS0+c3RhdHMuYWN0aXZlID09IDApIHsKLQkJCS8q Ci0JCQkgKiBEZWNyZW1lbnQgdGhlIGFjdGl2ZSBjb250ZXh0IGNvdW50IGFuZCBpbiBjYXNlIEdQ VQotCQkJICogaXMgbm93IGlkbGUgYWRkIHVwIHRvIHRoZSBydW5uaW5nIHRvdGFsLgotCQkJICov Ci0JCQlsYXN0ID0ga3RpbWVfc3ViKG5vdywgZW5naW5lLT5zdGF0cy5zdGFydCk7Ci0KLQkJCWVu Z2luZS0+c3RhdHMudG90YWwgPSBrdGltZV9hZGQoZW5naW5lLT5zdGF0cy50b3RhbCwKLQkJCQkJ CQlsYXN0KTsKLQkJfSBlbHNlIGlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSA9PSAwKSB7Ci0JCQkv KgotCQkJICogQWZ0ZXIgdHVybmluZyBvbiBlbmdpbmUgc3RhdHMsIGNvbnRleHQgb3V0IG1pZ2h0 IGJlCi0JCQkgKiB0aGUgZmlyc3QgZXZlbnQgaW4gd2hpY2ggY2FzZSB3ZSBhY2NvdW50IGZyb20g dGhlCi0JCQkgKiB0aW1lIHN0YXRzIGdhdGhlcmluZyB3YXMgdHVybmVkIG9uLgotCQkJICovCi0J CQlsYXN0ID0ga3RpbWVfc3ViKG5vdywgZW5naW5lLT5zdGF0cy5lbmFibGVkX2F0KTsKLQotCQkJ ZW5naW5lLT5zdGF0cy50b3RhbCA9IGt0aW1lX2FkZChlbmdpbmUtPnN0YXRzLnRvdGFsLAotCQkJ CQkJCWxhc3QpOworCWlmIChzdGF0aWNfYnJhbmNoX3VubGlrZWx5KCZpOTE1X2VuZ2luZV9zdGF0 c19rZXkpKSB7CisJCWlmIChSRUFEX09OQ0UoZW5naW5lLT5zdGF0cy5lbmFibGVkKSA9PSAwKQor CQkJcmV0dXJuOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZs YWdzKTsKKworCQlpZiAoZW5naW5lLT5zdGF0cy5lbmFibGVkID4gMCkgeworCQkJa3RpbWVfdCBs YXN0LCBub3cgPSBrdGltZV9nZXQoKTsKKworCQkJaWYgKGVuZ2luZS0+c3RhdHMuYWN0aXZlICYm CisJCQkgICAgLS1lbmdpbmUtPnN0YXRzLmFjdGl2ZSA9PSAwKSB7CisJCQkJLyoKKwkJCQkgKiBE ZWNyZW1lbnQgdGhlIGFjdGl2ZSBjb250ZXh0IGNvdW50IGFuZCBpbgorCQkJCSAqIGNhc2UgR1BV IGlzIG5vdyBpZGxlIGFkZCB1cCB0byB0aGUgcnVubmluZworCQkJCSAqIHRvdGFsLgorCQkJCSAq LworCQkJCWxhc3QgPSBrdGltZV9zdWIobm93LCBlbmdpbmUtPnN0YXRzLnN0YXJ0KTsKKworCQkJ CWVuZ2luZS0+c3RhdHMudG90YWwgPQorCQkJCQlrdGltZV9hZGQoZW5naW5lLT5zdGF0cy50b3Rh bCwgbGFzdCk7CisJCQl9IGVsc2UgaWYgKGVuZ2luZS0+c3RhdHMuYWN0aXZlID09IDApIHsKKwkJ CQkvKgorCQkJCSAqIEFmdGVyIHR1cm5pbmcgb24gZW5naW5lIHN0YXRzLCBjb250ZXh0IG91dAor CQkJCSAqIG1pZ2h0IGJlIHRoZSBmaXJzdCBldmVudCBpbiB3aGljaCBjYXNlIHdlCisJCQkJICog YWNjb3VudCBmcm9tIHRoZSB0aW1lIHN0YXRzIGdhdGhlcmluZyB3YXMKKwkJCQkgKiB0dXJuZWQg b24uCisJCQkJICovCisJCQkJbGFzdCA9IGt0aW1lX3N1Yihub3csIGVuZ2luZS0+c3RhdHMuZW5h YmxlZF9hdCk7CisKKwkJCQllbmdpbmUtPnN0YXRzLnRvdGFsID0KKwkJCQkJa3RpbWVfYWRkKGVu Z2luZS0+c3RhdHMudG90YWwsIGxhc3QpOworCQkJfQogCQl9Ci0JfQogCi0Jc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CisJCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOworCX0KIH0KIAogaW50IGludGVs X2VuYWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKLS0g CjIuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK