Re: [PATCH] Fixup MODULE_DEVICE_TABLE(dmi, ...)

From: Alexey Dobriyan
Date: Wed Dec 03 2008 - 17:52:46 EST


On Wed, Dec 03, 2008 at 09:03:21AM +0000, David Woodhouse wrote:
> On Wed, 2008-12-03 at 00:41 -0800, Andrew Morton wrote:
> > The changelog is too crappy for me. Why did that error occur, and how
> > does the patch fix it?
>
> Well, you repeated the explanation of what's wrong -- although I don't
> see how it actually causes an _error_; it works here.

It's just gcc version,

gcc version 3.4.6 (Gentoo 3.4.6-r2 p1.5)

which is 5-10% faster than 4.1.2, that's why I switched back to it.

> The problem is that the MODULE_DEVICE_TABLE(dmi, foo) line expands to...
>
> extern const struct dmi_device_id __mod_dmi_device_table
> __attribute__ ((unused, alias("foo")));
>
> And 'struct dmi_device_id' doesn't exist -- what we have is 'struct
> dmi_system_id'.
>
> In practice, this doesn't seem to matter because we never ask the
> compiler to look _inside_ that struct -- it's just like a forward
> declaration of 'struct foo' and then using pointers to it.
>
> But it looks like Alexey's managed to find a way to actually make a
> compiler barf on it, so that increases the motivation to fix it
> promptly...
--
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/