From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v3 5/7] vpci: fix execution of long running operations Date: Tue, 30 Oct 2018 16:41:21 +0100 Message-ID: <20181030154123.4218-6-roger.pau@citrix.com> References: <20181030154123.4218-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gHW9M-0005LR-9v for xen-devel@lists.xenproject.org; Tue, 30 Oct 2018 15:41:48 +0000 In-Reply-To: <20181030154123.4218-1-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org QkFSIG1hcC91bm1hcCBpcyBhIGxvbmcgcnVubmluZyBvcGVyYXRpb24gdGhhdCBuZWVkcyB0byBi ZSBwcmVlbXB0ZWQKaW4gb3JkZXIgdG8gYXZvaWQgb3ZlcnJ1bm5pbmcgdGhlIGFzc2lnbmVkIHZD UFUgdGltZSAob3IgZXZlbgp0cmlnZ2VyaW5nIHRoZSB3YXRjaGRvZykuCgpDdXJyZW50IGxvZ2lj IGZvciB0aGlzIHByZWVtcHRpb24gaXMgd3JvbmcsIGFuZCB3b24ndCB3b3JrIGF0IGFsbCBmb3IK QU1EIHNpbmNlIG9ubHkgSW50ZWwgbWFrZXMgdXNlIG9mIGh2bV9pb19wZW5kaW5nIChhbmQgZXZl biBpbiB0aGF0CmNhc2UgdGhlIGN1cnJlbnQgY29kZSBpcyB3cm9uZykuCgpJbnN0ZWFkIG1vdmUg dGhlIGNvZGUgdGhhdCBwZXJmb3JtcyB0aGUgbWFwcGluZy91bm1hcHBpbmcgdG8KYSB0YXNrbGV0 IGFuZCBwYXVzZSB0aGUgZ3Vlc3QgdkNQVSB1bnRpbCB0aGUge3VufW1hcHBpbmcgaXMgZG9uZSBh bmQKdGhlIG1lbW9yeSBkZWNvZGluZyBiaXQgaGFzIGJlZW4gdG9nZ2xlZC4KClNpZ25lZC1vZmYt Ynk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpbaW9yZXEgcGFydHNd ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0K Q2M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGlj aCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0Bj aXRyaXguY29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBE dW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4u amFja3NvbkBldS5jaXRyaXguY29tPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJt LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4K Q2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IFRpbSBE ZWVnYW4gPHRpbUB4ZW4ub3JnPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyAgfCAgMyAt LQogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICB8ICAyICsrCiB4ZW4vZHJpdmVycy92cGNpL2hl YWRlci5jIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiB4ZW4v aW5jbHVkZS94ZW4vdnBjaS5oICAgIHwgMTUgKysrLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDQ4 IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwppbmRleCBlMmU3NTVhOGEx Li41OGE4NmY5MjI1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCkBAIC04NSw5ICs4NSw2IEBAIGJvb2wgaHZtX2lvX3Bl bmRpbmcoc3RydWN0IHZjcHUgKnYpCiAgICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnM7CiAg ICAgdW5zaWduZWQgaW50IGlkOwogCi0gICAgaWYgKCBoYXNfdnBjaShkKSAmJiB2cGNpX3Byb2Nl c3NfcGVuZGluZyh2KSApCi0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgRk9SX0VBQ0hfSU9S RVFfU0VSVkVSKGQsIGlkLCBzKQogICAgIHsKICAgICAgICAgc3RydWN0IGh2bV9pb3JlcV92Y3B1 ICpzdjsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2RvbWFp bi5jCmluZGV4IGI4ZDQ4NDg5NzAuLjEwYmZiNTU5MDkgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v ZG9tYWluLmMKKysrIGIveGVuL2NvbW1vbi9kb21haW4uYwpAQCAtMTUzLDYgKzE1Myw4IEBAIHN0 cnVjdCB2Y3B1ICp2Y3B1X2NyZWF0ZSgKIAogICAgIGdyYW50X3RhYmxlX2luaXRfdmNwdSh2KTsK IAorICAgIHZwY2lfaW5pdF92Y3B1KHYpOworCiAgICAgaWYgKCAhemFsbG9jX2NwdW1hc2tfdmFy KCZ2LT5jcHVfaGFyZF9hZmZpbml0eSkgfHwKICAgICAgICAgICF6YWxsb2NfY3B1bWFza192YXIo JnYtPmNwdV9oYXJkX2FmZmluaXR5X3RtcCkgfHwKICAgICAgICAgICF6YWxsb2NfY3B1bWFza192 YXIoJnYtPmNwdV9oYXJkX2FmZmluaXR5X3NhdmVkKSB8fApkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvdnBjaS9oZWFkZXIuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMKaW5kZXggOTIzNGRl OWIyNi4uNGFmODVkM2MwMiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYwor KysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jCkBAIC0xMTgsMzkgKzExOCw0OCBAQCBzdGF0 aWMgdm9pZCBtb2RpZnlfZGVjb2RpbmcoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIGJvb2wg bWFwLCBib29sIHJvbV9vbmx5KQogICAgICAgICAgICAgICAgICAgICAgY21kKTsKIH0KIAotYm9v bCB2cGNpX3Byb2Nlc3NfcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdikKK3N0YXRpYyB2b2lkIHZwY2lf cHJvY2Vzc19wZW5kaW5nKHVuc2lnbmVkIGxvbmcgZGF0YSkKIHsKLSAgICBpZiAoIHYtPnZwY2ku bWVtICkKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9ICh2b2lkICopZGF0YTsKKyAgICBzdHJ1Y3QgbWFw X2RhdGEgbWFwX2RhdGEgPSB7CisgICAgICAgIC5kID0gdi0+ZG9tYWluLAorICAgICAgICAubWFw ID0gdi0+dnBjaS5tYXAsCisgICAgfTsKKyAgICBpbnQgcmM7CisKKyAgICBBU1NFUlQodi0+dnBj aS5tZW0gJiYgYXRvbWljX3JlYWQoJnYtPnBhdXNlX2NvdW50KSk7CisKKyAgICB3aGlsZSAoIChy YyA9IHJhbmdlc2V0X2NvbnN1bWVfcmFuZ2VzKHYtPnZwY2kubWVtLCBtYXBfcmFuZ2UsICZtYXBf ZGF0YSkpID09CisgICAgICAgICAgICAtRVJFU1RBUlQgKQogICAgIHsKLSAgICAgICAgc3RydWN0 IG1hcF9kYXRhIGRhdGEgPSB7Ci0gICAgICAgICAgICAuZCA9IHYtPmRvbWFpbiwKLSAgICAgICAg ICAgIC5tYXAgPSB2LT52cGNpLm1hcCwKLSAgICAgICAgfTsKLSAgICAgICAgaW50IHJjID0gcmFu Z2VzZXRfY29uc3VtZV9yYW5nZXModi0+dnBjaS5tZW0sIG1hcF9yYW5nZSwgJmRhdGEpOwotCi0g ICAgICAgIGlmICggcmMgPT0gLUVSRVNUQVJUICkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot Ci0gICAgICAgIHNwaW5fbG9jaygmdi0+dnBjaS5wZGV2LT52cGNpLT5sb2NrKTsKLSAgICAgICAg LyogRGlzYWJsZSBtZW1vcnkgZGVjb2RpbmcgdW5jb25kaXRpb25hbGx5IG9uIGZhaWx1cmUuICov Ci0gICAgICAgIG1vZGlmeV9kZWNvZGluZyh2LT52cGNpLnBkZXYsICFyYyAmJiB2LT52cGNpLm1h cCwKLSAgICAgICAgICAgICAgICAgICAgICAgICFyYyAmJiB2LT52cGNpLnJvbV9vbmx5KTsKLSAg ICAgICAgc3Bpbl91bmxvY2soJnYtPnZwY2kucGRldi0+dnBjaS0+bG9jayk7Ci0KLSAgICAgICAg cmFuZ2VzZXRfZGVzdHJveSh2LT52cGNpLm1lbSk7Ci0gICAgICAgIHYtPnZwY2kubWVtID0gTlVM TDsKLSAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogRklY TUU6IGluIGNhc2Ugb2YgZmFpbHVyZSByZW1vdmUgdGhlIGRldmljZSBmcm9tIHRoZSBkb21haW4u Ci0gICAgICAgICAgICAgKiBOb3RlIHRoYXQgdGhlcmUgbWlnaHQgc3RpbGwgYmUgbGVmdG92ZXIg bWFwcGluZ3MuIFdoaWxlIHRoaXMgaXMKLSAgICAgICAgICAgICAqIHNhZmUgZm9yIERvbTAsIGZv ciBEb21VcyB0aGUgZG9tYWluIHdpbGwgbGlrZWx5IG5lZWQgdG8gYmUKLSAgICAgICAgICAgICAq IGtpbGxlZCBpbiBvcmRlciB0byBhdm9pZCBsZWFraW5nIHN0YWxlIHAybSBtYXBwaW5ncyBvbgot ICAgICAgICAgICAgICogZmFpbHVyZS4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgdnBj aV9yZW1vdmVfZGV2aWNlKHYtPnZwY2kucGRldik7CisgICAgICAgIHRhc2tsZXRfc2NoZWR1bGUo JnYtPnZwY2kudGFzayk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICByZXR1cm4gZmFs c2U7CisgICAgc3Bpbl9sb2NrKCZ2LT52cGNpLnBkZXYtPnZwY2ktPmxvY2spOworICAgIC8qIERp c2FibGUgbWVtb3J5IGRlY29kaW5nIHVuY29uZGl0aW9uYWxseSBvbiBmYWlsdXJlLiAqLworICAg IG1vZGlmeV9kZWNvZGluZyh2LT52cGNpLnBkZXYsICFyYyAmJiB2LT52cGNpLm1hcCwKKyAgICAg ICAgICAgICAgICAgICAgIXJjICYmIHYtPnZwY2kucm9tX29ubHkpOworICAgIHNwaW5fdW5sb2Nr KCZ2LT52cGNpLnBkZXYtPnZwY2ktPmxvY2spOworCisgICAgcmFuZ2VzZXRfZGVzdHJveSh2LT52 cGNpLm1lbSk7CisgICAgdi0+dnBjaS5tZW0gPSBOVUxMOworICAgIGlmICggcmMgKQorICAgICAg ICAvKgorICAgICAgICAgKiBGSVhNRTogaW4gY2FzZSBvZiBmYWlsdXJlIHJlbW92ZSB0aGUgZGV2 aWNlIGZyb20gdGhlIGRvbWFpbi4KKyAgICAgICAgICogTm90ZSB0aGF0IHRoZXJlIG1pZ2h0IHN0 aWxsIGJlIGxlZnRvdmVyIG1hcHBpbmdzLiBXaGlsZSB0aGlzIGlzCisgICAgICAgICAqIHNhZmUg Zm9yIERvbTAsIGZvciBEb21VcyB0aGUgZG9tYWluIHdpbGwgbGlrZWx5IG5lZWQgdG8gYmUKKyAg ICAgICAgICoga2lsbGVkIGluIG9yZGVyIHRvIGF2b2lkIGxlYWtpbmcgc3RhbGUgcDJtIG1hcHBp bmdzIG9uCisgICAgICAgICAqIGZhaWx1cmUuCisgICAgICAgICAqLworICAgICAgICB2cGNpX3Jl bW92ZV9kZXZpY2Uodi0+dnBjaS5wZGV2KTsKKworICAgIHZjcHVfdW5wYXVzZSh2KTsKK30KKwor dm9pZCB2cGNpX2luaXRfdmNwdShzdHJ1Y3QgdmNwdSAqdikKK3sKKyAgICB0YXNrbGV0X2luaXQo JnYtPnZwY2kudGFzaywgdnBjaV9wcm9jZXNzX3BlbmRpbmcsICh1bnNpZ25lZCBsb25nKXYpOwog fQogCiBzdGF0aWMgaW50IF9faW5pdCBhcHBseV9tYXAoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qg c3RydWN0IHBjaV9kZXYgKnBkZXYsCkBAIC0xODMsNiArMTkyLDkgQEAgc3RhdGljIHZvaWQgZGVm ZXJfbWFwKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogICAgIGN1cnIt PnZwY2kubWVtID0gbWVtOwogICAgIGN1cnItPnZwY2kubWFwID0gbWFwOwogICAgIGN1cnItPnZw Y2kucm9tX29ubHkgPSByb21fb25seTsKKyAgICAvKiBQYXVzZSB0aGUgdkNQVSBhbmQgc2NoZWR1 bGUgdGhlIHRhc2tsZXQgdGhhdCB3aWxsIHBlcmZvcm0gdGhlIG1hcHBpbmcuICovCisgICAgdmNw dV9wYXVzZV9ub3N5bmMoY3Vycik7CisgICAgdGFza2xldF9zY2hlZHVsZSgmY3Vyci0+dnBjaS50 YXNrKTsKIH0KIAogc3RhdGljIGludCBtb2RpZnlfYmFycyhjb25zdCBzdHJ1Y3QgcGNpX2RldiAq cGRldiwgYm9vbCBtYXAsIGJvb2wgcm9tX29ubHkpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 ZW4vdnBjaS5oIGIveGVuL2luY2x1ZGUveGVuL3ZwY2kuaAppbmRleCBhZjJiODU4MGVlLi5mOTdj NDhhOGYxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oCisrKyBiL3hlbi9pbmNs dWRlL3hlbi92cGNpLmgKQEAgLTQ5LDExICs0OSw4IEBAIHVpbnQzMl90IHZwY2lfaHdfcmVhZDE2 KGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLAogdWludDMyX3Qg dnBjaV9od19yZWFkMzIoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBy ZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhKTsKIAotLyoKLSAqIENoZWNr IGZvciBwZW5kaW5nIHZQQ0kgb3BlcmF0aW9ucyBvbiB0aGlzIHZjcHUuIFJldHVybnMgdHJ1ZSBp ZiB0aGUgdmNwdQotICogc2hvdWxkIG5vdCBydW4uCi0gKi8KLWJvb2wgX19tdXN0X2NoZWNrIHZw Y2lfcHJvY2Vzc19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2KTsKKy8qIEluaXQgcGVyLXZDUFUgdlBD SSBkYXRhLiAqLwordm9pZCB2cGNpX2luaXRfdmNwdShzdHJ1Y3QgdmNwdSAqdik7CiAKIHN0cnVj dCB2cGNpIHsKICAgICAvKiBMaXN0IG9mIHZQQ0kgaGFuZGxlcnMgZm9yIGEgZGV2aWNlLiAqLwpA QCAtMTQyLDYgKzEzOSw4IEBAIHN0cnVjdCB2cGNpIHsKIH07CiAKIHN0cnVjdCB2cGNpX3ZjcHUg eworICAgIC8qIFBlci12Q1BVIHRhc2tsZXQgdG8gZW5xdWV1ZSBwZW5kaW5nIG9wZXJhdGlvbnMu ICovCisgICAgc3RydWN0IHRhc2tsZXQgdGFzazsKICAgICAvKiBQZXItdmNwdSBzdHJ1Y3R1cmUg dG8gc3RvcmUgc3RhdGUgd2hpbGUge3VufW1hcHBpbmcgb2YgUENJIEJBUnMuICovCiAgICAgc3Ry dWN0IHJhbmdlc2V0ICptZW07CiAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXY7CkBAIC0yMzMsMTEg KzIzMiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2cGNpX3dyaXRlKHBjaV9zYmRmX3Qgc2JkZiwg dW5zaWduZWQgaW50IHJlZywKICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKIH0KIAotc3RhdGlj IGlubGluZSBib29sIHZwY2lfcHJvY2Vzc19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2KQotewotICAg IEFTU0VSVF9VTlJFQUNIQUJMRSgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KK3N0YXRpYyBpbmxp bmUgdm9pZCB2cGNpX2luaXRfdmNwdShzdHJ1Y3QgdmNwdSAqdikgeyB9CiAjZW5kaWYKIAogI2Vu ZGlmCi0tIAoyLjE5LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs