diff options
Diffstat (limited to 'include')
86 files changed, 730 insertions, 159 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/pgtable.h b/include/asm-generic/pgtable.h index 1ec08c198b66..a8015a7a55bb 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
@@ -693,24 +693,35 @@ static inline int pmd_numa(pmd_t pmd) | |||
693 | #ifndef pte_mknonnuma | 693 | #ifndef pte_mknonnuma |
694 | static inline pte_t pte_mknonnuma(pte_t pte) | 694 | static inline pte_t pte_mknonnuma(pte_t pte) |
695 | { | 695 | { |
696 | pte = pte_clear_flags(pte, _PAGE_NUMA); | 696 | pteval_t val = pte_val(pte); |
697 | return pte_set_flags(pte, _PAGE_PRESENT|_PAGE_ACCESSED); | 697 | |
698 | val &= ~_PAGE_NUMA; | ||
699 | val |= (_PAGE_PRESENT|_PAGE_ACCESSED); | ||
700 | return __pte(val); | ||
698 | } | 701 | } |
699 | #endif | 702 | #endif |
700 | 703 | ||
701 | #ifndef pmd_mknonnuma | 704 | #ifndef pmd_mknonnuma |
702 | static inline pmd_t pmd_mknonnuma(pmd_t pmd) | 705 | static inline pmd_t pmd_mknonnuma(pmd_t pmd) |
703 | { | 706 | { |
704 | pmd = pmd_clear_flags(pmd, _PAGE_NUMA); | 707 | pmdval_t val = pmd_val(pmd); |
705 | return pmd_set_flags(pmd, _PAGE_PRESENT|_PAGE_ACCESSED); | 708 | |
709 | val &= ~_PAGE_NUMA; | ||
710 | val |= (_PAGE_PRESENT|_PAGE_ACCESSED); | ||
711 | |||
712 | return __pmd(val); | ||
706 | } | 713 | } |
707 | #endif | 714 | #endif |
708 | 715 | ||
709 | #ifndef pte_mknuma | 716 | #ifndef pte_mknuma |
710 | static inline pte_t pte_mknuma(pte_t pte) | 717 | static inline pte_t pte_mknuma(pte_t pte) |
711 | { | 718 | { |
712 | pte = pte_set_flags(pte, _PAGE_NUMA); | 719 | pteval_t val = pte_val(pte); |
713 | return pte_clear_flags(pte, _PAGE_PRESENT); | 720 | |
721 | val &= ~_PAGE_PRESENT; | ||
722 | val |= _PAGE_NUMA; | ||
723 | |||
724 | return __pte(val); | ||
714 | } | 725 | } |
715 | #endif | 726 | #endif |
716 | 727 | ||
@@ -729,8 +740,12 @@ static inline void ptep_set_numa(struct mm_struct *mm, unsigned long addr, | |||
729 | #ifndef pmd_mknuma | 740 | #ifndef pmd_mknuma |
730 | static inline pmd_t pmd_mknuma(pmd_t pmd) | 741 | static inline pmd_t pmd_mknuma(pmd_t pmd) |
731 | { | 742 | { |
732 | pmd = pmd_set_flags(pmd, _PAGE_NUMA); | 743 | pmdval_t val = pmd_val(pmd); |
733 | return pmd_clear_flags(pmd, _PAGE_PRESENT); | 744 | |
745 | val &= ~_PAGE_PRESENT; | ||
746 | val |= _PAGE_NUMA; | ||
747 | |||
748 | return __pmd(val); | ||
734 | } | 749 | } |
735 | #endif | 750 | #endif |
736 | 751 | ||
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 d3909effd725..94f9ea8abcae 100644 --- a/include/asm-generic/word-at-a-time.h +++ b/include/asm-generic/word-at-a-time.h | |||
@@ -50,11 +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 | #ifdef CONFIG_64BIT | 53 | #define zero_bytemask(mask) (~1ul << __fls(mask)) |
54 | #define zero_bytemask(mask) (~0ul << fls64(mask)) | 54 | #endif |
55 | #else | ||
56 | #define zero_bytemask(mask) (~0ul << fls(mask)) | ||
57 | #endif /* CONFIG_64BIT */ | ||
58 | #endif /* zero_bytemask */ | ||
59 | 55 | ||
60 | #endif /* _ASM_WORD_AT_A_TIME_H */ | 56 | #endif /* _ASM_WORD_AT_A_TIME_H */ |
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h index 0bb34ca2ad2b..36a5febac2a6 100644 --- a/include/drm/drm_crtc_helper.h +++ b/include/drm/drm_crtc_helper.h | |||
@@ -125,7 +125,6 @@ struct drm_connector_helper_funcs { | |||
125 | struct drm_encoder *(*best_encoder)(struct drm_connector *connector); | 125 | struct drm_encoder *(*best_encoder)(struct drm_connector *connector); |
126 | }; | 126 | }; |
127 | 127 | ||
128 | extern int drm_helper_probe_single_connector_modes(struct drm_connector *connector, uint32_t maxX, uint32_t maxY); | ||
129 | extern void drm_helper_disable_unused_functions(struct drm_device *dev); | 128 | extern void drm_helper_disable_unused_functions(struct drm_device *dev); |
130 | extern int drm_crtc_helper_set_config(struct drm_mode_set *set); | 129 | extern int drm_crtc_helper_set_config(struct drm_mode_set *set); |
131 | extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, | 130 | extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, |
@@ -161,6 +160,11 @@ static inline void drm_connector_helper_add(struct drm_connector *connector, | |||
161 | } | 160 | } |
162 | 161 | ||
163 | extern void drm_helper_resume_force_mode(struct drm_device *dev); | 162 | extern void drm_helper_resume_force_mode(struct drm_device *dev); |
163 | |||
164 | /* drm_probe_helper.c */ | ||
165 | extern int drm_helper_probe_single_connector_modes(struct drm_connector | ||
166 | *connector, uint32_t maxX, | ||
167 | uint32_t maxY); | ||
164 | extern void drm_kms_helper_poll_init(struct drm_device *dev); | 168 | extern void drm_kms_helper_poll_init(struct drm_device *dev); |
165 | extern void drm_kms_helper_poll_fini(struct drm_device *dev); | 169 | extern void drm_kms_helper_poll_fini(struct drm_device *dev); |
166 | extern bool drm_helper_hpd_irq_event(struct drm_device *dev); | 170 | extern bool drm_helper_hpd_irq_event(struct drm_device *dev); |
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h index b4f58914bf7d..cfcacec5b89d 100644 --- a/include/drm/drm_dp_helper.h +++ b/include/drm/drm_dp_helper.h | |||
@@ -456,6 +456,10 @@ struct drm_dp_aux_msg { | |||
456 | * transactions. The drm_dp_aux_register_i2c_bus() function registers an | 456 | * transactions. The drm_dp_aux_register_i2c_bus() function registers an |
457 | * I2C adapter that can be passed to drm_probe_ddc(). Upon removal, drivers | 457 | * I2C adapter that can be passed to drm_probe_ddc(). Upon removal, drivers |
458 | * should call drm_dp_aux_unregister_i2c_bus() to remove the I2C adapter. | 458 | * should call drm_dp_aux_unregister_i2c_bus() to remove the I2C adapter. |
459 | * | ||
460 | * Note that the aux helper code assumes that the .transfer() function | ||
461 | * only modifies the reply field of the drm_dp_aux_msg structure. The | ||
462 | * retry logic and i2c helpers assume this is the case. | ||
459 | */ | 463 | */ |
460 | struct drm_dp_aux { | 464 | struct drm_dp_aux { |
461 | const char *name; | 465 | const char *name; |
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 940ece4934ba..012d58fa8ff0 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/dt-bindings/clock/tegra124-car.h b/include/dt-bindings/clock/tegra124-car.h index 8c1603b10665..433528ab5161 100644 --- a/include/dt-bindings/clock/tegra124-car.h +++ b/include/dt-bindings/clock/tegra124-car.h | |||
@@ -29,7 +29,7 @@ | |||
29 | /* 10 (register bit affects spdif_in and spdif_out) */ | 29 | /* 10 (register bit affects spdif_in and spdif_out) */ |
30 | #define TEGRA124_CLK_I2S1 11 | 30 | #define TEGRA124_CLK_I2S1 11 |
31 | #define TEGRA124_CLK_I2C1 12 | 31 | #define TEGRA124_CLK_I2C1 12 |
32 | #define TEGRA124_CLK_NDFLASH 13 | 32 | /* 13 */ |
33 | #define TEGRA124_CLK_SDMMC1 14 | 33 | #define TEGRA124_CLK_SDMMC1 14 |
34 | #define TEGRA124_CLK_SDMMC4 15 | 34 | #define TEGRA124_CLK_SDMMC4 15 |
35 | /* 16 */ | 35 | /* 16 */ |
@@ -83,7 +83,7 @@ | |||
83 | 83 | ||
84 | /* 64 */ | 84 | /* 64 */ |
85 | #define TEGRA124_CLK_UARTD 65 | 85 | #define TEGRA124_CLK_UARTD 65 |
86 | #define TEGRA124_CLK_UARTE 66 | 86 | /* 66 */ |
87 | #define TEGRA124_CLK_I2C3 67 | 87 | #define TEGRA124_CLK_I2C3 67 |
88 | #define TEGRA124_CLK_SBC4 68 | 88 | #define TEGRA124_CLK_SBC4 68 |
89 | #define TEGRA124_CLK_SDMMC3 69 | 89 | #define TEGRA124_CLK_SDMMC3 69 |
@@ -97,7 +97,7 @@ | |||
97 | #define TEGRA124_CLK_TRACE 77 | 97 | #define TEGRA124_CLK_TRACE 77 |
98 | #define TEGRA124_CLK_SOC_THERM 78 | 98 | #define TEGRA124_CLK_SOC_THERM 78 |
99 | #define TEGRA124_CLK_DTV 79 | 99 | #define TEGRA124_CLK_DTV 79 |
100 | #define TEGRA124_CLK_NDSPEED 80 | 100 | /* 80 */ |
101 | #define TEGRA124_CLK_I2CSLOW 81 | 101 | #define TEGRA124_CLK_I2CSLOW 81 |
102 | #define TEGRA124_CLK_DSIB 82 | 102 | #define TEGRA124_CLK_DSIB 82 |
103 | #define TEGRA124_CLK_TSEC 83 | 103 | #define TEGRA124_CLK_TSEC 83 |
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/device.h b/include/linux/device.h index 233bbbeb768d..d1d1c055b48e 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -566,12 +566,6 @@ extern int __must_check device_create_bin_file(struct device *dev, | |||
566 | const struct bin_attribute *attr); | 566 | const struct bin_attribute *attr); |
567 | extern void device_remove_bin_file(struct device *dev, | 567 | extern void device_remove_bin_file(struct device *dev, |
568 | const struct bin_attribute *attr); | 568 | const struct bin_attribute *attr); |
569 | extern int device_schedule_callback_owner(struct device *dev, | ||
570 | void (*func)(struct device *dev), struct module *owner); | ||
571 | |||
572 | /* This is a macro to avoid include problems with THIS_MODULE */ | ||
573 | #define device_schedule_callback(dev, func) \ | ||
574 | device_schedule_callback_owner(dev, func, THIS_MODULE) | ||
575 | 569 | ||
576 | /* device resource management */ | 570 | /* device resource management */ |
577 | typedef void (*dr_release_t)(struct device *dev, void *res); | 571 | typedef void (*dr_release_t)(struct device *dev, void *res); |
@@ -932,10 +926,7 @@ extern int device_online(struct device *dev); | |||
932 | extern struct device *__root_device_register(const char *name, | 926 | extern struct device *__root_device_register(const char *name, |
933 | struct module *owner); | 927 | struct module *owner); |
934 | 928 | ||
935 | /* | 929 | /* This is a macro to avoid include problems with THIS_MODULE */ |
936 | * This is a macro to avoid include problems with THIS_MODULE, | ||
937 | * just as per what is done for device_schedule_callback() above. | ||
938 | */ | ||
939 | #define root_device_register(name) \ | 930 | #define root_device_register(name) \ |
940 | __root_device_register(name, THIS_MODULE) | 931 | __root_device_register(name, THIS_MODULE) |
941 | 932 | ||
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/filter.h b/include/linux/filter.h index 262dcbb75ffe..024fd03e5d18 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h | |||
@@ -220,7 +220,6 @@ enum { | |||
220 | BPF_S_ANC_RXHASH, | 220 | BPF_S_ANC_RXHASH, |
221 | BPF_S_ANC_CPU, | 221 | BPF_S_ANC_CPU, |
222 | BPF_S_ANC_ALU_XOR_X, | 222 | BPF_S_ANC_ALU_XOR_X, |
223 | BPF_S_ANC_SECCOMP_LD_W, | ||
224 | BPF_S_ANC_VLAN_TAG, | 223 | BPF_S_ANC_VLAN_TAG, |
225 | BPF_S_ANC_VLAN_TAG_PRESENT, | 224 | BPF_S_ANC_VLAN_TAG_PRESENT, |
226 | BPF_S_ANC_PAY_OFFSET, | 225 | BPF_S_ANC_PAY_OFFSET, |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 7a9c5bca2b76..878031227c57 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -815,7 +815,7 @@ static inline struct file *get_file(struct file *f) | |||
815 | #define FL_SLEEP 128 /* A blocking lock */ | 815 | #define FL_SLEEP 128 /* A blocking lock */ |
816 | #define FL_DOWNGRADE_PENDING 256 /* Lease is being downgraded */ | 816 | #define FL_DOWNGRADE_PENDING 256 /* Lease is being downgraded */ |
817 | #define FL_UNLOCK_PENDING 512 /* Lease is being broken */ | 817 | #define FL_UNLOCK_PENDING 512 /* Lease is being broken */ |
818 | #define FL_FILE_PVT 1024 /* lock is private to the file */ | 818 | #define FL_OFDLCK 1024 /* lock is "owned" by struct file */ |
819 | 819 | ||
820 | /* | 820 | /* |
821 | * Special return value from posix_lock_file() and vfs_lock_file() for | 821 | * Special return value from posix_lock_file() and vfs_lock_file() for |
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 9212b017bc72..ae9504b4b67d 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h | |||
@@ -535,6 +535,7 @@ static inline int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_a | |||
535 | extern int ftrace_arch_read_dyn_info(char *buf, int size); | 535 | extern int ftrace_arch_read_dyn_info(char *buf, int size); |
536 | 536 | ||
537 | extern int skip_trace(unsigned long ip); | 537 | extern int skip_trace(unsigned long ip); |
538 | extern void ftrace_module_init(struct module *mod); | ||
538 | 539 | ||
539 | extern void ftrace_disable_daemon(void); | 540 | extern void ftrace_disable_daemon(void); |
540 | extern void ftrace_enable_daemon(void); | 541 | extern void ftrace_enable_daemon(void); |
@@ -544,6 +545,7 @@ static inline int ftrace_force_update(void) { return 0; } | |||
544 | static inline void ftrace_disable_daemon(void) { } | 545 | static inline void ftrace_disable_daemon(void) { } |
545 | static inline void ftrace_enable_daemon(void) { } | 546 | static inline void ftrace_enable_daemon(void) { } |
546 | static inline void ftrace_release_mod(struct module *mod) {} | 547 | static inline void ftrace_release_mod(struct module *mod) {} |
548 | static inline void ftrace_module_init(struct module *mod) {} | ||
547 | static inline __init int register_ftrace_command(struct ftrace_func_command *cmd) | 549 | static inline __init int register_ftrace_command(struct ftrace_func_command *cmd) |
548 | { | 550 | { |
549 | return -EINVAL; | 551 | return -EINVAL; |
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/hyperv.h b/include/linux/hyperv.h index ab7359fde987..2d7b4f139c32 100644 --- a/include/linux/hyperv.h +++ b/include/linux/hyperv.h | |||
@@ -147,15 +147,17 @@ hv_get_ringbuffer_availbytes(struct hv_ring_buffer_info *rbi, | |||
147 | * 0 . 13 (Windows Server 2008) | 147 | * 0 . 13 (Windows Server 2008) |
148 | * 1 . 1 (Windows 7) | 148 | * 1 . 1 (Windows 7) |
149 | * 2 . 4 (Windows 8) | 149 | * 2 . 4 (Windows 8) |
150 | * 3 . 0 (Windows 8 R2) | ||
150 | */ | 151 | */ |
151 | 152 | ||
152 | #define VERSION_WS2008 ((0 << 16) | (13)) | 153 | #define VERSION_WS2008 ((0 << 16) | (13)) |
153 | #define VERSION_WIN7 ((1 << 16) | (1)) | 154 | #define VERSION_WIN7 ((1 << 16) | (1)) |
154 | #define VERSION_WIN8 ((2 << 16) | (4)) | 155 | #define VERSION_WIN8 ((2 << 16) | (4)) |
156 | #define VERSION_WIN8_1 ((3 << 16) | (0)) | ||
155 | 157 | ||
156 | #define VERSION_INVAL -1 | 158 | #define VERSION_INVAL -1 |
157 | 159 | ||
158 | #define VERSION_CURRENT VERSION_WIN8 | 160 | #define VERSION_CURRENT VERSION_WIN8_1 |
159 | 161 | ||
160 | /* Make maximum size of pipe payload of 16K */ | 162 | /* Make maximum size of pipe payload of 16K */ |
161 | #define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384) | 163 | #define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384) |
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_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 c7bfac1c4a7b..051c85032f48 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
@@ -203,7 +203,40 @@ static inline int check_wakeup_irqs(void) { return 0; } | |||
203 | 203 | ||
204 | extern cpumask_var_t irq_default_affinity; | 204 | extern cpumask_var_t irq_default_affinity; |
205 | 205 | ||
206 | extern int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask); | 206 | /* Internal implementation. Use the helpers below */ |
207 | extern int __irq_set_affinity(unsigned int irq, const struct cpumask *cpumask, | ||
208 | bool force); | ||
209 | |||
210 | /** | ||
211 | * irq_set_affinity - Set the irq affinity of a given irq | ||
212 | * @irq: Interrupt to set affinity | ||
213 | * @cpumask: cpumask | ||
214 | * | ||
215 | * Fails if cpumask does not contain an online CPU | ||
216 | */ | ||
217 | static inline int | ||
218 | irq_set_affinity(unsigned int irq, const struct cpumask *cpumask) | ||
219 | { | ||
220 | return __irq_set_affinity(irq, cpumask, false); | ||
221 | } | ||
222 | |||
223 | /** | ||
224 | * irq_force_affinity - Force the irq affinity of a given irq | ||
225 | * @irq: Interrupt to set affinity | ||
226 | * @cpumask: cpumask | ||
227 | * | ||
228 | * Same as irq_set_affinity, but without checking the mask against | ||
229 | * online cpus. | ||
230 | * | ||
231 | * Solely for low level cpu hotplug code, where we need to make per | ||
232 | * cpu interrupts affine before the cpu becomes online. | ||
233 | */ | ||
234 | static inline int | ||
235 | irq_force_affinity(unsigned int irq, const struct cpumask *cpumask) | ||
236 | { | ||
237 | return __irq_set_affinity(irq, cpumask, true); | ||
238 | } | ||
239 | |||
207 | extern int irq_can_set_affinity(unsigned int irq); | 240 | extern int irq_can_set_affinity(unsigned int irq); |
208 | extern int irq_select_affinity(unsigned int irq); | 241 | extern int irq_select_affinity(unsigned int irq); |
209 | 242 | ||
@@ -239,6 +272,11 @@ static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m) | |||
239 | return -EINVAL; | 272 | return -EINVAL; |
240 | } | 273 | } |
241 | 274 | ||
275 | static inline int irq_force_affinity(unsigned int irq, const struct cpumask *cpumask) | ||
276 | { | ||
277 | return 0; | ||
278 | } | ||
279 | |||
242 | static inline int irq_can_set_affinity(unsigned int irq) | 280 | static inline int irq_can_set_affinity(unsigned int irq) |
243 | { | 281 | { |
244 | return 0; | 282 | return 0; |
diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h index 1f9f56e28851..76d2acbfa7c6 100644 --- a/include/linux/ipmi.h +++ b/include/linux/ipmi.h | |||
@@ -237,7 +237,7 @@ int ipmi_set_maintenance_mode(ipmi_user_t user, int mode); | |||
237 | * The first user that sets this to TRUE will receive all events that | 237 | * The first user that sets this to TRUE will receive all events that |
238 | * have been queued while no one was waiting for events. | 238 | * have been queued while no one was waiting for events. |
239 | */ | 239 | */ |
240 | int ipmi_set_gets_events(ipmi_user_t user, int val); | 240 | int ipmi_set_gets_events(ipmi_user_t user, bool val); |
241 | 241 | ||
242 | /* | 242 | /* |
243 | * Called when a new SMI is registered. This will also be called on | 243 | * Called when a new SMI is registered. This will also be called on |
diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h index 8ea3fe0b9759..bd349240d50e 100644 --- a/include/linux/ipmi_smi.h +++ b/include/linux/ipmi_smi.h | |||
@@ -109,12 +109,19 @@ struct ipmi_smi_handlers { | |||
109 | events from the BMC we are attached to. */ | 109 | events from the BMC we are attached to. */ |
110 | void (*request_events)(void *send_info); | 110 | void (*request_events)(void *send_info); |
111 | 111 | ||
112 | /* Called by the upper layer when some user requires that the | ||
113 | interface watch for events, received messages, watchdog | ||
114 | pretimeouts, or not. Used by the SMI to know if it should | ||
115 | watch for these. This may be NULL if the SMI does not | ||
116 | implement it. */ | ||
117 | void (*set_need_watch)(void *send_info, bool enable); | ||
118 | |||
112 | /* Called when the interface should go into "run to | 119 | /* Called when the interface should go into "run to |
113 | completion" mode. If this call sets the value to true, the | 120 | completion" mode. If this call sets the value to true, the |
114 | interface should make sure that all messages are flushed | 121 | interface should make sure that all messages are flushed |
115 | out and that none are pending, and any new requests are run | 122 | out and that none are pending, and any new requests are run |
116 | to completion immediately. */ | 123 | to completion immediately. */ |
117 | void (*set_run_to_completion)(void *send_info, int run_to_completion); | 124 | void (*set_run_to_completion)(void *send_info, bool run_to_completion); |
118 | 125 | ||
119 | /* Called to poll for work to do. This is so upper layers can | 126 | /* Called to poll for work to do. This is so upper layers can |
120 | poll for operations during things like crash dumps. */ | 127 | poll for operations during things like crash dumps. */ |
@@ -125,7 +132,7 @@ struct ipmi_smi_handlers { | |||
125 | setting. The message handler does the mode handling. Note | 132 | setting. The message handler does the mode handling. Note |
126 | that this is called from interrupt context, so it cannot | 133 | that this is called from interrupt context, so it cannot |
127 | block. */ | 134 | block. */ |
128 | void (*set_maintenance_mode)(void *send_info, int enable); | 135 | void (*set_maintenance_mode)(void *send_info, bool enable); |
129 | 136 | ||
130 | /* Tell the handler that we are using it/not using it. The | 137 | /* Tell the handler that we are using it/not using it. The |
131 | message handler get the modules that this handler belongs | 138 | message handler get the modules that this handler belongs |
diff --git a/include/linux/irq.h b/include/linux/irq.h index d278838908cb..5c57efb863d0 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -394,7 +394,8 @@ extern void remove_percpu_irq(unsigned int irq, struct irqaction *act); | |||
394 | 394 | ||
395 | extern void irq_cpu_online(void); | 395 | extern void irq_cpu_online(void); |
396 | extern void irq_cpu_offline(void); | 396 | extern void irq_cpu_offline(void); |
397 | extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask); | 397 | extern int irq_set_affinity_locked(struct irq_data *data, |
398 | const struct cpumask *cpumask, bool force); | ||
398 | 399 | ||
399 | #if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ) | 400 | #if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ) |
400 | void irq_move_irq(struct irq_data *data); | 401 | void irq_move_irq(struct irq_data *data); |
@@ -602,6 +603,8 @@ static inline u32 irq_get_trigger_type(unsigned int irq) | |||
602 | return d ? irqd_get_trigger_type(d) : 0; | 603 | return d ? irqd_get_trigger_type(d) : 0; |
603 | } | 604 | } |
604 | 605 | ||
606 | unsigned int arch_dynirq_lower_bound(unsigned int from); | ||
607 | |||
605 | 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, |
606 | struct module *owner); | 609 | struct module *owner); |
607 | 610 | ||
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h index b0122dc6f96a..ca1be5c9136c 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 */ |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 1de36be64df4..5ab4e3a76721 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -822,6 +822,7 @@ struct ata_port { | |||
822 | unsigned long qc_allocated; | 822 | unsigned long qc_allocated; |
823 | unsigned int qc_active; | 823 | unsigned int qc_active; |
824 | int nr_active_links; /* #links with active qcs */ | 824 | int nr_active_links; /* #links with active qcs */ |
825 | unsigned int last_tag; /* track next tag hw expects */ | ||
825 | 826 | ||
826 | struct ata_link link; /* host default link */ | 827 | struct ata_link link; /* host default link */ |
827 | struct ata_link *slave_link; /* see ata_slave_link_init() */ | 828 | struct ata_link *slave_link; /* see ata_slave_link_init() */ |
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/mdio-gpio.h b/include/linux/mdio-gpio.h index 7c9fe3c2be73..66c30a763b10 100644 --- a/include/linux/mdio-gpio.h +++ b/include/linux/mdio-gpio.h | |||
@@ -17,6 +17,11 @@ struct mdio_gpio_platform_data { | |||
17 | /* GPIO numbers for bus pins */ | 17 | /* GPIO numbers for bus pins */ |
18 | unsigned int mdc; | 18 | unsigned int mdc; |
19 | unsigned int mdio; | 19 | unsigned int mdio; |
20 | unsigned int mdo; | ||
21 | |||
22 | bool mdc_active_low; | ||
23 | bool mdio_active_low; | ||
24 | bool mdo_active_low; | ||
20 | 25 | ||
21 | unsigned int phy_mask; | 26 | unsigned int phy_mask; |
22 | int irqs[PHY_MAX_ADDR]; | 27 | int irqs[PHY_MAX_ADDR]; |
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/mlx5/device.h b/include/linux/mlx5/device.h index 407bdb67fd4f..3406cfb1267a 100644 --- a/include/linux/mlx5/device.h +++ b/include/linux/mlx5/device.h | |||
@@ -179,6 +179,7 @@ enum { | |||
179 | MLX5_DEV_CAP_FLAG_BAD_QKEY_CNTR = 1LL << 9, | 179 | MLX5_DEV_CAP_FLAG_BAD_QKEY_CNTR = 1LL << 9, |
180 | MLX5_DEV_CAP_FLAG_APM = 1LL << 17, | 180 | MLX5_DEV_CAP_FLAG_APM = 1LL << 17, |
181 | MLX5_DEV_CAP_FLAG_ATOMIC = 1LL << 18, | 181 | MLX5_DEV_CAP_FLAG_ATOMIC = 1LL << 18, |
182 | MLX5_DEV_CAP_FLAG_BLOCK_MCAST = 1LL << 23, | ||
182 | MLX5_DEV_CAP_FLAG_ON_DMND_PG = 1LL << 24, | 183 | MLX5_DEV_CAP_FLAG_ON_DMND_PG = 1LL << 24, |
183 | MLX5_DEV_CAP_FLAG_CQ_MODER = 1LL << 29, | 184 | MLX5_DEV_CAP_FLAG_CQ_MODER = 1LL << 29, |
184 | MLX5_DEV_CAP_FLAG_RESIZE_CQ = 1LL << 30, | 185 | MLX5_DEV_CAP_FLAG_RESIZE_CQ = 1LL << 30, |
diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h index f829ad80ff28..9709b30e2d69 100644 --- a/include/linux/mlx5/qp.h +++ b/include/linux/mlx5/qp.h | |||
@@ -146,6 +146,7 @@ enum { | |||
146 | 146 | ||
147 | enum { | 147 | enum { |
148 | MLX5_QP_LAT_SENSITIVE = 1 << 28, | 148 | MLX5_QP_LAT_SENSITIVE = 1 << 28, |
149 | MLX5_QP_BLOCK_MCAST = 1 << 30, | ||
149 | MLX5_QP_ENABLE_SIG = 1 << 31, | 150 | MLX5_QP_ENABLE_SIG = 1 << 31, |
150 | }; | 151 | }; |
151 | 152 | ||
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/mtd/spear_smi.h b/include/linux/mtd/spear_smi.h index 8ae1726044c3..581603ac1277 100644 --- a/include/linux/mtd/spear_smi.h +++ b/include/linux/mtd/spear_smi.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright © 2010 ST Microelectronics | 2 | * Copyright © 2010 ST Microelectronics |
3 | * Shiraz Hashim <shiraz.hashim@st.com> | 3 | * Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
4 | * | 4 | * |
5 | * This file is licensed under the terms of the GNU General Public | 5 | * This file is licensed under the terms of the GNU General Public |
6 | * License version 2. This program is licensed "as is" without any | 6 | * License version 2. This program is licensed "as is" without any |
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/netfilter/nf_conntrack_proto_gre.h b/include/linux/netfilter/nf_conntrack_proto_gre.h index ec2ffaf418c8..df78dc2b5524 100644 --- a/include/linux/netfilter/nf_conntrack_proto_gre.h +++ b/include/linux/netfilter/nf_conntrack_proto_gre.h | |||
@@ -87,7 +87,6 @@ int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir, | |||
87 | /* delete keymap entries */ | 87 | /* delete keymap entries */ |
88 | void nf_ct_gre_keymap_destroy(struct nf_conn *ct); | 88 | void nf_ct_gre_keymap_destroy(struct nf_conn *ct); |
89 | 89 | ||
90 | void nf_ct_gre_keymap_flush(struct net *net); | ||
91 | void nf_nat_need_gre(void); | 90 | void nf_nat_need_gre(void); |
92 | 91 | ||
93 | #endif /* __KERNEL__ */ | 92 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index aad8eeaf416d..f64b01787ddc 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
@@ -169,4 +169,11 @@ struct netlink_tap { | |||
169 | extern int netlink_add_tap(struct netlink_tap *nt); | 169 | extern int netlink_add_tap(struct netlink_tap *nt); |
170 | extern int netlink_remove_tap(struct netlink_tap *nt); | 170 | extern int netlink_remove_tap(struct netlink_tap *nt); |
171 | 171 | ||
172 | bool __netlink_ns_capable(const struct netlink_skb_parms *nsp, | ||
173 | struct user_namespace *ns, int cap); | ||
174 | bool netlink_ns_capable(const struct sk_buff *skb, | ||
175 | struct user_namespace *ns, int cap); | ||
176 | bool netlink_capable(const struct sk_buff *skb, int cap); | ||
177 | bool netlink_net_capable(const struct sk_buff *skb, int cap); | ||
178 | |||
172 | #endif /* __LINUX_NETLINK_H */ | 179 | #endif /* __LINUX_NETLINK_H */ |
diff --git a/include/linux/of.h b/include/linux/of.h index 919bf211877d..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 | } |
@@ -374,6 +374,11 @@ static inline struct device_node *of_find_matching_node_and_match( | |||
374 | return NULL; | 374 | return NULL; |
375 | } | 375 | } |
376 | 376 | ||
377 | static inline struct device_node *of_find_node_by_path(const char *path) | ||
378 | { | ||
379 | return NULL; | ||
380 | } | ||
381 | |||
377 | static inline struct device_node *of_get_parent(const struct device_node *node) | 382 | static inline struct device_node *of_get_parent(const struct device_node *node) |
378 | { | 383 | { |
379 | return NULL; | 384 | return NULL; |
diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h index 3f23b4472c31..6404253d810d 100644 --- a/include/linux/of_irq.h +++ b/include/linux/of_irq.h | |||
@@ -44,11 +44,16 @@ extern void of_irq_init(const struct of_device_id *matches); | |||
44 | 44 | ||
45 | #ifdef CONFIG_OF_IRQ | 45 | #ifdef CONFIG_OF_IRQ |
46 | extern int of_irq_count(struct device_node *dev); | 46 | extern int of_irq_count(struct device_node *dev); |
47 | extern int of_irq_get(struct device_node *dev, int index); | ||
47 | #else | 48 | #else |
48 | static inline int of_irq_count(struct device_node *dev) | 49 | static inline int of_irq_count(struct device_node *dev) |
49 | { | 50 | { |
50 | return 0; | 51 | return 0; |
51 | } | 52 | } |
53 | static inline int of_irq_get(struct device_node *dev, int index) | ||
54 | { | ||
55 | return 0; | ||
56 | } | ||
52 | #endif | 57 | #endif |
53 | 58 | ||
54 | #if defined(CONFIG_OF) | 59 | #if defined(CONFIG_OF) |
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/phy.h b/include/linux/phy.h index 24126c4b27b5..4d0221fd0688 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
@@ -75,6 +75,7 @@ typedef enum { | |||
75 | PHY_INTERFACE_MODE_SMII, | 75 | PHY_INTERFACE_MODE_SMII, |
76 | PHY_INTERFACE_MODE_XGMII, | 76 | PHY_INTERFACE_MODE_XGMII, |
77 | PHY_INTERFACE_MODE_MOCA, | 77 | PHY_INTERFACE_MODE_MOCA, |
78 | PHY_INTERFACE_MODE_QSGMII, | ||
78 | PHY_INTERFACE_MODE_MAX, | 79 | PHY_INTERFACE_MODE_MAX, |
79 | } phy_interface_t; | 80 | } phy_interface_t; |
80 | 81 | ||
@@ -116,6 +117,8 @@ static inline const char *phy_modes(phy_interface_t interface) | |||
116 | return "xgmii"; | 117 | return "xgmii"; |
117 | case PHY_INTERFACE_MODE_MOCA: | 118 | case PHY_INTERFACE_MODE_MOCA: |
118 | return "moca"; | 119 | return "moca"; |
120 | case PHY_INTERFACE_MODE_QSGMII: | ||
121 | return "qsgmii"; | ||
119 | default: | 122 | default: |
120 | return "unknown"; | 123 | return "unknown"; |
121 | } | 124 | } |
diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index e2f5ca96cddc..2760744cb2a7 100644 --- a/include/linux/phy/phy.h +++ b/include/linux/phy/phy.h | |||
@@ -174,21 +174,29 @@ void devm_of_phy_provider_unregister(struct device *dev, | |||
174 | #else | 174 | #else |
175 | static inline int phy_pm_runtime_get(struct phy *phy) | 175 | static inline int phy_pm_runtime_get(struct phy *phy) |
176 | { | 176 | { |
177 | if (!phy) | ||
178 | return 0; | ||
177 | return -ENOSYS; | 179 | return -ENOSYS; |
178 | } | 180 | } |
179 | 181 | ||
180 | static inline int phy_pm_runtime_get_sync(struct phy *phy) | 182 | static inline int phy_pm_runtime_get_sync(struct phy *phy) |
181 | { | 183 | { |
184 | if (!phy) | ||
185 | return 0; | ||
182 | return -ENOSYS; | 186 | return -ENOSYS; |
183 | } | 187 | } |
184 | 188 | ||
185 | static inline int phy_pm_runtime_put(struct phy *phy) | 189 | static inline int phy_pm_runtime_put(struct phy *phy) |
186 | { | 190 | { |
191 | if (!phy) | ||
192 | return 0; | ||
187 | return -ENOSYS; | 193 | return -ENOSYS; |
188 | } | 194 | } |
189 | 195 | ||
190 | static inline int phy_pm_runtime_put_sync(struct phy *phy) | 196 | static inline int phy_pm_runtime_put_sync(struct phy *phy) |
191 | { | 197 | { |
198 | if (!phy) | ||
199 | return 0; | ||
192 | return -ENOSYS; | 200 | return -ENOSYS; |
193 | } | 201 | } |
194 | 202 | ||
@@ -204,21 +212,29 @@ static inline void phy_pm_runtime_forbid(struct phy *phy) | |||
204 | 212 | ||
205 | static inline int phy_init(struct phy *phy) | 213 | static inline int phy_init(struct phy *phy) |
206 | { | 214 | { |
215 | if (!phy) | ||
216 | return 0; | ||
207 | return -ENOSYS; | 217 | return -ENOSYS; |
208 | } | 218 | } |
209 | 219 | ||
210 | static inline int phy_exit(struct phy *phy) | 220 | static inline int phy_exit(struct phy *phy) |
211 | { | 221 | { |
222 | if (!phy) | ||
223 | return 0; | ||
212 | return -ENOSYS; | 224 | return -ENOSYS; |
213 | } | 225 | } |
214 | 226 | ||
215 | static inline int phy_power_on(struct phy *phy) | 227 | static inline int phy_power_on(struct phy *phy) |
216 | { | 228 | { |
229 | if (!phy) | ||
230 | return 0; | ||
217 | return -ENOSYS; | 231 | return -ENOSYS; |
218 | } | 232 | } |
219 | 233 | ||
220 | static inline int phy_power_off(struct phy *phy) | 234 | static inline int phy_power_off(struct phy *phy) |
221 | { | 235 | { |
236 | if (!phy) | ||
237 | return 0; | ||
222 | return -ENOSYS; | 238 | return -ENOSYS; |
223 | } | 239 | } |
224 | 240 | ||
diff --git a/include/linux/reboot.h b/include/linux/reboot.h index 9e7db9e73cc1..48bf152761c7 100644 --- a/include/linux/reboot.h +++ b/include/linux/reboot.h | |||
@@ -20,13 +20,13 @@ enum reboot_mode { | |||
20 | extern enum reboot_mode reboot_mode; | 20 | extern enum reboot_mode reboot_mode; |
21 | 21 | ||
22 | enum reboot_type { | 22 | enum reboot_type { |
23 | BOOT_TRIPLE = 't', | 23 | BOOT_TRIPLE = 't', |
24 | BOOT_KBD = 'k', | 24 | BOOT_KBD = 'k', |
25 | BOOT_BIOS = 'b', | 25 | BOOT_BIOS = 'b', |
26 | BOOT_ACPI = 'a', | 26 | BOOT_ACPI = 'a', |
27 | BOOT_EFI = 'e', | 27 | BOOT_EFI = 'e', |
28 | BOOT_CF9 = 'p', | 28 | BOOT_CF9_FORCE = 'p', |
29 | BOOT_CF9_COND = 'q', | 29 | BOOT_CF9_SAFE = 'q', |
30 | }; | 30 | }; |
31 | extern enum reboot_type reboot_type; | 31 | extern enum reboot_type reboot_type; |
32 | 32 | ||
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index e530681bea70..1a4a8c157b31 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h | |||
@@ -258,14 +258,14 @@ regulator_get_exclusive(struct device *dev, const char *id) | |||
258 | static inline struct regulator *__must_check | 258 | static inline struct regulator *__must_check |
259 | regulator_get_optional(struct device *dev, const char *id) | 259 | regulator_get_optional(struct device *dev, const char *id) |
260 | { | 260 | { |
261 | return NULL; | 261 | return ERR_PTR(-ENODEV); |
262 | } | 262 | } |
263 | 263 | ||
264 | 264 | ||
265 | static inline struct regulator *__must_check | 265 | static inline struct regulator *__must_check |
266 | devm_regulator_get_optional(struct device *dev, const char *id) | 266 | devm_regulator_get_optional(struct device *dev, const char *id) |
267 | { | 267 | { |
268 | return NULL; | 268 | return ERR_PTR(-ENODEV); |
269 | } | 269 | } |
270 | 270 | ||
271 | static inline void regulator_put(struct regulator *regulator) | 271 | static inline void regulator_put(struct regulator *regulator) |
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/serio.h b/include/linux/serio.h index 36aac733840a..9f779c7a2da4 100644 --- a/include/linux/serio.h +++ b/include/linux/serio.h | |||
@@ -23,6 +23,7 @@ struct serio { | |||
23 | 23 | ||
24 | char name[32]; | 24 | char name[32]; |
25 | char phys[32]; | 25 | char phys[32]; |
26 | char firmware_id[128]; | ||
26 | 27 | ||
27 | bool manual_bind; | 28 | bool manual_bind; |
28 | 29 | ||
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/spi/adi_spi3.h b/include/linux/spi/adi_spi3.h new file mode 100644 index 000000000000..c84123aa1d06 --- /dev/null +++ b/include/linux/spi/adi_spi3.h | |||
@@ -0,0 +1,254 @@ | |||
1 | /* | ||
2 | * Analog Devices SPI3 controller driver | ||
3 | * | ||
4 | * Copyright (c) 2014 Analog Devices Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #ifndef _ADI_SPI3_H_ | ||
17 | #define _ADI_SPI3_H_ | ||
18 | |||
19 | #include <linux/types.h> | ||
20 | |||
21 | /* SPI_CONTROL */ | ||
22 | #define SPI_CTL_EN 0x00000001 /* Enable */ | ||
23 | #define SPI_CTL_MSTR 0x00000002 /* Master/Slave */ | ||
24 | #define SPI_CTL_PSSE 0x00000004 /* controls modf error in master mode */ | ||
25 | #define SPI_CTL_ODM 0x00000008 /* Open Drain Mode */ | ||
26 | #define SPI_CTL_CPHA 0x00000010 /* Clock Phase */ | ||
27 | #define SPI_CTL_CPOL 0x00000020 /* Clock Polarity */ | ||
28 | #define SPI_CTL_ASSEL 0x00000040 /* Slave Select Pin Control */ | ||
29 | #define SPI_CTL_SELST 0x00000080 /* Slave Select Polarity in-between transfers */ | ||
30 | #define SPI_CTL_EMISO 0x00000100 /* Enable MISO */ | ||
31 | #define SPI_CTL_SIZE 0x00000600 /* Word Transfer Size */ | ||
32 | #define SPI_CTL_SIZE08 0x00000000 /* SIZE: 8 bits */ | ||
33 | #define SPI_CTL_SIZE16 0x00000200 /* SIZE: 16 bits */ | ||
34 | #define SPI_CTL_SIZE32 0x00000400 /* SIZE: 32 bits */ | ||
35 | #define SPI_CTL_LSBF 0x00001000 /* LSB First */ | ||
36 | #define SPI_CTL_FCEN 0x00002000 /* Flow-Control Enable */ | ||
37 | #define SPI_CTL_FCCH 0x00004000 /* Flow-Control Channel Selection */ | ||
38 | #define SPI_CTL_FCPL 0x00008000 /* Flow-Control Polarity */ | ||
39 | #define SPI_CTL_FCWM 0x00030000 /* Flow-Control Water-Mark */ | ||
40 | #define SPI_CTL_FIFO0 0x00000000 /* FCWM: TFIFO empty or RFIFO Full */ | ||
41 | #define SPI_CTL_FIFO1 0x00010000 /* FCWM: TFIFO 75% or more empty or RFIFO 75% or more full */ | ||
42 | #define SPI_CTL_FIFO2 0x00020000 /* FCWM: TFIFO 50% or more empty or RFIFO 50% or more full */ | ||
43 | #define SPI_CTL_FMODE 0x00040000 /* Fast-mode Enable */ | ||
44 | #define SPI_CTL_MIOM 0x00300000 /* Multiple I/O Mode */ | ||
45 | #define SPI_CTL_MIO_DIS 0x00000000 /* MIOM: Disable */ | ||
46 | #define SPI_CTL_MIO_DUAL 0x00100000 /* MIOM: Enable DIOM (Dual I/O Mode) */ | ||
47 | #define SPI_CTL_MIO_QUAD 0x00200000 /* MIOM: Enable QUAD (Quad SPI Mode) */ | ||
48 | #define SPI_CTL_SOSI 0x00400000 /* Start on MOSI */ | ||
49 | /* SPI_RX_CONTROL */ | ||
50 | #define SPI_RXCTL_REN 0x00000001 /* Receive Channel Enable */ | ||
51 | #define SPI_RXCTL_RTI 0x00000004 /* Receive Transfer Initiate */ | ||
52 | #define SPI_RXCTL_RWCEN 0x00000008 /* Receive Word Counter Enable */ | ||
53 | #define SPI_RXCTL_RDR 0x00000070 /* Receive Data Request */ | ||
54 | #define SPI_RXCTL_RDR_DIS 0x00000000 /* RDR: Disabled */ | ||
55 | #define SPI_RXCTL_RDR_NE 0x00000010 /* RDR: RFIFO not empty */ | ||
56 | #define SPI_RXCTL_RDR_25 0x00000020 /* RDR: RFIFO 25% full */ | ||
57 | #define SPI_RXCTL_RDR_50 0x00000030 /* RDR: RFIFO 50% full */ | ||
58 | #define SPI_RXCTL_RDR_75 0x00000040 /* RDR: RFIFO 75% full */ | ||
59 | #define SPI_RXCTL_RDR_FULL 0x00000050 /* RDR: RFIFO full */ | ||
60 | #define SPI_RXCTL_RDO 0x00000100 /* Receive Data Over-Run */ | ||
61 | #define SPI_RXCTL_RRWM 0x00003000 /* FIFO Regular Water-Mark */ | ||
62 | #define SPI_RXCTL_RWM_0 0x00000000 /* RRWM: RFIFO Empty */ | ||
63 | #define SPI_RXCTL_RWM_25 0x00001000 /* RRWM: RFIFO 25% full */ | ||
64 | #define SPI_RXCTL_RWM_50 0x00002000 /* RRWM: RFIFO 50% full */ | ||
65 | #define SPI_RXCTL_RWM_75 0x00003000 /* RRWM: RFIFO 75% full */ | ||
66 | #define SPI_RXCTL_RUWM 0x00070000 /* FIFO Urgent Water-Mark */ | ||
67 | #define SPI_RXCTL_UWM_DIS 0x00000000 /* RUWM: Disabled */ | ||
68 | #define SPI_RXCTL_UWM_25 0x00010000 /* RUWM: RFIFO 25% full */ | ||
69 | #define SPI_RXCTL_UWM_50 0x00020000 /* RUWM: RFIFO 50% full */ | ||
70 | #define SPI_RXCTL_UWM_75 0x00030000 /* RUWM: RFIFO 75% full */ | ||
71 | #define SPI_RXCTL_UWM_FULL 0x00040000 /* RUWM: RFIFO full */ | ||
72 | /* SPI_TX_CONTROL */ | ||
73 | #define SPI_TXCTL_TEN 0x00000001 /* Transmit Channel Enable */ | ||
74 | #define SPI_TXCTL_TTI 0x00000004 /* Transmit Transfer Initiate */ | ||
75 | #define SPI_TXCTL_TWCEN 0x00000008 /* Transmit Word Counter Enable */ | ||
76 | #define SPI_TXCTL_TDR 0x00000070 /* Transmit Data Request */ | ||
77 | #define SPI_TXCTL_TDR_DIS 0x00000000 /* TDR: Disabled */ | ||
78 | #define SPI_TXCTL_TDR_NF 0x00000010 /* TDR: TFIFO not full */ | ||
79 | #define SPI_TXCTL_TDR_25 0x00000020 /* TDR: TFIFO 25% empty */ | ||
80 | #define SPI_TXCTL_TDR_50 0x00000030 /* TDR: TFIFO 50% empty */ | ||
81 | #define SPI_TXCTL_TDR_75 0x00000040 /* TDR: TFIFO 75% empty */ | ||
82 | #define SPI_TXCTL_TDR_EMPTY 0x00000050 /* TDR: TFIFO empty */ | ||
83 | #define SPI_TXCTL_TDU 0x00000100 /* Transmit Data Under-Run */ | ||
84 | #define SPI_TXCTL_TRWM 0x00003000 /* FIFO Regular Water-Mark */ | ||
85 | #define SPI_TXCTL_RWM_FULL 0x00000000 /* TRWM: TFIFO full */ | ||
86 | #define SPI_TXCTL_RWM_25 0x00001000 /* TRWM: TFIFO 25% empty */ | ||
87 | #define SPI_TXCTL_RWM_50 0x00002000 /* TRWM: TFIFO 50% empty */ | ||
88 | #define SPI_TXCTL_RWM_75 0x00003000 /* TRWM: TFIFO 75% empty */ | ||
89 | #define SPI_TXCTL_TUWM 0x00070000 /* FIFO Urgent Water-Mark */ | ||
90 | #define SPI_TXCTL_UWM_DIS 0x00000000 /* TUWM: Disabled */ | ||
91 | #define SPI_TXCTL_UWM_25 0x00010000 /* TUWM: TFIFO 25% empty */ | ||
92 | #define SPI_TXCTL_UWM_50 0x00020000 /* TUWM: TFIFO 50% empty */ | ||
93 | #define SPI_TXCTL_UWM_75 0x00030000 /* TUWM: TFIFO 75% empty */ | ||
94 | #define SPI_TXCTL_UWM_EMPTY 0x00040000 /* TUWM: TFIFO empty */ | ||
95 | /* SPI_CLOCK */ | ||
96 | #define SPI_CLK_BAUD 0x0000FFFF /* Baud Rate */ | ||
97 | /* SPI_DELAY */ | ||
98 | #define SPI_DLY_STOP 0x000000FF /* Transfer delay time in multiples of SCK period */ | ||
99 | #define SPI_DLY_LEADX 0x00000100 /* Extended (1 SCK) LEAD Control */ | ||
100 | #define SPI_DLY_LAGX 0x00000200 /* Extended (1 SCK) LAG control */ | ||
101 | /* SPI_SSEL */ | ||
102 | #define SPI_SLVSEL_SSE1 0x00000002 /* SPISSEL1 Enable */ | ||
103 | #define SPI_SLVSEL_SSE2 0x00000004 /* SPISSEL2 Enable */ | ||
104 | #define SPI_SLVSEL_SSE3 0x00000008 /* SPISSEL3 Enable */ | ||
105 | #define SPI_SLVSEL_SSE4 0x00000010 /* SPISSEL4 Enable */ | ||
106 | #define SPI_SLVSEL_SSE5 0x00000020 /* SPISSEL5 Enable */ | ||
107 | #define SPI_SLVSEL_SSE6 0x00000040 /* SPISSEL6 Enable */ | ||
108 | #define SPI_SLVSEL_SSE7 0x00000080 /* SPISSEL7 Enable */ | ||
109 | #define SPI_SLVSEL_SSEL1 0x00000200 /* SPISSEL1 Value */ | ||
110 | #define SPI_SLVSEL_SSEL2 0x00000400 /* SPISSEL2 Value */ | ||
111 | #define SPI_SLVSEL_SSEL3 0x00000800 /* SPISSEL3 Value */ | ||
112 | #define SPI_SLVSEL_SSEL4 0x00001000 /* SPISSEL4 Value */ | ||
113 | #define SPI_SLVSEL_SSEL5 0x00002000 /* SPISSEL5 Value */ | ||
114 | #define SPI_SLVSEL_SSEL6 0x00004000 /* SPISSEL6 Value */ | ||
115 | #define SPI_SLVSEL_SSEL7 0x00008000 /* SPISSEL7 Value */ | ||
116 | /* SPI_RWC */ | ||
117 | #define SPI_RWC_VALUE 0x0000FFFF /* Received Word-Count */ | ||
118 | /* SPI_RWCR */ | ||
119 | #define SPI_RWCR_VALUE 0x0000FFFF /* Received Word-Count Reload */ | ||
120 | /* SPI_TWC */ | ||
121 | #define SPI_TWC_VALUE 0x0000FFFF /* Transmitted Word-Count */ | ||
122 | /* SPI_TWCR */ | ||
123 | #define SPI_TWCR_VALUE 0x0000FFFF /* Transmitted Word-Count Reload */ | ||
124 | /* SPI_IMASK */ | ||
125 | #define SPI_IMSK_RUWM 0x00000002 /* Receive Urgent Water-Mark Interrupt Mask */ | ||
126 | #define SPI_IMSK_TUWM 0x00000004 /* Transmit Urgent Water-Mark Interrupt Mask */ | ||
127 | #define SPI_IMSK_ROM 0x00000010 /* Receive Over-Run Error Interrupt Mask */ | ||
128 | #define SPI_IMSK_TUM 0x00000020 /* Transmit Under-Run Error Interrupt Mask */ | ||
129 | #define SPI_IMSK_TCM 0x00000040 /* Transmit Collision Error Interrupt Mask */ | ||
130 | #define SPI_IMSK_MFM 0x00000080 /* Mode Fault Error Interrupt Mask */ | ||
131 | #define SPI_IMSK_RSM 0x00000100 /* Receive Start Interrupt Mask */ | ||
132 | #define SPI_IMSK_TSM 0x00000200 /* Transmit Start Interrupt Mask */ | ||
133 | #define SPI_IMSK_RFM 0x00000400 /* Receive Finish Interrupt Mask */ | ||
134 | #define SPI_IMSK_TFM 0x00000800 /* Transmit Finish Interrupt Mask */ | ||
135 | /* SPI_IMASKCL */ | ||
136 | #define SPI_IMSK_CLR_RUW 0x00000002 /* Receive Urgent Water-Mark Interrupt Mask */ | ||
137 | #define SPI_IMSK_CLR_TUWM 0x00000004 /* Transmit Urgent Water-Mark Interrupt Mask */ | ||
138 | #define SPI_IMSK_CLR_ROM 0x00000010 /* Receive Over-Run Error Interrupt Mask */ | ||
139 | #define SPI_IMSK_CLR_TUM 0x00000020 /* Transmit Under-Run Error Interrupt Mask */ | ||
140 | #define SPI_IMSK_CLR_TCM 0x00000040 /* Transmit Collision Error Interrupt Mask */ | ||
141 | #define SPI_IMSK_CLR_MFM 0x00000080 /* Mode Fault Error Interrupt Mask */ | ||
142 | #define SPI_IMSK_CLR_RSM 0x00000100 /* Receive Start Interrupt Mask */ | ||
143 | #define SPI_IMSK_CLR_TSM 0x00000200 /* Transmit Start Interrupt Mask */ | ||
144 | #define SPI_IMSK_CLR_RFM 0x00000400 /* Receive Finish Interrupt Mask */ | ||
145 | #define SPI_IMSK_CLR_TFM 0x00000800 /* Transmit Finish Interrupt Mask */ | ||
146 | /* SPI_IMASKST */ | ||
147 | #define SPI_IMSK_SET_RUWM 0x00000002 /* Receive Urgent Water-Mark Interrupt Mask */ | ||
148 | #define SPI_IMSK_SET_TUWM 0x00000004 /* Transmit Urgent Water-Mark Interrupt Mask */ | ||
149 | #define SPI_IMSK_SET_ROM 0x00000010 /* Receive Over-Run Error Interrupt Mask */ | ||
150 | #define SPI_IMSK_SET_TUM 0x00000020 /* Transmit Under-Run Error Interrupt Mask */ | ||
151 | #define SPI_IMSK_SET_TCM 0x00000040 /* Transmit Collision Error Interrupt Mask */ | ||
152 | #define SPI_IMSK_SET_MFM 0x00000080 /* Mode Fault Error Interrupt Mask */ | ||
153 | #define SPI_IMSK_SET_RSM 0x00000100 /* Receive Start Interrupt Mask */ | ||
154 | #define SPI_IMSK_SET_TSM 0x00000200 /* Transmit Start Interrupt Mask */ | ||
155 | #define SPI_IMSK_SET_RFM 0x00000400 /* Receive Finish Interrupt Mask */ | ||
156 | #define SPI_IMSK_SET_TFM 0x00000800 /* Transmit Finish Interrupt Mask */ | ||
157 | /* SPI_STATUS */ | ||
158 | #define SPI_STAT_SPIF 0x00000001 /* SPI Finished */ | ||
159 | #define SPI_STAT_RUWM 0x00000002 /* Receive Urgent Water-Mark Breached */ | ||
160 | #define SPI_STAT_TUWM 0x00000004 /* Transmit Urgent Water-Mark Breached */ | ||
161 | #define SPI_STAT_ROE 0x00000010 /* Receive Over-Run Error Indication */ | ||
162 | #define SPI_STAT_TUE 0x00000020 /* Transmit Under-Run Error Indication */ | ||
163 | #define SPI_STAT_TCE 0x00000040 /* Transmit Collision Error Indication */ | ||
164 | #define SPI_STAT_MODF 0x00000080 /* Mode Fault Error Indication */ | ||
165 | #define SPI_STAT_RS 0x00000100 /* Receive Start Indication */ | ||
166 | #define SPI_STAT_TS 0x00000200 /* Transmit Start Indication */ | ||
167 | #define SPI_STAT_RF 0x00000400 /* Receive Finish Indication */ | ||
168 | #define SPI_STAT_TF 0x00000800 /* Transmit Finish Indication */ | ||
169 | #define SPI_STAT_RFS 0x00007000 /* SPI_RFIFO status */ | ||
170 | #define SPI_STAT_RFIFO_EMPTY 0x00000000 /* RFS: RFIFO Empty */ | ||
171 | #define SPI_STAT_RFIFO_25 0x00001000 /* RFS: RFIFO 25% Full */ | ||
172 | #define SPI_STAT_RFIFO_50 0x00002000 /* RFS: RFIFO 50% Full */ | ||
173 | #define SPI_STAT_RFIFO_75 0x00003000 /* RFS: RFIFO 75% Full */ | ||
174 | #define SPI_STAT_RFIFO_FULL 0x00004000 /* RFS: RFIFO Full */ | ||
175 | #define SPI_STAT_TFS 0x00070000 /* SPI_TFIFO status */ | ||
176 | #define SPI_STAT_TFIFO_FULL 0x00000000 /* TFS: TFIFO full */ | ||
177 | #define SPI_STAT_TFIFO_25 0x00010000 /* TFS: TFIFO 25% empty */ | ||
178 | #define SPI_STAT_TFIFO_50 0x00020000 /* TFS: TFIFO 50% empty */ | ||
179 | #define SPI_STAT_TFIFO_75 0x00030000 /* TFS: TFIFO 75% empty */ | ||
180 | #define SPI_STAT_TFIFO_EMPTY 0x00040000 /* TFS: TFIFO empty */ | ||
181 | #define SPI_STAT_FCS 0x00100000 /* Flow-Control Stall Indication */ | ||
182 | #define SPI_STAT_RFE 0x00400000 /* SPI_RFIFO Empty */ | ||
183 | #define SPI_STAT_TFF 0x00800000 /* SPI_TFIFO Full */ | ||
184 | /* SPI_ILAT */ | ||
185 | #define SPI_ILAT_RUWMI 0x00000002 /* Receive Urgent Water Mark Interrupt */ | ||
186 | #define SPI_ILAT_TUWMI 0x00000004 /* Transmit Urgent Water Mark Interrupt */ | ||
187 | #define SPI_ILAT_ROI 0x00000010 /* Receive Over-Run Error Indication */ | ||
188 | #define SPI_ILAT_TUI 0x00000020 /* Transmit Under-Run Error Indication */ | ||
189 | #define SPI_ILAT_TCI 0x00000040 /* Transmit Collision Error Indication */ | ||
190 | #define SPI_ILAT_MFI 0x00000080 /* Mode Fault Error Indication */ | ||
191 | #define SPI_ILAT_RSI 0x00000100 /* Receive Start Indication */ | ||
192 | #define SPI_ILAT_TSI 0x00000200 /* Transmit Start Indication */ | ||
193 | #define SPI_ILAT_RFI 0x00000400 /* Receive Finish Indication */ | ||
194 | #define SPI_ILAT_TFI 0x00000800 /* Transmit Finish Indication */ | ||
195 | /* SPI_ILATCL */ | ||
196 | #define SPI_ILAT_CLR_RUWMI 0x00000002 /* Receive Urgent Water Mark Interrupt */ | ||
197 | #define SPI_ILAT_CLR_TUWMI 0x00000004 /* Transmit Urgent Water Mark Interrupt */ | ||
198 | #define SPI_ILAT_CLR_ROI 0x00000010 /* Receive Over-Run Error Indication */ | ||
199 | #define SPI_ILAT_CLR_TUI 0x00000020 /* Transmit Under-Run Error Indication */ | ||
200 | #define SPI_ILAT_CLR_TCI 0x00000040 /* Transmit Collision Error Indication */ | ||
201 | #define SPI_ILAT_CLR_MFI 0x00000080 /* Mode Fault Error Indication */ | ||
202 | #define SPI_ILAT_CLR_RSI 0x00000100 /* Receive Start Indication */ | ||
203 | #define SPI_ILAT_CLR_TSI 0x00000200 /* Transmit Start Indication */ | ||
204 | #define SPI_ILAT_CLR_RFI 0x00000400 /* Receive Finish Indication */ | ||
205 | #define SPI_ILAT_CLR_TFI 0x00000800 /* Transmit Finish Indication */ | ||
206 | |||
207 | /* | ||
208 | * adi spi3 registers layout | ||
209 | */ | ||
210 | struct adi_spi_regs { | ||
211 | u32 revid; | ||
212 | u32 control; | ||
213 | u32 rx_control; | ||
214 | u32 tx_control; | ||
215 | u32 clock; | ||
216 | u32 delay; | ||
217 | u32 ssel; | ||
218 | u32 rwc; | ||
219 | u32 rwcr; | ||
220 | u32 twc; | ||
221 | u32 twcr; | ||
222 | u32 reserved0; | ||
223 | u32 emask; | ||
224 | u32 emaskcl; | ||
225 | u32 emaskst; | ||
226 | u32 reserved1; | ||
227 | u32 status; | ||
228 | u32 elat; | ||
229 | u32 elatcl; | ||
230 | u32 reserved2; | ||
231 | u32 rfifo; | ||
232 | u32 reserved3; | ||
233 | u32 tfifo; | ||
234 | }; | ||
235 | |||
236 | #define MAX_CTRL_CS 8 /* cs in spi controller */ | ||
237 | |||
238 | /* device.platform_data for SSP controller devices */ | ||
239 | struct adi_spi3_master { | ||
240 | u16 num_chipselect; | ||
241 | u16 pin_req[7]; | ||
242 | }; | ||
243 | |||
244 | /* spi_board_info.controller_data for SPI slave devices, | ||
245 | * copied to spi_device.platform_data ... mostly for dma tuning | ||
246 | */ | ||
247 | struct adi_spi3_chip { | ||
248 | u32 control; | ||
249 | u16 cs_chg_udelay; /* Some devices require 16-bit delays */ | ||
250 | u32 tx_dummy_val; /* tx value for rx only transfer */ | ||
251 | bool enable_dma; | ||
252 | }; | ||
253 | |||
254 | #endif /* _ADI_SPI3_H_ */ | ||
diff --git a/include/linux/spi/rspi.h b/include/linux/spi/rspi.h index a25bd6f65e7f..e546b2ceb623 100644 --- a/include/linux/spi/rspi.h +++ b/include/linux/spi/rspi.h | |||
@@ -25,8 +25,6 @@ struct rspi_plat_data { | |||
25 | unsigned int dma_tx_id; | 25 | unsigned int dma_tx_id; |
26 | unsigned int dma_rx_id; | 26 | unsigned int dma_rx_id; |
27 | 27 | ||
28 | unsigned dma_width_16bit:1; /* DMAC read/write width = 16-bit */ | ||
29 | |||
30 | u16 num_chipselect; | 28 | u16 num_chipselect; |
31 | }; | 29 | }; |
32 | 30 | ||
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index 084354b0e814..5ffaa3443712 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h | |||
@@ -179,9 +179,6 @@ struct sysfs_ops { | |||
179 | 179 | ||
180 | #ifdef CONFIG_SYSFS | 180 | #ifdef CONFIG_SYSFS |
181 | 181 | ||
182 | int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *), | ||
183 | void *data, struct module *owner); | ||
184 | |||
185 | int __must_check sysfs_create_dir_ns(struct kobject *kobj, const void *ns); | 182 | int __must_check sysfs_create_dir_ns(struct kobject *kobj, const void *ns); |
186 | void sysfs_remove_dir(struct kobject *kobj); | 183 | void sysfs_remove_dir(struct kobject *kobj); |
187 | int __must_check sysfs_rename_dir_ns(struct kobject *kobj, const char *new_name, | 184 | int __must_check sysfs_rename_dir_ns(struct kobject *kobj, const char *new_name, |
@@ -255,12 +252,6 @@ static inline void sysfs_enable_ns(struct kernfs_node *kn) | |||
255 | 252 | ||
256 | #else /* CONFIG_SYSFS */ | 253 | #else /* CONFIG_SYSFS */ |
257 | 254 | ||
258 | static inline int sysfs_schedule_callback(struct kobject *kobj, | ||
259 | void (*func)(void *), void *data, struct module *owner) | ||
260 | { | ||
261 | return -ENOSYS; | ||
262 | } | ||
263 | |||
264 | static inline int sysfs_create_dir_ns(struct kobject *kobj, const void *ns) | 255 | static inline int sysfs_create_dir_ns(struct kobject *kobj, const void *ns) |
265 | { | 256 | { |
266 | return 0; | 257 | return 0; |
diff --git a/include/linux/wait.h b/include/linux/wait.h index e7d9d9ed14f5..bd68819f0815 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h | |||
@@ -191,11 +191,23 @@ wait_queue_head_t *bit_waitqueue(void *, int); | |||
191 | (!__builtin_constant_p(state) || \ | 191 | (!__builtin_constant_p(state) || \ |
192 | state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ | 192 | state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ |
193 | 193 | ||
194 | /* | ||
195 | * The below macro ___wait_event() has an explicit shadow of the __ret | ||
196 | * variable when used from the wait_event_*() macros. | ||
197 | * | ||
198 | * This is so that both can use the ___wait_cond_timeout() construct | ||
199 | * to wrap the condition. | ||
200 | * | ||
201 | * The type inconsistency of the wait_event_*() __ret variable is also | ||
202 | * on purpose; we use long where we can return timeout values and int | ||
203 | * otherwise. | ||
204 | */ | ||
205 | |||
194 | #define ___wait_event(wq, condition, state, exclusive, ret, cmd) \ | 206 | #define ___wait_event(wq, condition, state, exclusive, ret, cmd) \ |
195 | ({ \ | 207 | ({ \ |
196 | __label__ __out; \ | 208 | __label__ __out; \ |
197 | wait_queue_t __wait; \ | 209 | wait_queue_t __wait; \ |
198 | long __ret = ret; \ | 210 | long __ret = ret; /* explicit shadow */ \ |
199 | \ | 211 | \ |
200 | INIT_LIST_HEAD(&__wait.task_list); \ | 212 | INIT_LIST_HEAD(&__wait.task_list); \ |
201 | if (exclusive) \ | 213 | if (exclusive) \ |
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/dst.h b/include/net/dst.h index 46ed958e0c6e..71c60f42be48 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
@@ -45,7 +45,7 @@ struct dst_entry { | |||
45 | void *__pad1; | 45 | void *__pad1; |
46 | #endif | 46 | #endif |
47 | int (*input)(struct sk_buff *); | 47 | int (*input)(struct sk_buff *); |
48 | int (*output)(struct sk_buff *); | 48 | int (*output)(struct sock *sk, struct sk_buff *skb); |
49 | 49 | ||
50 | unsigned short flags; | 50 | unsigned short flags; |
51 | #define DST_HOST 0x0001 | 51 | #define DST_HOST 0x0001 |
@@ -367,7 +367,11 @@ static inline struct dst_entry *skb_dst_pop(struct sk_buff *skb) | |||
367 | return child; | 367 | return child; |
368 | } | 368 | } |
369 | 369 | ||
370 | int dst_discard(struct sk_buff *skb); | 370 | int dst_discard_sk(struct sock *sk, struct sk_buff *skb); |
371 | static inline int dst_discard(struct sk_buff *skb) | ||
372 | { | ||
373 | return dst_discard_sk(skb->sk, skb); | ||
374 | } | ||
371 | void *dst_alloc(struct dst_ops *ops, struct net_device *dev, int initial_ref, | 375 | void *dst_alloc(struct dst_ops *ops, struct net_device *dev, int initial_ref, |
372 | int initial_obsolete, unsigned short flags); | 376 | int initial_obsolete, unsigned short flags); |
373 | void __dst_free(struct dst_entry *dst); | 377 | void __dst_free(struct dst_entry *dst); |
@@ -449,9 +453,13 @@ static inline void dst_set_expires(struct dst_entry *dst, int timeout) | |||
449 | } | 453 | } |
450 | 454 | ||
451 | /* Output packet to network from transport. */ | 455 | /* Output packet to network from transport. */ |
456 | static inline int dst_output_sk(struct sock *sk, struct sk_buff *skb) | ||
457 | { | ||
458 | return skb_dst(skb)->output(sk, skb); | ||
459 | } | ||
452 | static inline int dst_output(struct sk_buff *skb) | 460 | static inline int dst_output(struct sk_buff *skb) |
453 | { | 461 | { |
454 | return skb_dst(skb)->output(skb); | 462 | return dst_output_sk(skb->sk, skb); |
455 | } | 463 | } |
456 | 464 | ||
457 | /* Input packet from network to transport. */ | 465 | /* Input packet from network to transport. */ |
diff --git a/include/net/flow.h b/include/net/flow.h index 64fd24836650..8109a159d1b3 100644 --- a/include/net/flow.h +++ b/include/net/flow.h | |||
@@ -11,6 +11,14 @@ | |||
11 | #include <linux/in6.h> | 11 | #include <linux/in6.h> |
12 | #include <linux/atomic.h> | 12 | #include <linux/atomic.h> |
13 | 13 | ||
14 | /* | ||
15 | * ifindex generation is per-net namespace, and loopback is | ||
16 | * always the 1st device in ns (see net_dev_init), thus any | ||
17 | * loopback device should get ifindex 1 | ||
18 | */ | ||
19 | |||
20 | #define LOOPBACK_IFINDEX 1 | ||
21 | |||
14 | struct flowi_common { | 22 | struct flowi_common { |
15 | int flowic_oif; | 23 | int flowic_oif; |
16 | int flowic_iif; | 24 | int flowic_iif; |
@@ -80,7 +88,7 @@ static inline void flowi4_init_output(struct flowi4 *fl4, int oif, | |||
80 | __be16 dport, __be16 sport) | 88 | __be16 dport, __be16 sport) |
81 | { | 89 | { |
82 | fl4->flowi4_oif = oif; | 90 | fl4->flowi4_oif = oif; |
83 | fl4->flowi4_iif = 0; | 91 | fl4->flowi4_iif = LOOPBACK_IFINDEX; |
84 | fl4->flowi4_mark = mark; | 92 | fl4->flowi4_mark = mark; |
85 | fl4->flowi4_tos = tos; | 93 | fl4->flowi4_tos = tos; |
86 | fl4->flowi4_scope = scope; | 94 | fl4->flowi4_scope = scope; |
diff --git a/include/net/inet6_connection_sock.h b/include/net/inet6_connection_sock.h index f981ba7adeed..74af137304be 100644 --- a/include/net/inet6_connection_sock.h +++ b/include/net/inet6_connection_sock.h | |||
@@ -40,7 +40,7 @@ void inet6_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req, | |||
40 | 40 | ||
41 | void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr); | 41 | void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr); |
42 | 42 | ||
43 | int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl); | 43 | int inet6_csk_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl); |
44 | 44 | ||
45 | struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu); | 45 | struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu); |
46 | #endif /* _INET6_CONNECTION_SOCK_H */ | 46 | #endif /* _INET6_CONNECTION_SOCK_H */ |
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index c55aeed41ace..7a4313887568 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h | |||
@@ -36,7 +36,7 @@ struct tcp_congestion_ops; | |||
36 | * (i.e. things that depend on the address family) | 36 | * (i.e. things that depend on the address family) |
37 | */ | 37 | */ |
38 | struct inet_connection_sock_af_ops { | 38 | struct inet_connection_sock_af_ops { |
39 | int (*queue_xmit)(struct sk_buff *skb, struct flowi *fl); | 39 | int (*queue_xmit)(struct sock *sk, struct sk_buff *skb, struct flowi *fl); |
40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); | 40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); |
41 | int (*rebuild_header)(struct sock *sk); | 41 | int (*rebuild_header)(struct sock *sk); |
42 | void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb); | 42 | void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb); |
diff --git a/include/net/ip.h b/include/net/ip.h index 25064c28e059..3ec2b0fb9d83 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
@@ -104,14 +104,19 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, | |||
104 | struct net_device *orig_dev); | 104 | struct net_device *orig_dev); |
105 | int ip_local_deliver(struct sk_buff *skb); | 105 | int ip_local_deliver(struct sk_buff *skb); |
106 | int ip_mr_input(struct sk_buff *skb); | 106 | int ip_mr_input(struct sk_buff *skb); |
107 | int ip_output(struct sk_buff *skb); | 107 | int ip_output(struct sock *sk, struct sk_buff *skb); |
108 | int ip_mc_output(struct sk_buff *skb); | 108 | int ip_mc_output(struct sock *sk, struct sk_buff *skb); |
109 | int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)); | 109 | int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)); |
110 | int ip_do_nat(struct sk_buff *skb); | 110 | int ip_do_nat(struct sk_buff *skb); |
111 | void ip_send_check(struct iphdr *ip); | 111 | void ip_send_check(struct iphdr *ip); |
112 | int __ip_local_out(struct sk_buff *skb); | 112 | int __ip_local_out(struct sk_buff *skb); |
113 | int ip_local_out(struct sk_buff *skb); | 113 | int ip_local_out_sk(struct sock *sk, struct sk_buff *skb); |
114 | int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl); | 114 | static inline int ip_local_out(struct sk_buff *skb) |
115 | { | ||
116 | return ip_local_out_sk(skb->sk, skb); | ||
117 | } | ||
118 | |||
119 | int ip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl); | ||
115 | void ip_init(void); | 120 | void ip_init(void); |
116 | int ip_append_data(struct sock *sk, struct flowi4 *fl4, | 121 | int ip_append_data(struct sock *sk, struct flowi4 *fl4, |
117 | int getfrag(void *from, char *to, int offset, int len, | 122 | int getfrag(void *from, char *to, int offset, int len, |
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 3c3bb184eb8f..216cecce65e9 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h | |||
@@ -32,6 +32,11 @@ struct route_info { | |||
32 | #define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010 | 32 | #define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010 |
33 | #define RT6_LOOKUP_F_SRCPREF_COA 0x00000020 | 33 | #define RT6_LOOKUP_F_SRCPREF_COA 0x00000020 |
34 | 34 | ||
35 | /* We do not (yet ?) support IPv6 jumbograms (RFC 2675) | ||
36 | * Unlike IPv4, hdr->seg_len doesn't include the IPv6 header | ||
37 | */ | ||
38 | #define IP6_MAX_MTU (0xFFFF + sizeof(struct ipv6hdr)) | ||
39 | |||
35 | /* | 40 | /* |
36 | * rt6_srcprefs2flags() and rt6_flags2srcprefs() translate | 41 | * rt6_srcprefs2flags() and rt6_flags2srcprefs() translate |
37 | * between IPV6_ADDR_PREFERENCES socket option values | 42 | * between IPV6_ADDR_PREFERENCES socket option values |
@@ -122,6 +127,7 @@ int rt6_dump_route(struct rt6_info *rt, void *p_arg); | |||
122 | void rt6_ifdown(struct net *net, struct net_device *dev); | 127 | void rt6_ifdown(struct net *net, struct net_device *dev); |
123 | void rt6_mtu_change(struct net_device *dev, unsigned int mtu); | 128 | void rt6_mtu_change(struct net_device *dev, unsigned int mtu); |
124 | 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); | ||
125 | 131 | ||
126 | 132 | ||
127 | /* | 133 | /* |
diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index e77c10405d51..a4daf9eb8562 100644 --- a/include/net/ip_tunnels.h +++ b/include/net/ip_tunnels.h | |||
@@ -153,7 +153,7 @@ static inline u8 ip_tunnel_ecn_encap(u8 tos, const struct iphdr *iph, | |||
153 | } | 153 | } |
154 | 154 | ||
155 | int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto); | 155 | int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto); |
156 | int iptunnel_xmit(struct rtable *rt, struct sk_buff *skb, | 156 | int iptunnel_xmit(struct sock *sk, struct rtable *rt, struct sk_buff *skb, |
157 | __be32 src, __be32 dst, __u8 proto, | 157 | __be32 src, __be32 dst, __u8 proto, |
158 | __u8 tos, __u8 ttl, __be16 df, bool xnet); | 158 | __u8 tos, __u8 ttl, __be16 df, bool xnet); |
159 | 159 | ||
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 4f541f11ce63..d640925bc454 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h | |||
@@ -731,7 +731,7 @@ struct dst_entry *ip6_blackhole_route(struct net *net, | |||
731 | * skb processing functions | 731 | * skb processing functions |
732 | */ | 732 | */ |
733 | 733 | ||
734 | int ip6_output(struct sk_buff *skb); | 734 | int ip6_output(struct sock *sk, struct sk_buff *skb); |
735 | int ip6_forward(struct sk_buff *skb); | 735 | int ip6_forward(struct sk_buff *skb); |
736 | int ip6_input(struct sk_buff *skb); | 736 | int ip6_input(struct sk_buff *skb); |
737 | int ip6_mc_input(struct sk_buff *skb); | 737 | int ip6_mc_input(struct sk_buff *skb); |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 79387f73f875..5f9eb260990f 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/list.h> | 9 | #include <linux/list.h> |
10 | #include <linux/sysctl.h> | 10 | #include <linux/sysctl.h> |
11 | 11 | ||
12 | #include <net/flow.h> | ||
12 | #include <net/netns/core.h> | 13 | #include <net/netns/core.h> |
13 | #include <net/netns/mib.h> | 14 | #include <net/netns/mib.h> |
14 | #include <net/netns/unix.h> | 15 | #include <net/netns/unix.h> |
@@ -131,14 +132,6 @@ struct net { | |||
131 | atomic_t fnhe_genid; | 132 | atomic_t fnhe_genid; |
132 | }; | 133 | }; |
133 | 134 | ||
134 | /* | ||
135 | * ifindex generation is per-net namespace, and loopback is | ||
136 | * always the 1st device in ns (see net_dev_init), thus any | ||
137 | * loopback device should get ifindex 1 | ||
138 | */ | ||
139 | |||
140 | #define LOOPBACK_IFINDEX 1 | ||
141 | |||
142 | #include <linux/seq_file_net.h> | 135 | #include <linux/seq_file_net.h> |
143 | 136 | ||
144 | /* Init's network namespace */ | 137 | /* Init's network namespace */ |
diff --git a/include/net/netfilter/nf_tables_core.h b/include/net/netfilter/nf_tables_core.h index cf2b7ae2b9d8..a75fc8e27cd6 100644 --- a/include/net/netfilter/nf_tables_core.h +++ b/include/net/netfilter/nf_tables_core.h | |||
@@ -13,6 +13,16 @@ struct nft_cmp_fast_expr { | |||
13 | u8 len; | 13 | u8 len; |
14 | }; | 14 | }; |
15 | 15 | ||
16 | /* Calculate the mask for the nft_cmp_fast expression. On big endian the | ||
17 | * mask needs to include the *upper* bytes when interpreting that data as | ||
18 | * something smaller than the full u32, therefore a cpu_to_le32 is done. | ||
19 | */ | ||
20 | static inline u32 nft_cmp_fast_mask(unsigned int len) | ||
21 | { | ||
22 | return cpu_to_le32(~0U >> (FIELD_SIZEOF(struct nft_cmp_fast_expr, | ||
23 | data) * BITS_PER_BYTE - len)); | ||
24 | } | ||
25 | |||
16 | extern const struct nft_expr_ops nft_cmp_fast_ops; | 26 | extern const struct nft_expr_ops nft_cmp_fast_ops; |
17 | 27 | ||
18 | int nft_cmp_module_init(void); | 28 | int nft_cmp_module_init(void); |
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/sctp/structs.h b/include/net/sctp/structs.h index 6ee76c804893..0dfcc92600e8 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -1241,6 +1241,7 @@ struct sctp_endpoint { | |||
1241 | /* SCTP-AUTH: endpoint shared keys */ | 1241 | /* SCTP-AUTH: endpoint shared keys */ |
1242 | struct list_head endpoint_shared_keys; | 1242 | struct list_head endpoint_shared_keys; |
1243 | __u16 active_key_id; | 1243 | __u16 active_key_id; |
1244 | __u8 auth_enable; | ||
1244 | }; | 1245 | }; |
1245 | 1246 | ||
1246 | /* Recover the outter endpoint structure. */ | 1247 | /* Recover the outter endpoint structure. */ |
@@ -1269,7 +1270,8 @@ struct sctp_endpoint *sctp_endpoint_is_match(struct sctp_endpoint *, | |||
1269 | int sctp_has_association(struct net *net, const union sctp_addr *laddr, | 1270 | int sctp_has_association(struct net *net, const union sctp_addr *laddr, |
1270 | const union sctp_addr *paddr); | 1271 | const union sctp_addr *paddr); |
1271 | 1272 | ||
1272 | int sctp_verify_init(struct net *net, const struct sctp_association *asoc, | 1273 | int sctp_verify_init(struct net *net, const struct sctp_endpoint *ep, |
1274 | const struct sctp_association *asoc, | ||
1273 | sctp_cid_t, sctp_init_chunk_t *peer_init, | 1275 | sctp_cid_t, sctp_init_chunk_t *peer_init, |
1274 | struct sctp_chunk *chunk, struct sctp_chunk **err_chunk); | 1276 | struct sctp_chunk *chunk, struct sctp_chunk **err_chunk); |
1275 | int sctp_process_init(struct sctp_association *, struct sctp_chunk *chunk, | 1277 | int sctp_process_init(struct sctp_association *, struct sctp_chunk *chunk, |
@@ -1653,6 +1655,17 @@ struct sctp_association { | |||
1653 | /* This is the last advertised value of rwnd over a SACK chunk. */ | 1655 | /* This is the last advertised value of rwnd over a SACK chunk. */ |
1654 | __u32 a_rwnd; | 1656 | __u32 a_rwnd; |
1655 | 1657 | ||
1658 | /* Number of bytes by which the rwnd has slopped. The rwnd is allowed | ||
1659 | * to slop over a maximum of the association's frag_point. | ||
1660 | */ | ||
1661 | __u32 rwnd_over; | ||
1662 | |||
1663 | /* Keeps treack of rwnd pressure. This happens when we have | ||
1664 | * a window, but not recevie buffer (i.e small packets). This one | ||
1665 | * is releases slowly (1 PMTU at a time ). | ||
1666 | */ | ||
1667 | __u32 rwnd_press; | ||
1668 | |||
1656 | /* This is the sndbuf size in use for the association. | 1669 | /* This is the sndbuf size in use for the association. |
1657 | * This corresponds to the sndbuf size for the association, | 1670 | * This corresponds to the sndbuf size for the association, |
1658 | * as specified in the sk->sndbuf. | 1671 | * as specified in the sk->sndbuf. |
@@ -1881,7 +1894,8 @@ void sctp_assoc_update(struct sctp_association *old, | |||
1881 | __u32 sctp_association_get_next_tsn(struct sctp_association *); | 1894 | __u32 sctp_association_get_next_tsn(struct sctp_association *); |
1882 | 1895 | ||
1883 | void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *); | 1896 | void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *); |
1884 | void sctp_assoc_rwnd_update(struct sctp_association *, bool); | 1897 | void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned int); |
1898 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned int); | ||
1885 | void sctp_assoc_set_primary(struct sctp_association *, | 1899 | void sctp_assoc_set_primary(struct sctp_association *, |
1886 | struct sctp_transport *); | 1900 | struct sctp_transport *); |
1887 | void sctp_assoc_del_nonprimary_peers(struct sctp_association *, | 1901 | void sctp_assoc_del_nonprimary_peers(struct sctp_association *, |
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/net/xfrm.h b/include/net/xfrm.h index 32682ae47b3f..116e9c7e19cb 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -333,7 +333,7 @@ struct xfrm_state_afinfo { | |||
333 | const xfrm_address_t *saddr); | 333 | const xfrm_address_t *saddr); |
334 | int (*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n); | 334 | int (*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n); |
335 | int (*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n); | 335 | int (*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n); |
336 | int (*output)(struct sk_buff *skb); | 336 | int (*output)(struct sock *sk, struct sk_buff *skb); |
337 | int (*output_finish)(struct sk_buff *skb); | 337 | int (*output_finish)(struct sk_buff *skb); |
338 | int (*extract_input)(struct xfrm_state *x, | 338 | int (*extract_input)(struct xfrm_state *x, |
339 | struct sk_buff *skb); | 339 | struct sk_buff *skb); |
@@ -1540,7 +1540,7 @@ static inline int xfrm4_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi) | |||
1540 | 1540 | ||
1541 | int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb); | 1541 | int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb); |
1542 | int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb); | 1542 | int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb); |
1543 | int xfrm4_output(struct sk_buff *skb); | 1543 | int xfrm4_output(struct sock *sk, struct sk_buff *skb); |
1544 | int xfrm4_output_finish(struct sk_buff *skb); | 1544 | int xfrm4_output_finish(struct sk_buff *skb); |
1545 | int xfrm4_rcv_cb(struct sk_buff *skb, u8 protocol, int err); | 1545 | int xfrm4_rcv_cb(struct sk_buff *skb, u8 protocol, int err); |
1546 | int xfrm4_protocol_register(struct xfrm4_protocol *handler, unsigned char protocol); | 1546 | int xfrm4_protocol_register(struct xfrm4_protocol *handler, unsigned char protocol); |
@@ -1565,7 +1565,7 @@ __be32 xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr); | |||
1565 | __be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr); | 1565 | __be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr); |
1566 | int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb); | 1566 | int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb); |
1567 | int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb); | 1567 | int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb); |
1568 | int xfrm6_output(struct sk_buff *skb); | 1568 | int xfrm6_output(struct sock *sk, struct sk_buff *skb); |
1569 | int xfrm6_output_finish(struct sk_buff *skb); | 1569 | int xfrm6_output_finish(struct sk_buff *skb); |
1570 | int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb, | 1570 | int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb, |
1571 | u8 **prevhdr); | 1571 | u8 **prevhdr); |
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h index 010ea89eeb0e..6a1a0245474f 100644 --- a/include/trace/events/ext4.h +++ b/include/trace/events/ext4.h | |||
@@ -16,15 +16,6 @@ struct mpage_da_data; | |||
16 | struct ext4_map_blocks; | 16 | struct ext4_map_blocks; |
17 | struct extent_status; | 17 | struct extent_status; |
18 | 18 | ||
19 | /* shim until we merge in the xfs_collapse_range branch */ | ||
20 | #ifndef FALLOC_FL_COLLAPSE_RANGE | ||
21 | #define FALLOC_FL_COLLAPSE_RANGE 0x08 | ||
22 | #endif | ||
23 | |||
24 | #ifndef FALLOC_FL_ZERO_RANGE | ||
25 | #define FALLOC_FL_ZERO_RANGE 0x10 | ||
26 | #endif | ||
27 | |||
28 | #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) | 19 | #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) |
29 | 20 | ||
30 | #define show_mballoc_flags(flags) __print_flags(flags, "|", \ | 21 | #define show_mballoc_flags(flags) __print_flags(flags, "|", \ |
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/fcntl.h b/include/uapi/asm-generic/fcntl.h index a9b13f8b3595..7543b3e51331 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h | |||
@@ -133,20 +133,20 @@ | |||
133 | #endif | 133 | #endif |
134 | 134 | ||
135 | /* | 135 | /* |
136 | * fd "private" POSIX locks. | 136 | * Open File Description Locks |
137 | * | 137 | * |
138 | * Usually POSIX locks held by a process are released on *any* close and are | 138 | * Usually record locks held by a process are released on *any* close and are |
139 | * not inherited across a fork(). | 139 | * not inherited across a fork(). |
140 | * | 140 | * |
141 | * These cmd values will set locks that conflict with normal POSIX locks, but | 141 | * These cmd values will set locks that conflict with process-associated |
142 | * are "owned" by the opened file, not the process. This means that they are | 142 | * record locks, but are "owned" by the open file description, not the |
143 | * inherited across fork() like BSD (flock) locks, and they are only released | 143 | * process. This means that they are inherited across fork() like BSD (flock) |
144 | * automatically when the last reference to the the open file against which | 144 | * locks, and they are only released automatically when the last reference to |
145 | * they were acquired is put. | 145 | * the the open file against which they were acquired is put. |
146 | */ | 146 | */ |
147 | #define F_GETLKP 36 | 147 | #define F_OFD_GETLK 36 |
148 | #define F_SETLKP 37 | 148 | #define F_OFD_SETLK 37 |
149 | #define F_SETLKPW 38 | 149 | #define F_OFD_SETLKW 38 |
150 | 150 | ||
151 | #define F_OWNER_TID 0 | 151 | #define F_OWNER_TID 0 |
152 | #define F_OWNER_PID 1 | 152 | #define F_OWNER_PID 1 |
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/drm/tegra_drm.h b/include/uapi/drm/tegra_drm.h index b042b48495d9..b75482112428 100644 --- a/include/uapi/drm/tegra_drm.h +++ b/include/uapi/drm/tegra_drm.h | |||
@@ -120,7 +120,6 @@ struct drm_tegra_submit { | |||
120 | __u32 num_waitchks; | 120 | __u32 num_waitchks; |
121 | __u32 waitchk_mask; | 121 | __u32 waitchk_mask; |
122 | __u32 timeout; | 122 | __u32 timeout; |
123 | __u32 pad; | ||
124 | __u64 syncpts; | 123 | __u64 syncpts; |
125 | __u64 cmdbufs; | 124 | __u64 cmdbufs; |
126 | __u64 relocs; | 125 | __u64 relocs; |
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/hyperv.h b/include/uapi/linux/hyperv.h index 9beb7c991638..78e4a86030dd 100644 --- a/include/uapi/linux/hyperv.h +++ b/include/uapi/linux/hyperv.h | |||
@@ -305,6 +305,7 @@ enum hv_kvp_exchg_pool { | |||
305 | #define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F | 305 | #define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F |
306 | #define HV_INVALIDARG 0x80070057 | 306 | #define HV_INVALIDARG 0x80070057 |
307 | #define HV_GUID_NOTFOUND 0x80041002 | 307 | #define HV_GUID_NOTFOUND 0x80041002 |
308 | #define HV_ERROR_ALREADY_EXISTS 0x80070050 | ||
308 | 309 | ||
309 | #define ADDR_FAMILY_NONE 0x00 | 310 | #define ADDR_FAMILY_NONE 0x00 |
310 | #define ADDR_FAMILY_IPV4 0x01 | 311 | #define ADDR_FAMILY_IPV4 0x01 |
diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h index bd24470d24a2..f4849525519c 100644 --- a/include/uapi/linux/input.h +++ b/include/uapi/linux/input.h | |||
@@ -164,6 +164,7 @@ struct input_keymap_entry { | |||
164 | #define INPUT_PROP_DIRECT 0x01 /* direct input devices */ | 164 | #define INPUT_PROP_DIRECT 0x01 /* direct input devices */ |
165 | #define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ | 165 | #define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ |
166 | #define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ | 166 | #define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ |
167 | #define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ | ||
167 | 168 | ||
168 | #define INPUT_PROP_MAX 0x1f | 169 | #define INPUT_PROP_MAX 0x1f |
169 | #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) | 170 | #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) |
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, |