Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752780AbdFLSs3 (ORCPT ); Mon, 12 Jun 2017 14:48:29 -0400 Received: from mail-ua0-f196.google.com ([209.85.217.196]:34742 "EHLO mail-ua0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751444AbdFLSs2 (ORCPT ); Mon, 12 Jun 2017 14:48:28 -0400 MIME-Version: 1.0 In-Reply-To: <1497287738-28567-1-git-send-email-sunil.m@techveda.org> References: <1497287738-28567-1-git-send-email-sunil.m@techveda.org> From: Frans Klaver Date: Mon, 12 Jun 2017 20:48:26 +0200 Message-ID: Subject: Re: [PATCH] staging: wlan-ng: Amend type mismatch warnings To: sunil.m@techveda.org Cc: Greg KH , sergio.paracuellos@gmail.com, geo.emmnl@gmail.com, sfaragnaus@gmail.com, karniksayli1995@gmail.com, devel@driverdev.osuosl.org, "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4818 Lines: 108 On Mon, Jun 12, 2017 at 7:15 PM, wrote: > From: Suniel Mahesh > > The following type mismatch warnings reported by sparse > have been amended: > warning: cast to restricted __le16 > warning: incorrect type in assignment (different base types) Why not change the type of the struct fields to __le16 where they would need to be __le16 (thereby documenting the requirement)? This is just telling the compiler to shut up, not necessarily fixing the issue that it's flagging. Cheers, Frans > > Signed-off-by: Suniel Mahesh > --- > drivers/staging/wlan-ng/prism2mgmt.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/drivers/staging/wlan-ng/prism2mgmt.c b/drivers/staging/wlan-ng/prism2mgmt.c > index f4d6e48..358b556 100644 > --- a/drivers/staging/wlan-ng/prism2mgmt.c > +++ b/drivers/staging/wlan-ng/prism2mgmt.c > @@ -185,7 +185,7 @@ int prism2mgmt_scan(struct wlandevice *wlandev, void *msgp) > > /* set up the txrate to be 2MBPS. Should be fastest basicrate... */ > word = HFA384x_RATEBIT_2; > - scanreq.tx_rate = cpu_to_le16(word); > + scanreq.tx_rate = (__force u16)cpu_to_le16(word); > > /* set up the channel list */ > word = 0; > @@ -197,10 +197,10 @@ int prism2mgmt_scan(struct wlandevice *wlandev, void *msgp) > /* channel 1 is BIT 0 ... channel 14 is BIT 13 */ > word |= (1 << (channel - 1)); > } > - scanreq.channel_list = cpu_to_le16(word); > + scanreq.channel_list = (__force u16)cpu_to_le16(word); > > /* set up the ssid, if present. */ > - scanreq.ssid.len = cpu_to_le16(msg->ssid.data.len); > + scanreq.ssid.len = (__force u16)cpu_to_le16(msg->ssid.data.len); > memcpy(scanreq.ssid.data, msg->ssid.data.data, msg->ssid.data.len); > > /* Enable the MAC port if it's not already enabled */ > @@ -229,7 +229,7 @@ int prism2mgmt_scan(struct wlandevice *wlandev, void *msgp) > /* Construct a bogus SSID and assign it to OwnSSID and > * DesiredSSID > */ > - wordbuf[0] = cpu_to_le16(WLAN_SSID_MAXLEN); > + wordbuf[0] = (__force u16)cpu_to_le16(WLAN_SSID_MAXLEN); > get_random_bytes(&wordbuf[1], WLAN_SSID_MAXLEN); > result = hfa384x_drvr_setconfig(hw, HFA384x_RID_CNFOWNSSID, > wordbuf, > @@ -405,8 +405,8 @@ int prism2mgmt_scan_results(struct wlandevice *wlandev, void *msgp) > /* signal and noise */ > req->signal.status = P80211ENUM_msgitem_status_data_ok; > req->noise.status = P80211ENUM_msgitem_status_data_ok; > - req->signal.data = le16_to_cpu(item->sl); > - req->noise.data = le16_to_cpu(item->anl); > + req->signal.data = le16_to_cpu((__force __le16)item->sl); > + req->noise.data = le16_to_cpu((__force __le16)item->anl); > > /* BSSID */ > req->bssid.status = P80211ENUM_msgitem_status_data_ok; > @@ -415,7 +415,7 @@ int prism2mgmt_scan_results(struct wlandevice *wlandev, void *msgp) > > /* SSID */ > req->ssid.status = P80211ENUM_msgitem_status_data_ok; > - req->ssid.data.len = le16_to_cpu(item->ssid.len); > + req->ssid.data.len = le16_to_cpu((__force __le16)item->ssid.len); > req->ssid.data.len = min_t(u16, req->ssid.data.len, WLAN_SSID_MAXLEN); > memcpy(req->ssid.data.data, item->ssid.data, req->ssid.data.len); > > @@ -463,7 +463,7 @@ int prism2mgmt_scan_results(struct wlandevice *wlandev, void *msgp) > > /* beacon period */ > req->beaconperiod.status = P80211ENUM_msgitem_status_data_ok; > - req->beaconperiod.data = le16_to_cpu(item->bcnint); > + req->beaconperiod.data = le16_to_cpu((__force __le16)item->bcnint); > > /* timestamps */ > req->timestamp.status = P80211ENUM_msgitem_status_data_ok; > @@ -473,14 +473,14 @@ int prism2mgmt_scan_results(struct wlandevice *wlandev, void *msgp) > > /* atim window */ > req->ibssatimwindow.status = P80211ENUM_msgitem_status_data_ok; > - req->ibssatimwindow.data = le16_to_cpu(item->atim); > + req->ibssatimwindow.data = le16_to_cpu((__force __le16)item->atim); > > /* Channel */ > req->dschannel.status = P80211ENUM_msgitem_status_data_ok; > - req->dschannel.data = le16_to_cpu(item->chid); > + req->dschannel.data = le16_to_cpu((__force __le16)item->chid); > > /* capinfo bits */ > - count = le16_to_cpu(item->capinfo); > + count = le16_to_cpu((__force __le16)item->capinfo); > req->capinfo.status = P80211ENUM_msgitem_status_data_ok; > req->capinfo.data = count; > > -- > 1.9.1 >