Re: [PATCH 1/3] [SCSI] dpt_i2o: fix compiler warning on dptids

Namhyung Kim
2010-12-07T17:25:05Z

2010-12-07 (화), 10:30 -0600, James Bottomley:
> On Wed, 2010-12-08 at 01:12 +0900, Namhyung Kim wrote:
> > MODULE_DEVICE_TABLE expands to nop when !MODULE (not !CONFIG_MODULE) so
> > allyesconfig build always emits the warnings. Possible patch for this
> > would be wraping it up in #ifdefs but when I sent a same patch to Greg
> > KH he didn't want to add more #ifdefs in .c files.
>
> I didn't mean changing any c files. I meant fixing the module include
> to make the table used even in the !MODULE case. That way we only alter
> one file instead of a significant proportion of the drivers.
>

It would not be a _significant_ proportion because normal drivers may
refer the table in their driver struct. :)

Anyway the patch below looks good to me. I'll happily drop my patches if
you apply this in your tree.

Thanks.

>
> diff --git a/include/linux/module.h b/include/linux/module.h
> index 7575bbb..d49aa9c 100644
> --- a/include/linux/module.h
> +++ b/include/linux/module.h
> @@ -90,7 +90,10 @@ extern const struct gtype##_id __mod_##gtype##_table \
> extern struct module __this_module;
> #define THIS_MODULE (&__this_module)
> #else /* !MODULE */
> -#define MODULE_GENERIC_TABLE(gtype,name)
> +/* Flag name as used to avoid warnings about the unused device id table */
> +#define MODULE_GENERIC_TABLE(gtype,name) \
> +static const struct gtype##_id __mod_##gtype##_table \
> + __attribute__ ((unused, alias(__stringify(name))))
> #define THIS_MODULE ((struct module *)0)
> #endif
>

--
Regards,
Namhyung Kim