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 | 612 | static inline void ttm_bo_unpin(struct ttm_buffer_object *bo) |
| 613 | 613 | { |
| 614 | 614 | dma_resv_assert_held(bo->base.resv); |
| 615 | − WARN_ON_ONCE(!bo->pin_count); | |
| 616 | 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 | 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 | 105 | #define amba_get_drvdata(d) dev_get_drvdata(&d->dev) |
| 106 | 106 | #define amba_set_drvdata(d,p) dev_set_drvdata(&d->dev, p) |
| 107 | 107 | |
| 108 | +#ifdef CONFIG_ARM_AMBA | |
| 108 | 109 | int amba_driver_register(struct amba_driver *); |
| 109 | 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 | 121 | struct amba_device *amba_device_alloc(const char *, resource_size_t, size_t); |
| 111 | 122 | void amba_device_put(struct amba_device *); |
| 112 | 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 | 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) \ | |
| 76 | − GUID_INIT(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) | |
| 75 | +#define EFI_GUID(a, b, c, d...) (efi_guid_t){ { \ | |
| 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 | 81 | * Generic EFI table header |
| @@ -5,31 +5,6 @@ · 4 unmodified lines | ||
| 5 | 5 | #include <linux/sched.h> |
| 6 | 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 | 8 | #if defined(CONFIG_IO_URING) |
| 34 | 9 | struct sock *io_uring_get_socket(struct file *file); |
| 35 | 10 | void __io_uring_task_cancel(void); |
| @@ -30,9 +30,6 @@ · 29 unmodified lines | ||
| 30 | 30 | #include <linux/percpu.h> |
| 31 | 31 | #include <asm/module.h> |
| 32 | 32 | |
| 33 | −/* Not Yet Implemented */ | |
| 34 | −#define MODULE_SUPPORTED_DEVICE(name) | |
| 35 | − | |
| 36 | 33 | #define MODULE_NAME_LEN MAX_PARAM_PREFIX_LEN |
| 37 | 34 | |
| 38 | 35 | struct modversion_info { |
| @@ -23,6 +23,7 @@ enum timespec_type { · 22 unmodified lines | ||
| 23 | 23 | * System call restart block. |
| 24 | 24 | */ |
| 25 | 25 | struct restart_block { |
| 26 | + unsigned long arch_data; | |
| 26 | 27 | long (*fn)(struct restart_block *); |
| 27 | 28 | union { |
| 28 | 29 | /* For futex_wait and futex_wait_requeue_pi */ |
| @@ -104,7 +104,6 @@ struct svcxprt_rdma { · 103 unmodified lines | ||
| 104 | 104 | |
| 105 | 105 | wait_queue_head_t sc_send_wait; /* SQ exhaustion waitlist */ |
| 106 | 106 | unsigned long sc_flags; |
| 107 | − u32 sc_pending_recvs; | |
| 108 | 107 | struct list_head sc_read_complete_q; |
| 109 | 108 | struct work_struct sc_work; |
| 110 | 109 | |
| @@ -11,6 +11,7 @@ · 10 unmodified lines | ||
| 11 | 11 | #include <linux/types.h> |
| 12 | 12 | #include <linux/bug.h> |
| 13 | 13 | #include <linux/restart_block.h> |
| 14 | +#include <linux/errno.h> | |
| 14 | 15 | |
| 15 | 16 | #ifdef CONFIG_THREAD_INFO_IN_TASK |
| 16 | 17 | /* |
| @@ -59,6 +60,18 @@ enum syscall_work_bit { · 42 unmodified lines | ||
| 59 | 60 | |
| 60 | 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 | 75 | #ifndef THREAD_ALIGN |
| 63 | 76 | #define THREAD_ALIGN THREAD_SIZE |
| 64 | 77 | #endif |
| @@ -86,6 +86,8 @@ · 85 unmodified lines | ||
| 86 | 86 | /* lies about caching, so always sync */ \ |
| 87 | 87 | US_FLAG(NO_SAME, 0x40000000) \ |
| 88 | 88 | /* Cannot handle WRITE_SAME */ \ |
| 89 | + US_FLAG(SENSE_AFTER_SYNC, 0x80000000) \ | |
| 90 | + /* Do REQUEST_SENSE after SYNCHRONIZE_CACHE */ \ | |
| 89 | 91 | |
| 90 | 92 | #define US_FLAG(name, value) US_FL_##name = value , |
| 91 | 93 | enum { US_DO_ALL_FLAGS }; |
| @@ -250,20 +250,20 @@ struct vdpa_config_ops { · 249 unmodified lines | ||
| 250 | 250 | |
| 251 | 251 | struct vdpa_device *__vdpa_alloc_device(struct device *parent, |
| 252 | 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 | 256 | container_of(__vdpa_alloc_device( \ |
| 257 | − parent, config, nvqs, \ | |
| 257 | + parent, config, \ | |
| 258 | 258 | sizeof(dev_struct) + \ |
| 259 | 259 | BUILD_BUG_ON_ZERO(offsetof( \ |
| 260 | 260 | dev_struct, member)), name), \ |
| 261 | 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 | 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 | 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 | 132 | void virtio_break_device(struct virtio_device *dev); |
| 133 | 133 | |
| 134 | 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 | 135 | int virtio_finalize_features(struct virtio_device *dev); |
| 138 | 136 | #ifdef CONFIG_PM_SLEEP |
| 139 | 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 | 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 | 177 | mutex_release(&ctx->dep_map, _THIS_IP_); |
| 178 | − | |
| 178 | +#endif | |
| 179 | +#ifdef CONFIG_DEBUG_MUTEXES | |
| 179 | 180 | DEBUG_LOCKS_WARN_ON(ctx->acquired); |
| 180 | 181 | if (!IS_ENABLED(CONFIG_PROVE_LOCKING)) |
| 181 | 182 | /* |
| @@ -30,7 +30,7 @@ TRACE_EVENT(workqueue_queue_work, · 29 unmodified lines | ||
| 30 | 30 | TP_STRUCT__entry( |
| 31 | 31 | __field( void *, work ) |
| 32 | 32 | __field( void *, function) |
| 33 | − __field( const char *, workqueue) | |
| 33 | + __string( workqueue, pwq->wq->name) | |
| 34 | 34 | __field( unsigned int, req_cpu ) |
| 35 | 35 | __field( unsigned int, cpu ) |
| 36 | 36 | ), |
| @@ -38,13 +38,13 @@ TRACE_EVENT(workqueue_queue_work, · 1 unmodified line | ||
| 38 | 38 | TP_fast_assign( |
| 39 | 39 | __entry->work = work; |
| 40 | 40 | __entry->function = work->func; |
| 41 | − __entry->workqueue = pwq->wq->name; | |
| 41 | + __assign_str(workqueue, pwq->wq->name); | |
| 42 | 42 | __entry->req_cpu = req_cpu; |
| 43 | 43 | __entry->cpu = pwq->pool->cpu; |
| 44 | 44 | ), |
| 45 | 45 | |
| 46 | 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 | 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 | 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 | 909 | struct fuse_lseek_in { |
| 909 | 910 | uint64_t fh; |