Commit 6b08f516 authored by David S. Miller's avatar David S. Miller

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Conflicts:
	drivers/net/ixgbe/ixgbe_ethtool.c

With merge conflict help from Stephen Rothwell.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 0b5c25e8 28c8e479
...@@ -1047,15 +1047,14 @@ static int __devinit e1000_probe(struct pci_dev *pdev, ...@@ -1047,15 +1047,14 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
goto err_register; goto err_register;
/* print bus type/speed/width info */ /* print bus type/speed/width info */
e_info("(PCI%s:%s:%s) ", e_info("(PCI%s:%dMHz:%d-bit) %pM\n",
((hw->bus_type == e1000_bus_type_pcix) ? "-X" : ""), ((hw->bus_type == e1000_bus_type_pcix) ? "-X" : ""),
((hw->bus_speed == e1000_bus_speed_133) ? "133MHz" : ((hw->bus_speed == e1000_bus_speed_133) ? 133 :
(hw->bus_speed == e1000_bus_speed_120) ? "120MHz" : (hw->bus_speed == e1000_bus_speed_120) ? 120 :
(hw->bus_speed == e1000_bus_speed_100) ? "100MHz" : (hw->bus_speed == e1000_bus_speed_100) ? 100 :
(hw->bus_speed == e1000_bus_speed_66) ? "66MHz" : "33MHz"), (hw->bus_speed == e1000_bus_speed_66) ? 66 : 33),
((hw->bus_width == e1000_bus_width_64) ? "64-bit" : "32-bit")); ((hw->bus_width == e1000_bus_width_64) ? 64 : 32),
netdev->dev_addr);
e_info("%pM\n", netdev->dev_addr);
/* carrier off reporting is important to ethtool even BEFORE open */ /* carrier off reporting is important to ethtool even BEFORE open */
netif_carrier_off(netdev); netif_carrier_off(netdev);
......
...@@ -709,7 +709,7 @@ int vnic_dev_init_prov(struct vnic_dev *vdev, u8 *buf, u32 len) ...@@ -709,7 +709,7 @@ int vnic_dev_init_prov(struct vnic_dev *vdev, u8 *buf, u32 len)
{ {
u64 a0, a1 = len; u64 a0, a1 = len;
int wait = 1000; int wait = 1000;
u64 prov_pa; dma_addr_t prov_pa;
void *prov_buf; void *prov_buf;
int ret; int ret;
......
...@@ -2075,25 +2075,6 @@ static int ixgbe_get_coalesce(struct net_device *netdev, ...@@ -2075,25 +2075,6 @@ static int ixgbe_get_coalesce(struct net_device *netdev,
return 0; return 0;
} }
/*
* this function must be called before setting the new value of
* rx_itr_setting
*/
static bool ixgbe_reenable_rsc(struct ixgbe_adapter *adapter,
struct ethtool_coalesce *ec)
{
/* check the old value and enable RSC if necessary */
if ((adapter->rx_itr_setting == 0) &&
(adapter->flags2 & IXGBE_FLAG2_RSC_CAPABLE)) {
adapter->flags2 |= IXGBE_FLAG2_RSC_ENABLED;
adapter->netdev->features |= NETIF_F_LRO;
e_info("rx-usecs set to %d, re-enabling RSC\n",
ec->rx_coalesce_usecs);
return true;
}
return false;
}
static int ixgbe_set_coalesce(struct net_device *netdev, static int ixgbe_set_coalesce(struct net_device *netdev,
struct ethtool_coalesce *ec) struct ethtool_coalesce *ec)
{ {
...@@ -2122,9 +2103,6 @@ static int ixgbe_set_coalesce(struct net_device *netdev, ...@@ -2122,9 +2103,6 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
(1000000/ec->rx_coalesce_usecs < IXGBE_MIN_INT_RATE)) (1000000/ec->rx_coalesce_usecs < IXGBE_MIN_INT_RATE))
return -EINVAL; return -EINVAL;
/* check the old value and enable RSC if necessary */
need_reset = ixgbe_reenable_rsc(adapter, ec);
/* store the value in ints/second */ /* store the value in ints/second */
adapter->rx_eitr_param = 1000000/ec->rx_coalesce_usecs; adapter->rx_eitr_param = 1000000/ec->rx_coalesce_usecs;
...@@ -2133,9 +2111,6 @@ static int ixgbe_set_coalesce(struct net_device *netdev, ...@@ -2133,9 +2111,6 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
/* clear the lower bit as its used for dynamic state */ /* clear the lower bit as its used for dynamic state */
adapter->rx_itr_setting &= ~1; adapter->rx_itr_setting &= ~1;
} else if (ec->rx_coalesce_usecs == 1) { } else if (ec->rx_coalesce_usecs == 1) {
/* check the old value and enable RSC if necessary */
need_reset = ixgbe_reenable_rsc(adapter, ec);
/* 1 means dynamic mode */ /* 1 means dynamic mode */
adapter->rx_eitr_param = 20000; adapter->rx_eitr_param = 20000;
adapter->rx_itr_setting = 1; adapter->rx_itr_setting = 1;
...@@ -2155,9 +2130,10 @@ static int ixgbe_set_coalesce(struct net_device *netdev, ...@@ -2155,9 +2130,10 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
*/ */
if (adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED) { if (adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED) {
adapter->flags2 &= ~IXGBE_FLAG2_RSC_ENABLED; adapter->flags2 &= ~IXGBE_FLAG2_RSC_ENABLED;
if (netdev->features & NETIF_F_LRO) {
netdev->features &= ~NETIF_F_LRO; netdev->features &= ~NETIF_F_LRO;
e_info("rx-usecs set to 0, disabling RSC\n"); e_info("rx-usecs set to 0, disabling RSC\n");
}
need_reset = true; need_reset = true;
} }
} }
...@@ -2252,6 +2228,9 @@ static int ixgbe_set_flags(struct net_device *netdev, u32 data) ...@@ -2252,6 +2228,9 @@ static int ixgbe_set_flags(struct net_device *netdev, u32 data)
} }
} else if (!adapter->rx_itr_setting) { } else if (!adapter->rx_itr_setting) {
netdev->features &= ~ETH_FLAG_LRO; netdev->features &= ~ETH_FLAG_LRO;
if (data & ETH_FLAG_LRO)
e_info("rx-usecs set to 0, "
"LRO/RSC cannot be enabled.\n");
} }
} }
......
...@@ -5269,6 +5269,10 @@ void ixgbe_update_stats(struct ixgbe_adapter *adapter) ...@@ -5269,6 +5269,10 @@ void ixgbe_update_stats(struct ixgbe_adapter *adapter)
u32 i, missed_rx = 0, mpc, bprc, lxon, lxoff, xon_off_tot; u32 i, missed_rx = 0, mpc, bprc, lxon, lxoff, xon_off_tot;
u64 non_eop_descs = 0, restart_queue = 0; u64 non_eop_descs = 0, restart_queue = 0;
if (test_bit(__IXGBE_DOWN, &adapter->state) ||
test_bit(__IXGBE_RESETTING, &adapter->state))
return;
if (adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED) { if (adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED) {
u64 rsc_count = 0; u64 rsc_count = 0;
u64 rsc_flush = 0; u64 rsc_flush = 0;
......
...@@ -532,6 +532,7 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old) ...@@ -532,6 +532,7 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
new->ip_summed = old->ip_summed; new->ip_summed = old->ip_summed;
skb_copy_queue_mapping(new, old); skb_copy_queue_mapping(new, old);
new->priority = old->priority; new->priority = old->priority;
new->deliver_no_wcard = old->deliver_no_wcard;
#if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE)
new->ipvs_property = old->ipvs_property; new->ipvs_property = old->ipvs_property;
#endif #endif
...@@ -569,7 +570,6 @@ static struct sk_buff *__skb_clone(struct sk_buff *n, struct sk_buff *skb) ...@@ -569,7 +570,6 @@ static struct sk_buff *__skb_clone(struct sk_buff *n, struct sk_buff *skb)
C(len); C(len);
C(data_len); C(data_len);
C(mac_len); C(mac_len);
C(rxhash);
n->hdr_len = skb->nohdr ? skb_headroom(skb) : skb->hdr_len; n->hdr_len = skb->nohdr ? skb_headroom(skb) : skb->hdr_len;
n->cloned = 1; n->cloned = 1;
n->nohdr = 0; n->nohdr = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment