Jiri Slaby <jslaby@xxxxxxx> writes: > From: Rusty Russell <rusty@xxxxxxxxxxxxxxx> > > This patch has been added to the 3.12 stable tree. If you have any > objections, please let us know. > > =============== > > commit cff26a51da5d206d3baf871e75778da44710219d upstream. > > MODULE_DEVICE_TABLE() calles MODULE_GENERIC_TABLE(); make it do the > work directly. This also removes a wart introduced in the last patch, > where the alias is defined to be an unknown struct type "struct > type##__##name##_device_id" instead of "struct type##_device_id" (it's > an extern so GCC doesn't care, but it's wrong). > > The other user of MODULE_GENERIC_TABLE (ISAPNP_CARD_TABLE) is unused, > so delete it. > > Bryan: gcc v3.3.2 cares Hmm, Bryan, your config and the message please? Thanks, Rusty. > Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx> > Cc: Bryan Kadzban <bryan@xxxxxxxxxxx> > Signed-off-by: Jiri Slaby <jslaby@xxxxxxx> > --- > include/linux/isapnp.h | 4 ---- > include/linux/module.h | 19 ++++++++----------- > 2 files changed, 8 insertions(+), 15 deletions(-) > > diff --git a/include/linux/isapnp.h b/include/linux/isapnp.h > index e2d28b026a8c..3c77bf9b1efd 100644 > --- a/include/linux/isapnp.h > +++ b/include/linux/isapnp.h > @@ -56,10 +56,6 @@ > #define ISAPNP_DEVICE_ID(_va, _vb, _vc, _function) \ > { .vendor = ISAPNP_VENDOR(_va, _vb, _vc), .function = ISAPNP_FUNCTION(_function) } > > -/* export used IDs outside module */ > -#define ISAPNP_CARD_TABLE(name) \ > - MODULE_GENERIC_TABLE(isapnp_card, name) > - > struct isapnp_card_id { > unsigned long driver_data; /* data private to the driver */ > unsigned short card_vendor, card_device; > diff --git a/include/linux/module.h b/include/linux/module.h > index 54aef1b38463..73c8c06c25bf 100644 > --- a/include/linux/module.h > +++ b/include/linux/module.h > @@ -83,15 +83,6 @@ void sort_extable(struct exception_table_entry *start, > void sort_main_extable(void); > void trim_init_extable(struct module *m); > > -#ifdef MODULE > -#define MODULE_GENERIC_TABLE(gtype,name) \ > -extern const struct gtype##_id __mod_##gtype##_table \ > - __attribute__ ((unused, alias(__stringify(name)))) > - > -#else /* !MODULE */ > -#define MODULE_GENERIC_TABLE(gtype,name) > -#endif > - > /* Generic info of form tag = "info" */ > #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) > > @@ -142,8 +133,14 @@ extern const struct gtype##_id __mod_##gtype##_table \ > /* What your module does. */ > #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description) > > -#define MODULE_DEVICE_TABLE(type,name) \ > - MODULE_GENERIC_TABLE(type##__##name##_device, name) > +#ifdef MODULE > +/* Creates an alias so file2alias.c can find device table. */ > +#define MODULE_DEVICE_TABLE(type, name) \ > + extern const struct type##_device_id __mod_##type##__##name##_device_table \ > + __attribute__ ((unused, alias(__stringify(name)))) > +#else /* !MODULE */ > +#define MODULE_DEVICE_TABLE(type, name) > +#endif > > /* Version of form [<epoch>:]<version>[-<extra-version>]. > Or for CVS/RCS ID version, everything but the number is stripped. > -- > 2.7.0 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html