We need the usb/thunderbolt fixes in here as well.
Showing the changes to include (14 of 412 files). Show all
Unified · Split
| @@ -612,9 +612,11 @@ static inline void ttm_bo_pin(struct ttm_buffer_object *bo) · 611 unmodified lines | |||
| 612 | static inline void ttm_bo_unpin(struct ttm_buffer_object *bo) | 612 | static inline void ttm_bo_unpin(struct ttm_buffer_object *bo) |
| 613 | { | 613 | { |
| 614 | dma_resv_assert_held(bo->base.resv); | 614 | dma_resv_assert_held(bo->base.resv); |
| 615 | WARN_ON_ONCE(!bo->pin_count); | ||
| 616 | WARN_ON_ONCE(!kref_read(&bo->kref)); | 615 | WARN_ON_ONCE(!kref_read(&bo->kref)); |
| 617 | --bo->pin_count; | 616 | if (bo->pin_count) |
| 617 | --bo->pin_count; | ||
| 618 | else | ||
| 619 | WARN_ON_ONCE(true); | ||
| 618 | } | 620 | } |
| 619 | 621 | ||
| 620 | int ttm_mem_evict_first(struct ttm_bo_device *bdev, | 622 | int ttm_mem_evict_first(struct ttm_bo_device *bdev, |
| @@ -105,8 +105,19 @@ extern struct bus_type amba_bustype; · 104 unmodified lines | |||
| 105 | #define amba_get_drvdata(d) dev_get_drvdata(&d->dev) | 105 | #define amba_get_drvdata(d) dev_get_drvdata(&d->dev) |
| 106 | #define amba_set_drvdata(d,p) dev_set_drvdata(&d->dev, p) | 106 | #define amba_set_drvdata(d,p) dev_set_drvdata(&d->dev, p) |
| 107 | 107 | ||
| 108 | #ifdef CONFIG_ARM_AMBA | ||
| 108 | int amba_driver_register(struct amba_driver *); | 109 | int amba_driver_register(struct amba_driver *); |
| 109 | void amba_driver_unregister(struct amba_driver *); | 110 | void amba_driver_unregister(struct amba_driver *); |
| 111 | #else | ||
| 112 | static inline int amba_driver_register(struct amba_driver *drv) | ||
| 113 | { | ||
| 114 | return -EINVAL; | ||
| 115 | } | ||
| 116 | static inline void amba_driver_unregister(struct amba_driver *drv) | ||
| 117 | { | ||
| 118 | } | ||
| 119 | #endif | ||
| 120 | |||
| 110 | struct amba_device *amba_device_alloc(const char *, resource_size_t, size_t); | 121 | struct amba_device *amba_device_alloc(const char *, resource_size_t, size_t); |
| 111 | void amba_device_put(struct amba_device *); | 122 | void amba_device_put(struct amba_device *); |
| 112 | int amba_device_add(struct amba_device *, struct resource *); | 123 | int amba_device_add(struct amba_device *, struct resource *); |
| @@ -72,8 +72,10 @@ typedef void *efi_handle_t; · 71 unmodified lines | |||
| 72 | */ | 72 | */ |
| 73 | typedef guid_t efi_guid_t __aligned(__alignof__(u32)); | 73 | typedef guid_t efi_guid_t __aligned(__alignof__(u32)); |
| 74 | 74 | ||
| 75 | #define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \ | 75 | #define EFI_GUID(a, b, c, d...) (efi_guid_t){ { \ |
| 76 | GUID_INIT(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) | 76 | (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ |
| 77 | (b) & 0xff, ((b) >> 8) & 0xff, \ | ||
| 78 | (c) & 0xff, ((c) >> 8) & 0xff, d } } | ||
| 77 | 79 | ||
| 78 | /* | 80 | /* |
| 79 | * Generic EFI table header | 81 | * Generic EFI table header |
| @@ -5,31 +5,6 @@ · 4 unmodified lines | |||
| 5 | #include <linux/sched.h> | 5 | #include <linux/sched.h> |
| 6 | #include <linux/xarray.h> | 6 | #include <linux/xarray.h> |
| 7 | 7 | ||
| 8 | struct io_wq_work_node { | ||
| 9 | struct io_wq_work_node *next; | ||
| 10 | }; | ||
| 11 | |||
| 12 | struct io_wq_work_list { | ||
| 13 | struct io_wq_work_node *first; | ||
| 14 | struct io_wq_work_node *last; | ||
| 15 | }; | ||
| 16 | |||
| 17 | struct io_uring_task { | ||
| 18 | /* submission side */ | ||
| 19 | struct xarray xa; | ||
| 20 | struct wait_queue_head wait; | ||
| 21 | void *last; | ||
| 22 | void *io_wq; | ||
| 23 | struct percpu_counter inflight; | ||
| 24 | atomic_t in_idle; | ||
| 25 | bool sqpoll; | ||
| 26 | |||
| 27 | spinlock_t task_lock; | ||
| 28 | struct io_wq_work_list task_list; | ||
| 29 | unsigned long task_state; | ||
| 30 | struct callback_head task_work; | ||
| 31 | }; | ||
| 32 | |||
| 33 | #if defined(CONFIG_IO_URING) | 8 | #if defined(CONFIG_IO_URING) |
| 34 | struct sock *io_uring_get_socket(struct file *file); | 9 | struct sock *io_uring_get_socket(struct file *file); |
| 35 | void __io_uring_task_cancel(void); | 10 | void __io_uring_task_cancel(void); |
| @@ -30,9 +30,6 @@ · 29 unmodified lines | |||
| 30 | #include <linux/percpu.h> | 30 | #include <linux/percpu.h> |
| 31 | #include <asm/module.h> | 31 | #include <asm/module.h> |
| 32 | 32 | ||
| 33 | /* Not Yet Implemented */ | ||
| 34 | #define MODULE_SUPPORTED_DEVICE(name) | ||
| 35 | |||
| 36 | #define MODULE_NAME_LEN MAX_PARAM_PREFIX_LEN | 33 | #define MODULE_NAME_LEN MAX_PARAM_PREFIX_LEN |
| 37 | 34 | ||
| 38 | struct modversion_info { | 35 | struct modversion_info { |
| @@ -23,6 +23,7 @@ enum timespec_type { · 22 unmodified lines | |||
| 23 | * System call restart block. | 23 | * System call restart block. |
| 24 | */ | 24 | */ |
| 25 | struct restart_block { | 25 | struct restart_block { |
| 26 | unsigned long arch_data; | ||
| 26 | long (*fn)(struct restart_block *); | 27 | long (*fn)(struct restart_block *); |
| 27 | union { | 28 | union { |
| 28 | /* For futex_wait and futex_wait_requeue_pi */ | 29 | /* For futex_wait and futex_wait_requeue_pi */ |
| @@ -104,7 +104,6 @@ struct svcxprt_rdma { · 103 unmodified lines | |||
| 104 | 104 | ||
| 105 | wait_queue_head_t sc_send_wait; /* SQ exhaustion waitlist */ | 105 | wait_queue_head_t sc_send_wait; /* SQ exhaustion waitlist */ |
| 106 | unsigned long sc_flags; | 106 | unsigned long sc_flags; |
| 107 | u32 sc_pending_recvs; | ||
| 108 | struct list_head sc_read_complete_q; | 107 | struct list_head sc_read_complete_q; |
| 109 | struct work_struct sc_work; | 108 | struct work_struct sc_work; |
| 110 | 109 | ||
| @@ -11,6 +11,7 @@ · 10 unmodified lines | |||
| 11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
| 12 | #include <linux/bug.h> | 12 | #include <linux/bug.h> |
| 13 | #include <linux/restart_block.h> | 13 | #include <linux/restart_block.h> |
| 14 | #include <linux/errno.h> | ||
| 14 | 15 | ||
| 15 | #ifdef CONFIG_THREAD_INFO_IN_TASK | 16 | #ifdef CONFIG_THREAD_INFO_IN_TASK |
| 16 | /* | 17 | /* |
| @@ -59,6 +60,18 @@ enum syscall_work_bit { · 42 unmodified lines | |||
| 59 | 60 | ||
| 60 | #ifdef __KERNEL__ | 61 | #ifdef __KERNEL__ |
| 61 | 62 | ||
| 63 | #ifndef arch_set_restart_data | ||
| 64 | #define arch_set_restart_data(restart) do { } while (0) | ||
| 65 | #endif | ||
| 66 | |||
| 67 | static inline long set_restart_fn(struct restart_block *restart, | ||
| 68 | long (*fn)(struct restart_block *)) | ||
| 69 | { | ||
| 70 | restart->fn = fn; | ||
| 71 | arch_set_restart_data(restart); | ||
| 72 | return -ERESTART_RESTARTBLOCK; | ||
| 73 | } | ||
| 74 | |||
| 62 | #ifndef THREAD_ALIGN | 75 | #ifndef THREAD_ALIGN |
| 63 | #define THREAD_ALIGN THREAD_SIZE | 76 | #define THREAD_ALIGN THREAD_SIZE |
| 64 | #endif | 77 | #endif |
| @@ -86,6 +86,8 @@ · 85 unmodified lines | |||
| 86 | /* lies about caching, so always sync */ \ | 86 | /* lies about caching, so always sync */ \ |
| 87 | US_FLAG(NO_SAME, 0x40000000) \ | 87 | US_FLAG(NO_SAME, 0x40000000) \ |
| 88 | /* Cannot handle WRITE_SAME */ \ | 88 | /* Cannot handle WRITE_SAME */ \ |
| 89 | US_FLAG(SENSE_AFTER_SYNC, 0x80000000) \ | ||
| 90 | /* Do REQUEST_SENSE after SYNCHRONIZE_CACHE */ \ | ||
| 89 | 91 | ||
| 90 | #define US_FLAG(name, value) US_FL_##name = value , | 92 | #define US_FLAG(name, value) US_FL_##name = value , |
| 91 | enum { US_DO_ALL_FLAGS }; | 93 | enum { US_DO_ALL_FLAGS }; |
| @@ -250,20 +250,20 @@ struct vdpa_config_ops { · 249 unmodified lines | |||
| 250 | 250 | ||
| 251 | struct vdpa_device *__vdpa_alloc_device(struct device *parent, | 251 | struct vdpa_device *__vdpa_alloc_device(struct device *parent, |
| 252 | const struct vdpa_config_ops *config, | 252 | const struct vdpa_config_ops *config, |
| 253 | int nvqs, size_t size, const char *name); | 253 | size_t size, const char *name); |
| 254 | 254 | ||
| 255 | #define vdpa_alloc_device(dev_struct, member, parent, config, nvqs, name) \ | 255 | #define vdpa_alloc_device(dev_struct, member, parent, config, name) \ |
| 256 | container_of(__vdpa_alloc_device( \ | 256 | container_of(__vdpa_alloc_device( \ |
| 257 | parent, config, nvqs, \ | 257 | parent, config, \ |
| 258 | sizeof(dev_struct) + \ | 258 | sizeof(dev_struct) + \ |
| 259 | BUILD_BUG_ON_ZERO(offsetof( \ | 259 | BUILD_BUG_ON_ZERO(offsetof( \ |
| 260 | dev_struct, member)), name), \ | 260 | dev_struct, member)), name), \ |
| 261 | dev_struct, member) | 261 | dev_struct, member) |
| 262 | 262 | ||
| 263 | int vdpa_register_device(struct vdpa_device *vdev); | 263 | int vdpa_register_device(struct vdpa_device *vdev, int nvqs); |
| 264 | void vdpa_unregister_device(struct vdpa_device *vdev); | 264 | void vdpa_unregister_device(struct vdpa_device *vdev); |
| 265 | 265 | ||
| 266 | int _vdpa_register_device(struct vdpa_device *vdev); | 266 | int _vdpa_register_device(struct vdpa_device *vdev, int nvqs); |
| 267 | void _vdpa_unregister_device(struct vdpa_device *vdev); | 267 | void _vdpa_unregister_device(struct vdpa_device *vdev); |
| 268 | 268 | ||
| 269 | /** | 269 | /** |
| @@ -132,8 +132,6 @@ bool is_virtio_device(struct device *dev); · 131 unmodified lines | |||
| 132 | void virtio_break_device(struct virtio_device *dev); | 132 | void virtio_break_device(struct virtio_device *dev); |
| 133 | 133 | ||
| 134 | void virtio_config_changed(struct virtio_device *dev); | 134 | void virtio_config_changed(struct virtio_device *dev); |
| 135 | void virtio_config_disable(struct virtio_device *dev); | ||
| 136 | void virtio_config_enable(struct virtio_device *dev); | ||
| 137 | int virtio_finalize_features(struct virtio_device *dev); | 135 | int virtio_finalize_features(struct virtio_device *dev); |
| 138 | #ifdef CONFIG_PM_SLEEP | 136 | #ifdef CONFIG_PM_SLEEP |
| 139 | int virtio_device_freeze(struct virtio_device *dev); | 137 | int virtio_device_freeze(struct virtio_device *dev); |
| @@ -173,9 +173,10 @@ static inline void ww_acquire_done(struct ww_acquire_ctx *ctx) · 172 unmodified lines | |||
| 173 | */ | 173 | */ |
| 174 | static inline void ww_acquire_fini(struct ww_acquire_ctx *ctx) | 174 | static inline void ww_acquire_fini(struct ww_acquire_ctx *ctx) |
| 175 | { | 175 | { |
| 176 | #ifdef CONFIG_DEBUG_MUTEXES | 176 | #ifdef CONFIG_DEBUG_LOCK_ALLOC |
| 177 | mutex_release(&ctx->dep_map, _THIS_IP_); | 177 | mutex_release(&ctx->dep_map, _THIS_IP_); |
| 178 | 178 | #endif | |
| 179 | #ifdef CONFIG_DEBUG_MUTEXES | ||
| 179 | DEBUG_LOCKS_WARN_ON(ctx->acquired); | 180 | DEBUG_LOCKS_WARN_ON(ctx->acquired); |
| 180 | if (!IS_ENABLED(CONFIG_PROVE_LOCKING)) | 181 | if (!IS_ENABLED(CONFIG_PROVE_LOCKING)) |
| 181 | /* | 182 | /* |
| @@ -30,7 +30,7 @@ TRACE_EVENT(workqueue_queue_work, · 29 unmodified lines | |||
| 30 | TP_STRUCT__entry( | 30 | TP_STRUCT__entry( |
| 31 | __field( void *, work ) | 31 | __field( void *, work ) |
| 32 | __field( void *, function) | 32 | __field( void *, function) |
| 33 | __field( const char *, workqueue) | 33 | __string( workqueue, pwq->wq->name) |
| 34 | __field( unsigned int, req_cpu ) | 34 | __field( unsigned int, req_cpu ) |
| 35 | __field( unsigned int, cpu ) | 35 | __field( unsigned int, cpu ) |
| 36 | ), | 36 | ), |
| @@ -38,13 +38,13 @@ TRACE_EVENT(workqueue_queue_work, · 1 unmodified line | |||
| 38 | TP_fast_assign( | 38 | TP_fast_assign( |
| 39 | __entry->work = work; | 39 | __entry->work = work; |
| 40 | __entry->function = work->func; | 40 | __entry->function = work->func; |
| 41 | __entry->workqueue = pwq->wq->name; | 41 | __assign_str(workqueue, pwq->wq->name); |
| 42 | __entry->req_cpu = req_cpu; | 42 | __entry->req_cpu = req_cpu; |
| 43 | __entry->cpu = pwq->pool->cpu; | 43 | __entry->cpu = pwq->pool->cpu; |
| 44 | ), | 44 | ), |
| 45 | 45 | ||
| 46 | TP_printk("work struct=%p function=%ps workqueue=%s req_cpu=%u cpu=%u", | 46 | TP_printk("work struct=%p function=%ps workqueue=%s req_cpu=%u cpu=%u", |
| 47 | __entry->work, __entry->function, __entry->workqueue, | 47 | __entry->work, __entry->function, __get_str(workqueue), |
| 48 | __entry->req_cpu, __entry->cpu) | 48 | __entry->req_cpu, __entry->cpu) |
| 49 | ); | 49 | ); |
| 50 | 50 | ||
| @@ -903,7 +903,8 @@ struct fuse_notify_retrieve_in { · 902 unmodified lines | |||
| 903 | }; | 903 | }; |
| 904 | 904 | ||
| 905 | /* Device ioctls: */ | 905 | /* Device ioctls: */ |
| 906 | #define FUSE_DEV_IOC_CLONE _IOR(229, 0, uint32_t) | 906 | #define FUSE_DEV_IOC_MAGIC 229 |
| 907 | #define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t) | ||
| 907 | 908 | ||
| 908 | struct fuse_lseek_in { | 909 | struct fuse_lseek_in { |
| 909 | uint64_t fh; | 910 | uint64_t fh; |