Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
d8d088d2
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
d8d088d2
编写于
6月 03, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Automatic merge of
rsync://www.parisc-linux.org/~jejb/git/scsi-for-linus-2.6
上级
b05a720b
c92715b3
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
14 addition
and
11 deletion
+14
-11
drivers/scsi/qla2xxx/qla_os.c
drivers/scsi/qla2xxx/qla_os.c
+13
-11
drivers/scsi/scsi_scan.c
drivers/scsi/scsi_scan.c
+1
-0
未找到文件。
drivers/scsi/qla2xxx/qla_os.c
浏览文件 @
d8d088d2
...
...
@@ -507,6 +507,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
int
ret
,
i
;
unsigned
int
id
,
lun
;
unsigned
long
serial
;
unsigned
long
flags
;
if
(
!
CMD_SP
(
cmd
))
return
FAILED
;
...
...
@@ -519,7 +520,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
/* Check active list for command command. */
spin_unlock_irq
(
ha
->
host
->
host_lock
);
spin_lock
(
&
ha
->
hardware_lock
);
spin_lock
_irqsave
(
&
ha
->
hardware_lock
,
flags
);
for
(
i
=
1
;
i
<
MAX_OUTSTANDING_COMMANDS
;
i
++
)
{
sp
=
ha
->
outstanding_cmds
[
i
];
...
...
@@ -534,7 +535,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
sp
->
state
));
DEBUG3
(
qla2x00_print_scsi_cmd
(
cmd
);)
spin_unlock
(
&
ha
->
hardware_lock
);
spin_unlock
_irqrestore
(
&
ha
->
hardware_lock
,
flags
);
if
(
qla2x00_abort_command
(
ha
,
sp
))
{
DEBUG2
(
printk
(
"%s(%ld): abort_command "
"mbx failed.
\n
"
,
__func__
,
ha
->
host_no
));
...
...
@@ -543,20 +544,19 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
"mbx success.
\n
"
,
__func__
,
ha
->
host_no
));
ret
=
SUCCESS
;
}
spin_lock
(
&
ha
->
hardware_lock
);
spin_lock
_irqsave
(
&
ha
->
hardware_lock
,
flags
);
break
;
}
spin_unlock_irqrestore
(
&
ha
->
hardware_lock
,
flags
);
/* Wait for the command to be returned. */
if
(
ret
==
SUCCESS
)
{
spin_unlock
(
&
ha
->
hardware_lock
);
if
(
qla2x00_eh_wait_on_command
(
ha
,
cmd
)
!=
QLA_SUCCESS
)
{
qla_printk
(
KERN_ERR
,
ha
,
"scsi(%ld:%d:%d): Abort handler timed out -- %lx "
"%x.
\n
"
,
ha
->
host_no
,
id
,
lun
,
serial
,
ret
);
}
spin_lock
(
&
ha
->
hardware_lock
);
}
spin_lock_irq
(
ha
->
host
->
host_lock
);
...
...
@@ -588,6 +588,7 @@ qla2x00_eh_wait_for_pending_target_commands(scsi_qla_host_t *ha, unsigned int t)
int
status
;
srb_t
*
sp
;
struct
scsi_cmnd
*
cmd
;
unsigned
long
flags
;
status
=
0
;
...
...
@@ -596,11 +597,11 @@ qla2x00_eh_wait_for_pending_target_commands(scsi_qla_host_t *ha, unsigned int t)
* array
*/
for
(
cnt
=
1
;
cnt
<
MAX_OUTSTANDING_COMMANDS
;
cnt
++
)
{
spin_lock
(
&
ha
->
hardware_lock
);
spin_lock
_irqsave
(
&
ha
->
hardware_lock
,
flags
);
sp
=
ha
->
outstanding_cmds
[
cnt
];
if
(
sp
)
{
cmd
=
sp
->
cmd
;
spin_unlock
(
&
ha
->
hardware_lock
);
spin_unlock
_irqrestore
(
&
ha
->
hardware_lock
,
flags
);
if
(
cmd
->
device
->
id
==
t
)
{
if
(
!
qla2x00_eh_wait_on_command
(
ha
,
cmd
))
{
status
=
1
;
...
...
@@ -608,7 +609,7 @@ qla2x00_eh_wait_for_pending_target_commands(scsi_qla_host_t *ha, unsigned int t)
}
}
}
else
{
spin_unlock
(
&
ha
->
hardware_lock
);
spin_unlock
_irqrestore
(
&
ha
->
hardware_lock
,
flags
);
}
}
return
(
status
);
...
...
@@ -740,6 +741,7 @@ qla2x00_eh_wait_for_pending_commands(scsi_qla_host_t *ha)
int
status
;
srb_t
*
sp
;
struct
scsi_cmnd
*
cmd
;
unsigned
long
flags
;
status
=
1
;
...
...
@@ -748,17 +750,17 @@ qla2x00_eh_wait_for_pending_commands(scsi_qla_host_t *ha)
* array
*/
for
(
cnt
=
1
;
cnt
<
MAX_OUTSTANDING_COMMANDS
;
cnt
++
)
{
spin_lock
(
&
ha
->
hardware_lock
);
spin_lock
_irqsave
(
&
ha
->
hardware_lock
,
flags
);
sp
=
ha
->
outstanding_cmds
[
cnt
];
if
(
sp
)
{
cmd
=
sp
->
cmd
;
spin_unlock
(
&
ha
->
hardware_lock
);
spin_unlock
_irqrestore
(
&
ha
->
hardware_lock
,
flags
);
status
=
qla2x00_eh_wait_on_command
(
ha
,
cmd
);
if
(
status
==
0
)
break
;
}
else
{
spin_unlock
(
&
ha
->
hardware_lock
);
spin_unlock
_irqrestore
(
&
ha
->
hardware_lock
,
flags
);
}
}
return
(
status
);
...
...
drivers/scsi/scsi_scan.c
浏览文件 @
d8d088d2
...
...
@@ -1197,6 +1197,7 @@ struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel,
if
(
!
starget
)
return
ERR_PTR
(
-
ENOMEM
);
get_device
(
&
starget
->
dev
);
down
(
&
shost
->
scan_mutex
);
res
=
scsi_probe_and_add_lun
(
starget
,
lun
,
NULL
,
&
sdev
,
1
,
hostdata
);
if
(
res
!=
SCSI_SCAN_LUN_PRESENT
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录