Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
authorDavid S. Miller <davem@davemloft.net>
Sun, 20 Feb 2011 03:17:35 +0000 (19:17 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 20 Feb 2011 03:17:35 +0000 (19:17 -0800)
Conflicts:
Documentation/feature-removal-schedule.txt
drivers/net/e1000e/netdev.c
net/xfrm/xfrm_policy.c

15 files changed:
1  2 
Documentation/feature-removal-schedule.txt
MAINTAINERS
drivers/net/e1000e/netdev.c
drivers/net/ixgbe/ixgbe_main.c
drivers/net/wireless/iwlwifi/iwl-3945.c
include/linux/dcbnl.h
net/bridge/br_private.h
net/core/dev.c
net/ipv4/devinet.c
net/ipv4/route.c
net/ipv6/netfilter/ip6t_LOG.c
net/ipv6/route.c
net/netfilter/core.c
net/netfilter/nf_conntrack_core.c
net/xfrm/xfrm_policy.c

index ccb6048415b25424eedea9b0aa3ff0738e99e5f2,b3f35e5f9c95470c96dce361251c3c2275bc2207..057602d5555d6251b6251806929b064a18c1f2a7
@@@ -604,9 -604,18 +604,25 @@@ Who:     Jean Delvare <khali@linux-fr.org
  
  ----------------------------
  
 +What: xt_connlimit rev 0
 +When: 2012
 +Who:  Jan Engelhardt <jengelh@medozas.de>
 +Files:        net/netfilter/xt_connlimit.c
 +
 +----------------------------
++
+ What: noswapaccount kernel command line parameter
+ When: 2.6.40
+ Why:  The original implementation of memsw feature enabled by
+       CONFIG_CGROUP_MEM_RES_CTLR_SWAP could be disabled by the noswapaccount
+       kernel parameter (introduced in 2.6.29-rc1). Later on, this decision
+       turned out to be not ideal because we cannot have the feature compiled
+       in and disabled by default and let only interested to enable it
+       (e.g. general distribution kernels might need it). Therefore we have
+       added swapaccount[=0|1] parameter (introduced in 2.6.37) which provides
+       the both possibilities. If we remove noswapaccount we will have
+       less command line parameters with the same functionality and we
+       can also cleanup the parameter handling a bit ().
+ Who:  Michal Hocko <mhocko@suse.cz>
+ ----------------------------
diff --cc MAINTAINERS
Simple merge
index 7cedfeb505b2dc022870d3dbf691657ba0c9fc8d,3fa110ddb0413d90690917ad0bf464c5d62b6397..ec0b803c501ededef55596fb3cf7d8ea7b6785dc
@@@ -3335,8 -3344,21 +3341,23 @@@ int e1000e_up(struct e1000_adapter *ada
        return 0;
  }
  
+ static void e1000e_flush_descriptors(struct e1000_adapter *adapter)
+ {
+       struct e1000_hw *hw = &adapter->hw;
+       if (!(adapter->flags2 & FLAG2_DMA_BURST))
+               return;
+       /* flush pending descriptor writebacks to memory */
+       ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD);
+       ew32(RDTR, adapter->rx_int_delay | E1000_RDTR_FPD);
+       /* execute the writes immediately */
+       e1e_flush();
+ }
 +static void e1000e_update_stats(struct e1000_adapter *adapter);
 +
  void e1000e_down(struct e1000_adapter *adapter)
  {
        struct net_device *netdev = adapter->netdev;
@@@ -4154,7 -4179,11 +4186,10 @@@ static void e1000_watchdog_task(struct 
        struct e1000_ring *tx_ring = adapter->tx_ring;
        struct e1000_hw *hw = &adapter->hw;
        u32 link, tctl;
 -      int tx_pending = 0;
  
+       if (test_bit(__E1000_DOWN, &adapter->state))
+               return;
        link = e1000e_has_link(adapter);
        if ((netif_carrier_ok(netdev)) && link) {
                /* Cancel scheduled suspend requests. */
Simple merge
Simple merge
Simple merge
diff --cc net/core/dev.c
index 4f6943928fe8d4ba8e9706633babb005d0f3234e,8ae6631abcc2093fe2ce9929f255be7e9c1eaff1..9d8bfd9d444bc4ba30bcfec1d28cc4c791ce6031
@@@ -1284,10 -1284,12 +1285,12 @@@ static int __dev_close(struct net_devic
        LIST_HEAD(single);
  
        list_add(&dev->unreg_list, &single);
-       return __dev_close_many(&single);
+       retval = __dev_close_many(&single);
+       list_del(&single);
+       return retval;
  }
  
 -int dev_close_many(struct list_head *head)
 +static int dev_close_many(struct list_head *head)
  {
        struct net_device *dev, *tmp;
        LIST_HEAD(tmp_list);
@@@ -5243,23 -5066,11 +5246,24 @@@ static void rollback_registered(struct 
  
        list_add(&dev->unreg_list, &single);
        rollback_registered_many(&single);
+       list_del(&single);
  }
  
 -unsigned long netdev_fix_features(unsigned long features, const char *name)
 +u32 netdev_fix_features(struct net_device *dev, u32 features)
  {
 +      /* Fix illegal checksum combinations */
 +      if ((features & NETIF_F_HW_CSUM) &&
 +          (features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
 +              netdev_info(dev, "mixed HW and IP checksum settings.\n");
 +              features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM);
 +      }
 +
 +      if ((features & NETIF_F_NO_CSUM) &&
 +          (features & (NETIF_F_HW_CSUM|NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
 +              netdev_info(dev, "mixed no checksumming and other settings.\n");
 +              features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM|NETIF_F_HW_CSUM);
 +      }
 +
        /* Fix illegal SG+CSUM combinations. */
        if ((features & NETIF_F_SG) &&
            !(features & NETIF_F_ALL_CSUM)) {
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 3f1257add4f3b35ecdc8063bb7bb7cb6628c1c5e,6459588befc33fc58baa4f341b04f95e7a675bca..7a8e2c77d08f1377ef7cbea011a377fecd6c682e
@@@ -1340,10 -1340,13 +1340,13 @@@ static inline struct xfrm_dst *xfrm_all
        default:
                BUG();
        }
-       xdst = dst_alloc(dst_ops, 0) ?: ERR_PTR(-ENOBUFS);
 -      xdst = dst_alloc(dst_ops);
++      xdst = dst_alloc(dst_ops, 0);
        xfrm_policy_put_afinfo(afinfo);
  
-       xdst->flo.ops = &xfrm_bundle_fc_ops;
+       if (likely(xdst))
+               xdst->flo.ops = &xfrm_bundle_fc_ops;
+       else
+               xdst = ERR_PTR(-ENOBUFS);
  
        return xdst;
  }