Skip to content

Commit

Permalink
ide: report timeouts in ide_busy_sleep()
Browse files Browse the repository at this point in the history
* change 'hwif' argument to 'drive'
* report an error on timeout

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
  • Loading branch information
bzolnier committed May 22, 2009
1 parent cc30137 commit 28ee9bc
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
9 changes: 6 additions & 3 deletions drivers/ide/ide-probe.c
Expand Up @@ -295,7 +295,7 @@ int ide_dev_read_id(ide_drive_t *drive, u8 cmd, u16 *id)

timeout = ((cmd == ATA_CMD_ID_ATA) ? WAIT_WORSTCASE : WAIT_PIDENTIFY) / 2;

if (ide_busy_sleep(hwif, timeout, use_altstatus))
if (ide_busy_sleep(drive, timeout, use_altstatus))
return 1;

/* wait for IRQ and ATA_DRQ */
Expand All @@ -316,8 +316,9 @@ int ide_dev_read_id(ide_drive_t *drive, u8 cmd, u16 *id)
return rc;
}

int ide_busy_sleep(ide_hwif_t *hwif, unsigned long timeout, int altstatus)
int ide_busy_sleep(ide_drive_t *drive, unsigned long timeout, int altstatus)
{
ide_hwif_t *hwif = drive->hwif;
u8 stat;

timeout += jiffies;
Expand All @@ -330,6 +331,8 @@ int ide_busy_sleep(ide_hwif_t *hwif, unsigned long timeout, int altstatus)
return 0;
} while (time_before(jiffies, timeout));

printk(KERN_ERR "%s: timeout in %s\n", drive->name, __func__);

return 1; /* drive timed-out */
}

Expand Down Expand Up @@ -420,7 +423,7 @@ static int do_probe (ide_drive_t *drive, u8 cmd)
tp_ops->dev_select(drive);
msleep(50);
tp_ops->exec_command(hwif, ATA_CMD_DEV_RESET);
(void)ide_busy_sleep(hwif, WAIT_WORSTCASE, 0);
(void)ide_busy_sleep(drive, WAIT_WORSTCASE, 0);
rc = ide_dev_read_id(drive, cmd, id);
}

Expand Down
2 changes: 1 addition & 1 deletion include/linux/ide.h
Expand Up @@ -1109,7 +1109,7 @@ void ide_fix_driveid(u16 *);

extern void ide_fixstring(u8 *, const int, const int);

int ide_busy_sleep(ide_hwif_t *, unsigned long, int);
int ide_busy_sleep(ide_drive_t *, unsigned long, int);

int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long);

Expand Down

0 comments on commit 28ee9bc

Please sign in to comment.