From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [RFC 19/22] xen/arm: p2m: Re-implement p2m_remove_using using p2m_set_entry Date: Thu, 28 Jul 2016 15:51:42 +0100 Message-ID: <1469717505-8026-20-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 bmcgdGhlIGdlbmVyaWMKZnVuY3Rpb24gcDJtX3NldF9lbnRyeS4KCkFsc28gZHJvcCB0aGUgb3Bl cmF0aW9uIFJFTU9WRSBpbiBhcHBseV8qIGFzIG5vYm9keSBpcyB1c2luZyBpdCBhbnltb3JlLgpO b3RlIHRoYXQgdGhlIGZ1bmN0aW9ucyBjb3VsZCBoYXZlIGJlZW4gZHJvcHBlZCBpbiBvbmUgZ28g YXQgdGhlIGVuZCwKaG93ZXZlciBJIGZpbmQgZWFzaWVyIHRvIGRyb3AgdGhlIG9wZXJhdGlvbnMg b25lIGJ5IG9uZSBhdm9pZGluZyBhIGJpZwpkZWxldGlvbiBpbiB0aGUgcGF0Y2ggdGhhdCBjb252 ZXJ0cyB0aGUgbGFzdCBvcGVyYXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGp1 bGllbi5ncmFsbEBhcm0uY29tPgotLS0KIHhlbi9hcmNoL2FybS9wMm0uYyB8IDEyNyArKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDExNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vcDJtLmMgYi94ZW4vYXJjaC9hcm0vcDJtLmMKaW5kZXggMjk3YjE3Ni4uMDky MDIyMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCisrKyBiL3hlbi9hcmNoL2FybS9w Mm0uYwpAQCAtNzI1LDcgKzcyNSw2IEBAIHN0YXRpYyBpbnQgcDJtX21lbV9hY2Nlc3NfcmFkaXhf c2V0KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGdmbl90IGdmbiwKIAogZW51bSBwMm1fb3BlcmF0 aW9uIHsKICAgICBJTlNFUlQsCi0gICAgUkVNT1ZFLAogICAgIE1FTUFDQ0VTUywKIH07CiAKQEAg LTc1MCw3ICs3NDksNiBAQCBzdGF0aWMgdm9pZCBwMm1fcHV0X2wzX3BhZ2UobWZuX3QgbWZuLCBw Mm1fdHlwZV90IHR5cGUpCiAgICAgfQogfQogCi0jaWYgMAogLyogRnJlZSBscGFlIHN1Yi10cmVl IGJlaGluZCBhbiBlbnRyeSAqLwogc3RhdGljIHZvaWQgcDJtX2ZyZWVfZW50cnkoc3RydWN0IHAy bV9kb21haW4gKnAybSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxwYWVfdCBlbnRyeSwg dW5zaWduZWQgaW50IGxldmVsKQpAQCAtMTA4Myw3ICsxMDgxLDYgQEAgc3RhdGljIGludCBwMm1f c2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAKICAgICByZXR1cm4gcmM7CiB9Ci0j ZW5kaWYKIAogLyoKICAqIFJldHVybnMgdHJ1ZSBpZiBzdGFydF9ncGFkZHIuLmVuZF9ncGFkZHIg Y29udGFpbnMgYXQgbGVhc3Qgb25lCkBAIC0xMTYxLDcgKzExNTgsNiBAQCBzdGF0aWMgaW50IGFw cGx5X29uZV9sZXZlbChzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgcDJtX2FjY2Vzc190IGEpCiB7CiAgICAgY29uc3QgcGFkZHJfdCBsZXZlbF9zaXplID0gbGV2 ZWxfc2l6ZXNbbGV2ZWxdOwotICAgIGNvbnN0IHBhZGRyX3QgbGV2ZWxfbWFzayA9IGxldmVsX21h c2tzW2xldmVsXTsKIAogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSAmZC0+YXJjaC5wMm07 CiAgICAgbHBhZV90IHB0ZTsKQEAgLTEyNDcsNzQgKzEyNDMsNiBAQCBzdGF0aWMgaW50IGFwcGx5 X29uZV9sZXZlbChzdHJ1Y3QgZG9tYWluICpkLAogCiAgICAgICAgIGJyZWFrOwogCi0gICAgY2Fz ZSBSRU1PVkU6Ci0gICAgICAgIGlmICggIXAybV92YWxpZChvcmlnX3B0ZSkgKQotICAgICAgICB7 Ci0gICAgICAgICAgICAvKiBQcm9ncmVzcyB1cCB0byBuZXh0IGJvdW5kYXJ5ICovCi0gICAgICAg ICAgICAqYWRkciA9ICgqYWRkciArIGxldmVsX3NpemUpICYgbGV2ZWxfbWFzazsKLSAgICAgICAg ICAgICptYWRkciA9ICgqbWFkZHIgKyBsZXZlbF9zaXplKSAmIGxldmVsX21hc2s7Ci0gICAgICAg ICAgICByZXR1cm4gUDJNX09ORV9QUk9HUkVTU19OT1A7Ci0gICAgICAgIH0KLQotICAgICAgICBp ZiAoIGxldmVsIDwgMyApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICggcDJtX3RhYmxlKG9y aWdfcHRlKSApCi0gICAgICAgICAgICAgICAgcmV0dXJuIFAyTV9PTkVfREVTQ0VORDsKLQotICAg ICAgICAgICAgaWYgKCBvcCA9PSBSRU1PVkUgJiYKLSAgICAgICAgICAgICAgICAgIWlzX21hcHBp bmdfYWxpZ25lZCgqYWRkciwgZW5kX2dwYWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAwLCAvKiBtYWRkciBkb2Vzbid0IG1hdHRlciBmb3IgcmVtb3ZlICovCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxfc2l6ZSkgKQotICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICAgICogUmVtb3ZpbmcgYSBt YXBwaW5nIGZyb20gdGhlIG1pZGRsZSBvZiBhIHN1cGVycGFnZS4gU2hhdHRlcgotICAgICAgICAg ICAgICAgICAqIGFuZCBkZXNjZW5kLgotICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAg ICAgICpmbHVzaCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgcmMgPSBwMm1fc2hhdHRlcl9wYWdl KHAybSwgZW50cnksIGxldmVsKTsKLSAgICAgICAgICAgICAgICBpZiAoIHJjIDwgMCApCi0gICAg ICAgICAgICAgICAgICAgIHJldHVybiByYzsKLQotICAgICAgICAgICAgICAgIHJldHVybiBQMk1f T05FX0RFU0NFTkQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvKgotICAg ICAgICAgKiBFbnN1cmUgdGhhdCB0aGUgZ3Vlc3QgYWRkcmVzcyBhZGRyIGN1cnJlbnRseSBiZWlu ZwotICAgICAgICAgKiBoYW5kbGVkICh0aGF0IGlzIGluIHRoZSByYW5nZSBnaXZlbiBhcyBhcmd1 bWVudCB0bwotICAgICAgICAgKiB0aGlzIGZ1bmN0aW9uKSBpcyBhY3R1YWxseSBtYXBwZWQgdG8g dGhlIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgICogbWFjaGluZSBhZGRyZXNzIGluIHRoZSBzcGVj aWZpZWQgcmFuZ2UuIG1hZGRyIGhlcmUgaXMKLSAgICAgICAgICogdGhlIG1hY2hpbmUgYWRkcmVz cyBnaXZlbiB0byB0aGUgZnVuY3Rpb24sIHdoaWxlCi0gICAgICAgICAqIG9yaWdfcHRlLnAybS5i YXNlIGlzIHRoZSBtYWNoaW5lIGZyYW1lIG51bWJlciBhY3R1YWxseQotICAgICAgICAgKiBtYXBw ZWQgdG8gdGhlIGd1ZXN0IGFkZHJlc3M6IGNoZWNrIGlmIHRoZSB0d28gY29ycmVzcG9uZC4KLSAg ICAgICAgICovCi0gICAgICAgICBpZiAoIG9wID09IFJFTU9WRSAmJgotICAgICAgICAgICAgICBw Zm5fdG9fcGFkZHIob3JpZ19wdGUucDJtLmJhc2UpICE9ICptYWRkciApCi0gICAgICAgICAgICAg cHJpbnRrKFhFTkxPR19HX1dBUk5JTkcKLSAgICAgICAgICAgICAgICAgICAgInAybV9yZW1vdmUg ZG9tJWQ6IG1hcHBpbmcgYXQgJSJQUklwYWRkciIgaXMgb2YgbWFkZHIgJSJQUklwYWRkciIgbm90 ICUiUFJJcGFkZHIiIGFzIGV4cGVjdGVkXG4iLAotICAgICAgICAgICAgICAgICAgICBkLT5kb21h aW5faWQsICphZGRyLCBwZm5fdG9fcGFkZHIob3JpZ19wdGUucDJtLmJhc2UpLAotICAgICAgICAg ICAgICAgICAgICAqbWFkZHIpOwotCi0gICAgICAgICpmbHVzaCA9IHRydWU7Ci0KLSAgICAgICAg cDJtX3JlbW92ZV9wdGUoZW50cnksIHAybS0+Y2xlYW5fcHRlKTsKLSAgICAgICAgcDJtX21lbV9h Y2Nlc3NfcmFkaXhfc2V0KHAybSwgX2dmbihwYWRkcl90b19wZm4oKmFkZHIpKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHAybV9hY2Nlc3Nfcnd4KTsKLQotICAgICAgICAqYWRk ciArPSBsZXZlbF9zaXplOwotICAgICAgICAqbWFkZHIgKz0gbGV2ZWxfc2l6ZTsKLQotICAgICAg ICBwMm0tPnN0YXRzLm1hcHBpbmdzW2xldmVsXS0tOwotCi0gICAgICAgIGlmICggbGV2ZWwgPT0g MyApCi0gICAgICAgICAgICBwMm1fcHV0X2wzX3BhZ2UoX21mbihvcmlnX3B0ZS5wMm0uYmFzZSks IG9yaWdfcHRlLnAybS50eXBlKTsKLQotICAgICAgICAvKgotICAgICAgICAgKiBUaGlzIGlzIHN0 aWxsIGEgc2luZ2xlIHB0ZSB3cml0ZSwgbm8gbWF0dGVyIHRoZSBsZXZlbCwgc28gbm8gbmVlZCB0 bwotICAgICAgICAgKiBzY2FsZS4KLSAgICAgICAgICovCi0gICAgICAgIHJldHVybiBQMk1fT05F X1BST0dSRVNTOwotCiAgICAgY2FzZSBNRU1BQ0NFU1M6CiAgICAgICAgIGlmICggbGV2ZWwgPCAz ICkKICAgICAgICAgewpAQCAtMTUyNiw0MyArMTQ1NCw2IEBAIHN0YXRpYyBpbnQgYXBwbHlfcDJt X2NoYW5nZXMoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgfQogCiAgICAgICAgIEJVR19PTihs ZXZlbCA+IDMpOwotCi0gICAgICAgIGlmICggb3AgPT0gUkVNT1ZFICkKLSAgICAgICAgewotICAg ICAgICAgICAgZm9yICggOyBsZXZlbCA+IFAyTV9ST09UX0xFVkVMOyBsZXZlbC0tICkKLSAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICBscGFlX3Qgb2xkX2VudHJ5OwotICAgICAgICAgICAg ICAgIGxwYWVfdCAqZW50cnk7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9mZnNldDsK LQotICAgICAgICAgICAgICAgIHBnID0gcGFnZXNbbGV2ZWxdOwotCi0gICAgICAgICAgICAgICAg LyoKLSAgICAgICAgICAgICAgICAgKiBObyBuZWVkIHRvIHRyeSB0aGUgcHJldmlvdXMgbGV2ZWwg aWYgdGhlIGN1cnJlbnQgb25lCi0gICAgICAgICAgICAgICAgICogc3RpbGwgY29udGFpbnMgc29t ZSBtYXBwaW5ncy4KLSAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICBpZiAoIHBn LT51LmludXNlLnAybV9yZWZjb3VudCApCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0g ICAgICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0c1tsZXZlbCAtIDFdOwotICAgICAgICAgICAg ICAgIGVudHJ5ID0gJm1hcHBpbmdzW2xldmVsIC0gMV1bb2Zmc2V0XTsKLSAgICAgICAgICAgICAg ICBvbGRfZW50cnkgPSAqZW50cnk7Ci0KLSAgICAgICAgICAgICAgICBwYWdlX2xpc3RfZGVsKHBn LCAmcDJtLT5wYWdlcyk7Ci0KLSAgICAgICAgICAgICAgICBwMm1fcmVtb3ZlX3B0ZShlbnRyeSwg cDJtLT5jbGVhbl9wdGUpOwotCi0gICAgICAgICAgICAgICAgcDJtLT5zdGF0cy5tYXBwaW5nc1ts ZXZlbCAtIDFdLS07Ci0gICAgICAgICAgICAgICAgdXBkYXRlX3JlZmVyZW5jZV9tYXBwaW5nKHBh Z2VzW2xldmVsIC0gMV0sIG9sZF9lbnRyeSwgKmVudHJ5KTsKLQotICAgICAgICAgICAgICAgIC8q Ci0gICAgICAgICAgICAgICAgICogV2UgY2FuJ3QgZnJlZSB0aGUgcGFnZSBub3cgYmVjYXVzZSBp dCBtYXkgYmUgcHJlc2VudAotICAgICAgICAgICAgICAgICAqIGluIHRoZSBndWVzdCBUTEIuIFF1 ZXVlIGl0IGFuZCBmcmVlIGl0IGFmdGVyIHRoZSBUTEIKLSAgICAgICAgICAgICAgICAgKiBoYXMg YmVlbiBmbHVzaGVkLgotICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgIHBhZ2Vf bGlzdF9hZGQocGcsICZmcmVlX3BhZ2VzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQogICAg IH0KIAogICAgIGlmICggb3AgPT0gSU5TRVJUICkKQEAgLTE2MDQsOCArMTQ5NSwxMCBAQCBvdXQ6 CiAgICAgICAgICAqIGFkZHIga2VlcHMgdGhlIGFkZHJlc3Mgb2YgdGhlIGVuZCBvZiB0aGUgbGFz dCBzdWNjZXNzZnVsbHktaW5zZXJ0ZWQKICAgICAgICAgICogbWFwcGluZy4KICAgICAgICAgICov Ci0gICAgICAgIGFwcGx5X3AybV9jaGFuZ2VzKGQsIFJFTU9WRSwgc2dmbiwgZ2ZuIC0gZ2ZuX3go c2dmbiksIHNtZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHAybV9pbnZhbGlkLCBk LT5hcmNoLnAybS5kZWZhdWx0X2FjY2Vzcyk7CisgICAgICAgIHAybV93cml0ZV9sb2NrKHAybSk7 CisgICAgICAgIHAybV9zZXRfZW50cnkocDJtLCBzZ2ZuLCBnZm4gLSBnZm5feChzZ2ZuKSwgSU5W QUxJRF9NRk4sCisgICAgICAgICAgICAgICAgICAgICAgcDJtX2ludmFsaWQsIHAybV9hY2Nlc3Nf cnd4KTsKKyAgICAgICAgcDJtX3dyaXRlX3VubG9jayhwMm0pOwogICAgIH0KIAogICAgIHJldHVy biByYzsKQEAgLTE2MjYsOSArMTUxOSwxNSBAQCBzdGF0aWMgaW5saW5lIGludCBwMm1fcmVtb3Zl X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIG5yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1mbl90IG1mbikKIHsKLSAgICByZXR1cm4gYXBwbHlfcDJtX2NoYW5nZXMoZCwgUkVN T1ZFLCBzdGFydF9nZm4sIG5yLCBtZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IGFyZ3VtZW50cyBiZWxvdyBub3QgdXNlZCB3aGVuIHJlbW92aW5nIG1hcHBpbmcgKi8KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwgcDJtX2ludmFsaWQsIGQtPmFyY2gucDJtLmRlZmF1 bHRfYWNjZXNzKTsKKyAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gJmQtPmFyY2gucDJtOwor ICAgIGludCByYzsKKworICAgIHAybV93cml0ZV9sb2NrKHAybSk7CisgICAgcmMgPSBwMm1fc2V0 X2VudHJ5KHAybSwgc3RhcnRfZ2ZuLCBuciwgSU5WQUxJRF9NRk4sCisgICAgICAgICAgICAgICAg ICAgICAgIHAybV9pbnZhbGlkLCBwMm1fYWNjZXNzX3J3eCk7CisgICAgcDJtX3dyaXRlX3VubG9j ayhwMm0pOworCisgICAgcmV0dXJuIHJjOwogfQogCiBpbnQgbWFwX3JlZ2lvbnNfcndfY2FjaGUo c3RydWN0IGRvbWFpbiAqZCwKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==