> 29_ide_explicit_TASKFILE_NO_DATA.patch
> 
>       Make data_phase explicit in NO_DATA cases.


Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>


Index: linux-ide-export/drivers/ide/ide-disk.c
===================================================================
--- linux-ide-export.orig/drivers/ide/ide-disk.c        2005-02-02 
10:28:07.852771465 +0900
+++ linux-ide-export/drivers/ide/ide-disk.c     2005-02-02 10:28:08.121727827 
+0900
@@ -300,6 +300,7 @@ static unsigned long idedisk_read_native
        args.tfRegister[IDE_SELECT_OFFSET]      = 0x40;
        args.tfRegister[IDE_COMMAND_OFFSET]     = WIN_READ_NATIVE_MAX;
        args.command_type                       = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase                         = TASKFILE_NO_DATA;
        args.handler                            = &task_no_data_intr;
        /* submit command request */
        ide_raw_taskfile(drive, &args, NULL);
@@ -326,6 +327,7 @@ static unsigned long long idedisk_read_n
        args.tfRegister[IDE_SELECT_OFFSET]      = 0x40;
        args.tfRegister[IDE_COMMAND_OFFSET]     = WIN_READ_NATIVE_MAX_EXT;
        args.command_type                       = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase                         = TASKFILE_NO_DATA;
        args.handler                            = &task_no_data_intr;
         /* submit command request */
         ide_raw_taskfile(drive, &args, NULL);
@@ -362,6 +364,7 @@ static unsigned long idedisk_set_max_add
        args.tfRegister[IDE_SELECT_OFFSET]      = ((addr_req >> 24) & 0x0f) | 
0x40;
        args.tfRegister[IDE_COMMAND_OFFSET]     = WIN_SET_MAX;
        args.command_type                       = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase                         = TASKFILE_NO_DATA;
        args.handler                            = &task_no_data_intr;
        /* submit command request */
        ide_raw_taskfile(drive, &args, NULL);
@@ -395,6 +398,7 @@ static unsigned long long idedisk_set_ma
        args.hobRegister[IDE_SELECT_OFFSET]     = 0x40;
        args.hobRegister[IDE_CONTROL_OFFSET_HOB]= (drive->ctl|0x80);
        args.command_type                       = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase                         = TASKFILE_NO_DATA;
        args.handler                            = &task_no_data_intr;
        /* submit command request */
        ide_raw_taskfile(drive, &args, NULL);
@@ -534,6 +538,7 @@ static ide_startstop_t idedisk_special (
                        args.tfRegister[IDE_SELECT_OFFSET]  = 
((drive->head-1)|drive->select.all)&0xBF;
                        args.tfRegister[IDE_COMMAND_OFFSET] = WIN_SPECIFY;
                        args.command_type = IDE_DRIVE_TASK_NO_DATA;
+                       args.data_phase   = TASKFILE_NO_DATA;
                        args.handler      = &set_geometry_intr;
                        do_taskfile(drive, &args);
                }
@@ -545,6 +550,7 @@ static ide_startstop_t idedisk_special (
                        args.tfRegister[IDE_NSECTOR_OFFSET] = drive->sect;
                        args.tfRegister[IDE_COMMAND_OFFSET] = WIN_RESTORE;
                        args.command_type = IDE_DRIVE_TASK_NO_DATA;
+                       args.data_phase   = TASKFILE_NO_DATA;
                        args.handler      = &recal_intr;
                        do_taskfile(drive, &args);
                }
@@ -558,6 +564,7 @@ static ide_startstop_t idedisk_special (
                        args.tfRegister[IDE_NSECTOR_OFFSET] = drive->mult_req;
                        args.tfRegister[IDE_COMMAND_OFFSET] = WIN_SETMULT;
                        args.command_type = IDE_DRIVE_TASK_NO_DATA;
+                       args.data_phase   = TASKFILE_NO_DATA;
                        args.handler      = &set_multmode_intr;
                        do_taskfile(drive, &args);
                }
@@ -597,6 +604,7 @@ static int smart_enable(ide_drive_t *dri
        args.tfRegister[IDE_HCYL_OFFSET]        = SMART_HCYL_PASS;
        args.tfRegister[IDE_COMMAND_OFFSET]     = WIN_SMART;
        args.command_type                       = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase                         = TASKFILE_NO_DATA;
        args.handler                            = &task_no_data_intr;
        return ide_raw_taskfile(drive, &args, NULL);
 }
@@ -720,6 +728,7 @@ static int idedisk_issue_flush(request_q
                args.tfRegister[IDE_COMMAND_OFFSET] = WIN_FLUSH_CACHE;
 
        args.command_type = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase = TASKFILE_NO_DATA;
        args.handler = task_no_data_intr;
 
        rq = blk_get_request(q, WRITE, __GFP_WAIT);
@@ -779,6 +788,7 @@ static int write_cache(ide_drive_t *driv
                        SETFEATURES_EN_WCACHE : SETFEATURES_DIS_WCACHE;
        args.tfRegister[IDE_COMMAND_OFFSET]     = WIN_SETFEATURES;
        args.command_type                       = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase                         = TASKFILE_NO_DATA;
        args.handler                            = &task_no_data_intr;
 
        err = ide_raw_taskfile(drive, &args, NULL);
@@ -799,6 +809,7 @@ static int do_idedisk_flushcache (ide_dr
        else
                args.tfRegister[IDE_COMMAND_OFFSET]     = WIN_FLUSH_CACHE;
        args.command_type                       = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase                         = TASKFILE_NO_DATA;
        args.handler                            = &task_no_data_intr;
        return ide_raw_taskfile(drive, &args, NULL);
 }
@@ -813,6 +824,7 @@ static int set_acoustic (ide_drive_t *dr
        args.tfRegister[IDE_NSECTOR_OFFSET]     = arg;
        args.tfRegister[IDE_COMMAND_OFFSET]     = WIN_SETFEATURES;
        args.command_type = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase   = TASKFILE_NO_DATA;
        args.handler      = &task_no_data_intr;
        ide_raw_taskfile(drive, &args, NULL);
        drive->acoustic = arg;
@@ -906,19 +918,22 @@ static ide_startstop_t idedisk_start_pow
                else
                        args->tfRegister[IDE_COMMAND_OFFSET] = WIN_FLUSH_CACHE;
                args->command_type = IDE_DRIVE_TASK_NO_DATA;
+               args->data_phase   = TASKFILE_NO_DATA;
                args->handler      = &task_no_data_intr;
                return do_taskfile(drive, args);
 
        case idedisk_pm_standby:        /* Suspend step 2 (standby) */
                args->tfRegister[IDE_COMMAND_OFFSET] = WIN_STANDBYNOW1;
                args->command_type = IDE_DRIVE_TASK_NO_DATA;
+               args->data_phase   = TASKFILE_NO_DATA;
                args->handler      = &task_no_data_intr;
                return do_taskfile(drive, args);
 
        case idedisk_pm_idle:           /* Resume step 1 (idle) */
                args->tfRegister[IDE_COMMAND_OFFSET] = WIN_IDLEIMMEDIATE;
                args->command_type = IDE_DRIVE_TASK_NO_DATA;
-               args->handler = task_no_data_intr;
+               args->data_phase   = TASKFILE_NO_DATA;
+               args->handler      = task_no_data_intr;
                return do_taskfile(drive, args);
 
        case idedisk_pm_restore_dma:    /* Resume step 2 (restore DMA) */
@@ -1195,6 +1210,7 @@ static int idedisk_open(struct inode *in
                memset(&args, 0, sizeof(ide_task_t));
                args.tfRegister[IDE_COMMAND_OFFSET] = WIN_DOORLOCK;
                args.command_type = IDE_DRIVE_TASK_NO_DATA;
+               args.data_phase   = TASKFILE_NO_DATA;
                args.handler      = &task_no_data_intr;
                check_disk_change(inode->i_bdev);
                /*
@@ -1218,6 +1234,7 @@ static int idedisk_release(struct inode 
                memset(&args, 0, sizeof(ide_task_t));
                args.tfRegister[IDE_COMMAND_OFFSET] = WIN_DOORUNLOCK;
                args.command_type = IDE_DRIVE_TASK_NO_DATA;
+               args.data_phase   = TASKFILE_NO_DATA;
                args.handler      = &task_no_data_intr;
                if (drive->doorlocking && ide_raw_taskfile(drive, &args, NULL))
                        drive->doorlocking = 0;
Index: linux-ide-export/drivers/ide/ide.c
===================================================================
--- linux-ide-export.orig/drivers/ide/ide.c     2005-02-02 10:28:07.855770979 
+0900
+++ linux-ide-export/drivers/ide/ide.c  2005-02-02 10:28:08.122727665 +0900
@@ -1271,6 +1271,7 @@ static int set_xfer_rate (ide_drive_t *d
        args.tfRegister[IDE_FEATURE_OFFSET]     = SETFEATURES_XFER;
        args.tfRegister[IDE_NSECTOR_OFFSET]     = arg;
        args.command_type                       = IDE_DRIVE_TASK_NO_DATA;
+       args.data_phase                         = TASKFILE_NO_DATA;
        args.handler                            = task_no_data_intr;
 
        err = ide_raw_taskfile(drive, &args, NULL);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to