diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/time/clockevents.c | 8 | ||||
-rw-r--r-- | kernel/time/tick-broadcast.c | 6 | ||||
-rw-r--r-- | kernel/time/tick-internal.h | 6 |
3 files changed, 12 insertions, 8 deletions
diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c index f85e5fda9c66..ad362c260ef4 100644 --- a/kernel/time/clockevents.c +++ b/kernel/time/clockevents.c | |||
@@ -542,12 +542,13 @@ void clockevents_resume(void) | |||
542 | #ifdef CONFIG_GENERIC_CLOCKEVENTS | 542 | #ifdef CONFIG_GENERIC_CLOCKEVENTS |
543 | /** | 543 | /** |
544 | * clockevents_notify - notification about relevant events | 544 | * clockevents_notify - notification about relevant events |
545 | * Returns 0 on success, any other value on error | ||
545 | */ | 546 | */ |
546 | void clockevents_notify(unsigned long reason, void *arg) | 547 | int clockevents_notify(unsigned long reason, void *arg) |
547 | { | 548 | { |
548 | struct clock_event_device *dev, *tmp; | 549 | struct clock_event_device *dev, *tmp; |
549 | unsigned long flags; | 550 | unsigned long flags; |
550 | int cpu; | 551 | int cpu, ret = 0; |
551 | 552 | ||
552 | raw_spin_lock_irqsave(&clockevents_lock, flags); | 553 | raw_spin_lock_irqsave(&clockevents_lock, flags); |
553 | 554 | ||
@@ -560,7 +561,7 @@ void clockevents_notify(unsigned long reason, void *arg) | |||
560 | 561 | ||
561 | case CLOCK_EVT_NOTIFY_BROADCAST_ENTER: | 562 | case CLOCK_EVT_NOTIFY_BROADCAST_ENTER: |
562 | case CLOCK_EVT_NOTIFY_BROADCAST_EXIT: | 563 | case CLOCK_EVT_NOTIFY_BROADCAST_EXIT: |
563 | tick_broadcast_oneshot_control(reason); | 564 | ret = tick_broadcast_oneshot_control(reason); |
564 | break; | 565 | break; |
565 | 566 | ||
566 | case CLOCK_EVT_NOTIFY_CPU_DYING: | 567 | case CLOCK_EVT_NOTIFY_CPU_DYING: |
@@ -603,6 +604,7 @@ void clockevents_notify(unsigned long reason, void *arg) | |||
603 | break; | 604 | break; |
604 | } | 605 | } |
605 | raw_spin_unlock_irqrestore(&clockevents_lock, flags); | 606 | raw_spin_unlock_irqrestore(&clockevents_lock, flags); |
607 | return ret; | ||
606 | } | 608 | } |
607 | EXPORT_SYMBOL_GPL(clockevents_notify); | 609 | EXPORT_SYMBOL_GPL(clockevents_notify); |
608 | 610 | ||
diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c index 003e6c3663b1..84c8fd91d744 100644 --- a/kernel/time/tick-broadcast.c +++ b/kernel/time/tick-broadcast.c | |||
@@ -646,14 +646,15 @@ again: | |||
646 | /* | 646 | /* |
647 | * Powerstate information: The system enters/leaves a state, where | 647 | * Powerstate information: The system enters/leaves a state, where |
648 | * affected devices might stop | 648 | * affected devices might stop |
649 | * Returns 0 on success, -EBUSY if the cpu is used to broadcast wakeups. | ||
649 | */ | 650 | */ |
650 | void tick_broadcast_oneshot_control(unsigned long reason) | 651 | int tick_broadcast_oneshot_control(unsigned long reason) |
651 | { | 652 | { |
652 | struct clock_event_device *bc, *dev; | 653 | struct clock_event_device *bc, *dev; |
653 | struct tick_device *td; | 654 | struct tick_device *td; |
654 | unsigned long flags; | 655 | unsigned long flags; |
655 | ktime_t now; | 656 | ktime_t now; |
656 | int cpu; | 657 | int cpu, ret = 0; |
657 | 658 | ||
658 | /* | 659 | /* |
659 | * Periodic mode does not care about the enter/exit of power | 660 | * Periodic mode does not care about the enter/exit of power |
@@ -759,6 +760,7 @@ void tick_broadcast_oneshot_control(unsigned long reason) | |||
759 | } | 760 | } |
760 | out: | 761 | out: |
761 | raw_spin_unlock_irqrestore(&tick_broadcast_lock, flags); | 762 | raw_spin_unlock_irqrestore(&tick_broadcast_lock, flags); |
763 | return ret; | ||
762 | } | 764 | } |
763 | 765 | ||
764 | /* | 766 | /* |
diff --git a/kernel/time/tick-internal.h b/kernel/time/tick-internal.h index 26f1c0ba9d81..0756c62c219a 100644 --- a/kernel/time/tick-internal.h +++ b/kernel/time/tick-internal.h | |||
@@ -46,7 +46,7 @@ extern int tick_switch_to_oneshot(void (*handler)(struct clock_event_device *)); | |||
46 | extern void tick_resume_oneshot(void); | 46 | extern void tick_resume_oneshot(void); |
47 | # ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST | 47 | # ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST |
48 | extern void tick_broadcast_setup_oneshot(struct clock_event_device *bc); | 48 | extern void tick_broadcast_setup_oneshot(struct clock_event_device *bc); |
49 | extern void tick_broadcast_oneshot_control(unsigned long reason); | 49 | extern int tick_broadcast_oneshot_control(unsigned long reason); |
50 | extern void tick_broadcast_switch_to_oneshot(void); | 50 | extern void tick_broadcast_switch_to_oneshot(void); |
51 | extern void tick_shutdown_broadcast_oneshot(unsigned int *cpup); | 51 | extern void tick_shutdown_broadcast_oneshot(unsigned int *cpup); |
52 | extern int tick_resume_broadcast_oneshot(struct clock_event_device *bc); | 52 | extern int tick_resume_broadcast_oneshot(struct clock_event_device *bc); |
@@ -58,7 +58,7 @@ static inline void tick_broadcast_setup_oneshot(struct clock_event_device *bc) | |||
58 | { | 58 | { |
59 | BUG(); | 59 | BUG(); |
60 | } | 60 | } |
61 | static inline void tick_broadcast_oneshot_control(unsigned long reason) { } | 61 | static inline int tick_broadcast_oneshot_control(unsigned long reason) { return 0; } |
62 | static inline void tick_broadcast_switch_to_oneshot(void) { } | 62 | static inline void tick_broadcast_switch_to_oneshot(void) { } |
63 | static inline void tick_shutdown_broadcast_oneshot(unsigned int *cpup) { } | 63 | static inline void tick_shutdown_broadcast_oneshot(unsigned int *cpup) { } |
64 | static inline int tick_broadcast_oneshot_active(void) { return 0; } | 64 | static inline int tick_broadcast_oneshot_active(void) { return 0; } |
@@ -87,7 +87,7 @@ static inline void tick_broadcast_setup_oneshot(struct clock_event_device *bc) | |||
87 | { | 87 | { |
88 | BUG(); | 88 | BUG(); |
89 | } | 89 | } |
90 | static inline void tick_broadcast_oneshot_control(unsigned long reason) { } | 90 | static inline int tick_broadcast_oneshot_control(unsigned long reason) { return 0; } |
91 | static inline void tick_shutdown_broadcast_oneshot(unsigned int *cpup) { } | 91 | static inline void tick_shutdown_broadcast_oneshot(unsigned int *cpup) { } |
92 | static inline int tick_resume_broadcast_oneshot(struct clock_event_device *bc) | 92 | static inline int tick_resume_broadcast_oneshot(struct clock_event_device *bc) |
93 | { | 93 | { |