From: David S. Miller Date: Sat, 24 May 2014 04:32:30 +0000 (-0400) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net X-Git-Tag: next-20140530~74^2~9 X-Git-Url: https://git.kernelconcepts.de/?a=commitdiff_plain;h=54e5c4def0614ab540fbdf68e45342a4af141702;p=karo-tx-linux.git Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/bonding/bond_alb.c drivers/net/ethernet/altera/altera_msgdma.c drivers/net/ethernet/altera/altera_sgdma.c net/ipv6/xfrm6_output.c Several cases of overlapping changes. The xfrm6_output.c has a bug fix which overlaps the renaming of skb->local_df to skb->ignore_df. In the Altera TSE driver cases, the register access cleanups in net-next overlapped with bug fixes done in net. Similarly a bug fix to send ALB packets in the bonding driver using the right source address overlaps with cleanups in net-next. Signed-off-by: David S. Miller --- 54e5c4def0614ab540fbdf68e45342a4af141702 diff --cc drivers/net/bonding/bond_alb.c index 03e0bcade234,93580a47cc54..7bbbf1ca0887 --- a/drivers/net/bonding/bond_alb.c +++ b/drivers/net/bonding/bond_alb.c @@@ -1106,8 -1117,8 +1117,8 @@@ static void alb_fasten_mac_swap(struct ASSERT_RTNL(); /* fasten the change in the switch */ - if (SLAVE_IS_OK(slave1)) { + if (bond_slave_can_tx(slave1)) { - alb_send_learning_packets(slave1, slave1->dev->dev_addr); + alb_send_learning_packets(slave1, slave1->dev->dev_addr, false); if (bond->alb_info.rlb_enabled) { /* inform the clients that the mac address * has changed @@@ -1118,8 -1129,8 +1129,8 @@@ disabled_slave = slave1; } - if (SLAVE_IS_OK(slave2)) { + if (bond_slave_can_tx(slave2)) { - alb_send_learning_packets(slave2, slave2->dev->dev_addr); + alb_send_learning_packets(slave2, slave2->dev->dev_addr, false); if (bond->alb_info.rlb_enabled) { /* inform the clients that the mac address * has changed diff --cc drivers/net/ethernet/altera/altera_sgdma.c index dbd40e15b5cc,99cc56f451cf..580553d42d34 --- a/drivers/net/ethernet/altera/altera_sgdma.c +++ b/drivers/net/ethernet/altera/altera_sgdma.c @@@ -350,11 -348,12 +348,11 @@@ static void sgdma_setup_descrip(struct */ static int sgdma_async_read(struct altera_tse_private *priv) { - struct sgdma_csr *csr = priv->rx_dma_csr; - struct sgdma_descrip *descbase = priv->rx_dma_desc; - struct sgdma_descrip *cdesc = &descbase[0]; - struct sgdma_descrip *ndesc = &descbase[1]; + struct sgdma_descrip __iomem *descbase = + (struct sgdma_descrip __iomem *)priv->rx_dma_desc; + struct sgdma_descrip __iomem *cdesc = &descbase[0]; + struct sgdma_descrip __iomem *ndesc = &descbase[1]; - struct tse_buffer *rxbuffer = NULL; if (!sgdma_rxbusy(priv)) { diff --cc include/linux/if_vlan.h index 8c0fb7f3a9a5,b2acc4a1b13c..4967916fe4ac --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h @@@ -197,9 -198,15 +198,15 @@@ extern void vlan_vids_del_by_dev(struc const struct net_device *by_dev); extern bool vlan_uses_dev(const struct net_device *dev); + + static inline int vlan_get_encap_level(struct net_device *dev) + { + BUG_ON(!is_vlan_dev(dev)); + return vlan_dev_priv(dev)->nest_level; + } #else static inline struct net_device * -__vlan_find_dev_deep(struct net_device *real_dev, +__vlan_find_dev_deep_rcu(struct net_device *real_dev, __be16 vlan_proto, u16 vlan_id) { return NULL; diff --cc net/ipv6/xfrm6_output.c index f47c8b153dd3,b930d080c66f..433672d07d0b --- a/net/ipv6/xfrm6_output.c +++ b/net/ipv6/xfrm6_output.c @@@ -114,13 -114,7 +114,7 @@@ int xfrm6_prepare_output(struct xfrm_st if (err) return err; - memset(IP6CB(skb), 0, sizeof(*IP6CB(skb))); - #ifdef CONFIG_NETFILTER - IP6CB(skb)->flags |= IP6SKB_XFRM_TRANSFORMED; - #endif - - skb->protocol = htons(ETH_P_IPV6); - skb->local_df = 1; + skb->ignore_df = 1; return x->outer_mode->output2(x, skb); }