linux-stable/drivers
Jens Wiklander 2922aff433 optee: use driver internal tee_context for some rpc
commit aceeafefff upstream.

Adds a driver private tee_context by moving the tee_context in struct
optee_notif to struct optee. This tee_context was previously used when
doing internal calls to secure world to deliver notification.

The new driver internal tee_context is now also when allocating driver
private shared memory. This decouples the shared memory object from its
original tee_context. This is needed when the life time of such a memory
allocation outlives the client tee_context.

This patch fixes the problem described below:

The addition of a shutdown hook by commit f25889f931 ("optee: fix tee out
of memory failure seen during kexec reboot") introduced a kernel shutdown
regression that can be triggered after running the OP-TEE xtest suites.

Once the shutdown hook is called it is not possible to communicate any more
with the supplicant process because the system is not scheduling task any
longer. Thus if the optee driver shutdown path receives a supplicant RPC
request from the OP-TEE we will deadlock the kernel's shutdown.

Fixes: f25889f931 ("optee: fix tee out of memory failure seen during kexec reboot")
Fixes: 217e0250cc ("tee: use reference counting for tee_context")
Reported-by: Lars Persson <larper@axis.com>
Cc: stable@vger.kernel.org
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
[JW: backport to 5.15-stable + update commit message]
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:47:51 +01:00
..
accessibility speakup-dectlk: Restore pitch setting 2022-02-16 12:56:37 +01:00
acpi ACPI: PM: Revert "Only mark EC GPE for wakeup on Intel systems" 2022-02-23 12:03:18 +01:00
amba ARM: 9120/1: Revert "amba: make use of -1 IRQs warn" 2021-11-06 14:13:31 +01:00
android binder: avoid potential data leakage when copying txn 2022-01-27 11:04:09 +01:00
ata ata: libata-core: Disable TRIM on M88V29 2022-02-23 12:03:19 +01:00
atm
auxdisplay auxdisplay: charlcd: checking for pointer reference before dereferencing 2022-01-11 15:35:17 +01:00
base PM: s2idle: ACPI: Fix wakeup interrupts handling 2022-02-16 12:56:19 +01:00
bcma
block block: fix surprise removal for drivers calling blk_set_queue_dying 2022-02-23 12:03:15 +01:00
bluetooth Bluetooth: btusb: Return error code when getting patch status failed 2022-01-27 11:05:22 +01:00
bus bus: mhi: pci_generic: Add mru_default for Cinterion MV31-W 2022-02-16 12:56:39 +01:00
cdrom
char random: wake up /dev/random writers after zap 2022-02-23 12:03:07 +01:00
clk clk: jz4725b: fix mmc0 clock gating 2022-03-02 11:47:48 +01:00
clocksource ARM: dts: Fix timer regression for beagleboard revision c 2022-02-16 12:56:21 +01:00
comedi comedi: vmk80xx: fix bulk and interrupt message timeouts 2021-11-12 15:05:51 +01:00
connector
counter
cpufreq cpufreq: Fix initialization of min and max frequency QoS requests 2022-01-27 11:04:44 +01:00
cpuidle cpuidle: Fix kobject memory leaks in error paths 2021-11-18 19:16:29 +01:00
crypto crypto: octeontx2 - uninitialized variable in kvf_limits_store() 2022-01-27 11:05:30 +01:00
cxl cxl/pmem: Fix reference counting for delayed work 2022-01-27 11:02:58 +01:00
dax
dca
devfreq
dio
dma dmaengine: ptdma: Fix the error handling path in pt_core_init() 2022-02-23 12:03:21 +01:00
dma-buf dma-buf: heaps: Fix potential spectre v1 gadget 2022-02-08 18:34:06 +01:00
edac EDAC: Fix calculation of returned address and next offset in edac_align_ptr() 2022-02-23 12:03:20 +01:00
eisa
extcon
firewire
firmware efi/libstub: arm64: Fix image check alignment at entry 2022-02-01 17:27:11 +01:00
fpga
fsi
gnss
gpio gpio: sifive: use the correct register to read output values 2022-02-16 12:56:27 +01:00
gpu drm/i915: Fix bw atomic check when switching between SAGV vs. no SAGV 2022-03-02 11:47:50 +01:00
greybus
hid HID: elo: fix memory leak in elo_probe 2022-02-23 12:03:16 +01:00
hsi HSI: core: Fix return freed object in hsi_new_client 2022-01-27 11:04:31 +01:00
hv Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj 2022-02-23 12:03:16 +01:00
hwmon hwmon: (dell-smm) Speed up setting of fan speed 2022-02-16 12:56:39 +01:00
hwspinlock
hwtracing coresight: trbe: Defer the probe on offline CPUs 2021-11-18 19:16:06 +01:00
i2c i2c: brcmstb: fix support for DSL and CM variants 2022-02-23 12:03:22 +01:00
i3c
idle
iio iio: buffer: Fix file related error handling in IIO_BUFFER_GET_FD_IOCTL 2022-02-16 12:56:37 +01:00
infiniband IB/cm: Release previously acquired reference counter in the cm_id_priv 2022-02-08 18:34:08 +01:00
input Input: zinitix - make sure the IRQ is allocated before it gets enabled 2022-01-11 15:35:19 +01:00
interconnect interconnect: qcom: rpm: Prevent integer overflow in rate 2022-01-27 11:05:00 +01:00
iommu iommu: Fix potential use-after-free during probe 2022-02-16 12:56:41 +01:00
ipack
irqchip irqchip/sifive-plic: Add missing thead,c900-plic match string 2022-02-23 12:03:17 +01:00
isdn mISDN: change function names to avoid conflicts 2022-01-11 15:35:18 +01:00
leds leds: lp55xx: initialise output direction from dts 2022-01-27 11:04:21 +01:00
macintosh
mailbox mailbox: change mailbox-mpfs compatible string 2022-01-27 11:05:05 +01:00
mcb
md block: fix surprise removal for drivers calling blk_set_queue_dying 2022-02-23 12:03:15 +01:00
media media: correct MEDIA_TEST_SUPPORT help text 2022-01-27 11:05:20 +01:00
memory memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails 2022-01-27 11:03:11 +01:00
memstick memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host() 2021-11-18 19:16:32 +01:00
message
mfd mfd: tps65910: Set PWR_OFF bit during driver probe 2022-01-27 11:05:07 +01:00
misc eeprom: ee1004: limit i2c reads to I2C_SMBUS_BLOCK_MAX 2022-02-16 12:56:33 +01:00
mmc mmc: block: fix read single on recovery logic 2022-02-23 12:03:03 +01:00
most most: fix control-message timeouts 2021-11-18 19:16:08 +01:00
mtd mtd: rawnand: ingenic: Fix missing put_device in ingenic_ecc_get 2022-02-23 12:03:16 +01:00
mux
net CDC-NCM: avoid overflow in sanity checking 2022-03-02 11:47:51 +01:00
nfc NFC: st21nfca: Fix memory leak in device probe and remove 2022-01-05 12:42:36 +01:00
ntb
nubus
nvdimm nvdimm/pmem: cleanup the disk if pmem_release_disk() is yet assigned 2021-11-18 19:17:07 +01:00
nvme block: fix surprise removal for drivers calling blk_set_queue_dying 2022-02-23 12:03:15 +01:00
nvmem nvmem: core: set size for sysfs bin file 2022-01-27 11:04:59 +01:00
of of: base: Improve argument length mismatch error 2022-01-27 11:05:19 +01:00
opp opp: Fix return in _opp_add_static_v2() 2021-11-18 19:17:00 +01:00
parisc parisc: Fix sglist access in ccio-dma.c 2022-02-23 12:03:03 +01:00
parport
pci PCI: hv: Fix NUMA node assignment when kernel boots with custom NUMA topology 2022-02-23 12:03:04 +01:00
pcmcia pcmcia: fix setting of kthread task states 2022-01-27 11:04:02 +01:00
perf perf/arm-cmn: Fix CPU hotplug unregistration 2022-01-27 11:03:36 +01:00
phy phy: phy-mtk-tphy: Fix duplicated argument in phy-mtk-tphy 2022-02-23 12:03:17 +01:00
pinctrl pinctrl: bcm63xx: fix unmet dependency on REGMAP for GPIO_REGMAP 2022-02-23 12:03:05 +01:00
platform platform/x86: ISST: Fix possible circular locking dependency detected 2022-02-23 12:03:04 +01:00
pnp
power power: reset: mt6397: Check for null res pointer 2022-01-27 11:03:49 +01:00
powercap
pps
ps3
ptp net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets 2022-01-27 11:03:52 +01:00
pwm
rapidio
ras
regulator regulator: qcom_smd: Align probe function with rpmh-regulator 2022-01-27 11:04:54 +01:00
remoteproc remoteproc: imx_rproc: Fix a resource leak in the remove function 2022-01-27 11:05:10 +01:00
reset reset: renesas: Fix Runtime PM usage 2022-01-11 15:35:16 +01:00
rpmsg rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev 2022-02-01 17:27:07 +01:00
rtc rtc: cmos: Evaluate century appropriate 2022-02-08 18:34:12 +01:00
s390 s390/cio: verify the driver availability for path_event call 2022-02-16 12:56:38 +01:00
sbus
scsi scsi: qedi: Fix ABBA deadlock in qedi_process_tmf_resp() and qedi_process_cmd_cleanup_resp() 2022-02-23 12:03:22 +01:00
sh maple: fix wrong return value of maple_bus_init(). 2021-11-25 09:48:31 +01:00
siox
slimbus
soc soc: aspeed: lpc-ctrl: Block error printing on probe defer cases 2022-02-23 12:03:19 +01:00
soundwire soundwire: bus: stop dereferencing invalid slave pointer 2021-11-18 19:16:54 +01:00
spi spi: uniphier: fix reference count leak in uniphier_spi_probe() 2022-02-08 18:34:08 +01:00
spmi
ssb
staging staging: vc04_services: Fix RCU dereference check 2022-02-23 12:03:17 +01:00
target scsi: target: iscsi: Make sure the np under each tpg is unique 2022-02-16 12:56:12 +01:00
tc
tee optee: use driver internal tee_context for some rpc 2022-03-02 11:47:51 +01:00
thermal thermal/drivers/int340x: Fix RFIM mailbox write commands 2022-02-16 12:56:07 +01:00
thunderbolt thunderbolt: Runtime PM activate both ends of the device link 2022-01-27 11:04:36 +01:00
tty tty: n_tty: do not look ahead for EOL character past the end of the buffer 2022-02-23 12:03:15 +01:00
uio
usb USB: serial: cp210x: add CPI Bulk Coin Recycler id 2022-02-16 12:56:37 +01:00
vdpa vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps() 2022-01-27 11:05:36 +01:00
vfio
vhost vhost/vsock: don't check owner in vhost_vsock_stop() while releasing 2022-03-02 11:47:48 +01:00
video fbcon: Avoid 'cap' set but not used warning 2022-02-16 12:56:27 +01:00
virt nitro_enclaves: Use get_user_pages_unlocked() call to handle mmap assert 2022-01-05 12:42:39 +01:00
virtio virtio_ring: mark ring unused on error 2022-01-27 11:05:35 +01:00
visorbus
vlynq
vme
w1 w1: Misuse of get_user()/put_user() reported by sparse 2022-01-27 11:04:59 +01:00
watchdog ar7: fix kernel builds for compiler test 2021-11-18 19:17:03 +01:00
xen xen/gntdev: fix unmap notification order 2022-01-27 11:05:08 +01:00
zorro
Kconfig
Makefile virtio: always enter drivers/virtio/ 2021-12-22 09:32:39 +01:00