We need the staging/iio fixes in here as well.
Showing the changes to include/linux (17 of 609 files). Show all
Unified · Split
| @@ -245,6 +245,7 @@ · 244 unmodified lines | ||
| 245 | 245 | #define BCM54810_EXP_BROADREACH_LRE_MISC_CTL_EN (1 << 0) |
| 246 | 246 | #define BCM54810_SHD_CLK_CTL 0x3 |
| 247 | 247 | #define BCM54810_SHD_CLK_CTL_GTXCLK_EN (1 << 9) |
| 248 | +#define BCM54810_SHD_SCR3_TRDDAPD 0x0100 | |
| 248 | 249 | |
| 249 | 250 | /* BCM54612E Registers */ |
| 250 | 251 | #define BCM54612E_EXP_SPARE0 (MII_BCM54XX_EXP_SEL_ETC + 0x34) |
| @@ -356,4 +356,10 @@ static inline void *offset_to_ptr(const int *off) · 355 unmodified lines | ||
| 356 | 356 | /* &a[0] degrades to a pointer: a different type from an array */ |
| 357 | 357 | #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) |
| 358 | 358 | |
| 359 | +/* | |
| 360 | + * This is needed in functions which generate the stack canary, see | |
| 361 | + * arch/x86/kernel/smpboot.c::start_secondary() for an example. | |
| 362 | + */ | |
| 363 | +#define prevent_tail_call_optimization() mb() | |
| 364 | + | |
| 359 | 365 | #endif /* __LINUX_COMPILER_H */ |
| @@ -521,6 +521,15 @@ struct cper_sec_pcie { · 520 unmodified lines | ||
| 521 | 521 | u8 aer_info[96]; |
| 522 | 522 | }; |
| 523 | 523 | |
| 524 | +/* Firmware Error Record Reference, UEFI v2.7 sec N.2.10 */ | |
| 525 | +struct cper_sec_fw_err_rec_ref { | |
| 526 | + u8 record_type; | |
| 527 | + u8 revision; | |
| 528 | + u8 reserved[6]; | |
| 529 | + u64 record_identifier; | |
| 530 | + guid_t record_identifier_guid; | |
| 531 | +}; | |
| 532 | + | |
| 524 | 533 | /* Reset to default packing */ |
| 525 | 534 | #pragma pack() |
| 526 | 535 | |
| @@ -1245,4 +1245,6 @@ struct linux_efi_memreserve { · 1244 unmodified lines | ||
| 1245 | 1245 | |
| 1246 | 1246 | void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size); |
| 1247 | 1247 | |
| 1248 | +char *efi_systab_show_arch(char *str); | |
| 1249 | + | |
| 1248 | 1250 | #endif /* _LINUX_EFI_H */ |
| @@ -210,6 +210,29 @@ struct ftrace_ops { · 209 unmodified lines | ||
| 210 | 210 | #endif |
| 211 | 211 | }; |
| 212 | 212 | |
| 213 | +extern struct ftrace_ops __rcu *ftrace_ops_list; | |
| 214 | +extern struct ftrace_ops ftrace_list_end; | |
| 215 | + | |
| 216 | +/* | |
| 217 | + * Traverse the ftrace_global_list, invoking all entries. The reason that we | |
| 218 | + * can use rcu_dereference_raw_check() is that elements removed from this list | |
| 219 | + * are simply leaked, so there is no need to interact with a grace-period | |
| 220 | + * mechanism. The rcu_dereference_raw_check() calls are needed to handle | |
| 221 | + * concurrent insertions into the ftrace_global_list. | |
| 222 | + * | |
| 223 | + * Silly Alpha and silly pointer-speculation compiler optimizations! | |
| 224 | + */ | |
| 225 | +#define do_for_each_ftrace_op(op, list) \ | |
| 226 | + op = rcu_dereference_raw_check(list); \ | |
| 227 | + do | |
| 228 | + | |
| 229 | +/* | |
| 230 | + * Optimized for just a single item in the list (as that is the normal case). | |
| 231 | + */ | |
| 232 | +#define while_for_each_ftrace_op(op) \ | |
| 233 | + while (likely(op = rcu_dereference_raw_check((op)->next)) && \ | |
| 234 | + unlikely((op) != &ftrace_list_end)) | |
| 235 | + | |
| 213 | 236 | /* |
| 214 | 237 | * Type of the current tracing. |
| 215 | 238 | */ |
| @@ -17,9 +17,12 @@ enum host1x_class { · 16 unmodified lines | ||
| 17 | 17 | HOST1X_CLASS_GR3D = 0x60, |
| 18 | 18 | }; |
| 19 | 19 | |
| 20 | +struct host1x; | |
| 20 | 21 | struct host1x_client; |
| 21 | 22 | struct iommu_group; |
| 22 | 23 | |
| 24 | +u64 host1x_get_dma_mask(struct host1x *host1x); | |
| 25 | + | |
| 23 | 26 | /** |
| 24 | 27 | * struct host1x_client_ops - host1x client operations |
| 25 | 28 | * @init: host1x client initialization code |
| @@ -29,7 +29,7 @@ struct i2c_mux_core { · 28 unmodified lines | ||
| 29 | 29 | |
| 30 | 30 | int num_adapters; |
| 31 | 31 | int max_adapters; |
| 32 | − struct i2c_adapter *adapter[0]; | |
| 32 | + struct i2c_adapter *adapter[]; | |
| 33 | 33 | }; |
| 34 | 34 | |
| 35 | 35 | struct i2c_mux_core *i2c_mux_alloc(struct i2c_adapter *parent, |
| @@ -2,7 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | /* |
| 3 | 3 | * i2c.h - definitions for the Linux i2c bus interface |
| 4 | 4 | * Copyright (C) 1995-2000 Simon G. Vogl |
| 5 | − * Copyright (C) 2013-2019 Wolfram Sang <wsa@the-dreams.de> | |
| 5 | + * Copyright (C) 2013-2019 Wolfram Sang <wsa@kernel.org> | |
| 6 | 6 | * |
| 7 | 7 | * With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and |
| 8 | 8 | * Frodo Looijaard <frodol@dds.nl> |
| @@ -813,8 +813,11 @@ void kvm_flush_remote_tlbs(struct kvm *kvm); · 812 unmodified lines | ||
| 813 | 813 | void kvm_reload_remote_mmus(struct kvm *kvm); |
| 814 | 814 | |
| 815 | 815 | bool kvm_make_vcpus_request_mask(struct kvm *kvm, unsigned int req, |
| 816 | + struct kvm_vcpu *except, | |
| 816 | 817 | unsigned long *vcpu_bitmap, cpumask_var_t tmp); |
| 817 | 818 | bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req); |
| 819 | +bool kvm_make_all_cpus_request_except(struct kvm *kvm, unsigned int req, | |
| 820 | + struct kvm_vcpu *except); | |
| 818 | 821 | bool kvm_make_cpus_request_mask(struct kvm *kvm, unsigned int req, |
| 819 | 822 | unsigned long *vcpu_bitmap); |
| 820 | 823 | |
| @@ -243,7 +243,7 @@ LSM_HOOK(int, -EINVAL, getprocattr, struct task_struct *p, char *name, · 242 unmodified lines | ||
| 243 | 243 | char **value) |
| 244 | 244 | LSM_HOOK(int, -EINVAL, setprocattr, const char *name, void *value, size_t size) |
| 245 | 245 | LSM_HOOK(int, 0, ismaclabel, const char *name) |
| 246 | −LSM_HOOK(int, 0, secid_to_secctx, u32 secid, char **secdata, | |
| 246 | +LSM_HOOK(int, -EOPNOTSUPP, secid_to_secctx, u32 secid, char **secdata, | |
| 247 | 247 | u32 *seclen) |
| 248 | 248 | LSM_HOOK(int, 0, secctx_to_secid, const char *secdata, u32 seclen, u32 *secid) |
| 249 | 249 | LSM_HOOK(void, LSM_RET_VOID, release_secctx, char *secdata, u32 seclen) |
| @@ -783,6 +783,8 @@ static inline void memcg_memory_event(struct mem_cgroup *memcg, · 782 unmodified lines | ||
| 783 | 783 | atomic_long_inc(&memcg->memory_events[event]); |
| 784 | 784 | cgroup_file_notify(&memcg->events_file); |
| 785 | 785 | |
| 786 | + if (!cgroup_subsys_on_dfl(memory_cgrp_subsys)) | |
| 787 | + break; | |
| 786 | 788 | if (cgrp_dfl_root.flags & CGRP_ROOT_MEMORY_LOCAL_EVENTS) |
| 787 | 789 | break; |
| 788 | 790 | } while ((memcg = parent_mem_cgroup(memcg)) && |
| @@ -213,6 +213,12 @@ enum mlx5_port_status { · 212 unmodified lines | ||
| 213 | 213 | MLX5_PORT_DOWN = 2, |
| 214 | 214 | }; |
| 215 | 215 | |
| 216 | +enum mlx5_cmdif_state { | |
| 217 | + MLX5_CMDIF_STATE_UNINITIALIZED, | |
| 218 | + MLX5_CMDIF_STATE_UP, | |
| 219 | + MLX5_CMDIF_STATE_DOWN, | |
| 220 | +}; | |
| 221 | + | |
| 216 | 222 | struct mlx5_cmd_first { |
| 217 | 223 | __be32 data[4]; |
| 218 | 224 | }; |
| @@ -258,6 +264,7 @@ struct mlx5_cmd_stats { · 39 unmodified lines | ||
| 258 | 264 | struct mlx5_cmd { |
| 259 | 265 | struct mlx5_nb nb; |
| 260 | 266 | |
| 267 | + enum mlx5_cmdif_state state; | |
| 261 | 268 | void *cmd_alloc_buf; |
| 262 | 269 | dma_addr_t alloc_dma; |
| 263 | 270 | int alloc_size; |
| @@ -284,6 +291,7 @@ struct mlx5_cmd { · 20 unmodified lines | ||
| 284 | 291 | struct semaphore sem; |
| 285 | 292 | struct semaphore pages_sem; |
| 286 | 293 | int mode; |
| 294 | + u16 allowed_opcode; | |
| 287 | 295 | struct mlx5_cmd_work_ent *ent_arr[MLX5_MAX_COMMANDS]; |
| 288 | 296 | struct dma_pool *pool; |
| 289 | 297 | struct mlx5_cmd_debug dbg; |
| @@ -743,6 +751,7 @@ struct mlx5_cmd_work_ent { · 453 unmodified lines | ||
| 743 | 751 | struct delayed_work cb_timeout_work; |
| 744 | 752 | void *context; |
| 745 | 753 | int idx; |
| 754 | + struct completion handling; | |
| 746 | 755 | struct completion done; |
| 747 | 756 | struct mlx5_cmd *cmd; |
| 748 | 757 | struct work_struct work; |
| @@ -874,10 +883,17 @@ mlx5_frag_buf_get_idx_last_contig_stride(struct mlx5_frag_buf_ctrl *fbc, u32 ix) · 125 unmodified lines | ||
| 874 | 883 | return min_t(u32, last_frag_stride_idx - fbc->strides_offset, fbc->sz_m1); |
| 875 | 884 | } |
| 876 | 885 | |
| 886 | +enum { | |
| 887 | + CMD_ALLOWED_OPCODE_ALL, | |
| 888 | +}; | |
| 889 | + | |
| 877 | 890 | int mlx5_cmd_init(struct mlx5_core_dev *dev); |
| 878 | 891 | void mlx5_cmd_cleanup(struct mlx5_core_dev *dev); |
| 892 | +void mlx5_cmd_set_state(struct mlx5_core_dev *dev, | |
| 893 | + enum mlx5_cmdif_state cmdif_state); | |
| 879 | 894 | void mlx5_cmd_use_events(struct mlx5_core_dev *dev); |
| 880 | 895 | void mlx5_cmd_use_polling(struct mlx5_core_dev *dev); |
| 896 | +void mlx5_cmd_allowed_opcode(struct mlx5_core_dev *dev, u16 opcode); | |
| 881 | 897 | |
| 882 | 898 | struct mlx5_async_ctx { |
| 883 | 899 | struct mlx5_core_dev *dev; |
| @@ -105,10 +105,10 @@ struct ptp_system_timestamp { · 104 unmodified lines | ||
| 105 | 105 | * parameter func: the desired function to use. |
| 106 | 106 | * parameter chan: the function channel index to use. |
| 107 | 107 | * |
| 108 | − * @do_work: Request driver to perform auxiliary (periodic) operations | |
| 109 | − * Driver should return delay of the next auxiliary work scheduling | |
| 110 | − * time (>=0) or negative value in case further scheduling | |
| 111 | − * is not required. | |
| 108 | + * @do_aux_work: Request driver to perform auxiliary (periodic) operations | |
| 109 | + * Driver should return delay of the next auxiliary work | |
| 110 | + * scheduling time (>=0) or negative value in case further | |
| 111 | + * scheduling is not required. | |
| 112 | 112 | * |
| 113 | 113 | * Drivers should embed their ptp_clock_info within a private |
| 114 | 114 | * structure, obtaining a reference to it using container_of(). |
| @@ -187,6 +187,7 @@ static inline void sk_msg_xfer(struct sk_msg *dst, struct sk_msg *src, · 186 unmodified lines | ||
| 187 | 187 | dst->sg.data[which] = src->sg.data[which]; |
| 188 | 188 | dst->sg.data[which].length = size; |
| 189 | 189 | dst->sg.size += size; |
| 190 | + src->sg.size -= size; | |
| 190 | 191 | src->sg.data[which].length -= size; |
| 191 | 192 | src->sg.data[which].offset += size; |
| 192 | 193 | } |
| @@ -21,6 +21,7 @@ · 20 unmodified lines | ||
| 21 | 21 | struct gss_ctx { |
| 22 | 22 | struct gss_api_mech *mech_type; |
| 23 | 23 | void *internal_ctx_id; |
| 24 | + unsigned int slack, align; | |
| 24 | 25 | }; |
| 25 | 26 | |
| 26 | 27 | #define GSS_C_NO_BUFFER ((struct xdr_netobj) 0) |
| @@ -66,6 +67,7 @@ u32 gss_wrap( · 39 unmodified lines | ||
| 66 | 67 | u32 gss_unwrap( |
| 67 | 68 | struct gss_ctx *ctx_id, |
| 68 | 69 | int offset, |
| 70 | + int len, | |
| 69 | 71 | struct xdr_buf *inbuf); |
| 70 | 72 | u32 gss_delete_sec_context( |
| 71 | 73 | struct gss_ctx **ctx_id); |
| @@ -126,6 +128,7 @@ struct gss_api_ops { · 54 unmodified lines | ||
| 126 | 128 | u32 (*gss_unwrap)( |
| 127 | 129 | struct gss_ctx *ctx_id, |
| 128 | 130 | int offset, |
| 131 | + int len, | |
| 129 | 132 | struct xdr_buf *buf); |
| 130 | 133 | void (*gss_delete_sec_context)( |
| 131 | 134 | void *internal_ctx_id); |
| @@ -83,7 +83,7 @@ struct gss_krb5_enctype { · 82 unmodified lines | ||
| 83 | 83 | u32 (*encrypt_v2) (struct krb5_ctx *kctx, u32 offset, |
| 84 | 84 | struct xdr_buf *buf, |
| 85 | 85 | struct page **pages); /* v2 encryption function */ |
| 86 | − u32 (*decrypt_v2) (struct krb5_ctx *kctx, u32 offset, | |
| 86 | + u32 (*decrypt_v2) (struct krb5_ctx *kctx, u32 offset, u32 len, | |
| 87 | 87 | struct xdr_buf *buf, u32 *headskip, |
| 88 | 88 | u32 *tailskip); /* v2 decryption function */ |
| 89 | 89 | }; |
| @@ -255,7 +255,7 @@ gss_wrap_kerberos(struct gss_ctx *ctx_id, int offset, · 165 unmodified lines | ||
| 255 | 255 | struct xdr_buf *outbuf, struct page **pages); |
| 256 | 256 | |
| 257 | 257 | u32 |
| 258 | −gss_unwrap_kerberos(struct gss_ctx *ctx_id, int offset, | |
| 258 | +gss_unwrap_kerberos(struct gss_ctx *ctx_id, int offset, int len, | |
| 259 | 259 | struct xdr_buf *buf); |
| 260 | 260 | |
| 261 | 261 | |
| @@ -312,7 +312,7 @@ gss_krb5_aes_encrypt(struct krb5_ctx *kctx, u32 offset, · 50 unmodified lines | ||
| 312 | 312 | struct page **pages); |
| 313 | 313 | |
| 314 | 314 | u32 |
| 315 | −gss_krb5_aes_decrypt(struct krb5_ctx *kctx, u32 offset, | |
| 315 | +gss_krb5_aes_decrypt(struct krb5_ctx *kctx, u32 offset, u32 len, | |
| 316 | 316 | struct xdr_buf *buf, u32 *plainoffset, |
| 317 | 317 | u32 *plainlen); |
| 318 | 318 | |
| @@ -184,6 +184,7 @@ xdr_adjust_iovec(struct kvec *iov, __be32 *p) · 183 unmodified lines | ||
| 184 | 184 | extern void xdr_shift_buf(struct xdr_buf *, size_t); |
| 185 | 185 | extern void xdr_buf_from_iov(struct kvec *, struct xdr_buf *); |
| 186 | 186 | extern int xdr_buf_subsegment(struct xdr_buf *, struct xdr_buf *, unsigned int, unsigned int); |
| 187 | +extern void xdr_buf_trim(struct xdr_buf *, unsigned int); | |
| 187 | 188 | extern int read_bytes_from_xdr_buf(struct xdr_buf *, unsigned int, void *, unsigned int); |
| 188 | 189 | extern int write_bytes_to_xdr_buf(struct xdr_buf *, unsigned int, void *, unsigned int); |
| 189 | 190 | |