From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v5 03/13] xen/pvcalls: connect to the backend Date: Fri, 6 Oct 2017 17:30:17 -0700 Message-ID: <1507336227-20477-3-git-send-email-sstabellini@kernel.org> References: <1507336227-20477-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: <1507336227-20477-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 bGxzIG5vZGVzIGZyb20KeGVuc3RvcmUuCgpPbmx5IG9uZSBmcm9udGVuZDwtPmJhY2tlbmQgY29u bmVjdGlvbiBpcyBzdXBwb3J0ZWQgYXQgYW55IGdpdmVuIHRpbWUKZm9yIGEgZ3Vlc3QuIFN0b3Jl IHRoZSBhY3RpdmUgZnJvbnRlbmQgZGV2aWNlIHRvIGEgc3RhdGljIHBvaW50ZXIuCgpJbnRyb2R1 Y2UgYSBzdHViIGZ1bmN0aW9ucyBmb3IgdGhlIGV2ZW50IGhhbmRsZXIuCgpTaWduZWQtb2ZmLWJ5 OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9AYXBvcmV0by5jb20+ClJldmlld2VkLWJ5OiBC b3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgpDQzogYm9yaXMub3N0 cm92c2t5QG9yYWNsZS5jb20KQ0M6IGpncm9zc0BzdXNlLmNvbQotLS0KIGRyaXZlcnMveGVuL3B2 Y2FsbHMtZnJvbnQuYyB8IDEzMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEzMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5jIGIvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5j CmluZGV4IGQ4YjdhMDQuLjQ5MGM0YzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3B2Y2FsbHMt ZnJvbnQuYworKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMKQEAgLTEwMCwxMiArMTAw LDE0NSBAQCBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2 aWNlICpkZXYpCiBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRfcHJvYmUoc3RydWN0IHhlbmJ1c19k ZXZpY2UgKmRldiwKIAkJCSAgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgKmlkKQogewor CWludCByZXQgPSAtRU5PTUVNLCBldnRjaG4sIGk7CisJdW5zaWduZWQgaW50IG1heF9wYWdlX29y ZGVyLCBmdW5jdGlvbl9jYWxscywgbGVuOworCWNoYXIgKnZlcnNpb25zOworCWdyYW50X3JlZl90 IGdyZWZfaGVhZCA9IDA7CisJc3RydWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQ7CisJc3RydWN0 IHB2Y2FsbHNfYmVkYXRhICpiZWRhdGEgPSBOVUxMOworCXN0cnVjdCB4ZW5fcHZjYWxsc19zcmlu ZyAqc3Jpbmc7CisKKwlpZiAocHZjYWxsc19mcm9udF9kZXYgIT0gTlVMTCkgeworCQlkZXZfZXJy KCZkZXYtPmRldiwgIm9ubHkgb25lIFBWIENhbGxzIGNvbm5lY3Rpb24gc3VwcG9ydGVkXG4iKTsK KwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJdmVyc2lvbnMgPSB4ZW5idXNfcmVhZChYQlRfTklM LCBkZXYtPm90aGVyZW5kLCAidmVyc2lvbnMiLCAmbGVuKTsKKwlpZiAoIWxlbikKKwkJcmV0dXJu IC1FSU5WQUw7CisJaWYgKHN0cmNtcCh2ZXJzaW9ucywgIjEiKSkgeworCQlrZnJlZSh2ZXJzaW9u cyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlrZnJlZSh2ZXJzaW9ucyk7CisJbWF4X3BhZ2Vf b3JkZXIgPSB4ZW5idXNfcmVhZF91bnNpZ25lZChkZXYtPm90aGVyZW5kLAorCQkJCQkgICAgICAi bWF4LXBhZ2Utb3JkZXIiLCAwKTsKKwlpZiAobWF4X3BhZ2Vfb3JkZXIgPCBQVkNBTExTX1JJTkdf T1JERVIpCisJCXJldHVybiAtRU5PREVWOworCWZ1bmN0aW9uX2NhbGxzID0geGVuYnVzX3JlYWRf dW5zaWduZWQoZGV2LT5vdGhlcmVuZCwKKwkJCQkJICAgICAgImZ1bmN0aW9uLWNhbGxzIiwgMCk7 CisJLyogU2VlIFhFTkJVU19GVU5DVElPTlNfQ0FMTFMgaW4gcHZjYWxscy5oICovCisJaWYgKGZ1 bmN0aW9uX2NhbGxzICE9IDEpCisJCXJldHVybiAtRU5PREVWOworCXByX2luZm8oIiVzIG1heC1w YWdlLW9yZGVyIGlzICV1XG4iLCBfX2Z1bmNfXywgbWF4X3BhZ2Vfb3JkZXIpOworCisJYmVkYXRh ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHB2Y2FsbHNfYmVkYXRhKSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFiZWRhdGEpCisJCXJldHVybiAtRU5PTUVNOworCisJZGV2X3NldF9kcnZkYXRhKCZkZXYt PmRldiwgYmVkYXRhKTsKKwlwdmNhbGxzX2Zyb250X2RldiA9IGRldjsKKwlpbml0X3dhaXRxdWV1 ZV9oZWFkKCZiZWRhdGEtPmluZmxpZ2h0X3JlcSk7CisJSU5JVF9MSVNUX0hFQUQoJmJlZGF0YS0+ c29ja2V0X21hcHBpbmdzKTsKKwlJTklUX0xJU1RfSEVBRCgmYmVkYXRhLT5zb2NrZXRwYXNzX21h cHBpbmdzKTsKKwlzcGluX2xvY2tfaW5pdCgmYmVkYXRhLT5zb2NrZXRfbG9jayk7CisJYmVkYXRh LT5pcnEgPSAtMTsKKwliZWRhdGEtPnJlZiA9IC0xOworCisJZm9yIChpID0gMDsgaSA8IFBWQ0FM TFNfTlJfUkVRX1BFUl9SSU5HOyBpKyspCisJCWJlZGF0YS0+cnNwW2ldLnJlcV9pZCA9IFBWQ0FM TFNfSU5WQUxJRF9JRDsKKworCXNyaW5nID0gKHN0cnVjdCB4ZW5fcHZjYWxsc19zcmluZyAqKSBf X2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8CisJCQkJCQkJICAgICBfX0dGUF9aRVJPKTsKKwlp ZiAoIXNyaW5nKQorCQlnb3RvIGVycm9yOworCVNIQVJFRF9SSU5HX0lOSVQoc3JpbmcpOworCUZS T05UX1JJTkdfSU5JVCgmYmVkYXRhLT5yaW5nLCBzcmluZywgWEVOX1BBR0VfU0laRSk7CisKKwly ZXQgPSB4ZW5idXNfYWxsb2NfZXZ0Y2huKGRldiwgJmV2dGNobik7CisJaWYgKHJldCkKKwkJZ290 byBlcnJvcjsKKworCWJlZGF0YS0+aXJxID0gYmluZF9ldnRjaG5fdG9faXJxaGFuZGxlcihldnRj aG4sCisJCQkJCQlwdmNhbGxzX2Zyb250X2V2ZW50X2hhbmRsZXIsCisJCQkJCQkwLCAicHZjYWxs cy1mcm9udGVuZCIsIGRldik7CisJaWYgKGJlZGF0YS0+aXJxIDwgMCkgeworCQlyZXQgPSBiZWRh dGEtPmlycTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwlyZXQgPSBnbnR0YWJfYWxsb2NfZ3JhbnRf cmVmZXJlbmNlcygxLCAmZ3JlZl9oZWFkKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBlcnJvcjsK KwliZWRhdGEtPnJlZiA9IGdudHRhYl9jbGFpbV9ncmFudF9yZWZlcmVuY2UoJmdyZWZfaGVhZCk7 CisJaWYgKGJlZGF0YS0+cmVmIDwgMCkgeworCQlyZXQgPSBiZWRhdGEtPnJlZjsKKwkJZ290byBl cnJvcjsKKwl9CisJZ250dGFiX2dyYW50X2ZvcmVpZ25fYWNjZXNzX3JlZihiZWRhdGEtPnJlZiwg ZGV2LT5vdGhlcmVuZF9pZCwKKwkJCQkJdmlydF90b19nZm4oKHZvaWQgKilzcmluZyksIDApOwor CisgYWdhaW46CisJcmV0ID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworCWlmIChy ZXQpIHsKKwkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIHJldCwgInN0YXJ0aW5nIHRyYW5zYWN0aW9u Iik7CisJCWdvdG8gZXJyb3I7CisJfQorCXJldCA9IHhlbmJ1c19wcmludGYoeGJ0LCBkZXYtPm5v ZGVuYW1lLCAidmVyc2lvbiIsICIldSIsIDEpOworCWlmIChyZXQpCisJCWdvdG8gZXJyb3JfeGVu YnVzOworCXJldCA9IHhlbmJ1c19wcmludGYoeGJ0LCBkZXYtPm5vZGVuYW1lLCAicmluZy1yZWYi LCAiJWQiLCBiZWRhdGEtPnJlZik7CisJaWYgKHJldCkKKwkJZ290byBlcnJvcl94ZW5idXM7CisJ cmV0ID0geGVuYnVzX3ByaW50Zih4YnQsIGRldi0+bm9kZW5hbWUsICJwb3J0IiwgIiV1IiwKKwkJ CSAgICBldnRjaG4pOworCWlmIChyZXQpCisJCWdvdG8gZXJyb3JfeGVuYnVzOworCXJldCA9IHhl bmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAwKTsKKwlpZiAocmV0KSB7CisJCWlmIChyZXQgPT0g LUVBR0FJTikKKwkJCWdvdG8gYWdhaW47CisJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCByZXQsICJj b21wbGV0aW5nIHRyYW5zYWN0aW9uIik7CisJCWdvdG8gZXJyb3I7CisJfQorCXhlbmJ1c19zd2l0 Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUluaXRpYWxpc2VkKTsKKwogCXJldHVybiAwOworCisg ZXJyb3JfeGVuYnVzOgorCXhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAxKTsKKwl4ZW5idXNf ZGV2X2ZhdGFsKGRldiwgcmV0LCAid3JpdGluZyB4ZW5zdG9yZSIpOworIGVycm9yOgorCXB2Y2Fs bHNfZnJvbnRfcmVtb3ZlKGRldik7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgcHZj YWxsc19mcm9udF9jaGFuZ2VkKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAJCQkgICAgZW51 bSB4ZW5idXNfc3RhdGUgYmFja2VuZF9zdGF0ZSkKIHsKKwlzd2l0Y2ggKGJhY2tlbmRfc3RhdGUp IHsKKwljYXNlIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZzoKKwljYXNlIFhlbmJ1c1N0YXRlUmVj b25maWd1cmVkOgorCWNhc2UgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmc6CisJY2FzZSBYZW5idXNT dGF0ZUluaXRpYWxpc2VkOgorCWNhc2UgWGVuYnVzU3RhdGVVbmtub3duOgorCQlicmVhazsKKwor CWNhc2UgWGVuYnVzU3RhdGVJbml0V2FpdDoKKwkJYnJlYWs7CisKKwljYXNlIFhlbmJ1c1N0YXRl Q29ubmVjdGVkOgorCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDb25uZWN0 ZWQpOworCQlicmVhazsKKworCWNhc2UgWGVuYnVzU3RhdGVDbG9zZWQ6CisJCWlmIChkZXYtPnN0 YXRlID09IFhlbmJ1c1N0YXRlQ2xvc2VkKQorCQkJYnJlYWs7CisJCS8qIE1pc3NlZCB0aGUgYmFj a2VuZCdzIENMT1NJTkcgc3RhdGUgLS0gZmFsbHRocm91Z2ggKi8KKwljYXNlIFhlbmJ1c1N0YXRl Q2xvc2luZzoKKwkJeGVuYnVzX2Zyb250ZW5kX2Nsb3NlZChkZXYpOworCQlicmVhazsKKwl9CiB9 CiAKIHN0YXRpYyBzdHJ1Y3QgeGVuYnVzX2RyaXZlciBwdmNhbGxzX2Zyb250X2RyaXZlciA9IHsK LS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==