diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-10-09 16:13:30 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-10-09 16:13:30 -0400 |
commit | 670aee3fc7ac37ae947f8b582d87b51d5fa36524 (patch) | |
tree | 9885998483d4506208e5aef9c13c8a86adea20bb /include/linux | |
parent | d61e87ac53292a3138b4354b687558973686b6ca (diff) | |
parent | 55582bccdc1e89ecc973c260d46e247df675d4df (diff) |
Merge branches 'pm-devfreq' and 'pm-cpufreq'
* pm-devfreq:
PM / devfreq: fix double kfree
PM / devfreq: Fix governor_store()
* pm-cpufreq:
cpufreq: prevent lockup on reading scaling_available_frequencies
cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/acpi.h | 1 | ||||
-rw-r--r-- | include/linux/blk-mq.h | 5 | ||||
-rw-r--r-- | include/linux/blkdev.h | 2 | ||||
-rw-r--r-- | include/linux/iova.h | 4 | ||||
-rw-r--r-- | include/linux/memcontrol.h | 1 | ||||
-rw-r--r-- | include/linux/mlx5/device.h | 11 | ||||
-rw-r--r-- | include/linux/mlx5/driver.h | 1 | ||||
-rw-r--r-- | include/linux/mm.h | 21 | ||||
-rw-r--r-- | include/linux/rcupdate.h | 11 | ||||
-rw-r--r-- | include/linux/skbuff.h | 2 | ||||
-rw-r--r-- | include/linux/string.h | 3 |
11 files changed, 36 insertions, 26 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 7235c4851460..43856d19cf4d 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -217,6 +217,7 @@ struct pci_dev; | |||
217 | 217 | ||
218 | int acpi_pci_irq_enable (struct pci_dev *dev); | 218 | int acpi_pci_irq_enable (struct pci_dev *dev); |
219 | void acpi_penalize_isa_irq(int irq, int active); | 219 | void acpi_penalize_isa_irq(int irq, int active); |
220 | bool acpi_isa_irq_available(int irq); | ||
220 | void acpi_penalize_sci_irq(int irq, int trigger, int polarity); | 221 | void acpi_penalize_sci_irq(int irq, int trigger, int polarity); |
221 | void acpi_pci_irq_disable (struct pci_dev *dev); | 222 | void acpi_pci_irq_disable (struct pci_dev *dev); |
222 | 223 | ||
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index 37d1602c4f7a..5e7d43ab61c0 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h | |||
@@ -145,7 +145,6 @@ enum { | |||
145 | BLK_MQ_F_SHOULD_MERGE = 1 << 0, | 145 | BLK_MQ_F_SHOULD_MERGE = 1 << 0, |
146 | BLK_MQ_F_TAG_SHARED = 1 << 1, | 146 | BLK_MQ_F_TAG_SHARED = 1 << 1, |
147 | BLK_MQ_F_SG_MERGE = 1 << 2, | 147 | BLK_MQ_F_SG_MERGE = 1 << 2, |
148 | BLK_MQ_F_SYSFS_UP = 1 << 3, | ||
149 | BLK_MQ_F_DEFER_ISSUE = 1 << 4, | 148 | BLK_MQ_F_DEFER_ISSUE = 1 << 4, |
150 | BLK_MQ_F_ALLOC_POLICY_START_BIT = 8, | 149 | BLK_MQ_F_ALLOC_POLICY_START_BIT = 8, |
151 | BLK_MQ_F_ALLOC_POLICY_BITS = 1, | 150 | BLK_MQ_F_ALLOC_POLICY_BITS = 1, |
@@ -215,7 +214,7 @@ void blk_mq_add_to_requeue_list(struct request *rq, bool at_head); | |||
215 | void blk_mq_cancel_requeue_work(struct request_queue *q); | 214 | void blk_mq_cancel_requeue_work(struct request_queue *q); |
216 | void blk_mq_kick_requeue_list(struct request_queue *q); | 215 | void blk_mq_kick_requeue_list(struct request_queue *q); |
217 | void blk_mq_abort_requeue_list(struct request_queue *q); | 216 | void blk_mq_abort_requeue_list(struct request_queue *q); |
218 | void blk_mq_complete_request(struct request *rq); | 217 | void blk_mq_complete_request(struct request *rq, int error); |
219 | 218 | ||
220 | void blk_mq_stop_hw_queue(struct blk_mq_hw_ctx *hctx); | 219 | void blk_mq_stop_hw_queue(struct blk_mq_hw_ctx *hctx); |
221 | void blk_mq_start_hw_queue(struct blk_mq_hw_ctx *hctx); | 220 | void blk_mq_start_hw_queue(struct blk_mq_hw_ctx *hctx); |
@@ -224,8 +223,6 @@ void blk_mq_start_hw_queues(struct request_queue *q); | |||
224 | void blk_mq_start_stopped_hw_queues(struct request_queue *q, bool async); | 223 | void blk_mq_start_stopped_hw_queues(struct request_queue *q, bool async); |
225 | void blk_mq_run_hw_queues(struct request_queue *q, bool async); | 224 | void blk_mq_run_hw_queues(struct request_queue *q, bool async); |
226 | void blk_mq_delay_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs); | 225 | void blk_mq_delay_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs); |
227 | void blk_mq_tag_busy_iter(struct blk_mq_hw_ctx *hctx, busy_iter_fn *fn, | ||
228 | void *priv); | ||
229 | void blk_mq_all_tag_busy_iter(struct blk_mq_tags *tags, busy_tag_iter_fn *fn, | 226 | void blk_mq_all_tag_busy_iter(struct blk_mq_tags *tags, busy_tag_iter_fn *fn, |
230 | void *priv); | 227 | void *priv); |
231 | void blk_mq_freeze_queue(struct request_queue *q); | 228 | void blk_mq_freeze_queue(struct request_queue *q); |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 99da9ebc7377..19c2e947d4d1 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -456,6 +456,8 @@ struct request_queue { | |||
456 | struct blk_mq_tag_set *tag_set; | 456 | struct blk_mq_tag_set *tag_set; |
457 | struct list_head tag_set_list; | 457 | struct list_head tag_set_list; |
458 | struct bio_set *bio_split; | 458 | struct bio_set *bio_split; |
459 | |||
460 | bool mq_sysfs_init_done; | ||
459 | }; | 461 | }; |
460 | 462 | ||
461 | #define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */ | 463 | #define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */ |
diff --git a/include/linux/iova.h b/include/linux/iova.h index 3920a19d8194..92f7177db2ce 100644 --- a/include/linux/iova.h +++ b/include/linux/iova.h | |||
@@ -68,8 +68,8 @@ static inline unsigned long iova_pfn(struct iova_domain *iovad, dma_addr_t iova) | |||
68 | return iova >> iova_shift(iovad); | 68 | return iova >> iova_shift(iovad); |
69 | } | 69 | } |
70 | 70 | ||
71 | int iommu_iova_cache_init(void); | 71 | int iova_cache_get(void); |
72 | void iommu_iova_cache_destroy(void); | 72 | void iova_cache_put(void); |
73 | 73 | ||
74 | struct iova *alloc_iova_mem(void); | 74 | struct iova *alloc_iova_mem(void); |
75 | void free_iova_mem(struct iova *iova); | 75 | void free_iova_mem(struct iova *iova); |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index ad800e62cb7a..6452ff4c463f 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
@@ -242,7 +242,6 @@ struct mem_cgroup { | |||
242 | * percpu counter. | 242 | * percpu counter. |
243 | */ | 243 | */ |
244 | struct mem_cgroup_stat_cpu __percpu *stat; | 244 | struct mem_cgroup_stat_cpu __percpu *stat; |
245 | spinlock_t pcp_counter_lock; | ||
246 | 245 | ||
247 | #if defined(CONFIG_MEMCG_KMEM) && defined(CONFIG_INET) | 246 | #if defined(CONFIG_MEMCG_KMEM) && defined(CONFIG_INET) |
248 | struct cg_proto tcp_mem; | 247 | struct cg_proto tcp_mem; |
diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h index 8eb3b19af2a4..250b1ff8b48d 100644 --- a/include/linux/mlx5/device.h +++ b/include/linux/mlx5/device.h | |||
@@ -402,17 +402,6 @@ struct mlx5_cmd_teardown_hca_mbox_out { | |||
402 | u8 rsvd[8]; | 402 | u8 rsvd[8]; |
403 | }; | 403 | }; |
404 | 404 | ||
405 | struct mlx5_cmd_query_special_contexts_mbox_in { | ||
406 | struct mlx5_inbox_hdr hdr; | ||
407 | u8 rsvd[8]; | ||
408 | }; | ||
409 | |||
410 | struct mlx5_cmd_query_special_contexts_mbox_out { | ||
411 | struct mlx5_outbox_hdr hdr; | ||
412 | __be32 dump_fill_mkey; | ||
413 | __be32 resd_lkey; | ||
414 | }; | ||
415 | |||
416 | struct mlx5_cmd_layout { | 405 | struct mlx5_cmd_layout { |
417 | u8 type; | 406 | u8 type; |
418 | u8 rsvd0[3]; | 407 | u8 rsvd0[3]; |
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 27b53f9a24ad..8b6d6f2154a4 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h | |||
@@ -845,7 +845,6 @@ void *mlx5_get_protocol_dev(struct mlx5_core_dev *mdev, int protocol); | |||
845 | int mlx5_register_interface(struct mlx5_interface *intf); | 845 | int mlx5_register_interface(struct mlx5_interface *intf); |
846 | void mlx5_unregister_interface(struct mlx5_interface *intf); | 846 | void mlx5_unregister_interface(struct mlx5_interface *intf); |
847 | int mlx5_core_query_vendor_id(struct mlx5_core_dev *mdev, u32 *vendor_id); | 847 | int mlx5_core_query_vendor_id(struct mlx5_core_dev *mdev, u32 *vendor_id); |
848 | int mlx5_core_query_special_context(struct mlx5_core_dev *dev, u32 *rsvd_lkey); | ||
849 | 848 | ||
850 | struct mlx5_profile { | 849 | struct mlx5_profile { |
851 | u64 mask; | 850 | u64 mask; |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 91c08f6f0dc9..80001de019ba 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -905,6 +905,27 @@ static inline void set_page_links(struct page *page, enum zone_type zone, | |||
905 | #endif | 905 | #endif |
906 | } | 906 | } |
907 | 907 | ||
908 | #ifdef CONFIG_MEMCG | ||
909 | static inline struct mem_cgroup *page_memcg(struct page *page) | ||
910 | { | ||
911 | return page->mem_cgroup; | ||
912 | } | ||
913 | |||
914 | static inline void set_page_memcg(struct page *page, struct mem_cgroup *memcg) | ||
915 | { | ||
916 | page->mem_cgroup = memcg; | ||
917 | } | ||
918 | #else | ||
919 | static inline struct mem_cgroup *page_memcg(struct page *page) | ||
920 | { | ||
921 | return NULL; | ||
922 | } | ||
923 | |||
924 | static inline void set_page_memcg(struct page *page, struct mem_cgroup *memcg) | ||
925 | { | ||
926 | } | ||
927 | #endif | ||
928 | |||
908 | /* | 929 | /* |
909 | * Some inline functions in vmstat.h depend on page_zone() | 930 | * Some inline functions in vmstat.h depend on page_zone() |
910 | */ | 931 | */ |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index ff476515f716..581abf848566 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
@@ -230,12 +230,11 @@ void __wait_rcu_gp(bool checktiny, int n, call_rcu_func_t *crcu_array, | |||
230 | struct rcu_synchronize *rs_array); | 230 | struct rcu_synchronize *rs_array); |
231 | 231 | ||
232 | #define _wait_rcu_gp(checktiny, ...) \ | 232 | #define _wait_rcu_gp(checktiny, ...) \ |
233 | do { \ | 233 | do { \ |
234 | call_rcu_func_t __crcu_array[] = { __VA_ARGS__ }; \ | 234 | call_rcu_func_t __crcu_array[] = { __VA_ARGS__ }; \ |
235 | const int __n = ARRAY_SIZE(__crcu_array); \ | 235 | struct rcu_synchronize __rs_array[ARRAY_SIZE(__crcu_array)]; \ |
236 | struct rcu_synchronize __rs_array[__n]; \ | 236 | __wait_rcu_gp(checktiny, ARRAY_SIZE(__crcu_array), \ |
237 | \ | 237 | __crcu_array, __rs_array); \ |
238 | __wait_rcu_gp(checktiny, __n, __crcu_array, __rs_array); \ | ||
239 | } while (0) | 238 | } while (0) |
240 | 239 | ||
241 | #define wait_rcu_gp(...) _wait_rcu_gp(false, __VA_ARGS__) | 240 | #define wait_rcu_gp(...) _wait_rcu_gp(false, __VA_ARGS__) |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 2b0a30a6e31c..4398411236f1 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -2708,7 +2708,7 @@ static inline void skb_postpull_rcsum(struct sk_buff *skb, | |||
2708 | if (skb->ip_summed == CHECKSUM_COMPLETE) | 2708 | if (skb->ip_summed == CHECKSUM_COMPLETE) |
2709 | skb->csum = csum_sub(skb->csum, csum_partial(start, len, 0)); | 2709 | skb->csum = csum_sub(skb->csum, csum_partial(start, len, 0)); |
2710 | else if (skb->ip_summed == CHECKSUM_PARTIAL && | 2710 | else if (skb->ip_summed == CHECKSUM_PARTIAL && |
2711 | skb_checksum_start_offset(skb) <= len) | 2711 | skb_checksum_start_offset(skb) < 0) |
2712 | skb->ip_summed = CHECKSUM_NONE; | 2712 | skb->ip_summed = CHECKSUM_NONE; |
2713 | } | 2713 | } |
2714 | 2714 | ||
diff --git a/include/linux/string.h b/include/linux/string.h index a8d90db9c4b0..9ef7795e65e4 100644 --- a/include/linux/string.h +++ b/include/linux/string.h | |||
@@ -25,6 +25,9 @@ extern char * strncpy(char *,const char *, __kernel_size_t); | |||
25 | #ifndef __HAVE_ARCH_STRLCPY | 25 | #ifndef __HAVE_ARCH_STRLCPY |
26 | size_t strlcpy(char *, const char *, size_t); | 26 | size_t strlcpy(char *, const char *, size_t); |
27 | #endif | 27 | #endif |
28 | #ifndef __HAVE_ARCH_STRSCPY | ||
29 | ssize_t __must_check strscpy(char *, const char *, size_t); | ||
30 | #endif | ||
28 | #ifndef __HAVE_ARCH_STRCAT | 31 | #ifndef __HAVE_ARCH_STRCAT |
29 | extern char * strcat(char *, const char *); | 32 | extern char * strcat(char *, const char *); |
30 | #endif | 33 | #endif |