diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-06 15:36:13 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-06 15:36:13 -0700 |
commit | 8450493076cd1dc8465db688f919708b5be17d46 (patch) | |
tree | 25ad03937122d537ed4fab125c0ed968cead7f43 /drivers/acpi | |
parent | 311da4975894aab7a4bb94aa83f38f052d7ffda4 (diff) | |
parent | eaa3a1d46cfdbf1af50311e7a22f5d38c0418b56 (diff) | |
download | linux-8450493076cd1dc8465db688f919708b5be17d46.tar.gz linux-8450493076cd1dc8465db688f919708b5be17d46.tar.bz2 linux-8450493076cd1dc8465db688f919708b5be17d46.zip |
Merge tag 'edac_for_4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp
Pull EDAC updates from Borislav Petkov:
- Stratix10 SDRAM support to altera_edac (Thor Thayer)
- the usual misc fixes all over the place
[ Also, shared branch for socfpga_stratix10.dtsi file changes with the
socfpga tree ]
* tag 'edac_for_4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
EDAC, ghes: Make platform-based whitelisting x86-only
EDAC, altera: Fix ARM64 build warning
EDAC, skx: Fix skx_edac build error when ACPI_NFIT=m
EDAC, ghes: Use BIT() macro
EDAC, ghes: Add DDR4 and NVDIMM memory types
EDAC, altera: Handle SDRAM Uncorrectable Errors on Stratix10
Documentation: dt: edac: Move Altera SOCFPGA EDAC file
EDAC, altera: Add support for Stratix10 SDRAM EDAC
Documentation: dt: socfpga: Add Stratix10 ECC Manager binding
EDAC, ghes: Remove unused argument to ghes_edac_report_mem_error()
arm64: dts: stratix10: add sdram ecc
EDAC, i7core: Fix spelling mistake: "redundacy" -> "redundancy"
EDAC, ghes: Add a null pointer check in ghes_edac_unregister()
ghes, EDAC: Fix ghes_edac registration
arm64: dts: stratix10: Change pad skew values for EMAC0 PHY driver
ARM: dts: consistently use 'atmel' as at24 manufacturer in cyclone5
arm64: dts: stratix10: Add PL330 DMAC to Stratix10 dts
arm64: dts: stratix10: enable i2c, add i2c periperals
arm64: dts: stratix10: use clock bindings for the Stratix10 platform
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/apei/ghes.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index 1efefe919555..02c6fd9caff7 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c @@ -481,7 +481,7 @@ static void ghes_do_proc(struct ghes *ghes, if (guid_equal(sec_type, &CPER_SEC_PLATFORM_MEM)) { struct cper_sec_mem_err *mem_err = acpi_hest_get_payload(gdata); - ghes_edac_report_mem_error(ghes, sev, mem_err); + ghes_edac_report_mem_error(sev, mem_err); arch_apei_report_mem_error(sev, mem_err); ghes_handle_memory_failure(gdata, sev); @@ -1087,10 +1087,6 @@ static int ghes_probe(struct platform_device *ghes_dev) goto err; } - rc = ghes_edac_register(ghes, &ghes_dev->dev); - if (rc < 0) - goto err; - switch (generic->notify.type) { case ACPI_HEST_NOTIFY_POLLED: timer_setup(&ghes->timer, ghes_poll_func, TIMER_DEFERRABLE); @@ -1102,14 +1098,14 @@ static int ghes_probe(struct platform_device *ghes_dev) if (rc) { pr_err(GHES_PFX "Failed to map GSI to IRQ for generic hardware error source: %d\n", generic->header.source_id); - goto err_edac_unreg; + goto err; } rc = request_irq(ghes->irq, ghes_irq_func, IRQF_SHARED, "GHES IRQ", ghes); if (rc) { pr_err(GHES_PFX "Failed to register IRQ for generic hardware error source: %d\n", generic->header.source_id); - goto err_edac_unreg; + goto err; } break; @@ -1132,14 +1128,16 @@ static int ghes_probe(struct platform_device *ghes_dev) default: BUG(); } + platform_set_drvdata(ghes_dev, ghes); + ghes_edac_register(ghes, &ghes_dev->dev); + /* Handle any pending errors right away */ ghes_proc(ghes); return 0; -err_edac_unreg: - ghes_edac_unregister(ghes); + err: if (ghes) { ghes_fini(ghes); |