* [PATCH] EDAC Coexistance with BIOS
@ 2006-05-03 19:58 mark gross
0 siblings, 0 replies; only message in thread
From: mark gross @ 2006-05-03 19:58 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel, bluesmoke-devel, mark.gross
The following patch addresses the issue of EDAC/BIOS coexistence for the
e752x chip-sets. It is a patch agaist 2.6.17-rc3-mm1.
We have found a problem where the BIOS will start the system with the error
registers (dev0:fun1) hidden and assuming it has exclusive access to them.
The edac driver violates this assumption.
The work around this patch offers is to honor the hidden-ness as an
indication that it is not safe to use those registers.
Please apply
Signed-off-by: Mark Gross <mark.gross@intel.com>
Thanks,
diff -urN -X linux-2.6.17-rc3-mm1/Documentation/dontdiff linux-2.6.17-rc3-mm1/drivers/edac/e752x_edac.c linux-2.6.17-rc3-mm1_edac/drivers/edac/e752x_edac.c
--- linux-2.6.17-rc3-mm1/drivers/edac/e752x_edac.c 2006-05-03 11:31:04.000000000 -0700
+++ linux-2.6.17-rc3-mm1_edac/drivers/edac/e752x_edac.c 2006-05-03 11:20:54.000000000 -0700
@@ -25,6 +25,8 @@
#include <linux/slab.h>
#include "edac_mc.h"
+static int force_function_unhide;
+
#define e752x_printk(level, fmt, arg...) \
edac_printk(level, "e752x", fmt, ##arg)
@@ -782,8 +784,16 @@
debugf0("%s(): mci\n", __func__);
debugf0("Starting Probe1\n");
- /* enable device 0 function 1 */
+ /* check to see if device 0 function 1 is enabled; if it isn't, we
+ * assume the BIOS has reserved it for a reason and is expecting
+ * exclusive access, we take care not to violate that assumption and
+ * fail the probe. */
pci_read_config_byte(pdev, E752X_DEVPRES1, &stat8);
+ if (!force_function_unhide && !(stat8 & (1 << 5))) {
+ printk(KERN_INFO "Contact your BIOS vendor to see if the "
+ "E752x error registers can be safely un-hidden\n");
+ goto fail;
+ }
stat8 |= (1 << 5);
pci_write_config_byte(pdev, E752X_DEVPRES1, stat8);
@@ -1063,3 +1073,8 @@
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Linux Networx (http://lnxi.com) Tom Zimmerman\n");
MODULE_DESCRIPTION("MC support for Intel e752x memory controllers");
+
+module_param(force_function_unhide, int, 0444);
+MODULE_PARM_DESC(force_function_unhide, "if BIOS sets Dev0:Fun1 up as hidden:"
+" 1=force unhide and hope BIOS doesn't fight driver for Dev0:Fun1 access");
+
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-05-03 19:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-03 19:58 [PATCH] EDAC Coexistance with BIOS mark gross
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.