The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: b6b4fbd90b155a0025223df2c137af8a701d53b3
Gitweb: https://git.kernel.org/tip/b6b4fbd90b155a0025223df2c137af8a701d53b3
Author: Sean Christopherson <seanjc(a)google.com>
AuthorDate: Tue, 04 May 2021 15:56:31 -07:00
Committer: Thomas Gleixner <tglx(a)linutronix.de>
CommitterDate: Wed, 05 May 2021 21:50:14 +02:00
x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
Initialize MSR_TSC_AUX with CPU node information if RDTSCP or RDPID is
supported. This fixes a bug where vdso_read_cpunode() will read garbage
via RDPID if RDPID is supported but RDTSCP is not. While no known CPU
supports RDPID but not RDTSCP, both Intel's SDM and AMD's APM allow for
RDPID to exist without RDTSCP, e.g. it's technically a legal CPU model
for a virtual machine.
Note, technically MSR_TSC_AUX could be initialized if and only if RDPID
is supported since RDTSCP is currently not used to retrieve the CPU node.
But, the cost of the superfluous WRMSR is negigible, whereas leaving
MSR_TSC_AUX uninitialized is just asking for future breakage if someone
decides to utilize RDTSCP.
Fixes: a582c540ac1b ("x86/vdso: Use RDPID in preference to LSL when available")
Signed-off-by: Sean Christopherson <seanjc(a)google.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/r/20210504225632.1532621-2-seanjc@google.com
---
arch/x86/kernel/cpu/common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 6bdb69a..490bed0 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1851,7 +1851,7 @@ static inline void setup_getcpu(int cpu)
unsigned long cpudata = vdso_encode_cpunode(cpu, early_cpu_to_node(cpu));
struct desc_struct d = { };
- if (boot_cpu_has(X86_FEATURE_RDTSCP))
+ if (boot_cpu_has(X86_FEATURE_RDTSCP) || boot_cpu_has(X86_FEATURE_RDPID))
write_rdtscp_aux(cpudata);
/* Store CPU and node number in limit. */
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: a217a6593cec8b315d4c2f344bae33660b39b703
Gitweb: https://git.kernel.org/tip/a217a6593cec8b315d4c2f344bae33660b39b703
Author: Lai Jiangshan <laijs(a)linux.alibaba.com>
AuthorDate: Tue, 04 May 2021 21:50:14 +02:00
Committer: Thomas Gleixner <tglx(a)linutronix.de>
CommitterDate: Wed, 05 May 2021 22:54:10 +02:00
KVM/VMX: Invoke NMI non-IST entry instead of IST entry
In VMX, the host NMI handler needs to be invoked after NMI VM-Exit.
Before commit 1a5488ef0dcf6 ("KVM: VMX: Invoke NMI handler via indirect
call instead of INTn"), this was done by INTn ("int $2"). But INTn
microcode is relatively expensive, so the commit reworked NMI VM-Exit
handling to invoke the kernel handler by function call.
But this missed a detail. The NMI entry point for direct invocation is
fetched from the IDT table and called on the kernel stack. But on 64-bit
the NMI entry installed in the IDT expects to be invoked on the IST stack.
It relies on the "NMI executing" variable on the IST stack to work
correctly, which is at a fixed position in the IST stack. When the entry
point is unexpectedly called on the kernel stack, the RSP-addressed "NMI
executing" variable is obviously also on the kernel stack and is
"uninitialized" and can cause the NMI entry code to run in the wrong way.
Provide a non-ist entry point for VMX which shares the C-function with
the regular NMI entry and invoke the new asm entry point instead.
On 32-bit this just maps to the regular NMI entry point as 32-bit has no
ISTs and is not affected.
[ tglx: Made it independent for backporting, massaged changelog ]
Fixes: 1a5488ef0dcf6 ("KVM: VMX: Invoke NMI handler via indirect call instead of INTn")
Signed-off-by: Lai Jiangshan <laijs(a)linux.alibaba.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Tested-by: Lai Jiangshan <laijs(a)linux.alibaba.com>
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/r/87r1imi8i1.ffs@nanos.tec.linutronix.de
---
arch/x86/include/asm/idtentry.h | 15 +++++++++++++++
arch/x86/kernel/nmi.c | 10 ++++++++++
arch/x86/kvm/vmx/vmx.c | 16 +++++++++-------
3 files changed, 34 insertions(+), 7 deletions(-)
diff --git a/arch/x86/include/asm/idtentry.h b/arch/x86/include/asm/idtentry.h
index e35e342..73d45b0 100644
--- a/arch/x86/include/asm/idtentry.h
+++ b/arch/x86/include/asm/idtentry.h
@@ -588,6 +588,21 @@ DECLARE_IDTENTRY_RAW(X86_TRAP_MC, xenpv_exc_machine_check);
#endif
/* NMI */
+
+#if defined(CONFIG_X86_64) && IS_ENABLED(CONFIG_KVM_INTEL)
+/*
+ * Special NOIST entry point for VMX which invokes this on the kernel
+ * stack. asm_exc_nmi() requires an IST to work correctly vs. the NMI
+ * 'executing' marker.
+ *
+ * On 32bit this just uses the regular NMI entry point because 32-bit does
+ * not have ISTs.
+ */
+DECLARE_IDTENTRY(X86_TRAP_NMI, exc_nmi_noist);
+#else
+#define asm_exc_nmi_noist asm_exc_nmi
+#endif
+
DECLARE_IDTENTRY_NMI(X86_TRAP_NMI, exc_nmi);
#ifdef CONFIG_XEN_PV
DECLARE_IDTENTRY_RAW(X86_TRAP_NMI, xenpv_exc_nmi);
diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
index bf250a3..2ef961c 100644
--- a/arch/x86/kernel/nmi.c
+++ b/arch/x86/kernel/nmi.c
@@ -524,6 +524,16 @@ nmi_restart:
mds_user_clear_cpu_buffers();
}
+#if defined(CONFIG_X86_64) && IS_ENABLED(CONFIG_KVM_INTEL)
+DEFINE_IDTENTRY_RAW(exc_nmi_noist)
+{
+ exc_nmi(regs);
+}
+#endif
+#if IS_MODULE(CONFIG_KVM_INTEL)
+EXPORT_SYMBOL_GPL(asm_exc_nmi_noist);
+#endif
+
void stop_nmi(void)
{
ignore_nmis++;
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index cbe0cda..b21d751 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -36,6 +36,7 @@
#include <asm/debugreg.h>
#include <asm/desc.h>
#include <asm/fpu/internal.h>
+#include <asm/idtentry.h>
#include <asm/io.h>
#include <asm/irq_remapping.h>
#include <asm/kexec.h>
@@ -6415,18 +6416,17 @@ static void vmx_apicv_post_state_restore(struct kvm_vcpu *vcpu)
void vmx_do_interrupt_nmi_irqoff(unsigned long entry);
-static void handle_interrupt_nmi_irqoff(struct kvm_vcpu *vcpu, u32 intr_info)
+static void handle_interrupt_nmi_irqoff(struct kvm_vcpu *vcpu,
+ unsigned long entry)
{
- unsigned int vector = intr_info & INTR_INFO_VECTOR_MASK;
- gate_desc *desc = (gate_desc *)host_idt_base + vector;
-
kvm_before_interrupt(vcpu);
- vmx_do_interrupt_nmi_irqoff(gate_offset(desc));
+ vmx_do_interrupt_nmi_irqoff(entry);
kvm_after_interrupt(vcpu);
}
static void handle_exception_nmi_irqoff(struct vcpu_vmx *vmx)
{
+ const unsigned long nmi_entry = (unsigned long)asm_exc_nmi_noist;
u32 intr_info = vmx_get_intr_info(&vmx->vcpu);
/* if exit due to PF check for async PF */
@@ -6437,18 +6437,20 @@ static void handle_exception_nmi_irqoff(struct vcpu_vmx *vmx)
kvm_machine_check();
/* We need to handle NMIs before interrupts are enabled */
else if (is_nmi(intr_info))
- handle_interrupt_nmi_irqoff(&vmx->vcpu, intr_info);
+ handle_interrupt_nmi_irqoff(&vmx->vcpu, nmi_entry);
}
static void handle_external_interrupt_irqoff(struct kvm_vcpu *vcpu)
{
u32 intr_info = vmx_get_intr_info(vcpu);
+ unsigned int vector = intr_info & INTR_INFO_VECTOR_MASK;
+ gate_desc *desc = (gate_desc *)host_idt_base + vector;
if (WARN_ONCE(!is_external_intr(intr_info),
"KVM: unexpected VM-Exit interrupt info: 0x%x", intr_info))
return;
- handle_interrupt_nmi_irqoff(vcpu, intr_info);
+ handle_interrupt_nmi_irqoff(vcpu, gate_offset(desc));
}
static void vmx_handle_exit_irqoff(struct kvm_vcpu *vcpu)
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: 160457140187c5fb127b844e5a85f87f00a01b14
Gitweb: https://git.kernel.org/tip/160457140187c5fb127b844e5a85f87f00a01b14
Author: Wanpeng Li <wanpengli(a)tencent.com>
AuthorDate: Tue, 04 May 2021 17:27:30 -07:00
Committer: Thomas Gleixner <tglx(a)linutronix.de>
CommitterDate: Wed, 05 May 2021 22:54:11 +02:00
KVM: x86: Defer vtime accounting 'til after IRQ handling
Defer the call to account guest time until after servicing any IRQ(s)
that happened in the guest or immediately after VM-Exit. Tick-based
accounting of vCPU time relies on PF_VCPU being set when the tick IRQ
handler runs, and IRQs are blocked throughout the main sequence of
vcpu_enter_guest(), including the call into vendor code to actually
enter and exit the guest.
This fixes a bug where reported guest time remains '0', even when
running an infinite loop in the guest:
https://bugzilla.kernel.org/show_bug.cgi?id=209831
Fixes: 87fa7f3e98a131 ("x86/kvm: Move context tracking where it belongs")
Suggested-by: Thomas Gleixner <tglx(a)linutronix.de>
Co-developed-by: Sean Christopherson <seanjc(a)google.com>
Signed-off-by: Wanpeng Li <wanpengli(a)tencent.com>
Signed-off-by: Sean Christopherson <seanjc(a)google.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/r/20210505002735.1684165-4-seanjc@google.com
---
arch/x86/kvm/svm/svm.c | 6 +++---
arch/x86/kvm/vmx/vmx.c | 6 +++---
arch/x86/kvm/x86.c | 9 +++++++++
3 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 9790c73..c400def 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -3753,15 +3753,15 @@ static noinstr void svm_vcpu_enter_exit(struct kvm_vcpu *vcpu)
* have them in state 'on' as recorded before entering guest mode.
* Same as enter_from_user_mode().
*
- * guest_exit_irqoff() restores host context and reinstates RCU if
- * enabled and required.
+ * context_tracking_guest_exit() restores host context and reinstates
+ * RCU if enabled and required.
*
* This needs to be done before the below as native_read_msr()
* contains a tracepoint and x86_spec_ctrl_restore_host() calls
* into world and some more.
*/
lockdep_hardirqs_off(CALLER_ADDR0);
- guest_exit_irqoff();
+ context_tracking_guest_exit();
instrumentation_begin();
trace_hardirqs_off_finish();
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index b21d751..e108fb4 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -6703,15 +6703,15 @@ static noinstr void vmx_vcpu_enter_exit(struct kvm_vcpu *vcpu,
* have them in state 'on' as recorded before entering guest mode.
* Same as enter_from_user_mode().
*
- * guest_exit_irqoff() restores host context and reinstates RCU if
- * enabled and required.
+ * context_tracking_guest_exit() restores host context and reinstates
+ * RCU if enabled and required.
*
* This needs to be done before the below as native_read_msr()
* contains a tracepoint and x86_spec_ctrl_restore_host() calls
* into world and some more.
*/
lockdep_hardirqs_off(CALLER_ADDR0);
- guest_exit_irqoff();
+ context_tracking_guest_exit();
instrumentation_begin();
trace_hardirqs_off_finish();
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index cebdaa1..6eda283 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -9315,6 +9315,15 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
local_irq_disable();
kvm_after_interrupt(vcpu);
+ /*
+ * Wait until after servicing IRQs to account guest time so that any
+ * ticks that occurred while running the guest are properly accounted
+ * to the guest. Waiting until IRQs are enabled degrades the accuracy
+ * of accounting via context tracking, but the loss of accuracy is
+ * acceptable for all known use cases.
+ */
+ vtime_account_guest_exit();
+
if (lapic_in_kernel(vcpu)) {
s64 delta = vcpu->arch.apic->lapic_timer.advance_expire_delta;
if (delta != S64_MIN) {
This is the start of the stable review cycle for the 5.4.117 release.
There are 21 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Fri, 07 May 2021 11:23:16 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.117-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.4.117-rc1
Ondrej Mosnacek <omosnace(a)redhat.com>
perf/core: Fix unconditional security_locked_down() call
Miklos Szeredi <mszeredi(a)redhat.com>
ovl: allow upperdir inside lowerdir
Dan Carpenter <dan.carpenter(a)oracle.com>
scsi: ufs: Unlock on a couple error paths
Mark Pearson <markpearson(a)lenovo.com>
platform/x86: thinkpad_acpi: Correct thermal sensor allocation
Shengjiu Wang <shengjiu.wang(a)nxp.com>
ASoC: ak5558: Add MODULE_DEVICE_TABLE
Shengjiu Wang <shengjiu.wang(a)nxp.com>
ASoC: ak4458: Add MODULE_DEVICE_TABLE
Chris Chiu <chris.chiu(a)canonical.com>
USB: Add reset-resume quirk for WD19's Realtek Hub
Kai-Heng Feng <kai.heng.feng(a)canonical.com>
USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
Takashi Iwai <tiwai(a)suse.de>
ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
Thomas Richter <tmricht(a)linux.ibm.com>
perf ftrace: Fix access to pid in array when setting a pid filter
Zhen Lei <thunder.leizhen(a)huawei.com>
perf data: Fix error return code in perf_data__create_dir()
Jiri Kosina <jkosina(a)suse.cz>
iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd()
Arnd Bergmann <arnd(a)arndb.de>
avoid __memcat_p link failure
Daniel Borkmann <daniel(a)iogearbox.net>
bpf: Fix leakage of uninitialized bpf stack under speculation
Daniel Borkmann <daniel(a)iogearbox.net>
bpf: Fix masking negation logic upon negative dst register
Jiri Kosina <jkosina(a)suse.cz>
iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd()
Nick Lowe <nick.lowe(a)gmail.com>
igb: Enable RSS for Intel I211 Ethernet Controller
Phillip Potter <phil(a)philpotter.co.uk>
net: usb: ax88179_178a: initialize local variables before use
Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade()
Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
ACPI: tables: x86: Reserve memory occupied by ACPI tables
Romain Naour <romain.naour(a)gmail.com>
mips: Do not include hi and lo in clobber list for R6
-------------
Diffstat:
Makefile | 4 +--
arch/mips/include/asm/vdso/gettimeofday.h | 26 +++++++++++---
arch/x86/kernel/acpi/boot.c | 25 +++++++-------
arch/x86/kernel/setup.c | 7 ++--
drivers/acpi/tables.c | 42 +++++++++++++++++++++--
drivers/net/ethernet/intel/igb/igb_main.c | 3 +-
drivers/net/usb/ax88179_178a.c | 4 +--
drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c | 7 ++--
drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 7 ++--
drivers/platform/x86/thinkpad_acpi.c | 31 ++++++++++++-----
drivers/scsi/ufs/ufshcd.c | 14 +++++---
drivers/usb/core/quirks.c | 4 +++
fs/overlayfs/super.c | 12 ++++---
include/linux/acpi.h | 9 ++++-
include/linux/bpf_verifier.h | 5 +--
kernel/bpf/verifier.c | 33 ++++++++++--------
kernel/events/core.c | 12 +++----
lib/Makefile | 4 +--
sound/soc/codecs/ak4458.c | 1 +
sound/soc/codecs/ak5558.c | 1 +
sound/usb/quirks-table.h | 10 ++++++
tools/perf/builtin-ftrace.c | 2 +-
tools/perf/util/data.c | 5 +--
23 files changed, 183 insertions(+), 85 deletions(-)
This is the start of the stable review cycle for the 5.10.35 release.
There are 29 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Fri, 07 May 2021 11:23:16 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.35-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.10.35-rc1
Ondrej Mosnacek <omosnace(a)redhat.com>
perf/core: Fix unconditional security_locked_down() call
Mark Pearson <markpearson(a)lenovo.com>
platform/x86: thinkpad_acpi: Correct thermal sensor allocation
Shengjiu Wang <shengjiu.wang(a)nxp.com>
ASoC: ak5558: Add MODULE_DEVICE_TABLE
Shengjiu Wang <shengjiu.wang(a)nxp.com>
ASoC: ak4458: Add MODULE_DEVICE_TABLE
Chris Chiu <chris.chiu(a)canonical.com>
USB: Add reset-resume quirk for WD19's Realtek Hub
Kai-Heng Feng <kai.heng.feng(a)canonical.com>
USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
Takashi Iwai <tiwai(a)suse.de>
ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
Miklos Szeredi <mszeredi(a)redhat.com>
ovl: allow upperdir inside lowerdir
Mickaël Salaün <mic(a)linux.microsoft.com>
ovl: fix leaked dentry
Jianxiong Gao <jxgao(a)google.com>
nvme-pci: set min_align_mask
Jianxiong Gao <jxgao(a)google.com>
swiotlb: respect min_align_mask
Jianxiong Gao <jxgao(a)google.com>
swiotlb: don't modify orig_addr in swiotlb_tbl_sync_single
Jianxiong Gao <jxgao(a)google.com>
swiotlb: refactor swiotlb_tbl_map_single
Jianxiong Gao <jxgao(a)google.com>
swiotlb: clean up swiotlb_tbl_unmap_single
Jianxiong Gao <jxgao(a)google.com>
swiotlb: factor out a nr_slots helper
Jianxiong Gao <jxgao(a)google.com>
swiotlb: factor out an io_tlb_offset helper
Jianxiong Gao <jxgao(a)google.com>
swiotlb: add a IO_TLB_SIZE define
Jianxiong Gao <jxgao(a)google.com>
driver core: add a min_align_mask field to struct device_dma_parameters
Vasily Averin <vvs(a)virtuozzo.com>
tools/cgroup/slabinfo.py: updated to work on current kernel
Thomas Richter <tmricht(a)linux.ibm.com>
perf ftrace: Fix access to pid in array when setting a pid filter
Serge E. Hallyn <serge(a)hallyn.com>
capabilities: require CAP_SETFCAP to map uid 0
Zhen Lei <thunder.leizhen(a)huawei.com>
perf data: Fix error return code in perf_data__create_dir()
Bjorn Andersson <bjorn.andersson(a)linaro.org>
net: qrtr: Avoid potential use after free in MHI send
Daniel Borkmann <daniel(a)iogearbox.net>
bpf: Fix leakage of uninitialized bpf stack under speculation
Daniel Borkmann <daniel(a)iogearbox.net>
bpf: Fix masking negation logic upon negative dst register
Nick Lowe <nick.lowe(a)gmail.com>
igb: Enable RSS for Intel I211 Ethernet Controller
Phillip Potter <phil(a)philpotter.co.uk>
net: usb: ax88179_178a: initialize local variables before use
Jonathon Reinhart <jonathon.reinhart(a)gmail.com>
netfilter: conntrack: Make global sysctls readonly in non-init netns
Romain Naour <romain.naour(a)gmail.com>
mips: Do not include hi and lo in clobber list for R6
-------------
Diffstat:
Makefile | 4 +-
arch/mips/include/asm/vdso/gettimeofday.h | 26 ++-
drivers/net/ethernet/intel/igb/igb_main.c | 3 +-
drivers/net/usb/ax88179_178a.c | 6 +-
drivers/nvme/host/pci.c | 1 +
drivers/platform/x86/thinkpad_acpi.c | 31 ++--
drivers/usb/core/quirks.c | 4 +
fs/overlayfs/namei.c | 1 +
fs/overlayfs/super.c | 12 +-
include/linux/bpf_verifier.h | 5 +-
include/linux/device.h | 1 +
include/linux/dma-mapping.h | 16 ++
include/linux/swiotlb.h | 1 +
include/linux/user_namespace.h | 3 +
include/uapi/linux/capability.h | 3 +-
kernel/bpf/verifier.c | 33 ++--
kernel/dma/swiotlb.c | 259 +++++++++++++++++-------------
kernel/events/core.c | 12 +-
kernel/user_namespace.c | 65 +++++++-
net/netfilter/nf_conntrack_standalone.c | 10 +-
net/qrtr/mhi.c | 8 +-
sound/soc/codecs/ak4458.c | 1 +
sound/soc/codecs/ak5558.c | 1 +
sound/usb/quirks-table.h | 10 ++
tools/cgroup/memcg_slabinfo.py | 8 +-
tools/perf/builtin-ftrace.c | 2 +-
tools/perf/util/data.c | 5 +-
27 files changed, 347 insertions(+), 184 deletions(-)