From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v6 12/26] xen/arm: introduce allocate_memory Date: Fri, 2 Nov 2018 16:45:04 -0700 Message-ID: <1541202318-9840-12-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 , Achin.Gupta@arm.com, sstabellini@kernel.org, andrii_anisov@epam.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGFuIGFsbG9jYXRlX21lbW9yeSBmdW5jdGlvbiBhYmxlIHRvIGFsbG9jYXRlIG1l bW9yeSBmb3IgRG9tVXMKYW5kIG1hcCBpdCBhdCB0aGUgcmlnaHQgZ3Vlc3QgYWRkcmVzc2VzLCBh Y2NvcmRpbmcgdG8gdGhlIGd1ZXN0IG1lbW9yeQptYXA6IEdVRVNUX1JBTTBfQkFTRSBhbmQgR1VF U1RfUkFNMV9CQVNFLgoKVGhpcyBpcyB1bmRlciAjaWYgMCBhcyBub3QgdXNlZCBmb3Igbm93LgoK U2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KU2lnbmVk LW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vc0B4aWxpbnguY29tPgotLS0KQ2hh bmdlcyBpbiB2NjoKLSB0dXJuIGRwcmludGtzIGludG8gcHJpbnRrCi0gdXNlIHBhbmljIGluc3Rl YWQgb2YgcHJpbnRrK0JVR19PTgotIHVzZSBKdWxpZW4ncyBpbXBsZW1lbnRhdGlvbiBvZiBhbGxv Y2F0ZV9iYW5rX21lbW9yeQoKQ2hhbmdlcyBpbiB2NToKLSBpbXByb3ZlIGNvbW1pdCBtZXNzYWdl Ci0gY29kZSBzdHlsZQotIHJlbW92ZSB1bm5lZWRlZCBsb2NhbCB2YXIKLSB3aGlsZSBsb29wIGlu IGFsbG9jYXRlX2JhbmtfbWVtb3J5IHRvIGFsbG9jYXRlIG1lbW9yeSBzbyB0aGF0IGl0CiAgZG9l c24ndCBoYXZlIHRvIGJlIGNvbnRpZ3VvcwotIGNvbWJpbGUgd2hpbGUgbG9vcHMgaW4gYWxsb2Nh dGVfbWVtb3J5CgpDaGFuZ2VzIGluIHY0OgotIG1vdmUgZWFybGllciwgYWRkICNpZiAwCi0gaW50 cm9kdWNlIGFsbG9jYXRlX2JhbmtfbWVtb3J5LCByZW1vdmUgaW5zZXJ0X2JhbmsKLSBhbGxvY2F0 ZV9iYW5rX21lbW9yeSBhbGxvY2F0ZSBtZW1vcnkgYW5kIGluc2VydHMgdGhlIGJhbmssIHdoaWxl CiAgYWxsb2NhdGVfbWVtb3J5IHNwZWNpZmllcyB3aGVyZSB0byBkbyB0aGF0CgpDaGFuZ2VzIGlu IHYzOgotIG5ldyBwYXRjaAotLS0KIHhlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyB8IDEwMiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5n ZWQsIDEwMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9i dWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCmluZGV4IDY2YTI1OGEuLjg2YWJj YzYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJj aC9hcm0vZG9tYWluX2J1aWxkLmMKQEAgLTM2OCw2ICszNjgsMTA4IEBAIHN0YXRpYyB2b2lkIF9f aW5pdCBhbGxvY2F0ZV9tZW1vcnlfMTEoc3RydWN0IGRvbWFpbiAqZCwKICAgICB9CiB9CiAKKyNp ZiAwCitzdGF0aWMgYm9vbCBfX2luaXQgYWxsb2NhdGVfYmFua19tZW1vcnkoc3RydWN0IGRvbWFp biAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBrZXJu ZWxfaW5mbyAqa2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn Zm5fdCBzZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyB0b3Rfc2l6ZSkKK3sKKyAgICBpbnQgcmVzOworICAgIHN0cnVjdCBwYWdlX2luZm8g KnBnOworICAgIHN0cnVjdCBtZW1iYW5rICpiYW5rOworICAgIGdmbl90IGdmbiA9IHNnZm47Cisg ICAgdW5zaWduZWQgbG9uZyBzaXplID0gdG90X3NpemU7CisgICAgdW5zaWduZWQgaW50IG1heF9v cmRlciA9IH4wOworCisgICAgd2hpbGUgKCBzaXplID4gMCApCisgICAgeworICAgICAgICB1bnNp Z25lZCBpbnQgb3JkZXIgPSBnZXRfYWxsb2NhdGlvbl9zaXplKHNpemUpOworCisgICAgICAgIG9y ZGVyID0gbWluKG1heF9vcmRlciwgb3JkZXIpOworCisgICAgICAgIHBnID0gYWxsb2NfZG9taGVh cF9wYWdlcyhkLCBvcmRlciwgMCk7CisgICAgICAgIGlmICggIXBnICkKKyAgICAgICAgeworICAg ICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIElmIHdlIGNhbid0IGFsbG9jYXRlIG9uZSBwYWdl LCB0aGVuIGl0IGlzIHVubGlrZWx5IHRvCisgICAgICAgICAgICAgKiBzdWNjZWVkIGluIHRoZSBu ZXh0IGl0ZXJhdGlvbi4gU28gYmFpbCBvdXQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAg IGlmICggIW9yZGVyICkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg ICAgIC8qCisgICAgICAgICAgICAgKiBJZiB3ZSBjYW4ndCBhbGxvY2F0ZSBtZW1vcnkgd2l0aCBv cmRlciwgdGhlbiBpdCBpcworICAgICAgICAgICAgICogdW5saWtlbHkgdG8gc3VjY2VlZCBpbiB0 aGUgbmV4dCBpdGVyYXRpb24uCisgICAgICAgICAgICAgKiBSZWNvcmQgdGhlIG9yZGVyIC0gMSB0 byBhdm9pZCByZS10cnlpbmcuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1heF9vcmRl ciA9IG9yZGVyIC0gMTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAg ICAgcmVzID0gZ3Vlc3RfcGh5c21hcF9hZGRfcGFnZShkLCBnZm4sIHBhZ2VfdG9fbWZuKHBnKSwg b3JkZXIpOworICAgICAgICBpZiAoIHJlcyApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRwcmlu dGsoWEVOTE9HX0VSUiwgIkZhaWxlZCBtYXAgcGFnZXMgdG8gRE9NVTogJWQiLCByZXMpOworICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZ2ZuID0gZ2ZuX2Fk ZChnZm4sIDFVTCA8PCBvcmRlcik7CisgICAgICAgIHNpemUgLT0gKDFVTEwgPDwgKFBBR0VfU0hJ RlQgKyBvcmRlcikpOworICAgIH0KKworICAgIGJhbmsgPSAma2luZm8tPm1lbS5iYW5rW2tpbmZv LT5tZW0ubnJfYmFua3NdOworICAgIGJhbmstPnN0YXJ0ID0gZ2ZuX3RvX2dhZGRyKHNnZm4pOwor ICAgIGJhbmstPnNpemUgPSB0b3Rfc2l6ZTsKKyAgICBraW5mby0+bWVtLm5yX2JhbmtzKys7Cisg ICAga2luZm8tPnVuYXNzaWduZWRfbWVtIC09IHRvdF9zaXplOworCisgICAgcmV0dXJuIHRydWU7 Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBhbGxvY2F0ZV9tZW1vcnkoc3RydWN0IGRvbWFpbiAq ZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAg ICB1bnNpZ25lZCBsb25nIGJhbmtfc2l6ZTsKKworICAgIHByaW50ayhYRU5MT0dfSU5GTyAiQWxs b2NhdGluZyBtYXBwaW5ncyB0b3RhbGxpbmcgJWxkTUIgZm9yIGRvbSVkOlxuIiwKKyAgICAgICAg ICAgLyogRG9uJ3Qgd2FudCBmb3JtYXQgdGhpcyBhcyBQUklwYWRkciAoMTYgZGlnaXQgaGV4KSAq LworICAgICAgICAgICAodW5zaWduZWQgbG9uZykoa2luZm8tPnVuYXNzaWduZWRfbWVtID4+IDIw KSwgZC0+ZG9tYWluX2lkKTsKKworICAgIGtpbmZvLT5tZW0ubnJfYmFua3MgPSAwOworICAgIGJh bmtfc2l6ZSA9IE1JTihHVUVTVF9SQU0wX1NJWkUsIGtpbmZvLT51bmFzc2lnbmVkX21lbSk7Cisg ICAgaWYgKCAhYWxsb2NhdGVfYmFua19tZW1vcnkoZCwga2luZm8sIGdhZGRyX3RvX2dmbihHVUVT VF9SQU0wX0JBU0UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbmtfc2l6ZSkg KQorICAgICAgICBnb3RvIGZhaWw7CisKKyAgICBiYW5rX3NpemUgPSBNSU4oR1VFU1RfUkFNMV9T SVpFLCBraW5mby0+dW5hc3NpZ25lZF9tZW0pOworICAgIGlmICggIWFsbG9jYXRlX2JhbmtfbWVt b3J5KGQsIGtpbmZvLCBnYWRkcl90b19nZm4oR1VFU1RfUkFNMV9CQVNFKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBiYW5rX3NpemUpICkKKyAgICAgICAgZ290byBmYWlsOworCisg ICAgaWYgKCBraW5mby0+dW5hc3NpZ25lZF9tZW0gKQorICAgICAgICBnb3RvIGZhaWw7CisKKyAg ICBmb3IoIGkgPSAwOyBpIDwga2luZm8tPm1lbS5ucl9iYW5rczsgaSsrICkKKyAgICB7CisgICAg ICAgIHByaW50ayhYRU5MT0dfSU5GTyAiRG9tJWQgQkFOS1slZF0gJSMiUFJJcGFkZHIiLSUjIlBS SXBhZGRyIiAoJWxkTUIpXG4iLAorICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLAorICAgICAg ICAgICAgICAgaSwKKyAgICAgICAgICAgICAgIGtpbmZvLT5tZW0uYmFua1tpXS5zdGFydCwKKyAg ICAgICAgICAgICAgIGtpbmZvLT5tZW0uYmFua1tpXS5zdGFydCArIGtpbmZvLT5tZW0uYmFua1tp XS5zaXplLAorICAgICAgICAgICAgICAgLyogRG9uJ3Qgd2FudCBmb3JtYXQgdGhpcyBhcyBQUklw YWRkciAoMTYgZGlnaXQgaGV4KSAqLworICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGtp bmZvLT5tZW0uYmFua1tpXS5zaXplID4+IDIwKSk7CisgICAgfQorCisgICAgcmV0dXJuOworCitm YWlsOgorICAgIHBhbmljKCJGYWlsZWQgdG8gYWxsb2NhdGUgcmVxdWVzdGVkIGRvbWFpbiBtZW1v cnkuIgorICAgICAgICAgIC8qIERvbid0IHdhbnQgZm9ybWF0IHRoaXMgYXMgUFJJcGFkZHIgKDE2 IGRpZ2l0IGhleCkgKi8KKyAgICAgICAgICAiICVsZEtCIHVuYWxsb2NhdGVkLiBGaXggdGhlIFZN cyBjb25maWd1cmF0aW9ucy5cbiIsCisgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpa2luZm8tPnVu YXNzaWduZWRfbWVtID4+IDEwKTsKK30KKyNlbmRpZgorCiBzdGF0aWMgaW50IF9faW5pdCB3cml0 ZV9wcm9wZXJ0aWVzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8s CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBkdF9kZXZp Y2Vfbm9kZSAqbm9kZSkKIHsKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xp c3RpbmZvL3hlbi1kZXZlbA==