From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v1 07/13] xen/pvcalls: implement accept command Date: Fri, 21 Jul 2017 17:11:57 -0700 Message-ID: <1500682323-25940-7-git-send-email-sstabellini@kernel.org> References: <1500682323-25940-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: <1500682323-25940-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 U2VuZCBQVkNBTExTX0FDQ0VQVCB0byB0aGUgYmFja2VuZC4gQWxsb2NhdGUgYSBuZXcgYWN0aXZl IHNvY2tldC4gTWFrZQpzdXJlIHRoYXQgb25seSBvbmUgYWNjZXB0IGNvbW1hbmQgaXMgZXhlY3V0 ZWQgYXQgYW55IGdpdmVuIHRpbWUgYnkKc2V0dGluZyBQVkNBTExTX0ZMQUdfQUNDRVBUX0lORkxJ R0hUIGFuZCB3YWl0aW5nIG9uIHRoZQppbmZsaWdodF9hY2NlcHRfcmVxIHdhaXRxdWV1ZS4KCnNv Y2stPnNrLT5za19zZW5kX2hlYWQgaXMgbm90IHVzZWQgZm9yIGlwIHNvY2tldHM6IHJldXNlIHRo ZSBmaWVsZCB0bwpzdG9yZSBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBzb2NrX21hcHBpbmcgY29y cmVzcG9uZGluZyB0byB0aGUgc29ja2V0LgoKQ29udmVydCB0aGUgbmV3IHN0cnVjdCBzb2NrZXQg cG9pbnRlciBpbnRvIGFuIHVpbnQ2NF90IGFuZCB1c2UgaXQgYXMgaWQKZm9yIHRoZSBuZXcgc29j a2V0IHRvIHBhc3MgdG8gdGhlIGJhY2tlbmQuCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJl bGxpbmkgPHN0ZWZhbm9AYXBvcmV0by5jb20+CkNDOiBib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNv bQpDQzogamdyb3NzQHN1c2UuY29tCi0tLQogZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5jIHwg NzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJz L3hlbi9wdmNhbGxzLWZyb250LmggfCAgMyArKwogMiBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5jIGIvZHJpdmVy cy94ZW4vcHZjYWxscy1mcm9udC5jCmluZGV4IDgwZmQ1ZmIuLmYzYTA0YTIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYworKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZy b250LmMKQEAgLTQxMCw2ICs0MTAsODUgQEAgaW50IHB2Y2FsbHNfZnJvbnRfbGlzdGVuKHN0cnVj dCBzb2NrZXQgKnNvY2ssIGludCBiYWNrbG9nKQogCXJldHVybiByZXQ7CiB9CiAKK2ludCBwdmNh bGxzX2Zyb250X2FjY2VwdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpuZXdz b2NrLCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IHB2Y2FsbHNfYmVkYXRhICpiZWRhdGE7CisJc3Ry dWN0IHNvY2tfbWFwcGluZyAqbWFwOworCXN0cnVjdCBzb2NrX21hcHBpbmcgKm1hcDIgPSBOVUxM OworCXN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXE7CisJaW50IG5vdGlmeSwgcmVxX2lk LCByZXQsIGV2dGNobjsKKworCWlmICghcHZjYWxsc19mcm9udF9kZXYpCisJCXJldHVybiAtRU5P VENPTk47CisJYmVkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZwdmNhbGxzX2Zyb250X2Rldi0+ZGV2 KTsKKworCW1hcCA9IChzdHJ1Y3Qgc29ja19tYXBwaW5nICopIFJFQURfT05DRShzb2NrLT5zay0+ c2tfc2VuZF9oZWFkKTsKKwlpZiAoIW1hcCkKKwkJcmV0dXJuIC1FTk9UU09DSzsKKworCWlmICht YXAtPnBhc3NpdmUuc3RhdHVzICE9IFBWQ0FMTFNfU1RBVFVTX0xJU1RFTikKKwkJcmV0dXJuIC1F SU5WQUw7CisKKwkvKgorCSAqIEJhY2tlbmQgb25seSBzdXBwb3J0cyAxIGluZmxpZ2h0IGFjY2Vw dCByZXF1ZXN0LCB3aWxsIHJldHVybgorCSAqIGVycm9ycyBmb3IgdGhlIG90aGVycworCSAqLwor CWlmICh0ZXN0X2FuZF9zZXRfYml0KFBWQ0FMTFNfRkxBR19BQ0NFUFRfSU5GTElHSFQsCisJCQkg ICAgICh2b2lkICopJm1hcC0+cGFzc2l2ZS5mbGFncykpIHsKKwkJaWYgKHdhaXRfZXZlbnRfaW50 ZXJydXB0aWJsZShtYXAtPnBhc3NpdmUuaW5mbGlnaHRfYWNjZXB0X3JlcSwKKwkJCSF0ZXN0X2Fu ZF9zZXRfYml0KFBWQ0FMTFNfRkxBR19BQ0NFUFRfSU5GTElHSFQsCisJCQkJCSAgKHZvaWQgKikm bWFwLT5wYXNzaXZlLmZsYWdzKSkKKwkJCSE9IDApCisJCQlyZXR1cm4gLUVJTlRSOworCX0KKwor CisJbmV3c29jay0+c2sgPSBremFsbG9jKHNpemVvZigqbmV3c29jay0+c2spLCBHRlBfS0VSTkVM KTsKKwlpZiAobmV3c29jay0+c2sgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzcGlu X2xvY2soJmJlZGF0YS0+cHZjYWxsc3NfbG9jayk7CisJcmVxX2lkID0gYmVkYXRhLT5yaW5nLnJl cV9wcm9kX3B2dCAmIChSSU5HX1NJWkUoJmJlZGF0YS0+cmluZykgLSAxKTsKKwlCVUdfT04ocmVx X2lkID49IFBWQ0FMTFNfTlJfUkVRX1BFUl9SSU5HKTsKKwlpZiAoUklOR19GVUxMKCZiZWRhdGEt PnJpbmcpIHx8CisJICAgIFJFQURfT05DRShiZWRhdGEtPnJzcFtyZXFfaWRdLnJlcV9pZCkgIT0g UFZDQUxMU19JTlZBTElEX0lEKSB7CisJCXNwaW5fdW5sb2NrKCZiZWRhdGEtPnB2Y2FsbHNzX2xv Y2spOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisKKwltYXAyID0gY3JlYXRlX2FjdGl2ZSgmZXZ0 Y2huKTsKKworCXJlcSA9IFJJTkdfR0VUX1JFUVVFU1QoJmJlZGF0YS0+cmluZywgcmVxX2lkKTsK KwlyZXEtPnJlcV9pZCA9IHJlcV9pZDsKKwlyZXEtPmNtZCA9IFBWQ0FMTFNfQUNDRVBUOworCXJl cS0+dS5hY2NlcHQuaWQgPSAodWludDY0X3QpIHNvY2s7CisJcmVxLT51LmFjY2VwdC5yZWYgPSBt YXAyLT5hY3RpdmUucmVmOworCXJlcS0+dS5hY2NlcHQuaWRfbmV3ID0gKHVpbnQ2NF90KSBuZXdz b2NrOworCXJlcS0+dS5hY2NlcHQuZXZ0Y2huID0gZXZ0Y2huOworCisJbGlzdF9hZGRfdGFpbCgm bWFwMi0+bGlzdCwgJmJlZGF0YS0+c29ja2V0X21hcHBpbmdzKTsKKwlXUklURV9PTkNFKG5ld3Nv Y2stPnNrLT5za19zZW5kX2hlYWQsICh2b2lkICopbWFwMik7CisJbWFwMi0+c29jayA9IG5ld3Nv Y2s7CisKKwliZWRhdGEtPnJpbmcucmVxX3Byb2RfcHZ0Kys7CisJUklOR19QVVNIX1JFUVVFU1RT X0FORF9DSEVDS19OT1RJRlkoJmJlZGF0YS0+cmluZywgbm90aWZ5KTsKKwlzcGluX3VubG9jaygm YmVkYXRhLT5wdmNhbGxzc19sb2NrKTsKKwlpZiAobm90aWZ5KQorCQlub3RpZnlfcmVtb3RlX3Zp YV9pcnEoYmVkYXRhLT5pcnEpOworCisJd2FpdF9ldmVudChiZWRhdGEtPmluZmxpZ2h0X3JlcSwK KwkJICAgUkVBRF9PTkNFKGJlZGF0YS0+cnNwW3JlcV9pZF0ucmVxX2lkKSA9PSByZXFfaWQpOwor CisJY2xlYXJfYml0KFBWQ0FMTFNfRkxBR19BQ0NFUFRfSU5GTElHSFQsICh2b2lkICopJm1hcC0+ cGFzc2l2ZS5mbGFncyk7CisJd2FrZV91cCgmbWFwLT5wYXNzaXZlLmluZmxpZ2h0X2FjY2VwdF9y ZXEpOworCisJcmV0ID0gYmVkYXRhLT5yc3BbcmVxX2lkXS5yZXQ7CisJLyogcmVhZCByZXQsIHRo ZW4gc2V0IHRoaXMgcnNwIHNsb3QgdG8gYmUgcmV1c2VkICovCisJc21wX21iKCk7CisJV1JJVEVf T05DRShiZWRhdGEtPnJzcFtyZXFfaWRdLnJlcV9pZCwgUFZDQUxMU19JTlZBTElEX0lEKTsKKwly ZXR1cm4gcmV0OworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgcHZj YWxsc19mcm9udF9pZHNbXSA9IHsKIAl7ICJwdmNhbGxzIiB9LAogCXsgIiIgfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5oIGIvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9u dC5oCmluZGV4IGFhOGZlMTAuLmFiNGYxZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3B2Y2Fs bHMtZnJvbnQuaAorKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmgKQEAgLTEwLDUgKzEw LDggQEAgaW50IHB2Y2FsbHNfZnJvbnRfYmluZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQkgICAg ICAgc3RydWN0IHNvY2thZGRyICphZGRyLAogCQkgICAgICAgaW50IGFkZHJfbGVuKTsKIGludCBw dmNhbGxzX2Zyb250X2xpc3RlbihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgYmFja2xvZyk7Citp bnQgcHZjYWxsc19mcm9udF9hY2NlcHQoc3RydWN0IHNvY2tldCAqc29jaywKKwkJCSBzdHJ1Y3Qg c29ja2V0ICpuZXdzb2NrLAorCQkJIGludCBmbGFncyk7CiAKICNlbmRpZgotLSAKMS45LjEKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK