From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 04/18] xen/pvcalls: xenbus state handling Date: Fri, 2 Jun 2017 12:31:41 -0700 Message-ID: <1496431915-20774-4-git-send-email-sstabellini@kernel.org> References: <1496431915-20774-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: <1496431915-20774-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 CiBkcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYyB8IDE1MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNTIgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jIGIvZHJpdmVycy94ZW4v cHZjYWxscy1iYWNrLmMKaW5kZXggOTA0NGNmMi4uN2JjZTc1MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy94ZW4vcHZjYWxscy1iYWNrLmMKKysrIGIvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMKQEAg LTI1LDIwICsyNSwxNzIgQEAKICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CiAjaW5jbHVkZSA8eGVu L2ludGVyZmFjZS9pby9wdmNhbGxzLmg+CiAKKyNkZWZpbmUgUFZDQUxMU19WRVJTSU9OUyAiMSIK KyNkZWZpbmUgTUFYX1JJTkdfT1JERVIgWEVOQlVTX01BWF9SSU5HX0dSQU5UX09SREVSCisKIHN0 cnVjdCBwdmNhbGxzX2JhY2tfZ2xvYmFsIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGZyb250ZW5kczsK IAlzdHJ1Y3Qgc2VtYXBob3JlIGZyb250ZW5kc19sb2NrOwogfSBwdmNhbGxzX2JhY2tfZ2xvYmFs OwogCitzdGF0aWMgaW50IGJhY2tlbmRfY29ubmVjdChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2 KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJhY2tlbmRfZGlzY29ubmVjdChzdHJ1 Y3QgeGVuYnVzX2RldmljZSAqZGV2KQoreworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHB2 Y2FsbHNfYmFja19wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCQkJICAgICAgY29u c3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgKmlkKQogeworCWludCBlcnIsIGFib3J0OworCXN0 cnVjdCB4ZW5idXNfdHJhbnNhY3Rpb24geGJ0OworCithZ2FpbjoKKwlhYm9ydCA9IDE7CisKKwll cnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fc3RhcnQoJnhidCk7CisJaWYgKGVycikgeworCQlwcl93 YXJuKCIlcyBjYW5ub3QgY3JlYXRlIHhlbnN0b3JlIHRyYW5zYWN0aW9uXG4iLCBfX2Z1bmNfXyk7 CisJCXJldHVybiBlcnI7CisJfQorCisJZXJyID0geGVuYnVzX3ByaW50Zih4YnQsIGRldi0+bm9k ZW5hbWUsICJ2ZXJzaW9ucyIsICIlcyIsCisJCQkgICAgUFZDQUxMU19WRVJTSU9OUyk7CisJaWYg KGVycikgeworCQlwcl93YXJuKCIlcyB3cml0ZSBvdXQgJ3ZlcnNpb24nIGZhaWxlZFxuIiwgX19m dW5jX18pOworCQlnb3RvIGFib3J0OworCX0KKworCWVyciA9IHhlbmJ1c19wcmludGYoeGJ0LCBk ZXYtPm5vZGVuYW1lLCAibWF4LXBhZ2Utb3JkZXIiLCAiJXUiLAorCQkJICAgIE1BWF9SSU5HX09S REVSKTsKKwlpZiAoZXJyKSB7CisJCXByX3dhcm4oIiVzIHdyaXRlIG91dCAnbWF4LXBhZ2Utb3Jk ZXInIGZhaWxlZFxuIiwgX19mdW5jX18pOworCQlnb3RvIGFib3J0OworCX0KKworCWVyciA9IHhl bmJ1c19wcmludGYoeGJ0LCBkZXYtPm5vZGVuYW1lLCAiZnVuY3Rpb24tY2FsbHMiLAorCQkJICAg IFhFTkJVU19GVU5DVElPTlNfQ0FMTFMpOworCWlmIChlcnIpIHsKKwkJcHJfd2FybigiJXMgd3Jp dGUgb3V0ICdmdW5jdGlvbi1jYWxscycgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7CisJCWdvdG8gYWJv cnQ7CisJfQorCisJYWJvcnQgPSAwOworYWJvcnQ6CisJZXJyID0geGVuYnVzX3RyYW5zYWN0aW9u X2VuZCh4YnQsIGFib3J0KTsKKwlpZiAoZXJyKSB7CisJCWlmIChlcnIgPT0gLUVBR0FJTiAmJiAh YWJvcnQpCisJCQlnb3RvIGFnYWluOworCQlwcl93YXJuKCIlcyBjYW5ub3QgY29tcGxldGUgeGVu c3RvcmUgdHJhbnNhY3Rpb25cbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwl4 ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVJbml0V2FpdCk7CisKIAlyZXR1cm4g MDsKIH0KIAorc3RhdGljIHZvaWQgc2V0X2JhY2tlbmRfc3RhdGUoc3RydWN0IHhlbmJ1c19kZXZp Y2UgKmRldiwKKwkJCSAgICAgIGVudW0geGVuYnVzX3N0YXRlIHN0YXRlKQoreworCXdoaWxlIChk ZXYtPnN0YXRlICE9IHN0YXRlKSB7CisJCXN3aXRjaCAoZGV2LT5zdGF0ZSkgeworCQljYXNlIFhl bmJ1c1N0YXRlQ2xvc2VkOgorCQkJc3dpdGNoIChzdGF0ZSkgeworCQkJY2FzZSBYZW5idXNTdGF0 ZUluaXRXYWl0OgorCQkJY2FzZSBYZW5idXNTdGF0ZUNvbm5lY3RlZDoKKwkJCQl4ZW5idXNfc3dp dGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVJbml0V2FpdCk7CisJCQkJYnJlYWs7CisJCQljYXNl IFhlbmJ1c1N0YXRlQ2xvc2luZzoKKwkJCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVz U3RhdGVDbG9zaW5nKTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJX19XQVJOKCk7CisJ CQl9CisJCQlicmVhazsKKwkJY2FzZSBYZW5idXNTdGF0ZUluaXRXYWl0OgorCQljYXNlIFhlbmJ1 c1N0YXRlSW5pdGlhbGlzZWQ6CisJCQlzd2l0Y2ggKHN0YXRlKSB7CisJCQljYXNlIFhlbmJ1c1N0 YXRlQ29ubmVjdGVkOgorCQkJCWJhY2tlbmRfY29ubmVjdChkZXYpOworCQkJCXhlbmJ1c19zd2l0 Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNvbm5lY3RlZCk7CisJCQkJYnJlYWs7CisJCQljYXNl IFhlbmJ1c1N0YXRlQ2xvc2luZzoKKwkJCWNhc2UgWGVuYnVzU3RhdGVDbG9zZWQ6CisJCQkJeGVu YnVzX3N3aXRjaF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlQ2xvc2luZyk7CisJCQkJYnJlYWs7CisJ CQlkZWZhdWx0OgorCQkJCV9fV0FSTigpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgWGVuYnVz U3RhdGVDb25uZWN0ZWQ6CisJCQlzd2l0Y2ggKHN0YXRlKSB7CisJCQljYXNlIFhlbmJ1c1N0YXRl SW5pdFdhaXQ6CisJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKKwkJCWNhc2UgWGVuYnVzU3Rh dGVDbG9zZWQ6CisJCQkJZG93bigmcHZjYWxsc19iYWNrX2dsb2JhbC5mcm9udGVuZHNfbG9jayk7 CisJCQkJYmFja2VuZF9kaXNjb25uZWN0KGRldik7CisJCQkJdXAoJnB2Y2FsbHNfYmFja19nbG9i YWwuZnJvbnRlbmRzX2xvY2spOworCQkJCXhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNT dGF0ZUNsb3NpbmcpOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQlfX1dBUk4oKTsKKwkJ CX0KKwkJCWJyZWFrOworCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKKwkJCXN3aXRjaCAoc3Rh dGUpIHsKKwkJCWNhc2UgWGVuYnVzU3RhdGVJbml0V2FpdDoKKwkJCWNhc2UgWGVuYnVzU3RhdGVD b25uZWN0ZWQ6CisJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2VkOgorCQkJCXhlbmJ1c19zd2l0Y2hf c3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NlZCk7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0Ogor CQkJCV9fV0FSTigpOworCQkJfQorCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlfX1dBUk4oKTsK KwkJfQorCX0KK30KKwogc3RhdGljIHZvaWQgcHZjYWxsc19iYWNrX2NoYW5nZWQoc3RydWN0IHhl bmJ1c19kZXZpY2UgKmRldiwKIAkJCQkgZW51bSB4ZW5idXNfc3RhdGUgZnJvbnRlbmRfc3RhdGUp CiB7CisJc3dpdGNoIChmcm9udGVuZF9zdGF0ZSkgeworCWNhc2UgWGVuYnVzU3RhdGVJbml0aWFs aXNpbmc6CisJCXNldF9iYWNrZW5kX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVJbml0V2FpdCk7CisJ CWJyZWFrOworCisJY2FzZSBYZW5idXNTdGF0ZUluaXRpYWxpc2VkOgorCWNhc2UgWGVuYnVzU3Rh dGVDb25uZWN0ZWQ6CisJCXNldF9iYWNrZW5kX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDb25uZWN0 ZWQpOworCQlicmVhazsKKworCWNhc2UgWGVuYnVzU3RhdGVDbG9zaW5nOgorCQlzZXRfYmFja2Vu ZF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlQ2xvc2luZyk7CisJCWJyZWFrOworCisJY2FzZSBYZW5i dXNTdGF0ZUNsb3NlZDoKKwkJc2V0X2JhY2tlbmRfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3Nl ZCk7CisJCWlmICh4ZW5idXNfZGV2X2lzX29ubGluZShkZXYpKQorCQkJYnJlYWs7CisJCWRldmlj ZV91bnJlZ2lzdGVyKCZkZXYtPmRldik7CisJCWJyZWFrOworCWNhc2UgWGVuYnVzU3RhdGVVbmtu b3duOgorCQlzZXRfYmFja2VuZF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlQ2xvc2VkKTsKKwkJZGV2 aWNlX3VucmVnaXN0ZXIoJmRldi0+ZGV2KTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQl4ZW5i dXNfZGV2X2ZhdGFsKGRldiwgLUVJTlZBTCwgInNhdyBzdGF0ZSAlZCBhdCBmcm9udGVuZCIsCisJ CQkJIGZyb250ZW5kX3N0YXRlKTsKKwkJYnJlYWs7CisJfQogfQogCiBzdGF0aWMgaW50IHB2Y2Fs bHNfYmFja19yZW1vdmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldikKLS0gCjEuOS4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==