From: Arend van Spriel Date: Fri, 5 Apr 2013 08:57:39 +0000 (+0200) Subject: brcmfmac: fix unaligned access in TXSTATUS signal handling X-Git-Tag: firefly_0821_release~3680^2~478^2~21^2^2~134 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a2ffc5668e2742db7bae48ad6098e45f8d3ea19e;p=firefly-linux-kernel-4.4.55.git brcmfmac: fix unaligned access in TXSTATUS signal handling reported by Hante. Needs to be squashed in commit 187fbcec. Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville --- diff --git a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c index 8ce79af47e66..451cfc1b2c47 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c @@ -1181,13 +1181,15 @@ static int brcmf_fws_fifocreditback_indicate(struct brcmf_fws_info *fws, static int brcmf_fws_txstatus_indicate(struct brcmf_fws_info *fws, u8 *data) { + __le32 status_le; u32 status; u32 hslot; u32 genbit; u8 flags; fws->stats.txs_indicate++; - status = le32_to_cpu(*(__le32 *)data); + memcpy(&status_le, data, sizeof(status_le)); + status = le32_to_cpu(status_le); flags = brcmf_txstatus_get_field(status, FLAGS); hslot = brcmf_txstatus_get_field(status, HSLOT); genbit = brcmf_txstatus_get_field(status, GENERATION);