forked from Minki/linux
mwifiex: endian bug in mwifiex_drv_change_adhoc_chan()
In mwifiex_drv_change_adhoc_chan() we pass channel to mwifiex_bss_ioctl_ibss_channel() which sets the high 16 bits. This works on little endian systems but not on big endian ones. I've changed mwifiex_drv_change_adhoc_chan() to use a 16 bit variable. This matches the other functions in the file. I considered changing mwifiex_change_adhoc_chan() as well but it turns out that the function isn't implemented so I just removed the definition. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
62ebeed8d0
commit
380aeef894
@ -909,10 +909,9 @@ int mwifiex_request_scan(struct mwifiex_private *priv,
|
||||
struct cfg80211_ssid *req_ssid);
|
||||
int mwifiex_set_user_scan_ioctl(struct mwifiex_private *priv,
|
||||
struct mwifiex_user_scan_cfg *scan_req);
|
||||
int mwifiex_change_adhoc_chan(struct mwifiex_private *priv, int channel);
|
||||
int mwifiex_set_radio(struct mwifiex_private *priv, u8 option);
|
||||
|
||||
int mwifiex_drv_change_adhoc_chan(struct mwifiex_private *priv, int channel);
|
||||
int mwifiex_drv_change_adhoc_chan(struct mwifiex_private *priv, u16 channel);
|
||||
|
||||
int mwifiex_set_encode(struct mwifiex_private *priv, const u8 *key,
|
||||
int key_len, u8 key_index, int disable);
|
||||
|
@ -609,7 +609,7 @@ static int mwifiex_bss_ioctl_ibss_channel(struct mwifiex_private *priv,
|
||||
* - Start/Join the IBSS
|
||||
*/
|
||||
int
|
||||
mwifiex_drv_change_adhoc_chan(struct mwifiex_private *priv, int channel)
|
||||
mwifiex_drv_change_adhoc_chan(struct mwifiex_private *priv, u16 channel)
|
||||
{
|
||||
int ret;
|
||||
struct mwifiex_bss_info bss_info;
|
||||
@ -646,7 +646,7 @@ mwifiex_drv_change_adhoc_chan(struct mwifiex_private *priv, int channel)
|
||||
ret = mwifiex_deauthenticate(priv, ssid_bssid.bssid);
|
||||
|
||||
ret = mwifiex_bss_ioctl_ibss_channel(priv, HostCmd_ACT_GEN_SET,
|
||||
(u16 *) &channel);
|
||||
&channel);
|
||||
|
||||
/* Do specific SSID scanning */
|
||||
if (mwifiex_request_scan(priv, &bss_info.ssid)) {
|
||||
|
Loading…
Reference in New Issue
Block a user