Re: Patch "ALSA: pci: rme: Set up buffer type properly" has been added to the 5.14-stable tree
From: Greg KH
Date: Sun Nov 07 2021 - 09:59:38 EST
On Sun, Nov 07, 2021 at 03:49:17PM +0100, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
>
> This is a note to let you know that I've just added the patch titled
>
> ALSA: pci: rme: Set up buffer type properly
>
> to the 5.14-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:
> alsa-pci-rme-set-up-buffer-type-properly.patch
> and it can be found in the queue-5.14 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@xxxxxxxxxxxxxxx> know about it.
>
>
> >From 0899a7a23047f106c06888769d6cd6ff43d7395f Mon Sep 17 00:00:00 2001
> From: Takashi Iwai <tiwai@xxxxxxx>
> Date: Mon, 9 Aug 2021 09:18:28 +0200
> Subject: ALSA: pci: rme: Set up buffer type properly
>
> From: Takashi Iwai <tiwai@xxxxxxx>
>
> commit 0899a7a23047f106c06888769d6cd6ff43d7395f upstream.
>
> Although the regression of the mmap was fixed in the recent commit
> dc0dc8a73e8e ("ALSA: pcm: Fix mmap breakage without explicit buffer
> setup"), RME9652 and HDSP drivers have still potential issues with
> their mmap handling. Namely, they use the default mmap handler
> without the standard buffer preallocation, and PCM core wouldn't use
> the coherent DMA mapping. It's practically OK on x86, but on some
> exotic architectures, it wouldn't work.
>
> This patch addresses the potential breakage by replacing the buffer
> setup with the proper macro. It also simplifies the source code,
> too.
>
> Link: https://lore.kernel.org/r/20210809071829.22238-3-tiwai@xxxxxxx
> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> sound/pci/rme9652/hdsp.c | 6 ++----
> sound/pci/rme9652/rme9652.c | 6 ++----
> 2 files changed, 4 insertions(+), 8 deletions(-)
>
> --- a/sound/pci/rme9652/hdsp.c
> +++ b/sound/pci/rme9652/hdsp.c
> @@ -4518,8 +4518,7 @@ static int snd_hdsp_playback_open(struct
> snd_pcm_set_sync(substream);
>
> runtime->hw = snd_hdsp_playback_subinfo;
> - runtime->dma_area = hdsp->playback_buffer;
> - runtime->dma_bytes = HDSP_DMA_AREA_BYTES;
> + snd_pcm_set_runtime_buffer(substream, hdsp->playback_dma_buf);
>
> hdsp->playback_pid = current->pid;
> hdsp->playback_substream = substream;
> @@ -4595,8 +4594,7 @@ static int snd_hdsp_capture_open(struct
> snd_pcm_set_sync(substream);
>
> runtime->hw = snd_hdsp_capture_subinfo;
> - runtime->dma_area = hdsp->capture_buffer;
> - runtime->dma_bytes = HDSP_DMA_AREA_BYTES;
> + snd_pcm_set_runtime_buffer(substream, hdsp->capture_dma_buf);
>
> hdsp->capture_pid = current->pid;
> hdsp->capture_substream = substream;
> --- a/sound/pci/rme9652/rme9652.c
> +++ b/sound/pci/rme9652/rme9652.c
> @@ -2279,8 +2279,7 @@ static int snd_rme9652_playback_open(str
> snd_pcm_set_sync(substream);
>
> runtime->hw = snd_rme9652_playback_subinfo;
> - runtime->dma_area = rme9652->playback_buffer;
> - runtime->dma_bytes = RME9652_DMA_AREA_BYTES;
> + snd_pcm_set_runtime_buffer(substream, rme9652->playback_dma_buf);
>
> if (rme9652->capture_substream == NULL) {
> rme9652_stop(rme9652);
> @@ -2339,8 +2338,7 @@ static int snd_rme9652_capture_open(stru
> snd_pcm_set_sync(substream);
>
> runtime->hw = snd_rme9652_capture_subinfo;
> - runtime->dma_area = rme9652->capture_buffer;
> - runtime->dma_bytes = RME9652_DMA_AREA_BYTES;
> + snd_pcm_set_runtime_buffer(substream, rme9652->capture_dma_buf);
>
> if (rme9652->playback_substream == NULL) {
> rme9652_stop(rme9652);
>
>
> Patches currently in stable-queue which might be from tiwai@xxxxxxx are
>
> queue-5.14/alsa-pci-rme-set-up-buffer-type-properly.patch
> queue-5.14/alsa-pcm-check-mmap-capability-of-runtime-dma-buffer-at-first.patch
> queue-5.14/alsa-pci-cs46xx-fix-set-up-buffer-type-properly.patch
This patch breaks the build, so I will drop it.
Can you provide a working backport?
thanks,
greg k-h