From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexandru Stefan ISAILA Subject: Re: [PATCH v2 4/4] x86/hvm: Implement hvmemul_write() using real mappings Date: Mon, 18 Sep 2017 14:16:52 +0000 Message-ID: <1505744213.26526.6.camel@bitdefender.com> References: <1504886736-1823-1-git-send-email-aisaila@bitdefender.com> <1504886736-1823-5-git-send-email-aisaila@bitdefender.com> <59BFE9AD020000780017C4D8@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <59BFE9AD020000780017C4D8@prv-mh.provo.novell.com> Content-Language: en-US Content-ID: <87B961CAFD11704C8189CB1AF9A6EEC2@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "JBeulich@suse.com" , "andrew.cooper3@citrix.com" Cc: "kevin.tian@intel.com" , "sstabellini@kernel.org" , "wei.liu2@citrix.com" , "jun.nakajima@intel.com" , "rcojocaru@bitdefender.com" , "george.dunlap@eu.citrix.com" , "tim@xen.org" , "mdontu@bitdefender.com" , "ian.jackson@eu.citrix.com" , "xen-devel@lists.xen.org" , "paul.durrant@citrix.com" , "suravee.suthikulpanit@amd.com" , "boris.ostrovsky@oracle.com" List-Id: xen-devel@lists.xenproject.org T24gTHUsIDIwMTctMDktMTggYXQgMDc6NDMgLTA2MDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiA+ DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBPbiAwOC4wOS4xNyBhdCAxODowNSwgPGFpc2FpbGFA Yml0ZGVmZW5kZXIuY29tPiB3cm90ZToNCj4gPiBDaGFuZ2VzIHNpbmNlIFYxOg0KPiA+IC0gTW92 ZWQgQVNTRVJUIHRvIHRoZSBiZWdpbmluZyBvZiB0aGUgbG9vcA0KPiA+IC0gQ29ycmVjdGVkIHRo ZSBkZWNyZW1lbnQgb24gbWZuIGludCB0aGUgd2hpbGUgc3RhdGVtZW50DQo+ID4gLSBNb2RpZmll ZCB0aGUgY29tbWVudCB0byBQQUdFX1NJWkUrMQ0KPiBXaGlsZSBzZXZlcmFsIG9mIG15IHYxIGNv bW1lbnRzIHdlcmUgdGFrZW4gY2FyZSBvZiB2ZXJiYWxseSwgc29tZQ0KPiBoYXZlbid0IGJlZW4g YWRkcmVzc2VkIGhlcmUgb3IgZHVyaW5nIHRoZSBkaXNjdXNzaW9uLg0KU29ycnkgYWJvdXQgdGhh dCwgSSBtdXN0IGhhdmUgbG9zdCBzb21lIG9yIHNvbWUgZW1haWxzIGhhdmUgbm90IGJlZW4NCmlu ZGV4ZWQuIEknbGwgYWRkcmVzcyBhbGwgZnJvbSBub3cgb24uDQo+DQo+ID4NCj4gPiBXaGlsZSB0 aGUgbWF4aW11bSBzaXplIG9mIGxpbmVhciBtYXBwaW5nIGlzIGNhcHBlZCBhdCAxIHBhZ2UsIHRo ZQ0KPiA+IGxvZ2ljDQo+ID4gaW4gdGhlIGhlbHBlcnMgaXMgd3JpdHRlbiB0byB3b3JrIHByb3Bl cmx5IGFzIGh2bWVtdWxfY3R4dC0+bWZuW10NCj4gPiBnZXRzDQo+ID4gbG9uZ2VyLA0KPiA+IHNw ZWNpZmljYWxseSB3aXRoIFhTQVZFIGluc3RydWN0aW9uIGVtdWxhdGlvbiBpbiBtaW5kLg0KPiA+ DQo+ID4gVGhpcyBoYXMgb25seSBoYWQgbGlnaHQgdGVzdGluZyBzbyBmYXIuDQo+IEhhcyB0aGlz IGNoYW5nZWQgaW4gdGhlIG1lYW50aW1lPw0KVGhpcyBoYXMgbm90IGNoYW5nZWQgc28gZmFyLg0K Pg0KPiA+DQo+ID4gK3N0YXRpYyB2b2lkICpodm1lbXVsX21hcF9saW5lYXJfYWRkcigNCj4gPiAr ICAgIHVuc2lnbmVkIGxvbmcgbGluZWFyLCB1bnNpZ25lZCBpbnQgYnl0ZXMsIHVpbnQzMl90IHBm ZWMsDQo+ID4gKyAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0KQ0KPiA+ ICt7DQo+ID4gKyAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7DQo+ID4gKyAgICB2b2lk ICplcnIsICptYXBwaW5nOw0KPiA+ICsNCj4gPiArICAgIC8qIEZpcnN0IGFuZCBmaW5hbCBnZm5z IHdoaWNoIG5lZWQgbWFwcGluZy4gKi8NCj4gPiArICAgIHVuc2lnbmVkIGxvbmcgZnJhbWUgPSBs aW5lYXIgPj4gUEFHRV9TSElGVCwgZmlyc3QgPSBmcmFtZTsNCj4gPiArICAgIHVuc2lnbmVkIGxv bmcgZmluYWwgPSAobGluZWFyICsgYnl0ZXMgLSAhIWJ5dGVzKSA+Pg0KPiA+IFBBR0VfU0hJRlQ7 DQo+ID4gKw0KPiA+ICsgICAgLyoNCj4gPiArICAgICAqIG1mbiBwb2ludHMgdG8gdGhlIG5leHQg ZnJlZSBzbG90LiAgQWxsIHVzZWQgc2xvdHMgaGF2ZSBhDQo+ID4gcGFnZSByZWZlcmVuY2UNCj4g PiArICAgICAqIGhlbGQgb24gdGhlbS4NCj4gPiArICAgICAqLw0KPiA+ICsgICAgbWZuX3QgKm1m biA9ICZodm1lbXVsX2N0eHQtPm1mblswXTsNCj4gPiArDQo+ID4gKyAgICAvKg0KPiA+ICsgICAg ICogVGhlIGNhbGxlciBoYXMgbm8gbGVnaXRpbWF0ZSByZWFzb24gZm9yIHRyeWluZyBhIHplcm8t Ynl0ZQ0KPiA+IHdyaXRlLCBidXQNCj4gPiArICAgICAqIGZpbmFsIGlzIGNhbGN1bGF0ZSB0byBm YWlsIHNhZmUgaW4gcmVsZWFzZSBidWlsZHMuDQo+ID4gKyAgICAgKg0KPiA+ICsgICAgICogVGhl IG1heGltdW0gd3JpdGUgc2l6ZSBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgYWRqYWNlbnQNCj4g PiBtZm5zW10gd2hpY2gNCj4gPiArICAgICAqIGNhbiBiZSB2bWFwKCknZCwgYWNjb3V0aW5nIGZv ciBwb3NzaWJsZSBtaXNhbGlnbm1lbnQgd2l0aGluDQo+ID4gdGhlIHJlZ2lvbi4NCj4gPiArICAg ICAqIFRoZSBoaWdoZXIgbGV2ZWwgZW11bGF0aW9uIGNhbGxlcnMgYXJlIHJlc3BvbnNpYmxlIGZv cg0KPiA+IGVuc3VyaW5nIHRoYXQNCj4gPiArICAgICAqIG1mbnNbXSBpcyBsYXJnZSBlbm91Z2gg Zm9yIHRoZSByZXF1ZXN0ZWQgd3JpdGUgc2l6ZS4NCj4gPiArICAgICAqLw0KPiA+ICsgICAgaWYg KCBieXRlcyA9PSAwIHx8DQo+ID4gKyAgICAgICAgIGZpbmFsIC0gZmlyc3QgPiBBUlJBWV9TSVpF KGh2bWVtdWxfY3R4dC0+bWZuKSAtIDEgKQ0KPiA+ICsgICAgew0KPiA+ICsgICAgICAgIEFTU0VS VF9VTlJFQUNIQUJMRSgpOw0KPiA+ICsgICAgICAgIGdvdG8gdW5oYW5kbGVhYmxlOw0KPiA+ICsg ICAgfQ0KPiA+ICsNCj4gPiArICAgIGRvIHsNCj4gPiArICAgICAgICBlbnVtIGh2bV90cmFuc2xh dGlvbl9yZXN1bHQgcmVzOw0KPiA+ICsgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7DQo+ ID4gKyAgICAgICAgcGFnZWZhdWx0X2luZm9fdCBwZmluZm87DQo+ID4gKyAgICAgICAgcDJtX3R5 cGVfdCBwMm10Ow0KPiA+ICsNCj4gPiArICAgICAgICAvKiBFcnJvciBjaGVja2luZy4gIENvbmZp cm0gdGhhdCB0aGUgY3VycmVudCBzbG90IGlzDQo+ID4gY2xlYW4uICovDQo+ID4gKyAgICAgICAg QVNTRVJUKG1mbl94KCptZm4pID09IDApOw0KPiA+ICsNCj4gPiArICAgICAgICByZXMgPSBodm1f dHJhbnNsYXRlX2dldF9wYWdlKGN1cnIsIGZyYW1lIDw8IFBBR0VfU0hJRlQsDQo+ID4gdHJ1ZSwg cGZlYywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwZmluZm8s ICZwYWdlLCBOVUxMLCAmcDJtdCk7DQo+ID4gKw0KPiA+ICsgICAgICAgIHN3aXRjaCAoIHJlcyAp DQo+ID4gKyAgICAgICAgew0KPiA+ICsgICAgICAgIGNhc2UgSFZNVFJBTlNfb2theToNCj4gPiAr ICAgICAgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICAgIGNhc2UgSFZNVFJBTlNfYmFk X2xpbmVhcl90b19nZm46DQo+ID4gKyAgICAgICAgICAgIHg4Nl9lbXVsX3BhZ2VmYXVsdChwZmlu Zm8uZWMsIHBmaW5mby5saW5lYXIsDQo+ID4gJmh2bWVtdWxfY3R4dC0+Y3R4dCk7DQo+ID4gKyAg ICAgICAgICAgIGVyciA9IEVSUl9QVFIofihsb25nKVg4NkVNVUxfRVhDRVBUSU9OKTsNCj4gV2h5 IHRoZSBjYXN0cyB0byBsb25nIGhlcmUgYW5kIGZ1cnRoZXIgZG93bj8NCj4NCj4gPg0KPiA+ICsg ICAgICAgICAgICBnb3RvIG91dDsNCj4gPiArDQo+ID4gKyAgICAgICAgY2FzZSBIVk1UUkFOU19i YWRfZ2ZuX3RvX21mbjoNCj4gPiArICAgICAgICAgICAgZXJyID0gTlVMTDsNCj4gPiArICAgICAg ICAgICAgZ290byBvdXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgIGNhc2UgSFZNVFJBTlNfZ2ZuX3Bh Z2VkX291dDoNCj4gPiArICAgICAgICBjYXNlIEhWTVRSQU5TX2dmbl9zaGFyZWQ6DQo+ID4gKyAg ICAgICAgICAgIGVyciA9IEVSUl9QVFIofihsb25nKVg4NkVNVUxfUkVUUlkpOw0KPiA+ICsgICAg ICAgICAgICBnb3RvIG91dDsNCj4gPiArDQo+ID4gKyAgICAgICAgZGVmYXVsdDoNCj4gPiArICAg ICAgICAgICAgZ290byB1bmhhbmRsZWFibGU7DQo+ID4gKyAgICAgICAgfQ0KPiA+ICsNCj4gPiAr ICAgICAgICAqbWZuKysgPSBfbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKTsNCj4gPiArICAgICAgICBm cmFtZSsrOw0KPiA+ICsNCj4gPiArICAgICAgICBpZiAoIHAybV9pc19kaXNjYXJkX3dyaXRlKHAy bXQpICkNCj4gPiArICAgICAgICB7DQo+ID4gKyAgICAgICAgICAgIGVyciA9IEVSUl9QVFIofihs b25nKVg4NkVNVUxfT0tBWSk7DQo+ID4gKyAgICAgICAgICAgIGdvdG8gb3V0Ow0KPiA+ICsgICAg ICAgIH0NCj4gPiArDQo+ID4gKyAgICB9IHdoaWxlICggZnJhbWUgPCBmaW5hbCApOw0KPiA+ICsN Cj4gPiArICAgIC8qIEVudGlyZSBhY2Nlc3Mgd2l0aGluIGEgc2luZ2xlIGZyYW1lPyAqLw0KPiA+ ICsgICAgaWYgKCBmaXJzdCA9PSBmaW5hbCApDQo+ID4gKyAgICAgICAgbWFwcGluZyA9IG1hcF9k b21haW5fcGFnZShodm1lbXVsX2N0eHQtPm1mblswXSkgKyAobGluZWFyDQo+ID4gJiB+UEFHRV9N QVNLKTsNCj4gPiArICAgIC8qIE11bHRpcGxlIGZyYW1lcz8gTmVlZCB0byB2bWFwKCkuICovDQo+ ID4gKyAgICBlbHNlIGlmICggKG1hcHBpbmcgPSB2bWFwKGh2bWVtdWxfY3R4dC0+bWZuLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm4gLSBodm1lbXVsX2N0eHQtPm1mbikp ID09IE5VTEwgKQ0KPiB2MSBjb21tZW50IHdhcyAiZmluYWwgLSBmaXJzdCArIDEgd291bGQgbGlr ZWx5IHlpZWxkIGJldHRlciBjb2RlLiINCndpbGwgZG8uDQo+DQo+ID4NCj4gPiArICAgICAgICBn b3RvIHVuaGFuZGxlYWJsZTsNCj4gPiArDQo+ID4gKyNpZm5kZWYgTkRFQlVHIC8qIFBvaXNpb24g dW51c2VkIG1mbltdcyB3aXRoIElOVkFMSURfTUZOLiAqLw0KPiA+ICsgICAgd2hpbGUgKCBtZm4g PCBodm1lbXVsX2N0eHQtPm1mbiArIEFSUkFZX1NJWkUoaHZtZW11bF9jdHh0LQ0KPiA+ID5tZm4p ICkNCj4gPiArICAgIHsNCj4gPiArICAgICAgICBBU1NFUlQobWZuX3goKm1mbikgPT0gMCk7DQo+ ID4gKyAgICAgICAgKm1mbisrID0gSU5WQUxJRF9NRk47DQo+ID4gKyAgICB9DQo+ID4gKyNlbmRp Zg0KPiA+ICsNCj4gPiArICAgIHJldHVybiBtYXBwaW5nOw0KPiA+ICsNCj4gPiArIHVuaGFuZGxl YWJsZToNCj4gPiArICAgIGVyciA9IEVSUl9QVFIofihsb25nKVg4NkVNVUxfVU5IQU5ETEVBQkxF KTsNCj4gPiArDQo+ID4gKyBvdXQ6DQo+ID4gKyAgICAvKiBEcm9wIGFsbCBoZWxkIHJlZmVyZW5j ZXMuICovDQo+ID4gKyAgICB3aGlsZSAoIG1mbi0tID4gaHZtZW11bF9jdHh0LT5tZm4gKQ0KPiA+ ICsgICAgICAgIHB1dF9wYWdlKG1mbl90b19wYWdlKG1mbl94KCptZm4pKSk7DQo+ID4gKw0KPiA+ ICsgICAgcmV0dXJuIGVycjsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgaHZtZW11 bF91bm1hcF9saW5lYXJfYWRkcigNCj4gPiArICAgIHZvaWQgKm1hcHBpbmcsIHVuc2lnbmVkIGxv bmcgbGluZWFyLCB1bnNpZ25lZCBpbnQgYnl0ZXMsDQo+IFdoaWxlIHRoaXMgd2FzIGRpc2N1c3Nl ZCBpbiByZXNwb25zZSB0byB2MSwgSSBzdGlsbCB0aGluayAibWFwcGluZyINCj4gc2hvdWxkIGJl IGNvbnN0IHZvaWQgKiwgb3IgYSBwcmVyZXEgcGF0Y2ggKHdoaWNoIEkgd291bGQgb2JqZWN0DQo+ IHRvKSBzaG91bGQgYmUgc3VibWl0dGVkIHRvIGRyb3AgdGhlIGNvbnN0IGZyb20gdnVubWFwKCkg YW5kDQo+IHVubWFwX2RvbWFpbl9wYWdlKCkuDQpJJ2xsIHdhaXQgZm9yIEFuZHJld3Mgb3Bpbmlv biBvbiB0aGlzIGlzc3VlLg0KPg0KPiA+DQo+ID4gQEAgLTEwMDcsMjMgKzExNjAsMTUgQEAgc3Rh dGljIGludCBodm1lbXVsX3dyaXRlKA0KPiA+ICAgICAgICAgICAodmlvLT5tbWlvX2dsYSA9PSAo YWRkciAmIFBBR0VfTUFTSykpICkNCj4gPiAgICAgICAgICByZXR1cm4gaHZtZW11bF9saW5lYXJf bW1pb193cml0ZShhZGRyLCBieXRlcywgcF9kYXRhLA0KPiA+IHBmZWMsIGh2bWVtdWxfY3R4dCwg MSk7DQo+ID4NCj4gPiAtICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfbGluZWFyKGFkZHIsIHBf ZGF0YSwgYnl0ZXMsIHBmZWMsDQo+ID4gJnBmaW5mbyk7DQo+ID4gLQ0KPiA+IC0gICAgc3dpdGNo ICggcmMgKQ0KPiA+IC0gICAgew0KPiA+IC0gICAgY2FzZSBIVk1UUkFOU19va2F5Og0KPiA+IC0g ICAgICAgIGJyZWFrOw0KPiA+IC0gICAgY2FzZSBIVk1UUkFOU19iYWRfbGluZWFyX3RvX2dmbjoN Cj4gPiAtICAgICAgICB4ODZfZW11bF9wYWdlZmF1bHQocGZpbmZvLmVjLCBwZmluZm8ubGluZWFy LA0KPiA+ICZodm1lbXVsX2N0eHQtPmN0eHQpOw0KPiA+IC0gICAgICAgIHJldHVybiBYODZFTVVM X0VYQ0VQVElPTjsNCj4gPiAtICAgIGNhc2UgSFZNVFJBTlNfYmFkX2dmbl90b19tZm46DQo+ID4g KyAgICBtYXBwaW5nID0gaHZtZW11bF9tYXBfbGluZWFyX2FkZHIoYWRkciwgYnl0ZXMsIHBmZWMs DQo+ID4gaHZtZW11bF9jdHh0KTsNCj4gPiArICAgIGlmICggSVNfRVJSKG1hcHBpbmcpICkNCj4g PiArICAgICAgICByZXR1cm4gflBUUl9FUlIobWFwcGluZyk7DQo+ID4gKyAgICBlbHNlIGlmICgg IW1hcHBpbmcgKQ0KPiB2MSBjb21tZW50OiAnUG9pbnRsZXNzICJlbHNlIi4nDQpBZ3JlZWQuDQoN ClJlZ2FyZHMsDQpBbGV4DQoNCl9fX19fX19fX19fX19fX19fX19fX19fXw0KVGhpcyBlbWFpbCB3 YXMgc2Nhbm5lZCBieSBCaXRkZWZlbmRlcg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==