Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

can: netlink: add can_bittiming_const_fill_info()

Add function can_bittiming_const_fill_info() to factorise the logic
when filling the bittiming constant information for Classical CAN and
CAN FD. This function will be reused later on for CAN XL.

Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
Link: https://patch.msgid.link/20250923-canxl-netlink-prep-v4-15-e720d28f66fe@kernel.org
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

authored by

Vincent Mailhol and committed by
Marc Kleine-Budde
aaeebdb7 e1a2be5a

+13 -7
+13 -7
drivers/net/can/dev/netlink.c
··· 567 567 nla_put(skb, ifla_can_bittiming, sizeof(*bittiming), bittiming); 568 568 } 569 569 570 + static int can_bittiming_const_fill_info(struct sk_buff *skb, 571 + int ifla_can_bittiming_const, 572 + const struct can_bittiming_const *bittiming_const) 573 + { 574 + return bittiming_const && 575 + nla_put(skb, ifla_can_bittiming_const, 576 + sizeof(*bittiming_const), bittiming_const); 577 + } 578 + 570 579 static int can_tdc_fill_info(struct sk_buff *skb, const struct net_device *dev) 571 580 { 572 581 struct nlattr *nest; ··· 661 652 if (can_bittiming_fill_info(skb, IFLA_CAN_BITTIMING, 662 653 &priv->bittiming) || 663 654 664 - (priv->bittiming_const && 665 - nla_put(skb, IFLA_CAN_BITTIMING_CONST, 666 - sizeof(*priv->bittiming_const), priv->bittiming_const)) || 655 + can_bittiming_const_fill_info(skb, IFLA_CAN_BITTIMING_CONST, 656 + priv->bittiming_const) || 667 657 668 658 nla_put(skb, IFLA_CAN_CLOCK, sizeof(priv->clock), &priv->clock) || 669 659 nla_put_u32(skb, IFLA_CAN_STATE, state) || ··· 676 668 can_bittiming_fill_info(skb, IFLA_CAN_DATA_BITTIMING, 677 669 &priv->fd.data_bittiming) || 678 670 679 - (priv->fd.data_bittiming_const && 680 - nla_put(skb, IFLA_CAN_DATA_BITTIMING_CONST, 681 - sizeof(*priv->fd.data_bittiming_const), 682 - priv->fd.data_bittiming_const)) || 671 + can_bittiming_const_fill_info(skb, IFLA_CAN_DATA_BITTIMING_CONST, 672 + priv->fd.data_bittiming_const) || 683 673 684 674 (priv->termination_const && 685 675 (nla_put_u16(skb, IFLA_CAN_TERMINATION, priv->termination) ||