To solve races setting character device variables, a new character device API is adviced.
Example:
struct cdev *pcdev;
int retval;
retval = MAKE_DEV_ARGS(&pcdev, (.si_uid = 0, .si_gid = 0,.si_mode = 0777), "testdev");
#define MAKE_DEV_ARGS(ppdev,args,...) \