mirror of
https://github.com/torvalds/linux.git
synced 2024-11-13 15:41:39 +00:00
PM: Lock PM device list mutex in show_dev_hash()
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@albanarts.com> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
This commit is contained in:
parent
f71648d73c
commit
2ac21c6bc4
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user