The main purpose of this series is to report the CAN controller capabilities. The proposed method reuses the existing struct can_ctrlmode and thus do not need a new IFLA_CAN_* entry. While doing so, I also realized that can_priv::ctrlmode_static could actually be derived from the other ctrlmode fields. So I added two extra patches to the series: one to replace that field with a function and one to repack struct can_priv and fill the hole created after removing can_priv::ctrlmode_priv. Please note that the first two patches are not required by the third one. I am just grouping everything in the same series because the patches all revolve around the controller modes. ** Changelog ** v1 -> v2: - Add a first patch to replace can_priv::ctrlmode_static by the inline function can_get_static_ctrlmode() - Add a second patch to reorder the fields of struct can_priv for better packing (save eight bytes on x86_64 \o/) - Rewrite the comments of the third patch "can: netlink: report the CAN controller mode supported flags" (no changes on the code itself). Vincent Mailhol (3): can: dev: replace can_priv::ctrlmode_static by can_get_static_ctrlmode() can: dev: reorder struct can_priv members for better packing can: netlink: report the CAN controller mode supported flags drivers/net/can/dev/dev.c | 5 +++-- drivers/net/can/dev/netlink.c | 7 +++++-- include/linux/can/dev.h | 18 +++++++++++++----- include/uapi/linux/can/netlink.h | 5 ++++- 4 files changed, 25 insertions(+), 10 deletions(-) -- 2.32.0