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 DD7C3EA4E3E for ; Mon, 2 Mar 2026 16:33:22 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3933B10E55F; Mon, 2 Mar 2026 16:33:22 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="A1+2jv3f"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8BD7A10E559; Mon, 2 Mar 2026 16:33:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772469201; x=1804005201; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=gr/Rm/LmHwRqu0m9Cj42RM/GXccyftGf8yIDm0daZ4M=; b=A1+2jv3fSnffhpWDUFKsvxdtqL4aYo9WYNhfEPWuIZXWLIQNR5+Kh+Nq nvUyqZPUR7v/h+84KGPNEAgOXmYbi6BjWJ7Ov+PSPI0Si+PJh5BDjRkK4 6JQNV2iyZ+VTpIgUAXO1vDhDn47gA+ql5GIN5aZGRCS3GggWk1qiWKlUL HnVT+kvWA5LtdXAEukdLVqsSowRR8mF1LpH1XHnmtZmTuXwEes0lMNKwS zGKDwhl1ncxK84DSqZltZRbQXsVwecjNd3F0ooG12X5HRH5WA9tKwxQ8a Oj2sUD9+7EgyU1lMUHAktFZ04vqRfIZE/DEzvMh79IPbR25ZdVRdCKCu0 w==; X-CSE-ConnectionGUID: RX6A/iPSRLa1nThAGE3cnA== X-CSE-MsgGUID: SwnUn5lURZWBigguxp2faA== X-IronPort-AV: E=McAfee;i="6800,10657,11717"; a="73447875" X-IronPort-AV: E=Sophos;i="6.21,320,1763452800"; d="scan'208";a="73447875" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2026 08:33:21 -0800 X-CSE-ConnectionGUID: TpC3DWhCS0uNy94/GNPzYg== X-CSE-MsgGUID: vuRGhG7cSu+atzC1e2EzwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,320,1763452800"; d="scan'208";a="255564537" Received: from smoticic-mobl1.ger.corp.intel.com (HELO fedora) ([10.245.244.81]) by smtpauth.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2026 08:33:19 -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 v2 4/4] drm/xe/userptr: Defer Waiting for TLB invalidation to the second pass if possible Date: Mon, 2 Mar 2026 17:32:48 +0100 Message-ID: <20260302163248.105454-5-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260302163248.105454-1-thomas.hellstrom@linux.intel.com> References: <20260302163248.105454-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 ZWx5LgoKQXNzaXN0ZWQtYnk6IEdpdEh1YiBDb3BpbG90OmNsYXVkZS1zb25uZXQtNC42ClNpZ25l ZC1vZmYtYnk6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5jIHwgNjAgKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5o IHwgMTggKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMgICAgICB8IDM4ICsr KysrKysrKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmggICAgICB8ICAy ICsrCiA0IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV91c2VycHRyLmMgYi9kcml2ZXJzL2dw dS9kcm0veGUveGVfdXNlcnB0ci5jCmluZGV4IDQ0MGIwYTc5ZDE2Zi4uYTYyYjc5NmFmYjkzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS94ZS94ZV91c2VycHRyLmMKQEAgLTgsNiArOCw3IEBACiAKICNpbmNsdWRlIDxsaW51 eC9tbS5oPgogCisjaW5jbHVkZSAieGVfdGxiX2ludmFsLmgiCiAjaW5jbHVkZSAieGVfdHJhY2Vf Ym8uaCIKIAogLyoqCkBAIC03Myw4ICs3NCw4IEBAIGludCB4ZV92bWFfdXNlcnB0cl9waW5fcGFn ZXMoc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm1hKQogCQkJCSAgICAmY3R4KTsKIH0KIAotc3Rh dGljIHZvaWQgeGVfdm1hX3VzZXJwdHJfZG9faW52YWwoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0 IHhlX3VzZXJwdHJfdm1hICp1dm1hLAotCQkJCSAgICBib29sIGlzX2RlZmVycmVkKQorc3RhdGlj IHN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXJfZmluaXNoICoKK3hlX3ZtYV91c2VycHRyX2Rv X2ludmFsKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV91c2VycHRyX3ZtYSAqdXZtYSwgYm9v bCBpc19kZWZlcnJlZCkKIHsKIAlzdHJ1Y3QgeGVfdXNlcnB0ciAqdXNlcnB0ciA9ICZ1dm1hLT51 c2VycHRyOwogCXN0cnVjdCB4ZV92bWEgKnZtYSA9ICZ1dm1hLT52bWE7CkBAIC04NCwxMiArODUs MjMgQEAgc3RhdGljIHZvaWQgeGVfdm1hX3VzZXJwdHJfZG9faW52YWwoc3RydWN0IHhlX3ZtICp2 bSwgc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm0KIAl9OwogCWxvbmcgZXJyOwogCi0JZXJyID0g ZG1hX3Jlc3Zfd2FpdF90aW1lb3V0KHhlX3ZtX3Jlc3Yodm0pLAotCQkJCSAgICBETUFfUkVTVl9V U0FHRV9CT09LS0VFUCwKKwllcnIgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXQoeGVfdm1fcmVzdih2 bSksIERNQV9SRVNWX1VTQUdFX0JPT0tLRUVQLAogCQkJCSAgICBmYWxzZSwgTUFYX1NDSEVEVUxF X1RJTUVPVVQpOwogCVhFX1dBUk5fT04oZXJyIDw9IDApOwogCiAJaWYgKHhlX3ZtX2luX2ZhdWx0 X21vZGUodm0pICYmIHVzZXJwdHItPmluaXRpYWxfYmluZCkgeworCQlpZiAoIXVzZXJwdHItPmZp bmlzaF9pbnVzZSkgeworCQkJLyoKKwkJCSAqIERlZmVyIHRoZSBUTEIgd2FpdCB0byBhbiBleHRy YSBwYXNzIHNvIHRoZSBjYWxsZXIKKwkJCSAqIGNhbiBwaXBlbGluZSBUTEIgZmx1c2hlcyBhY3Jv c3MgR1BVcyBiZWZvcmUgd2FpdGluZworCQkJICogb24gYW55IG9mIHRoZW0uCisJCQkgKi8KKwkJ CXVzZXJwdHItPmZpbmlzaF9pbnVzZSA9IHRydWU7CisJCQl1c2VycHRyLT50bGJfaW52YWxfc3Vi bWl0dGVkID0gdHJ1ZTsKKwkJCWVyciA9IHhlX3ZtX2ludmFsaWRhdGVfdm1hX3N1Ym1pdCh2bWEs ICZ1c2VycHRyLT5pbnZhbF9iYXRjaCk7CisJCQlYRV9XQVJOX09OKGVycik7CisJCQlyZXR1cm4g JnVzZXJwdHItPmZpbmlzaDsKKwkJfQogCQllcnIgPSB4ZV92bV9pbnZhbGlkYXRlX3ZtYSh2bWEp OwogCQlYRV9XQVJOX09OKGVycik7CiAJfQpAQCAtOTgsNiArMTEwLDI0IEBAIHN0YXRpYyB2b2lk IHhlX3ZtYV91c2VycHRyX2RvX2ludmFsKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV91c2Vy cHRyX3ZtYSAqdXZtCiAJCXVzZXJwdHItPmZpbmlzaF9pbnVzZSA9IGZhbHNlOwogCWRybV9ncHVz dm1fdW5tYXBfcGFnZXMoJnZtLT5zdm0uZ3B1c3ZtLCAmdXZtYS0+dXNlcnB0ci5wYWdlcywKIAkJ CSAgICAgICB4ZV92bWFfc2l6ZSh2bWEpID4+IFBBR0VfU0hJRlQsICZjdHgpOworCXJldHVybiBO VUxMOworfQorCitzdGF0aWMgdm9pZAoreGVfdm1hX3VzZXJwdHJfY29tcGxldGVfdGxiX2ludmFs KHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV91c2VycHRyX3ZtYSAqdXZtYSkKK3sKKwlzdHJ1 Y3QgeGVfdXNlcnB0ciAqdXNlcnB0ciA9ICZ1dm1hLT51c2VycHRyOworCXN0cnVjdCB4ZV92bWEg KnZtYSA9ICZ1dm1hLT52bWE7CisJc3RydWN0IGRybV9ncHVzdm1fY3R4IGN0eCA9IHsKKwkJLmlu X25vdGlmaWVyID0gdHJ1ZSwKKwkJLnJlYWRfb25seSA9IHhlX3ZtYV9yZWFkX29ubHkodm1hKSwK Kwl9OworCisJeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQoJnVzZXJwdHItPmludmFsX2JhdGNoKTsK Kwl1c2VycHRyLT50bGJfaW52YWxfc3VibWl0dGVkID0gZmFsc2U7CisJdXNlcnB0ci0+ZmluaXNo X2ludXNlID0gZmFsc2U7CisJZHJtX2dwdXN2bV91bm1hcF9wYWdlcygmdm0tPnN2bS5ncHVzdm0s ICZ1dm1hLT51c2VycHRyLnBhZ2VzLAorCQkJICAgICAgIHhlX3ZtYV9zaXplKHZtYSkgPj4gUEFH RV9TSElGVCwgJmN0eCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVy X2ZpbmlzaCAqCkBAIC0xNDEsMTMgKzE3MSwxMSBAQCB4ZV92bWFfdXNlcnB0cl9pbnZhbGlkYXRl X3Bhc3MxKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV91c2VycHRyX3ZtYSAqdXZtYSkKIAkg KiBJZiBpdCdzIGFscmVhZHkgaW4gdXNlLCBvciBhbGwgZmVuY2VzIGFyZSBhbHJlYWR5IHNpZ25h bGVkLAogCSAqIHByb2NlZWQgZGlyZWN0bHkgdG8gaW52YWxpZGF0aW9uIHdpdGhvdXQgZGVmZXJy aW5nLgogCSAqLwotCWlmIChzaWduYWxlZCB8fCB1c2VycHRyLT5maW5pc2hfaW51c2UpIHsKLQkJ eGVfdm1hX3VzZXJwdHJfZG9faW52YWwodm0sIHV2bWEsIGZhbHNlKTsKLQkJcmV0dXJuIE5VTEw7 Ci0JfQorCWlmIChzaWduYWxlZCB8fCB1c2VycHRyLT5maW5pc2hfaW51c2UpCisJCXJldHVybiB4 ZV92bWFfdXNlcnB0cl9kb19pbnZhbCh2bSwgdXZtYSwgZmFsc2UpOwogCisJLyogRGVmZXI6IHRo ZSBub3RpZmllciBjb3JlIHdpbGwgY2FsbCBpbnZhbGlkYXRlX2ZpbmlzaCBvbmNlIGRvbmUuICov CiAJdXNlcnB0ci0+ZmluaXNoX2ludXNlID0gdHJ1ZTsKLQogCXJldHVybiAmdXNlcnB0ci0+Zmlu aXNoOwogfQogCkBAIC0xOTMsNyArMjIxLDE1IEBAIHN0YXRpYyB2b2lkIHhlX3ZtYV91c2VycHRy X2ludmFsaWRhdGVfZmluaXNoKHN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXJfZmluaXNoCiAJ CXhlX3ZtYV9zdGFydCh2bWEpLCB4ZV92bWFfc2l6ZSh2bWEpKTsKIAogCWRvd25fd3JpdGUoJnZt LT5zdm0uZ3B1c3ZtLm5vdGlmaWVyX2xvY2spOwotCXhlX3ZtYV91c2VycHRyX2RvX2ludmFsKHZt LCB1dm1hLCB0cnVlKTsKKwkvKgorCSAqIElmIGEgVExCIGludmFsaWRhdGlvbiB3YXMgcHJldmlv dXNseSBzdWJtaXR0ZWQgKGRlZmVycmVkIGZyb20gdGhlCisJICogc3luY2hyb25vdXMgcGFzczEg ZmFsbGJhY2spLCB3YWl0IGZvciBpdCBhbmQgdW5tYXAgcGFnZXMuCisJICogT3RoZXJ3aXNlLCBm ZW5jZXMgaGF2ZSBub3cgY29tcGxldGVkOiBpbnZhbGlkYXRlIHRoZSBUTEIgYW5kIHVubWFwLgor CSAqLworCWlmICh1dm1hLT51c2VycHRyLnRsYl9pbnZhbF9zdWJtaXR0ZWQpCisJCXhlX3ZtYV91 c2VycHRyX2NvbXBsZXRlX3RsYl9pbnZhbCh2bSwgdXZtYSk7CisJZWxzZQorCQl4ZV92bWFfdXNl cnB0cl9kb19pbnZhbCh2bSwgdXZtYSwgdHJ1ZSk7CiAJdXBfd3JpdGUoJnZtLT5zdm0uZ3B1c3Zt Lm5vdGlmaWVyX2xvY2spOwogCXRyYWNlX3hlX3ZtYV91c2VycHRyX2ludmFsaWRhdGVfY29tcGxl dGUodm1hKTsKIH0KQEAgLTIzMSw3ICsyNjcsOSBAQCB2b2lkIHhlX3ZtYV91c2VycHRyX2ZvcmNl X2ludmFsaWRhdGUoc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm1hKQogCiAJZmluaXNoID0geGVf dm1hX3VzZXJwdHJfaW52YWxpZGF0ZV9wYXNzMSh2bSwgdXZtYSk7CiAJaWYgKGZpbmlzaCkKLQkJ eGVfdm1hX3VzZXJwdHJfZG9faW52YWwodm0sIHV2bWEsIHRydWUpOworCQlmaW5pc2ggPSB4ZV92 bWFfdXNlcnB0cl9kb19pbnZhbCh2bSwgdXZtYSwgdHJ1ZSk7CisJaWYgKGZpbmlzaCkKKwkJeGVf dm1hX3VzZXJwdHJfY29tcGxldGVfdGxiX2ludmFsKHZtLCB1dm1hKTsKIH0KICNlbmRpZgogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5oIGIvZHJpdmVycy9ncHUv ZHJtL3hlL3hlX3VzZXJwdHIuaAppbmRleCA0ZjQyZGI2MWZkNjIuLjc0NzcwMDk2NTFjMiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0veGUveGVfdXNlcnB0ci5oCkBAIC0xNCw2ICsxNCw4IEBACiAKICNpbmNsdWRlIDxkcm0v ZHJtX2dwdXN2bS5oPgogCisjaW5jbHVkZSAieGVfdGxiX2ludmFsX3R5cGVzLmgiCisKIHN0cnVj dCB4ZV92bTsKIHN0cnVjdCB4ZV92bWE7CiBzdHJ1Y3QgeGVfdXNlcnB0cl92bWE7CkBAIC02Myw2 ICs2NSwxNSBAQCBzdHJ1Y3QgeGVfdXNlcnB0ciB7CiAJICogUHJvdGVjdGVkIGJ5IEB2bTo6c3Zt LmdwdXN2bS5ub3RpZmllcl9sb2NrLgogCSAqLwogCXN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZp ZXJfZmluaXNoIGZpbmlzaDsKKworCS8qKgorCSAqIEBpbnZhbF9iYXRjaDogVExCIGludmFsaWRh dGlvbiBiYXRjaCBmb3IgZGVmZXJyZWQgY29tcGxldGlvbi4KKwkgKiBTdG9yZXMgYW4gaW4tZmxp Z2h0IFRMQiBpbnZhbGlkYXRpb24gc3VibWl0dGVkIGR1cmluZyBhIHR3by1wYXNzCisJICogbm90 aWZpZXIgc28gdGhlIHdhaXQgY2FuIGJlIGRlZmVycmVkIHRvIGEgc3Vic2VxdWVudCBwYXNzLCBh bGxvd2luZworCSAqIG11bHRpcGxlIEdQVXMgdG8gYmUgc2lnbmFsbGVkIGJlZm9yZSBhbnkgb2Yg dGhlbSBhcmUgd2FpdGVkIG9uLgorCSAqIFByb3RlY3RlZCBieSBAdm06OnN2bS5ncHVzdm0ubm90 aWZpZXJfbG9jay4KKwkgKi8KKwlzdHJ1Y3QgeGVfdGxiX2ludmFsX2JhdGNoIGludmFsX2JhdGNo OwogCS8qKgogCSAqIEBmaW5pc2hfaW51c2U6IFdoZXRoZXIgQGZpbmlzaCBpcyBjdXJyZW50bHkg aW4gdXNlIGJ5IGFuIGluLXByb2dyZXNzCiAJICogdHdvLXBhc3MgaW52YWxpZGF0aW9uLgpAQCAt NzAsNiArODEsMTMgQEAgc3RydWN0IHhlX3VzZXJwdHIgewogCSAqLwogCWJvb2wgZmluaXNoX2lu dXNlOwogCisJLyoqCisJICogQHRsYl9pbnZhbF9zdWJtaXR0ZWQ6IFdoZXRoZXIgYSBUTEIgaW52 YWxpZGF0aW9uIGhhcyBiZWVuIHN1Ym1pdHRlZAorCSAqIHZpYSBAaW52YWxfYmF0Y2ggYW5kIGlz IHBlbmRpbmcgY29tcGxldGlvbi4gIFdoZW4gc2V0LCB0aGUgbmV4dCBwYXNzCisJICogbXVzdCBj YWxsIHhlX3RsYl9pbnZhbF9iYXRjaF93YWl0KCkgYmVmb3JlIHJldXNpbmcgQGludmFsX2JhdGNo LgorCSAqIFByb3RlY3RlZCBieSBAdm06OnN2bS5ncHVzdm0ubm90aWZpZXJfbG9jay4KKwkgKi8K Kwlib29sIHRsYl9pbnZhbF9zdWJtaXR0ZWQ7CiAJLyoqCiAJICogQGluaXRpYWxfYmluZDogdXNl ciBwb2ludGVyIGhhcyBiZWVuIGJvdW5kIGF0IGxlYXN0IG9uY2UuCiAJICogd3JpdGU6IHZtLT5z dm0uZ3B1c3ZtLm5vdGlmaWVyX2xvY2sgaW4gcmVhZCBtb2RlIGFuZCB2bS0+cmVzdiBoZWxkLgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0v eGUveGVfdm0uYwppbmRleCA3ZjI5ZDJiMjk3MmQuLmZkYWQ5MzI5ZGZiNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3Zt LmMKQEAgLTM5NjcsMjAgKzM5NjcsMjMgQEAgdm9pZCB4ZV92bV91bmxvY2soc3RydWN0IHhlX3Zt ICp2bSkKIH0KIAogLyoqCi0gKiB4ZV92bV9pbnZhbGlkYXRlX3ZtYSAtIGludmFsaWRhdGUgR1BV IG1hcHBpbmdzIGZvciBWTUEgd2l0aG91dCBhIGxvY2sKKyAqIHhlX3ZtX2ludmFsaWRhdGVfdm1h X3N1Ym1pdCAtIFN1Ym1pdCBhIGpvYiB0byBpbnZhbGlkYXRlIEdQVSBtYXBwaW5ncyBmb3IKKyAq IFZNQS4KICAqIEB2bWE6IFZNQSB0byBpbnZhbGlkYXRlCisgKiBAYmF0Y2g6IFRMQiBpbnZhbGlk YXRpb24gYmF0Y2ggdG8gcG9wdWxhdGU7IGNhbGxlciBtdXN0IGxhdGVyIGNhbGwKKyAqICAgICAg ICAgeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQoKSBvbiBpdCB0byB3YWl0IGZvciBjb21wbGV0aW9u CiAgKgogICogV2Fsa3MgYSBsaXN0IG9mIHBhZ2UgdGFibGVzIGxlYXZlcyB3aGljaCBpdCBtZW1z ZXQgdGhlIGVudHJpZXMgb3duZWQgYnkgdGhpcwotICogVk1BIHRvIHplcm8sIGludmFsaWRhdGVz IHRoZSBUTEJzLCBhbmQgYmxvY2sgdW50aWwgVExCcyBpbnZhbGlkYXRpb24gaXMKLSAqIGNvbXBs ZXRlLgorICogVk1BIHRvIHplcm8sIGludmFsaWRhdGVzIHRoZSBUTEJzLCBidXQgZG9lc24ndCBi bG9jayB3YWl0aW5nIGZvciBUTEIgZmx1c2gKKyAqIHRvIGNvbXBsZXRlLCBidXQgaW5zdGVhZCBw b3B1bGF0ZXMgQGJhdGNoIHdoaWNoIGNhbiBiZSB3YWl0ZWQgb24gdXNpbmcKKyAqIHhlX3RsYl9p bnZhbF9iYXRjaF93YWl0KCkuCiAgKgogICogUmV0dXJucyAwIGZvciBzdWNjZXNzLCBuZWdhdGl2 ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4KICAqLwotaW50IHhlX3ZtX2ludmFsaWRhdGVfdm1hKHN0 cnVjdCB4ZV92bWEgKnZtYSkKK2ludCB4ZV92bV9pbnZhbGlkYXRlX3ZtYV9zdWJtaXQoc3RydWN0 IHhlX3ZtYSAqdm1hLCBzdHJ1Y3QgeGVfdGxiX2ludmFsX2JhdGNoICpiYXRjaCkKIHsKIAlzdHJ1 Y3QgeGVfZGV2aWNlICp4ZSA9IHhlX3ZtYV92bSh2bWEpLT54ZTsKIAlzdHJ1Y3QgeGVfdm0gKnZt ID0geGVfdm1hX3ZtKHZtYSk7Ci0Jc3RydWN0IHhlX3RsYl9pbnZhbF9iYXRjaCBfYmF0Y2g7CiAJ c3RydWN0IHhlX3RpbGUgKnRpbGU7CiAJdTggdGlsZV9tYXNrID0gMDsKIAlpbnQgcmV0ID0gMDsK QEAgLTQwMjMsMTQgKzQwMjYsMzMgQEAgaW50IHhlX3ZtX2ludmFsaWRhdGVfdm1hKHN0cnVjdCB4 ZV92bWEgKnZtYSkKIAogCXJldCA9IHhlX3RsYl9pbnZhbF9yYW5nZV90aWxlbWFza19zdWJtaXQo eGUsIHhlX3ZtYV92bSh2bWEpLT51c20uYXNpZCwKIAkJCQkJCSB4ZV92bWFfc3RhcnQodm1hKSwg eGVfdm1hX2VuZCh2bWEpLAotCQkJCQkJIHRpbGVfbWFzaywgJl9iYXRjaCk7CisJCQkJCQkgdGls ZV9tYXNrLCBiYXRjaCk7CiAKIAkvKiBXUklURV9PTkNFIHBhaXJzIHdpdGggUkVBRF9PTkNFIGlu IHhlX3ZtX2hhc192YWxpZF9ncHVfbWFwcGluZygpICovCiAJV1JJVEVfT05DRSh2bWEtPnRpbGVf aW52YWxpZGF0ZWQsIHZtYS0+dGlsZV9tYXNrKTsKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAq IHhlX3ZtX2ludmFsaWRhdGVfdm1hIC0gaW52YWxpZGF0ZSBHUFUgbWFwcGluZ3MgZm9yIFZNQSB3 aXRob3V0IGEgbG9jaworICogQHZtYTogVk1BIHRvIGludmFsaWRhdGUKKyAqCisgKiBXYWxrcyBh IGxpc3Qgb2YgcGFnZSB0YWJsZXMgbGVhdmVzIHdoaWNoIGl0IG1lbXNldCB0aGUgZW50cmllcyBv d25lZCBieSB0aGlzCisgKiBWTUEgdG8gemVybywgaW52YWxpZGF0ZXMgdGhlIFRMQnMsIGFuZCBi bG9jayB1bnRpbCBUTEJzIGludmFsaWRhdGlvbiBpcworICogY29tcGxldGUuCisgKgorICogUmV0 dXJucyAwIGZvciBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4KKyAqLwor aW50IHhlX3ZtX2ludmFsaWRhdGVfdm1hKHN0cnVjdCB4ZV92bWEgKnZtYSkKK3sKKwlzdHJ1Y3Qg eGVfdGxiX2ludmFsX2JhdGNoIGJhdGNoOworCWludCByZXQ7CiAKLQlpZiAoIXJldCkKLQkJeGVf dGxiX2ludmFsX2JhdGNoX3dhaXQoJl9iYXRjaCk7CisJcmV0ID0geGVfdm1faW52YWxpZGF0ZV92 bWFfc3VibWl0KHZtYSwgJmJhdGNoKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCisJeGVf dGxiX2ludmFsX2JhdGNoX3dhaXQoJmJhdGNoKTsKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaCBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92 bS5oCmluZGV4IDYyZjRiNmZlYzBiYy4uMGJjN2VkMjNlZWFlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0veGUveGVfdm0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaApAQCAt MjQyLDYgKzI0Miw4IEBAIHN0cnVjdCBkbWFfZmVuY2UgKnhlX3ZtX3JhbmdlX3VuYmluZChzdHJ1 Y3QgeGVfdm0gKnZtLAogCiBpbnQgeGVfdm1faW52YWxpZGF0ZV92bWEoc3RydWN0IHhlX3ZtYSAq dm1hKTsKIAoraW50IHhlX3ZtX2ludmFsaWRhdGVfdm1hX3N1Ym1pdChzdHJ1Y3QgeGVfdm1hICp2 bWEsIHN0cnVjdCB4ZV90bGJfaW52YWxfYmF0Y2ggKmJhdGNoKTsKKwogaW50IHhlX3ZtX3ZhbGlk YXRlX3Byb3RlY3RlZChzdHJ1Y3QgeGVfdm0gKnZtKTsKIAogc3RhdGljIGlubGluZSB2b2lkIHhl X3ZtX3F1ZXVlX3JlYmluZF93b3JrZXIoc3RydWN0IHhlX3ZtICp2bSkKLS0gCjIuNTMuMAoK