Uwe, others, does this patch fix your problem? It will have a few printk's that it spews out, but if it fixes your problem, at least we know a bit more. Linus --- diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c index 2528a0c..f0ff151 100644 --- a/block/scsi_ioctl.c +++ b/block/scsi_ioctl.c @@ -333,8 +333,13 @@ static int sg_io(struct file *file, request_queue_t *q, hdr->sb_len_wr = len; } - if (blk_rq_unmap_user(bio)) + if (rq->bio != bio) + printk("rq->bio = %p, bio = %p\n", rq->bio, bio); + + if (blk_rq_unmap_user(rq->bio)) { + printk("blk_rq_unmap_user failed!\n"); ret = -EFAULT; + } /* may not have succeeded, but output values written to control * structure (struct sg_io_hdr). */ - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html