From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v5 12/25] xen/arm: refactor construct_dom0 Date: Mon, 22 Oct 2018 19:02:51 -0700 Message-ID: <1540260184-11294-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 TW92ZSBnZW5lcmljIGluaXRpYWxpemF0aW9ucyBvdXQgb2YgY29uc3RydWN0X2RvbTAgc28gdGhh dCB0aGV5IGNhbiBiZQpyZXVzZWQuCgpSZW5hbWUgcHJlcGFyZV9kdGIgdG8gcHJlcGFyZV9kdGJf aHdkb20gdG8gYXZvaWQgY29uZnVzaW9uLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoaXMg cGF0Y2guCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlu eC5jb20+CgotLS0KQ2hhbmdlcyBpbiB2NToKLSByZW5hbWUgX19jb25zdHJ1Y3RfZG9tYWluIHRv IGNvbnN0cnVjdF9kb21haW4KCkNoYW5nZXMgaW4gdjQ6Ci0gbmV3bGluZSBhbmQgc3R5bGUgY2hh bmdlcwoKQ2hhbmdlcyBpbiB2MzoKLSBtb3ZlIHNldHRpbmcgdHlwZSBiZWZvcmUgYWxsb2NhdGVf bWVtb3J5Ci0gYWRkIGlmZGVmIGFyb3VuZCBpdCBhbmQgYSBjb21tZW50CgpDaGFuZ2VzIGluIHYy OgotIG1vdmUgZGlzY2FyZF9pbml0aWFsX21vZHVsZXMoKSBhZnRlciBfX2NvbnN0cnVjdF9kb21h aW4oKQotIHJlbW92ZSB1c2VsZXNzIGJsYW5rIGxpbmUKLSBsZWF2ZSBzYWZldHkgQlVHX09OcyBp biBfX2NvbnN0cnVjdF9kb21haW4KLSByZW5hbWUgcHJlcGFyZV9kdGIgdG8gcHJlcGFyZV9kdGJf aHdkb20KLS0tCiB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgfCAxMjYgKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2OCBpbnNl cnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9t YWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKaW5kZXggMTQ2ZDgxZS4u ZDFkYWI1YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisrKyBiL3hl bi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwpAQCAtMTQ3MCw3ICsxNDcwLDcgQEAgc3RhdGljIGlu dCBfX2luaXQgaGFuZGxlX25vZGUoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZv ICpraW5mbywKICAgICByZXR1cm4gcmVzOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBwcmVwYXJl X2R0YihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQorc3RhdGlj IGludCBfX2luaXQgcHJlcGFyZV9kdGJfaHdkb20oc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtl cm5lbF9pbmZvICpraW5mbykKIHsKICAgICBjb25zdCBwMm1fdHlwZV90IGRlZmF1bHRfcDJtdCA9 IHAybV9tbWlvX2RpcmVjdF9jOwogICAgIGNvbnN0IHZvaWQgKmZkdDsKQEAgLTIyMDUsNzUgKzIy MDUsMjkgQEAgc3RhdGljIHZvaWQgX19pbml0IGZpbmRfZ250dGFiX3JlZ2lvbihzdHJ1Y3QgZG9t YWluICpkLAogICAgICAgICAgICBraW5mby0+Z250dGFiX3N0YXJ0LCBraW5mby0+Z250dGFiX3N0 YXJ0ICsga2luZm8tPmdudHRhYl9zaXplKTsKIH0KIAotaW50IF9faW5pdCBjb25zdHJ1Y3RfZG9t MChzdHJ1Y3QgZG9tYWluICpkKQorc3RhdGljIGludCBfX2luaXQgY29uc3RydWN0X2RvbWFpbihz dHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQogewotICAgIGNvbnN0 IHN0cnVjdCBib290Y21kbGluZSAqa2VybmVsID0gYm9vdF9jbWRsaW5lX2ZpbmRfYnlfa2luZChC T09UTU9EX0tFUk5FTCk7Ci0gICAgc3RydWN0IGtlcm5lbF9pbmZvIGtpbmZvID0ge307CiAgICAg c3RydWN0IHZjcHUgKnNhdmVkX2N1cnJlbnQ7Ci0gICAgaW50IHJjLCBpLCBjcHU7Ci0KKyAgICBp bnQgaSwgY3B1OwogICAgIHN0cnVjdCB2Y3B1ICp2ID0gZC0+dmNwdVswXTsKICAgICBzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncyA9ICZ2LT5hcmNoLmNwdV9pbmZvLT5ndWVzdF9jcHVfdXNlcl9y ZWdzOwogCi0gICAgLyogU2FuaXR5ISAqLwotICAgIEJVR19PTihkLT5kb21haW5faWQgIT0gMCk7 CiAgICAgQlVHX09OKGQtPnZjcHVbMF0gPT0gTlVMTCk7CiAgICAgQlVHX09OKHYtPmlzX2luaXRp YWxpc2VkKTsKIAotICAgIHByaW50aygiKioqIExPQURJTkcgRE9NQUlOIDAgKioqXG4iKTsKLSAg ICBpZiAoIGRvbTBfbWVtIDw9IDAgKQotICAgIHsKLSAgICAgICAgd2FybmluZ19hZGQoIlBMRUFT RSBTUEVDSUZZIGRvbTBfbWVtIFBBUkFNRVRFUiAtIFVTSU5HIDUxMk0gRk9SIE5PV1xuIik7Ci0g ICAgICAgIGRvbTBfbWVtID0gTUIoNTEyKTsKLSAgICB9Ci0KLQotICAgIGlvbW11X2h3ZG9tX2lu aXQoZCk7Ci0KLSAgICBkLT5tYXhfcGFnZXMgPSB+MFU7Ci0KLSAgICBraW5mby51bmFzc2lnbmVk X21lbSA9IGRvbTBfbWVtOwotICAgIGtpbmZvLmQgPSBkOwotCi0gICAgcmMgPSBrZXJuZWxfcHJv YmUoJmtpbmZvLCBOVUxMKTsKLSAgICBpZiAoIHJjIDwgMCApCi0gICAgICAgIHJldHVybiByYzsK LQogI2lmZGVmIENPTkZJR19BUk1fNjQKICAgICAvKiBpZiBhYXJjaDMyIG1vZGUgaXMgbm90IHN1 cHBvcnRlZCBhdCBFTDEgZG8gbm90IGFsbG93IDMyLWJpdCBkb21haW4gKi8KLSAgICBpZiAoICEo Y3B1X2hhc19lbDFfMzIpICYmIGtpbmZvLnR5cGUgPT0gRE9NQUlOXzMyQklUICkKKyAgICBpZiAo ICEoY3B1X2hhc19lbDFfMzIpICYmIGtpbmZvLT50eXBlID09IERPTUFJTl8zMkJJVCApCiAgICAg ewogICAgICAgICBwcmludGsoIlBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgMzItYml0IGRvbWFp blxuIik7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KLSAgICBkLT5hcmNoLnR5cGUg PSBraW5mby50eXBlOwogCiAgICAgaWYgKCBpc182NGJpdF9kb21haW4oZCkgKQogICAgICAgICB2 Y3B1X3N3aXRjaF90b19hYXJjaDY0X21vZGUodik7CiAKICNlbmRpZgogCi0gICAga2luZm8uY21k bGluZSA9IGtlcm5lbCAhPSBOVUxMID8gJmtlcm5lbC0+Y21kbGluZVswXSA6IE5VTEw7Ci0gICAg YWxsb2NhdGVfbWVtb3J5XzExKGQsICZraW5mbyk7Ci0gICAgZmluZF9nbnR0YWJfcmVnaW9uKGQs ICZraW5mbyk7Ci0KLSAgICAvKiBNYXAgZXh0cmEgR0lDIE1NSU8sIGlycXMgYW5kIG90aGVyIGh3 IHN0dWZmcyB0byBkb20wLiAqLwotICAgIHJjID0gZ2ljX21hcF9od2RvbV9leHRyYV9tYXBwaW5n cyhkKTsKLSAgICBpZiAoIHJjIDwgMCApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0g cGxhdGZvcm1fc3BlY2lmaWNfbWFwcGluZyhkKTsKLSAgICBpZiAoIHJjIDwgMCApCi0gICAgICAg IHJldHVybiByYzsKLQotICAgIGlmICggYWNwaV9kaXNhYmxlZCApCi0gICAgICAgIHJjID0gcHJl cGFyZV9kdGIoZCwgJmtpbmZvKTsKLSAgICBlbHNlCi0gICAgICAgIHJjID0gcHJlcGFyZV9hY3Bp KGQsICZraW5mbyk7Ci0KLSAgICBpZiAoIHJjIDwgMCApCi0gICAgICAgIHJldHVybiByYzsKLQog ICAgIC8qCiAgICAgICogVGhlIGZvbGxvd2luZyBsb2FkcyB1c2UgdGhlIGRvbWFpbidzIHAybSBh bmQgcmVxdWlyZSBjdXJyZW50IHRvCiAgICAgICogYmUgYSB2Y3B1IG9mIHRoZSBkb21haW4sIHRl bXBvcmFyaWx5IHN3aXRjaApAQCAtMjI4NiwyMCArMjI0MCwxOCBAQCBpbnQgX19pbml0IGNvbnN0 cnVjdF9kb20wKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICoga2VybmVsX2xvYWQgd2lsbCBkZXRl cm1pbmUgdGhlIHBsYWNlbWVudCBvZiB0aGUga2VybmVsIGFzIHdlbGwKICAgICAgKiBhcyB0aGUg aW5pdHJkICYgZmR0IGluIFJBTSwgc28gY2FsbCBpdCBmaXJzdC4KICAgICAgKi8KLSAgICBrZXJu ZWxfbG9hZCgma2luZm8pOworICAgIGtlcm5lbF9sb2FkKGtpbmZvKTsKICAgICAvKiBpbml0cmRf bG9hZCB3aWxsIGZpeCB1cCB0aGUgZmR0LCBzbyBjYWxsIGl0IGJlZm9yZSBkdGJfbG9hZCAqLwot ICAgIGluaXRyZF9sb2FkKCZraW5mbyk7Ci0gICAgZHRiX2xvYWQoJmtpbmZvKTsKKyAgICBpbml0 cmRfbG9hZChraW5mbyk7CisgICAgZHRiX2xvYWQoa2luZm8pOwogCiAgICAgLyogTm93IHRoYXQg d2UgYXJlIGRvbmUgcmVzdG9yZSB0aGUgb3JpZ2luYWwgcDJtIGFuZCBjdXJyZW50LiAqLwogICAg IHNldF9jdXJyZW50KHNhdmVkX2N1cnJlbnQpOwogICAgIHAybV9yZXN0b3JlX3N0YXRlKHNhdmVk X2N1cnJlbnQpOwogCi0gICAgZGlzY2FyZF9pbml0aWFsX21vZHVsZXMoKTsKLQogICAgIG1lbXNl dChyZWdzLCAwLCBzaXplb2YoKnJlZ3MpKTsKIAotICAgIHJlZ3MtPnBjID0gKHJlZ2lzdGVyX3Qp a2luZm8uZW50cnk7CisgICAgcmVncy0+cGMgPSAocmVnaXN0ZXJfdClraW5mby0+ZW50cnk7CiAK ICAgICBpZiAoIGlzXzMyYml0X2RvbWFpbihkKSApCiAgICAgewpAQCAtMjMxNywxNCArMjI2OSwx NCBAQCBpbnQgX19pbml0IGNvbnN0cnVjdF9kb20wKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAg ICAqLwogICAgICAgICByZWdzLT5yMCA9IDA7IC8qIFNCWiAqLwogICAgICAgICByZWdzLT5yMSA9 IDB4ZmZmZmZmZmY7IC8qIFdlIHVzZSBEVEIgdGhlcmVmb3JlIG5vIG1hY2hpbmUgaWQgKi8KLSAg ICAgICAgcmVncy0+cjIgPSBraW5mby5kdGJfcGFkZHI7CisgICAgICAgIHJlZ3MtPnIyID0ga2lu Zm8tPmR0Yl9wYWRkcjsKICAgICB9CiAjaWZkZWYgQ09ORklHX0FSTV82NAogICAgIGVsc2UKICAg ICB7CiAgICAgICAgIHJlZ3MtPmNwc3IgPSBQU1JfR1VFU1Q2NF9JTklUOwogICAgICAgICAvKiBG cm9tIGxpbnV4L0RvY3VtZW50YXRpb24vYXJtNjQvYm9vdGluZy50eHQgKi8KLSAgICAgICAgcmVn cy0+eDAgPSBraW5mby5kdGJfcGFkZHI7CisgICAgICAgIHJlZ3MtPngwID0ga2luZm8tPmR0Yl9w YWRkcjsKICAgICAgICAgcmVncy0+eDEgPSAwOyAvKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSAq LwogICAgICAgICByZWdzLT54MiA9IDA7IC8qIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlICovCiAg ICAgICAgIHJlZ3MtPngzID0gMDsgLyogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KQEAgLTIz NTIsNiArMjMwNCw2NCBAQCBpbnQgX19pbml0IGNvbnN0cnVjdF9kb20wKHN0cnVjdCBkb21haW4g KmQpCiAgICAgcmV0dXJuIDA7CiB9CiAKK2ludCBfX2luaXQgY29uc3RydWN0X2RvbTAoc3RydWN0 IGRvbWFpbiAqZCkKK3sKKyAgICBjb25zdCBzdHJ1Y3QgYm9vdGNtZGxpbmUgKmtlcm5lbCA9IGJv b3RfY21kbGluZV9maW5kX2J5X2tpbmQoQk9PVE1PRF9LRVJORUwpOworICAgIHN0cnVjdCBrZXJu ZWxfaW5mbyBraW5mbyA9IHt9OworICAgIGludCByYzsKKworICAgIC8qIFNhbml0eSEgKi8KKyAg ICBCVUdfT04oZC0+ZG9tYWluX2lkICE9IDApOworCisgICAgcHJpbnRrKCIqKiogTE9BRElORyBE T01BSU4gMCAqKipcbiIpOworICAgIGlmICggZG9tMF9tZW0gPD0gMCApCisgICAgeworICAgICAg ICB3YXJuaW5nX2FkZCgiUExFQVNFIFNQRUNJRlkgZG9tMF9tZW0gUEFSQU1FVEVSIC0gVVNJTkcg NTEyTSBGT1IgTk9XXG4iKTsKKyAgICAgICAgZG9tMF9tZW0gPSBNQig1MTIpOworICAgIH0KKwor ICAgIGlvbW11X2h3ZG9tX2luaXQoZCk7CisKKyAgICBkLT5tYXhfcGFnZXMgPSB+MFU7CisKKyAg ICBraW5mby51bmFzc2lnbmVkX21lbSA9IGRvbTBfbWVtOworICAgIGtpbmZvLmQgPSBkOworCisg ICAgcmMgPSBrZXJuZWxfcHJvYmUoJmtpbmZvLCBOVUxMKTsKKyAgICBpZiAoIHJjIDwgMCApCisg ICAgICAgIHJldHVybiByYzsKKworICAgIGtpbmZvLmNtZGxpbmUgPSBrZXJuZWwgIT0gTlVMTCA/ ICZrZXJuZWwtPmNtZGxpbmVbMF0gOiBOVUxMOworI2lmZGVmIENPTkZJR19BUk1fNjQKKyAgICAv KiB0eXBlIG11c3QgYmUgc2V0IGJlZm9yZSBhbGxvY2F0ZV9tZW1vcnkgKi8KKyAgICBkLT5hcmNo LnR5cGUgPSBraW5mby50eXBlOworI2VuZGlmCisgICAgYWxsb2NhdGVfbWVtb3J5XzExKGQsICZr aW5mbyk7CisgICAgZmluZF9nbnR0YWJfcmVnaW9uKGQsICZraW5mbyk7CisKKyAgICAvKiBNYXAg ZXh0cmEgR0lDIE1NSU8sIGlycXMgYW5kIG90aGVyIGh3IHN0dWZmcyB0byBkb20wLiAqLworICAg IHJjID0gZ2ljX21hcF9od2RvbV9leHRyYV9tYXBwaW5ncyhkKTsKKyAgICBpZiAoIHJjIDwgMCAp CisgICAgICAgIHJldHVybiByYzsKKworICAgIHJjID0gcGxhdGZvcm1fc3BlY2lmaWNfbWFwcGlu ZyhkKTsKKyAgICBpZiAoIHJjIDwgMCApCisgICAgICAgIHJldHVybiByYzsKKworICAgIGlmICgg YWNwaV9kaXNhYmxlZCApCisgICAgICAgIHJjID0gcHJlcGFyZV9kdGJfaHdkb20oZCwgJmtpbmZv KTsKKyAgICBlbHNlCisgICAgICAgIHJjID0gcHJlcGFyZV9hY3BpKGQsICZraW5mbyk7CisKKyAg ICBpZiAoIHJjIDwgMCApCisgICAgICAgIHJldHVybiByYzsKKworICAgIHJjID0gY29uc3RydWN0 X2RvbWFpbihkLCAma2luZm8pOworICAgIGRpc2NhcmRfaW5pdGlhbF9tb2R1bGVzKCk7CisKKyAg ICByZXR1cm4gcmM7Cit9CisKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCi0t IAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=