diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2011-10-20 08:51:38 -0400 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2011-10-20 08:51:38 -0400 |
| commit | 1faca4ced8594d3586302e8d1788a60932f2bbca (patch) | |
| tree | 5130aaa4803a322f3d1f0ff6406f047ed0dba475 /include | |
| parent | 112d17d6f75b93e1dcaec2e2232a411148b3bf71 (diff) | |
| parent | 6b6844dd54e4196dd9818bc63b319f93c37a08be (diff) | |
Merge branch 'samsung/devel' of git+ssh://git.linaro.org/home/arndbergmann/public_git/arm-soc into next/devel2
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/amba/pl08x.h | 14 | ||||
| -rw-r--r-- | include/linux/amba/pl330.h | 6 | ||||
| -rw-r--r-- | include/linux/basic_mmio_gpio.h | 15 | ||||
| -rw-r--r-- | include/linux/blk_types.h | 6 | ||||
| -rw-r--r-- | include/linux/blkdev.h | 1 | ||||
| -rw-r--r-- | include/linux/dmaengine.h | 13 | ||||
| -rw-r--r-- | include/linux/fs.h | 2 | ||||
| -rw-r--r-- | include/linux/kvm.h | 1 | ||||
| -rw-r--r-- | include/linux/memcontrol.h | 19 | ||||
| -rw-r--r-- | include/linux/mfd/wm8994/pdata.h | 2 | ||||
| -rw-r--r-- | include/linux/namei.h | 3 | ||||
| -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/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 |
19 files changed, 93 insertions, 50 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h index e6e28f37d8ec..a22662c93981 100644 --- a/include/linux/amba/pl08x.h +++ b/include/linux/amba/pl08x.h | |||
| @@ -47,6 +47,9 @@ enum { | |||
| 47 | * @muxval: a number usually used to poke into some mux regiser to | 47 | * @muxval: a number usually used to poke into some mux regiser to |
| 48 | * mux in the signal to this channel | 48 | * mux in the signal to this channel |
| 49 | * @cctl_opt: default options for the channel control register | 49 | * @cctl_opt: default options for the channel control register |
| 50 | * @device_fc: Flow Controller Settings for ccfg register. Only valid for slave | ||
| 51 | * channels. Fill with 'true' if peripheral should be flow controller. Direction | ||
| 52 | * will be selected at Runtime. | ||
| 50 | * @addr: source/target address in physical memory for this DMA channel, | 53 | * @addr: source/target address in physical memory for this DMA channel, |
| 51 | * can be the address of a FIFO register for burst requests for example. | 54 | * can be the address of a FIFO register for burst requests for example. |
| 52 | * This can be left undefined if the PrimeCell API is used for configuring | 55 | * This can be left undefined if the PrimeCell API is used for configuring |
| @@ -65,6 +68,7 @@ struct pl08x_channel_data { | |||
| 65 | int max_signal; | 68 | int max_signal; |
| 66 | u32 muxval; | 69 | u32 muxval; |
| 67 | u32 cctl; | 70 | u32 cctl; |
| 71 | bool device_fc; | ||
| 68 | dma_addr_t addr; | 72 | dma_addr_t addr; |
| 69 | bool circular_buffer; | 73 | bool circular_buffer; |
| 70 | bool single; | 74 | bool single; |
| @@ -77,13 +81,11 @@ struct pl08x_channel_data { | |||
| 77 | * @addr: current address | 81 | * @addr: current address |
| 78 | * @maxwidth: the maximum width of a transfer on this bus | 82 | * @maxwidth: the maximum width of a transfer on this bus |
| 79 | * @buswidth: the width of this bus in bytes: 1, 2 or 4 | 83 | * @buswidth: the width of this bus in bytes: 1, 2 or 4 |
| 80 | * @fill_bytes: bytes required to fill to the next bus memory boundary | ||
| 81 | */ | 84 | */ |
| 82 | struct pl08x_bus_data { | 85 | struct pl08x_bus_data { |
| 83 | dma_addr_t addr; | 86 | dma_addr_t addr; |
| 84 | u8 maxwidth; | 87 | u8 maxwidth; |
| 85 | u8 buswidth; | 88 | u8 buswidth; |
| 86 | size_t fill_bytes; | ||
| 87 | }; | 89 | }; |
| 88 | 90 | ||
| 89 | /** | 91 | /** |
| @@ -105,8 +107,16 @@ struct pl08x_phy_chan { | |||
| 105 | 107 | ||
| 106 | /** | 108 | /** |
| 107 | * struct pl08x_txd - wrapper for struct dma_async_tx_descriptor | 109 | * struct pl08x_txd - wrapper for struct dma_async_tx_descriptor |
| 110 | * @tx: async tx descriptor | ||
| 111 | * @node: node for txd list for channels | ||
| 112 | * @src_addr: src address of txd | ||
| 113 | * @dst_addr: dst address of txd | ||
| 114 | * @len: transfer len in bytes | ||
| 115 | * @direction: direction of transfer | ||
| 108 | * @llis_bus: DMA memory address (physical) start for the LLIs | 116 | * @llis_bus: DMA memory address (physical) start for the LLIs |
| 109 | * @llis_va: virtual memory address start for the LLIs | 117 | * @llis_va: virtual memory address start for the LLIs |
| 118 | * @cctl: control reg values for current txd | ||
| 119 | * @ccfg: config reg values for current txd | ||
| 110 | */ | 120 | */ |
| 111 | struct pl08x_txd { | 121 | struct pl08x_txd { |
| 112 | struct dma_async_tx_descriptor tx; | 122 | struct dma_async_tx_descriptor tx; |
diff --git a/include/linux/amba/pl330.h b/include/linux/amba/pl330.h index cbee7de7dd36..d12f077a6daf 100644 --- a/include/linux/amba/pl330.h +++ b/include/linux/amba/pl330.h | |||
| @@ -19,12 +19,8 @@ struct dma_pl330_peri { | |||
| 19 | * Peri_Req i/f of the DMAC that is | 19 | * Peri_Req i/f of the DMAC that is |
| 20 | * peripheral could be reached from. | 20 | * peripheral could be reached from. |
| 21 | */ | 21 | */ |
| 22 | u8 peri_id; /* {0, 31} */ | 22 | u8 peri_id; /* specific dma id */ |
| 23 | enum pl330_reqtype rqtype; | 23 | enum pl330_reqtype rqtype; |
| 24 | |||
| 25 | /* For M->D and D->M Channels */ | ||
| 26 | int burst_sz; /* in power of 2 */ | ||
| 27 | dma_addr_t fifo_addr; | ||
| 28 | }; | 24 | }; |
| 29 | 25 | ||
| 30 | struct dma_pl330_platdata { | 26 | struct dma_pl330_platdata { |
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/blk_types.h b/include/linux/blk_types.h index 32f0076e844b..71fc53bb8f1c 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h | |||
| @@ -124,6 +124,7 @@ enum rq_flag_bits { | |||
| 124 | 124 | ||
| 125 | __REQ_SYNC, /* request is sync (sync write or read) */ | 125 | __REQ_SYNC, /* request is sync (sync write or read) */ |
| 126 | __REQ_META, /* metadata io request */ | 126 | __REQ_META, /* metadata io request */ |
| 127 | __REQ_PRIO, /* boost priority in cfq */ | ||
| 127 | __REQ_DISCARD, /* request to discard sectors */ | 128 | __REQ_DISCARD, /* request to discard sectors */ |
| 128 | __REQ_SECURE, /* secure discard (used with __REQ_DISCARD) */ | 129 | __REQ_SECURE, /* secure discard (used with __REQ_DISCARD) */ |
| 129 | 130 | ||
| @@ -161,14 +162,15 @@ enum rq_flag_bits { | |||
| 161 | #define REQ_FAILFAST_DRIVER (1 << __REQ_FAILFAST_DRIVER) | 162 | #define REQ_FAILFAST_DRIVER (1 << __REQ_FAILFAST_DRIVER) |
| 162 | #define REQ_SYNC (1 << __REQ_SYNC) | 163 | #define REQ_SYNC (1 << __REQ_SYNC) |
| 163 | #define REQ_META (1 << __REQ_META) | 164 | #define REQ_META (1 << __REQ_META) |
| 165 | #define REQ_PRIO (1 << __REQ_PRIO) | ||
| 164 | #define REQ_DISCARD (1 << __REQ_DISCARD) | 166 | #define REQ_DISCARD (1 << __REQ_DISCARD) |
| 165 | #define REQ_NOIDLE (1 << __REQ_NOIDLE) | 167 | #define REQ_NOIDLE (1 << __REQ_NOIDLE) |
| 166 | 168 | ||
| 167 | #define REQ_FAILFAST_MASK \ | 169 | #define REQ_FAILFAST_MASK \ |
| 168 | (REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER) | 170 | (REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER) |
| 169 | #define REQ_COMMON_MASK \ | 171 | #define REQ_COMMON_MASK \ |
| 170 | (REQ_WRITE | REQ_FAILFAST_MASK | REQ_SYNC | REQ_META | REQ_DISCARD | \ | 172 | (REQ_WRITE | REQ_FAILFAST_MASK | REQ_SYNC | REQ_META | REQ_PRIO | \ |
| 171 | REQ_NOIDLE | REQ_FLUSH | REQ_FUA | REQ_SECURE) | 173 | REQ_DISCARD | REQ_NOIDLE | REQ_FLUSH | REQ_FUA | REQ_SECURE) |
| 172 | #define REQ_CLONE_MASK REQ_COMMON_MASK | 174 | #define REQ_CLONE_MASK REQ_COMMON_MASK |
| 173 | 175 | ||
| 174 | #define REQ_RAHEAD (1 << __REQ_RAHEAD) | 176 | #define REQ_RAHEAD (1 << __REQ_RAHEAD) |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 84b15d54f8c2..7fbaa9103344 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -873,7 +873,6 @@ struct blk_plug { | |||
| 873 | struct list_head list; | 873 | struct list_head list; |
| 874 | struct list_head cb_list; | 874 | struct list_head cb_list; |
| 875 | unsigned int should_sort; | 875 | unsigned int should_sort; |
| 876 | unsigned int count; | ||
| 877 | }; | 876 | }; |
| 878 | #define BLK_MAX_REQUEST_COUNT 16 | 877 | #define BLK_MAX_REQUEST_COUNT 16 |
| 879 | 878 | ||
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 8fbf40e0713c..ace51af4369f 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -24,8 +24,7 @@ | |||
| 24 | #include <linux/device.h> | 24 | #include <linux/device.h> |
| 25 | #include <linux/uio.h> | 25 | #include <linux/uio.h> |
| 26 | #include <linux/dma-direction.h> | 26 | #include <linux/dma-direction.h> |
| 27 | 27 | #include <linux/scatterlist.h> | |
| 28 | struct scatterlist; | ||
| 29 | 28 | ||
| 30 | /** | 29 | /** |
| 31 | * typedef dma_cookie_t - an opaque DMA cookie | 30 | * typedef dma_cookie_t - an opaque DMA cookie |
| @@ -519,6 +518,16 @@ static inline int dmaengine_slave_config(struct dma_chan *chan, | |||
| 519 | (unsigned long)config); | 518 | (unsigned long)config); |
| 520 | } | 519 | } |
| 521 | 520 | ||
| 521 | static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single( | ||
| 522 | struct dma_chan *chan, void *buf, size_t len, | ||
| 523 | enum dma_data_direction dir, unsigned long flags) | ||
| 524 | { | ||
| 525 | struct scatterlist sg; | ||
| 526 | sg_init_one(&sg, buf, len); | ||
| 527 | |||
| 528 | return chan->device->device_prep_slave_sg(chan, &sg, 1, dir, flags); | ||
| 529 | } | ||
| 530 | |||
| 522 | static inline int dmaengine_terminate_all(struct dma_chan *chan) | 531 | static inline int dmaengine_terminate_all(struct dma_chan *chan) |
| 523 | { | 532 | { |
| 524 | return dmaengine_device_control(chan, DMA_TERMINATE_ALL, 0); | 533 | return dmaengine_device_control(chan, DMA_TERMINATE_ALL, 0); |
diff --git a/include/linux/fs.h b/include/linux/fs.h index c2bd68f2277a..277f497923a2 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -162,10 +162,8 @@ struct inodes_stat_t { | |||
| 162 | #define READA RWA_MASK | 162 | #define READA RWA_MASK |
| 163 | 163 | ||
| 164 | #define READ_SYNC (READ | REQ_SYNC) | 164 | #define READ_SYNC (READ | REQ_SYNC) |
| 165 | #define READ_META (READ | REQ_META) | ||
| 166 | #define WRITE_SYNC (WRITE | REQ_SYNC | REQ_NOIDLE) | 165 | #define WRITE_SYNC (WRITE | REQ_SYNC | REQ_NOIDLE) |
| 167 | #define WRITE_ODIRECT (WRITE | REQ_SYNC) | 166 | #define WRITE_ODIRECT (WRITE | REQ_SYNC) |
| 168 | #define WRITE_META (WRITE | REQ_META) | ||
| 169 | #define WRITE_FLUSH (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH) | 167 | #define WRITE_FLUSH (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH) |
| 170 | #define WRITE_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FUA) | 168 | #define WRITE_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FUA) |
| 171 | #define WRITE_FLUSH_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH | REQ_FUA) | 169 | #define WRITE_FLUSH_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH | REQ_FUA) |
diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 2c366b52f505..aace6b8691a2 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h | |||
| @@ -553,6 +553,7 @@ struct kvm_ppc_pvinfo { | |||
| 553 | #define KVM_CAP_SPAPR_TCE 63 | 553 | #define KVM_CAP_SPAPR_TCE 63 |
| 554 | #define KVM_CAP_PPC_SMT 64 | 554 | #define KVM_CAP_PPC_SMT 64 |
| 555 | #define KVM_CAP_PPC_RMA 65 | 555 | #define KVM_CAP_PPC_RMA 65 |
| 556 | #define KVM_CAP_S390_GMAP 71 | ||
| 556 | 557 | ||
| 557 | #ifdef KVM_CAP_IRQ_ROUTING | 558 | #ifdef KVM_CAP_IRQ_ROUTING |
| 558 | 559 | ||
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/namei.h b/include/linux/namei.h index 76fe2c62ae71..409328d1cbbb 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h | |||
| @@ -48,11 +48,12 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND}; | |||
| 48 | */ | 48 | */ |
| 49 | #define LOOKUP_FOLLOW 0x0001 | 49 | #define LOOKUP_FOLLOW 0x0001 |
| 50 | #define LOOKUP_DIRECTORY 0x0002 | 50 | #define LOOKUP_DIRECTORY 0x0002 |
| 51 | #define LOOKUP_AUTOMOUNT 0x0004 | ||
| 51 | 52 | ||
| 52 | #define LOOKUP_PARENT 0x0010 | 53 | #define LOOKUP_PARENT 0x0010 |
| 53 | #define LOOKUP_REVAL 0x0020 | 54 | #define LOOKUP_REVAL 0x0020 |
| 54 | #define LOOKUP_RCU 0x0040 | 55 | #define LOOKUP_RCU 0x0040 |
| 55 | #define LOOKUP_NO_AUTOMOUNT 0x0080 | 56 | |
| 56 | /* | 57 | /* |
| 57 | * Intent data | 58 | * Intent data |
| 58 | */ | 59 | */ |
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/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, |
