>-----Original Message-----
>From: Esa-Pekka Pyokkimies [mailto:esa-pekka.pyokkim...@stonesoft.com]
>Sent: Monday, September 12, 2011 4:01 AM
>To: e1000-devel@lists.sourceforge.net
>Cc: mika.lansiri...@stonesoft.com
>Subject: [E1000-devel] [PATCH] ixgbe: get pauseparam autoneg
>
>There is a problem in the ixgbe driver with the reporting of the flow
>control
>parameters. The autoneg parameter is shown to be of if *either* it really
>is
>off, or current modes for both tx and rx are off.
>
>The problem is seen when the parameters are read or set when the link is
>down.
>In this case, the driver sees that tx and rx are currently off and
>therefore
>autoneg parameter is incorrectly reported to be off too. Also, the ethtool
>binary can not set the autoneg off since it sees that it already is. When a
>link later comes up, the autonegotiation is carried out normally and the
>driver later on reports the autoneg parameter to be on (as it is) and then
>it
>can also be changed with ethtool.
>
>The patch is made against v3.0 kernel, but the problem seems to be there
>since
>v2.6.30-rc1.
>
>Reviewer comments: What we are trying to do is to disable flow control
>while
>the cable is disconnected. Since ixgbe defaults to full flow control, we
>call
>ethtool -A autoneg off rx off tx off while the cable is disconnected. This
>doesn't work, because the driver sets hw->fc.current_mode = ixgbe_fc_none
>if
>the cable is unplugged. ixgbe_get_pauseparam() then reports to ethtool that
>nothing needs to be done. The code fixes this, but it might have some
>unknown
>consequences.
>
>Signed-off-by: Mika Lansirinne <mika.lansiri...@stonesoft.com>
>Reviewed-by: Esa-Pekka Pyokkimies <esa-pekka.pyokkim...@stonesoft.com>
>---
>diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c
>b/drivers/net/ixgbe/ixgbe_ethtool.c
>index 82d4244..db27c24 100644
>--- a/drivers/net/ixgbe/ixgbe_ethtool.c
>+++ b/drivers/net/ixgbe/ixgbe_ethtool.c
>@@ -368,13 +368,7 @@ static void ixgbe_get_pauseparam(struct net_device
>*netdev,
>         struct ixgbe_adapter *adapter = netdev_priv(netdev);
>         struct ixgbe_hw *hw = &adapter->hw;
>
>-       /*
>-        * Flow Control Autoneg isn't on if
>-        *  - we didn't ask for it OR
>-        *  - it failed, we know this by tx & rx being off
>-        */
>-       if (hw->fc.disable_fc_autoneg ||
>-           (hw->fc.current_mode == ixgbe_fc_none))
>+       if (hw->fc.disable_fc_autoneg)
>                 pause->autoneg = 0;
>         else
>                 pause->autoneg = 1;

Thanks for your report. We will review the patch and run some tests. 

What is the network adapter that you see this issue on? Can you provide the 
output of lspci -n and ethtool -e?

Thanks,
Emil



------------------------------------------------------------------------------
Doing More with Less: The Next Generation Virtual Desktop 
What are the key obstacles that have prevented many mid-market businesses
from deploying virtual desktops?   How do next-generation virtual desktops
provide companies an easier-to-deploy, easier-to-manage and more affordable
virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to