LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 736|回复: 2

求助求助,我写硬盘,写着写着就报错了。

[复制链接]
发表于 2006-1-13 11:29:26 | 显示全部楼层 |阅读模式
我的IDE Cotroller是PDC 20265。

硬盘是MAXTOR ATA 133 80G。

LINUX kernel 是2.4.20



我在往硬盘里面写数据的时候,写着写着,就突然报错了

hdf:timeout: status=0xd0{busy}

然后系统就重启了。


hdf是我的硬盘.



DMA我也是关掉了的。



我在网上查了一下这个错误,没有找到解决方法。



现在是急得不行了啊。
发表于 2006-1-13 16:20:44 | 显示全部楼层
你是编程写的吗?
说具体点
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-13 16:45:41 | 显示全部楼层
是的,编程用write(fd,buf,size);写……

我看了驱动程序,应该是在这里报错的。


int ide_wait_stat (ide_startstop_t *startstop, ide_drive_t *drive, byte good, byte bad, unsigned long timeout) {
byte stat;
int i;
unsigned long flags;

/* bail early if we've exceeded max_failures */
if (drive->max_failures && (drive->failures > drive->max_failures)) {
*startstop = ide_stopped;
return 1;
}
udelay(1); /* spec allows drive 400ns to assert "BUSY" */
if ((stat = GET_STAT()) & BUSY_STAT) {
__save_flags(flags); /* local CPU only */
ide__sti(); /* local CPU only */
timeout += jiffies;
while ((stat = GET_STAT()) & BUSY_STAT) {
if (0 < (signed long)(jiffies - timeout)) {
__restore_flags(flags); /* local CPU only */
*startstop = ide_error(drive, "status timeout", stat); //这个ide_error里面就输出了上面的错误
return 1;
}
}
__restore_flags(flags); /* local CPU only */
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表