From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: [PATCH] drm/i915: Android sync points for i915 v2 Date: Mon, 4 Aug 2014 16:18:12 -0700 Message-ID: <1407194292-16218-1-git-send-email-jbarnes@virtuousgeek.org> References: <53DB3275.6010102@canonical.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from gproxy2-pub.mail.unifiedlayer.com (gproxy2-pub.mail.unifiedlayer.com [69.89.18.3]) by gabe.freedesktop.org (Postfix) with SMTP id 451256E42F for ; Mon, 4 Aug 2014 16:25:10 -0700 (PDT) In-Reply-To: <53DB3275.6010102@canonical.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: Maarten Lankhorst List-Id: intel-gfx@lists.freedesktop.org RXhwb3NlIGFuIGlvY3RsIHRvIGNyZWF0ZSBBbmRyb2lkIGZlbmNlcyBiYXNlZCBvbiB0aGUgQW5k cm9pZCBzeW5jIHBvaW50CmluZnJhc3RydWN0dXJlICh3aGljaCBpbiB0dXJuIGlzIGJhc2VkIG9u IERNQS1idWYgZmVuY2VzKS4gIEp1c3QgYQpza2V0Y2ggYXQgdGhpcyBwb2ludCwgbm8gdGVzdGlu ZyBoYXMgYmVlbiBkb25lLgoKVGhlcmUgYXJlIGEgY291cGxlIG9mIGdvYWxzIGhlcmU6CiAgMSkg YWxsb3cgYXBwbGljYXRpb25zIGFuZCBsaWJyYXJpZXMgdG8gY3JlYXRlIGZlbmNlcyB3aXRob3V0 IGFuCiAgICAgYXNzb2NpYXRlZCBidWZmZXIKICAyKSByZS11c2UgYSBjb21tb24gQVBJIHNvIHVz ZXJzcGFjZSBkb2Vzbid0IGhhdmUgdG8gaW1wZWRhbmNlIG1pc21hdGNoCiAgICAgYmV0d2VlbiBk aWZmZXJlbnQgZHJpdmVyIGltcGxlbWVudGF0aW9ucyB0b28gbXVjaAogIDMpIGFsbG93IGFwcGxp Y2F0aW9ucyBhbmQgbGlicmFyaWVzIHRvIHVzZSBleHBsaWNpdCBzeW5jaHJvbml6YXRpb24gaWYK ICAgICB0aGV5IGNob29zZSBieSBleHBvc2luZyBmZW5jZXMgZGlyZWN0bHkKCnYyOiB1c2Ugc3Ry dWN0IGZlbmNlIGRpcmVjdGx5IHVzaW5nIE1hYXJ0ZW4ncyBuZXcgaW50ZXJmYWNlCgpTaWduZWQt b2ZmLWJ5OiBKZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnICAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZSAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICB8 ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAxMCArKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgfCAgMTUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5bmMuYyB8 IDMyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaCAgICAgIHwgIDIzICsrKwogOCBmaWxlcyBjaGFuZ2VkLCAzNzMgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3N5bmMuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCmluZGV4IDRlMzlhYjMuLmNk MGYyZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZwpAQCAtNiw2ICs2LDggQEAgY29uZmlnIERSTV9JOTE1 CiAJc2VsZWN0IElOVEVMX0dUVAogCXNlbGVjdCBBR1BfSU5URUwgaWYgQUdQCiAJc2VsZWN0IElO VEVSVkFMX1RSRUUKKwlzZWxlY3QgQU5EUk9JRAorCXNlbGVjdCBTWU5DCiAJIyB3ZSBuZWVkIHNo bWZzIGZvciB0aGUgc3dhcHBhYmxlIGJhY2tpbmcgc3RvcmUsIGFuZCBpbiBwYXJ0aWN1bGFyCiAJ IyB0aGUgc2htZW1fcmVhZHBhZ2UoKSB3aGljaCBkZXBlbmRzIHVwb24gdG1wZnMKIAlzZWxlY3Qg U0hNRU0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggOTFiZDE2Ny4uNjFhM2ViNWMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L01ha2VmaWxlCkBAIC0yNSw2ICsyNSw3IEBAIGk5MTUteSArPSBpOTE1X2NtZF9wYXJzZXIu byBcCiAJICBpOTE1X2dlbV9leGVjYnVmZmVyLm8gXAogCSAgaTkxNV9nZW1fZ3R0Lm8gXAogCSAg aTkxNV9nZW0ubyBcCisJICBpOTE1X3N5bmMubyBcCiAJICBpOTE1X2dlbV9zdG9sZW4ubyBcCiAJ ICBpOTE1X2dlbV90aWxpbmcubyBcCiAJICBpOTE1X2dlbV91c2VycHRyLm8gXApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZG1hLmMKaW5kZXggMmU3ZjAzYS4uODQwODZlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rt YS5jCkBAIC0yMDQzLDYgKzIwNDMsNyBAQCBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgaTkx NV9pb2N0bHNbXSA9IHsKIAlEUk1fSU9DVExfREVGX0RSVihJOTE1X1JFR19SRUFELCBpOTE1X3Jl Z19yZWFkX2lvY3RsLCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RM X0RFRl9EUlYoSTkxNV9HRVRfUkVTRVRfU1RBVFMsIGk5MTVfZ2V0X3Jlc2V0X3N0YXRzX2lvY3Rs LCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkx NV9HRU1fVVNFUlBUUiwgaTkxNV9nZW1fdXNlcnB0cl9pb2N0bCwgRFJNX1VOTE9DS0VEfERSTV9S RU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0ZFTkNFLCBpOTE1X3N5 bmNfY3JlYXRlX2ZlbmNlX2lvY3RsLCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiB9 OwogCiBpbnQgaTkxNV9tYXhfaW9jdGwgPSBBUlJBWV9TSVpFKGk5MTVfaW9jdGxzKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCmluZGV4IGQ2MDRmNGYuLjZlYjExOWUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaApAQCAtMTM4OCw2ICsxMzg4LDggQEAgc3RydWN0IGk5MTVfZnJvbnRidWZmZXJfdHJh Y2tpbmcgewogCXVuc2lnbmVkIGZsaXBfYml0czsKIH07CiAKK3N0cnVjdCBpOTE1X3N5bmNfdGlt ZWxpbmU7CisKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2OwogCXN0cnVjdCBrbWVtX2NhY2hlICpzbGFiOwpAQCAtMTQyMiw2ICsxNDI0LDggQEAgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpzZW1h cGhvcmVfb2JqOwogCXVpbnQzMl90IGxhc3Rfc2Vxbm8sIG5leHRfc2Vxbm87CiAKKwlzdHJ1Y3Qg aTkxNV9zeW5jX3RpbWVsaW5lICpzeW5jX3RsW0k5MTVfTlVNX1JJTkdTXTsKKwogCWRybV9kbWFf aGFuZGxlX3QgKnN0YXR1c19wYWdlX2RtYWg7CiAJc3RydWN0IHJlc291cmNlIG1jaF9yZXM7CiAK QEAgLTIyNzUsNiArMjI3OSwxMiBAQCB2b2lkIGk5MTVfaW5pdF92bShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiB2b2lkIGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqKTsKIHZvaWQgaTkxNV9nZW1fdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVf dm1hICp2bWEpOwogCisvKiBpOTE1X3N5bmMuYyAqLworaW50IGk5MTVfc3luY19pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGk5MTVfc3luY19maW5pKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CitpbnQgaTkxNV9zeW5jX2NyZWF0ZV9mZW5j ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUpOworCiAjZGVmaW5lIFBJTl9NQVBQQUJMRSAweDEKICNkZWZpbmUgUElO X05PTkJMT0NLIDB4MgogI2RlZmluZSBQSU5fR0xPQkFMIDB4NApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKaW5kZXggZGNkOGQ3Yi4uYWNlNzE2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0x MTQ2LDExICsxMTQ2LDExIEBAIHN0YXRpYyBib29sIGNhbl93YWl0X2Jvb3N0KHN0cnVjdCBkcm1f aTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdikKICAqIFJldHVybnMgMCBpZiB0aGUgc2Vxbm8g d2FzIGZvdW5kIHdpdGhpbiB0aGUgYWxsb3RlZCB0aW1lLiBFbHNlIHJldHVybnMgdGhlCiAgKiBl cnJubyB3aXRoIHJlbWFpbmluZyB0aW1lIGZpbGxlZCBpbiB0aW1lb3V0IGFyZ3VtZW50LgogICov Ci1zdGF0aWMgaW50IF9fd2FpdF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1 MzIgc2Vxbm8sCi0JCQl1bnNpZ25lZCByZXNldF9jb3VudGVyLAotCQkJYm9vbCBpbnRlcnJ1cHRp YmxlLAotCQkJc3RydWN0IHRpbWVzcGVjICp0aW1lb3V0LAotCQkJc3RydWN0IGRybV9pOTE1X2Zp bGVfcHJpdmF0ZSAqZmlsZV9wcml2KQoraW50IF9fd2FpdF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLCB1MzIgc2Vxbm8sCisJCSB1bnNpZ25lZCByZXNldF9jb3VudGVyLAorCQkg Ym9vbCBpbnRlcnJ1cHRpYmxlLAorCQkgc3RydWN0IHRpbWVzcGVjICp0aW1lb3V0LAorCQkgc3Ry dWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2KQogewogCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSByaW5nLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTQ3NzUsNiArNDc3NSw5IEBAIGludCBpOTE1X2dlbV9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWF0b21pY19zZXRfbWFzayhJOTE1X1dFREdF RCwgJmRldl9wcml2LT5ncHVfZXJyb3IucmVzZXRfY291bnRlcik7CiAJCXJldCA9IDA7CiAJfQor CisJaTkxNV9zeW5jX2luaXQoZGV2X3ByaXYpOworCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7CiAKIAkvKiBBbGxvdyBoYXJkd2FyZSBiYXRjaGJ1ZmZlcnMgdW5sZXNzIHRvbGQg b3RoZXJ3aXNlLCBidXQgbm90IGZvciBLTVMuICovCkBAIC00OTcwLDYgKzQ5NzMsOCBAQCB2b2lk IGk5MTVfZ2VtX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxl ICpmaWxlKQogCQlyZXF1ZXN0LT5maWxlX3ByaXYgPSBOVUxMOwogCX0KIAlzcGluX3VubG9jaygm ZmlsZV9wcml2LT5tbS5sb2NrKTsKKworCWk5MTVfc3luY19maW5pKGRldi0+ZGV2X3ByaXZhdGUp OwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggOThhYmMyMi4u MTQ5ZTA4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j bHVkZSA8bGludXgvY2lyY19idWYuaD4KICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUg PGRybS9pOTE1X2RybS5oPgorI2luY2x1ZGUgIi4uLy4uLy4uL3N0YWdpbmcvYW5kcm9pZC9zeW5j LmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5j bHVkZSAiaW50ZWxfZHJ2LmgiCkBAIC0yNjE3LDggKzI2MTgsOSBAQCBzdGF0aWMgdm9pZCBpOTE1 X2Vycm9yX3dha2VfdXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqLwog CiAJLyogV2FrZSB1cCBfX3dhaXRfc2Vxbm8sIHBvdGVudGlhbGx5IGhvbGRpbmcgZGV2LT5zdHJ1 Y3RfbXV0ZXguICovCi0JZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFj aF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7CiAJCXdha2VfdXBfYWxsKCZyaW5nLT5pcnFfcXVl dWUpOworCX0KIAogCS8qIFdha2UgdXAgaW50ZWxfY3J0Y193YWl0X2Zvcl9wZW5kaW5nX2ZsaXBz LCBob2xkaW5nIGNydGMtPm11dGV4LiAqLwogCXdha2VfdXBfYWxsKCZkZXZfcHJpdi0+cGVuZGlu Z19mbGlwX3F1ZXVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lu Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeW5jLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNDkzODYxNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfc3luYy5jCkBAIC0wLDAgKzEsMzIzIEBACisvKgorICogQ29weXJpZ2h0 IMKpIDIwMTQgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAor ICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQK KyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhP UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg T1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJ TiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqICAgIEplc3NlIEJhcm5lcyA8amJh cm5lc0B2aXJ0dW91c2dlZWsub3JnPgorICoKKyAqLworCisjaW5jbHVkZSA8ZHJtL2RybVAuaD4K KyNpbmNsdWRlIDxkcm0vZHJtX3ZtYV9tYW5hZ2VyLmg+CisjaW5jbHVkZSA8ZHJtL2k5MTVfZHJt Lmg+CisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCisjaW5j bHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSA8bGludXgvb29tLmg+CisjaW5jbHVkZSA8bGlu dXgvc2htZW1fZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgv c3dhcC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYu aD4KKyNpbmNsdWRlICIuLi8uLi8uLi9zdGFnaW5nL2FuZHJvaWQvc3luYy5oIgorCisvKiBOb3Ro aW5nIHJlYWxseSB0byBwcm90ZWN0IGhlcmUuLi4gKi8KK3NwaW5sb2NrX3QgZmVuY2VfbG9jazsK KworLyoKKyAqIGk5MTUgZmVuY2VzIG9uIHN5bmMgdGltZWxpbmVzCisgKgorICogV2UgaW1wbGVt ZW50IHN5bmMgcG9pbnRzIGluIHRlcm1zIG9mIGk5MTUgc2Vxbm9zLiAgVGhleSdyZSBleHBvc2Vk CisgKiB0aHJvdWdoIHRoZSBuZXcgRFJNX0k5MTVfR0VNX0ZFTkNFIGlvY3RsLCBhbmQgY2FuIGJl IG1peGVkIGFuZCBtYXRjaGVkCisgKiB3aXRoIG90aGVyIEFuZHJvaWQgdGltZWxpbmVzIGFuZCBh Z2dyZWdhdGVkIGludG8gc3luY19mZW5jZXMsIGV0Yy4KKyAqCisgKiBUT0RPOgorICogICByZWJh c2Ugb24gdG9wIG9mIENocmlzJ3Mgc2Vxbm8vcmVxdWVzdCBzdHVmZiBhbmQgdXNlIHJlcXVlc3Rz CisgKiAgIGFsbG93IG5vbi1SQ1MgZmVuY2VzIChuZWVkIHJpbmcvY29udGV4dCBhc3NvY2lhdGlv bikKKyAqLworCitzdHJ1Y3QgaTkxNV9mZW5jZSB7CisJc3RydWN0IGZlbmNlIGJhc2U7CisJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4Owor CXdhaXRfcXVldWVfdCB3YWl0OworCXUzMiBzZXFubzsKK307CisKKyNkZWZpbmUgdG9faW50ZWxf ZmVuY2UoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpOTE1X2ZlbmNlLCBiYXNlKQorCitpbnQg X193YWl0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiBzZXFubywKKwkJ IHVuc2lnbmVkIHJlc2V0X2NvdW50ZXIsCisJCSBib29sIGludGVycnVwdGlibGUsCisJCSBzdHJ1 Y3QgdGltZXNwZWMgKnRpbWVvdXQsCisJCSBzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpm aWxlX3ByaXYpOworCitzdGF0aWMgY29uc3QgY2hhciAqaTkxNV9mZW5jZV9nZXRfZHJpdmVyX25h bWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3sKKwlyZXR1cm4gImk5MTUiOworfQorCitzdGF0aWMg Y29uc3QgY2hhciAqaTkxNV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKmZl bmNlKQoreworCXN0cnVjdCBpOTE1X2ZlbmNlICppbnRlbF9mZW5jZSA9IHRvX2ludGVsX2ZlbmNl KGZlbmNlKTsKKworCXJldHVybiBpbnRlbF9mZW5jZS0+cmluZy0+bmFtZTsKK30KKworc3RhdGlj IGludCBpOTE1X2ZlbmNlX2NoZWNrKHdhaXRfcXVldWVfdCAqd2FpdCwgdW5zaWduZWQgbW9kZSwg aW50IGZsYWdzLAorCQkJICAgIHZvaWQgKmtleSkKK3sKKwlzdHJ1Y3QgaTkxNV9mZW5jZSAqaW50 ZWxfZmVuY2UgPSB3YWl0LT5wcml2YXRlOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcg PSBpbnRlbF9mZW5jZS0+cmluZzsKKworCWlmICghaTkxNV9zZXFub19wYXNzZWQocmluZy0+Z2V0 X3NlcW5vKHJpbmcsIGZhbHNlKSwKKwkJCSAgICAgICBpbnRlbF9mZW5jZS0+c2Vxbm8pKQorCQly ZXR1cm4gMDsKKworCWZlbmNlX3NpZ25hbF9sb2NrZWQoJmludGVsX2ZlbmNlLT5iYXNlKTsKKwor CV9fcmVtb3ZlX3dhaXRfcXVldWUoJnJpbmctPmlycV9xdWV1ZSwgd2FpdCk7CisJZmVuY2VfcHV0 KCZpbnRlbF9mZW5jZS0+YmFzZSk7CisJcmluZy0+aXJxX3B1dChyaW5nKTsKKworCXJldHVybiAw OworfQorCitzdGF0aWMgYm9vbCBpOTE1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZl bmNlICpmZW5jZSkKK3sKKwlzdHJ1Y3QgaTkxNV9mZW5jZSAqaW50ZWxfZmVuY2UgPSB0b19pbnRl bF9mZW5jZShmZW5jZSk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IGludGVsX2Zl bmNlLT5yaW5nOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRl di0+ZGV2X3ByaXZhdGU7CisJd2FpdF9xdWV1ZV90ICp3YWl0ID0gJmludGVsX2ZlbmNlLT53YWl0 OworCisJLyogcXVldWUgZmVuY2Ugd2FpdCBxdWV1ZSBvbiBpcnEgcXVldWUgYW5kIGdldCBmZW5j ZSAqLworCWlmIChpOTE1X3NlcW5vX3Bhc3NlZChyaW5nLT5nZXRfc2Vxbm8ocmluZywgZmFsc2Up LAorCQkJICAgICAgaW50ZWxfZmVuY2UtPnNlcW5vKSB8fAorCSAgICBpOTE1X3Rlcm1pbmFsbHlf d2VkZ2VkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKCFy aW5nLT5pcnFfZ2V0KHJpbmcpKQorCQlyZXR1cm4gZmFsc2U7CisKKwl3YWl0LT5mbGFncyA9IDA7 CisJd2FpdC0+cHJpdmF0ZSA9IGludGVsX2ZlbmNlOworCXdhaXQtPmZ1bmMgPSBpOTE1X2ZlbmNl X2NoZWNrOworCisJX19hZGRfd2FpdF9xdWV1ZSgmcmluZy0+aXJxX3F1ZXVlLCB3YWl0KTsKKwlm ZW5jZV9nZXQoZmVuY2UpOworCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIGk5MTVf ZmVuY2Vfc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3sKKwlzdHJ1Y3QgaTkxNV9mZW5j ZSAqaW50ZWxfZmVuY2UgPSB0b19pbnRlbF9mZW5jZShmZW5jZSk7CisJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZyA9IGludGVsX2ZlbmNlLT5yaW5nOworCisJcmV0dXJuIGk5MTVfc2Vxbm9f cGFzc2VkKHJpbmctPmdldF9zZXFubyhyaW5nLCBmYWxzZSksCisJCQkJIGludGVsX2ZlbmNlLT5z ZXFubyk7Cit9CisKK3N0YXRpYyBzaWduZWQgbG9uZyBpOTE1X2ZlbmNlX3dhaXQoc3RydWN0IGZl bmNlICpmZW5jZSwgYm9vbCBpbnRyLAorCQkJCSAgIHNpZ25lZCBsb25nIHRpbWVvdXQpCit7CisJ c3RydWN0IGk5MTVfZmVuY2UgKmludGVsX2ZlbmNlID0gdG9faW50ZWxfZmVuY2UoZmVuY2UpOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGludGVsX2ZlbmNlLT5yaW5nLT5k ZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCB0aW1lc3BlYyB0czsKKwlpbnQgcmV0OworCisJamlm Zmllc190b190aW1lc3BlYyh0aW1lb3V0LCAmdHMpOworCisJcmV0ID0gX193YWl0X3NlcW5vKGlu dGVsX2ZlbmNlLT5yaW5nLCBpbnRlbF9mZW5jZS0+c2Vxbm8sCisJCQkgICBhdG9taWNfcmVhZCgm ZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKSwKKwkJCSAgIGludHIsICZ0cywgTlVM TCk7CisJaWYgKHJldCA9PSAtRVRJTUUpCisJCXJldHVybiB0aW1lc3BlY190b19qaWZmaWVzKCZ0 cyk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGk5MTVfZmVuY2VfZmlsbF9kcml2 ZXJfZGF0YShzdHJ1Y3QgZmVuY2UgKmZlbmNlLCB2b2lkICpkYXRhLAorCQkJCSAgICAgIGludCBz aXplKQoreworCXN0cnVjdCBpOTE1X2ZlbmNlICppbnRlbF9mZW5jZSA9IHRvX2ludGVsX2ZlbmNl KGZlbmNlKTsKKworCWlmIChzaXplIDwgc2l6ZW9mKGludGVsX2ZlbmNlLT5zZXFubykpCisJCXJl dHVybiAtRU5PTUVNOworCisJbWVtY3B5KGRhdGEsICZpbnRlbF9mZW5jZS0+c2Vxbm8sIHNpemVv ZihpbnRlbF9mZW5jZS0+c2Vxbm8pKTsKKworCXJldHVybiBzaXplb2YoaW50ZWxfZmVuY2UtPnNl cW5vKTsKK30KKworc3RhdGljIHZvaWQgaTkxNV9mZW5jZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNl ICpmZW5jZSwgY2hhciAqc3RyLCBpbnQgc2l6ZSkKK3sKKwlzdHJ1Y3QgaTkxNV9mZW5jZSAqaW50 ZWxfZmVuY2UgPSB0b19pbnRlbF9mZW5jZShmZW5jZSk7CisKKwlzbnByaW50ZihzdHIsIHNpemUs ICIldSIsIGludGVsX2ZlbmNlLT5zZXFubyk7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfZmVuY2Vf dGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwKKwkJCQkJ ICBpbnQgc2l6ZSkKK3sKKwlzdHJ1Y3QgaTkxNV9mZW5jZSAqaW50ZWxfZmVuY2UgPSB0b19pbnRl bF9mZW5jZShmZW5jZSk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IGludGVsX2Zl bmNlLT5yaW5nOworCisJc25wcmludGYoc3RyLCBzaXplLCAiJXUiLCByaW5nLT5nZXRfc2Vxbm8o cmluZywgZmFsc2UpKTsKK30KKworc3RhdGljIHN0cnVjdCBmZW5jZV9vcHMgaTkxNV9mZW5jZV9v cHMgPSB7CisJLmdldF9kcml2ZXJfbmFtZSA9IAlpOTE1X2ZlbmNlX2dldF9kcml2ZXJfbmFtZSwK KwkuZ2V0X3RpbWVsaW5lX25hbWUgPQlpOTE1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAorCS5l bmFibGVfc2lnbmFsaW5nID0JaTkxNV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLAorCS5zaWduYWxl ZCA9CQlpOTE1X2ZlbmNlX3NpZ25hbGVkLAorCS53YWl0ID0JCQlpOTE1X2ZlbmNlX3dhaXQsCisJ LmZpbGxfZHJpdmVyX2RhdGEgPQlpOTE1X2ZlbmNlX2ZpbGxfZHJpdmVyX2RhdGEsCisJLmZlbmNl X3ZhbHVlX3N0ciA9CWk5MTVfZmVuY2VfdmFsdWVfc3RyLAorCS50aW1lbGluZV92YWx1ZV9zdHIg PQlpOTE1X2ZlbmNlX3RpbWVsaW5lX3ZhbHVlX3N0ciwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmVu Y2UgKmk5MTVfZmVuY2VfY3JlYXRlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCisJCQkJ ICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCit7CisJc3RydWN0IGk5MTVfZmVuY2Ug KmZlbmNlOworCWludCByZXQ7CisKKwlmZW5jZSA9IGt6YWxsb2Moc2l6ZW9mKCpmZW5jZSksIEdG UF9LRVJORUwpOworCWlmICghZmVuY2UpCisJCXJldHVybiBOVUxMOworCisJcmV0ID0gcmluZy0+ YWRkX3JlcXVlc3QocmluZyk7CisJaWYgKHJldCkgeworCQlEUk1fRVJST1IoImFkZF9yZXF1ZXN0 IGZhaWxlZFxuIik7CisJCWZlbmNlX2ZyZWUoKHN0cnVjdCBmZW5jZSAqKWZlbmNlKTsKKwkJcmV0 dXJuIE5VTEw7CisJfQorCisJZmVuY2UtPnJpbmcgPSByaW5nOworCWZlbmNlLT5jdHggPSBjdHg7 CisJZmVuY2UtPnNlcW5vID0gcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubzsKKwlmZW5jZV9p bml0KCZmZW5jZS0+YmFzZSwgJmk5MTVfZmVuY2Vfb3BzLCAmZmVuY2VfbG9jaywgY3R4LT51c2Vy X2hhbmRsZSwKKwkJICAgZmVuY2UtPnNlcW5vKTsKKworCXJldHVybiAmZmVuY2UtPmJhc2U7Cit9 CisKKy8qKgorICogaTkxNV9zeW5jX2NyZWF0ZV9mZW5jZV9pb2N0bCAtIGZlbmNlIGNyZWF0aW9u IGZ1bmN0aW9uCisgKiBAZGV2OiBkcm0gZGV2aWNlCisgKiBAZGF0YTogaW9jdGwgZGF0YQorICog QGZpbGU6IGZpbGUgc3RydWN0CisgKgorICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgZmVuY2Ug Z2l2ZW4gYSBjb250ZXh0IGFuZCByaW5nLCBhbmQgcmV0dXJucworICogaXQgdG8gdGhlIGNhbGxl ciBpbiB0aGUgZm9ybSBvZiBhIGZpbGUgZGVzY3JpcHRvci4KKyAqCisgKiBUaGUgcmV0dXJuZWQg ZGVzY3JpcHRvciBpcyBhIHN5bmMgZmVuY2UgZmQsIGFuZCBjYW4gYmUgdXNlZCB3aXRoIGFsbAor ICogdGhlIHVzdWFsIHN5bmMgZmVuY2Ugb3BlcmF0aW9ucyAocG9sbCwgaW9jdGwsIGV0YykuCisg KgorICogVGhlIHByb2Nlc3MgZmQgbGltaXQgc2hvdWxkIHByZXZlbnQgYW4gb3ZlcmFsbG9jYXRp b24gb2YgZmVuY2Ugb2JqZWN0cywKKyAqIHdoaWNoIG5lZWQgdG8gYmUgZGVzdHJveWVkIG1hbnVh bGx5IHdpdGggYSBjbG9zZSgpIGNhbGwuCisgKi8KK2ludCBpOTE1X3N5bmNfY3JlYXRlX2ZlbmNl X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJIHN0cnVjdCBk cm1fZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9nZW1fZmVuY2UgKmZkYXRhID0gZGF0 YTsKKwlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBzeW5jX2ZlbmNlICpzZmVuY2U7CisJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4 OworCXUzMiBjdHhfaWQgPSBmZGF0YS0+Y3R4X2lkOworCWludCBmZCA9IGdldF91bnVzZWRfZmRf ZmxhZ3MoT19DTE9FWEVDKTsKKwlpbnQgcmV0ID0gMDsKKworCWlmIChmaWxlID09IE5VTEwpIHsK KwkJRFJNX0VSUk9SKCJubyBmaWxlIHByaXY/XG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQor CisJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2KTsKKwlpZiAocmV0KSB7 CisJCURSTV9FUlJPUigibXV0ZXggaW50ZXJydXB0ZWRcbiIpOworCQlnb3RvIG91dDsKKwl9CisK KwljdHggPSBpOTE1X2dlbV9jb250ZXh0X2dldChmaWxlLT5kcml2ZXJfcHJpdiwgY3R4X2lkKTsK KwlpZiAoY3R4ID09IE5VTEwpIHsKKwkJRFJNX0VSUk9SKCJjb250ZXh0IGxvb2t1cCBmYWlsZWRc biIpOworCQlyZXQgPSAtRU5PRU5UOworCQlnb3RvIGVycjsKKwl9CisKKwlyaW5nID0gJmRldl9w cml2LT5yaW5nW1JDU107CisKKwlpZiAoIWludGVsX3JpbmdfaW5pdGlhbGl6ZWQocmluZykpIHsK KwkJRFJNX0VSUk9SKCJyaW5nIG5vdCByZWFkeVxuIik7CisJCXJldCA9IC1FSU87CisJCWdvdG8g ZXJyOworCX0KKworCWZlbmNlID0gaTkxNV9mZW5jZV9jcmVhdGUocmluZywgY3R4KTsKKwlpZiAo IWZlbmNlKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyOworCX0KKworCWZkYXRhLT5u YW1lW3NpemVvZihmZGF0YS0+bmFtZSkgLSAxXSA9ICdcMCc7CisJc2ZlbmNlID0gc3luY19mZW5j ZV9jcmVhdGVfZG1hKGZkYXRhLT5uYW1lLCBmZW5jZSk7CisJaWYgKCFzZmVuY2UpIHsKKwkJcmV0 ID0gLUVOT01FTTsKKwkJZ290byBlcnI7CisJfQorCisJZmRhdGEtPmZkID0gZmQ7CisKKwlzeW5j X2ZlbmNlX2luc3RhbGwoc2ZlbmNlLCBmZCk7CisKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0 X211dGV4KTsKK291dDoKKwlyZXR1cm4gcmV0OworCitlcnI6CisJbXV0ZXhfdW5sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7CisJcHV0X3VudXNlZF9mZChmZCk7CisJcmV0dXJuIHJldDsKK30KKwor aW50IGk5MTVfc3luY19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sK KwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOworCWludCBpLCByZXQgPSAwOworCisJZm9y X2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgeworCQkvKiBGSVhNRTogbm9uLVJDUyBmZW5j ZXMgKi8KKwl9CisKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGk5MTVfc3luY19maW5pKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7 IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7CisJfQorfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91 YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCmluZGV4IGZm NTdmMDcuLjY1YmQyNzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAor KysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTIyNCw2ICsyMjQsNyBAQCB0eXBl ZGVmIHN0cnVjdCBfZHJtX2k5MTVfc2FyZWEgewogI2RlZmluZSBEUk1fSTkxNV9SRUdfUkVBRAkJ MHgzMQogI2RlZmluZSBEUk1fSTkxNV9HRVRfUkVTRVRfU1RBVFMJMHgzMgogI2RlZmluZSBEUk1f STkxNV9HRU1fVVNFUlBUUgkJMHgzMworI2RlZmluZSBEUk1fSTkxNV9HRU1fRkVOQ0UJCTB4MzQK IAogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9JTklUCQlEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNF ICsgRFJNX0k5MTVfSU5JVCwgZHJtX2k5MTVfaW5pdF90KQogI2RlZmluZSBEUk1fSU9DVExfSTkx NV9GTFVTSAkJRFJNX0lPICggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0ZMVVNIKQpAQCAt Mjc1LDYgKzI3Niw3IEBAIHR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9zYXJlYSB7CiAjZGVmaW5l IERSTV9JT0NUTF9JOTE1X1JFR19SRUFECQkJRFJNX0lPV1IgKERSTV9DT01NQU5EX0JBU0UgKyBE Uk1fSTkxNV9SRUdfUkVBRCwgc3RydWN0IGRybV9pOTE1X3JlZ19yZWFkKQogI2RlZmluZSBEUk1f SU9DVExfSTkxNV9HRVRfUkVTRVRfU1RBVFMJCURSTV9JT1dSIChEUk1fQ09NTUFORF9CQVNFICsg RFJNX0k5MTVfR0VUX1JFU0VUX1NUQVRTLCBzdHJ1Y3QgZHJtX2k5MTVfcmVzZXRfc3RhdHMpCiAj ZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9VU0VSUFRSCQkJRFJNX0lPV1IgKERSTV9DT01NQU5E X0JBU0UgKyBEUk1fSTkxNV9HRU1fVVNFUlBUUiwgc3RydWN0IGRybV9pOTE1X2dlbV91c2VycHRy KQorI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fRkVOQ0UJCQlEUk1fSU9XUiAoRFJNX0NPTU1B TkRfQkFTRSArIERSTV9JOTE1X0dFTV9GRU5DRSwgc3RydWN0IGRybV9pOTE1X2dlbV9mZW5jZSkK IAogLyogQWxsb3cgZHJpdmVycyB0byBzdWJtaXQgYmF0Y2hidWZmZXJzIGRpcmVjdGx5IHRvIGhh cmR3YXJlLCByZWx5aW5nCiAgKiBvbiB0aGUgc2VjdXJpdHkgbWVjaGFuaXNtcyBwcm92aWRlZCBi eSBoYXJkd2FyZS4KQEAgLTEwNjYsNCArMTA2OCwyNSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Vz ZXJwdHIgewogCV9fdTMyIGhhbmRsZTsKIH07CiAKKy8qKgorICogZHJtX2k5MTVfZ2VtX2ZlbmNl IC0gY3JlYXRlIGEgZmVuY2UKKyAqIEBmZDogZmQgZm9yIGZlbmNlCisgKiBAY3R4X2lkOiBjb250 ZXh0IElEIGZvciBmZW5jZQorICogQGZsYWdzOiBmbGFncyBmb3Igb3BlcmF0aW9uCisgKgorICog Q3JlYXRlcyBhIGZlbmNlIGluIEBmZCBhbmQgcmV0dXJucyBpdCB0byB0aGUgY2FsbGVyLiAgVGhp cyBmZCBjYW4gYmUKKyAqIHBhc3NlZCBhcm91bmQgYmV0d2VlbiBwcm9jZXNzZXMgYXMgYW55IG90 aGVyIGZkLCBhbmQgY2FuIGJlIHBvbGwnZAorICogYW5kIHJlYWQgZm9yIHN0YXR1cy4KKyAqCisg KiBSRVRVUk5TOgorICogQSB2YWxpZCBmZCBpbiB0aGUgQGZkIGZpZWxkIG9yIGFuIGVycm5vIG9u IGVycm9yLgorICovCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2ZlbmNlIHsKKwlfX3MzMiBmZDsKKwlf X3UzMiBjdHhfaWQ7CisJX191MzIgZmxhZ3M7CisJX191MzIgcGFkOworCWNoYXIgbmFtZVszMl07 Cit9OworCiAjZW5kaWYgLyogX1VBUElfSTkxNV9EUk1fSF8gKi8KLS0gCjEuOS4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=