aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2013-06-03 06:10:04 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2013-06-14 07:45:10 -0400
commit4ca546e5545b7345b69e9331ecd53a1e4c6f7fe1 (patch)
tree49c01f7c212d7a764887f3dd2c69ed5376ffcd46 /net
parentf768b34017cbe6e7690686514f682f076bb1f477 (diff)
NFC: llcp: Fix the well known services endianness
The WKS (Well Known Services) bitmask should be transmitted in big endian order. Picky implementations will refuse to establish an LLCP link when the WKS bit 0 is not set to 1. The vast majority of implementations out there are not that picky though... Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/nfc/llcp_core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c
index d45bcbbc9f78..81cd3416c7d4 100644
--- a/net/nfc/llcp_core.c
+++ b/net/nfc/llcp_core.c
@@ -537,6 +537,7 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
537 u8 *lto_tlv, lto_length; 537 u8 *lto_tlv, lto_length;
538 u8 *wks_tlv, wks_length; 538 u8 *wks_tlv, wks_length;
539 u8 *miux_tlv, miux_length; 539 u8 *miux_tlv, miux_length;
540 __be16 wks = cpu_to_be16(local->local_wks);
540 u8 gb_len = 0; 541 u8 gb_len = 0;
541 int ret = 0; 542 int ret = 0;
542 543
@@ -549,8 +550,7 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
549 gb_len += lto_length; 550 gb_len += lto_length;
550 551
551 pr_debug("Local wks 0x%lx\n", local->local_wks); 552 pr_debug("Local wks 0x%lx\n", local->local_wks);
552 wks_tlv = nfc_llcp_build_tlv(LLCP_TLV_WKS, (u8 *)&local->local_wks, 2, 553 wks_tlv = nfc_llcp_build_tlv(LLCP_TLV_WKS, (u8 *)&wks, 2, &wks_length);
553 &wks_length);
554 gb_len += wks_length; 554 gb_len += wks_length;
555 555
556 miux_tlv = nfc_llcp_build_tlv(LLCP_TLV_MIUX, (u8 *)&local->miux, 0, 556 miux_tlv = nfc_llcp_build_tlv(LLCP_TLV_MIUX, (u8 *)&local->miux, 0,