From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 03/13] xen/pvcalls: connect to the backend Date: Mon, 31 Jul 2017 15:57:25 -0700 Message-ID: <1501541855-7354-3-git-send-email-sstabellini@kernel.org> References: <1501541855-7354-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: <1501541855-7354-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 YWxscy1mcm9udC5jIHwgMTMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTMwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9k cml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMK aW5kZXggYTEyNjE5NS4uMmFmZTM2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vcHZjYWxscy1m cm9udC5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYwpAQCAtODQsMTIgKzg0LDE0 MiBAQCBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNl ICpkZXYpCiBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRfcHJvYmUoc3RydWN0IHhlbmJ1c19kZXZp Y2UgKmRldiwKIAkJCSAgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgKmlkKQogeworCWlu dCByZXQgPSAtRU5PTUVNLCBldnRjaG4sIGk7CisJdW5zaWduZWQgaW50IG1heF9wYWdlX29yZGVy LCBmdW5jdGlvbl9jYWxscywgbGVuOworCWNoYXIgKnZlcnNpb25zOworCWdyYW50X3JlZl90IGdy ZWZfaGVhZCA9IDA7CisJc3RydWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQ7CisJc3RydWN0IHB2 Y2FsbHNfYmVkYXRhICpiZWRhdGEgPSBOVUxMOworCXN0cnVjdCB4ZW5fcHZjYWxsc19zcmluZyAq c3Jpbmc7CisKKwlpZiAocHZjYWxsc19mcm9udF9kZXYgIT0gTlVMTCkgeworCQlkZXZfZXJyKCZk ZXYtPmRldiwgIm9ubHkgb25lIFBWIENhbGxzIGNvbm5lY3Rpb24gc3VwcG9ydGVkXG4iKTsKKwkJ cmV0dXJuIC1FSU5WQUw7CisJfQorCisJdmVyc2lvbnMgPSB4ZW5idXNfcmVhZChYQlRfTklMLCBk ZXYtPm90aGVyZW5kLCAidmVyc2lvbnMiLCAmbGVuKTsKKwlpZiAoIWxlbikKKwkJcmV0dXJuIC1F SU5WQUw7CisJaWYgKHN0cmNtcCh2ZXJzaW9ucywgIjEiKSkgeworCQlrZnJlZSh2ZXJzaW9ucyk7 CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlrZnJlZSh2ZXJzaW9ucyk7CisJbWF4X3BhZ2Vfb3Jk ZXIgPSB4ZW5idXNfcmVhZF91bnNpZ25lZChkZXYtPm90aGVyZW5kLAorCQkJCQkgICAgICAibWF4 LXBhZ2Utb3JkZXIiLCAwKTsKKwlpZiAobWF4X3BhZ2Vfb3JkZXIgPCBQVkNBTExTX1JJTkdfT1JE RVIpCisJCXJldHVybiAtRU5PREVWOworCWZ1bmN0aW9uX2NhbGxzID0geGVuYnVzX3JlYWRfdW5z aWduZWQoZGV2LT5vdGhlcmVuZCwKKwkJCQkJICAgICAgImZ1bmN0aW9uLWNhbGxzIiwgMCk7CisJ aWYgKGZ1bmN0aW9uX2NhbGxzICE9IDEpCisJCXJldHVybiAtRU5PREVWOworCXByX2luZm8oIiVz IG1heC1wYWdlLW9yZGVyIGlzICV1XG4iLCBfX2Z1bmNfXywgbWF4X3BhZ2Vfb3JkZXIpOworCisJ YmVkYXRhID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHB2Y2FsbHNfYmVkYXRhKSwgR0ZQX0tFUk5F TCk7CisJaWYgKCFiZWRhdGEpCisJCXJldHVybiAtRU5PTUVNOworCisJZGV2X3NldF9kcnZkYXRh KCZkZXYtPmRldiwgYmVkYXRhKTsKKwlwdmNhbGxzX2Zyb250X2RldiA9IGRldjsKKwlpbml0X3dh aXRxdWV1ZV9oZWFkKCZiZWRhdGEtPmluZmxpZ2h0X3JlcSk7CisJZm9yIChpID0gMDsgaSA8IFBW Q0FMTFNfTlJfUkVRX1BFUl9SSU5HOyBpKyspCisJCWJlZGF0YS0+cnNwW2ldLnJlcV9pZCA9IFBW Q0FMTFNfSU5WQUxJRF9JRDsKKworCXNyaW5nID0gKHN0cnVjdCB4ZW5fcHZjYWxsc19zcmluZyAq KSBfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8CisJCQkJCQkJICAgICBfX0dGUF9aRVJPKTsK KwlpZiAoIXNyaW5nKQorCQlnb3RvIGVycm9yOworCVNIQVJFRF9SSU5HX0lOSVQoc3JpbmcpOwor CUZST05UX1JJTkdfSU5JVCgmYmVkYXRhLT5yaW5nLCBzcmluZywgWEVOX1BBR0VfU0laRSk7CisK KwlyZXQgPSB4ZW5idXNfYWxsb2NfZXZ0Y2huKGRldiwgJmV2dGNobik7CisJaWYgKHJldCkKKwkJ Z290byBlcnJvcjsKKworCWJlZGF0YS0+aXJxID0gYmluZF9ldnRjaG5fdG9faXJxaGFuZGxlcihl dnRjaG4sCisJCQkJCQlwdmNhbGxzX2Zyb250X2V2ZW50X2hhbmRsZXIsCisJCQkJCQkwLCAicHZj YWxscy1mcm9udGVuZCIsIGRldik7CisJaWYgKGJlZGF0YS0+aXJxIDwgMCkgeworCQlyZXQgPSBi ZWRhdGEtPmlycTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwlyZXQgPSBnbnR0YWJfYWxsb2NfZ3Jh bnRfcmVmZXJlbmNlcygxLCAmZ3JlZl9oZWFkKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBlcnJv cjsKKwliZWRhdGEtPnJlZiA9IGdudHRhYl9jbGFpbV9ncmFudF9yZWZlcmVuY2UoJmdyZWZfaGVh ZCk7CisJaWYgKGJlZGF0YS0+cmVmIDwgMCkgeworCQlyZXQgPSBiZWRhdGEtPnJlZjsKKwkJZ290 byBlcnJvcjsKKwl9CisJZ250dGFiX2dyYW50X2ZvcmVpZ25fYWNjZXNzX3JlZihiZWRhdGEtPnJl ZiwgZGV2LT5vdGhlcmVuZF9pZCwKKwkJCQkJdmlydF90b19nZm4oKHZvaWQgKilzcmluZyksIDAp OworCisgYWdhaW46CisJcmV0ID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworCWlm IChyZXQpIHsKKwkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIHJldCwgInN0YXJ0aW5nIHRyYW5zYWN0 aW9uIik7CisJCWdvdG8gZXJyb3I7CisJfQorCXJldCA9IHhlbmJ1c19wcmludGYoeGJ0LCBkZXYt Pm5vZGVuYW1lLCAidmVyc2lvbiIsICIldSIsIDEpOworCWlmIChyZXQpCisJCWdvdG8gZXJyb3Jf eGVuYnVzOworCXJldCA9IHhlbmJ1c19wcmludGYoeGJ0LCBkZXYtPm5vZGVuYW1lLCAicmluZy1y ZWYiLCAiJWQiLCBiZWRhdGEtPnJlZik7CisJaWYgKHJldCkKKwkJZ290byBlcnJvcl94ZW5idXM7 CisJcmV0ID0geGVuYnVzX3ByaW50Zih4YnQsIGRldi0+bm9kZW5hbWUsICJwb3J0IiwgIiV1IiwK KwkJCSAgICBldnRjaG4pOworCWlmIChyZXQpCisJCWdvdG8gZXJyb3JfeGVuYnVzOworCXJldCA9 IHhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAwKTsKKwlpZiAocmV0KSB7CisJCWlmIChyZXQg PT0gLUVBR0FJTikKKwkJCWdvdG8gYWdhaW47CisJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCByZXQs ICJjb21wbGV0aW5nIHRyYW5zYWN0aW9uIik7CisJCWdvdG8gZXJyb3I7CisJfQorCisJSU5JVF9M SVNUX0hFQUQoJmJlZGF0YS0+c29ja2V0X21hcHBpbmdzKTsKKwlJTklUX0xJU1RfSEVBRCgmYmVk YXRhLT5zb2NrZXRwYXNzX21hcHBpbmdzKTsKKwlzcGluX2xvY2tfaW5pdCgmYmVkYXRhLT5wdmNh bGxzc19sb2NrKTsKKwl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVJbml0aWFs aXNlZCk7CisKIAlyZXR1cm4gMDsKKworIGVycm9yX3hlbmJ1czoKKwl4ZW5idXNfdHJhbnNhY3Rp b25fZW5kKHhidCwgMSk7CisJeGVuYnVzX2Rldl9mYXRhbChkZXYsIHJldCwgIndyaXRpbmcgeGVu c3RvcmUiKTsKKyBlcnJvcjoKKwlwdmNhbGxzX2Zyb250X3JlbW92ZShkZXYpOworCXJldHVybiBy ZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIHB2Y2FsbHNfZnJvbnRfY2hhbmdlZChzdHJ1Y3QgeGVuYnVz X2RldmljZSAqZGV2LAogCQkJICAgIGVudW0geGVuYnVzX3N0YXRlIGJhY2tlbmRfc3RhdGUpCiB7 CisJc3dpdGNoIChiYWNrZW5kX3N0YXRlKSB7CisJY2FzZSBYZW5idXNTdGF0ZVJlY29uZmlndXJp bmc6CisJY2FzZSBYZW5idXNTdGF0ZVJlY29uZmlndXJlZDoKKwljYXNlIFhlbmJ1c1N0YXRlSW5p dGlhbGlzaW5nOgorCWNhc2UgWGVuYnVzU3RhdGVJbml0aWFsaXNlZDoKKwljYXNlIFhlbmJ1c1N0 YXRlVW5rbm93bjoKKwkJYnJlYWs7CisKKwljYXNlIFhlbmJ1c1N0YXRlSW5pdFdhaXQ6CisJCWJy ZWFrOworCisJY2FzZSBYZW5idXNTdGF0ZUNvbm5lY3RlZDoKKwkJeGVuYnVzX3N3aXRjaF9zdGF0 ZShkZXYsIFhlbmJ1c1N0YXRlQ29ubmVjdGVkKTsKKwkJYnJlYWs7CisKKwljYXNlIFhlbmJ1c1N0 YXRlQ2xvc2VkOgorCQlpZiAoZGV2LT5zdGF0ZSA9PSBYZW5idXNTdGF0ZUNsb3NlZCkKKwkJCWJy ZWFrOworCQkvKiBNaXNzZWQgdGhlIGJhY2tlbmQncyBDTE9TSU5HIHN0YXRlIC0tIGZhbGx0aHJv dWdoICovCisJY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6CisJCXhlbmJ1c19mcm9udGVuZF9jbG9z ZWQoZGV2KTsKKwkJYnJlYWs7CisJfQogfQogCiBzdGF0aWMgc3RydWN0IHhlbmJ1c19kcml2ZXIg cHZjYWxsc19mcm9udF9kcml2ZXIgPSB7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=