[lm-sensors] [PATCH] x86/hwmon: avoid deadlock on CPU removal in pkgtemp

Guenter Roeck guenter.roeck at ericsson.com
Wed Sep 15 03:59:36 CEST 2010


On Tue, Sep 14, 2010 at 08:13:00PM -0400, Fenghua Yu wrote:
> On Mon, Sep 13, 2010 at 03:11:05AM -0700, Jan Beulich wrote:
> > pkgtemp_device_remove(), holding the list protecting mutex, calls
> > pkgtemp_device_add(), which itself wants to acquire the same mutex.
> > Holding the mutex over the entire loop body in pkgtemp_device_remove()
> > isn't really necessary, as long as the loop gets exited after
> > processing the matched CPU.
> > 
> > Once exiting the loop after removing an eventual match, there's no
> > need for using the "safe" list iterator anymore.
> > 
> > Signed-off-by: Jan Beulich <jbeulich at novell.com>
> > Cc: Fenghua Yu <fenghua.yu at intel.com>
> > 
> > ---
> >  drivers/hwmon/pkgtemp.c |    7 ++++---
> >  1 file changed, 4 insertions(+), 3 deletions(-)
> > 
> > --- linux-2.6.36-rc4/drivers/hwmon/pkgtemp.c	2010-09-13 08:45:03.000000000 +0200
> > +++ 2.6.36-rc4-x86-pkgtemp-remove-deadlock/drivers/hwmon/pkgtemp.c	2010-09-03 17:54:30.000000000 +0200
> > @@ -339,17 +339,18 @@ exit:
> >  #ifdef CONFIG_HOTPLUG_CPU
> >  static void pkgtemp_device_remove(unsigned int cpu)
> 
> I already sent a  fix patch before. I'll push it to Linus.
> 
Guess it got lost. Re-sending it might have helped, or adding an Acked-by to this patch.

Guenter




More information about the lm-sensors mailing list