From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v5 08/11] xen: factor out allocation of page tables into separate function Date: Thu, 25 Feb 2016 12:33:34 +0100 Message-ID: <1456400017-5789-9-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 RG8gdGhlIGFsbG9jYXRpb24gb2YgcGFnZSB0YWJsZXMgaW4gYSBzZXBhcmF0ZSBmdW5jdGlvbi4g VGhpcyB3aWxsCmFsbG93IHRvIGRvIHRoZSBhbGxvY2F0aW9uIGF0IGRpZmZlcmVudCB0aW1lcyBv ZiB0aGUgYm9vdCBwcmVwYXJhdGlvbnMKZGVwZW5kaW5nIG9uIHRoZSBmZWF0dXJlcyB0aGUga2Vy bmVsIGlzIHN1cHBvcnRpbmcuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NA c3VzZS5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBvcmFjbGUu Y29tPgotLS0KIGdydWItY29yZS9sb2FkZXIvaTM4Ni94ZW4uYyB8IDkxICsrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU2IGluc2Vy dGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9sb2FkZXIv aTM4Ni94ZW4uYyBiL2dydWItY29yZS9sb2FkZXIvaTM4Ni94ZW4uYwppbmRleCBhODBjMGY4Li4y ZTEyNzYzIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbG9hZGVyL2kzODYveGVuLmMKKysrIGIvZ3J1 Yi1jb3JlL2xvYWRlci9pMzg2L3hlbi5jCkBAIC01MSw2ICs1MSw5IEBAIHN0cnVjdCB4ZW5fbG9h ZGVyX3N0YXRlIHsKICAgc3RydWN0IHN0YXJ0X2luZm8gKnZpcnRfc3RhcnRfaW5mbzsKICAgZ3J1 Yl94ZW5fbWZuX3QgY29uc29sZV9wZm47CiAgIGdydWJfdWludDY0X3QgbWF4X2FkZHI7CisgIGdy dWJfdWludDY0X3QgKnZpcnRfcGd0YWJsZTsKKyAgZ3J1Yl91aW50NjRfdCBwZ3RibF9zdGFydDsK KyAgZ3J1Yl91aW50NjRfdCBwZ3RibF9lbmQ7CiAgIHN0cnVjdCB4ZW5fbXVsdGlib290X21vZF9s aXN0ICptb2R1bGVfaW5mb19wYWdlOwogICBncnViX3VpbnQ2NF90IG1vZHVsZXNfdGFyZ2V0X3N0 YXJ0OwogICBncnViX3NpemVfdCBuX21vZHVsZXM7CkBAIC0xMTAsMTcgKzExMywxNyBAQCBnZXRf cGd0YWJsZV9zaXplIChncnViX3VpbnQ2NF90IHRvdGFsX3BhZ2VzLCBncnViX3VpbnQ2NF90IHZp cnRfYmFzZSkKIAogc3RhdGljIHZvaWQKIGdlbmVyYXRlX3BhZ2VfdGFibGUgKGdydWJfdWludDY0 X3QgKndoZXJlLCBncnViX3VpbnQ2NF90IHBhZ2luZ19zdGFydCwKLQkJICAgICBncnViX3VpbnQ2 NF90IHRvdGFsX3BhZ2VzLCBncnViX3VpbnQ2NF90IHZpcnRfYmFzZSwKLQkJICAgICBncnViX3hl bl9tZm5fdCAqbWZuX2xpc3QpCisJCSAgICAgZ3J1Yl91aW50NjRfdCBwYWdpbmdfZW5kLCBncnVi X3VpbnQ2NF90IHRvdGFsX3BhZ2VzLAorCQkgICAgIGdydWJfdWludDY0X3QgdmlydF9iYXNlLCBn cnViX3hlbl9tZm5fdCAqbWZuX2xpc3QpCiB7CiAgIGlmICghdmlydF9iYXNlKQotICAgIHRvdGFs X3BhZ2VzKys7CisgICAgcGFnaW5nX2VuZCsrOwogCiAgIGdydWJfdWludDY0X3QgbHhbTlVNQkVS X09GX0xFVkVMU10sIGx4c1tOVU1CRVJfT0ZfTEVWRUxTXTsKICAgZ3J1Yl91aW50NjRfdCBubHgs IG5scywgc3ogPSAwOwogICBpbnQgbDsKIAotICBubHggPSB0b3RhbF9wYWdlczsKKyAgbmx4ID0g cGFnaW5nX2VuZDsKICAgbmxzID0gdmlydF9iYXNlID4+IFBBR0VfU0hJRlQ7CiAgIGZvciAobCA9 IDA7IGwgPCBOVU1CRVJfT0ZfTEVWRUxTOyBsKyspCiAgICAgewpAQCAtMTY0LDcgKzE2Nyw3IEBA IGdlbmVyYXRlX3BhZ2VfdGFibGUgKGdydWJfdWludDY0X3QgKndoZXJlLCBncnViX3VpbnQ2NF90 IHBhZ2luZ19zdGFydCwKICAgaWYgKHByKQogICAgIHBnICs9IFBPSU5URVJTX1BFUl9QQUdFOwog Ci0gIGZvciAoaiA9IDA7IGogPCB0b3RhbF9wYWdlczsgaisrKQorICBmb3IgKGogPSAwOyBqIDwg cGFnaW5nX2VuZDsgaisrKQogICAgIHsKICAgICAgIGlmIChqID49IHBhZ2luZ19zdGFydCAmJiBq IDwgbHApCiAJcGdbaiArIGx4c1swXV0gPSBwYWdlMm9mZnNldCAobWZuX2xpc3Rbal0pIHwgNTsK QEAgLTI3MSwyNCArMjc0LDEyIEBAIGdydWJfeGVuX3NwZWNpYWxfYWxsb2MgKHZvaWQpCiB9CiAK IHN0YXRpYyBncnViX2Vycl90Ci1ncnViX3hlbl9ib290ICh2b2lkKQorZ3J1Yl94ZW5fcHRfYWxs b2MgKHZvaWQpCiB7CiAgIGdydWJfcmVsb2NhdG9yX2NodW5rX3QgY2g7CiAgIGdydWJfZXJyX3Qg ZXJyOwogICBncnViX3VpbnQ2NF90IG5yX2luZm9fcGFnZXM7CiAgIGdydWJfdWludDY0X3QgbnJf cGFnZXMsIG5yX3B0X3BhZ2VzLCBucl9uZWVkX3BhZ2VzOwotICBzdHJ1Y3QgZ250dGFiX3NldF92 ZXJzaW9uIGdudHRhYl9zZXR2ZXI7Ci0gIGdydWJfc2l6ZV90IGk7Ci0KLSAgaWYgKGdydWJfeGVu X25fYWxsb2NhdGVkX3NoYXJlZF9wYWdlcykKLSAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9F UlJfQlVHLCAiYWN0aXZlIGdyYW50cyIpOwotCi0gIGVyciA9IGdydWJfeGVuX3AybV9hbGxvYyAo KTsKLSAgaWYgKGVycikKLSAgICByZXR1cm4gZXJyOwotICBlcnIgPSBncnViX3hlbl9zcGVjaWFs X2FsbG9jICgpOwotICBpZiAoZXJyKQotICAgIHJldHVybiBlcnI7CiAKICAgeGVuX3N0YXRlLm5l eHRfc3RhcnQucHRfYmFzZSA9CiAgICAgeGVuX3N0YXRlLm1heF9hZGRyICsgeGVuX3N0YXRlLnhl bl9pbmYudmlydF9iYXNlOwpAQCAtMzA5LDMxICszMDAsNjEgQEAgZ3J1Yl94ZW5fYm9vdCAodm9p ZCkKICAgICAgIG5yX3BhZ2VzID0gbnJfbmVlZF9wYWdlczsKICAgICB9CiAKLSAgZ3J1Yl9kcHJp bnRmICgieGVuIiwgImJvb3RzdHJhcCBkb21haW4gJWxseCslbGx4XG4iLAotCQkodW5zaWduZWQg bG9uZyBsb25nKSB4ZW5fc3RhdGUueGVuX2luZi52aXJ0X2Jhc2UsCi0JCSh1bnNpZ25lZCBsb25n IGxvbmcpIHBhZ2Uyb2Zmc2V0IChucl9wYWdlcykpOwotCiAgIGVyciA9IGdydWJfcmVsb2NhdG9y X2FsbG9jX2NodW5rX2FkZHIgKHhlbl9zdGF0ZS5yZWxvY2F0b3IsICZjaCwKIAkJCQkJIHhlbl9z dGF0ZS5tYXhfYWRkciwKIAkJCQkJIHBhZ2Uyb2Zmc2V0IChucl9wdF9wYWdlcykpOwogICBpZiAo ZXJyKQogICAgIHJldHVybiBlcnI7CiAKLSAgZXJyID0gc2V0X21mbnMgKHhlbl9zdGF0ZS5jb25z b2xlX3Bmbik7Ci0gIGlmIChlcnIpCi0gICAgcmV0dXJuIGVycjsKLQotICBnZW5lcmF0ZV9wYWdl X3RhYmxlIChnZXRfdmlydHVhbF9jdXJyZW50X2FkZHJlc3MgKGNoKSwKLQkJICAgICAgIHhlbl9z dGF0ZS5tYXhfYWRkciA+PiBQQUdFX1NISUZULCBucl9wYWdlcywKLQkJICAgICAgIHhlbl9zdGF0 ZS54ZW5faW5mLnZpcnRfYmFzZSwgeGVuX3N0YXRlLnZpcnRfbWZuX2xpc3QpOwotCisgIHhlbl9z dGF0ZS52aXJ0X3BndGFibGUgPSBnZXRfdmlydHVhbF9jdXJyZW50X2FkZHJlc3MgKGNoKTsKKyAg eGVuX3N0YXRlLnBndGJsX3N0YXJ0ID0geGVuX3N0YXRlLm1heF9hZGRyID4+IFBBR0VfU0hJRlQ7 CiAgIHhlbl9zdGF0ZS5tYXhfYWRkciArPSBwYWdlMm9mZnNldCAobnJfcHRfcGFnZXMpOwogICB4 ZW5fc3RhdGUuc3RhdGUuc3RhY2sgPQogICAgIHhlbl9zdGF0ZS5tYXhfYWRkciArIFNUQUNLX1NJ WkUgKyB4ZW5fc3RhdGUueGVuX2luZi52aXJ0X2Jhc2U7Ci0gIHhlbl9zdGF0ZS5zdGF0ZS5lbnRy eV9wb2ludCA9IHhlbl9zdGF0ZS54ZW5faW5mLmVudHJ5X3BvaW50OwotCi0gIHhlbl9zdGF0ZS5u ZXh0X3N0YXJ0Lm5yX3B0X2ZyYW1lcyA9IG5yX3B0X3BhZ2VzOwogICB4ZW5fc3RhdGUuc3RhdGUu cGFnaW5nX3NpemUgPSBucl9wdF9wYWdlczsKKyAgeGVuX3N0YXRlLm5leHRfc3RhcnQubnJfcHRf ZnJhbWVzID0gbnJfcHRfcGFnZXM7CisgIHhlbl9zdGF0ZS5tYXhfYWRkciA9IHBhZ2Uyb2Zmc2V0 IChucl9wYWdlcyk7CisgIHhlbl9zdGF0ZS5wZ3RibF9lbmQgPSBucl9wYWdlczsKKworICByZXR1 cm4gR1JVQl9FUlJfTk9ORTsKK30KKworc3RhdGljIGdydWJfZXJyX3QKK2dydWJfeGVuX2Jvb3Qg KHZvaWQpCit7CisgIGdydWJfZXJyX3QgZXJyOworICBncnViX3VpbnQ2NF90IG5yX3BhZ2VzOwor ICBzdHJ1Y3QgZ250dGFiX3NldF92ZXJzaW9uIGdudHRhYl9zZXR2ZXI7CisgIGdydWJfc2l6ZV90 IGk7CisKKyAgaWYgKGdydWJfeGVuX25fYWxsb2NhdGVkX3NoYXJlZF9wYWdlcykKKyAgICByZXR1 cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQlVHLCAiYWN0aXZlIGdyYW50cyIpOworCisgIGVyciA9 IGdydWJfeGVuX3AybV9hbGxvYyAoKTsKKyAgaWYgKGVycikKKyAgICByZXR1cm4gZXJyOworICBl cnIgPSBncnViX3hlbl9zcGVjaWFsX2FsbG9jICgpOworICBpZiAoZXJyKQorICAgIHJldHVybiBl cnI7CisgIGVyciA9IGdydWJfeGVuX3B0X2FsbG9jICgpOworICBpZiAoZXJyKQorICAgIHJldHVy biBlcnI7CisKKyAgZXJyID0gc2V0X21mbnMgKHhlbl9zdGF0ZS5jb25zb2xlX3Bmbik7CisgIGlm IChlcnIpCisgICAgcmV0dXJuIGVycjsKKworICBucl9wYWdlcyA9IHhlbl9zdGF0ZS5tYXhfYWRk ciA+PiBQQUdFX1NISUZUOworCisgIGdydWJfZHByaW50ZiAoInhlbiIsICJib290c3RyYXAgZG9t YWluICVsbHgrJWxseFxuIiwKKwkJKHVuc2lnbmVkIGxvbmcgbG9uZykgeGVuX3N0YXRlLnhlbl9p bmYudmlydF9iYXNlLAorCQkodW5zaWduZWQgbG9uZyBsb25nKSBwYWdlMm9mZnNldCAobnJfcGFn ZXMpKTsKKworICBnZW5lcmF0ZV9wYWdlX3RhYmxlICh4ZW5fc3RhdGUudmlydF9wZ3RhYmxlLCB4 ZW5fc3RhdGUucGd0Ymxfc3RhcnQsCisJCSAgICAgICB4ZW5fc3RhdGUucGd0YmxfZW5kLCBucl9w YWdlcywKKwkJICAgICAgIHhlbl9zdGF0ZS54ZW5faW5mLnZpcnRfYmFzZSwgeGVuX3N0YXRlLnZp cnRfbWZuX2xpc3QpOworCisgIHhlbl9zdGF0ZS5zdGF0ZS5lbnRyeV9wb2ludCA9IHhlbl9zdGF0 ZS54ZW5faW5mLmVudHJ5X3BvaW50OwogCiAgICp4ZW5fc3RhdGUudmlydF9zdGFydF9pbmZvID0g eGVuX3N0YXRlLm5leHRfc3RhcnQ7CiAKQEAgLTM0OCw4ICszNjksOCBAQCBncnViX3hlbl9ib290 ICh2b2lkKQogICByZXR1cm4gZ3J1Yl9yZWxvY2F0b3JfeGVuX2Jvb3QgKHhlbl9zdGF0ZS5yZWxv Y2F0b3IsIHhlbl9zdGF0ZS5zdGF0ZSwgbnJfcGFnZXMsCiAJCQkJICB4ZW5fc3RhdGUueGVuX2lu Zi52aXJ0X2Jhc2UgPAogCQkJCSAgUEFHRV9TSVpFID8gcGFnZTJvZmZzZXQgKG5yX3BhZ2VzKSA6 IDAsCi0JCQkJICBucl9wYWdlcyAtIDEsCi0JCQkJICBwYWdlMm9mZnNldCAobnJfcGFnZXMgLSAx KSArCisJCQkJICB4ZW5fc3RhdGUucGd0YmxfZW5kIC0gMSwKKwkJCQkgIHBhZ2Uyb2Zmc2V0ICh4 ZW5fc3RhdGUucGd0YmxfZW5kIC0gMSkgKwogCQkJCSAgeGVuX3N0YXRlLnhlbl9pbmYudmlydF9i YXNlKTsKIH0KIAotLSAKMi42LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=