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

can: netlink: add can_bittiming_fill_info()

Add can_bittiming_fill_info() to factorise the logic when filling the
bittiming 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-14-e720d28f66fe@kernel.org
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

authored by

Vincent Mailhol and committed by
Marc Kleine-Budde
e1a2be5a d5f45ef8

+12 -7
+12 -7
drivers/net/can/dev/netlink.c
··· 559 559 return size; 560 560 } 561 561 562 + static int can_bittiming_fill_info(struct sk_buff *skb, int ifla_can_bittiming, 563 + struct can_bittiming *bittiming) 564 + { 565 + return bittiming->bitrate != CAN_BITRATE_UNSET && 566 + bittiming->bitrate != CAN_BITRATE_UNKNOWN && 567 + nla_put(skb, ifla_can_bittiming, sizeof(*bittiming), bittiming); 568 + } 569 + 562 570 static int can_tdc_fill_info(struct sk_buff *skb, const struct net_device *dev) 563 571 { 564 572 struct nlattr *nest; ··· 649 641 if (priv->do_get_state) 650 642 priv->do_get_state(dev, &state); 651 643 652 - if ((priv->bittiming.bitrate != CAN_BITRATE_UNSET && 653 - priv->bittiming.bitrate != CAN_BITRATE_UNKNOWN && 654 - nla_put(skb, IFLA_CAN_BITTIMING, 655 - sizeof(priv->bittiming), &priv->bittiming)) || 644 + if (can_bittiming_fill_info(skb, IFLA_CAN_BITTIMING, 645 + &priv->bittiming) || 656 646 657 647 (priv->bittiming_const && 658 648 nla_put(skb, IFLA_CAN_BITTIMING_CONST, ··· 665 659 !priv->do_get_berr_counter(dev, &bec) && 666 660 nla_put(skb, IFLA_CAN_BERR_COUNTER, sizeof(bec), &bec)) || 667 661 668 - (priv->fd.data_bittiming.bitrate && 669 - nla_put(skb, IFLA_CAN_DATA_BITTIMING, 670 - sizeof(priv->fd.data_bittiming), &priv->fd.data_bittiming)) || 662 + can_bittiming_fill_info(skb, IFLA_CAN_DATA_BITTIMING, 663 + &priv->fd.data_bittiming) || 671 664 672 665 (priv->fd.data_bittiming_const && 673 666 nla_put(skb, IFLA_CAN_DATA_BITTIMING_CONST,