From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: [PATCH 11/25] memremap: add a migrate_to_ram method to struct dev_pagemap_ops Date: Mon, 17 Jun 2019 14:27:19 +0200 Message-ID: <20190617122733.22432-12-hch@lst.de> References: <20190617122733.22432-1-hch@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190617122733.22432-1-hch-jcswGhMUV9g@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Dan Williams , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Jason Gunthorpe , Ben Skeggs Cc: Ralph Campbell , linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org, linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org VGhpcyByZXBsYWNlcyB0aGUgaGFja3kgLT5mYXVsdCBjYWxsYmFjaywgd2hpY2ggaXMgY3VycmVu dGx5IGRpcmVjdGx5CmNhbGxlZCBmcm9tIGNvbW1vbiBjb2RlIHRocm91Z2ggYSBobW0gc3BlY2lm aWMgZGF0YSBzdHJ1Y3R1cmUgYXMgYW4KZXhlcmNpc2UgaW4gbGF5ZXJpbmcgdmlvbGF0aW9ucy4K ClNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPgpSZXZpZXdlZC1i eTogUmFscGggQ2FtcGJlbGwgPHJjYW1wYmVsbEBudmlkaWEuY29tPgotLS0KIGluY2x1ZGUvbGlu dXgvaG1tLmggICAgICB8ICA2IC0tLS0tLQogaW5jbHVkZS9saW51eC9tZW1yZW1hcC5oIHwgIDYg KysrKysrCiBpbmNsdWRlL2xpbnV4L3N3YXBvcHMuaCAgfCAxNSAtLS0tLS0tLS0tLS0tLS0KIGtl cm5lbC9tZW1yZW1hcC5jICAgICAgICB8IDM1ICsrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBtbS9obW0uYyAgICAgICAgICAgICAgICAgfCAxMyArKysrKy0tLS0tLS0tCiBtbS9t ZW1vcnkuYyAgICAgICAgICAgICAgfCAgOSArKy0tLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgMTcg aW5zZXJ0aW9ucygrKSwgNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9obW0uaCBiL2luY2x1ZGUvbGludXgvaG1tLmgKaW5kZXggMzFlMWM1MzQ3MzMxLi5lNjQ4MjQz MzRiODUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaG1tLmgKKysrIGIvaW5jbHVkZS9saW51 eC9obW0uaApAQCAtNjk0LDExICs2OTQsNiBAQCBzdHJ1Y3QgaG1tX2Rldm1lbV9vcHMgewogICog Y2h1bmssIGFzIGFuIG9wdGltaXphdGlvbi4gSXQgbXVzdCwgaG93ZXZlciwgcHJpb3JpdGl6ZSB0 aGUgZmF1bHRpbmcgYWRkcmVzcwogICogb3ZlciBhbGwgdGhlIG90aGVycy4KICAqLwotdHlwZWRl ZiB2bV9mYXVsdF90ICgqZGV2X3BhZ2VfZmF1bHRfdCkoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEsCi0JCQkJdW5zaWduZWQgbG9uZyBhZGRyLAotCQkJCWNvbnN0IHN0cnVjdCBwYWdlICpwYWdl LAotCQkJCXVuc2lnbmVkIGludCBmbGFncywKLQkJCQlwbWRfdCAqcG1kcCk7CiAKIHN0cnVjdCBo bW1fZGV2bWVtIHsKIAlzdHJ1Y3QgY29tcGxldGlvbgkJY29tcGxldGlvbjsKQEAgLTcwOSw3ICs3 MDQsNiBAQCBzdHJ1Y3QgaG1tX2Rldm1lbSB7CiAJc3RydWN0IGRldl9wYWdlbWFwCQlwYWdlbWFw OwogCWNvbnN0IHN0cnVjdCBobW1fZGV2bWVtX29wcwkqb3BzOwogCXN0cnVjdCBwZXJjcHVfcmVm CQlyZWY7Ci0JZGV2X3BhZ2VfZmF1bHRfdAkJcGFnZV9mYXVsdDsKIH07CiAKIC8qCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L21lbXJlbWFwLmggYi9pbmNsdWRlL2xpbnV4L21lbXJlbWFwLmgK aW5kZXggY2VjMDJkNTQwMGYxLi43MmE4YTFhOTMwM2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvbWVtcmVtYXAuaAorKysgYi9pbmNsdWRlL2xpbnV4L21lbXJlbWFwLmgKQEAgLTgwLDYgKzgw LDEyIEBAIHN0cnVjdCBkZXZfcGFnZW1hcF9vcHMgewogCSAqIFdhaXQgZm9yIHJlZmNvdW50IGlu IHN0cnVjdCBkZXZfcGFnZW1hcCB0byBiZSBpZGxlIGFuZCByZWFwIGl0LgogCSAqLwogCXZvaWQg KCpjbGVhbnVwKShzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKTsKKworCS8qCisJICogVXNlZCBm b3IgcHJpdmF0ZSAodW4tYWRkcmVzc2FibGUpIGRldmljZSBtZW1vcnkgb25seS4gIE11c3QgbWln cmF0ZQorCSAqIHRoZSBwYWdlIGJhY2sgdG8gYSBDUFUgYWNjZXNzaWJsZSBwYWdlLgorCSAqLwor CXZtX2ZhdWx0X3QgKCptaWdyYXRlX3RvX3JhbSkoc3RydWN0IHZtX2ZhdWx0ICp2bWYpOwogfTsK IAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N3YXBvcHMuaCBiL2luY2x1ZGUvbGlu dXgvc3dhcG9wcy5oCmluZGV4IDRkOTYxNjY4ZTVmYy4uMTViZGI2ZmU3MWU1IDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L3N3YXBvcHMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3N3YXBvcHMuaApA QCAtMTI5LDEyICsxMjksNiBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICpkZXZpY2VfcHJp dmF0ZV9lbnRyeV90b19wYWdlKHN3cF9lbnRyeV90IGVudHJ5KQogewogCXJldHVybiBwZm5fdG9f cGFnZShzd3Bfb2Zmc2V0KGVudHJ5KSk7CiB9Ci0KLXZtX2ZhdWx0X3QgZGV2aWNlX3ByaXZhdGVf ZW50cnlfZmF1bHQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0JCSAgICAgICB1bnNpZ25l ZCBsb25nIGFkZHIsCi0JCSAgICAgICBzd3BfZW50cnlfdCBlbnRyeSwKLQkJICAgICAgIHVuc2ln bmVkIGludCBmbGFncywKLQkJICAgICAgIHBtZF90ICpwbWRwKTsKICNlbHNlIC8qIENPTkZJR19E RVZJQ0VfUFJJVkFURSAqLwogc3RhdGljIGlubGluZSBzd3BfZW50cnlfdCBtYWtlX2RldmljZV9w cml2YXRlX2VudHJ5KHN0cnVjdCBwYWdlICpwYWdlLCBib29sIHdyaXRlKQogewpAQCAtMTY0LDE1 ICsxNTgsNiBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICpkZXZpY2VfcHJpdmF0ZV9lbnRy eV90b19wYWdlKHN3cF9lbnRyeV90IGVudHJ5KQogewogCXJldHVybiBOVUxMOwogfQotCi1zdGF0 aWMgaW5saW5lIHZtX2ZhdWx0X3QgZGV2aWNlX3ByaXZhdGVfZW50cnlfZmF1bHQoc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsCi0JCQkJICAgICB1bnNpZ25lZCBsb25nIGFkZHIsCi0JCQkJICAg ICBzd3BfZW50cnlfdCBlbnRyeSwKLQkJCQkgICAgIHVuc2lnbmVkIGludCBmbGFncywKLQkJCQkg ICAgIHBtZF90ICpwbWRwKQotewotCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7Ci19CiAjZW5kaWYg LyogQ09ORklHX0RFVklDRV9QUklWQVRFICovCiAKICNpZmRlZiBDT05GSUdfTUlHUkFUSU9OCmRp ZmYgLS1naXQgYS9rZXJuZWwvbWVtcmVtYXAuYyBiL2tlcm5lbC9tZW1yZW1hcC5jCmluZGV4IDcy NzIwMjdmYmRkNy4uNTI0NWMyNWIxMGUzIDEwMDY0NAotLS0gYS9rZXJuZWwvbWVtcmVtYXAuYwor KysgYi9rZXJuZWwvbWVtcmVtYXAuYwpAQCAtMTEsNyArMTEsNiBAQAogI2luY2x1ZGUgPGxpbnV4 L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdF9iaXQuaD4KICNpbmNsdWRlIDxsaW51eC94 YXJyYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9obW0uaD4KIAogc3RhdGljIERFRklORV9YQVJSQVko cGdtYXBfYXJyYXkpOwogI2RlZmluZSBTRUNUSU9OX01BU0sgfigoMVVMIDw8IFBBX1NFQ1RJT05f U0hJRlQpIC0gMSkKQEAgLTQ2LDM2ICs0NSw2IEBAIHN0YXRpYyBpbnQgZGV2X3BhZ2VtYXBfZ2V0 X29wcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZfcGFnZW1hcCAqcGdtYXApCiB9CiAj ZW5kaWYgLyogQ09ORklHX0RFVl9QQUdFTUFQX09QUyAqLwogCi0jaWYgSVNfRU5BQkxFRChDT05G SUdfREVWSUNFX1BSSVZBVEUpCi12bV9mYXVsdF90IGRldmljZV9wcml2YXRlX2VudHJ5X2ZhdWx0 KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAotCQkgICAgICAgdW5zaWduZWQgbG9uZyBhZGRy LAotCQkgICAgICAgc3dwX2VudHJ5X3QgZW50cnksCi0JCSAgICAgICB1bnNpZ25lZCBpbnQgZmxh Z3MsCi0JCSAgICAgICBwbWRfdCAqcG1kcCkKLXsKLQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGRldmlj ZV9wcml2YXRlX2VudHJ5X3RvX3BhZ2UoZW50cnkpOwotCXN0cnVjdCBobW1fZGV2bWVtICpkZXZt ZW07Ci0KLQlkZXZtZW0gPSBjb250YWluZXJfb2YocGFnZS0+cGdtYXAsIHR5cGVvZigqZGV2bWVt KSwgcGFnZW1hcCk7Ci0KLQkvKgotCSAqIFRoZSBwYWdlX2ZhdWx0KCkgY2FsbGJhY2sgbXVzdCBt aWdyYXRlIHBhZ2UgYmFjayB0byBzeXN0ZW0gbWVtb3J5Ci0JICogc28gdGhhdCBDUFUgY2FuIGFj Y2VzcyBpdC4gVGhpcyBtaWdodCBmYWlsIGZvciB2YXJpb3VzIHJlYXNvbnMKLQkgKiAoZGV2aWNl IGlzc3VlLCBkZXZpY2Ugd2FzIHVuc2FmZWx5IHVucGx1Z2dlZCwgLi4uKS4gV2hlbiBzdWNoCi0J ICogZXJyb3IgY29uZGl0aW9ucyBoYXBwZW4sIHRoZSBjYWxsYmFjayBtdXN0IHJldHVybiBWTV9G QVVMVF9TSUdCVVMuCi0JICoKLQkgKiBOb3RlIHRoYXQgYmVjYXVzZSBtZW1vcnkgY2dyb3VwIGNo YXJnZXMgYXJlIGFjY291bnRlZCB0byB0aGUgZGV2aWNlCi0JICogbWVtb3J5LCB0aGlzIHNob3Vs ZCBuZXZlciBmYWlsIGJlY2F1c2Ugb2YgbWVtb3J5IHJlc3RyaWN0aW9ucyAoYnV0Ci0JICogYWxs b2NhdGlvbiBvZiByZWd1bGFyIHN5c3RlbSBwYWdlIG1pZ2h0IHN0aWxsIGZhaWwgYmVjYXVzZSB3 ZSBhcmUKLQkgKiBvdXQgb2YgbWVtb3J5KS4KLQkgKgotCSAqIFRoZXJlIGlzIGEgbW9yZSBpbi1k ZXB0aCBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoYXQgY2FsbGJhY2sgY2FuIGFuZAotCSAqIGNhbm5v dCBkbywgaW4gaW5jbHVkZS9saW51eC9tZW1yZW1hcC5oCi0JICovCi0JcmV0dXJuIGRldm1lbS0+ cGFnZV9mYXVsdCh2bWEsIGFkZHIsIHBhZ2UsIGZsYWdzLCBwbWRwKTsKLX0KLSNlbmRpZiAvKiBD T05GSUdfREVWSUNFX1BSSVZBVEUgKi8KLQogc3RhdGljIHZvaWQgcGdtYXBfYXJyYXlfZGVsZXRl KHN0cnVjdCByZXNvdXJjZSAqcmVzKQogewogCXhhX3N0b3JlX3JhbmdlKCZwZ21hcF9hcnJheSwg UEhZU19QRk4ocmVzLT5zdGFydCksIFBIWVNfUEZOKHJlcy0+ZW5kKSwKQEAgLTE5Miw2ICsxNjEs MTAgQEAgdm9pZCAqZGV2bV9tZW1yZW1hcF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkZXZfcGFnZW1hcCAqcGdtYXApCiAJCQlXQVJOKDEsICJEZXZpY2UgcHJpdmF0ZSBtZW1vcnkg bm90IHN1cHBvcnRlZFxuIik7CiAJCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAkJfQorCQlp ZiAoIXBnbWFwLT5vcHMgfHwgIXBnbWFwLT5vcHMtPm1pZ3JhdGVfdG9fcmFtKSB7CisJCQlXQVJO KDEsICJNaXNzaW5nIG1pZ3JhdGVfdG9fcmFtIG1ldGhvZFxuIik7CisJCQlyZXR1cm4gRVJSX1BU UigtRUlOVkFMKTsKKwkJfQogCQlicmVhazsKIAljYXNlIE1FTU9SWV9ERVZJQ0VfUFVCTElDOgog CQlpZiAoIUlTX0VOQUJMRUQoQ09ORklHX0RFVklDRV9QVUJMSUMpKSB7CmRpZmYgLS1naXQgYS9t bS9obW0uYyBiL21tL2htbS5jCmluZGV4IDBhZGQ1MDk0NGQ2NC4uMmU1NjQyZGM2YjA0IDEwMDY0 NAotLS0gYS9tbS9obW0uYworKysgYi9tbS9obW0uYwpAQCAtMTM2MywxNSArMTM2MywxMiBAQCBz dGF0aWMgdm9pZCBobW1fZGV2bWVtX3JlZl9raWxsKHN0cnVjdCBkZXZfcGFnZW1hcCAqcGdtYXAp CiAJcGVyY3B1X3JlZl9raWxsKHBnbWFwLT5yZWYpOwogfQogCi1zdGF0aWMgdm1fZmF1bHRfdCBo bW1fZGV2bWVtX2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAotCQkJICAgIHVuc2ln bmVkIGxvbmcgYWRkciwKLQkJCSAgICBjb25zdCBzdHJ1Y3QgcGFnZSAqcGFnZSwKLQkJCSAgICB1 bnNpZ25lZCBpbnQgZmxhZ3MsCi0JCQkgICAgcG1kX3QgKnBtZHApCitzdGF0aWMgdm1fZmF1bHRf dCBobW1fZGV2bWVtX21pZ3JhdGVfdG9fcmFtKHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogewotCXN0 cnVjdCBobW1fZGV2bWVtICpkZXZtZW0gPSBwYWdlLT5wZ21hcC0+ZGF0YTsKKwlzdHJ1Y3QgaG1t X2Rldm1lbSAqZGV2bWVtID0gdm1mLT5wYWdlLT5wZ21hcC0+ZGF0YTsKIAotCXJldHVybiBkZXZt ZW0tPm9wcy0+ZmF1bHQoZGV2bWVtLCB2bWEsIGFkZHIsIHBhZ2UsIGZsYWdzLCBwbWRwKTsKKwly ZXR1cm4gZGV2bWVtLT5vcHMtPmZhdWx0KGRldm1lbSwgdm1mLT52bWEsIHZtZi0+YWRkcmVzcywg dm1mLT5wYWdlLAorCQkJdm1mLT5mbGFncywgdm1mLT5wbWQpOwogfQogCiBzdGF0aWMgdm9pZCBo bW1fZGV2bWVtX2ZyZWUoc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmRhdGEpCkBAIC0xMzg1LDYg KzEzODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wYWdlbWFwX29wcyBobW1fcGFnZW1h cF9vcHMgPSB7CiAJLnBhZ2VfZnJlZQkJPSBobW1fZGV2bWVtX2ZyZWUsCiAJLmtpbGwJCQk9IGht bV9kZXZtZW1fcmVmX2tpbGwsCiAJLmNsZWFudXAJCT0gaG1tX2Rldm1lbV9yZWZfZXhpdCwKKwku bWlncmF0ZV90b19yYW0JCT0gaG1tX2Rldm1lbV9taWdyYXRlX3RvX3JhbSwKIH07CiAKIC8qCkBA IC0xNDM1LDcgKzE0MzMsNiBAQCBzdHJ1Y3QgaG1tX2Rldm1lbSAqaG1tX2Rldm1lbV9hZGQoY29u c3Qgc3RydWN0IGhtbV9kZXZtZW1fb3BzICpvcHMsCiAJZGV2bWVtLT5wZm5fZmlyc3QgPSBkZXZt ZW0tPnJlc291cmNlLT5zdGFydCA+PiBQQUdFX1NISUZUOwogCWRldm1lbS0+cGZuX2xhc3QgPSBk ZXZtZW0tPnBmbl9maXJzdCArCiAJCQkgICAocmVzb3VyY2Vfc2l6ZShkZXZtZW0tPnJlc291cmNl KSA+PiBQQUdFX1NISUZUKTsKLQlkZXZtZW0tPnBhZ2VfZmF1bHQgPSBobW1fZGV2bWVtX2ZhdWx0 OwogCiAJZGV2bWVtLT5wYWdlbWFwLnR5cGUgPSBNRU1PUllfREVWSUNFX1BSSVZBVEU7CiAJZGV2 bWVtLT5wYWdlbWFwLnJlcyA9ICpkZXZtZW0tPnJlc291cmNlOwpkaWZmIC0tZ2l0IGEvbW0vbWVt b3J5LmMgYi9tbS9tZW1vcnkuYwppbmRleCBkZGYyMGJkMGMzMTcuLmU4ZDAwMTIwMzJkNyAxMDA2 NDQKLS0tIGEvbW0vbWVtb3J5LmMKKysrIGIvbW0vbWVtb3J5LmMKQEAgLTI3ODIsMTMgKzI3ODIs OCBAQCB2bV9mYXVsdF90IGRvX3N3YXBfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkJCW1p Z3JhdGlvbl9lbnRyeV93YWl0KHZtYS0+dm1fbW0sIHZtZi0+cG1kLAogCQkJCQkgICAgIHZtZi0+ YWRkcmVzcyk7CiAJCX0gZWxzZSBpZiAoaXNfZGV2aWNlX3ByaXZhdGVfZW50cnkoZW50cnkpKSB7 Ci0JCQkvKgotCQkJICogRm9yIHVuLWFkZHJlc3NhYmxlIGRldmljZSBtZW1vcnkgd2UgY2FsbCB0 aGUgcGdtYXAKLQkJCSAqIGZhdWx0IGhhbmRsZXIgY2FsbGJhY2suIFRoZSBjYWxsYmFjayBtdXN0 IG1pZ3JhdGUKLQkJCSAqIHRoZSBwYWdlIGJhY2sgdG8gc29tZSBDUFUgYWNjZXNzaWJsZSBwYWdl LgotCQkJICovCi0JCQlyZXQgPSBkZXZpY2VfcHJpdmF0ZV9lbnRyeV9mYXVsdCh2bWEsIHZtZi0+ YWRkcmVzcywgZW50cnksCi0JCQkJCQkgdm1mLT5mbGFncywgdm1mLT5wbWQpOworCQkJdm1mLT5w YWdlID0gZGV2aWNlX3ByaXZhdGVfZW50cnlfdG9fcGFnZShlbnRyeSk7CisJCQlyZXQgPSB2bWYt PnBhZ2UtPnBnbWFwLT5vcHMtPm1pZ3JhdGVfdG9fcmFtKHZtZik7CiAJCX0gZWxzZSBpZiAoaXNf aHdwb2lzb25fZW50cnkoZW50cnkpKSB7CiAJCQlyZXQgPSBWTV9GQVVMVF9IV1BPSVNPTjsKIAkJ fSBlbHNlIHsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2 ZWF1