On 08/14/15 22:25, Mark Brown wrote:
On Tue, May 26, 2015 at 09:59:07PM +0300, Jyri Sarha wrote:

+
+       mutex_lock(&hcp->current_stream_lock);
+       if (hcp->current_stream && hcp->current_stream->runtime &&
+           snd_pcm_running(hcp->current_stream)) {
+               dev_info(dev, "HDMI audio playback aborted\n");

Does this really need to be dev_info()?


No, I'll change that to debug level.

+       if (hcp->hcd.ops->get_eld) {
+               hcp->eld = hcp->hcd.ops->get_eld(hcp->hcd.dev);
+
+               /* Call snd_pcm_hw_constraint_eld here */
+       }

...

+       dev_dbg(dai->dev, "%s()\n", __func__);
+
+       mutex_lock(&hcp->current_stream_lock);
+       BUG_ON(hcp->current_stream != substream);
+       hcp->current_stream = NULL;
+       mutex_unlock(&hcp->current_stream_lock);
+
+       hcp->hcd.ops->audio_shutdown(hcp->hcd.dev);

Shouldn't the callback be in or before the lock?  Otherwise we could
potentially race with starting a new stream.


Yes, it should be before it. I'll fix that.

If it is inside, there is a "possible deadlock" warning (atleast in the similar place in omap-hdmi-audio there was) if those warnings are turned on and there is another lock that is taken in the video side callbacks.

Thanks,
Jyri
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to