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=-9.9 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY,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 3D02EC4363D for ; Fri, 2 Oct 2020 12:59:48 +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 E6217206DC for ; Fri, 2 Oct 2020 12:59:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E6217206DC 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 151ED6E954; Fri, 2 Oct 2020 12:59:46 +0000 (UTC) Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6B4D76E959 for ; Fri, 2 Oct 2020 12:59:45 +0000 (UTC) From: Maarten Lankhorst To: intel-gfx@lists.freedesktop.org Date: Fri, 2 Oct 2020 14:58:41 +0200 Message-Id: <20201002125939.50817-4-maarten.lankhorst@linux.intel.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201002125939.50817-1-maarten.lankhorst@linux.intel.com> References: <20201002125939.50817-1-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 03/61] drm/i915: Do not share hwsp across contexts any more, v2. 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 IGZvciBjb21wbGV0aW9uIGluIGludGVsX3JlYWRfaHdzcCgpLgoKU2lnbmVkLW9mZi1ieTogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KUmV2aWV3 ZWQtYnk6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGludGVsLmNvbT4gI3Yx Ckxpbms6IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC9tc2dpZC8yMDIw MDgxOTE0MDkwNC4xNzA4ODU2LTI1LW1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbQot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmggICAgICB8ICAgNCAt CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZS5jICAgICAgfCAzODggKysr LS0tLS0tLS0tLS0tLS0tCiAuLi4vZ3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVsaW5lX3R5cGVz LmggICAgfCAgMTUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3RpbWVsaW5l LmMgICB8ICAxMSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAgICAg ICAgIHwgICA0IC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oICAgICAgICAg ICB8ICAxMCAtCiA2IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDM3MCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBl cy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfdHlwZXMuaAppbmRleCA2ZDM5 YTRhMTFiZjMuLjdhZmY4MzUwYzM2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZ3RfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9n dF90eXBlcy5oCkBAIC0zOSwxMCArMzksNiBAQCBzdHJ1Y3QgaW50ZWxfZ3QgewogCXN0cnVjdCBp bnRlbF9ndF90aW1lbGluZXMgewogCQlzcGlubG9ja190IGxvY2s7IC8qIHByb3RlY3RzIGFjdGl2 ZV9saXN0ICovCiAJCXN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX2xpc3Q7Ci0KLQkJLyogUGFjayBt dWx0aXBsZSB0aW1lbGluZXMnIHNlcW5vcyBpbnRvIHRoZSBzYW1lIHBhZ2UgKi8KLQkJc3Bpbmxv Y2tfdCBod3NwX2xvY2s7Ci0JCXN0cnVjdCBsaXN0X2hlYWQgaHdzcF9mcmVlX2xpc3Q7CiAJfSB0 aW1lbGluZXM7CiAKIAlzdHJ1Y3QgaW50ZWxfZ3RfcmVxdWVzdHMgewpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX3RpbWVsaW5lLmMKaW5kZXggYTJmNzRjZWZlNGMzLi4xYzQxMDc3MGU0N2Qg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVsaW5lLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmUuYwpAQCAtMTIsMjEgKzEy LDcgQEAKICNpbmNsdWRlICJpbnRlbF9yaW5nLmgiCiAjaW5jbHVkZSAiaW50ZWxfdGltZWxpbmUu aCIKIAotI2RlZmluZSBwdHJfc2V0X2JpdChwdHIsIGJpdCkgKCh0eXBlb2YocHRyKSkoKHVuc2ln bmVkIGxvbmcpKHB0cikgfCBCSVQoYml0KSkpCi0jZGVmaW5lIHB0cl90ZXN0X2JpdChwdHIsIGJp dCkgKCh1bnNpZ25lZCBsb25nKShwdHIpICYgQklUKGJpdCkpCi0KLSNkZWZpbmUgQ0FDSEVMSU5F X0JJVFMgNgotI2RlZmluZSBDQUNIRUxJTkVfRlJFRSBDQUNIRUxJTkVfQklUUwotCi1zdHJ1Y3Qg aW50ZWxfdGltZWxpbmVfaHdzcCB7Ci0Jc3RydWN0IGludGVsX2d0ICpndDsKLQlzdHJ1Y3QgaW50 ZWxfZ3RfdGltZWxpbmVzICpndF90aW1lbGluZXM7Ci0Jc3RydWN0IGxpc3RfaGVhZCBmcmVlX2xp bms7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0JdTY0IGZyZWVfYml0bWFwOwotfTsKLQotc3Rh dGljIHN0cnVjdCBpOTE1X3ZtYSAqX19od3NwX2FsbG9jKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCitz dGF0aWMgc3RydWN0IGk5MTVfdm1hICpod3NwX2FsbG9jKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqOwpAQCAtNDIsMTc3ICsyOCwyOSBAQCBzdGF0aWMgc3RydWN0 IGk5MTVfdm1hICpfX2h3c3BfYWxsb2Moc3RydWN0IGludGVsX2d0ICpndCkKIAlpZiAoSVNfRVJS KHZtYSkpCiAJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIAotCXJldHVybiB2bWE7Ci19Ci0K LXN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKgotaHdzcF9hbGxvYyhzdHJ1Y3QgaW50ZWxfdGltZWxp bmUgKnRpbWVsaW5lLCB1bnNpZ25lZCBpbnQgKmNhY2hlbGluZSkKLXsKLQlzdHJ1Y3QgaW50ZWxf Z3RfdGltZWxpbmVzICpndCA9ICZ0aW1lbGluZS0+Z3QtPnRpbWVsaW5lczsKLQlzdHJ1Y3QgaW50 ZWxfdGltZWxpbmVfaHdzcCAqaHdzcDsKLQotCUJVSUxEX0JVR19PTihCSVRTX1BFUl9UWVBFKHU2 NCkgKiBDQUNIRUxJTkVfQllURVMgPiBQQUdFX1NJWkUpOwotCi0Jc3Bpbl9sb2NrX2lycSgmZ3Qt Pmh3c3BfbG9jayk7Ci0KLQkvKiBod3NwX2ZyZWVfbGlzdCBvbmx5IGNvbnRhaW5zIEhXU1AgdGhh dCBoYXZlIGF2YWlsYWJsZSBjYWNoZWxpbmVzICovCi0JaHdzcCA9IGxpc3RfZmlyc3RfZW50cnlf b3JfbnVsbCgmZ3QtPmh3c3BfZnJlZV9saXN0LAotCQkJCQl0eXBlb2YoKmh3c3ApLCBmcmVlX2xp bmspOwotCWlmICghaHdzcCkgewotCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQotCQlzcGluX3Vu bG9ja19pcnEoJmd0LT5od3NwX2xvY2spOwotCi0JCWh3c3AgPSBrbWFsbG9jKHNpemVvZigqaHdz cCksIEdGUF9LRVJORUwpOwotCQlpZiAoIWh3c3ApCi0JCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKLQotCQl2bWEgPSBfX2h3c3BfYWxsb2ModGltZWxpbmUtPmd0KTsKLQkJaWYgKElTX0VSUih2 bWEpKSB7Ci0JCQlrZnJlZShod3NwKTsKLQkJCXJldHVybiB2bWE7Ci0JCX0KLQotCQlHVF9UUkFD RSh0aW1lbGluZS0+Z3QsICJuZXcgSFdTUCBhbGxvY2F0ZWRcbiIpOwotCi0JCXZtYS0+cHJpdmF0 ZSA9IGh3c3A7Ci0JCWh3c3AtPmd0ID0gdGltZWxpbmUtPmd0OwotCQlod3NwLT52bWEgPSB2bWE7 Ci0JCWh3c3AtPmZyZWVfYml0bWFwID0gfjB1bGw7Ci0JCWh3c3AtPmd0X3RpbWVsaW5lcyA9IGd0 OwotCi0JCXNwaW5fbG9ja19pcnEoJmd0LT5od3NwX2xvY2spOwotCQlsaXN0X2FkZCgmaHdzcC0+ ZnJlZV9saW5rLCAmZ3QtPmh3c3BfZnJlZV9saXN0KTsKLQl9Ci0KLQlHRU1fQlVHX09OKCFod3Nw LT5mcmVlX2JpdG1hcCk7Ci0JKmNhY2hlbGluZSA9IF9fZmZzNjQoaHdzcC0+ZnJlZV9iaXRtYXAp OwotCWh3c3AtPmZyZWVfYml0bWFwICY9IH5CSVRfVUxMKCpjYWNoZWxpbmUpOwotCWlmICghaHdz cC0+ZnJlZV9iaXRtYXApCi0JCWxpc3RfZGVsKCZod3NwLT5mcmVlX2xpbmspOwotCi0Jc3Bpbl91 bmxvY2tfaXJxKCZndC0+aHdzcF9sb2NrKTsKLQotCUdFTV9CVUdfT04oaHdzcC0+dm1hLT5wcml2 YXRlICE9IGh3c3ApOwotCXJldHVybiBod3NwLT52bWE7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faWRs ZV9od3NwX2ZyZWUoc3RydWN0IGludGVsX3RpbWVsaW5lX2h3c3AgKmh3c3AsIGludCBjYWNoZWxp bmUpCi17Ci0Jc3RydWN0IGludGVsX2d0X3RpbWVsaW5lcyAqZ3QgPSBod3NwLT5ndF90aW1lbGlu ZXM7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZndC0+aHdz cF9sb2NrLCBmbGFncyk7Ci0KLQkvKiBBcyBhIGNhY2hlbGluZSBiZWNvbWVzIGF2YWlsYWJsZSwg cHVibGlzaCB0aGUgSFdTUCBvbiB0aGUgZnJlZWxpc3QgKi8KLQlpZiAoIWh3c3AtPmZyZWVfYml0 bWFwKQotCQlsaXN0X2FkZF90YWlsKCZod3NwLT5mcmVlX2xpbmssICZndC0+aHdzcF9mcmVlX2xp c3QpOwotCi0JR0VNX0JVR19PTihjYWNoZWxpbmUgPj0gQklUU19QRVJfVFlQRShod3NwLT5mcmVl X2JpdG1hcCkpOwotCWh3c3AtPmZyZWVfYml0bWFwIHw9IEJJVF9VTEwoY2FjaGVsaW5lKTsKLQot CS8qIEFuZCBpZiBubyBvbmUgaXMgbGVmdCB1c2luZyBpdCwgZ2l2ZSB0aGUgcGFnZSBiYWNrIHRv IHRoZSBzeXN0ZW0gKi8KLQlpZiAoaHdzcC0+ZnJlZV9iaXRtYXAgPT0gfjB1bGwpIHsKLQkJaTkx NV92bWFfcHV0KGh3c3AtPnZtYSk7Ci0JCWxpc3RfZGVsKCZod3NwLT5mcmVlX2xpbmspOwotCQlr ZnJlZShod3NwKTsKLQl9Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZndC0+aHdzcF9sb2Nr LCBmbGFncyk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fcmN1X2NhY2hlbGluZV9mcmVlKHN0cnVjdCBy Y3VfaGVhZCAqcmN1KQotewotCXN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUgKmNsID0K LQkJY29udGFpbmVyX29mKHJjdSwgdHlwZW9mKCpjbCksIHJjdSk7Ci0KLQlpOTE1X2FjdGl2ZV9m aW5pKCZjbC0+YWN0aXZlKTsKLQlrZnJlZShjbCk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faWRsZV9j YWNoZWxpbmVfZnJlZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlH RU1fQlVHX09OKCFpOTE1X2FjdGl2ZV9pc19pZGxlKCZjbC0+YWN0aXZlKSk7Ci0KLQlpOTE1X2dl bV9vYmplY3RfdW5waW5fbWFwKGNsLT5od3NwLT52bWEtPm9iaik7Ci0JaTkxNV92bWFfcHV0KGNs LT5od3NwLT52bWEpOwotCV9faWRsZV9od3NwX2ZyZWUoY2wtPmh3c3AsIHB0cl91bm1hc2tfYml0 cyhjbC0+dmFkZHIsIENBQ0hFTElORV9CSVRTKSk7Ci0KLQljYWxsX3JjdSgmY2wtPnJjdSwgX19y Y3VfY2FjaGVsaW5lX2ZyZWUpOworICAgICAgIHJldHVybiB2bWE7CiB9CiAKIF9faTkxNV9hY3Rp dmVfY2FsbAotc3RhdGljIHZvaWQgX19jYWNoZWxpbmVfcmV0aXJlKHN0cnVjdCBpOTE1X2FjdGl2 ZSAqYWN0aXZlKQorc3RhdGljIHZvaWQgX190aW1lbGluZV9yZXRpcmUoc3RydWN0IGk5MTVfYWN0 aXZlICphY3RpdmUpCiB7Ci0Jc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2wgPQot CQljb250YWluZXJfb2YoYWN0aXZlLCB0eXBlb2YoKmNsKSwgYWN0aXZlKTsKKwlzdHJ1Y3QgaW50 ZWxfdGltZWxpbmUgKnRsID0KKwkJY29udGFpbmVyX29mKGFjdGl2ZSwgdHlwZW9mKCp0bCksIGFj dGl2ZSk7CiAKLQlpOTE1X3ZtYV91bnBpbihjbC0+aHdzcC0+dm1hKTsKLQlpZiAocHRyX3Rlc3Rf Yml0KGNsLT52YWRkciwgQ0FDSEVMSU5FX0ZSRUUpKQotCQlfX2lkbGVfY2FjaGVsaW5lX2ZyZWUo Y2wpOworCWk5MTVfdm1hX3VucGluKHRsLT5od3NwX2dndHQpOworCWludGVsX3RpbWVsaW5lX3B1 dCh0bCk7CiB9CiAKLXN0YXRpYyBpbnQgX19jYWNoZWxpbmVfYWN0aXZlKHN0cnVjdCBpOTE1X2Fj dGl2ZSAqYWN0aXZlKQorc3RhdGljIGludCBfX3RpbWVsaW5lX2FjdGl2ZShzdHJ1Y3QgaTkxNV9h Y3RpdmUgKmFjdGl2ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCA9 Ci0JCWNvbnRhaW5lcl9vZihhY3RpdmUsIHR5cGVvZigqY2wpLCBhY3RpdmUpOworCXN0cnVjdCBp bnRlbF90aW1lbGluZSAqdGwgPQorCQljb250YWluZXJfb2YoYWN0aXZlLCB0eXBlb2YoKnRsKSwg YWN0aXZlKTsKIAotCV9faTkxNV92bWFfcGluKGNsLT5od3NwLT52bWEpOworCV9faTkxNV92bWFf cGluKHRsLT5od3NwX2dndHQpOworCWludGVsX3RpbWVsaW5lX2dldCh0bCk7CiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICoKLWNhY2hlbGlu ZV9hbGxvYyhzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfaHdzcCAqaHdzcCwgdW5zaWduZWQgaW50IGNh Y2hlbGluZSkKLXsKLQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbDsKLQl2b2lk ICp2YWRkcjsKLQotCUdFTV9CVUdfT04oY2FjaGVsaW5lID49IEJJVChDQUNIRUxJTkVfQklUUykp OwotCi0JY2wgPSBrbWFsbG9jKHNpemVvZigqY2wpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWNsKQot CQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQotCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bp bl9tYXAoaHdzcC0+dm1hLT5vYmosIEk5MTVfTUFQX1dCKTsKLQlpZiAoSVNfRVJSKHZhZGRyKSkg ewotCQlrZnJlZShjbCk7Ci0JCXJldHVybiBFUlJfQ0FTVCh2YWRkcik7Ci0JfQotCi0JaTkxNV92 bWFfZ2V0KGh3c3AtPnZtYSk7Ci0JY2wtPmh3c3AgPSBod3NwOwotCWNsLT52YWRkciA9IHBhZ2Vf cGFja19iaXRzKHZhZGRyLCBjYWNoZWxpbmUpOwotCi0JaTkxNV9hY3RpdmVfaW5pdCgmY2wtPmFj dGl2ZSwgX19jYWNoZWxpbmVfYWN0aXZlLCBfX2NhY2hlbGluZV9yZXRpcmUpOwotCi0JcmV0dXJu IGNsOwotfQotCi1zdGF0aWMgdm9pZCBjYWNoZWxpbmVfYWNxdWlyZShzdHJ1Y3QgaW50ZWxfdGlt ZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlpZiAoY2wpCi0JCWk5MTVfYWN0aXZlX2FjcXVpcmUo JmNsLT5hY3RpdmUpOwotfQotCi1zdGF0aWMgdm9pZCBjYWNoZWxpbmVfcmVsZWFzZShzdHJ1Y3Qg aW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlpZiAoY2wpCi0JCWk5MTVfYWN0aXZl X3JlbGVhc2UoJmNsLT5hY3RpdmUpOwotfQotCi1zdGF0aWMgdm9pZCBjYWNoZWxpbmVfZnJlZShz dHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlpZiAoIWk5MTVfYWN0aXZl X2FjcXVpcmVfaWZfYnVzeSgmY2wtPmFjdGl2ZSkpIHsKLQkJX19pZGxlX2NhY2hlbGluZV9mcmVl KGNsKTsKLQkJcmV0dXJuOwotCX0KLQotCUdFTV9CVUdfT04ocHRyX3Rlc3RfYml0KGNsLT52YWRk ciwgQ0FDSEVMSU5FX0ZSRUUpKTsKLQljbC0+dmFkZHIgPSBwdHJfc2V0X2JpdChjbC0+dmFkZHIs IENBQ0hFTElORV9GUkVFKTsKLQotCWk5MTVfYWN0aXZlX3JlbGVhc2UoJmNsLT5hY3RpdmUpOwot fQotCiBzdGF0aWMgaW50IGludGVsX3RpbWVsaW5lX2luaXQoc3RydWN0IGludGVsX3RpbWVsaW5l ICp0aW1lbGluZSwKIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogCQkJICAgICAgIHN0 cnVjdCBpOTE1X3ZtYSAqaHdzcCwKQEAgLTIyNSwzOCArNjMsMjUgQEAgc3RhdGljIGludCBpbnRl bF90aW1lbGluZV9pbml0KHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmUsCiAKIAl0aW1l bGluZS0+Z3QgPSBndDsKIAotCXRpbWVsaW5lLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iID0gIWh3 c3A7Ci0JdGltZWxpbmUtPmh3c3BfY2FjaGVsaW5lID0gTlVMTDsKLQotCWlmICghaHdzcCkgewot CQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbDsKLQkJdW5zaWduZWQgaW50IGNh Y2hlbGluZTsKLQotCQlod3NwID0gaHdzcF9hbGxvYyh0aW1lbGluZSwgJmNhY2hlbGluZSk7CisJ aWYgKGh3c3ApIHsKKwkJdGltZWxpbmUtPmh3c3Bfb2Zmc2V0ID0gb2Zmc2V0OworCQl0aW1lbGlu ZS0+aHdzcF9nZ3R0ID0gaTkxNV92bWFfZ2V0KGh3c3ApOworCX0gZWxzZSB7CisJCXRpbWVsaW5l LT5oYXNfaW5pdGlhbF9icmVhZGNydW1iID0gdHJ1ZTsKKwkJaHdzcCA9IGh3c3BfYWxsb2MoZ3Qp OwogCQlpZiAoSVNfRVJSKGh3c3ApKQogCQkJcmV0dXJuIFBUUl9FUlIoaHdzcCk7Ci0KLQkJY2wg PSBjYWNoZWxpbmVfYWxsb2MoaHdzcC0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsKLQkJaWYgKElTX0VS UihjbCkpIHsKLQkJCV9faWRsZV9od3NwX2ZyZWUoaHdzcC0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsK LQkJCXJldHVybiBQVFJfRVJSKGNsKTsKLQkJfQotCi0JCXRpbWVsaW5lLT5od3NwX2NhY2hlbGlu ZSA9IGNsOwotCQl0aW1lbGluZS0+aHdzcF9vZmZzZXQgPSBjYWNoZWxpbmUgKiBDQUNIRUxJTkVf QllURVM7Ci0KLQkJdmFkZHIgPSBwYWdlX21hc2tfYml0cyhjbC0+dmFkZHIpOwotCX0gZWxzZSB7 Ci0JCXRpbWVsaW5lLT5od3NwX29mZnNldCA9IG9mZnNldDsKLQkJdmFkZHIgPSBpOTE1X2dlbV9v YmplY3RfcGluX21hcChod3NwLT5vYmosIEk5MTVfTUFQX1dCKTsKLQkJaWYgKElTX0VSUih2YWRk cikpCi0JCQlyZXR1cm4gUFRSX0VSUih2YWRkcik7CisJCXRpbWVsaW5lLT5od3NwX2dndHQgPSBo d3NwOwogCX0KIAotCXRpbWVsaW5lLT5od3NwX3NlcW5vID0KLQkJbWVtc2V0KHZhZGRyICsgdGlt ZWxpbmUtPmh3c3Bfb2Zmc2V0LCAwLCBDQUNIRUxJTkVfQllURVMpOworCXZhZGRyID0gaTkxNV9n ZW1fb2JqZWN0X3Bpbl9tYXAoaHdzcC0+b2JqLCBJOTE1X01BUF9XQik7CisJaWYgKElTX0VSUih2 YWRkcikpCisJCXJldHVybiBQVFJfRVJSKHZhZGRyKTsKKworCXRpbWVsaW5lLT5od3NwX21hcCA9 IHZhZGRyOworCXRpbWVsaW5lLT5od3NwX3NlcW5vID0gdmFkZHIgKyB0aW1lbGluZS0+aHdzcF9v ZmZzZXQ7CisJV1JJVEVfT05DRSgqKHUzMiAqKXRpbWVsaW5lLT5od3NwX3NlcW5vLCAwKTsKIAot CXRpbWVsaW5lLT5od3NwX2dndHQgPSBpOTE1X3ZtYV9nZXQoaHdzcCk7CiAJR0VNX0JVR19PTih0 aW1lbGluZS0+aHdzcF9vZmZzZXQgPj0gaHdzcC0+c2l6ZSk7CiAKIAl0aW1lbGluZS0+ZmVuY2Vf Y29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwpAQCAtMjY3LDYgKzkyLDcgQEAg c3RhdGljIGludCBpbnRlbF90aW1lbGluZV9pbml0KHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGlt ZWxpbmUsCiAJSU5JVF9MSVNUX0hFQUQoJnRpbWVsaW5lLT5yZXF1ZXN0cyk7CiAKIAlpOTE1X3N5 bmNtYXBfaW5pdCgmdGltZWxpbmUtPnN5bmMpOworCWk5MTVfYWN0aXZlX2luaXQoJnRpbWVsaW5l LT5hY3RpdmUsIF9fdGltZWxpbmVfYWN0aXZlLCBfX3RpbWVsaW5lX3JldGlyZSk7CiAKIAlyZXR1 cm4gMDsKIH0KQEAgLTI3Nyw5ICsxMDMsNiBAQCB2b2lkIGludGVsX2d0X2luaXRfdGltZWxpbmVz KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAKIAlzcGluX2xvY2tfaW5pdCgmdGltZWxpbmVzLT5sb2Nr KTsKIAlJTklUX0xJU1RfSEVBRCgmdGltZWxpbmVzLT5hY3RpdmVfbGlzdCk7Ci0KLQlzcGluX2xv Y2tfaW5pdCgmdGltZWxpbmVzLT5od3NwX2xvY2spOwotCUlOSVRfTElTVF9IRUFEKCZ0aW1lbGlu ZXMtPmh3c3BfZnJlZV9saXN0KTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfdGltZWxpbmVfZmlu aShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lKQpAQCAtMjg4LDEyICsxMTEsMTAgQEAg c3RhdGljIHZvaWQgaW50ZWxfdGltZWxpbmVfZmluaShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRp bWVsaW5lKQogCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJnRpbWVsaW5lLT5yZXF1ZXN0cykpOwog CUdFTV9CVUdfT04odGltZWxpbmUtPnJldGlyZSk7CiAKLQlpZiAodGltZWxpbmUtPmh3c3BfY2Fj aGVsaW5lKQotCQljYWNoZWxpbmVfZnJlZSh0aW1lbGluZS0+aHdzcF9jYWNoZWxpbmUpOwotCWVs c2UKLQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCh0aW1lbGluZS0+aHdzcF9nZ3R0LT5vYmop OworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAodGltZWxpbmUtPmh3c3BfZ2d0dC0+b2JqKTsK IAogCWk5MTVfdm1hX3B1dCh0aW1lbGluZS0+aHdzcF9nZ3R0KTsKKwlpOTE1X2FjdGl2ZV9maW5p KCZ0aW1lbGluZS0+YWN0aXZlKTsKIH0KIAogc3RydWN0IGludGVsX3RpbWVsaW5lICoKQEAgLTM0 MCw5ICsxNjEsOSBAQCBpbnQgaW50ZWxfdGltZWxpbmVfcGluKHN0cnVjdCBpbnRlbF90aW1lbGlu ZSAqdGwsIHN0cnVjdCBpOTE1X2dlbV93d19jdHggKnd3KQogCUdUX1RSQUNFKHRsLT5ndCwgInRp bWVsaW5lOiVsbHggdXNpbmcgSFdTUCBvZmZzZXQ6JXhcbiIsCiAJCSB0bC0+ZmVuY2VfY29udGV4 dCwgdGwtPmh3c3Bfb2Zmc2V0KTsKIAotCWNhY2hlbGluZV9hY3F1aXJlKHRsLT5od3NwX2NhY2hl bGluZSk7CisJaTkxNV9hY3RpdmVfYWNxdWlyZSgmdGwtPmFjdGl2ZSk7CiAJaWYgKGF0b21pY19m ZXRjaF9pbmMoJnRsLT5waW5fY291bnQpKSB7Ci0JCWNhY2hlbGluZV9yZWxlYXNlKHRsLT5od3Nw X2NhY2hlbGluZSk7CisJCWk5MTVfYWN0aXZlX3JlbGVhc2UoJnRsLT5hY3RpdmUpOwogCQlfX2k5 MTVfdm1hX3VucGluKHRsLT5od3NwX2dndHQpOwogCX0KIApAQCAtNDI5LDEwNiArMjUwLDIwIEBA IHN0YXRpYyB1MzIgdGltZWxpbmVfYWR2YW5jZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsKQog CXJldHVybiB0bC0+c2Vxbm8gKz0gMSArIHRsLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iOwogfQog Ci1zdGF0aWMgdm9pZCB0aW1lbGluZV9yb2xsYmFjayhzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRs KQotewotCXRsLT5zZXFubyAtPSAxICsgdGwtPmhhc19pbml0aWFsX2JyZWFkY3J1bWI7Ci19Ci0K IHN0YXRpYyBub2lubGluZSBpbnQKIF9faW50ZWxfdGltZWxpbmVfZ2V0X3NlcW5vKHN0cnVjdCBp bnRlbF90aW1lbGluZSAqdGwsCiAJCQkgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIAkJCSAg IHUzMiAqc2Vxbm8pCiB7Ci0Jc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2w7Ci0J dW5zaWduZWQgaW50IGNhY2hlbGluZTsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQl2b2lkICp2 YWRkcjsKLQlpbnQgZXJyOwotCi0JbWlnaHRfbG9jaygmdGwtPmd0LT5nZ3R0LT52bS5tdXRleCk7 Ci0JR1RfVFJBQ0UodGwtPmd0LCAidGltZWxpbmU6JWxseCB3cmFwcGVkXG4iLCB0bC0+ZmVuY2Vf Y29udGV4dCk7Ci0KLQkvKgotCSAqIElmIHRoZXJlIGlzIGFuIG91dHN0YW5kaW5nIEdQVSByZWZl cmVuY2UgdG8gdGhpcyBjYWNoZWxpbmUsCi0JICogc3VjaCBhcyBpdCBiZWluZyBzYW1wbGVkIGJ5 IGEgSFcgc2VtYXBob3JlIG9uIGFub3RoZXIgdGltZWxpbmUsCi0JICogd2UgY2Fubm90IHdyYXBh cm91bmQgb3VyIHNlcW5vIHZhbHVlICh0aGUgSFcgc2VtYXBob3JlIGRvZXMKLQkgKiBhIHN0cmlj dCBncmVhdGVyLXRoYW4tb3ItZXF1YWxzIGNvbXBhcmUsIG5vdCBpOTE1X3NlcW5vX3Bhc3NlZCku Ci0JICogU28gaWYgdGhlIGNhY2hlbGluZSBpcyBzdGlsbCBidXN5LCB3ZSBtdXN0IGRldGFjaCBv dXJzZWx2ZXMKLQkgKiBmcm9tIGl0IGFuZCBsZWF2ZSBpdCBpbmZsaWdodCBhbG9uZ3NpZGUgaXRz IHVzZXJzLgotCSAqCi0JICogSG93ZXZlciwgaWYgbm9ib2R5IGlzIHdhdGNoaW5nIGFuZCB3ZSBj YW4gZ3VhcmFudGVlIHRoYXQgbm9ib2R5Ci0JICogd2lsbCwgd2UgY291bGQgc2ltcGx5IHJldXNl IHRoZSBzYW1lIGNhY2hlbGluZS4KLQkgKgotCSAqIGlmIChpOTE1X2FjdGl2ZV9yZXF1ZXN0X2lz X3NpZ25hbGVkKCZ0bC0+bGFzdF9yZXF1ZXN0KSAmJgotCSAqICAgICBpOTE1X2FjdGl2ZV9pc19z aWduYWxlZCgmdGwtPmh3c3BfY2FjaGVsaW5lLT5hY3RpdmUpKQotCSAqCXJldHVybiAwOwotCSAq Ci0JICogVGhhdCBzZWVtcyB1bmxpa2VseSBmb3IgYSBidXN5IHRpbWVsaW5lIHRoYXQgbmVlZGVk IHRvIHdyYXAgaW4KLQkgKiB0aGUgZmlyc3QgcGxhY2UsIHNvIGp1c3QgcmVwbGFjZSB0aGUgY2Fj aGVsaW5lLgotCSAqLworCXRsLT5od3NwX29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQodGwtPmh3 c3BfZ2d0dCkgKworCQlvZmZzZXRfaW5fcGFnZSh0bC0+aHdzcF9vZmZzZXQgKyBDQUNIRUxJTkVf QllURVMpOwogCi0Jdm1hID0gaHdzcF9hbGxvYyh0bCwgJmNhY2hlbGluZSk7Ci0JaWYgKElTX0VS Uih2bWEpKSB7Ci0JCWVyciA9IFBUUl9FUlIodm1hKTsKLQkJZ290byBlcnJfcm9sbGJhY2s7Ci0J fQotCi0JZXJyID0gaTkxNV9nZ3R0X3Bpbih2bWEsIE5VTEwsIDAsIFBJTl9ISUdIKTsKLQlpZiAo ZXJyKSB7Ci0JCV9faWRsZV9od3NwX2ZyZWUodm1hLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCQln b3RvIGVycl9yb2xsYmFjazsKLQl9Ci0KLQljbCA9IGNhY2hlbGluZV9hbGxvYyh2bWEtPnByaXZh dGUsIGNhY2hlbGluZSk7Ci0JaWYgKElTX0VSUihjbCkpIHsKLQkJZXJyID0gUFRSX0VSUihjbCk7 Ci0JCV9faWRsZV9od3NwX2ZyZWUodm1hLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCQlnb3RvIGVy cl91bnBpbjsKLQl9Ci0JR0VNX0JVR19PTihjbC0+aHdzcC0+dm1hICE9IHZtYSk7Ci0KLQkvKgot CSAqIEF0dGFjaCB0aGUgb2xkIGNhY2hlbGluZSB0byB0aGUgY3VycmVudCByZXF1ZXN0LCBzbyB0 aGF0IHdlIG9ubHkKLQkgKiBmcmVlIGl0IGFmdGVyIHRoZSBjdXJyZW50IHJlcXVlc3QgaXMgcmV0 aXJlZCwgd2hpY2ggZW5zdXJlcyB0aGF0Ci0JICogYWxsIHdyaXRlcyBpbnRvIHRoZSBjYWNoZWxp bmUgZnJvbSBwcmV2aW91cyByZXF1ZXN0cyBhcmUgY29tcGxldGUuCi0JICovCi0JZXJyID0gaTkx NV9hY3RpdmVfcmVmKCZ0bC0+aHdzcF9jYWNoZWxpbmUtPmFjdGl2ZSwKLQkJCSAgICAgIHRsLT5m ZW5jZV9jb250ZXh0LAotCQkJICAgICAgJnJxLT5mZW5jZSk7Ci0JaWYgKGVycikKLQkJZ290byBl cnJfY2FjaGVsaW5lOwotCi0JY2FjaGVsaW5lX3JlbGVhc2UodGwtPmh3c3BfY2FjaGVsaW5lKTsg Lyogb3duZXJzaGlwIG5vdyB4ZmVyZWQgdG8gcnEgKi8KLQljYWNoZWxpbmVfZnJlZSh0bC0+aHdz cF9jYWNoZWxpbmUpOwotCi0JaTkxNV92bWFfdW5waW4odGwtPmh3c3BfZ2d0dCk7IC8qIGJpbmRp bmcga2VwdCBhbGl2ZSBieSBvbGQgY2FjaGVsaW5lICovCi0JaTkxNV92bWFfcHV0KHRsLT5od3Nw X2dndHQpOwotCi0JdGwtPmh3c3BfZ2d0dCA9IGk5MTVfdm1hX2dldCh2bWEpOwotCi0JdmFkZHIg PSBwYWdlX21hc2tfYml0cyhjbC0+dmFkZHIpOwotCXRsLT5od3NwX29mZnNldCA9IGNhY2hlbGlu ZSAqIENBQ0hFTElORV9CWVRFUzsKLQl0bC0+aHdzcF9zZXFubyA9Ci0JCW1lbXNldCh2YWRkciAr IHRsLT5od3NwX29mZnNldCwgMCwgQ0FDSEVMSU5FX0JZVEVTKTsKLQotCXRsLT5od3NwX29mZnNl dCArPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7Ci0JR1RfVFJBQ0UodGwtPmd0LCAidGltZWxpbmU6 JWxseCB1c2luZyBIV1NQIG9mZnNldDoleFxuIiwKLQkJIHRsLT5mZW5jZV9jb250ZXh0LCB0bC0+ aHdzcF9vZmZzZXQpOwotCi0JY2FjaGVsaW5lX2FjcXVpcmUoY2wpOwotCXRsLT5od3NwX2NhY2hl bGluZSA9IGNsOworCXRsLT5od3NwX3NlcW5vID0gdGwtPmh3c3BfbWFwICsgb2Zmc2V0X2luX3Bh Z2UodGwtPmh3c3Bfb2Zmc2V0KTsKKwlpbnRlbF90aW1lbGluZV9yZXNldF9zZXFubyh0bCk7CiAK IAkqc2Vxbm8gPSB0aW1lbGluZV9hZHZhbmNlKHRsKTsKIAlHRU1fQlVHX09OKGk5MTVfc2Vxbm9f cGFzc2VkKCp0bC0+aHdzcF9zZXFubywgKnNlcW5vKSk7CiAJcmV0dXJuIDA7Ci0KLWVycl9jYWNo ZWxpbmU6Ci0JY2FjaGVsaW5lX2ZyZWUoY2wpOwotZXJyX3VucGluOgotCWk5MTVfdm1hX3VucGlu KHZtYSk7Ci1lcnJfcm9sbGJhY2s6Ci0JdGltZWxpbmVfcm9sbGJhY2sodGwpOwotCXJldHVybiBl cnI7CiB9CiAKIGludCBpbnRlbF90aW1lbGluZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX3RpbWVs aW5lICp0bCwKQEAgLTUzOCw1MyArMjczLDQyIEBAIGludCBpbnRlbF90aW1lbGluZV9nZXRfc2Vx bm8oc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwKIAkqc2Vxbm8gPSB0aW1lbGluZV9hZHZhbmNl KHRsKTsKIAogCS8qIFJlcGxhY2UgdGhlIEhXU1Agb24gd3JhcGFyb3VuZCBmb3IgSFcgc2VtYXBo b3JlcyAqLwotCWlmICh1bmxpa2VseSghKnNlcW5vICYmIHRsLT5od3NwX2NhY2hlbGluZSkpCisJ aWYgKHVubGlrZWx5KCEqc2Vxbm8gJiYgdGwtPmhhc19pbml0aWFsX2JyZWFkY3J1bWIpKQogCQly ZXR1cm4gX19pbnRlbF90aW1lbGluZV9nZXRfc2Vxbm8odGwsIHJxLCBzZXFubyk7CiAKIAlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIGludCBjYWNoZWxpbmVfcmVmKHN0cnVjdCBpbnRlbF90aW1lbGlu ZV9jYWNoZWxpbmUgKmNsLAotCQkJIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQotewotCXJldHVy biBpOTE1X2FjdGl2ZV9hZGRfcmVxdWVzdCgmY2wtPmFjdGl2ZSwgcnEpOwotfQotCiBpbnQgaW50 ZWxfdGltZWxpbmVfcmVhZF9od3NwKHN0cnVjdCBpOTE1X3JlcXVlc3QgKmZyb20sCiAJCQkgICAg IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnRvLAogCQkJICAgICB1MzIgKmh3c3ApCiB7Ci0Jc3RydWN0 IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2w7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0 bDsKIAlpbnQgZXJyOwogCi0JR0VNX0JVR19PTighcmN1X2FjY2Vzc19wb2ludGVyKGZyb20tPmh3 c3BfY2FjaGVsaW5lKSk7Ci0KIAlyY3VfcmVhZF9sb2NrKCk7Ci0JY2wgPSByY3VfZGVyZWZlcmVu Y2UoZnJvbS0+aHdzcF9jYWNoZWxpbmUpOwotCWlmIChpOTE1X3JlcXVlc3RfY29tcGxldGVkKGZy b20pKSAvKiBjb25maXJtIGNhY2hlbGluZSBpcyB2YWxpZCAqLwotCQlnb3RvIHVubG9jazsKLQlp ZiAodW5saWtlbHkoIWk5MTVfYWN0aXZlX2FjcXVpcmVfaWZfYnVzeSgmY2wtPmFjdGl2ZSkpKQot CQlnb3RvIHVubG9jazsgLyogc2Vxbm8gd3JhcHBlZCBhbmQgY29tcGxldGVkISAqLwotCWlmICh1 bmxpa2VseShpOTE1X3JlcXVlc3RfY29tcGxldGVkKGZyb20pKSkKLQkJZ290byByZWxlYXNlOwor CXRsID0gcmN1X2RlcmVmZXJlbmNlKGZyb20tPnRpbWVsaW5lKTsKKwlpZiAodGwgJiYgKGk5MTVf cmVxdWVzdF9jb21wbGV0ZWQoZnJvbSkgfHwKKwkgICAgIWk5MTVfYWN0aXZlX2FjcXVpcmVfaWZf YnVzeSgmdGwtPmFjdGl2ZSkpKQorCQl0bCA9IE5VTEw7CisKKwkvKiBlbnN1cmUgd2Ugd2FpdCBv biB0aGUgcmlnaHQgcmVxdWVzdCwgaWYgbm90LCB3ZSBjb21wbGV0ZWQgKi8KKwlpZiAodGwgJiYg aTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChmcm9tKSkgeworCQlpOTE1X2FjdGl2ZV9yZWxlYXNlKCZ0 bC0+YWN0aXZlKTsKKwkJdGwgPSBOVUxMOworCX0KIAlyY3VfcmVhZF91bmxvY2soKTsKIAotCWVy ciA9IGNhY2hlbGluZV9yZWYoY2wsIHRvKTsKLQlpZiAoZXJyKQotCQlnb3RvIG91dDsKKwlpZiAo IXRsKQorCQlyZXR1cm4gMTsKIAotCSpod3NwID0gaTkxNV9nZ3R0X29mZnNldChjbC0+aHdzcC0+ dm1hKSArCi0JCXB0cl91bm1hc2tfYml0cyhjbC0+dmFkZHIsIENBQ0hFTElORV9CSVRTKSAqIENB Q0hFTElORV9CWVRFUzsKKwkvKiBod3NwX29mZnNldCBtYXkgd3JhcGFyb3VuZCwgc28gdXNlIGZy b20tPmh3c3Bfc2Vxbm8gKi8KKwkqaHdzcCA9IGk5MTVfZ2d0dF9vZmZzZXQodGwtPmh3c3BfZ2d0 dCkgKworCQkJb2Zmc2V0X2luX3BhZ2UoZnJvbS0+aHdzcF9zZXFubyk7CiAKLW91dDoKLQlpOTE1 X2FjdGl2ZV9yZWxlYXNlKCZjbC0+YWN0aXZlKTsKKwllcnIgPSBpOTE1X2FjdGl2ZV9hZGRfcmVx dWVzdCgmdGwtPmFjdGl2ZSwgdG8pOworCWk5MTVfYWN0aXZlX3JlbGVhc2UoJnRsLT5hY3RpdmUp OwogCXJldHVybiBlcnI7Ci0KLXJlbGVhc2U6Ci0JaTkxNV9hY3RpdmVfcmVsZWFzZSgmY2wtPmFj dGl2ZSk7Ci11bmxvY2s6Ci0JcmN1X3JlYWRfdW5sb2NrKCk7Ci0JcmV0dXJuIDE7CiB9CiAKIHZv aWQgaW50ZWxfdGltZWxpbmVfdW5waW4oc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCkKQEAgLTU5 Myw4ICszMTcsNyBAQCB2b2lkIGludGVsX3RpbWVsaW5lX3VucGluKHN0cnVjdCBpbnRlbF90aW1l bGluZSAqdGwpCiAJaWYgKCFhdG9taWNfZGVjX2FuZF90ZXN0KCZ0bC0+cGluX2NvdW50KSkKIAkJ cmV0dXJuOwogCi0JY2FjaGVsaW5lX3JlbGVhc2UodGwtPmh3c3BfY2FjaGVsaW5lKTsKLQorCWk5 MTVfYWN0aXZlX3JlbGVhc2UoJnRsLT5hY3RpdmUpOwogCV9faTkxNV92bWFfdW5waW4odGwtPmh3 c3BfZ2d0dCk7CiB9CiAKQEAgLTYxMiw3ICszMzUsNiBAQCB2b2lkIGludGVsX2d0X2ZpbmlfdGlt ZWxpbmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAJc3RydWN0IGludGVsX2d0X3RpbWVsaW5lcyAq dGltZWxpbmVzID0gJmd0LT50aW1lbGluZXM7CiAKIAlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZ0 aW1lbGluZXMtPmFjdGl2ZV9saXN0KSk7Ci0JR0VNX0JVR19PTighbGlzdF9lbXB0eSgmdGltZWxp bmVzLT5od3NwX2ZyZWVfbGlzdCkpOwogfQogCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5 MTVfU0VMRlRFU1QpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90 aW1lbGluZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmVf dHlwZXMuaAppbmRleCAwMjE4MWM1MDIwZGIuLjYxMGQ1OTNiNWJkYSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmVfdHlwZXMuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZV90eXBlcy5oCkBAIC0xOCw3ICsxOCw2IEBA CiBzdHJ1Y3QgaTkxNV92bWE7CiBzdHJ1Y3QgaTkxNV9zeW5jbWFwOwogc3RydWN0IGludGVsX2d0 Owotc3RydWN0IGludGVsX3RpbWVsaW5lX2h3c3A7CiAKIHN0cnVjdCBpbnRlbF90aW1lbGluZSB7 CiAJdTY0IGZlbmNlX2NvbnRleHQ7CkBAIC00NSwxMiArNDQsMTEgQEAgc3RydWN0IGludGVsX3Rp bWVsaW5lIHsKIAlhdG9taWNfdCBwaW5fY291bnQ7CiAJYXRvbWljX3QgYWN0aXZlX2NvdW50Owog CisJdm9pZCAqaHdzcF9tYXA7CiAJY29uc3QgdTMyICpod3NwX3NlcW5vOwogCXN0cnVjdCBpOTE1 X3ZtYSAqaHdzcF9nZ3R0OwogCXUzMiBod3NwX29mZnNldDsKIAotCXN0cnVjdCBpbnRlbF90aW1l bGluZV9jYWNoZWxpbmUgKmh3c3BfY2FjaGVsaW5lOwotCiAJYm9vbCBoYXNfaW5pdGlhbF9icmVh ZGNydW1iOwogCiAJLyoqCkBAIC02Nyw2ICs2NSw4IEBAIHN0cnVjdCBpbnRlbF90aW1lbGluZSB7 CiAJICovCiAJc3RydWN0IGk5MTVfYWN0aXZlX2ZlbmNlIGxhc3RfcmVxdWVzdDsKIAorCXN0cnVj dCBpOTE1X2FjdGl2ZSBhY3RpdmU7CisKIAkvKiogQSBjaGFpbiBvZiBjb21wbGV0ZWQgdGltZWxp bmVzIHJlYWR5IGZvciBlYXJseSByZXRpcmVtZW50LiAqLwogCXN0cnVjdCBpbnRlbF90aW1lbGlu ZSAqcmV0aXJlOwogCkBAIC04OCwxMyArODgsNCBAQCBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgewog CXN0cnVjdCByY3VfaGVhZCByY3U7CiB9OwogCi1zdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVs aW5lIHsKLQlzdHJ1Y3QgaTkxNV9hY3RpdmUgYWN0aXZlOwotCi0Jc3RydWN0IGludGVsX3RpbWVs aW5lX2h3c3AgKmh3c3A7Ci0Jdm9pZCAqdmFkZHI7Ci0KLQlzdHJ1Y3QgcmN1X2hlYWQgcmN1Owot fTsKLQogI2VuZGlmIC8qIF9fSTkxNV9USU1FTElORV9UWVBFU19IX18gKi8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5jCmluZGV4IDE5YzJjYjE2NmU3Yy4uOThj ZDE2MWIzOTI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90 aW1lbGluZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3RpbWVsaW5l LmMKQEAgLTY2NCw3ICs2NjQsNyBAQCBzdGF0aWMgaW50IGxpdmVfaHdzcF93cmFwKHZvaWQgKmFy ZykKIAlpZiAoSVNfRVJSKHRsKSkKIAkJcmV0dXJuIFBUUl9FUlIodGwpOwogCi0JaWYgKCF0bC0+ aGFzX2luaXRpYWxfYnJlYWRjcnVtYiB8fCAhdGwtPmh3c3BfY2FjaGVsaW5lKQorCWlmICghdGwt Pmhhc19pbml0aWFsX2JyZWFkY3J1bWIpCiAJCWdvdG8gb3V0X2ZyZWU7CiAKIAllcnIgPSBpbnRl bF90aW1lbGluZV9waW4odGwsIE5VTEwpOwpAQCAtNzgwLDkgKzc4MCw3IEBAIHN0YXRpYyBpbnQg bGl2ZV9od3NwX3JvbGxvdmVyX2tlcm5lbCh2b2lkICphcmcpCiAJCX0KIAogCQlHRU1fQlVHX09O KGk5MTVfYWN0aXZlX2ZlbmNlX2lzc2V0KCZ0bC0+bGFzdF9yZXF1ZXN0KSk7Ci0JCXRsLT5zZXFu byA9IDA7Ci0JCXRpbWVsaW5lX3JvbGxiYWNrKHRsKTsKLQkJdGltZWxpbmVfcm9sbGJhY2sodGwp OworCQl0bC0+c2Vxbm8gPSAtMnU7CiAJCVdSSVRFX09OQ0UoKih1MzIgKil0bC0+aHdzcF9zZXFu bywgdGwtPnNlcW5vKTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShycSk7IGkrKykg ewpAQCAtODYyLDExICs4NjAsMTAgQEAgc3RhdGljIGludCBsaXZlX2h3c3Bfcm9sbG92ZXJfdXNl cih2b2lkICphcmcpCiAJCQlnb3RvIG91dDsKIAogCQl0bCA9IGNlLT50aW1lbGluZTsKLQkJaWYg KCF0bC0+aGFzX2luaXRpYWxfYnJlYWRjcnVtYiB8fCAhdGwtPmh3c3BfY2FjaGVsaW5lKQorCQlp ZiAoIXRsLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iKQogCQkJZ290byBvdXQ7CiAKLQkJdGltZWxp bmVfcm9sbGJhY2sodGwpOwotCQl0aW1lbGluZV9yb2xsYmFjayh0bCk7CisJCXRsLT5zZXFubyA9 IC00dTsKIAkJV1JJVEVfT05DRSgqKHUzMiAqKXRsLT5od3NwX3NlcW5vLCB0bC0+c2Vxbm8pOwog CiAJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHJxKTsgaSsrKSB7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5jCmluZGV4IDBlODEzODE5YjA0MS4uNTk4ZmJhMDYxYmRhIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwpAQCAtODUzLDcgKzg1Myw2IEBAIF9faTkxNV9yZXF1 ZXN0X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIGdmcF90IGdmcCkKIAlycS0+ZmVu Y2Uuc2Vxbm8gPSBzZXFubzsKIAogCVJDVV9JTklUX1BPSU5URVIocnEtPnRpbWVsaW5lLCB0bCk7 Ci0JUkNVX0lOSVRfUE9JTlRFUihycS0+aHdzcF9jYWNoZWxpbmUsIHRsLT5od3NwX2NhY2hlbGlu ZSk7CiAJcnEtPmh3c3Bfc2Vxbm8gPSB0bC0+aHdzcF9zZXFubzsKIAlHRU1fQlVHX09OKGk5MTVf cmVxdWVzdF9jb21wbGV0ZWQocnEpKTsKIApAQCAtMTA5Miw5ICsxMDkxLDYgQEAgZW1pdF9zZW1h cGhvcmVfd2FpdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bywKIAlpZiAoaTkxNV9yZXF1ZXN0X2hh c19pbml0aWFsX2JyZWFkY3J1bWIodG8pKQogCQlnb3RvIGF3YWl0X2ZlbmNlOwogCi0JaWYgKCFy Y3VfYWNjZXNzX3BvaW50ZXIoZnJvbS0+aHdzcF9jYWNoZWxpbmUpKQotCQlnb3RvIGF3YWl0X2Zl bmNlOwotCiAJLyoKIAkgKiBJZiB0aGlzIG9yIGl0cyBkZXBlbmRlbnRzIGFyZSB3YWl0aW5nIG9u IGFuIGV4dGVybmFsIGZlbmNlCiAJICogdGhhdCBtYXkgZmFpbCBjYXRhc3Ryb3BoaWNhbGx5LCB0 aGVuIHdlIHdhbnQgdG8gYXZvaWQgdXNpbmcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgK aW5kZXggMTZiNzIxMDgwMTk1Li4wM2JhN2M4NTkyOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVxdWVzdC5oCkBAIC0yMzQsMTYgKzIzNCw2IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgewogCSAq LwogCWNvbnN0IHUzMiAqaHdzcF9zZXFubzsKIAotCS8qCi0JICogSWYgd2UgbmVlZCB0byBhY2Nl c3MgdGhlIHRpbWVsaW5lJ3Mgc2Vxbm8gZm9yIHRoaXMgcmVxdWVzdCBpbgotCSAqIGFub3RoZXIg cmVxdWVzdCwgd2UgbmVlZCB0byBrZWVwIGEgcmVhZCByZWZlcmVuY2UgdG8gdGhpcyBhc3NvY2lh dGVkCi0JICogY2FjaGVsaW5lLCBzbyB0aGF0IHdlIGRvIG5vdCBmcmVlIGFuZCByZWN5Y2xlIGl0 IGJlZm9yZSB0aGUgZm9yZWlnbgotCSAqIG9ic2VydmVycyBoYXZlIGNvbXBsZXRlZC4gSGVuY2Us IHdlIGtlZXAgYSBwb2ludGVyIHRvIHRoZSBjYWNoZWxpbmUKLQkgKiBpbnNpZGUgdGhlIHRpbWVs aW5lJ3MgSFdTUCB2bWEsIGJ1dCBpdCBpcyBvbmx5IHZhbGlkIHdoaWxlIHRoaXMKLQkgKiByZXF1 ZXN0IGhhcyBub3QgY29tcGxldGVkIGFuZCBndWFyZGVkIGJ5IHRoZSB0aW1lbGluZSBtdXRleC4K LQkgKi8KLQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lIF9fcmN1ICpod3NwX2NhY2hl bGluZTsKLQogCS8qKiBQb3NpdGlvbiBpbiB0aGUgcmluZyBvZiB0aGUgc3RhcnQgb2YgdGhlIHJl cXVlc3QgKi8KIAl1MzIgaGVhZDsKIAotLSAKMi4yOC4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK