[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9db9d9ae751a50c9fd1da1ee3bd4c564546ce1c5.camel@sipsolutions.net>
Date: Thu, 18 Mar 2021 12:16:54 +0100
From: Johannes Berg <johannes@...solutions.net>
To: Takashi Iwai <tiwai@...e.de>
Cc: Emmanuel Grumbach <emmanuel.grumbach@...el.com>,
linux-wireless@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: systemd-rfkill regression on 5.11 and later kernels
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
Powered by blists - more mailing lists