aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/blkdev.h2
-rw-r--r--include/linux/compiler-gcc.h14
-rw-r--r--include/linux/compiler_types.h8
-rw-r--r--include/linux/fs.h5
-rw-r--r--include/linux/hid.h1
-rw-r--r--include/linux/kvm_host.h2
-rw-r--r--include/linux/mlx5/driver.h8
-rw-r--r--include/linux/mm_types.h2
-rw-r--r--include/linux/mm_types_task.h2
-rw-r--r--include/linux/mod_devicetable.h1
-rw-r--r--include/linux/pci.h3
-rw-r--r--include/linux/vga_switcheroo.h3
-rw-r--r--include/linux/vm_event_item.h1
-rw-r--r--include/linux/vmacache.h5
14 files changed, 28 insertions, 29 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index d6869e0e2b64..6980014357d4 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -54,7 +54,7 @@ struct blk_stat_callback;
54 * Maximum number of blkcg policies allowed to be registered concurrently. 54 * Maximum number of blkcg policies allowed to be registered concurrently.
55 * Defined here to simplify include dependency. 55 * Defined here to simplify include dependency.
56 */ 56 */
57#define BLKCG_MAX_POLS 3 57#define BLKCG_MAX_POLS 5
58 58
59typedef void (rq_end_io_fn)(struct request *, blk_status_t); 59typedef void (rq_end_io_fn)(struct request *, blk_status_t);
60 60
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 763bbad1e258..4d36b27214fd 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -79,20 +79,6 @@
79#define __noretpoline __attribute__((indirect_branch("keep"))) 79#define __noretpoline __attribute__((indirect_branch("keep")))
80#endif 80#endif
81 81
82/*
83 * it doesn't make sense on ARM (currently the only user of __naked)
84 * to trace naked functions because then mcount is called without
85 * stack and frame pointer being set up and there is no chance to
86 * restore the lr register to the value before mcount was called.
87 *
88 * The asm() bodies of naked functions often depend on standard calling
89 * conventions, therefore they must be noinline and noclone.
90 *
91 * GCC 4.[56] currently fail to enforce this, so we must do so ourselves.
92 * See GCC PR44290.
93 */
94#define __naked __attribute__((naked)) noinline __noclone notrace
95
96#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) 82#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
97 83
98#define __optimize(level) __attribute__((__optimize__(level))) 84#define __optimize(level) __attribute__((__optimize__(level)))
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
index 3525c179698c..db192becfec4 100644
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -226,6 +226,14 @@ struct ftrace_likely_data {
226#define notrace __attribute__((no_instrument_function)) 226#define notrace __attribute__((no_instrument_function))
227#endif 227#endif
228 228
229/*
230 * it doesn't make sense on ARM (currently the only user of __naked)
231 * to trace naked functions because then mcount is called without
232 * stack and frame pointer being set up and there is no chance to
233 * restore the lr register to the value before mcount was called.
234 */
235#define __naked __attribute__((naked)) notrace
236
229#define __compiler_offsetof(a, b) __builtin_offsetof(a, b) 237#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
230 238
231/* 239/*
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 33322702c910..6c0b4a1c22ff 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1763,6 +1763,7 @@ struct file_operations {
1763 u64); 1763 u64);
1764 int (*dedupe_file_range)(struct file *, loff_t, struct file *, loff_t, 1764 int (*dedupe_file_range)(struct file *, loff_t, struct file *, loff_t,
1765 u64); 1765 u64);
1766 int (*fadvise)(struct file *, loff_t, loff_t, int);
1766} __randomize_layout; 1767} __randomize_layout;
1767 1768
1768struct inode_operations { 1769struct inode_operations {
@@ -3459,4 +3460,8 @@ static inline bool dir_relax_shared(struct inode *inode)
3459extern bool path_noexec(const struct path *path); 3460extern bool path_noexec(const struct path *path);
3460extern void inode_nohighmem(struct inode *inode); 3461extern void inode_nohighmem(struct inode *inode);
3461 3462
3463/* mm/fadvise.c */
3464extern int vfs_fadvise(struct file *file, loff_t offset, loff_t len,
3465 int advice);
3466
3462#endif /* _LINUX_FS_H */ 3467#endif /* _LINUX_FS_H */
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 834e6461a690..d44a78362942 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -526,6 +526,7 @@ struct hid_input {
526 const char *name; 526 const char *name;
527 bool registered; 527 bool registered;
528 struct list_head reports; /* the list of reports */ 528 struct list_head reports; /* the list of reports */
529 unsigned int application; /* application usage for this input */
529}; 530};
530 531
531enum hid_type { 532enum hid_type {
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 0205aee44ded..c926698040e0 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -733,8 +733,6 @@ bool kvm_vcpu_wake_up(struct kvm_vcpu *vcpu);
733void kvm_vcpu_kick(struct kvm_vcpu *vcpu); 733void kvm_vcpu_kick(struct kvm_vcpu *vcpu);
734int kvm_vcpu_yield_to(struct kvm_vcpu *target); 734int kvm_vcpu_yield_to(struct kvm_vcpu *target);
735void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu, bool usermode_vcpu_not_eligible); 735void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu, bool usermode_vcpu_not_eligible);
736void kvm_load_guest_fpu(struct kvm_vcpu *vcpu);
737void kvm_put_guest_fpu(struct kvm_vcpu *vcpu);
738 736
739void kvm_flush_remote_tlbs(struct kvm *kvm); 737void kvm_flush_remote_tlbs(struct kvm *kvm);
740void kvm_reload_remote_mmus(struct kvm *kvm); 738void kvm_reload_remote_mmus(struct kvm *kvm);
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h
index 7a452716de4b..66d94b4557cf 100644
--- a/include/linux/mlx5/driver.h
+++ b/include/linux/mlx5/driver.h
@@ -362,8 +362,8 @@ struct mlx5_frag_buf {
362struct mlx5_frag_buf_ctrl { 362struct mlx5_frag_buf_ctrl {
363 struct mlx5_frag_buf frag_buf; 363 struct mlx5_frag_buf frag_buf;
364 u32 sz_m1; 364 u32 sz_m1;
365 u32 frag_sz_m1; 365 u16 frag_sz_m1;
366 u32 strides_offset; 366 u16 strides_offset;
367 u8 log_sz; 367 u8 log_sz;
368 u8 log_stride; 368 u8 log_stride;
369 u8 log_frag_strides; 369 u8 log_frag_strides;
@@ -995,7 +995,7 @@ static inline u32 mlx5_base_mkey(const u32 key)
995} 995}
996 996
997static inline void mlx5_fill_fbc_offset(u8 log_stride, u8 log_sz, 997static inline void mlx5_fill_fbc_offset(u8 log_stride, u8 log_sz,
998 u32 strides_offset, 998 u16 strides_offset,
999 struct mlx5_frag_buf_ctrl *fbc) 999 struct mlx5_frag_buf_ctrl *fbc)
1000{ 1000{
1001 fbc->log_stride = log_stride; 1001 fbc->log_stride = log_stride;
@@ -1052,7 +1052,7 @@ int mlx5_cmd_free_uar(struct mlx5_core_dev *dev, u32 uarn);
1052void mlx5_health_cleanup(struct mlx5_core_dev *dev); 1052void mlx5_health_cleanup(struct mlx5_core_dev *dev);
1053int mlx5_health_init(struct mlx5_core_dev *dev); 1053int mlx5_health_init(struct mlx5_core_dev *dev);
1054void mlx5_start_health_poll(struct mlx5_core_dev *dev); 1054void mlx5_start_health_poll(struct mlx5_core_dev *dev);
1055void mlx5_stop_health_poll(struct mlx5_core_dev *dev); 1055void mlx5_stop_health_poll(struct mlx5_core_dev *dev, bool disable_health);
1056void mlx5_drain_health_wq(struct mlx5_core_dev *dev); 1056void mlx5_drain_health_wq(struct mlx5_core_dev *dev);
1057void mlx5_trigger_health_work(struct mlx5_core_dev *dev); 1057void mlx5_trigger_health_work(struct mlx5_core_dev *dev);
1058void mlx5_drain_health_recovery(struct mlx5_core_dev *dev); 1058void mlx5_drain_health_recovery(struct mlx5_core_dev *dev);
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index cd2bc939efd0..5ed8f6292a53 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -341,7 +341,7 @@ struct mm_struct {
341 struct { 341 struct {
342 struct vm_area_struct *mmap; /* list of VMAs */ 342 struct vm_area_struct *mmap; /* list of VMAs */
343 struct rb_root mm_rb; 343 struct rb_root mm_rb;
344 u32 vmacache_seqnum; /* per-thread vmacache */ 344 u64 vmacache_seqnum; /* per-thread vmacache */
345#ifdef CONFIG_MMU 345#ifdef CONFIG_MMU
346 unsigned long (*get_unmapped_area) (struct file *filp, 346 unsigned long (*get_unmapped_area) (struct file *filp,
347 unsigned long addr, unsigned long len, 347 unsigned long addr, unsigned long len,
diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
index 5fe87687664c..d7016dcb245e 100644
--- a/include/linux/mm_types_task.h
+++ b/include/linux/mm_types_task.h
@@ -32,7 +32,7 @@
32#define VMACACHE_MASK (VMACACHE_SIZE - 1) 32#define VMACACHE_MASK (VMACACHE_SIZE - 1)
33 33
34struct vmacache { 34struct vmacache {
35 u32 seqnum; 35 u64 seqnum;
36 struct vm_area_struct *vmas[VMACACHE_SIZE]; 36 struct vm_area_struct *vmas[VMACACHE_SIZE];
37}; 37};
38 38
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 1298a7daa57d..01797cb4587e 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -754,6 +754,7 @@ struct tb_service_id {
754 * struct typec_device_id - USB Type-C alternate mode identifiers 754 * struct typec_device_id - USB Type-C alternate mode identifiers
755 * @svid: Standard or Vendor ID 755 * @svid: Standard or Vendor ID
756 * @mode: Mode index 756 * @mode: Mode index
757 * @driver_data: Driver specific data
757 */ 758 */
758struct typec_device_id { 759struct typec_device_id {
759 __u16 svid; 760 __u16 svid;
diff --git a/include/linux/pci.h b/include/linux/pci.h
index e72ca8dd6241..6925828f9f25 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1235,6 +1235,9 @@ void pci_bus_remove_resources(struct pci_bus *bus);
1235int devm_request_pci_bus_resources(struct device *dev, 1235int devm_request_pci_bus_resources(struct device *dev,
1236 struct list_head *resources); 1236 struct list_head *resources);
1237 1237
1238/* Temporary until new and working PCI SBR API in place */
1239int pci_bridge_secondary_bus_reset(struct pci_dev *dev);
1240
1238#define pci_bus_for_each_resource(bus, res, i) \ 1241#define pci_bus_for_each_resource(bus, res, i) \
1239 for (i = 0; \ 1242 for (i = 0; \
1240 (res = pci_bus_resource_n(bus, i)) || i < PCI_BRIDGE_RESOURCE_NUM; \ 1243 (res = pci_bus_resource_n(bus, i)) || i < PCI_BRIDGE_RESOURCE_NUM; \
diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h
index a34539b7f750..7e6ac0114d55 100644
--- a/include/linux/vga_switcheroo.h
+++ b/include/linux/vga_switcheroo.h
@@ -133,15 +133,18 @@ struct vga_switcheroo_handler {
133 * @can_switch: check if the device is in a position to switch now. 133 * @can_switch: check if the device is in a position to switch now.
134 * Mandatory. The client should return false if a user space process 134 * Mandatory. The client should return false if a user space process
135 * has one of its device files open 135 * has one of its device files open
136 * @gpu_bound: notify the client id to audio client when the GPU is bound.
136 * 137 *
137 * Client callbacks. A client can be either a GPU or an audio device on a GPU. 138 * Client callbacks. A client can be either a GPU or an audio device on a GPU.
138 * The @set_gpu_state and @can_switch methods are mandatory, @reprobe may be 139 * The @set_gpu_state and @can_switch methods are mandatory, @reprobe may be
139 * set to NULL. For audio clients, the @reprobe member is bogus. 140 * set to NULL. For audio clients, the @reprobe member is bogus.
141 * OTOH, @gpu_bound is only for audio clients, and not used for GPU clients.
140 */ 142 */
141struct vga_switcheroo_client_ops { 143struct vga_switcheroo_client_ops {
142 void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state); 144 void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state);
143 void (*reprobe)(struct pci_dev *dev); 145 void (*reprobe)(struct pci_dev *dev);
144 bool (*can_switch)(struct pci_dev *dev); 146 bool (*can_switch)(struct pci_dev *dev);
147 void (*gpu_bound)(struct pci_dev *dev, enum vga_switcheroo_client_id);
145}; 148};
146 149
147#if defined(CONFIG_VGA_SWITCHEROO) 150#if defined(CONFIG_VGA_SWITCHEROO)
diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h
index 5c7f010676a7..47a3441cf4c4 100644
--- a/include/linux/vm_event_item.h
+++ b/include/linux/vm_event_item.h
@@ -105,7 +105,6 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
105#ifdef CONFIG_DEBUG_VM_VMACACHE 105#ifdef CONFIG_DEBUG_VM_VMACACHE
106 VMACACHE_FIND_CALLS, 106 VMACACHE_FIND_CALLS,
107 VMACACHE_FIND_HITS, 107 VMACACHE_FIND_HITS,
108 VMACACHE_FULL_FLUSHES,
109#endif 108#endif
110#ifdef CONFIG_SWAP 109#ifdef CONFIG_SWAP
111 SWAP_RA, 110 SWAP_RA,
diff --git a/include/linux/vmacache.h b/include/linux/vmacache.h
index 3e9a963edd6a..6fce268a4588 100644
--- a/include/linux/vmacache.h
+++ b/include/linux/vmacache.h
@@ -10,7 +10,6 @@ static inline void vmacache_flush(struct task_struct *tsk)
10 memset(tsk->vmacache.vmas, 0, sizeof(tsk->vmacache.vmas)); 10 memset(tsk->vmacache.vmas, 0, sizeof(tsk->vmacache.vmas));
11} 11}
12 12
13extern void vmacache_flush_all(struct mm_struct *mm);
14extern void vmacache_update(unsigned long addr, struct vm_area_struct *newvma); 13extern void vmacache_update(unsigned long addr, struct vm_area_struct *newvma);
15extern struct vm_area_struct *vmacache_find(struct mm_struct *mm, 14extern struct vm_area_struct *vmacache_find(struct mm_struct *mm,
16 unsigned long addr); 15 unsigned long addr);
@@ -24,10 +23,6 @@ extern struct vm_area_struct *vmacache_find_exact(struct mm_struct *mm,
24static inline void vmacache_invalidate(struct mm_struct *mm) 23static inline void vmacache_invalidate(struct mm_struct *mm)
25{ 24{
26 mm->vmacache_seqnum++; 25 mm->vmacache_seqnum++;
27
28 /* deal with overflows */
29 if (unlikely(mm->vmacache_seqnum == 0))
30 vmacache_flush_all(mm);
31} 26}
32 27
33#endif /* __LINUX_VMACACHE_H */ 28#endif /* __LINUX_VMACACHE_H */