rfkill: make new event layout opt-in
authorJohannes Berg <johannes.berg@intel.com>
Wed, 16 Mar 2022 20:27:51 +0000 (21:27 +0100)
committerKalle Valo <kvalo@kernel.org>
Fri, 18 Mar 2022 11:09:17 +0000 (13:09 +0200)
commit54f586a9153201c6cff55e1f561990c78bd99aa7
tree5b6d7c154475b9514b775450ec54d25e03420ed6
parenta93ccb5c386c00727eb67b0793fbbae6403b69a1
rfkill: make new event layout opt-in

Again new complaints surfaced that we had broken the ABI here,
although previously all the userspace tools had agreed that it
was their mistake and fixed it. Yet now there are cases (e.g.
RHEL) that want to run old userspace with newer kernels, and
thus are broken.

Since this is a bit of a whack-a-mole thing, change the whole
extensibility scheme of rfkill to no longer just rely on the
message lengths, but instead require userspace to opt in via a
new ioctl to a given maximum event size that it is willing to
understand.

By default, set that to RFKILL_EVENT_SIZE_V1 (8), so that the
behaviour for userspace not calling the ioctl will look as if
it's just running on an older kernel.

Fixes: 14486c82612a ("rfkill: add a reason to the HW rfkill state")
Cc: stable@vger.kernel.org # 5.11+
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220316212749.16491491b270.Ifcb1950998330a596f29a2a162e00b7546a1d6d0@changeid
include/uapi/linux/rfkill.h
net/rfkill/core.c