From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [RFC 20/22] xen/arm: p2m: Re-implement p2m_insert_mapping using p2m_set_entry Date: Thu, 28 Jul 2016 15:51:43 +0100 Message-ID: <1469717505-8026-21-git-send-email-julien.grall@arm.com> References: <1469717505-8026-1-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1469717505-8026-1-git-send-email-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: proskurin@sec.in.tum.de, Julien Grall , sstabellini@kernel.org, steve.capper@arm.com, wei.chen@linaro.org List-Id: xen-devel@lists.xenproject.org VGhlIGZ1bmN0aW9uIHAybV9pbnNlcnRfbWFwcGluZyBjYW4gYmUgcmUtaW1wbGVtZW50ZWQgdXNp bmcgdGhlIGdlbmVyaWMKZnVuY3Rpb24gcDJtX3NldF9lbnRyeS4KCk5vdGUgdGhhdCB0aGUgbWFw cGluZyBpcyBub3QgcmV2ZXJ0ZWQgYW55bW9yZSBpZiBYZW4gZmFpbHMgdG8gaW5zZXJ0IGEKbWFw cGluZy4gVGhpcyB3YXMgYWRkZWQgdG8gZW5zdXJlIHRoZSBNTUlPIGFyZSBub3Qga2VwdCBoYWxm LW1hcHBlZAppbiBjYXNlIG9mIGZhaWx1cmUgYW5kIHRvIGZvbGxvdyB0aGUgeDg2IGNvdW50ZXJw YXJ0LiBUaGlzIHdhcyByZW1vdmVkCm9uIHRoZSB4ODYgcGFydCBieSBjb21taXQgYzNjNzU2YmQg Ing4Ni9wMm06IHVzZSBsYXJnZSBwYWdlcyBmb3IgTU1JTwptYXBwaW5ncyIgYW5kIEkgdGhpbmsg d2Ugc2hvdWxkIGxldCB0aGUgY2FsbGVyIHRha2luZyBjYXJlIG9mIGl0LgoKRmluYWxseSBkcm9w IHRoZSBvcGVyYXRpb24gSU5TRVJUIGluIGFwcGx5XyogYXMgbm9ib2R5IGlzIHVzaW5nIGl0CmFu eW1vcmUuIE5vdGUgdGhhdCB0aGUgZnVuY3Rpb3MgY291bGQgaGF2ZSBiZWVuIGRyb3BwZWQgaW4g b25lIGdvIGF0IHRoZQplbmQsIGhvd2V2ZXIgSSBmaW5kIGVhc2llciB0byBkcm9wIHRoZSBvcGVy YXRpb25zIG9uZSBieSBvbmUgYXZvaWRpbmcgYQpiaWcgZGVsZXRpb24gaW4gdGhlIHBhdGNoIHRo YXQgY29udmVydCB0aGUgbGFzdCBvcGVyYXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3Jh bGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoKLS0tCiAgICBXaGlsc3QgdGhlcmUgaXMgbm8gc2Fm ZXR5IGNoZWNrcyBvbiB3aGF0IGlzIHJlcGxhY2VkIGluIHRoZSBQMk0KICAgIChzdWNoIGFzIGZv cmVpZ24vZ3JhbnQgbWFwcGluZyBhcyB4ODYgZG9lcyksIHdlIG1heSB3YW50IHRvIGFkZCBpdAog ICAgZW5zdXJpbmcgdGhlIGd1ZXN0IGlzIG5vdCBkb2luZyBzb21ldGhpbmcgZHVtYi4gQW55IG9w aW5pb25zPwotLS0KIHhlbi9hcmNoL2FybS9wMm0uYyB8IDE0OCArKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGlu c2VydGlvbnMoKyksIDEzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v cDJtLmMgYi94ZW4vYXJjaC9hcm0vcDJtLmMKaW5kZXggMDkyMDIyMi4uNzA3YzdiZSAxMDA2NDQK LS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCisrKyBiL3hlbi9hcmNoL2FybS9wMm0uYwpAQCAtNzI0 LDcgKzcyNCw2IEBAIHN0YXRpYyBpbnQgcDJtX21lbV9hY2Nlc3NfcmFkaXhfc2V0KHN0cnVjdCBw Mm1fZG9tYWluICpwMm0sIGdmbl90IGdmbiwKIH0KIAogZW51bSBwMm1fb3BlcmF0aW9uIHsKLSAg ICBJTlNFUlQsCiAgICAgTUVNQUNDRVNTLAogfTsKIApAQCAtMTA4Miw0MSArMTA4MSw2IEBAIHN0 YXRpYyBpbnQgcDJtX3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAogICAgIHJldHVy biByYzsKIH0KIAotLyoKLSAqIFJldHVybnMgdHJ1ZSBpZiBzdGFydF9ncGFkZHIuLmVuZF9ncGFk ZHIgY29udGFpbnMgYXQgbGVhc3Qgb25lCi0gKiBzdWl0YWJseSBhbGlnbmVkIGxldmVsX3NpemUg bWFwcHBpbmcgb2YgbWFkZHIuCi0gKgotICogU28gbG9uZyBhcyB0aGUgcmFuZ2UgaXMgbGFyZ2Ug ZW5vdWdoIHRoZSBlbmRfZ3BhZGRyIG5lZWQgbm90IGJlCi0gKiBhbGlnbmVkIChjYWxsZXJzIHNo b3VsZCBjcmVhdGUgb25lIHN1cGVycGFnZSBtYXBwaW5nIGJhc2VkIG9uIHRoaXMKLSAqIHJlc3Vs dCBhbmQgdGhlbiBjYWxsIHRoaXMgYWdhaW4gb24gdGhlIG5ldyByYW5nZSwgZXZlbnR1YWxseSB0 aGUKLSAqIHNsb3AgYXQgdGhlIGVuZCB3aWxsIGNhdXNlIHRoaXMgZnVuY3Rpb24gdG8gcmV0dXJu IGZhbHNlKS4KLSAqLwotc3RhdGljIGJvb2xfdCBpc19tYXBwaW5nX2FsaWduZWQoY29uc3QgcGFk ZHJfdCBzdGFydF9ncGFkZHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBwYWRkcl90IGVuZF9ncGFkZHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBwYWRkcl90IG1hZGRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgcGFkZHJfdCBsZXZlbF9zaXplKQotewotICAgIGNvbnN0IHBhZGRyX3QgbGV2ZWxfbWFzayA9 IGxldmVsX3NpemUgLSAxOwotCi0gICAgLyogTm8gaGFyZHdhcmUgc3VwZXJwYWdlcyBhdCBsZXZl bCAwICovCi0gICAgaWYgKCBsZXZlbF9zaXplID09IFpFUk9FVEhfU0laRSApCi0gICAgICAgIHJl dHVybiBmYWxzZTsKLQotICAgIC8qCi0gICAgICogQSByYW5nZSBzbWFsbGVyIHRoYW4gdGhlIHNp emUgb2YgYSBzdXBlcnBhZ2UgYXQgdGhpcyBsZXZlbAotICAgICAqIGNhbm5vdCBiZSBzdXBlcnBh Z2UgYWxpZ25lZC4KLSAgICAgKi8KLSAgICBpZiAoICggZW5kX2dwYWRkciAtIHN0YXJ0X2dwYWRk ciApIDwgbGV2ZWxfc2l6ZSAtIDEgKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvKiBC b3RoIHRoZSBncGFkZHIgYW5kIG1hZGRyIG11c3QgYmUgYWxpZ25lZCAqLwotICAgIGlmICggc3Rh cnRfZ3BhZGRyICYgbGV2ZWxfbWFzayApCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo IG1hZGRyICYgbGV2ZWxfbWFzayApCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4g dHJ1ZTsKLX0KLQogI2RlZmluZSBQMk1fT05FX0RFU0NFTkQgICAgICAgIDAKICNkZWZpbmUgUDJN X09ORV9QUk9HUkVTU19OT1AgICAweDEKICNkZWZpbmUgUDJNX09ORV9QUk9HUkVTUyAgICAgICAw eDEwCkBAIC0xMTY4LDgxICsxMTMyLDYgQEAgc3RhdGljIGludCBhcHBseV9vbmVfbGV2ZWwoc3Ry dWN0IGRvbWFpbiAqZCwKIAogICAgIHN3aXRjaCAoIG9wICkKICAgICB7Ci0gICAgY2FzZSBJTlNF UlQ6Ci0gICAgICAgIGlmICggaXNfbWFwcGluZ19hbGlnbmVkKCphZGRyLCBlbmRfZ3BhZGRyLCAq bWFkZHIsIGxldmVsX3NpemUpICYmCi0gICAgICAgICAgIC8qCi0gICAgICAgICAgICAqIFdlIGRv IG5vdCBoYW5kbGUgcmVwbGFjaW5nIGFuIGV4aXN0aW5nIHRhYmxlIHdpdGggYSBzdXBlcnBhZ2UK LSAgICAgICAgICAgICogb3Igd2hlbiBtZW1fYWNjZXNzIGlzIGluIHVzZS4KLSAgICAgICAgICAg ICovCi0gICAgICAgICAgICAgKGxldmVsID09IDMgfHwgKCFwMm1fdGFibGUob3JpZ19wdGUpICYm ICFwMm0tPm1lbV9hY2Nlc3NfZW5hYmxlZCkpICkKLSAgICAgICAgewotICAgICAgICAgICAgcmMg PSBwMm1fbWVtX2FjY2Vzc19yYWRpeF9zZXQocDJtLCBfZ2ZuKHBhZGRyX3RvX3BmbigqYWRkcikp LCBhKTsKLSAgICAgICAgICAgIGlmICggcmMgPCAwICkKLSAgICAgICAgICAgICAgICByZXR1cm4g cmM7Ci0KLSAgICAgICAgICAgIC8qIE5ldyBtYXBwaW5nIGlzIHN1cGVycGFnZSBhbGlnbmVkLCBt YWtlIGl0ICovCi0gICAgICAgICAgICBwdGUgPSBtZm5fdG9fcDJtX2VudHJ5KF9tZm4oKm1hZGRy ID4+IFBBR0VfU0hJRlQpLCB0LCBhKTsKLSAgICAgICAgICAgIGlmICggbGV2ZWwgPCAzICkKLSAg ICAgICAgICAgICAgICBwdGUucDJtLnRhYmxlID0gMDsgLyogU3VwZXJwYWdlIGVudHJ5ICovCi0K LSAgICAgICAgICAgIHAybV93cml0ZV9wdGUoZW50cnksIHB0ZSwgcDJtLT5jbGVhbl9wdGUpOwot Ci0gICAgICAgICAgICAqZmx1c2ggfD0gcDJtX3ZhbGlkKG9yaWdfcHRlKTsKLQotICAgICAgICAg ICAgKmFkZHIgKz0gbGV2ZWxfc2l6ZTsKLSAgICAgICAgICAgICptYWRkciArPSBsZXZlbF9zaXpl OwotCi0gICAgICAgICAgICBpZiAoIHAybV92YWxpZChvcmlnX3B0ZSkgKQotICAgICAgICAgICAg ewotICAgICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICAgICogV2UgY2FuJ3QgY3VycmVu dGx5IGdldCBoZXJlIGZvciBhbiBleGlzdGluZyB0YWJsZQotICAgICAgICAgICAgICAgICAqIG1h cHBpbmcsIHNpbmNlIHdlIGRvbid0IGhhbmRsZSByZXBsYWNpbmcgYW4KLSAgICAgICAgICAgICAg ICAgKiBleGlzdGluZyB0YWJsZSB3aXRoIGEgc3VwZXJwYWdlLiBJZiB3ZSBkaWQgd2Ugd291bGQK LSAgICAgICAgICAgICAgICAgKiBuZWVkIHRvIGhhbmRsZSBmcmVlaW5nIChhbmQgYWNjb3VudGlu ZykgZm9yIHRoZSBiaXQKLSAgICAgICAgICAgICAgICAgKiBvZiB0aGUgcDJtIHRyZWUgd2hpY2gg d2Ugd291bGQgYmUgYWJvdXQgdG8gbG9wIG9mZi4KLSAgICAgICAgICAgICAgICAgKi8KLSAgICAg ICAgICAgICAgICBCVUdfT04obGV2ZWwgPCAzICYmIHAybV90YWJsZShvcmlnX3B0ZSkpOwotICAg ICAgICAgICAgICAgIGlmICggbGV2ZWwgPT0gMyApCi0gICAgICAgICAgICAgICAgICAgIHAybV9w dXRfbDNfcGFnZShfbWZuKG9yaWdfcHRlLnAybS5iYXNlKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9yaWdfcHRlLnAybS50eXBlKTsKLSAgICAgICAgICAgIH0KLSAgICAg ICAgICAgIGVsc2UgLyogTmV3IG1hcHBpbmcgKi8KLSAgICAgICAgICAgICAgICBwMm0tPnN0YXRz Lm1hcHBpbmdzW2xldmVsXSsrOwotCi0gICAgICAgICAgICByZXR1cm4gUDJNX09ORV9QUk9HUkVT UzsKLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8qIE5l dyBtYXBwaW5nIGlzIG5vdCBzdXBlcnBhZ2UgYWxpZ25lZCwgY3JlYXRlIGEgbmV3IHRhYmxlIGVu dHJ5ICovCi0KLSAgICAgICAgICAgIC8qIEwzIGlzIGFsd2F5cyBzdWl0YWJseSBhbGlnbmVkIGZv ciBtYXBwaW5nIChoYW5kbGVkLCBhYm92ZSkgKi8KLSAgICAgICAgICAgIEJVR19PTihsZXZlbCA9 PSAzKTsKLQotICAgICAgICAgICAgLyogTm90IHByZXNlbnQgLT4gY3JlYXRlIHRhYmxlIGVudHJ5 IGFuZCBkZXNjZW5kICovCi0gICAgICAgICAgICBpZiAoICFwMm1fdmFsaWQob3JpZ19wdGUpICkK LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByYyA9IHAybV9jcmVhdGVfdGFibGUocDJt LCBlbnRyeSwgMCk7Ci0gICAgICAgICAgICAgICAgaWYgKCByYyA8IDAgKQotICAgICAgICAgICAg ICAgICAgICByZXR1cm4gcmM7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFAyTV9PTkVfREVTQ0VO RDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLyogRXhpc3Rpbmcgc3VwZXJwYWdlIG1h cHBpbmcgLT4gc2hhdHRlciBhbmQgZGVzY2VuZCAqLwotICAgICAgICAgICAgaWYgKCBwMm1fbWFw cGluZyhvcmlnX3B0ZSkgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICpmbHVzaCA9 IHRydWU7Ci0gICAgICAgICAgICAgICAgcmMgPSBwMm1fc2hhdHRlcl9wYWdlKHAybSwgZW50cnks IGxldmVsKTsKLSAgICAgICAgICAgICAgICBpZiAoIHJjIDwgMCApCi0gICAgICAgICAgICAgICAg ICAgIHJldHVybiByYzsKLSAgICAgICAgICAgIH0gLyogZWxzZTogYW4gZXhpc3RpbmcgdGFibGUg bWFwcGluZyAtPiBkZXNjZW5kICovCi0KLSAgICAgICAgICAgIEJVR19PTighcDJtX3RhYmxlKCpl bnRyeSkpOwotCi0gICAgICAgICAgICByZXR1cm4gUDJNX09ORV9ERVNDRU5EOwotICAgICAgICB9 Ci0KLSAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIE1FTUFDQ0VTUzoKICAgICAgICAgaWYgKCBs ZXZlbCA8IDMgKQogICAgICAgICB7CkBAIC0xNDU2LDEzICsxMzQ1LDYgQEAgc3RhdGljIGludCBh cHBseV9wMm1fY2hhbmdlcyhzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICBCVUdfT04obGV2ZWwg PiAzKTsKICAgICB9CiAKLSAgICBpZiAoIG9wID09IElOU0VSVCApCi0gICAgewotICAgICAgICBw Mm0tPm1heF9tYXBwZWRfZ2ZuID0gZ2ZuX21heChwMm0tPm1heF9tYXBwZWRfZ2ZuLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZm5fYWRkKHNnZm4sIG5yKSk7Ci0gICAg ICAgIHAybS0+bG93ZXN0X21hcHBlZF9nZm4gPSBnZm5fbWluKHAybS0+bG93ZXN0X21hcHBlZF9n Zm4sIHNnZm4pOwotICAgIH0KLQogICAgIHJjID0gMDsKIAogb3V0OgpAQCAtMTQ4NSwyMiArMTM2 Nyw2IEBAIG91dDoKIAogICAgIHAybV93cml0ZV91bmxvY2socDJtKTsKIAotICAgIGlmICggcmMg PCAwICYmICggb3AgPT0gSU5TRVJUICkgJiYKLSAgICAgICAgIGFkZHIgIT0gc3RhcnRfZ3BhZGRy ICkKLSAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgZ2ZuID0gcGFkZHJfdG9fcGZuKGFkZHIp OwotCi0gICAgICAgIEJVR19PTihhZGRyID09IGVuZF9ncGFkZHIpOwotICAgICAgICAvKgotICAg ICAgICAgKiBhZGRyIGtlZXBzIHRoZSBhZGRyZXNzIG9mIHRoZSBlbmQgb2YgdGhlIGxhc3Qgc3Vj Y2Vzc2Z1bGx5LWluc2VydGVkCi0gICAgICAgICAqIG1hcHBpbmcuCi0gICAgICAgICAqLwotICAg ICAgICBwMm1fd3JpdGVfbG9jayhwMm0pOwotICAgICAgICBwMm1fc2V0X2VudHJ5KHAybSwgc2dm biwgZ2ZuIC0gZ2ZuX3goc2dmbiksIElOVkFMSURfTUZOLAotICAgICAgICAgICAgICAgICAgICAg IHAybV9pbnZhbGlkLCBwMm1fYWNjZXNzX3J3eCk7Ci0gICAgICAgIHAybV93cml0ZV91bmxvY2so cDJtKTsKLSAgICB9Ci0KICAgICByZXR1cm4gcmM7CiB9CiAKQEAgLTE1MTAsOCArMTM3NiwxOCBA QCBzdGF0aWMgaW5saW5lIGludCBwMm1faW5zZXJ0X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX3R5cGVfdCB0KQogewotICAgIHJldHVy biBhcHBseV9wMm1fY2hhbmdlcyhkLCBJTlNFUlQsIHN0YXJ0X2dmbiwgbnIsIG1mbiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwgdCwgZC0+YXJjaC5wMm0uZGVmYXVsdF9hY2Nlc3Mp OworICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSAmZC0+YXJjaC5wMm07CisgICAgaW50IHJj OworCisgICAgcDJtX3dyaXRlX2xvY2socDJtKTsKKyAgICAvKgorICAgICAqIFhYWDogRG8gd2Ug d2FudCB0byBkbyBzYWZldHkgY2hlY2sgb24gd2hhdCBpcyByZXBsYWNlZD8KKyAgICAgKiBTZWUg d2hhdCB4ODYgaXMgZG9pbmcuCisgICAgICovCisgICAgcmMgPSBwMm1fc2V0X2VudHJ5KHAybSwg c3RhcnRfZ2ZuLCBuciwgbWZuLCB0LCBwMm0tPmRlZmF1bHRfYWNjZXNzKTsKKyAgICBwMm1fd3Jp dGVfdW5sb2NrKHAybSk7CisKKyAgICByZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50 IHAybV9yZW1vdmVfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkLAotLSAKMS45LjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK