From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/3] x86/pv: Introduce and use x86emul_write_dr() Date: Thu, 12 Apr 2018 17:55:55 +0100 Message-ID: <1523552156-20866-3-git-send-email-andrew.cooper3@citrix.com> References: <1523552156-20866-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1523552156-20866-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Juergen Gross , Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org c2V0X2RlYnVncmVnKCkgaGFzIHNldmVyYWwgYnVnczoKCiAqICVkcjQvNSBzaG91bGQgZnVuY3Rp b24gY29ycmVjdGx5IGFzIGFsaWFzZXMgb2YgJWRyNi83IHdoZW4gQ1I0LkRFIGlzIGNsZWFyLgog KiBBdHRlbXB0aW5nIHRvIHNldCB0aGUgdXBwZXIgMzIgYml0cyBvZiAlZHI2Lzcgc2hvdWxkIGZh aWwgd2l0aCAjR1BbMF0KICAgcmF0aGVyIHRoYW4gYmUgc2lsZW50bHkgY29ycmVjdGVkIGFuZCBj b21wbGV0ZS4KICogRm9yIGVtdWxhdGlvbiwgdGhlICNVRCBhbmQgI0dQWzBdIGNhc2VzIG5lZWQg cHJvcGVybHkgZGlzdGluZ3Vpc2hpbmcuICBVc2UKICAgLUVOT0RFViBmb3IgI1VEIGNhc2VzLCBs ZWF2aW5nIC1FSU5WQUwgKGJhZCBiaXRzKSBhbmQgLUVQRVJNIChub3QgYWxsb3dlZCB0bwogICB1 c2UgdGhhdCB2YWxpZCBiaXQpIGFzIGJlZm9yZSBmb3IgaHlwZXJjYWxsIGNhbGxlcnMuCiAqIEEg d3JpdGUgd2hpY2ggY2xlYXJzICVkcjcuTC9HIGxlYXZlcyB0aGUgSU8gc2hhZG93IGludGFjdCwg bWVhbmluZyB0aGF0CiAgIHN1YnNlcXVlbnQgcmVhZHMgb2YgJWRyNyB3aWxsIHNlZSBzdGFsZSBJ TyB3YXRjaHBvaW50IGNvbmZpZ3VyYXRpb24uCgpJbXBsZW1lbnQgeDg2ZW11bF93cml0ZV9kcigp IGFzIGEgdGhpbiB3cmFwcGVyIGFyb3VuZCBzZXRfZGVidWdyZWcoKS4KClNpZ25lZC1vZmYtYnk6 IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJl dWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNv bT4KQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDQzogSnVlcmdl biBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYt b3AuYyAgICAgICAgIHwgIDkgKy0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAgICAg ICAgICAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB4ZW4vYXJj aC94ODYveDg2X2VtdWxhdGUuYyAgICAgICAgICAgICB8IDI0ICsrKysrKysrKysrKysrKysrKysr KysrKwogeGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmggfCAgMiArKwogNCBm aWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVs LXByaXYtb3AuYwppbmRleCA2MTcwMmQ5Li4xNWY0MmIzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvcHYvZW11bC1wcml2LW9wLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5j CkBAIC03OTQsMTMgKzc5NCw2IEBAIHN0YXRpYyBpbnQgd3JpdGVfY3IodW5zaWduZWQgaW50IHJl ZywgdW5zaWduZWQgbG9uZyB2YWwsCiAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwog fQogCi1zdGF0aWMgaW50IHdyaXRlX2RyKHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcg dmFsLAotICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkK LXsKLSAgICByZXR1cm4gZG9fc2V0X2RlYnVncmVnKHJlZywgdmFsKSA9PSAwCi0gICAgICAgICAg ID8gWDg2RU1VTF9PS0FZIDogWDg2RU1VTF9VTkhBTkRMRUFCTEU7Ci19Ci0KIHN0YXRpYyBpbmxp bmUgdWludDY0X3QgZ3Vlc3RfbWlzY19lbmFibGUodWludDY0X3QgdmFsKQogewogICAgIHZhbCAm PSB+KE1TUl9JQTMyX01JU0NfRU5BQkxFX1BFUkZfQVZBSUwgfApAQCAtMTI5Myw3ICsxMjg2LDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4ODZfZW11bGF0ZV9vcHMgcHJpdl9vcF9vcHMgPSB7CiAg ICAgLnJlYWRfY3IgICAgICAgICAgICAgPSByZWFkX2NyLAogICAgIC53cml0ZV9jciAgICAgICAg ICAgID0gd3JpdGVfY3IsCiAgICAgLnJlYWRfZHIgICAgICAgICAgICAgPSB4ODZlbXVsX3JlYWRf ZHIsCi0gICAgLndyaXRlX2RyICAgICAgICAgICAgPSB3cml0ZV9kciwKKyAgICAud3JpdGVfZHIg ICAgICAgICAgICA9IHg4NmVtdWxfd3JpdGVfZHIsCiAgICAgLndyaXRlX3hjciAgICAgICAgICAg PSB4ODZlbXVsX3dyaXRlX3hjciwKICAgICAucmVhZF9tc3IgICAgICAgICAgICA9IHJlYWRfbXNy LAogICAgIC53cml0ZV9tc3IgICAgICAgICAgID0gd3JpdGVfbXNyLApkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwppbmRleCA2M2M2NTY5Li4w MDczYzhmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdHJhcHMuYworKysgYi94ZW4vYXJjaC94 ODYvdHJhcHMuYwpAQCAtMTk5OCw2ICsxOTk4LDEyIEBAIHZvaWQgYWN0aXZhdGVfZGVidWdyZWdz KGNvbnN0IHN0cnVjdCB2Y3B1ICpjdXJyKQogICAgIH0KIH0KIAorLyoKKyAqIFVzZWQgYnkgaHlw ZXJjYWxscyBhbmQgdGhlIGVtdWxhdG9yLgorICogIC1FTk9ERVYgPT4gI1VECisgKiAgLUVJTlZB TCA9PiAjR1AgSW52YWxpZCBiaXQKKyAqICAtRVBFUk0gID0+ICNHUCBWYWxpZCBiaXQsIGJ1dCBu b3QgcGVybWl0dGVkIHRvIHVzZQorICovCiBsb25nIHNldF9kZWJ1Z3JlZyhzdHJ1Y3QgdmNwdSAq diwgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgbG9uZyB2YWx1ZSkKIHsKICAgICBpbnQgaTsK QEAgLTIwMjksNyArMjAzNSwxNyBAQCBsb25nIHNldF9kZWJ1Z3JlZyhzdHJ1Y3QgdmNwdSAqdiwg dW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgbG9uZyB2YWx1ZSkKICAgICAgICAgaWYgKCB2ID09 IGN1cnIgKQogICAgICAgICAgICAgd3JpdGVfZGVidWdyZWcoMywgdmFsdWUpOwogICAgICAgICBi cmVhazsKKworICAgIGNhc2UgNDoKKyAgICAgICAgaWYgKCB2LT5hcmNoLnB2X3ZjcHUuY3RybHJl Z1s0XSAmIFg4Nl9DUjRfREUgKQorICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CisKKyAgICAg ICAgLyogRmFsbHRocm91Z2ggKi8KICAgICBjYXNlIDY6CisgICAgICAgIC8qIFRoZSB1cHBlciAz MiBiaXRzIGFyZSBzdHJpY3RseSByZXNlcnZlZC4gKi8KKyAgICAgICAgaWYgKCB2YWx1ZSAhPSAo dWludDMyX3QpdmFsdWUgKQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKICAgICAgICAg LyoKICAgICAgICAgICogRFI2OiBCaXRzIDQtMTEsMTYtMzEgcmVzZXJ2ZWQgKHNldCB0byAxKS4K ICAgICAgICAgICogICAgICBCaXQgMTIgcmVzZXJ2ZWQgKHNldCB0byAwKS4KQEAgLTIwMzksNyAr MjA1NSwxNyBAQCBsb25nIHNldF9kZWJ1Z3JlZyhzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50 IHJlZywgdW5zaWduZWQgbG9uZyB2YWx1ZSkKICAgICAgICAgaWYgKCB2ID09IGN1cnIgKQogICAg ICAgICAgICAgd3JpdGVfZGVidWdyZWcoNiwgdmFsdWUpOwogICAgICAgICBicmVhazsKKworICAg IGNhc2UgNToKKyAgICAgICAgaWYgKCB2LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1s0XSAmIFg4Nl9D UjRfREUgKQorICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CisKKyAgICAgICAgLyogRmFsbHRo cm91Z2ggKi8KICAgICBjYXNlIDc6CisgICAgICAgIC8qIFRoZSB1cHBlciAzMiBiaXRzIGFyZSBz dHJpY3RseSByZXNlcnZlZC4gKi8KKyAgICAgICAgaWYgKCB2YWx1ZSAhPSAodWludDMyX3QpdmFs dWUgKQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKICAgICAgICAgLyoKICAgICAgICAg ICogRFI3OiBCaXQgMTAgcmVzZXJ2ZWQgKHNldCB0byAxKS4KICAgICAgICAgICogICAgICBCaXRz IDExLTEyLDE0LTE1IHJlc2VydmVkIChzZXQgdG8gMCkuCkBAIC0yMDUyLDYgKzIwNzgsMTAgQEAg bG9uZyBzZXRfZGVidWdyZWcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2ln bmVkIGxvbmcgdmFsdWUpCiAgICAgICAgICAqLwogICAgICAgICBpZiAoIHZhbHVlICYgRFJfR0VO RVJBTF9ERVRFQ1QgKQogICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsKKworICAgICAgICAvKiBa ZXJvIHRoZSBJTyBzaGFkb3cgYmVmb3JlIHJlY2FsY3VsYXRpbmcgdGhlIHJlYWwgJWRyNyAqLwor ICAgICAgICB2LT5hcmNoLmRlYnVncmVnWzVdID0gMDsKKwogICAgICAgICAvKiBEUjcue0csTH1F ID0gMCA9PiBkZWJ1Z2dpbmcgZGlzYWJsZWQgZm9yIHRoaXMgZG9tYWluLiAqLwogICAgICAgICBp ZiAoIHZhbHVlICYgRFI3X0FDVElWRV9NQVNLICkKICAgICAgICAgewpAQCAtMjA4NCw3ICsyMTE0 LDcgQEAgbG9uZyBzZXRfZGVidWdyZWcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcs IHVuc2lnbmVkIGxvbmcgdmFsdWUpCiAgICAgICAgICAgICB3cml0ZV9kZWJ1Z3JlZyg3LCB2YWx1 ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiAtRUlOVkFM OworICAgICAgICByZXR1cm4gLUVOT0RFVjsKICAgICB9CiAKICAgICB2LT5hcmNoLmRlYnVncmVn W3JlZ10gPSB2YWx1ZTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS5jIGIv eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlLmMKaW5kZXggZDI2MGJkYy4uMzBmODlhZCAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9l bXVsYXRlLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+IC8q IGN1cnJlbnRfY3B1X2luZm8gKi8KICNpbmNsdWRlIDxhc20veHN0YXRlLmg+CiAjaW5jbHVkZSA8 YXNtL2FtZC5oPiAvKiBjcHVfaGFzX2FtZF9lcnJhdHVtKCkgKi8KKyNpbmNsdWRlIDxhc20vZGVi dWdyZWcuaD4KIAogLyogQXZvaWQgbmFtZXNwYWNlIHBvbGx1dGlvbi4gKi8KICN1bmRlZiBjbXB4 Y2hnCkBAIC0xMjcsNiArMTI4LDI5IEBAIGludCB4ODZlbXVsX3JlYWRfZHIodW5zaWduZWQgaW50 IHJlZywgdW5zaWduZWQgbG9uZyAqdmFsLAogICAgIHJldHVybiBYODZFTVVMX09LQVk7CiB9CiAK K2ludCB4ODZlbXVsX3dyaXRlX2RyKHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcgdmFs LAorICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCit7 CisgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OworCisgICAgLyogSFZNIHN1cHBvcnQg cmVxdWlyZXMgYSBiaXQgbW9yZSBwbHVtYmluZyBiZWZvcmUgaXQgd2lsbCB3b3JrLiAqLworICAg IEFTU0VSVChpc19wdl92Y3B1KGN1cnIpKTsKKworICAgIHN3aXRjaCAoIHNldF9kZWJ1Z3JlZyhj dXJyLCByZWcsIHZhbCkgKQorICAgIHsKKyAgICBjYXNlIDA6CisgICAgICAgIHJldHVybiBYODZF TVVMX09LQVk7CisKKyAgICBjYXNlIC1FTk9ERVY6CisgICAgICAgIHg4Nl9lbXVsX2h3X2V4Y2Vw dGlvbihUUkFQX2ludmFsaWRfb3AsIFg4Nl9FVkVOVF9OT19FQywgY3R4dCk7CisgICAgICAgIHJl dHVybiBYODZFTVVMX0VYQ0VQVElPTjsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHg4Nl9lbXVs X2h3X2V4Y2VwdGlvbihUUkFQX2dwX2ZhdWx0LCAwLCBjdHh0KTsKKyAgICAgICAgcmV0dXJuIFg4 NkVNVUxfRVhDRVBUSU9OOworICAgIH0KK30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAq IG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0 ZS5oIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKaW5kZXggMmFlMDUx OC4uYzIyZTc3NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVs YXRlLmgKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKQEAgLTcy NCw2ICs3MjQsOCBAQCBpbnQgeDg2ZW11bF93cml0ZV94Y3IodW5zaWduZWQgaW50IHJlZywgdWlu dDY0X3QgdmFsLAogCiBpbnQgeDg2ZW11bF9yZWFkX2RyKHVuc2lnbmVkIGludCByZWcsIHVuc2ln bmVkIGxvbmcgKnZhbCwKICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0 eHQgKmN0eHQpOworaW50IHg4NmVtdWxfd3JpdGVfZHIodW5zaWduZWQgaW50IHJlZywgdW5zaWdu ZWQgbG9uZyB2YWwsCisgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4 dCAqY3R4dCk7CiAKICNlbmRpZgogCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=