From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH for-next 1/3] x86/smp: Rework cpu_smpboot_alloc() to cope with more than just -ENOMEM Date: Mon, 2 Oct 2017 17:13:47 +0100 Message-ID: <1506960829-18991-2-git-send-email-andrew.cooper3@citrix.com> References: <1506960829-18991-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: <1506960829-18991-1-git-send-email-andrew.cooper3@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 , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org Tm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNl LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBHZW9yZ2UgRHVubGFw IDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L3NtcGJvb3Qu YyB8IDMxICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAx OCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvc21wYm9vdC5jIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwppbmRleCAzY2E3MTZjLi5hM2M0 MmVhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9zbXBib290LmMKQEAgLTY5NiwzMyArNjk2LDM0IEBAIHN0YXRpYyBpbnQgY3B1X3NtcGJvb3Rf YWxsb2ModW5zaWduZWQgaW50IGNwdSkKICAgICBub2RlaWRfdCBub2RlID0gY3B1X3RvX25vZGUo Y3B1KTsKICAgICBzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmdkdDsKICAgICB1bnNpZ25lZCBsb25nIHN0 dWJfcGFnZTsKKyAgICBpbnQgcmMgPSAtRU5PTUVNOwogCiAgICAgaWYgKCBub2RlICE9IE5VTUFf Tk9fTk9ERSApCiAgICAgICAgIG1lbWZsYWdzID0gTUVNRl9ub2RlKG5vZGUpOwogCiAgICAgc3Rh Y2tfYmFzZVtjcHVdID0gYWxsb2NfeGVuaGVhcF9wYWdlcyhTVEFDS19PUkRFUiwgbWVtZmxhZ3Mp OwogICAgIGlmICggc3RhY2tfYmFzZVtjcHVdID09IE5VTEwgKQotICAgICAgICBnb3RvIG9vbTsK KyAgICAgICAgZ290byBvdXQ7CiAgICAgbWVtZ3VhcmRfZ3VhcmRfc3RhY2soc3RhY2tfYmFzZVtj cHVdKTsKIAogICAgIG9yZGVyID0gZ2V0X29yZGVyX2Zyb21fcGFnZXMoTlJfUkVTRVJWRURfR0RU X1BBR0VTKTsKICAgICBwZXJfY3B1KGdkdF90YWJsZSwgY3B1KSA9IGdkdCA9IGFsbG9jX3hlbmhl YXBfcGFnZXMob3JkZXIsIG1lbWZsYWdzKTsKICAgICBpZiAoIGdkdCA9PSBOVUxMICkKLSAgICAg ICAgZ290byBvb207CisgICAgICAgIGdvdG8gb3V0OwogICAgIG1lbWNweShnZHQsIGJvb3RfY3B1 X2dkdF90YWJsZSwgTlJfUkVTRVJWRURfR0RUX1BBR0VTICogUEFHRV9TSVpFKTsKICAgICBCVUlM RF9CVUdfT04oTlJfQ1BVUyA+IDB4MTAwMDApOwogICAgIGdkdFtQRVJfQ1BVX0dEVF9FTlRSWSAt IEZJUlNUX1JFU0VSVkVEX0dEVF9FTlRSWV0uYSA9IGNwdTsKIAogICAgIHBlcl9jcHUoY29tcGF0 X2dkdF90YWJsZSwgY3B1KSA9IGdkdCA9IGFsbG9jX3hlbmhlYXBfcGFnZXMob3JkZXIsIG1lbWZs YWdzKTsKICAgICBpZiAoIGdkdCA9PSBOVUxMICkKLSAgICAgICAgZ290byBvb207CisgICAgICAg IGdvdG8gb3V0OwogICAgIG1lbWNweShnZHQsIGJvb3RfY3B1X2NvbXBhdF9nZHRfdGFibGUsIE5S X1JFU0VSVkVEX0dEVF9QQUdFUyAqIFBBR0VfU0laRSk7CiAgICAgZ2R0W1BFUl9DUFVfR0RUX0VO VFJZIC0gRklSU1RfUkVTRVJWRURfR0RUX0VOVFJZXS5hID0gY3B1OwogCiAgICAgb3JkZXIgPSBn ZXRfb3JkZXJfZnJvbV9ieXRlcyhJRFRfRU5UUklFUyAqIHNpemVvZihpZHRfZW50cnlfdCkpOwog ICAgIGlkdF90YWJsZXNbY3B1XSA9IGFsbG9jX3hlbmhlYXBfcGFnZXMob3JkZXIsIG1lbWZsYWdz KTsKICAgICBpZiAoIGlkdF90YWJsZXNbY3B1XSA9PSBOVUxMICkKLSAgICAgICAgZ290byBvb207 CisgICAgICAgIGdvdG8gb3V0OwogICAgIG1lbWNweShpZHRfdGFibGVzW2NwdV0sIGlkdF90YWJs ZSwgSURUX0VOVFJJRVMgKiBzaXplb2YoaWR0X2VudHJ5X3QpKTsKIAogICAgIGZvciAoIHN0dWJf cGFnZSA9IDAsIGkgPSBjcHUgJiB+KFNUVUJTX1BFUl9QQUdFIC0gMSk7CkBAIC03MzUsMjEgKzcz NiwyNSBAQCBzdGF0aWMgaW50IGNwdV9zbXBib290X2FsbG9jKHVuc2lnbmVkIGludCBjcHUpCiAg ICAgQlVHX09OKGkgPT0gY3B1KTsKICAgICBzdHViX3BhZ2UgPSBhbGxvY19zdHViX3BhZ2UoY3B1 LCAmcGVyX2NwdShzdHVicy5tZm4sIGNwdSkpOwogICAgIGlmICggIXN0dWJfcGFnZSApCi0gICAg ICAgIGdvdG8gb29tOworICAgICAgICBnb3RvIG91dDsKICAgICBwZXJfY3B1KHN0dWJzLmFkZHIs IGNwdSkgPSBzdHViX3BhZ2UgKyBTVFVCX0JVRl9DUFVfT0ZGUyhjcHUpOwogCiAgICAgaWYgKCBz ZWNvbmRhcnlfc29ja2V0X2NwdW1hc2sgPT0gTlVMTCAmJgogICAgICAgICAgKHNlY29uZGFyeV9z b2NrZXRfY3B1bWFzayA9IHh6YWxsb2MoY3B1bWFza190KSkgPT0gTlVMTCApCi0gICAgICAgIGdv dG8gb29tOworICAgICAgICBnb3RvIG91dDsKIAotICAgIGlmICggemFsbG9jX2NwdW1hc2tfdmFy KCZwZXJfY3B1KGNwdV9zaWJsaW5nX21hc2ssIGNwdSkpICYmCi0gICAgICAgICB6YWxsb2NfY3B1 bWFza192YXIoJnBlcl9jcHUoY3B1X2NvcmVfbWFzaywgY3B1KSkgJiYKLSAgICAgICAgIGFsbG9j X2NwdW1hc2tfdmFyKCZwZXJfY3B1KHNjcmF0Y2hfY3B1bWFzaywgY3B1KSkgKQotICAgICAgICBy ZXR1cm4gMDsKKyAgICBpZiAoICEoemFsbG9jX2NwdW1hc2tfdmFyKCZwZXJfY3B1KGNwdV9zaWJs aW5nX21hc2ssIGNwdSkpICYmCisgICAgICAgICAgIHphbGxvY19jcHVtYXNrX3ZhcigmcGVyX2Nw dShjcHVfY29yZV9tYXNrLCBjcHUpKSAmJgorICAgICAgICAgICBhbGxvY19jcHVtYXNrX3Zhcigm cGVyX2NwdShzY3JhdGNoX2NwdW1hc2ssIGNwdSkpKSApCisgICAgICAgIGdvdG8gb3V0OworCisg ICAgcmMgPSAwOworCisgb3V0OgorICAgIGlmICggcmMgKQorICAgICAgICBjcHVfc21wYm9vdF9m cmVlKGNwdSk7CiAKLSBvb206Ci0gICAgY3B1X3NtcGJvb3RfZnJlZShjcHUpOwotICAgIHJldHVy biAtRU5PTUVNOworICAgIHJldHVybiByYzsKIH0KIAogc3RhdGljIGludCBjcHVfc21wYm9vdF9j YWxsYmFjaygKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==