We need the USB fixes in here as well.
Showing the changes to include/linux (13 of 584 files). Show all
Unified · Split
| @@ -181,6 +181,7 @@ struct blkcg_policy { · 180 unmodified lines | |||
| 181 | 181 | ||
| 182 | extern struct blkcg blkcg_root; | 182 | extern struct blkcg blkcg_root; |
| 183 | extern struct cgroup_subsys_state * const blkcg_root_css; | 183 | extern struct cgroup_subsys_state * const blkcg_root_css; |
| 184 | extern bool blkcg_debug_stats; | ||
| 184 | 185 | ||
| 185 | struct blkcg_gq *blkg_lookup_slowpath(struct blkcg *blkcg, | 186 | struct blkcg_gq *blkg_lookup_slowpath(struct blkcg *blkcg, |
| 186 | struct request_queue *q, bool update_hint); | 187 | struct request_queue *q, bool update_hint); |
| @@ -311,6 +311,7 @@ enum req_flag_bits { · 310 unmodified lines | |||
| 311 | __REQ_RAHEAD, /* read ahead, can fail anytime */ | 311 | __REQ_RAHEAD, /* read ahead, can fail anytime */ |
| 312 | __REQ_BACKGROUND, /* background IO */ | 312 | __REQ_BACKGROUND, /* background IO */ |
| 313 | __REQ_NOWAIT, /* Don't wait if request will block */ | 313 | __REQ_NOWAIT, /* Don't wait if request will block */ |
| 314 | __REQ_NOWAIT_INLINE, /* Return would-block error inline */ | ||
| 314 | /* | 315 | /* |
| 315 | * When a shared kthread needs to issue a bio for a cgroup, doing | 316 | * When a shared kthread needs to issue a bio for a cgroup, doing |
| 316 | * so synchronously can lead to priority inversions as the kthread | 317 | * so synchronously can lead to priority inversions as the kthread |
| @@ -345,6 +346,7 @@ enum req_flag_bits { · 28 unmodified lines | |||
| 345 | #define REQ_RAHEAD (1ULL << __REQ_RAHEAD) | 346 | #define REQ_RAHEAD (1ULL << __REQ_RAHEAD) |
| 346 | #define REQ_BACKGROUND (1ULL << __REQ_BACKGROUND) | 347 | #define REQ_BACKGROUND (1ULL << __REQ_BACKGROUND) |
| 347 | #define REQ_NOWAIT (1ULL << __REQ_NOWAIT) | 348 | #define REQ_NOWAIT (1ULL << __REQ_NOWAIT) |
| 349 | #define REQ_NOWAIT_INLINE (1ULL << __REQ_NOWAIT_INLINE) | ||
| 348 | #define REQ_CGROUP_PUNT (1ULL << __REQ_CGROUP_PUNT) | 350 | #define REQ_CGROUP_PUNT (1ULL << __REQ_CGROUP_PUNT) |
| 349 | 351 | ||
| 350 | #define REQ_NOUNMAP (1ULL << __REQ_NOUNMAP) | 352 | #define REQ_NOUNMAP (1ULL << __REQ_NOUNMAP) |
| @@ -418,12 +420,13 @@ static inline int op_stat_group(unsigned int op) · 67 unmodified lines | |||
| 418 | 420 | ||
| 419 | typedef unsigned int blk_qc_t; | 421 | typedef unsigned int blk_qc_t; |
| 420 | #define BLK_QC_T_NONE -1U | 422 | #define BLK_QC_T_NONE -1U |
| 423 | #define BLK_QC_T_EAGAIN -2U | ||
| 421 | #define BLK_QC_T_SHIFT 16 | 424 | #define BLK_QC_T_SHIFT 16 |
| 422 | #define BLK_QC_T_INTERNAL (1U << 31) | 425 | #define BLK_QC_T_INTERNAL (1U << 31) |
| 423 | 426 | ||
| 424 | static inline bool blk_qc_t_valid(blk_qc_t cookie) | 427 | static inline bool blk_qc_t_valid(blk_qc_t cookie) |
| 425 | { | 428 | { |
| 426 | return cookie != BLK_QC_T_NONE; | 429 | return cookie != BLK_QC_T_NONE && cookie != BLK_QC_T_EAGAIN; |
| 427 | } | 430 | } |
| 428 | 431 | ||
| 429 | static inline unsigned int blk_qc_t_to_queue_num(blk_qc_t cookie) | 432 | static inline unsigned int blk_qc_t_to_queue_num(blk_qc_t cookie) |
| @@ -50,7 +50,6 @@ struct cn_dev { · 49 unmodified lines | |||
| 50 | 50 | ||
| 51 | u32 seq, groups; | 51 | u32 seq, groups; |
| 52 | struct sock *nls; | 52 | struct sock *nls; |
| 53 | void (*input) (struct sk_buff *skb); | ||
| 54 | 53 | ||
| 55 | struct cn_queue_dev *cbdev; | 54 | struct cn_queue_dev *cbdev; |
| 56 | }; | 55 | }; |
| @@ -145,7 +145,11 @@ struct cred { · 144 unmodified lines | |||
| 145 | struct user_struct *user; /* real user ID subscription */ | 145 | struct user_struct *user; /* real user ID subscription */ |
| 146 | struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */ | 146 | struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */ |
| 147 | struct group_info *group_info; /* supplementary groups for euid/fsgid */ | 147 | struct group_info *group_info; /* supplementary groups for euid/fsgid */ |
| 148 | struct rcu_head rcu; /* RCU deletion hook */ | 148 | /* RCU deletion */ |
| 149 | union { | ||
| 150 | int non_rcu; /* Can we skip RCU deletion? */ | ||
| 151 | struct rcu_head rcu; /* RCU deletion hook */ | ||
| 152 | }; | ||
| 149 | } __randomize_layout; | 153 | } __randomize_layout; |
| 150 | 154 | ||
| 151 | extern void __put_cred(struct cred *); | 155 | extern void __put_cred(struct cred *); |
| @@ -246,6 +250,7 @@ static inline const struct cred *get_cred(const struct cred *cred) · 94 unmodified lines | |||
| 246 | if (!cred) | 250 | if (!cred) |
| 247 | return cred; | 251 | return cred; |
| 248 | validate_creds(cred); | 252 | validate_creds(cred); |
| 253 | nonconst_cred->non_rcu = 0; | ||
| 249 | return get_new_cred(nonconst_cred); | 254 | return get_new_cred(nonconst_cred); |
| 250 | } | 255 | } |
| 251 | 256 | ||
| @@ -257,6 +262,7 @@ static inline const struct cred *get_cred_rcu(const struct cred *cred) · 5 unmodified lines | |||
| 257 | if (!atomic_inc_not_zero(&nonconst_cred->usage)) | 262 | if (!atomic_inc_not_zero(&nonconst_cred->usage)) |
| 258 | return NULL; | 263 | return NULL; |
| 259 | validate_creds(cred); | 264 | validate_creds(cred); |
| 265 | nonconst_cred->non_rcu = 0; | ||
| 260 | return cred; | 266 | return cred; |
| 261 | } | 267 | } |
| 262 | 268 | ||
| @@ -915,6 +915,8 @@ struct dev_links_info { · 914 unmodified lines | |||
| 915 | * This identifies the device type and carries type-specific | 915 | * This identifies the device type and carries type-specific |
| 916 | * information. | 916 | * information. |
| 917 | * @mutex: Mutex to synchronize calls to its driver. | 917 | * @mutex: Mutex to synchronize calls to its driver. |
| 918 | * @lockdep_mutex: An optional debug lock that a subsystem can use as a | ||
| 919 | * peer lock to gain localized lockdep coverage of the device_lock. | ||
| 918 | * @bus: Type of bus device is on. | 920 | * @bus: Type of bus device is on. |
| 919 | * @driver: Which driver has allocated this | 921 | * @driver: Which driver has allocated this |
| 920 | * @platform_data: Platform data specific to the device. | 922 | * @platform_data: Platform data specific to the device. |
| @@ -998,6 +1000,9 @@ struct device { · 77 unmodified lines | |||
| 998 | core doesn't touch it */ | 1000 | core doesn't touch it */ |
| 999 | void *driver_data; /* Driver data, set and get with | 1001 | void *driver_data; /* Driver data, set and get with |
| 1000 | dev_set_drvdata/dev_get_drvdata */ | 1002 | dev_set_drvdata/dev_get_drvdata */ |
| 1003 | #ifdef CONFIG_PROVE_LOCKING | ||
| 1004 | struct mutex lockdep_mutex; | ||
| 1005 | #endif | ||
| 1001 | struct mutex mutex; /* mutex to synchronize calls to | 1006 | struct mutex mutex; /* mutex to synchronize calls to |
| 1002 | * its driver. | 1007 | * its driver. |
| 1003 | */ | 1008 | */ |
| @@ -1383,6 +1388,7 @@ extern int (*platform_notify_remove)(struct device *dev); · 379 unmodified lines | |||
| 1383 | */ | 1388 | */ |
| 1384 | extern struct device *get_device(struct device *dev); | 1389 | extern struct device *get_device(struct device *dev); |
| 1385 | extern void put_device(struct device *dev); | 1390 | extern void put_device(struct device *dev); |
| 1391 | extern bool kill_device(struct device *dev); | ||
| 1386 | 1392 | ||
| 1387 | #ifdef CONFIG_DEVTMPFS | 1393 | #ifdef CONFIG_DEVTMPFS |
| 1388 | extern int devtmpfs_create_node(struct device *dev); | 1394 | extern int devtmpfs_create_node(struct device *dev); |
| @@ -689,8 +689,8 @@ static inline int dma_coerce_mask_and_coherent(struct device *dev, u64 mask) · 688 unmodified lines | |||
| 689 | */ | 689 | */ |
| 690 | static inline bool dma_addressing_limited(struct device *dev) | 690 | static inline bool dma_addressing_limited(struct device *dev) |
| 691 | { | 691 | { |
| 692 | return min_not_zero(*dev->dma_mask, dev->bus_dma_mask) < | 692 | return min_not_zero(dma_get_mask(dev), dev->bus_dma_mask) < |
| 693 | dma_get_required_mask(dev); | 693 | dma_get_required_mask(dev); |
| 694 | } | 694 | } |
| 695 | 695 | ||
| 696 | #ifdef CONFIG_ARCH_HAS_SETUP_DMA_OPS | 696 | #ifdef CONFIG_ARCH_HAS_SETUP_DMA_OPS |
| @@ -45,7 +45,6 @@ struct elevator_mq_ops { · 44 unmodified lines | |||
| 45 | struct request *(*dispatch_request)(struct blk_mq_hw_ctx *); | 45 | struct request *(*dispatch_request)(struct blk_mq_hw_ctx *); |
| 46 | bool (*has_work)(struct blk_mq_hw_ctx *); | 46 | bool (*has_work)(struct blk_mq_hw_ctx *); |
| 47 | void (*completed_request)(struct request *, u64); | 47 | void (*completed_request)(struct request *, u64); |
| 48 | void (*started_request)(struct request *); | ||
| 49 | void (*requeue_request)(struct request *); | 48 | void (*requeue_request)(struct request *); |
| 50 | struct request *(*former_request)(struct request_queue *, struct request *); | 49 | struct request *(*former_request)(struct request_queue *, struct request *); |
| 51 | struct request *(*next_request)(struct request_queue *, struct request *); | 50 | struct request *(*next_request)(struct request_queue *, struct request *); |
| @@ -155,6 +155,7 @@ struct iova *reserve_iova(struct iova_domain *iovad, unsigned long pfn_lo, · 154 unmodified lines | |||
| 155 | void copy_reserved_iova(struct iova_domain *from, struct iova_domain *to); | 155 | void copy_reserved_iova(struct iova_domain *from, struct iova_domain *to); |
| 156 | void init_iova_domain(struct iova_domain *iovad, unsigned long granule, | 156 | void init_iova_domain(struct iova_domain *iovad, unsigned long granule, |
| 157 | unsigned long start_pfn); | 157 | unsigned long start_pfn); |
| 158 | bool has_iova_flush_queue(struct iova_domain *iovad); | ||
| 158 | int init_iova_flush_queue(struct iova_domain *iovad, | 159 | int init_iova_flush_queue(struct iova_domain *iovad, |
| 159 | iova_flush_cb flush_cb, iova_entry_dtor entry_dtor); | 160 | iova_flush_cb flush_cb, iova_entry_dtor entry_dtor); |
| 160 | struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn); | 161 | struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn); |
| @@ -235,6 +236,11 @@ static inline void init_iova_domain(struct iova_domain *iovad, · 74 unmodified lines | |||
| 235 | { | 236 | { |
| 236 | } | 237 | } |
| 237 | 238 | ||
| 239 | static inline bool has_iova_flush_queue(struct iova_domain *iovad) | ||
| 240 | { | ||
| 241 | return false; | ||
| 242 | } | ||
| 243 | |||
| 238 | static inline int init_iova_flush_queue(struct iova_domain *iovad, | 244 | static inline int init_iova_flush_queue(struct iova_domain *iovad, |
| 239 | iova_flush_cb flush_cb, | 245 | iova_flush_cb flush_cb, |
| 240 | iova_entry_dtor entry_dtor) | 246 | iova_entry_dtor entry_dtor) |
| @@ -1,7 +1,6 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0-only */ | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
| 2 | /**************************************************************************** | 2 | /**************************************************************************** |
| 3 | * ip_conntrack_h323_asn1.h - BER and PER decoding library for H.323 | 3 | * BER and PER decoding library for H.323 conntrack/NAT module. |
| 4 | * conntrack/NAT module. | ||
| 5 | * | 4 | * |
| 6 | * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@users.sourceforge.net> | 5 | * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@users.sourceforge.net> |
| 7 | * | 6 | * |
| @@ -1164,7 +1164,7 @@ static inline int of_property_read_string_index(const struct device_node *np, · 1163 unmodified lines | |||
| 1164 | } | 1164 | } |
| 1165 | 1165 | ||
| 1166 | /** | 1166 | /** |
| 1167 | * of_property_read_bool - Findfrom a property | 1167 | * of_property_read_bool - Find a property |
| 1168 | * @np: device node from which the property value is to be read. | 1168 | * @np: device node from which the property value is to be read. |
| 1169 | * @propname: name of the property to be searched. | 1169 | * @propname: name of the property to be searched. |
| 1170 | * | 1170 | * |
| @@ -1092,7 +1092,15 @@ struct task_struct { · 1091 unmodified lines | |||
| 1092 | u64 last_sum_exec_runtime; | 1092 | u64 last_sum_exec_runtime; |
| 1093 | struct callback_head numa_work; | 1093 | struct callback_head numa_work; |
| 1094 | 1094 | ||
| 1095 | struct numa_group *numa_group; | 1095 | /* |
| 1096 | * This pointer is only modified for current in syscall and | ||
| 1097 | * pagefault context (and for tasks being destroyed), so it can be read | ||
| 1098 | * from any of the following contexts: | ||
| 1099 | * - RCU read-side critical section | ||
| 1100 | * - current->numa_group from everywhere | ||
| 1101 | * - task's runqueue locked, task not running | ||
| 1102 | */ | ||
| 1103 | struct numa_group __rcu *numa_group; | ||
| 1096 | 1104 | ||
| 1097 | /* | 1105 | /* |
| 1098 | * numa_faults is an array split into four regions: | 1106 | * numa_faults is an array split into four regions: |
| @@ -19,7 +19,7 @@ · 18 unmodified lines | |||
| 19 | extern void task_numa_fault(int last_node, int node, int pages, int flags); | 19 | extern void task_numa_fault(int last_node, int node, int pages, int flags); |
| 20 | extern pid_t task_numa_group_id(struct task_struct *p); | 20 | extern pid_t task_numa_group_id(struct task_struct *p); |
| 21 | extern void set_numabalancing_state(bool enabled); | 21 | extern void set_numabalancing_state(bool enabled); |
| 22 | extern void task_numa_free(struct task_struct *p); | 22 | extern void task_numa_free(struct task_struct *p, bool final); |
| 23 | extern bool should_numa_migrate_memory(struct task_struct *p, struct page *page, | 23 | extern bool should_numa_migrate_memory(struct task_struct *p, struct page *page, |
| 24 | int src_nid, int dst_cpu); | 24 | int src_nid, int dst_cpu); |
| 25 | #else | 25 | #else |
| @@ -34,7 +34,7 @@ static inline pid_t task_numa_group_id(struct task_struct *p) · 8 unmodified lines | |||
| 34 | static inline void set_numabalancing_state(bool enabled) | 34 | static inline void set_numabalancing_state(bool enabled) |
| 35 | { | 35 | { |
| 36 | } | 36 | } |
| 37 | static inline void task_numa_free(struct task_struct *p) | 37 | static inline void task_numa_free(struct task_struct *p, bool final) |
| 38 | { | 38 | { |
| 39 | } | 39 | } |
| 40 | static inline bool should_numa_migrate_memory(struct task_struct *p, | 40 | static inline bool should_numa_migrate_memory(struct task_struct *p, |
| @@ -126,6 +126,19 @@ static inline int waitqueue_active(struct wait_queue_head *wq_head) · 125 unmodified lines | |||
| 126 | return !list_empty(&wq_head->head); | 126 | return !list_empty(&wq_head->head); |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | /** | ||
| 130 | * wq_has_single_sleeper - check if there is only one sleeper | ||
| 131 | * @wq_head: wait queue head | ||
| 132 | * | ||
| 133 | * Returns true of wq_head has only one sleeper on the list. | ||
| 134 | * | ||
| 135 | * Please refer to the comment for waitqueue_active. | ||
| 136 | */ | ||
| 137 | static inline bool wq_has_single_sleeper(struct wait_queue_head *wq_head) | ||
| 138 | { | ||
| 139 | return list_is_singular(&wq_head->head); | ||
| 140 | } | ||
| 141 | |||
| 129 | /** | 142 | /** |
| 130 | * wq_has_sleeper - check if there are any waiting processes | 143 | * wq_has_sleeper - check if there are any waiting processes |
| 131 | * @wq_head: wait queue head | 144 | * @wq_head: wait queue head |