> > +struct gsm_config_ext { > > + __u32 keep_alive; /* Control channel keep-alive in 1/100th of a > > + * second (0 to disable) > > + */ > > + __u32 reserved[7]; /* For future use */ > > You are not checking these fields, so this means any future use of them > will not be allowed (like the problem you have which required this new > structure.) > > Please, always verify that the values here are 0, and if not, error out > with -EINVAL. That's the only way you can properly reserve this for > future use. The kernel documentation about "how to write an ioctl" > should describe all of this, right? gsmld_ioctl() calls for GSMIOC_SETCONF_EXT the function gsm_config_ext() which returns -EINVAL if any of the reserved fields is non-zero. Should this also happen for GSMIOC_GETCONF_EXT? Best regards, Daniel Starke