From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/3] xen/vcpu: Rework sanity checks in vcpu_create() Date: Thu, 6 Sep 2018 20:25:34 +0100 Message-ID: <1536261934-1236-4-git-send-email-andrew.cooper3@citrix.com> References: <1536261934-1236-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: <1536261934-1236-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: Stefano Stabellini , Wei Liu , Andrew Cooper , Julien Grall , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org UG9pc29uaW5nIGlkbGVfdmNwdVswXSB3aXRoIHRoZSBzYW5pdHkgZGVidWcgdmFsdWUgaXNuJ3Qg YWN0dWFsbHkgYSBjbGV2ZXIKaWRlYSwgYmVjYXVzZSBpdCBwYXNzZXMgYSBOVUxMIHBvaW50ZXIg Y2hlY2sgYnV0IGlzbid0IGEgdXNhYmxlIHZjcHUuICBJdCBpcwphbHNvIHRoZSByZWFzb24gZm9y IHRoZSAoIWlzX2lkbGVfZG9tYWluKGQpIHx8IHZjcHVfaWQpIHBhcnQgb2YgdGhlIGV4aXN0aW5n CnNhbml0eSBCVUdfT04oKS4KCk5vdyB0aGF0IGQtPm1heF92Y3B1cyBpcyBhcHByb3ByaWF0ZWx5 IHNldCB1cCBiZWZvcmUgdmNwdV9jcmVhdGUoKSBpcyBjYWxsZWQsCndlIGNhbiBwcm9wZXJseSBy YW5nZSBjaGVjayB0aGUgcmVxdWVzdGVkIHZjcHVfaWQuICBEcm9wIHRoZSBCVUdfT04oKSBhbmQK cmVwbGFjZSBpdCB3aXRoIGNvZGUgd2hpY2ggaXMgcnVudGltZSBzYWZlIGJ1dCBub24tZmF0YWwu CgpXaGlsZSB2MCBtdXN0IGJlIHRoZSBmaXJzdCBhbGxvY2F0ZWQgdmNwdSBmb3IgZm9yX2VhY2hf dmNwdSgpIHRvIHdvcmssIGl0Cmlzbid0IGEgcmVxdWlyZW1lbnQgZm9yIHRoZSB0aHJlYWRpbmcg dGhlIHZjcHUgaW50byB0aGUgbGlua2VkIGxpc3QsIHNvIHVwZGF0ZQp0aGUgdGhyZWFkaW5nIGNv ZGUgdG8gYmUgbW9yZSBnZW5lcmljLCBhbmQgYWRkIGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB3 ZQpuZWVkIHRvIHNlYXJjaCBmb3IgcHJldl9pZC4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29w ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVs aWNoQHN1c2UuY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IFJvZ2Vy IFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDQzogU3RlZmFubyBTdGFiZWxsaW5p IDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxA YXJtLmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0vc2V0dXAuYyB8ICAxIC0KIHhlbi9hcmNoL3g4Ni9z ZXR1cC5jIHwgIDEgLQogeGVuL2NvbW1vbi9kb21haW4uYyAgfCAzMiArKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9zZXR1cC5jIGIveGVuL2FyY2gv YXJtL3NldHVwLmMKaW5kZXggMDFhYWFhYi4uZDA2YWM0MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv YXJtL3NldHVwLmMKKysrIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKQEAgLTcwNCw3ICs3MDQsNiBA QCB2b2lkIF9faW5pdCBzdGFydF94ZW4odW5zaWduZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LAog ICAgIHNldF9wcm9jZXNzb3JfaWQoMCk7IC8qIG5lZWRlZCBlYXJseSwgZm9yIHNtcF9wcm9jZXNz b3JfaWQoKSAqLwogCiAgICAgc2V0X2N1cnJlbnQoKHN0cnVjdCB2Y3B1ICopMHhmZmZmZjAwMCk7 IC8qIGRlYnVnIHNhbml0eSAqLwotICAgIGlkbGVfdmNwdVswXSA9IGN1cnJlbnQ7CiAKICAgICBz ZXR1cF92aXJ0dWFsX3JlZ2lvbnMoTlVMTCwgTlVMTCk7CiAgICAgLyogSW5pdGlhbGl6ZSB0cmFw cyBlYXJseSBhbGxvdyB1cyB0byBnZXQgYmFja3RyYWNlIHdoZW4gYW4gZXJyb3Igb2NjdXJyZWQg Ki8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVw LmMKaW5kZXggYTJmMjJhMS4uNWUxZThhZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVw LmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKQEAgLTY5MSw3ICs2OTEsNiBAQCB2b2lkIF9f aW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogCiAgICAgc2V0 X3Byb2Nlc3Nvcl9pZCgwKTsKICAgICBzZXRfY3VycmVudChJTlZBTElEX1ZDUFUpOyAvKiBkZWJ1 ZyBzYW5pdHkuICovCi0gICAgaWRsZV92Y3B1WzBdID0gY3VycmVudDsKICAgICBpbml0X3NoYWRv d19zcGVjX2N0cmxfc3RhdGUoKTsKIAogICAgIHBlcmNwdV9pbml0X2FyZWFzKCk7CmRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYwppbmRleCBhOWRm NTg5Li5kMjNiNTRhIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9j b21tb24vZG9tYWluLmMKQEAgLTEzOCw3ICsxMzgsMTkgQEAgc3RydWN0IHZjcHUgKnZjcHVfY3Jl YXRlKAogewogICAgIHN0cnVjdCB2Y3B1ICp2OwogCi0gICAgQlVHX09OKCghaXNfaWRsZV9kb21h aW4oZCkgfHwgdmNwdV9pZCkgJiYgZC0+dmNwdVt2Y3B1X2lkXSk7CisgICAgLyoKKyAgICAgKiBT YW5pdHkgY2hlY2sgc29tZSBpbnB1dCBleHBlY3RhdGlvbnM6CisgICAgICogIC0gZC0+bWF4X3Zj cHVzIGFuZCBkLT52Y3B1W10gc2hvdWxkIGJlIHNldCB1cAorICAgICAqICAtIHZjcHVfaWQgc2hv dWxkIGJlIGJvdW5kZWQgYnkgZC0+bWF4X3ZjcHVzCisgICAgICogIC0gdjAgbXVzdCBiZSB0aGUg Zmlyc3QtYWxsb2NhdGVkIHZjcHUKKyAgICAgKiAgLSBObyBwcmV2aW91cyB2Y3B1IHdpdGggdGhp cyBpZCBzaG91bGQgYmUgYWxsb2NhdGVkCisgICAgICovCisgICAgaWYgKCAhZC0+bWF4X3ZjcHVz IHx8ICFkLT52Y3B1IHx8IHZjcHVfaWQgPj0gZC0+bWF4X3ZjcHVzIHx8CisgICAgICAgICAodmNw dV9pZCA+IDAgJiYgIWQtPnZjcHVbMF0pIHx8IGQtPnZjcHVbdmNwdV9pZF0gKQorICAgIHsKKyAg ICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0K IAogICAgIGlmICggKHYgPSBhbGxvY192Y3B1X3N0cnVjdCgpKSA9PSBOVUxMICkKICAgICAgICAg cmV0dXJuIE5VTEw7CkBAIC0xNzgsMTUgKzE5MCwyNyBAQCBzdHJ1Y3QgdmNwdSAqdmNwdV9jcmVh dGUoCiAgICAgaWYgKCBhcmNoX3ZjcHVfY3JlYXRlKHYpICE9IDAgKQogICAgICAgICBnb3RvIGZh aWxfc2NoZWQ7CiAKKyAgICAvKiBJbnNlcnQgdGhlIHZjcHUgaW50byB0aGUgZG9tYWluJ3MgdmNw dSBsaXN0LiAqLwogICAgIGQtPnZjcHVbdmNwdV9pZF0gPSB2OwogICAgIGlmICggdmNwdV9pZCAh PSAwICkKICAgICB7CiAgICAgICAgIGludCBwcmV2X2lkID0gdi0+dmNwdV9pZCAtIDE7CisKKyAg ICAgICAgLyoKKyAgICAgICAgICogTG9vayBmb3IgdGhlIHByZXZpb3VzbHkgYWxsb2NhdGVkIHZj cHUsIGFuZCBzcGxpY2UgaW50byB0aGUKKyAgICAgICAgICogbmV4dF9pbl9saXN0IHNpbmdsZSBs aW5rZWQgbGlzdC4KKyAgICAgICAgICoKKyAgICAgICAgICogQWxsIGRvbWFpbnMgb3RoZXIgdGhh biBJRExFIGhhdmUgdGlnaHRseSBwYWNrZWQgdmNwdV9pZCdzLiAgSURMRQorICAgICAgICAgKiB2 Y3B1X2lkJ3MgYXJlIGRlcml2ZWQgZnJvbSBoYXJkd2FyZSBDUFUgaWQncyBhbmQgY2FuIGJlIHNw YXJzZS4KKyAgICAgICAgICovCiAgICAgICAgIHdoaWxlICggKHByZXZfaWQgPj0gMCkgJiYgKGQt PnZjcHVbcHJldl9pZF0gPT0gTlVMTCkgKQogICAgICAgICAgICAgcHJldl9pZC0tOwotICAgICAg ICBCVUdfT04ocHJldl9pZCA8IDApOwotICAgICAgICB2LT5uZXh0X2luX2xpc3QgPSBkLT52Y3B1 W3ByZXZfaWRdLT5uZXh0X2luX2xpc3Q7Ci0gICAgICAgIGQtPnZjcHVbcHJldl9pZF0tPm5leHRf aW5fbGlzdCA9IHY7CisKKyAgICAgICAgaWYgKCBwcmV2X2lkID49IDAgKQorICAgICAgICB7Cisg ICAgICAgICAgICB2LT5uZXh0X2luX2xpc3QgPSBkLT52Y3B1W3ByZXZfaWRdLT5uZXh0X2luX2xp c3Q7CisgICAgICAgICAgICBkLT52Y3B1W3ByZXZfaWRdLT5uZXh0X2luX2xpc3QgPSB2OworICAg ICAgICB9CiAgICAgfQogCiAgICAgLyogTXVzdCBiZSBjYWxsZWQgYWZ0ZXIgbWFraW5nIG5ldyB2 Y3B1IHZpc2libGUgdG8gZm9yX2VhY2hfdmNwdSgpLiAqLwotLSAKMi4xLjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs