Skip to content

Commit

Permalink
pch_gbe: Fix the issue which a driver locks when rx offload is set by…
Browse files Browse the repository at this point in the history
… ethtool

This driver will be in a deadlock, When the rx offload is set by ethtool.
The pch_gbe_reinit_locked function was modified.

Signed-off-by: Toshiharu Okada <toshiharu-linux@dsn.okisemi.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Toshiharu Okada authored and David S. Miller committed Feb 9, 2011
1 parent c69b909 commit 75d1a75
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions drivers/net/pch_gbe/pch_gbe_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -519,7 +519,9 @@ static void pch_gbe_reset_task(struct work_struct *work)
struct pch_gbe_adapter *adapter;
adapter = container_of(work, struct pch_gbe_adapter, reset_task);

rtnl_lock();
pch_gbe_reinit_locked(adapter);
rtnl_unlock();
}

/**
Expand All @@ -528,14 +530,8 @@ static void pch_gbe_reset_task(struct work_struct *work)
*/
void pch_gbe_reinit_locked(struct pch_gbe_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;

rtnl_lock();
if (netif_running(netdev)) {
pch_gbe_down(adapter);
pch_gbe_up(adapter);
}
rtnl_unlock();
pch_gbe_down(adapter);
pch_gbe_up(adapter);
}

/**
Expand Down

0 comments on commit 75d1a75

Please sign in to comment.