Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
af80318e
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,发现更多精彩内容 >>
提交
af80318e
编写于
5月 08, 2007
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[SPARC64]: Fix request_irq() ignored result warnings in PCI controller code.
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
c57c2ffb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
104 addition
and
46 deletion
+104
-46
arch/sparc64/kernel/pci_psycho.c
arch/sparc64/kernel/pci_psycho.c
+22
-6
arch/sparc64/kernel/pci_sabre.c
arch/sparc64/kernel/pci_sabre.c
+14
-4
arch/sparc64/kernel/pci_schizo.c
arch/sparc64/kernel/pci_schizo.c
+68
-36
未找到文件。
arch/sparc64/kernel/pci_psycho.c
浏览文件 @
af80318e
...
...
@@ -836,6 +836,7 @@ static void psycho_register_error_handlers(struct pci_pbm_info *pbm)
struct
of_device
*
op
=
of_find_device_by_node
(
pbm
->
prom_node
);
unsigned
long
base
=
pbm
->
controller_regs
;
u64
tmp
;
int
err
;
if
(
!
op
)
return
;
...
...
@@ -852,12 +853,27 @@ static void psycho_register_error_handlers(struct pci_pbm_info *pbm)
if
(
op
->
num_irqs
<
6
)
return
;
request_irq
(
op
->
irqs
[
1
],
psycho_ue_intr
,
0
,
"PSYCHO_UE"
,
pbm
);
request_irq
(
op
->
irqs
[
2
],
psycho_ce_intr
,
0
,
"PSYCHO_CE"
,
pbm
);
request_irq
(
op
->
irqs
[
0
],
psycho_pcierr_intr
,
0
,
"PSYCHO_PCIERR"
,
pbm
);
/* We really mean to ignore the return result here. Two
* PCI controller share the same interrupt numbers and
* drive the same front-end hardware. Whichever of the
* two get in here first will register the IRQ handler
* the second will just error out since we do not pass in
* IRQF_SHARED.
*/
err
=
request_irq
(
op
->
irqs
[
1
],
psycho_ue_intr
,
0
,
"PSYCHO_UE"
,
pbm
);
err
=
request_irq
(
op
->
irqs
[
2
],
psycho_ce_intr
,
0
,
"PSYCHO_CE"
,
pbm
);
/* This one, however, ought not to fail. We can just warn
* about it since the system can still operate properly even
* if this fails.
*/
err
=
request_irq
(
op
->
irqs
[
0
],
psycho_pcierr_intr
,
0
,
"PSYCHO_PCIERR"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Could not register PCIERR, "
"err=%d
\n
"
,
pbm
->
name
,
err
);
/* Enable UE and CE interrupts for controller. */
psycho_write
(
base
+
PSYCHO_ECC_CTRL
,
...
...
arch/sparc64/kernel/pci_sabre.c
浏览文件 @
af80318e
...
...
@@ -831,6 +831,7 @@ static void sabre_register_error_handlers(struct pci_pbm_info *pbm)
struct
of_device
*
op
;
unsigned
long
base
=
pbm
->
controller_regs
;
u64
tmp
;
int
err
;
if
(
pbm
->
chip_type
==
PBM_CHIP_TYPE_SABRE
)
dp
=
dp
->
parent
;
...
...
@@ -857,15 +858,24 @@ static void sabre_register_error_handlers(struct pci_pbm_info *pbm)
SABRE_UEAFSR_SDRD
|
SABRE_UEAFSR_SDWR
|
SABRE_UEAFSR_SDTE
|
SABRE_UEAFSR_PDTE
));
request_irq
(
op
->
irqs
[
1
],
sabre_ue_intr
,
0
,
"SABRE_UE"
,
pbm
);
err
=
request_irq
(
op
->
irqs
[
1
],
sabre_ue_intr
,
0
,
"SABRE_UE"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Couldn't register UE, err=%d.
\n
"
,
pbm
->
name
,
err
);
sabre_write
(
base
+
SABRE_CE_AFSR
,
(
SABRE_CEAFSR_PDRD
|
SABRE_CEAFSR_PDWR
|
SABRE_CEAFSR_SDRD
|
SABRE_CEAFSR_SDWR
));
request_irq
(
op
->
irqs
[
2
],
sabre_ce_intr
,
0
,
"SABRE_CE"
,
pbm
);
request_irq
(
op
->
irqs
[
0
],
sabre_pcierr_intr
,
0
,
"SABRE_PCIERR"
,
pbm
);
err
=
request_irq
(
op
->
irqs
[
2
],
sabre_ce_intr
,
0
,
"SABRE_CE"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Couldn't register CE, err=%d.
\n
"
,
pbm
->
name
,
err
);
err
=
request_irq
(
op
->
irqs
[
0
],
sabre_pcierr_intr
,
0
,
"SABRE_PCIERR"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Couldn't register PCIERR, err=%d.
\n
"
,
pbm
->
name
,
err
);
tmp
=
sabre_read
(
base
+
SABRE_PCICTRL
);
tmp
|=
SABRE_PCICTRL_ERREN
;
...
...
arch/sparc64/kernel/pci_schizo.c
浏览文件 @
af80318e
...
...
@@ -984,6 +984,7 @@ static void tomatillo_register_error_handlers(struct pci_pbm_info *pbm)
{
struct
of_device
*
op
=
of_find_device_by_node
(
pbm
->
prom_node
);
u64
tmp
,
err_mask
,
err_no_mask
;
int
err
;
/* Tomatillo IRQ property layout is:
* 0: PCIERR
...
...
@@ -993,24 +994,39 @@ static void tomatillo_register_error_handlers(struct pci_pbm_info *pbm)
* 4: POWER FAIL?
*/
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_UE_INO
))
request_irq
(
op
->
irqs
[
1
],
schizo_ue_intr
,
0
,
"TOMATILLO_UE"
,
pbm
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_CE_INO
))
request_irq
(
op
->
irqs
[
2
],
schizo_ce_intr
,
0
,
"TOMATILLO_CE"
,
pbm
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_PCIERR_A_INO
))
request_irq
(
op
->
irqs
[
0
],
schizo_pcierr_intr
,
0
,
"TOMATILLO_PCIERR"
,
pbm
);
else
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_PCIERR_B_INO
))
request_irq
(
op
->
irqs
[
0
],
schizo_pcierr_intr
,
0
,
"TOMATILLO_PCIERR"
,
pbm
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_SERR_INO
))
request_irq
(
op
->
irqs
[
3
],
schizo_safarierr_intr
,
0
,
"TOMATILLO_SERR"
,
pbm
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_UE_INO
))
{
err
=
request_irq
(
op
->
irqs
[
1
],
schizo_ue_intr
,
0
,
"TOMATILLO_UE"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Could not register UE, "
"err=%d
\n
"
,
pbm
->
name
,
err
);
}
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_CE_INO
))
{
err
=
request_irq
(
op
->
irqs
[
2
],
schizo_ce_intr
,
0
,
"TOMATILLO_CE"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Could not register CE, "
"err=%d
\n
"
,
pbm
->
name
,
err
);
}
err
=
0
;
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_PCIERR_A_INO
))
{
err
=
request_irq
(
op
->
irqs
[
0
],
schizo_pcierr_intr
,
0
,
"TOMATILLO_PCIERR"
,
pbm
);
}
else
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_PCIERR_B_INO
))
{
err
=
request_irq
(
op
->
irqs
[
0
],
schizo_pcierr_intr
,
0
,
"TOMATILLO_PCIERR"
,
pbm
);
}
if
(
err
)
printk
(
KERN_WARNING
"%s: Could not register PCIERR, "
"err=%d
\n
"
,
pbm
->
name
,
err
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_SERR_INO
))
{
err
=
request_irq
(
op
->
irqs
[
3
],
schizo_safarierr_intr
,
0
,
"TOMATILLO_SERR"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Could not register SERR, "
"err=%d
\n
"
,
pbm
->
name
,
err
);
}
/* Enable UE and CE interrupts for controller. */
schizo_write
(
pbm
->
controller_regs
+
SCHIZO_ECC_CTRL
,
...
...
@@ -1064,6 +1080,7 @@ static void schizo_register_error_handlers(struct pci_pbm_info *pbm)
{
struct
of_device
*
op
=
of_find_device_by_node
(
pbm
->
prom_node
);
u64
tmp
,
err_mask
,
err_no_mask
;
int
err
;
/* Schizo IRQ property layout is:
* 0: PCIERR
...
...
@@ -1073,24 +1090,39 @@ static void schizo_register_error_handlers(struct pci_pbm_info *pbm)
* 4: POWER FAIL?
*/
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_UE_INO
))
request_irq
(
op
->
irqs
[
1
],
schizo_ue_intr
,
0
,
"SCHIZO_UE"
,
pbm
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_CE_INO
))
request_irq
(
op
->
irqs
[
2
],
schizo_ce_intr
,
0
,
"SCHIZO_CE"
,
pbm
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_PCIERR_A_INO
))
request_irq
(
op
->
irqs
[
0
],
schizo_pcierr_intr
,
0
,
"SCHIZO_PCIERR"
,
pbm
);
else
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_PCIERR_B_INO
))
request_irq
(
op
->
irqs
[
0
],
schizo_pcierr_intr
,
0
,
"SCHIZO_PCIERR"
,
pbm
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_SERR_INO
))
request_irq
(
op
->
irqs
[
3
],
schizo_safarierr_intr
,
0
,
"SCHIZO_SERR"
,
pbm
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_UE_INO
))
{
err
=
request_irq
(
op
->
irqs
[
1
],
schizo_ue_intr
,
0
,
"SCHIZO_UE"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Could not register UE, "
"err=%d
\n
"
,
pbm
->
name
,
err
);
}
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_CE_INO
))
{
err
=
request_irq
(
op
->
irqs
[
2
],
schizo_ce_intr
,
0
,
"SCHIZO_CE"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Could not register CE, "
"err=%d
\n
"
,
pbm
->
name
,
err
);
}
err
=
0
;
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_PCIERR_A_INO
))
{
err
=
request_irq
(
op
->
irqs
[
0
],
schizo_pcierr_intr
,
0
,
"SCHIZO_PCIERR"
,
pbm
);
}
else
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_PCIERR_B_INO
))
{
err
=
request_irq
(
op
->
irqs
[
0
],
schizo_pcierr_intr
,
0
,
"SCHIZO_PCIERR"
,
pbm
);
}
if
(
err
)
printk
(
KERN_WARNING
"%s: Could not register PCIERR, "
"err=%d
\n
"
,
pbm
->
name
,
err
);
if
(
pbm_routes_this_ino
(
pbm
,
SCHIZO_SERR_INO
))
{
err
=
request_irq
(
op
->
irqs
[
3
],
schizo_safarierr_intr
,
0
,
"SCHIZO_SERR"
,
pbm
);
if
(
err
)
printk
(
KERN_WARNING
"%s: Could not register SERR, "
"err=%d
\n
"
,
pbm
->
name
,
err
);
}
/* Enable UE and CE interrupts for controller. */
schizo_write
(
pbm
->
controller_regs
+
SCHIZO_ECC_CTRL
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录