bus: mhi: host: Add spinlock to protect WP access when queueing TREs
authorBhaumik Bhatt <bbhatt@codeaurora.org>
Mon, 11 Dec 2023 06:42:51 +0000 (14:42 +0800)
committerManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Sat, 16 Dec 2023 05:20:08 +0000 (10:50 +0530)
commitb89b6a863dd53bc70d8e52d50f9cfaef8ef5e9c9
tree6bd9563b95e9caeb175a9c39e56c048e5ded2160
parent327ec5f70609cf00c6f961073c01857555c6a8eb
bus: mhi: host: Add spinlock to protect WP access when queueing TREs

Protect WP accesses such that multiple threads queueing buffers for
incoming data do not race.

Meanwhile, if CONFIG_TRACE_IRQFLAGS is enabled, irq will be enabled once
__local_bh_enable_ip is called as part of write_unlock_bh. Hence, let's
take irqsave lock after TRE is generated to avoid running write_unlock_bh
when irqsave lock is held.

Cc: stable@vger.kernel.org
Fixes: 189ff97cca53 ("bus: mhi: core: Add support for data transfer")
Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Tested-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/1702276972-41296-2-git-send-email-quic_qianyu@quicinc.com
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
drivers/bus/mhi/host/main.c