History

Merge tag 'v5.5-rc3' into sched/core, to pick up fixes

Ingo Molnar committed 6 years ago

Commit 1e5f8a32 parents a5e37de 46cf0532365 files · +73743 −24048Browse files

Showing the changes to include/linux (89 of 2365 files). Show all

Unified · Split

89 files
  1. include/linux/agpgart.h +0 −2
  2. include/linux/bitmap.h +51 −0
  3. include/linux/bitops.h +12 −0
  4. include/linux/blk-cgroup.h +0 −2
  5. include/linux/blkdev.h +10 −14
  6. include/linux/bpf-cgroup.h +4 −4
  7. include/linux/bpf.h +3 −0
  8. include/linux/build_bug.h +2 −2
  9. include/linux/bvec.h +10 −12
  10. include/linux/ceph/libceph.h +6 −4
  11. include/linux/cpu_cooling.h +8 −10
  12. include/linux/cpufreq.h +0 −11
  13. include/linux/cpuidle.h +1 −1
  14. include/linux/dcache.h +5 −0
  15. include/linux/devfreq.h +10 −4
  16. include/linux/device.h +2 −2
  17. include/linux/efi.h +5 −5
  18. include/linux/energy_model.h +1 −2
  19. include/linux/export.h +28 −63
  20. include/linux/filter.h +12 −8
  21. include/linux/firmware/meson/meson_sm.h +9 −6
  22. include/linux/firmware/xlnx-zynqmp.h +2 −1
  23. include/linux/ftrace.h +5 −0
  24. include/linux/genalloc.h +1 −1
  25. include/linux/i2c.h +6 −6
  26. include/linux/initrd.h +2 −0
  27. include/linux/jbd2.h +1 −1
  28. include/linux/kasan.h +9 −6
  29. include/linux/kcov.h +23 −0
  30. include/linux/kernel.h +14 −5
  31. include/linux/kvm_host.h +1 −1
  32. include/linux/lockd/debug.h +0 −4
  33. include/linux/lockd/lockd.h +0 −4
  34. include/linux/logic_pio.h +2 −2
  35. include/linux/mfd/stm32-timers.h +4 −8
  36. include/linux/mfd/syscon/atmel-matrix.h +0 −1
  37. include/linux/miscdevice.h +1 −0
  38. include/linux/mm.h +8 −5
  39. include/linux/mod_devicetable.h +2 −2
  40. include/linux/moduleparam.h +2 −2
  41. include/linux/namei.h +1 −0
  42. include/linux/netdevice.h +6 −1
  43. include/linux/nfs4.h +26 −0
  44. include/linux/nfs_fs.h +3 −1
  45. include/linux/nfs_fs_sb.h +5 −1
  46. include/linux/nfs_xdr.h +24 −7
  47. include/linux/notifier.h +0 −4
  48. include/linux/nvme-fc-driver.h +4 −0
  49. include/linux/of_mdio.h +6 −0
  50. include/linux/phy.h +1 −1
  51. include/linux/phy_led_triggers.h +1 −1
  52. include/linux/pipe_fs_i.h +0 −2
  53. include/linux/platform_data/ti-prm.h +21 −0
  54. include/linux/platform_data/ti-sysc.h +2 −0
  55. include/linux/pm_qos.h +50 −36
  56. include/linux/pm_wakeup.h +9 −0
  57. include/linux/printk.h +1 −2
  58. include/linux/proc_fs.h +2 −2
  59. include/linux/pwm.h +1 −4
  60. include/linux/qcom_scm.h +26 −0
  61. include/linux/rbtree_augmented.h +2 −4
  62. include/linux/rculist_nulls.h +37 −0
  63. include/linux/reset-controller.h +2 −1
  64. include/linux/reset.h +46 −0
  65. include/linux/sched.h +8 −0
  66. include/linux/sched/cpufreq.h +3 −0
  67. include/linux/skbuff.h +3 −2
  68. include/linux/soc/mmp/cputype.h +87 −0
  69. include/linux/soc/qcom/llcc-qcom.h +20 −74
  70. include/linux/socket.h +13 −7
  71. include/linux/sunrpc/auth.h +0 −3
  72. include/linux/sunrpc/auth_gss.h +0 −2
  73. include/linux/sunrpc/clnt.h +1 −3
  74. include/linux/sunrpc/gss_api.h +0 −2
  75. include/linux/sunrpc/gss_err.h +0 −3
  76. include/linux/sunrpc/msg_prot.h +0 −3
  77. include/linux/sunrpc/rpc_pipe_fs.h +0 −3
  78. include/linux/sunrpc/svcauth.h +0 −4
  79. include/linux/sunrpc/svcauth_gss.h +0 −2
  80. include/linux/sunrpc/xdr.h +0 −3
  81. include/linux/sunrpc/xprt.h +2 −5
  82. include/linux/sunrpc/xprtsock.h +0 −4
  83. include/linux/syscalls.h +0 −3
  84. include/linux/sysctl.h +2 −4
  85. include/linux/thermal.h +0 −11
  86. include/linux/thread_info.h +2 −0
  87. include/linux/time.h +13 −0
  88. include/linux/tpm.h +1 −0
  89. include/linux/vmstat.h +50 −0
include/linux/agpgart.h+0−2
@@ -30,8 +30,6 @@ · 29 unmodified lines
3030 #include <linux/agp_backend.h>
3131 #include <uapi/linux/agpgart.h>
3232
33−#define AGPGART_MINOR 175
34−
3533 struct agp_info {
3634 struct agp_version version; /* version of the driver */
3735 u32 bridge_id; /* bridge vendor/device */
include/linux/bitmap.h+51−0
@@ -53,6 +53,7 @@ · 52 unmodified lines
5353 * bitmap_find_next_zero_area_off(buf, len, pos, n, mask) as above
5454 * bitmap_shift_right(dst, src, n, nbits) *dst = *src >> n
5555 * bitmap_shift_left(dst, src, n, nbits) *dst = *src << n
56+ * bitmap_replace(dst, old, new, mask, nbits) *dst = (*old & ~(*mask)) | (*new & *mask)
5657 * bitmap_remap(dst, src, old, new, nbits) *dst = map(old, new)(src)
5758 * bitmap_bitremap(oldbit, old, new, nbits) newbit = map(old, new)(oldbit)
5859 * bitmap_onto(dst, orig, relmap, nbits) *dst = orig relative to relmap
@@ -66,6 +67,8 @@ · 7 unmodified lines
6667 * bitmap_allocate_region(bitmap, pos, order) Allocate specified bit region
6768 * bitmap_from_arr32(dst, buf, nbits) Copy nbits from u32[] buf to dst
6869 * bitmap_to_arr32(buf, src, nbits) Copy nbits from buf to u32[] dst
70+ * bitmap_get_value8(map, start) Get 8bit value from map at start
71+ * bitmap_set_value8(map, value, start) Set 8bit value to map at start
6972 *
7073 * Note, bitmap_zero() and bitmap_fill() operate over the region of
7174 * unsigned longs, that is, bits behind bitmap till the unsigned long
@@ -138,6 +141,9 @@ extern void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1, · 66 unmodified lines
138141 const unsigned long *bitmap2, unsigned int nbits);
139142 extern int __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,
140143 const unsigned long *bitmap2, unsigned int nbits);
144+extern void __bitmap_replace(unsigned long *dst,
145+ const unsigned long *old, const unsigned long *new,
146+ const unsigned long *mask, unsigned int nbits);
141147 extern int __bitmap_intersects(const unsigned long *bitmap1,
142148 const unsigned long *bitmap2, unsigned int nbits);
143149 extern int __bitmap_subset(const unsigned long *bitmap1,
@@ -432,6 +438,18 @@ static inline void bitmap_shift_left(unsigned long *dst, const unsigned long *sr · 288 unmodified lines
432438 __bitmap_shift_left(dst, src, shift, nbits);
433439 }
434440
441+static inline void bitmap_replace(unsigned long *dst,
442+ const unsigned long *old,
443+ const unsigned long *new,
444+ const unsigned long *mask,
445+ unsigned int nbits)
446+{
447+ if (small_const_nbits(nbits))
448+ *dst = (*old & ~(*mask)) | (*new & *mask);
449+ else
450+ __bitmap_replace(dst, old, new, mask, nbits);
451+}
452+
435453 static inline int bitmap_parse(const char *buf, unsigned int buflen,
436454 unsigned long *maskp, int nmaskbits)
437455 {
@@ -489,6 +507,39 @@ static inline void bitmap_from_u64(unsigned long *dst, u64 mask) · 51 unmodified lines
489507 dst[1] = mask >> 32;
490508 }
491509
510+/**
511+ * bitmap_get_value8 - get an 8-bit value within a memory region
512+ * @map: address to the bitmap memory region
513+ * @start: bit offset of the 8-bit value; must be a multiple of 8
514+ *
515+ * Returns the 8-bit value located at the @start bit offset within the @src
516+ * memory region.
517+ */
518+static inline unsigned long bitmap_get_value8(const unsigned long *map,
519+ unsigned long start)
520+{
521+ const size_t index = BIT_WORD(start);
522+ const unsigned long offset = start % BITS_PER_LONG;
523+
524+ return (map[index] >> offset) & 0xFF;
525+}
526+
527+/**
528+ * bitmap_set_value8 - set an 8-bit value within a memory region
529+ * @map: address to the bitmap memory region
530+ * @value: the 8-bit value; values wider than 8 bits may clobber bitmap
531+ * @start: bit offset of the 8-bit value; must be a multiple of 8
532+ */
533+static inline void bitmap_set_value8(unsigned long *map, unsigned long value,
534+ unsigned long start)
535+{
536+ const size_t index = BIT_WORD(start);
537+ const unsigned long offset = start % BITS_PER_LONG;
538+
539+ map[index] &= ~(0xFFUL << offset);
540+ map[index] |= value << offset;
541+}
542+
492543 #endif /* __ASSEMBLY__ */
493544
494545 #endif /* __LINUX_BITMAP_H */
include/linux/bitops.h+12−0
@@ -47,6 +47,18 @@ extern unsigned long __sw_hweight64(__u64 w); · 46 unmodified lines
4747 (bit) < (size); \
4848 (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
4949
50+/**
51+ * for_each_set_clump8 - iterate over bitmap for each 8-bit clump with set bits
52+ * @start: bit offset to start search and to store the current iteration offset
53+ * @clump: location to store copy of current 8-bit clump
54+ * @bits: bitmap address to base the search on
55+ * @size: bitmap size in number of bits
56+ */
57+#define for_each_set_clump8(start, clump, bits, size) \
58+ for ((start) = find_first_clump8(&(clump), (bits), (size)); \
59+ (start) < (size); \
60+ (start) = find_next_clump8(&(clump), (bits), (size), (start) + 8))
61+
5062 static inline int get_bitmask_order(unsigned int count)
5163 {
5264 int order;
include/linux/blk-cgroup.h+0−2
@@ -188,7 +188,6 @@ struct blkcg_gq *__blkg_lookup_create(struct blkcg *blkcg, · 187 unmodified lines
188188 struct blkcg_gq *blkg_lookup_create(struct blkcg *blkcg,
189189 struct request_queue *q);
190190 int blkcg_init_queue(struct request_queue *q);
191−void blkcg_drain_queue(struct request_queue *q);
192191 void blkcg_exit_queue(struct request_queue *q);
193192
194193 /* Blkio controller policy registration */
@@ -720,7 +719,6 @@ static inline struct blkcg_gq *blkg_lookup(struct blkcg *blkcg, void *key) { ret · 525 unmodified lines
720719 static inline struct blkcg_gq *blk_queue_root_blkg(struct request_queue *q)
721720 { return NULL; }
722721 static inline int blkcg_init_queue(struct request_queue *q) { return 0; }
723−static inline void blkcg_drain_queue(struct request_queue *q) { }
724722 static inline void blkcg_exit_queue(struct request_queue *q) { }
725723 static inline int blkcg_policy_register(struct blkcg_policy *pol) { return 0; }
726724 static inline void blkcg_policy_unregister(struct blkcg_policy *pol) { }
include/linux/blkdev.h+10−14
@@ -357,8 +357,7 @@ typedef int (*report_zones_cb)(struct blk_zone *zone, unsigned int idx, · 356 unmodified lines
357357 #define BLK_ALL_ZONES ((unsigned int)-1)
358358 int blkdev_report_zones(struct block_device *bdev, sector_t sector,
359359 unsigned int nr_zones, report_zones_cb cb, void *data);
360−
361−extern unsigned int blkdev_nr_zones(struct block_device *bdev);
360+unsigned int blkdev_nr_zones(struct gendisk *disk);
362361 extern int blkdev_zone_mgmt(struct block_device *bdev, enum req_opf op,
363362 sector_t sectors, sector_t nr_sectors,
364363 gfp_t gfp_mask);
@@ -371,12 +370,7 @@ extern int blkdev_zone_mgmt_ioctl(struct block_device *bdev, fmode_t mode, · 6 unmodified lines
371370
372371 #else /* CONFIG_BLK_DEV_ZONED */
373372
374−static inline unsigned int blkdev_nr_zones(struct block_device *bdev)
375−{
376− return 0;
377−}
378−
379−static inline int blk_revalidate_disk_zones(struct gendisk *disk)
373+static inline unsigned int blkdev_nr_zones(struct gendisk *disk)
380374 {
381375 return 0;
382376 }
@@ -504,9 +498,9 @@ struct request_queue { · 121 unmodified lines
504498 /*
505499 * Zoned block device information for request dispatch control.
506500 * nr_zones is the total number of zones of the device. This is always
507− * 0 for regular block devices. seq_zones_bitmap is a bitmap of nr_zones
508− * bits which indicates if a zone is conventional (bit clear) or
509− * sequential (bit set). seq_zones_wlock is a bitmap of nr_zones
501+ * 0 for regular block devices. conv_zones_bitmap is a bitmap of nr_zones
502+ * bits which indicates if a zone is conventional (bit set) or
503+ * sequential (bit clear). seq_zones_wlock is a bitmap of nr_zones
510504 * bits which indicates if a zone is write locked, that is, if a write
511505 * request targeting the zone was dispatched. All three fields are
512506 * initialized by the low level device driver (e.g. scsi/sd.c).
@@ -519,7 +513,7 @@ struct request_queue { · 6 unmodified lines
519513 * blk_mq_unfreeze_queue().
520514 */
521515 unsigned int nr_zones;
522− unsigned long *seq_zones_bitmap;
516+ unsigned long *conv_zones_bitmap;
523517 unsigned long *seq_zones_wlock;
524518 #endif /* CONFIG_BLK_DEV_ZONED */
525519
@@ -724,9 +718,11 @@ static inline unsigned int blk_queue_zone_no(struct request_queue *q, · 198 unmodified lines
724718 static inline bool blk_queue_zone_is_seq(struct request_queue *q,
725719 sector_t sector)
726720 {
727− if (!blk_queue_is_zoned(q) || !q->seq_zones_bitmap)
721+ if (!blk_queue_is_zoned(q))
728722 return false;
729− return test_bit(blk_queue_zone_no(q, sector), q->seq_zones_bitmap);
723+ if (!q->conv_zones_bitmap)
724+ return true;
725+ return !test_bit(blk_queue_zone_no(q, sector), q->conv_zones_bitmap);
730726 }
731727 #else /* CONFIG_BLK_DEV_ZONED */
732728 static inline unsigned int blk_queue_nr_zones(struct request_queue *q)
include/linux/bpf-cgroup.h+4−4
@@ -157,8 +157,8 @@ void bpf_cgroup_storage_link(struct bpf_cgroup_storage *storage, · 156 unmodified lines
157157 struct cgroup *cgroup,
158158 enum bpf_attach_type type);
159159 void bpf_cgroup_storage_unlink(struct bpf_cgroup_storage *storage);
160−int bpf_cgroup_storage_assign(struct bpf_prog *prog, struct bpf_map *map);
161−void bpf_cgroup_storage_release(struct bpf_prog *prog, struct bpf_map *map);
160+int bpf_cgroup_storage_assign(struct bpf_prog_aux *aux, struct bpf_map *map);
161+void bpf_cgroup_storage_release(struct bpf_prog_aux *aux, struct bpf_map *map);
162162
163163 int bpf_percpu_cgroup_storage_copy(struct bpf_map *map, void *key, void *value);
164164 int bpf_percpu_cgroup_storage_update(struct bpf_map *map, void *key,
@@ -360,9 +360,9 @@ static inline int cgroup_bpf_prog_query(const union bpf_attr *attr, · 195 unmodified lines
360360
361361 static inline void bpf_cgroup_storage_set(
362362 struct bpf_cgroup_storage *storage[MAX_BPF_CGROUP_STORAGE_TYPE]) {}
363−static inline int bpf_cgroup_storage_assign(struct bpf_prog *prog,
363+static inline int bpf_cgroup_storage_assign(struct bpf_prog_aux *aux,
364364 struct bpf_map *map) { return 0; }
365−static inline void bpf_cgroup_storage_release(struct bpf_prog *prog,
365+static inline void bpf_cgroup_storage_release(struct bpf_prog_aux *aux,
366366 struct bpf_map *map) {}
367367 static inline struct bpf_cgroup_storage *bpf_cgroup_storage_alloc(
368368 struct bpf_prog *prog, enum bpf_cgroup_storage_type stype) { return NULL; }
include/linux/bpf.h+3−0
@@ -461,6 +461,7 @@ struct bpf_trampoline { · 460 unmodified lines
461461 struct {
462462 struct btf_func_model model;
463463 void *addr;
464+ bool ftrace_managed;
464465 } func;
465466 /* list of BPF programs using this trampoline */
466467 struct hlist_head progs_hlist[BPF_TRAMP_MAX];
@@ -817,6 +818,8 @@ struct bpf_prog * __must_check bpf_prog_inc_not_zero(struct bpf_prog *prog); · 350 unmodified lines
817818 void bpf_prog_put(struct bpf_prog *prog);
818819 int __bpf_prog_charge(struct user_struct *user, u32 pages);
819820 void __bpf_prog_uncharge(struct user_struct *user, u32 pages);
821+void __bpf_free_used_maps(struct bpf_prog_aux *aux,
822+ struct bpf_map **used_maps, u32 len);
820823
821824 void bpf_prog_free_id(struct bpf_prog *prog, bool do_idr_lock);
822825 void bpf_map_free_id(struct bpf_map *map, bool do_idr_lock);
include/linux/build_bug.h+2−2
@@ -9,11 +9,11 @@ · 8 unmodified lines
99 #else /* __CHECKER__ */
1010 /*
1111 * Force a compilation error if condition is true, but also produce a
12− * result (of value 0 and type size_t), so the expression can be used
12+ * result (of value 0 and type int), so the expression can be used
1313 * e.g. in a structure initializer (or where-ever else comma expressions
1414 * aren't permitted).
1515 */
16−#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:(-!!(e)); }))
16+#define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
1717 #endif /* __CHECKER__ */
1818
1919 /* Force a compilation error if a constant expression is not a power of 2 */
include/linux/bvec.h+10−12
@@ -87,26 +87,24 @@ struct bvec_iter_all { · 86 unmodified lines
8787 static inline bool bvec_iter_advance(const struct bio_vec *bv,
8888 struct bvec_iter *iter, unsigned bytes)
8989 {
90+ unsigned int idx = iter->bi_idx;
91+
9092 if (WARN_ONCE(bytes > iter->bi_size,
9193 "Attempted to advance past end of bvec iter\n")) {
9294 iter->bi_size = 0;
9395 return false;
9496 }
9597
96− while (bytes) {
97− const struct bio_vec *cur = bv + iter->bi_idx;
98− unsigned len = min3(bytes, iter->bi_size,
99− cur->bv_len - iter->bi_bvec_done);
100−
101− bytes -= len;
102− iter->bi_size -= len;
103− iter->bi_bvec_done += len;
98+ iter->bi_size -= bytes;
99+ bytes += iter->bi_bvec_done;
104100
105− if (iter->bi_bvec_done == cur->bv_len) {
106− iter->bi_bvec_done = 0;
107− iter->bi_idx++;
108− }
101+ while (bytes && bytes >= bv[idx].bv_len) {
102+ bytes -= bv[idx].bv_len;
103+ idx++;
109104 }
105+
106+ iter->bi_idx = idx;
107+ iter->bi_bvec_done = bytes;
110108 return true;
111109 }
112110
include/linux/ceph/libceph.h+6−4
@@ -280,10 +280,12 @@ extern const char *ceph_msg_type_name(int type); · 279 unmodified lines
280280 extern int ceph_check_fsid(struct ceph_client *client, struct ceph_fsid *fsid);
281281 extern void *ceph_kvmalloc(size_t size, gfp_t flags);
282282
283−extern struct ceph_options *ceph_parse_options(char *options,
284− const char *dev_name, const char *dev_name_end,
285− int (*parse_extra_token)(char *c, void *private),
286− void *private);
283+struct fs_parameter;
284+struct ceph_options *ceph_alloc_options(void);
285+int ceph_parse_mon_ips(const char *buf, size_t len, struct ceph_options *opt,
286+ struct fs_context *fc);
287+int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
288+ struct fs_context *fc);
287289 int ceph_print_client_options(struct seq_file *m, struct ceph_client *client,
288290 bool show_all);
289291 extern void ceph_destroy_options(struct ceph_options *opt);
include/linux/cpu_cooling.h+8−10
@@ -33,6 +33,13 @@ cpufreq_cooling_register(struct cpufreq_policy *policy); · 32 unmodified lines
3333 */
3434 void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev);
3535
36+/**
37+ * of_cpufreq_cooling_register - create cpufreq cooling device based on DT.
38+ * @policy: cpufreq policy.
39+ */
40+struct thermal_cooling_device *
41+of_cpufreq_cooling_register(struct cpufreq_policy *policy);
42+
3643 #else /* !CONFIG_CPU_THERMAL */
3744 static inline struct thermal_cooling_device *
3845 cpufreq_cooling_register(struct cpufreq_policy *policy)
@@ -45,21 +52,12 @@ void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) · 6 unmodified lines
4552 {
4653 return;
4754 }
48−#endif /* CONFIG_CPU_THERMAL */
4955
50−#if defined(CONFIG_THERMAL_OF) && defined(CONFIG_CPU_THERMAL)
51−/**
52− * of_cpufreq_cooling_register - create cpufreq cooling device based on DT.
53− * @policy: cpufreq policy.
54− */
55−struct thermal_cooling_device *
56−of_cpufreq_cooling_register(struct cpufreq_policy *policy);
57−#else
5856 static inline struct thermal_cooling_device *
5957 of_cpufreq_cooling_register(struct cpufreq_policy *policy)
6058 {
6159 return NULL;
6260 }
63−#endif /* defined(CONFIG_THERMAL_OF) && defined(CONFIG_CPU_THERMAL) */
61+#endif /* CONFIG_CPU_THERMAL */
6462
6563 #endif /* __CPU_COOLING_H__ */
include/linux/cpufreq.h+0−11
@@ -595,17 +595,6 @@ struct governor_attr { · 594 unmodified lines
595595 size_t count);
596596 };
597597
598−static inline bool cpufreq_this_cpu_can_update(struct cpufreq_policy *policy)
599−{
600− /*
601− * Allow remote callbacks if:
602− * - dvfs_possible_from_any_cpu flag is set
603− * - the local and remote CPUs share cpufreq policy
604− */
605− return policy->dvfs_possible_from_any_cpu ||
606− cpumask_test_cpu(smp_processor_id(), policy->cpus);
607−}
608−
609598 /*********************************************************************
610599 * FREQUENCY TABLE HELPERS *
611600 *********************************************************************/
include/linux/cpuidle.h+1−1
@@ -54,7 +54,6 @@ struct cpuidle_state { · 53 unmodified lines
5454 unsigned int exit_latency; /* in US */
5555 int power_usage; /* in mW */
5656 unsigned int target_residency; /* in US */
57− bool disabled; /* disabled on all CPUs */
5857
5958 int (*enter) (struct cpuidle_device *dev,
6059 struct cpuidle_driver *drv,
@@ -77,6 +76,7 @@ struct cpuidle_state { · 16 unmodified lines
7776 #define CPUIDLE_FLAG_POLLING BIT(0) /* polling state */
7877 #define CPUIDLE_FLAG_COUPLED BIT(1) /* state applies to multiple cpus */
7978 #define CPUIDLE_FLAG_TIMER_STOP BIT(2) /* timer is stopped on this state */
79+#define CPUIDLE_FLAG_UNUSABLE BIT(3) /* avoid using this state */
8080
8181 struct cpuidle_device_kobj;
8282 struct cpuidle_state_kobj;
include/linux/dcache.h+5−0
@@ -440,6 +440,11 @@ static inline bool d_is_negative(const struct dentry *dentry) · 439 unmodified lines
440440 return d_is_miss(dentry);
441441 }
442442
443+static inline bool d_flags_negative(unsigned flags)
444+{
445+ return (flags & DCACHE_ENTRY_TYPE) == DCACHE_MISS_TYPE;
446+}
447+
443448 static inline bool d_is_positive(const struct dentry *dentry)
444449 {
445450 return !d_is_negative(dentry);
include/linux/devfreq.h+10−4
@@ -13,6 +13,7 @@ · 12 unmodified lines
1313 #include <linux/device.h>
1414 #include <linux/notifier.h>
1515 #include <linux/pm_opp.h>
16+#include <linux/pm_qos.h>
1617
1718 #define DEVFREQ_NAME_LEN 16
1819
@@ -123,8 +124,8 @@ struct devfreq_dev_profile { · 104 unmodified lines
123124 * @previous_freq: previously configured frequency value.
124125 * @data: Private data of the governor. The devfreq framework does not
125126 * touch this.
126− * @min_freq: Limit minimum frequency requested by user (0: none)
127− * @max_freq: Limit maximum frequency requested by user (0: none)
127+ * @user_min_freq_req: PM QoS minimum frequency request from user (via sysfs)
128+ * @user_max_freq_req: PM QoS maximum frequency request from user (via sysfs)
128129 * @scaling_min_freq: Limit minimum frequency requested by OPP interface
129130 * @scaling_max_freq: Limit maximum frequency requested by OPP interface
130131 * @stop_polling: devfreq polling status of a device.
@@ -136,6 +137,8 @@ struct devfreq_dev_profile { · 5 unmodified lines
136137 * @time_in_state: Statistics of devfreq states
137138 * @last_stat_updated: The last time stat updated
138139 * @transition_notifier_list: list head of DEVFREQ_TRANSITION_NOTIFIER notifier
140+ * @nb_min: Notifier block for DEV_PM_QOS_MIN_FREQUENCY
141+ * @nb_max: Notifier block for DEV_PM_QOS_MAX_FREQUENCY
139142 *
140143 * This structure stores the devfreq information for a give device.
141144 *
@@ -161,8 +164,8 @@ struct devfreq { · 19 unmodified lines
161164
162165 void *data; /* private data for governors */
163166
164− unsigned long min_freq;
165− unsigned long max_freq;
167+ struct dev_pm_qos_request user_min_freq_req;
168+ struct dev_pm_qos_request user_max_freq_req;
166169 unsigned long scaling_min_freq;
167170 unsigned long scaling_max_freq;
168171 bool stop_polling;
@@ -178,6 +181,9 @@ struct devfreq { · 9 unmodified lines
178181 unsigned long last_stat_updated;
179182
180183 struct srcu_notifier_head transition_notifier_list;
184+
185+ struct notifier_block nb_min;
186+ struct notifier_block nb_max;
181187 };
182188
183189 struct devfreq_freqs {
include/linux/device.h+2−2
@@ -1666,11 +1666,11 @@ extern bool kill_device(struct device *dev); · 1665 unmodified lines
16661666 #ifdef CONFIG_DEVTMPFS
16671667 extern int devtmpfs_create_node(struct device *dev);
16681668 extern int devtmpfs_delete_node(struct device *dev);
1669−extern int devtmpfs_mount(const char *mntdir);
1669+extern int devtmpfs_mount(void);
16701670 #else
16711671 static inline int devtmpfs_create_node(struct device *dev) { return 0; }
16721672 static inline int devtmpfs_delete_node(struct device *dev) { return 0; }
1673−static inline int devtmpfs_mount(const char *mountpoint) { return 0; }
1673+static inline int devtmpfs_mount(void) { return 0; }
16741674 #endif
16751675
16761676 /* drivers/base/power/shutdown.c */
include/linux/efi.h+5−5
@@ -824,7 +824,7 @@ typedef struct { · 823 unmodified lines
824824 __aligned_u64 image_size;
825825 unsigned int image_code_type;
826826 unsigned int image_data_type;
827− unsigned long unload;
827+ u32 unload;
828828 } efi_loaded_image_32_t;
829829
830830 typedef struct {
@@ -840,14 +840,14 @@ typedef struct { · 9 unmodified lines
840840 __aligned_u64 image_size;
841841 unsigned int image_code_type;
842842 unsigned int image_data_type;
843− unsigned long unload;
843+ u64 unload;
844844 } efi_loaded_image_64_t;
845845
846846 typedef struct {
847847 u32 revision;
848− void *parent_handle;
848+ efi_handle_t parent_handle;
849849 efi_system_table_t *system_table;
850− void *device_handle;
850+ efi_handle_t device_handle;
851851 void *file_path;
852852 void *reserved;
853853 u32 load_options_size;
@@ -856,7 +856,7 @@ typedef struct { · 2 unmodified lines
856856 __aligned_u64 image_size;
857857 unsigned int image_code_type;
858858 unsigned int image_data_type;
859− unsigned long unload;
859+ efi_status_t (*unload)(efi_handle_t image_handle);
860860 } efi_loaded_image_t;
861861
862862
include/linux/energy_model.h+1−2
@@ -9,7 +9,6 @@ · 8 unmodified lines
99 #include <linux/sched/topology.h>
1010 #include <linux/types.h>
1111
12−#ifdef CONFIG_ENERGY_MODEL
1312 /**
1413 * em_cap_state - Capacity state of a performance domain
1514 * @frequency: The CPU frequency in KHz, for consistency with CPUFreq
@@ -40,6 +39,7 @@ struct em_perf_domain { · 24 unmodified lines
4039 unsigned long cpus[0];
4140 };
4241
42+#ifdef CONFIG_ENERGY_MODEL
4343 #define EM_CPU_MAX_POWER 0xFFFF
4444
4545 struct em_data_callback {
@@ -160,7 +160,6 @@ static inline int em_pd_nr_cap_states(struct em_perf_domain *pd) · 114 unmodified lines
160160 }
161161
162162 #else
163−struct em_perf_domain {};
164163 struct em_data_callback {};
165164 #define EM_DATA_CB(_active_power_cb) { }
166165
include/linux/export.h+28−63
@@ -47,7 +47,7 @@ extern struct module __this_module; · 46 unmodified lines
4747 * absolute relocations that require runtime processing on relocatable
4848 * kernels.
4949 */
50−#define __KSYMTAB_ENTRY_NS(sym, sec) \
50+#define __KSYMTAB_ENTRY(sym, sec) \
5151 __ADDRESSABLE(sym) \
5252 asm(" .section \"___ksymtab" sec "+" #sym "\", \"a\" \n" \
5353 " .balign 4 \n" \
@@ -57,33 +57,17 @@ extern struct module __this_module; · 3 unmodified lines
5757 " .long __kstrtabns_" #sym "- . \n" \
5858 " .previous \n")
5959
60−#define __KSYMTAB_ENTRY(sym, sec) \
61− __ADDRESSABLE(sym) \
62− asm(" .section \"___ksymtab" sec "+" #sym "\", \"a\" \n" \
63− " .balign 4 \n" \
64− "__ksymtab_" #sym ": \n" \
65− " .long " #sym "- . \n" \
66− " .long __kstrtab_" #sym "- . \n" \
67− " .long 0 \n" \
68− " .previous \n")
69−
7060 struct kernel_symbol {
7161 int value_offset;
7262 int name_offset;
7363 int namespace_offset;
7464 };
7565 #else
76−#define __KSYMTAB_ENTRY_NS(sym, sec) \
77− static const struct kernel_symbol __ksymtab_##sym \
78− __attribute__((section("___ksymtab" sec "+" #sym), used)) \
79− __aligned(sizeof(void *)) \
80− = { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
81−
8266 #define __KSYMTAB_ENTRY(sym, sec) \
8367 static const struct kernel_symbol __ksymtab_##sym \
8468 __attribute__((section("___ksymtab" sec "+" #sym), used)) \
8569 __aligned(sizeof(void *)) \
86− = { (unsigned long)&sym, __kstrtab_##sym, NULL }
70+ = { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
8771
8872 struct kernel_symbol {
8973 unsigned long value;
@@ -94,28 +78,20 @@ struct kernel_symbol { · 4 unmodified lines
9478
9579 #ifdef __GENKSYMS__
9680
97−#define ___EXPORT_SYMBOL(sym,sec) __GENKSYMS_EXPORT_SYMBOL(sym)
98−#define ___EXPORT_SYMBOL_NS(sym,sec,ns) __GENKSYMS_EXPORT_SYMBOL(sym)
81+#define ___EXPORT_SYMBOL(sym, sec, ns) __GENKSYMS_EXPORT_SYMBOL(sym)
9982
10083 #else
10184
102−#define ___export_symbol_common(sym, sec) \
85+/* For every exported symbol, place a struct in the __ksymtab section */
86+#define ___EXPORT_SYMBOL(sym, sec, ns) \
10387 extern typeof(sym) sym; \
10488 __CRC_SYMBOL(sym, sec); \
10589 static const char __kstrtab_##sym[] \
10690 __attribute__((section("__ksymtab_strings"), used, aligned(1))) \
107− = #sym \
108−
109−/* For every exported symbol, place a struct in the __ksymtab section */
110−#define ___EXPORT_SYMBOL_NS(sym, sec, ns) \
111− ___export_symbol_common(sym, sec); \
91+ = #sym; \
11292 static const char __kstrtabns_##sym[] \
11393 __attribute__((section("__ksymtab_strings"), used, aligned(1))) \
114− = #ns; \
115− __KSYMTAB_ENTRY_NS(sym, sec)
116−
117−#define ___EXPORT_SYMBOL(sym, sec) \
118− ___export_symbol_common(sym, sec); \
94+ = ns; \
11995 __KSYMTAB_ENTRY(sym, sec)
12096
12197 #endif
@@ -127,8 +103,7 @@ struct kernel_symbol { · 5 unmodified lines
127103 * be reused in other execution contexts such as the UEFI stub or the
128104 * decompressor.
129105 */
130−#define __EXPORT_SYMBOL_NS(sym, sec, ns)
131−#define __EXPORT_SYMBOL(sym, sec)
106+#define __EXPORT_SYMBOL(sym, sec, ns)
132107
133108 #elif defined(CONFIG_TRIM_UNUSED_KSYMS)
134109
@@ -144,48 +119,38 @@ struct kernel_symbol { · 9 unmodified lines
144119 #define __ksym_marker(sym) \
145120 static int __ksym_marker_##sym[0] __section(".discard.ksym") __used
146121
147−#define __EXPORT_SYMBOL(sym, sec) \
148− __ksym_marker(sym); \
149− __cond_export_sym(sym, sec, __is_defined(__KSYM_##sym))
150−#define __cond_export_sym(sym, sec, conf) \
151− ___cond_export_sym(sym, sec, conf)
152−#define ___cond_export_sym(sym, sec, enabled) \
153− __cond_export_sym_##enabled(sym, sec)
154−#define __cond_export_sym_1(sym, sec) ___EXPORT_SYMBOL(sym, sec)
155−#define __cond_export_sym_0(sym, sec) /* nothing */
156−
157−#define __EXPORT_SYMBOL_NS(sym, sec, ns) \
122+#define __EXPORT_SYMBOL(sym, sec, ns) \
158123 __ksym_marker(sym); \
159− __cond_export_ns_sym(sym, sec, ns, __is_defined(__KSYM_##sym))
160−#define __cond_export_ns_sym(sym, sec, ns, conf) \
161− ___cond_export_ns_sym(sym, sec, ns, conf)
162−#define ___cond_export_ns_sym(sym, sec, ns, enabled) \
163− __cond_export_ns_sym_##enabled(sym, sec, ns)
164−#define __cond_export_ns_sym_1(sym, sec, ns) ___EXPORT_SYMBOL_NS(sym, sec, ns)
165−#define __cond_export_ns_sym_0(sym, sec, ns) /* nothing */
124+ __cond_export_sym(sym, sec, ns, __is_defined(__KSYM_##sym))
125+#define __cond_export_sym(sym, sec, ns, conf) \
126+ ___cond_export_sym(sym, sec, ns, conf)
127+#define ___cond_export_sym(sym, sec, ns, enabled) \
128+ __cond_export_sym_##enabled(sym, sec, ns)
129+#define __cond_export_sym_1(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
130+#define __cond_export_sym_0(sym, sec, ns) /* nothing */
166131
167132 #else
168133
169−#define __EXPORT_SYMBOL_NS(sym,sec,ns) ___EXPORT_SYMBOL_NS(sym,sec,ns)
170−#define __EXPORT_SYMBOL(sym,sec) ___EXPORT_SYMBOL(sym,sec)
134+#define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
171135
172136 #endif /* CONFIG_MODULES */
173137
174138 #ifdef DEFAULT_SYMBOL_NAMESPACE
175−#undef __EXPORT_SYMBOL
176−#define __EXPORT_SYMBOL(sym, sec) \
177− __EXPORT_SYMBOL_NS(sym, sec, DEFAULT_SYMBOL_NAMESPACE)
139+#include <linux/stringify.h>
140+#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, __stringify(DEFAULT_SYMBOL_NAMESPACE))
141+#else
142+#define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
178143 #endif
179144
180−#define EXPORT_SYMBOL(sym) __EXPORT_SYMBOL(sym, "")
181−#define EXPORT_SYMBOL_GPL(sym) __EXPORT_SYMBOL(sym, "_gpl")
182−#define EXPORT_SYMBOL_GPL_FUTURE(sym) __EXPORT_SYMBOL(sym, "_gpl_future")
183−#define EXPORT_SYMBOL_NS(sym, ns) __EXPORT_SYMBOL_NS(sym, "", ns)
184−#define EXPORT_SYMBOL_NS_GPL(sym, ns) __EXPORT_SYMBOL_NS(sym, "_gpl", ns)
145+#define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
146+#define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
147+#define EXPORT_SYMBOL_GPL_FUTURE(sym) _EXPORT_SYMBOL(sym, "_gpl_future")
148+#define EXPORT_SYMBOL_NS(sym, ns) __EXPORT_SYMBOL(sym, "", #ns)
149+#define EXPORT_SYMBOL_NS_GPL(sym, ns) __EXPORT_SYMBOL(sym, "_gpl", #ns)
185150
186151 #ifdef CONFIG_UNUSED_SYMBOLS
187−#define EXPORT_UNUSED_SYMBOL(sym) __EXPORT_SYMBOL(sym, "_unused")
188−#define EXPORT_UNUSED_SYMBOL_GPL(sym) __EXPORT_SYMBOL(sym, "_unused_gpl")
152+#define EXPORT_UNUSED_SYMBOL(sym) _EXPORT_SYMBOL(sym, "_unused")
153+#define EXPORT_UNUSED_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_unused_gpl")
189154 #else
190155 #define EXPORT_UNUSED_SYMBOL(sym)
191156 #define EXPORT_UNUSED_SYMBOL_GPL(sym)
include/linux/filter.h+12−8
@@ -420,7 +420,7 @@ static inline bool insn_is_zext(const struct bpf_insn *insn) · 419 unmodified lines
420420
421421 #define BPF_FIELD_SIZEOF(type, field) \
422422 ({ \
423− const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
423+ const int __size = bytes_to_bpf_size(sizeof_field(type, field)); \
424424 BUILD_BUG_ON(__size < 0); \
425425 __size; \
426426 })
@@ -497,7 +497,7 @@ static inline bool insn_is_zext(const struct bpf_insn *insn) · 70 unmodified lines
497497
498498 #define bpf_target_off(TYPE, MEMBER, SIZE, PTR_SIZE) \
499499 ({ \
500− BUILD_BUG_ON(FIELD_SIZEOF(TYPE, MEMBER) != (SIZE)); \
500+ BUILD_BUG_ON(sizeof_field(TYPE, MEMBER) != (SIZE)); \
501501 *(PTR_SIZE) = (SIZE); \
502502 offsetof(TYPE, MEMBER); \
503503 })
@@ -608,7 +608,7 @@ static inline void bpf_compute_data_pointers(struct sk_buff *skb) · 104 unmodified lines
608608 {
609609 struct bpf_skb_data_end *cb = (struct bpf_skb_data_end *)skb->cb;
610610
611− BUILD_BUG_ON(sizeof(*cb) > FIELD_SIZEOF(struct sk_buff, cb));
611+ BUILD_BUG_ON(sizeof(*cb) > sizeof_field(struct sk_buff, cb));
612612 cb->data_meta = skb->data - skb_metadata_len(skb);
613613 cb->data_end = skb->data + skb_headlen(skb);
614614 }
@@ -646,9 +646,9 @@ static inline u8 *bpf_skb_cb(struct sk_buff *skb) · 31 unmodified lines
646646 * attached to sockets, we need to clear the bpf_skb_cb() area
647647 * to not leak previous contents to user space.
648648 */
649− BUILD_BUG_ON(FIELD_SIZEOF(struct __sk_buff, cb) != BPF_SKB_CB_LEN);
650− BUILD_BUG_ON(FIELD_SIZEOF(struct __sk_buff, cb) !=
651− FIELD_SIZEOF(struct qdisc_skb_cb, data));
649+ BUILD_BUG_ON(sizeof_field(struct __sk_buff, cb) != BPF_SKB_CB_LEN);
650+ BUILD_BUG_ON(sizeof_field(struct __sk_buff, cb) !=
651+ sizeof_field(struct qdisc_skb_cb, data));
652652
653653 return qdisc_skb_cb(skb)->data;
654654 }
@@ -776,8 +776,12 @@ bpf_ctx_narrow_access_offset(u32 off, u32 size, u32 size_default) · 121 unmodified lines
776776
777777 static inline void bpf_prog_lock_ro(struct bpf_prog *fp)
778778 {
779− set_vm_flush_reset_perms(fp);
780− set_memory_ro((unsigned long)fp, fp->pages);
779+#ifndef CONFIG_BPF_JIT_ALWAYS_ON
780+ if (!fp->jited) {
781+ set_vm_flush_reset_perms(fp);
782+ set_memory_ro((unsigned long)fp, fp->pages);
783+ }
784+#endif
781785 }
782786
783787 static inline void bpf_jit_binary_lock_ro(struct bpf_binary_header *hdr)
include/linux/firmware/meson/meson_sm.h+9−6
@@ -16,11 +16,14 @@ enum { · 15 unmodified lines
1616
1717 struct meson_sm_firmware;
1818
19−int meson_sm_call(unsigned int cmd_index, u32 *ret, u32 arg0, u32 arg1,
20− u32 arg2, u32 arg3, u32 arg4);
21−int meson_sm_call_write(void *buffer, unsigned int b_size, unsigned int cmd_index,
22− u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4);
23−int meson_sm_call_read(void *buffer, unsigned int bsize, unsigned int cmd_index,
24− u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4);
19+int meson_sm_call(struct meson_sm_firmware *fw, unsigned int cmd_index,
20+ u32 *ret, u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4);
21+int meson_sm_call_write(struct meson_sm_firmware *fw, void *buffer,
22+ unsigned int b_size, unsigned int cmd_index, u32 arg0,
23+ u32 arg1, u32 arg2, u32 arg3, u32 arg4);
24+int meson_sm_call_read(struct meson_sm_firmware *fw, void *buffer,
25+ unsigned int bsize, unsigned int cmd_index, u32 arg0,
26+ u32 arg1, u32 arg2, u32 arg3, u32 arg4);
27+struct meson_sm_firmware *meson_sm_get(struct device_node *firmware_node);
2528
2629 #endif /* _MESON_SM_FW_H_ */
include/linux/firmware/xlnx-zynqmp.h+2−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 /*
33 * Xilinx Zynq MPSoC Firmware layer
44 *
5− * Copyright (C) 2014-2018 Xilinx
5+ * Copyright (C) 2014-2019 Xilinx
66 *
77 * Michal Simek <michal.simek@xilinx.com>
88 * Davorin Mista <davorin.mista@aggios.com>
@@ -46,6 +46,7 @@ · 37 unmodified lines
4646 #define ZYNQMP_PM_CAPABILITY_ACCESS 0x1U
4747 #define ZYNQMP_PM_CAPABILITY_CONTEXT 0x2U
4848 #define ZYNQMP_PM_CAPABILITY_WAKEUP 0x4U
49+#define ZYNQMP_PM_CAPABILITY_UNUSABLE 0x8U
4950
5051 /*
5152 * Firmware FPGA Manager flags
include/linux/ftrace.h+5−0
@@ -264,6 +264,7 @@ int ftrace_modify_direct_caller(struct ftrace_func_entry *entry, · 263 unmodified lines
264264 struct dyn_ftrace *rec,
265265 unsigned long old_addr,
266266 unsigned long new_addr);
267+unsigned long ftrace_find_rec_direct(unsigned long ip);
267268 #else
268269 # define ftrace_direct_func_count 0
269270 static inline int register_ftrace_direct(unsigned long ip, unsigned long addr)
@@ -290,6 +291,10 @@ static inline int ftrace_modify_direct_caller(struct ftrace_func_entry *entry, · 20 unmodified lines
290291 {
291292 return -ENODEV;
292293 }
294+static inline unsigned long ftrace_find_rec_direct(unsigned long ip)
295+{
296+ return 0;
297+}
293298 #endif /* CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS */
294299
295300 #ifndef CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
include/linux/genalloc.h+1−1
@@ -206,7 +206,7 @@ extern struct gen_pool *devm_gen_pool_create(struct device *dev, · 205 unmodified lines
206206 int min_alloc_order, int nid, const char *name);
207207 extern struct gen_pool *gen_pool_get(struct device *dev, const char *name);
208208
209−bool addr_in_gen_pool(struct gen_pool *pool, unsigned long start,
209+extern bool gen_pool_has_addr(struct gen_pool *pool, unsigned long start,
210210 size_t size);
211211
212212 #ifdef CONFIG_OF
include/linux/i2c.h+6−6
@@ -300,6 +300,7 @@ struct i2c_driver { · 299 unmodified lines
300300 * generic enough to hide second-sourcing and compatible revisions.
301301 * @adapter: manages the bus segment hosting this I2C device
302302 * @dev: Driver model device node for the slave.
303+ * @init_irq: IRQ that was set at initialization
303304 * @irq: indicates the IRQ generated by this device (if any)
304305 * @detected: member of an i2c_driver.clients list or i2c-core's
305306 * userspace_devices list
@@ -466,12 +467,6 @@ i2c_new_probed_device(struct i2c_adapter *adap, · 160 unmodified lines
466467 /* Common custom probe functions */
467468 extern int i2c_probe_func_quick_read(struct i2c_adapter *adap, unsigned short addr);
468469
469−/* For devices that use several addresses, use i2c_new_dummy() to make
470− * client handles for the extra addresses.
471− */
472−extern struct i2c_client *
473−i2c_new_dummy(struct i2c_adapter *adap, u16 address);
474−
475470 extern struct i2c_client *
476471 i2c_new_dummy_device(struct i2c_adapter *adapter, u16 address);
477472
@@ -856,6 +851,11 @@ extern void i2c_del_driver(struct i2c_driver *driver); · 378 unmodified lines
856851 #define i2c_add_driver(driver) \
857852 i2c_register_driver(THIS_MODULE, driver)
858853
854+static inline bool i2c_client_has_driver(struct i2c_client *client)
855+{
856+ return !IS_ERR_OR_NULL(client) && client->dev.driver;
857+}
858+
859859 /* call the i2c_client->command() of all attached clients with
860860 * the given arguments */
861861 extern void i2c_clients_command(struct i2c_adapter *adap,
include/linux/initrd.h+2−0
@@ -28,3 +28,5 @@ extern unsigned int real_root_dev; · 27 unmodified lines
2828
2929 extern char __initramfs_start[];
3030 extern unsigned long __initramfs_size;
31+
32+void console_on_rootfs(void);
include/linux/jbd2.h+1−1
@@ -457,7 +457,7 @@ struct jbd2_revoke_table_s; · 456 unmodified lines
457457 * @h_journal: Which journal handle belongs to - used iff h_reserved set.
458458 * @h_rsv_handle: Handle reserved for finishing the logical operation.
459459 * @h_total_credits: Number of remaining buffers we are allowed to add to
460− journal. These are dirty buffers and revoke descriptor blocks.
460+ * journal. These are dirty buffers and revoke descriptor blocks.
461461 * @h_revoke_credits: Number of remaining revoke records available for handle
462462 * @h_ref: Reference count on this handle.
463463 * @h_err: Field for caller's use to track errors through large fs operations.
include/linux/kasan.h+9−6
@@ -205,20 +205,23 @@ static inline void *kasan_reset_tag(const void *addr) · 204 unmodified lines
205205 #endif /* CONFIG_KASAN_SW_TAGS */
206206
207207 #ifdef CONFIG_KASAN_VMALLOC
208−int kasan_populate_vmalloc(unsigned long requested_size,
209− struct vm_struct *area);
210−void kasan_poison_vmalloc(void *start, unsigned long size);
208+int kasan_populate_vmalloc(unsigned long addr, unsigned long size);
209+void kasan_poison_vmalloc(const void *start, unsigned long size);
210+void kasan_unpoison_vmalloc(const void *start, unsigned long size);
211211 void kasan_release_vmalloc(unsigned long start, unsigned long end,
212212 unsigned long free_region_start,
213213 unsigned long free_region_end);
214214 #else
215−static inline int kasan_populate_vmalloc(unsigned long requested_size,
216− struct vm_struct *area)
215+static inline int kasan_populate_vmalloc(unsigned long start,
216+ unsigned long size)
217217 {
218218 return 0;
219219 }
220220
221−static inline void kasan_poison_vmalloc(void *start, unsigned long size) {}
221+static inline void kasan_poison_vmalloc(const void *start, unsigned long size)
222+{ }
223+static inline void kasan_unpoison_vmalloc(const void *start, unsigned long size)
224+{ }
222225 static inline void kasan_release_vmalloc(unsigned long start,
223226 unsigned long end,
224227 unsigned long free_region_start,
include/linux/kcov.h+23−0
@@ -37,12 +37,35 @@ do { \ · 36 unmodified lines
3737 (t)->kcov_mode &= ~KCOV_IN_CTXSW; \
3838 } while (0)
3939
40+/* See Documentation/dev-tools/kcov.rst for usage details. */
41+void kcov_remote_start(u64 handle);
42+void kcov_remote_stop(void);
43+u64 kcov_common_handle(void);
44+
45+static inline void kcov_remote_start_common(u64 id)
46+{
47+ kcov_remote_start(kcov_remote_handle(KCOV_SUBSYSTEM_COMMON, id));
48+}
49+
50+static inline void kcov_remote_start_usb(u64 id)
51+{
52+ kcov_remote_start(kcov_remote_handle(KCOV_SUBSYSTEM_USB, id));
53+}
54+
4055 #else
4156
4257 static inline void kcov_task_init(struct task_struct *t) {}
4358 static inline void kcov_task_exit(struct task_struct *t) {}
4459 static inline void kcov_prepare_switch(struct task_struct *t) {}
4560 static inline void kcov_finish_switch(struct task_struct *t) {}
61+static inline void kcov_remote_start(u64 handle) {}
62+static inline void kcov_remote_stop(void) {}
63+static inline u64 kcov_common_handle(void)
64+{
65+ return 0;
66+}
67+static inline void kcov_remote_start_common(u64 id) {}
68+static inline void kcov_remote_start_usb(u64 id) {}
4669
4770 #endif /* CONFIG_KCOV */
4871 #endif /* _LINUX_KCOV_H */
include/linux/kernel.h+14−5
@@ -348,8 +348,7 @@ int __must_check kstrtoll(const char *s, unsigned int base, long long *res); · 347 unmodified lines
348348 * @res: Where to write the result of the conversion on success.
349349 *
350350 * Returns 0 on success, -ERANGE on overflow and -EINVAL on parsing error.
351− * Used as a replacement for the obsolete simple_strtoull. Return code must
352− * be checked.
351+ * Used as a replacement for the simple_strtoull. Return code must be checked.
353352 */
354353 static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
355354 {
@@ -377,8 +376,7 @@ static inline int __must_check kstrtoul(const char *s, unsigned int base, unsign · 21 unmodified lines
377376 * @res: Where to write the result of the conversion on success.
378377 *
379378 * Returns 0 on success, -ERANGE on overflow and -EINVAL on parsing error.
380− * Used as a replacement for the obsolete simple_strtoull. Return code must
381− * be checked.
379+ * Used as a replacement for the simple_strtoull. Return code must be checked.
382380 */
383381 static inline int __must_check kstrtol(const char *s, unsigned int base, long *res)
384382 {
@@ -454,7 +452,18 @@ static inline int __must_check kstrtos32_from_user(const char __user *s, size_t · 69 unmodified lines
454452 return kstrtoint_from_user(s, count, base, res);
455453 }
456454
457−/* Obsolete, do not use. Use kstrto<foo> instead */
455+/*
456+ * Use kstrto<foo> instead.
457+ *
458+ * NOTE: simple_strto<foo> does not check for the range overflow and,
459+ * depending on the input, may give interesting results.
460+ *
461+ * Use these functions if and only if you cannot use kstrto<foo>, because
462+ * the conversion ends on the first non-digit character, which may be far
463+ * beyond the supported range. It might be useful to parse the strings like
464+ * 10x50 or 12:21 without altering original string or temporary buffer in use.
465+ * Keep in mind above caveat.
466+ */
458467
459468 extern unsigned long simple_strtoul(const char *,char **,unsigned int);
460469 extern long simple_strtol(const char *,char **,unsigned int);
include/linux/kvm_host.h+1−1
@@ -149,7 +149,7 @@ static inline bool is_error_page(struct page *page) · 148 unmodified lines
149149 #define KVM_REQUEST_ARCH_BASE 8
150150
151151 #define KVM_ARCH_REQ_FLAGS(nr, flags) ({ \
152− BUILD_BUG_ON((unsigned)(nr) >= (FIELD_SIZEOF(struct kvm_vcpu, requests) * 8) - KVM_REQUEST_ARCH_BASE); \
152+ BUILD_BUG_ON((unsigned)(nr) >= (sizeof_field(struct kvm_vcpu, requests) * 8) - KVM_REQUEST_ARCH_BASE); \
153153 (unsigned)(((nr) + KVM_REQUEST_ARCH_BASE) | (flags)); \
154154 })
155155 #define KVM_ARCH_REQ(nr) KVM_ARCH_REQ_FLAGS(nr, 0)
include/linux/lockd/debug.h+0−4
@@ -10,8 +10,6 @@ · 9 unmodified lines
1010 #ifndef LINUX_LOCKD_DEBUG_H
1111 #define LINUX_LOCKD_DEBUG_H
1212
13−#ifdef __KERNEL__
14−
1513 #include <linux/sunrpc/debug.h>
1614
1715 /*
@@ -25,8 +23,6 @@ · 7 unmodified lines
2523 # define ifdebug(flag) if (0)
2624 #endif
2725
28−#endif /* __KERNEL__ */
29−
3026 /*
3127 * Debug flags
3228 */
include/linux/lockd/lockd.h+0−4
@@ -10,8 +10,6 @@ · 9 unmodified lines
1010 #ifndef LINUX_LOCKD_LOCKD_H
1111 #define LINUX_LOCKD_LOCKD_H
1212
13−#ifdef __KERNEL__
14−
1513 #include <linux/in.h>
1614 #include <linux/in6.h>
1715 #include <net/ipv6.h>
@@ -373,6 +371,4 @@ static inline int nlm_compare_locks(const struct file_lock *fl1, · 355 unmodified lines
373371
374372 extern const struct lock_manager_operations nlmsvc_lock_operations;
375373
376−#endif /* __KERNEL__ */
377−
378374 #endif /* LINUX_LOCKD_LOCKD_H */
include/linux/logic_pio.h+2−2
@@ -108,10 +108,10 @@ void logic_outsl(unsigned long addr, const void *buffer, unsigned int count); · 107 unmodified lines
108108 * area by redefining the macro below.
109109 */
110110 #define PIO_INDIRECT_SIZE 0x4000
111−#define MMIO_UPPER_LIMIT (IO_SPACE_LIMIT - PIO_INDIRECT_SIZE)
112111 #else
113−#define MMIO_UPPER_LIMIT IO_SPACE_LIMIT
112+#define PIO_INDIRECT_SIZE 0
114113 #endif /* CONFIG_INDIRECT_PIO */
114+#define MMIO_UPPER_LIMIT (IO_SPACE_LIMIT - PIO_INDIRECT_SIZE)
115115
116116 struct logic_pio_hwaddr *find_io_range_by_fwnode(struct fwnode_handle *fwnode);
117117 unsigned long logic_pio_trans_hwaddr(struct fwnode_handle *fwnode,
include/linux/mfd/stm32-timers.h+4−8
@@ -70,14 +70,11 @@ · 69 unmodified lines
7070 #define TIM_CCER_CC4E BIT(12) /* Capt/Comp 4 out Ena */
7171 #define TIM_CCER_CC4P BIT(13) /* Capt/Comp 4 Polarity */
7272 #define TIM_CCER_CCXE (BIT(0) | BIT(4) | BIT(8) | BIT(12))
73−#define TIM_BDTR_BKE BIT(12) /* Break input enable */
74−#define TIM_BDTR_BKP BIT(13) /* Break input polarity */
73+#define TIM_BDTR_BKE(x) BIT(12 + (x) * 12) /* Break input enable */
74+#define TIM_BDTR_BKP(x) BIT(13 + (x) * 12) /* Break input polarity */
7575 #define TIM_BDTR_AOE BIT(14) /* Automatic Output Enable */
7676 #define TIM_BDTR_MOE BIT(15) /* Main Output Enable */
77−#define TIM_BDTR_BKF (BIT(16) | BIT(17) | BIT(18) | BIT(19))
78−#define TIM_BDTR_BK2F (BIT(20) | BIT(21) | BIT(22) | BIT(23))
79−#define TIM_BDTR_BK2E BIT(24) /* Break 2 input enable */
80−#define TIM_BDTR_BK2P BIT(25) /* Break 2 input polarity */
77+#define TIM_BDTR_BKF(x) (0xf << (16 + (x) * 4))
8178 #define TIM_DCR_DBA GENMASK(4, 0) /* DMA base addr */
8279 #define TIM_DCR_DBL GENMASK(12, 8) /* DMA burst len */
8380
@@ -87,8 +84,7 @@ · 3 unmodified lines
8784 #define TIM_CR2_MMS2_SHIFT 20
8885 #define TIM_SMCR_TS_SHIFT 4
8986 #define TIM_BDTR_BKF_MASK 0xF
90−#define TIM_BDTR_BKF_SHIFT 16
91−#define TIM_BDTR_BK2F_SHIFT 20
87+#define TIM_BDTR_BKF_SHIFT(x) (16 + (x) * 4)
9288
9389 enum stm32_timers_dmas {
9490 STM32_TIMERS_DMA_CH1,
include/linux/mfd/syscon/atmel-matrix.h+0−1
@@ -106,7 +106,6 @@ · 105 unmodified lines
106106 #define AT91_MATRIX_DDR_IOSR BIT(18)
107107 #define AT91_MATRIX_NFD0_SELECT BIT(24)
108108 #define AT91_MATRIX_DDR_MP_EN BIT(25)
109−#define AT91_MATRIX_EBI_NUM_CS 8
110109
111110 #define AT91_MATRIX_USBPUCR_PUON BIT(30)
112111
include/linux/miscdevice.h+1−0
@@ -33,6 +33,7 @@ · 32 unmodified lines
3333 #define SGI_MMTIMER 153
3434 #define STORE_QUEUE_MINOR 155 /* unused */
3535 #define I2O_MINOR 166
36+#define AGPGART_MINOR 175
3637 #define HWRNG_MINOR 183
3738 #define MICROCODE_MINOR 184
3839 #define IRNET_MINOR 187
include/linux/mm.h+8−5
@@ -1838,12 +1838,12 @@ static inline void mm_dec_nr_ptes(struct mm_struct *mm) {} · 1837 unmodified lines
18381838 int __pte_alloc(struct mm_struct *mm, pmd_t *pmd);
18391839 int __pte_alloc_kernel(pmd_t *pmd);
18401840
1841+#if defined(CONFIG_MMU)
1842+
18411843 /*
1842− * The following ifdef needed to get the 4level-fixup.h header to work.
1843− * Remove it when 4level-fixup.h has been removed.
1844+ * The following ifdef needed to get the 5level-fixup.h header to work.
1845+ * Remove it when 5level-fixup.h has been removed.
18441846 */
1845−#if defined(CONFIG_MMU) && !defined(__ARCH_HAS_4LEVEL_HACK)
1846−
18471847 #ifndef __ARCH_HAS_5LEVEL_HACK
18481848 static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd,
18491849 unsigned long address)
@@ -1865,7 +1865,7 @@ static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long a · 15 unmodified lines
18651865 return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))?
18661866 NULL: pmd_offset(pud, address);
18671867 }
1868−#endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
1868+#endif /* CONFIG_MMU */
18691869
18701870 #if USE_SPLIT_PTE_PTLOCKS
18711871 #if ALLOC_SPLIT_PTLOCKS
@@ -2621,6 +2621,9 @@ static inline int vm_fault_to_errno(vm_fault_t vm_fault, int foll_flags) · 749 unmodified lines
26212621 typedef int (*pte_fn_t)(pte_t *pte, unsigned long addr, void *data);
26222622 extern int apply_to_page_range(struct mm_struct *mm, unsigned long address,
26232623 unsigned long size, pte_fn_t fn, void *data);
2624+extern int apply_to_existing_page_range(struct mm_struct *mm,
2625+ unsigned long address, unsigned long size,
2626+ pte_fn_t fn, void *data);
26242627
26252628 #ifdef CONFIG_PAGE_POISONING
26262629 extern bool page_poisoning_enabled(void);
include/linux/mod_devicetable.h+2−2
@@ -587,9 +587,9 @@ struct platform_device_id { · 586 unmodified lines
587587 #define MDIO_NAME_SIZE 32
588588 #define MDIO_MODULE_PREFIX "mdio:"
589589
590−#define MDIO_ID_FMT "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d"
590+#define MDIO_ID_FMT "%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u"
591591 #define MDIO_ID_ARGS(_id) \
592− (_id)>>31, ((_id)>>30) & 1, ((_id)>>29) & 1, ((_id)>>28) & 1, \
592+ ((_id)>>31) & 1, ((_id)>>30) & 1, ((_id)>>29) & 1, ((_id)>>28) & 1, \
593593 ((_id)>>27) & 1, ((_id)>>26) & 1, ((_id)>>25) & 1, ((_id)>>24) & 1, \
594594 ((_id)>>23) & 1, ((_id)>>22) & 1, ((_id)>>21) & 1, ((_id)>>20) & 1, \
595595 ((_id)>>19) & 1, ((_id)>>18) & 1, ((_id)>>17) & 1, ((_id)>>16) & 1, \
include/linux/moduleparam.h+2−2
@@ -100,11 +100,11 @@ struct kparam_array · 99 unmodified lines
100100
101101 /**
102102 * module_param - typesafe helper for a module/cmdline parameter
103− * @value: the variable to alter, and exposed parameter name.
103+ * @name: the variable to alter, and exposed parameter name.
104104 * @type: the type of the parameter
105105 * @perm: visibility in sysfs.
106106 *
107− * @value becomes the module parameter, or (prefixed by KBUILD_MODNAME and a
107+ * @name becomes the module parameter, or (prefixed by KBUILD_MODNAME and a
108108 * ".") the kernel commandline parameter. Note that - is changed to _, so
109109 * the user can use "foo-bar=1" even for variable "foo_bar".
110110 *
include/linux/namei.h+1−0
@@ -60,6 +60,7 @@ extern int kern_path_mountpoint(int, const char *, struct path *, unsigned int); · 59 unmodified lines
6060 extern struct dentry *try_lookup_one_len(const char *, struct dentry *, int);
6161 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
6262 extern struct dentry *lookup_one_len_unlocked(const char *, struct dentry *, int);
63+extern struct dentry *lookup_positive_unlocked(const char *, struct dentry *, int);
6364
6465 extern int follow_down_one(struct path *);
6566 extern int follow_down(struct path *);
include/linux/netdevice.h+6−1
@@ -1775,7 +1775,7 @@ enum netdev_priv_flags { · 1774 unmodified lines
17751775 * for hardware timestamping
17761776 * @sfp_bus: attached &struct sfp_bus structure.
17771777 * @qdisc_tx_busylock_key: lockdep class annotating Qdisc->busylock
1778− spinlock
1778+ * spinlock
17791779 * @qdisc_running_key: lockdep class annotating Qdisc->running seqcount
17801780 * @qdisc_xmit_lock_key: lockdep class annotating
17811781 * netdev_queue->_xmit_lock spinlock
@@ -1881,6 +1881,11 @@ struct net_device { · 99 unmodified lines
18811881 unsigned char if_port;
18821882 unsigned char dma;
18831883
1884+ /* Note : dev->mtu is often read without holding a lock.
1885+ * Writers usually hold RTNL.
1886+ * It is recommended to use READ_ONCE() to annotate the reads,
1887+ * and to use WRITE_ONCE() to annotate the writes.
1888+ */
18841889 unsigned int mtu;
18851890 unsigned int min_mtu;
18861891 unsigned int max_mtu;
include/linux/nfs4.h+26−0
@@ -16,6 +16,7 @@ · 15 unmodified lines
1616 #include <linux/list.h>
1717 #include <linux/uidgid.h>
1818 #include <uapi/linux/nfs4.h>
19+#include <linux/sunrpc/msg_prot.h>
1920
2021 enum nfs4_acl_whotype {
2122 NFS4_ACL_WHO_NAMED = 0,
@@ -539,6 +540,8 @@ enum { · 517 unmodified lines
539540
540541 NFSPROC4_CLNT_LOOKUPP,
541542 NFSPROC4_CLNT_LAYOUTERROR,
543+
544+ NFSPROC4_CLNT_COPY_NOTIFY,
542545 };
543546
544547 /* nfs41 types */
@@ -674,4 +677,27 @@ struct nfs4_op_map { · 129 unmodified lines
674677 } u;
675678 };
676679
680+struct nfs42_netaddr {
681+ char netid[RPCBIND_MAXNETIDLEN];
682+ char addr[RPCBIND_MAXUADDRLEN + 1];
683+ u32 netid_len;
684+ u32 addr_len;
685+};
686+
687+enum netloc_type4 {
688+ NL4_NAME = 1,
689+ NL4_URL = 2,
690+ NL4_NETADDR = 3,
691+};
692+
693+struct nl4_server {
694+ enum netloc_type4 nl4_type;
695+ union {
696+ struct { /* NL4_NAME, NL4_URL */
697+ int nl4_str_sz;
698+ char nl4_str[NFS4_OPAQUE_LIMIT + 1];
699+ };
700+ struct nfs42_netaddr nl4_addr; /* NL4_NETADDR */
701+ } u;
702+};
677703 #endif
include/linux/nfs_fs.h+3−1
@@ -189,13 +189,15 @@ struct nfs_inode { · 188 unmodified lines
189189
190190 struct nfs4_copy_state {
191191 struct list_head copies;
192+ struct list_head src_copies;
192193 nfs4_stateid stateid;
193194 struct completion completion;
194195 uint64_t count;
195196 struct nfs_writeverf verf;
196197 int error;
197198 int flags;
198− struct nfs4_state *parent_state;
199+ struct nfs4_state *parent_src_state;
200+ struct nfs4_state *parent_dst_state;
199201 };
200202
201203 /*
include/linux/nfs_fs_sb.h+5−1
@@ -45,6 +45,9 @@ struct nfs_client { · 44 unmodified lines
4545 #define NFS_CS_INFINITE_SLOTS 3 /* - don't limit TCP slots */
4646 #define NFS_CS_NO_RETRANS_TIMEOUT 4 /* - Disable retransmit timeouts */
4747 #define NFS_CS_TSM_POSSIBLE 5 /* - Maybe state migration */
48+#define NFS_CS_NOPING 6 /* - don't ping on connect */
49+#define NFS_CS_DS 7 /* - Server is a DS */
50+#define NFS_CS_REUSEPORT 8 /* - reuse src port on reconnect */
4851 struct sockaddr_storage cl_addr; /* server identifier */
4952 size_t cl_addrlen;
5053 char * cl_hostname; /* hostname of server */
@@ -171,7 +174,7 @@ struct nfs_server { · 120 unmodified lines
171174
172175 struct nfs_fsid fsid;
173176 __u64 maxfilesize; /* maximum file size */
174− struct timespec time_delta; /* smallest time granularity */
177+ struct timespec64 time_delta; /* smallest time granularity */
175178 unsigned long mount_time; /* when this fs was mounted */
176179 struct super_block *super; /* VFS super block */
177180 dev_t s_dev; /* superblock dev numbers */
@@ -276,5 +279,6 @@ struct nfs_server { · 98 unmodified lines
276279 #define NFS_CAP_COPY (1U << 24)
277280 #define NFS_CAP_OFFLOAD_CANCEL (1U << 25)
278281 #define NFS_CAP_LAYOUTERROR (1U << 26)
282+#define NFS_CAP_COPY_NOTIFY (1U << 27)
279283
280284 #endif
include/linux/nfs_xdr.h+24−7
@@ -62,14 +62,14 @@ struct nfs_fattr { · 61 unmodified lines
6262 struct nfs_fsid fsid;
6363 __u64 fileid;
6464 __u64 mounted_on_fileid;
65− struct timespec atime;
66− struct timespec mtime;
67− struct timespec ctime;
65+ struct timespec64 atime;
66+ struct timespec64 mtime;
67+ struct timespec64 ctime;
6868 __u64 change_attr; /* NFSv4 change attribute */
6969 __u64 pre_change_attr;/* pre-op NFSv4 change attribute */
7070 __u64 pre_size; /* pre_op_attr.size */
71− struct timespec pre_mtime; /* pre_op_attr.mtime */
72− struct timespec pre_ctime; /* pre_op_attr.ctime */
71+ struct timespec64 pre_mtime; /* pre_op_attr.mtime */
72+ struct timespec64 pre_ctime; /* pre_op_attr.ctime */
7373 unsigned long time_start;
7474 unsigned long gencount;
7575 struct nfs4_string *owner_name;
@@ -143,7 +143,7 @@ struct nfs_fsinfo { · 67 unmodified lines
143143 __u32 wtmult; /* writes should be multiple of this */
144144 __u32 dtpref; /* pref. readdir transfer size */
145145 __u64 maxfilesize;
146− struct timespec time_delta; /* server time granularity */
146+ struct timespec64 time_delta; /* server time granularity */
147147 __u32 lease_time; /* in seconds */
148148 __u32 nlayouttypes; /* number of layouttypes */
149149 __u32 layouttype[NFS_MAX_LAYOUT_TYPES]; /* supported pnfs layout driver */
@@ -869,7 +869,7 @@ struct nfs3_sattrargs { · 719 unmodified lines
869869 struct nfs_fh * fh;
870870 struct iattr * sattr;
871871 unsigned int guard;
872− struct timespec guardtime;
872+ struct timespec64 guardtime;
873873 };
874874
875875 struct nfs3_diropargs {
@@ -1435,6 +1435,7 @@ struct nfs42_copy_args { · 559 unmodified lines
14351435
14361436 u64 count;
14371437 bool sync;
1438+ struct nl4_server *cp_src;
14381439 };
14391440
14401441 struct nfs42_write_res {
@@ -1463,6 +1464,22 @@ struct nfs42_offload_status_res { · 22 unmodified lines
14631464 int osr_status;
14641465 };
14651466
1467+struct nfs42_copy_notify_args {
1468+ struct nfs4_sequence_args cna_seq_args;
1469+
1470+ struct nfs_fh *cna_src_fh;
1471+ nfs4_stateid cna_src_stateid;
1472+ struct nl4_server cna_dst;
1473+};
1474+
1475+struct nfs42_copy_notify_res {
1476+ struct nfs4_sequence_res cnr_seq_res;
1477+
1478+ struct nfstime4 cnr_lease_time;
1479+ nfs4_stateid cnr_stateid;
1480+ struct nl4_server cnr_src;
1481+};
1482+
14661483 struct nfs42_seek_args {
14671484 struct nfs4_sequence_args seq_args;
14681485
include/linux/notifier.h+0−4
@@ -150,10 +150,6 @@ extern int raw_notifier_chain_register(struct raw_notifier_head *nh, · 149 unmodified lines
150150 extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
151151 struct notifier_block *nb);
152152
153−extern int blocking_notifier_chain_cond_register(
154− struct blocking_notifier_head *nh,
155− struct notifier_block *nb);
156−
157153 extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
158154 struct notifier_block *nb);
159155 extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh,
include/linux/nvme-fc-driver.h+4−0
@@ -270,6 +270,8 @@ struct nvme_fc_remote_port { · 269 unmodified lines
270270 *
271271 * Host/Initiator Transport Entrypoints/Parameters:
272272 *
273+ * @module: The LLDD module using the interface
274+ *
273275 * @localport_delete: The LLDD initiates deletion of a localport via
274276 * nvme_fc_deregister_localport(). However, the teardown is
275277 * asynchronous. This routine is called upon the completion of the
@@ -383,6 +385,8 @@ struct nvme_fc_remote_port { · 107 unmodified lines
383385 * Value is Mandatory. Allowed to be zero.
384386 */
385387 struct nvme_fc_port_template {
388+ struct module *module;
389+
386390 /* initiator-based functions */
387391 void (*localport_delete)(struct nvme_fc_local_port *);
388392 void (*remoteport_delete)(struct nvme_fc_remote_port *);
include/linux/of_mdio.h+6−0
@@ -12,6 +12,7 @@ · 11 unmodified lines
1212 #include <linux/of.h>
1313
1414 #if IS_ENABLED(CONFIG_OF_MDIO)
15+extern bool of_mdiobus_child_is_phy(struct device_node *child);
1516 extern int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np);
1617 extern struct phy_device *of_phy_find_device(struct device_node *phy_np);
1718 extern struct phy_device *of_phy_connect(struct net_device *dev,
@@ -54,6 +55,11 @@ static inline int of_mdio_parse_addr(struct device *dev, · 36 unmodified lines
5455 }
5556
5657 #else /* CONFIG_OF_MDIO */
58+static bool of_mdiobus_child_is_phy(struct device_node *child)
59+{
60+ return false;
61+}
62+
5763 static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
5864 {
5965 /*
include/linux/phy.h+1−1
@@ -1000,7 +1000,7 @@ int phy_modify_paged_changed(struct phy_device *phydev, int page, u32 regnum, · 999 unmodified lines
10001000 int phy_modify_paged(struct phy_device *phydev, int page, u32 regnum,
10011001 u16 mask, u16 set);
10021002
1003−struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,
1003+struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
10041004 bool is_c45,
10051005 struct phy_c45_device_ids *c45_ids);
10061006 #if IS_ENABLED(CONFIG_PHYLIB)
include/linux/phy_led_triggers.h+1−1
@@ -14,7 +14,7 @@ struct phy_device; · 13 unmodified lines
1414 #define PHY_LED_TRIGGER_SPEED_SUFFIX_SIZE 11
1515
1616 #define PHY_LINK_LED_TRIGGER_NAME_SIZE (MII_BUS_ID_SIZE + \
17− FIELD_SIZEOF(struct mdio_device, addr)+\
17+ sizeof_field(struct mdio_device, addr)+\
1818 PHY_LED_TRIGGER_SPEED_SUFFIX_SIZE)
1919
2020 struct phy_led_trigger {
include/linux/pipe_fs_i.h+0−2
@@ -38,7 +38,6 @@ struct pipe_buffer { · 37 unmodified lines
3838 * @readers: number of current readers of this pipe
3939 * @writers: number of current writers of this pipe
4040 * @files: number of struct file referring this pipe (protected by ->i_lock)
41− * @waiting_writers: number of writers blocked waiting for room
4241 * @r_counter: reader counter
4342 * @w_counter: writer counter
4443 * @fasync_readers: reader side fasync
@@ -56,7 +55,6 @@ struct pipe_inode_info { · 11 unmodified lines
5655 unsigned int readers;
5756 unsigned int writers;
5857 unsigned int files;
59− unsigned int waiting_writers;
6058 unsigned int r_counter;
6159 unsigned int w_counter;
6260 struct page *tmp_page;
include/linux/platform_data/ti-prm.h+21−0
@@ -0,0 +1,21 @@
1+/* SPDX-License-Identifier: GPL-2.0-only */
2+/*
3+ * TI PRM (Power & Reset Manager) platform data
4+ *
5+ * Copyright (C) 2019 Texas Instruments, Inc.
6+ *
7+ * Tero Kristo <t-kristo@ti.com>
8+ */
9+
10+#ifndef _LINUX_PLATFORM_DATA_TI_PRM_H
11+#define _LINUX_PLATFORM_DATA_TI_PRM_H
12+
13+struct clockdomain;
14+
15+struct ti_prm_platform_data {
16+ void (*clkdm_deny_idle)(struct clockdomain *clkdm);
17+ void (*clkdm_allow_idle)(struct clockdomain *clkdm);
18+ struct clockdomain * (*clkdm_lookup)(const char *name);
19+};
20+
21+#endif /* _LINUX_PLATFORM_DATA_TI_PRM_H */
include/linux/platform_data/ti-sysc.h+2−0
@@ -49,6 +49,8 @@ struct sysc_regbits { · 48 unmodified lines
4949 s8 emufree_shift;
5050 };
5151
52+#define SYSC_QUIRK_FORCE_MSTANDBY BIT(20)
53+#define SYSC_MODULE_QUIRK_AESS BIT(19)
5254 #define SYSC_MODULE_QUIRK_SGX BIT(18)
5355 #define SYSC_MODULE_QUIRK_HDQ1W BIT(17)
5456 #define SYSC_MODULE_QUIRK_I2C BIT(16)
include/linux/pm_qos.h+50−36
@@ -34,6 +34,8 @@ enum pm_qos_flags_status { · 33 unmodified lines
3434 #define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT PM_QOS_LATENCY_ANY
3535 #define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT_NS PM_QOS_LATENCY_ANY_NS
3636 #define PM_QOS_LATENCY_TOLERANCE_DEFAULT_VALUE 0
37+#define PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE 0
38+#define PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE FREQ_QOS_MAX_DEFAULT_VALUE
3739 #define PM_QOS_LATENCY_TOLERANCE_NO_CONSTRAINT (-1)
3840
3941 #define PM_QOS_FLAG_NO_POWER_OFF (1 << 0)
@@ -49,21 +51,6 @@ struct pm_qos_flags_request { · 9 unmodified lines
4951 s32 flags; /* Do not change to 64 bit */
5052 };
5153
52−enum dev_pm_qos_req_type {
53− DEV_PM_QOS_RESUME_LATENCY = 1,
54− DEV_PM_QOS_LATENCY_TOLERANCE,
55− DEV_PM_QOS_FLAGS,
56−};
57−
58−struct dev_pm_qos_request {
59− enum dev_pm_qos_req_type type;
60− union {
61− struct plist_node pnode;
62− struct pm_qos_flags_request flr;
63− } data;
64− struct device *dev;
65−};
66−
6754 enum pm_qos_type {
6855 PM_QOS_UNITIALIZED,
6956 PM_QOS_MAX, /* return the largest value */
@@ -90,9 +77,51 @@ struct pm_qos_flags { · 20 unmodified lines
9077 s32 effective_flags; /* Do not change to 64 bit */
9178 };
9279
80+
81+#define FREQ_QOS_MIN_DEFAULT_VALUE 0
82+#define FREQ_QOS_MAX_DEFAULT_VALUE S32_MAX
83+
84+enum freq_qos_req_type {
85+ FREQ_QOS_MIN = 1,
86+ FREQ_QOS_MAX,
87+};
88+
89+struct freq_constraints {
90+ struct pm_qos_constraints min_freq;
91+ struct blocking_notifier_head min_freq_notifiers;
92+ struct pm_qos_constraints max_freq;
93+ struct blocking_notifier_head max_freq_notifiers;
94+};
95+
96+struct freq_qos_request {
97+ enum freq_qos_req_type type;
98+ struct plist_node pnode;
99+ struct freq_constraints *qos;
100+};
101+
102+
103+enum dev_pm_qos_req_type {
104+ DEV_PM_QOS_RESUME_LATENCY = 1,
105+ DEV_PM_QOS_LATENCY_TOLERANCE,
106+ DEV_PM_QOS_MIN_FREQUENCY,
107+ DEV_PM_QOS_MAX_FREQUENCY,
108+ DEV_PM_QOS_FLAGS,
109+};
110+
111+struct dev_pm_qos_request {
112+ enum dev_pm_qos_req_type type;
113+ union {
114+ struct plist_node pnode;
115+ struct pm_qos_flags_request flr;
116+ struct freq_qos_request freq;
117+ } data;
118+ struct device *dev;
119+};
120+
93121 struct dev_pm_qos {
94122 struct pm_qos_constraints resume_latency;
95123 struct pm_qos_constraints latency_tolerance;
124+ struct freq_constraints freq;
96125 struct pm_qos_flags flags;
97126 struct dev_pm_qos_request *resume_latency_req;
98127 struct dev_pm_qos_request *latency_tolerance_req;
@@ -191,6 +220,10 @@ static inline s32 dev_pm_qos_read_value(struct device *dev, · 92 unmodified lines
191220 switch (type) {
192221 case DEV_PM_QOS_RESUME_LATENCY:
193222 return PM_QOS_RESUME_LATENCY_NO_CONSTRAINT;
223+ case DEV_PM_QOS_MIN_FREQUENCY:
224+ return PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE;
225+ case DEV_PM_QOS_MAX_FREQUENCY:
226+ return PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE;
194227 default:
195228 WARN_ON(1);
196229 return 0;
@@ -255,27 +288,6 @@ static inline s32 dev_pm_qos_raw_resume_latency(struct device *dev) · 58 unmodified lines
255288 }
256289 #endif
257290
258−#define FREQ_QOS_MIN_DEFAULT_VALUE 0
259−#define FREQ_QOS_MAX_DEFAULT_VALUE (-1)
260−
261−enum freq_qos_req_type {
262− FREQ_QOS_MIN = 1,
263− FREQ_QOS_MAX,
264−};
265−
266−struct freq_constraints {
267− struct pm_qos_constraints min_freq;
268− struct blocking_notifier_head min_freq_notifiers;
269− struct pm_qos_constraints max_freq;
270− struct blocking_notifier_head max_freq_notifiers;
271−};
272−
273−struct freq_qos_request {
274− enum freq_qos_req_type type;
275− struct plist_node pnode;
276− struct freq_constraints *qos;
277−};
278−
279291 static inline int freq_qos_request_active(struct freq_qos_request *req)
280292 {
281293 return !IS_ERR_OR_NULL(req->qos);
@@ -291,6 +303,8 @@ int freq_qos_add_request(struct freq_constraints *qos, · 9 unmodified lines
291303 enum freq_qos_req_type type, s32 value);
292304 int freq_qos_update_request(struct freq_qos_request *req, s32 new_value);
293305 int freq_qos_remove_request(struct freq_qos_request *req);
306+int freq_qos_apply(struct freq_qos_request *req,
307+ enum pm_qos_req_action action, s32 value);
294308
295309 int freq_qos_add_notifier(struct freq_constraints *qos,
296310 enum freq_qos_req_type type,
include/linux/pm_wakeup.h+9−0
@@ -63,6 +63,11 @@ struct wakeup_source { · 62 unmodified lines
6363 bool autosleep_enabled:1;
6464 };
6565
66+#define for_each_wakeup_source(ws) \
67+ for ((ws) = wakeup_sources_walk_start(); \
68+ (ws); \
69+ (ws) = wakeup_sources_walk_next((ws)))
70+
6671 #ifdef CONFIG_PM_SLEEP
6772
6873 /*
@@ -92,6 +97,10 @@ extern void wakeup_source_remove(struct wakeup_source *ws); · 23 unmodified lines
9297 extern struct wakeup_source *wakeup_source_register(struct device *dev,
9398 const char *name);
9499 extern void wakeup_source_unregister(struct wakeup_source *ws);
100+extern int wakeup_sources_read_lock(void);
101+extern void wakeup_sources_read_unlock(int idx);
102+extern struct wakeup_source *wakeup_sources_walk_start(void);
103+extern struct wakeup_source *wakeup_sources_walk_next(struct wakeup_source *ws);
95104 extern int device_wakeup_enable(struct device *dev);
96105 extern int device_wakeup_disable(struct device *dev);
97106 extern void device_set_wakeup_capable(struct device *dev, bool capable);
include/linux/printk.h+1−2
@@ -302,9 +302,8 @@ extern int kptr_restrict; · 301 unmodified lines
302302 printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
303303 #define pr_err(fmt, ...) \
304304 printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
305−#define pr_warning(fmt, ...) \
305+#define pr_warn(fmt, ...) \
306306 printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
307−#define pr_warn pr_warning
308307 #define pr_notice(fmt, ...) \
309308 printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
310309 #define pr_info(fmt, ...) \
include/linux/proc_fs.h+2−2
@@ -58,8 +58,8 @@ extern int remove_proc_subtree(const char *, struct proc_dir_entry *); · 57 unmodified lines
5858 struct proc_dir_entry *proc_create_net_data(const char *name, umode_t mode,
5959 struct proc_dir_entry *parent, const struct seq_operations *ops,
6060 unsigned int state_size, void *data);
61−#define proc_create_net(name, mode, parent, state_size, ops) \
62− proc_create_net_data(name, mode, parent, state_size, ops, NULL)
61+#define proc_create_net(name, mode, parent, ops, state_size) \
62+ proc_create_net_data(name, mode, parent, ops, state_size, NULL)
6363 struct proc_dir_entry *proc_create_net_single(const char *name, umode_t mode,
6464 struct proc_dir_entry *parent,
6565 int (*show)(struct seq_file *, void *), void *data);
include/linux/pwm.h+1−4
@@ -243,10 +243,7 @@ pwm_set_relative_duty_cycle(struct pwm_state *state, unsigned int duty_cycle, · 242 unmodified lines
243243 * @request: optional hook for requesting a PWM
244244 * @free: optional hook for freeing a PWM
245245 * @capture: capture and report PWM signal
246− * @apply: atomically apply a new PWM config. The state argument
247− * should be adjusted with the real hardware config (if the
248− * approximate the period or duty_cycle value, state should
249− * reflect it)
246+ * @apply: atomically apply a new PWM config
250247 * @get_state: get the current PWM state. This function is only
251248 * called once per PWM device when the PWM chip is
252249 * registered.
include/linux/qcom_scm.h+26−0
@@ -24,6 +24,26 @@ struct qcom_scm_vmperm { · 23 unmodified lines
2424 int perm;
2525 };
2626
27+enum qcom_scm_ocmem_client {
28+ QCOM_SCM_OCMEM_UNUSED_ID = 0x0,
29+ QCOM_SCM_OCMEM_GRAPHICS_ID,
30+ QCOM_SCM_OCMEM_VIDEO_ID,
31+ QCOM_SCM_OCMEM_LP_AUDIO_ID,
32+ QCOM_SCM_OCMEM_SENSORS_ID,
33+ QCOM_SCM_OCMEM_OTHER_OS_ID,
34+ QCOM_SCM_OCMEM_DEBUG_ID,
35+};
36+
37+enum qcom_scm_sec_dev_id {
38+ QCOM_SCM_MDSS_DEV_ID = 1,
39+ QCOM_SCM_OCMEM_DEV_ID = 5,
40+ QCOM_SCM_PCIE0_DEV_ID = 11,
41+ QCOM_SCM_PCIE1_DEV_ID = 12,
42+ QCOM_SCM_GFX_DEV_ID = 18,
43+ QCOM_SCM_UFS_DEV_ID = 19,
44+ QCOM_SCM_ICE_DEV_ID = 20,
45+};
46+
2747 #define QCOM_SCM_VMID_HLOS 0x3
2848 #define QCOM_SCM_VMID_MSS_MSA 0xF
2949 #define QCOM_SCM_VMID_WLAN 0x18
@@ -41,6 +61,11 @@ extern bool qcom_scm_is_available(void); · 11 unmodified lines
4161 extern bool qcom_scm_hdcp_available(void);
4262 extern int qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt,
4363 u32 *resp);
64+extern bool qcom_scm_ocmem_lock_available(void);
65+extern int qcom_scm_ocmem_lock(enum qcom_scm_ocmem_client id, u32 offset,
66+ u32 size, u32 mode);
67+extern int qcom_scm_ocmem_unlock(enum qcom_scm_ocmem_client id, u32 offset,
68+ u32 size);
4469 extern bool qcom_scm_pas_supported(u32 peripheral);
4570 extern int qcom_scm_pas_init_image(u32 peripheral, const void *metadata,
4671 size_t size);
@@ -55,6 +80,7 @@ extern int qcom_scm_assign_mem(phys_addr_t mem_addr, size_t mem_sz, · 8 unmodified lines
5580 extern void qcom_scm_cpu_power_down(u32 flags);
5681 extern u32 qcom_scm_get_version(void);
5782 extern int qcom_scm_set_remote_state(u32 state, u32 id);
83+extern bool qcom_scm_restore_sec_cfg_available(void);
5884 extern int qcom_scm_restore_sec_cfg(u32 device_id, u32 spare);
5985 extern int qcom_scm_iommu_secure_ptbl_size(u32 spare, size_t *size);
6086 extern int qcom_scm_iommu_secure_ptbl_init(u64 addr, u32 size, u32 spare);
include/linux/rbtree_augmented.h+2−4
@@ -283,14 +283,12 @@ __rb_erase_augmented(struct rb_node *node, struct rb_root *root, · 282 unmodified lines
283283 __rb_change_child(node, successor, tmp, root);
284284
285285 if (child2) {
286− successor->__rb_parent_color = pc;
287286 rb_set_parent_color(child2, parent, RB_BLACK);
288287 rebalance = NULL;
289288 } else {
290− unsigned long pc2 = successor->__rb_parent_color;
291− successor->__rb_parent_color = pc;
292− rebalance = __rb_is_black(pc2) ? parent : NULL;
289+ rebalance = rb_is_black(successor) ? parent : NULL;
293290 }
291+ successor->__rb_parent_color = pc;
294292 tmp = successor;
295293 }
296294
include/linux/rculist_nulls.h+37−0
@@ -100,6 +100,43 @@ static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n, · 99 unmodified lines
100100 first->pprev = &n->next;
101101 }
102102
103+/**
104+ * hlist_nulls_add_tail_rcu
105+ * @n: the element to add to the hash list.
106+ * @h: the list to add to.
107+ *
108+ * Description:
109+ * Adds the specified element to the specified hlist_nulls,
110+ * while permitting racing traversals.
111+ *
112+ * The caller must take whatever precautions are necessary
113+ * (such as holding appropriate locks) to avoid racing
114+ * with another list-mutation primitive, such as hlist_nulls_add_head_rcu()
115+ * or hlist_nulls_del_rcu(), running on this same list.
116+ * However, it is perfectly legal to run concurrently with
117+ * the _rcu list-traversal primitives, such as
118+ * hlist_nulls_for_each_entry_rcu(), used to prevent memory-consistency
119+ * problems on Alpha CPUs. Regardless of the type of CPU, the
120+ * list-traversal primitive must be guarded by rcu_read_lock().
121+ */
122+static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n,
123+ struct hlist_nulls_head *h)
124+{
125+ struct hlist_nulls_node *i, *last = NULL;
126+
127+ /* Note: write side code, so rcu accessors are not needed. */
128+ for (i = h->first; !is_a_nulls(i); i = i->next)
129+ last = i;
130+
131+ if (last) {
132+ n->next = last->next;
133+ n->pprev = &last->next;
134+ rcu_assign_pointer(hlist_next_rcu(last), n);
135+ } else {
136+ hlist_nulls_add_head_rcu(n, h);
137+ }
138+}
139+
103140 /**
104141 * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type
105142 * @tpos: the type * to use as a loop cursor.
include/linux/reset-controller.h+2−1
@@ -62,7 +62,8 @@ struct reset_control_lookup { · 61 unmodified lines
6262 * @of_node: corresponding device tree node as phandle target
6363 * @of_reset_n_cells: number of cells in reset line specifiers
6464 * @of_xlate: translation function to translate from specifier as found in the
65− * device tree to id as given to the reset control ops
65+ * device tree to id as given to the reset control ops, defaults
66+ * to :c:func:`of_reset_simple_xlate`.
6667 * @nr_resets: number of reset controls in this reset controller device
6768 */
6869 struct reset_controller_dev {
include/linux/reset.h+46−0
@@ -203,12 +203,34 @@ static inline struct reset_control *reset_control_get_shared( · 202 unmodified lines
203203 return __reset_control_get(dev, id, 0, true, false, false);
204204 }
205205
206+/**
207+ * reset_control_get_optional_exclusive - optional reset_control_get_exclusive()
208+ * @dev: device to be reset by the controller
209+ * @id: reset line name
210+ *
211+ * Optional variant of reset_control_get_exclusive(). If the requested reset
212+ * is not specified in the device tree, this function returns NULL instead of
213+ * an error.
214+ *
215+ * See reset_control_get_exclusive() for more information.
216+ */
206217 static inline struct reset_control *reset_control_get_optional_exclusive(
207218 struct device *dev, const char *id)
208219 {
209220 return __reset_control_get(dev, id, 0, false, true, true);
210221 }
211222
223+/**
224+ * reset_control_get_optional_shared - optional reset_control_get_shared()
225+ * @dev: device to be reset by the controller
226+ * @id: reset line name
227+ *
228+ * Optional variant of reset_control_get_shared(). If the requested reset
229+ * is not specified in the device tree, this function returns NULL instead of
230+ * an error.
231+ *
232+ * See reset_control_get_shared() for more information.
233+ */
212234 static inline struct reset_control *reset_control_get_optional_shared(
213235 struct device *dev, const char *id)
214236 {
@@ -354,12 +376,36 @@ static inline struct reset_control *devm_reset_control_get_shared( · 139 unmodified lines
354376 return __devm_reset_control_get(dev, id, 0, true, false, false);
355377 }
356378
379+/**
380+ * devm_reset_control_get_optional_exclusive - resource managed
381+ * reset_control_get_optional_exclusive()
382+ * @dev: device to be reset by the controller
383+ * @id: reset line name
384+ *
385+ * Managed reset_control_get_optional_exclusive(). For reset controllers
386+ * returned from this function, reset_control_put() is called automatically on
387+ * driver detach.
388+ *
389+ * See reset_control_get_optional_exclusive() for more information.
390+ */
357391 static inline struct reset_control *devm_reset_control_get_optional_exclusive(
358392 struct device *dev, const char *id)
359393 {
360394 return __devm_reset_control_get(dev, id, 0, false, true, true);
361395 }
362396
397+/**
398+ * devm_reset_control_get_optional_shared - resource managed
399+ * reset_control_get_optional_shared()
400+ * @dev: device to be reset by the controller
401+ * @id: reset line name
402+ *
403+ * Managed reset_control_get_optional_shared(). For reset controllers returned
404+ * from this function, reset_control_put() is called automatically on driver
405+ * detach.
406+ *
407+ * See reset_control_get_optional_shared() for more information.
408+ */
363409 static inline struct reset_control *devm_reset_control_get_optional_shared(
364410 struct device *dev, const char *id)
365411 {
include/linux/sched.h+8−0
@@ -1210,6 +1210,8 @@ struct task_struct { · 1209 unmodified lines
12101210 #endif /* CONFIG_TRACING */
12111211
12121212 #ifdef CONFIG_KCOV
1213+ /* See kernel/kcov.c for more details. */
1214+
12131215 /* Coverage collection mode enabled for this task (0 if disabled): */
12141216 unsigned int kcov_mode;
12151217
@@ -1221,6 +1223,12 @@ struct task_struct { · 5 unmodified lines
12211223
12221224 /* KCOV descriptor wired with this task or NULL: */
12231225 struct kcov *kcov;
1226+
1227+ /* KCOV common handle for remote coverage collection: */
1228+ u64 kcov_handle;
1229+
1230+ /* KCOV sequence number: */
1231+ int kcov_sequence;
12241232 #endif
12251233
12261234 #ifdef CONFIG_MEMCG
include/linux/sched/cpufreq.h+3−0
@@ -12,6 +12,8 @@ · 11 unmodified lines
1212 #define SCHED_CPUFREQ_MIGRATION (1U << 1)
1313
1414 #ifdef CONFIG_CPU_FREQ
15+struct cpufreq_policy;
16+
1517 struct update_util_data {
1618 void (*func)(struct update_util_data *data, u64 time, unsigned int flags);
1719 };
@@ -20,6 +22,7 @@ void cpufreq_add_update_util_hook(int cpu, struct update_util_data *data, · 2 unmodified lines
2022 void (*func)(struct update_util_data *data, u64 time,
2123 unsigned int flags));
2224 void cpufreq_remove_update_util_hook(int cpu);
25+bool cpufreq_this_cpu_can_update(struct cpufreq_policy *policy);
2326
2427 static inline unsigned long map_util_freq(unsigned long util,
2528 unsigned long freq, unsigned long cap)
include/linux/skbuff.h+3−2
@@ -3529,8 +3529,9 @@ int __skb_vlan_pop(struct sk_buff *skb, u16 *vlan_tci); · 3528 unmodified lines
35293529 int skb_vlan_pop(struct sk_buff *skb);
35303530 int skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci);
35313531 int skb_mpls_push(struct sk_buff *skb, __be32 mpls_lse, __be16 mpls_proto,
3532− int mac_len);
3533−int skb_mpls_pop(struct sk_buff *skb, __be16 next_proto, int mac_len);
3532+ int mac_len, bool ethernet);
3533+int skb_mpls_pop(struct sk_buff *skb, __be16 next_proto, int mac_len,
3534+ bool ethernet);
35343535 int skb_mpls_update_lse(struct sk_buff *skb, __be32 mpls_lse);
35353536 int skb_mpls_dec_ttl(struct sk_buff *skb);
35363537 struct sk_buff *pskb_extract(struct sk_buff *skb, int off, int to_copy,
include/linux/soc/mmp/cputype.h+87−0
@@ -0,0 +1,87 @@
1+/* SPDX-License-Identifier: GPL-2.0 */
2+#ifndef __ASM_MACH_CPUTYPE_H
3+#define __ASM_MACH_CPUTYPE_H
4+
5+#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
6+#include <asm/cputype.h>
7+#endif
8+
9+/*
10+ * CPU Stepping CPU_ID CHIP_ID
11+ *
12+ * PXA168 S0 0x56158400 0x0000C910
13+ * PXA168 A0 0x56158400 0x00A0A168
14+ * PXA910 Y1 0x56158400 0x00F2C920
15+ * PXA910 A0 0x56158400 0x00F2C910
16+ * PXA910 A1 0x56158400 0x00A0C910
17+ * PXA920 Y0 0x56158400 0x00F2C920
18+ * PXA920 A0 0x56158400 0x00A0C920
19+ * PXA920 A1 0x56158400 0x00A1C920
20+ * MMP2 Z0 0x560f5811 0x00F00410
21+ * MMP2 Z1 0x560f5811 0x00E00410
22+ * MMP2 A0 0x560f5811 0x00A0A610
23+ * MMP3 A0 0x562f5842 0x00A02128
24+ * MMP3 B0 0x562f5842 0x00B02128
25+ */
26+
27+extern unsigned int mmp_chip_id;
28+
29+#ifdef CONFIG_CPU_PXA168
30+static inline int cpu_is_pxa168(void)
31+{
32+ return (((read_cpuid_id() >> 8) & 0xff) == 0x84) &&
33+ ((mmp_chip_id & 0xfff) == 0x168);
34+}
35+#else
36+#define cpu_is_pxa168() (0)
37+#endif
38+
39+/* cpu_is_pxa910() is shared on both pxa910 and pxa920 */
40+#ifdef CONFIG_CPU_PXA910
41+static inline int cpu_is_pxa910(void)
42+{
43+ return (((read_cpuid_id() >> 8) & 0xff) == 0x84) &&
44+ (((mmp_chip_id & 0xfff) == 0x910) ||
45+ ((mmp_chip_id & 0xfff) == 0x920));
46+}
47+#else
48+#define cpu_is_pxa910() (0)
49+#endif
50+
51+#if defined(CONFIG_CPU_MMP2) || defined(CONFIG_MACH_MMP2_DT)
52+static inline int cpu_is_mmp2(void)
53+{
54+ return (((read_cpuid_id() >> 8) & 0xff) == 0x58) &&
55+ (((mmp_chip_id & 0xfff) == 0x410) ||
56+ ((mmp_chip_id & 0xfff) == 0x610));
57+}
58+#else
59+#define cpu_is_mmp2() (0)
60+#endif
61+
62+#ifdef CONFIG_MACH_MMP3_DT
63+static inline int cpu_is_mmp3(void)
64+{
65+ return (((read_cpuid_id() >> 8) & 0xff) == 0x58) &&
66+ ((mmp_chip_id & 0xffff) == 0x2128);
67+}
68+
69+static inline int cpu_is_mmp3_a0(void)
70+{
71+ return (cpu_is_mmp3() &&
72+ ((mmp_chip_id & 0x00ff0000) == 0x00a00000));
73+}
74+
75+static inline int cpu_is_mmp3_b0(void)
76+{
77+ return (cpu_is_mmp3() &&
78+ ((mmp_chip_id & 0x00ff0000) == 0x00b00000));
79+}
80+
81+#else
82+#define cpu_is_mmp3() (0)
83+#define cpu_is_mmp3_a0() (0)
84+#define cpu_is_mmp3_b0() (0)
85+#endif
86+
87+#endif /* __ASM_MACH_CPUTYPE_H */
include/linux/soc/qcom/llcc-qcom.h+20−74
@@ -38,33 +38,27 @@ struct llcc_slice_desc { · 37 unmodified lines
3838 };
3939
4040 /**
41− * llcc_slice_config - Data associated with the llcc slice
42− * @usecase_id: usecase id for which the llcc slice is used
43− * @slice_id: llcc slice id assigned to each slice
44− * @max_cap: maximum capacity of the llcc slice
45− * @priority: priority of the llcc slice
46− * @fixed_size: whether the llcc slice can grow beyond its size
47− * @bonus_ways: bonus ways associated with llcc slice
48− * @res_ways: reserved ways associated with llcc slice
49− * @cache_mode: mode of the llcc slice
50− * @probe_target_ways: Probe only reserved and bonus ways on a cache miss
51− * @dis_cap_alloc: Disable capacity based allocation
52− * @retain_on_pc: Retain through power collapse
53− * @activate_on_init: activate the slice on init
41+ * llcc_edac_reg_data - llcc edac registers data for each error type
42+ * @name: Name of the error
43+ * @synd_reg: Syndrome register address
44+ * @count_status_reg: Status register address to read the error count
45+ * @ways_status_reg: Status register address to read the error ways
46+ * @reg_cnt: Number of registers
47+ * @count_mask: Mask value to get the error count
48+ * @ways_mask: Mask value to get the error ways
49+ * @count_shift: Shift value to get the error count
50+ * @ways_shift: Shift value to get the error ways
5451 */
55−struct llcc_slice_config {
56− u32 usecase_id;
57− u32 slice_id;
58− u32 max_cap;
59− u32 priority;
60− bool fixed_size;
61− u32 bonus_ways;
62− u32 res_ways;
63− u32 cache_mode;
64− u32 probe_target_ways;
65− bool dis_cap_alloc;
66− bool retain_on_pc;
67− bool activate_on_init;
52+struct llcc_edac_reg_data {
53+ char *name;
54+ u64 synd_reg;
55+ u64 count_status_reg;
56+ u64 ways_status_reg;
57+ u32 reg_cnt;
58+ u32 count_mask;
59+ u32 ways_mask;
60+ u8 count_shift;
61+ u8 ways_shift;
6862 };
6963
7064 /**
@@ -93,30 +87,6 @@ struct llcc_drv_data { · 22 unmodified lines
9387 int ecc_irq;
9488 };
9589
96−/**
97− * llcc_edac_reg_data - llcc edac registers data for each error type
98− * @name: Name of the error
99− * @synd_reg: Syndrome register address
100− * @count_status_reg: Status register address to read the error count
101− * @ways_status_reg: Status register address to read the error ways
102− * @reg_cnt: Number of registers
103− * @count_mask: Mask value to get the error count
104− * @ways_mask: Mask value to get the error ways
105− * @count_shift: Shift value to get the error count
106− * @ways_shift: Shift value to get the error ways
107− */
108−struct llcc_edac_reg_data {
109− char *name;
110− u64 synd_reg;
111− u64 count_status_reg;
112− u64 ways_status_reg;
113− u32 reg_cnt;
114− u32 count_mask;
115− u32 ways_mask;
116− u8 count_shift;
117− u8 ways_shift;
118−};
119−
12090 #if IS_ENABLED(CONFIG_QCOM_LLCC)
12191 /**
12292 * llcc_slice_getd - get llcc slice descriptor
@@ -154,20 +124,6 @@ int llcc_slice_activate(struct llcc_slice_desc *desc); · 31 unmodified lines
154124 */
155125 int llcc_slice_deactivate(struct llcc_slice_desc *desc);
156126
157−/**
158− * qcom_llcc_probe - program the sct table
159− * @pdev: platform device pointer
160− * @table: soc sct table
161− * @sz: Size of the config table
162− */
163−int qcom_llcc_probe(struct platform_device *pdev,
164− const struct llcc_slice_config *table, u32 sz);
165−
166−/**
167− * qcom_llcc_remove - remove the sct table
168− * @pdev: Platform device pointer
169− */
170−int qcom_llcc_remove(struct platform_device *pdev);
171127 #else
172128 static inline struct llcc_slice_desc *llcc_slice_getd(u32 uid)
173129 {
@@ -197,16 +153,6 @@ static inline int llcc_slice_deactivate(struct llcc_slice_desc *desc) · 23 unmodified lines
197153 {
198154 return -EINVAL;
199155 }
200−static inline int qcom_llcc_probe(struct platform_device *pdev,
201− const struct llcc_slice_config *table, u32 sz)
202−{
203− return -ENODEV;
204−}
205−
206−static inline int qcom_llcc_remove(struct platform_device *pdev)
207−{
208− return -ENODEV;
209−}
210156 #endif
211157
212158 #endif
include/linux/socket.h+13−7
@@ -378,12 +378,19 @@ extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, · 377 unmodified lines
378378 extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg,
379379 unsigned int vlen, unsigned int flags,
380380 bool forbid_cmsg_compat);
381−extern long __sys_sendmsg_sock(struct socket *sock,
382− struct user_msghdr __user *msg,
381+extern long __sys_sendmsg_sock(struct socket *sock, struct msghdr *msg,
383382 unsigned int flags);
384−extern long __sys_recvmsg_sock(struct socket *sock,
385− struct user_msghdr __user *msg,
383+extern long __sys_recvmsg_sock(struct socket *sock, struct msghdr *msg,
384+ struct user_msghdr __user *umsg,
385+ struct sockaddr __user *uaddr,
386386 unsigned int flags);
387+extern int sendmsg_copy_msghdr(struct msghdr *msg,
388+ struct user_msghdr __user *umsg, unsigned flags,
389+ struct iovec **iov);
390+extern int recvmsg_copy_msghdr(struct msghdr *msg,
391+ struct user_msghdr __user *umsg, unsigned flags,
392+ struct sockaddr __user **uaddr,
393+ struct iovec **iov);
387394
388395 /* helpers which do the actual work for syscalls */
389396 extern int __sys_recvfrom(int fd, void __user *ubuf, size_t size,
@@ -399,9 +406,8 @@ extern int __sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr, · 9 unmodified lines
399406 int __user *upeer_addrlen, int flags);
400407 extern int __sys_socket(int family, int type, int protocol);
401408 extern int __sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen);
402−extern int __sys_connect_file(struct file *file,
403− struct sockaddr __user *uservaddr, int addrlen,
404− int file_flags);
409+extern int __sys_connect_file(struct file *file, struct sockaddr_storage *addr,
410+ int addrlen, int file_flags);
405411 extern int __sys_connect(int fd, struct sockaddr __user *uservaddr,
406412 int addrlen);
407413 extern int __sys_listen(int fd, int backlog);
include/linux/sunrpc/auth.h+0−3
@@ -10,8 +10,6 @@ · 9 unmodified lines
1010 #ifndef _LINUX_SUNRPC_AUTH_H
1111 #define _LINUX_SUNRPC_AUTH_H
1212
13−#ifdef __KERNEL__
14−
1513 #include <linux/sunrpc/sched.h>
1614 #include <linux/sunrpc/msg_prot.h>
1715 #include <linux/sunrpc/xdr.h>
@@ -194,5 +192,4 @@ struct rpc_cred *get_rpccred(struct rpc_cred *cred) · 176 unmodified lines
194192 return NULL;
195193 }
196194
197−#endif /* __KERNEL__ */
198195 #endif /* _LINUX_SUNRPC_AUTH_H */
include/linux/sunrpc/auth_gss.h+0−2
@@ -13,7 +13,6 @@ · 12 unmodified lines
1313 #ifndef _LINUX_SUNRPC_AUTH_GSS_H
1414 #define _LINUX_SUNRPC_AUTH_GSS_H
1515
16−#ifdef __KERNEL__
1716 #include <linux/refcount.h>
1817 #include <linux/sunrpc/auth.h>
1918 #include <linux/sunrpc/svc.h>
@@ -90,6 +89,5 @@ struct gss_cred { · 70 unmodified lines
9089 unsigned long gc_upcall_timestamp;
9190 };
9291
93−#endif /* __KERNEL__ */
9492 #endif /* _LINUX_SUNRPC_AUTH_GSS_H */
9593
include/linux/sunrpc/clnt.h+1−3
@@ -109,8 +109,6 @@ struct rpc_procinfo { · 108 unmodified lines
109109 const char * p_name; /* name of procedure */
110110 };
111111
112−#ifdef __KERNEL__
113−
114112 struct rpc_create_args {
115113 struct net *net;
116114 int protocol;
@@ -149,6 +147,7 @@ struct rpc_add_xprt_test { · 32 unmodified lines
149147 #define RPC_CLNT_CREATE_NO_IDLE_TIMEOUT (1UL << 8)
150148 #define RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT (1UL << 9)
151149 #define RPC_CLNT_CREATE_SOFTERR (1UL << 10)
150+#define RPC_CLNT_CREATE_REUSEPORT (1UL << 11)
152151
153152 struct rpc_clnt *rpc_create(struct rpc_create_args *args);
154153 struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *,
@@ -237,5 +236,4 @@ static inline int rpc_reply_expected(struct rpc_task *task) · 82 unmodified lines
237236 (task->tk_msg.rpc_proc->p_decode != NULL);
238237 }
239238
240−#endif /* __KERNEL__ */
241239 #endif /* _LINUX_SUNRPC_CLNT_H */
include/linux/sunrpc/gss_api.h+0−2
@@ -13,7 +13,6 @@ · 12 unmodified lines
1313 #ifndef _LINUX_SUNRPC_GSS_API_H
1414 #define _LINUX_SUNRPC_GSS_API_H
1515
16−#ifdef __KERNEL__
1716 #include <linux/sunrpc/xdr.h>
1817 #include <linux/sunrpc/msg_prot.h>
1918 #include <linux/uio.h>
@@ -160,6 +159,5 @@ struct gss_api_mech * gss_mech_get(struct gss_api_mech *); · 140 unmodified lines
160159 * corresponding call to gss_mech_put. */
161160 void gss_mech_put(struct gss_api_mech *);
162161
163−#endif /* __KERNEL__ */
164162 #endif /* _LINUX_SUNRPC_GSS_API_H */
165163
include/linux/sunrpc/gss_err.h+0−3
@@ -34,8 +34,6 @@ · 33 unmodified lines
3434 #ifndef _LINUX_SUNRPC_GSS_ERR_H
3535 #define _LINUX_SUNRPC_GSS_ERR_H
3636
37−#ifdef __KERNEL__
38−
3937 typedef unsigned int OM_uint32;
4038
4139 /*
@@ -163,5 +161,4 @@ typedef unsigned int OM_uint32; · 121 unmodified lines
163161 /* XXXX This is a necessary evil until the spec is fixed */
164162 #define GSS_S_CRED_UNAVAIL GSS_S_FAILURE
165163
166−#endif /* __KERNEL__ */
167164 #endif /* __LINUX_SUNRPC_GSS_ERR_H */
include/linux/sunrpc/msg_prot.h+0−3
@@ -8,8 +8,6 @@ · 7 unmodified lines
88 #ifndef _LINUX_SUNRPC_MSGPROT_H_
99 #define _LINUX_SUNRPC_MSGPROT_H_
1010
11−#ifdef __KERNEL__ /* user programs should get these from the rpc header files */
12−
1311 #define RPC_VERSION 2
1412
1513 /* size of an XDR encoding unit in bytes, i.e. 32bit */
@@ -217,5 +215,4 @@ typedef __be32 rpc_fraghdr; · 201 unmodified lines
217215 /* Assume INET6_ADDRSTRLEN will always be larger than INET_ADDRSTRLEN... */
218216 #define RPCBIND_MAXUADDRLEN RPCBIND_MAXUADDR6LEN
219217
220−#endif /* __KERNEL__ */
221218 #endif /* _LINUX_SUNRPC_MSGPROT_H_ */
include/linux/sunrpc/rpc_pipe_fs.h+0−3
@@ -2,8 +2,6 @@ · 1 unmodified line
22 #ifndef _LINUX_SUNRPC_RPC_PIPE_FS_H
33 #define _LINUX_SUNRPC_RPC_PIPE_FS_H
44
5−#ifdef __KERNEL__
6−
75 #include <linux/workqueue.h>
86
97 struct rpc_pipe_dir_head {
@@ -133,4 +131,3 @@ extern void unregister_rpc_pipefs(void); · 123 unmodified lines
133131 extern bool gssd_running(struct net *net);
134132
135133 #endif
136−#endif
include/linux/sunrpc/svcauth.h+0−4
@@ -10,8 +10,6 @@ · 9 unmodified lines
1010 #ifndef _LINUX_SUNRPC_SVCAUTH_H_
1111 #define _LINUX_SUNRPC_SVCAUTH_H_
1212
13−#ifdef __KERNEL__
14−
1513 #include <linux/string.h>
1614 #include <linux/sunrpc/msg_prot.h>
1715 #include <linux/sunrpc/cache.h>
@@ -185,6 +183,4 @@ static inline unsigned long hash_mem(char const *buf, int length, int bits) · 167 unmodified lines
185183 return full_name_hash(NULL, buf, length) >> (32 - bits);
186184 }
187185
188−#endif /* __KERNEL__ */
189−
190186 #endif /* _LINUX_SUNRPC_SVCAUTH_H_ */
include/linux/sunrpc/svcauth_gss.h+0−2
@@ -9,7 +9,6 @@ · 8 unmodified lines
99 #ifndef _LINUX_SUNRPC_SVCAUTH_GSS_H
1010 #define _LINUX_SUNRPC_SVCAUTH_GSS_H
1111
12−#ifdef __KERNEL__
1312 #include <linux/sched.h>
1413 #include <linux/sunrpc/types.h>
1514 #include <linux/sunrpc/xdr.h>
@@ -24,5 +23,4 @@ void gss_svc_shutdown_net(struct net *net); · 8 unmodified lines
2423 int svcauth_gss_register_pseudoflavor(u32 pseudoflavor, char * name);
2524 u32 svcauth_gss_flavor(struct auth_domain *dom);
2625
27−#endif /* __KERNEL__ */
2826 #endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */
include/linux/sunrpc/xdr.h+0−3
@@ -11,8 +11,6 @@ · 10 unmodified lines
1111 #ifndef _SUNRPC_XDR_H_
1212 #define _SUNRPC_XDR_H_
1313
14−#ifdef __KERNEL__
15−
1614 #include <linux/uio.h>
1715 #include <asm/byteorder.h>
1816 #include <asm/unaligned.h>
@@ -552,6 +550,5 @@ xdr_stream_decode_uint32_array(struct xdr_stream *xdr, · 533 unmodified lines
552550 *array = be32_to_cpup(p);
553551 return retval;
554552 }
555−#endif /* __KERNEL__ */
556553
557554 #endif /* _SUNRPC_XDR_H_ */
include/linux/sunrpc/xprt.h+2−5
@@ -19,8 +19,6 @@ · 18 unmodified lines
1919 #include <linux/sunrpc/xdr.h>
2020 #include <linux/sunrpc/msg_prot.h>
2121
22−#ifdef __KERNEL__
23−
2422 #define RPC_MIN_SLOT_TABLE (2U)
2523 #define RPC_DEF_SLOT_TABLE (16U)
2624 #define RPC_MAX_SLOT_TABLE_LIMIT (65536U)
@@ -207,7 +205,8 @@ struct rpc_xprt { · 180 unmodified lines
207205 unsigned int min_reqs; /* min number of slots */
208206 unsigned int num_reqs; /* total slots */
209207 unsigned long state; /* transport state */
210− unsigned char resvport : 1; /* use a reserved port */
208+ unsigned char resvport : 1, /* use a reserved port */
209+ reuseport : 1; /* reuse port on reconnect */
211210 atomic_t swapper; /* we're swapping over this
212211 transport */
213212 unsigned int bind_index; /* bind function index */
@@ -505,6 +504,4 @@ static inline void xprt_inject_disconnect(struct rpc_xprt *xprt) · 291 unmodified lines
505504 }
506505 #endif
507506
508−#endif /* __KERNEL__*/
509−
510507 #endif /* _LINUX_SUNRPC_XPRT_H */
include/linux/sunrpc/xprtsock.h+0−4
@@ -8,8 +8,6 @@ · 7 unmodified lines
88 #ifndef _LINUX_SUNRPC_XPRTSOCK_H
99 #define _LINUX_SUNRPC_XPRTSOCK_H
1010
11−#ifdef __KERNEL__
12−
1311 int init_socket_xprt(void);
1412 void cleanup_socket_xprt(void);
1513
@@ -91,6 +89,4 @@ struct sock_xprt { · 75 unmodified lines
9189 #define XPRT_SOCK_WAKE_PENDING (6)
9290 #define XPRT_SOCK_WAKE_DISCONNECT (7)
9391
94−#endif /* __KERNEL__ */
95−
9692 #endif /* _LINUX_SUNRPC_XPRTSOCK_H */
include/linux/syscalls.h+0−3
@@ -1231,10 +1231,7 @@ asmlinkage long sys_ni_syscall(void); · 1230 unmodified lines
12311231 * the ksys_xyzyyz() functions prototyped below.
12321232 */
12331233
1234−int ksys_mount(const char __user *dev_name, const char __user *dir_name,
1235− const char __user *type, unsigned long flags, void __user *data);
12361234 int ksys_umount(char __user *name, int flags);
1237−int ksys_dup(unsigned int fildes);
12381235 int ksys_chroot(const char __user *filename);
12391236 ssize_t ksys_write(unsigned int fd, const char __user *buf, size_t count);
12401237 int ksys_chdir(const char __user *filename);
include/linux/sysctl.h+2−4
@@ -120,8 +120,7 @@ static inline void *proc_sys_poll_event(struct ctl_table_poll *poll) · 119 unmodified lines
120120 struct ctl_table_poll name = __CTL_TABLE_POLL_INITIALIZER(name)
121121
122122 /* A sysctl table is an array of struct ctl_table: */
123−struct ctl_table
124−{
123+struct ctl_table {
125124 const char *procname; /* Text ID for /proc/sys, or zero */
126125 void *data;
127126 int maxlen;
@@ -140,8 +139,7 @@ struct ctl_node { · 12 unmodified lines
140139
141140 /* struct ctl_table_header is used to maintain dynamic lists of
142141 struct ctl_table trees. */
143−struct ctl_table_header
144−{
142+struct ctl_table_header {
145143 union {
146144 struct {
147145 struct ctl_table *ctl_table;
include/linux/thermal.h+0−11
@@ -544,15 +544,4 @@ static inline void thermal_notify_framework(struct thermal_zone_device *tz, · 543 unmodified lines
544544 { }
545545 #endif /* CONFIG_THERMAL */
546546
547−#if defined(CONFIG_NET) && IS_ENABLED(CONFIG_THERMAL)
548−extern int thermal_generate_netlink_event(struct thermal_zone_device *tz,
549− enum events event);
550−#else
551−static inline int thermal_generate_netlink_event(struct thermal_zone_device *tz,
552− enum events event)
553−{
554− return 0;
555−}
556−#endif
557−
558547 #endif /* __THERMAL_H__ */
include/linux/thread_info.h+2−0
@@ -147,6 +147,8 @@ check_copy_size(const void *addr, size_t bytes, bool is_source) · 146 unmodified lines
147147 __bad_copy_to();
148148 return false;
149149 }
150+ if (WARN_ON_ONCE(bytes > INT_MAX))
151+ return false;
150152 check_object_size(addr, bytes, is_source);
151153 return true;
152154 }
include/linux/time.h+13−0
@@ -97,4 +97,17 @@ static inline bool itimerspec64_valid(const struct itimerspec64 *its) · 96 unmodified lines
9797 */
9898 #define time_after32(a, b) ((s32)((u32)(b) - (u32)(a)) < 0)
9999 #define time_before32(b, a) time_after32(a, b)
100+
101+/**
102+ * time_between32 - check if a 32-bit timestamp is within a given time range
103+ * @t: the time which may be within [l,h]
104+ * @l: the lower bound of the range
105+ * @h: the higher bound of the range
106+ *
107+ * time_before32(t, l, h) returns true if @l <= @t <= @h. All operands are
108+ * treated as 32-bit integers.
109+ *
110+ * Equivalent to !(time_before32(@t, @l) || time_after32(@t, @h)).
111+ */
112+#define time_between32(t, l, h) ((u32)(h) - (u32)(l) >= (u32)(t) - (u32)(l))
100113 #endif
include/linux/tpm.h+1−0
@@ -403,6 +403,7 @@ extern int tpm_pcr_extend(struct tpm_chip *chip, u32 pcr_idx, · 402 unmodified lines
403403 extern int tpm_send(struct tpm_chip *chip, void *cmd, size_t buflen);
404404 extern int tpm_get_random(struct tpm_chip *chip, u8 *data, size_t max);
405405 extern struct tpm_chip *tpm_default_chip(void);
406+void tpm2_flush_context(struct tpm_chip *chip, u32 handle);
406407 #else
407408 static inline int tpm_is_tpm2(struct tpm_chip *chip)
408409 {
include/linux/vmstat.h+50−0
@@ -31,6 +31,12 @@ struct reclaim_stat { · 30 unmodified lines
3131 unsigned nr_unmap_fail;
3232 };
3333
34+enum writeback_stat_item {
35+ NR_DIRTY_THRESHOLD,
36+ NR_DIRTY_BG_THRESHOLD,
37+ NR_VM_WRITEBACK_STAT_ITEMS,
38+};
39+
3440 #ifdef CONFIG_VM_EVENT_COUNTERS
3541 /*
3642 * Light weight per cpu counter implementation.
@@ -381,4 +387,48 @@ static inline void __mod_zone_freepage_state(struct zone *zone, int nr_pages, · 344 unmodified lines
381387
382388 extern const char * const vmstat_text[];
383389
390+static inline const char *zone_stat_name(enum zone_stat_item item)
391+{
392+ return vmstat_text[item];
393+}
394+
395+#ifdef CONFIG_NUMA
396+static inline const char *numa_stat_name(enum numa_stat_item item)
397+{
398+ return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
399+ item];
400+}
401+#endif /* CONFIG_NUMA */
402+
403+static inline const char *node_stat_name(enum node_stat_item item)
404+{
405+ return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
406+ NR_VM_NUMA_STAT_ITEMS +
407+ item];
408+}
409+
410+static inline const char *lru_list_name(enum lru_list lru)
411+{
412+ return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
413+}
414+
415+static inline const char *writeback_stat_name(enum writeback_stat_item item)
416+{
417+ return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
418+ NR_VM_NUMA_STAT_ITEMS +
419+ NR_VM_NODE_STAT_ITEMS +
420+ item];
421+}
422+
423+#if defined(CONFIG_VM_EVENT_COUNTERS) || defined(CONFIG_MEMCG)
424+static inline const char *vm_event_name(enum vm_event_item item)
425+{
426+ return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
427+ NR_VM_NUMA_STAT_ITEMS +
428+ NR_VM_NODE_STAT_ITEMS +
429+ NR_VM_WRITEBACK_STAT_ITEMS +
430+ item];
431+}
432+#endif /* CONFIG_VM_EVENT_COUNTERS || CONFIG_MEMCG */
433+
384434 #endif /* _LINUX_VMSTAT_H */