Commit 4c660496 authored by Scott Feldman's avatar Scott Feldman Committed by David S. Miller

rocker: store rocker_port in fdb key rather than pport

We'll need more info from rocker_port than just pport when we age out fdb
entries, so store rocker_port rather than pport in each fdb entry.
Signed-off-by: default avatarScott Feldman <sfeldma@gmail.com>
Acked-by: default avatarJiri Pirko <jiri@resnulli.us>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a471be41
...@@ -154,7 +154,7 @@ struct rocker_fdb_tbl_entry { ...@@ -154,7 +154,7 @@ struct rocker_fdb_tbl_entry {
bool learned; bool learned;
unsigned long touched; unsigned long touched;
struct rocker_fdb_tbl_key { struct rocker_fdb_tbl_key {
u32 pport; struct rocker_port *rocker_port;
u8 addr[ETH_ALEN]; u8 addr[ETH_ALEN];
__be16 vlan_id; __be16 vlan_id;
} key; } key;
...@@ -3631,7 +3631,7 @@ static int rocker_port_fdb(struct rocker_port *rocker_port, ...@@ -3631,7 +3631,7 @@ static int rocker_port_fdb(struct rocker_port *rocker_port,
fdb->learned = (flags & ROCKER_OP_FLAG_LEARNED); fdb->learned = (flags & ROCKER_OP_FLAG_LEARNED);
fdb->touched = jiffies; fdb->touched = jiffies;
fdb->key.pport = rocker_port->pport; fdb->key.rocker_port = rocker_port;
ether_addr_copy(fdb->key.addr, addr); ether_addr_copy(fdb->key.addr, addr);
fdb->key.vlan_id = vlan_id; fdb->key.vlan_id = vlan_id;
fdb->key_crc32 = crc32(~0, &fdb->key, sizeof(fdb->key)); fdb->key_crc32 = crc32(~0, &fdb->key, sizeof(fdb->key));
...@@ -3686,7 +3686,7 @@ static int rocker_port_fdb_flush(struct rocker_port *rocker_port, ...@@ -3686,7 +3686,7 @@ static int rocker_port_fdb_flush(struct rocker_port *rocker_port,
spin_lock_irqsave(&rocker->fdb_tbl_lock, lock_flags); spin_lock_irqsave(&rocker->fdb_tbl_lock, lock_flags);
hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, found, entry) { hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, found, entry) {
if (found->key.pport != rocker_port->pport) if (found->key.rocker_port != rocker_port)
continue; continue;
if (!found->learned) if (!found->learned)
continue; continue;
...@@ -4553,7 +4553,7 @@ static int rocker_port_fdb_dump(const struct rocker_port *rocker_port, ...@@ -4553,7 +4553,7 @@ static int rocker_port_fdb_dump(const struct rocker_port *rocker_port,
spin_lock_irqsave(&rocker->fdb_tbl_lock, lock_flags); spin_lock_irqsave(&rocker->fdb_tbl_lock, lock_flags);
hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, found, entry) { hash_for_each_safe(rocker->fdb_tbl, bkt, tmp, found, entry) {
if (found->key.pport != rocker_port->pport) if (found->key.rocker_port != rocker_port)
continue; continue;
fdb->addr = found->key.addr; fdb->addr = found->key.addr;
fdb->ndm_state = NUD_REACHABLE; fdb->ndm_state = NUD_REACHABLE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment