.. | .. |
---|
39 | 39 | char *nxt_offset; |
---|
40 | 40 | struct sk_buff *skb; |
---|
41 | 41 | |
---|
42 | | - atomic_t blk_fill_in_prog; |
---|
| 42 | + rwlock_t blk_fill_in_prog_lock; |
---|
43 | 43 | |
---|
44 | 44 | /* Default is set to 8ms */ |
---|
45 | 45 | #define DEFAULT_PRB_RETIRE_TOV (8) |
---|
.. | .. |
---|
77 | 77 | }; |
---|
78 | 78 | |
---|
79 | 79 | extern struct mutex fanout_mutex; |
---|
80 | | -#define PACKET_FANOUT_MAX 256 |
---|
| 80 | +#define PACKET_FANOUT_MAX (1 << 16) |
---|
81 | 81 | |
---|
82 | 82 | struct packet_fanout { |
---|
83 | 83 | possible_net_t net; |
---|
84 | 84 | unsigned int num_members; |
---|
| 85 | + u32 max_num_members; |
---|
85 | 86 | u16 id; |
---|
86 | 87 | u8 type; |
---|
87 | 88 | u8 flags; |
---|
.. | .. |
---|
90 | 91 | struct bpf_prog __rcu *bpf_prog; |
---|
91 | 92 | }; |
---|
92 | 93 | struct list_head list; |
---|
93 | | - struct sock *arr[PACKET_FANOUT_MAX]; |
---|
94 | 94 | spinlock_t lock; |
---|
95 | 95 | refcount_t sk_ref; |
---|
96 | 96 | struct packet_type prot_hook ____cacheline_aligned_in_smp; |
---|
| 97 | + struct sock __rcu *arr[]; |
---|
97 | 98 | }; |
---|
98 | 99 | |
---|
99 | 100 | struct packet_rollover { |
---|
.. | .. |
---|
135 | 136 | struct net_device __rcu *cached_dev; |
---|
136 | 137 | int (*xmit)(struct sk_buff *skb); |
---|
137 | 138 | struct packet_type prot_hook ____cacheline_aligned_in_smp; |
---|
| 139 | + atomic_t tp_drops ____cacheline_aligned_in_smp; |
---|
138 | 140 | }; |
---|
139 | 141 | |
---|
140 | 142 | static struct packet_sock *pkt_sk(struct sock *sk) |
---|