On Sunday, October 10, 2010, James Hogan wrote: > Lock the pm device list mutex using device_pm_lock() and > device_pm_unlock() around the list iteration in show_dev_hash(). > > show_dev_hash() was reverse iterating dpm_list without first locking the > mutex that the functions in drivers/base/power/main.c lock. I assume > this was unintentional since there is no comment suggesting why the lock > might not be necessary. > > Signed-off-by: James Hogan <james@xxxxxxxxxxxxx> Looks good. > --- > drivers/base/power/trace.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/drivers/base/power/trace.c b/drivers/base/power/trace.c > index 0a1a2c4..17e24e3 100644 > --- a/drivers/base/power/trace.c > +++ b/drivers/base/power/trace.c > @@ -188,8 +188,10 @@ static int show_file_hash(unsigned int value) > static int show_dev_hash(unsigned int value) > { > int match = 0; > - struct list_head *entry = dpm_list.prev; > + struct list_head *entry; > > + device_pm_lock(); > + entry = dpm_list.prev; > while (entry != &dpm_list) { > struct device * dev = to_device(entry); > unsigned int hash = hash_string(DEVSEED, dev_name(dev), DEVHASH); > @@ -199,6 +201,7 @@ static int show_dev_hash(unsigned int value) > } > entry = entry->prev; > } > + device_pm_unlock(); > return match; > } > > _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm