aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/dcbevent.h31
-rw-r--r--net/dcb/Makefile2
-rw-r--r--net/dcb/dcbevent.c40
-rw-r--r--net/dcb/dcbnl.c2
4 files changed, 74 insertions, 1 deletions
diff --git a/include/net/dcbevent.h b/include/net/dcbevent.h
new file mode 100644
index 000000000000..bc1e7ef40171
--- /dev/null
+++ b/include/net/dcbevent.h
@@ -0,0 +1,31 @@
1/*
2 * Copyright (c) 2010, Intel Corporation.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
15 * Place - Suite 330, Boston, MA 02111-1307 USA.
16 *
17 * Author: John Fastabend <john.r.fastabend@intel.com>
18 */
19
20#ifndef _DCB_EVENT_H
21#define _DCB_EVENT_H
22
23enum dcbevent_notif_type {
24 DCB_APP_EVENT = 1,
25};
26
27extern int register_dcbevent_notifier(struct notifier_block *nb);
28extern int unregister_dcbevent_notifier(struct notifier_block *nb);
29extern int call_dcbevent_notifiers(unsigned long val, void *v);
30
31#endif
diff --git a/net/dcb/Makefile b/net/dcb/Makefile
index 9930f4cde818..c1282c9e64fa 100644
--- a/net/dcb/Makefile
+++ b/net/dcb/Makefile
@@ -1 +1 @@
obj-$(CONFIG_DCB) += dcbnl.o obj-$(CONFIG_DCB) += dcbnl.o dcbevent.o
diff --git a/net/dcb/dcbevent.c b/net/dcb/dcbevent.c
new file mode 100644
index 000000000000..665a8802105a
--- /dev/null
+++ b/net/dcb/dcbevent.c
@@ -0,0 +1,40 @@
1/*
2 * Copyright (c) 2010, Intel Corporation.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
15 * Place - Suite 330, Boston, MA 02111-1307 USA.
16 *
17 * Author: John Fastabend <john.r.fastabend@intel.com>
18 */
19
20#include <linux/rtnetlink.h>
21#include <linux/notifier.h>
22
23static ATOMIC_NOTIFIER_HEAD(dcbevent_notif_chain);
24
25int register_dcbevent_notifier(struct notifier_block *nb)
26{
27 return atomic_notifier_chain_register(&dcbevent_notif_chain, nb);
28}
29EXPORT_SYMBOL(register_dcbevent_notifier);
30
31int unregister_dcbevent_notifier(struct notifier_block *nb)
32{
33 return atomic_notifier_chain_unregister(&dcbevent_notif_chain, nb);
34}
35EXPORT_SYMBOL(unregister_dcbevent_notifier);
36
37int call_dcbevent_notifiers(unsigned long val, void *v)
38{
39 return atomic_notifier_call_chain(&dcbevent_notif_chain, val, v);
40}
diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c
index cfd731faf6c6..69144125fc4f 100644
--- a/net/dcb/dcbnl.c
+++ b/net/dcb/dcbnl.c
@@ -23,6 +23,7 @@
23#include <net/netlink.h> 23#include <net/netlink.h>
24#include <net/rtnetlink.h> 24#include <net/rtnetlink.h>
25#include <linux/dcbnl.h> 25#include <linux/dcbnl.h>
26#include <net/dcbevent.h>
26#include <linux/rtnetlink.h> 27#include <linux/rtnetlink.h>
27#include <net/sock.h> 28#include <net/sock.h>
28 29
@@ -1460,6 +1461,7 @@ u8 dcb_setapp(struct net_device *dev, struct dcb_app *new)
1460 } 1461 }
1461out: 1462out:
1462 spin_unlock(&dcb_lock); 1463 spin_unlock(&dcb_lock);
1464 call_dcbevent_notifiers(DCB_APP_EVENT, new);
1463 return 0; 1465 return 0;
1464} 1466}
1465EXPORT_SYMBOL(dcb_setapp); 1467EXPORT_SYMBOL(dcb_setapp);