Bug 174589 - Random failure to load ipw-2.4.fw on consecutive reboots
Random failure to load ipw-2.4.fw on consecutive reboots
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
rawhide
i686 Linux
medium Severity medium
: ---
: ---
Assigned To: Dave Jones
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2005-11-30 09:50 EST by Tom London
Modified: 2015-01-04 17:23 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-12-04 14:25:27 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Tom London 2005-11-30 09:50:55 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8) Gecko/20051118 Fedora/1.5-0.5.0.rc3 Firefox/1.5

Description of problem:
Running rawhide, targeted/enforcing:

Consecutive reboots either successfully loads the ipw2200 firwmware, or reports 'file not found'.

Here is output from /var/log/messages for a successful boot:
Nov 29 14:15:18 localhost kernel: ieee80211: 802.11 data/management/control stack, git-1.1.7
Nov 29 14:15:18 localhost kernel: ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
Nov 29 14:15:18 localhost kernel: ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, git-1.0.8
Nov 29 14:15:18 localhost kernel: ipw2200: Copyright(c) 2003-2005 Intel Corporation
Nov 29 14:15:19 localhost kernel: ACPI: PCI Interrupt 0000:02:05.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11

Nov 29 14:15:19 localhost kernel: ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
Nov 29 14:15:19 localhost kernel: Floppy drive(s): fd0 is 1.44M
Nov 29 14:15:19 localhost kernel: ohci1394: $Rev: 1313 $ Ben Collins <bcollins@debian.org>
Nov 29 14:15:19 localhost kernel: PCI: Enabling device 0000:02:07.0 (0000 -> 0002)
Nov 29 14:15:19 localhost kernel: ACPI: PCI Interrupt Link [LNKF] enabled at IRQ 11
Nov 29 14:15:19 localhost kernel: ACPI: PCI Interrupt 0000:02:07.0[A] -> Link [LNKF] -> GSI 11 (level, low) -> IRQ 11
Nov 29 14:15:19 localhost kernel: ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[11]  MMIO=[fce06000-fce067ff]  Max Packet=[2048]
Nov 29 14:15:19 localhost kernel: floppy0: no floppy controllers found
Nov 29 14:15:19 localhost kernel: Intel(R) PRO/1000 Network Driver - version 6.1.16-k2-NAPI
Nov 29 14:15:19 localhost kernel: Copyright (c) 1999-2005 Intel Corporation.
Nov 29 14:15:19 localhost kernel: ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 11
Nov 29 14:15:19 localhost kernel: ACPI: PCI Interrupt 0000:02:09.0[A] -> Link [LNKE] -> GSI 11 (level, low) -> IRQ 11
Nov 29 14:15:19 localhost kernel: e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection


Here is /var/log/messages for an unsuccessful load of ipw2200 firmware:
Nov 30 06:33:30 localhost kernel: ieee80211: 802.11 data/management/control stack, git-1.1.7
Nov 30 06:33:30 localhost kernel: ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
Nov 30 06:33:30 localhost kernel: ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, git-1.0.8
Nov 30 06:33:30 localhost kernel: ipw2200: Copyright(c) 2003-2005 Intel Corporation
Nov 30 06:33:30 localhost kernel: ACPI: PCI Interrupt 0000:02:05.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11
Nov 30 06:33:30 localhost kernel: ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
Nov 30 06:33:30 localhost kernel: Floppy drive(s): fd0 is 1.44M
Nov 30 06:33:30 localhost kernel: floppy0: no floppy controllers found
Nov 30 06:33:30 localhost kernel: ipw2200: ipw-2.4-boot.fw load failed: Reason -2
Nov 30 06:33:30 localhost kernel: ipw2200: Unable to load firmware: -2
Nov 30 06:33:30 localhost kernel: ipw2200: failed to register network device
Nov 30 06:33:30 localhost kernel: ACPI: PCI interrupt for device 0000:02:05.0 disabled
Nov 30 06:33:30 localhost kernel: ipw2200: probe of 0000:02:05.0 failed with error -5


Version-Release number of selected component (if applicable):
kernel-2.6.14-1.1719_FC5

How reproducible:
Always

Steps to Reproduce:
1. boot
2. check /var/log/messages
3.
  

Additional info:
Comment 1 Tom London 2005-11-30 10:17:17 EST
Followed suggestion on ipw2200.sf.net to increase value of
/sys/class/firmware/timeout to 100, to no effect.
[I added the following line to rc.sysinit:
     echo -n $" storage"

     echo 100 >/sys/class/firmware/timeout
     # Network
     pushd /etc/sysconfig/network-scripts >/dev/null 2>&1
interfaces=`ls ifcfg* | LC_ALL=C egrep -v '(ifcfg-lo|:|rpmsave|rpmorig|rpmnew)' |

----------------------------------------------------
Firmware files fail to load even if installed
In some kernel configurations (users have most frequently reported the problem
only with 2.6.9), the default timeout value for the hotplug subsystem is too
low. You may have this problem if you see the following in your kernel log (via
dmesg or /var/log/messages):

ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.1
ipw2200: Copyright(c) 2003-2004 Intel Corporation
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: ipw-2.2-boot.fw load failed: Reason -2
ipw2200: Unable to load firmware: 0xFFFFFFFE
ipw2200: failed to register network device
ipw2200: probe of 0000:00:0b.0 failed with error -5

To work around this, you can increase the default timeout value:

	echo 100 > /sys/class/firmware/timeout

and then reload the ipw2200 module. If this corrects your problem, you may wish
to add the above line to your system startup scripts prior to the point at which
the driver module would be loaded.
Comment 2 Tom London 2005-12-01 09:59:19 EST
OK.  I tried again with the /sys/class/firmware/timeout 'fix', and the following
seems to make the firmware load correctly:

--- /tmp/rc.sysinit     2005-12-01 06:58:27.000000000 -0800
+++ ./rc.sysinit        2005-11-30 07:23:17.000000000 -0800
@@ -25,6 +25,8 @@
 fi
 mount -n -t sysfs /sys /sys >/dev/null 2>&1

+echo 500 >/sys/class/firmware/timeout
+
 . /etc/init.d/functions

 # Check SELinux status


That is, moving the setting of the increased timeout value to the very beginning
of rc.sysinit (just after mounting /sys).

I'm not sure if a value less than 500 will work.
Comment 3 Dave Jones 2005-12-01 16:57:32 EST
500 seems a bit excessive. (If we take 8 minutes to load firmware, we have big
problems!)  I've added a patch that increases the kernel timeout to 100 seconds
by default.

Ideally though the ipw driver should be using the asynchronous feature of the
firmware loader so that timeouts become irrelevant.
Comment 4 Dave Jones 2005-12-01 17:17:56 EST
thinko, I actually set it to '60', please let me know if that works in your script.
Comment 5 Tom London 2005-12-01 22:46:49 EST
I changed the script to use 60, and it seems to work (loaded correctly during
boot a few consecutive times).
Comment 6 Tom London 2005-12-04 14:25:27 EST
Appears to be fixed in both 1737 and 1739.

Thanks for the fix.

Closing.....

Note You need to log in before you can comment on or make changes to this bug.