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
net/mlx4_en: Fix mixed PFC and Global pause user control requests
[pandora-kernel.git]
/
net
/
netlabel
/
netlabel_unlabeled.c
diff --git
a/net/netlabel/netlabel_unlabeled.c
b/net/netlabel/netlabel_unlabeled.c
index
e251c2c
..
23267b3
100644
(file)
--- a/
net/netlabel/netlabel_unlabeled.c
+++ b/
net/netlabel/netlabel_unlabeled.c
@@
-354,7
+354,7
@@
static struct netlbl_unlhsh_iface *netlbl_unlhsh_add_iface(int ifindex)
INIT_LIST_HEAD(&iface->list);
if (netlbl_unlhsh_rcu_deref(netlbl_unlhsh_def) != NULL)
goto add_iface_failure;
INIT_LIST_HEAD(&iface->list);
if (netlbl_unlhsh_rcu_deref(netlbl_unlhsh_def) != NULL)
goto add_iface_failure;
-
RCU_INIT_POINTER
(netlbl_unlhsh_def, iface);
+
rcu_assign_pointer
(netlbl_unlhsh_def, iface);
}
spin_unlock(&netlbl_unlhsh_lock);
}
spin_unlock(&netlbl_unlhsh_lock);
@@
-1189,8
+1189,6
@@
static int netlbl_unlabel_staticlist(struct sk_buff *skb,
struct netlbl_unlhsh_walk_arg cb_arg;
u32 skip_bkt = cb->args[0];
u32 skip_chain = cb->args[1];
struct netlbl_unlhsh_walk_arg cb_arg;
u32 skip_bkt = cb->args[0];
u32 skip_chain = cb->args[1];
- u32 skip_addr4 = cb->args[2];
- u32 skip_addr6 = cb->args[3];
u32 iter_bkt;
u32 iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0;
struct netlbl_unlhsh_iface *iface;
u32 iter_bkt;
u32 iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0;
struct netlbl_unlhsh_iface *iface;
@@
-1215,7
+1213,7
@@
static int netlbl_unlabel_staticlist(struct sk_buff *skb,
continue;
netlbl_af4list_foreach_rcu(addr4,
&iface->addr4_list) {
continue;
netlbl_af4list_foreach_rcu(addr4,
&iface->addr4_list) {
- if (iter_addr4++ <
skip_addr4
)
+ if (iter_addr4++ <
cb->args[2]
)
continue;
if (netlbl_unlabel_staticlist_gen(
NLBL_UNLABEL_C_STATICLIST,
continue;
if (netlbl_unlabel_staticlist_gen(
NLBL_UNLABEL_C_STATICLIST,
@@
-1231,7
+1229,7
@@
static int netlbl_unlabel_staticlist(struct sk_buff *skb,
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
netlbl_af6list_foreach_rcu(addr6,
&iface->addr6_list) {
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
netlbl_af6list_foreach_rcu(addr6,
&iface->addr6_list) {
- if (iter_addr6++ <
skip_addr6
)
+ if (iter_addr6++ <
cb->args[3]
)
continue;
if (netlbl_unlabel_staticlist_gen(
NLBL_UNLABEL_C_STATICLIST,
continue;
if (netlbl_unlabel_staticlist_gen(
NLBL_UNLABEL_C_STATICLIST,
@@
-1250,10
+1248,10
@@
static int netlbl_unlabel_staticlist(struct sk_buff *skb,
unlabel_staticlist_return:
rcu_read_unlock();
unlabel_staticlist_return:
rcu_read_unlock();
- cb->args[0] =
skip
_bkt;
- cb->args[1] =
skip
_chain;
- cb->args[2] =
skip
_addr4;
- cb->args[3] =
skip
_addr6;
+ cb->args[0] =
iter
_bkt;
+ cb->args[1] =
iter
_chain;
+ cb->args[2] =
iter
_addr4;
+ cb->args[3] =
iter
_addr6;
return skb->len;
}
return skb->len;
}
@@
-1273,12
+1271,9
@@
static int netlbl_unlabel_staticlistdef(struct sk_buff *skb,
{
struct netlbl_unlhsh_walk_arg cb_arg;
struct netlbl_unlhsh_iface *iface;
{
struct netlbl_unlhsh_walk_arg cb_arg;
struct netlbl_unlhsh_iface *iface;
- u32 skip_addr4 = cb->args[0];
- u32 skip_addr6 = cb->args[1];
- u32 iter_addr4 = 0;
+ u32 iter_addr4 = 0, iter_addr6 = 0;
struct netlbl_af4list *addr4;
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
struct netlbl_af4list *addr4;
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
- u32 iter_addr6 = 0;
struct netlbl_af6list *addr6;
#endif
struct netlbl_af6list *addr6;
#endif
@@
-1292,7
+1287,7
@@
static int netlbl_unlabel_staticlistdef(struct sk_buff *skb,
goto unlabel_staticlistdef_return;
netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) {
goto unlabel_staticlistdef_return;
netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) {
- if (iter_addr4++ <
skip_addr4
)
+ if (iter_addr4++ <
cb->args[0]
)
continue;
if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF,
iface,
continue;
if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF,
iface,
@@
-1305,7
+1300,7
@@
static int netlbl_unlabel_staticlistdef(struct sk_buff *skb,
}
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) {
}
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) {
- if (iter_addr6++ <
skip_addr6
)
+ if (iter_addr6++ <
cb->args[1]
)
continue;
if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF,
iface,
continue;
if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF,
iface,
@@
-1320,8
+1315,8
@@
static int netlbl_unlabel_staticlistdef(struct sk_buff *skb,
unlabel_staticlistdef_return:
rcu_read_unlock();
unlabel_staticlistdef_return:
rcu_read_unlock();
- cb->args[0] =
skip
_addr4;
- cb->args[1] =
skip
_addr6;
+ cb->args[0] =
iter
_addr4;
+ cb->args[1] =
iter
_addr6;
return skb->len;
}
return skb->len;
}
@@
-1447,11
+1442,9
@@
int __init netlbl_unlabel_init(u32 size)
for (iter = 0; iter < hsh_tbl->size; iter++)
INIT_LIST_HEAD(&hsh_tbl->tbl[iter]);
for (iter = 0; iter < hsh_tbl->size; iter++)
INIT_LIST_HEAD(&hsh_tbl->tbl[iter]);
- rcu_read_lock();
spin_lock(&netlbl_unlhsh_lock);
spin_lock(&netlbl_unlhsh_lock);
-
RCU_INIT_POINTER
(netlbl_unlhsh, hsh_tbl);
+
rcu_assign_pointer
(netlbl_unlhsh, hsh_tbl);
spin_unlock(&netlbl_unlhsh_lock);
spin_unlock(&netlbl_unlhsh_lock);
- rcu_read_unlock();
register_netdevice_notifier(&netlbl_unlhsh_netdev_notifier);
register_netdevice_notifier(&netlbl_unlhsh_netdev_notifier);