mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-18 04:44:42 +00:00
realtek: fix writing/deletion of CAM entries
Actually use the index returned by rtl83xx_find_l2_cam_entry.
Fixes: cde31976e3
("realtek: Add support for Layer 2 Multicast")
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
This commit is contained in:
parent
8ea27bb959
commit
81931756e1
@ -1678,7 +1678,7 @@ static int rtl83xx_port_fdb_add(struct dsa_switch *ds, int port,
|
||||
}
|
||||
|
||||
// Hash buckets full, try CAM
|
||||
rtl83xx_find_l2_cam_entry(priv, seed, false, &e);
|
||||
idx = rtl83xx_find_l2_cam_entry(priv, seed, false, &e);
|
||||
|
||||
if (idx >= 0) {
|
||||
rtl83xx_setup_l2_uc_entry(&e, port, vid, mac);
|
||||
@ -1714,7 +1714,7 @@ static int rtl83xx_port_fdb_del(struct dsa_switch *ds, int port,
|
||||
}
|
||||
|
||||
/* Check CAM for spillover from hash buckets */
|
||||
rtl83xx_find_l2_cam_entry(priv, seed, true, &e);
|
||||
idx = rtl83xx_find_l2_cam_entry(priv, seed, true, &e);
|
||||
|
||||
if (idx >= 0) {
|
||||
e.valid = false;
|
||||
@ -1816,7 +1816,7 @@ static void rtl83xx_port_mdb_add(struct dsa_switch *ds, int port,
|
||||
}
|
||||
|
||||
// Hash buckets full, try CAM
|
||||
rtl83xx_find_l2_cam_entry(priv, seed, false, &e);
|
||||
idx = rtl83xx_find_l2_cam_entry(priv, seed, false, &e);
|
||||
|
||||
if (idx >= 0) {
|
||||
if (e.valid) {
|
||||
@ -1876,7 +1876,7 @@ int rtl83xx_port_mdb_del(struct dsa_switch *ds, int port,
|
||||
}
|
||||
|
||||
/* Check CAM for spillover from hash buckets */
|
||||
rtl83xx_find_l2_cam_entry(priv, seed, true, &e);
|
||||
idx = rtl83xx_find_l2_cam_entry(priv, seed, true, &e);
|
||||
|
||||
if (idx >= 0) {
|
||||
portmask = rtl83xx_mc_group_del_port(priv, e.mc_portmask_index, port);
|
||||
|
@ -1660,7 +1660,7 @@ static int rtl83xx_port_fdb_add(struct dsa_switch *ds, int port,
|
||||
}
|
||||
|
||||
/* Hash buckets full, try CAM */
|
||||
rtl83xx_find_l2_cam_entry(priv, seed, false, &e);
|
||||
idx = rtl83xx_find_l2_cam_entry(priv, seed, false, &e);
|
||||
|
||||
if (idx >= 0) {
|
||||
rtl83xx_setup_l2_uc_entry(&e, port, vid, mac);
|
||||
@ -1698,7 +1698,7 @@ static int rtl83xx_port_fdb_del(struct dsa_switch *ds, int port,
|
||||
}
|
||||
|
||||
/* Check CAM for spillover from hash buckets */
|
||||
rtl83xx_find_l2_cam_entry(priv, seed, true, &e);
|
||||
idx = rtl83xx_find_l2_cam_entry(priv, seed, true, &e);
|
||||
|
||||
if (idx >= 0) {
|
||||
e.valid = false;
|
||||
@ -1794,7 +1794,7 @@ static int rtl83xx_port_mdb_add(struct dsa_switch *ds, int port,
|
||||
}
|
||||
|
||||
/* Hash buckets full, try CAM */
|
||||
rtl83xx_find_l2_cam_entry(priv, seed, false, &e);
|
||||
idx = rtl83xx_find_l2_cam_entry(priv, seed, false, &e);
|
||||
|
||||
if (idx >= 0) {
|
||||
if (e.valid) {
|
||||
@ -1857,7 +1857,7 @@ int rtl83xx_port_mdb_del(struct dsa_switch *ds, int port,
|
||||
}
|
||||
|
||||
/* Check CAM for spillover from hash buckets */
|
||||
rtl83xx_find_l2_cam_entry(priv, seed, true, &e);
|
||||
idx = rtl83xx_find_l2_cam_entry(priv, seed, true, &e);
|
||||
|
||||
if (idx >= 0) {
|
||||
portmask = rtl83xx_mc_group_del_port(priv, e.mc_portmask_index, port);
|
||||
|
Loading…
Reference in New Issue
Block a user