From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v1 02/13] xen/pvcalls: connect to the backend Date: Fri, 21 Jul 2017 17:11:52 -0700 Message-ID: <1500682323-25940-2-git-send-email-sstabellini@kernel.org> References: <1500682323-25940-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: <1500682323-25940-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 SW1wbGVtZW50IHRoZSBwcm9iZSBmdW5jdGlvbiBmb3IgdGhlIHB2Y2FsbHMgZnJvbnRlbmQuIFJl YWQgdGhlCnN1cHBvcnRlZCB2ZXJzaW9ucywgbWF4LXBhZ2Utb3JkZXIgYW5kIGZ1bmN0aW9uLWNh bGxzIG5vZGVzIGZyb20KeGVuc3RvcmUuCgpJbnRyb2R1Y2UgYSBkYXRhIHN0cnVjdHVyZSBuYW1l ZCBwdmNhbGxzX2JlZGF0YS4gSXQgY29udGFpbnMgcG9pbnRlcnMgdG8KdGhlIGNvbW1hbmQgcmlu ZywgdGhlIGV2ZW50IGNoYW5uZWwsIGEgbGlzdCBvZiBhY3RpdmUgc29ja2V0cyBhbmQgYSBsaXN0 Cm9mIHBhc3NpdmUgc29ja2V0cy4gTGlzdHMgYWNjZXNzZXMgYXJlIHByb3RlY3RlZCBieSBhIHNw aW5fbG9jay4KCkludHJvZHVjZSBhIHdhaXRxdWV1ZSB0byBhbGxvdyB3YWl0aW5nIGZvciBhIHJl c3BvbnNlIG9uIGNvbW1hbmRzIHNlbnQKdG8gdGhlIGJhY2tlbmQuCgpJbnRyb2R1Y2UgYW4gYXJy YXkgb2Ygc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3BvbnNlIHRvIHN0b3JlIGNvbW1hbmRzCnJlc3Bv bnNlcy4KCk9ubHkgb25lIGZyb250ZW5kPC0+YmFja2VuZCBjb25uZWN0aW9uIGlzIHN1cHBvcnRl ZCBhdCBhbnkgZ2l2ZW4gdGltZQpmb3IgYSBndWVzdC4gU3RvcmUgdGhlIGFjdGl2ZSBmcm9udGVu ZCBkZXZpY2UgdG8gYSBzdGF0aWMgcG9pbnRlci4KCkludHJvZHVjZSBhIHN0dWIgZnVuY3Rpb25z IGZvciB0aGUgZXZlbnQgaGFuZGxlci4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGlu aSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KQ0M6IGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tCkND OiBqZ3Jvc3NAc3VzZS5jb20KLS0tCiBkcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMgfCAxNTMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFu Z2VkLCAxNTMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3B2Y2FsbHMt ZnJvbnQuYyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYwppbmRleCAxNzNlMjA0Li5mYjA4 ZWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMKKysrIGIvZHJpdmVy cy94ZW4vcHZjYWxscy1mcm9udC5jCkBAIC0yMCw2ICsyMCwyOSBAQAogI2luY2x1ZGUgPHhlbi94 ZW5idXMuaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2lvL3B2Y2FsbHMuaD4KIAorI2RlZmlu ZSBQVkNBTExTX0lOVkFMSURfSUQgKFVJTlRfTUFYKQorI2RlZmluZSBSSU5HX09SREVSIFhFTkJV U19NQVhfUklOR19HUkFOVF9PUkRFUgorI2RlZmluZSBQVkNBTExTX05SX1JFUV9QRVJfUklORyBf X0NPTlNUX1JJTkdfU0laRSh4ZW5fcHZjYWxscywgWEVOX1BBR0VfU0laRSkKKworc3RydWN0IHB2 Y2FsbHNfYmVkYXRhIHsKKwlzdHJ1Y3QgeGVuX3B2Y2FsbHNfZnJvbnRfcmluZyByaW5nOworCWdy YW50X3JlZl90IHJlZjsKKwlpbnQgaXJxOworCisJc3RydWN0IGxpc3RfaGVhZCBzb2NrZXRfbWFw cGluZ3M7CisJc3RydWN0IGxpc3RfaGVhZCBzb2NrZXRwYXNzX21hcHBpbmdzOworCXNwaW5sb2Nr X3QgcHZjYWxsc3NfbG9jazsKKworCXdhaXRfcXVldWVfaGVhZF90IGluZmxpZ2h0X3JlcTsKKwlz dHJ1Y3QgeGVuX3B2Y2FsbHNfcmVzcG9uc2UgcnNwW1BWQ0FMTFNfTlJfUkVRX1BFUl9SSU5HXTsK K307CitzdHJ1Y3QgeGVuYnVzX2RldmljZSAqcHZjYWxsc19mcm9udF9kZXY7CisKK3N0YXRpYyBp cnFyZXR1cm5fdCBwdmNhbGxzX2Zyb250X2V2ZW50X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2 X2lkKQoreworCXJldHVybiBJUlFfSEFORExFRDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCB4 ZW5idXNfZGV2aWNlX2lkIHB2Y2FsbHNfZnJvbnRfaWRzW10gPSB7CiAJeyAicHZjYWxscyIgfSwK IAl7ICIiIH0KQEAgLTMzLDcgKzU2LDExNCBAQCBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRfcmVt b3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCiBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRf cHJvYmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAkJCSAgY29uc3Qgc3RydWN0IHhlbmJ1 c19kZXZpY2VfaWQgKmlkKQogeworCWludCByZXQgPSAtRUZBVUxULCBldnRjaG4sIHJlZiA9IC0x LCBpOworCXVuc2lnbmVkIGludCBtYXhfcGFnZV9vcmRlciwgZnVuY3Rpb25fY2FsbHMsIGxlbjsK KwljaGFyICp2ZXJzaW9uczsKKwlncmFudF9yZWZfdCBncmVmX2hlYWQgPSAwOworCXN0cnVjdCB4 ZW5idXNfdHJhbnNhY3Rpb24geGJ0OworCXN0cnVjdCBwdmNhbGxzX2JlZGF0YSAqYmVkYXRhID0g TlVMTDsKKwlzdHJ1Y3QgeGVuX3B2Y2FsbHNfc3JpbmcgKnNyaW5nOworCisJaWYgKHB2Y2FsbHNf ZnJvbnRfZGV2ICE9IE5VTEwpIHsKKwkJZGV2X2VycigmZGV2LT5kZXYsICJvbmx5IG9uZSBQViBD YWxscyBjb25uZWN0aW9uIHN1cHBvcnRlZFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwor CXZlcnNpb25zID0geGVuYnVzX3JlYWQoWEJUX05JTCwgZGV2LT5vdGhlcmVuZCwgInZlcnNpb25z IiwgJmxlbik7CisJaWYgKCFsZW4pCisJCXJldHVybiAtRUlOVkFMOworCWlmIChzdHJjbXAodmVy c2lvbnMsICIxIikpIHsKKwkJa2ZyZWUodmVyc2lvbnMpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9 CisJa2ZyZWUodmVyc2lvbnMpOworCXJldCA9IHhlbmJ1c19zY2FuZihYQlRfTklMLCBkZXYtPm90 aGVyZW5kLAorCQkJICAgIm1heC1wYWdlLW9yZGVyIiwgIiV1IiwgJm1heF9wYWdlX29yZGVyKTsK KwlpZiAocmV0IDw9IDApCisJCXJldHVybiAtRU5PREVWOworCWlmIChtYXhfcGFnZV9vcmRlciA8 IFJJTkdfT1JERVIpCisJCXJldHVybiAtRU5PREVWOworCXJldCA9IHhlbmJ1c19zY2FuZihYQlRf TklMLCBkZXYtPm90aGVyZW5kLAorCQkJICAgImZ1bmN0aW9uLWNhbGxzIiwgIiV1IiwgJmZ1bmN0 aW9uX2NhbGxzKTsKKwlpZiAocmV0IDw9IDAgfHwgZnVuY3Rpb25fY2FsbHMgIT0gMSkKKwkJcmV0 dXJuIC1FTk9ERVY7CisJcHJfaW5mbygiJXMgbWF4LXBhZ2Utb3JkZXIgaXMgJXVcbiIsIF9fZnVu Y19fLCBtYXhfcGFnZV9vcmRlcik7CisKKwliZWRhdGEgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qg cHZjYWxsc19iZWRhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWJlZGF0YSkKKwkJcmV0dXJuIC1F Tk9NRU07CisKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZiZWRhdGEtPmluZmxpZ2h0X3JlcSk7CisJ Zm9yIChpID0gMDsgaSA8IFBWQ0FMTFNfTlJfUkVRX1BFUl9SSU5HOyBpKyspCisJCWJlZGF0YS0+ cnNwW2ldLnJlcV9pZCA9IFBWQ0FMTFNfSU5WQUxJRF9JRDsKKworCXNyaW5nID0gKHN0cnVjdCB4 ZW5fcHZjYWxsc19zcmluZyAqKSBfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8CisJCQkJCQkJ ICAgICBfX0dGUF9aRVJPKTsKKwlpZiAoIXNyaW5nKQorCQlnb3RvIGVycm9yOworCVNIQVJFRF9S SU5HX0lOSVQoc3JpbmcpOworCUZST05UX1JJTkdfSU5JVCgmYmVkYXRhLT5yaW5nLCBzcmluZywg WEVOX1BBR0VfU0laRSk7CisKKwlyZXQgPSB4ZW5idXNfYWxsb2NfZXZ0Y2huKGRldiwgJmV2dGNo bik7CisJaWYgKHJldCkKKwkJZ290byBlcnJvcjsKKworCWJlZGF0YS0+aXJxID0gYmluZF9ldnRj aG5fdG9faXJxaGFuZGxlcihldnRjaG4sCisJCQkJCQlwdmNhbGxzX2Zyb250X2V2ZW50X2hhbmRs ZXIsCisJCQkJCQkwLCAicHZjYWxscy1mcm9udGVuZCIsIGRldik7CisJaWYgKGJlZGF0YS0+aXJx IDwgMCkgeworCQlyZXQgPSBiZWRhdGEtPmlycTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwlyZXQg PSBnbnR0YWJfYWxsb2NfZ3JhbnRfcmVmZXJlbmNlcygxLCAmZ3JlZl9oZWFkKTsKKwlpZiAocmV0 IDwgMCkKKwkJZ290byBlcnJvcjsKKwliZWRhdGEtPnJlZiA9IHJlZiA9IGdudHRhYl9jbGFpbV9n cmFudF9yZWZlcmVuY2UoJmdyZWZfaGVhZCk7CisJaWYgKHJlZiA8IDApCisJCWdvdG8gZXJyb3I7 CisJZ250dGFiX2dyYW50X2ZvcmVpZ25fYWNjZXNzX3JlZihyZWYsIGRldi0+b3RoZXJlbmRfaWQs CisJCQkJCXZpcnRfdG9fZ2ZuKCh2b2lkICopc3JpbmcpLCAwKTsKKworIGFnYWluOgorCXJldCA9 IHhlbmJ1c190cmFuc2FjdGlvbl9zdGFydCgmeGJ0KTsKKwlpZiAocmV0KSB7CisJCXhlbmJ1c19k ZXZfZmF0YWwoZGV2LCByZXQsICJzdGFydGluZyB0cmFuc2FjdGlvbiIpOworCQlnb3RvIGVycm9y OworCX0KKwlyZXQgPSB4ZW5idXNfcHJpbnRmKHhidCwgZGV2LT5ub2RlbmFtZSwgInZlcnNpb24i LCAiJXUiLCAxKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycm9yX3hlbmJ1czsKKwlyZXQgPSB4ZW5i dXNfcHJpbnRmKHhidCwgZGV2LT5ub2RlbmFtZSwgInJpbmctcmVmIiwgIiVkIiwgcmVmKTsKKwlp ZiAocmV0KQorCQlnb3RvIGVycm9yX3hlbmJ1czsKKwlyZXQgPSB4ZW5idXNfcHJpbnRmKHhidCwg ZGV2LT5ub2RlbmFtZSwgInBvcnQiLCAiJXUiLAorCQkJICAgIGV2dGNobik7CisJaWYgKHJldCkK KwkJZ290byBlcnJvcl94ZW5idXM7CisJcmV0ID0geGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQs IDApOworCWlmIChyZXQpIHsKKwkJaWYgKHJldCA9PSAtRUFHQUlOKQorCQkJZ290byBhZ2FpbjsK KwkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIHJldCwgImNvbXBsZXRpbmcgdHJhbnNhY3Rpb24iKTsK KwkJZ290byBlcnJvcjsKKwl9CisKKwlJTklUX0xJU1RfSEVBRCgmYmVkYXRhLT5zb2NrZXRfbWFw cGluZ3MpOworCUlOSVRfTElTVF9IRUFEKCZiZWRhdGEtPnNvY2tldHBhc3NfbWFwcGluZ3MpOwor CXNwaW5fbG9ja19pbml0KCZiZWRhdGEtPnB2Y2FsbHNzX2xvY2spOworCWRldl9zZXRfZHJ2ZGF0 YSgmZGV2LT5kZXYsIGJlZGF0YSk7CisJcHZjYWxsc19mcm9udF9kZXYgPSBkZXY7CisJeGVuYnVz X3N3aXRjaF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQpOworCiAJcmV0dXJuIDA7 CisKKyBlcnJvcl94ZW5idXM6CisJeGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDEpOworCXhl bmJ1c19kZXZfZmF0YWwoZGV2LCByZXQsICJ3cml0aW5nIHhlbnN0b3JlIik7CisgZXJyb3I6CisJ cHZjYWxsc19mcm9udF9yZW1vdmUoZGV2KTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50 IHB2Y2FsbHNfZnJvbnRfcmVzdW1lKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCkBAIC00NSw2 ICsxNzUsMjkgQEAgc3RhdGljIGludCBwdmNhbGxzX2Zyb250X3Jlc3VtZShzdHJ1Y3QgeGVuYnVz X2RldmljZSAqZGV2KQogc3RhdGljIHZvaWQgcHZjYWxsc19mcm9udF9jaGFuZ2VkKHN0cnVjdCB4 ZW5idXNfZGV2aWNlICpkZXYsCiAJCQkgICAgZW51bSB4ZW5idXNfc3RhdGUgYmFja2VuZF9zdGF0 ZSkKIHsKKwlzd2l0Y2ggKGJhY2tlbmRfc3RhdGUpIHsKKwljYXNlIFhlbmJ1c1N0YXRlUmVjb25m aWd1cmluZzoKKwljYXNlIFhlbmJ1c1N0YXRlUmVjb25maWd1cmVkOgorCWNhc2UgWGVuYnVzU3Rh dGVJbml0aWFsaXNpbmc6CisJY2FzZSBYZW5idXNTdGF0ZUluaXRpYWxpc2VkOgorCWNhc2UgWGVu YnVzU3RhdGVVbmtub3duOgorCQlicmVhazsKKworCWNhc2UgWGVuYnVzU3RhdGVJbml0V2FpdDoK KwkJYnJlYWs7CisKKwljYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVkOgorCQl4ZW5idXNfc3dpdGNo X3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDb25uZWN0ZWQpOworCQlicmVhazsKKworCWNhc2UgWGVu YnVzU3RhdGVDbG9zZWQ6CisJCWlmIChkZXYtPnN0YXRlID09IFhlbmJ1c1N0YXRlQ2xvc2VkKQor CQkJYnJlYWs7CisJCS8qIE1pc3NlZCB0aGUgYmFja2VuZCdzIENMT1NJTkcgc3RhdGUgLS0gZmFs bHRocm91Z2ggKi8KKwljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKKwkJeGVuYnVzX2Zyb250ZW5k X2Nsb3NlZChkZXYpOworCQlicmVhazsKKwl9CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgeGVuYnVzX2Ry aXZlciBwdmNhbGxzX2Zyb250X2RyaXZlciA9IHsKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==