Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
c981f0c0
Commit
c981f0c0
authored
Mar 04, 2003
by
David Mosberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ia64: Fix SAL processor-log info handling. Based on patch by
Keith Owens.
parent
2a9f136d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
12 deletions
+33
-12
arch/ia64/kernel/mca.c
arch/ia64/kernel/mca.c
+2
-2
include/asm-ia64/sal.h
include/asm-ia64/sal.h
+31
-10
No files found.
arch/ia64/kernel/mca.c
View file @
c981f0c0
...
@@ -825,7 +825,7 @@ ia64_init_handler (struct pt_regs *regs)
...
@@ -825,7 +825,7 @@ ia64_init_handler (struct pt_regs *regs)
plog_ptr
=
(
ia64_err_rec_t
*
)
IA64_LOG_CURR_BUFFER
(
SAL_INFO_TYPE_INIT
);
plog_ptr
=
(
ia64_err_rec_t
*
)
IA64_LOG_CURR_BUFFER
(
SAL_INFO_TYPE_INIT
);
proc_ptr
=
&
plog_ptr
->
proc_err
;
proc_ptr
=
&
plog_ptr
->
proc_err
;
ia64_process_min_state_save
(
&
proc_ptr
->
processor_static_info
.
min_state_area
);
ia64_process_min_state_save
(
&
SAL_LPI_PSI_INFO
(
proc_ptr
)
->
min_state_area
);
/* Clear the INIT SAL logs now that they have been saved in the OS buffer */
/* Clear the INIT SAL logs now that they have been saved in the OS buffer */
ia64_sal_clear_state_info
(
SAL_INFO_TYPE_INIT
);
ia64_sal_clear_state_info
(
SAL_INFO_TYPE_INIT
);
...
@@ -1620,7 +1620,7 @@ ia64_log_proc_dev_err_info_print (sal_log_processor_info_t *slpi,
...
@@ -1620,7 +1620,7 @@ ia64_log_proc_dev_err_info_print (sal_log_processor_info_t *slpi,
* absent. Also, current implementations only allocate space for number of
* absent. Also, current implementations only allocate space for number of
* elements used. So we walk the data pointer from here on.
* elements used. So we walk the data pointer from here on.
*/
*/
p_data
=
&
slpi
->
cache_check_
info
[
0
];
p_data
=
&
slpi
->
info
[
0
];
/* Print the cache check information if any*/
/* Print the cache check information if any*/
for
(
i
=
0
;
i
<
slpi
->
valid
.
num_cache_check
;
i
++
,
p_data
++
)
for
(
i
=
0
;
i
<
slpi
->
valid
.
num_cache_check
;
i
++
,
p_data
++
)
...
...
include/asm-ia64/sal.h
View file @
c981f0c0
...
@@ -336,6 +336,11 @@ typedef struct sal_processor_static_info {
...
@@ -336,6 +336,11 @@ typedef struct sal_processor_static_info {
struct
ia64_fpreg
fr
[
128
];
struct
ia64_fpreg
fr
[
128
];
}
sal_processor_static_info_t
;
}
sal_processor_static_info_t
;
struct
sal_cpuid_info
{
u64
regs
[
5
];
u64
reserved
;
};
typedef
struct
sal_log_processor_info
{
typedef
struct
sal_log_processor_info
{
sal_log_section_hdr_t
header
;
sal_log_section_hdr_t
header
;
struct
{
struct
{
...
@@ -354,18 +359,34 @@ typedef struct sal_log_processor_info {
...
@@ -354,18 +359,34 @@ typedef struct sal_log_processor_info {
u64
proc_error_map
;
u64
proc_error_map
;
u64
proc_state_parameter
;
u64
proc_state_parameter
;
u64
proc_cr_lid
;
u64
proc_cr_lid
;
sal_log_mod_error_info_t
cache_check_info
[
16
];
/*
sal_log_mod_error_info_t
tlb_check_info
[
16
];
* The rest of this structure consists of variable-length arrays, which can't be
sal_log_mod_error_info_t
bus_check_info
[
16
];
* expressed in C.
sal_log_mod_error_info_t
reg_file_check_info
[
16
];
*/
sal_log_mod_error_info_t
ms_check_info
[
16
];
sal_log_mod_error_info_t
info
[
0
];
struct
{
/*
u64
regs
[
5
];
* This is what the rest looked like if C supported variable-length arrays:
u64
reserved
;
*
}
cpuid_info
;
* sal_log_mod_error_info_t cache_check_info[.valid.num_cache_check];
sal_processor_static_info_t
processor_static_info
;
* sal_log_mod_error_info_t tlb_check_info[.valid.num_tlb_check];
* sal_log_mod_error_info_t bus_check_info[.valid.num_bus_check];
* sal_log_mod_error_info_t reg_file_check_info[.valid.num_reg_file_check];
* sal_log_mod_error_info_t ms_check_info[.valid.num_ms_check];
* struct sal_cpuid_info cpuid_info;
* sal_processor_static_info_t processor_static_info;
*/
}
sal_log_processor_info_t
;
}
sal_log_processor_info_t
;
/* Given a sal_log_processor_info_t pointer, return a pointer to the processor_static_info: */
#define SAL_LPI_PSI_INFO(l) \
({ sal_log_processor_info_t *_l = (l); \
((sal_processor_static_info_t *) \
((char *) _l->info + ((_l->valid.num_cache_check + _l->valid.num_tlb_check \
+ _l->valid.num_bus_check + _l->valid.num_reg_file_check \
+ _l->valid.num_ms_check) * sizeof(sal_log_mod_error_info_t) \
+ sizeof(struct sal_cpuid_info)))); \
})
/* platform error log structures */
/* platform error log structures */
typedef
struct
sal_log_mem_dev_err_info
{
typedef
struct
sal_log_mem_dev_err_info
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment