linux-stable/drivers/bus
Loic Poulain 0ecc1c70dc bus: mhi: core: Fix invalid error returning in mhi_queue
mhi_queue returns an error when the doorbell is not accessible in
the current state. This can happen when the device is in non M0
state, like M3, and needs to be waken-up prior ringing the DB. This
case is managed earlier by triggering an asynchronous M3 exit via
controller resume/suspend callbacks, that in turn will cause M0
transition and DB update.

So, since it's not an error but just delaying of doorbell update, there
is no reason to return an error.

This also fixes a use after free error for skb case, indeed a caller
queuing skb will try to free the skb if the queueing fails, but in
that case queueing has been done.

Fixes: a8f75cb348 ("mhi: core: Factorize mhi queuing")
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Reviewed-by: Jeffrey Hugo <jhugo@codeaurora.org>
Reviewed-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/1614336782-5809-1-git-send-email-loic.poulain@linaro.org
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2021-03-10 20:11:22 +05:30
..
fsl-mc Char/Misc driver patches for 5.12-rc1 2021-02-24 10:25:37 -08:00
mhi bus: mhi: core: Fix invalid error returning in mhi_queue 2021-03-10 20:11:22 +05:30
arm-cci.c bus: arm-cci: remove unnecessary unreachable() 2018-05-14 01:22:49 -07:00
arm-integrator-lm.c bus: arm-integrator-lm: Add of_node_put() before return statement 2021-01-15 17:53:05 +01:00
brcmstb_gisb.c bus: brcmstb_gisb: Add support for breakpoint interrupts 2020-09-06 20:10:44 -07:00
bt1-apb.c bus: bt1-apb: Use sysfs_streq instead of strncmp 2020-05-28 16:56:56 +02:00
bt1-axi.c bus: bt1-axi: Use sysfs_streq instead of strncmp 2020-05-28 16:57:12 +02:00
da8xx-mstpri.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
hisi_lpc.c bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host removal 2020-02-28 17:30:49 +08:00
imx-weim.c bus: imx-weim: remove incorrect __init annotations 2019-09-04 17:59:32 +02:00
Kconfig c6x: remove architecture 2021-01-20 09:30:45 +01:00
Makefile ARM/SoC: drivers for v5.7 2020-06-04 19:56:20 -07:00
mips_cdmm.c mips: cdmm: fix use-after-free in mips_cdmm_bus_discover 2020-11-27 10:38:02 +01:00
moxtet.c bus: moxtet: fix potential stack buffer overflow 2020-02-15 10:33:19 -08:00
mvebu-mbus.c bus: mvebu-mbus: make iounmap() symmetric with ioremap() 2021-01-29 17:57:07 +01:00
omap-ocp2scp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
omap_l3_noc.c
omap_l3_noc.h
omap_l3_smx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
omap_l3_smx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
qcom-ebi2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
simple-pm-bus.c drivers: bus: simple-pm-bus: Fix compatibility with simple-bus for auxdata 2021-01-15 12:50:49 +02:00
sun50i-de2.c bus: add bus driver for accessing Allwinner A64 DE2 2018-06-28 10:20:19 +02:00
sunxi-rsb.c Merge remote-tracking branch 'mfd/ib-mfd-bus-5.12' into sunxi/drivers-for-5.12 2021-01-18 11:01:07 +08:00
tegra-aconnect.c bus: tegra-aconnect: add system sleep callbacks 2019-03-28 17:26:14 +01:00
tegra-gmi.c
ti-pwmss.c bus/ti-pwmss: move TI PWMSS driver from PWM to bus subsystem 2019-10-17 21:17:42 +01:00
ti-sysc.c ARM: SoC drivers for v5.11 2020-12-16 16:38:41 -08:00
ts-nbus.c gpiolib: Pass array info to get/set array functions 2018-09-13 11:16:54 +02:00
uniphier-system-bus.c bus: uniphier-system-bus: use devm_platform_ioremap_resource() 2019-09-05 17:57:18 +02:00
vexpress-config.c bus: vexpress-config: Support building as module 2020-05-13 12:42:46 -05:00