From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PULL 15/21] xen/9pfs: implement in/out_iov_from_pdu and vmarshal/vunmarshal Date: Fri, 21 Apr 2017 13:14:56 -0700 Message-ID: <1492805702-19690-15-git-send-email-sstabellini@kernel.org> References: <1492805702-19690-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d1exq-0000GU-UF for xen-devel@lists.xenproject.org; Fri, 21 Apr 2017 20:15:35 +0000 In-Reply-To: <1492805702-19690-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: peter.maydell@linaro.org Cc: jgross@suse.com, sstabellini@kernel.org, stefanha@gmail.com, qemu-devel@nongnu.org, Greg Kurz , Stefano Stabellini , "Aneesh Kumar K.V" , stefanha@redhat.com, anthony.perard@citrix.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SW1wbGVtZW50IHhlbl85cGZzX2luaXRfaW4vb3V0X2lvdl9mcm9tX3BkdSBhbmQKeGVuXzlwZnNf cGR1X3ZtYXJzaGFsL3Z1bm1hcnNoYWxsIGJ5IGNyZWF0aW5nIG5ldyBzZyBwb2ludGluZyB0byB0 aGUKZGF0YSBvbiB0aGUgcmluZy4KClRoaXMgaXMgc2FmZSBhcyB3ZSBvbmx5IGhhbmRsZSBvbmUg cmVxdWVzdCBwZXIgcmluZyBhdCBhbnkgZ2l2ZW4gdGltZS4KClNpZ25lZC1vZmYtYnk6IFN0ZWZh bm8gU3RhYmVsbGluaSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KQ0M6IGFudGhvbnkucGVyYXJkQGNp dHJpeC5jb20KQ0M6IGpncm9zc0BzdXNlLmNvbQpDQzogQW5lZXNoIEt1bWFyIEsuViA8YW5lZXNo Lmt1bWFyQGxpbnV4LnZuZXQuaWJtLmNvbT4KQ0M6IEdyZWcgS3VyeiA8Z3JvdWdAa2FvZC5vcmc+ Ci0tLQogaHcvOXBmcy94ZW4tOXAtYmFja2VuZC5jIHwgOTkgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOTcgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ody85cGZzL3hlbi05cC1iYWNrZW5k LmMgYi9ody85cGZzL3hlbi05cC1iYWNrZW5kLmMKaW5kZXggNjBkNDlkMS4uMGMxZGQ1ZSAxMDA2 NDQKLS0tIGEvaHcvOXBmcy94ZW4tOXAtYmFja2VuZC5jCisrKyBiL2h3LzlwZnMveGVuLTlwLWJh Y2tlbmQuYwpAQCAtNTcsMTIgKzU3LDgxIEBAIHR5cGVkZWYgc3RydWN0IFhlbjlwZnNEZXYgewog ICAgIFhlbjlwZnNSaW5nICpyaW5nczsKIH0gWGVuOXBmc0RldjsKIAorc3RhdGljIHZvaWQgeGVu XzlwZnNfaW5fc2coWGVuOXBmc1JpbmcgKnJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgaW92ZWMgKmluX3NnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpu dW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpZHgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCBzaXplKQoreworICAgIFJJTkdfSURYIGNvbnMsIHBy b2QsIG1hc2tlZF9wcm9kLCBtYXNrZWRfY29uczsKKworICAgIGNvbnMgPSByaW5nLT5pbnRmLT5p bl9jb25zOworICAgIHByb2QgPSByaW5nLT5pbnRmLT5pbl9wcm9kOworICAgIHhlbl9ybWIoKTsK KyAgICBtYXNrZWRfcHJvZCA9IHhlbl85cGZzX21hc2socHJvZCwgWEVOX0ZMRVhfUklOR19TSVpF KHJpbmctPnJpbmdfb3JkZXIpKTsKKyAgICBtYXNrZWRfY29ucyA9IHhlbl85cGZzX21hc2soY29u cywgWEVOX0ZMRVhfUklOR19TSVpFKHJpbmctPnJpbmdfb3JkZXIpKTsKKworICAgIGlmIChtYXNr ZWRfcHJvZCA8IG1hc2tlZF9jb25zKSB7CisgICAgICAgIGluX3NnWzBdLmlvdl9iYXNlID0gcmlu Zy0+cmluZy5pbiArIG1hc2tlZF9wcm9kOworICAgICAgICBpbl9zZ1swXS5pb3ZfbGVuID0gbWFz a2VkX2NvbnMgLSBtYXNrZWRfcHJvZDsKKyAgICAgICAgKm51bSA9IDE7CisgICAgfSBlbHNlIHsK KyAgICAgICAgaW5fc2dbMF0uaW92X2Jhc2UgPSByaW5nLT5yaW5nLmluICsgbWFza2VkX3Byb2Q7 CisgICAgICAgIGluX3NnWzBdLmlvdl9sZW4gPSBYRU5fRkxFWF9SSU5HX1NJWkUocmluZy0+cmlu Z19vcmRlcikgLSBtYXNrZWRfcHJvZDsKKyAgICAgICAgaW5fc2dbMV0uaW92X2Jhc2UgPSByaW5n LT5yaW5nLmluOworICAgICAgICBpbl9zZ1sxXS5pb3ZfbGVuID0gbWFza2VkX2NvbnM7CisgICAg ICAgICpudW0gPSAyOworICAgIH0KK30KKworc3RhdGljIHZvaWQgeGVuXzlwZnNfb3V0X3NnKFhl bjlwZnNSaW5nICpyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb3Zl YyAqb3V0X3NnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbnVtLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGlkeCkKK3sKKyAgICBSSU5HX0lEWCBjb25z LCBwcm9kLCBtYXNrZWRfcHJvZCwgbWFza2VkX2NvbnM7CisKKyAgICBjb25zID0gcmluZy0+aW50 Zi0+b3V0X2NvbnM7CisgICAgcHJvZCA9IHJpbmctPmludGYtPm91dF9wcm9kOworICAgIHhlbl9y bWIoKTsKKyAgICBtYXNrZWRfcHJvZCA9IHhlbl85cGZzX21hc2socHJvZCwgWEVOX0ZMRVhfUklO R19TSVpFKHJpbmctPnJpbmdfb3JkZXIpKTsKKyAgICBtYXNrZWRfY29ucyA9IHhlbl85cGZzX21h c2soY29ucywgWEVOX0ZMRVhfUklOR19TSVpFKHJpbmctPnJpbmdfb3JkZXIpKTsKKworICAgIGlm IChtYXNrZWRfY29ucyA8IG1hc2tlZF9wcm9kKSB7CisgICAgICAgIG91dF9zZ1swXS5pb3ZfYmFz ZSA9IHJpbmctPnJpbmcub3V0ICsgbWFza2VkX2NvbnM7CisgICAgICAgIG91dF9zZ1swXS5pb3Zf bGVuID0gcmluZy0+b3V0X3NpemU7CisgICAgICAgICpudW0gPSAxOworICAgIH0gZWxzZSB7Cisg ICAgICAgIGlmIChyaW5nLT5vdXRfc2l6ZSA+CisgICAgICAgICAgICAoWEVOX0ZMRVhfUklOR19T SVpFKHJpbmctPnJpbmdfb3JkZXIpIC0gbWFza2VkX2NvbnMpKSB7CisgICAgICAgICAgICBvdXRf c2dbMF0uaW92X2Jhc2UgPSByaW5nLT5yaW5nLm91dCArIG1hc2tlZF9jb25zOworICAgICAgICAg ICAgb3V0X3NnWzBdLmlvdl9sZW4gPSBYRU5fRkxFWF9SSU5HX1NJWkUocmluZy0+cmluZ19vcmRl cikgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrZWRfY29uczsKKyAgICAg ICAgICAgIG91dF9zZ1sxXS5pb3ZfYmFzZSA9IHJpbmctPnJpbmcub3V0OworICAgICAgICAgICAg b3V0X3NnWzFdLmlvdl9sZW4gPSByaW5nLT5vdXRfc2l6ZSAtCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChYRU5fRkxFWF9SSU5HX1NJWkUocmluZy0+cmluZ19vcmRlcikgLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFza2VkX2NvbnMpOworICAgICAgICAgICAg Km51bSA9IDI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvdXRfc2dbMF0uaW92X2Jh c2UgPSByaW5nLT5yaW5nLm91dCArIG1hc2tlZF9jb25zOworICAgICAgICAgICAgb3V0X3NnWzBd Lmlvdl9sZW4gPSByaW5nLT5vdXRfc2l6ZTsKKyAgICAgICAgICAgICpudW0gPSAxOworICAgICAg ICB9CisgICAgfQorfQorCiBzdGF0aWMgc3NpemVfdCB4ZW5fOXBmc19wZHVfdm1hcnNoYWwoVjlm c1BEVSAqcGR1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBv ZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq Zm10LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgYXApCiB7 Ci0gICAgcmV0dXJuIDA7CisgICAgWGVuOXBmc0RldiAqeGVuXzlwZnMgPSBjb250YWluZXJfb2Yo cGR1LT5zLCBYZW45cGZzRGV2LCBzdGF0ZSk7CisgICAgc3RydWN0IGlvdmVjIGluX3NnWzJdOwor ICAgIGludCBudW07CisKKyAgICB4ZW5fOXBmc19pbl9zZygmeGVuXzlwZnMtPnJpbmdzW3BkdS0+ dGFnICUgeGVuXzlwZnMtPm51bV9yaW5nc10sCisgICAgICAgICAgICAgICAgICAgaW5fc2csICZu dW0sIHBkdS0+aWR4LCBST1VORF9VUChvZmZzZXQgKyAxMjgsIDUxMikpOworICAgIHJldHVybiB2 OWZzX2lvdl92bWFyc2hhbChpbl9zZywgbnVtLCBvZmZzZXQsIDAsIGZtdCwgYXApOwogfQogCiBz dGF0aWMgc3NpemVfdCB4ZW5fOXBmc19wZHVfdnVubWFyc2hhbChWOWZzUERVICpwZHUsCkBAIC03 MCwxMyArMTM5LDI5IEBAIHN0YXRpYyBzc2l6ZV90IHhlbl85cGZzX3BkdV92dW5tYXJzaGFsKFY5 ZnNQRFUgKnBkdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKmZtdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xp c3QgYXApCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgWGVuOXBmc0RldiAqeGVuXzlwZnMgPSBjb250 YWluZXJfb2YocGR1LT5zLCBYZW45cGZzRGV2LCBzdGF0ZSk7CisgICAgc3RydWN0IGlvdmVjIG91 dF9zZ1syXTsKKyAgICBpbnQgbnVtOworCisgICAgeGVuXzlwZnNfb3V0X3NnKCZ4ZW5fOXBmcy0+ cmluZ3NbcGR1LT50YWcgJSB4ZW5fOXBmcy0+bnVtX3JpbmdzXSwKKyAgICAgICAgICAgICAgICAg ICAgb3V0X3NnLCAmbnVtLCBwZHUtPmlkeCk7CisgICAgcmV0dXJuIHY5ZnNfaW92X3Z1bm1hcnNo YWwob3V0X3NnLCBudW0sIG9mZnNldCwgMCwgZm10LCBhcCk7CiB9CiAKIHN0YXRpYyB2b2lkIHhl bl85cGZzX2luaXRfb3V0X2lvdl9mcm9tX3BkdShWOWZzUERVICpwZHUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlvdmVjICoqcGlvdiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnBuaW92 KQogeworICAgIFhlbjlwZnNEZXYgKnhlbl85cGZzID0gY29udGFpbmVyX29mKHBkdS0+cywgWGVu OXBmc0Rldiwgc3RhdGUpOworICAgIFhlbjlwZnNSaW5nICpyaW5nID0gJnhlbl85cGZzLT5yaW5n c1twZHUtPnRhZyAlIHhlbl85cGZzLT5udW1fcmluZ3NdOworICAgIGludCBudW07CisKKyAgICBn X2ZyZWUocmluZy0+c2cpOworCisgICAgcmluZy0+c2cgPSBnX21hbGxvYzAoc2l6ZW9mKCpyaW5n LT5zZykgKiAyKTsKKyAgICB4ZW5fOXBmc19vdXRfc2cocmluZywgcmluZy0+c2csICZudW0sIHBk dS0+aWR4KTsKKyAgICAqcGlvdiA9IHJpbmctPnNnOworICAgICpwbmlvdiA9IG51bTsKIH0KIAog c3RhdGljIHZvaWQgeGVuXzlwZnNfaW5pdF9pbl9pb3ZfZnJvbV9wZHUoVjlmc1BEVSAqcGR1LApA QCAtODQsNiArMTY5LDE2IEBAIHN0YXRpYyB2b2lkIHhlbl85cGZzX2luaXRfaW5faW92X2Zyb21f cGR1KFY5ZnNQRFUgKnBkdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCAqcG5pb3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKKyAgICBYZW45cGZzRGV2ICp4ZW5fOXBmcyA9IGNv bnRhaW5lcl9vZihwZHUtPnMsIFhlbjlwZnNEZXYsIHN0YXRlKTsKKyAgICBYZW45cGZzUmluZyAq cmluZyA9ICZ4ZW5fOXBmcy0+cmluZ3NbcGR1LT50YWcgJSB4ZW5fOXBmcy0+bnVtX3JpbmdzXTsK KyAgICBpbnQgbnVtOworCisgICAgZ19mcmVlKHJpbmctPnNnKTsKKworICAgIHJpbmctPnNnID0g Z19tYWxsb2MwKHNpemVvZigqcmluZy0+c2cpICogMik7CisgICAgeGVuXzlwZnNfaW5fc2cocmlu ZywgcmluZy0+c2csICZudW0sIHBkdS0+aWR4LCBzaXplKTsKKyAgICAqcGlvdiA9IHJpbmctPnNn OworICAgICpwbmlvdiA9IG51bTsKIH0KIAogc3RhdGljIHZvaWQgeGVuXzlwZnNfcHVzaF9hbmRf bm90aWZ5KFY5ZnNQRFUgKnBkdSkKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==