Re: Am I paranoid or is everyone out to break my kernel builds(Breakage in drivers/pcmcia)

From: Andrew Morton
Date: Thu Oct 21 2004 - 04:51:19 EST


Russell King <rmk+lkml@xxxxxxxxxxxxxxxx> wrote:
>
> It would appear that this change:
>
> -module_param_array(irq_list, int, irq_list_count, 0444);
> +module_param_array(irq_list, int, &irq_list_count, 0444);
>
> given:
>
> static int irq_list[16];
> static int irq_list_count;
>
> breaks PCMCIA drivers. Why?
>
> #define module_param_array(name, type, num, perm) \
> module_param_array_named(name, name, type, num, perm)
>
> #define module_param_array_named(name, array, type, num, perm) \
> static struct kparam_array __param_arr_##name \
> = { ARRAY_SIZE(array), &num, param_set_##type, param_get_##type,\
> sizeof(array[0]), array }; \
> module_param_call(name, param_array_set, param_array_get, \
> &__param_arr_##name, perm)
>
> Take special note of the '&' before 'num' in the above initialiser, and
> check the structure:

Something's out of whack with your tree. You should have:

#define module_param_array_named(name, array, type, nump, perm) \
static struct kparam_array __param_arr_##name \
= { ARRAY_SIZE(array), nump, param_set_##type, param_get_##type,\
sizeof(array[0]), array }; \
module_param_call(name, param_array_set, param_array_get, \
&__param_arr_##name, perm)


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/