diff options
| author | Dave Airlie <airlied@redhat.com> | 2014-06-05 06:28:59 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2014-06-05 06:28:59 -0400 |
| commit | 8d4ad9d4bb0a618c975a32d77087694ec6336f68 (patch) | |
| tree | d18d12688174a623e3503b11118e44ef8186c90b /include | |
| parent | 5ea1f752ae04be403a3dc8ec876a60d7f5f6990a (diff) | |
| parent | 9e9a928eed8796a0a1aaed7e0b676db86ba84594 (diff) | |
Merge commit '9e9a928eed8796a0a1aaed7e0b676db86ba84594' into drm-next
Merge drm-fixes into drm-next.
Both i915 and radeon need this done for later patches.
Conflicts:
drivers/gpu/drm/drm_crtc_helper.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_execbuffer.c
drivers/gpu/drm/i915/i915_gem_gtt.c
Diffstat (limited to 'include')
48 files changed, 265 insertions, 75 deletions
diff --git a/include/asm-generic/fixmap.h b/include/asm-generic/fixmap.h index 5a64ca4621f3..f23174fb9ec4 100644 --- a/include/asm-generic/fixmap.h +++ b/include/asm-generic/fixmap.h | |||
| @@ -93,5 +93,8 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr) | |||
| 93 | #define set_fixmap_io(idx, phys) \ | 93 | #define set_fixmap_io(idx, phys) \ |
| 94 | __set_fixmap(idx, phys, FIXMAP_PAGE_IO) | 94 | __set_fixmap(idx, phys, FIXMAP_PAGE_IO) |
| 95 | 95 | ||
| 96 | #define set_fixmap_offset_io(idx, phys) \ | ||
| 97 | __set_fixmap_offset(idx, phys, FIXMAP_PAGE_IO) | ||
| 98 | |||
| 96 | #endif /* __ASSEMBLY__ */ | 99 | #endif /* __ASSEMBLY__ */ |
| 97 | #endif /* __ASM_GENERIC_FIXMAP_H */ | 100 | #endif /* __ASM_GENERIC_FIXMAP_H */ |
diff --git a/include/asm-generic/resource.h b/include/asm-generic/resource.h index b4ea8f50fc65..5e752b959054 100644 --- a/include/asm-generic/resource.h +++ b/include/asm-generic/resource.h | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | [RLIMIT_CPU] = { RLIM_INFINITY, RLIM_INFINITY }, \ | 12 | [RLIMIT_CPU] = { RLIM_INFINITY, RLIM_INFINITY }, \ |
| 13 | [RLIMIT_FSIZE] = { RLIM_INFINITY, RLIM_INFINITY }, \ | 13 | [RLIMIT_FSIZE] = { RLIM_INFINITY, RLIM_INFINITY }, \ |
| 14 | [RLIMIT_DATA] = { RLIM_INFINITY, RLIM_INFINITY }, \ | 14 | [RLIMIT_DATA] = { RLIM_INFINITY, RLIM_INFINITY }, \ |
| 15 | [RLIMIT_STACK] = { _STK_LIM, _STK_LIM_MAX }, \ | 15 | [RLIMIT_STACK] = { _STK_LIM, RLIM_INFINITY }, \ |
| 16 | [RLIMIT_CORE] = { 0, RLIM_INFINITY }, \ | 16 | [RLIMIT_CORE] = { 0, RLIM_INFINITY }, \ |
| 17 | [RLIMIT_RSS] = { RLIM_INFINITY, RLIM_INFINITY }, \ | 17 | [RLIMIT_RSS] = { RLIM_INFINITY, RLIM_INFINITY }, \ |
| 18 | [RLIMIT_NPROC] = { 0, 0 }, \ | 18 | [RLIMIT_NPROC] = { 0, 0 }, \ |
diff --git a/include/asm-generic/word-at-a-time.h b/include/asm-generic/word-at-a-time.h index d96deb443f18..94f9ea8abcae 100644 --- a/include/asm-generic/word-at-a-time.h +++ b/include/asm-generic/word-at-a-time.h | |||
| @@ -50,7 +50,7 @@ static inline bool has_zero(unsigned long val, unsigned long *data, const struct | |||
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | #ifndef zero_bytemask | 52 | #ifndef zero_bytemask |
| 53 | #define zero_bytemask(mask) (~0ul << __fls(mask) << 1) | 53 | #define zero_bytemask(mask) (~1ul << __fls(mask)) |
| 54 | #endif | 54 | #endif |
| 55 | 55 | ||
| 56 | #endif /* _ASM_WORD_AT_A_TIME_H */ | 56 | #endif /* _ASM_WORD_AT_A_TIME_H */ |
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h index 49376aec2fbb..6dfd64b3a604 100644 --- a/include/drm/drm_pciids.h +++ b/include/drm/drm_pciids.h | |||
| @@ -637,6 +637,22 @@ | |||
| 637 | {0x1002, 0x983d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KABINI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 637 | {0x1002, 0x983d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KABINI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 638 | {0x1002, 0x983e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KABINI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 638 | {0x1002, 0x983e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KABINI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 639 | {0x1002, 0x983f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KABINI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 639 | {0x1002, 0x983f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KABINI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 640 | {0x1002, 0x9850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 641 | {0x1002, 0x9851, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 642 | {0x1002, 0x9852, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 643 | {0x1002, 0x9853, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 644 | {0x1002, 0x9854, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 645 | {0x1002, 0x9855, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 646 | {0x1002, 0x9856, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 647 | {0x1002, 0x9857, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 648 | {0x1002, 0x9858, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 649 | {0x1002, 0x9859, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 650 | {0x1002, 0x985A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 651 | {0x1002, 0x985B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 652 | {0x1002, 0x985C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 653 | {0x1002, 0x985D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 654 | {0x1002, 0x985E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 655 | {0x1002, 0x985F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_MULLINS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 640 | {0x1002, 0x9900, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 656 | {0x1002, 0x9900, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 641 | {0x1002, 0x9901, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 657 | {0x1002, 0x9901, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 642 | {0x1002, 0x9903, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 658 | {0x1002, 0x9903, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h index d18f31a77987..0572035673f3 100644 --- a/include/drm/i915_pciids.h +++ b/include/drm/i915_pciids.h | |||
| @@ -191,8 +191,8 @@ | |||
| 191 | INTEL_VGA_DEVICE(0x0A06, info), /* ULT GT1 mobile */ \ | 191 | INTEL_VGA_DEVICE(0x0A06, info), /* ULT GT1 mobile */ \ |
| 192 | INTEL_VGA_DEVICE(0x0A16, info), /* ULT GT2 mobile */ \ | 192 | INTEL_VGA_DEVICE(0x0A16, info), /* ULT GT2 mobile */ \ |
| 193 | INTEL_VGA_DEVICE(0x0A26, info), /* ULT GT3 mobile */ \ | 193 | INTEL_VGA_DEVICE(0x0A26, info), /* ULT GT3 mobile */ \ |
| 194 | INTEL_VGA_DEVICE(0x0A0E, info), /* ULT GT1 reserved */ \ | 194 | INTEL_VGA_DEVICE(0x0A0E, info), /* ULX GT1 mobile */ \ |
| 195 | INTEL_VGA_DEVICE(0x0A1E, info), /* ULT GT2 reserved */ \ | 195 | INTEL_VGA_DEVICE(0x0A1E, info), /* ULX GT2 mobile */ \ |
| 196 | INTEL_VGA_DEVICE(0x0A2E, info), /* ULT GT3 reserved */ \ | 196 | INTEL_VGA_DEVICE(0x0A2E, info), /* ULT GT3 reserved */ \ |
| 197 | INTEL_VGA_DEVICE(0x0D06, info), /* CRW GT1 mobile */ \ | 197 | INTEL_VGA_DEVICE(0x0D06, info), /* CRW GT1 mobile */ \ |
| 198 | INTEL_VGA_DEVICE(0x0D16, info), /* CRW GT2 mobile */ \ | 198 | INTEL_VGA_DEVICE(0x0D16, info), /* CRW GT2 mobile */ \ |
diff --git a/include/dt-bindings/clk/at91.h b/include/dt-bindings/clock/at91.h index 0b4cb999a3f7..0b4cb999a3f7 100644 --- a/include/dt-bindings/clk/at91.h +++ b/include/dt-bindings/clock/at91.h | |||
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 63b5eff0a80f..fdd7e1b61f60 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h | |||
| @@ -47,6 +47,7 @@ struct amba_driver { | |||
| 47 | enum amba_vendor { | 47 | enum amba_vendor { |
| 48 | AMBA_VENDOR_ARM = 0x41, | 48 | AMBA_VENDOR_ARM = 0x41, |
| 49 | AMBA_VENDOR_ST = 0x80, | 49 | AMBA_VENDOR_ST = 0x80, |
| 50 | AMBA_VENDOR_QCOM = 0x51, | ||
| 50 | }; | 51 | }; |
| 51 | 52 | ||
| 52 | extern struct bus_type amba_bustype; | 53 | extern struct bus_type amba_bustype; |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index c2515851c1aa..d60904b9e505 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
| @@ -473,6 +473,7 @@ struct cftype { | |||
| 473 | }; | 473 | }; |
| 474 | 474 | ||
| 475 | extern struct cgroup_root cgrp_dfl_root; | 475 | extern struct cgroup_root cgrp_dfl_root; |
| 476 | extern struct css_set init_css_set; | ||
| 476 | 477 | ||
| 477 | static inline bool cgroup_on_dfl(const struct cgroup *cgrp) | 478 | static inline bool cgroup_on_dfl(const struct cgroup *cgrp) |
| 478 | { | 479 | { |
| @@ -700,6 +701,20 @@ static inline struct cgroup_subsys_state *task_css(struct task_struct *task, | |||
| 700 | return task_css_check(task, subsys_id, false); | 701 | return task_css_check(task, subsys_id, false); |
| 701 | } | 702 | } |
| 702 | 703 | ||
| 704 | /** | ||
| 705 | * task_css_is_root - test whether a task belongs to the root css | ||
| 706 | * @task: the target task | ||
| 707 | * @subsys_id: the target subsystem ID | ||
| 708 | * | ||
| 709 | * Test whether @task belongs to the root css on the specified subsystem. | ||
| 710 | * May be invoked in any context. | ||
| 711 | */ | ||
| 712 | static inline bool task_css_is_root(struct task_struct *task, int subsys_id) | ||
| 713 | { | ||
| 714 | return task_css_check(task, subsys_id, true) == | ||
| 715 | init_css_set.subsys[subsys_id]; | ||
| 716 | } | ||
| 717 | |||
| 703 | static inline struct cgroup *task_cgroup(struct task_struct *task, | 718 | static inline struct cgroup *task_cgroup(struct task_struct *task, |
| 704 | int subsys_id) | 719 | int subsys_id) |
| 705 | { | 720 | { |
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index 3b9bfdb83ba6..3c7ec327ebd2 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h | |||
| @@ -221,6 +221,8 @@ struct dentry_operations { | |||
| 221 | #define DCACHE_SYMLINK_TYPE 0x00300000 /* Symlink */ | 221 | #define DCACHE_SYMLINK_TYPE 0x00300000 /* Symlink */ |
| 222 | #define DCACHE_FILE_TYPE 0x00400000 /* Other file type */ | 222 | #define DCACHE_FILE_TYPE 0x00400000 /* Other file type */ |
| 223 | 223 | ||
| 224 | #define DCACHE_MAY_FREE 0x00800000 | ||
| 225 | |||
| 224 | extern seqlock_t rename_lock; | 226 | extern seqlock_t rename_lock; |
| 225 | 227 | ||
| 226 | static inline int dname_external(const struct dentry *dentry) | 228 | static inline int dname_external(const struct dentry *dentry) |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 8300fb87b84a..72cb0ddb9678 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -429,6 +429,7 @@ typedef bool (*dma_filter_fn)(struct dma_chan *chan, void *filter_param); | |||
| 429 | typedef void (*dma_async_tx_callback)(void *dma_async_param); | 429 | typedef void (*dma_async_tx_callback)(void *dma_async_param); |
| 430 | 430 | ||
| 431 | struct dmaengine_unmap_data { | 431 | struct dmaengine_unmap_data { |
| 432 | u8 map_cnt; | ||
| 432 | u8 to_cnt; | 433 | u8 to_cnt; |
| 433 | u8 from_cnt; | 434 | u8 from_cnt; |
| 434 | u8 bidi_cnt; | 435 | u8 bidi_cnt; |
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index 5b337cf8fb86..b65166de1d9d 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
| @@ -412,6 +412,16 @@ static inline spinlock_t *huge_pte_lockptr(struct hstate *h, | |||
| 412 | return &mm->page_table_lock; | 412 | return &mm->page_table_lock; |
| 413 | } | 413 | } |
| 414 | 414 | ||
| 415 | static inline bool hugepages_supported(void) | ||
| 416 | { | ||
| 417 | /* | ||
| 418 | * Some platform decide whether they support huge pages at boot | ||
| 419 | * time. On these, such as powerpc, HPAGE_SHIFT is set to 0 when | ||
| 420 | * there is no such support | ||
| 421 | */ | ||
| 422 | return HPAGE_SHIFT != 0; | ||
| 423 | } | ||
| 424 | |||
| 415 | #else /* CONFIG_HUGETLB_PAGE */ | 425 | #else /* CONFIG_HUGETLB_PAGE */ |
| 416 | struct hstate {}; | 426 | struct hstate {}; |
| 417 | #define alloc_huge_page_node(h, nid) NULL | 427 | #define alloc_huge_page_node(h, nid) NULL |
diff --git a/include/linux/if_macvlan.h b/include/linux/if_macvlan.h index 7c8b20b120ea..a9a53b12397b 100644 --- a/include/linux/if_macvlan.h +++ b/include/linux/if_macvlan.h | |||
| @@ -56,6 +56,7 @@ struct macvlan_dev { | |||
| 56 | int numqueues; | 56 | int numqueues; |
| 57 | netdev_features_t tap_features; | 57 | netdev_features_t tap_features; |
| 58 | int minor; | 58 | int minor; |
| 59 | int nest_level; | ||
| 59 | }; | 60 | }; |
| 60 | 61 | ||
| 61 | static inline void macvlan_count_rx(const struct macvlan_dev *vlan, | 62 | static inline void macvlan_count_rx(const struct macvlan_dev *vlan, |
diff --git a/include/linux/if_team.h b/include/linux/if_team.h index a899dc24be15..a6aa970758a2 100644 --- a/include/linux/if_team.h +++ b/include/linux/if_team.h | |||
| @@ -194,6 +194,7 @@ struct team { | |||
| 194 | bool user_carrier_enabled; | 194 | bool user_carrier_enabled; |
| 195 | bool queue_override_enabled; | 195 | bool queue_override_enabled; |
| 196 | struct list_head *qom_lists; /* array of queue override mapping lists */ | 196 | struct list_head *qom_lists; /* array of queue override mapping lists */ |
| 197 | bool port_mtu_change_allowed; | ||
| 197 | struct { | 198 | struct { |
| 198 | unsigned int count; | 199 | unsigned int count; |
| 199 | unsigned int interval; /* in ms */ | 200 | unsigned int interval; /* in ms */ |
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 13bbbde00e68..b2acc4a1b13c 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
| @@ -73,7 +73,7 @@ static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb) | |||
| 73 | /* found in socket.c */ | 73 | /* found in socket.c */ |
| 74 | extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *)); | 74 | extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *)); |
| 75 | 75 | ||
| 76 | static inline int is_vlan_dev(struct net_device *dev) | 76 | static inline bool is_vlan_dev(struct net_device *dev) |
| 77 | { | 77 | { |
| 78 | return dev->priv_flags & IFF_802_1Q_VLAN; | 78 | return dev->priv_flags & IFF_802_1Q_VLAN; |
| 79 | } | 79 | } |
| @@ -159,6 +159,7 @@ struct vlan_dev_priv { | |||
| 159 | #ifdef CONFIG_NET_POLL_CONTROLLER | 159 | #ifdef CONFIG_NET_POLL_CONTROLLER |
| 160 | struct netpoll *netpoll; | 160 | struct netpoll *netpoll; |
| 161 | #endif | 161 | #endif |
| 162 | unsigned int nest_level; | ||
| 162 | }; | 163 | }; |
| 163 | 164 | ||
| 164 | static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev) | 165 | static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev) |
| @@ -197,6 +198,12 @@ extern void vlan_vids_del_by_dev(struct net_device *dev, | |||
| 197 | const struct net_device *by_dev); | 198 | const struct net_device *by_dev); |
| 198 | 199 | ||
| 199 | extern bool vlan_uses_dev(const struct net_device *dev); | 200 | extern bool vlan_uses_dev(const struct net_device *dev); |
| 201 | |||
| 202 | static inline int vlan_get_encap_level(struct net_device *dev) | ||
| 203 | { | ||
| 204 | BUG_ON(!is_vlan_dev(dev)); | ||
| 205 | return vlan_dev_priv(dev)->nest_level; | ||
| 206 | } | ||
| 200 | #else | 207 | #else |
| 201 | static inline struct net_device * | 208 | static inline struct net_device * |
| 202 | __vlan_find_dev_deep(struct net_device *real_dev, | 209 | __vlan_find_dev_deep(struct net_device *real_dev, |
| @@ -263,6 +270,11 @@ static inline bool vlan_uses_dev(const struct net_device *dev) | |||
| 263 | { | 270 | { |
| 264 | return false; | 271 | return false; |
| 265 | } | 272 | } |
| 273 | static inline int vlan_get_encap_level(struct net_device *dev) | ||
| 274 | { | ||
| 275 | BUG(); | ||
| 276 | return 0; | ||
| 277 | } | ||
| 266 | #endif | 278 | #endif |
| 267 | 279 | ||
| 268 | static inline bool vlan_hw_offload_capable(netdev_features_t features, | 280 | static inline bool vlan_hw_offload_capable(netdev_features_t features, |
| @@ -483,4 +495,5 @@ static inline void vlan_set_encap_proto(struct sk_buff *skb, | |||
| 483 | */ | 495 | */ |
| 484 | skb->protocol = htons(ETH_P_802_2); | 496 | skb->protocol = htons(ETH_P_802_2); |
| 485 | } | 497 | } |
| 498 | |||
| 486 | #endif /* !(_LINUX_IF_VLAN_H_) */ | 499 | #endif /* !(_LINUX_IF_VLAN_H_) */ |
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 8834a7e5b944..051c85032f48 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -210,7 +210,7 @@ extern int __irq_set_affinity(unsigned int irq, const struct cpumask *cpumask, | |||
| 210 | /** | 210 | /** |
| 211 | * irq_set_affinity - Set the irq affinity of a given irq | 211 | * irq_set_affinity - Set the irq affinity of a given irq |
| 212 | * @irq: Interrupt to set affinity | 212 | * @irq: Interrupt to set affinity |
| 213 | * @mask: cpumask | 213 | * @cpumask: cpumask |
| 214 | * | 214 | * |
| 215 | * Fails if cpumask does not contain an online CPU | 215 | * Fails if cpumask does not contain an online CPU |
| 216 | */ | 216 | */ |
| @@ -223,7 +223,7 @@ irq_set_affinity(unsigned int irq, const struct cpumask *cpumask) | |||
| 223 | /** | 223 | /** |
| 224 | * irq_force_affinity - Force the irq affinity of a given irq | 224 | * irq_force_affinity - Force the irq affinity of a given irq |
| 225 | * @irq: Interrupt to set affinity | 225 | * @irq: Interrupt to set affinity |
| 226 | * @mask: cpumask | 226 | * @cpumask: cpumask |
| 227 | * | 227 | * |
| 228 | * Same as irq_set_affinity, but without checking the mask against | 228 | * Same as irq_set_affinity, but without checking the mask against |
| 229 | * online cpus. | 229 | * online cpus. |
| @@ -272,6 +272,11 @@ static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m) | |||
| 272 | return -EINVAL; | 272 | return -EINVAL; |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | static inline int irq_force_affinity(unsigned int irq, const struct cpumask *cpumask) | ||
| 276 | { | ||
| 277 | return 0; | ||
| 278 | } | ||
| 279 | |||
| 275 | static inline int irq_can_set_affinity(unsigned int irq) | 280 | static inline int irq_can_set_affinity(unsigned int irq) |
| 276 | { | 281 | { |
| 277 | return 0; | 282 | return 0; |
diff --git a/include/linux/irq.h b/include/linux/irq.h index 10a0b1ac4ea0..5c57efb863d0 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
| @@ -603,6 +603,8 @@ static inline u32 irq_get_trigger_type(unsigned int irq) | |||
| 603 | return d ? irqd_get_trigger_type(d) : 0; | 603 | return d ? irqd_get_trigger_type(d) : 0; |
| 604 | } | 604 | } |
| 605 | 605 | ||
| 606 | unsigned int arch_dynirq_lower_bound(unsigned int from); | ||
| 607 | |||
| 606 | int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, | 608 | int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, |
| 607 | struct module *owner); | 609 | struct module *owner); |
| 608 | 610 | ||
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h index b0122dc6f96a..52bf5677db0b 100644 --- a/include/linux/kernfs.h +++ b/include/linux/kernfs.h | |||
| @@ -50,7 +50,24 @@ enum kernfs_node_flag { | |||
| 50 | 50 | ||
| 51 | /* @flags for kernfs_create_root() */ | 51 | /* @flags for kernfs_create_root() */ |
| 52 | enum kernfs_root_flag { | 52 | enum kernfs_root_flag { |
| 53 | KERNFS_ROOT_CREATE_DEACTIVATED = 0x0001, | 53 | /* |
| 54 | * kernfs_nodes are created in the deactivated state and invisible. | ||
| 55 | * They require explicit kernfs_activate() to become visible. This | ||
| 56 | * can be used to make related nodes become visible atomically | ||
| 57 | * after all nodes are created successfully. | ||
| 58 | */ | ||
| 59 | KERNFS_ROOT_CREATE_DEACTIVATED = 0x0001, | ||
| 60 | |||
| 61 | /* | ||
| 62 | * For regular flies, if the opener has CAP_DAC_OVERRIDE, open(2) | ||
| 63 | * succeeds regardless of the RW permissions. sysfs had an extra | ||
| 64 | * layer of enforcement where open(2) fails with -EACCES regardless | ||
| 65 | * of CAP_DAC_OVERRIDE if the permission doesn't have the | ||
| 66 | * respective read or write access at all (none of S_IRUGO or | ||
| 67 | * S_IWUGO) or the respective operation isn't implemented. The | ||
| 68 | * following flag enables that behavior. | ||
| 69 | */ | ||
| 70 | KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 0x0002, | ||
| 54 | }; | 71 | }; |
| 55 | 72 | ||
| 56 | /* type-specific structures for kernfs_node union members */ | 73 | /* type-specific structures for kernfs_node union members */ |
| @@ -280,8 +297,8 @@ void kernfs_notify(struct kernfs_node *kn); | |||
| 280 | 297 | ||
| 281 | const void *kernfs_super_ns(struct super_block *sb); | 298 | const void *kernfs_super_ns(struct super_block *sb); |
| 282 | struct dentry *kernfs_mount_ns(struct file_system_type *fs_type, int flags, | 299 | struct dentry *kernfs_mount_ns(struct file_system_type *fs_type, int flags, |
| 283 | struct kernfs_root *root, bool *new_sb_created, | 300 | struct kernfs_root *root, unsigned long magic, |
| 284 | const void *ns); | 301 | bool *new_sb_created, const void *ns); |
| 285 | void kernfs_kill_sb(struct super_block *sb); | 302 | void kernfs_kill_sb(struct super_block *sb); |
| 286 | 303 | ||
| 287 | void kernfs_init(void); | 304 | void kernfs_init(void); |
| @@ -374,7 +391,8 @@ static inline const void *kernfs_super_ns(struct super_block *sb) | |||
| 374 | 391 | ||
| 375 | static inline struct dentry * | 392 | static inline struct dentry * |
| 376 | kernfs_mount_ns(struct file_system_type *fs_type, int flags, | 393 | kernfs_mount_ns(struct file_system_type *fs_type, int flags, |
| 377 | struct kernfs_root *root, bool *new_sb_created, const void *ns) | 394 | struct kernfs_root *root, unsigned long magic, |
| 395 | bool *new_sb_created, const void *ns) | ||
| 378 | { return ERR_PTR(-ENOSYS); } | 396 | { return ERR_PTR(-ENOSYS); } |
| 379 | 397 | ||
| 380 | static inline void kernfs_kill_sb(struct super_block *sb) { } | 398 | static inline void kernfs_kill_sb(struct super_block *sb) { } |
| @@ -432,9 +450,11 @@ static inline int kernfs_rename(struct kernfs_node *kn, | |||
| 432 | 450 | ||
| 433 | static inline struct dentry * | 451 | static inline struct dentry * |
| 434 | kernfs_mount(struct file_system_type *fs_type, int flags, | 452 | kernfs_mount(struct file_system_type *fs_type, int flags, |
| 435 | struct kernfs_root *root, bool *new_sb_created) | 453 | struct kernfs_root *root, unsigned long magic, |
| 454 | bool *new_sb_created) | ||
| 436 | { | 455 | { |
| 437 | return kernfs_mount_ns(fs_type, flags, root, new_sb_created, NULL); | 456 | return kernfs_mount_ns(fs_type, flags, root, |
| 457 | magic, new_sb_created, NULL); | ||
| 438 | } | 458 | } |
| 439 | 459 | ||
| 440 | #endif /* __LINUX_KERNFS_H */ | 460 | #endif /* __LINUX_KERNFS_H */ |
diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 34a513a2727b..a6a42dd02466 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h | |||
| @@ -12,9 +12,9 @@ | |||
| 12 | #endif | 12 | #endif |
| 13 | 13 | ||
| 14 | #ifdef __cplusplus | 14 | #ifdef __cplusplus |
| 15 | #define CPP_ASMLINKAGE extern "C" __visible | 15 | #define CPP_ASMLINKAGE extern "C" |
| 16 | #else | 16 | #else |
| 17 | #define CPP_ASMLINKAGE __visible | 17 | #define CPP_ASMLINKAGE |
| 18 | #endif | 18 | #endif |
| 19 | 19 | ||
| 20 | #ifndef asmlinkage | 20 | #ifndef asmlinkage |
diff --git a/include/linux/mfd/rtsx_common.h b/include/linux/mfd/rtsx_common.h index 7c36cc55d2c7..443176ee1ab0 100644 --- a/include/linux/mfd/rtsx_common.h +++ b/include/linux/mfd/rtsx_common.h | |||
| @@ -45,7 +45,6 @@ struct platform_device; | |||
| 45 | struct rtsx_slot { | 45 | struct rtsx_slot { |
| 46 | struct platform_device *p_dev; | 46 | struct platform_device *p_dev; |
| 47 | void (*card_event)(struct platform_device *p_dev); | 47 | void (*card_event)(struct platform_device *p_dev); |
| 48 | void (*done_transfer)(struct platform_device *p_dev); | ||
| 49 | }; | 48 | }; |
| 50 | 49 | ||
| 51 | #endif | 50 | #endif |
diff --git a/include/linux/mfd/rtsx_pci.h b/include/linux/mfd/rtsx_pci.h index 8d6bbd609ad9..a3835976f7c6 100644 --- a/include/linux/mfd/rtsx_pci.h +++ b/include/linux/mfd/rtsx_pci.h | |||
| @@ -943,12 +943,6 @@ void rtsx_pci_send_cmd_no_wait(struct rtsx_pcr *pcr); | |||
| 943 | int rtsx_pci_send_cmd(struct rtsx_pcr *pcr, int timeout); | 943 | int rtsx_pci_send_cmd(struct rtsx_pcr *pcr, int timeout); |
| 944 | int rtsx_pci_transfer_data(struct rtsx_pcr *pcr, struct scatterlist *sglist, | 944 | int rtsx_pci_transfer_data(struct rtsx_pcr *pcr, struct scatterlist *sglist, |
| 945 | int num_sg, bool read, int timeout); | 945 | int num_sg, bool read, int timeout); |
| 946 | int rtsx_pci_dma_map_sg(struct rtsx_pcr *pcr, struct scatterlist *sglist, | ||
| 947 | int num_sg, bool read); | ||
| 948 | int rtsx_pci_dma_unmap_sg(struct rtsx_pcr *pcr, struct scatterlist *sglist, | ||
| 949 | int num_sg, bool read); | ||
| 950 | int rtsx_pci_dma_transfer(struct rtsx_pcr *pcr, struct scatterlist *sglist, | ||
| 951 | int sg_count, bool read); | ||
| 952 | int rtsx_pci_read_ppbuf(struct rtsx_pcr *pcr, u8 *buf, int buf_len); | 946 | int rtsx_pci_read_ppbuf(struct rtsx_pcr *pcr, u8 *buf, int buf_len); |
| 953 | int rtsx_pci_write_ppbuf(struct rtsx_pcr *pcr, u8 *buf, int buf_len); | 947 | int rtsx_pci_write_ppbuf(struct rtsx_pcr *pcr, u8 *buf, int buf_len); |
| 954 | int rtsx_pci_card_pull_ctl_enable(struct rtsx_pcr *pcr, int card); | 948 | int rtsx_pci_card_pull_ctl_enable(struct rtsx_pcr *pcr, int card); |
diff --git a/include/linux/mlx4/qp.h b/include/linux/mlx4/qp.h index b66e7610d4ee..7040dc98ff8b 100644 --- a/include/linux/mlx4/qp.h +++ b/include/linux/mlx4/qp.h | |||
| @@ -421,6 +421,17 @@ struct mlx4_wqe_inline_seg { | |||
| 421 | __be32 byte_count; | 421 | __be32 byte_count; |
| 422 | }; | 422 | }; |
| 423 | 423 | ||
| 424 | enum mlx4_update_qp_attr { | ||
| 425 | MLX4_UPDATE_QP_SMAC = 1 << 0, | ||
| 426 | }; | ||
| 427 | |||
| 428 | struct mlx4_update_qp_params { | ||
| 429 | u8 smac_index; | ||
| 430 | }; | ||
| 431 | |||
| 432 | int mlx4_update_qp(struct mlx4_dev *dev, struct mlx4_qp *qp, | ||
| 433 | enum mlx4_update_qp_attr attr, | ||
| 434 | struct mlx4_update_qp_params *params); | ||
| 424 | int mlx4_qp_modify(struct mlx4_dev *dev, struct mlx4_mtt *mtt, | 435 | int mlx4_qp_modify(struct mlx4_dev *dev, struct mlx4_mtt *mtt, |
| 425 | enum mlx4_qp_state cur_state, enum mlx4_qp_state new_state, | 436 | enum mlx4_qp_state cur_state, enum mlx4_qp_state new_state, |
| 426 | struct mlx4_qp_context *context, enum mlx4_qp_optpar optpar, | 437 | struct mlx4_qp_context *context, enum mlx4_qp_optpar optpar, |
diff --git a/include/linux/mm.h b/include/linux/mm.h index bf9811e1321a..d6777060449f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -370,6 +370,8 @@ static inline int is_vmalloc_or_module_addr(const void *x) | |||
| 370 | } | 370 | } |
| 371 | #endif | 371 | #endif |
| 372 | 372 | ||
| 373 | extern void kvfree(const void *addr); | ||
| 374 | |||
| 373 | static inline void compound_lock(struct page *page) | 375 | static inline void compound_lock(struct page *page) |
| 374 | { | 376 | { |
| 375 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 377 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
diff --git a/include/linux/net.h b/include/linux/net.h index 94734a6259a4..17d83393afcc 100644 --- a/include/linux/net.h +++ b/include/linux/net.h | |||
| @@ -248,24 +248,17 @@ do { \ | |||
| 248 | bool __net_get_random_once(void *buf, int nbytes, bool *done, | 248 | bool __net_get_random_once(void *buf, int nbytes, bool *done, |
| 249 | struct static_key *done_key); | 249 | struct static_key *done_key); |
| 250 | 250 | ||
| 251 | #ifdef HAVE_JUMP_LABEL | ||
| 252 | #define ___NET_RANDOM_STATIC_KEY_INIT ((struct static_key) \ | ||
| 253 | { .enabled = ATOMIC_INIT(0), .entries = (void *)1 }) | ||
| 254 | #else /* !HAVE_JUMP_LABEL */ | ||
| 255 | #define ___NET_RANDOM_STATIC_KEY_INIT STATIC_KEY_INIT_FALSE | ||
| 256 | #endif /* HAVE_JUMP_LABEL */ | ||
| 257 | |||
| 258 | #define net_get_random_once(buf, nbytes) \ | 251 | #define net_get_random_once(buf, nbytes) \ |
| 259 | ({ \ | 252 | ({ \ |
| 260 | bool ___ret = false; \ | 253 | bool ___ret = false; \ |
| 261 | static bool ___done = false; \ | 254 | static bool ___done = false; \ |
| 262 | static struct static_key ___done_key = \ | 255 | static struct static_key ___once_key = \ |
| 263 | ___NET_RANDOM_STATIC_KEY_INIT; \ | 256 | STATIC_KEY_INIT_TRUE; \ |
| 264 | if (!static_key_true(&___done_key)) \ | 257 | if (static_key_true(&___once_key)) \ |
| 265 | ___ret = __net_get_random_once(buf, \ | 258 | ___ret = __net_get_random_once(buf, \ |
| 266 | nbytes, \ | 259 | nbytes, \ |
| 267 | &___done, \ | 260 | &___done, \ |
| 268 | &___done_key); \ | 261 | &___once_key); \ |
| 269 | ___ret; \ | 262 | ___ret; \ |
| 270 | }) | 263 | }) |
| 271 | 264 | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 7ed3a3aa6604..b42d07b0390b 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -1144,6 +1144,7 @@ struct net_device_ops { | |||
| 1144 | netdev_tx_t (*ndo_dfwd_start_xmit) (struct sk_buff *skb, | 1144 | netdev_tx_t (*ndo_dfwd_start_xmit) (struct sk_buff *skb, |
| 1145 | struct net_device *dev, | 1145 | struct net_device *dev, |
| 1146 | void *priv); | 1146 | void *priv); |
| 1147 | int (*ndo_get_lock_subclass)(struct net_device *dev); | ||
| 1147 | }; | 1148 | }; |
| 1148 | 1149 | ||
| 1149 | /** | 1150 | /** |
| @@ -2950,7 +2951,12 @@ static inline void netif_addr_lock(struct net_device *dev) | |||
| 2950 | 2951 | ||
| 2951 | static inline void netif_addr_lock_nested(struct net_device *dev) | 2952 | static inline void netif_addr_lock_nested(struct net_device *dev) |
| 2952 | { | 2953 | { |
| 2953 | spin_lock_nested(&dev->addr_list_lock, SINGLE_DEPTH_NESTING); | 2954 | int subclass = SINGLE_DEPTH_NESTING; |
| 2955 | |||
| 2956 | if (dev->netdev_ops->ndo_get_lock_subclass) | ||
| 2957 | subclass = dev->netdev_ops->ndo_get_lock_subclass(dev); | ||
| 2958 | |||
| 2959 | spin_lock_nested(&dev->addr_list_lock, subclass); | ||
| 2954 | } | 2960 | } |
| 2955 | 2961 | ||
| 2956 | static inline void netif_addr_lock_bh(struct net_device *dev) | 2962 | static inline void netif_addr_lock_bh(struct net_device *dev) |
| @@ -3050,10 +3056,19 @@ extern int weight_p; | |||
| 3050 | extern int bpf_jit_enable; | 3056 | extern int bpf_jit_enable; |
| 3051 | 3057 | ||
| 3052 | bool netdev_has_upper_dev(struct net_device *dev, struct net_device *upper_dev); | 3058 | bool netdev_has_upper_dev(struct net_device *dev, struct net_device *upper_dev); |
| 3059 | struct net_device *netdev_upper_get_next_dev_rcu(struct net_device *dev, | ||
| 3060 | struct list_head **iter); | ||
| 3053 | struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev, | 3061 | struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev, |
| 3054 | struct list_head **iter); | 3062 | struct list_head **iter); |
| 3055 | 3063 | ||
| 3056 | /* iterate through upper list, must be called under RCU read lock */ | 3064 | /* iterate through upper list, must be called under RCU read lock */ |
| 3065 | #define netdev_for_each_upper_dev_rcu(dev, updev, iter) \ | ||
| 3066 | for (iter = &(dev)->adj_list.upper, \ | ||
| 3067 | updev = netdev_upper_get_next_dev_rcu(dev, &(iter)); \ | ||
| 3068 | updev; \ | ||
| 3069 | updev = netdev_upper_get_next_dev_rcu(dev, &(iter))) | ||
| 3070 | |||
| 3071 | /* iterate through upper list, must be called under RCU read lock */ | ||
| 3057 | #define netdev_for_each_all_upper_dev_rcu(dev, updev, iter) \ | 3072 | #define netdev_for_each_all_upper_dev_rcu(dev, updev, iter) \ |
| 3058 | for (iter = &(dev)->all_adj_list.upper, \ | 3073 | for (iter = &(dev)->all_adj_list.upper, \ |
| 3059 | updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter)); \ | 3074 | updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter)); \ |
| @@ -3077,6 +3092,14 @@ void *netdev_lower_get_next_private_rcu(struct net_device *dev, | |||
| 3077 | priv; \ | 3092 | priv; \ |
| 3078 | priv = netdev_lower_get_next_private_rcu(dev, &(iter))) | 3093 | priv = netdev_lower_get_next_private_rcu(dev, &(iter))) |
| 3079 | 3094 | ||
| 3095 | void *netdev_lower_get_next(struct net_device *dev, | ||
| 3096 | struct list_head **iter); | ||
| 3097 | #define netdev_for_each_lower_dev(dev, ldev, iter) \ | ||
| 3098 | for (iter = &(dev)->adj_list.lower, \ | ||
| 3099 | ldev = netdev_lower_get_next(dev, &(iter)); \ | ||
| 3100 | ldev; \ | ||
| 3101 | ldev = netdev_lower_get_next(dev, &(iter))) | ||
| 3102 | |||
| 3080 | void *netdev_adjacent_get_private(struct list_head *adj_list); | 3103 | void *netdev_adjacent_get_private(struct list_head *adj_list); |
| 3081 | void *netdev_lower_get_first_private_rcu(struct net_device *dev); | 3104 | void *netdev_lower_get_first_private_rcu(struct net_device *dev); |
| 3082 | struct net_device *netdev_master_upper_dev_get(struct net_device *dev); | 3105 | struct net_device *netdev_master_upper_dev_get(struct net_device *dev); |
| @@ -3092,6 +3115,8 @@ void netdev_upper_dev_unlink(struct net_device *dev, | |||
| 3092 | void netdev_adjacent_rename_links(struct net_device *dev, char *oldname); | 3115 | void netdev_adjacent_rename_links(struct net_device *dev, char *oldname); |
| 3093 | void *netdev_lower_dev_get_private(struct net_device *dev, | 3116 | void *netdev_lower_dev_get_private(struct net_device *dev, |
| 3094 | struct net_device *lower_dev); | 3117 | struct net_device *lower_dev); |
| 3118 | int dev_get_nest_level(struct net_device *dev, | ||
| 3119 | bool (*type_check)(struct net_device *dev)); | ||
| 3095 | int skb_checksum_help(struct sk_buff *skb); | 3120 | int skb_checksum_help(struct sk_buff *skb); |
| 3096 | struct sk_buff *__skb_gso_segment(struct sk_buff *skb, | 3121 | struct sk_buff *__skb_gso_segment(struct sk_buff *skb, |
| 3097 | netdev_features_t features, bool tx_path); | 3122 | netdev_features_t features, bool tx_path); |
| @@ -3180,12 +3205,7 @@ void netdev_change_features(struct net_device *dev); | |||
| 3180 | void netif_stacked_transfer_operstate(const struct net_device *rootdev, | 3205 | void netif_stacked_transfer_operstate(const struct net_device *rootdev, |
| 3181 | struct net_device *dev); | 3206 | struct net_device *dev); |
| 3182 | 3207 | ||
| 3183 | netdev_features_t netif_skb_dev_features(struct sk_buff *skb, | 3208 | netdev_features_t netif_skb_features(struct sk_buff *skb); |
| 3184 | const struct net_device *dev); | ||
| 3185 | static inline netdev_features_t netif_skb_features(struct sk_buff *skb) | ||
| 3186 | { | ||
| 3187 | return netif_skb_dev_features(skb, skb->dev); | ||
| 3188 | } | ||
| 3189 | 3209 | ||
| 3190 | static inline bool net_gso_ok(netdev_features_t features, int gso_type) | 3210 | static inline bool net_gso_ok(netdev_features_t features, int gso_type) |
| 3191 | { | 3211 | { |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index aad8eeaf416d..034cda789a15 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
| @@ -16,9 +16,10 @@ static inline struct nlmsghdr *nlmsg_hdr(const struct sk_buff *skb) | |||
| 16 | } | 16 | } |
| 17 | 17 | ||
| 18 | enum netlink_skb_flags { | 18 | enum netlink_skb_flags { |
| 19 | NETLINK_SKB_MMAPED = 0x1, /* Packet data is mmaped */ | 19 | NETLINK_SKB_MMAPED = 0x1, /* Packet data is mmaped */ |
| 20 | NETLINK_SKB_TX = 0x2, /* Packet was sent by userspace */ | 20 | NETLINK_SKB_TX = 0x2, /* Packet was sent by userspace */ |
| 21 | NETLINK_SKB_DELIVERED = 0x4, /* Packet was delivered */ | 21 | NETLINK_SKB_DELIVERED = 0x4, /* Packet was delivered */ |
| 22 | NETLINK_SKB_DST = 0x8, /* Dst set in sendto or sendmsg */ | ||
| 22 | }; | 23 | }; |
| 23 | 24 | ||
| 24 | struct netlink_skb_parms { | 25 | struct netlink_skb_parms { |
| @@ -169,4 +170,11 @@ struct netlink_tap { | |||
| 169 | extern int netlink_add_tap(struct netlink_tap *nt); | 170 | extern int netlink_add_tap(struct netlink_tap *nt); |
| 170 | extern int netlink_remove_tap(struct netlink_tap *nt); | 171 | extern int netlink_remove_tap(struct netlink_tap *nt); |
| 171 | 172 | ||
| 173 | bool __netlink_ns_capable(const struct netlink_skb_parms *nsp, | ||
| 174 | struct user_namespace *ns, int cap); | ||
| 175 | bool netlink_ns_capable(const struct sk_buff *skb, | ||
| 176 | struct user_namespace *ns, int cap); | ||
| 177 | bool netlink_capable(const struct sk_buff *skb, int cap); | ||
| 178 | bool netlink_net_capable(const struct sk_buff *skb, int cap); | ||
| 179 | |||
| 172 | #endif /* __LINUX_NETLINK_H */ | 180 | #endif /* __LINUX_NETLINK_H */ |
diff --git a/include/linux/of.h b/include/linux/of.h index 3bad8d106e0e..e6f0988c1c68 100644 --- a/include/linux/of.h +++ b/include/linux/of.h | |||
| @@ -349,7 +349,7 @@ int of_device_is_stdout_path(struct device_node *dn); | |||
| 349 | 349 | ||
| 350 | #else /* CONFIG_OF */ | 350 | #else /* CONFIG_OF */ |
| 351 | 351 | ||
| 352 | static inline const char* of_node_full_name(struct device_node *np) | 352 | static inline const char* of_node_full_name(const struct device_node *np) |
| 353 | { | 353 | { |
| 354 | return "<no-node>"; | 354 | return "<no-node>"; |
| 355 | } | 355 | } |
diff --git a/include/linux/of_mdio.h b/include/linux/of_mdio.h index 6fe8464ed767..881a7c3571f4 100644 --- a/include/linux/of_mdio.h +++ b/include/linux/of_mdio.h | |||
| @@ -31,7 +31,12 @@ extern struct mii_bus *of_mdio_find_bus(struct device_node *mdio_np); | |||
| 31 | #else /* CONFIG_OF */ | 31 | #else /* CONFIG_OF */ |
| 32 | static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) | 32 | static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) |
| 33 | { | 33 | { |
| 34 | return -ENOSYS; | 34 | /* |
| 35 | * Fall back to the non-DT function to register a bus. | ||
| 36 | * This way, we don't have to keep compat bits around in drivers. | ||
| 37 | */ | ||
| 38 | |||
| 39 | return mdiobus_register(mdio); | ||
| 35 | } | 40 | } |
| 36 | 41 | ||
| 37 | static inline struct phy_device *of_phy_find_device(struct device_node *phy_np) | 42 | static inline struct phy_device *of_phy_find_device(struct device_node *phy_np) |
diff --git a/include/linux/omap-dma.h b/include/linux/omap-dma.h index 41a13e70f41f..7944cdc27bed 100644 --- a/include/linux/omap-dma.h +++ b/include/linux/omap-dma.h | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | 10 | ||
| 11 | struct dma_chan; | 11 | struct dma_chan; |
| 12 | 12 | ||
| 13 | #if defined(CONFIG_DMA_OMAP) || defined(CONFIG_DMA_OMAP_MODULE) | 13 | #if defined(CONFIG_DMA_OMAP) || (defined(CONFIG_DMA_OMAP_MODULE) && defined(MODULE)) |
| 14 | bool omap_dma_filter_fn(struct dma_chan *, void *); | 14 | bool omap_dma_filter_fn(struct dma_chan *, void *); |
| 15 | #else | 15 | #else |
| 16 | static inline bool omap_dma_filter_fn(struct dma_chan *c, void *d) | 16 | static inline bool omap_dma_filter_fn(struct dma_chan *c, void *d) |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 3356abcfff18..3ef6ea12806a 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -402,6 +402,8 @@ struct perf_event { | |||
| 402 | 402 | ||
| 403 | struct ring_buffer *rb; | 403 | struct ring_buffer *rb; |
| 404 | struct list_head rb_entry; | 404 | struct list_head rb_entry; |
| 405 | unsigned long rcu_batches; | ||
| 406 | int rcu_pending; | ||
| 405 | 407 | ||
| 406 | /* poll related */ | 408 | /* poll related */ |
| 407 | wait_queue_head_t waitq; | 409 | wait_queue_head_t waitq; |
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 8e3e66ac0a52..953937ea5233 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | #include <linux/mutex.h> | 5 | #include <linux/mutex.h> |
| 6 | #include <linux/netdevice.h> | 6 | #include <linux/netdevice.h> |
| 7 | #include <linux/wait.h> | ||
| 7 | #include <uapi/linux/rtnetlink.h> | 8 | #include <uapi/linux/rtnetlink.h> |
| 8 | 9 | ||
| 9 | extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo); | 10 | extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo); |
| @@ -22,6 +23,10 @@ extern void rtnl_lock(void); | |||
| 22 | extern void rtnl_unlock(void); | 23 | extern void rtnl_unlock(void); |
| 23 | extern int rtnl_trylock(void); | 24 | extern int rtnl_trylock(void); |
| 24 | extern int rtnl_is_locked(void); | 25 | extern int rtnl_is_locked(void); |
| 26 | |||
| 27 | extern wait_queue_head_t netdev_unregistering_wq; | ||
| 28 | extern struct mutex net_mutex; | ||
| 29 | |||
| 25 | #ifdef CONFIG_PROVE_LOCKING | 30 | #ifdef CONFIG_PROVE_LOCKING |
| 26 | extern int lockdep_rtnl_is_held(void); | 31 | extern int lockdep_rtnl_is_held(void); |
| 27 | #else | 32 | #else |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 25f54c79f757..221b2bde3723 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -220,7 +220,7 @@ print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq); | |||
| 220 | #define TASK_PARKED 512 | 220 | #define TASK_PARKED 512 |
| 221 | #define TASK_STATE_MAX 1024 | 221 | #define TASK_STATE_MAX 1024 |
| 222 | 222 | ||
| 223 | #define TASK_STATE_TO_CHAR_STR "RSDTtZXxKWP" | 223 | #define TASK_STATE_TO_CHAR_STR "RSDTtXZxKWP" |
| 224 | 224 | ||
| 225 | extern char ___assert_task_state[1 - 2*!!( | 225 | extern char ___assert_task_state[1 - 2*!!( |
| 226 | sizeof(TASK_STATE_TO_CHAR_STR)-1 != ilog2(TASK_STATE_MAX)+1)]; | 226 | sizeof(TASK_STATE_TO_CHAR_STR)-1 != ilog2(TASK_STATE_MAX)+1)]; |
| @@ -1153,9 +1153,12 @@ struct sched_dl_entity { | |||
| 1153 | * | 1153 | * |
| 1154 | * @dl_boosted tells if we are boosted due to DI. If so we are | 1154 | * @dl_boosted tells if we are boosted due to DI. If so we are |
| 1155 | * outside bandwidth enforcement mechanism (but only until we | 1155 | * outside bandwidth enforcement mechanism (but only until we |
| 1156 | * exit the critical section). | 1156 | * exit the critical section); |
| 1157 | * | ||
| 1158 | * @dl_yielded tells if task gave up the cpu before consuming | ||
| 1159 | * all its available runtime during the last job. | ||
| 1157 | */ | 1160 | */ |
| 1158 | int dl_throttled, dl_new, dl_boosted; | 1161 | int dl_throttled, dl_new, dl_boosted, dl_yielded; |
| 1159 | 1162 | ||
| 1160 | /* | 1163 | /* |
| 1161 | * Bandwidth enforcement timer. Each -deadline task has its | 1164 | * Bandwidth enforcement timer. Each -deadline task has its |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index f2f7398848cf..d82abd40a3c0 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
| @@ -101,4 +101,13 @@ struct kmem_cache { | |||
| 101 | struct kmem_cache_node *node[MAX_NUMNODES]; | 101 | struct kmem_cache_node *node[MAX_NUMNODES]; |
| 102 | }; | 102 | }; |
| 103 | 103 | ||
| 104 | #ifdef CONFIG_SYSFS | ||
| 105 | #define SLAB_SUPPORTS_SYSFS | ||
| 106 | void sysfs_slab_remove(struct kmem_cache *); | ||
| 107 | #else | ||
| 108 | static inline void sysfs_slab_remove(struct kmem_cache *s) | ||
| 109 | { | ||
| 110 | } | ||
| 111 | #endif | ||
| 112 | |||
| 104 | #endif /* _LINUX_SLUB_DEF_H */ | 113 | #endif /* _LINUX_SLUB_DEF_H */ |
diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h index 54f91d35e5fd..46cca4c06848 100644 --- a/include/linux/sock_diag.h +++ b/include/linux/sock_diag.h | |||
| @@ -23,7 +23,7 @@ int sock_diag_check_cookie(void *sk, __u32 *cookie); | |||
| 23 | void sock_diag_save_cookie(void *sk, __u32 *cookie); | 23 | void sock_diag_save_cookie(void *sk, __u32 *cookie); |
| 24 | 24 | ||
| 25 | int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attr); | 25 | int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attr); |
| 26 | int sock_diag_put_filterinfo(struct user_namespace *user_ns, struct sock *sk, | 26 | int sock_diag_put_filterinfo(bool may_report_filterinfo, struct sock *sk, |
| 27 | struct sk_buff *skb, int attrtype); | 27 | struct sk_buff *skb, int attrtype); |
| 28 | 28 | ||
| 29 | #endif | 29 | #endif |
diff --git a/include/linux/tty.h b/include/linux/tty.h index 036cccd80d9f..1c3316a47d7e 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
| @@ -61,7 +61,6 @@ struct tty_bufhead { | |||
| 61 | struct tty_buffer *head; /* Queue head */ | 61 | struct tty_buffer *head; /* Queue head */ |
| 62 | struct work_struct work; | 62 | struct work_struct work; |
| 63 | struct mutex lock; | 63 | struct mutex lock; |
| 64 | spinlock_t flush_lock; | ||
| 65 | atomic_t priority; | 64 | atomic_t priority; |
| 66 | struct tty_buffer sentinel; | 65 | struct tty_buffer sentinel; |
| 67 | struct llist_head free; /* Free queue head */ | 66 | struct llist_head free; /* Free queue head */ |
diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h index 7d64d3609ec9..428277869400 100644 --- a/include/net/af_vsock.h +++ b/include/net/af_vsock.h | |||
| @@ -155,7 +155,11 @@ struct vsock_transport { | |||
| 155 | 155 | ||
| 156 | /**** CORE ****/ | 156 | /**** CORE ****/ |
| 157 | 157 | ||
| 158 | int vsock_core_init(const struct vsock_transport *t); | 158 | int __vsock_core_init(const struct vsock_transport *t, struct module *owner); |
| 159 | static inline int vsock_core_init(const struct vsock_transport *t) | ||
| 160 | { | ||
| 161 | return __vsock_core_init(t, THIS_MODULE); | ||
| 162 | } | ||
| 159 | void vsock_core_exit(void); | 163 | void vsock_core_exit(void); |
| 160 | 164 | ||
| 161 | /**** UTILS ****/ | 165 | /**** UTILS ****/ |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index f3539a15c411..f856e5a746fa 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -3669,6 +3669,18 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy); | |||
| 3669 | void cfg80211_sched_scan_stopped(struct wiphy *wiphy); | 3669 | void cfg80211_sched_scan_stopped(struct wiphy *wiphy); |
| 3670 | 3670 | ||
| 3671 | /** | 3671 | /** |
| 3672 | * cfg80211_sched_scan_stopped_rtnl - notify that the scheduled scan has stopped | ||
| 3673 | * | ||
| 3674 | * @wiphy: the wiphy on which the scheduled scan stopped | ||
| 3675 | * | ||
| 3676 | * The driver can call this function to inform cfg80211 that the | ||
| 3677 | * scheduled scan had to be stopped, for whatever reason. The driver | ||
| 3678 | * is then called back via the sched_scan_stop operation when done. | ||
| 3679 | * This function should be called with rtnl locked. | ||
| 3680 | */ | ||
| 3681 | void cfg80211_sched_scan_stopped_rtnl(struct wiphy *wiphy); | ||
| 3682 | |||
| 3683 | /** | ||
| 3672 | * cfg80211_inform_bss_width_frame - inform cfg80211 of a received BSS frame | 3684 | * cfg80211_inform_bss_width_frame - inform cfg80211 of a received BSS frame |
| 3673 | * | 3685 | * |
| 3674 | * @wiphy: the wiphy reporting the BSS | 3686 | * @wiphy: the wiphy reporting the BSS |
diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h index 6efe73c79c52..058271bde27a 100644 --- a/include/net/inetpeer.h +++ b/include/net/inetpeer.h | |||
| @@ -177,16 +177,9 @@ static inline void inet_peer_refcheck(const struct inet_peer *p) | |||
| 177 | /* can be called with or without local BH being disabled */ | 177 | /* can be called with or without local BH being disabled */ |
| 178 | static inline int inet_getid(struct inet_peer *p, int more) | 178 | static inline int inet_getid(struct inet_peer *p, int more) |
| 179 | { | 179 | { |
| 180 | int old, new; | ||
| 181 | more++; | 180 | more++; |
| 182 | inet_peer_refcheck(p); | 181 | inet_peer_refcheck(p); |
| 183 | do { | 182 | return atomic_add_return(more, &p->ip_id_count) - more; |
| 184 | old = atomic_read(&p->ip_id_count); | ||
| 185 | new = old + more; | ||
| 186 | if (!new) | ||
| 187 | new = 1; | ||
| 188 | } while (atomic_cmpxchg(&p->ip_id_count, old, new) != old); | ||
| 189 | return new; | ||
| 190 | } | 183 | } |
| 191 | 184 | ||
| 192 | #endif /* _NET_INETPEER_H */ | 185 | #endif /* _NET_INETPEER_H */ |
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 6c4f5eac98e7..216cecce65e9 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h | |||
| @@ -127,6 +127,7 @@ int rt6_dump_route(struct rt6_info *rt, void *p_arg); | |||
| 127 | void rt6_ifdown(struct net *net, struct net_device *dev); | 127 | void rt6_ifdown(struct net *net, struct net_device *dev); |
| 128 | void rt6_mtu_change(struct net_device *dev, unsigned int mtu); | 128 | void rt6_mtu_change(struct net_device *dev, unsigned int mtu); |
| 129 | void rt6_remove_prefsrc(struct inet6_ifaddr *ifp); | 129 | void rt6_remove_prefsrc(struct inet6_ifaddr *ifp); |
| 130 | void rt6_clean_tohost(struct net *net, struct in6_addr *gateway); | ||
| 130 | 131 | ||
| 131 | 132 | ||
| 132 | /* | 133 | /* |
diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h index 80f500a29498..b2704fd0ec80 100644 --- a/include/net/netns/ipv4.h +++ b/include/net/netns/ipv4.h | |||
| @@ -20,6 +20,11 @@ struct local_ports { | |||
| 20 | int range[2]; | 20 | int range[2]; |
| 21 | }; | 21 | }; |
| 22 | 22 | ||
| 23 | struct ping_group_range { | ||
| 24 | seqlock_t lock; | ||
| 25 | kgid_t range[2]; | ||
| 26 | }; | ||
| 27 | |||
| 23 | struct netns_ipv4 { | 28 | struct netns_ipv4 { |
| 24 | #ifdef CONFIG_SYSCTL | 29 | #ifdef CONFIG_SYSCTL |
| 25 | struct ctl_table_header *forw_hdr; | 30 | struct ctl_table_header *forw_hdr; |
| @@ -66,13 +71,13 @@ struct netns_ipv4 { | |||
| 66 | int sysctl_icmp_ratemask; | 71 | int sysctl_icmp_ratemask; |
| 67 | int sysctl_icmp_errors_use_inbound_ifaddr; | 72 | int sysctl_icmp_errors_use_inbound_ifaddr; |
| 68 | 73 | ||
| 69 | struct local_ports sysctl_local_ports; | 74 | struct local_ports ip_local_ports; |
| 70 | 75 | ||
| 71 | int sysctl_tcp_ecn; | 76 | int sysctl_tcp_ecn; |
| 72 | int sysctl_ip_no_pmtu_disc; | 77 | int sysctl_ip_no_pmtu_disc; |
| 73 | int sysctl_ip_fwd_use_pmtu; | 78 | int sysctl_ip_fwd_use_pmtu; |
| 74 | 79 | ||
| 75 | kgid_t sysctl_ping_group_range[2]; | 80 | struct ping_group_range ping_group_range; |
| 76 | 81 | ||
| 77 | atomic_t dev_addr_genid; | 82 | atomic_t dev_addr_genid; |
| 78 | 83 | ||
diff --git a/include/net/sock.h b/include/net/sock.h index 8338a14e4805..21569cf456ed 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
| @@ -2255,6 +2255,11 @@ int sock_get_timestampns(struct sock *, struct timespec __user *); | |||
| 2255 | int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len, int level, | 2255 | int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len, int level, |
| 2256 | int type); | 2256 | int type); |
| 2257 | 2257 | ||
| 2258 | bool sk_ns_capable(const struct sock *sk, | ||
| 2259 | struct user_namespace *user_ns, int cap); | ||
| 2260 | bool sk_capable(const struct sock *sk, int cap); | ||
| 2261 | bool sk_net_capable(const struct sock *sk, int cap); | ||
| 2262 | |||
| 2258 | /* | 2263 | /* |
| 2259 | * Enable debug/info messages | 2264 | * Enable debug/info messages |
| 2260 | */ | 2265 | */ |
diff --git a/include/trace/events/module.h b/include/trace/events/module.h index 11fd51b413de..7c5cbfe3fc49 100644 --- a/include/trace/events/module.h +++ b/include/trace/events/module.h | |||
| @@ -25,7 +25,7 @@ struct module; | |||
| 25 | { (1UL << TAINT_OOT_MODULE), "O" }, \ | 25 | { (1UL << TAINT_OOT_MODULE), "O" }, \ |
| 26 | { (1UL << TAINT_FORCED_MODULE), "F" }, \ | 26 | { (1UL << TAINT_FORCED_MODULE), "F" }, \ |
| 27 | { (1UL << TAINT_CRAP), "C" }, \ | 27 | { (1UL << TAINT_CRAP), "C" }, \ |
| 28 | { (1UL << TAINT_UNSIGNED_MODULE), "X" }) | 28 | { (1UL << TAINT_UNSIGNED_MODULE), "E" }) |
| 29 | 29 | ||
| 30 | TRACE_EVENT(module_load, | 30 | TRACE_EVENT(module_load, |
| 31 | 31 | ||
| @@ -80,7 +80,7 @@ DECLARE_EVENT_CLASS(module_refcnt, | |||
| 80 | 80 | ||
| 81 | TP_fast_assign( | 81 | TP_fast_assign( |
| 82 | __entry->ip = ip; | 82 | __entry->ip = ip; |
| 83 | __entry->refcnt = __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs); | 83 | __entry->refcnt = __this_cpu_read(mod->refptr->incs) - __this_cpu_read(mod->refptr->decs); |
| 84 | __assign_str(name, mod->name); | 84 | __assign_str(name, mod->name); |
| 85 | ), | 85 | ), |
| 86 | 86 | ||
diff --git a/include/uapi/asm-generic/resource.h b/include/uapi/asm-generic/resource.h index f863428796d5..c6d10af50123 100644 --- a/include/uapi/asm-generic/resource.h +++ b/include/uapi/asm-generic/resource.h | |||
| @@ -57,12 +57,5 @@ | |||
| 57 | # define RLIM_INFINITY (~0UL) | 57 | # define RLIM_INFINITY (~0UL) |
| 58 | #endif | 58 | #endif |
| 59 | 59 | ||
| 60 | /* | ||
| 61 | * RLIMIT_STACK default maximum - some architectures override it: | ||
| 62 | */ | ||
| 63 | #ifndef _STK_LIM_MAX | ||
| 64 | # define _STK_LIM_MAX RLIM_INFINITY | ||
| 65 | #endif | ||
| 66 | |||
| 67 | 60 | ||
| 68 | #endif /* _UAPI_ASM_GENERIC_RESOURCE_H */ | 61 | #endif /* _UAPI_ASM_GENERIC_RESOURCE_H */ |
diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 6db66783d268..333640608087 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h | |||
| @@ -697,9 +697,11 @@ __SYSCALL(__NR_finit_module, sys_finit_module) | |||
| 697 | __SYSCALL(__NR_sched_setattr, sys_sched_setattr) | 697 | __SYSCALL(__NR_sched_setattr, sys_sched_setattr) |
| 698 | #define __NR_sched_getattr 275 | 698 | #define __NR_sched_getattr 275 |
| 699 | __SYSCALL(__NR_sched_getattr, sys_sched_getattr) | 699 | __SYSCALL(__NR_sched_getattr, sys_sched_getattr) |
| 700 | #define __NR_renameat2 276 | ||
| 701 | __SYSCALL(__NR_renameat2, sys_renameat2) | ||
| 700 | 702 | ||
| 701 | #undef __NR_syscalls | 703 | #undef __NR_syscalls |
| 702 | #define __NR_syscalls 276 | 704 | #define __NR_syscalls 277 |
| 703 | 705 | ||
| 704 | /* | 706 | /* |
| 705 | * All syscalls below here should go away really, | 707 | * All syscalls below here should go away really, |
diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h index 11917f747cb4..4c31a366be16 100644 --- a/include/uapi/linux/audit.h +++ b/include/uapi/linux/audit.h | |||
| @@ -331,9 +331,17 @@ enum { | |||
| 331 | #define AUDIT_FAIL_PRINTK 1 | 331 | #define AUDIT_FAIL_PRINTK 1 |
| 332 | #define AUDIT_FAIL_PANIC 2 | 332 | #define AUDIT_FAIL_PANIC 2 |
| 333 | 333 | ||
| 334 | /* | ||
| 335 | * These bits disambiguate different calling conventions that share an | ||
| 336 | * ELF machine type, bitness, and endianness | ||
| 337 | */ | ||
| 338 | #define __AUDIT_ARCH_CONVENTION_MASK 0x30000000 | ||
| 339 | #define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000 | ||
| 340 | |||
| 334 | /* distinguish syscall tables */ | 341 | /* distinguish syscall tables */ |
| 335 | #define __AUDIT_ARCH_64BIT 0x80000000 | 342 | #define __AUDIT_ARCH_64BIT 0x80000000 |
| 336 | #define __AUDIT_ARCH_LE 0x40000000 | 343 | #define __AUDIT_ARCH_LE 0x40000000 |
| 344 | |||
| 337 | #define AUDIT_ARCH_ALPHA (EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) | 345 | #define AUDIT_ARCH_ALPHA (EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) |
| 338 | #define AUDIT_ARCH_ARM (EM_ARM|__AUDIT_ARCH_LE) | 346 | #define AUDIT_ARCH_ARM (EM_ARM|__AUDIT_ARCH_LE) |
| 339 | #define AUDIT_ARCH_ARMEB (EM_ARM) | 347 | #define AUDIT_ARCH_ARMEB (EM_ARM) |
| @@ -346,7 +354,11 @@ enum { | |||
| 346 | #define AUDIT_ARCH_MIPS (EM_MIPS) | 354 | #define AUDIT_ARCH_MIPS (EM_MIPS) |
| 347 | #define AUDIT_ARCH_MIPSEL (EM_MIPS|__AUDIT_ARCH_LE) | 355 | #define AUDIT_ARCH_MIPSEL (EM_MIPS|__AUDIT_ARCH_LE) |
| 348 | #define AUDIT_ARCH_MIPS64 (EM_MIPS|__AUDIT_ARCH_64BIT) | 356 | #define AUDIT_ARCH_MIPS64 (EM_MIPS|__AUDIT_ARCH_64BIT) |
| 357 | #define AUDIT_ARCH_MIPS64N32 (EM_MIPS|__AUDIT_ARCH_64BIT|\ | ||
| 358 | __AUDIT_ARCH_CONVENTION_MIPS64_N32) | ||
| 349 | #define AUDIT_ARCH_MIPSEL64 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) | 359 | #define AUDIT_ARCH_MIPSEL64 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) |
| 360 | #define AUDIT_ARCH_MIPSEL64N32 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE|\ | ||
| 361 | __AUDIT_ARCH_CONVENTION_MIPS64_N32) | ||
| 350 | #define AUDIT_ARCH_OPENRISC (EM_OPENRISC) | 362 | #define AUDIT_ARCH_OPENRISC (EM_OPENRISC) |
| 351 | #define AUDIT_ARCH_PARISC (EM_PARISC) | 363 | #define AUDIT_ARCH_PARISC (EM_PARISC) |
| 352 | #define AUDIT_ARCH_PARISC64 (EM_PARISC|__AUDIT_ARCH_64BIT) | 364 | #define AUDIT_ARCH_PARISC64 (EM_PARISC|__AUDIT_ARCH_64BIT) |
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h index cf4750e1bb49..40b5ca8a1b1f 100644 --- a/include/uapi/linux/fuse.h +++ b/include/uapi/linux/fuse.h | |||
| @@ -96,6 +96,11 @@ | |||
| 96 | * | 96 | * |
| 97 | * 7.23 | 97 | * 7.23 |
| 98 | * - add FUSE_WRITEBACK_CACHE | 98 | * - add FUSE_WRITEBACK_CACHE |
| 99 | * - add time_gran to fuse_init_out | ||
| 100 | * - add reserved space to fuse_init_out | ||
| 101 | * - add FATTR_CTIME | ||
| 102 | * - add ctime and ctimensec to fuse_setattr_in | ||
| 103 | * - add FUSE_RENAME2 request | ||
| 99 | */ | 104 | */ |
| 100 | 105 | ||
| 101 | #ifndef _LINUX_FUSE_H | 106 | #ifndef _LINUX_FUSE_H |
| @@ -191,6 +196,7 @@ struct fuse_file_lock { | |||
| 191 | #define FATTR_ATIME_NOW (1 << 7) | 196 | #define FATTR_ATIME_NOW (1 << 7) |
| 192 | #define FATTR_MTIME_NOW (1 << 8) | 197 | #define FATTR_MTIME_NOW (1 << 8) |
| 193 | #define FATTR_LOCKOWNER (1 << 9) | 198 | #define FATTR_LOCKOWNER (1 << 9) |
| 199 | #define FATTR_CTIME (1 << 10) | ||
| 194 | 200 | ||
| 195 | /** | 201 | /** |
| 196 | * Flags returned by the OPEN request | 202 | * Flags returned by the OPEN request |
| @@ -348,6 +354,7 @@ enum fuse_opcode { | |||
| 348 | FUSE_BATCH_FORGET = 42, | 354 | FUSE_BATCH_FORGET = 42, |
| 349 | FUSE_FALLOCATE = 43, | 355 | FUSE_FALLOCATE = 43, |
| 350 | FUSE_READDIRPLUS = 44, | 356 | FUSE_READDIRPLUS = 44, |
| 357 | FUSE_RENAME2 = 45, | ||
| 351 | 358 | ||
| 352 | /* CUSE specific operations */ | 359 | /* CUSE specific operations */ |
| 353 | CUSE_INIT = 4096, | 360 | CUSE_INIT = 4096, |
| @@ -426,6 +433,12 @@ struct fuse_rename_in { | |||
| 426 | uint64_t newdir; | 433 | uint64_t newdir; |
| 427 | }; | 434 | }; |
| 428 | 435 | ||
| 436 | struct fuse_rename2_in { | ||
| 437 | uint64_t newdir; | ||
| 438 | uint32_t flags; | ||
| 439 | uint32_t padding; | ||
| 440 | }; | ||
| 441 | |||
| 429 | struct fuse_link_in { | 442 | struct fuse_link_in { |
| 430 | uint64_t oldnodeid; | 443 | uint64_t oldnodeid; |
| 431 | }; | 444 | }; |
| @@ -438,10 +451,10 @@ struct fuse_setattr_in { | |||
| 438 | uint64_t lock_owner; | 451 | uint64_t lock_owner; |
| 439 | uint64_t atime; | 452 | uint64_t atime; |
| 440 | uint64_t mtime; | 453 | uint64_t mtime; |
| 441 | uint64_t unused2; | 454 | uint64_t ctime; |
| 442 | uint32_t atimensec; | 455 | uint32_t atimensec; |
| 443 | uint32_t mtimensec; | 456 | uint32_t mtimensec; |
| 444 | uint32_t unused3; | 457 | uint32_t ctimensec; |
| 445 | uint32_t mode; | 458 | uint32_t mode; |
| 446 | uint32_t unused4; | 459 | uint32_t unused4; |
| 447 | uint32_t uid; | 460 | uint32_t uid; |
| @@ -559,6 +572,9 @@ struct fuse_init_in { | |||
| 559 | uint32_t flags; | 572 | uint32_t flags; |
| 560 | }; | 573 | }; |
| 561 | 574 | ||
| 575 | #define FUSE_COMPAT_INIT_OUT_SIZE 8 | ||
| 576 | #define FUSE_COMPAT_22_INIT_OUT_SIZE 24 | ||
| 577 | |||
| 562 | struct fuse_init_out { | 578 | struct fuse_init_out { |
| 563 | uint32_t major; | 579 | uint32_t major; |
| 564 | uint32_t minor; | 580 | uint32_t minor; |
| @@ -567,6 +583,8 @@ struct fuse_init_out { | |||
| 567 | uint16_t max_background; | 583 | uint16_t max_background; |
| 568 | uint16_t congestion_threshold; | 584 | uint16_t congestion_threshold; |
| 569 | uint32_t max_write; | 585 | uint32_t max_write; |
| 586 | uint32_t time_gran; | ||
| 587 | uint32_t unused[9]; | ||
| 570 | }; | 588 | }; |
| 571 | 589 | ||
| 572 | #define CUSE_INIT_INFO_MAX 4096 | 590 | #define CUSE_INIT_INFO_MAX 4096 |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index 1ba9d626aa83..194c1eab04d8 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
| @@ -3856,6 +3856,8 @@ enum nl80211_ap_sme_features { | |||
| 3856 | * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested | 3856 | * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested |
| 3857 | * to work properly to suppport receiving regulatory hints from | 3857 | * to work properly to suppport receiving regulatory hints from |
| 3858 | * cellular base stations. | 3858 | * cellular base stations. |
| 3859 | * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: (no longer available, only | ||
| 3860 | * here to reserve the value for API/ABI compatibility) | ||
| 3859 | * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of | 3861 | * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of |
| 3860 | * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station | 3862 | * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station |
| 3861 | * mode | 3863 | * mode |
| @@ -3897,7 +3899,7 @@ enum nl80211_feature_flags { | |||
| 3897 | NL80211_FEATURE_HT_IBSS = 1 << 1, | 3899 | NL80211_FEATURE_HT_IBSS = 1 << 1, |
| 3898 | NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, | 3900 | NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, |
| 3899 | NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, | 3901 | NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, |
| 3900 | /* bit 4 is reserved - don't use */ | 3902 | NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, |
| 3901 | NL80211_FEATURE_SAE = 1 << 5, | 3903 | NL80211_FEATURE_SAE = 1 << 5, |
| 3902 | NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, | 3904 | NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, |
| 3903 | NL80211_FEATURE_SCAN_FLUSH = 1 << 7, | 3905 | NL80211_FEATURE_SCAN_FLUSH = 1 << 7, |
diff --git a/include/uapi/linux/usb/Kbuild b/include/uapi/linux/usb/Kbuild index 6cb4ea826834..4cc4d6e7e523 100644 --- a/include/uapi/linux/usb/Kbuild +++ b/include/uapi/linux/usb/Kbuild | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | # UAPI Header export list | 1 | # UAPI Header export list |
| 2 | header-y += audio.h | 2 | header-y += audio.h |
| 3 | header-y += cdc.h | 3 | header-y += cdc.h |
| 4 | header-y += cdc-wdm.h | ||
| 4 | header-y += ch11.h | 5 | header-y += ch11.h |
| 5 | header-y += ch9.h | 6 | header-y += ch9.h |
| 6 | header-y += functionfs.h | 7 | header-y += functionfs.h |
diff --git a/include/uapi/linux/usb/cdc-wdm.h b/include/uapi/linux/usb/cdc-wdm.h index f03134feebd6..0dc132e75030 100644 --- a/include/uapi/linux/usb/cdc-wdm.h +++ b/include/uapi/linux/usb/cdc-wdm.h | |||
| @@ -9,6 +9,8 @@ | |||
| 9 | #ifndef _UAPI__LINUX_USB_CDC_WDM_H | 9 | #ifndef _UAPI__LINUX_USB_CDC_WDM_H |
| 10 | #define _UAPI__LINUX_USB_CDC_WDM_H | 10 | #define _UAPI__LINUX_USB_CDC_WDM_H |
| 11 | 11 | ||
| 12 | #include <linux/types.h> | ||
| 13 | |||
| 12 | /* | 14 | /* |
| 13 | * This IOCTL is used to retrieve the wMaxCommand for the device, | 15 | * This IOCTL is used to retrieve the wMaxCommand for the device, |
| 14 | * defining the message limit for both reading and writing. | 16 | * defining the message limit for both reading and writing. |
