From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH RFC 13/13] x86/mm: split HVM grant table code to hvm/mm.c Date: Mon, 27 Mar 2017 10:10:59 +0100 Message-ID: <20170327091059.8452-14-wei.liu2@citrix.com> References: <20170327091059.8452-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1csQlF-00007B-UC for xen-devel@lists.xenproject.org; Mon, 27 Mar 2017 09:16:26 +0000 In-Reply-To: <20170327091059.8452-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Tim Deegan , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org UEdfZXh0ZXJuYWwgcmVxdWlyZXMgaGFyZHdhcmUgc3VwcG9ydCBzbyB0aGUgY29kZSBndWFyZGVk IGJ5IHRoYXQgaXMgSFZNCm9ubHkuCgpObyBmdW5jdGlvbmFsIGNoYW5nZS4KClNpZ25lZC1vZmYt Ynk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2h2bS9N YWtlZmlsZSB8ICAxICsKIHhlbi9hcmNoL3g4Ni9odm0vbW0uYyAgICAgfCA4NCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L21tLmMg ICAgICAgICB8IDQ4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNt LXg4Ni9tbS5oICB8ICA1ICsrKwogNCBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCA0 OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC94ODYvaHZtL21tLmMK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL01ha2VmaWxlIGIveGVuL2FyY2gveDg2L2h2 bS9NYWtlZmlsZQppbmRleCAwYTNkMGY0ZjdlLi4zZThkMzYyYzhlIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvaHZtL01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vTWFrZWZpbGUKQEAg LTEzLDYgKzEzLDcgQEAgb2JqLXkgKz0gaW50ZXJjZXB0Lm8KIG9iai15ICs9IGlvLm8KIG9iai15 ICs9IGlvcmVxLm8KIG9iai15ICs9IGlycS5vCitvYmoteSArPSBtbS5vCiBvYmoteSArPSBtb25p dG9yLm8KIG9iai15ICs9IG10cnIubwogb2JqLXkgKz0gbmVzdGVkaHZtLm8KZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vbW0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vbW0uYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41NmE0OTIzOGE1Ci0tLSAvZGV2L251bGwKKysr IGIveGVuL2FyY2gveDg2L2h2bS9tbS5jCkBAIC0wLDAgKzEsODQgQEAKKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAqIGFyY2gveDg2L3B2L21tLmMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDIt MjAwNSBLIEEgRnJhc2VyCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQgQ2hyaXN0aWFuIExpbXBhY2gK KyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2luY2x1ZGUgPHhlbi90 eXBlcy5oPgorCisjaW5jbHVkZSA8cHVibGljL2dyYW50X3RhYmxlLmg+CisKKyNpbmNsdWRlIDxh c20vcDJtLmg+CisKK2ludCBjcmVhdGVfZ3JhbnRfcDJtX21hcHBpbmcodWludDY0X3QgYWRkciwg dW5zaWduZWQgbG9uZyBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg Y2FjaGVfZmxhZ3MpCit7CisgICAgcDJtX3R5cGVfdCBwMm10OworICAgIGludCByYzsKKworICAg IGlmICggY2FjaGVfZmxhZ3MgIHx8IChmbGFncyAmIH5HTlRNQVBfcmVhZG9ubHkpICE9IEdOVE1B UF9ob3N0X21hcCApCisgICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9yOworCisgICAg aWYgKCBmbGFncyAmIEdOVE1BUF9yZWFkb25seSApCisgICAgICAgIHAybXQgPSBwMm1fZ3JhbnRf bWFwX3JvOworICAgIGVsc2UKKyAgICAgICAgcDJtdCA9IHAybV9ncmFudF9tYXBfcnc7CisgICAg cmMgPSBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShjdXJyZW50LT5kb21haW4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfZ2ZuKGFkZHIgPj4gUEFHRV9TSElGVCksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZuKGZyYW1lKSwgUEFHRV9PUkRFUl80SywgcDJt dCk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9yOwor ICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIEdOVFNUX29rYXk7Cit9CisKK2ludCByZXBsYWNlX2dy YW50X3AybV9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBuZXdfYWRkciwgdW5zaWduZWQgaW50 IGZsYWdzKQoreworICAgIHVuc2lnbmVkIGxvbmcgZ2ZuID0gKHVuc2lnbmVkIGxvbmcpKGFkZHIg Pj4gUEFHRV9TSElGVCk7CisgICAgcDJtX3R5cGVfdCB0eXBlOworICAgIG1mbl90IG9sZF9tZm47 CisgICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsKKworICAgIGlmICggbmV3 X2FkZHIgIT0gMCB8fCAoZmxhZ3MgJiBHTlRNQVBfY29udGFpbnNfcHRlKSApCisgICAgICAgIHJl dHVybiBHTlRTVF9nZW5lcmFsX2Vycm9yOworCisgICAgb2xkX21mbiA9IGdldF9nZm4oZCwgZ2Zu LCAmdHlwZSk7CisgICAgaWYgKCAhcDJtX2lzX2dyYW50KHR5cGUpIHx8IG1mbl94KG9sZF9tZm4p ICE9IGZyYW1lICkKKyAgICB7CisgICAgICAgIHB1dF9nZm4oZCwgZ2ZuKTsKKyAgICAgICAgTUVN X0xPRygicmVwbGFjZV9ncmFudF9wMm1fbWFwcGluZzogb2xkIG1hcHBpbmcgaW52YWxpZCAodHlw ZSAlZCwgbWZuICVseCwgZnJhbWUgJWx4KSIsCisgICAgICAgICAgICAgICAgdHlwZSwgbWZuX3go b2xkX21mbiksIGZyYW1lKTsKKyAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7Cisg ICAgfQorICAgIGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihnZm4pLCBfbWZuKGZy YW1lKSwgUEFHRV9PUkRFUl80Syk7CisKKyAgICBwdXRfZ2ZuKGQsIGdmbik7CisgICAgcmV0dXJu IEdOVFNUX29rYXk7Cit9CisKKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMK KyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lk dGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDAxMTljYWNjNDMu LmRjM2QxODVjYmUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9tbS5jCkBAIC0yOTY0LDI5ICsyOTY0LDYgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAg cmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGNyZWF0ZV9ncmFudF9wMm1fbWFwcGluZyh1aW50 NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IGNhY2hlX2ZsYWdzKQotewotICAgIHAybV90eXBlX3Qg cDJtdDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNhY2hlX2ZsYWdzICB8fCAoZmxhZ3MgJiB+ R05UTUFQX3JlYWRvbmx5KSAhPSBHTlRNQVBfaG9zdF9tYXAgKQotICAgICAgICByZXR1cm4gR05U U1RfZ2VuZXJhbF9lcnJvcjsKLQotICAgIGlmICggZmxhZ3MgJiBHTlRNQVBfcmVhZG9ubHkgKQot ICAgICAgICBwMm10ID0gcDJtX2dyYW50X21hcF9ybzsKLSAgICBlbHNlCi0gICAgICAgIHAybXQg PSBwMm1fZ3JhbnRfbWFwX3J3OwotICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoY3Vy cmVudC0+ZG9tYWluLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2dmbihhZGRy ID4+IFBBR0VfU0hJRlQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21mbihm cmFtZSksIFBBR0VfT1JERVJfNEssIHAybXQpOwotICAgIGlmICggcmMgKQotICAgICAgICByZXR1 cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBHTlRTVF9v a2F5OwotfQotCiBpbnQgY3JlYXRlX2dyYW50X2hvc3RfbWFwcGluZyh1aW50NjRfdCBhZGRyLCB1 bnNpZ25lZCBsb25nIGZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IGZsYWdzLCB1bnNpZ25lZCBpbnQgY2FjaGVfZmxhZ3MpCiB7CkBAIC0yOTk2LDMxICsy OTczLDYgQEAgaW50IGNyZWF0ZV9ncmFudF9ob3N0X21hcHBpbmcodWludDY0X3QgYWRkciwgdW5z aWduZWQgbG9uZyBmcmFtZSwKICAgICByZXR1cm4gY3JlYXRlX2dyYW50X3B2X21hcHBpbmcoYWRk ciwgZnJhbWUsIGZsYWdzLCBjYWNoZV9mbGFncyk7CiB9CiAKLXN0YXRpYyBpbnQgcmVwbGFjZV9n cmFudF9wMm1fbWFwcGluZygKLSAgICB1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1l LCB1aW50NjRfdCBuZXdfYWRkciwgdW5zaWduZWQgaW50IGZsYWdzKQotewotICAgIHVuc2lnbmVk IGxvbmcgZ2ZuID0gKHVuc2lnbmVkIGxvbmcpKGFkZHIgPj4gUEFHRV9TSElGVCk7Ci0gICAgcDJt X3R5cGVfdCB0eXBlOwotICAgIG1mbl90IG9sZF9tZm47Ci0gICAgc3RydWN0IGRvbWFpbiAqZCA9 IGN1cnJlbnQtPmRvbWFpbjsKLQotICAgIGlmICggbmV3X2FkZHIgIT0gMCB8fCAoZmxhZ3MgJiBH TlRNQVBfY29udGFpbnNfcHRlKSApCi0gICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9y OwotCi0gICAgb2xkX21mbiA9IGdldF9nZm4oZCwgZ2ZuLCAmdHlwZSk7Ci0gICAgaWYgKCAhcDJt X2lzX2dyYW50KHR5cGUpIHx8IG1mbl94KG9sZF9tZm4pICE9IGZyYW1lICkKLSAgICB7Ci0gICAg ICAgIHB1dF9nZm4oZCwgZ2ZuKTsKLSAgICAgICAgTUVNX0xPRygicmVwbGFjZV9ncmFudF9wMm1f bWFwcGluZzogb2xkIG1hcHBpbmcgaW52YWxpZCAodHlwZSAlZCwgbWZuICVseCwgZnJhbWUgJWx4 KSIsCi0gICAgICAgICAgICAgICAgdHlwZSwgbWZuX3gob2xkX21mbiksIGZyYW1lKTsKLSAgICAg ICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7Ci0gICAgfQotICAgIGd1ZXN0X3BoeXNtYXBf cmVtb3ZlX3BhZ2UoZCwgX2dmbihnZm4pLCBfbWZuKGZyYW1lKSwgUEFHRV9PUkRFUl80Syk7Ci0K LSAgICBwdXRfZ2ZuKGQsIGdmbik7Ci0gICAgcmV0dXJuIEdOVFNUX29rYXk7Ci19Ci0KIGludCBy ZXBsYWNlX2dyYW50X2hvc3RfbWFwcGluZyh1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZy YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IG5ld19hZGRyLCB1 bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21t LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKaW5kZXggMTcwOTA4ZjdmMi4uYjM2NmQ4NzBi MSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCisrKyBiL3hlbi9pbmNsdWRl L2FzbS14ODYvbW0uaApAQCAtNjUzLDYgKzY1MywxMSBAQCBpbnQgY3JlYXRlX2dyYW50X3B2X21h cHBpbmcodWludDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFtZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsIHVuc2lnbmVkIGludCBjYWNoZV9mbGFn cyk7CiBpbnQgcmVwbGFjZV9ncmFudF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVk IGxvbmcgZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IG5ld19h ZGRyLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworaW50IGNyZWF0ZV9ncmFudF9wMm1fbWFwcGluZyh1 aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBjYWNoZV9mbGFncyk7CitpbnQgcmVwbGFjZV9ncmFudF9wMm1fbWFwcGlu Zyh1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDY0X3QgbmV3X2FkZHIsIHVuc2lnbmVkIGludCBmbGFncyk7CiAKICNk ZWZpbmUgTUVNX0xPRyhfZiwgX2EuLi4pIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HICwgX2YgIlxu IiAsICMjIF9hKQogCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK