From: Larry Finger
> Sent: 11 February 2017 03:30
> Sparse reports the following:
>   CHECK   drivers/staging/rtl8712/rtl871x_recv.c
> drivers/staging/rtl8712/rtl871x_recv.c:657:21: warning: incorrect type in 
> assignment (different base
> types)
> drivers/staging/rtl8712/rtl871x_recv.c:657:21:    expected unsigned short 
> [unsigned] [assigned]
> [usertype] len
> drivers/staging/rtl8712/rtl871x_recv.c:657:21:    got restricted __be16 
> [usertype] <noident>
> 
> Signed-off-by: Larry Finger <larry.fin...@lwfinger.net>
> ---
>  drivers/staging/rtl8712/rtl871x_recv.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/rtl8712/rtl871x_recv.c 
> b/drivers/staging/rtl8712/rtl871x_recv.c
> index 147b75b..2ef31a4 100644
> --- a/drivers/staging/rtl8712/rtl871x_recv.c
> +++ b/drivers/staging/rtl8712/rtl871x_recv.c
> @@ -654,8 +654,9 @@ sint r8712_wlanhdr_to_ethhdr(union recv_frame *precvframe)
>       memcpy(ptr, pattrib->dst, ETH_ALEN);
>       memcpy(ptr + ETH_ALEN, pattrib->src, ETH_ALEN);
>       if (!bsnaphdr) {
> -             len = htons(len);
> -             memcpy(ptr + 12, &len, 2);
> +             __be16 be_tmp = htons(len);
> +
> +             memcpy(ptr + 12, &be_tmp, 2);

Just do:
        ptr[12] = len << 8;
        ptr[13] = len;

        David

Reply via email to