Hi Simon, > Yes, what I meant was that maybe you could just declare it at the beginning of the function, > and not use it at all in the sysctl table. Because as I see it, you only use allowed_caps_hex in the sysctl > table to copy the string to that temporary (variable), and its use is limited to that one function. > > Instead of: > > + if ((error = proc_dostring(table, write, buffer, lenp, ppos))) > + return error; ... > You could probably get away with something like: ... >+ strncpy(allowed_caps_hex, buffer, ALLOWED_CAPS_HEX_LEN + 1); proc_dostring() is more than simple strncpy(). It is handling offsets too. I.e. if a user will try to write not from the starting position. But I've seen that some functions simply create an instance of struct ctl_table, fill it and call needed function. Thanks.