diff options
Diffstat (limited to 'net/openvswitch/dp_notify.c')
-rw-r--r-- | net/openvswitch/dp_notify.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/openvswitch/dp_notify.c b/net/openvswitch/dp_notify.c index 36dcee8fc84a..5558350e0d33 100644 --- a/net/openvswitch/dp_notify.c +++ b/net/openvswitch/dp_notify.c | |||
@@ -41,19 +41,21 @@ static int dp_device_event(struct notifier_block *unused, unsigned long event, | |||
41 | case NETDEV_UNREGISTER: | 41 | case NETDEV_UNREGISTER: |
42 | if (!ovs_is_internal_dev(dev)) { | 42 | if (!ovs_is_internal_dev(dev)) { |
43 | struct sk_buff *notify; | 43 | struct sk_buff *notify; |
44 | struct datapath *dp = vport->dp; | ||
44 | 45 | ||
45 | notify = ovs_vport_cmd_build_info(vport, 0, 0, | 46 | notify = ovs_vport_cmd_build_info(vport, 0, 0, |
46 | OVS_VPORT_CMD_DEL); | 47 | OVS_VPORT_CMD_DEL); |
47 | ovs_dp_detach_port(vport); | 48 | ovs_dp_detach_port(vport); |
48 | if (IS_ERR(notify)) { | 49 | if (IS_ERR(notify)) { |
49 | netlink_set_err(init_net.genl_sock, 0, | 50 | netlink_set_err(ovs_dp_get_net(dp)->genl_sock, 0, |
50 | ovs_dp_vport_multicast_group.id, | 51 | ovs_dp_vport_multicast_group.id, |
51 | PTR_ERR(notify)); | 52 | PTR_ERR(notify)); |
52 | break; | 53 | break; |
53 | } | 54 | } |
54 | 55 | ||
55 | genlmsg_multicast(notify, 0, ovs_dp_vport_multicast_group.id, | 56 | genlmsg_multicast_netns(ovs_dp_get_net(dp), notify, 0, |
56 | GFP_KERNEL); | 57 | ovs_dp_vport_multicast_group.id, |
58 | GFP_KERNEL); | ||
57 | } | 59 | } |
58 | break; | 60 | break; |
59 | } | 61 | } |