Commit fa58e4f6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull power management fix from Rafael Wysocki:
 "Add missing locking annotations to two recently introduced
  list_for_each_entry_rcu() loops in the core device suspend/resume
  code (Johannes Berg)"

* tag 'pm-6.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  PM: sleep: annotate RCU list iterations
parents 4d28e280 e246518a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -675,7 +675,7 @@ static void dpm_async_resume_subordinate(struct device *dev, async_func_t func)
	idx = device_links_read_lock();

	/* Start processing the device's "async" consumers. */
	list_for_each_entry_rcu(link, &dev->links.consumers, s_node)
	list_for_each_entry_rcu_locked(link, &dev->links.consumers, s_node)
		if (READ_ONCE(link->status) != DL_STATE_DORMANT)
			dpm_async_with_cleanup(link->consumer, func);

@@ -1330,7 +1330,7 @@ static void dpm_async_suspend_superior(struct device *dev, async_func_t func)
	idx = device_links_read_lock();

	/* Start processing the device's "async" suppliers. */
	list_for_each_entry_rcu(link, &dev->links.suppliers, c_node)
	list_for_each_entry_rcu_locked(link, &dev->links.suppliers, c_node)
		if (READ_ONCE(link->status) != DL_STATE_DORMANT)
			dpm_async_with_cleanup(link->supplier, func);