On 03/18/20 18:40:15, Oscar Carter wrote:
> Use ARRAY_SIZE to replace the hardcoded size so we will never have a
> mismatch.
> 
> Signed-off-by: Oscar Carter <oscar.car...@gmx.com>
> ---
> Changelog v1 -> v2
> - Use ARRAY_SIZE(priv->cck_pwr_tbl) everywhere instead of introducing a new
>   variable to hold its value.
> 
>  drivers/staging/vt6656/main_usb.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/staging/vt6656/main_usb.c 
> b/drivers/staging/vt6656/main_usb.c
> index 5e48b3ddb94c..acfcc11c3b61 100644
> --- a/drivers/staging/vt6656/main_usb.c
> +++ b/drivers/staging/vt6656/main_usb.c
> @@ -23,6 +23,7 @@
> 
>  #include <linux/etherdevice.h>
>  #include <linux/file.h>
> +#include <linux/kernel.h>
>  #include "device.h"
>  #include "card.h"
>  #include "baseband.h"
> @@ -145,7 +146,7 @@ static int vnt_init_registers(struct vnt_private *priv)
> 
>       init_cmd->init_class = DEVICE_INIT_COLD;
>       init_cmd->exist_sw_net_addr = priv->exist_sw_net_addr;
> -     for (ii = 0; ii < 6; ii++)
> +     for (ii = 0; ii < ARRAY_SIZE(init_cmd->sw_net_addr); ii++)
>               init_cmd->sw_net_addr[ii] = priv->current_net_addr[ii];
>       init_cmd->short_retry_limit = priv->short_retry_limit;
>       init_cmd->long_retry_limit = priv->long_retry_limit;
> @@ -184,7 +185,7 @@ static int vnt_init_registers(struct vnt_private *priv)
>       priv->cck_pwr = priv->eeprom[EEP_OFS_PWR_CCK];
>       priv->ofdm_pwr_g = priv->eeprom[EEP_OFS_PWR_OFDMG];
>       /* load power table */
> -     for (ii = 0; ii < 14; ii++) {
> +     for (ii = 0; ii < ARRAY_SIZE(priv->cck_pwr_tbl); ii++) {
>               priv->cck_pwr_tbl[ii] =
>                       priv->eeprom[ii + EEP_OFS_CCK_PWR_TBL];
>               if (priv->cck_pwr_tbl[ii] == 0)
> @@ -200,7 +201,7 @@ static int vnt_init_registers(struct vnt_private *priv)
>        * original zonetype is USA, but custom zonetype is Europe,
>        * then need to recover 12, 13, 14 channels with 11 channel
>        */
> -     for (ii = 11; ii < 14; ii++) {
> +     for (ii = 11; ii < ARRAY_SIZE(priv->cck_pwr_tbl); ii++) {
>               priv->cck_pwr_tbl[ii] = priv->cck_pwr_tbl[10];
>               priv->ofdm_pwr_tbl[ii] = priv->ofdm_pwr_tbl[10];
>       }
> --
> 2.20.1
> 

Looks good, however are we certain priv->cck_pwr_tbl and
priv->ofdm_pwr_tbl are always the same size?

What about using a macro for cck_pwr_tbl and ofdm_pwr_tbl size in
device.h? Or a BUILD_BUG() if array's sizes are different? It could be
helpful for future developers to say these arrays must be the same size.

Thanks,
Quentin
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to