No conflicts.
Showing the changes to include (20 of 405 files). Show all
Unified · Split
| @@ -1258,6 +1258,7 @@ unsigned long disk_start_io_acct(struct gendisk *disk, unsigned int sectors, · 1257 unmodified lines | |||
| 1258 | void disk_end_io_acct(struct gendisk *disk, unsigned int op, | 1258 | void disk_end_io_acct(struct gendisk *disk, unsigned int op, |
| 1259 | unsigned long start_time); | 1259 | unsigned long start_time); |
| 1260 | 1260 | ||
| 1261 | void bio_start_io_acct_time(struct bio *bio, unsigned long start_time); | ||
| 1261 | unsigned long bio_start_io_acct(struct bio *bio); | 1262 | unsigned long bio_start_io_acct(struct bio *bio); |
| 1262 | void bio_end_io_acct_remapped(struct bio *bio, unsigned long start_time, | 1263 | void bio_end_io_acct_remapped(struct bio *bio, unsigned long start_time, |
| 1263 | struct block_device *orig_bdev); | 1264 | struct block_device *orig_bdev); |
| @@ -1483,7 +1483,7 @@ struct super_block { · 1482 unmodified lines | |||
| 1483 | #ifdef CONFIG_FS_VERITY | 1483 | #ifdef CONFIG_FS_VERITY |
| 1484 | const struct fsverity_operations *s_vop; | 1484 | const struct fsverity_operations *s_vop; |
| 1485 | #endif | 1485 | #endif |
| 1486 | #ifdef CONFIG_UNICODE | 1486 | #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 | #endif | 1489 | #endif |
| @@ -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 | */ | ||
| 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 | |||
| 227 | /* | 264 | /* |
| 228 | * fsnotify_unlink - 'name' was unlinked | 265 | * 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 | */ |
| 232 | static inline void fsnotify_unlink(struct inode *dir, struct dentry *dentry) | 269 | static 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 | */ |
| 259 | static inline void fsnotify_rmdir(struct inode *dir, struct dentry *dentry) | 296 | static 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 | /* |
| @@ -46,8 +46,10 @@ struct vlan_hdr { · 45 unmodified lines | |||
| 46 | * @h_vlan_encapsulated_proto: packet type ID or len | 46 | * @h_vlan_encapsulated_proto: packet type ID or len |
| 47 | */ | 47 | */ |
| 48 | struct vlan_ethhdr { | 48 | struct 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; |
| @@ -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) |
| 81 | LSM_HOOK(int, 0, move_mount, const struct path *from_path, | 81 | LSM_HOOK(int, 0, move_mount, const struct path *from_path, |
| 82 | const struct path *to_path) | 82 | 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, |
| 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) |
| 86 | LSM_HOOK(int, 0, dentry_create_files_as, struct dentry *dentry, int mode, | 86 | LSM_HOOK(int, 0, dentry_create_files_as, struct dentry *dentry, int mode, |
| @@ -1506,11 +1506,18 @@ static inline u8 page_kasan_tag(const struct page *page) · 1505 unmodified lines | |||
| 1506 | 1506 | ||
| 1507 | static inline void page_kasan_tag_set(struct page *page, u8 tag) | 1507 | static 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 | ||
| 1516 | static inline void page_kasan_tag_reset(struct page *page) | 1523 | static inline void page_kasan_tag_reset(struct page *page) |
| @@ -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)) |
| 262 | FOLIO_MATCH(flags, flags); | 262 | FOLIO_MATCH(flags, flags); |
| 263 | FOLIO_MATCH(lru, lru); | 263 | FOLIO_MATCH(lru, lru); |
| 264 | FOLIO_MATCH(mapping, mapping); | ||
| 264 | FOLIO_MATCH(compound_head, lru); | 265 | FOLIO_MATCH(compound_head, lru); |
| 265 | FOLIO_MATCH(index, index); | 266 | FOLIO_MATCH(index, index); |
| 266 | FOLIO_MATCH(private, private); | 267 | FOLIO_MATCH(private, private); |
| @@ -25,18 +25,17 @@ void psi_memstall_enter(unsigned long *flags); · 24 unmodified lines | |||
| 25 | void psi_memstall_leave(unsigned long *flags); | 25 | void psi_memstall_leave(unsigned long *flags); |
| 26 | 26 | ||
| 27 | int psi_show(struct seq_file *s, struct psi_group *group, enum psi_res res); | 27 | 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 | |||
| 34 | struct psi_trigger *psi_trigger_create(struct psi_group *group, | 28 | struct psi_trigger *psi_trigger_create(struct psi_group *group, |
| 35 | char *buf, size_t nbytes, enum psi_res res); | 29 | char *buf, size_t nbytes, enum psi_res res); |
| 36 | void psi_trigger_destroy(struct psi_trigger *t); | 30 | void psi_trigger_destroy(struct psi_trigger *t); |
| 37 | 31 | ||
| 38 | __poll_t psi_trigger_poll(void **trigger_ptr, struct file *file, | 32 | __poll_t psi_trigger_poll(void **trigger_ptr, struct file *file, |
| 39 | poll_table *wait); | 33 | poll_table *wait); |
| 34 | |||
| 35 | #ifdef CONFIG_CGROUPS | ||
| 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); | ||
| 40 | #endif | 39 | #endif |
| 41 | 40 | ||
| 42 | #else /* CONFIG_PSI */ | 41 | #else /* CONFIG_PSI */ |
| @@ -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 to | 93 | * 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 | */ |
| 97 | static inline struct kqid make_kqid(struct user_namespace *from, | 97 | static inline struct kqid make_kqid(struct user_namespace *from, |
| @@ -1680,7 +1680,6 @@ extern struct pid *cad_pid; · 1679 unmodified lines | |||
| 1680 | #define PF_MEMALLOC 0x00000800 /* Allocating memory */ | 1680 | #define PF_MEMALLOC 0x00000800 /* Allocating memory */ |
| 1681 | #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 */ |
| 1682 | #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 */ |
| 1683 | #define PF_USED_ASYNC 0x00004000 /* Used async_schedule*(), used by module init */ | ||
| 1684 | #define PF_NOFREEZE 0x00008000 /* This thread should not be frozen */ | 1683 | #define PF_NOFREEZE 0x00008000 /* This thread should not be frozen */ |
| 1685 | #define PF_FROZEN 0x00010000 /* Frozen for system suspend */ | 1684 | #define PF_FROZEN 0x00010000 /* Frozen for system suspend */ |
| 1686 | #define PF_KSWAPD 0x00020000 /* I am kswapd */ | 1685 | #define PF_KSWAPD 0x00020000 /* I am kswapd */ |
| @@ -430,15 +430,7 @@ struct platform_hibernation_ops { · 429 unmodified lines | |||
| 430 | 430 | ||
| 431 | #ifdef CONFIG_HIBERNATION | 431 | #ifdef CONFIG_HIBERNATION |
| 432 | /* kernel/power/snapshot.c */ | 432 | /* kernel/power/snapshot.c */ |
| 433 | extern void __register_nosave_region(unsigned long b, unsigned long e, int km); | 433 | extern void register_nosave_region(unsigned long b, unsigned long e); |
| 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 | } | ||
| 442 | extern int swsusp_page_is_forbidden(struct page *); | 434 | extern int swsusp_page_is_forbidden(struct page *); |
| 443 | extern void swsusp_set_page_free(struct page *); | 435 | extern void swsusp_set_page_free(struct page *); |
| 444 | extern void swsusp_unset_page_free(struct page *); | 436 | extern void swsusp_unset_page_free(struct page *); |
| @@ -458,7 +450,6 @@ int pfn_is_nosave(unsigned long pfn); · 13 unmodified lines | |||
| 458 | int hibernate_quiet_exec(int (*func)(void *data), void *data); | 450 | int hibernate_quiet_exec(int (*func)(void *data), void *data); |
| 459 | #else /* CONFIG_HIBERNATION */ | 451 | #else /* CONFIG_HIBERNATION */ |
| 460 | static inline void register_nosave_region(unsigned long b, unsigned long e) {} | 452 | 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) {} | ||
| 462 | static inline int swsusp_page_is_forbidden(struct page *p) { return 0; } | 453 | static inline int swsusp_page_is_forbidden(struct page *p) { return 0; } |
| 463 | static inline void swsusp_set_page_free(struct page *p) {} | 454 | static inline void swsusp_set_page_free(struct page *p) {} |
| 464 | static inline void swsusp_unset_page_free(struct page *p) {} | 455 | static inline void swsusp_unset_page_free(struct page *p) {} |
| @@ -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 | ||
| 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) |
| 269 | { | 269 | { |
| 270 | return NULL; | 270 | return NULL; |
| 271 | } | 271 | } |
| @@ -91,6 +91,12 @@ fwnode_usb_role_switch_get(struct fwnode_handle *node) · 90 unmodified lines | |||
| 91 | 91 | ||
| 92 | static inline void usb_role_switch_put(struct usb_role_switch *sw) { } | 92 | static inline void usb_role_switch_put(struct usb_role_switch *sw) { } |
| 93 | 93 | ||
| 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 | |||
| 94 | static inline struct usb_role_switch * | 100 | static inline struct usb_role_switch * |
| 95 | usb_role_switch_register(struct device *parent, | 101 | usb_role_switch_register(struct device *parent, |
| 96 | const struct usb_role_switch_desc *desc) | 102 | const struct usb_role_switch_desc *desc) |
| @@ -227,6 +227,7 @@ typedef struct ax25_dev { · 226 unmodified lines | |||
| 227 | #if defined(CONFIG_AX25_DAMA_SLAVE) || defined(CONFIG_AX25_DAMA_MASTER) | 227 | #if defined(CONFIG_AX25_DAMA_SLAVE) || defined(CONFIG_AX25_DAMA_MASTER) |
| 228 | ax25_dama_info dama; | 228 | ax25_dama_info dama; |
| 229 | #endif | 229 | #endif |
| 230 | refcount_t refcount; | ||
| 230 | } ax25_dev; | 231 | } ax25_dev; |
| 231 | 232 | ||
| 232 | typedef struct ax25_cb { | 233 | typedef struct ax25_cb { |
| @@ -281,6 +282,17 @@ static __inline__ void ax25_cb_put(ax25_cb *ax25) · 48 unmodified lines | |||
| 281 | } | 282 | } |
| 282 | } | 283 | } |
| 283 | 284 | ||
| 285 | static inline void ax25_dev_hold(ax25_dev *ax25_dev) | ||
| 286 | { | ||
| 287 | refcount_inc(&ax25_dev->refcount); | ||
| 288 | } | ||
| 289 | |||
| 290 | static inline void ax25_dev_put(ax25_dev *ax25_dev) | ||
| 291 | { | ||
| 292 | if (refcount_dec_and_test(&ax25_dev->refcount)) { | ||
| 293 | kfree(ax25_dev); | ||
| 294 | } | ||
| 295 | } | ||
| 284 | static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev) | 296 | static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev) |
| 285 | { | 297 | { |
| 286 | skb->dev = dev; | 298 | skb->dev = dev; |
| @@ -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 | } |
| 352 | void neigh_destroy(struct neighbour *neigh); | 352 | void neigh_destroy(struct neighbour *neigh); |
| 353 | int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb); | 353 | int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb, |
| 354 | const bool immediate_ok); | ||
| 354 | int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, u32 flags, | 355 | int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, u32 flags, |
| 355 | u32 nlmsg_pid); | 356 | u32 nlmsg_pid); |
| 356 | void __neigh_set_probe_once(struct neighbour *neigh); | 357 | void __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 | ||
| 463 | static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb) | 464 | static __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 | ||
| 477 | static 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) |
| 475 | static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb) | 483 | static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb) |
| 476 | { | 484 | { |
| @@ -23,8 +23,9 @@ · 22 unmodified lines | |||
| 23 | 23 | ||
| 24 | #undef __get_rel_dynamic_array | 24 | #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_len | 31 | #undef __get_rel_dynamic_array_len |
| @@ -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_array | 320 | #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_len | 327 | #undef __get_rel_dynamic_array_len |
| @@ -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 */ | ||
| @@ -1133,6 +1133,7 @@ struct kvm_ppc_resize_hpt { · 1132 unmodified lines | |||
| 1133 | #define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206 | 1133 | #define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206 |
| 1134 | #define KVM_CAP_VM_GPA_BITS 207 | 1134 | #define KVM_CAP_VM_GPA_BITS 207 |
| 1135 | #define KVM_CAP_XSAVE2 208 | 1135 | #define KVM_CAP_XSAVE2 208 |
| 1136 | #define KVM_CAP_SYS_ATTRIBUTES 209 | ||
| 1136 | 1137 | ||
| 1137 | #ifdef KVM_CAP_IRQ_ROUTING | 1138 | #ifdef KVM_CAP_IRQ_ROUTING |
| 1138 | 1139 | ||
| @@ -84,12 +84,11 @@ struct smc_diag_conninfo { · 83 unmodified lines | |||
| 84 | /* SMC_DIAG_LINKINFO */ | 84 | /* SMC_DIAG_LINKINFO */ |
| 85 | 85 | ||
| 86 | struct smc_diag_linkinfo { | 86 | struct 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 | ||
| 95 | struct smc_diag_lgrinfo { | 94 | struct smc_diag_lgrinfo { |