From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 37/39] drm/i915: Replace engine->timeline with a plain list Date: Wed, 13 Mar 2019 14:43:59 +0000 Message-ID: <20190313144401.17735-37-chris@chris-wilson.co.uk> References: <20190313144401.17735-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 fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BD5F6E0FD for ; Wed, 13 Mar 2019 14:51:43 +0000 (UTC) In-Reply-To: <20190313144401.17735-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 VG8gY29udGludWUgdGhlIG9uc2xhdWdodCBvZiByZW1vdmluZyB0aGUgYXNzdW1wdGlvbiBvZiBh IGdsb2JhbApleGVjdXRpb24gb3JkZXJpbmcsIGFub3RoZXIgY2FzdWFsdHkgaXMgdGhlIGVuZ2lu ZS0+dGltZWxpbmUuIFdpdGhvdXQgYW4KYWN0dWFsIHRpbWVsaW5lIHRvIHRyYWNrLCBpdCBpcyBv dmVya2lsbCBhbmQgd2UgY2FuIHJlcGxhY2UgaXQgd2l0aCBhCm11Y2ggbGVzcyBncmFuZCBwbGFp biBsaXN0LiBXZSBzdGlsbCBuZWVkIGEgbGlzdCBvZiByZXF1ZXN0cyBpbmZsaWdodCwKZm9yIHRo ZSBzaW1wbGUgcHVycG9zZSBvZiBmaW5kaW5nIGluZmxpZ2h0IHJlcXVlc3RzIChmb3IgcmV0aXJp bmcsCnJlc2V0dGluZywgcHJlZW1wdGlvbiBldGMpLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX2NvbnRleHQuYyAgIHwgIDIgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYyAgICAgICAgIHwgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVxdWVzdC5jICAgICAgICAgICB8IDQzICsrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZXF1ZXN0LmggICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVzZXQuYyAgICAgICAgICAgICB8IDEwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3NjaGVkdWxlci5jICAgICAgICAgfCAzNyArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3RpbWVsaW5lLmMgICAgICAgICAgfCAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3RpbWVsaW5lLmggICAgICAgICAgfCAxOSAtLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3RpbWVsaW5lX3R5cGVzLmggICAgfCAgNCAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYyAgICAgICAgfCA2MyArKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2VuZ2luZV90eXBlcy5oICAgICB8ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWNfc3VibWlzc2lvbi5jICAgfCAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgICAgICAgICAgICAgIHwgOTYgKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgICAgIHwgMTUgKystCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggICAgICAgfCAgNiArKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2xyYy5jICAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5lLmMgIHwgMTcgKy0tLQogLi4uL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvbW9ja190aW1lbGluZS5jICAgIHwgIDEgLQogMTggZmlsZXMgY2hhbmdlZCwg MTQwIGluc2VydGlvbnMoKyksIDE5NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCBkOWJjMDViYTM5MDIuLmUwOGE5YWZlZTdj ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCkBAIC04 MDQsOCArODA0LDYgQEAgbGFzdF9yZXF1ZXN0X29uX2VuZ2luZShzdHJ1Y3QgaTkxNV90aW1lbGlu ZSAqdGltZWxpbmUsCiB7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAKLQlHRU1fQlVHX09O KHRpbWVsaW5lID09ICZlbmdpbmUtPnRpbWVsaW5lKTsKLQogCXJxID0gaTkxNV9hY3RpdmVfcmVx dWVzdF9yYXcoJnRpbWVsaW5lLT5sYXN0X3JlcXVlc3QsCiAJCQkJICAgICAmZW5naW5lLT5pOTE1 LT5kcm0uc3RydWN0X211dGV4KTsKIAlpZiAocnEgJiYgcnEtPmVuZ2luZS0+bWFzayAmIGVuZ2lu ZS0+bWFzaykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggN2M3ZjY5 MTE0ZjRkLi42YTVkMjdkYzYzMzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3Iu YwpAQCAtMTI2Miw3ICsxMjYyLDcgQEAgc3RhdGljIHZvaWQgZW5naW5lX3JlY29yZF9yZXF1ZXN0 cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAKIAljb3VudCA9IDA7CiAJcmVxdWVz dCA9IGZpcnN0OwotCWxpc3RfZm9yX2VhY2hfZW50cnlfZnJvbShyZXF1ZXN0LCAmZW5naW5lLT50 aW1lbGluZS5yZXF1ZXN0cywgbGluaykKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20ocmVxdWVz dCwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5rKQogCQljb3VudCsrOwogCWlm ICghY291bnQpCiAJCXJldHVybjsKQEAgLTEyNzUsNyArMTI3NSw4IEBAIHN0YXRpYyB2b2lkIGVu Z2luZV9yZWNvcmRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiAJ Y291bnQgPSAwOwogCXJlcXVlc3QgPSBmaXJzdDsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20o cmVxdWVzdCwgJmVuZ2luZS0+dGltZWxpbmUucmVxdWVzdHMsIGxpbmspIHsKKwlsaXN0X2Zvcl9l YWNoX2VudHJ5X2Zyb20ocmVxdWVzdCwKKwkJCQkgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBz Y2hlZC5saW5rKSB7CiAJCWlmIChjb3VudCA+PSBlZS0+bnVtX3JlcXVlc3RzKSB7CiAJCQkvKgog CQkJICogSWYgdGhlIHJpbmcgcmVxdWVzdCBsaXN0IHdhcyBjaGFuZ2VkIGluCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVxdWVzdC5jCmluZGV4IGMyZGY5ODNhYzZhOS4uNzM2NWE4NmE0NDhhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwpAQCAtMjEyLDkgKzIxMiw5IEBAIHN0YXRpYyBi b29sIGk5MTVfcmVxdWVzdF9yZXRpcmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJR0VNX0JV R19PTighaTkxNV9zd19mZW5jZV9zaWduYWxlZCgmcnEtPnN1Ym1pdCkpOwogCXRyYWNlX2k5MTVf cmVxdWVzdF9yZXRpcmUocnEpOwogCi0Jc3Bpbl9sb2NrX2lycSgmcnEtPmVuZ2luZS0+dGltZWxp bmUubG9jayk7Ci0JbGlzdF9kZWwoJnJxLT5saW5rKTsKLQlzcGluX3VubG9ja19pcnEoJnJxLT5l bmdpbmUtPnRpbWVsaW5lLmxvY2spOworCXNwaW5fbG9ja19pcnEoJnJxLT5lbmdpbmUtPmFjdGl2 ZS5sb2NrKTsKKwlsaXN0X2RlbCgmcnEtPnNjaGVkLmxpbmspOworCXNwaW5fdW5sb2NrX2lycSgm cnEtPmVuZ2luZS0+YWN0aXZlLmxvY2spOwogCiAJYWR2YW5jZV9yaW5nKHJxKTsKIApAQCAtMjYw LDYgKzI2MCw3IEBAIHN0YXRpYyBib29sIGk5MTVfcmVxdWVzdF9yZXRpcmUoc3RydWN0IGk5MTVf cmVxdWVzdCAqcnEpCiAJc3Bpbl91bmxvY2tfaXJxKCZycS0+bG9jayk7CiAKIAlpOTE1X3JlcXVl c3RfcmVtb3ZlX2Zyb21fY2xpZW50KHJxKTsKKwlsaXN0X2RlbCgmcnEtPmxpbmspOwogCiAJaW50 ZWxfY29udGV4dF91bnBpbihycS0+aHdfY29udGV4dCk7CiAKQEAgLTM4MywyOCArMzg0LDE3IEBA IF9faTkxNV9yZXF1ZXN0X2F3YWl0X2V4ZWN1dGlvbihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgbW92ZV90b190aW1lbGluZShzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpyZXF1ZXN0LAotCQkJICAgICBzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxp bmUpCi17Ci0JR0VNX0JVR19PTihyZXF1ZXN0LT50aW1lbGluZSA9PSAmcmVxdWVzdC0+ZW5naW5l LT50aW1lbGluZSk7Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmcmVxdWVzdC0+ZW5naW5lLT50aW1l bGluZS5sb2NrKTsKLQotCXNwaW5fbG9jaygmcmVxdWVzdC0+dGltZWxpbmUtPmxvY2spOwotCWxp c3RfbW92ZV90YWlsKCZyZXF1ZXN0LT5saW5rLCAmdGltZWxpbmUtPnJlcXVlc3RzKTsKLQlzcGlu X3VubG9jaygmcmVxdWVzdC0+dGltZWxpbmUtPmxvY2spOwotfQotCiB2b2lkIF9faTkxNV9yZXF1 ZXN0X3N1Ym1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogewogCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKIAotCUdFTV9UUkFDRSgiJXMg ZmVuY2UgJWxseDolbGxkIC0+IGN1cnJlbnQgJWRcbiIsCisJR0VNX1RSQUNFKCIlcyBmZW5jZSAl bGx4OiVsbGQsIGN1cnJlbnQgJWRcbiIsCiAJCSAgZW5naW5lLT5uYW1lLAogCQkgIHJlcXVlc3Qt PmZlbmNlLmNvbnRleHQsIHJlcXVlc3QtPmZlbmNlLnNlcW5vLAogCQkgIGh3c3Bfc2Vxbm8ocmVx dWVzdCkpOwogCiAJR0VNX0JVR19PTighaXJxc19kaXNhYmxlZCgpKTsKLQlsb2NrZGVwX2Fzc2Vy dF9oZWxkKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVu Z2luZS0+YWN0aXZlLmxvY2spOwogCiAJaWYgKGk5MTVfZ2VtX2NvbnRleHRfaXNfYmFubmVkKHJl cXVlc3QtPmdlbV9jb250ZXh0KSkKIAkJaTkxNV9yZXF1ZXN0X3NraXAocmVxdWVzdCwgLUVJTyk7 CkBAIC00MTIsNiArNDAyLDggQEAgdm9pZCBfX2k5MTVfcmVxdWVzdF9zdWJtaXQoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAkvKiBXZSBtYXkgYmUgcmVjdXJzaW5nIGZyb20gdGhlIHNp Z25hbCBjYWxsYmFjayBvZiBhbm90aGVyIGk5MTUgZmVuY2UgKi8KIAlzcGluX2xvY2tfbmVzdGVk KCZyZXF1ZXN0LT5sb2NrLCBTSU5HTEVfREVQVEhfTkVTVElORyk7CiAKKwlsaXN0X21vdmVfdGFp bCgmcmVxdWVzdC0+c2NoZWQubGluaywgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzKTsKKwogCUdF TV9CVUdfT04odGVzdF9iaXQoSTkxNV9GRU5DRV9GTEFHX0FDVElWRSwgJnJlcXVlc3QtPmZlbmNl LmZsYWdzKSk7CiAJc2V0X2JpdChJOTE1X0ZFTkNFX0ZMQUdfQUNUSVZFLCAmcmVxdWVzdC0+ZmVu Y2UuZmxhZ3MpOwogCkBAIC00MjYsOSArNDE4LDYgQEAgdm9pZCBfX2k5MTVfcmVxdWVzdF9zdWJt aXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAllbmdpbmUtPmVtaXRfZmluaV9icmVh ZGNydW1iKHJlcXVlc3QsCiAJCQkJICAgICByZXF1ZXN0LT5yaW5nLT52YWRkciArIHJlcXVlc3Qt PnBvc3RmaXgpOwogCi0JLyogVHJhbnNmZXIgZnJvbSBwZXItY29udGV4dCBvbnRvIHRoZSBnbG9i YWwgcGVyLWVuZ2luZSB0aW1lbGluZSAqLwotCW1vdmVfdG9fdGltZWxpbmUocmVxdWVzdCwgJmVu Z2luZS0+dGltZWxpbmUpOwotCiAJdHJhY2VfaTkxNV9yZXF1ZXN0X2V4ZWN1dGUocmVxdWVzdCk7 CiB9CiAKQEAgLTQzOCwxMSArNDI3LDExIEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3N1Ym1pdChzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAkvKiBX aWxsIGJlIGNhbGxlZCBmcm9tIGlycS1jb250ZXh0IHdoZW4gdXNpbmcgZm9yZWlnbiBmZW5jZXMu ICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwor CXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAKIAlfX2k5 MTVfcmVxdWVzdF9zdWJtaXQocmVxdWVzdCk7CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZl bmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZl bmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiB9CiAKIHZvaWQgX19pOTE1X3JlcXVlc3RfdW5z dWJtaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKQEAgLTQ1NSw3ICs0NDQsNyBAQCB2 b2lkIF9faTkxNV9yZXF1ZXN0X3Vuc3VibWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3Qp CiAJCSAgaHdzcF9zZXFubyhyZXF1ZXN0KSk7CiAKIAlHRU1fQlVHX09OKCFpcnFzX2Rpc2FibGVk KCkpOwotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7CisJbG9j a2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT5hY3RpdmUubG9jayk7CiAKIAkvKgogCSAqIE9ubHkg dW53aW5kIGluIHJldmVyc2Ugb3JkZXIsIHJlcXVpcmVkIHNvIHRoYXQgdGhlIHBlci1jb250ZXh0 IGxpc3QKQEAgLTQ4Miw5ICs0NzEsNiBAQCB2b2lkIF9faTkxNV9yZXF1ZXN0X3Vuc3VibWl0KHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiAKIAlzcGluX3VubG9jaygmcmVxdWVzdC0+bG9j ayk7CiAKLQkvKiBUcmFuc2ZlciBiYWNrIGZyb20gdGhlIGdsb2JhbCBwZXItZW5naW5lIHRpbWVs aW5lIHRvIHBlci1jb250ZXh0ICovCi0JbW92ZV90b190aW1lbGluZShyZXF1ZXN0LCByZXF1ZXN0 LT50aW1lbGluZSk7Ci0KIAkvKgogCSAqIFdlIGRvbid0IG5lZWQgdG8gd2FrZV91cCBhbnkgd2Fp dGVycyBvbiByZXF1ZXN0LT5leGVjdXRlLCB0aGV5CiAJICogd2lsbCBnZXQgd29rZW4gYnkgYW55 IG90aGVyIGV2ZW50IG9yIHVzIHJlLWFkZGluZyB0aGlzIHJlcXVlc3QKQEAgLTUwMCwxMSArNDg2 LDExIEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3Vuc3VibWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJl cXVlc3QpCiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCS8qIFdpbGwgYmUgY2FsbGVkIGZyb20g aXJxLWNvbnRleHQgd2hlbiB1c2luZyBmb3JlaWduIGZlbmNlcy4gKi8KLQlzcGluX2xvY2tfaXJx c2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUo JmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAogCV9faTkxNV9yZXF1ZXN0X3Vuc3VibWl0 KHJlcXVlc3QpOwogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5s b2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9j aywgZmxhZ3MpOwogfQogCiBzdGF0aWMgaW50IF9faTkxNV9zd19mZW5jZV9jYWxsCkBAIC02Nzcs NyArNjYzLDYgQEAgaTkxNV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIAlycS0+aHdfY29udGV4dCA9IGNl OwogCXJxLT5yaW5nID0gY2UtPnJpbmc7CiAJcnEtPnRpbWVsaW5lID0gdGw7Ci0JR0VNX0JVR19P TihycS0+dGltZWxpbmUgPT0gJmVuZ2luZS0+dGltZWxpbmUpOwogCXJxLT5od3NwX3NlcW5vID0g dGwtPmh3c3Bfc2Vxbm87CiAJcnEtPmh3c3BfY2FjaGVsaW5lID0gdGwtPmh3c3BfY2FjaGVsaW5l OwogCXJxLT5yY3VzdGF0ZSA9IGdldF9zdGF0ZV9zeW5jaHJvbml6ZV9yY3UoKTsgLyogYWN0cyBh cyBzbXBfbWIoKSAqLwpAQCAtMTA2Miw5ICsxMDQ3LDcgQEAgX19pOTE1X3JlcXVlc3RfYWRkX3Rv X3RpbWVsaW5lKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogCQkJCQkJCSAwKTsKIAl9CiAKLQlz cGluX2xvY2tfaXJxKCZ0aW1lbGluZS0+bG9jayk7CiAJbGlzdF9hZGRfdGFpbCgmcnEtPmxpbmss ICZ0aW1lbGluZS0+cmVxdWVzdHMpOwotCXNwaW5fdW5sb2NrX2lycSgmdGltZWxpbmUtPmxvY2sp OwogCiAJR0VNX0JVR19PTih0aW1lbGluZS0+c2Vxbm8gIT0gcnEtPmZlbmNlLnNlcW5vKTsKIAlf X2k5MTVfYWN0aXZlX3JlcXVlc3Rfc2V0KCZ0aW1lbGluZS0+bGFzdF9yZXF1ZXN0LCBycSk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCmluZGV4IDg2MmIyNTkzMGRlMC4uOWQxZGMxMDJi YTU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaApAQCAtMjA0LDcgKzIwNCw3IEBA IHN0cnVjdCBpOTE1X3JlcXVlc3QgewogCiAJYm9vbCB3YWl0Ym9vc3Q7CiAKLQkvKiogZW5naW5l LT5yZXF1ZXN0X2xpc3QgZW50cnkgZm9yIHRoaXMgcmVxdWVzdCAqLworCS8qKiB0aW1lbGluZS0+ cmVxdWVzdCBlbnRyeSBmb3IgdGhpcyByZXF1ZXN0ICovCiAJc3RydWN0IGxpc3RfaGVhZCBsaW5r OwogCiAJLyoqIHJpbmctPnJlcXVlc3RfbGlzdCBlbnRyeSBmb3IgdGhpcyByZXF1ZXN0ICovCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMKaW5kZXggYmVhY2MyODU0ZDkyLi45OWUxYjlkOGYyY2Ig MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMKQEAgLTI1LDEyICsyNSwxMiBAQCBzdGF0aWMg dm9pZCBlbmdpbmVfc2tpcF9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJxLT5lbmdpbmU7CiAJc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmh1bmdfY3R4ID0gcnEtPmdlbV9jb250ZXh0OwogCi0JbG9ja2RlcF9hc3NlcnRf aGVsZCgmZW5naW5lLT50aW1lbGluZS5sb2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdp bmUtPmFjdGl2ZS5sb2NrKTsKIAogCWlmICghaTkxNV9yZXF1ZXN0X2lzX2FjdGl2ZShycSkpCiAJ CXJldHVybjsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGludWUocnEsICZlbmdpbmUtPnRp bWVsaW5lLnJlcXVlc3RzLCBsaW5rKQorCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGludWUocnEs ICZlbmdpbmUtPmFjdGl2ZS5yZXF1ZXN0cywgc2NoZWQubGluaykKIAkJaWYgKHJxLT5nZW1fY29u dGV4dCA9PSBodW5nX2N0eCkKIAkJCWk5MTVfcmVxdWVzdF9za2lwKHJxLCAtRUlPKTsKIH0KQEAg LTEwNiw3ICsxMDYsNyBAQCB2b2lkIGk5MTVfcmVzZXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpycSwgYm9vbCBndWlsdHkpCiAJCSAgcnEtPmZlbmNlLnNlcW5vLAogCQkgIHllc25vKGd1 aWx0eSkpOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmcnEtPmVuZ2luZS0+dGltZWxpbmUubG9j ayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmcnEtPmVuZ2luZS0+YWN0aXZlLmxvY2spOwogCUdF TV9CVUdfT04oaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpOwogCiAJaWYgKGd1aWx0eSkgewpA QCAtNzkzLDEwICs3OTMsMTAgQEAgc3RhdGljIHZvaWQgbm9wX3N1Ym1pdF9yZXF1ZXN0KHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiAJCSAgZW5naW5lLT5uYW1lLCByZXF1ZXN0LT5mZW5j ZS5jb250ZXh0LCByZXF1ZXN0LT5mZW5jZS5zZXFubyk7CiAJZG1hX2ZlbmNlX3NldF9lcnJvcigm cmVxdWVzdC0+ZmVuY2UsIC1FSU8pOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGlt ZWxpbmUubG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5s b2NrLCBmbGFncyk7CiAJX19pOTE1X3JlcXVlc3Rfc3VibWl0KHJlcXVlc3QpOwogCWk5MTVfcmVx dWVzdF9tYXJrX2NvbXBsZXRlKHJlcXVlc3QpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVu Z2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVu Z2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAogCWludGVsX2VuZ2luZV9xdWV1ZV9icmVhZGNy dW1icyhlbmdpbmUpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9z Y2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKaW5kZXgg OGNmZjRmNmQ2MTU4Li45NWQwZWYwNDg3ZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfc2NoZWR1bGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hl ZHVsZXIuYwpAQCAtMTA1LDggKzEwNSw2IEBAIHZvaWQgaTkxNV9zY2hlZF9ub2RlX2Zpbmkoc3Ry dWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSkKIHsKIAlzdHJ1Y3QgaTkxNV9kZXBlbmRlbmN5ICpk ZXAsICp0bXA7CiAKLQlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZub2RlLT5saW5rKSk7Ci0KIAlz cGluX2xvY2soJnNjaGVkdWxlX2xvY2spOwogCiAJLyoKQEAgLTE3OSw3ICsxNzcsNyBAQCBpOTE1 X3NjaGVkX2xvb2t1cF9wcmlvbGlzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGlu dCBwcmlvKQogCWJvb2wgZmlyc3QgPSB0cnVlOwogCWludCBpZHgsIGk7CiAKLQlsb2NrZGVwX2Fz c2VydF9oZWxkKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQo JmVuZ2luZS0+YWN0aXZlLmxvY2spOwogCWFzc2VydF9wcmlvbGlzdHMoZXhlY2xpc3RzKTsKIAog CS8qIGJ1Y2tldHMgc29ydGVkIGZyb20gaGlnaGVzdCBbaW4gc2xvdCAwXSB0byBsb3dlc3QgcHJp b3JpdHkgKi8KQEAgLTI1OSw5ICsyNTcsOSBAQCBzY2hlZF9sb2NrX2VuZ2luZShjb25zdCBzdHJ1 Y3QgaTkxNV9zY2hlZF9ub2RlICpub2RlLAogCSAqIGNoZWNrIHRoYXQgdGhlIHJxIHN0aWxsIGJl bG9uZ3MgdG8gdGhlIG5ld2x5IGxvY2tlZCBlbmdpbmUuCiAJICovCiAJd2hpbGUgKGxvY2tlZCAh PSAoZW5naW5lID0gUkVBRF9PTkNFKHJxLT5lbmdpbmUpKSkgewotCQlzcGluX3VubG9jaygmbG9j a2VkLT50aW1lbGluZS5sb2NrKTsKKwkJc3Bpbl91bmxvY2soJmxvY2tlZC0+YWN0aXZlLmxvY2sp OwogCQltZW1zZXQoY2FjaGUsIDAsIHNpemVvZigqY2FjaGUpKTsKLQkJc3Bpbl9sb2NrKCZlbmdp bmUtPnRpbWVsaW5lLmxvY2spOworCQlzcGluX2xvY2soJmVuZ2luZS0+YWN0aXZlLmxvY2spOwog CQlsb2NrZWQgPSBlbmdpbmU7CiAJfQogCkBAIC0zNjQsNyArMzYyLDcgQEAgc3RhdGljIHZvaWQg X19pOTE1X3NjaGVkdWxlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCiAJbWVtc2V0KCZjYWNo ZSwgMCwgc2l6ZW9mKGNhY2hlKSk7CiAJZW5naW5lID0gcnEtPmVuZ2luZTsKLQlzcGluX2xvY2tf aXJxKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOworCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+YWN0 aXZlLmxvY2spOwogCiAJLyogRmlmbyBhbmQgZGVwdGgtZmlyc3QgcmVwbGFjZW1lbnQgZW5zdXJl IG91ciBkZXBzIGV4ZWN1dGUgYmVmb3JlIHVzICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl X3JldmVyc2UoZGVwLCBwLCAmZGZzLCBkZnNfbGluaykgewpAQCAtMzczLDcgKzM3MSw3IEBAIHN0 YXRpYyB2b2lkIF9faTkxNV9zY2hlZHVsZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIAkJSU5J VF9MSVNUX0hFQUQoJmRlcC0+ZGZzX2xpbmspOwogCiAJCWVuZ2luZSA9IHNjaGVkX2xvY2tfZW5n aW5lKG5vZGUsIGVuZ2luZSwgJmNhY2hlKTsKLQkJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5l LT50aW1lbGluZS5sb2NrKTsKKwkJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT5hY3RpdmUu bG9jayk7CiAKIAkJLyogUmVjaGVjayBhZnRlciBhY3F1aXJpbmcgdGhlIGVuZ2luZS0+dGltZWxp bmUubG9jayAqLwogCQlpZiAocHJpbyA8PSBub2RlLT5hdHRyLnByaW9yaXR5IHx8IG5vZGVfc2ln bmFsZWQobm9kZSkpCkBAIC0zODIsMTQgKzM4MCw4IEBAIHN0YXRpYyB2b2lkIF9faTkxNV9zY2hl ZHVsZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIAkJR0VNX0JVR19PTihub2RlX3RvX3JlcXVl c3Qobm9kZSktPmVuZ2luZSAhPSBlbmdpbmUpOwogCiAJCW5vZGUtPmF0dHIucHJpb3JpdHkgPSBw cmlvOwotCQlpZiAoIWxpc3RfZW1wdHkoJm5vZGUtPmxpbmspKSB7Ci0JCQlHRU1fQlVHX09OKGlu dGVsX2VuZ2luZV9pc192aXJ0dWFsKGVuZ2luZSkpOwotCQkJaWYgKCFjYWNoZS5wcmlvbGlzdCkK LQkJCQljYWNoZS5wcmlvbGlzdCA9Ci0JCQkJCWk5MTVfc2NoZWRfbG9va3VwX3ByaW9saXN0KGVu Z2luZSwKLQkJCQkJCQkJICAgcHJpbyk7Ci0JCQlsaXN0X21vdmVfdGFpbCgmbm9kZS0+bGluaywg Y2FjaGUucHJpb2xpc3QpOwotCQl9IGVsc2UgeworCisJCWlmICghaTkxNV9zd19mZW5jZV9kb25l KCZub2RlX3RvX3JlcXVlc3Qobm9kZSktPnN1Ym1pdCkpIHsKIAkJCS8qCiAJCQkgKiBJZiB0aGUg cmVxdWVzdCBpcyBub3QgaW4gdGhlIHByaW9saXN0IHF1ZXVlIGJlY2F1c2UKIAkJCSAqIGl0IGlz IG5vdCB5ZXQgcnVubmFibGUsIHRoZW4gaXQgZG9lc24ndCBjb250cmlidXRlCkBAIC0zOTgsOCAr MzkwLDE3IEBAIHN0YXRpYyB2b2lkIF9faTkxNV9zY2hlZHVsZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycSwKIAkJCSAqIHF1ZXVlOyBidXQgaW4gdGhhdCBjYXNlIHdlIG1heSBzdGlsbCBuZWVkIHRv IHJlb3JkZXIKIAkJCSAqIHRoZSBpbmZsaWdodCByZXF1ZXN0cy4KIAkJCSAqLwotCQkJaWYgKCFp OTE1X3N3X2ZlbmNlX2RvbmUoJm5vZGVfdG9fcmVxdWVzdChub2RlKS0+c3VibWl0KSkKLQkJCQlj b250aW51ZTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKCFpOTE1X3JlcXVlc3RfaXNfYWN0 aXZlKG5vZGVfdG9fcmVxdWVzdChub2RlKSkpIHsKKwkJCUdFTV9CVUdfT04obGlzdF9lbXB0eSgm bm9kZS0+bGluaykpOworCQkJR0VNX0JVR19PTihpbnRlbF9lbmdpbmVfaXNfdmlydHVhbChlbmdp bmUpKTsKKwkJCWlmICghY2FjaGUucHJpb2xpc3QpCisJCQkJY2FjaGUucHJpb2xpc3QgPQorCQkJ CQlpOTE1X3NjaGVkX2xvb2t1cF9wcmlvbGlzdChlbmdpbmUsCisJCQkJCQkJCSAgIHByaW8pOwor CQkJbGlzdF9tb3ZlX3RhaWwoJm5vZGUtPmxpbmssIGNhY2hlLnByaW9saXN0KTsKIAkJfQogCiAJ CWlmIChwcmlvIDw9IGVuZ2luZS0+ZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5X2hpbnQpCkBAIC00 MTgsNyArNDE5LDcgQEAgc3RhdGljIHZvaWQgX19pOTE1X3NjaGVkdWxlKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxLAogCQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNr bGV0KTsKIAl9CiAKLQlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7CisJ c3Bpbl91bmxvY2tfaXJxKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKIH0KIAogdm9pZCBpOTE1X3Nj aGVkdWxlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBjb25zdCBzdHJ1Y3QgaTkxNV9zY2hlZF9h dHRyICphdHRyKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGlu ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5jCmluZGV4IDg0ODRiYTZl NTFkMS4uNTU0NTVlY2MzYjI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3RpbWVsaW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5jCkBA IC0yNTIsNyArMjUyLDYgQEAgaW50IGk5MTVfdGltZWxpbmVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKIAogCXRpbWVsaW5lLT5mZW5jZV9jb250ZXh0ID0gZG1hX2ZlbmNlX2Nv bnRleHRfYWxsb2MoMSk7CiAKLQlzcGluX2xvY2tfaW5pdCgmdGltZWxpbmUtPmxvY2spOwogCW11 dGV4X2luaXQoJnRpbWVsaW5lLT5tdXRleCk7CiAKIAlJTklUX0FDVElWRV9SRVFVRVNUKCZ0aW1l bGluZS0+YmFycmllcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Rp bWVsaW5lLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lLmgKaW5kZXggOTEy NmM4MjA2NDkwLi4xYjczZWQyYzU1NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdGltZWxpbmUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5l LmgKQEAgLTM2LDI1ICszNiw2IEBAIGludCBpOTE1X3RpbWVsaW5lX2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCiAJCSAgICAgICBzdHJ1Y3QgaTkxNV92bWEgKmh3c3ApOwogdm9p ZCBpOTE1X3RpbWVsaW5lX2Zpbmkoc3RydWN0IGk5MTVfdGltZWxpbmUgKnRsKTsKIAotc3RhdGlj IGlubGluZSB2b2lkCi1pOTE1X3RpbWVsaW5lX3NldF9zdWJjbGFzcyhzdHJ1Y3QgaTkxNV90aW1l bGluZSAqdGltZWxpbmUsCi0JCQkgICB1bnNpZ25lZCBpbnQgc3ViY2xhc3MpCi17Ci0JbG9ja2Rl cF9zZXRfc3ViY2xhc3MoJnRpbWVsaW5lLT5sb2NrLCBzdWJjbGFzcyk7Ci0KLQkvKgotCSAqIER1 ZSB0byBhbiBpbnRlcmVzdGluZyBxdWlyayBpbiBsb2NrZGVwJ3MgaW50ZXJuYWwgZGVidWcgdHJh Y2tpbmcsCi0JICogYWZ0ZXIgc2V0dGluZyBhIHN1YmNsYXNzIHdlIG11c3QgZW5zdXJlIHRoZSBs b2NrIGlzIHVzZWQuIE90aGVyd2lzZSwKLQkgKiBucl91bnVzZWRfbG9ja3MgaXMgaW5jcmVtZW50 ZWQgb25jZSB0b28gb2Z0ZW4uCi0JICovCi0jaWZkZWYgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MK LQlsb2NhbF9pcnFfZGlzYWJsZSgpOwotCWxvY2tfbWFwX2FjcXVpcmUoJnRpbWVsaW5lLT5sb2Nr LmRlcF9tYXApOwotCWxvY2tfbWFwX3JlbGVhc2UoJnRpbWVsaW5lLT5sb2NrLmRlcF9tYXApOwot CWxvY2FsX2lycV9lbmFibGUoKTsKLSNlbmRpZgotfQotCiBzdHJ1Y3QgaTkxNV90aW1lbGluZSAq CiBpOTE1X3RpbWVsaW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJ ICAgICBjb25zdCBjaGFyICpuYW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV90aW1lbGluZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGlu ZV90eXBlcy5oCmluZGV4IDVlNDQ1ZjE0NWViMS4uMjRkNTE2OWM4YmY1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lX3R5cGVzLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZV90eXBlcy5oCkBAIC0yMiwxMCArMjIsNiBAQCBzdHJ1 Y3QgaTkxNV90aW1lbGluZSB7CiAJdTY0IGZlbmNlX2NvbnRleHQ7CiAJdTMyIHNlcW5vOwogCi0J c3BpbmxvY2tfdCBsb2NrOwotI2RlZmluZSBUSU1FTElORV9DTElFTlQgMCAvKiBkZWZhdWx0IHN1 YmNsYXNzICovCi0jZGVmaW5lIFRJTUVMSU5FX0VOR0lORSAxCi0jZGVmaW5lIFRJTUVMSU5FX1ZJ UlRVQUwgMgogCXN0cnVjdCBtdXRleCBtdXRleDsgLyogcHJvdGVjdHMgdGhlIGZsb3cgb2YgcmVx dWVzdHMgKi8KIAogCXVuc2lnbmVkIGludCBwaW5fY291bnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2VuZ2luZV9jcy5jCmluZGV4IDgxMWUxMTNmNDM0Zi4uOWM5OGQwN2QxOGVlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtNTgwLDE1ICs1ODAsNyBAQCBpbnQg aW50ZWxfZW5naW5lX3NldHVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCWVyciA9IGk5MTVfdGltZWxpbmVfaW5pdChl bmdpbmUtPmk5MTUsCi0JCQkJICZlbmdpbmUtPnRpbWVsaW5lLAotCQkJCSBlbmdpbmUtPm5hbWUs Ci0JCQkJIGVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9o d3NwOwotCi0JaTkxNV90aW1lbGluZV9zZXRfc3ViY2xhc3MoJmVuZ2luZS0+dGltZWxpbmUsIFRJ TUVMSU5FX0VOR0lORSk7Ci0KKwlpbnRlbF9lbmdpbmVfaW5pdF9hY3RpdmUoZW5naW5lLCBFTkdJ TkVfUEhZU0lDQUwpOwogCWludGVsX2VuZ2luZV9pbml0X2JyZWFkY3J1bWJzKGVuZ2luZSk7CiAJ aW50ZWxfZW5naW5lX2luaXRfZXhlY2xpc3QoZW5naW5lKTsKIAlpbnRlbF9lbmdpbmVfaW5pdF9o YW5nY2hlY2soZW5naW5lKTsKQEAgLTU5NiwxMCArNTg4LDYgQEAgaW50IGludGVsX2VuZ2luZV9z ZXR1cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWludGVsX2VuZ2lu ZV9pbml0X2NtZF9wYXJzZXIoZW5naW5lKTsKIAogCXJldHVybiAwOwotCi1lcnJfaHdzcDoKLQlj bGVhbnVwX3N0YXR1c19wYWdlKGVuZ2luZSk7Ci0JcmV0dXJuIGVycjsKIH0KIAogdm9pZCBpbnRl bF9lbmdpbmVzX3NldF9zY2hlZHVsZXJfY2FwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKQEAgLTcwNiw2ICs2OTQsMjcgQEAgc3RhdGljIGludCBwaW5fY29udGV4dChzdHJ1Y3QgaTkx NV9nZW1fY29udGV4dCAqY3R4LAogCXJldHVybiAwOwogfQogCit2b2lkCitpbnRlbF9lbmdpbmVf aW5pdF9hY3RpdmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1bnNpZ25lZCBpbnQg c3ViY2xhc3MpCit7CisJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzKTsK KworCXNwaW5fbG9ja19pbml0KCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKKwlsb2NrZGVwX3NldF9z dWJjbGFzcygmZW5naW5lLT5hY3RpdmUubG9jaywgc3ViY2xhc3MpOworCisJLyoKKwkgKiBEdWUg dG8gYW4gaW50ZXJlc3RpbmcgcXVpcmsgaW4gbG9ja2RlcCdzIGludGVybmFsIGRlYnVnIHRyYWNr aW5nLAorCSAqIGFmdGVyIHNldHRpbmcgYSBzdWJjbGFzcyB3ZSBtdXN0IGVuc3VyZSB0aGUgbG9j ayBpcyB1c2VkLiBPdGhlcndpc2UsCisJICogbnJfdW51c2VkX2xvY2tzIGlzIGluY3JlbWVudGVk IG9uY2UgdG9vIG9mdGVuLgorCSAqLworI2lmZGVmIENPTkZJR19ERUJVR19MT0NLX0FMTE9DCisJ bG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlsb2NrX21hcF9hY3F1aXJlKCZlbmdpbmUtPmFjdGl2ZS5s b2NrLmRlcF9tYXApOworCWxvY2tfbWFwX3JlbGVhc2UoJmVuZ2luZS0+YWN0aXZlLmxvY2suZGVw X21hcCk7CisJbG9jYWxfaXJxX2VuYWJsZSgpOworI2VuZGlmCit9CisKIC8qKgogICogaW50ZWxf ZW5naW5lc19pbml0X2NvbW1vbiAtIGluaXRpYWxpemUgY2VuZ2luZSBzdGF0ZSB3aGljaCBtaWdo dCByZXF1aXJlIGh3IGFjY2VzcwogICogQGVuZ2luZTogRW5naW5lIHRvIGluaXRpYWxpemUuCkBA IC03NjksNiArNzc4LDggQEAgaW50IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAgKi8KIHZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXBfY29t bW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKKwlHRU1fQlVHX09OKCFsaXN0 X2VtcHR5KCZlbmdpbmUtPmFjdGl2ZS5yZXF1ZXN0cykpOworCiAJY2xlYW51cF9zdGF0dXNfcGFn ZShlbmdpbmUpOwogCiAJaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoZW5naW5lKTsKQEAg LTc4Myw4ICs3OTQsNiBAQCB2b2lkIGludGVsX2VuZ2luZV9jbGVhbnVwX2NvbW1vbihzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaW50ZWxfY29udGV4dF91bnBpbihlbmdpbmUtPmtl cm5lbF9jb250ZXh0KTsKIAlHRU1fQlVHX09OKCFsbGlzdF9lbXB0eSgmZW5naW5lLT5iYXJyaWVy X3Rhc2tzKSk7CiAKLQlpOTE1X3RpbWVsaW5lX2ZpbmkoJmVuZ2luZS0+dGltZWxpbmUpOwotCiAJ aW50ZWxfd2FfbGlzdF9mcmVlKCZlbmdpbmUtPmN0eF93YV9saXN0KTsKIAlpbnRlbF93YV9saXN0 X2ZyZWUoJmVuZ2luZS0+d2FfbGlzdCk7CiAJaW50ZWxfd2FfbGlzdF9mcmVlKCZlbmdpbmUtPndo aXRlbGlzdCk7CkBAIC0xNDkyLDE2ICsxNTAxLDYgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZHVtcChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAKIAlkcm1fcHJpbnRmKG0sICJcdFJlcXVl c3RzOlxuIik7CiAKLQlycSA9IGxpc3RfZmlyc3RfZW50cnkoJmVuZ2luZS0+dGltZWxpbmUucmVx dWVzdHMsCi0JCQkgICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0LCBsaW5rKTsKLQlpZiAoJnJxLT5s aW5rICE9ICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzKQotCQlwcmludF9yZXF1ZXN0KG0sIHJx LCAiXHRcdGZpcnN0ICAiKTsKLQotCXJxID0gbGlzdF9sYXN0X2VudHJ5KCZlbmdpbmUtPnRpbWVs aW5lLnJlcXVlc3RzLAotCQkJICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0LCBsaW5rKTsKLQlpZiAo JnJxLT5saW5rICE9ICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzKQotCQlwcmludF9yZXF1ZXN0 KG0sIHJxLCAiXHRcdGxhc3QgICAiKTsKLQogCXJxID0gaW50ZWxfZW5naW5lX2ZpbmRfYWN0aXZl X3JlcXVlc3QoZW5naW5lKTsKIAlpZiAocnEpIHsKIAkJcHJpbnRfcmVxdWVzdChtLCBycSwgIlx0 XHRhY3RpdmUgIik7CkBAIC0xNTgyLDcgKzE1ODEsNyBAQCBpbnQgaW50ZWxfZW5hYmxlX2VuZ2lu ZV9zdGF0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaWYgKCFpbnRlbF9lbmdp bmVfc3VwcG9ydHNfc3RhdHMoZW5naW5lKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlzcGluX2xv Y2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2ly cXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAl3cml0ZV9zZXFsb2NrKCZlbmdp bmUtPnN0YXRzLmxvY2spOwogCiAJaWYgKHVubGlrZWx5KGVuZ2luZS0+c3RhdHMuZW5hYmxlZCA9 PSB+MCkpIHsKQEAgLTE2MDgsNyArMTYwNyw3IEBAIGludCBpbnRlbF9lbmFibGVfZW5naW5lX3N0 YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogdW5sb2NrOgogCXdyaXRlX3Nl cXVubG9jaygmZW5naW5lLT5zdGF0cy5sb2NrKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZl bmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZl bmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gZXJyOwogfQpAQCAtMTY5NCwy MiArMTY5MywyMiBAQCBpbnRlbF9lbmdpbmVfZmluZF9hY3RpdmVfcmVxdWVzdChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICogQXQgYWxsIG90aGVyIHRpbWVzLCB3ZSBtdXN0IGFz c3VtZSB0aGUgR1BVIGlzIHN0aWxsIHJ1bm5pbmcsIGJ1dAogCSAqIHdlIG9ubHkgY2FyZSBhYm91 dCB0aGUgc25hcHNob3Qgb2YgdGhpcyBtb21lbnQuCiAJICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUo JmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwotCWxpc3RfZm9yX2VhY2hfZW50cnkocmVx dWVzdCwgJmVuZ2luZS0+dGltZWxpbmUucmVxdWVzdHMsIGxpbmspIHsKKwlzcGluX2xvY2tfaXJx c2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOworCWxpc3RfZm9yX2VhY2hfZW50cnko cmVxdWVzdCwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5rKSB7CiAJCWlmIChp OTE1X3JlcXVlc3RfY29tcGxldGVkKHJlcXVlc3QpKQogCQkJY29udGludWU7CiAKIAkJaWYgKCFp OTE1X3JlcXVlc3Rfc3RhcnRlZChyZXF1ZXN0KSkKLQkJCWJyZWFrOworCQkJY29udGludWU7CiAK IAkJLyogTW9yZSB0aGFuIG9uZSBwcmVlbXB0aWJsZSByZXF1ZXN0IG1heSBtYXRjaCEgKi8KIAkJ aWYgKCFtYXRjaF9yaW5nKHJlcXVlc3QpKQotCQkJYnJlYWs7CisJCQljb250aW51ZTsKIAogCQlh Y3RpdmUgPSByZXF1ZXN0OwogCQlicmVhazsKIAl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogCiAJcmV0dXJuIGFjdGl2ZTsKIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX3R5cGVzLmgKaW5kZXggZmJiMzUwZjAzN2Y3Li43 YzA0YmE0NGIwNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2lu ZV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5o CkBAIC0yNjksNyArMjY5LDExIEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCiAJc3RydWN0 IGludGVsX3JpbmcgKmJ1ZmZlcjsKIAotCXN0cnVjdCBpOTE1X3RpbWVsaW5lIHRpbWVsaW5lOwor CXN0cnVjdCB7CisJCXNwaW5sb2NrX3QgbG9jazsKKwkJc3RydWN0IGxpc3RfaGVhZCByZXF1ZXN0 czsKKwl9IGFjdGl2ZTsKKwogCXN0cnVjdCBsbGlzdF9oZWFkIGJhcnJpZXJfdGFza3M7CiAKIAlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqa2VybmVsX2NvbnRleHQ7IC8qIHBpbm5lZCAqLwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggMDMwMjQ0NjE3OWQ4 Li41M2I4NDVmMzQ3MTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1p c3Npb24uYwpAQCAtNzM1LDcgKzczNSw3IEBAIHN0YXRpYyBib29sIF9fZ3VjX2RlcXVldWUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWJvb2wgc3VibWl0ID0gZmFsc2U7CiAJc3Ry dWN0IHJiX25vZGUgKnJiOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT50aW1lbGlu ZS5sb2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKIAog CWlmIChwb3J0X2lzc2V0KHBvcnQpKSB7CiAJCWlmIChpbnRlbF9lbmdpbmVfaGFzX3ByZWVtcHRp b24oZW5naW5lKSkgewpAQCAtODE2LDcgKzgxNiw3IEBAIHN0YXRpYyB2b2lkIGd1Y19zdWJtaXNz aW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50 aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZl LmxvY2ssIGZsYWdzKTsKIAogCXJxID0gcG9ydF9yZXF1ZXN0KHBvcnQpOwogCXdoaWxlIChycSAm JiBpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJxKSkgewpAQCAtODQxLDcgKzg0MSw3IEBAIHN0YXRp YyB2b2lkIGd1Y19zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQogCWlmICgh ZXhlY2xpc3RzX2lzX2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkp CiAJCWd1Y19kZXF1ZXVlKGVuZ2luZSk7CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdp bmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdp bmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyB2b2lkIGd1Y19yZXNldF9wcmVw YXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKaW5kZXggMGE0MDY5Nzg2NmI1Li5mMDg1OTQwZDQ5MDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCkBAIC0zMTEsOCArMzExLDggQEAgc3RhdGljIGlubGluZSBib29sIG5lZWRfcHJlZW1w dChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJICogQ2hlY2sgYWdhaW5z dCB0aGUgZmlyc3QgcmVxdWVzdCBpbiBFTFNQWzFdLCBpdCB3aWxsLCB0aGFua3MgdG8gdGhlCiAJ ICogcG93ZXIgb2YgUEksIGJlIHRoZSBoaWdoZXN0IHByaW9yaXR5IG9mIHRoYXQgY29udGV4dC4K IAkgKi8KLQlpZiAoIWxpc3RfaXNfbGFzdCgmcnEtPmxpbmssICZlbmdpbmUtPnRpbWVsaW5lLnJl cXVlc3RzKSAmJgotCSAgICBycV9wcmlvKGxpc3RfbmV4dF9lbnRyeShycSwgbGluaykpID4gbGFz dF9wcmlvKQorCWlmICghbGlzdF9pc19sYXN0KCZycS0+c2NoZWQubGluaywgJmVuZ2luZS0+YWN0 aXZlLnJlcXVlc3RzKSAmJgorCSAgICBycV9wcmlvKGxpc3RfbmV4dF9lbnRyeShycSwgc2NoZWQu bGluaykpID4gbGFzdF9wcmlvKQogCQlyZXR1cm4gdHJ1ZTsKIAogCWlmIChyYikgeyAvKiBYWFgg dmlydHVhbCBwcmVjZWRlbmNlICovCkBAIC0zMjEsMTAgKzMyMSwxMCBAQCBzdGF0aWMgaW5saW5l IGJvb2wgbmVlZF9wcmVlbXB0KGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwK IAkJYm9vbCBwcmVlbXB0ID0gZmFsc2U7CiAKIAkJaWYgKGVuZ2luZSA9PSB2ZS0+c2libGluZ3Nb MF0pIHsgLyogb25seSBwcmVlbXB0IG9uZSBzaWJsaW5nICovCi0JCQlzcGluX2xvY2soJnZlLT5i YXNlLnRpbWVsaW5lLmxvY2spOworCQkJc3Bpbl9sb2NrKCZ2ZS0+YmFzZS5hY3RpdmUubG9jayk7 CiAJCQlpZiAodmUtPnJlcXVlc3QpCiAJCQkJcHJlZW1wdCA9IHJxX3ByaW8odmUtPnJlcXVlc3Qp ID4gbGFzdF9wcmlvOwotCQkJc3Bpbl91bmxvY2soJnZlLT5iYXNlLnRpbWVsaW5lLmxvY2spOwor CQkJc3Bpbl91bmxvY2soJnZlLT5iYXNlLmFjdGl2ZS5sb2NrKTsKIAkJfQogCiAJCWlmIChwcmVl bXB0KQpAQCAtNDQ0LDExICs0NDQsMTEgQEAgX191bndpbmRfaW5jb21wbGV0ZV9yZXF1ZXN0cyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJc3RydWN0IGxpc3RfaGVhZCAqdW5pbml0 aWFsaXplZF92YXIocGwpOwogCWludCBwcmlvID0gSTkxNV9QUklPUklUWV9JTlZBTElEIHwgQUNU SVZFX1BSSU9SSVRZOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT50aW1lbGluZS5s b2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKIAogCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZV9yZXZlcnNlKHJxLCBybiwKLQkJCQkJICZlbmdpbmUtPnRp bWVsaW5lLnJlcXVlc3RzLAotCQkJCQkgbGluaykgeworCQkJCQkgJmVuZ2luZS0+YWN0aXZlLnJl cXVlc3RzLAorCQkJCQkgc2NoZWQubGluaykgewogCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpv d25lcjsKIAogCQlpZiAoaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpCkBAIC00NzUsOCArNDc1 LDkgQEAgX191bndpbmRfaW5jb21wbGV0ZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiAJCQl9CiAJCQlHRU1fQlVHX09OKFJCX0VNUFRZX1JPT1QoJmVuZ2luZS0+ZXhl Y2xpc3RzLnF1ZXVlLnJiX3Jvb3QpKTsKIAotCQkJbGlzdF9hZGQoJnJxLT5zY2hlZC5saW5rLCBw bCk7CisJCQlsaXN0X21vdmUoJnJxLT5zY2hlZC5saW5rLCBwbCk7CiAJCX0gZWxzZSB7CisJCQls aXN0X2RlbF9pbml0KCZycS0+c2NoZWQubGluayk7CiAJCQlpZiAoX19pOTE1X3JlcXVlc3RfaGFz X3N0YXJ0ZWQocnEpKQogCQkJCXJxLT5zY2hlZC5hdHRyLnByaW9yaXR5IHw9IEFDVElWRV9QUklP UklUWTsKIApAQCAtOTE3LDExICs5MTgsMTEgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVl dWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJcmJfZW50cnkocmIsIHR5cGVv ZigqdmUpLCBub2Rlc1tlbmdpbmUtPmlkXS5yYik7CiAJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx OwogCi0JCXNwaW5fbG9jaygmdmUtPmJhc2UudGltZWxpbmUubG9jayk7CisJCXNwaW5fbG9jaygm dmUtPmJhc2UuYWN0aXZlLmxvY2spOwogCiAJCXJxID0gdmUtPnJlcXVlc3Q7CiAJCWlmICh1bmxp a2VseSghcnEpKSB7IC8qIGxvc3QgdGhlIHJhY2UgdG8gYSBzaWJsaW5nICovCi0JCQlzcGluX3Vu bG9jaygmdmUtPmJhc2UudGltZWxpbmUubG9jayk7CisJCQlzcGluX3VubG9jaygmdmUtPmJhc2Uu YWN0aXZlLmxvY2spOwogCQkJcmJfZXJhc2VfY2FjaGVkKHJiLCAmZXhlY2xpc3RzLT52aXJ0dWFs KTsKIAkJCVJCX0NMRUFSX05PREUocmIpOwogCQkJcmIgPSByYl9maXJzdF9jYWNoZWQoJmV4ZWNs aXN0cy0+dmlydHVhbCk7CkBAIC05MzAsNyArOTMxLDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3Rz X2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiAJCWlmIChycV9wcmlv KHJxKSA+PSBxdWV1ZV9wcmlvKGV4ZWNsaXN0cykpIHsKIAkJCWlmIChsYXN0ICYmICFjYW5fbWVy Z2VfcnEobGFzdCwgcnEpKSB7Ci0JCQkJc3Bpbl91bmxvY2soJnZlLT5iYXNlLnRpbWVsaW5lLmxv Y2spOworCQkJCXNwaW5fdW5sb2NrKCZ2ZS0+YmFzZS5hY3RpdmUubG9jayk7CiAJCQkJcmV0dXJu OyAvKiBsZWF2ZSB0aGlzIHJxIGZvciBhbm90aGVyIGVuZ2luZSAqLwogCQkJfQogCkBAIC05NzQs NyArOTc1LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogCQkJbGFzdCA9IHJxOwogCQl9CiAKLQkJc3Bpbl91bmxvY2soJnZl LT5iYXNlLnRpbWVsaW5lLmxvY2spOworCQlzcGluX3VubG9jaygmdmUtPmJhc2UuYWN0aXZlLmxv Y2spOwogCQlicmVhazsKIAl9CiAKQEAgLTEwMzEsOCArMTAzMiw2IEBAIHN0YXRpYyB2b2lkIGV4 ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCQlHRU1f QlVHX09OKHBvcnRfaXNzZXQocG9ydCkpOwogCQkJfQogCi0JCQlsaXN0X2RlbF9pbml0KCZycS0+ c2NoZWQubGluayk7Ci0KIAkJCV9faTkxNV9yZXF1ZXN0X3N1Ym1pdChycSk7CiAJCQl0cmFjZV9p OTE1X3JlcXVlc3RfaW4ocnEsIHBvcnRfaW5kZXgocG9ydCwgZXhlY2xpc3RzKSk7CiAKQEAgLTEx NjcsMTQgKzExNjYsMTQgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICogc3VibWlzc2lvbidzIGlycSBzdGF0 ZSwgd2UgYWxzbyB3aXNoIHRvIHJlbWluZCBvdXJzZWx2ZXMgdGhhdAogCSAqIGl0IGlzIGlycSBz dGF0ZS4pCiAJICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywg ZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7 CiAKIAkvKiBDYW5jZWwgdGhlIHJlcXVlc3RzIG9uIHRoZSBIVyBhbmQgY2xlYXIgdGhlIEVMU1Ag dHJhY2tlci4gKi8KIAlleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsK IAlleGVjbGlzdHNfdXNlcl9lbmQoZXhlY2xpc3RzKTsKIAogCS8qIE1hcmsgYWxsIGV4ZWN1dGlu ZyByZXF1ZXN0cyBhcyBza2lwcGVkLiAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkocnEsICZlbmdp bmUtPnRpbWVsaW5lLnJlcXVlc3RzLCBsaW5rKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShycSwg JmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5rKSB7CiAJCWlmICghaTkxNV9yZXF1 ZXN0X3NpZ25hbGVkKHJxKSkKIAkJCWRtYV9mZW5jZV9zZXRfZXJyb3IoJnJxLT5mZW5jZSwgLUVJ Tyk7CiAKQEAgLTExODcsNyArMTE4Niw2IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jYW5jZWxf cmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlpbnQgaTsKIAogCQlw cmlvbGlzdF9mb3JfZWFjaF9yZXF1ZXN0X2NvbnN1bWUocnEsIHJuLCBwLCBpKSB7Ci0JCQlsaXN0 X2RlbF9pbml0KCZycS0+c2NoZWQubGluayk7CiAJCQlfX2k5MTVfcmVxdWVzdF9zdWJtaXQocnEp OwogCQkJZG1hX2ZlbmNlX3NldF9lcnJvcigmcnEtPmZlbmNlLCAtRUlPKTsKIAkJCWk5MTVfcmVx dWVzdF9tYXJrX2NvbXBsZXRlKHJxKTsKQEAgLTEyMDUsMTQgKzEyMDMsMTQgQEAgc3RhdGljIHZv aWQgZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCiAJCXJiX2VyYXNlX2NhY2hlZChyYiwgJmV4ZWNsaXN0cy0+dmlydHVhbCk7CiAJCVJCX0NM RUFSX05PREUocmIpOwogCi0JCXNwaW5fbG9jaygmdmUtPmJhc2UudGltZWxpbmUubG9jayk7CisJ CXNwaW5fbG9jaygmdmUtPmJhc2UuYWN0aXZlLmxvY2spOwogCQlpZiAodmUtPnJlcXVlc3QpIHsK IAkJCV9faTkxNV9yZXF1ZXN0X3N1Ym1pdCh2ZS0+cmVxdWVzdCk7CiAJCQlkbWFfZmVuY2Vfc2V0 X2Vycm9yKCZ2ZS0+cmVxdWVzdC0+ZmVuY2UsIC1FSU8pOwogCQkJaTkxNV9yZXF1ZXN0X21hcmtf Y29tcGxldGUodmUtPnJlcXVlc3QpOwogCQkJdmUtPnJlcXVlc3QgPSBOVUxMOwogCQl9Ci0JCXNw aW5fdW5sb2NrKCZ2ZS0+YmFzZS50aW1lbGluZS5sb2NrKTsKKwkJc3Bpbl91bmxvY2soJnZlLT5i YXNlLmFjdGl2ZS5sb2NrKTsKIAl9CiAKIAkvKiBSZW1haW5pbmcgX3VucmVhZHlfIHJlcXVlc3Rz IHdpbGwgYmUgbm9wJ2VkIHdoZW4gc3VibWl0dGVkICovCkBAIC0xMjI0LDcgKzEyMjIsNyBAQCBz dGF0aWMgdm9pZCBleGVjbGlzdHNfY2FuY2VsX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIAlHRU1fQlVHX09OKF9fdGFza2xldF9pc19lbmFibGVkKCZleGVjbGlzdHMt PnRhc2tsZXQpKTsKIAlleGVjbGlzdHMtPnRhc2tsZXQuZnVuYyA9IG5vcF9zdWJtaXNzaW9uX3Rh c2tsZXQ7CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ss IGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBm bGFncyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbApAQCAtMTI0MCw3ICsxMjM4LDcgQEAgc3Rh dGljIHZvaWQgcHJvY2Vzc19jc2Ioc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWNv bnN0IHUzMiAqIGNvbnN0IGJ1ZiA9IGV4ZWNsaXN0cy0+Y3NiX3N0YXR1czsKIAl1OCBoZWFkLCB0 YWlsOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT50aW1lbGluZS5sb2NrKTsKKwls b2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKIAogCS8qCiAJICogTm90 ZSB0aGF0IGNzYl93cml0ZSwgY3NiX3N0YXR1cyBtYXkgYmUgZWl0aGVyIGluIEhXU1Agb3IgbW1p by4KQEAgLTE0MDAsNyArMTM5OCw3IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3NiKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogc3RhdGljIHZvaWQgX19leGVjbGlzdHNfc3VibWlz c2lvbl90YXNrbGV0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmNvbnN0IGVuZ2luZSkKIHsKLQls b2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOworCWxvY2tkZXBfYXNz ZXJ0X2hlbGQoJmVuZ2luZS0+YWN0aXZlLmxvY2spOwogCiAJcHJvY2Vzc19jc2IoZW5naW5lKTsK IAlpZiAoIWV4ZWNsaXN0c19pc19hY3RpdmUoJmVuZ2luZS0+ZXhlY2xpc3RzLCBFWEVDTElTVFNf QUNUSVZFX1BSRUVNUFQpKQpAQCAtMTQyMSw5ICsxNDE5LDkgQEAgc3RhdGljIHZvaWQgZXhlY2xp c3RzX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJCSAgISFlbmdpbmUt Pmk5MTUtPmd0LmF3YWtlLAogCQkgIGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSk7CiAKLQlzcGlu X2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2Nr X2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAlfX2V4ZWNsaXN0c19zdWJt aXNzaW9uX3Rhc2tsZXQoZW5naW5lKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUt PnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUt PmFjdGl2ZS5sb2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyB2b2lkIHF1ZXVlX3JlcXVlc3Qoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLApAQCAtMTQ3NCw3ICsxNDcyLDcgQEAgc3RhdGlj IHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVl c3QpCiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCS8qIFdpbGwgYmUgY2FsbGVkIGZyb20gaXJx LWNvbnRleHQgd2hlbiB1c2luZyBmb3JlaWduIGZlbmNlcy4gKi8KLQlzcGluX2xvY2tfaXJxc2F2 ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmVu Z2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAogCXF1ZXVlX3JlcXVlc3QoZW5naW5lLCAmcmVx dWVzdC0+c2NoZWQsIHJxX3ByaW8ocmVxdWVzdCkpOwogCkBAIC0xNDgzLDcgKzE0ODEsNyBAQCBz dGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAq cmVxdWVzdCkKIAogCXN1Ym1pdF9xdWV1ZShlbmdpbmUsIHJlcXVlc3QpOwogCi0Jc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMg dm9pZCBfX2V4ZWNsaXN0c19jb250ZXh0X2Zpbmkoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQpA QCAtMjExNCw5ICsyMTEyLDkgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Jlc2V0X3ByZXBhcmUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWludGVsX2VuZ2luZV9zdG9wX2NzKGVu Z2luZSk7CiAKIAkvKiBBbmQgZmx1c2ggYW55IGN1cnJlbnQgZGlyZWN0IHN1Ym1pc3Npb24uICov Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOworCXNw aW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAJcHJvY2Vzc19j c2IoZW5naW5lKTsgLyogZHJhaW4gcHJlZW1wdGlvbiBldmVudHMgKi8KLQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyBib29s IGxyY19yZWdzX29rKGNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQpAQCAtMjE0Myw3ICsy MTQxLDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwgYm9vbCBzdGFsbGVkKQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdTMyICpy ZWdzOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3Mp OworCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAKIAkv KgogCSAqIENhdGNoIHVwIHdpdGggYW55IG1pc3NlZCBjb250ZXh0LXN3aXRjaCBpbnRlcnJ1cHRz LgpAQCAtMjIxOCw3ICsyMjE2LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Jlc2V0KHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgYm9vbCBzdGFsbGVkKQogCV9fZXhlY2xpc3RzX3Vw ZGF0ZV9yZWdfc3RhdGUocnEtPmh3X2NvbnRleHQsIGVuZ2luZSk7CiAKIG91dF91bmxvY2s6Ci0J c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogfQog CiBzdGF0aWMgdm9pZCBleGVjbGlzdHNfcmVzZXRfZmluaXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKQEAgLTMxMjksMTIgKzMxMjcsMTIgQEAgc3RhdGljIHZvaWQgdmlydHVhbF9j b250ZXh0X2Rlc3Ryb3koc3RydWN0IGtyZWYgKmtyZWYpCiAJCWlmIChSQl9FTVBUWV9OT0RFKG5v ZGUpKQogCQkJY29udGludWU7CiAKLQkJc3Bpbl9sb2NrX2lycSgmc2libGluZy0+dGltZWxpbmUu bG9jayk7CisJCXNwaW5fbG9ja19pcnEoJnNpYmxpbmctPmFjdGl2ZS5sb2NrKTsKIAogCQlpZiAo IVJCX0VNUFRZX05PREUobm9kZSkpCiAJCQlyYl9lcmFzZV9jYWNoZWQobm9kZSwgJnNpYmxpbmct PmV4ZWNsaXN0cy52aXJ0dWFsKTsKIAotCQlzcGluX3VubG9ja19pcnEoJnNpYmxpbmctPnRpbWVs aW5lLmxvY2spOworCQlzcGluX3VubG9ja19pcnEoJnNpYmxpbmctPmFjdGl2ZS5sb2NrKTsKIAl9 CiAJR0VNX0JVR19PTihfX3Rhc2tsZXRfaXNfc2NoZWR1bGVkKCZ2ZS0+YmFzZS5leGVjbGlzdHMu dGFza2xldCkpOwogCkBAIC0zMTQyLDggKzMxNDAsNiBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFsX2Nv bnRleHRfZGVzdHJveShzdHJ1Y3Qga3JlZiAqa3JlZikKIAkJX19leGVjbGlzdHNfY29udGV4dF9m aW5pKCZ2ZS0+Y29udGV4dCk7CiAKIAlrZnJlZSh2ZS0+Ym9uZHMpOwotCi0JaTkxNV90aW1lbGlu ZV9maW5pKCZ2ZS0+YmFzZS50aW1lbGluZSk7CiAJa2ZyZWUodmUpOwogfQogCkBAIC0zMjAyLDE0 ICszMTk4LDE0IEBAIHN0YXRpYyB2b2lkIHZpcnR1YWxfc3VibWl0X2Vycm9yKHN0cnVjdCB2aXJ0 dWFsX2VuZ2luZSAqdmUpCiAJZG1hX2ZlbmNlX3NldF9lcnJvcigmcnEtPmZlbmNlLCAtRU5PREVW KTsKIAlpOTE1X3JlcXVlc3RfbWFya19jb21wbGV0ZShycSk7CiAKLQlzcGluX2xvY2soJmVuZ2lu ZS0+dGltZWxpbmUubG9jayk7CisJc3Bpbl9sb2NrKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKIAly cS0+ZW5naW5lID0gZW5naW5lOwogCiAJX19pOTE1X3JlcXVlc3Rfc3VibWl0KHJxKTsKIAkvKiBt b3ZlIHRvIHN0YXJ0IG9mIGxpc3QgdG8gYXZvaWQgdW53aW5kIGNvbXBsaWNhdGlvbnMgKi8KLQls aXN0X21vdmUoJnJxLT5saW5rLCAmZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0cyk7CisJbGlzdF9t b3ZlKCZycS0+bGluaywgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzKTsKIAotCXNwaW5fdW5sb2Nr KCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOworCXNwaW5fdW5sb2NrKCZlbmdpbmUtPmFjdGl2ZS5s b2NrKTsKIH0KIAogc3RhdGljIHZvaWQgdmlydHVhbF9zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWdu ZWQgbG9uZyBkYXRhKQpAQCAtMzIyNiwxMyArMzIyMiwxMyBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFs X3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJbG9jYWxfaXJxX2Rpc2Fi bGUoKTsKIAogCW1hc2sgPSAwOwotCXNwaW5fbG9jaygmdmUtPmJhc2UudGltZWxpbmUubG9jayk7 CisJc3Bpbl9sb2NrKCZ2ZS0+YmFzZS5hY3RpdmUubG9jayk7CiAJaWYgKHZlLT5yZXF1ZXN0KSB7 CiAJCW1hc2sgPSB2ZS0+cmVxdWVzdC0+ZXhlY3V0aW9uX21hc2s7CiAJCWlmICh1bmxpa2VseSgh bWFzaykpCiAJCQl2aXJ0dWFsX3N1Ym1pdF9lcnJvcih2ZSk7CiAJfQotCXNwaW5fdW5sb2NrKCZ2 ZS0+YmFzZS50aW1lbGluZS5sb2NrKTsKKwlzcGluX3VubG9jaygmdmUtPmJhc2UuYWN0aXZlLmxv Y2spOwogCWlmICghbWFzaykKIAkJZ290byBvdXRfaXJxOwogCkBAIC0zMjQ0LDE2ICszMjQwLDE2 IEBAIHN0YXRpYyB2b2lkIHZpcnR1YWxfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcg ZGF0YSkKIAogCQlpZiAodW5saWtlbHkoIShtYXNrICYgc2libGluZy0+bWFzaykpKSB7CiAJCQlp ZiAoIVJCX0VNUFRZX05PREUoJm5vZGUtPnJiKSkgewotCQkJCXNwaW5fbG9jaygmc2libGluZy0+ dGltZWxpbmUubG9jayk7CisJCQkJc3Bpbl9sb2NrKCZzaWJsaW5nLT5hY3RpdmUubG9jayk7CiAJ CQkJcmJfZXJhc2VfY2FjaGVkKCZub2RlLT5yYiwKIAkJCQkJCSZzaWJsaW5nLT5leGVjbGlzdHMu dmlydHVhbCk7CiAJCQkJUkJfQ0xFQVJfTk9ERSgmbm9kZS0+cmIpOwotCQkJCXNwaW5fdW5sb2Nr KCZzaWJsaW5nLT50aW1lbGluZS5sb2NrKTsKKwkJCQlzcGluX3VubG9jaygmc2libGluZy0+YWN0 aXZlLmxvY2spOwogCQkJfQogCQkJY29udGludWU7CiAJCX0KIAotCQlzcGluX2xvY2soJnNpYmxp bmctPnRpbWVsaW5lLmxvY2spOworCQlzcGluX2xvY2soJnNpYmxpbmctPmFjdGl2ZS5sb2NrKTsK IAogCQlpZiAoIVJCX0VNUFRZX05PREUoJm5vZGUtPnJiKSkgewogCQkJLyoKQEAgLTMyOTcsNyAr MzI5Myw3IEBAIHN0YXRpYyB2b2lkIHZpcnR1YWxfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVk IGxvbmcgZGF0YSkKIAkJCXRhc2tsZXRfaGlfc2NoZWR1bGUoJnNpYmxpbmctPmV4ZWNsaXN0cy50 YXNrbGV0KTsKIAkJfQogCi0JCXNwaW5fdW5sb2NrKCZzaWJsaW5nLT50aW1lbGluZS5sb2NrKTsK KwkJc3Bpbl91bmxvY2soJnNpYmxpbmctPmFjdGl2ZS5sb2NrKTsKIAl9CiBvdXRfaXJxOgogCWxv Y2FsX2lycV9lbmFibGUoKTsKQEAgLTMzNjUsMTMgKzMzNjEsNyBAQCBpbnRlbF9leGVjbGlzdHNf Y3JlYXRlX3ZpcnR1YWwoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAogCXNucHJpbnRm KHZlLT5iYXNlLm5hbWUsIHNpemVvZih2ZS0+YmFzZS5uYW1lKSwgInZpcnR1YWwiKTsKIAotCWVy ciA9IGk5MTVfdGltZWxpbmVfaW5pdChjdHgtPmk5MTUsCi0JCQkJICZ2ZS0+YmFzZS50aW1lbGlu ZSwKLQkJCQkgdmUtPmJhc2UubmFtZSwKLQkJCQkgTlVMTCk7Ci0JaWYgKGVycikKLQkJZ290byBl cnJfcHV0OwotCWk5MTVfdGltZWxpbmVfc2V0X3N1YmNsYXNzKCZ2ZS0+YmFzZS50aW1lbGluZSwg VElNRUxJTkVfVklSVFVBTCk7CisJaW50ZWxfZW5naW5lX2luaXRfYWN0aXZlKCZ2ZS0+YmFzZSwg RU5HSU5FX1ZJUlRVQUwpOwogCiAJdmUtPmJhc2UuY29wcyA9ICZ2aXJ0dWFsX2NvbnRleHRfb3Bz OwogCXZlLT5iYXNlLnJlcXVlc3RfYWxsb2MgPSBleGVjbGlzdHNfcmVxdWVzdF9hbGxvYzsKQEAg LTM1NTcsMTEgKzM1NDcsMTEgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfc2hvd19yZXF1ZXN0cyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJdW5zaWduZWQgaW50IGNvdW50OwogCXN0 cnVjdCByYl9ub2RlICpyYjsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5l LmxvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywg ZmxhZ3MpOwogCiAJbGFzdCA9IE5VTEw7CiAJY291bnQgPSAwOwotCWxpc3RfZm9yX2VhY2hfZW50 cnkocnEsICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzLCBsaW5rKSB7CisJbGlzdF9mb3JfZWFj aF9lbnRyeShycSwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5rKSB7CiAJCWlm IChjb3VudCsrIDwgbWF4IC0gMSkKIAkJCXNob3dfcmVxdWVzdChtLCBycSwgIlx0XHRFICIpOwog CQllbHNlCkBAIC0zNjI0LDcgKzM2MTQsNyBAQCB2b2lkIGludGVsX2V4ZWNsaXN0c19zaG93X3Jl cXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJc2hvd19yZXF1ZXN0KG0s IGxhc3QsICJcdFx0ViAiKTsKIAl9CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUt PnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUt PmFjdGl2ZS5sb2NrLCBmbGFncyk7CiB9CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkx NV9TRUxGVEVTVCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCA5 MjkxOWUzNTlmYWUuLjM1ODg4NWE3NGFlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYwpAQCAtNzQyLDE0ICs3NDIsMTMgQEAgc3RhdGljIHZvaWQgcmVzZXRfcHJlcGFy ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIHN0YXRpYyB2b2lkIHJlc2V0X3Jp bmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBib29sIHN0YWxsZWQpCiB7Ci0Jc3Ry dWN0IGk5MTVfdGltZWxpbmUgKnRsID0gJmVuZ2luZS0+dGltZWxpbmU7CiAJc3RydWN0IGk5MTVf cmVxdWVzdCAqcG9zLCAqcnE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1MzIgaGVhZDsKIAog CXJxID0gTlVMTDsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmdGwtPmxvY2ssIGZsYWdzKTsKLQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KHBvcywgJnRsLT5yZXF1ZXN0cywgbGluaykgeworCXNwaW5fbG9ja19p cnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CisJbGlzdF9mb3JfZWFjaF9lbnRy eShwb3MsICZlbmdpbmUtPmFjdGl2ZS5yZXF1ZXN0cywgc2NoZWQubGluaykgewogCQlpZiAoIWk5 MTVfcmVxdWVzdF9jb21wbGV0ZWQocG9zKSkgewogCQkJcnEgPSBwb3M7CiAJCQlicmVhazsKQEAg LTgwMyw3ICs4MDIsNyBAQCBzdGF0aWMgdm9pZCByZXNldF9yaW5nKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwgYm9vbCBzdGFsbGVkKQogCX0KIAllbmdpbmUtPmJ1ZmZlci0+aGVhZCA9 IGludGVsX3Jpbmdfd3JhcChlbmdpbmUtPmJ1ZmZlciwgaGVhZCk7CiAKLQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZ0bC0+bG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVu Z2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIH0KIAogc3RhdGljIHZvaWQgcmVzZXRfZmluaXNo KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKQEAgLTg4MSwxMCArODgwLDEwIEBAIHN0 YXRpYyB2b2lkIGNhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwog Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOworCXNw aW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAKIAkvKiBNYXJr IGFsbCBzdWJtaXR0ZWQgcmVxdWVzdHMgYXMgc2tpcHBlZC4gKi8KLQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHJlcXVlc3QsICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzLCBsaW5rKSB7CisJbGlzdF9m b3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAmZW5naW5lLT5hY3RpdmUucmVxdWVzdHMsIHNjaGVkLmxp bmspIHsKIAkJaWYgKCFpOTE1X3JlcXVlc3Rfc2lnbmFsZWQocmVxdWVzdCkpCiAJCQlkbWFfZmVu Y2Vfc2V0X2Vycm9yKCZyZXF1ZXN0LT5mZW5jZSwgLUVJTyk7CiAKQEAgLTg5Myw3ICs4OTIsNyBA QCBzdGF0aWMgdm9pZCBjYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogCiAJLyogUmVtYWluaW5nIF91bnJlYWR5XyByZXF1ZXN0cyB3aWxsIGJlIG5vcCdlZCB3 aGVuIHN1Ym1pdHRlZCAqLwogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1l bGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3Rp dmUubG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgdm9pZCBpOXh4X3N1Ym1pdF9yZXF1ZXN0KHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCkBAIC0xMzA1LDggKzEzMDQsNiBAQCBpbnRlbF9l bmdpbmVfY3JlYXRlX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiAJR0VN X0JVR19PTighaXNfcG93ZXJfb2ZfMihzaXplKSk7CiAJR0VNX0JVR19PTihSSU5HX0NUTF9TSVpF KHNpemUpICYgflJJTkdfTlJfUEFHRVMpOwotCUdFTV9CVUdfT04odGltZWxpbmUgPT0gJmVuZ2lu ZS0+dGltZWxpbmUpOwotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+aTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7CiAKIAlyaW5nID0ga3phbGxvYyhzaXplb2YoKnJpbmcpLCBHRlBfS0VSTkVM KTsKIAlpZiAoIXJpbmcpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5k ZXggYTkwY2U5MjU2OTZlLi41Y2M0N2EwYzdlYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKQEAgLTU1OCw0ICs1NTgsMTAgQEAgaW50ZWxfZW5naW5lX2dldF9oYW5n Y2hlY2tfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiBpbnRl bF9yZWFkX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX0hBTkdDSEVDSyk7CiB9CiAK K3ZvaWQgaW50ZWxfZW5naW5lX2luaXRfYWN0aXZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwKKwkJCSAgICAgIHVuc2lnbmVkIGludCBzdWJjbGFzcyk7CisjZGVmaW5lIEVOR0lORV9Q SFlTSUNBTAkwCisjZGVmaW5lIEVOR0lORV9NT0NLCTEKKyNkZWZpbmUgRU5HSU5FX1ZJUlRVQUwJ MgorCiAjZW5kaWYgLyogX0lOVEVMX1JJTkdCVUZGRVJfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYwppbmRleCA1Nzk0NDU0M2IxYWYuLmRlNjI2YzZhMDAz ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2xyYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYwpAQCAtNDQ4 LDYgKzQ0OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpkdW1teV9yZXF1ZXN0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWk5MTVfc3dfZmVuY2VfaW5pdCgmcnEt PnN1Ym1pdCwgZHVtbXlfbm90aWZ5KTsKIAlpOTE1X3N3X2ZlbmNlX2NvbW1pdCgmcnEtPnN1Ym1p dCk7CisJc2V0X2JpdChJOTE1X0ZFTkNFX0ZMQUdfQUNUSVZFLCAmcnEtPmZlbmNlLmZsYWdzKTsK IAogCXJldHVybiBycTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9tb2NrX2VuZ2luZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tf ZW5naW5lLmMKaW5kZXggMGIxM2QyOGFkZTY2Li5iOTE0YjAwYjJiYjMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jCkBAIC0yMjQsMTcgKzIyNCwxNyBA QCBzdGF0aWMgdm9pZCBtb2NrX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdDsKIAl1bnNpZ25lZCBsb25n IGZsYWdzOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxh Z3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7CiAK IAkvKiBNYXJrIGFsbCBzdWJtaXR0ZWQgcmVxdWVzdHMgYXMgc2tpcHBlZC4gKi8KLQlsaXN0X2Zv cl9lYWNoX2VudHJ5KHJlcXVlc3QsICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzLCBzY2hlZC5s aW5rKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAmZW5naW5lLT5hY3RpdmUucmVx dWVzdHMsIHNjaGVkLmxpbmspIHsKIAkJaWYgKCFpOTE1X3JlcXVlc3Rfc2lnbmFsZWQocmVxdWVz dCkpCiAJCQlkbWFfZmVuY2Vfc2V0X2Vycm9yKCZyZXF1ZXN0LT5mZW5jZSwgLUVJTyk7CiAKIAkJ aTkxNV9yZXF1ZXN0X21hcmtfY29tcGxldGUocmVxdWVzdCk7CiAJfQogCi0Jc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwogfQogCiBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICptb2NrX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK QEAgLTI2NywxMyArMjY3LDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqbW9ja19lbmdpbmUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJZW5naW5lLT5iYXNlLnJlc2V0LmZpbmlz aCA9IG1vY2tfcmVzZXRfZmluaXNoOwogCWVuZ2luZS0+YmFzZS5jYW5jZWxfcmVxdWVzdHMgPSBt b2NrX2NhbmNlbF9yZXF1ZXN0czsKIAotCWlmIChpOTE1X3RpbWVsaW5lX2luaXQoaTkxNSwKLQkJ CSAgICAgICAmZW5naW5lLT5iYXNlLnRpbWVsaW5lLAotCQkJICAgICAgIGVuZ2luZS0+YmFzZS5u YW1lLAotCQkJICAgICAgIE5VTEwpKQotCQlnb3RvIGVycl9mcmVlOwotCWk5MTVfdGltZWxpbmVf c2V0X3N1YmNsYXNzKCZlbmdpbmUtPmJhc2UudGltZWxpbmUsIFRJTUVMSU5FX0VOR0lORSk7Ci0K KwlpbnRlbF9lbmdpbmVfaW5pdF9hY3RpdmUoJmVuZ2luZS0+YmFzZSwgRU5HSU5FX01PQ0spOwog CWludGVsX2VuZ2luZV9pbml0X2JyZWFkY3J1bWJzKCZlbmdpbmUtPmJhc2UpOwogCiAJLyogZmFr ZSBodyBxdWV1ZSAqLwpAQCAtMjg5LDggKzI4Myw2IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg Km1vY2tfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCiBlcnJfYnJlYWRj cnVtYnM6CiAJaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoJmVuZ2luZS0+YmFzZSk7Ci0J aTkxNV90aW1lbGluZV9maW5pKCZlbmdpbmUtPmJhc2UudGltZWxpbmUpOwotZXJyX2ZyZWU6CiAJ a2ZyZWUoZW5naW5lKTsKIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTMyMyw3ICszMTUsNiBAQCB2b2lk IG1vY2tfZW5naW5lX2ZyZWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWludGVs X2NvbnRleHRfdW5waW4oZW5naW5lLT5rZXJuZWxfY29udGV4dCk7CiAKIAlpbnRlbF9lbmdpbmVf ZmluaV9icmVhZGNydW1icyhlbmdpbmUpOwotCWk5MTVfdGltZWxpbmVfZmluaSgmZW5naW5lLT50 aW1lbGluZSk7CiAKIAlrZnJlZShlbmdpbmUpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfdGltZWxpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMKaW5kZXggNDE2ZDg1MjMzMjYzLi5iZWE0Yzg4MmFh NTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3RpbWVs aW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfdGltZWxpbmUu YwpAQCAtMTMsNyArMTMsNiBAQCB2b2lkIG1vY2tfdGltZWxpbmVfaW5pdChzdHJ1Y3QgaTkxNV90 aW1lbGluZSAqdGltZWxpbmUsIHU2NCBjb250ZXh0KQogCXRpbWVsaW5lLT5pOTE1ID0gTlVMTDsK IAl0aW1lbGluZS0+ZmVuY2VfY29udGV4dCA9IGNvbnRleHQ7CiAKLQlzcGluX2xvY2tfaW5pdCgm dGltZWxpbmUtPmxvY2spOwogCW11dGV4X2luaXQoJnRpbWVsaW5lLT5tdXRleCk7CiAKIAlJTklU X0FDVElWRV9SRVFVRVNUKCZ0aW1lbGluZS0+YmFycmllcik7Ci0tIAoyLjIwLjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==