From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 04/18] xen/pvcalls: xenbus state handling Date: Fri, 19 May 2017 16:22:45 -0700 Message-ID: <1495236179-27776-4-git-send-email-sstabellini@kernel.org> References: <1495236179-27776-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: <1495236179-27776-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 bT4KQ0M6IGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tCkNDOiBqZ3Jvc3NAc3VzZS5jb20KLS0t CiBkcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYyB8IDEzNSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMzUgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jIGIvZHJpdmVycy94ZW4v cHZjYWxscy1iYWNrLmMKaW5kZXggOTA0NGNmMi4uYjRkYTEzOCAxMDA2NDQKLS0tIGEvZHJpdmVy cy94ZW4vcHZjYWxscy1iYWNrLmMKKysrIGIvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMKQEAg LTI1LDIwICsyNSwxNTUgQEAKICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CiAjaW5jbHVkZSA8eGVu L2ludGVyZmFjZS9pby9wdmNhbGxzLmg+CiAKKyNkZWZpbmUgUFZDQUxMU19WRVJTSU9OUyAiMSIK KyNkZWZpbmUgTUFYX1JJTkdfT1JERVIgWEVOQlVTX01BWF9SSU5HX0dSQU5UX09SREVSCisKIHN0 cnVjdCBwdmNhbGxzX2JhY2tfZ2xvYmFsIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGZyb250ZW5kczsK IAlzdHJ1Y3Qgc2VtYXBob3JlIGZyb250ZW5kc19sb2NrOwogfSBwdmNhbGxzX2JhY2tfZ2xvYmFs OwogCitzdGF0aWMgaW50IGJhY2tlbmRfY29ubmVjdChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2 KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJhY2tlbmRfZGlzY29ubmVjdChzdHJ1 Y3QgeGVuYnVzX2RldmljZSAqZGV2KQoreworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHB2 Y2FsbHNfYmFja19wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCQkJICAgICAgY29u c3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgKmlkKQogeworCWludCBlcnI7CisKKwllcnIgPSB4 ZW5idXNfcHJpbnRmKFhCVF9OSUwsIGRldi0+bm9kZW5hbWUsICJ2ZXJzaW9ucyIsICIlcyIsCisJ CQkgICAgUFZDQUxMU19WRVJTSU9OUyk7CisJaWYgKGVycikgeworCQlwcl93YXJuKCIlcyB3cml0 ZSBvdXQgJ3ZlcnNpb24nIGZhaWxlZFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVJTlZBTDsK Kwl9CisKKwllcnIgPSB4ZW5idXNfcHJpbnRmKFhCVF9OSUwsIGRldi0+bm9kZW5hbWUsICJtYXgt cGFnZS1vcmRlciIsICIldSIsCisJCQkgICAgTUFYX1JJTkdfT1JERVIpOworCWlmIChlcnIpIHsK KwkJcHJfd2FybigiJXMgd3JpdGUgb3V0ICdtYXgtcGFnZS1vcmRlcicgZmFpbGVkXG4iLCBfX2Z1 bmNfXyk7CisJCXJldHVybiBlcnI7CisJfQorCisJLyogIjEiIG1lYW5zIHNvY2tldCwgY29ubmVj dCwgcmVsZWFzZSwgYmluZCwgbGlzdGVuLCBhY2NlcHQgYW5kIHBvbGwqLworCWVyciA9IHhlbmJ1 c19wcmludGYoWEJUX05JTCwgZGV2LT5ub2RlbmFtZSwgImZ1bmN0aW9uLWNhbGxzIiwKKwkJCSAg ICBYRU5CVVNfRlVOQ1RJT05TX0NBTExTKTsKKwlpZiAoZXJyKSB7CisJCXByX3dhcm4oIiVzIHdy aXRlIG91dCAnZnVuY3Rpb24tY2FsbHMnIGZhaWxlZFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4g ZXJyOworCX0KKworCWVyciA9IHhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUlu aXRXYWl0KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCiAJcmV0dXJuIDA7CiB9CiAKK3N0 YXRpYyB2b2lkIHNldF9iYWNrZW5kX3N0YXRlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCisJ CQkgICAgICBlbnVtIHhlbmJ1c19zdGF0ZSBzdGF0ZSkKK3sKKwl3aGlsZSAoZGV2LT5zdGF0ZSAh PSBzdGF0ZSkgeworCQlzd2l0Y2ggKGRldi0+c3RhdGUpIHsKKwkJY2FzZSBYZW5idXNTdGF0ZUNs b3NlZDoKKwkJCXN3aXRjaCAoc3RhdGUpIHsKKwkJCWNhc2UgWGVuYnVzU3RhdGVJbml0V2FpdDoK KwkJCWNhc2UgWGVuYnVzU3RhdGVDb25uZWN0ZWQ6CisJCQkJeGVuYnVzX3N3aXRjaF9zdGF0ZShk ZXYsIFhlbmJ1c1N0YXRlSW5pdFdhaXQpOworCQkJCWJyZWFrOworCQkJY2FzZSBYZW5idXNTdGF0 ZUNsb3Npbmc6CisJCQkJeGVuYnVzX3N3aXRjaF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlQ2xvc2lu Zyk7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCV9fV0FSTigpOworCQkJfQorCQkJYnJl YWs7CisJCWNhc2UgWGVuYnVzU3RhdGVJbml0V2FpdDoKKwkJY2FzZSBYZW5idXNTdGF0ZUluaXRp YWxpc2VkOgorCQkJc3dpdGNoIChzdGF0ZSkgeworCQkJY2FzZSBYZW5idXNTdGF0ZUNvbm5lY3Rl ZDoKKwkJCQliYWNrZW5kX2Nvbm5lY3QoZGV2KTsKKwkJCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRl diwgWGVuYnVzU3RhdGVDb25uZWN0ZWQpOworCQkJCWJyZWFrOworCQkJY2FzZSBYZW5idXNTdGF0 ZUNsb3Npbmc6CisJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2VkOgorCQkJCXhlbmJ1c19zd2l0Y2hf c3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NpbmcpOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoK KwkJCQlfX1dBUk4oKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFhlbmJ1c1N0YXRlQ29ubmVj dGVkOgorCQkJc3dpdGNoIChzdGF0ZSkgeworCQkJY2FzZSBYZW5idXNTdGF0ZUluaXRXYWl0Ogor CQkJY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6CisJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2VkOgor CQkJCWRvd24oJnB2Y2FsbHNfYmFja19nbG9iYWwuZnJvbnRlbmRzX2xvY2spOworCQkJCWJhY2tl bmRfZGlzY29ubmVjdChkZXYpOworCQkJCXVwKCZwdmNhbGxzX2JhY2tfZ2xvYmFsLmZyb250ZW5k c19sb2NrKTsKKwkJCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDbG9zaW5n KTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJX19XQVJOKCk7CisJCQl9CisJCQlicmVh azsKKwkJY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6CisJCQlzd2l0Y2ggKHN0YXRlKSB7CisJCQlj YXNlIFhlbmJ1c1N0YXRlSW5pdFdhaXQ6CisJCQljYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVkOgor CQkJY2FzZSBYZW5idXNTdGF0ZUNsb3NlZDoKKwkJCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwg WGVuYnVzU3RhdGVDbG9zZWQpOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQlfX1dBUk4o KTsKKwkJCX0KKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJX19XQVJOKCk7CisJCX0KKwl9Cit9 CisKIHN0YXRpYyB2b2lkIHB2Y2FsbHNfYmFja19jaGFuZ2VkKHN0cnVjdCB4ZW5idXNfZGV2aWNl ICpkZXYsCiAJCQkJIGVudW0geGVuYnVzX3N0YXRlIGZyb250ZW5kX3N0YXRlKQogeworCXN3aXRj aCAoZnJvbnRlbmRfc3RhdGUpIHsKKwljYXNlIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nOgorCQlz ZXRfYmFja2VuZF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlSW5pdFdhaXQpOworCQlicmVhazsKKwor CWNhc2UgWGVuYnVzU3RhdGVJbml0aWFsaXNlZDoKKwljYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVk OgorCQlzZXRfYmFja2VuZF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlQ29ubmVjdGVkKTsKKwkJYnJl YWs7CisKKwljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKKwkJc2V0X2JhY2tlbmRfc3RhdGUoZGV2 LCBYZW5idXNTdGF0ZUNsb3NpbmcpOworCQlicmVhazsKKworCWNhc2UgWGVuYnVzU3RhdGVDbG9z ZWQ6CisJCXNldF9iYWNrZW5kX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDbG9zZWQpOworCQlpZiAo eGVuYnVzX2Rldl9pc19vbmxpbmUoZGV2KSkKKwkJCWJyZWFrOworCQlkZXZpY2VfdW5yZWdpc3Rl cigmZGV2LT5kZXYpOworCQlicmVhazsKKwljYXNlIFhlbmJ1c1N0YXRlVW5rbm93bjoKKwkJc2V0 X2JhY2tlbmRfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NlZCk7CisJCWRldmljZV91bnJlZ2lz dGVyKCZkZXYtPmRldik7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJeGVuYnVzX2Rldl9mYXRh bChkZXYsIC1FSU5WQUwsICJzYXcgc3RhdGUgJWQgYXQgZnJvbnRlbmQiLAorCQkJCSBmcm9udGVu ZF9zdGF0ZSk7CisJCWJyZWFrOworCX0KIH0KIAogc3RhdGljIGludCBwdmNhbGxzX2JhY2tfcmVt b3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=