android_kernel_msm-6.1_noth.../drivers/misc
Lu Baolu 36db10b1ad UPSTREAM: iommu: Remove SVM_FLAG_SUPERVISOR_MODE support
The current kernel DMA with PASID support is based on the SVA with a flag
SVM_FLAG_SUPERVISOR_MODE. The IOMMU driver binds the kernel memory address
space to a PASID of the device. The device driver programs the device with
kernel virtual address (KVA) for DMA access. There have been security and
functional issues with this approach:

- The lack of IOTLB synchronization upon kernel page table updates.
  (vmalloc, module/BPF loading, CONFIG_DEBUG_PAGEALLOC etc.)
- Other than slight more protection, using kernel virtual address (KVA)
  has little advantage over physical address. There are also no use
  cases yet where DMA engines need kernel virtual addresses for in-kernel
  DMA.

This removes SVM_FLAG_SUPERVISOR_MODE support from the IOMMU interface.
The device drivers are suggested to handle kernel DMA with PASID through
the kernel DMA APIs.

The drvdata parameter in iommu_sva_bind_device() and all callbacks is not
needed anymore. Cleanup them as well.

Link: https://lore.kernel.org/linux-iommu/20210511194726.GP1002214@nvidia.com/
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Fenghua Yu <fenghua.yu@intel.com>
Tested-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Tested-by: Tony Zhu <tony.zhu@intel.com>
Link: https://lore.kernel.org/r/20221031005917.45690-4-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>

(cherry picked from commit 942fd5435dccb273f90176b046ae6bbba60cfbd8)
Bug: 271394577
Change-Id: I568663921ccb4af3898806d576e3d7b605157d32
Signed-off-by: Michael Shavit <mshavit@google.com>
2023-04-12 02:08:27 +00:00
..
altera-stapl misc: move from strlcpy with unused retval to strscpy 2022-09-01 16:29:42 +02:00
bcm-vk misc: bcm_vk: Remove usage of deprecated functions 2022-09-01 16:29:32 +02:00
c2port
cardreader
cb710
cxl cxl: Fix refcount leak in cxl_calc_capp_routing 2022-12-31 13:32:50 +01:00
echo
eeprom eeprom: idt_89hpesx: Fix error handling in idt_init() 2023-03-10 09:33:32 +01:00
genwqe
habanalabs habanalabs: fix bug in timestamps registration code 2023-03-10 09:33:58 +01:00
ibmasm
lis3lv02d
lkdtm lkdtm: cfi: Make PAC test work with GCC 7 and 8 2022-12-31 13:33:07 +01:00
mchp_pci1xxxx misc: microchip: pci1xxxx: Fix a memory leak in the error handling of gp_aux_bus_probe() 2022-09-22 16:54:35 +02:00
mei mei: bus-fixup:upon error print return values of send and receive 2023-03-11 13:55:35 +01:00
ocxl ocxl: fix pci device refcount leak when calling get_function_0() 2022-12-31 13:32:40 +01:00
pvpanic
sgi-gru misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault and gru_handle_user_call_os 2022-12-31 13:32:40 +01:00
sgi-xp drivers/misc/sgi-xp: Remove orphan declarations from drivers/misc/sgi-xp/xp.h 2022-09-24 14:57:19 +02:00
ti-st
uacce UPSTREAM: iommu: Remove SVM_FLAG_SUPERVISOR_MODE support 2023-04-12 02:08:27 +00:00
vmw_vmci VMCI: check context->notify_page after call to get_user_pages_fast() to avoid GPF 2023-03-10 09:33:33 +01:00
ad525x_dpot-i2c.c
ad525x_dpot-spi.c
ad525x_dpot.c
ad525x_dpot.h
apds990x.c
apds9802als.c
atmel-ssc.c
bh1770glc.c
cs5535-mfgpt.c
ds1682.c
dummy-irq.c
dw-xdata-pcie.c
enclosure.c
fastrpc.c misc: fastrpc: Fix an error handling path in fastrpc_rpmsg_probe() 2023-03-10 09:33:33 +01:00
gehc-achc.c
hi6421v600-irq.c
hisi_hikey_usb.c
hmc6352.c
hpilo.c
hpilo.h
ibmvmc.c ibmvmc: don't open-code file_inode() 2022-09-01 17:42:27 -04:00
ibmvmc.h
ics932s401.c Char/Misc and other driver changes for 6.1-rc1 2022-10-08 08:56:37 -07:00
isl29003.c
isl29020.c
Kconfig Revert "ANDROID: disble the UID_SYS_STATS driver" 2023-03-09 23:13:08 +00:00
kgdbts.c
lattice-ecp3-config.c
Makefile Merge a09476668e ("Merge tag 'char-misc-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc") into android-mainline 2022-10-12 09:34:26 +02:00
open-dice.c
pch_phub.c
pci_endpoint_test.c misc: pci_endpoint_test: Fix pci_endpoint_test_{copy,write,read}() panic 2022-09-09 10:24:12 +02:00
phantom.c
qcom-coincell.c
sram-exec.c
sram.c
sram.h
tifm_7xx1.c misc: tifm: fix possible memory leak in tifm_7xx1_switch_media() 2022-12-31 13:32:40 +01:00
tifm_core.c
tsl2550.c
uid_sys_stats.c
vcpu_stall_detector.c
vmw_balloon.c misc: vmw_balloon: fix memory leak with using debugfs_lookup() 2023-03-11 13:55:39 +01:00
xilinx_sdfec.c misc/xilinx_sdfec: Replace kmap() with kmap_local_page() 2022-09-09 10:22:36 +02:00