| From 0aa6b294b312d9710804679abd2c0c8ca52cc2bc Mon Sep 17 00:00:00 2001 |
| From: Zhen Ni <nizhen@uniontech.com> |
| Date: Wed, 2 Mar 2022 15:42:41 +0800 |
| Subject: ALSA: intel_hdmi: Fix reference to PCM buffer address |
| |
| From: Zhen Ni <nizhen@uniontech.com> |
| |
| commit 0aa6b294b312d9710804679abd2c0c8ca52cc2bc upstream. |
| |
| PCM buffers might be allocated dynamically when the buffer |
| preallocation failed or a larger buffer is requested, and it's not |
| guaranteed that substream->dma_buffer points to the actually used |
| buffer. The driver needs to refer to substream->runtime->dma_addr |
| instead for the buffer address. |
| |
| Signed-off-by: Zhen Ni <nizhen@uniontech.com> |
| Cc: <stable@vger.kernel.org> |
| Link: https://lore.kernel.org/r/20220302074241.30469-1-nizhen@uniontech.com |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/x86/intel_hdmi_audio.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/sound/x86/intel_hdmi_audio.c |
| +++ b/sound/x86/intel_hdmi_audio.c |
| @@ -1279,7 +1279,7 @@ static int had_pcm_mmap(struct snd_pcm_s |
| { |
| vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); |
| return remap_pfn_range(vma, vma->vm_start, |
| - substream->dma_buffer.addr >> PAGE_SHIFT, |
| + substream->runtime->dma_addr >> PAGE_SHIFT, |
| vma->vm_end - vma->vm_start, vma->vm_page_prot); |
| } |
| |