From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [RFC 02/16] xen/arm: Introduce helpers to get/set an MFN from/to an LPAE entry Date: Mon, 8 Oct 2018 19:33:38 +0100 Message-ID: <20181008183352.16291-3-julien.grall@arm.com> References: <20181008183352.16291-1-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181008183352.16291-1-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Julien Grall , sstabellini@kernel.org, andre.przywara@linaro.org List-Id: xen-devel@lists.xenproject.org VGhlIG5ldyBoZWxwZXJzIG1ha2UgaXQgZWFzaWVyIHRvIHJlYWQgdGhlIGNvZGUgYnkgYWJzdHJh Y3RpbmcgdGhlIHdheSB0bwpzZXQvZ2V0IGFuIE1GTiBmcm9tL3RvIGFuIExQQUUgZW50cnkuIFRo ZSBoZWxwZXJzIGFyZSB1c2luZyAid2FsayIgYXMgdGhlCmJpdHMgYXJlIGNvbW1vbiBhY3Jvc3Mg ZGlmZmVyZW50IExQQUUgc3RhZ2VzLgoKQXQgdGhlIHNhbWUgdGltZSwgdXNlIHRoZSBuZXcgaGVs cGVycyB0byByZXBsYWNlIHRoZSB2YXJpb3VzIG9wZW4tY29kaW5nCnBsYWNlLgoKU2lnbmVkLW9m Zi1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCi0tLQogICAgVGhpcyBw YXRjaCB3YXMgb3JpZ2luYWxseSBzZW50IHNlcGFyYXRlbHkuCi0tLQogeGVuL2FyY2gvYXJtL21t LmMgICAgICAgICAgfCAxMCArKysrKy0tLS0tCiB4ZW4vYXJjaC9hcm0vcDJtLmMgICAgICAgICB8 IDE5ICsrKysrKysrKystLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS1hcm0vbHBhZS5oIHwgIDMg KysrCiAzIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9tbS5jIGIveGVuL2FyY2gvYXJtL21tLmMKaW5kZXgg N2EwNmEzM2UyMS4uMGJjMzFiMWQ5YiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL21tLmMKKysr IGIveGVuL2FyY2gvYXJtL21tLmMKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIGR1bXBfcHRfd2Fs ayhwYWRkcl90IHR0YnIsIHBhZGRyX3QgYWRkciwKIAogICAgICAgICAvKiBGb3IgbmV4dCBpdGVy YXRpb24gKi8KICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobWFwcGluZyk7Ci0gICAgICAgIG1h cHBpbmcgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihwdGUud2Fsay5iYXNlKSk7CisgICAgICAgIG1h cHBpbmcgPSBtYXBfZG9tYWluX3BhZ2UobHBhZV9nZXRfbWZuKHB0ZSkpOwogICAgIH0KIAogICAg IHVubWFwX2RvbWFpbl9wYWdlKG1hcHBpbmcpOwpAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyBp bmxpbmUgbHBhZV90IG1mbl90b194ZW5fZW50cnkobWZuX3QgbWZuLCB1bnNpZ25lZCBhdHRyKQog CiAgICAgQVNTRVJUKCEobWZuX3RvX21hZGRyKG1mbikgJiB+UEFERFJfTUFTSykpOwogCi0gICAg ZS5wdC5iYXNlID0gbWZuX3gobWZuKTsKKyAgICBscGFlX3NldF9tZm4oZSwgbWZuKTsKIAogICAg IHJldHVybiBlOwogfQpAQCAtNDkwLDcgKzQ5MCw3IEBAIG1mbl90IGRvbWFpbl9wYWdlX21hcF90 b19tZm4oY29uc3Qgdm9pZCAqcHRyKQogICAgIEFTU0VSVChzbG90ID49IDAgJiYgc2xvdCA8IERP TUhFQVBfRU5UUklFUyk7CiAgICAgQVNTRVJUKG1hcFtzbG90XS5wdC5hdmFpbCAhPSAwKTsKIAot ICAgIHJldHVybiBfbWZuKG1hcFtzbG90XS5wdC5iYXNlICsgb2Zmc2V0KTsKKyAgICByZXR1cm4g bWZuX2FkZChscGFlX2dldF9tZm4obWFwW3Nsb3RdKSwgb2Zmc2V0KTsKIH0KICNlbmRpZgogCkBA IC04NTEsNyArODUxLDcgQEAgdm9pZCBfX2luaXQgc2V0dXBfeGVuaGVhcF9tYXBwaW5ncyh1bnNp Z25lZCBsb25nIGJhc2VfbWZuLAogICAgICAgICAgICAgLyogbWZuX3RvX3ZpcnQgaXMgbm90IHZh bGlkIG9uIHRoZSAxc3QgMXN0IG1mbiwgc2luY2UgaXQKICAgICAgICAgICAgICAqIGlzIG5vdCB3 aXRoaW4gdGhlIHhlbmhlYXAuICovCiAgICAgICAgICAgICBmaXJzdCA9IHNsb3QgPT0geGVuaGVh cF9maXJzdF9maXJzdF9zbG90ID8KLSAgICAgICAgICAgICAgICB4ZW5oZWFwX2ZpcnN0X2ZpcnN0 IDogX19tZm5fdG9fdmlydChwLT5wdC5iYXNlKTsKKyAgICAgICAgICAgICAgICB4ZW5oZWFwX2Zp cnN0X2ZpcnN0IDogbWZuX3RvX3ZpcnQobHBhZV9nZXRfbWZuKCpwKSk7CiAgICAgICAgIH0KICAg ICAgICAgZWxzZSBpZiAoIHhlbmhlYXBfZmlyc3RfZmlyc3Rfc2xvdCA9PSAtMSkKICAgICAgICAg ewpAQCAtMTAwNyw3ICsxMDA3LDcgQEAgc3RhdGljIGludCBjcmVhdGVfeGVuX2VudHJpZXMoZW51 bSB4ZW5tYXBfb3BlcmF0aW9uIG9wLAogCiAgICAgICAgIEJVR19PTighbHBhZV9pc192YWxpZCgq ZW50cnkpKTsKIAotICAgICAgICB0aGlyZCA9IF9fbWZuX3RvX3ZpcnQoZW50cnktPnB0LmJhc2Up OworICAgICAgICB0aGlyZCA9IG1mbl90b192aXJ0KGxwYWVfZ2V0X21mbigqZW50cnkpKTsKICAg ICAgICAgZW50cnkgPSAmdGhpcmRbdGhpcmRfdGFibGVfb2Zmc2V0KGFkZHIpXTsKIAogICAgICAg ICBzd2l0Y2ggKCBvcCApIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9h cmNoL2FybS9wMm0uYwppbmRleCAzMGNmYjAxNDk4Li5mOGEyZjY0NTllIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC0yNjUsNyArMjY1 LDcgQEAgc3RhdGljIGludCBwMm1fbmV4dF9sZXZlbChzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBi b29sIHJlYWRfb25seSwKICAgICBpZiAoIGxwYWVfaXNfbWFwcGluZygqZW50cnksIGxldmVsKSAp CiAgICAgICAgIHJldHVybiBHVUVTVF9UQUJMRV9TVVBFUl9QQUdFOwogCi0gICAgbWZuID0gX21m bihlbnRyeS0+cDJtLmJhc2UpOworICAgIG1mbiA9IGxwYWVfZ2V0X21mbigqZW50cnkpOwogCiAg ICAgdW5tYXBfZG9tYWluX3BhZ2UoKnRhYmxlKTsKICAgICAqdGFibGUgPSBtYXBfZG9tYWluX3Bh Z2UobWZuKTsKQEAgLTM0OSw3ICszNDksNyBAQCBtZm5fdCBwMm1fZ2V0X2VudHJ5KHN0cnVjdCBw Mm1fZG9tYWluICpwMm0sIGdmbl90IGdmbiwKICAgICAgICAgaWYgKCBhICkKICAgICAgICAgICAg ICphID0gcDJtX21lbV9hY2Nlc3NfcmFkaXhfZ2V0KHAybSwgZ2ZuKTsKIAotICAgICAgICBtZm4g PSBfbWZuKGVudHJ5LnAybS5iYXNlKTsKKyAgICAgICAgbWZuID0gbHBhZV9nZXRfbWZuKGVudHJ5 KTsKICAgICAgICAgLyoKICAgICAgICAgICogVGhlIGVudHJ5IG1heSBwb2ludCB0byBhIHN1cGVy cGFnZS4gRmluZCB0aGUgTUZOIGFzc29jaWF0ZWQKICAgICAgICAgICogdG8gdGhlIEdGTi4KQEAg LTUxOSw3ICs1MTksNyBAQCBzdGF0aWMgbHBhZV90IG1mbl90b19wMm1fZW50cnkobWZuX3QgbWZu LCBwMm1fdHlwZV90IHQsIHAybV9hY2Nlc3NfdCBhKQogCiAgICAgQVNTRVJUKCEobWZuX3RvX21h ZGRyKG1mbikgJiB+UEFERFJfTUFTSykpOwogCi0gICAgZS5wMm0uYmFzZSA9IG1mbl94KG1mbik7 CisgICAgbHBhZV9zZXRfbWZuKGUsIG1mbik7CiAKICAgICByZXR1cm4gZTsKIH0KQEAgLTYyMSw3 ICs2MjEsNyBAQCBzdGF0aWMgdm9pZCBwMm1fcHV0X2wzX3BhZ2UoY29uc3QgbHBhZV90IHB0ZSkK ICAgICAgKi8KICAgICBpZiAoIHAybV9pc19mb3JlaWduKHB0ZS5wMm0udHlwZSkgKQogICAgIHsK LSAgICAgICAgbWZuX3QgbWZuID0gX21mbihwdGUucDJtLmJhc2UpOworICAgICAgICBtZm5fdCBt Zm4gPSBscGFlX2dldF9tZm4ocHRlKTsKIAogICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKG1mbikp OwogICAgICAgICBwdXRfcGFnZShtZm5fdG9fcGFnZShtZm4pKTsKQEAgLTY1NSw3ICs2NTUsNyBA QCBzdGF0aWMgdm9pZCBwMm1fZnJlZV9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAogICAg ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdGFibGUgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihl bnRyeS5wMm0uYmFzZSkpOworICAgIHRhYmxlID0gbWFwX2RvbWFpbl9wYWdlKGxwYWVfZ2V0X21m bihlbnRyeSkpOwogICAgIGZvciAoIGkgPSAwOyBpIDwgTFBBRV9FTlRSSUVTOyBpKysgKQogICAg ICAgICBwMm1fZnJlZV9lbnRyeShwMm0sICoodGFibGUgKyBpKSwgbGV2ZWwgKyAxKTsKIApAQCAt NjY5LDcgKzY2OSw3IEBAIHN0YXRpYyB2b2lkIHAybV9mcmVlX2VudHJ5KHN0cnVjdCBwMm1fZG9t YWluICpwMm0sCiAgICAgICovCiAgICAgcDJtX3RsYl9mbHVzaF9zeW5jKHAybSk7CiAKLSAgICBt Zm4gPSBfbWZuKGVudHJ5LnAybS5iYXNlKTsKKyAgICBtZm4gPSBscGFlX2dldF9tZm4oZW50cnkp OwogICAgIEFTU0VSVChtZm5fdmFsaWQobWZuKSk7CiAKICAgICBwZyA9IG1mbl90b19wYWdlKG1m bik7CkBAIC02ODgsNyArNjg4LDcgQEAgc3RhdGljIGJvb2wgcDJtX3NwbGl0X3N1cGVycGFnZShz dHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBscGFlX3QgKmVudHJ5LAogICAgIGJvb2wgcnYgPSB0cnVl OwogCiAgICAgLyogQ29udmVuaWVuY2UgYWxpYXNlcyAqLwotICAgIG1mbl90IG1mbiA9IF9tZm4o ZW50cnktPnAybS5iYXNlKTsKKyAgICBtZm5fdCBtZm4gPSBscGFlX2dldF9tZm4oKmVudHJ5KTsK ICAgICB1bnNpZ25lZCBpbnQgbmV4dF9sZXZlbCA9IGxldmVsICsgMTsKICAgICB1bnNpZ25lZCBp bnQgbGV2ZWxfb3JkZXIgPSBsZXZlbF9vcmRlcnNbbmV4dF9sZXZlbF07CiAKQEAgLTcxOSw3ICs3 MTksNyBAQCBzdGF0aWMgYm9vbCBwMm1fc3BsaXRfc3VwZXJwYWdlKHN0cnVjdCBwMm1fZG9tYWlu ICpwMm0sIGxwYWVfdCAqZW50cnksCiAgICAgICAgICAqIHRoZSBuZWNlc3NhcnkgZmllbGRzLiBT byB0aGUgY29ycmVjdCBwZXJtaXNzaW9uIGFyZSBrZXB0LgogICAgICAgICAgKi8KICAgICAgICAg cHRlID0gKmVudHJ5OwotICAgICAgICBwdGUucDJtLmJhc2UgPSBtZm5feChtZm5fYWRkKG1mbiwg aSA8PCBsZXZlbF9vcmRlcikpOworICAgICAgICBscGFlX3NldF9tZm4ocHRlLCBtZm5fYWRkKG1m biwgaSA8PCBsZXZlbF9vcmRlcikpOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIEZpcnN0IGFu ZCBzZWNvbmQgbGV2ZWwgcGFnZXMgc2V0IHAybS50YWJsZSA9IDAsIGJ1dCB0aGlyZApAQCAtOTUy LDcgKzk1Miw4IEBAIHN0YXRpYyBpbnQgX19wMm1fc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWlu ICpwMm0sCiAgICAgICogRnJlZSB0aGUgZW50cnkgb25seSBpZiB0aGUgb3JpZ2luYWwgcHRlIHdh cyB2YWxpZCBhbmQgdGhlIGJhc2UKICAgICAgKiBpcyBkaWZmZXJlbnQgKHRvIGF2b2lkIGZyZWVp bmcgd2hlbiBwZXJtaXNzaW9uIGlzIGNoYW5nZWQpLgogICAgICAqLwotICAgIGlmICggbHBhZV9p c192YWxpZChvcmlnX3B0ZSkgJiYgZW50cnktPnAybS5iYXNlICE9IG9yaWdfcHRlLnAybS5iYXNl ICkKKyAgICBpZiAoIGxwYWVfaXNfdmFsaWQob3JpZ19wdGUpICYmCisgICAgICAgICAhbWZuX2Vx KGxwYWVfZ2V0X21mbigqZW50cnkpLCBscGFlX2dldF9tZm4ob3JpZ19wdGUpKSApCiAgICAgICAg IHAybV9mcmVlX2VudHJ5KHAybSwgb3JpZ19wdGUsIGxldmVsKTsKIAogICAgIGlmICggbmVlZF9p b21tdV9wdF9zeW5jKHAybS0+ZG9tYWluKSAmJgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LWFybS9scGFlLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2xwYWUuaAppbmRleCAxNTU5NWNkMzVj Li4xN2ZkYzYwNzRmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2xwYWUuaAorKysg Yi94ZW4vaW5jbHVkZS9hc20tYXJtL2xwYWUuaApAQCAtMTUzLDYgKzE1Myw5IEBAIHN0YXRpYyBp bmxpbmUgYm9vbCBscGFlX2lzX3N1cGVycGFnZShscGFlX3QgcHRlLCB1bnNpZ25lZCBpbnQgbGV2 ZWwpCiAgICAgcmV0dXJuIChsZXZlbCA8IDMpICYmIGxwYWVfaXNfbWFwcGluZyhwdGUsIGxldmVs KTsKIH0KIAorI2RlZmluZSBscGFlX2dldF9tZm4ocHRlKSAgICAoX21mbigocHRlKS53YWxrLmJh c2UpKQorI2RlZmluZSBscGFlX3NldF9tZm4ocHRlLCBtZm4pICAoKHB0ZSkud2Fsay5iYXNlID0g bWZuX3gobWZuKSkKKwogLyoKICAqIEFBcmNoNjQgc3VwcG9ydHMgcGFnZXMgd2l0aCBkaWZmZXJl bnQgc2l6ZXMgKDRLLCAxNkssIGFuZCA2NEspLiBUbyBlbmFibGUKICAqIHBhZ2UgdGFibGUgd2Fs a3MgZm9yIHZhcmlvdXMgY29uZmlndXJhdGlvbnMsIHRoZSBmb2xsb3dpbmcgaGVscGVycyBlbmFi bGUKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=