Bug 525539 - [RHEL5.4 Beta] 82578DM NIC links up as 10M-Half even if 82578DM NIC was set as 10M-Full
Summary: [RHEL5.4 Beta] 82578DM NIC links up as 10M-Half even if 82578DM NIC was set a...
Keywords:
Status: CLOSED DUPLICATE of bug 513706
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel
Version: 5.4
Hardware: All
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Andy Gospodarek
QA Contact: Red Hat Kernel QE team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-09-24 18:37 UTC by Flavio Leitner
Modified: 2014-06-29 23:01 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-02-09 14:23:15 UTC


Attachments (Terms of Use)
Upstream patch based on 2.6.18-165.el5 (7.53 KB, patch)
2009-09-24 18:40 UTC, Flavio Leitner
no flags Details | Diff

Description Flavio Leitner 2009-09-24 18:37:56 UTC
Description of problem:
When setting 82578DM NIC as 10M-Full with ethtool command and connecting 
to the port of the switching hub that was set as 10M-Full, and disabled
auto-negotiation, 82578DM NIC links up as 10M-Half.

Version-Release number of selected component (if applicable):
RHEL5.4 Beta
 kernel-2.6.18-155.el5

How reproducible:
Always

Steps to Reproduce:
1. Install RHEL5.4 Beta, and reboot.

2. Set 82578DM NIC as 10M-Full with ethtool command.

  # ethtool -s eth0 speed 10 duplex full autoneg off

3. Connect to the port of the switching hub that was set as 10M-Full, and disabled auto-negotiation.

4. Check the status of 82578DM NIC with ethtool command.

  # ethtool eth0

Actual results:
82578DM NIC links up as 10M-Half.

Expected results:
82578DM NIC links up as 10M-Full.

This is happens because it first configure the link and then reset it.
./drivers/net/e1000e/ich8lan.c
...
2201 static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw)
2202 {
...
2225         /* Setup link and flow control */
2226         ret_val = e1000_setup_link_ich8lan(hw);
2227 

and then the reset PHY:
2256         /*
2257          * The 82578 Rx buffer will stall if wakeup is enabled in host and
2258          * the ME.  Reading the BM_WUC register will clear the host wakeup bit.
2259          * Reset the phy after disabling host wakeup to reset the Rx buffer     .
2260          */
2261         if (hw->phy.type == e1000_phy_82578) {
2262                 e1e_rphy(hw, BM_WUC, &i);
2263                 e1000e_phy_hw_reset_generic(hw);
2264         }


The upstream commit below fixes this issue by moving the last part (reset)
to right before the first part (link setup).
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fc0c7760aea07c74af3395ad18f96ba62eecac36

Brew build:
https://brewweb.devel.redhat.com/taskinfo?taskID=1986896

Comment 1 Flavio Leitner 2009-09-24 18:40:15 UTC
Created attachment 362551 [details]
Upstream patch based on 2.6.18-165.el5

Attaching the patch. 
Customer has verified it.

Comment 3 Andy Gospodarek 2010-02-09 14:23:15 UTC
This patch has already been added with the update to e1000e added in 2.6.18-181

Please have the customer verify the latest RHEL5 kernels and re-open if needed.

*** This bug has been marked as a duplicate of bug 513706 ***


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