Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/usb/cdc_ether.c All CDC ethernet devices of type USB_CLASS_COMM need to use '&mbm_info'. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
+16
-12
@@ -1476,7 +1476,7 @@ static void ipgre_tap_setup(struct net_device *dev)
|
||||
|
||||
ether_setup(dev);
|
||||
|
||||
dev->netdev_ops = &ipgre_netdev_ops;
|
||||
dev->netdev_ops = &ipgre_tap_netdev_ops;
|
||||
dev->destructor = free_netdev;
|
||||
|
||||
dev->iflink = 0;
|
||||
@@ -1537,25 +1537,29 @@ static int ipgre_changelink(struct net_device *dev, struct nlattr *tb[],
|
||||
if (t->dev != dev)
|
||||
return -EEXIST;
|
||||
} else {
|
||||
unsigned nflags = 0;
|
||||
|
||||
t = nt;
|
||||
|
||||
if (ipv4_is_multicast(p.iph.daddr))
|
||||
nflags = IFF_BROADCAST;
|
||||
else if (p.iph.daddr)
|
||||
nflags = IFF_POINTOPOINT;
|
||||
if (dev->type != ARPHRD_ETHER) {
|
||||
unsigned nflags = 0;
|
||||
|
||||
if ((dev->flags ^ nflags) &
|
||||
(IFF_POINTOPOINT | IFF_BROADCAST))
|
||||
return -EINVAL;
|
||||
if (ipv4_is_multicast(p.iph.daddr))
|
||||
nflags = IFF_BROADCAST;
|
||||
else if (p.iph.daddr)
|
||||
nflags = IFF_POINTOPOINT;
|
||||
|
||||
if ((dev->flags ^ nflags) &
|
||||
(IFF_POINTOPOINT | IFF_BROADCAST))
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ipgre_tunnel_unlink(ign, t);
|
||||
t->parms.iph.saddr = p.iph.saddr;
|
||||
t->parms.iph.daddr = p.iph.daddr;
|
||||
t->parms.i_key = p.i_key;
|
||||
memcpy(dev->dev_addr, &p.iph.saddr, 4);
|
||||
memcpy(dev->broadcast, &p.iph.daddr, 4);
|
||||
if (dev->type != ARPHRD_ETHER) {
|
||||
memcpy(dev->dev_addr, &p.iph.saddr, 4);
|
||||
memcpy(dev->broadcast, &p.iph.daddr, 4);
|
||||
}
|
||||
ipgre_tunnel_link(ign, t);
|
||||
netdev_state_change(dev);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user