br_vlan.c (040c12570e6865b1a219c9d7f7f4a924a6570d1e) br_vlan.c (0d2cfbd41c4a5a0ca5598d1874b1081138cd64c6)
1// SPDX-License-Identifier: GPL-2.0-only
2#include <linux/kernel.h>
3#include <linux/netdevice.h>
4#include <linux/rtnetlink.h>
5#include <linux/slab.h>
6#include <net/switchdev.h>
7
8#include "br_private.h"

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

1802 rtnl_set_sk_err(net, RTNLGRP_BRVLAN, err);
1803out_kfree:
1804 kfree_skb(skb);
1805}
1806
1807static int br_vlan_replay_one(struct notifier_block *nb,
1808 struct net_device *dev,
1809 struct switchdev_obj_port_vlan *vlan,
1// SPDX-License-Identifier: GPL-2.0-only
2#include <linux/kernel.h>
3#include <linux/netdevice.h>
4#include <linux/rtnetlink.h>
5#include <linux/slab.h>
6#include <net/switchdev.h>
7
8#include "br_private.h"

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

1802 rtnl_set_sk_err(net, RTNLGRP_BRVLAN, err);
1803out_kfree:
1804 kfree_skb(skb);
1805}
1806
1807static int br_vlan_replay_one(struct notifier_block *nb,
1808 struct net_device *dev,
1809 struct switchdev_obj_port_vlan *vlan,
1810 struct netlink_ext_ack *extack)
1810 const void *ctx, struct netlink_ext_ack *extack)
1811{
1812 struct switchdev_notifier_port_obj_info obj_info = {
1813 .info = {
1814 .dev = dev,
1815 .extack = extack,
1811{
1812 struct switchdev_notifier_port_obj_info obj_info = {
1813 .info = {
1814 .dev = dev,
1815 .extack = extack,
1816 .ctx = ctx,
1816 },
1817 .obj = &vlan->obj,
1818 };
1819 int err;
1820
1821 err = nb->notifier_call(nb, SWITCHDEV_PORT_OBJ_ADD, &obj_info);
1822 return notifier_to_errno(err);
1823}
1824
1825int br_vlan_replay(struct net_device *br_dev, struct net_device *dev,
1817 },
1818 .obj = &vlan->obj,
1819 };
1820 int err;
1821
1822 err = nb->notifier_call(nb, SWITCHDEV_PORT_OBJ_ADD, &obj_info);
1823 return notifier_to_errno(err);
1824}
1825
1826int br_vlan_replay(struct net_device *br_dev, struct net_device *dev,
1826 struct notifier_block *nb, struct netlink_ext_ack *extack)
1827 const void *ctx, struct notifier_block *nb,
1828 struct netlink_ext_ack *extack)
1827{
1828 struct net_bridge_vlan_group *vg;
1829 struct net_bridge_vlan *v;
1830 struct net_bridge_port *p;
1831 struct net_bridge *br;
1832 int err = 0;
1833 u16 pvid;
1834

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

1863 .obj.id = SWITCHDEV_OBJ_ID_PORT_VLAN,
1864 .flags = br_vlan_flags(v, pvid),
1865 .vid = v->vid,
1866 };
1867
1868 if (!br_vlan_should_use(v))
1869 continue;
1870
1829{
1830 struct net_bridge_vlan_group *vg;
1831 struct net_bridge_vlan *v;
1832 struct net_bridge_port *p;
1833 struct net_bridge *br;
1834 int err = 0;
1835 u16 pvid;
1836

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

1865 .obj.id = SWITCHDEV_OBJ_ID_PORT_VLAN,
1866 .flags = br_vlan_flags(v, pvid),
1867 .vid = v->vid,
1868 };
1869
1870 if (!br_vlan_should_use(v))
1871 continue;
1872
1871 err = br_vlan_replay_one(nb, dev, &vlan, extack);
1873 err = br_vlan_replay_one(nb, dev, &vlan, ctx, extack);
1872 if (err)
1873 return err;
1874 }
1875
1876 return err;
1877}
1878EXPORT_SYMBOL_GPL(br_vlan_replay);
1879

--- 332 unchanged lines hidden ---
1874 if (err)
1875 return err;
1876 }
1877
1878 return err;
1879}
1880EXPORT_SYMBOL_GPL(br_vlan_replay);
1881

--- 332 unchanged lines hidden ---