From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v5] x86/setup: properly update PTEs if src/dst overlaps when relocating Xen image Date: Wed, 18 Apr 2018 12:26:57 +0200 Message-ID: <1524047217-24424-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1f8kIy-00062v-Me for xen-devel@lists.xenproject.org; Wed, 18 Apr 2018 10:27:12 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: andrew.cooper3@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org Q29tbWl0IDBkMzFkMTYgKHg4Ni9zZXR1cDogZG8gbm90IHJlbG9jYXRlIFhlbiBvdmVyIGN1cnJl bnQgWGVuIGltYWdlCnBsYWNlbWVudCkgZGlzYWxsb3dlZCBzcmMvZHN0IGltYWdlcyBvdmVybGFw cyB3aGVuIHJlbG9jYXRpbmcgWGVuIGltYWdlLgpUaG91Z2ggaXQgZGVsaWJlcmF0ZWx5IGFsbG93 ZWQgZGVzdGluYXRpb24gcmVnaW9uIGJldHdlZW4gX19pbWFnZV9iYXNlX18KYW5kIChfX2ltYWdl X2Jhc2VfXyArIFhFTl9JTUdfT0ZGU0VUKSBvdmVybGFwcyB3aXRoIHRoZSBlbmQgb2Ygc291cmNl CmltYWdlLiBBbmQgaGVyZSBpcyB0aGUgcHJvYmxlbS4gSWYgYW55dGhpbmcgYmV0d2VlbiBfX3Bh Z2VfdGFibGVzX3N0YXJ0CmFuZCBfX3BhZ2VfdGFibGVzX2VuZCBpbiBzb3VyY2UgaW1hZ2UgbGFu ZHMgaW4gdGhlIG92ZXJsYXAgdGhlbiBzb21lIG9yCmV2ZW4gYWxsIHBhZ2UgdGFibGUgZW50cmll cyBtYXkgbm90IGJlIHVwZGF0ZWQuIFRoaXMgdXN1YWxseSBtZWFucyBib29tCmluIGVhcmx5IGJv b3Qgd2hpY2ggd2lsbCBiZSBkaWZmaWN1bHQgdG8gdGhlIGludmVzdGlnYXRlLiBTbywgSSB0aGlu awp0aGF0IHdlIGhhdmUgdGhyZWUgY2hvaWNlcyB0byBmaXggdGhlIGlzc3VlOgogIC0gZHJvcCBY RU5fSU1HX09GRlNFVCBmcm9tCiAgICBpZiAoIChlbmQgPiBzKSAmJiAoZW5kIC0gcmVsb2Nfc2l6 ZSArIFhFTl9JTUdfT0ZGU0VUID49IF9fcGEoX2VuZCkpICkKICAtIGFkZCBYRU5fSU1HX09GRlNF VCB0byB4ZW5fcGh5c19zdGFydCBpbiBQRk5fRE9XTih4ZW5fcGh5c19zdGFydCkKICAgIHVzZWQg aW4gbG9vcHMgYXMgb25lIG9mIGNvbmRpdGlvbnMsCiAgLSBjaGFuZ2UgUEZOX0RPV04oeGVuX3Bo eXNfc3RhcnQpIHRvIFBGTl9ET1dOKHhlbl9yZW1hcF9lbmRfcGZuKQogICAgcHJvcG9zZWQgaW4g ZWFybGllciB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2guCgpUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhl IHNlY29uZCBvcHRpb24uIFRoaXMgd2F5IHdlIHN0aWxsIGFsbG93IHNvdXJjZQphbmQgZGVzdGlu YXRpb24gcGFydGlhbCBvdmVybGFwIGFzIGRlc2NyaWJlZCBhYm92ZSBidXQgUFRFcyBhcmUgcHJv cGVybHkKdXBkYXRlZCBub3cuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgS2lwZXIgPGRhbmllbC5r aXBlckBvcmFjbGUuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9zZXR1cC5jIHwgICAxMyArKysrKysr KysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5j CmluZGV4IGIyYmFlZTMuLjA0MGZkMDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5j CisrKyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCkBAIC0xMDEyLDYgKzEwMTIsNyBAQCB2b2lkIF9f aW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAgICAg ICAgbDNfcGdlbnRyeV90ICpwbDNlOwogICAgICAgICAgICAgbDJfcGdlbnRyeV90ICpwbDJlOwog ICAgICAgICAgICAgaW50IGksIGosIGs7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHB0ZV91 cGRhdGVfbGltaXQ7CiAKICAgICAgICAgICAgIC8qIFNlbGVjdCByZWxvY2F0aW9uIGFkZHJlc3Mu ICovCiAgICAgICAgICAgICBlID0gZW5kIC0gcmVsb2Nfc2l6ZTsKQEAgLTEwMTksNiArMTAyMCwx MiBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9w KQogICAgICAgICAgICAgYm9vdHN5bSh0cmFtcG9saW5lX3hlbl9waHlzX3N0YXJ0KSA9IGU7CiAK ICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBBbGwgUFRFcyB3aXRoIFBGTnMgYWJvdmUg cHRlX3VwZGF0ZV9saW1pdAorICAgICAgICAgICAgICogd2VyZSB1cGRhdGVkIGVhcmxpZXIuIFNr aXAgdGhlbS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHRlX3VwZGF0ZV9saW1pdCA9 IFBGTl9ET1dOKGUgKyBYRU5fSU1HX09GRlNFVCk7CisKKyAgICAgICAgICAgIC8qCiAgICAgICAg ICAgICAgKiBQZXJmb3JtIHJlbG9jYXRpb24gdG8gbmV3IHBoeXNpY2FsIGFkZHJlc3MuCiAgICAg ICAgICAgICAgKiBCZWZvcmUgZG9pbmcgc28gd2UgbXVzdCBzeW5jIHN0YXRpYy9nbG9iYWwgZGF0 YSB3aXRoIG1haW4gbWVtb3J5CiAgICAgICAgICAgICAgKiB3aXRoIGEgYmFycmllcigpLiBBZnRl ciB0aGlzIHdlIG11c3QgKm5vdCogbW9kaWZ5IHN0YXRpYy9nbG9iYWwKQEAgLTEwNDEsNyArMTA0 OCw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJp X3ApCiAgICAgICAgICAgICAgICAgICAgIC8qIE5vdCBwcmVzZW50LCAxR0IgbWFwcGluZywgb3Ig YWxyZWFkeSByZWxvY2F0ZWQ/ICovCiAgICAgICAgICAgICAgICAgICAgIGlmICggIShsM2VfZ2V0 X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BSRVNFTlQpIHx8CiAgICAgICAgICAgICAgICAgICAgICAg ICAgKGwzZV9nZXRfZmxhZ3MoKnBsM2UpICYgX1BBR0VfUFNFKSB8fAotICAgICAgICAgICAgICAg ICAgICAgICAgIChsM2VfZ2V0X3BmbigqcGwzZSkgPiBQRk5fRE9XTih4ZW5fcGh5c19zdGFydCkp ICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobDNlX2dldF9wZm4oKnBsM2UpID4gcHRlX3Vw ZGF0ZV9saW1pdCkgKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg ICAgICAgICAgICAgICpwbDNlID0gbDNlX2Zyb21faW50cHRlKGwzZV9nZXRfaW50cHRlKCpwbDNl KSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9waHlz X3N0YXJ0KTsKQEAgLTEwNTEsNyArMTA1OCw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3Rh cnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBO b3QgcHJlc2VudCwgUFNFLCBvciBhbHJlYWR5IHJlbG9jYXRlZD8gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICggIShsMmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9QQUdFX1BSRVNFTlQpIHx8 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsMmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9Q QUdFX1BTRSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGwyZV9nZXRfcGZuKCpw bDJlKSA+IFBGTl9ET1dOKHhlbl9waHlzX3N0YXJ0KSkgKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobDJlX2dldF9wZm4oKnBsMmUpID4gcHRlX3VwZGF0ZV9saW1pdCkgKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICAg KnBsMmUgPSBsMmVfZnJvbV9pbnRwdGUobDJlX2dldF9pbnRwdGUoKnBsMmUpICsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9waHlzX3N0YXJ0KTsK QEAgLTEwNzUsNyArMTA4Miw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVu c2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwog CiAgICAgICAgICAgICAgICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJF U0VOVCkgfHwKLSAgICAgICAgICAgICAgICAgICAgIChsMmVfZ2V0X3BmbigqcGwyZSkgPiBQRk5f RE9XTih4ZW5fcGh5c19zdGFydCkpICkKKyAgICAgICAgICAgICAgICAgICAgIChsMmVfZ2V0X3Bm bigqcGwyZSkgPiBwdGVfdXBkYXRlX2xpbWl0KSApCiAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKCAhdXNpbmdfMk1fbWFwcGluZygpICkKLS0gCjEu Ny4xMC40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==