Patch "ASoC: amd: acp: Fix possible deadlock" has been added to the 6.12-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ASoC: amd: acp: Fix possible deadlock

to the 6.12-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     asoc-amd-acp-fix-possible-deadlock.patch
and it can be found in the queue-6.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 5fd980bea8ded7787b3615c9db2984a14b49204d
Author: Daniel Baluta <daniel.baluta@xxxxxxx>
Date:   Mon Jan 27 10:34:22 2025 +0200

    ASoC: amd: acp: Fix possible deadlock
    
    [ Upstream commit 3ff53862c322aa7bb115d84348d5a641dc905d87 ]
    
    On error path, function acp_i2s_set_tdm_slot returns without releasing
    the lock and this could result in potential deadlocks in the future.
    
    Error reported by sparse:
    sound/soc/amd/acp/acp-i2s.c:95:12: error: context imbalance in
    'acp_i2s_set_tdm_slot' - different lock contexts for basic block
    
    Fixes: cd60dec8994c ("ASoC: amd: acp: Refactor TDM slots selction based on acp revision id")
    Signed-off-by: Daniel Baluta <daniel.baluta@xxxxxxx>
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@xxxxxxxxxxxxxxx>
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxx>
    Reviewed-by: Bard Liao <yung-chuan.liao@xxxxxxxxxxxxxxx>
    Link: https://patch.msgid.link/20250127083422.20406-1-daniel.baluta@xxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/amd/acp/acp-i2s.c b/sound/soc/amd/acp/acp-i2s.c
index 56ce9e4b6accc..92c5ff0deea2c 100644
--- a/sound/soc/amd/acp/acp-i2s.c
+++ b/sound/soc/amd/acp/acp-i2s.c
@@ -181,6 +181,7 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas
 			break;
 		default:
 			dev_err(dev, "Unknown chip revision %d\n", chip->acp_rev);
+			spin_unlock_irq(&adata->acp_lock);
 			return -EINVAL;
 		}
 	}




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux