Re: [PATCH v2] dmaengine: qcom: gpi: correct gchan in error paths
From: Frank Li
Date: Fri Oct 16 2026 - 12:17:24 EST
On Wed, Jul 08, 2026 at 06:57:25PM -0400, Brian Masney wrote:
> When attempting to start the Fedora graphical installer from a USB
> thumbdrive on the Lenovo Thinkpad x13s laptop, the following errors are
> shown in dmesg multiple times:
>
> kernel: gpi 800000.dma-controller: cmd: CH START completion timeout:0
> kernel: gpi 800000.dma-controller: Error with cmd:CH START ret:-5
> kernel: gpi 800000.dma-controller: Error start chan:-5
>
> Looking through the error path, gpi_send_cmd() sends the wrong gchan to
> gpi_send_cmd() in gpi_ch_init()'s error path. Fix this by passing the
> correct gchan in gpi_ch_init()'s error path of gpi_send_cmd().
>
> Fixes: 5d0c3533a19f ("dmaengine: qcom: Add GPI dma driver")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
> Signed-off-by: Brian Masney <bmasney@xxxxxxxxxx>
> Assisted-by: Claude:claude-opus-4-6
> ---
The same problem fixed by
commit dd27c3f4d6108556b74b5f3f4d1d885269e7ffa3
Author: Aniket Randive <aniket.randive@xxxxxxxxxxxxxxxx>
Date: Wed Aug 19 17:09:31 2026 +0530
dmaengine: qcom: gpi: Fix resource leaks as part of channel clean up
The gpi_ch_init() error handling paths do not fully clean up resources
when channel initialization fails.
Frank
> There's a separate issue with the graphical Fedora installer not
> working that I haven't had time to dig into further. I can work
> around it by using the text installer.
>
> Changes in v2:
> - Commit message cleanup as suggested by Frank
> - Commit title cleanup as suggested Konrad
> - Add Konrad's Reviewed-by
> - Link to v1: https://lore.kernel.org/r/20260625-qcom-gpi-err-fix-v1-1-5ca3f00fe2e3@xxxxxxxxxx
> ---
> drivers/dma/qcom/gpi.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c
> index a5055a6273af..3f390b5821ab 100644
> --- a/drivers/dma/qcom/gpi.c
> +++ b/drivers/dma/qcom/gpi.c
> @@ -1965,12 +1965,12 @@ static int gpi_ch_init(struct gchan *gchan)
> error_start_chan:
> for (i = i - 1; i >= 0; i--) {
> gpi_stop_chan(&gpii->gchan[i]);
> - gpi_send_cmd(gpii, gchan, GPI_CH_CMD_RESET);
> + gpi_send_cmd(gpii, &gpii->gchan[i], GPI_CH_CMD_RESET);
> }
> i = 2;
> error_alloc_chan:
> for (i = i - 1; i >= 0; i--)
> - gpi_reset_chan(gchan, GPI_CH_CMD_DE_ALLOC);
> + gpi_reset_chan(&gpii->gchan[i], GPI_CH_CMD_DE_ALLOC);
> error_alloc_ev_ring:
> gpi_disable_interrupts(gpii);
> error_config_int:
>
> ---
> base-commit: 6c94b38b83a04c43ea49004275f0391404051093
> change-id: 20260625-qcom-gpi-err-fix-06ef18453608
>
> Best regards,
> --
> Brian Masney <bmasney@xxxxxxxxxx>
>