diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2023-01-31 17:43:22 +0100 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2023-02-06 13:57:26 +0100 |
commit | 0c017f0910a7f4d90708df853b629f487c8ba739 (patch) | |
tree | 1422f2c2445a43f7f484de63b801ace84dfd8677 /drivers/net/can | |
parent | de82d6185b82193e5f798592ed350a3788b78a15 (diff) | |
download | linux-0c017f0910a7f4d90708df853b629f487c8ba739.tar.gz |
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 <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can')
-rw-r--r-- | drivers/net/can/dev/bittiming.c | 7 |
1 files 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; } |