aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-02-01 15:50:26 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-02-01 15:50:26 -0500
commit4cff7adbebf4d25f662b13c6582b945d9d549e25 (patch)
treecfb6bc0aaab6ad7fa7ca2bb07453ed2fd139138c /include/linux
parent7e3933df9874b70745548ce9177295d11c58fc21 (diff)
parent36f90b0a2ddd60823fe193a85e60ff1906c2a9b3 (diff)
Merge 4.5-rc2 into staging-next
This fixes a merge issue with the panel driver, and picks up fixes in iio and other drivers that we want here. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/cleancache.h16
-rw-r--r--include/linux/ftrace.h1
-rw-r--r--include/linux/hrtimer.h34
-rw-r--r--include/linux/iommu.h16
-rw-r--r--include/linux/irqdomain.h1
-rw-r--r--include/linux/perf_event.h9
-rw-r--r--include/linux/swiotlb.h3
-rw-r--r--include/linux/tty.h1
8 files changed, 58 insertions, 23 deletions
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index bda5ec0b4b4d..fccf7f44139d 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -37,7 +37,7 @@ struct cleancache_ops {
37 void (*invalidate_fs)(int); 37 void (*invalidate_fs)(int);
38}; 38};
39 39
40extern int cleancache_register_ops(struct cleancache_ops *ops); 40extern int cleancache_register_ops(const struct cleancache_ops *ops);
41extern void __cleancache_init_fs(struct super_block *); 41extern void __cleancache_init_fs(struct super_block *);
42extern void __cleancache_init_shared_fs(struct super_block *); 42extern void __cleancache_init_shared_fs(struct super_block *);
43extern int __cleancache_get_page(struct page *); 43extern int __cleancache_get_page(struct page *);
@@ -48,14 +48,14 @@ extern void __cleancache_invalidate_fs(struct super_block *);
48 48
49#ifdef CONFIG_CLEANCACHE 49#ifdef CONFIG_CLEANCACHE
50#define cleancache_enabled (1) 50#define cleancache_enabled (1)
51static inline bool cleancache_fs_enabled(struct page *page)
52{
53 return page->mapping->host->i_sb->cleancache_poolid >= 0;
54}
55static inline bool cleancache_fs_enabled_mapping(struct address_space *mapping) 51static inline bool cleancache_fs_enabled_mapping(struct address_space *mapping)
56{ 52{
57 return mapping->host->i_sb->cleancache_poolid >= 0; 53 return mapping->host->i_sb->cleancache_poolid >= 0;
58} 54}
55static inline bool cleancache_fs_enabled(struct page *page)
56{
57 return cleancache_fs_enabled_mapping(page->mapping);
58}
59#else 59#else
60#define cleancache_enabled (0) 60#define cleancache_enabled (0)
61#define cleancache_fs_enabled(_page) (0) 61#define cleancache_fs_enabled(_page) (0)
@@ -89,11 +89,9 @@ static inline void cleancache_init_shared_fs(struct super_block *sb)
89 89
90static inline int cleancache_get_page(struct page *page) 90static inline int cleancache_get_page(struct page *page)
91{ 91{
92 int ret = -1;
93
94 if (cleancache_enabled && cleancache_fs_enabled(page)) 92 if (cleancache_enabled && cleancache_fs_enabled(page))
95 ret = __cleancache_get_page(page); 93 return __cleancache_get_page(page);
96 return ret; 94 return -1;
97} 95}
98 96
99static inline void cleancache_put_page(struct page *page) 97static inline void cleancache_put_page(struct page *page)
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 0639dcc98195..81de7123959d 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -165,7 +165,6 @@ struct ftrace_ops {
165 ftrace_func_t saved_func; 165 ftrace_func_t saved_func;
166 int __percpu *disabled; 166 int __percpu *disabled;
167#ifdef CONFIG_DYNAMIC_FTRACE 167#ifdef CONFIG_DYNAMIC_FTRACE
168 int nr_trampolines;
169 struct ftrace_ops_hash local_hash; 168 struct ftrace_ops_hash local_hash;
170 struct ftrace_ops_hash *func_hash; 169 struct ftrace_ops_hash *func_hash;
171 struct ftrace_ops_hash old_hash; 170 struct ftrace_ops_hash old_hash;
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 76dd4f0da5ca..2ead22dd74a0 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -87,7 +87,8 @@ enum hrtimer_restart {
87 * @function: timer expiry callback function 87 * @function: timer expiry callback function
88 * @base: pointer to the timer base (per cpu and per clock) 88 * @base: pointer to the timer base (per cpu and per clock)
89 * @state: state information (See bit values above) 89 * @state: state information (See bit values above)
90 * @start_pid: timer statistics field to store the pid of the task which 90 * @is_rel: Set if the timer was armed relative
91 * @start_pid: timer statistics field to store the pid of the task which
91 * started the timer 92 * started the timer
92 * @start_site: timer statistics field to store the site where the timer 93 * @start_site: timer statistics field to store the site where the timer
93 * was started 94 * was started
@@ -101,7 +102,8 @@ struct hrtimer {
101 ktime_t _softexpires; 102 ktime_t _softexpires;
102 enum hrtimer_restart (*function)(struct hrtimer *); 103 enum hrtimer_restart (*function)(struct hrtimer *);
103 struct hrtimer_clock_base *base; 104 struct hrtimer_clock_base *base;
104 unsigned long state; 105 u8 state;
106 u8 is_rel;
105#ifdef CONFIG_TIMER_STATS 107#ifdef CONFIG_TIMER_STATS
106 int start_pid; 108 int start_pid;
107 void *start_site; 109 void *start_site;
@@ -321,6 +323,27 @@ static inline void clock_was_set_delayed(void) { }
321 323
322#endif 324#endif
323 325
326static inline ktime_t
327__hrtimer_expires_remaining_adjusted(const struct hrtimer *timer, ktime_t now)
328{
329 ktime_t rem = ktime_sub(timer->node.expires, now);
330
331 /*
332 * Adjust relative timers for the extra we added in
333 * hrtimer_start_range_ns() to prevent short timeouts.
334 */
335 if (IS_ENABLED(CONFIG_TIME_LOW_RES) && timer->is_rel)
336 rem.tv64 -= hrtimer_resolution;
337 return rem;
338}
339
340static inline ktime_t
341hrtimer_expires_remaining_adjusted(const struct hrtimer *timer)
342{
343 return __hrtimer_expires_remaining_adjusted(timer,
344 timer->base->get_time());
345}
346
324extern void clock_was_set(void); 347extern void clock_was_set(void);
325#ifdef CONFIG_TIMERFD 348#ifdef CONFIG_TIMERFD
326extern void timerfd_clock_was_set(void); 349extern void timerfd_clock_was_set(void);
@@ -390,7 +413,12 @@ static inline void hrtimer_restart(struct hrtimer *timer)
390} 413}
391 414
392/* Query timers: */ 415/* Query timers: */
393extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer); 416extern ktime_t __hrtimer_get_remaining(const struct hrtimer *timer, bool adjust);
417
418static inline ktime_t hrtimer_get_remaining(const struct hrtimer *timer)
419{
420 return __hrtimer_get_remaining(timer, false);
421}
394 422
395extern u64 hrtimer_get_next_event(void); 423extern u64 hrtimer_get_next_event(void);
396 424
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index f28dff313b07..a5c539fa5d2b 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -133,8 +133,9 @@ struct iommu_dm_region {
133 133
134/** 134/**
135 * struct iommu_ops - iommu ops and capabilities 135 * struct iommu_ops - iommu ops and capabilities
136 * @domain_init: init iommu domain 136 * @capable: check capability
137 * @domain_destroy: destroy iommu domain 137 * @domain_alloc: allocate iommu domain
138 * @domain_free: free iommu domain
138 * @attach_dev: attach device to an iommu domain 139 * @attach_dev: attach device to an iommu domain
139 * @detach_dev: detach device from an iommu domain 140 * @detach_dev: detach device from an iommu domain
140 * @map: map a physically contiguous memory region to an iommu domain 141 * @map: map a physically contiguous memory region to an iommu domain
@@ -144,8 +145,15 @@ struct iommu_dm_region {
144 * @iova_to_phys: translate iova to physical address 145 * @iova_to_phys: translate iova to physical address
145 * @add_device: add device to iommu grouping 146 * @add_device: add device to iommu grouping
146 * @remove_device: remove device from iommu grouping 147 * @remove_device: remove device from iommu grouping
148 * @device_group: find iommu group for a particular device
147 * @domain_get_attr: Query domain attributes 149 * @domain_get_attr: Query domain attributes
148 * @domain_set_attr: Change domain attributes 150 * @domain_set_attr: Change domain attributes
151 * @get_dm_regions: Request list of direct mapping requirements for a device
152 * @put_dm_regions: Free list of direct mapping requirements for a device
153 * @domain_window_enable: Configure and enable a particular window for a domain
154 * @domain_window_disable: Disable a particular window for a domain
155 * @domain_set_windows: Set the number of windows for a domain
156 * @domain_get_windows: Return the number of windows for a domain
149 * @of_xlate: add OF master IDs to iommu grouping 157 * @of_xlate: add OF master IDs to iommu grouping
150 * @pgsize_bitmap: bitmap of supported page sizes 158 * @pgsize_bitmap: bitmap of supported page sizes
151 * @priv: per-instance data private to the iommu driver 159 * @priv: per-instance data private to the iommu driver
@@ -182,9 +190,9 @@ struct iommu_ops {
182 int (*domain_window_enable)(struct iommu_domain *domain, u32 wnd_nr, 190 int (*domain_window_enable)(struct iommu_domain *domain, u32 wnd_nr,
183 phys_addr_t paddr, u64 size, int prot); 191 phys_addr_t paddr, u64 size, int prot);
184 void (*domain_window_disable)(struct iommu_domain *domain, u32 wnd_nr); 192 void (*domain_window_disable)(struct iommu_domain *domain, u32 wnd_nr);
185 /* Set the numer of window per domain */ 193 /* Set the number of windows per domain */
186 int (*domain_set_windows)(struct iommu_domain *domain, u32 w_count); 194 int (*domain_set_windows)(struct iommu_domain *domain, u32 w_count);
187 /* Get the numer of window per domain */ 195 /* Get the number of windows per domain */
188 u32 (*domain_get_windows)(struct iommu_domain *domain); 196 u32 (*domain_get_windows)(struct iommu_domain *domain);
189 197
190#ifdef CONFIG_OF_IOMMU 198#ifdef CONFIG_OF_IOMMU
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index f64622ad02c1..04579d9fbce4 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -70,6 +70,7 @@ struct irq_fwspec {
70 */ 70 */
71enum irq_domain_bus_token { 71enum irq_domain_bus_token {
72 DOMAIN_BUS_ANY = 0, 72 DOMAIN_BUS_ANY = 0,
73 DOMAIN_BUS_WIRED,
73 DOMAIN_BUS_PCI_MSI, 74 DOMAIN_BUS_PCI_MSI,
74 DOMAIN_BUS_PLATFORM_MSI, 75 DOMAIN_BUS_PLATFORM_MSI,
75 DOMAIN_BUS_NEXUS, 76 DOMAIN_BUS_NEXUS,
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index f9828a48f16a..b35a61a481fa 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -634,9 +634,6 @@ struct perf_event_context {
634 int nr_cgroups; /* cgroup evts */ 634 int nr_cgroups; /* cgroup evts */
635 void *task_ctx_data; /* pmu specific data */ 635 void *task_ctx_data; /* pmu specific data */
636 struct rcu_head rcu_head; 636 struct rcu_head rcu_head;
637
638 struct delayed_work orphans_remove;
639 bool orphans_remove_sched;
640}; 637};
641 638
642/* 639/*
@@ -729,7 +726,7 @@ extern int perf_event_init_task(struct task_struct *child);
729extern void perf_event_exit_task(struct task_struct *child); 726extern void perf_event_exit_task(struct task_struct *child);
730extern void perf_event_free_task(struct task_struct *task); 727extern void perf_event_free_task(struct task_struct *task);
731extern void perf_event_delayed_put(struct task_struct *task); 728extern void perf_event_delayed_put(struct task_struct *task);
732extern struct perf_event *perf_event_get(unsigned int fd); 729extern struct file *perf_event_get(unsigned int fd);
733extern const struct perf_event_attr *perf_event_attrs(struct perf_event *event); 730extern const struct perf_event_attr *perf_event_attrs(struct perf_event *event);
734extern void perf_event_print_debug(void); 731extern void perf_event_print_debug(void);
735extern void perf_pmu_disable(struct pmu *pmu); 732extern void perf_pmu_disable(struct pmu *pmu);
@@ -1044,7 +1041,7 @@ extern void perf_swevent_put_recursion_context(int rctx);
1044extern u64 perf_swevent_set_period(struct perf_event *event); 1041extern u64 perf_swevent_set_period(struct perf_event *event);
1045extern void perf_event_enable(struct perf_event *event); 1042extern void perf_event_enable(struct perf_event *event);
1046extern void perf_event_disable(struct perf_event *event); 1043extern void perf_event_disable(struct perf_event *event);
1047extern int __perf_event_disable(void *info); 1044extern void perf_event_disable_local(struct perf_event *event);
1048extern void perf_event_task_tick(void); 1045extern void perf_event_task_tick(void);
1049#else /* !CONFIG_PERF_EVENTS: */ 1046#else /* !CONFIG_PERF_EVENTS: */
1050static inline void * 1047static inline void *
@@ -1070,7 +1067,7 @@ static inline int perf_event_init_task(struct task_struct *child) { return 0; }
1070static inline void perf_event_exit_task(struct task_struct *child) { } 1067static inline void perf_event_exit_task(struct task_struct *child) { }
1071static inline void perf_event_free_task(struct task_struct *task) { } 1068static inline void perf_event_free_task(struct task_struct *task) { }
1072static inline void perf_event_delayed_put(struct task_struct *task) { } 1069static inline void perf_event_delayed_put(struct task_struct *task) { }
1073static inline struct perf_event *perf_event_get(unsigned int fd) { return ERR_PTR(-EINVAL); } 1070static inline struct file *perf_event_get(unsigned int fd) { return ERR_PTR(-EINVAL); }
1074static inline const struct perf_event_attr *perf_event_attrs(struct perf_event *event) 1071static inline const struct perf_event_attr *perf_event_attrs(struct perf_event *event)
1075{ 1072{
1076 return ERR_PTR(-EINVAL); 1073 return ERR_PTR(-EINVAL);
diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
index e7a018eaf3a2..017fced60242 100644
--- a/include/linux/swiotlb.h
+++ b/include/linux/swiotlb.h
@@ -1,10 +1,13 @@
1#ifndef __LINUX_SWIOTLB_H 1#ifndef __LINUX_SWIOTLB_H
2#define __LINUX_SWIOTLB_H 2#define __LINUX_SWIOTLB_H
3 3
4#include <linux/dma-direction.h>
5#include <linux/init.h>
4#include <linux/types.h> 6#include <linux/types.h>
5 7
6struct device; 8struct device;
7struct dma_attrs; 9struct dma_attrs;
10struct page;
8struct scatterlist; 11struct scatterlist;
9 12
10extern int swiotlb_force; 13extern int swiotlb_force;
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 2fd8708ea888..d9fb4b043f56 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -649,6 +649,7 @@ extern long vt_compat_ioctl(struct tty_struct *tty,
649/* tty_mutex.c */ 649/* tty_mutex.c */
650/* functions for preparation of BKL removal */ 650/* functions for preparation of BKL removal */
651extern void __lockfunc tty_lock(struct tty_struct *tty); 651extern void __lockfunc tty_lock(struct tty_struct *tty);
652extern int tty_lock_interruptible(struct tty_struct *tty);
652extern void __lockfunc tty_unlock(struct tty_struct *tty); 653extern void __lockfunc tty_unlock(struct tty_struct *tty);
653extern void __lockfunc tty_lock_slave(struct tty_struct *tty); 654extern void __lockfunc tty_lock_slave(struct tty_struct *tty);
654extern void __lockfunc tty_unlock_slave(struct tty_struct *tty); 655extern void __lockfunc tty_unlock_slave(struct tty_struct *tty);