osunix / osunix-gate (http://osunix.org/)
fork of onnv-gate
A free and totally open source opensolaris technology gate. We stress high quality and gives developers who don't want to sign the SCA a place to commit their license compatible code.
| commit 11786: | 3d6e39b37cef |
| parent 11785: | 84bdf541614c |
| branch: | default |
6841263 Error injection of cpu errors detected by Oberon results in cpumem-diagnosis DE being faulted
6 months ago
Changed (Δ676 bytes):
raw changeset »
usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_main.c (27 lines added, 6 lines removed)
Up to file-list usr/src/cmd/fm/modules/sun4/cpumem-diagnosis/cmd_main.c:
19 |
19 |
* CDDL HEADER END |
20 |
20 |
*/ |
21 |
21 |
/* |
22 |
* Copyright 20 |
|
22 |
* Copyright 2010 Sun Microsystems, Inc. All rights reserved. |
|
23 |
23 |
* Use is subject to license terms. |
24 |
24 |
*/ |
25 |
25 |
|
| … | … | @@ -83,6 +83,27 @@ cmd_nop(fmd_hdl_t *hdl, fmd_event_t *ep, |
83 |
83 |
return (CMD_EVD_UNUSED); |
84 |
84 |
} |
85 |
85 |
|
86 |
#ifdef sun4u |
|
87 |
/* |
|
88 |
* It used to be that cmd_opluecpu_detio() was called directly, with a |
|
89 |
* 'class' argument of ereport.io.oberon.xxx. But the code underlying |
|
90 |
* cmd_opluecpu_detio() assumed that the class would always be of the form |
|
91 |
* ereport.cpu.<cputype>.<subclass>. |
|
92 |
* |
|
93 |
* Rather than generalizing the underlying code, the following adjusts the |
|
94 |
* input to cmd_opluecpu_detio() so that it conforms to the above expectation. |
|
95 |
*/ |
|
96 |
||
97 |
/*ARGSUSED*/ |
|
98 |
cmd_evdisp_t |
|
99 |
opl_opluecpu_detio(fmd_hdl_t *hdl, fmd_event_t *ep, nvlist_t *nvl, |
|
100 |
const char *class, cmd_errcl_t clcode) |
|
101 |
{ |
|
102 |
return (cmd_opluecpu_detio(hdl, ep, nvl, |
|
103 |
"ereport.cpu.SPARC64-VI.", clcode)); |
|
104 |
} |
|
105 |
#endif /* sun4u */ |
|
106 |
||
86 |
107 |
static cmd_subscriber_t cmd_subscribers[] = { |
87 |
108 |
#ifdef sun4u |
88 |
109 |
{ "ereport.cpu.*.ucc", cmd_xxc, CMD_ERRCL_UCC | |
| … | … | @@ -199,23 +220,23 @@ static cmd_subscriber_t cmd_subscribers[ |
199 |
220 |
{ "ereport.cpu.*.uge", cmd_opluge }, |
200 |
221 |
{ "ereport.io.oberon.ubc.dmarduea-mem", cmd_opl_io_mem }, |
201 |
222 |
{ "ereport.io.oberon.ubc.dmarduea-channel", cmd_nop }, |
202 |
{ "ereport.io.oberon.ubc.dmarduea-cpu", |
|
223 |
{ "ereport.io.oberon.ubc.dmarduea-cpu", opl_opluecpu_detio }, |
|
203 |
224 |
{ "ereport.io.oberon.ubc.dmarduea-path", cmd_nop }, |
204 |
225 |
{ "ereport.io.oberon.ubc.dmardueb-mem", cmd_opl_io_mem }, |
205 |
226 |
{ "ereport.io.oberon.ubc.dmardueb-channel", cmd_nop }, |
206 |
{ "ereport.io.oberon.ubc.dmardueb-cpu", |
|
227 |
{ "ereport.io.oberon.ubc.dmardueb-cpu", opl_opluecpu_detio }, |
|
207 |
228 |
{ "ereport.io.oberon.ubc.dmardueb-path", cmd_nop }, |
208 |
229 |
{ "ereport.io.oberon.ubc.piowtue-mem", cmd_opl_io_mem }, |
209 |
230 |
{ "ereport.io.oberon.ubc.piowtue-channel", cmd_nop }, |
210 |
{ "ereport.io.oberon.ubc.piowtue-cpu", |
|
231 |
{ "ereport.io.oberon.ubc.piowtue-cpu", opl_opluecpu_detio }, |
|
211 |
232 |
{ "ereport.io.oberon.ubc.piowtue-path", cmd_nop }, |
212 |
233 |
{ "ereport.io.oberon.ubc.piowbeue-mem", cmd_opl_io_mem }, |
213 |
234 |
{ "ereport.io.oberon.ubc.piowbeue-channel", cmd_nop }, |
214 |
{ "ereport.io.oberon.ubc.piowbeue-cpu", |
|
235 |
{ "ereport.io.oberon.ubc.piowbeue-cpu", opl_opluecpu_detio }, |
|
215 |
236 |
{ "ereport.io.oberon.ubc.piowbeue-path", cmd_nop }, |
216 |
237 |
{ "ereport.io.oberon.ubc.piorbeue-mem", cmd_opl_io_mem }, |
217 |
238 |
{ "ereport.io.oberon.ubc.piorbeue-channel", cmd_nop }, |
218 |
{ "ereport.io.oberon.ubc.piorbeue-cpu", |
|
239 |
{ "ereport.io.oberon.ubc.piorbeue-cpu", opl_opluecpu_detio }, |
|
219 |
240 |
{ "ereport.io.oberon.ubc.piorbeue-path", cmd_nop }, |
220 |
241 |
{ "ereport.cpu.*.fpu.fpscrub", cmd_fps }, |
221 |
242 |
#else /* i.e. sun4v */ |
