From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v4 03/13] xen/pvcalls: connect to the backend Date: Fri, 15 Sep 2017 16:00:30 -0700 Message-ID: <1505516440-11111-3-git-send-email-sstabellini@kernel.org> References: <1505516440-11111-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: <1505516440-11111-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+CkNDOiBib3Jpcy5vc3Ry b3Zza3lAb3JhY2xlLmNvbQpDQzogamdyb3NzQHN1c2UuY29tCi0tLQogZHJpdmVycy94ZW4vcHZj YWxscy1mcm9udC5jIHwgMTMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9k cml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMK aW5kZXggNjdjODMzNy4uZmZiYmNkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vcHZjYWxscy1m cm9udC5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYwpAQCAtOTYsMTIgKzk2LDE0 NSBAQCBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNl ICpkZXYpCiBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRfcHJvYmUoc3RydWN0IHhlbmJ1c19kZXZp Y2UgKmRldiwKIAkJCSAgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgKmlkKQogeworCWlu dCByZXQgPSAtRU5PTUVNLCBldnRjaG4sIGk7CisJdW5zaWduZWQgaW50IG1heF9wYWdlX29yZGVy LCBmdW5jdGlvbl9jYWxscywgbGVuOworCWNoYXIgKnZlcnNpb25zOworCWdyYW50X3JlZl90IGdy ZWZfaGVhZCA9IDA7CisJc3RydWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQ7CisJc3RydWN0IHB2 Y2FsbHNfYmVkYXRhICpiZWRhdGEgPSBOVUxMOworCXN0cnVjdCB4ZW5fcHZjYWxsc19zcmluZyAq c3Jpbmc7CisKKwlpZiAocHZjYWxsc19mcm9udF9kZXYgIT0gTlVMTCkgeworCQlkZXZfZXJyKCZk ZXYtPmRldiwgIm9ubHkgb25lIFBWIENhbGxzIGNvbm5lY3Rpb24gc3VwcG9ydGVkXG4iKTsKKwkJ cmV0dXJuIC1FSU5WQUw7CisJfQorCisJdmVyc2lvbnMgPSB4ZW5idXNfcmVhZChYQlRfTklMLCBk ZXYtPm90aGVyZW5kLCAidmVyc2lvbnMiLCAmbGVuKTsKKwlpZiAoIWxlbikKKwkJcmV0dXJuIC1F SU5WQUw7CisJaWYgKHN0cmNtcCh2ZXJzaW9ucywgIjEiKSkgeworCQlrZnJlZSh2ZXJzaW9ucyk7 CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlrZnJlZSh2ZXJzaW9ucyk7CisJbWF4X3BhZ2Vfb3Jk ZXIgPSB4ZW5idXNfcmVhZF91bnNpZ25lZChkZXYtPm90aGVyZW5kLAorCQkJCQkgICAgICAibWF4 LXBhZ2Utb3JkZXIiLCAwKTsKKwlpZiAobWF4X3BhZ2Vfb3JkZXIgPCBQVkNBTExTX1JJTkdfT1JE RVIpCisJCXJldHVybiAtRU5PREVWOworCWZ1bmN0aW9uX2NhbGxzID0geGVuYnVzX3JlYWRfdW5z aWduZWQoZGV2LT5vdGhlcmVuZCwKKwkJCQkJICAgICAgImZ1bmN0aW9uLWNhbGxzIiwgMCk7CisJ LyogU2VlIFhFTkJVU19GVU5DVElPTlNfQ0FMTFMgaW4gcHZjYWxscy5oICovCisJaWYgKGZ1bmN0 aW9uX2NhbGxzICE9IDEpCisJCXJldHVybiAtRU5PREVWOworCXByX2luZm8oIiVzIG1heC1wYWdl LW9yZGVyIGlzICV1XG4iLCBfX2Z1bmNfXywgbWF4X3BhZ2Vfb3JkZXIpOworCisJYmVkYXRhID0g a3phbGxvYyhzaXplb2Yoc3RydWN0IHB2Y2FsbHNfYmVkYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYg KCFiZWRhdGEpCisJCXJldHVybiAtRU5PTUVNOworCisJZGV2X3NldF9kcnZkYXRhKCZkZXYtPmRl diwgYmVkYXRhKTsKKwlwdmNhbGxzX2Zyb250X2RldiA9IGRldjsKKwlpbml0X3dhaXRxdWV1ZV9o ZWFkKCZiZWRhdGEtPmluZmxpZ2h0X3JlcSk7CisJSU5JVF9MSVNUX0hFQUQoJmJlZGF0YS0+c29j a2V0X21hcHBpbmdzKTsKKwlJTklUX0xJU1RfSEVBRCgmYmVkYXRhLT5zb2NrZXRwYXNzX21hcHBp bmdzKTsKKwlzcGluX2xvY2tfaW5pdCgmYmVkYXRhLT5zb2NrZXRfbG9jayk7CisJYmVkYXRhLT5p cnEgPSAtMTsKKwliZWRhdGEtPnJlZiA9IC0xOworCisJZm9yIChpID0gMDsgaSA8IFBWQ0FMTFNf TlJfUkVRX1BFUl9SSU5HOyBpKyspCisJCWJlZGF0YS0+cnNwW2ldLnJlcV9pZCA9IFBWQ0FMTFNf SU5WQUxJRF9JRDsKKworCXNyaW5nID0gKHN0cnVjdCB4ZW5fcHZjYWxsc19zcmluZyAqKSBfX2dl dF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8CisJCQkJCQkJICAgICBfX0dGUF9aRVJPKTsKKwlpZiAo IXNyaW5nKQorCQlnb3RvIGVycm9yOworCVNIQVJFRF9SSU5HX0lOSVQoc3JpbmcpOworCUZST05U X1JJTkdfSU5JVCgmYmVkYXRhLT5yaW5nLCBzcmluZywgWEVOX1BBR0VfU0laRSk7CisKKwlyZXQg PSB4ZW5idXNfYWxsb2NfZXZ0Y2huKGRldiwgJmV2dGNobik7CisJaWYgKHJldCkKKwkJZ290byBl cnJvcjsKKworCWJlZGF0YS0+aXJxID0gYmluZF9ldnRjaG5fdG9faXJxaGFuZGxlcihldnRjaG4s CisJCQkJCQlwdmNhbGxzX2Zyb250X2V2ZW50X2hhbmRsZXIsCisJCQkJCQkwLCAicHZjYWxscy1m cm9udGVuZCIsIGRldik7CisJaWYgKGJlZGF0YS0+aXJxIDwgMCkgeworCQlyZXQgPSBiZWRhdGEt PmlycTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwlyZXQgPSBnbnR0YWJfYWxsb2NfZ3JhbnRfcmVm ZXJlbmNlcygxLCAmZ3JlZl9oZWFkKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBlcnJvcjsKKwli ZWRhdGEtPnJlZiA9IGdudHRhYl9jbGFpbV9ncmFudF9yZWZlcmVuY2UoJmdyZWZfaGVhZCk7CisJ aWYgKGJlZGF0YS0+cmVmIDwgMCkgeworCQlyZXQgPSBiZWRhdGEtPnJlZjsKKwkJZ290byBlcnJv cjsKKwl9CisJZ250dGFiX2dyYW50X2ZvcmVpZ25fYWNjZXNzX3JlZihiZWRhdGEtPnJlZiwgZGV2 LT5vdGhlcmVuZF9pZCwKKwkJCQkJdmlydF90b19nZm4oKHZvaWQgKilzcmluZyksIDApOworCisg YWdhaW46CisJcmV0ID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworCWlmIChyZXQp IHsKKwkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIHJldCwgInN0YXJ0aW5nIHRyYW5zYWN0aW9uIik7 CisJCWdvdG8gZXJyb3I7CisJfQorCXJldCA9IHhlbmJ1c19wcmludGYoeGJ0LCBkZXYtPm5vZGVu YW1lLCAidmVyc2lvbiIsICIldSIsIDEpOworCWlmIChyZXQpCisJCWdvdG8gZXJyb3JfeGVuYnVz OworCXJldCA9IHhlbmJ1c19wcmludGYoeGJ0LCBkZXYtPm5vZGVuYW1lLCAicmluZy1yZWYiLCAi JWQiLCBiZWRhdGEtPnJlZik7CisJaWYgKHJldCkKKwkJZ290byBlcnJvcl94ZW5idXM7CisJcmV0 ID0geGVuYnVzX3ByaW50Zih4YnQsIGRldi0+bm9kZW5hbWUsICJwb3J0IiwgIiV1IiwKKwkJCSAg ICBldnRjaG4pOworCWlmIChyZXQpCisJCWdvdG8gZXJyb3JfeGVuYnVzOworCXJldCA9IHhlbmJ1 c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAwKTsKKwlpZiAocmV0KSB7CisJCWlmIChyZXQgPT0gLUVB R0FJTikKKwkJCWdvdG8gYWdhaW47CisJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCByZXQsICJjb21w bGV0aW5nIHRyYW5zYWN0aW9uIik7CisJCWdvdG8gZXJyb3I7CisJfQorCXhlbmJ1c19zd2l0Y2hf c3RhdGUoZGV2LCBYZW5idXNTdGF0ZUluaXRpYWxpc2VkKTsKKwogCXJldHVybiAwOworCisgZXJy b3JfeGVuYnVzOgorCXhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAxKTsKKwl4ZW5idXNfZGV2 X2ZhdGFsKGRldiwgcmV0LCAid3JpdGluZyB4ZW5zdG9yZSIpOworIGVycm9yOgorCXB2Y2FsbHNf ZnJvbnRfcmVtb3ZlKGRldik7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgcHZjYWxs c19mcm9udF9jaGFuZ2VkKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAJCQkgICAgZW51bSB4 ZW5idXNfc3RhdGUgYmFja2VuZF9zdGF0ZSkKIHsKKwlzd2l0Y2ggKGJhY2tlbmRfc3RhdGUpIHsK KwljYXNlIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZzoKKwljYXNlIFhlbmJ1c1N0YXRlUmVjb25m aWd1cmVkOgorCWNhc2UgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmc6CisJY2FzZSBYZW5idXNTdGF0 ZUluaXRpYWxpc2VkOgorCWNhc2UgWGVuYnVzU3RhdGVVbmtub3duOgorCQlicmVhazsKKworCWNh c2UgWGVuYnVzU3RhdGVJbml0V2FpdDoKKwkJYnJlYWs7CisKKwljYXNlIFhlbmJ1c1N0YXRlQ29u bmVjdGVkOgorCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDb25uZWN0ZWQp OworCQlicmVhazsKKworCWNhc2UgWGVuYnVzU3RhdGVDbG9zZWQ6CisJCWlmIChkZXYtPnN0YXRl ID09IFhlbmJ1c1N0YXRlQ2xvc2VkKQorCQkJYnJlYWs7CisJCS8qIE1pc3NlZCB0aGUgYmFja2Vu ZCdzIENMT1NJTkcgc3RhdGUgLS0gZmFsbHRocm91Z2ggKi8KKwljYXNlIFhlbmJ1c1N0YXRlQ2xv c2luZzoKKwkJeGVuYnVzX2Zyb250ZW5kX2Nsb3NlZChkZXYpOworCQlicmVhazsKKwl9CiB9CiAK IHN0YXRpYyBzdHJ1Y3QgeGVuYnVzX2RyaXZlciBwdmNhbGxzX2Zyb250X2RyaXZlciA9IHsKLS0g CjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==