From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 17/25] xen/arm: introduce allocate_memory Date: Tue, 31 Jul 2018 16:28:00 -0700 Message-ID: <1533079688-9541-17-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: julien.grall@arm.com Cc: Stefano Stabellini , sstabellini@kernel.org, andrii_anisov@epam.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGFuIGFsbG9jYXRlX21lbW9yeSBmdW5jdGlvbiBhYmxlIHRvIGFsbG9jYXRlIG1l bW9yeSBmb3IgRG9tVXMKYW5kIG1hcCBpdCBhdCB0aGUgcmlnaHQgZ3Vlc3QgYWRkcmVzc2VzLCBh Y2NvcmRpbmcgdG8gdGhlIGd1ZXN0IG1lbW9yeQptYXA6IEdVRVNUX1JBTTBfQkFTRSBhbmQgR1VF U1RfUkFNMV9CQVNFLgoKU2lnbmVkLW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5v c0B4aWxpbnguY29tPgotLS0KQ2hhbmdlcyBpbiB2MzoKLSBuZXcgcGF0Y2gKLS0tCiB4ZW4vYXJj aC9hcm0vZG9tYWluX2J1aWxkLmMgfCAxMjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMjQgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9h cmNoL2FybS9kb21haW5fYnVpbGQuYwppbmRleCBhYjcyYzM2Li5kZmE3NGU0IDEwMDY0NAotLS0g YS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKKysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9i dWlsZC5jCkBAIC0zNjksNiArMzY5LDEyOSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYWxsb2NhdGVf bWVtb3J5XzExKHN0cnVjdCBkb21haW4gKmQsCiAgICAgfQogfQogCitzdGF0aWMgYm9vbCBfX2lu aXQgaW5zZXJ0X2Jhbmsoc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBvcmRlcikKK3sKKyAgICBpbnQgcmVzLCBpOworICAgIG1mbl90 IHNtZm47CisgICAgcGFkZHJfdCBnYWRkciwgc2l6ZTsKKyAgICBzdHJ1Y3QgbWVtYmFuayAqYmFu azsKKworICAgIHNtZm4gPSBwYWdlX3RvX21mbihwZyk7CisgICAgc2l6ZSA9IHBmbl90b19wYWRk cigxVUwgPDwgb3JkZXIpOworCisgICAgLyoKKyAgICAgKiBEb21VIG1lbW9yeSBpcyBwcm92aWRl ZCBpbiB0d28gYmFua3M6CisgICAgICogICBHVUVTVF9SQU0wX0JBU0UgLSBHVUVTVF9SQU0wX0JB U0UgKyBHVUVTVF9SQU0wX1NJWkUKKyAgICAgKiAgIEdVRVNUX1JBTTFfQkFTRSAtIEdVRVNUX1JB TTFfQkFTRSArIEdVRVNUX1JBTTFfU0laRQorICAgICAqCisgICAgICogRmluZCB0aGUgcmlnaHQg Z2FkZHIgYWRkcmVzcyBmb3IgRG9tVXMgYWNjb3JkaW5nbHkuCisgICAgICovCisgICAgZ2FkZHIg PSBHVUVTVF9SQU0wX0JBU0U7CisgICAgaWYgKCBraW5mby0+bWVtLm5yX2JhbmtzID4gMCApCisg ICAgeworICAgICAgICBmb3IoIGkgPSAwOyBpIDwga2luZm8tPm1lbS5ucl9iYW5rczsgaSsrICkK KyAgICAgICAgeworICAgICAgICAgICAgYmFuayA9ICZraW5mby0+bWVtLmJhbmtbaV07CisgICAg ICAgICAgICBnYWRkciA9IGJhbmstPnN0YXJ0ICsgYmFuay0+c2l6ZTsKKyAgICAgICAgfQorICAg ICAgICBpZiAoIGJhbmstPnN0YXJ0ID09IEdVRVNUX1JBTTBfQkFTRSAmJgorICAgICAgICAgICAg IGdhZGRyICsgc2l6ZSA+IChHVUVTVF9SQU0wX0JBU0UgKyBHVUVTVF9SQU0wX1NJWkUpICkKKyAg ICAgICAgICAgIGdhZGRyID0gR1VFU1RfUkFNMV9CQVNFOworICAgICAgICBpZiAoIGJhbmstPnN0 YXJ0ID09IEdVRVNUX1JBTTFfQkFTRSAmJgorICAgICAgICAgICAgIGdhZGRyICsgc2l6ZSA+IChH VUVTVF9SQU0xX0JBU0UgKyBHVUVTVF9SQU0xX1NJWkUpICkKKyAgICAgICAgICAgIGdvdG8gZmFp bDsKKyAgICB9CisKKyAgICBkcHJpbnRrKFhFTkxPR19JTkZPLAorICAgICAgICAgICAgIkFsbG9j YXRlZCAlIyJQUklwYWRkciItJSMiUFJJcGFkZHIiOiUjIlBSSXBhZGRyIi0lIyJQUklwYWRkciIg KCVsZE1CLyVsZE1CLCBvcmRlciAlZClcbiIsCisgICAgICAgICAgICBtZm5fdG9fbWFkZHIoc21m biksIG1mbl90b19tYWRkcihzbWZuKSArIHNpemUsCisgICAgICAgICAgICBnYWRkciwgZ2FkZHIg KyBzaXplLAorICAgICAgICAgICAgMVVMIDw8IChvcmRlciArIFBBR0VfU0hJRlQgLSAyMCksCisg ICAgICAgICAgICAvKiBEb24ndCB3YW50IGZvcm1hdCB0aGlzIGFzIFBSSXBhZGRyICgxNiBkaWdp dCBoZXgpICovCisgICAgICAgICAgICAodW5zaWduZWQgbG9uZykoa2luZm8tPnVuYXNzaWduZWRf bWVtID4+IDIwKSwKKyAgICAgICAgICAgIG9yZGVyKTsKKworICAgIHJlcyA9IGd1ZXN0X3BoeXNt YXBfYWRkX3BhZ2UoZCwgZ2FkZHJfdG9fZ2ZuKGdhZGRyKSwgc21mbiwgb3JkZXIpOworICAgIGlm ICggcmVzICkKKyAgICB7CisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgIkZhaWxlZCBtYXAg cGFnZXMgdG8gRE9NVTogJWQiLCByZXMpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisg ICAga2luZm8tPnVuYXNzaWduZWRfbWVtIC09IHNpemU7CisgICAgYmFuayA9ICZraW5mby0+bWVt LmJhbmtba2luZm8tPm1lbS5ucl9iYW5rc107CisKKyAgICBiYW5rLT5zdGFydCA9IGdhZGRyOwor ICAgIGJhbmstPnNpemUgPSBzaXplOworICAgIGtpbmZvLT5tZW0ubnJfYmFua3MrKzsKKyAgICBy ZXR1cm4gdHJ1ZTsKKworZmFpbDoKKyAgICBmcmVlX2RvbWhlYXBfcGFnZXMocGcsIG9yZGVyKTsK KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBhbGxvY2F0ZV9tZW1v cnkoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykKK3sKKyAgICBj b25zdCB1bnNpZ25lZCBpbnQgbWluX29yZGVyID0gZ2V0X29yZGVyX2Zyb21fYnl0ZXMoTUIoNCkp OworICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOworICAgIHVuc2lnbmVkIGludCBvcmRlciA9IGdl dF9hbGxvY2F0aW9uX3NpemUoa2luZm8tPnVuYXNzaWduZWRfbWVtKTsKKyAgICBpbnQgaTsKKwor ICAgIGRwcmludGsoWEVOTE9HX0lORk8sICJBbGxvY2F0aW5nIG1hcHBpbmdzIHRvdGFsbGluZyAl bGRNQiBmb3IgZG9tJWQ6XG4iLAorICAgICAgICAgICAgLyogRG9uJ3Qgd2FudCBmb3JtYXQgdGhp cyBhcyBQUklwYWRkciAoMTYgZGlnaXQgaGV4KSAqLworICAgICAgICAgICAgKHVuc2lnbmVkIGxv bmcpKGtpbmZvLT51bmFzc2lnbmVkX21lbSA+PiAyMCksIGQtPmRvbWFpbl9pZCk7CisKKyAgICBr aW5mby0+bWVtLm5yX2JhbmtzID0gMDsKKworICAgIG9yZGVyID0gZ2V0X2FsbG9jYXRpb25fc2l6 ZShraW5mby0+dW5hc3NpZ25lZF9tZW0pOworICAgIGlmICggb3JkZXIgPiBHVUVTVF9SQU0wX1NJ WkUgKQorICAgICAgICBvcmRlciA9IEdVRVNUX1JBTTBfU0laRTsKKyAgICB3aGlsZSAoIGtpbmZv LT51bmFzc2lnbmVkX21lbSApCisgICAgeworICAgICAgICBwZyA9IGFsbG9jX2RvbWhlYXBfcGFn ZXMoZCwgb3JkZXIsIDApOworICAgICAgICBpZiAoICFwZyApCisgICAgICAgIHsKKyAgICAgICAg ICAgIG9yZGVyIC0tOworCisgICAgICAgICAgICBpZiAoIG9yZGVyID49IG1pbl9vcmRlciApCisg ICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIC8qIE5vIG1vcmUgd2UgY2Fu IGRvICovCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggIWlu c2VydF9iYW5rKGQsIGtpbmZvLCBwZywgb3JkZXIpICkKKyAgICAgICAgICAgIGJyZWFrOworCisg ICAgICAgIC8qCisgICAgICAgICAqIFN1Y2Nlc3MsIG5leHQgdGltZSBhcm91bmQgdHJ5IGFnYWlu IHRvIGdldCB0aGUgbGFyZ2VzdCBvcmRlcgorICAgICAgICAgKiBhbGxvY2F0aW9uIHBvc3NpYmxl LgorICAgICAgICAgKi8KKyAgICAgICAgb3JkZXIgPSBnZXRfYWxsb2NhdGlvbl9zaXplKGtpbmZv LT51bmFzc2lnbmVkX21lbSk7CisgICAgfQorCisgICAgaWYgKCBraW5mby0+dW5hc3NpZ25lZF9t ZW0gKQorICAgICAgICBkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiRmFpbGVkIHRvIGFsbG9jYXRl IHJlcXVlc3RlZCBkb21haW4gbWVtb3J5LiIKKyAgICAgICAgICAgICAgIC8qIERvbid0IHdhbnQg Zm9ybWF0IHRoaXMgYXMgUFJJcGFkZHIgKDE2IGRpZ2l0IGhleCkgKi8KKyAgICAgICAgICAgICAg ICIgJWxkTUIgdW5hbGxvY2F0ZWRcbiIsCisgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylr aW5mby0+dW5hc3NpZ25lZF9tZW0gPj4gMjApOworCisgICAgZm9yKCBpID0gMDsgaSA8IGtpbmZv LT5tZW0ubnJfYmFua3M7IGkrKyApCisgICAgeworICAgICAgICBkcHJpbnRrKFhFTkxPR19JTkZP LCAiRG9tJWQgQkFOS1slZF0gJSMiUFJJcGFkZHIiLSUjIlBSSXBhZGRyIiAoJWxkTUIpXG4iLAor ICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwKKyAgICAgICAgICAgICAgICBpLAorICAgICAg ICAgICAgICAgIGtpbmZvLT5tZW0uYmFua1tpXS5zdGFydCwKKyAgICAgICAgICAgICAgICBraW5m by0+bWVtLmJhbmtbaV0uc3RhcnQgKyBraW5mby0+bWVtLmJhbmtbaV0uc2l6ZSwKKyAgICAgICAg ICAgICAgICAvKiBEb24ndCB3YW50IGZvcm1hdCB0aGlzIGFzIFBSSXBhZGRyICgxNiBkaWdpdCBo ZXgpICovCisgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGtpbmZvLT5tZW0uYmFua1tp XS5zaXplID4+IDIwKSk7CisgICAgfQorfQorCiBzdGF0aWMgaW50IF9faW5pdCB3cml0ZV9wcm9w ZXJ0aWVzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9k ZSAqbm9kZSkKIHsKQEAgLTIyNDEsNyArMjM2NCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGNvbnN0 cnVjdF9kb21VKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkK ICAgICAvKiB0eXBlIG11c3QgYmUgc2V0IGJlZm9yZSBhbGxvY2F0ZSBtZW1vcnkgKi8KICAgICBk LT5hcmNoLnR5cGUgPSBraW5mby50eXBlOwogI2VuZGlmCi0gICAgYWxsb2NhdGVfbWVtb3J5XzEx KGQsICZraW5mbyk7CisgICAgYWxsb2NhdGVfbWVtb3J5KGQsICZraW5mbyk7CiAKICAgICByZXR1 cm4gX19jb25zdHJ1Y3RfZG9tYWluKGQsICZraW5mbyk7CiB9Ci0tIAoxLjkuMQoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=