From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 39/41] drm/i915: Enable multiple timelines Date: Thu, 20 Oct 2016 16:04:21 +0100 Message-ID: <20161020150423.4560-40-chris@chris-wilson.co.uk> References: <20161020150423.4560-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x242.google.com (mail-lf0-x242.google.com [IPv6:2a00:1450:4010:c07::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5283E6EB9C for ; Thu, 20 Oct 2016 15:05:13 +0000 (UTC) Received: by mail-lf0-x242.google.com with SMTP id l131so461096lfl.0 for ; Thu, 20 Oct 2016 08:05:13 -0700 (PDT) In-Reply-To: <20161020150423.4560-1-chris@chris-wilson.co.uk> 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 V2l0aCB0aGUgaW5mcmFzdHJ1Y3R1cmUgY29udmVydGVkIG92ZXIgdG8gdHJhY2tpbmcgbXVsdGlw bGUgdGltZWxpbmVzIGluCnRoZSBHRU0gQVBJIHdoaWxzdCBwcmVzZXJ2aW5nIHRoZSBlZmZpY2ll bmN5IG9mIHVzaW5nIGEgc2luZ2xlIGV4ZWN1dGlvbgp0aW1lbGluZSBpbnRlcm5hbGx5LCB3ZSBj YW4gbm93IGFzc2lnbiBhIHNlcGFyYXRlIHRpbWVsaW5lIHRvIGV2ZXJ5CmNvbnRleHQgd2l0aCBm dWxsLXBwZ3R0LgoKdjI6IEFkZCBhIGNvbW1lbnQgdG8gaW5kaWNhdGUgdGhlIHhmZXIgYmV0d2Vl biB0aW1lbGluZXMgdXBvbiBzdWJtaXNzaW9uLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgICB8IDEwICsrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgICB8IDEwICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3Qu YyAgICB8IDExICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAg ICB8IDE5ICsrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oICAg ICAgfCAgNCArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyAgfCA2 MSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fdGltZWxpbmUuYyB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3RpbWVsaW5lLmggfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oICB8ICA1IC0tLQogMTAgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgNTEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggYzQ4ZTRmZDRmOGIwLi5mZjdj MDg1NjQyZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMzUzNiw2ICszNTM2LDE2IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9jb250ZXh0X3B1dChzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4KQogCWtyZWZfcHV0KCZjdHgtPnJlZiwgaTkxNV9nZW1fY29udGV4dF9mcmVl KTsKIH0KIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKgoraTkxNV9nZW1f Y29udGV4dF9sb29rdXBfdGltZWxpbmUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJ CQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtOworCisJdm0gPSBjdHgtPnBwZ3R0ID8gJmN0eC0+cHBndHQtPmJhc2UgOiAm Y3R4LT5pOTE1LT5nZ3R0LmJhc2U7CisJcmV0dXJuICZ2bS0+dGltZWxpbmUuZW5naW5lW2VuZ2lu ZS0+aWRdOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fY29udGV4dF9pc19kZWZh dWx0KGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjKQogewogCXJldHVybiBjLT51c2Vy X2hhbmRsZSA9PSBERUZBVUxUX0NPTlRFWFRfSEFORExFOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK aW5kZXggMzhmN2JhZDAxNWJkLi5lNTIwOTk4ZDM2MDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YwpAQCAtMjU2NywxMiArMjU2Nyw5IEBAIGk5MTVfZ2VtX2ZpbmRfYWN0aXZlX3JlcXVlc3Qoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCSAqIG5vdCBuZWVkIGFuIGVuZ2luZS0+aXJx X3NlcW5vX2JhcnJpZXIoKSBiZWZvcmUgdGhlIHNlcW5vIHJlYWRzLgogCSAqLwogCWxpc3RfZm9y X2VhY2hfZW50cnkocmVxdWVzdCwgJmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3RzLCBsaW5rKSB7 Ci0JCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXF1ZXN0KSkKKwkJaWYgKF9faTkx NV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxdWVzdCkpCiAJCQljb250aW51ZTsKIAotCQlpZiAo IWk5MTVfc3dfZmVuY2VfZG9uZSgmcmVxdWVzdC0+c3VibWl0KSkKLQkJCWJyZWFrOwotCiAJCXJl dHVybiByZXF1ZXN0OwogCX0KIApAQCAtMjYwMCw2ICsyNTk3LDcgQEAgc3RhdGljIHZvaWQgaTkx NV9nZW1fcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CiAJc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmluY29tcGxldGVfY3R4OworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmU7 CiAJYm9vbCByaW5nX2h1bmc7CiAKIAlpZiAoZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcikKQEAg LTI2MzgsNiArMjYzNiwxMCBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGlu dWUocmVxdWVzdCwgJmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3RzLCBsaW5rKQogCQlpZiAocmVx dWVzdC0+Y3R4ID09IGluY29tcGxldGVfY3R4KQogCQkJcmVzZXRfcmVxdWVzdChyZXF1ZXN0KTsK KworCXRpbWVsaW5lID0gaTkxNV9nZW1fY29udGV4dF9sb29rdXBfdGltZWxpbmUoaW5jb21wbGV0 ZV9jdHgsIGVuZ2luZSk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAmdGltZWxpbmUt PnJlcXVlc3RzLCBsaW5rKQorCQlyZXNldF9yZXF1ZXN0KHJlcXVlc3QpOwogfQogCiB2b2lkIGk5 MTVfZ2VtX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCBkMzExOGRiMjQ0YzQuLjQ2MWFlY2U2 YzViZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtMzY1LDkg KzM2NSw5IEBAIGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJCXJldHVybiBjdHg7CiAKIAlpZiAoVVNFU19GVUxMX1BQR1RUKGRldikpIHsKLQkJc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0KLQkJCWk5MTVfcHBndHRfY3JlYXRlKHRvX2k5MTUoZGV2 KSwgZmlsZV9wcml2KTsKKwkJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0OwogCisJCXBwZ3R0 ID0gaTkxNV9wcGd0dF9jcmVhdGUodG9faTkxNShkZXYpLCBmaWxlX3ByaXYsIGN0eC0+bmFtZSk7 CiAJCWlmIChJU19FUlIocHBndHQpKSB7CiAJCQlEUk1fREVCVUdfRFJJVkVSKCJQUEdUVCBzZXR1 cCBmYWlsZWQgKCVsZClcbiIsCiAJCQkJCSBQVFJfRVJSKHBwZ3R0KSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZXZpY3QuYwppbmRleCA3OWI5NjQxNTJjZDkuLmJkMDg4MTRiMDE1YyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCkBAIC0zMywxNCArMzMsMTcgQEAKICNp bmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAKLXN0YXRpYyBi b29sCi1ncHVfaXNfaWRsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0 aWMgYm9vbCBnZ3R0X2lzX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog eworCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7CiAJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCiAJZm9y X2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7Ci0JCWlmIChpbnRlbF9lbmdpbmVf aXNfYWN0aXZlKGVuZ2luZSkpCisJCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGw7CisKKwkJdGwg PSAmZ2d0dC0+YmFzZS50aW1lbGluZS5lbmdpbmVbZW5naW5lLT5pZF07CisJCWlmIChpOTE1X2dl bV9hY3RpdmVfaXNzZXQoJnRsLT5sYXN0X3JlcXVlc3QpKQogCQkJcmV0dXJuIGZhbHNlOwogCX0K IApAQCAtMTU0LDcgKzE1Nyw3IEBAIGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSwKIAlpZiAoIWk5MTVfaXNfZ2d0dCh2bSkgfHwgZmxhZ3MgJiBQ SU5fTk9OQkxPQ0spCiAJCXJldHVybiAtRU5PU1BDOwogCi0JaWYgKGdwdV9pc19pZGxlKGRldl9w cml2KSkgeworCWlmIChnZ3R0X2lzX2lkbGUoZGV2X3ByaXYpKSB7CiAJCS8qIElmIHdlIHN0aWxs IGhhdmUgcGVuZGluZyBwYWdlZmxpcCBjb21wbGV0aW9ucywgZHJvcAogCQkgKiBiYWNrIHRvIHVz ZXJzcGFjZSB0byBnaXZlIG91ciB3b3JrcXVldWVzIHRpbWUgdG8KIAkJICogYWNxdWlyZSBvdXIg bG9ja3MgYW5kIHVucGluIHRoZSBvbGQgc2Nhbm91dHMuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCmluZGV4IDFiMWE0NTllMmI2OC4uZTdhZmFkNTg1OTI5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwpAQCAtMjE4NSw4ICsyMTg1LDEwIEBAIHN0YXRpYyBpbnQgX19od19w cGd0dF9pbml0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwKIH0KIAogc3RhdGljIHZvaWQg aTkxNV9hZGRyZXNzX3NwYWNlX2luaXQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0J CQkJICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKKwkJCQkgICAgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgICBjb25zdCBjaGFyICpuYW1lKQog eworCWk5MTVfZ2VtX3RpbWVsaW5lX2luaXQoZGV2X3ByaXYsICZ2bS0+dGltZWxpbmUsIG5hbWUp OwogCWRybV9tbV9pbml0KCZ2bS0+bW0sIHZtLT5zdGFydCwgdm0tPnRvdGFsKTsKIAlJTklUX0xJ U1RfSEVBRCgmdm0tPmFjdGl2ZV9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmdm0tPmluYWN0aXZl X2xpc3QpOwpAQCAtMjIxNSwxNCArMjIxNywxNSBAQCBzdGF0aWMgdm9pZCBndHRfd3JpdGVfd29y a2Fyb3VuZHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogc3RhdGljIGludCBpOTE1X3BwZ3R0 X2luaXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAogCQkJICAgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICAgc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAq ZmlsZV9wcml2KQorCQkJICAgc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2 LAorCQkJICAgY29uc3QgY2hhciAqbmFtZSkKIHsKIAlpbnQgcmV0OwogCiAJcmV0ID0gX19od19w cGd0dF9pbml0KHBwZ3R0LCBkZXZfcHJpdik7CiAJaWYgKHJldCA9PSAwKSB7CiAJCWtyZWZfaW5p dCgmcHBndHQtPnJlZik7Ci0JCWk5MTVfYWRkcmVzc19zcGFjZV9pbml0KCZwcGd0dC0+YmFzZSwg ZGV2X3ByaXYpOworCQlpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdCgmcHBndHQtPmJhc2UsIGRldl9w cml2LCBuYW1lKTsKIAkJcHBndHQtPmJhc2UuZmlsZSA9IGZpbGVfcHJpdjsKIAl9CiAKQEAgLTIy NTgsNyArMjI2MSw4IEBAIGludCBpOTE1X3BwZ3R0X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAogc3RydWN0IGk5MTVfaHdfcHBndHQgKgogaTkxNV9wcGd0dF9jcmVhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkgIHN0cnVjdCBkcm1faTkxNV9maWxlX3By aXZhdGUgKmZwcml2KQorCQkgIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZwcml2LAor CQkgIGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0Owog CWludCByZXQ7CkBAIC0yMjY3LDcgKzIyNzEsNyBAQCBpOTE1X3BwZ3R0X2NyZWF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKCFwcGd0dCkKIAkJcmV0dXJuIEVSUl9Q VFIoLUVOT01FTSk7CiAKLQlyZXQgPSBpOTE1X3BwZ3R0X2luaXQocHBndHQsIGRldl9wcml2LCBm cHJpdik7CisJcmV0ID0gaTkxNV9wcGd0dF9pbml0KHBwZ3R0LCBkZXZfcHJpdiwgZnByaXYsIG5h bWUpOwogCWlmIChyZXQpIHsKIAkJa2ZyZWUocHBndHQpOwogCQlyZXR1cm4gRVJSX1BUUihyZXQp OwpAQCAtMjI5MCw2ICsyMjk0LDcgQEAgdm9pZCAgaTkxNV9wcGd0dF9yZWxlYXNlKHN0cnVjdCBr cmVmICprcmVmKQogCVdBUk5fT04oIWxpc3RfZW1wdHkoJnBwZ3R0LT5iYXNlLmluYWN0aXZlX2xp c3QpKTsKIAlXQVJOX09OKCFsaXN0X2VtcHR5KCZwcGd0dC0+YmFzZS51bmJvdW5kX2xpc3QpKTsK IAorCWk5MTVfZ2VtX3RpbWVsaW5lX2ZpbmkoJnBwZ3R0LT5iYXNlLnRpbWVsaW5lKTsKIAlsaXN0 X2RlbCgmcHBndHQtPmJhc2UuZ2xvYmFsX2xpbmspOwogCWRybV9tbV90YWtlZG93bigmcHBndHQt PmJhc2UubW0pOwogCkBAIC0zMjMyLDExICszMjM3LDEzIEBAIGludCBpOTE1X2dndHRfaW5pdF9o dyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJLyogU3VidHJhY3QgdGhlIGd1 YXJkIHBhZ2UgYmVmb3JlIGFkZHJlc3Mgc3BhY2UgaW5pdGlhbGl6YXRpb24gdG8KIAkgKiBzaHJp bmsgdGhlIHJhbmdlIHVzZWQgYnkgZHJtX21tLgogCSAqLworCW11dGV4X2xvY2soJmRldl9wcml2 LT5kcm0uc3RydWN0X211dGV4KTsKIAlnZ3R0LT5iYXNlLnRvdGFsIC09IFBBR0VfU0laRTsKLQlp OTE1X2FkZHJlc3Nfc3BhY2VfaW5pdCgmZ2d0dC0+YmFzZSwgZGV2X3ByaXYpOworCWk5MTVfYWRk cmVzc19zcGFjZV9pbml0KCZnZ3R0LT5iYXNlLCBkZXZfcHJpdiwgIltnbG9iYWxdIik7CiAJZ2d0 dC0+YmFzZS50b3RhbCArPSBQQUdFX1NJWkU7CiAJaWYgKCFIQVNfTExDKGRldl9wcml2KSkKIAkJ Z2d0dC0+YmFzZS5tbS5jb2xvcl9hZGp1c3QgPSBpOTE1X2d0dF9jb2xvcl9hZGp1c3Q7CisJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlpZiAoIWlvX21hcHBp bmdfaW5pdF93YygmZGV2X3ByaXYtPmdndHQubWFwcGFibGUsCiAJCQkJZGV2X3ByaXYtPmdndHQu bWFwcGFibGVfYmFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKaW5kZXggOWYwMzI3 ZTUxNzZhLi41MThlNzViNjQyOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCkBA IC0zNDIsNiArMzQyLDcgQEAgc3RydWN0IGk5MTVfcG1sNCB7CiAKIHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgewogCXN0cnVjdCBkcm1fbW0gbW07CisJc3RydWN0IGk5MTVfZ2VtX3RpbWVsaW5l IHRpbWVsaW5lOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CiAJLyogRXZlcnkgYWRkcmVzcyBz cGFjZSBiZWxvbmdzIHRvIGEgc3RydWN0IGZpbGUgLSBleGNlcHQgZm9yIHRoZSBnbG9iYWwKIAkg KiBHVFQgdGhhdCBpcyBvd25lZCBieSB0aGUgZHJpdmVyIChhbmQgc28gQGZpbGUgaXMgc2V0IHRv IE5VTEwpLiBJbgpAQCAtNjEzLDcgKzYxNCw4IEBAIHZvaWQgaTkxNV9nZ3R0X2NsZWFudXBfaHco c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGludCBpOTE1X3BwZ3R0X2luaXRf aHcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGk5MTVfcHBndHRfcmVsZWFzZShzdHJ1 Y3Qga3JlZiAqa3JlZik7CiBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqaTkxNV9wcGd0dF9jcmVhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCQlzdHJ1Y3QgZHJtX2k5MTVf ZmlsZV9wcml2YXRlICpmcHJpdik7CisJCQkJCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUg KmZwcml2LAorCQkJCQljb25zdCBjaGFyICpuYW1lKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1 X3BwZ3R0X2dldChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiB7CiAJaWYgKHBwZ3R0KQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCmluZGV4IGU2ZDZkYTgzNzBmYS4u ZGNhMmVkZTc3M2RmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9y ZXF1ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCkBA IC0zNCwxMiArMzQsNiBAQCBzdGF0aWMgY29uc3QgY2hhciAqaTkxNV9mZW5jZV9nZXRfZHJpdmVy X25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKIAogc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZmVu Y2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKIHsKLQkvKiBUaW1lbGlu ZXMgYXJlIGJvdW5kIGJ5IGV2aWN0aW9uIHRvIGEgVk0uIEhvd2V2ZXIsIHNpbmNlCi0JICogd2Ug b25seSBoYXZlIGEgZ2xvYmFsIHNlcW5vIGF0IHRoZSBtb21lbnQsIHdlIG9ubHkgaGF2ZQotCSAq IGEgc2luZ2xlIHRpbWVsaW5lLiBOb3RlIHRoYXQgZWFjaCB0aW1lbGluZSB3aWxsIGhhdmUKLQkg KiBtdWx0aXBsZSBleGVjdXRpb24gY29udGV4dHMgKGZlbmNlIGNvbnRleHRzKSBhcyB3ZSBhbGxv dwotCSAqIGVuZ2luZXMgd2l0aGluIGEgc2luZ2xlIHRpbWVsaW5lIHRvIGV4ZWN1dGUgaW4gcGFy YWxsZWwuCi0JICovCiAJcmV0dXJuIHRvX3JlcXVlc3QoZmVuY2UpLT50aW1lbGluZS0+Y29tbW9u LT5uYW1lOwogfQogCkBAIC02NCwxOCArNTgsNiBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgaTkxNV9m ZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsCiAJcmV0dXJuIGk5MTVfd2FpdF9yZXF1ZXN0 KHRvX3JlcXVlc3QoZmVuY2UpLCBpbnRlcnJ1cHRpYmxlLCB0aW1lb3V0KTsKIH0KIAotc3RhdGlj IHZvaWQgaTkxNV9mZW5jZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwgY2hhciAqc3Ry LCBpbnQgc2l6ZSkKLXsKLQlzbnByaW50ZihzdHIsIHNpemUsICIldSIsIGZlbmNlLT5zZXFubyk7 Ci19Ci0KLXN0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBm ZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwKLQkJCQkJICBpbnQgc2l6ZSkKLXsKLQlzbnByaW50Zihz dHIsIHNpemUsICIldSIsCi0JCSBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKHRvX3JlcXVlc3QoZmVu Y2UpLT5lbmdpbmUpKTsKLX0KLQogc3RhdGljIHZvaWQgaTkxNV9mZW5jZV9yZWxlYXNlKHN0cnVj dCBmZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEgPSB0 b19yZXF1ZXN0KGZlbmNlKTsKQEAgLTkwLDggKzcyLDYgQEAgY29uc3Qgc3RydWN0IGZlbmNlX29w cyBpOTE1X2ZlbmNlX29wcyA9IHsKIAkuc2lnbmFsZWQgPSBpOTE1X2ZlbmNlX3NpZ25hbGVkLAog CS53YWl0ID0gaTkxNV9mZW5jZV93YWl0LAogCS5yZWxlYXNlID0gaTkxNV9mZW5jZV9yZWxlYXNl LAotCS5mZW5jZV92YWx1ZV9zdHIgPSBpOTE1X2ZlbmNlX3ZhbHVlX3N0ciwKLQkudGltZWxpbmVf dmFsdWVfc3RyID0gaTkxNV9mZW5jZV90aW1lbGluZV92YWx1ZV9zdHIsCiB9OwogCiBpbnQgaTkx NV9nZW1fcmVxdWVzdF9hZGRfdG9fY2xpZW50KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLApAQCAtMTQ3LDcgKzEyNywxMCBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3Jl dGlyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJR0VNX0JVR19PTigh aTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxdWVzdCkpOwogCiAJdHJhY2VfaTkxNV9nZW1f cmVxdWVzdF9yZXRpcmUocmVxdWVzdCk7CisKKwlzcGluX2xvY2tfaXJxKCZyZXF1ZXN0LT5lbmdp bmUtPnRpbWVsaW5lLT5sb2NrKTsKIAlsaXN0X2RlbF9pbml0KCZyZXF1ZXN0LT5saW5rKTsKKwlz cGluX3VubG9ja19pcnEoJnJlcXVlc3QtPmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOwogCiAJLyog V2Uga25vdyB0aGUgR1BVIG11c3QgaGF2ZSByZWFkIHRoZSByZXF1ZXN0IHRvIGhhdmUKIAkgKiBz ZW50IHVzIHRoZSBzZXFubyArIGludGVycnVwdCwgc28gdXNlIHRoZSBwb3NpdGlvbgpAQCAtMzEz LDYgKzI5NiwxMiBAQCBzdGF0aWMgaW50IHJlc2VydmVfZ2xvYmFsX3NlcW5vKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgdTMyIF9fdGltZWxp bmVfZ2V0X3NlcW5vKHN0cnVjdCBpOTE1X2dlbV90aW1lbGluZSAqdGwpCit7CisJLyogbmV4dF9z ZXFubyBvbmx5IGluY3JlbWVudGVkIHVuZGVyIGEgbXV0ZXggKi8KKwlyZXR1cm4gKyt0bC0+bmV4 dF9zZXFuby5jb3VudGVyOworfQorCiBzdGF0aWMgdTMyIHRpbWVsaW5lX2dldF9zZXFubyhzdHJ1 Y3QgaTkxNV9nZW1fdGltZWxpbmUgKnRsKQogewogCXJldHVybiBhdG9taWNfaW5jX3JldHVybigm dGwtPm5leHRfc2Vxbm8pOwpAQCAtMzI1LDE2ICszMTQsMjAgQEAgc3VibWl0X25vdGlmeShzdHJ1 Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsIGVudW0gaTkxNV9zd19mZW5jZV9ub3RpZnkgc3RhdGUp CiAJCWNvbnRhaW5lcl9vZihmZW5jZSwgdHlwZW9mKCpyZXF1ZXN0KSwgc3VibWl0KTsKIAlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXF1ZXN0LT5lbmdpbmU7CiAJc3RydWN0IGlu dGVsX3RpbWVsaW5lICp0aW1lbGluZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXUzMiBzZXFu bzsKIAogCWlmIChzdGF0ZSAhPSBGRU5DRV9DT01QTEVURSkKIAkJcmV0dXJuIE5PVElGWV9ET05F OwogCi0JLyogV2lsbCBiZSBjYWxsZWQgZnJvbSBpcnEtY29udGV4dCB3aGVuIHVzaW5nIGZvcmVp Z24gRE1BIGZlbmNlcyAqLworCS8qIFRyYW5zZmVyIGZyb20gcGVyLWNvbnRleHQgb250byB0aGUg Z2xvYmFsIHBlci1lbmdpbmUgdGltZWxpbmUgKi8KKwl0aW1lbGluZSA9IGVuZ2luZS0+dGltZWxp bmU7CisJR0VNX0JVR19PTih0aW1lbGluZSA9PSByZXF1ZXN0LT50aW1lbGluZSk7CiAKLQl0aW1l bGluZSA9IHJlcXVlc3QtPnRpbWVsaW5lOworCS8qIFdpbGwgYmUgY2FsbGVkIGZyb20gaXJxLWNv bnRleHQgd2hlbiB1c2luZyBmb3JlaWduIERNQSBmZW5jZXMgKi8KKwlzcGluX2xvY2tfaXJxc2F2 ZSgmdGltZWxpbmUtPmxvY2ssIGZsYWdzKTsKIAotCXNlcW5vID0gcmVxdWVzdC0+ZmVuY2Uuc2Vx bm87CisJc2Vxbm8gPSB0aW1lbGluZV9nZXRfc2Vxbm8odGltZWxpbmUtPmNvbW1vbik7CiAJR0VN X0JVR19PTighc2Vxbm8pOwogCUdFTV9CVUdfT04oaTkxNV9zZXFub19wYXNzZWQoaW50ZWxfZW5n aW5lX2dldF9zZXFubyhlbmdpbmUpLCBzZXFubykpOwogCkBAIC0zNTQsNiArMzQ3LDEyIEBAIHN1 Ym1pdF9ub3RpZnkoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLCBlbnVtIGk5MTVfc3dfZmVu Y2Vfbm90aWZ5IHN0YXRlKQogCQkJCXJlcXVlc3QtPnJpbmctPnZhZGRyICsgcmVxdWVzdC0+cG9z dGZpeCk7CiAJZW5naW5lLT5zdWJtaXRfcmVxdWVzdChyZXF1ZXN0KTsKIAorCXNwaW5fbG9ja19u ZXN0ZWQoJnJlcXVlc3QtPnRpbWVsaW5lLT5sb2NrLCBTSU5HTEVfREVQVEhfTkVTVElORyk7CisJ bGlzdF9tb3ZlX3RhaWwoJnJlcXVlc3QtPmxpbmssICZ0aW1lbGluZS0+cmVxdWVzdHMpOworCXNw aW5fdW5sb2NrKCZyZXF1ZXN0LT50aW1lbGluZS0+bG9jayk7CisKKwlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZ0aW1lbGluZS0+bG9jaywgZmxhZ3MpOworCiAJcmV0dXJuIE5PVElGWV9ET05FOwog fQogCkBAIC0zOTQsNyArMzkzLDcgQEAgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJLyogTW92ZSB0aGUgb2xkZXN0IHJlcXVlc3QgdG8gdGhl IHNsYWItY2FjaGUgKGlmIG5vdCBpbiB1c2UhKSAqLwogCXJlcSA9IGxpc3RfZmlyc3RfZW50cnlf b3JfbnVsbCgmZW5naW5lLT50aW1lbGluZS0+cmVxdWVzdHMsCiAJCQkJICAgICAgIHR5cGVvZigq cmVxKSwgbGluayk7Ci0JaWYgKHJlcSAmJiBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEp KQorCWlmIChyZXEgJiYgX19pOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEpKQogCQlpOTE1 X2dlbV9yZXF1ZXN0X3JldGlyZShyZXEpOwogCiAJLyogQmV3YXJlOiBEcmFnb25zIGJlIGZseWlu ZyBvdmVyaGVhZC4KQEAgLTQzMSwxNCArNDMwLDE1IEBAIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQlnb3RvIGVycl91bnJlc2VydmU7CiAJ fQogCi0JcmVxLT50aW1lbGluZSA9IGVuZ2luZS0+dGltZWxpbmU7CisJcmVxLT50aW1lbGluZSA9 IGk5MTVfZ2VtX2NvbnRleHRfbG9va3VwX3RpbWVsaW5lKGN0eCwgZW5naW5lKTsKKwlHRU1fQlVH X09OKHJlcS0+dGltZWxpbmUgPT0gZW5naW5lLT50aW1lbGluZSk7CiAKIAlzcGluX2xvY2tfaW5p dCgmcmVxLT5sb2NrKTsKIAlmZW5jZV9pbml0KCZyZXEtPmZlbmNlLAogCQkgICAmaTkxNV9mZW5j ZV9vcHMsCiAJCSAgICZyZXEtPmxvY2ssCiAJCSAgIHJlcS0+dGltZWxpbmUtPmZlbmNlX2NvbnRl eHQsCi0JCSAgIHRpbWVsaW5lX2dldF9zZXFubyhyZXEtPnRpbWVsaW5lLT5jb21tb24pKTsKKwkJ ICAgX190aW1lbGluZV9nZXRfc2Vxbm8ocmVxLT50aW1lbGluZS0+Y29tbW9uKSk7CiAKIAlpOTE1 X3N3X2ZlbmNlX2luaXQoJnJlcS0+c3VibWl0LCBzdWJtaXRfbm90aWZ5KTsKIApAQCAtNzIyLDkg KzcyMiwxNCBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QsIGJvb2wgZmx1c2hfY2FjaGVzKQogCQlpOTE1X3N3X2ZlbmNlX2F3YWl0 X3N3X2ZlbmNlKCZyZXF1ZXN0LT5zdWJtaXQsICZwcmV2LT5zdWJtaXQsCiAJCQkJCSAgICAgJnJl cXVlc3QtPnN1Ym1pdHEpOwogCisJc3Bpbl9sb2NrX2lycSgmdGltZWxpbmUtPmxvY2spOwogCWxp c3RfYWRkX3RhaWwoJnJlcXVlc3QtPmxpbmssICZ0aW1lbGluZS0+cmVxdWVzdHMpOworCXNwaW5f dW5sb2NrX2lycSgmdGltZWxpbmUtPmxvY2spOworCisJR0VNX0JVR19PTihpOTE1X3NlcW5vX3Bh c3NlZCh0aW1lbGluZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm8sCisJCQkJICAgICByZXF1ZXN0LT5m ZW5jZS5zZXFubykpOwogCi0JdGltZWxpbmUtPmxhc3RfcGVuZGluZ19zZXFubyA9IHJlcXVlc3Qt PmZlbmNlLnNlcW5vOworCXRpbWVsaW5lLT5sYXN0X3N1Ym1pdHRlZF9zZXFubyA9IHJlcXVlc3Qt PmZlbmNlLnNlcW5vOwogCWk5MTVfZ2VtX2FjdGl2ZV9zZXQoJnRpbWVsaW5lLT5sYXN0X3JlcXVl c3QsIHJlcXVlc3QpOwogCiAJbGlzdF9hZGRfdGFpbCgmcmVxdWVzdC0+cmluZ19saW5rLCAmcmlu Zy0+cmVxdWVzdF9saXN0KTsKQEAgLTk5MCw3ICs5OTUsNyBAQCBzdGF0aWMgdm9pZCBlbmdpbmVf cmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWxpc3Rf Zm9yX2VhY2hfZW50cnlfc2FmZShyZXF1ZXN0LCBuZXh0LAogCQkJCSAmZW5naW5lLT50aW1lbGlu ZS0+cmVxdWVzdHMsIGxpbmspIHsKLQkJaWYgKCFpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChy ZXF1ZXN0KSkKKwkJaWYgKCFfX2k5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcXVlc3QpKQog CQkJcmV0dXJuOwogCiAJCWk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHJlcXVlc3QpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGltZWxpbmUuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbWVsaW5lLmMKaW5kZXggYTQ1NzljMTA5MDY2Li40MGQ5 ZjAwOTY3M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbWVs aW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGltZWxpbmUuYwpAQCAt NDgsNiArNDgsNyBAQCBpbnQgaTkxNV9nZW1fdGltZWxpbmVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKIAkJdGwtPmZlbmNlX2NvbnRleHQgPSBmZW5jZXMrKzsKIAkJdGwtPmNv bW1vbiA9IHRpbWVsaW5lOwogCisJCXNwaW5fbG9ja19pbml0KCZ0bC0+bG9jayk7CiAJCWluaXRf cmVxdWVzdF9hY3RpdmUoJnRsLT5sYXN0X3JlcXVlc3QsIE5VTEwpOwogCQlJTklUX0xJU1RfSEVB RCgmdGwtPnJlcXVlc3RzKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV90aW1lbGluZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGltZWxp bmUuaAppbmRleCAxOGU2MDM5ODBkZDkuLmYyYmY3YjFkNDlhMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGltZWxpbmUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV90aW1lbGluZS5oCkBAIC0zNCw3ICszNCw4IEBAIHN0cnVjdCBpOTE1X2dl bV90aW1lbGluZTsKIHN0cnVjdCBpbnRlbF90aW1lbGluZSB7CiAJdTY0IGZlbmNlX2NvbnRleHQ7 CiAJdTMyIGxhc3Rfc3VibWl0dGVkX3NlcW5vOwotCXUzMiBsYXN0X3BlbmRpbmdfc2Vxbm87CisK KwlzcGlubG9ja190IGxvY2s7CiAKIAkvKioKIAkgKiBMaXN0IG9mIGJyZWFkY3J1bWJzIGFzc29j aWF0ZWQgd2l0aCBHUFUgcmVxdWVzdHMgY3VycmVudGx5CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKaW5kZXggODkxNjI5Y2FhYjZjLi5kY2IxNDVjNjdlODkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTU2OSw5ICs1NjksNCBAQCB2b2lk IGludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSk7CiB1bnNpZ25lZCBpbnQgaW50ZWxfa2lja193YWl0ZXJzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1KTsKIHVuc2lnbmVkIGludCBpbnRlbF9raWNrX3NpZ25hbGVycyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9lbmdp bmVfaXNfYWN0aXZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlyZXR1cm4g aTkxNV9nZW1fYWN0aXZlX2lzc2V0KCZlbmdpbmUtPnRpbWVsaW5lLT5sYXN0X3JlcXVlc3QpOwot fQotCiAjZW5kaWYgLyogX0lOVEVMX1JJTkdCVUZGRVJfSF8gKi8KLS0gCjIuOS4zCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK