@@ -233,6 +233,9 @@ static bool tick_check_percpu(struct clock_event_device *curdev,
static bool tick_check_preferred(struct clock_event_device *curdev,
struct clock_event_device *newdev)
{
+ if (!tick_check_percpu(curdev, newdev, smp_processor_id()))
+ return false;
+
/* Prefer oneshot capable device */
if (!(newdev->features & CLOCK_EVT_FEAT_ONESHOT)) {
if (curdev && (curdev->features & CLOCK_EVT_FEAT_ONESHOT))
@@ -257,9 +260,6 @@ static bool tick_check_preferred(struct clock_event_device *curdev,
bool tick_check_replacement(struct clock_event_device *curdev,
struct clock_event_device *newdev)
{
- if (!tick_check_percpu(curdev, newdev, smp_processor_id()))
- return false;
-
return tick_check_preferred(curdev, newdev);
}
@@ -273,10 +273,6 @@ void tick_check_new_device(struct clock_event_device *newdev)
struct tick_device *td = tick_get_device(cpu);
struct clock_event_device *curdev = td->evtdev;
- /* cpu local device ? */
- if (!tick_check_percpu(curdev, newdev, cpu))
- goto out_bc;
-
/* Preference decision */
if (!tick_check_preferred(curdev, newdev))
goto out_bc;
tick_check_percpu() and tick_check_preferred() are called from two places and in exactly same order. So, would make sense to call tick_check_percpu() from tick_check_preferred() instead, so that their common caller can just call tick_check_preferred(). Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- kernel/time/tick-common.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)