realtek: fix writing/deletion of CAM entries
authorJan Hoffmann <jan@3e8.eu>
Sat, 6 May 2023 23:05:30 +0000 (01:05 +0200)
committerSander Vanheule <sander@svanheule.net>
Sun, 7 May 2023 17:08:59 +0000 (19:08 +0200)
Actually use the index returned by rtl83xx_find_l2_cam_entry.

Fixes: cde31976e375 ("realtek: Add support for Layer 2 Multicast")
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c

index e9fc6f15ed008e8c7eda797f64e1b8b27458fabd..672675e884d6b12c765a794e7c362551c354cf87 100644 (file)
@@ -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);
index b50330e1b97e5b8e6722b43857221ff5b8ceab05..dbf87a60728037f9b6e2e9b4adbff4115e00a3f5 100644 (file)
@@ -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);