OSDN Git Service

ALSA: PCM: check if ops are defined before suspending PCM
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Fri, 8 Feb 2019 23:29:53 +0000 (17:29 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 27 Apr 2019 07:33:51 +0000 (09:33 +0200)
commitb25147b49301454409d9e38b0cbd46221be089a8
tree8acf6136a41890a370c2dbd84f6777f42c236d6f
parentb67ef52116de116e4945b964aa3c4c828848eb1c
ALSA: PCM: check if ops are defined before suspending PCM

[ Upstream commit d9c0b2afe820fa3b3f8258a659daee2cc71ca3ef ]

BE dai links only have internal PCM's and their substream ops may
not be set. Suspending these PCM's will result in their
 ops->trigger() being invoked and cause a kernel oops.
So skip suspending PCM's if their ops are NULL.

[ NOTE: this change is required now for following the recent PCM core
  change to get rid of snd_pcm_suspend() call.  Since DPCM BE takes
  the runtime carried from FE while keeping NULL ops, it can hit this
  bug.  See details at:
     https://github.com/thesofproject/linux/pull/582
  -- tiwai ]

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/core/pcm_native.c