Merge tag 'leds-next-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
[linux-2.6-microblaze.git] / include / net / netns / mctp.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * MCTP per-net structures
4  */
5
6 #ifndef __NETNS_MCTP_H__
7 #define __NETNS_MCTP_H__
8
9 #include <linux/mutex.h>
10 #include <linux/types.h>
11
12 struct netns_mctp {
13         /* Only updated under RTNL, entries freed via RCU */
14         struct list_head routes;
15
16         /* Bound sockets: list of sockets bound by type.
17          * This list is updated from non-atomic contexts (under bind_lock),
18          * and read (under rcu) in packet rx
19          */
20         struct mutex bind_lock;
21         struct hlist_head binds;
22
23         /* tag allocations. This list is read and updated from atomic contexts,
24          * but elements are free()ed after a RCU grace-period
25          */
26         spinlock_t keys_lock;
27         struct hlist_head keys;
28
29         /* MCTP network */
30         unsigned int default_net;
31
32         /* neighbour table */
33         struct mutex neigh_lock;
34         struct list_head neighbours;
35 };
36
37 #endif /* __NETNS_MCTP_H__ */