linux/drivers/misc
Dani Liberman b32cd10480 habanalabs: fix race when waiting on encaps signal
Scenario:
1. CS which is part of encaps signal has been completed and now
executing kref_put to its encaps signal handle. The refcount of the
handle decremented to 0, and called the encaps signal handle
release function - hl_encaps_handle_do_release.

2. At this point the user starts waiting on the signal, and finds the
encaps signal handle in the handlers list and increment the habdle
refcount to 1.

3. Immediately after, hl_encaps_handle_do_release removed the handle
from the list and free its memory.

4. Wait function using the handle although it has been freed.

This scenario caused the slab area which was previously allocated
for the handle to be poison overwritten which triggered kernel bug
the next time the OS needed to allocate this slab.

Fixed by getting the refcount of the handle only in case it is not
zero.

Signed-off-by: Dani Liberman <dliberman@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
2022-02-28 14:22:04 +02:00
..
altera-stapl
bcm-vk misc: bcm-vk: fix tty registration race 2021-09-21 16:17:15 +02:00
c2port
cardreader misc: rtsx: rts522a rts5228 rts5261 support Runtime PM 2022-02-25 12:11:16 +01:00
cb710 cb710: avoid NULL pointer subtraction 2021-10-05 15:50:05 +02:00
cxl Char/Misc and other driver changes for 5.17-rc1 2022-01-14 16:02:28 +01:00
echo
eeprom Linux 5.17-rc4 2022-02-14 09:00:38 +01:00
genwqe Merge 5.15-rc3 into char-misc next 2021-09-27 15:39:40 +02:00
habanalabs habanalabs: fix race when waiting on encaps signal 2022-02-28 14:22:04 +02:00
ibmasm Char / Misc driver updates for 5.14-rc1 2021-07-05 13:42:16 -07:00
lis3lv02d misc: lis3lv02d: Make lis3lv02d_remove_fs() return void 2021-10-13 14:35:20 +02:00
lkdtm lkdtm/fortify: Swap memcpy() for strncpy() 2022-02-25 12:11:01 +01:00
mei mei: do not overwrite state on hw start 2022-02-25 12:14:01 +01:00
ocxl ocxl: Make use of the helper macro LIST_HEAD() 2022-02-25 12:09:56 +01:00
pvpanic pvpanic: Indentation fixes here and there 2021-09-14 11:07:13 +02:00
sgi-gru misc: sgi-gru: Don't cast parameter in bit operations 2022-02-25 12:09:26 +01:00
sgi-xp net: sgi-xp: use eth_hw_addr_set() 2021-10-29 13:17:21 +01:00
ti-st ti-st: use tty_write_room 2021-05-13 17:03:20 +02:00
uacce uacce: use sysfs_emit instead of sprintf 2021-12-21 10:13:34 +01:00
vmw_vmci VMCI: Fix some error handling paths in vmci_guest_probe_device() 2022-02-25 11:55:01 +01:00
ad525x_dpot-i2c.c misc: ad525x_dpot: Make ad_dpot_remove() return void 2021-10-13 14:35:37 +02:00
ad525x_dpot-spi.c misc: ad525x_dpot: Make ad_dpot_remove() return void 2021-10-13 14:35:37 +02:00
ad525x_dpot.c misc: ad525x_dpot: Make ad_dpot_remove() return void 2021-10-13 14:35:37 +02:00
ad525x_dpot.h misc: ad525x_dpot: Make ad_dpot_remove() return void 2021-10-13 14:35:37 +02:00
apds990x.c
apds9802als.c
atmel-ssc.c
bh1770glc.c
cs5535-mfgpt.c
ds1682.c
dummy-irq.c
dw-xdata-pcie.c
enclosure.c misc: enclosure: replace snprintf in show functions with sysfs_emit 2021-10-22 11:25:39 +02:00
fastrpc.c misc: fastrpc: avoid double fput() on failed usercopy 2022-02-03 16:45:39 +01:00
gehc-achc.c misc: gehc: Add SPI ID table 2021-10-05 15:47:18 +02:00
hi6421v600-irq.c mfd: hi6421-spmi-pmic: Cleanup drvdata to only include regmap 2021-10-05 08:56:08 +01:00
hisi_hikey_usb.c misc: hisi_hikey_usb: change the DT schema 2021-09-14 10:57:31 +02:00
hmc6352.c
hpilo.c misc: hpilo: map iLO shared memory by PCI revision id 2021-06-04 15:28:23 +02:00
hpilo.h misc: hpilo: map iLO shared memory by PCI revision id 2021-06-04 15:28:23 +02:00
ibmvmc.c
ibmvmc.h
ics932s401.c ics932s401: fix broken handling of errors when word reading fails 2021-05-13 17:21:54 +02:00
isl29003.c
isl29020.c
Kconfig misc: open-dice: Add driver to expose DICE data to userspace 2022-02-04 16:45:39 +01:00
kgdbts.c kgdb: fix gcc-11 warnings harder 2021-05-21 15:05:08 +02:00
lattice-ecp3-config.c misc: lattice-ecp3-config: Fix task hung when firmware load failed 2021-12-30 14:11:40 +01:00
Makefile misc: open-dice: Add driver to expose DICE data to userspace 2022-02-04 16:45:39 +01:00
open-dice.c misc: open-dice: Add driver to expose DICE data to userspace 2022-02-04 16:45:39 +01:00
pch_phub.c
pci_endpoint_test.c misc: pci_endpoint_test: Terminate statement with semicolon 2022-01-11 10:19:59 -06:00
phantom.c
qcom-coincell.c
sram-exec.c
sram.c misc: sram: Add compatible string for Tegra234 SYSRAM 2021-12-08 15:16:05 +01:00
sram.h misc: sram: Only map reserved areas in Tegra SYSRAM 2021-08-05 14:27:46 +02:00
tifm_7xx1.c tifm: Remove usage of the deprecated "pci-dma-compat.h" API 2021-09-21 17:33:31 +02:00
tifm_core.c tifm: Remove usage of the deprecated "pci-dma-compat.h" API 2021-09-21 17:33:31 +02:00
tsl2550.c
vmw_balloon.c
xilinx_sdfec.c misc: xilinx-sdfec: Drop unnecessary NULL check after container_of 2021-05-21 22:14:48 +02:00