From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v6 13/26] xen/arm: refactor construct_dom0 Date: Fri, 2 Nov 2018 16:45:05 -0700 Message-ID: <1541202318-9840-13-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+CkFja2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoKLS0t CkNoYW5nZXMgaW4gdjU6Ci0gcmVuYW1lIF9fY29uc3RydWN0X2RvbWFpbiB0byBjb25zdHJ1Y3Rf ZG9tYWluCgpDaGFuZ2VzIGluIHY0OgotIG5ld2xpbmUgYW5kIHN0eWxlIGNoYW5nZXMKCkNoYW5n ZXMgaW4gdjM6Ci0gbW92ZSBzZXR0aW5nIHR5cGUgYmVmb3JlIGFsbG9jYXRlX21lbW9yeQotIGFk ZCBpZmRlZiBhcm91bmQgaXQgYW5kIGEgY29tbWVudAoKQ2hhbmdlcyBpbiB2MjoKLSBtb3ZlIGRp c2NhcmRfaW5pdGlhbF9tb2R1bGVzKCkgYWZ0ZXIgX19jb25zdHJ1Y3RfZG9tYWluKCkKLSByZW1v dmUgdXNlbGVzcyBibGFuayBsaW5lCi0gbGVhdmUgc2FmZXR5IEJVR19PTnMgaW4gX19jb25zdHJ1 Y3RfZG9tYWluCi0gcmVuYW1lIHByZXBhcmVfZHRiIHRvIHByZXBhcmVfZHRiX2h3ZG9tCi0tLQog eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIHwgMTIyICsrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwg NTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5j IGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCmluZGV4IDg2YWJjYzYuLjNhOWM5ODkgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0v ZG9tYWluX2J1aWxkLmMKQEAgLTE0NzMsNyArMTQ3Myw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGhh bmRsZV9ub2RlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sCiAg ICAgcmV0dXJuIHJlczsKIH0KIAotc3RhdGljIGludCBfX2luaXQgcHJlcGFyZV9kdGIoc3RydWN0 IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykKK3N0YXRpYyBpbnQgX19pbml0 IHByZXBhcmVfZHRiX2h3ZG9tKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAq a2luZm8pCiB7CiAgICAgY29uc3QgcDJtX3R5cGVfdCBkZWZhdWx0X3AybXQgPSBwMm1fbW1pb19k aXJlY3RfYzsKICAgICBjb25zdCB2b2lkICpmZHQ7CkBAIC0yMjA4LDczICsyMjA4LDI5IEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBmaW5kX2dudHRhYl9yZWdpb24oc3RydWN0IGRvbWFpbiAqZCwKICAg ICAgICAgICAga2luZm8tPmdudHRhYl9zdGFydCwga2luZm8tPmdudHRhYl9zdGFydCArIGtpbmZv LT5nbnR0YWJfc2l6ZSk7CiB9CiAKLWludCBfX2luaXQgY29uc3RydWN0X2RvbTAoc3RydWN0IGRv bWFpbiAqZCkKK3N0YXRpYyBpbnQgX19pbml0IGNvbnN0cnVjdF9kb21haW4oc3RydWN0IGRvbWFp biAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykKIHsKLSAgICBzdHJ1Y3Qga2VybmVsX2lu Zm8ga2luZm8gPSB7fTsKICAgICBzdHJ1Y3QgdmNwdSAqc2F2ZWRfY3VycmVudDsKLSAgICBpbnQg cmMsIGksIGNwdTsKLQorICAgIGludCBpLCBjcHU7CiAgICAgc3RydWN0IHZjcHUgKnYgPSBkLT52 Y3B1WzBdOwogICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzID0gJnYtPmFyY2guY3B1X2lu Zm8tPmd1ZXN0X2NwdV91c2VyX3JlZ3M7CiAKLSAgICAvKiBTYW5pdHkhICovCi0gICAgQlVHX09O KGQtPmRvbWFpbl9pZCAhPSAwKTsKICAgICBCVUdfT04oZC0+dmNwdVswXSA9PSBOVUxMKTsKICAg ICBCVUdfT04odi0+aXNfaW5pdGlhbGlzZWQpOwogCi0gICAgcHJpbnRrKCIqKiogTE9BRElORyBE T01BSU4gMCAqKipcbiIpOwotICAgIGlmICggZG9tMF9tZW0gPD0gMCApCi0gICAgewotICAgICAg ICB3YXJuaW5nX2FkZCgiUExFQVNFIFNQRUNJRlkgZG9tMF9tZW0gUEFSQU1FVEVSIC0gVVNJTkcg NTEyTSBGT1IgTk9XXG4iKTsKLSAgICAgICAgZG9tMF9tZW0gPSBNQig1MTIpOwotICAgIH0KLQot Ci0gICAgaW9tbXVfaHdkb21faW5pdChkKTsKLQotICAgIGQtPm1heF9wYWdlcyA9IH4wVTsKLQot ICAgIGtpbmZvLnVuYXNzaWduZWRfbWVtID0gZG9tMF9tZW07Ci0gICAga2luZm8uZCA9IGQ7Ci0K LSAgICByYyA9IGtlcm5lbF9wcm9iZSgma2luZm8sIE5VTEwpOwotICAgIGlmICggcmMgPCAwICkK LSAgICAgICAgcmV0dXJuIHJjOwotCiAjaWZkZWYgQ09ORklHX0FSTV82NAogICAgIC8qIGlmIGFh cmNoMzIgbW9kZSBpcyBub3Qgc3VwcG9ydGVkIGF0IEVMMSBkbyBub3QgYWxsb3cgMzItYml0IGRv bWFpbiAqLwotICAgIGlmICggIShjcHVfaGFzX2VsMV8zMikgJiYga2luZm8udHlwZSA9PSBET01B SU5fMzJCSVQgKQorICAgIGlmICggIShjcHVfaGFzX2VsMV8zMikgJiYga2luZm8tPnR5cGUgPT0g RE9NQUlOXzMyQklUICkKICAgICB7CiAgICAgICAgIHByaW50aygiUGxhdGZvcm0gZG9lcyBub3Qg c3VwcG9ydCAzMi1iaXQgZG9tYWluXG4iKTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAg fQotICAgIGQtPmFyY2gudHlwZSA9IGtpbmZvLnR5cGU7CiAKICAgICBpZiAoIGlzXzY0Yml0X2Rv bWFpbihkKSApCiAgICAgICAgIHZjcHVfc3dpdGNoX3RvX2FhcmNoNjRfbW9kZSh2KTsKIAogI2Vu ZGlmCiAKLSAgICBhbGxvY2F0ZV9tZW1vcnlfMTEoZCwgJmtpbmZvKTsKLSAgICBmaW5kX2dudHRh Yl9yZWdpb24oZCwgJmtpbmZvKTsKLQotICAgIC8qIE1hcCBleHRyYSBHSUMgTU1JTywgaXJxcyBh bmQgb3RoZXIgaHcgc3R1ZmZzIHRvIGRvbTAuICovCi0gICAgcmMgPSBnaWNfbWFwX2h3ZG9tX2V4 dHJhX21hcHBpbmdzKGQpOwotICAgIGlmICggcmMgPCAwICkKLSAgICAgICAgcmV0dXJuIHJjOwot Ci0gICAgcmMgPSBwbGF0Zm9ybV9zcGVjaWZpY19tYXBwaW5nKGQpOwotICAgIGlmICggcmMgPCAw ICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgaWYgKCBhY3BpX2Rpc2FibGVkICkKLSAgICAg ICAgcmMgPSBwcmVwYXJlX2R0YihkLCAma2luZm8pOwotICAgIGVsc2UKLSAgICAgICAgcmMgPSBw cmVwYXJlX2FjcGkoZCwgJmtpbmZvKTsKLQotICAgIGlmICggcmMgPCAwICkKLSAgICAgICAgcmV0 dXJuIHJjOwotCiAgICAgLyoKICAgICAgKiBUaGUgZm9sbG93aW5nIGxvYWRzIHVzZSB0aGUgZG9t YWluJ3MgcDJtIGFuZCByZXF1aXJlIGN1cnJlbnQgdG8KICAgICAgKiBiZSBhIHZjcHUgb2YgdGhl IGRvbWFpbiwgdGVtcG9yYXJpbHkgc3dpdGNoCkBAIC0yMjg3LDIwICsyMjQzLDE4IEBAIGludCBf X2luaXQgY29uc3RydWN0X2RvbTAoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgKiBrZXJuZWxfbG9h ZCB3aWxsIGRldGVybWluZSB0aGUgcGxhY2VtZW50IG9mIHRoZSBrZXJuZWwgYXMgd2VsbAogICAg ICAqIGFzIHRoZSBpbml0cmQgJiBmZHQgaW4gUkFNLCBzbyBjYWxsIGl0IGZpcnN0LgogICAgICAq LwotICAgIGtlcm5lbF9sb2FkKCZraW5mbyk7CisgICAga2VybmVsX2xvYWQoa2luZm8pOwogICAg IC8qIGluaXRyZF9sb2FkIHdpbGwgZml4IHVwIHRoZSBmZHQsIHNvIGNhbGwgaXQgYmVmb3JlIGR0 Yl9sb2FkICovCi0gICAgaW5pdHJkX2xvYWQoJmtpbmZvKTsKLSAgICBkdGJfbG9hZCgma2luZm8p OworICAgIGluaXRyZF9sb2FkKGtpbmZvKTsKKyAgICBkdGJfbG9hZChraW5mbyk7CiAKICAgICAv KiBOb3cgdGhhdCB3ZSBhcmUgZG9uZSByZXN0b3JlIHRoZSBvcmlnaW5hbCBwMm0gYW5kIGN1cnJl bnQuICovCiAgICAgc2V0X2N1cnJlbnQoc2F2ZWRfY3VycmVudCk7CiAgICAgcDJtX3Jlc3RvcmVf c3RhdGUoc2F2ZWRfY3VycmVudCk7CiAKLSAgICBkaXNjYXJkX2luaXRpYWxfbW9kdWxlcygpOwot CiAgICAgbWVtc2V0KHJlZ3MsIDAsIHNpemVvZigqcmVncykpOwogCi0gICAgcmVncy0+cGMgPSAo cmVnaXN0ZXJfdClraW5mby5lbnRyeTsKKyAgICByZWdzLT5wYyA9IChyZWdpc3Rlcl90KWtpbmZv LT5lbnRyeTsKIAogICAgIGlmICggaXNfMzJiaXRfZG9tYWluKGQpICkKICAgICB7CkBAIC0yMzE4 LDE0ICsyMjcyLDE0IEBAIGludCBfX2luaXQgY29uc3RydWN0X2RvbTAoc3RydWN0IGRvbWFpbiAq ZCkKICAgICAgICAgICovCiAgICAgICAgIHJlZ3MtPnIwID0gMDsgLyogU0JaICovCiAgICAgICAg IHJlZ3MtPnIxID0gMHhmZmZmZmZmZjsgLyogV2UgdXNlIERUQiB0aGVyZWZvcmUgbm8gbWFjaGlu ZSBpZCAqLwotICAgICAgICByZWdzLT5yMiA9IGtpbmZvLmR0Yl9wYWRkcjsKKyAgICAgICAgcmVn cy0+cjIgPSBraW5mby0+ZHRiX3BhZGRyOwogICAgIH0KICNpZmRlZiBDT05GSUdfQVJNXzY0CiAg ICAgZWxzZQogICAgIHsKICAgICAgICAgcmVncy0+Y3BzciA9IFBTUl9HVUVTVDY0X0lOSVQ7CiAg ICAgICAgIC8qIEZyb20gbGludXgvRG9jdW1lbnRhdGlvbi9hcm02NC9ib290aW5nLnR4dCAqLwot ICAgICAgICByZWdzLT54MCA9IGtpbmZvLmR0Yl9wYWRkcjsKKyAgICAgICAgcmVncy0+eDAgPSBr aW5mby0+ZHRiX3BhZGRyOwogICAgICAgICByZWdzLT54MSA9IDA7IC8qIFJlc2VydmVkIGZvciBm dXR1cmUgdXNlICovCiAgICAgICAgIHJlZ3MtPngyID0gMDsgLyogUmVzZXJ2ZWQgZm9yIGZ1dHVy ZSB1c2UgKi8KICAgICAgICAgcmVncy0+eDMgPSAwOyAvKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVz ZSAqLwpAQCAtMjM1Myw2ICsyMzA3LDYyIEBAIGludCBfX2luaXQgY29uc3RydWN0X2RvbTAoc3Ry dWN0IGRvbWFpbiAqZCkKICAgICByZXR1cm4gMDsKIH0KIAoraW50IF9faW5pdCBjb25zdHJ1Y3Rf ZG9tMChzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIHN0cnVjdCBrZXJuZWxfaW5mbyBraW5mbyA9 IHt9OworICAgIGludCByYzsKKworICAgIC8qIFNhbml0eSEgKi8KKyAgICBCVUdfT04oZC0+ZG9t YWluX2lkICE9IDApOworCisgICAgcHJpbnRrKCIqKiogTE9BRElORyBET01BSU4gMCAqKipcbiIp OworICAgIGlmICggZG9tMF9tZW0gPD0gMCApCisgICAgeworICAgICAgICB3YXJuaW5nX2FkZCgi UExFQVNFIFNQRUNJRlkgZG9tMF9tZW0gUEFSQU1FVEVSIC0gVVNJTkcgNTEyTSBGT1IgTk9XXG4i KTsKKyAgICAgICAgZG9tMF9tZW0gPSBNQig1MTIpOworICAgIH0KKworICAgIGlvbW11X2h3ZG9t X2luaXQoZCk7CisKKyAgICBkLT5tYXhfcGFnZXMgPSB+MFU7CisKKyAgICBraW5mby51bmFzc2ln bmVkX21lbSA9IGRvbTBfbWVtOworICAgIGtpbmZvLmQgPSBkOworCisgICAgcmMgPSBrZXJuZWxf cHJvYmUoJmtpbmZvLCBOVUxMKTsKKyAgICBpZiAoIHJjIDwgMCApCisgICAgICAgIHJldHVybiBy YzsKKworI2lmZGVmIENPTkZJR19BUk1fNjQKKyAgICAvKiB0eXBlIG11c3QgYmUgc2V0IGJlZm9y ZSBhbGxvY2F0ZV9tZW1vcnkgKi8KKyAgICBkLT5hcmNoLnR5cGUgPSBraW5mby50eXBlOworI2Vu ZGlmCisgICAgYWxsb2NhdGVfbWVtb3J5XzExKGQsICZraW5mbyk7CisgICAgZmluZF9nbnR0YWJf cmVnaW9uKGQsICZraW5mbyk7CisKKyAgICAvKiBNYXAgZXh0cmEgR0lDIE1NSU8sIGlycXMgYW5k IG90aGVyIGh3IHN0dWZmcyB0byBkb20wLiAqLworICAgIHJjID0gZ2ljX21hcF9od2RvbV9leHRy YV9tYXBwaW5ncyhkKTsKKyAgICBpZiAoIHJjIDwgMCApCisgICAgICAgIHJldHVybiByYzsKKwor ICAgIHJjID0gcGxhdGZvcm1fc3BlY2lmaWNfbWFwcGluZyhkKTsKKyAgICBpZiAoIHJjIDwgMCAp CisgICAgICAgIHJldHVybiByYzsKKworICAgIGlmICggYWNwaV9kaXNhYmxlZCApCisgICAgICAg IHJjID0gcHJlcGFyZV9kdGJfaHdkb20oZCwgJmtpbmZvKTsKKyAgICBlbHNlCisgICAgICAgIHJj ID0gcHJlcGFyZV9hY3BpKGQsICZraW5mbyk7CisKKyAgICBpZiAoIHJjIDwgMCApCisgICAgICAg IHJldHVybiByYzsKKworICAgIHJjID0gY29uc3RydWN0X2RvbWFpbihkLCAma2luZm8pOworICAg IGRpc2NhcmRfaW5pdGlhbF9tb2R1bGVzKCk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKIC8qCiAg KiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=