git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
l2tp: pass tunnel pointer to ->session_create()
[pandora-kernel.git]
/
net
/
core
/
dev_addr_lists.c
diff --git
a/net/core/dev_addr_lists.c
b/net/core/dev_addr_lists.c
index
febba51
..
cd09414
100644
(file)
--- a/
net/core/dev_addr_lists.c
+++ b/
net/core/dev_addr_lists.c
@@
-57,7
+57,7
@@
static int __hw_addr_add_ex(struct netdev_hw_addr_list *list,
ha->type = addr_type;
ha->refcount = 1;
ha->global_use = global;
ha->type = addr_type;
ha->refcount = 1;
ha->global_use = global;
- ha->synced =
false
;
+ ha->synced =
0
;
list_add_tail_rcu(&ha->list, &list->list);
list->count++;
return 0;
list_add_tail_rcu(&ha->list, &list->list);
list->count++;
return 0;
@@
-155,7
+155,7
@@
int __hw_addr_sync(struct netdev_hw_addr_list *to_list,
addr_len, ha->type);
if (err)
break;
addr_len, ha->type);
if (err)
break;
- ha->synced
= true
;
+ ha->synced
++
;
ha->refcount++;
} else if (ha->refcount == 1) {
__hw_addr_del(to_list, ha->addr, addr_len, ha->type);
ha->refcount++;
} else if (ha->refcount == 1) {
__hw_addr_del(to_list, ha->addr, addr_len, ha->type);
@@
-176,7
+176,7
@@
void __hw_addr_unsync(struct netdev_hw_addr_list *to_list,
if (ha->synced) {
__hw_addr_del(to_list, ha->addr,
addr_len, ha->type);
if (ha->synced) {
__hw_addr_del(to_list, ha->addr,
addr_len, ha->type);
- ha->synced
= false
;
+ ha->synced
--
;
__hw_addr_del(from_list, ha->addr,
addr_len, ha->type);
}
__hw_addr_del(from_list, ha->addr,
addr_len, ha->type);
}
@@
-308,7
+308,8
@@
int dev_addr_del(struct net_device *dev, unsigned char *addr,
*/
ha = list_first_entry(&dev->dev_addrs.list,
struct netdev_hw_addr, list);
*/
ha = list_first_entry(&dev->dev_addrs.list,
struct netdev_hw_addr, list);
- if (ha->addr == dev->dev_addr && ha->refcount == 1)
+ if (!memcmp(ha->addr, addr, dev->addr_len) &&
+ ha->type == addr_type && ha->refcount == 1)
return -ENOENT;
err = __hw_addr_del(&dev->dev_addrs, addr, dev->addr_len,
return -ENOENT;
err = __hw_addr_del(&dev->dev_addrs, addr, dev->addr_len,
@@
-696,7
+697,8
@@
static const struct seq_operations dev_mc_seq_ops = {
static int dev_mc_seq_open(struct inode *inode, struct file *file)
{
static int dev_mc_seq_open(struct inode *inode, struct file *file)
{
- return dev_seq_open_ops(inode, file, &dev_mc_seq_ops);
+ return seq_open_net(inode, file, &dev_mc_seq_ops,
+ sizeof(struct seq_net_private));
}
static const struct file_operations dev_mc_seq_fops = {
}
static const struct file_operations dev_mc_seq_fops = {