On Thu, Dec 04, 2014 at 09:00:35AM +0000, Andrew Jackson wrote: > On 12/03/14 17:25, Mark Brown wrote: > > On Wed, Dec 03, 2014 at 04:38:55PM +0000, Andrew Jackson wrote:
> >> case SNDRV_PCM_TRIGGER_STOP: > >> case SNDRV_PCM_TRIGGER_SUSPEND: > >> case SNDRV_PCM_TRIGGER_PAUSE_PUSH: > >> - dev->active--; > >> + if (dev->active > 0) > >> + dev->active--; > > How is this triggering - this sounds like you're papering over some > > other bug somewhere? > When I looked at the code paths I couldn't convince myself that STOP > wouldn't be called more than once. Then actuve would be negative and > the device might not be restartable. I didn't have a problem per se, > it was just that it seemed to be something of a loophole. If you're just adding the check on the off chance that it might fire you need to add a warning message as well - what your change does is make the code look like it's supposed to have broken reference counting since it has a check to silently fix up and ignore problems.
signature.asc
Description: Digital signature