@@ -1067,6 +1067,7 @@ static struct clocksource clocksource_tsc_early = {
1067
1067
.resume = tsc_resume ,
1068
1068
.mark_unstable = tsc_cs_mark_unstable ,
1069
1069
.tick_stable = tsc_cs_tick_stable ,
1070
+ .list = LIST_HEAD_INIT (clocksource_tsc_early .list ),
1070
1071
};
1071
1072
1072
1073
/*
@@ -1086,6 +1087,7 @@ static struct clocksource clocksource_tsc = {
1086
1087
.resume = tsc_resume ,
1087
1088
.mark_unstable = tsc_cs_mark_unstable ,
1088
1089
.tick_stable = tsc_cs_tick_stable ,
1090
+ .list = LIST_HEAD_INIT (clocksource_tsc .list ),
1089
1091
};
1090
1092
1091
1093
void mark_tsc_unstable (char * reason )
@@ -1098,13 +1100,9 @@ void mark_tsc_unstable(char *reason)
1098
1100
clear_sched_clock_stable ();
1099
1101
disable_sched_clock_irqtime ();
1100
1102
pr_info ("Marking TSC unstable due to %s\n" , reason );
1101
- /* Change only the rating, when not registered */
1102
- if (clocksource_tsc .mult ) {
1103
- clocksource_mark_unstable (& clocksource_tsc );
1104
- } else {
1105
- clocksource_tsc .flags |= CLOCK_SOURCE_UNSTABLE ;
1106
- clocksource_tsc .rating = 0 ;
1107
- }
1103
+
1104
+ clocksource_mark_unstable (& clocksource_tsc_early );
1105
+ clocksource_mark_unstable (& clocksource_tsc );
1108
1106
}
1109
1107
1110
1108
EXPORT_SYMBOL_GPL (mark_tsc_unstable );
0 commit comments