Re: [PATCH] Proposed fix for PM deadlock on dpm_sem

From: David Brownell
Date: Tue Oct 12 2004 - 18:22:14 EST


On Monday 11 October 2004 8:26 pm, Paul Mackerras wrote:
>
> This patch removes the deadlocks by adding a new semaphore, called
> dpm_list_sem, which serializes changes to the power management lists
> (dpm_active et al.). We hold dpm_sem during calls to suspend_device
> and resume_device but not dpm_list_sem.

Looks pleasantly simple, I'll have to try it! I recall that Patrick's
patch also removed these comments ... methinks they're the
reason I wanted to avoid patching this myself, they make it sound
like there's a big deal. Of course, (a) is one side of the bug so
it's got to go, but the other two were less obvious to me. It
looked like (b) was undesirable prevention-of-concurrency,
but (c) might matter for the system-suspend cases.

- Dave


> - * Note this function leaves dpm_sem held to
> - * a) block other devices from registering.
> - * b) prevent other PM operations from happening after we've begun.
> - * c) make sure we're exclusive when we disable interrupts.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/