From: David S. Miller Date: Tue, 14 Jan 2014 22:37:09 +0000 (-0800) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=0a379e21c503b2ff66b44d588df9f231e9b0b9ca;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git Merge git://git./linux/kernel/git/davem/net --- 0a379e21c503b2ff66b44d588df9f231e9b0b9ca diff --cc drivers/net/wireless/mwifiex/main.c index 2d6f5e1721cf,8bb8988c435c..4d79761b9c87 --- a/drivers/net/wireless/mwifiex/main.c +++ b/drivers/net/wireless/mwifiex/main.c @@@ -747,9 -746,10 +747,10 @@@ static struct net_device_stats *mwifiex } static u16 - mwifiex_netdev_select_wmm_queue(struct net_device *dev, struct sk_buff *skb) + mwifiex_netdev_select_wmm_queue(struct net_device *dev, struct sk_buff *skb, + void *accel_priv) { - skb->priority = cfg80211_classify8021d(skb); + skb->priority = cfg80211_classify8021d(skb, NULL); return mwifiex_1d_to_wmm_queue[skb->priority]; } diff --cc net/core/dev.c index 87312dcf0aa8,0ce469e5ec80..2bee80591f9a --- a/net/core/dev.c +++ b/net/core/dev.c @@@ -2529,8 -2523,23 +2529,8 @@@ netdev_features_t netif_skb_features(st } EXPORT_SYMBOL(netif_skb_features); -/* - * Returns true if either: - * 1. skb has frag_list and the device doesn't support FRAGLIST, or - * 2. skb is fragmented and the device does not support SG. - */ -static inline int skb_needs_linearize(struct sk_buff *skb, - netdev_features_t features) -{ - return skb_is_nonlinear(skb) && - ((skb_has_frag_list(skb) && - !(features & NETIF_F_FRAGLIST)) || - (skb_shinfo(skb)->nr_frags && - !(features & NETIF_F_SG))); -} - int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, - struct netdev_queue *txq, void *accel_priv) + struct netdev_queue *txq) { const struct net_device_ops *ops = dev->netdev_ops; int rc = NETDEV_TX_OK; diff --cc net/ipv6/ip6_vti.c index b50acd5e75d2,7b42d5ef868d..2d19272b8cee --- a/net/ipv6/ip6_vti.c +++ b/net/ipv6/ip6_vti.c @@@ -734,9 -736,14 +735,14 @@@ static inline int vti6_dev_init_gen(str t->dev = dev; t->net = dev_net(dev); - dev->tstats = alloc_percpu(struct pcpu_tstats); + dev->tstats = alloc_percpu(struct pcpu_sw_netstats); if (!dev->tstats) return -ENOMEM; + for_each_possible_cpu(i) { - struct pcpu_tstats *stats; ++ struct pcpu_sw_netstats *stats; + stats = per_cpu_ptr(dev->tstats, i); + u64_stats_init(&stats->syncp); + } return 0; }