Hello, On 17.8.2020 21.46, Andy Shevchenko wrote: > Since we have a new helper, let's replace open coded variant by it. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Cc: Jussi Kivilinna <jussi.kivilinna@xxxxxx> > Cc: Kalle Valo <kvalo@xxxxxxxxxxxxxx> > --- > v2: new patch > drivers/net/wireless/rndis_wlan.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c > index 8852a1832951..06850ee6d6dc 100644 > --- a/drivers/net/wireless/rndis_wlan.c > +++ b/drivers/net/wireless/rndis_wlan.c > @@ -859,9 +859,12 @@ static int rndis_set_config_parameter(struct usbnet *dev, char *param, > int value_type, void *value) > { > struct ndis_config_param *infobuf; > - int value_len, info_len, param_len, ret, i; > + int value_len, info_len, param_len, ret; > __le16 *unibuf; > __le32 *dst_value; > +#ifdef DEBUG > + int i; > +#endif > > if (value_type == 0) > value_len = sizeof(__le32); > @@ -901,13 +904,11 @@ static int rndis_set_config_parameter(struct usbnet *dev, char *param, > > /* simple string to unicode string conversion */ > unibuf = (void *)infobuf + sizeof(*infobuf); > - for (i = 0; i < param_len / sizeof(__le16); i++) > - unibuf[i] = cpu_to_le16(param[i]); > + cpu_to_le16_array(unibuf, param, param_len / sizeof(__le16)); This does not look correct, as kernel test robot noticed. 'param' is ASCII string and 'unibuf' wide character string and loop is making simple 8-bit char to 16-bit char conversion. > > if (value_type == 2) { > unibuf = (void *)infobuf + sizeof(*infobuf) + param_len; > - for (i = 0; i < value_len / sizeof(__le16); i++) > - unibuf[i] = cpu_to_le16(((u8 *)value)[i]); > + cpu_to_le16_array(unibuf, value, value_len / sizeof(__le16)); Same here. -Jussi > } else { > dst_value = (void *)infobuf + sizeof(*infobuf) + param_len; > *dst_value = cpu_to_le32(*(u32 *)value); >