projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[LIBERTAS]: fix oops on the blackfin architecture
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
drivers
/
net
/
wireless
/
libertas
/
scan.c
diff --git
a/drivers/net/wireless/libertas/scan.c
b/drivers/net/wireless/libertas/scan.c
index
8f073ad
..
fab93d8
100644
(file)
--- a/
drivers/net/wireless/libertas/scan.c
+++ b/
drivers/net/wireless/libertas/scan.c
@@
-13,6
+13,8
@@
#include <net/ieee80211.h>
#include <net/iw_handler.h>
#include <net/ieee80211.h>
#include <net/iw_handler.h>
+#include <asm/unaligned.h>
+
#include "host.h"
#include "decl.h"
#include "dev.h"
#include "host.h"
#include "decl.h"
#include "dev.h"
@@
-888,7
+890,7
@@
static int libertas_process_bss(struct bss_descriptor * bss,
if (*bytesleft >= sizeof(beaconsize)) {
/* Extract & convert beacon size from the command buffer */
if (*bytesleft >= sizeof(beaconsize)) {
/* Extract & convert beacon size from the command buffer */
- beaconsize = le16_to_cpu
p((void *)*pbeaconinfo
);
+ beaconsize = le16_to_cpu
(get_unaligned((u16 *)*pbeaconinfo)
);
*bytesleft -= sizeof(beaconsize);
*pbeaconinfo += sizeof(beaconsize);
}
*bytesleft -= sizeof(beaconsize);
*pbeaconinfo += sizeof(beaconsize);
}
@@
-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",
pscan->nr_sets);
lbs_deb_scan("SCAN_RESP: returned %d AP before parsing\n",
pscan->nr_sets);