diff options
Diffstat (limited to 'drivers/base')
| -rw-r--r-- | drivers/base/power/wakeup.c | 18 |
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. */ |
| 58 | static unsigned int saved_count; | 58 | static unsigned int saved_count; |
| 59 | 59 | ||
| 60 | static DEFINE_SPINLOCK(events_lock); | 60 | static DEFINE_RAW_SPINLOCK(events_lock); |
| 61 | 61 | ||
| 62 | static void pm_wakeup_timer_fn(struct timer_list *t); | 62 | static 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 | } |
| 191 | EXPORT_SYMBOL_GPL(wakeup_source_add); | 191 | EXPORT_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 | } |
| 209 | EXPORT_SYMBOL_GPL(wakeup_source_remove); | 209 | EXPORT_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 | ||
