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 830DEEC1449 for ; Tue, 3 Mar 2026 13:34:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E930D10E808; Tue, 3 Mar 2026 13:34:50 +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="VrV55SL5"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD51C10E01F; Tue, 3 Mar 2026 13:34:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772544890; x=1804080890; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=YZGJmmNg3EbKAgIA+H7TuYjVTQlV24SE9m0GvRzjGaU=; b=VrV55SL5T13PKMgPWr3jOBWLf0JvQMnmp2UJjMxv9rskrufAzJ5m+NtC CLfTvkNjoRPL7LLC4LOMnVBanPgQyax1FbJu19MFWXVuk/dTkxy+VzgX4 /G8lOn/d50whZyMAkT5ibcY2cCxpCIYHZrur0K6sXDyFow0pc/e20KkkW erEaCw4tlJCukrFc8RzzIyYosPuO5borKcX8WxmVMc9xTx4z01UXLIxVA 4SZOF6tcIzJcIegttWSxeiYZkr9ciL4MUewjkTD8XTeEWqrPjFjAvHZ+u 8EE9syLLgZF2DYaarSH16Bnxm46Fuw1YY0nrh/EGqgfy4ZRGYUVXmcNue w==; X-CSE-ConnectionGUID: W+mvHULYSUSXldo79T2SVA== X-CSE-MsgGUID: S/Uy7YVqRXyHO/zawDesUg== X-IronPort-AV: E=McAfee;i="6800,10657,11718"; a="76179743" X-IronPort-AV: E=Sophos;i="6.21,322,1763452800"; d="scan'208";a="76179743" 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:49 -0800 X-CSE-ConnectionGUID: CTywUC/CSf6JJ7FeTgPsDQ== X-CSE-MsgGUID: kk11T8kIRSOKa8wVc7QN6w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,322,1763452800"; d="scan'208";a="217947927" 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:46 -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 2/4] drm/xe/userptr: Convert invalidation to two-pass MMU notifier Date: Tue, 3 Mar 2026 14:34:07 +0100 Message-ID: <20260303133409.11609-3-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" SW4gbXVsdGktR1BVIHNjZW5hcmlvcywgYXN5bmNocm9ub3VzIEdQVSBqb2IgbGF0ZW5jeSBpcyBh IGJvdHRsZW5lY2sgaWYKZWFjaCBub3RpZmllciB3YWl0cyBmb3IgaXRzIG93biBHUFUgYmVmb3Jl IHJldHVybmluZy4gVGhlIHR3by1wYXNzCm1tdV9pbnRlcnZhbF9ub3RpZmllciBpbmZyYXN0cnVj dHVyZSBhbGxvd3MgZGVmZXJyaW5nIHRoZSB3YWl0IHRvIGEKc2Vjb25kIHBhc3MsIHNvIGFsbCBH UFVzIGNhbiBiZSBzaWduYWxsZWQgaW4gdGhlIGZpcnN0IHBhc3MgYmVmb3JlCmFueSBvZiB0aGVt IGFyZSB3YWl0ZWQgb24uCgpDb252ZXJ0IHRoZSB1c2VycHRyIGludmFsaWRhdGlvbiB0byB1c2Ug dGhlIHR3by1wYXNzIG1vZGVsOgoKVXNlIGludmFsaWRhdGVfc3RhcnQgYXMgdGhlIGZpcnN0IHBh c3MgdG8gbWFyayB0aGUgVk1BIGZvciByZXBpbiBhbmQKZW5hYmxlIHNvZnR3YXJlIHNpZ25hbGxp bmcgb24gdGhlIFZNIHJlc2VydmF0aW9uIGZlbmNlcyB0byBzdGFydCBhbnkKZ3B1IHdvcmsgbmVl ZGVkIGZvciBzaWduYWxpbmcuIEZhbGwgYmFjayB0byBjb21wbGV0aW5nIHRoZSB3b3JrCnN5bmNo cm9ub3VzbHkgaWYgYWxsIGZlbmNlcyBhcmUgYWxyZWFkeSBzaWduYWxsZWQsIG9yIGlmIGEgY29u Y3VycmVudAppbnZhbGlkYXRpb24gaXMgYWxyZWFkeSB1c2luZyB0aGUgZW1iZWRkZWQgZmluaXNo IHN0cnVjdHVyZS4KClVzZSBpbnZhbGlkYXRlX2ZpbmlzaCBhcyB0aGUgc2Vjb25kIHBhc3MgdG8g d2FpdCBmb3IgdGhlIHJlc2VydmF0aW9uCmZlbmNlcyB0byBjb21wbGV0ZSwgaW52YWxpZGF0ZSB0 aGUgR1BVIFRMQiBpbiBmYXVsdCBtb2RlLCBhbmQgdW5tYXAKdGhlIGdwdXN2bSBwYWdlcy4KCkVt YmVkIGEgc3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllcl9maW5pc2ggaW4gc3RydWN0IHhlX3Vz ZXJwdHIgdG8KYXZvaWQgZHluYW1pYyBhbGxvY2F0aW9uIGluIHRoZSBub3RpZmllciBjYWxsYmFj ay4gVXNlIGEgZmluaXNoX2ludXNlCmZsYWcgdG8gcHJldmVudCB0d28gY29uY3VycmVudCBpbnZh bGlkYXRpb25zIGZyb20gdXNpbmcgaXQKc2ltdWx0YW5lb3VzbHk7IGZhbGwgYmFjayB0byB0aGUg c3luY2hyb25vdXMgcGF0aCBmb3IgdGhlIHNlY29uZCBjYWxsZXIuCgp2MzoKLSBBZGQgbG9ja2lu ZyBhc3NlcnRzIGluIG5vdGlmaWVyIGNvbXBvbmVudHMgKE1hdHQgQnJvc3QpCi0gQ2xlYW4gdXAg bmV3bGluZXMgKE1hdHQgQnJvc3QpCi0gVXBkYXRlIHRoZSB1c2VycHRyIG5vdGlmaWVyIHN0YXRl IG1lbWJlciBsb2NraW5nIGRvY3VtZW50YXRpb24KICAoTWF0dCBCcm9zdCkKCkFzc2lzdGVkLWJ5 OiBHaXRIdWIgQ29waWxvdDpjbGF1ZGUtc29ubmV0LTQuNgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMg SGVsbHN0csO2bSA8dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuYyB8IDEwOCArKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuaCB8ICAxNCArKysrLQogMiBm aWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5jIGIvZHJpdmVycy9ncHUvZHJtL3hl L3hlX3VzZXJwdHIuYwppbmRleCBlMTIwMzIzYzQzYmMuLjM3MDMyYjgxMjVhNiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v eGUveGVfdXNlcnB0ci5jCkBAIC0xMCw2ICsxMCwxNCBAQAogCiAjaW5jbHVkZSAieGVfdHJhY2Vf Ym8uaCIKIAorc3RhdGljIHZvaWQgeGVfdXNlcnB0cl9hc3NlcnRfaW5fbm90aWZpZXIoc3RydWN0 IHhlX3ZtICp2bSkKK3sKKwlsb2NrZGVwX2Fzc2VydChsb2NrZGVwX2lzX2hlbGRfdHlwZSgmdm0t PnN2bS5ncHVzdm0ubm90aWZpZXJfbG9jaywgMCkgfHwKKwkJICAgICAgIChsb2NrZGVwX2lzX2hl bGQoJnZtLT5sb2NrKSAmJgorCQkJbG9ja2RlcF9pc19oZWxkX3R5cGUoJnZtLT5zdm0uZ3B1c3Zt Lm5vdGlmaWVyX2xvY2ssIDEpICYmCisJCQlkbWFfcmVzdl9oZWxkKHhlX3ZtX3Jlc3Yodm0pKSkp OworfQorCiAvKioKICAqIHhlX3ZtYV91c2VycHRyX2NoZWNrX3JlcGluKCkgLSBBZHZpc29yeSBj aGVjayBmb3IgcmVwaW4gbmVlZGVkCiAgKiBAdXZtYTogVGhlIHVzZXJwdHIgdm1hCkBAIC03Mywx OCArODEsNDYgQEAgaW50IHhlX3ZtYV91c2VycHRyX3Bpbl9wYWdlcyhzdHJ1Y3QgeGVfdXNlcnB0 cl92bWEgKnV2bWEpCiAJCQkJICAgICZjdHgpOwogfQogCi1zdGF0aWMgdm9pZCBfX3ZtYV91c2Vy cHRyX2ludmFsaWRhdGUoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1 dm1hKQorc3RhdGljIHZvaWQgeGVfdm1hX3VzZXJwdHJfZG9faW52YWwoc3RydWN0IHhlX3ZtICp2 bSwgc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm1hLAorCQkJCSAgICBib29sIGlzX2RlZmVycmVk KQogewogCXN0cnVjdCB4ZV91c2VycHRyICp1c2VycHRyID0gJnV2bWEtPnVzZXJwdHI7CiAJc3Ry dWN0IHhlX3ZtYSAqdm1hID0gJnV2bWEtPnZtYTsKLQlzdHJ1Y3QgZG1hX3Jlc3ZfaXRlciBjdXJz b3I7Ci0Jc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJc3RydWN0IGRybV9ncHVzdm1fY3R4IGN0 eCA9IHsKIAkJLmluX25vdGlmaWVyID0gdHJ1ZSwKIAkJLnJlYWRfb25seSA9IHhlX3ZtYV9yZWFk X29ubHkodm1hKSwKIAl9OwogCWxvbmcgZXJyOwogCisJeGVfdXNlcnB0cl9hc3NlcnRfaW5fbm90 aWZpZXIodm0pOworCisJZXJyID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0KHhlX3ZtX3Jlc3Yodm0p LAorCQkJCSAgICBETUFfUkVTVl9VU0FHRV9CT09LS0VFUCwKKwkJCQkgICAgZmFsc2UsIE1BWF9T Q0hFRFVMRV9USU1FT1VUKTsKKwlYRV9XQVJOX09OKGVyciA8PSAwKTsKKworCWlmICh4ZV92bV9p bl9mYXVsdF9tb2RlKHZtKSAmJiB1c2VycHRyLT5pbml0aWFsX2JpbmQpIHsKKwkJZXJyID0geGVf dm1faW52YWxpZGF0ZV92bWEodm1hKTsKKwkJWEVfV0FSTl9PTihlcnIpOworCX0KKworCWlmIChp c19kZWZlcnJlZCkKKwkJdXNlcnB0ci0+ZmluaXNoX2ludXNlID0gZmFsc2U7CisJZHJtX2dwdXN2 bV91bm1hcF9wYWdlcygmdm0tPnN2bS5ncHVzdm0sICZ1dm1hLT51c2VycHRyLnBhZ2VzLAorCQkJ ICAgICAgIHhlX3ZtYV9zaXplKHZtYSkgPj4gUEFHRV9TSElGVCwgJmN0eCk7Cit9CisKK3N0YXRp YyBzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX2ZpbmlzaCAqCit4ZV92bWFfdXNlcnB0cl9p bnZhbGlkYXRlX3Bhc3MxKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV91c2VycHRyX3ZtYSAq dXZtYSkKK3sKKwlzdHJ1Y3QgeGVfdXNlcnB0ciAqdXNlcnB0ciA9ICZ1dm1hLT51c2VycHRyOwor CXN0cnVjdCB4ZV92bWEgKnZtYSA9ICZ1dm1hLT52bWE7CisJc3RydWN0IGRtYV9yZXN2X2l0ZXIg Y3Vyc29yOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCWJvb2wgc2lnbmFsZWQgPSB0cnVl OworCisJeGVfdXNlcnB0cl9hc3NlcnRfaW5fbm90aWZpZXIodm0pOworCiAJLyoKIAkgKiBUZWxs IGV4ZWMgYW5kIHJlYmluZCB3b3JrZXIgdGhleSBuZWVkIHRvIHJlcGluIGFuZCByZWJpbmQgdGhp cwogCSAqIHVzZXJwdHIuCkBAIC0xMDUsMjcgKzE0MSwzMiBAQCBzdGF0aWMgdm9pZCBfX3ZtYV91 c2VycHRyX2ludmFsaWRhdGUoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX3VzZXJwdHJfdm1h ICp1dgogCSAqLwogCWRtYV9yZXN2X2l0ZXJfYmVnaW4oJmN1cnNvciwgeGVfdm1fcmVzdih2bSks CiAJCQkgICAgRE1BX1JFU1ZfVVNBR0VfQk9PS0tFRVApOwotCWRtYV9yZXN2X2Zvcl9lYWNoX2Zl bmNlX3VubG9ja2VkKCZjdXJzb3IsIGZlbmNlKQorCWRtYV9yZXN2X2Zvcl9lYWNoX2ZlbmNlX3Vu bG9ja2VkKCZjdXJzb3IsIGZlbmNlKSB7CiAJCWRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5n KGZlbmNlKTsKKwkJaWYgKHNpZ25hbGVkICYmICFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2Up KQorCQkJc2lnbmFsZWQgPSBmYWxzZTsKKwl9CiAJZG1hX3Jlc3ZfaXRlcl9lbmQoJmN1cnNvcik7 CiAKLQllcnIgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXQoeGVfdm1fcmVzdih2bSksCi0JCQkJICAg IERNQV9SRVNWX1VTQUdFX0JPT0tLRUVQLAotCQkJCSAgICBmYWxzZSwgTUFYX1NDSEVEVUxFX1RJ TUVPVVQpOwotCVhFX1dBUk5fT04oZXJyIDw9IDApOwotCi0JaWYgKHhlX3ZtX2luX2ZhdWx0X21v ZGUodm0pICYmIHVzZXJwdHItPmluaXRpYWxfYmluZCkgewotCQllcnIgPSB4ZV92bV9pbnZhbGlk YXRlX3ZtYSh2bWEpOwotCQlYRV9XQVJOX09OKGVycik7CisJLyoKKwkgKiBPbmx5IG9uZSBjYWxs ZXIgYXQgYSB0aW1lIGNhbiB1c2UgdGhlIG11bHRpLXBhc3Mgc3RhdGUuCisJICogSWYgaXQncyBh bHJlYWR5IGluIHVzZSwgb3IgYWxsIGZlbmNlcyBhcmUgYWxyZWFkeSBzaWduYWxlZCwKKwkgKiBw cm9jZWVkIGRpcmVjdGx5IHRvIGludmFsaWRhdGlvbiB3aXRob3V0IGRlZmVycmluZy4KKwkgKi8K KwlpZiAoc2lnbmFsZWQgfHwgdXNlcnB0ci0+ZmluaXNoX2ludXNlKSB7CisJCXhlX3ZtYV91c2Vy cHRyX2RvX2ludmFsKHZtLCB1dm1hLCBmYWxzZSk7CisJCXJldHVybiBOVUxMOwogCX0KIAotCWRy bV9ncHVzdm1fdW5tYXBfcGFnZXMoJnZtLT5zdm0uZ3B1c3ZtLCAmdXZtYS0+dXNlcnB0ci5wYWdl cywKLQkJCSAgICAgICB4ZV92bWFfc2l6ZSh2bWEpID4+IFBBR0VfU0hJRlQsICZjdHgpOworCXVz ZXJwdHItPmZpbmlzaF9pbnVzZSA9IHRydWU7CisKKwlyZXR1cm4gJnVzZXJwdHItPmZpbmlzaDsK IH0KIAotc3RhdGljIGJvb2wgdm1hX3VzZXJwdHJfaW52YWxpZGF0ZShzdHJ1Y3QgbW11X2ludGVy dmFsX25vdGlmaWVyICptbmksCi0JCQkJICAgY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9yYW5n ZSAqcmFuZ2UsCi0JCQkJICAgdW5zaWduZWQgbG9uZyBjdXJfc2VxKQorc3RhdGljIGJvb2wgeGVf dm1hX3VzZXJwdHJfaW52YWxpZGF0ZV9zdGFydChzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVy ICptbmksCisJCQkJCSAgICBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlICpyYW5nZSwK KwkJCQkJICAgIHVuc2lnbmVkIGxvbmcgY3VyX3NlcSwKKwkJCQkJICAgIHN0cnVjdCBtbXVfaW50 ZXJ2YWxfbm90aWZpZXJfZmluaXNoICoqcF9maW5pc2gpCiB7CiAJc3RydWN0IHhlX3VzZXJwdHJf dm1hICp1dm1hID0gY29udGFpbmVyX29mKG1uaSwgdHlwZW9mKCp1dm1hKSwgdXNlcnB0ci5ub3Rp Zmllcik7CiAJc3RydWN0IHhlX3ZtYSAqdm1hID0gJnV2bWEtPnZtYTsKQEAgLTEzOCwyMSArMTc5 LDQwIEBAIHN0YXRpYyBib29sIHZtYV91c2VycHRyX2ludmFsaWRhdGUoc3RydWN0IG1tdV9pbnRl cnZhbF9ub3RpZmllciAqbW5pLAogCQlyZXR1cm4gZmFsc2U7CiAKIAl2bV9kYmcoJnhlX3ZtYV92 bSh2bWEpLT54ZS0+ZHJtLAotCSAgICAgICAiTk9USUZJRVI6IGFkZHI9MHglMDE2bGx4LCByYW5n ZT0weCUwMTZsbHgiLAorCSAgICAgICAiTk9USUZJRVIgUEFTUzE6IGFkZHI9MHglMDE2bGx4LCBy YW5nZT0weCUwMTZsbHgiLAogCQl4ZV92bWFfc3RhcnQodm1hKSwgeGVfdm1hX3NpemUodm1hKSk7 CiAKIAlkb3duX3dyaXRlKCZ2bS0+c3ZtLmdwdXN2bS5ub3RpZmllcl9sb2NrKTsKIAltbXVfaW50 ZXJ2YWxfc2V0X3NlcShtbmksIGN1cl9zZXEpOwogCi0JX192bWFfdXNlcnB0cl9pbnZhbGlkYXRl KHZtLCB1dm1hKTsKKwkqcF9maW5pc2ggPSB4ZV92bWFfdXNlcnB0cl9pbnZhbGlkYXRlX3Bhc3Mx KHZtLCB1dm1hKTsKKwogCXVwX3dyaXRlKCZ2bS0+c3ZtLmdwdXN2bS5ub3RpZmllcl9sb2NrKTsK LQl0cmFjZV94ZV92bWFfdXNlcnB0cl9pbnZhbGlkYXRlX2NvbXBsZXRlKHZtYSk7CisJaWYgKCEq cF9maW5pc2gpCisJCXRyYWNlX3hlX3ZtYV91c2VycHRyX2ludmFsaWRhdGVfY29tcGxldGUodm1h KTsKIAogCXJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdm9pZCB4ZV92bWFfdXNlcnB0cl9pbnZh bGlkYXRlX2ZpbmlzaChzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX2ZpbmlzaCAqZmluaXNo KQoreworCXN0cnVjdCB4ZV91c2VycHRyX3ZtYSAqdXZtYSA9IGNvbnRhaW5lcl9vZihmaW5pc2gs IHR5cGVvZigqdXZtYSksIHVzZXJwdHIuZmluaXNoKTsKKwlzdHJ1Y3QgeGVfdm1hICp2bWEgPSAm dXZtYS0+dm1hOworCXN0cnVjdCB4ZV92bSAqdm0gPSB4ZV92bWFfdm0odm1hKTsKKworCXZtX2Ri ZygmeGVfdm1hX3ZtKHZtYSktPnhlLT5kcm0sCisJICAgICAgICJOT1RJRklFUiBQQVNTMjogYWRk cj0weCUwMTZsbHgsIHJhbmdlPTB4JTAxNmxseCIsCisJCXhlX3ZtYV9zdGFydCh2bWEpLCB4ZV92 bWFfc2l6ZSh2bWEpKTsKKworCWRvd25fd3JpdGUoJnZtLT5zdm0uZ3B1c3ZtLm5vdGlmaWVyX2xv Y2spOworCXhlX3ZtYV91c2VycHRyX2RvX2ludmFsKHZtLCB1dm1hLCB0cnVlKTsKKwl1cF93cml0 ZSgmdm0tPnN2bS5ncHVzdm0ubm90aWZpZXJfbG9jayk7CisJdHJhY2VfeGVfdm1hX3VzZXJwdHJf aW52YWxpZGF0ZV9jb21wbGV0ZSh2bWEpOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1tdV9p bnRlcnZhbF9ub3RpZmllcl9vcHMgdm1hX3VzZXJwdHJfbm90aWZpZXJfb3BzID0gewotCS5pbnZh bGlkYXRlID0gdm1hX3VzZXJwdHJfaW52YWxpZGF0ZSwKKwkuaW52YWxpZGF0ZV9zdGFydCA9IHhl X3ZtYV91c2VycHRyX2ludmFsaWRhdGVfc3RhcnQsCisJLmludmFsaWRhdGVfZmluaXNoID0geGVf dm1hX3VzZXJwdHJfaW52YWxpZGF0ZV9maW5pc2gsCiB9OwogCiAjaWYgSVNfRU5BQkxFRChDT05G SUdfRFJNX1hFX1VTRVJQVFJfSU5WQUxfSU5KRUNUKQpAQCAtMTY0LDYgKzIyNCw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX29wcyB2bWFfdXNlcnB0cl9ub3Rp Zmllcl9vcHMgPSB7CiAgKi8KIHZvaWQgeGVfdm1hX3VzZXJwdHJfZm9yY2VfaW52YWxpZGF0ZShz dHJ1Y3QgeGVfdXNlcnB0cl92bWEgKnV2bWEpCiB7CisJc3RhdGljIHN0cnVjdCBtbXVfaW50ZXJ2 YWxfbm90aWZpZXJfZmluaXNoICpmaW5pc2g7CiAJc3RydWN0IHhlX3ZtICp2bSA9IHhlX3ZtYV92 bSgmdXZtYS0+dm1hKTsKIAogCS8qIFByb3RlY3QgYWdhaW5zdCBjb25jdXJyZW50IHVzZXJwdHIg cGlubmluZyAqLwpAQCAtMTc5LDcgKzI0MCwxMCBAQCB2b2lkIHhlX3ZtYV91c2VycHRyX2ZvcmNl X2ludmFsaWRhdGUoc3RydWN0IHhlX3VzZXJwdHJfdm1hICp1dm1hKQogCWlmICghbW11X2ludGVy dmFsX3JlYWRfcmV0cnkoJnV2bWEtPnVzZXJwdHIubm90aWZpZXIsCiAJCQkJICAgICB1dm1hLT51 c2VycHRyLnBhZ2VzLm5vdGlmaWVyX3NlcSkpCiAJCXV2bWEtPnVzZXJwdHIucGFnZXMubm90aWZp ZXJfc2VxIC09IDI7Ci0JX192bWFfdXNlcnB0cl9pbnZhbGlkYXRlKHZtLCB1dm1hKTsKKworCWZp bmlzaCA9IHhlX3ZtYV91c2VycHRyX2ludmFsaWRhdGVfcGFzczEodm0sIHV2bWEpOworCWlmIChm aW5pc2gpCisJCXhlX3ZtYV91c2VycHRyX2RvX2ludmFsKHZtLCB1dm1hLCB0cnVlKTsKIH0KICNl bmRpZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5oIGIvZHJp dmVycy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuaAppbmRleCBlZjgwMTIzNDk5MWUuLmUxODMwYzJm NWZkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3VzZXJwdHIuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0veGUveGVfdXNlcnB0ci5oCkBAIC01Niw3ICs1NiwxOSBAQCBzdHJ1Y3Qg eGVfdXNlcnB0ciB7CiAJICogQG5vdGlmaWVyOiBNTVUgbm90aWZpZXIgZm9yIHVzZXIgcG9pbnRl ciAoaW52YWxpZGF0aW9uIGNhbGwgYmFjaykKIAkgKi8KIAlzdHJ1Y3QgbW11X2ludGVydmFsX25v dGlmaWVyIG5vdGlmaWVyOwotCisJLyoqCisJICogQGZpbmlzaDogTU1VIG5vdGlmaWVyIGZpbmlz aCBzdHJ1Y3R1cmUgZm9yIHR3by1wYXNzIGludmFsaWRhdGlvbi4KKwkgKiBFbWJlZGRlZCBoZXJl IHRvIGF2b2lkIGFsbG9jYXRpb24gaW4gdGhlIG5vdGlmaWVyIGNhbGxiYWNrLgorCSAqIFByb3Rl Y3RlZCBieSBzdHJ1Y3QgeGVfdm06OnN2bS5ncHVzdm0ubm90aWZpZXJfbG9jayBpbiB3cml0ZSBt b2RlCisJICogYWx0ZXJuYXRpdmVseSBieSB0aGUgc2FtZSBsb2NrIGluIHJlYWQgbW9kZSAqYW5k KiB0aGUgdm0gcmVzdiBoZWxkLgorCSAqLworCXN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXJf ZmluaXNoIGZpbmlzaDsKKwkvKioKKwkgKiBAZmluaXNoX2ludXNlOiBXaGV0aGVyIEBmaW5pc2gg aXMgY3VycmVudGx5IGluIHVzZSBieSBhbiBpbi1wcm9ncmVzcworCSAqIHR3by1wYXNzIGludmFs aWRhdGlvbi4KKwkgKiBQcm90ZWN0ZWQgdXNpbmcgdGhlIHNhbWUgbG9ja2luZyBhcyBAZmluaXNo LgorCSAqLworCWJvb2wgZmluaXNoX2ludXNlOwogCS8qKgogCSAqIEBpbml0aWFsX2JpbmQ6IHVz ZXIgcG9pbnRlciBoYXMgYmVlbiBib3VuZCBhdCBsZWFzdCBvbmNlLgogCSAqIHdyaXRlOiB2bS0+ c3ZtLmdwdXN2bS5ub3RpZmllcl9sb2NrIGluIHJlYWQgbW9kZSBhbmQgdm0tPnJlc3YgaGVsZC4K LS0gCjIuNTMuMAoK