On Thu, 2021-03-18 at 12:11 +0100, Takashi Iwai wrote: > > That said, we can "fix" this like this, and hope we'll not get this > > again? And if we do get it again ... well, we keep renaming the structs > > and add "struct rfkill_event_v3" next time? > > Yeah, that's a dilemma. An oft-seen trick is to add more bytes for > the future use, e.g. extend to 16 bytes and fill 0 for the remaining. Yeah, I guess I could stick a reserved[15] there, it's small enough. > In the sound driver, we introduced an ioctl to inform from user-space > which API protocol it can speak, and the kernel falls back to the old > API/ABI if it's a lower version or it's not told at all. But I'm not > sure whether such an implementation is optimal for rfkill. I thought about it, but it ... doesn't really help. Somebody's going to do ioctl(..., sizeof(ev)) == sizeof(ev) and break on older kernels, or == my_fixed_size, or ... something. It's not really going to address the issue entirely. And it's more complexity. johannes