[PATCH v11 2/5] missing include asm/paravirt.h in cputime.c

Stefano Stabellini stefano.stabellini at eu.citrix.com
Thu Nov 5 09:30:01 PST 2015

On Thu, 5 Nov 2015, Peter Zijlstra wrote:
> How can this be missing? Things compile fine now, right?

Fair enough.

> So please better explain why we do this change.

asm/paravirt.h is included by one of the other headers included in
kernel/sched/cputime.c on x86, but not on other architecures. On arm and
arm64, where I am about to introduce asm/paravirt.h and stolen time
support, without #include <asm/paravirt.h> in cputime.c I would get:

kernel/sched/cputime.c: In function ‘steal_account_process_tick’:
kernel/sched/cputime.c:260:24: error: ‘paravirt_steal_enabled’ undeclared (first use in this function)
  if (static_key_false(&paravirt_steal_enabled)) {

A bit of digging on x86 (using gcc -E on cputime.c) tells me that
asm/paravirt.h is coming from the following include chain:

#include <kernel/sched/sched.h>
#include <linux/spinlock.h>
#include <linux/preempt.h>
#include <asm/preempt.h>
#include <linux/thread_info.h>
#include <asm/thread_info.h>
#include <asm/processor.h>
#include <asm/msr.h>
#include <asm/paravirt.h>

More information about the linux-arm-kernel mailing list