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 64145106ACDD for ; Thu, 12 Mar 2026 19:21:46 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BC9CE10EAA5; Thu, 12 Mar 2026 19:21:45 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="d7tEBWl4"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 733E710EAA0; Thu, 12 Mar 2026 19:21:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1773343298; x=1804879298; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Y1XP/fr9Y6FVfU1EObHHiOPEmtBsvKUAt002X3KkqSs=; b=d7tEBWl4gi8AFA8lzayyoTFoKi6wwN1zTupjUuck4iK1IfbxURmzqPvW M44UVBvZCTXdBpf6DVu2y/kWtE+T8kEnKRatTE/mke9pxQ8E/FlrsUtRU BxeMIbhQ4VdFWGsanAsJcXUXUXXy0toAEUMBhZJPTvnhvYDJiE0BOxPVg m6rWI21r2rdR6vbrwpVPntYOWbbAfJtkMcStL6d9+Ky71tPE4gxG+h5fH Qcjp4t5HVXjhdubcvmVp+A+62KKtlArSicilmwFm9VtZlRsFrIbJMtfXG ndLLh8hJjnfJ6wBvEbavYdzIrNFNfNgO5ULPnxQM3gjRD1us8uQeSKqeb w==; X-CSE-ConnectionGUID: LPyt2SYbQpiYxrxdgGcuRQ== X-CSE-MsgGUID: fpIy2xHUQoSu2K/VL21daA== X-IronPort-AV: E=McAfee;i="6800,10657,11727"; a="78052717" X-IronPort-AV: E=Sophos;i="6.23,116,1770624000"; d="scan'208";a="78052717" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Mar 2026 12:21:38 -0700 X-CSE-ConnectionGUID: G0BpUppLRn6H6S2lPnyYSg== X-CSE-MsgGUID: SxIFrtoJRIiWHPhE2ta1CA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,116,1770624000"; d="scan'208";a="221105098" Received: from smoticic-mobl1.ger.corp.intel.com (HELO fdugast-desk.home) ([10.245.245.89]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Mar 2026 12:21:38 -0700 From: Francois Dugast To: intel-xe@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Subject: [PATCH v9 4/4] drm/pagemap: Enable THP support for GPU memory migration Date: Thu, 12 Mar 2026 20:20:14 +0100 Message-ID: <20260312192126.2024853-5-francois.dugast@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260312192126.2024853-1-francois.dugast@intel.com> References: <20260312192126.2024853-1-francois.dugast@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" VGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIFRyYW5zcGFyZW50IEh1Z2UgUGFnZXMgKFRIUCkgZm9y IGRldmljZSBwYWdlcyBieQp1c2luZyBNSUdSQVRFX1ZNQV9TRUxFQ1RfQ09NUE9VTkQgZHVyaW5n IG1pZ3JhdGlvbi4gSXQgcmVtb3ZlcyB0aGUgbmVlZCB0bwpzcGxpdCBmb2xpb3MgYW5kIGxvb3Ag bXVsdGlwbGUgdGltZXMgb3ZlciBhbGwgcGFnZXMgdG8gcGVyZm9ybSByZXF1aXJlZApvcGVyYXRp b25zIGF0IHBhZ2UgbGV2ZWwuIEluc3RlYWQsIHdlIHJlbHkgb24gbmV3bHkgaW50cm9kdWNlZCBz dXBwb3J0IGZvcgpoaWdoZXIgb3JkZXJzIGluIGRybV9wYWdlbWFwIGFuZCBmb2xpby1sZXZlbCBB UEkuCgpJbiBYZSwgdGhpcyBkcmFzdGljYWxseSBpbXByb3ZlcyBwZXJmb3JtYW5jZSB3aGVuIHVz aW5nIFNWTS4gVGhlIEdUIHN0YXRzCmJlbG93IGNvbGxlY3RlZCBhZnRlciBhIDJNQiBwYWdlIGZh dWx0IHNob3cgb3ZlcmFsbCBzZXJ2aWNpbmcgaXMgbW9yZSB0aGFuCjcgdGltZXMgZmFzdGVyLCBh bmQgdGhhbmtzIHRvIHJlZHVjZWQgQ1BVIG92ZXJoZWFkIHRoZSB0aW1lIHNwZW50IG9uIHRoZQph Y3R1YWwgY29weSBnb2VzIGZyb20gMjMlIHdpdGhvdXQgVEhQIHRvIDgwJSB3aXRoIFRIUDoKCldp dGhvdXQgVEhQOgoKICAgIHN2bV8yTV9wYWdlZmF1bHRfdXM6IDk2NgogICAgc3ZtXzJNX21pZ3Jh dGVfdXM6IDk0MgogICAgc3ZtXzJNX2RldmljZV9jb3B5X3VzOiAyMjMKICAgIHN2bV8yTV9nZXRf cGFnZXNfdXM6IDkKICAgIHN2bV8yTV9iaW5kX3VzOiAxMAoKV2l0aCBUSFA6CgogICAgc3ZtXzJN X3BhZ2VmYXVsdF91czogMTMyCiAgICBzdm1fMk1fbWlncmF0ZV91czogMTI4CiAgICBzdm1fMk1f ZGV2aWNlX2NvcHlfdXM6IDEwNgogICAgc3ZtXzJNX2dldF9wYWdlc191czogMQogICAgc3ZtXzJN X2JpbmRfdXM6IDIKCnYyOgotIEZpeCBvbmUgb2NjdXJyZW5jZSBvZiBkcm1fcGFnZW1hcF9nZXRf ZGV2bWVtX3BhZ2UoKSAoTWF0dGhldyBCcm9zdCkKCnYzOgotIFJlbW92ZSBtaWdyYXRlX2Rldmlj ZV9zcGxpdF9wYWdlKCkgYW5kIGZvbGlvX3NwbGl0X2xvY2ssIGluc3RlYWQgcmVseSBvbgogIGZy ZWVfem9uZV9kZXZpY2VfZm9saW8oKSB0byBzcGxpdCBmb2xpb3MgYmVmb3JlIGZyZWVpbmcgKE1h dHRoZXcgQnJvc3QpCi0gQXNzZXJ0IGZvbGlvIG9yZGVyIGlzIEhQQUdFX1BNRF9PUkRFUiAoTWF0 dGhldyBCcm9zdCkKLSBBbHdheXMgdXNlIGZvbGlvX3NldF96b25lX2RldmljZV9kYXRhKCkgaW4g c3BsaXQgKE1hdHRoZXcgQnJvc3QpCgp2NDoKLSBXYXJuIG9uIGNvbXBvdW5kIGRldmljZSBwYWdl LCBzL2NvbnRpbnVlL2dvdG8gbmV4dC8gKE1hdHRoZXcgQnJvc3QpCgp2NToKLSBSZXZlcnQgd2Fy biBvbiBjb21wb3VuZCBkZXZpY2UgcGFnZQotIHMvem9uZV9kZXZpY2VfcGFnZV9pbml0KCkvem9u ZV9kZXZpY2VfZm9saW9faW5pdCgpIChNYXR0aGV3IEJyb3N0KQoKQ2M6IE1hdHRoZXcgQnJvc3Qg PG1hdHRoZXcuYnJvc3RAaW50ZWwuY29tPgpDYzogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5o ZWxsc3Ryb21AbGludXguaW50ZWwuY29tPgpDYzogTWljaGFsIE1yb3playA8bWljaGFsLm1yb3pl a0BpbnRlbC5jb20+CkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3Jn PgpDYzogRGF2aWQgSGlsZGVuYnJhbmQgPGRhdmlkQGtlcm5lbC5vcmc+CkNjOiBMb3JlbnpvIFN0 b2FrZXMgPGxvcmVuem8uc3RvYWtlc0BvcmFjbGUuY29tPgpDYzogTGlhbSBSLiBIb3dsZXR0IDxM aWFtLkhvd2xldHRAb3JhY2xlLmNvbT4KQ2M6IFZsYXN0aW1pbCBCYWJrYSA8dmJhYmthQHN1c2Uu Y3o+CkNjOiBNaWtlIFJhcG9wb3J0IDxycHB0QGtlcm5lbC5vcmc+CkNjOiBTdXJlbiBCYWdoZGFz YXJ5YW4gPHN1cmVuYkBnb29nbGUuY29tPgpDYzogTWljaGFsIEhvY2tvIDxtaG9ja29Ac3VzZS5j b20+CkNjOiBaaSBZYW4gPHppeUBudmlkaWEuY29tPgpDYzogQWxpc3RhaXIgUG9wcGxlIDxhcG9w cGxlQG52aWRpYS5jb20+CkNjOiBCYWxiaXIgU2luZ2ggPGJhbGJpcnNAbnZpZGlhLmNvbT4KQ2M6 IGxpbnV4LW1tQGt2YWNrLm9yZwpSZXZpZXdlZC1ieTogTWF0dGhldyBCcm9zdCA8bWF0dGhldy5i cm9zdEBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEZyYW5jb2lzIER1Z2FzdCA8ZnJhbmNvaXMu ZHVnYXN0QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3BhZ2VtYXAuYyB8IDcy ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjIg aW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9wYWdlbWFwLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhZ2VtYXAuYwppbmRleCA4 MzdiODgxODgzZjkuLjUwMDIwNDllMDE5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9wYWdlbWFwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYWdlbWFwLmMKQEAgLTIwMCwx NiArMjAwLDE5IEBAIHN0YXRpYyB2b2lkIGRybV9wYWdlbWFwX21pZ3JhdGlvbl91bmxvY2tfcHV0 X3BhZ2VzKHVuc2lnbmVkIGxvbmcgbnBhZ2VzLAogLyoqCiAgKiBkcm1fcGFnZW1hcF9nZXRfZGV2 bWVtX3BhZ2UoKSAtIEdldCBhIHJlZmVyZW5jZSB0byBhIGRldmljZSBtZW1vcnkgcGFnZQogICog QHBhZ2U6IFBvaW50ZXIgdG8gdGhlIHBhZ2UKKyAqIEBvcmRlcjogT3JkZXIKICAqIEB6ZGQ6IFBv aW50ZXIgdG8gdGhlIEdQVSBTVk0gem9uZSBkZXZpY2UgZGF0YQogICoKICAqIFRoaXMgZnVuY3Rp b24gYXNzb2NpYXRlcyB0aGUgZ2l2ZW4gcGFnZSB3aXRoIHRoZSBzcGVjaWZpZWQgR1BVIFNWTSB6 b25lCiAgKiBkZXZpY2UgZGF0YSBhbmQgaW5pdGlhbGl6ZXMgaXQgZm9yIHpvbmUgZGV2aWNlIHVz YWdlLgogICovCiBzdGF0aWMgdm9pZCBkcm1fcGFnZW1hcF9nZXRfZGV2bWVtX3BhZ2Uoc3RydWN0 IHBhZ2UgKnBhZ2UsCisJCQkJCXVuc2lnbmVkIGludCBvcmRlciwKIAkJCQkJc3RydWN0IGRybV9w YWdlbWFwX3pkZCAqemRkKQogewotCXBhZ2UtPnpvbmVfZGV2aWNlX2RhdGEgPSBkcm1fcGFnZW1h cF96ZGRfZ2V0KHpkZCk7Ci0Jem9uZV9kZXZpY2VfcGFnZV9pbml0KHBhZ2UsIHBhZ2VfcGdtYXAo cGFnZSksIDApOworCXpvbmVfZGV2aWNlX2ZvbGlvX2luaXQoKHN0cnVjdCBmb2xpbyAqKXBhZ2Us IHpkZC0+ZHBhZ2VtYXAtPnBhZ2VtYXAsCisJCQkgICAgICAgb3JkZXIpOworCWZvbGlvX3NldF96 b25lX2RldmljZV9kYXRhKHBhZ2VfZm9saW8ocGFnZSksIGRybV9wYWdlbWFwX3pkZF9nZXQoemRk KSk7CiB9CiAKIC8qKgpAQCAtNTI0LDcgKzUyNyw3IEBAIGludCBkcm1fcGFnZW1hcF9taWdyYXRl X3RvX2Rldm1lbShzdHJ1Y3QgZHJtX3BhZ2VtYXBfZGV2bWVtICpkZXZtZW1fYWxsb2NhdGlvbiwK IAkJLmVuZAkJPSBlbmQsCiAJCS5wZ21hcF9vd25lcgk9IHBhZ2VtYXAtPm93bmVyLAogCQkuZmxh Z3MJCT0gTUlHUkFURV9WTUFfU0VMRUNUX1NZU1RFTSB8IE1JR1JBVEVfVk1BX1NFTEVDVF9ERVZJ Q0VfQ09IRVJFTlQgfAotCQlNSUdSQVRFX1ZNQV9TRUxFQ1RfREVWSUNFX1BSSVZBVEUsCisJCU1J R1JBVEVfVk1BX1NFTEVDVF9ERVZJQ0VfUFJJVkFURSB8IE1JR1JBVEVfVk1BX1NFTEVDVF9DT01Q T1VORCwKIAl9OwogCXVuc2lnbmVkIGxvbmcgaSwgbnBhZ2VzID0gbnBhZ2VzX2luX3JhbmdlKHN0 YXJ0LCBlbmQpOwogCXVuc2lnbmVkIGxvbmcgb3duX3BhZ2VzID0gMCwgbWlncmF0ZWRfcGFnZXMg PSAwOwpAQCAtNjMwLDExICs2MzMsMTMgQEAgaW50IGRybV9wYWdlbWFwX21pZ3JhdGVfdG9fZGV2 bWVtKHN0cnVjdCBkcm1fcGFnZW1hcF9kZXZtZW0gKmRldm1lbV9hbGxvY2F0aW9uLAogCiAJb3du X3BhZ2VzID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBucGFnZXM7ICsraSkgeworCWZvciAoaSA9 IDA7IGkgPCBucGFnZXM7KSB7CisJCXVuc2lnbmVkIGxvbmcgajsKIAkJc3RydWN0IHBhZ2UgKnBh Z2UgPSBwZm5fdG9fcGFnZShtaWdyYXRlLmRzdFtpXSk7CiAJCXN0cnVjdCBwYWdlICpzcmNfcGFn ZSA9IG1pZ3JhdGVfcGZuX3RvX3BhZ2UobWlncmF0ZS5zcmNbaV0pOwotCQljdXIuc3RhcnQgPSBp OworCQl1bnNpZ25lZCBpbnQgb3JkZXIgPSAwOwogCisJCWN1ci5zdGFydCA9IGk7CiAJCXBhZ2Vz W2ldID0gTlVMTDsKIAkJaWYgKHNyY19wYWdlICYmIGlzX2RldmljZV9wcml2YXRlX3BhZ2Uoc3Jj X3BhZ2UpKSB7CiAJCQlzdHJ1Y3QgZHJtX3BhZ2VtYXBfemRkICpzcmNfemRkID0KQEAgLTY0NCw3 ICs2NDksNyBAQCBpbnQgZHJtX3BhZ2VtYXBfbWlncmF0ZV90b19kZXZtZW0oc3RydWN0IGRybV9w YWdlbWFwX2Rldm1lbSAqZGV2bWVtX2FsbG9jYXRpb24sCiAJCQkgICAgIW1kZXRhaWxzLT5jYW5f bWlncmF0ZV9zYW1lX3BhZ2VtYXApIHsKIAkJCQltaWdyYXRlLmRzdFtpXSA9IDA7CiAJCQkJb3du X3BhZ2VzKys7Ci0JCQkJY29udGludWU7CisJCQkJZ290byBuZXh0OwogCQkJfQogCQkJaWYgKG1k ZXRhaWxzLT5zb3VyY2VfcGVlcl9taWdyYXRlcykgewogCQkJCWN1ci5kcGFnZW1hcCA9IHNyY196 ZGQtPmRwYWdlbWFwOwpAQCAtNjYwLDcgKzY2NSwyMCBAQCBpbnQgZHJtX3BhZ2VtYXBfbWlncmF0 ZV90b19kZXZtZW0oc3RydWN0IGRybV9wYWdlbWFwX2Rldm1lbSAqZGV2bWVtX2FsbG9jYXRpb24s CiAJCQlwYWdlc1tpXSA9IHBhZ2U7CiAJCX0KIAkJbWlncmF0ZS5kc3RbaV0gPSBtaWdyYXRlX3Bm bihtaWdyYXRlLmRzdFtpXSk7Ci0JCWRybV9wYWdlbWFwX2dldF9kZXZtZW1fcGFnZShwYWdlLCB6 ZGQpOworCisJCWlmIChtaWdyYXRlLnNyY1tpXSAmIE1JR1JBVEVfUEZOX0NPTVBPVU5EKSB7CisJ CQlkcm1fV0FSTl9PTkNFKGRwYWdlbWFwLT5kcm0sIHNyY19wYWdlICYmCisJCQkJICAgICAgZm9s aW9fb3JkZXIocGFnZV9mb2xpbyhzcmNfcGFnZSkpICE9IEhQQUdFX1BNRF9PUkRFUiwKKwkJCQkg ICAgICAiVW5leHBlY3RlZCBmb2xpbyBvcmRlclxuIik7CisKKwkJCW9yZGVyID0gSFBBR0VfUE1E X09SREVSOworCQkJbWlncmF0ZS5kc3RbaV0gfD0gTUlHUkFURV9QRk5fQ09NUE9VTkQ7CisKKwkJ CWZvciAoaiA9IDE7IGogPCBOUl9QQUdFUyhvcmRlcikgJiYgaSArIGogPCBucGFnZXM7IGorKykK KwkJCQltaWdyYXRlLmRzdFtpICsgal0gPSAwOworCQl9CisKKwkJZHJtX3BhZ2VtYXBfZ2V0X2Rl dm1lbV9wYWdlKHBhZ2UsIG9yZGVyLCB6ZGQpOwogCiAJCS8qIElmIHdlIHN3aXRjaGVkIHRoZSBt aWdyYXRpbmcgZHJtX3BhZ2VtYXAsIG1pZ3JhdGUgcHJldmlvdXMgcGFnZXMgbm93ICovCiAJCWVy ciA9IGRybV9wYWdlbWFwX21pZ3JhdGVfcmFuZ2UoZGV2bWVtX2FsbG9jYXRpb24sIG1pZ3JhdGUu c3JjLCBtaWdyYXRlLmRzdCwKQEAgLTY3MCw3ICs2ODgsMTEgQEAgaW50IGRybV9wYWdlbWFwX21p Z3JhdGVfdG9fZGV2bWVtKHN0cnVjdCBkcm1fcGFnZW1hcF9kZXZtZW0gKmRldm1lbV9hbGxvY2F0 aW9uLAogCQkJbnBhZ2VzID0gaSArIDE7CiAJCQlnb3RvIGVycl9maW5hbGl6ZTsKIAkJfQorCitu ZXh0OgorCQlpICs9IE5SX1BBR0VTKG9yZGVyKTsKIAl9CisKIAljdXIuc3RhcnQgPSBucGFnZXM7 CiAJY3VyLm9wcyA9IE5VTEw7IC8qIEZvcmNlIG1pZ3JhdGlvbiAqLwogCWVyciA9IGRybV9wYWdl bWFwX21pZ3JhdGVfcmFuZ2UoZGV2bWVtX2FsbG9jYXRpb24sIG1pZ3JhdGUuc3JjLCBtaWdyYXRl LmRzdCwKQEAgLTc3OSw2ICs4MDEsOCBAQCBzdGF0aWMgaW50IGRybV9wYWdlbWFwX21pZ3JhdGVf cG9wdWxhdGVfcmFtX3BmbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZhcywKIAkJcGFnZSA9IGZv bGlvX3BhZ2UoZm9saW8sIDApOwogCQltcGZuW2ldID0gbWlncmF0ZV9wZm4ocGFnZV90b19wZm4o cGFnZSkpOwogCisJCWlmIChvcmRlcikKKwkJCW1wZm5baV0gfD0gTUlHUkFURV9QRk5fQ09NUE9V TkQ7CiBuZXh0OgogCQlpZiAocGFnZSkKIAkJCWFkZHIgKz0gcGFnZV9zaXplKHBhZ2UpOwpAQCAt MTAzNCw4ICsxMDU4LDE1IEBAIGludCBkcm1fcGFnZW1hcF9ldmljdF90b19yYW0oc3RydWN0IGRy bV9wYWdlbWFwX2Rldm1lbSAqZGV2bWVtX2FsbG9jYXRpb24pCiAJaWYgKGVycikKIAkJZ290byBl cnJfZmluYWxpemU7CiAKLQlmb3IgKGkgPSAwOyBpIDwgbnBhZ2VzOyArK2kpCisJZm9yIChpID0g MDsgaSA8IG5wYWdlczspIHsKKwkJdW5zaWduZWQgaW50IG9yZGVyID0gMDsKKwogCQlwYWdlc1tp XSA9IG1pZ3JhdGVfcGZuX3RvX3BhZ2Uoc3JjW2ldKTsKKwkJaWYgKHBhZ2VzW2ldKQorCQkJb3Jk ZXIgPSBmb2xpb19vcmRlcihwYWdlX2ZvbGlvKHBhZ2VzW2ldKSk7CisKKwkJaSArPSBOUl9QQUdF UyhvcmRlcik7CisJfQogCiAJZXJyID0gb3BzLT5jb3B5X3RvX3JhbShwYWdlcywgcGFnZW1hcF9h ZGRyLCBucGFnZXMsIE5VTEwpOwogCWlmIChlcnIpCkBAIC0xMDg4LDcgKzExMTksOCBAQCBzdGF0 aWMgaW50IF9fZHJtX3BhZ2VtYXBfbWlncmF0ZV90b19yYW0oc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2YXMsCiAJCS52bWEJCT0gdmFzLAogCQkucGdtYXBfb3duZXIJPSBwYWdlX3BnbWFwKHBhZ2Up LT5vd25lciwKIAkJLmZsYWdzCQk9IE1JR1JBVEVfVk1BX1NFTEVDVF9ERVZJQ0VfUFJJVkFURSB8 Ci0JCU1JR1JBVEVfVk1BX1NFTEVDVF9ERVZJQ0VfQ09IRVJFTlQsCisJCQkJICBNSUdSQVRFX1ZN QV9TRUxFQ1RfREVWSUNFX0NPSEVSRU5UIHwKKwkJCQkgIE1JR1JBVEVfVk1BX1NFTEVDVF9DT01Q T1VORCwKIAkJLmZhdWx0X3BhZ2UJPSBwYWdlLAogCX07CiAJc3RydWN0IGRybV9wYWdlbWFwX21p Z3JhdGVfZGV0YWlscyBtZGV0YWlscyA9IHt9OwpAQCAtMTE1NCw4ICsxMTg2LDE1IEBAIHN0YXRp YyBpbnQgX19kcm1fcGFnZW1hcF9taWdyYXRlX3RvX3JhbShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KnZhcywKIAlpZiAoZXJyKQogCQlnb3RvIGVycl9maW5hbGl6ZTsKIAotCWZvciAoaSA9IDA7IGkg PCBucGFnZXM7ICsraSkKKwlmb3IgKGkgPSAwOyBpIDwgbnBhZ2VzOykgeworCQl1bnNpZ25lZCBp bnQgb3JkZXIgPSAwOworCiAJCXBhZ2VzW2ldID0gbWlncmF0ZV9wZm5fdG9fcGFnZShtaWdyYXRl LnNyY1tpXSk7CisJCWlmIChwYWdlc1tpXSkKKwkJCW9yZGVyID0gZm9saW9fb3JkZXIocGFnZV9m b2xpbyhwYWdlc1tpXSkpOworCisJCWkgKz0gTlJfUEFHRVMob3JkZXIpOworCX0KIAogCWVyciA9 IG9wcy0+Y29weV90b19yYW0ocGFnZXMsIHBhZ2VtYXBfYWRkciwgbnBhZ2VzLCBOVUxMKTsKIAlp ZiAoZXJyKQpAQCAtMTIxMyw5ICsxMjUyLDIyIEBAIHN0YXRpYyB2bV9mYXVsdF90IGRybV9wYWdl bWFwX21pZ3JhdGVfdG9fcmFtKHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCXJldHVybiBlcnIgPyBW TV9GQVVMVF9TSUdCVVMgOiAwOwogfQogCitzdGF0aWMgdm9pZCBkcm1fcGFnZW1hcF9mb2xpb19z cGxpdChzdHJ1Y3QgZm9saW8gKm9yaWdfZm9saW8sIHN0cnVjdCBmb2xpbyAqbmV3X2ZvbGlvKQor eworCXN0cnVjdCBkcm1fcGFnZW1hcF96ZGQgKnpkZDsKKworCWlmICghbmV3X2ZvbGlvKQorCQly ZXR1cm47CisKKwluZXdfZm9saW8tPnBnbWFwID0gb3JpZ19mb2xpby0+cGdtYXA7CisJemRkID0g Zm9saW9fem9uZV9kZXZpY2VfZGF0YShvcmlnX2ZvbGlvKTsKKwlmb2xpb19zZXRfem9uZV9kZXZp Y2VfZGF0YShuZXdfZm9saW8sIGRybV9wYWdlbWFwX3pkZF9nZXQoemRkKSk7Cit9CisKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZGV2X3BhZ2VtYXBfb3BzIGRybV9wYWdlbWFwX3BhZ2VtYXBfb3BzID0g ewogCS5mb2xpb19mcmVlID0gZHJtX3BhZ2VtYXBfZm9saW9fZnJlZSwKIAkubWlncmF0ZV90b19y YW0gPSBkcm1fcGFnZW1hcF9taWdyYXRlX3RvX3JhbSwKKwkuZm9saW9fc3BsaXQgPSBkcm1fcGFn ZW1hcF9mb2xpb19zcGxpdCwKIH07CiAKIC8qKgotLSAKMi40My4wCgo=