aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/perf/scripts/python/export-to-postgresql.py
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-04-08 08:49:12 +0200
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-04-08 10:04:20 +0200
commit686ee9b6253f9b6d7f1151e73114698940cc0894 (patch)
treedda8df182732fa1c21fadee1a7405ef586263f20 /tools/perf/scripts/python/export-to-postgresql.py
parentmedia: venus: use NULL instead of zero for pointers (diff)
downloadwireguard-linux-686ee9b6253f9b6d7f1151e73114698940cc0894.tar.xz
wireguard-linux-686ee9b6253f9b6d7f1151e73114698940cc0894.zip
media: venus: don't de-reference NULL pointers at IRQ time
Smatch is warning that: drivers/media/platform/qcom/venus/hfi_venus.c:1100 venus_isr() warn: variable dereferenced before check 'hdev' (see line 1097) The logic basically does: hdev = to_hfi_priv(core); with is translated to: hdev = core->priv; If the IRQ code can receive a NULL pointer for hdev, there's a bug there, as it will first try to de-reference the pointer, and then check if it is null. After looking at the code, it seems that this indeed can happen: Basically, the venus IRQ thread is started with: devm_request_threaded_irq() So, it will only be freed after the driver unbinds. In order to prevent the IRQ code to work with freed data, the logic at venus_hfi_destroy() sets core->priv to NULL, which would make the IRQ code to ignore any pending IRQs. There is, however a race condition, as core->priv is set to NULL only after being freed. So, we need also to move the core->priv = NULL to happen earlier. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions