diff options
Diffstat (limited to 'include/linux')
47 files changed, 246 insertions, 83 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h index 8f7a3d68371a..ee0bd9524055 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
| @@ -954,7 +954,7 @@ static inline int atapi_cdb_len(const u16 *dev_id) | |||
| 954 | } | 954 | } |
| 955 | } | 955 | } |
| 956 | 956 | ||
| 957 | static inline bool atapi_command_packet_set(const u16 *dev_id) | 957 | static inline int atapi_command_packet_set(const u16 *dev_id) |
| 958 | { | 958 | { |
| 959 | return (dev_id[ATA_ID_CONFIG] >> 8) & 0x1f; | 959 | return (dev_id[ATA_ID_CONFIG] >> 8) & 0x1f; |
| 960 | } | 960 | } |
diff --git a/include/linux/compat.h b/include/linux/compat.h index 76a87fb57ac2..377cd8c3395e 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -141,11 +141,11 @@ typedef struct { | |||
| 141 | } compat_sigset_t; | 141 | } compat_sigset_t; |
| 142 | 142 | ||
| 143 | struct compat_sigaction { | 143 | struct compat_sigaction { |
| 144 | #ifndef __ARCH_HAS_ODD_SIGACTION | 144 | #ifndef __ARCH_HAS_IRIX_SIGACTION |
| 145 | compat_uptr_t sa_handler; | 145 | compat_uptr_t sa_handler; |
| 146 | compat_ulong_t sa_flags; | 146 | compat_ulong_t sa_flags; |
| 147 | #else | 147 | #else |
| 148 | compat_ulong_t sa_flags; | 148 | compat_uint_t sa_flags; |
| 149 | compat_uptr_t sa_handler; | 149 | compat_uptr_t sa_handler; |
| 150 | #endif | 150 | #endif |
| 151 | #ifdef __ARCH_HAS_SA_RESTORER | 151 | #ifdef __ARCH_HAS_SA_RESTORER |
diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h index a975de1ff59f..3bd46f766751 100644 --- a/include/linux/debug_locks.h +++ b/include/linux/debug_locks.h | |||
| @@ -51,7 +51,7 @@ struct task_struct; | |||
| 51 | extern void debug_show_all_locks(void); | 51 | extern void debug_show_all_locks(void); |
| 52 | extern void debug_show_held_locks(struct task_struct *task); | 52 | extern void debug_show_held_locks(struct task_struct *task); |
| 53 | extern void debug_check_no_locks_freed(const void *from, unsigned long len); | 53 | extern void debug_check_no_locks_freed(const void *from, unsigned long len); |
| 54 | extern void debug_check_no_locks_held(void); | 54 | extern void debug_check_no_locks_held(struct task_struct *task); |
| 55 | #else | 55 | #else |
| 56 | static inline void debug_show_all_locks(void) | 56 | static inline void debug_show_all_locks(void) |
| 57 | { | 57 | { |
| @@ -67,7 +67,7 @@ debug_check_no_locks_freed(const void *from, unsigned long len) | |||
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | static inline void | 69 | static inline void |
| 70 | debug_check_no_locks_held(void) | 70 | debug_check_no_locks_held(struct task_struct *task) |
| 71 | { | 71 | { |
| 72 | } | 72 | } |
| 73 | #endif | 73 | #endif |
diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h index e83ef39b3bea..fe8c4476f7e4 100644 --- a/include/linux/devfreq.h +++ b/include/linux/devfreq.h | |||
| @@ -213,7 +213,7 @@ struct devfreq_simple_ondemand_data { | |||
| 213 | #endif | 213 | #endif |
| 214 | 214 | ||
| 215 | #else /* !CONFIG_PM_DEVFREQ */ | 215 | #else /* !CONFIG_PM_DEVFREQ */ |
| 216 | static struct devfreq *devfreq_add_device(struct device *dev, | 216 | static inline struct devfreq *devfreq_add_device(struct device *dev, |
| 217 | struct devfreq_dev_profile *profile, | 217 | struct devfreq_dev_profile *profile, |
| 218 | const char *governor_name, | 218 | const char *governor_name, |
| 219 | void *data) | 219 | void *data) |
| @@ -221,34 +221,34 @@ static struct devfreq *devfreq_add_device(struct device *dev, | |||
| 221 | return NULL; | 221 | return NULL; |
| 222 | } | 222 | } |
| 223 | 223 | ||
| 224 | static int devfreq_remove_device(struct devfreq *devfreq) | 224 | static inline int devfreq_remove_device(struct devfreq *devfreq) |
| 225 | { | 225 | { |
| 226 | return 0; | 226 | return 0; |
| 227 | } | 227 | } |
| 228 | 228 | ||
| 229 | static int devfreq_suspend_device(struct devfreq *devfreq) | 229 | static inline int devfreq_suspend_device(struct devfreq *devfreq) |
| 230 | { | 230 | { |
| 231 | return 0; | 231 | return 0; |
| 232 | } | 232 | } |
| 233 | 233 | ||
| 234 | static int devfreq_resume_device(struct devfreq *devfreq) | 234 | static inline int devfreq_resume_device(struct devfreq *devfreq) |
| 235 | { | 235 | { |
| 236 | return 0; | 236 | return 0; |
| 237 | } | 237 | } |
| 238 | 238 | ||
| 239 | static struct opp *devfreq_recommended_opp(struct device *dev, | 239 | static inline struct opp *devfreq_recommended_opp(struct device *dev, |
| 240 | unsigned long *freq, u32 flags) | 240 | unsigned long *freq, u32 flags) |
| 241 | { | 241 | { |
| 242 | return -EINVAL; | 242 | return ERR_PTR(-EINVAL); |
| 243 | } | 243 | } |
| 244 | 244 | ||
| 245 | static int devfreq_register_opp_notifier(struct device *dev, | 245 | static inline int devfreq_register_opp_notifier(struct device *dev, |
| 246 | struct devfreq *devfreq) | 246 | struct devfreq *devfreq) |
| 247 | { | 247 | { |
| 248 | return -EINVAL; | 248 | return -EINVAL; |
| 249 | } | 249 | } |
| 250 | 250 | ||
| 251 | static int devfreq_unregister_opp_notifier(struct device *dev, | 251 | static inline int devfreq_unregister_opp_notifier(struct device *dev, |
| 252 | struct devfreq *devfreq) | 252 | struct devfreq *devfreq) |
| 253 | { | 253 | { |
| 254 | return -EINVAL; | 254 | return -EINVAL; |
diff --git a/include/linux/edac.h b/include/linux/edac.h index 4fd4999ccb5b..0b763276f619 100644 --- a/include/linux/edac.h +++ b/include/linux/edac.h | |||
| @@ -561,7 +561,6 @@ struct csrow_info { | |||
| 561 | 561 | ||
| 562 | u32 ue_count; /* Uncorrectable Errors for this csrow */ | 562 | u32 ue_count; /* Uncorrectable Errors for this csrow */ |
| 563 | u32 ce_count; /* Correctable Errors for this csrow */ | 563 | u32 ce_count; /* Correctable Errors for this csrow */ |
| 564 | u32 nr_pages; /* combined pages count of all channels */ | ||
| 565 | 564 | ||
| 566 | struct mem_ctl_info *mci; /* the parent */ | 565 | struct mem_ctl_info *mci; /* the parent */ |
| 567 | 566 | ||
| @@ -676,11 +675,11 @@ struct mem_ctl_info { | |||
| 676 | * sees memory sticks ("dimms"), and the ones that sees memory ranks. | 675 | * sees memory sticks ("dimms"), and the ones that sees memory ranks. |
| 677 | * All old memory controllers enumerate memories per rank, but most | 676 | * All old memory controllers enumerate memories per rank, but most |
| 678 | * of the recent drivers enumerate memories per DIMM, instead. | 677 | * of the recent drivers enumerate memories per DIMM, instead. |
| 679 | * When the memory controller is per rank, mem_is_per_rank is true. | 678 | * When the memory controller is per rank, csbased is true. |
| 680 | */ | 679 | */ |
| 681 | unsigned n_layers; | 680 | unsigned n_layers; |
| 682 | struct edac_mc_layer *layers; | 681 | struct edac_mc_layer *layers; |
| 683 | bool mem_is_per_rank; | 682 | bool csbased; |
| 684 | 683 | ||
| 685 | /* | 684 | /* |
| 686 | * DIMM info. Will eventually remove the entire csrows_info some day | 685 | * DIMM info. Will eventually remove the entire csrows_info some day |
| @@ -741,8 +740,6 @@ struct mem_ctl_info { | |||
| 741 | u32 fake_inject_ue; | 740 | u32 fake_inject_ue; |
| 742 | u16 fake_inject_count; | 741 | u16 fake_inject_count; |
| 743 | #endif | 742 | #endif |
| 744 | __u8 csbased : 1, /* csrow-based memory controller */ | ||
| 745 | __resv : 7; | ||
| 746 | }; | 743 | }; |
| 747 | 744 | ||
| 748 | #endif | 745 | #endif |
diff --git a/include/linux/freezer.h b/include/linux/freezer.h index 043a5cf8b5ba..e70df40d84f6 100644 --- a/include/linux/freezer.h +++ b/include/linux/freezer.h | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | #ifndef FREEZER_H_INCLUDED | 3 | #ifndef FREEZER_H_INCLUDED |
| 4 | #define FREEZER_H_INCLUDED | 4 | #define FREEZER_H_INCLUDED |
| 5 | 5 | ||
| 6 | #include <linux/debug_locks.h> | ||
| 7 | #include <linux/sched.h> | 6 | #include <linux/sched.h> |
| 8 | #include <linux/wait.h> | 7 | #include <linux/wait.h> |
| 9 | #include <linux/atomic.h> | 8 | #include <linux/atomic.h> |
| @@ -49,8 +48,6 @@ extern void thaw_kernel_threads(void); | |||
| 49 | 48 | ||
| 50 | static inline bool try_to_freeze(void) | 49 | static inline bool try_to_freeze(void) |
| 51 | { | 50 | { |
| 52 | if (!(current->flags & PF_NOFREEZE)) | ||
| 53 | debug_check_no_locks_held(); | ||
| 54 | might_sleep(); | 51 | might_sleep(); |
| 55 | if (likely(!freezing(current))) | 52 | if (likely(!freezing(current))) |
| 56 | return false; | 53 | return false; |
diff --git a/include/linux/fs_struct.h b/include/linux/fs_struct.h index 729eded4b24f..2b93a9a5a1e6 100644 --- a/include/linux/fs_struct.h +++ b/include/linux/fs_struct.h | |||
| @@ -50,4 +50,6 @@ static inline void get_fs_root_and_pwd(struct fs_struct *fs, struct path *root, | |||
| 50 | spin_unlock(&fs->lock); | 50 | spin_unlock(&fs->lock); |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | extern bool current_chrooted(void); | ||
| 54 | |||
| 53 | #endif /* _LINUX_FS_STRUCT_H */ | 55 | #endif /* _LINUX_FS_STRUCT_H */ |
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index e5ca8ef50e9b..167abf907802 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h | |||
| @@ -89,6 +89,7 @@ typedef void (*ftrace_func_t)(unsigned long ip, unsigned long parent_ip, | |||
| 89 | * that the call back has its own recursion protection. If it does | 89 | * that the call back has its own recursion protection. If it does |
| 90 | * not set this, then the ftrace infrastructure will add recursion | 90 | * not set this, then the ftrace infrastructure will add recursion |
| 91 | * protection for the caller. | 91 | * protection for the caller. |
| 92 | * STUB - The ftrace_ops is just a place holder. | ||
| 92 | */ | 93 | */ |
| 93 | enum { | 94 | enum { |
| 94 | FTRACE_OPS_FL_ENABLED = 1 << 0, | 95 | FTRACE_OPS_FL_ENABLED = 1 << 0, |
| @@ -98,6 +99,7 @@ enum { | |||
| 98 | FTRACE_OPS_FL_SAVE_REGS = 1 << 4, | 99 | FTRACE_OPS_FL_SAVE_REGS = 1 << 4, |
| 99 | FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 1 << 5, | 100 | FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 1 << 5, |
| 100 | FTRACE_OPS_FL_RECURSION_SAFE = 1 << 6, | 101 | FTRACE_OPS_FL_RECURSION_SAFE = 1 << 6, |
| 102 | FTRACE_OPS_FL_STUB = 1 << 7, | ||
| 101 | }; | 103 | }; |
| 102 | 104 | ||
| 103 | struct ftrace_ops { | 105 | struct ftrace_ops { |
diff --git a/include/linux/hash.h b/include/linux/hash.h index 61c97ae22e01..f09a0ae4d858 100644 --- a/include/linux/hash.h +++ b/include/linux/hash.h | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | #include <asm/types.h> | 17 | #include <asm/types.h> |
| 18 | #include <linux/compiler.h> | ||
| 18 | 19 | ||
| 19 | /* 2^31 + 2^29 - 2^25 + 2^22 - 2^19 - 2^16 + 1 */ | 20 | /* 2^31 + 2^29 - 2^25 + 2^22 - 2^19 - 2^16 + 1 */ |
| 20 | #define GOLDEN_RATIO_PRIME_32 0x9e370001UL | 21 | #define GOLDEN_RATIO_PRIME_32 0x9e370001UL |
| @@ -31,7 +32,7 @@ | |||
| 31 | #error Wordsize not 32 or 64 | 32 | #error Wordsize not 32 or 64 |
| 32 | #endif | 33 | #endif |
| 33 | 34 | ||
| 34 | static inline u64 hash_64(u64 val, unsigned int bits) | 35 | static __always_inline u64 hash_64(u64 val, unsigned int bits) |
| 35 | { | 36 | { |
| 36 | u64 hash = val; | 37 | u64 hash = val; |
| 37 | 38 | ||
diff --git a/include/linux/idr.h b/include/linux/idr.h index a6f38b5c34e4..2640c7e99e51 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h | |||
| @@ -73,8 +73,6 @@ struct idr { | |||
| 73 | */ | 73 | */ |
| 74 | 74 | ||
| 75 | void *idr_find_slowpath(struct idr *idp, int id); | 75 | void *idr_find_slowpath(struct idr *idp, int id); |
| 76 | int idr_pre_get(struct idr *idp, gfp_t gfp_mask); | ||
| 77 | int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id); | ||
| 78 | void idr_preload(gfp_t gfp_mask); | 76 | void idr_preload(gfp_t gfp_mask); |
| 79 | int idr_alloc(struct idr *idp, void *ptr, int start, int end, gfp_t gfp_mask); | 77 | int idr_alloc(struct idr *idp, void *ptr, int start, int end, gfp_t gfp_mask); |
| 80 | int idr_for_each(struct idr *idp, | 78 | int idr_for_each(struct idr *idp, |
| @@ -99,7 +97,7 @@ static inline void idr_preload_end(void) | |||
| 99 | 97 | ||
| 100 | /** | 98 | /** |
| 101 | * idr_find - return pointer for given id | 99 | * idr_find - return pointer for given id |
| 102 | * @idp: idr handle | 100 | * @idr: idr handle |
| 103 | * @id: lookup key | 101 | * @id: lookup key |
| 104 | * | 102 | * |
| 105 | * Return the pointer given the id it has been registered with. A %NULL | 103 | * Return the pointer given the id it has been registered with. A %NULL |
| @@ -120,19 +118,6 @@ static inline void *idr_find(struct idr *idr, int id) | |||
| 120 | } | 118 | } |
| 121 | 119 | ||
| 122 | /** | 120 | /** |
| 123 | * idr_get_new - allocate new idr entry | ||
| 124 | * @idp: idr handle | ||
| 125 | * @ptr: pointer you want associated with the id | ||
| 126 | * @id: pointer to the allocated handle | ||
| 127 | * | ||
| 128 | * Simple wrapper around idr_get_new_above() w/ @starting_id of zero. | ||
| 129 | */ | ||
| 130 | static inline int idr_get_new(struct idr *idp, void *ptr, int *id) | ||
| 131 | { | ||
| 132 | return idr_get_new_above(idp, ptr, 0, id); | ||
| 133 | } | ||
| 134 | |||
| 135 | /** | ||
| 136 | * idr_for_each_entry - iterate over an idr's elements of a given type | 121 | * idr_for_each_entry - iterate over an idr's elements of a given type |
| 137 | * @idp: idr handle | 122 | * @idp: idr handle |
| 138 | * @entry: the type * to use as cursor | 123 | * @entry: the type * to use as cursor |
| @@ -143,7 +128,56 @@ static inline int idr_get_new(struct idr *idp, void *ptr, int *id) | |||
| 143 | entry != NULL; \ | 128 | entry != NULL; \ |
| 144 | ++id, entry = (typeof(entry))idr_get_next((idp), &(id))) | 129 | ++id, entry = (typeof(entry))idr_get_next((idp), &(id))) |
| 145 | 130 | ||
| 146 | void __idr_remove_all(struct idr *idp); /* don't use */ | 131 | /* |
| 132 | * Don't use the following functions. These exist only to suppress | ||
| 133 | * deprecated warnings on EXPORT_SYMBOL()s. | ||
| 134 | */ | ||
| 135 | int __idr_pre_get(struct idr *idp, gfp_t gfp_mask); | ||
| 136 | int __idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id); | ||
| 137 | void __idr_remove_all(struct idr *idp); | ||
| 138 | |||
| 139 | /** | ||
| 140 | * idr_pre_get - reserve resources for idr allocation | ||
| 141 | * @idp: idr handle | ||
| 142 | * @gfp_mask: memory allocation flags | ||
| 143 | * | ||
| 144 | * Part of old alloc interface. This is going away. Use | ||
| 145 | * idr_preload[_end]() and idr_alloc() instead. | ||
| 146 | */ | ||
| 147 | static inline int __deprecated idr_pre_get(struct idr *idp, gfp_t gfp_mask) | ||
| 148 | { | ||
| 149 | return __idr_pre_get(idp, gfp_mask); | ||
| 150 | } | ||
| 151 | |||
| 152 | /** | ||
| 153 | * idr_get_new_above - allocate new idr entry above or equal to a start id | ||
| 154 | * @idp: idr handle | ||
| 155 | * @ptr: pointer you want associated with the id | ||
| 156 | * @starting_id: id to start search at | ||
| 157 | * @id: pointer to the allocated handle | ||
| 158 | * | ||
| 159 | * Part of old alloc interface. This is going away. Use | ||
| 160 | * idr_preload[_end]() and idr_alloc() instead. | ||
| 161 | */ | ||
| 162 | static inline int __deprecated idr_get_new_above(struct idr *idp, void *ptr, | ||
| 163 | int starting_id, int *id) | ||
| 164 | { | ||
| 165 | return __idr_get_new_above(idp, ptr, starting_id, id); | ||
| 166 | } | ||
| 167 | |||
| 168 | /** | ||
| 169 | * idr_get_new - allocate new idr entry | ||
| 170 | * @idp: idr handle | ||
| 171 | * @ptr: pointer you want associated with the id | ||
| 172 | * @id: pointer to the allocated handle | ||
| 173 | * | ||
| 174 | * Part of old alloc interface. This is going away. Use | ||
| 175 | * idr_preload[_end]() and idr_alloc() instead. | ||
| 176 | */ | ||
| 177 | static inline int __deprecated idr_get_new(struct idr *idp, void *ptr, int *id) | ||
| 178 | { | ||
| 179 | return __idr_get_new_above(idp, ptr, 0, id); | ||
| 180 | } | ||
| 147 | 181 | ||
| 148 | /** | 182 | /** |
| 149 | * idr_remove_all - remove all ids from the given idr tree | 183 | * idr_remove_all - remove all ids from the given idr tree |
diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h index 1f86a97ab2e2..8bd12be0b02f 100644 --- a/include/linux/iio/common/st_sensors.h +++ b/include/linux/iio/common/st_sensors.h | |||
| @@ -227,14 +227,17 @@ struct st_sensor_data { | |||
| 227 | }; | 227 | }; |
| 228 | 228 | ||
| 229 | #ifdef CONFIG_IIO_BUFFER | 229 | #ifdef CONFIG_IIO_BUFFER |
| 230 | irqreturn_t st_sensors_trigger_handler(int irq, void *p); | ||
| 231 | |||
| 232 | int st_sensors_get_buffer_element(struct iio_dev *indio_dev, u8 *buf); | ||
| 233 | #endif | ||
| 234 | |||
| 235 | #ifdef CONFIG_IIO_TRIGGER | ||
| 230 | int st_sensors_allocate_trigger(struct iio_dev *indio_dev, | 236 | int st_sensors_allocate_trigger(struct iio_dev *indio_dev, |
| 231 | const struct iio_trigger_ops *trigger_ops); | 237 | const struct iio_trigger_ops *trigger_ops); |
| 232 | 238 | ||
| 233 | void st_sensors_deallocate_trigger(struct iio_dev *indio_dev); | 239 | void st_sensors_deallocate_trigger(struct iio_dev *indio_dev); |
| 234 | 240 | ||
| 235 | irqreturn_t st_sensors_trigger_handler(int irq, void *p); | ||
| 236 | |||
| 237 | int st_sensors_get_buffer_element(struct iio_dev *indio_dev, u8 *buf); | ||
| 238 | #else | 241 | #else |
| 239 | static inline int st_sensors_allocate_trigger(struct iio_dev *indio_dev, | 242 | static inline int st_sensors_allocate_trigger(struct iio_dev *indio_dev, |
| 240 | const struct iio_trigger_ops *trigger_ops) | 243 | const struct iio_trigger_ops *trigger_ops) |
diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h index f5dbce50466e..66017028dcb3 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h | |||
| @@ -37,7 +37,7 @@ void irq_work_sync(struct irq_work *work); | |||
| 37 | #ifdef CONFIG_IRQ_WORK | 37 | #ifdef CONFIG_IRQ_WORK |
| 38 | bool irq_work_needs_cpu(void); | 38 | bool irq_work_needs_cpu(void); |
| 39 | #else | 39 | #else |
| 40 | static bool irq_work_needs_cpu(void) { return false; } | 40 | static inline bool irq_work_needs_cpu(void) { return false; } |
| 41 | #endif | 41 | #endif |
| 42 | 42 | ||
| 43 | #endif /* _LINUX_IRQ_WORK_H */ | 43 | #endif /* _LINUX_IRQ_WORK_H */ |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 80d36874689b..79fdd80a42d4 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -390,7 +390,6 @@ extern struct pid *session_of_pgrp(struct pid *pgrp); | |||
| 390 | unsigned long int_sqrt(unsigned long); | 390 | unsigned long int_sqrt(unsigned long); |
| 391 | 391 | ||
| 392 | extern void bust_spinlocks(int yes); | 392 | extern void bust_spinlocks(int yes); |
| 393 | extern void wake_up_klogd(void); | ||
| 394 | extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */ | 393 | extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */ |
| 395 | extern int panic_timeout; | 394 | extern int panic_timeout; |
| 396 | extern int panic_on_oops; | 395 | extern int panic_on_oops; |
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index cad77fe09d77..c13958251927 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
| @@ -518,7 +518,7 @@ int kvm_write_guest(struct kvm *kvm, gpa_t gpa, const void *data, | |||
| 518 | int kvm_write_guest_cached(struct kvm *kvm, struct gfn_to_hva_cache *ghc, | 518 | int kvm_write_guest_cached(struct kvm *kvm, struct gfn_to_hva_cache *ghc, |
| 519 | void *data, unsigned long len); | 519 | void *data, unsigned long len); |
| 520 | int kvm_gfn_to_hva_cache_init(struct kvm *kvm, struct gfn_to_hva_cache *ghc, | 520 | int kvm_gfn_to_hva_cache_init(struct kvm *kvm, struct gfn_to_hva_cache *ghc, |
| 521 | gpa_t gpa); | 521 | gpa_t gpa, unsigned long len); |
| 522 | int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len); | 522 | int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len); |
| 523 | int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len); | 523 | int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len); |
| 524 | struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn); | 524 | struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn); |
diff --git a/include/linux/kvm_types.h b/include/linux/kvm_types.h index fa7cc7244cbd..b0bcce0ddc95 100644 --- a/include/linux/kvm_types.h +++ b/include/linux/kvm_types.h | |||
| @@ -71,6 +71,7 @@ struct gfn_to_hva_cache { | |||
| 71 | u64 generation; | 71 | u64 generation; |
| 72 | gpa_t gpa; | 72 | gpa_t gpa; |
| 73 | unsigned long hva; | 73 | unsigned long hva; |
| 74 | unsigned long len; | ||
| 74 | struct kvm_memory_slot *memslot; | 75 | struct kvm_memory_slot *memslot; |
| 75 | }; | 76 | }; |
| 76 | 77 | ||
diff --git a/include/linux/libata.h b/include/linux/libata.h index 91c9d109e5f1..eae7a053dc51 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -398,6 +398,7 @@ enum { | |||
| 398 | ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */ | 398 | ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */ |
| 399 | ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), /* skip AA */ | 399 | ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), /* skip AA */ |
| 400 | ATA_HORKAGE_DUMP_ID = (1 << 16), /* dump IDENTIFY data */ | 400 | ATA_HORKAGE_DUMP_ID = (1 << 16), /* dump IDENTIFY data */ |
| 401 | ATA_HORKAGE_MAX_SEC_LBA48 = (1 << 17), /* Set max sects to 65535 */ | ||
| 401 | 402 | ||
| 402 | /* DMA mask for user DMA control: User visible values; DO NOT | 403 | /* DMA mask for user DMA control: User visible values; DO NOT |
| 403 | renumber */ | 404 | renumber */ |
diff --git a/include/linux/list.h b/include/linux/list.h index d991cc147c98..6a1f8df9144b 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
| @@ -667,7 +667,9 @@ static inline void hlist_move_list(struct hlist_head *old, | |||
| 667 | pos = n) | 667 | pos = n) |
| 668 | 668 | ||
| 669 | #define hlist_entry_safe(ptr, type, member) \ | 669 | #define hlist_entry_safe(ptr, type, member) \ |
| 670 | (ptr) ? hlist_entry(ptr, type, member) : NULL | 670 | ({ typeof(ptr) ____ptr = (ptr); \ |
| 671 | ____ptr ? hlist_entry(____ptr, type, member) : NULL; \ | ||
| 672 | }) | ||
| 671 | 673 | ||
| 672 | /** | 674 | /** |
| 673 | * hlist_for_each_entry - iterate over list of given type | 675 | * hlist_for_each_entry - iterate over list of given type |
diff --git a/include/linux/mfd/max77693-private.h b/include/linux/mfd/max77693-private.h index 5b18ecde69b5..1aa4f13cdfa6 100644 --- a/include/linux/mfd/max77693-private.h +++ b/include/linux/mfd/max77693-private.h | |||
| @@ -106,6 +106,29 @@ enum max77693_muic_reg { | |||
| 106 | MAX77693_MUIC_REG_END, | 106 | MAX77693_MUIC_REG_END, |
| 107 | }; | 107 | }; |
| 108 | 108 | ||
| 109 | /* MAX77693 INTMASK1~2 Register */ | ||
| 110 | #define INTMASK1_ADC1K_SHIFT 3 | ||
| 111 | #define INTMASK1_ADCERR_SHIFT 2 | ||
| 112 | #define INTMASK1_ADCLOW_SHIFT 1 | ||
| 113 | #define INTMASK1_ADC_SHIFT 0 | ||
| 114 | #define INTMASK1_ADC1K_MASK (1 << INTMASK1_ADC1K_SHIFT) | ||
| 115 | #define INTMASK1_ADCERR_MASK (1 << INTMASK1_ADCERR_SHIFT) | ||
| 116 | #define INTMASK1_ADCLOW_MASK (1 << INTMASK1_ADCLOW_SHIFT) | ||
| 117 | #define INTMASK1_ADC_MASK (1 << INTMASK1_ADC_SHIFT) | ||
| 118 | |||
| 119 | #define INTMASK2_VIDRM_SHIFT 5 | ||
| 120 | #define INTMASK2_VBVOLT_SHIFT 4 | ||
| 121 | #define INTMASK2_DXOVP_SHIFT 3 | ||
| 122 | #define INTMASK2_DCDTMR_SHIFT 2 | ||
| 123 | #define INTMASK2_CHGDETRUN_SHIFT 1 | ||
| 124 | #define INTMASK2_CHGTYP_SHIFT 0 | ||
| 125 | #define INTMASK2_VIDRM_MASK (1 << INTMASK2_VIDRM_SHIFT) | ||
| 126 | #define INTMASK2_VBVOLT_MASK (1 << INTMASK2_VBVOLT_SHIFT) | ||
| 127 | #define INTMASK2_DXOVP_MASK (1 << INTMASK2_DXOVP_SHIFT) | ||
| 128 | #define INTMASK2_DCDTMR_MASK (1 << INTMASK2_DCDTMR_SHIFT) | ||
| 129 | #define INTMASK2_CHGDETRUN_MASK (1 << INTMASK2_CHGDETRUN_SHIFT) | ||
| 130 | #define INTMASK2_CHGTYP_MASK (1 << INTMASK2_CHGTYP_SHIFT) | ||
| 131 | |||
| 109 | /* MAX77693 MUIC - STATUS1~3 Register */ | 132 | /* MAX77693 MUIC - STATUS1~3 Register */ |
| 110 | #define STATUS1_ADC_SHIFT (0) | 133 | #define STATUS1_ADC_SHIFT (0) |
| 111 | #define STATUS1_ADCLOW_SHIFT (5) | 134 | #define STATUS1_ADCLOW_SHIFT (5) |
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h index a4d13d7cd001..3bbda22721ea 100644 --- a/include/linux/mfd/palmas.h +++ b/include/linux/mfd/palmas.h | |||
| @@ -221,6 +221,7 @@ struct palmas_clk_platform_data { | |||
| 221 | }; | 221 | }; |
| 222 | 222 | ||
| 223 | struct palmas_platform_data { | 223 | struct palmas_platform_data { |
| 224 | int irq_flags; | ||
| 224 | int gpio_base; | 225 | int gpio_base; |
| 225 | 226 | ||
| 226 | /* bit value to be loaded to the POWER_CTRL register */ | 227 | /* bit value to be loaded to the POWER_CTRL register */ |
diff --git a/include/linux/mfd/tps65912.h b/include/linux/mfd/tps65912.h index aaceab402ec5..6d309032dc0d 100644 --- a/include/linux/mfd/tps65912.h +++ b/include/linux/mfd/tps65912.h | |||
| @@ -323,5 +323,6 @@ int tps65912_device_init(struct tps65912 *tps65912); | |||
| 323 | void tps65912_device_exit(struct tps65912 *tps65912); | 323 | void tps65912_device_exit(struct tps65912 *tps65912); |
| 324 | int tps65912_irq_init(struct tps65912 *tps65912, int irq, | 324 | int tps65912_irq_init(struct tps65912 *tps65912, int irq, |
| 325 | struct tps65912_platform_data *pdata); | 325 | struct tps65912_platform_data *pdata); |
| 326 | int tps65912_irq_exit(struct tps65912 *tps65912); | ||
| 326 | 327 | ||
| 327 | #endif /* __LINUX_MFD_TPS65912_H */ | 328 | #endif /* __LINUX_MFD_TPS65912_H */ |
diff --git a/include/linux/mfd/wm831x/auxadc.h b/include/linux/mfd/wm831x/auxadc.h index b132067e9e99..867aa23f9370 100644 --- a/include/linux/mfd/wm831x/auxadc.h +++ b/include/linux/mfd/wm831x/auxadc.h | |||
| @@ -15,6 +15,8 @@ | |||
| 15 | #ifndef __MFD_WM831X_AUXADC_H__ | 15 | #ifndef __MFD_WM831X_AUXADC_H__ |
| 16 | #define __MFD_WM831X_AUXADC_H__ | 16 | #define __MFD_WM831X_AUXADC_H__ |
| 17 | 17 | ||
| 18 | struct wm831x; | ||
| 19 | |||
| 18 | /* | 20 | /* |
| 19 | * R16429 (0x402D) - AuxADC Data | 21 | * R16429 (0x402D) - AuxADC Data |
| 20 | */ | 22 | */ |
diff --git a/include/linux/mfd/wm831x/core.h b/include/linux/mfd/wm831x/core.h index 4a3b83a77614..76c22648436f 100644 --- a/include/linux/mfd/wm831x/core.h +++ b/include/linux/mfd/wm831x/core.h | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/irqdomain.h> | 20 | #include <linux/irqdomain.h> |
| 21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
| 22 | #include <linux/regmap.h> | 22 | #include <linux/regmap.h> |
| 23 | #include <linux/mfd/wm831x/auxadc.h> | ||
| 23 | 24 | ||
| 24 | /* | 25 | /* |
| 25 | * Register values. | 26 | * Register values. |
| @@ -355,7 +356,6 @@ enum wm831x_parent { | |||
| 355 | }; | 356 | }; |
| 356 | 357 | ||
| 357 | struct wm831x; | 358 | struct wm831x; |
| 358 | enum wm831x_auxadc; | ||
| 359 | 359 | ||
| 360 | typedef int (*wm831x_auxadc_read_fn)(struct wm831x *wm831x, | 360 | typedef int (*wm831x_auxadc_read_fn)(struct wm831x *wm831x, |
| 361 | enum wm831x_auxadc input); | 361 | enum wm831x_auxadc input); |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 7acc9dc73c9f..e19ff30ad0a2 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -87,7 +87,6 @@ extern unsigned int kobjsize(const void *objp); | |||
| 87 | #define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */ | 87 | #define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */ |
| 88 | #define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */ | 88 | #define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */ |
| 89 | 89 | ||
| 90 | #define VM_POPULATE 0x00001000 | ||
| 91 | #define VM_LOCKED 0x00002000 | 90 | #define VM_LOCKED 0x00002000 |
| 92 | #define VM_IO 0x00004000 /* Memory mapped I/O or similar */ | 91 | #define VM_IO 0x00004000 /* Memory mapped I/O or similar */ |
| 93 | 92 | ||
diff --git a/include/linux/mman.h b/include/linux/mman.h index 61c7a87e5d2b..9aa863da287f 100644 --- a/include/linux/mman.h +++ b/include/linux/mman.h | |||
| @@ -79,8 +79,6 @@ calc_vm_flag_bits(unsigned long flags) | |||
| 79 | { | 79 | { |
| 80 | return _calc_vm_trans(flags, MAP_GROWSDOWN, VM_GROWSDOWN ) | | 80 | return _calc_vm_trans(flags, MAP_GROWSDOWN, VM_GROWSDOWN ) | |
| 81 | _calc_vm_trans(flags, MAP_DENYWRITE, VM_DENYWRITE ) | | 81 | _calc_vm_trans(flags, MAP_DENYWRITE, VM_DENYWRITE ) | |
| 82 | ((flags & MAP_LOCKED) ? (VM_LOCKED | VM_POPULATE) : 0) | | 82 | _calc_vm_trans(flags, MAP_LOCKED, VM_LOCKED ); |
| 83 | (((flags & (MAP_POPULATE | MAP_NONBLOCK)) == MAP_POPULATE) ? | ||
| 84 | VM_POPULATE : 0); | ||
| 85 | } | 83 | } |
| 86 | #endif /* _LINUX_MMAN_H */ | 84 | #endif /* _LINUX_MMAN_H */ |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index ede274957e05..c74092eebf5c 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
| @@ -527,7 +527,7 @@ static inline int zone_is_oom_locked(const struct zone *zone) | |||
| 527 | return test_bit(ZONE_OOM_LOCKED, &zone->flags); | 527 | return test_bit(ZONE_OOM_LOCKED, &zone->flags); |
| 528 | } | 528 | } |
| 529 | 529 | ||
| 530 | static inline unsigned zone_end_pfn(const struct zone *zone) | 530 | static inline unsigned long zone_end_pfn(const struct zone *zone) |
| 531 | { | 531 | { |
| 532 | return zone->zone_start_pfn + zone->spanned_pages; | 532 | return zone->zone_start_pfn + zone->spanned_pages; |
| 533 | } | 533 | } |
diff --git a/include/linux/mount.h b/include/linux/mount.h index d7029f4a191a..73005f9957ea 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h | |||
| @@ -47,6 +47,8 @@ struct mnt_namespace; | |||
| 47 | 47 | ||
| 48 | #define MNT_INTERNAL 0x4000 | 48 | #define MNT_INTERNAL 0x4000 |
| 49 | 49 | ||
| 50 | #define MNT_LOCK_READONLY 0x400000 | ||
| 51 | |||
| 50 | struct vfsmount { | 52 | struct vfsmount { |
| 51 | struct dentry *mnt_root; /* root of the mounted tree */ | 53 | struct dentry *mnt_root; /* root of the mounted tree */ |
| 52 | struct super_block *mnt_sb; /* pointer to superblock */ | 54 | struct super_block *mnt_sb; /* pointer to superblock */ |
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 7ccb3c59ed60..ef52d9c91459 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h | |||
| @@ -187,6 +187,13 @@ typedef enum { | |||
| 187 | * This happens with the Renesas AG-AND chips, possibly others. | 187 | * This happens with the Renesas AG-AND chips, possibly others. |
| 188 | */ | 188 | */ |
| 189 | #define BBT_AUTO_REFRESH 0x00000080 | 189 | #define BBT_AUTO_REFRESH 0x00000080 |
| 190 | /* | ||
| 191 | * Chip requires ready check on read (for auto-incremented sequential read). | ||
| 192 | * True only for small page devices; large page devices do not support | ||
| 193 | * autoincrement. | ||
| 194 | */ | ||
| 195 | #define NAND_NEED_READRDY 0x00000100 | ||
| 196 | |||
| 190 | /* Chip does not allow subpage writes */ | 197 | /* Chip does not allow subpage writes */ |
| 191 | #define NAND_NO_SUBPAGE_WRITE 0x00000200 | 198 | #define NAND_NO_SUBPAGE_WRITE 0x00000200 |
| 192 | 199 | ||
diff --git a/include/linux/mxsfb.h b/include/linux/mxsfb.h index f14943d55315..f80af8674342 100644 --- a/include/linux/mxsfb.h +++ b/include/linux/mxsfb.h | |||
| @@ -24,8 +24,8 @@ | |||
| 24 | #define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */ | 24 | #define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */ |
| 25 | #define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */ | 25 | #define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */ |
| 26 | 26 | ||
| 27 | #define FB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6) | 27 | #define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6) |
| 28 | #define FB_SYNC_DOTCLK_FAILING_ACT (1 << 7) /* failing/negtive edge sampling */ | 28 | #define MXSFB_SYNC_DOTCLK_FAILING_ACT (1 << 7) /* failing/negtive edge sampling */ |
| 29 | 29 | ||
| 30 | struct mxsfb_platform_data { | 30 | struct mxsfb_platform_data { |
| 31 | struct fb_videomode *mode_list; | 31 | struct fb_videomode *mode_list; |
| @@ -44,6 +44,9 @@ struct mxsfb_platform_data { | |||
| 44 | * allocated. If specified,fb_size must also be specified. | 44 | * allocated. If specified,fb_size must also be specified. |
| 45 | * fb_phys must be unused by Linux. | 45 | * fb_phys must be unused by Linux. |
| 46 | */ | 46 | */ |
| 47 | u32 sync; /* sync mask, contains MXSFB specifics not | ||
| 48 | * carried in fb_info->var.sync | ||
| 49 | */ | ||
| 47 | }; | 50 | }; |
| 48 | 51 | ||
| 49 | #endif /* __LINUX_MXSFB_H */ | 52 | #endif /* __LINUX_MXSFB_H */ |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index b3d00fa4b314..6151e903eef0 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -210,9 +210,9 @@ struct netdev_hw_addr { | |||
| 210 | #define NETDEV_HW_ADDR_T_SLAVE 3 | 210 | #define NETDEV_HW_ADDR_T_SLAVE 3 |
| 211 | #define NETDEV_HW_ADDR_T_UNICAST 4 | 211 | #define NETDEV_HW_ADDR_T_UNICAST 4 |
| 212 | #define NETDEV_HW_ADDR_T_MULTICAST 5 | 212 | #define NETDEV_HW_ADDR_T_MULTICAST 5 |
| 213 | bool synced; | ||
| 214 | bool global_use; | 213 | bool global_use; |
| 215 | int refcount; | 214 | int refcount; |
| 215 | int synced; | ||
| 216 | struct rcu_head rcu_head; | 216 | struct rcu_head rcu_head; |
| 217 | }; | 217 | }; |
| 218 | 218 | ||
| @@ -895,7 +895,7 @@ struct netdev_fcoe_hbainfo { | |||
| 895 | * | 895 | * |
| 896 | * int (*ndo_bridge_setlink)(struct net_device *dev, struct nlmsghdr *nlh) | 896 | * int (*ndo_bridge_setlink)(struct net_device *dev, struct nlmsghdr *nlh) |
| 897 | * int (*ndo_bridge_getlink)(struct sk_buff *skb, u32 pid, u32 seq, | 897 | * int (*ndo_bridge_getlink)(struct sk_buff *skb, u32 pid, u32 seq, |
| 898 | * struct net_device *dev) | 898 | * struct net_device *dev, u32 filter_mask) |
| 899 | * | 899 | * |
| 900 | * int (*ndo_change_carrier)(struct net_device *dev, bool new_carrier); | 900 | * int (*ndo_change_carrier)(struct net_device *dev, bool new_carrier); |
| 901 | * Called to change device carrier. Soft-devices (like dummy, team, etc) | 901 | * Called to change device carrier. Soft-devices (like dummy, team, etc) |
diff --git a/include/linux/nvme.h b/include/linux/nvme.h index c25cccaa555a..4fa3b0b9b071 100644 --- a/include/linux/nvme.h +++ b/include/linux/nvme.h | |||
| @@ -137,6 +137,34 @@ enum { | |||
| 137 | NVME_LBAF_RP_DEGRADED = 3, | 137 | NVME_LBAF_RP_DEGRADED = 3, |
| 138 | }; | 138 | }; |
| 139 | 139 | ||
| 140 | struct nvme_smart_log { | ||
| 141 | __u8 critical_warning; | ||
| 142 | __u8 temperature[2]; | ||
| 143 | __u8 avail_spare; | ||
| 144 | __u8 spare_thresh; | ||
| 145 | __u8 percent_used; | ||
| 146 | __u8 rsvd6[26]; | ||
| 147 | __u8 data_units_read[16]; | ||
| 148 | __u8 data_units_written[16]; | ||
| 149 | __u8 host_reads[16]; | ||
| 150 | __u8 host_writes[16]; | ||
| 151 | __u8 ctrl_busy_time[16]; | ||
| 152 | __u8 power_cycles[16]; | ||
| 153 | __u8 power_on_hours[16]; | ||
| 154 | __u8 unsafe_shutdowns[16]; | ||
| 155 | __u8 media_errors[16]; | ||
| 156 | __u8 num_err_log_entries[16]; | ||
| 157 | __u8 rsvd192[320]; | ||
| 158 | }; | ||
| 159 | |||
| 160 | enum { | ||
| 161 | NVME_SMART_CRIT_SPARE = 1 << 0, | ||
| 162 | NVME_SMART_CRIT_TEMPERATURE = 1 << 1, | ||
| 163 | NVME_SMART_CRIT_RELIABILITY = 1 << 2, | ||
| 164 | NVME_SMART_CRIT_MEDIA = 1 << 3, | ||
| 165 | NVME_SMART_CRIT_VOLATILE_MEMORY = 1 << 4, | ||
| 166 | }; | ||
| 167 | |||
| 140 | struct nvme_lba_range_type { | 168 | struct nvme_lba_range_type { |
| 141 | __u8 type; | 169 | __u8 type; |
| 142 | __u8 attributes; | 170 | __u8 attributes; |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 2461033a7987..710067f3618c 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -916,6 +916,7 @@ void pci_disable_rom(struct pci_dev *pdev); | |||
| 916 | void __iomem __must_check *pci_map_rom(struct pci_dev *pdev, size_t *size); | 916 | void __iomem __must_check *pci_map_rom(struct pci_dev *pdev, size_t *size); |
| 917 | void pci_unmap_rom(struct pci_dev *pdev, void __iomem *rom); | 917 | void pci_unmap_rom(struct pci_dev *pdev, void __iomem *rom); |
| 918 | size_t pci_get_rom_size(struct pci_dev *pdev, void __iomem *rom, size_t size); | 918 | size_t pci_get_rom_size(struct pci_dev *pdev, void __iomem *rom, size_t size); |
| 919 | void __iomem __must_check *pci_platform_rom(struct pci_dev *pdev, size_t *size); | ||
| 919 | 920 | ||
| 920 | /* Power management related routines */ | 921 | /* Power management related routines */ |
| 921 | int pci_save_state(struct pci_dev *dev); | 922 | int pci_save_state(struct pci_dev *dev); |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index e47ee462c2f2..1d795df6f4cf 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -799,6 +799,12 @@ static inline int __perf_event_disable(void *info) { return -1; } | |||
| 799 | static inline void perf_event_task_tick(void) { } | 799 | static inline void perf_event_task_tick(void) { } |
| 800 | #endif | 800 | #endif |
| 801 | 801 | ||
| 802 | #if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_INTEL) | ||
| 803 | extern void perf_restore_debug_store(void); | ||
| 804 | #else | ||
| 805 | static inline void perf_restore_debug_store(void) { } | ||
| 806 | #endif | ||
| 807 | |||
| 802 | #define perf_output_put(handle, x) perf_output_copy((handle), &(x), sizeof(x)) | 808 | #define perf_output_put(handle, x) perf_output_copy((handle), &(x), sizeof(x)) |
| 803 | 809 | ||
| 804 | /* | 810 | /* |
diff --git a/include/linux/preempt.h b/include/linux/preempt.h index 5a710b9c578e..87a03c746f17 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h | |||
| @@ -93,14 +93,20 @@ do { \ | |||
| 93 | 93 | ||
| 94 | #else /* !CONFIG_PREEMPT_COUNT */ | 94 | #else /* !CONFIG_PREEMPT_COUNT */ |
| 95 | 95 | ||
| 96 | #define preempt_disable() do { } while (0) | 96 | /* |
| 97 | #define sched_preempt_enable_no_resched() do { } while (0) | 97 | * Even if we don't have any preemption, we need preempt disable/enable |
| 98 | #define preempt_enable_no_resched() do { } while (0) | 98 | * to be barriers, so that we don't have things like get_user/put_user |
| 99 | #define preempt_enable() do { } while (0) | 99 | * that can cause faults and scheduling migrate into our preempt-protected |
| 100 | 100 | * region. | |
| 101 | #define preempt_disable_notrace() do { } while (0) | 101 | */ |
| 102 | #define preempt_enable_no_resched_notrace() do { } while (0) | 102 | #define preempt_disable() barrier() |
| 103 | #define preempt_enable_notrace() do { } while (0) | 103 | #define sched_preempt_enable_no_resched() barrier() |
| 104 | #define preempt_enable_no_resched() barrier() | ||
| 105 | #define preempt_enable() barrier() | ||
| 106 | |||
| 107 | #define preempt_disable_notrace() barrier() | ||
| 108 | #define preempt_enable_no_resched_notrace() barrier() | ||
| 109 | #define preempt_enable_notrace() barrier() | ||
| 104 | 110 | ||
| 105 | #endif /* CONFIG_PREEMPT_COUNT */ | 111 | #endif /* CONFIG_PREEMPT_COUNT */ |
| 106 | 112 | ||
diff --git a/include/linux/printk.h b/include/linux/printk.h index 1249a54d17e0..822171fcb1c8 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h | |||
| @@ -134,6 +134,8 @@ extern int printk_delay_msec; | |||
| 134 | extern int dmesg_restrict; | 134 | extern int dmesg_restrict; |
| 135 | extern int kptr_restrict; | 135 | extern int kptr_restrict; |
| 136 | 136 | ||
| 137 | extern void wake_up_klogd(void); | ||
| 138 | |||
| 137 | void log_buf_kexec_setup(void); | 139 | void log_buf_kexec_setup(void); |
| 138 | void __init setup_log_buf(int early); | 140 | void __init setup_log_buf(int early); |
| 139 | #else | 141 | #else |
| @@ -162,6 +164,10 @@ static inline bool printk_timed_ratelimit(unsigned long *caller_jiffies, | |||
| 162 | return false; | 164 | return false; |
| 163 | } | 165 | } |
| 164 | 166 | ||
| 167 | static inline void wake_up_klogd(void) | ||
| 168 | { | ||
| 169 | } | ||
| 170 | |||
| 165 | static inline void log_buf_kexec_setup(void) | 171 | static inline void log_buf_kexec_setup(void) |
| 166 | { | 172 | { |
| 167 | } | 173 | } |
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index 8307f2f94d86..94dfb2aa5533 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h | |||
| @@ -117,6 +117,7 @@ struct proc_dir_entry *proc_create_data(const char *name, umode_t mode, | |||
| 117 | const struct file_operations *proc_fops, | 117 | const struct file_operations *proc_fops, |
| 118 | void *data); | 118 | void *data); |
| 119 | extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent); | 119 | extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent); |
| 120 | extern int remove_proc_subtree(const char *name, struct proc_dir_entry *parent); | ||
| 120 | 121 | ||
| 121 | struct pid_namespace; | 122 | struct pid_namespace; |
| 122 | 123 | ||
| @@ -202,6 +203,7 @@ static inline struct proc_dir_entry *proc_create_data(const char *name, | |||
| 202 | return NULL; | 203 | return NULL; |
| 203 | } | 204 | } |
| 204 | #define remove_proc_entry(name, parent) do {} while (0) | 205 | #define remove_proc_entry(name, parent) do {} while (0) |
| 206 | #define remove_proc_subtree(name, parent) do {} while (0) | ||
| 205 | 207 | ||
| 206 | static inline struct proc_dir_entry *proc_symlink(const char *name, | 208 | static inline struct proc_dir_entry *proc_symlink(const char *name, |
| 207 | struct proc_dir_entry *parent,const char *dest) {return NULL;} | 209 | struct proc_dir_entry *parent,const char *dest) {return NULL;} |
diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h index 5ae8456d9670..c23099413ad6 100644 --- a/include/linux/res_counter.h +++ b/include/linux/res_counter.h | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | */ | 14 | */ |
| 15 | 15 | ||
| 16 | #include <linux/cgroup.h> | 16 | #include <linux/cgroup.h> |
| 17 | #include <linux/errno.h> | ||
| 17 | 18 | ||
| 18 | /* | 19 | /* |
| 19 | * The core object. the cgroup that wishes to account for some | 20 | * The core object. the cgroup that wishes to account for some |
diff --git a/include/linux/signal.h b/include/linux/signal.h index a2dcb94ea49d..9475c5cb28bc 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h | |||
| @@ -250,11 +250,11 @@ extern int show_unhandled_signals; | |||
| 250 | extern int sigsuspend(sigset_t *); | 250 | extern int sigsuspend(sigset_t *); |
| 251 | 251 | ||
| 252 | struct sigaction { | 252 | struct sigaction { |
| 253 | #ifndef __ARCH_HAS_ODD_SIGACTION | 253 | #ifndef __ARCH_HAS_IRIX_SIGACTION |
| 254 | __sighandler_t sa_handler; | 254 | __sighandler_t sa_handler; |
| 255 | unsigned long sa_flags; | 255 | unsigned long sa_flags; |
| 256 | #else | 256 | #else |
| 257 | unsigned long sa_flags; | 257 | unsigned int sa_flags; |
| 258 | __sighandler_t sa_handler; | 258 | __sighandler_t sa_handler; |
| 259 | #endif | 259 | #endif |
| 260 | #ifdef __ARCH_HAS_SA_RESTORER | 260 | #ifdef __ARCH_HAS_SA_RESTORER |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 821c7f45d2a7..b8292d8cc9fa 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -500,7 +500,7 @@ struct sk_buff { | |||
| 500 | union { | 500 | union { |
| 501 | __u32 mark; | 501 | __u32 mark; |
| 502 | __u32 dropcount; | 502 | __u32 dropcount; |
| 503 | __u32 avail_size; | 503 | __u32 reserved_tailroom; |
| 504 | }; | 504 | }; |
| 505 | 505 | ||
| 506 | sk_buff_data_t inner_transport_header; | 506 | sk_buff_data_t inner_transport_header; |
| @@ -1288,11 +1288,13 @@ static inline void __skb_fill_page_desc(struct sk_buff *skb, int i, | |||
| 1288 | * do not lose pfmemalloc information as the pages would not be | 1288 | * do not lose pfmemalloc information as the pages would not be |
| 1289 | * allocated using __GFP_MEMALLOC. | 1289 | * allocated using __GFP_MEMALLOC. |
| 1290 | */ | 1290 | */ |
| 1291 | if (page->pfmemalloc && !page->mapping) | ||
| 1292 | skb->pfmemalloc = true; | ||
| 1293 | frag->page.p = page; | 1291 | frag->page.p = page; |
| 1294 | frag->page_offset = off; | 1292 | frag->page_offset = off; |
| 1295 | skb_frag_size_set(frag, size); | 1293 | skb_frag_size_set(frag, size); |
| 1294 | |||
| 1295 | page = compound_head(page); | ||
| 1296 | if (page->pfmemalloc && !page->mapping) | ||
| 1297 | skb->pfmemalloc = true; | ||
| 1296 | } | 1298 | } |
| 1297 | 1299 | ||
| 1298 | /** | 1300 | /** |
| @@ -1447,7 +1449,10 @@ static inline int skb_tailroom(const struct sk_buff *skb) | |||
| 1447 | */ | 1449 | */ |
| 1448 | static inline int skb_availroom(const struct sk_buff *skb) | 1450 | static inline int skb_availroom(const struct sk_buff *skb) |
| 1449 | { | 1451 | { |
| 1450 | return skb_is_nonlinear(skb) ? 0 : skb->avail_size - skb->len; | 1452 | if (skb_is_nonlinear(skb)) |
| 1453 | return 0; | ||
| 1454 | |||
| 1455 | return skb->end - skb->tail - skb->reserved_tailroom; | ||
| 1451 | } | 1456 | } |
| 1452 | 1457 | ||
| 1453 | /** | 1458 | /** |
| @@ -2638,6 +2643,13 @@ static inline void nf_reset(struct sk_buff *skb) | |||
| 2638 | #endif | 2643 | #endif |
| 2639 | } | 2644 | } |
| 2640 | 2645 | ||
| 2646 | static inline void nf_reset_trace(struct sk_buff *skb) | ||
| 2647 | { | ||
| 2648 | #if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE) | ||
| 2649 | skb->nf_trace = 0; | ||
| 2650 | #endif | ||
| 2651 | } | ||
| 2652 | |||
| 2641 | /* Note: This doesn't put any conntrack and bridge info in dst. */ | 2653 | /* Note: This doesn't put any conntrack and bridge info in dst. */ |
| 2642 | static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src) | 2654 | static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src) |
| 2643 | { | 2655 | { |
diff --git a/include/linux/spinlock_up.h b/include/linux/spinlock_up.h index a26e2fb604e6..e2369c167dbd 100644 --- a/include/linux/spinlock_up.h +++ b/include/linux/spinlock_up.h | |||
| @@ -16,7 +16,10 @@ | |||
| 16 | * In the debug case, 1 means unlocked, 0 means locked. (the values | 16 | * In the debug case, 1 means unlocked, 0 means locked. (the values |
| 17 | * are inverted, to catch initialization bugs) | 17 | * are inverted, to catch initialization bugs) |
| 18 | * | 18 | * |
| 19 | * No atomicity anywhere, we are on UP. | 19 | * No atomicity anywhere, we are on UP. However, we still need |
| 20 | * the compiler barriers, because we do not want the compiler to | ||
| 21 | * move potentially faulting instructions (notably user accesses) | ||
| 22 | * into the locked sequence, resulting in non-atomic execution. | ||
| 20 | */ | 23 | */ |
| 21 | 24 | ||
| 22 | #ifdef CONFIG_DEBUG_SPINLOCK | 25 | #ifdef CONFIG_DEBUG_SPINLOCK |
| @@ -25,6 +28,7 @@ | |||
| 25 | static inline void arch_spin_lock(arch_spinlock_t *lock) | 28 | static inline void arch_spin_lock(arch_spinlock_t *lock) |
| 26 | { | 29 | { |
| 27 | lock->slock = 0; | 30 | lock->slock = 0; |
| 31 | barrier(); | ||
| 28 | } | 32 | } |
| 29 | 33 | ||
| 30 | static inline void | 34 | static inline void |
| @@ -32,6 +36,7 @@ arch_spin_lock_flags(arch_spinlock_t *lock, unsigned long flags) | |||
| 32 | { | 36 | { |
| 33 | local_irq_save(flags); | 37 | local_irq_save(flags); |
| 34 | lock->slock = 0; | 38 | lock->slock = 0; |
| 39 | barrier(); | ||
| 35 | } | 40 | } |
| 36 | 41 | ||
| 37 | static inline int arch_spin_trylock(arch_spinlock_t *lock) | 42 | static inline int arch_spin_trylock(arch_spinlock_t *lock) |
| @@ -39,32 +44,34 @@ static inline int arch_spin_trylock(arch_spinlock_t *lock) | |||
| 39 | char oldval = lock->slock; | 44 | char oldval = lock->slock; |
| 40 | 45 | ||
| 41 | lock->slock = 0; | 46 | lock->slock = 0; |
| 47 | barrier(); | ||
| 42 | 48 | ||
| 43 | return oldval > 0; | 49 | return oldval > 0; |
| 44 | } | 50 | } |
| 45 | 51 | ||
| 46 | static inline void arch_spin_unlock(arch_spinlock_t *lock) | 52 | static inline void arch_spin_unlock(arch_spinlock_t *lock) |
| 47 | { | 53 | { |
| 54 | barrier(); | ||
| 48 | lock->slock = 1; | 55 | lock->slock = 1; |
| 49 | } | 56 | } |
| 50 | 57 | ||
| 51 | /* | 58 | /* |
| 52 | * Read-write spinlocks. No debug version. | 59 | * Read-write spinlocks. No debug version. |
| 53 | */ | 60 | */ |
| 54 | #define arch_read_lock(lock) do { (void)(lock); } while (0) | 61 | #define arch_read_lock(lock) do { barrier(); (void)(lock); } while (0) |
| 55 | #define arch_write_lock(lock) do { (void)(lock); } while (0) | 62 | #define arch_write_lock(lock) do { barrier(); (void)(lock); } while (0) |
| 56 | #define arch_read_trylock(lock) ({ (void)(lock); 1; }) | 63 | #define arch_read_trylock(lock) ({ barrier(); (void)(lock); 1; }) |
| 57 | #define arch_write_trylock(lock) ({ (void)(lock); 1; }) | 64 | #define arch_write_trylock(lock) ({ barrier(); (void)(lock); 1; }) |
| 58 | #define arch_read_unlock(lock) do { (void)(lock); } while (0) | 65 | #define arch_read_unlock(lock) do { barrier(); (void)(lock); } while (0) |
| 59 | #define arch_write_unlock(lock) do { (void)(lock); } while (0) | 66 | #define arch_write_unlock(lock) do { barrier(); (void)(lock); } while (0) |
| 60 | 67 | ||
| 61 | #else /* DEBUG_SPINLOCK */ | 68 | #else /* DEBUG_SPINLOCK */ |
| 62 | #define arch_spin_is_locked(lock) ((void)(lock), 0) | 69 | #define arch_spin_is_locked(lock) ((void)(lock), 0) |
| 63 | /* for sched.c and kernel_lock.c: */ | 70 | /* for sched.c and kernel_lock.c: */ |
| 64 | # define arch_spin_lock(lock) do { (void)(lock); } while (0) | 71 | # define arch_spin_lock(lock) do { barrier(); (void)(lock); } while (0) |
| 65 | # define arch_spin_lock_flags(lock, flags) do { (void)(lock); } while (0) | 72 | # define arch_spin_lock_flags(lock, flags) do { barrier(); (void)(lock); } while (0) |
| 66 | # define arch_spin_unlock(lock) do { (void)(lock); } while (0) | 73 | # define arch_spin_unlock(lock) do { barrier(); (void)(lock); } while (0) |
| 67 | # define arch_spin_trylock(lock) ({ (void)(lock); 1; }) | 74 | # define arch_spin_trylock(lock) ({ barrier(); (void)(lock); 1; }) |
| 68 | #endif /* DEBUG_SPINLOCK */ | 75 | #endif /* DEBUG_SPINLOCK */ |
| 69 | 76 | ||
| 70 | #define arch_spin_is_contended(lock) (((void)(lock), 0)) | 77 | #define arch_spin_is_contended(lock) (((void)(lock), 0)) |
diff --git a/include/linux/thermal.h b/include/linux/thermal.h index f0bd7f90a90d..e3c0ae9bb1fa 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h | |||
| @@ -44,7 +44,7 @@ | |||
| 44 | /* Adding event notification support elements */ | 44 | /* Adding event notification support elements */ |
| 45 | #define THERMAL_GENL_FAMILY_NAME "thermal_event" | 45 | #define THERMAL_GENL_FAMILY_NAME "thermal_event" |
| 46 | #define THERMAL_GENL_VERSION 0x01 | 46 | #define THERMAL_GENL_VERSION 0x01 |
| 47 | #define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_group" | 47 | #define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_grp" |
| 48 | 48 | ||
| 49 | /* Default Thermal Governor */ | 49 | /* Default Thermal Governor */ |
| 50 | #if defined(CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE) | 50 | #if defined(CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE) |
diff --git a/include/linux/udp.h b/include/linux/udp.h index 9d81de123c90..42278bbf7a88 100644 --- a/include/linux/udp.h +++ b/include/linux/udp.h | |||
| @@ -68,6 +68,7 @@ struct udp_sock { | |||
| 68 | * For encapsulation sockets. | 68 | * For encapsulation sockets. |
| 69 | */ | 69 | */ |
| 70 | int (*encap_rcv)(struct sock *sk, struct sk_buff *skb); | 70 | int (*encap_rcv)(struct sock *sk, struct sk_buff *skb); |
| 71 | void (*encap_destroy)(struct sock *sk); | ||
| 71 | }; | 72 | }; |
| 72 | 73 | ||
| 73 | static inline struct udp_sock *udp_sk(const struct sock *sk) | 74 | static inline struct udp_sock *udp_sk(const struct sock *sk) |
diff --git a/include/linux/usb/cdc_ncm.h b/include/linux/usb/cdc_ncm.h index 3b8f9d4fc3fe..cc25b70af33c 100644 --- a/include/linux/usb/cdc_ncm.h +++ b/include/linux/usb/cdc_ncm.h | |||
| @@ -127,6 +127,7 @@ struct cdc_ncm_ctx { | |||
| 127 | u16 connected; | 127 | u16 connected; |
| 128 | }; | 128 | }; |
| 129 | 129 | ||
| 130 | extern u8 cdc_ncm_select_altsetting(struct usbnet *dev, struct usb_interface *intf); | ||
| 130 | extern int cdc_ncm_bind_common(struct usbnet *dev, struct usb_interface *intf, u8 data_altsetting); | 131 | extern int cdc_ncm_bind_common(struct usbnet *dev, struct usb_interface *intf, u8 data_altsetting); |
| 131 | extern void cdc_ncm_unbind(struct usbnet *dev, struct usb_interface *intf); | 132 | extern void cdc_ncm_unbind(struct usbnet *dev, struct usb_interface *intf); |
| 132 | extern struct sk_buff *cdc_ncm_fill_tx_frame(struct cdc_ncm_ctx *ctx, struct sk_buff *skb, __le32 sign); | 133 | extern struct sk_buff *cdc_ncm_fill_tx_frame(struct cdc_ncm_ctx *ctx, struct sk_buff *skb, __le32 sign); |
diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index 3c671c1b37f6..8860594d6364 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h | |||
| @@ -60,7 +60,7 @@ struct usb_configuration; | |||
| 60 | * @name: For diagnostics, identifies the function. | 60 | * @name: For diagnostics, identifies the function. |
| 61 | * @strings: tables of strings, keyed by identifiers assigned during bind() | 61 | * @strings: tables of strings, keyed by identifiers assigned during bind() |
| 62 | * and by language IDs provided in control requests | 62 | * and by language IDs provided in control requests |
| 63 | * @descriptors: Table of full (or low) speed descriptors, using interface and | 63 | * @fs_descriptors: Table of full (or low) speed descriptors, using interface and |
| 64 | * string identifiers assigned during @bind(). If this pointer is null, | 64 | * string identifiers assigned during @bind(). If this pointer is null, |
| 65 | * the function will not be available at full speed (or at low speed). | 65 | * the function will not be available at full speed (or at low speed). |
| 66 | * @hs_descriptors: Table of high speed descriptors, using interface and | 66 | * @hs_descriptors: Table of high speed descriptors, using interface and |
| @@ -290,6 +290,7 @@ enum { | |||
| 290 | * after function notifications | 290 | * after function notifications |
| 291 | * @resume: Notifies configuration when the host restarts USB traffic, | 291 | * @resume: Notifies configuration when the host restarts USB traffic, |
| 292 | * before function notifications | 292 | * before function notifications |
| 293 | * @gadget_driver: Gadget driver controlling this driver | ||
| 293 | * | 294 | * |
| 294 | * Devices default to reporting self powered operation. Devices which rely | 295 | * Devices default to reporting self powered operation. Devices which rely |
| 295 | * on bus powered operation should report this in their @bind method. | 296 | * on bus powered operation should report this in their @bind method. |
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h index 0a78df5f6cfd..59694b5e5e90 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h | |||
| @@ -357,6 +357,7 @@ struct hc_driver { | |||
| 357 | */ | 357 | */ |
| 358 | int (*disable_usb3_lpm_timeout)(struct usb_hcd *, | 358 | int (*disable_usb3_lpm_timeout)(struct usb_hcd *, |
| 359 | struct usb_device *, enum usb3_link_state state); | 359 | struct usb_device *, enum usb3_link_state state); |
| 360 | int (*find_raw_port_number)(struct usb_hcd *, int); | ||
| 360 | }; | 361 | }; |
| 361 | 362 | ||
| 362 | extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); | 363 | extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); |
| @@ -396,6 +397,7 @@ extern int usb_hcd_is_primary_hcd(struct usb_hcd *hcd); | |||
| 396 | extern int usb_add_hcd(struct usb_hcd *hcd, | 397 | extern int usb_add_hcd(struct usb_hcd *hcd, |
| 397 | unsigned int irqnum, unsigned long irqflags); | 398 | unsigned int irqnum, unsigned long irqflags); |
| 398 | extern void usb_remove_hcd(struct usb_hcd *hcd); | 399 | extern void usb_remove_hcd(struct usb_hcd *hcd); |
| 400 | extern int usb_hcd_find_raw_port_number(struct usb_hcd *hcd, int port1); | ||
| 399 | 401 | ||
| 400 | struct platform_device; | 402 | struct platform_device; |
| 401 | extern void usb_hcd_platform_shutdown(struct platform_device *dev); | 403 | extern void usb_hcd_platform_shutdown(struct platform_device *dev); |
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h index ef9be7e1e190..1819b59aab2a 100644 --- a/include/linux/usb/serial.h +++ b/include/linux/usb/serial.h | |||
| @@ -66,6 +66,7 @@ | |||
| 66 | * port. | 66 | * port. |
| 67 | * @flags: usb serial port flags | 67 | * @flags: usb serial port flags |
| 68 | * @write_wait: a wait_queue_head_t used by the port. | 68 | * @write_wait: a wait_queue_head_t used by the port. |
| 69 | * @delta_msr_wait: modem-status-change wait queue | ||
| 69 | * @work: work queue entry for the line discipline waking up. | 70 | * @work: work queue entry for the line discipline waking up. |
| 70 | * @throttled: nonzero if the read urb is inactive to throttle the device | 71 | * @throttled: nonzero if the read urb is inactive to throttle the device |
| 71 | * @throttle_req: nonzero if the tty wants to throttle us | 72 | * @throttle_req: nonzero if the tty wants to throttle us |
| @@ -112,6 +113,7 @@ struct usb_serial_port { | |||
| 112 | 113 | ||
| 113 | unsigned long flags; | 114 | unsigned long flags; |
| 114 | wait_queue_head_t write_wait; | 115 | wait_queue_head_t write_wait; |
| 116 | wait_queue_head_t delta_msr_wait; | ||
| 115 | struct work_struct work; | 117 | struct work_struct work; |
| 116 | char throttled; | 118 | char throttled; |
| 117 | char throttle_req; | 119 | char throttle_req; |
diff --git a/include/linux/usb/ulpi.h b/include/linux/usb/ulpi.h index 6f033a415ecb..5c295c26ad37 100644 --- a/include/linux/usb/ulpi.h +++ b/include/linux/usb/ulpi.h | |||
| @@ -181,8 +181,16 @@ | |||
| 181 | 181 | ||
| 182 | /*-------------------------------------------------------------------------*/ | 182 | /*-------------------------------------------------------------------------*/ |
| 183 | 183 | ||
| 184 | #if IS_ENABLED(CONFIG_USB_ULPI) | ||
| 184 | struct usb_phy *otg_ulpi_create(struct usb_phy_io_ops *ops, | 185 | struct usb_phy *otg_ulpi_create(struct usb_phy_io_ops *ops, |
| 185 | unsigned int flags); | 186 | unsigned int flags); |
| 187 | #else | ||
| 188 | static inline struct usb_phy *otg_ulpi_create(struct usb_phy_io_ops *ops, | ||
| 189 | unsigned int flags) | ||
| 190 | { | ||
| 191 | return NULL; | ||
| 192 | } | ||
| 193 | #endif | ||
| 186 | 194 | ||
| 187 | #ifdef CONFIG_USB_ULPI_VIEWPORT | 195 | #ifdef CONFIG_USB_ULPI_VIEWPORT |
| 188 | /* access ops for controllers with a viewport register */ | 196 | /* access ops for controllers with a viewport register */ |
diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h index 4ce009324933..b6b215f13b45 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h | |||
| @@ -26,6 +26,8 @@ struct user_namespace { | |||
| 26 | kuid_t owner; | 26 | kuid_t owner; |
| 27 | kgid_t group; | 27 | kgid_t group; |
| 28 | unsigned int proc_inum; | 28 | unsigned int proc_inum; |
| 29 | bool may_mount_sysfs; | ||
| 30 | bool may_mount_proc; | ||
| 29 | }; | 31 | }; |
| 30 | 32 | ||
| 31 | extern struct user_namespace init_user_ns; | 33 | extern struct user_namespace init_user_ns; |
| @@ -82,4 +84,6 @@ static inline void put_user_ns(struct user_namespace *ns) | |||
| 82 | 84 | ||
| 83 | #endif | 85 | #endif |
| 84 | 86 | ||
| 87 | void update_mnt_policy(struct user_namespace *userns); | ||
| 88 | |||
| 85 | #endif /* _LINUX_USER_H */ | 89 | #endif /* _LINUX_USER_H */ |
