From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v5 09/11] xen: add capability to load initrd outside of initial mapping Date: Thu, 25 Feb 2016 12:33:35 +0100 Message-ID: <1456400017-5789-10-git-send-email-jgross@suse.com> References: <1456400017-5789-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1456400017-5789-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: grub-devel@gnu.org Cc: Juergen Gross , phcoder@gmail.com, daniel.kiper@oracle.com, mchang@suse.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org TW9kZXJuIHB2b3BzIGxpbnV4IGtlcm5lbHMgc3VwcG9ydCBhbiBpbml0cmQgbm90IGNvdmVyZWQg YnkgdGhlIGluaXRpYWwKbWFwcGluZy4gVGhpcyBjYXBhYmlsaXR5IGlzIGZsYWdnZWQgYnkgYW4g ZWxmLW5vdGUuCgpJbiBjYXNlIHRoZSBlbGYtbm90ZSBpcyBzZXQgYnkgdGhlIGtlcm5lbCBkb24n dCBwbGFjZSB0aGUgaW5pdHJkIGludG8KdGhlIGluaXRpYWwgbWFwcGluZy4gVGhpcyB3aWxsIGFs bG93IHRvIGxvYWQgbGFyZ2VyIGluaXRyZHMgYW5kL29yCnN1cHBvcnQgZG9tYWlucyB3aXRoIGxh cmdlciBtZW1vcnksIGFzIHRoZSBpbml0aWFsIG1hcHBpbmcgaXMgbGltaXRlZAp0byAyR0IgYW5k IGl0IGlzIGNvbnRhaW5pbmcgdGhlIHAybSBsaXN0LgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBH cm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KVjU6IGxldCBjYWxsIGdydWJfeGVuX2FsbG9jX2Zp bmFsKCkgYWxsIHN1YmZ1bmN0aW9ucyB1bmNvbmRpdGlvbmFsbHkKICAgIGFuZCBsZXQgdGhlbSBk ZWNpZGUgd2hldGhlciB0aGV5IG5lZWQgdG8gZG8gYW55dGhpbmcKVjQ6IHJlbmFtZSBncnViX3hl bl9hbGxvY19lbmQoKSB0byBncnViX3hlbl9hbGxvY19maW5hbCgpCi0tLQogZ3J1Yi1jb3JlL2xv YWRlci9pMzg2L3hlbi5jICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tCiBncnViLWNvcmUvbG9hZGVyL2kzODYveGVuX2ZpbGVYWC5jIHwgIDMgKysKIGlu Y2x1ZGUvZ3J1Yi94ZW5fZmlsZS5oICAgICAgICAgICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQs IDU2IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dydWItY29y ZS9sb2FkZXIvaTM4Ni94ZW4uYyBiL2dydWItY29yZS9sb2FkZXIvaTM4Ni94ZW4uYwppbmRleCAy ZTEyNzYzLi40NjZmMGMwIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbG9hZGVyL2kzODYveGVuLmMK KysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9pMzg2L3hlbi5jCkBAIC0yMjgsNiArMjI4LDkgQEAgZ3J1 Yl94ZW5fcDJtX2FsbG9jICh2b2lkKQogICBncnViX3NpemVfdCBwMm1zaXplOwogICBncnViX2Vy cl90IGVycjsKIAorICBpZiAoeGVuX3N0YXRlLnZpcnRfbWZuX2xpc3QpCisgICAgcmV0dXJuIEdS VUJfRVJSX05PTkU7CisKICAgeGVuX3N0YXRlLnN0YXRlLm1mbl9saXN0ID0geGVuX3N0YXRlLm1h eF9hZGRyOwogICB4ZW5fc3RhdGUubmV4dF9zdGFydC5tZm5fbGlzdCA9CiAgICAgeGVuX3N0YXRl Lm1heF9hZGRyICsgeGVuX3N0YXRlLnhlbl9pbmYudmlydF9iYXNlOwpAQCAtMjUwLDYgKzI1Myw5 IEBAIGdydWJfeGVuX3NwZWNpYWxfYWxsb2MgKHZvaWQpCiAgIGdydWJfcmVsb2NhdG9yX2NodW5r X3QgY2g7CiAgIGdydWJfZXJyX3QgZXJyOwogCisgIGlmICh4ZW5fc3RhdGUudmlydF9zdGFydF9p bmZvKQorICAgIHJldHVybiBHUlVCX0VSUl9OT05FOworCiAgIGVyciA9IGdydWJfcmVsb2NhdG9y X2FsbG9jX2NodW5rX2FkZHIgKHhlbl9zdGF0ZS5yZWxvY2F0b3IsICZjaCwKIAkJCQkJIHhlbl9z dGF0ZS5tYXhfYWRkciwKIAkJCQkJIHNpemVvZiAoeGVuX3N0YXRlLm5leHRfc3RhcnQpKTsKQEAg LTI4MSw2ICsyODcsOSBAQCBncnViX3hlbl9wdF9hbGxvYyAodm9pZCkKICAgZ3J1Yl91aW50NjRf dCBucl9pbmZvX3BhZ2VzOwogICBncnViX3VpbnQ2NF90IG5yX3BhZ2VzLCBucl9wdF9wYWdlcywg bnJfbmVlZF9wYWdlczsKIAorICBpZiAoeGVuX3N0YXRlLnZpcnRfcGd0YWJsZSkKKyAgICByZXR1 cm4gR1JVQl9FUlJfTk9ORTsKKwogICB4ZW5fc3RhdGUubmV4dF9zdGFydC5wdF9iYXNlID0KICAg ICB4ZW5fc3RhdGUubWF4X2FkZHIgKyB4ZW5fc3RhdGUueGVuX2luZi52aXJ0X2Jhc2U7CiAgIHhl bl9zdGF0ZS5zdGF0ZS5wYWdpbmdfc3RhcnQgPSB4ZW5fc3RhdGUubWF4X2FkZHIgPj4gUEFHRV9T SElGVDsKQEAgLTMyMCw2ICszMjksMjQgQEAgZ3J1Yl94ZW5fcHRfYWxsb2MgKHZvaWQpCiB9CiAK IHN0YXRpYyBncnViX2Vycl90CitncnViX3hlbl9hbGxvY19maW5hbCAodm9pZCkKK3sKKyAgZ3J1 Yl9lcnJfdCBlcnI7CisKKyAgZXJyID0gZ3J1Yl94ZW5fcDJtX2FsbG9jICgpOworICBpZiAoZXJy KQorICAgIHJldHVybiBlcnI7CisgIGVyciA9IGdydWJfeGVuX3NwZWNpYWxfYWxsb2MgKCk7Cisg IGlmIChlcnIpCisgICAgcmV0dXJuIGVycjsKKyAgZXJyID0gZ3J1Yl94ZW5fcHRfYWxsb2MgKCk7 CisgIGlmIChlcnIpCisgICAgcmV0dXJuIGVycjsKKworICByZXR1cm4gR1JVQl9FUlJfTk9ORTsK K30KKworc3RhdGljIGdydWJfZXJyX3QKIGdydWJfeGVuX2Jvb3QgKHZvaWQpCiB7CiAgIGdydWJf ZXJyX3QgZXJyOwpAQCAtMzMwLDEzICszNTcsNyBAQCBncnViX3hlbl9ib290ICh2b2lkKQogICBp ZiAoZ3J1Yl94ZW5fbl9hbGxvY2F0ZWRfc2hhcmVkX3BhZ2VzKQogICAgIHJldHVybiBncnViX2Vy cm9yIChHUlVCX0VSUl9CVUcsICJhY3RpdmUgZ3JhbnRzIik7CiAKLSAgZXJyID0gZ3J1Yl94ZW5f cDJtX2FsbG9jICgpOwotICBpZiAoZXJyKQotICAgIHJldHVybiBlcnI7Ci0gIGVyciA9IGdydWJf eGVuX3NwZWNpYWxfYWxsb2MgKCk7Ci0gIGlmIChlcnIpCi0gICAgcmV0dXJuIGVycjsKLSAgZXJy ID0gZ3J1Yl94ZW5fcHRfYWxsb2MgKCk7CisgIGVyciA9IGdydWJfeGVuX2FsbG9jX2ZpbmFsICgp OwogICBpZiAoZXJyKQogICAgIHJldHVybiBlcnI7CiAKQEAgLTYxMCw2ICs2MzEsMTMgQEAgZ3J1 Yl9jbWRfaW5pdHJkIChncnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkp LAogICAgICAgZ290byBmYWlsOwogICAgIH0KIAorICBpZiAoeGVuX3N0YXRlLnhlbl9pbmYudW5t YXBwZWRfaW5pdHJkKQorICAgIHsKKyAgICAgIGVyciA9IGdydWJfeGVuX2FsbG9jX2ZpbmFsICgp OworICAgICAgaWYgKGVycikKKwlnb3RvIGZhaWw7CisgICAgfQorCiAgIGlmIChncnViX2luaXRy ZF9pbml0IChhcmdjLCBhcmd2LCAmaW5pdHJkX2N0eCkpCiAgICAgZ290byBmYWlsOwogCkBAIC02 MjcsMTQgKzY1NSwyNCBAQCBncnViX2NtZF9pbml0cmQgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0 dHJpYnV0ZV9fICgodW51c2VkKSksCiAJZ290byBmYWlsOwogICAgIH0KIAotICB4ZW5fc3RhdGUu bmV4dF9zdGFydC5tb2Rfc3RhcnQgPQotICAgIHhlbl9zdGF0ZS5tYXhfYWRkciArIHhlbl9zdGF0 ZS54ZW5faW5mLnZpcnRfYmFzZTsKLSAgeGVuX3N0YXRlLm5leHRfc3RhcnQubW9kX2xlbiA9IHNp emU7Ci0KLSAgeGVuX3N0YXRlLm1heF9hZGRyID0gQUxJR05fVVAgKHhlbl9zdGF0ZS5tYXhfYWRk ciArIHNpemUsIFBBR0VfU0laRSk7CisgIGlmICh4ZW5fc3RhdGUueGVuX2luZi51bm1hcHBlZF9p bml0cmQpCisgICAgeworICAgICAgeGVuX3N0YXRlLm5leHRfc3RhcnQuZmxhZ3MgfD0gU0lGX01P RF9TVEFSVF9QRk47CisgICAgICB4ZW5fc3RhdGUubmV4dF9zdGFydC5tb2Rfc3RhcnQgPSB4ZW5f c3RhdGUubWF4X2FkZHIgPj4gUEFHRV9TSElGVDsKKyAgICAgIHhlbl9zdGF0ZS5uZXh0X3N0YXJ0 Lm1vZF9sZW4gPSBzaXplOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHhlbl9zdGF0ZS5u ZXh0X3N0YXJ0Lm1vZF9zdGFydCA9CisJeGVuX3N0YXRlLm1heF9hZGRyICsgeGVuX3N0YXRlLnhl bl9pbmYudmlydF9iYXNlOworICAgICAgeGVuX3N0YXRlLm5leHRfc3RhcnQubW9kX2xlbiA9IHNp emU7CisgICAgfQogCiAgIGdydWJfZHByaW50ZiAoInhlbiIsICJJbml0cmQsIGFkZHI9MHgleCwg c2l6ZT0weCV4XG4iLAotCQkodW5zaWduZWQpIHhlbl9zdGF0ZS5uZXh0X3N0YXJ0Lm1vZF9zdGFy dCwgKHVuc2lnbmVkKSBzaXplKTsKKwkJKHVuc2lnbmVkKSAoeGVuX3N0YXRlLm1heF9hZGRyICsg eGVuX3N0YXRlLnhlbl9pbmYudmlydF9iYXNlKSwKKwkJKHVuc2lnbmVkKSBzaXplKTsKKworICB4 ZW5fc3RhdGUubWF4X2FkZHIgPSBBTElHTl9VUCAoeGVuX3N0YXRlLm1heF9hZGRyICsgc2l6ZSwg UEFHRV9TSVpFKTsKIAogZmFpbDoKICAgZ3J1Yl9pbml0cmRfY2xvc2UgKCZpbml0cmRfY3R4KTsK QEAgLTY4Niw2ICs3MjQsNyBAQCBncnViX2NtZF9tb2R1bGUgKGdydWJfY29tbWFuZF90IGNtZCBf X2F0dHJpYnV0ZV9fICgodW51c2VkKSksCiAKICAgaWYgKCF4ZW5fc3RhdGUubW9kdWxlX2luZm9f cGFnZSkKICAgICB7CisgICAgICB4ZW5fc3RhdGUueGVuX2luZi51bm1hcHBlZF9pbml0cmQgPSAw OwogICAgICAgeGVuX3N0YXRlLm5fbW9kdWxlcyA9IDA7CiAgICAgICB4ZW5fc3RhdGUubWF4X2Fk ZHIgPSBBTElHTl9VUCAoeGVuX3N0YXRlLm1heF9hZGRyLCBQQUdFX1NJWkUpOwogICAgICAgeGVu X3N0YXRlLm1vZHVsZXNfdGFyZ2V0X3N0YXJ0ID0geGVuX3N0YXRlLm1heF9hZGRyOwpkaWZmIC0t Z2l0IGEvZ3J1Yi1jb3JlL2xvYWRlci9pMzg2L3hlbl9maWxlWFguYyBiL2dydWItY29yZS9sb2Fk ZXIvaTM4Ni94ZW5fZmlsZVhYLmMKaW5kZXggMDMyMTVjYS4uODc1MTE3NCAxMDA2NDQKLS0tIGEv Z3J1Yi1jb3JlL2xvYWRlci9pMzg2L3hlbl9maWxlWFguYworKysgYi9ncnViLWNvcmUvbG9hZGVy L2kzODYveGVuX2ZpbGVYWC5jCkBAIC0yNjEsNiArMjYxLDkgQEAgcGFyc2Vfbm90ZSAoZ3J1Yl9l bGZfdCBlbGYsIHN0cnVjdCBncnViX3hlbl9maWxlX2luZm8gKnhpLAogCQkJCQkgIGRlc2NzeiA9 PSAyID8gMiA6IDMpID09IDApCiAJICAgIHhpLT5hcmNoID0gR1JVQl9YRU5fRklMRV9JMzg2Owog CSAgYnJlYWs7CisJY2FzZSBYRU5fRUxGTk9URV9NT0RfU1RBUlRfUEZOOgorCSAgeGktPnVubWFw cGVkX2luaXRyZCA9ICEhZ3J1Yl9sZV90b19jcHUzMigqKGdydWJfdWludDMyX3QgKikgZGVzYyk7 CisJICBicmVhazsKIAlkZWZhdWx0OgogCSAgZ3J1Yl9kcHJpbnRmICgieGVuIiwgInVua25vd24g bm90ZSB0eXBlICVkXG4iLCBuaC0+bl90eXBlKTsKIAkgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9ncnViL3hlbl9maWxlLmggYi9pbmNsdWRlL2dydWIveGVuX2ZpbGUuaAppbmRleCA0YjJj Y2JhLi5lZDc0OWZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIveGVuX2ZpbGUuaAorKysgYi9p bmNsdWRlL2dydWIveGVuX2ZpbGUuaApAQCAtMzYsNiArMzYsNyBAQCBzdHJ1Y3QgZ3J1Yl94ZW5f ZmlsZV9pbmZvCiAgIGludCBoYXNfbm90ZTsKICAgaW50IGhhc194ZW5fZ3Vlc3Q7CiAgIGludCBl eHRlbmRlZF9jcjM7CisgIGludCB1bm1hcHBlZF9pbml0cmQ7CiAgIGVudW0KICAgewogICAgIEdS VUJfWEVOX0ZJTEVfSTM4NiA9IDEsCi0tIAoyLjYuMgoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==