History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

No conflicts.

Jakub Kicinski committed 4 years ago

Commit c59400a2 parents 9c30918 dcb85f8405 files · +4030 −2043Browse files

Showing the changes to include (20 of 405 files). Show all

Unified · Split

20 files
  1. include/linux/blkdev.h +1 −0
  2. include/linux/fs.h +1 −1
  3. include/linux/fsnotify.h +43 −6
  4. include/linux/if_vlan.h +4 −2
  5. include/linux/lsm_hook_defs.h +1 −1
  6. include/linux/mm.h +12 −5
  7. include/linux/mm_types.h +1 −0
  8. include/linux/psi.h +5 −6
  9. include/linux/quota.h +1 −1
  10. include/linux/sched.h +0 −1
  11. include/linux/suspend.h +1 −10
  12. include/linux/sysctl.h +1 −1
  13. include/linux/usb/role.h +6 −0
  14. include/net/ax25.h +12 −0
  15. include/net/neighbour.h +13 −5
  16. include/trace/perf.h +3 −2
  17. include/trace/trace_events.h +5 −4
  18. include/uapi/linux/cyclades.h +35 −0
  19. include/uapi/linux/kvm.h +1 −0
  20. include/uapi/linux/smc_diag.h +5 −6
include/linux/blkdev.h+1−0
@@ -1258,6 +1258,7 @@ unsigned long disk_start_io_acct(struct gendisk *disk, unsigned int sectors, · 1257 unmodified lines
1258void disk_end_io_acct(struct gendisk *disk, unsigned int op,1258void disk_end_io_acct(struct gendisk *disk, unsigned int op,
1259 unsigned long start_time);1259 unsigned long start_time);
1260 1260
1261void bio_start_io_acct_time(struct bio *bio, unsigned long start_time);
1261unsigned long bio_start_io_acct(struct bio *bio);1262unsigned long bio_start_io_acct(struct bio *bio);
1262void bio_end_io_acct_remapped(struct bio *bio, unsigned long start_time,1263void bio_end_io_acct_remapped(struct bio *bio, unsigned long start_time,
1263 struct block_device *orig_bdev);1264 struct block_device *orig_bdev);
include/linux/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/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/lsm_hook_defs.h+1−1
@@ -80,7 +80,7 @@ LSM_HOOK(int, 0, sb_clone_mnt_opts, const struct super_block *oldsb, · 79 unmodified lines
80 unsigned long *set_kern_flags)80 unsigned long *set_kern_flags)
81LSM_HOOK(int, 0, move_mount, const struct path *from_path,81LSM_HOOK(int, 0, move_mount, const struct path *from_path,
82 const struct path *to_path)82 const struct path *to_path)
83LSM_HOOK(int, 0, dentry_init_security, struct dentry *dentry,83LSM_HOOK(int, -EOPNOTSUPP, dentry_init_security, struct dentry *dentry,
84 int mode, const struct qstr *name, const char **xattr_name,84 int mode, const struct qstr *name, const char **xattr_name,
85 void **ctx, u32 *ctxlen)85 void **ctx, u32 *ctxlen)
86LSM_HOOK(int, 0, dentry_create_files_as, struct dentry *dentry, int mode,86LSM_HOOK(int, 0, dentry_create_files_as, struct dentry *dentry, int mode,
include/linux/mm.h+12−5
@@ -1506,11 +1506,18 @@ static inline u8 page_kasan_tag(const struct page *page) · 1505 unmodified lines
1506 1506
1507static inline void page_kasan_tag_set(struct page *page, u8 tag)1507static inline void page_kasan_tag_set(struct page *page, u8 tag)
1508{1508{
1509 if (kasan_enabled()) {1509 unsigned long old_flags, flags;
1510 tag ^= 0xff;1510
1511 page->flags &= ~(KASAN_TAG_MASK << KASAN_TAG_PGSHIFT);1511 if (!kasan_enabled())
1512 page->flags |= (tag & KASAN_TAG_MASK) << KASAN_TAG_PGSHIFT;1512 return;
1513 }1513
1514 tag ^= 0xff;
1515 old_flags = READ_ONCE(page->flags);
1516 do {
1517 flags = old_flags;
1518 flags &= ~(KASAN_TAG_MASK << KASAN_TAG_PGSHIFT);
1519 flags |= (tag & KASAN_TAG_MASK) << KASAN_TAG_PGSHIFT;
1520 } while (unlikely(!try_cmpxchg(&page->flags, &old_flags, flags)));
1514}1521}
1515 1522
1516static inline void page_kasan_tag_reset(struct page *page)1523static inline void page_kasan_tag_reset(struct page *page)
include/linux/mm_types.h+1−0
@@ -261,6 +261,7 @@ static_assert(sizeof(struct page) == sizeof(struct folio)); · 260 unmodified lines
261 static_assert(offsetof(struct page, pg) == offsetof(struct folio, fl))261 static_assert(offsetof(struct page, pg) == offsetof(struct folio, fl))
262FOLIO_MATCH(flags, flags);262FOLIO_MATCH(flags, flags);
263FOLIO_MATCH(lru, lru);263FOLIO_MATCH(lru, lru);
264FOLIO_MATCH(mapping, mapping);
264FOLIO_MATCH(compound_head, lru);265FOLIO_MATCH(compound_head, lru);
265FOLIO_MATCH(index, index);266FOLIO_MATCH(index, index);
266FOLIO_MATCH(private, private);267FOLIO_MATCH(private, private);
include/linux/psi.h+5−6
@@ -25,18 +25,17 @@ void psi_memstall_enter(unsigned long *flags); · 24 unmodified lines
25void psi_memstall_leave(unsigned long *flags);25void psi_memstall_leave(unsigned long *flags);
26 26
27int psi_show(struct seq_file *s, struct psi_group *group, enum psi_res res);27int psi_show(struct seq_file *s, struct psi_group *group, enum psi_res res);
28
29#ifdef CONFIG_CGROUPS
30int psi_cgroup_alloc(struct cgroup *cgrp);
31void psi_cgroup_free(struct cgroup *cgrp);
32void cgroup_move_task(struct task_struct *p, struct css_set *to);
33
34struct psi_trigger *psi_trigger_create(struct psi_group *group,28struct psi_trigger *psi_trigger_create(struct psi_group *group,
35 char *buf, size_t nbytes, enum psi_res res);29 char *buf, size_t nbytes, enum psi_res res);
36void psi_trigger_destroy(struct psi_trigger *t);30void psi_trigger_destroy(struct psi_trigger *t);
37 31
38__poll_t psi_trigger_poll(void **trigger_ptr, struct file *file,32__poll_t psi_trigger_poll(void **trigger_ptr, struct file *file,
39 poll_table *wait);33 poll_table *wait);
34
35#ifdef CONFIG_CGROUPS
36int psi_cgroup_alloc(struct cgroup *cgrp);
37void psi_cgroup_free(struct cgroup *cgrp);
38void cgroup_move_task(struct task_struct *p, struct css_set *to);
40#endif39#endif
41 40
42#else /* CONFIG_PSI */41#else /* CONFIG_PSI */
include/linux/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−1
@@ -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 */
include/linux/suspend.h+1−10
@@ -430,15 +430,7 @@ struct platform_hibernation_ops { · 429 unmodified lines
430 430
431#ifdef CONFIG_HIBERNATION431#ifdef CONFIG_HIBERNATION
432/* kernel/power/snapshot.c */432/* kernel/power/snapshot.c */
433extern void __register_nosave_region(unsigned long b, unsigned long e, int km);433extern void register_nosave_region(unsigned long b, unsigned long e);
434static inline void __init register_nosave_region(unsigned long b, unsigned long e)
435{
436 __register_nosave_region(b, e, 0);
437}
438static inline void __init register_nosave_region_late(unsigned long b, unsigned long e)
439{
440 __register_nosave_region(b, e, 1);
441}
442extern int swsusp_page_is_forbidden(struct page *);434extern int swsusp_page_is_forbidden(struct page *);
443extern void swsusp_set_page_free(struct page *);435extern void swsusp_set_page_free(struct page *);
444extern void swsusp_unset_page_free(struct page *);436extern void swsusp_unset_page_free(struct page *);
@@ -458,7 +450,6 @@ int pfn_is_nosave(unsigned long pfn); · 13 unmodified lines
458int hibernate_quiet_exec(int (*func)(void *data), void *data);450int hibernate_quiet_exec(int (*func)(void *data), void *data);
459#else /* CONFIG_HIBERNATION */451#else /* CONFIG_HIBERNATION */
460static inline void register_nosave_region(unsigned long b, unsigned long e) {}452static inline void register_nosave_region(unsigned long b, unsigned long e) {}
461static inline void register_nosave_region_late(unsigned long b, unsigned long e) {}
462static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }453static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }
463static inline void swsusp_set_page_free(struct page *p) {}454static inline void swsusp_set_page_free(struct page *p) {}
464static inline void swsusp_unset_page_free(struct page *p) {}455static inline void swsusp_unset_page_free(struct page *p) {}
include/linux/sysctl.h+1−1
@@ -265,7 +265,7 @@ static inline struct ctl_table_header *register_sysctl_table(struct ctl_table * · 264 unmodified lines
265 return NULL;265 return NULL;
266}266}
267 267
268static inline struct sysctl_header *register_sysctl_mount_point(const char *path)268static inline struct ctl_table_header *register_sysctl_mount_point(const char *path)
269{269{
270 return NULL;270 return NULL;
271}271}
include/linux/usb/role.h+6−0
@@ -91,6 +91,12 @@ fwnode_usb_role_switch_get(struct fwnode_handle *node) · 90 unmodified lines
91 91
92static inline void usb_role_switch_put(struct usb_role_switch *sw) { }92static inline void usb_role_switch_put(struct usb_role_switch *sw) { }
93 93
94static inline struct usb_role_switch *
95usb_role_switch_find_by_fwnode(const struct fwnode_handle *fwnode)
96{
97 return NULL;
98}
99
94static inline struct usb_role_switch *100static inline struct usb_role_switch *
95usb_role_switch_register(struct device *parent,101usb_role_switch_register(struct device *parent,
96 const struct usb_role_switch_desc *desc)102 const struct usb_role_switch_desc *desc)
include/net/ax25.h+12−0
@@ -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#endif229#endif
230 refcount_t refcount;
230} ax25_dev;231} ax25_dev;
231 232
232typedef struct ax25_cb {233typedef 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
285static inline void ax25_dev_hold(ax25_dev *ax25_dev)
286{
287 refcount_inc(&ax25_dev->refcount);
288}
289
290static 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}
284static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev)296static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev)
285{297{
286 skb->dev = dev;298 skb->dev = dev;
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/trace/perf.h+3−2
@@ -23,8 +23,9 @@ · 22 unmodified lines
23 23
24#undef __get_rel_dynamic_array24#undef __get_rel_dynamic_array
25#define __get_rel_dynamic_array(field) \25#define __get_rel_dynamic_array(field) \
26 ((void *)(&__entry->__rel_loc_##field) + \26 ((void *)__entry + \
27 sizeof(__entry->__rel_loc_##field) + \27 offsetof(typeof(*__entry), __rel_loc_##field) + \
28 sizeof(__entry->__rel_loc_##field) + \
28 (__entry->__rel_loc_##field & 0xffff))29 (__entry->__rel_loc_##field & 0xffff))
29 30
30#undef __get_rel_dynamic_array_len31#undef __get_rel_dynamic_array_len
include/trace/trace_events.h+5−4
@@ -128,7 +128,7 @@ TRACE_MAKE_SYSTEM_STR(); · 127 unmodified lines
128 struct trace_event_raw_##name { \128 struct trace_event_raw_##name { \
129 struct trace_entry ent; \129 struct trace_entry ent; \
130 tstruct \130 tstruct \
131 char __data[0]; \131 char __data[]; \
132 }; \132 }; \
133 \133 \
134 static struct trace_event_class event_class_##name;134 static struct trace_event_class event_class_##name;
@@ -318,9 +318,10 @@ TRACE_MAKE_SYSTEM_STR(); · 183 unmodified lines
318#define __get_str(field) ((char *)__get_dynamic_array(field))318#define __get_str(field) ((char *)__get_dynamic_array(field))
319 319
320#undef __get_rel_dynamic_array320#undef __get_rel_dynamic_array
321#define __get_rel_dynamic_array(field) \321#define __get_rel_dynamic_array(field) \
322 ((void *)(&__entry->__rel_loc_##field) + \322 ((void *)__entry + \
323 sizeof(__entry->__rel_loc_##field) + \323 offsetof(typeof(*__entry), __rel_loc_##field) + \
324 sizeof(__entry->__rel_loc_##field) + \
324 (__entry->__rel_loc_##field & 0xffff))325 (__entry->__rel_loc_##field & 0xffff))
325 326
326#undef __get_rel_dynamic_array_len327#undef __get_rel_dynamic_array_len
include/uapi/linux/cyclades.h+35−0
@@ -0,0 +1,35 @@
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2
3#ifndef _UAPI_LINUX_CYCLADES_H
4#define _UAPI_LINUX_CYCLADES_H
5
6#warning "Support for features provided by this header has been removed"
7#warning "Please consider updating your code"
8
9struct cyclades_monitor {
10 unsigned long int_count;
11 unsigned long char_count;
12 unsigned long char_max;
13 unsigned long char_last;
14};
15
16#define CYGETMON 0x435901
17#define CYGETTHRESH 0x435902
18#define CYSETTHRESH 0x435903
19#define CYGETDEFTHRESH 0x435904
20#define CYSETDEFTHRESH 0x435905
21#define CYGETTIMEOUT 0x435906
22#define CYSETTIMEOUT 0x435907
23#define CYGETDEFTIMEOUT 0x435908
24#define CYSETDEFTIMEOUT 0x435909
25#define CYSETRFLOW 0x43590a
26#define CYGETRFLOW 0x43590b
27#define CYSETRTSDTR_INV 0x43590c
28#define CYGETRTSDTR_INV 0x43590d
29#define CYZSETPOLLCYCLE 0x43590e
30#define CYZGETPOLLCYCLE 0x43590f
31#define CYGETCD1400VER 0x435910
32#define CYSETWAIT 0x435912
33#define CYGETWAIT 0x435913
34
35#endif /* _UAPI_LINUX_CYCLADES_H */
include/uapi/linux/kvm.h+1−0
@@ -1133,6 +1133,7 @@ struct kvm_ppc_resize_hpt { · 1132 unmodified lines
1133#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 2061133#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
1134#define KVM_CAP_VM_GPA_BITS 2071134#define KVM_CAP_VM_GPA_BITS 207
1135#define KVM_CAP_XSAVE2 2081135#define KVM_CAP_XSAVE2 208
1136#define KVM_CAP_SYS_ATTRIBUTES 209
1136 1137
1137#ifdef KVM_CAP_IRQ_ROUTING1138#ifdef KVM_CAP_IRQ_ROUTING
1138 1139
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 {

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