From 16c3bc4787ef625dc02baca302fcfb9ca3eff019 Mon Sep 17 00:00:00 2001 From: Florian Mickler Date: Mon, 2 Aug 2010 14:27:00 +0000 Subject: [PATCH] --- yaml --- r: 204023 b: refs/heads/master c: c128ec29208d410568469bd8bb373b4cdc10912a h: refs/heads/master i: 204021: 34d6205313a2707c8a78825357de950971529780 204019: f6dae01b32866bfb0e9e2e273eb2743dbbba6073 204015: 91b8cf85501a3cfbe572ad1cf4d96370b4d26847 v: v3 --- [refs] | 2 +- trunk/drivers/net/e1000e/netdev.c | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index 57c03afde6f4..7f304971bd14 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c893b8066c7bf6156e4d760e5acaf4c148e37190 +refs/heads/master: c128ec29208d410568469bd8bb373b4cdc10912a diff --git a/trunk/drivers/net/e1000e/netdev.c b/trunk/drivers/net/e1000e/netdev.c index afd01295fbec..464c9a28f1ba 100644 --- a/trunk/drivers/net/e1000e/netdev.c +++ b/trunk/drivers/net/e1000e/netdev.c @@ -3218,12 +3218,6 @@ int e1000e_up(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; - /* DMA latency requirement to workaround early-receive/jumbo issue */ - if (adapter->flags & FLAG_HAS_ERT) - adapter->netdev->pm_qos_req = - pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY, - PM_QOS_DEFAULT_VALUE); - /* hardware has been reset, we need to reload some things */ e1000_configure(adapter); @@ -3287,12 +3281,6 @@ void e1000e_down(struct e1000_adapter *adapter) e1000_clean_tx_ring(adapter); e1000_clean_rx_ring(adapter); - if (adapter->flags & FLAG_HAS_ERT) { - pm_qos_remove_request( - adapter->netdev->pm_qos_req); - adapter->netdev->pm_qos_req = NULL; - } - /* * TODO: for power management, we could drop the link and * pci_disable_device here. @@ -3527,6 +3515,12 @@ static int e1000_open(struct net_device *netdev) E1000_MNG_DHCP_COOKIE_STATUS_VLAN)) e1000_update_mng_vlan(adapter); + /* DMA latency requirement to workaround early-receive/jumbo issue */ + if (adapter->flags & FLAG_HAS_ERT) + adapter->netdev->pm_qos_req = + pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY, + PM_QOS_DEFAULT_VALUE); + /* * before we allocate an interrupt, we must be ready to handle it. * Setting DEBUG_SHIRQ in the kernel makes it fire an interrupt @@ -3631,6 +3625,11 @@ static int e1000_close(struct net_device *netdev) if (adapter->flags & FLAG_HAS_AMT) e1000_release_hw_control(adapter); + if (adapter->flags & FLAG_HAS_ERT) { + pm_qos_remove_request(adapter->netdev->pm_qos_req); + adapter->netdev->pm_qos_req = NULL; + } + pm_runtime_put_sync(&pdev->dev); return 0;