bridge: use rx_handler_data pointer to store net_bridge_port pointer
Register net_bridge_port pointer as rx_handler data pointer. As br_port is removed from struct net_device, another netdev priv_flag is added to indicate the device serves as a bridge port. Also rcuized pointers are now correctly dereferenced in br_fdb.c and in netfilter parts. Signed-off-by: Jiri Pirko <jpirko@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
a35e2c1b6d
commit
f350a0a873
@@ -242,11 +242,11 @@ int br_fdb_test_addr(struct net_device *dev, unsigned char *addr)
|
||||
struct net_bridge_fdb_entry *fdb;
|
||||
int ret;
|
||||
|
||||
if (!dev->br_port)
|
||||
if (!br_port_exists(dev))
|
||||
return 0;
|
||||
|
||||
rcu_read_lock();
|
||||
fdb = __br_fdb_get(dev->br_port->br, addr);
|
||||
fdb = __br_fdb_get(br_port_get_rcu(dev)->br, addr);
|
||||
ret = fdb && fdb->dst->dev != dev &&
|
||||
fdb->dst->state == BR_STATE_FORWARDING;
|
||||
rcu_read_unlock();
|
||||
|
Reference in New Issue
Block a user