longrun.
I was just looking into this..
Error: ./arch/i386/kernel/cpu/cpufreq/longrun.o .data refers to 00000018 R_386_32 .init.text
When I noticed that longrun_get_policy() is only called from longrun_cpu_init(). Is there a reason this driver doesn't have a .getpolicy method pointer pointing to this routine ?
Incidentally, I'm a bit puzzled by the error.
The only __init functions are ..
longrun_get_policylongrun_determine_freqslongrun_cpu_initlongrun_init
The first two are only called by the 3rd. and the 3rd/4th are only ever called at init time.
What do I miss here?
Dave
Quoted 6 lines · Dave Jones
I was just looking into this..
Error:./arch/i386/kernel/cpu/cpufreq/longrun.o.data refers to 00000018R_386_32.init.textWhen I noticed that
longrun_get_policy()is only called fromlongrun_cpu_init(). Is there a reason this driver doesn't have a .getpolicy method pointer pointing to this routine ?
Because "policy" is/should be driver specific. Longrun CPUs can be set to a frequency range _and_ a "policy" (powersave or performance); even though we currently assume all such "range" CPUs support these two modes we should stop doing so soon. So, the core doesn't implement a "getpolicy" method -- only a "get" (==get current frequency) function. For Longrun CPUs, this is purely informational as neither the TSC nor any other part of the kernel needs to know the current frequency, and the frequency may and most likely will change "behind the kernel's back". And it is implemented in
static unsigned int longrun_get(unsigned int cpu)
Quoted 9 lines
Incidentally, I'm a bit puzzled by the error.
The only__initfunctions are ..
longrun_get_policylongrun_determine_freqslongrun_cpu_initlongrun_init
Quoted 4 lines
The first two are only called by the 3rd. and the 3rd/4th are only ever called at init time.
What do I miss here?
Sorry, don't know what's broken here. However, I might suspect these functions being __init() [*] -- could you change that to __devinit and/or remove it completely, and re-test, please?
Thanks,
Dominik
[*] ... I know, it was me ...