aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-07-07 18:59:38 -0400
committerDavid S. Miller <davem@davemloft.net>2010-07-07 18:59:38 -0400
commit597e608a8492d662736c9bc6aa507dbf1cadc17d (patch)
tree6c330cdd0a4809f67dd191b37e34f5b4318cef78 /drivers/net/ixgbe
parentacbc0f039ff4b93da737c91937b7c70018ded39f (diff)
parent33b665eeeb85956ccbdf31c4c31a4e2a31133c44 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'drivers/net/ixgbe')
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 55099a50cca4..b235aa16290f 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -3741,10 +3741,6 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
3741 /* signal that we are down to the interrupt handler */ 3741 /* signal that we are down to the interrupt handler */
3742 set_bit(__IXGBE_DOWN, &adapter->state); 3742 set_bit(__IXGBE_DOWN, &adapter->state);
3743 3743
3744 /* power down the optics */
3745 if (hw->phy.multispeed_fiber)
3746 hw->mac.ops.disable_tx_laser(hw);
3747
3748 /* disable receive for all VFs and wait one second */ 3744 /* disable receive for all VFs and wait one second */
3749 if (adapter->num_vfs) { 3745 if (adapter->num_vfs) {
3750 /* ping all the active vfs to let them know we are going down */ 3746 /* ping all the active vfs to let them know we are going down */
@@ -3799,6 +3795,10 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
3799 (IXGBE_READ_REG(hw, IXGBE_DMATXCTL) & 3795 (IXGBE_READ_REG(hw, IXGBE_DMATXCTL) &
3800 ~IXGBE_DMATXCTL_TE)); 3796 ~IXGBE_DMATXCTL_TE));
3801 3797
3798 /* power down the optics */
3799 if (hw->phy.multispeed_fiber)
3800 hw->mac.ops.disable_tx_laser(hw);
3801
3802 /* clear n-tuple filters that are cached */ 3802 /* clear n-tuple filters that are cached */
3803 ethtool_ntuple_flush(netdev); 3803 ethtool_ntuple_flush(netdev);
3804 3804
@@ -4058,7 +4058,7 @@ static void ixgbe_set_num_queues(struct ixgbe_adapter *adapter)
4058 4058
4059done: 4059done:
4060 /* Notify the stack of the (possibly) reduced Tx Queue count. */ 4060 /* Notify the stack of the (possibly) reduced Tx Queue count. */
4061 adapter->netdev->real_num_tx_queues = adapter->num_tx_queues; 4061 netif_set_real_num_tx_queues(adapter->netdev, adapter->num_tx_queues);
4062} 4062}
4063 4063
4064static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter, 4064static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter,
@@ -5246,7 +5246,6 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake)
5246 ixgbe_free_all_tx_resources(adapter); 5246 ixgbe_free_all_tx_resources(adapter);
5247 ixgbe_free_all_rx_resources(adapter); 5247 ixgbe_free_all_rx_resources(adapter);
5248 } 5248 }
5249 ixgbe_clear_interrupt_scheme(adapter);
5250 5249
5251#ifdef CONFIG_PM 5250#ifdef CONFIG_PM
5252 retval = pci_save_state(pdev); 5251 retval = pci_save_state(pdev);
@@ -5281,6 +5280,8 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake)
5281 5280
5282 *enable_wake = !!wufc; 5281 *enable_wake = !!wufc;
5283 5282
5283 ixgbe_clear_interrupt_scheme(adapter);
5284
5284 ixgbe_release_hw_control(adapter); 5285 ixgbe_release_hw_control(adapter);
5285 5286
5286 pci_disable_device(pdev); 5287 pci_disable_device(pdev);
@@ -6071,7 +6072,6 @@ static void ixgbe_tx_queue(struct ixgbe_adapter *adapter,
6071static void ixgbe_atr(struct ixgbe_adapter *adapter, struct sk_buff *skb, 6072static void ixgbe_atr(struct ixgbe_adapter *adapter, struct sk_buff *skb,
6072 int queue, u32 tx_flags) 6073 int queue, u32 tx_flags)
6073{ 6074{
6074 /* Right now, we support IPv4 only */
6075 struct ixgbe_atr_input atr_input; 6075 struct ixgbe_atr_input atr_input;
6076 struct tcphdr *th; 6076 struct tcphdr *th;
6077 struct iphdr *iph = ip_hdr(skb); 6077 struct iphdr *iph = ip_hdr(skb);
@@ -6080,6 +6080,9 @@ static void ixgbe_atr(struct ixgbe_adapter *adapter, struct sk_buff *skb,
6080 u32 src_ipv4_addr, dst_ipv4_addr; 6080 u32 src_ipv4_addr, dst_ipv4_addr;
6081 u8 l4type = 0; 6081 u8 l4type = 0;
6082 6082
6083 /* Right now, we support IPv4 only */
6084 if (skb->protocol != htons(ETH_P_IP))
6085 return;
6083 /* check if we're UDP or TCP */ 6086 /* check if we're UDP or TCP */
6084 if (iph->protocol == IPPROTO_TCP) { 6087 if (iph->protocol == IPPROTO_TCP) {
6085 th = tcp_hdr(skb); 6088 th = tcp_hdr(skb);