diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/acpi_dma.h | 4 | ||||
| -rw-r--r-- | include/linux/aer.h | 5 | ||||
| -rw-r--r-- | include/linux/cgroup.h | 2 | ||||
| -rw-r--r-- | include/linux/kernel.h | 5 | ||||
| -rw-r--r-- | include/linux/list.h | 11 | ||||
| -rw-r--r-- | include/linux/netfilter_ipv6.h | 16 | ||||
| -rw-r--r-- | include/linux/platform_data/clk-lpss.h | 5 | ||||
| -rw-r--r-- | include/linux/platform_data/serial-omap.h | 2 | ||||
| -rw-r--r-- | include/linux/rculist_nulls.h | 7 | ||||
| -rw-r--r-- | include/linux/rio.h | 18 | ||||
| -rw-r--r-- | include/linux/rio_drv.h | 1 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 15 | ||||
| -rw-r--r-- | include/linux/wait.h | 16 |
13 files changed, 93 insertions, 14 deletions
diff --git a/include/linux/acpi_dma.h b/include/linux/acpi_dma.h index d09deabc7bf6..fb0298082916 100644 --- a/include/linux/acpi_dma.h +++ b/include/linux/acpi_dma.h | |||
| @@ -37,6 +37,8 @@ struct acpi_dma_spec { | |||
| 37 | * @dev: struct device of this controller | 37 | * @dev: struct device of this controller |
| 38 | * @acpi_dma_xlate: callback function to find a suitable channel | 38 | * @acpi_dma_xlate: callback function to find a suitable channel |
| 39 | * @data: private data used by a callback function | 39 | * @data: private data used by a callback function |
| 40 | * @base_request_line: first supported request line (CSRT) | ||
| 41 | * @end_request_line: last supported request line (CSRT) | ||
| 40 | */ | 42 | */ |
| 41 | struct acpi_dma { | 43 | struct acpi_dma { |
| 42 | struct list_head dma_controllers; | 44 | struct list_head dma_controllers; |
| @@ -44,6 +46,8 @@ struct acpi_dma { | |||
| 44 | struct dma_chan *(*acpi_dma_xlate) | 46 | struct dma_chan *(*acpi_dma_xlate) |
| 45 | (struct acpi_dma_spec *, struct acpi_dma *); | 47 | (struct acpi_dma_spec *, struct acpi_dma *); |
| 46 | void *data; | 48 | void *data; |
| 49 | unsigned short base_request_line; | ||
| 50 | unsigned short end_request_line; | ||
| 47 | }; | 51 | }; |
| 48 | 52 | ||
| 49 | /* Used with acpi_dma_simple_xlate() */ | 53 | /* Used with acpi_dma_simple_xlate() */ |
diff --git a/include/linux/aer.h b/include/linux/aer.h index ec10e1b24c1c..737f90ab4b62 100644 --- a/include/linux/aer.h +++ b/include/linux/aer.h | |||
| @@ -49,10 +49,11 @@ static inline int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev) | |||
| 49 | } | 49 | } |
| 50 | #endif | 50 | #endif |
| 51 | 51 | ||
| 52 | extern void cper_print_aer(const char *prefix, struct pci_dev *dev, | 52 | extern void cper_print_aer(struct pci_dev *dev, |
| 53 | int cper_severity, struct aer_capability_regs *aer); | 53 | int cper_severity, struct aer_capability_regs *aer); |
| 54 | extern int cper_severity_to_aer(int cper_severity); | 54 | extern int cper_severity_to_aer(int cper_severity); |
| 55 | extern void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, | 55 | extern void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, |
| 56 | int severity); | 56 | int severity, |
| 57 | struct aer_capability_regs *aer_regs); | ||
| 57 | #endif //_AER_H_ | 58 | #endif //_AER_H_ |
| 58 | 59 | ||
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 5047355b9a0f..8bda1294c035 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
| @@ -707,7 +707,7 @@ struct cgroup *cgroup_rightmost_descendant(struct cgroup *pos); | |||
| 707 | * | 707 | * |
| 708 | * If a subsystem synchronizes against the parent in its ->css_online() and | 708 | * If a subsystem synchronizes against the parent in its ->css_online() and |
| 709 | * before starting iterating, and synchronizes against @pos on each | 709 | * before starting iterating, and synchronizes against @pos on each |
| 710 | * iteration, any descendant cgroup which finished ->css_offline() is | 710 | * iteration, any descendant cgroup which finished ->css_online() is |
| 711 | * guaranteed to be visible in the future iterations. | 711 | * guaranteed to be visible in the future iterations. |
| 712 | * | 712 | * |
| 713 | * In other words, the following guarantees that a descendant can't escape | 713 | * In other words, the following guarantees that a descendant can't escape |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index e96329ceb28c..e9ef6d6b51d5 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -562,6 +562,9 @@ int __trace_bprintk(unsigned long ip, const char *fmt, ...); | |||
| 562 | extern __printf(2, 3) | 562 | extern __printf(2, 3) |
| 563 | int __trace_printk(unsigned long ip, const char *fmt, ...); | 563 | int __trace_printk(unsigned long ip, const char *fmt, ...); |
| 564 | 564 | ||
| 565 | extern int __trace_bputs(unsigned long ip, const char *str); | ||
| 566 | extern int __trace_puts(unsigned long ip, const char *str, int size); | ||
| 567 | |||
| 565 | /** | 568 | /** |
| 566 | * trace_puts - write a string into the ftrace buffer | 569 | * trace_puts - write a string into the ftrace buffer |
| 567 | * @str: the string to record | 570 | * @str: the string to record |
| @@ -587,8 +590,6 @@ int __trace_printk(unsigned long ip, const char *fmt, ...); | |||
| 587 | * (1 when __trace_bputs is used, strlen(str) when __trace_puts is used) | 590 | * (1 when __trace_bputs is used, strlen(str) when __trace_puts is used) |
| 588 | */ | 591 | */ |
| 589 | 592 | ||
| 590 | extern int __trace_bputs(unsigned long ip, const char *str); | ||
| 591 | extern int __trace_puts(unsigned long ip, const char *str, int size); | ||
| 592 | #define trace_puts(str) ({ \ | 593 | #define trace_puts(str) ({ \ |
| 593 | static const char *trace_printk_fmt \ | 594 | static const char *trace_printk_fmt \ |
| 594 | __attribute__((section("__trace_printk_fmt"))) = \ | 595 | __attribute__((section("__trace_printk_fmt"))) = \ |
diff --git a/include/linux/list.h b/include/linux/list.h index 6a1f8df9144b..b83e5657365a 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
| @@ -362,6 +362,17 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
| 362 | list_entry((ptr)->next, type, member) | 362 | list_entry((ptr)->next, type, member) |
| 363 | 363 | ||
| 364 | /** | 364 | /** |
| 365 | * list_first_entry_or_null - get the first element from a list | ||
| 366 | * @ptr: the list head to take the element from. | ||
| 367 | * @type: the type of the struct this is embedded in. | ||
| 368 | * @member: the name of the list_struct within the struct. | ||
| 369 | * | ||
| 370 | * Note that if the list is empty, it returns NULL. | ||
| 371 | */ | ||
| 372 | #define list_first_entry_or_null(ptr, type, member) \ | ||
| 373 | (!list_empty(ptr) ? list_first_entry(ptr, type, member) : NULL) | ||
| 374 | |||
| 375 | /** | ||
| 365 | * list_for_each - iterate over a list | 376 | * list_for_each - iterate over a list |
| 366 | * @pos: the &struct list_head to use as a loop cursor. | 377 | * @pos: the &struct list_head to use as a loop cursor. |
| 367 | * @head: the head for your list. | 378 | * @head: the head for your list. |
diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h index 98ffb54988b6..2d4df6ce043e 100644 --- a/include/linux/netfilter_ipv6.h +++ b/include/linux/netfilter_ipv6.h | |||
| @@ -17,6 +17,22 @@ extern __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook, | |||
| 17 | 17 | ||
| 18 | extern int ipv6_netfilter_init(void); | 18 | extern int ipv6_netfilter_init(void); |
| 19 | extern void ipv6_netfilter_fini(void); | 19 | extern void ipv6_netfilter_fini(void); |
| 20 | |||
| 21 | /* | ||
| 22 | * Hook functions for ipv6 to allow xt_* modules to be built-in even | ||
| 23 | * if IPv6 is a module. | ||
| 24 | */ | ||
| 25 | struct nf_ipv6_ops { | ||
| 26 | int (*chk_addr)(struct net *net, const struct in6_addr *addr, | ||
| 27 | const struct net_device *dev, int strict); | ||
| 28 | }; | ||
| 29 | |||
| 30 | extern const struct nf_ipv6_ops __rcu *nf_ipv6_ops; | ||
| 31 | static inline const struct nf_ipv6_ops *nf_get_ipv6_ops(void) | ||
| 32 | { | ||
| 33 | return rcu_dereference(nf_ipv6_ops); | ||
| 34 | } | ||
| 35 | |||
| 20 | #else /* CONFIG_NETFILTER */ | 36 | #else /* CONFIG_NETFILTER */ |
| 21 | static inline int ipv6_netfilter_init(void) { return 0; } | 37 | static inline int ipv6_netfilter_init(void) { return 0; } |
| 22 | static inline void ipv6_netfilter_fini(void) { return; } | 38 | static inline void ipv6_netfilter_fini(void) { return; } |
diff --git a/include/linux/platform_data/clk-lpss.h b/include/linux/platform_data/clk-lpss.h index 528e73ce46d2..23901992b9dd 100644 --- a/include/linux/platform_data/clk-lpss.h +++ b/include/linux/platform_data/clk-lpss.h | |||
| @@ -13,6 +13,11 @@ | |||
| 13 | #ifndef __CLK_LPSS_H | 13 | #ifndef __CLK_LPSS_H |
| 14 | #define __CLK_LPSS_H | 14 | #define __CLK_LPSS_H |
| 15 | 15 | ||
| 16 | struct lpss_clk_data { | ||
| 17 | const char *name; | ||
| 18 | struct clk *clk; | ||
| 19 | }; | ||
| 20 | |||
| 16 | extern int lpt_clk_init(void); | 21 | extern int lpt_clk_init(void); |
| 17 | 22 | ||
| 18 | #endif /* __CLK_LPSS_H */ | 23 | #endif /* __CLK_LPSS_H */ |
diff --git a/include/linux/platform_data/serial-omap.h b/include/linux/platform_data/serial-omap.h index ff9b0aab5281..c860c1b314c0 100644 --- a/include/linux/platform_data/serial-omap.h +++ b/include/linux/platform_data/serial-omap.h | |||
| @@ -43,8 +43,6 @@ struct omap_uart_port_info { | |||
| 43 | int DTR_present; | 43 | int DTR_present; |
| 44 | 44 | ||
| 45 | int (*get_context_loss_count)(struct device *); | 45 | int (*get_context_loss_count)(struct device *); |
| 46 | void (*set_forceidle)(struct device *); | ||
| 47 | void (*set_noidle)(struct device *); | ||
| 48 | void (*enable_wakeup)(struct device *, bool); | 46 | void (*enable_wakeup)(struct device *, bool); |
| 49 | }; | 47 | }; |
| 50 | 48 | ||
diff --git a/include/linux/rculist_nulls.h b/include/linux/rculist_nulls.h index 2ae13714828b..1c33dd7da4a7 100644 --- a/include/linux/rculist_nulls.h +++ b/include/linux/rculist_nulls.h | |||
| @@ -105,9 +105,14 @@ static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n, | |||
| 105 | * @head: the head for your list. | 105 | * @head: the head for your list. |
| 106 | * @member: the name of the hlist_nulls_node within the struct. | 106 | * @member: the name of the hlist_nulls_node within the struct. |
| 107 | * | 107 | * |
| 108 | * The barrier() is needed to make sure compiler doesn't cache first element [1], | ||
| 109 | * as this loop can be restarted [2] | ||
| 110 | * [1] Documentation/atomic_ops.txt around line 114 | ||
| 111 | * [2] Documentation/RCU/rculist_nulls.txt around line 146 | ||
| 108 | */ | 112 | */ |
| 109 | #define hlist_nulls_for_each_entry_rcu(tpos, pos, head, member) \ | 113 | #define hlist_nulls_for_each_entry_rcu(tpos, pos, head, member) \ |
| 110 | for (pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \ | 114 | for (({barrier();}), \ |
| 115 | pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \ | ||
| 111 | (!is_a_nulls(pos)) && \ | 116 | (!is_a_nulls(pos)) && \ |
| 112 | ({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1; }); \ | 117 | ({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1; }); \ |
| 113 | pos = rcu_dereference_raw(hlist_nulls_next_rcu(pos))) | 118 | pos = rcu_dereference_raw(hlist_nulls_next_rcu(pos))) |
diff --git a/include/linux/rio.h b/include/linux/rio.h index a3e784278667..18e099342e6f 100644 --- a/include/linux/rio.h +++ b/include/linux/rio.h | |||
| @@ -83,7 +83,6 @@ | |||
| 83 | 83 | ||
| 84 | extern struct bus_type rio_bus_type; | 84 | extern struct bus_type rio_bus_type; |
| 85 | extern struct device rio_bus; | 85 | extern struct device rio_bus; |
| 86 | extern struct list_head rio_devices; /* list of all devices */ | ||
| 87 | 86 | ||
| 88 | struct rio_mport; | 87 | struct rio_mport; |
| 89 | struct rio_dev; | 88 | struct rio_dev; |
| @@ -237,6 +236,7 @@ enum rio_phy_type { | |||
| 237 | * @name: Port name string | 236 | * @name: Port name string |
| 238 | * @priv: Master port private data | 237 | * @priv: Master port private data |
| 239 | * @dma: DMA device associated with mport | 238 | * @dma: DMA device associated with mport |
| 239 | * @nscan: RapidIO network enumeration/discovery operations | ||
| 240 | */ | 240 | */ |
| 241 | struct rio_mport { | 241 | struct rio_mport { |
| 242 | struct list_head dbells; /* list of doorbell events */ | 242 | struct list_head dbells; /* list of doorbell events */ |
| @@ -262,8 +262,14 @@ struct rio_mport { | |||
| 262 | #ifdef CONFIG_RAPIDIO_DMA_ENGINE | 262 | #ifdef CONFIG_RAPIDIO_DMA_ENGINE |
| 263 | struct dma_device dma; | 263 | struct dma_device dma; |
| 264 | #endif | 264 | #endif |
| 265 | struct rio_scan *nscan; | ||
| 265 | }; | 266 | }; |
| 266 | 267 | ||
| 268 | /* | ||
| 269 | * Enumeration/discovery control flags | ||
| 270 | */ | ||
| 271 | #define RIO_SCAN_ENUM_NO_WAIT 0x00000001 /* Do not wait for enum completed */ | ||
| 272 | |||
| 267 | struct rio_id_table { | 273 | struct rio_id_table { |
| 268 | u16 start; /* logical minimal id */ | 274 | u16 start; /* logical minimal id */ |
| 269 | u32 max; /* max number of IDs in table */ | 275 | u32 max; /* max number of IDs in table */ |
| @@ -460,6 +466,16 @@ static inline struct rio_mport *dma_to_mport(struct dma_device *ddev) | |||
| 460 | } | 466 | } |
| 461 | #endif /* CONFIG_RAPIDIO_DMA_ENGINE */ | 467 | #endif /* CONFIG_RAPIDIO_DMA_ENGINE */ |
| 462 | 468 | ||
| 469 | /** | ||
| 470 | * struct rio_scan - RIO enumeration and discovery operations | ||
| 471 | * @enumerate: Callback to perform RapidIO fabric enumeration. | ||
| 472 | * @discover: Callback to perform RapidIO fabric discovery. | ||
| 473 | */ | ||
| 474 | struct rio_scan { | ||
| 475 | int (*enumerate)(struct rio_mport *mport, u32 flags); | ||
| 476 | int (*discover)(struct rio_mport *mport, u32 flags); | ||
| 477 | }; | ||
| 478 | |||
| 463 | /* Architecture and hardware-specific functions */ | 479 | /* Architecture and hardware-specific functions */ |
| 464 | extern int rio_register_mport(struct rio_mport *); | 480 | extern int rio_register_mport(struct rio_mport *); |
| 465 | extern int rio_open_inb_mbox(struct rio_mport *, void *, int, int); | 481 | extern int rio_open_inb_mbox(struct rio_mport *, void *, int, int); |
diff --git a/include/linux/rio_drv.h b/include/linux/rio_drv.h index b75c05920ab5..5059994fe297 100644 --- a/include/linux/rio_drv.h +++ b/include/linux/rio_drv.h | |||
| @@ -433,5 +433,6 @@ extern u16 rio_local_get_device_id(struct rio_mport *port); | |||
| 433 | extern struct rio_dev *rio_get_device(u16 vid, u16 did, struct rio_dev *from); | 433 | extern struct rio_dev *rio_get_device(u16 vid, u16 did, struct rio_dev *from); |
| 434 | extern struct rio_dev *rio_get_asm(u16 vid, u16 did, u16 asm_vid, u16 asm_did, | 434 | extern struct rio_dev *rio_get_asm(u16 vid, u16 did, u16 asm_vid, u16 asm_did, |
| 435 | struct rio_dev *from); | 435 | struct rio_dev *from); |
| 436 | extern int rio_init_mports(void); | ||
| 436 | 437 | ||
| 437 | #endif /* LINUX_RIO_DRV_H */ | 438 | #endif /* LINUX_RIO_DRV_H */ |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index b9997907a0f1..9995834d2cb6 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -2758,6 +2758,21 @@ static inline int skb_tnl_header_len(const struct sk_buff *inner_skb) | |||
| 2758 | SKB_GSO_CB(inner_skb)->mac_offset; | 2758 | SKB_GSO_CB(inner_skb)->mac_offset; |
| 2759 | } | 2759 | } |
| 2760 | 2760 | ||
| 2761 | static inline int gso_pskb_expand_head(struct sk_buff *skb, int extra) | ||
| 2762 | { | ||
| 2763 | int new_headroom, headroom; | ||
| 2764 | int ret; | ||
| 2765 | |||
| 2766 | headroom = skb_headroom(skb); | ||
| 2767 | ret = pskb_expand_head(skb, extra, 0, GFP_ATOMIC); | ||
| 2768 | if (ret) | ||
| 2769 | return ret; | ||
| 2770 | |||
| 2771 | new_headroom = skb_headroom(skb); | ||
| 2772 | SKB_GSO_CB(skb)->mac_offset += (new_headroom - headroom); | ||
| 2773 | return 0; | ||
| 2774 | } | ||
| 2775 | |||
| 2761 | static inline bool skb_is_gso(const struct sk_buff *skb) | 2776 | static inline bool skb_is_gso(const struct sk_buff *skb) |
| 2762 | { | 2777 | { |
| 2763 | return skb_shinfo(skb)->gso_size; | 2778 | return skb_shinfo(skb)->gso_size; |
diff --git a/include/linux/wait.h b/include/linux/wait.h index ac38be2692d8..1133695eb067 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h | |||
| @@ -217,6 +217,8 @@ do { \ | |||
| 217 | if (!ret) \ | 217 | if (!ret) \ |
| 218 | break; \ | 218 | break; \ |
| 219 | } \ | 219 | } \ |
| 220 | if (!ret && (condition)) \ | ||
| 221 | ret = 1; \ | ||
| 220 | finish_wait(&wq, &__wait); \ | 222 | finish_wait(&wq, &__wait); \ |
| 221 | } while (0) | 223 | } while (0) |
| 222 | 224 | ||
| @@ -233,8 +235,9 @@ do { \ | |||
| 233 | * wake_up() has to be called after changing any variable that could | 235 | * wake_up() has to be called after changing any variable that could |
| 234 | * change the result of the wait condition. | 236 | * change the result of the wait condition. |
| 235 | * | 237 | * |
| 236 | * The function returns 0 if the @timeout elapsed, and the remaining | 238 | * The function returns 0 if the @timeout elapsed, or the remaining |
| 237 | * jiffies if the condition evaluated to true before the timeout elapsed. | 239 | * jiffies (at least 1) if the @condition evaluated to %true before |
| 240 | * the @timeout elapsed. | ||
| 238 | */ | 241 | */ |
| 239 | #define wait_event_timeout(wq, condition, timeout) \ | 242 | #define wait_event_timeout(wq, condition, timeout) \ |
| 240 | ({ \ | 243 | ({ \ |
| @@ -302,6 +305,8 @@ do { \ | |||
| 302 | ret = -ERESTARTSYS; \ | 305 | ret = -ERESTARTSYS; \ |
| 303 | break; \ | 306 | break; \ |
| 304 | } \ | 307 | } \ |
| 308 | if (!ret && (condition)) \ | ||
| 309 | ret = 1; \ | ||
| 305 | finish_wait(&wq, &__wait); \ | 310 | finish_wait(&wq, &__wait); \ |
| 306 | } while (0) | 311 | } while (0) |
| 307 | 312 | ||
| @@ -318,9 +323,10 @@ do { \ | |||
| 318 | * wake_up() has to be called after changing any variable that could | 323 | * wake_up() has to be called after changing any variable that could |
| 319 | * change the result of the wait condition. | 324 | * change the result of the wait condition. |
| 320 | * | 325 | * |
| 321 | * The function returns 0 if the @timeout elapsed, -ERESTARTSYS if it | 326 | * Returns: |
| 322 | * was interrupted by a signal, and the remaining jiffies otherwise | 327 | * 0 if the @timeout elapsed, -%ERESTARTSYS if it was interrupted by |
| 323 | * if the condition evaluated to true before the timeout elapsed. | 328 | * a signal, or the remaining jiffies (at least 1) if the @condition |
| 329 | * evaluated to %true before the @timeout elapsed. | ||
| 324 | */ | 330 | */ |
| 325 | #define wait_event_interruptible_timeout(wq, condition, timeout) \ | 331 | #define wait_event_interruptible_timeout(wq, condition, timeout) \ |
| 326 | ({ \ | 332 | ({ \ |
