diff options
Diffstat (limited to 'include')
51 files changed, 237 insertions, 159 deletions
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index f849be28e082..79287629c888 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
@@ -105,6 +105,7 @@ enum acpi_bus_device_type { | |||
105 | ACPI_BUS_TYPE_THERMAL, | 105 | ACPI_BUS_TYPE_THERMAL, |
106 | ACPI_BUS_TYPE_POWER_BUTTON, | 106 | ACPI_BUS_TYPE_POWER_BUTTON, |
107 | ACPI_BUS_TYPE_SLEEP_BUTTON, | 107 | ACPI_BUS_TYPE_SLEEP_BUTTON, |
108 | ACPI_BUS_TYPE_ECDT_EC, | ||
108 | ACPI_BUS_DEVICE_TYPE_COUNT | 109 | ACPI_BUS_DEVICE_TYPE_COUNT |
109 | }; | 110 | }; |
110 | 111 | ||
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h index 29c691265b49..14499757338f 100644 --- a/include/acpi/acpi_drivers.h +++ b/include/acpi/acpi_drivers.h | |||
@@ -58,6 +58,7 @@ | |||
58 | #define ACPI_VIDEO_HID "LNXVIDEO" | 58 | #define ACPI_VIDEO_HID "LNXVIDEO" |
59 | #define ACPI_BAY_HID "LNXIOBAY" | 59 | #define ACPI_BAY_HID "LNXIOBAY" |
60 | #define ACPI_DOCK_HID "LNXDOCK" | 60 | #define ACPI_DOCK_HID "LNXDOCK" |
61 | #define ACPI_ECDT_HID "LNXEC" | ||
61 | /* Quirk for broken IBM BIOSes */ | 62 | /* Quirk for broken IBM BIOSes */ |
62 | #define ACPI_SMBUS_IBM_HID "SMBUSIBM" | 63 | #define ACPI_SMBUS_IBM_HID "SMBUSIBM" |
63 | 64 | ||
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 757dc6ffc7ba..b234d54f2cb6 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
@@ -805,15 +805,23 @@ static inline int pmd_trans_huge(pmd_t pmd) | |||
805 | { | 805 | { |
806 | return 0; | 806 | return 0; |
807 | } | 807 | } |
808 | #ifndef __HAVE_ARCH_PMD_WRITE | 808 | #ifndef pmd_write |
809 | static inline int pmd_write(pmd_t pmd) | 809 | static inline int pmd_write(pmd_t pmd) |
810 | { | 810 | { |
811 | BUG(); | 811 | BUG(); |
812 | return 0; | 812 | return 0; |
813 | } | 813 | } |
814 | #endif /* __HAVE_ARCH_PMD_WRITE */ | 814 | #endif /* pmd_write */ |
815 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ | 815 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ |
816 | 816 | ||
817 | #ifndef pud_write | ||
818 | static inline int pud_write(pud_t pud) | ||
819 | { | ||
820 | BUG(); | ||
821 | return 0; | ||
822 | } | ||
823 | #endif /* pud_write */ | ||
824 | |||
817 | #if !defined(CONFIG_TRANSPARENT_HUGEPAGE) || \ | 825 | #if !defined(CONFIG_TRANSPARENT_HUGEPAGE) || \ |
818 | (defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ | 826 | (defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ |
819 | !defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)) | 827 | !defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)) |
diff --git a/include/crypto/if_alg.h b/include/crypto/if_alg.h index 6abf0a3604dc..f38227a78eae 100644 --- a/include/crypto/if_alg.h +++ b/include/crypto/if_alg.h | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/if_alg.h> | 18 | #include <linux/if_alg.h> |
19 | #include <linux/scatterlist.h> | 19 | #include <linux/scatterlist.h> |
20 | #include <linux/types.h> | 20 | #include <linux/types.h> |
21 | #include <linux/atomic.h> | ||
21 | #include <net/sock.h> | 22 | #include <net/sock.h> |
22 | 23 | ||
23 | #include <crypto/aead.h> | 24 | #include <crypto/aead.h> |
@@ -150,7 +151,7 @@ struct af_alg_ctx { | |||
150 | struct crypto_wait wait; | 151 | struct crypto_wait wait; |
151 | 152 | ||
152 | size_t used; | 153 | size_t used; |
153 | size_t rcvused; | 154 | atomic_t rcvused; |
154 | 155 | ||
155 | bool more; | 156 | bool more; |
156 | bool merge; | 157 | bool merge; |
@@ -215,7 +216,7 @@ static inline int af_alg_rcvbuf(struct sock *sk) | |||
215 | struct af_alg_ctx *ctx = ask->private; | 216 | struct af_alg_ctx *ctx = ask->private; |
216 | 217 | ||
217 | return max_t(int, max_t(int, sk->sk_rcvbuf & PAGE_MASK, PAGE_SIZE) - | 218 | return max_t(int, max_t(int, sk->sk_rcvbuf & PAGE_MASK, PAGE_SIZE) - |
218 | ctx->rcvused, 0); | 219 | atomic_read(&ctx->rcvused), 0); |
219 | } | 220 | } |
220 | 221 | ||
221 | /** | 222 | /** |
@@ -242,6 +243,7 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size, | |||
242 | unsigned int ivsize); | 243 | unsigned int ivsize); |
243 | ssize_t af_alg_sendpage(struct socket *sock, struct page *page, | 244 | ssize_t af_alg_sendpage(struct socket *sock, struct page *page, |
244 | int offset, size_t size, int flags); | 245 | int offset, size_t size, int flags); |
246 | void af_alg_free_resources(struct af_alg_async_req *areq); | ||
245 | void af_alg_async_cb(struct crypto_async_request *_req, int err); | 247 | void af_alg_async_cb(struct crypto_async_request *_req, int err); |
246 | unsigned int af_alg_poll(struct file *file, struct socket *sock, | 248 | unsigned int af_alg_poll(struct file *file, struct socket *sock, |
247 | poll_table *wait); | 249 | poll_table *wait); |
diff --git a/include/crypto/mcryptd.h b/include/crypto/mcryptd.h index cceafa01f907..b67404fc4b34 100644 --- a/include/crypto/mcryptd.h +++ b/include/crypto/mcryptd.h | |||
@@ -27,6 +27,7 @@ static inline struct mcryptd_ahash *__mcryptd_ahash_cast( | |||
27 | 27 | ||
28 | struct mcryptd_cpu_queue { | 28 | struct mcryptd_cpu_queue { |
29 | struct crypto_queue queue; | 29 | struct crypto_queue queue; |
30 | spinlock_t q_lock; | ||
30 | struct work_struct work; | 31 | struct work_struct work; |
31 | }; | 32 | }; |
32 | 33 | ||
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index df9807a3caae..a4649c56ca2f 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h | |||
@@ -916,6 +916,14 @@ struct drm_connector { | |||
916 | uint8_t num_h_tile, num_v_tile; | 916 | uint8_t num_h_tile, num_v_tile; |
917 | uint8_t tile_h_loc, tile_v_loc; | 917 | uint8_t tile_h_loc, tile_v_loc; |
918 | uint16_t tile_h_size, tile_v_size; | 918 | uint16_t tile_h_size, tile_v_size; |
919 | |||
920 | /** | ||
921 | * @free_work: | ||
922 | * | ||
923 | * Work used only by &drm_connector_iter to be able to clean up a | ||
924 | * connector from any context. | ||
925 | */ | ||
926 | struct work_struct free_work; | ||
919 | }; | 927 | }; |
920 | 928 | ||
921 | #define obj_to_connector(x) container_of(x, struct drm_connector, base) | 929 | #define obj_to_connector(x) container_of(x, struct drm_connector, base) |
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h index 6f35909b8add..2ec41d032e56 100644 --- a/include/drm/drm_edid.h +++ b/include/drm/drm_edid.h | |||
@@ -362,7 +362,8 @@ void | |||
362 | drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame, | 362 | drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame, |
363 | const struct drm_display_mode *mode, | 363 | const struct drm_display_mode *mode, |
364 | enum hdmi_quantization_range rgb_quant_range, | 364 | enum hdmi_quantization_range rgb_quant_range, |
365 | bool rgb_quant_range_selectable); | 365 | bool rgb_quant_range_selectable, |
366 | bool is_hdmi2_sink); | ||
366 | 367 | ||
367 | /** | 368 | /** |
368 | * drm_eld_mnl - Get ELD monitor name length in bytes. | 369 | * drm_eld_mnl - Get ELD monitor name length in bytes. |
diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h index 38a2b4770c35..593811362a91 100644 --- a/include/drm/ttm/ttm_page_alloc.h +++ b/include/drm/ttm/ttm_page_alloc.h | |||
@@ -59,11 +59,20 @@ int ttm_pool_populate(struct ttm_tt *ttm); | |||
59 | void ttm_pool_unpopulate(struct ttm_tt *ttm); | 59 | void ttm_pool_unpopulate(struct ttm_tt *ttm); |
60 | 60 | ||
61 | /** | 61 | /** |
62 | * Populates and DMA maps pages to fullfil a ttm_dma_populate() request | ||
63 | */ | ||
64 | int ttm_populate_and_map_pages(struct device *dev, struct ttm_dma_tt *tt); | ||
65 | |||
66 | /** | ||
67 | * Unpopulates and DMA unmaps pages as part of a | ||
68 | * ttm_dma_unpopulate() request */ | ||
69 | void ttm_unmap_and_unpopulate_pages(struct device *dev, struct ttm_dma_tt *tt); | ||
70 | |||
71 | /** | ||
62 | * Output the state of pools to debugfs file | 72 | * Output the state of pools to debugfs file |
63 | */ | 73 | */ |
64 | int ttm_page_alloc_debugfs(struct seq_file *m, void *data); | 74 | int ttm_page_alloc_debugfs(struct seq_file *m, void *data); |
65 | 75 | ||
66 | |||
67 | #if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU) | 76 | #if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU) |
68 | /** | 77 | /** |
69 | * Initialize pool allocator. | 78 | * Initialize pool allocator. |
@@ -83,17 +92,6 @@ int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data); | |||
83 | int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev); | 92 | int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev); |
84 | void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev); | 93 | void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev); |
85 | 94 | ||
86 | |||
87 | /** | ||
88 | * Populates and DMA maps pages to fullfil a ttm_dma_populate() request | ||
89 | */ | ||
90 | int ttm_populate_and_map_pages(struct device *dev, struct ttm_dma_tt *tt); | ||
91 | |||
92 | /** | ||
93 | * Unpopulates and DMA unmaps pages as part of a | ||
94 | * ttm_dma_unpopulate() request */ | ||
95 | void ttm_unmap_and_unpopulate_pages(struct device *dev, struct ttm_dma_tt *tt); | ||
96 | |||
97 | #else | 95 | #else |
98 | static inline int ttm_dma_page_alloc_init(struct ttm_mem_global *glob, | 96 | static inline int ttm_dma_page_alloc_init(struct ttm_mem_global *glob, |
99 | unsigned max_pages) | 97 | unsigned max_pages) |
@@ -116,16 +114,6 @@ static inline void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, | |||
116 | struct device *dev) | 114 | struct device *dev) |
117 | { | 115 | { |
118 | } | 116 | } |
119 | |||
120 | static inline int ttm_populate_and_map_pages(struct device *dev, struct ttm_dma_tt *tt) | ||
121 | { | ||
122 | return -ENOMEM; | ||
123 | } | ||
124 | |||
125 | static inline void ttm_unmap_and_unpopulate_pages(struct device *dev, struct ttm_dma_tt *tt) | ||
126 | { | ||
127 | } | ||
128 | |||
129 | #endif | 117 | #endif |
130 | 118 | ||
131 | #endif | 119 | #endif |
diff --git a/include/kvm/arm_arch_timer.h b/include/kvm/arm_arch_timer.h index 01ee473517e2..6e45608b2399 100644 --- a/include/kvm/arm_arch_timer.h +++ b/include/kvm/arm_arch_timer.h | |||
@@ -93,7 +93,4 @@ void kvm_timer_init_vhe(void); | |||
93 | #define vcpu_vtimer(v) (&(v)->arch.timer_cpu.vtimer) | 93 | #define vcpu_vtimer(v) (&(v)->arch.timer_cpu.vtimer) |
94 | #define vcpu_ptimer(v) (&(v)->arch.timer_cpu.ptimer) | 94 | #define vcpu_ptimer(v) (&(v)->arch.timer_cpu.ptimer) |
95 | 95 | ||
96 | void enable_el1_phys_timer_access(void); | ||
97 | void disable_el1_phys_timer_access(void); | ||
98 | |||
99 | #endif | 96 | #endif |
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index f36ecc2a5712..3b0ba54cc4d5 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
@@ -216,6 +216,8 @@ static inline void debugfs_remove(struct dentry *dentry) | |||
216 | static inline void debugfs_remove_recursive(struct dentry *dentry) | 216 | static inline void debugfs_remove_recursive(struct dentry *dentry) |
217 | { } | 217 | { } |
218 | 218 | ||
219 | const struct file_operations *debugfs_real_fops(const struct file *filp); | ||
220 | |||
219 | static inline int debugfs_file_get(struct dentry *dentry) | 221 | static inline int debugfs_file_get(struct dentry *dentry) |
220 | { | 222 | { |
221 | return 0; | 223 | return 0; |
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index e8f8e8fb244d..81ed9b2d84dc 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h | |||
@@ -704,7 +704,6 @@ static inline void *dma_zalloc_coherent(struct device *dev, size_t size, | |||
704 | return ret; | 704 | return ret; |
705 | } | 705 | } |
706 | 706 | ||
707 | #ifdef CONFIG_HAS_DMA | ||
708 | static inline int dma_get_cache_alignment(void) | 707 | static inline int dma_get_cache_alignment(void) |
709 | { | 708 | { |
710 | #ifdef ARCH_DMA_MINALIGN | 709 | #ifdef ARCH_DMA_MINALIGN |
@@ -712,7 +711,6 @@ static inline int dma_get_cache_alignment(void) | |||
712 | #endif | 711 | #endif |
713 | return 1; | 712 | return 1; |
714 | } | 713 | } |
715 | #endif | ||
716 | 714 | ||
717 | /* flags for the coherent memory api */ | 715 | /* flags for the coherent memory api */ |
718 | #define DMA_MEMORY_EXCLUSIVE 0x01 | 716 | #define DMA_MEMORY_EXCLUSIVE 0x01 |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 2995a271ec46..511fbaabf624 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1872,7 +1872,7 @@ struct super_operations { | |||
1872 | */ | 1872 | */ |
1873 | #define __IS_FLG(inode, flg) ((inode)->i_sb->s_flags & (flg)) | 1873 | #define __IS_FLG(inode, flg) ((inode)->i_sb->s_flags & (flg)) |
1874 | 1874 | ||
1875 | static inline bool sb_rdonly(const struct super_block *sb) { return sb->s_flags & MS_RDONLY; } | 1875 | static inline bool sb_rdonly(const struct super_block *sb) { return sb->s_flags & SB_RDONLY; } |
1876 | #define IS_RDONLY(inode) sb_rdonly((inode)->i_sb) | 1876 | #define IS_RDONLY(inode) sb_rdonly((inode)->i_sb) |
1877 | #define IS_SYNC(inode) (__IS_FLG(inode, SB_SYNCHRONOUS) || \ | 1877 | #define IS_SYNC(inode) (__IS_FLG(inode, SB_SYNCHRONOUS) || \ |
1878 | ((inode)->i_flags & S_SYNC)) | 1878 | ((inode)->i_flags & S_SYNC)) |
@@ -3088,7 +3088,8 @@ static inline int vfs_lstat(const char __user *name, struct kstat *stat) | |||
3088 | static inline int vfs_fstatat(int dfd, const char __user *filename, | 3088 | static inline int vfs_fstatat(int dfd, const char __user *filename, |
3089 | struct kstat *stat, int flags) | 3089 | struct kstat *stat, int flags) |
3090 | { | 3090 | { |
3091 | return vfs_statx(dfd, filename, flags, stat, STATX_BASIC_STATS); | 3091 | return vfs_statx(dfd, filename, flags | AT_NO_AUTOMOUNT, |
3092 | stat, STATX_BASIC_STATS); | ||
3092 | } | 3093 | } |
3093 | static inline int vfs_fstat(int fd, struct kstat *stat) | 3094 | static inline int vfs_fstat(int fd, struct kstat *stat) |
3094 | { | 3095 | { |
@@ -3194,6 +3195,20 @@ static inline bool vma_is_dax(struct vm_area_struct *vma) | |||
3194 | return vma->vm_file && IS_DAX(vma->vm_file->f_mapping->host); | 3195 | return vma->vm_file && IS_DAX(vma->vm_file->f_mapping->host); |
3195 | } | 3196 | } |
3196 | 3197 | ||
3198 | static inline bool vma_is_fsdax(struct vm_area_struct *vma) | ||
3199 | { | ||
3200 | struct inode *inode; | ||
3201 | |||
3202 | if (!vma->vm_file) | ||
3203 | return false; | ||
3204 | if (!vma_is_dax(vma)) | ||
3205 | return false; | ||
3206 | inode = file_inode(vma->vm_file); | ||
3207 | if (inode->i_mode == S_IFCHR) | ||
3208 | return false; /* device-dax */ | ||
3209 | return true; | ||
3210 | } | ||
3211 | |||
3197 | static inline int iocb_flags(struct file *file) | 3212 | static inline int iocb_flags(struct file *file) |
3198 | { | 3213 | { |
3199 | int res = 0; | 3214 | int res = 0; |
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index fbf5b31d47ee..82a25880714a 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
@@ -239,14 +239,6 @@ static inline int pgd_write(pgd_t pgd) | |||
239 | } | 239 | } |
240 | #endif | 240 | #endif |
241 | 241 | ||
242 | #ifndef pud_write | ||
243 | static inline int pud_write(pud_t pud) | ||
244 | { | ||
245 | BUG(); | ||
246 | return 0; | ||
247 | } | ||
248 | #endif | ||
249 | |||
250 | #define HUGETLB_ANON_FILE "anon_hugepage" | 242 | #define HUGETLB_ANON_FILE "anon_hugepage" |
251 | 243 | ||
252 | enum { | 244 | enum { |
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index f3e97c5f94c9..6c9336626592 100644 --- a/include/linux/hyperv.h +++ b/include/linux/hyperv.h | |||
@@ -708,6 +708,7 @@ struct vmbus_channel { | |||
708 | u8 monitor_bit; | 708 | u8 monitor_bit; |
709 | 709 | ||
710 | bool rescind; /* got rescind msg */ | 710 | bool rescind; /* got rescind msg */ |
711 | struct completion rescind_event; | ||
711 | 712 | ||
712 | u32 ringbuffer_gpadlhandle; | 713 | u32 ringbuffer_gpadlhandle; |
713 | 714 | ||
diff --git a/include/linux/iio/timer/stm32-lptim-trigger.h b/include/linux/iio/timer/stm32-lptim-trigger.h index 34d59bfdce2d..464458d20b16 100644 --- a/include/linux/iio/timer/stm32-lptim-trigger.h +++ b/include/linux/iio/timer/stm32-lptim-trigger.h | |||
@@ -16,11 +16,14 @@ | |||
16 | #define LPTIM2_OUT "lptim2_out" | 16 | #define LPTIM2_OUT "lptim2_out" |
17 | #define LPTIM3_OUT "lptim3_out" | 17 | #define LPTIM3_OUT "lptim3_out" |
18 | 18 | ||
19 | #if IS_ENABLED(CONFIG_IIO_STM32_LPTIMER_TRIGGER) | 19 | #if IS_REACHABLE(CONFIG_IIO_STM32_LPTIMER_TRIGGER) |
20 | bool is_stm32_lptim_trigger(struct iio_trigger *trig); | 20 | bool is_stm32_lptim_trigger(struct iio_trigger *trig); |
21 | #else | 21 | #else |
22 | static inline bool is_stm32_lptim_trigger(struct iio_trigger *trig) | 22 | static inline bool is_stm32_lptim_trigger(struct iio_trigger *trig) |
23 | { | 23 | { |
24 | #if IS_ENABLED(CONFIG_IIO_STM32_LPTIMER_TRIGGER) | ||
25 | pr_warn_once("stm32 lptim_trigger not linked in\n"); | ||
26 | #endif | ||
24 | return false; | 27 | return false; |
25 | } | 28 | } |
26 | #endif | 29 | #endif |
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index dd418955962b..39fb3700f7a9 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h | |||
@@ -230,7 +230,7 @@ irq_set_chip_handler_name_locked(struct irq_data *data, struct irq_chip *chip, | |||
230 | data->chip = chip; | 230 | data->chip = chip; |
231 | } | 231 | } |
232 | 232 | ||
233 | static inline int irq_balancing_disabled(unsigned int irq) | 233 | static inline bool irq_balancing_disabled(unsigned int irq) |
234 | { | 234 | { |
235 | struct irq_desc *desc; | 235 | struct irq_desc *desc; |
236 | 236 | ||
@@ -238,7 +238,7 @@ static inline int irq_balancing_disabled(unsigned int irq) | |||
238 | return desc->status_use_accessors & IRQ_NO_BALANCING_MASK; | 238 | return desc->status_use_accessors & IRQ_NO_BALANCING_MASK; |
239 | } | 239 | } |
240 | 240 | ||
241 | static inline int irq_is_percpu(unsigned int irq) | 241 | static inline bool irq_is_percpu(unsigned int irq) |
242 | { | 242 | { |
243 | struct irq_desc *desc; | 243 | struct irq_desc *desc; |
244 | 244 | ||
@@ -246,7 +246,7 @@ static inline int irq_is_percpu(unsigned int irq) | |||
246 | return desc->status_use_accessors & IRQ_PER_CPU; | 246 | return desc->status_use_accessors & IRQ_PER_CPU; |
247 | } | 247 | } |
248 | 248 | ||
249 | static inline int irq_is_percpu_devid(unsigned int irq) | 249 | static inline bool irq_is_percpu_devid(unsigned int irq) |
250 | { | 250 | { |
251 | struct irq_desc *desc; | 251 | struct irq_desc *desc; |
252 | 252 | ||
diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index 708f337d780b..bd118a6c60cb 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h | |||
@@ -14,12 +14,6 @@ | |||
14 | #define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \ | 14 | #define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \ |
15 | 2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1) | 15 | 2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1) |
16 | 16 | ||
17 | #ifndef CONFIG_64BIT | ||
18 | # define KALLSYM_FMT "%08lx" | ||
19 | #else | ||
20 | # define KALLSYM_FMT "%016lx" | ||
21 | #endif | ||
22 | |||
23 | struct module; | 17 | struct module; |
24 | 18 | ||
25 | #ifdef CONFIG_KALLSYMS | 19 | #ifdef CONFIG_KALLSYMS |
diff --git a/include/linux/kmemcheck.h b/include/linux/kmemcheck.h deleted file mode 100644 index ea32a7d3cf1b..000000000000 --- a/include/linux/kmemcheck.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 2e754b7c282c..6bdd4b9f6611 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
@@ -232,7 +232,7 @@ struct kvm_vcpu { | |||
232 | struct mutex mutex; | 232 | struct mutex mutex; |
233 | struct kvm_run *run; | 233 | struct kvm_run *run; |
234 | 234 | ||
235 | int guest_fpu_loaded, guest_xcr0_loaded; | 235 | int guest_xcr0_loaded; |
236 | struct swait_queue_head wq; | 236 | struct swait_queue_head wq; |
237 | struct pid __rcu *pid; | 237 | struct pid __rcu *pid; |
238 | int sigset_active; | 238 | int sigset_active; |
@@ -715,6 +715,9 @@ int kvm_vcpu_write_guest(struct kvm_vcpu *vcpu, gpa_t gpa, const void *data, | |||
715 | unsigned long len); | 715 | unsigned long len); |
716 | void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vcpu, gfn_t gfn); | 716 | void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vcpu, gfn_t gfn); |
717 | 717 | ||
718 | void kvm_sigset_activate(struct kvm_vcpu *vcpu); | ||
719 | void kvm_sigset_deactivate(struct kvm_vcpu *vcpu); | ||
720 | |||
718 | void kvm_vcpu_block(struct kvm_vcpu *vcpu); | 721 | void kvm_vcpu_block(struct kvm_vcpu *vcpu); |
719 | void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu); | 722 | void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu); |
720 | void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu); | 723 | void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu); |
diff --git a/include/lib/libgcc.h b/include/linux/libgcc.h index 32e1e0f4b2d0..32e1e0f4b2d0 100644 --- a/include/lib/libgcc.h +++ b/include/linux/libgcc.h | |||
diff --git a/include/linux/migrate.h b/include/linux/migrate.h index 895ec0c4942e..a2246cf670ba 100644 --- a/include/linux/migrate.h +++ b/include/linux/migrate.h | |||
@@ -54,7 +54,7 @@ static inline struct page *new_page_nodemask(struct page *page, | |||
54 | new_page = __alloc_pages_nodemask(gfp_mask, order, | 54 | new_page = __alloc_pages_nodemask(gfp_mask, order, |
55 | preferred_nid, nodemask); | 55 | preferred_nid, nodemask); |
56 | 56 | ||
57 | if (new_page && PageTransHuge(page)) | 57 | if (new_page && PageTransHuge(new_page)) |
58 | prep_transhuge_page(new_page); | 58 | prep_transhuge_page(new_page); |
59 | 59 | ||
60 | return new_page; | 60 | return new_page; |
diff --git a/include/linux/mm.h b/include/linux/mm.h index ee073146aaa7..ea818ff739cd 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -377,6 +377,7 @@ enum page_entry_size { | |||
377 | struct vm_operations_struct { | 377 | struct vm_operations_struct { |
378 | void (*open)(struct vm_area_struct * area); | 378 | void (*open)(struct vm_area_struct * area); |
379 | void (*close)(struct vm_area_struct * area); | 379 | void (*close)(struct vm_area_struct * area); |
380 | int (*split)(struct vm_area_struct * area, unsigned long addr); | ||
380 | int (*mremap)(struct vm_area_struct * area); | 381 | int (*mremap)(struct vm_area_struct * area); |
381 | int (*fault)(struct vm_fault *vmf); | 382 | int (*fault)(struct vm_fault *vmf); |
382 | int (*huge_fault)(struct vm_fault *vmf, enum page_entry_size pe_size); | 383 | int (*huge_fault)(struct vm_fault *vmf, enum page_entry_size pe_size); |
@@ -1379,6 +1380,19 @@ long get_user_pages_locked(unsigned long start, unsigned long nr_pages, | |||
1379 | unsigned int gup_flags, struct page **pages, int *locked); | 1380 | unsigned int gup_flags, struct page **pages, int *locked); |
1380 | long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages, | 1381 | long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages, |
1381 | struct page **pages, unsigned int gup_flags); | 1382 | struct page **pages, unsigned int gup_flags); |
1383 | #ifdef CONFIG_FS_DAX | ||
1384 | long get_user_pages_longterm(unsigned long start, unsigned long nr_pages, | ||
1385 | unsigned int gup_flags, struct page **pages, | ||
1386 | struct vm_area_struct **vmas); | ||
1387 | #else | ||
1388 | static inline long get_user_pages_longterm(unsigned long start, | ||
1389 | unsigned long nr_pages, unsigned int gup_flags, | ||
1390 | struct page **pages, struct vm_area_struct **vmas) | ||
1391 | { | ||
1392 | return get_user_pages(start, nr_pages, gup_flags, pages, vmas); | ||
1393 | } | ||
1394 | #endif /* CONFIG_FS_DAX */ | ||
1395 | |||
1382 | int get_user_pages_fast(unsigned long start, int nr_pages, int write, | 1396 | int get_user_pages_fast(unsigned long start, int nr_pages, int write, |
1383 | struct page **pages); | 1397 | struct page **pages); |
1384 | 1398 | ||
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 2c9c87d8a0c1..7546822a1d74 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -15,6 +15,7 @@ | |||
15 | #define _LINUX_PERF_EVENT_H | 15 | #define _LINUX_PERF_EVENT_H |
16 | 16 | ||
17 | #include <uapi/linux/perf_event.h> | 17 | #include <uapi/linux/perf_event.h> |
18 | #include <uapi/linux/bpf_perf_event.h> | ||
18 | 19 | ||
19 | /* | 20 | /* |
20 | * Kernel-internal data types and definitions: | 21 | * Kernel-internal data types and definitions: |
@@ -787,7 +788,7 @@ struct perf_output_handle { | |||
787 | }; | 788 | }; |
788 | 789 | ||
789 | struct bpf_perf_event_data_kern { | 790 | struct bpf_perf_event_data_kern { |
790 | struct pt_regs *regs; | 791 | bpf_user_pt_regs_t *regs; |
791 | struct perf_sample_data *data; | 792 | struct perf_sample_data *data; |
792 | struct perf_event *event; | 793 | struct perf_event *event; |
793 | }; | 794 | }; |
@@ -1177,6 +1178,9 @@ extern void perf_bp_event(struct perf_event *event, void *data); | |||
1177 | (user_mode(regs) ? PERF_RECORD_MISC_USER : PERF_RECORD_MISC_KERNEL) | 1178 | (user_mode(regs) ? PERF_RECORD_MISC_USER : PERF_RECORD_MISC_KERNEL) |
1178 | # define perf_instruction_pointer(regs) instruction_pointer(regs) | 1179 | # define perf_instruction_pointer(regs) instruction_pointer(regs) |
1179 | #endif | 1180 | #endif |
1181 | #ifndef perf_arch_bpf_user_pt_regs | ||
1182 | # define perf_arch_bpf_user_pt_regs(regs) regs | ||
1183 | #endif | ||
1180 | 1184 | ||
1181 | static inline bool has_branch_stack(struct perf_event *event) | 1185 | static inline bool has_branch_stack(struct perf_event *event) |
1182 | { | 1186 | { |
diff --git a/include/linux/rculist_nulls.h b/include/linux/rculist_nulls.h index a328e8181e49..e4b257ff881b 100644 --- a/include/linux/rculist_nulls.h +++ b/include/linux/rculist_nulls.h | |||
@@ -101,44 +101,6 @@ static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n, | |||
101 | } | 101 | } |
102 | 102 | ||
103 | /** | 103 | /** |
104 | * hlist_nulls_add_tail_rcu | ||
105 | * @n: the element to add to the hash list. | ||
106 | * @h: the list to add to. | ||
107 | * | ||
108 | * Description: | ||
109 | * Adds the specified element to the end of the specified hlist_nulls, | ||
110 | * while permitting racing traversals. NOTE: tail insertion requires | ||
111 | * list traversal. | ||
112 | * | ||
113 | * The caller must take whatever precautions are necessary | ||
114 | * (such as holding appropriate locks) to avoid racing | ||
115 | * with another list-mutation primitive, such as hlist_nulls_add_head_rcu() | ||
116 | * or hlist_nulls_del_rcu(), running on this same list. | ||
117 | * However, it is perfectly legal to run concurrently with | ||
118 | * the _rcu list-traversal primitives, such as | ||
119 | * hlist_nulls_for_each_entry_rcu(), used to prevent memory-consistency | ||
120 | * problems on Alpha CPUs. Regardless of the type of CPU, the | ||
121 | * list-traversal primitive must be guarded by rcu_read_lock(). | ||
122 | */ | ||
123 | static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n, | ||
124 | struct hlist_nulls_head *h) | ||
125 | { | ||
126 | struct hlist_nulls_node *i, *last = NULL; | ||
127 | |||
128 | for (i = hlist_nulls_first_rcu(h); !is_a_nulls(i); | ||
129 | i = hlist_nulls_next_rcu(i)) | ||
130 | last = i; | ||
131 | |||
132 | if (last) { | ||
133 | n->next = last->next; | ||
134 | n->pprev = &last->next; | ||
135 | rcu_assign_pointer(hlist_nulls_next_rcu(last), n); | ||
136 | } else { | ||
137 | hlist_nulls_add_head_rcu(n, h); | ||
138 | } | ||
139 | } | ||
140 | |||
141 | /** | ||
142 | * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type | 104 | * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type |
143 | * @tpos: the type * to use as a loop cursor. | 105 | * @tpos: the type * to use as a loop cursor. |
144 | * @pos: the &struct hlist_nulls_node to use as a loop cursor. | 106 | * @pos: the &struct hlist_nulls_node to use as a loop cursor. |
diff --git a/include/linux/serdev.h b/include/linux/serdev.h index e69402d4a8ae..d609e6dc5bad 100644 --- a/include/linux/serdev.h +++ b/include/linux/serdev.h | |||
@@ -184,7 +184,7 @@ static inline int serdev_controller_receive_buf(struct serdev_controller *ctrl, | |||
184 | struct serdev_device *serdev = ctrl->serdev; | 184 | struct serdev_device *serdev = ctrl->serdev; |
185 | 185 | ||
186 | if (!serdev || !serdev->ops->receive_buf) | 186 | if (!serdev || !serdev->ops->receive_buf) |
187 | return -EINVAL; | 187 | return 0; |
188 | 188 | ||
189 | return serdev->ops->receive_buf(serdev, data, count); | 189 | return serdev->ops->receive_buf(serdev, data, count); |
190 | } | 190 | } |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index bc486ef23f20..a38c80e9f91e 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -1406,8 +1406,7 @@ static inline struct sk_buff *skb_get(struct sk_buff *skb) | |||
1406 | } | 1406 | } |
1407 | 1407 | ||
1408 | /* | 1408 | /* |
1409 | * If users == 1, we are the only owner and are can avoid redundant | 1409 | * If users == 1, we are the only owner and can avoid redundant atomic changes. |
1410 | * atomic change. | ||
1411 | */ | 1410 | */ |
1412 | 1411 | ||
1413 | /** | 1412 | /** |
diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h index 270bad0e1bed..40d2822f0e2f 100644 --- a/include/linux/sunrpc/cache.h +++ b/include/linux/sunrpc/cache.h | |||
@@ -213,7 +213,7 @@ extern void __init cache_initialize(void); | |||
213 | extern int cache_register_net(struct cache_detail *cd, struct net *net); | 213 | extern int cache_register_net(struct cache_detail *cd, struct net *net); |
214 | extern void cache_unregister_net(struct cache_detail *cd, struct net *net); | 214 | extern void cache_unregister_net(struct cache_detail *cd, struct net *net); |
215 | 215 | ||
216 | extern struct cache_detail *cache_create_net(struct cache_detail *tmpl, struct net *net); | 216 | extern struct cache_detail *cache_create_net(const struct cache_detail *tmpl, struct net *net); |
217 | extern void cache_destroy_net(struct cache_detail *cd, struct net *net); | 217 | extern void cache_destroy_net(struct cache_detail *cd, struct net *net); |
218 | 218 | ||
219 | extern void sunrpc_init_cache_detail(struct cache_detail *cd); | 219 | extern void sunrpc_init_cache_detail(struct cache_detail *cd); |
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index e32dfe098e82..40839c02d28c 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h | |||
@@ -117,6 +117,12 @@ struct attribute_group { | |||
117 | .show = _name##_show, \ | 117 | .show = _name##_show, \ |
118 | } | 118 | } |
119 | 119 | ||
120 | #define __ATTR_RO_MODE(_name, _mode) { \ | ||
121 | .attr = { .name = __stringify(_name), \ | ||
122 | .mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \ | ||
123 | .show = _name##_show, \ | ||
124 | } | ||
125 | |||
120 | #define __ATTR_WO(_name) { \ | 126 | #define __ATTR_WO(_name) { \ |
121 | .attr = { .name = __stringify(_name), .mode = S_IWUSR }, \ | 127 | .attr = { .name = __stringify(_name), .mode = S_IWUSR }, \ |
122 | .store = _name##_store, \ | 128 | .store = _name##_store, \ |
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index df5d97a85e1a..ca4a6361389b 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h | |||
@@ -224,7 +224,8 @@ struct tcp_sock { | |||
224 | rate_app_limited:1, /* rate_{delivered,interval_us} limited? */ | 224 | rate_app_limited:1, /* rate_{delivered,interval_us} limited? */ |
225 | fastopen_connect:1, /* FASTOPEN_CONNECT sockopt */ | 225 | fastopen_connect:1, /* FASTOPEN_CONNECT sockopt */ |
226 | fastopen_no_cookie:1, /* Allow send/recv SYN+data without a cookie */ | 226 | fastopen_no_cookie:1, /* Allow send/recv SYN+data without a cookie */ |
227 | unused:3; | 227 | is_sack_reneg:1, /* in recovery from loss with SACK reneg? */ |
228 | unused:2; | ||
228 | u8 nonagle : 4,/* Disable Nagle algorithm? */ | 229 | u8 nonagle : 4,/* Disable Nagle algorithm? */ |
229 | thin_lto : 1,/* Use linear timeouts for thin streams */ | 230 | thin_lto : 1,/* Use linear timeouts for thin streams */ |
230 | unused1 : 1, | 231 | unused1 : 1, |
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h index a69877734c4e..e2ec3582e549 100644 --- a/include/linux/usb/usbnet.h +++ b/include/linux/usb/usbnet.h | |||
@@ -82,6 +82,7 @@ struct usbnet { | |||
82 | # define EVENT_RX_KILL 10 | 82 | # define EVENT_RX_KILL 10 |
83 | # define EVENT_LINK_CHANGE 11 | 83 | # define EVENT_LINK_CHANGE 11 |
84 | # define EVENT_SET_RX_MODE 12 | 84 | # define EVENT_SET_RX_MODE 12 |
85 | # define EVENT_NO_IP_ALIGN 13 | ||
85 | }; | 86 | }; |
86 | 87 | ||
87 | static inline struct usb_driver *driver_of(struct usb_interface *intf) | 88 | static inline struct usb_driver *driver_of(struct usb_interface *intf) |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index cc9073e45be9..eec143cca1c0 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -4470,18 +4470,24 @@ struct sk_buff *ieee80211_pspoll_get(struct ieee80211_hw *hw, | |||
4470 | * ieee80211_nullfunc_get - retrieve a nullfunc template | 4470 | * ieee80211_nullfunc_get - retrieve a nullfunc template |
4471 | * @hw: pointer obtained from ieee80211_alloc_hw(). | 4471 | * @hw: pointer obtained from ieee80211_alloc_hw(). |
4472 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. | 4472 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
4473 | * @qos_ok: QoS NDP is acceptable to the caller, this should be set | ||
4474 | * if at all possible | ||
4473 | * | 4475 | * |
4474 | * Creates a Nullfunc template which can, for example, uploaded to | 4476 | * Creates a Nullfunc template which can, for example, uploaded to |
4475 | * hardware. The template must be updated after association so that correct | 4477 | * hardware. The template must be updated after association so that correct |
4476 | * BSSID and address is used. | 4478 | * BSSID and address is used. |
4477 | * | 4479 | * |
4480 | * If @qos_ndp is set and the association is to an AP with QoS/WMM, the | ||
4481 | * returned packet will be QoS NDP. | ||
4482 | * | ||
4478 | * Note: Caller (or hardware) is responsible for setting the | 4483 | * Note: Caller (or hardware) is responsible for setting the |
4479 | * &IEEE80211_FCTL_PM bit as well as Duration and Sequence Control fields. | 4484 | * &IEEE80211_FCTL_PM bit as well as Duration and Sequence Control fields. |
4480 | * | 4485 | * |
4481 | * Return: The nullfunc template. %NULL on error. | 4486 | * Return: The nullfunc template. %NULL on error. |
4482 | */ | 4487 | */ |
4483 | struct sk_buff *ieee80211_nullfunc_get(struct ieee80211_hw *hw, | 4488 | struct sk_buff *ieee80211_nullfunc_get(struct ieee80211_hw *hw, |
4484 | struct ieee80211_vif *vif); | 4489 | struct ieee80211_vif *vif, |
4490 | bool qos_ok); | ||
4485 | 4491 | ||
4486 | /** | 4492 | /** |
4487 | * ieee80211_probereq_get - retrieve a Probe Request template | 4493 | * ieee80211_probereq_get - retrieve a Probe Request template |
diff --git a/include/net/red.h b/include/net/red.h index 9a9347710701..9665582c4687 100644 --- a/include/net/red.h +++ b/include/net/red.h | |||
@@ -168,6 +168,17 @@ static inline void red_set_vars(struct red_vars *v) | |||
168 | v->qcount = -1; | 168 | v->qcount = -1; |
169 | } | 169 | } |
170 | 170 | ||
171 | static inline bool red_check_params(u32 qth_min, u32 qth_max, u8 Wlog) | ||
172 | { | ||
173 | if (fls(qth_min) + Wlog > 32) | ||
174 | return false; | ||
175 | if (fls(qth_max) + Wlog > 32) | ||
176 | return false; | ||
177 | if (qth_max < qth_min) | ||
178 | return false; | ||
179 | return true; | ||
180 | } | ||
181 | |||
171 | static inline void red_set_parms(struct red_parms *p, | 182 | static inline void red_set_parms(struct red_parms *p, |
172 | u32 qth_min, u32 qth_max, u8 Wlog, u8 Plog, | 183 | u32 qth_min, u32 qth_max, u8 Wlog, u8 Plog, |
173 | u8 Scell_log, u8 *stab, u32 max_P) | 184 | u8 Scell_log, u8 *stab, u32 max_P) |
@@ -179,7 +190,7 @@ static inline void red_set_parms(struct red_parms *p, | |||
179 | p->qth_max = qth_max << Wlog; | 190 | p->qth_max = qth_max << Wlog; |
180 | p->Wlog = Wlog; | 191 | p->Wlog = Wlog; |
181 | p->Plog = Plog; | 192 | p->Plog = Plog; |
182 | if (delta < 0) | 193 | if (delta <= 0) |
183 | delta = 1; | 194 | delta = 1; |
184 | p->qth_delta = delta; | 195 | p->qth_delta = delta; |
185 | if (!max_P) { | 196 | if (!max_P) { |
diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h index 4a5b9a306c69..32ee65a30aff 100644 --- a/include/net/sctp/checksum.h +++ b/include/net/sctp/checksum.h | |||
@@ -48,31 +48,32 @@ static inline __wsum sctp_csum_update(const void *buff, int len, __wsum sum) | |||
48 | /* This uses the crypto implementation of crc32c, which is either | 48 | /* This uses the crypto implementation of crc32c, which is either |
49 | * implemented w/ hardware support or resolves to __crc32c_le(). | 49 | * implemented w/ hardware support or resolves to __crc32c_le(). |
50 | */ | 50 | */ |
51 | return crc32c(sum, buff, len); | 51 | return (__force __wsum)crc32c((__force __u32)sum, buff, len); |
52 | } | 52 | } |
53 | 53 | ||
54 | static inline __wsum sctp_csum_combine(__wsum csum, __wsum csum2, | 54 | static inline __wsum sctp_csum_combine(__wsum csum, __wsum csum2, |
55 | int offset, int len) | 55 | int offset, int len) |
56 | { | 56 | { |
57 | return __crc32c_le_combine(csum, csum2, len); | 57 | return (__force __wsum)__crc32c_le_combine((__force __u32)csum, |
58 | (__force __u32)csum2, len); | ||
58 | } | 59 | } |
59 | 60 | ||
60 | static inline __le32 sctp_compute_cksum(const struct sk_buff *skb, | 61 | static inline __le32 sctp_compute_cksum(const struct sk_buff *skb, |
61 | unsigned int offset) | 62 | unsigned int offset) |
62 | { | 63 | { |
63 | struct sctphdr *sh = sctp_hdr(skb); | 64 | struct sctphdr *sh = sctp_hdr(skb); |
64 | __le32 ret, old = sh->checksum; | ||
65 | const struct skb_checksum_ops ops = { | 65 | const struct skb_checksum_ops ops = { |
66 | .update = sctp_csum_update, | 66 | .update = sctp_csum_update, |
67 | .combine = sctp_csum_combine, | 67 | .combine = sctp_csum_combine, |
68 | }; | 68 | }; |
69 | __le32 old = sh->checksum; | ||
70 | __wsum new; | ||
69 | 71 | ||
70 | sh->checksum = 0; | 72 | sh->checksum = 0; |
71 | ret = cpu_to_le32(~__skb_checksum(skb, offset, skb->len - offset, | 73 | new = ~__skb_checksum(skb, offset, skb->len - offset, ~(__wsum)0, &ops); |
72 | ~(__u32)0, &ops)); | ||
73 | sh->checksum = old; | 74 | sh->checksum = old; |
74 | 75 | ||
75 | return ret; | 76 | return cpu_to_le32((__force __u32)new); |
76 | } | 77 | } |
77 | 78 | ||
78 | #endif /* __sctp_checksum_h__ */ | 79 | #endif /* __sctp_checksum_h__ */ |
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index 749a42882437..906a9c0efa71 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h | |||
@@ -195,6 +195,11 @@ void sctp_remaddr_proc_exit(struct net *net); | |||
195 | int sctp_offload_init(void); | 195 | int sctp_offload_init(void); |
196 | 196 | ||
197 | /* | 197 | /* |
198 | * sctp/stream_sched.c | ||
199 | */ | ||
200 | void sctp_sched_ops_init(void); | ||
201 | |||
202 | /* | ||
198 | * sctp/stream.c | 203 | * sctp/stream.c |
199 | */ | 204 | */ |
200 | int sctp_send_reset_streams(struct sctp_association *asoc, | 205 | int sctp_send_reset_streams(struct sctp_association *asoc, |
diff --git a/include/net/sctp/stream_sched.h b/include/net/sctp/stream_sched.h index c676550a4c7d..5c5da48f65e7 100644 --- a/include/net/sctp/stream_sched.h +++ b/include/net/sctp/stream_sched.h | |||
@@ -69,4 +69,9 @@ void sctp_sched_dequeue_common(struct sctp_outq *q, struct sctp_chunk *ch); | |||
69 | int sctp_sched_init_sid(struct sctp_stream *stream, __u16 sid, gfp_t gfp); | 69 | int sctp_sched_init_sid(struct sctp_stream *stream, __u16 sid, gfp_t gfp); |
70 | struct sctp_sched_ops *sctp_sched_ops_from_stream(struct sctp_stream *stream); | 70 | struct sctp_sched_ops *sctp_sched_ops_from_stream(struct sctp_stream *stream); |
71 | 71 | ||
72 | void sctp_sched_ops_register(enum sctp_sched_type sched, | ||
73 | struct sctp_sched_ops *sched_ops); | ||
74 | void sctp_sched_ops_prio_init(void); | ||
75 | void sctp_sched_ops_rr_init(void); | ||
76 | |||
72 | #endif /* __sctp_stream_sched_h__ */ | 77 | #endif /* __sctp_stream_sched_h__ */ |
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 16f949eef52f..2f8f93da5dc2 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -503,7 +503,8 @@ struct sctp_datamsg { | |||
503 | /* Did the messenge fail to send? */ | 503 | /* Did the messenge fail to send? */ |
504 | int send_error; | 504 | int send_error; |
505 | u8 send_failed:1, | 505 | u8 send_failed:1, |
506 | can_delay; /* should this message be Nagle delayed */ | 506 | can_delay:1, /* should this message be Nagle delayed */ |
507 | abandoned:1; /* should this message be abandoned */ | ||
507 | }; | 508 | }; |
508 | 509 | ||
509 | struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *, | 510 | struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *, |
diff --git a/include/net/sock.h b/include/net/sock.h index 79e1a2c7912c..9155da422692 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -685,11 +685,7 @@ static inline void sk_add_node_rcu(struct sock *sk, struct hlist_head *list) | |||
685 | 685 | ||
686 | static inline void __sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list) | 686 | static inline void __sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list) |
687 | { | 687 | { |
688 | if (IS_ENABLED(CONFIG_IPV6) && sk->sk_reuseport && | 688 | hlist_nulls_add_head_rcu(&sk->sk_nulls_node, list); |
689 | sk->sk_family == AF_INET6) | ||
690 | hlist_nulls_add_tail_rcu(&sk->sk_nulls_node, list); | ||
691 | else | ||
692 | hlist_nulls_add_head_rcu(&sk->sk_nulls_node, list); | ||
693 | } | 689 | } |
694 | 690 | ||
695 | static inline void sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list) | 691 | static inline void sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list) |
diff --git a/include/net/tc_act/tc_sample.h b/include/net/tc_act/tc_sample.h index 524cee4f4c81..01dbfea32672 100644 --- a/include/net/tc_act/tc_sample.h +++ b/include/net/tc_act/tc_sample.h | |||
@@ -14,7 +14,6 @@ struct tcf_sample { | |||
14 | struct psample_group __rcu *psample_group; | 14 | struct psample_group __rcu *psample_group; |
15 | u32 psample_group_num; | 15 | u32 psample_group_num; |
16 | struct list_head tcfm_list; | 16 | struct list_head tcfm_list; |
17 | struct rcu_head rcu; | ||
18 | }; | 17 | }; |
19 | #define to_sample(a) ((struct tcf_sample *)a) | 18 | #define to_sample(a) ((struct tcf_sample *)a) |
20 | 19 | ||
diff --git a/include/net/tcp.h b/include/net/tcp.h index 4e09398009c1..6da880d2f022 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -844,12 +844,11 @@ static inline int tcp_v6_sdif(const struct sk_buff *skb) | |||
844 | } | 844 | } |
845 | #endif | 845 | #endif |
846 | 846 | ||
847 | /* TCP_SKB_CB reference means this can not be used from early demux */ | ||
848 | static inline bool inet_exact_dif_match(struct net *net, struct sk_buff *skb) | 847 | static inline bool inet_exact_dif_match(struct net *net, struct sk_buff *skb) |
849 | { | 848 | { |
850 | #if IS_ENABLED(CONFIG_NET_L3_MASTER_DEV) | 849 | #if IS_ENABLED(CONFIG_NET_L3_MASTER_DEV) |
851 | if (!net->ipv4.sysctl_tcp_l3mdev_accept && | 850 | if (!net->ipv4.sysctl_tcp_l3mdev_accept && |
852 | skb && ipv4_l3mdev_skb(TCP_SKB_CB(skb)->header.h4.flags)) | 851 | skb && ipv4_l3mdev_skb(IPCB(skb)->flags)) |
853 | return true; | 852 | return true; |
854 | #endif | 853 | #endif |
855 | return false; | 854 | return false; |
@@ -1056,7 +1055,7 @@ void tcp_rate_skb_sent(struct sock *sk, struct sk_buff *skb); | |||
1056 | void tcp_rate_skb_delivered(struct sock *sk, struct sk_buff *skb, | 1055 | void tcp_rate_skb_delivered(struct sock *sk, struct sk_buff *skb, |
1057 | struct rate_sample *rs); | 1056 | struct rate_sample *rs); |
1058 | void tcp_rate_gen(struct sock *sk, u32 delivered, u32 lost, | 1057 | void tcp_rate_gen(struct sock *sk, u32 delivered, u32 lost, |
1059 | struct rate_sample *rs); | 1058 | bool is_sack_reneg, struct rate_sample *rs); |
1060 | void tcp_rate_check_app_limited(struct sock *sk); | 1059 | void tcp_rate_check_app_limited(struct sock *sk); |
1061 | 1060 | ||
1062 | /* These functions determine how the current flow behaves in respect of SACK | 1061 | /* These functions determine how the current flow behaves in respect of SACK |
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index 0f9cbf96c093..6df6fe0c2198 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h | |||
@@ -159,11 +159,11 @@ struct expander_device { | |||
159 | 159 | ||
160 | struct sata_device { | 160 | struct sata_device { |
161 | unsigned int class; | 161 | unsigned int class; |
162 | struct smp_resp rps_resp; /* report_phy_sata_resp */ | ||
163 | u8 port_no; /* port number, if this is a PM (Port) */ | 162 | u8 port_no; /* port number, if this is a PM (Port) */ |
164 | 163 | ||
165 | struct ata_port *ap; | 164 | struct ata_port *ap; |
166 | struct ata_host ata_host; | 165 | struct ata_host ata_host; |
166 | struct smp_resp rps_resp ____cacheline_aligned; /* report_phy_sata_resp */ | ||
167 | u8 fis[ATA_RESP_FIS_SIZE]; | 167 | u8 fis[ATA_RESP_FIS_SIZE]; |
168 | }; | 168 | }; |
169 | 169 | ||
diff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index ebe96796027a..36cb50c111a6 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h | |||
@@ -49,6 +49,7 @@ enum rxrpc_conn_trace { | |||
49 | rxrpc_conn_put_client, | 49 | rxrpc_conn_put_client, |
50 | rxrpc_conn_put_service, | 50 | rxrpc_conn_put_service, |
51 | rxrpc_conn_queued, | 51 | rxrpc_conn_queued, |
52 | rxrpc_conn_reap_service, | ||
52 | rxrpc_conn_seen, | 53 | rxrpc_conn_seen, |
53 | }; | 54 | }; |
54 | 55 | ||
@@ -138,10 +139,24 @@ enum rxrpc_rtt_rx_trace { | |||
138 | 139 | ||
139 | enum rxrpc_timer_trace { | 140 | enum rxrpc_timer_trace { |
140 | rxrpc_timer_begin, | 141 | rxrpc_timer_begin, |
142 | rxrpc_timer_exp_ack, | ||
143 | rxrpc_timer_exp_hard, | ||
144 | rxrpc_timer_exp_idle, | ||
145 | rxrpc_timer_exp_keepalive, | ||
146 | rxrpc_timer_exp_lost_ack, | ||
147 | rxrpc_timer_exp_normal, | ||
148 | rxrpc_timer_exp_ping, | ||
149 | rxrpc_timer_exp_resend, | ||
141 | rxrpc_timer_expired, | 150 | rxrpc_timer_expired, |
142 | rxrpc_timer_init_for_reply, | 151 | rxrpc_timer_init_for_reply, |
143 | rxrpc_timer_init_for_send_reply, | 152 | rxrpc_timer_init_for_send_reply, |
153 | rxrpc_timer_restart, | ||
144 | rxrpc_timer_set_for_ack, | 154 | rxrpc_timer_set_for_ack, |
155 | rxrpc_timer_set_for_hard, | ||
156 | rxrpc_timer_set_for_idle, | ||
157 | rxrpc_timer_set_for_keepalive, | ||
158 | rxrpc_timer_set_for_lost_ack, | ||
159 | rxrpc_timer_set_for_normal, | ||
145 | rxrpc_timer_set_for_ping, | 160 | rxrpc_timer_set_for_ping, |
146 | rxrpc_timer_set_for_resend, | 161 | rxrpc_timer_set_for_resend, |
147 | rxrpc_timer_set_for_send, | 162 | rxrpc_timer_set_for_send, |
@@ -150,6 +165,7 @@ enum rxrpc_timer_trace { | |||
150 | enum rxrpc_propose_ack_trace { | 165 | enum rxrpc_propose_ack_trace { |
151 | rxrpc_propose_ack_client_tx_end, | 166 | rxrpc_propose_ack_client_tx_end, |
152 | rxrpc_propose_ack_input_data, | 167 | rxrpc_propose_ack_input_data, |
168 | rxrpc_propose_ack_ping_for_keepalive, | ||
153 | rxrpc_propose_ack_ping_for_lost_ack, | 169 | rxrpc_propose_ack_ping_for_lost_ack, |
154 | rxrpc_propose_ack_ping_for_lost_reply, | 170 | rxrpc_propose_ack_ping_for_lost_reply, |
155 | rxrpc_propose_ack_ping_for_params, | 171 | rxrpc_propose_ack_ping_for_params, |
@@ -206,6 +222,7 @@ enum rxrpc_congest_change { | |||
206 | EM(rxrpc_conn_put_client, "PTc") \ | 222 | EM(rxrpc_conn_put_client, "PTc") \ |
207 | EM(rxrpc_conn_put_service, "PTs") \ | 223 | EM(rxrpc_conn_put_service, "PTs") \ |
208 | EM(rxrpc_conn_queued, "QUE") \ | 224 | EM(rxrpc_conn_queued, "QUE") \ |
225 | EM(rxrpc_conn_reap_service, "RPs") \ | ||
209 | E_(rxrpc_conn_seen, "SEE") | 226 | E_(rxrpc_conn_seen, "SEE") |
210 | 227 | ||
211 | #define rxrpc_client_traces \ | 228 | #define rxrpc_client_traces \ |
@@ -296,16 +313,31 @@ enum rxrpc_congest_change { | |||
296 | #define rxrpc_timer_traces \ | 313 | #define rxrpc_timer_traces \ |
297 | EM(rxrpc_timer_begin, "Begin ") \ | 314 | EM(rxrpc_timer_begin, "Begin ") \ |
298 | EM(rxrpc_timer_expired, "*EXPR*") \ | 315 | EM(rxrpc_timer_expired, "*EXPR*") \ |
316 | EM(rxrpc_timer_exp_ack, "ExpAck") \ | ||
317 | EM(rxrpc_timer_exp_hard, "ExpHrd") \ | ||
318 | EM(rxrpc_timer_exp_idle, "ExpIdl") \ | ||
319 | EM(rxrpc_timer_exp_keepalive, "ExpKA ") \ | ||
320 | EM(rxrpc_timer_exp_lost_ack, "ExpLoA") \ | ||
321 | EM(rxrpc_timer_exp_normal, "ExpNml") \ | ||
322 | EM(rxrpc_timer_exp_ping, "ExpPng") \ | ||
323 | EM(rxrpc_timer_exp_resend, "ExpRsn") \ | ||
299 | EM(rxrpc_timer_init_for_reply, "IniRpl") \ | 324 | EM(rxrpc_timer_init_for_reply, "IniRpl") \ |
300 | EM(rxrpc_timer_init_for_send_reply, "SndRpl") \ | 325 | EM(rxrpc_timer_init_for_send_reply, "SndRpl") \ |
326 | EM(rxrpc_timer_restart, "Restrt") \ | ||
301 | EM(rxrpc_timer_set_for_ack, "SetAck") \ | 327 | EM(rxrpc_timer_set_for_ack, "SetAck") \ |
328 | EM(rxrpc_timer_set_for_hard, "SetHrd") \ | ||
329 | EM(rxrpc_timer_set_for_idle, "SetIdl") \ | ||
330 | EM(rxrpc_timer_set_for_keepalive, "KeepAl") \ | ||
331 | EM(rxrpc_timer_set_for_lost_ack, "SetLoA") \ | ||
332 | EM(rxrpc_timer_set_for_normal, "SetNml") \ | ||
302 | EM(rxrpc_timer_set_for_ping, "SetPng") \ | 333 | EM(rxrpc_timer_set_for_ping, "SetPng") \ |
303 | EM(rxrpc_timer_set_for_resend, "SetRTx") \ | 334 | EM(rxrpc_timer_set_for_resend, "SetRTx") \ |
304 | E_(rxrpc_timer_set_for_send, "SetTx ") | 335 | E_(rxrpc_timer_set_for_send, "SetSnd") |
305 | 336 | ||
306 | #define rxrpc_propose_ack_traces \ | 337 | #define rxrpc_propose_ack_traces \ |
307 | EM(rxrpc_propose_ack_client_tx_end, "ClTxEnd") \ | 338 | EM(rxrpc_propose_ack_client_tx_end, "ClTxEnd") \ |
308 | EM(rxrpc_propose_ack_input_data, "DataIn ") \ | 339 | EM(rxrpc_propose_ack_input_data, "DataIn ") \ |
340 | EM(rxrpc_propose_ack_ping_for_keepalive, "KeepAlv") \ | ||
309 | EM(rxrpc_propose_ack_ping_for_lost_ack, "LostAck") \ | 341 | EM(rxrpc_propose_ack_ping_for_lost_ack, "LostAck") \ |
310 | EM(rxrpc_propose_ack_ping_for_lost_reply, "LostRpl") \ | 342 | EM(rxrpc_propose_ack_ping_for_lost_reply, "LostRpl") \ |
311 | EM(rxrpc_propose_ack_ping_for_params, "Params ") \ | 343 | EM(rxrpc_propose_ack_ping_for_params, "Params ") \ |
@@ -932,39 +964,47 @@ TRACE_EVENT(rxrpc_rtt_rx, | |||
932 | 964 | ||
933 | TRACE_EVENT(rxrpc_timer, | 965 | TRACE_EVENT(rxrpc_timer, |
934 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_timer_trace why, | 966 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_timer_trace why, |
935 | ktime_t now, unsigned long now_j), | 967 | unsigned long now), |
936 | 968 | ||
937 | TP_ARGS(call, why, now, now_j), | 969 | TP_ARGS(call, why, now), |
938 | 970 | ||
939 | TP_STRUCT__entry( | 971 | TP_STRUCT__entry( |
940 | __field(struct rxrpc_call *, call ) | 972 | __field(struct rxrpc_call *, call ) |
941 | __field(enum rxrpc_timer_trace, why ) | 973 | __field(enum rxrpc_timer_trace, why ) |
942 | __field_struct(ktime_t, now ) | 974 | __field(long, now ) |
943 | __field_struct(ktime_t, expire_at ) | 975 | __field(long, ack_at ) |
944 | __field_struct(ktime_t, ack_at ) | 976 | __field(long, ack_lost_at ) |
945 | __field_struct(ktime_t, resend_at ) | 977 | __field(long, resend_at ) |
946 | __field(unsigned long, now_j ) | 978 | __field(long, ping_at ) |
947 | __field(unsigned long, timer ) | 979 | __field(long, expect_rx_by ) |
980 | __field(long, expect_req_by ) | ||
981 | __field(long, expect_term_by ) | ||
982 | __field(long, timer ) | ||
948 | ), | 983 | ), |
949 | 984 | ||
950 | TP_fast_assign( | 985 | TP_fast_assign( |
951 | __entry->call = call; | 986 | __entry->call = call; |
952 | __entry->why = why; | 987 | __entry->why = why; |
953 | __entry->now = now; | 988 | __entry->now = now; |
954 | __entry->expire_at = call->expire_at; | 989 | __entry->ack_at = call->ack_at; |
955 | __entry->ack_at = call->ack_at; | 990 | __entry->ack_lost_at = call->ack_lost_at; |
956 | __entry->resend_at = call->resend_at; | 991 | __entry->resend_at = call->resend_at; |
957 | __entry->now_j = now_j; | 992 | __entry->expect_rx_by = call->expect_rx_by; |
958 | __entry->timer = call->timer.expires; | 993 | __entry->expect_req_by = call->expect_req_by; |
994 | __entry->expect_term_by = call->expect_term_by; | ||
995 | __entry->timer = call->timer.expires; | ||
959 | ), | 996 | ), |
960 | 997 | ||
961 | TP_printk("c=%p %s x=%lld a=%lld r=%lld t=%ld", | 998 | TP_printk("c=%p %s a=%ld la=%ld r=%ld xr=%ld xq=%ld xt=%ld t=%ld", |
962 | __entry->call, | 999 | __entry->call, |
963 | __print_symbolic(__entry->why, rxrpc_timer_traces), | 1000 | __print_symbolic(__entry->why, rxrpc_timer_traces), |
964 | ktime_to_ns(ktime_sub(__entry->expire_at, __entry->now)), | 1001 | __entry->ack_at - __entry->now, |
965 | ktime_to_ns(ktime_sub(__entry->ack_at, __entry->now)), | 1002 | __entry->ack_lost_at - __entry->now, |
966 | ktime_to_ns(ktime_sub(__entry->resend_at, __entry->now)), | 1003 | __entry->resend_at - __entry->now, |
967 | __entry->timer - __entry->now_j) | 1004 | __entry->expect_rx_by - __entry->now, |
1005 | __entry->expect_req_by - __entry->now, | ||
1006 | __entry->expect_term_by - __entry->now, | ||
1007 | __entry->timer - __entry->now) | ||
968 | ); | 1008 | ); |
969 | 1009 | ||
970 | TRACE_EVENT(rxrpc_rx_lose, | 1010 | TRACE_EVENT(rxrpc_rx_lose, |
@@ -1080,7 +1120,7 @@ TRACE_EVENT(rxrpc_congest, | |||
1080 | memcpy(&__entry->sum, summary, sizeof(__entry->sum)); | 1120 | memcpy(&__entry->sum, summary, sizeof(__entry->sum)); |
1081 | ), | 1121 | ), |
1082 | 1122 | ||
1083 | TP_printk("c=%p %08x %s %08x %s cw=%u ss=%u nr=%u,%u nw=%u,%u r=%u b=%u u=%u d=%u l=%x%s%s%s", | 1123 | TP_printk("c=%p r=%08x %s q=%08x %s cw=%u ss=%u nr=%u,%u nw=%u,%u r=%u b=%u u=%u d=%u l=%x%s%s%s", |
1084 | __entry->call, | 1124 | __entry->call, |
1085 | __entry->ack_serial, | 1125 | __entry->ack_serial, |
1086 | __print_symbolic(__entry->sum.ack_reason, rxrpc_ack_names), | 1126 | __print_symbolic(__entry->sum.ack_reason, rxrpc_ack_names), |
diff --git a/include/trace/events/xdp.h b/include/trace/events/xdp.h index 4cd0f05d0113..8989a92c571a 100644 --- a/include/trace/events/xdp.h +++ b/include/trace/events/xdp.h | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/netdevice.h> | 8 | #include <linux/netdevice.h> |
9 | #include <linux/filter.h> | 9 | #include <linux/filter.h> |
10 | #include <linux/tracepoint.h> | 10 | #include <linux/tracepoint.h> |
11 | #include <linux/bpf.h> | ||
11 | 12 | ||
12 | #define __XDP_ACT_MAP(FN) \ | 13 | #define __XDP_ACT_MAP(FN) \ |
13 | FN(ABORTED) \ | 14 | FN(ABORTED) \ |
diff --git a/include/uapi/asm-generic/bpf_perf_event.h b/include/uapi/asm-generic/bpf_perf_event.h new file mode 100644 index 000000000000..53815d2cd047 --- /dev/null +++ b/include/uapi/asm-generic/bpf_perf_event.h | |||
@@ -0,0 +1,9 @@ | |||
1 | #ifndef _UAPI__ASM_GENERIC_BPF_PERF_EVENT_H__ | ||
2 | #define _UAPI__ASM_GENERIC_BPF_PERF_EVENT_H__ | ||
3 | |||
4 | #include <linux/ptrace.h> | ||
5 | |||
6 | /* Export kernel pt_regs structure */ | ||
7 | typedef struct pt_regs bpf_user_pt_regs_t; | ||
8 | |||
9 | #endif /* _UAPI__ASM_GENERIC_BPF_PERF_EVENT_H__ */ | ||
diff --git a/include/uapi/linux/bcache.h b/include/uapi/linux/bcache.h index 90fc490f973f..821f71a2e48f 100644 --- a/include/uapi/linux/bcache.h +++ b/include/uapi/linux/bcache.h | |||
@@ -91,7 +91,7 @@ PTR_FIELD(PTR_GEN, 0, 8) | |||
91 | 91 | ||
92 | #define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1) | 92 | #define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1) |
93 | 93 | ||
94 | #define PTR(gen, offset, dev) \ | 94 | #define MAKE_PTR(gen, offset, dev) \ |
95 | ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen) | 95 | ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen) |
96 | 96 | ||
97 | /* Bkey utility code */ | 97 | /* Bkey utility code */ |
diff --git a/include/uapi/linux/bfs_fs.h b/include/uapi/linux/bfs_fs.h index 73445ef07dda..940b04772af8 100644 --- a/include/uapi/linux/bfs_fs.h +++ b/include/uapi/linux/bfs_fs.h | |||
@@ -76,7 +76,7 @@ struct bfs_super_block { | |||
76 | #define BFS_FILEBLOCKS(ip) \ | 76 | #define BFS_FILEBLOCKS(ip) \ |
77 | ((ip)->i_sblock == 0 ? 0 : (le32_to_cpu((ip)->i_eblock) + 1) - le32_to_cpu((ip)->i_sblock)) | 77 | ((ip)->i_sblock == 0 ? 0 : (le32_to_cpu((ip)->i_eblock) + 1) - le32_to_cpu((ip)->i_sblock)) |
78 | #define BFS_UNCLEAN(bfs_sb, sb) \ | 78 | #define BFS_UNCLEAN(bfs_sb, sb) \ |
79 | ((le32_to_cpu(bfs_sb->s_from) != -1) && (le32_to_cpu(bfs_sb->s_to) != -1) && !(sb->s_flags & MS_RDONLY)) | 79 | ((le32_to_cpu(bfs_sb->s_from) != -1) && (le32_to_cpu(bfs_sb->s_to) != -1) && !(sb->s_flags & SB_RDONLY)) |
80 | 80 | ||
81 | 81 | ||
82 | #endif /* _LINUX_BFS_FS_H */ | 82 | #endif /* _LINUX_BFS_FS_H */ |
diff --git a/include/uapi/linux/bpf_perf_event.h b/include/uapi/linux/bpf_perf_event.h index af549d4ecf1b..8f95303f9d80 100644 --- a/include/uapi/linux/bpf_perf_event.h +++ b/include/uapi/linux/bpf_perf_event.h | |||
@@ -8,11 +8,10 @@ | |||
8 | #ifndef _UAPI__LINUX_BPF_PERF_EVENT_H__ | 8 | #ifndef _UAPI__LINUX_BPF_PERF_EVENT_H__ |
9 | #define _UAPI__LINUX_BPF_PERF_EVENT_H__ | 9 | #define _UAPI__LINUX_BPF_PERF_EVENT_H__ |
10 | 10 | ||
11 | #include <linux/types.h> | 11 | #include <asm/bpf_perf_event.h> |
12 | #include <linux/ptrace.h> | ||
13 | 12 | ||
14 | struct bpf_perf_event_data { | 13 | struct bpf_perf_event_data { |
15 | struct pt_regs regs; | 14 | bpf_user_pt_regs_t regs; |
16 | __u64 sample_period; | 15 | __u64 sample_period; |
17 | }; | 16 | }; |
18 | 17 | ||
diff --git a/include/uapi/linux/kfd_ioctl.h b/include/uapi/linux/kfd_ioctl.h index 731d0df722e3..6e80501368ae 100644 --- a/include/uapi/linux/kfd_ioctl.h +++ b/include/uapi/linux/kfd_ioctl.h | |||
@@ -233,29 +233,29 @@ struct kfd_ioctl_wait_events_args { | |||
233 | }; | 233 | }; |
234 | 234 | ||
235 | struct kfd_ioctl_set_scratch_backing_va_args { | 235 | struct kfd_ioctl_set_scratch_backing_va_args { |
236 | uint64_t va_addr; /* to KFD */ | 236 | __u64 va_addr; /* to KFD */ |
237 | uint32_t gpu_id; /* to KFD */ | 237 | __u32 gpu_id; /* to KFD */ |
238 | uint32_t pad; | 238 | __u32 pad; |
239 | }; | 239 | }; |
240 | 240 | ||
241 | struct kfd_ioctl_get_tile_config_args { | 241 | struct kfd_ioctl_get_tile_config_args { |
242 | /* to KFD: pointer to tile array */ | 242 | /* to KFD: pointer to tile array */ |
243 | uint64_t tile_config_ptr; | 243 | __u64 tile_config_ptr; |
244 | /* to KFD: pointer to macro tile array */ | 244 | /* to KFD: pointer to macro tile array */ |
245 | uint64_t macro_tile_config_ptr; | 245 | __u64 macro_tile_config_ptr; |
246 | /* to KFD: array size allocated by user mode | 246 | /* to KFD: array size allocated by user mode |
247 | * from KFD: array size filled by kernel | 247 | * from KFD: array size filled by kernel |
248 | */ | 248 | */ |
249 | uint32_t num_tile_configs; | 249 | __u32 num_tile_configs; |
250 | /* to KFD: array size allocated by user mode | 250 | /* to KFD: array size allocated by user mode |
251 | * from KFD: array size filled by kernel | 251 | * from KFD: array size filled by kernel |
252 | */ | 252 | */ |
253 | uint32_t num_macro_tile_configs; | 253 | __u32 num_macro_tile_configs; |
254 | 254 | ||
255 | uint32_t gpu_id; /* to KFD */ | 255 | __u32 gpu_id; /* to KFD */ |
256 | uint32_t gb_addr_config; /* from KFD */ | 256 | __u32 gb_addr_config; /* from KFD */ |
257 | uint32_t num_banks; /* from KFD */ | 257 | __u32 num_banks; /* from KFD */ |
258 | uint32_t num_ranks; /* from KFD */ | 258 | __u32 num_ranks; /* from KFD */ |
259 | /* struct size can be extended later if needed | 259 | /* struct size can be extended later if needed |
260 | * without breaking ABI compatibility | 260 | * without breaking ABI compatibility |
261 | */ | 261 | */ |
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 282d7613fce8..496e59a2738b 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
@@ -630,9 +630,9 @@ struct kvm_s390_irq { | |||
630 | 630 | ||
631 | struct kvm_s390_irq_state { | 631 | struct kvm_s390_irq_state { |
632 | __u64 buf; | 632 | __u64 buf; |
633 | __u32 flags; | 633 | __u32 flags; /* will stay unused for compatibility reasons */ |
634 | __u32 len; | 634 | __u32 len; |
635 | __u32 reserved[4]; | 635 | __u32 reserved[4]; /* will stay unused for compatibility reasons */ |
636 | }; | 636 | }; |
637 | 637 | ||
638 | /* for KVM_SET_GUEST_DEBUG */ | 638 | /* for KVM_SET_GUEST_DEBUG */ |
diff --git a/include/uapi/linux/rxrpc.h b/include/uapi/linux/rxrpc.h index 9d4afea308a4..9335d92c14a4 100644 --- a/include/uapi/linux/rxrpc.h +++ b/include/uapi/linux/rxrpc.h | |||
@@ -59,6 +59,7 @@ enum rxrpc_cmsg_type { | |||
59 | RXRPC_EXCLUSIVE_CALL = 10, /* s-: Call should be on exclusive connection */ | 59 | RXRPC_EXCLUSIVE_CALL = 10, /* s-: Call should be on exclusive connection */ |
60 | RXRPC_UPGRADE_SERVICE = 11, /* s-: Request service upgrade for client call */ | 60 | RXRPC_UPGRADE_SERVICE = 11, /* s-: Request service upgrade for client call */ |
61 | RXRPC_TX_LENGTH = 12, /* s-: Total length of Tx data */ | 61 | RXRPC_TX_LENGTH = 12, /* s-: Total length of Tx data */ |
62 | RXRPC_SET_CALL_TIMEOUT = 13, /* s-: Set one or more call timeouts */ | ||
62 | RXRPC__SUPPORTED | 63 | RXRPC__SUPPORTED |
63 | }; | 64 | }; |
64 | 65 | ||
diff --git a/include/uapi/linux/usb/ch9.h b/include/uapi/linux/usb/ch9.h index 41a0a81b01e6..c4c79aa331bd 100644 --- a/include/uapi/linux/usb/ch9.h +++ b/include/uapi/linux/usb/ch9.h | |||
@@ -880,6 +880,8 @@ struct usb_wireless_cap_descriptor { /* Ultra Wide Band */ | |||
880 | __u8 bReserved; | 880 | __u8 bReserved; |
881 | } __attribute__((packed)); | 881 | } __attribute__((packed)); |
882 | 882 | ||
883 | #define USB_DT_USB_WIRELESS_CAP_SIZE 11 | ||
884 | |||
883 | /* USB 2.0 Extension descriptor */ | 885 | /* USB 2.0 Extension descriptor */ |
884 | #define USB_CAP_TYPE_EXT 2 | 886 | #define USB_CAP_TYPE_EXT 2 |
885 | 887 | ||
@@ -1072,6 +1074,7 @@ struct usb_ptm_cap_descriptor { | |||
1072 | __u8 bDevCapabilityType; | 1074 | __u8 bDevCapabilityType; |
1073 | } __attribute__((packed)); | 1075 | } __attribute__((packed)); |
1074 | 1076 | ||
1077 | #define USB_DT_USB_PTM_ID_SIZE 3 | ||
1075 | /* | 1078 | /* |
1076 | * The size of the descriptor for the Sublink Speed Attribute Count | 1079 | * The size of the descriptor for the Sublink Speed Attribute Count |
1077 | * (SSAC) specified in bmAttributes[4:0]. | 1080 | * (SSAC) specified in bmAttributes[4:0]. |
diff --git a/include/uapi/linux/vm_sockets_diag.h b/include/uapi/linux/vm_sockets_diag.h index 14cd7dc5a187..0b4dd54f3d1e 100644 --- a/include/uapi/linux/vm_sockets_diag.h +++ b/include/uapi/linux/vm_sockets_diag.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
1 | /* AF_VSOCK sock_diag(7) interface for querying open sockets */ | 2 | /* AF_VSOCK sock_diag(7) interface for querying open sockets */ |
2 | 3 | ||
3 | #ifndef _UAPI__VM_SOCKETS_DIAG_H__ | 4 | #ifndef _UAPI__VM_SOCKETS_DIAG_H__ |