slave.c (6dcb8bf9a1d7f6d137a17b76177cd67e9b8e023d) slave.c (2fd186501b1cff155cc4a755c210793cfc0dffb5)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * net/dsa/slave.c - Slave device handling
4 * Copyright (c) 2008-2009 Marvell Semiconductor
5 */
6
7#include <linux/list.h>
8#include <linux/etherdevice.h>

--- 2058 unchanged lines hidden (view full) ---

2067 switch (switchdev_work->event) {
2068 case SWITCHDEV_FDB_ADD_TO_DEVICE:
2069 fdb_info = &switchdev_work->fdb_info;
2070 if (!fdb_info->added_by_user)
2071 break;
2072
2073 err = dsa_port_fdb_add(dp, fdb_info->addr, fdb_info->vid);
2074 if (err) {
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * net/dsa/slave.c - Slave device handling
4 * Copyright (c) 2008-2009 Marvell Semiconductor
5 */
6
7#include <linux/list.h>
8#include <linux/etherdevice.h>

--- 2058 unchanged lines hidden (view full) ---

2067 switch (switchdev_work->event) {
2068 case SWITCHDEV_FDB_ADD_TO_DEVICE:
2069 fdb_info = &switchdev_work->fdb_info;
2070 if (!fdb_info->added_by_user)
2071 break;
2072
2073 err = dsa_port_fdb_add(dp, fdb_info->addr, fdb_info->vid);
2074 if (err) {
2075 netdev_dbg(dev, "fdb add failed err=%d\n", err);
2075 netdev_err(dev,
2076 "failed to add %pM vid %d to fdb: %d\n",
2077 fdb_info->addr, fdb_info->vid, err);
2076 break;
2077 }
2078 fdb_info->offloaded = true;
2079 call_switchdev_notifiers(SWITCHDEV_FDB_OFFLOADED, dev,
2080 &fdb_info->info, NULL);
2081 break;
2082
2083 case SWITCHDEV_FDB_DEL_TO_DEVICE:
2084 fdb_info = &switchdev_work->fdb_info;
2085 if (!fdb_info->added_by_user)
2086 break;
2087
2088 err = dsa_port_fdb_del(dp, fdb_info->addr, fdb_info->vid);
2089 if (err) {
2078 break;
2079 }
2080 fdb_info->offloaded = true;
2081 call_switchdev_notifiers(SWITCHDEV_FDB_OFFLOADED, dev,
2082 &fdb_info->info, NULL);
2083 break;
2084
2085 case SWITCHDEV_FDB_DEL_TO_DEVICE:
2086 fdb_info = &switchdev_work->fdb_info;
2087 if (!fdb_info->added_by_user)
2088 break;
2089
2090 err = dsa_port_fdb_del(dp, fdb_info->addr, fdb_info->vid);
2091 if (err) {
2090 netdev_dbg(dev, "fdb del failed err=%d\n", err);
2091 dev_close(dev);
2092 netdev_err(dev,
2093 "failed to delete %pM vid %d from fdb: %d\n",
2094 fdb_info->addr, fdb_info->vid, err);
2092 }
2095 }
2096
2093 break;
2094 }
2095 rtnl_unlock();
2096
2097 kfree(switchdev_work->fdb_info.addr);
2098 kfree(switchdev_work);
2099 dev_put(dev);
2100}

--- 148 unchanged lines hidden ---
2097 break;
2098 }
2099 rtnl_unlock();
2100
2101 kfree(switchdev_work->fdb_info.addr);
2102 kfree(switchdev_work);
2103 dev_put(dev);
2104}

--- 148 unchanged lines hidden ---