diff options
Diffstat (limited to 'net/switchdev/switchdev.c')
| -rw-r--r-- | net/switchdev/switchdev.c | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index 8cc42aea19c7..5b045284849e 100644 --- a/net/switchdev/switchdev.c +++ b/net/switchdev/switchdev.c @@ -862,3 +862,28 @@ void switchdev_bridge_port_unoffload(struct net_device *brport_dev,  					  NULL);  }  EXPORT_SYMBOL_GPL(switchdev_bridge_port_unoffload); + +int switchdev_bridge_port_replay(struct net_device *brport_dev, +				 struct net_device *dev, const void *ctx, +				 struct notifier_block *atomic_nb, +				 struct notifier_block *blocking_nb, +				 struct netlink_ext_ack *extack) +{ +	struct switchdev_notifier_brport_info brport_info = { +		.brport = { +			.dev = dev, +			.ctx = ctx, +			.atomic_nb = atomic_nb, +			.blocking_nb = blocking_nb, +		}, +	}; +	int err; + +	ASSERT_RTNL(); + +	err = call_switchdev_blocking_notifiers(SWITCHDEV_BRPORT_REPLAY, +						brport_dev, &brport_info.info, +						extack); +	return notifier_to_errno(err); +} +EXPORT_SYMBOL_GPL(switchdev_bridge_port_replay); | 
