Linus Torvalds wrote: > Uwe, others, does this patch fix your problem? > I can replicate the problem now using a older box, but same driver. > 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); > + rq->bio is NULL here, so no data is coped back to userspace and it seems nero just stops trying to talk to the drive after this. Because nero just gives up, no more commands are sent and we do not get flooded with status errors like before so it sort of looks like it solves the problem but it doesn't - at least that is what is happening here. The reason for using the bio in that patch is that __end_that_request_first eventually sets rq->bio to NULL so the caller of the blk_execute is supposed to save a pointer to the first bio for later unmapping. - 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