diff options
author | Hitoshi Mitake <h.mitake@gmail.com> | 2008-04-29 04:03:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-29 11:06:26 -0400 |
commit | c3c52bce6993c6d37af2c2de9b482a7013d646a7 (patch) | |
tree | dc03a88574a0029af51aad044c449cb90e52247f /drivers/edac/i82875p_edac.c | |
parent | 1a45027d1afd7e85254b5ef8535e93ce3d588cf4 (diff) |
edac: fix module initialization on several modules 2nd time
I implemented opstate_init() as a inline function in linux/edac.h.
added calling opstate_init() to:
i82443bxgx_edac.c
i82860_edac.c
i82875p_edac.c
i82975x_edac.c
I wrote a fixed patch of
edac-fix-module-initialization-on-several-modules.patch,
and tested building 2.6.25-rc7 with applying this. It was succeed.
I think the patch is now correct.
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
Signed-off-by: Doug Thompson <dougthompson@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/edac/i82875p_edac.c')
-rw-r--r-- | drivers/edac/i82875p_edac.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/edac/i82875p_edac.c b/drivers/edac/i82875p_edac.c index 031abadc439a..e43bdc43a1bf 100644 --- a/drivers/edac/i82875p_edac.c +++ b/drivers/edac/i82875p_edac.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/pci.h> | 18 | #include <linux/pci.h> |
19 | #include <linux/pci_ids.h> | 19 | #include <linux/pci_ids.h> |
20 | #include <linux/slab.h> | 20 | #include <linux/slab.h> |
21 | #include <linux/edac.h> | ||
21 | #include "edac_core.h" | 22 | #include "edac_core.h" |
22 | 23 | ||
23 | #define I82875P_REVISION " Ver: 2.0.2 " __DATE__ | 24 | #define I82875P_REVISION " Ver: 2.0.2 " __DATE__ |
@@ -393,6 +394,7 @@ static int i82875p_probe1(struct pci_dev *pdev, int dev_idx) | |||
393 | struct i82875p_error_info discard; | 394 | struct i82875p_error_info discard; |
394 | 395 | ||
395 | debugf0("%s()\n", __func__); | 396 | debugf0("%s()\n", __func__); |
397 | |||
396 | ovrfl_pdev = pci_get_device(PCI_VEND_DEV(INTEL, 82875_6), NULL); | 398 | ovrfl_pdev = pci_get_device(PCI_VEND_DEV(INTEL, 82875_6), NULL); |
397 | 399 | ||
398 | if (i82875p_setup_overfl_dev(pdev, &ovrfl_pdev, &ovrfl_window)) | 400 | if (i82875p_setup_overfl_dev(pdev, &ovrfl_pdev, &ovrfl_window)) |
@@ -532,6 +534,10 @@ static int __init i82875p_init(void) | |||
532 | int pci_rc; | 534 | int pci_rc; |
533 | 535 | ||
534 | debugf3("%s()\n", __func__); | 536 | debugf3("%s()\n", __func__); |
537 | |||
538 | /* Ensure that the OPSTATE is set correctly for POLL or NMI */ | ||
539 | opstate_init(); | ||
540 | |||
535 | pci_rc = pci_register_driver(&i82875p_driver); | 541 | pci_rc = pci_register_driver(&i82875p_driver); |
536 | 542 | ||
537 | if (pci_rc < 0) | 543 | if (pci_rc < 0) |
@@ -586,3 +592,6 @@ module_exit(i82875p_exit); | |||
586 | MODULE_LICENSE("GPL"); | 592 | MODULE_LICENSE("GPL"); |
587 | MODULE_AUTHOR("Linux Networx (http://lnxi.com) Thayne Harbaugh"); | 593 | MODULE_AUTHOR("Linux Networx (http://lnxi.com) Thayne Harbaugh"); |
588 | MODULE_DESCRIPTION("MC support for Intel 82875 memory hub controllers"); | 594 | MODULE_DESCRIPTION("MC support for Intel 82875 memory hub controllers"); |
595 | |||
596 | module_param(edac_op_state, int, 0444); | ||
597 | MODULE_PARM_DESC(edac_op_state, "EDAC Error Reporting state: 0=Poll,1=NMI"); | ||