ide-cd: factor out request sense fixup from cdrom_pc_intr()
PATCH 47/63 ide-cd: factor out request sense fixup from cdrom_pc_intr()
This is a preparation for cdrom_pc_intr() and cdrom_newpc_intr() merge.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/ide-cd.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-)
drivers/ide/ide-cd.c +15 -10
@@ -1047,6 +1047,20 @@ static ide_startstop_t cdrom_start_read* Execute all other packet commands. */ +static void ide_cd_request_sense_fixup (struct request *rq) +{ +/* +* Some of the trailing request sense fields are optional, +* and some drives don't send them. Sigh. +*/ +if (rq->cmd[0 ] ==GPCMD_REQUEST_SENSE && + rq->data_len >0 && rq->data_len <=5 ) +while (rq->data_len >0 ) { + *(u8 *)rq->data++ =0 ; + --rq->data_len; + } +} +/* Interrupt routine for packet command completion. */ static ide_startstop_t cdrom_pc_intr (ide_drive_t *drive) {
@@ -1069,16 +1083,7 @@ static ide_startstop_t cdrom_pc_intr (id/* If DRQ is clear, the command has completed. Complain if we still have data left to transfer. */ if ((stat &DRQ_STAT ) ==0 ) { -/* Some of the trailing request sense fields are optional, and -some drives don't send them. Sigh. */ -if (rq->cmd[0 ] ==GPCMD_REQUEST_SENSE && - rq->data_len >0 && - rq->data_len <=5 ) { -while (rq->data_len >0 ) { - *(unsigned char *)rq->data++ =0 ; - --rq->data_len; - } - } +ide_cd_request_sense_fixup (rq);if (rq->data_len ==0 )cdrom_end_request (drive,1 );