diff options
author | David S. Miller <davem@davemloft.net> | 2010-07-07 18:59:38 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-07-07 18:59:38 -0400 |
commit | 597e608a8492d662736c9bc6aa507dbf1cadc17d (patch) | |
tree | 6c330cdd0a4809f67dd191b37e34f5b4318cef78 /drivers/net/ixgbe | |
parent | acbc0f039ff4b93da737c91937b7c70018ded39f (diff) | |
parent | 33b665eeeb85956ccbdf31c4c31a4e2a31133c44 (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.c | 17 |
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 | ||
4059 | done: | 4059 | done: |
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 | ||
4064 | static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter, | 4064 | static 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, | |||
6071 | static void ixgbe_atr(struct ixgbe_adapter *adapter, struct sk_buff *skb, | 6072 | static 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); |