Re: [2.6 patch] drivers/message/i2o/iop.c: static inline functionsmustn't be exported

From: Andrew Morton
Date: Wed Apr 19 2006 - 02:10:27 EST


Adrian Bunk <bunk@xxxxxxxxx> wrote:
>
> static inline functions mustn't be exported.
>

Actually, exports of static inlines work OK. The compiler will emit an
out-of-line copy to satisfy EXPORT_SYMBOL's reference and the module
namespace is separate from the compiler&linker's namespace.

Of course, things will screw up when we're using the compiler&linker
namespace (ie: the driver is statically linked).

> --- linux-2.6.17-rc1-mm2-full/drivers/message/i2o/iop.c.old 2006-04-13 17:30:41.000000000 +0200
> +++ linux-2.6.17-rc1-mm2-full/drivers/message/i2o/iop.c 2006-04-13 17:30:57.000000000 +0200
> @@ -1243,7 +1243,6 @@
> EXPORT_SYMBOL(i2o_cntxt_list_get_ptr);
> #endif
> EXPORT_SYMBOL(i2o_msg_get_wait);
> -EXPORT_SYMBOL(i2o_msg_nop);
> EXPORT_SYMBOL(i2o_find_iop);
> EXPORT_SYMBOL(i2o_iop_find_device);
> EXPORT_SYMBOL(i2o_event_register);

It depends whether Markus thinks this symbol is something which the driver
should be exporting. If so, we should uninline i2o_msg_nop(). But given
that it's in a header, nobody should be linking to it anyway...

(why on earth does i2o put semicolons after its function definitions?)
-
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/