slave.c (69bfac968a06aab5927160f8736485f85c3e8ee8) slave.c (0d2cfbd41c4a5a0ca5598d1874b1081138cd64c6)
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>

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

273
274static int dsa_slave_port_attr_set(struct net_device *dev, const void *ctx,
275 const struct switchdev_attr *attr,
276 struct netlink_ext_ack *extack)
277{
278 struct dsa_port *dp = dsa_slave_to_port(dev);
279 int ret;
280
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>

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

273
274static int dsa_slave_port_attr_set(struct net_device *dev, const void *ctx,
275 const struct switchdev_attr *attr,
276 struct netlink_ext_ack *extack)
277{
278 struct dsa_port *dp = dsa_slave_to_port(dev);
279 int ret;
280
281 if (ctx && ctx != dp)
282 return 0;
283
281 switch (attr->id) {
282 case SWITCHDEV_ATTR_ID_PORT_STP_STATE:
283 if (!dsa_port_offloads_bridge_port(dp, attr->orig_dev))
284 return -EOPNOTSUPP;
285
286 ret = dsa_port_set_state(dp, attr->u.stp_state);
287 break;
288 case SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING:

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

396
397static int dsa_slave_port_obj_add(struct net_device *dev, const void *ctx,
398 const struct switchdev_obj *obj,
399 struct netlink_ext_ack *extack)
400{
401 struct dsa_port *dp = dsa_slave_to_port(dev);
402 int err;
403
284 switch (attr->id) {
285 case SWITCHDEV_ATTR_ID_PORT_STP_STATE:
286 if (!dsa_port_offloads_bridge_port(dp, attr->orig_dev))
287 return -EOPNOTSUPP;
288
289 ret = dsa_port_set_state(dp, attr->u.stp_state);
290 break;
291 case SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING:

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

399
400static int dsa_slave_port_obj_add(struct net_device *dev, const void *ctx,
401 const struct switchdev_obj *obj,
402 struct netlink_ext_ack *extack)
403{
404 struct dsa_port *dp = dsa_slave_to_port(dev);
405 int err;
406
407 if (ctx && ctx != dp)
408 return 0;
409
404 switch (obj->id) {
405 case SWITCHDEV_OBJ_ID_PORT_MDB:
406 if (!dsa_port_offloads_bridge_port(dp, obj->orig_dev))
407 return -EOPNOTSUPP;
408
409 err = dsa_port_mdb_add(dp, SWITCHDEV_OBJ_PORT_MDB(obj));
410 break;
411 case SWITCHDEV_OBJ_ID_HOST_MDB:

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

470}
471
472static int dsa_slave_port_obj_del(struct net_device *dev, const void *ctx,
473 const struct switchdev_obj *obj)
474{
475 struct dsa_port *dp = dsa_slave_to_port(dev);
476 int err;
477
410 switch (obj->id) {
411 case SWITCHDEV_OBJ_ID_PORT_MDB:
412 if (!dsa_port_offloads_bridge_port(dp, obj->orig_dev))
413 return -EOPNOTSUPP;
414
415 err = dsa_port_mdb_add(dp, SWITCHDEV_OBJ_PORT_MDB(obj));
416 break;
417 case SWITCHDEV_OBJ_ID_HOST_MDB:

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

476}
477
478static int dsa_slave_port_obj_del(struct net_device *dev, const void *ctx,
479 const struct switchdev_obj *obj)
480{
481 struct dsa_port *dp = dsa_slave_to_port(dev);
482 int err;
483
484 if (ctx && ctx != dp)
485 return 0;
486
478 switch (obj->id) {
479 case SWITCHDEV_OBJ_ID_PORT_MDB:
480 if (!dsa_port_offloads_bridge_port(dp, obj->orig_dev))
481 return -EOPNOTSUPP;
482
483 err = dsa_port_mdb_del(dp, SWITCHDEV_OBJ_PORT_MDB(obj));
484 break;
485 case SWITCHDEV_OBJ_ID_HOST_MDB:

--- 2007 unchanged lines hidden ---
487 switch (obj->id) {
488 case SWITCHDEV_OBJ_ID_PORT_MDB:
489 if (!dsa_port_offloads_bridge_port(dp, obj->orig_dev))
490 return -EOPNOTSUPP;
491
492 err = dsa_port_mdb_del(dp, SWITCHDEV_OBJ_PORT_MDB(obj));
493 break;
494 case SWITCHDEV_OBJ_ID_HOST_MDB:

--- 2007 unchanged lines hidden ---