From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v4] drm/i915/tracing: Enable user interrupts while intel_engine_notify is active Date: Thu, 9 Aug 2018 11:01:28 +0100 Message-ID: <20180809100128.3224-1-tvrtko.ursulin@linux.intel.com> References: <1171da91-26e1-ae42-9554-25b7dcc6a467@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x235.google.com (mail-wm0-x235.google.com [IPv6:2a00:1450:400c:c09::235]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0EE8A6E081 for ; Thu, 9 Aug 2018 10:01:36 +0000 (UTC) Received: by mail-wm0-x235.google.com with SMTP id q8-v6so5808232wmq.4 for ; Thu, 09 Aug 2018 03:01:35 -0700 (PDT) In-Reply-To: <1171da91-26e1-ae42-9554-25b7dcc6a467@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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCktlZXAgdGhl IHVzZXIgaW50ZXJydXB0IGVuYWJsZWQgYW5kIGVtaXQgaW50ZWxfZW5naW5lX25vdGlmeSB0cmFj ZXBvaW50CmV2ZXJ5IHRpbWUgYXMgbG9uZyBhcyBpdCBpcyBlbmFibGVkLiBQcmVtaXNlIGlzIHRo YXQgaWYgc29tZW9uZSBpcwpsaXN0ZW5pbmcsIHRoZXkgd2FudCB0byBzZWUgaW50ZXJydXB0cyBs b2dnZWQuCgpXZSB1c2UgdHJhY2Vwb2ludCAoZGUpcmVnaXN0cmF0aW9uIGNhbGxiYWNrcyB0byBl bmFibGUgdXNlciBpbnRlcnJ1cHRzIG9uCmFsbCBkZXZpY2VzIChmdXR1cmUgcHJvb2ZpbmcgYW5k IGF2b2lkaW5nIHVnbHkgZ2xvYmFsIHBvaW50ZXJzKSBhbmQgYWxsCmVuZ2luZXMuIEFuZCBpbiB0 aGUgdXNlciBpbnRlcnJ1cHQgaGFuZGxlciB3ZSBtYWtlIHN1cmUKdHJhY2VfaW50ZWxfZW5naW5l X25vdGlmeSBpcyBjYWxsZWQgZXZlbiB3aGVuIHRoZXJlIGFyZSBubyB3YWl0ZXJzLgoKdjI6CiAq IEltcHJvdmUgbWFrZWZpbGUuIChDaHJpcyBXaWxzb24pCiAqIFNpbXBsaWZ5IGJ5IGRyb3BwaW5n IHRoZSBwb2ludGVsZXNzIGdsb2JhbCBkcml2ZXIgbGlzdC4gKENocmlzIFdpbHNvbikKICogRW1p dCB0cmFjZXBvaW50IHdoZW4gdGhlcmUgYXJlIG5vIHdhaXRlcnMsIG5vdCBqdXN0IHRoZSB1c2Vy IGludGVycnVwdC4KICogQ29tbWl0IG1lc3NhZ2UgdGlkeS4KCnYzOgogKiBGYXZvdXIgb25lIHJl dHVybiBmcm9tIG5vdGlmeV9yaW5nLgogQ2hyaXMgV2lsc29uOgogKiBSZXdvcmQgY29tbWl0IG1l c3NhZ2UgYSBiaXQgZm9yIGNsYXJpdHkuCiAqIEFkZCBSUE0gcmVmZXJlbmNlcyB0byBkcml2ZXIg KHVuKXJlZ2lzdHJhdGlvbiBwYXRocy4KICogUmVuYW1lIGxpc3QgbGluayBtZW1iZXIuCiAqIEhh bmRsZSAhQ09ORklHX1RSQUNFUE9JTlRTIGluIHRoZSBoZWFkZXIuCgp2NDoKICogSSBmb3Jnb3Qg dG8gYWRkIGNvbW1lbnRzIHdoaWxlIHJlbW92aW5nIHRoZSBSRkMgc3RhdHVzLgogKiBMaWNlbnNl IGhlYWRlciB0aWR5LgogKiBGb3J3YXJkIGRlY2xhcmF0aW9uIG9mIGRybV9pOTE1X3ByaXZhdGUg aXMgZW5vdWdoLiAoQ2hyaXMgV2lsc29uKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgpDYzogRG1pdHJ5IFJvZ296aGtpbiA8ZG1pdHJ5LnYucm9nb3poa2luQGlu dGVsLmNvbT4KQ2M6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBpbnRlbC5jb20+CkNj OiBzdmV0bGFuYS5rdWthbm92YUBpbnRlbC5jb20KUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlICAgICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgIHwg ICA1ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgICAyICsKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3RyYWNlLmggICB8ICA1MCArKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3RyYWNpbmcuYyB8IDEzNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNpbmcuaCB8ICAzMCArKysrKysKIDcgZmlsZXMgY2hh bmdlZCwgMjA3IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2luZy5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjaW5nLmgKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl CmluZGV4IDU3OTRmMTAyZjliOC4uZGZjOTQwYjMyMDc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpA QCAtMTgyLDYgKzE4Miw5IEBAIGk5MTUteSArPSBpOTE1X3BlcmYubyBcCiAJICBpOTE1X29hX2Nu bC5vIFwKIAkgIGk5MTVfb2FfaWNsLm8KIAorIyB0cmFjaW5nCitpOTE1LSQoQ09ORklHX1RSQUNF UE9JTlRTKSArPSBpOTE1X3RyYWNpbmcubworCiBpZmVxICgkKENPTkZJR19EUk1fSTkxNV9HVlQp LHkpCiBpOTE1LXkgKz0gaW50ZWxfZ3Z0Lm8KIGluY2x1ZGUgJChzcmMpL2d2dC9NYWtlZmlsZQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggOWRjZTU1MTgyYzNhLi4wM2UyMjRlYmMyOGMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMTI4MSw2ICsxMjgxLDkgQEAgc3RhdGljIHZvaWQg aTkxNV9kcml2ZXJfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CSAqLwogCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+bnVtX3BpcGVzKQogCQlkcm1fa21zX2hl bHBlcl9wb2xsX2luaXQoZGV2KTsKKworCS8qIE5vdGlmeSBvdXIgdHJhY2Vwb2ludHMgZHJpdmVy IGhhcyBiZWVuIHJlZ2lzdGVyZWQuICovCisJaTkxNV90cmFjaW5nX3JlZ2lzdGVyKGRldl9wcml2 KTsKIH0KIAogLyoqCkBAIC0xMjkyLDYgKzEyOTUsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZl cl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpbnRlbF9m YmRldl91bnJlZ2lzdGVyKGRldl9wcml2KTsKIAlpbnRlbF9hdWRpb19kZWluaXQoZGV2X3ByaXYp OwogCisJaTkxNV90cmFjaW5nX3VucmVnaXN0ZXIoZGV2X3ByaXYpOworCiAJLyoKIAkgKiBBZnRl ciBmbHVzaGluZyB0aGUgZmJkZXYgKGluY2wuIGEgbGF0ZSBhc3luYyBjb25maWcgd2hpY2ggd2ls bAogCSAqIGhhdmUgZGVsYXllZCBxdWV1aW5nIG9mIGEgaG90cGx1ZyBldmVudCksIHRoZW4gZmx1 c2ggdGhlIGhvdHBsdWcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDBiMTBhMzBiN2Q5Ni4u MDBkOWU5ZjY1NzM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIxNDEsNiArMjE0MSw4 IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAogCXN0cnVjdCBpOTE1X3BtdSBwbXU7CiAK KwlzdHJ1Y3QgbGlzdF9oZWFkIHRyYWNpbmdfbGluazsKKwogCS8qCiAJICogTk9URTogVGhpcyBp cyB0aGUgZHJpMS91bXMgZHVuZ2VvbiwgZG9uJ3QgYWRkIHN0dWZmIGhlcmUuIFlvdXIgcGF0Y2gK IAkgKiB3aWxsIGJlIHJlamVjdGVkLiBJbnN0ZWFkIGxvb2sgZm9yIGEgYmV0dGVyIHBsYWNlLgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggODA4NGUzNWIyNWM1Li4wZjAwN2E0NjI0OWUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMTE1NywxMCArMTE1NywxMCBAQCBzdGF0aWMgdm9p ZCBub3RpZnlfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJY29uc3QgdTMy IHNlcW5vID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwogCXN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxID0gTlVMTDsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IE5VTEw7Ci0Jc3Ry dWN0IGludGVsX3dhaXQgKndhaXQ7CisJc3RydWN0IGludGVsX3dhaXQgKndhaXQgPSBOVUxMOwog CiAJaWYgKHVubGlrZWx5KCFlbmdpbmUtPmJyZWFkY3J1bWJzLmlycV9hcm1lZCkpCi0JCXJldHVy bjsKKwkJZ290byBvdXQ7CiAKIAlyY3VfcmVhZF9sb2NrKCk7CiAKQEAgLTEyMTksNiArMTIxOSw3 IEBAIHN0YXRpYyB2b2lkIG5vdGlmeV9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKIAogCXJjdV9yZWFkX3VubG9jaygpOwogCitvdXQ6CiAJdHJhY2VfaW50ZWxfZW5naW5lX25v dGlmeShlbmdpbmUsIHdhaXQpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3RyYWNlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKaW5kZXgg YjUwYzZiODI5NzE1Li4yMTJlN2ZjMWU4MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfdHJhY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgK QEAgLTgsNiArOCw3IEBACiAKICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgImk5MTVf ZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV90cmFjaW5nLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHJ2Lmgi CiAjaW5jbHVkZSAiaW50ZWxfcmluZ2J1ZmZlci5oIgogCkBAIC03ODAsMjkgKzc4MSwzMiBAQCB0 cmFjZV9pOTE1X3JlcXVlc3Rfb3V0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogI2VuZGlmCiAj ZW5kaWYKIAotVFJBQ0VfRVZFTlQoaW50ZWxfZW5naW5lX25vdGlmeSwKLQkgICAgVFBfUFJPVE8o c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBib29sIHdhaXRlcnMpLAotCSAgICBUUF9B UkdTKGVuZ2luZSwgd2FpdGVycyksCi0KLQkgICAgVFBfU1RSVUNUX19lbnRyeSgKLQkJCSAgICAg X19maWVsZCh1MzIsIGRldikKLQkJCSAgICAgX19maWVsZCh1MTYsIGNsYXNzKQotCQkJICAgICBf X2ZpZWxkKHUxNiwgaW5zdGFuY2UpCi0JCQkgICAgIF9fZmllbGQodTMyLCBzZXFubykKLQkJCSAg ICAgX19maWVsZChib29sLCB3YWl0ZXJzKQotCQkJICAgICApLAotCi0JICAgIFRQX2Zhc3RfYXNz aWduKAotCQkJICAgX19lbnRyeS0+ZGV2ID0gZW5naW5lLT5pOTE1LT5kcm0ucHJpbWFyeS0+aW5k ZXg7Ci0JCQkgICBfX2VudHJ5LT5jbGFzcyA9IGVuZ2luZS0+dWFiaV9jbGFzczsKLQkJCSAgIF9f ZW50cnktPmluc3RhbmNlID0gZW5naW5lLT5pbnN0YW5jZTsKLQkJCSAgIF9fZW50cnktPnNlcW5v ID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwotCQkJICAgX19lbnRyeS0+d2FpdGVy cyA9IHdhaXRlcnM7Ci0JCQkgICApLAotCi0JICAgIFRQX3ByaW50aygiZGV2PSV1LCBlbmdpbmU9 JXU6JXUsIHNlcW5vPSV1LCB3YWl0ZXJzPSV1IiwKLQkJICAgICAgX19lbnRyeS0+ZGV2LCBfX2Vu dHJ5LT5jbGFzcywgX19lbnRyeS0+aW5zdGFuY2UsCi0JCSAgICAgIF9fZW50cnktPnNlcW5vLCBf X2VudHJ5LT53YWl0ZXJzKQorVFJBQ0VfRVZFTlRfRk4oaW50ZWxfZW5naW5lX25vdGlmeSwKKwkg ICAgICAgVFBfUFJPVE8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBib29sIHdhaXRl cnMpLAorCSAgICAgICBUUF9BUkdTKGVuZ2luZSwgd2FpdGVycyksCisKKwkgICAgICAgVFBfU1RS VUNUX19lbnRyeSgKKwkJCSAgICAgICAgX19maWVsZCh1MzIsIGRldikKKwkJCSAgICAgICAgX19m aWVsZCh1MTYsIGNsYXNzKQorCQkJICAgICAgICBfX2ZpZWxkKHUxNiwgaW5zdGFuY2UpCisJCQkg ICAgICAgIF9fZmllbGQodTMyLCBzZXFubykKKwkJCSAgICAgICAgX19maWVsZChib29sLCB3YWl0 ZXJzKQorCQkJICAgICAgICApLAorCisJICAgICAgIFRQX2Zhc3RfYXNzaWduKAorCQkJICAgICAg X19lbnRyeS0+ZGV2ID0gZW5naW5lLT5pOTE1LT5kcm0ucHJpbWFyeS0+aW5kZXg7CisJCQkgICAg ICBfX2VudHJ5LT5jbGFzcyA9IGVuZ2luZS0+dWFiaV9jbGFzczsKKwkJCSAgICAgIF9fZW50cnkt Pmluc3RhbmNlID0gZW5naW5lLT5pbnN0YW5jZTsKKwkJCSAgICAgIF9fZW50cnktPnNlcW5vID0g aW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOworCQkJICAgICAgX19lbnRyeS0+d2FpdGVy cyA9IHdhaXRlcnM7CisJCQkgICAgICApLAorCisJICAgICAgIFRQX3ByaW50aygiZGV2PSV1LCBl bmdpbmU9JXU6JXUsIHNlcW5vPSV1LCB3YWl0ZXJzPSV1IiwKKwkJCSBfX2VudHJ5LT5kZXYsIF9f ZW50cnktPmNsYXNzLCBfX2VudHJ5LT5pbnN0YW5jZSwKKwkJCSBfX2VudHJ5LT5zZXFubywgX19l bnRyeS0+d2FpdGVycyksCisKKwkgICAgICAgaW50ZWxfZW5naW5lX25vdGlmeV90cmFjZXBvaW50 X3JlZ2lzdGVyLAorCSAgICAgICBpbnRlbF9lbmdpbmVfbm90aWZ5X3RyYWNlcG9pbnRfdW5yZWdp c3RlcgogKTsKIAogREVGSU5FX0VWRU5UKGk5MTVfcmVxdWVzdCwgaTkxNV9yZXF1ZXN0X3JldGly ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2luZy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjaW5nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi44NmM2ODE3M2Q2MWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNpbmcuYwpAQCAtMCwwICsxLDEzNyBAQAorLyoKKyAqIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisgKgorICogQ29weXJpZ2h0IMKpIDIwMTgg SW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKi8KKworI2luY2x1ZGUgImk5MTVfdHJhY2luZy5oIgor CisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9yaW5nYnVmZmVyLmgiCisK K3N0YXRpYyBERUZJTkVfTVVURVgoZHJpdmVyX2xpc3RfbG9jayk7CitzdGF0aWMgTElTVF9IRUFE KGRyaXZlcl9saXN0KTsKK3N0YXRpYyBib29sIG5vdGlmeV9lbmFibGVkOworCitzdGF0aWMgdm9p ZCBfX2k5MTVfZW5hYmxlX25vdGlmeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sK KwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQg aWQ7CisKKwlpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKworCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGk5MTUsIGlkKQorCQlpbnRlbF9lbmdpbmVfcGluX2JyZWFkY3J1bWJzX2lycShlbmdp bmUpOworCisJaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSk7Cit9CisKK3N0YXRpYyB2b2lkIF9f aTkxNV9kaXNhYmxlX25vdGlmeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7 CisKKwlpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGk5MTUsIGlkKQorCQlpbnRlbF9lbmdpbmVfdW5waW5fYnJlYWRjcnVtYnNfaXJxKGVuZ2lu ZSk7CisKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKK30KKworLyoqCisgKiBpOTE1X3Ry YWNpbmdfcmVnaXN0ZXIgLSByZWdpc3RlcnMgZHJpdmVyIHRyYWNlcG9pbnRzIHN1cHBvcnQKKyAq IEBpOTE1OiB0aGUgZHJtX2k5MTVfcHJpdmF0ZSBkZXZpY2UKKyAqCisgKiBSZWdpc3RlcnMgdGhl IHRyYWNlcG9pbnRzIHN1cHBvcnQgZnJvbSB0aGUgZHJpdmVyIHJlZ2lzdHJhdGlvbiBwYXRoLgor ICoKKyAqIFB1dHMgdGhlIGRyaXZlciBvbiB0aGUgbG9jYWwgbGlzdCBhbmQgZW5hYmxlcyB0aGUg dW5jb25kaXRpb25hbCBub3RpZmljYXRpb25zCisgKiBmb3IgdGhlIGludGVsX2VuZ2luZV9ub3Rp ZnkgdHJhY2Vwb2ludCBpZiB0aGV5IHNob3VsZCBiZSBlbmFibGVkLgorICovCit2b2lkIGk5MTVf dHJhY2luZ19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlJTklU X0xJU1RfSEVBRCgmaTkxNS0+dHJhY2luZ19saW5rKTsKKworCW11dGV4X2xvY2soJmRyaXZlcl9s aXN0X2xvY2spOworCisJbGlzdF9hZGRfdGFpbCgmaTkxNS0+dHJhY2luZ19saW5rLCAmZHJpdmVy X2xpc3QpOworCisJaWYgKG5vdGlmeV9lbmFibGVkKQorCQlfX2k5MTVfZW5hYmxlX25vdGlmeShp OTE1KTsKKworCW11dGV4X3VubG9jaygmZHJpdmVyX2xpc3RfbG9jayk7Cit9CisKKy8qKgorICog aTkxNV90cmFjaW5nX3VucmVnaXN0ZXIgLSB1bnJlZ2lzdGVycyBkcml2ZXIgdHJhY2Vwb2ludHMg c3VwcG9ydAorICogQGk5MTU6IHRoZSBkcm1faTkxNV9wcml2YXRlIGRldmljZQorICoKKyAqIFVu LXJlZ2lzdGVycyB0aGUgdHJhY2Vwb2ludHMgc3VwcG9ydCBmcm9tIHRoZSBkcml2ZXIgdW4tcmVn aXN0cmF0aW9uIHBhdGguCisgKgorICogUmVtb3ZlcyB0aGUgZHJpdmVyIGZyb20gdGhlIGxvY2Fs IGxpc3QgYW5kIGRpc2FibGVzIHRoZSB1bmNvbmRpdGlvbmFsCisgKiBub3RpZmljYXRpb25zIGZv ciB0aGUgaW50ZWxfZW5naW5lX25vdGlmeSB0cmFjZXBvaW50IGlmIHRoZXkgd2VyZSBlbmFibGVk LgorICovCit2b2lkIGk5MTVfdHJhY2luZ191bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQoreworCW11dGV4X2xvY2soJmRyaXZlcl9saXN0X2xvY2spOworCisJaWYgKG5v dGlmeV9lbmFibGVkKQorCQlfX2k5MTVfZGlzYWJsZV9ub3RpZnkoaTkxNSk7CisKKwlsaXN0X2Rl bCgmaTkxNS0+dHJhY2luZ19saW5rKTsKKworCW11dGV4X3VubG9jaygmZHJpdmVyX2xpc3RfbG9j ayk7Cit9CisKKy8qKgorICogaW50ZWxfZW5naW5lX25vdGlmeV90cmFjZXBvaW50X3JlZ2lzdGVy IC0gdHJhY2Vwb2ludCByZWdpc3RyYXRpb24gY2FsbGJhY2sKKyAqCisgKiBUaGlzIGlzIGNhbGxl ZCBhcyB0aGUgaW50ZWxfZW5naW5lX25vdGlmeSByZWdpc3RyYXRpb24gY2FsbGJhY2ssIGllLiB3 aGVuCisgKiB0aGUgdHJhY2Vwb2ludCBpcyBmaXJzdCBhY3RpdmF0ZWQuCisgKi8KK2ludCBpbnRl bF9lbmdpbmVfbm90aWZ5X3RyYWNlcG9pbnRfcmVnaXN0ZXIodm9pZCkKK3sKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNTsKKworCW11dGV4X2xvY2soJmRyaXZlcl9saXN0X2xvY2spOwor CisJR0VNX0JVR19PTihub3RpZnlfZW5hYmxlZCk7CisKKwkvKgorCSAqIEVuYWJsZSB1c2VyIGlu dGVycnVwdHMgLyBjb25zdGFudCBpbnRlbF9lbmdpbmVfbm90aWZ5IG5vdGlmaWNhdGlvbnMuCisJ ICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpOTE1LCAmZHJpdmVyX2xpc3QsIHRyYWNpbmdfbGlu aykKKwkJX19pOTE1X2VuYWJsZV9ub3RpZnkoaTkxNSk7CisKKwlub3RpZnlfZW5hYmxlZCA9IHRy dWU7CisKKwltdXRleF91bmxvY2soJmRyaXZlcl9saXN0X2xvY2spOworCisJcmV0dXJuIDA7Cit9 CisKKy8qKgorICogaW50ZWxfZW5naW5lX25vdGlmeV90cmFjZXBvaW50X3VucmVnaXN0ZXIgLSB0 cmFjZXBvaW50IHVucmVnaXN0cmF0aW9uIGNhbGxiYWNrCisgKgorICogVGhpcyBpcyBjYWxsZWQg YXMgdGhlIGludGVsX2VuZ2luZV9ub3RpZnkgdW5yZWdpc3RyYXRpb24gY2FsbGJhY2ssIGllLiB3 aGVuCisgKiB0aGUgbGFzdCBsaXN0ZW5lciBvZiB0aGlzIHRyYWNlcG9pbnQgZ29lcyBhd2F5Lgor ICovCit2b2lkIGludGVsX2VuZ2luZV9ub3RpZnlfdHJhY2Vwb2ludF91bnJlZ2lzdGVyKHZvaWQp Cit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CisKKwltdXRleF9sb2NrKCZkcml2 ZXJfbGlzdF9sb2NrKTsKKworCUdFTV9CVUdfT04oIW5vdGlmeV9lbmFibGVkKTsKKworCS8qCisJ ICogRGlzYWJsZSB1c2VyIGludGVycnVwdHMgLyBjb25zdGFudCBpbnRlbF9lbmdpbmVfbm90aWZ5 IG5vdGlmaWNhdGlvbnMuCisJICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpOTE1LCAmZHJpdmVy X2xpc3QsIHRyYWNpbmdfbGluaykKKwkJX19pOTE1X2Rpc2FibGVfbm90aWZ5KGk5MTUpOworCisJ bm90aWZ5X2VuYWJsZWQgPSBmYWxzZTsKKworCW11dGV4X3VubG9jaygmZHJpdmVyX2xpc3RfbG9j ayk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNpbmcuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uYzg5ZjJlZDE4ZTYzCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjaW5nLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAq IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisgKgorICogQ29weXJpZ2h0IMKpIDIw MTggSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKi8KKyNpZm5kZWYgX0k5MTVfVFJBQ0lOR19IXwor I2RlZmluZSBfSTkxNV9UUkFDSU5HX0hfCisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworCisj aWYgSVNfRU5BQkxFRChDT05GSUdfVFJBQ0VQT0lOVFMpCisKK3ZvaWQgaTkxNV90cmFjaW5nX3Jl Z2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaTkxNV90cmFjaW5n X3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworCitpbnQgaW50ZWxf ZW5naW5lX25vdGlmeV90cmFjZXBvaW50X3JlZ2lzdGVyKHZvaWQpOwordm9pZCBpbnRlbF9lbmdp bmVfbm90aWZ5X3RyYWNlcG9pbnRfdW5yZWdpc3Rlcih2b2lkKTsKKworI2Vsc2UKKworc3RhdGlj IGlubGluZSB2b2lkIGk5MTVfdHJhY2luZ19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV90cmFjaW5nX3VucmVnaXN0ZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpIHsgfQorCitzdGF0aWMgaW5saW5lIGludCBp bnRlbF9lbmdpbmVfbm90aWZ5X3RyYWNlcG9pbnRfcmVnaXN0ZXIodm9pZCkgeyB9CitzdGF0aWMg aW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX25vdGlmeV90cmFjZXBvaW50X3VucmVnaXN0ZXIodm9p ZCkgeyB9CisKKyNlbmRpZgorCisjZW5kaWYKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==