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 03E01C624C6 for ; Mon, 2 Mar 2026 16:33:21 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 397F410E56B; Mon, 2 Mar 2026 16:33:20 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="RNVMLb8X"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9599D10E57B; Mon, 2 Mar 2026 16:33:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772469198; x=1804005198; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=REVi10SRu9z3ZPsNcbifTyehMK0hQmtR42Guy7n5z44=; b=RNVMLb8X3kBYmmiA2WPHwYDpcQg400rnpf5K7eVwTeZH9ZKnsfIimY2n IV7tFjZWEPnCuS1Vk72JeO5IWxDsFZ5xaPOqne+y5ZOJ4c+uKPIuhKuqt utdC+5FRyQ7BkfRnJ3VlKOgJ4+4ySYqeu8QrRyCmKYjuZnbr0rgplbMS1 Pe0rsmq8HEnkGAa5e3P1LnyADXsjRhpVS9JzxR8qqJf1TpVy4kjvDEgPK J+wDRJpZBYAwgSZseOcQu11F6qxsuJyeyvzBhs8MPF7o47nUwHDz2xvt/ 8+PsdvRkXoWf3qEgkJLTrVM02qMPcco6NeI7QP6vc0dSGTynYX+OU30NG A==; X-CSE-ConnectionGUID: 25QQrNicSdic2Z27V9shRQ== X-CSE-MsgGUID: LWotnI8+TqmWD2JvR7ZTtA== X-IronPort-AV: E=McAfee;i="6800,10657,11717"; a="73447855" X-IronPort-AV: E=Sophos;i="6.21,320,1763452800"; d="scan'208";a="73447855" 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:18 -0800 X-CSE-ConnectionGUID: K+CRsj+RQZ6ru4vAsX+Wvw== X-CSE-MsgGUID: p97XZGPvQkm1YvytgY0cqQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,320,1763452800"; d="scan'208";a="255564533" 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:16 -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 3/4] drm/xe: Split TLB invalidation into submit and wait steps Date: Mon, 2 Mar 2026 17:32:47 +0100 Message-ID: <20260302163248.105454-4-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" eGVfdm1fcmFuZ2VfdGlsZW1hc2tfdGxiX2ludmFsKCkgc3VibWl0cyBUTEIgaW52YWxpZGF0aW9u IHJlcXVlc3RzIHRvCmFsbCBHVHMgaW4gYSB0aWxlIG1hc2sgYW5kIHRoZW4gaW1tZWRpYXRlbHkg d2FpdHMgZm9yIHRoZW0gdG8gY29tcGxldGUKYmVmb3JlIHJldHVybmluZy4gVGhpcyBpcyBmaW5l IGZvciB0aGUgZXhpc3RpbmcgY2FsbGVycywgYnV0IGEKc3Vic2VxdWVudCBwYXRjaCB3aWxsIG5l ZWQgdG8gZGVmZXIgdGhlIHdhaXQgaW4gb3JkZXIgdG8gb3ZlcmxhcCBUTEIKaW52YWxpZGF0aW9u cyBhY3Jvc3MgbXVsdGlwbGUgVk1Bcy4KCkludHJvZHVjZSB4ZV90bGJfaW52YWxfcmFuZ2VfdGls ZW1hc2tfc3VibWl0KCkgYW5kCnhlX3RsYl9pbnZhbF9iYXRjaF93YWl0KCkgaW4geGVfdGxiX2lu dmFsLmMgYXMgdGhlIHN1Ym1pdCBhbmQgd2FpdApoYWx2ZXMgcmVzcGVjdGl2ZWx5LiBUaGUgYmF0 Y2ggb2YgZmVuY2VzIGlzIGNhcnJpZWQgaW4gdGhlIG5ldwp4ZV90bGJfaW52YWxfYmF0Y2ggc3Ry dWN0dXJlLiBSZW1vdmUgeGVfdm1fcmFuZ2VfdGlsZW1hc2tfdGxiX2ludmFsKCkKYW5kIGNvbnZl cnQgYWxsIHRocmVlIGNhbGwgc2l0ZXMgdG8gdGhlIG5ldyBBUEkuCgpBc3Npc3RlZC1ieTogR2l0 SHViIENvcGlsb3Q6Y2xhdWRlLXNvbm5ldC00LjYKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxz dHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS94ZS94ZV9zdm0uYyAgICAgICAgICAgICB8ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0veGUv eGVfdGxiX2ludmFsLmMgICAgICAgfCA4MiArKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2 ZXJzL2dwdS9kcm0veGUveGVfdGxiX2ludmFsLmggICAgICAgfCAgNiArKwogZHJpdmVycy9ncHUv ZHJtL3hlL3hlX3RsYl9pbnZhbF90eXBlcy5oIHwgMTQgKysrKysKIGRyaXZlcnMvZ3B1L2RybS94 ZS94ZV92bS5jICAgICAgICAgICAgICB8IDY5ICsrKy0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL3hlL3hlX3ZtLmggICAgICAgICAgICAgIHwgIDMgLQogZHJpdmVycy9ncHUvZHJt L3hlL3hlX3ZtX21hZHZpc2UuYyAgICAgIHwgIDkgKystCiBkcml2ZXJzL2dwdS9kcm0veGUveGVf dm1fdHlwZXMuaCAgICAgICAgfCAgMSArCiA4IGZpbGVzIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25z KCspLCA2NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVf c3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfc3ZtLmMKaW5kZXggMDAyYjZjMjJhZDNmLi42 ZWE0OTcyYzI3OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9zdm0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0veGUveGVfc3ZtLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRl ICJ4ZV9wdC5oIgogI2luY2x1ZGUgInhlX3N2bS5oIgogI2luY2x1ZGUgInhlX3RpbGUuaCIKKyNp bmNsdWRlICJ4ZV90bGJfaW52YWwuaCIKICNpbmNsdWRlICJ4ZV90dG1fdnJhbV9tZ3IuaCIKICNp bmNsdWRlICJ4ZV92bS5oIgogI2luY2x1ZGUgInhlX3ZtX3R5cGVzLmgiCkBAIC0yMjUsNiArMjI2 LDcgQEAgc3RhdGljIHZvaWQgeGVfc3ZtX2ludmFsaWRhdGUoc3RydWN0IGRybV9ncHVzdm0gKmdw dXN2bSwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKm1tdV9yYW5n ZSkKIHsKIAlzdHJ1Y3QgeGVfdm0gKnZtID0gZ3B1c3ZtX3RvX3ZtKGdwdXN2bSk7CisJc3RydWN0 IHhlX3RsYl9pbnZhbF9iYXRjaCBfYmF0Y2g7CiAJc3RydWN0IHhlX2RldmljZSAqeGUgPSB2bS0+ eGU7CiAJc3RydWN0IGRybV9ncHVzdm1fcmFuZ2UgKnIsICpmaXJzdDsKIAlzdHJ1Y3QgeGVfdGls ZSAqdGlsZTsKQEAgLTI3Niw3ICsyNzgsOSBAQCBzdGF0aWMgdm9pZCB4ZV9zdm1faW52YWxpZGF0 ZShzdHJ1Y3QgZHJtX2dwdXN2bSAqZ3B1c3ZtLAogCiAJeGVfZGV2aWNlX3dtYih4ZSk7CiAKLQll cnIgPSB4ZV92bV9yYW5nZV90aWxlbWFza190bGJfaW52YWwodm0sIGFkal9zdGFydCwgYWRqX2Vu ZCwgdGlsZV9tYXNrKTsKKwllcnIgPSB4ZV90bGJfaW52YWxfcmFuZ2VfdGlsZW1hc2tfc3VibWl0 KHhlLCB2bS0+dXNtLmFzaWQsIGFkal9zdGFydCwgYWRqX2VuZCwKKwkJCQkJCSB0aWxlX21hc2ss ICZfYmF0Y2gpOworCXhlX3RsYl9pbnZhbF9iYXRjaF93YWl0KCZfYmF0Y2gpOwogCVdBUk5fT05f T05DRShlcnIpOwogCiByYW5nZV9ub3RpZmllcl9ldmVudF9lbmQ6CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0veGUveGVfdGxiX2ludmFsLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdGxi X2ludmFsLmMKaW5kZXggOTMzZjMwZmI2MTdkLi4zNDNlMzdjZmU3MTUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS94ZS94ZV90bGJfaW52YWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0veGUv eGVfdGxiX2ludmFsLmMKQEAgLTQ4NiwzICs0ODYsODUgQEAgYm9vbCB4ZV90bGJfaW52YWxfaWRs ZShzdHJ1Y3QgeGVfdGxiX2ludmFsICp0bGJfaW52YWwpCiAJZ3VhcmQoc3BpbmxvY2tfaXJxKSgm dGxiX2ludmFsLT5wZW5kaW5nX2xvY2spOwogCXJldHVybiBsaXN0X2lzX3Npbmd1bGFyKCZ0bGJf aW52YWwtPnBlbmRpbmdfZmVuY2VzKTsKIH0KKworLyoqCisgKiB4ZV90bGJfaW52YWxfYmF0Y2hf d2FpdCgpIC0gV2FpdCBmb3IgYWxsIGZlbmNlcyBpbiBhIFRMQiBpbnZhbGlkYXRpb24gYmF0Y2gK KyAqIEBiYXRjaDogQmF0Y2ggb2YgVExCIGludmFsaWRhdGlvbiBmZW5jZXMgdG8gd2FpdCBvbgor ICoKKyAqIFdhaXRzIGZvciBldmVyeSBmZW5jZSBpbiBAYmF0Y2ggdG8gc2lnbmFsLCB0aGVuIHJl c2V0cyBAYmF0Y2ggc28gaXQgY2FuIGJlCisgKiByZXVzZWQgZm9yIGEgc3Vic2VxdWVudCBpbnZh bGlkYXRpb24uCisgKi8KK3ZvaWQgeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQoc3RydWN0IHhlX3Rs Yl9pbnZhbF9iYXRjaCAqYmF0Y2gpCit7CisJc3RydWN0IHhlX3RsYl9pbnZhbF9mZW5jZSAqZmVu Y2UgPSAmYmF0Y2gtPmZlbmNlWzBdOworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsg aSA8IGJhdGNoLT5udW1fZmVuY2VzOyArK2kpCisJCXhlX3RsYl9pbnZhbF9mZW5jZV93YWl0KGZl bmNlKyspOworCisJYmF0Y2gtPm51bV9mZW5jZXMgPSAwOworfQorCisvKioKKyAqIHhlX3RsYl9p bnZhbF9yYW5nZV90aWxlbWFza19zdWJtaXQoKSAtIFN1Ym1pdCBUTEIgaW52YWxpZGF0aW9ucyBm b3IgYW4KKyAqIGFkZHJlc3MgcmFuZ2Ugb24gYSB0aWxlIG1hc2sKKyAqIEB4ZTogVGhlIHhlIGRl dmljZQorICogQGFzaWQ6IEFkZHJlc3Mgc3BhY2UgSUQKKyAqIEBzdGFydDogc3RhcnQgYWRkcmVz cworICogQGVuZDogZW5kIGFkZHJlc3MKKyAqIEB0aWxlX21hc2s6IG1hc2sgZm9yIHdoaWNoIGd0 J3MgaXNzdWUgdGxiIGludmFsaWRhdGlvbgorICogQGJhdGNoOiBCYXRjaCBvZiB0bGIgaW52YWxp ZGF0ZSBmZW5jZXMKKyAqCisgKiBJc3N1ZSBhIHJhbmdlIGJhc2VkIFRMQiBpbnZhbGlkYXRpb24g Zm9yIGd0J3MgaW4gdGlsZW1hc2sKKyAqCisgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MsIG5lZ2F0 aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgorICovCitpbnQgeGVfdGxiX2ludmFsX3JhbmdlX3Rp bGVtYXNrX3N1Ym1pdChzdHJ1Y3QgeGVfZGV2aWNlICp4ZSwgdTMyIGFzaWQsCisJCQkJICAgICAg IHU2NCBzdGFydCwgdTY0IGVuZCwgdTggdGlsZV9tYXNrLAorCQkJCSAgICAgICBzdHJ1Y3QgeGVf dGxiX2ludmFsX2JhdGNoICpiYXRjaCkKK3sKKwlzdHJ1Y3QgeGVfdGxiX2ludmFsX2ZlbmNlICpm ZW5jZSA9ICZiYXRjaC0+ZmVuY2VbMF07CisJc3RydWN0IHhlX3RpbGUgKnRpbGU7CisJdTMyIGZl bmNlX2lkID0gMDsKKwl1OCBpZDsKKwlpbnQgZXJyOworCisJYmF0Y2gtPm51bV9mZW5jZXMgPSAw OworCWlmICghdGlsZV9tYXNrKQorCQlyZXR1cm4gMDsKKworCWZvcl9lYWNoX3RpbGUodGlsZSwg eGUsIGlkKSB7CisJCWlmICghKHRpbGVfbWFzayAmIEJJVChpZCkpKQorCQkJY29udGludWU7CisK KwkJeGVfdGxiX2ludmFsX2ZlbmNlX2luaXQoJnRpbGUtPnByaW1hcnlfZ3QtPnRsYl9pbnZhbCwK KwkJCQkJJmZlbmNlW2ZlbmNlX2lkXSwgdHJ1ZSk7CisKKwkJZXJyID0geGVfdGxiX2ludmFsX3Jh bmdlKCZ0aWxlLT5wcmltYXJ5X2d0LT50bGJfaW52YWwsCisJCQkJCSAmZmVuY2VbZmVuY2VfaWRd LCBzdGFydCwgZW5kLAorCQkJCQkgYXNpZCwgTlVMTCk7CisJCWlmIChlcnIpCisJCQlnb3RvIHdh aXQ7CisJCSsrZmVuY2VfaWQ7CisKKwkJaWYgKCF0aWxlLT5tZWRpYV9ndCkKKwkJCWNvbnRpbnVl OworCisJCXhlX3RsYl9pbnZhbF9mZW5jZV9pbml0KCZ0aWxlLT5tZWRpYV9ndC0+dGxiX2ludmFs LAorCQkJCQkmZmVuY2VbZmVuY2VfaWRdLCB0cnVlKTsKKworCQllcnIgPSB4ZV90bGJfaW52YWxf cmFuZ2UoJnRpbGUtPm1lZGlhX2d0LT50bGJfaW52YWwsCisJCQkJCSAmZmVuY2VbZmVuY2VfaWRd LCBzdGFydCwgZW5kLAorCQkJCQkgYXNpZCwgTlVMTCk7CisJCWlmIChlcnIpCisJCQlnb3RvIHdh aXQ7CisJCSsrZmVuY2VfaWQ7CisJfQorCit3YWl0OgorCWJhdGNoLT5udW1fZmVuY2VzID0gZmVu Y2VfaWQ7CisJaWYgKGVycikKKwkJeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQoYmF0Y2gpOworCisJ cmV0dXJuIGVycjsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV90bGJfaW52 YWwuaCBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV90bGJfaW52YWwuaAppbmRleCA2MjA4OTI1NGZh MjMuLmE3NmI3ODIzYTVmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3RsYl9p bnZhbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV90bGJfaW52YWwuaApAQCAtNDUsNCAr NDUsMTAgQEAgdm9pZCB4ZV90bGJfaW52YWxfZG9uZV9oYW5kbGVyKHN0cnVjdCB4ZV90bGJfaW52 YWwgKnRsYl9pbnZhbCwgaW50IHNlcW5vKTsKIAogYm9vbCB4ZV90bGJfaW52YWxfaWRsZShzdHJ1 Y3QgeGVfdGxiX2ludmFsICp0bGJfaW52YWwpOwogCitpbnQgeGVfdGxiX2ludmFsX3JhbmdlX3Rp bGVtYXNrX3N1Ym1pdChzdHJ1Y3QgeGVfZGV2aWNlICp4ZSwgdTMyIGFzaWQsCisJCQkJICAgICAg IHU2NCBzdGFydCwgdTY0IGVuZCwgdTggdGlsZV9tYXNrLAorCQkJCSAgICAgICBzdHJ1Y3QgeGVf dGxiX2ludmFsX2JhdGNoICpiYXRjaCk7CisKK3ZvaWQgeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQo c3RydWN0IHhlX3RsYl9pbnZhbF9iYXRjaCAqYmF0Y2gpOworCiAjZW5kaWYJLyogX1hFX1RMQl9J TlZBTF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV90bGJfaW52YWxfdHlw ZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV90bGJfaW52YWxfdHlwZXMuaAppbmRleCAzYjA4 OWY5MGYwMDIuLjNkMTc5N2QxODZmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hl X3RsYl9pbnZhbF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV90bGJfaW52YWxf dHlwZXMuaApAQCAtOSw2ICs5LDggQEAKICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KICNp bmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAorI2luY2x1ZGUgInhlX2RldmljZV90eXBlcy5o IgorCiBzdHJ1Y3QgZHJtX3N1YmFsbG9jOwogc3RydWN0IHhlX3RsYl9pbnZhbDsKIApAQCAtMTMy LDQgKzEzNCwxNiBAQCBzdHJ1Y3QgeGVfdGxiX2ludmFsX2ZlbmNlIHsKIAlrdGltZV90IGludmFs X3RpbWU7CiB9OwogCisvKioKKyAqIHN0cnVjdCB4ZV90bGJfaW52YWxfYmF0Y2ggLSBCYXRjaCBv ZiBUTEIgaW52YWxpZGF0aW9uIGZlbmNlcworICoKKyAqIEhvbGRzIG9uZSBmZW5jZSBwZXIgR1Qg Y292ZXJlZCBieSBhIFRMQiBpbnZhbGlkYXRpb24gcmVxdWVzdC4KKyAqLworc3RydWN0IHhlX3Rs Yl9pbnZhbF9iYXRjaCB7CisJLyoqIEBmZW5jZTogcGVyLUdUIFRMQiBpbnZhbGlkYXRpb24gZmVu Y2VzICovCisJc3RydWN0IHhlX3RsYl9pbnZhbF9mZW5jZSBmZW5jZVtYRV9NQVhfVElMRVNfUEVS X0RFVklDRSAqIFhFX01BWF9HVF9QRVJfVElMRV07CisJLyoqIEBudW1fZmVuY2VzOiBudW1iZXIg b2YgdmFsaWQgZW50cmllcyBpbiBAZmVuY2UgKi8KKwl1bnNpZ25lZCBpbnQgbnVtX2ZlbmNlczsK K307CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMgYi9k cml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYwppbmRleCA1NDhiMDc2OWIzZWYuLjdmMjlkMmIyOTcy ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3hlL3hlX3ZtLmMKQEAgLTM5NjYsNjYgKzM5NjYsNiBAQCB2b2lkIHhlX3ZtX3VubG9j ayhzdHJ1Y3QgeGVfdm0gKnZtKQogCWRtYV9yZXN2X3VubG9jayh4ZV92bV9yZXN2KHZtKSk7CiB9 CiAKLS8qKgotICogeGVfdm1fcmFuZ2VfdGlsZW1hc2tfdGxiX2ludmFsIC0gSXNzdWUgYSBUTEIg aW52YWxpZGF0aW9uIG9uIHRoaXMgdGlsZW1hc2sgZm9yIGFuCi0gKiBhZGRyZXNzIHJhbmdlCi0g KiBAdm06IFRoZSBWTQotICogQHN0YXJ0OiBzdGFydCBhZGRyZXNzCi0gKiBAZW5kOiBlbmQgYWRk cmVzcwotICogQHRpbGVfbWFzazogbWFzayBmb3Igd2hpY2ggZ3QncyBpc3N1ZSB0bGIgaW52YWxp ZGF0aW9uCi0gKgotICogSXNzdWUgYSByYW5nZSBiYXNlZCBUTEIgaW52YWxpZGF0aW9uIGZvciBn dCdzIGluIHRpbGVtYXNrCi0gKgotICogUmV0dXJucyAwIGZvciBzdWNjZXNzLCBuZWdhdGl2ZSBl cnJvciBjb2RlIG90aGVyd2lzZS4KLSAqLwotaW50IHhlX3ZtX3JhbmdlX3RpbGVtYXNrX3RsYl9p bnZhbChzdHJ1Y3QgeGVfdm0gKnZtLCB1NjQgc3RhcnQsCi0JCQkJICAgdTY0IGVuZCwgdTggdGls ZV9tYXNrKQotewotCXN0cnVjdCB4ZV90bGJfaW52YWxfZmVuY2UKLQkJZmVuY2VbWEVfTUFYX1RJ TEVTX1BFUl9ERVZJQ0UgKiBYRV9NQVhfR1RfUEVSX1RJTEVdOwotCXN0cnVjdCB4ZV90aWxlICp0 aWxlOwotCXUzMiBmZW5jZV9pZCA9IDA7Ci0JdTggaWQ7Ci0JaW50IGVycjsKLQotCWlmICghdGls ZV9tYXNrKQotCQlyZXR1cm4gMDsKLQotCWZvcl9lYWNoX3RpbGUodGlsZSwgdm0tPnhlLCBpZCkg ewotCQlpZiAoISh0aWxlX21hc2sgJiBCSVQoaWQpKSkKLQkJCWNvbnRpbnVlOwotCi0JCXhlX3Rs Yl9pbnZhbF9mZW5jZV9pbml0KCZ0aWxlLT5wcmltYXJ5X2d0LT50bGJfaW52YWwsCi0JCQkJCSZm ZW5jZVtmZW5jZV9pZF0sIHRydWUpOwotCi0JCWVyciA9IHhlX3RsYl9pbnZhbF9yYW5nZSgmdGls ZS0+cHJpbWFyeV9ndC0+dGxiX2ludmFsLAotCQkJCQkgJmZlbmNlW2ZlbmNlX2lkXSwgc3RhcnQs IGVuZCwKLQkJCQkJIHZtLT51c20uYXNpZCwgTlVMTCk7Ci0JCWlmIChlcnIpCi0JCQlnb3RvIHdh aXQ7Ci0JCSsrZmVuY2VfaWQ7Ci0KLQkJaWYgKCF0aWxlLT5tZWRpYV9ndCkKLQkJCWNvbnRpbnVl OwotCi0JCXhlX3RsYl9pbnZhbF9mZW5jZV9pbml0KCZ0aWxlLT5tZWRpYV9ndC0+dGxiX2ludmFs LAotCQkJCQkmZmVuY2VbZmVuY2VfaWRdLCB0cnVlKTsKLQotCQllcnIgPSB4ZV90bGJfaW52YWxf cmFuZ2UoJnRpbGUtPm1lZGlhX2d0LT50bGJfaW52YWwsCi0JCQkJCSAmZmVuY2VbZmVuY2VfaWRd LCBzdGFydCwgZW5kLAotCQkJCQkgdm0tPnVzbS5hc2lkLCBOVUxMKTsKLQkJaWYgKGVycikKLQkJ CWdvdG8gd2FpdDsKLQkJKytmZW5jZV9pZDsKLQl9Ci0KLXdhaXQ6Ci0JZm9yIChpZCA9IDA7IGlk IDwgZmVuY2VfaWQ7ICsraWQpCi0JCXhlX3RsYl9pbnZhbF9mZW5jZV93YWl0KCZmZW5jZVtpZF0p OwotCi0JcmV0dXJuIGVycjsKLX0KLQogLyoqCiAgKiB4ZV92bV9pbnZhbGlkYXRlX3ZtYSAtIGlu dmFsaWRhdGUgR1BVIG1hcHBpbmdzIGZvciBWTUEgd2l0aG91dCBhIGxvY2sKICAqIEB2bWE6IFZN QSB0byBpbnZhbGlkYXRlCkBAIC00MDQwLDYgKzM5ODAsNyBAQCBpbnQgeGVfdm1faW52YWxpZGF0 ZV92bWEoc3RydWN0IHhlX3ZtYSAqdm1hKQogewogCXN0cnVjdCB4ZV9kZXZpY2UgKnhlID0geGVf dm1hX3ZtKHZtYSktPnhlOwogCXN0cnVjdCB4ZV92bSAqdm0gPSB4ZV92bWFfdm0odm1hKTsKKwlz dHJ1Y3QgeGVfdGxiX2ludmFsX2JhdGNoIF9iYXRjaDsKIAlzdHJ1Y3QgeGVfdGlsZSAqdGlsZTsK IAl1OCB0aWxlX21hc2sgPSAwOwogCWludCByZXQgPSAwOwpAQCAtNDA4MCwxMiArNDAyMSwxNiBA QCBpbnQgeGVfdm1faW52YWxpZGF0ZV92bWEoc3RydWN0IHhlX3ZtYSAqdm1hKQogCiAJeGVfZGV2 aWNlX3dtYih4ZSk7CiAKLQlyZXQgPSB4ZV92bV9yYW5nZV90aWxlbWFza190bGJfaW52YWwoeGVf dm1hX3ZtKHZtYSksIHhlX3ZtYV9zdGFydCh2bWEpLAotCQkJCQkgICAgIHhlX3ZtYV9lbmQodm1h KSwgdGlsZV9tYXNrKTsKKwlyZXQgPSB4ZV90bGJfaW52YWxfcmFuZ2VfdGlsZW1hc2tfc3VibWl0 KHhlLCB4ZV92bWFfdm0odm1hKS0+dXNtLmFzaWQsCisJCQkJCQkgeGVfdm1hX3N0YXJ0KHZtYSks IHhlX3ZtYV9lbmQodm1hKSwKKwkJCQkJCSB0aWxlX21hc2ssICZfYmF0Y2gpOwogCiAJLyogV1JJ VEVfT05DRSBwYWlycyB3aXRoIFJFQURfT05DRSBpbiB4ZV92bV9oYXNfdmFsaWRfZ3B1X21hcHBp bmcoKSAqLwogCVdSSVRFX09OQ0Uodm1hLT50aWxlX2ludmFsaWRhdGVkLCB2bWEtPnRpbGVfbWFz ayk7CiAKKwlpZiAoIXJldCkKKwkJeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQoJl9iYXRjaCk7CisK IAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0u aCBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5oCmluZGV4IGY4NDllMzY5NDMyYi4uNjJmNGI2 ZmVjMGJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0veGUveGVfdm0uaApAQCAtMjQwLDkgKzI0MCw2IEBAIHN0cnVjdCBkbWFfZmVu Y2UgKnhlX3ZtX3JhbmdlX3JlYmluZChzdHJ1Y3QgeGVfdm0gKnZtLAogc3RydWN0IGRtYV9mZW5j ZSAqeGVfdm1fcmFuZ2VfdW5iaW5kKHN0cnVjdCB4ZV92bSAqdm0sCiAJCQkJICAgICBzdHJ1Y3Qg eGVfc3ZtX3JhbmdlICpyYW5nZSk7CiAKLWludCB4ZV92bV9yYW5nZV90aWxlbWFza190bGJfaW52 YWwoc3RydWN0IHhlX3ZtICp2bSwgdTY0IHN0YXJ0LAotCQkJCSAgIHU2NCBlbmQsIHU4IHRpbGVf bWFzayk7Ci0KIGludCB4ZV92bV9pbnZhbGlkYXRlX3ZtYShzdHJ1Y3QgeGVfdm1hICp2bWEpOwog CiBpbnQgeGVfdm1fdmFsaWRhdGVfcHJvdGVjdGVkKHN0cnVjdCB4ZV92bSAqdm0pOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtX21hZHZpc2UuYyBiL2RyaXZlcnMvZ3B1L2Ry bS94ZS94ZV92bV9tYWR2aXNlLmMKaW5kZXggOTViZjUzY2MyOWUzLi4zOTcxNzAyNmU4NGYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV9tYWR2aXNlLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3hlL3hlX3ZtX21hZHZpc2UuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUg InhlX3BhdC5oIgogI2luY2x1ZGUgInhlX3B0LmgiCiAjaW5jbHVkZSAieGVfc3ZtLmgiCisjaW5j bHVkZSAieGVfdGxiX2ludmFsLmgiCiAKIHN0cnVjdCB4ZV92bWFzX2luX21hZHZpc2VfcmFuZ2Ug ewogCXU2NCBhZGRyOwpAQCAtMjM1LDEzICsyMzYsMTkgQEAgc3RhdGljIHU4IHhlX3phcF9wdGVz X2luX21hZHZpc2VfcmFuZ2Uoc3RydWN0IHhlX3ZtICp2bSwgdTY0IHN0YXJ0LCB1NjQgZW5kKQog c3RhdGljIGludCB4ZV92bV9pbnZhbGlkYXRlX21hZHZpc2VfcmFuZ2Uoc3RydWN0IHhlX3ZtICp2 bSwgdTY0IHN0YXJ0LCB1NjQgZW5kKQogewogCXU4IHRpbGVfbWFzayA9IHhlX3phcF9wdGVzX2lu X21hZHZpc2VfcmFuZ2Uodm0sIHN0YXJ0LCBlbmQpOworCXN0cnVjdCB4ZV90bGJfaW52YWxfYmF0 Y2ggYmF0Y2g7CisJaW50IGVycjsKIAogCWlmICghdGlsZV9tYXNrKQogCQlyZXR1cm4gMDsKIAog CXhlX2RldmljZV93bWIodm0tPnhlKTsKIAotCXJldHVybiB4ZV92bV9yYW5nZV90aWxlbWFza190 bGJfaW52YWwodm0sIHN0YXJ0LCBlbmQsIHRpbGVfbWFzayk7CisJZXJyID0geGVfdGxiX2ludmFs X3JhbmdlX3RpbGVtYXNrX3N1Ym1pdCh2bS0+eGUsIHZtLT51c20uYXNpZCwgc3RhcnQsIGVuZCwK KwkJCQkJCSB0aWxlX21hc2ssICZiYXRjaCk7CisJeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQoJmJh dGNoKTsKKworCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBib29sIG1hZHZpc2VfYXJnc19hcmVf c2FuZShzdHJ1Y3QgeGVfZGV2aWNlICp4ZSwgY29uc3Qgc3RydWN0IGRybV94ZV9tYWR2aXNlICph cmdzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtX3R5cGVzLmggYi9kcml2 ZXJzL2dwdS9kcm0veGUveGVfdm1fdHlwZXMuaAppbmRleCAxZjZmN2UzMGU3NTEuLmRlNjU0NDE2 NWNmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtX3R5cGVzLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtX3R5cGVzLmgKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNs dWRlICJ4ZV9kZXZpY2VfdHlwZXMuaCIKICNpbmNsdWRlICJ4ZV9wdF90eXBlcy5oIgogI2luY2x1 ZGUgInhlX3JhbmdlX2ZlbmNlLmgiCisjaW5jbHVkZSAieGVfdGxiX2ludmFsX3R5cGVzLmgiCiAj aW5jbHVkZSAieGVfdXNlcnB0ci5oIgogCiBzdHJ1Y3QgZHJtX3BhZ2VtYXA7Ci0tIAoyLjUzLjAK Cg==