Am 19.03.2014 14:15, schrieb Ezequiel Garcia: > Hi Richard, > > On Mar 19, Richard Weinberger wrote: >> The ->get() function is not optional. >> > > [..] >> static struct kernel_param_ops ubiblock_param_ops = { >> .set = ubiblock_set_param, >> + .get = param_get_charp, >> }; >> module_param_cb(block, &ubiblock_param_ops, NULL, 0); > > The comment for the function says they are both optional: > > /** > * module_param_cb - general callback for a module/cmdline parameter > * @name: a valid C identifier which is the parameter name. > * @ops: the set & get operations for this parameter. > * @perm: visibility in sysfs. > * > * The ops can have NULL set or get functions. > */ > > This has no visibility in sysfs, so I can't see how having a NULL > get() is a problem. What's the issue you're trying to fix here? > > Maybe I'm missing something? >
Maybe I've misread the struct. struct kernel_param_ops { /* How the ops should behave */ unsigned int flags; /* Returns 0, or -errno. arg is in kp->arg. */ int (*set)(const char *val, const struct kernel_param *kp); /* Returns length written or -errno. Buffer is 4k (ie. be short!) */ int (*get)(char *buffer, const struct kernel_param *kp); /* Optional function to free kp->arg when module unloaded. */ void (*free)(void *arg); }; To me it looks like only ->free is optional. Thanks, //richard -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/