Re: [PATCH 1149/1285] Replace numeric parameter like 0444 with macro
From: Nicholas Mc Guire
Date: Tue Aug 16 2016 - 07:18:17 EST
On Tue, Aug 02, 2016 at 08:20:44PM +0800, Baole Ni wrote:
> I find that the developers often just specified the numeric value
> when calling a macro which is defined with a parameter for access permission.
> As we know, these numeric value for access permission have had the corresponding macro,
> and that using macro can improve the robustness and readability of the code,
> thus, I suggest replacing the numeric parameter with the macro.
this is actually a quite common issue - taking your example and generalizing
it into a simple coccinelle scanner shows aproximately 1400 cases for
module_param, module_param_array and module_param_named.
>
> Signed-off-by: Chuansheng Liu <chuansheng.liu@xxxxxxxxx>
> Signed-off-by: Baole Ni <baolex.ni@xxxxxxxxx>
> ---
> sound/core/oss/pcm_oss.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
> index ebc9fdf..0ff0dd8 100644
> --- a/sound/core/oss/pcm_oss.c
> +++ b/sound/core/oss/pcm_oss.c
> @@ -53,11 +53,11 @@ static bool nonblock_open = 1;
> MODULE_AUTHOR("Jaroslav Kysela <perex@xxxxxxxx>, Abramo Bagnara <abramo@xxxxxxxxxxxxxxxx>");
> MODULE_DESCRIPTION("PCM OSS emulation for ALSA.");
> MODULE_LICENSE("GPL");
> -module_param_array(dsp_map, int, NULL, 0444);
> +module_param_array(dsp_map, int, NULL, S_IRUSR | S_IRGRP | S_IROTH);
as S_IRUSR | S_IRGRP | S_IROTH == S_IRUGO this (and the others below
could be simplfied
+module_param_array(dsp_map, int, NULL, S_IRUGO);
> MODULE_PARM_DESC(dsp_map, "PCM device number assigned to 1st OSS device.");
> -module_param_array(adsp_map, int, NULL, 0444);
> +module_param_array(adsp_map, int, NULL, S_IRUSR | S_IRGRP | S_IROTH);
> MODULE_PARM_DESC(adsp_map, "PCM device number assigned to 2nd OSS device.");
> -module_param(nonblock_open, bool, 0644);
> +module_param(nonblock_open, bool, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
for 0644 one could also use S_IWUSR | S_IRUGO which might be more redaable
here as well.
> MODULE_PARM_DESC(nonblock_open, "Don't block opening busy PCM devices.");
> MODULE_ALIAS_SNDRV_MINOR(SNDRV_MINOR_OSS_PCM);
> MODULE_ALIAS_SNDRV_MINOR(SNDRV_MINOR_OSS_PCM1);
thx!
hofrat