Re: [PATCH] PM / OPP: pass cpumask by reference

From: Pavel Machek
Date: Sun May 01 2016 - 06:01:56 EST

On Sat 2016-04-30 13:33:29, Arnd Bergmann wrote:
> The new use of dev_pm_opp_set_sharing_cpus resulted in a harmless compiler
> drivers/cpufreq/mvebu-cpufreq.c: In function 'armada_xp_pmsu_cpufreq_init':
> include/linux/cpumask.h:550:25: error: passing argument 2 of 'dev_pm_opp_set_sharing_cpus' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
> The problem here is that cpumask_var_t gets passed by reference, but
> by declaring a 'const cpumask_var_t' argument, only the pointer is
> constant, not the actual mask. This is harmless because the function
> does not actually modify the mask.
> This patch changes the function prototypes for all of the related functions
> to pass a 'struct cpumask *' instead of 'cpumask_var_t', matching what
> most other such functions do in the kernel. This lets us mark all the
> other similar functions as taking a 'const' mask where possible,
> and it avoids the warning without any change in object code.
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> Fixes: 947bd567f7a5 ("mvebu: Use dev_pm_opp_set_sharing_cpus() to
mark OPP tables as shared")

Acked-by: Pavel Machek <pavel@xxxxxx>

(Hiding pointer into cpumask_var_t looks wrong to me, regardless of
const issues).

(cesky, pictures)