| .. | .. |
|---|
| 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) |
|---|