Bug 116586

Summary: (NET TG3) Immediately after loading tg3.o module into kernel on an HP DL380 G3, ip reports that link is not up, even if cable is plugged in.
Product: Red Hat Enterprise Linux 3 Reporter: David J Craigon <david.craigon>
Component: kernelAssignee: Jeff Garzik <jgarzik>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0CC: davem, notting, peterm, petrides, riel
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-10-06 02:58:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description David J Craigon 2004-02-23 15:23:10 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040115

Description of problem:
We have an HP DL380 G3. This has two (onboard) network cards claiming
to be:

Broadcom Corporation NetXtreme BCM5703 Gigabit Ethernet (rev 2)

(we are only using one of these cards, which is eth0)

When booting, the network card cannot obtain it's IP address from DHCP.
However after booting, we can run ifup fine!

I think I've figured out why this is.

When running the startup scripts, eventually S10network runs which in
turn runs ifup eth0.

ifup eth0 loads the correct module for the network card using modprobe
(at line 139 of the ifup script).

ifup then bails at line 249 saying the link is down _even if the
network card is attached to the network_. 

You can observe the same problem if you do the steps by hand (see
Steps to Reproduce below)


Version-Release number of selected component (if applicable):
kernel-2.4.21-9.EL

How reproducible:
Always

Steps to Reproduce:
1. Get a DL380G3 with RHEL on it :)
2. Make sure computer is attached to network
3. Boot into a runlevel, but use interactive startup to disable _all_
services on the way up
4. Run modprobe tg3
5. Run "if link"- it says eth0 says is not up. 
additionally, you can....
6. Run if link set eth0 down
7. Run if link again. Now it says it's up!
This explains why ifup fails the first time, but succeeds on
subsequent occasions.

Actual Results:  The link is stated to be down

Expected Results:  The link should be reported as up when the module
is loaded

Additional info:

Comment 1 Jeff Garzik 2004-06-14 17:40:49 UTC
Fixed in RHEL3 U2?

If not, I think this is fixed in RHEL3 U3.


Comment 2 David J Craigon 2004-06-23 14:01:16 UTC
It was RHEL3 U2 that didn't work. I've patched up, but we've only got
one of these and it's busy being a server now, so I can't really play
with it to see if it's fixed - sorry.

Comment 3 Ernie Petrides 2005-10-06 02:58:21 UTC
Jeff believes that this was fixed in RHEL3 U3 during our tg3 driver update.