diff mbox

[V3] Fix problem with cpufreq_ondemand or cpufreq_conservative

Message ID 50DF275D.1080702@lwfinger.net (mailing list archive)
State RFC, archived
Headers show

Commit Message

Larry Finger Dec. 29, 2012, 5:24 p.m. UTC
On 12/29/2012 07:27 AM, Rafael J. Wysocki wrote:
> On Friday, December 28, 2012 07:55:20 PM Larry Finger wrote:
>> Since commit 2aacdff entitled "cpufreq: Move common part from governors
>> to separate file", whenever the drivers that depend on this new file
>> (cpufreq_ondemand or cpufreq_conservative) are built as modules, a new
>> module named cpufreq_governor is created because the Makefile includes
>> cpufreq_governor.o twice. As drivers/cpufreq/cpufreq_governor.c contains no
>> MODULE directives, the resulting module has no license specified, which
>> results in logging of a "module license 'unspecified' taints kernel". In
>> addition, a number of globals are exported GPL only, and are therefore
>> not available. This fix establishes a new boolean configuration variable
>> that forces cpufreq_governor.o to be linked into the kernel whenever
>> either cpufreq_ondemand or cpufreq_conservative is selected.
>>
>> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
>> ---
>> V3 changes only Kconfig and Makefile and avoids creating a new module.
>
> OK, thanks for the patch!
>
> If you don't mind, I'll rename CONFIG_CPU_FREQ_GOVERNOR to
> CONFIG_CPU_FREQ_GOV_COMMON when applying it, though.

The following does the job and is somewhat cleaner. If you want, I can remove 
the line wrap and submit it as V4. The downside of this approach is that the 
nested ifs will get cumbersome is more governors need cpufreq_governor.o.

Larry

  obj-$(CONFIG_CPU_FREQ_TABLE)           += freq_table.o


--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Rafael Wysocki Dec. 29, 2012, 9:54 p.m. UTC | #1
On Saturday, December 29, 2012 11:24:45 AM Larry Finger wrote:
> On 12/29/2012 07:27 AM, Rafael J. Wysocki wrote:
> > On Friday, December 28, 2012 07:55:20 PM Larry Finger wrote:
> >> Since commit 2aacdff entitled "cpufreq: Move common part from governors
> >> to separate file", whenever the drivers that depend on this new file
> >> (cpufreq_ondemand or cpufreq_conservative) are built as modules, a new
> >> module named cpufreq_governor is created because the Makefile includes
> >> cpufreq_governor.o twice. As drivers/cpufreq/cpufreq_governor.c contains no
> >> MODULE directives, the resulting module has no license specified, which
> >> results in logging of a "module license 'unspecified' taints kernel". In
> >> addition, a number of globals are exported GPL only, and are therefore
> >> not available. This fix establishes a new boolean configuration variable
> >> that forces cpufreq_governor.o to be linked into the kernel whenever
> >> either cpufreq_ondemand or cpufreq_conservative is selected.
> >>
> >> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
> >> ---
> >> V3 changes only Kconfig and Makefile and avoids creating a new module.
> >
> > OK, thanks for the patch!
> >
> > If you don't mind, I'll rename CONFIG_CPU_FREQ_GOVERNOR to
> > CONFIG_CPU_FREQ_GOV_COMMON when applying it, though.
> 
> The following does the job and is somewhat cleaner. If you want, I can remove 
> the line wrap and submit it as V4. The downside of this approach is that the 
> nested ifs will get cumbersome is more governors need cpufreq_governor.o.

I actually prefer the Kconfig-based one.  The extra config option is not
a problem to me.

Thanks,
Rafael


> Index: wireless-testing-new/drivers/cpufreq/Makefile
> ===================================================================
> --- wireless-testing-new.orig/drivers/cpufreq/Makefile
> +++ wireless-testing-new/drivers/cpufreq/Makefile
> @@ -7,8 +7,15 @@ obj-$(CONFIG_CPU_FREQ_STAT)
>   obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
>   obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE)   += cpufreq_powersave.o
>   obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE)   += cpufreq_userspace.o
> -obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND)    += cpufreq_ondemand.o cpufreq_governor.o
> -obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE)        += cpufreq_conservative.o 
> cpufreq_governor.o
> +obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND)    += cpufreq_ondemand.o
> +obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE)        += cpufreq_conservative.o
> +ifdef CONFIG_CPU_FREQ_GOV_ONDEMAND
> +  obj-y += cpufreq_governor.o
> +else
> +  ifdef CONFIG_CPU_FREQ_GOV_CONSERVATIVE
> +    obj-y += cpufreq_governor.o
> +  endif
> +endif
> 
>   # CPUfreq cross-arch helpers
>   obj-$(CONFIG_CPU_FREQ_TABLE)           += freq_table.o
> 
>
diff mbox

Patch

Index: wireless-testing-new/drivers/cpufreq/Makefile
===================================================================
--- wireless-testing-new.orig/drivers/cpufreq/Makefile
+++ wireless-testing-new/drivers/cpufreq/Makefile
@@ -7,8 +7,15 @@  obj-$(CONFIG_CPU_FREQ_STAT)
  obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
  obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE)   += cpufreq_powersave.o
  obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE)   += cpufreq_userspace.o
-obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND)    += cpufreq_ondemand.o cpufreq_governor.o
-obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE)        += cpufreq_conservative.o 
cpufreq_governor.o
+obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND)    += cpufreq_ondemand.o
+obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE)        += cpufreq_conservative.o
+ifdef CONFIG_CPU_FREQ_GOV_ONDEMAND
+  obj-y += cpufreq_governor.o
+else
+  ifdef CONFIG_CPU_FREQ_GOV_CONSERVATIVE
+    obj-y += cpufreq_governor.o
+  endif
+endif

  # CPUfreq cross-arch helpers