Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
authorDavid S. Miller <davem@davemloft.net>
Tue, 17 May 2011 21:33:11 +0000 (17:33 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 May 2011 21:33:11 +0000 (17:33 -0400)
Conflicts:
drivers/net/vmxnet3/vmxnet3_ethtool.c
net/core/dev.c

16 files changed:
1  2 
drivers/net/bonding/bond_3ad.h
drivers/net/ehea/ehea_main.c
drivers/net/sfc/nic.c
drivers/net/sfc/nic.h
drivers/net/sfc/siena.c
drivers/net/vmxnet3/vmxnet3_ethtool.c
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/iwlegacy/iwl-core.c
drivers/net/wireless/iwlegacy/iwl-dev.h
drivers/net/wireless/libertas/cmd.c
net/bridge/br_netfilter.c
net/core/dev.c
net/core/ethtool.c
net/mac80211/tx.c
net/netfilter/ipvs/ip_vs_ctl.c
net/socket.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 64303eb3a5fc66ccdbe535f3f955be94c3bb6315,976467253d2006324af9355952e753d24c0ea301..dc959fe27aa5f61c813eb5889354345ca44bd4d4
@@@ -262,21 -296,26 +262,22 @@@ vmxnet3_get_strings(struct net_device *
        }
  }
  
 -static int
 -vmxnet3_set_flags(struct net_device *netdev, u32 data)
 +int vmxnet3_set_features(struct net_device *netdev, u32 features)
  {
        struct vmxnet3_adapter *adapter = netdev_priv(netdev);
 -      u8 lro_requested = (data & ETH_FLAG_LRO) == 0 ? 0 : 1;
 -      u8 lro_present = (netdev->features & NETIF_F_LRO) == 0 ? 0 : 1;
        unsigned long flags;
 +      u32 changed = features ^ netdev->features;
  
 -      if (ethtool_invalid_flags(netdev, data, ETH_FLAG_LRO))
 -              return -EINVAL;
 -
 -      if (lro_requested ^ lro_present) {
 -              /* toggle the LRO feature*/
 -              netdev->features ^= NETIF_F_LRO;
 -
 -              /* Update private LRO flag */
 -              adapter->lro = lro_requested;
 +      if (changed & (NETIF_F_RXCSUM|NETIF_F_LRO)) {
 +              if (features & NETIF_F_RXCSUM)
 +                      adapter->shared->devRead.misc.uptFeatures |=
 +                      UPT1_F_RXCSUM;
 +              else
 +                      adapter->shared->devRead.misc.uptFeatures &=
 +                      ~UPT1_F_RXCSUM;
  
 -              if (lro_requested)
+               /* update harware LRO capability accordingly */
 +              if (features & NETIF_F_LRO)
                        adapter->shared->devRead.misc.uptFeatures |=
                                                        UPT1_F_LRO;
                else
index 45303bdbc4654bb145560653e6ea50f23b2bc7ed,1482fa6508334cdd32b979b5a0a22bf8e826082b..17ebdf1e8b7bc567c20644eb150eec9058012a72
@@@ -2265,13 -2141,22 +2265,21 @@@ static void ath9k_set_coverage_class(st
  static void ath9k_flush(struct ieee80211_hw *hw, bool drop)
  {
        struct ath_softc *sc = hw->priv;
+       struct ath_hw *ah = sc->sc_ah;
+       struct ath_common *common = ath9k_hw_common(ah);
        int timeout = 200; /* ms */
        int i, j;
 +      bool drain_txq;
  
 -      ath9k_ps_wakeup(sc);
        mutex_lock(&sc->mutex);
 -
        cancel_delayed_work_sync(&sc->tx_complete_work);
  
+       if (sc->sc_flags & SC_OP_INVALID) {
+               ath_dbg(common, ATH_DBG_ANY, "Device not present\n");
+               mutex_unlock(&sc->mutex);
+               return;
+       }
        if (drop)
                timeout = 1;
  
Simple merge
Simple merge
diff --cc net/core/dev.c
index 3ed09f8ecbf8601d25096d59af0b5e846b74d817,acd742379344dd2fa4d7077f0dbd15c2cb48bed3..155de2094e71f3e44ac9ff13b219aa0fbaf002a1
@@@ -5268,9 -5256,9 +5268,9 @@@ int __netdev_update_features(struct net
        features = netdev_fix_features(dev, features);
  
        if (dev->features == features)
 -              return;
 +              return 0;
  
-       netdev_info(dev, "Features changed: 0x%08x -> 0x%08x\n",
+       netdev_dbg(dev, "Features changed: 0x%08x -> 0x%08x\n",
                dev->features, features);
  
        if (dev->netdev_ops->ndo_set_features)
@@@ -5462,20 -5414,6 +5462,14 @@@ int register_netdevice(struct net_devic
        dev->features |= NETIF_F_SOFT_FEATURES;
        dev->wanted_features = dev->features & dev->hw_features;
  
-       /* Avoid warning from netdev_fix_features() for GSO without SG */
-       if (!(dev->wanted_features & NETIF_F_SG)) {
-               dev->wanted_features &= ~NETIF_F_GSO;
-               dev->features &= ~NETIF_F_GSO;
-       }
 +      /* Turn on no cache copy if HW is doing checksum */
 +      dev->hw_features |= NETIF_F_NOCACHE_COPY;
 +      if ((dev->features & NETIF_F_ALL_CSUM) &&
 +          !(dev->features & NETIF_F_NO_CSUM)) {
 +              dev->wanted_features |= NETIF_F_NOCACHE_COPY;
 +              dev->features |= NETIF_F_NOCACHE_COPY;
 +      }
 +
        /* Enable GRO and NETIF_F_HIGHDMA for vlans by default,
         * vlan_dev_init() will do the dev->features check, so these features
         * are enabled only if supported by underlying device.
Simple merge
Simple merge
index 89842f06931db62767c7daf0ef74fc42e488379b,37890f228b19852272e022621a707740d9fe0f71..699c79a556573cb707e85eeab0b194e474f4ac79
@@@ -2066,9 -2066,12 +2066,9 @@@ static const struct file_operations ip_
        .open    = ip_vs_info_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
-       .release = seq_release_private,
+       .release = seq_release_net,
  };
  
 -#endif
 -
 -#ifdef CONFIG_PROC_FS
  static int ip_vs_stats_show(struct seq_file *seq, void *v)
  {
        struct net *net = seq_file_single_net(seq);
diff --cc net/socket.c
Simple merge