On Fri, Nov 20, 2020 at 11:20:32AM +0100, Florian Westphal wrote: > Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Fri, Nov 20, 2020 at 10:44:13AM +0100, Peter Zijlstra wrote: > > > On Thu, Nov 19, 2020 at 10:53:13PM -0700, subashab@xxxxxxxxxxxxxx wrote: > > > > +struct xt_table_info > > > > +*xt_table_get_private_protected(const struct xt_table *table) > > > > +{ > > > > + return rcu_dereference_protected(table->private, > > > > + mutex_is_locked(&xt[table->af].mutex)); > > > > +} > > > > +EXPORT_SYMBOL(xt_table_get_private_protected); > > > > > > In all debug builds this function compiles to a single memory > > > > ! went missing... :/ > > ? Not sure about "!". !debug gets you a single deref, for debug builds do we get extra code. > > > dereference. Do you really want that out-of-line? > > Its the lesser of two evils, the other solution would be to export > xt[] from x_tables.c; its static right now. Bah, missed that.