[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080410184455.GL84358@surrealistic.net>
Date: Thu, 10 Apr 2008 11:44:55 -0700
From: Jim Westfall <jwestfall@...realistic.net>
To: Phil Oester <kernel@...uxace.com>
Cc: netdev@...r.kernel.org, mchan@...adcom.com
Subject: Re: bnx2 probe order change from 2.6.21 -> 2.6.24
Phil Oester <kernel@...uxace.com> wrote [04.10.08]:
> Apologies if this has been covered already, but I searched the archives and
> couldn't find anything.
>
> I recently upgraded a Dell Poweredge 1950 from 2.6.21 to 2.6.24, and found
> that the onboard Broadcom NetXtreme II nics got probed in the reverse order.
>
> 2.6.21:
>
> Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v1.5.8.1 (May 7, 2007)
> ACPI: PCI Interrupt 0000:04:00.0[A] -> GSI 16 (level, low) -> IRQ 16
> eth8: Broadcom NetXtreme II BCM5708 1000Base-T (B1) PCI-X 64-bit 133MHz found at mem f8000000, IRQ 16, node addr 0015c5eaef1c
> ACPI: PCI Interrupt 0000:08:00.0[A] -> GSI 16 (level, low) -> IRQ 16
> eth9: Broadcom NetXtreme II BCM5708 1000Base-T (B1) PCI-X 64-bit 133MHz found at mem f4000000, IRQ 16, node addr 0015c5eaef1e
>
> 2.6.24:
>
> Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v1.6.9 (December 8, 2007)
> ACPI: PCI Interrupt 0000:08:00.0[A] -> GSI 16 (level, low) -> IRQ 16
> eth8: Broadcom NetXtreme II BCM5708 1000Base-T (B1) PCI-X 64-bit 133MHz found at mem f4000000, IRQ 16, node addr 00:15:c5:ea:ef:1e
> ACPI: PCI Interrupt 0000:04:00.0[A] -> GSI 16 (level, low) -> IRQ 16
> udev: renamed network interface eth8 to eth9
> eth8: Broadcom NetXtreme II BCM5708 1000Base-T (B1) PCI-X 64-bit 133MHz found at mem f8000000, IRQ 16, node addr 00:15:c5:ea:ef:1c
>
>
> Is this known/expected? Seems somewhat odd from both a MAC address
> perspective (1c < 1e) and a PCI bus order (04 < 08). Thoughts?
>
Hi
We ran into this issue as well when going from 2.6.20 to 2.6.23 on dell
1950/2950s.
If you check your dmesg output from your older kernel you should see
PCI: Dell PowerEdge 1950 detected, enabling pci=bfsort.
With the newer kernel the code path that triggers the above is removed if
you have ACPI enabled in the kernel.
We have been using the following patch which re-adds the code path to the
ACPI PCI code.
thanks
jim
diff -ur linux-2.6.23.16-orig/arch/i386/pci/acpi.c linux-2.6.23.16-inap3/arch/i386/pci/acpi.c
--- linux-2.6.23.16-orig/arch/i386/pci/acpi.c 2008-02-10 22:06:32.000000000 -0800
+++ linux-2.6.23.16-inap3/arch/i386/pci/acpi.c 2008-02-21 16:27:19.000000000 -0800
@@ -2,9 +2,12 @@
#include <linux/acpi.h>
#include <linux/init.h>
#include <linux/irq.h>
+#include <linux/dmi.h>
#include <asm/numa.h>
#include "pci.h"
+extern struct dmi_system_id __devinitdata pciprobe_dmi_table[];
+
struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int domain, int busnum)
{
struct pci_bus *bus;
@@ -27,6 +30,7 @@
return NULL;
}
+ dmi_check_system(pciprobe_dmi_table);
sd->node = -1;
pxm = acpi_get_pxm(device->handle);
diff -ur linux-2.6.23.16-orig/arch/i386/pci/common.c linux-2.6.23.16-inap3/arch/i386/pci/common.c
--- linux-2.6.23.16-orig/arch/i386/pci/common.c 2008-02-10 22:06:32.000000000 -0800
+++ linux-2.6.23.16-inap3/arch/i386/pci/common.c 2008-02-21 16:27:19.000000000 -0800
@@ -145,7 +145,7 @@
}
#endif
-static struct dmi_system_id __devinitdata pciprobe_dmi_table[] = {
+struct dmi_system_id __devinitdata pciprobe_dmi_table[] = {
#ifdef __i386__
/*
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists