From mboxrd@z Thu Jan 1 00:00:00 1970 From: Feng Wu Subject: [PATCH v7 2/6] VMX: Properly handle pi when all the assigned devices are removed Date: Mon, 7 Nov 2016 16:07:59 +0800 Message-ID: <1478506083-14560-3-git-send-email-feng.wu@intel.com> References: <1478506083-14560-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: <1478506083-14560-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, Feng Wu , george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBoYW5kbGVzIHNvbWUgY29ybmVyIGNhc2VzIHdoZW4gdGhlIGxhc3QgYXNzaWdu ZWQgZGV2aWNlCmlzIHJlbW92ZWQgZnJvbSB0aGUgZG9tYWluLiBJbiB0aGlzIGNhc2Ugd2Ugc2hv dWxkIGNhcmVmdWxseSBoYW5kbGUKcGkgZGVzY3JpcHRvciBhbmQgdGhlIHBlci1jcHUgYmxvY2tp bmcgbGlzdCwgdG8gbWFrZSBzdXJlOgotIGFsbCB0aGUgUEkgZGVzY3JpcHRvciBhcmUgaW4gdGhl IHJpZ2h0IHN0YXRlIHdoZW4gbmV4dCB0aW1lIGEKZGV2aWNlcyBpcyBhc3NpZ25lZCB0byB0aGUg ZG9tYWluIGFnYWluLgotIE5vIHJlbWFpbmluZyB2Y3B1cyBvZiB0aGUgZG9tYWluIGluIHRoZSBw ZXItY3B1IGJsb2NraW5nIGxpc3QuCgpIZXJlIHdlIGNhbGwgdm14X3BpX3VuYmxvY2tfdmNwdSgp IHRvIHJlbW92ZSB0aGUgdkNQVSBmcm9tIHRoZSBibG9ja2luZyBsaXN0CmlmIGl0IGlzIG9uIHRo ZSBsaXN0LiBIb3dldmVyLCB0aGlzIGNvdWxkIGhhcHBlbiB3aGVuIHZteF92Y3B1X2Jsb2NrKCkg aXMKYmVpbmcgY2FsbGVkLCBoZW5jZSB3ZSBtaWdodCBpbmNvcnJlY3RseSBhZGQgdGhlIHZDUFUg dG8gdGhlIGJsb2NraW5nIGxpc3QKd2hpbGUgdGhlIGxhc3QgZGV2Y2llIGlzIGRldGFjaGVkIGZy b20gdGhlIGRvbWFpbi4gQ29uc2lkZXIgdGhhdCB0aGUgc2l0dWF0aW9uCmNhbiBvbmx5IG9jY3Vy IHdoZW4gZGV0YWNoaW5nIHRoZSBsYXN0IGRldmljZSBmcm9tIHRoZSBkb21haW4gYW5kIGl0IGlz IG5vdAphIGZyZXF1ZW50IG9wZXJhdGlvbiwgc28gd2UgdXNlIGRvbWFpbl9wYXVzZSBiZWZvcmUg dGhhdCwgd2hpY2ggaXMgY29uc2lkZXJlZAphcyBhbiBjbGVhbiBhbmQgbWFpbnRhaW5hYmxlIHNv bHV0aW9uIGZvciB0aGUgc2l0dWF0aW9uLgoKU2lnbmVkLW9mZi1ieTogRmVuZyBXdSA8ZmVuZy53 dUBpbnRlbC5jb20+Ci0tLQp2NzoKLSBQcmV2ZW50IHRoZSBkb21haW4gZnJvbSBwYXVzaW5nIGl0 c2VsZi4KCnY2OgotIENvbW1lbnRzIGNoYW5nZXMKLSBSZW5hbWUgdm14X3BpX2xpc3RfcmVtb3Zl KCkgdG8gdm14X3BpX3VuYmxvY2tfdmNwdSgpCgp2NToKLSBSZW1vdmUgYSBuby1vcCB3cmFwcGVy Cgp2NDoKLSBSZW5hbWUgc29tZSBmdW5jdGlvbnM6Cgl2bXhfcGlfcmVtb3ZlX3ZjcHVfZnJvbV9i bG9ja2luZ19saXN0KCkgLT4gdm14X3BpX2xpc3RfcmVtb3ZlKCkKCXZteF9waV9ibG9ja2luZ19j bGVhbnVwKCkgLT4gdm14X3BpX2xpc3RfY2xlYW51cCgpCi0gUmVtb3ZlIHRoZSBjaGVjayBpbiB2 bXhfcGlfbGlzdF9jbGVhbnVwKCkKLSBDb21tZW50cyBhZGp1c3RtZW50CgogeGVuL2FyY2gveDg2 L2h2bS92bXgvdm14LmMgICAgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKystLS0tCiB4ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyB8IDE0ICsrKysrKysrKysrKysrCiAyIGZpbGVzIGNo YW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwppbmRl eCAxMDU0NmFmLi43ZTdiYzhiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXgu YworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAtMTU4LDE0ICsxNTgsMTIgQEAg c3RhdGljIHZvaWQgdm14X3BpX3N3aXRjaF90byhzdHJ1Y3QgdmNwdSAqdikKICAgICBwaV9jbGVh cl9zbihwaV9kZXNjKTsKIH0KIAotc3RhdGljIHZvaWQgdm14X3BpX2RvX3Jlc3VtZShzdHJ1Y3Qg dmNwdSAqdikKK3N0YXRpYyB2b2lkIHZteF9waV91bmJsb2NrX3ZjcHUoc3RydWN0IHZjcHUgKnYp CiB7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBzcGlubG9ja190ICpwaV9ibG9ja2lu Z19saXN0X2xvY2s7CiAgICAgc3RydWN0IHBpX2Rlc2MgKnBpX2Rlc2MgPSAmdi0+YXJjaC5odm1f dm14LnBpX2Rlc2M7CiAKLSAgICBBU1NFUlQoIXRlc3RfYml0KF9WUEZfYmxvY2tlZCwgJnYtPnBh dXNlX2ZsYWdzKSk7Ci0KICAgICAvKgogICAgICAqIFNldCAnTlYnIGZpZWxkIGJhY2sgdG8gcG9z dGVkX2ludHJfdmVjdG9yLCBzbyB0aGUKICAgICAgKiBQb3N0ZWQtSW50ZXJydXB0cyBjYW4gYmUg ZGVsaXZlcmVkIHRvIHRoZSB2Q1BVIHdoZW4KQEAgLTE3MywxMiArMTcxLDEyIEBAIHN0YXRpYyB2 b2lkIHZteF9waV9kb19yZXN1bWUoc3RydWN0IHZjcHUgKnYpCiAgICAgICovCiAgICAgd3JpdGVf YXRvbWljKCZwaV9kZXNjLT5udiwgcG9zdGVkX2ludHJfdmVjdG9yKTsKIAotICAgIC8qIFRoZSB2 Q1BVIGlzIG5vdCBvbiBhbnkgYmxvY2tpbmcgbGlzdC4gKi8KICAgICBwaV9ibG9ja2luZ19saXN0 X2xvY2sgPSB2LT5hcmNoLmh2bV92bXgucGlfYmxvY2tpbmcubG9jazsKIAogICAgIC8qIFByZXZl bnQgdGhlIGNvbXBpbGVyIGZyb20gZWxpbWluYXRpbmcgdGhlIGxvY2FsIHZhcmlhYmxlLiovCiAg ICAgc21wX3JtYigpOwogCisgICAgLyogVGhlIHZDUFUgaXMgbm90IG9uIGFueSBibG9ja2luZyBs aXN0LiAqLwogICAgIGlmICggcGlfYmxvY2tpbmdfbGlzdF9sb2NrID09IE5VTEwgKQogICAgICAg ICByZXR1cm47CiAKQEAgLTE5OCw2ICsxOTYsMTMgQEAgc3RhdGljIHZvaWQgdm14X3BpX2RvX3Jl c3VtZShzdHJ1Y3QgdmNwdSAqdikKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKHBpX2Jsb2Nr aW5nX2xpc3RfbG9jaywgZmxhZ3MpOwogfQogCitzdGF0aWMgdm9pZCB2bXhfcGlfZG9fcmVzdW1l KHN0cnVjdCB2Y3B1ICp2KQoreworICAgIEFTU0VSVCghdGVzdF9iaXQoX1ZQRl9ibG9ja2VkLCAm di0+cGF1c2VfZmxhZ3MpKTsKKworICAgIHZteF9waV91bmJsb2NrX3ZjcHUodik7Cit9CisKIC8q IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gcGNpZGV2c19sb2NrIGlzIGhlbGQgKi8KIHZv aWQgdm14X3BpX2hvb2tzX2Fzc2lnbihzdHJ1Y3QgZG9tYWluICpkKQogewpAQCAtMjE1LDExICsy MjAsMjEgQEAgdm9pZCB2bXhfcGlfaG9va3NfYXNzaWduKHN0cnVjdCBkb21haW4gKmQpCiAvKiBU aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHBjaWRldnNfbG9jayBpcyBoZWxkICovCiB2b2lk IHZteF9waV9ob29rc19kZWFzc2lnbihzdHJ1Y3QgZG9tYWluICpkKQogeworICAgIHN0cnVjdCB2 Y3B1ICp2OworCiAgICAgaWYgKCAhaW9tbXVfaW50cG9zdCB8fCAhaGFzX2h2bV9jb250YWluZXJf ZG9tYWluKGQpICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGQtPmFyY2guaHZtX2Rv bWFpbi52bXgudmNwdV9ibG9jayk7CiAKKyAgICAvKgorICAgICAqIFBhdXNpbmcgdGhlIGRvbWFp biBjYW4gbWFrZSBzdXJlIHRoZSB2Q1BVIGlzIG5vdAorICAgICAqIHJ1bm5pbmcgYW5kIGhlbmNl IG5vdCBjYWxsaW5nIHRoZSBob29rcyBzaW11bHRhbmVvdXNseQorICAgICAqIHdoZW4gZGVhc3Np Z25pbmcgdGhlIFBJIGhvb2tzIGFuZCByZW1vdmluZyB0aGUgdkNQVQorICAgICAqIGZyb20gdGhl IGJsb2NraW5nIGxpc3QuCisgICAgICovCisgICAgZG9tYWluX3BhdXNlKGQpOworCiAgICAgZC0+ YXJjaC5odm1fZG9tYWluLnZteC52Y3B1X2Jsb2NrID0gTlVMTDsKICAgICBkLT5hcmNoLmh2bV9k b21haW4udm14LnBpX3N3aXRjaF9mcm9tID0gTlVMTDsKICAgICBkLT5hcmNoLmh2bV9kb21haW4u dm14LnBpX2RvX3Jlc3VtZSA9IE5VTEw7CkBAIC0yMjksNiArMjQ0LDExIEBAIHZvaWQgdm14X3Bp X2hvb2tzX2RlYXNzaWduKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICogaXMgaW4gdGhlIHByb2Nl c3Mgb2YgZ2V0dGluZyBhc3NpZ25lZCBhbmQgImZyb20iIGhvb2sgaXMgTlVMTC4gSG93ZXZlciwK ICAgICAgKiBpdCBpcyBub3Qgc3RyYWlnaHRmb3J3YXJkIHRvIGZpbmQgYSBjbGVhciBzb2x1dGlv biwgc28ganVzdCBsZWF2ZSBpdCBoZXJlLgogICAgICAqLworCisgICAgZm9yX2VhY2hfdmNwdSAo IGQsIHYgKQorICAgICAgICB2bXhfcGlfdW5ibG9ja192Y3B1KHYpOworCisgICAgZG9tYWluX3Vu cGF1c2UoZCk7CiB9CiAKIHN0YXRpYyBpbnQgdm14X2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBk b21haW4gKmQpCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCmluZGV4IDhiY2UyMTMuLmU3MTczMmYgMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3BjaS5jCkBAIC0xNjAyLDYgKzE2MDIsMTMgQEAgaW50IGlvbW11X2RvX3BjaV9k b21jdGwoCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZp Y2U6CisgICAgICAgIC8qIG5vIGRvbWFpbl9wYXVzZSgpICovCisgICAgICAgIGlmICggZCA9PSBj dXJyZW50LT5kb21haW4gKQorICAgICAgICB7CisgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwor ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICByZXQgPSAtRU5PREVWOwog ICAgICAgICBpZiAoIGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLmRldiAhPSBYRU5fRE9NQ1RMX0RF Vl9QQ0kgKQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xNjQyLDYgKzE2NDksMTMgQEAgaW50IGlv bW11X2RvX3BjaV9kb21jdGwoCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBYRU5fRE9NQ1RM X2RlYXNzaWduX2RldmljZToKKyAgICAgICAgLyogbm8gZG9tYWluX3BhdXNlKCkgKi8KKyAgICAg ICAgaWYgKCBkID09IGN1cnJlbnQtPmRvbWFpbiApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJl dCA9IC1FSU5WQUw7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIHJl dCA9IC1FTk9ERVY7CiAgICAgICAgIGlmICggZG9tY3RsLT51LmFzc2lnbl9kZXZpY2UuZGV2ICE9 IFhFTl9ET01DVExfREVWX1BDSSApCiAgICAgICAgICAgICBicmVhazsKLS0gCjIuMS4wCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==