Linux 5.10.87
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.87 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/arm/mm/init.c | 37 +++++--- arch/arm/mm/ioremap.c | 4 arch/arm64/kvm/hyp/include/hyp/switch.h | 6 + arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 7 + arch/s390/lib/test_unwind.c | 5 - arch/x86/kvm/hyperv.c | 7 + drivers/char/agp/parisc-agp.c | 6 - drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c | 8 + drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 4 drivers/gpu/drm/msm/dsi/dsi_host.c | 2 drivers/hwmon/dell-smm-hwmon.c | 7 + drivers/i2c/busses/i2c-rk3x.c | 4 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 6 - drivers/staging/most/dim2/dim2.c | 55 ++++++----- drivers/tty/serial/fsl_lpuart.c | 1 fs/fuse/dir.c | 8 + fs/fuse/file.c | 15 +++ fs/fuse/fuse_i.h | 1 fs/fuse/inode.c | 3 kernel/bpf/devmap.c | 4 kernel/trace/tracing_map.c | 3 mm/memblock.c | 3 net/core/sock_map.c | 2 net/ethtool/netlink.h | 3 net/netlink/af_netlink.c | 5 + net/nfc/netlink.c | 6 - sound/pci/hda/hda_intel.c | 12 ++ sound/pci/hda/patch_hdmi.c | 3 tools/perf/builtin-inject.c | 2 tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 83 +++++++++++------- tools/perf/util/intel-pt.c | 1 32 files changed, 223 insertions(+), 92 deletions(-)
Adrian Hunter (8):
perf inject: Fix itrace space allowed for new attributes
perf intel-pt: Fix some PGE (packet generation enable/control flow packets) usage perf intel-pt: Fix sync state when a PSB (synchronization) packet is found perf intel-pt: Fix intel_pt_fup_event() assumptions about setting state type perf intel-pt: Fix state setting when receiving overflow (OVF) packet perf intel-pt: Fix next 'err' value, walking trace
perf intel-pt: Fix missing 'instruction' events with 'q' option perf intel-pt: Fix error timestamp setting on the decoder error path
Alexander Stein (1):
Revert "tty: serial: fsl_lpuart: drop earlycon entry for i.MX8QXP"
Antoine Tenart (1):
ethtool: do not perform operations on net devices being unregistered
Armin Wolf (1):
hwmon: (dell-smm) Fix warning on /proc/i8k creation error
Bui Quang Minh (1):
bpf: Fix integer overflow in argument calculation for bpf_map_area_alloc
Chen Jun (1):
tracing: Fix a kmemleak false positive in tracing_map
Erik Ekman (1):
net/mlx4_en: Update reported link modes for 1/10G
Greg Kroah-Hartman (1):
Linux 5.10.87
Harshit Mogalapalli (1):
net: netlink: af_netlink: Prevent empty skb by adding a check on len.
Helge Deller (1):
parisc/agp: Annotate parisc agp init functions with __init
Ilie Halip (1):
s390/test_unwind: use raw opcode instead of invalid instruction
Kai Vehmanen (2):
ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid
ALSA: hda/hdmi: fix HDA codec entry table order for ADL-P
Marc Zyngier (1):
KVM: arm64: Save PSTATE early on exit
Mike Rapoport (5):
memblock: free_unused_memmap: use pageblock units instead of MAX_ORDER
memblock: align freed memory map on pageblock boundaries with SPARSEMEM
memblock: ensure there is no overflow in memblock_overlaps_region()
arm: extend pfn_valid to take into account freed memory map alignment
arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM
Miklos Szeredi (1):
fuse: make sure reclaim doesn't write the inode
Mustapha Ghaddar (1):
drm/amd/display: Fix for the no Audio bug with Tiled Displays
Nikita Yushchenko (1):
staging: most: dim2: use device release method
Ondrej Jirman (1):
i2c: rk3x: Handle a spurious start completion interrupt flag
Perry Yuan (1):
drm/amd/display: add connector type check for CRC source set
Philip Chen (1):
drm/msm/dsi: set default num_data_lanes
Sean Christopherson (1):
KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req
Tadeusz Struk (1):
nfc: fix segfault in nfc_genl_dump_devices_done
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 86 +SUBLEVEL = 87 EXTRAVERSION = NAME = Dare mighty things
arch/arm/mm/init.c +25 -12
@@ -125,11 +125,22 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max_low,int pfn_valid (unsigned long pfn) {phys_addr_t addr =__pfn_to_phys (pfn); +unsigned long pageblock_size =PAGE_SIZE * pageblock_nr_pages;if (__phys_to_pfn (addr) != pfn)return 0 ; -return memblock_is_map_memory (addr); +/* +* If address less than pageblock_size bytes away from a present +* memory chunk there still will be a memory map entry for it +* because we round freed memory map to the pageblock boundaries. +*/ +if (memblock_overlaps_region (&memblock.memory, +ALIGN_DOWN (addr, pageblock_size), + pageblock_size)) +return 1 ; + +return 0 ; }EXPORT_SYMBOL (pfn_valid);#endif
@@ -313,14 +324,14 @@ static void __init free_unused_memmap(void)*/ start =min (start,ALIGN (prev_end,PAGES_PER_SECTION )); -#else +#endif /* -* Align down here since the VM subsystem insists that the -* memmap entries are valid from the bank start aligned to -* MAX_ORDER_NR_PAGES. +* Align down here since many operations in VM subsystem +* presume that there are no holes in the memory map inside +* a pageblock */ - start =round_down (start,MAX_ORDER_NR_PAGES ); -#endif + start =round_down (start, pageblock_nr_pages); +/* * If we had a previous bank, and there is a space * between the current bank and the previous, free it.
@@ -329,17 +340,19 @@ static void __init free_unused_memmap(void)free_memmap (prev_end, start);/* -* Align up here since the VM subsystem insists that the -* memmap entries are valid from the bank end aligned to -* MAX_ORDER_NR_PAGES. +* Align up here since many operations in VM subsystem +* presume that there are no holes in the memory map inside +* a pageblock */ - prev_end =ALIGN (end,MAX_ORDER_NR_PAGES ); + prev_end =ALIGN (end, pageblock_nr_pages); }#ifdef CONFIG_SPARSEMEM -if (!IS_ALIGNED (prev_end,PAGES_PER_SECTION )) +if (!IS_ALIGNED (prev_end,PAGES_PER_SECTION )) { + prev_end =ALIGN (end, pageblock_nr_pages);free_memmap (prev_end,ALIGN (prev_end,PAGES_PER_SECTION )); + }#endif }
arch/arm/mm/ioremap.c +3 -1
@@ -27,6 +27,7 @@#include <linux/vmalloc.h> #include <linux/io.h> #include <linux/sizes.h> +#include <linux/memblock.h> #include <asm/cp15.h> #include <asm/cputype.h>
@@ -284,7 +285,8 @@ static void __iomem * __arm_ioremap_pfn_caller(unsigned long pfn,* Don't allow RAM to be mapped with mismatched attributes - this * causes problems with ARMv6+ */ -if (WARN_ON (pfn_valid (pfn) && mtype !=MT_MEMORY_RW )) +if (WARN_ON (memblock_is_map_memory (PFN_PHYS (pfn)) && + mtype !=MT_MEMORY_RW ))return NULL ; area =get_vm_area_caller (size,VM_IOREMAP , caller);
arch/arm64/kvm/hyp/include/hyp/switch.h +6 -0
@@ -406,6 +406,12 @@ static inline bool __hyp_handle_ptrauth(struct kvm_vcpu *vcpu)*/ static inline bool fixup_guest_exit (struct kvm_vcpu *vcpu,u64 *exit_code) { +/* +* Save PSTATE early so that we can evaluate the vcpu mode +* early on. +*/ + vcpu->arch.ctxt.regs.pstate =read_sysreg_el2 (SYS_SPSR ); +if (ARM_EXCEPTION_CODE (*exit_code) !=ARM_EXCEPTION_IRQ ) vcpu->arch.fault.esr_el2 =read_sysreg_el2 (SYS_ESR );
arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h +6 -1
@@ -54,7 +54,12 @@ static inline void __sysreg_save_el1_state(struct kvm_cpu_context *ctxt)static inline void __sysreg_save_el2_return_state (struct kvm_cpu_context *ctxt) { ctxt->regs.pc =read_sysreg_el2 (SYS_ELR ); - ctxt->regs.pstate =read_sysreg_el2 (SYS_SPSR ); +/* +* Guest PSTATE gets saved at guest fixup time in all +* cases. We still need to handle the nVHE host side here. +*/ +if (!has_vhe () && ctxt->__hyp_running_vcpu) + ctxt->regs.pstate =read_sysreg_el2 (SYS_SPSR );if (cpus_have_final_cap (ARM64_HAS_RAS_EXTN ))ctxt_sys_reg (ctxt,DISR_EL1 ) =read_sysreg_s (SYS_VDISR_EL2 );
arch/s390/lib/test_unwind.c +3 -2
@@ -171,10 +171,11 @@ static noinline int unwindme_func4(struct unwindme *u) }/* -* trigger specification exception +* Trigger operation exception; use insn notation to bypass +* llvm's integrated assembler sanity checks. */ asmvolatile ( -" mvcl %%r1,%%r1\n" +" .insn e,0x0000\n" /* illegal opcode */ "0: nopr %%r7\n" EX_TABLE(0b, 0b) :);
arch/x86/kvm/hyperv.c +5 -2
@@ -1641,11 +1641,13 @@ static u64 kvm_hv_send_ipi(struct kvm_vcpu *current_vcpu, u64 ingpa, u64 outgpa, all_cpus = send_ipi_ex.vp_set.format ==HV_GENERIC_SET_ALL ; +if (all_cpus) + goto check_and_send_ipi; +if (!sparse_banks_len) goto ret_success; -if (!all_cpus && -kvm_read_guest (kvm, +if (kvm_read_guest (kvm, ingpa + offsetof(struct hv_send_ipi_ex , vp_set.bank_contents), sparse_banks,
@@ -1653,6 +1655,7 @@ static u64 kvm_hv_send_ipi(struct kvm_vcpu *current_vcpu, u64 ingpa, u64 outgpa,return HV_STATUS_INVALID_HYPERCALL_INPUT ; } +check_and_send_ipi:if ((vector <HV_IPI_LOW_VECTOR ) || (vector >HV_IPI_HIGH_VECTOR ))return HV_STATUS_INVALID_HYPERCALL_INPUT ;
drivers/char/agp/parisc-agp.c +3 -3
@@ -281,7 +281,7 @@ agp_ioc_init(void __iomem *ioc_regs)return 0 ; } -static int +static int __init lba_find_capability (int cap) {struct _parisc_agp_info *info = &parisc_agp_info;
@@ -366,7 +366,7 @@ parisc_agp_setup(void __iomem *ioc_hpa, void __iomem *lba_hpa)return error; } -static int +static int __init find_quicksilver (struct device *dev,void *data) {struct parisc_device **lba = data;
@@ -378,7 +378,7 @@ find_quicksilver(struct device *dev, void *data)return 0 ; } -static int +static int __init parisc_agp_init (void ) {extern struct sba_device *sba_list;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c +8 -0
@@ -226,6 +226,14 @@ int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name) ret = -EINVAL ; goto cleanup; } + +if ((aconn->base.connector_type != DRM_MODE_CONNECTOR_DisplayPort) && + (aconn->base.connector_type != DRM_MODE_CONNECTOR_eDP)) { +DRM_DEBUG_DRIVER ("No DP connector available for CRC source\n" ); + ret = -EINVAL ; + goto cleanup; + } + }if (amdgpu_dm_crtc_configure_crc_source (crtc, crtc_state, source)) {
drivers/gpu/drm/amd/display/dc/core/dc_resource.c +4 -0
@@ -1698,6 +1698,10 @@ bool dc_is_stream_unchanged(if (old_stream->ignore_msa_timing_param != stream->ignore_msa_timing_param)return false; +// Only Have Audio left to check whether it is same or not. This is a corner case for Tiled sinks +if (old_stream->audio_info.mode_count != stream->audio_info.mode_count) +return false; +return true; }
drivers/gpu/drm/msm/dsi/dsi_host.c +2 -0
@@ -1692,6 +1692,8 @@ static int dsi_host_parse_lane_data(struct msm_dsi_host *msm_host,if (!prop) {DRM_DEV_DEBUG (dev,"failed to find data lane mapping, using default\n" ); +/* Set the number of date lanes to 4 by default. */ + msm_host->num_data_lanes =4 ;return 0 ; }
drivers/hwmon/dell-smm-hwmon.c +5 -2
@@ -603,15 +603,18 @@ static const struct proc_ops i8k_proc_ops = { .proc_ioctl = i8k_ioctl, }; +static struct proc_dir_entry *entry; +static void __init i8k_init_procfs (void ) {/* Register the proc entry */ -proc_create ("i8k" ,0 ,NULL , &i8k_proc_ops); + entry =proc_create ("i8k" ,0 ,NULL , &i8k_proc_ops); } static void __exit i8k_exit_procfs(void) { -remove_proc_entry ("i8k" ,NULL ); +if (entry) +remove_proc_entry ("i8k" ,NULL ); }#else
drivers/i2c/busses/i2c-rk3x.c +2 -2
@@ -423,8 +423,8 @@ static void rk3x_i2c_handle_read(struct rk3x_i2c *i2c, unsigned int ipd)if (!(ipd ®_INT_MBRF ))return ; -/* ack interrupt */ -i2c_writel (i2c,REG_INT_MBRF ,REG_IPD ); +/* ack interrupt (read also produces a spurious START flag, clear it too) */ +i2c_writel (i2c,REG_INT_MBRF |REG_INT_START ,REG_IPD );/* Can only handle a maximum of 32 bytes at a time */ if (len >32 )
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +3 -3
@@ -663,7 +663,7 @@ void __init mlx4_en_init_ptys2ethtool_map(void)MLX4_BUILD_PTYS2ETHTOOL_CONFIG (MLX4_1000BASE_T ,SPEED_1000 , ETHTOOL_LINK_MODE_1000baseT_Full_BIT);MLX4_BUILD_PTYS2ETHTOOL_CONFIG (MLX4_1000BASE_CX_SGMII ,SPEED_1000 , - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT); + ETHTOOL_LINK_MODE_1000baseX_Full_BIT);MLX4_BUILD_PTYS2ETHTOOL_CONFIG (MLX4_1000BASE_KX ,SPEED_1000 , ETHTOOL_LINK_MODE_1000baseKX_Full_BIT); MLX4_BUILD_PTYS2ETHTOOL_CONFIG(MLX4_10GBASE_T, SPEED_10000,
@@ -675,9 +675,9 @@ void __init mlx4_en_init_ptys2ethtool_map(void)MLX4_BUILD_PTYS2ETHTOOL_CONFIG (MLX4_10GBASE_KR ,SPEED_10000 , ETHTOOL_LINK_MODE_10000baseKR_Full_BIT);MLX4_BUILD_PTYS2ETHTOOL_CONFIG (MLX4_10GBASE_CR ,SPEED_10000 , - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT); + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT);MLX4_BUILD_PTYS2ETHTOOL_CONFIG (MLX4_10GBASE_SR ,SPEED_10000 , - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT); + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT);MLX4_BUILD_PTYS2ETHTOOL_CONFIG (MLX4_20GBASE_KR2 ,SPEED_20000 , ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT, ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT);
drivers/staging/most/dim2/dim2.c +30 -25
109 lines not on this page · raw message
drivers/tty/serial/fsl_lpuart.c +1 -0
@@ -2559,6 +2559,7 @@ OF_EARLYCON_DECLARE(lpuart, "fsl,vf610-lpuart", lpuart_early_console_setup);OF_EARLYCON_DECLARE (lpuart32,"fsl,ls1021a-lpuart" , lpuart32_early_console_setup);OF_EARLYCON_DECLARE (lpuart32,"fsl,ls1028a-lpuart" , ls1028a_early_console_setup);OF_EARLYCON_DECLARE (lpuart32,"fsl,imx7ulp-lpuart" , lpuart32_imx_early_console_setup); +OF_EARLYCON_DECLARE (lpuart32,"fsl,imx8qxp-lpuart" , lpuart32_imx_early_console_setup);EARLYCON_DECLARE (lpuart, lpuart_early_console_setup);EARLYCON_DECLARE (lpuart32, lpuart32_early_console_setup);
fs/fuse/dir.c +8 -0
@@ -791,11 +791,19 @@ static int fuse_symlink(struct inode *dir, struct dentry *entry,return create_new_entry (fm, &args, dir, entry,S_IFLNK ); } +void fuse_flush_time_update (struct inode *inode) +{ +int err =sync_inode_metadata (inode,1 ); + +mapping_set_error (inode->i_mapping, err); +} +void fuse_update_ctime (struct inode *inode) {if (!IS_NOCMTIME (inode)) { inode->i_ctime =current_time (inode);mark_inode_dirty_sync (inode); +fuse_flush_time_update (inode); } }
fs/fuse/file.c +15 -0
@@ -1849,6 +1849,17 @@ int fuse_write_inode(struct inode *inode, struct writeback_control *wbc)struct fuse_file *ff;int err; +/* +* Inode is always written before the last reference is dropped and +* hence this should not be reached from reclaim. +* +* Writing back the inode from reclaim can deadlock if the request +* processing itself needs an allocation. Allocations triggering +* reclaim while serving a request can't be prevented, because it can +* involve any number of unrelated userspace processes. +*/ +WARN_ON (wbc->for_reclaim); + ff =__fuse_write_file_get (fc, fi); err =fuse_flush_times (inode, ff);if (ff)
@@ -3338,6 +3349,8 @@ static long fuse_file_fallocate(struct file *file, int mode, loff_t offset,if (lock_inode)inode_unlock (inode); +fuse_flush_time_update (inode); +return err; }
@@ -3447,6 +3460,8 @@ static ssize_t __fuse_copy_file_range(struct file *file_in, loff_t pos_in,inode_unlock (inode_out);file_accessed (file_in); +fuse_flush_time_update (inode_out); +return err; }
fs/fuse/fuse_i.h +1 -0
@@ -1113,6 +1113,7 @@ int fuse_allow_current_process(struct fuse_conn *fc);u64 fuse_lock_owner_id (struct fuse_conn *fc,fl_owner_t id); +void fuse_flush_time_update (struct inode *inode);void fuse_update_ctime (struct inode *inode);int fuse_update_attributes (struct inode *inode,struct file *file);
fs/fuse/inode.c +3 -0
@@ -119,6 +119,9 @@ static void fuse_evict_inode(struct inode *inode) {struct fuse_inode *fi =get_fuse_inode (inode); +/* Will write inode on close/munmap and in all other dirtiers */ +WARN_ON (inode->i_state &I_DIRTY_INODE ); +truncate_inode_pages_final (&inode->i_data);clear_inode (inode);if (inode->i_sb->s_flags &SB_ACTIVE ) {
kernel/bpf/devmap.c +2 -2
@@ -92,7 +92,7 @@ static struct hlist_head *dev_map_create_hash(unsigned int entries,int i;struct hlist_head *hash; - hash =bpf_map_area_alloc (entries *sizeof (*hash), numa_node); + hash =bpf_map_area_alloc ((u64 ) entries *sizeof (*hash), numa_node);if (hash !=NULL )for (i =0 ; i < entries; i++)INIT_HLIST_HEAD (&hash[i]);
@@ -153,7 +153,7 @@ static int dev_map_init_map(struct bpf_dtab *dtab, union bpf_attr *attr)spin_lock_init (&dtab->index_lock); }else { - dtab->netdev_map =bpf_map_area_alloc (dtab->map.max_entries * + dtab->netdev_map =bpf_map_area_alloc ((u64 ) dtab->map.max_entries *sizeof (struct bpf_dtab_netdev *), dtab->map.numa_node);if (!dtab->netdev_map)
kernel/trace/tracing_map.c +3 -0
@@ -15,6 +15,7 @@#include <linux/jhash.h> #include <linux/slab.h> #include <linux/sort.h> +#include <linux/kmemleak.h> #include "tracing_map.h" #include "trace.h"
@@ -307,6 +308,7 @@ static void tracing_map_array_free(struct tracing_map_array *a)for (i =0 ; i < a->n_pages; i++) {if (!a->pages[i])break ; +kmemleak_free (a->pages[i]);free_page ((unsigned long )a->pages[i]); }
@@ -342,6 +344,7 @@ static struct tracing_map_array *tracing_map_array_alloc(unsigned int n_elts, a->pages[i] = (void *)get_zeroed_page (GFP_KERNEL );if (!a->pages[i]) goto free; +kmemleak_alloc (a->pages[i],PAGE_SIZE ,1 ,GFP_KERNEL ); } out:return a;
mm/memblock.c +2 -1
@@ -182,6 +182,8 @@ bool __init_memblock memblock_overlaps_region(struct memblock_type *type, {unsigned long i; +memblock_cap_size (base, &size); +for (i =0 ; i < type->cnt; i++)if (memblock_addrs_overlap (base, size, type->regions[i].base, type->regions[i].size))
@@ -1792,7 +1794,6 @@ bool __init_memblock memblock_is_region_memory(phys_addr_t base, phys_addr_t siz*/ bool __init_memblock memblock_is_region_reserved(phys_addr_t base, phys_addr_t size) { -memblock_cap_size (base, &size);return memblock_overlaps_region (&memblock.reserved, base, size); }
net/core/sock_map.c +1 -1
@@ -52,7 +52,7 @@ static struct bpf_map *sock_map_alloc(union bpf_attr *attr)if (err) goto free_stab; - stab->sks =bpf_map_area_alloc (stab->map.max_entries * + stab->sks =bpf_map_area_alloc ((u64 ) stab->map.max_entries *sizeof (struct sock *), stab->map.numa_node);if (stab->sks)
net/ethtool/netlink.h +3 -0
@@ -249,6 +249,9 @@ struct ethnl_reply_data {static inline int ethnl_ops_begin (struct net_device *dev) { +if (dev && dev->reg_state ==NETREG_UNREGISTERING ) +return -ENODEV ; +if (dev && dev->ethtool_ops->begin)return dev->ethtool_ops->begin (dev);else
net/netlink/af_netlink.c +5 -0
@@ -1863,6 +1863,11 @@ static int netlink_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)if (msg->msg_flags &MSG_OOB )return -EOPNOTSUPP ; +if (len ==0 ) { +pr_warn_once ("Zero length message leads to an empty skb\n" ); +return -ENODATA ; + } + err =scm_send (sock, msg, &scm, true);if (err <0 )return err;
net/nfc/netlink.c +4 -2
@@ -636,8 +636,10 @@ static int nfc_genl_dump_devices_done(struct netlink_callback *cb) {struct class_dev_iter *iter = (struct class_dev_iter *) cb->args[0 ]; -nfc_device_iter_exit (iter); -kfree (iter); +if (iter) { +nfc_device_iter_exit (iter); +kfree (iter); + }return 0 ; }
sound/pci/hda/hda_intel.c +11 -1
@@ -369,7 +369,10 @@ enum { ((pci)->device == 0x0c0c) || \ ((pci)->device == 0x0d0c) || \ ((pci)->device == 0x160c) || \ - ((pci)->device == 0x490d)) + ((pci)->device == 0x490d) || \ + ((pci)->device == 0x4f90) || \ + ((pci)->device == 0x4f91) || \ + ((pci)->device == 0x4f92))#define IS_BXT (pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98)
@@ -2540,6 +2543,13 @@ static const struct pci_device_id azx_ids[] = {/* DG1 */ { PCI_DEVICE(0x8086, 0x490d), .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE}, + /* DG2 */ + { PCI_DEVICE(0x8086, 0x4f90), + .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE}, + { PCI_DEVICE(0x8086, 0x4f91), + .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE}, + { PCI_DEVICE(0x8086, 0x4f92), + .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE}, /* Alderlake-S */ { PCI_DEVICE(0x8086, 0x7ad0), .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
sound/pci/hda/patch_hdmi.c +2 -1
@@ -4362,10 +4362,11 @@ HDA_CODEC_ENTRY(0x8086280f, "Icelake HDMI", patch_i915_icl_hdmi),HDA_CODEC_ENTRY (0x80862812 ,"Tigerlake HDMI" , patch_i915_tgl_hdmi),HDA_CODEC_ENTRY (0x80862814 ,"DG1 HDMI" , patch_i915_tgl_hdmi),HDA_CODEC_ENTRY (0x80862815 ,"Alderlake HDMI" , patch_i915_tgl_hdmi), -HDA_CODEC_ENTRY (0x8086281c ,"Alderlake-P HDMI" , patch_i915_tgl_hdmi),HDA_CODEC_ENTRY (0x80862816 ,"Rocketlake HDMI" , patch_i915_tgl_hdmi), +HDA_CODEC_ENTRY (0x80862819 ,"DG2 HDMI" , patch_i915_tgl_hdmi),HDA_CODEC_ENTRY (0x8086281a ,"Jasperlake HDMI" , patch_i915_icl_hdmi),HDA_CODEC_ENTRY (0x8086281b ,"Elkhartlake HDMI" , patch_i915_icl_hdmi), +HDA_CODEC_ENTRY (0x8086281c ,"Alderlake-P HDMI" , patch_i915_tgl_hdmi),HDA_CODEC_ENTRY (0x80862880 ,"CedarTrail HDMI" , patch_generic_hdmi),HDA_CODEC_ENTRY (0x80862882 ,"Valleyview2 HDMI" , patch_i915_byt_hdmi), HDA_CODEC_ENTRY(0x80862883, "Braswell HDMI", patch_i915_byt_hdmi),
tools/perf/builtin-inject.c +1 -1
@@ -752,7 +752,7 @@ static int __cmd_inject(struct perf_inject *inject) inject->tool.ordered_events = true; inject->tool.ordering_requires_timestamps = true;/* Allow space in the header for new attributes */ - output_data_offset =4096 ; + output_data_offset =roundup (8192 + session->header.data_offset,4096 );if (inject->strip)strip_init (inject); }
tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +54 -29
202 lines not on this page · raw message
tools/perf/util/intel-pt.c +1 -0
@@ -2271,6 +2271,7 @@ static int intel_pt_run_decoder(struct intel_pt_queue *ptq, u64 *timestamp) ptq->sync_switch = false;intel_pt_next_tid (pt, ptq); } + ptq->timestamp = state->est_timestamp;if (pt->synth_opts.errors) { err =intel_ptq_synth_error (ptq, state);if (err)