History

Merge tag 'asoc-v5.7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Updates for v5.7 This is a very big update for the core since Morimoto-san has been rather busy continuing his refactorings to clean up a lot of the cruft that we have accumilated over the years. We've also gained several new drivers, including initial (but still not complete) parts of the Intel SoundWire support. - Lots of refactorings to modernize the code from Morimoto-san. - Conversion of SND_SOC_ALL_CODECS to use imply from Geert Uytterhoeven. - Continued refactoring and fixing of the Intel support. - Soundwire and more advanced clocking support for Realtek RT5682. - Support for amlogic GX, Meson 8, Meson 8B and T9015 DAC, Broadcom DSL/PON, Ingenic JZ4760 and JZ4770, Realtek RL6231, and TI TAS2563 and TLV320ADCX140.

Takashi Iwai committed 6 years ago

Commit 3c22bae2 parents aa21c3d 1c521d71917 files · +39304 −17459Browse files

Showing the changes to include/linux (50 of 1917 files). Show all

Unified · Split

50 files
  1. include/linux/blkdev.h +1 −2
  2. include/linux/blktrace_api.h +13 −5
  3. include/linux/bootconfig.h +3 −0
  4. include/linux/cgroup.h +1 −0
  5. include/linux/compat.h +0 −29
  6. include/linux/cpufreq.h +0 −3
  7. include/linux/dax.h +2 −12
  8. include/linux/debugfs.h +6 −7
  9. include/linux/device.h +11 −0
  10. include/linux/dmar.h +9 −5
  11. include/linux/file.h +1 −0
  12. include/linux/fs.h +1 −0
  13. include/linux/futex.h +10 −7
  14. include/linux/genhd.h +1 −12
  15. include/linux/hid.h +1 −1
  16. include/linux/icmpv6.h +10 −0
  17. include/linux/inet_diag.h +12 −6
  18. include/linux/intel-iommu.h +2 −0
  19. include/linux/intel-svm.h +1 −1
  20. include/linux/irqdomain.h +1 −1
  21. include/linux/ktime.h +0 −37
  22. include/linux/kvm_host.h +3 −1
  23. include/linux/mlx5/mlx5_ifc.h +4 −1
  24. include/linux/mm.h +4 −0
  25. include/linux/mmc/host.h +1 −0
  26. include/linux/netdevice.h +18 −5
  27. include/linux/netfilter/ipset/ip_set.h +10 −1
  28. include/linux/nfs_fs.h +6 −20
  29. include/linux/of_clk.h +4 −4
  30. include/linux/page-flags.h +1 −1
  31. include/linux/phy.h +3 −0
  32. include/linux/pipe_fs_i.h +2 −1
  33. include/linux/platform_data/spi-omap2-mcspi.h +1 −0
  34. include/linux/platform_device.h +1 −1
  35. include/linux/rculist_nulls.h +7 −0
  36. include/linux/rhashtable.h +1 −1
  37. include/linux/sched/nohz.h +2 −0
  38. include/linux/skbuff.h +30 −0
  39. include/linux/socket.h +2 −1
  40. include/linux/soundwire/sdw.h +2 −0
  41. include/linux/suspend.h +1 −1
  42. include/linux/swiotlb.h +3 −8
  43. include/linux/time32.h +1 −153
  44. include/linux/timekeeping32.h +0 −32
  45. include/linux/trace_events.h +1 −1
  46. include/linux/tty.h +2 −0
  47. include/linux/types.h +0 −5
  48. include/linux/usb/quirks.h +3 −0
  49. include/linux/vmalloc.h +3 −2
  50. include/linux/workqueue.h +16 −0
include/linux/blkdev.h+1−2
@@ -524,7 +524,7 @@ struct request_queue { · 523 unmodified lines
524524 unsigned int sg_reserved_size;
525525 int node;
526526 #ifdef CONFIG_BLK_DEV_IO_TRACE
527− struct blk_trace *blk_trace;
527+ struct blk_trace __rcu *blk_trace;
528528 struct mutex blk_trace_mutex;
529529 #endif
530530 /*
@@ -1494,7 +1494,6 @@ static inline void put_dev_sector(Sector p) · 963 unmodified lines
14941494 }
14951495
14961496 int kblockd_schedule_work(struct work_struct *work);
1497−int kblockd_schedule_work_on(int cpu, struct work_struct *work);
14981497 int kblockd_mod_delayed_work_on(int cpu, struct delayed_work *dwork, unsigned long delay);
14991498
15001499 #define MODULE_ALIAS_BLOCKDEV(major,minor) \
include/linux/blktrace_api.h+13−5
@@ -51,9 +51,13 @@ void __trace_note_message(struct blk_trace *, struct blkcg *blkcg, const char *f · 50 unmodified lines
5151 **/
5252 #define blk_add_cgroup_trace_msg(q, cg, fmt, ...) \
5353 do { \
54− struct blk_trace *bt = (q)->blk_trace; \
54+ struct blk_trace *bt; \
55+ \
56+ rcu_read_lock(); \
57+ bt = rcu_dereference((q)->blk_trace); \
5558 if (unlikely(bt)) \
5659 __trace_note_message(bt, cg, fmt, ##__VA_ARGS__);\
60+ rcu_read_unlock(); \
5761 } while (0)
5862 #define blk_add_trace_msg(q, fmt, ...) \
5963 blk_add_cgroup_trace_msg(q, NULL, fmt, ##__VA_ARGS__)
@@ -61,10 +65,14 @@ void __trace_note_message(struct blk_trace *, struct blkcg *blkcg, const char *f · 1 unmodified line
6165
6266 static inline bool blk_trace_note_message_enabled(struct request_queue *q)
6367 {
64− struct blk_trace *bt = q->blk_trace;
65− if (likely(!bt))
66− return false;
67− return bt->act_mask & BLK_TC_NOTIFY;
68+ struct blk_trace *bt;
69+ bool ret;
70+
71+ rcu_read_lock();
72+ bt = rcu_dereference(q->blk_trace);
73+ ret = bt && (bt->act_mask & BLK_TC_NOTIFY);
74+ rcu_read_unlock();
75+ return ret;
6876 }
6977
7078 extern void blk_add_driver_data(struct request_queue *q, struct request *rq,
include/linux/bootconfig.h+3−0
@@ -10,6 +10,9 @@ · 9 unmodified lines
1010 #include <linux/kernel.h>
1111 #include <linux/types.h>
1212
13+#define BOOTCONFIG_MAGIC "#BOOTCONFIG\n"
14+#define BOOTCONFIG_MAGIC_LEN 12
15+
1316 /* XBC tree node */
1417 struct xbc_node {
1518 u16 next;
include/linux/cgroup.h+1−0
@@ -62,6 +62,7 @@ struct css_task_iter { · 61 unmodified lines
6262 struct list_head *mg_tasks_head;
6363 struct list_head *dying_tasks_head;
6464
65+ struct list_head *cur_tasks_head;
6566 struct css_set *cur_cset;
6667 struct css_set *cur_dcset;
6768 struct task_struct *cur_task;
include/linux/compat.h+0−29
@@ -248,15 +248,6 @@ typedef struct compat_siginfo { · 247 unmodified lines
248248 } _sifields;
249249 } compat_siginfo_t;
250250
251−/*
252− * These functions operate on 32- or 64-bit specs depending on
253− * COMPAT_USE_64BIT_TIME, hence the void user pointer arguments.
254− */
255−extern int compat_get_timespec(struct timespec *, const void __user *);
256−extern int compat_put_timespec(const struct timespec *, void __user *);
257−extern int compat_get_timeval(struct timeval *, const void __user *);
258−extern int compat_put_timeval(const struct timeval *, void __user *);
259−
260251 struct compat_iovec {
261252 compat_uptr_t iov_base;
262253 compat_size_t iov_len;
@@ -416,26 +407,6 @@ int copy_siginfo_to_user32(struct compat_siginfo __user *to, const kernel_siginf · 153 unmodified lines
416407 int get_compat_sigevent(struct sigevent *event,
417408 const struct compat_sigevent __user *u_event);
418409
419−static inline int old_timeval32_compare(struct old_timeval32 *lhs,
420− struct old_timeval32 *rhs)
421−{
422− if (lhs->tv_sec < rhs->tv_sec)
423− return -1;
424− if (lhs->tv_sec > rhs->tv_sec)
425− return 1;
426− return lhs->tv_usec - rhs->tv_usec;
427−}
428−
429−static inline int old_timespec32_compare(struct old_timespec32 *lhs,
430− struct old_timespec32 *rhs)
431−{
432− if (lhs->tv_sec < rhs->tv_sec)
433− return -1;
434− if (lhs->tv_sec > rhs->tv_sec)
435− return 1;
436− return lhs->tv_nsec - rhs->tv_nsec;
437−}
438−
439410 extern int get_compat_sigset(sigset_t *set, const compat_sigset_t __user *compat);
440411
441412 /*
include/linux/cpufreq.h+0−3
@@ -201,9 +201,6 @@ static inline bool policy_is_shared(struct cpufreq_policy *policy) · 200 unmodified lines
201201 return cpumask_weight(policy->cpus) > 1;
202202 }
203203
204−/* /sys/devices/system/cpu/cpufreq: entry point for global variables */
205−extern struct kobject *cpufreq_global_kobject;
206−
207204 #ifdef CONFIG_CPU_FREQ
208205 unsigned int cpufreq_get(unsigned int cpu);
209206 unsigned int cpufreq_quick_get(unsigned int cpu);
include/linux/dax.h+2−12
@@ -129,11 +129,6 @@ static inline bool generic_fsdax_supported(struct dax_device *dax_dev, · 128 unmodified lines
129129 sectors);
130130 }
131131
132−static inline struct dax_device *fs_dax_get_by_host(const char *host)
133−{
134− return dax_get_by_host(host);
135−}
136−
137132 static inline void fs_put_dax(struct dax_device *dax_dev)
138133 {
139134 put_dax(dax_dev);
@@ -141,7 +136,7 @@ static inline void fs_put_dax(struct dax_device *dax_dev) · 1 unmodified line
141136
142137 struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev);
143138 int dax_writeback_mapping_range(struct address_space *mapping,
144− struct block_device *bdev, struct writeback_control *wbc);
139+ struct dax_device *dax_dev, struct writeback_control *wbc);
145140
146141 struct page *dax_layout_busy_page(struct address_space *mapping);
147142 dax_entry_t dax_lock_page(struct page *page);
@@ -160,11 +155,6 @@ static inline bool generic_fsdax_supported(struct dax_device *dax_dev, · 12 unmodified lines
160155 return false;
161156 }
162157
163−static inline struct dax_device *fs_dax_get_by_host(const char *host)
164−{
165− return NULL;
166−}
167−
168158 static inline void fs_put_dax(struct dax_device *dax_dev)
169159 {
170160 }
@@ -180,7 +170,7 @@ static inline struct page *dax_layout_busy_page(struct address_space *mapping) · 9 unmodified lines
180170 }
181171
182172 static inline int dax_writeback_mapping_range(struct address_space *mapping,
183− struct block_device *bdev, struct writeback_control *wbc)
173+ struct dax_device *dax_dev, struct writeback_control *wbc)
184174 {
185175 return -EOPNOTSUPP;
186176 }
include/linux/debugfs.h+6−7
@@ -127,9 +127,9 @@ struct dentry *debugfs_create_blob(const char *name, umode_t mode, · 126 unmodified lines
127127 struct dentry *parent,
128128 struct debugfs_blob_wrapper *blob);
129129
130−struct dentry *debugfs_create_regset32(const char *name, umode_t mode,
131− struct dentry *parent,
132− struct debugfs_regset32 *regset);
130+void debugfs_create_regset32(const char *name, umode_t mode,
131+ struct dentry *parent,
132+ struct debugfs_regset32 *regset);
133133
134134 void debugfs_print_regs32(struct seq_file *s, const struct debugfs_reg32 *regs,
135135 int nregs, void __iomem *base, char *prefix);
@@ -304,11 +304,10 @@ static inline struct dentry *debugfs_create_blob(const char *name, umode_t mode, · 168 unmodified lines
304304 return ERR_PTR(-ENODEV);
305305 }
306306
307−static inline struct dentry *debugfs_create_regset32(const char *name,
308− umode_t mode, struct dentry *parent,
309− struct debugfs_regset32 *regset)
307+static inline void debugfs_create_regset32(const char *name, umode_t mode,
308+ struct dentry *parent,
309+ struct debugfs_regset32 *regset)
310310 {
311− return ERR_PTR(-ENODEV);
312311 }
313312
314313 static inline void debugfs_print_regs32(struct seq_file *s, const struct debugfs_reg32 *regs,
include/linux/device.h+11−0
@@ -798,6 +798,17 @@ static inline struct device_node *dev_of_node(struct device *dev) · 797 unmodified lines
798798 return dev->of_node;
799799 }
800800
801+static inline bool dev_has_sync_state(struct device *dev)
802+{
803+ if (!dev)
804+ return false;
805+ if (dev->driver && dev->driver->sync_state)
806+ return true;
807+ if (dev->bus && dev->bus->sync_state)
808+ return true;
809+ return false;
810+}
811+
801812 /*
802813 * High level routines for use by the bus drivers
803814 */
include/linux/dmar.h+9−5
@@ -69,19 +69,23 @@ struct dmar_pci_notify_info { · 68 unmodified lines
6969 extern struct rw_semaphore dmar_global_lock;
7070 extern struct list_head dmar_drhd_units;
7171
72−#define for_each_drhd_unit(drhd) \
73− list_for_each_entry_rcu(drhd, &dmar_drhd_units, list)
72+#define for_each_drhd_unit(drhd) \
73+ list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
74+ dmar_rcu_check())
7475
7576 #define for_each_active_drhd_unit(drhd) \
76− list_for_each_entry_rcu(drhd, &dmar_drhd_units, list) \
77+ list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
78+ dmar_rcu_check()) \
7779 if (drhd->ignored) {} else
7880
7981 #define for_each_active_iommu(i, drhd) \
80− list_for_each_entry_rcu(drhd, &dmar_drhd_units, list) \
82+ list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
83+ dmar_rcu_check()) \
8184 if (i=drhd->iommu, drhd->ignored) {} else
8285
8386 #define for_each_iommu(i, drhd) \
84− list_for_each_entry_rcu(drhd, &dmar_drhd_units, list) \
87+ list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
88+ dmar_rcu_check()) \
8589 if (i=drhd->iommu, 0) {} else
8690
8791 static inline bool dmar_rcu_check(void)
include/linux/file.h+1−0
@@ -85,6 +85,7 @@ extern int f_dupfd(unsigned int from, struct file *file, unsigned flags); · 84 unmodified lines
8585 extern int replace_fd(unsigned fd, struct file *file, unsigned flags);
8686 extern void set_close_on_exec(unsigned int fd, int flag);
8787 extern bool get_close_on_exec(unsigned int fd);
88+extern int __get_unused_fd_flags(unsigned flags, unsigned long nofile);
8889 extern int get_unused_fd_flags(unsigned flags);
8990 extern void put_unused_fd(unsigned int fd);
9091
include/linux/fs.h+1−0
@@ -698,6 +698,7 @@ struct inode { · 697 unmodified lines
698698 struct rcu_head i_rcu;
699699 };
700700 atomic64_t i_version;
701+ atomic64_t i_sequence; /* see futex */
701702 atomic_t i_count;
702703 atomic_t i_dio_count;
703704 atomic_t i_writecount;
include/linux/futex.h+10−7
@@ -31,23 +31,26 @@ struct task_struct; · 30 unmodified lines
3131
3232 union futex_key {
3333 struct {
34+ u64 i_seq;
3435 unsigned long pgoff;
35− struct inode *inode;
36− int offset;
36+ unsigned int offset;
3737 } shared;
3838 struct {
39+ union {
40+ struct mm_struct *mm;
41+ u64 __tmp;
42+ };
3943 unsigned long address;
40− struct mm_struct *mm;
41− int offset;
44+ unsigned int offset;
4245 } private;
4346 struct {
47+ u64 ptr;
4448 unsigned long word;
45− void *ptr;
46− int offset;
49+ unsigned int offset;
4750 } both;
4851 };
4952
50−#define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = NULL } }
53+#define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = 0ULL } }
5154
5255 #ifdef CONFIG_FUTEX
5356 enum {
include/linux/genhd.h+1−12
@@ -245,18 +245,6 @@ static inline bool disk_part_scan_enabled(struct gendisk *disk) · 244 unmodified lines
245245 !(disk->flags & GENHD_FL_NO_PART_SCAN);
246246 }
247247
248−static inline bool disk_has_partitions(struct gendisk *disk)
249−{
250− bool ret = false;
251−
252− rcu_read_lock();
253− if (rcu_dereference(disk->part_tbl)->len > 1)
254− ret = true;
255− rcu_read_unlock();
256−
257− return ret;
258−}
259−
260248 static inline dev_t disk_devt(struct gendisk *disk)
261249 {
262250 return MKDEV(disk->major, disk->first_minor);
@@ -298,6 +286,7 @@ extern void disk_part_iter_exit(struct disk_part_iter *piter); · 35 unmodified lines
298286
299287 extern struct hd_struct *disk_map_sector_rcu(struct gendisk *disk,
300288 sector_t sector);
289+bool disk_has_partitions(struct gendisk *disk);
301290
302291 /*
303292 * Macros to operate on percpu disk statistics:
include/linux/hid.h+1−1
@@ -492,7 +492,7 @@ struct hid_report_enum { · 491 unmodified lines
492492 };
493493
494494 #define HID_MIN_BUFFER_SIZE 64 /* make sure there is at least a packet size of space */
495−#define HID_MAX_BUFFER_SIZE 4096 /* 4kb */
495+#define HID_MAX_BUFFER_SIZE 8192 /* 8kb */
496496 #define HID_CONTROL_FIFO_SIZE 256 /* to init devices with >100 reports */
497497 #define HID_OUTPUT_FIFO_SIZE 64
498498
include/linux/icmpv6.h+10−0
@@ -22,12 +22,22 @@ extern int inet6_unregister_icmp_sender(ip6_icmp_send_t *fn); · 21 unmodified lines
2222 int ip6_err_gen_icmpv6_unreach(struct sk_buff *skb, int nhs, int type,
2323 unsigned int data_len);
2424
25+#if IS_ENABLED(CONFIG_NF_NAT)
26+void icmpv6_ndo_send(struct sk_buff *skb_in, u8 type, u8 code, __u32 info);
27+#else
28+#define icmpv6_ndo_send icmpv6_send
29+#endif
30+
2531 #else
2632
2733 static inline void icmpv6_send(struct sk_buff *skb,
2834 u8 type, u8 code, __u32 info)
2935 {
36+}
3037
38+static inline void icmpv6_ndo_send(struct sk_buff *skb,
39+ u8 type, u8 code, __u32 info)
40+{
3141 }
3242 #endif
3343
include/linux/inet_diag.h+12−6
@@ -2,15 +2,10 @@ · 1 unmodified line
22 #ifndef _INET_DIAG_H_
33 #define _INET_DIAG_H_ 1
44
5+#include <net/netlink.h>
56 #include <uapi/linux/inet_diag.h>
67
7−struct net;
8−struct sock;
98 struct inet_hashinfo;
10−struct nlattr;
11−struct nlmsghdr;
12−struct sk_buff;
13−struct netlink_callback;
149
1510 struct inet_diag_handler {
1611 void (*dump)(struct sk_buff *skb,
@@ -62,6 +57,17 @@ int inet_diag_bc_sk(const struct nlattr *_bc, struct sock *sk); · 45 unmodified lines
6257
6358 void inet_diag_msg_common_fill(struct inet_diag_msg *r, struct sock *sk);
6459
60+static inline size_t inet_diag_msg_attrs_size(void)
61+{
62+ return nla_total_size(1) /* INET_DIAG_SHUTDOWN */
63+ + nla_total_size(1) /* INET_DIAG_TOS */
64+#if IS_ENABLED(CONFIG_IPV6)
65+ + nla_total_size(1) /* INET_DIAG_TCLASS */
66+ + nla_total_size(1) /* INET_DIAG_SKV6ONLY */
67+#endif
68+ + nla_total_size(4) /* INET_DIAG_MARK */
69+ + nla_total_size(4); /* INET_DIAG_CLASS_ID */
70+}
6571 int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
6672 struct inet_diag_msg *r, int ext,
6773 struct user_namespace *user_ns, bool net_admin);
include/linux/intel-iommu.h+2−0
@@ -123,6 +123,8 @@ · 122 unmodified lines
123123
124124 #define dmar_readq(a) readq(a)
125125 #define dmar_writeq(a,v) writeq(v,a)
126+#define dmar_readl(a) readl(a)
127+#define dmar_writel(a, v) writel(v, a)
126128
127129 #define DMAR_VER_MAJOR(v) (((v) & 0xf0) >> 4)
128130 #define DMAR_VER_MINOR(v) ((v) & 0x0f)
include/linux/intel-svm.h+1−1
@@ -122,7 +122,7 @@ static inline int intel_svm_unbind_mm(struct device *dev, int pasid) · 121 unmodified lines
122122 BUG();
123123 }
124124
125−static int intel_svm_is_pasid_valid(struct device *dev, int pasid)
125+static inline int intel_svm_is_pasid_valid(struct device *dev, int pasid)
126126 {
127127 return -EINVAL;
128128 }
include/linux/irqdomain.h+1−1
@@ -192,7 +192,7 @@ enum { · 191 unmodified lines
192192 IRQ_DOMAIN_FLAG_HIERARCHY = (1 << 0),
193193
194194 /* Irq domain name was allocated in __irq_domain_add() */
195− IRQ_DOMAIN_NAME_ALLOCATED = (1 << 6),
195+ IRQ_DOMAIN_NAME_ALLOCATED = (1 << 1),
196196
197197 /* Irq domain is an IPI domain with virq per cpu */
198198 IRQ_DOMAIN_FLAG_IPI_PER_CPU = (1 << 2),
include/linux/ktime.h+0−37
@@ -66,33 +66,15 @@ static inline ktime_t ktime_set(const s64 secs, const unsigned long nsecs) · 65 unmodified lines
6666 */
6767 #define ktime_sub_ns(kt, nsval) ((kt) - (nsval))
6868
69−/* convert a timespec to ktime_t format: */
70−static inline ktime_t timespec_to_ktime(struct timespec ts)
71−{
72− return ktime_set(ts.tv_sec, ts.tv_nsec);
73−}
74−
7569 /* convert a timespec64 to ktime_t format: */
7670 static inline ktime_t timespec64_to_ktime(struct timespec64 ts)
7771 {
7872 return ktime_set(ts.tv_sec, ts.tv_nsec);
7973 }
8074
81−/* convert a timeval to ktime_t format: */
82−static inline ktime_t timeval_to_ktime(struct timeval tv)
83−{
84− return ktime_set(tv.tv_sec, tv.tv_usec * NSEC_PER_USEC);
85−}
86−
87−/* Map the ktime_t to timespec conversion to ns_to_timespec function */
88−#define ktime_to_timespec(kt) ns_to_timespec((kt))
89−
9075 /* Map the ktime_t to timespec conversion to ns_to_timespec function */
9176 #define ktime_to_timespec64(kt) ns_to_timespec64((kt))
9277
93−/* Map the ktime_t to timeval conversion to ns_to_timeval function */
94−#define ktime_to_timeval(kt) ns_to_timeval((kt))
95−
9678 /* Convert ktime_t to nanoseconds */
9779 static inline s64 ktime_to_ns(const ktime_t kt)
9880 {
@@ -215,25 +197,6 @@ static inline ktime_t ktime_sub_ms(const ktime_t kt, const u64 msec) · 116 unmodified lines
215197
216198 extern ktime_t ktime_add_safe(const ktime_t lhs, const ktime_t rhs);
217199
218−/**
219− * ktime_to_timespec_cond - convert a ktime_t variable to timespec
220− * format only if the variable contains data
221− * @kt: the ktime_t variable to convert
222− * @ts: the timespec variable to store the result in
223− *
224− * Return: %true if there was a successful conversion, %false if kt was 0.
225− */
226−static inline __must_check bool ktime_to_timespec_cond(const ktime_t kt,
227− struct timespec *ts)
228−{
229− if (kt) {
230− *ts = ktime_to_timespec(kt);
231− return true;
232− } else {
233− return false;
234− }
235−}
236−
237200 /**
238201 * ktime_to_timespec64_cond - convert a ktime_t variable to timespec64
239202 * format only if the variable contains data
include/linux/kvm_host.h+3−1
@@ -889,6 +889,8 @@ int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu); · 888 unmodified lines
889889 bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu);
890890 int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu);
891891 bool kvm_arch_dy_runnable(struct kvm_vcpu *vcpu);
892+int kvm_arch_post_init_vm(struct kvm *kvm);
893+void kvm_arch_pre_destroy_vm(struct kvm *kvm);
892894
893895 #ifndef __KVM_HAVE_ARCH_VM_ALLOC
894896 /*
@@ -1342,7 +1344,7 @@ static inline void kvm_vcpu_set_dy_eligible(struct kvm_vcpu *vcpu, bool val) · 447 unmodified lines
13421344 #endif /* CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT */
13431345
13441346 struct kvm_vcpu *kvm_get_running_vcpu(void);
1345−struct kvm_vcpu __percpu **kvm_get_running_vcpus(void);
1347+struct kvm_vcpu * __percpu *kvm_get_running_vcpus(void);
13461348
13471349 #ifdef CONFIG_HAVE_KVM_IRQ_BYPASS
13481350 bool kvm_arch_has_irq_bypass(void);
include/linux/mlx5/mlx5_ifc.h+4−1
@@ -688,7 +688,10 @@ struct mlx5_ifc_flow_table_nic_cap_bits { · 687 unmodified lines
688688 u8 nic_rx_multi_path_tirs[0x1];
689689 u8 nic_rx_multi_path_tirs_fts[0x1];
690690 u8 allow_sniffer_and_nic_rx_shared_tir[0x1];
691− u8 reserved_at_3[0x1d];
691+ u8 reserved_at_3[0x4];
692+ u8 sw_owner_reformat_supported[0x1];
693+ u8 reserved_at_8[0x18];
694+
692695 u8 encap_general_header[0x1];
693696 u8 reserved_at_21[0xa];
694697 u8 log_max_packet_reformat_context[0x5];
include/linux/mm.h+4−0
@@ -2715,6 +2715,10 @@ static inline bool debug_pagealloc_enabled_static(void) · 2714 unmodified lines
27152715 #if defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_ARCH_HAS_SET_DIRECT_MAP)
27162716 extern void __kernel_map_pages(struct page *page, int numpages, int enable);
27172717
2718+/*
2719+ * When called in DEBUG_PAGEALLOC context, the call should most likely be
2720+ * guarded by debug_pagealloc_enabled() or debug_pagealloc_enabled_static()
2721+ */
27182722 static inline void
27192723 kernel_map_pages(struct page *page, int numpages, int enable)
27202724 {
include/linux/mmc/host.h+1−0
@@ -333,6 +333,7 @@ struct mmc_host { · 332 unmodified lines
333333 MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 | \
334334 MMC_CAP_UHS_DDR50)
335335 #define MMC_CAP_SYNC_RUNTIME_PM (1 << 21) /* Synced runtime PM suspends. */
336+#define MMC_CAP_NEED_RSP_BUSY (1 << 22) /* Commands with R1B can't use R1. */
336337 #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */
337338 #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */
338339 #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */
include/linux/netdevice.h+18−5
@@ -72,6 +72,8 @@ void netdev_set_default_ethtool_ops(struct net_device *dev, · 71 unmodified lines
7272 #define NET_RX_SUCCESS 0 /* keep 'em coming, baby */
7373 #define NET_RX_DROP 1 /* packet dropped */
7474
75+#define MAX_NEST_DEV 8
76+
7577 /*
7678 * Transmit return codes: transmit return codes originate from three different
7779 * namespaces:
@@ -1616,6 +1618,7 @@ enum netdev_priv_flags { · 1538 unmodified lines
16161618 * and drivers will need to set them appropriately.
16171619 *
16181620 * @mpls_features: Mask of features inheritable by MPLS
1621+ * @gso_partial_features: value(s) from NETIF_F_GSO\*
16191622 *
16201623 * @ifindex: interface index
16211624 * @group: The group the device belongs to
@@ -1640,8 +1643,11 @@ enum netdev_priv_flags { · 18 unmodified lines
16401643 * @netdev_ops: Includes several pointers to callbacks,
16411644 * if one wants to override the ndo_*() functions
16421645 * @ethtool_ops: Management operations
1646+ * @l3mdev_ops: Layer 3 master device operations
16431647 * @ndisc_ops: Includes callbacks for different IPv6 neighbour
16441648 * discovery handling. Necessary for e.g. 6LoWPAN.
1649+ * @xfrmdev_ops: Transformation offload operations
1650+ * @tlsdev_ops: Transport Layer Security offload operations
16451651 * @header_ops: Includes callbacks for creating,parsing,caching,etc
16461652 * of Layer 2 headers.
16471653 *
@@ -1680,6 +1686,7 @@ enum netdev_priv_flags { · 32 unmodified lines
16801686 * @dev_port: Used to differentiate devices that share
16811687 * the same function
16821688 * @addr_list_lock: XXX: need comments on this one
1689+ * @name_assign_type: network interface name assignment type
16831690 * @uc_promisc: Counter that indicates promiscuous mode
16841691 * has been enabled due to the need to listen to
16851692 * additional unicast addresses in a device that
@@ -1702,6 +1709,9 @@ enum netdev_priv_flags { · 16 unmodified lines
17021709 * @ip6_ptr: IPv6 specific data
17031710 * @ax25_ptr: AX.25 specific data
17041711 * @ieee80211_ptr: IEEE 802.11 specific data, assign before registering
1712+ * @ieee802154_ptr: IEEE 802.15.4 low-rate Wireless Personal Area Network
1713+ * device struct
1714+ * @mpls_ptr: mpls_dev struct pointer
17051715 *
17061716 * @dev_addr: Hw address (before bcast,
17071717 * because most packets are unicast)
@@ -1710,6 +1720,8 @@ enum netdev_priv_flags { · 2 unmodified lines
17101720 * @num_rx_queues: Number of RX queues
17111721 * allocated at register_netdev() time
17121722 * @real_num_rx_queues: Number of RX queues currently active in device
1723+ * @xdp_prog: XDP sockets filter program pointer
1724+ * @gro_flush_timeout: timeout for GRO layer in NAPI
17131725 *
17141726 * @rx_handler: handler for received packets
17151727 * @rx_handler_data: XXX: need comments on this one
@@ -1731,10 +1743,14 @@ enum netdev_priv_flags { · 15 unmodified lines
17311743 * @qdisc: Root qdisc from userspace point of view
17321744 * @tx_queue_len: Max frames per queue allowed
17331745 * @tx_global_lock: XXX: need comments on this one
1746+ * @xdp_bulkq: XDP device bulk queue
1747+ * @xps_cpus_map: all CPUs map for XPS device
1748+ * @xps_rxqs_map: all RXQs map for XPS device
17341749 *
17351750 * @xps_maps: XXX: need comments on this one
17361751 * @miniq_egress: clsact qdisc specific data for
17371752 * egress processing
1753+ * @qdisc_hash: qdisc hash table
17381754 * @watchdog_timeo: Represents the timeout that is used by
17391755 * the watchdog (see dev_watchdog())
17401756 * @watchdog_timer: List of timers
@@ -3548,7 +3564,7 @@ static inline unsigned int netif_attrmask_next(int n, const unsigned long *srcp, · 1807 unmodified lines
35483564 }
35493565
35503566 /**
3551− * netif_attrmask_next_and - get the next CPU/Rx queue in *src1p & *src2p
3567+ * netif_attrmask_next_and - get the next CPU/Rx queue in \*src1p & \*src2p
35523568 * @n: CPU/Rx queue index
35533569 * @src1p: the first CPUs/Rx queues mask pointer
35543570 * @src2p: the second CPUs/Rx queues mask pointer
@@ -4375,11 +4391,8 @@ void *netdev_lower_get_next(struct net_device *dev, · 820 unmodified lines
43754391 ldev; \
43764392 ldev = netdev_lower_get_next(dev, &(iter)))
43774393
4378−struct net_device *netdev_all_lower_get_next(struct net_device *dev,
4394+struct net_device *netdev_next_lower_dev_rcu(struct net_device *dev,
43794395 struct list_head **iter);
4380−struct net_device *netdev_all_lower_get_next_rcu(struct net_device *dev,
4381− struct list_head **iter);
4382−
43834396 int netdev_walk_all_lower_dev(struct net_device *dev,
43844397 int (*fn)(struct net_device *lower_dev,
43854398 void *data),
include/linux/netfilter/ipset/ip_set.h+10−1
@@ -121,6 +121,7 @@ struct ip_set_ext { · 120 unmodified lines
121121 u32 timeout;
122122 u8 packets_op;
123123 u8 bytes_op;
124+ bool target;
124125 };
125126
126127 struct ip_set;
@@ -187,6 +188,14 @@ struct ip_set_type_variant { · 60 unmodified lines
187188 /* Return true if "b" set is the same as "a"
188189 * according to the create set parameters */
189190 bool (*same_set)(const struct ip_set *a, const struct ip_set *b);
191+ /* Region-locking is used */
192+ bool region_lock;
193+};
194+
195+struct ip_set_region {
196+ spinlock_t lock; /* Region lock */
197+ size_t ext_size; /* Size of the dynamic extensions */
198+ u32 elements; /* Number of elements vs timeout */
190199 };
191200
192201 /* The core set type structure */
@@ -501,7 +510,7 @@ ip_set_init_skbinfo(struct ip_set_skbinfo *skbinfo, · 308 unmodified lines
501510 }
502511
503512 #define IP_SET_INIT_KEXT(skb, opt, set) \
504− { .bytes = (skb)->len, .packets = 1, \
513+ { .bytes = (skb)->len, .packets = 1, .target = true,\
505514 .timeout = ip_set_adt_opt_timeout(opt, set) }
506515
507516 #define IP_SET_INIT_UEXT(set) \
include/linux/nfs_fs.h+6−20
@@ -337,35 +337,17 @@ static inline int nfs_server_capable(struct inode *inode, int cap) · 336 unmodified lines
337337 return NFS_SERVER(inode)->caps & cap;
338338 }
339339
340−static inline void nfs_set_verifier(struct dentry * dentry, unsigned long verf)
341−{
342− dentry->d_time = verf;
343−}
344−
345340 /**
346341 * nfs_save_change_attribute - Returns the inode attribute change cookie
347342 * @dir - pointer to parent directory inode
348− * The "change attribute" is updated every time we finish an operation
349− * that will result in a metadata change on the server.
343+ * The "cache change attribute" is updated when we need to revalidate
344+ * our dentry cache after a directory was seen to change on the server.
350345 */
351346 static inline unsigned long nfs_save_change_attribute(struct inode *dir)
352347 {
353348 return NFS_I(dir)->cache_change_attribute;
354349 }
355350
356−/**
357− * nfs_verify_change_attribute - Detects NFS remote directory changes
358− * @dir - pointer to parent directory inode
359− * @chattr - previously saved change attribute
360− * Return "false" if the verifiers doesn't match the change attribute.
361− * This would usually indicate that the directory contents have changed on
362− * the server, and that any dentries need revalidating.
363− */
364−static inline int nfs_verify_change_attribute(struct inode *dir, unsigned long chattr)
365−{
366− return chattr == NFS_I(dir)->cache_change_attribute;
367−}
368−
369351 /*
370352 * linux/fs/nfs/inode.c
371353 */
@@ -495,6 +477,10 @@ extern const struct file_operations nfs_dir_operations; · 123 unmodified lines
495477 extern const struct dentry_operations nfs_dentry_operations;
496478
497479 extern void nfs_force_lookup_revalidate(struct inode *dir);
480+extern void nfs_set_verifier(struct dentry * dentry, unsigned long verf);
481+#if IS_ENABLED(CONFIG_NFS_V4)
482+extern void nfs_clear_verifier_delegated(struct inode *inode);
483+#endif /* IS_ENABLED(CONFIG_NFS_V4) */
498484 extern struct dentry *nfs_add_or_obtain(struct dentry *dentry,
499485 struct nfs_fh *fh, struct nfs_fattr *fattr,
500486 struct nfs4_label *label);
include/linux/of_clk.h+4−4
@@ -11,17 +11,17 @@ struct of_device_id; · 10 unmodified lines
1111
1212 #if defined(CONFIG_COMMON_CLK) && defined(CONFIG_OF)
1313
14−unsigned int of_clk_get_parent_count(struct device_node *np);
15−const char *of_clk_get_parent_name(struct device_node *np, int index);
14+unsigned int of_clk_get_parent_count(const struct device_node *np);
15+const char *of_clk_get_parent_name(const struct device_node *np, int index);
1616 void of_clk_init(const struct of_device_id *matches);
1717
1818 #else /* !CONFIG_COMMON_CLK || !CONFIG_OF */
1919
20−static inline unsigned int of_clk_get_parent_count(struct device_node *np)
20+static inline unsigned int of_clk_get_parent_count(const struct device_node *np)
2121 {
2222 return 0;
2323 }
24−static inline const char *of_clk_get_parent_name(struct device_node *np,
24+static inline const char *of_clk_get_parent_name(const struct device_node *np,
2525 int index)
2626 {
2727 return NULL;
include/linux/page-flags.h+1−1
@@ -311,7 +311,7 @@ static inline int TestClearPage##uname(struct page *page) { return 0; } · 310 unmodified lines
311311
312312 __PAGEFLAG(Locked, locked, PF_NO_TAIL)
313313 PAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) __CLEARPAGEFLAG(Waiters, waiters, PF_ONLY_HEAD)
314−PAGEFLAG(Error, error, PF_NO_COMPOUND) TESTCLEARFLAG(Error, error, PF_NO_COMPOUND)
314+PAGEFLAG(Error, error, PF_NO_TAIL) TESTCLEARFLAG(Error, error, PF_NO_TAIL)
315315 PAGEFLAG(Referenced, referenced, PF_HEAD)
316316 TESTCLEARFLAG(Referenced, referenced, PF_HEAD)
317317 __SETPAGEFLAG(Referenced, referenced, PF_HEAD)
include/linux/phy.h+3−0
@@ -357,6 +357,7 @@ struct macsec_ops; · 356 unmodified lines
357357 * is_gigabit_capable: Set to true if PHY supports 1000Mbps
358358 * has_fixups: Set to true if this phy has fixups/quirks.
359359 * suspended: Set to true if this phy has been suspended successfully.
360+ * suspended_by_mdio_bus: Set to true if this phy was suspended by MDIO bus.
360361 * sysfs_links: Internal boolean tracking sysfs symbolic links setup/removal.
361362 * loopback_enabled: Set true if this phy has been loopbacked successfully.
362363 * state: state of the PHY for management purposes
@@ -396,6 +397,7 @@ struct phy_device { · 33 unmodified lines
396397 unsigned is_gigabit_capable:1;
397398 unsigned has_fixups:1;
398399 unsigned suspended:1;
400+ unsigned suspended_by_mdio_bus:1;
399401 unsigned sysfs_links:1;
400402 unsigned loopback_enabled:1;
401403
@@ -557,6 +559,7 @@ struct phy_driver { · 155 unmodified lines
557559 /*
558560 * Checks if the PHY generated an interrupt.
559561 * For multi-PHY devices with shared PHY interrupt pin
562+ * Set interrupt bits have to be cleared.
560563 */
561564 int (*did_interrupt)(struct phy_device *phydev);
562565
include/linux/pipe_fs_i.h+2−1
@@ -29,7 +29,8 @@ struct pipe_buffer { · 28 unmodified lines
2929 /**
3030 * struct pipe_inode_info - a linux kernel pipe
3131 * @mutex: mutex protecting the whole thing
32− * @wait: reader/writer wait point in case of empty/full pipe
32+ * @rd_wait: reader wait point in case of empty pipe
33+ * @wr_wait: writer wait point in case of full pipe
3334 * @head: The point of buffer production
3435 * @tail: The point of buffer consumption
3536 * @max_usage: The maximum number of slots that may be used in the ring
include/linux/platform_data/spi-omap2-mcspi.h+1−0
@@ -11,6 +11,7 @@ struct omap2_mcspi_platform_config { · 10 unmodified lines
1111 unsigned short num_cs;
1212 unsigned int regs_offset;
1313 unsigned int pin_dir:1;
14+ size_t max_xfer_len;
1415 };
1516
1617 struct omap2_mcspi_device_config {
include/linux/platform_device.h+1−1
@@ -24,7 +24,7 @@ struct platform_device { · 23 unmodified lines
2424 int id;
2525 bool id_auto;
2626 struct device dev;
27− u64 dma_mask;
27+ u64 platform_dma_mask;
2828 u32 num_resources;
2929 struct resource *resource;
3030
include/linux/rculist_nulls.h+7−0
@@ -145,6 +145,13 @@ static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n, · 144 unmodified lines
145145 }
146146 }
147147
148+/* after that hlist_nulls_del will work */
149+static inline void hlist_nulls_add_fake(struct hlist_nulls_node *n)
150+{
151+ n->pprev = &n->next;
152+ n->next = (struct hlist_nulls_node *)NULLS_MARKER(NULL);
153+}
154+
148155 /**
149156 * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type
150157 * @tpos: the type * to use as a loop cursor.
include/linux/rhashtable.h+1−1
@@ -972,9 +972,9 @@ static inline int rhashtable_lookup_insert_key( · 971 unmodified lines
972972 /**
973973 * rhashtable_lookup_get_insert_key - lookup and insert object into hash table
974974 * @ht: hash table
975+ * @key: key
975976 * @obj: pointer to hash head inside object
976977 * @params: hash table parameters
977− * @data: pointer to element data already in hashes
978978 *
979979 * Just like rhashtable_lookup_insert_key(), but this function returns the
980980 * object if it exists, NULL if it does not and the insertion was successful,
include/linux/sched/nohz.h+2−0
@@ -15,9 +15,11 @@ static inline void nohz_balance_enter_idle(int cpu) { } · 14 unmodified lines
1515
1616 #ifdef CONFIG_NO_HZ_COMMON
1717 void calc_load_nohz_start(void);
18+void calc_load_nohz_remote(struct rq *rq);
1819 void calc_load_nohz_stop(void);
1920 #else
2021 static inline void calc_load_nohz_start(void) { }
22+static inline void calc_load_nohz_remote(struct rq *rq) { }
2123 static inline void calc_load_nohz_stop(void) { }
2224 #endif /* CONFIG_NO_HZ_COMMON */
2325
include/linux/skbuff.h+30−0
@@ -611,9 +611,15 @@ typedef unsigned char *sk_buff_data_t; · 610 unmodified lines
611611 * @next: Next buffer in list
612612 * @prev: Previous buffer in list
613613 * @tstamp: Time we arrived/left
614+ * @skb_mstamp_ns: (aka @tstamp) earliest departure time; start point
615+ * for retransmit timer
614616 * @rbnode: RB tree node, alternative to next/prev for netem/tcp
617+ * @list: queue head
615618 * @sk: Socket we are owned by
619+ * @ip_defrag_offset: (aka @sk) alternate use of @sk, used in
620+ * fragmentation management
616621 * @dev: Device we arrived on/are leaving by
622+ * @dev_scratch: (aka @dev) alternate use of @dev when @dev would be %NULL
617623 * @cb: Control buffer. Free for use by every layer. Put private vars here
618624 * @_skb_refdst: destination entry (with norefcount bit)
619625 * @sp: the security path, used for xfrm
@@ -632,6 +638,9 @@ typedef unsigned char *sk_buff_data_t; · 12 unmodified lines
632638 * @pkt_type: Packet class
633639 * @fclone: skbuff clone status
634640 * @ipvs_property: skbuff is owned by ipvs
641+ * @inner_protocol_type: whether the inner protocol is
642+ * ENCAP_TYPE_ETHER or ENCAP_TYPE_IPPROTO
643+ * @remcsum_offload: remote checksum offload is enabled
635644 * @offload_fwd_mark: Packet was L2-forwarded in hardware
636645 * @offload_l3_fwd_mark: Packet was L3-forwarded in hardware
637646 * @tc_skip_classify: do not classify packet. set by IFB device
@@ -650,6 +659,8 @@ typedef unsigned char *sk_buff_data_t; · 12 unmodified lines
650659 * @tc_index: Traffic control index
651660 * @hash: the packet hash
652661 * @queue_mapping: Queue mapping for multiqueue devices
662+ * @head_frag: skb was allocated from page fragments,
663+ * not allocated by kmalloc() or vmalloc().
653664 * @pfmemalloc: skbuff was allocated from PFMEMALLOC reserves
654665 * @active_extensions: active extensions (skb_ext_id types)
655666 * @ndisc_nodetype: router type (from link layer)
@@ -660,15 +671,28 @@ typedef unsigned char *sk_buff_data_t; · 4 unmodified lines
660671 * @wifi_acked_valid: wifi_acked was set
661672 * @wifi_acked: whether frame was acked on wifi or not
662673 * @no_fcs: Request NIC to treat last 4 bytes as Ethernet FCS
674+ * @encapsulation: indicates the inner headers in the skbuff are valid
675+ * @encap_hdr_csum: software checksum is needed
676+ * @csum_valid: checksum is already valid
663677 * @csum_not_inet: use CRC32c to resolve CHECKSUM_PARTIAL
678+ * @csum_complete_sw: checksum was completed by software
679+ * @csum_level: indicates the number of consecutive checksums found in
680+ * the packet minus one that have been verified as
681+ * CHECKSUM_UNNECESSARY (max 3)
664682 * @dst_pending_confirm: need to confirm neighbour
665683 * @decrypted: Decrypted SKB
666684 * @napi_id: id of the NAPI struct this skb came from
685+ * @sender_cpu: (aka @napi_id) source CPU in XPS
667686 * @secmark: security marking
668687 * @mark: Generic packet mark
688+ * @reserved_tailroom: (aka @mark) number of bytes of free space available
689+ * at the tail of an sk_buff
690+ * @vlan_present: VLAN tag is present
669691 * @vlan_proto: vlan encapsulation protocol
670692 * @vlan_tci: vlan tag control information
671693 * @inner_protocol: Protocol (encapsulation)
694+ * @inner_ipproto: (aka @inner_protocol) stores ipproto when
695+ * skb->inner_protocol_type == ENCAP_TYPE_IPPROTO;
672696 * @inner_transport_header: Inner transport layer header (encapsulation)
673697 * @inner_network_header: Network layer header (encapsulation)
674698 * @inner_mac_header: Link layer header (encapsulation)
@@ -750,7 +774,9 @@ struct sk_buff { · 75 unmodified lines
750774 #endif
751775 #define CLONED_OFFSET() offsetof(struct sk_buff, __cloned_offset)
752776
777+ /* private: */
753778 __u8 __cloned_offset[0];
779+ /* public: */
754780 __u8 cloned:1,
755781 nohdr:1,
756782 fclone:2,
@@ -775,7 +801,9 @@ struct sk_buff { · 18 unmodified lines
775801 #endif
776802 #define PKT_TYPE_OFFSET() offsetof(struct sk_buff, __pkt_type_offset)
777803
804+ /* private: */
778805 __u8 __pkt_type_offset[0];
806+ /* public: */
779807 __u8 pkt_type:3;
780808 __u8 ignore_df:1;
781809 __u8 nf_trace:1;
@@ -798,7 +826,9 @@ struct sk_buff { · 16 unmodified lines
798826 #define PKT_VLAN_PRESENT_BIT 0
799827 #endif
800828 #define PKT_VLAN_PRESENT_OFFSET() offsetof(struct sk_buff, __pkt_vlan_present_offset)
829+ /* private: */
801830 __u8 __pkt_vlan_present_offset[0];
831+ /* public: */
802832 __u8 vlan_present:1;
803833 __u8 csum_complete_sw:1;
804834 __u8 csum_level:2;
include/linux/socket.h+2−1
@@ -401,7 +401,8 @@ extern int __sys_sendto(int fd, void __user *buff, size_t len, · 400 unmodified lines
401401 int addr_len);
402402 extern int __sys_accept4_file(struct file *file, unsigned file_flags,
403403 struct sockaddr __user *upeer_sockaddr,
404− int __user *upeer_addrlen, int flags);
404+ int __user *upeer_addrlen, int flags,
405+ unsigned long nofile);
405406 extern int __sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr,
406407 int __user *upeer_addrlen, int flags);
407408 extern int __sys_socket(int family, int type, int protocol);
include/linux/soundwire/sdw.h+2−0
@@ -284,6 +284,7 @@ struct sdw_dpn_audio_mode { · 283 unmodified lines
284284 * @max_async_buffer: Number of samples that this port can buffer in
285285 * asynchronous modes
286286 * @block_pack_mode: Type of block port mode supported
287+ * @read_only_wordlength: Read Only wordlength field in DPN_BlockCtrl1 register
287288 * @port_encoding: Payload Channel Sample encoding schemes supported
288289 * @audio_modes: Audio modes supported
289290 */
@@ -307,6 +308,7 @@ struct sdw_dpn_prop { · 17 unmodified lines
307308 u32 modes;
308309 u32 max_async_buffer;
309310 bool block_pack_mode;
311+ bool read_only_wordlength;
310312 u32 port_encoding;
311313 struct sdw_dpn_audio_mode *audio_modes;
312314 };
include/linux/suspend.h+1−1
@@ -191,7 +191,7 @@ struct platform_s2idle_ops { · 190 unmodified lines
191191 int (*begin)(void);
192192 int (*prepare)(void);
193193 int (*prepare_late)(void);
194− void (*wake)(void);
194+ bool (*wake)(void);
195195 void (*restore_early)(void);
196196 void (*restore)(void);
197197 void (*end)(void);
include/linux/swiotlb.h+3−8
@@ -64,6 +64,9 @@ extern void swiotlb_tbl_sync_single(struct device *hwdev, · 63 unmodified lines
6464 size_t size, enum dma_data_direction dir,
6565 enum dma_sync_target target);
6666
67+dma_addr_t swiotlb_map(struct device *dev, phys_addr_t phys,
68+ size_t size, enum dma_data_direction dir, unsigned long attrs);
69+
6770 #ifdef CONFIG_SWIOTLB
6871 extern enum swiotlb_force swiotlb_force;
6972 extern phys_addr_t io_tlb_start, io_tlb_end;
@@ -73,8 +76,6 @@ static inline bool is_swiotlb_buffer(phys_addr_t paddr) · 3 unmodified lines
7376 return paddr >= io_tlb_start && paddr < io_tlb_end;
7477 }
7578
76−bool swiotlb_map(struct device *dev, phys_addr_t *phys, dma_addr_t *dma_addr,
77− size_t size, enum dma_data_direction dir, unsigned long attrs);
7879 void __init swiotlb_exit(void);
7980 unsigned int swiotlb_max_segment(void);
8081 size_t swiotlb_max_mapping_size(struct device *dev);
@@ -85,12 +86,6 @@ static inline bool is_swiotlb_buffer(phys_addr_t paddr) · 4 unmodified lines
8586 {
8687 return false;
8788 }
88−static inline bool swiotlb_map(struct device *dev, phys_addr_t *phys,
89− dma_addr_t *dma_addr, size_t size, enum dma_data_direction dir,
90− unsigned long attrs)
91−{
92− return false;
93−}
9489 static inline void swiotlb_exit(void)
9590 {
9691 }
include/linux/time32.h+1−153
@@ -12,8 +12,6 @@ · 11 unmodified lines
1212 #include <linux/time64.h>
1313 #include <linux/timex.h>
1414
15−#define TIME_T_MAX (__kernel_old_time_t)((1UL << ((sizeof(__kernel_old_time_t) << 3) - 1)) - 1)
16−
1715 typedef s32 old_time32_t;
1816
1917 struct old_timespec32 {
@@ -73,162 +71,12 @@ struct __kernel_timex; · 53 unmodified lines
7371 int get_old_timex32(struct __kernel_timex *, const struct old_timex32 __user *);
7472 int put_old_timex32(struct old_timex32 __user *, const struct __kernel_timex *);
7573
76−#if __BITS_PER_LONG == 64
77−
78−/* timespec64 is defined as timespec here */
79−static inline struct timespec timespec64_to_timespec(const struct timespec64 ts64)
80−{
81− return *(const struct timespec *)&ts64;
82−}
83−
84−static inline struct timespec64 timespec_to_timespec64(const struct timespec ts)
85−{
86− return *(const struct timespec64 *)&ts;
87−}
88−
89−#else
90−static inline struct timespec timespec64_to_timespec(const struct timespec64 ts64)
91−{
92− struct timespec ret;
93−
94− ret.tv_sec = (time_t)ts64.tv_sec;
95− ret.tv_nsec = ts64.tv_nsec;
96− return ret;
97−}
98−
99−static inline struct timespec64 timespec_to_timespec64(const struct timespec ts)
100−{
101− struct timespec64 ret;
102−
103− ret.tv_sec = ts.tv_sec;
104− ret.tv_nsec = ts.tv_nsec;
105− return ret;
106−}
107−#endif
108−
109−static inline int timespec_equal(const struct timespec *a,
110− const struct timespec *b)
111−{
112− return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
113−}
114−
115−/*
116− * lhs < rhs: return <0
117− * lhs == rhs: return 0
118− * lhs > rhs: return >0
119− */
120−static inline int timespec_compare(const struct timespec *lhs, const struct timespec *rhs)
121−{
122− if (lhs->tv_sec < rhs->tv_sec)
123− return -1;
124− if (lhs->tv_sec > rhs->tv_sec)
125− return 1;
126− return lhs->tv_nsec - rhs->tv_nsec;
127−}
128−
129−/*
130− * Returns true if the timespec is norm, false if denorm:
131− */
132−static inline bool timespec_valid(const struct timespec *ts)
133−{
134− /* Dates before 1970 are bogus */
135− if (ts->tv_sec < 0)
136− return false;
137− /* Can't have more nanoseconds then a second */
138− if ((unsigned long)ts->tv_nsec >= NSEC_PER_SEC)
139− return false;
140− return true;
141−}
142−
143−/**
144− * timespec_to_ns - Convert timespec to nanoseconds
145− * @ts: pointer to the timespec variable to be converted
146− *
147− * Returns the scalar nanosecond representation of the timespec
148− * parameter.
149− */
150−static inline s64 timespec_to_ns(const struct timespec *ts)
151−{
152− return ((s64) ts->tv_sec * NSEC_PER_SEC) + ts->tv_nsec;
153−}
154−
15574 /**
156− * ns_to_timespec - Convert nanoseconds to timespec
157− * @nsec: the nanoseconds value to be converted
158− *
159− * Returns the timespec representation of the nsec parameter.
160− */
161−extern struct timespec ns_to_timespec(const s64 nsec);
162−
163−/**
164− * timespec_add_ns - Adds nanoseconds to a timespec
165− * @a: pointer to timespec to be incremented
166− * @ns: unsigned nanoseconds value to be added
167− *
168− * This must always be inlined because its used from the x86-64 vdso,
169− * which cannot call other kernel functions.
170− */
171−static __always_inline void timespec_add_ns(struct timespec *a, u64 ns)
172−{
173− a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, NSEC_PER_SEC, &ns);
174− a->tv_nsec = ns;
175−}
176−
177−static inline unsigned long mktime(const unsigned int year,
178− const unsigned int mon, const unsigned int day,
179− const unsigned int hour, const unsigned int min,
180− const unsigned int sec)
181−{
182− return mktime64(year, mon, day, hour, min, sec);
183−}
184−
185−static inline bool timeval_valid(const struct timeval *tv)
186−{
187− /* Dates before 1970 are bogus */
188− if (tv->tv_sec < 0)
189− return false;
190−
191− /* Can't have more microseconds then a second */
192− if (tv->tv_usec < 0 || tv->tv_usec >= USEC_PER_SEC)
193− return false;
194−
195− return true;
196−}
197−
198−/**
199− * timeval_to_ns - Convert timeval to nanoseconds
200− * @ts: pointer to the timeval variable to be converted
201− *
202− * Returns the scalar nanosecond representation of the timeval
203− * parameter.
204− */
205−static inline s64 timeval_to_ns(const struct timeval *tv)
206−{
207− return ((s64) tv->tv_sec * NSEC_PER_SEC) +
208− tv->tv_usec * NSEC_PER_USEC;
209−}
210−
211−/**
212− * ns_to_timeval - Convert nanoseconds to timeval
75+ * ns_to_kernel_old_timeval - Convert nanoseconds to timeval
21376 * @nsec: the nanoseconds value to be converted
21477 *
21578 * Returns the timeval representation of the nsec parameter.
21679 */
217−extern struct timeval ns_to_timeval(const s64 nsec);
21880 extern struct __kernel_old_timeval ns_to_kernel_old_timeval(s64 nsec);
21981
220−/*
221− * Old names for the 32-bit time_t interfaces, these will be removed
222− * when everything uses the new names.
223− */
224−#define compat_time_t old_time32_t
225−#define compat_timeval old_timeval32
226−#define compat_timespec old_timespec32
227−#define compat_itimerspec old_itimerspec32
228−#define ns_to_compat_timeval ns_to_old_timeval32
229−#define get_compat_itimerspec64 get_old_itimerspec32
230−#define put_compat_itimerspec64 put_old_itimerspec32
231−#define compat_get_timespec64 get_old_timespec32
232−#define compat_put_timespec64 put_old_timespec32
233−
23482 #endif
include/linux/timekeeping32.h+0−32
@@ -11,36 +11,4 @@ static inline unsigned long get_seconds(void) · 10 unmodified lines
1111 return ktime_get_real_seconds();
1212 }
1313
14−static inline void getnstimeofday(struct timespec *ts)
15−{
16− struct timespec64 ts64;
17−
18− ktime_get_real_ts64(&ts64);
19− *ts = timespec64_to_timespec(ts64);
20−}
21−
22−static inline void ktime_get_ts(struct timespec *ts)
23−{
24− struct timespec64 ts64;
25−
26− ktime_get_ts64(&ts64);
27− *ts = timespec64_to_timespec(ts64);
28−}
29−
30−static inline void getrawmonotonic(struct timespec *ts)
31−{
32− struct timespec64 ts64;
33−
34− ktime_get_raw_ts64(&ts64);
35− *ts = timespec64_to_timespec(ts64);
36−}
37−
38−static inline void getboottime(struct timespec *ts)
39−{
40− struct timespec64 ts64;
41−
42− getboottime64(&ts64);
43− *ts = timespec64_to_timespec(ts64);
44−}
45−
4614 #endif
include/linux/trace_events.h+1−1
@@ -440,7 +440,7 @@ struct synth_event_trace_state { · 439 unmodified lines
440440 struct synth_event *event;
441441 unsigned int cur_field;
442442 unsigned int n_u64;
443− bool enabled;
443+ bool disabled;
444444 bool add_next;
445445 bool add_name;
446446 };
include/linux/tty.h+2−0
@@ -225,6 +225,8 @@ struct tty_port_client_operations { · 224 unmodified lines
225225 void (*write_wakeup)(struct tty_port *port);
226226 };
227227
228+extern const struct tty_port_client_operations tty_port_default_client_ops;
229+
228230 struct tty_port {
229231 struct tty_bufhead buf; /* Locked internally */
230232 struct tty_struct *tty; /* Back pointer */
include/linux/types.h+0−5
@@ -65,11 +65,6 @@ typedef __kernel_ssize_t ssize_t; · 64 unmodified lines
6565 typedef __kernel_ptrdiff_t ptrdiff_t;
6666 #endif
6767
68−#ifndef _TIME_T
69−#define _TIME_T
70−typedef __kernel_old_time_t time_t;
71−#endif
72−
7368 #ifndef _CLOCK_T
7469 #define _CLOCK_T
7570 typedef __kernel_clock_t clock_t;
include/linux/usb/quirks.h+3−0
@@ -69,4 +69,7 @@ · 68 unmodified lines
6969 /* Hub needs extra delay after resetting its port. */
7070 #define USB_QUIRK_HUB_SLOW_RESET BIT(14)
7171
72+/* device has blacklisted endpoints */
73+#define USB_QUIRK_ENDPOINT_BLACKLIST BIT(15)
74+
7275 #endif /* __LINUX_USB_QUIRKS_H */
include/linux/vmalloc.h+3−2
@@ -141,8 +141,9 @@ extern int remap_vmalloc_range_partial(struct vm_area_struct *vma, · 140 unmodified lines
141141
142142 extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
143143 unsigned long pgoff);
144−void vmalloc_sync_all(void);
145−
144+void vmalloc_sync_mappings(void);
145+void vmalloc_sync_unmappings(void);
146+
146147 /*
147148 * Lowlevel-APIs (not for driver use!)
148149 */
include/linux/workqueue.h+16−0
@@ -487,6 +487,19 @@ extern void wq_worker_comm(char *buf, size_t size, struct task_struct *task); · 486 unmodified lines
487487 *
488488 * We queue the work to the CPU on which it was submitted, but if the CPU dies
489489 * it can be processed by another CPU.
490+ *
491+ * Memory-ordering properties: If it returns %true, guarantees that all stores
492+ * preceding the call to queue_work() in the program order will be visible from
493+ * the CPU which will execute @work by the time such work executes, e.g.,
494+ *
495+ * { x is initially 0 }
496+ *
497+ * CPU0 CPU1
498+ *
499+ * WRITE_ONCE(x, 1); [ @work is being executed ]
500+ * r0 = queue_work(wq, work); r1 = READ_ONCE(x);
501+ *
502+ * Forbids: r0 == true && r1 == 0
490503 */
491504 static inline bool queue_work(struct workqueue_struct *wq,
492505 struct work_struct *work)
@@ -546,6 +559,9 @@ static inline bool schedule_work_on(int cpu, struct work_struct *work) · 53 unmodified lines
546559 * This puts a job in the kernel-global workqueue if it was not already
547560 * queued and leaves it in the same position on the kernel-global
548561 * workqueue otherwise.
562+ *
563+ * Shares the same memory-ordering properties of queue_work(), cf. the
564+ * DocBook header of queue_work().
549565 */
550566 static inline bool schedule_work(struct work_struct *work)
551567 {