• Ard Biesheuvel's avatar
    sched: move CPU field back into thread_info if THREAD_INFO_IN_TASK=y · bcf9033e
    Ard Biesheuvel authored
    THREAD_INFO_IN_TASK moved the CPU field out of thread_info, but this
    causes some issues on architectures that define raw_smp_processor_id()
    in terms of this field, due to the fact that #include'ing linux/sched.h
    to get at struct task_struct is problematic in terms of circular
    dependencies.
    
    Given that thread_info and task_struct are the same data structure
    anyway when THREAD_INFO_IN_TASK=y, let's move it back so that having
    access to the type definition of struct thread_info is sufficient to
    reference the CPU number of the current task.
    
    Note that this requires THREAD_INFO_IN_TASK's definition of the
    task_thread_info() helper to be updated, as task_cpu() takes a
    pointer-to-const, whereas task_thread_info() (which is used to generate
    lvalues as well), needs a non-const pointer. So make it a macro instead.
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
    Acked-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    bcf9033e
smp.c 42 KB