From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752005AbbEIWNf (ORCPT ); Sat, 9 May 2015 18:13:35 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:23276 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751904AbbEIWNe (ORCPT ); Sat, 9 May 2015 18:13:34 -0400 Date: Sun, 10 May 2015 01:13:12 +0300 From: Dan Carpenter To: Arno Tiemersma Cc: gregkh@linuxfoundation.org, mateusz.kulikowski@gmail.com, behanw@converseincode.com, mdcasey@chabloom.com, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] staging: rtl8192e: Change cpu_to_le16 to le16_to_cpu Message-ID: <20150509221312.GF14154@mwanda> References: <1431203236-5895-1-git-send-email-arno.tiemersma@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1431203236-5895-1-git-send-email-arno.tiemersma@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Source-IP: aserv0022.oracle.com [141.146.126.234] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, May 09, 2015 at 10:27:16PM +0200, Arno Tiemersma wrote: > Since the function auth_parse returns a u16, and > struct rtllib_authentication.status is defined as an __le16, it seems > that > > return cpu_to_le16(a->status); > > should be > > return le16_to_cpu(a->status); > > This change silences the following sparse warnings: > drivers/staging/rtl8192e/rtllib_softmac.c:1817:16: > warning: cast from restricted __le16 > drivers/staging/rtl8192e/rtllib_softmac.c:1817:16: > warning: incorrect type in return expression (different base types) > drivers/staging/rtl8192e/rtllib_softmac.c:1817:16: > expected unsigned short > drivers/staging/rtl8192e/rtllib_softmac.c:1817:16: > got restricted __le16 [usertype] > > Signed-off-by: Arno Tiemersma Your patch seems reasonable. The caller only cares about zero non-zero. It feels like there are a bunch of endian bugs which Sparse misses in this file. For example, ->frame_ctl is endian but it's never converted and it's compared against cpu endian in the switch statements. (I haven't double checked. Do your own homework before sending patches). regards, dan carpenter