On 1/18/21 9:13 PM, Oliver Hartkopp wrote: > In commit 652562e5ff06 ("can: length: can_fd_len2dlc(): simplify length > calculcation") the readability of the code degraded and became more error > prone. To counteract this, partially convert that patch and replace open coded > values (of the original code) with proper defines. > Also double check the correct length mapping table size at build time. > > Cc: Vincent MAILHOL <mailhol.vincent@xxxxxxxxxx> > Fixes: 652562e5ff06 ("can: length: can_fd_len2dlc(): simplify length calculcation") > Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> > Signed-off-by: Oliver Hartkopp <socketcan@xxxxxxxxxxxx> > --- > drivers/net/can/dev/length.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/can/dev/length.c b/drivers/net/can/dev/length.c > index d35c4e82314d..d085cb26d00d 100644 > --- a/drivers/net/can/dev/length.c > +++ b/drivers/net/can/dev/length.c > @@ -25,16 +25,21 @@ static const u8 len2dlc[] = { > 11, 11, 11, 11, /* 17 - 20 */ > 12, 12, 12, 12, /* 21 - 24 */ > 13, 13, 13, 13, 13, 13, 13, 13, /* 25 - 32 */ > 14, 14, 14, 14, 14, 14, 14, 14, /* 33 - 40 */ > 14, 14, 14, 14, 14, 14, 14, 14, /* 41 - 48 */ > + 15, 15, 15, 15, 15, 15, 15, 15, /* 49 - 56 */ > + 15, 15, 15, 15, 15, 15, 15, 15 /* 57 - 64 */ > }; > > /* map the sanitized data length to an appropriate data length code */ > u8 can_fd_len2dlc(u8 len) > { > - if (len >= ARRAY_SIZE(len2dlc)) > + /* check for length mapping table size at build time */ > + BUILD_BUG_ON(ARRAY_SIZE(len2dlc) < CANFD_MAX_DLEN + 1); ^^^ What about "!="? regards Marc -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung West/Dortmund | Phone: +49-231-2826-924 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Attachment:
signature.asc
Description: OpenPGP digital signature