projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[INET]: Add IP(V6)_PMTUDISC_RPOBE
[powerpc.git]
/
net
/
ipv6
/
anycast.c
diff --git
a/net/ipv6/anycast.c
b/net/ipv6/anycast.c
index
f6881d7
..
09117d6
100644
(file)
--- a/
net/ipv6/anycast.c
+++ b/
net/ipv6/anycast.c
@@
-1,6
+1,6
@@
/*
* Anycast support for IPv6
/*
* Anycast support for IPv6
- * Linux INET6 implementation
+ * Linux INET6 implementation
*
* Authors:
* David L Stevens (dlstevens@us.ibm.com)
*
* Authors:
* David L Stevens (dlstevens@us.ibm.com)
@@
-21,7
+21,6
@@
#include <linux/string.h>
#include <linux/socket.h>
#include <linux/sockios.h>
#include <linux/string.h>
#include <linux/socket.h>
#include <linux/sockios.h>
-#include <linux/sched.h>
#include <linux/net.h>
#include <linux/in6.h>
#include <linux/netdevice.h>
#include <linux/net.h>
#include <linux/in6.h>
#include <linux/netdevice.h>
@@
-56,7
+55,7
@@
ip6_onlink(struct in6_addr *addr, struct net_device *dev)
int onlink;
onlink = 0;
int onlink;
onlink = 0;
- r
ead_lock(&addrconf_lock
);
+ r
cu_read_lock(
);
idev = __in6_dev_get(dev);
if (idev) {
read_lock_bh(&idev->lock);
idev = __in6_dev_get(dev);
if (idev) {
read_lock_bh(&idev->lock);
@@
-68,7
+67,7
@@
ip6_onlink(struct in6_addr *addr, struct net_device *dev)
}
read_unlock_bh(&idev->lock);
}
}
read_unlock_bh(&idev->lock);
}
- r
ead_unlock(&addrconf_lock
);
+ r
cu_read_unlock(
);
return onlink;
}
return onlink;
}
@@
-335,7
+334,7
@@
int ipv6_dev_ac_inc(struct net_device *dev, struct in6_addr *addr)
write_unlock_bh(&idev->lock);
dst_hold(&rt->u.dst);
write_unlock_bh(&idev->lock);
dst_hold(&rt->u.dst);
- if (ip6_ins_rt(rt
, NULL, NULL, NULL
))
+ if (ip6_ins_rt(rt))
dst_release(&rt->u.dst);
addrconf_join_solict(dev, &aca->aca_addr);
dst_release(&rt->u.dst);
addrconf_join_solict(dev, &aca->aca_addr);
@@
-378,7
+377,7
@@
int __ipv6_dev_ac_dec(struct inet6_dev *idev, struct in6_addr *addr)
addrconf_leave_solict(idev, &aca->aca_addr);
dst_hold(&aca->aca_rt->u.dst);
addrconf_leave_solict(idev, &aca->aca_addr);
dst_hold(&aca->aca_rt->u.dst);
- if (ip6_del_rt(aca->aca_rt
, NULL, NULL, NULL
))
+ if (ip6_del_rt(aca->aca_rt))
dst_free(&aca->aca_rt->u.dst);
else
dst_release(&aca->aca_rt->u.dst);
dst_free(&aca->aca_rt->u.dst);
else
dst_release(&aca->aca_rt->u.dst);
@@
-397,7
+396,7
@@
static int ipv6_dev_ac_dec(struct net_device *dev, struct in6_addr *addr)
in6_dev_put(idev);
return ret;
}
in6_dev_put(idev);
return ret;
}
-
+
/*
* check if the interface has this anycast address
*/
/*
* check if the interface has this anycast address
*/
@@
-462,6
+461,7
@@
static inline struct ifacaddr6 *ac6_get_first(struct seq_file *seq)
break;
}
read_unlock_bh(&idev->lock);
break;
}
read_unlock_bh(&idev->lock);
+ in6_dev_put(idev);
}
return im;
}
}
return im;
}
@@
-565,7
+565,7
@@
out_kfree:
goto out;
}
goto out;
}
-static struct file_operations ac6_seq_fops = {
+static
const
struct file_operations ac6_seq_fops = {
.owner = THIS_MODULE,
.open = ac6_seq_open,
.read = seq_read,
.owner = THIS_MODULE,
.open = ac6_seq_open,
.read = seq_read,