diff options
| author | Venkata Prasad Potturu <venkataprasad.potturu@amd.com> | 2025-04-25 11:31:39 +0530 | 
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2025-04-25 13:35:05 +0100 | 
| commit | ba85883d160515129b58873f74376a89faf21c7c (patch) | |
| tree | 10f9a777480674cd1a2a00e4d3135c6726ab9b14 | |
| parent | c1b0f5183a4488b6b7790f834ce3a786725b3583 (diff) | |
ASoC: amd: acp: Fix NULL pointer deref on acp resume path
update chip data using dev_get_drvdata(dev->parent) instead of
dev_get_platdata(dev).
BUG: kernel NULL pointer dereference, address: 0000000000000010
Call Trace:
 <TASK>
 ? __pfx_platform_pm_resume+0x10/0x10
 platform_pm_resume+0x28/0x60
 dpm_run_callback+0x51/0x1a0
 device_resume+0x1a6/0x2b0
 dpm_resume+0x168/0x230
Fixes: e3933683b25e ("ASoC: amd: acp: Remove redundant acp_dev_data structure")
Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20250425060144.1773265-1-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/amd/acp/acp-rembrandt.c | 2 | ||||
| -rw-r--r-- | sound/soc/amd/acp/acp-renoir.c | 2 | ||||
| -rw-r--r-- | sound/soc/amd/acp/acp63.c | 2 | ||||
| -rw-r--r-- | sound/soc/amd/acp/acp70.c | 2 | 
4 files changed, 4 insertions, 4 deletions
| diff --git a/sound/soc/amd/acp/acp-rembrandt.c b/sound/soc/amd/acp/acp-rembrandt.c index 746b6ed72029..cccdd10c345e 100644 --- a/sound/soc/amd/acp/acp-rembrandt.c +++ b/sound/soc/amd/acp/acp-rembrandt.c @@ -199,7 +199,7 @@ static void rembrandt_audio_remove(struct platform_device *pdev)  static int rmb_pcm_resume(struct device *dev)  { -	struct acp_chip_info *chip = dev_get_platdata(dev); +	struct acp_chip_info *chip = dev_get_drvdata(dev->parent);  	struct acp_stream *stream;  	struct snd_pcm_substream *substream;  	snd_pcm_uframes_t buf_in_frames; diff --git a/sound/soc/amd/acp/acp-renoir.c b/sound/soc/amd/acp/acp-renoir.c index ebf0106fc737..04f6d70b6a92 100644 --- a/sound/soc/amd/acp/acp-renoir.c +++ b/sound/soc/amd/acp/acp-renoir.c @@ -146,7 +146,7 @@ static void renoir_audio_remove(struct platform_device *pdev)  static int rn_pcm_resume(struct device *dev)  { -	struct acp_chip_info *chip = dev_get_platdata(dev); +	struct acp_chip_info *chip = dev_get_drvdata(dev->parent);  	struct acp_stream *stream;  	struct snd_pcm_substream *substream;  	snd_pcm_uframes_t buf_in_frames; diff --git a/sound/soc/amd/acp/acp63.c b/sound/soc/amd/acp/acp63.c index 52d895e624c7..1f15c96a9b94 100644 --- a/sound/soc/amd/acp/acp63.c +++ b/sound/soc/amd/acp/acp63.c @@ -250,7 +250,7 @@ static void acp63_audio_remove(struct platform_device *pdev)  static int acp63_pcm_resume(struct device *dev)  { -	struct acp_chip_info *chip = dev_get_platdata(dev); +	struct acp_chip_info *chip = dev_get_drvdata(dev->parent);  	struct acp_stream *stream;  	struct snd_pcm_substream *substream;  	snd_pcm_uframes_t buf_in_frames; diff --git a/sound/soc/amd/acp/acp70.c b/sound/soc/amd/acp/acp70.c index 6d5f5ade075c..217b717e9beb 100644 --- a/sound/soc/amd/acp/acp70.c +++ b/sound/soc/amd/acp/acp70.c @@ -182,7 +182,7 @@ static void acp_acp70_audio_remove(struct platform_device *pdev)  static int acp70_pcm_resume(struct device *dev)  { -	struct acp_chip_info *chip = dev_get_platdata(dev); +	struct acp_chip_info *chip = dev_get_drvdata(dev->parent);  	struct acp_stream *stream;  	struct snd_pcm_substream *substream;  	snd_pcm_uframes_t buf_in_frames; | 
