Thread (1 message) 1 message, 1 author, 2016-07-29

RE: [PATCH v2 02/15] IB/pvrdma: Add device command support

From: Adit Ranadive <hidden>
Date: 2016-07-29 21:31:16

On Fri, 29 Jul 2016 12:37:29 +0000, Leon Romanovsky [off-list ref] wrote:
On Thu, Jul 28, 2016 at 10:51:39PM +0000, Adit Ranadive wrote:
quoted
On Mon, 18 Jul 2016 15:46:53 +0300 Yuval Shaia [off-list ref] wrote:
quoted
On Tue, Jul 12, 2016 at 12:36:32PM -0700, Adit Ranadive wrote:
quoted
This patch enables posting Verb requests and receiving responses to/from
the backend PVRDMA emulation layer.
...
quoted
quoted
+int
+pvrdma_cmd_post(struct pvrdma_dev *dev, union pvrdma_cmd_req *req,
+		bool expect_resp, union pvrdma_cmd_resp *resp)
+{
+	int err;
+
+	dev_dbg(&dev->pdev->dev, "post request to device\n");
+
+	/* Serializiation */
+	down(&dev->cmd_sema);
+
+	spin_lock(&dev->cmd_lock);
+	memcpy(dev->cmd_slot, req, sizeof(*req));
Just to protect against memory corruption suggesting to do:
	memcpy(dev->cmd_slot, req, min(PAGE_SIZE, sizeof(*req)));
Done.
Hi Adit,
I didn't check how "dev->cmd_slot" was declared and if it is equal to
req in size. Additionally I didn't check if memcpy has any size
limitations, but wanted to warn you that implementation of this
suggestion as is will leave your system in much worse situation of
partially copied data.

if you really want to check sizes, please do it with BUILD_ON compilation
macro. I have serious doubts if you need it.

Thanks
Hi Leon,

Thanks for taking a look!
I think this is okay to do was that we allocate a page for cmd_slot anyways
and the size of req will always be smaller than PAGE_SIZE. If the request is
malformed, our virtual hardware should throw an error for it.
I dont think we would run into partially copied data.

Having said that, I dont see a necessary advantage of using min here so am
willing to drop it if you feel strongly about it.

Can you clarify what you mean by memcpy size limitations?

Thanks,
Adit
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help