From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [PATCH V2 22/25] x86/vmsi: Hook delivering remapping format msi to guest Date: Wed, 9 Aug 2017 16:34:23 -0400 Message-ID: <1502310866-10450-23-git-send-email-tianyu.lan@intel.com> References: <1502310866-10450-1-git-send-email-tianyu.lan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502310866-10450-1-git-send-email-tianyu.lan@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Lan Tianyu , kevin.tian@intel.com, andrew.cooper3@citrix.com, julien.grall@arm.com, jbeulich@suse.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KCkluIHR3byBzaXR1YXRpb25zLCBo eXBlcnZpc29yIGRlbGl2ZXJzIGEgbXNpIHRvIGEgaHZtIGd1ZXN0LiBPbmUgaXMKd2hlbiBxZW11 IHNlbmRzIGEgcmVxdWVzdCB0byBoeXBlcnZpc29yIHRocm91Z2ggWEVOX0RNT1BfaW5qZWN0X21z aS4KVGhlIG90aGVyIGlzIHdoZW4gYSBwaHlzaWNhbCBpbnRlcnJ1cHQgYXJyaXZlcyBhbmQgaXQg aGFzIGJlZW4gYm91bmQKdG8gYSBndWVzdCBtc2kuCgpGb3IgdGhlIGZvcm1lciwgdGhlIG1zaSBp cyByb3V0ZWQgdG8gY29tbW9uIHZJT01NVSBsYXllciBpZiBpdCBpcyBpbgpyZW1hcHBpbmcgZm9y bWF0LiBGb3IgdGhlIGxhdHRlciwgaWYgdGhlIHB0IGlycSBpcyBib3VuZCB0byBhIGd1ZXN0CnJl bWFwcGluZyBtc2ksIGEgbmV3IHJlbWFwcGluZyBtc2kgaXMgY29uc3RydWN0ZWQgYmFzZWQgb24g dGhlIGJpbmRpbmcKaW5mb3JtYXRpb24gYW5kIHJvdXRlZCB0byBjb21tb24gdklPTU1VIGxheWVy LgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KU2lnbmVkLW9m Zi1ieTogTGFuIFRpYW55dSA8dGlhbnl1LmxhbkBpbnRlbC5jb20+Ci0tLQogeGVuL2FyY2gveDg2 L2h2bS9pcnEuYyAgICAgICB8IDExICsrKysrKysrKysKIHhlbi9hcmNoL3g4Ni9odm0vdm1zaS5j ICAgICAgfCAxNCArKysrKysrKysrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMgfCA1 MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogeGVuL2luY2x1 ZGUvYXNtLXg4Ni9tc2kuaCAgICB8ICAzICsrKwogNCBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRp b25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2ly cS5jIGIveGVuL2FyY2gveDg2L2h2bS9pcnEuYwppbmRleCBlNDI1ZGY5Li4xMmQ4M2IzIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lycS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaXJx LmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxhc20vaHZtL2RvbWFpbi5oPgogI2luY2x1 ZGUgPGFzbS9odm0vc3VwcG9ydC5oPgogI2luY2x1ZGUgPGFzbS9tc2kuaD4KKyNpbmNsdWRlIDxh c20vdmlvbW11Lmg+CiAKIC8qIE11c3QgYmUgY2FsbGVkIHdpdGggaHZtX2RvbWFpbi0+aXJxX2xv Y2sgaG9sZCAqLwogc3RhdGljIHZvaWQgYXNzZXJ0X2dzaShzdHJ1Y3QgZG9tYWluICpkLCB1bnNp Z25lZCBpb2FwaWNfZ3NpKQpAQCAtMzQwLDYgKzM0MSwxNiBAQCBpbnQgaHZtX2luamVjdF9tc2ko c3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3QgYWRkciwgdWludDMyX3QgZGF0YSkKICAgICAgICAg Pj4gTVNJX0RBVEFfVFJJR0dFUl9TSElGVDsKICAgICB1aW50OF90IHZlY3RvciA9IGRhdGEgJiBN U0lfREFUQV9WRUNUT1JfTUFTSzsKIAorICAgIGlmICggYWRkciAmIE1TSV9BRERSX0lOVEVGT1JN QVRfTUFTSyApCisgICAgeworICAgICAgICBzdHJ1Y3QgaXJxX3JlbWFwcGluZ19yZXF1ZXN0IHJl cXVlc3Q7CisKKyAgICAgICAgaXJxX3JlcXVlc3RfbXNpX2ZpbGwoJnJlcXVlc3QsIDAsIGFkZHIs IGRhdGEpOworICAgICAgICAvKiBDdXJyZW50bHksIG9ubHkgdmlvbW11IDAgaXMgc3VwcG9ydGVk ICovCisgICAgICAgIHZpb21tdV9oYW5kbGVfaXJxX3JlcXVlc3QoZCwgMCwgJnJlcXVlc3QpOwor ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKICAgICBpZiAoICF2ZWN0b3IgKQogICAgIHsKICAg ICAgICAgaW50IHBpcnEgPSAoKGFkZHIgPj4gMzIpICYgMHhmZmZmZmYwMCkgfCBkZXN0OwpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXNpLmMgYi94ZW4vYXJjaC94ODYvaHZtL3Ztc2ku YwppbmRleCBjNGVjMGFkLi43NWNlYjE5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3Zt c2kuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYwpAQCAtMTE0LDkgKzExNCwxOSBAQCB2 b2lkIHZtc2lfZGVsaXZlcl9waXJxKHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0cnVjdCBodm1f cGlycV9kcGNpICpwaXJxX2RwY2kpCiAgICAgICAgICAgICAgICAgInZlY3Rvcj0leCB0cmlnX21v ZGU9JXhcbiIsCiAgICAgICAgICAgICAgICAgZGVzdCwgZGVzdF9tb2RlLCBkZWxpdmVyeV9tb2Rl LCB2ZWN0b3IsIHRyaWdfbW9kZSk7CiAKLSAgICBBU1NFUlQocGlycV9kcGNpLT5mbGFncyAmIEhW TV9JUlFfRFBDSV9HVUVTVF9NU0kpOworICAgIEFTU0VSVChwaXJxX2RwY2ktPmZsYWdzICYgKEhW TV9JUlFfRFBDSV9HVUVTVF9NU0kgfCBIVk1fSVJRX0RQQ0lfR1VFU1RfTVNJX0lSKSk7CisgICAg aWYgKCBwaXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9EUENJX0dVRVNUX01TSV9JUiApCisgICAg eworICAgICAgICBzdHJ1Y3QgaXJxX3JlbWFwcGluZ19yZXF1ZXN0IHJlcXVlc3Q7CiAKLSAgICB2 bXNpX2RlbGl2ZXIoZCwgdmVjdG9yLCBkZXN0LCBkZXN0X21vZGUsIGRlbGl2ZXJ5X21vZGUsIHRy aWdfbW9kZSk7CisgICAgICAgIGlycV9yZXF1ZXN0X21zaV9maWxsKCZyZXF1ZXN0LCBwaXJxX2Rw Y2ktPmdtc2kuaW50cmVtYXAuc291cmNlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwaXJxX2RwY2ktPmdtc2kuaW50cmVtYXAuYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGlycV9kcGNpLT5nbXNpLmludHJlbWFwLmRhdGEpOworICAgICAgICAvKiBDdXJyZW50 bHksIG9ubHkgdmlvbW11IDAgaXMgc3VwcG9ydGVkICovCisgICAgICAgIHZpb21tdV9oYW5kbGVf aXJxX3JlcXVlc3QoZCwgMCwgJnJlcXVlc3QpOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIHZt c2lfZGVsaXZlcihkLCB2ZWN0b3IsIGRlc3QsIGRlc3RfbW9kZSwgZGVsaXZlcnlfbW9kZSwgdHJp Z19tb2RlKTsKIH0KIAogLyogUmV0dXJuIHZhbHVlLCAtMSA6IG11bHRpLWRlc3RzLCBub24tbmVn YXRpdmUgdmFsdWU6IGRlc3RfdmNwdV9pZCAqLwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvaW8uYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMKaW5kZXggMDUxMDg4 Ny4uM2EwODZkOCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW8uYworKysg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pby5jCkBAIC0xMzksNyArMTM5LDkgQEAgc3RhdGlj IHZvaWQgcHRfcGlycV9zb2Z0aXJxX3Jlc2V0KHN0cnVjdCBodm1fcGlycV9kcGNpICpwaXJxX2Rw Y2kpCiAKIGJvb2xfdCBwdF9pcnFfbmVlZF90aW1lcih1aW50MzJfdCBmbGFncykKIHsKLSAgICBy ZXR1cm4gIShmbGFncyAmIChIVk1fSVJRX0RQQ0lfR1VFU1RfTVNJIHwgSFZNX0lSUV9EUENJX1RS QU5TTEFURSkpOworICAgIHJldHVybiAhKGZsYWdzICYgKEhWTV9JUlFfRFBDSV9HVUVTVF9NU0lf SVIgfAorICAgICAgICAgICAgICAgICAgICAgIEhWTV9JUlFfRFBDSV9HVUVTVF9NU0kgfAorICAg ICAgICAgICAgICAgICAgICAgIEhWTV9JUlFfRFBDSV9UUkFOU0xBVEUpKTsKIH0KIAogc3RhdGlj IGludCBwdF9pcnFfZ3Vlc3RfZW9pKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBodm1fcGlycV9k cGNpICpwaXJxX2RwY2ksCkBAIC03MzgsNyArNzQwLDggQEAgaW50IHB0X2lycV9kZXN0cm95X2Jp bmQoCiAgICAgcGlycSA9IHBpcnFfaW5mbyhkLCBtYWNoaW5lX2dzaSk7CiAgICAgcGlycV9kcGNp ID0gcGlycV9kcGNpKHBpcnEpOwogCi0gICAgaWYgKCBodm1faXJxX2RwY2kgJiYgcHRfaXJxX2Jp bmQtPmlycV90eXBlICE9IFBUX0lSUV9UWVBFX01TSSApCisgICAgaWYgKCBodm1faXJxX2RwY2kg JiYgKHB0X2lycV9iaW5kLT5pcnFfdHlwZSAhPSBQVF9JUlFfVFlQRV9NU0kpICYmCisgICAgICAg ICAocHRfaXJxX2JpbmQtPmlycV90eXBlICE9IFBUX0lSUV9UWVBFX01TSV9JUikgKQogICAgIHsK ICAgICAgICAgdW5zaWduZWQgaW50IGJ1cyA9IHB0X2lycV9iaW5kLT51LnBjaS5idXM7CiAgICAg ICAgIHVuc2lnbmVkIGludCBkZXZpY2UgPSBwdF9pcnFfYmluZC0+dS5wY2kuZGV2aWNlOwpAQCAt OTA5LDE3ICs5MTIsMzkgQEAgc3RhdGljIGludCBfaHZtX2RwY2lfbXNpX2VvaShzdHJ1Y3QgZG9t YWluICpkLAogewogICAgIGludCB2ZWN0b3IgPSAobG9uZylhcmc7CiAKLSAgICBpZiAoIChwaXJx X2RwY2ktPmZsYWdzICYgSFZNX0lSUV9EUENJX01BQ0hfTVNJKSAmJgotICAgICAgICAgKHBpcnFf ZHBjaS0+Z21zaS5sZWdhY3kuZ3ZlYyA9PSB2ZWN0b3IpICkKKyAgICBpZiAoIHBpcnFfZHBjaS0+ ZmxhZ3MgJiBIVk1fSVJRX0RQQ0lfTUFDSF9NU0kgKQogICAgIHsKLSAgICAgICAgaW50IGRlc3Qg PSBwaXJxX2RwY2ktPmdtc2kubGVnYWN5LmdmbGFncyAmIFZNU0lfREVTVF9JRF9NQVNLOwotICAg ICAgICBpbnQgZGVzdF9tb2RlID0gISEocGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgJiBW TVNJX0RNX01BU0spOworICAgICAgICBpZiAoIChwaXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9E UENJX0dVRVNUX01TSSkgJiYKKyAgICAgICAgICAgICAocGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5n dmVjID09IHZlY3RvcikgKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgZGVzdCA9IHBpcnFf ZHBjaS0+Z21zaS5sZWdhY3kuZ2ZsYWdzICYgVk1TSV9ERVNUX0lEX01BU0s7CisgICAgICAgICAg ICBpbnQgZGVzdF9tb2RlID0gISEocGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgJiBWTVNJ X0RNX01BU0spOwogCi0gICAgICAgIGlmICggdmxhcGljX21hdGNoX2Rlc3QodmNwdV92bGFwaWMo Y3VycmVudCksIE5VTEwsIDAsIGRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGVzdF9tb2RlKSApCisgICAgICAgICAgICBpZiAoIHZsYXBpY19tYXRjaF9kZXN0KHZjcHVfdmxh cGljKGN1cnJlbnQpLCBOVUxMLCAwLCBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZXN0X21vZGUpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBfX21z aV9waXJxX2VvaShwaXJxX2RwY2kpOworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAg ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKCBwaXJxX2RwY2ktPmZsYWdzICYg SFZNX0lSUV9EUENJX0dVRVNUX01TSV9JUiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIF9fbXNp X3BpcnFfZW9pKHBpcnFfZHBjaSk7Ci0gICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAg IGludCByZXQ7CisgICAgICAgICAgICBzdHJ1Y3QgaXJxX3JlbWFwcGluZ19yZXF1ZXN0IHJlcXVl c3Q7CisgICAgICAgICAgICBzdHJ1Y3QgaXJxX3JlbWFwcGluZ19pbmZvIGlycV9pbmZvOworCisg ICAgICAgICAgICBpcnFfcmVxdWVzdF9tc2lfZmlsbCgmcmVxdWVzdCwgcGlycV9kcGNpLT5nbXNp LmludHJlbWFwLnNvdXJjZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBp cnFfZHBjaS0+Z21zaS5pbnRyZW1hcC5hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGlycV9kcGNpLT5nbXNpLmludHJlbWFwLmRhdGEpOworICAgICAgICAgICAgLyogQ3Vy cmVudGx5LCBvbmx5IHZpb21tdSAwIGlzIHN1cHBvcnRlZCAqLworICAgICAgICAgICAgcmV0ID0g dmlvbW11X2dldF9pcnFfaW5mbyhkLCAwLCAmcmVxdWVzdCwgJmlycV9pbmZvKTsKKyAgICAgICAg ICAgIGlmICggKCFyZXQpICYmIChpcnFfaW5mby52ZWN0b3IgPT0gdmVjdG9yKSAmJgorICAgICAg ICAgICAgICAgICB2bGFwaWNfbWF0Y2hfZGVzdCh2Y3B1X3ZsYXBpYyhjdXJyZW50KSwgTlVMTCwg MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXJxX2luZm8uZGVzdCwgaXJx X2luZm8uZGVzdF9tb2RlKSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgX19tc2lf cGlycV9lb2kocGlycV9kcGNpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAg ICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtOTU0LDE0ICs5NzksMTYgQEAgc3RhdGljIHZv aWQgaHZtX2RpcnFfYXNzaXN0KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBodm1fcGlycV9kcGNp ICpwaXJxX2RwY2kpCiAgICAgICAgIHsKICAgICAgICAgICAgIHNlbmRfZ3Vlc3RfcGlycShkLCBw aXJxKTsKIAotICAgICAgICAgICAgaWYgKCBwaXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9EUENJ X0dVRVNUX01TSSApCisgICAgICAgICAgICBpZiAoIHBpcnFfZHBjaS0+ZmxhZ3MgJgorICAgICAg ICAgICAgICAgICAoSFZNX0lSUV9EUENJX0dVRVNUX01TSSB8IEhWTV9JUlFfRFBDSV9HVUVTVF9N U0lfSVIpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmZC0+ ZXZlbnRfbG9jayk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAg ICAgICB9CiAKLSAgICAgICAgaWYgKCBwaXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9EUENJX0dV RVNUX01TSSApCisgICAgICAgIGlmICggcGlycV9kcGNpLT5mbGFncyAmCisgICAgICAgICAgICAg KEhWTV9JUlFfRFBDSV9HVUVTVF9NU0kgfCBIVk1fSVJRX0RQQ0lfR1VFU1RfTVNJX0lSKSApCiAg ICAgICAgIHsKICAgICAgICAgICAgIHZtc2lfZGVsaXZlcl9waXJxKGQsIHBpcnFfZHBjaSk7CiAg ICAgICAgICAgICBzcGluX3VubG9jaygmZC0+ZXZlbnRfbG9jayk7CmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20teDg2L21zaS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tc2kuaAppbmRleCAz N2QzN2I4Li41ZTk0ZDA3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L21zaS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbXNpLmgKQEAgLTQ5LDYgKzQ5LDkgQEAKICNkZWZpbmUg TVNJX0FERFJfUkVESVJFQ1RJT05fQ1BVICAgICgwIDw8IE1TSV9BRERSX1JFRElSRUNUSU9OX1NI SUZUKQogI2RlZmluZSBNU0lfQUREUl9SRURJUkVDVElPTl9MT1dQUkkgKDEgPDwgTVNJX0FERFJf UkVESVJFQ1RJT05fU0hJRlQpCiAKKyNkZWZpbmUgTVNJX0FERFJfSU5URUZPUk1BVF9TSElGVCAg IDQKKyNkZWZpbmUgTVNJX0FERFJfSU5URUZPUk1BVF9NQVNLICAgICgxIDw8IE1TSV9BRERSX0lO VEVGT1JNQVRfU0hJRlQpCisKICNkZWZpbmUgTVNJX0FERFJfREVTVF9JRF9TSElGVAkJMTIKICNk ZWZpbmUJIE1TSV9BRERSX0RFU1RfSURfTUFTSwkJMHgwMGZmMDAwCiAjZGVmaW5lICBNU0lfQURE Ul9ERVNUX0lEKGRlc3QpCQkoKChkZXN0KSA8PCBNU0lfQUREUl9ERVNUX0lEX1NISUZUKSAmIE1T SV9BRERSX0RFU1RfSURfTUFTSykKLS0gCjEuOC4zLjEKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK