Direct HLT instruction execution causes #VEs for TDX VMs which is routed
to hypervisor via TDCALL. safe_halt() routines execute HLT in STI-shadow
so IRQs need to remain disabled until the TDCALL to ensure that pending
IRQs are correctly treated as wake events. So "sti;hlt" sequence needs to
be replaced with "TDCALL; raw_local_irq_enable()" for TDX VMs.
Commit bfe6ed0c6727 ("x86/tdx: Add HLT support for TDX guests")
prevented the idle routines from using "sti;hlt". But it missed the
paravirt routine which can be reached like this as an example:
acpi_safe_halt() =>
raw_safe_halt() =>
arch_safe_halt() =>
irq.safe_halt() =>
pv_native_safe_halt()
Modify tdx_safe_halt() to implement the sequence "TDCALL;
raw_local_irq_enable()" and invoke tdx_halt() from idle routine which just
executes TDCALL without changing state of interrupts.
If CONFIG_PARAVIRT_XXL is disabled, "sti;hlt" sequences can still get
executed from TDX VMs via paths like:
acpi_safe_halt() =>
raw_safe_halt() =>
arch_safe_halt() =>
native_safe_halt()
There is a long term plan to fix these paths by carving out
irq.safe_halt() outside paravirt framework.
Cc: stable(a)vger.kernel.org
Fixes: bfe6ed0c6727 ("x86/tdx: Add HLT support for TDX guests")
Reviewed-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>@linux.intel.com>
Signed-off-by: Vishal Annapurve <vannapurve(a)google.com>
---
Changes since V2:
1) Addressed comments from Dave H and Kirill S.
V2: https://lore.kernel.org/lkml/20250129232525.3519586-1-vannapurve@google.com/
arch/x86/coco/tdx/tdx.c | 18 +++++++++++++++++-
arch/x86/include/asm/tdx.h | 2 +-
arch/x86/kernel/process.c | 2 +-
3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
index 32809a06dab4..5e68758666a4 100644
--- a/arch/x86/coco/tdx/tdx.c
+++ b/arch/x86/coco/tdx/tdx.c
@@ -14,6 +14,7 @@
#include <asm/ia32.h>
#include <asm/insn.h>
#include <asm/insn-eval.h>
+#include <asm/paravirt_types.h>
#include <asm/pgtable.h>
#include <asm/set_memory.h>
#include <asm/traps.h>
@@ -398,7 +399,7 @@ static int handle_halt(struct ve_info *ve)
return ve_instr_len(ve);
}
-void __cpuidle tdx_safe_halt(void)
+void __cpuidle tdx_halt(void)
{
const bool irq_disabled = false;
@@ -409,6 +410,12 @@ void __cpuidle tdx_safe_halt(void)
WARN_ONCE(1, "HLT instruction emulation failed\n");
}
+static void __cpuidle tdx_safe_halt(void)
+{
+ tdx_halt();
+ raw_local_irq_enable();
+}
+
static int read_msr(struct pt_regs *regs, struct ve_info *ve)
{
struct tdx_module_args args = {
@@ -1109,6 +1116,15 @@ void __init tdx_early_init(void)
x86_platform.guest.enc_kexec_begin = tdx_kexec_begin;
x86_platform.guest.enc_kexec_finish = tdx_kexec_finish;
+#ifdef CONFIG_PARAVIRT_XXL
+ /*
+ * Avoid the literal hlt instruction in TDX guests. hlt will
+ * induce a #VE in the STI-shadow which will enable interrupts
+ * in a place where they are not wanted.
+ */
+ pv_ops.irq.safe_halt = tdx_safe_halt;
+#endif
+
/*
* TDX intercepts the RDMSR to read the X2APIC ID in the parallel
* bringup low level code. That raises #VE which cannot be handled
diff --git a/arch/x86/include/asm/tdx.h b/arch/x86/include/asm/tdx.h
index b4b16dafd55e..393ee2dfaab1 100644
--- a/arch/x86/include/asm/tdx.h
+++ b/arch/x86/include/asm/tdx.h
@@ -58,7 +58,7 @@ void tdx_get_ve_info(struct ve_info *ve);
bool tdx_handle_virt_exception(struct pt_regs *regs, struct ve_info *ve);
-void tdx_safe_halt(void);
+void tdx_halt(void);
bool tdx_early_handle_ve(struct pt_regs *regs);
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 6da6769d7254..d11956a178df 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -934,7 +934,7 @@ void __init select_idle_routine(void)
static_call_update(x86_idle, mwait_idle);
} else if (cpu_feature_enabled(X86_FEATURE_TDX_GUEST)) {
pr_info("using TDX aware idle routine\n");
- static_call_update(x86_idle, tdx_safe_halt);
+ static_call_update(x86_idle, tdx_halt);
} else {
static_call_update(x86_idle, default_idle);
}
--
2.48.1.502.g6dc24dfdaf-goog
The patch titled
Subject: kasan: don't call find_vm_area() in RT kernel
has been added to the -mm mm-hotfixes-unstable branch. Its filename is
kasan-dont-call-find_vm_area-in-rt-kernel.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patche…
This patch will later appear in the mm-hotfixes-unstable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days
------------------------------------------------------
From: Waiman Long <longman(a)redhat.com>
Subject: kasan: don't call find_vm_area() in RT kernel
Date: Tue, 11 Feb 2025 11:07:50 -0500
The following bug report appeared with a test run in a RT debug kernel.
[ 3359.353842] BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
[ 3359.353848] in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 140605, name: kunit_try_catch
[ 3359.353853] preempt_count: 1, expected: 0
:
[ 3359.353933] Call trace:
:
[ 3359.353955] rt_spin_lock+0x70/0x140
[ 3359.353959] find_vmap_area+0x84/0x168
[ 3359.353963] find_vm_area+0x1c/0x50
[ 3359.353966] print_address_description.constprop.0+0x2a0/0x320
[ 3359.353972] print_report+0x108/0x1f8
[ 3359.353976] kasan_report+0x90/0xc8
[ 3359.353980] __asan_load1+0x60/0x70
print_address_description() is run with a raw_spinlock_t acquired and
interrupt disabled. find_vm_area() needs to acquire a spinlock_t which
becomes a sleeping lock in the RT kernel. IOW, we can't call
find_vm_area() in a RT kernel. Fix this bug report by skipping the
find_vm_area() call in this case and just print out the address as is.
For !RT kernel, follow the example set in commit 0cce06ba859a
("debugobjects,locking: Annotate debug_object_fill_pool() wait type
violation") and use DEFINE_WAIT_OVERRIDE_MAP() to avoid a spinlock_t
inside raw_spinlock_t warning.
Link: https://lkml.kernel.org/r/20250211160750.1301353-1-longman@redhat.com
Fixes: c056a364e954 ("kasan: print virtual mapping info in reports")
Signed-off-by: Waiman Long <longman(a)redhat.com>
Cc: Alexander Potapenko <glider(a)google.com>
Cc: Andrey Konovalov <andreyknvl(a)gmail.com>
Cc: Andrey Ryabinin <ryabinin.a.a(a)gmail.com>
Cc: Dmitriy Vyukov <dvyukov(a)google.com>
Cc: Steven Rostedt <rostedt(a)goodmis.org>
Cc: Mariano Pache <npache(a)redhat.com>
Cc: Sebastian Andrzej Siewior <bigeasy(a)linutronix.de>
Cc: Vincenzo Frascino <vincenzo.frascino(a)arm.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/kasan/report.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
--- a/mm/kasan/report.c~kasan-dont-call-find_vm_area-in-rt-kernel
+++ a/mm/kasan/report.c
@@ -398,9 +398,20 @@ static void print_address_description(vo
pr_err("\n");
}
- if (is_vmalloc_addr(addr)) {
- struct vm_struct *va = find_vm_area(addr);
+ if (!is_vmalloc_addr(addr))
+ goto print_page;
+ /*
+ * RT kernel cannot call find_vm_area() in atomic context.
+ * For !RT kernel, prevent spinlock_t inside raw_spinlock_t warning
+ * by raising wait-type to WAIT_SLEEP.
+ */
+ if (!IS_ENABLED(CONFIG_PREEMPT_RT)) {
+ static DEFINE_WAIT_OVERRIDE_MAP(vmalloc_map, LD_WAIT_SLEEP);
+ struct vm_struct *va;
+
+ lock_map_acquire_try(&vmalloc_map);
+ va = find_vm_area(addr);
if (va) {
pr_err("The buggy address belongs to the virtual mapping at\n"
" [%px, %px) created by:\n"
@@ -410,8 +421,13 @@ static void print_address_description(vo
page = vmalloc_to_page(addr);
}
+ lock_map_release(&vmalloc_map);
+ } else {
+ pr_err("The buggy address %px belongs to a vmalloc virtual mapping\n",
+ addr);
}
+print_page:
if (page) {
pr_err("The buggy address belongs to the physical page:\n");
dump_page(page, "kasan: bad access detected");
_
Patches currently in -mm which might be from longman(a)redhat.com are
kasan-dont-call-find_vm_area-in-rt-kernel.patch
This is the start of the stable review cycle for the 6.12.8 release.
There are 114 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 Wed, 01 Jan 2025 15:41:48 +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/v6.x/stable-review/patch-6.12.8-rc1…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.12.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 6.12.8-rc1
Takashi Iwai <tiwai(a)suse.de>
ALSA: sh: Fix wrong argument order for copy_from_iter()
Takashi Iwai <tiwai(a)suse.de>
ALSA: ump: Shut up truncated string warning
Chris Lu <chris.lu(a)mediatek.com>
Bluetooth: btusb: mediatek: change the conditions for ISO interface
Chris Lu <chris.lu(a)mediatek.com>
Bluetooth: btusb: mediatek: add intf release flow when usb disconnect
Chris Lu <chris.lu(a)mediatek.com>
Bluetooth: btusb: mediatek: add callback function in btusb_disconnect
Chris Lu <chris.lu(a)mediatek.com>
Bluetooth: btusb: mediatek: move Bluetooth power off command position
Boris Burkov <boris(a)bur.io>
btrfs: check folio mapping after unlock in relocate_one_folio()
Boris Burkov <boris(a)bur.io>
btrfs: check folio mapping after unlock in put_file_data()
Filipe Manana <fdmanana(a)suse.com>
btrfs: fix use-after-free when COWing tree bock and tracing is enabled
Qu Wenruo <wqu(a)suse.com>
btrfs: sysfs: fix direct super block member reads
Julian Sun <sunjunchao2870(a)gmail.com>
btrfs: fix transaction atomicity bug when enabling simple quotas
Filipe Manana <fdmanana(a)suse.com>
btrfs: fix swap file activation failure due to extents that used to be shared
Filipe Manana <fdmanana(a)suse.com>
btrfs: avoid monopolizing a core when activating a swap file
Filipe Manana <fdmanana(a)suse.com>
btrfs: fix race with memory mapped writes when activating swap file
Dimitri Fedrau <dimitri.fedrau(a)liebherr.com>
power: supply: gpio-charger: Fix set charge current limits
Thomas Weißschuh <linux(a)weissschuh.net>
power: supply: cros_charge-control: hide start threshold on v2 cmd
Thomas Weißschuh <linux(a)weissschuh.net>
power: supply: cros_charge-control: allow start_threshold == end_threshold
Thomas Weißschuh <linux(a)weissschuh.net>
power: supply: cros_charge-control: add mutex for driver data
Kan Liang <kan.liang(a)linux.intel.com>
perf/x86/intel/ds: Add PEBS format 6
Conor Dooley <conor.dooley(a)microchip.com>
i2c: microchip-core: fix "ghost" detections
Carlos Song <carlos.song(a)nxp.com>
i2c: imx: add imx7d compatible string for applying erratum ERR007805
Kan Liang <kan.liang(a)linux.intel.com>
perf/x86/intel: Fix bitmask of OCR and FRONTEND events for LNC
Thomas Gleixner <tglx(a)linutronix.de>
PCI/MSI: Handle lack of irqdomain gracefully
Li RongQing <lirongqing(a)baidu.com>
virt: tdx-guest: Just leak decrypted memory on unrecoverable errors
Xin Li (Intel) <xin(a)zytor.com>
x86/fred: Clear WFE in missing-ENDBRANCH #CPs
Conor Dooley <conor.dooley(a)microchip.com>
i2c: microchip-core: actually use repeated sends
Pavel Begunkov <asml.silence(a)gmail.com>
io_uring/sqpoll: fix sqpoll error handling races
Tomas Glozar <tglozar(a)redhat.com>
rtla/timerlat: Fix histogram ALL for zero samples
Lizhi Xu <lizhi.xu(a)windriver.com>
tracing: Prevent bad count for tracing_cpumask_write
Christian Göttsche <cgzones(a)googlemail.com>
tracing: Constify string literal data member in struct trace_event_call
Kan Liang <kan.liang(a)linux.intel.com>
perf/x86/intel/uncore: Add Clearwater Forest support
Binbin Zhou <zhoubinbin(a)loongson.cn>
dmaengine: loongson2-apb: Change GENMASK to GENMASK_ULL
Chen Ridong <chenridong(a)huawei.com>
freezer, sched: Report frozen tasks as 'D' instead of 'R'
chenchangcheng <ccc194101(a)163.com>
objtool: Add bch2_trans_unlocked_error() to bcachefs noreturns
John Harrison <John.C.Harrison(a)Intel.com>
drm/xe: Move the coredump registration to the worker thread
Matthew Brost <matthew.brost(a)intel.com>
drm/xe: Take PM ref in delayed snapshot capture worker
Ming Lei <ming.lei(a)redhat.com>
ublk: detach gendisk from ublk device if add_disk() fails
Emmanuel Grumbach <emmanuel.grumbach(a)intel.com>
wifi: iwlwifi: be less noisy if the NIC is dead in S3
Ming Lei <ming.lei(a)redhat.com>
blk-mq: register cpuhp callback after hctx is added to xarray table
Ming Lei <ming.lei(a)redhat.com>
virtio-blk: don't keep queue frozen during system suspend
Imre Deak <imre.deak(a)intel.com>
drm/dp_mst: Ensure mst_primary pointer is valid in drm_dp_mst_handle_up_req()
Purushothama Siddaiah <psiddaiah(a)mvista.com>
spi: omap2-mcspi: Fix the IS_ERR() bug for devm_clk_get_optional_enabled()
Qinxin Xia <xiaqinxin(a)huawei.com>
ACPI/IORT: Add PMCG platform information for HiSilicon HIP09A
Cathy Avery <cavery(a)redhat.com>
scsi: storvsc: Do not flag MAINTENANCE_IN return of SRB_STATUS_DATA_OVERRUN as an error
Ranjan Kumar <ranjan.kumar(a)broadcom.com>
scsi: mpi3mr: Handling of fault code for insufficient power
Ranjan Kumar <ranjan.kumar(a)broadcom.com>
scsi: mpi3mr: Start controller indexing from 0
Ranjan Kumar <ranjan.kumar(a)broadcom.com>
scsi: mpi3mr: Fix corrupt config pages PHY state is switched in sysfs
Ranjan Kumar <ranjan.kumar(a)broadcom.com>
scsi: mpi3mr: Synchronize access to ioctl data buffer
Ranjan Kumar <ranjan.kumar(a)broadcom.com>
scsi: mpt3sas: Diag-Reset when Doorbell-In-Use bit is set during driver load time
Aapo Vienamo <aapo.vienamo(a)iki.fi>
spi: intel: Add Panther Lake SPI controller support
Kumar Kartikeya Dwivedi <memxor(a)gmail.com>
bpf: Zero index arg error string for dynptr and iter
Armin Wolf <W_Armin(a)gmx.de>
platform/x86: asus-nb-wmi: Ignore unknown event 0xCF
Tiezhu Yang <yangtiezhu(a)loongson.cn>
LoongArch: BPF: Adjust the parameter of emit_jirl()
Huacai Chen <chenhuacai(a)kernel.org>
LoongArch: Fix reserving screen info memory for above-4G firmware
Mark Brown <broonie(a)kernel.org>
regmap: Use correct format specifier for logging range errors
Brahmajit Das <brahmajit.xyz(a)gmail.com>
smb: server: Fix building with GCC 15
Takashi Iwai <tiwai(a)suse.de>
ALSA: sh: Use standard helper for buffer accesses
bo liu <bo.liu(a)senarytech.com>
ALSA: hda/conexant: fix Z60MR100 startup pop issue
Takashi Iwai <tiwai(a)suse.de>
ALSA: ump: Update legacy substream names upon FB info update
Takashi Iwai <tiwai(a)suse.de>
ALSA: ump: Indicate the inactive group in legacy substream names
Takashi Iwai <tiwai(a)suse.de>
ALSA: ump: Don't open legacy substream for an inactive group
Jan Kara <jack(a)suse.cz>
udf: Verify inode link counts before performing rename
Jan Kara <jack(a)suse.cz>
udf: Skip parent dir link count update if corrupted
Tomas Henzl <thenzl(a)redhat.com>
scsi: megaraid_sas: Fix for a potential deadlock
Magnus Lindholm <linmag7(a)gmail.com>
scsi: qla1280: Fix hw revision numbering for ISP1020/1040
Yassine Oudjana <y.oudjana(a)protonmail.com>
watchdog: mediatek: Add support for MT6735 TOPRGU/WDT
Peter Griffin <peter.griffin(a)linaro.org>
Revert "watchdog: s3c2410_wdt: use exynos_get_pmu_regmap_by_phandle() for PMU regs"
Claudiu Beznea <claudiu.beznea.uj(a)bp.renesas.com>
watchdog: rzg2l_wdt: Power on the watchdog domain in the restart handler
James Hilliard <james.hilliard1(a)gmail.com>
watchdog: it87_wdt: add PWRGD enable quirk for Qotom QCML04
Masami Hiramatsu (Google) <mhiramat(a)kernel.org>
tracing/kprobe: Make trace_kprobe's module callback called after jump_label update
Alexander Lobakin <aleksander.lobakin(a)intel.com>
stddef: make __struct_group() UAPI C++-friendly
Hans de Goede <hdegoede(a)redhat.com>
power: supply: bq24190: Fix BQ24296 Vbus regulator support
Haren Myneni <haren(a)linux.ibm.com>
powerpc/pseries/vas: Add close() callback in vas_vm_ops struct
Richard Fitzgerald <rf(a)opensource.cirrus.com>
ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 21Q6 and 21Q7
Chen-Yu Tsai <wenst(a)chromium.org>
ASoC: dt-bindings: realtek,rt5645: Fix CPVDD voltage comment
Richard Fitzgerald <rf(a)opensource.cirrus.com>
ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 21QA and 21QB
Venkata Prasad Potturu <venkataprasad.potturu(a)amd.com>
ASoC: amd: ps: Fix for enabling DMIC on acp63 platform via _DSD entry
Dan Carpenter <dan.carpenter(a)linaro.org>
mtd: rawnand: fix double free in atmel_pmecc_create_user()
Dustin L. Howett <dustin(a)howett.net>
platform/chrome: cros_ec_lpc: fix product identity for early Framework Laptops
Peter Ujfalusi <peter.ujfalusi(a)linux.intel.com>
ASoC: SOF: Intel: hda-dai: Do not release the link DMA on STOP
Chen Ridong <chenridong(a)huawei.com>
dmaengine: at_xdmac: avoid null_prt_deref in at_xdmac_prep_dma_memset
Sasha Finkelstein <fnkl.kernel(a)gmail.com>
dmaengine: apple-admac: Avoid accessing registers in probe
Joe Hattori <joe(a)pf.is.s.u-tokyo.ac.jp>
dmaengine: fsl-edma: implement the cleanup path of fsl_edma3_attach_pd()
Lizhi Hou <lizhi.hou(a)amd.com>
dmaengine: amd: qdma: Remove using the private get and set dma_ops APIs
Akhil R <akhilrajeev(a)nvidia.com>
dmaengine: tegra: Return correct DMA status when paused
Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
dmaengine: dw: Select only supported masters for ACPI devices
Javier Carrasco <javier.carrasco.cruz(a)gmail.com>
dmaengine: mv_xor: fix child node refcount handling in early exit
Fedor Pchelkin <pchelkin(a)ispras.ru>
ALSA: memalloc: prefer dma_mapping_error() over explicit address checking
Chukun Pan <amadeus(a)jmu.edu.cn>
phy: rockchip: naneng-combphy: fix phy reset
Cristian Ciocaltea <cristian.ciocaltea(a)collabora.com>
phy: rockchip: samsung-hdptx: Set drvdata before enabling runtime PM
Justin Chen <justin.chen(a)broadcom.com>
phy: usb: Toggle the PHY power during init
Zijun Hu <quic_zijuhu(a)quicinc.com>
phy: core: Fix that API devm_phy_destroy() fails to destroy the phy
Zijun Hu <quic_zijuhu(a)quicinc.com>
phy: core: Fix that API devm_of_phy_provider_unregister() fails to unregister the phy provider
Zijun Hu <quic_zijuhu(a)quicinc.com>
phy: core: Fix that API devm_phy_put() fails to release the phy
Zijun Hu <quic_zijuhu(a)quicinc.com>
phy: core: Fix an OF node refcount leakage in of_phy_provider_lookup()
Zijun Hu <quic_zijuhu(a)quicinc.com>
phy: core: Fix an OF node refcount leakage in _of_phy_get()
Krishna Kurapati <quic_kriskura(a)quicinc.com>
phy: qcom-qmp: Fix register name in RX Lane config of SC8280XP
Maciej Andrzejewski <maciej.andrzejewski(a)m-works.net>
mtd: rawnand: arasan: Fix missing de-registration of NAND
Maciej Andrzejewski <maciej.andrzejewski(a)m-works.net>
mtd: rawnand: arasan: Fix double assertion of chip-select
Zichen Xie <zichenxie0106(a)gmail.com>
mtd: diskonchip: Cast an operand to prevent potential overflow
NeilBrown <neilb(a)suse.de>
nfsd: restore callback functionality for NFSv4.0
Yang Erkun <yangerkun(a)huawei.com>
nfsd: Revert "nfsd: release svc_expkey/svc_export with rcu_work"
Cong Wang <cong.wang(a)bytedance.com>
bpf: Check negative offsets in __bpf_skb_min_len()
Zijian Zhang <zijianzhang(a)bytedance.com>
tcp_bpf: Add sk_rmem_alloc related logic for tcp_bpf ingress redirection
Cong Wang <cong.wang(a)bytedance.com>
tcp_bpf: Charge receive socket buffer in bpf_tcp_ingress()
Bharath SM <bharathsm.hsk(a)gmail.com>
smb: fix bytes written value in /proc/fs/cifs/Stats
Dragan Simic <dsimic(a)manjaro.org>
smb: client: Deduplicate "select NETFS_SUPPORT" in Kconfig
Jerome Marchand <jmarchan(a)redhat.com>
selftests/bpf: Fix compilation error in get_uprobe_offset()
Bart Van Assche <bvanassche(a)acm.org>
mm/vmstat: fix a W=1 clang compiler warning
Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
fork: avoid inappropriate uprobe access to invalid mm
Andrea Righi <arighi(a)nvidia.com>
bpf: Fix bpf_get_smp_processor_id() on !CONFIG_SMP
Willow Cunningham <willow.e.cunningham(a)gmail.com>
arm64: dts: broadcom: Fix L2 linesize for Raspberry Pi 5
Ilya Dryomov <idryomov(a)gmail.com>
ceph: allocate sparse_ext map only for sparse reads
Nikita Zhandarovich <n.zhandarovich(a)fintech.ru>
media: dvb-frontends: dib3000mb: fix uninit-value in dib3000_write_reg
-------------
Diffstat:
Documentation/arch/arm64/silicon-errata.rst | 5 +-
.../devicetree/bindings/sound/realtek,rt5645.yaml | 2 +-
Makefile | 4 +-
arch/arm64/boot/dts/broadcom/bcm2712.dtsi | 8 +-
arch/loongarch/include/asm/inst.h | 12 +-
arch/loongarch/kernel/efi.c | 2 +-
arch/loongarch/kernel/inst.c | 2 +-
arch/loongarch/net/bpf_jit.c | 6 +-
arch/powerpc/platforms/book3s/vas-api.c | 36 +++++
arch/x86/events/intel/core.c | 12 +-
arch/x86/events/intel/ds.c | 1 +
arch/x86/events/intel/uncore.c | 1 +
arch/x86/kernel/cet.c | 30 ++++
block/blk-mq.c | 15 +-
drivers/acpi/arm64/iort.c | 2 +
drivers/base/regmap/regmap.c | 4 +-
drivers/block/ublk_drv.c | 26 +--
drivers/block/virtio_blk.c | 7 +-
drivers/bluetooth/btusb.c | 41 +++--
drivers/dma/amd/qdma/qdma.c | 28 ++--
drivers/dma/apple-admac.c | 7 +-
drivers/dma/at_xdmac.c | 2 +
drivers/dma/dw/acpi.c | 6 +-
drivers/dma/dw/internal.h | 8 +
drivers/dma/dw/pci.c | 4 +-
drivers/dma/fsl-edma-common.h | 1 +
drivers/dma/fsl-edma-main.c | 41 ++++-
drivers/dma/ls2x-apb-dma.c | 2 +-
drivers/dma/mv_xor.c | 2 +
drivers/dma/tegra186-gpc-dma.c | 10 ++
drivers/gpu/drm/display/drm_dp_mst_topology.c | 24 ++-
drivers/gpu/drm/xe/xe_devcoredump.c | 69 ++++----
drivers/i2c/busses/i2c-imx.c | 1 +
drivers/i2c/busses/i2c-microchip-corei2c.c | 126 +++++++++++----
drivers/media/dvb-frontends/dib3000mb.c | 2 +-
drivers/mtd/nand/raw/arasan-nand-controller.c | 11 +-
drivers/mtd/nand/raw/atmel/pmecc.c | 4 +-
drivers/mtd/nand/raw/diskonchip.c | 2 +-
drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 13 +-
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 28 +++-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 2 +
drivers/pci/msi/irqdomain.c | 7 +-
drivers/pci/msi/msi.c | 4 +
drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c | 6 +
drivers/phy/phy-core.c | 21 ++-
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 2 +-
drivers/phy/rockchip/phy-rockchip-naneng-combphy.c | 2 +-
drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c | 3 +-
drivers/platform/chrome/cros_ec_lpc.c | 4 +-
drivers/platform/x86/asus-nb-wmi.c | 1 +
drivers/power/supply/bq24190_charger.c | 12 +-
drivers/power/supply/cros_charge-control.c | 36 +++--
drivers/power/supply/gpio-charger.c | 8 +
drivers/scsi/megaraid/megaraid_sas_base.c | 5 +-
drivers/scsi/mpi3mr/mpi3mr.h | 9 --
drivers/scsi/mpi3mr/mpi3mr_app.c | 36 +++--
drivers/scsi/mpi3mr/mpi3mr_fw.c | 121 ++++++--------
drivers/scsi/mpi3mr/mpi3mr_os.c | 2 +-
drivers/scsi/mpt3sas/mpt3sas_base.c | 7 +-
drivers/scsi/qla1280.h | 12 +-
drivers/scsi/storvsc_drv.c | 7 +-
drivers/spi/spi-intel-pci.c | 2 +
drivers/spi/spi-omap2-mcspi.c | 6 +-
drivers/virt/coco/tdx-guest/tdx-guest.c | 4 +-
drivers/watchdog/Kconfig | 1 +
drivers/watchdog/it87_wdt.c | 39 +++++
drivers/watchdog/mtk_wdt.c | 6 +
drivers/watchdog/rzg2l_wdt.c | 20 ++-
drivers/watchdog/s3c2410_wdt.c | 8 +-
fs/btrfs/ctree.c | 11 +-
fs/btrfs/inode.c | 129 +++++++++++----
fs/btrfs/qgroup.c | 3 +-
fs/btrfs/relocation.c | 6 +
fs/btrfs/send.c | 6 +
fs/btrfs/sysfs.c | 6 +-
fs/ceph/file.c | 2 +-
fs/nfsd/export.c | 31 +---
fs/nfsd/export.h | 4 +-
fs/nfsd/nfs4callback.c | 4 +-
fs/smb/client/Kconfig | 1 -
fs/smb/client/smb2pdu.c | 3 +
fs/smb/server/smb_common.c | 4 +-
fs/udf/namei.c | 16 +-
include/linux/platform_data/amd_qdma.h | 2 +
include/linux/sched.h | 3 +-
include/linux/skmsg.h | 11 +-
include/linux/trace_events.h | 2 +-
include/linux/vmstat.h | 2 +-
include/net/sock.h | 10 +-
include/uapi/linux/stddef.h | 13 +-
io_uring/sqpoll.c | 6 +
kernel/bpf/verifier.c | 18 ++-
kernel/fork.c | 13 +-
kernel/trace/trace.c | 3 +
kernel/trace/trace_kprobe.c | 2 +-
net/ceph/osd_client.c | 2 +
net/core/filter.c | 21 ++-
net/core/skmsg.c | 6 +-
net/ipv4/tcp_bpf.c | 6 +-
sound/core/memalloc.c | 2 +-
sound/core/ump.c | 26 ++-
sound/pci/hda/patch_conexant.c | 28 ++++
sound/sh/sh_dac_audio.c | 5 +-
sound/soc/amd/ps/pci-ps.c | 17 +-
sound/soc/intel/boards/sof_sdw.c | 23 ++-
sound/soc/sof/intel/hda-dai.c | 25 ++-
sound/soc/sof/intel/hda.h | 2 -
tools/include/uapi/linux/stddef.h | 15 +-
tools/objtool/noreturns.h | 1 +
tools/testing/selftests/bpf/progs/dynptr_fail.c | 22 +--
.../selftests/bpf/progs/iters_state_safety.c | 14 +-
.../selftests/bpf/progs/iters_testmod_seq.c | 4 +-
.../selftests/bpf/progs/test_kfunc_dynptr_param.c | 2 +-
.../selftests/bpf/progs/verifier_bits_iter.c | 4 +-
tools/testing/selftests/bpf/trace_helpers.c | 4 +
tools/tracing/rtla/src/timerlat_hist.c | 177 +++++++++++----------
116 files changed, 1169 insertions(+), 548 deletions(-)
From: Song Yoong Siang <yoong.siang.song(a)intel.com>
Set the buffer type to IGC_TX_BUFFER_TYPE_SKB for empty frame in the
igc_init_empty_frame function. This ensures that the buffer type is
correctly identified and handled during Tx ring cleanup.
Fixes: db0b124f02ba ("igc: Enhance Qbv scheduling by using first flag bit")
Cc: stable(a)vger.kernel.org # 6.2+
Signed-off-by: Song Yoong Siang <yoong.siang.song(a)intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski(a)intel.com>
Reviewed-by: Simon Horman <horms(a)kernel.org>
Tested-by: Mor Bar-Gabay <morx.bar.gabay(a)intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen(a)intel.com>
---
drivers/net/ethernet/intel/igc/igc_main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 21f318f12a8d..84307bb7313e 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -1096,6 +1096,7 @@ static int igc_init_empty_frame(struct igc_ring *ring,
return -ENOMEM;
}
+ buffer->type = IGC_TX_BUFFER_TYPE_SKB;
buffer->skb = skb;
buffer->protocol = 0;
buffer->bytecount = skb->len;
--
2.47.1
This series adds T6020 support to the Apple PCIe controller. Mostly
Apple shuffled registers around (presumably to accommodate the larger
configurations on those machines). So there's a bit of churn here but
not too much in the way of functional changes.
Signed-off-by: Alyssa Rosenzweig <alyssa(a)rosenzweig.io>
---
Alyssa Rosenzweig (1):
dt-bindings: pci: apple,pcie: Add t6020 support
Hector Martin (5):
PCI: apple: Fix missing OF node reference in apple_pcie_setup_port
PCI: apple: Move port PHY registers to their own reg items
PCI: apple: Drop poll for CORE_RC_PHYIF_STAT_REFCLK
PCI: apple: Use gpiod_set_value_cansleep in probe flow
PCI: apple: Add T602x PCIe support
Janne Grunau (1):
PCI: apple: Set only available ports up
.../devicetree/bindings/pci/apple,pcie.yaml | 1 +
drivers/pci/controller/pcie-apple.c | 189 ++++++++++++++++-----
2 files changed, 146 insertions(+), 44 deletions(-)
---
base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
change-id: 20250211-pcie-t6-3f4898ce9b1d
Best regards,
--
Alyssa Rosenzweig <alyssa(a)rosenzweig.io>