WSL2-Linux-Kernel/drivers/mailbox
Björn Ardö 119f99209d mailbox: forward the hrtimer if not queued and under a lock
[ Upstream commit bca1a10046 ]

This reverts commit c7dacf5b0f,
"mailbox: avoid timer start from callback"

The previous commit was reverted since it lead to a race that
caused the hrtimer to not be started at all. The check for
hrtimer_active() in msg_submit() will return true if the
callback function txdone_hrtimer() is currently running. This
function could return HRTIMER_NORESTART and then the timer
will not be restarted, and also msg_submit() will not start
the timer. This will lead to a message actually being submitted
but no timer will start to check for its compleation.

The original fix that added checking hrtimer_active() was added to
avoid a warning with hrtimer_forward. Looking in the kernel
another solution to avoid this warning is to check hrtimer_is_queued()
before calling hrtimer_forward_now() instead. This however requires a
lock so the timer is not started by msg_submit() inbetween this check
and the hrtimer_forward() call.

Fixes: c7dacf5b0f ("mailbox: avoid timer start from callback")
Signed-off-by: Björn Ardö <bjorn.ardo@axis.com>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-06-09 10:23:12 +02:00
..
Kconfig mailbox: qcom-ipcc: Enable loading QCOM_IPCC as a module 2021-08-29 23:50:15 -05:00
Makefile mbox: add polarfire soc system controller mailbox 2021-06-26 12:06:48 -05:00
arm_mhu.c mailbox: arm_mhu: Remove redundant error printing in mhu_probe() 2021-06-26 11:37:48 -05:00
arm_mhu_db.c mailbox: arm_mhu_db: Remove redundant dev_err call in mhu_db_probe() 2021-04-13 20:07:36 -05:00
arm_mhuv2.c mailbox: arm_mhuv2: Skip calling kfree() with invalid pointer 2021-02-22 13:34:27 -06:00
armada-37xx-rwtm-mailbox.c treewide: change my e-mail address, fix my name 2021-04-09 14:54:23 -07:00
bcm-flexrm-mailbox.c mailbox: bcm-flexrm-mailbox: Remove redundant dev_err call in flexrm_mbox_probe() 2021-06-26 11:40:34 -05:00
bcm-pdc-mailbox.c mailbox: bcm-pdc: Remove redundant error printing in pdc_probe() 2021-06-26 11:37:50 -05:00
bcm2835-mailbox.c mailbox: bcm2835: Remove redundant dev_err call in bcm2835_mbox_probe() 2021-06-26 11:40:32 -05:00
hi3660-mailbox.c mailbox: hisilicon: Use the correct HiSilicon copyright 2021-06-26 11:38:02 -05:00
hi6220-mailbox.c mailbox: hisilicon: Use the correct HiSilicon copyright 2021-06-26 11:38:02 -05:00
imx-mailbox.c mailbox: imx: fix wakeup failure from freeze mode 2022-04-08 14:24:10 +02:00
mailbox-altera.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
mailbox-mpfs.c mailbox: change mailbox-mpfs compatible string 2022-01-27 11:05:05 +01:00
mailbox-sti.c mailbox: sti: quieten kernel-doc warnings 2021-08-29 23:50:12 -05:00
mailbox-test.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mailbox-xgene-slimpro.c mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
mailbox.c mailbox: forward the hrtimer if not queued and under a lock 2022-06-09 10:23:12 +02:00
mailbox.h mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
mtk-cmdq-mailbox.c mailbox: fix gce_num of mt8192 driver data 2022-01-27 11:04:21 +01:00
omap-mailbox.c mailbox: omap: Add support for K3 AM64x SoCs 2021-02-14 23:23:41 -06:00
pcc.c mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
pl320-ipc.c mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
platform_mhu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 285 2019-06-05 17:36:37 +02:00
qcom-apcs-ipc-mailbox.c mailbox: qcom-apcs-ipc: Add compatible for MSM8953 SoC 2021-08-30 00:29:29 -05:00
qcom-ipcc.c mailbox: qcom-ipcc: Enable loading QCOM_IPCC as a module 2021-08-29 23:50:15 -05:00
rockchip-mailbox.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
sprd-mailbox.c mailbox: sprd: Add supplementary inbox support 2021-04-13 20:07:36 -05:00
stm32-ipcc.c mailbox: stm32-ipcc: cast void pointers to unsigned long 2020-12-01 19:17:20 -06:00
sun6i-msgbox.c mailbox: sun6i-msgbox: Add a new mailbox driver 2020-03-19 23:00:32 -05:00
tegra-hsp.c mailbox: tegra-hsp: Flush whole channel 2022-04-08 14:22:59 +02:00
ti-msgmgr.c mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
zynqmp-ipi-mailbox.c mailbox: zynqmp-ipi: Fix NULL vs IS_ERR() check in zynqmp_ipi_mbox_probe() 2020-05-30 18:08:40 -05:00