From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 02/13] xen/pvcalls: connect to the backend Date: Tue, 25 Jul 2017 14:21:59 -0700 Message-ID: <1501017730-12797-2-git-send-email-sstabellini@kernel.org> References: <1501017730-12797-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: <1501017730-12797-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 ZnJvbnQuYyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYwppbmRleCBhOGQzOGMyLi41ZTBi MjY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMKKysrIGIvZHJpdmVy cy94ZW4vcHZjYWxscy1mcm9udC5jCkBAIC0yMCw2ICsyMCwyOSBAQAogI2luY2x1ZGUgPHhlbi94 ZW5idXMuaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2lvL3B2Y2FsbHMuaD4KIAorI2RlZmlu ZSBQVkNBTExTX0lOVkFMSURfSUQgKFVJTlRfTUFYKQorI2RlZmluZSBSSU5HX09SREVSIFhFTkJV U19NQVhfUklOR19HUkFOVF9PUkRFUgorI2RlZmluZSBQVkNBTExTX05SX1JFUV9QRVJfUklORyBf X0NPTlNUX1JJTkdfU0laRSh4ZW5fcHZjYWxscywgWEVOX1BBR0VfU0laRSkKKworc3RydWN0IHB2 Y2FsbHNfYmVkYXRhIHsKKwlzdHJ1Y3QgeGVuX3B2Y2FsbHNfZnJvbnRfcmluZyByaW5nOworCWdy YW50X3JlZl90IHJlZjsKKwlpbnQgaXJxOworCisJc3RydWN0IGxpc3RfaGVhZCBzb2NrZXRfbWFw cGluZ3M7CisJc3RydWN0IGxpc3RfaGVhZCBzb2NrZXRwYXNzX21hcHBpbmdzOworCXNwaW5sb2Nr X3QgcHZjYWxsc3NfbG9jazsKKworCXdhaXRfcXVldWVfaGVhZF90IGluZmxpZ2h0X3JlcTsKKwlz dHJ1Y3QgeGVuX3B2Y2FsbHNfcmVzcG9uc2UgcnNwW1BWQ0FMTFNfTlJfUkVRX1BFUl9SSU5HXTsK K307CitzdHJ1Y3QgeGVuYnVzX2RldmljZSAqcHZjYWxsc19mcm9udF9kZXY7CisKK3N0YXRpYyBp cnFyZXR1cm5fdCBwdmNhbGxzX2Zyb250X2V2ZW50X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2 X2lkKQoreworCXJldHVybiBJUlFfSEFORExFRDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCB4 ZW5idXNfZGV2aWNlX2lkIHB2Y2FsbHNfZnJvbnRfaWRzW10gPSB7CiAJeyAicHZjYWxscyIgfSwK IAl7ICIiIH0KQEAgLTMzLDEyICs1NiwxNDIgQEAgc3RhdGljIGludCBwdmNhbGxzX2Zyb250X3Jl bW92ZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2KQogc3RhdGljIGludCBwdmNhbGxzX2Zyb250 X3Byb2JlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAJCQkgIGNvbnN0IHN0cnVjdCB4ZW5i dXNfZGV2aWNlX2lkICppZCkKIHsKKwlpbnQgcmV0ID0gLUVGQVVMVCwgZXZ0Y2huLCByZWYgPSAt MSwgaTsKKwl1bnNpZ25lZCBpbnQgbWF4X3BhZ2Vfb3JkZXIsIGZ1bmN0aW9uX2NhbGxzLCBsZW47 CisJY2hhciAqdmVyc2lvbnM7CisJZ3JhbnRfcmVmX3QgZ3JlZl9oZWFkID0gMDsKKwlzdHJ1Y3Qg eGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKKwlzdHJ1Y3QgcHZjYWxsc19iZWRhdGEgKmJlZGF0YSA9 IE5VTEw7CisJc3RydWN0IHhlbl9wdmNhbGxzX3NyaW5nICpzcmluZzsKKworCWlmIChwdmNhbGxz X2Zyb250X2RldiAhPSBOVUxMKSB7CisJCWRldl9lcnIoJmRldi0+ZGV2LCAib25seSBvbmUgUFYg Q2FsbHMgY29ubmVjdGlvbiBzdXBwb3J0ZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisK Kwl2ZXJzaW9ucyA9IHhlbmJ1c19yZWFkKFhCVF9OSUwsIGRldi0+b3RoZXJlbmQsICJ2ZXJzaW9u cyIsICZsZW4pOworCWlmICghbGVuKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoc3RyY21wKHZl cnNpb25zLCAiMSIpKSB7CisJCWtmcmVlKHZlcnNpb25zKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJ fQorCWtmcmVlKHZlcnNpb25zKTsKKwlyZXQgPSB4ZW5idXNfc2NhbmYoWEJUX05JTCwgZGV2LT5v dGhlcmVuZCwKKwkJCSAgICJtYXgtcGFnZS1vcmRlciIsICIldSIsICZtYXhfcGFnZV9vcmRlcik7 CisJaWYgKHJldCA8PSAwKQorCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAobWF4X3BhZ2Vfb3JkZXIg PCBSSU5HX09SREVSKQorCQlyZXR1cm4gLUVOT0RFVjsKKwlyZXQgPSB4ZW5idXNfc2NhbmYoWEJU X05JTCwgZGV2LT5vdGhlcmVuZCwKKwkJCSAgICJmdW5jdGlvbi1jYWxscyIsICIldSIsICZmdW5j dGlvbl9jYWxscyk7CisJaWYgKHJldCA8PSAwIHx8IGZ1bmN0aW9uX2NhbGxzICE9IDEpCisJCXJl dHVybiAtRU5PREVWOworCXByX2luZm8oIiVzIG1heC1wYWdlLW9yZGVyIGlzICV1XG4iLCBfX2Z1 bmNfXywgbWF4X3BhZ2Vfb3JkZXIpOworCisJYmVkYXRhID0ga3phbGxvYyhzaXplb2Yoc3RydWN0 IHB2Y2FsbHNfYmVkYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFiZWRhdGEpCisJCXJldHVybiAt RU5PTUVNOworCisJaW5pdF93YWl0cXVldWVfaGVhZCgmYmVkYXRhLT5pbmZsaWdodF9yZXEpOwor CWZvciAoaSA9IDA7IGkgPCBQVkNBTExTX05SX1JFUV9QRVJfUklORzsgaSsrKQorCQliZWRhdGEt PnJzcFtpXS5yZXFfaWQgPSBQVkNBTExTX0lOVkFMSURfSUQ7CisKKwlzcmluZyA9IChzdHJ1Y3Qg eGVuX3B2Y2FsbHNfc3JpbmcgKikgX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwgfAorCQkJCQkJ CSAgICAgX19HRlBfWkVSTyk7CisJaWYgKCFzcmluZykKKwkJZ290byBlcnJvcjsKKwlTSEFSRURf UklOR19JTklUKHNyaW5nKTsKKwlGUk9OVF9SSU5HX0lOSVQoJmJlZGF0YS0+cmluZywgc3Jpbmcs IFhFTl9QQUdFX1NJWkUpOworCisJcmV0ID0geGVuYnVzX2FsbG9jX2V2dGNobihkZXYsICZldnRj aG4pOworCWlmIChyZXQpCisJCWdvdG8gZXJyb3I7CisKKwliZWRhdGEtPmlycSA9IGJpbmRfZXZ0 Y2huX3RvX2lycWhhbmRsZXIoZXZ0Y2huLAorCQkJCQkJcHZjYWxsc19mcm9udF9ldmVudF9oYW5k bGVyLAorCQkJCQkJMCwgInB2Y2FsbHMtZnJvbnRlbmQiLCBkZXYpOworCWlmIChiZWRhdGEtPmly cSA8IDApIHsKKwkJcmV0ID0gYmVkYXRhLT5pcnE7CisJCWdvdG8gZXJyb3I7CisJfQorCisJcmV0 ID0gZ250dGFiX2FsbG9jX2dyYW50X3JlZmVyZW5jZXMoMSwgJmdyZWZfaGVhZCk7CisJaWYgKHJl dCA8IDApCisJCWdvdG8gZXJyb3I7CisJYmVkYXRhLT5yZWYgPSByZWYgPSBnbnR0YWJfY2xhaW1f Z3JhbnRfcmVmZXJlbmNlKCZncmVmX2hlYWQpOworCWlmIChyZWYgPCAwKQorCQlnb3RvIGVycm9y OworCWdudHRhYl9ncmFudF9mb3JlaWduX2FjY2Vzc19yZWYocmVmLCBkZXYtPm90aGVyZW5kX2lk LAorCQkJCQl2aXJ0X3RvX2dmbigodm9pZCAqKXNyaW5nKSwgMCk7CisKKyBhZ2FpbjoKKwlyZXQg PSB4ZW5idXNfdHJhbnNhY3Rpb25fc3RhcnQoJnhidCk7CisJaWYgKHJldCkgeworCQl4ZW5idXNf ZGV2X2ZhdGFsKGRldiwgcmV0LCAic3RhcnRpbmcgdHJhbnNhY3Rpb24iKTsKKwkJZ290byBlcnJv cjsKKwl9CisJcmV0ID0geGVuYnVzX3ByaW50Zih4YnQsIGRldi0+bm9kZW5hbWUsICJ2ZXJzaW9u IiwgIiV1IiwgMSk7CisJaWYgKHJldCkKKwkJZ290byBlcnJvcl94ZW5idXM7CisJcmV0ID0geGVu YnVzX3ByaW50Zih4YnQsIGRldi0+bm9kZW5hbWUsICJyaW5nLXJlZiIsICIlZCIsIHJlZik7CisJ aWYgKHJldCkKKwkJZ290byBlcnJvcl94ZW5idXM7CisJcmV0ID0geGVuYnVzX3ByaW50Zih4YnQs IGRldi0+bm9kZW5hbWUsICJwb3J0IiwgIiV1IiwKKwkJCSAgICBldnRjaG4pOworCWlmIChyZXQp CisJCWdvdG8gZXJyb3JfeGVuYnVzOworCXJldCA9IHhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0 LCAwKTsKKwlpZiAocmV0KSB7CisJCWlmIChyZXQgPT0gLUVBR0FJTikKKwkJCWdvdG8gYWdhaW47 CisJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCByZXQsICJjb21wbGV0aW5nIHRyYW5zYWN0aW9uIik7 CisJCWdvdG8gZXJyb3I7CisJfQorCisJSU5JVF9MSVNUX0hFQUQoJmJlZGF0YS0+c29ja2V0X21h cHBpbmdzKTsKKwlJTklUX0xJU1RfSEVBRCgmYmVkYXRhLT5zb2NrZXRwYXNzX21hcHBpbmdzKTsK KwlzcGluX2xvY2tfaW5pdCgmYmVkYXRhLT5wdmNhbGxzc19sb2NrKTsKKwlkZXZfc2V0X2RydmRh dGEoJmRldi0+ZGV2LCBiZWRhdGEpOworCXB2Y2FsbHNfZnJvbnRfZGV2ID0gZGV2OworCXhlbmJ1 c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUluaXRpYWxpc2VkKTsKKwogCXJldHVybiAw OworCisgZXJyb3JfeGVuYnVzOgorCXhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAxKTsKKwl4 ZW5idXNfZGV2X2ZhdGFsKGRldiwgcmV0LCAid3JpdGluZyB4ZW5zdG9yZSIpOworIGVycm9yOgor CXB2Y2FsbHNfZnJvbnRfcmVtb3ZlKGRldik7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZv aWQgcHZjYWxsc19mcm9udF9jaGFuZ2VkKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAJCQkg ICAgZW51bSB4ZW5idXNfc3RhdGUgYmFja2VuZF9zdGF0ZSkKIHsKKwlzd2l0Y2ggKGJhY2tlbmRf c3RhdGUpIHsKKwljYXNlIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZzoKKwljYXNlIFhlbmJ1c1N0 YXRlUmVjb25maWd1cmVkOgorCWNhc2UgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmc6CisJY2FzZSBY ZW5idXNTdGF0ZUluaXRpYWxpc2VkOgorCWNhc2UgWGVuYnVzU3RhdGVVbmtub3duOgorCQlicmVh azsKKworCWNhc2UgWGVuYnVzU3RhdGVJbml0V2FpdDoKKwkJYnJlYWs7CisKKwljYXNlIFhlbmJ1 c1N0YXRlQ29ubmVjdGVkOgorCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVD b25uZWN0ZWQpOworCQlicmVhazsKKworCWNhc2UgWGVuYnVzU3RhdGVDbG9zZWQ6CisJCWlmIChk ZXYtPnN0YXRlID09IFhlbmJ1c1N0YXRlQ2xvc2VkKQorCQkJYnJlYWs7CisJCS8qIE1pc3NlZCB0 aGUgYmFja2VuZCdzIENMT1NJTkcgc3RhdGUgLS0gZmFsbHRocm91Z2ggKi8KKwljYXNlIFhlbmJ1 c1N0YXRlQ2xvc2luZzoKKwkJeGVuYnVzX2Zyb250ZW5kX2Nsb3NlZChkZXYpOworCQlicmVhazsK Kwl9CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgeGVuYnVzX2RyaXZlciBwdmNhbGxzX2Zyb250X2RyaXZl ciA9IHsKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==