xref: /linux/net/dcb/dcbevent.c (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*9952f691SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
296b99684SJohn Fastabend /*
396b99684SJohn Fastabend  * Copyright (c) 2010, Intel Corporation.
496b99684SJohn Fastabend  *
596b99684SJohn Fastabend  * Author: John Fastabend <john.r.fastabend@intel.com>
696b99684SJohn Fastabend  */
796b99684SJohn Fastabend 
896b99684SJohn Fastabend #include <linux/rtnetlink.h>
996b99684SJohn Fastabend #include <linux/notifier.h>
10bc3b2d7fSPaul Gortmaker #include <linux/export.h>
1123bdbc80Sstephen hemminger #include <net/dcbevent.h>
1296b99684SJohn Fastabend 
1396b99684SJohn Fastabend static ATOMIC_NOTIFIER_HEAD(dcbevent_notif_chain);
1496b99684SJohn Fastabend 
register_dcbevent_notifier(struct notifier_block * nb)1596b99684SJohn Fastabend int register_dcbevent_notifier(struct notifier_block *nb)
1696b99684SJohn Fastabend {
1796b99684SJohn Fastabend 	return atomic_notifier_chain_register(&dcbevent_notif_chain, nb);
1896b99684SJohn Fastabend }
1996b99684SJohn Fastabend EXPORT_SYMBOL(register_dcbevent_notifier);
2096b99684SJohn Fastabend 
unregister_dcbevent_notifier(struct notifier_block * nb)2196b99684SJohn Fastabend int unregister_dcbevent_notifier(struct notifier_block *nb)
2296b99684SJohn Fastabend {
2396b99684SJohn Fastabend 	return atomic_notifier_chain_unregister(&dcbevent_notif_chain, nb);
2496b99684SJohn Fastabend }
2596b99684SJohn Fastabend EXPORT_SYMBOL(unregister_dcbevent_notifier);
2696b99684SJohn Fastabend 
call_dcbevent_notifiers(unsigned long val,void * v)2796b99684SJohn Fastabend int call_dcbevent_notifiers(unsigned long val, void *v)
2896b99684SJohn Fastabend {
2996b99684SJohn Fastabend 	return atomic_notifier_call_chain(&dcbevent_notif_chain, val, v);
3096b99684SJohn Fastabend }
31