diff options
| author | Felix Gu <ustc.gu@gmail.com> | 2026-04-27 20:42:00 +0300 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-04-28 03:57:15 +0300 |
| commit | 8d0189c1ea98b56481eb809e3d1bdbf85557e819 (patch) | |
| tree | d6f2d941f86ebb98cfe5cb3c97e0a0139ab7072f | |
| parent | f5c6a272b699b9a0698535e1a56e683207e50030 (diff) | |
| download | linux-8d0189c1ea98b56481eb809e3d1bdbf85557e819.tar.xz | |
spi: amlogic-spisg: initialize completion before requesting IRQ
Move init_completion(&spisg->completion) to before devm_request_irq()
to avoid a potential race condition where an interrupt could fire
before the completion structure is initialized.
Fixes: cef9991e04ae ("spi: Add Amlogic SPISG driver")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Link: https://patch.msgid.link/20260428-amlogic-spisg-v1-1-8eecc3b446d6@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | drivers/spi/spi-amlogic-spisg.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/spi/spi-amlogic-spisg.c b/drivers/spi/spi-amlogic-spisg.c index 19c5eba412ef..f9de2d2c9213 100644 --- a/drivers/spi/spi-amlogic-spisg.c +++ b/drivers/spi/spi-amlogic-spisg.c @@ -794,6 +794,7 @@ static int aml_spisg_probe(struct platform_device *pdev) dma_set_max_seg_size(&pdev->dev, SPISG_BLOCK_MAX); + init_completion(&spisg->completion); ret = devm_request_irq(&pdev->dev, irq, aml_spisg_irq, 0, NULL, spisg); if (ret) { dev_err(&pdev->dev, "irq request failed\n"); @@ -806,8 +807,6 @@ static int aml_spisg_probe(struct platform_device *pdev) goto out_clk; } - init_completion(&spisg->completion); - pm_runtime_put(&spisg->pdev->dev); return 0; |
