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
12581258 void disk_end_io_acct(struct gendisk *disk, unsigned int op,
12591259 unsigned long start_time);
12601260
1261+void bio_start_io_acct_time(struct bio *bio, unsigned long start_time);
12611262 unsigned long bio_start_io_acct(struct bio *bio);
12621263 void bio_end_io_acct_remapped(struct bio *bio, unsigned long start_time,
12631264 struct block_device *orig_bdev);
include/linux/ethtool.h+1−1
@@ -111,7 +111,7 @@ struct ethtool_link_ext_state_info { · 110 unmodified lines
111111 enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity;
112112 enum ethtool_link_ext_substate_cable_issue cable_issue;
113113 enum ethtool_link_ext_substate_module module;
114− u8 __link_ext_substate;
114+ u32 __link_ext_substate;
115115 };
116116 };
117117
include/linux/fsnotify.h+43−6
@@ -224,6 +224,43 @@ static inline void fsnotify_link(struct inode *dir, struct inode *inode, · 223 unmodified lines
224224 dir, &new_dentry->d_name, 0);
225225 }
226226
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+ */
235+static 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+ */
254+static 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+
227264 /*
228265 * fsnotify_unlink - 'name' was unlinked
229266 *
@@ -231,10 +268,10 @@ static inline void fsnotify_link(struct inode *dir, struct inode *inode, · 1 unmodified line
231268 */
232269 static inline void fsnotify_unlink(struct inode *dir, struct dentry *dentry)
233270 {
234− /* Expected to be called before d_delete() */
235− WARN_ON_ONCE(d_is_negative(dentry));
271+ if (WARN_ON_ONCE(d_is_negative(dentry)))
272+ return;
236273
237− fsnotify_dirent(dir, dentry, FS_DELETE);
274+ fsnotify_delete(dir, d_inode(dentry), dentry);
238275 }
239276
240277 /*
@@ -258,10 +295,10 @@ static inline void fsnotify_mkdir(struct inode *dir, struct dentry *dentry) · 17 unmodified lines
258295 */
259296 static inline void fsnotify_rmdir(struct inode *dir, struct dentry *dentry)
260297 {
261− /* Expected to be called before d_delete() */
262− WARN_ON_ONCE(d_is_negative(dentry));
298+ if (WARN_ON_ONCE(d_is_negative(dentry)))
299+ return;
263300
264− fsnotify_dirent(dir, dentry, FS_DELETE | FS_ISDIR);
301+ fsnotify_delete(dir, d_inode(dentry), dentry);
265302 }
266303
267304 /*
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
8080 unsigned long *set_kern_flags)
8181 LSM_HOOK(int, 0, move_mount, const struct path *from_path,
8282 const struct path *to_path)
83−LSM_HOOK(int, 0, dentry_init_security, struct dentry *dentry,
83+LSM_HOOK(int, -EOPNOTSUPP, dentry_init_security, struct dentry *dentry,
8484 int mode, const struct qstr *name, const char **xattr_name,
8585 void **ctx, u32 *ctxlen)
8686 LSM_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
15061506
15071507 static inline void page_kasan_tag_set(struct page *page, u8 tag)
15081508 {
1509− if (kasan_enabled()) {
1510− tag ^= 0xff;
1511− page->flags &= ~(KASAN_TAG_MASK << KASAN_TAG_PGSHIFT);
1512− page->flags |= (tag & KASAN_TAG_MASK) << KASAN_TAG_PGSHIFT;
1513− }
1509+ unsigned long old_flags, flags;
1510+
1511+ if (!kasan_enabled())
1512+ return;
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)));
15141521 }
15151522
15161523 static 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
261261 static_assert(offsetof(struct page, pg) == offsetof(struct folio, fl))
262262 FOLIO_MATCH(flags, flags);
263263 FOLIO_MATCH(lru, lru);
264+FOLIO_MATCH(mapping, mapping);
264265 FOLIO_MATCH(compound_head, lru);
265266 FOLIO_MATCH(index, index);
266267 FOLIO_MATCH(private, private);
include/linux/netdevice.h+1−0
@@ -2548,6 +2548,7 @@ struct packet_type { · 2547 unmodified lines
25482548 struct net_device *);
25492549 bool (*id_match)(struct packet_type *ptype,
25502550 struct sock *sk);
2551+ struct net *af_packet_net;
25512552 void *af_packet_priv;
25522553 struct list_head list;
25532554 };
include/linux/nfs_fs.h+6−4
@@ -61,7 +61,9 @@ · 60 unmodified lines
6161 struct nfs_access_entry {
6262 struct rb_node rb_node;
6363 struct list_head lru;
64− const struct cred * cred;
64+ kuid_t fsuid;
65+ kgid_t fsgid;
66+ struct group_info *group_info;
6567 __u32 mask;
6668 struct rcu_head rcu_head;
6769 };
@@ -395,7 +397,7 @@ extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fa · 327 unmodified lines
395397 extern int nfs_post_op_update_inode_force_wcc_locked(struct inode *inode, struct nfs_fattr *fattr);
396398 extern int nfs_getattr(struct user_namespace *, const struct path *,
397399 struct kstat *, u32, unsigned int);
398−extern void nfs_access_add_cache(struct inode *, struct nfs_access_entry *);
400+extern void nfs_access_add_cache(struct inode *, struct nfs_access_entry *, const struct cred *);
399401 extern void nfs_access_set_mask(struct nfs_access_entry *, u32);
400402 extern int nfs_permission(struct user_namespace *, struct inode *, int);
401403 extern 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
532534 struct nfs_fattr *fattr);
533535 extern int nfs_may_open(struct inode *inode, const struct cred *cred, int openflags);
534536 extern void nfs_access_zap_cache(struct inode *inode);
535−extern int nfs_access_get_cached(struct inode *inode, const struct cred *cred, struct nfs_access_entry *res,
536− bool may_block);
537+extern int nfs_access_get_cached(struct inode *inode, const struct cred *cred,
538+ u32 *mask, bool may_block);
537539
538540 /*
539541 * linux/fs/nfs/symlink.c
include/linux/nfs_fs_sb.h+3−1
@@ -266,6 +266,8 @@ struct nfs_server { · 265 unmodified lines
266266 #define NFS_CAP_ACLS (1U << 3)
267267 #define NFS_CAP_ATOMIC_OPEN (1U << 4)
268268 #define NFS_CAP_LGOPEN (1U << 5)
269+#define NFS_CAP_CASE_INSENSITIVE (1U << 6)
270+#define NFS_CAP_CASE_PRESERVING (1U << 7)
269271 #define NFS_CAP_POSIX_LOCK (1U << 14)
270272 #define NFS_CAP_UIDGID_NOMAP (1U << 15)
271273 #define NFS_CAP_STATEID_NFSV41 (1U << 16)
@@ -282,5 +284,5 @@ struct nfs_server { · 10 unmodified lines
282284 #define NFS_CAP_COPY_NOTIFY (1U << 27)
283285 #define NFS_CAP_XATTR (1U << 28)
284286 #define NFS_CAP_READ_PLUS (1U << 29)
285−
287+#define NFS_CAP_FS_LOCATIONS (1U << 30)
286288 #endif
include/linux/nfs_xdr.h+4−1
@@ -1194,6 +1194,8 @@ struct nfs4_server_caps_res { · 1193 unmodified lines
11941194 u32 has_links;
11951195 u32 has_symlinks;
11961196 u32 fh_expire_type;
1197+ u32 case_insensitive;
1198+ u32 case_preserving;
11971199 };
11981200
11991201 #define NFS4_PATHNAME_MAXCOMPONENTS 512
@@ -1737,7 +1739,7 @@ struct nfs_rpc_ops { · 537 unmodified lines
17371739 struct nfs_fh *, struct nfs_fattr *);
17381740 int (*lookupp) (struct inode *, struct nfs_fh *,
17391741 struct nfs_fattr *);
1740− int (*access) (struct inode *, struct nfs_access_entry *);
1742+ int (*access) (struct inode *, struct nfs_access_entry *, const struct cred *);
17411743 int (*readlink)(struct inode *, struct page *, unsigned int,
17421744 unsigned int);
17431745 int (*create) (struct inode *, struct dentry *,
@@ -1795,6 +1797,7 @@ struct nfs_rpc_ops { · 51 unmodified lines
17951797 struct nfs_server *(*create_server)(struct fs_context *);
17961798 struct nfs_server *(*clone_server)(struct nfs_server *, struct nfs_fh *,
17971799 struct nfs_fattr *, rpc_authflavor_t);
1800+ int (*discover_trunking)(struct nfs_server *, struct nfs_fh *);
17981801 };
17991802
18001803 /*
include/linux/perf_event.h+3−12
@@ -693,18 +693,6 @@ struct perf_event { · 692 unmodified lines
693693 u64 total_time_running;
694694 u64 tstamp;
695695
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−
708696 struct perf_event_attr attr;
709697 u16 header_size;
710698 u16 id_header_size;
@@ -852,6 +840,7 @@ struct perf_event_context { · 141 unmodified lines
852840 */
853841 u64 time;
854842 u64 timestamp;
843+ u64 timeoffset;
855844
856845 /*
857846 * These fields let us detect when two contexts have both
@@ -934,6 +923,8 @@ struct bpf_perf_event_data_kern { · 76 unmodified lines
934923 struct perf_cgroup_info {
935924 u64 time;
936925 u64 timestamp;
926+ u64 timeoffset;
927+ int active;
937928 };
938929
939930 struct 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
8686 void pidhash_init(void);
8787 void pid_idr_init(void);
8888
89+static 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+
8994 #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
2525 void psi_memstall_leave(unsigned long *flags);
2626
2727 int psi_show(struct seq_file *s, struct psi_group *group, enum psi_res res);
28−
29−#ifdef CONFIG_CGROUPS
30−int psi_cgroup_alloc(struct cgroup *cgrp);
31−void psi_cgroup_free(struct cgroup *cgrp);
32−void cgroup_move_task(struct task_struct *p, struct css_set *to);
33−
3428 struct psi_trigger *psi_trigger_create(struct psi_group *group,
3529 char *buf, size_t nbytes, enum psi_res res);
36−void psi_trigger_replace(void **trigger_ptr, struct psi_trigger *t);
30+void psi_trigger_destroy(struct psi_trigger *t);
3731
3832 __poll_t psi_trigger_poll(void **trigger_ptr, struct file *file,
3933 poll_table *wait);
34+
35+#ifdef CONFIG_CGROUPS
36+int psi_cgroup_alloc(struct cgroup *cgrp);
37+void psi_cgroup_free(struct cgroup *cgrp);
38+void cgroup_move_task(struct task_struct *p, struct css_set *to);
4039 #endif
4140
4241 #else /* CONFIG_PSI */
include/linux/psi_types.h+0−3
@@ -141,9 +141,6 @@ struct psi_trigger { · 140 unmodified lines
141141 * events to one per window
142142 */
143143 u64 last_event_time;
144−
145− /* Refcounting to prevent premature destruction */
146− struct kref refcount;
147144 };
148145
149146 struct psi_group {
include/linux/quota.h+1−1
@@ -91,7 +91,7 @@ extern bool qid_valid(struct kqid qid); · 90 unmodified lines
9191 *
9292 * When there is no mapping defined for the user-namespace, type,
9393 * 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.
9595 * Invalid kqids may be tested for using qid_valid().
9696 */
9797 static 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
619619 * task has to wait for a replenishment to be performed at the
620620 * next firing of dl_timer.
621621 *
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− *
626622 * @dl_yielded tells if task gave up the CPU before consuming
627623 * all its available runtime during the last job.
628624 *
include/linux/skbuff.h+1−1
@@ -318,7 +318,7 @@ enum skb_drop_reason { · 317 unmodified lines
318318 SKB_DROP_REASON_NO_SOCKET,
319319 SKB_DROP_REASON_PKT_TOO_SMALL,
320320 SKB_DROP_REASON_TCP_CSUM,
321− SKB_DROP_REASON_TCP_FILTER,
321+ SKB_DROP_REASON_SOCKET_FILTER,
322322 SKB_DROP_REASON_UDP_CSUM,
323323 SKB_DROP_REASON_MAX,
324324 };
include/linux/suspend.h+1−10
@@ -430,15 +430,7 @@ struct platform_hibernation_ops { · 429 unmodified lines
430430
431431 #ifdef CONFIG_HIBERNATION
432432 /* kernel/power/snapshot.c */
433−extern void __register_nosave_region(unsigned long b, unsigned long e, int km);
434−static inline void __init register_nosave_region(unsigned long b, unsigned long e)
435−{
436− __register_nosave_region(b, e, 0);
437−}
438−static inline void __init register_nosave_region_late(unsigned long b, unsigned long e)
439−{
440− __register_nosave_region(b, e, 1);
441−}
433+extern void register_nosave_region(unsigned long b, unsigned long e);
442434 extern int swsusp_page_is_forbidden(struct page *);
443435 extern void swsusp_set_page_free(struct page *);
444436 extern void swsusp_unset_page_free(struct page *);
@@ -458,7 +450,6 @@ int pfn_is_nosave(unsigned long pfn); · 13 unmodified lines
458450 int hibernate_quiet_exec(int (*func)(void *data), void *data);
459451 #else /* CONFIG_HIBERNATION */
460452 static inline void register_nosave_region(unsigned long b, unsigned long e) {}
461−static inline void register_nosave_region_late(unsigned long b, unsigned long e) {}
462453 static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }
463454 static inline void swsusp_set_page_free(struct page *p) {}
464455 static 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
265265 return NULL;
266266 }
267267
268−static inline struct sysctl_header *register_sysctl_mount_point(const char *path)
268+static inline struct ctl_table_header *register_sysctl_mount_point(const char *path)
269269 {
270270 return NULL;
271271 }
include/linux/usb/role.h+6−0
@@ -91,6 +91,12 @@ fwnode_usb_role_switch_get(struct fwnode_handle *node) · 90 unmodified lines
9191
9292 static inline void usb_role_switch_put(struct usb_role_switch *sw) { }
9393
94+static inline struct usb_role_switch *
95+usb_role_switch_find_by_fwnode(const struct fwnode_handle *fwnode)
96+{
97+ return NULL;
98+}
99+
94100 static inline struct usb_role_switch *
95101 usb_role_switch_register(struct device *parent,
96102 const struct usb_role_switch_desc *desc)
include/net/addrconf.h+2−0
@@ -6,6 +6,8 @@ · 5 unmodified lines
66 #define RTR_SOLICITATION_INTERVAL (4*HZ)
77 #define RTR_SOLICITATION_MAX_INTERVAL (3600*HZ) /* 1 hour */
88
9+#define MIN_VALID_LIFETIME (2*3600) /* 2 hours */
10+
911 #define TEMP_VALID_LIFETIME (7*86400)
1012 #define TEMP_PREFERRED_LIFETIME (86400)
1113 #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
346346
347347 static inline struct net_device *bond_option_active_slave_get_rcu(struct bonding *bond)
348348 {
349− struct slave *slave = rcu_dereference(bond->curr_active_slave);
349+ struct slave *slave = rcu_dereference_rtnl(bond->curr_active_slave);
350350
351351 return bond_uses_primary(bond) && slave ? slave->dev : NULL;
352352 }
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
525525 {
526526 struct iphdr *iph = ip_hdr(skb);
527527
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+ }
528536 if ((iph->frag_off & htons(IP_DF)) && !skb->ignore_df) {
529− /* This is only to work around buggy Windows95/2000
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− }
537+ iph->id = 0;
540538 } else {
539+ /* Unfortunately we need the big hammer to get a suitable IPID */
541540 __ip_select_ident(net, iph, segs);
542541 }
543542 }
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
282282 fn = rcu_dereference(f6i->fib6_node);
283283
284284 if (fn) {
285− *cookie = fn->fn_sernum;
285+ *cookie = READ_ONCE(fn->fn_sernum);
286286 /* pairs with smp_wmb() in __fib6_update_sernum_upto_root() */
287287 smp_rmb();
288288 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
370370 {
371371 struct neighbour *neigh;
372372
373− neigh = __ipv4_neigh_lookup_noref(dev, daddr);
373+ neigh = __ipv4_neigh_lookup_noref(dev, (__force u32)daddr);
374374 if (unlikely(!neigh))
375375 neigh = __neigh_create(&arp_tbl, &daddr, dev, false);
376376
include/net/tcp.h+4−0
@@ -1369,6 +1369,7 @@ static inline bool tcp_checksum_complete(struct sk_buff *skb) · 1368 unmodified lines
13691369
13701370 bool tcp_add_backlog(struct sock *sk, struct sk_buff *skb);
13711371
1372+#ifdef CONFIG_INET
13721373 void __sk_defer_free_flush(struct sock *sk);
13731374
13741375 static 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
13771378 return;
13781379 __sk_defer_free_flush(sk);
13791380 }
1381+#else
1382+static inline void sk_defer_free_flush(struct sock *sk) {}
1383+#endif
13801384
13811385 int tcp_filter(struct sock *sk, struct sk_buff *skb);
13821386 void tcp_set_state(struct sock *sk, int state);
include/trace/events/skb.h+1−1
@@ -14,7 +14,7 @@ · 13 unmodified lines
1414 EM(SKB_DROP_REASON_NO_SOCKET, NO_SOCKET) \
1515 EM(SKB_DROP_REASON_PKT_TOO_SMALL, PKT_TOO_SMALL) \
1616 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) \
1818 EM(SKB_DROP_REASON_UDP_CSUM, UDP_CSUM) \
1919 EMe(SKB_DROP_REASON_MAX, MAX)
2020
include/trace/events/sunrpc.h+45−25
@@ -794,6 +794,9 @@ RPC_SHOW_SOCKET · 793 unmodified lines
794794
795795 RPC_SHOW_SOCK
796796
797+
798+#include <trace/events/net_probe_common.h>
799+
797800 /*
798801 * Now redefine the EM() and EMe() macros to map the enums to the strings
799802 * that will be printed in the output.
@@ -816,27 +819,32 @@ DECLARE_EVENT_CLASS(xs_socket_event, · 16 unmodified lines
816819 __field(unsigned int, socket_state)
817820 __field(unsigned int, sock_state)
818821 __field(unsigned long long, ino)
819− __string(dstaddr,
820− xprt->address_strings[RPC_DISPLAY_ADDR])
821− __string(dstport,
822− xprt->address_strings[RPC_DISPLAY_PORT])
822+ __array(__u8, saddr, sizeof(struct sockaddr_in6))
823+ __array(__u8, daddr, sizeof(struct sockaddr_in6))
823824 ),
824825
825826 TP_fast_assign(
826827 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+
827836 __entry->socket_state = socket->state;
828837 __entry->sock_state = socket->sk->sk_state;
829838 __entry->ino = (unsigned long long)inode->i_ino;
830− __assign_str(dstaddr,
831− xprt->address_strings[RPC_DISPLAY_ADDR]);
832− __assign_str(dstport,
833− xprt->address_strings[RPC_DISPLAY_PORT]);
839+
834840 ),
835841
836842 TP_printk(
837− "socket:[%llu] dstaddr=%s/%s "
843+ "socket:[%llu] srcaddr=%pISpc dstaddr=%pISpc "
838844 "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,
840848 __entry->socket_state,
841849 rpc_show_socket_state(__entry->socket_state),
842850 __entry->sock_state,
@@ -866,29 +874,33 @@ DECLARE_EVENT_CLASS(xs_socket_event_done, · 23 unmodified lines
866874 __field(unsigned int, socket_state)
867875 __field(unsigned int, sock_state)
868876 __field(unsigned long long, ino)
869− __string(dstaddr,
870− xprt->address_strings[RPC_DISPLAY_ADDR])
871− __string(dstport,
872− xprt->address_strings[RPC_DISPLAY_PORT])
877+ __array(__u8, saddr, sizeof(struct sockaddr_in6))
878+ __array(__u8, daddr, sizeof(struct sockaddr_in6))
873879 ),
874880
875881 TP_fast_assign(
876882 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+
877891 __entry->socket_state = socket->state;
878892 __entry->sock_state = socket->sk->sk_state;
879893 __entry->ino = (unsigned long long)inode->i_ino;
880894 __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]);
885895 ),
886896
887897 TP_printk(
888− "error=%d socket:[%llu] dstaddr=%s/%s "
898+ "error=%d socket:[%llu] srcaddr=%pISpc dstaddr=%pISpc "
889899 "state=%u (%s) sk_state=%u (%s)",
890900 __entry->error,
891− __entry->ino, __get_str(dstaddr), __get_str(dstport),
901+ __entry->ino,
902+ __entry->saddr,
903+ __entry->daddr,
892904 __entry->socket_state,
893905 rpc_show_socket_state(__entry->socket_state),
894906 __entry->sock_state,
@@ -953,7 +965,8 @@ TRACE_EVENT(rpc_socket_nospace, · 58 unmodified lines
953965 { BIT(XPRT_REMOVE), "REMOVE" }, \
954966 { BIT(XPRT_CONGESTED), "CONGESTED" }, \
955967 { 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" })
957970
958971 DECLARE_EVENT_CLASS(rpc_xprt_lifetime_class,
959972 TP_PROTO(
@@ -1150,8 +1163,11 @@ DECLARE_EVENT_CLASS(xprt_writelock_event, · 190 unmodified lines
11501163 __entry->task_id = -1;
11511164 __entry->client_id = -1;
11521165 }
1153− __entry->snd_task_id = xprt->snd_task ?
1154− xprt->snd_task->tk_pid : -1;
1166+ if (xprt->snd_task &&
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;
11551171 ),
11561172
11571173 TP_printk(SUNRPC_TRACE_TASK_SPECIFIER
@@ -1196,8 +1212,12 @@ DECLARE_EVENT_CLASS(xprt_cong_event, · 38 unmodified lines
11961212 __entry->task_id = -1;
11971213 __entry->client_id = -1;
11981214 }
1199− __entry->snd_task_id = xprt->snd_task ?
1200− xprt->snd_task->tk_pid : -1;
1215+ if (xprt->snd_task &&
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+
12011221 __entry->cong = xprt->cong;
12021222 __entry->cwnd = xprt->cwnd;
12031223 __entry->wait = test_bit(XPRT_CWND_WAIT, &xprt->state);
include/trace/perf.h+3−2
@@ -23,8 +23,9 @@ · 22 unmodified lines
2323
2424 #undef __get_rel_dynamic_array
2525 #define __get_rel_dynamic_array(field) \
26− ((void *)(&__entry->__rel_loc_##field) + \
27− sizeof(__entry->__rel_loc_##field) + \
26+ ((void *)__entry + \
27+ offsetof(typeof(*__entry), __rel_loc_##field) + \
28+ sizeof(__entry->__rel_loc_##field) + \
2829 (__entry->__rel_loc_##field & 0xffff))
2930
3031 #undef __get_rel_dynamic_array_len
include/trace/trace_events.h+5−4
@@ -128,7 +128,7 @@ TRACE_MAKE_SYSTEM_STR(); · 127 unmodified lines
128128 struct trace_event_raw_##name { \
129129 struct trace_entry ent; \
130130 tstruct \
131− char __data[0]; \
131+ char __data[]; \
132132 }; \
133133 \
134134 static struct trace_event_class event_class_##name;
@@ -318,9 +318,10 @@ TRACE_MAKE_SYSTEM_STR(); · 183 unmodified lines
318318 #define __get_str(field) ((char *)__get_dynamic_array(field))
319319
320320 #undef __get_rel_dynamic_array
321−#define __get_rel_dynamic_array(field) \
322− ((void *)(&__entry->__rel_loc_##field) + \
323− sizeof(__entry->__rel_loc_##field) + \
321+#define __get_rel_dynamic_array(field) \
322+ ((void *)__entry + \
323+ offsetof(typeof(*__entry), __rel_loc_##field) + \
324+ sizeof(__entry->__rel_loc_##field) + \
324325 (__entry->__rel_loc_##field & 0xffff))
325326
326327 #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+
9+struct 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
11331133 #define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
11341134 #define KVM_CAP_VM_GPA_BITS 207
11351135 #define KVM_CAP_XSAVE2 208
1136+#define KVM_CAP_SYS_ATTRIBUTES 209
11361137
11371138 #ifdef KVM_CAP_IRQ_ROUTING
11381139

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