git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
net
/
ipv6
/
anycast.c
diff --git
a/net/ipv6/anycast.c
b/net/ipv6/anycast.c
index
840a33d
..
fe0c895
100644
(file)
--- a/
net/ipv6/anycast.c
+++ b/
net/ipv6/anycast.c
@@
-14,7
+14,6
@@
*/
#include <linux/capability.h>
*/
#include <linux/capability.h>
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/types.h>
@@
-57,7
+56,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);
@@
-69,7
+68,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;
}
@@
-308,7
+307,7
@@
int ipv6_dev_ac_inc(struct net_device *dev, struct in6_addr *addr)
* not found: create a new one.
*/
* not found: create a new one.
*/
- aca = k
m
alloc(sizeof(struct ifacaddr6), GFP_ATOMIC);
+ aca = k
z
alloc(sizeof(struct ifacaddr6), GFP_ATOMIC);
if (aca == NULL) {
err = -ENOMEM;
if (aca == NULL) {
err = -ENOMEM;
@@
-322,8
+321,6
@@
int ipv6_dev_ac_inc(struct net_device *dev, struct in6_addr *addr)
goto out;
}
goto out;
}
- memset(aca, 0, sizeof(struct ifacaddr6));
-
ipv6_addr_copy(&aca->aca_addr, addr);
aca->aca_idev = idev;
aca->aca_rt = rt;
ipv6_addr_copy(&aca->aca_addr, addr);
aca->aca_idev = idev;
aca->aca_rt = rt;
@@
-338,7
+335,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);
@@
-381,7
+378,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);
@@
-465,6
+462,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;
}
@@
-550,7
+548,7
@@
static int ac6_seq_open(struct inode *inode, struct file *file)
{
struct seq_file *seq;
int rc = -ENOMEM;
{
struct seq_file *seq;
int rc = -ENOMEM;
- struct ac6_iter_state *s = k
m
alloc(sizeof(*s), GFP_KERNEL);
+ struct ac6_iter_state *s = k
z
alloc(sizeof(*s), GFP_KERNEL);
if (!s)
goto out;
if (!s)
goto out;
@@
-561,7
+559,6
@@
static int ac6_seq_open(struct inode *inode, struct file *file)
seq = file->private_data;
seq->private = s;
seq = file->private_data;
seq->private = s;
- memset(s, 0, sizeof(*s));
out:
return rc;
out_kfree:
out:
return rc;
out_kfree: