aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2015-04-10 09:52:37 -0400
committerDavid S. Miller <davem@davemloft.net>2015-04-13 13:15:14 -0400
commite2c6544829f8df396a0a233c86d5ee78f405ffef (patch)
tree5a774d8f2ac52fe39fa735f6c969f9ef1826ea69
parentcf890138087a6da2f56a642acb80476370b04332 (diff)
e1000e: Move pm_qos_req to e1000e adapter
e1000e is the only driver requiring pm_qos_req, instead of causing every device to waste up to 240 bytes. Allocate it for the specific driver. Signed-off-by: Thomas Graf <tgraf@suug.ch> Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/intel/e1000e/e1000.h1
-rw-r--r--drivers/net/ethernet/intel/e1000e/netdev.c8
-rw-r--r--include/linux/netdevice.h1
3 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h
index a69f09e37b58..5d9ceb17b4cb 100644
--- a/drivers/net/ethernet/intel/e1000e/e1000.h
+++ b/drivers/net/ethernet/intel/e1000e/e1000.h
@@ -343,6 +343,7 @@ struct e1000_adapter {
343 struct timecounter tc; 343 struct timecounter tc;
344 struct ptp_clock *ptp_clock; 344 struct ptp_clock *ptp_clock;
345 struct ptp_clock_info ptp_clock_info; 345 struct ptp_clock_info ptp_clock_info;
346 struct pm_qos_request pm_qos_req;
346 347
347 u16 eee_advert; 348 u16 eee_advert;
348}; 349};
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 74ec185a697f..c509a5c900f5 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -3297,9 +3297,9 @@ static void e1000_configure_rx(struct e1000_adapter *adapter)
3297 ew32(RXDCTL(0), rxdctl | 0x3); 3297 ew32(RXDCTL(0), rxdctl | 0x3);
3298 } 3298 }
3299 3299
3300 pm_qos_update_request(&adapter->netdev->pm_qos_req, lat); 3300 pm_qos_update_request(&adapter->pm_qos_req, lat);
3301 } else { 3301 } else {
3302 pm_qos_update_request(&adapter->netdev->pm_qos_req, 3302 pm_qos_update_request(&adapter->pm_qos_req,
3303 PM_QOS_DEFAULT_VALUE); 3303 PM_QOS_DEFAULT_VALUE);
3304 } 3304 }
3305 3305
@@ -4403,7 +4403,7 @@ static int e1000_open(struct net_device *netdev)
4403 e1000_update_mng_vlan(adapter); 4403 e1000_update_mng_vlan(adapter);
4404 4404
4405 /* DMA latency requirement to workaround jumbo issue */ 4405 /* DMA latency requirement to workaround jumbo issue */
4406 pm_qos_add_request(&adapter->netdev->pm_qos_req, PM_QOS_CPU_DMA_LATENCY, 4406 pm_qos_add_request(&adapter->pm_qos_req, PM_QOS_CPU_DMA_LATENCY,
4407 PM_QOS_DEFAULT_VALUE); 4407 PM_QOS_DEFAULT_VALUE);
4408 4408
4409 /* before we allocate an interrupt, we must be ready to handle it. 4409 /* before we allocate an interrupt, we must be ready to handle it.
@@ -4514,7 +4514,7 @@ static int e1000_close(struct net_device *netdev)
4514 !test_bit(__E1000_TESTING, &adapter->state)) 4514 !test_bit(__E1000_TESTING, &adapter->state))
4515 e1000e_release_hw_control(adapter); 4515 e1000e_release_hw_control(adapter);
4516 4516
4517 pm_qos_remove_request(&adapter->netdev->pm_qos_req); 4517 pm_qos_remove_request(&adapter->pm_qos_req);
4518 4518
4519 pm_runtime_put_sync(&pdev->dev); 4519 pm_runtime_put_sync(&pdev->dev);
4520 4520
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 13acb3d8ecdd..733d24f16cf8 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1751,7 +1751,6 @@ struct net_device {
1751#endif 1751#endif
1752 struct phy_device *phydev; 1752 struct phy_device *phydev;
1753 struct lock_class_key *qdisc_tx_busylock; 1753 struct lock_class_key *qdisc_tx_busylock;
1754 struct pm_qos_request pm_qos_req;
1755}; 1754};
1756#define to_net_dev(d) container_of(d, struct net_device, dev) 1755#define to_net_dev(d) container_of(d, struct net_device, dev)
1757 1756