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 8D843C433E7 for ; Mon, 12 Oct 2020 14:47:14 +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 4C1782080A for ; Mon, 12 Oct 2020 14:47:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4C1782080A 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 3D1C76E497; Mon, 12 Oct 2020 14:47:10 +0000 (UTC) Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7D5436E49C for ; Mon, 12 Oct 2020 14:47:09 +0000 (UTC) From: Maarten Lankhorst To: intel-gfx@lists.freedesktop.org Date: Mon, 12 Oct 2020 16:46:08 +0200 Message-Id: <20201012144706.555345-4-maarten.lankhorst@linux.intel.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201012144706.555345-1-maarten.lankhorst@linux.intel.com> References: <20201012144706.555345-1-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 03/61] drm/i915: Do not share hwsp across contexts any more, v3. 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 IEZpeCBpbmNvbnNpc3RlbnQgaW5kZW50IGluIGh3c3BfYWxsb2MoKSAoa2J1aWxkKQoKU2lnbmVk LW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVs LmNvbT4KUmV2aWV3ZWQtYnk6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGlu dGVsLmNvbT4gI3YxClJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8bGtwQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oICAgICAgfCAg IDQgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmUuYyAgICAgIHwgMzg2 ICsrKy0tLS0tLS0tLS0tLS0tLQogLi4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZV90 eXBlcy5oICAgIHwgIDE1ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1l bGluZS5jICAgfCAgMTEgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jICAg ICAgICAgICB8ICAgNCAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaCAgICAg ICAgICAgfCAgMTAgLQogNiBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAzNjkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3Rf dHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmgKaW5kZXgg NmQzOWE0YTExYmYzLi43YWZmODM1MGMzNjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2d0X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZ3RfdHlwZXMuaApAQCAtMzksMTAgKzM5LDYgQEAgc3RydWN0IGludGVsX2d0IHsKIAlzdHJ1 Y3QgaW50ZWxfZ3RfdGltZWxpbmVzIHsKIAkJc3BpbmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0cyBh Y3RpdmVfbGlzdCAqLwogCQlzdHJ1Y3QgbGlzdF9oZWFkIGFjdGl2ZV9saXN0OwotCi0JCS8qIFBh Y2sgbXVsdGlwbGUgdGltZWxpbmVzJyBzZXFub3MgaW50byB0aGUgc2FtZSBwYWdlICovCi0JCXNw aW5sb2NrX3QgaHdzcF9sb2NrOwotCQlzdHJ1Y3QgbGlzdF9oZWFkIGh3c3BfZnJlZV9saXN0Owog CX0gdGltZWxpbmVzOwogCiAJc3RydWN0IGludGVsX2d0X3JlcXVlc3RzIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZS5jCmluZGV4IGEyZjc0Y2VmZTRjMy4uMTNmM2YyNmZj NTA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVsaW5lLmMKQEAgLTEyLDIx ICsxMiw3IEBACiAjaW5jbHVkZSAiaW50ZWxfcmluZy5oIgogI2luY2x1ZGUgImludGVsX3RpbWVs aW5lLmgiCiAKLSNkZWZpbmUgcHRyX3NldF9iaXQocHRyLCBiaXQpICgodHlwZW9mKHB0cikpKCh1 bnNpZ25lZCBsb25nKShwdHIpIHwgQklUKGJpdCkpKQotI2RlZmluZSBwdHJfdGVzdF9iaXQocHRy LCBiaXQpICgodW5zaWduZWQgbG9uZykocHRyKSAmIEJJVChiaXQpKQotCi0jZGVmaW5lIENBQ0hF TElORV9CSVRTIDYKLSNkZWZpbmUgQ0FDSEVMSU5FX0ZSRUUgQ0FDSEVMSU5FX0JJVFMKLQotc3Ry dWN0IGludGVsX3RpbWVsaW5lX2h3c3AgewotCXN0cnVjdCBpbnRlbF9ndCAqZ3Q7Ci0Jc3RydWN0 IGludGVsX2d0X3RpbWVsaW5lcyAqZ3RfdGltZWxpbmVzOwotCXN0cnVjdCBsaXN0X2hlYWQgZnJl ZV9saW5rOwotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCXU2NCBmcmVlX2JpdG1hcDsKLX07Ci0K LXN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKl9faHdzcF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0 KQorc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqaHdzcF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0 KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CiAJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKQEAgLTQ1LDE3NCArMzEsMjYgQEAgc3RhdGljIHN0 cnVjdCBpOTE1X3ZtYSAqX19od3NwX2FsbG9jKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAJcmV0dXJu IHZtYTsKIH0KIAotc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqCi1od3NwX2FsbG9jKHN0cnVjdCBp bnRlbF90aW1lbGluZSAqdGltZWxpbmUsIHVuc2lnbmVkIGludCAqY2FjaGVsaW5lKQotewotCXN0 cnVjdCBpbnRlbF9ndF90aW1lbGluZXMgKmd0ID0gJnRpbWVsaW5lLT5ndC0+dGltZWxpbmVzOwot CXN0cnVjdCBpbnRlbF90aW1lbGluZV9od3NwICpod3NwOwotCi0JQlVJTERfQlVHX09OKEJJVFNf UEVSX1RZUEUodTY0KSAqIENBQ0hFTElORV9CWVRFUyA+IFBBR0VfU0laRSk7Ci0KLQlzcGluX2xv Y2tfaXJxKCZndC0+aHdzcF9sb2NrKTsKLQotCS8qIGh3c3BfZnJlZV9saXN0IG9ubHkgY29udGFp bnMgSFdTUCB0aGF0IGhhdmUgYXZhaWxhYmxlIGNhY2hlbGluZXMgKi8KLQlod3NwID0gbGlzdF9m aXJzdF9lbnRyeV9vcl9udWxsKCZndC0+aHdzcF9mcmVlX2xpc3QsCi0JCQkJCXR5cGVvZigqaHdz cCksIGZyZWVfbGluayk7Ci0JaWYgKCFod3NwKSB7Ci0JCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwot Ci0JCXNwaW5fdW5sb2NrX2lycSgmZ3QtPmh3c3BfbG9jayk7Ci0KLQkJaHdzcCA9IGttYWxsb2Mo c2l6ZW9mKCpod3NwKSwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghaHdzcCkKLQkJCXJldHVybiBFUlJf UFRSKC1FTk9NRU0pOwotCi0JCXZtYSA9IF9faHdzcF9hbGxvYyh0aW1lbGluZS0+Z3QpOwotCQlp ZiAoSVNfRVJSKHZtYSkpIHsKLQkJCWtmcmVlKGh3c3ApOwotCQkJcmV0dXJuIHZtYTsKLQkJfQot Ci0JCUdUX1RSQUNFKHRpbWVsaW5lLT5ndCwgIm5ldyBIV1NQIGFsbG9jYXRlZFxuIik7Ci0KLQkJ dm1hLT5wcml2YXRlID0gaHdzcDsKLQkJaHdzcC0+Z3QgPSB0aW1lbGluZS0+Z3Q7Ci0JCWh3c3At PnZtYSA9IHZtYTsKLQkJaHdzcC0+ZnJlZV9iaXRtYXAgPSB+MHVsbDsKLQkJaHdzcC0+Z3RfdGlt ZWxpbmVzID0gZ3Q7Ci0KLQkJc3Bpbl9sb2NrX2lycSgmZ3QtPmh3c3BfbG9jayk7Ci0JCWxpc3Rf YWRkKCZod3NwLT5mcmVlX2xpbmssICZndC0+aHdzcF9mcmVlX2xpc3QpOwotCX0KLQotCUdFTV9C VUdfT04oIWh3c3AtPmZyZWVfYml0bWFwKTsKLQkqY2FjaGVsaW5lID0gX19mZnM2NChod3NwLT5m cmVlX2JpdG1hcCk7Ci0JaHdzcC0+ZnJlZV9iaXRtYXAgJj0gfkJJVF9VTEwoKmNhY2hlbGluZSk7 Ci0JaWYgKCFod3NwLT5mcmVlX2JpdG1hcCkKLQkJbGlzdF9kZWwoJmh3c3AtPmZyZWVfbGluayk7 Ci0KLQlzcGluX3VubG9ja19pcnEoJmd0LT5od3NwX2xvY2spOwotCi0JR0VNX0JVR19PTihod3Nw LT52bWEtPnByaXZhdGUgIT0gaHdzcCk7Ci0JcmV0dXJuIGh3c3AtPnZtYTsKLX0KLQotc3RhdGlj IHZvaWQgX19pZGxlX2h3c3BfZnJlZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfaHdzcCAqaHdzcCwg aW50IGNhY2hlbGluZSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3RfdGltZWxpbmVzICpndCA9IGh3c3At Pmd0X3RpbWVsaW5lczsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNh dmUoJmd0LT5od3NwX2xvY2ssIGZsYWdzKTsKLQotCS8qIEFzIGEgY2FjaGVsaW5lIGJlY29tZXMg YXZhaWxhYmxlLCBwdWJsaXNoIHRoZSBIV1NQIG9uIHRoZSBmcmVlbGlzdCAqLwotCWlmICghaHdz cC0+ZnJlZV9iaXRtYXApCi0JCWxpc3RfYWRkX3RhaWwoJmh3c3AtPmZyZWVfbGluaywgJmd0LT5o d3NwX2ZyZWVfbGlzdCk7Ci0KLQlHRU1fQlVHX09OKGNhY2hlbGluZSA+PSBCSVRTX1BFUl9UWVBF KGh3c3AtPmZyZWVfYml0bWFwKSk7Ci0JaHdzcC0+ZnJlZV9iaXRtYXAgfD0gQklUX1VMTChjYWNo ZWxpbmUpOwotCi0JLyogQW5kIGlmIG5vIG9uZSBpcyBsZWZ0IHVzaW5nIGl0LCBnaXZlIHRoZSBw YWdlIGJhY2sgdG8gdGhlIHN5c3RlbSAqLwotCWlmIChod3NwLT5mcmVlX2JpdG1hcCA9PSB+MHVs bCkgewotCQlpOTE1X3ZtYV9wdXQoaHdzcC0+dm1hKTsKLQkJbGlzdF9kZWwoJmh3c3AtPmZyZWVf bGluayk7Ci0JCWtmcmVlKGh3c3ApOwotCX0KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmd0 LT5od3NwX2xvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHZvaWQgX19yY3VfY2FjaGVsaW5lX2Zy ZWUoc3RydWN0IHJjdV9oZWFkICpyY3UpCi17Ci0Jc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hl bGluZSAqY2wgPQotCQljb250YWluZXJfb2YocmN1LCB0eXBlb2YoKmNsKSwgcmN1KTsKLQotCWk5 MTVfYWN0aXZlX2ZpbmkoJmNsLT5hY3RpdmUpOwotCWtmcmVlKGNsKTsKLX0KLQotc3RhdGljIHZv aWQgX19pZGxlX2NhY2hlbGluZV9mcmVlKHN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxpbmUg KmNsKQotewotCUdFTV9CVUdfT04oIWk5MTVfYWN0aXZlX2lzX2lkbGUoJmNsLT5hY3RpdmUpKTsK LQotCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoY2wtPmh3c3AtPnZtYS0+b2JqKTsKLQlpOTE1 X3ZtYV9wdXQoY2wtPmh3c3AtPnZtYSk7Ci0JX19pZGxlX2h3c3BfZnJlZShjbC0+aHdzcCwgcHRy X3VubWFza19iaXRzKGNsLT52YWRkciwgQ0FDSEVMSU5FX0JJVFMpKTsKLQotCWNhbGxfcmN1KCZj bC0+cmN1LCBfX3JjdV9jYWNoZWxpbmVfZnJlZSk7Ci19Ci0KIF9faTkxNV9hY3RpdmVfY2FsbAot c3RhdGljIHZvaWQgX19jYWNoZWxpbmVfcmV0aXJlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqYWN0aXZl KQorc3RhdGljIHZvaWQgX190aW1lbGluZV9yZXRpcmUoc3RydWN0IGk5MTVfYWN0aXZlICphY3Rp dmUpCiB7Ci0Jc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2wgPQotCQljb250YWlu ZXJfb2YoYWN0aXZlLCB0eXBlb2YoKmNsKSwgYWN0aXZlKTsKKwlzdHJ1Y3QgaW50ZWxfdGltZWxp bmUgKnRsID0KKwkJY29udGFpbmVyX29mKGFjdGl2ZSwgdHlwZW9mKCp0bCksIGFjdGl2ZSk7CiAK LQlpOTE1X3ZtYV91bnBpbihjbC0+aHdzcC0+dm1hKTsKLQlpZiAocHRyX3Rlc3RfYml0KGNsLT52 YWRkciwgQ0FDSEVMSU5FX0ZSRUUpKQotCQlfX2lkbGVfY2FjaGVsaW5lX2ZyZWUoY2wpOworCWk5 MTVfdm1hX3VucGluKHRsLT5od3NwX2dndHQpOworCWludGVsX3RpbWVsaW5lX3B1dCh0bCk7CiB9 CiAKLXN0YXRpYyBpbnQgX19jYWNoZWxpbmVfYWN0aXZlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqYWN0 aXZlKQorc3RhdGljIGludCBfX3RpbWVsaW5lX2FjdGl2ZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmFj dGl2ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCA9Ci0JCWNvbnRh aW5lcl9vZihhY3RpdmUsIHR5cGVvZigqY2wpLCBhY3RpdmUpOworCXN0cnVjdCBpbnRlbF90aW1l bGluZSAqdGwgPQorCQljb250YWluZXJfb2YoYWN0aXZlLCB0eXBlb2YoKnRsKSwgYWN0aXZlKTsK IAotCV9faTkxNV92bWFfcGluKGNsLT5od3NwLT52bWEpOworCV9faTkxNV92bWFfcGluKHRsLT5o d3NwX2dndHQpOworCWludGVsX3RpbWVsaW5lX2dldCh0bCk7CiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICoKLWNhY2hlbGluZV9hbGxvYyhz dHJ1Y3QgaW50ZWxfdGltZWxpbmVfaHdzcCAqaHdzcCwgdW5zaWduZWQgaW50IGNhY2hlbGluZSkK LXsKLQlzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbDsKLQl2b2lkICp2YWRkcjsK LQotCUdFTV9CVUdfT04oY2FjaGVsaW5lID49IEJJVChDQUNIRUxJTkVfQklUUykpOwotCi0JY2wg PSBrbWFsbG9jKHNpemVvZigqY2wpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWNsKQotCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKLQotCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoaHdz cC0+dm1hLT5vYmosIEk5MTVfTUFQX1dCKTsKLQlpZiAoSVNfRVJSKHZhZGRyKSkgewotCQlrZnJl ZShjbCk7Ci0JCXJldHVybiBFUlJfQ0FTVCh2YWRkcik7Ci0JfQotCi0JaTkxNV92bWFfZ2V0KGh3 c3AtPnZtYSk7Ci0JY2wtPmh3c3AgPSBod3NwOwotCWNsLT52YWRkciA9IHBhZ2VfcGFja19iaXRz KHZhZGRyLCBjYWNoZWxpbmUpOwotCi0JaTkxNV9hY3RpdmVfaW5pdCgmY2wtPmFjdGl2ZSwgX19j YWNoZWxpbmVfYWN0aXZlLCBfX2NhY2hlbGluZV9yZXRpcmUpOwotCi0JcmV0dXJuIGNsOwotfQot Ci1zdGF0aWMgdm9pZCBjYWNoZWxpbmVfYWNxdWlyZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2Fj aGVsaW5lICpjbCkKLXsKLQlpZiAoY2wpCi0JCWk5MTVfYWN0aXZlX2FjcXVpcmUoJmNsLT5hY3Rp dmUpOwotfQotCi1zdGF0aWMgdm9pZCBjYWNoZWxpbmVfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfdGlt ZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlpZiAoY2wpCi0JCWk5MTVfYWN0aXZlX3JlbGVhc2Uo JmNsLT5hY3RpdmUpOwotfQotCi1zdGF0aWMgdm9pZCBjYWNoZWxpbmVfZnJlZShzdHJ1Y3QgaW50 ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbCkKLXsKLQlpZiAoIWk5MTVfYWN0aXZlX2FjcXVpcmVf aWZfYnVzeSgmY2wtPmFjdGl2ZSkpIHsKLQkJX19pZGxlX2NhY2hlbGluZV9mcmVlKGNsKTsKLQkJ cmV0dXJuOwotCX0KLQotCUdFTV9CVUdfT04ocHRyX3Rlc3RfYml0KGNsLT52YWRkciwgQ0FDSEVM SU5FX0ZSRUUpKTsKLQljbC0+dmFkZHIgPSBwdHJfc2V0X2JpdChjbC0+dmFkZHIsIENBQ0hFTElO RV9GUkVFKTsKLQotCWk5MTVfYWN0aXZlX3JlbGVhc2UoJmNsLT5hY3RpdmUpOwotfQotCiBzdGF0 aWMgaW50IGludGVsX3RpbWVsaW5lX2luaXQoc3RydWN0IGludGVsX3RpbWVsaW5lICp0aW1lbGlu ZSwKIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogCQkJICAgICAgIHN0cnVjdCBpOTE1 X3ZtYSAqaHdzcCwKQEAgLTIyNSwzOCArNjMsMjUgQEAgc3RhdGljIGludCBpbnRlbF90aW1lbGlu ZV9pbml0KHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmUsCiAKIAl0aW1lbGluZS0+Z3Qg PSBndDsKIAotCXRpbWVsaW5lLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iID0gIWh3c3A7Ci0JdGlt ZWxpbmUtPmh3c3BfY2FjaGVsaW5lID0gTlVMTDsKLQotCWlmICghaHdzcCkgewotCQlzdHJ1Y3Qg aW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lICpjbDsKLQkJdW5zaWduZWQgaW50IGNhY2hlbGluZTsK LQotCQlod3NwID0gaHdzcF9hbGxvYyh0aW1lbGluZSwgJmNhY2hlbGluZSk7CisJaWYgKGh3c3Ap IHsKKwkJdGltZWxpbmUtPmh3c3Bfb2Zmc2V0ID0gb2Zmc2V0OworCQl0aW1lbGluZS0+aHdzcF9n Z3R0ID0gaTkxNV92bWFfZ2V0KGh3c3ApOworCX0gZWxzZSB7CisJCXRpbWVsaW5lLT5oYXNfaW5p dGlhbF9icmVhZGNydW1iID0gdHJ1ZTsKKwkJaHdzcCA9IGh3c3BfYWxsb2MoZ3QpOwogCQlpZiAo SVNfRVJSKGh3c3ApKQogCQkJcmV0dXJuIFBUUl9FUlIoaHdzcCk7Ci0KLQkJY2wgPSBjYWNoZWxp bmVfYWxsb2MoaHdzcC0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsKLQkJaWYgKElTX0VSUihjbCkpIHsK LQkJCV9faWRsZV9od3NwX2ZyZWUoaHdzcC0+cHJpdmF0ZSwgY2FjaGVsaW5lKTsKLQkJCXJldHVy biBQVFJfRVJSKGNsKTsKLQkJfQotCi0JCXRpbWVsaW5lLT5od3NwX2NhY2hlbGluZSA9IGNsOwot CQl0aW1lbGluZS0+aHdzcF9vZmZzZXQgPSBjYWNoZWxpbmUgKiBDQUNIRUxJTkVfQllURVM7Ci0K LQkJdmFkZHIgPSBwYWdlX21hc2tfYml0cyhjbC0+dmFkZHIpOwotCX0gZWxzZSB7Ci0JCXRpbWVs aW5lLT5od3NwX29mZnNldCA9IG9mZnNldDsKLQkJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGlu X21hcChod3NwLT5vYmosIEk5MTVfTUFQX1dCKTsKLQkJaWYgKElTX0VSUih2YWRkcikpCi0JCQly ZXR1cm4gUFRSX0VSUih2YWRkcik7CisJCXRpbWVsaW5lLT5od3NwX2dndHQgPSBod3NwOwogCX0K IAotCXRpbWVsaW5lLT5od3NwX3NlcW5vID0KLQkJbWVtc2V0KHZhZGRyICsgdGltZWxpbmUtPmh3 c3Bfb2Zmc2V0LCAwLCBDQUNIRUxJTkVfQllURVMpOworCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0 X3Bpbl9tYXAoaHdzcC0+b2JqLCBJOTE1X01BUF9XQik7CisJaWYgKElTX0VSUih2YWRkcikpCisJ CXJldHVybiBQVFJfRVJSKHZhZGRyKTsKKworCXRpbWVsaW5lLT5od3NwX21hcCA9IHZhZGRyOwor CXRpbWVsaW5lLT5od3NwX3NlcW5vID0gdmFkZHIgKyB0aW1lbGluZS0+aHdzcF9vZmZzZXQ7CisJ V1JJVEVfT05DRSgqKHUzMiAqKXRpbWVsaW5lLT5od3NwX3NlcW5vLCAwKTsKIAotCXRpbWVsaW5l LT5od3NwX2dndHQgPSBpOTE1X3ZtYV9nZXQoaHdzcCk7CiAJR0VNX0JVR19PTih0aW1lbGluZS0+ aHdzcF9vZmZzZXQgPj0gaHdzcC0+c2l6ZSk7CiAKIAl0aW1lbGluZS0+ZmVuY2VfY29udGV4dCA9 IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwpAQCAtMjY3LDYgKzkyLDcgQEAgc3RhdGljIGlu dCBpbnRlbF90aW1lbGluZV9pbml0KHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmUsCiAJ SU5JVF9MSVNUX0hFQUQoJnRpbWVsaW5lLT5yZXF1ZXN0cyk7CiAKIAlpOTE1X3N5bmNtYXBfaW5p dCgmdGltZWxpbmUtPnN5bmMpOworCWk5MTVfYWN0aXZlX2luaXQoJnRpbWVsaW5lLT5hY3RpdmUs IF9fdGltZWxpbmVfYWN0aXZlLCBfX3RpbWVsaW5lX3JldGlyZSk7CiAKIAlyZXR1cm4gMDsKIH0K QEAgLTI3Nyw5ICsxMDMsNiBAQCB2b2lkIGludGVsX2d0X2luaXRfdGltZWxpbmVzKHN0cnVjdCBp bnRlbF9ndCAqZ3QpCiAKIAlzcGluX2xvY2tfaW5pdCgmdGltZWxpbmVzLT5sb2NrKTsKIAlJTklU X0xJU1RfSEVBRCgmdGltZWxpbmVzLT5hY3RpdmVfbGlzdCk7Ci0KLQlzcGluX2xvY2tfaW5pdCgm dGltZWxpbmVzLT5od3NwX2xvY2spOwotCUlOSVRfTElTVF9IRUFEKCZ0aW1lbGluZXMtPmh3c3Bf ZnJlZV9saXN0KTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfdGltZWxpbmVfZmluaShzdHJ1Y3Qg aW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lKQpAQCAtMjg4LDEyICsxMTEsMTAgQEAgc3RhdGljIHZv aWQgaW50ZWxfdGltZWxpbmVfZmluaShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lKQog CUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJnRpbWVsaW5lLT5yZXF1ZXN0cykpOwogCUdFTV9CVUdf T04odGltZWxpbmUtPnJldGlyZSk7CiAKLQlpZiAodGltZWxpbmUtPmh3c3BfY2FjaGVsaW5lKQot CQljYWNoZWxpbmVfZnJlZSh0aW1lbGluZS0+aHdzcF9jYWNoZWxpbmUpOwotCWVsc2UKLQkJaTkx NV9nZW1fb2JqZWN0X3VucGluX21hcCh0aW1lbGluZS0+aHdzcF9nZ3R0LT5vYmopOworCWk5MTVf Z2VtX29iamVjdF91bnBpbl9tYXAodGltZWxpbmUtPmh3c3BfZ2d0dC0+b2JqKTsKIAogCWk5MTVf dm1hX3B1dCh0aW1lbGluZS0+aHdzcF9nZ3R0KTsKKwlpOTE1X2FjdGl2ZV9maW5pKCZ0aW1lbGlu ZS0+YWN0aXZlKTsKIH0KIAogc3RydWN0IGludGVsX3RpbWVsaW5lICoKQEAgLTM0MCw5ICsxNjEs OSBAQCBpbnQgaW50ZWxfdGltZWxpbmVfcGluKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwsIHN0 cnVjdCBpOTE1X2dlbV93d19jdHggKnd3KQogCUdUX1RSQUNFKHRsLT5ndCwgInRpbWVsaW5lOiVs bHggdXNpbmcgSFdTUCBvZmZzZXQ6JXhcbiIsCiAJCSB0bC0+ZmVuY2VfY29udGV4dCwgdGwtPmh3 c3Bfb2Zmc2V0KTsKIAotCWNhY2hlbGluZV9hY3F1aXJlKHRsLT5od3NwX2NhY2hlbGluZSk7CisJ aTkxNV9hY3RpdmVfYWNxdWlyZSgmdGwtPmFjdGl2ZSk7CiAJaWYgKGF0b21pY19mZXRjaF9pbmMo JnRsLT5waW5fY291bnQpKSB7Ci0JCWNhY2hlbGluZV9yZWxlYXNlKHRsLT5od3NwX2NhY2hlbGlu ZSk7CisJCWk5MTVfYWN0aXZlX3JlbGVhc2UoJnRsLT5hY3RpdmUpOwogCQlfX2k5MTVfdm1hX3Vu cGluKHRsLT5od3NwX2dndHQpOwogCX0KIApAQCAtNDI5LDEwNiArMjUwLDIwIEBAIHN0YXRpYyB1 MzIgdGltZWxpbmVfYWR2YW5jZShzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsKQogCXJldHVybiB0 bC0+c2Vxbm8gKz0gMSArIHRsLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iOwogfQogCi1zdGF0aWMg dm9pZCB0aW1lbGluZV9yb2xsYmFjayhzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsKQotewotCXRs LT5zZXFubyAtPSAxICsgdGwtPmhhc19pbml0aWFsX2JyZWFkY3J1bWI7Ci19Ci0KIHN0YXRpYyBu b2lubGluZSBpbnQKIF9faW50ZWxfdGltZWxpbmVfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF90aW1l bGluZSAqdGwsCiAJCQkgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIAkJCSAgIHUzMiAqc2Vx bm8pCiB7Ci0Jc3RydWN0IGludGVsX3RpbWVsaW5lX2NhY2hlbGluZSAqY2w7Ci0JdW5zaWduZWQg aW50IGNhY2hlbGluZTsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQl2b2lkICp2YWRkcjsKLQlp bnQgZXJyOwotCi0JbWlnaHRfbG9jaygmdGwtPmd0LT5nZ3R0LT52bS5tdXRleCk7Ci0JR1RfVFJB Q0UodGwtPmd0LCAidGltZWxpbmU6JWxseCB3cmFwcGVkXG4iLCB0bC0+ZmVuY2VfY29udGV4dCk7 Ci0KLQkvKgotCSAqIElmIHRoZXJlIGlzIGFuIG91dHN0YW5kaW5nIEdQVSByZWZlcmVuY2UgdG8g dGhpcyBjYWNoZWxpbmUsCi0JICogc3VjaCBhcyBpdCBiZWluZyBzYW1wbGVkIGJ5IGEgSFcgc2Vt YXBob3JlIG9uIGFub3RoZXIgdGltZWxpbmUsCi0JICogd2UgY2Fubm90IHdyYXBhcm91bmQgb3Vy IHNlcW5vIHZhbHVlICh0aGUgSFcgc2VtYXBob3JlIGRvZXMKLQkgKiBhIHN0cmljdCBncmVhdGVy LXRoYW4tb3ItZXF1YWxzIGNvbXBhcmUsIG5vdCBpOTE1X3NlcW5vX3Bhc3NlZCkuCi0JICogU28g aWYgdGhlIGNhY2hlbGluZSBpcyBzdGlsbCBidXN5LCB3ZSBtdXN0IGRldGFjaCBvdXJzZWx2ZXMK LQkgKiBmcm9tIGl0IGFuZCBsZWF2ZSBpdCBpbmZsaWdodCBhbG9uZ3NpZGUgaXRzIHVzZXJzLgot CSAqCi0JICogSG93ZXZlciwgaWYgbm9ib2R5IGlzIHdhdGNoaW5nIGFuZCB3ZSBjYW4gZ3VhcmFu dGVlIHRoYXQgbm9ib2R5Ci0JICogd2lsbCwgd2UgY291bGQgc2ltcGx5IHJldXNlIHRoZSBzYW1l IGNhY2hlbGluZS4KLQkgKgotCSAqIGlmIChpOTE1X2FjdGl2ZV9yZXF1ZXN0X2lzX3NpZ25hbGVk KCZ0bC0+bGFzdF9yZXF1ZXN0KSAmJgotCSAqICAgICBpOTE1X2FjdGl2ZV9pc19zaWduYWxlZCgm dGwtPmh3c3BfY2FjaGVsaW5lLT5hY3RpdmUpKQotCSAqCXJldHVybiAwOwotCSAqCi0JICogVGhh dCBzZWVtcyB1bmxpa2VseSBmb3IgYSBidXN5IHRpbWVsaW5lIHRoYXQgbmVlZGVkIHRvIHdyYXAg aW4KLQkgKiB0aGUgZmlyc3QgcGxhY2UsIHNvIGp1c3QgcmVwbGFjZSB0aGUgY2FjaGVsaW5lLgot CSAqLworCXRsLT5od3NwX29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQodGwtPmh3c3BfZ2d0dCkg KworCQlvZmZzZXRfaW5fcGFnZSh0bC0+aHdzcF9vZmZzZXQgKyBDQUNIRUxJTkVfQllURVMpOwog Ci0Jdm1hID0gaHdzcF9hbGxvYyh0bCwgJmNhY2hlbGluZSk7Ci0JaWYgKElTX0VSUih2bWEpKSB7 Ci0JCWVyciA9IFBUUl9FUlIodm1hKTsKLQkJZ290byBlcnJfcm9sbGJhY2s7Ci0JfQotCi0JZXJy ID0gaTkxNV9nZ3R0X3Bpbih2bWEsIE5VTEwsIDAsIFBJTl9ISUdIKTsKLQlpZiAoZXJyKSB7Ci0J CV9faWRsZV9od3NwX2ZyZWUodm1hLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCQlnb3RvIGVycl9y b2xsYmFjazsKLQl9Ci0KLQljbCA9IGNhY2hlbGluZV9hbGxvYyh2bWEtPnByaXZhdGUsIGNhY2hl bGluZSk7Ci0JaWYgKElTX0VSUihjbCkpIHsKLQkJZXJyID0gUFRSX0VSUihjbCk7Ci0JCV9faWRs ZV9od3NwX2ZyZWUodm1hLT5wcml2YXRlLCBjYWNoZWxpbmUpOwotCQlnb3RvIGVycl91bnBpbjsK LQl9Ci0JR0VNX0JVR19PTihjbC0+aHdzcC0+dm1hICE9IHZtYSk7Ci0KLQkvKgotCSAqIEF0dGFj aCB0aGUgb2xkIGNhY2hlbGluZSB0byB0aGUgY3VycmVudCByZXF1ZXN0LCBzbyB0aGF0IHdlIG9u bHkKLQkgKiBmcmVlIGl0IGFmdGVyIHRoZSBjdXJyZW50IHJlcXVlc3QgaXMgcmV0aXJlZCwgd2hp Y2ggZW5zdXJlcyB0aGF0Ci0JICogYWxsIHdyaXRlcyBpbnRvIHRoZSBjYWNoZWxpbmUgZnJvbSBw cmV2aW91cyByZXF1ZXN0cyBhcmUgY29tcGxldGUuCi0JICovCi0JZXJyID0gaTkxNV9hY3RpdmVf cmVmKCZ0bC0+aHdzcF9jYWNoZWxpbmUtPmFjdGl2ZSwKLQkJCSAgICAgIHRsLT5mZW5jZV9jb250 ZXh0LAotCQkJICAgICAgJnJxLT5mZW5jZSk7Ci0JaWYgKGVycikKLQkJZ290byBlcnJfY2FjaGVs aW5lOwotCi0JY2FjaGVsaW5lX3JlbGVhc2UodGwtPmh3c3BfY2FjaGVsaW5lKTsgLyogb3duZXJz aGlwIG5vdyB4ZmVyZWQgdG8gcnEgKi8KLQljYWNoZWxpbmVfZnJlZSh0bC0+aHdzcF9jYWNoZWxp bmUpOwotCi0JaTkxNV92bWFfdW5waW4odGwtPmh3c3BfZ2d0dCk7IC8qIGJpbmRpbmcga2VwdCBh bGl2ZSBieSBvbGQgY2FjaGVsaW5lICovCi0JaTkxNV92bWFfcHV0KHRsLT5od3NwX2dndHQpOwot Ci0JdGwtPmh3c3BfZ2d0dCA9IGk5MTVfdm1hX2dldCh2bWEpOwotCi0JdmFkZHIgPSBwYWdlX21h c2tfYml0cyhjbC0+dmFkZHIpOwotCXRsLT5od3NwX29mZnNldCA9IGNhY2hlbGluZSAqIENBQ0hF TElORV9CWVRFUzsKLQl0bC0+aHdzcF9zZXFubyA9Ci0JCW1lbXNldCh2YWRkciArIHRsLT5od3Nw X29mZnNldCwgMCwgQ0FDSEVMSU5FX0JZVEVTKTsKLQotCXRsLT5od3NwX29mZnNldCArPSBpOTE1 X2dndHRfb2Zmc2V0KHZtYSk7Ci0JR1RfVFJBQ0UodGwtPmd0LCAidGltZWxpbmU6JWxseCB1c2lu ZyBIV1NQIG9mZnNldDoleFxuIiwKLQkJIHRsLT5mZW5jZV9jb250ZXh0LCB0bC0+aHdzcF9vZmZz ZXQpOwotCi0JY2FjaGVsaW5lX2FjcXVpcmUoY2wpOwotCXRsLT5od3NwX2NhY2hlbGluZSA9IGNs OworCXRsLT5od3NwX3NlcW5vID0gdGwtPmh3c3BfbWFwICsgb2Zmc2V0X2luX3BhZ2UodGwtPmh3 c3Bfb2Zmc2V0KTsKKwlpbnRlbF90aW1lbGluZV9yZXNldF9zZXFubyh0bCk7CiAKIAkqc2Vxbm8g PSB0aW1lbGluZV9hZHZhbmNlKHRsKTsKIAlHRU1fQlVHX09OKGk5MTVfc2Vxbm9fcGFzc2VkKCp0 bC0+aHdzcF9zZXFubywgKnNlcW5vKSk7CiAJcmV0dXJuIDA7Ci0KLWVycl9jYWNoZWxpbmU6Ci0J Y2FjaGVsaW5lX2ZyZWUoY2wpOwotZXJyX3VucGluOgotCWk5MTVfdm1hX3VucGluKHZtYSk7Ci1l cnJfcm9sbGJhY2s6Ci0JdGltZWxpbmVfcm9sbGJhY2sodGwpOwotCXJldHVybiBlcnI7CiB9CiAK IGludCBpbnRlbF90aW1lbGluZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwK QEAgLTUzOCw1MyArMjczLDQyIEBAIGludCBpbnRlbF90aW1lbGluZV9nZXRfc2Vxbm8oc3RydWN0 IGludGVsX3RpbWVsaW5lICp0bCwKIAkqc2Vxbm8gPSB0aW1lbGluZV9hZHZhbmNlKHRsKTsKIAog CS8qIFJlcGxhY2UgdGhlIEhXU1Agb24gd3JhcGFyb3VuZCBmb3IgSFcgc2VtYXBob3JlcyAqLwot CWlmICh1bmxpa2VseSghKnNlcW5vICYmIHRsLT5od3NwX2NhY2hlbGluZSkpCisJaWYgKHVubGlr ZWx5KCEqc2Vxbm8gJiYgdGwtPmhhc19pbml0aWFsX2JyZWFkY3J1bWIpKQogCQlyZXR1cm4gX19p bnRlbF90aW1lbGluZV9nZXRfc2Vxbm8odGwsIHJxLCBzZXFubyk7CiAKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIGludCBjYWNoZWxpbmVfcmVmKHN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNoZWxp bmUgKmNsLAotCQkJIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQotewotCXJldHVybiBpOTE1X2Fj dGl2ZV9hZGRfcmVxdWVzdCgmY2wtPmFjdGl2ZSwgcnEpOwotfQotCiBpbnQgaW50ZWxfdGltZWxp bmVfcmVhZF9od3NwKHN0cnVjdCBpOTE1X3JlcXVlc3QgKmZyb20sCiAJCQkgICAgIHN0cnVjdCBp OTE1X3JlcXVlc3QgKnRvLAogCQkJICAgICB1MzIgKmh3c3ApCiB7Ci0Jc3RydWN0IGludGVsX3Rp bWVsaW5lX2NhY2hlbGluZSAqY2w7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bDsKIAlpbnQg ZXJyOwogCi0JR0VNX0JVR19PTighcmN1X2FjY2Vzc19wb2ludGVyKGZyb20tPmh3c3BfY2FjaGVs aW5lKSk7Ci0KIAlyY3VfcmVhZF9sb2NrKCk7Ci0JY2wgPSByY3VfZGVyZWZlcmVuY2UoZnJvbS0+ aHdzcF9jYWNoZWxpbmUpOwotCWlmIChpOTE1X3JlcXVlc3RfY29tcGxldGVkKGZyb20pKSAvKiBj b25maXJtIGNhY2hlbGluZSBpcyB2YWxpZCAqLwotCQlnb3RvIHVubG9jazsKLQlpZiAodW5saWtl bHkoIWk5MTVfYWN0aXZlX2FjcXVpcmVfaWZfYnVzeSgmY2wtPmFjdGl2ZSkpKQotCQlnb3RvIHVu bG9jazsgLyogc2Vxbm8gd3JhcHBlZCBhbmQgY29tcGxldGVkISAqLwotCWlmICh1bmxpa2VseShp OTE1X3JlcXVlc3RfY29tcGxldGVkKGZyb20pKSkKLQkJZ290byByZWxlYXNlOworCXRsID0gcmN1 X2RlcmVmZXJlbmNlKGZyb20tPnRpbWVsaW5lKTsKKwlpZiAodGwgJiYgKGk5MTVfcmVxdWVzdF9j b21wbGV0ZWQoZnJvbSkgfHwKKwkgICAgIWk5MTVfYWN0aXZlX2FjcXVpcmVfaWZfYnVzeSgmdGwt PmFjdGl2ZSkpKQorCQl0bCA9IE5VTEw7CisKKwkvKiBlbnN1cmUgd2Ugd2FpdCBvbiB0aGUgcmln aHQgcmVxdWVzdCwgaWYgbm90LCB3ZSBjb21wbGV0ZWQgKi8KKwlpZiAodGwgJiYgaTkxNV9yZXF1 ZXN0X2NvbXBsZXRlZChmcm9tKSkgeworCQlpOTE1X2FjdGl2ZV9yZWxlYXNlKCZ0bC0+YWN0aXZl KTsKKwkJdGwgPSBOVUxMOworCX0KIAlyY3VfcmVhZF91bmxvY2soKTsKIAotCWVyciA9IGNhY2hl bGluZV9yZWYoY2wsIHRvKTsKLQlpZiAoZXJyKQotCQlnb3RvIG91dDsKKwlpZiAoIXRsKQorCQly ZXR1cm4gMTsKIAotCSpod3NwID0gaTkxNV9nZ3R0X29mZnNldChjbC0+aHdzcC0+dm1hKSArCi0J CXB0cl91bm1hc2tfYml0cyhjbC0+dmFkZHIsIENBQ0hFTElORV9CSVRTKSAqIENBQ0hFTElORV9C WVRFUzsKKwkvKiBod3NwX29mZnNldCBtYXkgd3JhcGFyb3VuZCwgc28gdXNlIGZyb20tPmh3c3Bf c2Vxbm8gKi8KKwkqaHdzcCA9IGk5MTVfZ2d0dF9vZmZzZXQodGwtPmh3c3BfZ2d0dCkgKworCQkJ b2Zmc2V0X2luX3BhZ2UoZnJvbS0+aHdzcF9zZXFubyk7CiAKLW91dDoKLQlpOTE1X2FjdGl2ZV9y ZWxlYXNlKCZjbC0+YWN0aXZlKTsKKwllcnIgPSBpOTE1X2FjdGl2ZV9hZGRfcmVxdWVzdCgmdGwt PmFjdGl2ZSwgdG8pOworCWk5MTVfYWN0aXZlX3JlbGVhc2UoJnRsLT5hY3RpdmUpOwogCXJldHVy biBlcnI7Ci0KLXJlbGVhc2U6Ci0JaTkxNV9hY3RpdmVfcmVsZWFzZSgmY2wtPmFjdGl2ZSk7Ci11 bmxvY2s6Ci0JcmN1X3JlYWRfdW5sb2NrKCk7Ci0JcmV0dXJuIDE7CiB9CiAKIHZvaWQgaW50ZWxf dGltZWxpbmVfdW5waW4oc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCkKQEAgLTU5Myw4ICszMTcs NyBAQCB2b2lkIGludGVsX3RpbWVsaW5lX3VucGluKHN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwp CiAJaWYgKCFhdG9taWNfZGVjX2FuZF90ZXN0KCZ0bC0+cGluX2NvdW50KSkKIAkJcmV0dXJuOwog Ci0JY2FjaGVsaW5lX3JlbGVhc2UodGwtPmh3c3BfY2FjaGVsaW5lKTsKLQorCWk5MTVfYWN0aXZl X3JlbGVhc2UoJnRsLT5hY3RpdmUpOwogCV9faTkxNV92bWFfdW5waW4odGwtPmh3c3BfZ2d0dCk7 CiB9CiAKQEAgLTYxMiw3ICszMzUsNiBAQCB2b2lkIGludGVsX2d0X2ZpbmlfdGltZWxpbmVzKHN0 cnVjdCBpbnRlbF9ndCAqZ3QpCiAJc3RydWN0IGludGVsX2d0X3RpbWVsaW5lcyAqdGltZWxpbmVz ID0gJmd0LT50aW1lbGluZXM7CiAKIAlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZ0aW1lbGluZXMt PmFjdGl2ZV9saXN0KSk7Ci0JR0VNX0JVR19PTighbGlzdF9lbXB0eSgmdGltZWxpbmVzLT5od3Nw X2ZyZWVfbGlzdCkpOwogfQogCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRF U1QpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZV90 eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmVfdHlwZXMuaApp bmRleCAwMjE4MWM1MDIwZGIuLjYxMGQ1OTNiNWJkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmVfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF90aW1lbGluZV90eXBlcy5oCkBAIC0xOCw3ICsxOCw2IEBACiBzdHJ1Y3Qg aTkxNV92bWE7CiBzdHJ1Y3QgaTkxNV9zeW5jbWFwOwogc3RydWN0IGludGVsX2d0Owotc3RydWN0 IGludGVsX3RpbWVsaW5lX2h3c3A7CiAKIHN0cnVjdCBpbnRlbF90aW1lbGluZSB7CiAJdTY0IGZl bmNlX2NvbnRleHQ7CkBAIC00NSwxMiArNDQsMTEgQEAgc3RydWN0IGludGVsX3RpbWVsaW5lIHsK IAlhdG9taWNfdCBwaW5fY291bnQ7CiAJYXRvbWljX3QgYWN0aXZlX2NvdW50OwogCisJdm9pZCAq aHdzcF9tYXA7CiAJY29uc3QgdTMyICpod3NwX3NlcW5vOwogCXN0cnVjdCBpOTE1X3ZtYSAqaHdz cF9nZ3R0OwogCXUzMiBod3NwX29mZnNldDsKIAotCXN0cnVjdCBpbnRlbF90aW1lbGluZV9jYWNo ZWxpbmUgKmh3c3BfY2FjaGVsaW5lOwotCiAJYm9vbCBoYXNfaW5pdGlhbF9icmVhZGNydW1iOwog CiAJLyoqCkBAIC02Nyw2ICs2NSw4IEBAIHN0cnVjdCBpbnRlbF90aW1lbGluZSB7CiAJICovCiAJ c3RydWN0IGk5MTVfYWN0aXZlX2ZlbmNlIGxhc3RfcmVxdWVzdDsKIAorCXN0cnVjdCBpOTE1X2Fj dGl2ZSBhY3RpdmU7CisKIAkvKiogQSBjaGFpbiBvZiBjb21wbGV0ZWQgdGltZWxpbmVzIHJlYWR5 IGZvciBlYXJseSByZXRpcmVtZW50LiAqLwogCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqcmV0aXJl OwogCkBAIC04OCwxMyArODgsNCBAQCBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgewogCXN0cnVjdCBy Y3VfaGVhZCByY3U7CiB9OwogCi1zdHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lIHsKLQlz dHJ1Y3QgaTkxNV9hY3RpdmUgYWN0aXZlOwotCi0Jc3RydWN0IGludGVsX3RpbWVsaW5lX2h3c3Ag Kmh3c3A7Ci0Jdm9pZCAqdmFkZHI7Ci0KLQlzdHJ1Y3QgcmN1X2hlYWQgcmN1OwotfTsKLQogI2Vu ZGlmIC8qIF9fSTkxNV9USU1FTElORV9UWVBFU19IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9zZWxmdGVzdF90aW1lbGluZS5jCmluZGV4IDE5YzJjYjE2NmU3Yy4uOThjZDE2MWIzOTI1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3RpbWVsaW5lLmMKQEAgLTY2 NCw3ICs2NjQsNyBAQCBzdGF0aWMgaW50IGxpdmVfaHdzcF93cmFwKHZvaWQgKmFyZykKIAlpZiAo SVNfRVJSKHRsKSkKIAkJcmV0dXJuIFBUUl9FUlIodGwpOwogCi0JaWYgKCF0bC0+aGFzX2luaXRp YWxfYnJlYWRjcnVtYiB8fCAhdGwtPmh3c3BfY2FjaGVsaW5lKQorCWlmICghdGwtPmhhc19pbml0 aWFsX2JyZWFkY3J1bWIpCiAJCWdvdG8gb3V0X2ZyZWU7CiAKIAllcnIgPSBpbnRlbF90aW1lbGlu ZV9waW4odGwsIE5VTEwpOwpAQCAtNzgwLDkgKzc4MCw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9od3Nw X3JvbGxvdmVyX2tlcm5lbCh2b2lkICphcmcpCiAJCX0KIAogCQlHRU1fQlVHX09OKGk5MTVfYWN0 aXZlX2ZlbmNlX2lzc2V0KCZ0bC0+bGFzdF9yZXF1ZXN0KSk7Ci0JCXRsLT5zZXFubyA9IDA7Ci0J CXRpbWVsaW5lX3JvbGxiYWNrKHRsKTsKLQkJdGltZWxpbmVfcm9sbGJhY2sodGwpOworCQl0bC0+ c2Vxbm8gPSAtMnU7CiAJCVdSSVRFX09OQ0UoKih1MzIgKil0bC0+aHdzcF9zZXFubywgdGwtPnNl cW5vKTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShycSk7IGkrKykgewpAQCAtODYy LDExICs4NjAsMTAgQEAgc3RhdGljIGludCBsaXZlX2h3c3Bfcm9sbG92ZXJfdXNlcih2b2lkICph cmcpCiAJCQlnb3RvIG91dDsKIAogCQl0bCA9IGNlLT50aW1lbGluZTsKLQkJaWYgKCF0bC0+aGFz X2luaXRpYWxfYnJlYWRjcnVtYiB8fCAhdGwtPmh3c3BfY2FjaGVsaW5lKQorCQlpZiAoIXRsLT5o YXNfaW5pdGlhbF9icmVhZGNydW1iKQogCQkJZ290byBvdXQ7CiAKLQkJdGltZWxpbmVfcm9sbGJh Y2sodGwpOwotCQl0aW1lbGluZV9yb2xsYmFjayh0bCk7CisJCXRsLT5zZXFubyA9IC00dTsKIAkJ V1JJVEVfT05DRSgqKHUzMiAqKXRsLT5od3NwX3NlcW5vLCB0bC0+c2Vxbm8pOwogCiAJCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKHJxKTsgaSsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVx dWVzdC5jCmluZGV4IDBlODEzODE5YjA0MS4uNTk4ZmJhMDYxYmRhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlcXVlc3QuYwpAQCAtODUzLDcgKzg1Myw2IEBAIF9faTkxNV9yZXF1ZXN0X2NyZWF0 ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIGdmcF90IGdmcCkKIAlycS0+ZmVuY2Uuc2Vxbm8g PSBzZXFubzsKIAogCVJDVV9JTklUX1BPSU5URVIocnEtPnRpbWVsaW5lLCB0bCk7Ci0JUkNVX0lO SVRfUE9JTlRFUihycS0+aHdzcF9jYWNoZWxpbmUsIHRsLT5od3NwX2NhY2hlbGluZSk7CiAJcnEt Pmh3c3Bfc2Vxbm8gPSB0bC0+aHdzcF9zZXFubzsKIAlHRU1fQlVHX09OKGk5MTVfcmVxdWVzdF9j b21wbGV0ZWQocnEpKTsKIApAQCAtMTA5Miw5ICsxMDkxLDYgQEAgZW1pdF9zZW1hcGhvcmVfd2Fp dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bywKIAlpZiAoaTkxNV9yZXF1ZXN0X2hhc19pbml0aWFs X2JyZWFkY3J1bWIodG8pKQogCQlnb3RvIGF3YWl0X2ZlbmNlOwogCi0JaWYgKCFyY3VfYWNjZXNz X3BvaW50ZXIoZnJvbS0+aHdzcF9jYWNoZWxpbmUpKQotCQlnb3RvIGF3YWl0X2ZlbmNlOwotCiAJ LyoKIAkgKiBJZiB0aGlzIG9yIGl0cyBkZXBlbmRlbnRzIGFyZSB3YWl0aW5nIG9uIGFuIGV4dGVy bmFsIGZlbmNlCiAJICogdGhhdCBtYXkgZmFpbCBjYXRhc3Ryb3BoaWNhbGx5LCB0aGVuIHdlIHdh bnQgdG8gYXZvaWQgdXNpbmcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKaW5kZXggMTZi NzIxMDgwMTk1Li4wM2JhN2M4NTkyOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5o CkBAIC0yMzQsMTYgKzIzNCw2IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgewogCSAqLwogCWNvbnN0 IHUzMiAqaHdzcF9zZXFubzsKIAotCS8qCi0JICogSWYgd2UgbmVlZCB0byBhY2Nlc3MgdGhlIHRp bWVsaW5lJ3Mgc2Vxbm8gZm9yIHRoaXMgcmVxdWVzdCBpbgotCSAqIGFub3RoZXIgcmVxdWVzdCwg d2UgbmVlZCB0byBrZWVwIGEgcmVhZCByZWZlcmVuY2UgdG8gdGhpcyBhc3NvY2lhdGVkCi0JICog Y2FjaGVsaW5lLCBzbyB0aGF0IHdlIGRvIG5vdCBmcmVlIGFuZCByZWN5Y2xlIGl0IGJlZm9yZSB0 aGUgZm9yZWlnbgotCSAqIG9ic2VydmVycyBoYXZlIGNvbXBsZXRlZC4gSGVuY2UsIHdlIGtlZXAg YSBwb2ludGVyIHRvIHRoZSBjYWNoZWxpbmUKLQkgKiBpbnNpZGUgdGhlIHRpbWVsaW5lJ3MgSFdT UCB2bWEsIGJ1dCBpdCBpcyBvbmx5IHZhbGlkIHdoaWxlIHRoaXMKLQkgKiByZXF1ZXN0IGhhcyBu b3QgY29tcGxldGVkIGFuZCBndWFyZGVkIGJ5IHRoZSB0aW1lbGluZSBtdXRleC4KLQkgKi8KLQlz dHJ1Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lIF9fcmN1ICpod3NwX2NhY2hlbGluZTsKLQog CS8qKiBQb3NpdGlvbiBpbiB0aGUgcmluZyBvZiB0aGUgc3RhcnQgb2YgdGhlIHJlcXVlc3QgKi8K IAl1MzIgaGVhZDsKIAotLSAKMi4yOC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK