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 6A33CEA4E3E for ; Mon, 2 Mar 2026 16:33:19 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0E6F610E564; Mon, 2 Mar 2026 16:33:17 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="WSjMvcuh"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) by gabe.freedesktop.org (Postfix) with ESMTPS id A114510E559; Mon, 2 Mar 2026 16:33:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772469195; x=1804005195; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xybYJgKcjIrQv217e/P+1Z/wnP7KMdw9tzTC5IHcWI4=; b=WSjMvcuhwR06HWo8Azk/rAMeNL+R9lboSTtTDukAvJ7jXOkLGkO6leID nVVgeFfvjwxUyvQieVU0ATbvzQnZFGrgDYjuxgFgGJ1eYgA2q+5e9YJaB +JXd8FhX7yJ9u9XZgV7H9E6QhuJ6Kov0HU948tBqlyM/1ZFFD+QcbKPWM lAWMbaftO0OwksYtV89qyed1QPYK/xLPySbXByI5GrhGpaw9PUNvO9gAy eKRNhD6UXo+ejJI+VFPtKEVy1s6YkNW58Z2RnXkyYrcMEUa9qojmC7ITi FFVdCYOFemSN6frwy7JSvhzqn0AJRnwim2UUbl8N4nk2DAozEqY5h6/16 Q==; X-CSE-ConnectionGUID: eHWk2XRyQ7SqbWs7wPuvbw== X-CSE-MsgGUID: Mnj+MwloQsK1bn1G3dOXig== X-IronPort-AV: E=McAfee;i="6800,10657,11717"; a="73447844" X-IronPort-AV: E=Sophos;i="6.21,320,1763452800"; d="scan'208";a="73447844" 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:15 -0800 X-CSE-ConnectionGUID: HyEPAEjNRT+ouo20DbAkTw== X-CSE-MsgGUID: wN2u68H7QY274Oz8dz2kMw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,320,1763452800"; d="scan'208";a="255564528" 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:13 -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 2/4] drm/xe/userptr: Convert invalidation to two-pass MMU notifier Date: Mon, 2 Mar 2026 17:32:46 +0100 Message-ID: <20260302163248.105454-3-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" SW4gbXVsdGktR1BVIHNjZW5hcmlvcywgYXN5bmNocm9ub3VzIEdQVSBqb2IgbGF0ZW5jeSBpcyBh IGJvdHRsZW5lY2sgaWYKZWFjaCBub3RpZmllciB3YWl0cyBmb3IgaXRzIG93biBHUFUgYmVmb3Jl IHJldHVybmluZy4gVGhlIHR3by1wYXNzCm1tdV9pbnRlcnZhbF9ub3RpZmllciBpbmZyYXN0cnVj dHVyZSBhbGxvd3MgZGVmZXJyaW5nIHRoZSB3YWl0IHRvIGEKc2Vjb25kIHBhc3MsIHNvIGFsbCBH UFVzIGNhbiBiZSBzaWduYWxsZWQgaW4gdGhlIGZpcnN0IHBhc3MgYmVmb3JlCmFueSBvZiB0aGVt IGFyZSB3YWl0ZWQgb24uCgpDb252ZXJ0IHRoZSB1c2VycHRyIGludmFsaWRhdGlvbiB0byB1c2Ug dGhlIHR3by1wYXNzIG1vZGVsOgoKVXNlIGludmFsaWRhdGVfc3RhcnQgYXMgdGhlIGZpcnN0IHBh c3MgdG8gbWFyayB0aGUgVk1BIGZvciByZXBpbiBhbmQKZW5hYmxlIHNvZnR3YXJlIHNpZ25hbGxp bmcgb24gdGhlIFZNIHJlc2VydmF0aW9uIGZlbmNlcyB0byBzdGFydCBhbnkKZ3B1IHdvcmsgbmVl ZGVkIGZvciBzaWduYWxpbmcuIEZhbGwgYmFjayB0byBjb21wbGV0aW5nIHRoZSB3b3JrCnN5bmNo cm9ub3VzbHkgaWYgYWxsIGZlbmNlcyBhcmUgYWxyZWFkeSBzaWduYWxsZWQsIG9yIGlmIGEgY29u Y3VycmVudAppbnZhbGlkYXRpb24gaXMgYWxyZWFkeSB1c2luZyB0aGUgZW1iZWRkZWQgZmluaXNo IHN0cnVjdHVyZS4KClVzZSBpbnZhbGlkYXRlX2ZpbmlzaCBhcyB0aGUgc2Vjb25kIHBhc3MgdG8g d2FpdCBmb3IgdGhlIHJlc2VydmF0aW9uCmZlbmNlcyB0byBjb21wbGV0ZSwgaW52YWxpZGF0ZSB0 aGUgR1BVIFRMQiBpbiBmYXVsdCBtb2RlLCBhbmQgdW5tYXAKdGhlIGdwdXN2bSBwYWdlcy4KCkVt YmVkIGEgc3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllcl9maW5pc2ggaW4gc3RydWN0IHhlX3Vz ZXJwdHIgdG8KYXZvaWQgZHluYW1pYyBhbGxvY2F0aW9uIGluIHRoZSBub3RpZmllciBjYWxsYmFj ay4gVXNlIGEgZmluaXNoX2ludXNlCmZsYWcgdG8gcHJldmVudCB0d28gY29uY3VycmVudCBpbnZh bGlkYXRpb25zIGZyb20gdXNpbmcgaXQKc2ltdWx0YW5lb3VzbHk7IGZhbGwgYmFjayB0byB0aGUg c3luY2hyb25vdXMgcGF0aCBmb3IgdGhlIHNlY29uZCBjYWxsZXIuCgpBc3Npc3RlZC1ieTogR2l0 SHViIENvcGlsb3Q6Y2xhdWRlLXNvbm5ldC00LjYKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxz dHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS94ZS94ZV91c2VycHRyLmMgfCA5NiArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV91c2VycHRyLmggfCAxNCArKysrKwogMiBmaWxlcyBj aGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3Vz ZXJwdHIuYwppbmRleCBlMTIwMzIzYzQzYmMuLjQ0MGIwYTc5ZDE2ZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVf dXNlcnB0ci5jCkBAIC03MywxOCArNzMsNDIgQEAgaW50IHhlX3ZtYV91c2VycHRyX3Bpbl9wYWdl cyhzdHJ1Y3QgeGVfdXNlcnB0cl92bWEgKnV2bWEpCiAJCQkJICAgICZjdHgpOwogfQogCi1zdGF0 aWMgdm9pZCBfX3ZtYV91c2VycHRyX2ludmFsaWRhdGUoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0 IHhlX3VzZXJwdHJfdm1hICp1dm1hKQorc3RhdGljIHZvaWQgeGVfdm1hX3VzZXJwdHJfZG9faW52 YWwoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm1hLAorCQkJCSAg ICBib29sIGlzX2RlZmVycmVkKQogewogCXN0cnVjdCB4ZV91c2VycHRyICp1c2VycHRyID0gJnV2 bWEtPnVzZXJwdHI7CiAJc3RydWN0IHhlX3ZtYSAqdm1hID0gJnV2bWEtPnZtYTsKLQlzdHJ1Y3Qg ZG1hX3Jlc3ZfaXRlciBjdXJzb3I7Ci0Jc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJc3RydWN0 IGRybV9ncHVzdm1fY3R4IGN0eCA9IHsKIAkJLmluX25vdGlmaWVyID0gdHJ1ZSwKIAkJLnJlYWRf b25seSA9IHhlX3ZtYV9yZWFkX29ubHkodm1hKSwKIAl9OwogCWxvbmcgZXJyOwogCisJZXJyID0g ZG1hX3Jlc3Zfd2FpdF90aW1lb3V0KHhlX3ZtX3Jlc3Yodm0pLAorCQkJCSAgICBETUFfUkVTVl9V U0FHRV9CT09LS0VFUCwKKwkJCQkgICAgZmFsc2UsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKKwlY RV9XQVJOX09OKGVyciA8PSAwKTsKKworCWlmICh4ZV92bV9pbl9mYXVsdF9tb2RlKHZtKSAmJiB1 c2VycHRyLT5pbml0aWFsX2JpbmQpIHsKKwkJZXJyID0geGVfdm1faW52YWxpZGF0ZV92bWEodm1h KTsKKwkJWEVfV0FSTl9PTihlcnIpOworCX0KKworCWlmIChpc19kZWZlcnJlZCkKKwkJdXNlcnB0 ci0+ZmluaXNoX2ludXNlID0gZmFsc2U7CisJZHJtX2dwdXN2bV91bm1hcF9wYWdlcygmdm0tPnN2 bS5ncHVzdm0sICZ1dm1hLT51c2VycHRyLnBhZ2VzLAorCQkJICAgICAgIHhlX3ZtYV9zaXplKHZt YSkgPj4gUEFHRV9TSElGVCwgJmN0eCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbW11X2ludGVydmFs X25vdGlmaWVyX2ZpbmlzaCAqCit4ZV92bWFfdXNlcnB0cl9pbnZhbGlkYXRlX3Bhc3MxKHN0cnVj dCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV91c2VycHRyX3ZtYSAqdXZtYSkKK3sKKwlzdHJ1Y3QgeGVf dXNlcnB0ciAqdXNlcnB0ciA9ICZ1dm1hLT51c2VycHRyOworCXN0cnVjdCB4ZV92bWEgKnZtYSA9 ICZ1dm1hLT52bWE7CisJc3RydWN0IGRtYV9yZXN2X2l0ZXIgY3Vyc29yOworCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlOworCWJvb2wgc2lnbmFsZWQgPSB0cnVlOworCiAJLyoKIAkgKiBUZWxsIGV4 ZWMgYW5kIHJlYmluZCB3b3JrZXIgdGhleSBuZWVkIHRvIHJlcGluIGFuZCByZWJpbmQgdGhpcwog CSAqIHVzZXJwdHIuCkBAIC0xMDUsMjcgKzEyOSwzMiBAQCBzdGF0aWMgdm9pZCBfX3ZtYV91c2Vy cHRyX2ludmFsaWRhdGUoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1 dgogCSAqLwogCWRtYV9yZXN2X2l0ZXJfYmVnaW4oJmN1cnNvciwgeGVfdm1fcmVzdih2bSksCiAJ CQkgICAgRE1BX1JFU1ZfVVNBR0VfQk9PS0tFRVApOwotCWRtYV9yZXN2X2Zvcl9lYWNoX2ZlbmNl X3VubG9ja2VkKCZjdXJzb3IsIGZlbmNlKQorCWRtYV9yZXN2X2Zvcl9lYWNoX2ZlbmNlX3VubG9j a2VkKCZjdXJzb3IsIGZlbmNlKSB7CiAJCWRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKGZl bmNlKTsKKwkJaWYgKHNpZ25hbGVkICYmICFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQor CQkJc2lnbmFsZWQgPSBmYWxzZTsKKwl9CiAJZG1hX3Jlc3ZfaXRlcl9lbmQoJmN1cnNvcik7CiAK LQllcnIgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXQoeGVfdm1fcmVzdih2bSksCi0JCQkJICAgIERN QV9SRVNWX1VTQUdFX0JPT0tLRUVQLAotCQkJCSAgICBmYWxzZSwgTUFYX1NDSEVEVUxFX1RJTUVP VVQpOwotCVhFX1dBUk5fT04oZXJyIDw9IDApOwotCi0JaWYgKHhlX3ZtX2luX2ZhdWx0X21vZGUo dm0pICYmIHVzZXJwdHItPmluaXRpYWxfYmluZCkgewotCQllcnIgPSB4ZV92bV9pbnZhbGlkYXRl X3ZtYSh2bWEpOwotCQlYRV9XQVJOX09OKGVycik7CisJLyoKKwkgKiBPbmx5IG9uZSBjYWxsZXIg YXQgYSB0aW1lIGNhbiB1c2UgdGhlIG11bHRpLXBhc3Mgc3RhdGUuCisJICogSWYgaXQncyBhbHJl YWR5IGluIHVzZSwgb3IgYWxsIGZlbmNlcyBhcmUgYWxyZWFkeSBzaWduYWxlZCwKKwkgKiBwcm9j ZWVkIGRpcmVjdGx5IHRvIGludmFsaWRhdGlvbiB3aXRob3V0IGRlZmVycmluZy4KKwkgKi8KKwlp ZiAoc2lnbmFsZWQgfHwgdXNlcnB0ci0+ZmluaXNoX2ludXNlKSB7CisJCXhlX3ZtYV91c2VycHRy X2RvX2ludmFsKHZtLCB1dm1hLCBmYWxzZSk7CisJCXJldHVybiBOVUxMOwogCX0KIAotCWRybV9n cHVzdm1fdW5tYXBfcGFnZXMoJnZtLT5zdm0uZ3B1c3ZtLCAmdXZtYS0+dXNlcnB0ci5wYWdlcywK LQkJCSAgICAgICB4ZV92bWFfc2l6ZSh2bWEpID4+IFBBR0VfU0hJRlQsICZjdHgpOworCXVzZXJw dHItPmZpbmlzaF9pbnVzZSA9IHRydWU7CisKKwlyZXR1cm4gJnVzZXJwdHItPmZpbmlzaDsKIH0K IAotc3RhdGljIGJvb2wgdm1hX3VzZXJwdHJfaW52YWxpZGF0ZShzdHJ1Y3QgbW11X2ludGVydmFs X25vdGlmaWVyICptbmksCi0JCQkJICAgY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSAq cmFuZ2UsCi0JCQkJICAgdW5zaWduZWQgbG9uZyBjdXJfc2VxKQorc3RhdGljIGJvb2wgeGVfdm1h X3VzZXJwdHJfaW52YWxpZGF0ZV9zdGFydChzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyICpt bmksCisJCQkJCSAgICBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlICpyYW5nZSwKKwkJ CQkJICAgIHVuc2lnbmVkIGxvbmcgY3VyX3NlcSwKKwkJCQkJICAgIHN0cnVjdCBtbXVfaW50ZXJ2 YWxfbm90aWZpZXJfZmluaXNoICoqcF9maW5pc2gpCiB7CiAJc3RydWN0IHhlX3VzZXJwdHJfdm1h ICp1dm1hID0gY29udGFpbmVyX29mKG1uaSwgdHlwZW9mKCp1dm1hKSwgdXNlcnB0ci5ub3RpZmll cik7CiAJc3RydWN0IHhlX3ZtYSAqdm1hID0gJnV2bWEtPnZtYTsKQEAgLTEzOCwyMSArMTY3LDQw IEBAIHN0YXRpYyBib29sIHZtYV91c2VycHRyX2ludmFsaWRhdGUoc3RydWN0IG1tdV9pbnRlcnZh bF9ub3RpZmllciAqbW5pLAogCQlyZXR1cm4gZmFsc2U7CiAKIAl2bV9kYmcoJnhlX3ZtYV92bSh2 bWEpLT54ZS0+ZHJtLAotCSAgICAgICAiTk9USUZJRVI6IGFkZHI9MHglMDE2bGx4LCByYW5nZT0w eCUwMTZsbHgiLAorCSAgICAgICAiTk9USUZJRVIgUEFTUzE6IGFkZHI9MHglMDE2bGx4LCByYW5n ZT0weCUwMTZsbHgiLAogCQl4ZV92bWFfc3RhcnQodm1hKSwgeGVfdm1hX3NpemUodm1hKSk7CiAK IAlkb3duX3dyaXRlKCZ2bS0+c3ZtLmdwdXN2bS5ub3RpZmllcl9sb2NrKTsKIAltbXVfaW50ZXJ2 YWxfc2V0X3NlcShtbmksIGN1cl9zZXEpOwogCi0JX192bWFfdXNlcnB0cl9pbnZhbGlkYXRlKHZt LCB1dm1hKTsKKwkqcF9maW5pc2ggPSB4ZV92bWFfdXNlcnB0cl9pbnZhbGlkYXRlX3Bhc3MxKHZt LCB1dm1hKTsKKwogCXVwX3dyaXRlKCZ2bS0+c3ZtLmdwdXN2bS5ub3RpZmllcl9sb2NrKTsKLQl0 cmFjZV94ZV92bWFfdXNlcnB0cl9pbnZhbGlkYXRlX2NvbXBsZXRlKHZtYSk7CisJaWYgKCEqcF9m aW5pc2gpCisJCXRyYWNlX3hlX3ZtYV91c2VycHRyX2ludmFsaWRhdGVfY29tcGxldGUodm1hKTsK IAogCXJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdm9pZCB4ZV92bWFfdXNlcnB0cl9pbnZhbGlk YXRlX2ZpbmlzaChzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX2ZpbmlzaCAqZmluaXNoKQor eworCXN0cnVjdCB4ZV91c2VycHRyX3ZtYSAqdXZtYSA9IGNvbnRhaW5lcl9vZihmaW5pc2gsIHR5 cGVvZigqdXZtYSksIHVzZXJwdHIuZmluaXNoKTsKKwlzdHJ1Y3QgeGVfdm1hICp2bWEgPSAmdXZt YS0+dm1hOworCXN0cnVjdCB4ZV92bSAqdm0gPSB4ZV92bWFfdm0odm1hKTsKKworCXZtX2RiZygm eGVfdm1hX3ZtKHZtYSktPnhlLT5kcm0sCisJICAgICAgICJOT1RJRklFUiBQQVNTMjogYWRkcj0w eCUwMTZsbHgsIHJhbmdlPTB4JTAxNmxseCIsCisJCXhlX3ZtYV9zdGFydCh2bWEpLCB4ZV92bWFf c2l6ZSh2bWEpKTsKKworCWRvd25fd3JpdGUoJnZtLT5zdm0uZ3B1c3ZtLm5vdGlmaWVyX2xvY2sp OworCXhlX3ZtYV91c2VycHRyX2RvX2ludmFsKHZtLCB1dm1hLCB0cnVlKTsKKwl1cF93cml0ZSgm dm0tPnN2bS5ncHVzdm0ubm90aWZpZXJfbG9jayk7CisJdHJhY2VfeGVfdm1hX3VzZXJwdHJfaW52 YWxpZGF0ZV9jb21wbGV0ZSh2bWEpOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1tdV9pbnRl cnZhbF9ub3RpZmllcl9vcHMgdm1hX3VzZXJwdHJfbm90aWZpZXJfb3BzID0gewotCS5pbnZhbGlk YXRlID0gdm1hX3VzZXJwdHJfaW52YWxpZGF0ZSwKKwkuaW52YWxpZGF0ZV9zdGFydCA9IHhlX3Zt YV91c2VycHRyX2ludmFsaWRhdGVfc3RhcnQsCisJLmludmFsaWRhdGVfZmluaXNoID0geGVfdm1h X3VzZXJwdHJfaW52YWxpZGF0ZV9maW5pc2gsCiB9OwogCiAjaWYgSVNfRU5BQkxFRChDT05GSUdf RFJNX1hFX1VTRVJQVFJfSU5WQUxfSU5KRUNUKQpAQCAtMTY0LDYgKzIxMiw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX29wcyB2bWFfdXNlcnB0cl9ub3RpZmll cl9vcHMgPSB7CiAgKi8KIHZvaWQgeGVfdm1hX3VzZXJwdHJfZm9yY2VfaW52YWxpZGF0ZShzdHJ1 Y3QgeGVfdXNlcnB0cl92bWEgKnV2bWEpCiB7CisJc3RhdGljIHN0cnVjdCBtbXVfaW50ZXJ2YWxf bm90aWZpZXJfZmluaXNoICpmaW5pc2g7CiAJc3RydWN0IHhlX3ZtICp2bSA9IHhlX3ZtYV92bSgm dXZtYS0+dm1hKTsKIAogCS8qIFByb3RlY3QgYWdhaW5zdCBjb25jdXJyZW50IHVzZXJwdHIgcGlu bmluZyAqLwpAQCAtMTc5LDcgKzIyOCwxMCBAQCB2b2lkIHhlX3ZtYV91c2VycHRyX2ZvcmNlX2lu dmFsaWRhdGUoc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm1hKQogCWlmICghbW11X2ludGVydmFs X3JlYWRfcmV0cnkoJnV2bWEtPnVzZXJwdHIubm90aWZpZXIsCiAJCQkJICAgICB1dm1hLT51c2Vy cHRyLnBhZ2VzLm5vdGlmaWVyX3NlcSkpCiAJCXV2bWEtPnVzZXJwdHIucGFnZXMubm90aWZpZXJf c2VxIC09IDI7Ci0JX192bWFfdXNlcnB0cl9pbnZhbGlkYXRlKHZtLCB1dm1hKTsKKworCWZpbmlz aCA9IHhlX3ZtYV91c2VycHRyX2ludmFsaWRhdGVfcGFzczEodm0sIHV2bWEpOworCWlmIChmaW5p c2gpCisJCXhlX3ZtYV91c2VycHRyX2RvX2ludmFsKHZtLCB1dm1hLCB0cnVlKTsKIH0KICNlbmRp ZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5oIGIvZHJpdmVy cy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuaAppbmRleCBlZjgwMTIzNDk5MWUuLjRmNDJkYjYxZmQ2 MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5oCkBAIC01NywxMiArNTcsMjYgQEAgc3RydWN0IHhl X3VzZXJwdHIgewogCSAqLwogCXN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXIgbm90aWZpZXI7 CiAKKwkvKioKKwkgKiBAZmluaXNoOiBNTVUgbm90aWZpZXIgZmluaXNoIHN0cnVjdHVyZSBmb3Ig dHdvLXBhc3MgaW52YWxpZGF0aW9uLgorCSAqIEVtYmVkZGVkIGhlcmUgdG8gYXZvaWQgYWxsb2Nh dGlvbiBpbiB0aGUgbm90aWZpZXIgY2FsbGJhY2suCisJICogUHJvdGVjdGVkIGJ5IEB2bTo6c3Zt LmdwdXN2bS5ub3RpZmllcl9sb2NrLgorCSAqLworCXN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZp ZXJfZmluaXNoIGZpbmlzaDsKKwkvKioKKwkgKiBAZmluaXNoX2ludXNlOiBXaGV0aGVyIEBmaW5p c2ggaXMgY3VycmVudGx5IGluIHVzZSBieSBhbiBpbi1wcm9ncmVzcworCSAqIHR3by1wYXNzIGlu dmFsaWRhdGlvbi4KKwkgKiBQcm90ZWN0ZWQgYnkgQHZtOjpzdm0uZ3B1c3ZtLm5vdGlmaWVyX2xv Y2suCisJICovCisJYm9vbCBmaW5pc2hfaW51c2U7CisKIAkvKioKIAkgKiBAaW5pdGlhbF9iaW5k OiB1c2VyIHBvaW50ZXIgaGFzIGJlZW4gYm91bmQgYXQgbGVhc3Qgb25jZS4KIAkgKiB3cml0ZTog dm0tPnN2bS5ncHVzdm0ubm90aWZpZXJfbG9jayBpbiByZWFkIG1vZGUgYW5kIHZtLT5yZXN2IGhl bGQuCiAJICogcmVhZDogdm0tPnN2bS5ncHVzdm0ubm90aWZpZXJfbG9jayBpbiB3cml0ZSBtb2Rl IG9yIHZtLT5yZXN2IGhlbGQuCiAJICovCiAJYm9vbCBpbml0aWFsX2JpbmQ7CisKICNpZiBJU19F TkFCTEVEKENPTkZJR19EUk1fWEVfVVNFUlBUUl9JTlZBTF9JTkpFQ1QpCiAJdTMyIGRpdmlzb3I7 CiAjZW5kaWYKLS0gCjIuNTMuMAoK