* Re: [PATCH] packet: Deliver VLAN TPID to userspace
From: Atzm Watanabe @ 2013-10-19 6:19 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: netdev
In-Reply-To: <20131018105655.2cdc628e@nehalam.linuxnetplumber.net>
At Fri, 18 Oct 2013 10:56:55 -0700,
Stephen Hemminger wrote:
>
> On Sat, 19 Oct 2013 02:08:11 +0900
> Atzm Watanabe <atzm@stratosphere.co.jp> wrote:
>
> > diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h
> > index dbf0666..6e36e0a 100644
> > --- a/include/uapi/linux/if_packet.h
> > +++ b/include/uapi/linux/if_packet.h
> > @@ -83,7 +83,7 @@ struct tpacket_auxdata {
> > __u16 tp_mac;
> > __u16 tp_net;
> > __u16 tp_vlan_tci;
> > - __u16 tp_padding;
> > + __u16 tp_vlan_tpid;
> > };
> >
> > /* Rx ring - header status */
> > @@ -132,12 +132,13 @@ struct tpacket2_hdr {
> > __u32 tp_sec;
> > __u32 tp_nsec;
> > __u16 tp_vlan_tci;
> > - __u16 tp_padding;
> > + __u16 tp_vlan_tpid;
> > };
> >
> > struct tpacket_hdr_variant1 {
> > __u32 tp_rxhash;
> > __u32 tp_vlan_tci;
> > + __u32 tp_vlan_tpid;
> > };
>
> The last change will break ABI to userspace applications.
> You can reuse padding elements; but you can't increase (or shrink)
> an existing structure.
Thank you for pointing.
But I have two questions:
- The patch that increases existing structures was posted and
accepted in the past (e.g 393e52e33c6c26ec7db290dab803bac1bed962d4
"packet: deliver VLAN TCI to userspace").
What is the difference between them and my patch?
- I tested using tools/testing/selftests/net/psock_tpacket.c built
before applying my patch, and all test cases were passed.
Also I tested by the code that was listed in
Documentation/networking/packet_mmap.txt "AF_PACKET TPACKET_V3
example". It seems that problem was not caused.
What situation causes the problem that you assumed?
Thank you.
^ permalink raw reply
* Re: [PATCH 3/9 RESENT] staging: r8188eu: Fix sparse warnings in ioctl_linux.c
From: Larry Finger @ 2013-10-19 1:45 UTC (permalink / raw)
To: Ben Hutchings; +Cc: gregkh, netdev, devel
In-Reply-To: <1382134111.3381.25.camel@bwh-desktop.uk.level5networks.com>
On 10/18/2013 05:08 PM, Ben Hutchings wrote:
> On Fri, 2013-10-18 at 16:34 -0500, Larry Finger wrote:
>> Sparse checking results in the following warnings:
>>
>> CHECK drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
>> drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3932:17: warning: cast removes
>> address space of expression
>> drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3933:31: warning: incorrect type
>> in argument 1 (different address spaces)
> [...]
>> - DBG_88E("[%s] extra = %s\n", __func__, (char *)wrqu->data.pointer);
>> - if (!memcmp(wrqu->data.pointer, "status", 6)) {
>> + DBG_88E("[%s] extra = %s\n", __func__, (__force char *)wrqu->data.pointer);
>> + if (!memcmp((__force const char *)wrqu->data.pointer, "status", 6)) {
> [...]
>
> This is hiding the problem, not fixing it.
>
> This private interface needs to be removed anyway.
I agree, but that is not likely to happen soon. I will just leave this set of
Sparse warnings alone.
Larry
^ permalink raw reply
* Re: [PATCH] rtlwifi: rtl8192se: Fix wrong assignment
From: Larry Finger @ 2013-10-19 1:35 UTC (permalink / raw)
To: Felipe Pena, Chaoming Li, John W. Linville
Cc: linux-wireless, netdev, linux-kernel
In-Reply-To: <1382143960-4594-1-git-send-email-felipensp@gmail.com>
On 10/18/2013 07:52 PM, Felipe Pena wrote:
> There is a typo in the struct member name on assignment when checking
> rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40, the check uses pwrgroup_ht40
> for bound limit and uses pwrgroup_ht20 when assigning instead.
>
> Signed-off-by: Felipe Pena <felipensp@gmail.com>
> ---
> drivers/net/wireless/rtlwifi/rtl8192se/rf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
> index 5061f1d..92d38ab 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
> @@ -265,7 +265,7 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
> rtlefuse->pwrgroup_ht40
> [RF90_PATH_A][chnl - 1]) {
> pwrdiff_limit[i] =
> - rtlefuse->pwrgroup_ht20
> + rtlefuse->pwrgroup_ht40
> [RF90_PATH_A][chnl - 1];
> }
> } else {
> --
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
John: I forgot to mention this earlier, but when you add your s-o-b, please add
a Cc for Stable [3.0 +].
Thanks,
Larry
^ permalink raw reply
* Re: [PATCH] rtlwifi: rtl8192se: Fix wrong assignment
From: Larry Finger @ 2013-10-19 1:33 UTC (permalink / raw)
To: Joe Perches, Felipe Pena
Cc: Chaoming Li, John W. Linville, linux-wireless, netdev,
linux-kernel
In-Reply-To: <1382144748.2041.16.camel@joe-AO722>
On 10/18/2013 08:05 PM, Joe Perches wrote:
> On Fri, 2013-10-18 at 21:52 -0300, Felipe Pena wrote:
>> There is a typo in the struct member name on assignment when checking
>> rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40, the check uses pwrgroup_ht40
>> for bound limit and uses pwrgroup_ht20 when assigning instead.
>>
>> Signed-off-by: Felipe Pena <felipensp@gmail.com>
>> ---
>> drivers/net/wireless/rtlwifi/rtl8192se/rf.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
>> index 5061f1d..92d38ab 100644
>> --- a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
>> +++ b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
>> @@ -265,7 +265,7 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
>> rtlefuse->pwrgroup_ht40
>> [RF90_PATH_A][chnl - 1]) {
>> pwrdiff_limit[i] =
>> - rtlefuse->pwrgroup_ht20
>> + rtlefuse->pwrgroup_ht40
>> [RF90_PATH_A][chnl - 1];
>> }
>
> Using min could help minimize typos
>
> pwrdiff_limit[i] = min(pwrdiff_limit[i],
> rtlefuse->pwrgroup_ht40[RF90_PATH_A][chnl - 1]);
In the initial driver, that would have been true; however, at this point, I
prefer the patch as submitted. There is less churning of the source.
Larry
^ permalink raw reply
* Re: [PATCH] rtlwifi: rtl8192se: Fix wrong assignment
From: Joe Perches @ 2013-10-19 1:05 UTC (permalink / raw)
To: Felipe Pena
Cc: Larry Finger, Chaoming Li, John W. Linville, linux-wireless,
netdev, linux-kernel
In-Reply-To: <1382143960-4594-1-git-send-email-felipensp@gmail.com>
On Fri, 2013-10-18 at 21:52 -0300, Felipe Pena wrote:
> There is a typo in the struct member name on assignment when checking
> rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40, the check uses pwrgroup_ht40
> for bound limit and uses pwrgroup_ht20 when assigning instead.
>
> Signed-off-by: Felipe Pena <felipensp@gmail.com>
> ---
> drivers/net/wireless/rtlwifi/rtl8192se/rf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
> index 5061f1d..92d38ab 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
> @@ -265,7 +265,7 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
> rtlefuse->pwrgroup_ht40
> [RF90_PATH_A][chnl - 1]) {
> pwrdiff_limit[i] =
> - rtlefuse->pwrgroup_ht20
> + rtlefuse->pwrgroup_ht40
> [RF90_PATH_A][chnl - 1];
> }
Using min could help minimize typos
pwrdiff_limit[i] = min(pwrdiff_limit[i],
rtlefuse->pwrgroup_ht40[RF90_PATH_A][chnl - 1]);
^ permalink raw reply
* [PATCH] rtlwifi: rtl8192se: Fix wrong assignment
From: Felipe Pena @ 2013-10-19 0:52 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, John W. Linville
Cc: linux-wireless, netdev, linux-kernel, Felipe Pena
There is a typo in the struct member name on assignment when checking
rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40, the check uses pwrgroup_ht40
for bound limit and uses pwrgroup_ht20 when assigning instead.
Signed-off-by: Felipe Pena <felipensp@gmail.com>
---
drivers/net/wireless/rtlwifi/rtl8192se/rf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
index 5061f1d..92d38ab 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
@@ -265,7 +265,7 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
rtlefuse->pwrgroup_ht40
[RF90_PATH_A][chnl - 1]) {
pwrdiff_limit[i] =
- rtlefuse->pwrgroup_ht20
+ rtlefuse->pwrgroup_ht40
[RF90_PATH_A][chnl - 1];
}
} else {
--
1.7.10.4
^ permalink raw reply related
* [PATCH] wireless: rt2800lib: Fix typo on checking
From: Felipe Pena @ 2013-10-19 0:20 UTC (permalink / raw)
To: Ivo van Doorn, Gertjan van Wingerde, Helmut Schaa,
John W. Linville
Cc: linux-wireless, users, netdev, linux-kernel, Felipe Pena
On rt2800_config_channel_rf53xx function the member default_power1 is checked
for bound limit, but default_power2 is used instead.
Signed-off-by: Felipe Pena <felipensp@gmail.com>
---
drivers/net/wireless/rt2x00/rt2800lib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 88ce656..1c2ce93 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -2650,7 +2650,7 @@ static void rt2800_config_channel_rf53xx(struct rt2x00_dev *rt2x00dev,
if (rt2x00_rt(rt2x00dev, RT5392)) {
rt2800_rfcsr_read(rt2x00dev, 50, &rfcsr);
- if (info->default_power1 > POWER_BOUND)
+ if (info->default_power2 > POWER_BOUND)
rt2x00_set_field8(&rfcsr, RFCSR50_TX, POWER_BOUND);
else
rt2x00_set_field8(&rfcsr, RFCSR50_TX,
--
1.7.10.4
^ permalink raw reply related
* Re: [PATCH nf-next] netfilter: xtables: lightweight process control group matching
From: Eric W. Biederman @ 2013-10-18 23:21 UTC (permalink / raw)
To: Daniel Borkmann
Cc: pablo-Cap9r6Oaw4JrovVCs/uTlw,
netfilter-devel-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA, Tejun Heo,
cgroups-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1380910855-12325-1-git-send-email-dborkman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Daniel Borkmann <dborkman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> writes:
> Implementation of PID-based matching would not be appropriate
> as they frequently change, and child tracking would make that
> even more complex and ugly. Cgroups would be a perfect candidate
> for accomplishing that as they associate a set of tasks with a
> set of parameters for one or more subsystems, in our case the
> netfilter subsystem, which, of course, can be combined with other
> cgroup subsystems into something more complex.
I am coming to this late. But two concrete suggestions.
1) process groups and sessions don't change as frequently as pids.
2) It is possible to put a set of processes in their own network
namespace and pipe just the packets you want those processes to
use into that network namespace. Using an ingress queueing filter
makes that process very efficient even if you have to filter by port.
So I don't think you need cgroups to solve this problem at all.
Eric
^ permalink raw reply
* Re: [PATCH 1/1] drivers: net: wireless: rtlwifi: Fix wrong assignment
From: Felipe Pena @ 2013-10-18 22:43 UTC (permalink / raw)
To: Larry Finger
Cc: Chaoming Li, John W. Linville, linux-wireless, netdev,
linux-kernel
In-Reply-To: <5261B5D6.2020002@lwfinger.net>
On Fri, Oct 18, 2013 at 7:27 PM, Larry Finger <Larry.Finger@lwfinger.net> wrote:
> On 10/18/2013 05:15 PM, Felipe Pena wrote:
>>
>> There is a typo in the struct member name on assignment when checking
>> rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40, the check uses
>> pwrgroup_ht40
>> for bound limit and uses pwrgroup_ht20 when assigning instead.
>>
>> Signed-off-by: Felipe Pena <felipensp@gmail.com>
>> ---
>> drivers/net/wireless/rtlwifi/rtl8192se/rf.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
>> b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
>> index 5061f1d..92d38ab 100644
>> --- a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
>> +++ b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
>> @@ -265,7 +265,7 @@ static void
>> _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
>> rtlefuse->pwrgroup_ht40
>> [RF90_PATH_A][chnl - 1]) {
>> pwrdiff_limit[i] =
>> - rtlefuse->pwrgroup_ht20
>> + rtlefuse->pwrgroup_ht40
>> [RF90_PATH_A][chnl - 1];
>> }
>> } else {
>
>
> Good catch. There is only one problem - by convention we skip
> drivers/net/wireless in the subject. That would probably be OK, but you are
> missing the rtl8192se part, which needs to be there. I suggest that you use
> the subject "rtlwifi: rtl8192de: Fix wrong assignment".
>
> Larry
>
>
Thanks for the reply. I'll re-send it with the suggested subject.
--
Regards,
Felipe Pena
^ permalink raw reply
* Re: [PATCH 1/1] drivers: net: wireless: rtlwifi: Fix wrong assignment
From: Larry Finger @ 2013-10-18 22:27 UTC (permalink / raw)
To: Felipe Pena, Chaoming Li, John W. Linville
Cc: linux-wireless, netdev, linux-kernel
In-Reply-To: <1382134538-3719-1-git-send-email-felipensp@gmail.com>
On 10/18/2013 05:15 PM, Felipe Pena wrote:
> There is a typo in the struct member name on assignment when checking
> rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40, the check uses pwrgroup_ht40
> for bound limit and uses pwrgroup_ht20 when assigning instead.
>
> Signed-off-by: Felipe Pena <felipensp@gmail.com>
> ---
> drivers/net/wireless/rtlwifi/rtl8192se/rf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
> index 5061f1d..92d38ab 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
> @@ -265,7 +265,7 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
> rtlefuse->pwrgroup_ht40
> [RF90_PATH_A][chnl - 1]) {
> pwrdiff_limit[i] =
> - rtlefuse->pwrgroup_ht20
> + rtlefuse->pwrgroup_ht40
> [RF90_PATH_A][chnl - 1];
> }
> } else {
Good catch. There is only one problem - by convention we skip
drivers/net/wireless in the subject. That would probably be OK, but you are
missing the rtl8192se part, which needs to be there. I suggest that you use the
subject "rtlwifi: rtl8192de: Fix wrong assignment".
Larry
^ permalink raw reply
* [PATCH 1/1] drivers: net: wireless: rtlwifi: Fix wrong assignment
From: Felipe Pena @ 2013-10-18 22:15 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, John W. Linville
Cc: linux-wireless, netdev, linux-kernel, Felipe Pena
There is a typo in the struct member name on assignment when checking
rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40, the check uses pwrgroup_ht40
for bound limit and uses pwrgroup_ht20 when assigning instead.
Signed-off-by: Felipe Pena <felipensp@gmail.com>
---
drivers/net/wireless/rtlwifi/rtl8192se/rf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
index 5061f1d..92d38ab 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
@@ -265,7 +265,7 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
rtlefuse->pwrgroup_ht40
[RF90_PATH_A][chnl - 1]) {
pwrdiff_limit[i] =
- rtlefuse->pwrgroup_ht20
+ rtlefuse->pwrgroup_ht40
[RF90_PATH_A][chnl - 1];
}
} else {
--
1.7.10.4
^ permalink raw reply related
* Re: [PATCH 3/9 RESENT] staging: r8188eu: Fix sparse warnings in ioctl_linux.c
From: Ben Hutchings @ 2013-10-18 22:08 UTC (permalink / raw)
To: Larry Finger; +Cc: gregkh, netdev, devel
In-Reply-To: <5261A967.9000909@lwfinger.net>
On Fri, 2013-10-18 at 16:34 -0500, Larry Finger wrote:
> Sparse checking results in the following warnings:
>
> CHECK drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
> drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3932:17: warning: cast removes
> address space of expression
> drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3933:31: warning: incorrect type
> in argument 1 (different address spaces)
[...]
> - DBG_88E("[%s] extra = %s\n", __func__, (char *)wrqu->data.pointer);
> - if (!memcmp(wrqu->data.pointer, "status", 6)) {
> + DBG_88E("[%s] extra = %s\n", __func__, (__force char *)wrqu->data.pointer);
> + if (!memcmp((__force const char *)wrqu->data.pointer, "status", 6)) {
[...]
This is hiding the problem, not fixing it.
This private interface needs to be removed anyway.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply
* Re: [PATCH 2/9 RESENT] staging: r8188eu: Fix Sparse warnings in rtw_wlan_util
From: Ben Hutchings @ 2013-10-18 22:05 UTC (permalink / raw)
To: Larry Finger; +Cc: gregkh, netdev, devel
In-Reply-To: <5261A928.3020007@lwfinger.net>
On Fri, 2013-10-18 at 16:33 -0500, Larry Finger wrote:
> Sparse shows the following warning:
>
> CHECK drivers/staging/rtl8188eu/core/rtw_wlan_util.c
> drivers/staging/rtl8188eu/core/rtw_wlan_util.c:1635:25: warning: cast to
> restricted __le16
>
> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
> ---
> drivers/staging/rtl8188eu/core/rtw_wlan_util.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
> b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
> index 153ec61..30ba18c 100644
> --- a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
> +++ b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
> @@ -1632,7 +1632,7 @@ void process_addba_req(struct adapter *padapter, u8
> *paddba_req, u8 *addr)
> psta = rtw_get_stainfo(pstapriv, addr);
> if (psta) {
> - param = le16_to_cpu(preq->BA_para_set);
> + param = preq->BA_para_set;
preq is pointing to a header which has fixed byte order on the wire, so
this field presumably really is little-endian and the struct definition
should be changed.
Comapre the various headers in drivers/staging/rtl8188eu/include/wifi.h
with struct ieee80211_mgmt in include/linux/ieee80211.h.
Ben.
> tid = (param>>2)&0x0f;
> preorder_ctrl = &psta->recvreorder_ctrl[tid];
> preorder_ctrl->indicate_seq = 0xffff;
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply
* Re: [PATCH 1/9 RESENT] staging: r8188eu: Set device type to wlan
From: Sergei Shtylyov @ 2013-10-18 21:58 UTC (permalink / raw)
To: Larry Finger, gregkh; +Cc: netdev, devel
In-Reply-To: <5261A904.9030908@lwfinger.net>
Hello.
On 10/19/2013 01:32 AM, Larry Finger wrote:
> The latest version of NetworkManager does not recognize the device as wireless
> without this change.
> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
> ---
> drivers/staging/rtl8188eu/os_dep/os_intfs.c | 5 +++++
> 1 file changed, 5 insertions(+)
> diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
> b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
> index da9f0d5..17659bb 100644
> --- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
> +++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
> @@ -707,6 +707,10 @@ int rtw_init_netdev_name(struct net_device *pnetdev,
> const char *ifname)
> return 0;
> }
> +static const struct device_type wlan_type = {
Hm, a space got added before +, so the patch was somehow broken.
> + .name = "wlan",
> +};
> +
> struct net_device *rtw_init_netdev(struct adapter *old_padapter)
> {
> struct adapter *padapter;
> @@ -722,6 +726,7 @@ struct net_device *rtw_init_netdev(struct adapter
> *old_padapter)
> if (!pnetdev)
> return NULL;
> + pnetdev->dev.type = &wlan_type;
Here too.
WBR, Sergei
^ permalink raw reply
* [PATCH net-next] ipv6: gso: remove redundant locking
From: Eric Dumazet @ 2013-10-18 21:43 UTC (permalink / raw)
To: David Miller; +Cc: netdev
From: Eric Dumazet <edumazet@google.com>
ipv6_gso_send_check() and ipv6_gso_segment() are called by
skb_mac_gso_segment() under rcu lock, no need to use
rcu_read_lock() / rcu_read_unlock()
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
net/ipv6/ip6_offload.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/net/ipv6/ip6_offload.c b/net/ipv6/ip6_offload.c
index d82de72..b405fba 100644
--- a/net/ipv6/ip6_offload.c
+++ b/net/ipv6/ip6_offload.c
@@ -66,7 +66,6 @@ static int ipv6_gso_send_check(struct sk_buff *skb)
__skb_pull(skb, sizeof(*ipv6h));
err = -EPROTONOSUPPORT;
- rcu_read_lock();
ops = rcu_dereference(inet6_offloads[
ipv6_gso_pull_exthdrs(skb, ipv6h->nexthdr)]);
@@ -74,7 +73,6 @@ static int ipv6_gso_send_check(struct sk_buff *skb)
skb_reset_transport_header(skb);
err = ops->callbacks.gso_send_check(skb);
}
- rcu_read_unlock();
out:
return err;
@@ -113,13 +111,12 @@ static struct sk_buff *ipv6_gso_segment(struct sk_buff *skb,
segs = ERR_PTR(-EPROTONOSUPPORT);
proto = ipv6_gso_pull_exthdrs(skb, ipv6h->nexthdr);
- rcu_read_lock();
+
ops = rcu_dereference(inet6_offloads[proto]);
if (likely(ops && ops->callbacks.gso_segment)) {
skb_reset_transport_header(skb);
segs = ops->callbacks.gso_segment(skb, features);
}
- rcu_read_unlock();
if (IS_ERR(segs))
goto out;
^ permalink raw reply related
* [PATCH RESENT] staging: r8188eu: Move writeN buffer off stack
From: Larry Finger @ 2013-10-18 21:39 UTC (permalink / raw)
To: gregkh; +Cc: netdev, Larry Finger, devel
The driver places a 254-byte buffer on the stack when writing long output.
To reduce stack usage, a buffer of the required length is acquired using
kmemdup().
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/hal/usb_ops_linux.c | 58 +++++++++++++++++++--------
1 file changed, 42 insertions(+), 16 deletions(-)
diff --git a/drivers/staging/rtl8188eu/hal/usb_ops_linux.c
b/drivers/staging/rtl8188eu/hal/usb_ops_linux.c
index 787763e..7ba52a1 100644
--- a/drivers/staging/rtl8188eu/hal/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/hal/usb_ops_linux.c
@@ -267,28 +267,54 @@ static int usb_write32(struct intf_hdl *pintfhdl, u32
addr, u32 val)
static int usb_writeN(struct intf_hdl *pintfhdl, u32 addr, u32 length, u8 *pdata)
{
- u8 request;
- u8 requesttype;
- u16 wvalue;
- u16 index;
- u16 len;
- u8 buf[VENDOR_CMD_MAX_DATA_LEN] = {0};
+ struct adapter *adapt = pintfhdl->padapter;
+ struct dvobj_priv *dvobjpriv = adapter_to_dvobj(adapt);
+ struct usb_device *udev = dvobjpriv->pusbdev;
+ u8 request = REALTEK_USB_VENQT_CMD_REQ;
+ u8 reqtype = REALTEK_USB_VENQT_WRITE;
+ u16 value = (u16)(addr & 0x0000ffff);
+ u16 index = REALTEK_USB_VENQT_CMD_IDX;
+ int pipe = usb_sndctrlpipe(udev, 0); /* write_out */
+ u8 *buffer;
int ret;
+ int vendorreq_times = 0;
- _func_enter_;
-
- request = 0x05;
- requesttype = 0x00;/* write_out */
- index = 0;/* n/a */
+ buffer = kmemdup(pdata, length, GFP_ATOMIC);
+ if (!buffer)
+ return -ENOMEM;
+ while (++vendorreq_times <= MAX_USBCTRL_VENDORREQ_TIMES) {
+ pipe = usb_sndctrlpipe(udev, 0);/* write_out */
- wvalue = (u16)(addr&0x0000ffff);
- len = length;
- memcpy(buf, pdata, len);
+ ret = rtw_usb_control_msg(udev, pipe, request, reqtype,
+ value, index, buffer, length,
+ RTW_USB_CONTROL_MSG_TIMEOUT);
- ret = usbctrl_vendorreq(pintfhdl, request, wvalue, index, buf, len,
requesttype);
+ if (ret == length) { /* Success this control transfer. */
+ rtw_reset_continual_urb_error(dvobjpriv);
+ } else { /* error cases */
+ DBG_88E("reg 0x%x, usb %u write fail, status:%d value=0x%x,
vendorreq_times:%d\n",
+ value, length, ret, *(u32 *)pdata, vendorreq_times);
- _func_exit_;
+ if (ret < 0) {
+ if (ret == (-ESHUTDOWN) || ret == -ENODEV) {
+ adapt->bSurpriseRemoved = true;
+ } else {
+ struct hal_data_8188e *haldata = GET_HAL_DATA(adapt);
+ haldata->srestpriv.Wifi_Error_Status = USB_VEN_REQ_CMD_FAIL;
+ }
+ }
+ if (rtw_inc_and_chk_continual_urb_error(dvobjpriv)) {
+ adapt->bSurpriseRemoved = true;
+ break;
+ }
+ }
+ /* firmware download is checksumed, don't retry */
+ if ((value >= FW_8188E_START_ADDRESS &&
+ value <= FW_8188E_END_ADDRESS) || ret == length)
+ break;
+ }
+ kfree(buffer);
return ret;
}
-- 1.8.4
^ permalink raw reply related
* [PATCH 9/9 RESENT] staging: r8188eu: Fix sparse warnings in rtw_br_ext.c
From: Larry Finger @ 2013-10-18 21:38 UTC (permalink / raw)
To: gregkh; +Cc: netdev, Larry Finger, devel
In-Reply-To: <1382129563-8496-1-git-send-email-Larry.Finger@lwfinger.net>
Sparse has the following warnings for core/rtw_br_ext.c
CHECK drivers/staging/rtl8188eu/core/rtw_br_ext.c
drivers/staging/rtl8188eu/core/rtw_br_ext.c:705:101: warning: incorrect type in
argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:705:101: expected unsigned int
*ipxNetAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:705:101: got restricted __be32
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:705:123: warning: incorrect type in
argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:705:123: expected unsigned short
*ipxSocketAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:705:123: got restricted __be16
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:710:99: warning: incorrect type in
argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:710:99: expected unsigned int
*ipxNetAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:710:99: got restricted __be32
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:719:101: warning: incorrect type in
argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:719:101: expected unsigned int
*ipxNetAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:719:101: got restricted __be32
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:719:121: warning: incorrect type in
argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:719:121: expected unsigned short
*ipxSocketAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:719:121: got restricted __be16
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:726:99: warning: incorrect type in
argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:726:99: expected unsigned int
*ipxNetAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:726:99: got restricted __be32
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:754:83: warning: incorrect type in
argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:754:83: expected unsigned short
*network
drivers/staging/rtl8188eu/core/rtw_br_ext.c:754:83: got restricted __be16
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:767:83: warning: incorrect type in
argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:767:83: expected unsigned short
*network
drivers/staging/rtl8188eu/core/rtw_br_ext.c:767:83: got restricted __be16
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:788:83: warning: incorrect type in
argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:788:83: expected unsigned short
*network
drivers/staging/rtl8188eu/core/rtw_br_ext.c:788:83: got restricted __be16
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:800:83: warning: incorrect type in
argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:800:83: expected unsigned short
*network
drivers/staging/rtl8188eu/core/rtw_br_ext.c:800:83: got restricted __be16
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:854:57: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:854:57: expected unsigned short
[unsigned] [short] <noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:854:57: got restricted __be16
[usertype] <noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:92:23: warning: restricted __be16
degrades to integer
drivers/staging/rtl8188eu/core/rtw_br_ext.c:881:95: warning: incorrect type in
argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:881:95: expected unsigned short *sid
drivers/staging/rtl8188eu/core/rtw_br_ext.c:881:95: got restricted __be16
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:917:45: warning: cast to restricted
__be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:917:45: warning: cast to restricted
__be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:917:45: warning: cast to restricted
__be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:917:45: warning: cast to restricted
__be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:949:112: warning: incorrect type in
argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:949:112: expected unsigned short *sid
drivers/staging/rtl8188eu/core/rtw_br_ext.c:949:112: got restricted __be16
*<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1024:84: warning: incorrect type in
argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1024:84: expected unsigned int
[unsigned] [usertype] len
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1024:84: got restricted __be16
[usertype] payload_len
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1026:110: warning: incorrect type in
argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1026:110: expected int [signed] len
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1026:110: got restricted __be16
[usertype] payload_len
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1151:54: warning: cast to restricted
__be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1151:54: warning: cast to restricted
__be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1151:54: warning: cast to restricted
__be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1151:54: warning: cast to restricted
__be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1151:54: warning: cast to restricted
__be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1151:54: warning: cast to restricted
__be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1154:70: warning: restricted __be16
degrades to integer
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1160:70: warning: invalid assignment: |=
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1160:70: left side has type
unsigned short
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1160:70: right side has type
restricted __be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1162:63: warning: restricted __sum16
degrades to integer
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1163:64: warning: cast to restricted
__be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1163:64: warning: cast to restricted
__be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1163:64: warning: cast to restricted
__be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1163:64: warning: cast to restricted
__be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1166:69: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1166:69: expected restricted
__sum16 [usertype] check
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1166:69: got int
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/core/rtw_br_ext.c | 52 +++++++++++++++++------------
1 file changed, 31 insertions(+), 21 deletions(-)
diff --git a/drivers/staging/rtl8188eu/core/rtw_br_ext.c
b/drivers/staging/rtl8188eu/core/rtw_br_ext.c
index 9f40742..d50fc13 100644
--- a/drivers/staging/rtl8188eu/core/rtw_br_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_br_ext.c
@@ -89,7 +89,7 @@ static inline int __nat25_add_pppoe_tag(struct sk_buff *skb,
struct pppoe_tag *t
struct pppoe_hdr *ph = (struct pppoe_hdr *)(skb->data + ETH_HLEN);
int data_len;
- data_len = tag->tag_len + TAG_HDR_LEN;
+ data_len = be16_to_cpu(tag->tag_len) + TAG_HDR_LEN;
if (skb_tailroom(skb) < data_len) {
_DEBUG_ERR("skb_tailroom() failed in add SID tag!\n");
return -1;
@@ -155,44 +155,53 @@ static inline void
__nat25_generate_ipv4_network_addr(unsigned char *networkAddr
static inline void __nat25_generate_ipx_network_addr_with_node(unsigned char
*networkAddr,
- unsigned int *ipxNetAddr, unsigned char *ipxNodeAddr)
+ __be32 *ipxNetAddr, unsigned char *ipxNodeAddr)
{
+ u32 cpu_netaddr = be32_to_cpu(*ipxNetAddr);
+
memset(networkAddr, 0, MAX_NETWORK_ADDR_LEN);
networkAddr[0] = NAT25_IPX;
- memcpy(networkAddr+1, (unsigned char *)ipxNetAddr, 4);
+ memcpy(networkAddr+1, &cpu_netaddr, 4);
memcpy(networkAddr+5, ipxNodeAddr, 6);
}
static inline void __nat25_generate_ipx_network_addr_with_socket(unsigned
char *networkAddr,
- unsigned int *ipxNetAddr, unsigned short *ipxSocketAddr)
+ __be32 *ipxNetAddr, __be16 *ipxSocketAddr)
{
+ u32 cpu_netaddr = be32_to_cpu(*ipxNetAddr);
+ u16 cpu_sockaddr = be16_to_cpu(*ipxSocketAddr);
+
memset(networkAddr, 0, MAX_NETWORK_ADDR_LEN);
networkAddr[0] = NAT25_IPX;
- memcpy(networkAddr+1, (unsigned char *)ipxNetAddr, 4);
- memcpy(networkAddr+5, (unsigned char *)ipxSocketAddr, 2);
+ memcpy(networkAddr+1, &cpu_netaddr, 4);
+ memcpy(networkAddr+5, &cpu_sockaddr, 2);
}
static inline void __nat25_generate_apple_network_addr(unsigned char
*networkAddr,
- unsigned short *network, unsigned char *node)
+ __be16 *network, unsigned char *node)
{
+ u16 cpu_net = be16_to_cpu(*network);
+
memset(networkAddr, 0, MAX_NETWORK_ADDR_LEN);
networkAddr[0] = NAT25_APPLE;
- memcpy(networkAddr+1, (unsigned char *)network, 2);
+ memcpy(networkAddr+1, &cpu_net, 2);
networkAddr[3] = *node;
}
static inline void __nat25_generate_pppoe_network_addr(unsigned char
*networkAddr,
- unsigned char *ac_mac, unsigned short *sid)
+ unsigned char *ac_mac, __be16 *sid)
{
+ u16 cpu_sid = be16_to_cpu(*sid);
+
memset(networkAddr, 0, MAX_NETWORK_ADDR_LEN);
networkAddr[0] = NAT25_PPPOE;
- memcpy(networkAddr+1, (unsigned char *)sid, 2);
+ memcpy(networkAddr+1, &cpu_sid, 2);
memcpy(networkAddr+3, (unsigned char *)ac_mac, 6);
}
@@ -811,7 +820,7 @@ int nat25_db_handle(struct adapter *priv, struct sk_buff
*skb, int method)
/* Handle PPPoE frame */
/*---------------------------------------------------*/
struct pppoe_hdr *ph = (struct pppoe_hdr *)(skb->data + ETH_HLEN);
- unsigned short *pMagic;
+ __be16 *pMagic;
switch (method) {
case NAT25_CHECK:
@@ -849,7 +858,7 @@ int nat25_db_handle(struct adapter *priv, struct sk_buff
*skb, int method)
tag->tag_len = htons(MAGIC_CODE_LEN+RTL_RELAY_TAG_LEN+old_tag_len);
/* insert the magic_code+client mac in relay tag */
- pMagic = (unsigned short *)tag->tag_data;
+ pMagic = (__be16 *)tag->tag_data;
*pMagic = htons(MAGIC_CODE);
memcpy(tag->tag_data+MAGIC_CODE_LEN, skb->data+ETH_ALEN, ETH_ALEN);
@@ -912,8 +921,8 @@ int nat25_db_handle(struct adapter *priv, struct sk_buff
*skb, int method)
return -1;
}
- pMagic = (unsigned short *)tag->tag_data;
- if (ntohs(*pMagic) != MAGIC_CODE) {
+ pMagic = (__be16 *)tag->tag_data;
+ if (be16_to_cpu(*pMagic) != MAGIC_CODE) {
DEBUG_ERR("Can't find MAGIC_CODE in %s packet!\n",
(ph->code == PADO_CODE ? "PADO" : "PADS"));
return -1;
@@ -1018,11 +1027,12 @@ int nat25_db_handle(struct adapter *priv, struct sk_buff
*skb, int method)
if (update_nd_link_layer_addr(skb->data + ETH_HLEN + sizeof(*iph),
skb->len - ETH_HLEN - sizeof(*iph), GET_MY_HWADDR(priv))) {
struct icmp6hdr *hdr = (struct icmp6hdr *)(skb->data + ETH_HLEN +
sizeof(*iph));
+ u32 len = __be16_to_cpu(iph->payload_len);
hdr->icmp6_cksum = 0;
hdr->icmp6_cksum = csum_ipv6_magic(&iph->saddr, &iph->daddr,
- iph->payload_len,
+ len,
IPPROTO_ICMPV6,
- csum_partial((__u8 *)hdr, iph->payload_len, 0));
+ csum_partial((__u8 *)hdr, len, 0));
}
}
}
@@ -1117,7 +1127,7 @@ struct dhcpMessage {
u_int8_t hops;
u_int32_t xid;
u_int16_t secs;
- u_int16_t flags;
+ __be16 flags;
u_int32_t ciaddr;
u_int32_t yiaddr;
u_int32_t siaddr;
@@ -1125,7 +1135,7 @@ struct dhcpMessage {
u_int8_t chaddr[16];
u_int8_t sname[64];
u_int8_t file[128];
- u_int32_t cookie;
+ __be32 cookie;
u_int8_t options[308]; /* 312 - cookie */
};
@@ -1152,17 +1162,17 @@ void dhcp_flag_bcast(struct adapter *priv, struct
sk_buff *skb)
if (cookie == DHCP_MAGIC) { /* match magic word */
if (!(dhcph->flags & htons(BROADCAST_FLAG))) {
/* if not broadcast */
- register int sum = 0;
+ register int sum;
DEBUG_INFO("DHCP: change flag of DHCP request to broadcast.\n");
/* or BROADCAST flag */
dhcph->flags |= htons(BROADCAST_FLAG);
/* recalculate checksum */
- sum = ~(udph->check) & 0xffff;
+ sum = (__force int)(~(udph->check)) & 0xffff;
sum += be16_to_cpu(dhcph->flags);
while (sum >> 16)
sum = (sum & 0xffff) + (sum >> 16);
- udph->check = ~sum;
+ udph->check = (__force __sum16)~sum;
}
}
}
--
1.8.4
^ permalink raw reply related
* [PATCH 8/9 RESENT] staging: r8188eu: Fix sparse warnings in rtw_xmit.c
From: Larry Finger @ 2013-10-18 21:37 UTC (permalink / raw)
To: gregkh; +Cc: netdev, Larry Finger, "org devel"
In-Reply-To: <1382129563-8496-1-git-send-email-Larry.Finger@lwfinger.net>
Sparse displays the following:
CHECK drivers/staging/rtl8188eu/core/rtw_xmit.c
drivers/staging/rtl8188eu/core/rtw_xmit.c:830:23: warning: incorrect type in
initializer (different base types)
drivers/staging/rtl8188eu/core/rtw_xmit.c:830:23: expected unsigned short
[usertype] *fctrl
drivers/staging/rtl8188eu/core/rtw_xmit.c:830:23: got restricted __le16
*<noident>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/core/rtw_xmit.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/rtl8188eu/core/rtw_xmit.c
b/drivers/staging/rtl8188eu/core/rtw_xmit.c
index a594e51..0110816 100644
--- a/drivers/staging/rtl8188eu/core/rtw_xmit.c
+++ b/drivers/staging/rtl8188eu/core/rtw_xmit.c
@@ -827,7 +827,7 @@ s32 rtw_make_wlanhdr (struct adapter *padapter , u8 *hdr,
struct pkt_attrib *pat
u8 qos_option = false;
int res = _SUCCESS;
- u16 *fctrl = &pwlanhdr->frame_ctl;
+ __le16 *fctrl = &pwlanhdr->frame_ctl;
struct sta_info *psta;
-- 1.8.4
^ permalink raw reply related
* [PATCH 7/9 RESENT] staging: r8188eu: Fix sparse warnings in rtl_p2p.c
From: Larry Finger @ 2013-10-18 21:37 UTC (permalink / raw)
To: gregkh; +Cc: devel, netdev, Larry Finger
In-Reply-To: <1382129563-8496-1-git-send-email-Larry.Finger@lwfinger.net>
Sparse displays the following:
CHECK drivers/staging/rtl8188eu/core/rtw_p2p.c
drivers/staging/rtl8188eu/core/rtw_p2p.c:162:15: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_p2p.c:162:15: expected unsigned short *fctrl
drivers/staging/rtl8188eu/core/rtw_p2p.c:162:15: got restricted __le16 *<noident>
drivers/staging/rtl8188eu/core/rtw_p2p.c:221:15: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_p2p.c:221:15: expected unsigned short *fctrl
drivers/staging/rtl8188eu/core/rtw_p2p.c:221:15: got restricted __le16 *<noident>
drivers/staging/rtl8188eu/core/rtw_p2p.c:292:15: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_p2p.c:292:15: expected unsigned short *fctrl
drivers/staging/rtl8188eu/core/rtw_p2p.c:292:15: got restricted __le16 *<noident>
drivers/staging/rtl8188eu/core/rtw_p2p.c:371:15: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_p2p.c:371:15: expected unsigned short *fctrl
drivers/staging/rtl8188eu/core/rtw_p2p.c:371:15: got restricted __le16 *<noident>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/core/rtw_p2p.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/rtl8188eu/core/rtw_p2p.c
b/drivers/staging/rtl8188eu/core/rtw_p2p.c
index 8cf915f..f46cab1 100644
--- a/drivers/staging/rtl8188eu/core/rtw_p2p.c
+++ b/drivers/staging/rtl8188eu/core/rtw_p2p.c
@@ -135,7 +135,7 @@ static void issue_group_disc_req(struct wifidirect_info
*pwdinfo, u8 *da)
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct adapter *padapter = pwdinfo->padapter;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
@@ -192,7 +192,7 @@ static void issue_p2p_devdisc_resp(struct wifidirect_info
*pwdinfo, u8 *da, u8 s
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct adapter *padapter = pwdinfo->padapter;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
@@ -272,7 +272,7 @@ static void issue_p2p_provision_resp(struct wifidirect_info
*pwdinfo, u8 *raddr,
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
@@ -342,7 +342,7 @@ static void issue_p2p_presence_resp(struct wifidirect_info
*pwdinfo, u8 *da, u8
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct adapter *padapter = pwdinfo->padapter;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
--
1.8.4
^ permalink raw reply related
* [PATCH 6/9 RESENT] staging: r8188eu: Fix sparse warnings in rtw_mlme_ext.c
From: Larry Finger @ 2013-10-18 21:36 UTC (permalink / raw)
To: gregkh; +Cc: netdev, Larry Finger, devel
In-Reply-To: <1382129563-8496-1-git-send-email-Larry.Finger@lwfinger.net>
Sparse displays the following:
CHECK drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:1874:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:1874:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:1874:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2221:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2221:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2221:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2583:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2583:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2583:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2750:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2750:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2750:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3002:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3002:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3002:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3197:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3197:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3197:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3311:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3311:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3311:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3563:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3563:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:3563:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:4522:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:4522:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:4522:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:4750:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:4750:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:4750:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:4906:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:4906:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:4906:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5040:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5040:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5040:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5184:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5184:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5184:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5322:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5322:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5322:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5654:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5654:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5654:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5769:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5769:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5769:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5894:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5894:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5894:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5996:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5996:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:5996:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:6066:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:6066:15: expected unsigned
short [usertype] *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:6066:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:6200:15: warning: incorrect type
in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:6200:15: expected unsigned
short *fctrl
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:6200:15: got restricted __le16
*<noident>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 41 ++++++++++++++-------------
1 file changed, 21 insertions(+), 20 deletions(-)
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index 9982dd0..7ab5ff0 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -1852,7 +1852,7 @@ void issue_p2p_GO_request(struct adapter *padapter, u8 *raddr)
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
@@ -2199,7 +2199,7 @@ static void issue_p2p_GO_response(struct adapter
*padapter, u8 *raddr, u8 *frame
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
@@ -2561,7 +2561,7 @@ static void issue_p2p_GO_confirm(struct adapter *padapter,
u8 *raddr, u8 result)
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
@@ -2729,7 +2729,7 @@ void issue_p2p_invitation_request(struct adapter
*padapter, u8 *raddr)
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
@@ -2981,7 +2981,7 @@ void issue_p2p_invitation_response(struct adapter
*padapter, u8 *raddr, u8 dialo
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
@@ -3175,7 +3175,7 @@ void issue_p2p_provision_request(struct adapter *padapter,
u8 *pssid, u8 ussidle
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
@@ -3283,7 +3283,7 @@ void issue_probersp_p2p(struct adapter *padapter, unsigned
char *da)
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
unsigned char *mac;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
@@ -3534,7 +3534,7 @@ static int _issue_probereq_p2p(struct adapter *padapter,
u8 *da, int wait_ack)
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
unsigned char *mac;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
@@ -4484,7 +4484,7 @@ void issue_beacon(struct adapter *padapter, int timeout_ms)
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
unsigned int rate_len;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
#if defined(CONFIG_88EU_AP_MODE)
@@ -4713,7 +4713,7 @@ void issue_probersp(struct adapter *padapter, unsigned
char *da, u8 is_valid_p2p
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
unsigned char *mac, *bssid;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
#if defined (CONFIG_88EU_AP_MODE)
@@ -4876,7 +4876,7 @@ static int _issue_probereq(struct adapter *padapter,
struct ndis_802_11_ssid *ps
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
unsigned char *mac;
unsigned char bssrate[NumRates];
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
@@ -5013,7 +5013,7 @@ void issue_auth(struct adapter *padapter, struct sta_info
*psta, unsigned short
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
unsigned int val32;
u16 val16;
#ifdef CONFIG_88EU_AP_MODE
@@ -5153,7 +5153,7 @@ void issue_asocrsp(struct adapter *padapter, unsigned
short status, struct sta_i
struct pkt_attrib *pattrib;
unsigned char *pbuf, *pframe;
unsigned short val;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
@@ -5290,7 +5290,7 @@ void issue_assocreq(struct adapter *padapter)
struct pkt_attrib *pattrib;
unsigned char *pframe, *p;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
__le16 le_tmp;
unsigned int i, j, ie_len, index = 0;
unsigned char rf_type, bssrate[NumRates], sta_bssrate[NumRates];
@@ -5625,7 +5625,7 @@ static int _issue_nulldata(struct adapter *padapter,
unsigned char *da, unsigned
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv;
struct mlme_ext_priv *pmlmeext;
struct mlme_ext_info *pmlmeinfo;
@@ -5740,7 +5740,8 @@ static int _issue_qos_nulldata(struct adapter *padapter,
unsigned char *da, u16
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl, *qc;
+ __le16 *fctrl;
+ unsigned short *qc;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
@@ -5860,7 +5861,7 @@ static int _issue_deauth(struct adapter *padapter,
unsigned char *da, unsigned s
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
@@ -5972,7 +5973,7 @@ void issue_action_spct_ch_switch (struct adapter
*padapter, u8 *ra, u8 new_ch, u
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
@@ -6040,7 +6041,7 @@ void issue_action_BA(struct adapter *padapter, unsigned
char *raddr, unsigned ch
struct pkt_attrib *pattrib;
u8 *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- u16 *fctrl;
+ __le16 *fctrl;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
@@ -6162,7 +6163,7 @@ static void issue_action_BSSCoexistPacket(struct adapter
*padapter)
struct pkt_attrib *pattrib;
unsigned char *pframe;
struct rtw_ieee80211_hdr *pwlanhdr;
- unsigned short *fctrl;
+ __le16 *fctrl;
struct wlan_network *pnetwork = NULL;
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
--
1.8.4
^ permalink raw reply related
* [PATCH 5/9 RESENT] staging: r8188eu: Fix sparse warnings in rtl8188e.cmd.c
From: Larry Finger @ 2013-10-18 21:35 UTC (permalink / raw)
To: gregkh; +Cc: devel, netdev, Larry Finger
In-Reply-To: <1382129563-8496-1-git-send-email-Larry.Finger@lwfinger.net>
Sparse displays the following:
CHECK drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:285:15: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:285:15: expected unsigned short
[usertype] *fctrl
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:285:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:368:15: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:368:15: expected unsigned short
[usertype] *fctrl
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:368:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:403:15: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:403:15: expected unsigned short
[usertype] *fctrl
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:403:15: got restricted __le16
*<noident>
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:465:15: warning: incorrect type in
assignment (different base types)
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:465:15: expected unsigned short
[usertype] *fctrl
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c:465:15: got restricted __le16
*<noident>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c
b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c
index 0b0c68c..8be2ad7 100644
--- a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c
+++ b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c
@@ -273,7 +273,7 @@ void rtl8188e_set_FwMediaStatus_cmd(struct adapter *adapt,
__le16 mstatus_rpt)
static void ConstructBeacon(struct adapter *adapt, u8 *pframe, u32 *pLength)
{
struct rtw_ieee80211_hdr *pwlanhdr;
- u16 *fctrl;
+ __le16 *fctrl;
u32 rate_len, pktlen;
struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv);
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
@@ -360,7 +360,7 @@ static void ConstructPSPoll(struct adapter *adapt, u8
*pframe, u32 *pLength)
struct rtw_ieee80211_hdr *pwlanhdr;
struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv);
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
- u16 *fctrl;
+ __le16 *fctrl;
pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
@@ -391,7 +391,7 @@ static void ConstructNullFunctionData(struct adapter
*adapt, u8 *pframe,
u8 bForcePowerSave)
{
struct rtw_ieee80211_hdr *pwlanhdr;
- u16 *fctrl;
+ __le16 *fctrl;
u32 pktlen;
struct mlme_priv *pmlmepriv = &adapt->mlmepriv;
struct wlan_network *cur_network = &pmlmepriv->cur_network;
@@ -450,7 +450,7 @@ static void ConstructNullFunctionData(struct adapter *adapt,
u8 *pframe,
static void ConstructProbeRsp(struct adapter *adapt, u8 *pframe, u32 *pLength,
u8 *StaAddr, bool bHideSSID)
{
struct rtw_ieee80211_hdr *pwlanhdr;
- u16 *fctrl;
+ __le16 *fctrl;
u8 *mac, *bssid;
u32 pktlen;
struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv);
--
1.8.4
^ permalink raw reply related
* [PATCH 4/9 RESENT] staging: r8188eu: Fix sparse warnings in rtw_ieee80211.c
From: Larry Finger @ 2013-10-18 21:35 UTC (permalink / raw)
To: gregkh; +Cc: devel, netdev, Larry Finger
In-Reply-To: <1382129563-8496-1-git-send-email-Larry.Finger@lwfinger.net>
Sparse reports the following:
CHECK drivers/staging/rtl8188eu/core/rtw_ieee80211.c
drivers/staging/rtl8188eu/core/rtw_ieee80211.c:1593:14: warning: cast to
restricted __le16
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/include/ieee80211.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/staging/rtl8188eu/include/ieee80211.h
b/drivers/staging/rtl8188eu/include/ieee80211.h
index cd37ea4..c4d38d1 100644
--- a/drivers/staging/rtl8188eu/include/ieee80211.h
+++ b/drivers/staging/rtl8188eu/include/ieee80211.h
@@ -306,8 +306,8 @@ struct ieee_ibss_seq {
};
struct rtw_ieee80211_hdr {
- u16 frame_ctl;
- u16 duration_id;
+ __le16 frame_ctl;
+ __le16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
@@ -316,8 +316,8 @@ struct rtw_ieee80211_hdr {
} __packed;
struct rtw_ieee80211_hdr_3addr {
- u16 frame_ctl;
- u16 duration_id;
+ __le16 frame_ctl;
+ __le16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
@@ -325,8 +325,8 @@ struct rtw_ieee80211_hdr_3addr {
} __packed;
struct rtw_ieee80211_hdr_qos {
- u16 frame_ctl;
- u16 duration_id;
+ __le16 frame_ctl;
+ __le16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
@@ -336,8 +336,8 @@ struct rtw_ieee80211_hdr_qos {
} __packed;
struct rtw_ieee80211_hdr_3addr_qos {
- u16 frame_ctl;
- u16 duration_id;
+ __le16 frame_ctl;
+ __le16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
--
1.8.4
^ permalink raw reply related
* [PATCH 3/9 RESENT] staging: r8188eu: Fix sparse warnings in ioctl_linux.c
From: Larry Finger @ 2013-10-18 21:34 UTC (permalink / raw)
To: gregkh; +Cc: netdev, Larry Finger, devel
In-Reply-To: <1382129563-8496-1-git-send-email-Larry.Finger@lwfinger.net>
Sparse checking results in the following warnings:
CHECK drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3932:17: warning: cast removes
address space of expression
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3933:31: warning: incorrect type
in argument 1 (different address spaces)
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3933:31: expected void const
*<noident>
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3933:31: got void [noderef]
<asn:1>*pointer
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3935:38: warning: incorrect type
in argument 1 (different address spaces)
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3935:38: expected void const
*<noident>
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3935:38: got void [noderef]
<asn:1>*pointer
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3937:38: warning: incorrect type
in argument 1 (different address spaces)
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3937:38: expected void const
*<noident>
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3937:38: got void [noderef]
<asn:1>*pointer
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3939:38: warning: incorrect type
in argument 1 (different address spaces)
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3939:38: expected void const
*<noident>
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3939:38: got void [noderef]
<asn:1>*pointer
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3941:38: warning: incorrect type
in argument 1 (different address spaces)
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3941:38: expected void const
*<noident>
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3941:38: got void [noderef]
<asn:1>*pointer
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3944:38: warning: incorrect type
in argument 1 (different address spaces)
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3944:38: expected void const
*<noident>
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3944:38: got void [noderef]
<asn:1>*pointer
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3946:38: warning: incorrect type
in argument 1 (different address spaces)
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3946:38: expected void const
*<noident>
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3946:38: got void [noderef]
<asn:1>*pointer
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3949:38: warning: incorrect type
in argument 1 (different address spaces)
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3949:38: expected void const
*<noident>
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3949:38: got void [noderef]
<asn:1>*pointer
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:3963:9: warning: cast removes
address space of expression
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
index ae54587..5dc3fed 100644
--- a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
@@ -3929,24 +3929,24 @@ static int rtw_p2p_get(struct net_device *dev,
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
if (padapter->bShowGetP2PState)
- DBG_88E("[%s] extra = %s\n", __func__, (char *)wrqu->data.pointer);
- if (!memcmp(wrqu->data.pointer, "status", 6)) {
+ DBG_88E("[%s] extra = %s\n", __func__, (__force char *)wrqu->data.pointer);
+ if (!memcmp((__force const char *)wrqu->data.pointer, "status", 6)) {
rtw_p2p_get_status(dev, info, wrqu, extra);
- } else if (!memcmp(wrqu->data.pointer, "role", 4)) {
+ } else if (!memcmp((__force const char *)wrqu->data.pointer, "role", 4)) {
rtw_p2p_get_role(dev, info, wrqu, extra);
- } else if (!memcmp(wrqu->data.pointer, "peer_ifa", 8)) {
+ } else if (!memcmp((__force const char *)wrqu->data.pointer, "peer_ifa", 8)) {
rtw_p2p_get_peer_ifaddr(dev, info, wrqu, extra);
- } else if (!memcmp(wrqu->data.pointer, "req_cm", 6)) {
+ } else if (!memcmp((__force const char *)wrqu->data.pointer, "req_cm", 6)) {
rtw_p2p_get_req_cm(dev, info, wrqu, extra);
- } else if (!memcmp(wrqu->data.pointer, "peer_deva", 9)) {
+ } else if (!memcmp((__force const char *)wrqu->data.pointer, "peer_deva", 9)) {
/* Get the P2P device address when receiving the provision discovery request
frame. */
rtw_p2p_get_peer_devaddr(dev, info, wrqu, extra);
- } else if (!memcmp(wrqu->data.pointer, "group_id", 8)) {
+ } else if (!memcmp((__force const char *)wrqu->data.pointer, "group_id", 8)) {
rtw_p2p_get_groupid(dev, info, wrqu, extra);
- } else if (!memcmp(wrqu->data.pointer, "peer_deva_inv", 9)) {
+ } else if (!memcmp((__force const char *)wrqu->data.pointer, "peer_deva_inv",
9)) {
/* Get the P2P device address when receiving the P2P Invitation request
frame. */
rtw_p2p_get_peer_devaddr_by_invitation(dev, info, wrqu, extra);
- } else if (!memcmp(wrqu->data.pointer, "op_ch", 5)) {
+ } else if (!memcmp((__force const char *)wrqu->data.pointer, "op_ch", 5)) {
rtw_p2p_get_op_ch(dev, info, wrqu, extra);
}
#endif /* CONFIG_88EU_P2P */
@@ -3960,7 +3960,7 @@ static int rtw_p2p_get2(struct net_device *dev,
int ret = 0;
#ifdef CONFIG_88EU_P2P
- DBG_88E("[%s] extra = %s\n", __func__, (char *)wrqu->data.pointer);
+ DBG_88E("[%s] extra = %s\n", __func__, (__force char *)wrqu->data.pointer);
if (!memcmp(extra, "wpsCM =", 6)) {
wrqu->data.length -= 6;
rtw_p2p_get_wps_configmethod(dev, info, wrqu, &extra[6]);
--
1.8.4
^ permalink raw reply related
* [PATCH 2/9 RESENT] staging: r8188eu: Fix Sparse warnings in rtw_wlan_util
From: Larry Finger @ 2013-10-18 21:33 UTC (permalink / raw)
To: gregkh; +Cc: devel, netdev, Larry Finger
In-Reply-To: <1382129563-8496-1-git-send-email-Larry.Finger@lwfinger.net>
Sparse shows the following warning:
CHECK drivers/staging/rtl8188eu/core/rtw_wlan_util.c
drivers/staging/rtl8188eu/core/rtw_wlan_util.c:1635:25: warning: cast to
restricted __le16
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/core/rtw_wlan_util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
index 153ec61..30ba18c 100644
--- a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
+++ b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
@@ -1632,7 +1632,7 @@ void process_addba_req(struct adapter *padapter, u8
*paddba_req, u8 *addr)
psta = rtw_get_stainfo(pstapriv, addr);
if (psta) {
- param = le16_to_cpu(preq->BA_para_set);
+ param = preq->BA_para_set;
tid = (param>>2)&0x0f;
preorder_ctrl = &psta->recvreorder_ctrl[tid];
preorder_ctrl->indicate_seq = 0xffff;
--
1.8.4
^ permalink raw reply related
* [PATCH 1/9 RESENT] staging: r8188eu: Set device type to wlan
From: Larry Finger @ 2013-10-18 21:32 UTC (permalink / raw)
To: gregkh; +Cc: devel, netdev, Larry Finger
In-Reply-To: <1382129563-8496-1-git-send-email-Larry.Finger@lwfinger.net>
The latest version of NetworkManager does not recognize the device as wireless
without this change.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
drivers/staging/rtl8188eu/os_dep/os_intfs.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index da9f0d5..17659bb 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -707,6 +707,10 @@ int rtw_init_netdev_name(struct net_device *pnetdev, const
char *ifname)
return 0;
}
+static const struct device_type wlan_type = {
+ .name = "wlan",
+};
+
struct net_device *rtw_init_netdev(struct adapter *old_padapter)
{
struct adapter *padapter;
@@ -722,6 +726,7 @@ struct net_device *rtw_init_netdev(struct adapter *old_padapter)
if (!pnetdev)
return NULL;
+ pnetdev->dev.type = &wlan_type;
padapter = rtw_netdev_priv(pnetdev);
padapter->pnetdev = pnetdev;
DBG_88E("register rtw_netdev_ops to netdev_ops\n");
--
1.8.4
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox