Commit ac630c2b authored by Vladimir Davydov's avatar Vladimir Davydov Committed by David S. Miller

[LIBERTAS]: fix oops on the blackfin architecture

Fixing memory alignment problems on the blackfin architecture (maybe on the
ARM also)
Signed-off-by: default avatarVladimir Davydov <vladimir.davydov@promwad.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f31ce76b
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
#include <net/ieee80211.h> #include <net/ieee80211.h>
#include <net/iw_handler.h> #include <net/iw_handler.h>
#include <asm/unaligned.h>
#include "host.h" #include "host.h"
#include "decl.h" #include "decl.h"
#include "dev.h" #include "dev.h"
...@@ -888,7 +890,7 @@ static int libertas_process_bss(struct bss_descriptor * bss, ...@@ -888,7 +890,7 @@ static int libertas_process_bss(struct bss_descriptor * bss,
if (*bytesleft >= sizeof(beaconsize)) { if (*bytesleft >= sizeof(beaconsize)) {
/* Extract & convert beacon size from the command buffer */ /* Extract & convert beacon size from the command buffer */
beaconsize = le16_to_cpup((void *)*pbeaconinfo); beaconsize = le16_to_cpu(get_unaligned((u16 *)*pbeaconinfo));
*bytesleft -= sizeof(beaconsize); *bytesleft -= sizeof(beaconsize);
*pbeaconinfo += sizeof(beaconsize); *pbeaconinfo += sizeof(beaconsize);
} }
...@@ -1698,10 +1700,10 @@ int libertas_ret_80211_scan(wlan_private * priv, struct cmd_ds_command *resp) ...@@ -1698,10 +1700,10 @@ int libertas_ret_80211_scan(wlan_private * priv, struct cmd_ds_command *resp)
goto done; goto done;
} }
bytesleft = le16_to_cpu(pscan->bssdescriptsize); bytesleft = le16_to_cpu(get_unaligned((u16*)&pscan->bssdescriptsize));
lbs_deb_scan("SCAN_RESP: bssdescriptsize %d\n", bytesleft); lbs_deb_scan("SCAN_RESP: bssdescriptsize %d\n", bytesleft);
scanrespsize = le16_to_cpu(resp->size); scanrespsize = le16_to_cpu(get_unaligned((u16*)&resp->size));
lbs_deb_scan("SCAN_RESP: returned %d AP before parsing\n", lbs_deb_scan("SCAN_RESP: returned %d AP before parsing\n",
pscan->nr_sets); pscan->nr_sets);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment