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

From: David Woodhouse
Date: Wed Dec 03 2008 - 04:04:26 EST


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.

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...

--
David Woodhouse Open Source Technology Centre
David.Woodhouse@xxxxxxxxx Intel Corporation

--
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/