diff options
| author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-09-19 23:51:04 -0400 |
|---|---|---|
| committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-09-20 01:52:38 -0400 |
| commit | 1cce058b29e7eb8a71a72d8bb87eb7b4e0401c22 (patch) | |
| tree | 493477b7a19606c66de2f003bca83672f2164cad /include | |
| parent | c26afe9e8591f306d79aab8071f1d34e4f60b700 (diff) | |
| parent | 9d037a777695993ec7437e5f451647dea7919d4c (diff) | |
Merge remote-tracking branch 'origin/master' into next
(Merge in order to get the PCIe mps/mrss code fixes)
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/basic_mmio_gpio.h | 15 | ||||
| -rw-r--r-- | include/linux/memcontrol.h | 19 | ||||
| -rw-r--r-- | include/linux/mfd/wm8994/pdata.h | 2 | ||||
| -rw-r--r-- | include/linux/perf_event.h | 24 | ||||
| -rw-r--r-- | include/linux/regulator/consumer.h | 2 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 1 | ||||
| -rw-r--r-- | include/linux/snmp.h | 2 | ||||
| -rw-r--r-- | include/linux/swap.h | 6 | ||||
| -rw-r--r-- | include/net/9p/9p.h | 29 | ||||
| -rw-r--r-- | include/net/cfg80211.h | 2 | ||||
| -rw-r--r-- | include/net/flow.h | 25 | ||||
| -rw-r--r-- | include/net/request_sock.h | 3 | ||||
| -rw-r--r-- | include/net/sctp/command.h | 1 | ||||
| -rw-r--r-- | include/net/tcp.h | 22 | ||||
| -rw-r--r-- | include/net/transp_v6.h | 1 |
15 files changed, 109 insertions, 45 deletions
diff --git a/include/linux/basic_mmio_gpio.h b/include/linux/basic_mmio_gpio.h index 98999cf107ce..feb912196745 100644 --- a/include/linux/basic_mmio_gpio.h +++ b/include/linux/basic_mmio_gpio.h | |||
| @@ -63,15 +63,10 @@ static inline struct bgpio_chip *to_bgpio_chip(struct gpio_chip *gc) | |||
| 63 | return container_of(gc, struct bgpio_chip, gc); | 63 | return container_of(gc, struct bgpio_chip, gc); |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | int __devexit bgpio_remove(struct bgpio_chip *bgc); | 66 | int bgpio_remove(struct bgpio_chip *bgc); |
| 67 | int __devinit bgpio_init(struct bgpio_chip *bgc, | 67 | int bgpio_init(struct bgpio_chip *bgc, struct device *dev, |
| 68 | struct device *dev, | 68 | unsigned long sz, void __iomem *dat, void __iomem *set, |
| 69 | unsigned long sz, | 69 | void __iomem *clr, void __iomem *dirout, void __iomem *dirin, |
| 70 | void __iomem *dat, | 70 | bool big_endian); |
| 71 | void __iomem *set, | ||
| 72 | void __iomem *clr, | ||
| 73 | void __iomem *dirout, | ||
| 74 | void __iomem *dirin, | ||
| 75 | bool big_endian); | ||
| 76 | 71 | ||
| 77 | #endif /* __BASIC_MMIO_GPIO_H */ | 72 | #endif /* __BASIC_MMIO_GPIO_H */ |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 3b535db00a94..343bd7661f2a 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
| @@ -39,16 +39,6 @@ extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, | |||
| 39 | struct mem_cgroup *mem_cont, | 39 | struct mem_cgroup *mem_cont, |
| 40 | int active, int file); | 40 | int active, int file); |
| 41 | 41 | ||
| 42 | struct memcg_scanrecord { | ||
| 43 | struct mem_cgroup *mem; /* scanend memory cgroup */ | ||
| 44 | struct mem_cgroup *root; /* scan target hierarchy root */ | ||
| 45 | int context; /* scanning context (see memcontrol.c) */ | ||
| 46 | unsigned long nr_scanned[2]; /* the number of scanned pages */ | ||
| 47 | unsigned long nr_rotated[2]; /* the number of rotated pages */ | ||
| 48 | unsigned long nr_freed[2]; /* the number of freed pages */ | ||
| 49 | unsigned long elapsed; /* nsec of time elapsed while scanning */ | ||
| 50 | }; | ||
| 51 | |||
| 52 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR | 42 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR |
| 53 | /* | 43 | /* |
| 54 | * All "charge" functions with gfp_mask should use GFP_KERNEL or | 44 | * All "charge" functions with gfp_mask should use GFP_KERNEL or |
| @@ -127,15 +117,6 @@ mem_cgroup_get_reclaim_stat_from_page(struct page *page); | |||
| 127 | extern void mem_cgroup_print_oom_info(struct mem_cgroup *memcg, | 117 | extern void mem_cgroup_print_oom_info(struct mem_cgroup *memcg, |
| 128 | struct task_struct *p); | 118 | struct task_struct *p); |
| 129 | 119 | ||
| 130 | extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem, | ||
| 131 | gfp_t gfp_mask, bool noswap, | ||
| 132 | struct memcg_scanrecord *rec); | ||
| 133 | extern unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem, | ||
| 134 | gfp_t gfp_mask, bool noswap, | ||
| 135 | struct zone *zone, | ||
| 136 | struct memcg_scanrecord *rec, | ||
| 137 | unsigned long *nr_scanned); | ||
| 138 | |||
| 139 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP | 120 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP |
| 140 | extern int do_swap_account; | 121 | extern int do_swap_account; |
| 141 | #endif | 122 | #endif |
diff --git a/include/linux/mfd/wm8994/pdata.h b/include/linux/mfd/wm8994/pdata.h index d12f8d635a81..97cf4f27d647 100644 --- a/include/linux/mfd/wm8994/pdata.h +++ b/include/linux/mfd/wm8994/pdata.h | |||
| @@ -26,7 +26,7 @@ struct wm8994_ldo_pdata { | |||
| 26 | struct regulator_init_data *init_data; | 26 | struct regulator_init_data *init_data; |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | #define WM8994_CONFIGURE_GPIO 0x8000 | 29 | #define WM8994_CONFIGURE_GPIO 0x10000 |
| 30 | 30 | ||
| 31 | #define WM8994_DRC_REGS 5 | 31 | #define WM8994_DRC_REGS 5 |
| 32 | #define WM8994_EQ_REGS 20 | 32 | #define WM8994_EQ_REGS 20 |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 245bafdafd5e..c816075c01ce 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -944,8 +944,10 @@ extern void perf_pmu_unregister(struct pmu *pmu); | |||
| 944 | 944 | ||
| 945 | extern int perf_num_counters(void); | 945 | extern int perf_num_counters(void); |
| 946 | extern const char *perf_pmu_name(void); | 946 | extern const char *perf_pmu_name(void); |
| 947 | extern void __perf_event_task_sched_in(struct task_struct *task); | 947 | extern void __perf_event_task_sched_in(struct task_struct *prev, |
| 948 | extern void __perf_event_task_sched_out(struct task_struct *task, struct task_struct *next); | 948 | struct task_struct *task); |
| 949 | extern void __perf_event_task_sched_out(struct task_struct *prev, | ||
| 950 | struct task_struct *next); | ||
| 949 | extern int perf_event_init_task(struct task_struct *child); | 951 | extern int perf_event_init_task(struct task_struct *child); |
| 950 | extern void perf_event_exit_task(struct task_struct *child); | 952 | extern void perf_event_exit_task(struct task_struct *child); |
| 951 | extern void perf_event_free_task(struct task_struct *task); | 953 | extern void perf_event_free_task(struct task_struct *task); |
| @@ -1059,17 +1061,20 @@ perf_sw_event(u32 event_id, u64 nr, struct pt_regs *regs, u64 addr) | |||
| 1059 | 1061 | ||
| 1060 | extern struct jump_label_key perf_sched_events; | 1062 | extern struct jump_label_key perf_sched_events; |
| 1061 | 1063 | ||
| 1062 | static inline void perf_event_task_sched_in(struct task_struct *task) | 1064 | static inline void perf_event_task_sched_in(struct task_struct *prev, |
| 1065 | struct task_struct *task) | ||
| 1063 | { | 1066 | { |
| 1064 | if (static_branch(&perf_sched_events)) | 1067 | if (static_branch(&perf_sched_events)) |
| 1065 | __perf_event_task_sched_in(task); | 1068 | __perf_event_task_sched_in(prev, task); |
| 1066 | } | 1069 | } |
| 1067 | 1070 | ||
| 1068 | static inline void perf_event_task_sched_out(struct task_struct *task, struct task_struct *next) | 1071 | static inline void perf_event_task_sched_out(struct task_struct *prev, |
| 1072 | struct task_struct *next) | ||
| 1069 | { | 1073 | { |
| 1070 | perf_sw_event(PERF_COUNT_SW_CONTEXT_SWITCHES, 1, NULL, 0); | 1074 | perf_sw_event(PERF_COUNT_SW_CONTEXT_SWITCHES, 1, NULL, 0); |
| 1071 | 1075 | ||
| 1072 | __perf_event_task_sched_out(task, next); | 1076 | if (static_branch(&perf_sched_events)) |
| 1077 | __perf_event_task_sched_out(prev, next); | ||
| 1073 | } | 1078 | } |
| 1074 | 1079 | ||
| 1075 | extern void perf_event_mmap(struct vm_area_struct *vma); | 1080 | extern void perf_event_mmap(struct vm_area_struct *vma); |
| @@ -1139,10 +1144,11 @@ extern void perf_event_disable(struct perf_event *event); | |||
| 1139 | extern void perf_event_task_tick(void); | 1144 | extern void perf_event_task_tick(void); |
| 1140 | #else | 1145 | #else |
| 1141 | static inline void | 1146 | static inline void |
| 1142 | perf_event_task_sched_in(struct task_struct *task) { } | 1147 | perf_event_task_sched_in(struct task_struct *prev, |
| 1148 | struct task_struct *task) { } | ||
| 1143 | static inline void | 1149 | static inline void |
| 1144 | perf_event_task_sched_out(struct task_struct *task, | 1150 | perf_event_task_sched_out(struct task_struct *prev, |
| 1145 | struct task_struct *next) { } | 1151 | struct task_struct *next) { } |
| 1146 | static inline int perf_event_init_task(struct task_struct *child) { return 0; } | 1152 | static inline int perf_event_init_task(struct task_struct *child) { return 0; } |
| 1147 | static inline void perf_event_exit_task(struct task_struct *child) { } | 1153 | static inline void perf_event_exit_task(struct task_struct *child) { } |
| 1148 | static inline void perf_event_free_task(struct task_struct *task) { } | 1154 | static inline void perf_event_free_task(struct task_struct *task) { } |
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index 26f6ea4444e3..b47771aa5718 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h | |||
| @@ -123,7 +123,7 @@ struct regulator_bulk_data { | |||
| 123 | const char *supply; | 123 | const char *supply; |
| 124 | struct regulator *consumer; | 124 | struct regulator *consumer; |
| 125 | 125 | ||
| 126 | /* Internal use */ | 126 | /* private: Internal use */ |
| 127 | int ret; | 127 | int ret; |
| 128 | }; | 128 | }; |
| 129 | 129 | ||
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 7b996ed86d5b..8bd383caa363 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -524,6 +524,7 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size, | |||
| 524 | extern bool skb_recycle_check(struct sk_buff *skb, int skb_size); | 524 | extern bool skb_recycle_check(struct sk_buff *skb, int skb_size); |
| 525 | 525 | ||
| 526 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); | 526 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); |
| 527 | extern int skb_copy_ubufs(struct sk_buff *skb, gfp_t gfp_mask); | ||
| 527 | extern struct sk_buff *skb_clone(struct sk_buff *skb, | 528 | extern struct sk_buff *skb_clone(struct sk_buff *skb, |
| 528 | gfp_t priority); | 529 | gfp_t priority); |
| 529 | extern struct sk_buff *skb_copy(const struct sk_buff *skb, | 530 | extern struct sk_buff *skb_copy(const struct sk_buff *skb, |
diff --git a/include/linux/snmp.h b/include/linux/snmp.h index 12b2b18e50c1..e16557a357e5 100644 --- a/include/linux/snmp.h +++ b/include/linux/snmp.h | |||
| @@ -231,6 +231,8 @@ enum | |||
| 231 | LINUX_MIB_TCPDEFERACCEPTDROP, | 231 | LINUX_MIB_TCPDEFERACCEPTDROP, |
| 232 | LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */ | 232 | LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */ |
| 233 | LINUX_MIB_TCPTIMEWAITOVERFLOW, /* TCPTimeWaitOverflow */ | 233 | LINUX_MIB_TCPTIMEWAITOVERFLOW, /* TCPTimeWaitOverflow */ |
| 234 | LINUX_MIB_TCPREQQFULLDOCOOKIES, /* TCPReqQFullDoCookies */ | ||
| 235 | LINUX_MIB_TCPREQQFULLDROP, /* TCPReqQFullDrop */ | ||
| 234 | __LINUX_MIB_MAX | 236 | __LINUX_MIB_MAX |
| 235 | }; | 237 | }; |
| 236 | 238 | ||
diff --git a/include/linux/swap.h b/include/linux/swap.h index 14d62490922e..c71f84bb62ec 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
| @@ -252,6 +252,12 @@ static inline void lru_cache_add_file(struct page *page) | |||
| 252 | extern unsigned long try_to_free_pages(struct zonelist *zonelist, int order, | 252 | extern unsigned long try_to_free_pages(struct zonelist *zonelist, int order, |
| 253 | gfp_t gfp_mask, nodemask_t *mask); | 253 | gfp_t gfp_mask, nodemask_t *mask); |
| 254 | extern int __isolate_lru_page(struct page *page, int mode, int file); | 254 | extern int __isolate_lru_page(struct page *page, int mode, int file); |
| 255 | extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem, | ||
| 256 | gfp_t gfp_mask, bool noswap); | ||
| 257 | extern unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem, | ||
| 258 | gfp_t gfp_mask, bool noswap, | ||
| 259 | struct zone *zone, | ||
| 260 | unsigned long *nr_scanned); | ||
| 255 | extern unsigned long shrink_all_memory(unsigned long nr_pages); | 261 | extern unsigned long shrink_all_memory(unsigned long nr_pages); |
| 256 | extern int vm_swappiness; | 262 | extern int vm_swappiness; |
| 257 | extern int remove_mapping(struct address_space *mapping, struct page *page); | 263 | extern int remove_mapping(struct address_space *mapping, struct page *page); |
diff --git a/include/net/9p/9p.h b/include/net/9p/9p.h index 342dcf13d039..a6326ef8ade6 100644 --- a/include/net/9p/9p.h +++ b/include/net/9p/9p.h | |||
| @@ -288,6 +288,35 @@ enum p9_perm_t { | |||
| 288 | P9_DMSETVTX = 0x00010000, | 288 | P9_DMSETVTX = 0x00010000, |
| 289 | }; | 289 | }; |
| 290 | 290 | ||
| 291 | /* 9p2000.L open flags */ | ||
| 292 | #define P9_DOTL_RDONLY 00000000 | ||
| 293 | #define P9_DOTL_WRONLY 00000001 | ||
| 294 | #define P9_DOTL_RDWR 00000002 | ||
| 295 | #define P9_DOTL_NOACCESS 00000003 | ||
| 296 | #define P9_DOTL_CREATE 00000100 | ||
| 297 | #define P9_DOTL_EXCL 00000200 | ||
| 298 | #define P9_DOTL_NOCTTY 00000400 | ||
| 299 | #define P9_DOTL_TRUNC 00001000 | ||
| 300 | #define P9_DOTL_APPEND 00002000 | ||
| 301 | #define P9_DOTL_NONBLOCK 00004000 | ||
| 302 | #define P9_DOTL_DSYNC 00010000 | ||
| 303 | #define P9_DOTL_FASYNC 00020000 | ||
| 304 | #define P9_DOTL_DIRECT 00040000 | ||
| 305 | #define P9_DOTL_LARGEFILE 00100000 | ||
| 306 | #define P9_DOTL_DIRECTORY 00200000 | ||
| 307 | #define P9_DOTL_NOFOLLOW 00400000 | ||
| 308 | #define P9_DOTL_NOATIME 01000000 | ||
| 309 | #define P9_DOTL_CLOEXEC 02000000 | ||
| 310 | #define P9_DOTL_SYNC 04000000 | ||
| 311 | |||
| 312 | /* 9p2000.L at flags */ | ||
| 313 | #define P9_DOTL_AT_REMOVEDIR 0x200 | ||
| 314 | |||
| 315 | /* 9p2000.L lock type */ | ||
| 316 | #define P9_LOCK_TYPE_RDLCK 0 | ||
| 317 | #define P9_LOCK_TYPE_WRLCK 1 | ||
| 318 | #define P9_LOCK_TYPE_UNLCK 2 | ||
| 319 | |||
| 291 | /** | 320 | /** |
| 292 | * enum p9_qid_t - QID types | 321 | * enum p9_qid_t - QID types |
| 293 | * @P9_QTDIR: directory | 322 | * @P9_QTDIR: directory |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 408ae4882d22..401d73bd151f 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -1744,6 +1744,8 @@ struct wiphy_wowlan_support { | |||
| 1744 | * by default for perm_addr. In this case, the mask should be set to | 1744 | * by default for perm_addr. In this case, the mask should be set to |
| 1745 | * all-zeroes. In this case it is assumed that the device can handle | 1745 | * all-zeroes. In this case it is assumed that the device can handle |
| 1746 | * the same number of arbitrary MAC addresses. | 1746 | * the same number of arbitrary MAC addresses. |
| 1747 | * @registered: protects ->resume and ->suspend sysfs callbacks against | ||
| 1748 | * unregister hardware | ||
| 1747 | * @debugfsdir: debugfs directory used for this wiphy, will be renamed | 1749 | * @debugfsdir: debugfs directory used for this wiphy, will be renamed |
| 1748 | * automatically on wiphy renames | 1750 | * automatically on wiphy renames |
| 1749 | * @dev: (virtual) struct device for this wiphy | 1751 | * @dev: (virtual) struct device for this wiphy |
diff --git a/include/net/flow.h b/include/net/flow.h index 78113daadd63..a09447749e2d 100644 --- a/include/net/flow.h +++ b/include/net/flow.h | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | #ifndef _NET_FLOW_H | 7 | #ifndef _NET_FLOW_H |
| 8 | #define _NET_FLOW_H | 8 | #define _NET_FLOW_H |
| 9 | 9 | ||
| 10 | #include <linux/socket.h> | ||
| 10 | #include <linux/in6.h> | 11 | #include <linux/in6.h> |
| 11 | #include <linux/atomic.h> | 12 | #include <linux/atomic.h> |
| 12 | 13 | ||
| @@ -68,7 +69,7 @@ struct flowi4 { | |||
| 68 | #define fl4_ipsec_spi uli.spi | 69 | #define fl4_ipsec_spi uli.spi |
| 69 | #define fl4_mh_type uli.mht.type | 70 | #define fl4_mh_type uli.mht.type |
| 70 | #define fl4_gre_key uli.gre_key | 71 | #define fl4_gre_key uli.gre_key |
| 71 | }; | 72 | } __attribute__((__aligned__(BITS_PER_LONG/8))); |
| 72 | 73 | ||
| 73 | static inline void flowi4_init_output(struct flowi4 *fl4, int oif, | 74 | static inline void flowi4_init_output(struct flowi4 *fl4, int oif, |
| 74 | __u32 mark, __u8 tos, __u8 scope, | 75 | __u32 mark, __u8 tos, __u8 scope, |
| @@ -112,7 +113,7 @@ struct flowi6 { | |||
| 112 | #define fl6_ipsec_spi uli.spi | 113 | #define fl6_ipsec_spi uli.spi |
| 113 | #define fl6_mh_type uli.mht.type | 114 | #define fl6_mh_type uli.mht.type |
| 114 | #define fl6_gre_key uli.gre_key | 115 | #define fl6_gre_key uli.gre_key |
| 115 | }; | 116 | } __attribute__((__aligned__(BITS_PER_LONG/8))); |
| 116 | 117 | ||
| 117 | struct flowidn { | 118 | struct flowidn { |
| 118 | struct flowi_common __fl_common; | 119 | struct flowi_common __fl_common; |
| @@ -127,7 +128,7 @@ struct flowidn { | |||
| 127 | union flowi_uli uli; | 128 | union flowi_uli uli; |
| 128 | #define fld_sport uli.ports.sport | 129 | #define fld_sport uli.ports.sport |
| 129 | #define fld_dport uli.ports.dport | 130 | #define fld_dport uli.ports.dport |
| 130 | }; | 131 | } __attribute__((__aligned__(BITS_PER_LONG/8))); |
| 131 | 132 | ||
| 132 | struct flowi { | 133 | struct flowi { |
| 133 | union { | 134 | union { |
| @@ -161,6 +162,24 @@ static inline struct flowi *flowidn_to_flowi(struct flowidn *fldn) | |||
| 161 | return container_of(fldn, struct flowi, u.dn); | 162 | return container_of(fldn, struct flowi, u.dn); |
| 162 | } | 163 | } |
| 163 | 164 | ||
| 165 | typedef unsigned long flow_compare_t; | ||
| 166 | |||
| 167 | static inline size_t flow_key_size(u16 family) | ||
| 168 | { | ||
| 169 | switch (family) { | ||
| 170 | case AF_INET: | ||
| 171 | BUILD_BUG_ON(sizeof(struct flowi4) % sizeof(flow_compare_t)); | ||
| 172 | return sizeof(struct flowi4) / sizeof(flow_compare_t); | ||
| 173 | case AF_INET6: | ||
| 174 | BUILD_BUG_ON(sizeof(struct flowi6) % sizeof(flow_compare_t)); | ||
| 175 | return sizeof(struct flowi6) / sizeof(flow_compare_t); | ||
| 176 | case AF_DECnet: | ||
| 177 | BUILD_BUG_ON(sizeof(struct flowidn) % sizeof(flow_compare_t)); | ||
| 178 | return sizeof(struct flowidn) / sizeof(flow_compare_t); | ||
| 179 | } | ||
| 180 | return 0; | ||
| 181 | } | ||
| 182 | |||
| 164 | #define FLOW_DIR_IN 0 | 183 | #define FLOW_DIR_IN 0 |
| 165 | #define FLOW_DIR_OUT 1 | 184 | #define FLOW_DIR_OUT 1 |
| 166 | #define FLOW_DIR_FWD 2 | 185 | #define FLOW_DIR_FWD 2 |
diff --git a/include/net/request_sock.h b/include/net/request_sock.h index 99e6e19b57c2..4c0766e201e3 100644 --- a/include/net/request_sock.h +++ b/include/net/request_sock.h | |||
| @@ -96,7 +96,8 @@ extern int sysctl_max_syn_backlog; | |||
| 96 | */ | 96 | */ |
| 97 | struct listen_sock { | 97 | struct listen_sock { |
| 98 | u8 max_qlen_log; | 98 | u8 max_qlen_log; |
| 99 | /* 3 bytes hole, try to use */ | 99 | u8 synflood_warned; |
| 100 | /* 2 bytes hole, try to use */ | ||
| 100 | int qlen; | 101 | int qlen; |
| 101 | int qlen_young; | 102 | int qlen_young; |
| 102 | int clock_hand; | 103 | int clock_hand; |
diff --git a/include/net/sctp/command.h b/include/net/sctp/command.h index 6506458ccd33..712b3bebeda7 100644 --- a/include/net/sctp/command.h +++ b/include/net/sctp/command.h | |||
| @@ -109,6 +109,7 @@ typedef enum { | |||
| 109 | SCTP_CMD_SEND_MSG, /* Send the whole use message */ | 109 | SCTP_CMD_SEND_MSG, /* Send the whole use message */ |
| 110 | SCTP_CMD_SEND_NEXT_ASCONF, /* Send the next ASCONF after ACK */ | 110 | SCTP_CMD_SEND_NEXT_ASCONF, /* Send the next ASCONF after ACK */ |
| 111 | SCTP_CMD_PURGE_ASCONF_QUEUE, /* Purge all asconf queues.*/ | 111 | SCTP_CMD_PURGE_ASCONF_QUEUE, /* Purge all asconf queues.*/ |
| 112 | SCTP_CMD_SET_ASOC, /* Restore association context */ | ||
| 112 | SCTP_CMD_LAST | 113 | SCTP_CMD_LAST |
| 113 | } sctp_verb_t; | 114 | } sctp_verb_t; |
| 114 | 115 | ||
diff --git a/include/net/tcp.h b/include/net/tcp.h index 149a415d1e0a..acc620a4a45f 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
| @@ -431,17 +431,34 @@ extern int tcp_disconnect(struct sock *sk, int flags); | |||
| 431 | extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS]; | 431 | extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS]; |
| 432 | extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, | 432 | extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, |
| 433 | struct ip_options *opt); | 433 | struct ip_options *opt); |
| 434 | #ifdef CONFIG_SYN_COOKIES | ||
| 434 | extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb, | 435 | extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb, |
| 435 | __u16 *mss); | 436 | __u16 *mss); |
| 437 | #else | ||
| 438 | static inline __u32 cookie_v4_init_sequence(struct sock *sk, | ||
| 439 | struct sk_buff *skb, | ||
| 440 | __u16 *mss) | ||
| 441 | { | ||
| 442 | return 0; | ||
| 443 | } | ||
| 444 | #endif | ||
| 436 | 445 | ||
| 437 | extern __u32 cookie_init_timestamp(struct request_sock *req); | 446 | extern __u32 cookie_init_timestamp(struct request_sock *req); |
| 438 | extern bool cookie_check_timestamp(struct tcp_options_received *opt, bool *); | 447 | extern bool cookie_check_timestamp(struct tcp_options_received *opt, bool *); |
| 439 | 448 | ||
| 440 | /* From net/ipv6/syncookies.c */ | 449 | /* From net/ipv6/syncookies.c */ |
| 441 | extern struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb); | 450 | extern struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb); |
| 451 | #ifdef CONFIG_SYN_COOKIES | ||
| 442 | extern __u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb, | 452 | extern __u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb, |
| 443 | __u16 *mss); | 453 | __u16 *mss); |
| 444 | 454 | #else | |
| 455 | static inline __u32 cookie_v6_init_sequence(struct sock *sk, | ||
| 456 | struct sk_buff *skb, | ||
| 457 | __u16 *mss) | ||
| 458 | { | ||
| 459 | return 0; | ||
| 460 | } | ||
| 461 | #endif | ||
| 445 | /* tcp_output.c */ | 462 | /* tcp_output.c */ |
| 446 | 463 | ||
| 447 | extern void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss, | 464 | extern void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss, |
| @@ -460,6 +477,9 @@ extern int tcp_write_wakeup(struct sock *); | |||
| 460 | extern void tcp_send_fin(struct sock *sk); | 477 | extern void tcp_send_fin(struct sock *sk); |
| 461 | extern void tcp_send_active_reset(struct sock *sk, gfp_t priority); | 478 | extern void tcp_send_active_reset(struct sock *sk, gfp_t priority); |
| 462 | extern int tcp_send_synack(struct sock *); | 479 | extern int tcp_send_synack(struct sock *); |
| 480 | extern int tcp_syn_flood_action(struct sock *sk, | ||
| 481 | const struct sk_buff *skb, | ||
| 482 | const char *proto); | ||
| 463 | extern void tcp_push_one(struct sock *, unsigned int mss_now); | 483 | extern void tcp_push_one(struct sock *, unsigned int mss_now); |
| 464 | extern void tcp_send_ack(struct sock *sk); | 484 | extern void tcp_send_ack(struct sock *sk); |
| 465 | extern void tcp_send_delayed_ack(struct sock *sk); | 485 | extern void tcp_send_delayed_ack(struct sock *sk); |
diff --git a/include/net/transp_v6.h b/include/net/transp_v6.h index 5271a741c3a3..498433dd067d 100644 --- a/include/net/transp_v6.h +++ b/include/net/transp_v6.h | |||
| @@ -39,6 +39,7 @@ extern int datagram_recv_ctl(struct sock *sk, | |||
| 39 | struct sk_buff *skb); | 39 | struct sk_buff *skb); |
| 40 | 40 | ||
| 41 | extern int datagram_send_ctl(struct net *net, | 41 | extern int datagram_send_ctl(struct net *net, |
| 42 | struct sock *sk, | ||
| 42 | struct msghdr *msg, | 43 | struct msghdr *msg, |
| 43 | struct flowi6 *fl6, | 44 | struct flowi6 *fl6, |
| 44 | struct ipv6_txoptions *opt, | 45 | struct ipv6_txoptions *opt, |
