From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 2/2] xen: drain submit queue in xen-usb before removing device Date: Fri, 29 Jul 2016 13:17:31 +0200 Message-ID: <1469791051-680-3-git-send-email-jgross@suse.com> References: <1469791051-680-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1469791051-680-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org, xen-devel@lists.xensource.com Cc: anthony.perard@citrix.com, Juergen Gross , sstabellini@kernel.org, kraxel@redhat.com List-Id: xen-devel@lists.xenproject.org V2hlbiB1bnBsdWdnaW5nIGEgZGV2aWNlIGluIHRoZSBYZW4gcHZ1c2IgYmFja2VuZCBkcmFpbiB0 aGUgc3VibWl0CnF1ZXVlIGJlZm9yZSBkZWFsbG9jYXRpb24gb2YgdGhlIGNvbnRyb2wgc3RydWN0 dXJlcy4gT3RoZXJ3aXNlIHRoZXJlCndpbGwgYmUgYm9ndXMgbWVtb3J5IGFjY2Vzc2VzIHdoZW4g SS9PIGNvbnRyYWN0cyBhcmUgZmluaXNoZWQuCgpDb3JyZWxhdGVkIHRvIHRoaXMgaXNzdWUgaXMg dGhlIGhhbmRsaW5nIG9mIGNhbmNlbCByZXF1ZXN0czogYSBwYWNrZXQKY2FuY2VsbGVkIHdpbGwg c3RpbGwgbGVhZCB0byB0aGUgY2FsbCBvZiBjb21wbGV0ZSwgc28gYWRkIGEgZmxhZwp0byB0aGUg cmVxdWVzdCBpbmRpY2F0aW5nIGl0IHNob3VsZCBiZSBqdXN0IGRyb3BwZWQgb24gY29tcGxldGUu CgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQogaHcv dXNiL3hlbi11c2IuYyB8IDkzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMzMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaHcvdXNiL3hlbi11c2IuYyBiL2h3L3VzYi94ZW4t dXNiLmMKaW5kZXggNzk5MjQ1Ni4uNmFkNjY2ZSAxMDA2NDQKLS0tIGEvaHcvdXNiL3hlbi11c2Iu YworKysgYi9ody91c2IveGVuLXVzYi5jCkBAIC05MCw2ICs5MCw4IEBAIHN0cnVjdCB1c2JiYWNr X3JlcSB7CiAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICpidWZmZXI7CiAgICAgdm9pZCAg ICAgICAgICAgICAgICAgICAgICppc29jX2J1ZmZlcjsKICAgICBzdHJ1Y3QgbGlidXNiX3RyYW5z ZmVyICAgKnhmZXI7CisKKyAgICBib29sICAgICAgICAgICAgICAgICAgICAgY2FuY2VsbGVkOwog fTsKIAogc3RydWN0IHVzYmJhY2tfaG90cGx1ZyB7CkBAIC0zMDEsMjAgKzMwMywyMyBAQCBzdGF0 aWMgdm9pZCB1c2JiYWNrX2RvX3Jlc3BvbnNlKHN0cnVjdCB1c2JiYWNrX3JlcSAqdXNiYmFja19y ZXEsIGludDMyX3Qgc3RhdHVzLAogICAgICAgICB1c2JiYWNrX3JlcS0+aXNvY19idWZmZXIgPSBO VUxMOwogICAgIH0KIAotICAgIHJlcyA9IFJJTkdfR0VUX1JFU1BPTlNFKCZ1c2JpZi0+dXJiX3Jp bmcsIHVzYmlmLT51cmJfcmluZy5yc3BfcHJvZF9wdnQpOwotICAgIHJlcy0+aWQgPSB1c2JiYWNr X3JlcS0+cmVxLmlkOwotICAgIHJlcy0+c3RhdHVzID0gc3RhdHVzOwotICAgIHJlcy0+YWN0dWFs X2xlbmd0aCA9IGFjdHVhbF9sZW5ndGg7Ci0gICAgcmVzLT5lcnJvcl9jb3VudCA9IGVycm9yX2Nv dW50OwotICAgIHJlcy0+c3RhcnRfZnJhbWUgPSAwOwotICAgIHVzYmlmLT51cmJfcmluZy5yc3Bf cHJvZF9wdnQrKzsKLSAgICBSSU5HX1BVU0hfUkVTUE9OU0VTX0FORF9DSEVDS19OT1RJRlkoJnVz YmlmLT51cmJfcmluZywgbm90aWZ5KTsKKyAgICBpZiAodXNiaWYtPnVyYl9zcmluZykgeworICAg ICAgICByZXMgPSBSSU5HX0dFVF9SRVNQT05TRSgmdXNiaWYtPnVyYl9yaW5nLCB1c2JpZi0+dXJi X3JpbmcucnNwX3Byb2RfcHZ0KTsKKyAgICAgICAgcmVzLT5pZCA9IHVzYmJhY2tfcmVxLT5yZXEu aWQ7CisgICAgICAgIHJlcy0+c3RhdHVzID0gc3RhdHVzOworICAgICAgICByZXMtPmFjdHVhbF9s ZW5ndGggPSBhY3R1YWxfbGVuZ3RoOworICAgICAgICByZXMtPmVycm9yX2NvdW50ID0gZXJyb3Jf Y291bnQ7CisgICAgICAgIHJlcy0+c3RhcnRfZnJhbWUgPSAwOworICAgICAgICB1c2JpZi0+dXJi X3JpbmcucnNwX3Byb2RfcHZ0Kys7CisgICAgICAgIFJJTkdfUFVTSF9SRVNQT05TRVNfQU5EX0NI RUNLX05PVElGWSgmdXNiaWYtPnVyYl9yaW5nLCBub3RpZnkpOwogCi0gICAgaWYgKG5vdGlmeSkg ewotICAgICAgICB4ZW5fYmVfc2VuZF9ub3RpZnkoeGVuZGV2KTsKKyAgICAgICAgaWYgKG5vdGlm eSkgeworICAgICAgICAgICAgeGVuX2JlX3NlbmRfbm90aWZ5KHhlbmRldik7CisgICAgICAgIH0K ICAgICB9CiAKLSAgICB1c2JiYWNrX3B1dF9yZXEodXNiYmFja19yZXEpOworICAgIGlmICghdXNi YmFja19yZXEtPmNhbmNlbGxlZCkKKyAgICAgICAgdXNiYmFja19wdXRfcmVxKHVzYmJhY2tfcmVx KTsKIH0KIAogc3RhdGljIHZvaWQgdXNiYmFja19kb19yZXNwb25zZV9yZXQoc3RydWN0IHVzYmJh Y2tfcmVxICp1c2JiYWNrX3JlcSwKQEAgLTM2NiwxNSArMzcxLDE0IEBAIHN0YXRpYyB2b2lkIHVz YmJhY2tfc2V0X2FkZHJlc3Moc3RydWN0IHVzYmJhY2tfaW5mbyAqdXNiaWYsCiAgICAgfQogfQog Ci1zdGF0aWMgYm9vbCB1c2JiYWNrX2NhbmNlbF9yZXEoc3RydWN0IHVzYmJhY2tfcmVxICp1c2Ji YWNrX3JlcSkKK3N0YXRpYyB2b2lkIHVzYmJhY2tfY2FuY2VsX3JlcShzdHJ1Y3QgdXNiYmFja19y ZXEgKnVzYmJhY2tfcmVxKQogewotICAgIGJvb2wgcmV0ID0gZmFsc2U7Ci0KICAgICBpZiAodXNi X3BhY2tldF9pc19pbmZsaWdodCgmdXNiYmFja19yZXEtPnBhY2tldCkpIHsKICAgICAgICAgdXNi X2NhbmNlbF9wYWNrZXQoJnVzYmJhY2tfcmVxLT5wYWNrZXQpOwotICAgICAgICByZXQgPSB0cnVl OworICAgICAgICBRVEFJTFFfUkVNT1ZFKCZ1c2JiYWNrX3JlcS0+c3R1Yi0+c3VibWl0X3EsIHVz YmJhY2tfcmVxLCBxKTsKKyAgICAgICAgdXNiYmFja19yZXEtPmNhbmNlbGxlZCA9IHRydWU7Cisg ICAgICAgIHVzYmJhY2tfZG9fcmVzcG9uc2VfcmV0KHVzYmJhY2tfcmVxLCAtRVBST1RPKTsKICAg ICB9Ci0gICAgcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgdXNiYmFja19wcm9jZXNzX3Vu bGlua19yZXEoc3RydWN0IHVzYmJhY2tfcmVxICp1c2JiYWNrX3JlcSkKQEAgLTM5MSw3ICszOTUs NyBAQCBzdGF0aWMgdm9pZCB1c2JiYWNrX3Byb2Nlc3NfdW5saW5rX3JlcShzdHJ1Y3QgdXNiYmFj a19yZXEgKnVzYmJhY2tfcmVxKQogICAgIGRldm51bSA9IHVzYmlmX3BpcGVkZXZpY2UodXNiYmFj a19yZXEtPnJlcS5waXBlKTsKICAgICBpZiAodW5saWtlbHkoZGV2bnVtID09IDApKSB7CiAgICAg ICAgIHVzYmJhY2tfcmVxLT5zdHViID0gdXNiaWYtPnBvcnRzICsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1c2JpZl9waXBlcG9ydG51bSh1c2JiYWNrX3JlcS0+cmVxLnBpcGUpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVzYmlmX3BpcGVwb3J0bnVtKHVzYmJhY2tfcmVxLT5y ZXEucGlwZSkgLSAxOwogICAgICAgICBpZiAodW5saWtlbHkoIXVzYmJhY2tfcmVxLT5zdHViKSkg ewogICAgICAgICAgICAgcmV0ID0gLUVOT0RFVjsKICAgICAgICAgICAgIGdvdG8gZmFpbF9yZXNw b25zZTsKQEAgLTQwNiw5ICs0MTAsNyBAQCBzdGF0aWMgdm9pZCB1c2JiYWNrX3Byb2Nlc3NfdW5s aW5rX3JlcShzdHJ1Y3QgdXNiYmFja19yZXEgKnVzYmJhY2tfcmVxKQogCiAgICAgUVRBSUxRX0ZP UkVBQ0godW5saW5rX3JlcSwgJnVzYmJhY2tfcmVxLT5zdHViLT5zdWJtaXRfcSwgcSkgewogICAg ICAgICBpZiAodW5saW5rX3JlcS0+cmVxLmlkID09IGlkKSB7Ci0gICAgICAgICAgICBpZiAodXNi YmFja19jYW5jZWxfcmVxKHVubGlua19yZXEpKSB7Ci0gICAgICAgICAgICAgICAgdXNiYmFja19k b19yZXNwb25zZV9yZXQodW5saW5rX3JlcSwgLUVQUk9UTyk7Ci0gICAgICAgICAgICB9CisgICAg ICAgICAgICB1c2JiYWNrX2NhbmNlbF9yZXEodW5saW5rX3JlcSk7CiAgICAgICAgICAgICBicmVh azsKICAgICAgICAgfQogICAgIH0KQEAgLTY4MSw2ICs2ODMsMzEgQEAgc3RhdGljIHZvaWQgdXNi YmFja19ob3RwbHVnX2VucShzdHJ1Y3QgdXNiYmFja19pbmZvICp1c2JpZiwgdW5zaWduZWQgcG9y dCkKICAgICB1c2JiYWNrX2hvdHBsdWdfbm90aWZ5KHVzYmlmKTsKIH0KIAorc3RhdGljIHZvaWQg dXNiYmFja19wb3J0aWRfZHJhaW4oc3RydWN0IHVzYmJhY2tfaW5mbyAqdXNiaWYsIHVuc2lnbmVk IHBvcnQpCit7CisgICAgc3RydWN0IHVzYmJhY2tfcmVxICpyZXEsICp0bXA7CisgICAgYm9vbCBz Y2hlZCA9IGZhbHNlOworCisgICAgUVRBSUxRX0ZPUkVBQ0hfU0FGRShyZXEsICZ1c2JpZi0+cG9y dHNbcG9ydCAtIDFdLnN1Ym1pdF9xLCBxLCB0bXApIHsKKyAgICAgICAgdXNiYmFja19jYW5jZWxf cmVxKHJlcSk7CisgICAgICAgIHNjaGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoc2NoZWQp CisgICAgICAgIHFlbXVfYmhfc2NoZWR1bGUodXNiaWYtPmJoKTsKK30KKworc3RhdGljIHZvaWQg dXNiYmFja19wb3J0aWRfZGV0YWNoKHN0cnVjdCB1c2JiYWNrX2luZm8gKnVzYmlmLCB1bnNpZ25l ZCBwb3J0KQoreworICAgIGlmICghdXNiaWYtPnBvcnRzW3BvcnQgLSAxXS5hdHRhY2hlZCkKKyAg ICAgICAgcmV0dXJuOworCisgICAgdXNiaWYtPnBvcnRzW3BvcnQgLSAxXS5zcGVlZCA9IFVTQklG X1NQRUVEX05PTkU7CisgICAgdXNiaWYtPnBvcnRzW3BvcnQgLSAxXS5hdHRhY2hlZCA9IGZhbHNl OworICAgIHVzYmJhY2tfcG9ydGlkX2RyYWluKHVzYmlmLCBwb3J0KTsKKyAgICB1c2JiYWNrX2hv dHBsdWdfZW5xKHVzYmlmLCBwb3J0KTsKK30KKwogc3RhdGljIHZvaWQgdXNiYmFja19wb3J0aWRf cmVtb3ZlKHN0cnVjdCB1c2JiYWNrX2luZm8gKnVzYmlmLCB1bnNpZ25lZCBwb3J0KQogewogICAg IFVTQlBvcnQgKnA7CkBAIC02OTQsOSArNzIxLDcgQEAgc3RhdGljIHZvaWQgdXNiYmFja19wb3J0 aWRfcmVtb3ZlKHN0cnVjdCB1c2JiYWNrX2luZm8gKnVzYmlmLCB1bnNpZ25lZCBwb3J0KQogCiAg ICAgb2JqZWN0X3VucGFyZW50KE9CSkVDVCh1c2JpZi0+cG9ydHNbcG9ydCAtIDFdLmRldikpOwog ICAgIHVzYmlmLT5wb3J0c1twb3J0IC0gMV0uZGV2ID0gTlVMTDsKLSAgICB1c2JpZi0+cG9ydHNb cG9ydCAtIDFdLnNwZWVkID0gVVNCSUZfU1BFRURfTk9ORTsKLSAgICB1c2JpZi0+cG9ydHNbcG9y dCAtIDFdLmF0dGFjaGVkID0gZmFsc2U7Ci0gICAgdXNiYmFja19ob3RwbHVnX2VucSh1c2JpZiwg cG9ydCk7CisgICAgdXNiYmFja19wb3J0aWRfZGV0YWNoKHVzYmlmLCBwb3J0KTsKIAogICAgIFRS X0JVUygmdXNiaWYtPnhlbmRldiwgInBvcnQgJWQgcmVtb3ZlZFxuIiwgcG9ydCk7CiB9CkBAIC04 MDEsNyArODI2LDYgQEAgc3RhdGljIHZvaWQgdXNiYmFja19wcm9jZXNzX3BvcnQoc3RydWN0IHVz YmJhY2tfaW5mbyAqdXNiaWYsIHVuc2lnbmVkIHBvcnQpCiBzdGF0aWMgdm9pZCB1c2JiYWNrX2Rp c2Nvbm5lY3Qoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2KQogewogICAgIHN0cnVjdCB1c2JiYWNr X2luZm8gKnVzYmlmOwotICAgIHN0cnVjdCB1c2JiYWNrX3JlcSAqcmVxLCAqdG1wOwogICAgIHVu c2lnbmVkIGludCBpOwogCiAgICAgVFJfQlVTKHhlbmRldiwgInN0YXJ0XG4iKTsKQEAgLTgyMCwx MiArODQ0LDggQEAgc3RhdGljIHZvaWQgdXNiYmFja19kaXNjb25uZWN0KHN0cnVjdCBYZW5EZXZp Y2UgKnhlbmRldikKICAgICB9CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgdXNiaWYtPm51bV9wb3J0 czsgaSsrKSB7Ci0gICAgICAgIGlmICghdXNiaWYtPnBvcnRzW2ldLmRldikgewotICAgICAgICAg ICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgUVRBSUxRX0ZPUkVBQ0hfU0FGRShyZXEs ICZ1c2JpZi0+cG9ydHNbaV0uc3VibWl0X3EsIHEsIHRtcCkgewotICAgICAgICAgICAgdXNiYmFj a19jYW5jZWxfcmVxKHJlcSk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHVzYmlmLT5wb3J0c1tp XS5kZXYpCisgICAgICAgICAgICB1c2JiYWNrX3BvcnRpZF9kcmFpbih1c2JpZiwgaSArIDEpOwog ICAgIH0KIAogICAgIFRSX0JVUyh4ZW5kZXYsICJmaW5pc2hlZFxuIik7CkBAIC05NDQsOCArOTY0 LDcgQEAgc3RhdGljIHZvaWQgeGVuX2J1c19kZXRhY2goVVNCUG9ydCAqcG9ydCkKIAogICAgIHVz YmlmID0gcG9ydC0+b3BhcXVlOwogICAgIFRSX0JVUygmdXNiaWYtPnhlbmRldiwgIlxuIik7Ci0g ICAgdXNiaWYtPnBvcnRzW3BvcnQtPmluZGV4XS5hdHRhY2hlZCA9IGZhbHNlOwotICAgIHVzYmJh Y2tfaG90cGx1Z19lbnEodXNiaWYsIHBvcnQtPmluZGV4ICsgMSk7CisgICAgdXNiYmFja19wb3J0 aWRfZGV0YWNoKHVzYmlmLCBwb3J0LT5pbmRleCArIDEpOwogfQogCiBzdGF0aWMgdm9pZCB4ZW5f YnVzX2NoaWxkX2RldGFjaChVU0JQb3J0ICpwb3J0LCBVU0JEZXZpY2UgKmNoaWxkKQpAQCAtOTU4 LDkgKzk3NywxNiBAQCBzdGF0aWMgdm9pZCB4ZW5fYnVzX2NoaWxkX2RldGFjaChVU0JQb3J0ICpw b3J0LCBVU0JEZXZpY2UgKmNoaWxkKQogCiBzdGF0aWMgdm9pZCB4ZW5fYnVzX2NvbXBsZXRlKFVT QlBvcnQgKnBvcnQsIFVTQlBhY2tldCAqcGFja2V0KQogeworICAgIHN0cnVjdCB1c2JiYWNrX3Jl cSAqdXNiYmFja19yZXE7CiAgICAgc3RydWN0IHVzYmJhY2tfaW5mbyAqdXNiaWY7CiAKLSAgICB1 c2JpZiA9IHBvcnQtPm9wYXF1ZTsKKyAgICB1c2JiYWNrX3JlcSA9IGNvbnRhaW5lcl9vZihwYWNr ZXQsIHN0cnVjdCB1c2JiYWNrX3JlcSwgcGFja2V0KTsKKyAgICBpZiAodXNiYmFja19yZXEtPmNh bmNlbGxlZCkgeworICAgICAgICBnX2ZyZWUodXNiYmFja19yZXEpOworICAgICAgICByZXR1cm47 CisgICAgfQorCisgICAgdXNiaWYgPSB1c2JiYWNrX3JlcS0+dXNiaWY7CiAgICAgVFJfUkVRKCZ1 c2JpZi0+eGVuZGV2LCAiXG4iKTsKICAgICB1c2JiYWNrX3BhY2tldF9jb21wbGV0ZShwYWNrZXQp OwogfQpAQCAtMTAzNyw2ICsxMDYzLDcgQEAgc3RhdGljIGludCB1c2JiYWNrX2ZyZWUoc3RydWN0 IFhlbkRldmljZSAqeGVuZGV2KQogICAgIH0KIAogICAgIHVzYl9idXNfcmVsZWFzZSgmdXNiaWYt PmJ1cyk7CisgICAgb2JqZWN0X3VucGFyZW50KE9CSkVDVCgmdXNiaWYtPmJ1cykpOwogCiAgICAg VFJfQlVTKHhlbmRldiwgImZpbmlzaGVkXG4iKTsKIAotLSAKMi42LjYKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK