aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/power/wakeup.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index e1322788eaee..5fa1898755a3 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -57,7 +57,7 @@ static void split_counters(unsigned int *cnt, unsigned int *inpr)
57/* A preserved old value of the events counter. */ 57/* A preserved old value of the events counter. */
58static unsigned int saved_count; 58static unsigned int saved_count;
59 59
60static DEFINE_SPINLOCK(events_lock); 60static DEFINE_RAW_SPINLOCK(events_lock);
61 61
62static void pm_wakeup_timer_fn(struct timer_list *t); 62static void pm_wakeup_timer_fn(struct timer_list *t);
63 63
@@ -184,9 +184,9 @@ void wakeup_source_add(struct wakeup_source *ws)
184 timer_setup(&ws->timer, pm_wakeup_timer_fn, 0); 184 timer_setup(&ws->timer, pm_wakeup_timer_fn, 0);
185 ws->active = false; 185 ws->active = false;
186 186
187 spin_lock_irqsave(&events_lock, flags); 187 raw_spin_lock_irqsave(&events_lock, flags);
188 list_add_rcu(&ws->entry, &wakeup_sources); 188 list_add_rcu(&ws->entry, &wakeup_sources);
189 spin_unlock_irqrestore(&events_lock, flags); 189 raw_spin_unlock_irqrestore(&events_lock, flags);
190} 190}
191EXPORT_SYMBOL_GPL(wakeup_source_add); 191EXPORT_SYMBOL_GPL(wakeup_source_add);
192 192
@@ -201,9 +201,9 @@ void wakeup_source_remove(struct wakeup_source *ws)
201 if (WARN_ON(!ws)) 201 if (WARN_ON(!ws))
202 return; 202 return;
203 203
204 spin_lock_irqsave(&events_lock, flags); 204 raw_spin_lock_irqsave(&events_lock, flags);
205 list_del_rcu(&ws->entry); 205 list_del_rcu(&ws->entry);
206 spin_unlock_irqrestore(&events_lock, flags); 206 raw_spin_unlock_irqrestore(&events_lock, flags);
207 synchronize_srcu(&wakeup_srcu); 207 synchronize_srcu(&wakeup_srcu);
208} 208}
209EXPORT_SYMBOL_GPL(wakeup_source_remove); 209EXPORT_SYMBOL_GPL(wakeup_source_remove);
@@ -842,7 +842,7 @@ bool pm_wakeup_pending(void)
842 unsigned long flags; 842 unsigned long flags;
843 bool ret = false; 843 bool ret = false;
844 844
845 spin_lock_irqsave(&events_lock, flags); 845 raw_spin_lock_irqsave(&events_lock, flags);
846 if (events_check_enabled) { 846 if (events_check_enabled) {
847 unsigned int cnt, inpr; 847 unsigned int cnt, inpr;
848 848
@@ -850,7 +850,7 @@ bool pm_wakeup_pending(void)
850 ret = (cnt != saved_count || inpr > 0); 850 ret = (cnt != saved_count || inpr > 0);
851 events_check_enabled = !ret; 851 events_check_enabled = !ret;
852 } 852 }
853 spin_unlock_irqrestore(&events_lock, flags); 853 raw_spin_unlock_irqrestore(&events_lock, flags);
854 854
855 if (ret) { 855 if (ret) {
856 pr_debug("PM: Wakeup pending, aborting suspend\n"); 856 pr_debug("PM: Wakeup pending, aborting suspend\n");
@@ -939,13 +939,13 @@ bool pm_save_wakeup_count(unsigned int count)
939 unsigned long flags; 939 unsigned long flags;
940 940
941 events_check_enabled = false; 941 events_check_enabled = false;
942 spin_lock_irqsave(&events_lock, flags); 942 raw_spin_lock_irqsave(&events_lock, flags);
943 split_counters(&cnt, &inpr); 943 split_counters(&cnt, &inpr);
944 if (cnt == count && inpr == 0) { 944 if (cnt == count && inpr == 0) {
945 saved_count = count; 945 saved_count = count;
946 events_check_enabled = true; 946 events_check_enabled = true;
947 } 947 }
948 spin_unlock_irqrestore(&events_lock, flags); 948 raw_spin_unlock_irqrestore(&events_lock, flags);
949 return events_check_enabled; 949 return events_check_enabled;
950} 950}
951 951