From 0c017f0910a7f4d90708df853b629f487c8ba739 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Tue, 31 Jan 2023 17:43:22 +0100 Subject: can: bittiming: can_sjw_check(): report error via netlink and harmonize error value If the user space has supplied an invalid SJW value (greater than the maximum SJW value), report -EINVAL instead of -ERANGE, this better matches the actual meaning of the error value. Additionally report an error message via netlink to the user space. Link: https://lore.kernel.org/all/20230202110854.2318594-13-mkl@pengutronix.de Signed-off-by: Marc Kleine-Budde --- drivers/net/can/dev/bittiming.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/can/dev/bittiming.c b/drivers/net/can/dev/bittiming.c index 727dcd52cc2c..0a2a9b12565f 100644 --- a/drivers/net/can/dev/bittiming.c +++ b/drivers/net/can/dev/bittiming.c @@ -18,8 +18,11 @@ void can_sjw_set_default(struct can_bittiming *bt) int can_sjw_check(const struct net_device *dev, const struct can_bittiming *bt, const struct can_bittiming_const *btc, struct netlink_ext_ack *extack) { - if (bt->sjw > btc->sjw_max) - return -ERANGE; + if (bt->sjw > btc->sjw_max) { + NL_SET_ERR_MSG_FMT(extack, "sjw: %u greater than max sjw: %u", + bt->sjw, btc->sjw_max); + return -EINVAL; + } return 0; } -- cgit v1.2.3