netlink: Export genl_lock() API for use by modules
This lets kernel modules which use genl netlink APIs serialize netlink processing. Signed-off-by: James Chapman <jchapman@katalix.com> Reviewed-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
0d76751fad
Коммит
f408e0ce40
|
@ -80,4 +80,12 @@ enum {
|
|||
|
||||
#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 */
|
||||
|
|
|
@ -20,15 +20,17 @@
|
|||
|
||||
static DEFINE_MUTEX(genl_mutex); /* serialization of message processing */
|
||||
|
||||
static inline void genl_lock(void)
|
||||
void genl_lock(void)
|
||||
{
|
||||
mutex_lock(&genl_mutex);
|
||||
}
|
||||
EXPORT_SYMBOL(genl_lock);
|
||||
|
||||
static inline void genl_unlock(void)
|
||||
void genl_unlock(void)
|
||||
{
|
||||
mutex_unlock(&genl_mutex);
|
||||
}
|
||||
EXPORT_SYMBOL(genl_unlock);
|
||||
|
||||
#define GENL_FAM_TAB_SIZE 16
|
||||
#define GENL_FAM_TAB_MASK (GENL_FAM_TAB_SIZE - 1)
|
||||
|
|
Загрузка…
Ссылка в новой задаче