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 --- |