linux-stable/net/nfc
Thierry Escande f23a9868b1 NFC: digital: Fix target DEP_REQ I-PDU handling after ATN PDU
When the initiator sends a DEP_REQ I-PDU, the target device may not
reply in a timely manner. In this case the initiator device must send an
attention PDU (ATN) and if the recipient replies with an ATN PDU in
return, then the last I-PDU must be sent again by the initiator.

This patch fixes how the target handles I-PDU received after an ATN PDU
has been received.

There are 2 possible cases:
- The target has received the initial DEP_REQ and sends back the DEP_RES
  but the initiator did not receive it. In this case, after the
  initiator has sent an ATN PDU and the target replied it (with an ATN
  as well), the initiator sends the saved skb of the initial DEP_REQ
  again and the target replies with the saved skb of the initial
  DEP_RES.
- Or the target did not even received the initial DEP_REQ. In this case,
  after the ATN PDUs exchange, the initiator sends the saved skb and the
  target simply passes it up, just as usual.

This behavior is controlled using the atn_count and the PNI field of the
digital device structure.

Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-07-11 01:57:50 +02:00
..
hci NFC: hci: delete unused nfc_llc_get_rx_head_tail_room() 2016-07-04 12:14:05 +02:00
nci nfc: nci: Add nci_nfcc_loopback to the nci core 2016-05-04 01:48:16 +02:00
af_nfc.c net: Pass kern from net_proto_family.create to sk_alloc 2015-05-11 10:50:17 -04:00
core.c nfc: netlink: HCI event connectivity implementation 2015-12-29 19:06:20 +01:00
digital.h NFC: digital: Add 'tg_listen_md' and 'tg_get_rf_tech' driver hooks 2014-07-23 01:17:31 +02:00
digital_core.c NFC: digital: Abort last command when dep link goes down 2016-07-06 10:26:52 +02:00
digital_dep.c NFC: digital: Fix target DEP_REQ I-PDU handling after ATN PDU 2016-07-11 01:57:50 +02:00
digital_technology.c NFC: digital: Fix a memory leak in NFC-F listening mode 2016-07-06 10:03:08 +02:00
Kconfig NFC Digital: Add NFC-F technology support 2013-09-25 02:02:25 +02:00
llcp.h net: Pass kern from net_proto_family.create to sk_alloc 2015-05-11 10:50:17 -04:00
llcp_commands.c NFC: llcp: Fix 2 memory leaks 2016-07-06 10:02:06 +02:00
llcp_core.c NFC: llcp: Use dynamic debug for hex dump 2016-07-04 12:26:27 +02:00
llcp_sock.c NFC: Close a race condition in llcp_sock_getname() 2016-02-25 08:41:01 +01:00
Makefile NFC Digital: Add initiator NFC-DEP support 2013-09-25 02:02:27 +02:00
netlink.c nfc: netlink: HCI event connectivity implementation 2015-12-29 19:06:20 +01:00
nfc.h nfc: netlink: HCI event connectivity implementation 2015-12-29 19:06:20 +01:00
rawsock.c NFC: netlink: Add mode parameter to deactivate_target functions 2015-10-27 03:55:12 +01:00