Date: Thu, 24 Jul 2003 13:27:39 +0900 From: Noriyoshi Kawano <bowie@nrik.jp> To: current@freebsd.org Subject: Re: Fatal trap 12: page fault while in kernel mode Message-ID: <86u19c8s78.wl@brain.nrik.jp> In-Reply-To: <20030723133111.S92624@carver.gumbysoft.com> References: <20030721103221.C95793@mbox.cksoft.de> <86n0f82r2c.wl@brain.nrik.jp> <Pine.BSF.4.53.0307211602420.45284@e0-0.zab2.int.zabbadoz.net> <20030723133111.S92624@carver.gumbysoft.com>
next in thread | previous in thread | raw e-mail | index | archive | help
At Wed, 23 Jul 2003 13:31:31 -0700 (PDT),
Doug White wrote:
>
> On Mon, 21 Jul 2003, Bjoern A. Zeeb wrote:
>
> > Thanks. This works fine. Is there any "global" solution to the problem
> > so that I won't need to patch again the time 5.2R comes out ?
>
> Smells like a good candiate for a TUNABLE.
Are they the following patches?
--- /sys/dev/pci/pci.c.orig Tue Jul 1 23:08:32 2003
+++ /sys/dev/pci/pci.c Thu Jul 24 13:17:03 2003
@@ -177,6 +177,12 @@
enable these bits correctly. We'd like to do this all the time, but there\n\
are some peripherals that this causes problems with.");
+static int pci_enable_rerouting = 1;
+TUNABLE_INT("hw.pci.enable_rerouting", (int *)&pci_enable_rerouting);
+SYSCTL_INT(_hw_pci, OID_AUTO, enable_rerouting, CTLFLAG_RW,
+ &pci_enable_rerouting, 1,
+ "Enable try to re-route interrupts.");
+
/* Find a device_t by bus/slot/function */
device_t
@@ -801,6 +807,9 @@
if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) {
#if defined(__ia64__) || (defined(__i386__) && !defined(SMP))
+ if (!pci_enable_rerouting){
+ goto nottry;
+ }
/*
* Try to re-route interrupts. Sometimes the BIOS or
* firmware may leave bogus values in these registers.
@@ -812,6 +821,7 @@
pci_write_config(dev, PCIR_INTLINE, irq, 1);
cfg->intline = irq;
} else
+nottry:
#endif
irq = cfg->intline;
resource_list_add(rl, SYS_RES_IRQ, 0, irq, irq, 1);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86u19c8s78.wl>
