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

can: netlink: add can_bitrate_const_fill_info()

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

authored by

Vincent Mailhol and committed by
Marc Kleine-Budde
d5ee934e aaeebdb7

+15 -10
+15 -10
drivers/net/can/dev/netlink.c
··· 576 576 sizeof(*bittiming_const), bittiming_const); 577 577 } 578 578 579 + static int can_bitrate_const_fill_info(struct sk_buff *skb, 580 + int ifla_can_bitrate_const, 581 + const u32 *bitrate_const, unsigned int cnt) 582 + { 583 + return bitrate_const && 584 + nla_put(skb, ifla_can_bitrate_const, 585 + sizeof(*bitrate_const) * cnt, bitrate_const); 586 + } 587 + 579 588 static int can_tdc_fill_info(struct sk_buff *skb, const struct net_device *dev) 580 589 { 581 590 struct nlattr *nest; ··· 695 686 priv->termination_const_cnt, 696 687 priv->termination_const))) || 697 688 698 - (priv->bitrate_const && 699 - nla_put(skb, IFLA_CAN_BITRATE_CONST, 700 - sizeof(*priv->bitrate_const) * 701 - priv->bitrate_const_cnt, 702 - priv->bitrate_const)) || 689 + can_bitrate_const_fill_info(skb, IFLA_CAN_BITRATE_CONST, 690 + priv->bitrate_const, 691 + priv->bitrate_const_cnt) || 703 692 704 - (priv->fd.data_bitrate_const && 705 - nla_put(skb, IFLA_CAN_DATA_BITRATE_CONST, 706 - sizeof(*priv->fd.data_bitrate_const) * 707 - priv->fd.data_bitrate_const_cnt, 708 - priv->fd.data_bitrate_const)) || 693 + can_bitrate_const_fill_info(skb, IFLA_CAN_DATA_BITRATE_CONST, 694 + priv->fd.data_bitrate_const, 695 + priv->fd.data_bitrate_const_cnt) || 709 696 710 697 (nla_put(skb, IFLA_CAN_BITRATE_MAX, 711 698 sizeof(priv->bitrate_max),