git.openpandora.org
/
pandora-kernel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0a54cec
)
Revert "net: Make accesses to ->br_port safe for sparse RCU"
author
Paul E. McKenney
<paulmck@linux.vnet.ibm.com>
Thu, 1 Jul 2010 19:45:34 +0000
(12:45 -0700)
committer
Paul E. McKenney
<paulmck@linux.vnet.ibm.com>
Thu, 1 Jul 2010 19:45:34 +0000
(12:45 -0700)
This reverts commit
81bdf5bd7349bd4523538cbd7878f334bc2bfe14
, which is
obsoleted by commit
f350a0a87374
from the net tree.
include/linux/if_bridge.h
patch
|
blob
|
history
net/bridge/br_fdb.c
patch
|
blob
|
history
net/bridge/br_private.h
patch
|
blob
|
history
net/bridge/netfilter/ebt_redirect.c
patch
|
blob
|
history
net/bridge/netfilter/ebt_ulog.c
patch
|
blob
|
history
net/bridge/netfilter/ebtables.c
patch
|
blob
|
history
net/netfilter/nfnetlink_log.c
patch
|
blob
|
history
net/netfilter/nfnetlink_queue.c
patch
|
blob
|
history
diff --git
a/include/linux/if_bridge.h
b/include/linux/if_bridge.h
index
d001d78
..
938b7e8
100644
(file)
--- a/
include/linux/if_bridge.h
+++ b/
include/linux/if_bridge.h
@@
-101,9
+101,6
@@
struct __fdb_entry {
#include <linux/netdevice.h>
#include <linux/netdevice.h>
-/* br_handle_frame_hook() needs the following forward declaration. */
-struct net_bridge_port;
-
extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *));
extern struct sk_buff *(*br_handle_frame_hook)(struct net_bridge_port *p,
struct sk_buff *skb);
extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *));
extern struct sk_buff *(*br_handle_frame_hook)(struct net_bridge_port *p,
struct sk_buff *skb);
diff --git
a/net/bridge/br_fdb.c
b/net/bridge/br_fdb.c
index
09c479e
..
b01dde3
100644
(file)
--- a/
net/bridge/br_fdb.c
+++ b/
net/bridge/br_fdb.c
@@
-244,7
+244,7
@@
int br_fdb_test_addr(struct net_device *dev, unsigned char *addr)
return 0;
rcu_read_lock();
return 0;
rcu_read_lock();
- fdb = __br_fdb_get(
br_port(dev)
->br, addr);
+ fdb = __br_fdb_get(
dev->br_port
->br, addr);
ret = fdb && fdb->dst->dev != dev &&
fdb->dst->state == BR_STATE_FORWARDING;
rcu_read_unlock();
ret = fdb && fdb->dst->dev != dev &&
fdb->dst->state == BR_STATE_FORWARDING;
rcu_read_unlock();
diff --git
a/net/bridge/br_private.h
b/net/bridge/br_private.h
index
3255188
..
0f4a74b
100644
(file)
--- a/
net/bridge/br_private.h
+++ b/
net/bridge/br_private.h
@@
-268,11
+268,6
@@
static inline int br_is_root_bridge(const struct net_bridge *br)
return !memcmp(&br->bridge_id, &br->designated_root, 8);
}
return !memcmp(&br->bridge_id, &br->designated_root, 8);
}
-static inline struct net_bridge_port *br_port(const struct net_device *dev)
-{
- return rcu_dereference(dev->br_port);
-}
-
/* br_device.c */
extern void br_dev_setup(struct net_device *dev);
extern netdev_tx_t br_dev_xmit(struct sk_buff *skb,
/* br_device.c */
extern void br_dev_setup(struct net_device *dev);
extern netdev_tx_t br_dev_xmit(struct sk_buff *skb,
diff --git
a/net/bridge/netfilter/ebt_redirect.c
b/net/bridge/netfilter/ebt_redirect.c
index
a39df0a
..
9e19166
100644
(file)
--- a/
net/bridge/netfilter/ebt_redirect.c
+++ b/
net/bridge/netfilter/ebt_redirect.c
@@
-25,7
+25,7
@@
ebt_redirect_tg(struct sk_buff *skb, const struct xt_action_param *par)
if (par->hooknum != NF_BR_BROUTING)
memcpy(eth_hdr(skb)->h_dest,
if (par->hooknum != NF_BR_BROUTING)
memcpy(eth_hdr(skb)->h_dest,
-
br_port(par->in)
->br->dev->dev_addr, ETH_ALEN);
+
par->in->br_port
->br->dev->dev_addr, ETH_ALEN);
else
memcpy(eth_hdr(skb)->h_dest, par->in->dev_addr, ETH_ALEN);
skb->pkt_type = PACKET_HOST;
else
memcpy(eth_hdr(skb)->h_dest, par->in->dev_addr, ETH_ALEN);
skb->pkt_type = PACKET_HOST;
diff --git
a/net/bridge/netfilter/ebt_ulog.c
b/net/bridge/netfilter/ebt_ulog.c
index
5a4996b
..
ae3c7ce
100644
(file)
--- a/
net/bridge/netfilter/ebt_ulog.c
+++ b/
net/bridge/netfilter/ebt_ulog.c
@@
-178,7
+178,7
@@
static void ebt_ulog_packet(unsigned int hooknr, const struct sk_buff *skb,
strcpy(pm->physindev, in->name);
/* If in isn't a bridge, then physindev==indev */
if (in->br_port)
strcpy(pm->physindev, in->name);
/* If in isn't a bridge, then physindev==indev */
if (in->br_port)
- strcpy(pm->indev,
br_port(in)
->br->dev->name);
+ strcpy(pm->indev,
in->br_port
->br->dev->name);
else
strcpy(pm->indev, in->name);
} else
else
strcpy(pm->indev, in->name);
} else
@@
-187,7
+187,7
@@
static void ebt_ulog_packet(unsigned int hooknr, const struct sk_buff *skb,
if (out) {
/* If out exists, then out is a bridge port */
strcpy(pm->physoutdev, out->name);
if (out) {
/* If out exists, then out is a bridge port */
strcpy(pm->physoutdev, out->name);
- strcpy(pm->outdev,
br_port(out)
->br->dev->name);
+ strcpy(pm->outdev,
out->br_port
->br->dev->name);
} else
pm->outdev[0] = pm->physoutdev[0] = '\0';
} else
pm->outdev[0] = pm->physoutdev[0] = '\0';
diff --git
a/net/bridge/netfilter/ebtables.c
b/net/bridge/netfilter/ebtables.c
index
4c2aab8
..
59ca00e
100644
(file)
--- a/
net/bridge/netfilter/ebtables.c
+++ b/
net/bridge/netfilter/ebtables.c
@@
-141,10
+141,10
@@
ebt_basic_match(const struct ebt_entry *e, const struct ethhdr *h,
if (FWINV2(ebt_dev_check(e->out, out), EBT_IOUT))
return 1;
if ((!in || !in->br_port) ? 0 : FWINV2(ebt_dev_check(
if (FWINV2(ebt_dev_check(e->out, out), EBT_IOUT))
return 1;
if ((!in || !in->br_port) ? 0 : FWINV2(ebt_dev_check(
- e->logical_in,
br_port(in)
->br->dev), EBT_ILOGICALIN))
+ e->logical_in,
in->br_port
->br->dev), EBT_ILOGICALIN))
return 1;
if ((!out || !out->br_port) ? 0 : FWINV2(ebt_dev_check(
return 1;
if ((!out || !out->br_port) ? 0 : FWINV2(ebt_dev_check(
- e->logical_out,
br_port(out)
->br->dev), EBT_ILOGICALOUT))
+ e->logical_out,
out->br_port
->br->dev), EBT_ILOGICALOUT))
return 1;
if (e->bitmask & EBT_SOURCEMAC) {
return 1;
if (e->bitmask & EBT_SOURCEMAC) {
diff --git
a/net/netfilter/nfnetlink_log.c
b/net/netfilter/nfnetlink_log.c
index
78957cf
..
fc9a211
100644
(file)
--- a/
net/netfilter/nfnetlink_log.c
+++ b/
net/netfilter/nfnetlink_log.c
@@
-404,7
+404,7
@@
__build_packet_message(struct nfulnl_instance *inst,
htonl(indev->ifindex));
/* this is the bridge group "brX" */
NLA_PUT_BE32(inst->skb, NFULA_IFINDEX_INDEV,
htonl(indev->ifindex));
/* this is the bridge group "brX" */
NLA_PUT_BE32(inst->skb, NFULA_IFINDEX_INDEV,
- htonl(
br_port(indev)
->br->dev->ifindex));
+ htonl(
indev->br_port
->br->dev->ifindex));
} else {
/* Case 2: indev is bridge group, we need to look for
* physical device (when called from ipv4) */
} else {
/* Case 2: indev is bridge group, we need to look for
* physical device (when called from ipv4) */
@@
-431,7
+431,7
@@
__build_packet_message(struct nfulnl_instance *inst,
htonl(outdev->ifindex));
/* this is the bridge group "brX" */
NLA_PUT_BE32(inst->skb, NFULA_IFINDEX_OUTDEV,
htonl(outdev->ifindex));
/* this is the bridge group "brX" */
NLA_PUT_BE32(inst->skb, NFULA_IFINDEX_OUTDEV,
- htonl(
br_port(outdev)
->br->dev->ifindex));
+ htonl(
outdev->br_port
->br->dev->ifindex));
} else {
/* Case 2: indev is a bridge group, we need to look
* for physical device (when called from ipv4) */
} else {
/* Case 2: indev is a bridge group, we need to look
* for physical device (when called from ipv4) */
diff --git
a/net/netfilter/nfnetlink_queue.c
b/net/netfilter/nfnetlink_queue.c
index
c3c1749
..
12e1ab3
100644
(file)
--- a/
net/netfilter/nfnetlink_queue.c
+++ b/
net/netfilter/nfnetlink_queue.c
@@
-297,7
+297,7
@@
nfqnl_build_packet_message(struct nfqnl_instance *queue,
htonl(indev->ifindex));
/* this is the bridge group "brX" */
NLA_PUT_BE32(skb, NFQA_IFINDEX_INDEV,
htonl(indev->ifindex));
/* this is the bridge group "brX" */
NLA_PUT_BE32(skb, NFQA_IFINDEX_INDEV,
- htonl(
br_port(indev)
->br->dev->ifindex));
+ htonl(
indev->br_port
->br->dev->ifindex));
} else {
/* Case 2: indev is bridge group, we need to look for
* physical device (when called from ipv4) */
} else {
/* Case 2: indev is bridge group, we need to look for
* physical device (when called from ipv4) */
@@
-322,7
+322,7
@@
nfqnl_build_packet_message(struct nfqnl_instance *queue,
htonl(outdev->ifindex));
/* this is the bridge group "brX" */
NLA_PUT_BE32(skb, NFQA_IFINDEX_OUTDEV,
htonl(outdev->ifindex));
/* this is the bridge group "brX" */
NLA_PUT_BE32(skb, NFQA_IFINDEX_OUTDEV,
- htonl(
br_port(outdev)
->br->dev->ifindex));
+ htonl(
outdev->br_port
->br->dev->ifindex));
} else {
/* Case 2: outdev is bridge group, we need to look for
* physical output device (when called from ipv4) */
} else {
/* Case 2: outdev is bridge group, we need to look for
* physical output device (when called from ipv4) */