Index: linux/drivers/ide/ide-disk.c =================================================================== --- linux.orig/drivers/ide/ide-disk.c Thu Jun 10 14:59:48 2004 +++ linux/drivers/ide/ide-disk.c Thu Jun 10 15:00:04 2004 @@ -70,6 +70,9 @@ #include #include #include +#ifdef CONFIG_IA64_SGI_SIM +#include +#endif /* FIXME: some day we shouldn't need to look in here! */ @@ -799,6 +802,12 @@ static unsigned long idedisk_read_native ide_task_t args; unsigned long addr = 0; +#ifdef CONFIG_IA64_SGI_SIM + if (IS_RUNNING_ON_SIMULATOR() && !(drive->id->command_set_1 & 0x0400) && + !(drive->id->cfs_enable_2 & 0x0100)) + return addr; +#endif + /* Create IDE/ATA command request structure */ memset(&args, 0, sizeof(ide_task_t)); args.tfRegister[IDE_SELECT_OFFSET] = 0x40; Index: linux/drivers/ide/ide-iops.c =================================================================== --- linux.orig/drivers/ide/ide-iops.c Thu Jun 10 14:59:48 2004 +++ linux/drivers/ide/ide-iops.c Thu Jun 10 15:00:04 2004 @@ -29,6 +29,9 @@ #include #include #include +#ifdef CONFIG_IA64_SGI_SN_SIM +#include +#endif /* * Conventional PIO operations for ATA devices @@ -998,7 +1001,12 @@ void ide_execute_command(ide_drive_t *dr ide_hwif_t *hwif = HWIF(drive); spin_lock_irqsave(&ide_lock, flags); - + +#ifdef CONFIG_IA64_SGI_SN_SIM + if (IS_RUNNING_ON_SIMULATOR()) + timeout = 2; +#endif + if(hwgroup->handler) BUG(); hwgroup->handler = handler;