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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id C6FB9EC144C for ; Tue, 3 Mar 2026 13:34:57 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 071E210E01F; Tue, 3 Mar 2026 13:34:57 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="d+0OQW38"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id C81CF10E01F; Tue, 3 Mar 2026 13:34:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772544896; x=1804080896; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=sDKpKGZ7zZ94WyscCZ4Mby+dM5br8h1NdshW6OVYBAI=; b=d+0OQW387g5/+MYhZIb0GZ/grGjZhgRyD0Uow4C6s1FchP8VPnZz6B/7 LplJOWWGJTMWc/uVu8qrDMoezFLn6ujyuJfiJWJgAEXqeaq5BmLTnQqWA w6TpFkZZkjJhd5KC3PZWGvjy7nhhWkqKt4rG/S8aFcHVJB3+feVxx7J2r DNX66JYv2GjZvEnmvqDed1Evxm+gwH0UmJ0yAudzSYooXVxgp156pdyOH E91k2WibuVszpxLc+e/4ebog5E2+DqJhhpASxFKehA8oxl3Ul5eOxRNsr nMHQKYjfKuLmVLIhuQ2MlA/yV8I3Pm/BNEggMjzKUItpH5eI6Bbu+x3he g==; X-CSE-ConnectionGUID: EnpRilDjRhOuu8Ay1nxM4Q== X-CSE-MsgGUID: 6TGQEja+SAal30RXpbGsQA== X-IronPort-AV: E=McAfee;i="6800,10657,11718"; a="76179773" X-IronPort-AV: E=Sophos;i="6.21,322,1763452800"; d="scan'208";a="76179773" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2026 05:34:55 -0800 X-CSE-ConnectionGUID: xlb+CNX+Q4u9lSUNKXHLIg== X-CSE-MsgGUID: //CKb90nTSa1x3VPdQ3oDA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,322,1763452800"; d="scan'208";a="217947945" Received: from smoticic-mobl1.ger.corp.intel.com (HELO fedora) ([10.245.244.243]) by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2026 05:34:52 -0800 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-xe@lists.freedesktop.org Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Matthew Brost , =?UTF-8?q?Christian=20K=C3=B6nig?= , dri-devel@lists.freedesktop.org, Jason Gunthorpe , Andrew Morton , Simona Vetter , Dave Airlie , Alistair Popple , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 4/4] drm/xe/userptr: Defer Waiting for TLB invalidation to the second pass if possible Date: Tue, 3 Mar 2026 14:34:09 +0100 Message-ID: <20260303133409.11609-5-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260303133409.11609-1-thomas.hellstrom@linux.intel.com> References: <20260303133409.11609-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Tm93IHRoYXQgdGhlIHR3by1wYXNzIG5vdGlmaWVyIGZsb3cgdXNlcyB4ZV92bWFfdXNlcnB0cl9k b19pbnZhbCgpIGZvcgp0aGUgZmVuY2Utd2FpdCArIFRMQi1pbnZhbGlkYXRlIHdvcmssIGV4dGVu ZCBpdCB0byBzdXBwb3J0IGEgZnVydGhlcgpkZWZlcnJlZCBUTEIgd2FpdDoKCi0geGVfdm1hX3Vz ZXJwdHJfZG9faW52YWwoKTogd2hlbiB0aGUgZW1iZWRkZWQgZmluaXNoIGhhbmRsZSBpcyBmcmVl LAogIHN1Ym1pdCB0aGUgVExCIGludmFsaWRhdGlvbiBhc3luY2hyb25vdXNseSAoeGVfdm1faW52 YWxpZGF0ZV92bWFfc3VibWl0KQogIGFuZCByZXR1cm4gJnVzZXJwdHItPmZpbmlzaCBzbyB0aGUg bW11X25vdGlmaWVyIGNvcmUgc2NoZWR1bGVzIGEgdGhpcmQKICBwYXNzLiAgV2hlbiB0aGUgaGFu ZGxlIGlzIG9jY3VwaWVkIGJ5IGEgY29uY3VycmVudCBpbnZhbGlkYXRpb24sIGZhbGwKICBiYWNr IHRvIHRoZSBzeW5jaHJvbm91cyB4ZV92bV9pbnZhbGlkYXRlX3ZtYSgpIHBhdGguCgotIHhlX3Zt YV91c2VycHRyX2NvbXBsZXRlX3RsYl9pbnZhbCgpOiBuZXcgaGVscGVyIGNhbGxlZCBmcm9tCiAg aW52YWxpZGF0ZV9maW5pc2ggd2hlbiB0bGJfaW52YWxfc3VibWl0dGVkIGlzIHNldC4gIFdhaXRz IGZvciB0aGUKICBwcmV2aW91c2x5IHN1Ym1pdHRlZCBiYXRjaCBhbmQgdW5tYXBzIHRoZSBncHVz dm0gcGFnZXMuCgp4ZV92bWFfdXNlcnB0cl9pbnZhbGlkYXRlX2ZpbmlzaCgpIGRpc3BhdGNoZXMg YmV0d2VlbiB0aGUgdHdvIGhlbHBlcnMKdmlhIHRsYl9pbnZhbF9zdWJtaXR0ZWQsIG1ha2luZyB0 aGUgdGhyZWUgcG9zc2libGUgZmxvd3MgZXhwbGljaXQ6CgogIHBhc3MxIChmZW5jZXMgcGVuZGlu ZykgIC0+IGludmFsaWRhdGVfZmluaXNoIC0+IGRvX2ludmFsIChzeW5jIFRMQikKICBwYXNzMSAo ZmVuY2VzIGRvbmUpICAgICAtPiBkb19pbnZhbCAtPiBpbnZhbGlkYXRlX2ZpbmlzaAogICAgICAg ICAgICAgICAgICAgICAgICAgIC0+IGNvbXBsZXRlX3RsYl9pbnZhbCAoZGVmZXJyZWQgVExCKQog IHBhc3MxIChmaW5pc2ggb2NjdXBpZWQpIC0+IGRvX2ludmFsIChzeW5jIFRMQiwgaW5saW5lKQoK SW4gbXVsdGktR1BVIHNjZW5hcmlvcyB0aGlzIGFsbG93cyBUTEIgZmx1c2hlcyB0byBiZSBzdWJt aXR0ZWQgb24gYWxsCkdQVXMgaW4gb25lIHBhc3MgYmVmb3JlIGFueSBvZiB0aGVtIGFyZSB3YWl0 ZWQgb24uCgpBbHNvIGFkZHMgeGVfdm1faW52YWxpZGF0ZV92bWFfc3VibWl0KCkgd2hpY2ggc3Vi bWl0cyB0aGUgVExCIHJhbmdlCmludmFsaWRhdGlvbiB3aXRob3V0IGJsb2NraW5nLCBwb3B1bGF0 aW5nIGEgeGVfdGxiX2ludmFsX2JhdGNoIHRoYXQKdGhlIGNhbGxlciB3YWl0cyBvbiBzZXBhcmF0 ZWx5LgoKdjM6Ci0gQWRkIGxvY2tpbmcgYXNzZXJ0cyBhbmQgbm90aWZpZXIgc3RhdGUgYXNzZXJ0 cyAoTWF0dCBCcm9zdCkKLSBVcGRhdGUgdGhlIGxvY2tpbmcgZG9jdW1lbnRhdGlvbiBvZiB0aGUg bm90aWZpZXIKICBzdGF0ZSBtZW1iZXJzIChNYXR0IEJyb3N0KQotIFJlbW92ZSB1bnJlbGF0ZWQg Y29kZSBmb3JtYXR0aW5nIGNoYW5nZXMgKE1hdHQgQnJvc3QpCgpBc3Npc3RlZC1ieTogR2l0SHVi IENvcGlsb3Q6Y2xhdWRlLXNvbm5ldC00LjYKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHLD tm0gPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS94ZS94ZV91c2VycHRyLmMgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS94ZS94ZV91c2VycHRyLmggfCAxNyArKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS94ZS94ZV92bS5jICAgICAgfCAzOCArKysrKysrKysrKysrKystLS0tLQogZHJpdmVy cy9ncHUvZHJtL3hlL3hlX3ZtLmggICAgICB8ICAyICsrCiA0IGZpbGVzIGNoYW5nZWQsIDEwNCBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0veGUveGVfdXNlcnB0ci5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuYwppbmRl eCAzNzAzMmI4MTI1YTYuLjY3NjEwMDVjMGI5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3hlL3hlX3VzZXJwdHIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5jCkBA IC04LDYgKzgsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvbW0uaD4KIAorI2luY2x1ZGUgInhlX3Rs Yl9pbnZhbC5oIgogI2luY2x1ZGUgInhlX3RyYWNlX2JvLmgiCiAKIHN0YXRpYyB2b2lkIHhlX3Vz ZXJwdHJfYXNzZXJ0X2luX25vdGlmaWVyKHN0cnVjdCB4ZV92bSAqdm0pCkBAIC04MSw4ICs4Miw4 IEBAIGludCB4ZV92bWFfdXNlcnB0cl9waW5fcGFnZXMoc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1 dm1hKQogCQkJCSAgICAmY3R4KTsKIH0KIAotc3RhdGljIHZvaWQgeGVfdm1hX3VzZXJwdHJfZG9f aW52YWwoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm1hLAotCQkJ CSAgICBib29sIGlzX2RlZmVycmVkKQorc3RhdGljIHN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZp ZXJfZmluaXNoICoKK3hlX3ZtYV91c2VycHRyX2RvX2ludmFsKHN0cnVjdCB4ZV92bSAqdm0sIHN0 cnVjdCB4ZV91c2VycHRyX3ZtYSAqdXZtYSwgYm9vbCBpc19kZWZlcnJlZCkKIHsKIAlzdHJ1Y3Qg eGVfdXNlcnB0ciAqdXNlcnB0ciA9ICZ1dm1hLT51c2VycHRyOwogCXN0cnVjdCB4ZV92bWEgKnZt YSA9ICZ1dm1hLT52bWE7CkBAIC05Myw2ICs5NCw4IEBAIHN0YXRpYyB2b2lkIHhlX3ZtYV91c2Vy cHRyX2RvX2ludmFsKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV91c2VycHRyX3ZtYSAqdXZt CiAJbG9uZyBlcnI7CiAKIAl4ZV91c2VycHRyX2Fzc2VydF9pbl9ub3RpZmllcih2bSk7CisJaWYg KGlzX2RlZmVycmVkKQorCQl4ZV9hc3NlcnQodm0tPnhlLCB1c2VycHRyLT5maW5pc2hfaW51c2Ug JiYgIXVzZXJwdHItPnRsYl9pbnZhbF9zdWJtaXR0ZWQpOwogCiAJZXJyID0gZG1hX3Jlc3Zfd2Fp dF90aW1lb3V0KHhlX3ZtX3Jlc3Yodm0pLAogCQkJCSAgICBETUFfUkVTVl9VU0FHRV9CT09LS0VF UCwKQEAgLTEwMCw2ICsxMDMsMTkgQEAgc3RhdGljIHZvaWQgeGVfdm1hX3VzZXJwdHJfZG9faW52 YWwoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm0KIAlYRV9XQVJO X09OKGVyciA8PSAwKTsKIAogCWlmICh4ZV92bV9pbl9mYXVsdF9tb2RlKHZtKSAmJiB1c2VycHRy LT5pbml0aWFsX2JpbmQpIHsKKwkJaWYgKCF1c2VycHRyLT5maW5pc2hfaW51c2UpIHsKKwkJCS8q CisJCQkgKiBEZWZlciB0aGUgVExCIHdhaXQgdG8gYW4gZXh0cmEgcGFzcyBzbyB0aGUgY2FsbGVy CisJCQkgKiBjYW4gcGlwZWxpbmUgVExCIGZsdXNoZXMgYWNyb3NzIEdQVXMgYmVmb3JlIHdhaXRp bmcKKwkJCSAqIG9uIGFueSBvZiB0aGVtLgorCQkJICovCisJCQl4ZV9hc3NlcnQodm0tPnhlLCAh dXNlcnB0ci0+dGxiX2ludmFsX3N1Ym1pdHRlZCk7CisJCQl1c2VycHRyLT5maW5pc2hfaW51c2Ug PSB0cnVlOworCQkJdXNlcnB0ci0+dGxiX2ludmFsX3N1Ym1pdHRlZCA9IHRydWU7CisJCQllcnIg PSB4ZV92bV9pbnZhbGlkYXRlX3ZtYV9zdWJtaXQodm1hLCAmdXNlcnB0ci0+aW52YWxfYmF0Y2gp OworCQkJWEVfV0FSTl9PTihlcnIpOworCQkJcmV0dXJuICZ1c2VycHRyLT5maW5pc2g7CisJCX0K IAkJZXJyID0geGVfdm1faW52YWxpZGF0ZV92bWEodm1hKTsKIAkJWEVfV0FSTl9PTihlcnIpOwog CX0KQEAgLTEwOCw2ICsxMjQsMjggQEAgc3RhdGljIHZvaWQgeGVfdm1hX3VzZXJwdHJfZG9faW52 YWwoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm0KIAkJdXNlcnB0 ci0+ZmluaXNoX2ludXNlID0gZmFsc2U7CiAJZHJtX2dwdXN2bV91bm1hcF9wYWdlcygmdm0tPnN2 bS5ncHVzdm0sICZ1dm1hLT51c2VycHRyLnBhZ2VzLAogCQkJICAgICAgIHhlX3ZtYV9zaXplKHZt YSkgPj4gUEFHRV9TSElGVCwgJmN0eCk7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lk Cit4ZV92bWFfdXNlcnB0cl9jb21wbGV0ZV90bGJfaW52YWwoc3RydWN0IHhlX3ZtICp2bSwgc3Ry dWN0IHhlX3VzZXJwdHJfdm1hICp1dm1hKQoreworCXN0cnVjdCB4ZV91c2VycHRyICp1c2VycHRy ID0gJnV2bWEtPnVzZXJwdHI7CisJc3RydWN0IHhlX3ZtYSAqdm1hID0gJnV2bWEtPnZtYTsKKwlz dHJ1Y3QgZHJtX2dwdXN2bV9jdHggY3R4ID0geworCQkuaW5fbm90aWZpZXIgPSB0cnVlLAorCQku cmVhZF9vbmx5ID0geGVfdm1hX3JlYWRfb25seSh2bWEpLAorCX07CisKKwl4ZV91c2VycHRyX2Fz c2VydF9pbl9ub3RpZmllcih2bSk7CisJeGVfYXNzZXJ0KHZtLT54ZSwgdXNlcnB0ci0+ZmluaXNo X2ludXNlKTsKKwl4ZV9hc3NlcnQodm0tPnhlLCB1c2VycHRyLT50bGJfaW52YWxfc3VibWl0dGVk KTsKKworCXhlX3RsYl9pbnZhbF9iYXRjaF93YWl0KCZ1c2VycHRyLT5pbnZhbF9iYXRjaCk7CisJ dXNlcnB0ci0+dGxiX2ludmFsX3N1Ym1pdHRlZCA9IGZhbHNlOworCXVzZXJwdHItPmZpbmlzaF9p bnVzZSA9IGZhbHNlOworCWRybV9ncHVzdm1fdW5tYXBfcGFnZXMoJnZtLT5zdm0uZ3B1c3ZtLCAm dXZtYS0+dXNlcnB0ci5wYWdlcywKKwkJCSAgICAgICB4ZV92bWFfc2l6ZSh2bWEpID4+IFBBR0Vf U0hJRlQsICZjdHgpOwogfQogCiBzdGF0aWMgc3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllcl9m aW5pc2ggKgpAQCAtMTUzLDExICsxOTEsMTAgQEAgeGVfdm1hX3VzZXJwdHJfaW52YWxpZGF0ZV9w YXNzMShzdHJ1Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgeGVfdXNlcnB0cl92bWEgKnV2bWEpCiAJICog SWYgaXQncyBhbHJlYWR5IGluIHVzZSwgb3IgYWxsIGZlbmNlcyBhcmUgYWxyZWFkeSBzaWduYWxl ZCwKIAkgKiBwcm9jZWVkIGRpcmVjdGx5IHRvIGludmFsaWRhdGlvbiB3aXRob3V0IGRlZmVycmlu Zy4KIAkgKi8KLQlpZiAoc2lnbmFsZWQgfHwgdXNlcnB0ci0+ZmluaXNoX2ludXNlKSB7Ci0JCXhl X3ZtYV91c2VycHRyX2RvX2ludmFsKHZtLCB1dm1hLCBmYWxzZSk7Ci0JCXJldHVybiBOVUxMOwot CX0KKwlpZiAoc2lnbmFsZWQgfHwgdXNlcnB0ci0+ZmluaXNoX2ludXNlKQorCQlyZXR1cm4geGVf dm1hX3VzZXJwdHJfZG9faW52YWwodm0sIHV2bWEsIGZhbHNlKTsKIAorCS8qIERlZmVyOiB0aGUg bm90aWZpZXIgY29yZSB3aWxsIGNhbGwgaW52YWxpZGF0ZV9maW5pc2ggb25jZSBkb25lLiAqLwog CXVzZXJwdHItPmZpbmlzaF9pbnVzZSA9IHRydWU7CiAKIAlyZXR1cm4gJnVzZXJwdHItPmZpbmlz aDsKQEAgLTIwNSw3ICsyNDIsMTUgQEAgc3RhdGljIHZvaWQgeGVfdm1hX3VzZXJwdHJfaW52YWxp ZGF0ZV9maW5pc2goc3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllcl9maW5pc2gKIAkJeGVfdm1h X3N0YXJ0KHZtYSksIHhlX3ZtYV9zaXplKHZtYSkpOwogCiAJZG93bl93cml0ZSgmdm0tPnN2bS5n cHVzdm0ubm90aWZpZXJfbG9jayk7Ci0JeGVfdm1hX3VzZXJwdHJfZG9faW52YWwodm0sIHV2bWEs IHRydWUpOworCS8qCisJICogSWYgYSBUTEIgaW52YWxpZGF0aW9uIHdhcyBwcmV2aW91c2x5IHN1 Ym1pdHRlZCAoZGVmZXJyZWQgZnJvbSB0aGUKKwkgKiBzeW5jaHJvbm91cyBwYXNzMSBmYWxsYmFj ayksIHdhaXQgZm9yIGl0IGFuZCB1bm1hcCBwYWdlcy4KKwkgKiBPdGhlcndpc2UsIGZlbmNlcyBo YXZlIG5vdyBjb21wbGV0ZWQ6IGludmFsaWRhdGUgdGhlIFRMQiBhbmQgdW5tYXAuCisJICovCisJ aWYgKHV2bWEtPnVzZXJwdHIudGxiX2ludmFsX3N1Ym1pdHRlZCkKKwkJeGVfdm1hX3VzZXJwdHJf Y29tcGxldGVfdGxiX2ludmFsKHZtLCB1dm1hKTsKKwllbHNlCisJCXhlX3ZtYV91c2VycHRyX2Rv X2ludmFsKHZtLCB1dm1hLCB0cnVlKTsKIAl1cF93cml0ZSgmdm0tPnN2bS5ncHVzdm0ubm90aWZp ZXJfbG9jayk7CiAJdHJhY2VfeGVfdm1hX3VzZXJwdHJfaW52YWxpZGF0ZV9jb21wbGV0ZSh2bWEp OwogfQpAQCAtMjQzLDcgKzI4OCw5IEBAIHZvaWQgeGVfdm1hX3VzZXJwdHJfZm9yY2VfaW52YWxp ZGF0ZShzdHJ1Y3QgeGVfdXNlcnB0cl92bWEgKnV2bWEpCiAKIAlmaW5pc2ggPSB4ZV92bWFfdXNl cnB0cl9pbnZhbGlkYXRlX3Bhc3MxKHZtLCB1dm1hKTsKIAlpZiAoZmluaXNoKQotCQl4ZV92bWFf dXNlcnB0cl9kb19pbnZhbCh2bSwgdXZtYSwgdHJ1ZSk7CisJCWZpbmlzaCA9IHhlX3ZtYV91c2Vy cHRyX2RvX2ludmFsKHZtLCB1dm1hLCB0cnVlKTsKKwlpZiAoZmluaXNoKQorCQl4ZV92bWFfdXNl cnB0cl9jb21wbGV0ZV90bGJfaW52YWwodm0sIHV2bWEpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV91c2VycHRyLmggYi9kcml2ZXJzL2dwdS9kcm0veGUv eGVfdXNlcnB0ci5oCmluZGV4IGUxODMwYzJmNWZkMi4uMmEzY2QxYjVlZmJiIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94 ZS94ZV91c2VycHRyLmgKQEAgLTE0LDYgKzE0LDggQEAKIAogI2luY2x1ZGUgPGRybS9kcm1fZ3B1 c3ZtLmg+CiAKKyNpbmNsdWRlICJ4ZV90bGJfaW52YWxfdHlwZXMuaCIKKwogc3RydWN0IHhlX3Zt Owogc3RydWN0IHhlX3ZtYTsKIHN0cnVjdCB4ZV91c2VycHRyX3ZtYTsKQEAgLTYzLDEyICs2NSwy NyBAQCBzdHJ1Y3QgeGVfdXNlcnB0ciB7CiAJICogYWx0ZXJuYXRpdmVseSBieSB0aGUgc2FtZSBs b2NrIGluIHJlYWQgbW9kZSAqYW5kKiB0aGUgdm0gcmVzdiBoZWxkLgogCSAqLwogCXN0cnVjdCBt bXVfaW50ZXJ2YWxfbm90aWZpZXJfZmluaXNoIGZpbmlzaDsKKwkvKioKKwkgKiBAaW52YWxfYmF0 Y2g6IFRMQiBpbnZhbGlkYXRpb24gYmF0Y2ggZm9yIGRlZmVycmVkIGNvbXBsZXRpb24uCisJICog U3RvcmVzIGFuIGluLWZsaWdodCBUTEIgaW52YWxpZGF0aW9uIHN1Ym1pdHRlZCBkdXJpbmcgYSB0 d28tcGFzcworCSAqIG5vdGlmaWVyIHNvIHRoZSB3YWl0IGNhbiBiZSBkZWZlcnJlZCB0byBhIHN1 YnNlcXVlbnQgcGFzcywgYWxsb3dpbmcKKwkgKiBtdWx0aXBsZSBHUFVzIHRvIGJlIHNpZ25hbGxl ZCBiZWZvcmUgYW55IG9mIHRoZW0gYXJlIHdhaXRlZCBvbi4KKwkgKiBQcm90ZWN0ZWQgdXNpbmcg dGhlIHNhbWUgbG9ja2luZyBhcyBAZmluaXNoLgorCSAqLworCXN0cnVjdCB4ZV90bGJfaW52YWxf YmF0Y2ggaW52YWxfYmF0Y2g7CiAJLyoqCiAJICogQGZpbmlzaF9pbnVzZTogV2hldGhlciBAZmlu aXNoIGlzIGN1cnJlbnRseSBpbiB1c2UgYnkgYW4gaW4tcHJvZ3Jlc3MKIAkgKiB0d28tcGFzcyBp bnZhbGlkYXRpb24uCiAJICogUHJvdGVjdGVkIHVzaW5nIHRoZSBzYW1lIGxvY2tpbmcgYXMgQGZp bmlzaC4KIAkgKi8KIAlib29sIGZpbmlzaF9pbnVzZTsKKwkvKioKKwkgKiBAdGxiX2ludmFsX3N1 Ym1pdHRlZDogV2hldGhlciBhIFRMQiBpbnZhbGlkYXRpb24gaGFzIGJlZW4gc3VibWl0dGVkCisJ ICogdmlhIEBpbnZhbF9iYXRjaCBhbmQgaXMgcGVuZGluZyBjb21wbGV0aW9uLiAgV2hlbiBzZXQs IHRoZSBuZXh0IHBhc3MKKwkgKiBtdXN0IGNhbGwgeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQoKSBi ZWZvcmUgcmV1c2luZyBAaW52YWxfYmF0Y2guCisJICogUHJvdGVjdGVkIHVzaW5nIHRoZSBzYW1l IGxvY2tpbmcgYXMgQGZpbmlzaC4KKwkgKi8KKwlib29sIHRsYl9pbnZhbF9zdWJtaXR0ZWQ7CiAJ LyoqCiAJICogQGluaXRpYWxfYmluZDogdXNlciBwb2ludGVyIGhhcyBiZWVuIGJvdW5kIGF0IGxl YXN0IG9uY2UuCiAJICogd3JpdGU6IHZtLT5zdm0uZ3B1c3ZtLm5vdGlmaWVyX2xvY2sgaW4gcmVh ZCBtb2RlIGFuZCB2bS0+cmVzdiBoZWxkLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hl L3hlX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYwppbmRleCBhM2MyZThjZWZlYzcu LmZkYWQ5MzI5ZGZiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMKQEAgLTM5NjcsMjAgKzM5NjcsMjMgQEAgdm9p ZCB4ZV92bV91bmxvY2soc3RydWN0IHhlX3ZtICp2bSkKIH0KIAogLyoqCi0gKiB4ZV92bV9pbnZh bGlkYXRlX3ZtYSAtIGludmFsaWRhdGUgR1BVIG1hcHBpbmdzIGZvciBWTUEgd2l0aG91dCBhIGxv Y2sKKyAqIHhlX3ZtX2ludmFsaWRhdGVfdm1hX3N1Ym1pdCAtIFN1Ym1pdCBhIGpvYiB0byBpbnZh bGlkYXRlIEdQVSBtYXBwaW5ncyBmb3IKKyAqIFZNQS4KICAqIEB2bWE6IFZNQSB0byBpbnZhbGlk YXRlCisgKiBAYmF0Y2g6IFRMQiBpbnZhbGlkYXRpb24gYmF0Y2ggdG8gcG9wdWxhdGU7IGNhbGxl ciBtdXN0IGxhdGVyIGNhbGwKKyAqICAgICAgICAgeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQoKSBv biBpdCB0byB3YWl0IGZvciBjb21wbGV0aW9uCiAgKgogICogV2Fsa3MgYSBsaXN0IG9mIHBhZ2Ug dGFibGVzIGxlYXZlcyB3aGljaCBpdCBtZW1zZXQgdGhlIGVudHJpZXMgb3duZWQgYnkgdGhpcwot ICogVk1BIHRvIHplcm8sIGludmFsaWRhdGVzIHRoZSBUTEJzLCBhbmQgYmxvY2sgdW50aWwgVExC cyBpbnZhbGlkYXRpb24gaXMKLSAqIGNvbXBsZXRlLgorICogVk1BIHRvIHplcm8sIGludmFsaWRh dGVzIHRoZSBUTEJzLCBidXQgZG9lc24ndCBibG9jayB3YWl0aW5nIGZvciBUTEIgZmx1c2gKKyAq IHRvIGNvbXBsZXRlLCBidXQgaW5zdGVhZCBwb3B1bGF0ZXMgQGJhdGNoIHdoaWNoIGNhbiBiZSB3 YWl0ZWQgb24gdXNpbmcKKyAqIHhlX3RsYl9pbnZhbF9iYXRjaF93YWl0KCkuCiAgKgogICogUmV0 dXJucyAwIGZvciBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4KICAqLwot aW50IHhlX3ZtX2ludmFsaWRhdGVfdm1hKHN0cnVjdCB4ZV92bWEgKnZtYSkKK2ludCB4ZV92bV9p bnZhbGlkYXRlX3ZtYV9zdWJtaXQoc3RydWN0IHhlX3ZtYSAqdm1hLCBzdHJ1Y3QgeGVfdGxiX2lu dmFsX2JhdGNoICpiYXRjaCkKIHsKIAlzdHJ1Y3QgeGVfZGV2aWNlICp4ZSA9IHhlX3ZtYV92bSh2 bWEpLT54ZTsKIAlzdHJ1Y3QgeGVfdm0gKnZtID0geGVfdm1hX3ZtKHZtYSk7Ci0Jc3RydWN0IHhl X3RsYl9pbnZhbF9iYXRjaCBiYXRjaDsKIAlzdHJ1Y3QgeGVfdGlsZSAqdGlsZTsKIAl1OCB0aWxl X21hc2sgPSAwOwogCWludCByZXQgPSAwOwpAQCAtNDAyMywxNCArNDAyNiwzMyBAQCBpbnQgeGVf dm1faW52YWxpZGF0ZV92bWEoc3RydWN0IHhlX3ZtYSAqdm1hKQogCiAJcmV0ID0geGVfdGxiX2lu dmFsX3JhbmdlX3RpbGVtYXNrX3N1Ym1pdCh4ZSwgeGVfdm1hX3ZtKHZtYSktPnVzbS5hc2lkLAog CQkJCQkJIHhlX3ZtYV9zdGFydCh2bWEpLCB4ZV92bWFfZW5kKHZtYSksCi0JCQkJCQkgdGlsZV9t YXNrLCAmYmF0Y2gpOworCQkJCQkJIHRpbGVfbWFzaywgYmF0Y2gpOwogCiAJLyogV1JJVEVfT05D RSBwYWlycyB3aXRoIFJFQURfT05DRSBpbiB4ZV92bV9oYXNfdmFsaWRfZ3B1X21hcHBpbmcoKSAq LwogCVdSSVRFX09OQ0Uodm1hLT50aWxlX2ludmFsaWRhdGVkLCB2bWEtPnRpbGVfbWFzayk7CisJ cmV0dXJuIHJldDsKK30KKworLyoqCisgKiB4ZV92bV9pbnZhbGlkYXRlX3ZtYSAtIGludmFsaWRh dGUgR1BVIG1hcHBpbmdzIGZvciBWTUEgd2l0aG91dCBhIGxvY2sKKyAqIEB2bWE6IFZNQSB0byBp bnZhbGlkYXRlCisgKgorICogV2Fsa3MgYSBsaXN0IG9mIHBhZ2UgdGFibGVzIGxlYXZlcyB3aGlj aCBpdCBtZW1zZXQgdGhlIGVudHJpZXMgb3duZWQgYnkgdGhpcworICogVk1BIHRvIHplcm8sIGlu dmFsaWRhdGVzIHRoZSBUTEJzLCBhbmQgYmxvY2sgdW50aWwgVExCcyBpbnZhbGlkYXRpb24gaXMK KyAqIGNvbXBsZXRlLgorICoKKyAqIFJldHVybnMgMCBmb3Igc3VjY2VzcywgbmVnYXRpdmUgZXJy b3IgY29kZSBvdGhlcndpc2UuCisgKi8KK2ludCB4ZV92bV9pbnZhbGlkYXRlX3ZtYShzdHJ1Y3Qg eGVfdm1hICp2bWEpCit7CisJc3RydWN0IHhlX3RsYl9pbnZhbF9iYXRjaCBiYXRjaDsKKwlpbnQg cmV0OwogCi0JaWYgKCFyZXQpCi0JCXhlX3RsYl9pbnZhbF9iYXRjaF93YWl0KCZiYXRjaCk7CisJ cmV0ID0geGVfdm1faW52YWxpZGF0ZV92bWFfc3VibWl0KHZtYSwgJmJhdGNoKTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gcmV0OwogCisJeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQoJmJhdGNoKTsKIAly ZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaCBi L2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5oCmluZGV4IDYyZjRiNmZlYzBiYy4uMGJjN2VkMjNl ZWFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaAorKysgYi9kcml2ZXJz L2dwdS9kcm0veGUveGVfdm0uaApAQCAtMjQyLDYgKzI0Miw4IEBAIHN0cnVjdCBkbWFfZmVuY2Ug KnhlX3ZtX3JhbmdlX3VuYmluZChzdHJ1Y3QgeGVfdm0gKnZtLAogCiBpbnQgeGVfdm1faW52YWxp ZGF0ZV92bWEoc3RydWN0IHhlX3ZtYSAqdm1hKTsKIAoraW50IHhlX3ZtX2ludmFsaWRhdGVfdm1h X3N1Ym1pdChzdHJ1Y3QgeGVfdm1hICp2bWEsIHN0cnVjdCB4ZV90bGJfaW52YWxfYmF0Y2ggKmJh dGNoKTsKKwogaW50IHhlX3ZtX3ZhbGlkYXRlX3Byb3RlY3RlZChzdHJ1Y3QgeGVfdm0gKnZtKTsK IAogc3RhdGljIGlubGluZSB2b2lkIHhlX3ZtX3F1ZXVlX3JlYmluZF93b3JrZXIoc3RydWN0IHhl X3ZtICp2bSkKLS0gCjIuNTMuMAoK