aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-taskfile.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-19 18:32:37 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-19 18:32:37 -0400
commitdd35b7bb86c1ae6adddf68db71481144941246d1 (patch)
tree5ca439c8f2f9cfabefb0951fdd8e3e0a61ad2c85 /drivers/ide/ide-taskfile.c
parentd3bad45f0232e273cce9237d66c98aafe12c0b0e (diff)
ide: check ->dma_setup() return value in flagged_taskfile()
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-taskfile.c')
-rw-r--r--drivers/ide/ide-taskfile.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index 24c6c3f5e208..6812f4788789 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -837,9 +837,11 @@ ide_startstop_t flagged_taskfile (ide_drive_t *drive, ide_task_t *task)
837 case TASKFILE_OUT_DMA: 837 case TASKFILE_OUT_DMA:
838 case TASKFILE_IN_DMAQ: 838 case TASKFILE_IN_DMAQ:
839 case TASKFILE_IN_DMA: 839 case TASKFILE_IN_DMA:
840 hwif->dma_setup(drive); 840 if (!hwif->dma_setup(drive)) {
841 hwif->dma_exec_cmd(drive, taskfile->command); 841 hwif->dma_exec_cmd(drive, taskfile->command);
842 hwif->dma_start(drive); 842 hwif->dma_start(drive);
843 return ide_started;
844 }
843 break; 845 break;
844 846
845 default: 847 default:
@@ -853,7 +855,8 @@ ide_startstop_t flagged_taskfile (ide_drive_t *drive, ide_task_t *task)
853 return task->prehandler(drive, task->rq); 855 return task->prehandler(drive, task->rq);
854 } 856 }
855 ide_execute_command(drive, taskfile->command, task->handler, WAIT_WORSTCASE, NULL); 857 ide_execute_command(drive, taskfile->command, task->handler, WAIT_WORSTCASE, NULL);
858 return ide_started;
856 } 859 }
857 860
858 return ide_started; 861 return ide_stopped;
859} 862}