On Fri, Aug 13, 2021 at 9:44 AM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > On Fri, Aug 13, 2021 at 09:17:10AM -0600, Jim Cromie wrote: > > Add a const void* data member to the struct, to allow attaching > > private data that will be used soon by a setter method (via kp->data) > > to perform more elaborate actions. > > > > To attach the data at compile time, add new macros: > > > > module_param_cbd() derives from module_param_cb(), adding data param, > > and latter is redefined to use former. > > > > It calls __module_param_call_wdata(), which accepts a new data param > > and inits .data with it. Re-define __module_param_call() to use it. > > > > Use of this new data member will be rare, it might be worth redoing > > this as a separate/sub-type to de-bloat the base case. > > ... > > > +#define module_param_cbd(name, ops, arg, perm, data) \ > > + __module_param_call_wdata(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0, data) > > Cryptic name. Moreover, inconsistent with the rest. > What about module_param_cb_data() ? > > > #define module_param_cb_unsafe(name, ops, arg, perm) \ > > __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, \ > > KERNEL_PARAM_FL_UNSAFE) > > (above left for the above comment) > > ... > > > +#define __module_param_call_wdata(prefix, name, ops, arg, perm, level, flags, data) \ > > Similar __module_param_call_with_data() > > -- > With Best Regards, > Andy Shevchenko > > yes to all renames, revised. thanks