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
Kirill Smelkov
linux
Commits
03b6e6e5
Commit
03b6e6e5
authored
Jan 12, 2011
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'apei' into release
parents
9e0c20bc
81e88fdc
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
866 additions
and
92 deletions
+866
-92
Documentation/acpi/apei/output_format.txt
Documentation/acpi/apei/output_format.txt
+122
-0
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/acpi/boot.c
+1
-0
arch/x86/kernel/dumpstack.c
arch/x86/kernel/dumpstack.c
+1
-0
drivers/acpi/apei/apei-internal.h
drivers/acpi/apei/apei-internal.h
+2
-0
drivers/acpi/apei/cper.c
drivers/acpi/apei/cper.c
+311
-0
drivers/acpi/apei/ghes.c
drivers/acpi/apei/ghes.c
+343
-88
include/linux/cper.h
include/linux/cper.h
+82
-4
kernel/panic.c
kernel/panic.c
+1
-0
lib/ioremap.c
lib/ioremap.c
+2
-0
mm/vmalloc.c
mm/vmalloc.c
+1
-0
No files found.
Documentation/acpi/apei/output_format.txt
0 → 100644
View file @
03b6e6e5
APEI output format
~~~~~~~~~~~~~~~~~~
APEI uses printk as hardware error reporting interface, the output
format is as follow.
<error record> :=
APEI generic hardware error status
severity: <integer>, <severity string>
section: <integer>, severity: <integer>, <severity string>
flags: <integer>
<section flags strings>
fru_id: <uuid string>
fru_text: <string>
section_type: <section type string>
<section data>
<severity string>* := recoverable | fatal | corrected | info
<section flags strings># :=
[primary][, containment warning][, reset][, threshold exceeded]\
[, resource not accessible][, latent error]
<section type string> := generic processor error | memory error | \
PCIe error | unknown, <uuid string>
<section data> :=
<generic processor section data> | <memory section data> | \
<pcie section data> | <null>
<generic processor section data> :=
[processor_type: <integer>, <proc type string>]
[processor_isa: <integer>, <proc isa string>]
[error_type: <integer>
<proc error type strings>]
[operation: <integer>, <proc operation string>]
[flags: <integer>
<proc flags strings>]
[level: <integer>]
[version_info: <integer>]
[processor_id: <integer>]
[target_address: <integer>]
[requestor_id: <integer>]
[responder_id: <integer>]
[IP: <integer>]
<proc type string>* := IA32/X64 | IA64
<proc isa string>* := IA32 | IA64 | X64
<processor error type strings># :=
[cache error][, TLB error][, bus error][, micro-architectural error]
<proc operation string>* := unknown or generic | data read | data write | \
instruction execution
<proc flags strings># :=
[restartable][, precise IP][, overflow][, corrected]
<memory section data> :=
[error_status: <integer>]
[physical_address: <integer>]
[physical_address_mask: <integer>]
[node: <integer>]
[card: <integer>]
[module: <integer>]
[bank: <integer>]
[device: <integer>]
[row: <integer>]
[column: <integer>]
[bit_position: <integer>]
[requestor_id: <integer>]
[responder_id: <integer>]
[target_id: <integer>]
[error_type: <integer>, <mem error type string>]
<mem error type string>* :=
unknown | no error | single-bit ECC | multi-bit ECC | \
single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
target abort | parity error | watchdog timeout | invalid address | \
mirror Broken | memory sparing | scrub corrected error | \
scrub uncorrected error
<pcie section data> :=
[port_type: <integer>, <pcie port type string>]
[version: <integer>.<integer>]
[command: <integer>, status: <integer>]
[device_id: <integer>:<integer>:<integer>.<integer>
slot: <integer>
secondary_bus: <integer>
vendor_id: <integer>, device_id: <integer>
class_code: <integer>]
[serial number: <integer>, <integer>]
[bridge: secondary_status: <integer>, control: <integer>]
<pcie port type string>* := PCIe end point | legacy PCI end point | \
unknown | unknown | root port | upstream switch port | \
downstream switch port | PCIe to PCI/PCI-X bridge | \
PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
root complex event collector
Where, [] designate corresponding content is optional
All <field string> description with * has the following format:
field: <integer>, <field string>
Where value of <integer> should be the position of "string" in <field
string> description. Otherwise, <field string> will be "unknown".
All <field strings> description with # has the following format:
field: <integer>
<field strings>
Where each string in <fields strings> corresponding to one set bit of
<integer>. The bit position is the position of "string" in <field
strings> description.
For more detailed explanation of every field, please refer to UEFI
specification version 2.3 or later, section Appendix N: Common
Platform Error Record.
arch/x86/kernel/acpi/boot.c
View file @
03b6e6e5
...
...
@@ -504,6 +504,7 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irq)
return
0
;
}
EXPORT_SYMBOL_GPL
(
acpi_gsi_to_irq
);
int
acpi_isa_irq_to_gsi
(
unsigned
isa_irq
,
u32
*
gsi
)
{
...
...
arch/x86/kernel/dumpstack.c
View file @
03b6e6e5
...
...
@@ -240,6 +240,7 @@ unsigned __kprobes long oops_begin(void)
bust_spinlocks
(
1
);
return
flags
;
}
EXPORT_SYMBOL_GPL
(
oops_begin
);
void
__kprobes
oops_end
(
unsigned
long
flags
,
struct
pt_regs
*
regs
,
int
signr
)
{
...
...
drivers/acpi/apei/apei-internal.h
View file @
03b6e6e5
...
...
@@ -109,6 +109,8 @@ static inline u32 apei_estatus_len(struct acpi_hest_generic_status *estatus)
return
sizeof
(
*
estatus
)
+
estatus
->
data_length
;
}
void
apei_estatus_print
(
const
char
*
pfx
,
const
struct
acpi_hest_generic_status
*
estatus
);
int
apei_estatus_check_header
(
const
struct
acpi_hest_generic_status
*
estatus
);
int
apei_estatus_check
(
const
struct
acpi_hest_generic_status
*
estatus
);
#endif
drivers/acpi/apei/cper.c
View file @
03b6e6e5
This diff is collapsed.
Click to expand it.
drivers/acpi/apei/ghes.c
View file @
03b6e6e5
This diff is collapsed.
Click to expand it.
include/linux/cper.h
View file @
03b6e6e5
...
...
@@ -39,10 +39,12 @@
* Severity difinition for error_severity in struct cper_record_header
* and section_severity in struct cper_section_descriptor
*/
#define CPER_SEV_RECOVERABLE 0x0
#define CPER_SEV_FATAL 0x1
#define CPER_SEV_CORRECTED 0x2
#define CPER_SEV_INFORMATIONAL 0x3
enum
{
CPER_SEV_RECOVERABLE
,
CPER_SEV_FATAL
,
CPER_SEV_CORRECTED
,
CPER_SEV_INFORMATIONAL
,
};
/*
* Validation bits difinition for validation_bits in struct
...
...
@@ -201,6 +203,47 @@
UUID_LE(0x036F84E1, 0x7F37, 0x428c, 0xA7, 0x9E, 0x57, 0x5F, \
0xDF, 0xAA, 0x84, 0xEC)
#define CPER_PROC_VALID_TYPE 0x0001
#define CPER_PROC_VALID_ISA 0x0002
#define CPER_PROC_VALID_ERROR_TYPE 0x0004
#define CPER_PROC_VALID_OPERATION 0x0008
#define CPER_PROC_VALID_FLAGS 0x0010
#define CPER_PROC_VALID_LEVEL 0x0020
#define CPER_PROC_VALID_VERSION 0x0040
#define CPER_PROC_VALID_BRAND_INFO 0x0080
#define CPER_PROC_VALID_ID 0x0100
#define CPER_PROC_VALID_TARGET_ADDRESS 0x0200
#define CPER_PROC_VALID_REQUESTOR_ID 0x0400
#define CPER_PROC_VALID_RESPONDER_ID 0x0800
#define CPER_PROC_VALID_IP 0x1000
#define CPER_MEM_VALID_ERROR_STATUS 0x0001
#define CPER_MEM_VALID_PHYSICAL_ADDRESS 0x0002
#define CPER_MEM_VALID_PHYSICAL_ADDRESS_MASK 0x0004
#define CPER_MEM_VALID_NODE 0x0008
#define CPER_MEM_VALID_CARD 0x0010
#define CPER_MEM_VALID_MODULE 0x0020
#define CPER_MEM_VALID_BANK 0x0040
#define CPER_MEM_VALID_DEVICE 0x0080
#define CPER_MEM_VALID_ROW 0x0100
#define CPER_MEM_VALID_COLUMN 0x0200
#define CPER_MEM_VALID_BIT_POSITION 0x0400
#define CPER_MEM_VALID_REQUESTOR_ID 0x0800
#define CPER_MEM_VALID_RESPONDER_ID 0x1000
#define CPER_MEM_VALID_TARGET_ID 0x2000
#define CPER_MEM_VALID_ERROR_TYPE 0x4000
#define CPER_PCIE_VALID_PORT_TYPE 0x0001
#define CPER_PCIE_VALID_VERSION 0x0002
#define CPER_PCIE_VALID_COMMAND_STATUS 0x0004
#define CPER_PCIE_VALID_DEVICE_ID 0x0008
#define CPER_PCIE_VALID_SERIAL_NUMBER 0x0010
#define CPER_PCIE_VALID_BRIDGE_CONTROL_STATUS 0x0020
#define CPER_PCIE_VALID_CAPABILITY 0x0040
#define CPER_PCIE_VALID_AER_INFO 0x0080
#define CPER_PCIE_SLOT_SHIFT 3
/*
* All tables and structs must be byte-packed to match CPER
* specification, since the tables are provided by the system BIOS
...
...
@@ -306,6 +349,41 @@ struct cper_sec_mem_err {
__u8
error_type
;
};
struct
cper_sec_pcie
{
__u64
validation_bits
;
__u32
port_type
;
struct
{
__u8
minor
;
__u8
major
;
__u8
reserved
[
2
];
}
version
;
__u16
command
;
__u16
status
;
__u32
reserved
;
struct
{
__u16
vendor_id
;
__u16
device_id
;
__u8
class_code
[
3
];
__u8
function
;
__u8
device
;
__u16
segment
;
__u8
bus
;
__u8
secondary_bus
;
__u16
slot
;
__u8
reserved
;
}
device_id
;
struct
{
__u32
lower
;
__u32
upper
;
}
serial_number
;
struct
{
__u16
secondary_status
;
__u16
control
;
}
bridge
;
__u8
capability
[
60
];
__u8
aer_info
[
96
];
};
/* Reset to default packing */
#pragma pack()
...
...
kernel/panic.c
View file @
03b6e6e5
...
...
@@ -34,6 +34,7 @@ static int pause_on_oops_flag;
static
DEFINE_SPINLOCK
(
pause_on_oops_lock
);
int
panic_timeout
;
EXPORT_SYMBOL_GPL
(
panic_timeout
);
ATOMIC_NOTIFIER_HEAD
(
panic_notifier_list
);
...
...
lib/ioremap.c
View file @
03b6e6e5
...
...
@@ -9,6 +9,7 @@
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/io.h>
#include <linux/module.h>
#include <asm/cacheflush.h>
#include <asm/pgtable.h>
...
...
@@ -90,3 +91,4 @@ int ioremap_page_range(unsigned long addr,
return
err
;
}
EXPORT_SYMBOL_GPL
(
ioremap_page_range
);
mm/vmalloc.c
View file @
03b6e6e5
...
...
@@ -1175,6 +1175,7 @@ void unmap_kernel_range_noflush(unsigned long addr, unsigned long size)
{
vunmap_page_range
(
addr
,
addr
+
size
);
}
EXPORT_SYMBOL_GPL
(
unmap_kernel_range_noflush
);
/**
* unmap_kernel_range - unmap kernel VM area and flush cache and TLB
...
...
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