From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v4 04/18] xen/pvcalls: xenbus state handling Date: Thu, 15 Jun 2017 12:09:33 -0700 Message-ID: <1497553787-3709-4-git-send-email-sstabellini@kernel.org> References: <1497553787-3709-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: <1497553787-3709-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 LQogZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMgfCAxNTIgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTUyIGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYyBiL2RyaXZlcnMveGVu L3B2Y2FsbHMtYmFjay5jCmluZGV4IDkwNDRjZjIuLjdiY2U3NTAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMveGVuL3B2Y2FsbHMtYmFjay5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCkBA IC0yNSwyMCArMjUsMTcyIEBACiAjaW5jbHVkZSA8eGVuL3hlbmJ1cy5oPgogI2luY2x1ZGUgPHhl bi9pbnRlcmZhY2UvaW8vcHZjYWxscy5oPgogCisjZGVmaW5lIFBWQ0FMTFNfVkVSU0lPTlMgIjEi CisjZGVmaW5lIE1BWF9SSU5HX09SREVSIFhFTkJVU19NQVhfUklOR19HUkFOVF9PUkRFUgorCiBz dHJ1Y3QgcHZjYWxsc19iYWNrX2dsb2JhbCB7CiAJc3RydWN0IGxpc3RfaGVhZCBmcm9udGVuZHM7 CiAJc3RydWN0IHNlbWFwaG9yZSBmcm9udGVuZHNfbG9jazsKIH0gcHZjYWxsc19iYWNrX2dsb2Jh bDsKIAorc3RhdGljIGludCBiYWNrZW5kX2Nvbm5lY3Qoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRl dikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiYWNrZW5kX2Rpc2Nvbm5lY3Qoc3Ry dWN0IHhlbmJ1c19kZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBw dmNhbGxzX2JhY2tfcHJvYmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAkJCSAgICAgIGNv bnN0IHN0cnVjdCB4ZW5idXNfZGV2aWNlX2lkICppZCkKIHsKKwlpbnQgZXJyLCBhYm9ydDsKKwlz dHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKKworYWdhaW46CisJYWJvcnQgPSAxOworCisJ ZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworCWlmIChlcnIpIHsKKwkJcHJf d2FybigiJXMgY2Fubm90IGNyZWF0ZSB4ZW5zdG9yZSB0cmFuc2FjdGlvblxuIiwgX19mdW5jX18p OworCQlyZXR1cm4gZXJyOworCX0KKworCWVyciA9IHhlbmJ1c19wcmludGYoeGJ0LCBkZXYtPm5v ZGVuYW1lLCAidmVyc2lvbnMiLCAiJXMiLAorCQkJICAgIFBWQ0FMTFNfVkVSU0lPTlMpOworCWlm IChlcnIpIHsKKwkJcHJfd2FybigiJXMgd3JpdGUgb3V0ICd2ZXJzaW9uJyBmYWlsZWRcbiIsIF9f ZnVuY19fKTsKKwkJZ290byBhYm9ydDsKKwl9CisKKwllcnIgPSB4ZW5idXNfcHJpbnRmKHhidCwg ZGV2LT5ub2RlbmFtZSwgIm1heC1wYWdlLW9yZGVyIiwgIiV1IiwKKwkJCSAgICBNQVhfUklOR19P UkRFUik7CisJaWYgKGVycikgeworCQlwcl93YXJuKCIlcyB3cml0ZSBvdXQgJ21heC1wYWdlLW9y ZGVyJyBmYWlsZWRcbiIsIF9fZnVuY19fKTsKKwkJZ290byBhYm9ydDsKKwl9CisKKwllcnIgPSB4 ZW5idXNfcHJpbnRmKHhidCwgZGV2LT5ub2RlbmFtZSwgImZ1bmN0aW9uLWNhbGxzIiwKKwkJCSAg ICBYRU5CVVNfRlVOQ1RJT05TX0NBTExTKTsKKwlpZiAoZXJyKSB7CisJCXByX3dhcm4oIiVzIHdy aXRlIG91dCAnZnVuY3Rpb24tY2FsbHMnIGZhaWxlZFxuIiwgX19mdW5jX18pOworCQlnb3RvIGFi b3J0OworCX0KKworCWFib3J0ID0gMDsKK2Fib3J0OgorCWVyciA9IHhlbmJ1c190cmFuc2FjdGlv bl9lbmQoeGJ0LCBhYm9ydCk7CisJaWYgKGVycikgeworCQlpZiAoZXJyID09IC1FQUdBSU4gJiYg IWFib3J0KQorCQkJZ290byBhZ2FpbjsKKwkJcHJfd2FybigiJXMgY2Fubm90IGNvbXBsZXRlIHhl bnN0b3JlIHRyYW5zYWN0aW9uXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiBlcnI7CisJfQorCisJ eGVuYnVzX3N3aXRjaF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlSW5pdFdhaXQpOworCiAJcmV0dXJu IDA7CiB9CiAKK3N0YXRpYyB2b2lkIHNldF9iYWNrZW5kX3N0YXRlKHN0cnVjdCB4ZW5idXNfZGV2 aWNlICpkZXYsCisJCQkgICAgICBlbnVtIHhlbmJ1c19zdGF0ZSBzdGF0ZSkKK3sKKwl3aGlsZSAo ZGV2LT5zdGF0ZSAhPSBzdGF0ZSkgeworCQlzd2l0Y2ggKGRldi0+c3RhdGUpIHsKKwkJY2FzZSBY ZW5idXNTdGF0ZUNsb3NlZDoKKwkJCXN3aXRjaCAoc3RhdGUpIHsKKwkJCWNhc2UgWGVuYnVzU3Rh dGVJbml0V2FpdDoKKwkJCWNhc2UgWGVuYnVzU3RhdGVDb25uZWN0ZWQ6CisJCQkJeGVuYnVzX3N3 aXRjaF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlSW5pdFdhaXQpOworCQkJCWJyZWFrOworCQkJY2Fz ZSBYZW5idXNTdGF0ZUNsb3Npbmc6CisJCQkJeGVuYnVzX3N3aXRjaF9zdGF0ZShkZXYsIFhlbmJ1 c1N0YXRlQ2xvc2luZyk7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCV9fV0FSTigpOwor CQkJfQorCQkJYnJlYWs7CisJCWNhc2UgWGVuYnVzU3RhdGVJbml0V2FpdDoKKwkJY2FzZSBYZW5i dXNTdGF0ZUluaXRpYWxpc2VkOgorCQkJc3dpdGNoIChzdGF0ZSkgeworCQkJY2FzZSBYZW5idXNT dGF0ZUNvbm5lY3RlZDoKKwkJCQliYWNrZW5kX2Nvbm5lY3QoZGV2KTsKKwkJCQl4ZW5idXNfc3dp dGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDb25uZWN0ZWQpOworCQkJCWJyZWFrOworCQkJY2Fz ZSBYZW5idXNTdGF0ZUNsb3Npbmc6CisJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2VkOgorCQkJCXhl bmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NpbmcpOworCQkJCWJyZWFrOwor CQkJZGVmYXVsdDoKKwkJCQlfX1dBUk4oKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFhlbmJ1 c1N0YXRlQ29ubmVjdGVkOgorCQkJc3dpdGNoIChzdGF0ZSkgeworCQkJY2FzZSBYZW5idXNTdGF0 ZUluaXRXYWl0OgorCQkJY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6CisJCQljYXNlIFhlbmJ1c1N0 YXRlQ2xvc2VkOgorCQkJCWRvd24oJnB2Y2FsbHNfYmFja19nbG9iYWwuZnJvbnRlbmRzX2xvY2sp OworCQkJCWJhY2tlbmRfZGlzY29ubmVjdChkZXYpOworCQkJCXVwKCZwdmNhbGxzX2JhY2tfZ2xv YmFsLmZyb250ZW5kc19sb2NrKTsKKwkJCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVz U3RhdGVDbG9zaW5nKTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJX19XQVJOKCk7CisJ CQl9CisJCQlicmVhazsKKwkJY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6CisJCQlzd2l0Y2ggKHN0 YXRlKSB7CisJCQljYXNlIFhlbmJ1c1N0YXRlSW5pdFdhaXQ6CisJCQljYXNlIFhlbmJ1c1N0YXRl Q29ubmVjdGVkOgorCQkJY2FzZSBYZW5idXNTdGF0ZUNsb3NlZDoKKwkJCQl4ZW5idXNfc3dpdGNo X3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDbG9zZWQpOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoK KwkJCQlfX1dBUk4oKTsKKwkJCX0KKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJX19XQVJOKCk7 CisJCX0KKwl9Cit9CisKIHN0YXRpYyB2b2lkIHB2Y2FsbHNfYmFja19jaGFuZ2VkKHN0cnVjdCB4 ZW5idXNfZGV2aWNlICpkZXYsCiAJCQkJIGVudW0geGVuYnVzX3N0YXRlIGZyb250ZW5kX3N0YXRl KQogeworCXN3aXRjaCAoZnJvbnRlbmRfc3RhdGUpIHsKKwljYXNlIFhlbmJ1c1N0YXRlSW5pdGlh bGlzaW5nOgorCQlzZXRfYmFja2VuZF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlSW5pdFdhaXQpOwor CQlicmVhazsKKworCWNhc2UgWGVuYnVzU3RhdGVJbml0aWFsaXNlZDoKKwljYXNlIFhlbmJ1c1N0 YXRlQ29ubmVjdGVkOgorCQlzZXRfYmFja2VuZF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlQ29ubmVj dGVkKTsKKwkJYnJlYWs7CisKKwljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKKwkJc2V0X2JhY2tl bmRfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NpbmcpOworCQlicmVhazsKKworCWNhc2UgWGVu YnVzU3RhdGVDbG9zZWQ6CisJCXNldF9iYWNrZW5kX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDbG9z ZWQpOworCQlpZiAoeGVuYnVzX2Rldl9pc19vbmxpbmUoZGV2KSkKKwkJCWJyZWFrOworCQlkZXZp Y2VfdW5yZWdpc3RlcigmZGV2LT5kZXYpOworCQlicmVhazsKKwljYXNlIFhlbmJ1c1N0YXRlVW5r bm93bjoKKwkJc2V0X2JhY2tlbmRfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NlZCk7CisJCWRl dmljZV91bnJlZ2lzdGVyKCZkZXYtPmRldik7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJeGVu YnVzX2Rldl9mYXRhbChkZXYsIC1FSU5WQUwsICJzYXcgc3RhdGUgJWQgYXQgZnJvbnRlbmQiLAor CQkJCSBmcm9udGVuZF9zdGF0ZSk7CisJCWJyZWFrOworCX0KIH0KIAogc3RhdGljIGludCBwdmNh bGxzX2JhY2tfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCi0tIAoxLjkuMQoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=