From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 02/21] xen/arm: make allocate_memory work for non 1:1 mapped guests Date: Fri, 6 Jul 2018 16:11:57 -0700 Message-ID: <1530918736-13965-2-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 RXh0ZW5kIGFsbG9jYXRlX21lbW9yeSB0byB3b3JrIGZvciBub24gMToxIG1hcHBlZCBkb21Vcy4g U3BlY2lmaWNhbGx5LAptZW1vcnkgYWxsb2NhdGVkIGZvciBkb21VIHdpbGwgYmUgbWFwcGVkIGlu dG8gdGhlIGRvbVUgcHNldWRvLXBoeXNpY2FsCmFkZHJlc3Mgc3BhY2UgYXQgdGhlIGFwcHJvcHJp YXRlIGFkZHJlc3NlcyBhY2NvcmRpbmcgdG8gdGhlIGd1ZXN0IG1lbW9yeQptYXA6IEdVRVNUX1JB TTBfQkFTRSBhbmQgR1VFU1RfUkFNMV9CQVNFLgoKVG8gZG8gdGhhdCwgaW5zZXJ0XzExX2Jhbmsg aGFzIGJlZW4gZXh0ZW5kZWQgdG8gZGVhbCB3aXRoIG5vbi1kb20wCm1hcHBpbmdzIHN0YXJ0aW5n IGZyb20gR1VFU1RfUkFNMF9CQVNFLiBpbnNlcnRfMTFfYmFuayBoYXMgYmVlbiByZW5hbWVkCnRv IGluc2VydF9iYW5rLgoKU2lnbmVkLW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5v c0B4aWxpbnguY29tPgoKLS0tCkNoYW5nZXMgaW4gdjI6Ci0gbmV3IHBhdGNoCi0tLQogeGVuL2Fy Y2gvYXJtL2RvbWFpbl9idWlsZC5jIHwgNTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMTMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVu L2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCmluZGV4IDE4MmUzZDUuLjJhNjYxOWEgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWlu X2J1aWxkLmMKQEAgLTk3LDI3ICs5Nyw1MSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGdldF9hbGxv Y2F0aW9uX3NpemUocGFkZHJfdCBzaXplKQogICogUmV0dXJucyBmYWxzZSBpZiB0aGUgbWVtb3J5 IHdvdWxkIGJlIGJlbG93IGJhbmsgMCBvciB3ZSBoYXZlIHJ1bgogICogb3V0IG9mIGJhbmtzLiBJ biB0aGlzIGNhc2UgaXQgd2lsbCBmcmVlIHRoZSBwYWdlcy4KICAqLwotc3RhdGljIGJvb2wgaW5z ZXJ0XzExX2Jhbmsoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgcGFnZV9pbmZvICpwZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBvcmRlcikKK3N0YXRpYyBib29sIGluc2VydF9iYW5rKHN0cnVjdCBkb21haW4gKmQsCisg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvLAorICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGcsCisgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBib29s IG1hcF8xMSkKIHsKLSAgICBpbnQgcmVzLCBpOworICAgIGludCByZXMsIGksIG5yX21lbV9iYW5r cyA9IG1hcF8xMSA/IE5SX01FTV9CQU5LUyA6IDI7CiAgICAgbWZuX3Qgc21mbjsKICAgICBwYWRk cl90IHN0YXJ0LCBzaXplOworICAgIHN0cnVjdCBtZW1iYW5rICpiYW5rOwogCiAgICAgc21mbiA9 IHBhZ2VfdG9fbWZuKHBnKTsKICAgICBzdGFydCA9IG1mbl90b19tYWRkcihzbWZuKTsKICAgICBz aXplID0gcGZuX3RvX3BhZGRyKDFVTCA8PCBvcmRlcik7CisgICAgaWYgKCAhbWFwXzExICkKKyAg ICB7CisgICAgICAgIHN0YXJ0ID0gR1VFU1RfUkFNMF9CQVNFOworICAgICAgICBpZiAoIGtpbmZv LT5tZW0ubnJfYmFua3MgPiAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZm9yKCBpID0gMDsg aSA8IGtpbmZvLT5tZW0ubnJfYmFua3M7IGkrKyApCisgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgYmFuayA9ICZraW5mby0+bWVtLmJhbmtbaV07CisgICAgICAgICAgICAgICAgc3RhcnQg PSBiYW5rLT5zdGFydCArIGJhbmstPnNpemU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBp ZiAoIGJhbmstPnN0YXJ0ID09IEdVRVNUX1JBTTBfQkFTRSAmJgorICAgICAgICAgICAgICAgICAg ICBzdGFydCArIHNpemUgPiAoR1VFU1RfUkFNMF9CQVNFICsgR1VFU1RfUkFNMF9TSVpFKSApCisg ICAgICAgICAgICAgICAgc3RhcnQgPSBHVUVTVF9SQU0xX0JBU0U7CisgICAgICAgICAgICBpZiAo IGJhbmstPnN0YXJ0ID09IEdVRVNUX1JBTTFfQkFTRSAmJgorICAgICAgICAgICAgICAgICAgICBz dGFydCArIHNpemUgPiAoR1VFU1RfUkFNMV9CQVNFICsgR1VFU1RfUkFNMV9TSVpFKSApCisgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgRDExUFJJTlQoIkFsbG9jYXRpb24gb2YgZG9tYWlu IG1lbW9yeSBleGNlZWRzIG1heCBhbW91bnRcbiIpOworICAgICAgICAgICAgICAgIGdvdG8gZmFp bDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAotICAgIEQxMVBSSU5UKCJBbGxv Y2F0ZWQgJSMiUFJJcGFkZHIiLSUjIlBSSXBhZGRyIiAoJWxkTUIvJWxkTUIsIG9yZGVyICVkKVxu IiwKKyAgICBEMTFQUklOVCgiQWxsb2NhdGVkICUjIlBSSXBhZGRyIi0lIyJQUklwYWRkciI6JSMi UFJJcGFkZHIiLSUjIlBSSXBhZGRyIiAoJWxkTUIvJWxkTUIsIG9yZGVyICVkKVxuIiwKKyAgICAg ICAgICAgICBtZm5fdG9fbWFkZHIoc21mbiksIG1mbl90b19tYWRkcihzbWZuKSArIHNpemUsCiAg ICAgICAgICAgICAgc3RhcnQsIHN0YXJ0ICsgc2l6ZSwKICAgICAgICAgICAgICAxVUwgPDwgKG9y ZGVyICsgUEFHRV9TSElGVCAtIDIwKSwKICAgICAgICAgICAgICAvKiBEb24ndCB3YW50IGZvcm1h dCB0aGlzIGFzIFBSSXBhZGRyICgxNiBkaWdpdCBoZXgpICovCiAgICAgICAgICAgICAgKHVuc2ln bmVkIGxvbmcpKGtpbmZvLT51bmFzc2lnbmVkX21lbSA+PiAyMCksCiAgICAgICAgICAgICAgb3Jk ZXIpOwogCi0gICAgaWYgKCBraW5mby0+bWVtLm5yX2JhbmtzID4gMCAmJgorICAgIGlmICggbWFw XzExICYmIGtpbmZvLT5tZW0ubnJfYmFua3MgPiAwICYmCiAgICAgICAgICBzaXplIDwgTUIoMTI4 KSAmJgogICAgICAgICAgc3RhcnQgKyBzaXplIDwga2luZm8tPm1lbS5iYW5rWzBdLnN0YXJ0ICkK ICAgICB7CkBAIC0xMjUsNyArMTQ5LDcgQEAgc3RhdGljIGJvb2wgaW5zZXJ0XzExX2Jhbmsoc3Ry dWN0IGRvbWFpbiAqZCwKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHJlcyA9IGd1 ZXN0X3BoeXNtYXBfYWRkX3BhZ2UoZCwgX2dmbihtZm5feChzbWZuKSksIHNtZm4sIG9yZGVyKTsK KyAgICByZXMgPSBndWVzdF9waHlzbWFwX2FkZF9wYWdlKGQsIGdhZGRyX3RvX2dmbihzdGFydCks IHNtZm4sIG9yZGVyKTsKICAgICBpZiAoIHJlcyApCiAgICAgICAgIHBhbmljKCJGYWlsZWQgbWFw IHBhZ2VzIHRvIERPTTA6ICVkIiwgcmVzKTsKIApAQCAtMTQxLDcgKzE2NSw3IEBAIHN0YXRpYyBi b29sIGluc2VydF8xMV9iYW5rKHN0cnVjdCBkb21haW4gKmQsCiAKICAgICBmb3IoIGkgPSAwOyBp IDwga2luZm8tPm1lbS5ucl9iYW5rczsgaSsrICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBtZW1i YW5rICpiYW5rID0gJmtpbmZvLT5tZW0uYmFua1tpXTsKKyAgICAgICAgYmFuayA9ICZraW5mby0+ bWVtLmJhbmtbaV07CiAKICAgICAgICAgLyogSWYgcG9zc2libGUgbWVyZ2UgbmV3IG1lbW9yeSBp bnRvIHRoZSBzdGFydCBvZiB0aGUgYmFuayAqLwogICAgICAgICBpZiAoIGJhbmstPnN0YXJ0ID09 IHN0YXJ0K3NpemUgKQpAQCAtMTY0LDcgKzE4OCw3IEBAIHN0YXRpYyBib29sIGluc2VydF8xMV9i YW5rKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAqIGNvdWxkIGhhdmUgaW5zZXJ0ZWQgdGhl IG1lbW9yeSBpbnRvL2JlZm9yZSB3ZSB3b3VsZCBhbHJlYWR5CiAgICAgICAgICAqIGhhdmUgZG9u ZSBzbywgc28gdGhpcyBtdXN0IGJlIHRoZSByaWdodCBwbGFjZS4KICAgICAgICAgICovCi0gICAg ICAgIGlmICggc3RhcnQgKyBzaXplIDwgYmFuay0+c3RhcnQgJiYga2luZm8tPm1lbS5ucl9iYW5r cyA8IE5SX01FTV9CQU5LUyApCisgICAgICAgIGlmICggc3RhcnQgKyBzaXplIDwgYmFuay0+c3Rh cnQgJiYga2luZm8tPm1lbS5ucl9iYW5rcyA8IG5yX21lbV9iYW5rcyApCiAgICAgICAgIHsKICAg ICAgICAgICAgIG1lbW1vdmUoYmFuayArIDEsIGJhbmssCiAgICAgICAgICAgICAgICAgICAgIHNp emVvZigqYmFuaykgKiAoa2luZm8tPm1lbS5ucl9iYW5rcyAtIGkpKTsKQEAgLTE3NSw3ICsxOTks NyBAQCBzdGF0aWMgYm9vbCBpbnNlcnRfMTFfYmFuayhzdHJ1Y3QgZG9tYWluICpkLAogICAgICAg ICB9CiAgICAgfQogCi0gICAgaWYgKCBpID09IGtpbmZvLT5tZW0ubnJfYmFua3MgJiYga2luZm8t Pm1lbS5ucl9iYW5rcyA8IE5SX01FTV9CQU5LUyApCisgICAgaWYgKCBpID09IGtpbmZvLT5tZW0u bnJfYmFua3MgJiYga2luZm8tPm1lbS5ucl9iYW5rcyA8IG5yX21lbV9iYW5rcyApCiAgICAgewog ICAgICAgICBzdHJ1Y3QgbWVtYmFuayAqYmFuayA9ICZraW5mby0+bWVtLmJhbmtba2luZm8tPm1l bS5ucl9iYW5rc107CiAKQEAgLTI1Myw2ICsyNzcsNyBAQCBzdGF0aWMgdm9pZCBhbGxvY2F0ZV9t ZW1vcnkoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykKICAgICBz dHJ1Y3QgcGFnZV9pbmZvICpwZzsKICAgICB1bnNpZ25lZCBpbnQgb3JkZXIgPSBnZXRfYWxsb2Nh dGlvbl9zaXplKGtpbmZvLT51bmFzc2lnbmVkX21lbSk7CiAgICAgaW50IGk7CisgICAgYm9vbCBo d2RvbSA9IGQtPmRvbWFpbl9pZCA9PSAwOwogCiAgICAgYm9vbCBsb3dtZW0gPSB0cnVlOwogICAg IHVuc2lnbmVkIGludCBiaXRzOwpAQCAtMjYzLDYgKzI4OCwxMiBAQCBzdGF0aWMgdm9pZCBhbGxv Y2F0ZV9tZW1vcnkoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykK IAogICAgIGtpbmZvLT5tZW0ubnJfYmFua3MgPSAwOwogCisgICAgaWYgKCAhaHdkb20gKQorICAg IHsKKyAgICAgICAgbG93bWVtID0gZmFsc2U7CisgICAgICAgIGdvdG8gZ290X2JhbmswOworICAg IH0KKwogICAgIC8qCiAgICAgICogRmlyc3QgdHJ5IGFuZCBhbGxvY2F0ZSB0aGUgbGFyZ2VzdCB0 aGluZyB3ZSBjYW4gYXMgbG93IGFzCiAgICAgICogcG9zc2libGUgdG8gYmUgYmFuayAwLgpAQCAt Mjc0LDcgKzMwNSw3IEBAIHN0YXRpYyB2b2lkIGFsbG9jYXRlX21lbW9yeShzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQogICAgICAgICAgICAgcGcgPSBhbGxvY19k b21oZWFwX3BhZ2VzKGQsIG9yZGVyLCBNRU1GX2JpdHMoYml0cykpOwogICAgICAgICAgICAgaWYg KCBwZyAhPSBOVUxMICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoICFpbnNl cnRfMTFfYmFuayhkLCBraW5mbywgcGcsIG9yZGVyKSApCisgICAgICAgICAgICAgICAgaWYgKCAh aW5zZXJ0X2JhbmsoZCwga2luZm8sIHBnLCBvcmRlciwgaHdkb20pICkKICAgICAgICAgICAgICAg ICAgICAgQlVHKCk7IC8qIENhbm5vdCBmYWlsIGZvciBmaXJzdCBiYW5rICovCiAKICAgICAgICAg ICAgICAgICBnb3RvIGdvdF9iYW5rMDsKQEAgLTMxOSw3ICszNTAsNyBAQCBzdGF0aWMgdm9pZCBh bGxvY2F0ZV9tZW1vcnkoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5m bykKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCAhaW5zZXJ0 XzExX2JhbmsoZCwga2luZm8sIHBnLCBvcmRlcikgKQorICAgICAgICBpZiAoICFpbnNlcnRfYmFu ayhkLCBraW5mbywgcGcsIG9yZGVyLCBod2RvbSkgKQogICAgICAgICB7CiAgICAgICAgICAgICBp ZiAoIGtpbmZvLT5tZW0ubnJfYmFua3MgPT0gTlJfTUVNX0JBTktTICkKICAgICAgICAgICAgICAg ICAvKiBOb3RoaW5nIG1vcmUgd2UgY2FuIGRvLiAqLwotLSAKMS45LjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs