From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH 1/2] xen/x86: Convert to hotplug state machine Date: Mon, 15 Aug 2016 10:46:46 -0400 Message-ID: <1471272407-4292-2-git-send-email-boris.ostrovsky@oracle.com> References: <1471272407-4292-1-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZJ1e-0005hN-Pr for xen-devel@lists.xenproject.org; Mon, 15 Aug 2016 14:38:02 +0000 In-Reply-To: <1471272407-4292-1-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: david.vrabel@citrix.com, jgross@suse.com Cc: xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com, bigeasy@linutronix.de, linux-kernel@vger.kernel.org List-Id: xen-devel@lists.xenproject.org U3dpdGNoIHRvIG5ldyBDUFUgaG90cGx1ZyBpbmZyYXN0cnVjdHVyZS4KClNpZ25lZC1vZmYtYnk6 IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+ClN1Z2dlc3RlZC1i eTogU2ViYXN0aWFuIEFuZHJ6ZWogU2lld2lvciA8YmlnZWFzeUBsaW51dHJvbml4LmRlPgotLS0K IGFyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYyAgIHwgIDExNSArKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS9saW51eC9jcHVob3RwbHVnLmggfCAgICAy ICsKIDIgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jIGIvYXJjaC94ODYveGVuL2VubGln aHRlbi5jCmluZGV4IGM3ZjZiMWYuLjIyODM5NzYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9l bmxpZ2h0ZW4uYworKysgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMKQEAgLTE0MCw3ICsxNDAs OSBAQCBSRVNFUlZFX0JSSyhzaGFyZWRfaW5mb19wYWdlX2JyaywgUEFHRV9TSVpFKTsKIF9fcmVh ZF9tb3N0bHkgaW50IHhlbl9oYXZlX3ZlY3Rvcl9jYWxsYmFjazsKIEVYUE9SVF9TWU1CT0xfR1BM KHhlbl9oYXZlX3ZlY3Rvcl9jYWxsYmFjayk7CiAKLXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxv Y2sgeGVuX2NwdV9ub3RpZmllcjsKK3N0YXRpYyBpbnQgeGVuX2NwdV91cF9wcmVwYXJlKHVuc2ln bmVkIGludCBjcHUpOworc3RhdGljIGludCB4ZW5fY3B1X3VwX29ubGluZSh1bnNpZ25lZCBpbnQg Y3B1KTsKK3N0YXRpYyBpbnQgeGVuX2NwdV91cF9jYW5jZWwodW5zaWduZWQgaW50IGNwdSk7CiAK IC8qCiAgKiBQb2ludCBhdCBzb21lIGVtcHR5IG1lbW9yeSB0byBzdGFydCB3aXRoLiBXZSBtYXAg dGhlIHJlYWwgc2hhcmVkX2luZm8KQEAgLTE1NDEsNiArMTU0MywyNCBAQCBzdGF0aWMgdm9pZCBf X2luaXQgeGVuX2RvbTBfc2V0X2xlZ2FjeV9mZWF0dXJlcyh2b2lkKQogCXg4Nl9wbGF0Zm9ybS5s ZWdhY3kucnRjID0gMTsKIH0KIAorc3RhdGljIGludCB4ZW5fY3B1aHBfc2V0dXAodm9pZCkKK3sK KwlpbnQgcmM7CisKKwlyYyA9IGNwdWhwX3NldHVwX3N0YXRlX25vY2FsbHMoQ1BVSFBfWEVOX1BS RVBBUkUsCisJCQkJICAgICAgICJYRU5fSFZNX0dVRVNUX1BSRVBBUkUiLAorCQkJCSAgICAgICB4 ZW5fY3B1X3VwX3ByZXBhcmUsIHhlbl9jcHVfdXBfY2FuY2VsKTsKKwlpZiAoIXJjKSB7CisJCXJj ID0gY3B1aHBfc2V0dXBfc3RhdGVfbm9jYWxscyhDUFVIUF9BUF9YRU5fT05MSU5FLAorCQkJCQkg ICAgICAgIlhFTl9IVk1fR1VFU1RfUFJFUEFSRSIsCisJCQkJCSAgICAgICB4ZW5fY3B1X3VwX29u bGluZSwgTlVMTCk7CisJCWlmIChyYykKKwkJCWNwdWhwX3JlbW92ZV9zdGF0ZV9ub2NhbGxzKENQ VUhQX1hFTl9QUkVQQVJFKTsKKwl9CisKKwlyZXR1cm4gcmM7Cit9CisKIC8qIEZpcnN0IEMgZnVu Y3Rpb24gdG8gYmUgY2FsbGVkIG9uIFhlbiBib290ICovCiBhc21saW5rYWdlIF9fdmlzaWJsZSB2 b2lkIF9faW5pdCB4ZW5fc3RhcnRfa2VybmVsKHZvaWQpCiB7CkBAIC0xNjI5LDcgKzE2NDksNyBA QCBhc21saW5rYWdlIF9fdmlzaWJsZSB2b2lkIF9faW5pdCB4ZW5fc3RhcnRfa2VybmVsKHZvaWQp CiAJeGVuX2luaXRpYWxfZ2R0ID0gJnBlcl9jcHUoZ2R0X3BhZ2UsIDApOwogCiAJeGVuX3NtcF9p bml0KCk7Ci0JcmVnaXN0ZXJfY3B1X25vdGlmaWVyKCZ4ZW5fY3B1X25vdGlmaWVyKTsKKwlXQVJO X09OKHhlbl9jcHVocF9zZXR1cCgpKTsKIAogI2lmZGVmIENPTkZJR19BQ1BJX05VTUEKIAkvKgpA QCAtMTgyMyw2MyArMTg0Myw1OCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9odm1fcHZfaW5m byh2b2lkKQogCXhlbl9kb21haW5fdHlwZSA9IFhFTl9IVk1fRE9NQUlOOwogfQogCi1zdGF0aWMg aW50IHhlbl9jcHVfbm90aWZ5KHN0cnVjdCBub3RpZmllcl9ibG9jayAqc2VsZiwgdW5zaWduZWQg bG9uZyBhY3Rpb24sCi0JCQkgdm9pZCAqaGNwdSkKK3N0YXRpYyBpbnQgeGVuX2NwdV91cF9wcmVw YXJlKHVuc2lnbmVkIGludCBjcHUpCiB7Ci0JaW50IGNwdSA9IChsb25nKWhjcHU7CiAJaW50IHJj OwogCi0Jc3dpdGNoIChhY3Rpb24pIHsKLQljYXNlIENQVV9VUF9QUkVQQVJFOgotCQlpZiAoeGVu X2h2bV9kb21haW4oKSkgewotCQkJLyoKLQkJCSAqIFRoaXMgY2FuIGhhcHBlbiBpZiBDUFUgd2Fz IG9mZmxpbmVkIGVhcmxpZXIgYW5kCi0JCQkgKiBvZmZsaW5pbmcgdGltZWQgb3V0IGluIGNvbW1v bl9jcHVfZGllKCkuCi0JCQkgKi8KLQkJCWlmIChjcHVfcmVwb3J0X3N0YXRlKGNwdSkgPT0gQ1BV X0RFQURfRlJPWkVOKSB7Ci0JCQkJeGVuX3NtcF9pbnRyX2ZyZWUoY3B1KTsKLQkJCQl4ZW5fdW5p bml0X2xvY2tfY3B1KGNwdSk7Ci0JCQl9Ci0KLQkJCWlmIChjcHVfYWNwaV9pZChjcHUpICE9IFUz Ml9NQVgpCi0JCQkJcGVyX2NwdSh4ZW5fdmNwdV9pZCwgY3B1KSA9IGNwdV9hY3BpX2lkKGNwdSk7 Ci0JCQllbHNlCi0JCQkJcGVyX2NwdSh4ZW5fdmNwdV9pZCwgY3B1KSA9IGNwdTsKLQkJCXhlbl92 Y3B1X3NldHVwKGNwdSk7CisJaWYgKHhlbl9odm1fZG9tYWluKCkpIHsKKwkJLyoKKwkJICogVGhp cyBjYW4gaGFwcGVuIGlmIENQVSB3YXMgb2ZmbGluZWQgZWFybGllciBhbmQKKwkJICogb2ZmbGlu aW5nIHRpbWVkIG91dCBpbiBjb21tb25fY3B1X2RpZSgpLgorCQkgKi8KKwkJaWYgKGNwdV9yZXBv cnRfc3RhdGUoY3B1KSA9PSBDUFVfREVBRF9GUk9aRU4pIHsKKwkJCXhlbl9zbXBfaW50cl9mcmVl KGNwdSk7CisJCQl4ZW5fdW5pbml0X2xvY2tfY3B1KGNwdSk7CiAJCX0KIAotCQlpZiAoeGVuX3B2 X2RvbWFpbigpIHx8Ci0JCSAgICAoeGVuX2hhdmVfdmVjdG9yX2NhbGxiYWNrICYmCi0JCSAgICAg eGVuX2ZlYXR1cmUoWEVORkVBVF9odm1fc2FmZV9wdmNsb2NrKSkpCi0JCQl4ZW5fc2V0dXBfdGlt ZXIoY3B1KTsKKwkJaWYgKGNwdV9hY3BpX2lkKGNwdSkgIT0gVTMyX01BWCkKKwkJCXBlcl9jcHUo eGVuX3ZjcHVfaWQsIGNwdSkgPSBjcHVfYWNwaV9pZChjcHUpOworCQllbHNlCisJCQlwZXJfY3B1 KHhlbl92Y3B1X2lkLCBjcHUpID0gY3B1OworCQl4ZW5fdmNwdV9zZXR1cChjcHUpOworCX0KIAot CQlyYyA9IHhlbl9zbXBfaW50cl9pbml0KGNwdSk7Ci0JCWlmIChyYykgewotCQkJV0FSTigxLCAi eGVuX3NtcF9pbnRyX2luaXQoKSBmb3IgQ1BVICVkIGZhaWxlZDogJWRcbiIsCi0JCQkgICAgIGNw dSwgcmMpOwotCQkJcmV0dXJuIE5PVElGWV9CQUQ7Ci0JCX0KKwlpZiAoeGVuX3B2X2RvbWFpbigp IHx8CisJICAgICh4ZW5faGF2ZV92ZWN0b3JfY2FsbGJhY2sgJiYKKwkgICAgIHhlbl9mZWF0dXJl KFhFTkZFQVRfaHZtX3NhZmVfcHZjbG9jaykpKQorCQl4ZW5fc2V0dXBfdGltZXIoY3B1KTsKIAot CQlicmVhazsKLQljYXNlIENQVV9PTkxJTkU6Ci0JCXhlbl9pbml0X2xvY2tfY3B1KGNwdSk7Ci0J CWJyZWFrOwotCWNhc2UgQ1BVX1VQX0NBTkNFTEVEOgotCQl4ZW5fc21wX2ludHJfZnJlZShjcHUp OwotCQlpZiAoeGVuX3B2X2RvbWFpbigpIHx8Ci0JCSAgICAoeGVuX2hhdmVfdmVjdG9yX2NhbGxi YWNrICYmCi0JCSAgICAgeGVuX2ZlYXR1cmUoWEVORkVBVF9odm1fc2FmZV9wdmNsb2NrKSkpCi0J CQl4ZW5fdGVhcmRvd25fdGltZXIoY3B1KTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJYnJlYWs7 CisJcmMgPSB4ZW5fc21wX2ludHJfaW5pdChjcHUpOworCWlmIChyYykgeworCQlXQVJOKDEsICJ4 ZW5fc21wX2ludHJfaW5pdCgpIGZvciBDUFUgJWQgZmFpbGVkOiAlZFxuIiwKKwkJICAgICBjcHUs IHJjKTsKKwkJcmV0dXJuIHJjOwogCX0KLQlyZXR1cm4gTk9USUZZX09LOworCXJldHVybiAwOwog fQogCi1zdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHhlbl9jcHVfbm90aWZpZXIgPSB7Ci0J Lm5vdGlmaWVyX2NhbGwJPSB4ZW5fY3B1X25vdGlmeSwKLX07CitzdGF0aWMgaW50IHhlbl9jcHVf dXBfY2FuY2VsKHVuc2lnbmVkIGludCBjcHUpCit7CisJeGVuX3NtcF9pbnRyX2ZyZWUoY3B1KTsK KworCWlmICh4ZW5fcHZfZG9tYWluKCkgfHwKKwkgICAgKHhlbl9oYXZlX3ZlY3Rvcl9jYWxsYmFj ayAmJgorCSAgICAgeGVuX2ZlYXR1cmUoWEVORkVBVF9odm1fc2FmZV9wdmNsb2NrKSkpCisJCXhl bl90ZWFyZG93bl90aW1lcihjcHUpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgeGVu X2NwdV91cF9vbmxpbmUodW5zaWduZWQgaW50IGNwdSkKK3sKKwl4ZW5faW5pdF9sb2NrX2NwdShj cHUpOworCXJldHVybiAwOworfQogCiAjaWZkZWYgQ09ORklHX0tFWEVDX0NPUkUKIHN0YXRpYyB2 b2lkIHhlbl9odm1fc2h1dGRvd24odm9pZCkKQEAgLTE5MTAsNyArMTkyNSw3IEBAIHN0YXRpYyB2 b2lkIF9faW5pdCB4ZW5faHZtX2d1ZXN0X2luaXQodm9pZCkKIAlpZiAoeGVuX2ZlYXR1cmUoWEVO RkVBVF9odm1fY2FsbGJhY2tfdmVjdG9yKSkKIAkJeGVuX2hhdmVfdmVjdG9yX2NhbGxiYWNrID0g MTsKIAl4ZW5faHZtX3NtcF9pbml0KCk7Ci0JcmVnaXN0ZXJfY3B1X25vdGlmaWVyKCZ4ZW5fY3B1 X25vdGlmaWVyKTsKKwlXQVJOX09OKHhlbl9jcHVocF9zZXR1cCgpKTsKIAl4ZW5fdW5wbHVnX2Vt dWxhdGVkX2RldmljZXMoKTsKIAl4ODZfaW5pdC5pcnFzLmludHJfaW5pdCA9IHhlbl9pbml0X0lS UTsKIAl4ZW5faHZtX2luaXRfdGltZV9vcHMoKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv Y3B1aG90cGx1Zy5oIGIvaW5jbHVkZS9saW51eC9jcHVob3RwbHVnLmgKaW5kZXggMjQyYmY1My4u ZDZiZWViOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jcHVob3RwbHVnLmgKKysrIGIvaW5j bHVkZS9saW51eC9jcHVob3RwbHVnLmgKQEAgLTIxLDYgKzIxLDcgQEAgZW51bSBjcHVocF9zdGF0 ZSB7CiAJQ1BVSFBfWDJBUElDX1BSRVBBUkUsCiAJQ1BVSFBfU01QQ0ZEX1BSRVBBUkUsCiAJQ1BV SFBfUkNVVFJFRV9QUkVQLAorCUNQVUhQX1hFTl9QUkVQQVJFLAogCUNQVUhQX05PVElGWV9QUkVQ QVJFLAogCUNQVUhQX1RJTUVSU19ERUFELAogCUNQVUhQX0JSSU5HVVBfQ1BVLApAQCAtOTMsNiAr OTQsNyBAQCBlbnVtIGNwdWhwX3N0YXRlIHsKIAlDUFVIUF9BUF9PTkxJTkVfRFlOX0VORAkJPSBD UFVIUF9BUF9PTkxJTkVfRFlOICsgMzAsCiAJQ1BVSFBfQVBfWDg2X0hQRVRfT05MSU5FLAogCUNQ VUhQX0FQX1g4Nl9LVk1fQ0xLX09OTElORSwKKwlDUFVIUF9BUF9YRU5fT05MSU5FLAogCUNQVUhQ X0FQX0FDVElWRSwKIAlDUFVIUF9PTkxJTkUsCiB9OwotLSAKMS43LjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK