aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/base/power/wakeup.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index f1fee72ed970..a25d2d82f44d 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -118,7 +118,6 @@ void wakeup_source_drop(struct wakeup_source *ws)
118 if (!ws) 118 if (!ws)
119 return; 119 return;
120 120
121 del_timer_sync(&ws->timer);
122 __pm_relax(ws); 121 __pm_relax(ws);
123} 122}
124EXPORT_SYMBOL_GPL(wakeup_source_drop); 123EXPORT_SYMBOL_GPL(wakeup_source_drop);
@@ -205,6 +204,13 @@ void wakeup_source_remove(struct wakeup_source *ws)
205 list_del_rcu(&ws->entry); 204 list_del_rcu(&ws->entry);
206 raw_spin_unlock_irqrestore(&events_lock, flags); 205 raw_spin_unlock_irqrestore(&events_lock, flags);
207 synchronize_srcu(&wakeup_srcu); 206 synchronize_srcu(&wakeup_srcu);
207
208 del_timer_sync(&ws->timer);
209 /*
210 * Clear timer.function to make wakeup_source_not_registered() treat
211 * this wakeup source as not registered.
212 */
213 ws->timer.function = NULL;
208} 214}
209EXPORT_SYMBOL_GPL(wakeup_source_remove); 215EXPORT_SYMBOL_GPL(wakeup_source_remove);
210 216