aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/nfc/nfcmrvl
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2017-04-17 00:42:22 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2017-04-17 00:42:22 +0200
commit4ea206395d3aede32bab94a75ec573530486fa44 (patch)
tree69c9d431bb02be210886f673c6fe467327cc156c /drivers/nfc/nfcmrvl
parentNFC: pn533: use constant off-stack buffer for sending acks (diff)
downloadlinux-dev-4ea206395d3aede32bab94a75ec573530486fa44.tar.xz
linux-dev-4ea206395d3aede32bab94a75ec573530486fa44.zip
nfc: fix get_unaligned_...() misuses
* if a local variable of type uint16_t is unaligned, your compiler is FUBAR * the whole point of get_unaligned_... is to avoid memcpy + ..._to_cpu(). Using it *after* memcpy() (into aligned object, no less) is pointless. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/nfc/nfcmrvl')
-rw-r--r--drivers/nfc/nfcmrvl/fw_dnld.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/nfc/nfcmrvl/fw_dnld.c b/drivers/nfc/nfcmrvl/fw_dnld.c
index 441c1b0ec7b5..c38bdd6a5a82 100644
--- a/drivers/nfc/nfcmrvl/fw_dnld.c
+++ b/drivers/nfc/nfcmrvl/fw_dnld.c
@@ -281,12 +281,11 @@ static int process_state_fw_dnld(struct nfcmrvl_private *priv,
return -EINVAL;
}
skb_pull(skb, 1);
- memcpy(&len, skb->data, 2);
+ len = get_unaligned_le16(skb->data);
skb_pull(skb, 2);
+ comp_len = get_unaligned_le16(skb->data);
memcpy(&comp_len, skb->data, 2);
skb_pull(skb, 2);
- len = get_unaligned_le16(&len);
- comp_len = get_unaligned_le16(&comp_len);
if (((~len) & 0xFFFF) != comp_len) {
nfc_err(priv->dev, "bad len complement: %x %x %x",
len, comp_len, (~len & 0xFFFF));