Hello, James.
James Bottomley wrote:
On Wed, 2005-03-23 at 11:14 +0900, Tejun Heo wrote:
01_scsi_remove_scsi_release_buffers.patch
Buffer bouncing hasn't been done inside the scsi midlayer for quite sometime now, but bounce-buffer release paths are still around. This patch removes these unused paths.
Yes, but scsi_release_buffers isn't referring to bounce buffers anymore, it's simply releasing the sg buffers.
That's what I did. Replacing scsi_release_buffers() calls with calls to scsi_free_sgtable(). The only logic removed is bounce-buffer release/copy-back.
[...]
- else if (cmd->buffer != req->buffer) { - if (rq_data_dir(req) == READ) { - unsigned long flags; - char *to = bio_kmap_irq(req->bio, &flags); - memcpy(to, cmd->buffer, cmd->bufflen); - bio_kunmap_irq(to, &flags); - } - kfree(cmd->buffer); - }
I'll defer to Jens here, but I don't thing you can just remove this ... sg_io with a misaligned buffer will fail without this.
AFAIK, those are done by blk_rq_map_user() and blk_rq_unmap_user(), both of which are invoked directly by sg_io().
That rather nasty code freeing cmd->buffer needs to be in there as well ... so it does make sense to keep this API
That code is invoked only for REQ_BLOCK_PC requests without bio, and I digged pretty hard but, in those cases, AFAICT, the callers are responsible for supplying dma-able buffers and nothing seems to alter cmd->buffer after the cmd gets initialized, but I might be missing things here. If so, please point out.
Thanks.
-- tejun
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/