Re: [PATCH 1/1] staging: ks7010: Fix cast to restricted __le16 in ks_wlan_net.c

From: Janusz Lisiecki
Date: Mon Jul 03 2017 - 00:43:30 EST

W dniu 2017-07-02 o 23:23, Luc Van Oostenryck pisze:
On Sun, Jul 2, 2017 at 10:49 PM, Janusz Lisiecki
<janusz.lisiecki@xxxxxxxxx> wrote:
W dniu 2017-07-02 o 21:38, Luc Van Oostenryck pisze:

On Sun, Jul 2, 2017 at 4:27 PM, Janusz Lisiecki
<janusz.lisiecki@xxxxxxxxx> wrote:
This patch fixes the following Sparse warnings in ks_wlan_net.c:
drivers/staging/ks7010/ks_wlan_net.c:1359:24: warning: cast to restricted
Both sides of assignment are u16 so (as 'ap' is local_ap_t type and
'capability' member,
have the same as local 'capabilities' type of u16) 'le16_to_cpu' is not
It could be that it's ap->capability's type that is wrong (not
annotated with __le16).
Isn't it?

Is ap->capability supposed to hold a little-endian value or a native
order value?

-- Luc
As I see in ks_hostif.c all assignments to link_ap_info_t->capability threat
this value as native order (i.e get_ap_information, get_current_ap). As this
is not a structure which comes from HW we can do the way you suggested.
Still, as all other places in code threats this as native order value I
decided to change only one place than many other around to fix Sparse
Fine, but then please put this explanation in the commit message.
In others words, be very clear that the change is because ap->capability is in
native order and thus the conversion le16_to_cpu() is wrong and must be removed.

-- Luc
Done. I hope my message is more verbose and clear this time.

Janusz Lisiecki

Janusz Lisiecki