diff options
Diffstat (limited to 'include')
29 files changed, 133 insertions, 55 deletions
diff --git a/include/asm-generic/hugetlb.h b/include/asm-generic/hugetlb.h index d06079c774a0..99b490b4d05a 100644 --- a/include/asm-generic/hugetlb.h +++ b/include/asm-generic/hugetlb.h | |||
@@ -6,12 +6,12 @@ static inline pte_t mk_huge_pte(struct page *page, pgprot_t pgprot) | |||
6 | return mk_pte(page, pgprot); | 6 | return mk_pte(page, pgprot); |
7 | } | 7 | } |
8 | 8 | ||
9 | static inline int huge_pte_write(pte_t pte) | 9 | static inline unsigned long huge_pte_write(pte_t pte) |
10 | { | 10 | { |
11 | return pte_write(pte); | 11 | return pte_write(pte); |
12 | } | 12 | } |
13 | 13 | ||
14 | static inline int huge_pte_dirty(pte_t pte) | 14 | static inline unsigned long huge_pte_dirty(pte_t pte) |
15 | { | 15 | { |
16 | return pte_dirty(pte); | 16 | return pte_dirty(pte); |
17 | } | 17 | } |
diff --git a/include/asm-generic/vtime.h b/include/asm-generic/vtime.h index e69de29bb2d1..b1a49677fe25 100644 --- a/include/asm-generic/vtime.h +++ b/include/asm-generic/vtime.h | |||
@@ -0,0 +1 @@ | |||
/* no content, but patch(1) dislikes empty files */ | |||
diff --git a/include/dt-bindings/pinctrl/omap.h b/include/dt-bindings/pinctrl/omap.h index edbd250809cb..bed35e36fd27 100644 --- a/include/dt-bindings/pinctrl/omap.h +++ b/include/dt-bindings/pinctrl/omap.h | |||
@@ -23,7 +23,7 @@ | |||
23 | #define PULL_UP (1 << 4) | 23 | #define PULL_UP (1 << 4) |
24 | #define ALTELECTRICALSEL (1 << 5) | 24 | #define ALTELECTRICALSEL (1 << 5) |
25 | 25 | ||
26 | /* 34xx specific mux bit defines */ | 26 | /* omap3/4/5 specific mux bit defines */ |
27 | #define INPUT_EN (1 << 8) | 27 | #define INPUT_EN (1 << 8) |
28 | #define OFF_EN (1 << 9) | 28 | #define OFF_EN (1 << 9) |
29 | #define OFFOUT_EN (1 << 10) | 29 | #define OFFOUT_EN (1 << 10) |
@@ -31,8 +31,6 @@ | |||
31 | #define OFF_PULL_EN (1 << 12) | 31 | #define OFF_PULL_EN (1 << 12) |
32 | #define OFF_PULL_UP (1 << 13) | 32 | #define OFF_PULL_UP (1 << 13) |
33 | #define WAKEUP_EN (1 << 14) | 33 | #define WAKEUP_EN (1 << 14) |
34 | |||
35 | /* 44xx specific mux bit defines */ | ||
36 | #define WAKEUP_EVENT (1 << 15) | 34 | #define WAKEUP_EVENT (1 << 15) |
37 | 35 | ||
38 | /* Active pin states */ | 36 | /* Active pin states */ |
diff --git a/include/linux/balloon_compaction.h b/include/linux/balloon_compaction.h index f7f1d7169b11..089743ade734 100644 --- a/include/linux/balloon_compaction.h +++ b/include/linux/balloon_compaction.h | |||
@@ -159,6 +159,26 @@ static inline bool balloon_page_movable(struct page *page) | |||
159 | } | 159 | } |
160 | 160 | ||
161 | /* | 161 | /* |
162 | * isolated_balloon_page - identify an isolated balloon page on private | ||
163 | * compaction/migration page lists. | ||
164 | * | ||
165 | * After a compaction thread isolates a balloon page for migration, it raises | ||
166 | * the page refcount to prevent concurrent compaction threads from re-isolating | ||
167 | * the same page. For that reason putback_movable_pages(), or other routines | ||
168 | * that need to identify isolated balloon pages on private pagelists, cannot | ||
169 | * rely on balloon_page_movable() to accomplish the task. | ||
170 | */ | ||
171 | static inline bool isolated_balloon_page(struct page *page) | ||
172 | { | ||
173 | /* Already isolated balloon pages, by default, have a raised refcount */ | ||
174 | if (page_flags_cleared(page) && !page_mapped(page) && | ||
175 | page_count(page) >= 2) | ||
176 | return __is_movable_balloon_page(page); | ||
177 | |||
178 | return false; | ||
179 | } | ||
180 | |||
181 | /* | ||
162 | * balloon_page_insert - insert a page into the balloon's page list and make | 182 | * balloon_page_insert - insert a page into the balloon's page list and make |
163 | * the page->mapping assignment accordingly. | 183 | * the page->mapping assignment accordingly. |
164 | * @page : page to be assigned as a 'balloon page' | 184 | * @page : page to be assigned as a 'balloon page' |
@@ -243,6 +263,11 @@ static inline bool balloon_page_movable(struct page *page) | |||
243 | return false; | 263 | return false; |
244 | } | 264 | } |
245 | 265 | ||
266 | static inline bool isolated_balloon_page(struct page *page) | ||
267 | { | ||
268 | return false; | ||
269 | } | ||
270 | |||
246 | static inline bool balloon_page_isolate(struct page *page) | 271 | static inline bool balloon_page_isolate(struct page *page) |
247 | { | 272 | { |
248 | return false; | 273 | return false; |
diff --git a/include/linux/bcma/bcma_driver_pci.h b/include/linux/bcma/bcma_driver_pci.h index d66033f418c9..0333e605ea0d 100644 --- a/include/linux/bcma/bcma_driver_pci.h +++ b/include/linux/bcma/bcma_driver_pci.h | |||
@@ -242,6 +242,7 @@ extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, | |||
242 | struct bcma_device *core, bool enable); | 242 | struct bcma_device *core, bool enable); |
243 | extern void bcma_core_pci_up(struct bcma_bus *bus); | 243 | extern void bcma_core_pci_up(struct bcma_bus *bus); |
244 | extern void bcma_core_pci_down(struct bcma_bus *bus); | 244 | extern void bcma_core_pci_down(struct bcma_bus *bus); |
245 | extern void bcma_core_pci_power_save(struct bcma_bus *bus, bool up); | ||
245 | 246 | ||
246 | extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev); | 247 | extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev); |
247 | extern int bcma_core_pci_plat_dev_init(struct pci_dev *dev); | 248 | extern int bcma_core_pci_plat_dev_init(struct pci_dev *dev); |
diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h index 842de225055f..ded429966c1f 100644 --- a/include/linux/compiler-gcc4.h +++ b/include/linux/compiler-gcc4.h | |||
@@ -65,6 +65,21 @@ | |||
65 | #define __visible __attribute__((externally_visible)) | 65 | #define __visible __attribute__((externally_visible)) |
66 | #endif | 66 | #endif |
67 | 67 | ||
68 | /* | ||
69 | * GCC 'asm goto' miscompiles certain code sequences: | ||
70 | * | ||
71 | * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670 | ||
72 | * | ||
73 | * Work it around via a compiler barrier quirk suggested by Jakub Jelinek. | ||
74 | * Fixed in GCC 4.8.2 and later versions. | ||
75 | * | ||
76 | * (asm goto is automatically volatile - the naming reflects this.) | ||
77 | */ | ||
78 | #if GCC_VERSION <= 40801 | ||
79 | # define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) | ||
80 | #else | ||
81 | # define asm_volatile_goto(x...) do { asm goto(x); } while (0) | ||
82 | #endif | ||
68 | 83 | ||
69 | #ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP | 84 | #ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP |
70 | #if GCC_VERSION >= 40400 | 85 | #if GCC_VERSION >= 40400 |
diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 801ff9e73679..fbd25c3c2923 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/cpumask.h> | 18 | #include <linux/cpumask.h> |
19 | 19 | ||
20 | struct device; | 20 | struct device; |
21 | struct device_node; | ||
21 | 22 | ||
22 | struct cpu { | 23 | struct cpu { |
23 | int node_id; /* The node which contains the CPU */ | 24 | int node_id; /* The node which contains the CPU */ |
@@ -29,6 +30,8 @@ extern int register_cpu(struct cpu *cpu, int num); | |||
29 | extern struct device *get_cpu_device(unsigned cpu); | 30 | extern struct device *get_cpu_device(unsigned cpu); |
30 | extern bool cpu_is_hotpluggable(unsigned cpu); | 31 | extern bool cpu_is_hotpluggable(unsigned cpu); |
31 | extern bool arch_match_cpu_phys_id(int cpu, u64 phys_id); | 32 | extern bool arch_match_cpu_phys_id(int cpu, u64 phys_id); |
33 | extern bool arch_find_n_match_cpu_physical_id(struct device_node *cpun, | ||
34 | int cpu, unsigned int *thread); | ||
32 | 35 | ||
33 | extern int cpu_add_dev_attr(struct device_attribute *attr); | 36 | extern int cpu_add_dev_attr(struct device_attribute *attr); |
34 | extern void cpu_remove_dev_attr(struct device_attribute *attr); | 37 | extern void cpu_remove_dev_attr(struct device_attribute *attr); |
diff --git a/include/linux/intel-iommu.h b/include/linux/intel-iommu.h index 78e2ada50cd5..d380c5e68008 100644 --- a/include/linux/intel-iommu.h +++ b/include/linux/intel-iommu.h | |||
@@ -55,7 +55,7 @@ | |||
55 | #define DMAR_IQT_REG 0x88 /* Invalidation queue tail register */ | 55 | #define DMAR_IQT_REG 0x88 /* Invalidation queue tail register */ |
56 | #define DMAR_IQ_SHIFT 4 /* Invalidation queue head/tail shift */ | 56 | #define DMAR_IQ_SHIFT 4 /* Invalidation queue head/tail shift */ |
57 | #define DMAR_IQA_REG 0x90 /* Invalidation queue addr register */ | 57 | #define DMAR_IQA_REG 0x90 /* Invalidation queue addr register */ |
58 | #define DMAR_ICS_REG 0x98 /* Invalidation complete status register */ | 58 | #define DMAR_ICS_REG 0x9c /* Invalidation complete status register */ |
59 | #define DMAR_IRTA_REG 0xb8 /* Interrupt remapping table addr register */ | 59 | #define DMAR_IRTA_REG 0xb8 /* Interrupt remapping table addr register */ |
60 | 60 | ||
61 | #define OFFSET_STRIDE (9) | 61 | #define OFFSET_STRIDE (9) |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 482ad2d84a32..672ddc4de4af 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -439,6 +439,17 @@ static inline char *hex_byte_pack(char *buf, u8 byte) | |||
439 | return buf; | 439 | return buf; |
440 | } | 440 | } |
441 | 441 | ||
442 | extern const char hex_asc_upper[]; | ||
443 | #define hex_asc_upper_lo(x) hex_asc_upper[((x) & 0x0f)] | ||
444 | #define hex_asc_upper_hi(x) hex_asc_upper[((x) & 0xf0) >> 4] | ||
445 | |||
446 | static inline char *hex_byte_pack_upper(char *buf, u8 byte) | ||
447 | { | ||
448 | *buf++ = hex_asc_upper_hi(byte); | ||
449 | *buf++ = hex_asc_upper_lo(byte); | ||
450 | return buf; | ||
451 | } | ||
452 | |||
442 | static inline char * __deprecated pack_hex_byte(char *buf, u8 byte) | 453 | static inline char * __deprecated pack_hex_byte(char *buf, u8 byte) |
443 | { | 454 | { |
444 | return hex_byte_pack(buf, byte); | 455 | return hex_byte_pack(buf, byte); |
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h index 09c2300ddb37..cb358355ef43 100644 --- a/include/linux/miscdevice.h +++ b/include/linux/miscdevice.h | |||
@@ -45,6 +45,7 @@ | |||
45 | #define MAPPER_CTRL_MINOR 236 | 45 | #define MAPPER_CTRL_MINOR 236 |
46 | #define LOOP_CTRL_MINOR 237 | 46 | #define LOOP_CTRL_MINOR 237 |
47 | #define VHOST_NET_MINOR 238 | 47 | #define VHOST_NET_MINOR 238 |
48 | #define UHID_MINOR 239 | ||
48 | #define MISC_DYNAMIC_MINOR 255 | 49 | #define MISC_DYNAMIC_MINOR 255 |
49 | 50 | ||
50 | struct device; | 51 | struct device; |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 01fd84b566f7..49f52c8f4422 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -1455,7 +1455,8 @@ struct nfs_rpc_ops { | |||
1455 | struct inode * (*open_context) (struct inode *dir, | 1455 | struct inode * (*open_context) (struct inode *dir, |
1456 | struct nfs_open_context *ctx, | 1456 | struct nfs_open_context *ctx, |
1457 | int open_flags, | 1457 | int open_flags, |
1458 | struct iattr *iattr); | 1458 | struct iattr *iattr, |
1459 | int *); | ||
1459 | int (*have_delegation)(struct inode *, fmode_t); | 1460 | int (*have_delegation)(struct inode *, fmode_t); |
1460 | int (*return_delegation)(struct inode *); | 1461 | int (*return_delegation)(struct inode *); |
1461 | struct nfs_client *(*alloc_client) (const struct nfs_client_initdata *); | 1462 | struct nfs_client *(*alloc_client) (const struct nfs_client_initdata *); |
diff --git a/include/linux/of.h b/include/linux/of.h index b97f685c941f..f9279578b616 100644 --- a/include/linux/of.h +++ b/include/linux/of.h | |||
@@ -277,6 +277,7 @@ extern int of_n_size_cells(struct device_node *np); | |||
277 | extern const struct of_device_id *of_match_node( | 277 | extern const struct of_device_id *of_match_node( |
278 | const struct of_device_id *matches, const struct device_node *node); | 278 | const struct of_device_id *matches, const struct device_node *node); |
279 | extern int of_modalias_node(struct device_node *node, char *modalias, int len); | 279 | extern int of_modalias_node(struct device_node *node, char *modalias, int len); |
280 | extern void of_print_phandle_args(const char *msg, const struct of_phandle_args *args); | ||
280 | extern struct device_node *of_parse_phandle(const struct device_node *np, | 281 | extern struct device_node *of_parse_phandle(const struct device_node *np, |
281 | const char *phandle_name, | 282 | const char *phandle_name, |
282 | int index); | 283 | int index); |
diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h index fcd63baee5f2..c0d6dfe80895 100644 --- a/include/linux/of_irq.h +++ b/include/linux/of_irq.h | |||
@@ -8,22 +8,6 @@ | |||
8 | #include <linux/ioport.h> | 8 | #include <linux/ioport.h> |
9 | #include <linux/of.h> | 9 | #include <linux/of.h> |
10 | 10 | ||
11 | /** | ||
12 | * of_irq - container for device_node/irq_specifier pair for an irq controller | ||
13 | * @controller: pointer to interrupt controller device tree node | ||
14 | * @size: size of interrupt specifier | ||
15 | * @specifier: array of cells @size long specifing the specific interrupt | ||
16 | * | ||
17 | * This structure is returned when an interrupt is mapped. The controller | ||
18 | * field needs to be put() after use | ||
19 | */ | ||
20 | #define OF_MAX_IRQ_SPEC 4 /* We handle specifiers of at most 4 cells */ | ||
21 | struct of_irq { | ||
22 | struct device_node *controller; /* Interrupt controller node */ | ||
23 | u32 size; /* Specifier size */ | ||
24 | u32 specifier[OF_MAX_IRQ_SPEC]; /* Specifier copy */ | ||
25 | }; | ||
26 | |||
27 | typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); | 11 | typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); |
28 | 12 | ||
29 | /* | 13 | /* |
@@ -35,27 +19,22 @@ typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); | |||
35 | #if defined(CONFIG_PPC32) && defined(CONFIG_PPC_PMAC) | 19 | #if defined(CONFIG_PPC32) && defined(CONFIG_PPC_PMAC) |
36 | extern unsigned int of_irq_workarounds; | 20 | extern unsigned int of_irq_workarounds; |
37 | extern struct device_node *of_irq_dflt_pic; | 21 | extern struct device_node *of_irq_dflt_pic; |
38 | extern int of_irq_map_oldworld(struct device_node *device, int index, | 22 | extern int of_irq_parse_oldworld(struct device_node *device, int index, |
39 | struct of_irq *out_irq); | 23 | struct of_phandle_args *out_irq); |
40 | #else /* CONFIG_PPC32 && CONFIG_PPC_PMAC */ | 24 | #else /* CONFIG_PPC32 && CONFIG_PPC_PMAC */ |
41 | #define of_irq_workarounds (0) | 25 | #define of_irq_workarounds (0) |
42 | #define of_irq_dflt_pic (NULL) | 26 | #define of_irq_dflt_pic (NULL) |
43 | static inline int of_irq_map_oldworld(struct device_node *device, int index, | 27 | static inline int of_irq_parse_oldworld(struct device_node *device, int index, |
44 | struct of_irq *out_irq) | 28 | struct of_phandle_args *out_irq) |
45 | { | 29 | { |
46 | return -EINVAL; | 30 | return -EINVAL; |
47 | } | 31 | } |
48 | #endif /* CONFIG_PPC32 && CONFIG_PPC_PMAC */ | 32 | #endif /* CONFIG_PPC32 && CONFIG_PPC_PMAC */ |
49 | 33 | ||
50 | 34 | extern int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq); | |
51 | extern int of_irq_map_raw(struct device_node *parent, const __be32 *intspec, | 35 | extern int of_irq_parse_one(struct device_node *device, int index, |
52 | u32 ointsize, const __be32 *addr, | 36 | struct of_phandle_args *out_irq); |
53 | struct of_irq *out_irq); | 37 | extern unsigned int irq_create_of_mapping(struct of_phandle_args *irq_data); |
54 | extern int of_irq_map_one(struct device_node *device, int index, | ||
55 | struct of_irq *out_irq); | ||
56 | extern unsigned int irq_create_of_mapping(struct device_node *controller, | ||
57 | const u32 *intspec, | ||
58 | unsigned int intsize); | ||
59 | extern int of_irq_to_resource(struct device_node *dev, int index, | 38 | extern int of_irq_to_resource(struct device_node *dev, int index, |
60 | struct resource *r); | 39 | struct resource *r); |
61 | extern int of_irq_count(struct device_node *dev); | 40 | extern int of_irq_count(struct device_node *dev); |
diff --git a/include/linux/of_pci.h b/include/linux/of_pci.h index fd9c408631a0..1a1f5ffd5288 100644 --- a/include/linux/of_pci.h +++ b/include/linux/of_pci.h | |||
@@ -5,8 +5,9 @@ | |||
5 | #include <linux/msi.h> | 5 | #include <linux/msi.h> |
6 | 6 | ||
7 | struct pci_dev; | 7 | struct pci_dev; |
8 | struct of_irq; | 8 | struct of_phandle_args; |
9 | int of_irq_map_pci(const struct pci_dev *pdev, struct of_irq *out_irq); | 9 | int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq); |
10 | int of_irq_parse_and_map_pci(const struct pci_dev *dev, u8 slot, u8 pin); | ||
10 | 11 | ||
11 | struct device_node; | 12 | struct device_node; |
12 | struct device_node *of_pci_find_child_device(struct device_node *parent, | 13 | struct device_node *of_pci_find_child_device(struct device_node *parent, |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 866e85c5eb94..c8ba627c1d60 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -294,9 +294,31 @@ struct ring_buffer; | |||
294 | */ | 294 | */ |
295 | struct perf_event { | 295 | struct perf_event { |
296 | #ifdef CONFIG_PERF_EVENTS | 296 | #ifdef CONFIG_PERF_EVENTS |
297 | struct list_head group_entry; | 297 | /* |
298 | * entry onto perf_event_context::event_list; | ||
299 | * modifications require ctx->lock | ||
300 | * RCU safe iterations. | ||
301 | */ | ||
298 | struct list_head event_entry; | 302 | struct list_head event_entry; |
303 | |||
304 | /* | ||
305 | * XXX: group_entry and sibling_list should be mutually exclusive; | ||
306 | * either you're a sibling on a group, or you're the group leader. | ||
307 | * Rework the code to always use the same list element. | ||
308 | * | ||
309 | * Locked for modification by both ctx->mutex and ctx->lock; holding | ||
310 | * either sufficies for read. | ||
311 | */ | ||
312 | struct list_head group_entry; | ||
299 | struct list_head sibling_list; | 313 | struct list_head sibling_list; |
314 | |||
315 | /* | ||
316 | * We need storage to track the entries in perf_pmu_migrate_context; we | ||
317 | * cannot use the event_entry because of RCU and we want to keep the | ||
318 | * group in tact which avoids us using the other two entries. | ||
319 | */ | ||
320 | struct list_head migrate_entry; | ||
321 | |||
300 | struct hlist_node hlist_entry; | 322 | struct hlist_node hlist_entry; |
301 | int nr_siblings; | 323 | int nr_siblings; |
302 | int group_flags; | 324 | int group_flags; |
diff --git a/include/linux/random.h b/include/linux/random.h index 3b9377d6b7a5..6312dd9ba449 100644 --- a/include/linux/random.h +++ b/include/linux/random.h | |||
@@ -17,6 +17,7 @@ extern void add_interrupt_randomness(int irq, int irq_flags); | |||
17 | extern void get_random_bytes(void *buf, int nbytes); | 17 | extern void get_random_bytes(void *buf, int nbytes); |
18 | extern void get_random_bytes_arch(void *buf, int nbytes); | 18 | extern void get_random_bytes_arch(void *buf, int nbytes); |
19 | void generate_random_uuid(unsigned char uuid_out[16]); | 19 | void generate_random_uuid(unsigned char uuid_out[16]); |
20 | extern int random_int_secret_init(void); | ||
20 | 21 | ||
21 | #ifndef MODULE | 22 | #ifndef MODULE |
22 | extern const struct file_operations random_fops, urandom_fops; | 23 | extern const struct file_operations random_fops, urandom_fops; |
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index 67e13aa5a478..9bdad43ad228 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h | |||
@@ -40,6 +40,8 @@ enum regulator_status { | |||
40 | }; | 40 | }; |
41 | 41 | ||
42 | /** | 42 | /** |
43 | * struct regulator_linear_range - specify linear voltage ranges | ||
44 | * | ||
43 | * Specify a range of voltages for regulator_map_linar_range() and | 45 | * Specify a range of voltages for regulator_map_linar_range() and |
44 | * regulator_list_linear_range(). | 46 | * regulator_list_linear_range(). |
45 | * | 47 | * |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 2ddb48d9312c..c2d89335f637 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -498,7 +498,7 @@ struct sk_buff { | |||
498 | * headers if needed | 498 | * headers if needed |
499 | */ | 499 | */ |
500 | __u8 encapsulation:1; | 500 | __u8 encapsulation:1; |
501 | /* 7/9 bit hole (depending on ndisc_nodetype presence) */ | 501 | /* 6/8 bit hole (depending on ndisc_nodetype presence) */ |
502 | kmemcheck_bitfield_end(flags2); | 502 | kmemcheck_bitfield_end(flags2); |
503 | 503 | ||
504 | #if defined CONFIG_NET_DMA || defined CONFIG_NET_RX_BUSY_POLL | 504 | #if defined CONFIG_NET_DMA || defined CONFIG_NET_RX_BUSY_POLL |
diff --git a/include/linux/timex.h b/include/linux/timex.h index dd3edd7dfc94..9d3f1a5b6178 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h | |||
@@ -64,6 +64,20 @@ | |||
64 | 64 | ||
65 | #include <asm/timex.h> | 65 | #include <asm/timex.h> |
66 | 66 | ||
67 | #ifndef random_get_entropy | ||
68 | /* | ||
69 | * The random_get_entropy() function is used by the /dev/random driver | ||
70 | * in order to extract entropy via the relative unpredictability of | ||
71 | * when an interrupt takes places versus a high speed, fine-grained | ||
72 | * timing source or cycle counter. Since it will be occurred on every | ||
73 | * single interrupt, it must have a very low cost/overhead. | ||
74 | * | ||
75 | * By default we use get_cycles() for this purpose, but individual | ||
76 | * architectures may override this in their asm/timex.h header file. | ||
77 | */ | ||
78 | #define random_get_entropy() get_cycles() | ||
79 | #endif | ||
80 | |||
67 | /* | 81 | /* |
68 | * SHIFT_PLL is used as a dampening factor to define how much we | 82 | * SHIFT_PLL is used as a dampening factor to define how much we |
69 | * adjust the frequency correction for a given offset in PLL mode. | 83 | * adjust the frequency correction for a given offset in PLL mode. |
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h index 9cb2fe8ca944..e303eef94dd5 100644 --- a/include/linux/usb/usbnet.h +++ b/include/linux/usb/usbnet.h | |||
@@ -42,6 +42,7 @@ struct usbnet { | |||
42 | struct usb_host_endpoint *status; | 42 | struct usb_host_endpoint *status; |
43 | unsigned maxpacket; | 43 | unsigned maxpacket; |
44 | struct timer_list delay; | 44 | struct timer_list delay; |
45 | const char *padding_pkt; | ||
45 | 46 | ||
46 | /* protocol/interface state */ | 47 | /* protocol/interface state */ |
47 | struct net_device *net; | 48 | struct net_device *net; |
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index 80cf8173a65b..2c02f3a8d2ba 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h | |||
@@ -65,15 +65,8 @@ struct pci_dev; | |||
65 | * out of the arbitration process (and can be safe to take | 65 | * out of the arbitration process (and can be safe to take |
66 | * interrupts at any time. | 66 | * interrupts at any time. |
67 | */ | 67 | */ |
68 | #if defined(CONFIG_VGA_ARB) | ||
69 | extern void vga_set_legacy_decoding(struct pci_dev *pdev, | 68 | extern void vga_set_legacy_decoding(struct pci_dev *pdev, |
70 | unsigned int decodes); | 69 | unsigned int decodes); |
71 | #else | ||
72 | static inline void vga_set_legacy_decoding(struct pci_dev *pdev, | ||
73 | unsigned int decodes) | ||
74 | { | ||
75 | } | ||
76 | #endif | ||
77 | 70 | ||
78 | /** | 71 | /** |
79 | * vga_get - acquire & locks VGA resources | 72 | * vga_get - acquire & locks VGA resources |
diff --git a/include/net/addrconf.h b/include/net/addrconf.h index fb314de2b61b..86505bfa5d2c 100644 --- a/include/net/addrconf.h +++ b/include/net/addrconf.h | |||
@@ -67,6 +67,10 @@ int ipv6_chk_addr(struct net *net, const struct in6_addr *addr, | |||
67 | int ipv6_chk_home_addr(struct net *net, const struct in6_addr *addr); | 67 | int ipv6_chk_home_addr(struct net *net, const struct in6_addr *addr); |
68 | #endif | 68 | #endif |
69 | 69 | ||
70 | bool ipv6_chk_custom_prefix(const struct in6_addr *addr, | ||
71 | const unsigned int prefix_len, | ||
72 | struct net_device *dev); | ||
73 | |||
70 | int ipv6_chk_prefix(const struct in6_addr *addr, struct net_device *dev); | 74 | int ipv6_chk_prefix(const struct in6_addr *addr, struct net_device *dev); |
71 | 75 | ||
72 | struct inet6_ifaddr *ipv6_get_ifaddr(struct net *net, | 76 | struct inet6_ifaddr *ipv6_get_ifaddr(struct net *net, |
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index aaeaf0938ec0..15f10841e2b5 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h | |||
@@ -104,6 +104,7 @@ enum { | |||
104 | enum { | 104 | enum { |
105 | HCI_SETUP, | 105 | HCI_SETUP, |
106 | HCI_AUTO_OFF, | 106 | HCI_AUTO_OFF, |
107 | HCI_RFKILLED, | ||
107 | HCI_MGMT, | 108 | HCI_MGMT, |
108 | HCI_PAIRABLE, | 109 | HCI_PAIRABLE, |
109 | HCI_SERVICE_CACHE, | 110 | HCI_SERVICE_CACHE, |
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index f0d70f066f3d..9c4d37ec45a1 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h | |||
@@ -723,8 +723,6 @@ struct ip_vs_dest_dst { | |||
723 | struct rcu_head rcu_head; | 723 | struct rcu_head rcu_head; |
724 | }; | 724 | }; |
725 | 725 | ||
726 | /* In grace period after removing */ | ||
727 | #define IP_VS_DEST_STATE_REMOVING 0x01 | ||
728 | /* | 726 | /* |
729 | * The real server destination forwarding entry | 727 | * The real server destination forwarding entry |
730 | * with ip address, port number, and so on. | 728 | * with ip address, port number, and so on. |
@@ -742,7 +740,7 @@ struct ip_vs_dest { | |||
742 | 740 | ||
743 | atomic_t refcnt; /* reference counter */ | 741 | atomic_t refcnt; /* reference counter */ |
744 | struct ip_vs_stats stats; /* statistics */ | 742 | struct ip_vs_stats stats; /* statistics */ |
745 | unsigned long state; /* state flags */ | 743 | unsigned long idle_start; /* start time, jiffies */ |
746 | 744 | ||
747 | /* connection counters and thresholds */ | 745 | /* connection counters and thresholds */ |
748 | atomic_t activeconns; /* active connections */ | 746 | atomic_t activeconns; /* active connections */ |
@@ -756,14 +754,13 @@ struct ip_vs_dest { | |||
756 | struct ip_vs_dest_dst __rcu *dest_dst; /* cached dst info */ | 754 | struct ip_vs_dest_dst __rcu *dest_dst; /* cached dst info */ |
757 | 755 | ||
758 | /* for virtual service */ | 756 | /* for virtual service */ |
759 | struct ip_vs_service *svc; /* service it belongs to */ | 757 | struct ip_vs_service __rcu *svc; /* service it belongs to */ |
760 | __u16 protocol; /* which protocol (TCP/UDP) */ | 758 | __u16 protocol; /* which protocol (TCP/UDP) */ |
761 | __be16 vport; /* virtual port number */ | 759 | __be16 vport; /* virtual port number */ |
762 | union nf_inet_addr vaddr; /* virtual IP address */ | 760 | union nf_inet_addr vaddr; /* virtual IP address */ |
763 | __u32 vfwmark; /* firewall mark of service */ | 761 | __u32 vfwmark; /* firewall mark of service */ |
764 | 762 | ||
765 | struct list_head t_list; /* in dest_trash */ | 763 | struct list_head t_list; /* in dest_trash */ |
766 | struct rcu_head rcu_head; | ||
767 | unsigned int in_rs_table:1; /* we are in rs_table */ | 764 | unsigned int in_rs_table:1; /* we are in rs_table */ |
768 | }; | 765 | }; |
769 | 766 | ||
@@ -1649,7 +1646,7 @@ static inline void ip_vs_conn_drop_conntrack(struct ip_vs_conn *cp) | |||
1649 | /* CONFIG_IP_VS_NFCT */ | 1646 | /* CONFIG_IP_VS_NFCT */ |
1650 | #endif | 1647 | #endif |
1651 | 1648 | ||
1652 | static inline unsigned int | 1649 | static inline int |
1653 | ip_vs_dest_conn_overhead(struct ip_vs_dest *dest) | 1650 | ip_vs_dest_conn_overhead(struct ip_vs_dest *dest) |
1654 | { | 1651 | { |
1655 | /* | 1652 | /* |
diff --git a/include/net/mrp.h b/include/net/mrp.h index 4fbf02aa2ec1..0f7558b638ae 100644 --- a/include/net/mrp.h +++ b/include/net/mrp.h | |||
@@ -112,6 +112,7 @@ struct mrp_applicant { | |||
112 | struct mrp_application *app; | 112 | struct mrp_application *app; |
113 | struct net_device *dev; | 113 | struct net_device *dev; |
114 | struct timer_list join_timer; | 114 | struct timer_list join_timer; |
115 | struct timer_list periodic_timer; | ||
115 | 116 | ||
116 | spinlock_t lock; | 117 | spinlock_t lock; |
117 | struct sk_buff_head queue; | 118 | struct sk_buff_head queue; |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 1313456a0994..9d22f08896c6 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -74,6 +74,7 @@ struct net { | |||
74 | struct hlist_head *dev_index_head; | 74 | struct hlist_head *dev_index_head; |
75 | unsigned int dev_base_seq; /* protected by rtnl_mutex */ | 75 | unsigned int dev_base_seq; /* protected by rtnl_mutex */ |
76 | int ifindex; | 76 | int ifindex; |
77 | unsigned int dev_unreg_count; | ||
77 | 78 | ||
78 | /* core fib_rules */ | 79 | /* core fib_rules */ |
79 | struct list_head rules_ops; | 80 | struct list_head rules_ops; |
diff --git a/include/net/netfilter/nf_conntrack_synproxy.h b/include/net/netfilter/nf_conntrack_synproxy.h index 806f54a290d6..f572f313d6f1 100644 --- a/include/net/netfilter/nf_conntrack_synproxy.h +++ b/include/net/netfilter/nf_conntrack_synproxy.h | |||
@@ -56,7 +56,7 @@ struct synproxy_options { | |||
56 | 56 | ||
57 | struct tcphdr; | 57 | struct tcphdr; |
58 | struct xt_synproxy_info; | 58 | struct xt_synproxy_info; |
59 | extern void synproxy_parse_options(const struct sk_buff *skb, unsigned int doff, | 59 | extern bool synproxy_parse_options(const struct sk_buff *skb, unsigned int doff, |
60 | const struct tcphdr *th, | 60 | const struct tcphdr *th, |
61 | struct synproxy_options *opts); | 61 | struct synproxy_options *opts); |
62 | extern unsigned int synproxy_options_size(const struct synproxy_options *opts); | 62 | extern unsigned int synproxy_options_size(const struct synproxy_options *opts); |
diff --git a/include/net/secure_seq.h b/include/net/secure_seq.h index 6ca975bebd37..c2e542b27a5a 100644 --- a/include/net/secure_seq.h +++ b/include/net/secure_seq.h | |||
@@ -3,7 +3,6 @@ | |||
3 | 3 | ||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | 5 | ||
6 | extern void net_secret_init(void); | ||
7 | extern __u32 secure_ip_id(__be32 daddr); | 6 | extern __u32 secure_ip_id(__be32 daddr); |
8 | extern __u32 secure_ipv6_id(const __be32 daddr[4]); | 7 | extern __u32 secure_ipv6_id(const __be32 daddr[4]); |
9 | extern u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport); | 8 | extern u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport); |
diff --git a/include/net/sock.h b/include/net/sock.h index 6ba2e7b0e2b1..1d37a8086bed 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -409,6 +409,11 @@ struct sock { | |||
409 | void (*sk_destruct)(struct sock *sk); | 409 | void (*sk_destruct)(struct sock *sk); |
410 | }; | 410 | }; |
411 | 411 | ||
412 | #define __sk_user_data(sk) ((*((void __rcu **)&(sk)->sk_user_data))) | ||
413 | |||
414 | #define rcu_dereference_sk_user_data(sk) rcu_dereference(__sk_user_data((sk))) | ||
415 | #define rcu_assign_sk_user_data(sk, ptr) rcu_assign_pointer(__sk_user_data((sk)), ptr) | ||
416 | |||
412 | /* | 417 | /* |
413 | * SK_CAN_REUSE and SK_NO_REUSE on a socket mean that the socket is OK | 418 | * SK_CAN_REUSE and SK_NO_REUSE on a socket mean that the socket is OK |
414 | * or not whether his port will be reused by someone else. SK_FORCE_REUSE | 419 | * or not whether his port will be reused by someone else. SK_FORCE_REUSE |