[CentOS] Latest 6.2 kernel is broken

Mon Apr 23 16:54:33 UTC 2012
Lars Hecking <lhecking at users.sourceforge.net>

 I just kickstarted a new machine with the latest CentOS 6.2 files, including
 kernel 2.6.32-220.13.1.el6.x86_64. It came up without network interfaces.

 dmesg says:

bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.2.1 (Dec 18, 2011)
  alloc irq_desc for 36 on node -1
  alloc kstat_irqs on node -1
bnx2 0000:01:00.0: PCI INT A -> GSI 36 (level, low) -> IRQ 36
bnx2 0000:01:00.0: setting latency timer to 64
bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-mips-09-6.2.1b.fw
bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw"
bnx2 0000:01:00.0: PCI INT A disabled
bnx2: probe of 0000:01:00.0 failed with error -2

 The firmware file is missing from /lib/firmware and the kernel-firmware rpm.

 I found a copy of it on a Fedora site and dumped it into the right location,
 but it wasn't found after a reboot. Yet, it was found after a second reboot.
 Why is that? Is a rebuild of initramfs triggered somehow?

 What I don't understand is: I have an identical machine that I installed
 under 6.2 a while back, and kept up to date, and it doesn't have this
 problem. However, it tells me it uses version v2.1.11 (July 20, 2011) of
 the driver, how is that possible?

# grep bnx2 /var/log/messages
Apr 23 17:10:03 localhost kernel: bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.1.11 (July 20, 2011)
Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: PCI INT A -> GSI 36 (level, low) -> IRQ 36
Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-mips-09-6.2.1a.fw
Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-rv2p-09-6.0.17.fw
Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: eth0: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Express found at mem da000000, IRQ 36, node addr 78:2b:cb:67:3f:b6
[...]

# modinfo /lib/modules/2.6.32-220.13.1.el6.x86_64/kernel/drivers/net/bnx2.ko
filename:       /lib/modules/2.6.32-220.13.1.el6.x86_64/kernel/drivers/net/bnx2.ko
firmware:       bnx2/bnx2-rv2p-09ax-6.0.17.fw
firmware:       bnx2/bnx2-rv2p-09-6.0.17.fw
firmware:       bnx2/bnx2-mips-09-6.2.1a.fw
firmware:       bnx2/bnx2-rv2p-06-6.0.15.fw
firmware:       bnx2/bnx2-mips-06-6.2.1.fw
version:        2.1.11
license:        GPL
description:    Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver
[...]

# lspci -v -s 01:00.1 
01:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet (rev 20)
        Subsystem: Dell PowerEdge R410 BCM5716 Gigabit Ethernet
        Flags: bus master, fast devsel, latency 0, IRQ 48
        Memory at dc000000 (64-bit, non-prefetchable) [size=32M]
        Capabilities: [48] Power Management version 3
        Capabilities: [50] Vital Product Data
        Capabilities: [58] MSI: Enable- Count=1/16 Maskable- 64bit+
        Capabilities: [a0] MSI-X: Enable+ Count=9 Masked-
        Capabilities: [ac] Express Endpoint, MSI 00
        Capabilities: [100] Device Serial Number 78-2b-cb-ff-fe-67-3f-b7
        Capabilities: [110] Advanced Error Reporting
        Capabilities: [150] Power Budgeting <?>
        Capabilities: [160] Virtual Channel <?>
        Kernel driver in use: bnx2
        Kernel modules: bnx2