On Mon, Apr 04, 2005 at 12:26:50AM +0200, Arnd Bergmann wrote: > On Sünndag 03 April 2005 20:50, Paul E. McKenney wrote: > > I couldn't find any way to suppress the "deprecated" warning that is > > generated by the "&sym" in the last line of the __EXPORT_SYMBOL() > > macro. Anyone know a way of doing this? There doesn't seem to me > > to be any point to giving the warning on the EXPORT_SYMBOL() -- and > > it does clutter up compiler output with useless "deprecated" warnings. > > You can define an inline function that is marked __deprecated and calls > the exported function: > > extern void __synchronize_kernel(void); > static inline __deprecated synchronize_kernel(void) > { > __synchronize_kernel(); > } > === > void __synchronize_kernel(void) > { > synchronize_rcu(); > } > EXPORT_SYMBOL(__synchronize_kernel);
Cute! This would indeed deprecate synchronize_kernel() everywhere, while at the same time avoiding a "deprecated" warning on any EXPORT_SYMBOL(). However, it would provide a new symbol, __synchronize_kernel(), that could be called from any module, but with no "deprecated" warning. > You could even make __synchronize_kernel() static to let it only be used > by modules, but that might create some confusion about the interface. -That- is an interesting trick! Thinking about this more, it seems like getting the warning in modules but not in mainline is OK. If uses creep into the mainline, we can always just change them when they are noticed. In the worst case, it is still easy to simply update them when we remove synchronize_kernel() next April, right? Thanx, Paul - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/