Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -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 */
+4 −2
Original line number Original line Diff line number Diff line
@@ -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)