From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v7 09/18] xen/pvcalls: implement bind command Date: Wed, 5 Jul 2017 14:50:49 -0700 Message-ID: <1499291458-30231-9-git-send-email-sstabellini@kernel.org> References: <1499291458-30231-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: <1499291458-30231-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 QWxsb2NhdGUgYSBzb2NrZXQuIFRyYWNrIHRoZSBhbGxvY2F0ZWQgcGFzc2l2ZSBzb2NrZXRzIHdp dGggYSBuZXcgZGF0YQpzdHJ1Y3R1cmUgbmFtZWQgc29ja3Bhc3NfbWFwcGluZy4gSXQgY29udGFp bnMgYW4gdW5ib3VuZCB3b3JrcXVldWUgdG8Kc2NoZWR1bGUgZGVsYXllZCB3b3JrIGZvciB0aGUg YWNjZXB0IGFuZCBwb2xsIGNvbW1hbmRzLiBJdCBhbHNvIGhhcyBhCnJlcWNvcHkgZmllbGQgdG8g YmUgdXNlZCB0byBzdG9yZSBhIGNvcHkgb2YgYSByZXF1ZXN0IGZvciBkZWxheWVkIHdvcmsuClJl YWRzL3dyaXRlcyB0byBpdCBhcmUgcHJvdGVjdGVkIGJ5IGEgbG9jayAodGhlICJjb3B5X2xvY2si IHNwaW5sb2NrKS4KSW5pdGlhbGl6ZSB0aGUgd29ya3F1ZXVlIGluIHB2Y2FsbHNfYmFja19iaW5k LgoKSW1wbGVtZW50IHRoZSBiaW5kIGNvbW1hbmQgd2l0aCBpbmV0X2JpbmQuCgpUaGUgcGFzc19z a19kYXRhX3JlYWR5IGV2ZW50IGhhbmRsZXIgd2lsbCBiZSBhZGRlZCBsYXRlci4KClNpZ25lZC1v ZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KQ0M6IGJvcmlz Lm9zdHJvdnNreUBvcmFjbGUuY29tCkNDOiBqZ3Jvc3NAc3VzZS5jb20KLS0tCiBkcml2ZXJzL3hl bi9wdmNhbGxzLWJhY2suYyB8IDc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2su YwppbmRleCAxM2U0ZDYyLi5iM2RhNjNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9wdmNhbGxz LWJhY2suYworKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYwpAQCAtNzgsNiArNzgsMTgg QEAgc3RydWN0IHNvY2tfbWFwcGluZyB7CiAJc3RydWN0IHB2Y2FsbHNfaW93b3JrZXIgaW93b3Jr ZXI7CiB9OwogCitzdHJ1Y3Qgc29ja3Bhc3NfbWFwcGluZyB7CisJc3RydWN0IGxpc3RfaGVhZCBs aXN0OworCXN0cnVjdCBwdmNhbGxzX2ZlZGF0YSAqZmVkYXRhOworCXN0cnVjdCBzb2NrZXQgKnNv Y2s7CisJdWludDY0X3QgaWQ7CisJc3RydWN0IHhlbl9wdmNhbGxzX3JlcXVlc3QgcmVxY29weTsK KwlzcGlubG9ja190IGNvcHlfbG9jazsKKwlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3E7CisJ c3RydWN0IHdvcmtfc3RydWN0IHJlZ2lzdGVyX3dvcms7CisJdm9pZCAoKnNhdmVkX2RhdGFfcmVh ZHkpKHN0cnVjdCBzb2NrICpzayk7Cit9OworCiBzdGF0aWMgaXJxcmV0dXJuX3QgcHZjYWxsc19i YWNrX2Nvbm5fZXZlbnQoaW50IGlycSwgdm9pZCAqc29ja19tYXApOwogc3RhdGljIGludCBwdmNh bGxzX2JhY2tfcmVsZWFzZV9hY3RpdmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAkJCQkg ICAgICAgc3RydWN0IHB2Y2FsbHNfZmVkYXRhICpmZWRhdGEsCkBAIC0yNjgsOSArMjgwLDc2IEBA IHN0YXRpYyBpbnQgcHZjYWxsc19iYWNrX3JlbGVhc2Uoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRl diwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgX19wdmNhbGxzX2JhY2tfYWNjZXB0KHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKK30KKworc3RhdGljIHZvaWQgcHZjYWxsc19wYXNz X3NrX2RhdGFfcmVhZHkoc3RydWN0IHNvY2sgKnNvY2spCit7Cit9CisKIHN0YXRpYyBpbnQgcHZj YWxsc19iYWNrX2JpbmQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAkJCSAgICAgc3RydWN0 IHhlbl9wdmNhbGxzX3JlcXVlc3QgKnJlcSkKIHsKKwlzdHJ1Y3QgcHZjYWxsc19mZWRhdGEgKmZl ZGF0YTsKKwlpbnQgcmV0OworCXN0cnVjdCBzb2NrcGFzc19tYXBwaW5nICptYXA7CisJc3RydWN0 IHhlbl9wdmNhbGxzX3Jlc3BvbnNlICpyc3A7CisKKwlmZWRhdGEgPSBkZXZfZ2V0X2RydmRhdGEo JmRldi0+ZGV2KTsKKworCW1hcCA9IGt6YWxsb2Moc2l6ZW9mKCptYXApLCBHRlBfS0VSTkVMKTsK KwlpZiAobWFwID09IE5VTEwpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQor CisJSU5JVF9XT1JLKCZtYXAtPnJlZ2lzdGVyX3dvcmssIF9fcHZjYWxsc19iYWNrX2FjY2VwdCk7 CisJc3Bpbl9sb2NrX2luaXQoJm1hcC0+Y29weV9sb2NrKTsKKwltYXAtPndxID0gYWxsb2Nfd29y a3F1ZXVlKCJwdmNhbGxzX3dxIiwgV1FfVU5CT1VORCwgMSk7CisJaWYgKCFtYXAtPndxKSB7CisJ CXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKworCXJldCA9IHNvY2tfY3JlYXRlKEFG X0lORVQsIFNPQ0tfU1RSRUFNLCAwLCAmbWFwLT5zb2NrKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290 byBvdXQ7CisKKwlyZXQgPSBpbmV0X2JpbmQobWFwLT5zb2NrLCAoc3RydWN0IHNvY2thZGRyICop JnJlcS0+dS5iaW5kLmFkZHIsCisJCQlyZXEtPnUuYmluZC5sZW4pOworCWlmIChyZXQgPCAwKQor CQlnb3RvIG91dDsKKworCW1hcC0+ZmVkYXRhID0gZmVkYXRhOworCW1hcC0+aWQgPSByZXEtPnUu YmluZC5pZDsKKworCWRvd24oJmZlZGF0YS0+c29ja2V0X2xvY2spOworCXJldCA9IHJhZGl4X3Ry ZWVfaW5zZXJ0KCZmZWRhdGEtPnNvY2tldHBhc3NfbWFwcGluZ3MsIG1hcC0+aWQsCisJCQkJbWFw KTsKKwl1cCgmZmVkYXRhLT5zb2NrZXRfbG9jayk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisK Kwl3cml0ZV9sb2NrX2JoKCZtYXAtPnNvY2stPnNrLT5za19jYWxsYmFja19sb2NrKTsKKwltYXAt PnNhdmVkX2RhdGFfcmVhZHkgPSBtYXAtPnNvY2stPnNrLT5za19kYXRhX3JlYWR5OworCW1hcC0+ c29jay0+c2stPnNrX3VzZXJfZGF0YSA9IG1hcDsKKwltYXAtPnNvY2stPnNrLT5za19kYXRhX3Jl YWR5ID0gcHZjYWxsc19wYXNzX3NrX2RhdGFfcmVhZHk7CisJd3JpdGVfdW5sb2NrX2JoKCZtYXAt PnNvY2stPnNrLT5za19jYWxsYmFja19sb2NrKTsKKworb3V0OgorCWlmIChyZXQpIHsKKwkJaWYg KG1hcCAmJiBtYXAtPnNvY2spCisJCQlzb2NrX3JlbGVhc2UobWFwLT5zb2NrKTsKKwkJaWYgKG1h cCAmJiBtYXAtPndxKQorCQkJZGVzdHJveV93b3JrcXVldWUobWFwLT53cSk7CisJCWtmcmVlKG1h cCk7CisJfQorCXJzcCA9IFJJTkdfR0VUX1JFU1BPTlNFKCZmZWRhdGEtPnJpbmcsIGZlZGF0YS0+ cmluZy5yc3BfcHJvZF9wdnQrKyk7CisJcnNwLT5yZXFfaWQgPSByZXEtPnJlcV9pZDsKKwlyc3At PmNtZCA9IHJlcS0+Y21kOworCXJzcC0+dS5iaW5kLmlkID0gcmVxLT51LmJpbmQuaWQ7CisJcnNw LT5yZXQgPSByZXQ7CiAJcmV0dXJuIDA7CiB9CiAKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==