Commit f408e0ce authored by James Chapman's avatar James Chapman Committed by David S. Miller

netlink: Export genl_lock() API for use by modules

This lets kernel modules which use genl netlink APIs serialize netlink
processing.
Signed-off-by: default avatarJames Chapman <jchapman@katalix.com>
Reviewed-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0d76751f
...@@ -80,4 +80,12 @@ enum { ...@@ -80,4 +80,12 @@ enum {
#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1) #define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
#ifdef __KERNEL__
/* All generic netlink requests are serialized by a global lock. */
extern void genl_lock(void);
extern void genl_unlock(void);
#endif /* __KERNEL__ */
#endif /* __LINUX_GENERIC_NETLINK_H */ #endif /* __LINUX_GENERIC_NETLINK_H */
...@@ -20,15 +20,17 @@ ...@@ -20,15 +20,17 @@
static DEFINE_MUTEX(genl_mutex); /* serialization of message processing */ static DEFINE_MUTEX(genl_mutex); /* serialization of message processing */
static inline void genl_lock(void) void genl_lock(void)
{ {
mutex_lock(&genl_mutex); mutex_lock(&genl_mutex);
} }
EXPORT_SYMBOL(genl_lock);
static inline void genl_unlock(void) void genl_unlock(void)
{ {
mutex_unlock(&genl_mutex); mutex_unlock(&genl_mutex);
} }
EXPORT_SYMBOL(genl_unlock);
#define GENL_FAM_TAB_SIZE 16 #define GENL_FAM_TAB_SIZE 16
#define GENL_FAM_TAB_MASK (GENL_FAM_TAB_SIZE - 1) #define GENL_FAM_TAB_MASK (GENL_FAM_TAB_SIZE - 1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment