OpenCloudOS-Kernel/include
Lu Baolu 26f2f1d33c iommu: Return right value in iommu_sva_bind_device()
[ Upstream commit 89e8a2366e3bce584b6c01549d5019c5cda1205e ]

iommu_sva_bind_device() should return either a sva bond handle or an
ERR_PTR value in error cases. Existing drivers (idxd and uacce) only
check the return value with IS_ERR(). This could potentially lead to
a kernel NULL pointer dereference issue if the function returns NULL
instead of an error pointer.

In reality, this doesn't cause any problems because iommu_sva_bind_device()
only returns NULL when the kernel is not configured with CONFIG_IOMMU_SVA.
In this case, iommu_dev_enable_feature(dev, IOMMU_DEV_FEAT_SVA) will
return an error, and the device drivers won't call iommu_sva_bind_device()
at all.

This fixes CVE-2024-40945.

Fixes: 26b25a2b98 ("iommu: Bind process address spaces to devices")
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Vasant Hegde <vasant.hegde@amd.com>
Link: https://lore.kernel.org/r/20240528042528.71396-1-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Sinong Chen <costinchen@tencent.com>
Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
2024-11-28 15:03:50 +08:00
..
acpi tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
asm-generic asm-generic: introduce io_stop_wc() and add implementation for ARM64 2024-06-12 13:16:50 +08:00
clocksource clocksource/drivers/arm_arch_timer: Remove any trace of the TVAL programming interface 2024-06-12 13:16:40 +08:00
crypto tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
drm tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
dt-bindings tkernel: add base tlinux kernel interfaces 2024-06-11 20:09:33 +08:00
keys tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
kvm KVM: arm64: pmu: Make overflow handler NMI safe 2024-11-05 17:04:08 +08:00
linux iommu: Return right value in iommu_sva_bind_device() 2024-11-28 15:03:50 +08:00
math-emu nds32: Mark expected switch fall-throughs 2019-08-29 11:06:56 -05:00
media tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
misc auxdisplay: charlcd: move charlcd.h to drivers/auxdisplay 2019-08-08 19:59:17 +02:00
net ipv6: fix race condition between ipv6_get_ifaddr and ipv6_del_addr 2024-11-28 14:57:53 +08:00
pcmcia
ras
rdma tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
scsi tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
soc ock: sync codes to ock 5.4.119-20.0009.21 2024-06-11 20:27:38 +08:00
sound HDA driver support for Phytium desktop 2024-11-28 12:26:14 +08:00
target tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
trace page_pool: Add API to update numa node 2024-06-12 13:16:51 +08:00
uapi serial driver support for Phytium desktop and embedded CPUs 2024-11-28 12:26:14 +08:00
vdso tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
video tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00
xen tkernel: sync code to the same with tk4 pub/lts/0017-kabi 2024-06-12 13:13:20 +08:00