From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v7 04/18] xen/pvcalls: xenbus state handling Date: Wed, 5 Jul 2017 14:50:44 -0700 Message-ID: <1499291458-30231-4-git-send-email-sstabellini@kernel.org> References: <1499291458-30231-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1499291458-30231-1-git-send-email-sstabellini@kernel.org> 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: jgross@suse.com, Stefano Stabellini , boris.ostrovsky@oracle.com, sstabellini@kernel.org, linux-kernel@vger.kernel.org List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIHRoZSBjb2RlIHRvIGhhbmRsZSB4ZW5idXMgc3RhdGUgY2hhbmdlcy4KCkltcGxl bWVudCB0aGUgcHJvYmUgZnVuY3Rpb24gZm9yIHRoZSBwdmNhbGxzIGJhY2tlbmQuIFdyaXRlIHRo ZQpzdXBwb3J0ZWQgdmVyc2lvbnMsIG1heC1wYWdlLW9yZGVyIGFuZCBmdW5jdGlvbi1jYWxscyBu b2RlcyB0byB4ZW5zdG9yZSwKYXMgcmVxdWlyZWQgYnkgdGhlIHByb3RvY29sLgoKSW50cm9kdWNl IHN0dWIgZnVuY3Rpb25zIGZvciBkaXNjb25uZWN0aW5nL2Nvbm5lY3RpbmcgdG8gYSBmcm9udGVu ZC4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFub0BhcG9yZXRvLmNv bT4KUmV2aWV3ZWQtYnk6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5j b20+CkNDOiBib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbQpDQzogamdyb3NzQHN1c2UuY29tCi0t LQogZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMgfCAxNTUgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYyBiL2RyaXZlcnMveGVu L3B2Y2FsbHMtYmFjay5jCmluZGV4IDkwNDRjZjIuLjcyZDJmY2UgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMveGVuL3B2Y2FsbHMtYmFjay5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCkBA IC0yNSwyMCArMjUsMTc1IEBACiAjaW5jbHVkZSA8eGVuL3hlbmJ1cy5oPgogI2luY2x1ZGUgPHhl bi9pbnRlcmZhY2UvaW8vcHZjYWxscy5oPgogCisjZGVmaW5lIFBWQ0FMTFNfVkVSU0lPTlMgIjEi CisjZGVmaW5lIE1BWF9SSU5HX09SREVSIFhFTkJVU19NQVhfUklOR19HUkFOVF9PUkRFUgorCiBz dHJ1Y3QgcHZjYWxsc19iYWNrX2dsb2JhbCB7CiAJc3RydWN0IGxpc3RfaGVhZCBmcm9udGVuZHM7 CiAJc3RydWN0IHNlbWFwaG9yZSBmcm9udGVuZHNfbG9jazsKIH0gcHZjYWxsc19iYWNrX2dsb2Jh bDsKIAorc3RhdGljIGludCBiYWNrZW5kX2Nvbm5lY3Qoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRl dikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiYWNrZW5kX2Rpc2Nvbm5lY3Qoc3Ry dWN0IHhlbmJ1c19kZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBw dmNhbGxzX2JhY2tfcHJvYmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAkJCSAgICAgIGNv bnN0IHN0cnVjdCB4ZW5idXNfZGV2aWNlX2lkICppZCkKIHsKKwlpbnQgZXJyLCBhYm9ydDsKKwlz dHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKKworYWdhaW46CisJYWJvcnQgPSAxOworCisJ ZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworCWlmIChlcnIpIHsKKwkJcHJf d2FybigiJXMgY2Fubm90IGNyZWF0ZSB4ZW5zdG9yZSB0cmFuc2FjdGlvblxuIiwgX19mdW5jX18p OworCQlyZXR1cm4gZXJyOworCX0KKworCWVyciA9IHhlbmJ1c19wcmludGYoeGJ0LCBkZXYtPm5v ZGVuYW1lLCAidmVyc2lvbnMiLCAiJXMiLAorCQkJICAgIFBWQ0FMTFNfVkVSU0lPTlMpOworCWlm IChlcnIpIHsKKwkJcHJfd2FybigiJXMgd3JpdGUgb3V0ICd2ZXJzaW9ucycgZmFpbGVkXG4iLCBf X2Z1bmNfXyk7CisJCWdvdG8gYWJvcnQ7CisJfQorCisJZXJyID0geGVuYnVzX3ByaW50Zih4YnQs IGRldi0+bm9kZW5hbWUsICJtYXgtcGFnZS1vcmRlciIsICIldSIsCisJCQkgICAgTUFYX1JJTkdf T1JERVIpOworCWlmIChlcnIpIHsKKwkJcHJfd2FybigiJXMgd3JpdGUgb3V0ICdtYXgtcGFnZS1v cmRlcicgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7CisJCWdvdG8gYWJvcnQ7CisJfQorCisJZXJyID0g eGVuYnVzX3ByaW50Zih4YnQsIGRldi0+bm9kZW5hbWUsICJmdW5jdGlvbi1jYWxscyIsCisJCQkg ICAgWEVOQlVTX0ZVTkNUSU9OU19DQUxMUyk7CisJaWYgKGVycikgeworCQlwcl93YXJuKCIlcyB3 cml0ZSBvdXQgJ2Z1bmN0aW9uLWNhbGxzJyBmYWlsZWRcbiIsIF9fZnVuY19fKTsKKwkJZ290byBh Ym9ydDsKKwl9CisKKwlhYm9ydCA9IDA7CithYm9ydDoKKwllcnIgPSB4ZW5idXNfdHJhbnNhY3Rp b25fZW5kKHhidCwgYWJvcnQpOworCWlmIChlcnIpIHsKKwkJaWYgKGVyciA9PSAtRUFHQUlOICYm ICFhYm9ydCkKKwkJCWdvdG8gYWdhaW47CisJCXByX3dhcm4oIiVzIGNhbm5vdCBjb21wbGV0ZSB4 ZW5zdG9yZSB0cmFuc2FjdGlvblxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gZXJyOworCX0KKwor CWlmIChhYm9ydCkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwl4ZW5idXNfc3dpdGNoX3N0YXRlKGRl diwgWGVuYnVzU3RhdGVJbml0V2FpdCk7CisKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQg c2V0X2JhY2tlbmRfc3RhdGUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKKwkJCSAgICAgIGVu dW0geGVuYnVzX3N0YXRlIHN0YXRlKQoreworCXdoaWxlIChkZXYtPnN0YXRlICE9IHN0YXRlKSB7 CisJCXN3aXRjaCAoZGV2LT5zdGF0ZSkgeworCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2VkOgorCQkJ c3dpdGNoIChzdGF0ZSkgeworCQkJY2FzZSBYZW5idXNTdGF0ZUluaXRXYWl0OgorCQkJY2FzZSBY ZW5idXNTdGF0ZUNvbm5lY3RlZDoKKwkJCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVz U3RhdGVJbml0V2FpdCk7CisJCQkJYnJlYWs7CisJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoK KwkJCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDbG9zaW5nKTsKKwkJCQli cmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJX19XQVJOKCk7CisJCQl9CisJCQlicmVhazsKKwkJY2Fz ZSBYZW5idXNTdGF0ZUluaXRXYWl0OgorCQljYXNlIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQ6CisJ CQlzd2l0Y2ggKHN0YXRlKSB7CisJCQljYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVkOgorCQkJCWJh Y2tlbmRfY29ubmVjdChkZXYpOworCQkJCXhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNT dGF0ZUNvbm5lY3RlZCk7CisJCQkJYnJlYWs7CisJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoK KwkJCWNhc2UgWGVuYnVzU3RhdGVDbG9zZWQ6CisJCQkJeGVuYnVzX3N3aXRjaF9zdGF0ZShkZXYs IFhlbmJ1c1N0YXRlQ2xvc2luZyk7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCV9fV0FS TigpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgWGVuYnVzU3RhdGVDb25uZWN0ZWQ6CisJCQlz d2l0Y2ggKHN0YXRlKSB7CisJCQljYXNlIFhlbmJ1c1N0YXRlSW5pdFdhaXQ6CisJCQljYXNlIFhl bmJ1c1N0YXRlQ2xvc2luZzoKKwkJCWNhc2UgWGVuYnVzU3RhdGVDbG9zZWQ6CisJCQkJZG93bigm cHZjYWxsc19iYWNrX2dsb2JhbC5mcm9udGVuZHNfbG9jayk7CisJCQkJYmFja2VuZF9kaXNjb25u ZWN0KGRldik7CisJCQkJdXAoJnB2Y2FsbHNfYmFja19nbG9iYWwuZnJvbnRlbmRzX2xvY2spOwor CQkJCXhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NpbmcpOworCQkJCWJy ZWFrOworCQkJZGVmYXVsdDoKKwkJCQlfX1dBUk4oKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNl IFhlbmJ1c1N0YXRlQ2xvc2luZzoKKwkJCXN3aXRjaCAoc3RhdGUpIHsKKwkJCWNhc2UgWGVuYnVz U3RhdGVJbml0V2FpdDoKKwkJCWNhc2UgWGVuYnVzU3RhdGVDb25uZWN0ZWQ6CisJCQljYXNlIFhl bmJ1c1N0YXRlQ2xvc2VkOgorCQkJCXhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0 ZUNsb3NlZCk7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCV9fV0FSTigpOworCQkJfQor CQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlfX1dBUk4oKTsKKwkJfQorCX0KK30KKwogc3RhdGlj IHZvaWQgcHZjYWxsc19iYWNrX2NoYW5nZWQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAkJ CQkgZW51bSB4ZW5idXNfc3RhdGUgZnJvbnRlbmRfc3RhdGUpCiB7CisJc3dpdGNoIChmcm9udGVu ZF9zdGF0ZSkgeworCWNhc2UgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmc6CisJCXNldF9iYWNrZW5k X3N0YXRlKGRldiwgWGVuYnVzU3RhdGVJbml0V2FpdCk7CisJCWJyZWFrOworCisJY2FzZSBYZW5i dXNTdGF0ZUluaXRpYWxpc2VkOgorCWNhc2UgWGVuYnVzU3RhdGVDb25uZWN0ZWQ6CisJCXNldF9i YWNrZW5kX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDb25uZWN0ZWQpOworCQlicmVhazsKKworCWNh c2UgWGVuYnVzU3RhdGVDbG9zaW5nOgorCQlzZXRfYmFja2VuZF9zdGF0ZShkZXYsIFhlbmJ1c1N0 YXRlQ2xvc2luZyk7CisJCWJyZWFrOworCisJY2FzZSBYZW5idXNTdGF0ZUNsb3NlZDoKKwkJc2V0 X2JhY2tlbmRfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NlZCk7CisJCWlmICh4ZW5idXNfZGV2 X2lzX29ubGluZShkZXYpKQorCQkJYnJlYWs7CisJCWRldmljZV91bnJlZ2lzdGVyKCZkZXYtPmRl dik7CisJCWJyZWFrOworCWNhc2UgWGVuYnVzU3RhdGVVbmtub3duOgorCQlzZXRfYmFja2VuZF9z dGF0ZShkZXYsIFhlbmJ1c1N0YXRlQ2xvc2VkKTsKKwkJZGV2aWNlX3VucmVnaXN0ZXIoJmRldi0+ ZGV2KTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQl4ZW5idXNfZGV2X2ZhdGFsKGRldiwgLUVJ TlZBTCwgInNhdyBzdGF0ZSAlZCBhdCBmcm9udGVuZCIsCisJCQkJIGZyb250ZW5kX3N0YXRlKTsK KwkJYnJlYWs7CisJfQogfQogCiBzdGF0aWMgaW50IHB2Y2FsbHNfYmFja19yZW1vdmUoc3RydWN0 IHhlbmJ1c19kZXZpY2UgKmRldikKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==