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 74D1AEC1449 for ; Tue, 3 Mar 2026 13:34:49 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C84E410E7FB; Tue, 3 Mar 2026 13:34:48 +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="OBPiYohH"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 62B8210E10B; Tue, 3 Mar 2026 13:34:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772544887; x=1804080887; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=YYM77PWEsZvPf9BMtWUsHxAlnv4gCoCbFenb5zHX8Es=; b=OBPiYohHhHLd3KgjEQmY3wQj73A+ZQu16PKyhyqnzhKGXAxRRs8TVyg7 ojbKJaygc6zQaYohGSApK9G1uehR2LYZiFTp/OTKBYKfe6pdZIoJIkcc9 Uu2hJweIoiu9uAmOVKKHb12SHdtYDEQdNg1xZwSdArjXw2XcUdZrBjTkL sa/jRrOaDLzmxX3YBLQmb8b7n9SDhDk3W2obti1Wu+L5K1hxPnvNjFIyV qK1IS4Cc39XoKHLN5QqGuDdn9wtEkUVr1buSGn2sgtoxAZyvOKYqrUmiJ 1mqf6GjA9PzKff/u6xik6fI/v+slZG590JZBLoPXid3j+NV/ovKumboCZ Q==; X-CSE-ConnectionGUID: aJ7QqZyzSkuRs8s1ImNMBA== X-CSE-MsgGUID: pgaW2nqZRQ2F/3mBhF3SYg== X-IronPort-AV: E=McAfee;i="6800,10657,11718"; a="76179730" X-IronPort-AV: E=Sophos;i="6.21,322,1763452800"; d="scan'208";a="76179730" 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:46 -0800 X-CSE-ConnectionGUID: 74z5+D3oTEKuhONNOtvVIA== X-CSE-MsgGUID: i5vZ0K2jRViYn8lB0SnNTg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,322,1763452800"; d="scan'208";a="217947917" 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:43 -0800 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-xe@lists.freedesktop.org Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Jason Gunthorpe , Andrew Morton , Simona Vetter , Dave Airlie , Alistair Popple , dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Matthew Brost , =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH v3 1/4] mm/mmu_notifier: Allow two-pass struct mmu_interval_notifiers Date: Tue, 3 Mar 2026 14:34:06 +0100 Message-ID: <20260303133409.11609-2-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" R1BVIHVzZS1jYXNlcyBmb3IgbW11X2ludGVydmFsX25vdGlmaWVycyB3aXRoIGhtbSBvZnRlbiBp bnZvbHZlCnN0YXJ0aW5nIGEgZ3B1IG9wZXJhdGlvbiBhbmQgdGhlbiB3YWl0aW5nIGZvciBpdCB0 byBjb21wbGV0ZS4KVGhlc2Ugb3BlcmF0aW9ucyBhcmUgdHlwaWNhbGx5IGNvbnRleHQgcHJlZW1w dGlvbiBvciBUTEIgZmx1c2hpbmcuCgpXaXRoIHNpbmdsZS1wYXNzIG5vdGlmaWVycyBwZXIgR1BV IHRoaXMgZG9lc24ndCBzY2FsZSBpbgptdWx0aS1ncHUgc2NlbmFyaW9zLiBJbiB0aG9zZSBzY2Vu YXJpb3Mgd2UnZCB3YW50IHRvIGZpcnN0IHN0YXJ0CnByZWVtcHRpb24tIG9yIFRMQiBmbHVzaGlu ZyBvbiBhbGwgR1BVcyBhbmQgYXMgYSBzZWNvbmQgcGFzcyB3YWl0CmZvciB0aGVtIHRvIGNvbXBs ZXRlLgoKT25lIGNhbiBkbyB0aGlzIG9uIHBlci1kcml2ZXIgYmFzaXMgbXVsdGlwbGV4aW5nIHBl ci1kcml2ZXIKbm90aWZpZXJzIGJ1dCB0aGF0IHdvdWxkIG1lYW4gc2hhcmluZyB0aGUgbm90aWZp ZXIgInVzZXIiIGxvY2sKYWNyb3NzIGFsbCBHUFVzIGFuZCB0aGF0IGRvZXNuJ3Qgc2NhbGUgd2Vs bCBlaXRoZXIsIHNvIGFkZGluZyBzdXBwb3J0CmZvciBtdWx0aS1wYXNzIGluIHRoZSBjb3JlIGFw cGVhcnMgdG8gYmUgdGhlIHJpZ2h0IGNob2ljZS4KCkltcGxlbWVudCB0d28tcGFzcyBjYXBhYmls aXR5IGluIHRoZSBtbXVfaW50ZXJ2YWxfbm90aWZpZXIuIFVzZSBhCmxpbmtlZCBsaXN0IGZvciB0 aGUgZmluYWwgcGFzc2VzIHRvIG1pbmltaXplIHRoZSBpbXBhY3QgZm9yCnVzZS1jYXNlcyB0aGF0 IGRvbid0IG5lZWQgdGhlIG11bHRpLXBhc3MgZnVuY3Rpb25hbGl0eSBieSBhdm9pZGluZwphIHNl Y29uZCBpbnRlcnZhbCB0cmVlIHdhbGssIGFuZCB0byBiZSBhYmxlIHRvIGVhc2lseSBwYXNzIGRh dGEKYmV0d2VlbiB0aGUgdHdvIHBhc3Nlcy4KCnYxOgotIFJlc3RyaWN0IHRvIHR3byBwYXNzZXMg KEphc29uIEd1bnRob3JwZSkKLSBJbXByb3ZlIG9uIGRvY3VtZW50YXRpb24gKEphc29uIEd1bnRo b3JwZSkKLSBJbXByb3ZlIG9uIGZ1bmN0aW9uIG5hbWluZyAoQWxpc3RhaXIgUG9wcGxlKQp2MjoK LSBJbmNsdWRlIHRoZSBpbnZhbGlkYXRlX2ZpbmlzaCgpIGNhbGxiYWNrIGluIHRoZQogIHN0cnVj dCBtbXVfaW50ZXJ2YWxfbm90aWZpZXJfb3BzLgotIFVwZGF0ZSBkb2N1bWVudGF0aW9uIChHaXRI dWIgQ29waWxvdDpjbGF1ZGUtc29ubmV0LTQuNikKLSBVc2UgbG9ja2xlc3MgbGlzdCBmb3IgbGlz dCBtYW5hZ2VtZW50Lgp2MzoKLSBVcGRhdGUga2VybmVsZG9jIGZvciB0aGUgc3RydWN0IG1tdV9p bnRlcnZhbF9ub3RpZmllcl9maW5pc2g6Omxpc3QgbWVtYmVyCiAgKE1hdHRoZXcgQnJvc3QpCi0g QWRkIGEgV0FSTl9PTl9PTkNFKCkgY2hlY2tpbmcgZm9yIE5VTEwgaW52YWxpZGF0ZV9maW5pc2go KSBvcCBpZgogIGlmIGludmFsaWRhdGVfc3RhcnQoKSBpcyBub24tTlVMTC4gKE1hdHRoZXcgQnJv c3QpCgpDYzogSmFzb24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+CkNjOiBBbmRyZXcgTW9ydG9u IDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpDYzogU2ltb25hIFZldHRlciA8c2ltb25hLnZl dHRlckBmZndsbC5jaD4KQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQGdtYWlsLmNvbT4KQ2M6IEFs aXN0YWlyIFBvcHBsZSA8YXBvcHBsZUBudmlkaWEuY29tPgpDYzogPGRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmc+CkNjOiA8bGludXgtbW1Aa3ZhY2sub3JnPgpDYzogPGxpbnV4LWtlcm5l bEB2Z2VyLmtlcm5lbC5vcmc+CgpBc3Npc3RlZC1ieTogR2l0SHViIENvcGlsb3Q6Y2xhdWRlLXNv bm5ldC00LjYgIyBEb2N1bWVudGF0aW9uIG9ubHkuClNpZ25lZC1vZmYtYnk6IFRob21hcyBIZWxs c3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KLS0tCiBpbmNsdWRlL2xp bnV4L21tdV9ub3RpZmllci5oIHwgMzggKysrKysrKysrKysrKysrKysrKysrCiBtbS9tbXVfbm90 aWZpZXIuYyAgICAgICAgICAgIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbXVfbm90aWZpZXIuaCBiL2luY2x1ZGUvbGludXgv bW11X25vdGlmaWVyLmgKaW5kZXggMDdhMmJiYWY4NmU5Li4zN2I2ODMxNjMyMzUgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvbW11X25vdGlmaWVyLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbXVf bm90aWZpZXIuaApAQCAtMjMzLDE2ICsyMzMsNTQgQEAgc3RydWN0IG1tdV9ub3RpZmllciB7CiAJ dW5zaWduZWQgaW50IHVzZXJzOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgbW11X2ludGVydmFsX25v dGlmaWVyX2ZpbmlzaCAtIG1tdV9pbnRlcnZhbF9ub3RpZmllciB0d28tcGFzcyBhYnN0cmFjdGlv bgorICogQGxpbms6IExvY2tsZXNzIGxpc3QgbGluayBmb3IgdGhlIG5vdGlmaWVycyBwZW5kaW5n IHBhc3MgbGlzdAorICogQG5vdGlmaWVyOiBUaGUgbW11X2ludGVydmFsX25vdGlmaWVyIGZvciB3 aGljaCB0aGUgZmluaXNoIHBhc3MgaXMgY2FsbGVkLgorICoKKyAqIEFsbG9jYXRlLCB0eXBpY2Fs bHkgdXNpbmcgR0ZQX05PV0FJVCBpbiB0aGUgaW50ZXJ2YWwgbm90aWZpZXIncyBmaXJzdCBwYXNz LgorICogSWYgYWxsb2NhdGlvbiBmYWlscyAod2hpY2ggaXMgbm90IHVubGlrZWx5IHVuZGVyIG1l bW9yeSBwcmVzc3VyZSksIGZhbGwgYmFjaworICogdG8gc2luZ2xlLXBhc3Mgb3BlcmF0aW9uLiBO b3RlIHRoYXQgd2l0aCBhIGxhcmdlIG51bWJlciBvZiBub3RpZmllcnMKKyAqIGltcGxlbWVudGlu ZyB0d28gcGFzc2VzLCBhbGxvY2F0aW9uIHdpdGggR0ZQX05PV0FJVCB3aWxsIGJlY29tZSBpbmNy ZWFzaW5nbHkKKyAqIGxpa2VseSB0byBmYWlsLCBzbyBjb25zaWRlciBpbXBsZW1lbnRpbmcgYSBz bWFsbCBwb29sIGluc3RlYWQgb2YgdXNpbmcKKyAqIGttYWxsb2MoKSBhbGxvY2F0aW9ucy4KKyAq CisgKiBJZiB0aGUgaW1wbGVtZW50YXRpb24gbmVlZHMgdG8gcGFzcyBkYXRhIGJldHdlZW4gdGhl IHR3byBwYXNzZXMsCisgKiB0aGUgcmVjb21tZW5kZWQgd2F5IGlzIHRvIGVtYmVkIHN0cnVjdCBt bXVfaW50ZXJ2YWxfbm90aWZpZXJfZmluaXNoIGludG8gYSBsYXJnZXIKKyAqIHN0cnVjdHVyZSB0 aGF0IGFsc28gY29udGFpbnMgdGhlIGRhdGEgbmVlZGVkIHRvIGJlIHNoYXJlZC4gS2VlcCBpbiBt aW5kIHRoYXQKKyAqIGEgbm90aWZpZXIgY2FsbGJhY2sgY2FuIGJlIGludm9rZWQgaW4gcGFyYWxs ZWwsIGFuZCBlYWNoIGludm9jYXRpb24gbmVlZHMgaXRzCisgKiBvd24gc3RydWN0IG1tdV9pbnRl cnZhbF9ub3RpZmllcl9maW5pc2guCisgKi8KK3N0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXJf ZmluaXNoIHsKKwlzdHJ1Y3QgbGxpc3Rfbm9kZSBsaW5rOworCXN0cnVjdCBtbXVfaW50ZXJ2YWxf bm90aWZpZXIgKm5vdGlmaWVyOworfTsKKwogLyoqCiAgKiBzdHJ1Y3QgbW11X2ludGVydmFsX25v dGlmaWVyX29wcwogICogQGludmFsaWRhdGU6IFVwb24gcmV0dXJuIHRoZSBjYWxsZXIgbXVzdCBz dG9wIHVzaW5nIGFueSBTUFRFcyB3aXRoaW4gdGhpcwogICogICAgICAgICAgICAgIHJhbmdlLiBU aGlzIGZ1bmN0aW9uIGNhbiBzbGVlcC4gUmV0dXJuIGZhbHNlIG9ubHkgaWYgc2xlZXBpbmcKICAq ICAgICAgICAgICAgICB3YXMgcmVxdWlyZWQgYnV0IG1tdV9ub3RpZmllcl9yYW5nZV9ibG9ja2Fi bGUocmFuZ2UpIGlzIGZhbHNlLgorICogQGludmFsaWRhdGVfc3RhcnQ6IFNpbWlsYXIgdG8gQGlu dmFsaWRhdGUsIGJ1dCBpbnRlbmRlZCBmb3IgdHdvLXBhc3Mgbm90aWZpZXIKKyAqICAgICAgICAg ICAgICAgICAgICBjYWxsYmFja3Mgd2hlcmUgdGhlIGNhbGwgdG8gQGludmFsaWRhdGVfc3RhcnQg aXMgdGhlIGZpcnN0CisgKiAgICAgICAgICAgICAgICAgICAgcGFzcyBhbmQgYW55IHN0cnVjdCBt bXVfaW50ZXJ2YWxfbm90aWZpZXJfZmluaXNoIHBvaW50ZXIKKyAqICAgICAgICAgICAgICAgICAg ICByZXR1cm5lZCBpbiB0aGUgQGZpbmlzaCBwYXJhbWV0ZXIgZGVzY3JpYmVzIHRoZSBmaW5hbCBw YXNzLgorICogICAgICAgICAgICAgICAgICAgIElmIEBmaW5pc2ggaXMgJU5VTEwgb24gcmV0dXJu LCB0aGVuIG5vIGZpbmFsIHBhc3Mgd2lsbCBiZQorICogICAgICAgICAgICAgICAgICAgIGNhbGxl ZC4KKyAqIEBpbnZhbGlkYXRlX2ZpbmlzaDogQ2FsbGVkIGFzIHRoZSBzZWNvbmQgcGFzcyBmb3Ig YW55IG5vdGlmaWVyIHRoYXQgcmV0dXJuZWQKKyAqICAgICAgICAgICAgICAgICAgICAgYSBub24t TlVMTCBAZmluaXNoIGZyb20gQGludmFsaWRhdGVfc3RhcnQuIFRoZSBAZmluaXNoCisgKiAgICAg ICAgICAgICAgICAgICAgIHBvaW50ZXIgcGFzc2VkIGhlcmUgaXMgdGhlIHNhbWUgb25lIHJldHVy bmVkIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgIEBpbnZhbGlkYXRlX3N0YXJ0LgogICovCiBz dHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX29wcyB7CiAJYm9vbCAoKmludmFsaWRhdGUpKHN0 cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXIgKmludGVydmFsX3N1YiwKIAkJCSAgIGNvbnN0IHN0 cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlLAogCQkJICAgdW5zaWduZWQgbG9uZyBjdXJf c2VxKTsKKwlib29sICgqaW52YWxpZGF0ZV9zdGFydCkoc3RydWN0IG1tdV9pbnRlcnZhbF9ub3Rp ZmllciAqaW50ZXJ2YWxfc3ViLAorCQkJCSBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX3Jhbmdl ICpyYW5nZSwKKwkJCQkgdW5zaWduZWQgbG9uZyBjdXJfc2VxLAorCQkJCSBzdHJ1Y3QgbW11X2lu dGVydmFsX25vdGlmaWVyX2ZpbmlzaCAqKmZpbmlzaCk7CisJdm9pZCAoKmludmFsaWRhdGVfZmlu aXNoKShzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX2ZpbmlzaCAqZmluaXNoKTsKIH07CiAK IHN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXIgewpkaWZmIC0tZ2l0IGEvbW0vbW11X25vdGlm aWVyLmMgYi9tbS9tbXVfbm90aWZpZXIuYwppbmRleCBhNmNkZjM2NzRiZGMuLjRkOGE2NGNlOGVk YSAxMDA2NDQKLS0tIGEvbW0vbW11X25vdGlmaWVyLmMKKysrIGIvbW0vbW11X25vdGlmaWVyLmMK QEAgLTI2MCw2ICsyNjAsMTUgQEAgbW11X2ludGVydmFsX3JlYWRfYmVnaW4oc3RydWN0IG1tdV9p bnRlcnZhbF9ub3RpZmllciAqaW50ZXJ2YWxfc3ViKQogfQogRVhQT1JUX1NZTUJPTF9HUEwobW11 X2ludGVydmFsX3JlYWRfYmVnaW4pOwogCitzdGF0aWMgdm9pZCBtbl9pdHJlZV9maW5pc2hfcGFz cyhzdHJ1Y3QgbGxpc3RfaGVhZCAqZmluaXNoX3Bhc3NlcykKK3sKKwlzdHJ1Y3QgbGxpc3Rfbm9k ZSAqZmlyc3QgPSBsbGlzdF9yZXZlcnNlX29yZGVyKF9fbGxpc3RfZGVsX2FsbChmaW5pc2hfcGFz c2VzKSk7CisJc3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllcl9maW5pc2ggKmYsICpuZXh0Owor CisJbGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShmLCBuZXh0LCBmaXJzdCwgbGluaykKKwkJZi0+ bm90aWZpZXItPm9wcy0+aW52YWxpZGF0ZV9maW5pc2goZik7Cit9CisKIHN0YXRpYyB2b2lkIG1u X2l0cmVlX3JlbGVhc2Uoc3RydWN0IG1tdV9ub3RpZmllcl9zdWJzY3JpcHRpb25zICpzdWJzY3Jp cHRpb25zLAogCQkJICAgICBzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIHsKQEAgLTI3MSw2ICsyODAs NyBAQCBzdGF0aWMgdm9pZCBtbl9pdHJlZV9yZWxlYXNlKHN0cnVjdCBtbXVfbm90aWZpZXJfc3Vi c2NyaXB0aW9ucyAqc3Vic2NyaXB0aW9ucywKIAkJLmVuZCA9IFVMT05HX01BWCwKIAl9OwogCXN0 cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXIgKmludGVydmFsX3N1YjsKKwlMTElTVF9IRUFEKGZp bmlzaF9wYXNzZXMpOwogCXVuc2lnbmVkIGxvbmcgY3VyX3NlcTsKIAlib29sIHJldDsKIApAQCAt Mjc4LDExICsyODgsMjcgQEAgc3RhdGljIHZvaWQgbW5faXRyZWVfcmVsZWFzZShzdHJ1Y3QgbW11 X25vdGlmaWVyX3N1YnNjcmlwdGlvbnMgKnN1YnNjcmlwdGlvbnMsCiAJCSAgICAgbW5faXRyZWVf aW52X3N0YXJ0X3JhbmdlKHN1YnNjcmlwdGlvbnMsICZyYW5nZSwgJmN1cl9zZXEpOwogCSAgICAg aW50ZXJ2YWxfc3ViOwogCSAgICAgaW50ZXJ2YWxfc3ViID0gbW5faXRyZWVfaW52X25leHQoaW50 ZXJ2YWxfc3ViLCAmcmFuZ2UpKSB7Ci0JCXJldCA9IGludGVydmFsX3N1Yi0+b3BzLT5pbnZhbGlk YXRlKGludGVydmFsX3N1YiwgJnJhbmdlLAotCQkJCQkJICAgIGN1cl9zZXEpOworCQlpZiAoaW50 ZXJ2YWxfc3ViLT5vcHMtPmludmFsaWRhdGVfc3RhcnQpIHsKKwkJCXN0cnVjdCBtbXVfaW50ZXJ2 YWxfbm90aWZpZXJfZmluaXNoICpmaW5pc2ggPSBOVUxMOworCisJCQlyZXQgPSBpbnRlcnZhbF9z dWItPm9wcy0+aW52YWxpZGF0ZV9zdGFydChpbnRlcnZhbF9zdWIsCisJCQkJCQkJCSAgJnJhbmdl LAorCQkJCQkJCQkgIGN1cl9zZXEsCisJCQkJCQkJCSAgJmZpbmlzaCk7CisJCQlpZiAocmV0ICYm IGZpbmlzaCkgeworCQkJCWZpbmlzaC0+bm90aWZpZXIgPSBpbnRlcnZhbF9zdWI7CisJCQkJX19s bGlzdF9hZGQoJmZpbmlzaC0+bGluaywgJmZpbmlzaF9wYXNzZXMpOworCQkJfQorCisJCX0gZWxz ZSB7CisJCQlyZXQgPSBpbnRlcnZhbF9zdWItPm9wcy0+aW52YWxpZGF0ZShpbnRlcnZhbF9zdWIs CisJCQkJCQkJICAgICZyYW5nZSwKKwkJCQkJCQkgICAgY3VyX3NlcSk7CisJCX0KIAkJV0FSTl9P TighcmV0KTsKIAl9CiAKKwltbl9pdHJlZV9maW5pc2hfcGFzcygmZmluaXNoX3Bhc3Nlcyk7CiAJ bW5faXRyZWVfaW52X2VuZChzdWJzY3JpcHRpb25zKTsKIH0KIApAQCAtNDMwLDcgKzQ1Niw5IEBA IHN0YXRpYyBpbnQgbW5faXRyZWVfaW52YWxpZGF0ZShzdHJ1Y3QgbW11X25vdGlmaWVyX3N1YnNj cmlwdGlvbnMgKnN1YnNjcmlwdGlvbnMsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IG1tdV9ub3Rp Zmllcl9yYW5nZSAqcmFuZ2UpCiB7CiAJc3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllciAqaW50 ZXJ2YWxfc3ViOworCUxMSVNUX0hFQUQoZmluaXNoX3Bhc3Nlcyk7CiAJdW5zaWduZWQgbG9uZyBj dXJfc2VxOworCWludCBlcnIgPSAwOwogCiAJZm9yIChpbnRlcnZhbF9zdWIgPQogCQkgICAgIG1u X2l0cmVlX2ludl9zdGFydF9yYW5nZShzdWJzY3JpcHRpb25zLCByYW5nZSwgJmN1cl9zZXEpOwpA QCAtNDM4LDIzICs0NjYsNDEgQEAgc3RhdGljIGludCBtbl9pdHJlZV9pbnZhbGlkYXRlKHN0cnVj dCBtbXVfbm90aWZpZXJfc3Vic2NyaXB0aW9ucyAqc3Vic2NyaXB0aW9ucywKIAkgICAgIGludGVy dmFsX3N1YiA9IG1uX2l0cmVlX2ludl9uZXh0KGludGVydmFsX3N1YiwgcmFuZ2UpKSB7CiAJCWJv b2wgcmV0OwogCi0JCXJldCA9IGludGVydmFsX3N1Yi0+b3BzLT5pbnZhbGlkYXRlKGludGVydmFs X3N1YiwgcmFuZ2UsCi0JCQkJCQkgICAgY3VyX3NlcSk7CisJCWlmIChpbnRlcnZhbF9zdWItPm9w cy0+aW52YWxpZGF0ZV9zdGFydCkgeworCQkJc3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllcl9m aW5pc2ggKmZpbmlzaCA9IE5VTEw7CisKKwkJCXJldCA9IGludGVydmFsX3N1Yi0+b3BzLT5pbnZh bGlkYXRlX3N0YXJ0KGludGVydmFsX3N1YiwKKwkJCQkJCQkJICByYW5nZSwKKwkJCQkJCQkJICBj dXJfc2VxLAorCQkJCQkJCQkgICZmaW5pc2gpOworCQkJaWYgKHJldCAmJiBmaW5pc2gpIHsKKwkJ CQlmaW5pc2gtPm5vdGlmaWVyID0gaW50ZXJ2YWxfc3ViOworCQkJCV9fbGxpc3RfYWRkKCZmaW5p c2gtPmxpbmssICZmaW5pc2hfcGFzc2VzKTsKKwkJCX0KKworCQl9IGVsc2UgeworCQkJcmV0ID0g aW50ZXJ2YWxfc3ViLT5vcHMtPmludmFsaWRhdGUoaW50ZXJ2YWxfc3ViLAorCQkJCQkJCSAgICBy YW5nZSwKKwkJCQkJCQkgICAgY3VyX3NlcSk7CisJCX0KIAkJaWYgKCFyZXQpIHsKIAkJCWlmIChX QVJOX09OKG1tdV9ub3RpZmllcl9yYW5nZV9ibG9ja2FibGUocmFuZ2UpKSkKIAkJCQljb250aW51 ZTsKLQkJCWdvdG8gb3V0X3dvdWxkX2Jsb2NrOworCQkJZXJyID0gLUVBR0FJTjsKKwkJCWJyZWFr OwogCQl9CiAJfQotCXJldHVybiAwOwogCi1vdXRfd291bGRfYmxvY2s6CisJbW5faXRyZWVfZmlu aXNoX3Bhc3MoJmZpbmlzaF9wYXNzZXMpOworCiAJLyoKIAkgKiBPbiAtRUFHQUlOIHRoZSBub24t YmxvY2tpbmcgY2FsbGVyIGlzIG5vdCBhbGxvd2VkIHRvIGNhbGwKIAkgKiBpbnZhbGlkYXRlX3Jh bmdlX2VuZCgpCiAJICovCi0JbW5faXRyZWVfaW52X2VuZChzdWJzY3JpcHRpb25zKTsKLQlyZXR1 cm4gLUVBR0FJTjsKKwlpZiAoZXJyKQorCQltbl9pdHJlZV9pbnZfZW5kKHN1YnNjcmlwdGlvbnMp OworCisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBtbl9obGlzdF9pbnZhbGlkYXRlX3Jh bmdlX3N0YXJ0KApAQCAtOTc2LDYgKzEwMjIsNyBAQCBpbnQgbW11X2ludGVydmFsX25vdGlmaWVy X2luc2VydChzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyICppbnRlcnZhbF9zdWIsCiAJc3Ry dWN0IG1tdV9ub3RpZmllcl9zdWJzY3JpcHRpb25zICpzdWJzY3JpcHRpb25zOwogCWludCByZXQ7 CiAKKwlXQVJOX09OX09OQ0Uob3BzLT5pbnZhbGlkYXRlX3N0YXJ0ICYmICFvcHMtPmludmFsaWRh dGVfZmluaXNoKTsKIAltaWdodF9sb2NrKCZtbS0+bW1hcF9sb2NrKTsKIAogCXN1YnNjcmlwdGlv bnMgPSBzbXBfbG9hZF9hY3F1aXJlKCZtbS0+bm90aWZpZXJfc3Vic2NyaXB0aW9ucyk7Ci0tIAoy LjUzLjAKCg==