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: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
6b08f51624
5 changed files with 21 additions and 39 deletions
|
@ -1047,15 +1047,14 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
|
|||
goto err_register;
|
||||
|
||||
/* print bus type/speed/width info */
|
||||
e_info("(PCI%s:%s:%s) ",
|
||||
((hw->bus_type == e1000_bus_type_pcix) ? "-X" : ""),
|
||||
((hw->bus_speed == e1000_bus_speed_133) ? "133MHz" :
|
||||
(hw->bus_speed == e1000_bus_speed_120) ? "120MHz" :
|
||||
(hw->bus_speed == e1000_bus_speed_100) ? "100MHz" :
|
||||
(hw->bus_speed == e1000_bus_speed_66) ? "66MHz" : "33MHz"),
|
||||
((hw->bus_width == e1000_bus_width_64) ? "64-bit" : "32-bit"));
|
||||
|
||||
e_info("%pM\n", netdev->dev_addr);
|
||||
e_info("(PCI%s:%dMHz:%d-bit) %pM\n",
|
||||
((hw->bus_type == e1000_bus_type_pcix) ? "-X" : ""),
|
||||
((hw->bus_speed == e1000_bus_speed_133) ? 133 :
|
||||
(hw->bus_speed == e1000_bus_speed_120) ? 120 :
|
||||
(hw->bus_speed == e1000_bus_speed_100) ? 100 :
|
||||
(hw->bus_speed == e1000_bus_speed_66) ? 66 : 33),
|
||||
((hw->bus_width == e1000_bus_width_64) ? 64 : 32),
|
||||
netdev->dev_addr);
|
||||
|
||||
/* carrier off reporting is important to ethtool even BEFORE open */
|
||||
netif_carrier_off(netdev);
|
||||
|
|
|
@ -709,7 +709,7 @@ int vnic_dev_init_prov(struct vnic_dev *vdev, u8 *buf, u32 len)
|
|||
{
|
||||
u64 a0, a1 = len;
|
||||
int wait = 1000;
|
||||
u64 prov_pa;
|
||||
dma_addr_t prov_pa;
|
||||
void *prov_buf;
|
||||
int ret;
|
||||
|
||||
|
|
|
@ -2075,25 +2075,6 @@ static int ixgbe_get_coalesce(struct net_device *netdev,
|
|||
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,
|
||||
struct ethtool_coalesce *ec)
|
||||
{
|
||||
|
@ -2122,9 +2103,6 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
|
|||
(1000000/ec->rx_coalesce_usecs < IXGBE_MIN_INT_RATE))
|
||||
return -EINVAL;
|
||||
|
||||
/* check the old value and enable RSC if necessary */
|
||||
need_reset = ixgbe_reenable_rsc(adapter, ec);
|
||||
|
||||
/* store the value in ints/second */
|
||||
adapter->rx_eitr_param = 1000000/ec->rx_coalesce_usecs;
|
||||
|
||||
|
@ -2133,9 +2111,6 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
|
|||
/* clear the lower bit as its used for dynamic state */
|
||||
adapter->rx_itr_setting &= ~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 */
|
||||
adapter->rx_eitr_param = 20000;
|
||||
adapter->rx_itr_setting = 1;
|
||||
|
@ -2155,9 +2130,10 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
|
|||
*/
|
||||
if (adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED) {
|
||||
adapter->flags2 &= ~IXGBE_FLAG2_RSC_ENABLED;
|
||||
netdev->features &= ~NETIF_F_LRO;
|
||||
e_info("rx-usecs set to 0, disabling RSC\n");
|
||||
|
||||
if (netdev->features & NETIF_F_LRO) {
|
||||
netdev->features &= ~NETIF_F_LRO;
|
||||
e_info("rx-usecs set to 0, disabling RSC\n");
|
||||
}
|
||||
need_reset = true;
|
||||
}
|
||||
}
|
||||
|
@ -2252,6 +2228,9 @@ static int ixgbe_set_flags(struct net_device *netdev, u32 data)
|
|||
}
|
||||
} else if (!adapter->rx_itr_setting) {
|
||||
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)
|
|||
u32 i, missed_rx = 0, mpc, bprc, lxon, lxoff, xon_off_tot;
|
||||
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) {
|
||||
u64 rsc_count = 0;
|
||||
u64 rsc_flush = 0;
|
||||
|
|
|
@ -532,6 +532,7 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
|
|||
new->ip_summed = old->ip_summed;
|
||||
skb_copy_queue_mapping(new, old);
|
||||
new->priority = old->priority;
|
||||
new->deliver_no_wcard = old->deliver_no_wcard;
|
||||
#if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE)
|
||||
new->ipvs_property = old->ipvs_property;
|
||||
#endif
|
||||
|
@ -569,7 +570,6 @@ static struct sk_buff *__skb_clone(struct sk_buff *n, struct sk_buff *skb)
|
|||
C(len);
|
||||
C(data_len);
|
||||
C(mac_len);
|
||||
C(rxhash);
|
||||
n->hdr_len = skb->nohdr ? skb_headroom(skb) : skb->hdr_len;
|
||||
n->cloned = 1;
|
||||
n->nohdr = 0;
|
||||
|
|
Loading…
Reference in a new issue