Commit 4ca546e5 authored by Samuel Ortiz's avatar Samuel Ortiz

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: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent f768b340
...@@ -537,6 +537,7 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local) ...@@ -537,6 +537,7 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
u8 *lto_tlv, lto_length; u8 *lto_tlv, lto_length;
u8 *wks_tlv, wks_length; u8 *wks_tlv, wks_length;
u8 *miux_tlv, miux_length; u8 *miux_tlv, miux_length;
__be16 wks = cpu_to_be16(local->local_wks);
u8 gb_len = 0; u8 gb_len = 0;
int ret = 0; int ret = 0;
...@@ -549,8 +550,7 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local) ...@@ -549,8 +550,7 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
gb_len += lto_length; gb_len += lto_length;
pr_debug("Local wks 0x%lx\n", local->local_wks); pr_debug("Local wks 0x%lx\n", local->local_wks);
wks_tlv = nfc_llcp_build_tlv(LLCP_TLV_WKS, (u8 *)&local->local_wks, 2, wks_tlv = nfc_llcp_build_tlv(LLCP_TLV_WKS, (u8 *)&wks, 2, &wks_length);
&wks_length);
gb_len += wks_length; gb_len += wks_length;
miux_tlv = nfc_llcp_build_tlv(LLCP_TLV_MIUX, (u8 *)&local->miux, 0, miux_tlv = nfc_llcp_build_tlv(LLCP_TLV_MIUX, (u8 *)&local->miux, 0,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment