Skip to content

Commit

Permalink
Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm…
Browse files Browse the repository at this point in the history
…/linux/kernel/git/tip/linux-2.6-tip

* 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  clocksource: Save mult_orig in clocksource_disable()
  • Loading branch information
Linus Torvalds committed Jul 31, 2009
2 parents d27d4e2 + c712184 commit 6eb80e0
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion include/linux/clocksource.h
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,12 @@ static inline int clocksource_enable(struct clocksource *cs)
if (cs->enable)
ret = cs->enable(cs);

/* save mult_orig on enable */
/*
* The frequency may have changed while the clocksource
* was disabled. If so the code in ->enable() must update
* the mult value to reflect the new frequency. Make sure
* mult_orig follows this change.
*/
cs->mult_orig = cs->mult;

return ret;
Expand All @@ -309,6 +314,13 @@ static inline int clocksource_enable(struct clocksource *cs)
*/
static inline void clocksource_disable(struct clocksource *cs)
{
/*
* Save mult_orig in mult so clocksource_enable() can
* restore the value regardless if ->enable() updates
* the value of mult or not.
*/
cs->mult = cs->mult_orig;

if (cs->disable)
cs->disable(cs);
}
Expand Down

0 comments on commit 6eb80e0

Please sign in to comment.