Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
c13b56a1
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c13b56a1
编写于
4月 02, 2006
作者:
J
Jeff Garzik
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[libata] irq-pio: Fix merge mistake
上级
029f5468
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
4 addition
and
96 deletion
+4
-96
drivers/scsi/libata-core.c
drivers/scsi/libata-core.c
+0
-95
drivers/scsi/libata-eh.c
drivers/scsi/libata-eh.c
+4
-1
未找到文件。
drivers/scsi/libata-core.c
浏览文件 @
c13b56a1
...
...
@@ -4124,101 +4124,6 @@ static void ata_pio_task(void *_data)
goto
fsm_start
;
}
/**
* ata_qc_timeout - Handle timeout of queued command
* @qc: Command that timed out
*
* Some part of the kernel (currently, only the SCSI layer)
* has noticed that the active command on port @ap has not
* completed after a specified length of time. Handle this
* condition by disabling DMA (if necessary) and completing
* transactions, with error if necessary.
*
* This also handles the case of the "lost interrupt", where
* for some reason (possibly hardware bug, possibly driver bug)
* an interrupt was not delivered to the driver, even though the
* transaction completed successfully.
*
* LOCKING:
* Inherited from SCSI layer (none, can sleep)
*/
static
void
ata_qc_timeout
(
struct
ata_queued_cmd
*
qc
)
{
struct
ata_port
*
ap
=
qc
->
ap
;
struct
ata_host_set
*
host_set
=
ap
->
host_set
;
u8
host_stat
=
0
,
drv_stat
;
unsigned
long
flags
;
DPRINTK
(
"ENTER
\n
"
);
ap
->
hsm_task_state
=
HSM_ST_IDLE
;
spin_lock_irqsave
(
&
host_set
->
lock
,
flags
);
switch
(
qc
->
tf
.
protocol
)
{
case
ATA_PROT_DMA
:
case
ATA_PROT_ATAPI_DMA
:
host_stat
=
ap
->
ops
->
bmdma_status
(
ap
);
/* before we do anything else, clear DMA-Start bit */
ap
->
ops
->
bmdma_stop
(
qc
);
/* fall through */
default:
ata_altstatus
(
ap
);
drv_stat
=
ata_chk_status
(
ap
);
/* ack bmdma irq events */
ap
->
ops
->
irq_clear
(
ap
);
printk
(
KERN_ERR
"ata%u: command 0x%x timeout, stat 0x%x host_stat 0x%x
\n
"
,
ap
->
id
,
qc
->
tf
.
command
,
drv_stat
,
host_stat
);
ap
->
hsm_task_state
=
HSM_ST_IDLE
;
/* complete taskfile transaction */
qc
->
err_mask
|=
AC_ERR_TIMEOUT
;
break
;
}
spin_unlock_irqrestore
(
&
host_set
->
lock
,
flags
);
ata_eh_qc_complete
(
qc
);
DPRINTK
(
"EXIT
\n
"
);
}
/**
* ata_eng_timeout - Handle timeout of queued command
* @ap: Port on which timed-out command is active
*
* Some part of the kernel (currently, only the SCSI layer)
* has noticed that the active command on port @ap has not
* completed after a specified length of time. Handle this
* condition by disabling DMA (if necessary) and completing
* transactions, with error if necessary.
*
* This also handles the case of the "lost interrupt", where
* for some reason (possibly hardware bug, possibly driver bug)
* an interrupt was not delivered to the driver, even though the
* transaction completed successfully.
*
* LOCKING:
* Inherited from SCSI layer (none, can sleep)
*/
void
ata_eng_timeout
(
struct
ata_port
*
ap
)
{
DPRINTK
(
"ENTER
\n
"
);
ata_qc_timeout
(
ata_qc_from_tag
(
ap
,
ap
->
active_tag
));
DPRINTK
(
"EXIT
\n
"
);
}
/**
* ata_qc_new - Request an available ATA command, for queueing
* @ap: Port associated with device @dev
...
...
drivers/scsi/libata-eh.c
浏览文件 @
c13b56a1
...
...
@@ -137,6 +137,7 @@ int ata_scsi_error(struct Scsi_Host *host)
* LOCKING:
* Inherited from SCSI layer (none, can sleep)
*/
static
void
ata_qc_timeout
(
struct
ata_queued_cmd
*
qc
)
{
struct
ata_port
*
ap
=
qc
->
ap
;
...
...
@@ -171,8 +172,10 @@ static void ata_qc_timeout(struct ata_queued_cmd *qc)
printk
(
KERN_ERR
"ata%u: command 0x%x timeout, stat 0x%x host_stat 0x%x
\n
"
,
ap
->
id
,
qc
->
tf
.
command
,
drv_stat
,
host_stat
);
ap
->
hsm_task_state
=
HSM_ST_IDLE
;
/* complete taskfile transaction */
qc
->
err_mask
|=
ac_err_mask
(
drv_stat
)
;
qc
->
err_mask
|=
AC_ERR_TIMEOUT
;
break
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录