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 54F46EC144B for ; Tue, 3 Mar 2026 13:34:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0A37610E811; Tue, 3 Mar 2026 13:34:54 +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="b2zSa5uX"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id D885C10E80F; Tue, 3 Mar 2026 13:34:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772544893; x=1804080893; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4zSdgJb/3LQV6TLEXBd3FOBd7Vj/A1qMpJaLG/tQvuo=; b=b2zSa5uXHbMX32Euc/N3KXzApIE1xSry0UacYdyfhMk6fAYFluJzWcVp 42WitjPTS2KHbImzwuE6THAJAcefzpNZw3z4h1Jcl1Id8Ha4MxA8q7E1r l0MU95vX1w0crlL4DYSqmrjLMYfxWO/FUNUccZ/ZDAN9anpqK1g7Eq6+L VfA36wRvI5eN6YefsEHHs20YgbU29h+S6HvnDh+oxWZ38PrqBF2uhOY7Q 2o+Yi1JdHCM/SbgUaoIu6mHYStOexb2H1pty2EDHSvsny9XZpW4qsngNr TqkjBzHbseX4+et9Xe0fEBqlPbFmXDQBWgq52oQgQnhM741MzM9rYiDiX Q==; X-CSE-ConnectionGUID: BllNFvB9RzivSwK0izeyng== X-CSE-MsgGUID: I/0PhYjVQ5eqHeTuU8uhpQ== X-IronPort-AV: E=McAfee;i="6800,10657,11718"; a="76179754" X-IronPort-AV: E=Sophos;i="6.21,322,1763452800"; d="scan'208";a="76179754" 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:52 -0800 X-CSE-ConnectionGUID: UbDdlhigS1yA6L9Jp2rtNg== X-CSE-MsgGUID: OGslZIcARRW3iwqoTD+ewA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,322,1763452800"; d="scan'208";a="217947938" 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:49 -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 3/4] drm/xe: Split TLB invalidation into submit and wait steps Date: Tue, 3 Mar 2026 14:34:08 +0100 Message-ID: <20260303133409.11609-4-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" eGVfdm1fcmFuZ2VfdGlsZW1hc2tfdGxiX2ludmFsKCkgc3VibWl0cyBUTEIgaW52YWxpZGF0aW9u IHJlcXVlc3RzIHRvCmFsbCBHVHMgaW4gYSB0aWxlIG1hc2sgYW5kIHRoZW4gaW1tZWRpYXRlbHkg d2FpdHMgZm9yIHRoZW0gdG8gY29tcGxldGUKYmVmb3JlIHJldHVybmluZy4gVGhpcyBpcyBmaW5l IGZvciB0aGUgZXhpc3RpbmcgY2FsbGVycywgYnV0IGEKc3Vic2VxdWVudCBwYXRjaCB3aWxsIG5l ZWQgdG8gZGVmZXIgdGhlIHdhaXQgaW4gb3JkZXIgdG8gb3ZlcmxhcCBUTEIKaW52YWxpZGF0aW9u cyBhY3Jvc3MgbXVsdGlwbGUgVk1Bcy4KCkludHJvZHVjZSB4ZV90bGJfaW52YWxfcmFuZ2VfdGls ZW1hc2tfc3VibWl0KCkgYW5kCnhlX3RsYl9pbnZhbF9iYXRjaF93YWl0KCkgaW4geGVfdGxiX2lu dmFsLmMgYXMgdGhlIHN1Ym1pdCBhbmQgd2FpdApoYWx2ZXMgcmVzcGVjdGl2ZWx5LiBUaGUgYmF0 Y2ggb2YgZmVuY2VzIGlzIGNhcnJpZWQgaW4gdGhlIG5ldwp4ZV90bGJfaW52YWxfYmF0Y2ggc3Ry dWN0dXJlLiBSZW1vdmUgeGVfdm1fcmFuZ2VfdGlsZW1hc2tfdGxiX2ludmFsKCkKYW5kIGNvbnZl cnQgYWxsIHRocmVlIGNhbGwgc2l0ZXMgdG8gdGhlIG5ldyBBUEkuCgp2MzoKLSBEb24ndCB3YWl0 IG9uIFRMQiBpbnZhbGlkYXRpb24gYmF0Y2hlcyBpZiB0aGUgY29ycmVzcG9uZGluZyBiYXRjaAog IHN1Ym1pdCByZXR1cm5zIGFuIGVycm9yLiAoTWF0dCBCcm9zdCkKLSBzL19iYXRjaC9iYXRjaC8g KE1hdHQgQnJvc3QpCgpBc3Npc3RlZC1ieTogR2l0SHViIENvcGlsb3Q6Y2xhdWRlLXNvbm5ldC00 LjYKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGlu dXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV9zdm0uYyAgICAgICAgICAg ICB8ICA4ICsrLQogZHJpdmVycy9ncHUvZHJtL3hlL3hlX3RsYl9pbnZhbC5jICAgICAgIHwgODQg KysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3hlL3hlX3RsYl9pbnZh bC5oICAgICAgIHwgIDYgKysKIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV90bGJfaW52YWxfdHlwZXMu aCB8IDE0ICsrKysrCiBkcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYyAgICAgICAgICAgICAgfCA2 OSArKystLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmggICAgICAg ICAgICAgIHwgIDMgLQogZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtX21hZHZpc2UuYyAgICAgIHwg MTAgKystCiBkcml2ZXJzL2dwdS9kcm0veGUveGVfdm1fdHlwZXMuaCAgICAgICAgfCAgMSArCiA4 IGZpbGVzIGNoYW5nZWQsIDEyNyBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfc3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUv eGVfc3ZtLmMKaW5kZXggMDAyYjZjMjJhZDNmLi5hOTFjODQ0ODdhNjcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS94ZS94ZV9zdm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfc3Zt LmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJ4ZV9wdC5oIgogI2luY2x1ZGUgInhlX3N2 bS5oIgogI2luY2x1ZGUgInhlX3RpbGUuaCIKKyNpbmNsdWRlICJ4ZV90bGJfaW52YWwuaCIKICNp bmNsdWRlICJ4ZV90dG1fdnJhbV9tZ3IuaCIKICNpbmNsdWRlICJ4ZV92bS5oIgogI2luY2x1ZGUg InhlX3ZtX3R5cGVzLmgiCkBAIC0yMjUsNiArMjI2LDcgQEAgc3RhdGljIHZvaWQgeGVfc3ZtX2lu dmFsaWRhdGUoc3RydWN0IGRybV9ncHVzdm0gKmdwdXN2bSwKIAkJCSAgICAgIGNvbnN0IHN0cnVj dCBtbXVfbm90aWZpZXJfcmFuZ2UgKm1tdV9yYW5nZSkKIHsKIAlzdHJ1Y3QgeGVfdm0gKnZtID0g Z3B1c3ZtX3RvX3ZtKGdwdXN2bSk7CisJc3RydWN0IHhlX3RsYl9pbnZhbF9iYXRjaCBiYXRjaDsK IAlzdHJ1Y3QgeGVfZGV2aWNlICp4ZSA9IHZtLT54ZTsKIAlzdHJ1Y3QgZHJtX2dwdXN2bV9yYW5n ZSAqciwgKmZpcnN0OwogCXN0cnVjdCB4ZV90aWxlICp0aWxlOwpAQCAtMjc2LDggKzI3OCwxMCBA QCBzdGF0aWMgdm9pZCB4ZV9zdm1faW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2dwdXN2bSAqZ3B1c3Zt LAogCiAJeGVfZGV2aWNlX3dtYih4ZSk7CiAKLQllcnIgPSB4ZV92bV9yYW5nZV90aWxlbWFza190 bGJfaW52YWwodm0sIGFkal9zdGFydCwgYWRqX2VuZCwgdGlsZV9tYXNrKTsKLQlXQVJOX09OX09O Q0UoZXJyKTsKKwllcnIgPSB4ZV90bGJfaW52YWxfcmFuZ2VfdGlsZW1hc2tfc3VibWl0KHhlLCB2 bS0+dXNtLmFzaWQsIGFkal9zdGFydCwgYWRqX2VuZCwKKwkJCQkJCSB0aWxlX21hc2ssICZiYXRj aCk7CisJaWYgKCFXQVJOX09OX09OQ0UoZXJyKSkKKwkJeGVfdGxiX2ludmFsX2JhdGNoX3dhaXQo JmJhdGNoKTsKIAogcmFuZ2Vfbm90aWZpZXJfZXZlbnRfZW5kOgogCXIgPSBmaXJzdDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV90bGJfaW52YWwuYyBiL2RyaXZlcnMvZ3B1L2Ry bS94ZS94ZV90bGJfaW52YWwuYwppbmRleCA5MzNmMzBmYjYxN2QuLjEwZGNkNGFiYjAwZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3RsYl9pbnZhbC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS94ZS94ZV90bGJfaW52YWwuYwpAQCAtNDg2LDMgKzQ4Niw4NyBAQCBib29sIHhlX3Rs Yl9pbnZhbF9pZGxlKHN0cnVjdCB4ZV90bGJfaW52YWwgKnRsYl9pbnZhbCkKIAlndWFyZChzcGlu bG9ja19pcnEpKCZ0bGJfaW52YWwtPnBlbmRpbmdfbG9jayk7CiAJcmV0dXJuIGxpc3RfaXNfc2lu Z3VsYXIoJnRsYl9pbnZhbC0+cGVuZGluZ19mZW5jZXMpOwogfQorCisvKioKKyAqIHhlX3RsYl9p bnZhbF9iYXRjaF93YWl0KCkgLSBXYWl0IGZvciBhbGwgZmVuY2VzIGluIGEgVExCIGludmFsaWRh dGlvbiBiYXRjaAorICogQGJhdGNoOiBCYXRjaCBvZiBUTEIgaW52YWxpZGF0aW9uIGZlbmNlcyB0 byB3YWl0IG9uCisgKgorICogV2FpdHMgZm9yIGV2ZXJ5IGZlbmNlIGluIEBiYXRjaCB0byBzaWdu YWwsIHRoZW4gcmVzZXRzIEBiYXRjaCBzbyBpdCBjYW4gYmUKKyAqIHJldXNlZCBmb3IgYSBzdWJz ZXF1ZW50IGludmFsaWRhdGlvbi4KKyAqLwordm9pZCB4ZV90bGJfaW52YWxfYmF0Y2hfd2FpdChz dHJ1Y3QgeGVfdGxiX2ludmFsX2JhdGNoICpiYXRjaCkKK3sKKwlzdHJ1Y3QgeGVfdGxiX2ludmFs X2ZlbmNlICpmZW5jZSA9ICZiYXRjaC0+ZmVuY2VbMF07CisJdW5zaWduZWQgaW50IGk7CisKKwlm b3IgKGkgPSAwOyBpIDwgYmF0Y2gtPm51bV9mZW5jZXM7ICsraSkKKwkJeGVfdGxiX2ludmFsX2Zl bmNlX3dhaXQoZmVuY2UrKyk7CisKKwliYXRjaC0+bnVtX2ZlbmNlcyA9IDA7Cit9CisKKy8qKgor ICogeGVfdGxiX2ludmFsX3JhbmdlX3RpbGVtYXNrX3N1Ym1pdCgpIC0gU3VibWl0IFRMQiBpbnZh bGlkYXRpb25zIGZvciBhbgorICogYWRkcmVzcyByYW5nZSBvbiBhIHRpbGUgbWFzaworICogQHhl OiBUaGUgeGUgZGV2aWNlCisgKiBAYXNpZDogQWRkcmVzcyBzcGFjZSBJRAorICogQHN0YXJ0OiBz dGFydCBhZGRyZXNzCisgKiBAZW5kOiBlbmQgYWRkcmVzcworICogQHRpbGVfbWFzazogbWFzayBm b3Igd2hpY2ggZ3QncyBpc3N1ZSB0bGIgaW52YWxpZGF0aW9uCisgKiBAYmF0Y2g6IEJhdGNoIG9m IHRsYiBpbnZhbGlkYXRlIGZlbmNlcworICoKKyAqIElzc3VlIGEgcmFuZ2UgYmFzZWQgVExCIGlu dmFsaWRhdGlvbiBmb3IgZ3QncyBpbiB0aWxlbWFzaworICogSWYgdGhlIGZ1bmN0aW9uIHJldHVy bnMgYW4gZXJyb3IsIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbAorICogeGVfdGxiX2ludmFsX2Jh dGNoX3dhaXQoKSBvbiBAYmF0Y2guCisgKgorICogUmV0dXJucyAwIGZvciBzdWNjZXNzLCBuZWdh dGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4KKyAqLworaW50IHhlX3RsYl9pbnZhbF9yYW5nZV90 aWxlbWFza19zdWJtaXQoc3RydWN0IHhlX2RldmljZSAqeGUsIHUzMiBhc2lkLAorCQkJCSAgICAg ICB1NjQgc3RhcnQsIHU2NCBlbmQsIHU4IHRpbGVfbWFzaywKKwkJCQkgICAgICAgc3RydWN0IHhl X3RsYl9pbnZhbF9iYXRjaCAqYmF0Y2gpCit7CisJc3RydWN0IHhlX3RsYl9pbnZhbF9mZW5jZSAq ZmVuY2UgPSAmYmF0Y2gtPmZlbmNlWzBdOworCXN0cnVjdCB4ZV90aWxlICp0aWxlOworCXUzMiBm ZW5jZV9pZCA9IDA7CisJdTggaWQ7CisJaW50IGVycjsKKworCWJhdGNoLT5udW1fZmVuY2VzID0g MDsKKwlpZiAoIXRpbGVfbWFzaykKKwkJcmV0dXJuIDA7CisKKwlmb3JfZWFjaF90aWxlKHRpbGUs IHhlLCBpZCkgeworCQlpZiAoISh0aWxlX21hc2sgJiBCSVQoaWQpKSkKKwkJCWNvbnRpbnVlOwor CisJCXhlX3RsYl9pbnZhbF9mZW5jZV9pbml0KCZ0aWxlLT5wcmltYXJ5X2d0LT50bGJfaW52YWws CisJCQkJCSZmZW5jZVtmZW5jZV9pZF0sIHRydWUpOworCisJCWVyciA9IHhlX3RsYl9pbnZhbF9y YW5nZSgmdGlsZS0+cHJpbWFyeV9ndC0+dGxiX2ludmFsLAorCQkJCQkgJmZlbmNlW2ZlbmNlX2lk XSwgc3RhcnQsIGVuZCwKKwkJCQkJIGFzaWQsIE5VTEwpOworCQlpZiAoZXJyKQorCQkJZ290byB3 YWl0OworCQkrK2ZlbmNlX2lkOworCisJCWlmICghdGlsZS0+bWVkaWFfZ3QpCisJCQljb250aW51 ZTsKKworCQl4ZV90bGJfaW52YWxfZmVuY2VfaW5pdCgmdGlsZS0+bWVkaWFfZ3QtPnRsYl9pbnZh bCwKKwkJCQkJJmZlbmNlW2ZlbmNlX2lkXSwgdHJ1ZSk7CisKKwkJZXJyID0geGVfdGxiX2ludmFs X3JhbmdlKCZ0aWxlLT5tZWRpYV9ndC0+dGxiX2ludmFsLAorCQkJCQkgJmZlbmNlW2ZlbmNlX2lk XSwgc3RhcnQsIGVuZCwKKwkJCQkJIGFzaWQsIE5VTEwpOworCQlpZiAoZXJyKQorCQkJZ290byB3 YWl0OworCQkrK2ZlbmNlX2lkOworCX0KKword2FpdDoKKwliYXRjaC0+bnVtX2ZlbmNlcyA9IGZl bmNlX2lkOworCWlmIChlcnIpCisJCXhlX3RsYl9pbnZhbF9iYXRjaF93YWl0KGJhdGNoKTsKKwor CXJldHVybiBlcnI7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdGxiX2lu dmFsLmggYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdGxiX2ludmFsLmgKaW5kZXggNjIwODkyNTRm YTIzLi5hNzZiNzgyM2E1ZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV90bGJf aW52YWwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdGxiX2ludmFsLmgKQEAgLTQ1LDQg KzQ1LDEwIEBAIHZvaWQgeGVfdGxiX2ludmFsX2RvbmVfaGFuZGxlcihzdHJ1Y3QgeGVfdGxiX2lu dmFsICp0bGJfaW52YWwsIGludCBzZXFubyk7CiAKIGJvb2wgeGVfdGxiX2ludmFsX2lkbGUoc3Ry dWN0IHhlX3RsYl9pbnZhbCAqdGxiX2ludmFsKTsKIAoraW50IHhlX3RsYl9pbnZhbF9yYW5nZV90 aWxlbWFza19zdWJtaXQoc3RydWN0IHhlX2RldmljZSAqeGUsIHUzMiBhc2lkLAorCQkJCSAgICAg ICB1NjQgc3RhcnQsIHU2NCBlbmQsIHU4IHRpbGVfbWFzaywKKwkJCQkgICAgICAgc3RydWN0IHhl X3RsYl9pbnZhbF9iYXRjaCAqYmF0Y2gpOworCit2b2lkIHhlX3RsYl9pbnZhbF9iYXRjaF93YWl0 KHN0cnVjdCB4ZV90bGJfaW52YWxfYmF0Y2ggKmJhdGNoKTsKKwogI2VuZGlmCS8qIF9YRV9UTEJf SU5WQUxfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdGxiX2ludmFsX3R5 cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdGxiX2ludmFsX3R5cGVzLmgKaW5kZXggM2Iw ODlmOTBmMDAyLi4zZDE3OTdkMTg2ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94 ZV90bGJfaW52YWxfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdGxiX2ludmFs X3R5cGVzLmgKQEAgLTksNiArOSw4IEBACiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAj aW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CiAKKyNpbmNsdWRlICJ4ZV9kZXZpY2VfdHlwZXMu aCIKKwogc3RydWN0IGRybV9zdWJhbGxvYzsKIHN0cnVjdCB4ZV90bGJfaW52YWw7CiAKQEAgLTEz Miw0ICsxMzQsMTYgQEAgc3RydWN0IHhlX3RsYl9pbnZhbF9mZW5jZSB7CiAJa3RpbWVfdCBpbnZh bF90aW1lOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgeGVfdGxiX2ludmFsX2JhdGNoIC0gQmF0Y2gg b2YgVExCIGludmFsaWRhdGlvbiBmZW5jZXMKKyAqCisgKiBIb2xkcyBvbmUgZmVuY2UgcGVyIEdU IGNvdmVyZWQgYnkgYSBUTEIgaW52YWxpZGF0aW9uIHJlcXVlc3QuCisgKi8KK3N0cnVjdCB4ZV90 bGJfaW52YWxfYmF0Y2ggeworCS8qKiBAZmVuY2U6IHBlci1HVCBUTEIgaW52YWxpZGF0aW9uIGZl bmNlcyAqLworCXN0cnVjdCB4ZV90bGJfaW52YWxfZmVuY2UgZmVuY2VbWEVfTUFYX1RJTEVTX1BF Ul9ERVZJQ0UgKiBYRV9NQVhfR1RfUEVSX1RJTEVdOworCS8qKiBAbnVtX2ZlbmNlczogbnVtYmVy IG9mIHZhbGlkIGVudHJpZXMgaW4gQGZlbmNlICovCisJdW5zaWduZWQgaW50IG51bV9mZW5jZXM7 Cit9OworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5jIGIv ZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMKaW5kZXggNTQ4YjA3NjliM2VmLi5hM2MyZThjZWZl YzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS94ZS94ZV92bS5jCkBAIC0zOTY2LDY2ICszOTY2LDYgQEAgdm9pZCB4ZV92bV91bmxv Y2soc3RydWN0IHhlX3ZtICp2bSkKIAlkbWFfcmVzdl91bmxvY2soeGVfdm1fcmVzdih2bSkpOwog fQogCi0vKioKLSAqIHhlX3ZtX3JhbmdlX3RpbGVtYXNrX3RsYl9pbnZhbCAtIElzc3VlIGEgVExC IGludmFsaWRhdGlvbiBvbiB0aGlzIHRpbGVtYXNrIGZvciBhbgotICogYWRkcmVzcyByYW5nZQot ICogQHZtOiBUaGUgVk0KLSAqIEBzdGFydDogc3RhcnQgYWRkcmVzcwotICogQGVuZDogZW5kIGFk ZHJlc3MKLSAqIEB0aWxlX21hc2s6IG1hc2sgZm9yIHdoaWNoIGd0J3MgaXNzdWUgdGxiIGludmFs aWRhdGlvbgotICoKLSAqIElzc3VlIGEgcmFuZ2UgYmFzZWQgVExCIGludmFsaWRhdGlvbiBmb3Ig Z3QncyBpbiB0aWxlbWFzawotICoKLSAqIFJldHVybnMgMCBmb3Igc3VjY2VzcywgbmVnYXRpdmUg ZXJyb3IgY29kZSBvdGhlcndpc2UuCi0gKi8KLWludCB4ZV92bV9yYW5nZV90aWxlbWFza190bGJf aW52YWwoc3RydWN0IHhlX3ZtICp2bSwgdTY0IHN0YXJ0LAotCQkJCSAgIHU2NCBlbmQsIHU4IHRp bGVfbWFzaykKLXsKLQlzdHJ1Y3QgeGVfdGxiX2ludmFsX2ZlbmNlCi0JCWZlbmNlW1hFX01BWF9U SUxFU19QRVJfREVWSUNFICogWEVfTUFYX0dUX1BFUl9USUxFXTsKLQlzdHJ1Y3QgeGVfdGlsZSAq dGlsZTsKLQl1MzIgZmVuY2VfaWQgPSAwOwotCXU4IGlkOwotCWludCBlcnI7Ci0KLQlpZiAoIXRp bGVfbWFzaykKLQkJcmV0dXJuIDA7Ci0KLQlmb3JfZWFjaF90aWxlKHRpbGUsIHZtLT54ZSwgaWQp IHsKLQkJaWYgKCEodGlsZV9tYXNrICYgQklUKGlkKSkpCi0JCQljb250aW51ZTsKLQotCQl4ZV90 bGJfaW52YWxfZmVuY2VfaW5pdCgmdGlsZS0+cHJpbWFyeV9ndC0+dGxiX2ludmFsLAotCQkJCQkm ZmVuY2VbZmVuY2VfaWRdLCB0cnVlKTsKLQotCQllcnIgPSB4ZV90bGJfaW52YWxfcmFuZ2UoJnRp bGUtPnByaW1hcnlfZ3QtPnRsYl9pbnZhbCwKLQkJCQkJICZmZW5jZVtmZW5jZV9pZF0sIHN0YXJ0 LCBlbmQsCi0JCQkJCSB2bS0+dXNtLmFzaWQsIE5VTEwpOwotCQlpZiAoZXJyKQotCQkJZ290byB3 YWl0OwotCQkrK2ZlbmNlX2lkOwotCi0JCWlmICghdGlsZS0+bWVkaWFfZ3QpCi0JCQljb250aW51 ZTsKLQotCQl4ZV90bGJfaW52YWxfZmVuY2VfaW5pdCgmdGlsZS0+bWVkaWFfZ3QtPnRsYl9pbnZh bCwKLQkJCQkJJmZlbmNlW2ZlbmNlX2lkXSwgdHJ1ZSk7Ci0KLQkJZXJyID0geGVfdGxiX2ludmFs X3JhbmdlKCZ0aWxlLT5tZWRpYV9ndC0+dGxiX2ludmFsLAotCQkJCQkgJmZlbmNlW2ZlbmNlX2lk XSwgc3RhcnQsIGVuZCwKLQkJCQkJIHZtLT51c20uYXNpZCwgTlVMTCk7Ci0JCWlmIChlcnIpCi0J CQlnb3RvIHdhaXQ7Ci0JCSsrZmVuY2VfaWQ7Ci0JfQotCi13YWl0OgotCWZvciAoaWQgPSAwOyBp ZCA8IGZlbmNlX2lkOyArK2lkKQotCQl4ZV90bGJfaW52YWxfZmVuY2Vfd2FpdCgmZmVuY2VbaWRd KTsKLQotCXJldHVybiBlcnI7Ci19Ci0KIC8qKgogICogeGVfdm1faW52YWxpZGF0ZV92bWEgLSBp bnZhbGlkYXRlIEdQVSBtYXBwaW5ncyBmb3IgVk1BIHdpdGhvdXQgYSBsb2NrCiAgKiBAdm1hOiBW TUEgdG8gaW52YWxpZGF0ZQpAQCAtNDA0MCw2ICszOTgwLDcgQEAgaW50IHhlX3ZtX2ludmFsaWRh dGVfdm1hKHN0cnVjdCB4ZV92bWEgKnZtYSkKIHsKIAlzdHJ1Y3QgeGVfZGV2aWNlICp4ZSA9IHhl X3ZtYV92bSh2bWEpLT54ZTsKIAlzdHJ1Y3QgeGVfdm0gKnZtID0geGVfdm1hX3ZtKHZtYSk7CisJ c3RydWN0IHhlX3RsYl9pbnZhbF9iYXRjaCBiYXRjaDsKIAlzdHJ1Y3QgeGVfdGlsZSAqdGlsZTsK IAl1OCB0aWxlX21hc2sgPSAwOwogCWludCByZXQgPSAwOwpAQCAtNDA4MCwxMiArNDAyMSwxNiBA QCBpbnQgeGVfdm1faW52YWxpZGF0ZV92bWEoc3RydWN0IHhlX3ZtYSAqdm1hKQogCiAJeGVfZGV2 aWNlX3dtYih4ZSk7CiAKLQlyZXQgPSB4ZV92bV9yYW5nZV90aWxlbWFza190bGJfaW52YWwoeGVf dm1hX3ZtKHZtYSksIHhlX3ZtYV9zdGFydCh2bWEpLAotCQkJCQkgICAgIHhlX3ZtYV9lbmQodm1h KSwgdGlsZV9tYXNrKTsKKwlyZXQgPSB4ZV90bGJfaW52YWxfcmFuZ2VfdGlsZW1hc2tfc3VibWl0 KHhlLCB4ZV92bWFfdm0odm1hKS0+dXNtLmFzaWQsCisJCQkJCQkgeGVfdm1hX3N0YXJ0KHZtYSks IHhlX3ZtYV9lbmQodm1hKSwKKwkJCQkJCSB0aWxlX21hc2ssICZiYXRjaCk7CiAKIAkvKiBXUklU RV9PTkNFIHBhaXJzIHdpdGggUkVBRF9PTkNFIGluIHhlX3ZtX2hhc192YWxpZF9ncHVfbWFwcGlu ZygpICovCiAJV1JJVEVfT05DRSh2bWEtPnRpbGVfaW52YWxpZGF0ZWQsIHZtYS0+dGlsZV9tYXNr KTsKIAorCWlmICghcmV0KQorCQl4ZV90bGJfaW52YWxfYmF0Y2hfd2FpdCgmYmF0Y2gpOworCiAJ cmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmgg Yi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaAppbmRleCBmODQ5ZTM2OTQzMmIuLjYyZjRiNmZl YzBiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3hlL3hlX3ZtLmgKQEAgLTI0MCw5ICsyNDAsNiBAQCBzdHJ1Y3QgZG1hX2ZlbmNl ICp4ZV92bV9yYW5nZV9yZWJpbmQoc3RydWN0IHhlX3ZtICp2bSwKIHN0cnVjdCBkbWFfZmVuY2Ug KnhlX3ZtX3JhbmdlX3VuYmluZChzdHJ1Y3QgeGVfdm0gKnZtLAogCQkJCSAgICAgc3RydWN0IHhl X3N2bV9yYW5nZSAqcmFuZ2UpOwogCi1pbnQgeGVfdm1fcmFuZ2VfdGlsZW1hc2tfdGxiX2ludmFs KHN0cnVjdCB4ZV92bSAqdm0sIHU2NCBzdGFydCwKLQkJCQkgICB1NjQgZW5kLCB1OCB0aWxlX21h c2spOwotCiBpbnQgeGVfdm1faW52YWxpZGF0ZV92bWEoc3RydWN0IHhlX3ZtYSAqdm1hKTsKIAog aW50IHhlX3ZtX3ZhbGlkYXRlX3Byb3RlY3RlZChzdHJ1Y3QgeGVfdm0gKnZtKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV9tYWR2aXNlLmMgYi9kcml2ZXJzL2dwdS9kcm0v eGUveGVfdm1fbWFkdmlzZS5jCmluZGV4IDk1YmY1M2NjMjllMy4uMDJkYWY4YTkzMDQ0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm1fbWFkdmlzZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS94ZS94ZV92bV9tYWR2aXNlLmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlICJ4 ZV9wYXQuaCIKICNpbmNsdWRlICJ4ZV9wdC5oIgogI2luY2x1ZGUgInhlX3N2bS5oIgorI2luY2x1 ZGUgInhlX3RsYl9pbnZhbC5oIgogCiBzdHJ1Y3QgeGVfdm1hc19pbl9tYWR2aXNlX3JhbmdlIHsK IAl1NjQgYWRkcjsKQEAgLTIzNSwxMyArMjM2LDIwIEBAIHN0YXRpYyB1OCB4ZV96YXBfcHRlc19p bl9tYWR2aXNlX3JhbmdlKHN0cnVjdCB4ZV92bSAqdm0sIHU2NCBzdGFydCwgdTY0IGVuZCkKIHN0 YXRpYyBpbnQgeGVfdm1faW52YWxpZGF0ZV9tYWR2aXNlX3JhbmdlKHN0cnVjdCB4ZV92bSAqdm0s IHU2NCBzdGFydCwgdTY0IGVuZCkKIHsKIAl1OCB0aWxlX21hc2sgPSB4ZV96YXBfcHRlc19pbl9t YWR2aXNlX3JhbmdlKHZtLCBzdGFydCwgZW5kKTsKKwlzdHJ1Y3QgeGVfdGxiX2ludmFsX2JhdGNo IGJhdGNoOworCWludCBlcnI7CiAKIAlpZiAoIXRpbGVfbWFzaykKIAkJcmV0dXJuIDA7CiAKIAl4 ZV9kZXZpY2Vfd21iKHZtLT54ZSk7CiAKLQlyZXR1cm4geGVfdm1fcmFuZ2VfdGlsZW1hc2tfdGxi X2ludmFsKHZtLCBzdGFydCwgZW5kLCB0aWxlX21hc2spOworCWVyciA9IHhlX3RsYl9pbnZhbF9y YW5nZV90aWxlbWFza19zdWJtaXQodm0tPnhlLCB2bS0+dXNtLmFzaWQsIHN0YXJ0LCBlbmQsCisJ CQkJCQkgdGlsZV9tYXNrLCAmYmF0Y2gpOworCWlmICghZXJyKQorCQl4ZV90bGJfaW52YWxfYmF0 Y2hfd2FpdCgmYmF0Y2gpOworCisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGJvb2wgbWFkdmlz ZV9hcmdzX2FyZV9zYW5lKHN0cnVjdCB4ZV9kZXZpY2UgKnhlLCBjb25zdCBzdHJ1Y3QgZHJtX3hl X21hZHZpc2UgKmFyZ3MpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm1fdHlw ZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV90eXBlcy5oCmluZGV4IDFmNmY3ZTMwZTc1 MS4uZGU2NTQ0MTY1Y2ZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm1fdHlw ZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm1fdHlwZXMuaApAQCAtMTgsNiArMTgs NyBAQAogI2luY2x1ZGUgInhlX2RldmljZV90eXBlcy5oIgogI2luY2x1ZGUgInhlX3B0X3R5cGVz LmgiCiAjaW5jbHVkZSAieGVfcmFuZ2VfZmVuY2UuaCIKKyNpbmNsdWRlICJ4ZV90bGJfaW52YWxf dHlwZXMuaCIKICNpbmNsdWRlICJ4ZV91c2VycHRyLmgiCiAKIHN0cnVjdCBkcm1fcGFnZW1hcDsK LS0gCjIuNTMuMAoK