Update primary code license to Apache 2.0.
[cascardo/ovs.git] / datapath / dp_notify.c
1 /*
2  * Distributed under the terms of the GNU GPL version 2.
3  * Copyright (c) 2007, 2008, 2009 Nicira Networks.
4  *
5  * Significant portions of this file may be copied from parts of the Linux
6  * kernel, by Linus Torvalds and others.
7  */
8
9 /* Handle changes to managed devices */
10
11 #include <linux/netdevice.h>
12
13 #include "datapath.h"
14
15
16 static int dp_device_event(struct notifier_block *unused, unsigned long event, 
17                 void *ptr) 
18 {
19         struct net_device *dev = ptr;
20         struct net_bridge_port *p = dev->br_port;
21         if (event == NETDEV_UNREGISTER && p) {
22                 struct datapath *dp = p->dp;
23                 mutex_lock(&dp->mutex);
24                 dp_del_port(p, NULL);
25                 mutex_unlock(&dp->mutex);
26         }
27         return NOTIFY_DONE;
28 }
29
30 struct notifier_block dp_device_notifier = {
31         .notifier_call = dp_device_event
32 };