History

Merge tag 'v5.17-rc5' into sched/core, to resolve conflicts

New conflicts in sched/core due to the following upstream fixes: 44585f7bc0cb ("psi: fix "defined but not used" warnings when CONFIG_PROC_FS=n") a06247c6804f ("psi: Fix uaf issue when psi trigger is destroyed while being polled") Conflicts: include/linux/psi_types.h kernel/sched/psi.c

Ingo Molnar committed 4 years ago

Commit 6255b482 parents 1b2d345 cfb92441212 files · +13287 −6877Browse files

Showing the changes to include (67 of 1212 files). Show all

Unified · Split

67 files
  1. include/crypto/internal/blake2s.h +25 −15
  2. include/dt-bindings/clock/dra7.h +7 −7
  3. include/linux/ata.h +1 −1
  4. include/linux/blkdev.h +3 −1
  5. include/linux/ceph/libceph.h +1 −0
  6. include/linux/ceph/messenger.h +5 −0
  7. include/linux/compiler.h +5 −16
  8. include/linux/ethtool.h +1 −1
  9. include/linux/fb.h +1 −1
  10. include/linux/fs.h +1 −1
  11. include/linux/fsnotify.h +43 −6
  12. include/linux/hyperv.h +1 −0
  13. include/linux/if_vlan.h +4 −2
  14. include/linux/iomap.h +2 −0
  15. include/linux/jbd2.h +4 −9
  16. include/linux/kfence.h +2 −0
  17. include/linux/kvm_host.h +109 −3
  18. include/linux/libata.h +1 −0
  19. include/linux/lsm_hook_defs.h +1 −1
  20. include/linux/memcontrol.h +3 −2
  21. include/linux/mm.h +12 −5
  22. include/linux/mm_types.h +1 −0
  23. include/linux/netdevice.h +2 −1
  24. include/linux/netfs.h +7 −0
  25. include/linux/nfs.h +0 −8
  26. include/linux/nfs_fs.h +7 −4
  27. include/linux/nfs_fs_sb.h +3 −1
  28. include/linux/nfs_xdr.h +4 −1
  29. include/linux/page_table_check.h +19 −0
  30. include/linux/perf_event.h +3 −12
  31. include/linux/pgtable.h +1 −0
  32. include/linux/pid_namespace.h +5 −0
  33. include/linux/psi.h +1 −1
  34. include/linux/psi_types.h +0 −3
  35. include/linux/quota.h +1 −1
  36. include/linux/sched.h +0 −5
  37. include/linux/sched/task.h +2 −2
  38. include/linux/skbuff.h +1 −1
  39. include/linux/suspend.h +3 −12
  40. include/linux/sysctl.h +1 −1
  41. include/linux/usb/role.h +6 −0
  42. include/net/addrconf.h +2 −2
  43. include/net/ax25.h +12 −0
  44. include/net/bond_3ad.h +1 −1
  45. include/net/bonding.h +1 −1
  46. include/net/dsa.h +1 −0
  47. include/net/dst_metadata.h +13 −1
  48. include/net/ip.h +10 −11
  49. include/net/ip6_fib.h +7 −5
  50. include/net/ipv6.h +4 −1
  51. include/net/neighbour.h +13 −5
  52. include/net/netns/ipv6.h +2 −1
  53. include/net/route.h +1 −1
  54. include/net/tcp.h +4 −0
  55. include/sound/pcm.h +15 −0
  56. include/trace/events/skb.h +1 −1
  57. include/trace/events/sunrpc.h +45 −25
  58. include/trace/perf.h +3 −2
  59. include/trace/trace_events.h +5 −4
  60. include/uapi/linux/cyclades.h +35 −0
  61. include/uapi/linux/kvm.h +4 −3
  62. include/uapi/linux/netfilter/nf_conntrack_common.h +1 −1
  63. include/uapi/linux/perf_event.h +2 −0
  64. include/uapi/linux/smc_diag.h +5 −6
  65. include/uapi/sound/asound.h +3 −1
  66. include/uapi/xen/gntdev.h +7 −1
  67. include/xen/xenbus_dev.h +0 −2
include/crypto/internal/blake2s.h+25−15
@@ -24,14 +24,11 @@ static inline void blake2s_set_lastblock(struct blake2s_state *state) · 23 unmodified lines
24 state->f[0] = -1;24 state->f[0] = -1;
25}25}
26 26
27typedef void (*blake2s_compress_t)(struct blake2s_state *state,
28 const u8 *block, size_t nblocks, u32 inc);
29
30/* Helper functions for BLAKE2s shared by the library and shash APIs */27/* Helper functions for BLAKE2s shared by the library and shash APIs */
31 28
32static inline void __blake2s_update(struct blake2s_state *state,29static __always_inline void
33 const u8 *in, size_t inlen,30__blake2s_update(struct blake2s_state *state, const u8 *in, size_t inlen,
34 blake2s_compress_t compress)31 bool force_generic)
35{32{
36 const size_t fill = BLAKE2S_BLOCK_SIZE - state->buflen;33 const size_t fill = BLAKE2S_BLOCK_SIZE - state->buflen;
37 34
@@ -39,7 +36,12 @@ static inline void __blake2s_update(struct blake2s_state *state, · 1 unmodified line
39 return;36 return;
40 if (inlen > fill) {37 if (inlen > fill) {
41 memcpy(state->buf + state->buflen, in, fill);38 memcpy(state->buf + state->buflen, in, fill);
42 (*compress)(state, state->buf, 1, BLAKE2S_BLOCK_SIZE);39 if (force_generic)
40 blake2s_compress_generic(state, state->buf, 1,
41 BLAKE2S_BLOCK_SIZE);
42 else
43 blake2s_compress(state, state->buf, 1,
44 BLAKE2S_BLOCK_SIZE);
43 state->buflen = 0;45 state->buflen = 0;
44 in += fill;46 in += fill;
45 inlen -= fill;47 inlen -= fill;
@@ -47,7 +49,12 @@ static inline void __blake2s_update(struct blake2s_state *state, · 1 unmodified line
47 if (inlen > BLAKE2S_BLOCK_SIZE) {49 if (inlen > BLAKE2S_BLOCK_SIZE) {
48 const size_t nblocks = DIV_ROUND_UP(inlen, BLAKE2S_BLOCK_SIZE);50 const size_t nblocks = DIV_ROUND_UP(inlen, BLAKE2S_BLOCK_SIZE);
49 /* Hash one less (full) block than strictly possible */51 /* Hash one less (full) block than strictly possible */
50 (*compress)(state, in, nblocks - 1, BLAKE2S_BLOCK_SIZE);52 if (force_generic)
53 blake2s_compress_generic(state, in, nblocks - 1,
54 BLAKE2S_BLOCK_SIZE);
55 else
56 blake2s_compress(state, in, nblocks - 1,
57 BLAKE2S_BLOCK_SIZE);
51 in += BLAKE2S_BLOCK_SIZE * (nblocks - 1);58 in += BLAKE2S_BLOCK_SIZE * (nblocks - 1);
52 inlen -= BLAKE2S_BLOCK_SIZE * (nblocks - 1);59 inlen -= BLAKE2S_BLOCK_SIZE * (nblocks - 1);
53 }60 }
@@ -55,13 +62,16 @@ static inline void __blake2s_update(struct blake2s_state *state, · 1 unmodified line
55 state->buflen += inlen;62 state->buflen += inlen;
56}63}
57 64
58static inline void __blake2s_final(struct blake2s_state *state, u8 *out,65static __always_inline void
59 blake2s_compress_t compress)66__blake2s_final(struct blake2s_state *state, u8 *out, bool force_generic)
60{67{
61 blake2s_set_lastblock(state);68 blake2s_set_lastblock(state);
62 memset(state->buf + state->buflen, 0,69 memset(state->buf + state->buflen, 0,
63 BLAKE2S_BLOCK_SIZE - state->buflen); /* Padding */70 BLAKE2S_BLOCK_SIZE - state->buflen); /* Padding */
64 (*compress)(state, state->buf, 1, state->buflen);71 if (force_generic)
72 blake2s_compress_generic(state, state->buf, 1, state->buflen);
73 else
74 blake2s_compress(state, state->buf, 1, state->buflen);
65 cpu_to_le32_array(state->h, ARRAY_SIZE(state->h));75 cpu_to_le32_array(state->h, ARRAY_SIZE(state->h));
66 memcpy(out, state->h, state->outlen);76 memcpy(out, state->h, state->outlen);
67}77}
@@ -99,20 +109,20 @@ static inline int crypto_blake2s_init(struct shash_desc *desc) · 31 unmodified lines
99 109
100static inline int crypto_blake2s_update(struct shash_desc *desc,110static inline int crypto_blake2s_update(struct shash_desc *desc,
101 const u8 *in, unsigned int inlen,111 const u8 *in, unsigned int inlen,
102 blake2s_compress_t compress)112 bool force_generic)
103{113{
104 struct blake2s_state *state = shash_desc_ctx(desc);114 struct blake2s_state *state = shash_desc_ctx(desc);
105 115
106 __blake2s_update(state, in, inlen, compress);116 __blake2s_update(state, in, inlen, force_generic);
107 return 0;117 return 0;
108}118}
109 119
110static inline int crypto_blake2s_final(struct shash_desc *desc, u8 *out,120static inline int crypto_blake2s_final(struct shash_desc *desc, u8 *out,
111 blake2s_compress_t compress)121 bool force_generic)
112{122{
113 struct blake2s_state *state = shash_desc_ctx(desc);123 struct blake2s_state *state = shash_desc_ctx(desc);
114 124
115 __blake2s_final(state, out, compress);125 __blake2s_final(state, out, force_generic);
116 return 0;126 return 0;
117}127}
118 128
include/dt-bindings/clock/dra7.h+7−7
@@ -84,17 +84,10 @@ · 83 unmodified lines
84#define DRA7_L3_MAIN_2_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)84#define DRA7_L3_MAIN_2_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
85#define DRA7_L3_INSTR_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)85#define DRA7_L3_INSTR_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
86 86
87/* iva clocks */
88#define DRA7_IVA_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
89#define DRA7_SL2IF_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
90
91/* dss clocks */87/* dss clocks */
92#define DRA7_DSS_CORE_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)88#define DRA7_DSS_CORE_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
93#define DRA7_BB2D_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)89#define DRA7_BB2D_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)
94 90
95/* gpu clocks */
96#define DRA7_GPU_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
97
98/* l3init clocks */91/* l3init clocks */
99#define DRA7_MMC1_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)92#define DRA7_MMC1_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
100#define DRA7_MMC2_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)93#define DRA7_MMC2_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)
@@ -267,10 +260,17 @@ · 166 unmodified lines
267#define DRA7_L3INSTR_L3_MAIN_2_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)260#define DRA7_L3INSTR_L3_MAIN_2_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
268#define DRA7_L3INSTR_L3_INSTR_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)261#define DRA7_L3INSTR_L3_INSTR_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
269 262
263/* iva clocks */
264#define DRA7_IVA_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
265#define DRA7_SL2IF_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
266
270/* dss clocks */267/* dss clocks */
271#define DRA7_DSS_DSS_CORE_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)268#define DRA7_DSS_DSS_CORE_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
272#define DRA7_DSS_BB2D_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)269#define DRA7_DSS_BB2D_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)
273 270
271/* gpu clocks */
272#define DRA7_GPU_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
273
274/* l3init clocks */274/* l3init clocks */
275#define DRA7_L3INIT_MMC1_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)275#define DRA7_L3INIT_MMC1_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
276#define DRA7_L3INIT_MMC2_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)276#define DRA7_L3INIT_MMC2_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)
include/linux/ata.h+1−1
@@ -324,12 +324,12 @@ enum { · 323 unmodified lines
324 ATA_LOG_NCQ_NON_DATA = 0x12,324 ATA_LOG_NCQ_NON_DATA = 0x12,
325 ATA_LOG_NCQ_SEND_RECV = 0x13,325 ATA_LOG_NCQ_SEND_RECV = 0x13,
326 ATA_LOG_IDENTIFY_DEVICE = 0x30,326 ATA_LOG_IDENTIFY_DEVICE = 0x30,
327 ATA_LOG_CONCURRENT_POSITIONING_RANGES = 0x47,
327 328
328 /* Identify device log pages: */329 /* Identify device log pages: */
329 ATA_LOG_SECURITY = 0x06,330 ATA_LOG_SECURITY = 0x06,
330 ATA_LOG_SATA_SETTINGS = 0x08,331 ATA_LOG_SATA_SETTINGS = 0x08,
331 ATA_LOG_ZONED_INFORMATION = 0x09,332 ATA_LOG_ZONED_INFORMATION = 0x09,
332 ATA_LOG_CONCURRENT_POSITIONING_RANGES = 0x47,
333 333
334 /* Identify device SATA settings log:*/334 /* Identify device SATA settings log:*/
335 ATA_LOG_DEVSLP_OFFSET = 0x30,335 ATA_LOG_DEVSLP_OFFSET = 0x30,
include/linux/blkdev.h+3−1
@@ -748,7 +748,8 @@ extern bool blk_queue_can_use_dma_map_merging(struct request_queue *q, · 747 unmodified lines
748 748
749bool __must_check blk_get_queue(struct request_queue *);749bool __must_check blk_get_queue(struct request_queue *);
750extern void blk_put_queue(struct request_queue *);750extern void blk_put_queue(struct request_queue *);
751extern void blk_set_queue_dying(struct request_queue *);751
752void blk_mark_disk_dead(struct gendisk *disk);
752 753
753#ifdef CONFIG_BLOCK754#ifdef CONFIG_BLOCK
754/*755/*
@@ -1258,6 +1259,7 @@ unsigned long disk_start_io_acct(struct gendisk *disk, unsigned int sectors, · 503 unmodified lines
1258void disk_end_io_acct(struct gendisk *disk, unsigned int op,1259void disk_end_io_acct(struct gendisk *disk, unsigned int op,
1259 unsigned long start_time);1260 unsigned long start_time);
1260 1261
1262void bio_start_io_acct_time(struct bio *bio, unsigned long start_time);
1261unsigned long bio_start_io_acct(struct bio *bio);1263unsigned long bio_start_io_acct(struct bio *bio);
1262void bio_end_io_acct_remapped(struct bio *bio, unsigned long start_time,1264void bio_end_io_acct_remapped(struct bio *bio, unsigned long start_time,
1263 struct block_device *orig_bdev);1265 struct block_device *orig_bdev);
include/linux/ceph/libceph.h+1−0
@@ -35,6 +35,7 @@ · 34 unmodified lines
35#define CEPH_OPT_TCP_NODELAY (1<<4) /* TCP_NODELAY on TCP sockets */35#define CEPH_OPT_TCP_NODELAY (1<<4) /* TCP_NODELAY on TCP sockets */
36#define CEPH_OPT_NOMSGSIGN (1<<5) /* don't sign msgs (msgr1) */36#define CEPH_OPT_NOMSGSIGN (1<<5) /* don't sign msgs (msgr1) */
37#define CEPH_OPT_ABORT_ON_FULL (1<<6) /* abort w/ ENOSPC when full */37#define CEPH_OPT_ABORT_ON_FULL (1<<6) /* abort w/ ENOSPC when full */
38#define CEPH_OPT_RXBOUNCE (1<<7) /* double-buffer read data */
38 39
39#define CEPH_OPT_DEFAULT (CEPH_OPT_TCP_NODELAY)40#define CEPH_OPT_DEFAULT (CEPH_OPT_TCP_NODELAY)
40 41
include/linux/ceph/messenger.h+5−0
@@ -383,6 +383,10 @@ struct ceph_connection_v2_info { · 382 unmodified lines
383 struct ceph_gcm_nonce in_gcm_nonce;383 struct ceph_gcm_nonce in_gcm_nonce;
384 struct ceph_gcm_nonce out_gcm_nonce;384 struct ceph_gcm_nonce out_gcm_nonce;
385 385
386 struct page **in_enc_pages;
387 int in_enc_page_cnt;
388 int in_enc_resid;
389 int in_enc_i;
386 struct page **out_enc_pages;390 struct page **out_enc_pages;
387 int out_enc_page_cnt;391 int out_enc_page_cnt;
388 int out_enc_resid;392 int out_enc_resid;
@@ -457,6 +461,7 @@ struct ceph_connection { · 68 unmodified lines
457 struct ceph_msg *out_msg; /* sending message (== tail of461 struct ceph_msg *out_msg; /* sending message (== tail of
458 out_sent) */462 out_sent) */
459 463
464 struct page *bounce_page;
460 u32 in_front_crc, in_middle_crc, in_data_crc; /* calculated crc */465 u32 in_front_crc, in_middle_crc, in_data_crc; /* calculated crc */
461 466
462 struct timespec64 last_keepalive_ack; /* keepalive2 ack stamp */467 struct timespec64 last_keepalive_ack; /* keepalive2 ack stamp */
include/linux/compiler.h+5−16
@@ -117,14 +117,6 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, · 116 unmodified lines
117 */117 */
118#define __stringify_label(n) #n118#define __stringify_label(n) #n
119 119
120#define __annotate_reachable(c) ({ \
121 asm volatile(__stringify_label(c) ":\n\t" \
122 ".pushsection .discard.reachable\n\t" \
123 ".long " __stringify_label(c) "b - .\n\t" \
124 ".popsection\n\t" : : "i" (c)); \
125})
126#define annotate_reachable() __annotate_reachable(__COUNTER__)
127
128#define __annotate_unreachable(c) ({ \120#define __annotate_unreachable(c) ({ \
129 asm volatile(__stringify_label(c) ":\n\t" \121 asm volatile(__stringify_label(c) ":\n\t" \
130 ".pushsection .discard.unreachable\n\t" \122 ".pushsection .discard.unreachable\n\t" \
@@ -133,24 +125,21 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, · 2 unmodified lines
133})125})
134#define annotate_unreachable() __annotate_unreachable(__COUNTER__)126#define annotate_unreachable() __annotate_unreachable(__COUNTER__)
135 127
136#define ASM_UNREACHABLE \128#define ASM_REACHABLE \
137 "999:\n\t" \129 "998:\n\t" \
138 ".pushsection .discard.unreachable\n\t" \130 ".pushsection .discard.reachable\n\t" \
139 ".long 999b - .\n\t" \131 ".long 998b - .\n\t" \
140 ".popsection\n\t"132 ".popsection\n\t"
141 133
142/* Annotate a C jump table to allow objtool to follow the code flow */134/* Annotate a C jump table to allow objtool to follow the code flow */
143#define __annotate_jump_table __section(".rodata..c_jump_table")135#define __annotate_jump_table __section(".rodata..c_jump_table")
144 136
145#else137#else
146#define annotate_reachable()
147#define annotate_unreachable()138#define annotate_unreachable()
139# define ASM_REACHABLE
148#define __annotate_jump_table140#define __annotate_jump_table
149#endif141#endif
150 142
151#ifndef ASM_UNREACHABLE
152# define ASM_UNREACHABLE
153#endif
154#ifndef unreachable143#ifndef unreachable
155# define unreachable() do { \144# define unreachable() do { \
156 annotate_unreachable(); \145 annotate_unreachable(); \
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/fb.h+1−1
@@ -262,7 +262,7 @@ struct fb_ops { · 261 unmodified lines
262 262
263 /* Draws a rectangle */263 /* Draws a rectangle */
264 void (*fb_fillrect) (struct fb_info *info, const struct fb_fillrect *rect);264 void (*fb_fillrect) (struct fb_info *info, const struct fb_fillrect *rect);
265 /* Copy data from area to another. Obsolete. */265 /* Copy data from area to another */
266 void (*fb_copyarea) (struct fb_info *info, const struct fb_copyarea *region);266 void (*fb_copyarea) (struct fb_info *info, const struct fb_copyarea *region);
267 /* Draws a image to the display */267 /* Draws a image to the display */
268 void (*fb_imageblit) (struct fb_info *info, const struct fb_image *image);268 void (*fb_imageblit) (struct fb_info *info, const struct fb_image *image);
include/linux/fs.h+1−1
@@ -1483,7 +1483,7 @@ struct super_block { · 1482 unmodified lines
1483#ifdef CONFIG_FS_VERITY1483#ifdef CONFIG_FS_VERITY
1484 const struct fsverity_operations *s_vop;1484 const struct fsverity_operations *s_vop;
1485#endif1485#endif
1486#ifdef CONFIG_UNICODE1486#if IS_ENABLED(CONFIG_UNICODE)
1487 struct unicode_map *s_encoding;1487 struct unicode_map *s_encoding;
1488 __u16 s_encoding_flags;1488 __u16 s_encoding_flags;
1489#endif1489#endif
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/hyperv.h+1−0
@@ -1262,6 +1262,7 @@ struct hv_device { · 1261 unmodified lines
1262 struct vmbus_channel *channel;1262 struct vmbus_channel *channel;
1263 struct kset *channels_kset;1263 struct kset *channels_kset;
1264 struct device_dma_parameters dma_parms;1264 struct device_dma_parameters dma_parms;
1265 u64 dma_mask;
1265 1266
1266 /* place holder to keep track of the dir for hv device in debugfs */1267 /* place holder to keep track of the dir for hv device in debugfs */
1267 struct dentry *debug_dir;1268 struct dentry *debug_dir;
include/linux/if_vlan.h+4−2
@@ -46,8 +46,10 @@ struct vlan_hdr { · 45 unmodified lines
46 * @h_vlan_encapsulated_proto: packet type ID or len46 * @h_vlan_encapsulated_proto: packet type ID or len
47 */47 */
48struct vlan_ethhdr {48struct vlan_ethhdr {
49 unsigned char h_dest[ETH_ALEN];49 struct_group(addrs,
50 unsigned char h_source[ETH_ALEN];50 unsigned char h_dest[ETH_ALEN];
51 unsigned char h_source[ETH_ALEN];
52 );
51 __be16 h_vlan_proto;53 __be16 h_vlan_proto;
52 __be16 h_vlan_TCI;54 __be16 h_vlan_TCI;
53 __be16 h_vlan_encapsulated_proto;55 __be16 h_vlan_encapsulated_proto;
include/linux/iomap.h+2−0
@@ -263,9 +263,11 @@ struct iomap_ioend { · 262 unmodified lines
263 struct list_head io_list; /* next ioend in chain */263 struct list_head io_list; /* next ioend in chain */
264 u16 io_type;264 u16 io_type;
265 u16 io_flags; /* IOMAP_F_* */265 u16 io_flags; /* IOMAP_F_* */
266 u32 io_folios; /* folios added to ioend */
266 struct inode *io_inode; /* file being written to */267 struct inode *io_inode; /* file being written to */
267 size_t io_size; /* size of the extent */268 size_t io_size; /* size of the extent */
268 loff_t io_offset; /* offset in the file */269 loff_t io_offset; /* offset in the file */
270 sector_t io_sector; /* start sector of ioend */
269 struct bio *io_bio; /* bio being built */271 struct bio *io_bio; /* bio being built */
270 struct bio io_inline_bio; /* MUST BE LAST! */272 struct bio io_inline_bio; /* MUST BE LAST! */
271};273};
include/linux/jbd2.h+4−9
@@ -594,7 +594,7 @@ struct transaction_s · 593 unmodified lines
594 */594 */
595 unsigned long t_log_start;595 unsigned long t_log_start;
596 596
597 /* 597 /*
598 * Number of buffers on the t_buffers list [j_list_lock, no locks598 * Number of buffers on the t_buffers list [j_list_lock, no locks
599 * needed for jbd2 thread]599 * needed for jbd2 thread]
600 */600 */
@@ -1295,7 +1295,7 @@ struct journal_s · 694 unmodified lines
1295 * Clean-up after fast commit or full commit. JBD2 calls this function1295 * Clean-up after fast commit or full commit. JBD2 calls this function
1296 * after every commit operation.1296 * after every commit operation.
1297 */1297 */
1298 void (*j_fc_cleanup_callback)(struct journal_s *journal, int);1298 void (*j_fc_cleanup_callback)(struct journal_s *journal, int full, tid_t tid);
1299 1299
1300 /**1300 /**
1301 * @j_fc_replay_callback:1301 * @j_fc_replay_callback:
@@ -1419,9 +1419,7 @@ extern void jbd2_journal_unfile_buffer(journal_t *, struct journal_head *); · 117 unmodified lines
1419extern bool __jbd2_journal_refile_buffer(struct journal_head *);1419extern bool __jbd2_journal_refile_buffer(struct journal_head *);
1420extern void jbd2_journal_refile_buffer(journal_t *, struct journal_head *);1420extern void jbd2_journal_refile_buffer(journal_t *, struct journal_head *);
1421extern void __jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int);1421extern void __jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int);
1422extern void __journal_free_buffer(struct journal_head *bh);
1423extern void jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int);1422extern void jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int);
1424extern void __journal_clean_data_list(transaction_t *transaction);
1425static inline void jbd2_file_log_bh(struct list_head *head, struct buffer_head *bh)1423static inline void jbd2_file_log_bh(struct list_head *head, struct buffer_head *bh)
1426{1424{
1427 list_add_tail(&bh->b_assoc_buffers, head);1425 list_add_tail(&bh->b_assoc_buffers, head);
@@ -1486,9 +1484,6 @@ extern int jbd2_journal_write_metadata_buffer(transaction_t *transaction, · 58 unmodified lines
1486 struct buffer_head **bh_out,1484 struct buffer_head **bh_out,
1487 sector_t blocknr);1485 sector_t blocknr);
1488 1486
1489/* Transaction locking */
1490extern void __wait_on_journal (journal_t *);
1491
1492/* Transaction cache support */1487/* Transaction cache support */
1493extern void jbd2_journal_destroy_transaction_cache(void);1488extern void jbd2_journal_destroy_transaction_cache(void);
1494extern int __init jbd2_journal_init_transaction_cache(void);1489extern int __init jbd2_journal_init_transaction_cache(void);
@@ -1543,6 +1538,8 @@ extern int jbd2_journal_flush(journal_t *journal, unsigned int flags); · 48 unmodified lines
1543extern void jbd2_journal_lock_updates (journal_t *);1538extern void jbd2_journal_lock_updates (journal_t *);
1544extern void jbd2_journal_unlock_updates (journal_t *);1539extern void jbd2_journal_unlock_updates (journal_t *);
1545 1540
1541void jbd2_journal_wait_updates(journal_t *);
1542
1546extern journal_t * jbd2_journal_init_dev(struct block_device *bdev,1543extern journal_t * jbd2_journal_init_dev(struct block_device *bdev,
1547 struct block_device *fs_dev,1544 struct block_device *fs_dev,
1548 unsigned long long start, int len, int bsize);1545 unsigned long long start, int len, int bsize);
@@ -1774,8 +1771,6 @@ static inline unsigned long jbd2_log_space_left(journal_t *journal) · 225 unmodified lines
1774#define BJ_Reserved 4 /* Buffer is reserved for access by journal */1771#define BJ_Reserved 4 /* Buffer is reserved for access by journal */
1775#define BJ_Types 51772#define BJ_Types 5
1776 1773
1777extern int jbd_blocks_per_page(struct inode *inode);
1778
1779/* JBD uses a CRC32 checksum */1774/* JBD uses a CRC32 checksum */
1780#define JBD_MAX_CHECKSUM_SIZE 41775#define JBD_MAX_CHECKSUM_SIZE 4
1781 1776
include/linux/kfence.h+2−0
@@ -17,6 +17,8 @@ · 16 unmodified lines
17#include <linux/atomic.h>17#include <linux/atomic.h>
18#include <linux/static_key.h>18#include <linux/static_key.h>
19 19
20extern unsigned long kfence_sample_interval;
21
20/*22/*
21 * We allocate an even number of pages, as it simplifies calculations to map23 * We allocate an even number of pages, as it simplifies calculations to map
22 * address to metadata indices; effectively, the very first page serves as an24 * address to metadata indices; effectively, the very first page serves as an
include/linux/kvm_host.h+109−3
@@ -29,7 +29,9 @@ · 28 unmodified lines
29#include <linux/refcount.h>29#include <linux/refcount.h>
30#include <linux/nospec.h>30#include <linux/nospec.h>
31#include <linux/notifier.h>31#include <linux/notifier.h>
32#include <linux/ftrace.h>
32#include <linux/hashtable.h>33#include <linux/hashtable.h>
34#include <linux/instrumentation.h>
33#include <linux/interval_tree.h>35#include <linux/interval_tree.h>
34#include <linux/rbtree.h>36#include <linux/rbtree.h>
35#include <linux/xarray.h>37#include <linux/xarray.h>
@@ -368,8 +370,11 @@ struct kvm_vcpu { · 332 unmodified lines
368 u64 last_used_slot_gen;370 u64 last_used_slot_gen;
369};371};
370 372
371/* must be called with irqs disabled */373/*
372static __always_inline void guest_enter_irqoff(void)374 * Start accounting time towards a guest.
375 * Must be called before entering guest context.
376 */
377static __always_inline void guest_timing_enter_irqoff(void)
373{378{
374 /*379 /*
375 * This is running in ioctl context so its safe to assume that it's the380 * This is running in ioctl context so its safe to assume that it's the
@@ -378,7 +383,18 @@ static __always_inline void guest_enter_irqoff(void) · 2 unmodified lines
378 instrumentation_begin();383 instrumentation_begin();
379 vtime_account_guest_enter();384 vtime_account_guest_enter();
380 instrumentation_end();385 instrumentation_end();
386}
381 387
388/*
389 * Enter guest context and enter an RCU extended quiescent state.
390 *
391 * Between guest_context_enter_irqoff() and guest_context_exit_irqoff() it is
392 * unsafe to use any code which may directly or indirectly use RCU, tracing
393 * (including IRQ flag tracing), or lockdep. All code in this period must be
394 * non-instrumentable.
395 */
396static __always_inline void guest_context_enter_irqoff(void)
397{
382 /*398 /*
383 * KVM does not hold any references to rcu protected data when it399 * KVM does not hold any references to rcu protected data when it
384 * switches CPU into a guest mode. In fact switching to a guest mode400 * switches CPU into a guest mode. In fact switching to a guest mode
@@ -394,16 +410,79 @@ static __always_inline void guest_enter_irqoff(void) · 9 unmodified lines
394 }410 }
395}411}
396 412
397static __always_inline void guest_exit_irqoff(void)413/*
414 * Deprecated. Architectures should move to guest_timing_enter_irqoff() and
415 * guest_state_enter_irqoff().
416 */
417static __always_inline void guest_enter_irqoff(void)
418{
419 guest_timing_enter_irqoff();
420 guest_context_enter_irqoff();
421}
422
423/**
424 * guest_state_enter_irqoff - Fixup state when entering a guest
425 *
426 * Entry to a guest will enable interrupts, but the kernel state is interrupts
427 * disabled when this is invoked. Also tell RCU about it.
428 *
429 * 1) Trace interrupts on state
430 * 2) Invoke context tracking if enabled to adjust RCU state
431 * 3) Tell lockdep that interrupts are enabled
432 *
433 * Invoked from architecture specific code before entering a guest.
434 * Must be called with interrupts disabled and the caller must be
435 * non-instrumentable.
436 * The caller has to invoke guest_timing_enter_irqoff() before this.
437 *
438 * Note: this is analogous to exit_to_user_mode().
439 */
440static __always_inline void guest_state_enter_irqoff(void)
441{
442 instrumentation_begin();
443 trace_hardirqs_on_prepare();
444 lockdep_hardirqs_on_prepare(CALLER_ADDR0);
445 instrumentation_end();
446
447 guest_context_enter_irqoff();
448 lockdep_hardirqs_on(CALLER_ADDR0);
449}
450
451/*
452 * Exit guest context and exit an RCU extended quiescent state.
453 *
454 * Between guest_context_enter_irqoff() and guest_context_exit_irqoff() it is
455 * unsafe to use any code which may directly or indirectly use RCU, tracing
456 * (including IRQ flag tracing), or lockdep. All code in this period must be
457 * non-instrumentable.
458 */
459static __always_inline void guest_context_exit_irqoff(void)
398{460{
399 context_tracking_guest_exit();461 context_tracking_guest_exit();
462}
400 463
464/*
465 * Stop accounting time towards a guest.
466 * Must be called after exiting guest context.
467 */
468static __always_inline void guest_timing_exit_irqoff(void)
469{
401 instrumentation_begin();470 instrumentation_begin();
402 /* Flush the guest cputime we spent on the guest */471 /* Flush the guest cputime we spent on the guest */
403 vtime_account_guest_exit();472 vtime_account_guest_exit();
404 instrumentation_end();473 instrumentation_end();
405}474}
406 475
476/*
477 * Deprecated. Architectures should move to guest_state_exit_irqoff() and
478 * guest_timing_exit_irqoff().
479 */
480static __always_inline void guest_exit_irqoff(void)
481{
482 guest_context_exit_irqoff();
483 guest_timing_exit_irqoff();
484}
485
407static inline void guest_exit(void)486static inline void guest_exit(void)
408{487{
409 unsigned long flags;488 unsigned long flags;
@@ -413,6 +492,33 @@ static inline void guest_exit(void) · 3 unmodified lines
413 local_irq_restore(flags);492 local_irq_restore(flags);
414}493}
415 494
495/**
496 * guest_state_exit_irqoff - Establish state when returning from guest mode
497 *
498 * Entry from a guest disables interrupts, but guest mode is traced as
499 * interrupts enabled. Also with NO_HZ_FULL RCU might be idle.
500 *
501 * 1) Tell lockdep that interrupts are disabled
502 * 2) Invoke context tracking if enabled to reactivate RCU
503 * 3) Trace interrupts off state
504 *
505 * Invoked from architecture specific code after exiting a guest.
506 * Must be invoked with interrupts disabled and the caller must be
507 * non-instrumentable.
508 * The caller has to invoke guest_timing_exit_irqoff() after this.
509 *
510 * Note: this is analogous to enter_from_user_mode().
511 */
512static __always_inline void guest_state_exit_irqoff(void)
513{
514 lockdep_hardirqs_off(CALLER_ADDR0);
515 guest_context_exit_irqoff();
516
517 instrumentation_begin();
518 trace_hardirqs_off_finish();
519 instrumentation_end();
520}
521
416static inline int kvm_vcpu_exiting_guest_mode(struct kvm_vcpu *vcpu)522static inline int kvm_vcpu_exiting_guest_mode(struct kvm_vcpu *vcpu)
417{523{
418 /*524 /*
include/linux/libata.h+1−0
@@ -380,6 +380,7 @@ enum { · 379 unmodified lines
380 ATA_HORKAGE_MAX_TRIM_128M = (1 << 26), /* Limit max trim size to 128M */380 ATA_HORKAGE_MAX_TRIM_128M = (1 << 26), /* Limit max trim size to 128M */
381 ATA_HORKAGE_NO_NCQ_ON_ATI = (1 << 27), /* Disable NCQ on ATI chipset */381 ATA_HORKAGE_NO_NCQ_ON_ATI = (1 << 27), /* Disable NCQ on ATI chipset */
382 ATA_HORKAGE_NO_ID_DEV_LOG = (1 << 28), /* Identify device log missing */382 ATA_HORKAGE_NO_ID_DEV_LOG = (1 << 28), /* Identify device log missing */
383 ATA_HORKAGE_NO_LOG_DIR = (1 << 29), /* Do not read log directory */
383 384
384 /* DMA mask for user DMA control: User visible values; DO NOT385 /* DMA mask for user DMA control: User visible values; DO NOT
385 renumber */386 renumber */
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/memcontrol.h+3−2
@@ -219,7 +219,7 @@ struct obj_cgroup { · 218 unmodified lines
219 struct mem_cgroup *memcg;219 struct mem_cgroup *memcg;
220 atomic_t nr_charged_bytes;220 atomic_t nr_charged_bytes;
221 union {221 union {
222 struct list_head list;222 struct list_head list; /* protected by objcg_lock */
223 struct rcu_head rcu;223 struct rcu_head rcu;
224 };224 };
225};225};
@@ -315,7 +315,8 @@ struct mem_cgroup { · 89 unmodified lines
315#ifdef CONFIG_MEMCG_KMEM315#ifdef CONFIG_MEMCG_KMEM
316 int kmemcg_id;316 int kmemcg_id;
317 struct obj_cgroup __rcu *objcg;317 struct obj_cgroup __rcu *objcg;
318 struct list_head objcg_list; /* list of inherited objcgs */318 /* list of inherited objcgs, protected by objcg_lock */
319 struct list_head objcg_list;
319#endif320#endif
320 321
321 MEMCG_PADDING(_pad2_);322 MEMCG_PADDING(_pad2_);
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+2−1
@@ -2158,7 +2158,7 @@ struct net_device { · 2157 unmodified lines
2158 struct netdev_queue *_tx ____cacheline_aligned_in_smp;2158 struct netdev_queue *_tx ____cacheline_aligned_in_smp;
2159 unsigned int num_tx_queues;2159 unsigned int num_tx_queues;
2160 unsigned int real_num_tx_queues;2160 unsigned int real_num_tx_queues;
2161 struct Qdisc *qdisc;2161 struct Qdisc __rcu *qdisc;
2162 unsigned int tx_queue_len;2162 unsigned int tx_queue_len;
2163 spinlock_t tx_global_lock;2163 spinlock_t tx_global_lock;
2164 2164
@@ -2548,6 +2548,7 @@ struct packet_type { · 383 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/netfs.h+7−0
@@ -244,6 +244,13 @@ struct netfs_cache_ops { · 243 unmodified lines
244 int (*prepare_write)(struct netfs_cache_resources *cres,244 int (*prepare_write)(struct netfs_cache_resources *cres,
245 loff_t *_start, size_t *_len, loff_t i_size,245 loff_t *_start, size_t *_len, loff_t i_size,
246 bool no_space_allocated_yet);246 bool no_space_allocated_yet);
247
248 /* Query the occupancy of the cache in a region, returning where the
249 * next chunk of data starts and how long it is.
250 */
251 int (*query_occupancy)(struct netfs_cache_resources *cres,
252 loff_t start, size_t len, size_t granularity,
253 loff_t *_data_start, size_t *_data_len);
247};254};
248 255
249struct readahead_control;256struct readahead_control;
include/linux/nfs.h+0−8
@@ -36,14 +36,6 @@ static inline void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *sourc · 35 unmodified lines
36 memcpy(target->data, source->data, source->size);36 memcpy(target->data, source->data, source->size);
37}37}
38 38
39
40/*
41 * This is really a general kernel constant, but since nothing like
42 * this is defined in the kernel headers, I have to do it here.
43 */
44#define NFS_OFFSET_MAX ((__s64)((~(__u64)0) >> 1))
45
46
47enum nfs3_stable_how {39enum nfs3_stable_how {
48 NFS_UNSTABLE = 0,40 NFS_UNSTABLE = 0,
49 NFS_DATA_SYNC = 1,41 NFS_DATA_SYNC = 1,
include/linux/nfs_fs.h+7−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};
@@ -105,6 +107,7 @@ struct nfs_open_dir_context { · 37 unmodified lines
105 __u64 dup_cookie;107 __u64 dup_cookie;
106 pgoff_t page_index;108 pgoff_t page_index;
107 signed char duped;109 signed char duped;
110 bool eof;
108};111};
109 112
110/*113/*
@@ -395,7 +398,7 @@ extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fa · 284 unmodified lines
395extern int nfs_post_op_update_inode_force_wcc_locked(struct inode *inode, struct nfs_fattr *fattr);398extern 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 *,399extern int nfs_getattr(struct user_namespace *, const struct path *,
397 struct kstat *, u32, unsigned int);400 struct kstat *, u32, unsigned int);
398extern void nfs_access_add_cache(struct inode *, struct nfs_access_entry *);401extern 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);402extern void nfs_access_set_mask(struct nfs_access_entry *, u32);
400extern int nfs_permission(struct user_namespace *, struct inode *, int);403extern int nfs_permission(struct user_namespace *, struct inode *, int);
401extern int nfs_open(struct inode *, struct file *);404extern int nfs_open(struct inode *, struct file *);
@@ -532,8 +535,8 @@ extern int nfs_instantiate(struct dentry *dentry, struct nfs_fh *fh, · 130 unmodified lines
532 struct nfs_fattr *fattr);535 struct nfs_fattr *fattr);
533extern int nfs_may_open(struct inode *inode, const struct cred *cred, int openflags);536extern int nfs_may_open(struct inode *inode, const struct cred *cred, int openflags);
534extern void nfs_access_zap_cache(struct inode *inode);537extern 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,538extern int nfs_access_get_cached(struct inode *inode, const struct cred *cred,
536 bool may_block);539 u32 *mask, bool may_block);
537 540
538/*541/*
539 * linux/fs/nfs/symlink.c542 * 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/page_table_check.h+19−0
@@ -26,6 +26,9 @@ void __page_table_check_pmd_set(struct mm_struct *mm, unsigned long addr, · 25 unmodified lines
26 pmd_t *pmdp, pmd_t pmd);26 pmd_t *pmdp, pmd_t pmd);
27void __page_table_check_pud_set(struct mm_struct *mm, unsigned long addr,27void __page_table_check_pud_set(struct mm_struct *mm, unsigned long addr,
28 pud_t *pudp, pud_t pud);28 pud_t *pudp, pud_t pud);
29void __page_table_check_pte_clear_range(struct mm_struct *mm,
30 unsigned long addr,
31 pmd_t pmd);
29 32
30static inline void page_table_check_alloc(struct page *page, unsigned int order)33static inline void page_table_check_alloc(struct page *page, unsigned int order)
31{34{
@@ -100,6 +103,16 @@ static inline void page_table_check_pud_set(struct mm_struct *mm, · 68 unmodified lines
100 __page_table_check_pud_set(mm, addr, pudp, pud);103 __page_table_check_pud_set(mm, addr, pudp, pud);
101}104}
102 105
106static inline void page_table_check_pte_clear_range(struct mm_struct *mm,
107 unsigned long addr,
108 pmd_t pmd)
109{
110 if (static_branch_likely(&page_table_check_disabled))
111 return;
112
113 __page_table_check_pte_clear_range(mm, addr, pmd);
114}
115
103#else116#else
104 117
105static inline void page_table_check_alloc(struct page *page, unsigned int order)118static inline void page_table_check_alloc(struct page *page, unsigned int order)
@@ -143,5 +156,11 @@ static inline void page_table_check_pud_set(struct mm_struct *mm, · 37 unmodified lines
143{156{
144}157}
145 158
159static inline void page_table_check_pte_clear_range(struct mm_struct *mm,
160 unsigned long addr,
161 pmd_t pmd)
162{
163}
164
146#endif /* CONFIG_PAGE_TABLE_CHECK */165#endif /* CONFIG_PAGE_TABLE_CHECK */
147#endif /* __LINUX_PAGE_TABLE_CHECK_H */166#endif /* __LINUX_PAGE_TABLE_CHECK_H */
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/pgtable.h+1−0
@@ -62,6 +62,7 @@ static inline unsigned long pte_index(unsigned long address) · 61 unmodified lines
62{62{
63 return (address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1);63 return (address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1);
64}64}
65#define pte_index pte_index
65 66
66#ifndef pmd_index67#ifndef pmd_index
67static inline unsigned long pmd_index(unsigned long address)68static inline unsigned long pmd_index(unsigned long address)
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+1−1
@@ -27,7 +27,7 @@ void psi_memstall_leave(unsigned long *flags); · 26 unmodified lines
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);
28struct psi_trigger *psi_trigger_create(struct psi_group *group,28struct psi_trigger *psi_trigger_create(struct psi_group *group,
29 char *buf, size_t nbytes, enum psi_res res);29 char *buf, size_t nbytes, enum psi_res res);
30void psi_trigger_replace(void **trigger_ptr, struct psi_trigger *t);30void psi_trigger_destroy(struct psi_trigger *t);
31 31
32__poll_t psi_trigger_poll(void **trigger_ptr, struct file *file,32__poll_t psi_trigger_poll(void **trigger_ptr, struct file *file,
33 poll_table *wait);33 poll_table *wait);
include/linux/psi_types.h+0−3
@@ -142,9 +142,6 @@ struct psi_trigger { · 141 unmodified lines
142 */142 */
143 u64 last_event_time;143 u64 last_event_time;
144 144
145 /* Refcounting to prevent premature destruction */
146 struct kref refcount;
147
148 /* Deferred event(s) from previous ratelimit window */145 /* Deferred event(s) from previous ratelimit window */
149 bool pending_event;146 bool pending_event;
150};147};
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−5
@@ -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 *
@@ -1684,7 +1680,6 @@ extern struct pid *cad_pid; · 1055 unmodified lines
1684#define PF_MEMALLOC 0x00000800 /* Allocating memory */1680#define PF_MEMALLOC 0x00000800 /* Allocating memory */
1685#define PF_NPROC_EXCEEDED 0x00001000 /* set_user() noticed that RLIMIT_NPROC was exceeded */1681#define PF_NPROC_EXCEEDED 0x00001000 /* set_user() noticed that RLIMIT_NPROC was exceeded */
1686#define PF_USED_MATH 0x00002000 /* If unset the fpu must be initialized before use */1682#define PF_USED_MATH 0x00002000 /* If unset the fpu must be initialized before use */
1687#define PF_USED_ASYNC 0x00004000 /* Used async_schedule*(), used by module init */
1688#define PF_NOFREEZE 0x00008000 /* This thread should not be frozen */1683#define PF_NOFREEZE 0x00008000 /* This thread should not be frozen */
1689#define PF_FROZEN 0x00010000 /* Frozen for system suspend */1684#define PF_FROZEN 0x00010000 /* Frozen for system suspend */
1690#define PF_KSWAPD 0x00020000 /* I am kswapd */1685#define PF_KSWAPD 0x00020000 /* I am kswapd */
include/linux/sched/task.h+2−2
@@ -54,8 +54,8 @@ extern asmlinkage void schedule_tail(struct task_struct *prev); · 53 unmodified lines
54extern void init_idle(struct task_struct *idle, int cpu);54extern void init_idle(struct task_struct *idle, int cpu);
55 55
56extern int sched_fork(unsigned long clone_flags, struct task_struct *p);56extern int sched_fork(unsigned long clone_flags, struct task_struct *p);
57extern void sched_post_fork(struct task_struct *p,57extern void sched_cgroup_fork(struct task_struct *p, struct kernel_clone_args *kargs);
58 struct kernel_clone_args *kargs);58extern void sched_post_fork(struct task_struct *p);
59extern void sched_dead(struct task_struct *p);59extern void sched_dead(struct task_struct *p);
60 60
61void __noreturn do_task_dead(void);61void __noreturn do_task_dead(void);
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+3−12
@@ -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) {}
@@ -506,14 +497,14 @@ extern void ksys_sync_helper(void); · 41 unmodified lines
506 497
507/* drivers/base/power/wakeup.c */498/* drivers/base/power/wakeup.c */
508extern bool events_check_enabled;499extern bool events_check_enabled;
509extern unsigned int pm_wakeup_irq;
510extern suspend_state_t pm_suspend_target_state;500extern suspend_state_t pm_suspend_target_state;
511 501
512extern bool pm_wakeup_pending(void);502extern bool pm_wakeup_pending(void);
513extern void pm_system_wakeup(void);503extern void pm_system_wakeup(void);
514extern void pm_system_cancel_wakeup(void);504extern void pm_system_cancel_wakeup(void);
515extern void pm_wakeup_clear(bool reset);505extern void pm_wakeup_clear(unsigned int irq_number);
516extern void pm_system_irq_wakeup(unsigned int irq_number);506extern void pm_system_irq_wakeup(unsigned int irq_number);
507extern unsigned int pm_wakeup_irq(void);
517extern bool pm_get_wakeup_count(unsigned int *count, bool block);508extern bool pm_get_wakeup_count(unsigned int *count, bool block);
518extern bool pm_save_wakeup_count(unsigned int count);509extern bool pm_save_wakeup_count(unsigned int count);
519extern void pm_wakep_autosleep_enabled(bool set);510extern void pm_wakep_autosleep_enabled(bool set);
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−2
@@ -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)
@@ -107,8 +109,6 @@ struct inet6_ifaddr *ipv6_get_ifaddr(struct net *net, · 95 unmodified lines
107int ipv6_dev_get_saddr(struct net *net, const struct net_device *dev,109int ipv6_dev_get_saddr(struct net *net, const struct net_device *dev,
108 const struct in6_addr *daddr, unsigned int srcprefs,110 const struct in6_addr *daddr, unsigned int srcprefs,
109 struct in6_addr *saddr);111 struct in6_addr *saddr);
110int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr,
111 u32 banned_flags);
112int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,112int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,
113 u32 banned_flags);113 u32 banned_flags);
114bool inet_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2,114bool inet_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2,
include/net/ax25.h+12−0
@@ -239,6 +239,7 @@ typedef struct ax25_dev { · 238 unmodified lines
239#if defined(CONFIG_AX25_DAMA_SLAVE) || defined(CONFIG_AX25_DAMA_MASTER)239#if defined(CONFIG_AX25_DAMA_SLAVE) || defined(CONFIG_AX25_DAMA_MASTER)
240 ax25_dama_info dama;240 ax25_dama_info dama;
241#endif241#endif
242 refcount_t refcount;
242} ax25_dev;243} ax25_dev;
243 244
244typedef struct ax25_cb {245typedef struct ax25_cb {
@@ -293,6 +294,17 @@ static __inline__ void ax25_cb_put(ax25_cb *ax25) · 48 unmodified lines
293 }294 }
294}295}
295 296
297static inline void ax25_dev_hold(ax25_dev *ax25_dev)
298{
299 refcount_inc(&ax25_dev->refcount);
300}
301
302static inline void ax25_dev_put(ax25_dev *ax25_dev)
303{
304 if (refcount_dec_and_test(&ax25_dev->refcount)) {
305 kfree(ax25_dev);
306 }
307}
296static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev)308static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev)
297{309{
298 skb->dev = dev;310 skb->dev = dev;
include/net/bond_3ad.h+1−1
@@ -262,7 +262,7 @@ struct ad_system { · 261 unmodified lines
262struct ad_bond_info {262struct ad_bond_info {
263 struct ad_system system; /* 802.3ad system structure */263 struct ad_system system; /* 802.3ad system structure */
264 struct bond_3ad_stats stats;264 struct bond_3ad_stats stats;
265 u32 agg_select_timer; /* Timer to select aggregator after all adapter's hand shakes */265 atomic_t agg_select_timer; /* Timer to select aggregator after all adapter's hand shakes */
266 u16 aggregator_identifier;266 u16 aggregator_identifier;
267};267};
268 268
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/dsa.h+1−0
@@ -1187,6 +1187,7 @@ void dsa_unregister_switch(struct dsa_switch *ds); · 1186 unmodified lines
1187int dsa_register_switch(struct dsa_switch *ds);1187int dsa_register_switch(struct dsa_switch *ds);
1188void dsa_switch_shutdown(struct dsa_switch *ds);1188void dsa_switch_shutdown(struct dsa_switch *ds);
1189struct dsa_switch *dsa_switch_find(int tree_index, int sw_index);1189struct dsa_switch *dsa_switch_find(int tree_index, int sw_index);
1190void dsa_flush_workqueue(void);
1190#ifdef CONFIG_PM_SLEEP1191#ifdef CONFIG_PM_SLEEP
1191int dsa_switch_suspend(struct dsa_switch *ds);1192int dsa_switch_suspend(struct dsa_switch *ds);
1192int dsa_switch_resume(struct dsa_switch *ds);1193int dsa_switch_resume(struct dsa_switch *ds);
include/net/dst_metadata.h+13−1
@@ -123,8 +123,20 @@ static inline struct metadata_dst *tun_dst_unclone(struct sk_buff *skb) · 122 unmodified lines
123 123
124 memcpy(&new_md->u.tun_info, &md_dst->u.tun_info,124 memcpy(&new_md->u.tun_info, &md_dst->u.tun_info,
125 sizeof(struct ip_tunnel_info) + md_size);125 sizeof(struct ip_tunnel_info) + md_size);
126#ifdef CONFIG_DST_CACHE
127 /* Unclone the dst cache if there is one */
128 if (new_md->u.tun_info.dst_cache.cache) {
129 int ret;
130
131 ret = dst_cache_init(&new_md->u.tun_info.dst_cache, GFP_ATOMIC);
132 if (ret) {
133 metadata_dst_free(new_md);
134 return ERR_PTR(ret);
135 }
136 }
137#endif
138
126 skb_dst_drop(skb);139 skb_dst_drop(skb);
127 dst_hold(&new_md->dst);
128 skb_dst_set(skb, &new_md->dst);140 skb_dst_set(skb, &new_md->dst);
129 return new_md;141 return new_md;
130}142}
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+7−5
@@ -190,14 +190,16 @@ struct fib6_info { · 189 unmodified lines
190 u32 fib6_metric;190 u32 fib6_metric;
191 u8 fib6_protocol;191 u8 fib6_protocol;
192 u8 fib6_type;192 u8 fib6_type;
193
194 u8 offload;
195 u8 trap;
196 u8 offload_failed;
197
193 u8 should_flush:1,198 u8 should_flush:1,
194 dst_nocount:1,199 dst_nocount:1,
195 dst_nopolicy:1,200 dst_nopolicy:1,
196 fib6_destroying:1,201 fib6_destroying:1,
197 offload:1,202 unused:4;
198 trap:1,
199 offload_failed:1,
200 unused:1;
201 203
202 struct rcu_head rcu;204 struct rcu_head rcu;
203 struct nexthop *nh;205 struct nexthop *nh;
@@ -282,7 +284,7 @@ static inline bool fib6_get_cookie_safe(const struct fib6_info *f6i, · 78 unmodified lines
282 fn = rcu_dereference(f6i->fib6_node);284 fn = rcu_dereference(f6i->fib6_node);
283 285
284 if (fn) {286 if (fn) {
285 *cookie = fn->fn_sernum;287 *cookie = READ_ONCE(fn->fn_sernum);
286 /* pairs with smp_wmb() in __fib6_update_sernum_upto_root() */288 /* pairs with smp_wmb() in __fib6_update_sernum_upto_root() */
287 smp_rmb();289 smp_rmb();
288 status = true;290 status = true;
include/net/ipv6.h+4−1
@@ -393,17 +393,20 @@ static inline void txopt_put(struct ipv6_txoptions *opt) · 392 unmodified lines
393 kfree_rcu(opt, rcu);393 kfree_rcu(opt, rcu);
394}394}
395 395
396#if IS_ENABLED(CONFIG_IPV6)
396struct ip6_flowlabel *__fl6_sock_lookup(struct sock *sk, __be32 label);397struct ip6_flowlabel *__fl6_sock_lookup(struct sock *sk, __be32 label);
397 398
398extern struct static_key_false_deferred ipv6_flowlabel_exclusive;399extern struct static_key_false_deferred ipv6_flowlabel_exclusive;
399static inline struct ip6_flowlabel *fl6_sock_lookup(struct sock *sk,400static inline struct ip6_flowlabel *fl6_sock_lookup(struct sock *sk,
400 __be32 label)401 __be32 label)
401{402{
402 if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key))403 if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key) &&
404 READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl))
403 return __fl6_sock_lookup(sk, label) ? : ERR_PTR(-ENOENT);405 return __fl6_sock_lookup(sk, label) ? : ERR_PTR(-ENOENT);
404 406
405 return NULL;407 return NULL;
406}408}
409#endif
407 410
408struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions *opt_space,411struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions *opt_space,
409 struct ip6_flowlabel *fl,412 struct ip6_flowlabel *fl,
include/net/neighbour.h+13−5
@@ -350,7 +350,8 @@ static inline struct neighbour *neigh_create(struct neigh_table *tbl, · 349 unmodified lines
350 return __neigh_create(tbl, pkey, dev, true);350 return __neigh_create(tbl, pkey, dev, true);
351}351}
352void neigh_destroy(struct neighbour *neigh);352void neigh_destroy(struct neighbour *neigh);
353int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb);353int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb,
354 const bool immediate_ok);
354int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, u32 flags,355int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, u32 flags,
355 u32 nlmsg_pid);356 u32 nlmsg_pid);
356void __neigh_set_probe_once(struct neighbour *neigh);357void __neigh_set_probe_once(struct neighbour *neigh);
@@ -460,17 +461,24 @@ static inline struct neighbour * neigh_clone(struct neighbour *neigh) · 103 unmodified lines
460 461
461#define neigh_hold(n) refcount_inc(&(n)->refcnt)462#define neigh_hold(n) refcount_inc(&(n)->refcnt)
462 463
463static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)464static __always_inline int neigh_event_send_probe(struct neighbour *neigh,
465 struct sk_buff *skb,
466 const bool immediate_ok)
464{467{
465 unsigned long now = jiffies;468 unsigned long now = jiffies;
466 469
467 if (READ_ONCE(neigh->used) != now)470 if (READ_ONCE(neigh->used) != now)
468 WRITE_ONCE(neigh->used, now);471 WRITE_ONCE(neigh->used, now);
469 if (!(neigh->nud_state&(NUD_CONNECTED|NUD_DELAY|NUD_PROBE)))472 if (!(neigh->nud_state & (NUD_CONNECTED | NUD_DELAY | NUD_PROBE)))
470 return __neigh_event_send(neigh, skb);473 return __neigh_event_send(neigh, skb, immediate_ok);
471 return 0;474 return 0;
472}475}
473 476
477static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
478{
479 return neigh_event_send_probe(neigh, skb, true);
480}
481
474#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)482#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)
475static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb)483static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb)
476{484{
include/net/netns/ipv6.h+2−1
@@ -77,9 +77,10 @@ struct netns_ipv6 { · 76 unmodified lines
77 spinlock_t fib6_gc_lock;77 spinlock_t fib6_gc_lock;
78 unsigned int ip6_rt_gc_expire;78 unsigned int ip6_rt_gc_expire;
79 unsigned long ip6_rt_last_gc;79 unsigned long ip6_rt_last_gc;
80 unsigned char flowlabel_has_excl;
80#ifdef CONFIG_IPV6_MULTIPLE_TABLES81#ifdef CONFIG_IPV6_MULTIPLE_TABLES
81 unsigned int fib6_rules_require_fldissect;
82 bool fib6_has_custom_rules;82 bool fib6_has_custom_rules;
83 unsigned int fib6_rules_require_fldissect;
83#ifdef CONFIG_IPV6_SUBTREES84#ifdef CONFIG_IPV6_SUBTREES
84 unsigned int fib6_routes_require_src;85 unsigned int fib6_routes_require_src;
85#endif86#endif
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/sound/pcm.h+15−0
@@ -617,6 +617,7 @@ void snd_pcm_stream_unlock(struct snd_pcm_substream *substream); · 616 unmodified lines
617void snd_pcm_stream_lock_irq(struct snd_pcm_substream *substream);617void snd_pcm_stream_lock_irq(struct snd_pcm_substream *substream);
618void snd_pcm_stream_unlock_irq(struct snd_pcm_substream *substream);618void snd_pcm_stream_unlock_irq(struct snd_pcm_substream *substream);
619unsigned long _snd_pcm_stream_lock_irqsave(struct snd_pcm_substream *substream);619unsigned long _snd_pcm_stream_lock_irqsave(struct snd_pcm_substream *substream);
620unsigned long _snd_pcm_stream_lock_irqsave_nested(struct snd_pcm_substream *substream);
620 621
621/**622/**
622 * snd_pcm_stream_lock_irqsave - Lock the PCM stream623 * snd_pcm_stream_lock_irqsave - Lock the PCM stream
@@ -635,6 +636,20 @@ unsigned long _snd_pcm_stream_lock_irqsave(struct snd_pcm_substream *substream); · 12 unmodified lines
635void snd_pcm_stream_unlock_irqrestore(struct snd_pcm_substream *substream,636void snd_pcm_stream_unlock_irqrestore(struct snd_pcm_substream *substream,
636 unsigned long flags);637 unsigned long flags);
637 638
639/**
640 * snd_pcm_stream_lock_irqsave_nested - Single-nested PCM stream locking
641 * @substream: PCM substream
642 * @flags: irq flags
643 *
644 * This locks the PCM stream like snd_pcm_stream_lock_irqsave() but with
645 * the single-depth lockdep subclass.
646 */
647#define snd_pcm_stream_lock_irqsave_nested(substream, flags) \
648 do { \
649 typecheck(unsigned long, flags); \
650 flags = _snd_pcm_stream_lock_irqsave_nested(substream); \
651 } while (0)
652
638/**653/**
639 * snd_pcm_group_for_each_entry - iterate over the linked substreams654 * snd_pcm_group_for_each_entry - iterate over the linked substreams
640 * @s: the iterator655 * @s: the iterator
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+4−3
@@ -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
@@ -1623,9 +1624,6 @@ struct kvm_enc_region { · 484 unmodified lines
1623#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3)1624#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3)
1624#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4)1625#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4)
1625 1626
1626/* Available with KVM_CAP_XSAVE2 */
1627#define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave)
1628
1629struct kvm_s390_pv_sec_parm {1627struct kvm_s390_pv_sec_parm {
1630 __u64 origin;1628 __u64 origin;
1631 __u64 length;1629 __u64 length;
@@ -2047,4 +2045,7 @@ struct kvm_stats_desc { · 415 unmodified lines
2047 2045
2048#define KVM_GET_STATS_FD _IO(KVMIO, 0xce)2046#define KVM_GET_STATS_FD _IO(KVMIO, 0xce)
2049 2047
2048/* Available with KVM_CAP_XSAVE2 */
2049#define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave)
2050
2050#endif /* __LINUX_KVM_H */2051#endif /* __LINUX_KVM_H */
include/uapi/linux/netfilter/nf_conntrack_common.h+1−1
@@ -106,7 +106,7 @@ enum ip_conntrack_status { · 105 unmodified lines
106 IPS_NAT_CLASH = IPS_UNTRACKED,106 IPS_NAT_CLASH = IPS_UNTRACKED,
107#endif107#endif
108 108
109 /* Conntrack got a helper explicitly attached via CT target. */109 /* Conntrack got a helper explicitly attached (ruleset, ctnetlink). */
110 IPS_HELPER_BIT = 13,110 IPS_HELPER_BIT = 13,
111 IPS_HELPER = (1 << IPS_HELPER_BIT),111 IPS_HELPER = (1 << IPS_HELPER_BIT),
112 112
include/uapi/linux/perf_event.h+2−0
@@ -465,6 +465,8 @@ struct perf_event_attr { · 464 unmodified lines
465 /*465 /*
466 * User provided data if sigtrap=1, passed back to user via466 * User provided data if sigtrap=1, passed back to user via
467 * siginfo_t::si_perf_data, e.g. to permit user to identify the event.467 * siginfo_t::si_perf_data, e.g. to permit user to identify the event.
468 * Note, siginfo_t::si_perf_data is long-sized, and sig_data will be
469 * truncated accordingly on 32 bit architectures.
468 */470 */
469 __u64 sig_data;471 __u64 sig_data;
470};472};
include/uapi/linux/smc_diag.h+5−6
@@ -84,12 +84,11 @@ struct smc_diag_conninfo { · 83 unmodified lines
84/* SMC_DIAG_LINKINFO */84/* SMC_DIAG_LINKINFO */
85 85
86struct smc_diag_linkinfo {86struct smc_diag_linkinfo {
87 __u8 link_id; /* link identifier */87 __u8 link_id; /* link identifier */
88 __u8 ibname[IB_DEVICE_NAME_MAX]; /* name of the RDMA device */88 __u8 ibname[IB_DEVICE_NAME_MAX]; /* name of the RDMA device */
89 __u8 ibport; /* RDMA device port number */89 __u8 ibport; /* RDMA device port number */
90 __u8 gid[40]; /* local GID */90 __u8 gid[40]; /* local GID */
91 __u8 peer_gid[40]; /* peer GID */91 __u8 peer_gid[40]; /* peer GID */
92 __aligned_u64 net_cookie; /* RDMA device net namespace */
93};92};
94 93
95struct smc_diag_lgrinfo {94struct smc_diag_lgrinfo {
include/uapi/sound/asound.h+3−1
@@ -56,8 +56,10 @@ · 55 unmodified lines
56 * *56 * *
57 ****************************************************************************/57 ****************************************************************************/
58 58
59#define AES_IEC958_STATUS_SIZE 24
60
59struct snd_aes_iec958 {61struct snd_aes_iec958 {
60 unsigned char status[24]; /* AES/IEC958 channel status bits */62 unsigned char status[AES_IEC958_STATUS_SIZE]; /* AES/IEC958 channel status bits */
61 unsigned char subcode[147]; /* AES/IEC958 subcode bits */63 unsigned char subcode[147]; /* AES/IEC958 subcode bits */
62 unsigned char pad; /* nothing */64 unsigned char pad; /* nothing */
63 unsigned char dig_subframe[4]; /* AES/IEC958 subframe bits */65 unsigned char dig_subframe[4]; /* AES/IEC958 subframe bits */
include/uapi/xen/gntdev.h+7−1
@@ -47,7 +47,13 @@ struct ioctl_gntdev_grant_ref { · 46 unmodified lines
47/*47/*
48 * Inserts the grant references into the mapping table of an instance48 * Inserts the grant references into the mapping table of an instance
49 * of gntdev. N.B. This does not perform the mapping, which is deferred49 * of gntdev. N.B. This does not perform the mapping, which is deferred
50 * until mmap() is called with @index as the offset.50 * until mmap() is called with @index as the offset. @index should be
51 * considered opaque to userspace, with one exception: if no grant
52 * references have ever been inserted into the mapping table of this
53 * instance, @index will be set to 0. This is necessary to use gntdev
54 * with userspace APIs that expect a file descriptor that can be
55 * mmap()'d at offset 0, such as Wayland. If @count is set to 0, this
56 * ioctl will fail.
51 */57 */
52#define IOCTL_GNTDEV_MAP_GRANT_REF \58#define IOCTL_GNTDEV_MAP_GRANT_REF \
53_IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))59_IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))
include/xen/xenbus_dev.h+0−2
@@ -1,6 +1,4 @@
1/******************************************************************************1/******************************************************************************
2 * evtchn.h
3 *
4 * Interface to /dev/xen/xenbus_backend.2 * Interface to /dev/xen/xenbus_backend.
5 *3 *
6 * Copyright (c) 2011 Bastian Blank <waldi@debian.org>4 * Copyright (c) 2011 Bastian Blank <waldi@debian.org>

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