All REQ_BLOCK_PC requests are bio backed now. This patch was made against 2.6.12-rc5 but works with scsi-misc. --- linux-2.6.12-rc5.orig/drivers/scsi/scsi_lib.c 2005-06-03 03:23:47.000000000 -0700 +++ linux-2.6.12-rc5/drivers/scsi/scsi_lib.c 2005-06-03 14:31:41.000000000 -0700 @@ -920,24 +920,19 @@ static int scsi_init_io(struct scsi_cmnd int count; /* - * if this is a rq->data based REQ_BLOCK_PC, setup for a non-sg xfer + * we use scatter-gather for all requests with data + * (it makes highmem I/O easier to support without kmapping pages) */ - if ((req->flags & REQ_BLOCK_PC) && !req->bio) { - cmd->request_bufflen = req->data_len; - cmd->request_buffer = req->data; - req->buffer = req->data; - cmd->use_sg = 0; + cmd->use_sg = req->nr_phys_segments; + if (!cmd->use_sg) { + BUG_ON(req->bio || req->data); + cmd->request_bufflen = 0; + cmd->request_buffer = NULL; + req->buffer = NULL; return 0; } /* - * we used to not use scatter-gather for single segment request, - * but now we do (it makes highmem I/O easier to support without - * kmapping pages) - */ - cmd->use_sg = req->nr_phys_segments; - - /* * if sg table allocation fails, requeue request later. */ sgpnt = scsi_alloc_sgtable(cmd, GFP_ATOMIC); - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html