From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v5 08/25] xen/arm: probe domU kernels and initrds Date: Mon, 22 Oct 2018 19:02:47 -0700 Message-ID: <1540260184-11294-8-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 RmluZCBhZGRyZXNzZXMsIHNpemVzIG9uIGRldmljZSB0cmVlIGZyb20ga2VybmVsX3Byb2JlLgpG aW5kIHRoZSBjbWRsaW5lIGZyb20gdGhlIGJvb3RjbWRsaW5lcyBhcnJheS4KCkludHJvZHVjZSBh IG5ldyBib290X21vZHVsZV9maW5kX2J5X2FkZHJfYW5kX2tpbmQgZnVuY3Rpb24gdG8gbWF0Y2gg bm90Cmp1c3Qgb24gYm9vdCBtb2R1bGUga2luZCwgYnV0IGFsc28gYnkgYWRkcmVzcyBzbyB0aGF0 IHdlIGNhbiBzdXBwb3J0Cm11bHRpcGxlIGRvbWFpbnMuCgpJbnRyb2R1Y2UgYSBib290X2NtZGxp bmVfZmluZF9ieV9uYW1lIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIHJpZ2h0IHN0cnVjdApjbWRsaW5l IGJhc2VkIG9uIHRoZSBkZXZpY2UgdHJlZSBub2RlIG5hbWUgb2YgdGhlICJ4ZW4sZG9tYWluIgpj b21wYXRpYmxlIG5vZGUuCgpTZXQgY29tbWFuZCBsaW5lIGZvciBkb20wIHRvbyBmb3IgY29uc2lz dGVuY3kuCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlu eC5jb20+Ci0tLQpDaGFuZ2VzIGluIHY1OgotIGNvbnN0aWZ5IGtlcm5lbF9wcm9iZQotIGFkZCBB U1NFUlQgYW5kIGNvbW1lbnQgaW4ga2VybmVsX3Byb2JlCi0gbGltaXQgdmFyaWFibGUgc2NvcGUK LSBmaXggcHJpbnRrIG1lc3NhZ2UKLSBpbnQvdW5zaWduZWQgaW50Ci0gc2V0IGNtZGxpbmUgZm9y IGRvbTAgdG9vCi0gaW1wcm92ZSBjb2RlIHJlYWRhYmlsaXR5CgpDaGFuZ2VzIGluIHYzOgotIHJl dHJpZXZlIGNtZGxpbmUgZnJvbSBib290Y21kbGluZXMgYXJyYXkKCkNoYW5nZXMgaW4gdjI6Ci0g Zml4IGluZGVudGF0aW9uCi0gdW5pZnkga2VybmVsX3Byb2JlIHdpdGgga2VybmVsX3Byb2JlX2Rv bVUKLSBmaW5kIGNtZGxpbmUgb24gZGV2aWNlX3RyZWUgZnJvbSBrZXJuZWxfcHJvYmUKLS0tCiB4 ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgfCAgMiArLQogeGVuL2FyY2gvYXJtL2tlcm5lbC5j ICAgICAgIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t CiB4ZW4vYXJjaC9hcm0va2VybmVsLmggICAgICAgfCAgMiArLQogeGVuL2FyY2gvYXJtL3NldHVw LmMgICAgICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLWFy bS9zZXR1cC5oIHwgIDMgKysrCiA1IGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIGIv eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCmluZGV4IDg5NzczOTcuLjhmYWYyNTIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0vZG9t YWluX2J1aWxkLmMKQEAgLTIxMzUsNyArMjEzNSw3IEBAIGludCBfX2luaXQgY29uc3RydWN0X2Rv bTAoc3RydWN0IGRvbWFpbiAqZCkKICAgICBraW5mby51bmFzc2lnbmVkX21lbSA9IGRvbTBfbWVt OwogICAgIGtpbmZvLmQgPSBkOwogCi0gICAgcmMgPSBrZXJuZWxfcHJvYmUoJmtpbmZvKTsKKyAg ICByYyA9IGtlcm5lbF9wcm9iZSgma2luZm8sIE5VTEwpOwogICAgIGlmICggcmMgPCAwICkKICAg ICAgICAgcmV0dXJuIHJjOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0va2VybmVsLmMgYi94 ZW4vYXJjaC9hcm0va2VybmVsLmMKaW5kZXggZGE4NDEwZS4uZDU2Zjc3NiAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL2tlcm5lbC5jCisrKyBiL3hlbi9hcmNoL2FybS9rZXJuZWwuYwpAQCAtNDIx LDIyICs0MjEsNzIgQEAgc3RhdGljIGludCBfX2luaXQga2VybmVsX3ppbWFnZTMyX3Byb2JlKHN0 cnVjdCBrZXJuZWxfaW5mbyAqaW5mbywKICAgICByZXR1cm4gMDsKIH0KIAotaW50IF9faW5pdCBr ZXJuZWxfcHJvYmUoc3RydWN0IGtlcm5lbF9pbmZvICppbmZvKQoraW50IF9faW5pdCBrZXJuZWxf cHJvYmUoc3RydWN0IGtlcm5lbF9pbmZvICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpkb21haW4pCiB7Ci0gICAgc3RydWN0IGJvb3Rt b2R1bGUgKm1vZCA9IGJvb3RfbW9kdWxlX2ZpbmRfYnlfa2luZChCT09UTU9EX0tFUk5FTCk7Cisg ICAgc3RydWN0IGJvb3Rtb2R1bGUgKm1vZCA9IE5VTEw7CisgICAgc3RydWN0IGJvb3RjbWRsaW5l ICpjbWQgPSBOVUxMOworICAgIHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZTsKKyAgICB1NjQg a2VybmVsX2FkZHIsIGluaXRyZF9hZGRyLCBzaXplOwogICAgIGludCByYzsKIAorICAgIC8qIGRv bWFpbiBpcyBOVUxMIG9ubHkgZm9yIHRoZSBoYXJkd2FyZV9kb21haW4gKi8KKyAgICBpZiAoIGRv bWFpbiA9PSBOVUxMICkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc19oYXJkd2FyZV9kb21haW4o aW5mby0+ZCkpOworCisgICAgICAgIG1vZCA9IGJvb3RfbW9kdWxlX2ZpbmRfYnlfa2luZChCT09U TU9EX0tFUk5FTCk7CisKKyAgICAgICAgaW5mby0+a2VybmVsX2Jvb3Rtb2R1bGUgPSBtb2Q7Cisg ICAgICAgIGluZm8tPmluaXRyZF9ib290bW9kdWxlID0gYm9vdF9tb2R1bGVfZmluZF9ieV9raW5k KEJPT1RNT0RfUkFNRElTSyk7CisKKyAgICAgICAgY21kID0gYm9vdF9jbWRsaW5lX2ZpbmRfYnlf a2luZChCT09UTU9EX0tFUk5FTCk7CisgICAgICAgIGlmICggY21kICkKKyAgICAgICAgICAgIGlu Zm8tPmNtZGxpbmUgPSAmY21kLT5jbWRsaW5lWzBdOworICAgIH0KKyAgICBlbHNlCisgICAgewor ICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTDsKKworICAgICAgICBkdF9mb3JfZWFjaF9j aGlsZF9ub2RlKGRvbWFpbiwgbm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCBkdF9k ZXZpY2VfaXNfY29tcGF0aWJsZShub2RlLCAibXVsdGlib290LGtlcm5lbCIpICkKKyAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICB1MzIgbGVuOworICAgICAgICAgICAgICAgIGNvbnN0IF9f YmUzMiAqdmFsOworCisgICAgICAgICAgICAgICAgdmFsID0gZHRfZ2V0X3Byb3BlcnR5KG5vZGUs ICJyZWciLCAmbGVuKTsKKyAgICAgICAgICAgICAgICBkdF9nZXRfcmFuZ2UoJnZhbCwgbm9kZSwg Jmtlcm5lbF9hZGRyLCAmc2l6ZSk7CisgICAgICAgICAgICAgICAgbW9kID0gYm9vdF9tb2R1bGVf ZmluZF9ieV9hZGRyX2FuZF9raW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgQk9PVE1PRF9L RVJORUwsIGtlcm5lbF9hZGRyKTsKKyAgICAgICAgICAgICAgICBpbmZvLT5rZXJuZWxfYm9vdG1v ZHVsZSA9IG1vZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKCBkdF9kZXZp Y2VfaXNfY29tcGF0aWJsZShub2RlLCAibXVsdGlib290LHJhbWRpc2siKSApCisgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgdTMyIGxlbjsKKyAgICAgICAgICAgICAgICBjb25zdCBfX2Jl MzIgKnZhbDsKKworICAgICAgICAgICAgICAgIHZhbCA9IGR0X2dldF9wcm9wZXJ0eShub2RlLCAi cmVnIiwgJmxlbik7CisgICAgICAgICAgICAgICAgZHRfZ2V0X3JhbmdlKCZ2YWwsIG5vZGUsICZp bml0cmRfYWRkciwgJnNpemUpOworICAgICAgICAgICAgICAgIGluZm8tPmluaXRyZF9ib290bW9k dWxlID0gYm9vdF9tb2R1bGVfZmluZF9ieV9hZGRyX2FuZF9raW5kKAorICAgICAgICAgICAgICAg ICAgICAgICAgQk9PVE1PRF9SQU1ESVNLLCBpbml0cmRfYWRkcik7CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAg ICAgICAgbmFtZSA9IGR0X25vZGVfbmFtZShkb21haW4pOworICAgICAgICBjbWQgPSBib290X2Nt ZGxpbmVfZmluZF9ieV9uYW1lKG5hbWUpOworICAgICAgICBpZiAoIGNtZCApCisgICAgICAgICAg ICBpbmZvLT5jbWRsaW5lID0gJmNtZC0+Y21kbGluZVswXTsKKyAgICB9CiAgICAgaWYgKCAhbW9k IHx8ICFtb2QtPnNpemUgKQogICAgIHsKICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIk1pc3Np bmcga2VybmVsIGJvb3QgbW9kdWxlP1xuIik7CiAgICAgICAgIHJldHVybiAtRU5PRU5UOwogICAg IH0KIAotICAgIGluZm8tPmtlcm5lbF9ib290bW9kdWxlID0gbW9kOwotCi0gICAgcHJpbnRrKCJM b2FkaW5nIGtlcm5lbCBmcm9tIGJvb3QgbW9kdWxlIEAgJSJQUklwYWRkciJcbiIsIG1vZC0+c3Rh cnQpOwotCi0gICAgaW5mby0+aW5pdHJkX2Jvb3Rtb2R1bGUgPSBib290X21vZHVsZV9maW5kX2J5 X2tpbmQoQk9PVE1PRF9SQU1ESVNLKTsKKyAgICBwcmludGsoIkxvYWRpbmcgRG9tJWQga2VybmVs IGZyb20gYm9vdCBtb2R1bGUgQCAlIlBSSXBhZGRyIlxuIiwKKyAgICAgICAgICAgaW5mby0+ZC0+ ZG9tYWluX2lkLCBpbmZvLT5rZXJuZWxfYm9vdG1vZHVsZS0+c3RhcnQpOwogICAgIGlmICggaW5m by0+aW5pdHJkX2Jvb3Rtb2R1bGUgKQogICAgICAgICBwcmludGsoIkxvYWRpbmcgcmFtZGlzayBm cm9tIGJvb3QgbW9kdWxlIEAgJSJQUklwYWRkciJcbiIsCiAgICAgICAgICAgICAgICBpbmZvLT5p bml0cmRfYm9vdG1vZHVsZS0+c3RhcnQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2tlcm5l bC5oIGIveGVuL2FyY2gvYXJtL2tlcm5lbC5oCmluZGV4IDM5Yjc4MjguLjQzMjBmNzIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL2FybS9rZXJuZWwuaAorKysgYi94ZW4vYXJjaC9hcm0va2VybmVsLmgK QEAgLTU1LDcgKzU1LDcgQEAgc3RydWN0IGtlcm5lbF9pbmZvIHsKICAqICAtPnR5cGUKICAqICAt PmxvYWQgaG9vaywgYW5kIHNldHMgbG9hZGVyIHNwZWNpZmljIHZhcmlhYmxlcyAtPnppbWFnZQog ICovCi1pbnQga2VybmVsX3Byb2JlKHN0cnVjdCBrZXJuZWxfaW5mbyAqaW5mbyk7CitpbnQga2Vy bmVsX3Byb2JlKHN0cnVjdCBrZXJuZWxfaW5mbyAqaW5mbywgY29uc3Qgc3RydWN0IGR0X2Rldmlj ZV9ub2RlICpkb21haW4pOwogCiAvKgogICogTG9hZHMgdGhlIGtlcm5lbCBpbnRvIGd1ZXN0IFJB TS4KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9zZXR1cC5jIGIveGVuL2FyY2gvYXJtL3NldHVw LmMKaW5kZXggNzJiMTJmOS4uNDlmMmZlZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3NldHVw LmMKKysrIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKQEAgLTI5Myw2ICsyOTMsMzcgQEAgc3RydWN0 IGJvb3RjbWRsaW5lICogX19pbml0IGJvb3RfY21kbGluZV9maW5kX2J5X2tpbmQoYm9vdG1vZHVs ZV9raW5kIGtpbmQpCiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKK3N0cnVjdCBib290Y21kbGluZSAq IF9faW5pdCBib290X2NtZGxpbmVfZmluZF9ieV9uYW1lKGNvbnN0IGNoYXIgKm5hbWUpCit7Cisg ICAgc3RydWN0IGJvb3RjbWRsaW5lcyAqbW9kcyA9ICZib290aW5mby5jbWRsaW5lczsKKyAgICBz dHJ1Y3QgYm9vdGNtZGxpbmUgKm1vZDsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGZvciAo aSA9IDAgOyBpIDwgbW9kcy0+bnJfbW9kcyA7IGkrKyApCisgICAgeworICAgICAgICBtb2QgPSAm bW9kcy0+Y21kbGluZVtpXTsKKyAgICAgICAgaWYgKCBzdHJjbXAobW9kLT5kdF9uYW1lLCBuYW1l KSA9PSAwICkKKyAgICAgICAgICAgIHJldHVybiBtb2Q7CisgICAgfQorICAgIHJldHVybiBOVUxM OworfQorCitzdHJ1Y3QgYm9vdG1vZHVsZSAqIF9faW5pdCBib290X21vZHVsZV9maW5kX2J5X2Fk ZHJfYW5kX2tpbmQoYm9vdG1vZHVsZV9raW5kIGtpbmQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBzdGFydCkKK3sK KyAgICBzdHJ1Y3QgYm9vdG1vZHVsZXMgKm1vZHMgPSAmYm9vdGluZm8ubW9kdWxlczsKKyAgICBz dHJ1Y3QgYm9vdG1vZHVsZSAqbW9kOworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgZm9yIChp ID0gMCA7IGkgPCBtb2RzLT5ucl9tb2RzIDsgaSsrICkKKyAgICB7CisgICAgICAgIG1vZCA9ICZt b2RzLT5tb2R1bGVbaV07CisgICAgICAgIGlmICggbW9kLT5raW5kID09IGtpbmQgJiYgbW9kLT5z dGFydCA9PSBzdGFydCApCisgICAgICAgICAgICByZXR1cm4gbW9kOworICAgIH0KKyAgICByZXR1 cm4gTlVMTDsKK30KKwogY29uc3QgY2hhciAqIF9faW5pdCBib290X21vZHVsZV9raW5kX2FzX3N0 cmluZyhib290bW9kdWxlX2tpbmQga2luZCkKIHsKICAgICBzd2l0Y2ggKCBraW5kICkKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vc2V0dXAuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0v c2V0dXAuaAppbmRleCAzYTMwMzI5Li4zM2ZiMDRlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20tYXJtL3NldHVwLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oCkBAIC0xMDEs OSArMTAxLDEyIEBAIGNvbnN0IGNoYXIgX19pbml0ICpib290X2ZkdF9jbWRsaW5lKGNvbnN0IHZv aWQgKmZkdCk7CiBzdHJ1Y3QgYm9vdG1vZHVsZSAqYWRkX2Jvb3RfbW9kdWxlKGJvb3Rtb2R1bGVf a2luZCBraW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IHN0 YXJ0LCBwYWRkcl90IHNpemUsIGJvb2wgZG9tVSk7CiBzdHJ1Y3QgYm9vdG1vZHVsZSAqYm9vdF9t b2R1bGVfZmluZF9ieV9raW5kKGJvb3Rtb2R1bGVfa2luZCBraW5kKTsKK3N0cnVjdCBib290bW9k dWxlICogX19pbml0IGJvb3RfbW9kdWxlX2ZpbmRfYnlfYWRkcl9hbmRfa2luZChib290bW9kdWxl X2tpbmQga2luZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYWRkcl90IHN0YXJ0KTsKIHZvaWQgYWRkX2Jvb3RfY21kbGluZShj b25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpjbWRsaW5lLAogICAgICAgICAgICAgICAgICAg ICAgIGJvb3Rtb2R1bGVfa2luZCBraW5kLCBib29sIGRvbVUpOwogc3RydWN0IGJvb3RjbWRsaW5l ICpib290X2NtZGxpbmVfZmluZF9ieV9raW5kKGJvb3Rtb2R1bGVfa2luZCBraW5kKTsKK3N0cnVj dCBib290Y21kbGluZSAqIF9faW5pdCBib290X2NtZGxpbmVfZmluZF9ieV9uYW1lKGNvbnN0IGNo YXIgKm5hbWUpOwogY29uc3QgY2hhciAqIF9faW5pdCBib290X21vZHVsZV9raW5kX2FzX3N0cmlu Zyhib290bW9kdWxlX2tpbmQga2luZCk7CiAKICNlbmRpZgotLSAKMS45LjEKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs