ide-cd: fix "missing data" handling in cdrom_pc_intr()
PATCH 12/63 ide-cd: fix "missing data" handling in cdrom_pc_intr()
If drive still wants to transfer the data we need to pad the transfer instead of just finishing the request.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/ide-cd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
drivers/ide/ide-cd.c +4 -3
@@ -1500,9 +1500,11 @@ static ide_startstop_t cdrom_pc_intr (idif (xferfunc) {if (!rq->data) { +printk (KERN_ERR "%s: confused, missing data\n" , + drive->name);blk_dump_rq_flags (rq, write ?"cdrom_pc_intr, write" :"cdrom_pc_intr, read" ); - goto confused; + goto pad; }/* Transfer the data. */ xferfunc (drive, rq->data, thislen);
@@ -1515,7 +1517,6 @@ static ide_startstop_t cdrom_pc_intr (idif (write &&blk_sense_request (rq)) rq->sense_len += thislen; }else { -confused: printk (KERN_ERR "%s: cdrom_pc_intr: The drive " "appears confused (ireason = 0x%02x). " "Trying to recover by ending request.\n",
@@ -1524,7 +1525,7 @@ confused:cdrom_end_request (drive,0 );return ide_stopped; } - +pad:/* * If we haven't moved enough data to satisfy the drive, * add some padding.
Quoted 4 lines · Bartlomiej Zolnierkiewicz
If drive still wants to transfer the data we need to pad the transfer instead of just finishing the request.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
Acked-by Sergei Shtylyov <[email protected]>
MBR, Sergei