Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1446 commits) macvlan: fix panic if lowerdev in a bond tg3: Add braces around 5906 workaround. tg3: Fix NETIF_F_LOOPBACK error macvlan: remove one synchronize_rcu() call networking: NET_CLS_ROUTE4 depends on INET irda: Fix error propagation in ircomm_lmp_connect_response() irda: Kill set but unused variable 'bytes' in irlan_check_command_param() irda: Kill set but unused variable 'clen' in ircomm_connect_indication() rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport() be2net: Kill set but unused variable 'req' in lancer_fw_download() irda: Kill set but unused vars 'saddr' and 'daddr' in irlan_provider_connect_indication() atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined. rxrpc: Fix set but unused variable 'usage' in rxrpc_get_peer(). rxrpc: Kill set but unused variable 'local' in rxrpc_UDP_error_handler() rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection() rxrpc: Kill set but unused variable 'sp' in rxrpc_rotate_tx_window() pkt_sched: Kill set but unused variable 'protocol' in tc_classify() isdn: capi: Use pr_debug() instead of ifdefs. tg3: Update version to 3.119 tg3: Apply rx_discards fix to 5719/5720 ... Fix up trivial conflicts in arch/x86/Kconfig and net/mac80211/agg-tx.c as per Davem.
This commit is contained in:
commit
06f4e926d2
1198 changed files with 127024 additions and 79786 deletions
|
@ -303,6 +303,7 @@ static struct sk_buff *igmpv3_newpack(struct net_device *dev, int size)
|
|||
struct iphdr *pip;
|
||||
struct igmpv3_report *pig;
|
||||
struct net *net = dev_net(dev);
|
||||
struct flowi4 fl4;
|
||||
|
||||
while (1) {
|
||||
skb = alloc_skb(size + LL_ALLOCATED_SPACE(dev),
|
||||
|
@ -315,18 +316,13 @@ static struct sk_buff *igmpv3_newpack(struct net_device *dev, int size)
|
|||
}
|
||||
igmp_skb_size(skb) = size;
|
||||
|
||||
rt = ip_route_output_ports(net, NULL, IGMPV3_ALL_MCR, 0,
|
||||
rt = ip_route_output_ports(net, &fl4, NULL, IGMPV3_ALL_MCR, 0,
|
||||
0, 0,
|
||||
IPPROTO_IGMP, 0, dev->ifindex);
|
||||
if (IS_ERR(rt)) {
|
||||
kfree_skb(skb);
|
||||
return NULL;
|
||||
}
|
||||
if (rt->rt_src == 0) {
|
||||
kfree_skb(skb);
|
||||
ip_rt_put(rt);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
skb_dst_set(skb, &rt->dst);
|
||||
skb->dev = dev;
|
||||
|
@ -342,8 +338,8 @@ static struct sk_buff *igmpv3_newpack(struct net_device *dev, int size)
|
|||
pip->tos = 0xc0;
|
||||
pip->frag_off = htons(IP_DF);
|
||||
pip->ttl = 1;
|
||||
pip->daddr = rt->rt_dst;
|
||||
pip->saddr = rt->rt_src;
|
||||
pip->daddr = fl4.daddr;
|
||||
pip->saddr = fl4.saddr;
|
||||
pip->protocol = IPPROTO_IGMP;
|
||||
pip->tot_len = 0; /* filled in later */
|
||||
ip_select_ident(pip, &rt->dst, NULL);
|
||||
|
@ -649,6 +645,7 @@ static int igmp_send_report(struct in_device *in_dev, struct ip_mc_list *pmc,
|
|||
struct net_device *dev = in_dev->dev;
|
||||
struct net *net = dev_net(dev);
|
||||
__be32 group = pmc ? pmc->multiaddr : 0;
|
||||
struct flowi4 fl4;
|
||||
__be32 dst;
|
||||
|
||||
if (type == IGMPV3_HOST_MEMBERSHIP_REPORT)
|
||||
|
@ -658,17 +655,12 @@ static int igmp_send_report(struct in_device *in_dev, struct ip_mc_list *pmc,
|
|||
else
|
||||
dst = group;
|
||||
|
||||
rt = ip_route_output_ports(net, NULL, dst, 0,
|
||||
rt = ip_route_output_ports(net, &fl4, NULL, dst, 0,
|
||||
0, 0,
|
||||
IPPROTO_IGMP, 0, dev->ifindex);
|
||||
if (IS_ERR(rt))
|
||||
return -1;
|
||||
|
||||
if (rt->rt_src == 0) {
|
||||
ip_rt_put(rt);
|
||||
return -1;
|
||||
}
|
||||
|
||||
skb = alloc_skb(IGMP_SIZE+LL_ALLOCATED_SPACE(dev), GFP_ATOMIC);
|
||||
if (skb == NULL) {
|
||||
ip_rt_put(rt);
|
||||
|
@ -689,7 +681,7 @@ static int igmp_send_report(struct in_device *in_dev, struct ip_mc_list *pmc,
|
|||
iph->frag_off = htons(IP_DF);
|
||||
iph->ttl = 1;
|
||||
iph->daddr = dst;
|
||||
iph->saddr = rt->rt_src;
|
||||
iph->saddr = fl4.saddr;
|
||||
iph->protocol = IPPROTO_IGMP;
|
||||
ip_select_ident(iph, &rt->dst, NULL);
|
||||
((u8*)&iph[1])[0] = IPOPT_RA;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue