ASoC: soc-pcm: use GFP_ATOMIC for dpcm structure
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tue, 7 Dec 2021 17:37:40 +0000 (11:37 -0600)
committerMark Brown <broonie@kernel.org>
Tue, 14 Dec 2021 17:15:42 +0000 (17:15 +0000)
We allocate a structure in dpcm_be_connect(), which may be called in
atomic context. Using GFP_KERNEL is not quite right, we have to use
GFP_ATOMIC to prevent the allocator from sleeping.

Suggested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20211207173745.15850-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-pcm.c

index 3b44121..f66808d 100644 (file)
@@ -1113,7 +1113,7 @@ static int dpcm_be_connect(struct snd_soc_pcm_runtime *fe,
                        return 0;
        }
 
-       dpcm = kzalloc(sizeof(struct snd_soc_dpcm), GFP_KERNEL);
+       dpcm = kzalloc(sizeof(struct snd_soc_dpcm), GFP_ATOMIC);
        if (!dpcm)
                return -ENOMEM;