summaryrefslogtreecommitdiffstats
path: root/net/nfc
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2012-10-15 15:09:52 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2012-10-26 18:26:50 +0200
commitc8512be63bbf9216934ecd10e1f9e4f887076fc2 (patch)
tree6d5d9c31a733638641bd883480f80448636000d2 /net/nfc
parentNFC: Check for connection less sockets when looking for a service name (diff)
downloadlinux-c8512be63bbf9216934ecd10e1f9e4f887076fc2.tar.xz
linux-c8512be63bbf9216934ecd10e1f9e4f887076fc2.zip
NFC: Keep connection less bound sockets alive when DEP link goes down
When DEP goes down, bound cl sockets can be kept alive as there is no reason to kill a connection less server socket because the LLCP link went down. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'net/nfc')
-rw-r--r--net/nfc/llcp/llcp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/net/nfc/llcp/llcp.c b/net/nfc/llcp/llcp.c
index ee01be17e21f..7f92a857b319 100644
--- a/net/nfc/llcp/llcp.c
+++ b/net/nfc/llcp/llcp.c
@@ -85,6 +85,16 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool listen)
}
}
+ /*
+ * If we have a connection less socket bound, we keep it alive
+ * if the device is still present.
+ */
+ if (sk->sk_state == LLCP_BOUND && sk->sk_type == SOCK_DGRAM &&
+ listen == true) {
+ bh_unlock_sock(sk);
+ continue;
+ }
+
sk->sk_state = LLCP_CLOSED;
bh_unlock_sock(sk);