History

Merge tag 'v5.17-rc2' into char-misc-next

We need the char/misc fixes in here as well.

Greg Kroah-Hartman committed 4 years ago

Commit 7ab004d2 parents 710f8af 26291c5433 files · +4640 −2086Browse files

Showing the changes to include (32 of 433 files). Show all

Unified · Split

32 files
  1. include/linux/blkdev.h +1 −0
  2. include/linux/ethtool.h +1 −1
  3. include/linux/fsnotify.h +43 −6
  4. include/linux/lsm_hook_defs.h +1 −1
  5. include/linux/mm.h +12 −5
  6. include/linux/mm_types.h +1 −0
  7. include/linux/netdevice.h +1 −0
  8. include/linux/nfs_fs.h +6 −4
  9. include/linux/nfs_fs_sb.h +3 −1
  10. include/linux/nfs_xdr.h +4 −1
  11. include/linux/perf_event.h +3 −12
  12. include/linux/pid_namespace.h +5 −0
  13. include/linux/psi.h +6 −7
  14. include/linux/psi_types.h +0 −3
  15. include/linux/quota.h +1 −1
  16. include/linux/sched.h +0 −4
  17. include/linux/skbuff.h +1 −1
  18. include/linux/suspend.h +1 −10
  19. include/linux/sysctl.h +1 −1
  20. include/linux/usb/role.h +6 −0
  21. include/net/addrconf.h +2 −0
  22. include/net/bonding.h +1 −1
  23. include/net/ip.h +10 −11
  24. include/net/ip6_fib.h +1 −1
  25. include/net/route.h +1 −1
  26. include/net/tcp.h +4 −0
  27. include/trace/events/skb.h +1 −1
  28. include/trace/events/sunrpc.h +45 −25
  29. include/trace/perf.h +3 −2
  30. include/trace/trace_events.h +5 −4
  31. include/uapi/linux/cyclades.h +35 −0
  32. include/uapi/linux/kvm.h +1 −0
include/linux/blkdev.h+1−0
@@ -1258,6 +1258,7 @@ unsigned long disk_start_io_acct(struct gendisk *disk, unsigned int sectors, · 1257 unmodified lines
1258void disk_end_io_acct(struct gendisk *disk, unsigned int op,1258void disk_end_io_acct(struct gendisk *disk, unsigned int op,
1259 unsigned long start_time);1259 unsigned long start_time);
1260 1260
1261void bio_start_io_acct_time(struct bio *bio, unsigned long start_time);
1261unsigned long bio_start_io_acct(struct bio *bio);1262unsigned long bio_start_io_acct(struct bio *bio);
1262void bio_end_io_acct_remapped(struct bio *bio, unsigned long start_time,1263void bio_end_io_acct_remapped(struct bio *bio, unsigned long start_time,
1263 struct block_device *orig_bdev);1264 struct block_device *orig_bdev);
include/linux/ethtool.h+1−1
@@ -111,7 +111,7 @@ struct ethtool_link_ext_state_info { · 110 unmodified lines
111 enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity;111 enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity;
112 enum ethtool_link_ext_substate_cable_issue cable_issue;112 enum ethtool_link_ext_substate_cable_issue cable_issue;
113 enum ethtool_link_ext_substate_module module;113 enum ethtool_link_ext_substate_module module;
114 u8 __link_ext_substate;114 u32 __link_ext_substate;
115 };115 };
116};116};
117 117
include/linux/fsnotify.h+43−6
@@ -224,6 +224,43 @@ static inline void fsnotify_link(struct inode *dir, struct inode *inode, · 223 unmodified lines
224 dir, &new_dentry->d_name, 0);224 dir, &new_dentry->d_name, 0);
225}225}
226 226
227/*
228 * fsnotify_delete - @dentry was unlinked and unhashed
229 *
230 * Caller must make sure that dentry->d_name is stable.
231 *
232 * Note: unlike fsnotify_unlink(), we have to pass also the unlinked inode
233 * as this may be called after d_delete() and old_dentry may be negative.
234 */
235static inline void fsnotify_delete(struct inode *dir, struct inode *inode,
236 struct dentry *dentry)
237{
238 __u32 mask = FS_DELETE;
239
240 if (S_ISDIR(inode->i_mode))
241 mask |= FS_ISDIR;
242
243 fsnotify_name(mask, inode, FSNOTIFY_EVENT_INODE, dir, &dentry->d_name,
244 0);
245}
246
247/**
248 * d_delete_notify - delete a dentry and call fsnotify_delete()
249 * @dentry: The dentry to delete
250 *
251 * This helper is used to guaranty that the unlinked inode cannot be found
252 * by lookup of this name after fsnotify_delete() event has been delivered.
253 */
254static inline void d_delete_notify(struct inode *dir, struct dentry *dentry)
255{
256 struct inode *inode = d_inode(dentry);
257
258 ihold(inode);
259 d_delete(dentry);
260 fsnotify_delete(dir, inode, dentry);
261 iput(inode);
262}
263
227/*264/*
228 * fsnotify_unlink - 'name' was unlinked265 * fsnotify_unlink - 'name' was unlinked
229 *266 *
@@ -231,10 +268,10 @@ static inline void fsnotify_link(struct inode *dir, struct inode *inode, · 1 unmodified line
231 */268 */
232static inline void fsnotify_unlink(struct inode *dir, struct dentry *dentry)269static inline void fsnotify_unlink(struct inode *dir, struct dentry *dentry)
233{270{
234 /* Expected to be called before d_delete() */271 if (WARN_ON_ONCE(d_is_negative(dentry)))
235 WARN_ON_ONCE(d_is_negative(dentry));272 return;
236 273
237 fsnotify_dirent(dir, dentry, FS_DELETE);274 fsnotify_delete(dir, d_inode(dentry), dentry);
238}275}
239 276
240/*277/*
@@ -258,10 +295,10 @@ static inline void fsnotify_mkdir(struct inode *dir, struct dentry *dentry) · 17 unmodified lines
258 */295 */
259static inline void fsnotify_rmdir(struct inode *dir, struct dentry *dentry)296static inline void fsnotify_rmdir(struct inode *dir, struct dentry *dentry)
260{297{
261 /* Expected to be called before d_delete() */298 if (WARN_ON_ONCE(d_is_negative(dentry)))
262 WARN_ON_ONCE(d_is_negative(dentry));299 return;
263 300
264 fsnotify_dirent(dir, dentry, FS_DELETE | FS_ISDIR);301 fsnotify_delete(dir, d_inode(dentry), dentry);
265}302}
266 303
267/*304/*
include/linux/lsm_hook_defs.h+1−1
@@ -80,7 +80,7 @@ LSM_HOOK(int, 0, sb_clone_mnt_opts, const struct super_block *oldsb, · 79 unmodified lines
80 unsigned long *set_kern_flags)80 unsigned long *set_kern_flags)
81LSM_HOOK(int, 0, move_mount, const struct path *from_path,81LSM_HOOK(int, 0, move_mount, const struct path *from_path,
82 const struct path *to_path)82 const struct path *to_path)
83LSM_HOOK(int, 0, dentry_init_security, struct dentry *dentry,83LSM_HOOK(int, -EOPNOTSUPP, dentry_init_security, struct dentry *dentry,
84 int mode, const struct qstr *name, const char **xattr_name,84 int mode, const struct qstr *name, const char **xattr_name,
85 void **ctx, u32 *ctxlen)85 void **ctx, u32 *ctxlen)
86LSM_HOOK(int, 0, dentry_create_files_as, struct dentry *dentry, int mode,86LSM_HOOK(int, 0, dentry_create_files_as, struct dentry *dentry, int mode,
include/linux/mm.h+12−5
@@ -1506,11 +1506,18 @@ static inline u8 page_kasan_tag(const struct page *page) · 1505 unmodified lines
1506 1506
1507static inline void page_kasan_tag_set(struct page *page, u8 tag)1507static inline void page_kasan_tag_set(struct page *page, u8 tag)
1508{1508{
1509 if (kasan_enabled()) {1509 unsigned long old_flags, flags;
1510 tag ^= 0xff;1510
1511 page->flags &= ~(KASAN_TAG_MASK << KASAN_TAG_PGSHIFT);1511 if (!kasan_enabled())
1512 page->flags |= (tag & KASAN_TAG_MASK) << KASAN_TAG_PGSHIFT;1512 return;
1513 }1513
1514 tag ^= 0xff;
1515 old_flags = READ_ONCE(page->flags);
1516 do {
1517 flags = old_flags;
1518 flags &= ~(KASAN_TAG_MASK << KASAN_TAG_PGSHIFT);
1519 flags |= (tag & KASAN_TAG_MASK) << KASAN_TAG_PGSHIFT;
1520 } while (unlikely(!try_cmpxchg(&page->flags, &old_flags, flags)));
1514}1521}
1515 1522
1516static inline void page_kasan_tag_reset(struct page *page)1523static inline void page_kasan_tag_reset(struct page *page)
include/linux/mm_types.h+1−0
@@ -261,6 +261,7 @@ static_assert(sizeof(struct page) == sizeof(struct folio)); · 260 unmodified lines
261 static_assert(offsetof(struct page, pg) == offsetof(struct folio, fl))261 static_assert(offsetof(struct page, pg) == offsetof(struct folio, fl))
262FOLIO_MATCH(flags, flags);262FOLIO_MATCH(flags, flags);
263FOLIO_MATCH(lru, lru);263FOLIO_MATCH(lru, lru);
264FOLIO_MATCH(mapping, mapping);
264FOLIO_MATCH(compound_head, lru);265FOLIO_MATCH(compound_head, lru);
265FOLIO_MATCH(index, index);266FOLIO_MATCH(index, index);
266FOLIO_MATCH(private, private);267FOLIO_MATCH(private, private);
include/linux/netdevice.h+1−0
@@ -2548,6 +2548,7 @@ struct packet_type { · 2547 unmodified lines
2548 struct net_device *);2548 struct net_device *);
2549 bool (*id_match)(struct packet_type *ptype,2549 bool (*id_match)(struct packet_type *ptype,
2550 struct sock *sk);2550 struct sock *sk);
2551 struct net *af_packet_net;
2551 void *af_packet_priv;2552 void *af_packet_priv;
2552 struct list_head list;2553 struct list_head list;
2553};2554};
include/linux/nfs_fs.h+6−4
@@ -61,7 +61,9 @@ · 60 unmodified lines
61struct nfs_access_entry {61struct nfs_access_entry {
62 struct rb_node rb_node;62 struct rb_node rb_node;
63 struct list_head lru;63 struct list_head lru;
64 const struct cred * cred;64 kuid_t fsuid;
65 kgid_t fsgid;
66 struct group_info *group_info;
65 __u32 mask;67 __u32 mask;
66 struct rcu_head rcu_head;68 struct rcu_head rcu_head;
67};69};
@@ -395,7 +397,7 @@ extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fa · 327 unmodified lines
395extern int nfs_post_op_update_inode_force_wcc_locked(struct inode *inode, struct nfs_fattr *fattr);397extern int nfs_post_op_update_inode_force_wcc_locked(struct inode *inode, struct nfs_fattr *fattr);
396extern int nfs_getattr(struct user_namespace *, const struct path *,398extern int nfs_getattr(struct user_namespace *, const struct path *,
397 struct kstat *, u32, unsigned int);399 struct kstat *, u32, unsigned int);
398extern void nfs_access_add_cache(struct inode *, struct nfs_access_entry *);400extern void nfs_access_add_cache(struct inode *, struct nfs_access_entry *, const struct cred *);
399extern void nfs_access_set_mask(struct nfs_access_entry *, u32);401extern void nfs_access_set_mask(struct nfs_access_entry *, u32);
400extern int nfs_permission(struct user_namespace *, struct inode *, int);402extern int nfs_permission(struct user_namespace *, struct inode *, int);
401extern int nfs_open(struct inode *, struct file *);403extern int nfs_open(struct inode *, struct file *);
@@ -532,8 +534,8 @@ extern int nfs_instantiate(struct dentry *dentry, struct nfs_fh *fh, · 130 unmodified lines
532 struct nfs_fattr *fattr);534 struct nfs_fattr *fattr);
533extern int nfs_may_open(struct inode *inode, const struct cred *cred, int openflags);535extern int nfs_may_open(struct inode *inode, const struct cred *cred, int openflags);
534extern void nfs_access_zap_cache(struct inode *inode);536extern void nfs_access_zap_cache(struct inode *inode);
535extern int nfs_access_get_cached(struct inode *inode, const struct cred *cred, struct nfs_access_entry *res,537extern int nfs_access_get_cached(struct inode *inode, const struct cred *cred,
536 bool may_block);538 u32 *mask, bool may_block);
537 539
538/*540/*
539 * linux/fs/nfs/symlink.c541 * linux/fs/nfs/symlink.c
include/linux/nfs_fs_sb.h+3−1
@@ -266,6 +266,8 @@ struct nfs_server { · 265 unmodified lines
266#define NFS_CAP_ACLS (1U << 3)266#define NFS_CAP_ACLS (1U << 3)
267#define NFS_CAP_ATOMIC_OPEN (1U << 4)267#define NFS_CAP_ATOMIC_OPEN (1U << 4)
268#define NFS_CAP_LGOPEN (1U << 5)268#define NFS_CAP_LGOPEN (1U << 5)
269#define NFS_CAP_CASE_INSENSITIVE (1U << 6)
270#define NFS_CAP_CASE_PRESERVING (1U << 7)
269#define NFS_CAP_POSIX_LOCK (1U << 14)271#define NFS_CAP_POSIX_LOCK (1U << 14)
270#define NFS_CAP_UIDGID_NOMAP (1U << 15)272#define NFS_CAP_UIDGID_NOMAP (1U << 15)
271#define NFS_CAP_STATEID_NFSV41 (1U << 16)273#define NFS_CAP_STATEID_NFSV41 (1U << 16)
@@ -282,5 +284,5 @@ struct nfs_server { · 10 unmodified lines
282#define NFS_CAP_COPY_NOTIFY (1U << 27)284#define NFS_CAP_COPY_NOTIFY (1U << 27)
283#define NFS_CAP_XATTR (1U << 28)285#define NFS_CAP_XATTR (1U << 28)
284#define NFS_CAP_READ_PLUS (1U << 29)286#define NFS_CAP_READ_PLUS (1U << 29)
285 287#define NFS_CAP_FS_LOCATIONS (1U << 30)
286#endif288#endif
include/linux/nfs_xdr.h+4−1
@@ -1194,6 +1194,8 @@ struct nfs4_server_caps_res { · 1193 unmodified lines
1194 u32 has_links;1194 u32 has_links;
1195 u32 has_symlinks;1195 u32 has_symlinks;
1196 u32 fh_expire_type;1196 u32 fh_expire_type;
1197 u32 case_insensitive;
1198 u32 case_preserving;
1197};1199};
1198 1200
1199#define NFS4_PATHNAME_MAXCOMPONENTS 5121201#define NFS4_PATHNAME_MAXCOMPONENTS 512
@@ -1737,7 +1739,7 @@ struct nfs_rpc_ops { · 537 unmodified lines
1737 struct nfs_fh *, struct nfs_fattr *);1739 struct nfs_fh *, struct nfs_fattr *);
1738 int (*lookupp) (struct inode *, struct nfs_fh *,1740 int (*lookupp) (struct inode *, struct nfs_fh *,
1739 struct nfs_fattr *);1741 struct nfs_fattr *);
1740 int (*access) (struct inode *, struct nfs_access_entry *);1742 int (*access) (struct inode *, struct nfs_access_entry *, const struct cred *);
1741 int (*readlink)(struct inode *, struct page *, unsigned int,1743 int (*readlink)(struct inode *, struct page *, unsigned int,
1742 unsigned int);1744 unsigned int);
1743 int (*create) (struct inode *, struct dentry *,1745 int (*create) (struct inode *, struct dentry *,
@@ -1795,6 +1797,7 @@ struct nfs_rpc_ops { · 51 unmodified lines
1795 struct nfs_server *(*create_server)(struct fs_context *);1797 struct nfs_server *(*create_server)(struct fs_context *);
1796 struct nfs_server *(*clone_server)(struct nfs_server *, struct nfs_fh *,1798 struct nfs_server *(*clone_server)(struct nfs_server *, struct nfs_fh *,
1797 struct nfs_fattr *, rpc_authflavor_t);1799 struct nfs_fattr *, rpc_authflavor_t);
1800 int (*discover_trunking)(struct nfs_server *, struct nfs_fh *);
1798};1801};
1799 1802
1800/*1803/*
include/linux/perf_event.h+3−12
@@ -693,18 +693,6 @@ struct perf_event { · 692 unmodified lines
693 u64 total_time_running;693 u64 total_time_running;
694 u64 tstamp;694 u64 tstamp;
695 695
696 /*
697 * timestamp shadows the actual context timing but it can
698 * be safely used in NMI interrupt context. It reflects the
699 * context time as it was when the event was last scheduled in,
700 * or when ctx_sched_in failed to schedule the event because we
701 * run out of PMC.
702 *
703 * ctx_time already accounts for ctx->timestamp. Therefore to
704 * compute ctx_time for a sample, simply add perf_clock().
705 */
706 u64 shadow_ctx_time;
707
708 struct perf_event_attr attr;696 struct perf_event_attr attr;
709 u16 header_size;697 u16 header_size;
710 u16 id_header_size;698 u16 id_header_size;
@@ -852,6 +840,7 @@ struct perf_event_context { · 141 unmodified lines
852 */840 */
853 u64 time;841 u64 time;
854 u64 timestamp;842 u64 timestamp;
843 u64 timeoffset;
855 844
856 /*845 /*
857 * These fields let us detect when two contexts have both846 * These fields let us detect when two contexts have both
@@ -934,6 +923,8 @@ struct bpf_perf_event_data_kern { · 76 unmodified lines
934struct perf_cgroup_info {923struct perf_cgroup_info {
935 u64 time;924 u64 time;
936 u64 timestamp;925 u64 timestamp;
926 u64 timeoffset;
927 int active;
937};928};
938 929
939struct perf_cgroup {930struct perf_cgroup {
include/linux/pid_namespace.h+5−0
@@ -86,4 +86,9 @@ extern struct pid_namespace *task_active_pid_ns(struct task_struct *tsk); · 85 unmodified lines
86void pidhash_init(void);86void pidhash_init(void);
87void pid_idr_init(void);87void pid_idr_init(void);
88 88
89static inline bool task_is_in_init_pid_ns(struct task_struct *tsk)
90{
91 return task_active_pid_ns(tsk) == &init_pid_ns;
92}
93
89#endif /* _LINUX_PID_NS_H */94#endif /* _LINUX_PID_NS_H */
include/linux/psi.h+6−7
@@ -25,18 +25,17 @@ void psi_memstall_enter(unsigned long *flags); · 24 unmodified lines
25void psi_memstall_leave(unsigned long *flags);25void psi_memstall_leave(unsigned long *flags);
26 26
27int psi_show(struct seq_file *s, struct psi_group *group, enum psi_res res);27int psi_show(struct seq_file *s, struct psi_group *group, enum psi_res res);
28
29#ifdef CONFIG_CGROUPS
30int psi_cgroup_alloc(struct cgroup *cgrp);
31void psi_cgroup_free(struct cgroup *cgrp);
32void cgroup_move_task(struct task_struct *p, struct css_set *to);
33
34struct psi_trigger *psi_trigger_create(struct psi_group *group,28struct psi_trigger *psi_trigger_create(struct psi_group *group,
35 char *buf, size_t nbytes, enum psi_res res);29 char *buf, size_t nbytes, enum psi_res res);
36void psi_trigger_replace(void **trigger_ptr, struct psi_trigger *t);30void psi_trigger_destroy(struct psi_trigger *t);
37 31
38__poll_t psi_trigger_poll(void **trigger_ptr, struct file *file,32__poll_t psi_trigger_poll(void **trigger_ptr, struct file *file,
39 poll_table *wait);33 poll_table *wait);
34
35#ifdef CONFIG_CGROUPS
36int psi_cgroup_alloc(struct cgroup *cgrp);
37void psi_cgroup_free(struct cgroup *cgrp);
38void cgroup_move_task(struct task_struct *p, struct css_set *to);
40#endif39#endif
41 40
42#else /* CONFIG_PSI */41#else /* CONFIG_PSI */
include/linux/psi_types.h+0−3
@@ -141,9 +141,6 @@ struct psi_trigger { · 140 unmodified lines
141 * events to one per window141 * events to one per window
142 */142 */
143 u64 last_event_time;143 u64 last_event_time;
144
145 /* Refcounting to prevent premature destruction */
146 struct kref refcount;
147};144};
148 145
149struct psi_group {146struct psi_group {
include/linux/quota.h+1−1
@@ -91,7 +91,7 @@ extern bool qid_valid(struct kqid qid); · 90 unmodified lines
91 *91 *
92 * When there is no mapping defined for the user-namespace, type,92 * When there is no mapping defined for the user-namespace, type,
93 * qid tuple an invalid kqid is returned. Callers are expected to93 * qid tuple an invalid kqid is returned. Callers are expected to
94 * test for and handle handle invalid kqids being returned.94 * test for and handle invalid kqids being returned.
95 * Invalid kqids may be tested for using qid_valid().95 * Invalid kqids may be tested for using qid_valid().
96 */96 */
97static inline struct kqid make_kqid(struct user_namespace *from,97static inline struct kqid make_kqid(struct user_namespace *from,
include/linux/sched.h+0−4
@@ -619,10 +619,6 @@ struct sched_dl_entity { · 618 unmodified lines
619 * task has to wait for a replenishment to be performed at the619 * task has to wait for a replenishment to be performed at the
620 * next firing of dl_timer.620 * next firing of dl_timer.
621 *621 *
622 * @dl_boosted tells if we are boosted due to DI. If so we are
623 * outside bandwidth enforcement mechanism (but only until we
624 * exit the critical section);
625 *
626 * @dl_yielded tells if task gave up the CPU before consuming622 * @dl_yielded tells if task gave up the CPU before consuming
627 * all its available runtime during the last job.623 * all its available runtime during the last job.
628 *624 *
include/linux/skbuff.h+1−1
@@ -318,7 +318,7 @@ enum skb_drop_reason { · 317 unmodified lines
318 SKB_DROP_REASON_NO_SOCKET,318 SKB_DROP_REASON_NO_SOCKET,
319 SKB_DROP_REASON_PKT_TOO_SMALL,319 SKB_DROP_REASON_PKT_TOO_SMALL,
320 SKB_DROP_REASON_TCP_CSUM,320 SKB_DROP_REASON_TCP_CSUM,
321 SKB_DROP_REASON_TCP_FILTER,321 SKB_DROP_REASON_SOCKET_FILTER,
322 SKB_DROP_REASON_UDP_CSUM,322 SKB_DROP_REASON_UDP_CSUM,
323 SKB_DROP_REASON_MAX,323 SKB_DROP_REASON_MAX,
324};324};
include/linux/suspend.h+1−10
@@ -430,15 +430,7 @@ struct platform_hibernation_ops { · 429 unmodified lines
430 430
431#ifdef CONFIG_HIBERNATION431#ifdef CONFIG_HIBERNATION
432/* kernel/power/snapshot.c */432/* kernel/power/snapshot.c */
433extern void __register_nosave_region(unsigned long b, unsigned long e, int km);433extern void register_nosave_region(unsigned long b, unsigned long e);
434static inline void __init register_nosave_region(unsigned long b, unsigned long e)
435{
436 __register_nosave_region(b, e, 0);
437}
438static inline void __init register_nosave_region_late(unsigned long b, unsigned long e)
439{
440 __register_nosave_region(b, e, 1);
441}
442extern int swsusp_page_is_forbidden(struct page *);434extern int swsusp_page_is_forbidden(struct page *);
443extern void swsusp_set_page_free(struct page *);435extern void swsusp_set_page_free(struct page *);
444extern void swsusp_unset_page_free(struct page *);436extern void swsusp_unset_page_free(struct page *);
@@ -458,7 +450,6 @@ int pfn_is_nosave(unsigned long pfn); · 13 unmodified lines
458int hibernate_quiet_exec(int (*func)(void *data), void *data);450int hibernate_quiet_exec(int (*func)(void *data), void *data);
459#else /* CONFIG_HIBERNATION */451#else /* CONFIG_HIBERNATION */
460static inline void register_nosave_region(unsigned long b, unsigned long e) {}452static inline void register_nosave_region(unsigned long b, unsigned long e) {}
461static inline void register_nosave_region_late(unsigned long b, unsigned long e) {}
462static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }453static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }
463static inline void swsusp_set_page_free(struct page *p) {}454static inline void swsusp_set_page_free(struct page *p) {}
464static inline void swsusp_unset_page_free(struct page *p) {}455static inline void swsusp_unset_page_free(struct page *p) {}
include/linux/sysctl.h+1−1
@@ -265,7 +265,7 @@ static inline struct ctl_table_header *register_sysctl_table(struct ctl_table * · 264 unmodified lines
265 return NULL;265 return NULL;
266}266}
267 267
268static inline struct sysctl_header *register_sysctl_mount_point(const char *path)268static inline struct ctl_table_header *register_sysctl_mount_point(const char *path)
269{269{
270 return NULL;270 return NULL;
271}271}
include/linux/usb/role.h+6−0
@@ -91,6 +91,12 @@ fwnode_usb_role_switch_get(struct fwnode_handle *node) · 90 unmodified lines
91 91
92static inline void usb_role_switch_put(struct usb_role_switch *sw) { }92static inline void usb_role_switch_put(struct usb_role_switch *sw) { }
93 93
94static inline struct usb_role_switch *
95usb_role_switch_find_by_fwnode(const struct fwnode_handle *fwnode)
96{
97 return NULL;
98}
99
94static inline struct usb_role_switch *100static inline struct usb_role_switch *
95usb_role_switch_register(struct device *parent,101usb_role_switch_register(struct device *parent,
96 const struct usb_role_switch_desc *desc)102 const struct usb_role_switch_desc *desc)
include/net/addrconf.h+2−0
@@ -6,6 +6,8 @@ · 5 unmodified lines
6#define RTR_SOLICITATION_INTERVAL (4*HZ)6#define RTR_SOLICITATION_INTERVAL (4*HZ)
7#define RTR_SOLICITATION_MAX_INTERVAL (3600*HZ) /* 1 hour */7#define RTR_SOLICITATION_MAX_INTERVAL (3600*HZ) /* 1 hour */
8 8
9#define MIN_VALID_LIFETIME (2*3600) /* 2 hours */
10
9#define TEMP_VALID_LIFETIME (7*86400)11#define TEMP_VALID_LIFETIME (7*86400)
10#define TEMP_PREFERRED_LIFETIME (86400)12#define TEMP_PREFERRED_LIFETIME (86400)
11#define REGEN_MAX_RETRY (3)13#define REGEN_MAX_RETRY (3)
include/net/bonding.h+1−1
@@ -346,7 +346,7 @@ static inline bool bond_uses_primary(struct bonding *bond) · 345 unmodified lines
346 346
347static inline struct net_device *bond_option_active_slave_get_rcu(struct bonding *bond)347static inline struct net_device *bond_option_active_slave_get_rcu(struct bonding *bond)
348{348{
349 struct slave *slave = rcu_dereference(bond->curr_active_slave);349 struct slave *slave = rcu_dereference_rtnl(bond->curr_active_slave);
350 350
351 return bond_uses_primary(bond) && slave ? slave->dev : NULL;351 return bond_uses_primary(bond) && slave ? slave->dev : NULL;
352}352}
include/net/ip.h+10−11
@@ -525,19 +525,18 @@ static inline void ip_select_ident_segs(struct net *net, struct sk_buff *skb, · 524 unmodified lines
525{525{
526 struct iphdr *iph = ip_hdr(skb);526 struct iphdr *iph = ip_hdr(skb);
527 527
528 /* We had many attacks based on IPID, use the private
529 * generator as much as we can.
530 */
531 if (sk && inet_sk(sk)->inet_daddr) {
532 iph->id = htons(inet_sk(sk)->inet_id);
533 inet_sk(sk)->inet_id += segs;
534 return;
535 }
528 if ((iph->frag_off & htons(IP_DF)) && !skb->ignore_df) {536 if ((iph->frag_off & htons(IP_DF)) && !skb->ignore_df) {
529 /* This is only to work around buggy Windows95/2000537 iph->id = 0;
530 * VJ compression implementations. If the ID field
531 * does not change, they drop every other packet in
532 * a TCP stream using header compression.
533 */
534 if (sk && inet_sk(sk)->inet_daddr) {
535 iph->id = htons(inet_sk(sk)->inet_id);
536 inet_sk(sk)->inet_id += segs;
537 } else {
538 iph->id = 0;
539 }
540 } else {538 } else {
539 /* Unfortunately we need the big hammer to get a suitable IPID */
541 __ip_select_ident(net, iph, segs);540 __ip_select_ident(net, iph, segs);
542 }541 }
543}542}
include/net/ip6_fib.h+1−1
@@ -282,7 +282,7 @@ static inline bool fib6_get_cookie_safe(const struct fib6_info *f6i, · 281 unmodified lines
282 fn = rcu_dereference(f6i->fib6_node);282 fn = rcu_dereference(f6i->fib6_node);
283 283
284 if (fn) {284 if (fn) {
285 *cookie = fn->fn_sernum;285 *cookie = READ_ONCE(fn->fn_sernum);
286 /* pairs with smp_wmb() in __fib6_update_sernum_upto_root() */286 /* pairs with smp_wmb() in __fib6_update_sernum_upto_root() */
287 smp_rmb();287 smp_rmb();
288 status = true;288 status = true;
include/net/route.h+1−1
@@ -370,7 +370,7 @@ static inline struct neighbour *ip_neigh_gw4(struct net_device *dev, · 369 unmodified lines
370{370{
371 struct neighbour *neigh;371 struct neighbour *neigh;
372 372
373 neigh = __ipv4_neigh_lookup_noref(dev, daddr);373 neigh = __ipv4_neigh_lookup_noref(dev, (__force u32)daddr);
374 if (unlikely(!neigh))374 if (unlikely(!neigh))
375 neigh = __neigh_create(&arp_tbl, &daddr, dev, false);375 neigh = __neigh_create(&arp_tbl, &daddr, dev, false);
376 376
include/net/tcp.h+4−0
@@ -1369,6 +1369,7 @@ static inline bool tcp_checksum_complete(struct sk_buff *skb) · 1368 unmodified lines
1369 1369
1370bool tcp_add_backlog(struct sock *sk, struct sk_buff *skb);1370bool tcp_add_backlog(struct sock *sk, struct sk_buff *skb);
1371 1371
1372#ifdef CONFIG_INET
1372void __sk_defer_free_flush(struct sock *sk);1373void __sk_defer_free_flush(struct sock *sk);
1373 1374
1374static inline void sk_defer_free_flush(struct sock *sk)1375static inline void sk_defer_free_flush(struct sock *sk)
@@ -1377,6 +1378,9 @@ static inline void sk_defer_free_flush(struct sock *sk) · 2 unmodified lines
1377 return;1378 return;
1378 __sk_defer_free_flush(sk);1379 __sk_defer_free_flush(sk);
1379}1380}
1381#else
1382static inline void sk_defer_free_flush(struct sock *sk) {}
1383#endif
1380 1384
1381int tcp_filter(struct sock *sk, struct sk_buff *skb);1385int tcp_filter(struct sock *sk, struct sk_buff *skb);
1382void tcp_set_state(struct sock *sk, int state);1386void tcp_set_state(struct sock *sk, int state);
include/trace/events/skb.h+1−1
@@ -14,7 +14,7 @@ · 13 unmodified lines
14 EM(SKB_DROP_REASON_NO_SOCKET, NO_SOCKET) \14 EM(SKB_DROP_REASON_NO_SOCKET, NO_SOCKET) \
15 EM(SKB_DROP_REASON_PKT_TOO_SMALL, PKT_TOO_SMALL) \15 EM(SKB_DROP_REASON_PKT_TOO_SMALL, PKT_TOO_SMALL) \
16 EM(SKB_DROP_REASON_TCP_CSUM, TCP_CSUM) \16 EM(SKB_DROP_REASON_TCP_CSUM, TCP_CSUM) \
17 EM(SKB_DROP_REASON_TCP_FILTER, TCP_FILTER) \17 EM(SKB_DROP_REASON_SOCKET_FILTER, SOCKET_FILTER) \
18 EM(SKB_DROP_REASON_UDP_CSUM, UDP_CSUM) \18 EM(SKB_DROP_REASON_UDP_CSUM, UDP_CSUM) \
19 EMe(SKB_DROP_REASON_MAX, MAX)19 EMe(SKB_DROP_REASON_MAX, MAX)
20 20
include/trace/events/sunrpc.h+45−25
@@ -794,6 +794,9 @@ RPC_SHOW_SOCKET · 793 unmodified lines
794 794
795RPC_SHOW_SOCK795RPC_SHOW_SOCK
796 796
797
798#include <trace/events/net_probe_common.h>
799
797/*800/*
798 * Now redefine the EM() and EMe() macros to map the enums to the strings801 * Now redefine the EM() and EMe() macros to map the enums to the strings
799 * that will be printed in the output.802 * that will be printed in the output.
@@ -816,27 +819,32 @@ DECLARE_EVENT_CLASS(xs_socket_event, · 16 unmodified lines
816 __field(unsigned int, socket_state)819 __field(unsigned int, socket_state)
817 __field(unsigned int, sock_state)820 __field(unsigned int, sock_state)
818 __field(unsigned long long, ino)821 __field(unsigned long long, ino)
819 __string(dstaddr,822 __array(__u8, saddr, sizeof(struct sockaddr_in6))
820 xprt->address_strings[RPC_DISPLAY_ADDR])823 __array(__u8, daddr, sizeof(struct sockaddr_in6))
821 __string(dstport,
822 xprt->address_strings[RPC_DISPLAY_PORT])
823 ),824 ),
824 825
825 TP_fast_assign(826 TP_fast_assign(
826 struct inode *inode = SOCK_INODE(socket);827 struct inode *inode = SOCK_INODE(socket);
828 const struct sock *sk = socket->sk;
829 const struct inet_sock *inet = inet_sk(sk);
830
831 memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
832 memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
833
834 TP_STORE_ADDR_PORTS(__entry, inet, sk);
835
827 __entry->socket_state = socket->state;836 __entry->socket_state = socket->state;
828 __entry->sock_state = socket->sk->sk_state;837 __entry->sock_state = socket->sk->sk_state;
829 __entry->ino = (unsigned long long)inode->i_ino;838 __entry->ino = (unsigned long long)inode->i_ino;
830 __assign_str(dstaddr,839
831 xprt->address_strings[RPC_DISPLAY_ADDR]);
832 __assign_str(dstport,
833 xprt->address_strings[RPC_DISPLAY_PORT]);
834 ),840 ),
835 841
836 TP_printk(842 TP_printk(
837 "socket:[%llu] dstaddr=%s/%s "843 "socket:[%llu] srcaddr=%pISpc dstaddr=%pISpc "
838 "state=%u (%s) sk_state=%u (%s)",844 "state=%u (%s) sk_state=%u (%s)",
839 __entry->ino, __get_str(dstaddr), __get_str(dstport),845 __entry->ino,
846 __entry->saddr,
847 __entry->daddr,
840 __entry->socket_state,848 __entry->socket_state,
841 rpc_show_socket_state(__entry->socket_state),849 rpc_show_socket_state(__entry->socket_state),
842 __entry->sock_state,850 __entry->sock_state,
@@ -866,29 +874,33 @@ DECLARE_EVENT_CLASS(xs_socket_event_done, · 23 unmodified lines
866 __field(unsigned int, socket_state)874 __field(unsigned int, socket_state)
867 __field(unsigned int, sock_state)875 __field(unsigned int, sock_state)
868 __field(unsigned long long, ino)876 __field(unsigned long long, ino)
869 __string(dstaddr,877 __array(__u8, saddr, sizeof(struct sockaddr_in6))
870 xprt->address_strings[RPC_DISPLAY_ADDR])878 __array(__u8, daddr, sizeof(struct sockaddr_in6))
871 __string(dstport,
872 xprt->address_strings[RPC_DISPLAY_PORT])
873 ),879 ),
874 880
875 TP_fast_assign(881 TP_fast_assign(
876 struct inode *inode = SOCK_INODE(socket);882 struct inode *inode = SOCK_INODE(socket);
883 const struct sock *sk = socket->sk;
884 const struct inet_sock *inet = inet_sk(sk);
885
886 memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
887 memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
888
889 TP_STORE_ADDR_PORTS(__entry, inet, sk);
890
877 __entry->socket_state = socket->state;891 __entry->socket_state = socket->state;
878 __entry->sock_state = socket->sk->sk_state;892 __entry->sock_state = socket->sk->sk_state;
879 __entry->ino = (unsigned long long)inode->i_ino;893 __entry->ino = (unsigned long long)inode->i_ino;
880 __entry->error = error;894 __entry->error = error;
881 __assign_str(dstaddr,
882 xprt->address_strings[RPC_DISPLAY_ADDR]);
883 __assign_str(dstport,
884 xprt->address_strings[RPC_DISPLAY_PORT]);
885 ),895 ),
886 896
887 TP_printk(897 TP_printk(
888 "error=%d socket:[%llu] dstaddr=%s/%s "898 "error=%d socket:[%llu] srcaddr=%pISpc dstaddr=%pISpc "
889 "state=%u (%s) sk_state=%u (%s)",899 "state=%u (%s) sk_state=%u (%s)",
890 __entry->error,900 __entry->error,
891 __entry->ino, __get_str(dstaddr), __get_str(dstport),901 __entry->ino,
902 __entry->saddr,
903 __entry->daddr,
892 __entry->socket_state,904 __entry->socket_state,
893 rpc_show_socket_state(__entry->socket_state),905 rpc_show_socket_state(__entry->socket_state),
894 __entry->sock_state,906 __entry->sock_state,
@@ -953,7 +965,8 @@ TRACE_EVENT(rpc_socket_nospace, · 58 unmodified lines
953 { BIT(XPRT_REMOVE), "REMOVE" }, \965 { BIT(XPRT_REMOVE), "REMOVE" }, \
954 { BIT(XPRT_CONGESTED), "CONGESTED" }, \966 { BIT(XPRT_CONGESTED), "CONGESTED" }, \
955 { BIT(XPRT_CWND_WAIT), "CWND_WAIT" }, \967 { BIT(XPRT_CWND_WAIT), "CWND_WAIT" }, \
956 { BIT(XPRT_WRITE_SPACE), "WRITE_SPACE" })968 { BIT(XPRT_WRITE_SPACE), "WRITE_SPACE" }, \
969 { BIT(XPRT_SND_IS_COOKIE), "SND_IS_COOKIE" })
957 970
958DECLARE_EVENT_CLASS(rpc_xprt_lifetime_class,971DECLARE_EVENT_CLASS(rpc_xprt_lifetime_class,
959 TP_PROTO(972 TP_PROTO(
@@ -1150,8 +1163,11 @@ DECLARE_EVENT_CLASS(xprt_writelock_event, · 190 unmodified lines
1150 __entry->task_id = -1;1163 __entry->task_id = -1;
1151 __entry->client_id = -1;1164 __entry->client_id = -1;
1152 }1165 }
1153 __entry->snd_task_id = xprt->snd_task ?1166 if (xprt->snd_task &&
1154 xprt->snd_task->tk_pid : -1;1167 !test_bit(XPRT_SND_IS_COOKIE, &xprt->state))
1168 __entry->snd_task_id = xprt->snd_task->tk_pid;
1169 else
1170 __entry->snd_task_id = -1;
1155 ),1171 ),
1156 1172
1157 TP_printk(SUNRPC_TRACE_TASK_SPECIFIER1173 TP_printk(SUNRPC_TRACE_TASK_SPECIFIER
@@ -1196,8 +1212,12 @@ DECLARE_EVENT_CLASS(xprt_cong_event, · 38 unmodified lines
1196 __entry->task_id = -1;1212 __entry->task_id = -1;
1197 __entry->client_id = -1;1213 __entry->client_id = -1;
1198 }1214 }
1199 __entry->snd_task_id = xprt->snd_task ?1215 if (xprt->snd_task &&
1200 xprt->snd_task->tk_pid : -1;1216 !test_bit(XPRT_SND_IS_COOKIE, &xprt->state))
1217 __entry->snd_task_id = xprt->snd_task->tk_pid;
1218 else
1219 __entry->snd_task_id = -1;
1220
1201 __entry->cong = xprt->cong;1221 __entry->cong = xprt->cong;
1202 __entry->cwnd = xprt->cwnd;1222 __entry->cwnd = xprt->cwnd;
1203 __entry->wait = test_bit(XPRT_CWND_WAIT, &xprt->state);1223 __entry->wait = test_bit(XPRT_CWND_WAIT, &xprt->state);
include/trace/perf.h+3−2
@@ -23,8 +23,9 @@ · 22 unmodified lines
23 23
24#undef __get_rel_dynamic_array24#undef __get_rel_dynamic_array
25#define __get_rel_dynamic_array(field) \25#define __get_rel_dynamic_array(field) \
26 ((void *)(&__entry->__rel_loc_##field) + \26 ((void *)__entry + \
27 sizeof(__entry->__rel_loc_##field) + \27 offsetof(typeof(*__entry), __rel_loc_##field) + \
28 sizeof(__entry->__rel_loc_##field) + \
28 (__entry->__rel_loc_##field & 0xffff))29 (__entry->__rel_loc_##field & 0xffff))
29 30
30#undef __get_rel_dynamic_array_len31#undef __get_rel_dynamic_array_len
include/trace/trace_events.h+5−4
@@ -128,7 +128,7 @@ TRACE_MAKE_SYSTEM_STR(); · 127 unmodified lines
128 struct trace_event_raw_##name { \128 struct trace_event_raw_##name { \
129 struct trace_entry ent; \129 struct trace_entry ent; \
130 tstruct \130 tstruct \
131 char __data[0]; \131 char __data[]; \
132 }; \132 }; \
133 \133 \
134 static struct trace_event_class event_class_##name;134 static struct trace_event_class event_class_##name;
@@ -318,9 +318,10 @@ TRACE_MAKE_SYSTEM_STR(); · 183 unmodified lines
318#define __get_str(field) ((char *)__get_dynamic_array(field))318#define __get_str(field) ((char *)__get_dynamic_array(field))
319 319
320#undef __get_rel_dynamic_array320#undef __get_rel_dynamic_array
321#define __get_rel_dynamic_array(field) \321#define __get_rel_dynamic_array(field) \
322 ((void *)(&__entry->__rel_loc_##field) + \322 ((void *)__entry + \
323 sizeof(__entry->__rel_loc_##field) + \323 offsetof(typeof(*__entry), __rel_loc_##field) + \
324 sizeof(__entry->__rel_loc_##field) + \
324 (__entry->__rel_loc_##field & 0xffff))325 (__entry->__rel_loc_##field & 0xffff))
325 326
326#undef __get_rel_dynamic_array_len327#undef __get_rel_dynamic_array_len
include/uapi/linux/cyclades.h+35−0
@@ -0,0 +1,35 @@
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2
3#ifndef _UAPI_LINUX_CYCLADES_H
4#define _UAPI_LINUX_CYCLADES_H
5
6#warning "Support for features provided by this header has been removed"
7#warning "Please consider updating your code"
8
9struct cyclades_monitor {
10 unsigned long int_count;
11 unsigned long char_count;
12 unsigned long char_max;
13 unsigned long char_last;
14};
15
16#define CYGETMON 0x435901
17#define CYGETTHRESH 0x435902
18#define CYSETTHRESH 0x435903
19#define CYGETDEFTHRESH 0x435904
20#define CYSETDEFTHRESH 0x435905
21#define CYGETTIMEOUT 0x435906
22#define CYSETTIMEOUT 0x435907
23#define CYGETDEFTIMEOUT 0x435908
24#define CYSETDEFTIMEOUT 0x435909
25#define CYSETRFLOW 0x43590a
26#define CYGETRFLOW 0x43590b
27#define CYSETRTSDTR_INV 0x43590c
28#define CYGETRTSDTR_INV 0x43590d
29#define CYZSETPOLLCYCLE 0x43590e
30#define CYZGETPOLLCYCLE 0x43590f
31#define CYGETCD1400VER 0x435910
32#define CYSETWAIT 0x435912
33#define CYGETWAIT 0x435913
34
35#endif /* _UAPI_LINUX_CYCLADES_H */
include/uapi/linux/kvm.h+1−0
@@ -1133,6 +1133,7 @@ struct kvm_ppc_resize_hpt { · 1132 unmodified lines
1133#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 2061133#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
1134#define KVM_CAP_VM_GPA_BITS 2071134#define KVM_CAP_VM_GPA_BITS 207
1135#define KVM_CAP_XSAVE2 2081135#define KVM_CAP_XSAVE2 208
1136#define KVM_CAP_SYS_ATTRIBUTES 209
1136 1137
1137#ifdef KVM_CAP_IRQ_ROUTING1138#ifdef KVM_CAP_IRQ_ROUTING
1138 1139

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t