diff options
Diffstat (limited to 'include')
29 files changed, 204 insertions, 78 deletions
diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h index a24addfdfcec..0de6290df4da 100644 --- a/include/drm/drm_mm.h +++ b/include/drm/drm_mm.h | |||
| @@ -68,8 +68,8 @@ struct drm_mm_node { | |||
| 68 | unsigned scanned_preceeds_hole : 1; | 68 | unsigned scanned_preceeds_hole : 1; |
| 69 | unsigned allocated : 1; | 69 | unsigned allocated : 1; |
| 70 | unsigned long color; | 70 | unsigned long color; |
| 71 | unsigned long start; | 71 | u64 start; |
| 72 | unsigned long size; | 72 | u64 size; |
| 73 | struct drm_mm *mm; | 73 | struct drm_mm *mm; |
| 74 | }; | 74 | }; |
| 75 | 75 | ||
| @@ -82,16 +82,16 @@ struct drm_mm { | |||
| 82 | unsigned int scan_check_range : 1; | 82 | unsigned int scan_check_range : 1; |
| 83 | unsigned scan_alignment; | 83 | unsigned scan_alignment; |
| 84 | unsigned long scan_color; | 84 | unsigned long scan_color; |
| 85 | unsigned long scan_size; | 85 | u64 scan_size; |
| 86 | unsigned long scan_hit_start; | 86 | u64 scan_hit_start; |
| 87 | unsigned long scan_hit_end; | 87 | u64 scan_hit_end; |
| 88 | unsigned scanned_blocks; | 88 | unsigned scanned_blocks; |
| 89 | unsigned long scan_start; | 89 | u64 scan_start; |
| 90 | unsigned long scan_end; | 90 | u64 scan_end; |
| 91 | struct drm_mm_node *prev_scanned_node; | 91 | struct drm_mm_node *prev_scanned_node; |
| 92 | 92 | ||
| 93 | void (*color_adjust)(struct drm_mm_node *node, unsigned long color, | 93 | void (*color_adjust)(struct drm_mm_node *node, unsigned long color, |
| 94 | unsigned long *start, unsigned long *end); | 94 | u64 *start, u64 *end); |
| 95 | }; | 95 | }; |
| 96 | 96 | ||
| 97 | /** | 97 | /** |
| @@ -124,7 +124,7 @@ static inline bool drm_mm_initialized(struct drm_mm *mm) | |||
| 124 | return mm->hole_stack.next; | 124 | return mm->hole_stack.next; |
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | static inline unsigned long __drm_mm_hole_node_start(struct drm_mm_node *hole_node) | 127 | static inline u64 __drm_mm_hole_node_start(struct drm_mm_node *hole_node) |
| 128 | { | 128 | { |
| 129 | return hole_node->start + hole_node->size; | 129 | return hole_node->start + hole_node->size; |
| 130 | } | 130 | } |
| @@ -140,13 +140,13 @@ static inline unsigned long __drm_mm_hole_node_start(struct drm_mm_node *hole_no | |||
| 140 | * Returns: | 140 | * Returns: |
| 141 | * Start of the subsequent hole. | 141 | * Start of the subsequent hole. |
| 142 | */ | 142 | */ |
| 143 | static inline unsigned long drm_mm_hole_node_start(struct drm_mm_node *hole_node) | 143 | static inline u64 drm_mm_hole_node_start(struct drm_mm_node *hole_node) |
| 144 | { | 144 | { |
| 145 | BUG_ON(!hole_node->hole_follows); | 145 | BUG_ON(!hole_node->hole_follows); |
| 146 | return __drm_mm_hole_node_start(hole_node); | 146 | return __drm_mm_hole_node_start(hole_node); |
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | static inline unsigned long __drm_mm_hole_node_end(struct drm_mm_node *hole_node) | 149 | static inline u64 __drm_mm_hole_node_end(struct drm_mm_node *hole_node) |
| 150 | { | 150 | { |
| 151 | return list_entry(hole_node->node_list.next, | 151 | return list_entry(hole_node->node_list.next, |
| 152 | struct drm_mm_node, node_list)->start; | 152 | struct drm_mm_node, node_list)->start; |
| @@ -163,7 +163,7 @@ static inline unsigned long __drm_mm_hole_node_end(struct drm_mm_node *hole_node | |||
| 163 | * Returns: | 163 | * Returns: |
| 164 | * End of the subsequent hole. | 164 | * End of the subsequent hole. |
| 165 | */ | 165 | */ |
| 166 | static inline unsigned long drm_mm_hole_node_end(struct drm_mm_node *hole_node) | 166 | static inline u64 drm_mm_hole_node_end(struct drm_mm_node *hole_node) |
| 167 | { | 167 | { |
| 168 | return __drm_mm_hole_node_end(hole_node); | 168 | return __drm_mm_hole_node_end(hole_node); |
| 169 | } | 169 | } |
| @@ -222,7 +222,7 @@ int drm_mm_reserve_node(struct drm_mm *mm, struct drm_mm_node *node); | |||
| 222 | 222 | ||
| 223 | int drm_mm_insert_node_generic(struct drm_mm *mm, | 223 | int drm_mm_insert_node_generic(struct drm_mm *mm, |
| 224 | struct drm_mm_node *node, | 224 | struct drm_mm_node *node, |
| 225 | unsigned long size, | 225 | u64 size, |
| 226 | unsigned alignment, | 226 | unsigned alignment, |
| 227 | unsigned long color, | 227 | unsigned long color, |
| 228 | enum drm_mm_search_flags sflags, | 228 | enum drm_mm_search_flags sflags, |
| @@ -245,7 +245,7 @@ int drm_mm_insert_node_generic(struct drm_mm *mm, | |||
| 245 | */ | 245 | */ |
| 246 | static inline int drm_mm_insert_node(struct drm_mm *mm, | 246 | static inline int drm_mm_insert_node(struct drm_mm *mm, |
| 247 | struct drm_mm_node *node, | 247 | struct drm_mm_node *node, |
| 248 | unsigned long size, | 248 | u64 size, |
| 249 | unsigned alignment, | 249 | unsigned alignment, |
| 250 | enum drm_mm_search_flags flags) | 250 | enum drm_mm_search_flags flags) |
| 251 | { | 251 | { |
| @@ -255,11 +255,11 @@ static inline int drm_mm_insert_node(struct drm_mm *mm, | |||
| 255 | 255 | ||
| 256 | int drm_mm_insert_node_in_range_generic(struct drm_mm *mm, | 256 | int drm_mm_insert_node_in_range_generic(struct drm_mm *mm, |
| 257 | struct drm_mm_node *node, | 257 | struct drm_mm_node *node, |
| 258 | unsigned long size, | 258 | u64 size, |
| 259 | unsigned alignment, | 259 | unsigned alignment, |
| 260 | unsigned long color, | 260 | unsigned long color, |
| 261 | unsigned long start, | 261 | u64 start, |
| 262 | unsigned long end, | 262 | u64 end, |
| 263 | enum drm_mm_search_flags sflags, | 263 | enum drm_mm_search_flags sflags, |
| 264 | enum drm_mm_allocator_flags aflags); | 264 | enum drm_mm_allocator_flags aflags); |
| 265 | /** | 265 | /** |
| @@ -282,10 +282,10 @@ int drm_mm_insert_node_in_range_generic(struct drm_mm *mm, | |||
| 282 | */ | 282 | */ |
| 283 | static inline int drm_mm_insert_node_in_range(struct drm_mm *mm, | 283 | static inline int drm_mm_insert_node_in_range(struct drm_mm *mm, |
| 284 | struct drm_mm_node *node, | 284 | struct drm_mm_node *node, |
| 285 | unsigned long size, | 285 | u64 size, |
| 286 | unsigned alignment, | 286 | unsigned alignment, |
| 287 | unsigned long start, | 287 | u64 start, |
| 288 | unsigned long end, | 288 | u64 end, |
| 289 | enum drm_mm_search_flags flags) | 289 | enum drm_mm_search_flags flags) |
| 290 | { | 290 | { |
| 291 | return drm_mm_insert_node_in_range_generic(mm, node, size, alignment, | 291 | return drm_mm_insert_node_in_range_generic(mm, node, size, alignment, |
| @@ -296,21 +296,21 @@ static inline int drm_mm_insert_node_in_range(struct drm_mm *mm, | |||
| 296 | void drm_mm_remove_node(struct drm_mm_node *node); | 296 | void drm_mm_remove_node(struct drm_mm_node *node); |
| 297 | void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new); | 297 | void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new); |
| 298 | void drm_mm_init(struct drm_mm *mm, | 298 | void drm_mm_init(struct drm_mm *mm, |
| 299 | unsigned long start, | 299 | u64 start, |
| 300 | unsigned long size); | 300 | u64 size); |
| 301 | void drm_mm_takedown(struct drm_mm *mm); | 301 | void drm_mm_takedown(struct drm_mm *mm); |
| 302 | bool drm_mm_clean(struct drm_mm *mm); | 302 | bool drm_mm_clean(struct drm_mm *mm); |
| 303 | 303 | ||
| 304 | void drm_mm_init_scan(struct drm_mm *mm, | 304 | void drm_mm_init_scan(struct drm_mm *mm, |
| 305 | unsigned long size, | 305 | u64 size, |
| 306 | unsigned alignment, | 306 | unsigned alignment, |
| 307 | unsigned long color); | 307 | unsigned long color); |
| 308 | void drm_mm_init_scan_with_range(struct drm_mm *mm, | 308 | void drm_mm_init_scan_with_range(struct drm_mm *mm, |
| 309 | unsigned long size, | 309 | u64 size, |
| 310 | unsigned alignment, | 310 | unsigned alignment, |
| 311 | unsigned long color, | 311 | unsigned long color, |
| 312 | unsigned long start, | 312 | u64 start, |
| 313 | unsigned long end); | 313 | u64 end); |
| 314 | bool drm_mm_scan_add_block(struct drm_mm_node *node); | 314 | bool drm_mm_scan_add_block(struct drm_mm_node *node); |
| 315 | bool drm_mm_scan_remove_block(struct drm_mm_node *node); | 315 | bool drm_mm_scan_remove_block(struct drm_mm_node *node); |
| 316 | 316 | ||
diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h index 180ad0e6de21..d016dc57f007 100644 --- a/include/drm/i915_pciids.h +++ b/include/drm/i915_pciids.h | |||
| @@ -214,9 +214,9 @@ | |||
| 214 | INTEL_VGA_DEVICE((((gt) - 1) << 4) | (id), info) | 214 | INTEL_VGA_DEVICE((((gt) - 1) << 4) | (id), info) |
| 215 | 215 | ||
| 216 | #define _INTEL_BDW_M_IDS(gt, info) \ | 216 | #define _INTEL_BDW_M_IDS(gt, info) \ |
| 217 | _INTEL_BDW_M(gt, 0x1602, info), /* ULT */ \ | 217 | _INTEL_BDW_M(gt, 0x1602, info), /* Halo */ \ |
| 218 | _INTEL_BDW_M(gt, 0x1606, info), /* ULT */ \ | 218 | _INTEL_BDW_M(gt, 0x1606, info), /* ULT */ \ |
| 219 | _INTEL_BDW_M(gt, 0x160B, info), /* Iris */ \ | 219 | _INTEL_BDW_M(gt, 0x160B, info), /* ULT */ \ |
| 220 | _INTEL_BDW_M(gt, 0x160E, info) /* ULX */ | 220 | _INTEL_BDW_M(gt, 0x160E, info) /* ULX */ |
| 221 | 221 | ||
| 222 | #define _INTEL_BDW_D_IDS(gt, info) \ | 222 | #define _INTEL_BDW_D_IDS(gt, info) \ |
diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h index 0ccf7f267ff9..c768ddfbe53c 100644 --- a/include/drm/ttm/ttm_bo_api.h +++ b/include/drm/ttm/ttm_bo_api.h | |||
| @@ -249,7 +249,7 @@ struct ttm_buffer_object { | |||
| 249 | * either of these locks held. | 249 | * either of these locks held. |
| 250 | */ | 250 | */ |
| 251 | 251 | ||
| 252 | unsigned long offset; | 252 | uint64_t offset; /* GPU address space is independent of CPU word size */ |
| 253 | uint32_t cur_placement; | 253 | uint32_t cur_placement; |
| 254 | 254 | ||
| 255 | struct sg_table *sg; | 255 | struct sg_table *sg; |
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h index 142d752fc450..813042cede57 100644 --- a/include/drm/ttm/ttm_bo_driver.h +++ b/include/drm/ttm/ttm_bo_driver.h | |||
| @@ -277,7 +277,7 @@ struct ttm_mem_type_manager { | |||
| 277 | bool has_type; | 277 | bool has_type; |
| 278 | bool use_type; | 278 | bool use_type; |
| 279 | uint32_t flags; | 279 | uint32_t flags; |
| 280 | unsigned long gpu_offset; | 280 | uint64_t gpu_offset; /* GPU address space is independent of CPU word size */ |
| 281 | uint64_t size; | 281 | uint64_t size; |
| 282 | uint32_t available_caching; | 282 | uint32_t available_caching; |
| 283 | uint32_t default_caching; | 283 | uint32_t default_caching; |
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index f551a9299ac9..306178d7309f 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
| @@ -126,6 +126,8 @@ struct cpuidle_driver { | |||
| 126 | 126 | ||
| 127 | #ifdef CONFIG_CPU_IDLE | 127 | #ifdef CONFIG_CPU_IDLE |
| 128 | extern void disable_cpuidle(void); | 128 | extern void disable_cpuidle(void); |
| 129 | extern bool cpuidle_not_available(struct cpuidle_driver *drv, | ||
| 130 | struct cpuidle_device *dev); | ||
| 129 | 131 | ||
| 130 | extern int cpuidle_select(struct cpuidle_driver *drv, | 132 | extern int cpuidle_select(struct cpuidle_driver *drv, |
| 131 | struct cpuidle_device *dev); | 133 | struct cpuidle_device *dev); |
| @@ -150,11 +152,17 @@ extern void cpuidle_resume(void); | |||
| 150 | extern int cpuidle_enable_device(struct cpuidle_device *dev); | 152 | extern int cpuidle_enable_device(struct cpuidle_device *dev); |
| 151 | extern void cpuidle_disable_device(struct cpuidle_device *dev); | 153 | extern void cpuidle_disable_device(struct cpuidle_device *dev); |
| 152 | extern int cpuidle_play_dead(void); | 154 | extern int cpuidle_play_dead(void); |
| 153 | extern void cpuidle_enter_freeze(void); | 155 | extern int cpuidle_find_deepest_state(struct cpuidle_driver *drv, |
| 156 | struct cpuidle_device *dev); | ||
| 157 | extern int cpuidle_enter_freeze(struct cpuidle_driver *drv, | ||
| 158 | struct cpuidle_device *dev); | ||
| 154 | 159 | ||
| 155 | extern struct cpuidle_driver *cpuidle_get_cpu_driver(struct cpuidle_device *dev); | 160 | extern struct cpuidle_driver *cpuidle_get_cpu_driver(struct cpuidle_device *dev); |
| 156 | #else | 161 | #else |
| 157 | static inline void disable_cpuidle(void) { } | 162 | static inline void disable_cpuidle(void) { } |
| 163 | static inline bool cpuidle_not_available(struct cpuidle_driver *drv, | ||
| 164 | struct cpuidle_device *dev) | ||
| 165 | {return true; } | ||
| 158 | static inline int cpuidle_select(struct cpuidle_driver *drv, | 166 | static inline int cpuidle_select(struct cpuidle_driver *drv, |
| 159 | struct cpuidle_device *dev) | 167 | struct cpuidle_device *dev) |
| 160 | {return -ENODEV; } | 168 | {return -ENODEV; } |
| @@ -183,7 +191,12 @@ static inline int cpuidle_enable_device(struct cpuidle_device *dev) | |||
| 183 | {return -ENODEV; } | 191 | {return -ENODEV; } |
| 184 | static inline void cpuidle_disable_device(struct cpuidle_device *dev) { } | 192 | static inline void cpuidle_disable_device(struct cpuidle_device *dev) { } |
| 185 | static inline int cpuidle_play_dead(void) {return -ENODEV; } | 193 | static inline int cpuidle_play_dead(void) {return -ENODEV; } |
| 186 | static inline void cpuidle_enter_freeze(void) { } | 194 | static inline int cpuidle_find_deepest_state(struct cpuidle_driver *drv, |
| 195 | struct cpuidle_device *dev) | ||
| 196 | {return -ENODEV; } | ||
| 197 | static inline int cpuidle_enter_freeze(struct cpuidle_driver *drv, | ||
| 198 | struct cpuidle_device *dev) | ||
| 199 | {return -ENODEV; } | ||
| 187 | static inline struct cpuidle_driver *cpuidle_get_cpu_driver( | 200 | static inline struct cpuidle_driver *cpuidle_get_cpu_driver( |
| 188 | struct cpuidle_device *dev) {return NULL; } | 201 | struct cpuidle_device *dev) {return NULL; } |
| 189 | #endif | 202 | #endif |
diff --git a/include/linux/hid-sensor-hub.h b/include/linux/hid-sensor-hub.h index 51f7ccadf923..4173a8fdad9e 100644 --- a/include/linux/hid-sensor-hub.h +++ b/include/linux/hid-sensor-hub.h | |||
| @@ -33,6 +33,8 @@ | |||
| 33 | * @units: Measurment unit for this attribute. | 33 | * @units: Measurment unit for this attribute. |
| 34 | * @unit_expo: Exponent used in the data. | 34 | * @unit_expo: Exponent used in the data. |
| 35 | * @size: Size in bytes for data size. | 35 | * @size: Size in bytes for data size. |
| 36 | * @logical_minimum: Logical minimum value for this attribute. | ||
| 37 | * @logical_maximum: Logical maximum value for this attribute. | ||
| 36 | */ | 38 | */ |
| 37 | struct hid_sensor_hub_attribute_info { | 39 | struct hid_sensor_hub_attribute_info { |
| 38 | u32 usage_id; | 40 | u32 usage_id; |
| @@ -146,6 +148,7 @@ int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev, | |||
| 146 | 148 | ||
| 147 | /** | 149 | /** |
| 148 | * sensor_hub_input_attr_get_raw_value() - Synchronous read request | 150 | * sensor_hub_input_attr_get_raw_value() - Synchronous read request |
| 151 | * @hsdev: Hub device instance. | ||
| 149 | * @usage_id: Attribute usage id of parent physical device as per spec | 152 | * @usage_id: Attribute usage id of parent physical device as per spec |
| 150 | * @attr_usage_id: Attribute usage id as per spec | 153 | * @attr_usage_id: Attribute usage id as per spec |
| 151 | * @report_id: Report id to look for | 154 | * @report_id: Report id to look for |
| @@ -160,6 +163,7 @@ int sensor_hub_input_attr_get_raw_value(struct hid_sensor_hub_device *hsdev, | |||
| 160 | u32 attr_usage_id, u32 report_id); | 163 | u32 attr_usage_id, u32 report_id); |
| 161 | /** | 164 | /** |
| 162 | * sensor_hub_set_feature() - Feature set request | 165 | * sensor_hub_set_feature() - Feature set request |
| 166 | * @hsdev: Hub device instance. | ||
| 163 | * @report_id: Report id to look for | 167 | * @report_id: Report id to look for |
| 164 | * @field_index: Field index inside a report | 168 | * @field_index: Field index inside a report |
| 165 | * @value: Value to set | 169 | * @value: Value to set |
| @@ -172,6 +176,7 @@ int sensor_hub_set_feature(struct hid_sensor_hub_device *hsdev, u32 report_id, | |||
| 172 | 176 | ||
| 173 | /** | 177 | /** |
| 174 | * sensor_hub_get_feature() - Feature get request | 178 | * sensor_hub_get_feature() - Feature get request |
| 179 | * @hsdev: Hub device instance. | ||
| 175 | * @report_id: Report id to look for | 180 | * @report_id: Report id to look for |
| 176 | * @field_index: Field index inside a report | 181 | * @field_index: Field index inside a report |
| 177 | * @value: Place holder for return value | 182 | * @value: Place holder for return value |
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index d9b05b5bf8c7..2e88580194f0 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -52,11 +52,17 @@ | |||
| 52 | * IRQF_ONESHOT - Interrupt is not reenabled after the hardirq handler finished. | 52 | * IRQF_ONESHOT - Interrupt is not reenabled after the hardirq handler finished. |
| 53 | * Used by threaded interrupts which need to keep the | 53 | * Used by threaded interrupts which need to keep the |
| 54 | * irq line disabled until the threaded handler has been run. | 54 | * irq line disabled until the threaded handler has been run. |
| 55 | * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend | 55 | * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend. Does not guarantee |
| 56 | * that this interrupt will wake the system from a suspended | ||
| 57 | * state. See Documentation/power/suspend-and-interrupts.txt | ||
| 56 | * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set | 58 | * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set |
| 57 | * IRQF_NO_THREAD - Interrupt cannot be threaded | 59 | * IRQF_NO_THREAD - Interrupt cannot be threaded |
| 58 | * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device | 60 | * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device |
| 59 | * resume time. | 61 | * resume time. |
| 62 | * IRQF_COND_SUSPEND - If the IRQ is shared with a NO_SUSPEND user, execute this | ||
| 63 | * interrupt handler after suspending interrupts. For system | ||
| 64 | * wakeup devices users need to implement wakeup detection in | ||
| 65 | * their interrupt handlers. | ||
| 60 | */ | 66 | */ |
| 61 | #define IRQF_DISABLED 0x00000020 | 67 | #define IRQF_DISABLED 0x00000020 |
| 62 | #define IRQF_SHARED 0x00000080 | 68 | #define IRQF_SHARED 0x00000080 |
| @@ -70,6 +76,7 @@ | |||
| 70 | #define IRQF_FORCE_RESUME 0x00008000 | 76 | #define IRQF_FORCE_RESUME 0x00008000 |
| 71 | #define IRQF_NO_THREAD 0x00010000 | 77 | #define IRQF_NO_THREAD 0x00010000 |
| 72 | #define IRQF_EARLY_RESUME 0x00020000 | 78 | #define IRQF_EARLY_RESUME 0x00020000 |
| 79 | #define IRQF_COND_SUSPEND 0x00040000 | ||
| 73 | 80 | ||
| 74 | #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD) | 81 | #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD) |
| 75 | 82 | ||
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index faf433af425e..dd1109fb241e 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h | |||
| @@ -78,6 +78,7 @@ struct irq_desc { | |||
| 78 | #ifdef CONFIG_PM_SLEEP | 78 | #ifdef CONFIG_PM_SLEEP |
| 79 | unsigned int nr_actions; | 79 | unsigned int nr_actions; |
| 80 | unsigned int no_suspend_depth; | 80 | unsigned int no_suspend_depth; |
| 81 | unsigned int cond_suspend_depth; | ||
| 81 | unsigned int force_resume_depth; | 82 | unsigned int force_resume_depth; |
| 82 | #endif | 83 | #endif |
| 83 | #ifdef CONFIG_PROC_FS | 84 | #ifdef CONFIG_PROC_FS |
diff --git a/include/linux/kasan.h b/include/linux/kasan.h index 72ba725ddf9c..5bb074431eb0 100644 --- a/include/linux/kasan.h +++ b/include/linux/kasan.h | |||
| @@ -5,6 +5,7 @@ | |||
| 5 | 5 | ||
| 6 | struct kmem_cache; | 6 | struct kmem_cache; |
| 7 | struct page; | 7 | struct page; |
| 8 | struct vm_struct; | ||
| 8 | 9 | ||
| 9 | #ifdef CONFIG_KASAN | 10 | #ifdef CONFIG_KASAN |
| 10 | 11 | ||
| @@ -49,15 +50,11 @@ void kasan_krealloc(const void *object, size_t new_size); | |||
| 49 | void kasan_slab_alloc(struct kmem_cache *s, void *object); | 50 | void kasan_slab_alloc(struct kmem_cache *s, void *object); |
| 50 | void kasan_slab_free(struct kmem_cache *s, void *object); | 51 | void kasan_slab_free(struct kmem_cache *s, void *object); |
| 51 | 52 | ||
| 52 | #define MODULE_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT) | ||
| 53 | |||
| 54 | int kasan_module_alloc(void *addr, size_t size); | 53 | int kasan_module_alloc(void *addr, size_t size); |
| 55 | void kasan_module_free(void *addr); | 54 | void kasan_free_shadow(const struct vm_struct *vm); |
| 56 | 55 | ||
| 57 | #else /* CONFIG_KASAN */ | 56 | #else /* CONFIG_KASAN */ |
| 58 | 57 | ||
| 59 | #define MODULE_ALIGN 1 | ||
| 60 | |||
| 61 | static inline void kasan_unpoison_shadow(const void *address, size_t size) {} | 58 | static inline void kasan_unpoison_shadow(const void *address, size_t size) {} |
| 62 | 59 | ||
| 63 | static inline void kasan_enable_current(void) {} | 60 | static inline void kasan_enable_current(void) {} |
| @@ -82,7 +79,7 @@ static inline void kasan_slab_alloc(struct kmem_cache *s, void *object) {} | |||
| 82 | static inline void kasan_slab_free(struct kmem_cache *s, void *object) {} | 79 | static inline void kasan_slab_free(struct kmem_cache *s, void *object) {} |
| 83 | 80 | ||
| 84 | static inline int kasan_module_alloc(void *addr, size_t size) { return 0; } | 81 | static inline int kasan_module_alloc(void *addr, size_t size) { return 0; } |
| 85 | static inline void kasan_module_free(void *addr) {} | 82 | static inline void kasan_free_shadow(const struct vm_struct *vm) {} |
| 86 | 83 | ||
| 87 | #endif /* CONFIG_KASAN */ | 84 | #endif /* CONFIG_KASAN */ |
| 88 | 85 | ||
diff --git a/include/linux/mlx4/qp.h b/include/linux/mlx4/qp.h index 2bbc62aa818a..551f85456c11 100644 --- a/include/linux/mlx4/qp.h +++ b/include/linux/mlx4/qp.h | |||
| @@ -427,7 +427,7 @@ struct mlx4_wqe_inline_seg { | |||
| 427 | 427 | ||
| 428 | enum mlx4_update_qp_attr { | 428 | enum mlx4_update_qp_attr { |
| 429 | MLX4_UPDATE_QP_SMAC = 1 << 0, | 429 | MLX4_UPDATE_QP_SMAC = 1 << 0, |
| 430 | MLX4_UPDATE_QP_VSD = 1 << 2, | 430 | MLX4_UPDATE_QP_VSD = 1 << 1, |
| 431 | MLX4_UPDATE_QP_SUPPORTED_ATTRS = (1 << 2) - 1 | 431 | MLX4_UPDATE_QP_SUPPORTED_ATTRS = (1 << 2) - 1 |
| 432 | }; | 432 | }; |
| 433 | 433 | ||
diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h index f7556261fe3c..4d0cb9bba93e 100644 --- a/include/linux/moduleloader.h +++ b/include/linux/moduleloader.h | |||
| @@ -84,4 +84,12 @@ void module_arch_cleanup(struct module *mod); | |||
| 84 | 84 | ||
| 85 | /* Any cleanup before freeing mod->module_init */ | 85 | /* Any cleanup before freeing mod->module_init */ |
| 86 | void module_arch_freeing_init(struct module *mod); | 86 | void module_arch_freeing_init(struct module *mod); |
| 87 | |||
| 88 | #ifdef CONFIG_KASAN | ||
| 89 | #include <linux/kasan.h> | ||
| 90 | #define MODULE_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT) | ||
| 91 | #else | ||
| 92 | #define MODULE_ALIGN PAGE_SIZE | ||
| 93 | #endif | ||
| 94 | |||
| 87 | #endif | 95 | #endif |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 5897b4ea5a3f..429d1790a27e 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -2342,6 +2342,7 @@ struct gro_remcsum { | |||
| 2342 | 2342 | ||
| 2343 | static inline void skb_gro_remcsum_init(struct gro_remcsum *grc) | 2343 | static inline void skb_gro_remcsum_init(struct gro_remcsum *grc) |
| 2344 | { | 2344 | { |
| 2345 | grc->offset = 0; | ||
| 2345 | grc->delta = 0; | 2346 | grc->delta = 0; |
| 2346 | } | 2347 | } |
| 2347 | 2348 | ||
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 2f77e0c651c8..b01ccf371fdc 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
| @@ -343,6 +343,7 @@ extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *, | |||
| 343 | extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *); | 343 | extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *); |
| 344 | extern int nfs_post_op_update_inode(struct inode *inode, struct nfs_fattr *fattr); | 344 | extern int nfs_post_op_update_inode(struct inode *inode, struct nfs_fattr *fattr); |
| 345 | extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fattr *fattr); | 345 | extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fattr *fattr); |
| 346 | extern int nfs_post_op_update_inode_force_wcc_locked(struct inode *inode, struct nfs_fattr *fattr); | ||
| 346 | extern int nfs_getattr(struct vfsmount *, struct dentry *, struct kstat *); | 347 | extern int nfs_getattr(struct vfsmount *, struct dentry *, struct kstat *); |
| 347 | extern void nfs_access_add_cache(struct inode *, struct nfs_access_entry *); | 348 | extern void nfs_access_add_cache(struct inode *, struct nfs_access_entry *); |
| 348 | extern void nfs_access_set_mask(struct nfs_access_entry *, u32); | 349 | extern void nfs_access_set_mask(struct nfs_access_entry *, u32); |
| @@ -355,8 +356,9 @@ extern int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode); | |||
| 355 | extern int nfs_revalidate_inode_rcu(struct nfs_server *server, struct inode *inode); | 356 | extern int nfs_revalidate_inode_rcu(struct nfs_server *server, struct inode *inode); |
| 356 | extern int __nfs_revalidate_inode(struct nfs_server *, struct inode *); | 357 | extern int __nfs_revalidate_inode(struct nfs_server *, struct inode *); |
| 357 | extern int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping); | 358 | extern int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping); |
| 359 | extern int nfs_revalidate_mapping_protected(struct inode *inode, struct address_space *mapping); | ||
| 358 | extern int nfs_setattr(struct dentry *, struct iattr *); | 360 | extern int nfs_setattr(struct dentry *, struct iattr *); |
| 359 | extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr); | 361 | extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr, struct nfs_fattr *); |
| 360 | extern void nfs_setsecurity(struct inode *inode, struct nfs_fattr *fattr, | 362 | extern void nfs_setsecurity(struct inode *inode, struct nfs_fattr *fattr, |
| 361 | struct nfs4_label *label); | 363 | struct nfs4_label *label); |
| 362 | extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx); | 364 | extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx); |
| @@ -369,6 +371,7 @@ extern struct nfs_lock_context *nfs_get_lock_context(struct nfs_open_context *ct | |||
| 369 | extern void nfs_put_lock_context(struct nfs_lock_context *l_ctx); | 371 | extern void nfs_put_lock_context(struct nfs_lock_context *l_ctx); |
| 370 | extern u64 nfs_compat_user_ino64(u64 fileid); | 372 | extern u64 nfs_compat_user_ino64(u64 fileid); |
| 371 | extern void nfs_fattr_init(struct nfs_fattr *fattr); | 373 | extern void nfs_fattr_init(struct nfs_fattr *fattr); |
| 374 | extern void nfs_fattr_set_barrier(struct nfs_fattr *fattr); | ||
| 372 | extern unsigned long nfs_inc_attr_generation_counter(void); | 375 | extern unsigned long nfs_inc_attr_generation_counter(void); |
| 373 | 376 | ||
| 374 | extern struct nfs_fattr *nfs_alloc_fattr(void); | 377 | extern struct nfs_fattr *nfs_alloc_fattr(void); |
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h index 8a860f096c35..611a691145c4 100644 --- a/include/linux/of_platform.h +++ b/include/linux/of_platform.h | |||
| @@ -84,7 +84,7 @@ static inline int of_platform_populate(struct device_node *root, | |||
| 84 | static inline void of_platform_depopulate(struct device *parent) { } | 84 | static inline void of_platform_depopulate(struct device *parent) { } |
| 85 | #endif | 85 | #endif |
| 86 | 86 | ||
| 87 | #ifdef CONFIG_OF_DYNAMIC | 87 | #if defined(CONFIG_OF_DYNAMIC) && defined(CONFIG_OF_ADDRESS) |
| 88 | extern void of_platform_register_reconfig_notifier(void); | 88 | extern void of_platform_register_reconfig_notifier(void); |
| 89 | #else | 89 | #else |
| 90 | static inline void of_platform_register_reconfig_notifier(void) { } | 90 | static inline void of_platform_register_reconfig_notifier(void) { } |
diff --git a/include/linux/rhashtable.h b/include/linux/rhashtable.h index 58851275fed9..d438eeb08bff 100644 --- a/include/linux/rhashtable.h +++ b/include/linux/rhashtable.h | |||
| @@ -54,10 +54,11 @@ struct rhash_head { | |||
| 54 | * @buckets: size * hash buckets | 54 | * @buckets: size * hash buckets |
| 55 | */ | 55 | */ |
| 56 | struct bucket_table { | 56 | struct bucket_table { |
| 57 | size_t size; | 57 | size_t size; |
| 58 | unsigned int locks_mask; | 58 | unsigned int locks_mask; |
| 59 | spinlock_t *locks; | 59 | spinlock_t *locks; |
| 60 | struct rhash_head __rcu *buckets[]; | 60 | |
| 61 | struct rhash_head __rcu *buckets[] ____cacheline_aligned_in_smp; | ||
| 61 | }; | 62 | }; |
| 62 | 63 | ||
| 63 | typedef u32 (*rht_hashfn_t)(const void *data, u32 len, u32 seed); | 64 | typedef u32 (*rht_hashfn_t)(const void *data, u32 len, u32 seed); |
| @@ -78,12 +79,6 @@ struct rhashtable; | |||
| 78 | * @locks_mul: Number of bucket locks to allocate per cpu (default: 128) | 79 | * @locks_mul: Number of bucket locks to allocate per cpu (default: 128) |
| 79 | * @hashfn: Function to hash key | 80 | * @hashfn: Function to hash key |
| 80 | * @obj_hashfn: Function to hash object | 81 | * @obj_hashfn: Function to hash object |
| 81 | * @grow_decision: If defined, may return true if table should expand | ||
| 82 | * @shrink_decision: If defined, may return true if table should shrink | ||
| 83 | * | ||
| 84 | * Note: when implementing the grow and shrink decision function, min/max | ||
| 85 | * shift must be enforced, otherwise, resizing watermarks they set may be | ||
| 86 | * useless. | ||
| 87 | */ | 82 | */ |
| 88 | struct rhashtable_params { | 83 | struct rhashtable_params { |
| 89 | size_t nelem_hint; | 84 | size_t nelem_hint; |
| @@ -97,10 +92,6 @@ struct rhashtable_params { | |||
| 97 | size_t locks_mul; | 92 | size_t locks_mul; |
| 98 | rht_hashfn_t hashfn; | 93 | rht_hashfn_t hashfn; |
| 99 | rht_obj_hashfn_t obj_hashfn; | 94 | rht_obj_hashfn_t obj_hashfn; |
| 100 | bool (*grow_decision)(const struct rhashtable *ht, | ||
| 101 | size_t new_size); | ||
| 102 | bool (*shrink_decision)(const struct rhashtable *ht, | ||
| 103 | size_t new_size); | ||
| 104 | }; | 95 | }; |
| 105 | 96 | ||
| 106 | /** | 97 | /** |
| @@ -192,9 +183,6 @@ int rhashtable_init(struct rhashtable *ht, struct rhashtable_params *params); | |||
| 192 | void rhashtable_insert(struct rhashtable *ht, struct rhash_head *node); | 183 | void rhashtable_insert(struct rhashtable *ht, struct rhash_head *node); |
| 193 | bool rhashtable_remove(struct rhashtable *ht, struct rhash_head *node); | 184 | bool rhashtable_remove(struct rhashtable *ht, struct rhash_head *node); |
| 194 | 185 | ||
| 195 | bool rht_grow_above_75(const struct rhashtable *ht, size_t new_size); | ||
| 196 | bool rht_shrink_below_30(const struct rhashtable *ht, size_t new_size); | ||
| 197 | |||
| 198 | int rhashtable_expand(struct rhashtable *ht); | 186 | int rhashtable_expand(struct rhashtable *ht); |
| 199 | int rhashtable_shrink(struct rhashtable *ht); | 187 | int rhashtable_shrink(struct rhashtable *ht); |
| 200 | 188 | ||
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index baf3e1d08416..d10965f0d8a4 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
| @@ -143,13 +143,13 @@ struct uart_port { | |||
| 143 | unsigned char iotype; /* io access style */ | 143 | unsigned char iotype; /* io access style */ |
| 144 | unsigned char unused1; | 144 | unsigned char unused1; |
| 145 | 145 | ||
| 146 | #define UPIO_PORT (0) /* 8b I/O port access */ | 146 | #define UPIO_PORT (SERIAL_IO_PORT) /* 8b I/O port access */ |
| 147 | #define UPIO_HUB6 (1) /* Hub6 ISA card */ | 147 | #define UPIO_HUB6 (SERIAL_IO_HUB6) /* Hub6 ISA card */ |
| 148 | #define UPIO_MEM (2) /* 8b MMIO access */ | 148 | #define UPIO_MEM (SERIAL_IO_MEM) /* 8b MMIO access */ |
| 149 | #define UPIO_MEM32 (3) /* 32b little endian */ | 149 | #define UPIO_MEM32 (SERIAL_IO_MEM32) /* 32b little endian */ |
| 150 | #define UPIO_MEM32BE (4) /* 32b big endian */ | 150 | #define UPIO_AU (SERIAL_IO_AU) /* Au1x00 and RT288x type IO */ |
| 151 | #define UPIO_AU (5) /* Au1x00 and RT288x type IO */ | 151 | #define UPIO_TSI (SERIAL_IO_TSI) /* Tsi108/109 type IO */ |
| 152 | #define UPIO_TSI (6) /* Tsi108/109 type IO */ | 152 | #define UPIO_MEM32BE (SERIAL_IO_MEM32BE) /* 32b big endian */ |
| 153 | 153 | ||
| 154 | unsigned int read_status_mask; /* driver specific */ | 154 | unsigned int read_status_mask; /* driver specific */ |
| 155 | unsigned int ignore_status_mask; /* driver specific */ | 155 | unsigned int ignore_status_mask; /* driver specific */ |
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index ed9489d893a4..856d34dde79b 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h | |||
| @@ -649,7 +649,7 @@ struct spi_transfer { | |||
| 649 | * sequence completes. On some systems, many such sequences can execute as | 649 | * sequence completes. On some systems, many such sequences can execute as |
| 650 | * as single programmed DMA transfer. On all systems, these messages are | 650 | * as single programmed DMA transfer. On all systems, these messages are |
| 651 | * queued, and might complete after transactions to other devices. Messages | 651 | * queued, and might complete after transactions to other devices. Messages |
| 652 | * sent to a given spi_device are alway executed in FIFO order. | 652 | * sent to a given spi_device are always executed in FIFO order. |
| 653 | * | 653 | * |
| 654 | * The code that submits an spi_message (and its spi_transfers) | 654 | * The code that submits an spi_message (and its spi_transfers) |
| 655 | * to the lower layers is responsible for managing its memory. | 655 | * to the lower layers is responsible for managing its memory. |
diff --git a/include/linux/thermal.h b/include/linux/thermal.h index fc52e307efab..5eac316490ea 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h | |||
| @@ -314,6 +314,8 @@ void thermal_zone_of_sensor_unregister(struct device *dev, | |||
| 314 | } | 314 | } |
| 315 | 315 | ||
| 316 | #endif | 316 | #endif |
| 317 | |||
| 318 | #if IS_ENABLED(CONFIG_THERMAL) | ||
| 317 | struct thermal_zone_device *thermal_zone_device_register(const char *, int, int, | 319 | struct thermal_zone_device *thermal_zone_device_register(const char *, int, int, |
| 318 | void *, struct thermal_zone_device_ops *, | 320 | void *, struct thermal_zone_device_ops *, |
| 319 | const struct thermal_zone_params *, int, int); | 321 | const struct thermal_zone_params *, int, int); |
| @@ -340,8 +342,58 @@ struct thermal_instance *get_thermal_instance(struct thermal_zone_device *, | |||
| 340 | struct thermal_cooling_device *, int); | 342 | struct thermal_cooling_device *, int); |
| 341 | void thermal_cdev_update(struct thermal_cooling_device *); | 343 | void thermal_cdev_update(struct thermal_cooling_device *); |
| 342 | void thermal_notify_framework(struct thermal_zone_device *, int); | 344 | void thermal_notify_framework(struct thermal_zone_device *, int); |
| 343 | 345 | #else | |
| 344 | #ifdef CONFIG_NET | 346 | static inline struct thermal_zone_device *thermal_zone_device_register( |
| 347 | const char *type, int trips, int mask, void *devdata, | ||
| 348 | struct thermal_zone_device_ops *ops, | ||
| 349 | const struct thermal_zone_params *tzp, | ||
| 350 | int passive_delay, int polling_delay) | ||
| 351 | { return ERR_PTR(-ENODEV); } | ||
| 352 | static inline void thermal_zone_device_unregister( | ||
| 353 | struct thermal_zone_device *tz) | ||
| 354 | { } | ||
| 355 | static inline int thermal_zone_bind_cooling_device( | ||
| 356 | struct thermal_zone_device *tz, int trip, | ||
| 357 | struct thermal_cooling_device *cdev, | ||
| 358 | unsigned long upper, unsigned long lower) | ||
| 359 | { return -ENODEV; } | ||
| 360 | static inline int thermal_zone_unbind_cooling_device( | ||
| 361 | struct thermal_zone_device *tz, int trip, | ||
| 362 | struct thermal_cooling_device *cdev) | ||
| 363 | { return -ENODEV; } | ||
| 364 | static inline void thermal_zone_device_update(struct thermal_zone_device *tz) | ||
| 365 | { } | ||
| 366 | static inline struct thermal_cooling_device * | ||
| 367 | thermal_cooling_device_register(char *type, void *devdata, | ||
| 368 | const struct thermal_cooling_device_ops *ops) | ||
| 369 | { return ERR_PTR(-ENODEV); } | ||
| 370 | static inline struct thermal_cooling_device * | ||
| 371 | thermal_of_cooling_device_register(struct device_node *np, | ||
| 372 | char *type, void *devdata, const struct thermal_cooling_device_ops *ops) | ||
| 373 | { return ERR_PTR(-ENODEV); } | ||
| 374 | static inline void thermal_cooling_device_unregister( | ||
| 375 | struct thermal_cooling_device *cdev) | ||
| 376 | { } | ||
| 377 | static inline struct thermal_zone_device *thermal_zone_get_zone_by_name( | ||
| 378 | const char *name) | ||
| 379 | { return ERR_PTR(-ENODEV); } | ||
| 380 | static inline int thermal_zone_get_temp( | ||
| 381 | struct thermal_zone_device *tz, unsigned long *temp) | ||
| 382 | { return -ENODEV; } | ||
| 383 | static inline int get_tz_trend(struct thermal_zone_device *tz, int trip) | ||
| 384 | { return -ENODEV; } | ||
| 385 | static inline struct thermal_instance * | ||
| 386 | get_thermal_instance(struct thermal_zone_device *tz, | ||
| 387 | struct thermal_cooling_device *cdev, int trip) | ||
| 388 | { return ERR_PTR(-ENODEV); } | ||
| 389 | static inline void thermal_cdev_update(struct thermal_cooling_device *cdev) | ||
| 390 | { } | ||
| 391 | static inline void thermal_notify_framework(struct thermal_zone_device *tz, | ||
| 392 | int trip) | ||
| 393 | { } | ||
| 394 | #endif /* CONFIG_THERMAL */ | ||
| 395 | |||
| 396 | #if defined(CONFIG_NET) && IS_ENABLED(CONFIG_THERMAL) | ||
| 345 | extern int thermal_generate_netlink_event(struct thermal_zone_device *tz, | 397 | extern int thermal_generate_netlink_event(struct thermal_zone_device *tz, |
| 346 | enum events event); | 398 | enum events event); |
| 347 | #else | 399 | #else |
diff --git a/include/linux/uio.h b/include/linux/uio.h index 07a022641996..71880299ed48 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h | |||
| @@ -98,6 +98,8 @@ ssize_t iov_iter_get_pages_alloc(struct iov_iter *i, struct page ***pages, | |||
| 98 | size_t maxsize, size_t *start); | 98 | size_t maxsize, size_t *start); |
| 99 | int iov_iter_npages(const struct iov_iter *i, int maxpages); | 99 | int iov_iter_npages(const struct iov_iter *i, int maxpages); |
| 100 | 100 | ||
| 101 | const void *dup_iter(struct iov_iter *new, struct iov_iter *old, gfp_t flags); | ||
| 102 | |||
| 101 | static inline size_t iov_iter_count(struct iov_iter *i) | 103 | static inline size_t iov_iter_count(struct iov_iter *i) |
| 102 | { | 104 | { |
| 103 | return i->count; | 105 | return i->count; |
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h index 9bb547c7bce7..704a1ab8240c 100644 --- a/include/linux/usb/serial.h +++ b/include/linux/usb/serial.h | |||
| @@ -190,8 +190,7 @@ static inline void usb_set_serial_data(struct usb_serial *serial, void *data) | |||
| 190 | * @num_ports: the number of different ports this device will have. | 190 | * @num_ports: the number of different ports this device will have. |
| 191 | * @bulk_in_size: minimum number of bytes to allocate for bulk-in buffer | 191 | * @bulk_in_size: minimum number of bytes to allocate for bulk-in buffer |
| 192 | * (0 = end-point size) | 192 | * (0 = end-point size) |
| 193 | * @bulk_out_size: minimum number of bytes to allocate for bulk-out buffer | 193 | * @bulk_out_size: bytes to allocate for bulk-out buffer (0 = end-point size) |
| 194 | * (0 = end-point size) | ||
| 195 | * @calc_num_ports: pointer to a function to determine how many ports this | 194 | * @calc_num_ports: pointer to a function to determine how many ports this |
| 196 | * device has dynamically. It will be called after the probe() | 195 | * device has dynamically. It will be called after the probe() |
| 197 | * callback is called, but before attach() | 196 | * callback is called, but before attach() |
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index 7d7acb35603d..0ec598381f97 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h | |||
| @@ -17,6 +17,7 @@ struct vm_area_struct; /* vma defining user mapping in mm_types.h */ | |||
| 17 | #define VM_VPAGES 0x00000010 /* buffer for pages was vmalloc'ed */ | 17 | #define VM_VPAGES 0x00000010 /* buffer for pages was vmalloc'ed */ |
| 18 | #define VM_UNINITIALIZED 0x00000020 /* vm_struct is not fully initialized */ | 18 | #define VM_UNINITIALIZED 0x00000020 /* vm_struct is not fully initialized */ |
| 19 | #define VM_NO_GUARD 0x00000040 /* don't add guard page */ | 19 | #define VM_NO_GUARD 0x00000040 /* don't add guard page */ |
| 20 | #define VM_KASAN 0x00000080 /* has allocated kasan shadow memory */ | ||
| 20 | /* bits [20..32] reserved for arch specific ioremap internals */ | 21 | /* bits [20..32] reserved for arch specific ioremap internals */ |
| 21 | 22 | ||
| 22 | /* | 23 | /* |
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 74db135f9957..f597846ff605 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h | |||
| @@ -70,7 +70,8 @@ enum { | |||
| 70 | /* data contains off-queue information when !WORK_STRUCT_PWQ */ | 70 | /* data contains off-queue information when !WORK_STRUCT_PWQ */ |
| 71 | WORK_OFFQ_FLAG_BASE = WORK_STRUCT_COLOR_SHIFT, | 71 | WORK_OFFQ_FLAG_BASE = WORK_STRUCT_COLOR_SHIFT, |
| 72 | 72 | ||
| 73 | WORK_OFFQ_CANCELING = (1 << WORK_OFFQ_FLAG_BASE), | 73 | __WORK_OFFQ_CANCELING = WORK_OFFQ_FLAG_BASE, |
| 74 | WORK_OFFQ_CANCELING = (1 << __WORK_OFFQ_CANCELING), | ||
| 74 | 75 | ||
| 75 | /* | 76 | /* |
| 76 | * When a work item is off queue, its high bits point to the last | 77 | * When a work item is off queue, its high bits point to the last |
diff --git a/include/net/caif/cfpkt.h b/include/net/caif/cfpkt.h index 1c1ad46250d5..fe328c52c46b 100644 --- a/include/net/caif/cfpkt.h +++ b/include/net/caif/cfpkt.h | |||
| @@ -171,7 +171,7 @@ struct cfpkt *cfpkt_split(struct cfpkt *pkt, u16 pos); | |||
| 171 | * @return Checksum of buffer. | 171 | * @return Checksum of buffer. |
| 172 | */ | 172 | */ |
| 173 | 173 | ||
| 174 | u16 cfpkt_iterate(struct cfpkt *pkt, | 174 | int cfpkt_iterate(struct cfpkt *pkt, |
| 175 | u16 (*iter_func)(u16 chks, void *buf, u16 len), | 175 | u16 (*iter_func)(u16 chks, void *buf, u16 len), |
| 176 | u16 data); | 176 | u16 data); |
| 177 | 177 | ||
diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h index 9eaaa7884586..decb9a095ae7 100644 --- a/include/net/netfilter/nf_tables.h +++ b/include/net/netfilter/nf_tables.h | |||
| @@ -119,6 +119,22 @@ int nft_validate_data_load(const struct nft_ctx *ctx, enum nft_registers reg, | |||
| 119 | const struct nft_data *data, | 119 | const struct nft_data *data, |
| 120 | enum nft_data_types type); | 120 | enum nft_data_types type); |
| 121 | 121 | ||
| 122 | |||
| 123 | /** | ||
| 124 | * struct nft_userdata - user defined data associated with an object | ||
| 125 | * | ||
| 126 | * @len: length of the data | ||
| 127 | * @data: content | ||
| 128 | * | ||
| 129 | * The presence of user data is indicated in an object specific fashion, | ||
| 130 | * so a length of zero can't occur and the value "len" indicates data | ||
| 131 | * of length len + 1. | ||
| 132 | */ | ||
| 133 | struct nft_userdata { | ||
| 134 | u8 len; | ||
| 135 | unsigned char data[0]; | ||
| 136 | }; | ||
| 137 | |||
| 122 | /** | 138 | /** |
| 123 | * struct nft_set_elem - generic representation of set elements | 139 | * struct nft_set_elem - generic representation of set elements |
| 124 | * | 140 | * |
| @@ -380,7 +396,7 @@ static inline void *nft_expr_priv(const struct nft_expr *expr) | |||
| 380 | * @handle: rule handle | 396 | * @handle: rule handle |
| 381 | * @genmask: generation mask | 397 | * @genmask: generation mask |
| 382 | * @dlen: length of expression data | 398 | * @dlen: length of expression data |
| 383 | * @ulen: length of user data (used for comments) | 399 | * @udata: user data is appended to the rule |
| 384 | * @data: expression data | 400 | * @data: expression data |
| 385 | */ | 401 | */ |
| 386 | struct nft_rule { | 402 | struct nft_rule { |
| @@ -388,7 +404,7 @@ struct nft_rule { | |||
| 388 | u64 handle:42, | 404 | u64 handle:42, |
| 389 | genmask:2, | 405 | genmask:2, |
| 390 | dlen:12, | 406 | dlen:12, |
| 391 | ulen:8; | 407 | udata:1; |
| 392 | unsigned char data[] | 408 | unsigned char data[] |
| 393 | __attribute__((aligned(__alignof__(struct nft_expr)))); | 409 | __attribute__((aligned(__alignof__(struct nft_expr)))); |
| 394 | }; | 410 | }; |
| @@ -476,7 +492,7 @@ static inline struct nft_expr *nft_expr_last(const struct nft_rule *rule) | |||
| 476 | return (struct nft_expr *)&rule->data[rule->dlen]; | 492 | return (struct nft_expr *)&rule->data[rule->dlen]; |
| 477 | } | 493 | } |
| 478 | 494 | ||
| 479 | static inline void *nft_userdata(const struct nft_rule *rule) | 495 | static inline struct nft_userdata *nft_userdata(const struct nft_rule *rule) |
| 480 | { | 496 | { |
| 481 | return (void *)&rule->data[rule->dlen]; | 497 | return (void *)&rule->data[rule->dlen]; |
| 482 | } | 498 | } |
diff --git a/include/uapi/linux/serial.h b/include/uapi/linux/serial.h index 5e0d0ed61cf3..25331f9faa76 100644 --- a/include/uapi/linux/serial.h +++ b/include/uapi/linux/serial.h | |||
| @@ -65,6 +65,10 @@ struct serial_struct { | |||
| 65 | #define SERIAL_IO_PORT 0 | 65 | #define SERIAL_IO_PORT 0 |
| 66 | #define SERIAL_IO_HUB6 1 | 66 | #define SERIAL_IO_HUB6 1 |
| 67 | #define SERIAL_IO_MEM 2 | 67 | #define SERIAL_IO_MEM 2 |
| 68 | #define SERIAL_IO_MEM32 3 | ||
| 69 | #define SERIAL_IO_AU 4 | ||
| 70 | #define SERIAL_IO_TSI 5 | ||
| 71 | #define SERIAL_IO_MEM32BE 6 | ||
| 68 | 72 | ||
| 69 | #define UART_CLEAR_FIFO 0x01 | 73 | #define UART_CLEAR_FIFO 0x01 |
| 70 | #define UART_USE_FIFO 0x02 | 74 | #define UART_USE_FIFO 0x02 |
diff --git a/include/uapi/linux/tc_act/Kbuild b/include/uapi/linux/tc_act/Kbuild index 19d5219b0b99..242cf0c6e33d 100644 --- a/include/uapi/linux/tc_act/Kbuild +++ b/include/uapi/linux/tc_act/Kbuild | |||
| @@ -9,3 +9,4 @@ header-y += tc_pedit.h | |||
| 9 | header-y += tc_skbedit.h | 9 | header-y += tc_skbedit.h |
| 10 | header-y += tc_vlan.h | 10 | header-y += tc_vlan.h |
| 11 | header-y += tc_bpf.h | 11 | header-y += tc_bpf.h |
| 12 | header-y += tc_connmark.h | ||
diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 60de61fea8e3..c8ed15daad02 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h | |||
| @@ -689,6 +689,7 @@ struct omapdss_dsi_ops { | |||
| 689 | }; | 689 | }; |
| 690 | 690 | ||
| 691 | struct omap_dss_device { | 691 | struct omap_dss_device { |
| 692 | struct kobject kobj; | ||
| 692 | struct device *dev; | 693 | struct device *dev; |
| 693 | 694 | ||
| 694 | struct module *owner; | 695 | struct module *owner; |
diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h index 7491ee5d8164..83338210ee04 100644 --- a/include/xen/xen-ops.h +++ b/include/xen/xen-ops.h | |||
| @@ -46,4 +46,30 @@ static inline efi_system_table_t __init *xen_efi_probe(void) | |||
| 46 | } | 46 | } |
| 47 | #endif | 47 | #endif |
| 48 | 48 | ||
| 49 | #ifdef CONFIG_PREEMPT | ||
| 50 | |||
| 51 | static inline void xen_preemptible_hcall_begin(void) | ||
| 52 | { | ||
| 53 | } | ||
| 54 | |||
| 55 | static inline void xen_preemptible_hcall_end(void) | ||
| 56 | { | ||
| 57 | } | ||
| 58 | |||
| 59 | #else | ||
| 60 | |||
| 61 | DECLARE_PER_CPU(bool, xen_in_preemptible_hcall); | ||
| 62 | |||
| 63 | static inline void xen_preemptible_hcall_begin(void) | ||
| 64 | { | ||
| 65 | __this_cpu_write(xen_in_preemptible_hcall, true); | ||
| 66 | } | ||
| 67 | |||
| 68 | static inline void xen_preemptible_hcall_end(void) | ||
| 69 | { | ||
| 70 | __this_cpu_write(xen_in_preemptible_hcall, false); | ||
| 71 | } | ||
| 72 | |||
| 73 | #endif /* CONFIG_PREEMPT */ | ||
| 74 | |||
| 49 | #endif /* INCLUDE_XEN_OPS_H */ | 75 | #endif /* INCLUDE_XEN_OPS_H */ |
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h index b78f21caf55a..b0f1c9e5d687 100644 --- a/include/xen/xenbus.h +++ b/include/xen/xenbus.h | |||
| @@ -114,9 +114,9 @@ int __must_check __xenbus_register_backend(struct xenbus_driver *drv, | |||
| 114 | const char *mod_name); | 114 | const char *mod_name); |
| 115 | 115 | ||
| 116 | #define xenbus_register_frontend(drv) \ | 116 | #define xenbus_register_frontend(drv) \ |
| 117 | __xenbus_register_frontend(drv, THIS_MODULE, KBUILD_MODNAME); | 117 | __xenbus_register_frontend(drv, THIS_MODULE, KBUILD_MODNAME) |
| 118 | #define xenbus_register_backend(drv) \ | 118 | #define xenbus_register_backend(drv) \ |
| 119 | __xenbus_register_backend(drv, THIS_MODULE, KBUILD_MODNAME); | 119 | __xenbus_register_backend(drv, THIS_MODULE, KBUILD_MODNAME) |
| 120 | 120 | ||
| 121 | void xenbus_unregister_driver(struct xenbus_driver *drv); | 121 | void xenbus_unregister_driver(struct xenbus_driver *drv); |
| 122 | 122 | ||
