diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-02 19:55:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-02 19:55:15 -0400 |
commit | 6681ba7ec480bc839584fd0817991d248b4b9e44 (patch) | |
tree | 994fb1de40d58ce8dac821cf1fec727e2f902f47 /arch/x86 | |
parent | 06ef93e1b8405acac6ec900564e3ad1a8e3a72b2 (diff) | |
parent | 4d096ca7e65584dd5845e64c6400f920e694f672 (diff) |
Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac
* 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac: (21 commits)
MAINTAINERS: add an entry for Edac Sandy Bridge driver
edac: tag sb_edac as EXPERIMENTAL, as it requires more testing
EDAC: Fix incorrect edac mode reporting in sb_edac
edac: sb_edac: Add it to the building system
edac: Add an experimental new driver to support Sandy Bridge CPU's
i7300_edac: Fix error cleanup logic
i7core_edac: Initialize memory name with cpu, channel, bank
i7core_edac: Fix compilation on 32 bits arch
i7core_edac: scrubbing fixups
EDAC: Correct Kconfig dependencies
i7core_edac: return -ENODEV if no MC is found
i7core_edac: use edac's own way to print errors
MAINTAINERS: remove dropped edac_mce.* from the file
i7core_edac: Drop the edac_mce facility
x86, MCE: Use notifier chain only for MCE decoding
EDAC i7core: Use mce socketid for better compatibility
i7core_edac: Don't enable memory scrubbing for Xeon 35xx
i7core_edac: Add scrubbing support
edac: Move edac main structs to include/linux/edac.h
i7core_edac: Fix oops when trying to inject errors
...
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/cpu/mcheck/mce.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index 7b5063a6ad42..864830e1dd65 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <linux/fs.h> | 36 | #include <linux/fs.h> |
37 | #include <linux/mm.h> | 37 | #include <linux/mm.h> |
38 | #include <linux/debugfs.h> | 38 | #include <linux/debugfs.h> |
39 | #include <linux/edac_mce.h> | ||
40 | #include <linux/irq_work.h> | 39 | #include <linux/irq_work.h> |
41 | 40 | ||
42 | #include <asm/processor.h> | 41 | #include <asm/processor.h> |
@@ -144,23 +143,20 @@ static struct mce_log mcelog = { | |||
144 | void mce_log(struct mce *mce) | 143 | void mce_log(struct mce *mce) |
145 | { | 144 | { |
146 | unsigned next, entry; | 145 | unsigned next, entry; |
146 | int ret = 0; | ||
147 | 147 | ||
148 | /* Emit the trace record: */ | 148 | /* Emit the trace record: */ |
149 | trace_mce_record(mce); | 149 | trace_mce_record(mce); |
150 | 150 | ||
151 | ret = atomic_notifier_call_chain(&x86_mce_decoder_chain, 0, mce); | ||
152 | if (ret == NOTIFY_STOP) | ||
153 | return; | ||
154 | |||
151 | mce->finished = 0; | 155 | mce->finished = 0; |
152 | wmb(); | 156 | wmb(); |
153 | for (;;) { | 157 | for (;;) { |
154 | entry = rcu_dereference_check_mce(mcelog.next); | 158 | entry = rcu_dereference_check_mce(mcelog.next); |
155 | for (;;) { | 159 | for (;;) { |
156 | /* | ||
157 | * If edac_mce is enabled, it will check the error type | ||
158 | * and will process it, if it is a known error. | ||
159 | * Otherwise, the error will be sent through mcelog | ||
160 | * interface | ||
161 | */ | ||
162 | if (edac_mce_parse(mce)) | ||
163 | return; | ||
164 | 160 | ||
165 | /* | 161 | /* |
166 | * When the buffer fills up discard new entries. | 162 | * When the buffer fills up discard new entries. |
@@ -556,10 +552,8 @@ void machine_check_poll(enum mcp_flags flags, mce_banks_t *b) | |||
556 | * Don't get the IP here because it's unlikely to | 552 | * Don't get the IP here because it's unlikely to |
557 | * have anything to do with the actual error location. | 553 | * have anything to do with the actual error location. |
558 | */ | 554 | */ |
559 | if (!(flags & MCP_DONTLOG) && !mce_dont_log_ce) { | 555 | if (!(flags & MCP_DONTLOG) && !mce_dont_log_ce) |
560 | mce_log(&m); | 556 | mce_log(&m); |
561 | atomic_notifier_call_chain(&x86_mce_decoder_chain, 0, &m); | ||
562 | } | ||
563 | 557 | ||
564 | /* | 558 | /* |
565 | * Clear state for this bank. | 559 | * Clear state for this bank. |