Thread (48 messages) 48 messages, 6 authors, 2007-05-30

Re: [patch 6/7] ps3: ROM Storage Driver

From: Christoph Hellwig <hch@lst.de>
Date: 2007-05-30 10:02:32
Also in: linux-scsi, lkml

On Tue, May 29, 2007 at 06:21:36PM +0200, Geert Uytterhoeven wrote:
On Tue, 29 May 2007, Christoph Hellwig wrote:
quoted
quoted
+/*
+ * copy data from device into scatter/gather buffer
+ */
+static int fill_from_dev_buffer(struct scsi_cmnd *cmd, const void *buf,
+				int buflen)
+{
+	int k, req_len, act_len, len, active;
+	void *kaddr;
+	struct scatterlist *sgpnt;
+
+	if (!cmd->request_bufflen)
+		return 0;
+
+	if (!cmd->request_buffer)
+		return DID_ERROR << 16;
+
+	if (cmd->sc_data_direction != DMA_BIDIRECTIONAL &&
+	    cmd->sc_data_direction != DMA_FROM_DEVICE)
+		return DID_ERROR << 16;
+
+	if (!cmd->use_sg) {
+		req_len = cmd->request_bufflen;
+		act_len = min(req_len, buflen);
+		memcpy(cmd->request_buffer, buf, act_len);
+		cmd->resid = req_len - act_len;
+		return 0;
+	}
This is never true anymore.
Just to be sure: all four if-cases or only the last one?
That's just in reference to the last one.  The checks above could
be condensed a little more aswell, but I'll comment on further in
the second round of review, in the hope that the command submission
path is a lot more streamline by then already.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help