Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -13,6 +13,8 @@
#include <net/ieee80211.h>
#include <net/iw_handler.h>

#include <asm/unaligned.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 */
		beaconsize = le16_to_cpup((void *)*pbeaconinfo);
		beaconsize = le16_to_cpu(get_unaligned((u16 *)*pbeaconinfo));
		*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;
	}

	bytesleft = le16_to_cpu(pscan->bssdescriptsize);
	bytesleft = le16_to_cpu(get_unaligned((u16*)&pscan->bssdescriptsize));
	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);