From mboxrd@z Thu Jan 1 00:00:00 1970 From: Feng Wu Subject: [PATCH v2 1/4] VMX: Properly handle pi when all the assigned devices are removed Date: Thu, 26 May 2016 21:39:11 +0800 Message-ID: <1464269954-8056-2-git-send-email-feng.wu@intel.com> References: <1464269954-8056-1-git-send-email-feng.wu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1464269954-8056-1-git-send-email-feng.wu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: kevin.tian@intel.com, keir@xen.org, george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, jbeulich@suse.com, Feng Wu List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBoYW5kbGVzIHNvbWUgY29uY2VybiBjYXNlIHdoZW4gdGhlIGxhc3QgYXNzaWdu ZWQgZGV2aWNlCmlzIHJlbW92ZWQgZnJvbSB0aGUgZG9tYWluLiBJbiB0aGlzIGNhc2Ugd2Ugc2hv dWxkIGNhcmVmdWxseSBoYW5kbGUKcGkgZGVzY3JpcHRvciBhbmQgdGhlIHBlci1jcHUgYmxvY2tp bmcgbGlzdCwgdG8gbWFrZSBzdXJlOgotIGFsbCB0aGUgUEkgZGVzY3JpcHRvciBhcmUgaW4gdGhl IHJpZ2h0IHN0YXRlIHdoZW4gbmV4dCB0aW1lIGEKZGV2aWNlcyBpcyBhc3NpZ25lZCB0byB0aGUg ZG9tYWluIGFnYWluLiBUaGlzIGlzIGFjaHJpdmVkIGJ5IGFsd2F5cwptYWtpbmcgYWxsIHRoZSBw aSBob29rcyBhdmFpbGFibGUsIHNvIHRoZSBwaSBkZXNjcmlwdG9yIGlzIHVwZGF0ZWQKZHVyaW5n IHNjaGVkdWxpbmcsIHdoaWNoIG1ha2UgaXQgYWx3YXlzIHVwLXRvLWRhdGEuCi0gTm8gcmVtYWlu aW5nIHZjcHVzIG9mIHRoZSBkb21haW4gaW4gdGhlIHBlci1jcHUgYmxvY2tpbmcgbGlzdC4KClNp Z25lZC1vZmYtYnk6IEZlbmcgV3UgPGZlbmcud3VAaW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4 Ni9odm0vdm14L3ZteC5jICAgICAgICAgfCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaCB8ICAzICsrCiAy IGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgv dm14LmMKaW5kZXggYmM0NDEwZi4uNjVmNTI4OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS92bXgvdm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTExMyw3ICsx MTMsMTkgQEAgc3RhdGljIHZvaWQgdm14X3ZjcHVfYmxvY2soc3RydWN0IHZjcHUgKnYpCiAJCSZw ZXJfY3B1KHZteF9waV9ibG9ja2luZywgdi0+cHJvY2Vzc29yKS5sb2NrOwogICAgIHN0cnVjdCBw aV9kZXNjICpwaV9kZXNjID0gJnYtPmFyY2guaHZtX3ZteC5waV9kZXNjOwogCi0gICAgc3Bpbl9s b2NrX2lycXNhdmUocGlfYmxvY2tpbmdfbGlzdF9sb2NrLCBmbGFncyk7CisgICAgc3Bpbl9sb2Nr X2lycXNhdmUoJnYtPmFyY2guaHZtX3ZteC5waV9ob3RwbHVnX2xvY2ssIGZsYWdzKTsKKyAgICBp ZiAoIHVubGlrZWx5KHYtPmFyY2guaHZtX3ZteC5waV9ibG9ja2luZ19jbGVhbmVkX3VwKSApCisg ICAgeworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgdmNwdSBpcyB0byBiZSBkZXN0cm95ZWQg YW5kIGl0IGhhcyBhbHJlYWR5IGJlZW4gcmVtb3ZlZAorICAgICAgICAgKiBmcm9tIHRoZSBwZXIt Q1BVIGxpc3QgaWYgaXQgaXMgYmxvY2tpbmcsIHdlIHNob3VsZG4ndCBhZGQKKyAgICAgICAgICog bmV3IHZDUFUgdG8gdGhlIGxpc3QuCisgICAgICAgICAqLworICAgICAgICBzcGluX3VubG9ja19p cnFyZXN0b3JlKCZ2LT5hcmNoLmh2bV92bXgucGlfaG90cGx1Z19sb2NrLCBmbGFncyk7CisgICAg ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzcGluX2xvY2socGlfYmxvY2tpbmdfbGlzdF9sb2Nr KTsKICAgICBvbGRfbG9jayA9IGNtcHhjaGcoJnYtPmFyY2guaHZtX3ZteC5waV9ibG9ja2luZy5s b2NrLCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICBwaV9ibG9ja2luZ19saXN0X2xvY2sp OwogCkBAIC0xMjYsNyArMTM4LDkgQEAgc3RhdGljIHZvaWQgdm14X3ZjcHVfYmxvY2soc3RydWN0 IHZjcHUgKnYpCiAKICAgICBsaXN0X2FkZF90YWlsKCZ2LT5hcmNoLmh2bV92bXgucGlfYmxvY2tp bmcubGlzdCwKICAgICAgICAgICAgICAgICAgICZwZXJfY3B1KHZteF9waV9ibG9ja2luZywgdi0+ cHJvY2Vzc29yKS5saXN0KTsKLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKHBpX2Jsb2NraW5n X2xpc3RfbG9jaywgZmxhZ3MpOworICAgIHNwaW5fdW5sb2NrKHBpX2Jsb2NraW5nX2xpc3RfbG9j ayk7CisKKyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2LT5hcmNoLmh2bV92bXgucGlfaG90 cGx1Z19sb2NrLCBmbGFncyk7CiAKICAgICBBU1NFUlQoIXBpX3Rlc3Rfc24ocGlfZGVzYykpOwog CkBAIC0xOTksMzIgKzIxMyw2NSBAQCBzdGF0aWMgdm9pZCB2bXhfcGlfZG9fcmVzdW1lKHN0cnVj dCB2Y3B1ICp2KQogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUocGlfYmxvY2tpbmdfbGlzdF9s b2NrLCBmbGFncyk7CiB9CiAKK3N0YXRpYyB2b2lkIHZteF9waV9ibG9ja2luZ19jbGVhbnVwKHN0 cnVjdCB2Y3B1ICp2KQoreworICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CisgICAgc3BpbmxvY2tf dCAqcGlfYmxvY2tpbmdfbGlzdF9sb2NrOworCisgICAgaWYgKCAhaW9tbXVfaW50cG9zdCApCisg ICAgICAgIHJldHVybjsKKworICAgIHNwaW5fbG9ja19pcnFzYXZlKCZ2LT5hcmNoLmh2bV92bXgu cGlfaG90cGx1Z19sb2NrLCBmbGFncyk7CisgICAgdi0+YXJjaC5odm1fdm14LnBpX2Jsb2NraW5n X2NsZWFuZWRfdXAgPSAxOworCisgICAgcGlfYmxvY2tpbmdfbGlzdF9sb2NrID0gdi0+YXJjaC5o dm1fdm14LnBpX2Jsb2NraW5nLmxvY2s7CisgICAgaWYgKHBpX2Jsb2NraW5nX2xpc3RfbG9jayA9 PSBOVUxMKQorICAgIHsKKyAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdi0+YXJjaC5o dm1fdm14LnBpX2hvdHBsdWdfbG9jaywgZmxhZ3MpOworICAgICAgICByZXR1cm47CisgICAgfQor CisgICAgc3Bpbl9sb2NrKHBpX2Jsb2NraW5nX2xpc3RfbG9jayk7CisgICAgaWYgKCB2LT5hcmNo Lmh2bV92bXgucGlfYmxvY2tpbmcubG9jayAhPSBOVUxMICkKKyAgICB7CisgICAgICAgIEFTU0VS VCh2LT5hcmNoLmh2bV92bXgucGlfYmxvY2tpbmcubG9jayA9PSBwaV9ibG9ja2luZ19saXN0X2xv Y2spOworICAgICAgICBsaXN0X2RlbCgmdi0+YXJjaC5odm1fdm14LnBpX2Jsb2NraW5nLmxpc3Qp OworICAgICAgICB2LT5hcmNoLmh2bV92bXgucGlfYmxvY2tpbmcubG9jayA9IE5VTEw7CisgICAg fQorICAgIHNwaW5fdW5sb2NrKHBpX2Jsb2NraW5nX2xpc3RfbG9jayk7CisgICAgc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmdi0+YXJjaC5odm1fdm14LnBpX2hvdHBsdWdfbG9jaywgZmxhZ3MpOwor fQorCiAvKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHBjaWRldnNfbG9jayBpcyBoZWxk ICovCiB2b2lkIHZteF9waV9ob29rc19hc3NpZ24oc3RydWN0IGRvbWFpbiAqZCkKIHsKKyAgICBz dHJ1Y3QgdmNwdSAqdjsKKwogICAgIGlmICggIWlvbW11X2ludHBvc3QgfHwgIWhhc19odm1fY29u dGFpbmVyX2RvbWFpbihkKSApCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVCghZC0+YXJj aC5odm1fZG9tYWluLnZteC52Y3B1X2Jsb2NrKTsKKyAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiAp CisgICAgICAgIHYtPmFyY2guaHZtX3ZteC5waV9ibG9ja2luZ19jbGVhbmVkX3VwID0gMDsKIAot ICAgIGQtPmFyY2guaHZtX2RvbWFpbi52bXgudmNwdV9ibG9jayA9IHZteF92Y3B1X2Jsb2NrOwot ICAgIGQtPmFyY2guaHZtX2RvbWFpbi52bXgucGlfc3dpdGNoX2Zyb20gPSB2bXhfcGlfc3dpdGNo X2Zyb207Ci0gICAgZC0+YXJjaC5odm1fZG9tYWluLnZteC5waV9zd2l0Y2hfdG8gPSB2bXhfcGlf c3dpdGNoX3RvOwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi52bXgucGlfZG9fcmVzdW1lID0gdm14 X3BpX2RvX3Jlc3VtZTsKKyAgICBpZiAoICFkLT5hcmNoLmh2bV9kb21haW4udm14LnZjcHVfYmxv Y2sgKQorICAgIHsKKyAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnZteC52Y3B1X2Jsb2NrID0g dm14X3ZjcHVfYmxvY2s7CisgICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi52bXgucGlfc3dpdGNo X2Zyb20gPSB2bXhfcGlfc3dpdGNoX2Zyb207CisgICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi52 bXgucGlfc3dpdGNoX3RvID0gdm14X3BpX3N3aXRjaF90bzsKKyAgICAgICAgZC0+YXJjaC5odm1f ZG9tYWluLnZteC5waV9kb19yZXN1bWUgPSB2bXhfcGlfZG9fcmVzdW1lOworICAgIH0KIH0KIAog LyogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBwY2lkZXZzX2xvY2sgaXMgaGVsZCAqLwog dm9pZCB2bXhfcGlfaG9va3NfZGVhc3NpZ24oc3RydWN0IGRvbWFpbiAqZCkKIHsKKyAgICBzdHJ1 Y3QgdmNwdSAqdjsKKwogICAgIGlmICggIWlvbW11X2ludHBvc3QgfHwgIWhhc19odm1fY29udGFp bmVyX2RvbWFpbihkKSApCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChkLT5hcmNoLmh2 bV9kb21haW4udm14LnZjcHVfYmxvY2spOwotCi0gICAgZC0+YXJjaC5odm1fZG9tYWluLnZteC52 Y3B1X2Jsb2NrID0gTlVMTDsKLSAgICBkLT5hcmNoLmh2bV9kb21haW4udm14LnBpX3N3aXRjaF9m cm9tID0gTlVMTDsKLSAgICBkLT5hcmNoLmh2bV9kb21haW4udm14LnBpX3N3aXRjaF90byA9IE5V TEw7Ci0gICAgZC0+YXJjaC5odm1fZG9tYWluLnZteC5waV9kb19yZXN1bWUgPSBOVUxMOworICAg IGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKKyAgICAgICAgdm14X3BpX2Jsb2NraW5nX2NsZWFudXAo dik7CiB9CiAKIHN0YXRpYyBpbnQgdm14X2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g KmQpCkBAIC0yNTYsNiArMzAzLDggQEAgc3RhdGljIGludCB2bXhfdmNwdV9pbml0aWFsaXNlKHN0 cnVjdCB2Y3B1ICp2KQogCiAgICAgSU5JVF9MSVNUX0hFQUQoJnYtPmFyY2guaHZtX3ZteC5waV9i bG9ja2luZy5saXN0KTsKIAorICAgIHNwaW5fbG9ja19pbml0KCZ2LT5hcmNoLmh2bV92bXgucGlf aG90cGx1Z19sb2NrKTsKKwogICAgIHYtPmFyY2guc2NoZWR1bGVfdGFpbCAgICA9IHZteF9kb19y ZXN1bWU7CiAgICAgdi0+YXJjaC5jdHh0X3N3aXRjaF9mcm9tID0gdm14X2N0eHRfc3dpdGNoX2Zy b207CiAgICAgdi0+YXJjaC5jdHh0X3N3aXRjaF90byAgID0gdm14X2N0eHRfc3dpdGNoX3RvOwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaCBiL3hlbi9pbmNs dWRlL2FzbS14ODYvaHZtL3ZteC92bWNzLmgKaW5kZXggYjU0ZjUyZi4uMzgzNGY0OSAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaAorKysgYi94ZW4vaW5jbHVk ZS9hc20teDg2L2h2bS92bXgvdm1jcy5oCkBAIC0yMzEsNiArMjMxLDkgQEAgc3RydWN0IGFyY2hf dm14X3N0cnVjdCB7CiAgICAgICogcENQVSBhbmQgd2FrZXVwIHRoZSByZWxhdGVkIHZDUFUuCiAg ICAgICovCiAgICAgc3RydWN0IHBpX2Jsb2NraW5nX3ZjcHUgcGlfYmxvY2tpbmc7CisKKyAgICBz cGlubG9ja190ICAgICAgICAgICAgcGlfaG90cGx1Z19sb2NrOworICAgIGJvb2xfdCAgICAgICAg ICAgICAgICBwaV9ibG9ja2luZ19jbGVhbmVkX3VwOwogfTsKIAogaW50IHZteF9jcmVhdGVfdm1j cyhzdHJ1Y3QgdmNwdSAqdik7Ci0tIAoyLjEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==