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 "!". > > 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. Or we just use a rcu primitive that does no checking but I'd prefer avoid that.