diff options
Diffstat (limited to 'include')
50 files changed, 233 insertions, 157 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..38d9c5861ed8 100644 --- a/include/crypto/if_alg.h +++ b/include/crypto/if_alg.h | |||
| @@ -242,6 +242,7 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size, | |||
| 242 | unsigned int ivsize); | 242 | unsigned int ivsize); |
| 243 | ssize_t af_alg_sendpage(struct socket *sock, struct page *page, | 243 | ssize_t af_alg_sendpage(struct socket *sock, struct page *page, |
| 244 | int offset, size_t size, int flags); | 244 | int offset, size_t size, int flags); |
| 245 | void af_alg_free_resources(struct af_alg_async_req *areq); | ||
| 245 | void af_alg_async_cb(struct crypto_async_request *_req, int err); | 246 | void af_alg_async_cb(struct crypto_async_request *_req, int err); |
| 246 | unsigned int af_alg_poll(struct file *file, struct socket *sock, | 247 | unsigned int af_alg_poll(struct file *file, struct socket *sock, |
| 247 | poll_table *wait); | 248 | poll_table *wait); |
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__ |
