From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901 Date: Wed, 3 Apr 2019 19:08:19 +0100 Message-ID: <1554314899-16357-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: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Wei Liu , Andrew Cooper , Paul Durrant , Jan Beulich , Brian Woods , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org ImFtZC1pb21tdTogdXNlIGEgYml0ZmllbGQgZm9yIERURSIgcmVuYW1lZCBpb21tdV9kdGVfc2V0 X2d1ZXN0X2NyMygpJ3MgZ2NyMwpwYXJhbWV0ZXIgdG8gZ2NyM19tZm4gYnV0IGVuZGVkIHVwIHdp dGggYW4gb2ZmLWJ5LVBBR0VfU0laRSBlcnJvciB3aGVuCmV4dHJhY3RpbmcgYml0cyBmcm9tIHRo ZSBhZGRyZXNzLgoKRmlyc3Qgb2YgYWxsLCBnZXRfZ3Vlc3RfY3IzX2Zyb21fZHRlKCkgYW5kIGlv bW11X2R0ZV9zZXRfZ3Vlc3RfY3IzKCkKYXJlIChhbG1vc3QpIGdldHRlcnMgYW5kIHNldHRlcnMg Zm9yIHRoZSBzYW1lIGZpZWxkLCBzbyBzaG91bGQgbGl2ZSB0b2dldGhlci4KClJlbmFtZSB0aGVt IHRvIGR0ZV97Z2V0LHNldH1fZ2NyM190YWJsZSgpIHRvIHNwZWNpZmljYWxseSBhdm9pZCAnZ3Vl c3RfY3IzJyBpbgp0aGUgbmFtZS4gIFRoaXMgZmllbGQgYWN0dWFsbHkgcG9pbnRzIHRvIGEgdGFi bGUgaW4gbWVtb3J5IGNvbnRhaW5pbmcgYW4gYXJyYXkKb2YgZ3Vlc3QgQ1IzIHZhbHVlcy4gIEFz IHRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZCBmb3IgZGlmZmVyZW50IGxvZ2ljYWwKaW5kaXJlY3Rp b25zLCB0aGV5IHNob3VsZG4ndCB1c2UgZ2ZuL21mbiB0ZXJtaW5vbG9neSBmb3IgdGhlaXIgcGFy YW1ldGVycy4KU3dpdGNoIHRoZW0gdG8gdXNlIHN0cmFpZ2h0IHVpbnQ2NF90IGZ1bGwgYWRkcmVz c2VzLgoKRmluYWxseSwgY29ycmVjdCB0aGUgZHRlX3NldF9nY3IzX3RhYmxlKCkgdG8gdXNlIHRo ZSBwcm9wZXIgc2hpZnQuICBFeHByZXNzCnRoZSBzaGlmdHMgdmlzdWFsbHkgdXNpbmcgTUFTS19F WFRSKCkgYW5kIGxpdGVyYWwgbWFza3MsIHdoaWNoIElNTyBpcyB0aGUKY2xlYXJlc3Qgd2F5IHRv IGV4cHJlc3MgdGhlIGxvZ2ljLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5j b20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIgUGF1IE1vbm7D qSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNDOiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1k LmNvbT4KQ0M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+CgpUaGlzIGNv ZGUgaXMgdW5yZWFjaGFibGUsIHNvIGNvbXBsZXRlbHkgdW50ZXN0YWJsZSwgYnV0IEkgdGhpbmsg dGhlIGVuZCByZXN1bHQKaXMgYmV0dGVyIHRoYW4gaXQgd2FzIHByZXZpb3VzbHkuCi0tLQogeGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2d1ZXN0LmMgICAgIHwgMzIgKysrKysrKysr KysrKysrKysrKysrKystLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFw LmMgICAgICAgfCAyMSAtLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZt L3N2bS9hbWQtaW9tbXUtcHJvdG8uaCB8ICAyIC0tCiAzIGZpbGVzIGNoYW5nZWQsIDI4IGluc2Vy dGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9pb21tdV9ndWVzdC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lv bW11X2d1ZXN0LmMKaW5kZXggMzI4ZTc1MC4uNDY5MWU4ZiAxMDA2NDQKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2d1ZXN0LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X2d1ZXN0LmMKQEAgLTc2LDEwICs3NiwzNCBAQCBzdGF0aWMgdm9pZCBn dWVzdF9pb21tdV9kaXNhYmxlKHN0cnVjdCBndWVzdF9pb21tdSAqaW9tbXUpCiAgICAgaW9tbXUt PmVuYWJsZWQgPSAwOwogfQogCi1zdGF0aWMgdWludDY0X3QgZ2V0X2d1ZXN0X2NyM19mcm9tX2R0 ZShzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRlKQorLyoKKyAqIFRoZSBHdWVzdCBDUjMgVGFibGUg aXMgYSB0YWJsZSB3cml0dGVuIGJ5IHRoZSBndWVzdCBrZXJuZWwsIHBvaW50aW5nIGF0CisgKiBn Q1IzIHZhbHVlcyBmb3IgUEFTSUQgdHJhbnNhY3Rpb25zIHRvIHVzZS4gIFRoZSBEZXZpY2UgVGFi bGUgRW50cnkgcG9pbnRzCisgKiBhdCBhIHN5c3RlbSBwaHlzaWNhbCBhZGRyZXNzLgorICoKKyAq IEhvd2V2ZXIsIHRoZXNlIGhlbHBlcnMgZGVsaWJlcmF0ZWx5IHVzZSB1bnR5cGVkIHBhcmFtZXRl cnMgd2l0aG91dAorICogcmVmZXJlbmNlIHRvIGdmbi9tZm4gYmVjYXVzZSB0aGV5IGFyZSB1c2Vk IGJvdGggZm9yIHByb2dyYW1taW5nIHRoZSByZWFsCisgKiBJT01NVSwgYW5kIGludGVycHJldGlu ZyBhIGd1ZXN0cyBwcm9ncmFtbWluZyBvZiBpdHMgdklPTU1VLgorICovCitzdGF0aWMgdWludDY0 X3QgZHRlX2dldF9nY3IzX3RhYmxlKGNvbnN0IHN0cnVjdCBhbWRfaW9tbXVfZHRlICpkdGUpCiB7 CiAgICAgcmV0dXJuICgoZHRlLT5nY3IzX3RycF81MV8zMSA8PCAzMSkgfCAoZHRlLT5nY3IzX3Ry cF8zMF8xNSA8PCAxNSkgfAotICAgICAgICAgICAgKGR0ZS0+Z2NyM190cnBfMTRfMTIgPDwgMTIp KSA+PiBQQUdFX1NISUZUOworICAgICAgICAgICAgKGR0ZS0+Z2NyM190cnBfMTRfMTIgPDwgMTIp KTsKK30KKworc3RhdGljIHZvaWQgZHRlX3NldF9nY3IzX3RhYmxlKHN0cnVjdCBhbWRfaW9tbXVf ZHRlICpkdGUsIHVpbnQxNl90IGRvbV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50NjRfdCBhZGRyLCB1aW50OF90IGd2LCB1aW50OF90IGdseCkKK3sKKyAgICAvKiBJIGJp dCBtdXN0IGJlIHNldCB3aGVuIGdjcjMgaXMgZW5hYmxlZCAqLworICAgIGR0ZS0+aSA9IDE7CisK KyAgICBkdGUtPmdjcjNfdHJwXzE0XzEyID0gTUFTS19FWFRSKGFkZHIsIDB4MDAwMDAwMDAwMDAw NzAwMHVsbCk7CisgICAgZHRlLT5nY3IzX3RycF8zMF8xNSA9IE1BU0tfRVhUUihhZGRyLCAweDAw MDAwMDAwN2ZmZjgwMDB1bGwpOworICAgIGR0ZS0+Z2NyM190cnBfNTFfMzEgPSBNQVNLX0VYVFIo YWRkciwgMHgwMDBmZmZmZjgwMDAwMDAwdWxsKTsKKworICAgIGR0ZS0+ZG9tYWluX2lkID0gZG9t X2lkOworICAgIGR0ZS0+Z2x4ID0gZ2x4OworICAgIGR0ZS0+Z3YgPSBndjsKIH0KIAogc3RhdGlj IHVuc2lnbmVkIGludCBob3N0X2RvbWlkKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGdfZG9t aWQpCkBAIC0zOTksNyArNDIzLDcgQEAgc3RhdGljIGludCBkb19pbnZhbGlkYXRlX2R0ZShzdHJ1 Y3QgZG9tYWluICpkLCBjbWRfZW50cnlfdCAqY21kKQogICAgIGdkdGUgPSAmZHRlX2Jhc2VbZ2Jk ZiAlIChQQUdFX1NJWkUgLyBzaXplb2Yoc3RydWN0IGFtZF9pb21tdV9kdGUpKV07CiAKICAgICBn ZG9tX2lkID0gZ2R0ZS0+ZG9tYWluX2lkOwotICAgIGdjcjNfZ2ZuID0gZ2V0X2d1ZXN0X2NyM19m cm9tX2R0ZShnZHRlKTsKKyAgICBnY3IzX2dmbiA9IGR0ZV9nZXRfZ2NyM190YWJsZShnZHRlKSA+ PiBQQUdFX1NISUZUOwogICAgIGdseCA9IGdkdGUtPmdseDsKICAgICBndiA9IGdkdGUtPmd2Owog CkBAIC00MjksNyArNDUzLDcgQEAgc3RhdGljIGludCBkb19pbnZhbGlkYXRlX2R0ZShzdHJ1Y3Qg ZG9tYWluICpkLCBjbWRfZW50cnlfdCAqY21kKQogICAgIG1kdGUgPSAmZHRlX2Jhc2VbcmVxX2lk XTsKIAogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwotICAgIGlv bW11X2R0ZV9zZXRfZ3Vlc3RfY3IzKG1kdGUsIGhkb21faWQsIGdjcjNfbWZuLCBndiwgZ2x4KTsK KyAgICBkdGVfc2V0X2djcjNfdGFibGUobWR0ZSwgaGRvbV9pZCwgZ2NyM19tZm4gPDwgUEFHRV9T SElGVCwgZ3YsIGdseCk7CiAKICAgICBhbWRfaW9tbXVfZmx1c2hfZGV2aWNlKGlvbW11LCByZXFf aWQpOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CmRp ZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKaW5kZXggY2JmMDBlOS4uMzJhOGZk YyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCisr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYwpAQCAtMTM4LDI3ICsx MzgsNiBAQCB2b2lkIF9faW5pdCBpb21tdV9kdGVfYWRkX2RldmljZV9lbnRyeShzdHJ1Y3QgYW1k X2lvbW11X2R0ZSAqZHRlLAogICAgIGR0ZS0+ZXggPSBpdnJzX2Rldi0+ZHRlX2FsbG93X2V4Y2x1 c2lvbjsKIH0KIAotdm9pZCBpb21tdV9kdGVfc2V0X2d1ZXN0X2NyMyhzdHJ1Y3QgYW1kX2lvbW11 X2R0ZSAqZHRlLCB1aW50MTZfdCBkb21faWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQ2NF90IGdjcjNfbWZuLCB1aW50OF90IGd2LCB1aW50OF90IGdseCkKLXsKLSNkZWZpbmUg R0NSM19NQVNLKGhpLCBsbykgKCgoMXVsIDw8ICgoaGkpICsgMSkpIC0gMSkgJiB+KCgxdWwgPDwg KGxvKSkgLSAxKSkKLSNkZWZpbmUgR0NSM19TSElGVChsbykgKChsbykgLSBQQUdFX1NISUZUKQot Ci0gICAgLyogSSBiaXQgbXVzdCBiZSBzZXQgd2hlbiBnY3IzIGlzIGVuYWJsZWQgKi8KLSAgICBk dGUtPmkgPSAxOwotCi0gICAgZHRlLT5nY3IzX3RycF8xNF8xMiA9IChnY3IzX21mbiAmIEdDUjNf TUFTSygxNCwgMTIpKSA+PiBHQ1IzX1NISUZUKDEyKTsKLSAgICBkdGUtPmdjcjNfdHJwXzMwXzE1 ID0gKGdjcjNfbWZuICYgR0NSM19NQVNLKDMwLCAxNSkpID4+IEdDUjNfU0hJRlQoMTUpOwotICAg IGR0ZS0+Z2NyM190cnBfNTFfMzEgPSAoZ2NyM19tZm4gJiBHQ1IzX01BU0soNTEsIDMxKSkgPj4g R0NSM19TSElGVCgzMSk7Ci0KLSAgICBkdGUtPmRvbWFpbl9pZCA9IGRvbV9pZDsKLSAgICBkdGUt PmdseCA9IGdseDsKLSAgICBkdGUtPmd2ID0gZ3Y7Ci0KLSN1bmRlZiBHQ1IzX1NISUZUCi0jdW5k ZWYgR0NSM19NQVNLCi19Ci0KIC8qIFdhbGsgaW8gcGFnZSB0YWJsZXMgYW5kIGJ1aWxkIGxldmVs IHBhZ2UgdGFibGVzIGlmIG5lY2Vzc2FyeQogICoge1JlLCB1bn1tYXBwaW5nIHN1cGVyIHBhZ2Ug ZnJhbWVzIGNhdXNlcyByZS1hbGxvY2F0aW9uIG9mIGlvCiAgKiBwYWdlIHRhYmxlcy4KZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaCBiL3hl bi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaAppbmRleCBlMGQ1ZDIz Li5jNjE3OWRjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlv bW11LXByb3RvLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1w cm90by5oCkBAIC03OSw4ICs3OSw2IEBAIHZvaWQgYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFi bGUoc3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwKIAkJCQkgICB1aW50OF90IHBhZ2luZ19tb2Rl LCB1aW50OF90IHZhbGlkKTsKIHZvaWQgaW9tbXVfZHRlX2FkZF9kZXZpY2VfZW50cnkoc3RydWN0 IGFtZF9pb21tdV9kdGUgKmR0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGl2cnNfbWFwcGluZ3MgKml2cnNfZGV2KTsKLXZvaWQgaW9tbXVfZHRlX3NldF9ndWVzdF9j cjMoc3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwgdWludDE2X3QgZG9tX2lkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBnY3IzX21mbiwgdWludDhfdCBndiwgdWludDhf dCBnbHgpOwogCiAvKiBzZW5kIGNtZCB0byBpb21tdSAqLwogdm9pZCBhbWRfaW9tbXVfZmx1c2hf YWxsX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQpOwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs