Re: Patch "ALSA: pci: rme: Set up buffer type properly" has been added to the 5.14-stable tree
From: Takashi Iwai
Date: Sun Nov 07 2021 - 12:04:43 EST
On Sun, 07 Nov 2021 15:59:32 +0100,
Greg KH wrote:
>
> 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?
Sorry, I overlooked that it's after the recent code change with the
devres support.
Then rather drop this one, as I found another potential issue in this
patch. I cooked another different fix now that should cover the
regression, instead. It'll be included in the next pull request.
The other two patches are fine for stable trees.
thanks,
Takashi