From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49631C5519F for ; Wed, 25 Nov 2020 10:40:30 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DF8CE2063A for ; Wed, 25 Nov 2020 10:40:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DF8CE2063A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B88CD6E8A8; Wed, 25 Nov 2020 10:40:25 +0000 (UTC) Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4F6A96E89B for ; Wed, 25 Nov 2020 10:40:24 +0000 (UTC) From: Maarten Lankhorst To: intel-gfx@lists.freedesktop.org Date: Wed, 25 Nov 2020 11:39:09 +0100 Message-Id: <20201125104011.606641-2-maarten.lankhorst@linux.intel.com> X-Mailer: git-send-email 2.29.2.222.g5d2a92d10f8 In-Reply-To: <20201125104011.606641-1-maarten.lankhorst@linux.intel.com> References: <20201125104011.606641-1-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v5 01/63] drm/i915: Do not share hwsp across contexts any more, v6 X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" SW5zdGVhZCBvZiBzaGFyaW5nIHBhZ2VzIHdpdGggYnJlYWRjcnVtYnMsIGdpdmUgZWFjaCB0aW1l bGluZSBhCnNpbmdsZSBwYWdlLiBUaGlzIGFsbG93cyB1bnJlbGF0ZWQgdGltZWxpbmVzIG5vdCB0 byBzaGFyZSBsb2NrcwphbnkgbW9yZSBkdXJpbmcgY29tbWFuZCBzdWJtaXNzaW9uLgoKQXMgYW4g YWRkaXRpb25hbCBiZW5lZml0LCBzZXFubyB3cmFwYXJvdW5kIG5vIGxvbmdlciByZXF1aXJlcwpp OTE1X3ZtYV9waW4sIHdoaWNoIG1lYW5zIHdlIG5vIGxvbmdlciBuZWVkIHRvIHdvcnJ5IGFib3V0 IGEKcG90ZW50aWFsIC1FREVBRExLIGF0IGEgcG9pbnQgd2hlcmUgd2UgYXJlIHJlYWR5IHRvIHN1 Ym1pdC4KCkNoYW5nZXMgc2luY2UgdjE6Ci0gRml4IGVycm9uZW91cyBpOTE1X3ZtYV9hY3F1aXJl IHRoYXQgc2hvdWxkIGJlIGEgaTkxNV92bWFfcmVsZWFzZSAoaWNrbGUpLgotIEV4dHJhIGNoZWNr IGZvciBjb21wbGV0aW9uIGluIGludGVsX3JlYWRfaHdzcCgpLgpDaGFuZ2VzIHNpbmNlIHYyOgot IEZpeCBpbmNvbnNpc3RlbnQgaW5kZW50IGluIGh3c3BfYWxsb2MoKSAoa2J1aWxkKQotIG1lbXNl dCBlbnRpcmUgY2FjaGVsaW5lIHRvIDAuCkNoYW5nZXMgc2luY2UgdjM6Ci0gRG8gc2FtZSBpbiBp bnRlbF90aW1lbGluZV9yZXNldF9zZXFubygpLCBhbmQgY2xmbHVzaCBmb3IgZ29vZCBtZWFzdXJl LgpDaGFuZ2VzIHNpbmNlIHY0OgotIFVzZSByZWZjb3VudGluZyBvbiB0aW1lbGluZSwgaW5zdGVh ZCBvZiByZWx5aW5nIG9uIGk5MTVfYWN0aXZlLgotIEZpeCB3YWl0aW5nIG9uIGtlcm5lbCByZXF1 ZXN0cy4KQ2hhbmdlcyBzaW5jZSB2NToKLSBCdW1wIGFtb3VudCBvZiBzbG90cyB0byBtYXhpbXVt ICgyNTYpLCBmb3IgYmVzdCB3cmFwYXJvdW5kcy4KLSBBZGQgaHdzcF9vZmZzZXQgdG8gaTkxNV9y ZXF1ZXN0IHRvIGZpeCBwb3RlbnRpYWwgd3JhcGFyb3VuZCBoYW5nLgotIEVuc3VyZSB0aW1lbGlu ZSB3cmFwIHRlc3Qgd29ya3Mgd2l0aCB0aGUgY2hhbmdlcy4KLSBBc3NpZ24gaHdzcCBpbiBpbnRl bF90aW1lbGluZV9yZWFkX2h3c3AoKSB3aXRoaW4gdGhlIHJjdSBsb2NrIHRvCiAgZml4IGEgaGFu Zy4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhl bGxzdHJvbUBpbnRlbC5jb20+ICN2MQpSZXBvcnRlZC1ieToga2VybmVsIHRlc3Qgcm9ib3QgPGxr cEBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuMl9lbmdpbmVfY3Mu YyAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW42X2VuZ2luZV9jcy5j ICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5j ICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oICAg ICAgfCAgIDQgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgICAgICAgICAg IHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZS5jICAgICAg fCA0MDkgKysrKy0tLS0tLS0tLS0tLS0tCiAuLi4vZ3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVs aW5lX3R5cGVzLmggICAgfCAgMTcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0 X2VuZ2luZV9jcy5jICB8ICAgNSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rf dGltZWxpbmUuYyAgIHwgIDgzICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVz dC5jICAgICAgICAgICB8ICAgNCAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3Qu aCAgICAgICAgICAgfCAgMTcgKy0KIDExIGZpbGVzIGNoYW5nZWQsIDE1MSBpbnNlcnRpb25zKCsp LCA0MTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv Z2VuMl9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjJfZW5naW5lX2Nz LmMKaW5kZXggYjQ5MWE2NDkxOWM4Li45NjQ2MjAwZDI3OTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2dlbjJfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvZ2VuMl9lbmdpbmVfY3MuYwpAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyB1MzIgKl9f Z2VuMl9lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MsCiAJ CQkJICAgaW50IGZsdXNoLCBpbnQgcG9zdCkKIHsKIAlHRU1fQlVHX09OKGk5MTVfcmVxdWVzdF9h Y3RpdmVfdGltZWxpbmUocnEpLT5od3NwX2dndHQgIT0gcnEtPmVuZ2luZS0+c3RhdHVzX3BhZ2Uu dm1hKTsKLQlHRU1fQlVHX09OKG9mZnNldF9pbl9wYWdlKGk5MTVfcmVxdWVzdF9hY3RpdmVfdGlt ZWxpbmUocnEpLT5od3NwX29mZnNldCkgIT0gSTkxNV9HRU1fSFdTX1NFUU5PX0FERFIpOworCUdF TV9CVUdfT04ob2Zmc2V0X2luX3BhZ2UocnEtPmh3c3Bfc2Vxbm8pICE9IEk5MTVfR0VNX0hXU19T RVFOT19BRERSKTsKIAogCSpjcysrID0gTUlfRkxVU0g7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2dlbjZfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9nZW42X2VuZ2luZV9jcy5jCmluZGV4IGNlMzhkMWJjYWJhMy4uZGQwOTRlMjFiYjUxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW42X2VuZ2luZV9jcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjZfZW5naW5lX2NzLmMKQEAgLTE2MSw3ICsxNjEsNyBA QCB1MzIgKmdlbjZfZW1pdF9icmVhZGNydW1iX3JjcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwg dTMyICpjcykKIAkJIFBJUEVfQ09OVFJPTF9EQ19GTFVTSF9FTkFCTEUgfAogCQkgUElQRV9DT05U Uk9MX1FXX1dSSVRFIHwKIAkJIFBJUEVfQ09OVFJPTF9DU19TVEFMTCk7Ci0JKmNzKysgPSBpOTE1 X3JlcXVlc3RfYWN0aXZlX3RpbWVsaW5lKHJxKS0+aHdzcF9vZmZzZXQgfAorCSpjcysrID0gaTkx NV9yZXF1ZXN0X2FjdGl2ZV9vZmZzZXQocnEpIHwKIAkJUElQRV9DT05UUk9MX0dMT0JBTF9HVFQ7 CiAJKmNzKysgPSBycS0+ZmVuY2Uuc2Vxbm87CiAKQEAgLTM1OSw3ICszNTksNyBAQCB1MzIgKmdl bjdfZW1pdF9icmVhZGNydW1iX3JjcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykK IAkJIFBJUEVfQ09OVFJPTF9RV19XUklURSB8CiAJCSBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9J VkIgfAogCQkgUElQRV9DT05UUk9MX0NTX1NUQUxMKTsKLQkqY3MrKyA9IGk5MTVfcmVxdWVzdF9h Y3RpdmVfdGltZWxpbmUocnEpLT5od3NwX29mZnNldDsKKwkqY3MrKyA9IGk5MTVfcmVxdWVzdF9h Y3RpdmVfb2Zmc2V0KHJxKTsKIAkqY3MrKyA9IHJxLT5mZW5jZS5zZXFubzsKIAogCSpjcysrID0g TUlfVVNFUl9JTlRFUlJVUFQ7CkBAIC0zNzQsNyArMzc0LDcgQEAgdTMyICpnZW43X2VtaXRfYnJl YWRjcnVtYl9yY3Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCiB1MzIgKmdlbjZf ZW1pdF9icmVhZGNydW1iX3hjcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykKIHsK IAlHRU1fQlVHX09OKGk5MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUocnEpLT5od3NwX2dndHQg IT0gcnEtPmVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKTsKLQlHRU1fQlVHX09OKG9mZnNldF9pbl9w YWdlKGk5MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUocnEpLT5od3NwX29mZnNldCkgIT0gSTkx NV9HRU1fSFdTX1NFUU5PX0FERFIpOworCUdFTV9CVUdfT04ob2Zmc2V0X2luX3BhZ2UocnEtPmh3 c3Bfc2Vxbm8pICE9IEk5MTVfR0VNX0hXU19TRVFOT19BRERSKTsKIAogCSpjcysrID0gTUlfRkxV U0hfRFcgfCBNSV9GTFVTSF9EV19PUF9TVE9SRURXIHwgTUlfRkxVU0hfRFdfU1RPUkVfSU5ERVg7 CiAJKmNzKysgPSBJOTE1X0dFTV9IV1NfU0VRTk9fQUREUiB8IE1JX0ZMVVNIX0RXX1VTRV9HVFQ7 CkBAIC0zOTQsNyArMzk0LDcgQEAgdTMyICpnZW43X2VtaXRfYnJlYWRjcnVtYl94Y3Moc3RydWN0 IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCiAJaW50IGk7CiAKIAlHRU1fQlVHX09OKGk5MTVf cmVxdWVzdF9hY3RpdmVfdGltZWxpbmUocnEpLT5od3NwX2dndHQgIT0gcnEtPmVuZ2luZS0+c3Rh dHVzX3BhZ2Uudm1hKTsKLQlHRU1fQlVHX09OKG9mZnNldF9pbl9wYWdlKGk5MTVfcmVxdWVzdF9h Y3RpdmVfdGltZWxpbmUocnEpLT5od3NwX29mZnNldCkgIT0gSTkxNV9HRU1fSFdTX1NFUU5PX0FE RFIpOworCUdFTV9CVUdfT04ob2Zmc2V0X2luX3BhZ2UocnEtPmh3c3Bfc2Vxbm8pICE9IEk5MTVf R0VNX0hXU19TRVFOT19BRERSKTsKIAogCSpjcysrID0gTUlfRkxVU0hfRFcgfCBNSV9JTlZBTElE QVRFX1RMQiB8CiAJCU1JX0ZMVVNIX0RXX09QX1NUT1JFRFcgfCBNSV9GTFVTSF9EV19TVE9SRV9J TkRFWDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9j cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggZDRl OTg4YjI4MTZhLi43ZmFkZjY4MWM5N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2VuZ2luZV9jcy5jCkBAIC03NTEsNiArNzUxLDcgQEAgc3RhdGljIGludCBtZWFzdXJlX2JyZWFk Y3J1bWJfZHcoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogCWZyYW1lLT5ycS5lbmdpbmUgPSBl bmdpbmU7CiAJZnJhbWUtPnJxLmNvbnRleHQgPSBjZTsKIAlyY3VfYXNzaWduX3BvaW50ZXIoZnJh bWUtPnJxLnRpbWVsaW5lLCBjZS0+dGltZWxpbmUpOworCWZyYW1lLT5ycS5od3NwX3NlcW5vID0g Y2UtPnRpbWVsaW5lLT5od3NwX3NlcW5vOwogCiAJZnJhbWUtPnJpbmcudmFkZHIgPSBmcmFtZS0+ Y3M7CiAJZnJhbWUtPnJpbmcuc2l6ZSA9IHNpemVvZihmcmFtZS0+Y3MpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmgKaW5kZXggNmQzOWE0YTExYmYzLi43YWZmODM1MGMz NjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfdHlwZXMuaApAQCAtMzksMTAg KzM5LDYgQEAgc3RydWN0IGludGVsX2d0IHsKIAlzdHJ1Y3QgaW50ZWxfZ3RfdGltZWxpbmVzIHsK IAkJc3BpbmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0cyBhY3RpdmVfbGlzdCAqLwogCQlzdHJ1Y3Qg bGlzdF9oZWFkIGFjdGl2ZV9saXN0OwotCi0JCS8qIFBhY2sgbXVsdGlwbGUgdGltZWxpbmVzJyBz ZXFub3MgaW50byB0aGUgc2FtZSBwYWdlICovCi0JCXNwaW5sb2NrX3QgaHdzcF9sb2NrOwotCQlz dHJ1Y3QgbGlzdF9oZWFkIGh3c3BfZnJlZV9saXN0OwogCX0gdGltZWxpbmVzOwogCiAJc3RydWN0 IGludGVsX2d0X3JlcXVlc3RzIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKaW5kZXgg MzBhYTU5ZmI3MjcxLi5jNWM1MGVlODM1ZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xy Yy5jCkBAIC0zNTkyLDE1ICszNTkyLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfY29u dGV4dF9vcHMgZXhlY2xpc3RzX2NvbnRleHRfb3BzID0gewogCiBzdGF0aWMgdTMyIGh3c3Bfb2Zm c2V0KGNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewotCWNvbnN0IHN0cnVjdCBpbnRl bF90aW1lbGluZV9jYWNoZWxpbmUgKmNsOworCWNvbnN0IHN0cnVjdCBpbnRlbF90aW1lbGluZSAq dGw7CiAKLQkvKiBCZWZvcmUgdGhlIHJlcXVlc3QgaXMgZXhlY3V0ZWQsIHRoZSB0aW1lbGluZS9j YWNobGluZSBpcyBmaXhlZCAqLworCS8qIEJlZm9yZSB0aGUgcmVxdWVzdCBpcyBleGVjdXRlZCwg dGhlIHRpbWVsaW5lIGlzIGZpeGVkICovCisJdGwgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVk KHJxLT50aW1lbGluZSwKKwkJCQkgICAgICAgIWk5MTVfcmVxdWVzdF9zaWduYWxlZChycSkpOwog Ci0JY2wgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHJxLT5od3NwX2NhY2hlbGluZSwgMSk7 Ci0JaWYgKGNsKQotCQlyZXR1cm4gY2wtPmdndHRfb2Zmc2V0OwotCi0JcmV0dXJuIHJjdV9kZXJl ZmVyZW5jZV9wcm90ZWN0ZWQocnEtPnRpbWVsaW5lLCAxKS0+aHdzcF9vZmZzZXQ7CisJcmV0dXJu IHBhZ2VfbWFza19iaXRzKHRsLT5od3NwX29mZnNldCkgKyBvZmZzZXRfaW5fcGFnZShycS0+aHdz cF9zZXFubyk7CiB9CiAKIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2luaXRfYnJlYWRjcnVtYihzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGlu ZS5jCmluZGV4IDUxMmFmYWNkMmJkYy4uNzg5NTMwYTYxMTVmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX3RpbWVsaW5lLmMKQEAgLTEyLDIxICsxMiw5IEBACiAjaW5jbHVkZSAiaW50 ZWxfcmluZy5oIgogI2luY2x1ZGUgImludGVsX3RpbWVsaW5lLmgiCiAKLSNkZWZpbmUgcHRyX3Nl dF9iaXQocHRyLCBiaXQpICgodHlwZW9mKHB0cikpKCh1bnNpZ25lZCBsb25nKShwdHIpIHwgQklU KGJpdCkpKQotI2RlZmluZSBwdHJfdGVzdF9iaXQocHRyLCBiaXQpICgodW5zaWduZWQgbG9uZyko cHRyKSAmIEJJVChiaXQpKQorI2RlZmluZSBUSU1FTElORV9TRVFOT19CWVRFUyA4CiAKLSNkZWZp bmUgQ0FDSEVMSU5FX0JJVFMgNgotI2RlZmluZSBDQUNIRUxJTkVfRlJFRSBDQUNIRUxJTkVfQklU UwotCi1zdHJ1Y3QgaW50ZWxfdGltZWxpbmVfaHdzcCB7Ci0Jc3RydWN0IGludGVsX2d0ICpndDsK LQlzdHJ1Y3QgaW50ZWxfZ3RfdGltZWxpbmVzICpndF90aW1lbGluZXM7Ci0Jc3RydWN0IGxpc3Rf aGVhZCBmcmVlX2xpbms7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0JdTY0IGZyZWVfYml0bWFw OwotfTsKLQotc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqX19od3NwX2FsbG9jKHN0cnVjdCBpbnRl bF9ndCAqZ3QpCitzdGF0aWMgc3RydWN0IGk5MTVfdm1hICpod3NwX2FsbG9jKHN0cnVjdCBpbnRl bF9ndCAqZ3QpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwpAQCAtNDUsMjIyICszMyw1OSBAQCBz dGF0aWMgc3RydWN0IGk5MTVfdm1hICpfX2h3c3BfYWxsb2Moc3RydWN0IGludGVsX2d0ICpndCkK IAlyZXR1cm4gdm1hOwogfQogCi1zdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKLWh3c3BfYWxsb2Mo c3RydWN0IGludGVsX3RpbWVsaW5lICp0aW1lbGluZSwgdW5zaWduZWQgaW50ICpjYWNoZWxpbmUp Ci17Ci0Jc3RydWN0IGludGVsX2d0X3RpbWVsaW5lcyAqZ3QgPSAmdGltZWxpbmUtPmd0LT50aW1l bGluZXM7Ci0Jc3RydWN0IGludGVsX3RpbWVsaW5lX2h3c3AgKmh3c3A7Ci0KLQlCVUlMRF9CVUdf T04oQklUU19QRVJfVFlQRSh1NjQpICogQ0FDSEVMSU5FX0JZVEVTID4gUEFHRV9TSVpFKTsKLQot CXNwaW5fbG9ja19pcnEoJmd0LT5od3NwX2xvY2spOwotCi0JLyogaHdzcF9mcmVlX2xpc3Qgb25s eSBjb250YWlucyBIV1NQIHRoYXQgaGF2ZSBhdmFpbGFibGUgY2FjaGVsaW5lcyAqLwotCWh3c3Ag PSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmd0LT5od3NwX2ZyZWVfbGlzdCwKLQkJCQkJdHlw ZW9mKCpod3NwKSwgZnJlZV9saW5rKTsKLQlpZiAoIWh3c3ApIHsKLQkJc3RydWN0IGk5MTVfdm1h ICp2bWE7Ci0KLQkJc3Bpbl91bmxvY2tfaXJxKCZndC0+aHdzcF9sb2NrKTsKLQotCQlod3NwID0g a21hbGxvYyhzaXplb2YoKmh3c3ApLCBHRlBfS0VSTkVMKTsKLQkJaWYgKCFod3NwKQotCQkJcmV0 dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQkJdm1hID0gX19od3NwX2FsbG9jKHRpbWVsaW5lLT5n dCk7Ci0JCWlmIChJU19FUlIodm1hKSkgewotCQkJa2ZyZWUoaHdzcCk7Ci0JCQlyZXR1cm4gdm1h OwotCQl9Ci0KLQkJR1RfVFJBQ0UodGltZWxpbmUtPmd0LCAibmV3IEhXU1AgYWxsb2NhdGVkXG4i KTsKLQotCQl2bWEtPnByaXZhdGUgPSBod3NwOwotCQlod3NwLT5ndCA9IHRpbWVsaW5lLT5ndDsK LQkJaHdzcC0+dm1hID0gdm1hOwotCQlod3NwLT5mcmVlX2JpdG1hcCA9IH4wdWxsOwotCQlod3Nw LT5ndF90aW1lbGluZXMgPSBndDsKLQotCQlzcGluX2xvY2tfaXJxKCZndC0+aHdzcF9sb2NrKTsK LQkJbGlzdF9hZGQoJmh3c3AtPmZyZWVfbGluaywgJmd0LT5od3NwX2ZyZWVfbGlzdCk7Ci0JfQot Ci0JR0VNX0JVR19PTighaHdzcC0+ZnJlZV9iaXRtYXApOwotCSpjYWNoZWxpbmUgPSBfX2ZmczY0 KGh3c3AtPmZyZWVfYml0bWFwKTsKLQlod3NwLT5mcmVlX2JpdG1hcCAmPSB+QklUX1VMTCgqY2Fj aGVsaW5lKTsKLQlpZiAoIWh3c3AtPmZyZWVfYml0bWFwKQotCQlsaXN0X2RlbCgmaHdzcC0+ZnJl ZV9saW5rKTsKLQotCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmh3c3BfbG9jayk7Ci0KLQlHRU1fQlVH X09OKGh3c3AtPnZtYS0+cHJpdmF0ZSAhPSBod3NwKTsKLQlyZXR1cm4gaHdzcC0+dm1hOwotfQot Ci1zdGF0aWMgdm9pZCBfX2lkbGVfaHdzcF9mcmVlKHN0cnVjdCBpbnRlbF90aW1lbGluZV9od3Nw ICpod3NwLCBpbnQgY2FjaGVsaW5lKQotewotCXN0cnVjdCBpbnRlbF9ndF90aW1lbGluZXMgKmd0 ID0gaHdzcC0+Z3RfdGltZWxpbmVzOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xv Y2tfaXJxc2F2ZSgmZ3QtPmh3c3BfbG9jaywgZmxhZ3MpOwotCi0JLyogQXMgYSBjYWNoZWxpbmUg YmVjb21lcyBhdmFpbGFibGUsIHB1Ymxpc2ggdGhlIEhXU1Agb24gdGhlIGZyZWVsaXN0ICovCi0J aWYgKCFod3NwLT5mcmVlX2JpdG1hcCkKLQkJbGlzdF9hZGRfdGFpbCgmaHdzcC0+ZnJlZV9saW5r LCAmZ3QtPmh3c3BfZnJlZV9saXN0KTsKLQotCUdFTV9CVUdfT04oY2FjaGVsaW5lID49IEJJVFNf UEVSX1RZUEUoaHdzcC0+ZnJlZV9iaXRtYXApKTsKLQlod3NwLT5mcmVlX2JpdG1hcCB8PSBCSVRf VUxMKGNhY2hlbGluZSk7Ci0KLQkvKiBBbmQgaWYgbm8gb25lIGlzIGxlZnQgdXNpbmcgaXQsIGdp dmUgdGhlIHBhZ2UgYmFjayB0byB0aGUgc3lzdGVtICovCi0JaWYgKGh3c3AtPmZyZWVfYml0bWFw ID09IH4wdWxsKSB7Ci0JCWk5MTVfdm1hX3B1dChod3NwLT52bWEpOwotCQlsaXN0X2RlbCgmaHdz cC0+ZnJlZV9saW5rKTsKLQkJa2ZyZWUoaHdzcCk7Ci0JfQotCi0Jc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZ3QtPmh3c3BfbG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgdm9pZCBfX3JjdV9jYWNo ZWxpbmVfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSkKLXsKLQlzdHJ1Y3QgaW50ZWxfdGltZWxp bmVfY2FjaGVsaW5lICpjbCA9Ci0JCWNvbnRhaW5lcl9vZihyY3UsIHR5cGVvZigqY2wpLCByY3Up OwotCi0JaTkxNV9hY3RpdmVfZmluaSgmY2wtPmFjdGl2ZSk7Ci0Ja2ZyZWUoY2wpOwotfQotCi1z dGF0aWMgdm9pZCBfX2lkbGVfY2FjaGVsaW5lX2ZyZWUoc3RydWN0IGludGVsX3RpbWVsaW5lX2Nh Y2hlbGluZSAqY2wpCi17Ci0JR0VNX0JVR19PTighaTkxNV9hY3RpdmVfaXNfaWRsZSgmY2wtPmFj dGl2ZSkpOwotCi0JaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChjbC0+aHdzcC0+dm1hLT5vYmop OwotCWk5MTVfdm1hX3B1dChjbC0+aHdzcC0+dm1hKTsKLQlfX2lkbGVfaHdzcF9mcmVlKGNsLT5o d3NwLCBwdHJfdW5tYXNrX2JpdHMoY2wtPnZhZGRyLCBDQUNIRUxJTkVfQklUUykpOwotCi0JY2Fs bF9yY3UoJmNsLT5yY3UsIF9fcmN1X2NhY2hlbGluZV9mcmVlKTsKLX0KLQogX19pOTE1X2FjdGl2 ZV9jYWxsCi1zdGF0aWMgdm9pZCBfX2NhY2hlbGluZV9yZXRpcmUoc3RydWN0IGk5MTVfYWN0aXZl ICphY3RpdmUpCitzdGF0aWMgdm9pZCBfX3RpbWVsaW5lX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3Rp dmUgKmFjdGl2ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCA9Ci0J CWNvbnRhaW5lcl9vZihhY3RpdmUsIHR5cGVvZigqY2wpLCBhY3RpdmUpOworCXN0cnVjdCBpbnRl bF90aW1lbGluZSAqdGwgPQorCQljb250YWluZXJfb2YoYWN0aXZlLCB0eXBlb2YoKnRsKSwgYWN0 aXZlKTsKIAotCWk5MTVfdm1hX3VucGluKGNsLT5od3NwLT52bWEpOwotCWlmIChwdHJfdGVzdF9i aXQoY2wtPnZhZGRyLCBDQUNIRUxJTkVfRlJFRSkpCi0JCV9faWRsZV9jYWNoZWxpbmVfZnJlZShj bCk7CisJaTkxNV92bWFfdW5waW4odGwtPmh3c3BfZ2d0dCk7CisJaW50ZWxfdGltZWxpbmVfcHV0 KHRsKTsKIH0KIAotc3RhdGljIGludCBfX2NhY2hlbGluZV9hY3RpdmUoc3RydWN0IGk5MTVfYWN0 aXZlICphY3RpdmUpCitzdGF0aWMgaW50IF9fdGltZWxpbmVfYWN0aXZlKHN0cnVjdCBpOTE1X2Fj dGl2ZSAqYWN0aXZlKQogewotCXN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgKmNsID0K LQkJY29udGFpbmVyX29mKGFjdGl2ZSwgdHlwZW9mKCpjbCksIGFjdGl2ZSk7CisJc3RydWN0IGlu dGVsX3RpbWVsaW5lICp0bCA9CisJCWNvbnRhaW5lcl9vZihhY3RpdmUsIHR5cGVvZigqdGwpLCBh Y3RpdmUpOwogCi0JX19pOTE1X3ZtYV9waW4oY2wtPmh3c3AtPnZtYSk7CisJX19pOTE1X3ZtYV9w aW4odGwtPmh3c3BfZ2d0dCk7CisJaW50ZWxfdGltZWxpbmVfZ2V0KHRsKTsKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIHN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgKgotY2FjaGVsaW5l X2FsbG9jKHN0cnVjdCBpbnRlbF90aW1lbGluZV9od3NwICpod3NwLCB1bnNpZ25lZCBpbnQgY2Fj aGVsaW5lKQotewotCXN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgKmNsOwotCXZvaWQg KnZhZGRyOwotCi0JR0VNX0JVR19PTihjYWNoZWxpbmUgPj0gQklUKENBQ0hFTElORV9CSVRTKSk7 Ci0KLQljbCA9IGttYWxsb2Moc2l6ZW9mKCpjbCksIEdGUF9LRVJORUwpOwotCWlmICghY2wpCi0J CXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCi0JdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGlu X21hcChod3NwLT52bWEtPm9iaiwgSTkxNV9NQVBfV0IpOwotCWlmIChJU19FUlIodmFkZHIpKSB7 Ci0JCWtmcmVlKGNsKTsKLQkJcmV0dXJuIEVSUl9DQVNUKHZhZGRyKTsKLQl9Ci0KLQlpOTE1X3Zt YV9nZXQoaHdzcC0+dm1hKTsKLQljbC0+aHdzcCA9IGh3c3A7Ci0JY2wtPnZhZGRyID0gcGFnZV9w YWNrX2JpdHModmFkZHIsIGNhY2hlbGluZSk7Ci0KLQlpOTE1X2FjdGl2ZV9pbml0KCZjbC0+YWN0 aXZlLCBfX2NhY2hlbGluZV9hY3RpdmUsIF9fY2FjaGVsaW5lX3JldGlyZSk7Ci0KLQlyZXR1cm4g Y2w7Ci19Ci0KLXN0YXRpYyB2b2lkIGNhY2hlbGluZV9hY3F1aXJlKHN0cnVjdCBpbnRlbF90aW1l bGluZV9jYWNoZWxpbmUgKmNsLAotCQkJICAgICAgdTMyIGdndHRfb2Zmc2V0KQotewotCWlmICgh Y2wpCi0JCXJldHVybjsKLQotCWNsLT5nZ3R0X29mZnNldCA9IGdndHRfb2Zmc2V0OwotCWk5MTVf YWN0aXZlX2FjcXVpcmUoJmNsLT5hY3RpdmUpOwotfQotCi1zdGF0aWMgdm9pZCBjYWNoZWxpbmVf cmVsZWFzZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlpZiAoY2wp Ci0JCWk5MTVfYWN0aXZlX3JlbGVhc2UoJmNsLT5hY3RpdmUpOwotfQotCi1zdGF0aWMgdm9pZCBj YWNoZWxpbmVfZnJlZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlp ZiAoIWk5MTVfYWN0aXZlX2FjcXVpcmVfaWZfYnVzeSgmY2wtPmFjdGl2ZSkpIHsKLQkJX19pZGxl X2NhY2hlbGluZV9mcmVlKGNsKTsKLQkJcmV0dXJuOwotCX0KLQotCUdFTV9CVUdfT04ocHRyX3Rl c3RfYml0KGNsLT52YWRkciwgQ0FDSEVMSU5FX0ZSRUUpKTsKLQljbC0+dmFkZHIgPSBwdHJfc2V0 X2JpdChjbC0+dmFkZHIsIENBQ0hFTElORV9GUkVFKTsKLQotCWk5MTVfYWN0aXZlX3JlbGVhc2Uo JmNsLT5hY3RpdmUpOwotfQotCiBzdGF0aWMgaW50IGludGVsX3RpbWVsaW5lX2luaXQoc3RydWN0 IGludGVsX3RpbWVsaW5lICp0aW1lbGluZSwKIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZ3QgKmd0 LAogCQkJICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqaHdzcCwKIAkJCSAgICAgICB1bnNpZ25lZCBp bnQgb2Zmc2V0KQogewogCXZvaWQgKnZhZGRyOworCXUzMiAqc2Vxbm87CiAKIAlrcmVmX2luaXQo JnRpbWVsaW5lLT5rcmVmKTsKIAlhdG9taWNfc2V0KCZ0aW1lbGluZS0+cGluX2NvdW50LCAwKTsK IAogCXRpbWVsaW5lLT5ndCA9IGd0OwogCi0JdGltZWxpbmUtPmhhc19pbml0aWFsX2JyZWFkY3J1 bWIgPSAhaHdzcDsKLQl0aW1lbGluZS0+aHdzcF9jYWNoZWxpbmUgPSBOVUxMOwotCi0JaWYgKCFo d3NwKSB7Ci0JCXN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgKmNsOwotCQl1bnNpZ25l ZCBpbnQgY2FjaGVsaW5lOwotCi0JCWh3c3AgPSBod3NwX2FsbG9jKHRpbWVsaW5lLCAmY2FjaGVs aW5lKTsKKwlpZiAoaHdzcCkgeworCQl0aW1lbGluZS0+aHdzcF9vZmZzZXQgPSBvZmZzZXQ7CisJ CXRpbWVsaW5lLT5od3NwX2dndHQgPSBpOTE1X3ZtYV9nZXQoaHdzcCk7CisJfSBlbHNlIHsKKwkJ dGltZWxpbmUtPmhhc19pbml0aWFsX2JyZWFkY3J1bWIgPSB0cnVlOworCQlod3NwID0gaHdzcF9h bGxvYyhndCk7CiAJCWlmIChJU19FUlIoaHdzcCkpCiAJCQlyZXR1cm4gUFRSX0VSUihod3NwKTsK LQotCQljbCA9IGNhY2hlbGluZV9hbGxvYyhod3NwLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCQlp ZiAoSVNfRVJSKGNsKSkgewotCQkJX19pZGxlX2h3c3BfZnJlZShod3NwLT5wcml2YXRlLCBjYWNo ZWxpbmUpOwotCQkJcmV0dXJuIFBUUl9FUlIoY2wpOwotCQl9Ci0KLQkJdGltZWxpbmUtPmh3c3Bf Y2FjaGVsaW5lID0gY2w7Ci0JCXRpbWVsaW5lLT5od3NwX29mZnNldCA9IGNhY2hlbGluZSAqIENB Q0hFTElORV9CWVRFUzsKLQotCQl2YWRkciA9IHBhZ2VfbWFza19iaXRzKGNsLT52YWRkcik7Ci0J fSBlbHNlIHsKLQkJdGltZWxpbmUtPmh3c3Bfb2Zmc2V0ID0gb2Zmc2V0OwotCQl2YWRkciA9IGk5 MTVfZ2VtX29iamVjdF9waW5fbWFwKGh3c3AtPm9iaiwgSTkxNV9NQVBfV0IpOwotCQlpZiAoSVNf RVJSKHZhZGRyKSkKLQkJCXJldHVybiBQVFJfRVJSKHZhZGRyKTsKKwkJdGltZWxpbmUtPmh3c3Bf Z2d0dCA9IGh3c3A7CiAJfQogCi0JdGltZWxpbmUtPmh3c3Bfc2Vxbm8gPQotCQltZW1zZXQodmFk ZHIgKyB0aW1lbGluZS0+aHdzcF9vZmZzZXQsIDAsIENBQ0hFTElORV9CWVRFUyk7CisJdmFkZHIg PSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChod3NwLT5vYmosIEk5MTVfTUFQX1dCKTsKKwlpZiAo SVNfRVJSKHZhZGRyKSkKKwkJcmV0dXJuIFBUUl9FUlIodmFkZHIpOworCisJdGltZWxpbmUtPmh3 c3BfbWFwID0gdmFkZHI7CisJc2Vxbm8gPSB2YWRkciArIHRpbWVsaW5lLT5od3NwX29mZnNldDsK KwlXUklURV9PTkNFKCpzZXFubywgMCk7CisJdGltZWxpbmUtPmh3c3Bfc2Vxbm8gPSBzZXFubzsK IAotCXRpbWVsaW5lLT5od3NwX2dndHQgPSBpOTE1X3ZtYV9nZXQoaHdzcCk7CiAJR0VNX0JVR19P Tih0aW1lbGluZS0+aHdzcF9vZmZzZXQgPj0gaHdzcC0+c2l6ZSk7CiAKIAl0aW1lbGluZS0+ZmVu Y2VfY29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwpAQCAtMjcxLDYgKzk2LDcg QEAgc3RhdGljIGludCBpbnRlbF90aW1lbGluZV9pbml0KHN0cnVjdCBpbnRlbF90aW1lbGluZSAq dGltZWxpbmUsCiAJSU5JVF9MSVNUX0hFQUQoJnRpbWVsaW5lLT5yZXF1ZXN0cyk7CiAKIAlpOTE1 X3N5bmNtYXBfaW5pdCgmdGltZWxpbmUtPnN5bmMpOworCWk5MTVfYWN0aXZlX2luaXQoJnRpbWVs aW5lLT5hY3RpdmUsIF9fdGltZWxpbmVfYWN0aXZlLCBfX3RpbWVsaW5lX3JldGlyZSk7CiAKIAly ZXR1cm4gMDsKIH0KQEAgLTI4MSw5ICsxMDcsNiBAQCB2b2lkIGludGVsX2d0X2luaXRfdGltZWxp bmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAKIAlzcGluX2xvY2tfaW5pdCgmdGltZWxpbmVzLT5s b2NrKTsKIAlJTklUX0xJU1RfSEVBRCgmdGltZWxpbmVzLT5hY3RpdmVfbGlzdCk7Ci0KLQlzcGlu X2xvY2tfaW5pdCgmdGltZWxpbmVzLT5od3NwX2xvY2spOwotCUlOSVRfTElTVF9IRUFEKCZ0aW1l bGluZXMtPmh3c3BfZnJlZV9saXN0KTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfdGltZWxpbmVf ZmluaShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lKQpAQCAtMjkyLDEyICsxMTUsMTAg QEAgc3RhdGljIHZvaWQgaW50ZWxfdGltZWxpbmVfZmluaShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUg KnRpbWVsaW5lKQogCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJnRpbWVsaW5lLT5yZXF1ZXN0cykp OwogCUdFTV9CVUdfT04odGltZWxpbmUtPnJldGlyZSk7CiAKLQlpZiAodGltZWxpbmUtPmh3c3Bf Y2FjaGVsaW5lKQotCQljYWNoZWxpbmVfZnJlZSh0aW1lbGluZS0+aHdzcF9jYWNoZWxpbmUpOwot CWVsc2UKLQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCh0aW1lbGluZS0+aHdzcF9nZ3R0LT5v YmopOworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAodGltZWxpbmUtPmh3c3BfZ2d0dC0+b2Jq KTsKIAogCWk5MTVfdm1hX3B1dCh0aW1lbGluZS0+aHdzcF9nZ3R0KTsKKwlpOTE1X2FjdGl2ZV9m aW5pKCZ0aW1lbGluZS0+YWN0aXZlKTsKIH0KIAogc3RydWN0IGludGVsX3RpbWVsaW5lICoKQEAg LTM0NCw5ICsxNjUsOSBAQCBpbnQgaW50ZWxfdGltZWxpbmVfcGluKHN0cnVjdCBpbnRlbF90aW1l bGluZSAqdGwsIHN0cnVjdCBpOTE1X2dlbV93d19jdHggKnd3KQogCUdUX1RSQUNFKHRsLT5ndCwg InRpbWVsaW5lOiVsbHggdXNpbmcgSFdTUCBvZmZzZXQ6JXhcbiIsCiAJCSB0bC0+ZmVuY2VfY29u dGV4dCwgdGwtPmh3c3Bfb2Zmc2V0KTsKIAotCWNhY2hlbGluZV9hY3F1aXJlKHRsLT5od3NwX2Nh Y2hlbGluZSwgdGwtPmh3c3Bfb2Zmc2V0KTsKKwlpOTE1X2FjdGl2ZV9hY3F1aXJlKCZ0bC0+YWN0 aXZlKTsKIAlpZiAoYXRvbWljX2ZldGNoX2luYygmdGwtPnBpbl9jb3VudCkpIHsKLQkJY2FjaGVs aW5lX3JlbGVhc2UodGwtPmh3c3BfY2FjaGVsaW5lKTsKKwkJaTkxNV9hY3RpdmVfcmVsZWFzZSgm dGwtPmFjdGl2ZSk7CiAJCV9faTkxNV92bWFfdW5waW4odGwtPmh3c3BfZ2d0dCk7CiAJfQogCkBA IC0zNTUsOSArMTc2LDEzIEBAIGludCBpbnRlbF90aW1lbGluZV9waW4oc3RydWN0IGludGVsX3Rp bWVsaW5lICp0bCwgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3cpCiAKIHZvaWQgaW50ZWxfdGlt ZWxpbmVfcmVzZXRfc2Vxbm8oY29uc3Qgc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCkKIHsKKwl1 MzIgKmh3c3Bfc2Vxbm8gPSAodTMyICopdGwtPmh3c3Bfc2Vxbm87CiAJLyogTXVzdCBiZSBwaW5u ZWQgdG8gYmUgd3JpdGFibGUsIGFuZCBubyByZXF1ZXN0cyBpbiBmbGlnaHQuICovCiAJR0VNX0JV R19PTighYXRvbWljX3JlYWQoJnRsLT5waW5fY291bnQpKTsKLQlXUklURV9PTkNFKCoodTMyICop dGwtPmh3c3Bfc2Vxbm8sIHRsLT5zZXFubyk7CisKKwltZW1zZXQoaHdzcF9zZXFubyArIDEsIDAs IFRJTUVMSU5FX1NFUU5PX0JZVEVTIC0gc2l6ZW9mKCpod3NwX3NlcW5vKSk7CisJV1JJVEVfT05D RSgqaHdzcF9zZXFubywgdGwtPnNlcW5vKTsKKwljbGZsdXNoKGh3c3Bfc2Vxbm8pOwogfQogCiB2 b2lkIGludGVsX3RpbWVsaW5lX2VudGVyKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwpCkBAIC00 MzMsMTA2ICsyNTgsMjMgQEAgc3RhdGljIHUzMiB0aW1lbGluZV9hZHZhbmNlKHN0cnVjdCBpbnRl bF90aW1lbGluZSAqdGwpCiAJcmV0dXJuIHRsLT5zZXFubyArPSAxICsgdGwtPmhhc19pbml0aWFs X2JyZWFkY3J1bWI7CiB9CiAKLXN0YXRpYyB2b2lkIHRpbWVsaW5lX3JvbGxiYWNrKHN0cnVjdCBp bnRlbF90aW1lbGluZSAqdGwpCi17Ci0JdGwtPnNlcW5vIC09IDEgKyB0bC0+aGFzX2luaXRpYWxf YnJlYWRjcnVtYjsKLX0KLQogc3RhdGljIG5vaW5saW5lIGludAogX19pbnRlbF90aW1lbGluZV9n ZXRfc2Vxbm8oc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwKLQkJCSAgIHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxLAogCQkJICAgdTMyICpzZXFubykKIHsKLQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVf Y2FjaGVsaW5lICpjbDsKLQl1bnNpZ25lZCBpbnQgY2FjaGVsaW5lOwotCXN0cnVjdCBpOTE1X3Zt YSAqdm1hOwotCXZvaWQgKnZhZGRyOwotCWludCBlcnI7Ci0KLQltaWdodF9sb2NrKCZ0bC0+Z3Qt PmdndHQtPnZtLm11dGV4KTsKLQlHVF9UUkFDRSh0bC0+Z3QsICJ0aW1lbGluZTolbGx4IHdyYXBw ZWRcbiIsIHRsLT5mZW5jZV9jb250ZXh0KTsKLQotCS8qCi0JICogSWYgdGhlcmUgaXMgYW4gb3V0 c3RhbmRpbmcgR1BVIHJlZmVyZW5jZSB0byB0aGlzIGNhY2hlbGluZSwKLQkgKiBzdWNoIGFzIGl0 IGJlaW5nIHNhbXBsZWQgYnkgYSBIVyBzZW1hcGhvcmUgb24gYW5vdGhlciB0aW1lbGluZSwKLQkg KiB3ZSBjYW5ub3Qgd3JhcGFyb3VuZCBvdXIgc2Vxbm8gdmFsdWUgKHRoZSBIVyBzZW1hcGhvcmUg ZG9lcwotCSAqIGEgc3RyaWN0IGdyZWF0ZXItdGhhbi1vci1lcXVhbHMgY29tcGFyZSwgbm90IGk5 MTVfc2Vxbm9fcGFzc2VkKS4KLQkgKiBTbyBpZiB0aGUgY2FjaGVsaW5lIGlzIHN0aWxsIGJ1c3ks IHdlIG11c3QgZGV0YWNoIG91cnNlbHZlcwotCSAqIGZyb20gaXQgYW5kIGxlYXZlIGl0IGluZmxp Z2h0IGFsb25nc2lkZSBpdHMgdXNlcnMuCi0JICoKLQkgKiBIb3dldmVyLCBpZiBub2JvZHkgaXMg d2F0Y2hpbmcgYW5kIHdlIGNhbiBndWFyYW50ZWUgdGhhdCBub2JvZHkKLQkgKiB3aWxsLCB3ZSBj b3VsZCBzaW1wbHkgcmV1c2UgdGhlIHNhbWUgY2FjaGVsaW5lLgotCSAqCi0JICogaWYgKGk5MTVf YWN0aXZlX3JlcXVlc3RfaXNfc2lnbmFsZWQoJnRsLT5sYXN0X3JlcXVlc3QpICYmCi0JICogICAg IGk5MTVfYWN0aXZlX2lzX3NpZ25hbGVkKCZ0bC0+aHdzcF9jYWNoZWxpbmUtPmFjdGl2ZSkpCi0J ICoJcmV0dXJuIDA7Ci0JICoKLQkgKiBUaGF0IHNlZW1zIHVubGlrZWx5IGZvciBhIGJ1c3kgdGlt ZWxpbmUgdGhhdCBuZWVkZWQgdG8gd3JhcCBpbgotCSAqIHRoZSBmaXJzdCBwbGFjZSwgc28ganVz dCByZXBsYWNlIHRoZSBjYWNoZWxpbmUuCi0JICovCi0KLQl2bWEgPSBod3NwX2FsbG9jKHRsLCAm Y2FjaGVsaW5lKTsKLQlpZiAoSVNfRVJSKHZtYSkpIHsKLQkJZXJyID0gUFRSX0VSUih2bWEpOwot CQlnb3RvIGVycl9yb2xsYmFjazsKLQl9CisJdTMyIG5leHRfb2ZzID0gb2Zmc2V0X2luX3BhZ2Uo dGwtPmh3c3Bfb2Zmc2V0ICsgVElNRUxJTkVfU0VRTk9fQllURVMpOwogCi0JZXJyID0gaTkxNV9n Z3R0X3Bpbih2bWEsIE5VTEwsIDAsIFBJTl9ISUdIKTsKLQlpZiAoZXJyKSB7Ci0JCV9faWRsZV9o d3NwX2ZyZWUodm1hLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCQlnb3RvIGVycl9yb2xsYmFjazsK LQl9Ci0KLQljbCA9IGNhY2hlbGluZV9hbGxvYyh2bWEtPnByaXZhdGUsIGNhY2hlbGluZSk7Ci0J aWYgKElTX0VSUihjbCkpIHsKLQkJZXJyID0gUFRSX0VSUihjbCk7Ci0JCV9faWRsZV9od3NwX2Zy ZWUodm1hLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCQlnb3RvIGVycl91bnBpbjsKLQl9Ci0JR0VN X0JVR19PTihjbC0+aHdzcC0+dm1hICE9IHZtYSk7Ci0KLQkvKgotCSAqIEF0dGFjaCB0aGUgb2xk IGNhY2hlbGluZSB0byB0aGUgY3VycmVudCByZXF1ZXN0LCBzbyB0aGF0IHdlIG9ubHkKLQkgKiBm cmVlIGl0IGFmdGVyIHRoZSBjdXJyZW50IHJlcXVlc3QgaXMgcmV0aXJlZCwgd2hpY2ggZW5zdXJl cyB0aGF0Ci0JICogYWxsIHdyaXRlcyBpbnRvIHRoZSBjYWNoZWxpbmUgZnJvbSBwcmV2aW91cyBy ZXF1ZXN0cyBhcmUgY29tcGxldGUuCi0JICovCi0JZXJyID0gaTkxNV9hY3RpdmVfcmVmKCZ0bC0+ aHdzcF9jYWNoZWxpbmUtPmFjdGl2ZSwKLQkJCSAgICAgIHRsLT5mZW5jZV9jb250ZXh0LAotCQkJ ICAgICAgJnJxLT5mZW5jZSk7Ci0JaWYgKGVycikKLQkJZ290byBlcnJfY2FjaGVsaW5lOworCS8q IHcvYTogYml0IDUgbmVlZHMgdG8gYmUgemVybyBmb3IgTUlfRkxVU0hfRFcgYWRkcmVzcy4gKi8K KwlpZiAoVElNRUxJTkVfU0VRTk9fQllURVMgPD0gQklUKDUpICYmIChuZXh0X29mcyAmIEJJVCg1 KSkpCisJCW5leHRfb2ZzID0gb2Zmc2V0X2luX3BhZ2UobmV4dF9vZnMgKyBCSVQoNSkpOwogCi0J Y2FjaGVsaW5lX3JlbGVhc2UodGwtPmh3c3BfY2FjaGVsaW5lKTsgLyogb3duZXJzaGlwIG5vdyB4 ZmVyZWQgdG8gcnEgKi8KLQljYWNoZWxpbmVfZnJlZSh0bC0+aHdzcF9jYWNoZWxpbmUpOwotCi0J aTkxNV92bWFfdW5waW4odGwtPmh3c3BfZ2d0dCk7IC8qIGJpbmRpbmcga2VwdCBhbGl2ZSBieSBv bGQgY2FjaGVsaW5lICovCi0JaTkxNV92bWFfcHV0KHRsLT5od3NwX2dndHQpOwotCi0JdGwtPmh3 c3BfZ2d0dCA9IGk5MTVfdm1hX2dldCh2bWEpOwotCi0JdmFkZHIgPSBwYWdlX21hc2tfYml0cyhj bC0+dmFkZHIpOwotCXRsLT5od3NwX29mZnNldCA9IGNhY2hlbGluZSAqIENBQ0hFTElORV9CWVRF UzsKLQl0bC0+aHdzcF9zZXFubyA9Ci0JCW1lbXNldCh2YWRkciArIHRsLT5od3NwX29mZnNldCwg MCwgQ0FDSEVMSU5FX0JZVEVTKTsKLQotCXRsLT5od3NwX29mZnNldCArPSBpOTE1X2dndHRfb2Zm c2V0KHZtYSk7Ci0JR1RfVFJBQ0UodGwtPmd0LCAidGltZWxpbmU6JWxseCB1c2luZyBIV1NQIG9m ZnNldDoleFxuIiwKLQkJIHRsLT5mZW5jZV9jb250ZXh0LCB0bC0+aHdzcF9vZmZzZXQpOwotCi0J Y2FjaGVsaW5lX2FjcXVpcmUoY2wsIHRsLT5od3NwX29mZnNldCk7Ci0JdGwtPmh3c3BfY2FjaGVs aW5lID0gY2w7CisJdGwtPmh3c3Bfb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldCh0bC0+aHdzcF9n Z3R0KSArIG5leHRfb2ZzOworCXRsLT5od3NwX3NlcW5vID0gdGwtPmh3c3BfbWFwICsgbmV4dF9v ZnM7CisJaW50ZWxfdGltZWxpbmVfcmVzZXRfc2Vxbm8odGwpOwogCiAJKnNlcW5vID0gdGltZWxp bmVfYWR2YW5jZSh0bCk7CiAJR0VNX0JVR19PTihpOTE1X3NlcW5vX3Bhc3NlZCgqdGwtPmh3c3Bf c2Vxbm8sICpzZXFubykpOwogCXJldHVybiAwOwotCi1lcnJfY2FjaGVsaW5lOgotCWNhY2hlbGlu ZV9mcmVlKGNsKTsKLWVycl91bnBpbjoKLQlpOTE1X3ZtYV91bnBpbih2bWEpOwotZXJyX3JvbGxi YWNrOgotCXRpbWVsaW5lX3JvbGxiYWNrKHRsKTsKLQlyZXR1cm4gZXJyOwogfQogCiBpbnQgaW50 ZWxfdGltZWxpbmVfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwsCkBAIC01NDIs NTEgKzI4NCw1MiBAQCBpbnQgaW50ZWxfdGltZWxpbmVfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF90 aW1lbGluZSAqdGwsCiAJKnNlcW5vID0gdGltZWxpbmVfYWR2YW5jZSh0bCk7CiAKIAkvKiBSZXBs YWNlIHRoZSBIV1NQIG9uIHdyYXBhcm91bmQgZm9yIEhXIHNlbWFwaG9yZXMgKi8KLQlpZiAodW5s aWtlbHkoISpzZXFubyAmJiB0bC0+aHdzcF9jYWNoZWxpbmUpKQotCQlyZXR1cm4gX19pbnRlbF90 aW1lbGluZV9nZXRfc2Vxbm8odGwsIHJxLCBzZXFubyk7CisJaWYgKHVubGlrZWx5KCEqc2Vxbm8g JiYgdGwtPmhhc19pbml0aWFsX2JyZWFkY3J1bWIpKQorCQlyZXR1cm4gX19pbnRlbF90aW1lbGlu ZV9nZXRfc2Vxbm8odGwsIHNlcW5vKTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNh Y2hlbGluZV9yZWYoc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2wsCi0JCQkgc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcnEpCi17Ci0JcmV0dXJuIGk5MTVfYWN0aXZlX2FkZF9yZXF1ZXN0 KCZjbC0+YWN0aXZlLCBycSk7Ci19Ci0KIGludCBpbnRlbF90aW1lbGluZV9yZWFkX2h3c3Aoc3Ry dWN0IGk5MTVfcmVxdWVzdCAqZnJvbSwKIAkJCSAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqdG8s CiAJCQkgICAgIHUzMiAqaHdzcCkKIHsKLQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5l ICpjbDsKKwlzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsOwogCWludCBlcnI7CiAKLQlHRU1fQlVH X09OKCFyY3VfYWNjZXNzX3BvaW50ZXIoZnJvbS0+aHdzcF9jYWNoZWxpbmUpKTsKLQogCXJjdV9y ZWFkX2xvY2soKTsKLQljbCA9IHJjdV9kZXJlZmVyZW5jZShmcm9tLT5od3NwX2NhY2hlbGluZSk7 Ci0JaWYgKGk5MTVfcmVxdWVzdF9jb21wbGV0ZWQoZnJvbSkpIC8qIGNvbmZpcm0gY2FjaGVsaW5l IGlzIHZhbGlkICovCi0JCWdvdG8gdW5sb2NrOwotCWlmICh1bmxpa2VseSghaTkxNV9hY3RpdmVf YWNxdWlyZV9pZl9idXN5KCZjbC0+YWN0aXZlKSkpCi0JCWdvdG8gdW5sb2NrOyAvKiBzZXFubyB3 cmFwcGVkIGFuZCBjb21wbGV0ZWQhICovCi0JaWYgKHVubGlrZWx5KGk5MTVfcmVxdWVzdF9jb21w bGV0ZWQoZnJvbSkpKQotCQlnb3RvIHJlbGVhc2U7CisJdGwgPSByY3VfZGVyZWZlcmVuY2UoZnJv bS0+dGltZWxpbmUpOworCWlmIChpOTE1X3JlcXVlc3RfY29tcGxldGVkKGZyb20pIHx8CisJICAg ICFpOTE1X2FjdGl2ZV9hY3F1aXJlX2lmX2J1c3koJnRsLT5hY3RpdmUpKQorCQl0bCA9IE5VTEw7 CisKKwlpZiAodGwpIHsKKwkJLyogaHdzcF9vZmZzZXQgbWF5IHdyYXBhcm91bmQsIHNvIHVzZSBm cm9tLT5od3NwX3NlcW5vICovCisJCSpod3NwID0gaTkxNV9nZ3R0X29mZnNldCh0bC0+aHdzcF9n Z3R0KSArCisJCQlvZmZzZXRfaW5fcGFnZShmcm9tLT5od3NwX3NlcW5vKTsKKwl9CisKKwkvKiBl bnN1cmUgd2Ugd2FpdCBvbiB0aGUgcmlnaHQgcmVxdWVzdCwgaWYgbm90LCB3ZSBjb21wbGV0ZWQg Ki8KKwlpZiAodGwgJiYgaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChmcm9tKSkgeworCQlpOTE1X2Fj dGl2ZV9yZWxlYXNlKCZ0bC0+YWN0aXZlKTsKKwkJdGwgPSBOVUxMOworCX0KIAlyY3VfcmVhZF91 bmxvY2soKTsKIAotCWVyciA9IGNhY2hlbGluZV9yZWYoY2wsIHRvKTsKLQlpZiAoZXJyKQorCWlm ICghdGwpCisJCXJldHVybiAxOworCisJLyogQ2FuJ3QgZG8gc2VtYXBob3JlIHdhaXRzIG9uIGtl cm5lbCBjb250ZXh0ICovCisJaWYgKCF0bC0+aGFzX2luaXRpYWxfYnJlYWRjcnVtYikgeworCQll cnIgPSAtRUlOVkFMOwogCQlnb3RvIG91dDsKKwl9CisKKwllcnIgPSBpOTE1X2FjdGl2ZV9hZGRf cmVxdWVzdCgmdGwtPmFjdGl2ZSwgdG8pOwogCi0JKmh3c3AgPSBjbC0+Z2d0dF9vZmZzZXQ7CiBv dXQ6Ci0JaTkxNV9hY3RpdmVfcmVsZWFzZSgmY2wtPmFjdGl2ZSk7CisJaTkxNV9hY3RpdmVfcmVs ZWFzZSgmdGwtPmFjdGl2ZSk7CiAJcmV0dXJuIGVycjsKLQotcmVsZWFzZToKLQlpOTE1X2FjdGl2 ZV9yZWxlYXNlKCZjbC0+YWN0aXZlKTsKLXVubG9jazoKLQlyY3VfcmVhZF91bmxvY2soKTsKLQly ZXR1cm4gMTsKIH0KIAogdm9pZCBpbnRlbF90aW1lbGluZV91bnBpbihzdHJ1Y3QgaW50ZWxfdGlt ZWxpbmUgKnRsKQpAQCAtNTk1LDggKzMzOCw3IEBAIHZvaWQgaW50ZWxfdGltZWxpbmVfdW5waW4o c3RydWN0IGludGVsX3RpbWVsaW5lICp0bCkKIAlpZiAoIWF0b21pY19kZWNfYW5kX3Rlc3QoJnRs LT5waW5fY291bnQpKQogCQlyZXR1cm47CiAKLQljYWNoZWxpbmVfcmVsZWFzZSh0bC0+aHdzcF9j YWNoZWxpbmUpOwotCisJaTkxNV9hY3RpdmVfcmVsZWFzZSgmdGwtPmFjdGl2ZSk7CiAJX19pOTE1 X3ZtYV91bnBpbih0bC0+aHdzcF9nZ3R0KTsKIH0KIApAQCAtNjE0LDcgKzM1Niw2IEBAIHZvaWQg aW50ZWxfZ3RfZmluaV90aW1lbGluZXMoc3RydWN0IGludGVsX2d0ICpndCkKIAlzdHJ1Y3QgaW50 ZWxfZ3RfdGltZWxpbmVzICp0aW1lbGluZXMgPSAmZ3QtPnRpbWVsaW5lczsKIAogCUdFTV9CVUdf T04oIWxpc3RfZW1wdHkoJnRpbWVsaW5lcy0+YWN0aXZlX2xpc3QpKTsKLQlHRU1fQlVHX09OKCFs aXN0X2VtcHR5KCZ0aW1lbGluZXMtPmh3c3BfZnJlZV9saXN0KSk7CiB9CiAKIHZvaWQgaW50ZWxf Z3Rfc2hvd190aW1lbGluZXMoc3RydWN0IGludGVsX2d0ICpndCwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVsaW5lX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZV90eXBlcy5oCmluZGV4IDQ0NzRmNDg3ZjU4OS4uNjEw ZDU5M2I1YmRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1l bGluZV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVsaW5l X3R5cGVzLmgKQEAgLTE4LDcgKzE4LDYgQEAKIHN0cnVjdCBpOTE1X3ZtYTsKIHN0cnVjdCBpOTE1 X3N5bmNtYXA7CiBzdHJ1Y3QgaW50ZWxfZ3Q7Ci1zdHJ1Y3QgaW50ZWxfdGltZWxpbmVfaHdzcDsK IAogc3RydWN0IGludGVsX3RpbWVsaW5lIHsKIAl1NjQgZmVuY2VfY29udGV4dDsKQEAgLTQ1LDEy ICs0NCwxMSBAQCBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgewogCWF0b21pY190IHBpbl9jb3VudDsK IAlhdG9taWNfdCBhY3RpdmVfY291bnQ7CiAKKwl2b2lkICpod3NwX21hcDsKIAljb25zdCB1MzIg Kmh3c3Bfc2Vxbm87CiAJc3RydWN0IGk5MTVfdm1hICpod3NwX2dndHQ7CiAJdTMyIGh3c3Bfb2Zm c2V0OwogCi0Jc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqaHdzcF9jYWNoZWxpbmU7 Ci0KIAlib29sIGhhc19pbml0aWFsX2JyZWFkY3J1bWI7CiAKIAkvKioKQEAgLTY3LDYgKzY1LDgg QEAgc3RydWN0IGludGVsX3RpbWVsaW5lIHsKIAkgKi8KIAlzdHJ1Y3QgaTkxNV9hY3RpdmVfZmVu Y2UgbGFzdF9yZXF1ZXN0OwogCisJc3RydWN0IGk5MTVfYWN0aXZlIGFjdGl2ZTsKKwogCS8qKiBB IGNoYWluIG9mIGNvbXBsZXRlZCB0aW1lbGluZXMgcmVhZHkgZm9yIGVhcmx5IHJldGlyZW1lbnQu ICovCiAJc3RydWN0IGludGVsX3RpbWVsaW5lICpyZXRpcmU7CiAKQEAgLTg4LDE1ICs4OCw0IEBA IHN0cnVjdCBpbnRlbF90aW1lbGluZSB7CiAJc3RydWN0IHJjdV9oZWFkIHJjdTsKIH07CiAKLXN0 cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgewotCXN0cnVjdCBpOTE1X2FjdGl2ZSBhY3Rp dmU7Ci0KLQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfaHdzcCAqaHdzcDsKLQl2b2lkICp2YWRkcjsK LQotCXUzMiBnZ3R0X29mZnNldDsKLQotCXN0cnVjdCByY3VfaGVhZCByY3U7Ci19OwotCiAjZW5k aWYgLyogX19JOTE1X1RJTUVMSU5FX1RZUEVTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9zZWxmdGVzdF9lbmdpbmVfY3MuYwppbmRleCA3MjljM2M3YjExZTIuLjhiNWFiNDExNDUy MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2Nz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2NzLmMKQEAg LTQxLDYgKzQxLDkgQEAgc3RhdGljIGludCBwZXJmX2VuZChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQog CiBzdGF0aWMgaW50IHdyaXRlX3RpbWVzdGFtcChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgaW50 IHNsb3QpCiB7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCA9CisJCXJjdV9kZXJlZmVyZW5j ZV9wcm90ZWN0ZWQocnEtPnRpbWVsaW5lLAorCQkJCQkgICFpOTE1X3JlcXVlc3Rfc2lnbmFsZWQo cnEpKTsKIAl1MzIgY21kOwogCXUzMiAqY3M7CiAKQEAgLTUzLDcgKzU2LDcgQEAgc3RhdGljIGlu dCB3cml0ZV90aW1lc3RhbXAoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGludCBzbG90KQogCQlj bWQrKzsKIAkqY3MrKyA9IGNtZDsKIAkqY3MrKyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdf VElNRVNUQU1QKHJxLT5lbmdpbmUtPm1taW9fYmFzZSkpOwotCSpjcysrID0gaTkxNV9yZXF1ZXN0 X3RpbWVsaW5lKHJxKS0+aHdzcF9vZmZzZXQgKyBzbG90ICogc2l6ZW9mKHUzMik7CisJKmNzKysg PSB0bC0+aHdzcF9vZmZzZXQgKyBzbG90ICogc2l6ZW9mKHUzMik7CiAJKmNzKysgPSAwOwogCiAJ aW50ZWxfcmluZ19hZHZhbmNlKHJxLCBjcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2Vs ZnRlc3RfdGltZWxpbmUuYwppbmRleCBlNDI4NWQ1YTAzNjAuLjM2NWJhMWQwODhiYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfdGltZWxpbmUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5jCkBAIC02NjUsNyArNjY1 LDcgQEAgc3RhdGljIGludCBsaXZlX2h3c3Bfd3JhcCh2b2lkICphcmcpCiAJaWYgKElTX0VSUih0 bCkpCiAJCXJldHVybiBQVFJfRVJSKHRsKTsKIAotCWlmICghdGwtPmhhc19pbml0aWFsX2JyZWFk Y3J1bWIgfHwgIXRsLT5od3NwX2NhY2hlbGluZSkKKwlpZiAoIXRsLT5oYXNfaW5pdGlhbF9icmVh ZGNydW1iKQogCQlnb3RvIG91dF9mcmVlOwogCiAJZXJyID0gaW50ZWxfdGltZWxpbmVfcGluKHRs LCBOVUxMKTsKQEAgLTgzMiwxMiArODMyLDI2IEBAIHN0YXRpYyBpbnQgc2V0dXBfd2F0Y2hlcihz dHJ1Y3QgaHdzcF93YXRjaGVyICp3LCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogCXJldHVybiAwOwog fQogCitzdGF0aWMgdm9pZCBzd2l0Y2hfdGxfbG9jayhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpmcm9t LCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bykKK3sKKwkvKiBzb21lIGxpZ2h0IG11dGV4IGp1Z2ds aW5nIHJlcXVpcmVkOyB0aGluayBjby1yb3V0aW5lcyAqLworCisJaWYgKGZyb20pIHsKKwkJbG9j a2RlcF91bnBpbl9sb2NrKCZmcm9tLT5jb250ZXh0LT50aW1lbGluZS0+bXV0ZXgsIGZyb20tPmNv b2tpZSk7CisJCW11dGV4X3VubG9jaygmZnJvbS0+Y29udGV4dC0+dGltZWxpbmUtPm11dGV4KTsK Kwl9CisKKwlpZiAodG8pIHsKKwkJbXV0ZXhfbG9jaygmdG8tPmNvbnRleHQtPnRpbWVsaW5lLT5t dXRleCk7CisJCXRvLT5jb29raWUgPSBsb2NrZGVwX3Bpbl9sb2NrKCZ0by0+Y29udGV4dC0+dGlt ZWxpbmUtPm11dGV4KTsKKwl9Cit9CisKIHN0YXRpYyBpbnQgY3JlYXRlX3dhdGNoZXIoc3RydWN0 IGh3c3Bfd2F0Y2hlciAqdywKIAkJCSAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAog CQkJICBpbnQgcmluZ3N6KQogewogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKLQlzdHJ1Y3Qg aW50ZWxfdGltZWxpbmUgKnRsOwogCiAJY2UgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZShlbmdpbmUp OwogCWlmIChJU19FUlIoY2UpKQpAQCAtODUwLDExICs4NjQsOCBAQCBzdGF0aWMgaW50IGNyZWF0 ZV93YXRjaGVyKHN0cnVjdCBod3NwX3dhdGNoZXIgKncsCiAJCXJldHVybiBQVFJfRVJSKHctPnJx KTsKIAogCXctPmFkZHIgPSBpOTE1X2dndHRfb2Zmc2V0KHctPnZtYSk7Ci0JdGwgPSB3LT5ycS0+ Y29udGV4dC0+dGltZWxpbmU7CiAKLQkvKiBzb21lIGxpZ2h0IG11dGV4IGp1Z2dsaW5nIHJlcXVp cmVkOyB0aGluayBjby1yb3V0aW5lcyAqLwotCWxvY2tkZXBfdW5waW5fbG9jaygmdGwtPm11dGV4 LCB3LT5ycS0+Y29va2llKTsKLQltdXRleF91bmxvY2soJnRsLT5tdXRleCk7CisJc3dpdGNoX3Rs X2xvY2sody0+cnEsIE5VTEwpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC04NjMsMTUgKzg3NCwxMyBA QCBzdGF0aWMgaW50IGNoZWNrX3dhdGNoZXIoc3RydWN0IGh3c3Bfd2F0Y2hlciAqdywgY29uc3Qg Y2hhciAqbmFtZSwKIAkJCSBib29sICgqb3ApKHUzMiBod3NwLCB1MzIgc2Vxbm8pKQogewogCXN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxID0gZmV0Y2hfYW5kX3plcm8oJnctPnJxKTsKLQlzdHJ1Y3Qg aW50ZWxfdGltZWxpbmUgKnRsID0gcnEtPmNvbnRleHQtPnRpbWVsaW5lOwogCXUzMiBvZmZzZXQs IGVuZDsKIAlpbnQgZXJyOwogCiAJR0VNX0JVR19PTih3LT5hZGRyIC0gaTkxNV9nZ3R0X29mZnNl dCh3LT52bWEpID4gdy0+dm1hLT5zaXplKTsKIAogCWk5MTVfcmVxdWVzdF9nZXQocnEpOwotCW11 dGV4X2xvY2soJnRsLT5tdXRleCk7Ci0JcnEtPmNvb2tpZSA9IGxvY2tkZXBfcGluX2xvY2soJnRs LT5tdXRleCk7CisJc3dpdGNoX3RsX2xvY2soTlVMTCwgcnEpOwogCWk5MTVfcmVxdWVzdF9hZGQo cnEpOwogCiAJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWikgPCAwKSB7CkBAIC05MDAs MTAgKzkwOSw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfd2F0Y2hlcihzdHJ1Y3QgaHdzcF93YXRjaGVy ICp3LCBjb25zdCBjaGFyICpuYW1lLAogc3RhdGljIHZvaWQgY2xlYW51cF93YXRjaGVyKHN0cnVj dCBod3NwX3dhdGNoZXIgKncpCiB7CiAJaWYgKHctPnJxKSB7Ci0JCXN0cnVjdCBpbnRlbF90aW1l bGluZSAqdGwgPSB3LT5ycS0+Y29udGV4dC0+dGltZWxpbmU7Ci0KLQkJbXV0ZXhfbG9jaygmdGwt Pm11dGV4KTsKLQkJdy0+cnEtPmNvb2tpZSA9IGxvY2tkZXBfcGluX2xvY2soJnRsLT5tdXRleCk7 CisJCXN3aXRjaF90bF9sb2NrKE5VTEwsIHctPnJxKTsKIAogCQlpOTE1X3JlcXVlc3RfYWRkKHct PnJxKTsKIAl9CkBAIC05NDEsNyArOTQ3LDcgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3Qg KndyYXBfdGltZWxpbmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJfQogCiAJaTkxNV9yZXF1 ZXN0X3B1dChycSk7Ci0JcnEgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZV9yZXF1ZXN0KGNlKTsKKwly cSA9IGk5MTVfcmVxdWVzdF9jcmVhdGUoY2UpOwogCWlmIChJU19FUlIocnEpKQogCQlyZXR1cm4g cnE7CiAKQEAgLTk3Niw3ICs5ODIsNyBAQCBzdGF0aWMgaW50IGxpdmVfaHdzcF9yZWFkKHZvaWQg KmFyZykKIAlpZiAoSVNfRVJSKHRsKSkKIAkJcmV0dXJuIFBUUl9FUlIodGwpOwogCi0JaWYgKCF0 bC0+aHdzcF9jYWNoZWxpbmUpCisJaWYgKCF0bC0+aGFzX2luaXRpYWxfYnJlYWRjcnVtYikKIAkJ Z290byBvdXRfZnJlZTsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdhdGNoZXIpOyBp KyspIHsKQEAgLTk5OCw3ICsxMDA0LDcgQEAgc3RhdGljIGludCBsaXZlX2h3c3BfcmVhZCh2b2lk ICphcmcpCiAJCWRvIHsKIAkJCXN0cnVjdCBpOTE1X3N3X2ZlbmNlICpzdWJtaXQ7CiAJCQlzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycTsKLQkJCXUzMiBod3NwOworCQkJdTMyIGh3c3AsIGR1bW15Owog CiAJCQlzdWJtaXQgPSBoZWFwX2ZlbmNlX2NyZWF0ZShHRlBfS0VSTkVMKTsKIAkJCWlmICghc3Vi bWl0KSB7CkBAIC0xMDE2LDE0ICsxMDIyLDI2IEBAIHN0YXRpYyBpbnQgbGl2ZV9od3NwX3JlYWQo dm9pZCAqYXJnKQogCQkJCWdvdG8gb3V0OwogCQkJfQogCi0JCQkvKiBTa2lwIHRvIHRoZSBlbmQs IHNhdmluZyAzMCBtaW51dGVzIG9mIG5vcHMgKi8KLQkJCXRsLT5zZXFubyA9IC0xMHUgKyAyICog KGNvdW50ICYgMyk7Ci0JCQlXUklURV9PTkNFKCoodTMyICopdGwtPmh3c3Bfc2Vxbm8sIHRsLT5z ZXFubyk7CiAJCQljZS0+dGltZWxpbmUgPSBpbnRlbF90aW1lbGluZV9nZXQodGwpOwogCi0JCQly cSA9IGludGVsX2NvbnRleHRfY3JlYXRlX3JlcXVlc3QoY2UpOworCQkJLyogRW5zdXJlIHRpbWVs aW5lIGlzIG1hcHBlZCwgZG9uZSBkdXJpbmcgZmlyc3QgcGluICovCisJCQllcnIgPSBpbnRlbF9j b250ZXh0X3BpbihjZSk7CisJCQlpZiAoZXJyKSB7CisJCQkJaW50ZWxfY29udGV4dF9wdXQoY2Up OworCQkJCWdvdG8gb3V0OworCQkJfQorCisJCQkvKgorCQkJICogU3RhcnQgYXQgYSBuZXcgd3Jh cCwgYW5kIHNldCBzZXFubyByaWdodCBiZWZvcmUgYW5vdGhlciB3cmFwLAorCQkJICogc2F2aW5n IDMwIG1pbnV0ZXMgb2Ygbm9wcworCQkJICovCisJCQl0bC0+c2Vxbm8gPSAtMTJ1ICsgMiAqIChj b3VudCAmIDMpOworCQkJX19pbnRlbF90aW1lbGluZV9nZXRfc2Vxbm8odGwsICZkdW1teSk7CisK KwkJCXJxID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZShjZSk7CiAJCQlpZiAoSVNfRVJSKHJxKSkgewog CQkJCWVyciA9IFBUUl9FUlIocnEpOworCQkJCWludGVsX2NvbnRleHRfdW5waW4oY2UpOwogCQkJ CWludGVsX2NvbnRleHRfcHV0KGNlKTsKIAkJCQlnb3RvIG91dDsKIAkJCX0KQEAgLTEwMzMsMzIg KzEwNTEsMzUgQEAgc3RhdGljIGludCBsaXZlX2h3c3BfcmVhZCh2b2lkICphcmcpCiAJCQkJCQkJ ICAgIEdGUF9LRVJORUwpOwogCQkJaWYgKGVyciA8IDApIHsKIAkJCQlpOTE1X3JlcXVlc3RfYWRk KHJxKTsKKwkJCQlpbnRlbF9jb250ZXh0X3VucGluKGNlKTsKIAkJCQlpbnRlbF9jb250ZXh0X3B1 dChjZSk7CiAJCQkJZ290byBvdXQ7CiAJCQl9CiAKLQkJCW11dGV4X2xvY2soJndhdGNoZXJbMF0u cnEtPmNvbnRleHQtPnRpbWVsaW5lLT5tdXRleCk7CisJCQlzd2l0Y2hfdGxfbG9jayhycSwgd2F0 Y2hlclswXS5ycSk7CiAJCQllcnIgPSBpbnRlbF90aW1lbGluZV9yZWFkX2h3c3AocnEsIHdhdGNo ZXJbMF0ucnEsICZod3NwKTsKIAkJCWlmIChlcnIgPT0gMCkKIAkJCQllcnIgPSBlbWl0X3JlYWRf aHdzcCh3YXRjaGVyWzBdLnJxLCAvKiBiZWZvcmUgKi8KIAkJCQkJCSAgICAgcnEtPmZlbmNlLnNl cW5vLCBod3NwLAogCQkJCQkJICAgICAmd2F0Y2hlclswXS5hZGRyKTsKLQkJCW11dGV4X3VubG9j aygmd2F0Y2hlclswXS5ycS0+Y29udGV4dC0+dGltZWxpbmUtPm11dGV4KTsKKwkJCXN3aXRjaF90 bF9sb2NrKHdhdGNoZXJbMF0ucnEsIHJxKTsKIAkJCWlmIChlcnIpIHsKIAkJCQlpOTE1X3JlcXVl c3RfYWRkKHJxKTsKKwkJCQlpbnRlbF9jb250ZXh0X3VucGluKGNlKTsKIAkJCQlpbnRlbF9jb250 ZXh0X3B1dChjZSk7CiAJCQkJZ290byBvdXQ7CiAJCQl9CiAKLQkJCW11dGV4X2xvY2soJndhdGNo ZXJbMV0ucnEtPmNvbnRleHQtPnRpbWVsaW5lLT5tdXRleCk7CisJCQlzd2l0Y2hfdGxfbG9jayhy cSwgd2F0Y2hlclsxXS5ycSk7CiAJCQllcnIgPSBpbnRlbF90aW1lbGluZV9yZWFkX2h3c3AocnEs IHdhdGNoZXJbMV0ucnEsICZod3NwKTsKIAkJCWlmIChlcnIgPT0gMCkKIAkJCQllcnIgPSBlbWl0 X3JlYWRfaHdzcCh3YXRjaGVyWzFdLnJxLCAvKiBhZnRlciAqLwogCQkJCQkJICAgICBycS0+ZmVu Y2Uuc2Vxbm8sIGh3c3AsCiAJCQkJCQkgICAgICZ3YXRjaGVyWzFdLmFkZHIpOwotCQkJbXV0ZXhf dW5sb2NrKCZ3YXRjaGVyWzFdLnJxLT5jb250ZXh0LT50aW1lbGluZS0+bXV0ZXgpOworCQkJc3dp dGNoX3RsX2xvY2sod2F0Y2hlclsxXS5ycSwgcnEpOwogCQkJaWYgKGVycikgewogCQkJCWk5MTVf cmVxdWVzdF9hZGQocnEpOworCQkJCWludGVsX2NvbnRleHRfdW5waW4oY2UpOwogCQkJCWludGVs X2NvbnRleHRfcHV0KGNlKTsKIAkJCQlnb3RvIG91dDsKIAkJCX0KQEAgLTEwNjcsNiArMTA4OCw3 IEBAIHN0YXRpYyBpbnQgbGl2ZV9od3NwX3JlYWQodm9pZCAqYXJnKQogCQkJaTkxNV9yZXF1ZXN0 X2FkZChycSk7CiAKIAkJCXJxID0gd3JhcF90aW1lbGluZShycSk7CisJCQlpbnRlbF9jb250ZXh0 X3VucGluKGNlKTsKIAkJCWludGVsX2NvbnRleHRfcHV0KGNlKTsKIAkJCWlmIChJU19FUlIocnEp KSB7CiAJCQkJZXJyID0gUFRSX0VSUihycSk7CkBAIC0xMTA2LDggKzExMjgsOCBAQCBzdGF0aWMg aW50IGxpdmVfaHdzcF9yZWFkKHZvaWQgKmFyZykKIAkJCSAgICAzICogd2F0Y2hlclsxXS5ycS0+ cmluZy0+c2l6ZSkKIAkJCQlicmVhazsKIAotCQl9IHdoaWxlICghX19pZ3RfdGltZW91dChlbmRf dGltZSwgTlVMTCkpOwotCQlXUklURV9PTkNFKCoodTMyICopdGwtPmh3c3Bfc2Vxbm8sIDB4ZGVh ZGJlZWYpOworCQl9IHdoaWxlICghX19pZ3RfdGltZW91dChlbmRfdGltZSwgTlVMTCkgJiYKKwkJ CSBjb3VudCA8IChQQUdFX1NJWkUgLyBUSU1FTElORV9TRVFOT19CWVRFUyAtIDEpIC8gMik7CiAK IAkJcHJfaW5mbygiJXM6IHNpbXVsYXRlZCAlbHUgd3JhcHNcbiIsIGVuZ2luZS0+bmFtZSwgY291 bnQpOwogCQllcnIgPSBjaGVja193YXRjaGVyKCZ3YXRjaGVyWzFdLCAiYWZ0ZXIiLCBjbXBfZ3Rl KTsKQEAgLTExNTIsOSArMTE3NCw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9od3NwX3JvbGxvdmVyX2tl cm5lbCh2b2lkICphcmcpCiAJCX0KIAogCQlHRU1fQlVHX09OKGk5MTVfYWN0aXZlX2ZlbmNlX2lz c2V0KCZ0bC0+bGFzdF9yZXF1ZXN0KSk7Ci0JCXRsLT5zZXFubyA9IDA7Ci0JCXRpbWVsaW5lX3Jv bGxiYWNrKHRsKTsKLQkJdGltZWxpbmVfcm9sbGJhY2sodGwpOworCQl0bC0+c2Vxbm8gPSAtMnU7 CiAJCVdSSVRFX09OQ0UoKih1MzIgKil0bC0+aHdzcF9zZXFubywgdGwtPnNlcW5vKTsKIAogCQlm b3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShycSk7IGkrKykgewpAQCAtMTIzNCwxMSArMTI1NCwx MCBAQCBzdGF0aWMgaW50IGxpdmVfaHdzcF9yb2xsb3Zlcl91c2VyKHZvaWQgKmFyZykKIAkJCWdv dG8gb3V0OwogCiAJCXRsID0gY2UtPnRpbWVsaW5lOwotCQlpZiAoIXRsLT5oYXNfaW5pdGlhbF9i cmVhZGNydW1iIHx8ICF0bC0+aHdzcF9jYWNoZWxpbmUpCisJCWlmICghdGwtPmhhc19pbml0aWFs X2JyZWFkY3J1bWIpCiAJCQlnb3RvIG91dDsKIAotCQl0aW1lbGluZV9yb2xsYmFjayh0bCk7Ci0J CXRpbWVsaW5lX3JvbGxiYWNrKHRsKTsKKwkJdGwtPnNlcW5vID0gLTR1OwogCQlXUklURV9PTkNF KCoodTMyICopdGwtPmh3c3Bfc2Vxbm8sIHRsLT5zZXFubyk7CiAKIAkJZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUocnEpOyBpKyspIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKaW5k ZXggOGQ3ZDI5YzllMzc1Li4yMzBlMDMwMDY5OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVxdWVzdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVx dWVzdC5jCkBAIC04NTMsNyArODUzLDYgQEAgX19pOTE1X3JlcXVlc3RfY3JlYXRlKHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSwgZ2ZwX3QgZ2ZwKQogCXJxLT5mZW5jZS5zZXFubyA9IHNlcW5vOwog CiAJUkNVX0lOSVRfUE9JTlRFUihycS0+dGltZWxpbmUsIHRsKTsKLQlSQ1VfSU5JVF9QT0lOVEVS KHJxLT5od3NwX2NhY2hlbGluZSwgdGwtPmh3c3BfY2FjaGVsaW5lKTsKIAlycS0+aHdzcF9zZXFu byA9IHRsLT5od3NwX3NlcW5vOwogCUdFTV9CVUdfT04oaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChy cSkpOwogCkBAIC0xMDkyLDkgKzEwOTEsNiBAQCBlbWl0X3NlbWFwaG9yZV93YWl0KHN0cnVjdCBp OTE1X3JlcXVlc3QgKnRvLAogCWlmIChpOTE1X3JlcXVlc3RfaGFzX2luaXRpYWxfYnJlYWRjcnVt Yih0bykpCiAJCWdvdG8gYXdhaXRfZmVuY2U7CiAKLQlpZiAoIXJjdV9hY2Nlc3NfcG9pbnRlcihm cm9tLT5od3NwX2NhY2hlbGluZSkpCi0JCWdvdG8gYXdhaXRfZmVuY2U7Ci0KIAkvKgogCSAqIElm IHRoaXMgb3IgaXRzIGRlcGVuZGVudHMgYXJlIHdhaXRpbmcgb24gYW4gZXh0ZXJuYWwgZmVuY2UK IAkgKiB0aGF0IG1heSBmYWlsIGNhdGFzdHJvcGhpY2FsbHksIHRoZW4gd2Ugd2FudCB0byBhdm9p ZCB1c2luZwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAppbmRleCBiMjIyZjdiNDZlOWMu LjlmMmM0ZjMwZjdlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1 ZXN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKQEAgLTIzOSwx NiArMjM5LDYgQEAgc3RydWN0IGk5MTVfcmVxdWVzdCB7CiAJICovCiAJY29uc3QgdTMyICpod3Nw X3NlcW5vOwogCi0JLyoKLQkgKiBJZiB3ZSBuZWVkIHRvIGFjY2VzcyB0aGUgdGltZWxpbmUncyBz ZXFubyBmb3IgdGhpcyByZXF1ZXN0IGluCi0JICogYW5vdGhlciByZXF1ZXN0LCB3ZSBuZWVkIHRv IGtlZXAgYSByZWFkIHJlZmVyZW5jZSB0byB0aGlzIGFzc29jaWF0ZWQKLQkgKiBjYWNoZWxpbmUs IHNvIHRoYXQgd2UgZG8gbm90IGZyZWUgYW5kIHJlY3ljbGUgaXQgYmVmb3JlIHRoZSBmb3JlaWdu Ci0JICogb2JzZXJ2ZXJzIGhhdmUgY29tcGxldGVkLiBIZW5jZSwgd2Uga2VlcCBhIHBvaW50ZXIg dG8gdGhlIGNhY2hlbGluZQotCSAqIGluc2lkZSB0aGUgdGltZWxpbmUncyBIV1NQIHZtYSwgYnV0 IGl0IGlzIG9ubHkgdmFsaWQgd2hpbGUgdGhpcwotCSAqIHJlcXVlc3QgaGFzIG5vdCBjb21wbGV0 ZWQgYW5kIGd1YXJkZWQgYnkgdGhlIHRpbWVsaW5lIG11dGV4LgotCSAqLwotCXN0cnVjdCBpbnRl bF90aW1lbGluZV9jYWNoZWxpbmUgX19yY3UgKmh3c3BfY2FjaGVsaW5lOwotCiAJLyoqIFBvc2l0 aW9uIGluIHRoZSByaW5nIG9mIHRoZSBzdGFydCBvZiB0aGUgcmVxdWVzdCAqLwogCXUzMiBoZWFk OwogCkBAIC01ODksNCArNTc5LDExIEBAIGk5MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUoY29u c3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJCQkJCSBsb2NrZGVwX2lzX2hlbGQoJnJxLT5l bmdpbmUtPmFjdGl2ZS5sb2NrKSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdTMyCitpOTE1X3JlcXVl c3RfYWN0aXZlX29mZnNldChjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlyZXR1 cm4gcGFnZV9tYXNrX2JpdHMoaTkxNV9yZXF1ZXN0X2FjdGl2ZV90aW1lbGluZShycSktPmh3c3Bf b2Zmc2V0KSArCisJICAgICAgIG9mZnNldF9pbl9wYWdlKHJxLT5od3NwX3NlcW5vKTsKK30KKwog I2VuZGlmIC8qIEk5MTVfUkVRVUVTVF9IICovCi0tIAoyLjI5LjIuMjIyLmc1ZDJhOTJkMTBmOAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==