History

Merge series "Compatible string consolidation for NXP DSPI driver" from Vladimir Oltean <olteanv@gmail.com>:

This series makes room in the driver for differentiation between the controllers which currently operate in TCFQ mode. Most of these are actually capable of a lot more in terms of throughput. This is in preparation of a second series which will convert the remaining users of TCFQ mode altogether to XSPI mode with command cycling. Vladimir Oltean (6): doc: spi-fsl-dspi: Add specific compatibles for all Layerscape SoCs spi: spi-fsl-dspi: Use specific compatible strings for all SoC instantiations spi: spi-fsl-dspi: Parameterize the FIFO size and DMA buffer size spi: spi-fsl-dspi: LS2080A and LX2160A support XSPI mode spi: spi-fsl-dspi: Support SPI software timestamping in all non-DMA modes spi: spi-fsl-dspi: Convert the instantiations that support it to DMA .../devicetree/bindings/spi/spi-fsl-dspi.txt | 17 +- drivers/spi/spi-fsl-dspi.c | 162 +++++++++++++----- 2 files changed, 128 insertions(+), 51 deletions(-) -- 2.17.1

Mark Brown committed 6 years ago

Commit cb71d8e2 parents 4709d86 50b6207979 files · +16305 −11462Browse files

Showing the changes to include/linux (28 of 979 files). Show all

Unified · Split

28 files
  1. include/linux/blkdev.h +1 −1
  2. include/linux/blktrace_api.h +13 −5
  3. include/linux/bootconfig.h +3 −0
  4. include/linux/compat.h +0 −29
  5. include/linux/cpufreq.h +0 −3
  6. include/linux/dax.h +2 −12
  7. include/linux/hid.h +1 −1
  8. include/linux/icmpv6.h +10 −0
  9. include/linux/intel-svm.h +1 −1
  10. include/linux/irqdomain.h +1 −1
  11. include/linux/ktime.h +0 −37
  12. include/linux/kvm_host.h +3 −1
  13. include/linux/mlx5/mlx5_ifc.h +4 −1
  14. include/linux/netdevice.h +18 −5
  15. include/linux/netfilter/ipset/ip_set.h +10 −1
  16. include/linux/nfs_fs.h +6 −20
  17. include/linux/pipe_fs_i.h +2 −1
  18. include/linux/rculist_nulls.h +7 −0
  19. include/linux/sched/nohz.h +2 −0
  20. include/linux/skbuff.h +30 −0
  21. include/linux/suspend.h +1 −1
  22. include/linux/swiotlb.h +3 −8
  23. include/linux/time32.h +1 −153
  24. include/linux/timekeeping32.h +0 −32
  25. include/linux/trace_events.h +1 −1
  26. include/linux/tty.h +2 −0
  27. include/linux/types.h +0 −5
  28. include/linux/usb/quirks.h +3 −0
include/linux/blkdev.h+1−1
@@ -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 /*
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/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/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/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/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/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/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/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/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 */